From 7441fe90511e6ca6eb5e8aca116c684670ad26bc Mon Sep 17 00:00:00 2001 From: Graham Brown Date: Mon, 28 Nov 2016 15:14:54 +0200 Subject: [PATCH 001/220] fix auto reconnect handle leaks --- .../oss/ari4java/tools/BaseAriAction.java | 3 +- .../ari4java/tools/http/NettyHttpClient.java | 29 ++++++++++++------- .../tools/http/NettyWSClientHandler.java | 2 ++ 3 files changed, 23 insertions(+), 11 deletions(-) diff --git a/classes/ch/loway/oss/ari4java/tools/BaseAriAction.java b/classes/ch/loway/oss/ari4java/tools/BaseAriAction.java index c632940d..27e21ba9 100644 --- a/classes/ch/loway/oss/ari4java/tools/BaseAriAction.java +++ b/classes/ch/loway/oss/ari4java/tools/BaseAriAction.java @@ -203,7 +203,8 @@ public static Message deserializeEvent(String json, Class klazz) throws RestE * @throws RestException */ public synchronized void disconnectWs() throws RestException { - wsConnection.disconnect(); + if (wsConnection != null) + wsConnection.disconnect(); wsConnection = null; } diff --git a/classes/ch/loway/oss/ari4java/tools/http/NettyHttpClient.java b/classes/ch/loway/oss/ari4java/tools/http/NettyHttpClient.java index 85338996..cf99bba8 100644 --- a/classes/ch/loway/oss/ari4java/tools/http/NettyHttpClient.java +++ b/classes/ch/loway/oss/ari4java/tools/http/NettyHttpClient.java @@ -57,6 +57,7 @@ public class NettyHttpClient implements HttpClient, WsClient, WsClientAutoReconn private ChannelFuture wsChannelFuture; private ScheduledFuture wsPingTimer = null; private NettyWSClientHandler wsHandler; + private ChannelFutureListener wsFuture; public NettyHttpClient() { group = new NioEventLoopGroup(); @@ -287,23 +288,25 @@ public void initChannel(SocketChannel ch) throws Exception { pipeline.addLast("ws-handler", wsHandler); } }); - wsChannelFuture = wsBootStrap.connect(baseUri.getHost(), baseUri.getPort()); - wsChannelFuture.addListener(new ChannelFutureListener() { + wsChannelFuture = wsBootStrap.connect(baseUri.getHost(), baseUri.getPort()); + wsFuture = new ChannelFutureListener() { @Override public void operationComplete(ChannelFuture future) throws Exception { if (future.isSuccess()) { callback.onChReadyToWrite(); - // reset the reconnect counter on successful connect + // reset the reconnect counter on successful connect reconnectCount = 0; } else { - if (reconnectCount >= 10) + if (reconnectCount >= 10) { callback.onFailure(future.cause()); - else + } else { reconnectWs(); + } } } - }); + }; + wsChannelFuture.addListener(wsFuture); // start a ws ping schedule startPing(); @@ -337,10 +340,13 @@ public void disconnect() throws RestException { wsHandler.setShuttingDown(true); Channel ch = wsChannelFuture.channel(); if (ch != null) { - ch.writeAndFlush(new CloseWebSocketFrame()); // NettyWSClientHandler will close the connection when the server // responds to the CloseWebSocketFrame. + ch.writeAndFlush(new CloseWebSocketFrame()); + // if the server is no longer there then close any way + ch.close(); } + wsChannelFuture.removeListener(wsFuture); } }; } @@ -377,14 +383,17 @@ public void reconnectWs() { } // if not shutdown reconnect, note the check not on the shutDownGroup if (!group.isShuttingDown()) { - // schedule reconnect after a 1,5,10 seconds - long[] timeouts = {1L, 5L, 10L}; + // schedule reconnect after a 2,5,10 seconds + long[] timeouts = {2L, 5L, 10L}; + reconnectCount++; shutDownGroup.schedule(new Runnable() { @Override public void run() { - reconnectCount++; try { + // 1st close up + wsClientConnection.disconnect(); System.err.println(System.currentTimeMillis() + " ** connecting... try:" + reconnectCount + " ++"); + // then connect again connect(wsCallback, wsEventsUrl, wsEventsParamQuery); } catch (RestException e) { wsCallback.onFailure(e); diff --git a/classes/ch/loway/oss/ari4java/tools/http/NettyWSClientHandler.java b/classes/ch/loway/oss/ari4java/tools/http/NettyWSClientHandler.java index 5095bc0b..323a628d 100644 --- a/classes/ch/loway/oss/ari4java/tools/http/NettyWSClientHandler.java +++ b/classes/ch/loway/oss/ari4java/tools/http/NettyWSClientHandler.java @@ -103,6 +103,8 @@ protected void channelRead0(ChannelHandlerContext ctx, Object msg) throws Except @Override public void exceptionCaught(ChannelHandlerContext ctx, Throwable cause) throws Exception { + if (!shuttingDown) + return; cause.printStackTrace(); if (!handshakeFuture.isDone()) { handshakeFuture.setFailure(cause); From 21d78154552dd679efcb80aa83a3e7bbe917672f Mon Sep 17 00:00:00 2001 From: lenz Date: Wed, 30 Nov 2016 09:06:46 +0100 Subject: [PATCH 002/220] Netbeans --- .gitignore | 1 + 1 file changed, 1 insertion(+) diff --git a/.gitignore b/.gitignore index b6f70359..26414f59 100644 --- a/.gitignore +++ b/.gitignore @@ -18,6 +18,7 @@ build.xml /.classpath /.project /.gradle +/.nb-gradle # macbook .DS_Store From 51e9df76d0eb82434c74820938d031b51cd21de3 Mon Sep 17 00:00:00 2001 From: lenz Date: Wed, 30 Nov 2016 09:06:58 +0100 Subject: [PATCH 003/220] Rel 043 --- README.md | 3 ++- build.gradle | 2 +- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 8090e59b..453f1ba7 100644 --- a/README.md +++ b/README.md @@ -86,7 +86,8 @@ The project requires: Status ------ - + +* 16.11.30 - Fixes on Graham's AutoReconnect patch - #60 - rel 0.4.3 * 16.10.21 - Fixing #55 and #57 - rel 0.4.2 * 16.10.17 - Graham's AutoReconnect patch #52 - rel 0.4.1 * 16.08.31 - Added support for ARI 1.10.0 (Asterisk 14) and some bug fixes - release 0.4.0 diff --git a/build.gradle b/build.gradle index 1bd880db..f9a51d0a 100644 --- a/build.gradle +++ b/build.gradle @@ -9,7 +9,7 @@ def env = System.getenv() project.ext { webapp_name = 'ari4java' - app_version = '0.4.2' + app_version = '0.4.3' build_number = env["BUILD_NUMBER"] version_class = 'ch/loway/oss/ari4java/BUILD.java' build_time = "" + new Date() From b82b236b799be126c852663c521339014ad8ba97 Mon Sep 17 00:00:00 2001 From: lenz Date: Sat, 4 Feb 2017 15:36:03 +0100 Subject: [PATCH 004/220] bug #62: Imported models --- codegen-data/ari_2_0_0/README.md | 2 + codegen-data/ari_2_0_0/applications.json | 172 +++ codegen-data/ari_2_0_0/asterisk.json | 692 +++++++++ codegen-data/ari_2_0_0/bridges.json | 738 +++++++++ codegen-data/ari_2_0_0/channels.json | 1772 ++++++++++++++++++++++ codegen-data/ari_2_0_0/deviceStates.json | 151 ++ codegen-data/ari_2_0_0/endpoints.json | 279 ++++ codegen-data/ari_2_0_0/events.json | 895 +++++++++++ codegen-data/ari_2_0_0/mailboxes.json | 134 ++ codegen-data/ari_2_0_0/playbacks.json | 161 ++ codegen-data/ari_2_0_0/recordings.json | 410 +++++ codegen-data/ari_2_0_0/sounds.json | 99 ++ 12 files changed, 5505 insertions(+) create mode 100644 codegen-data/ari_2_0_0/README.md create mode 100644 codegen-data/ari_2_0_0/applications.json create mode 100644 codegen-data/ari_2_0_0/asterisk.json create mode 100644 codegen-data/ari_2_0_0/bridges.json create mode 100644 codegen-data/ari_2_0_0/channels.json create mode 100644 codegen-data/ari_2_0_0/deviceStates.json create mode 100644 codegen-data/ari_2_0_0/endpoints.json create mode 100644 codegen-data/ari_2_0_0/events.json create mode 100644 codegen-data/ari_2_0_0/mailboxes.json create mode 100644 codegen-data/ari_2_0_0/playbacks.json create mode 100644 codegen-data/ari_2_0_0/recordings.json create mode 100644 codegen-data/ari_2_0_0/sounds.json diff --git a/codegen-data/ari_2_0_0/README.md b/codegen-data/ari_2_0_0/README.md new file mode 100644 index 00000000..5adc9c9b --- /dev/null +++ b/codegen-data/ari_2_0_0/README.md @@ -0,0 +1,2 @@ +Snapshot taken from Asterisk 14.2.1 - Feb 4, 2017 + diff --git a/codegen-data/ari_2_0_0/applications.json b/codegen-data/ari_2_0_0/applications.json new file mode 100644 index 00000000..cdd69c41 --- /dev/null +++ b/codegen-data/ari_2_0_0/applications.json @@ -0,0 +1,172 @@ +{ + "_copyright": "Copyright (C) 2013, Digium, Inc.", + "_author": "David M. Lee, II ", + "_svn_revision": "$Revision$", + "apiVersion": "2.0.0", + "swaggerVersion": "1.1", + "basePath": "http://localhost:8088/ari", + "resourcePath": "/api-docs/applications.{format}", + "apis": [ + { + "path": "/applications", + "description": "Stasis applications", + "operations": [ + { + "httpMethod": "GET", + "summary": "List all applications.", + "nickname": "list", + "responseClass": "List[Application]" + } + ] + }, + { + "path": "/applications/{applicationName}", + "description": "Stasis application", + "operations": [ + { + "httpMethod": "GET", + "summary": "Get details of an application.", + "nickname": "get", + "responseClass": "Application", + "parameters": [ + { + "name": "applicationName", + "description": "Application's name", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Application does not exist." + } + ] + } + ] + }, + { + "path": "/applications/{applicationName}/subscription", + "description": "Stasis application", + "operations": [ + { + "httpMethod": "POST", + "summary": "Subscribe an application to a event source.", + "notes": "Returns the state of the application after the subscriptions have changed", + "nickname": "subscribe", + "responseClass": "Application", + "parameters": [ + { + "name": "applicationName", + "description": "Application's name", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "eventSource", + "description": "URI for event source (channel:{channelId}, bridge:{bridgeId}, endpoint:{tech}[/{resource}], deviceState:{deviceName}", + "paramType": "query", + "required": true, + "allowMultiple": true, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 400, + "reason": "Missing parameter." + }, + { + "code": 404, + "reason": "Application does not exist." + }, + { + "code": 422, + "reason": "Event source does not exist." + } + ] + }, + { + "httpMethod": "DELETE", + "summary": "Unsubscribe an application from an event source.", + "notes": "Returns the state of the application after the subscriptions have changed", + "nickname": "unsubscribe", + "responseClass": "Application", + "parameters": [ + { + "name": "applicationName", + "description": "Application's name", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "eventSource", + "description": "URI for event source (channel:{channelId}, bridge:{bridgeId}, endpoint:{tech}[/{resource}], deviceState:{deviceName}", + "paramType": "query", + "required": true, + "allowMultiple": true, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 400, + "reason": "Missing parameter; event source scheme not recognized." + }, + { + "code": 404, + "reason": "Application does not exist." + }, + { + "code": 409, + "reason": "Application not subscribed to event source." + }, + { + "code": 422, + "reason": "Event source does not exist." + } + ] + } + ] + } + ], + "models": { + "Application": { + "id": "Application", + "description": "Details of a Stasis application", + "properties": { + "name": { + "type": "string", + "description": "Name of this application", + "required": true + }, + "channel_ids": { + "type": "List[string]", + "description": "Id's for channels subscribed to.", + "required": true + }, + "bridge_ids": { + "type": "List[string]", + "description": "Id's for bridges subscribed to.", + "required": true + }, + "endpoint_ids": { + "type": "List[string]", + "description": "{tech}/{resource} for endpoints subscribed to.", + "required": true + }, + "device_names": { + "type": "List[string]", + "description": "Names of the devices subscribed to.", + "required": true + } + } + } + } +} diff --git a/codegen-data/ari_2_0_0/asterisk.json b/codegen-data/ari_2_0_0/asterisk.json new file mode 100644 index 00000000..f40bf5c6 --- /dev/null +++ b/codegen-data/ari_2_0_0/asterisk.json @@ -0,0 +1,692 @@ +{ + "_copyright": "Copyright (C) 2012 - 2013, Digium, Inc.", + "_author": "David M. Lee, II ", + "_svn_revision": "$Revision$", + "apiVersion": "2.0.0", + "swaggerVersion": "1.1", + "basePath": "http://localhost:8088/ari", + "resourcePath": "/api-docs/asterisk.{format}", + "apis": [ + { + "path": "/asterisk/config/dynamic/{configClass}/{objectType}/{id}", + "description": "Asterisk dynamic configuration", + "operations": [ + { + "httpMethod": "GET", + "summary": "Retrieve a dynamic configuration object.", + "nickname": "getObject", + "responseClass": "List[ConfigTuple]", + "parameters": [ + { + "name": "configClass", + "description": "The configuration class containing dynamic configuration objects.", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "objectType", + "description": "The type of configuration object to retrieve.", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "id", + "description": "The unique identifier of the object to retrieve.", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "{configClass|objectType|id} not found" + } + ] + }, + { + "httpMethod": "PUT", + "summary": "Create or update a dynamic configuration object.", + "nickname": "updateObject", + "responseClass": "List[ConfigTuple]", + "parameters": [ + { + "name": "configClass", + "description": "The configuration class containing dynamic configuration objects.", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "objectType", + "description": "The type of configuration object to create or update.", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "id", + "description": "The unique identifier of the object to create or update.", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "fields", + "description": "The body object should have a value that is a list of ConfigTuples, which provide the fields to update. Ex. [ { \"attribute\": \"directmedia\", \"value\": \"false\" } ]", + "paramType": "body", + "required": false, + "dataType": "containers", + "allowMultiple": false + } + ], + "errorResponses": [ + { + "code": 400, + "reason": "Bad request body" + }, + { + "code": 403, + "reason": "Could not create or update object" + }, + { + "code": 404, + "reason": "{configClass|objectType} not found" + } + ] + }, + { + "httpMethod": "DELETE", + "summary": "Delete a dynamic configuration object.", + "nickname": "deleteObject", + "responseClass": "void", + "parameters": [ + { + "name": "configClass", + "description": "The configuration class containing dynamic configuration objects.", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "objectType", + "description": "The type of configuration object to delete.", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "id", + "description": "The unique identifier of the object to delete.", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 403, + "reason": "Could not delete object" + }, + { + "code": 404, + "reason": "{configClass|objectType|id} not found" + } + ] + } + ] + }, + { + "path": "/asterisk/info", + "description": "Asterisk system information (similar to core show settings)", + "operations": [ + { + "httpMethod": "GET", + "summary": "Gets Asterisk system information.", + "nickname": "getInfo", + "responseClass": "AsteriskInfo", + "parameters": [ + { + "name": "only", + "description": "Filter information returned", + "paramType": "query", + "required": false, + "allowMultiple": true, + "dataType": "string", + "allowableValues": { + "valueType": "LIST", + "values": [ + "build", + "system", + "config", + "status" + ] + } + } + ] + } + ] + }, + { + "path": "/asterisk/modules", + "description": "Asterisk modules", + "operations": [ + { + "httpMethod": "GET", + "summary": "List Asterisk modules.", + "nickname": "listModules", + "responseClass": "List[Module]" + } + ] + }, + { + "path": "/asterisk/modules/{moduleName}", + "description": "Asterisk module", + "operations": [ + { + "httpMethod": "GET", + "summary": "Get Asterisk module information.", + "nickname": "getModule", + "responseClass": "Module", + "parameters": [ + { + "name": "moduleName", + "description": "Module's name", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Module could not be found in running modules." + }, + { + "code": 409, + "reason": "Module information could not be retrieved." + } + ] + }, + { + "httpMethod": "POST", + "summary": "Load an Asterisk module.", + "nickname": "loadModule", + "responseClass": "void", + "parameters": [ + { + "name": "moduleName", + "description": "Module's name", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 409, + "reason": "Module could not be loaded." + } + ] + }, + { + "httpMethod": "DELETE", + "summary": "Unload an Asterisk module.", + "nickname": "unloadModule", + "responseClass": "void", + "parameters": [ + { + "name": "moduleName", + "description": "Module's name", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Module not found in running modules." + }, + { + "code": 409, + "reason": "Module could not be unloaded." + } + ] + }, + { + "httpMethod": "PUT", + "summary": "Reload an Asterisk module.", + "nickname": "reloadModule", + "responseClass": "void", + "parameters": [ + { + "name": "moduleName", + "description": "Module's name", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Module not found in running modules." + }, + { + "code": 409, + "reason": "Module could not be reloaded." + } + ] + } + ] + }, + { + "path": "/asterisk/logging", + "description": "Asterisk log channels", + "operations": [ + { + "httpMethod": "GET", + "summary": "Gets Asterisk log channel information.", + "nickname": "listLogChannels", + "responseClass": "List[LogChannel]" + } + ] + }, + { + "path": "/asterisk/logging/{logChannelName}", + "description": "Asterisk log channel", + "operations": [ + { + "httpMethod": "POST", + "summary": "Adds a log channel.", + "nickname": "addLog", + "responseClass": "void", + "parameters": [ + { + "name": "logChannelName", + "description": "The log channel to add", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "configuration", + "description": "levels of the log channel", + "paramType": "query", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 400, + "reason": "Bad request body" + }, + { + "code": 409, + "reason": "Log channel could not be created." + } + ] + }, + { + "httpMethod": "DELETE", + "summary": "Deletes a log channel.", + "nickname": "deleteLog", + "responseClass": "void", + "parameters": [ + { + "name": "logChannelName", + "description": "Log channels name", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Log channel does not exist." + } + ] + } + ] + }, + { + "path": "/asterisk/logging/{logChannelName}/rotate", + "description": "Asterisk log channel", + "operations": [ + { + "httpMethod": "PUT", + "summary": "Rotates a log channel.", + "nickname": "rotateLog", + "responseClass": "void", + "parameters": [ + { + "name": "logChannelName", + "description": "Log channel's name", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Log channel does not exist." + } + ] + } + ] + }, + { + "path": "/asterisk/variable", + "description": "Global variables", + "operations": [ + { + "httpMethod": "GET", + "summary": "Get the value of a global variable.", + "nickname": "getGlobalVar", + "responseClass": "Variable", + "parameters": [ + { + "name": "variable", + "description": "The variable to get", + "paramType": "query", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 400, + "reason": "Missing variable parameter." + } + ] + }, + { + "httpMethod": "POST", + "summary": "Set the value of a global variable.", + "nickname": "setGlobalVar", + "responseClass": "void", + "parameters": [ + { + "name": "variable", + "description": "The variable to set", + "paramType": "query", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "value", + "description": "The value to set the variable to", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 400, + "reason": "Missing variable parameter." + } + ] + } + ] + } + ], + "models": { + "BuildInfo": { + "id": "BuildInfo", + "description": "Info about how Asterisk was built", + "properties": { + "os": { + "required": true, + "type": "string", + "description": "OS Asterisk was built on." + }, + "kernel": { + "required": true, + "type": "string", + "description": "Kernel version Asterisk was built on." + }, + "options": { + "required": true, + "type": "string", + "description": "Compile time options, or empty string if default." + }, + "machine": { + "required": true, + "type": "string", + "description": "Machine architecture (x86_64, i686, ppc, etc.)" + }, + "date": { + "required": true, + "type": "string", + "description": "Date and time when Asterisk was built." + }, + "user": { + "required": true, + "type": "string", + "description": "Username that build Asterisk" + } + } + }, + "SystemInfo": { + "id": "SystemInfo", + "description": "Info about Asterisk", + "properties": { + "version": { + "required": true, + "type": "string", + "description": "Asterisk version." + }, + "entity_id": { + "required": true, + "type": "string", + "description": "" + } + } + }, + "SetId": { + "id": "SetId", + "description": "Effective user/group id", + "properties": { + "user": { + "required": true, + "type": "string", + "description": "Effective user id." + }, + "group": { + "required": true, + "type": "string", + "description": "Effective group id." + } + } + }, + "ConfigInfo": { + "id": "ConfigInfo", + "description": "Info about Asterisk configuration", + "properties": { + "name": { + "required": true, + "type": "string", + "description": "Asterisk system name." + }, + "default_language": { + "required": true, + "type": "string", + "description": "Default language for media playback." + }, + "max_channels": { + "required": false, + "type": "int", + "description": "Maximum number of simultaneous channels." + }, + "max_open_files": { + "required": false, + "type": "int", + "description": "Maximum number of open file handles (files, sockets)." + }, + "max_load": { + "required": false, + "type": "double", + "description": "Maximum load avg on system." + }, + "setid": { + "required": true, + "type": "SetId", + "description": "Effective user/group id for running Asterisk." + } + } + }, + "StatusInfo": { + "id": "StatusInfo", + "description": "Info about Asterisk status", + "properties": { + "startup_time": { + "required": true, + "type": "Date", + "description": "Time when Asterisk was started." + }, + "last_reload_time": { + "required": true, + "type": "Date", + "description": "Time when Asterisk was last reloaded." + } + } + }, + "AsteriskInfo": { + "id": "AsteriskInfo", + "description": "Asterisk system information", + "properties": { + "build": { + "required": false, + "type": "BuildInfo", + "description": "Info about how Asterisk was built" + }, + "system": { + "required": false, + "type": "SystemInfo", + "description": "Info about the system running Asterisk" + }, + "config": { + "required": false, + "type": "ConfigInfo", + "description": "Info about Asterisk configuration" + }, + "status": { + "required": false, + "type": "StatusInfo", + "description": "Info about Asterisk status" + } + } + }, + "Module": { + "id": "Module", + "description": "Details of an Asterisk module", + "properties": { + "name": { + "type": "string", + "description": "The name of this module", + "required": true + }, + "description": { + "type": "string", + "description": "The description of this module", + "required": true + }, + "use_count": { + "type": "int", + "description": "The number of times this module is being used", + "required": true + }, + "status": { + "type": "string", + "description": "The running status of this module", + "required": true + }, + "support_level": { + "type": "string", + "description": "The support state of this module", + "required": true + } + } + }, + "LogChannel": { + "id": "LogChannel", + "description": "Details of an Asterisk log channel", + "properties": { + "channel": { + "type": "string", + "description": "The log channel path", + "required": true + }, + "type": { + "type": "string", + "description": "Types of logs for the log channel", + "required": true + }, + "status": { + "type": "string", + "description": "Whether or not a log type is enabled", + "required": true + }, + "configuration": { + "type": "string", + "description": "The various log levels", + "required": true + } + } + }, + "Variable": { + "id": "Variable", + "description": "The value of a channel variable", + "properties": { + "value": { + "required": true, + "type": "string", + "description": "The value of the variable requested" + } + } + }, + "ConfigTuple": { + "id": "ConfigTuple", + "description": "A key/value pair that makes up part of a configuration object.", + "properties": { + "attribute": { + "required": true, + "type": "string", + "description": "A configuration object attribute." + }, + "value": { + "required": true, + "type": "string", + "description": "The value for the attribute." + } + } + } + } +} diff --git a/codegen-data/ari_2_0_0/bridges.json b/codegen-data/ari_2_0_0/bridges.json new file mode 100644 index 00000000..03a1e7a6 --- /dev/null +++ b/codegen-data/ari_2_0_0/bridges.json @@ -0,0 +1,738 @@ +{ + "_copyright": "Copyright (C) 2012 - 2013, Digium, Inc.", + "_author": "David M. Lee, II ", + "_svn_revision": "$Revision$", + "apiVersion": "2.0.0", + "swaggerVersion": "1.1", + "basePath": "http://localhost:8088/ari", + "resourcePath": "/api-docs/bridges.{format}", + "apis": [ + { + "path": "/bridges", + "description": "Active bridges", + "operations": [ + { + "httpMethod": "GET", + "summary": "List all active bridges in Asterisk.", + "nickname": "list", + "responseClass": "List[Bridge]" + }, + { + "httpMethod": "POST", + "summary": "Create a new bridge.", + "notes": "This bridge persists until it has been shut down, or Asterisk has been shut down.", + "nickname": "create", + "responseClass": "Bridge", + "parameters": [ + { + "name": "type", + "description": "Comma separated list of bridge type attributes (mixing, holding, dtmf_events, proxy_media).", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "bridgeId", + "description": "Unique ID to give to the bridge being created.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "name", + "description": "Name to give to the bridge being created.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + } + ] + } + ] + }, + { + "path": "/bridges/{bridgeId}", + "description": "Individual bridge", + "operations": [ + { + "httpMethod": "POST", + "summary": "Create a new bridge or updates an existing one.", + "notes": "This bridge persists until it has been shut down, or Asterisk has been shut down.", + "nickname": "createWithId", + "responseClass": "Bridge", + "parameters": [ + { + "name": "type", + "description": "Comma separated list of bridge type attributes (mixing, holding, dtmf_events, proxy_media) to set.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "bridgeId", + "description": "Unique ID to give to the bridge being created.", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "name", + "description": "Set the name of the bridge.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + } + ] + }, + { + "httpMethod": "GET", + "summary": "Get bridge details.", + "nickname": "get", + "responseClass": "Bridge", + "parameters": [ + { + "name": "bridgeId", + "description": "Bridge's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Bridge not found" + } + ] + }, + { + "httpMethod": "DELETE", + "summary": "Shut down a bridge.", + "notes": "If any channels are in this bridge, they will be removed and resume whatever they were doing beforehand.", + "nickname": "destroy", + "responseClass": "void", + "parameters": [ + { + "name": "bridgeId", + "description": "Bridge's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Bridge not found" + } + ] + } + ] + }, + { + "path": "/bridges/{bridgeId}/addChannel", + "description": "Add a channel to a bridge", + "operations": [ + { + "httpMethod": "POST", + "summary": "Add a channel to a bridge.", + "nickname": "addChannel", + "responseClass": "void", + "parameters": [ + { + "name": "bridgeId", + "description": "Bridge's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "channel", + "description": "Ids of channels to add to bridge", + "paramType": "query", + "required": true, + "allowMultiple": true, + "dataType": "string" + }, + { + "name": "role", + "description": "Channel's role in the bridge", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 400, + "reason": "Channel not found" + }, + { + "code": 404, + "reason": "Bridge not found" + }, + { + "code": 409, + "reason": "Bridge not in Stasis application; Channel currently recording" + }, + { + "code": 422, + "reason": "Channel not in Stasis application" + } + ] + } + ] + }, + { + "path": "/bridges/{bridgeId}/removeChannel", + "description": "Remove a channel from a bridge", + "operations": [ + { + "httpMethod": "POST", + "summary": "Remove a channel from a bridge.", + "nickname": "removeChannel", + "responseClass": "void", + "parameters": [ + { + "name": "bridgeId", + "description": "Bridge's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "channel", + "description": "Ids of channels to remove from bridge", + "paramType": "query", + "required": true, + "allowMultiple": true, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 400, + "reason": "Channel not found" + }, + { + "code": 404, + "reason": "Bridge not found" + }, + { + "code": 409, + "reason": "Bridge not in Stasis application" + }, + { + "code": 422, + "reason": "Channel not in this bridge" + } + ] + } + ] + }, + { + "path": "/bridges/{bridgeId}/videoSource/{channelId}", + "description": "Set a channel as the video source in a multi-party bridge", + "operations": [ + { + "httpMethod": "POST", + "summary": "Set a channel as the video source in a multi-party mixing bridge. This operation has no effect on bridges with two or fewer participants.", + "nickname": "setVideoSource", + "responseClass": "void", + "parameters": [ + { + "name": "bridgeId", + "description": "Bridge's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "channelId", + "description": "Channel's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Bridge or Channel not found" + }, + { + "code": 409, + "reason": "Channel not in Stasis application" + }, + { + "code": 422, + "reason": "Channel not in this Bridge" + } + ] + } + ] + }, + { + "path": "/bridges/{bridgeId}/videoSource", + "description": "Removes any explicit video source", + "operations": [ + { + "httpMethod": "DELETE", + "summary": "Removes any explicit video source in a multi-party mixing bridge. This operation has no effect on bridges with two or fewer participants. When no explicit video source is set, talk detection will be used to determine the active video stream.", + "nickname": "clearVideoSource", + "responseClass": "void", + "parameters": [ + { + "name": "bridgeId", + "description": "Bridge's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Bridge not found" + } + ] + } + ] + }, + { + "path": "/bridges/{bridgeId}/moh", + "description": "Play music on hold to a bridge", + "operations": [ + { + "httpMethod": "POST", + "summary": "Play music on hold to a bridge or change the MOH class that is playing.", + "nickname": "startMoh", + "responseClass": "void", + "parameters": [ + { + "name": "bridgeId", + "description": "Bridge's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "mohClass", + "description": "Channel's id", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Bridge not found" + }, + { + "code": 409, + "reason": "Bridge not in Stasis application" + } + ] + }, + { + "httpMethod": "DELETE", + "summary": "Stop playing music on hold to a bridge.", + "notes": "This will only stop music on hold being played via POST bridges/{bridgeId}/moh.", + "nickname": "stopMoh", + "responseClass": "void", + "parameters": [ + { + "name": "bridgeId", + "description": "Bridge's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Bridge not found" + }, + { + "code": 409, + "reason": "Bridge not in Stasis application" + } + ] + } + ] + }, + { + "path": "/bridges/{bridgeId}/play", + "description": "Play media to the participants of a bridge", + "operations": [ + { + "httpMethod": "POST", + "summary": "Start playback of media on a bridge.", + "notes": "The media URI may be any of a number of URI's. Currently sound:, recording:, number:, digits:, characters:, and tone: URI's are supported. This operation creates a playback resource that can be used to control the playback of media (pause, rewind, fast forward, etc.)", + "nickname": "play", + "responseClass": "Playback", + "parameters": [ + { + "name": "bridgeId", + "description": "Bridge's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "media", + "description": "Media URIs to play.", + "paramType": "query", + "required": true, + "allowMultiple": true, + "dataType": "string" + }, + { + "name": "lang", + "description": "For sounds, selects language for sound.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "offsetms", + "description": "Number of milliseconds to skip before playing. Only applies to the first URI if multiple media URIs are specified.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "int", + "defaultValue": 0, + "allowableValues": { + "valueType": "RANGE", + "min": 0 + } + + }, + { + "name": "skipms", + "description": "Number of milliseconds to skip for forward/reverse operations.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "int", + "defaultValue": 3000, + "allowableValues": { + "valueType": "RANGE", + "min": 0 + } + }, + { + "name": "playbackId", + "description": "Playback Id.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Bridge not found" + }, + { + "code": 409, + "reason": "Bridge not in a Stasis application" + } + ] + } + ] + }, + { + "path": "/bridges/{bridgeId}/play/{playbackId}", + "description": "Play media to a bridge", + "operations": [ + { + "httpMethod": "POST", + "summary": "Start playback of media on a bridge.", + "notes": "The media URI may be any of a number of URI's. Currently sound:, recording:, number:, digits:, characters:, and tone: URI's are supported. This operation creates a playback resource that can be used to control the playback of media (pause, rewind, fast forward, etc.)", + "nickname": "playWithId", + "responseClass": "Playback", + "parameters": [ + { + "name": "bridgeId", + "description": "Bridge's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "playbackId", + "description": "Playback ID.", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "media", + "description": "Media URIs to play.", + "paramType": "query", + "required": true, + "allowMultiple": true, + "dataType": "string" + }, + { + "name": "lang", + "description": "For sounds, selects language for sound.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "offsetms", + "description": "Number of milliseconds to skip before playing. Only applies to the first URI if multiple media URIs are specified.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "int", + "defaultValue": 0, + "allowableValues": { + "valueType": "RANGE", + "min": 0 + } + }, + { + "name": "skipms", + "description": "Number of milliseconds to skip for forward/reverse operations.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "int", + "defaultValue": 3000, + "allowableValues": { + "valueType": "RANGE", + "min": 0 + } + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Bridge not found" + }, + { + "code": 409, + "reason": "Bridge not in a Stasis application" + } + ] + + } + ] + }, + { + "path": "/bridges/{bridgeId}/record", + "description": "Record audio on a bridge", + "operations": [ + { + "httpMethod": "POST", + "summary": "Start a recording.", + "notes": "This records the mixed audio from all channels participating in this bridge.", + "nickname": "record", + "responseClass": "LiveRecording", + "parameters": [ + { + "name": "bridgeId", + "description": "Bridge's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "name", + "description": "Recording's filename", + "paramType": "query", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "format", + "description": "Format to encode audio in", + "paramType": "query", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "maxDurationSeconds", + "description": "Maximum duration of the recording, in seconds. 0 for no limit.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "int", + "defaultValue": 0, + "allowableValues": { + "valueType": "RANGE", + "min": 0 + } + }, + { + "name": "maxSilenceSeconds", + "description": "Maximum duration of silence, in seconds. 0 for no limit.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "int", + "defaultValue": 0, + "allowableValues": { + "valueType": "RANGE", + "min": 0 + } + }, + { + "name": "ifExists", + "description": "Action to take if a recording with the same name already exists.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string", + "defaultValue": "fail", + "allowableValues": { + "valueType": "LIST", + "values": [ + "fail", + "overwrite", + "append" + ] + } + }, + { + "name": "beep", + "description": "Play beep when recording begins", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "boolean", + "defaultValue": false + }, + { + "name": "terminateOn", + "description": "DTMF input to terminate recording.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string", + "defaultValue": "none", + "allowableValues": { + "valueType": "LIST", + "values": [ + "none", + "any", + "*", + "#" + ] + } + } + ], + "errorResponses": [ + { + "code": 400, + "reason": "Invalid parameters" + }, + { + "code": 404, + "reason": "Bridge not found" + }, + { + "code": 409, + "reason": "Bridge is not in a Stasis application; A recording with the same name already exists on the system and can not be overwritten because it is in progress or ifExists=fail" + }, + { + "code": 422, + "reason": "The format specified is unknown on this system" + } + ] + } + ] + } + ], + "models": { + "Bridge": { + "id": "Bridge", + "description": "The merging of media from one or more channels.\n\nEveryone on the bridge receives the same audio.", + "properties": { + "id": { + "type": "string", + "description": "Unique identifier for this bridge", + "required": true + }, + "technology": { + "type": "string", + "description": "Name of the current bridging technology", + "required": true + }, + "bridge_type": { + "type": "string", + "description": "Type of bridge technology", + "required": true, + "allowableValues": { + "valueType": "LIST", + "values": [ + "mixing", + "holding" + ] + } + }, + "bridge_class": { + "type": "string", + "description": "Bridging class", + "required": true + }, + "creator": { + "type": "string", + "description": "Entity that created the bridge", + "required": true + }, + "name": { + "type": "string", + "description": "Name the creator gave the bridge", + "required": true + }, + "channels": { + "type": "List[string]", + "description": "Ids of channels participating in this bridge", + "required": true + }, + "video_mode": { + "type": "string", + "description": "The video mode the bridge is using. One of 'none', 'talker', or 'single'.", + "required": false + }, + "video_source_id": { + "type": "string", + "description": "The ID of the channel that is the source of video in this bridge, if one exists.", + "required": false + } + } + } + } +} diff --git a/codegen-data/ari_2_0_0/channels.json b/codegen-data/ari_2_0_0/channels.json new file mode 100644 index 00000000..a254d565 --- /dev/null +++ b/codegen-data/ari_2_0_0/channels.json @@ -0,0 +1,1772 @@ +{ + "_copyright": "Copyright (C) 2012 - 2013, Digium, Inc.", + "_author": "David M. Lee, II ", + "_svn_revision": "$Revision$", + "apiVersion": "2.0.0", + "swaggerVersion": "1.1", + "basePath": "http://localhost:8088/ari", + "resourcePath": "/api-docs/channels.{format}", + "apis": [ + { + "path": "/channels", + "description": "Active channels", + "operations": [ + { + "httpMethod": "GET", + "summary": "List all active channels in Asterisk.", + "nickname": "list", + "responseClass": "List[Channel]" + }, + { + "httpMethod": "POST", + "summary": "Create a new channel (originate).", + "notes": "The new channel is created immediately and a snapshot of it returned. If a Stasis application is provided it will be automatically subscribed to the originated channel for further events and updates.", + "nickname": "originate", + "responseClass": "Channel", + "parameters": [ + { + "name": "endpoint", + "description": "Endpoint to call.", + "paramType": "query", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "extension", + "description": "The extension to dial after the endpoint answers. Mutually exclusive with 'app'.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "context", + "description": "The context to dial after the endpoint answers. If omitted, uses 'default'. Mutually exclusive with 'app'.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "priority", + "description": "The priority to dial after the endpoint answers. If omitted, uses 1. Mutually exclusive with 'app'.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "long" + }, + { + "name": "label", + "description": "The label to dial after the endpoint answers. Will supersede 'priority' if provided. Mutually exclusive with 'app'.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "app", + "description": "The application that is subscribed to the originated channel. When the channel is answered, it will be passed to this Stasis application. Mutually exclusive with 'context', 'extension', 'priority', and 'label'.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "appArgs", + "description": "The application arguments to pass to the Stasis application provided by 'app'. Mutually exclusive with 'context', 'extension', 'priority', and 'label'.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "callerId", + "description": "CallerID to use when dialing the endpoint or extension.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "timeout", + "description": "Timeout (in seconds) before giving up dialing, or -1 for no timeout.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "int", + "defaultValue": 30 + }, + { + "name": "variables", + "description": "The \"variables\" key in the body object holds variable key/value pairs to set on the channel on creation. Other keys in the body object are interpreted as query parameters. Ex. { \"endpoint\": \"SIP/Alice\", \"variables\": { \"CALLERID(name)\": \"Alice\" } }", + "paramType": "body", + "required": false, + "dataType": "containers", + "allowMultiple": false + }, + { + "name": "channelId", + "description": "The unique id to assign the channel on creation.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "otherChannelId", + "description": "The unique id to assign the second channel when using local channels.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "originator", + "description": "The unique id of the channel which is originating this one.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "formats", + "description": "The format name capability list to use if originator is not specified. Ex. \"ulaw,slin16\". Format names can be found with \"core show codecs\".", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 400, + "reason": "Invalid parameters for originating a channel." + }, + { + "code": 409, + "reason": "Channel with given unique ID already exists." + } + ] + } + ] + }, + { + "path": "/channels/create", + "description": "Create a channel and place it in a Stasis app, but do not dial the channel yet.", + "operations": [ + { + "httpMethod": "POST", + "summary": "Create channel.", + "nickname": "create", + "responseClass": "Channel", + "parameters": [ + { + "name": "endpoint", + "description": "Endpoint for channel communication", + "paramType": "query", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "app", + "description": "Stasis Application to place channel into", + "paramType": "query", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "appArgs", + "description": "The application arguments to pass to the Stasis application provided by 'app'. Mutually exclusive with 'context', 'extension', 'priority', and 'label'.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "channelId", + "description": "The unique id to assign the channel on creation.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "otherChannelId", + "description": "The unique id to assign the second channel when using local channels.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "originator", + "description": "Unique ID of the calling channel", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "formats", + "description": "The format name capability list to use if originator is not specified. Ex. \"ulaw,slin16\". Format names can be found with \"core show codecs\".", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 409, + "reason": "Channel with given unique ID already exists." + } + ] + } + ] + }, + { + "path": "/channels/{channelId}", + "description": "Active channel", + "operations": [ + { + "httpMethod": "GET", + "summary": "Channel details.", + "nickname": "get", + "responseClass": "Channel", + "parameters": [ + { + "name": "channelId", + "description": "Channel's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Channel not found" + } + ] + }, + { + "httpMethod": "POST", + "summary": "Create a new channel (originate with id).", + "notes": "The new channel is created immediately and a snapshot of it returned. If a Stasis application is provided it will be automatically subscribed to the originated channel for further events and updates.", + "nickname": "originateWithId", + "responseClass": "Channel", + "parameters": [ + { + "name": "channelId", + "description": "The unique id to assign the channel on creation.", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "endpoint", + "description": "Endpoint to call.", + "paramType": "query", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "extension", + "description": "The extension to dial after the endpoint answers. Mutually exclusive with 'app'.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "context", + "description": "The context to dial after the endpoint answers. If omitted, uses 'default'. Mutually exclusive with 'app'.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "priority", + "description": "The priority to dial after the endpoint answers. If omitted, uses 1. Mutually exclusive with 'app'.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "long" + }, + { + "name": "label", + "description": "The label to dial after the endpoint answers. Will supersede 'priority' if provided. Mutually exclusive with 'app'.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "app", + "description": "The application that is subscribed to the originated channel. When the channel is answered, it will be passed to this Stasis application. Mutually exclusive with 'context', 'extension', 'priority', and 'label'.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "appArgs", + "description": "The application arguments to pass to the Stasis application provided by 'app'. Mutually exclusive with 'context', 'extension', 'priority', and 'label'.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "callerId", + "description": "CallerID to use when dialing the endpoint or extension.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "timeout", + "description": "Timeout (in seconds) before giving up dialing, or -1 for no timeout.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "int", + "defaultValue": 30 + }, + { + "name": "variables", + "description": "The \"variables\" key in the body object holds variable key/value pairs to set on the channel on creation. Other keys in the body object are interpreted as query parameters. Ex. { \"endpoint\": \"SIP/Alice\", \"variables\": { \"CALLERID(name)\": \"Alice\" } }", + "paramType": "body", + "required": false, + "dataType": "containers", + "allowMultiple": false + }, + { + "name": "otherChannelId", + "description": "The unique id to assign the second channel when using local channels.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "originator", + "description": "The unique id of the channel which is originating this one.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "formats", + "description": "The format name capability list to use if originator is not specified. Ex. \"ulaw,slin16\". Format names can be found with \"core show codecs\".", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 400, + "reason": "Invalid parameters for originating a channel." + }, + { + "code": 409, + "reason": "Channel with given unique ID already exists." + } + ] + + }, + { + "httpMethod": "DELETE", + "summary": "Delete (i.e. hangup) a channel.", + "nickname": "hangup", + "responseClass": "void", + "parameters": [ + { + "name": "channelId", + "description": "Channel's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "reason", + "description": "Reason for hanging up the channel", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string", + "defalutValue": "normal", + "allowableValues": { + "valueType": "LIST", + "values": [ + "normal", + "busy", + "congestion", + "no_answer" + ] + } + } + ], + "errorResponses": [ + { + "code": 400, + "reason": "Invalid reason for hangup provided" + }, + { + "code": 404, + "reason": "Channel not found" + } + ] + } + ] + }, + { + "path": "/channels/{channelId}/continue", + "description": "Exit application; continue execution in the dialplan", + "operations": [ + { + "httpMethod": "POST", + "summary": "Exit application; continue execution in the dialplan.", + "nickname": "continueInDialplan", + "responseClass": "void", + "parameters": [ + { + "name": "channelId", + "description": "Channel's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "context", + "description": "The context to continue to.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "extension", + "description": "The extension to continue to.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "priority", + "description": "The priority to continue to.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "int" + }, + { + "name": "label", + "description": "The label to continue to - will supersede 'priority' if both are provided.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Channel not found" + }, + { + "code": 409, + "reason": "Channel not in a Stasis application" + }, + { + "code": 412, + "reason": "Channel in invalid state" + } + ] + } + ] + }, + { + "path": "/channels/{channelId}/redirect", + "description": "Inform the channel that it should redirect itself to a different location. Note that this will almost certainly cause the channel to exit the application.", + "operations": [ + { + "httpMethod": "POST", + "summary": "Redirect the channel to a different location.", + "nickname": "redirect", + "responseClass": "void", + "parameters": [ + { + "name": "channelId", + "description": "Channel's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "endpoint", + "description": "The endpoint to redirect the channel to", + "paramType": "query", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 400, + "reason": "Endpoint parameter not provided" + }, + { + "code": 404, + "reason": "Channel or endpoint not found" + }, + { + "code": 409, + "reason": "Channel not in a Stasis application" + }, + { + "code": 422, + "reason": "Endpoint is not the same type as the channel" + }, + { + "code": 412, + "reason": "Channel in invalid state" + } + ] + } + ] + }, + { + "path": "/channels/{channelId}/answer", + "description": "Answer a channel", + "operations": [ + { + "httpMethod": "POST", + "summary": "Answer a channel.", + "nickname": "answer", + "responseClass": "void", + "parameters": [ + { + "name": "channelId", + "description": "Channel's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Channel not found" + }, + { + "code": 409, + "reason": "Channel not in a Stasis application" + }, + { + "code": 412, + "reason": "Channel in invalid state" + } + ] + } + ] + }, + { + "path": "/channels/{channelId}/ring", + "description": "Send a ringing indication to a channel", + "operations": [ + { + "httpMethod": "POST", + "summary": "Indicate ringing to a channel.", + "nickname": "ring", + "responseClass": "void", + "parameters": [ + { + "name": "channelId", + "description": "Channel's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Channel not found" + }, + { + "code": 409, + "reason": "Channel not in a Stasis application" + }, + { + "code": 412, + "reason": "Channel in invalid state" + } + ] + }, + { + "httpMethod": "DELETE", + "summary": "Stop ringing indication on a channel if locally generated.", + "nickname": "ringStop", + "responseClass": "void", + "parameters": [ + { + "name": "channelId", + "description": "Channel's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Channel not found" + }, + { + "code": 409, + "reason": "Channel not in a Stasis application" + }, + { + "code": 412, + "reason": "Channel in invalid state" + } + ] + } + ] + }, + { + "path": "/channels/{channelId}/dtmf", + "description": "Send DTMF to a channel", + "operations": [ + { + "httpMethod": "POST", + "summary": "Send provided DTMF to a given channel.", + "nickname": "sendDTMF", + "responseClass": "void", + "parameters": [ + { + "name": "channelId", + "description": "Channel's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "dtmf", + "description": "DTMF To send.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "before", + "description": "Amount of time to wait before DTMF digits (specified in milliseconds) start.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "int", + "defaultValue": 0 + }, + { + "name": "between", + "description": "Amount of time in between DTMF digits (specified in milliseconds).", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "int", + "defaultValue": 100 + }, + { + "name": "duration", + "description": "Length of each DTMF digit (specified in milliseconds).", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "int", + "defaultValue": 100 + }, + { + "name": "after", + "description": "Amount of time to wait after DTMF digits (specified in milliseconds) end.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "int", + "defaultValue": 0 + } + ], + "errorResponses": [ + { + "code": 400, + "reason": "DTMF is required" + }, + { + "code": 404, + "reason": "Channel not found" + }, + { + "code": 409, + "reason": "Channel not in a Stasis application" + }, + { + "code": 412, + "reason": "Channel in invalid state" + } + ] + } + ] + }, + { + "path": "/channels/{channelId}/mute", + "description": "Mute a channel", + "operations": [ + { + "httpMethod": "POST", + "summary": "Mute a channel.", + "nickname": "mute", + "responseClass": "void", + "parameters": [ + { + "name": "channelId", + "description": "Channel's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "direction", + "description": "Direction in which to mute audio", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string", + "defaultValue": "both", + "allowableValues": { + "valueType": "LIST", + "values": [ + "both", + "in", + "out" + ] + } + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Channel not found" + }, + { + "code": 409, + "reason": "Channel not in a Stasis application" + }, + { + "code": 412, + "reason": "Channel in invalid state" + } + ] + }, + { + "httpMethod": "DELETE", + "summary": "Unmute a channel.", + "nickname": "unmute", + "responseClass": "void", + "parameters": [ + { + "name": "channelId", + "description": "Channel's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "direction", + "description": "Direction in which to unmute audio", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string", + "defaultValue": "both", + "allowableValues": { + "valueType": "LIST", + "values": [ + "both", + "in", + "out" + ] + } + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Channel not found" + }, + { + "code": 409, + "reason": "Channel not in a Stasis application" + }, + { + "code": 412, + "reason": "Channel in invalid state" + } + ] + } + ] + }, + { + "path": "/channels/{channelId}/hold", + "description": "Put a channel on hold", + "operations": [ + { + "httpMethod": "POST", + "summary": "Hold a channel.", + "nickname": "hold", + "responseClass": "void", + "parameters": [ + { + "name": "channelId", + "description": "Channel's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Channel not found" + }, + { + "code": 409, + "reason": "Channel not in a Stasis application" + }, + { + "code": 412, + "reason": "Channel in invalid state" + } + ] + }, + { + "httpMethod": "DELETE", + "summary": "Remove a channel from hold.", + "nickname": "unhold", + "responseClass": "void", + "parameters": [ + { + "name": "channelId", + "description": "Channel's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Channel not found" + }, + { + "code": 409, + "reason": "Channel not in a Stasis application" + }, + { + "code": 412, + "reason": "Channel in invalid state" + } + ] + } + ] + }, + { + "path": "/channels/{channelId}/moh", + "description": "Play music on hold to a channel", + "operations": [ + { + "httpMethod": "POST", + "summary": "Play music on hold to a channel.", + "notes": "Using media operations such as /play on a channel playing MOH in this manner will suspend MOH without resuming automatically. If continuing music on hold is desired, the stasis application must reinitiate music on hold.", + "nickname": "startMoh", + "responseClass": "void", + "parameters": [ + { + "name": "channelId", + "description": "Channel's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "mohClass", + "description": "Music on hold class to use", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Channel not found" + }, + { + "code": 409, + "reason": "Channel not in a Stasis application" + }, + { + "code": 412, + "reason": "Channel in invalid state" + } + ] + }, + { + "httpMethod": "DELETE", + "summary": "Stop playing music on hold to a channel.", + "nickname": "stopMoh", + "responseClass": "void", + "parameters": [ + { + "name": "channelId", + "description": "Channel's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Channel not found" + }, + { + "code": 409, + "reason": "Channel not in a Stasis application" + }, + { + "code": 412, + "reason": "Channel in invalid state" + } + ] + } + ] + }, + { + "path": "/channels/{channelId}/silence", + "description": "Play silence to a channel", + "operations": [ + { + "httpMethod": "POST", + "summary": "Play silence to a channel.", + "notes": "Using media operations such as /play on a channel playing silence in this manner will suspend silence without resuming automatically.", + "nickname": "startSilence", + "responseClass": "void", + "parameters": [ + { + "name": "channelId", + "description": "Channel's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Channel not found" + }, + { + "code": 409, + "reason": "Channel not in a Stasis application" + }, + { + "code": 412, + "reason": "Channel in invalid state" + } + ] + }, + { + "httpMethod": "DELETE", + "summary": "Stop playing silence to a channel.", + "nickname": "stopSilence", + "responseClass": "void", + "parameters": [ + { + "name": "channelId", + "description": "Channel's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Channel not found" + }, + { + "code": 409, + "reason": "Channel not in a Stasis application" + }, + { + "code": 412, + "reason": "Channel in invalid state" + } + ] + } + ] + }, + { + "path": "/channels/{channelId}/play", + "description": "Play media to a channel", + "operations": [ + { + "httpMethod": "POST", + "summary": "Start playback of media.", + "notes": "The media URI may be any of a number of URI's. Currently sound:, recording:, number:, digits:, characters:, and tone: URI's are supported. This operation creates a playback resource that can be used to control the playback of media (pause, rewind, fast forward, etc.)", + "nickname": "play", + "responseClass": "Playback", + "parameters": [ + { + "name": "channelId", + "description": "Channel's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "media", + "description": "Media URIs to play.", + "paramType": "query", + "required": true, + "allowMultiple": true, + "dataType": "string" + }, + { + "name": "lang", + "description": "For sounds, selects language for sound.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "offsetms", + "description": "Number of milliseconds to skip before playing. Only applies to the first URI if multiple media URIs are specified.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "int" + }, + { + "name": "skipms", + "description": "Number of milliseconds to skip for forward/reverse operations.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "int", + "defaultValue": 3000 + }, + { + "name": "playbackId", + "description": "Playback ID.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Channel not found" + }, + { + "code": 409, + "reason": "Channel not in a Stasis application" + }, + { + "code": 412, + "reason": "Channel in invalid state" + } + ] + } + ] + }, + { + "path": "/channels/{channelId}/play/{playbackId}", + "description": "Play media to a channel", + "operations": [ + { + "httpMethod": "POST", + "summary": "Start playback of media and specify the playbackId.", + "notes": "The media URI may be any of a number of URI's. Currently sound:, recording:, number:, digits:, characters:, and tone: URI's are supported. This operation creates a playback resource that can be used to control the playback of media (pause, rewind, fast forward, etc.)", + "nickname": "playWithId", + "responseClass": "Playback", + "parameters": [ + { + "name": "channelId", + "description": "Channel's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "playbackId", + "description": "Playback ID.", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "media", + "description": "Media URIs to play.", + "paramType": "query", + "required": true, + "allowMultiple": true, + "dataType": "string" + }, + { + "name": "lang", + "description": "For sounds, selects language for sound.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "offsetms", + "description": "Number of milliseconds to skip before playing. Only applies to the first URI if multiple media URIs are specified.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "int" + }, + { + "name": "skipms", + "description": "Number of milliseconds to skip for forward/reverse operations.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "int", + "defaultValue": 3000 + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Channel not found" + }, + { + "code": 409, + "reason": "Channel not in a Stasis application" + }, + { + "code": 412, + "reason": "Channel in invalid state" + } + ] + } + ] + }, + { + "path": "/channels/{channelId}/record", + "description": "Record audio from a channel", + "operations": [ + { + "httpMethod": "POST", + "summary": "Start a recording.", + "notes": "Record audio from a channel. Note that this will not capture audio sent to the channel. The bridge itself has a record feature if that's what you want.", + "nickname": "record", + "responseClass": "LiveRecording", + "parameters": [ + { + "name": "channelId", + "description": "Channel's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "name", + "description": "Recording's filename", + "paramType": "query", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "format", + "description": "Format to encode audio in", + "paramType": "query", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "maxDurationSeconds", + "description": "Maximum duration of the recording, in seconds. 0 for no limit", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "int", + "defaultValue": 0, + "allowableValues": { + "valueType": "RANGE", + "min": 0 + } + }, + { + "name": "maxSilenceSeconds", + "description": "Maximum duration of silence, in seconds. 0 for no limit", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "int", + "defaultValue": 0, + "allowableValues": { + "valueType": "RANGE", + "min": 0 + } + }, + { + "name": "ifExists", + "description": "Action to take if a recording with the same name already exists.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string", + "defaultValue": "fail", + "allowableValues": { + "valueType": "LIST", + "values": [ + "fail", + "overwrite", + "append" + ] + } + }, + { + "name": "beep", + "description": "Play beep when recording begins", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "boolean", + "defaultValue": false + }, + { + "name": "terminateOn", + "description": "DTMF input to terminate recording", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string", + "defaultValue": "none", + "allowableValues": { + "valueType": "LIST", + "values": [ + "none", + "any", + "*", + "#" + ] + } + } + ], + "errorResponses": [ + { + "code": 400, + "reason": "Invalid parameters" + }, + { + "code": 404, + "reason": "Channel not found" + }, + { + "code": 409, + "reason": "Channel is not in a Stasis application; the channel is currently bridged with other hcannels; A recording with the same name already exists on the system and can not be overwritten because it is in progress or ifExists=fail" + }, + { + "code": 422, + "reason": "The format specified is unknown on this system" + } + ] + } + ] + }, + { + "path": "/channels/{channelId}/variable", + "description": "Variables on a channel", + "operations": [ + { + "httpMethod": "GET", + "summary": "Get the value of a channel variable or function.", + "nickname": "getChannelVar", + "responseClass": "Variable", + "parameters": [ + { + "name": "channelId", + "description": "Channel's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "variable", + "description": "The channel variable or function to get", + "paramType": "query", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 400, + "reason": "Missing variable parameter." + }, + { + "code": 404, + "reason": "Channel or variable not found" + }, + { + "code": 409, + "reason": "Channel not in a Stasis application" + } + ] + }, + { + "httpMethod": "POST", + "summary": "Set the value of a channel variable or function.", + "nickname": "setChannelVar", + "responseClass": "void", + "parameters": [ + { + "name": "channelId", + "description": "Channel's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "variable", + "description": "The channel variable or function to set", + "paramType": "query", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "value", + "description": "The value to set the variable to", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 400, + "reason": "Missing variable parameter." + }, + { + "code": 404, + "reason": "Channel not found" + }, + { + "code": 409, + "reason": "Channel not in a Stasis application" + } + ] + } + ] + }, + { + "path": "/channels/{channelId}/snoop", + "description": "Snoop (spy/whisper) on a channel", + "operations": [ + { + "httpMethod": "POST", + "summary": "Start snooping.", + "notes": "Snoop (spy/whisper) on a specific channel.", + "nickname": "snoopChannel", + "responseClass": "Channel", + "parameters": [ + { + "name": "channelId", + "description": "Channel's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "spy", + "description": "Direction of audio to spy on", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string", + "defaultValue": "none", + "allowableValues": { + "valueType": "LIST", + "values": [ + "none", + "both", + "out", + "in" + ] + } + }, + { + "name": "whisper", + "description": "Direction of audio to whisper into", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string", + "defaultValue": "none", + "allowableValues": { + "valueType": "LIST", + "values": [ + "none", + "both", + "out", + "in" + ] + } + }, + { + "name": "app", + "description": "Application the snooping channel is placed into", + "paramType": "query", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "appArgs", + "description": "The application arguments to pass to the Stasis application", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "snoopId", + "description": "Unique ID to assign to snooping channel", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 400, + "reason": "Invalid parameters" + }, + { + "code": 404, + "reason": "Channel not found" + } + ] + } + ] + }, + { + "path": "/channels/{channelId}/snoop/{snoopId}", + "description": "Snoop (spy/whisper) on a channel", + "operations": [ + { + "httpMethod": "POST", + "summary": "Start snooping.", + "notes": "Snoop (spy/whisper) on a specific channel.", + "nickname": "snoopChannelWithId", + "responseClass": "Channel", + "parameters": [ + { + "name": "channelId", + "description": "Channel's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "snoopId", + "description": "Unique ID to assign to snooping channel", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "spy", + "description": "Direction of audio to spy on", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string", + "defaultValue": "none", + "allowableValues": { + "valueType": "LIST", + "values": [ + "none", + "both", + "out", + "in" + ] + } + }, + { + "name": "whisper", + "description": "Direction of audio to whisper into", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string", + "defaultValue": "none", + "allowableValues": { + "valueType": "LIST", + "values": [ + "none", + "both", + "out", + "in" + ] + } + }, + { + "name": "app", + "description": "Application the snooping channel is placed into", + "paramType": "query", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "appArgs", + "description": "The application arguments to pass to the Stasis application", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 400, + "reason": "Invalid parameters" + }, + { + "code": 404, + "reason": "Channel not found" + } + ] + } + ] + }, + { + "path": "/channels/{channelId}/dial", + "description": "Dial a channel", + "operations": [ + { + "httpMethod": "POST", + "summary": "Dial a created channel.", + "nickname": "dial", + "responseClass": "void", + "parameters": [ + { + "name": "channelId", + "description": "Channel's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "caller", + "description": "Channel ID of caller", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "timeout", + "description": "Dial timeout", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "int", + "defaultValue": 0, + "allowableValues": { + "valueType": "RANGE", + "min": 0 + } + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Channel cannot be found." + }, + { + "code": 409, + "reason": "Channel cannot be dialed." + } + ] + } + ] + } + ], + "models": { + "Dialed": { + "id": "Dialed", + "description": "Dialed channel information.", + "properties": {} + }, + "DialplanCEP": { + "id": "DialplanCEP", + "description": "Dialplan location (context/extension/priority)", + "properties": { + "context": { + "required": true, + "type": "string", + "description": "Context in the dialplan" + }, + "exten": { + "required": true, + "type": "string", + "description": "Extension in the dialplan" + }, + "priority": { + "required": true, + "type": "long", + "description": "Priority in the dialplan" + } + } + }, + "CallerID": { + "id": "CallerID", + "description": "Caller identification", + "properties": { + "name": { + "required": true, + "type": "string" + }, + "number": { + "required": true, + "type": "string" + } + } + }, + "Channel": { + "id": "Channel", + "description": "A specific communication connection between Asterisk and an Endpoint.", + "properties": { + "id": { + "required": true, + "type": "string", + "description": "Unique identifier of the channel.\n\nThis is the same as the Uniqueid field in AMI." + }, + "name": { + "required": true, + "type": "string", + "description": "Name of the channel (i.e. SIP/foo-0000a7e3)" + }, + "state": { + "required": true, + "type": "string", + "allowableValues": { + "valueType": "LIST", + "values": [ + "Down", + "Rsrved", + "OffHook", + "Dialing", + "Ring", + "Ringing", + "Up", + "Busy", + "Dialing Offhook", + "Pre-ring", + "Unknown" + ] + } + }, + "caller": { + "required": true, + "type": "CallerID" + }, + "connected": { + "required": true, + "type": "CallerID" + }, + "accountcode": { + "required": true, + "type": "string" + }, + "dialplan": { + "required": true, + "type": "DialplanCEP", + "description": "Current location in the dialplan" + }, + "creationtime": { + "required": true, + "type": "Date", + "description": "Timestamp when channel was created" + }, + "language": { + "required": true, + "type": "string", + "description": "The default spoken language" + }, + "channelvars": { + "required": false, + "type": "object", + "description": "Channel variables" + } + } + } + } +} diff --git a/codegen-data/ari_2_0_0/deviceStates.json b/codegen-data/ari_2_0_0/deviceStates.json new file mode 100644 index 00000000..94d5b93c --- /dev/null +++ b/codegen-data/ari_2_0_0/deviceStates.json @@ -0,0 +1,151 @@ +{ + "_copyright": "Copyright (C) 2012 - 2013, Digium, Inc.", + "_author": "Kevin Harwell ", + "_svn_revision": "$Revision$", + "apiVersion": "2.0.0", + "swaggerVersion": "1.1", + "basePath": "http://localhost:8088/ari", + "resourcePath": "/api-docs/deviceStates.{format}", + "apis": [ + { + "path": "/deviceStates", + "description": "Device states", + "operations": [ + { + "httpMethod": "GET", + "summary": "List all ARI controlled device states.", + "nickname": "list", + "responseClass": "List[DeviceState]" + } + ] + }, + { + "path": "/deviceStates/{deviceName}", + "description": "Device state", + "operations": [ + { + "httpMethod": "GET", + "summary": "Retrieve the current state of a device.", + "nickname": "get", + "responseClass": "DeviceState", + "parameters": [ + { + "name": "deviceName", + "description": "Name of the device", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ] + }, + { + "httpMethod": "PUT", + "summary": "Change the state of a device controlled by ARI. (Note - implicitly creates the device state).", + "nickname": "update", + "responseClass": "void", + "parameters": [ + { + "name": "deviceName", + "description": "Name of the device", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "deviceState", + "description": "Device state value", + "paramType": "query", + "required": true, + "allowMultiple": false, + "dataType": "string", + "allowableValues": { + "valueType": "LIST", + "values": [ + "NOT_INUSE", + "INUSE", + "BUSY", + "INVALID", + "UNAVAILABLE", + "RINGING", + "RINGINUSE", + "ONHOLD" + ] + } + + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Device name is missing" + }, + { + "code": 409, + "reason": "Uncontrolled device specified" + } + ] + }, + { + "httpMethod": "DELETE", + "summary": "Destroy a device-state controlled by ARI.", + "nickname": "delete", + "responseClass": "void", + "parameters": [ + { + "name": "deviceName", + "description": "Name of the device", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Device name is missing" + }, + { + "code": 409, + "reason": "Uncontrolled device specified" + } + ] + } + ] + } + ], + "models": { + "DeviceState": { + "id": "DeviceState", + "description": "Represents the state of a device.", + "properties": { + "name": { + "type": "string", + "description": "Name of the device.", + "required": true + }, + "state": { + "type": "string", + "description": "Device's state", + "required": true, + "allowableValues": { + "valueType": "LIST", + "values": [ + "UNKNOWN", + "NOT_INUSE", + "INUSE", + "BUSY", + "INVALID", + "UNAVAILABLE", + "RINGING", + "RINGINUSE", + "ONHOLD" + ] + } + } + } + } + } +} diff --git a/codegen-data/ari_2_0_0/endpoints.json b/codegen-data/ari_2_0_0/endpoints.json new file mode 100644 index 00000000..264c0eb2 --- /dev/null +++ b/codegen-data/ari_2_0_0/endpoints.json @@ -0,0 +1,279 @@ +{ + "_copyright": "Copyright (C) 2012 - 2013, Digium, Inc.", + "_author": "David M. Lee, II ", + "_svn_revision": "$Revision$", + "apiVersion": "2.0.0", + "swaggerVersion": "1.1", + "basePath": "http://localhost:8088/ari", + "resourcePath": "/api-docs/endpoints.{format}", + "apis": [ + { + "path": "/endpoints", + "description": "Asterisk endpoints", + "operations": [ + { + "httpMethod": "GET", + "summary": "List all endpoints.", + "nickname": "list", + "responseClass": "List[Endpoint]" + } + ] + }, + { + "path": "/endpoints/sendMessage", + "description": "Send a message to some technology URI or endpoint.", + "operations": [ + { + "httpMethod": "PUT", + "summary": "Send a message to some technology URI or endpoint.", + "nickname": "sendMessage", + "responseClass": "void", + "parameters": [ + { + "name": "to", + "description": "The endpoint resource or technology specific URI to send the message to. Valid resources are sip, pjsip, and xmpp.", + "paramType": "query", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "from", + "description": "The endpoint resource or technology specific identity to send this message from. Valid resources are sip, pjsip, and xmpp.", + "paramType": "query", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "body", + "description": "The body of the message", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "variables", + "descriptioni": "The \"variables\" key in the body object holds technology specific key/value pairs to append to the message. These can be interpreted and used by the various resource types; for example, pjsip and sip resource types will add the key/value pairs as SIP headers,", + "paramType": "body", + "required": false, + "dataType": "containers", + "allowMultiple": false + } + ], + "errorResponses": [ + { + "code": 400, + "reason": "Invalid parameters for sending a message." + }, + { + "code": 404, + "reason": "Endpoint not found" + } + ] + } + ] + }, + { + "path": "/endpoints/{tech}", + "description": "Asterisk endpoints", + "operations": [ + { + "httpMethod": "GET", + "summary": "List available endoints for a given endpoint technology.", + "nickname": "listByTech", + "responseClass": "List[Endpoint]", + "parameters": [ + { + "name": "tech", + "description": "Technology of the endpoints (sip,iax2,...)", + "paramType": "path", + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Endpoints not found" + } + ] + } + ] + }, + { + "path": "/endpoints/{tech}/{resource}", + "description": "Single endpoint", + "operations": [ + { + "httpMethod": "GET", + "summary": "Details for an endpoint.", + "nickname": "get", + "responseClass": "Endpoint", + "parameters": [ + { + "name": "tech", + "description": "Technology of the endpoint", + "paramType": "path", + "dataType": "string" + }, + { + "name": "resource", + "description": "ID of the endpoint", + "paramType": "path", + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 400, + "reason": "Invalid parameters for sending a message." + }, + { + "code": 404, + "reason": "Endpoints not found" + } + ] + } + ] + }, + { + "path": "/endpoints/{tech}/{resource}/sendMessage", + "description": "Send a message to some endpoint in a technology.", + "operations": [ + { + "httpMethod": "PUT", + "summary": "Send a message to some endpoint in a technology.", + "nickname": "sendMessageToEndpoint", + "responseClass": "void", + "parameters": [ + { + "name": "tech", + "description": "Technology of the endpoint", + "paramType": "path", + "dataType": "string" + }, + { + "name": "resource", + "description": "ID of the endpoint", + "paramType": "path", + "dataType": "string" + }, + { + "name": "from", + "description": "The endpoint resource or technology specific identity to send this message from. Valid resources are sip, pjsip, and xmpp.", + "paramType": "query", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "body", + "description": "The body of the message", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "variables", + "descriptioni": "The \"variables\" key in the body object holds technology specific key/value pairs to append to the message. These can be interpreted and used by the various resource types; for example, pjsip and sip resource types will add the key/value pairs as SIP headers,", + "paramType": "body", + "required": false, + "dataType": "containers", + "allowMultiple": false + } + ], + "errorResponses": [ + { + "code": 400, + "reason": "Invalid parameters for sending a message." + }, + { + "code": 404, + "reason": "Endpoint not found" + } + ] + } + ] + } + ], + "models": { + "Endpoint": { + "id": "Endpoint", + "description": "An external device that may offer/accept calls to/from Asterisk.\n\nUnlike most resources, which have a single unique identifier, an endpoint is uniquely identified by the technology/resource pair.", + "properties": { + "technology": { + "type": "string", + "description": "Technology of the endpoint", + "required": true + }, + "resource": { + "type": "string", + "description": "Identifier of the endpoint, specific to the given technology.", + "required": true + }, + "state": { + "type": "string", + "description": "Endpoint's state", + "required": false, + "allowableValues": { + "valueType": "LIST", + "values": [ + "unknown", + "offline", + "online" + ] + } + }, + "channel_ids": { + "type": "List[string]", + "description": "Id's of channels associated with this endpoint", + "required": true + } + } + }, + "TextMessageVariable": { + "id": "TextMessageVariable", + "description": "A key/value pair variable in a text message.", + "properties": { + "key": { + "type": "string", + "description": "A unique key identifying the variable.", + "required": true + }, + "value": { + "type": "string", + "description": "The value of the variable.", + "required": true + } + } + }, + "TextMessage": { + "id": "TextMessage", + "description": "A text message.", + "properties": { + "from": { + "type": "string", + "description": "A technology specific URI specifying the source of the message. For sip and pjsip technologies, any SIP URI can be specified. For xmpp, the URI must correspond to the client connection being used to send the message.", + "required": true + }, + "to": { + "type": "string", + "description": "A technology specific URI specifying the destination of the message. Valid technologies include sip, pjsip, and xmp. The destination of a message should be an endpoint.", + "required": true + }, + "body": { + "type": "string", + "description": "The text of the message.", + "required": true + }, + "variables": { + "type": "List[TextMessageVariable]", + "description": "Technology specific key/value pairs associated with the message.", + "required": false + } + } + } + } +} diff --git a/codegen-data/ari_2_0_0/events.json b/codegen-data/ari_2_0_0/events.json new file mode 100644 index 00000000..9ebbac06 --- /dev/null +++ b/codegen-data/ari_2_0_0/events.json @@ -0,0 +1,895 @@ +{ + "_copyright": "Copyright (C) 2012 - 2013, Digium, Inc.", + "_author": "David M. Lee, II ", + "_svn_revision": "$Revision$", + "apiVersion": "2.0.0", + "swaggerVersion": "1.2", + "basePath": "http://localhost:8088/ari", + "resourcePath": "/api-docs/events.{format}", + "apis": [ + { + "path": "/events", + "description": "Events from Asterisk to applications", + "operations": [ + { + "httpMethod": "GET", + "upgrade": "websocket", + "websocketProtocol": "ari", + "summary": "WebSocket connection for events.", + "nickname": "eventWebsocket", + "responseClass": "Message", + "parameters": [ + { + "name": "app", + "description": "Applications to subscribe to.", + "paramType": "query", + "required": true, + "allowMultiple": true, + "dataType": "string" + }, + { + "name": "subscribeAll", + "description": "Subscribe to all Asterisk events. If provided, the applications listed will be subscribed to all events, effectively disabling the application specific subscriptions. Default is 'false'.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "boolean" + } + ] + } + ] + }, + { + "path": "/events/user/{eventName}", + "description": "Stasis application user events", + "operations": [ + { + "httpMethod": "POST", + "summary": "Generate a user event.", + "nickname": "userEvent", + "responseClass": "void", + "parameters": [ + { + "name": "eventName", + "description": "Event name", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "application", + "description": "The name of the application that will receive this event", + "paramType": "query", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "source", + "description": "URI for event source (channel:{channelId}, bridge:{bridgeId}, endpoint:{tech}/{resource}, deviceState:{deviceName}", + "paramType": "query", + "required": false, + "allowMultiple": true, + "dataType": "string" + }, + { + "name": "variables", + "description": "The \"variables\" key in the body object holds custom key/value pairs to add to the user event. Ex. { \"variables\": { \"key\": \"value\" } }", + "paramType": "body", + "required": false, + "allowMultiple": false, + "dataType": "containers" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Application does not exist." + }, + { + "code": 422, + "reason": "Event source not found." + }, + { + "code": 400, + "reason": "Invalid even tsource URI or userevent data." + } + ] + } + ] + } + ], + "models": { + "Message": { + "id": "Message", + "description": "Base type for errors and events", + "discriminator": "type", + "properties": { + "type": { + "type": "string", + "required": true, + "description": "Indicates the type of this message." + }, + "asterisk_id": { + "type": "string", + "required": false, + "description": "The unique ID for the Asterisk instance that raised this event." + } + }, + "subTypes": [ + "MissingParams", + "Event" + ] + }, + "MissingParams": { + "id": "MissingParams", + "description": "Error event sent when required params are missing.", + "properties": { + "params": { + "required": true, + "type": "List[string]", + "description": "A list of the missing parameters" + } + } + }, + "Event": { + "id": "Event", + "description": "Base type for asynchronous events from Asterisk.", + "properties": { + "application": { + "type": "string", + "description": "Name of the application receiving the event.", + "required": true + }, + "timestamp": { + "type": "Date", + "description": "Time at which this event was created.", + "required": false + } + }, + "subTypes": [ + "DeviceStateChanged", + "PlaybackStarted", + "PlaybackContinuing", + "PlaybackFinished", + "RecordingStarted", + "RecordingFinished", + "RecordingFailed", + "ApplicationReplaced", + "BridgeCreated", + "BridgeDestroyed", + "BridgeMerged", + "BridgeBlindTransfer", + "BridgeAttendedTransfer", + "BridgeVideoSourceChanged", + "ChannelCreated", + "ChannelDestroyed", + "ChannelEnteredBridge", + "ChannelLeftBridge", + "ChannelStateChange", + "ChannelDtmfReceived", + "ChannelDialplan", + "ChannelCallerId", + "ChannelUserevent", + "ChannelHangupRequest", + "ChannelVarset", + "ChannelTalkingStarted", + "ChannelTalkingFinished", + "ChannelHold", + "ChannelUnhold", + "ContactStatusChange", + "EndpointStateChange", + "Dial", + "StasisEnd", + "StasisStart", + "TextMessageReceived", + "ChannelConnectedLine", + "PeerStatusChange" + ] + }, + "ContactInfo": { + "id": "ContactInfo", + "description": "Detailed information about a contact on an endpoint.", + "properties": { + "uri": { + "type": "string", + "description": "The location of the contact.", + "required": true + }, + "contact_status": { + "type": "string", + "description": "The current status of the contact.", + "required": true, + "allowableValues": { + "valueType": "LIST", + "values": [ + "Unreachable", + "Reachable", + "Unknown", + "Created", + "Removed" + ] + } + }, + "aor": { + "type": "string", + "description": "The Address of Record this contact belongs to.", + "required": true + }, + "roundtrip_usec": { + "type": "string", + "description": "Current round trip time, in microseconds, for the contact.", + "required": false + } + } + }, + "Peer": { + "id": "Peer", + "description": "Detailed information about a remote peer that communicates with Asterisk.", + "properties": { + "peer_status": { + "type": "string", + "description": "The current state of the peer. Note that the values of the status are dependent on the underlying peer technology.", + "required": true + }, + "cause": { + "type": "string", + "description": "An optional reason associated with the change in peer_status.", + "required": false + }, + "address": { + "type": "string", + "description": "The IP address of the peer.", + "required": false + }, + "port": { + "type": "string", + "description": "The port of the peer.", + "required": false + }, + "time": { + "type": "string", + "description": "The last known time the peer was contacted.", + "required": false + } + } + }, + "DeviceStateChanged": { + "id": "DeviceStateChanged", + "description": "Notification that a device state has changed.", + "properties": { + "device_state": { + "type": "DeviceState", + "description": "Device state object", + "required": true + } + } + }, + "PlaybackStarted": { + "id": "PlaybackStarted", + "description": "Event showing the start of a media playback operation.", + "properties": { + "playback": { + "type": "Playback", + "description": "Playback control object", + "required": true + } + } + }, + "PlaybackContinuing": { + "id": "PlaybackContinuing", + "description": "Event showing the continuation of a media playback operation from one media URI to the next in the list.", + "properties": { + "playback": { + "type": "Playback", + "description": "Playback control object", + "required": true + } + } + }, + "PlaybackFinished": { + "id": "PlaybackFinished", + "description": "Event showing the completion of a media playback operation.", + "properties": { + "playback": { + "type": "Playback", + "description": "Playback control object", + "required": true + } + } + }, + "RecordingStarted": { + "id": "RecordingStarted", + "description": "Event showing the start of a recording operation.", + "properties": { + "recording": { + "type": "LiveRecording", + "description": "Recording control object", + "required": true + } + } + }, + "RecordingFinished": { + "id": "RecordingFinished", + "description": "Event showing the completion of a recording operation.", + "properties": { + "recording": { + "type": "LiveRecording", + "description": "Recording control object", + "required": true + } + } + }, + "RecordingFailed": { + "id": "RecordingFailed", + "description": "Event showing failure of a recording operation.", + "properties": { + "recording": { + "type": "LiveRecording", + "description": "Recording control object", + "required": true + } + } + }, + "ApplicationReplaced": { + "id": "ApplicationReplaced", + "description": "Notification that another WebSocket has taken over for an application.\n\nAn application may only be subscribed to by a single WebSocket at a time. If multiple WebSockets attempt to subscribe to the same application, the newer WebSocket wins, and the older one receives this event.", + "properties": {} + }, + "BridgeCreated": { + "id": "BridgeCreated", + "description": "Notification that a bridge has been created.", + "properties": { + "bridge": { + "required": true, + "type": "Bridge" + } + } + }, + "BridgeDestroyed": { + "id": "BridgeDestroyed", + "description": "Notification that a bridge has been destroyed.", + "properties": { + "bridge": { + "required": true, + "type": "Bridge" + } + } + }, + "BridgeMerged": { + "id": "BridgeMerged", + "description": "Notification that one bridge has merged into another.", + "properties": { + "bridge": { + "required": true, + "type": "Bridge" + }, + "bridge_from": { + "required": true, + "type": "Bridge" + } + } + }, + "BridgeVideoSourceChanged": { + "id": "BridgeVideoSourceChanged", + "description": "Notification that the source of video in a bridge has changed.", + "properties": { + "bridge": { + "required": true, + "type": "Bridge" + }, + "old_video_source_id": { + "required": false, + "type": "string" + } + } + }, + "BridgeBlindTransfer": { + "id": "BridgeBlindTransfer", + "description": "Notification that a blind transfer has occurred.", + "properties": { + "channel": { + "description": "The channel performing the blind transfer", + "required": true, + "type": "Channel" + }, + "replace_channel": { + "description": "The channel that is replacing transferer when the transferee(s) can not be transferred directly", + "required": false, + "type": "Channel" + }, + "transferee": { + "description": "The channel that is being transferred", + "required": false, + "type": "Channel" + }, + "exten": { + "description": "The extension transferred to", + "required": true, + "type": "string" + }, + "context": { + "description": "The context transferred to", + "required": true, + "type": "string" + }, + "result": { + "description": "The result of the transfer attempt", + "required": true, + "type": "string" + }, + "is_external": { + "description": "Whether the transfer was externally initiated or not", + "required": true, + "type": "boolean" + }, + "bridge": { + "description": "The bridge being transferred", + "type": "Bridge" + } + } + }, + "BridgeAttendedTransfer": { + "id": "BridgeAttendedTransfer", + "description": "Notification that an attended transfer has occurred.", + "properties": { + "transferer_first_leg": { + "description": "First leg of the transferer", + "required": true, + "type": "Channel" + }, + "transferer_second_leg": { + "description": "Second leg of the transferer", + "required": true, + "type": "Channel" + }, + "replace_channel": { + "description": "The channel that is replacing transferer_first_leg in the swap", + "required": false, + "type": "Channel" + }, + "transferee": { + "description": "The channel that is being transferred", + "required": false, + "type": "Channel" + }, + "transfer_target": { + "description": "The channel that is being transferred to", + "required": false, + "type": "Channel" + }, + "result": { + "description": "The result of the transfer attempt", + "required": true, + "type": "string" + }, + "is_external": { + "description": "Whether the transfer was externally initiated or not", + "required": true, + "type": "boolean" + }, + "transferer_first_leg_bridge": { + "description": "Bridge the transferer first leg is in", + "type": "Bridge" + }, + "transferer_second_leg_bridge": { + "description": "Bridge the transferer second leg is in", + "type": "Bridge" + }, + "destination_type": { + "description": "How the transfer was accomplished", + "required": true, + "type": "string" + }, + "destination_bridge": { + "description": "Bridge that survived the merge result", + "type": "string" + }, + "destination_application": { + "description": "Application that has been transferred into", + "type": "string" + }, + "destination_link_first_leg": { + "description": "First leg of a link transfer result", + "type": "Channel" + }, + "destination_link_second_leg": { + "description": "Second leg of a link transfer result", + "type": "Channel" + }, + "destination_threeway_channel": { + "description": "Transferer channel that survived the threeway result", + "type": "Channel" + }, + "destination_threeway_bridge": { + "description": "Bridge that survived the threeway result", + "type": "Bridge" + } + } + }, + "ChannelCreated": { + "id": "ChannelCreated", + "description": "Notification that a channel has been created.", + "properties": { + "channel": { + "required": true, + "type": "Channel" + } + } + }, + "ChannelDestroyed": { + "id": "ChannelDestroyed", + "description": "Notification that a channel has been destroyed.", + "properties": { + "cause": { + "required": true, + "description": "Integer representation of the cause of the hangup", + "type": "int" + }, + "cause_txt": { + "required": true, + "description": "Text representation of the cause of the hangup", + "type": "string" + }, + "channel": { + "required": true, + "type": "Channel" + } + } + }, + "ChannelEnteredBridge": { + "id": "ChannelEnteredBridge", + "description": "Notification that a channel has entered a bridge.", + "properties": { + "bridge": { + "required": true, + "type": "Bridge" + }, + "channel": { + "type": "Channel" + } + } + }, + "ChannelLeftBridge": { + "id": "ChannelLeftBridge", + "description": "Notification that a channel has left a bridge.", + "properties": { + "bridge": { + "required": true, + "type": "Bridge" + }, + "channel": { + "required": true, + "type": "Channel" + } + } + }, + "ChannelStateChange": { + "id": "ChannelStateChange", + "description": "Notification of a channel's state change.", + "properties": { + "channel": { + "required": true, + "type": "Channel" + } + } + }, + "ChannelDtmfReceived": { + "id": "ChannelDtmfReceived", + "description": "DTMF received on a channel.\n\nThis event is sent when the DTMF ends. There is no notification about the start of DTMF", + "properties": { + "digit": { + "required": true, + "type": "string", + "description": "DTMF digit received (0-9, A-E, # or *)" + }, + "duration_ms": { + "required": true, + "type": "int", + "description": "Number of milliseconds DTMF was received" + }, + "channel": { + "required": true, + "type": "Channel", + "description": "The channel on which DTMF was received" + } + } + }, + "ChannelDialplan": { + "id": "ChannelDialplan", + "description": "Channel changed location in the dialplan.", + "properties": { + "channel": { + "required": true, + "type": "Channel", + "description": "The channel that changed dialplan location." + }, + "dialplan_app": { + "required": true, + "type": "string", + "description": "The application about to be executed." + }, + "dialplan_app_data": { + "required": true, + "type": "string", + "description": "The data to be passed to the application." + } + } + }, + "ChannelCallerId": { + "id": "ChannelCallerId", + "description": "Channel changed Caller ID.", + "properties": { + "caller_presentation": { + "required": true, + "type": "int", + "description": "The integer representation of the Caller Presentation value." + }, + "caller_presentation_txt": { + "required": true, + "type": "string", + "description": "The text representation of the Caller Presentation value." + }, + "channel": { + "required": true, + "type": "Channel", + "description": "The channel that changed Caller ID." + } + } + }, + "ChannelUserevent": { + "id": "ChannelUserevent", + "description": "User-generated event with additional user-defined fields in the object.", + "properties": { + "eventname": { + "required": true, + "type": "string", + "description": "The name of the user event." + }, + "channel": { + "required": false, + "type": "Channel", + "description": "A channel that is signaled with the user event." + }, + "bridge": { + "required": false, + "type": "Bridge", + "description": "A bridge that is signaled with the user event." + }, + "endpoint": { + "required": false, + "type": "Endpoint", + "description": "A endpoint that is signaled with the user event." + }, + "userevent": { + "required": true, + "type": "object", + "description": "Custom Userevent data" + } + } + }, + "ChannelHangupRequest": { + "id": "ChannelHangupRequest", + "description": "A hangup was requested on the channel.", + "properties": { + "cause": { + "type": "int", + "description": "Integer representation of the cause of the hangup." + }, + "soft": { + "type": "boolean", + "description": "Whether the hangup request was a soft hangup request." + }, + "channel": { + "required": true, + "type": "Channel", + "description": "The channel on which the hangup was requested." + } + } + }, + "ChannelVarset": { + "id": "ChannelVarset", + "description": "Channel variable changed.", + "properties": { + "variable": { + "required": true, + "type": "string", + "description": "The variable that changed." + }, + "value": { + "required": true, + "type": "string", + "description": "The new value of the variable." + }, + "channel": { + "required": false, + "type": "Channel", + "description": "The channel on which the variable was set.\n\nIf missing, the variable is a global variable." + } + } + }, + "ChannelHold": { + "id": "ChannelHold", + "description": "A channel initiated a media hold.", + "properties": { + "channel": { + "required": true, + "type": "Channel", + "description": "The channel that initiated the hold event." + }, + "musicclass": { + "required": false, + "type": "string", + "description": "The music on hold class that the initiator requested." + } + } + }, + "ChannelUnhold": { + "id": "ChannelUnhold", + "description": "A channel initiated a media unhold.", + "properties": { + "channel": { + "required": true, + "type": "Channel", + "description": "The channel that initiated the unhold event." + } + } + }, + "ChannelTalkingStarted": { + "id": "ChannelTalkingStarted", + "description": "Talking was detected on the channel.", + "properties": { + "channel": { + "required": true, + "type": "Channel", + "description": "The channel on which talking started." + } + } + }, + "ChannelTalkingFinished": { + "id": "ChannelTalkingFinished", + "description": "Talking is no longer detected on the channel.", + "properties": { + "channel": { + "required": true, + "type": "Channel", + "description": "The channel on which talking completed." + }, + "duration": { + "required": true, + "type": "int", + "description": "The length of time, in milliseconds, that talking was detected on the channel" + } + } + }, + "ContactStatusChange": { + "id": "ContactStatusChange", + "description": "The state of a contact on an endpoint has changed.", + "properties": { + "endpoint": { + "required": true, + "type": "Endpoint" + }, + "contact_info": { + "required": true, + "type": "ContactInfo" + } + } + }, + "PeerStatusChange": { + "id": "PeerStatusChange", + "description": "The state of a peer associated with an endpoint has changed.", + "properties": { + "endpoint": { + "required": true, + "type": "Endpoint" + }, + "peer": { + "required": true, + "type": "Peer" + } + } + }, + "EndpointStateChange": { + "id": "EndpointStateChange", + "description": "Endpoint state changed.", + "properties": { + "endpoint": { + "required": true, + "type": "Endpoint" + } + } + }, + "Dial": { + "id": "Dial", + "description": "Dialing state has changed.", + "properties": { + "caller": { + "required": false, + "type": "Channel", + "description": "The calling channel." + }, + "peer": { + "required": true, + "type": "Channel", + "description": "The dialed channel." + }, + "forward": { + "required": false, + "type": "string", + "description": "Forwarding target requested by the original dialed channel." + }, + "forwarded": { + "required": false, + "type": "Channel", + "description": "Channel that the caller has been forwarded to." + }, + "dialstring": { + "required": false, + "type": "string", + "description": "The dial string for calling the peer channel." + }, + "dialstatus": { + "required": true, + "type": "string", + "description": "Current status of the dialing attempt to the peer." + } + } + }, + "StasisEnd": { + "id": "StasisEnd", + "description": "Notification that a channel has left a Stasis application.", + "properties": { + "channel": { + "required": true, + "type": "Channel" + } + } + }, + "StasisStart": { + "id": "StasisStart", + "description": "Notification that a channel has entered a Stasis application.", + "properties": { + "args": { + "required": true, + "type": "List[string]", + "description": "Arguments to the application" + }, + "channel": { + "required": true, + "type": "Channel" + }, + "replace_channel": { + "required": false, + "type": "Channel" + } + } + }, + "TextMessageReceived": { + "id": "TextMessageReceived", + "description": "A text message was received from an endpoint.", + "properties": { + "message": { + "required": true, + "type": "TextMessage" + }, + "endpoint": { + "required": false, + "type": "Endpoint" + } + } + }, + "ChannelConnectedLine": { + "id": "ChannelConnectedLine", + "description": "Channel changed Connected Line.", + "properties": { + "channel": { + "required": true, + "type": "Channel", + "description": "The channel whose connected line has changed." + } + } + } + } +} diff --git a/codegen-data/ari_2_0_0/mailboxes.json b/codegen-data/ari_2_0_0/mailboxes.json new file mode 100644 index 00000000..ed50019f --- /dev/null +++ b/codegen-data/ari_2_0_0/mailboxes.json @@ -0,0 +1,134 @@ +{ + "_copyright": "Copyright (C) 2013, Digium, Inc.", + "_author": "Jonathan Rose ", + "_svn_revision": "$Revision$", + "apiVersion": "2.0.0", + "swaggerVersion": "1.1", + "basePath": "http://localhost:8088/ari", + "resourcePath": "/api-docs/mailboxes.{format}", + "apis": [ + { + "path": "/mailboxes", + "description": "Mailboxes", + "operations": [ + { + "httpMethod": "GET", + "summary": "List all mailboxes.", + "nickname": "list", + "responseClass": "List[Mailbox]" + } + ] + }, + { + "path": "/mailboxes/{mailboxName}", + "description": "Mailbox state", + "operations": [ + { + "httpMethod": "GET", + "summary": "Retrieve the current state of a mailbox.", + "nickname": "get", + "responseClass": "Mailbox", + "parameters": [ + { + "name": "mailboxName", + "description": "Name of the mailbox", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Mailbox not found" + } + ] + }, + { + "httpMethod": "PUT", + "summary": "Change the state of a mailbox. (Note - implicitly creates the mailbox).", + "nickname": "update", + "responseClass": "void", + "parameters": [ + { + "name": "mailboxName", + "description": "Name of the mailbox", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "oldMessages", + "description": "Count of old messages in the mailbox", + "paramType": "query", + "required": true, + "allowMultiple": false, + "dataType": "int" + }, + { + "name": "newMessages", + "description": "Count of new messages in the mailbox", + "paramType": "query", + "required": true, + "allowMultiple": false, + "dataType": "int" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Mailbox not found" + } + ] + }, + { + "httpMethod": "DELETE", + "summary": "Destroy a mailbox.", + "nickname": "delete", + "responseClass": "void", + "parameters": [ + { + "name": "mailboxName", + "description": "Name of the mailbox", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Mailbox not found" + } + ] + } + ] + } + ], + "models": { + "Mailbox": { + "id": "Mailbox", + "description": "Represents the state of a mailbox.", + "properties": { + "name": { + "type": "string", + "description": "Name of the mailbox.", + "required": true + }, + "old_messages": { + "type": "int", + "description": "Count of old messages in the mailbox.", + "required": true + }, + "new_messages": { + "type": "int", + "description": "Count of new messages in the mailbox.", + "required": true + } + } + } + } +} diff --git a/codegen-data/ari_2_0_0/playbacks.json b/codegen-data/ari_2_0_0/playbacks.json new file mode 100644 index 00000000..3dc4e1da --- /dev/null +++ b/codegen-data/ari_2_0_0/playbacks.json @@ -0,0 +1,161 @@ +{ + "_copyright": "Copyright (C) 2012 - 2013, Digium, Inc.", + "_author": "David M. Lee, II ", + "_svn_revision": "$Revision$", + "apiVersion": "2.0.0", + "swaggerVersion": "1.1", + "basePath": "http://localhost:8088/ari", + "resourcePath": "/api-docs/playbacks.{format}", + "apis": [ + { + "path": "/playbacks/{playbackId}", + "description": "Control object for a playback operation.", + "operations": [ + { + "httpMethod": "GET", + "summary": "Get a playback's details.", + "nickname": "get", + "responseClass": "Playback", + "parameters": [ + { + "name": "playbackId", + "description": "Playback's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "The playback cannot be found" + } + ] + }, + { + "httpMethod": "DELETE", + "summary": "Stop a playback.", + "nickname": "stop", + "responseClass": "void", + "parameters": [ + { + "name": "playbackId", + "description": "Playback's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "The playback cannot be found" + } + ] + } + ] + }, + { + "path": "/playbacks/{playbackId}/control", + "description": "Control object for a playback operation.", + "operations": [ + { + "httpMethod": "POST", + "summary": "Control a playback.", + "nickname": "control", + "responseClass": "void", + "parameters": [ + { + "name": "playbackId", + "description": "Playback's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "operation", + "description": "Operation to perform on the playback.", + "paramType": "query", + "required": true, + "allowMultiple": false, + "dataType": "string", + "allowableValues": { + "valueType": "LIST", + "values": [ + "restart", + "pause", + "unpause", + "reverse", + "forward" + ] + } + } + ], + "errorResponses": [ + { + "code": 400, + "reason": "The provided operation parameter was invalid" + }, + { + "code": 404, + "reason": "The playback cannot be found" + }, + { + "code": 409, + "reason": "The operation cannot be performed in the playback's current state" + } +] + } + ] + } + ], + "models": { + "Playback": { + "id": "Playback", + "description": "Object representing the playback of media to a channel", + "properties": { + "id": { + "type": "string", + "description": "ID for this playback operation", + "required": true + }, + "media_uri": { + "type": "string", + "description": "The URI for the media currently being played back.", + "required": true + }, + "next_media_uri": { + "type": "string", + "description": "If a list of URIs is being played, the next media URI to be played back.", + "required": false + }, + "target_uri": { + "type": "string", + "description": "URI for the channel or bridge to play the media on", + "required": true + }, + "language": { + "type": "string", + "description": "For media types that support multiple languages, the language requested for playback." + }, + "state": { + "type": "string", + "description": "Current state of the playback operation.", + "required": true, + "allowableValues": { + "valueType": "LIST", + "values": [ + "queued", + "playing", + "continuing", + "done" + ] + } + } + } + } + } +} diff --git a/codegen-data/ari_2_0_0/recordings.json b/codegen-data/ari_2_0_0/recordings.json new file mode 100644 index 00000000..d0b9630d --- /dev/null +++ b/codegen-data/ari_2_0_0/recordings.json @@ -0,0 +1,410 @@ +{ + "_copyright": "Copyright (C) 2012 - 2013, Digium, Inc.", + "_author": "David M. Lee, II ", + "_svn_revision": "$Revision$", + "apiVersion": "2.0.0", + "swaggerVersion": "1.1", + "basePath": "http://localhost:8088/ari", + "resourcePath": "/api-docs/recordings.{format}", + "apis": [ + { + "path": "/recordings/stored", + "description": "Recordings", + "operations": [ + { + "httpMethod": "GET", + "summary": "List recordings that are complete.", + "nickname": "listStored", + "responseClass": "List[StoredRecording]" + } + ] + }, + { + "path": "/recordings/stored/{recordingName}", + "description": "Individual recording", + "operations": [ + { + "httpMethod": "GET", + "summary": "Get a stored recording's details.", + "nickname": "getStored", + "responseClass": "StoredRecording", + "parameters": [ + { + "name": "recordingName", + "description": "The name of the recording", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Recording not found" + } + ] + }, + { + "httpMethod": "DELETE", + "summary": "Delete a stored recording.", + "nickname": "deleteStored", + "responseClass": "void", + "parameters": [ + { + "name": "recordingName", + "description": "The name of the recording", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Recording not found" + } + ] + } + ] + }, + { + "path": "/recordings/stored/{recordingName}/file", + "description": "The actual file associated with the stored recording", + "operations": [ + { + "httpMethod": "GET", + "summary": "Get the file associated with the stored recording.", + "nickname": "getStoredFile", + "responseClass": "binary", + "parameters": [ + { + "name": "recordingName", + "description": "The name of the recording", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 403, + "reason": "The recording file could not be opened" + }, + { + "code": 404, + "reason": "Recording not found" + } + ] + } + ] + }, + { + "path": "/recordings/stored/{recordingName}/copy", + "description": "Copy an individual recording", + "operations": [ + { + "httpMethod": "POST", + "summary": "Copy a stored recording.", + "nickname": "copyStored", + "responseClass": "StoredRecording", + "parameters": [ + { + "name": "recordingName", + "description": "The name of the recording to copy", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "destinationRecordingName", + "description": "The destination name of the recording", + "paramType": "query", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Recording not found" + }, + { + "code": 409, + "reason": "A recording with the same name already exists on the system" + } + ] + } + ] + }, + { + "path": "/recordings/live/{recordingName}", + "description": "A recording that is in progress", + "operations": [ + { + "httpMethod": "GET", + "summary": "List live recordings.", + "nickname": "getLive", + "responseClass": "LiveRecording", + "parameters": [ + { + "name": "recordingName", + "description": "The name of the recording", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Recording not found" + } + ] + }, + { + "httpMethod": "DELETE", + "summary": "Stop a live recording and discard it.", + "nickname": "cancel", + "responseClass": "void", + "parameters": [ + { + "name": "recordingName", + "description": "The name of the recording", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Recording not found" + } + ] + } + ] + }, + { + "path": "/recordings/live/{recordingName}/stop", + "operations": [ + { + "httpMethod": "POST", + "summary": "Stop a live recording and store it.", + "nickname": "stop", + "responseClass": "void", + "parameters": [ + { + "name": "recordingName", + "description": "The name of the recording", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Recording not found" + } + ] + } + ] + }, + { + "path": "/recordings/live/{recordingName}/pause", + "operations": [ + { + "httpMethod": "POST", + "summary": "Pause a live recording.", + "notes": "Pausing a recording suspends silence detection, which will be restarted when the recording is unpaused. Paused time is not included in the accounting for maxDurationSeconds.", + "nickname": "pause", + "responseClass": "void", + "parameters": [ + { + "name": "recordingName", + "description": "The name of the recording", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Recording not found" + }, + { + "code": 409, + "reason": "Recording not in session" + } + ] + }, + { + "httpMethod": "DELETE", + "summary": "Unpause a live recording.", + "nickname": "unpause", + "responseClass": "void", + "parameters": [ + { + "name": "recordingName", + "description": "The name of the recording", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Recording not found" + }, + { + "code": 409, + "reason": "Recording not in session" + } + ] + } + ] + }, + { + "path": "/recordings/live/{recordingName}/mute", + "operations": [ + { + "httpMethod": "POST", + "summary": "Mute a live recording.", + "notes": "Muting a recording suspends silence detection, which will be restarted when the recording is unmuted.", + "nickname": "mute", + "responseClass": "void", + "parameters": [ + { + "name": "recordingName", + "description": "The name of the recording", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Recording not found" + }, + { + "code": 409, + "reason": "Recording not in session" + } + ] + }, + { + "httpMethod": "DELETE", + "summary": "Unmute a live recording.", + "nickname": "unmute", + "responseClass": "void", + "parameters": [ + { + "name": "recordingName", + "description": "The name of the recording", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Recording not found" + }, + { + "code": 409, + "reason": "Recording not in session" + } + ] + } + ] + } + ], + "models": { + "StoredRecording": { + "id": "StoredRecording", + "description": "A past recording that may be played back.", + "properties": { + "name": { + "required": true, + "type": "string" + }, + "format": { + "required": true, + "type": "string" + } + } + }, + "LiveRecording": { + "id": "LiveRecording", + "description": "A recording that is in progress", + "properties": { + "name": { + "required": true, + "type": "string", + "description": "Base name for the recording" + }, + "format": { + "required": true, + "type": "string", + "description": "Recording format (wav, gsm, etc.)" + }, + "target_uri": { + "required": true, + "type": "string", + "description": "URI for the channel or bridge being recorded" + }, + "state": { + "required": true, + "type": "string", + "allowableValues": { + "valueType": "LIST", + "values": [ + "queued", + "recording", + "paused", + "done", + "failed", + "canceled" + ] + } + }, + "duration": { + "required": false, + "type": "int", + "description": "Duration in seconds of the recording" + }, + "talking_duration": { + "required": false, + "type": "int", + "description": "Duration of talking, in seconds, detected in the recording. This is only available if the recording was initiated with a non-zero maxSilenceSeconds." + }, + "silence_duration": { + "required": false, + "type": "int", + "description": "Duration of silence, in seconds, detected in the recording. This is only available if the recording was initiated with a non-zero maxSilenceSeconds." + }, + "cause": { + "required": false, + "type": "string", + "description": "Cause for recording failure if failed" + } + } + } + } +} diff --git a/codegen-data/ari_2_0_0/sounds.json b/codegen-data/ari_2_0_0/sounds.json new file mode 100644 index 00000000..8fbe1c57 --- /dev/null +++ b/codegen-data/ari_2_0_0/sounds.json @@ -0,0 +1,99 @@ +{ + "_copyright": "Copyright (C) 2012 - 2013, Digium, Inc.", + "_author": "David M. Lee, II ", + "_svn_revision": "$Revision$", + "apiVersion": "2.0.0", + "swaggerVersion": "1.1", + "basePath": "http://localhost:8088/ari", + "resourcePath": "/api-docs/sounds.{format}", + "apis": [ + { + "path": "/sounds", + "description": "Sounds", + "operations": [ + { + "httpMethod": "GET", + "summary": "List all sounds.", + "nickname": "list", + "responseClass": "List[Sound]", + "parameters": [ + { + "name": "lang", + "description": "Lookup sound for a specific language.", + "paramType": "query", + "dataType": "string", + "required": false + }, + { + "name": "format", + "description": "Lookup sound in a specific format.", + "paramType": "query", + "dataType": "string", + "required": false, + "__note": "core show translation can show translation paths between formats, along with relative costs. so this could be just installed format, or we could follow that for transcoded formats." + } + ] + } + ] + }, + { + "path": "/sounds/{soundId}", + "description": "Individual sound", + "operations": [ + { + "httpMethod": "GET", + "summary": "Get a sound's details.", + "nickname": "get", + "responseClass": "Sound", + "parameters": [ + { + "name": "soundId", + "description": "Sound's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ] + } + ] + } + ], + "models": { + "FormatLangPair": { + "id": "FormatLangPair", + "description": "Identifies the format and language of a sound file", + "properties": { + "language": { + "required": true, + "type": "string" + }, + "format": { + "required": true, + "type": "string" + } + } + }, + "Sound": { + "id": "Sound", + "description": "A media file that may be played back.", + "properties": { + "id": { + "required": true, + "description": "Sound's identifier.", + "type": "string" + }, + "text": { + "required": false, + "description": "Text description of the sound, usually the words spoken.", + "type": "string" + }, + "formats": { + "required": true, + "description": "The formats and languages in which this sound is available.", + "type": "List[FormatLangPair]" + } + } + } + } +} From 2f9272c47f8c037a7955de0749c48c6bf9ac5298 Mon Sep 17 00:00:00 2001 From: lenz Date: Sat, 4 Feb 2017 15:36:35 +0100 Subject: [PATCH 005/220] bug #62 - ari_2_0_0 --- codegen/ch/loway/oss/ari4java/codegen/run.java | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/codegen/ch/loway/oss/ari4java/codegen/run.java b/codegen/ch/loway/oss/ari4java/codegen/run.java index bc13bdd7..28a4f5a9 100644 --- a/codegen/ch/loway/oss/ari4java/codegen/run.java +++ b/codegen/ch/loway/oss/ari4java/codegen/run.java @@ -14,7 +14,7 @@ public class run { //public static String SOURCES = "codegen-data/"; - public static String PROJECT = "/Users/lenz/dev/github/ari4java"; + public static String PROJECT = "/Users/lenz/varie/ari4java"; public static String SOURCES = PROJECT + "/codegen-data/"; @@ -37,6 +37,7 @@ public static void main( String [] argv ) throws IOException { loadAsteriskDefs( dm, "ari_1_8_0" ); loadAsteriskDefs( dm, "ari_1_9_0" ); loadAsteriskDefs( dm, "ari_1_10_0" ); + loadAsteriskDefs( dm, "ari_2_0_0" ); dm.generateAllClasses(); From a7cd86359214ae755f36deb1914a0a035e947787 Mon Sep 17 00:00:00 2001 From: lenz Date: Sat, 4 Feb 2017 15:37:02 +0100 Subject: [PATCH 006/220] bug #62 - ARI 2.0.0 autogen --- .../generated/ActionApplications.java | 42 +- .../ari4java/generated/ActionAsterisk.java | 168 +-- .../oss/ari4java/generated/ActionBridges.java | 236 ++-- .../ari4java/generated/ActionChannels.java | 490 ++++---- .../generated/ActionDeviceStates.java | 36 +- .../ari4java/generated/ActionEndpoints.java | 64 +- .../oss/ari4java/generated/ActionEvents.java | 36 +- .../ari4java/generated/ActionPlaybacks.java | 28 +- .../ari4java/generated/ActionRecordings.java | 146 +-- .../oss/ari4java/generated/ActionSounds.java | 16 +- .../oss/ari4java/generated/Application.java | 48 +- .../generated/ApplicationReplaced.java | 2 +- .../oss/ari4java/generated/AriBuilder.java | 3 +- .../oss/ari4java/generated/AsteriskInfo.java | 48 +- .../loway/oss/ari4java/generated/Bridge.java | 116 +- .../generated/BridgeAttendedTransfer.java | 188 ++-- .../generated/BridgeBlindTransfer.java | 90 +- .../oss/ari4java/generated/BridgeCreated.java | 2 +- .../ari4java/generated/BridgeDestroyed.java | 2 +- .../oss/ari4java/generated/BridgeMerged.java | 14 +- .../generated/BridgeVideoSourceChanged.java | 65 ++ .../oss/ari4java/generated/BuildInfo.java | 74 +- .../oss/ari4java/generated/CallerID.java | 18 +- .../loway/oss/ari4java/generated/Channel.java | 114 +- .../ari4java/generated/ChannelCallerId.java | 32 +- .../generated/ChannelConnectedLine.java | 2 +- .../ari4java/generated/ChannelCreated.java | 2 +- .../ari4java/generated/ChannelDestroyed.java | 32 +- .../ari4java/generated/ChannelDialplan.java | 32 +- .../generated/ChannelDtmfReceived.java | 22 +- .../generated/ChannelEnteredBridge.java | 18 +- .../generated/ChannelHangupRequest.java | 30 +- .../oss/ari4java/generated/ChannelHold.java | 22 +- .../ari4java/generated/ChannelLeftBridge.java | 18 +- .../generated/ChannelStateChange.java | 2 +- .../generated/ChannelTalkingFinished.java | 22 +- .../generated/ChannelTalkingStarted.java | 2 +- .../oss/ari4java/generated/ChannelUnhold.java | 2 +- .../ari4java/generated/ChannelUserevent.java | 66 +- .../oss/ari4java/generated/ChannelVarset.java | 42 +- .../oss/ari4java/generated/ConfigInfo.java | 74 +- .../oss/ari4java/generated/ConfigTuple.java | 10 +- .../oss/ari4java/generated/ContactInfo.java | 50 +- .../generated/ContactStatusChange.java | 18 +- .../oss/ari4java/generated/DeviceState.java | 26 +- .../generated/DeviceStateChanged.java | 10 +- .../ch/loway/oss/ari4java/generated/Dial.java | 68 +- .../loway/oss/ari4java/generated/Dialed.java | 2 +- .../oss/ari4java/generated/DialplanCEP.java | 34 +- .../oss/ari4java/generated/Endpoint.java | 44 +- .../generated/EndpointStateChange.java | 10 +- .../loway/oss/ari4java/generated/Event.java | 18 +- .../ari4java/generated/FormatLangPair.java | 18 +- .../oss/ari4java/generated/LiveRecording.java | 100 +- .../oss/ari4java/generated/LogChannel.java | 42 +- .../loway/oss/ari4java/generated/Message.java | 30 +- .../oss/ari4java/generated/MissingParams.java | 10 +- .../loway/oss/ari4java/generated/Module.java | 60 +- .../ch/loway/oss/ari4java/generated/Peer.java | 54 +- .../ari4java/generated/PeerStatusChange.java | 14 +- .../oss/ari4java/generated/Playback.java | 82 +- .../generated/PlaybackContinuing.java | 10 +- .../ari4java/generated/PlaybackFinished.java | 10 +- .../ari4java/generated/PlaybackStarted.java | 10 +- .../ari4java/generated/RecordingFailed.java | 10 +- .../ari4java/generated/RecordingFinished.java | 10 +- .../ari4java/generated/RecordingStarted.java | 10 +- .../loway/oss/ari4java/generated/SetId.java | 22 +- .../loway/oss/ari4java/generated/Sound.java | 26 +- .../oss/ari4java/generated/StasisEnd.java | 2 +- .../oss/ari4java/generated/StasisStart.java | 28 +- .../oss/ari4java/generated/StatusInfo.java | 26 +- .../ari4java/generated/StoredRecording.java | 18 +- .../oss/ari4java/generated/SystemInfo.java | 22 +- .../oss/ari4java/generated/TextMessage.java | 42 +- .../generated/TextMessageReceived.java | 18 +- .../generated/TextMessageVariable.java | 10 +- .../oss/ari4java/generated/Variable.java | 2 +- .../ari_0_0_1/AriBuilder_impl_ari_0_0_1.java | 210 ++-- .../ClassTranslator_impl_ari_0_0_1.java | 2 +- .../ActionApplications_impl_ari_0_0_1.java | 2 +- .../ActionAsterisk_impl_ari_0_0_1.java | 86 +- .../actions/ActionBridges_impl_ari_0_0_1.java | 80 +- .../ActionChannels_impl_ari_0_0_1.java | 154 +-- .../ActionDeviceStates_impl_ari_0_0_1.java | 2 +- .../ActionEndpoints_impl_ari_0_0_1.java | 14 +- .../actions/ActionEvents_impl_ari_0_0_1.java | 14 +- .../ActionPlaybacks_impl_ari_0_0_1.java | 2 +- .../ActionRecordings_impl_ari_0_0_1.java | 12 +- .../actions/ActionSounds_impl_ari_0_0_1.java | 2 +- .../ApplicationReplaced_impl_ari_0_0_1.java | 2 +- .../models/Application_impl_ari_0_0_1.java | 2 +- .../models/AsteriskInfo_impl_ari_0_0_1.java | 2 +- .../models/BridgeCreated_impl_ari_0_0_1.java | 2 +- .../BridgeDestroyed_impl_ari_0_0_1.java | 2 +- .../models/BridgeMerged_impl_ari_0_0_1.java | 2 +- .../models/Bridge_impl_ari_0_0_1.java | 50 +- .../models/BuildInfo_impl_ari_0_0_1.java | 2 +- .../models/CallerID_impl_ari_0_0_1.java | 2 +- .../ChannelCallerId_impl_ari_0_0_1.java | 2 +- .../models/ChannelCreated_impl_ari_0_0_1.java | 2 +- .../ChannelDestroyed_impl_ari_0_0_1.java | 2 +- .../ChannelDialplan_impl_ari_0_0_1.java | 2 +- .../ChannelDtmfReceived_impl_ari_0_0_1.java | 2 +- .../ChannelEnteredBridge_impl_ari_0_0_1.java | 2 +- .../ChannelHangupRequest_impl_ari_0_0_1.java | 2 +- .../ChannelLeftBridge_impl_ari_0_0_1.java | 2 +- .../ChannelStateChange_impl_ari_0_0_1.java | 2 +- .../ChannelUserevent_impl_ari_0_0_1.java | 18 +- .../models/ChannelVarset_impl_ari_0_0_1.java | 2 +- .../models/Channel_impl_ari_0_0_1.java | 20 +- .../models/ConfigInfo_impl_ari_0_0_1.java | 2 +- .../DeviceStateChanged_impl_ari_0_0_1.java | 2 +- .../models/DeviceState_impl_ari_0_0_1.java | 2 +- .../models/Dialed_impl_ari_0_0_1.java | 2 +- .../models/DialplanCEP_impl_ari_0_0_1.java | 2 +- .../EndpointStateChange_impl_ari_0_0_1.java | 2 +- .../models/Endpoint_impl_ari_0_0_1.java | 2 +- .../models/Event_impl_ari_0_0_1.java | 2 +- .../models/FormatLangPair_impl_ari_0_0_1.java | 2 +- .../models/LiveRecording_impl_ari_0_0_1.java | 26 +- .../models/Message_impl_ari_0_0_1.java | 21 +- .../models/MissingParams_impl_ari_0_0_1.java | 2 +- .../PlaybackFinished_impl_ari_0_0_1.java | 2 +- .../PlaybackStarted_impl_ari_0_0_1.java | 2 +- .../models/Playback_impl_ari_0_0_1.java | 6 +- .../RecordingFailed_impl_ari_0_0_1.java | 2 +- .../RecordingFinished_impl_ari_0_0_1.java | 2 +- .../RecordingStarted_impl_ari_0_0_1.java | 2 +- .../models/SetId_impl_ari_0_0_1.java | 2 +- .../models/Sound_impl_ari_0_0_1.java | 2 +- .../models/StasisEnd_impl_ari_0_0_1.java | 2 +- .../models/StasisStart_impl_ari_0_0_1.java | 6 +- .../models/StatusInfo_impl_ari_0_0_1.java | 2 +- .../StoredRecording_impl_ari_0_0_1.java | 2 +- .../models/SystemInfo_impl_ari_0_0_1.java | 2 +- .../models/Variable_impl_ari_0_0_1.java | 2 +- .../ari_1_0_0/AriBuilder_impl_ari_1_0_0.java | 218 ++-- .../ClassTranslator_impl_ari_1_0_0.java | 2 +- .../ActionApplications_impl_ari_1_0_0.java | 2 +- .../ActionAsterisk_impl_ari_1_0_0.java | 86 +- .../actions/ActionBridges_impl_ari_1_0_0.java | 76 +- .../ActionChannels_impl_ari_1_0_0.java | 154 +-- .../ActionDeviceStates_impl_ari_1_0_0.java | 2 +- .../ActionEndpoints_impl_ari_1_0_0.java | 14 +- .../actions/ActionEvents_impl_ari_1_0_0.java | 14 +- .../ActionPlaybacks_impl_ari_1_0_0.java | 2 +- .../ActionRecordings_impl_ari_1_0_0.java | 12 +- .../actions/ActionSounds_impl_ari_1_0_0.java | 2 +- .../ApplicationReplaced_impl_ari_1_0_0.java | 2 +- .../models/Application_impl_ari_1_0_0.java | 2 +- .../models/AsteriskInfo_impl_ari_1_0_0.java | 2 +- .../models/BridgeCreated_impl_ari_1_0_0.java | 2 +- .../BridgeDestroyed_impl_ari_1_0_0.java | 2 +- .../models/BridgeMerged_impl_ari_1_0_0.java | 2 +- .../models/Bridge_impl_ari_1_0_0.java | 39 +- .../models/BuildInfo_impl_ari_1_0_0.java | 2 +- .../models/CallerID_impl_ari_1_0_0.java | 2 +- .../ChannelCallerId_impl_ari_1_0_0.java | 2 +- .../models/ChannelCreated_impl_ari_1_0_0.java | 2 +- .../ChannelDestroyed_impl_ari_1_0_0.java | 2 +- .../ChannelDialplan_impl_ari_1_0_0.java | 2 +- .../ChannelDtmfReceived_impl_ari_1_0_0.java | 2 +- .../ChannelEnteredBridge_impl_ari_1_0_0.java | 2 +- .../ChannelHangupRequest_impl_ari_1_0_0.java | 2 +- .../ChannelLeftBridge_impl_ari_1_0_0.java | 2 +- .../ChannelStateChange_impl_ari_1_0_0.java | 2 +- .../ChannelUserevent_impl_ari_1_0_0.java | 18 +- .../models/ChannelVarset_impl_ari_1_0_0.java | 2 +- .../models/Channel_impl_ari_1_0_0.java | 20 +- .../models/ConfigInfo_impl_ari_1_0_0.java | 2 +- .../DeviceStateChanged_impl_ari_1_0_0.java | 2 +- .../models/DeviceState_impl_ari_1_0_0.java | 2 +- .../ari_1_0_0/models/Dial_impl_ari_1_0_0.java | 2 +- .../models/Dialed_impl_ari_1_0_0.java | 2 +- .../models/DialplanCEP_impl_ari_1_0_0.java | 2 +- .../EndpointStateChange_impl_ari_1_0_0.java | 2 +- .../models/Endpoint_impl_ari_1_0_0.java | 2 +- .../models/Event_impl_ari_1_0_0.java | 2 +- .../models/FormatLangPair_impl_ari_1_0_0.java | 2 +- .../models/LiveRecording_impl_ari_1_0_0.java | 26 +- .../models/Message_impl_ari_1_0_0.java | 21 +- .../models/MissingParams_impl_ari_1_0_0.java | 2 +- .../PlaybackFinished_impl_ari_1_0_0.java | 2 +- .../PlaybackStarted_impl_ari_1_0_0.java | 2 +- .../models/Playback_impl_ari_1_0_0.java | 6 +- .../RecordingFailed_impl_ari_1_0_0.java | 2 +- .../RecordingFinished_impl_ari_1_0_0.java | 2 +- .../RecordingStarted_impl_ari_1_0_0.java | 2 +- .../models/SetId_impl_ari_1_0_0.java | 2 +- .../models/Sound_impl_ari_1_0_0.java | 2 +- .../models/StasisEnd_impl_ari_1_0_0.java | 2 +- .../models/StasisStart_impl_ari_1_0_0.java | 6 +- .../models/StatusInfo_impl_ari_1_0_0.java | 2 +- .../StoredRecording_impl_ari_1_0_0.java | 2 +- .../models/SystemInfo_impl_ari_1_0_0.java | 2 +- .../models/Variable_impl_ari_1_0_0.java | 2 +- .../AriBuilder_impl_ari_1_10_0.java | 286 ++--- .../ClassTranslator_impl_ari_1_10_0.java | 2 +- .../ActionApplications_impl_ari_1_10_0.java | 2 +- .../ActionAsterisk_impl_ari_1_10_0.java | 2 +- .../ActionBridges_impl_ari_1_10_0.java | 68 +- .../ActionChannels_impl_ari_1_10_0.java | 80 +- .../ActionDeviceStates_impl_ari_1_10_0.java | 2 +- .../ActionEndpoints_impl_ari_1_10_0.java | 2 +- .../actions/ActionEvents_impl_ari_1_10_0.java | 8 +- .../ActionPlaybacks_impl_ari_1_10_0.java | 2 +- .../ActionRecordings_impl_ari_1_10_0.java | 2 +- .../actions/ActionSounds_impl_ari_1_10_0.java | 2 +- .../ApplicationReplaced_impl_ari_1_10_0.java | 2 +- .../models/Application_impl_ari_1_10_0.java | 2 +- .../models/AsteriskInfo_impl_ari_1_10_0.java | 2 +- ...ridgeAttendedTransfer_impl_ari_1_10_0.java | 2 +- .../BridgeBlindTransfer_impl_ari_1_10_0.java | 2 +- .../models/BridgeCreated_impl_ari_1_10_0.java | 2 +- .../BridgeDestroyed_impl_ari_1_10_0.java | 2 +- .../models/BridgeMerged_impl_ari_1_10_0.java | 2 +- .../models/Bridge_impl_ari_1_10_0.java | 39 +- .../models/BuildInfo_impl_ari_1_10_0.java | 2 +- .../models/CallerID_impl_ari_1_10_0.java | 2 +- .../ChannelCallerId_impl_ari_1_10_0.java | 2 +- .../ChannelConnectedLine_impl_ari_1_10_0.java | 2 +- .../ChannelCreated_impl_ari_1_10_0.java | 2 +- .../ChannelDestroyed_impl_ari_1_10_0.java | 2 +- .../ChannelDialplan_impl_ari_1_10_0.java | 2 +- .../ChannelDtmfReceived_impl_ari_1_10_0.java | 2 +- .../ChannelEnteredBridge_impl_ari_1_10_0.java | 2 +- .../ChannelHangupRequest_impl_ari_1_10_0.java | 2 +- .../models/ChannelHold_impl_ari_1_10_0.java | 2 +- .../ChannelLeftBridge_impl_ari_1_10_0.java | 2 +- .../ChannelStateChange_impl_ari_1_10_0.java | 2 +- ...hannelTalkingFinished_impl_ari_1_10_0.java | 2 +- ...ChannelTalkingStarted_impl_ari_1_10_0.java | 2 +- .../models/ChannelUnhold_impl_ari_1_10_0.java | 2 +- .../ChannelUserevent_impl_ari_1_10_0.java | 2 +- .../models/ChannelVarset_impl_ari_1_10_0.java | 2 +- .../models/Channel_impl_ari_1_10_0.java | 21 +- .../models/ConfigInfo_impl_ari_1_10_0.java | 2 +- .../models/ConfigTuple_impl_ari_1_10_0.java | 2 +- .../models/ContactInfo_impl_ari_1_10_0.java | 2 +- .../ContactStatusChange_impl_ari_1_10_0.java | 2 +- .../DeviceStateChanged_impl_ari_1_10_0.java | 2 +- .../models/DeviceState_impl_ari_1_10_0.java | 2 +- .../models/Dial_impl_ari_1_10_0.java | 2 +- .../models/Dialed_impl_ari_1_10_0.java | 2 +- .../models/DialplanCEP_impl_ari_1_10_0.java | 2 +- .../EndpointStateChange_impl_ari_1_10_0.java | 2 +- .../models/Endpoint_impl_ari_1_10_0.java | 2 +- .../models/Event_impl_ari_1_10_0.java | 2 +- .../FormatLangPair_impl_ari_1_10_0.java | 2 +- .../models/LiveRecording_impl_ari_1_10_0.java | 2 +- .../models/LogChannel_impl_ari_1_10_0.java | 2 +- .../models/Message_impl_ari_1_10_0.java | 21 +- .../models/MissingParams_impl_ari_1_10_0.java | 2 +- .../models/Module_impl_ari_1_10_0.java | 2 +- .../PeerStatusChange_impl_ari_1_10_0.java | 2 +- .../models/Peer_impl_ari_1_10_0.java | 2 +- .../PlaybackContinuing_impl_ari_1_10_0.java | 2 +- .../PlaybackFinished_impl_ari_1_10_0.java | 2 +- .../PlaybackStarted_impl_ari_1_10_0.java | 2 +- .../models/Playback_impl_ari_1_10_0.java | 2 +- .../RecordingFailed_impl_ari_1_10_0.java | 2 +- .../RecordingFinished_impl_ari_1_10_0.java | 2 +- .../RecordingStarted_impl_ari_1_10_0.java | 2 +- .../models/SetId_impl_ari_1_10_0.java | 2 +- .../models/Sound_impl_ari_1_10_0.java | 2 +- .../models/StasisEnd_impl_ari_1_10_0.java | 2 +- .../models/StasisStart_impl_ari_1_10_0.java | 2 +- .../models/StatusInfo_impl_ari_1_10_0.java | 2 +- .../StoredRecording_impl_ari_1_10_0.java | 2 +- .../models/SystemInfo_impl_ari_1_10_0.java | 2 +- .../TextMessageReceived_impl_ari_1_10_0.java | 2 +- .../TextMessageVariable_impl_ari_1_10_0.java | 2 +- .../models/TextMessage_impl_ari_1_10_0.java | 2 +- .../models/Variable_impl_ari_1_10_0.java | 2 +- .../ari_1_5_0/AriBuilder_impl_ari_1_5_0.java | 254 +++-- .../ClassTranslator_impl_ari_1_5_0.java | 2 +- .../ActionApplications_impl_ari_1_5_0.java | 2 +- .../ActionAsterisk_impl_ari_1_5_0.java | 86 +- .../actions/ActionBridges_impl_ari_1_5_0.java | 64 +- .../ActionChannels_impl_ari_1_5_0.java | 112 +- .../ActionDeviceStates_impl_ari_1_5_0.java | 2 +- .../ActionEndpoints_impl_ari_1_5_0.java | 2 +- .../actions/ActionEvents_impl_ari_1_5_0.java | 8 +- .../ActionPlaybacks_impl_ari_1_5_0.java | 2 +- .../ActionRecordings_impl_ari_1_5_0.java | 2 +- .../actions/ActionSounds_impl_ari_1_5_0.java | 2 +- .../ApplicationReplaced_impl_ari_1_5_0.java | 2 +- .../models/Application_impl_ari_1_5_0.java | 2 +- .../models/AsteriskInfo_impl_ari_1_5_0.java | 2 +- ...BridgeAttendedTransfer_impl_ari_1_5_0.java | 2 +- .../BridgeBlindTransfer_impl_ari_1_5_0.java | 2 +- .../models/BridgeCreated_impl_ari_1_5_0.java | 2 +- .../BridgeDestroyed_impl_ari_1_5_0.java | 2 +- .../models/BridgeMerged_impl_ari_1_5_0.java | 2 +- .../models/Bridge_impl_ari_1_5_0.java | 39 +- .../models/BuildInfo_impl_ari_1_5_0.java | 2 +- .../models/CallerID_impl_ari_1_5_0.java | 2 +- .../ChannelCallerId_impl_ari_1_5_0.java | 2 +- .../models/ChannelCreated_impl_ari_1_5_0.java | 2 +- .../ChannelDestroyed_impl_ari_1_5_0.java | 2 +- .../ChannelDialplan_impl_ari_1_5_0.java | 2 +- .../ChannelDtmfReceived_impl_ari_1_5_0.java | 2 +- .../ChannelEnteredBridge_impl_ari_1_5_0.java | 2 +- .../ChannelHangupRequest_impl_ari_1_5_0.java | 2 +- .../ChannelLeftBridge_impl_ari_1_5_0.java | 2 +- .../ChannelStateChange_impl_ari_1_5_0.java | 2 +- ...ChannelTalkingFinished_impl_ari_1_5_0.java | 2 +- .../ChannelTalkingStarted_impl_ari_1_5_0.java | 2 +- .../ChannelUserevent_impl_ari_1_5_0.java | 2 +- .../models/ChannelVarset_impl_ari_1_5_0.java | 2 +- .../models/Channel_impl_ari_1_5_0.java | 20 +- .../models/ConfigInfo_impl_ari_1_5_0.java | 2 +- .../DeviceStateChanged_impl_ari_1_5_0.java | 2 +- .../models/DeviceState_impl_ari_1_5_0.java | 2 +- .../ari_1_5_0/models/Dial_impl_ari_1_5_0.java | 2 +- .../models/Dialed_impl_ari_1_5_0.java | 2 +- .../models/DialplanCEP_impl_ari_1_5_0.java | 2 +- .../EndpointStateChange_impl_ari_1_5_0.java | 2 +- .../models/Endpoint_impl_ari_1_5_0.java | 2 +- .../models/Event_impl_ari_1_5_0.java | 2 +- .../models/FormatLangPair_impl_ari_1_5_0.java | 2 +- .../models/LiveRecording_impl_ari_1_5_0.java | 2 +- .../models/Message_impl_ari_1_5_0.java | 21 +- .../models/MissingParams_impl_ari_1_5_0.java | 2 +- .../PlaybackFinished_impl_ari_1_5_0.java | 2 +- .../PlaybackStarted_impl_ari_1_5_0.java | 2 +- .../models/Playback_impl_ari_1_5_0.java | 6 +- .../RecordingFailed_impl_ari_1_5_0.java | 2 +- .../RecordingFinished_impl_ari_1_5_0.java | 2 +- .../RecordingStarted_impl_ari_1_5_0.java | 2 +- .../models/SetId_impl_ari_1_5_0.java | 2 +- .../models/Sound_impl_ari_1_5_0.java | 2 +- .../models/StasisEnd_impl_ari_1_5_0.java | 2 +- .../models/StasisStart_impl_ari_1_5_0.java | 2 +- .../models/StatusInfo_impl_ari_1_5_0.java | 2 +- .../StoredRecording_impl_ari_1_5_0.java | 2 +- .../models/SystemInfo_impl_ari_1_5_0.java | 2 +- .../TextMessageReceived_impl_ari_1_5_0.java | 2 +- .../TextMessageVariable_impl_ari_1_5_0.java | 2 +- .../models/TextMessage_impl_ari_1_5_0.java | 2 +- .../models/Variable_impl_ari_1_5_0.java | 2 +- .../ari_1_6_0/AriBuilder_impl_ari_1_6_0.java | 250 ++-- .../ClassTranslator_impl_ari_1_6_0.java | 2 +- .../ActionApplications_impl_ari_1_6_0.java | 2 +- .../ActionAsterisk_impl_ari_1_6_0.java | 86 +- .../actions/ActionBridges_impl_ari_1_6_0.java | 64 +- .../ActionChannels_impl_ari_1_6_0.java | 112 +- .../ActionDeviceStates_impl_ari_1_6_0.java | 2 +- .../ActionEndpoints_impl_ari_1_6_0.java | 2 +- .../actions/ActionEvents_impl_ari_1_6_0.java | 8 +- .../ActionPlaybacks_impl_ari_1_6_0.java | 2 +- .../ActionRecordings_impl_ari_1_6_0.java | 2 +- .../actions/ActionSounds_impl_ari_1_6_0.java | 2 +- .../ApplicationReplaced_impl_ari_1_6_0.java | 2 +- .../models/Application_impl_ari_1_6_0.java | 2 +- .../models/AsteriskInfo_impl_ari_1_6_0.java | 2 +- ...BridgeAttendedTransfer_impl_ari_1_6_0.java | 2 +- .../BridgeBlindTransfer_impl_ari_1_6_0.java | 2 +- .../models/BridgeCreated_impl_ari_1_6_0.java | 2 +- .../BridgeDestroyed_impl_ari_1_6_0.java | 2 +- .../models/BridgeMerged_impl_ari_1_6_0.java | 2 +- .../models/Bridge_impl_ari_1_6_0.java | 39 +- .../models/BuildInfo_impl_ari_1_6_0.java | 2 +- .../models/CallerID_impl_ari_1_6_0.java | 2 +- .../ChannelCallerId_impl_ari_1_6_0.java | 2 +- .../ChannelConnectedLine_impl_ari_1_6_0.java | 2 +- .../models/ChannelCreated_impl_ari_1_6_0.java | 2 +- .../ChannelDestroyed_impl_ari_1_6_0.java | 2 +- .../ChannelDialplan_impl_ari_1_6_0.java | 2 +- .../ChannelDtmfReceived_impl_ari_1_6_0.java | 2 +- .../ChannelEnteredBridge_impl_ari_1_6_0.java | 2 +- .../ChannelHangupRequest_impl_ari_1_6_0.java | 2 +- .../ChannelLeftBridge_impl_ari_1_6_0.java | 2 +- .../ChannelStateChange_impl_ari_1_6_0.java | 2 +- ...ChannelTalkingFinished_impl_ari_1_6_0.java | 2 +- .../ChannelTalkingStarted_impl_ari_1_6_0.java | 2 +- .../ChannelUserevent_impl_ari_1_6_0.java | 2 +- .../models/ChannelVarset_impl_ari_1_6_0.java | 2 +- .../models/Channel_impl_ari_1_6_0.java | 20 +- .../models/ConfigInfo_impl_ari_1_6_0.java | 2 +- .../DeviceStateChanged_impl_ari_1_6_0.java | 2 +- .../models/DeviceState_impl_ari_1_6_0.java | 2 +- .../ari_1_6_0/models/Dial_impl_ari_1_6_0.java | 2 +- .../models/Dialed_impl_ari_1_6_0.java | 2 +- .../models/DialplanCEP_impl_ari_1_6_0.java | 2 +- .../EndpointStateChange_impl_ari_1_6_0.java | 2 +- .../models/Endpoint_impl_ari_1_6_0.java | 2 +- .../models/Event_impl_ari_1_6_0.java | 2 +- .../models/FormatLangPair_impl_ari_1_6_0.java | 2 +- .../models/LiveRecording_impl_ari_1_6_0.java | 2 +- .../models/Message_impl_ari_1_6_0.java | 21 +- .../models/MissingParams_impl_ari_1_6_0.java | 2 +- .../PlaybackFinished_impl_ari_1_6_0.java | 2 +- .../PlaybackStarted_impl_ari_1_6_0.java | 2 +- .../models/Playback_impl_ari_1_6_0.java | 6 +- .../RecordingFailed_impl_ari_1_6_0.java | 2 +- .../RecordingFinished_impl_ari_1_6_0.java | 2 +- .../RecordingStarted_impl_ari_1_6_0.java | 2 +- .../models/SetId_impl_ari_1_6_0.java | 2 +- .../models/Sound_impl_ari_1_6_0.java | 2 +- .../models/StasisEnd_impl_ari_1_6_0.java | 2 +- .../models/StasisStart_impl_ari_1_6_0.java | 2 +- .../models/StatusInfo_impl_ari_1_6_0.java | 2 +- .../StoredRecording_impl_ari_1_6_0.java | 2 +- .../models/SystemInfo_impl_ari_1_6_0.java | 2 +- .../TextMessageReceived_impl_ari_1_6_0.java | 2 +- .../TextMessageVariable_impl_ari_1_6_0.java | 2 +- .../models/TextMessage_impl_ari_1_6_0.java | 2 +- .../models/Variable_impl_ari_1_6_0.java | 2 +- .../ari_1_7_0/AriBuilder_impl_ari_1_7_0.java | 258 ++--- .../ClassTranslator_impl_ari_1_7_0.java | 2 +- .../ActionApplications_impl_ari_1_7_0.java | 2 +- .../ActionAsterisk_impl_ari_1_7_0.java | 86 +- .../actions/ActionBridges_impl_ari_1_7_0.java | 68 +- .../ActionChannels_impl_ari_1_7_0.java | 120 +- .../ActionDeviceStates_impl_ari_1_7_0.java | 2 +- .../ActionEndpoints_impl_ari_1_7_0.java | 2 +- .../actions/ActionEvents_impl_ari_1_7_0.java | 8 +- .../ActionPlaybacks_impl_ari_1_7_0.java | 2 +- .../ActionRecordings_impl_ari_1_7_0.java | 2 +- .../actions/ActionSounds_impl_ari_1_7_0.java | 2 +- .../ApplicationReplaced_impl_ari_1_7_0.java | 2 +- .../models/Application_impl_ari_1_7_0.java | 2 +- .../models/AsteriskInfo_impl_ari_1_7_0.java | 2 +- ...BridgeAttendedTransfer_impl_ari_1_7_0.java | 2 +- .../BridgeBlindTransfer_impl_ari_1_7_0.java | 2 +- .../models/BridgeCreated_impl_ari_1_7_0.java | 2 +- .../BridgeDestroyed_impl_ari_1_7_0.java | 2 +- .../models/BridgeMerged_impl_ari_1_7_0.java | 2 +- .../models/Bridge_impl_ari_1_7_0.java | 39 +- .../models/BuildInfo_impl_ari_1_7_0.java | 2 +- .../models/CallerID_impl_ari_1_7_0.java | 2 +- .../ChannelCallerId_impl_ari_1_7_0.java | 2 +- .../ChannelConnectedLine_impl_ari_1_7_0.java | 2 +- .../models/ChannelCreated_impl_ari_1_7_0.java | 2 +- .../ChannelDestroyed_impl_ari_1_7_0.java | 2 +- .../ChannelDialplan_impl_ari_1_7_0.java | 2 +- .../ChannelDtmfReceived_impl_ari_1_7_0.java | 2 +- .../ChannelEnteredBridge_impl_ari_1_7_0.java | 2 +- .../ChannelHangupRequest_impl_ari_1_7_0.java | 2 +- .../ChannelLeftBridge_impl_ari_1_7_0.java | 2 +- .../ChannelStateChange_impl_ari_1_7_0.java | 2 +- ...ChannelTalkingFinished_impl_ari_1_7_0.java | 2 +- .../ChannelTalkingStarted_impl_ari_1_7_0.java | 2 +- .../ChannelUserevent_impl_ari_1_7_0.java | 2 +- .../models/ChannelVarset_impl_ari_1_7_0.java | 2 +- .../models/Channel_impl_ari_1_7_0.java | 21 +- .../models/ConfigInfo_impl_ari_1_7_0.java | 2 +- .../DeviceStateChanged_impl_ari_1_7_0.java | 2 +- .../models/DeviceState_impl_ari_1_7_0.java | 2 +- .../ari_1_7_0/models/Dial_impl_ari_1_7_0.java | 2 +- .../models/Dialed_impl_ari_1_7_0.java | 2 +- .../models/DialplanCEP_impl_ari_1_7_0.java | 2 +- .../EndpointStateChange_impl_ari_1_7_0.java | 2 +- .../models/Endpoint_impl_ari_1_7_0.java | 2 +- .../models/Event_impl_ari_1_7_0.java | 2 +- .../models/FormatLangPair_impl_ari_1_7_0.java | 2 +- .../models/LiveRecording_impl_ari_1_7_0.java | 2 +- .../models/Message_impl_ari_1_7_0.java | 21 +- .../models/MissingParams_impl_ari_1_7_0.java | 2 +- .../PlaybackFinished_impl_ari_1_7_0.java | 2 +- .../PlaybackStarted_impl_ari_1_7_0.java | 2 +- .../models/Playback_impl_ari_1_7_0.java | 6 +- .../RecordingFailed_impl_ari_1_7_0.java | 2 +- .../RecordingFinished_impl_ari_1_7_0.java | 2 +- .../RecordingStarted_impl_ari_1_7_0.java | 2 +- .../models/SetId_impl_ari_1_7_0.java | 2 +- .../models/Sound_impl_ari_1_7_0.java | 2 +- .../models/StasisEnd_impl_ari_1_7_0.java | 2 +- .../models/StasisStart_impl_ari_1_7_0.java | 2 +- .../models/StatusInfo_impl_ari_1_7_0.java | 2 +- .../StoredRecording_impl_ari_1_7_0.java | 2 +- .../models/SystemInfo_impl_ari_1_7_0.java | 2 +- .../TextMessageReceived_impl_ari_1_7_0.java | 2 +- .../TextMessageVariable_impl_ari_1_7_0.java | 2 +- .../models/TextMessage_impl_ari_1_7_0.java | 2 +- .../models/Variable_impl_ari_1_7_0.java | 2 +- .../ari_1_8_0/AriBuilder_impl_ari_1_8_0.java | 270 ++--- .../ClassTranslator_impl_ari_1_8_0.java | 2 +- .../ActionApplications_impl_ari_1_8_0.java | 2 +- .../ActionAsterisk_impl_ari_1_8_0.java | 18 +- .../actions/ActionBridges_impl_ari_1_8_0.java | 68 +- .../ActionChannels_impl_ari_1_8_0.java | 94 +- .../ActionDeviceStates_impl_ari_1_8_0.java | 2 +- .../ActionEndpoints_impl_ari_1_8_0.java | 2 +- .../actions/ActionEvents_impl_ari_1_8_0.java | 8 +- .../ActionPlaybacks_impl_ari_1_8_0.java | 2 +- .../ActionRecordings_impl_ari_1_8_0.java | 2 +- .../actions/ActionSounds_impl_ari_1_8_0.java | 2 +- .../ApplicationReplaced_impl_ari_1_8_0.java | 2 +- .../models/Application_impl_ari_1_8_0.java | 2 +- .../models/AsteriskInfo_impl_ari_1_8_0.java | 2 +- ...BridgeAttendedTransfer_impl_ari_1_8_0.java | 2 +- .../BridgeBlindTransfer_impl_ari_1_8_0.java | 2 +- .../models/BridgeCreated_impl_ari_1_8_0.java | 2 +- .../BridgeDestroyed_impl_ari_1_8_0.java | 2 +- .../models/BridgeMerged_impl_ari_1_8_0.java | 2 +- .../models/Bridge_impl_ari_1_8_0.java | 39 +- .../models/BuildInfo_impl_ari_1_8_0.java | 2 +- .../models/CallerID_impl_ari_1_8_0.java | 2 +- .../ChannelCallerId_impl_ari_1_8_0.java | 2 +- .../ChannelConnectedLine_impl_ari_1_8_0.java | 2 +- .../models/ChannelCreated_impl_ari_1_8_0.java | 2 +- .../ChannelDestroyed_impl_ari_1_8_0.java | 2 +- .../ChannelDialplan_impl_ari_1_8_0.java | 2 +- .../ChannelDtmfReceived_impl_ari_1_8_0.java | 2 +- .../ChannelEnteredBridge_impl_ari_1_8_0.java | 2 +- .../ChannelHangupRequest_impl_ari_1_8_0.java | 2 +- .../models/ChannelHold_impl_ari_1_8_0.java | 2 +- .../ChannelLeftBridge_impl_ari_1_8_0.java | 2 +- .../ChannelStateChange_impl_ari_1_8_0.java | 2 +- ...ChannelTalkingFinished_impl_ari_1_8_0.java | 2 +- .../ChannelTalkingStarted_impl_ari_1_8_0.java | 2 +- .../models/ChannelUnhold_impl_ari_1_8_0.java | 2 +- .../ChannelUserevent_impl_ari_1_8_0.java | 2 +- .../models/ChannelVarset_impl_ari_1_8_0.java | 2 +- .../models/Channel_impl_ari_1_8_0.java | 21 +- .../models/ConfigInfo_impl_ari_1_8_0.java | 2 +- .../models/ConfigTuple_impl_ari_1_8_0.java | 2 +- .../DeviceStateChanged_impl_ari_1_8_0.java | 2 +- .../models/DeviceState_impl_ari_1_8_0.java | 2 +- .../ari_1_8_0/models/Dial_impl_ari_1_8_0.java | 2 +- .../models/Dialed_impl_ari_1_8_0.java | 2 +- .../models/DialplanCEP_impl_ari_1_8_0.java | 2 +- .../EndpointStateChange_impl_ari_1_8_0.java | 2 +- .../models/Endpoint_impl_ari_1_8_0.java | 2 +- .../models/Event_impl_ari_1_8_0.java | 2 +- .../models/FormatLangPair_impl_ari_1_8_0.java | 2 +- .../models/LiveRecording_impl_ari_1_8_0.java | 2 +- .../models/Message_impl_ari_1_8_0.java | 21 +- .../models/MissingParams_impl_ari_1_8_0.java | 2 +- .../models/Module_impl_ari_1_8_0.java | 2 +- .../PlaybackFinished_impl_ari_1_8_0.java | 2 +- .../PlaybackStarted_impl_ari_1_8_0.java | 2 +- .../models/Playback_impl_ari_1_8_0.java | 6 +- .../RecordingFailed_impl_ari_1_8_0.java | 2 +- .../RecordingFinished_impl_ari_1_8_0.java | 2 +- .../RecordingStarted_impl_ari_1_8_0.java | 2 +- .../models/SetId_impl_ari_1_8_0.java | 2 +- .../models/Sound_impl_ari_1_8_0.java | 2 +- .../models/StasisEnd_impl_ari_1_8_0.java | 2 +- .../models/StasisStart_impl_ari_1_8_0.java | 2 +- .../models/StatusInfo_impl_ari_1_8_0.java | 2 +- .../StoredRecording_impl_ari_1_8_0.java | 2 +- .../models/SystemInfo_impl_ari_1_8_0.java | 2 +- .../TextMessageReceived_impl_ari_1_8_0.java | 2 +- .../TextMessageVariable_impl_ari_1_8_0.java | 2 +- .../models/TextMessage_impl_ari_1_8_0.java | 2 +- .../models/Variable_impl_ari_1_8_0.java | 2 +- .../ari_1_9_0/AriBuilder_impl_ari_1_9_0.java | 282 ++--- .../ClassTranslator_impl_ari_1_9_0.java | 2 +- .../ActionApplications_impl_ari_1_9_0.java | 2 +- .../ActionAsterisk_impl_ari_1_9_0.java | 2 +- .../actions/ActionBridges_impl_ari_1_9_0.java | 68 +- .../ActionChannels_impl_ari_1_9_0.java | 94 +- .../ActionDeviceStates_impl_ari_1_9_0.java | 2 +- .../ActionEndpoints_impl_ari_1_9_0.java | 2 +- .../actions/ActionEvents_impl_ari_1_9_0.java | 8 +- .../ActionPlaybacks_impl_ari_1_9_0.java | 2 +- .../ActionRecordings_impl_ari_1_9_0.java | 2 +- .../actions/ActionSounds_impl_ari_1_9_0.java | 2 +- .../ApplicationReplaced_impl_ari_1_9_0.java | 2 +- .../models/Application_impl_ari_1_9_0.java | 2 +- .../models/AsteriskInfo_impl_ari_1_9_0.java | 2 +- ...BridgeAttendedTransfer_impl_ari_1_9_0.java | 2 +- .../BridgeBlindTransfer_impl_ari_1_9_0.java | 2 +- .../models/BridgeCreated_impl_ari_1_9_0.java | 2 +- .../BridgeDestroyed_impl_ari_1_9_0.java | 2 +- .../models/BridgeMerged_impl_ari_1_9_0.java | 2 +- .../models/Bridge_impl_ari_1_9_0.java | 39 +- .../models/BuildInfo_impl_ari_1_9_0.java | 2 +- .../models/CallerID_impl_ari_1_9_0.java | 2 +- .../ChannelCallerId_impl_ari_1_9_0.java | 2 +- .../ChannelConnectedLine_impl_ari_1_9_0.java | 2 +- .../models/ChannelCreated_impl_ari_1_9_0.java | 2 +- .../ChannelDestroyed_impl_ari_1_9_0.java | 2 +- .../ChannelDialplan_impl_ari_1_9_0.java | 2 +- .../ChannelDtmfReceived_impl_ari_1_9_0.java | 2 +- .../ChannelEnteredBridge_impl_ari_1_9_0.java | 2 +- .../ChannelHangupRequest_impl_ari_1_9_0.java | 2 +- .../models/ChannelHold_impl_ari_1_9_0.java | 2 +- .../ChannelLeftBridge_impl_ari_1_9_0.java | 2 +- .../ChannelStateChange_impl_ari_1_9_0.java | 2 +- ...ChannelTalkingFinished_impl_ari_1_9_0.java | 2 +- .../ChannelTalkingStarted_impl_ari_1_9_0.java | 2 +- .../models/ChannelUnhold_impl_ari_1_9_0.java | 2 +- .../ChannelUserevent_impl_ari_1_9_0.java | 2 +- .../models/ChannelVarset_impl_ari_1_9_0.java | 2 +- .../models/Channel_impl_ari_1_9_0.java | 21 +- .../models/ConfigInfo_impl_ari_1_9_0.java | 2 +- .../models/ConfigTuple_impl_ari_1_9_0.java | 2 +- .../models/ContactInfo_impl_ari_1_9_0.java | 2 +- .../ContactStatusChange_impl_ari_1_9_0.java | 2 +- .../DeviceStateChanged_impl_ari_1_9_0.java | 2 +- .../models/DeviceState_impl_ari_1_9_0.java | 2 +- .../ari_1_9_0/models/Dial_impl_ari_1_9_0.java | 2 +- .../models/Dialed_impl_ari_1_9_0.java | 2 +- .../models/DialplanCEP_impl_ari_1_9_0.java | 2 +- .../EndpointStateChange_impl_ari_1_9_0.java | 2 +- .../models/Endpoint_impl_ari_1_9_0.java | 2 +- .../models/Event_impl_ari_1_9_0.java | 2 +- .../models/FormatLangPair_impl_ari_1_9_0.java | 2 +- .../models/LiveRecording_impl_ari_1_9_0.java | 2 +- .../models/LogChannel_impl_ari_1_9_0.java | 2 +- .../models/Message_impl_ari_1_9_0.java | 21 +- .../models/MissingParams_impl_ari_1_9_0.java | 2 +- .../models/Module_impl_ari_1_9_0.java | 2 +- .../PeerStatusChange_impl_ari_1_9_0.java | 2 +- .../ari_1_9_0/models/Peer_impl_ari_1_9_0.java | 2 +- .../PlaybackFinished_impl_ari_1_9_0.java | 2 +- .../PlaybackStarted_impl_ari_1_9_0.java | 2 +- .../models/Playback_impl_ari_1_9_0.java | 6 +- .../RecordingFailed_impl_ari_1_9_0.java | 2 +- .../RecordingFinished_impl_ari_1_9_0.java | 2 +- .../RecordingStarted_impl_ari_1_9_0.java | 2 +- .../models/SetId_impl_ari_1_9_0.java | 2 +- .../models/Sound_impl_ari_1_9_0.java | 2 +- .../models/StasisEnd_impl_ari_1_9_0.java | 2 +- .../models/StasisStart_impl_ari_1_9_0.java | 2 +- .../models/StatusInfo_impl_ari_1_9_0.java | 2 +- .../StoredRecording_impl_ari_1_9_0.java | 2 +- .../models/SystemInfo_impl_ari_1_9_0.java | 2 +- .../TextMessageReceived_impl_ari_1_9_0.java | 2 +- .../TextMessageVariable_impl_ari_1_9_0.java | 2 +- .../models/TextMessage_impl_ari_1_9_0.java | 2 +- .../models/Variable_impl_ari_1_9_0.java | 2 +- .../ari_2_0_0/AriBuilder_impl_ari_2_0_0.java | 328 ++++++ .../ClassTranslator_impl_ari_2_0_0.java | 335 ++++++ .../ActionApplications_impl_ari_2_0_0.java | 140 +++ .../ActionAsterisk_impl_ari_2_0_0.java | 412 +++++++ .../actions/ActionBridges_impl_ari_2_0_0.java | 494 ++++++++ .../ActionChannels_impl_ari_2_0_0.java | 1002 +++++++++++++++++ .../ActionDeviceStates_impl_ari_2_0_0.java | 131 +++ .../ActionEndpoints_impl_ari_2_0_0.java | 165 +++ .../actions/ActionEvents_impl_ari_2_0_0.java | 103 ++ .../ActionPlaybacks_impl_ari_2_0_0.java | 107 ++ .../ActionRecordings_impl_ari_2_0_0.java | 333 ++++++ .../actions/ActionSounds_impl_ari_2_0_0.java | 82 ++ .../ApplicationReplaced_impl_ari_2_0_0.java | 28 + .../models/Application_impl_ari_2_0_0.java | 81 ++ .../models/AsteriskInfo_impl_ari_2_0_0.java | 70 ++ ...BridgeAttendedTransfer_impl_ari_2_0_0.java | 202 ++++ .../BridgeBlindTransfer_impl_ari_2_0_0.java | 114 ++ .../models/BridgeCreated_impl_ari_2_0_0.java | 37 + .../BridgeDestroyed_impl_ari_2_0_0.java | 37 + .../models/BridgeMerged_impl_ari_2_0_0.java | 48 + ...idgeVideoSourceChanged_impl_ari_2_0_0.java | 48 + .../models/Bridge_impl_ari_2_0_0.java | 127 +++ .../models/BuildInfo_impl_ari_2_0_0.java | 92 ++ .../models/CallerID_impl_ari_2_0_0.java | 48 + .../ChannelCallerId_impl_ari_2_0_0.java | 59 + .../ChannelConnectedLine_impl_ari_2_0_0.java | 37 + .../models/ChannelCreated_impl_ari_2_0_0.java | 37 + .../ChannelDestroyed_impl_ari_2_0_0.java | 59 + .../ChannelDialplan_impl_ari_2_0_0.java | 59 + .../ChannelDtmfReceived_impl_ari_2_0_0.java | 61 + .../ChannelEnteredBridge_impl_ari_2_0_0.java | 48 + .../ChannelHangupRequest_impl_ari_2_0_0.java | 59 + .../models/ChannelHold_impl_ari_2_0_0.java | 48 + .../ChannelLeftBridge_impl_ari_2_0_0.java | 48 + .../ChannelStateChange_impl_ari_2_0_0.java | 37 + ...ChannelTalkingFinished_impl_ari_2_0_0.java | 48 + .../ChannelTalkingStarted_impl_ari_2_0_0.java | 37 + .../models/ChannelUnhold_impl_ari_2_0_0.java | 37 + .../ChannelUserevent_impl_ari_2_0_0.java | 81 ++ .../models/ChannelVarset_impl_ari_2_0_0.java | 61 + .../models/Channel_impl_ari_2_0_0.java | 138 +++ .../models/ConfigInfo_impl_ari_2_0_0.java | 92 ++ .../models/ConfigTuple_impl_ari_2_0_0.java | 48 + .../models/ContactInfo_impl_ari_2_0_0.java | 70 ++ .../ContactStatusChange_impl_ari_2_0_0.java | 48 + .../DeviceStateChanged_impl_ari_2_0_0.java | 37 + .../models/DeviceState_impl_ari_2_0_0.java | 48 + .../ari_2_0_0/models/Dial_impl_ari_2_0_0.java | 92 ++ .../models/Dialed_impl_ari_2_0_0.java | 26 + .../models/DialplanCEP_impl_ari_2_0_0.java | 59 + .../EndpointStateChange_impl_ari_2_0_0.java | 37 + .../models/Endpoint_impl_ari_2_0_0.java | 72 ++ .../models/Event_impl_ari_2_0_0.java | 48 + .../models/FormatLangPair_impl_ari_2_0_0.java | 48 + .../models/LiveRecording_impl_ari_2_0_0.java | 114 ++ .../models/LogChannel_impl_ari_2_0_0.java | 70 ++ .../models/Message_impl_ari_2_0_0.java | 95 ++ .../models/MissingParams_impl_ari_2_0_0.java | 37 + .../models/Module_impl_ari_2_0_0.java | 81 ++ .../PeerStatusChange_impl_ari_2_0_0.java | 48 + .../ari_2_0_0/models/Peer_impl_ari_2_0_0.java | 81 ++ .../PlaybackContinuing_impl_ari_2_0_0.java | 37 + .../PlaybackFinished_impl_ari_2_0_0.java | 37 + .../PlaybackStarted_impl_ari_2_0_0.java | 37 + .../models/Playback_impl_ari_2_0_0.java | 92 ++ .../RecordingFailed_impl_ari_2_0_0.java | 37 + .../RecordingFinished_impl_ari_2_0_0.java | 37 + .../RecordingStarted_impl_ari_2_0_0.java | 37 + .../models/SetId_impl_ari_2_0_0.java | 48 + .../models/Sound_impl_ari_2_0_0.java | 59 + .../models/StasisEnd_impl_ari_2_0_0.java | 37 + .../models/StasisStart_impl_ari_2_0_0.java | 59 + .../models/StatusInfo_impl_ari_2_0_0.java | 48 + .../StoredRecording_impl_ari_2_0_0.java | 48 + .../models/SystemInfo_impl_ari_2_0_0.java | 48 + .../TextMessageReceived_impl_ari_2_0_0.java | 48 + .../TextMessageVariable_impl_ari_2_0_0.java | 48 + .../models/TextMessage_impl_ari_2_0_0.java | 70 ++ .../models/Variable_impl_ari_2_0_0.java | 37 + 706 files changed, 12803 insertions(+), 4089 deletions(-) create mode 100644 classes/ch/loway/oss/ari4java/generated/BridgeVideoSourceChanged.java create mode 100644 classes/ch/loway/oss/ari4java/generated/ari_2_0_0/AriBuilder_impl_ari_2_0_0.java create mode 100644 classes/ch/loway/oss/ari4java/generated/ari_2_0_0/ClassTranslator_impl_ari_2_0_0.java create mode 100644 classes/ch/loway/oss/ari4java/generated/ari_2_0_0/actions/ActionApplications_impl_ari_2_0_0.java create mode 100644 classes/ch/loway/oss/ari4java/generated/ari_2_0_0/actions/ActionAsterisk_impl_ari_2_0_0.java create mode 100644 classes/ch/loway/oss/ari4java/generated/ari_2_0_0/actions/ActionBridges_impl_ari_2_0_0.java create mode 100644 classes/ch/loway/oss/ari4java/generated/ari_2_0_0/actions/ActionChannels_impl_ari_2_0_0.java create mode 100644 classes/ch/loway/oss/ari4java/generated/ari_2_0_0/actions/ActionDeviceStates_impl_ari_2_0_0.java create mode 100644 classes/ch/loway/oss/ari4java/generated/ari_2_0_0/actions/ActionEndpoints_impl_ari_2_0_0.java create mode 100644 classes/ch/loway/oss/ari4java/generated/ari_2_0_0/actions/ActionEvents_impl_ari_2_0_0.java create mode 100644 classes/ch/loway/oss/ari4java/generated/ari_2_0_0/actions/ActionPlaybacks_impl_ari_2_0_0.java create mode 100644 classes/ch/loway/oss/ari4java/generated/ari_2_0_0/actions/ActionRecordings_impl_ari_2_0_0.java create mode 100644 classes/ch/loway/oss/ari4java/generated/ari_2_0_0/actions/ActionSounds_impl_ari_2_0_0.java create mode 100644 classes/ch/loway/oss/ari4java/generated/ari_2_0_0/models/ApplicationReplaced_impl_ari_2_0_0.java create mode 100644 classes/ch/loway/oss/ari4java/generated/ari_2_0_0/models/Application_impl_ari_2_0_0.java create mode 100644 classes/ch/loway/oss/ari4java/generated/ari_2_0_0/models/AsteriskInfo_impl_ari_2_0_0.java create mode 100644 classes/ch/loway/oss/ari4java/generated/ari_2_0_0/models/BridgeAttendedTransfer_impl_ari_2_0_0.java create mode 100644 classes/ch/loway/oss/ari4java/generated/ari_2_0_0/models/BridgeBlindTransfer_impl_ari_2_0_0.java create mode 100644 classes/ch/loway/oss/ari4java/generated/ari_2_0_0/models/BridgeCreated_impl_ari_2_0_0.java create mode 100644 classes/ch/loway/oss/ari4java/generated/ari_2_0_0/models/BridgeDestroyed_impl_ari_2_0_0.java create mode 100644 classes/ch/loway/oss/ari4java/generated/ari_2_0_0/models/BridgeMerged_impl_ari_2_0_0.java create mode 100644 classes/ch/loway/oss/ari4java/generated/ari_2_0_0/models/BridgeVideoSourceChanged_impl_ari_2_0_0.java create mode 100644 classes/ch/loway/oss/ari4java/generated/ari_2_0_0/models/Bridge_impl_ari_2_0_0.java create mode 100644 classes/ch/loway/oss/ari4java/generated/ari_2_0_0/models/BuildInfo_impl_ari_2_0_0.java create mode 100644 classes/ch/loway/oss/ari4java/generated/ari_2_0_0/models/CallerID_impl_ari_2_0_0.java create mode 100644 classes/ch/loway/oss/ari4java/generated/ari_2_0_0/models/ChannelCallerId_impl_ari_2_0_0.java create mode 100644 classes/ch/loway/oss/ari4java/generated/ari_2_0_0/models/ChannelConnectedLine_impl_ari_2_0_0.java create mode 100644 classes/ch/loway/oss/ari4java/generated/ari_2_0_0/models/ChannelCreated_impl_ari_2_0_0.java create mode 100644 classes/ch/loway/oss/ari4java/generated/ari_2_0_0/models/ChannelDestroyed_impl_ari_2_0_0.java create mode 100644 classes/ch/loway/oss/ari4java/generated/ari_2_0_0/models/ChannelDialplan_impl_ari_2_0_0.java create mode 100644 classes/ch/loway/oss/ari4java/generated/ari_2_0_0/models/ChannelDtmfReceived_impl_ari_2_0_0.java create mode 100644 classes/ch/loway/oss/ari4java/generated/ari_2_0_0/models/ChannelEnteredBridge_impl_ari_2_0_0.java create mode 100644 classes/ch/loway/oss/ari4java/generated/ari_2_0_0/models/ChannelHangupRequest_impl_ari_2_0_0.java create mode 100644 classes/ch/loway/oss/ari4java/generated/ari_2_0_0/models/ChannelHold_impl_ari_2_0_0.java create mode 100644 classes/ch/loway/oss/ari4java/generated/ari_2_0_0/models/ChannelLeftBridge_impl_ari_2_0_0.java create mode 100644 classes/ch/loway/oss/ari4java/generated/ari_2_0_0/models/ChannelStateChange_impl_ari_2_0_0.java create mode 100644 classes/ch/loway/oss/ari4java/generated/ari_2_0_0/models/ChannelTalkingFinished_impl_ari_2_0_0.java create mode 100644 classes/ch/loway/oss/ari4java/generated/ari_2_0_0/models/ChannelTalkingStarted_impl_ari_2_0_0.java create mode 100644 classes/ch/loway/oss/ari4java/generated/ari_2_0_0/models/ChannelUnhold_impl_ari_2_0_0.java create mode 100644 classes/ch/loway/oss/ari4java/generated/ari_2_0_0/models/ChannelUserevent_impl_ari_2_0_0.java create mode 100644 classes/ch/loway/oss/ari4java/generated/ari_2_0_0/models/ChannelVarset_impl_ari_2_0_0.java create mode 100644 classes/ch/loway/oss/ari4java/generated/ari_2_0_0/models/Channel_impl_ari_2_0_0.java create mode 100644 classes/ch/loway/oss/ari4java/generated/ari_2_0_0/models/ConfigInfo_impl_ari_2_0_0.java create mode 100644 classes/ch/loway/oss/ari4java/generated/ari_2_0_0/models/ConfigTuple_impl_ari_2_0_0.java create mode 100644 classes/ch/loway/oss/ari4java/generated/ari_2_0_0/models/ContactInfo_impl_ari_2_0_0.java create mode 100644 classes/ch/loway/oss/ari4java/generated/ari_2_0_0/models/ContactStatusChange_impl_ari_2_0_0.java create mode 100644 classes/ch/loway/oss/ari4java/generated/ari_2_0_0/models/DeviceStateChanged_impl_ari_2_0_0.java create mode 100644 classes/ch/loway/oss/ari4java/generated/ari_2_0_0/models/DeviceState_impl_ari_2_0_0.java create mode 100644 classes/ch/loway/oss/ari4java/generated/ari_2_0_0/models/Dial_impl_ari_2_0_0.java create mode 100644 classes/ch/loway/oss/ari4java/generated/ari_2_0_0/models/Dialed_impl_ari_2_0_0.java create mode 100644 classes/ch/loway/oss/ari4java/generated/ari_2_0_0/models/DialplanCEP_impl_ari_2_0_0.java create mode 100644 classes/ch/loway/oss/ari4java/generated/ari_2_0_0/models/EndpointStateChange_impl_ari_2_0_0.java create mode 100644 classes/ch/loway/oss/ari4java/generated/ari_2_0_0/models/Endpoint_impl_ari_2_0_0.java create mode 100644 classes/ch/loway/oss/ari4java/generated/ari_2_0_0/models/Event_impl_ari_2_0_0.java create mode 100644 classes/ch/loway/oss/ari4java/generated/ari_2_0_0/models/FormatLangPair_impl_ari_2_0_0.java create mode 100644 classes/ch/loway/oss/ari4java/generated/ari_2_0_0/models/LiveRecording_impl_ari_2_0_0.java create mode 100644 classes/ch/loway/oss/ari4java/generated/ari_2_0_0/models/LogChannel_impl_ari_2_0_0.java create mode 100644 classes/ch/loway/oss/ari4java/generated/ari_2_0_0/models/Message_impl_ari_2_0_0.java create mode 100644 classes/ch/loway/oss/ari4java/generated/ari_2_0_0/models/MissingParams_impl_ari_2_0_0.java create mode 100644 classes/ch/loway/oss/ari4java/generated/ari_2_0_0/models/Module_impl_ari_2_0_0.java create mode 100644 classes/ch/loway/oss/ari4java/generated/ari_2_0_0/models/PeerStatusChange_impl_ari_2_0_0.java create mode 100644 classes/ch/loway/oss/ari4java/generated/ari_2_0_0/models/Peer_impl_ari_2_0_0.java create mode 100644 classes/ch/loway/oss/ari4java/generated/ari_2_0_0/models/PlaybackContinuing_impl_ari_2_0_0.java create mode 100644 classes/ch/loway/oss/ari4java/generated/ari_2_0_0/models/PlaybackFinished_impl_ari_2_0_0.java create mode 100644 classes/ch/loway/oss/ari4java/generated/ari_2_0_0/models/PlaybackStarted_impl_ari_2_0_0.java create mode 100644 classes/ch/loway/oss/ari4java/generated/ari_2_0_0/models/Playback_impl_ari_2_0_0.java create mode 100644 classes/ch/loway/oss/ari4java/generated/ari_2_0_0/models/RecordingFailed_impl_ari_2_0_0.java create mode 100644 classes/ch/loway/oss/ari4java/generated/ari_2_0_0/models/RecordingFinished_impl_ari_2_0_0.java create mode 100644 classes/ch/loway/oss/ari4java/generated/ari_2_0_0/models/RecordingStarted_impl_ari_2_0_0.java create mode 100644 classes/ch/loway/oss/ari4java/generated/ari_2_0_0/models/SetId_impl_ari_2_0_0.java create mode 100644 classes/ch/loway/oss/ari4java/generated/ari_2_0_0/models/Sound_impl_ari_2_0_0.java create mode 100644 classes/ch/loway/oss/ari4java/generated/ari_2_0_0/models/StasisEnd_impl_ari_2_0_0.java create mode 100644 classes/ch/loway/oss/ari4java/generated/ari_2_0_0/models/StasisStart_impl_ari_2_0_0.java create mode 100644 classes/ch/loway/oss/ari4java/generated/ari_2_0_0/models/StatusInfo_impl_ari_2_0_0.java create mode 100644 classes/ch/loway/oss/ari4java/generated/ari_2_0_0/models/StoredRecording_impl_ari_2_0_0.java create mode 100644 classes/ch/loway/oss/ari4java/generated/ari_2_0_0/models/SystemInfo_impl_ari_2_0_0.java create mode 100644 classes/ch/loway/oss/ari4java/generated/ari_2_0_0/models/TextMessageReceived_impl_ari_2_0_0.java create mode 100644 classes/ch/loway/oss/ari4java/generated/ari_2_0_0/models/TextMessageVariable_impl_ari_2_0_0.java create mode 100644 classes/ch/loway/oss/ari4java/generated/ari_2_0_0/models/TextMessage_impl_ari_2_0_0.java create mode 100644 classes/ch/loway/oss/ari4java/generated/ari_2_0_0/models/Variable_impl_ari_2_0_0.java diff --git a/classes/ch/loway/oss/ari4java/generated/ActionApplications.java b/classes/ch/loway/oss/ari4java/generated/ActionApplications.java index 440cc377..273d1061 100644 --- a/classes/ch/loway/oss/ari4java/generated/ActionApplications.java +++ b/classes/ch/loway/oss/ari4java/generated/ActionApplications.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Wed Aug 31 18:05:10 CEST 2016 +// Generated on: Sat Feb 04 15:23:09 CET 2017 // ---------------------------------------------------- import java.util.Date; @@ -22,34 +22,35 @@ public interface ActionApplications { -// List list +// void subscribe String String AriCallback callback /********************************************************** - * List all applications. * * * @since ari_0_0_1 *********************************************************/ -public List list() throws RestException; +public void subscribe(String applicationName, String eventSource, AriCallback callback); -// void unsubscribe String String AriCallback callback +// Application subscribe String String /********************************************************** - * + * Subscribe an application to a event source. + * Returns the state of the application after the subscriptions have changed * * @since ari_0_0_1 *********************************************************/ -public void unsubscribe(String applicationName, String eventSource, AriCallback callback); +public Application subscribe(String applicationName, String eventSource) throws RestException; -// void subscribe String String AriCallback callback +// Application get String /********************************************************** + * Get details of an application. * * * @since ari_0_0_1 *********************************************************/ -public void subscribe(String applicationName, String eventSource, AriCallback callback); +public Application get(String applicationName) throws RestException; @@ -63,46 +64,45 @@ public interface ActionApplications { -// Application get String +// void unsubscribe String String AriCallback callback /********************************************************** - * Get details of an application. * * * @since ari_0_0_1 *********************************************************/ -public Application get(String applicationName) throws RestException; +public void unsubscribe(String applicationName, String eventSource, AriCallback callback); -// Application unsubscribe String String +// void list AriCallback> callback /********************************************************** - * Unsubscribe an application from an event source. - * Returns the state of the application after the subscriptions have changed + * * * @since ari_0_0_1 *********************************************************/ -public Application unsubscribe(String applicationName, String eventSource) throws RestException; +public void list(AriCallback> callback); -// void list AriCallback> callback +// List list /********************************************************** + * List all applications. * * * @since ari_0_0_1 *********************************************************/ -public void list(AriCallback> callback); +public List list() throws RestException; -// Application subscribe String String +// Application unsubscribe String String /********************************************************** - * Subscribe an application to a event source. + * Unsubscribe an application from an event source. * Returns the state of the application after the subscriptions have changed * * @since ari_0_0_1 *********************************************************/ -public Application subscribe(String applicationName, String eventSource) throws RestException; +public Application unsubscribe(String applicationName, String eventSource) throws RestException; } diff --git a/classes/ch/loway/oss/ari4java/generated/ActionAsterisk.java b/classes/ch/loway/oss/ari4java/generated/ActionAsterisk.java index b0a6550c..e4c264de 100644 --- a/classes/ch/loway/oss/ari4java/generated/ActionAsterisk.java +++ b/classes/ch/loway/oss/ari4java/generated/ActionAsterisk.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Wed Aug 31 18:05:10 CEST 2016 +// Generated on: Sat Feb 04 15:23:08 CET 2017 // ---------------------------------------------------- import java.util.Date; @@ -22,98 +22,97 @@ public interface ActionAsterisk { -// void deleteObject String String String AriCallback callback +// void updateObject String String String Map AriCallback> callback /********************************************************** * * * @since ari_1_8_0 *********************************************************/ -public void deleteObject(String configClass, String objectType, String id, AriCallback callback); +public void updateObject(String configClass, String objectType, String id, Map fields, AriCallback> callback); -// List updateObject String String String Map +// void listModules AriCallback> callback /********************************************************** - * Create or update a dynamic configuration object. * * * @since ari_1_8_0 *********************************************************/ -public List updateObject(String configClass, String objectType, String id, Map fields) throws RestException; +public void listModules(AriCallback> callback); -// void reloadModule String +// void getModule String AriCallback callback /********************************************************** - * Reload an Asterisk module. * * * @since ari_1_8_0 *********************************************************/ -public void reloadModule(String moduleName) throws RestException; +public void getModule(String moduleName, AriCallback callback); -// void addLog String String AriCallback callback +// void unloadModule String AriCallback callback /********************************************************** * * - * @since ari_1_9_0 + * @since ari_1_8_0 *********************************************************/ -public void addLog(String logChannelName, String configuration, AriCallback callback); +public void unloadModule(String moduleName, AriCallback callback); -// void reloadModule String AriCallback callback +// void rotateLog String /********************************************************** + * Rotates a log channel. * * - * @since ari_1_8_0 + * @since ari_1_9_0 *********************************************************/ -public void reloadModule(String moduleName, AriCallback callback); +public void rotateLog(String logChannelName) throws RestException; -// List listModules +// void deleteObject String String String AriCallback callback /********************************************************** - * List Asterisk modules. * * * @since ari_1_8_0 *********************************************************/ -public List listModules() throws RestException; +public void deleteObject(String configClass, String objectType, String id, AriCallback callback); -// void unloadModule String AriCallback callback +// void deleteLog String /********************************************************** + * Deletes a log channel. * * - * @since ari_1_8_0 + * @since ari_1_9_0 *********************************************************/ -public void unloadModule(String moduleName, AriCallback callback); +public void deleteLog(String logChannelName) throws RestException; -// List listLogChannels +// void loadModule String /********************************************************** - * Gets Asterisk log channel information. + * Load an Asterisk module. * * - * @since ari_1_9_0 + * @since ari_1_8_0 *********************************************************/ -public List listLogChannels() throws RestException; +public void loadModule(String moduleName) throws RestException; -// Module getModule String +// void unloadModule String /********************************************************** - * Get Asterisk module information. + * Unload an Asterisk module. * * * @since ari_1_8_0 *********************************************************/ -public Module getModule(String moduleName) throws RestException; +public void unloadModule(String moduleName) throws RestException; @@ -128,24 +127,25 @@ public interface ActionAsterisk { -// void rotateLog String AriCallback callback +// void setGlobalVar String String /********************************************************** + * Set the value of a global variable. * * - * @since ari_1_9_0 + * @since ari_0_0_1 *********************************************************/ -public void rotateLog(String logChannelName, AriCallback callback); +public void setGlobalVar(String variable, String value) throws RestException; -// void setGlobalVar String String +// List updateObject String String String Map /********************************************************** - * Set the value of a global variable. + * Create or update a dynamic configuration object. * * - * @since ari_0_0_1 + * @since ari_1_8_0 *********************************************************/ -public void setGlobalVar(String variable, String value) throws RestException; +public List updateObject(String configClass, String objectType, String id, Map fields) throws RestException; @@ -160,45 +160,44 @@ public interface ActionAsterisk { -// void loadModule String +// Module getModule String /********************************************************** - * Load an Asterisk module. + * Get Asterisk module information. * * * @since ari_1_8_0 *********************************************************/ -public void loadModule(String moduleName) throws RestException; +public Module getModule(String moduleName) throws RestException; -// void unloadModule String +// void rotateLog String AriCallback callback /********************************************************** - * Unload an Asterisk module. * * - * @since ari_1_8_0 + * @since ari_1_9_0 *********************************************************/ -public void unloadModule(String moduleName) throws RestException; +public void rotateLog(String logChannelName, AriCallback callback); -// void getModule String AriCallback callback +// void getGlobalVar String AriCallback callback /********************************************************** * * - * @since ari_1_8_0 + * @since ari_0_0_1 *********************************************************/ -public void getModule(String moduleName, AriCallback callback); +public void getGlobalVar(String variable, AriCallback callback); -// void updateObject String String String Map AriCallback> callback +// void loadModule String AriCallback callback /********************************************************** * * * @since ari_1_8_0 *********************************************************/ -public void updateObject(String configClass, String objectType, String id, Map fields, AriCallback> callback); +public void loadModule(String moduleName, AriCallback callback); @@ -213,127 +212,128 @@ public interface ActionAsterisk { -// void getInfo String AriCallback callback +// void addLog String String AriCallback callback /********************************************************** * * - * @since ari_0_0_1 + * @since ari_1_9_0 *********************************************************/ -public void getInfo(String only, AriCallback callback); +public void addLog(String logChannelName, String configuration, AriCallback callback); -// void deleteObject String String String +// void setGlobalVar String String AriCallback callback /********************************************************** - * Delete a dynamic configuration object. * * - * @since ari_1_8_0 + * @since ari_0_0_1 *********************************************************/ -public void deleteObject(String configClass, String objectType, String id) throws RestException; +public void setGlobalVar(String variable, String value, AriCallback callback); -// void rotateLog String +// void reloadModule String AriCallback callback /********************************************************** - * Rotates a log channel. * * - * @since ari_1_9_0 + * @since ari_1_8_0 *********************************************************/ -public void rotateLog(String logChannelName) throws RestException; +public void reloadModule(String moduleName, AriCallback callback); -// void listLogChannels AriCallback> callback +// List listLogChannels /********************************************************** + * Gets Asterisk log channel information. * * * @since ari_1_9_0 *********************************************************/ -public void listLogChannels(AriCallback> callback); +public List listLogChannels() throws RestException; -// void addLog String String +// void getInfo String AriCallback callback /********************************************************** - * Adds a log channel. * * - * @since ari_1_9_0 + * @since ari_0_0_1 *********************************************************/ -public void addLog(String logChannelName, String configuration) throws RestException; +public void getInfo(String only, AriCallback callback); -// void listModules AriCallback> callback +// void getObject String String String AriCallback> callback /********************************************************** * * * @since ari_1_8_0 *********************************************************/ -public void listModules(AriCallback> callback); +public void getObject(String configClass, String objectType, String id, AriCallback> callback); -// void getGlobalVar String AriCallback callback +// void addLog String String /********************************************************** + * Adds a log channel. * * - * @since ari_0_0_1 + * @since ari_1_9_0 *********************************************************/ -public void getGlobalVar(String variable, AriCallback callback); +public void addLog(String logChannelName, String configuration) throws RestException; -// void setGlobalVar String String AriCallback callback +// void listLogChannels AriCallback> callback /********************************************************** * * - * @since ari_0_0_1 + * @since ari_1_9_0 *********************************************************/ -public void setGlobalVar(String variable, String value, AriCallback callback); +public void listLogChannels(AriCallback> callback); -// void deleteLog String +// List listModules /********************************************************** - * Deletes a log channel. + * List Asterisk modules. * * - * @since ari_1_9_0 + * @since ari_1_8_0 *********************************************************/ -public void deleteLog(String logChannelName) throws RestException; +public List listModules() throws RestException; -// void deleteLog String AriCallback callback +// void reloadModule String /********************************************************** + * Reload an Asterisk module. * * - * @since ari_1_9_0 + * @since ari_1_8_0 *********************************************************/ -public void deleteLog(String logChannelName, AriCallback callback); +public void reloadModule(String moduleName) throws RestException; -// void loadModule String AriCallback callback +// void deleteLog String AriCallback callback /********************************************************** * * - * @since ari_1_8_0 + * @since ari_1_9_0 *********************************************************/ -public void loadModule(String moduleName, AriCallback callback); +public void deleteLog(String logChannelName, AriCallback callback); -// void getObject String String String AriCallback> callback +// void deleteObject String String String /********************************************************** + * Delete a dynamic configuration object. * * * @since ari_1_8_0 *********************************************************/ -public void getObject(String configClass, String objectType, String id, AriCallback> callback); +public void deleteObject(String configClass, String objectType, String id) throws RestException; } diff --git a/classes/ch/loway/oss/ari4java/generated/ActionBridges.java b/classes/ch/loway/oss/ari4java/generated/ActionBridges.java index 30fd947c..c8327a0c 100644 --- a/classes/ch/loway/oss/ari4java/generated/ActionBridges.java +++ b/classes/ch/loway/oss/ari4java/generated/ActionBridges.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Wed Aug 31 18:05:10 CEST 2016 +// Generated on: Sat Feb 04 15:23:08 CET 2017 // ---------------------------------------------------- import java.util.Date; @@ -32,44 +32,55 @@ public interface ActionBridges { -// void createWithId String String String AriCallback callback +// Playback play String String String int int /********************************************************** + * Start playback of media on a bridge. + * The media URI may be any of a number of URI's. Currently sound: and recording: URI's are supported. This operation creates a playback resource that can be used to control the playback of media (pause, rewind, fast forward, etc.) * - * - * @since ari_1_7_0 + * @since ari_0_0_1 *********************************************************/ -public void createWithId(String type, String bridgeId, String name, AriCallback callback); +public Playback play(String bridgeId, String media, String lang, int offsetms, int skipms) throws RestException; -// void create String AriCallback callback +// void play String String String int int AriCallback callback /********************************************************** * * * @since ari_0_0_1 *********************************************************/ -public void create(String type, AriCallback callback); +public void play(String bridgeId, String media, String lang, int offsetms, int skipms, AriCallback callback); -// List list +// void play String String String int int String AriCallback callback /********************************************************** - * List all active bridges in Asterisk. + * + * + * @since ari_1_5_0 + *********************************************************/ +public void play(String bridgeId, String media, String lang, int offsetms, int skipms, String playbackId, AriCallback callback); + + + +// void addChannel String String String +/********************************************************** + * Add a channel to a bridge. * * * @since ari_0_0_1 *********************************************************/ -public List list() throws RestException; +public void addChannel(String bridgeId, String channel, String role) throws RestException; -// void playWithId String String String String int int AriCallback callback +// void startMoh String String AriCallback callback /********************************************************** * * - * @since ari_1_5_0 + * @since ari_0_0_1 *********************************************************/ -public void playWithId(String bridgeId, String playbackId, String media, String lang, int offsetms, int skipms, AriCallback callback); +public void startMoh(String bridgeId, String mohClass, AriCallback callback); @@ -84,67 +95,87 @@ public interface ActionBridges { -// Bridge createWithId String String String +// void record String String String int int String boolean String AriCallback callback /********************************************************** - * Create a new bridge or updates an existing one. - * This bridge persists until it has been shut down, or Asterisk has been shut down. + * + * + * @since ari_0_0_1 + *********************************************************/ +public void record(String bridgeId, String name, String format, int maxDurationSeconds, int maxSilenceSeconds, String ifExists, boolean beep, String terminateOn, AriCallback callback); + + + +// void stopMoh String +/********************************************************** + * Stop playing music on hold to a bridge. + * This will only stop music on hold being played via POST bridges/{bridgeId}/moh. + * + * @since ari_0_0_1 + *********************************************************/ +public void stopMoh(String bridgeId) throws RestException; + + + +// void createWithId String String String AriCallback callback +/********************************************************** + * * * @since ari_1_7_0 *********************************************************/ -public Bridge createWithId(String type, String bridgeId, String name) throws RestException; +public void createWithId(String type, String bridgeId, String name, AriCallback callback); -// void removeChannel String String +// void get String AriCallback callback /********************************************************** - * Remove a channel from a bridge. * * * @since ari_0_0_1 *********************************************************/ -public void removeChannel(String bridgeId, String channel) throws RestException; +public void get(String bridgeId, AriCallback callback); -// void addChannel String String String +// List list /********************************************************** - * Add a channel to a bridge. + * List all active bridges in Asterisk. * * * @since ari_0_0_1 *********************************************************/ -public void addChannel(String bridgeId, String channel, String role) throws RestException; +public List list() throws RestException; -// void stopMoh String AriCallback callback +// void list AriCallback> callback /********************************************************** * * * @since ari_0_0_1 *********************************************************/ -public void stopMoh(String bridgeId, AriCallback callback); +public void list(AriCallback> callback); -// void destroy String AriCallback callback +// void destroy String /********************************************************** - * + * Shut down a bridge. + * If any channels are in this bridge, they will be removed and resume whatever they were doing beforehand. * * @since ari_0_0_1 *********************************************************/ -public void destroy(String bridgeId, AriCallback callback); +public void destroy(String bridgeId) throws RestException; -// Bridge create String String +// Playback playWithId String String String String int int /********************************************************** - * Create a new bridge. - * This bridge persists until it has been shut down, or Asterisk has been shut down. + * Start playback of media on a bridge. + * The media URI may be any of a number of URI's. Currently sound: and recording: URI's are supported. This operation creates a playback resource that can be used to control the playback of media (pause, rewind, fast forward, etc.) * - * @since ari_1_0_0 + * @since ari_1_5_0 *********************************************************/ -public Bridge create(String type, String name) throws RestException; +public Playback playWithId(String bridgeId, String playbackId, String media, String lang, int offsetms, int skipms) throws RestException; @@ -159,202 +190,213 @@ public interface ActionBridges { -// Bridge create String +// Bridge create String String /********************************************************** * Create a new bridge. * This bridge persists until it has been shut down, or Asterisk has been shut down. * - * @since ari_0_0_1 + * @since ari_1_0_0 *********************************************************/ -public Bridge create(String type) throws RestException; +public Bridge create(String type, String name) throws RestException; -// void record String String String int int String boolean String AriCallback callback +// void addChannel String String String AriCallback callback /********************************************************** * * * @since ari_0_0_1 *********************************************************/ -public void record(String bridgeId, String name, String format, int maxDurationSeconds, int maxSilenceSeconds, String ifExists, boolean beep, String terminateOn, AriCallback callback); +public void addChannel(String bridgeId, String channel, String role, AriCallback callback); -// Playback play String String String int int +// LiveRecording record String String String int int String boolean String /********************************************************** - * Start playback of media on a bridge. - * The media URI may be any of a number of URI's. Currently sound: and recording: URI's are supported. This operation creates a playback resource that can be used to control the playback of media (pause, rewind, fast forward, etc.) + * Start a recording. + * This records the mixed audio from all channels participating in this bridge. * * @since ari_0_0_1 *********************************************************/ -public Playback play(String bridgeId, String media, String lang, int offsetms, int skipms) throws RestException; +public LiveRecording record(String bridgeId, String name, String format, int maxDurationSeconds, int maxSilenceSeconds, String ifExists, boolean beep, String terminateOn) throws RestException; -// void play String String String int int AriCallback callback +// void playWithId String String String String int int AriCallback callback /********************************************************** * * - * @since ari_0_0_1 + * @since ari_1_5_0 *********************************************************/ -public void play(String bridgeId, String media, String lang, int offsetms, int skipms, AriCallback callback); +public void playWithId(String bridgeId, String playbackId, String media, String lang, int offsetms, int skipms, AriCallback callback); -// void create String String AriCallback callback +// void create_or_update_with_id String String String AriCallback callback /********************************************************** * * - * @since ari_1_0_0 + * @since ari_1_5_0 *********************************************************/ -public void create(String type, String name, AriCallback callback); +public void create_or_update_with_id(String type, String bridgeId, String name, AriCallback callback); -// void addChannel String String String AriCallback callback +// void setVideoSource String String /********************************************************** + * Set a channel as the video source in a multi-party mixing bridge. This operation has no effect on bridges with two or fewer participants. * * - * @since ari_0_0_1 + * @since ari_2_0_0 *********************************************************/ -public void addChannel(String bridgeId, String channel, String role, AriCallback callback); +public void setVideoSource(String bridgeId, String channelId) throws RestException; -// Playback play String String String int int String +// void removeChannel String String /********************************************************** - * Start playback of media on a bridge. - * The media URI may be any of a number of URI's. Currently sound:, recording:, number:, digits:, characters:, and tone: URI's are supported. This operation creates a playback resource that can be used to control the playback of media (pause, rewind, fast forward, etc.) + * Remove a channel from a bridge. * - * @since ari_1_5_0 + * + * @since ari_0_0_1 *********************************************************/ -public Playback play(String bridgeId, String media, String lang, int offsetms, int skipms, String playbackId) throws RestException; +public void removeChannel(String bridgeId, String channel) throws RestException; -// void get String AriCallback callback +// void destroy String AriCallback callback /********************************************************** * * * @since ari_0_0_1 *********************************************************/ -public void get(String bridgeId, AriCallback callback); +public void destroy(String bridgeId, AriCallback callback); -// Playback playWithId String String String String int int +// Bridge create_or_update_with_id String String String /********************************************************** - * Start playback of media on a bridge. - * The media URI may be any of a number of URI's. Currently sound: and recording: URI's are supported. This operation creates a playback resource that can be used to control the playback of media (pause, rewind, fast forward, etc.) + * Create a new bridge or updates an existing one. + * This bridge persists until it has been shut down, or Asterisk has been shut down. * * @since ari_1_5_0 *********************************************************/ -public Playback playWithId(String bridgeId, String playbackId, String media, String lang, int offsetms, int skipms) throws RestException; +public Bridge create_or_update_with_id(String type, String bridgeId, String name) throws RestException; -// void stopMoh String +// Bridge create String /********************************************************** - * Stop playing music on hold to a bridge. - * This will only stop music on hold being played via POST bridges/{bridgeId}/moh. + * Create a new bridge. + * This bridge persists until it has been shut down, or Asterisk has been shut down. * * @since ari_0_0_1 *********************************************************/ -public void stopMoh(String bridgeId) throws RestException; +public Bridge create(String type) throws RestException; -// void play String String String int int String AriCallback callback +// void stopMoh String AriCallback callback /********************************************************** * * - * @since ari_1_5_0 + * @since ari_0_0_1 *********************************************************/ -public void play(String bridgeId, String media, String lang, int offsetms, int skipms, String playbackId, AriCallback callback); +public void stopMoh(String bridgeId, AriCallback callback); -// void create_or_update_with_id String String String AriCallback callback +// void removeChannel String String AriCallback callback /********************************************************** * * + * @since ari_0_0_1 + *********************************************************/ +public void removeChannel(String bridgeId, String channel, AriCallback callback); + + + +// Playback play String String String int int String +/********************************************************** + * Start playback of media on a bridge. + * The media URI may be any of a number of URI's. Currently sound:, recording:, number:, digits:, characters:, and tone: URI's are supported. This operation creates a playback resource that can be used to control the playback of media (pause, rewind, fast forward, etc.) + * * @since ari_1_5_0 *********************************************************/ -public void create_or_update_with_id(String type, String bridgeId, String name, AriCallback callback); +public Playback play(String bridgeId, String media, String lang, int offsetms, int skipms, String playbackId) throws RestException; -// void removeChannel String String AriCallback callback +// void clearVideoSource String /********************************************************** + * Removes any explicit video source in a multi-party mixing bridge. This operation has no effect on bridges with two or fewer participants. When no explicit video source is set, talk detection will be used to determine the active video stream. * * - * @since ari_0_0_1 + * @since ari_2_0_0 *********************************************************/ -public void removeChannel(String bridgeId, String channel, AriCallback callback); +public void clearVideoSource(String bridgeId) throws RestException; -// void startMoh String String +// void create String AriCallback callback /********************************************************** - * Play music on hold to a bridge or change the MOH class that is playing. * * * @since ari_0_0_1 *********************************************************/ -public void startMoh(String bridgeId, String mohClass) throws RestException; +public void create(String type, AriCallback callback); -// Bridge create_or_update_with_id String String String +// void setVideoSource String String AriCallback callback /********************************************************** - * Create a new bridge or updates an existing one. - * This bridge persists until it has been shut down, or Asterisk has been shut down. * - * @since ari_1_5_0 + * + * @since ari_2_0_0 *********************************************************/ -public Bridge create_or_update_with_id(String type, String bridgeId, String name) throws RestException; +public void setVideoSource(String bridgeId, String channelId, AriCallback callback); -// void list AriCallback> callback +// void startMoh String String /********************************************************** + * Play music on hold to a bridge or change the MOH class that is playing. * * * @since ari_0_0_1 *********************************************************/ -public void list(AriCallback> callback); +public void startMoh(String bridgeId, String mohClass) throws RestException; -// void startMoh String String AriCallback callback +// void create String String AriCallback callback /********************************************************** * * - * @since ari_0_0_1 + * @since ari_1_0_0 *********************************************************/ -public void startMoh(String bridgeId, String mohClass, AriCallback callback); +public void create(String type, String name, AriCallback callback); -// void destroy String +// void clearVideoSource String AriCallback callback /********************************************************** - * Shut down a bridge. - * If any channels are in this bridge, they will be removed and resume whatever they were doing beforehand. * - * @since ari_0_0_1 + * + * @since ari_2_0_0 *********************************************************/ -public void destroy(String bridgeId) throws RestException; +public void clearVideoSource(String bridgeId, AriCallback callback); -// LiveRecording record String String String int int String boolean String +// Bridge createWithId String String String /********************************************************** - * Start a recording. - * This records the mixed audio from all channels participating in this bridge. + * Create a new bridge or updates an existing one. + * This bridge persists until it has been shut down, or Asterisk has been shut down. * - * @since ari_0_0_1 + * @since ari_1_7_0 *********************************************************/ -public LiveRecording record(String bridgeId, String name, String format, int maxDurationSeconds, int maxSilenceSeconds, String ifExists, boolean beep, String terminateOn) throws RestException; +public Bridge createWithId(String type, String bridgeId, String name) throws RestException; } diff --git a/classes/ch/loway/oss/ari4java/generated/ActionChannels.java b/classes/ch/loway/oss/ari4java/generated/ActionChannels.java index df0408f0..f7fc4d20 100644 --- a/classes/ch/loway/oss/ari4java/generated/ActionChannels.java +++ b/classes/ch/loway/oss/ari4java/generated/ActionChannels.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Wed Aug 31 18:05:10 CEST 2016 +// Generated on: Sat Feb 04 15:23:08 CET 2017 // ---------------------------------------------------- import java.util.Date; @@ -22,508 +22,525 @@ public interface ActionChannels { -// void dial String String int AriCallback callback +// void play String String String int int String AriCallback callback /********************************************************** * * - * @since ari_1_10_0 + * @since ari_1_5_0 *********************************************************/ -public void dial(String channelId, String caller, int timeout, AriCallback callback); +public void play(String channelId, String media, String lang, int offsetms, int skipms, String playbackId, AriCallback callback); -// void originateWithId String String String String long String String String int Map String AriCallback callback +// void redirect String String AriCallback callback /********************************************************** * * - * @since ari_1_5_0 + * @since ari_1_8_0 *********************************************************/ -public void originateWithId(String channelId, String endpoint, String extension, String context, long priority, String app, String appArgs, String callerId, int timeout, Map variables, String otherChannelId, AriCallback callback); +public void redirect(String channelId, String endpoint, AriCallback callback); -// void ring String +// void startMoh String String AriCallback callback /********************************************************** - * Indicate ringing to a channel. * * * @since ari_0_0_1 *********************************************************/ -public void ring(String channelId) throws RestException; +public void startMoh(String channelId, String mohClass, AriCallback callback); -// void snoopChannel String String String String String AriCallback callback +// void getChannelVar String String AriCallback callback /********************************************************** * * * @since ari_0_0_1 *********************************************************/ -public void snoopChannel(String channelId, String spy, String whisper, String app, String appArgs, AriCallback callback); +public void getChannelVar(String channelId, String variable, AriCallback callback); -// void ringStop String +// void stopMoh String /********************************************************** - * Stop ringing indication on a channel if locally generated. + * Stop playing music on hold to a channel. * * * @since ari_0_0_1 *********************************************************/ -public void ringStop(String channelId) throws RestException; +public void stopMoh(String channelId) throws RestException; -// void playWithId String String String String int int AriCallback callback +// Channel snoopChannelWithId String String String String String String /********************************************************** - * + * Start snooping. + * Snoop (spy/whisper) on a specific channel. * * @since ari_1_5_0 *********************************************************/ -public void playWithId(String channelId, String playbackId, String media, String lang, int offsetms, int skipms, AriCallback callback); +public Channel snoopChannelWithId(String channelId, String snoopId, String spy, String whisper, String app, String appArgs) throws RestException; -// void dial String String int +// void answer String /********************************************************** - * Dial a created channel. + * Answer a channel. * * - * @since ari_1_10_0 + * @since ari_0_0_1 *********************************************************/ -public void dial(String channelId, String caller, int timeout) throws RestException; +public void answer(String channelId) throws RestException; -// void unmute String String +// void stopSilence String AriCallback callback /********************************************************** - * Unmute a channel. * * * @since ari_0_0_1 *********************************************************/ -public void unmute(String channelId, String direction) throws RestException; +public void stopSilence(String channelId, AriCallback callback); -// void snoopChannelWithId String String String String String String AriCallback callback +// Playback playWithId String String String String int int /********************************************************** - * + * Start playback of media and specify the playbackId. + * The media URI may be any of a number of URI's. Currently sound: and recording: URI's are supported. This operation creates a playback resource that can be used to control the playback of media (pause, rewind, fast forward, etc.) * * @since ari_1_5_0 *********************************************************/ -public void snoopChannelWithId(String channelId, String snoopId, String spy, String whisper, String app, String appArgs, AriCallback callback); +public Playback playWithId(String channelId, String playbackId, String media, String lang, int offsetms, int skipms) throws RestException; -// void ringStop String AriCallback callback +// void unhold String /********************************************************** + * Remove a channel from hold. * * * @since ari_0_0_1 *********************************************************/ -public void ringStop(String channelId, AriCallback callback); +public void unhold(String channelId) throws RestException; -// void continueInDialplan String String String int AriCallback callback +// LiveRecording record String String String int int String boolean String /********************************************************** - * + * Start a recording. + * Record audio from a channel. Note that this will not capture audio sent to the channel. The bridge itself has a record feature if that's what you want. * * @since ari_0_0_1 *********************************************************/ -public void continueInDialplan(String channelId, String context, String extension, int priority, AriCallback callback); +public LiveRecording record(String channelId, String name, String format, int maxDurationSeconds, int maxSilenceSeconds, String ifExists, boolean beep, String terminateOn) throws RestException; -// void hangup String String +// void playWithId String String String String int int AriCallback callback /********************************************************** - * Delete (i.e. hangup) a channel. * * - * @since ari_0_0_1 + * @since ari_1_5_0 *********************************************************/ -public void hangup(String channelId, String reason) throws RestException; +public void playWithId(String channelId, String playbackId, String media, String lang, int offsetms, int skipms, AriCallback callback); -// void unmute String String AriCallback callback +// void unhold String AriCallback callback /********************************************************** * * * @since ari_0_0_1 *********************************************************/ -public void unmute(String channelId, String direction, AriCallback callback); +public void unhold(String channelId, AriCallback callback); -// void stopMoh String AriCallback callback +// void ring String /********************************************************** + * Indicate ringing to a channel. * * * @since ari_0_0_1 *********************************************************/ -public void stopMoh(String channelId, AriCallback callback); +public void ring(String channelId) throws RestException; -// void get String AriCallback callback +// void startSilence String /********************************************************** - * + * Play silence to a channel. + * Using media operations such as /play on a channel playing silence in this manner will suspend silence without resuming automatically. * * @since ari_0_0_1 *********************************************************/ -public void get(String channelId, AriCallback callback); +public void startSilence(String channelId) throws RestException; -// void setChannelVar String String String +// void setChannelVar String String String AriCallback callback /********************************************************** - * Set the value of a channel variable or function. * * * @since ari_0_0_1 *********************************************************/ -public void setChannelVar(String channelId, String variable, String value) throws RestException; +public void setChannelVar(String channelId, String variable, String value, AriCallback callback); -// void originateWithId String String String String long String String String String int Map String String String AriCallback callback +// void originate String String String long String String String String int Map String String String AriCallback callback /********************************************************** * * - * @since ari_1_10_0 + * @since ari_1_7_0 *********************************************************/ -public void originateWithId(String channelId, String endpoint, String extension, String context, long priority, String label, String app, String appArgs, String callerId, int timeout, Map variables, String otherChannelId, String originator, String formats, AriCallback callback); +public void originate(String endpoint, String extension, String context, long priority, String label, String app, String appArgs, String callerId, int timeout, Map variables, String channelId, String otherChannelId, String originator, AriCallback callback); -// void continueInDialplan String String String int String AriCallback callback +// void list AriCallback> callback /********************************************************** * * - * @since ari_1_7_0 + * @since ari_0_0_1 *********************************************************/ -public void continueInDialplan(String channelId, String context, String extension, int priority, String label, AriCallback callback); +public void list(AriCallback> callback); -// void unhold String AriCallback callback +// void stopMoh String AriCallback callback /********************************************************** * * * @since ari_0_0_1 *********************************************************/ -public void unhold(String channelId, AriCallback callback); +public void stopMoh(String channelId, AriCallback callback); -// void startSilence String AriCallback callback +// Channel originateWithId String String String String long String String String int Map String /********************************************************** + * Create a new channel (originate with id). + * The new channel is created immediately and a snapshot of it returned. If a Stasis application is provided it will be automatically subscribed to the originated channel for further events and updates. * - * - * @since ari_0_0_1 + * @since ari_1_5_0 *********************************************************/ -public void startSilence(String channelId, AriCallback callback); +public Channel originateWithId(String channelId, String endpoint, String extension, String context, long priority, String app, String appArgs, String callerId, int timeout, Map variables, String otherChannelId) throws RestException; -// Playback play String String String int int +// void answer String AriCallback callback /********************************************************** - * Start playback of media. - * The media URI may be any of a number of URI's. Currently sound: and recording: URI's are supported. This operation creates a playback resource that can be used to control the playback of media (pause, rewind, fast forward, etc.) + * * * @since ari_0_0_1 *********************************************************/ -public Playback play(String channelId, String media, String lang, int offsetms, int skipms) throws RestException; +public void answer(String channelId, AriCallback callback); -// void hangup String String AriCallback callback +// Channel snoopChannel String String String String String /********************************************************** - * + * Start snooping. + * Snoop (spy/whisper) on a specific channel. * * @since ari_0_0_1 *********************************************************/ -public void hangup(String channelId, String reason, AriCallback callback); +public Channel snoopChannel(String channelId, String spy, String whisper, String app, String appArgs) throws RestException; -// void continueInDialplan String String String int +// void dial String String int AriCallback callback /********************************************************** - * Exit application; continue execution in the dialplan. * * - * @since ari_0_0_1 + * @since ari_1_10_0 *********************************************************/ -public void continueInDialplan(String channelId, String context, String extension, int priority) throws RestException; +public void dial(String channelId, String caller, int timeout, AriCallback callback); -// Channel originate String String String long String String String String int Map String String String String +// void stopSilence String /********************************************************** - * Create a new channel (originate). - * The new channel is created immediately and a snapshot of it returned. If a Stasis application is provided it will be automatically subscribed to the originated channel for further events and updates. + * Stop playing silence to a channel. * - * @since ari_1_10_0 + * + * @since ari_0_0_1 *********************************************************/ -public Channel originate(String endpoint, String extension, String context, long priority, String label, String app, String appArgs, String callerId, int timeout, Map variables, String channelId, String otherChannelId, String originator, String formats) throws RestException; +public void stopSilence(String channelId) throws RestException; -// void originate String String String long String String String int AriCallback callback +// void originate String String String long String String String int Map String String AriCallback callback /********************************************************** * * - * @since ari_0_0_1 + * @since ari_1_5_0 *********************************************************/ -public void originate(String endpoint, String extension, String context, long priority, String app, String appArgs, String callerId, int timeout, AriCallback callback); +public void originate(String endpoint, String extension, String context, long priority, String app, String appArgs, String callerId, int timeout, Map variables, String channelId, String otherChannelId, AriCallback callback); -// Channel get String +// void continueInDialplan String String String int AriCallback callback /********************************************************** - * Channel details. * * * @since ari_0_0_1 *********************************************************/ -public Channel get(String channelId) throws RestException; +public void continueInDialplan(String channelId, String context, String extension, int priority, AriCallback callback); -// void redirect String String AriCallback callback +// void setChannelVar String String String /********************************************************** + * Set the value of a channel variable or function. * * - * @since ari_1_8_0 + * @since ari_0_0_1 *********************************************************/ -public void redirect(String channelId, String endpoint, AriCallback callback); +public void setChannelVar(String channelId, String variable, String value) throws RestException; -// void redirect String String +// void startMoh String String /********************************************************** - * Redirect the channel to a different location. - * + * Play music on hold to a channel. + * Using media operations such as /play on a channel playing MOH in this manner will suspend MOH without resuming automatically. If continuing music on hold is desired, the stasis application must reinitiate music on hold. * - * @since ari_1_8_0 + * @since ari_0_0_1 *********************************************************/ -public void redirect(String channelId, String endpoint) throws RestException; +public void startMoh(String channelId, String mohClass) throws RestException; -// Playback play String String String int int String +// void snoopChannelWithId String String String String String String AriCallback callback /********************************************************** - * Start playback of media. - * The media URI may be any of a number of URI's. Currently sound:, recording:, number:, digits:, characters:, and tone: URI's are supported. This operation creates a playback resource that can be used to control the playback of media (pause, rewind, fast forward, etc.) + * * * @since ari_1_5_0 *********************************************************/ -public Playback play(String channelId, String media, String lang, int offsetms, int skipms, String playbackId) throws RestException; +public void snoopChannelWithId(String channelId, String snoopId, String spy, String whisper, String app, String appArgs, AriCallback callback); -// void stopSilence String +// void originateWithId String String String String long String String String String int Map String String String AriCallback callback /********************************************************** - * Stop playing silence to a channel. * * - * @since ari_0_0_1 + * @since ari_1_10_0 *********************************************************/ -public void stopSilence(String channelId) throws RestException; +public void originateWithId(String channelId, String endpoint, String extension, String context, long priority, String label, String app, String appArgs, String callerId, int timeout, Map variables, String otherChannelId, String originator, String formats, AriCallback callback); -// void originate String String String long String String String String int Map String String String AriCallback callback +// void continueInDialplan String String String int String /********************************************************** + * Exit application; continue execution in the dialplan. * * * @since ari_1_7_0 *********************************************************/ -public void originate(String endpoint, String extension, String context, long priority, String label, String app, String appArgs, String callerId, int timeout, Map variables, String channelId, String otherChannelId, String originator, AriCallback callback); +public void continueInDialplan(String channelId, String context, String extension, int priority, String label) throws RestException; -// Channel snoopChannelWithId String String String String String String +// Channel get String /********************************************************** - * Start snooping. - * Snoop (spy/whisper) on a specific channel. + * Channel details. * - * @since ari_1_5_0 + * + * @since ari_0_0_1 *********************************************************/ -public Channel snoopChannelWithId(String channelId, String snoopId, String spy, String whisper, String app, String appArgs) throws RestException; +public Channel get(String channelId) throws RestException; -// void startSilence String +// Playback play String String String int int /********************************************************** - * Play silence to a channel. - * Using media operations such as /play on a channel playing silence in this manner will suspend silence without resuming automatically. + * Start playback of media. + * The media URI may be any of a number of URI's. Currently sound: and recording: URI's are supported. This operation creates a playback resource that can be used to control the playback of media (pause, rewind, fast forward, etc.) * * @since ari_0_0_1 *********************************************************/ -public void startSilence(String channelId) throws RestException; +public Playback play(String channelId, String media, String lang, int offsetms, int skipms) throws RestException; -// Channel originate String String String long String String String String int Map String String String +// void play String String String int int AriCallback callback /********************************************************** - * Create a new channel (originate). - * The new channel is created immediately and a snapshot of it returned. If a Stasis application is provided it will be automatically subscribed to the originated channel for further events and updates. * - * @since ari_1_7_0 + * + * @since ari_0_0_1 *********************************************************/ -public Channel originate(String endpoint, String extension, String context, long priority, String label, String app, String appArgs, String callerId, int timeout, Map variables, String channelId, String otherChannelId, String originator) throws RestException; +public void play(String channelId, String media, String lang, int offsetms, int skipms, AriCallback callback); -// Channel create String String String String String String String +// void ringStop String /********************************************************** - * Create channel. + * Stop ringing indication on a channel if locally generated. * * - * @since ari_1_10_0 + * @since ari_0_0_1 *********************************************************/ -public Channel create(String endpoint, String app, String appArgs, String channelId, String otherChannelId, String originator, String formats) throws RestException; +public void ringStop(String channelId) throws RestException; -// void mute String String +// void startSilence String AriCallback callback /********************************************************** - * Mute a channel. * * * @since ari_0_0_1 *********************************************************/ -public void mute(String channelId, String direction) throws RestException; +public void startSilence(String channelId, AriCallback callback); -// void snoopChannel String String String String String String AriCallback callback +// void record String String String int int String boolean String AriCallback callback /********************************************************** * * - * @since ari_1_5_0 + * @since ari_0_0_1 *********************************************************/ -public void snoopChannel(String channelId, String spy, String whisper, String app, String appArgs, String snoopId, AriCallback callback); +public void record(String channelId, String name, String format, int maxDurationSeconds, int maxSilenceSeconds, String ifExists, boolean beep, String terminateOn, AriCallback callback); -// void stopMoh String +// void snoopChannel String String String String String AriCallback callback /********************************************************** - * Stop playing music on hold to a channel. * * * @since ari_0_0_1 *********************************************************/ -public void stopMoh(String channelId) throws RestException; +public void snoopChannel(String channelId, String spy, String whisper, String app, String appArgs, AriCallback callback); -// void play String String String int int String AriCallback callback +// Channel originate String String String long String String String String int Map String String String /********************************************************** + * Create a new channel (originate). + * The new channel is created immediately and a snapshot of it returned. If a Stasis application is provided it will be automatically subscribed to the originated channel for further events and updates. * - * - * @since ari_1_5_0 + * @since ari_1_7_0 *********************************************************/ -public void play(String channelId, String media, String lang, int offsetms, int skipms, String playbackId, AriCallback callback); +public Channel originate(String endpoint, String extension, String context, long priority, String label, String app, String appArgs, String callerId, int timeout, Map variables, String channelId, String otherChannelId, String originator) throws RestException; -// void startMoh String String +// void sendDTMF String String int int int int AriCallback callback /********************************************************** - * Play music on hold to a channel. - * Using media operations such as /play on a channel playing MOH in this manner will suspend MOH without resuming automatically. If continuing music on hold is desired, the stasis application must reinitiate music on hold. + * * * @since ari_0_0_1 *********************************************************/ -public void startMoh(String channelId, String mohClass) throws RestException; +public void sendDTMF(String channelId, String dtmf, int before, int between, int duration, int after, AriCallback callback); -// void unhold String +// void ring String AriCallback callback /********************************************************** - * Remove a channel from hold. * * * @since ari_0_0_1 *********************************************************/ -public void unhold(String channelId) throws RestException; +public void ring(String channelId, AriCallback callback); -// void originate String String String long String String String int Map String String AriCallback callback +// void originateWithId String String String String long String String String int Map String AriCallback callback /********************************************************** * * * @since ari_1_5_0 *********************************************************/ -public void originate(String endpoint, String extension, String context, long priority, String app, String appArgs, String callerId, int timeout, Map variables, String channelId, String otherChannelId, AriCallback callback); +public void originateWithId(String channelId, String endpoint, String extension, String context, long priority, String app, String appArgs, String callerId, int timeout, Map variables, String otherChannelId, AriCallback callback); -// void startMoh String String AriCallback callback +// Channel originateWithId String String String String long String String String String int Map String String /********************************************************** + * Create a new channel (originate with id). + * The new channel is created immediately and a snapshot of it returned. If a Stasis application is provided it will be automatically subscribed to the originated channel for further events and updates. + * + * @since ari_1_7_0 + *********************************************************/ +public Channel originateWithId(String channelId, String endpoint, String extension, String context, long priority, String label, String app, String appArgs, String callerId, int timeout, Map variables, String otherChannelId, String originator) throws RestException; + + + +// List list +/********************************************************** + * List all active channels in Asterisk. * * * @since ari_0_0_1 *********************************************************/ -public void startMoh(String channelId, String mohClass, AriCallback callback); +public List list() throws RestException; -// Channel originate String String String long String String String int +// void get String AriCallback callback /********************************************************** - * Create a new channel (originate). - * The new channel is created immediately and a snapshot of it returned. If a Stasis application is provided it will be automatically subscribed to the originated channel for further events and updates. + * * * @since ari_0_0_1 *********************************************************/ -public Channel originate(String endpoint, String extension, String context, long priority, String app, String appArgs, String callerId, int timeout) throws RestException; +public void get(String channelId, AriCallback callback); -// Channel originateWithId String String String String long String String String int Map String +// void hold String AriCallback callback /********************************************************** - * Create a new channel (originate with id). - * The new channel is created immediately and a snapshot of it returned. If a Stasis application is provided it will be automatically subscribed to the originated channel for further events and updates. * - * @since ari_1_5_0 + * + * @since ari_0_0_1 *********************************************************/ -public Channel originateWithId(String channelId, String endpoint, String extension, String context, long priority, String app, String appArgs, String callerId, int timeout, Map variables, String otherChannelId) throws RestException; +public void hold(String channelId, AriCallback callback); -// void stopSilence String AriCallback callback +// void unmute String String AriCallback callback /********************************************************** * * * @since ari_0_0_1 *********************************************************/ -public void stopSilence(String channelId, AriCallback callback); +public void unmute(String channelId, String direction, AriCallback callback); -// Channel originateWithId String String String String long String String String String int Map String String String +// void ringStop String AriCallback callback /********************************************************** - * Create a new channel (originate with id). + * + * + * @since ari_0_0_1 + *********************************************************/ +public void ringStop(String channelId, AriCallback callback); + + + +// Channel originate String String String long String String String String int Map String String String String +/********************************************************** + * Create a new channel (originate). * The new channel is created immediately and a snapshot of it returned. If a Stasis application is provided it will be automatically subscribed to the originated channel for further events and updates. * * @since ari_1_10_0 *********************************************************/ -public Channel originateWithId(String channelId, String endpoint, String extension, String context, long priority, String label, String app, String appArgs, String callerId, int timeout, Map variables, String otherChannelId, String originator, String formats) throws RestException; +public Channel originate(String endpoint, String extension, String context, long priority, String label, String app, String appArgs, String callerId, int timeout, Map variables, String channelId, String otherChannelId, String originator, String formats) throws RestException; -// Variable getChannelVar String String +// Channel originateWithId String String String String long String String String String int Map String String String /********************************************************** - * Get the value of a channel variable or function. - * + * Create a new channel (originate with id). + * The new channel is created immediately and a snapshot of it returned. If a Stasis application is provided it will be automatically subscribed to the originated channel for further events and updates. * - * @since ari_0_0_1 + * @since ari_1_10_0 *********************************************************/ -public Variable getChannelVar(String channelId, String variable) throws RestException; +public Channel originateWithId(String channelId, String endpoint, String extension, String context, long priority, String label, String app, String appArgs, String callerId, int timeout, Map variables, String otherChannelId, String originator, String formats) throws RestException; @@ -538,13 +555,14 @@ public interface ActionChannels { -// void getChannelVar String String AriCallback callback +// Channel originate String String String long String String String int /********************************************************** - * + * Create a new channel (originate). + * The new channel is created immediately and a snapshot of it returned. If a Stasis application is provided it will be automatically subscribed to the originated channel for further events and updates. * * @since ari_0_0_1 *********************************************************/ -public void getChannelVar(String channelId, String variable, AriCallback callback); +public Channel originate(String endpoint, String extension, String context, long priority, String app, String appArgs, String callerId, int timeout) throws RestException; @@ -558,223 +576,205 @@ public interface ActionChannels { -// void answer String -/********************************************************** - * Answer a channel. - * - * - * @since ari_0_0_1 - *********************************************************/ -public void answer(String channelId) throws RestException; - - - -// void list AriCallback> callback +// void continueInDialplan String String String int String AriCallback callback /********************************************************** * * - * @since ari_0_0_1 + * @since ari_1_7_0 *********************************************************/ -public void list(AriCallback> callback); +public void continueInDialplan(String channelId, String context, String extension, int priority, String label, AriCallback callback); -// void create String String String String String String String AriCallback callback +// void dial String String int /********************************************************** + * Dial a created channel. * * * @since ari_1_10_0 *********************************************************/ -public void create(String endpoint, String app, String appArgs, String channelId, String otherChannelId, String originator, String formats, AriCallback callback); +public void dial(String channelId, String caller, int timeout) throws RestException; -// void hold String +// void mute String String /********************************************************** - * Hold a channel. + * Mute a channel. * * * @since ari_0_0_1 *********************************************************/ -public void hold(String channelId) throws RestException; +public void mute(String channelId, String direction) throws RestException; -// void setChannelVar String String String AriCallback callback +// Variable getChannelVar String String /********************************************************** + * Get the value of a channel variable or function. * * * @since ari_0_0_1 *********************************************************/ -public void setChannelVar(String channelId, String variable, String value, AriCallback callback); +public Variable getChannelVar(String channelId, String variable) throws RestException; -// List list +// void create String String String String String String String AriCallback callback /********************************************************** - * List all active channels in Asterisk. * * - * @since ari_0_0_1 + * @since ari_1_10_0 *********************************************************/ -public List list() throws RestException; +public void create(String endpoint, String app, String appArgs, String channelId, String otherChannelId, String originator, String formats, AriCallback callback); -// Channel originate String String String long String String String int Map String String +// Channel create String String String String String String String /********************************************************** - * Create a new channel (originate). - * The new channel is created immediately and a snapshot of it returned. If a Stasis application is provided it will be automatically subscribed to the originated channel for further events and updates. + * Create channel. * - * @since ari_1_5_0 + * + * @since ari_1_10_0 *********************************************************/ -public Channel originate(String endpoint, String extension, String context, long priority, String app, String appArgs, String callerId, int timeout, Map variables, String channelId, String otherChannelId) throws RestException; +public Channel create(String endpoint, String app, String appArgs, String channelId, String otherChannelId, String originator, String formats) throws RestException; -// void ring String AriCallback callback +// void continueInDialplan String String String int /********************************************************** + * Exit application; continue execution in the dialplan. * * * @since ari_0_0_1 *********************************************************/ -public void ring(String channelId, AriCallback callback); +public void continueInDialplan(String channelId, String context, String extension, int priority) throws RestException; -// void record String String String int int String boolean String AriCallback callback +// void snoopChannel String String String String String String AriCallback callback /********************************************************** * * - * @since ari_0_0_1 + * @since ari_1_5_0 *********************************************************/ -public void record(String channelId, String name, String format, int maxDurationSeconds, int maxSilenceSeconds, String ifExists, boolean beep, String terminateOn, AriCallback callback); +public void snoopChannel(String channelId, String spy, String whisper, String app, String appArgs, String snoopId, AriCallback callback); -// Channel originateWithId String String String String long String String String String int Map String String +// void originate String String String long String String String String int Map String String String String AriCallback callback /********************************************************** - * Create a new channel (originate with id). - * The new channel is created immediately and a snapshot of it returned. If a Stasis application is provided it will be automatically subscribed to the originated channel for further events and updates. * - * @since ari_1_7_0 + * + * @since ari_1_10_0 *********************************************************/ -public Channel originateWithId(String channelId, String endpoint, String extension, String context, long priority, String label, String app, String appArgs, String callerId, int timeout, Map variables, String otherChannelId, String originator) throws RestException; +public void originate(String endpoint, String extension, String context, long priority, String label, String app, String appArgs, String callerId, int timeout, Map variables, String channelId, String otherChannelId, String originator, String formats, AriCallback callback); -// void play String String String int int AriCallback callback +// void mute String String AriCallback callback /********************************************************** * * * @since ari_0_0_1 *********************************************************/ -public void play(String channelId, String media, String lang, int offsetms, int skipms, AriCallback callback); +public void mute(String channelId, String direction, AriCallback callback); -// Channel snoopChannel String String String String String String +// void hangup String String AriCallback callback /********************************************************** - * Start snooping. - * Snoop (spy/whisper) on a specific channel. * - * @since ari_1_5_0 + * + * @since ari_0_0_1 *********************************************************/ -public Channel snoopChannel(String channelId, String spy, String whisper, String app, String appArgs, String snoopId) throws RestException; +public void hangup(String channelId, String reason, AriCallback callback); -// void mute String String AriCallback callback +// Playback play String String String int int String /********************************************************** + * Start playback of media. + * The media URI may be any of a number of URI's. Currently sound:, recording:, number:, digits:, characters:, and tone: URI's are supported. This operation creates a playback resource that can be used to control the playback of media (pause, rewind, fast forward, etc.) * - * - * @since ari_0_0_1 + * @since ari_1_5_0 *********************************************************/ -public void mute(String channelId, String direction, AriCallback callback); +public Playback play(String channelId, String media, String lang, int offsetms, int skipms, String playbackId) throws RestException; -// void answer String AriCallback callback +// void hangup String String /********************************************************** + * Delete (i.e. hangup) a channel. * * * @since ari_0_0_1 *********************************************************/ -public void answer(String channelId, AriCallback callback); +public void hangup(String channelId, String reason) throws RestException; -// void continueInDialplan String String String int String +// void hold String /********************************************************** - * Exit application; continue execution in the dialplan. + * Hold a channel. * * - * @since ari_1_7_0 + * @since ari_0_0_1 *********************************************************/ -public void continueInDialplan(String channelId, String context, String extension, int priority, String label) throws RestException; +public void hold(String channelId) throws RestException; -// Playback playWithId String String String String int int +// Channel originate String String String long String String String int Map String String /********************************************************** - * Start playback of media and specify the playbackId. - * The media URI may be any of a number of URI's. Currently sound: and recording: URI's are supported. This operation creates a playback resource that can be used to control the playback of media (pause, rewind, fast forward, etc.) + * Create a new channel (originate). + * The new channel is created immediately and a snapshot of it returned. If a Stasis application is provided it will be automatically subscribed to the originated channel for further events and updates. * * @since ari_1_5_0 *********************************************************/ -public Playback playWithId(String channelId, String playbackId, String media, String lang, int offsetms, int skipms) throws RestException; +public Channel originate(String endpoint, String extension, String context, long priority, String app, String appArgs, String callerId, int timeout, Map variables, String channelId, String otherChannelId) throws RestException; -// void sendDTMF String String int int int int AriCallback callback +// void unmute String String /********************************************************** + * Unmute a channel. * * * @since ari_0_0_1 *********************************************************/ -public void sendDTMF(String channelId, String dtmf, int before, int between, int duration, int after, AriCallback callback); +public void unmute(String channelId, String direction) throws RestException; -// Channel snoopChannel String String String String String +// Channel snoopChannel String String String String String String /********************************************************** * Start snooping. * Snoop (spy/whisper) on a specific channel. * - * @since ari_0_0_1 + * @since ari_1_5_0 *********************************************************/ -public Channel snoopChannel(String channelId, String spy, String whisper, String app, String appArgs) throws RestException; +public Channel snoopChannel(String channelId, String spy, String whisper, String app, String appArgs, String snoopId) throws RestException; -// void hold String AriCallback callback +// void redirect String String /********************************************************** + * Redirect the channel to a different location. * * - * @since ari_0_0_1 + * @since ari_1_8_0 *********************************************************/ -public void hold(String channelId, AriCallback callback); +public void redirect(String channelId, String endpoint) throws RestException; -// void originate String String String long String String String String int Map String String String String AriCallback callback +// void originate String String String long String String String int AriCallback callback /********************************************************** * * - * @since ari_1_10_0 - *********************************************************/ -public void originate(String endpoint, String extension, String context, long priority, String label, String app, String appArgs, String callerId, int timeout, Map variables, String channelId, String otherChannelId, String originator, String formats, AriCallback callback); - - - -// LiveRecording record String String String int int String boolean String -/********************************************************** - * Start a recording. - * Record audio from a channel. Note that this will not capture audio sent to the channel. The bridge itself has a record feature if that's what you want. - * * @since ari_0_0_1 *********************************************************/ -public LiveRecording record(String channelId, String name, String format, int maxDurationSeconds, int maxSilenceSeconds, String ifExists, boolean beep, String terminateOn) throws RestException; +public void originate(String endpoint, String extension, String context, long priority, String app, String appArgs, String callerId, int timeout, AriCallback callback); } diff --git a/classes/ch/loway/oss/ari4java/generated/ActionDeviceStates.java b/classes/ch/loway/oss/ari4java/generated/ActionDeviceStates.java index a0610cf7..44ec0de4 100644 --- a/classes/ch/loway/oss/ari4java/generated/ActionDeviceStates.java +++ b/classes/ch/loway/oss/ari4java/generated/ActionDeviceStates.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Wed Aug 31 18:05:10 CEST 2016 +// Generated on: Sat Feb 04 15:23:09 CET 2017 // ---------------------------------------------------- import java.util.Date; @@ -22,66 +22,66 @@ public interface ActionDeviceStates { -// List list +// void list AriCallback> callback /********************************************************** - * List all ARI controlled device states. * * * @since ari_0_0_1 *********************************************************/ -public List list() throws RestException; +public void list(AriCallback> callback); -// void get String AriCallback callback +// void update String String /********************************************************** + * Change the state of a device controlled by ARI. (Note - implicitly creates the device state). * * * @since ari_0_0_1 *********************************************************/ -public void get(String deviceName, AriCallback callback); +public void update(String deviceName, String deviceState) throws RestException; -// void delete String AriCallback callback +// void get String AriCallback callback /********************************************************** * * * @since ari_0_0_1 *********************************************************/ -public void delete(String deviceName, AriCallback callback); +public void get(String deviceName, AriCallback callback); -// void delete String +// List list /********************************************************** - * Destroy a device-state controlled by ARI. + * List all ARI controlled device states. * * * @since ari_0_0_1 *********************************************************/ -public void delete(String deviceName) throws RestException; +public List list() throws RestException; -// void update String String AriCallback callback +// void delete String /********************************************************** + * Destroy a device-state controlled by ARI. * * * @since ari_0_0_1 *********************************************************/ -public void update(String deviceName, String deviceState, AriCallback callback); +public void delete(String deviceName) throws RestException; -// void update String String +// void delete String AriCallback callback /********************************************************** - * Change the state of a device controlled by ARI. (Note - implicitly creates the device state). * * * @since ari_0_0_1 *********************************************************/ -public void update(String deviceName, String deviceState) throws RestException; +public void delete(String deviceName, AriCallback callback); @@ -96,13 +96,13 @@ public interface ActionDeviceStates { -// void list AriCallback> callback +// void update String String AriCallback callback /********************************************************** * * * @since ari_0_0_1 *********************************************************/ -public void list(AriCallback> callback); +public void update(String deviceName, String deviceState, AriCallback callback); } diff --git a/classes/ch/loway/oss/ari4java/generated/ActionEndpoints.java b/classes/ch/loway/oss/ari4java/generated/ActionEndpoints.java index 72b1c1cf..e4884208 100644 --- a/classes/ch/loway/oss/ari4java/generated/ActionEndpoints.java +++ b/classes/ch/loway/oss/ari4java/generated/ActionEndpoints.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Wed Aug 31 18:05:10 CEST 2016 +// Generated on: Sat Feb 04 15:23:08 CET 2017 // ---------------------------------------------------- import java.util.Date; @@ -22,108 +22,108 @@ public interface ActionEndpoints { -// Endpoint get String String +// void listByTech String AriCallback> callback /********************************************************** - * Details for an endpoint. * * * @since ari_0_0_1 *********************************************************/ -public Endpoint get(String tech, String resource) throws RestException; +public void listByTech(String tech, AriCallback> callback); -// List listByTech String +// void sendMessageToEndpoint String String String String Map /********************************************************** - * List available endoints for a given endpoint technology. + * Send a message to some endpoint in a technology. * * - * @since ari_0_0_1 + * @since ari_1_5_0 *********************************************************/ -public List listByTech(String tech) throws RestException; +public void sendMessageToEndpoint(String tech, String resource, String from, String body, Map variables) throws RestException; -// void list AriCallback> callback +// void sendMessage String String String Map /********************************************************** + * Send a message to some technology URI or endpoint. * * - * @since ari_0_0_1 + * @since ari_1_5_0 *********************************************************/ -public void list(AriCallback> callback); +public void sendMessage(String to, String from, String body, Map variables) throws RestException; -// void sendMessageToEndpoint String String String String Map AriCallback callback +// void list AriCallback> callback /********************************************************** * * - * @since ari_1_5_0 + * @since ari_0_0_1 *********************************************************/ -public void sendMessageToEndpoint(String tech, String resource, String from, String body, Map variables, AriCallback callback); +public void list(AriCallback> callback); -// void sendMessage String String String Map AriCallback callback +// List listByTech String /********************************************************** + * List available endoints for a given endpoint technology. * * - * @since ari_1_5_0 + * @since ari_0_0_1 *********************************************************/ -public void sendMessage(String to, String from, String body, Map variables, AriCallback callback); +public List listByTech(String tech) throws RestException; -// void listByTech String AriCallback> callback +// List list /********************************************************** + * List all endpoints. * * * @since ari_0_0_1 *********************************************************/ -public void listByTech(String tech, AriCallback> callback); +public List list() throws RestException; -// void get String String AriCallback callback +// void sendMessage String String String Map AriCallback callback /********************************************************** * * - * @since ari_0_0_1 + * @since ari_1_5_0 *********************************************************/ -public void get(String tech, String resource, AriCallback callback); +public void sendMessage(String to, String from, String body, Map variables, AriCallback callback); -// List list +// void get String String AriCallback callback /********************************************************** - * List all endpoints. * * * @since ari_0_0_1 *********************************************************/ -public List list() throws RestException; +public void get(String tech, String resource, AriCallback callback); -// void sendMessageToEndpoint String String String String Map +// Endpoint get String String /********************************************************** - * Send a message to some endpoint in a technology. + * Details for an endpoint. * * - * @since ari_1_5_0 + * @since ari_0_0_1 *********************************************************/ -public void sendMessageToEndpoint(String tech, String resource, String from, String body, Map variables) throws RestException; +public Endpoint get(String tech, String resource) throws RestException; -// void sendMessage String String String Map +// void sendMessageToEndpoint String String String String Map AriCallback callback /********************************************************** - * Send a message to some technology URI or endpoint. * * * @since ari_1_5_0 *********************************************************/ -public void sendMessage(String to, String from, String body, Map variables) throws RestException; +public void sendMessageToEndpoint(String tech, String resource, String from, String body, Map variables, AriCallback callback); } diff --git a/classes/ch/loway/oss/ari4java/generated/ActionEvents.java b/classes/ch/loway/oss/ari4java/generated/ActionEvents.java index 5a906e1e..a397b048 100644 --- a/classes/ch/loway/oss/ari4java/generated/ActionEvents.java +++ b/classes/ch/loway/oss/ari4java/generated/ActionEvents.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Wed Aug 31 18:05:10 CEST 2016 +// Generated on: Sat Feb 04 15:23:09 CET 2017 // ---------------------------------------------------- import java.util.Date; @@ -22,66 +22,66 @@ public interface ActionEvents { -// void userEvent String String String Map +// void userEvent String String String Map AriCallback callback /********************************************************** - * Generate a user event. * * * @since ari_1_5_0 *********************************************************/ -public void userEvent(String eventName, String application, String source, Map variables) throws RestException; +public void userEvent(String eventName, String application, String source, Map variables, AriCallback callback); -// void eventWebsocket String boolean AriCallback callback +// Message eventWebsocket String /********************************************************** + * WebSocket connection for events. * * - * @since ari_1_9_0 + * @since ari_0_0_1 *********************************************************/ -public void eventWebsocket(String app, boolean subscribeAll, AriCallback callback); +public Message eventWebsocket(String app) throws RestException; -// void eventWebsocket String AriCallback callback +// Message eventWebsocket String boolean /********************************************************** + * WebSocket connection for events. * * - * @since ari_0_0_1 + * @since ari_1_9_0 *********************************************************/ -public void eventWebsocket(String app, AriCallback callback); +public Message eventWebsocket(String app, boolean subscribeAll) throws RestException; -// Message eventWebsocket String +// void eventWebsocket String AriCallback callback /********************************************************** - * WebSocket connection for events. * * * @since ari_0_0_1 *********************************************************/ -public Message eventWebsocket(String app) throws RestException; +public void eventWebsocket(String app, AriCallback callback); -// void userEvent String String String Map AriCallback callback +// void userEvent String String String Map /********************************************************** + * Generate a user event. * * * @since ari_1_5_0 *********************************************************/ -public void userEvent(String eventName, String application, String source, Map variables, AriCallback callback); +public void userEvent(String eventName, String application, String source, Map variables) throws RestException; -// Message eventWebsocket String boolean +// void eventWebsocket String boolean AriCallback callback /********************************************************** - * WebSocket connection for events. * * * @since ari_1_9_0 *********************************************************/ -public Message eventWebsocket(String app, boolean subscribeAll) throws RestException; +public void eventWebsocket(String app, boolean subscribeAll, AriCallback callback); } diff --git a/classes/ch/loway/oss/ari4java/generated/ActionPlaybacks.java b/classes/ch/loway/oss/ari4java/generated/ActionPlaybacks.java index 4aa0cc3d..63eab822 100644 --- a/classes/ch/loway/oss/ari4java/generated/ActionPlaybacks.java +++ b/classes/ch/loway/oss/ari4java/generated/ActionPlaybacks.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Wed Aug 31 18:05:10 CEST 2016 +// Generated on: Sat Feb 04 15:23:08 CET 2017 // ---------------------------------------------------- import java.util.Date; @@ -32,56 +32,56 @@ public interface ActionPlaybacks { -// void control String String +// Playback get String /********************************************************** - * Control a playback. + * Get a playback's details. * * * @since ari_0_0_1 *********************************************************/ -public void control(String playbackId, String operation) throws RestException; +public Playback get(String playbackId) throws RestException; -// void stop String +// void stop String AriCallback callback /********************************************************** - * Stop a playback. * * * @since ari_0_0_1 *********************************************************/ -public void stop(String playbackId) throws RestException; +public void stop(String playbackId, AriCallback callback); -// Playback get String +// void stop String /********************************************************** - * Get a playback's details. + * Stop a playback. * * * @since ari_0_0_1 *********************************************************/ -public Playback get(String playbackId) throws RestException; +public void stop(String playbackId) throws RestException; -// void control String String AriCallback callback +// void control String String /********************************************************** + * Control a playback. * * * @since ari_0_0_1 *********************************************************/ -public void control(String playbackId, String operation, AriCallback callback); +public void control(String playbackId, String operation) throws RestException; -// void stop String AriCallback callback +// void control String String AriCallback callback /********************************************************** * * * @since ari_0_0_1 *********************************************************/ -public void stop(String playbackId, AriCallback callback); +public void control(String playbackId, String operation, AriCallback callback); } diff --git a/classes/ch/loway/oss/ari4java/generated/ActionRecordings.java b/classes/ch/loway/oss/ari4java/generated/ActionRecordings.java index 1c1ab3ac..85a0038a 100644 --- a/classes/ch/loway/oss/ari4java/generated/ActionRecordings.java +++ b/classes/ch/loway/oss/ari4java/generated/ActionRecordings.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Wed Aug 31 18:05:10 CEST 2016 +// Generated on: Sat Feb 04 15:23:08 CET 2017 // ---------------------------------------------------- import java.util.Date; @@ -22,108 +22,97 @@ public interface ActionRecordings { -// void mute String AriCallback callback -/********************************************************** - * - * - * @since ari_0_0_1 - *********************************************************/ -public void mute(String recordingName, AriCallback callback); - - - -// StoredRecording getStored String +// LiveRecording getLive String /********************************************************** - * Get a stored recording's details. + * List live recordings. * * * @since ari_0_0_1 *********************************************************/ -public StoredRecording getStored(String recordingName) throws RestException; +public LiveRecording getLive(String recordingName) throws RestException; -// LiveRecording getLive String +// void cancel String /********************************************************** - * List live recordings. + * Stop a live recording and discard it. * * * @since ari_0_0_1 *********************************************************/ -public LiveRecording getLive(String recordingName) throws RestException; +public void cancel(String recordingName) throws RestException; -// void unpause String +// void copyStored String String AriCallback callback /********************************************************** - * Unpause a live recording. * * - * @since ari_0_0_1 + * @since ari_1_5_0 *********************************************************/ -public void unpause(String recordingName) throws RestException; +public void copyStored(String recordingName, String destinationRecordingName, AriCallback callback); -// void pause String AriCallback callback +// void getStored String AriCallback callback /********************************************************** * * * @since ari_0_0_1 *********************************************************/ -public void pause(String recordingName, AriCallback callback); +public void getStored(String recordingName, AriCallback callback); -// void listStored AriCallback> callback +// void getLive String AriCallback callback /********************************************************** * * * @since ari_0_0_1 *********************************************************/ -public void listStored(AriCallback> callback); +public void getLive(String recordingName, AriCallback callback); -// void deleteStored String AriCallback callback +// void mute String /********************************************************** - * + * Mute a live recording. + * Muting a recording suspends silence detection, which will be restarted when the recording is unmuted. * * @since ari_0_0_1 *********************************************************/ -public void deleteStored(String recordingName, AriCallback callback); +public void mute(String recordingName) throws RestException; -// void cancel String +// StoredRecording copyStored String String /********************************************************** - * Stop a live recording and discard it. + * Copy a stored recording. * * - * @since ari_0_0_1 + * @since ari_1_5_0 *********************************************************/ -public void cancel(String recordingName) throws RestException; +public StoredRecording copyStored(String recordingName, String destinationRecordingName) throws RestException; -// void cancel String AriCallback callback +// void stop String AriCallback callback /********************************************************** * * * @since ari_0_0_1 *********************************************************/ -public void cancel(String recordingName, AriCallback callback); +public void stop(String recordingName, AriCallback callback); -// void unmute String +// void unmute String AriCallback callback /********************************************************** - * Unmute a live recording. * * * @since ari_0_0_1 *********************************************************/ -public void unmute(String recordingName) throws RestException; +public void unmute(String recordingName, AriCallback callback); @@ -149,128 +138,139 @@ public interface ActionRecordings { -// void unpause String AriCallback callback +// void cancel String AriCallback callback /********************************************************** * * * @since ari_0_0_1 *********************************************************/ -public void unpause(String recordingName, AriCallback callback); +public void cancel(String recordingName, AriCallback callback); -// void pause String +// void stop String /********************************************************** - * Pause a live recording. - * Pausing a recording suspends silence detection, which will be restarted when the recording is unpaused. Paused time is not included in the accounting for maxDurationSeconds. + * Stop a live recording and store it. + * * * @since ari_0_0_1 *********************************************************/ -public void pause(String recordingName) throws RestException; +public void stop(String recordingName) throws RestException; -// byte[] getStoredFile String +// void mute String AriCallback callback /********************************************************** - * Get the file associated with the stored recording. * * - * @since ari_1_10_0 + * @since ari_0_0_1 *********************************************************/ -public byte[] getStoredFile(String recordingName) throws RestException; +public void mute(String recordingName, AriCallback callback); -// StoredRecording copyStored String String +// void unpause String /********************************************************** - * Copy a stored recording. + * Unpause a live recording. * * - * @since ari_1_5_0 + * @since ari_0_0_1 *********************************************************/ -public StoredRecording copyStored(String recordingName, String destinationRecordingName) throws RestException; +public void unpause(String recordingName) throws RestException; -// void getStoredFile String AriCallback callback +// StoredRecording getStored String /********************************************************** + * Get a stored recording's details. * * - * @since ari_1_10_0 + * @since ari_0_0_1 *********************************************************/ -public void getStoredFile(String recordingName, AriCallback callback); +public StoredRecording getStored(String recordingName) throws RestException; -// void getLive String AriCallback callback +// void listStored AriCallback> callback /********************************************************** * * * @since ari_0_0_1 *********************************************************/ -public void getLive(String recordingName, AriCallback callback); +public void listStored(AriCallback> callback); -// void mute String +// void pause String /********************************************************** - * Mute a live recording. - * Muting a recording suspends silence detection, which will be restarted when the recording is unmuted. + * Pause a live recording. + * Pausing a recording suspends silence detection, which will be restarted when the recording is unpaused. Paused time is not included in the accounting for maxDurationSeconds. * * @since ari_0_0_1 *********************************************************/ -public void mute(String recordingName) throws RestException; +public void pause(String recordingName) throws RestException; -// void copyStored String String AriCallback callback +// void unpause String AriCallback callback /********************************************************** * * - * @since ari_1_5_0 + * @since ari_0_0_1 *********************************************************/ -public void copyStored(String recordingName, String destinationRecordingName, AriCallback callback); +public void unpause(String recordingName, AriCallback callback); -// void getStored String AriCallback callback +// void unmute String /********************************************************** + * Unmute a live recording. * * * @since ari_0_0_1 *********************************************************/ -public void getStored(String recordingName, AriCallback callback); +public void unmute(String recordingName) throws RestException; -// void stop String +// void pause String AriCallback callback /********************************************************** - * Stop a live recording and store it. * * * @since ari_0_0_1 *********************************************************/ -public void stop(String recordingName) throws RestException; +public void pause(String recordingName, AriCallback callback); -// void unmute String AriCallback callback +// byte[] getStoredFile String +/********************************************************** + * Get the file associated with the stored recording. + * + * + * @since ari_1_10_0 + *********************************************************/ +public byte[] getStoredFile(String recordingName) throws RestException; + + + +// void getStoredFile String AriCallback callback /********************************************************** * * - * @since ari_0_0_1 + * @since ari_1_10_0 *********************************************************/ -public void unmute(String recordingName, AriCallback callback); +public void getStoredFile(String recordingName, AriCallback callback); -// void stop String AriCallback callback +// void deleteStored String AriCallback callback /********************************************************** * * * @since ari_0_0_1 *********************************************************/ -public void stop(String recordingName, AriCallback callback); +public void deleteStored(String recordingName, AriCallback callback); } diff --git a/classes/ch/loway/oss/ari4java/generated/ActionSounds.java b/classes/ch/loway/oss/ari4java/generated/ActionSounds.java index 901c1640..8e54ba07 100644 --- a/classes/ch/loway/oss/ari4java/generated/ActionSounds.java +++ b/classes/ch/loway/oss/ari4java/generated/ActionSounds.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Wed Aug 31 18:05:10 CEST 2016 +// Generated on: Sat Feb 04 15:23:09 CET 2017 // ---------------------------------------------------- import java.util.Date; @@ -33,34 +33,34 @@ public interface ActionSounds { -// void get String AriCallback callback +// Sound get String /********************************************************** + * Get a sound's details. * * * @since ari_0_0_1 *********************************************************/ -public void get(String soundId, AriCallback callback); +public Sound get(String soundId) throws RestException; -// Sound get String +// void list String String AriCallback> callback /********************************************************** - * Get a sound's details. * * * @since ari_0_0_1 *********************************************************/ -public Sound get(String soundId) throws RestException; +public void list(String lang, String format, AriCallback> callback); -// void list String String AriCallback> callback +// void get String AriCallback callback /********************************************************** * * * @since ari_0_0_1 *********************************************************/ -public void list(String lang, String format, AriCallback> callback); +public void get(String soundId, AriCallback callback); } diff --git a/classes/ch/loway/oss/ari4java/generated/Application.java b/classes/ch/loway/oss/ari4java/generated/Application.java index 2f3eb5ea..b490173f 100644 --- a/classes/ch/loway/oss/ari4java/generated/Application.java +++ b/classes/ch/loway/oss/ari4java/generated/Application.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Wed Aug 31 18:05:10 CEST 2016 +// Generated on: Sat Feb 04 15:23:08 CET 2017 // ---------------------------------------------------- import java.util.Date; @@ -22,23 +22,23 @@ public interface Application { -// void setEndpoint_ids List +// List getBridge_ids /********************************************************** - * {tech}/{resource} for endpoints subscribed to. + * Id's for bridges subscribed to. * * @since ari_0_0_1 *********************************************************/ - public void setEndpoint_ids(List val ); + public List getBridge_ids(); -// void setBridge_ids List +// String getName /********************************************************** - * Id's for bridges subscribed to. + * Name of this application * * @since ari_0_0_1 *********************************************************/ - public void setBridge_ids(List val ); + public String getName(); @@ -52,23 +52,23 @@ public interface Application { -// List getBridge_ids +// List getDevice_names /********************************************************** - * Id's for bridges subscribed to. + * Names of the devices subscribed to. * * @since ari_0_0_1 *********************************************************/ - public List getBridge_ids(); + public List getDevice_names(); -// void setName String +// void setDevice_names List /********************************************************** - * Name of this application + * Names of the devices subscribed to. * * @since ari_0_0_1 *********************************************************/ - public void setName(String val ); + public void setDevice_names(List val ); @@ -82,43 +82,43 @@ public interface Application { -// void setChannel_ids List +// void setEndpoint_ids List /********************************************************** - * Id's for channels subscribed to. + * {tech}/{resource} for endpoints subscribed to. * * @since ari_0_0_1 *********************************************************/ - public void setChannel_ids(List val ); + public void setEndpoint_ids(List val ); -// String getName +// void setName String /********************************************************** * Name of this application * * @since ari_0_0_1 *********************************************************/ - public String getName(); + public void setName(String val ); -// void setDevice_names List +// void setChannel_ids List /********************************************************** - * Names of the devices subscribed to. + * Id's for channels subscribed to. * * @since ari_0_0_1 *********************************************************/ - public void setDevice_names(List val ); + public void setChannel_ids(List val ); -// List getDevice_names +// void setBridge_ids List /********************************************************** - * Names of the devices subscribed to. + * Id's for bridges subscribed to. * * @since ari_0_0_1 *********************************************************/ - public List getDevice_names(); + public void setBridge_ids(List val ); } diff --git a/classes/ch/loway/oss/ari4java/generated/ApplicationReplaced.java b/classes/ch/loway/oss/ari4java/generated/ApplicationReplaced.java index 7e905934..025135de 100644 --- a/classes/ch/loway/oss/ari4java/generated/ApplicationReplaced.java +++ b/classes/ch/loway/oss/ari4java/generated/ApplicationReplaced.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Wed Aug 31 18:05:10 CEST 2016 +// Generated on: Sat Feb 04 15:23:08 CET 2017 // ---------------------------------------------------- import java.util.Date; diff --git a/classes/ch/loway/oss/ari4java/generated/AriBuilder.java b/classes/ch/loway/oss/ari4java/generated/AriBuilder.java index a4600cc3..97ff980a 100644 --- a/classes/ch/loway/oss/ari4java/generated/AriBuilder.java +++ b/classes/ch/loway/oss/ari4java/generated/AriBuilder.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Wed Aug 31 18:05:10 CEST 2016 +// Generated on: Sat Feb 04 15:23:09 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.ARI; @@ -28,6 +28,7 @@ public interface AriBuilder { public abstract BridgeCreated bridgeCreated(); public abstract BridgeDestroyed bridgeDestroyed(); public abstract BridgeMerged bridgeMerged(); + public abstract BridgeVideoSourceChanged bridgeVideoSourceChanged(); public abstract BuildInfo buildInfo(); public abstract CallerID callerID(); public abstract Channel channel(); diff --git a/classes/ch/loway/oss/ari4java/generated/AsteriskInfo.java b/classes/ch/loway/oss/ari4java/generated/AsteriskInfo.java index 85c8ac7d..59528d43 100644 --- a/classes/ch/loway/oss/ari4java/generated/AsteriskInfo.java +++ b/classes/ch/loway/oss/ari4java/generated/AsteriskInfo.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Wed Aug 31 18:05:10 CEST 2016 +// Generated on: Sat Feb 04 15:23:09 CET 2017 // ---------------------------------------------------- import java.util.Date; @@ -22,83 +22,83 @@ public interface AsteriskInfo { -// void setConfig ConfigInfo +// void setSystem SystemInfo /********************************************************** - * Info about Asterisk configuration + * Info about the system running Asterisk * * @since ari_0_0_1 *********************************************************/ - public void setConfig(ConfigInfo val ); + public void setSystem(SystemInfo val ); -// void setStatus StatusInfo +// void setConfig ConfigInfo /********************************************************** - * Info about Asterisk status + * Info about Asterisk configuration * * @since ari_0_0_1 *********************************************************/ - public void setStatus(StatusInfo val ); + public void setConfig(ConfigInfo val ); -// StatusInfo getStatus +// void setBuild BuildInfo /********************************************************** - * Info about Asterisk status + * Info about how Asterisk was built * * @since ari_0_0_1 *********************************************************/ - public StatusInfo getStatus(); + public void setBuild(BuildInfo val ); -// void setBuild BuildInfo +// BuildInfo getBuild /********************************************************** * Info about how Asterisk was built * * @since ari_0_0_1 *********************************************************/ - public void setBuild(BuildInfo val ); + public BuildInfo getBuild(); -// BuildInfo getBuild +// SystemInfo getSystem /********************************************************** - * Info about how Asterisk was built + * Info about the system running Asterisk * * @since ari_0_0_1 *********************************************************/ - public BuildInfo getBuild(); + public SystemInfo getSystem(); -// ConfigInfo getConfig +// void setStatus StatusInfo /********************************************************** - * Info about Asterisk configuration + * Info about Asterisk status * * @since ari_0_0_1 *********************************************************/ - public ConfigInfo getConfig(); + public void setStatus(StatusInfo val ); -// void setSystem SystemInfo +// ConfigInfo getConfig /********************************************************** - * Info about the system running Asterisk + * Info about Asterisk configuration * * @since ari_0_0_1 *********************************************************/ - public void setSystem(SystemInfo val ); + public ConfigInfo getConfig(); -// SystemInfo getSystem +// StatusInfo getStatus /********************************************************** - * Info about the system running Asterisk + * Info about Asterisk status * * @since ari_0_0_1 *********************************************************/ - public SystemInfo getSystem(); + public StatusInfo getStatus(); } diff --git a/classes/ch/loway/oss/ari4java/generated/Bridge.java b/classes/ch/loway/oss/ari4java/generated/Bridge.java index 289b2125..fe9e75ef 100644 --- a/classes/ch/loway/oss/ari4java/generated/Bridge.java +++ b/classes/ch/loway/oss/ari4java/generated/Bridge.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Wed Aug 31 18:05:10 CEST 2016 +// Generated on: Sat Feb 04 15:23:08 CET 2017 // ---------------------------------------------------- import java.util.Date; @@ -22,13 +22,33 @@ public interface Bridge extends EventSource { -// void setBridge_type String +// String getName /********************************************************** - * Type of bridge technology + * Name the creator gave the bridge + * + * @since ari_1_0_0 + *********************************************************/ + public String getName(); + + + +// String getVideo_mode +/********************************************************** + * The video mode the bridge is using. One of 'none', 'talker', or 'single'. + * + * @since ari_2_0_0 + *********************************************************/ + public String getVideo_mode(); + + + +// void setTechnology String +/********************************************************** + * Name of the current bridging technology * * @since ari_0_0_1 *********************************************************/ - public void setBridge_type(String val ); + public void setTechnology(String val ); @@ -42,53 +62,53 @@ public interface Bridge extends EventSource { -// void setName String +// void setChannels List /********************************************************** - * Name the creator gave the bridge + * Ids of channels participating in this bridge * - * @since ari_1_0_0 + * @since ari_0_0_1 *********************************************************/ - public void setName(String val ); + public void setChannels(List val ); -// String getId +// String getBridge_type /********************************************************** - * Unique identifier for this bridge + * Type of bridge technology * * @since ari_0_0_1 *********************************************************/ - public String getId(); + public String getBridge_type(); -// void setId String +// String getBridge_class /********************************************************** - * Unique identifier for this bridge + * Bridging class * * @since ari_0_0_1 *********************************************************/ - public void setId(String val ); + public String getBridge_class(); -// String getBridge_type +// String getVideo_source_id /********************************************************** - * Type of bridge technology + * The ID of the channel that is the source of video in this bridge, if one exists. * - * @since ari_0_0_1 + * @since ari_2_0_0 *********************************************************/ - public String getBridge_type(); + public String getVideo_source_id(); -// String getName +// String getTechnology /********************************************************** - * Name the creator gave the bridge + * Name of the current bridging technology * - * @since ari_1_0_0 + * @since ari_0_0_1 *********************************************************/ - public String getName(); + public String getTechnology(); @@ -102,53 +122,63 @@ public interface Bridge extends EventSource { -// void setTechnology String +// void setBridge_type String /********************************************************** - * Name of the current bridging technology + * Type of bridge technology * * @since ari_0_0_1 *********************************************************/ - public void setTechnology(String val ); + public void setBridge_type(String val ); -// String getBridge_class +// List getChannels /********************************************************** - * Bridging class + * Ids of channels participating in this bridge * * @since ari_0_0_1 *********************************************************/ - public String getBridge_class(); + public List getChannels(); -// String getTechnology +// void setId String /********************************************************** - * Name of the current bridging technology + * Unique identifier for this bridge * * @since ari_0_0_1 *********************************************************/ - public String getTechnology(); + public void setId(String val ); -// List getChannels +// void setVideo_mode String /********************************************************** - * Ids of channels participating in this bridge + * The video mode the bridge is using. One of 'none', 'talker', or 'single'. * - * @since ari_0_0_1 + * @since ari_2_0_0 *********************************************************/ - public List getChannels(); + public void setVideo_mode(String val ); -// void setChannels List +// String getId /********************************************************** - * Ids of channels participating in this bridge + * Unique identifier for this bridge * * @since ari_0_0_1 *********************************************************/ - public void setChannels(List val ); + public String getId(); + + + +// void setVideo_source_id String +/********************************************************** + * The ID of the channel that is the source of video in this bridge, if one exists. + * + * @since ari_2_0_0 + *********************************************************/ + public void setVideo_source_id(String val ); @@ -161,5 +191,15 @@ public interface Bridge extends EventSource { public void setCreator(String val ); + +// void setName String +/********************************************************** + * Name the creator gave the bridge + * + * @since ari_1_0_0 + *********************************************************/ + public void setName(String val ); + + } ; diff --git a/classes/ch/loway/oss/ari4java/generated/BridgeAttendedTransfer.java b/classes/ch/loway/oss/ari4java/generated/BridgeAttendedTransfer.java index f304fad8..1d9ef5c2 100644 --- a/classes/ch/loway/oss/ari4java/generated/BridgeAttendedTransfer.java +++ b/classes/ch/loway/oss/ari4java/generated/BridgeAttendedTransfer.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Wed Aug 31 18:05:10 CEST 2016 +// Generated on: Sat Feb 04 15:23:09 CET 2017 // ---------------------------------------------------- import java.util.Date; @@ -22,313 +22,313 @@ public interface BridgeAttendedTransfer { -// Channel getTransfer_target +// String getResult /********************************************************** - * The channel that is being transferred to + * The result of the transfer attempt * * @since ari_1_5_0 *********************************************************/ - public Channel getTransfer_target(); + public String getResult(); -// void setDestination_threeway_channel Channel +// String getDestination_bridge /********************************************************** - * Transferer channel that survived the threeway result + * Bridge that survived the merge result * * @since ari_1_5_0 *********************************************************/ - public void setDestination_threeway_channel(Channel val ); + public String getDestination_bridge(); -// void setDestination_application String +// Channel getTransfer_target /********************************************************** - * Application that has been transferred into + * The channel that is being transferred to * * @since ari_1_5_0 *********************************************************/ - public void setDestination_application(String val ); + public Channel getTransfer_target(); -// String getDestination_type +// void setDestination_bridge String /********************************************************** - * How the transfer was accomplished + * Bridge that survived the merge result * * @since ari_1_5_0 *********************************************************/ - public String getDestination_type(); + public void setDestination_bridge(String val ); -// String getResult +// Channel getTransferer_second_leg /********************************************************** - * The result of the transfer attempt + * Second leg of the transferer * * @since ari_1_5_0 *********************************************************/ - public String getResult(); + public Channel getTransferer_second_leg(); -// Channel getTransferee +// Channel getDestination_link_second_leg /********************************************************** - * The channel that is being transferred + * Second leg of a link transfer result * * @since ari_1_5_0 *********************************************************/ - public Channel getTransferee(); + public Channel getDestination_link_second_leg(); -// Channel getDestination_threeway_channel +// Bridge getTransferer_first_leg_bridge /********************************************************** - * Transferer channel that survived the threeway result + * Bridge the transferer first leg is in * * @since ari_1_5_0 *********************************************************/ - public Channel getDestination_threeway_channel(); + public Bridge getTransferer_first_leg_bridge(); -// Bridge getTransferer_second_leg_bridge +// void setReplace_channel Channel /********************************************************** - * Bridge the transferer second leg is in + * The channel that is replacing transferer_first_leg in the swap * * @since ari_1_5_0 *********************************************************/ - public Bridge getTransferer_second_leg_bridge(); + public void setReplace_channel(Channel val ); -// Bridge getDestination_threeway_bridge +// Channel getDestination_link_first_leg /********************************************************** - * Bridge that survived the threeway result + * First leg of a link transfer result * * @since ari_1_5_0 *********************************************************/ - public Bridge getDestination_threeway_bridge(); + public Channel getDestination_link_first_leg(); -// Bridge getTransferer_first_leg_bridge +// void setDestination_type String /********************************************************** - * Bridge the transferer first leg is in + * How the transfer was accomplished * * @since ari_1_5_0 *********************************************************/ - public Bridge getTransferer_first_leg_bridge(); + public void setDestination_type(String val ); -// boolean getIs_external +// Channel getTransferer_first_leg /********************************************************** - * Whether the transfer was externally initiated or not + * First leg of the transferer * * @since ari_1_5_0 *********************************************************/ - public boolean getIs_external(); + public Channel getTransferer_first_leg(); -// Channel getDestination_link_second_leg +// Channel getReplace_channel /********************************************************** - * Second leg of a link transfer result + * The channel that is replacing transferer_first_leg in the swap * * @since ari_1_5_0 *********************************************************/ - public Channel getDestination_link_second_leg(); + public Channel getReplace_channel(); -// void setDestination_bridge String +// Channel getDestination_threeway_channel /********************************************************** - * Bridge that survived the merge result + * Transferer channel that survived the threeway result * * @since ari_1_5_0 *********************************************************/ - public void setDestination_bridge(String val ); + public Channel getDestination_threeway_channel(); -// String getDestination_application +// boolean getIs_external /********************************************************** - * Application that has been transferred into + * Whether the transfer was externally initiated or not * * @since ari_1_5_0 *********************************************************/ - public String getDestination_application(); + public boolean getIs_external(); -// Channel getTransferer_second_leg +// void setDestination_application String /********************************************************** - * Second leg of the transferer + * Application that has been transferred into * * @since ari_1_5_0 *********************************************************/ - public Channel getTransferer_second_leg(); + public void setDestination_application(String val ); -// void setIs_external boolean +// void setTransferee Channel /********************************************************** - * Whether the transfer was externally initiated or not + * The channel that is being transferred * * @since ari_1_5_0 *********************************************************/ - public void setIs_external(boolean val ); + public void setTransferee(Channel val ); -// void setDestination_link_first_leg Channel +// void setIs_external boolean /********************************************************** - * First leg of a link transfer result + * Whether the transfer was externally initiated or not * * @since ari_1_5_0 *********************************************************/ - public void setDestination_link_first_leg(Channel val ); + public void setIs_external(boolean val ); -// void setTransferer_second_leg_bridge Bridge +// void setTransfer_target Channel /********************************************************** - * Bridge the transferer second leg is in + * The channel that is being transferred to * * @since ari_1_5_0 *********************************************************/ - public void setTransferer_second_leg_bridge(Bridge val ); + public void setTransfer_target(Channel val ); -// String getDestination_bridge +// String getDestination_type /********************************************************** - * Bridge that survived the merge result + * How the transfer was accomplished * * @since ari_1_5_0 *********************************************************/ - public String getDestination_bridge(); + public String getDestination_type(); -// void setTransfer_target Channel +// Bridge getDestination_threeway_bridge /********************************************************** - * The channel that is being transferred to + * Bridge that survived the threeway result * * @since ari_1_5_0 *********************************************************/ - public void setTransfer_target(Channel val ); + public Bridge getDestination_threeway_bridge(); -// void setDestination_link_second_leg Channel +// void setDestination_threeway_bridge Bridge /********************************************************** - * Second leg of a link transfer result + * Bridge that survived the threeway result * * @since ari_1_5_0 *********************************************************/ - public void setDestination_link_second_leg(Channel val ); + public void setDestination_threeway_bridge(Bridge val ); -// void setTransferer_first_leg Channel +// Channel getTransferee /********************************************************** - * First leg of the transferer + * The channel that is being transferred * * @since ari_1_5_0 *********************************************************/ - public void setTransferer_first_leg(Channel val ); + public Channel getTransferee(); -// void setDestination_type String +// void setDestination_link_second_leg Channel /********************************************************** - * How the transfer was accomplished + * Second leg of a link transfer result * * @since ari_1_5_0 *********************************************************/ - public void setDestination_type(String val ); + public void setDestination_link_second_leg(Channel val ); -// void setTransferee Channel +// void setTransferer_first_leg_bridge Bridge /********************************************************** - * The channel that is being transferred + * Bridge the transferer first leg is in * * @since ari_1_5_0 *********************************************************/ - public void setTransferee(Channel val ); + public void setTransferer_first_leg_bridge(Bridge val ); -// void setDestination_threeway_bridge Bridge +// String getDestination_application /********************************************************** - * Bridge that survived the threeway result + * Application that has been transferred into * * @since ari_1_5_0 *********************************************************/ - public void setDestination_threeway_bridge(Bridge val ); + public String getDestination_application(); -// void setReplace_channel Channel +// void setDestination_link_first_leg Channel /********************************************************** - * The channel that is replacing transferer_first_leg in the swap + * First leg of a link transfer result * * @since ari_1_5_0 *********************************************************/ - public void setReplace_channel(Channel val ); + public void setDestination_link_first_leg(Channel val ); -// Channel getDestination_link_first_leg +// Bridge getTransferer_second_leg_bridge /********************************************************** - * First leg of a link transfer result + * Bridge the transferer second leg is in * * @since ari_1_5_0 *********************************************************/ - public Channel getDestination_link_first_leg(); + public Bridge getTransferer_second_leg_bridge(); -// void setTransferer_second_leg Channel +// void setTransferer_first_leg Channel /********************************************************** - * Second leg of the transferer + * First leg of the transferer * * @since ari_1_5_0 *********************************************************/ - public void setTransferer_second_leg(Channel val ); + public void setTransferer_first_leg(Channel val ); -// Channel getReplace_channel +// void setTransferer_second_leg_bridge Bridge /********************************************************** - * The channel that is replacing transferer_first_leg in the swap + * Bridge the transferer second leg is in * * @since ari_1_5_0 *********************************************************/ - public Channel getReplace_channel(); + public void setTransferer_second_leg_bridge(Bridge val ); -// Channel getTransferer_first_leg +// void setTransferer_second_leg Channel /********************************************************** - * First leg of the transferer + * Second leg of the transferer * * @since ari_1_5_0 *********************************************************/ - public Channel getTransferer_first_leg(); + public void setTransferer_second_leg(Channel val ); -// void setTransferer_first_leg_bridge Bridge +// void setDestination_threeway_channel Channel /********************************************************** - * Bridge the transferer first leg is in + * Transferer channel that survived the threeway result * * @since ari_1_5_0 *********************************************************/ - public void setTransferer_first_leg_bridge(Bridge val ); + public void setDestination_threeway_channel(Channel val ); diff --git a/classes/ch/loway/oss/ari4java/generated/BridgeBlindTransfer.java b/classes/ch/loway/oss/ari4java/generated/BridgeBlindTransfer.java index aa759e7e..498788e1 100644 --- a/classes/ch/loway/oss/ari4java/generated/BridgeBlindTransfer.java +++ b/classes/ch/loway/oss/ari4java/generated/BridgeBlindTransfer.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Wed Aug 31 18:05:10 CEST 2016 +// Generated on: Sat Feb 04 15:23:09 CET 2017 // ---------------------------------------------------- import java.util.Date; @@ -22,13 +22,13 @@ public interface BridgeBlindTransfer { -// void setIs_external boolean +// Channel getTransferee /********************************************************** - * Whether the transfer was externally initiated or not + * The channel that is being transferred * * @since ari_1_5_0 *********************************************************/ - public void setIs_external(boolean val ); + public Channel getTransferee(); @@ -42,143 +42,143 @@ public interface BridgeBlindTransfer { -// String getContext +// void setExten String /********************************************************** - * The context transferred to + * The extension transferred to * * @since ari_1_5_0 *********************************************************/ - public String getContext(); + public void setExten(String val ); -// Channel getTransferee +// Bridge getBridge /********************************************************** - * The channel that is being transferred + * The bridge being transferred * * @since ari_1_5_0 *********************************************************/ - public Channel getTransferee(); + public Bridge getBridge(); -// Bridge getBridge +// void setContext String /********************************************************** - * The bridge being transferred + * The context transferred to * * @since ari_1_5_0 *********************************************************/ - public Bridge getBridge(); + public void setContext(String val ); -// void setTransferee Channel +// void setReplace_channel Channel /********************************************************** - * The channel that is being transferred + * The channel that is replacing transferer when the transferee(s) can not be transferred directly * * @since ari_1_5_0 *********************************************************/ - public void setTransferee(Channel val ); + public void setReplace_channel(Channel val ); -// void setContext String +// Channel getReplace_channel /********************************************************** - * The context transferred to + * The channel that is replacing transferer when the transferee(s) can not be transferred directly * * @since ari_1_5_0 *********************************************************/ - public void setContext(String val ); + public Channel getReplace_channel(); -// void setReplace_channel Channel +// String getContext /********************************************************** - * The channel that is replacing transferer when the transferee(s) can not be transferred directly + * The context transferred to * * @since ari_1_5_0 *********************************************************/ - public void setReplace_channel(Channel val ); + public String getContext(); -// void setBridge Bridge +// boolean getIs_external /********************************************************** - * The bridge being transferred + * Whether the transfer was externally initiated or not * * @since ari_1_5_0 *********************************************************/ - public void setBridge(Bridge val ); + public boolean getIs_external(); -// Channel getReplace_channel +// Channel getChannel /********************************************************** - * The channel that is replacing transferer when the transferee(s) can not be transferred directly + * The channel performing the blind transfer * * @since ari_1_5_0 *********************************************************/ - public Channel getReplace_channel(); + public Channel getChannel(); -// String getExten +// void setChannel Channel /********************************************************** - * The extension transferred to + * The channel performing the blind transfer * * @since ari_1_5_0 *********************************************************/ - public String getExten(); + public void setChannel(Channel val ); -// boolean getIs_external +// void setTransferee Channel /********************************************************** - * Whether the transfer was externally initiated or not + * The channel that is being transferred * * @since ari_1_5_0 *********************************************************/ - public boolean getIs_external(); + public void setTransferee(Channel val ); -// Channel getChannel +// void setBridge Bridge /********************************************************** - * The channel performing the blind transfer + * The bridge being transferred * * @since ari_1_5_0 *********************************************************/ - public Channel getChannel(); + public void setBridge(Bridge val ); -// void setResult String +// void setIs_external boolean /********************************************************** - * The result of the transfer attempt + * Whether the transfer was externally initiated or not * * @since ari_1_5_0 *********************************************************/ - public void setResult(String val ); + public void setIs_external(boolean val ); -// void setChannel Channel +// void setResult String /********************************************************** - * The channel performing the blind transfer + * The result of the transfer attempt * * @since ari_1_5_0 *********************************************************/ - public void setChannel(Channel val ); + public void setResult(String val ); -// void setExten String +// String getExten /********************************************************** * The extension transferred to * * @since ari_1_5_0 *********************************************************/ - public void setExten(String val ); + public String getExten(); } diff --git a/classes/ch/loway/oss/ari4java/generated/BridgeCreated.java b/classes/ch/loway/oss/ari4java/generated/BridgeCreated.java index a609364e..583a5bdd 100644 --- a/classes/ch/loway/oss/ari4java/generated/BridgeCreated.java +++ b/classes/ch/loway/oss/ari4java/generated/BridgeCreated.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Wed Aug 31 18:05:10 CEST 2016 +// Generated on: Sat Feb 04 15:23:08 CET 2017 // ---------------------------------------------------- import java.util.Date; diff --git a/classes/ch/loway/oss/ari4java/generated/BridgeDestroyed.java b/classes/ch/loway/oss/ari4java/generated/BridgeDestroyed.java index c42cbb60..a7b97b47 100644 --- a/classes/ch/loway/oss/ari4java/generated/BridgeDestroyed.java +++ b/classes/ch/loway/oss/ari4java/generated/BridgeDestroyed.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Wed Aug 31 18:05:10 CEST 2016 +// Generated on: Sat Feb 04 15:23:08 CET 2017 // ---------------------------------------------------- import java.util.Date; diff --git a/classes/ch/loway/oss/ari4java/generated/BridgeMerged.java b/classes/ch/loway/oss/ari4java/generated/BridgeMerged.java index 9845d363..5d527a8f 100644 --- a/classes/ch/loway/oss/ari4java/generated/BridgeMerged.java +++ b/classes/ch/loway/oss/ari4java/generated/BridgeMerged.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Wed Aug 31 18:05:10 CEST 2016 +// Generated on: Sat Feb 04 15:23:08 CET 2017 // ---------------------------------------------------- import java.util.Date; @@ -22,13 +22,13 @@ public interface BridgeMerged { -// void setBridge_from Bridge +// Bridge getBridge_from /********************************************************** * * * @since ari_0_0_1 *********************************************************/ - public void setBridge_from(Bridge val ); + public Bridge getBridge_from(); @@ -42,23 +42,23 @@ public interface BridgeMerged { -// Bridge getBridge_from +// Bridge getBridge /********************************************************** * * * @since ari_0_0_1 *********************************************************/ - public Bridge getBridge_from(); + public Bridge getBridge(); -// Bridge getBridge +// void setBridge_from Bridge /********************************************************** * * * @since ari_0_0_1 *********************************************************/ - public Bridge getBridge(); + public void setBridge_from(Bridge val ); } diff --git a/classes/ch/loway/oss/ari4java/generated/BridgeVideoSourceChanged.java b/classes/ch/loway/oss/ari4java/generated/BridgeVideoSourceChanged.java new file mode 100644 index 00000000..638c2daf --- /dev/null +++ b/classes/ch/loway/oss/ari4java/generated/BridgeVideoSourceChanged.java @@ -0,0 +1,65 @@ +package ch.loway.oss.ari4java.generated; + +// ---------------------------------------------------- +// THIS CLASS WAS GENERATED AUTOMATICALLY +// PLEASE DO NOT EDIT +// Generated on: Sat Feb 04 15:23:09 CET 2017 +// ---------------------------------------------------- + +import java.util.Date; +import java.util.List; +import java.util.Map; +import java.util.ArrayList; +import ch.loway.oss.ari4java.tools.RestException; +import ch.loway.oss.ari4java.tools.AriCallback; +import ch.loway.oss.ari4java.tools.tags.*; + +/********************************************************** + * + * Generated by: JavaInterface + *********************************************************/ + + +public interface BridgeVideoSourceChanged { + +// void setBridge Bridge +/********************************************************** + * + * + * @since ari_2_0_0 + *********************************************************/ + public void setBridge(Bridge val ); + + + +// String getOld_video_source_id +/********************************************************** + * + * + * @since ari_2_0_0 + *********************************************************/ + public String getOld_video_source_id(); + + + +// Bridge getBridge +/********************************************************** + * + * + * @since ari_2_0_0 + *********************************************************/ + public Bridge getBridge(); + + + +// void setOld_video_source_id String +/********************************************************** + * + * + * @since ari_2_0_0 + *********************************************************/ + public void setOld_video_source_id(String val ); + + +} +; diff --git a/classes/ch/loway/oss/ari4java/generated/BuildInfo.java b/classes/ch/loway/oss/ari4java/generated/BuildInfo.java index 8d2ddb40..e3823fda 100644 --- a/classes/ch/loway/oss/ari4java/generated/BuildInfo.java +++ b/classes/ch/loway/oss/ari4java/generated/BuildInfo.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Wed Aug 31 18:05:10 CEST 2016 +// Generated on: Sat Feb 04 15:23:09 CET 2017 // ---------------------------------------------------- import java.util.Date; @@ -22,123 +22,123 @@ public interface BuildInfo { -// void setUser String +// void setKernel String /********************************************************** - * Username that build Asterisk + * Kernel version Asterisk was built on. * * @since ari_0_0_1 *********************************************************/ - public void setUser(String val ); + public void setKernel(String val ); -// void setOptions String +// String getUser /********************************************************** - * Compile time options, or empty string if default. + * Username that build Asterisk * * @since ari_0_0_1 *********************************************************/ - public void setOptions(String val ); + public String getUser(); -// void setDate String +// String getOs /********************************************************** - * Date and time when Asterisk was built. + * OS Asterisk was built on. * * @since ari_0_0_1 *********************************************************/ - public void setDate(String val ); + public String getOs(); -// String getOptions +// String getMachine /********************************************************** - * Compile time options, or empty string if default. + * Machine architecture (x86_64, i686, ppc, etc.) * * @since ari_0_0_1 *********************************************************/ - public String getOptions(); + public String getMachine(); -// void setOs String +// void setDate String /********************************************************** - * OS Asterisk was built on. + * Date and time when Asterisk was built. * * @since ari_0_0_1 *********************************************************/ - public void setOs(String val ); + public void setDate(String val ); -// String getDate +// void setOs String /********************************************************** - * Date and time when Asterisk was built. + * OS Asterisk was built on. * * @since ari_0_0_1 *********************************************************/ - public String getDate(); + public void setOs(String val ); -// String getKernel +// void setUser String /********************************************************** - * Kernel version Asterisk was built on. + * Username that build Asterisk * * @since ari_0_0_1 *********************************************************/ - public String getKernel(); + public void setUser(String val ); -// void setMachine String +// String getKernel /********************************************************** - * Machine architecture (x86_64, i686, ppc, etc.) + * Kernel version Asterisk was built on. * * @since ari_0_0_1 *********************************************************/ - public void setMachine(String val ); + public String getKernel(); -// String getUser +// void setOptions String /********************************************************** - * Username that build Asterisk + * Compile time options, or empty string if default. * * @since ari_0_0_1 *********************************************************/ - public String getUser(); + public void setOptions(String val ); -// String getMachine +// String getDate /********************************************************** - * Machine architecture (x86_64, i686, ppc, etc.) + * Date and time when Asterisk was built. * * @since ari_0_0_1 *********************************************************/ - public String getMachine(); + public String getDate(); -// String getOs +// String getOptions /********************************************************** - * OS Asterisk was built on. + * Compile time options, or empty string if default. * * @since ari_0_0_1 *********************************************************/ - public String getOs(); + public String getOptions(); -// void setKernel String +// void setMachine String /********************************************************** - * Kernel version Asterisk was built on. + * Machine architecture (x86_64, i686, ppc, etc.) * * @since ari_0_0_1 *********************************************************/ - public void setKernel(String val ); + public void setMachine(String val ); } diff --git a/classes/ch/loway/oss/ari4java/generated/CallerID.java b/classes/ch/loway/oss/ari4java/generated/CallerID.java index 143e2f28..3f83bcc2 100644 --- a/classes/ch/loway/oss/ari4java/generated/CallerID.java +++ b/classes/ch/loway/oss/ari4java/generated/CallerID.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Wed Aug 31 18:05:10 CEST 2016 +// Generated on: Sat Feb 04 15:23:08 CET 2017 // ---------------------------------------------------- import java.util.Date; @@ -22,43 +22,43 @@ public interface CallerID { -// void setName String +// String getName /********************************************************** * * * @since ari_0_0_1 *********************************************************/ - public void setName(String val ); + public String getName(); -// String getNumber +// void setNumber String /********************************************************** * * * @since ari_0_0_1 *********************************************************/ - public String getNumber(); + public void setNumber(String val ); -// String getName +// void setName String /********************************************************** * * * @since ari_0_0_1 *********************************************************/ - public String getName(); + public void setName(String val ); -// void setNumber String +// String getNumber /********************************************************** * * * @since ari_0_0_1 *********************************************************/ - public void setNumber(String val ); + public String getNumber(); } diff --git a/classes/ch/loway/oss/ari4java/generated/Channel.java b/classes/ch/loway/oss/ari4java/generated/Channel.java index ce2954c8..acb8cdd2 100644 --- a/classes/ch/loway/oss/ari4java/generated/Channel.java +++ b/classes/ch/loway/oss/ari4java/generated/Channel.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Wed Aug 31 18:05:10 CEST 2016 +// Generated on: Sat Feb 04 15:23:08 CET 2017 // ---------------------------------------------------- import java.util.Date; @@ -22,6 +22,16 @@ public interface Channel extends EventSource { +// Date getCreationtime +/********************************************************** + * Timestamp when channel was created + * + * @since ari_0_0_1 + *********************************************************/ + public Date getCreationtime(); + + + // String getLanguage /********************************************************** * The default spoken language @@ -32,25 +42,33 @@ public interface Channel extends EventSource { -// void setState String +// String getName /********************************************************** - * + * Name of the channel (i.e. SIP/foo-0000a7e3) * * @since ari_0_0_1 *********************************************************/ - public void setState(String val ); + public String getName(); -// String getId +// CallerID getCaller /********************************************************** - * Unique identifier of the channel. * - * This is the same as the Uniqueid field in AMI. * * @since ari_0_0_1 *********************************************************/ - public String getId(); + public CallerID getCaller(); + + + +// DialplanCEP getDialplan +/********************************************************** + * Current location in the dialplan + * + * @since ari_0_0_1 + *********************************************************/ + public DialplanCEP getDialplan(); @@ -64,75 +82,73 @@ public interface Channel extends EventSource { -// CallerID getConnected +// void setCaller CallerID /********************************************************** * * * @since ari_0_0_1 *********************************************************/ - public CallerID getConnected(); + public void setCaller(CallerID val ); -// String getAccountcode +// void setDialplan DialplanCEP /********************************************************** - * + * Current location in the dialplan * * @since ari_0_0_1 *********************************************************/ - public String getAccountcode(); + public void setDialplan(DialplanCEP val ); -// void setConnected CallerID +// void setCreationtime Date /********************************************************** - * + * Timestamp when channel was created * * @since ari_0_0_1 *********************************************************/ - public void setConnected(CallerID val ); + public void setCreationtime(Date val ); -// CallerID getCaller +// String getAccountcode /********************************************************** * * * @since ari_0_0_1 *********************************************************/ - public CallerID getCaller(); + public String getAccountcode(); -// DialplanCEP getDialplan +// String getState /********************************************************** - * Current location in the dialplan + * * * @since ari_0_0_1 *********************************************************/ - public DialplanCEP getDialplan(); + public String getState(); -// void setId String +// void setState String /********************************************************** - * Unique identifier of the channel. * - * This is the same as the Uniqueid field in AMI. * * @since ari_0_0_1 *********************************************************/ - public void setId(String val ); + public void setState(String val ); -// String getState +// CallerID getConnected /********************************************************** * * * @since ari_0_0_1 *********************************************************/ - public String getState(); + public CallerID getConnected(); @@ -146,63 +162,67 @@ public interface Channel extends EventSource { -// void setName String +// void setConnected CallerID /********************************************************** - * Name of the channel (i.e. SIP/foo-0000a7e3) + * * * @since ari_0_0_1 *********************************************************/ - public void setName(String val ); + public void setConnected(CallerID val ); -// void setCaller CallerID +// String getChannelvars /********************************************************** + * Channel variables * - * - * @since ari_0_0_1 + * @since ari_2_0_0 *********************************************************/ - public void setCaller(CallerID val ); + public String getChannelvars(); -// Date getCreationtime +// void setChannelvars String /********************************************************** - * Timestamp when channel was created + * Channel variables * - * @since ari_0_0_1 + * @since ari_2_0_0 *********************************************************/ - public Date getCreationtime(); + public void setChannelvars(String val ); -// String getName +// void setId String /********************************************************** - * Name of the channel (i.e. SIP/foo-0000a7e3) + * Unique identifier of the channel. + * + * This is the same as the Uniqueid field in AMI. * * @since ari_0_0_1 *********************************************************/ - public String getName(); + public void setId(String val ); -// void setCreationtime Date +// String getId /********************************************************** - * Timestamp when channel was created + * Unique identifier of the channel. + * + * This is the same as the Uniqueid field in AMI. * * @since ari_0_0_1 *********************************************************/ - public void setCreationtime(Date val ); + public String getId(); -// void setDialplan DialplanCEP +// void setName String /********************************************************** - * Current location in the dialplan + * Name of the channel (i.e. SIP/foo-0000a7e3) * * @since ari_0_0_1 *********************************************************/ - public void setDialplan(DialplanCEP val ); + public void setName(String val ); } diff --git a/classes/ch/loway/oss/ari4java/generated/ChannelCallerId.java b/classes/ch/loway/oss/ari4java/generated/ChannelCallerId.java index d82aacc9..73bd4edb 100644 --- a/classes/ch/loway/oss/ari4java/generated/ChannelCallerId.java +++ b/classes/ch/loway/oss/ari4java/generated/ChannelCallerId.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Wed Aug 31 18:05:10 CEST 2016 +// Generated on: Sat Feb 04 15:23:08 CET 2017 // ---------------------------------------------------- import java.util.Date; @@ -22,63 +22,63 @@ public interface ChannelCallerId { -// void setCaller_presentation int +// int getCaller_presentation /********************************************************** * The integer representation of the Caller Presentation value. * * @since ari_0_0_1 *********************************************************/ - public void setCaller_presentation(int val ); + public int getCaller_presentation(); -// int getCaller_presentation +// String getCaller_presentation_txt /********************************************************** - * The integer representation of the Caller Presentation value. + * The text representation of the Caller Presentation value. * * @since ari_0_0_1 *********************************************************/ - public int getCaller_presentation(); + public String getCaller_presentation_txt(); -// void setCaller_presentation_txt String +// Channel getChannel /********************************************************** - * The text representation of the Caller Presentation value. + * The channel that changed Caller ID. * * @since ari_0_0_1 *********************************************************/ - public void setCaller_presentation_txt(String val ); + public Channel getChannel(); -// Channel getChannel +// void setChannel Channel /********************************************************** * The channel that changed Caller ID. * * @since ari_0_0_1 *********************************************************/ - public Channel getChannel(); + public void setChannel(Channel val ); -// String getCaller_presentation_txt +// void setCaller_presentation_txt String /********************************************************** * The text representation of the Caller Presentation value. * * @since ari_0_0_1 *********************************************************/ - public String getCaller_presentation_txt(); + public void setCaller_presentation_txt(String val ); -// void setChannel Channel +// void setCaller_presentation int /********************************************************** - * The channel that changed Caller ID. + * The integer representation of the Caller Presentation value. * * @since ari_0_0_1 *********************************************************/ - public void setChannel(Channel val ); + public void setCaller_presentation(int val ); } diff --git a/classes/ch/loway/oss/ari4java/generated/ChannelConnectedLine.java b/classes/ch/loway/oss/ari4java/generated/ChannelConnectedLine.java index c53b8581..718294e8 100644 --- a/classes/ch/loway/oss/ari4java/generated/ChannelConnectedLine.java +++ b/classes/ch/loway/oss/ari4java/generated/ChannelConnectedLine.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Wed Aug 31 18:05:10 CEST 2016 +// Generated on: Sat Feb 04 15:23:09 CET 2017 // ---------------------------------------------------- import java.util.Date; diff --git a/classes/ch/loway/oss/ari4java/generated/ChannelCreated.java b/classes/ch/loway/oss/ari4java/generated/ChannelCreated.java index 3e6729e2..a6843808 100644 --- a/classes/ch/loway/oss/ari4java/generated/ChannelCreated.java +++ b/classes/ch/loway/oss/ari4java/generated/ChannelCreated.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Wed Aug 31 18:05:10 CEST 2016 +// Generated on: Sat Feb 04 15:23:09 CET 2017 // ---------------------------------------------------- import java.util.Date; diff --git a/classes/ch/loway/oss/ari4java/generated/ChannelDestroyed.java b/classes/ch/loway/oss/ari4java/generated/ChannelDestroyed.java index 2361ed1e..32872a5b 100644 --- a/classes/ch/loway/oss/ari4java/generated/ChannelDestroyed.java +++ b/classes/ch/loway/oss/ari4java/generated/ChannelDestroyed.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Wed Aug 31 18:05:10 CEST 2016 +// Generated on: Sat Feb 04 15:23:09 CET 2017 // ---------------------------------------------------- import java.util.Date; @@ -22,43 +22,43 @@ public interface ChannelDestroyed { -// void setCause_txt String +// int getCause /********************************************************** - * Text representation of the cause of the hangup + * Integer representation of the cause of the hangup * * @since ari_0_0_1 *********************************************************/ - public void setCause_txt(String val ); + public int getCause(); -// void setCause int +// Channel getChannel /********************************************************** - * Integer representation of the cause of the hangup + * * * @since ari_0_0_1 *********************************************************/ - public void setCause(int val ); + public Channel getChannel(); -// int getCause +// void setChannel Channel /********************************************************** - * Integer representation of the cause of the hangup + * * * @since ari_0_0_1 *********************************************************/ - public int getCause(); + public void setChannel(Channel val ); -// Channel getChannel +// void setCause_txt String /********************************************************** - * + * Text representation of the cause of the hangup * * @since ari_0_0_1 *********************************************************/ - public Channel getChannel(); + public void setCause_txt(String val ); @@ -72,13 +72,13 @@ public interface ChannelDestroyed { -// void setChannel Channel +// void setCause int /********************************************************** - * + * Integer representation of the cause of the hangup * * @since ari_0_0_1 *********************************************************/ - public void setChannel(Channel val ); + public void setCause(int val ); } diff --git a/classes/ch/loway/oss/ari4java/generated/ChannelDialplan.java b/classes/ch/loway/oss/ari4java/generated/ChannelDialplan.java index 17b6840a..c816e45c 100644 --- a/classes/ch/loway/oss/ari4java/generated/ChannelDialplan.java +++ b/classes/ch/loway/oss/ari4java/generated/ChannelDialplan.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Wed Aug 31 18:05:10 CEST 2016 +// Generated on: Sat Feb 04 15:23:08 CET 2017 // ---------------------------------------------------- import java.util.Date; @@ -22,43 +22,43 @@ public interface ChannelDialplan { -// String getDialplan_app +// Channel getChannel /********************************************************** - * The application about to be executed. + * The channel that changed dialplan location. * * @since ari_0_0_1 *********************************************************/ - public String getDialplan_app(); + public Channel getChannel(); -// Channel getChannel +// String getDialplan_app_data /********************************************************** - * The channel that changed dialplan location. + * The data to be passed to the application. * * @since ari_0_0_1 *********************************************************/ - public Channel getChannel(); + public String getDialplan_app_data(); -// void setDialplan_app String +// void setChannel Channel /********************************************************** - * The application about to be executed. + * The channel that changed dialplan location. * * @since ari_0_0_1 *********************************************************/ - public void setDialplan_app(String val ); + public void setChannel(Channel val ); -// String getDialplan_app_data +// void setDialplan_app String /********************************************************** - * The data to be passed to the application. + * The application about to be executed. * * @since ari_0_0_1 *********************************************************/ - public String getDialplan_app_data(); + public void setDialplan_app(String val ); @@ -72,13 +72,13 @@ public interface ChannelDialplan { -// void setChannel Channel +// String getDialplan_app /********************************************************** - * The channel that changed dialplan location. + * The application about to be executed. * * @since ari_0_0_1 *********************************************************/ - public void setChannel(Channel val ); + public String getDialplan_app(); } diff --git a/classes/ch/loway/oss/ari4java/generated/ChannelDtmfReceived.java b/classes/ch/loway/oss/ari4java/generated/ChannelDtmfReceived.java index 73877b33..7179b359 100644 --- a/classes/ch/loway/oss/ari4java/generated/ChannelDtmfReceived.java +++ b/classes/ch/loway/oss/ari4java/generated/ChannelDtmfReceived.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Wed Aug 31 18:05:10 CEST 2016 +// Generated on: Sat Feb 04 15:23:09 CET 2017 // ---------------------------------------------------- import java.util.Date; @@ -22,33 +22,33 @@ public interface ChannelDtmfReceived { -// String getDigit +// void setDigit String /********************************************************** * DTMF digit received (0-9, A-E, # or *) * * @since ari_0_0_1 *********************************************************/ - public String getDigit(); + public void setDigit(String val ); -// void setDuration_ms int +// String getDigit /********************************************************** - * Number of milliseconds DTMF was received + * DTMF digit received (0-9, A-E, # or *) * * @since ari_0_0_1 *********************************************************/ - public void setDuration_ms(int val ); + public String getDigit(); -// int getDuration_ms +// void setDuration_ms int /********************************************************** * Number of milliseconds DTMF was received * * @since ari_0_0_1 *********************************************************/ - public int getDuration_ms(); + public void setDuration_ms(int val ); @@ -72,13 +72,13 @@ public interface ChannelDtmfReceived { -// void setDigit String +// int getDuration_ms /********************************************************** - * DTMF digit received (0-9, A-E, # or *) + * Number of milliseconds DTMF was received * * @since ari_0_0_1 *********************************************************/ - public void setDigit(String val ); + public int getDuration_ms(); } diff --git a/classes/ch/loway/oss/ari4java/generated/ChannelEnteredBridge.java b/classes/ch/loway/oss/ari4java/generated/ChannelEnteredBridge.java index f29d631d..ad92ee8e 100644 --- a/classes/ch/loway/oss/ari4java/generated/ChannelEnteredBridge.java +++ b/classes/ch/loway/oss/ari4java/generated/ChannelEnteredBridge.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Wed Aug 31 18:05:10 CEST 2016 +// Generated on: Sat Feb 04 15:23:08 CET 2017 // ---------------------------------------------------- import java.util.Date; @@ -22,43 +22,43 @@ public interface ChannelEnteredBridge { -// void setBridge Bridge +// Channel getChannel /********************************************************** * * * @since ari_0_0_1 *********************************************************/ - public void setBridge(Bridge val ); + public Channel getChannel(); -// Channel getChannel +// void setBridge Bridge /********************************************************** * * * @since ari_0_0_1 *********************************************************/ - public Channel getChannel(); + public void setBridge(Bridge val ); -// Bridge getBridge +// void setChannel Channel /********************************************************** * * * @since ari_0_0_1 *********************************************************/ - public Bridge getBridge(); + public void setChannel(Channel val ); -// void setChannel Channel +// Bridge getBridge /********************************************************** * * * @since ari_0_0_1 *********************************************************/ - public void setChannel(Channel val ); + public Bridge getBridge(); } diff --git a/classes/ch/loway/oss/ari4java/generated/ChannelHangupRequest.java b/classes/ch/loway/oss/ari4java/generated/ChannelHangupRequest.java index fb424d46..c800bcce 100644 --- a/classes/ch/loway/oss/ari4java/generated/ChannelHangupRequest.java +++ b/classes/ch/loway/oss/ari4java/generated/ChannelHangupRequest.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Wed Aug 31 18:05:10 CEST 2016 +// Generated on: Sat Feb 04 15:23:09 CET 2017 // ---------------------------------------------------- import java.util.Date; @@ -22,43 +22,43 @@ public interface ChannelHangupRequest { -// void setCause int +// int getCause /********************************************************** * Integer representation of the cause of the hangup. * * @since ari_0_0_1 *********************************************************/ - public void setCause(int val ); + public int getCause(); -// int getCause +// boolean getSoft /********************************************************** - * Integer representation of the cause of the hangup. + * Whether the hangup request was a soft hangup request. * * @since ari_0_0_1 *********************************************************/ - public int getCause(); + public boolean getSoft(); -// void setSoft boolean +// Channel getChannel /********************************************************** - * Whether the hangup request was a soft hangup request. + * The channel on which the hangup was requested. * * @since ari_0_0_1 *********************************************************/ - public void setSoft(boolean val ); + public Channel getChannel(); -// Channel getChannel +// void setSoft boolean /********************************************************** - * The channel on which the hangup was requested. + * Whether the hangup request was a soft hangup request. * * @since ari_0_0_1 *********************************************************/ - public Channel getChannel(); + public void setSoft(boolean val ); @@ -72,13 +72,13 @@ public interface ChannelHangupRequest { -// boolean getSoft +// void setCause int /********************************************************** - * Whether the hangup request was a soft hangup request. + * Integer representation of the cause of the hangup. * * @since ari_0_0_1 *********************************************************/ - public boolean getSoft(); + public void setCause(int val ); } diff --git a/classes/ch/loway/oss/ari4java/generated/ChannelHold.java b/classes/ch/loway/oss/ari4java/generated/ChannelHold.java index a4b8867c..559826b5 100644 --- a/classes/ch/loway/oss/ari4java/generated/ChannelHold.java +++ b/classes/ch/loway/oss/ari4java/generated/ChannelHold.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Wed Aug 31 18:05:10 CEST 2016 +// Generated on: Sat Feb 04 15:23:09 CET 2017 // ---------------------------------------------------- import java.util.Date; @@ -22,16 +22,6 @@ public interface ChannelHold { -// String getMusicclass -/********************************************************** - * The music on hold class that the initiator requested. - * - * @since ari_1_8_0 - *********************************************************/ - public String getMusicclass(); - - - // void setMusicclass String /********************************************************** * The music on hold class that the initiator requested. @@ -61,5 +51,15 @@ public interface ChannelHold { public void setChannel(Channel val ); + +// String getMusicclass +/********************************************************** + * The music on hold class that the initiator requested. + * + * @since ari_1_8_0 + *********************************************************/ + public String getMusicclass(); + + } ; diff --git a/classes/ch/loway/oss/ari4java/generated/ChannelLeftBridge.java b/classes/ch/loway/oss/ari4java/generated/ChannelLeftBridge.java index b57ab7c0..df5f6988 100644 --- a/classes/ch/loway/oss/ari4java/generated/ChannelLeftBridge.java +++ b/classes/ch/loway/oss/ari4java/generated/ChannelLeftBridge.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Wed Aug 31 18:05:10 CEST 2016 +// Generated on: Sat Feb 04 15:23:09 CET 2017 // ---------------------------------------------------- import java.util.Date; @@ -22,43 +22,43 @@ public interface ChannelLeftBridge { -// void setBridge Bridge +// Channel getChannel /********************************************************** * * * @since ari_0_0_1 *********************************************************/ - public void setBridge(Bridge val ); + public Channel getChannel(); -// Channel getChannel +// void setBridge Bridge /********************************************************** * * * @since ari_0_0_1 *********************************************************/ - public Channel getChannel(); + public void setBridge(Bridge val ); -// Bridge getBridge +// void setChannel Channel /********************************************************** * * * @since ari_0_0_1 *********************************************************/ - public Bridge getBridge(); + public void setChannel(Channel val ); -// void setChannel Channel +// Bridge getBridge /********************************************************** * * * @since ari_0_0_1 *********************************************************/ - public void setChannel(Channel val ); + public Bridge getBridge(); } diff --git a/classes/ch/loway/oss/ari4java/generated/ChannelStateChange.java b/classes/ch/loway/oss/ari4java/generated/ChannelStateChange.java index 66cba9e2..4d9120be 100644 --- a/classes/ch/loway/oss/ari4java/generated/ChannelStateChange.java +++ b/classes/ch/loway/oss/ari4java/generated/ChannelStateChange.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Wed Aug 31 18:05:10 CEST 2016 +// Generated on: Sat Feb 04 15:23:08 CET 2017 // ---------------------------------------------------- import java.util.Date; diff --git a/classes/ch/loway/oss/ari4java/generated/ChannelTalkingFinished.java b/classes/ch/loway/oss/ari4java/generated/ChannelTalkingFinished.java index 82e5c997..3caf2123 100644 --- a/classes/ch/loway/oss/ari4java/generated/ChannelTalkingFinished.java +++ b/classes/ch/loway/oss/ari4java/generated/ChannelTalkingFinished.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Wed Aug 31 18:05:10 CEST 2016 +// Generated on: Sat Feb 04 15:23:09 CET 2017 // ---------------------------------------------------- import java.util.Date; @@ -22,43 +22,43 @@ public interface ChannelTalkingFinished { -// void setDuration int +// int getDuration /********************************************************** * The length of time, in milliseconds, that talking was detected on the channel * * @since ari_1_5_0 *********************************************************/ - public void setDuration(int val ); + public int getDuration(); -// Channel getChannel +// void setDuration int /********************************************************** - * The channel on which talking completed. + * The length of time, in milliseconds, that talking was detected on the channel * * @since ari_1_5_0 *********************************************************/ - public Channel getChannel(); + public void setDuration(int val ); -// void setChannel Channel +// Channel getChannel /********************************************************** * The channel on which talking completed. * * @since ari_1_5_0 *********************************************************/ - public void setChannel(Channel val ); + public Channel getChannel(); -// int getDuration +// void setChannel Channel /********************************************************** - * The length of time, in milliseconds, that talking was detected on the channel + * The channel on which talking completed. * * @since ari_1_5_0 *********************************************************/ - public int getDuration(); + public void setChannel(Channel val ); } diff --git a/classes/ch/loway/oss/ari4java/generated/ChannelTalkingStarted.java b/classes/ch/loway/oss/ari4java/generated/ChannelTalkingStarted.java index ec9712f5..b4a8934c 100644 --- a/classes/ch/loway/oss/ari4java/generated/ChannelTalkingStarted.java +++ b/classes/ch/loway/oss/ari4java/generated/ChannelTalkingStarted.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Wed Aug 31 18:05:10 CEST 2016 +// Generated on: Sat Feb 04 15:23:09 CET 2017 // ---------------------------------------------------- import java.util.Date; diff --git a/classes/ch/loway/oss/ari4java/generated/ChannelUnhold.java b/classes/ch/loway/oss/ari4java/generated/ChannelUnhold.java index f0f3837d..2a2c0fee 100644 --- a/classes/ch/loway/oss/ari4java/generated/ChannelUnhold.java +++ b/classes/ch/loway/oss/ari4java/generated/ChannelUnhold.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Wed Aug 31 18:05:10 CEST 2016 +// Generated on: Sat Feb 04 15:23:09 CET 2017 // ---------------------------------------------------- import java.util.Date; diff --git a/classes/ch/loway/oss/ari4java/generated/ChannelUserevent.java b/classes/ch/loway/oss/ari4java/generated/ChannelUserevent.java index 5cd520bf..7aa1bcfd 100644 --- a/classes/ch/loway/oss/ari4java/generated/ChannelUserevent.java +++ b/classes/ch/loway/oss/ari4java/generated/ChannelUserevent.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Wed Aug 31 18:05:10 CEST 2016 +// Generated on: Sat Feb 04 15:23:08 CET 2017 // ---------------------------------------------------- import java.util.Date; @@ -22,103 +22,103 @@ public interface ChannelUserevent { -// void setEventname String +// String getEventname /********************************************************** * The name of the user event. * * @since ari_0_0_1 *********************************************************/ - public void setEventname(String val ); + public String getEventname(); -// void setUserevent String +// void setEventname String /********************************************************** - * Custom Userevent data + * The name of the user event. * * @since ari_0_0_1 *********************************************************/ - public void setUserevent(String val ); + public void setEventname(String val ); -// String getEventname +// Endpoint getEndpoint /********************************************************** - * The name of the user event. + * A endpoint that is signaled with the user event. * - * @since ari_0_0_1 + * @since ari_1_5_0 *********************************************************/ - public String getEventname(); + public Endpoint getEndpoint(); -// void setEndpoint Endpoint +// Channel getChannel /********************************************************** - * A endpoint that is signaled with the user event. + * The channel that signaled the user event. * - * @since ari_1_5_0 + * @since ari_0_0_1 *********************************************************/ - public void setEndpoint(Endpoint val ); + public Channel getChannel(); -// void setBridge Bridge +// void setChannel Channel /********************************************************** - * A bridge that is signaled with the user event. + * The channel that signaled the user event. * - * @since ari_1_5_0 + * @since ari_0_0_1 *********************************************************/ - public void setBridge(Bridge val ); + public void setChannel(Channel val ); -// Channel getChannel +// void setBridge Bridge /********************************************************** - * The channel that signaled the user event. + * A bridge that is signaled with the user event. * - * @since ari_0_0_1 + * @since ari_1_5_0 *********************************************************/ - public Channel getChannel(); + public void setBridge(Bridge val ); -// Endpoint getEndpoint +// Bridge getBridge /********************************************************** - * A endpoint that is signaled with the user event. + * A bridge that is signaled with the user event. * * @since ari_1_5_0 *********************************************************/ - public Endpoint getEndpoint(); + public Bridge getBridge(); -// String getUserevent +// void setUserevent String /********************************************************** * Custom Userevent data * * @since ari_0_0_1 *********************************************************/ - public String getUserevent(); + public void setUserevent(String val ); -// Bridge getBridge +// void setEndpoint Endpoint /********************************************************** - * A bridge that is signaled with the user event. + * A endpoint that is signaled with the user event. * * @since ari_1_5_0 *********************************************************/ - public Bridge getBridge(); + public void setEndpoint(Endpoint val ); -// void setChannel Channel +// String getUserevent /********************************************************** - * The channel that signaled the user event. + * Custom Userevent data * * @since ari_0_0_1 *********************************************************/ - public void setChannel(Channel val ); + public String getUserevent(); } diff --git a/classes/ch/loway/oss/ari4java/generated/ChannelVarset.java b/classes/ch/loway/oss/ari4java/generated/ChannelVarset.java index cf5dfa41..bbfd64e9 100644 --- a/classes/ch/loway/oss/ari4java/generated/ChannelVarset.java +++ b/classes/ch/loway/oss/ari4java/generated/ChannelVarset.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Wed Aug 31 18:05:10 CEST 2016 +// Generated on: Sat Feb 04 15:23:09 CET 2017 // ---------------------------------------------------- import java.util.Date; @@ -22,16 +22,6 @@ public interface ChannelVarset { -// void setValue String -/********************************************************** - * The new value of the variable. - * - * @since ari_0_0_1 - *********************************************************/ - public void setValue(String val ); - - - // void setVariable String /********************************************************** * The variable that changed. @@ -42,35 +32,35 @@ public interface ChannelVarset { -// Channel getChannel +// String getVariable /********************************************************** - * The channel on which the variable was set. - * - * If missing, the variable is a global variable. + * The variable that changed. * * @since ari_0_0_1 *********************************************************/ - public Channel getChannel(); + public String getVariable(); -// String getValue +// void setValue String /********************************************************** * The new value of the variable. * * @since ari_0_0_1 *********************************************************/ - public String getValue(); + public void setValue(String val ); -// String getVariable +// Channel getChannel /********************************************************** - * The variable that changed. + * The channel on which the variable was set. + * + * If missing, the variable is a global variable. * * @since ari_0_0_1 *********************************************************/ - public String getVariable(); + public Channel getChannel(); @@ -85,5 +75,15 @@ public interface ChannelVarset { public void setChannel(Channel val ); + +// String getValue +/********************************************************** + * The new value of the variable. + * + * @since ari_0_0_1 + *********************************************************/ + public String getValue(); + + } ; diff --git a/classes/ch/loway/oss/ari4java/generated/ConfigInfo.java b/classes/ch/loway/oss/ari4java/generated/ConfigInfo.java index e0d296dd..06d9d04b 100644 --- a/classes/ch/loway/oss/ari4java/generated/ConfigInfo.java +++ b/classes/ch/loway/oss/ari4java/generated/ConfigInfo.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Wed Aug 31 18:05:10 CEST 2016 +// Generated on: Sat Feb 04 15:23:09 CET 2017 // ---------------------------------------------------- import java.util.Date; @@ -22,123 +22,123 @@ public interface ConfigInfo { -// void setMax_channels int +// String getName /********************************************************** - * Maximum number of simultaneous channels. + * Asterisk system name. * * @since ari_0_0_1 *********************************************************/ - public void setMax_channels(int val ); + public String getName(); -// int getMax_open_files +// double getMax_load /********************************************************** - * Maximum number of open file handles (files, sockets). + * Maximum load avg on system. * * @since ari_0_0_1 *********************************************************/ - public int getMax_open_files(); + public double getMax_load(); -// void setName String +// SetId getSetid /********************************************************** - * Asterisk system name. + * Effective user/group id for running Asterisk. * * @since ari_0_0_1 *********************************************************/ - public void setName(String val ); + public SetId getSetid(); -// void setSetid SetId +// void setMax_channels int /********************************************************** - * Effective user/group id for running Asterisk. + * Maximum number of simultaneous channels. * * @since ari_0_0_1 *********************************************************/ - public void setSetid(SetId val ); + public void setMax_channels(int val ); -// void setMax_load double +// int getMax_channels /********************************************************** - * Maximum load avg on system. + * Maximum number of simultaneous channels. * * @since ari_0_0_1 *********************************************************/ - public void setMax_load(double val ); + public int getMax_channels(); -// String getName +// void setDefault_language String /********************************************************** - * Asterisk system name. + * Default language for media playback. * * @since ari_0_0_1 *********************************************************/ - public String getName(); + public void setDefault_language(String val ); -// String getDefault_language +// void setSetid SetId /********************************************************** - * Default language for media playback. + * Effective user/group id for running Asterisk. * * @since ari_0_0_1 *********************************************************/ - public String getDefault_language(); + public void setSetid(SetId val ); -// void setMax_open_files int +// String getDefault_language /********************************************************** - * Maximum number of open file handles (files, sockets). + * Default language for media playback. * * @since ari_0_0_1 *********************************************************/ - public void setMax_open_files(int val ); + public String getDefault_language(); -// SetId getSetid +// int getMax_open_files /********************************************************** - * Effective user/group id for running Asterisk. + * Maximum number of open file handles (files, sockets). * * @since ari_0_0_1 *********************************************************/ - public SetId getSetid(); + public int getMax_open_files(); -// void setDefault_language String +// void setMax_open_files int /********************************************************** - * Default language for media playback. + * Maximum number of open file handles (files, sockets). * * @since ari_0_0_1 *********************************************************/ - public void setDefault_language(String val ); + public void setMax_open_files(int val ); -// double getMax_load +// void setName String /********************************************************** - * Maximum load avg on system. + * Asterisk system name. * * @since ari_0_0_1 *********************************************************/ - public double getMax_load(); + public void setName(String val ); -// int getMax_channels +// void setMax_load double /********************************************************** - * Maximum number of simultaneous channels. + * Maximum load avg on system. * * @since ari_0_0_1 *********************************************************/ - public int getMax_channels(); + public void setMax_load(double val ); } diff --git a/classes/ch/loway/oss/ari4java/generated/ConfigTuple.java b/classes/ch/loway/oss/ari4java/generated/ConfigTuple.java index 753ed08f..63861c3d 100644 --- a/classes/ch/loway/oss/ari4java/generated/ConfigTuple.java +++ b/classes/ch/loway/oss/ari4java/generated/ConfigTuple.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Wed Aug 31 18:05:10 CEST 2016 +// Generated on: Sat Feb 04 15:23:09 CET 2017 // ---------------------------------------------------- import java.util.Date; @@ -42,23 +42,23 @@ public interface ConfigTuple { -// String getAttribute +// void setAttribute String /********************************************************** * A configuration object attribute. * * @since ari_1_8_0 *********************************************************/ - public String getAttribute(); + public void setAttribute(String val ); -// void setAttribute String +// String getAttribute /********************************************************** * A configuration object attribute. * * @since ari_1_8_0 *********************************************************/ - public void setAttribute(String val ); + public String getAttribute(); } diff --git a/classes/ch/loway/oss/ari4java/generated/ContactInfo.java b/classes/ch/loway/oss/ari4java/generated/ContactInfo.java index cdd9d723..8045d5a6 100644 --- a/classes/ch/loway/oss/ari4java/generated/ContactInfo.java +++ b/classes/ch/loway/oss/ari4java/generated/ContactInfo.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Wed Aug 31 18:05:10 CEST 2016 +// Generated on: Sat Feb 04 15:23:08 CET 2017 // ---------------------------------------------------- import java.util.Date; @@ -22,16 +22,6 @@ public interface ContactInfo { -// String getUri -/********************************************************** - * The location of the contact. - * - * @since ari_1_9_0 - *********************************************************/ - public String getUri(); - - - // void setRoundtrip_usec String /********************************************************** * Current round trip time, in microseconds, for the contact. @@ -42,23 +32,23 @@ public interface ContactInfo { -// String getRoundtrip_usec +// String getContact_status /********************************************************** - * Current round trip time, in microseconds, for the contact. + * The current status of the contact. * * @since ari_1_9_0 *********************************************************/ - public String getRoundtrip_usec(); + public String getContact_status(); -// String getAor +// String getUri /********************************************************** - * The Address of Record this contact belongs to. + * The location of the contact. * * @since ari_1_9_0 *********************************************************/ - public String getAor(); + public String getUri(); @@ -72,33 +62,43 @@ public interface ContactInfo { -// void setUri String +// void setAor String /********************************************************** - * The location of the contact. + * The Address of Record this contact belongs to. * * @since ari_1_9_0 *********************************************************/ - public void setUri(String val ); + public void setAor(String val ); -// void setAor String +// String getAor /********************************************************** * The Address of Record this contact belongs to. * * @since ari_1_9_0 *********************************************************/ - public void setAor(String val ); + public String getAor(); -// String getContact_status +// String getRoundtrip_usec /********************************************************** - * The current status of the contact. + * Current round trip time, in microseconds, for the contact. * * @since ari_1_9_0 *********************************************************/ - public String getContact_status(); + public String getRoundtrip_usec(); + + + +// void setUri String +/********************************************************** + * The location of the contact. + * + * @since ari_1_9_0 + *********************************************************/ + public void setUri(String val ); } diff --git a/classes/ch/loway/oss/ari4java/generated/ContactStatusChange.java b/classes/ch/loway/oss/ari4java/generated/ContactStatusChange.java index 193bfd85..9b79f52c 100644 --- a/classes/ch/loway/oss/ari4java/generated/ContactStatusChange.java +++ b/classes/ch/loway/oss/ari4java/generated/ContactStatusChange.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Wed Aug 31 18:05:10 CEST 2016 +// Generated on: Sat Feb 04 15:23:08 CET 2017 // ---------------------------------------------------- import java.util.Date; @@ -22,43 +22,43 @@ public interface ContactStatusChange { -// void setContact_info ContactInfo +// Endpoint getEndpoint /********************************************************** * * * @since ari_1_9_0 *********************************************************/ - public void setContact_info(ContactInfo val ); + public Endpoint getEndpoint(); -// void setEndpoint Endpoint +// ContactInfo getContact_info /********************************************************** * * * @since ari_1_9_0 *********************************************************/ - public void setEndpoint(Endpoint val ); + public ContactInfo getContact_info(); -// ContactInfo getContact_info +// void setEndpoint Endpoint /********************************************************** * * * @since ari_1_9_0 *********************************************************/ - public ContactInfo getContact_info(); + public void setEndpoint(Endpoint val ); -// Endpoint getEndpoint +// void setContact_info ContactInfo /********************************************************** * * * @since ari_1_9_0 *********************************************************/ - public Endpoint getEndpoint(); + public void setContact_info(ContactInfo val ); } diff --git a/classes/ch/loway/oss/ari4java/generated/DeviceState.java b/classes/ch/loway/oss/ari4java/generated/DeviceState.java index 5474426e..2e04e3d9 100644 --- a/classes/ch/loway/oss/ari4java/generated/DeviceState.java +++ b/classes/ch/loway/oss/ari4java/generated/DeviceState.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Wed Aug 31 18:05:10 CEST 2016 +// Generated on: Sat Feb 04 15:23:09 CET 2017 // ---------------------------------------------------- import java.util.Date; @@ -22,43 +22,43 @@ public interface DeviceState extends EventSource { -// void setState String +// String getName /********************************************************** - * Device's state + * Name of the device. * * @since ari_0_0_1 *********************************************************/ - public void setState(String val ); + public String getName(); -// void setName String +// String getState /********************************************************** - * Name of the device. + * Device's state * * @since ari_0_0_1 *********************************************************/ - public void setName(String val ); + public String getState(); -// String getName +// void setState String /********************************************************** - * Name of the device. + * Device's state * * @since ari_0_0_1 *********************************************************/ - public String getName(); + public void setState(String val ); -// String getState +// void setName String /********************************************************** - * Device's state + * Name of the device. * * @since ari_0_0_1 *********************************************************/ - public String getState(); + public void setName(String val ); } diff --git a/classes/ch/loway/oss/ari4java/generated/DeviceStateChanged.java b/classes/ch/loway/oss/ari4java/generated/DeviceStateChanged.java index 7e653b51..bc74bdec 100644 --- a/classes/ch/loway/oss/ari4java/generated/DeviceStateChanged.java +++ b/classes/ch/loway/oss/ari4java/generated/DeviceStateChanged.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Wed Aug 31 18:05:10 CEST 2016 +// Generated on: Sat Feb 04 15:23:09 CET 2017 // ---------------------------------------------------- import java.util.Date; @@ -22,23 +22,23 @@ public interface DeviceStateChanged { -// void setDevice_state DeviceState +// DeviceState getDevice_state /********************************************************** * Device state object * * @since ari_0_0_1 *********************************************************/ - public void setDevice_state(DeviceState val ); + public DeviceState getDevice_state(); -// DeviceState getDevice_state +// void setDevice_state DeviceState /********************************************************** * Device state object * * @since ari_0_0_1 *********************************************************/ - public DeviceState getDevice_state(); + public void setDevice_state(DeviceState val ); } diff --git a/classes/ch/loway/oss/ari4java/generated/Dial.java b/classes/ch/loway/oss/ari4java/generated/Dial.java index 5851a93d..e5c7c8a7 100644 --- a/classes/ch/loway/oss/ari4java/generated/Dial.java +++ b/classes/ch/loway/oss/ari4java/generated/Dial.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Wed Aug 31 18:05:10 CEST 2016 +// Generated on: Sat Feb 04 15:23:08 CET 2017 // ---------------------------------------------------- import java.util.Date; @@ -22,33 +22,33 @@ public interface Dial { -// void setPeer Channel +// Channel getCaller /********************************************************** - * The dialed channel. + * The calling channel. * * @since ari_1_0_0 *********************************************************/ - public void setPeer(Channel val ); + public Channel getCaller(); -// Channel getForwarded +// String getDialstring /********************************************************** - * Channel that the caller has been forwarded to. + * The dial string for calling the peer channel. * * @since ari_1_0_0 *********************************************************/ - public Channel getForwarded(); + public String getDialstring(); -// String getDialstatus +// void setCaller Channel /********************************************************** - * Current status of the dialing attempt to the peer. + * The calling channel. * * @since ari_1_0_0 *********************************************************/ - public String getDialstatus(); + public void setCaller(Channel val ); @@ -62,83 +62,83 @@ public interface Dial { -// void setDialstring String +// Channel getForwarded /********************************************************** - * The dial string for calling the peer channel. + * Channel that the caller has been forwarded to. * * @since ari_1_0_0 *********************************************************/ - public void setDialstring(String val ); + public Channel getForwarded(); -// String getDialstring +// String getForward /********************************************************** - * The dial string for calling the peer channel. + * Forwarding target requested by the original dialed channel. * * @since ari_1_0_0 *********************************************************/ - public String getDialstring(); + public String getForward(); -// Channel getPeer +// String getDialstatus /********************************************************** - * The dialed channel. + * Current status of the dialing attempt to the peer. * * @since ari_1_0_0 *********************************************************/ - public Channel getPeer(); + public String getDialstatus(); -// void setForward String +// void setPeer Channel /********************************************************** - * Forwarding target requested by the original dialed channel. + * The dialed channel. * * @since ari_1_0_0 *********************************************************/ - public void setForward(String val ); + public void setPeer(Channel val ); -// void setForwarded Channel +// Channel getPeer /********************************************************** - * Channel that the caller has been forwarded to. + * The dialed channel. * * @since ari_1_0_0 *********************************************************/ - public void setForwarded(Channel val ); + public Channel getPeer(); -// String getForward +// void setForwarded Channel /********************************************************** - * Forwarding target requested by the original dialed channel. + * Channel that the caller has been forwarded to. * * @since ari_1_0_0 *********************************************************/ - public String getForward(); + public void setForwarded(Channel val ); -// void setCaller Channel +// void setForward String /********************************************************** - * The calling channel. + * Forwarding target requested by the original dialed channel. * * @since ari_1_0_0 *********************************************************/ - public void setCaller(Channel val ); + public void setForward(String val ); -// Channel getCaller +// void setDialstring String /********************************************************** - * The calling channel. + * The dial string for calling the peer channel. * * @since ari_1_0_0 *********************************************************/ - public Channel getCaller(); + public void setDialstring(String val ); } diff --git a/classes/ch/loway/oss/ari4java/generated/Dialed.java b/classes/ch/loway/oss/ari4java/generated/Dialed.java index 043fe2bb..a2576c04 100644 --- a/classes/ch/loway/oss/ari4java/generated/Dialed.java +++ b/classes/ch/loway/oss/ari4java/generated/Dialed.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Wed Aug 31 18:05:10 CEST 2016 +// Generated on: Sat Feb 04 15:23:09 CET 2017 // ---------------------------------------------------- import java.util.Date; diff --git a/classes/ch/loway/oss/ari4java/generated/DialplanCEP.java b/classes/ch/loway/oss/ari4java/generated/DialplanCEP.java index 3ab78838..c9b0ec06 100644 --- a/classes/ch/loway/oss/ari4java/generated/DialplanCEP.java +++ b/classes/ch/loway/oss/ari4java/generated/DialplanCEP.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Wed Aug 31 18:05:10 CEST 2016 +// Generated on: Sat Feb 04 15:23:08 CET 2017 // ---------------------------------------------------- import java.util.Date; @@ -22,63 +22,63 @@ public interface DialplanCEP { -// void setContext String +// String getContext /********************************************************** * Context in the dialplan * * @since ari_0_0_1 *********************************************************/ - public void setContext(String val ); + public String getContext(); -// long getPriority +// void setExten String /********************************************************** - * Priority in the dialplan + * Extension in the dialplan * * @since ari_0_0_1 *********************************************************/ - public long getPriority(); + public void setExten(String val ); -// void setPriority long +// void setContext String /********************************************************** - * Priority in the dialplan + * Context in the dialplan * * @since ari_0_0_1 *********************************************************/ - public void setPriority(long val ); + public void setContext(String val ); -// String getExten +// void setPriority long /********************************************************** - * Extension in the dialplan + * Priority in the dialplan * * @since ari_0_0_1 *********************************************************/ - public String getExten(); + public void setPriority(long val ); -// String getContext +// long getPriority /********************************************************** - * Context in the dialplan + * Priority in the dialplan * * @since ari_0_0_1 *********************************************************/ - public String getContext(); + public long getPriority(); -// void setExten String +// String getExten /********************************************************** * Extension in the dialplan * * @since ari_0_0_1 *********************************************************/ - public void setExten(String val ); + public String getExten(); } diff --git a/classes/ch/loway/oss/ari4java/generated/Endpoint.java b/classes/ch/loway/oss/ari4java/generated/Endpoint.java index c8630965..afb70145 100644 --- a/classes/ch/loway/oss/ari4java/generated/Endpoint.java +++ b/classes/ch/loway/oss/ari4java/generated/Endpoint.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Wed Aug 31 18:05:10 CEST 2016 +// Generated on: Sat Feb 04 15:23:08 CET 2017 // ---------------------------------------------------- import java.util.Date; @@ -22,63 +22,63 @@ public interface Endpoint extends EventSource { -// List getChannel_ids +// String getResource /********************************************************** - * Id's of channels associated with this endpoint + * Identifier of the endpoint, specific to the given technology. * * @since ari_0_0_1 *********************************************************/ - public List getChannel_ids(); + public String getResource(); -// void setState String +// List getChannel_ids /********************************************************** - * Endpoint's state + * Id's of channels associated with this endpoint * * @since ari_0_0_1 *********************************************************/ - public void setState(String val ); + public List getChannel_ids(); -// void setChannel_ids List +// String getTechnology /********************************************************** - * Id's of channels associated with this endpoint + * Technology of the endpoint * * @since ari_0_0_1 *********************************************************/ - public void setChannel_ids(List val ); + public String getTechnology(); -// String getResource +// void setTechnology String /********************************************************** - * Identifier of the endpoint, specific to the given technology. + * Technology of the endpoint * * @since ari_0_0_1 *********************************************************/ - public String getResource(); + public void setTechnology(String val ); -// void setTechnology String +// String getState /********************************************************** - * Technology of the endpoint + * Endpoint's state * * @since ari_0_0_1 *********************************************************/ - public void setTechnology(String val ); + public String getState(); -// String getTechnology +// void setState String /********************************************************** - * Technology of the endpoint + * Endpoint's state * * @since ari_0_0_1 *********************************************************/ - public String getTechnology(); + public void setState(String val ); @@ -92,13 +92,13 @@ public interface Endpoint extends EventSource { -// String getState +// void setChannel_ids List /********************************************************** - * Endpoint's state + * Id's of channels associated with this endpoint * * @since ari_0_0_1 *********************************************************/ - public String getState(); + public void setChannel_ids(List val ); } diff --git a/classes/ch/loway/oss/ari4java/generated/EndpointStateChange.java b/classes/ch/loway/oss/ari4java/generated/EndpointStateChange.java index 62d238a6..b8db8ba6 100644 --- a/classes/ch/loway/oss/ari4java/generated/EndpointStateChange.java +++ b/classes/ch/loway/oss/ari4java/generated/EndpointStateChange.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Wed Aug 31 18:05:10 CEST 2016 +// Generated on: Sat Feb 04 15:23:08 CET 2017 // ---------------------------------------------------- import java.util.Date; @@ -22,23 +22,23 @@ public interface EndpointStateChange { -// void setEndpoint Endpoint +// Endpoint getEndpoint /********************************************************** * * * @since ari_0_0_1 *********************************************************/ - public void setEndpoint(Endpoint val ); + public Endpoint getEndpoint(); -// Endpoint getEndpoint +// void setEndpoint Endpoint /********************************************************** * * * @since ari_0_0_1 *********************************************************/ - public Endpoint getEndpoint(); + public void setEndpoint(Endpoint val ); } diff --git a/classes/ch/loway/oss/ari4java/generated/Event.java b/classes/ch/loway/oss/ari4java/generated/Event.java index 00d8dbab..6d6df2c2 100644 --- a/classes/ch/loway/oss/ari4java/generated/Event.java +++ b/classes/ch/loway/oss/ari4java/generated/Event.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Wed Aug 31 18:05:10 CEST 2016 +// Generated on: Sat Feb 04 15:23:09 CET 2017 // ---------------------------------------------------- import java.util.Date; @@ -22,43 +22,43 @@ public interface Event { -// Date getTimestamp +// void setTimestamp Date /********************************************************** * Time at which this event was created. * * @since ari_0_0_1 *********************************************************/ - public Date getTimestamp(); + public void setTimestamp(Date val ); -// void setTimestamp Date +// Date getTimestamp /********************************************************** * Time at which this event was created. * * @since ari_0_0_1 *********************************************************/ - public void setTimestamp(Date val ); + public Date getTimestamp(); -// String getApplication +// void setApplication String /********************************************************** * Name of the application receiving the event. * * @since ari_0_0_1 *********************************************************/ - public String getApplication(); + public void setApplication(String val ); -// void setApplication String +// String getApplication /********************************************************** * Name of the application receiving the event. * * @since ari_0_0_1 *********************************************************/ - public void setApplication(String val ); + public String getApplication(); } diff --git a/classes/ch/loway/oss/ari4java/generated/FormatLangPair.java b/classes/ch/loway/oss/ari4java/generated/FormatLangPair.java index 681f4448..96da0db5 100644 --- a/classes/ch/loway/oss/ari4java/generated/FormatLangPair.java +++ b/classes/ch/loway/oss/ari4java/generated/FormatLangPair.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Wed Aug 31 18:05:10 CEST 2016 +// Generated on: Sat Feb 04 15:23:09 CET 2017 // ---------------------------------------------------- import java.util.Date; @@ -22,43 +22,43 @@ public interface FormatLangPair { -// String getFormat +// String getLanguage /********************************************************** * * * @since ari_0_0_1 *********************************************************/ - public String getFormat(); + public String getLanguage(); -// String getLanguage +// String getFormat /********************************************************** * * * @since ari_0_0_1 *********************************************************/ - public String getLanguage(); + public String getFormat(); -// void setLanguage String +// void setFormat String /********************************************************** * * * @since ari_0_0_1 *********************************************************/ - public void setLanguage(String val ); + public void setFormat(String val ); -// void setFormat String +// void setLanguage String /********************************************************** * * * @since ari_0_0_1 *********************************************************/ - public void setFormat(String val ); + public void setLanguage(String val ); } diff --git a/classes/ch/loway/oss/ari4java/generated/LiveRecording.java b/classes/ch/loway/oss/ari4java/generated/LiveRecording.java index c6c425b4..9f017e32 100644 --- a/classes/ch/loway/oss/ari4java/generated/LiveRecording.java +++ b/classes/ch/loway/oss/ari4java/generated/LiveRecording.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Wed Aug 31 18:05:10 CEST 2016 +// Generated on: Sat Feb 04 15:23:08 CET 2017 // ---------------------------------------------------- import java.util.Date; @@ -22,73 +22,63 @@ public interface LiveRecording { -// void setState String -/********************************************************** - * - * - * @since ari_0_0_1 - *********************************************************/ - public void setState(String val ); - - - -// int getSilence_duration +// String getTarget_uri /********************************************************** - * Duration of silence, in seconds, detected in the recording. This is only available if the recording was initiated with a non-zero maxSilenceSeconds. + * URI for the channel or bridge being recorded * * @since ari_1_5_0 *********************************************************/ - public int getSilence_duration(); + public String getTarget_uri(); -// void setTarget_uri String +// void setTalking_duration int /********************************************************** - * URI for the channel or bridge being recorded + * Duration of talking, in seconds, detected in the recording. This is only available if the recording was initiated with a non-zero maxSilenceSeconds. * * @since ari_1_5_0 *********************************************************/ - public void setTarget_uri(String val ); + public void setTalking_duration(int val ); -// String getCause +// String getName /********************************************************** - * Cause for recording failure if failed + * Base name for the recording * * @since ari_0_0_1 *********************************************************/ - public String getCause(); + public String getName(); -// String getTarget_uri +// int getDuration /********************************************************** - * URI for the channel or bridge being recorded + * Duration in seconds of the recording * * @since ari_1_5_0 *********************************************************/ - public String getTarget_uri(); + public int getDuration(); -// void setDuration int +// String getFormat /********************************************************** - * Duration in seconds of the recording * - * @since ari_1_5_0 + * + * @since ari_0_0_1 *********************************************************/ - public void setDuration(int val ); + public String getFormat(); -// void setTalking_duration int +// void setFormat String /********************************************************** - * Duration of talking, in seconds, detected in the recording. This is only available if the recording was initiated with a non-zero maxSilenceSeconds. * - * @since ari_1_5_0 + * + * @since ari_0_0_1 *********************************************************/ - public void setTalking_duration(int val ); + public void setFormat(String val ); @@ -102,43 +92,53 @@ public interface LiveRecording { -// void setCause String +// void setState String /********************************************************** - * Cause for recording failure if failed + * * * @since ari_0_0_1 *********************************************************/ - public void setCause(String val ); + public void setState(String val ); -// int getDuration +// void setTarget_uri String /********************************************************** - * Duration in seconds of the recording + * URI for the channel or bridge being recorded * * @since ari_1_5_0 *********************************************************/ - public int getDuration(); + public void setTarget_uri(String val ); -// String getFormat +// String getCause /********************************************************** - * + * Cause for recording failure if failed * * @since ari_0_0_1 *********************************************************/ - public String getFormat(); + public String getCause(); -// void setName String +// void setDuration int /********************************************************** - * Base name for the recording + * Duration in seconds of the recording * - * @since ari_0_0_1 + * @since ari_1_5_0 *********************************************************/ - public void setName(String val ); + public void setDuration(int val ); + + + +// int getSilence_duration +/********************************************************** + * Duration of silence, in seconds, detected in the recording. This is only available if the recording was initiated with a non-zero maxSilenceSeconds. + * + * @since ari_1_5_0 + *********************************************************/ + public int getSilence_duration(); @@ -152,23 +152,23 @@ public interface LiveRecording { -// String getName +// void setCause String /********************************************************** - * Base name for the recording + * Cause for recording failure if failed * * @since ari_0_0_1 *********************************************************/ - public String getName(); + public void setCause(String val ); -// void setFormat String +// void setName String /********************************************************** - * + * Base name for the recording * * @since ari_0_0_1 *********************************************************/ - public void setFormat(String val ); + public void setName(String val ); diff --git a/classes/ch/loway/oss/ari4java/generated/LogChannel.java b/classes/ch/loway/oss/ari4java/generated/LogChannel.java index 17d39cfa..e9b679e6 100644 --- a/classes/ch/loway/oss/ari4java/generated/LogChannel.java +++ b/classes/ch/loway/oss/ari4java/generated/LogChannel.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Wed Aug 31 18:05:10 CEST 2016 +// Generated on: Sat Feb 04 15:23:09 CET 2017 // ---------------------------------------------------- import java.util.Date; @@ -22,23 +22,23 @@ public interface LogChannel { -// void setStatus String +// String getChannel /********************************************************** - * Whether or not a log type is enabled + * The log channel path * * @since ari_1_9_0 *********************************************************/ - public void setStatus(String val ); + public String getChannel(); -// void setType String +// String getType /********************************************************** * Types of logs for the log channel * * @since ari_1_9_0 *********************************************************/ - public void setType(String val ); + public String getType(); @@ -52,53 +52,53 @@ public interface LogChannel { -// String getChannel +// void setConfiguration String /********************************************************** - * The log channel path + * The various log levels * * @since ari_1_9_0 *********************************************************/ - public String getChannel(); + public void setConfiguration(String val ); -// String getStatus +// void setType String /********************************************************** - * Whether or not a log type is enabled + * Types of logs for the log channel * * @since ari_1_9_0 *********************************************************/ - public String getStatus(); + public void setType(String val ); -// String getConfiguration +// String getStatus /********************************************************** - * The various log levels + * Whether or not a log type is enabled * * @since ari_1_9_0 *********************************************************/ - public String getConfiguration(); + public String getStatus(); -// String getType +// String getConfiguration /********************************************************** - * Types of logs for the log channel + * The various log levels * * @since ari_1_9_0 *********************************************************/ - public String getType(); + public String getConfiguration(); -// void setConfiguration String +// void setStatus String /********************************************************** - * The various log levels + * Whether or not a log type is enabled * * @since ari_1_9_0 *********************************************************/ - public void setConfiguration(String val ); + public void setStatus(String val ); } diff --git a/classes/ch/loway/oss/ari4java/generated/Message.java b/classes/ch/loway/oss/ari4java/generated/Message.java index 0d68cfc6..f0ea2238 100644 --- a/classes/ch/loway/oss/ari4java/generated/Message.java +++ b/classes/ch/loway/oss/ari4java/generated/Message.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Wed Aug 31 18:05:10 CEST 2016 +// Generated on: Sat Feb 04 15:23:08 CET 2017 // ---------------------------------------------------- import java.util.Date; @@ -22,13 +22,13 @@ public interface Message { -// void setType String +// void setAsterisk_id String /********************************************************** - * Indicates the type of this message. + * The unique ID for the Asterisk instance that raised this event. * - * @since ari_0_0_1 + * @since ari_2_0_0 *********************************************************/ - public void setType(String val ); + public void setAsterisk_id(String val ); @@ -41,5 +41,25 @@ public interface Message { public String getType(); + +// String getAsterisk_id +/********************************************************** + * The unique ID for the Asterisk instance that raised this event. + * + * @since ari_2_0_0 + *********************************************************/ + public String getAsterisk_id(); + + + +// void setType String +/********************************************************** + * Indicates the type of this message. + * + * @since ari_0_0_1 + *********************************************************/ + public void setType(String val ); + + } ; diff --git a/classes/ch/loway/oss/ari4java/generated/MissingParams.java b/classes/ch/loway/oss/ari4java/generated/MissingParams.java index 5284ed07..d7037984 100644 --- a/classes/ch/loway/oss/ari4java/generated/MissingParams.java +++ b/classes/ch/loway/oss/ari4java/generated/MissingParams.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Wed Aug 31 18:05:10 CEST 2016 +// Generated on: Sat Feb 04 15:23:09 CET 2017 // ---------------------------------------------------- import java.util.Date; @@ -22,23 +22,23 @@ public interface MissingParams { -// void setParams List +// List getParams /********************************************************** * A list of the missing parameters * * @since ari_0_0_1 *********************************************************/ - public void setParams(List val ); + public List getParams(); -// List getParams +// void setParams List /********************************************************** * A list of the missing parameters * * @since ari_0_0_1 *********************************************************/ - public List getParams(); + public void setParams(List val ); } diff --git a/classes/ch/loway/oss/ari4java/generated/Module.java b/classes/ch/loway/oss/ari4java/generated/Module.java index 63f22ff2..9b44a87f 100644 --- a/classes/ch/loway/oss/ari4java/generated/Module.java +++ b/classes/ch/loway/oss/ari4java/generated/Module.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Wed Aug 31 18:05:10 CEST 2016 +// Generated on: Sat Feb 04 15:23:08 CET 2017 // ---------------------------------------------------- import java.util.Date; @@ -22,103 +22,103 @@ public interface Module { -// void setStatus String +// void setDescription String /********************************************************** - * The running status of this module + * The description of this module * * @since ari_1_8_0 *********************************************************/ - public void setStatus(String val ); + public void setDescription(String val ); -// void setName String +// String getName /********************************************************** * The name of this module * * @since ari_1_8_0 *********************************************************/ - public void setName(String val ); + public String getName(); -// void setDescription String +// int getUse_count /********************************************************** - * The description of this module + * The number of times this module is being used * * @since ari_1_8_0 *********************************************************/ - public void setDescription(String val ); + public int getUse_count(); -// String getStatus +// void setUse_count int /********************************************************** - * The running status of this module + * The number of times this module is being used * * @since ari_1_8_0 *********************************************************/ - public String getStatus(); + public void setUse_count(int val ); -// String getDescription +// void setSupport_level String /********************************************************** - * The description of this module + * The support state of this module * * @since ari_1_8_0 *********************************************************/ - public String getDescription(); + public void setSupport_level(String val ); -// void setUse_count int +// String getSupport_level /********************************************************** - * The number of times this module is being used + * The support state of this module * * @since ari_1_8_0 *********************************************************/ - public void setUse_count(int val ); + public String getSupport_level(); -// void setSupport_level String +// String getDescription /********************************************************** - * The support state of this module + * The description of this module * * @since ari_1_8_0 *********************************************************/ - public void setSupport_level(String val ); + public String getDescription(); -// String getName +// String getStatus /********************************************************** - * The name of this module + * The running status of this module * * @since ari_1_8_0 *********************************************************/ - public String getName(); + public String getStatus(); -// String getSupport_level +// void setName String /********************************************************** - * The support state of this module + * The name of this module * * @since ari_1_8_0 *********************************************************/ - public String getSupport_level(); + public void setName(String val ); -// int getUse_count +// void setStatus String /********************************************************** - * The number of times this module is being used + * The running status of this module * * @since ari_1_8_0 *********************************************************/ - public int getUse_count(); + public void setStatus(String val ); } diff --git a/classes/ch/loway/oss/ari4java/generated/Peer.java b/classes/ch/loway/oss/ari4java/generated/Peer.java index 8e394a48..56fe87a7 100644 --- a/classes/ch/loway/oss/ari4java/generated/Peer.java +++ b/classes/ch/loway/oss/ari4java/generated/Peer.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Wed Aug 31 18:05:10 CEST 2016 +// Generated on: Sat Feb 04 15:23:08 CET 2017 // ---------------------------------------------------- import java.util.Date; @@ -22,93 +22,93 @@ public interface Peer { -// String getAddress +// String getCause /********************************************************** - * The IP address of the peer. + * An optional reason associated with the change in peer_status. * * @since ari_1_9_0 *********************************************************/ - public String getAddress(); + public String getCause(); -// void setPeer_status String +// String getPeer_status /********************************************************** * The current state of the peer. Note that the values of the status are dependent on the underlying peer technology. * * @since ari_1_9_0 *********************************************************/ - public void setPeer_status(String val ); + public String getPeer_status(); -// void setPort String +// String getTime /********************************************************** - * The port of the peer. + * The last known time the peer was contacted. * * @since ari_1_9_0 *********************************************************/ - public void setPort(String val ); + public String getTime(); -// String getPort +// String getAddress /********************************************************** - * The port of the peer. + * The IP address of the peer. * * @since ari_1_9_0 *********************************************************/ - public String getPort(); + public String getAddress(); -// String getCause +// void setAddress String /********************************************************** - * An optional reason associated with the change in peer_status. + * The IP address of the peer. * * @since ari_1_9_0 *********************************************************/ - public String getCause(); + public void setAddress(String val ); -// String getTime +// String getPort /********************************************************** - * The last known time the peer was contacted. + * The port of the peer. * * @since ari_1_9_0 *********************************************************/ - public String getTime(); + public String getPort(); -// void setTime String +// void setPeer_status String /********************************************************** - * The last known time the peer was contacted. + * The current state of the peer. Note that the values of the status are dependent on the underlying peer technology. * * @since ari_1_9_0 *********************************************************/ - public void setTime(String val ); + public void setPeer_status(String val ); -// String getPeer_status +// void setPort String /********************************************************** - * The current state of the peer. Note that the values of the status are dependent on the underlying peer technology. + * The port of the peer. * * @since ari_1_9_0 *********************************************************/ - public String getPeer_status(); + public void setPort(String val ); -// void setAddress String +// void setTime String /********************************************************** - * The IP address of the peer. + * The last known time the peer was contacted. * * @since ari_1_9_0 *********************************************************/ - public void setAddress(String val ); + public void setTime(String val ); diff --git a/classes/ch/loway/oss/ari4java/generated/PeerStatusChange.java b/classes/ch/loway/oss/ari4java/generated/PeerStatusChange.java index 89a051c7..01232591 100644 --- a/classes/ch/loway/oss/ari4java/generated/PeerStatusChange.java +++ b/classes/ch/loway/oss/ari4java/generated/PeerStatusChange.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Wed Aug 31 18:05:10 CEST 2016 +// Generated on: Sat Feb 04 15:23:08 CET 2017 // ---------------------------------------------------- import java.util.Date; @@ -32,33 +32,33 @@ public interface PeerStatusChange { -// void setPeer Peer +// Endpoint getEndpoint /********************************************************** * * * @since ari_1_9_0 *********************************************************/ - public void setPeer(Peer val ); + public Endpoint getEndpoint(); -// void setEndpoint Endpoint +// void setPeer Peer /********************************************************** * * * @since ari_1_9_0 *********************************************************/ - public void setEndpoint(Endpoint val ); + public void setPeer(Peer val ); -// Endpoint getEndpoint +// void setEndpoint Endpoint /********************************************************** * * * @since ari_1_9_0 *********************************************************/ - public Endpoint getEndpoint(); + public void setEndpoint(Endpoint val ); } diff --git a/classes/ch/loway/oss/ari4java/generated/Playback.java b/classes/ch/loway/oss/ari4java/generated/Playback.java index a56017ee..d8820550 100644 --- a/classes/ch/loway/oss/ari4java/generated/Playback.java +++ b/classes/ch/loway/oss/ari4java/generated/Playback.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Wed Aug 31 18:05:10 CEST 2016 +// Generated on: Sat Feb 04 15:23:09 CET 2017 // ---------------------------------------------------- import java.util.Date; @@ -22,123 +22,123 @@ public interface Playback { -// String getLanguage +// String getTarget_uri /********************************************************** - * For media types that support multiple languages, the language requested for playback. + * URI for the channel or bridge to play the media on * * @since ari_0_0_1 *********************************************************/ - public String getLanguage(); + public String getTarget_uri(); -// void setState String +// String getLanguage /********************************************************** - * Current state of the playback operation. + * For media types that support multiple languages, the language requested for playback. * * @since ari_0_0_1 *********************************************************/ - public void setState(String val ); + public String getLanguage(); -// void setLanguage String +// void setMedia_uri String /********************************************************** - * For media types that support multiple languages, the language requested for playback. + * URI for the media to play back. * * @since ari_0_0_1 *********************************************************/ - public void setLanguage(String val ); + public void setMedia_uri(String val ); -// String getId +// String getNext_media_uri /********************************************************** - * ID for this playback operation + * If a list of URIs is being played, the next media URI to be played back. * - * @since ari_0_0_1 + * @since ari_1_10_0 *********************************************************/ - public String getId(); + public String getNext_media_uri(); -// void setTarget_uri String +// String getMedia_uri /********************************************************** - * URI for the channel or bridge to play the media on + * URI for the media to play back. * * @since ari_0_0_1 *********************************************************/ - public void setTarget_uri(String val ); + public String getMedia_uri(); -// void setMedia_uri String +// void setId String /********************************************************** - * URI for the media to play back. + * ID for this playback operation * * @since ari_0_0_1 *********************************************************/ - public void setMedia_uri(String val ); + public void setId(String val ); -// String getTarget_uri +// String getId /********************************************************** - * URI for the channel or bridge to play the media on + * ID for this playback operation * * @since ari_0_0_1 *********************************************************/ - public String getTarget_uri(); + public String getId(); -// void setId String +// String getState /********************************************************** - * ID for this playback operation + * Current state of the playback operation. * * @since ari_0_0_1 *********************************************************/ - public void setId(String val ); + public String getState(); -// void setNext_media_uri String +// void setState String /********************************************************** - * If a list of URIs is being played, the next media URI to be played back. + * Current state of the playback operation. * - * @since ari_1_10_0 + * @since ari_0_0_1 *********************************************************/ - public void setNext_media_uri(String val ); + public void setState(String val ); -// String getNext_media_uri +// void setTarget_uri String /********************************************************** - * If a list of URIs is being played, the next media URI to be played back. + * URI for the channel or bridge to play the media on * - * @since ari_1_10_0 + * @since ari_0_0_1 *********************************************************/ - public String getNext_media_uri(); + public void setTarget_uri(String val ); -// String getMedia_uri +// void setNext_media_uri String /********************************************************** - * URI for the media to play back. + * If a list of URIs is being played, the next media URI to be played back. * - * @since ari_0_0_1 + * @since ari_1_10_0 *********************************************************/ - public String getMedia_uri(); + public void setNext_media_uri(String val ); -// String getState +// void setLanguage String /********************************************************** - * Current state of the playback operation. + * For media types that support multiple languages, the language requested for playback. * * @since ari_0_0_1 *********************************************************/ - public String getState(); + public void setLanguage(String val ); } diff --git a/classes/ch/loway/oss/ari4java/generated/PlaybackContinuing.java b/classes/ch/loway/oss/ari4java/generated/PlaybackContinuing.java index 3182f2d7..ce0e2614 100644 --- a/classes/ch/loway/oss/ari4java/generated/PlaybackContinuing.java +++ b/classes/ch/loway/oss/ari4java/generated/PlaybackContinuing.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Wed Aug 31 18:05:10 CEST 2016 +// Generated on: Sat Feb 04 15:23:08 CET 2017 // ---------------------------------------------------- import java.util.Date; @@ -22,23 +22,23 @@ public interface PlaybackContinuing { -// void setPlayback Playback +// Playback getPlayback /********************************************************** * Playback control object * * @since ari_1_10_0 *********************************************************/ - public void setPlayback(Playback val ); + public Playback getPlayback(); -// Playback getPlayback +// void setPlayback Playback /********************************************************** * Playback control object * * @since ari_1_10_0 *********************************************************/ - public Playback getPlayback(); + public void setPlayback(Playback val ); } diff --git a/classes/ch/loway/oss/ari4java/generated/PlaybackFinished.java b/classes/ch/loway/oss/ari4java/generated/PlaybackFinished.java index 2407e803..ca4dad80 100644 --- a/classes/ch/loway/oss/ari4java/generated/PlaybackFinished.java +++ b/classes/ch/loway/oss/ari4java/generated/PlaybackFinished.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Wed Aug 31 18:05:10 CEST 2016 +// Generated on: Sat Feb 04 15:23:08 CET 2017 // ---------------------------------------------------- import java.util.Date; @@ -22,23 +22,23 @@ public interface PlaybackFinished { -// void setPlayback Playback +// Playback getPlayback /********************************************************** * Playback control object * * @since ari_0_0_1 *********************************************************/ - public void setPlayback(Playback val ); + public Playback getPlayback(); -// Playback getPlayback +// void setPlayback Playback /********************************************************** * Playback control object * * @since ari_0_0_1 *********************************************************/ - public Playback getPlayback(); + public void setPlayback(Playback val ); } diff --git a/classes/ch/loway/oss/ari4java/generated/PlaybackStarted.java b/classes/ch/loway/oss/ari4java/generated/PlaybackStarted.java index 121f9f6d..115c9975 100644 --- a/classes/ch/loway/oss/ari4java/generated/PlaybackStarted.java +++ b/classes/ch/loway/oss/ari4java/generated/PlaybackStarted.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Wed Aug 31 18:05:10 CEST 2016 +// Generated on: Sat Feb 04 15:23:08 CET 2017 // ---------------------------------------------------- import java.util.Date; @@ -22,23 +22,23 @@ public interface PlaybackStarted { -// void setPlayback Playback +// Playback getPlayback /********************************************************** * Playback control object * * @since ari_0_0_1 *********************************************************/ - public void setPlayback(Playback val ); + public Playback getPlayback(); -// Playback getPlayback +// void setPlayback Playback /********************************************************** * Playback control object * * @since ari_0_0_1 *********************************************************/ - public Playback getPlayback(); + public void setPlayback(Playback val ); } diff --git a/classes/ch/loway/oss/ari4java/generated/RecordingFailed.java b/classes/ch/loway/oss/ari4java/generated/RecordingFailed.java index 47c35c78..b2af191a 100644 --- a/classes/ch/loway/oss/ari4java/generated/RecordingFailed.java +++ b/classes/ch/loway/oss/ari4java/generated/RecordingFailed.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Wed Aug 31 18:05:10 CEST 2016 +// Generated on: Sat Feb 04 15:23:08 CET 2017 // ---------------------------------------------------- import java.util.Date; @@ -22,23 +22,23 @@ public interface RecordingFailed { -// void setRecording LiveRecording +// LiveRecording getRecording /********************************************************** * Recording control object * * @since ari_0_0_1 *********************************************************/ - public void setRecording(LiveRecording val ); + public LiveRecording getRecording(); -// LiveRecording getRecording +// void setRecording LiveRecording /********************************************************** * Recording control object * * @since ari_0_0_1 *********************************************************/ - public LiveRecording getRecording(); + public void setRecording(LiveRecording val ); } diff --git a/classes/ch/loway/oss/ari4java/generated/RecordingFinished.java b/classes/ch/loway/oss/ari4java/generated/RecordingFinished.java index e42fb06e..3f8a2268 100644 --- a/classes/ch/loway/oss/ari4java/generated/RecordingFinished.java +++ b/classes/ch/loway/oss/ari4java/generated/RecordingFinished.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Wed Aug 31 18:05:10 CEST 2016 +// Generated on: Sat Feb 04 15:23:08 CET 2017 // ---------------------------------------------------- import java.util.Date; @@ -22,23 +22,23 @@ public interface RecordingFinished { -// void setRecording LiveRecording +// LiveRecording getRecording /********************************************************** * Recording control object * * @since ari_0_0_1 *********************************************************/ - public void setRecording(LiveRecording val ); + public LiveRecording getRecording(); -// LiveRecording getRecording +// void setRecording LiveRecording /********************************************************** * Recording control object * * @since ari_0_0_1 *********************************************************/ - public LiveRecording getRecording(); + public void setRecording(LiveRecording val ); } diff --git a/classes/ch/loway/oss/ari4java/generated/RecordingStarted.java b/classes/ch/loway/oss/ari4java/generated/RecordingStarted.java index e87bdc17..0b8f717d 100644 --- a/classes/ch/loway/oss/ari4java/generated/RecordingStarted.java +++ b/classes/ch/loway/oss/ari4java/generated/RecordingStarted.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Wed Aug 31 18:05:10 CEST 2016 +// Generated on: Sat Feb 04 15:23:09 CET 2017 // ---------------------------------------------------- import java.util.Date; @@ -22,23 +22,23 @@ public interface RecordingStarted { -// void setRecording LiveRecording +// LiveRecording getRecording /********************************************************** * Recording control object * * @since ari_0_0_1 *********************************************************/ - public void setRecording(LiveRecording val ); + public LiveRecording getRecording(); -// LiveRecording getRecording +// void setRecording LiveRecording /********************************************************** * Recording control object * * @since ari_0_0_1 *********************************************************/ - public LiveRecording getRecording(); + public void setRecording(LiveRecording val ); } diff --git a/classes/ch/loway/oss/ari4java/generated/SetId.java b/classes/ch/loway/oss/ari4java/generated/SetId.java index 7c677487..18e9f08f 100644 --- a/classes/ch/loway/oss/ari4java/generated/SetId.java +++ b/classes/ch/loway/oss/ari4java/generated/SetId.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Wed Aug 31 18:05:10 CEST 2016 +// Generated on: Sat Feb 04 15:23:08 CET 2017 // ---------------------------------------------------- import java.util.Date; @@ -22,43 +22,43 @@ public interface SetId { -// void setUser String +// String getUser /********************************************************** * Effective user id. * * @since ari_0_0_1 *********************************************************/ - public void setUser(String val ); + public String getUser(); -// void setGroup String +// void setUser String /********************************************************** - * Effective group id. + * Effective user id. * * @since ari_0_0_1 *********************************************************/ - public void setGroup(String val ); + public void setUser(String val ); -// String getUser +// String getGroup /********************************************************** - * Effective user id. + * Effective group id. * * @since ari_0_0_1 *********************************************************/ - public String getUser(); + public String getGroup(); -// String getGroup +// void setGroup String /********************************************************** * Effective group id. * * @since ari_0_0_1 *********************************************************/ - public String getGroup(); + public void setGroup(String val ); } diff --git a/classes/ch/loway/oss/ari4java/generated/Sound.java b/classes/ch/loway/oss/ari4java/generated/Sound.java index f31b301e..0d0d2a27 100644 --- a/classes/ch/loway/oss/ari4java/generated/Sound.java +++ b/classes/ch/loway/oss/ari4java/generated/Sound.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Wed Aug 31 18:05:10 CEST 2016 +// Generated on: Sat Feb 04 15:23:08 CET 2017 // ---------------------------------------------------- import java.util.Date; @@ -32,43 +32,43 @@ public interface Sound { -// String getId +// String getText /********************************************************** - * Sound's identifier. + * Text description of the sound, usually the words spoken. * * @since ari_0_0_1 *********************************************************/ - public String getId(); + public String getText(); -// void setId String +// void setFormats List /********************************************************** - * Sound's identifier. + * The formats and languages in which this sound is available. * * @since ari_0_0_1 *********************************************************/ - public void setId(String val ); + public void setFormats(List val ); -// String getText +// void setId String /********************************************************** - * Text description of the sound, usually the words spoken. + * Sound's identifier. * * @since ari_0_0_1 *********************************************************/ - public String getText(); + public void setId(String val ); -// void setFormats List +// String getId /********************************************************** - * The formats and languages in which this sound is available. + * Sound's identifier. * * @since ari_0_0_1 *********************************************************/ - public void setFormats(List val ); + public String getId(); diff --git a/classes/ch/loway/oss/ari4java/generated/StasisEnd.java b/classes/ch/loway/oss/ari4java/generated/StasisEnd.java index 8fcd9b29..76bf9e6d 100644 --- a/classes/ch/loway/oss/ari4java/generated/StasisEnd.java +++ b/classes/ch/loway/oss/ari4java/generated/StasisEnd.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Wed Aug 31 18:05:10 CEST 2016 +// Generated on: Sat Feb 04 15:23:08 CET 2017 // ---------------------------------------------------- import java.util.Date; diff --git a/classes/ch/loway/oss/ari4java/generated/StasisStart.java b/classes/ch/loway/oss/ari4java/generated/StasisStart.java index 5e9f9e07..76dbef44 100644 --- a/classes/ch/loway/oss/ari4java/generated/StasisStart.java +++ b/classes/ch/loway/oss/ari4java/generated/StasisStart.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Wed Aug 31 18:05:10 CEST 2016 +// Generated on: Sat Feb 04 15:23:09 CET 2017 // ---------------------------------------------------- import java.util.Date; @@ -22,16 +22,6 @@ public interface StasisStart { -// void setReplace_channel Channel -/********************************************************** - * - * - * @since ari_1_5_0 - *********************************************************/ - public void setReplace_channel(Channel val ); - - - // Channel getReplace_channel /********************************************************** * @@ -62,6 +52,16 @@ public interface StasisStart { +// void setChannel Channel +/********************************************************** + * + * + * @since ari_0_0_1 + *********************************************************/ + public void setChannel(Channel val ); + + + // List getArgs /********************************************************** * Arguments to the application @@ -72,13 +72,13 @@ public interface StasisStart { -// void setChannel Channel +// void setReplace_channel Channel /********************************************************** * * - * @since ari_0_0_1 + * @since ari_1_5_0 *********************************************************/ - public void setChannel(Channel val ); + public void setReplace_channel(Channel val ); } diff --git a/classes/ch/loway/oss/ari4java/generated/StatusInfo.java b/classes/ch/loway/oss/ari4java/generated/StatusInfo.java index 79a1918f..b990c97f 100644 --- a/classes/ch/loway/oss/ari4java/generated/StatusInfo.java +++ b/classes/ch/loway/oss/ari4java/generated/StatusInfo.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Wed Aug 31 18:05:10 CEST 2016 +// Generated on: Sat Feb 04 15:23:09 CET 2017 // ---------------------------------------------------- import java.util.Date; @@ -22,43 +22,43 @@ public interface StatusInfo { -// void setLast_reload_time Date +// void setStartup_time Date /********************************************************** - * Time when Asterisk was last reloaded. + * Time when Asterisk was started. * * @since ari_0_0_1 *********************************************************/ - public void setLast_reload_time(Date val ); + public void setStartup_time(Date val ); -// Date getLast_reload_time +// Date getStartup_time /********************************************************** - * Time when Asterisk was last reloaded. + * Time when Asterisk was started. * * @since ari_0_0_1 *********************************************************/ - public Date getLast_reload_time(); + public Date getStartup_time(); -// Date getStartup_time +// Date getLast_reload_time /********************************************************** - * Time when Asterisk was started. + * Time when Asterisk was last reloaded. * * @since ari_0_0_1 *********************************************************/ - public Date getStartup_time(); + public Date getLast_reload_time(); -// void setStartup_time Date +// void setLast_reload_time Date /********************************************************** - * Time when Asterisk was started. + * Time when Asterisk was last reloaded. * * @since ari_0_0_1 *********************************************************/ - public void setStartup_time(Date val ); + public void setLast_reload_time(Date val ); } diff --git a/classes/ch/loway/oss/ari4java/generated/StoredRecording.java b/classes/ch/loway/oss/ari4java/generated/StoredRecording.java index cb8fe040..2d27b9cc 100644 --- a/classes/ch/loway/oss/ari4java/generated/StoredRecording.java +++ b/classes/ch/loway/oss/ari4java/generated/StoredRecording.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Wed Aug 31 18:05:10 CEST 2016 +// Generated on: Sat Feb 04 15:23:09 CET 2017 // ---------------------------------------------------- import java.util.Date; @@ -22,43 +22,43 @@ public interface StoredRecording { -// String getFormat +// String getName /********************************************************** * * * @since ari_0_0_1 *********************************************************/ - public String getFormat(); + public String getName(); -// void setName String +// String getFormat /********************************************************** * * * @since ari_0_0_1 *********************************************************/ - public void setName(String val ); + public String getFormat(); -// String getName +// void setFormat String /********************************************************** * * * @since ari_0_0_1 *********************************************************/ - public String getName(); + public void setFormat(String val ); -// void setFormat String +// void setName String /********************************************************** * * * @since ari_0_0_1 *********************************************************/ - public void setFormat(String val ); + public void setName(String val ); } diff --git a/classes/ch/loway/oss/ari4java/generated/SystemInfo.java b/classes/ch/loway/oss/ari4java/generated/SystemInfo.java index dfa47553..3091095c 100644 --- a/classes/ch/loway/oss/ari4java/generated/SystemInfo.java +++ b/classes/ch/loway/oss/ari4java/generated/SystemInfo.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Wed Aug 31 18:05:10 CEST 2016 +// Generated on: Sat Feb 04 15:23:08 CET 2017 // ---------------------------------------------------- import java.util.Date; @@ -22,43 +22,43 @@ public interface SystemInfo { -// String getEntity_id +// void setEntity_id String /********************************************************** * * * @since ari_0_0_1 *********************************************************/ - public String getEntity_id(); + public void setEntity_id(String val ); -// void setVersion String +// String getVersion /********************************************************** * Asterisk version. * * @since ari_0_0_1 *********************************************************/ - public void setVersion(String val ); + public String getVersion(); -// void setEntity_id String +// void setVersion String /********************************************************** - * + * Asterisk version. * * @since ari_0_0_1 *********************************************************/ - public void setEntity_id(String val ); + public void setVersion(String val ); -// String getVersion +// String getEntity_id /********************************************************** - * Asterisk version. + * * * @since ari_0_0_1 *********************************************************/ - public String getVersion(); + public String getEntity_id(); } diff --git a/classes/ch/loway/oss/ari4java/generated/TextMessage.java b/classes/ch/loway/oss/ari4java/generated/TextMessage.java index ae204698..558b8920 100644 --- a/classes/ch/loway/oss/ari4java/generated/TextMessage.java +++ b/classes/ch/loway/oss/ari4java/generated/TextMessage.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Wed Aug 31 18:05:10 CEST 2016 +// Generated on: Sat Feb 04 15:23:08 CET 2017 // ---------------------------------------------------- import java.util.Date; @@ -22,53 +22,53 @@ public interface TextMessage { -// void setFrom String +// List getVariables /********************************************************** - * A technology specific URI specifying the source of the message. For sip and pjsip technologies, any SIP URI can be specified. For xmpp, the URI must correspond to the client connection being used to send the message. + * Technology specific key/value pairs associated with the message. * * @since ari_1_5_0 *********************************************************/ - public void setFrom(String val ); + public List getVariables(); -// String getBody +// void setBody String /********************************************************** * The text of the message. * * @since ari_1_5_0 *********************************************************/ - public String getBody(); + public void setBody(String val ); -// void setTo String +// String getBody /********************************************************** - * A technology specific URI specifying the destination of the message. Valid technologies include sip, pjsip, and xmp. The destination of a message should be an endpoint. + * The text of the message. * * @since ari_1_5_0 *********************************************************/ - public void setTo(String val ); + public String getBody(); -// void setBody String +// void setTo String /********************************************************** - * The text of the message. + * A technology specific URI specifying the destination of the message. Valid technologies include sip, pjsip, and xmp. The destination of a message should be an endpoint. * * @since ari_1_5_0 *********************************************************/ - public void setBody(String val ); + public void setTo(String val ); -// String getFrom +// void setVariables List /********************************************************** - * A technology specific URI specifying the source of the message. For sip and pjsip technologies, any SIP URI can be specified. For xmpp, the URI must correspond to the client connection being used to send the message. + * Technology specific key/value pairs associated with the message. * * @since ari_1_5_0 *********************************************************/ - public String getFrom(); + public void setVariables(List val ); @@ -82,23 +82,23 @@ public interface TextMessage { -// List getVariables +// void setFrom String /********************************************************** - * Technology specific key/value pairs associated with the message. + * A technology specific URI specifying the source of the message. For sip and pjsip technologies, any SIP URI can be specified. For xmpp, the URI must correspond to the client connection being used to send the message. * * @since ari_1_5_0 *********************************************************/ - public List getVariables(); + public void setFrom(String val ); -// void setVariables List +// String getFrom /********************************************************** - * Technology specific key/value pairs associated with the message. + * A technology specific URI specifying the source of the message. For sip and pjsip technologies, any SIP URI can be specified. For xmpp, the URI must correspond to the client connection being used to send the message. * * @since ari_1_5_0 *********************************************************/ - public void setVariables(List val ); + public String getFrom(); } diff --git a/classes/ch/loway/oss/ari4java/generated/TextMessageReceived.java b/classes/ch/loway/oss/ari4java/generated/TextMessageReceived.java index d417486a..eebf0434 100644 --- a/classes/ch/loway/oss/ari4java/generated/TextMessageReceived.java +++ b/classes/ch/loway/oss/ari4java/generated/TextMessageReceived.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Wed Aug 31 18:05:10 CEST 2016 +// Generated on: Sat Feb 04 15:23:09 CET 2017 // ---------------------------------------------------- import java.util.Date; @@ -22,43 +22,43 @@ public interface TextMessageReceived { -// TextMessage getMessage +// Endpoint getEndpoint /********************************************************** * * * @since ari_1_5_0 *********************************************************/ - public TextMessage getMessage(); + public Endpoint getEndpoint(); -// void setEndpoint Endpoint +// TextMessage getMessage /********************************************************** * * * @since ari_1_5_0 *********************************************************/ - public void setEndpoint(Endpoint val ); + public TextMessage getMessage(); -// void setMessage TextMessage +// void setEndpoint Endpoint /********************************************************** * * * @since ari_1_5_0 *********************************************************/ - public void setMessage(TextMessage val ); + public void setEndpoint(Endpoint val ); -// Endpoint getEndpoint +// void setMessage TextMessage /********************************************************** * * * @since ari_1_5_0 *********************************************************/ - public Endpoint getEndpoint(); + public void setMessage(TextMessage val ); } diff --git a/classes/ch/loway/oss/ari4java/generated/TextMessageVariable.java b/classes/ch/loway/oss/ari4java/generated/TextMessageVariable.java index 04e142c7..06bd3501 100644 --- a/classes/ch/loway/oss/ari4java/generated/TextMessageVariable.java +++ b/classes/ch/loway/oss/ari4java/generated/TextMessageVariable.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Wed Aug 31 18:05:10 CEST 2016 +// Generated on: Sat Feb 04 15:23:09 CET 2017 // ---------------------------------------------------- import java.util.Date; @@ -32,23 +32,23 @@ public interface TextMessageVariable { -// String getKey +// void setKey String /********************************************************** * A unique key identifying the variable. * * @since ari_1_5_0 *********************************************************/ - public String getKey(); + public void setKey(String val ); -// void setKey String +// String getKey /********************************************************** * A unique key identifying the variable. * * @since ari_1_5_0 *********************************************************/ - public void setKey(String val ); + public String getKey(); diff --git a/classes/ch/loway/oss/ari4java/generated/Variable.java b/classes/ch/loway/oss/ari4java/generated/Variable.java index bcd18412..aca298c7 100644 --- a/classes/ch/loway/oss/ari4java/generated/Variable.java +++ b/classes/ch/loway/oss/ari4java/generated/Variable.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Wed Aug 31 18:05:10 CEST 2016 +// Generated on: Sat Feb 04 15:23:08 CET 2017 // ---------------------------------------------------- import java.util.Date; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_0_0_1/AriBuilder_impl_ari_0_0_1.java b/classes/ch/loway/oss/ari4java/generated/ari_0_0_1/AriBuilder_impl_ari_0_0_1.java index 2ad4035b..a623f5cf 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_0_0_1/AriBuilder_impl_ari_0_0_1.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_0_0_1/AriBuilder_impl_ari_0_0_1.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Wed Aug 31 18:05:11 CEST 2016 +// Generated on: Sat Feb 04 15:23:09 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.ari_0_0_1.models.*; @@ -13,160 +13,152 @@ public class AriBuilder_impl_ari_0_0_1 implements AriBuilder { -public ActionRecordings actionRecordings() { - return new ActionRecordings_impl_ari_0_0_1(); - }; - -public ActionEndpoints actionEndpoints() { - return new ActionEndpoints_impl_ari_0_0_1(); - }; - -public ActionAsterisk actionAsterisk() { - return new ActionAsterisk_impl_ari_0_0_1(); +public ActionChannels actionChannels() { + return new ActionChannels_impl_ari_0_0_1(); }; public ActionSounds actionSounds() { return new ActionSounds_impl_ari_0_0_1(); }; -public ActionBridges actionBridges() { - return new ActionBridges_impl_ari_0_0_1(); +public ActionDeviceStates actionDeviceStates() { + return new ActionDeviceStates_impl_ari_0_0_1(); }; -public ActionChannels actionChannels() { - return new ActionChannels_impl_ari_0_0_1(); +public ActionBridges actionBridges() { + return new ActionBridges_impl_ari_0_0_1(); }; public ActionEvents actionEvents() { return new ActionEvents_impl_ari_0_0_1(); }; -public ActionApplications actionApplications() { - return new ActionApplications_impl_ari_0_0_1(); +public ActionAsterisk actionAsterisk() { + return new ActionAsterisk_impl_ari_0_0_1(); }; -public ActionDeviceStates actionDeviceStates() { - return new ActionDeviceStates_impl_ari_0_0_1(); +public ActionEndpoints actionEndpoints() { + return new ActionEndpoints_impl_ari_0_0_1(); }; public ActionPlaybacks actionPlaybacks() { return new ActionPlaybacks_impl_ari_0_0_1(); }; -public ChannelDtmfReceived channelDtmfReceived() { - return new ChannelDtmfReceived_impl_ari_0_0_1(); +public ActionRecordings actionRecordings() { + return new ActionRecordings_impl_ari_0_0_1(); }; -public Event event() { - return new Event_impl_ari_0_0_1(); +public ActionApplications actionApplications() { + return new ActionApplications_impl_ari_0_0_1(); }; public StasisEnd stasisEnd() { return new StasisEnd_impl_ari_0_0_1(); }; -public ChannelCreated channelCreated() { - return new ChannelCreated_impl_ari_0_0_1(); - }; - -public SetId setId() { - return new SetId_impl_ari_0_0_1(); - }; - -public BuildInfo buildInfo() { - return new BuildInfo_impl_ari_0_0_1(); - }; - public MissingParams missingParams() { return new MissingParams_impl_ari_0_0_1(); }; -public ChannelEnteredBridge channelEnteredBridge() { - return new ChannelEnteredBridge_impl_ari_0_0_1(); +public RecordingStarted recordingStarted() { + return new RecordingStarted_impl_ari_0_0_1(); }; -public Application application() { - return new Application_impl_ari_0_0_1(); +public DeviceState deviceState() { + return new DeviceState_impl_ari_0_0_1(); }; -public StoredRecording storedRecording() { - return new StoredRecording_impl_ari_0_0_1(); +public RecordingFailed recordingFailed() { + return new RecordingFailed_impl_ari_0_0_1(); }; -public BridgeMerged bridgeMerged() { - return new BridgeMerged_impl_ari_0_0_1(); +public LiveRecording liveRecording() { + return new LiveRecording_impl_ari_0_0_1(); }; -public Bridge bridge() { - return new Bridge_impl_ari_0_0_1(); +public Variable variable() { + return new Variable_impl_ari_0_0_1(); }; -public SystemInfo systemInfo() { - return new SystemInfo_impl_ari_0_0_1(); +public Sound sound() { + return new Sound_impl_ari_0_0_1(); }; -public Playback playback() { - return new Playback_impl_ari_0_0_1(); +public BridgeDestroyed bridgeDestroyed() { + return new BridgeDestroyed_impl_ari_0_0_1(); }; -public StatusInfo statusInfo() { - return new StatusInfo_impl_ari_0_0_1(); +public ChannelLeftBridge channelLeftBridge() { + return new ChannelLeftBridge_impl_ari_0_0_1(); }; -public EndpointStateChange endpointStateChange() { - return new EndpointStateChange_impl_ari_0_0_1(); +public ChannelDtmfReceived channelDtmfReceived() { + return new ChannelDtmfReceived_impl_ari_0_0_1(); }; -public Variable variable() { - return new Variable_impl_ari_0_0_1(); +public PlaybackFinished playbackFinished() { + return new PlaybackFinished_impl_ari_0_0_1(); }; -public ChannelLeftBridge channelLeftBridge() { - return new ChannelLeftBridge_impl_ari_0_0_1(); +public ChannelDestroyed channelDestroyed() { + return new ChannelDestroyed_impl_ari_0_0_1(); }; -public Dialed dialed() { - return new Dialed_impl_ari_0_0_1(); +public ChannelVarset channelVarset() { + return new ChannelVarset_impl_ari_0_0_1(); }; -public RecordingFailed recordingFailed() { - return new RecordingFailed_impl_ari_0_0_1(); +public ChannelUserevent channelUserevent() { + return new ChannelUserevent_impl_ari_0_0_1(); }; -public PlaybackFinished playbackFinished() { - return new PlaybackFinished_impl_ari_0_0_1(); +public Endpoint endpoint() { + return new Endpoint_impl_ari_0_0_1(); }; -public ChannelHangupRequest channelHangupRequest() { - return new ChannelHangupRequest_impl_ari_0_0_1(); +public PlaybackStarted playbackStarted() { + return new PlaybackStarted_impl_ari_0_0_1(); + }; + +public DeviceStateChanged deviceStateChanged() { + return new DeviceStateChanged_impl_ari_0_0_1(); }; public BridgeCreated bridgeCreated() { return new BridgeCreated_impl_ari_0_0_1(); }; -public CallerID callerID() { - return new CallerID_impl_ari_0_0_1(); +public Channel channel() { + return new Channel_impl_ari_0_0_1(); }; public FormatLangPair formatLangPair() { return new FormatLangPair_impl_ari_0_0_1(); }; -public ChannelVarset channelVarset() { - return new ChannelVarset_impl_ari_0_0_1(); +public CallerID callerID() { + return new CallerID_impl_ari_0_0_1(); }; -public ChannelStateChange channelStateChange() { - return new ChannelStateChange_impl_ari_0_0_1(); +public Dialed dialed() { + return new Dialed_impl_ari_0_0_1(); }; public DialplanCEP dialplanCEP() { return new DialplanCEP_impl_ari_0_0_1(); }; -public PlaybackStarted playbackStarted() { - return new PlaybackStarted_impl_ari_0_0_1(); +public Playback playback() { + return new Playback_impl_ari_0_0_1(); + }; + +public SetId setId() { + return new SetId_impl_ari_0_0_1(); + }; + +public Event event() { + return new Event_impl_ari_0_0_1(); }; public ConfigInfo configInfo() { @@ -177,68 +169,76 @@ public ChannelDialplan channelDialplan() { return new ChannelDialplan_impl_ari_0_0_1(); }; -public RecordingStarted recordingStarted() { - return new RecordingStarted_impl_ari_0_0_1(); - }; - -public Endpoint endpoint() { - return new Endpoint_impl_ari_0_0_1(); +public ChannelCallerId channelCallerId() { + return new ChannelCallerId_impl_ari_0_0_1(); }; -public Channel channel() { - return new Channel_impl_ari_0_0_1(); +public StoredRecording storedRecording() { + return new StoredRecording_impl_ari_0_0_1(); }; -public RecordingFinished recordingFinished() { - return new RecordingFinished_impl_ari_0_0_1(); +public Application application() { + return new Application_impl_ari_0_0_1(); }; -public AsteriskInfo asteriskInfo() { - return new AsteriskInfo_impl_ari_0_0_1(); +public StatusInfo statusInfo() { + return new StatusInfo_impl_ari_0_0_1(); }; -public ChannelDestroyed channelDestroyed() { - return new ChannelDestroyed_impl_ari_0_0_1(); +public BridgeMerged bridgeMerged() { + return new BridgeMerged_impl_ari_0_0_1(); }; -public DeviceStateChanged deviceStateChanged() { - return new DeviceStateChanged_impl_ari_0_0_1(); +public ChannelCreated channelCreated() { + return new ChannelCreated_impl_ari_0_0_1(); }; -public DeviceState deviceState() { - return new DeviceState_impl_ari_0_0_1(); +public ChannelHangupRequest channelHangupRequest() { + return new ChannelHangupRequest_impl_ari_0_0_1(); }; public StasisStart stasisStart() { return new StasisStart_impl_ari_0_0_1(); }; -public Sound sound() { - return new Sound_impl_ari_0_0_1(); +public AsteriskInfo asteriskInfo() { + return new AsteriskInfo_impl_ari_0_0_1(); }; -public BridgeDestroyed bridgeDestroyed() { - return new BridgeDestroyed_impl_ari_0_0_1(); +public Bridge bridge() { + return new Bridge_impl_ari_0_0_1(); }; -public LiveRecording liveRecording() { - return new LiveRecording_impl_ari_0_0_1(); +public ChannelStateChange channelStateChange() { + return new ChannelStateChange_impl_ari_0_0_1(); }; public Message message() { return new Message_impl_ari_0_0_1(); }; -public ChannelCallerId channelCallerId() { - return new ChannelCallerId_impl_ari_0_0_1(); - }; - public ApplicationReplaced applicationReplaced() { return new ApplicationReplaced_impl_ari_0_0_1(); }; -public ChannelUserevent channelUserevent() { - return new ChannelUserevent_impl_ari_0_0_1(); +public SystemInfo systemInfo() { + return new SystemInfo_impl_ari_0_0_1(); + }; + +public EndpointStateChange endpointStateChange() { + return new EndpointStateChange_impl_ari_0_0_1(); + }; + +public RecordingFinished recordingFinished() { + return new RecordingFinished_impl_ari_0_0_1(); + }; + +public ChannelEnteredBridge channelEnteredBridge() { + return new ChannelEnteredBridge_impl_ari_0_0_1(); + }; + +public BuildInfo buildInfo() { + return new BuildInfo_impl_ari_0_0_1(); }; public BridgeAttendedTransfer bridgeAttendedTransfer() { @@ -249,6 +249,10 @@ public BridgeBlindTransfer bridgeBlindTransfer() { throw new UnsupportedOperationException(); }; +public BridgeVideoSourceChanged bridgeVideoSourceChanged() { + throw new UnsupportedOperationException(); + }; + public ChannelConnectedLine channelConnectedLine() { throw new UnsupportedOperationException(); }; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_0_0_1/ClassTranslator_impl_ari_0_0_1.java b/classes/ch/loway/oss/ari4java/generated/ari_0_0_1/ClassTranslator_impl_ari_0_0_1.java index 2150d998..9f8130ba 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_0_0_1/ClassTranslator_impl_ari_0_0_1.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_0_0_1/ClassTranslator_impl_ari_0_0_1.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Wed Aug 31 18:05:11 CEST 2016 +// Generated on: Sat Feb 04 15:23:09 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.ARI; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_0_0_1/actions/ActionApplications_impl_ari_0_0_1.java b/classes/ch/loway/oss/ari4java/generated/ari_0_0_1/actions/ActionApplications_impl_ari_0_0_1.java index 640e00d3..92ce6b82 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_0_0_1/actions/ActionApplications_impl_ari_0_0_1.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_0_0_1/actions/ActionApplications_impl_ari_0_0_1.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Wed Aug 31 18:05:11 CEST 2016 +// Generated on: Sat Feb 04 15:23:09 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_0_0_1/actions/ActionAsterisk_impl_ari_0_0_1.java b/classes/ch/loway/oss/ari4java/generated/ari_0_0_1/actions/ActionAsterisk_impl_ari_0_0_1.java index ccf4539c..162d7e34 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_0_0_1/actions/ActionAsterisk_impl_ari_0_0_1.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_0_0_1/actions/ActionAsterisk_impl_ari_0_0_1.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Wed Aug 31 18:05:11 CEST 2016 +// Generated on: Sat Feb 04 15:23:09 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; @@ -104,22 +104,20 @@ public void setGlobalVar(String variable, String value, AriCallback callba } /********************************************************** - * Reload an Asterisk module. * * * @since ari_1_8_0 *********************************************************/ -public void reloadModule(String moduleName) throws RestException{ +public void updateObject(String configClass, String objectType, String id, Map fields, AriCallback> callback){ throw new UnsupportedOperationException("Method availble from ..."); }; /********************************************************** - * Create or update a dynamic configuration object. * * * @since ari_1_8_0 *********************************************************/ -public List updateObject(String configClass, String objectType, String id, Map fields) throws RestException{ +public void listModules(AriCallback> callback){ throw new UnsupportedOperationException("Method availble from ..."); }; @@ -128,7 +126,7 @@ public List updateObject(String configClass, String objectType, Str * * @since ari_1_8_0 *********************************************************/ -public void deleteObject(String configClass, String objectType, String id, AriCallback callback){ +public void getModule(String moduleName, AriCallback callback){ throw new UnsupportedOperationException("Method availble from ..."); }; @@ -137,16 +135,17 @@ public void deleteObject(String configClass, String objectType, String id, AriCa * * @since ari_1_8_0 *********************************************************/ -public void reloadModule(String moduleName, AriCallback callback){ +public void unloadModule(String moduleName, AriCallback callback){ throw new UnsupportedOperationException("Method availble from ..."); }; /********************************************************** + * Rotates a log channel. * * * @since ari_1_9_0 *********************************************************/ -public void addLog(String logChannelName, String configuration, AriCallback callback){ +public void rotateLog(String logChannelName) throws RestException{ throw new UnsupportedOperationException("Method availble from ..."); }; @@ -155,46 +154,47 @@ public void addLog(String logChannelName, String configuration, AriCallback callback){ +public void deleteObject(String configClass, String objectType, String id, AriCallback callback){ throw new UnsupportedOperationException("Method availble from ..."); }; /********************************************************** - * List Asterisk modules. + * Deletes a log channel. * * - * @since ari_1_8_0 + * @since ari_1_9_0 *********************************************************/ -public List listModules() throws RestException{ +public void deleteLog(String logChannelName) throws RestException{ throw new UnsupportedOperationException("Method availble from ..."); }; /********************************************************** - * Gets Asterisk log channel information. + * Load an Asterisk module. * * - * @since ari_1_9_0 + * @since ari_1_8_0 *********************************************************/ -public List listLogChannels() throws RestException{ +public void loadModule(String moduleName) throws RestException{ throw new UnsupportedOperationException("Method availble from ..."); }; /********************************************************** - * Get Asterisk module information. + * Unload an Asterisk module. * * * @since ari_1_8_0 *********************************************************/ -public Module getModule(String moduleName) throws RestException{ +public void unloadModule(String moduleName) throws RestException{ throw new UnsupportedOperationException("Method availble from ..."); }; /********************************************************** + * Create or update a dynamic configuration object. * * - * @since ari_1_9_0 + * @since ari_1_8_0 *********************************************************/ -public void rotateLog(String logChannelName, AriCallback callback){ +public List updateObject(String configClass, String objectType, String id, Map fields) throws RestException{ throw new UnsupportedOperationException("Method availble from ..."); }; @@ -209,22 +209,21 @@ public List getObject(String configClass, String objectType, String }; /********************************************************** - * Load an Asterisk module. + * Get Asterisk module information. * * * @since ari_1_8_0 *********************************************************/ -public void loadModule(String moduleName) throws RestException{ +public Module getModule(String moduleName) throws RestException{ throw new UnsupportedOperationException("Method availble from ..."); }; /********************************************************** - * Unload an Asterisk module. * * - * @since ari_1_8_0 + * @since ari_1_9_0 *********************************************************/ -public void unloadModule(String moduleName) throws RestException{ +public void rotateLog(String logChannelName, AriCallback callback){ throw new UnsupportedOperationException("Method availble from ..."); }; @@ -233,45 +232,44 @@ public void unloadModule(String moduleName) throws RestException{ * * @since ari_1_8_0 *********************************************************/ -public void getModule(String moduleName, AriCallback callback){ +public void loadModule(String moduleName, AriCallback callback){ throw new UnsupportedOperationException("Method availble from ..."); }; /********************************************************** * * - * @since ari_1_8_0 + * @since ari_1_9_0 *********************************************************/ -public void updateObject(String configClass, String objectType, String id, Map fields, AriCallback> callback){ +public void addLog(String logChannelName, String configuration, AriCallback callback){ throw new UnsupportedOperationException("Method availble from ..."); }; /********************************************************** - * Delete a dynamic configuration object. * * * @since ari_1_8_0 *********************************************************/ -public void deleteObject(String configClass, String objectType, String id) throws RestException{ +public void reloadModule(String moduleName, AriCallback callback){ throw new UnsupportedOperationException("Method availble from ..."); }; /********************************************************** - * Rotates a log channel. + * Gets Asterisk log channel information. * * * @since ari_1_9_0 *********************************************************/ -public void rotateLog(String logChannelName) throws RestException{ +public List listLogChannels() throws RestException{ throw new UnsupportedOperationException("Method availble from ..."); }; /********************************************************** * * - * @since ari_1_9_0 + * @since ari_1_8_0 *********************************************************/ -public void listLogChannels(AriCallback> callback){ +public void getObject(String configClass, String objectType, String id, AriCallback> callback){ throw new UnsupportedOperationException("Method availble from ..."); }; @@ -288,46 +286,48 @@ public void addLog(String logChannelName, String configuration) throws RestExcep /********************************************************** * * - * @since ari_1_8_0 + * @since ari_1_9_0 *********************************************************/ -public void listModules(AriCallback> callback){ +public void listLogChannels(AriCallback> callback){ throw new UnsupportedOperationException("Method availble from ..."); }; /********************************************************** - * Deletes a log channel. + * List Asterisk modules. * * - * @since ari_1_9_0 + * @since ari_1_8_0 *********************************************************/ -public void deleteLog(String logChannelName) throws RestException{ +public List listModules() throws RestException{ throw new UnsupportedOperationException("Method availble from ..."); }; /********************************************************** + * Reload an Asterisk module. * * - * @since ari_1_9_0 + * @since ari_1_8_0 *********************************************************/ -public void deleteLog(String logChannelName, AriCallback callback){ +public void reloadModule(String moduleName) throws RestException{ throw new UnsupportedOperationException("Method availble from ..."); }; /********************************************************** * * - * @since ari_1_8_0 + * @since ari_1_9_0 *********************************************************/ -public void loadModule(String moduleName, AriCallback callback){ +public void deleteLog(String logChannelName, AriCallback callback){ throw new UnsupportedOperationException("Method availble from ..."); }; /********************************************************** + * Delete a dynamic configuration object. * * * @since ari_1_8_0 *********************************************************/ -public void getObject(String configClass, String objectType, String id, AriCallback> callback){ +public void deleteObject(String configClass, String objectType, String id) throws RestException{ throw new UnsupportedOperationException("Method availble from ..."); }; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_0_0_1/actions/ActionBridges_impl_ari_0_0_1.java b/classes/ch/loway/oss/ari4java/generated/ari_0_0_1/actions/ActionBridges_impl_ari_0_0_1.java index e2595981..5b608a34 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_0_0_1/actions/ActionBridges_impl_ari_0_0_1.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_0_0_1/actions/ActionBridges_impl_ari_0_0_1.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Wed Aug 31 18:05:11 CEST 2016 +// Generated on: Sat Feb 04 15:23:09 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; @@ -315,28 +315,28 @@ public void create(String type, String bridgeId, String name, AriCallback callback){ +public void play(String bridgeId, String media, String lang, int offsetms, int skipms, String playbackId, AriCallback callback){ throw new UnsupportedOperationException("Method availble from ..."); }; /********************************************************** * * - * @since ari_1_5_0 + * @since ari_1_7_0 *********************************************************/ -public void playWithId(String bridgeId, String playbackId, String media, String lang, int offsetms, int skipms, AriCallback callback){ +public void createWithId(String type, String bridgeId, String name, AriCallback callback){ throw new UnsupportedOperationException("Method availble from ..."); }; /********************************************************** - * Create a new bridge or updates an existing one. - * This bridge persists until it has been shut down, or Asterisk has been shut down. + * Start playback of media on a bridge. + * The media URI may be any of a number of URI's. Currently sound: and recording: URI's are supported. This operation creates a playback resource that can be used to control the playback of media (pause, rewind, fast forward, etc.) * - * @since ari_1_7_0 + * @since ari_1_5_0 *********************************************************/ -public Bridge createWithId(String type, String bridgeId, String name) throws RestException{ +public Playback playWithId(String bridgeId, String playbackId, String media, String lang, int offsetms, int skipms) throws RestException{ throw new UnsupportedOperationException("Method availble from ..."); }; @@ -363,9 +363,38 @@ public Bridge create(String type, String name) throws RestException{ /********************************************************** * * - * @since ari_1_0_0 + * @since ari_1_5_0 *********************************************************/ -public void create(String type, String name, AriCallback callback){ +public void playWithId(String bridgeId, String playbackId, String media, String lang, int offsetms, int skipms, AriCallback callback){ + throw new UnsupportedOperationException("Method availble from ..."); +}; + +/********************************************************** + * + * + * @since ari_1_5_0 + *********************************************************/ +public void create_or_update_with_id(String type, String bridgeId, String name, AriCallback callback){ + throw new UnsupportedOperationException("Method availble from ..."); +}; + +/********************************************************** + * Set a channel as the video source in a multi-party mixing bridge. This operation has no effect on bridges with two or fewer participants. + * + * + * @since ari_2_0_0 + *********************************************************/ +public void setVideoSource(String bridgeId, String channelId) throws RestException{ + throw new UnsupportedOperationException("Method availble from ..."); +}; + +/********************************************************** + * Create a new bridge or updates an existing one. + * This bridge persists until it has been shut down, or Asterisk has been shut down. + * + * @since ari_1_5_0 + *********************************************************/ +public Bridge create_or_update_with_id(String type, String bridgeId, String name) throws RestException{ throw new UnsupportedOperationException("Method availble from ..."); }; @@ -380,30 +409,39 @@ public Playback play(String bridgeId, String media, String lang, int offsetms, i }; /********************************************************** - * Start playback of media on a bridge. - * The media URI may be any of a number of URI's. Currently sound: and recording: URI's are supported. This operation creates a playback resource that can be used to control the playback of media (pause, rewind, fast forward, etc.) + * Removes any explicit video source in a multi-party mixing bridge. This operation has no effect on bridges with two or fewer participants. When no explicit video source is set, talk detection will be used to determine the active video stream. * - * @since ari_1_5_0 + * + * @since ari_2_0_0 *********************************************************/ -public Playback playWithId(String bridgeId, String playbackId, String media, String lang, int offsetms, int skipms) throws RestException{ +public void clearVideoSource(String bridgeId) throws RestException{ throw new UnsupportedOperationException("Method availble from ..."); }; /********************************************************** * * - * @since ari_1_5_0 + * @since ari_2_0_0 *********************************************************/ -public void play(String bridgeId, String media, String lang, int offsetms, int skipms, String playbackId, AriCallback callback){ +public void setVideoSource(String bridgeId, String channelId, AriCallback callback){ throw new UnsupportedOperationException("Method availble from ..."); }; /********************************************************** * * - * @since ari_1_5_0 + * @since ari_1_0_0 *********************************************************/ -public void create_or_update_with_id(String type, String bridgeId, String name, AriCallback callback){ +public void create(String type, String name, AriCallback callback){ + throw new UnsupportedOperationException("Method availble from ..."); +}; + +/********************************************************** + * + * + * @since ari_2_0_0 + *********************************************************/ +public void clearVideoSource(String bridgeId, AriCallback callback){ throw new UnsupportedOperationException("Method availble from ..."); }; @@ -411,9 +449,9 @@ public void create_or_update_with_id(String type, String bridgeId, String name, * Create a new bridge or updates an existing one. * This bridge persists until it has been shut down, or Asterisk has been shut down. * - * @since ari_1_5_0 + * @since ari_1_7_0 *********************************************************/ -public Bridge create_or_update_with_id(String type, String bridgeId, String name) throws RestException{ +public Bridge createWithId(String type, String bridgeId, String name) throws RestException{ throw new UnsupportedOperationException("Method availble from ..."); }; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_0_0_1/actions/ActionChannels_impl_ari_0_0_1.java b/classes/ch/loway/oss/ari4java/generated/ari_0_0_1/actions/ActionChannels_impl_ari_0_0_1.java index e494924d..ddd58f19 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_0_0_1/actions/ActionChannels_impl_ari_0_0_1.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_0_0_1/actions/ActionChannels_impl_ari_0_0_1.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Wed Aug 31 18:05:11 CEST 2016 +// Generated on: Sat Feb 04 15:23:09 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; @@ -634,35 +634,36 @@ public void setChannelVar(String channelId, String variable, String value, AriCa * * @since ari_1_5_0 *********************************************************/ -public void originateWithId(String channelId, String endpoint, String extension, String context, long priority, String app, String appArgs, String callerId, int timeout, Map variables, String otherChannelId, AriCallback callback){ +public void play(String channelId, String media, String lang, int offsetms, int skipms, String playbackId, AriCallback callback){ throw new UnsupportedOperationException("Method availble from ..."); }; /********************************************************** * * - * @since ari_1_10_0 + * @since ari_1_8_0 *********************************************************/ -public void dial(String channelId, String caller, int timeout, AriCallback callback){ +public void redirect(String channelId, String endpoint, AriCallback callback){ throw new UnsupportedOperationException("Method availble from ..."); }; /********************************************************** - * + * Start snooping. + * Snoop (spy/whisper) on a specific channel. * * @since ari_1_5_0 *********************************************************/ -public void playWithId(String channelId, String playbackId, String media, String lang, int offsetms, int skipms, AriCallback callback){ +public Channel snoopChannelWithId(String channelId, String snoopId, String spy, String whisper, String app, String appArgs) throws RestException{ throw new UnsupportedOperationException("Method availble from ..."); }; /********************************************************** - * Dial a created channel. - * + * Start playback of media and specify the playbackId. + * The media URI may be any of a number of URI's. Currently sound: and recording: URI's are supported. This operation creates a playback resource that can be used to control the playback of media (pause, rewind, fast forward, etc.) * - * @since ari_1_10_0 + * @since ari_1_5_0 *********************************************************/ -public void dial(String channelId, String caller, int timeout) throws RestException{ +public Playback playWithId(String channelId, String playbackId, String media, String lang, int offsetms, int skipms) throws RestException{ throw new UnsupportedOperationException("Method availble from ..."); }; @@ -671,7 +672,7 @@ public void dial(String channelId, String caller, int timeout) throws RestExcept * * @since ari_1_5_0 *********************************************************/ -public void snoopChannelWithId(String channelId, String snoopId, String spy, String whisper, String app, String appArgs, AriCallback callback){ +public void playWithId(String channelId, String playbackId, String media, String lang, int offsetms, int skipms, AriCallback callback){ throw new UnsupportedOperationException("Method availble from ..."); }; @@ -680,74 +681,65 @@ public void snoopChannelWithId(String channelId, String snoopId, String spy, Str * * @since ari_1_7_0 *********************************************************/ -public void continueInDialplan(String channelId, String context, String extension, int priority, String label, AriCallback callback){ +public void originate(String endpoint, String extension, String context, long priority, String label, String app, String appArgs, String callerId, int timeout, Map variables, String channelId, String otherChannelId, String originator, AriCallback callback){ throw new UnsupportedOperationException("Method availble from ..."); }; /********************************************************** + * Create a new channel (originate with id). + * The new channel is created immediately and a snapshot of it returned. If a Stasis application is provided it will be automatically subscribed to the originated channel for further events and updates. * - * - * @since ari_1_10_0 + * @since ari_1_5_0 *********************************************************/ -public void originateWithId(String channelId, String endpoint, String extension, String context, long priority, String label, String app, String appArgs, String callerId, int timeout, Map variables, String otherChannelId, String originator, String formats, AriCallback callback){ +public Channel originateWithId(String channelId, String endpoint, String extension, String context, long priority, String app, String appArgs, String callerId, int timeout, Map variables, String otherChannelId) throws RestException{ throw new UnsupportedOperationException("Method availble from ..."); }; /********************************************************** - * Create a new channel (originate). - * The new channel is created immediately and a snapshot of it returned. If a Stasis application is provided it will be automatically subscribed to the originated channel for further events and updates. + * * * @since ari_1_10_0 *********************************************************/ -public Channel originate(String endpoint, String extension, String context, long priority, String label, String app, String appArgs, String callerId, int timeout, Map variables, String channelId, String otherChannelId, String originator, String formats) throws RestException{ +public void dial(String channelId, String caller, int timeout, AriCallback callback){ throw new UnsupportedOperationException("Method availble from ..."); }; /********************************************************** - * Start playback of media. - * The media URI may be any of a number of URI's. Currently sound:, recording:, number:, digits:, characters:, and tone: URI's are supported. This operation creates a playback resource that can be used to control the playback of media (pause, rewind, fast forward, etc.) + * * * @since ari_1_5_0 *********************************************************/ -public Playback play(String channelId, String media, String lang, int offsetms, int skipms, String playbackId) throws RestException{ +public void originate(String endpoint, String extension, String context, long priority, String app, String appArgs, String callerId, int timeout, Map variables, String channelId, String otherChannelId, AriCallback callback){ throw new UnsupportedOperationException("Method availble from ..."); }; /********************************************************** - * Redirect the channel to a different location. * * - * @since ari_1_8_0 + * @since ari_1_5_0 *********************************************************/ -public void redirect(String channelId, String endpoint) throws RestException{ +public void snoopChannelWithId(String channelId, String snoopId, String spy, String whisper, String app, String appArgs, AriCallback callback){ throw new UnsupportedOperationException("Method availble from ..."); }; /********************************************************** * * - * @since ari_1_8_0 + * @since ari_1_10_0 *********************************************************/ -public void redirect(String channelId, String endpoint, AriCallback callback){ +public void originateWithId(String channelId, String endpoint, String extension, String context, long priority, String label, String app, String appArgs, String callerId, int timeout, Map variables, String otherChannelId, String originator, String formats, AriCallback callback){ throw new UnsupportedOperationException("Method availble from ..."); }; /********************************************************** - * Start snooping. - * Snoop (spy/whisper) on a specific channel. - * - * @since ari_1_5_0 - *********************************************************/ -public Channel snoopChannelWithId(String channelId, String snoopId, String spy, String whisper, String app, String appArgs) throws RestException{ + * Exit application{ throw new UnsupportedOperationException("Method availble from ..."); -}; - -/********************************************************** +}; continue execution in the dialplan. * * * @since ari_1_7_0 *********************************************************/ -public void originate(String endpoint, String extension, String context, long priority, String label, String app, String appArgs, String callerId, int timeout, Map variables, String channelId, String otherChannelId, String originator, AriCallback callback){ +public void continueInDialplan(String channelId, String context, String extension, int priority, String label) throws RestException{ throw new UnsupportedOperationException("Method availble from ..."); }; @@ -762,138 +754,146 @@ public Channel originate(String endpoint, String extension, String context, long }; /********************************************************** - * Create channel. * * - * @since ari_1_10_0 + * @since ari_1_5_0 *********************************************************/ -public Channel create(String endpoint, String app, String appArgs, String channelId, String otherChannelId, String originator, String formats) throws RestException{ +public void originateWithId(String channelId, String endpoint, String extension, String context, long priority, String app, String appArgs, String callerId, int timeout, Map variables, String otherChannelId, AriCallback callback){ throw new UnsupportedOperationException("Method availble from ..."); }; /********************************************************** + * Create a new channel (originate with id). + * The new channel is created immediately and a snapshot of it returned. If a Stasis application is provided it will be automatically subscribed to the originated channel for further events and updates. * - * - * @since ari_1_5_0 + * @since ari_1_7_0 *********************************************************/ -public void snoopChannel(String channelId, String spy, String whisper, String app, String appArgs, String snoopId, AriCallback callback){ +public Channel originateWithId(String channelId, String endpoint, String extension, String context, long priority, String label, String app, String appArgs, String callerId, int timeout, Map variables, String otherChannelId, String originator) throws RestException{ throw new UnsupportedOperationException("Method availble from ..."); }; /********************************************************** + * Create a new channel (originate). + * The new channel is created immediately and a snapshot of it returned. If a Stasis application is provided it will be automatically subscribed to the originated channel for further events and updates. * + * @since ari_1_10_0 + *********************************************************/ +public Channel originate(String endpoint, String extension, String context, long priority, String label, String app, String appArgs, String callerId, int timeout, Map variables, String channelId, String otherChannelId, String originator, String formats) throws RestException{ + throw new UnsupportedOperationException("Method availble from ..."); +}; + +/********************************************************** + * Create a new channel (originate with id). + * The new channel is created immediately and a snapshot of it returned. If a Stasis application is provided it will be automatically subscribed to the originated channel for further events and updates. * - * @since ari_1_5_0 + * @since ari_1_10_0 *********************************************************/ -public void play(String channelId, String media, String lang, int offsetms, int skipms, String playbackId, AriCallback callback){ +public Channel originateWithId(String channelId, String endpoint, String extension, String context, long priority, String label, String app, String appArgs, String callerId, int timeout, Map variables, String otherChannelId, String originator, String formats) throws RestException{ throw new UnsupportedOperationException("Method availble from ..."); }; /********************************************************** * * - * @since ari_1_5_0 + * @since ari_1_7_0 *********************************************************/ -public void originate(String endpoint, String extension, String context, long priority, String app, String appArgs, String callerId, int timeout, Map variables, String channelId, String otherChannelId, AriCallback callback){ +public void originateWithId(String channelId, String endpoint, String extension, String context, long priority, String label, String app, String appArgs, String callerId, int timeout, Map variables, String otherChannelId, String originator, AriCallback callback){ throw new UnsupportedOperationException("Method availble from ..."); }; /********************************************************** - * Create a new channel (originate with id). - * The new channel is created immediately and a snapshot of it returned. If a Stasis application is provided it will be automatically subscribed to the originated channel for further events and updates. * - * @since ari_1_5_0 + * + * @since ari_1_7_0 *********************************************************/ -public Channel originateWithId(String channelId, String endpoint, String extension, String context, long priority, String app, String appArgs, String callerId, int timeout, Map variables, String otherChannelId) throws RestException{ +public void continueInDialplan(String channelId, String context, String extension, int priority, String label, AriCallback callback){ throw new UnsupportedOperationException("Method availble from ..."); }; /********************************************************** - * Create a new channel (originate with id). - * The new channel is created immediately and a snapshot of it returned. If a Stasis application is provided it will be automatically subscribed to the originated channel for further events and updates. + * Dial a created channel. + * * * @since ari_1_10_0 *********************************************************/ -public Channel originateWithId(String channelId, String endpoint, String extension, String context, long priority, String label, String app, String appArgs, String callerId, int timeout, Map variables, String otherChannelId, String originator, String formats) throws RestException{ +public void dial(String channelId, String caller, int timeout) throws RestException{ throw new UnsupportedOperationException("Method availble from ..."); }; /********************************************************** * * - * @since ari_1_7_0 + * @since ari_1_10_0 *********************************************************/ -public void originateWithId(String channelId, String endpoint, String extension, String context, long priority, String label, String app, String appArgs, String callerId, int timeout, Map variables, String otherChannelId, String originator, AriCallback callback){ +public void create(String endpoint, String app, String appArgs, String channelId, String otherChannelId, String originator, String formats, AriCallback callback){ throw new UnsupportedOperationException("Method availble from ..."); }; /********************************************************** + * Create channel. * * * @since ari_1_10_0 *********************************************************/ -public void create(String endpoint, String app, String appArgs, String channelId, String otherChannelId, String originator, String formats, AriCallback callback){ +public Channel create(String endpoint, String app, String appArgs, String channelId, String otherChannelId, String originator, String formats) throws RestException{ throw new UnsupportedOperationException("Method availble from ..."); }; /********************************************************** - * Create a new channel (originate). - * The new channel is created immediately and a snapshot of it returned. If a Stasis application is provided it will be automatically subscribed to the originated channel for further events and updates. + * * * @since ari_1_5_0 *********************************************************/ -public Channel originate(String endpoint, String extension, String context, long priority, String app, String appArgs, String callerId, int timeout, Map variables, String channelId, String otherChannelId) throws RestException{ +public void snoopChannel(String channelId, String spy, String whisper, String app, String appArgs, String snoopId, AriCallback callback){ throw new UnsupportedOperationException("Method availble from ..."); }; /********************************************************** - * Create a new channel (originate with id). - * The new channel is created immediately and a snapshot of it returned. If a Stasis application is provided it will be automatically subscribed to the originated channel for further events and updates. * - * @since ari_1_7_0 + * + * @since ari_1_10_0 *********************************************************/ -public Channel originateWithId(String channelId, String endpoint, String extension, String context, long priority, String label, String app, String appArgs, String callerId, int timeout, Map variables, String otherChannelId, String originator) throws RestException{ +public void originate(String endpoint, String extension, String context, long priority, String label, String app, String appArgs, String callerId, int timeout, Map variables, String channelId, String otherChannelId, String originator, String formats, AriCallback callback){ throw new UnsupportedOperationException("Method availble from ..."); }; /********************************************************** - * Start snooping. - * Snoop (spy/whisper) on a specific channel. + * Start playback of media. + * The media URI may be any of a number of URI's. Currently sound:, recording:, number:, digits:, characters:, and tone: URI's are supported. This operation creates a playback resource that can be used to control the playback of media (pause, rewind, fast forward, etc.) * * @since ari_1_5_0 *********************************************************/ -public Channel snoopChannel(String channelId, String spy, String whisper, String app, String appArgs, String snoopId) throws RestException{ +public Playback play(String channelId, String media, String lang, int offsetms, int skipms, String playbackId) throws RestException{ throw new UnsupportedOperationException("Method availble from ..."); }; /********************************************************** - * Exit application{ - throw new UnsupportedOperationException("Method availble from ..."); -}; continue execution in the dialplan. - * + * Create a new channel (originate). + * The new channel is created immediately and a snapshot of it returned. If a Stasis application is provided it will be automatically subscribed to the originated channel for further events and updates. * - * @since ari_1_7_0 + * @since ari_1_5_0 *********************************************************/ -public void continueInDialplan(String channelId, String context, String extension, int priority, String label) throws RestException{ +public Channel originate(String endpoint, String extension, String context, long priority, String app, String appArgs, String callerId, int timeout, Map variables, String channelId, String otherChannelId) throws RestException{ throw new UnsupportedOperationException("Method availble from ..."); }; /********************************************************** - * Start playback of media and specify the playbackId. - * The media URI may be any of a number of URI's. Currently sound: and recording: URI's are supported. This operation creates a playback resource that can be used to control the playback of media (pause, rewind, fast forward, etc.) + * Start snooping. + * Snoop (spy/whisper) on a specific channel. * * @since ari_1_5_0 *********************************************************/ -public Playback playWithId(String channelId, String playbackId, String media, String lang, int offsetms, int skipms) throws RestException{ +public Channel snoopChannel(String channelId, String spy, String whisper, String app, String appArgs, String snoopId) throws RestException{ throw new UnsupportedOperationException("Method availble from ..."); }; /********************************************************** + * Redirect the channel to a different location. * * - * @since ari_1_10_0 + * @since ari_1_8_0 *********************************************************/ -public void originate(String endpoint, String extension, String context, long priority, String label, String app, String appArgs, String callerId, int timeout, Map variables, String channelId, String otherChannelId, String originator, String formats, AriCallback callback){ +public void redirect(String channelId, String endpoint) throws RestException{ throw new UnsupportedOperationException("Method availble from ..."); }; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_0_0_1/actions/ActionDeviceStates_impl_ari_0_0_1.java b/classes/ch/loway/oss/ari4java/generated/ari_0_0_1/actions/ActionDeviceStates_impl_ari_0_0_1.java index ec8f7492..1f7c7f05 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_0_0_1/actions/ActionDeviceStates_impl_ari_0_0_1.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_0_0_1/actions/ActionDeviceStates_impl_ari_0_0_1.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Wed Aug 31 18:05:11 CEST 2016 +// Generated on: Sat Feb 04 15:23:09 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_0_0_1/actions/ActionEndpoints_impl_ari_0_0_1.java b/classes/ch/loway/oss/ari4java/generated/ari_0_0_1/actions/ActionEndpoints_impl_ari_0_0_1.java index 966aeef2..34ff6024 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_0_0_1/actions/ActionEndpoints_impl_ari_0_0_1.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_0_0_1/actions/ActionEndpoints_impl_ari_0_0_1.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Wed Aug 31 18:05:11 CEST 2016 +// Generated on: Sat Feb 04 15:23:09 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; @@ -103,40 +103,40 @@ public void get(String tech, String resource, AriCallback callback) { } /********************************************************** + * Send a message to some endpoint in a technology. * * * @since ari_1_5_0 *********************************************************/ -public void sendMessage(String to, String from, String body, Map variables, AriCallback callback){ +public void sendMessageToEndpoint(String tech, String resource, String from, String body, Map variables) throws RestException{ throw new UnsupportedOperationException("Method availble from ..."); }; /********************************************************** + * Send a message to some technology URI or endpoint. * * * @since ari_1_5_0 *********************************************************/ -public void sendMessageToEndpoint(String tech, String resource, String from, String body, Map variables, AriCallback callback){ +public void sendMessage(String to, String from, String body, Map variables) throws RestException{ throw new UnsupportedOperationException("Method availble from ..."); }; /********************************************************** - * Send a message to some endpoint in a technology. * * * @since ari_1_5_0 *********************************************************/ -public void sendMessageToEndpoint(String tech, String resource, String from, String body, Map variables) throws RestException{ +public void sendMessage(String to, String from, String body, Map variables, AriCallback callback){ throw new UnsupportedOperationException("Method availble from ..."); }; /********************************************************** - * Send a message to some technology URI or endpoint. * * * @since ari_1_5_0 *********************************************************/ -public void sendMessage(String to, String from, String body, Map variables) throws RestException{ +public void sendMessageToEndpoint(String tech, String resource, String from, String body, Map variables, AriCallback callback){ throw new UnsupportedOperationException("Method availble from ..."); }; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_0_0_1/actions/ActionEvents_impl_ari_0_0_1.java b/classes/ch/loway/oss/ari4java/generated/ari_0_0_1/actions/ActionEvents_impl_ari_0_0_1.java index 51a8d193..0d66046b 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_0_0_1/actions/ActionEvents_impl_ari_0_0_1.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_0_0_1/actions/ActionEvents_impl_ari_0_0_1.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Wed Aug 31 18:05:11 CEST 2016 +// Generated on: Sat Feb 04 15:23:09 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; @@ -51,40 +51,40 @@ public void eventWebsocket(String app, AriCallback callback) { } /********************************************************** - * Generate a user event. * * * @since ari_1_5_0 *********************************************************/ -public void userEvent(String eventName, String application, String source, Map variables) throws RestException{ +public void userEvent(String eventName, String application, String source, Map variables, AriCallback callback){ throw new UnsupportedOperationException("Method availble from ..."); }; /********************************************************** + * WebSocket connection for events. * * * @since ari_1_9_0 *********************************************************/ -public void eventWebsocket(String app, boolean subscribeAll, AriCallback callback){ +public Message eventWebsocket(String app, boolean subscribeAll) throws RestException{ throw new UnsupportedOperationException("Method availble from ..."); }; /********************************************************** + * Generate a user event. * * * @since ari_1_5_0 *********************************************************/ -public void userEvent(String eventName, String application, String source, Map variables, AriCallback callback){ +public void userEvent(String eventName, String application, String source, Map variables) throws RestException{ throw new UnsupportedOperationException("Method availble from ..."); }; /********************************************************** - * WebSocket connection for events. * * * @since ari_1_9_0 *********************************************************/ -public Message eventWebsocket(String app, boolean subscribeAll) throws RestException{ +public void eventWebsocket(String app, boolean subscribeAll, AriCallback callback){ throw new UnsupportedOperationException("Method availble from ..."); }; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_0_0_1/actions/ActionPlaybacks_impl_ari_0_0_1.java b/classes/ch/loway/oss/ari4java/generated/ari_0_0_1/actions/ActionPlaybacks_impl_ari_0_0_1.java index b7aae32a..7332f649 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_0_0_1/actions/ActionPlaybacks_impl_ari_0_0_1.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_0_0_1/actions/ActionPlaybacks_impl_ari_0_0_1.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Wed Aug 31 18:05:11 CEST 2016 +// Generated on: Sat Feb 04 15:23:09 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_0_0_1/actions/ActionRecordings_impl_ari_0_0_1.java b/classes/ch/loway/oss/ari4java/generated/ari_0_0_1/actions/ActionRecordings_impl_ari_0_0_1.java index d8168503..56f39b9d 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_0_0_1/actions/ActionRecordings_impl_ari_0_0_1.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_0_0_1/actions/ActionRecordings_impl_ari_0_0_1.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Wed Aug 31 18:05:11 CEST 2016 +// Generated on: Sat Feb 04 15:23:09 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; @@ -295,21 +295,21 @@ public void getStoredFile(String recordingName, AriCallback callback){ }; /********************************************************** - * Get the file associated with the stored recording. * * - * @since ari_1_10_0 + * @since ari_1_5_0 *********************************************************/ -public byte[] getStoredFile(String recordingName) throws RestException{ +public void copyStored(String recordingName, String destinationRecordingName, AriCallback callback){ throw new UnsupportedOperationException("Method availble from ..."); }; /********************************************************** + * Get the file associated with the stored recording. * * - * @since ari_1_5_0 + * @since ari_1_10_0 *********************************************************/ -public void copyStored(String recordingName, String destinationRecordingName, AriCallback callback){ +public byte[] getStoredFile(String recordingName) throws RestException{ throw new UnsupportedOperationException("Method availble from ..."); }; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_0_0_1/actions/ActionSounds_impl_ari_0_0_1.java b/classes/ch/loway/oss/ari4java/generated/ari_0_0_1/actions/ActionSounds_impl_ari_0_0_1.java index d9895686..562ec2e8 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_0_0_1/actions/ActionSounds_impl_ari_0_0_1.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_0_0_1/actions/ActionSounds_impl_ari_0_0_1.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Wed Aug 31 18:05:11 CEST 2016 +// Generated on: Sat Feb 04 15:23:09 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_0_0_1/models/ApplicationReplaced_impl_ari_0_0_1.java b/classes/ch/loway/oss/ari4java/generated/ari_0_0_1/models/ApplicationReplaced_impl_ari_0_0_1.java index 337ca678..24832a2e 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_0_0_1/models/ApplicationReplaced_impl_ari_0_0_1.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_0_0_1/models/ApplicationReplaced_impl_ari_0_0_1.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Wed Aug 31 18:05:10 CEST 2016 +// Generated on: Sat Feb 04 15:23:09 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_0_0_1/models/Application_impl_ari_0_0_1.java b/classes/ch/loway/oss/ari4java/generated/ari_0_0_1/models/Application_impl_ari_0_0_1.java index 6196d96b..abf80352 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_0_0_1/models/Application_impl_ari_0_0_1.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_0_0_1/models/Application_impl_ari_0_0_1.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Wed Aug 31 18:05:10 CEST 2016 +// Generated on: Sat Feb 04 15:23:09 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_0_0_1/models/AsteriskInfo_impl_ari_0_0_1.java b/classes/ch/loway/oss/ari4java/generated/ari_0_0_1/models/AsteriskInfo_impl_ari_0_0_1.java index 6bbdab24..7663ad67 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_0_0_1/models/AsteriskInfo_impl_ari_0_0_1.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_0_0_1/models/AsteriskInfo_impl_ari_0_0_1.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Wed Aug 31 18:05:10 CEST 2016 +// Generated on: Sat Feb 04 15:23:09 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_0_0_1/models/BridgeCreated_impl_ari_0_0_1.java b/classes/ch/loway/oss/ari4java/generated/ari_0_0_1/models/BridgeCreated_impl_ari_0_0_1.java index 2f94a322..efe4322a 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_0_0_1/models/BridgeCreated_impl_ari_0_0_1.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_0_0_1/models/BridgeCreated_impl_ari_0_0_1.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Wed Aug 31 18:05:10 CEST 2016 +// Generated on: Sat Feb 04 15:23:09 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_0_0_1/models/BridgeDestroyed_impl_ari_0_0_1.java b/classes/ch/loway/oss/ari4java/generated/ari_0_0_1/models/BridgeDestroyed_impl_ari_0_0_1.java index 579a65d2..24012fe4 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_0_0_1/models/BridgeDestroyed_impl_ari_0_0_1.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_0_0_1/models/BridgeDestroyed_impl_ari_0_0_1.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Wed Aug 31 18:05:10 CEST 2016 +// Generated on: Sat Feb 04 15:23:09 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_0_0_1/models/BridgeMerged_impl_ari_0_0_1.java b/classes/ch/loway/oss/ari4java/generated/ari_0_0_1/models/BridgeMerged_impl_ari_0_0_1.java index 35dcb449..84ca262e 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_0_0_1/models/BridgeMerged_impl_ari_0_0_1.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_0_0_1/models/BridgeMerged_impl_ari_0_0_1.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Wed Aug 31 18:05:10 CEST 2016 +// Generated on: Sat Feb 04 15:23:09 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_0_0_1/models/Bridge_impl_ari_0_0_1.java b/classes/ch/loway/oss/ari4java/generated/ari_0_0_1/models/Bridge_impl_ari_0_0_1.java index f5ad4a0d..b3f1efa1 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_0_0_1/models/Bridge_impl_ari_0_0_1.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_0_0_1/models/Bridge_impl_ari_0_0_1.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Wed Aug 31 18:05:10 CEST 2016 +// Generated on: Sat Feb 04 15:23:09 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; @@ -78,6 +78,33 @@ public void setTechnology(String val ) { technology = val; } +/********************************************************** + * Name the creator gave the bridge + * + * @since ari_1_0_0 + *********************************************************/ + public String getName(){ + throw new UnsupportedOperationException("Method availble from ..."); +}; + +/********************************************************** + * The video mode the bridge is using. One of 'none', 'talker', or 'single'. + * + * @since ari_2_0_0 + *********************************************************/ + public String getVideo_mode(){ + throw new UnsupportedOperationException("Method availble from ..."); +}; + +/********************************************************** + * The ID of the channel that is the source of video in this bridge, if one exists. + * + * @since ari_2_0_0 + *********************************************************/ + public String getVideo_source_id(){ + throw new UnsupportedOperationException("Method availble from ..."); +}; + /********************************************************** * Entity that created the bridge * @@ -88,20 +115,20 @@ public String getCreator(){ }; /********************************************************** - * Name the creator gave the bridge + * The video mode the bridge is using. One of 'none', 'talker', or 'single'. * - * @since ari_1_0_0 + * @since ari_2_0_0 *********************************************************/ - public void setName(String val ){ + public void setVideo_mode(String val ){ throw new UnsupportedOperationException("Method availble from ..."); }; /********************************************************** - * Name the creator gave the bridge + * The ID of the channel that is the source of video in this bridge, if one exists. * - * @since ari_1_0_0 + * @since ari_2_0_0 *********************************************************/ - public String getName(){ + public void setVideo_source_id(String val ){ throw new UnsupportedOperationException("Method availble from ..."); }; @@ -114,5 +141,14 @@ public void setCreator(String val ){ throw new UnsupportedOperationException("Method availble from ..."); }; +/********************************************************** + * Name the creator gave the bridge + * + * @since ari_1_0_0 + *********************************************************/ + public void setName(String val ){ + throw new UnsupportedOperationException("Method availble from ..."); +}; + } diff --git a/classes/ch/loway/oss/ari4java/generated/ari_0_0_1/models/BuildInfo_impl_ari_0_0_1.java b/classes/ch/loway/oss/ari4java/generated/ari_0_0_1/models/BuildInfo_impl_ari_0_0_1.java index ce9f27cb..c8b0dbe7 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_0_0_1/models/BuildInfo_impl_ari_0_0_1.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_0_0_1/models/BuildInfo_impl_ari_0_0_1.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Wed Aug 31 18:05:10 CEST 2016 +// Generated on: Sat Feb 04 15:23:09 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_0_0_1/models/CallerID_impl_ari_0_0_1.java b/classes/ch/loway/oss/ari4java/generated/ari_0_0_1/models/CallerID_impl_ari_0_0_1.java index 800ca750..8677c88c 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_0_0_1/models/CallerID_impl_ari_0_0_1.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_0_0_1/models/CallerID_impl_ari_0_0_1.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Wed Aug 31 18:05:10 CEST 2016 +// Generated on: Sat Feb 04 15:23:09 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_0_0_1/models/ChannelCallerId_impl_ari_0_0_1.java b/classes/ch/loway/oss/ari4java/generated/ari_0_0_1/models/ChannelCallerId_impl_ari_0_0_1.java index 4042f05e..5b7f3d19 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_0_0_1/models/ChannelCallerId_impl_ari_0_0_1.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_0_0_1/models/ChannelCallerId_impl_ari_0_0_1.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Wed Aug 31 18:05:10 CEST 2016 +// Generated on: Sat Feb 04 15:23:09 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_0_0_1/models/ChannelCreated_impl_ari_0_0_1.java b/classes/ch/loway/oss/ari4java/generated/ari_0_0_1/models/ChannelCreated_impl_ari_0_0_1.java index 479164d8..77eeeaf2 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_0_0_1/models/ChannelCreated_impl_ari_0_0_1.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_0_0_1/models/ChannelCreated_impl_ari_0_0_1.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Wed Aug 31 18:05:10 CEST 2016 +// Generated on: Sat Feb 04 15:23:09 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_0_0_1/models/ChannelDestroyed_impl_ari_0_0_1.java b/classes/ch/loway/oss/ari4java/generated/ari_0_0_1/models/ChannelDestroyed_impl_ari_0_0_1.java index 24a85b4e..87507907 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_0_0_1/models/ChannelDestroyed_impl_ari_0_0_1.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_0_0_1/models/ChannelDestroyed_impl_ari_0_0_1.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Wed Aug 31 18:05:10 CEST 2016 +// Generated on: Sat Feb 04 15:23:09 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_0_0_1/models/ChannelDialplan_impl_ari_0_0_1.java b/classes/ch/loway/oss/ari4java/generated/ari_0_0_1/models/ChannelDialplan_impl_ari_0_0_1.java index 70567a17..fde40385 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_0_0_1/models/ChannelDialplan_impl_ari_0_0_1.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_0_0_1/models/ChannelDialplan_impl_ari_0_0_1.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Wed Aug 31 18:05:10 CEST 2016 +// Generated on: Sat Feb 04 15:23:09 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_0_0_1/models/ChannelDtmfReceived_impl_ari_0_0_1.java b/classes/ch/loway/oss/ari4java/generated/ari_0_0_1/models/ChannelDtmfReceived_impl_ari_0_0_1.java index 69016300..5b9d7b3f 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_0_0_1/models/ChannelDtmfReceived_impl_ari_0_0_1.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_0_0_1/models/ChannelDtmfReceived_impl_ari_0_0_1.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Wed Aug 31 18:05:10 CEST 2016 +// Generated on: Sat Feb 04 15:23:09 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_0_0_1/models/ChannelEnteredBridge_impl_ari_0_0_1.java b/classes/ch/loway/oss/ari4java/generated/ari_0_0_1/models/ChannelEnteredBridge_impl_ari_0_0_1.java index 4ad10c6f..74620d16 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_0_0_1/models/ChannelEnteredBridge_impl_ari_0_0_1.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_0_0_1/models/ChannelEnteredBridge_impl_ari_0_0_1.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Wed Aug 31 18:05:10 CEST 2016 +// Generated on: Sat Feb 04 15:23:09 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_0_0_1/models/ChannelHangupRequest_impl_ari_0_0_1.java b/classes/ch/loway/oss/ari4java/generated/ari_0_0_1/models/ChannelHangupRequest_impl_ari_0_0_1.java index 52303ff1..eafcd8f6 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_0_0_1/models/ChannelHangupRequest_impl_ari_0_0_1.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_0_0_1/models/ChannelHangupRequest_impl_ari_0_0_1.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Wed Aug 31 18:05:10 CEST 2016 +// Generated on: Sat Feb 04 15:23:09 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_0_0_1/models/ChannelLeftBridge_impl_ari_0_0_1.java b/classes/ch/loway/oss/ari4java/generated/ari_0_0_1/models/ChannelLeftBridge_impl_ari_0_0_1.java index 7a162797..df0814ad 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_0_0_1/models/ChannelLeftBridge_impl_ari_0_0_1.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_0_0_1/models/ChannelLeftBridge_impl_ari_0_0_1.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Wed Aug 31 18:05:10 CEST 2016 +// Generated on: Sat Feb 04 15:23:09 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_0_0_1/models/ChannelStateChange_impl_ari_0_0_1.java b/classes/ch/loway/oss/ari4java/generated/ari_0_0_1/models/ChannelStateChange_impl_ari_0_0_1.java index a603aa3d..81a28ac4 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_0_0_1/models/ChannelStateChange_impl_ari_0_0_1.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_0_0_1/models/ChannelStateChange_impl_ari_0_0_1.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Wed Aug 31 18:05:10 CEST 2016 +// Generated on: Sat Feb 04 15:23:09 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_0_0_1/models/ChannelUserevent_impl_ari_0_0_1.java b/classes/ch/loway/oss/ari4java/generated/ari_0_0_1/models/ChannelUserevent_impl_ari_0_0_1.java index 96c187a7..c50a2208 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_0_0_1/models/ChannelUserevent_impl_ari_0_0_1.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_0_0_1/models/ChannelUserevent_impl_ari_0_0_1.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Wed Aug 31 18:05:10 CEST 2016 +// Generated on: Sat Feb 04 15:23:09 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; @@ -55,38 +55,38 @@ public void setUserevent(String val ) { } /********************************************************** - * A bridge that is signaled with the user event. + * A endpoint that is signaled with the user event. * * @since ari_1_5_0 *********************************************************/ - public void setBridge(Bridge val ){ + public Endpoint getEndpoint(){ throw new UnsupportedOperationException("Method availble from ..."); }; /********************************************************** - * A endpoint that is signaled with the user event. + * A bridge that is signaled with the user event. * * @since ari_1_5_0 *********************************************************/ - public void setEndpoint(Endpoint val ){ + public void setBridge(Bridge val ){ throw new UnsupportedOperationException("Method availble from ..."); }; /********************************************************** - * A endpoint that is signaled with the user event. + * A bridge that is signaled with the user event. * * @since ari_1_5_0 *********************************************************/ - public Endpoint getEndpoint(){ + public Bridge getBridge(){ throw new UnsupportedOperationException("Method availble from ..."); }; /********************************************************** - * A bridge that is signaled with the user event. + * A endpoint that is signaled with the user event. * * @since ari_1_5_0 *********************************************************/ - public Bridge getBridge(){ + public void setEndpoint(Endpoint val ){ throw new UnsupportedOperationException("Method availble from ..."); }; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_0_0_1/models/ChannelVarset_impl_ari_0_0_1.java b/classes/ch/loway/oss/ari4java/generated/ari_0_0_1/models/ChannelVarset_impl_ari_0_0_1.java index 988b544c..98c28351 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_0_0_1/models/ChannelVarset_impl_ari_0_0_1.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_0_0_1/models/ChannelVarset_impl_ari_0_0_1.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Wed Aug 31 18:05:10 CEST 2016 +// Generated on: Sat Feb 04 15:23:09 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_0_0_1/models/Channel_impl_ari_0_0_1.java b/classes/ch/loway/oss/ari4java/generated/ari_0_0_1/models/Channel_impl_ari_0_0_1.java index 00fe519d..684762b2 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_0_0_1/models/Channel_impl_ari_0_0_1.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_0_0_1/models/Channel_impl_ari_0_0_1.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Wed Aug 31 18:05:10 CEST 2016 +// Generated on: Sat Feb 04 15:23:09 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; @@ -129,5 +129,23 @@ public void setLanguage(String val ){ throw new UnsupportedOperationException("Method availble from ..."); }; +/********************************************************** + * Channel variables + * + * @since ari_2_0_0 + *********************************************************/ + public String getChannelvars(){ + throw new UnsupportedOperationException("Method availble from ..."); +}; + +/********************************************************** + * Channel variables + * + * @since ari_2_0_0 + *********************************************************/ + public void setChannelvars(String val ){ + throw new UnsupportedOperationException("Method availble from ..."); +}; + } diff --git a/classes/ch/loway/oss/ari4java/generated/ari_0_0_1/models/ConfigInfo_impl_ari_0_0_1.java b/classes/ch/loway/oss/ari4java/generated/ari_0_0_1/models/ConfigInfo_impl_ari_0_0_1.java index eed84b88..55137d72 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_0_0_1/models/ConfigInfo_impl_ari_0_0_1.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_0_0_1/models/ConfigInfo_impl_ari_0_0_1.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Wed Aug 31 18:05:10 CEST 2016 +// Generated on: Sat Feb 04 15:23:09 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_0_0_1/models/DeviceStateChanged_impl_ari_0_0_1.java b/classes/ch/loway/oss/ari4java/generated/ari_0_0_1/models/DeviceStateChanged_impl_ari_0_0_1.java index f7af8868..f2cd8217 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_0_0_1/models/DeviceStateChanged_impl_ari_0_0_1.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_0_0_1/models/DeviceStateChanged_impl_ari_0_0_1.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Wed Aug 31 18:05:10 CEST 2016 +// Generated on: Sat Feb 04 15:23:09 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_0_0_1/models/DeviceState_impl_ari_0_0_1.java b/classes/ch/loway/oss/ari4java/generated/ari_0_0_1/models/DeviceState_impl_ari_0_0_1.java index 5a64548b..81a4f3da 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_0_0_1/models/DeviceState_impl_ari_0_0_1.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_0_0_1/models/DeviceState_impl_ari_0_0_1.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Wed Aug 31 18:05:10 CEST 2016 +// Generated on: Sat Feb 04 15:23:09 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_0_0_1/models/Dialed_impl_ari_0_0_1.java b/classes/ch/loway/oss/ari4java/generated/ari_0_0_1/models/Dialed_impl_ari_0_0_1.java index 06744518..1f64ef24 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_0_0_1/models/Dialed_impl_ari_0_0_1.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_0_0_1/models/Dialed_impl_ari_0_0_1.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Wed Aug 31 18:05:10 CEST 2016 +// Generated on: Sat Feb 04 15:23:09 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_0_0_1/models/DialplanCEP_impl_ari_0_0_1.java b/classes/ch/loway/oss/ari4java/generated/ari_0_0_1/models/DialplanCEP_impl_ari_0_0_1.java index e3ab1ff4..41db538d 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_0_0_1/models/DialplanCEP_impl_ari_0_0_1.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_0_0_1/models/DialplanCEP_impl_ari_0_0_1.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Wed Aug 31 18:05:10 CEST 2016 +// Generated on: Sat Feb 04 15:23:09 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_0_0_1/models/EndpointStateChange_impl_ari_0_0_1.java b/classes/ch/loway/oss/ari4java/generated/ari_0_0_1/models/EndpointStateChange_impl_ari_0_0_1.java index 796b5224..df6a1c9f 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_0_0_1/models/EndpointStateChange_impl_ari_0_0_1.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_0_0_1/models/EndpointStateChange_impl_ari_0_0_1.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Wed Aug 31 18:05:10 CEST 2016 +// Generated on: Sat Feb 04 15:23:09 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_0_0_1/models/Endpoint_impl_ari_0_0_1.java b/classes/ch/loway/oss/ari4java/generated/ari_0_0_1/models/Endpoint_impl_ari_0_0_1.java index 857fa476..d76a35d4 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_0_0_1/models/Endpoint_impl_ari_0_0_1.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_0_0_1/models/Endpoint_impl_ari_0_0_1.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Wed Aug 31 18:05:10 CEST 2016 +// Generated on: Sat Feb 04 15:23:09 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_0_0_1/models/Event_impl_ari_0_0_1.java b/classes/ch/loway/oss/ari4java/generated/ari_0_0_1/models/Event_impl_ari_0_0_1.java index d4f17c03..fcfc1288 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_0_0_1/models/Event_impl_ari_0_0_1.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_0_0_1/models/Event_impl_ari_0_0_1.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Wed Aug 31 18:05:10 CEST 2016 +// Generated on: Sat Feb 04 15:23:09 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_0_0_1/models/FormatLangPair_impl_ari_0_0_1.java b/classes/ch/loway/oss/ari4java/generated/ari_0_0_1/models/FormatLangPair_impl_ari_0_0_1.java index 80b15a36..687c2489 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_0_0_1/models/FormatLangPair_impl_ari_0_0_1.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_0_0_1/models/FormatLangPair_impl_ari_0_0_1.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Wed Aug 31 18:05:10 CEST 2016 +// Generated on: Sat Feb 04 15:23:09 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_0_0_1/models/LiveRecording_impl_ari_0_0_1.java b/classes/ch/loway/oss/ari4java/generated/ari_0_0_1/models/LiveRecording_impl_ari_0_0_1.java index a559c80b..12a23d98 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_0_0_1/models/LiveRecording_impl_ari_0_0_1.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_0_0_1/models/LiveRecording_impl_ari_0_0_1.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Wed Aug 31 18:05:10 CEST 2016 +// Generated on: Sat Feb 04 15:23:09 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; @@ -66,56 +66,56 @@ public void setState(String val ) { } /********************************************************** - * Duration of silence, in seconds, detected in the recording. This is only available if the recording was initiated with a non-zero maxSilenceSeconds. + * URI for the channel or bridge being recorded * * @since ari_1_5_0 *********************************************************/ - public int getSilence_duration(){ + public String getTarget_uri(){ throw new UnsupportedOperationException("Method availble from ..."); }; /********************************************************** - * URI for the channel or bridge being recorded + * Duration of talking, in seconds, detected in the recording. This is only available if the recording was initiated with a non-zero maxSilenceSeconds. * * @since ari_1_5_0 *********************************************************/ - public void setTarget_uri(String val ){ + public void setTalking_duration(int val ){ throw new UnsupportedOperationException("Method availble from ..."); }; /********************************************************** - * URI for the channel or bridge being recorded + * Duration in seconds of the recording * * @since ari_1_5_0 *********************************************************/ - public String getTarget_uri(){ + public int getDuration(){ throw new UnsupportedOperationException("Method availble from ..."); }; /********************************************************** - * Duration in seconds of the recording + * URI for the channel or bridge being recorded * * @since ari_1_5_0 *********************************************************/ - public void setDuration(int val ){ + public void setTarget_uri(String val ){ throw new UnsupportedOperationException("Method availble from ..."); }; /********************************************************** - * Duration of talking, in seconds, detected in the recording. This is only available if the recording was initiated with a non-zero maxSilenceSeconds. + * Duration in seconds of the recording * * @since ari_1_5_0 *********************************************************/ - public void setTalking_duration(int val ){ + public void setDuration(int val ){ throw new UnsupportedOperationException("Method availble from ..."); }; /********************************************************** - * Duration in seconds of the recording + * Duration of silence, in seconds, detected in the recording. This is only available if the recording was initiated with a non-zero maxSilenceSeconds. * * @since ari_1_5_0 *********************************************************/ - public int getDuration(){ + public int getSilence_duration(){ throw new UnsupportedOperationException("Method availble from ..."); }; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_0_0_1/models/Message_impl_ari_0_0_1.java b/classes/ch/loway/oss/ari4java/generated/ari_0_0_1/models/Message_impl_ari_0_0_1.java index 045d5acb..7ff07624 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_0_0_1/models/Message_impl_ari_0_0_1.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_0_0_1/models/Message_impl_ari_0_0_1.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Wed Aug 31 18:05:10 CEST 2016 +// Generated on: Sat Feb 04 15:23:09 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; @@ -64,6 +64,23 @@ public void setType(String val ) { type = val; } -/** No missing signatures from interface */ +/********************************************************** + * The unique ID for the Asterisk instance that raised this event. + * + * @since ari_2_0_0 + *********************************************************/ + public void setAsterisk_id(String val ){ + throw new UnsupportedOperationException("Method availble from ..."); +}; + +/********************************************************** + * The unique ID for the Asterisk instance that raised this event. + * + * @since ari_2_0_0 + *********************************************************/ + public String getAsterisk_id(){ + throw new UnsupportedOperationException("Method availble from ..."); +}; + } diff --git a/classes/ch/loway/oss/ari4java/generated/ari_0_0_1/models/MissingParams_impl_ari_0_0_1.java b/classes/ch/loway/oss/ari4java/generated/ari_0_0_1/models/MissingParams_impl_ari_0_0_1.java index d6bcc182..baa4a984 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_0_0_1/models/MissingParams_impl_ari_0_0_1.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_0_0_1/models/MissingParams_impl_ari_0_0_1.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Wed Aug 31 18:05:10 CEST 2016 +// Generated on: Sat Feb 04 15:23:09 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_0_0_1/models/PlaybackFinished_impl_ari_0_0_1.java b/classes/ch/loway/oss/ari4java/generated/ari_0_0_1/models/PlaybackFinished_impl_ari_0_0_1.java index 74b47e78..48f3d4bb 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_0_0_1/models/PlaybackFinished_impl_ari_0_0_1.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_0_0_1/models/PlaybackFinished_impl_ari_0_0_1.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Wed Aug 31 18:05:10 CEST 2016 +// Generated on: Sat Feb 04 15:23:09 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_0_0_1/models/PlaybackStarted_impl_ari_0_0_1.java b/classes/ch/loway/oss/ari4java/generated/ari_0_0_1/models/PlaybackStarted_impl_ari_0_0_1.java index 182dc93d..4dc7cb6e 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_0_0_1/models/PlaybackStarted_impl_ari_0_0_1.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_0_0_1/models/PlaybackStarted_impl_ari_0_0_1.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Wed Aug 31 18:05:10 CEST 2016 +// Generated on: Sat Feb 04 15:23:09 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_0_0_1/models/Playback_impl_ari_0_0_1.java b/classes/ch/loway/oss/ari4java/generated/ari_0_0_1/models/Playback_impl_ari_0_0_1.java index 9cd2d9fc..5b4defc1 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_0_0_1/models/Playback_impl_ari_0_0_1.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_0_0_1/models/Playback_impl_ari_0_0_1.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Wed Aug 31 18:05:10 CEST 2016 +// Generated on: Sat Feb 04 15:23:09 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; @@ -81,7 +81,7 @@ public void setTarget_uri(String val ) { * * @since ari_1_10_0 *********************************************************/ - public void setNext_media_uri(String val ){ + public String getNext_media_uri(){ throw new UnsupportedOperationException("Method availble from ..."); }; @@ -90,7 +90,7 @@ public void setNext_media_uri(String val ){ * * @since ari_1_10_0 *********************************************************/ - public String getNext_media_uri(){ + public void setNext_media_uri(String val ){ throw new UnsupportedOperationException("Method availble from ..."); }; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_0_0_1/models/RecordingFailed_impl_ari_0_0_1.java b/classes/ch/loway/oss/ari4java/generated/ari_0_0_1/models/RecordingFailed_impl_ari_0_0_1.java index 31fab45b..bd6f21e5 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_0_0_1/models/RecordingFailed_impl_ari_0_0_1.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_0_0_1/models/RecordingFailed_impl_ari_0_0_1.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Wed Aug 31 18:05:10 CEST 2016 +// Generated on: Sat Feb 04 15:23:09 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_0_0_1/models/RecordingFinished_impl_ari_0_0_1.java b/classes/ch/loway/oss/ari4java/generated/ari_0_0_1/models/RecordingFinished_impl_ari_0_0_1.java index 7b4c8045..ab30cbe7 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_0_0_1/models/RecordingFinished_impl_ari_0_0_1.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_0_0_1/models/RecordingFinished_impl_ari_0_0_1.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Wed Aug 31 18:05:10 CEST 2016 +// Generated on: Sat Feb 04 15:23:09 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_0_0_1/models/RecordingStarted_impl_ari_0_0_1.java b/classes/ch/loway/oss/ari4java/generated/ari_0_0_1/models/RecordingStarted_impl_ari_0_0_1.java index fa0db25b..1819c59c 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_0_0_1/models/RecordingStarted_impl_ari_0_0_1.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_0_0_1/models/RecordingStarted_impl_ari_0_0_1.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Wed Aug 31 18:05:10 CEST 2016 +// Generated on: Sat Feb 04 15:23:09 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_0_0_1/models/SetId_impl_ari_0_0_1.java b/classes/ch/loway/oss/ari4java/generated/ari_0_0_1/models/SetId_impl_ari_0_0_1.java index 5ec725b3..62b32949 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_0_0_1/models/SetId_impl_ari_0_0_1.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_0_0_1/models/SetId_impl_ari_0_0_1.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Wed Aug 31 18:05:10 CEST 2016 +// Generated on: Sat Feb 04 15:23:09 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_0_0_1/models/Sound_impl_ari_0_0_1.java b/classes/ch/loway/oss/ari4java/generated/ari_0_0_1/models/Sound_impl_ari_0_0_1.java index 9fb3df9a..7bc7892b 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_0_0_1/models/Sound_impl_ari_0_0_1.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_0_0_1/models/Sound_impl_ari_0_0_1.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Wed Aug 31 18:05:10 CEST 2016 +// Generated on: Sat Feb 04 15:23:09 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_0_0_1/models/StasisEnd_impl_ari_0_0_1.java b/classes/ch/loway/oss/ari4java/generated/ari_0_0_1/models/StasisEnd_impl_ari_0_0_1.java index 2e7bb292..e41321c9 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_0_0_1/models/StasisEnd_impl_ari_0_0_1.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_0_0_1/models/StasisEnd_impl_ari_0_0_1.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Wed Aug 31 18:05:10 CEST 2016 +// Generated on: Sat Feb 04 15:23:09 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_0_0_1/models/StasisStart_impl_ari_0_0_1.java b/classes/ch/loway/oss/ari4java/generated/ari_0_0_1/models/StasisStart_impl_ari_0_0_1.java index 097de81e..37a007d0 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_0_0_1/models/StasisStart_impl_ari_0_0_1.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_0_0_1/models/StasisStart_impl_ari_0_0_1.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Wed Aug 31 18:05:10 CEST 2016 +// Generated on: Sat Feb 04 15:23:09 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; @@ -48,7 +48,7 @@ public void setChannel(Channel val ) { * * @since ari_1_5_0 *********************************************************/ - public void setReplace_channel(Channel val ){ + public Channel getReplace_channel(){ throw new UnsupportedOperationException("Method availble from ..."); }; @@ -57,7 +57,7 @@ public void setReplace_channel(Channel val ){ * * @since ari_1_5_0 *********************************************************/ - public Channel getReplace_channel(){ + public void setReplace_channel(Channel val ){ throw new UnsupportedOperationException("Method availble from ..."); }; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_0_0_1/models/StatusInfo_impl_ari_0_0_1.java b/classes/ch/loway/oss/ari4java/generated/ari_0_0_1/models/StatusInfo_impl_ari_0_0_1.java index dde892e1..354e116f 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_0_0_1/models/StatusInfo_impl_ari_0_0_1.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_0_0_1/models/StatusInfo_impl_ari_0_0_1.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Wed Aug 31 18:05:10 CEST 2016 +// Generated on: Sat Feb 04 15:23:09 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_0_0_1/models/StoredRecording_impl_ari_0_0_1.java b/classes/ch/loway/oss/ari4java/generated/ari_0_0_1/models/StoredRecording_impl_ari_0_0_1.java index e658cfe7..e1481c48 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_0_0_1/models/StoredRecording_impl_ari_0_0_1.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_0_0_1/models/StoredRecording_impl_ari_0_0_1.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Wed Aug 31 18:05:10 CEST 2016 +// Generated on: Sat Feb 04 15:23:09 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_0_0_1/models/SystemInfo_impl_ari_0_0_1.java b/classes/ch/loway/oss/ari4java/generated/ari_0_0_1/models/SystemInfo_impl_ari_0_0_1.java index a66ad6bc..386d20c3 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_0_0_1/models/SystemInfo_impl_ari_0_0_1.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_0_0_1/models/SystemInfo_impl_ari_0_0_1.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Wed Aug 31 18:05:10 CEST 2016 +// Generated on: Sat Feb 04 15:23:09 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_0_0_1/models/Variable_impl_ari_0_0_1.java b/classes/ch/loway/oss/ari4java/generated/ari_0_0_1/models/Variable_impl_ari_0_0_1.java index 5d69d4e8..3ef71ee3 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_0_0_1/models/Variable_impl_ari_0_0_1.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_0_0_1/models/Variable_impl_ari_0_0_1.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Wed Aug 31 18:05:10 CEST 2016 +// Generated on: Sat Feb 04 15:23:09 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_0_0/AriBuilder_impl_ari_1_0_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_0_0/AriBuilder_impl_ari_1_0_0.java index d2536a67..91f2512c 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_0_0/AriBuilder_impl_ari_1_0_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_0_0/AriBuilder_impl_ari_1_0_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Wed Aug 31 18:05:11 CEST 2016 +// Generated on: Sat Feb 04 15:23:09 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.ari_1_0_0.models.*; @@ -13,28 +13,20 @@ public class AriBuilder_impl_ari_1_0_0 implements AriBuilder { -public ActionDeviceStates actionDeviceStates() { - return new ActionDeviceStates_impl_ari_1_0_0(); - }; - -public ActionSounds actionSounds() { - return new ActionSounds_impl_ari_1_0_0(); - }; - public ActionEndpoints actionEndpoints() { return new ActionEndpoints_impl_ari_1_0_0(); }; -public ActionAsterisk actionAsterisk() { - return new ActionAsterisk_impl_ari_1_0_0(); +public ActionRecordings actionRecordings() { + return new ActionRecordings_impl_ari_1_0_0(); }; -public ActionChannels actionChannels() { - return new ActionChannels_impl_ari_1_0_0(); +public ActionSounds actionSounds() { + return new ActionSounds_impl_ari_1_0_0(); }; -public ActionPlaybacks actionPlaybacks() { - return new ActionPlaybacks_impl_ari_1_0_0(); +public ActionChannels actionChannels() { + return new ActionChannels_impl_ari_1_0_0(); }; public ActionEvents actionEvents() { @@ -45,204 +37,212 @@ public ActionBridges actionBridges() { return new ActionBridges_impl_ari_1_0_0(); }; -public ActionRecordings actionRecordings() { - return new ActionRecordings_impl_ari_1_0_0(); +public ActionDeviceStates actionDeviceStates() { + return new ActionDeviceStates_impl_ari_1_0_0(); }; public ActionApplications actionApplications() { return new ActionApplications_impl_ari_1_0_0(); }; -public ChannelStateChange channelStateChange() { - return new ChannelStateChange_impl_ari_1_0_0(); - }; - -public ChannelDtmfReceived channelDtmfReceived() { - return new ChannelDtmfReceived_impl_ari_1_0_0(); +public ActionAsterisk actionAsterisk() { + return new ActionAsterisk_impl_ari_1_0_0(); }; -public CallerID callerID() { - return new CallerID_impl_ari_1_0_0(); +public ActionPlaybacks actionPlaybacks() { + return new ActionPlaybacks_impl_ari_1_0_0(); }; public DeviceStateChanged deviceStateChanged() { return new DeviceStateChanged_impl_ari_1_0_0(); }; -public DialplanCEP dialplanCEP() { - return new DialplanCEP_impl_ari_1_0_0(); +public ChannelDtmfReceived channelDtmfReceived() { + return new ChannelDtmfReceived_impl_ari_1_0_0(); }; -public RecordingFailed recordingFailed() { - return new RecordingFailed_impl_ari_1_0_0(); +public StasisEnd stasisEnd() { + return new StasisEnd_impl_ari_1_0_0(); }; -public StoredRecording storedRecording() { - return new StoredRecording_impl_ari_1_0_0(); +public ChannelCreated channelCreated() { + return new ChannelCreated_impl_ari_1_0_0(); }; -public LiveRecording liveRecording() { - return new LiveRecording_impl_ari_1_0_0(); +public ApplicationReplaced applicationReplaced() { + return new ApplicationReplaced_impl_ari_1_0_0(); }; -public RecordingFinished recordingFinished() { - return new RecordingFinished_impl_ari_1_0_0(); +public Bridge bridge() { + return new Bridge_impl_ari_1_0_0(); }; -public BridgeDestroyed bridgeDestroyed() { - return new BridgeDestroyed_impl_ari_1_0_0(); +public CallerID callerID() { + return new CallerID_impl_ari_1_0_0(); }; -public Bridge bridge() { - return new Bridge_impl_ari_1_0_0(); +public BridgeMerged bridgeMerged() { + return new BridgeMerged_impl_ari_1_0_0(); }; -public Endpoint endpoint() { - return new Endpoint_impl_ari_1_0_0(); +public DialplanCEP dialplanCEP() { + return new DialplanCEP_impl_ari_1_0_0(); }; -public Dial dial() { - return new Dial_impl_ari_1_0_0(); +public RecordingFinished recordingFinished() { + return new RecordingFinished_impl_ari_1_0_0(); }; -public StasisStart stasisStart() { - return new StasisStart_impl_ari_1_0_0(); +public BridgeCreated bridgeCreated() { + return new BridgeCreated_impl_ari_1_0_0(); }; public RecordingStarted recordingStarted() { return new RecordingStarted_impl_ari_1_0_0(); }; -public MissingParams missingParams() { - return new MissingParams_impl_ari_1_0_0(); +public ChannelEnteredBridge channelEnteredBridge() { + return new ChannelEnteredBridge_impl_ari_1_0_0(); }; -public StasisEnd stasisEnd() { - return new StasisEnd_impl_ari_1_0_0(); +public EndpointStateChange endpointStateChange() { + return new EndpointStateChange_impl_ari_1_0_0(); }; -public Message message() { - return new Message_impl_ari_1_0_0(); +public BridgeDestroyed bridgeDestroyed() { + return new BridgeDestroyed_impl_ari_1_0_0(); }; -public BridgeCreated bridgeCreated() { - return new BridgeCreated_impl_ari_1_0_0(); +public SystemInfo systemInfo() { + return new SystemInfo_impl_ari_1_0_0(); }; public Channel channel() { return new Channel_impl_ari_1_0_0(); }; -public ChannelVarset channelVarset() { - return new ChannelVarset_impl_ari_1_0_0(); +public Playback playback() { + return new Playback_impl_ari_1_0_0(); }; -public ChannelHangupRequest channelHangupRequest() { - return new ChannelHangupRequest_impl_ari_1_0_0(); +public ChannelLeftBridge channelLeftBridge() { + return new ChannelLeftBridge_impl_ari_1_0_0(); }; -public ChannelDialplan channelDialplan() { - return new ChannelDialplan_impl_ari_1_0_0(); +public FormatLangPair formatLangPair() { + return new FormatLangPair_impl_ari_1_0_0(); }; -public DeviceState deviceState() { - return new DeviceState_impl_ari_1_0_0(); +public PlaybackStarted playbackStarted() { + return new PlaybackStarted_impl_ari_1_0_0(); }; -public ChannelCallerId channelCallerId() { - return new ChannelCallerId_impl_ari_1_0_0(); +public ChannelDestroyed channelDestroyed() { + return new ChannelDestroyed_impl_ari_1_0_0(); }; -public ChannelLeftBridge channelLeftBridge() { - return new ChannelLeftBridge_impl_ari_1_0_0(); +public ChannelCallerId channelCallerId() { + return new ChannelCallerId_impl_ari_1_0_0(); }; -public BridgeMerged bridgeMerged() { - return new BridgeMerged_impl_ari_1_0_0(); +public AsteriskInfo asteriskInfo() { + return new AsteriskInfo_impl_ari_1_0_0(); }; -public PlaybackFinished playbackFinished() { - return new PlaybackFinished_impl_ari_1_0_0(); +public StasisStart stasisStart() { + return new StasisStart_impl_ari_1_0_0(); }; -public ChannelUserevent channelUserevent() { - return new ChannelUserevent_impl_ari_1_0_0(); +public Application application() { + return new Application_impl_ari_1_0_0(); }; -public Dialed dialed() { - return new Dialed_impl_ari_1_0_0(); +public BuildInfo buildInfo() { + return new BuildInfo_impl_ari_1_0_0(); }; -public ChannelEnteredBridge channelEnteredBridge() { - return new ChannelEnteredBridge_impl_ari_1_0_0(); +public Variable variable() { + return new Variable_impl_ari_1_0_0(); }; -public ApplicationReplaced applicationReplaced() { - return new ApplicationReplaced_impl_ari_1_0_0(); +public Sound sound() { + return new Sound_impl_ari_1_0_0(); }; -public StatusInfo statusInfo() { - return new StatusInfo_impl_ari_1_0_0(); +public MissingParams missingParams() { + return new MissingParams_impl_ari_1_0_0(); }; -public ChannelDestroyed channelDestroyed() { - return new ChannelDestroyed_impl_ari_1_0_0(); +public ChannelHangupRequest channelHangupRequest() { + return new ChannelHangupRequest_impl_ari_1_0_0(); }; -public Event event() { - return new Event_impl_ari_1_0_0(); +public ChannelDialplan channelDialplan() { + return new ChannelDialplan_impl_ari_1_0_0(); }; -public EndpointStateChange endpointStateChange() { - return new EndpointStateChange_impl_ari_1_0_0(); +public ChannelVarset channelVarset() { + return new ChannelVarset_impl_ari_1_0_0(); }; -public SystemInfo systemInfo() { - return new SystemInfo_impl_ari_1_0_0(); +public ConfigInfo configInfo() { + return new ConfigInfo_impl_ari_1_0_0(); }; -public BuildInfo buildInfo() { - return new BuildInfo_impl_ari_1_0_0(); +public DeviceState deviceState() { + return new DeviceState_impl_ari_1_0_0(); }; -public Variable variable() { - return new Variable_impl_ari_1_0_0(); +public StoredRecording storedRecording() { + return new StoredRecording_impl_ari_1_0_0(); }; -public PlaybackStarted playbackStarted() { - return new PlaybackStarted_impl_ari_1_0_0(); +public PlaybackFinished playbackFinished() { + return new PlaybackFinished_impl_ari_1_0_0(); }; -public AsteriskInfo asteriskInfo() { - return new AsteriskInfo_impl_ari_1_0_0(); +public ChannelUserevent channelUserevent() { + return new ChannelUserevent_impl_ari_1_0_0(); }; -public Application application() { - return new Application_impl_ari_1_0_0(); +public Message message() { + return new Message_impl_ari_1_0_0(); }; -public Playback playback() { - return new Playback_impl_ari_1_0_0(); +public ChannelStateChange channelStateChange() { + return new ChannelStateChange_impl_ari_1_0_0(); }; -public FormatLangPair formatLangPair() { - return new FormatLangPair_impl_ari_1_0_0(); +public Endpoint endpoint() { + return new Endpoint_impl_ari_1_0_0(); }; -public ConfigInfo configInfo() { - return new ConfigInfo_impl_ari_1_0_0(); +public LiveRecording liveRecording() { + return new LiveRecording_impl_ari_1_0_0(); }; public SetId setId() { return new SetId_impl_ari_1_0_0(); }; -public Sound sound() { - return new Sound_impl_ari_1_0_0(); +public StatusInfo statusInfo() { + return new StatusInfo_impl_ari_1_0_0(); }; -public ChannelCreated channelCreated() { - return new ChannelCreated_impl_ari_1_0_0(); +public Dialed dialed() { + return new Dialed_impl_ari_1_0_0(); + }; + +public Event event() { + return new Event_impl_ari_1_0_0(); + }; + +public RecordingFailed recordingFailed() { + return new RecordingFailed_impl_ari_1_0_0(); + }; + +public Dial dial() { + return new Dial_impl_ari_1_0_0(); }; public BridgeAttendedTransfer bridgeAttendedTransfer() { @@ -253,6 +253,10 @@ public BridgeBlindTransfer bridgeBlindTransfer() { throw new UnsupportedOperationException(); }; +public BridgeVideoSourceChanged bridgeVideoSourceChanged() { + throw new UnsupportedOperationException(); + }; + public ChannelConnectedLine channelConnectedLine() { throw new UnsupportedOperationException(); }; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_0_0/ClassTranslator_impl_ari_1_0_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_0_0/ClassTranslator_impl_ari_1_0_0.java index 45a8c42d..1404b67d 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_0_0/ClassTranslator_impl_ari_1_0_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_0_0/ClassTranslator_impl_ari_1_0_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Wed Aug 31 18:05:11 CEST 2016 +// Generated on: Sat Feb 04 15:23:09 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.ARI; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_0_0/actions/ActionApplications_impl_ari_1_0_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_0_0/actions/ActionApplications_impl_ari_1_0_0.java index 5676109b..023d0919 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_0_0/actions/ActionApplications_impl_ari_1_0_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_0_0/actions/ActionApplications_impl_ari_1_0_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Wed Aug 31 18:05:11 CEST 2016 +// Generated on: Sat Feb 04 15:23:09 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_0_0/actions/ActionAsterisk_impl_ari_1_0_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_0_0/actions/ActionAsterisk_impl_ari_1_0_0.java index d5fe6d6c..4047dbc9 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_0_0/actions/ActionAsterisk_impl_ari_1_0_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_0_0/actions/ActionAsterisk_impl_ari_1_0_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Wed Aug 31 18:05:11 CEST 2016 +// Generated on: Sat Feb 04 15:23:09 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; @@ -104,22 +104,20 @@ public void setGlobalVar(String variable, String value, AriCallback callba } /********************************************************** - * Reload an Asterisk module. * * * @since ari_1_8_0 *********************************************************/ -public void reloadModule(String moduleName) throws RestException{ +public void updateObject(String configClass, String objectType, String id, Map fields, AriCallback> callback){ throw new UnsupportedOperationException("Method availble from ..."); }; /********************************************************** - * Create or update a dynamic configuration object. * * * @since ari_1_8_0 *********************************************************/ -public List updateObject(String configClass, String objectType, String id, Map fields) throws RestException{ +public void listModules(AriCallback> callback){ throw new UnsupportedOperationException("Method availble from ..."); }; @@ -128,7 +126,7 @@ public List updateObject(String configClass, String objectType, Str * * @since ari_1_8_0 *********************************************************/ -public void deleteObject(String configClass, String objectType, String id, AriCallback callback){ +public void getModule(String moduleName, AriCallback callback){ throw new UnsupportedOperationException("Method availble from ..."); }; @@ -137,16 +135,17 @@ public void deleteObject(String configClass, String objectType, String id, AriCa * * @since ari_1_8_0 *********************************************************/ -public void reloadModule(String moduleName, AriCallback callback){ +public void unloadModule(String moduleName, AriCallback callback){ throw new UnsupportedOperationException("Method availble from ..."); }; /********************************************************** + * Rotates a log channel. * * * @since ari_1_9_0 *********************************************************/ -public void addLog(String logChannelName, String configuration, AriCallback callback){ +public void rotateLog(String logChannelName) throws RestException{ throw new UnsupportedOperationException("Method availble from ..."); }; @@ -155,46 +154,47 @@ public void addLog(String logChannelName, String configuration, AriCallback callback){ +public void deleteObject(String configClass, String objectType, String id, AriCallback callback){ throw new UnsupportedOperationException("Method availble from ..."); }; /********************************************************** - * List Asterisk modules. + * Deletes a log channel. * * - * @since ari_1_8_0 + * @since ari_1_9_0 *********************************************************/ -public List listModules() throws RestException{ +public void deleteLog(String logChannelName) throws RestException{ throw new UnsupportedOperationException("Method availble from ..."); }; /********************************************************** - * Gets Asterisk log channel information. + * Load an Asterisk module. * * - * @since ari_1_9_0 + * @since ari_1_8_0 *********************************************************/ -public List listLogChannels() throws RestException{ +public void loadModule(String moduleName) throws RestException{ throw new UnsupportedOperationException("Method availble from ..."); }; /********************************************************** - * Get Asterisk module information. + * Unload an Asterisk module. * * * @since ari_1_8_0 *********************************************************/ -public Module getModule(String moduleName) throws RestException{ +public void unloadModule(String moduleName) throws RestException{ throw new UnsupportedOperationException("Method availble from ..."); }; /********************************************************** + * Create or update a dynamic configuration object. * * - * @since ari_1_9_0 + * @since ari_1_8_0 *********************************************************/ -public void rotateLog(String logChannelName, AriCallback callback){ +public List updateObject(String configClass, String objectType, String id, Map fields) throws RestException{ throw new UnsupportedOperationException("Method availble from ..."); }; @@ -209,22 +209,21 @@ public List getObject(String configClass, String objectType, String }; /********************************************************** - * Load an Asterisk module. + * Get Asterisk module information. * * * @since ari_1_8_0 *********************************************************/ -public void loadModule(String moduleName) throws RestException{ +public Module getModule(String moduleName) throws RestException{ throw new UnsupportedOperationException("Method availble from ..."); }; /********************************************************** - * Unload an Asterisk module. * * - * @since ari_1_8_0 + * @since ari_1_9_0 *********************************************************/ -public void unloadModule(String moduleName) throws RestException{ +public void rotateLog(String logChannelName, AriCallback callback){ throw new UnsupportedOperationException("Method availble from ..."); }; @@ -233,45 +232,44 @@ public void unloadModule(String moduleName) throws RestException{ * * @since ari_1_8_0 *********************************************************/ -public void getModule(String moduleName, AriCallback callback){ +public void loadModule(String moduleName, AriCallback callback){ throw new UnsupportedOperationException("Method availble from ..."); }; /********************************************************** * * - * @since ari_1_8_0 + * @since ari_1_9_0 *********************************************************/ -public void updateObject(String configClass, String objectType, String id, Map fields, AriCallback> callback){ +public void addLog(String logChannelName, String configuration, AriCallback callback){ throw new UnsupportedOperationException("Method availble from ..."); }; /********************************************************** - * Delete a dynamic configuration object. * * * @since ari_1_8_0 *********************************************************/ -public void deleteObject(String configClass, String objectType, String id) throws RestException{ +public void reloadModule(String moduleName, AriCallback callback){ throw new UnsupportedOperationException("Method availble from ..."); }; /********************************************************** - * Rotates a log channel. + * Gets Asterisk log channel information. * * * @since ari_1_9_0 *********************************************************/ -public void rotateLog(String logChannelName) throws RestException{ +public List listLogChannels() throws RestException{ throw new UnsupportedOperationException("Method availble from ..."); }; /********************************************************** * * - * @since ari_1_9_0 + * @since ari_1_8_0 *********************************************************/ -public void listLogChannels(AriCallback> callback){ +public void getObject(String configClass, String objectType, String id, AriCallback> callback){ throw new UnsupportedOperationException("Method availble from ..."); }; @@ -288,46 +286,48 @@ public void addLog(String logChannelName, String configuration) throws RestExcep /********************************************************** * * - * @since ari_1_8_0 + * @since ari_1_9_0 *********************************************************/ -public void listModules(AriCallback> callback){ +public void listLogChannels(AriCallback> callback){ throw new UnsupportedOperationException("Method availble from ..."); }; /********************************************************** - * Deletes a log channel. + * List Asterisk modules. * * - * @since ari_1_9_0 + * @since ari_1_8_0 *********************************************************/ -public void deleteLog(String logChannelName) throws RestException{ +public List listModules() throws RestException{ throw new UnsupportedOperationException("Method availble from ..."); }; /********************************************************** + * Reload an Asterisk module. * * - * @since ari_1_9_0 + * @since ari_1_8_0 *********************************************************/ -public void deleteLog(String logChannelName, AriCallback callback){ +public void reloadModule(String moduleName) throws RestException{ throw new UnsupportedOperationException("Method availble from ..."); }; /********************************************************** * * - * @since ari_1_8_0 + * @since ari_1_9_0 *********************************************************/ -public void loadModule(String moduleName, AriCallback callback){ +public void deleteLog(String logChannelName, AriCallback callback){ throw new UnsupportedOperationException("Method availble from ..."); }; /********************************************************** + * Delete a dynamic configuration object. * * * @since ari_1_8_0 *********************************************************/ -public void getObject(String configClass, String objectType, String id, AriCallback> callback){ +public void deleteObject(String configClass, String objectType, String id) throws RestException{ throw new UnsupportedOperationException("Method availble from ..."); }; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_0_0/actions/ActionBridges_impl_ari_1_0_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_0_0/actions/ActionBridges_impl_ari_1_0_0.java index 85027a6a..e0865d0a 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_0_0/actions/ActionBridges_impl_ari_1_0_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_0_0/actions/ActionBridges_impl_ari_1_0_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Wed Aug 31 18:05:11 CEST 2016 +// Generated on: Sat Feb 04 15:23:09 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; @@ -313,6 +313,15 @@ public void create(String type, String bridgeId, String name, AriCallback callback){ + throw new UnsupportedOperationException("Method availble from ..."); +}; + /********************************************************** * * @@ -323,11 +332,22 @@ public void createWithId(String type, String bridgeId, String name, AriCallback< }; /********************************************************** + * Start playback of media on a bridge. + * The media URI may be any of a number of URI's. Currently sound: and recording: URI's are supported. This operation creates a playback resource that can be used to control the playback of media (pause, rewind, fast forward, etc.) * + * @since ari_1_5_0 + *********************************************************/ +public Playback playWithId(String bridgeId, String playbackId, String media, String lang, int offsetms, int skipms) throws RestException{ + throw new UnsupportedOperationException("Method availble from ..."); +}; + +/********************************************************** + * Create a new bridge. + * This bridge persists until it has been shut down, or Asterisk has been shut down. * - * @since ari_0_0_1 + * @since ari_1_5_0 *********************************************************/ -public void create(String type, AriCallback callback){ +public Bridge create(String type, String bridgeId, String name) throws RestException{ throw new UnsupportedOperationException("Method availble from ..."); }; @@ -341,22 +361,31 @@ public void playWithId(String bridgeId, String playbackId, String media, String }; /********************************************************** - * Create a new bridge or updates an existing one. - * This bridge persists until it has been shut down, or Asterisk has been shut down. * - * @since ari_1_7_0 + * + * @since ari_1_5_0 *********************************************************/ -public Bridge createWithId(String type, String bridgeId, String name) throws RestException{ +public void create_or_update_with_id(String type, String bridgeId, String name, AriCallback callback){ throw new UnsupportedOperationException("Method availble from ..."); }; /********************************************************** - * Create a new bridge. + * Set a channel as the video source in a multi-party mixing bridge. This operation has no effect on bridges with two or fewer participants. + * + * + * @since ari_2_0_0 + *********************************************************/ +public void setVideoSource(String bridgeId, String channelId) throws RestException{ + throw new UnsupportedOperationException("Method availble from ..."); +}; + +/********************************************************** + * Create a new bridge or updates an existing one. * This bridge persists until it has been shut down, or Asterisk has been shut down. * * @since ari_1_5_0 *********************************************************/ -public Bridge create(String type, String bridgeId, String name) throws RestException{ +public Bridge create_or_update_with_id(String type, String bridgeId, String name) throws RestException{ throw new UnsupportedOperationException("Method availble from ..."); }; @@ -381,30 +410,39 @@ public Playback play(String bridgeId, String media, String lang, int offsetms, i }; /********************************************************** - * Start playback of media on a bridge. - * The media URI may be any of a number of URI's. Currently sound: and recording: URI's are supported. This operation creates a playback resource that can be used to control the playback of media (pause, rewind, fast forward, etc.) + * Removes any explicit video source in a multi-party mixing bridge. This operation has no effect on bridges with two or fewer participants. When no explicit video source is set, talk detection will be used to determine the active video stream. * - * @since ari_1_5_0 + * + * @since ari_2_0_0 *********************************************************/ -public Playback playWithId(String bridgeId, String playbackId, String media, String lang, int offsetms, int skipms) throws RestException{ +public void clearVideoSource(String bridgeId) throws RestException{ throw new UnsupportedOperationException("Method availble from ..."); }; /********************************************************** * * - * @since ari_1_5_0 + * @since ari_0_0_1 *********************************************************/ -public void play(String bridgeId, String media, String lang, int offsetms, int skipms, String playbackId, AriCallback callback){ +public void create(String type, AriCallback callback){ throw new UnsupportedOperationException("Method availble from ..."); }; /********************************************************** * * - * @since ari_1_5_0 + * @since ari_2_0_0 *********************************************************/ -public void create_or_update_with_id(String type, String bridgeId, String name, AriCallback callback){ +public void setVideoSource(String bridgeId, String channelId, AriCallback callback){ + throw new UnsupportedOperationException("Method availble from ..."); +}; + +/********************************************************** + * + * + * @since ari_2_0_0 + *********************************************************/ +public void clearVideoSource(String bridgeId, AriCallback callback){ throw new UnsupportedOperationException("Method availble from ..."); }; @@ -412,9 +450,9 @@ public void create_or_update_with_id(String type, String bridgeId, String name, * Create a new bridge or updates an existing one. * This bridge persists until it has been shut down, or Asterisk has been shut down. * - * @since ari_1_5_0 + * @since ari_1_7_0 *********************************************************/ -public Bridge create_or_update_with_id(String type, String bridgeId, String name) throws RestException{ +public Bridge createWithId(String type, String bridgeId, String name) throws RestException{ throw new UnsupportedOperationException("Method availble from ..."); }; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_0_0/actions/ActionChannels_impl_ari_1_0_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_0_0/actions/ActionChannels_impl_ari_1_0_0.java index d373be06..1aa8a0d2 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_0_0/actions/ActionChannels_impl_ari_1_0_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_0_0/actions/ActionChannels_impl_ari_1_0_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Wed Aug 31 18:05:11 CEST 2016 +// Generated on: Sat Feb 04 15:23:09 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; @@ -634,35 +634,36 @@ public void setChannelVar(String channelId, String variable, String value, AriCa * * @since ari_1_5_0 *********************************************************/ -public void originateWithId(String channelId, String endpoint, String extension, String context, long priority, String app, String appArgs, String callerId, int timeout, Map variables, String otherChannelId, AriCallback callback){ +public void play(String channelId, String media, String lang, int offsetms, int skipms, String playbackId, AriCallback callback){ throw new UnsupportedOperationException("Method availble from ..."); }; /********************************************************** * * - * @since ari_1_10_0 + * @since ari_1_8_0 *********************************************************/ -public void dial(String channelId, String caller, int timeout, AriCallback callback){ +public void redirect(String channelId, String endpoint, AriCallback callback){ throw new UnsupportedOperationException("Method availble from ..."); }; /********************************************************** - * + * Start snooping. + * Snoop (spy/whisper) on a specific channel. * * @since ari_1_5_0 *********************************************************/ -public void playWithId(String channelId, String playbackId, String media, String lang, int offsetms, int skipms, AriCallback callback){ +public Channel snoopChannelWithId(String channelId, String snoopId, String spy, String whisper, String app, String appArgs) throws RestException{ throw new UnsupportedOperationException("Method availble from ..."); }; /********************************************************** - * Dial a created channel. - * + * Start playback of media and specify the playbackId. + * The media URI may be any of a number of URI's. Currently sound: and recording: URI's are supported. This operation creates a playback resource that can be used to control the playback of media (pause, rewind, fast forward, etc.) * - * @since ari_1_10_0 + * @since ari_1_5_0 *********************************************************/ -public void dial(String channelId, String caller, int timeout) throws RestException{ +public Playback playWithId(String channelId, String playbackId, String media, String lang, int offsetms, int skipms) throws RestException{ throw new UnsupportedOperationException("Method availble from ..."); }; @@ -671,7 +672,7 @@ public void dial(String channelId, String caller, int timeout) throws RestExcept * * @since ari_1_5_0 *********************************************************/ -public void snoopChannelWithId(String channelId, String snoopId, String spy, String whisper, String app, String appArgs, AriCallback callback){ +public void playWithId(String channelId, String playbackId, String media, String lang, int offsetms, int skipms, AriCallback callback){ throw new UnsupportedOperationException("Method availble from ..."); }; @@ -680,74 +681,65 @@ public void snoopChannelWithId(String channelId, String snoopId, String spy, Str * * @since ari_1_7_0 *********************************************************/ -public void continueInDialplan(String channelId, String context, String extension, int priority, String label, AriCallback callback){ +public void originate(String endpoint, String extension, String context, long priority, String label, String app, String appArgs, String callerId, int timeout, Map variables, String channelId, String otherChannelId, String originator, AriCallback callback){ throw new UnsupportedOperationException("Method availble from ..."); }; /********************************************************** + * Create a new channel (originate with id). + * The new channel is created immediately and a snapshot of it returned. If a Stasis application is provided it will be automatically subscribed to the originated channel for further events and updates. * - * - * @since ari_1_10_0 + * @since ari_1_5_0 *********************************************************/ -public void originateWithId(String channelId, String endpoint, String extension, String context, long priority, String label, String app, String appArgs, String callerId, int timeout, Map variables, String otherChannelId, String originator, String formats, AriCallback callback){ +public Channel originateWithId(String channelId, String endpoint, String extension, String context, long priority, String app, String appArgs, String callerId, int timeout, Map variables, String otherChannelId) throws RestException{ throw new UnsupportedOperationException("Method availble from ..."); }; /********************************************************** - * Create a new channel (originate). - * The new channel is created immediately and a snapshot of it returned. If a Stasis application is provided it will be automatically subscribed to the originated channel for further events and updates. + * * * @since ari_1_10_0 *********************************************************/ -public Channel originate(String endpoint, String extension, String context, long priority, String label, String app, String appArgs, String callerId, int timeout, Map variables, String channelId, String otherChannelId, String originator, String formats) throws RestException{ +public void dial(String channelId, String caller, int timeout, AriCallback callback){ throw new UnsupportedOperationException("Method availble from ..."); }; /********************************************************** - * Start playback of media. - * The media URI may be any of a number of URI's. Currently sound:, recording:, number:, digits:, characters:, and tone: URI's are supported. This operation creates a playback resource that can be used to control the playback of media (pause, rewind, fast forward, etc.) + * * * @since ari_1_5_0 *********************************************************/ -public Playback play(String channelId, String media, String lang, int offsetms, int skipms, String playbackId) throws RestException{ +public void originate(String endpoint, String extension, String context, long priority, String app, String appArgs, String callerId, int timeout, Map variables, String channelId, String otherChannelId, AriCallback callback){ throw new UnsupportedOperationException("Method availble from ..."); }; /********************************************************** - * Redirect the channel to a different location. * * - * @since ari_1_8_0 + * @since ari_1_5_0 *********************************************************/ -public void redirect(String channelId, String endpoint) throws RestException{ +public void snoopChannelWithId(String channelId, String snoopId, String spy, String whisper, String app, String appArgs, AriCallback callback){ throw new UnsupportedOperationException("Method availble from ..."); }; /********************************************************** * * - * @since ari_1_8_0 + * @since ari_1_10_0 *********************************************************/ -public void redirect(String channelId, String endpoint, AriCallback callback){ +public void originateWithId(String channelId, String endpoint, String extension, String context, long priority, String label, String app, String appArgs, String callerId, int timeout, Map variables, String otherChannelId, String originator, String formats, AriCallback callback){ throw new UnsupportedOperationException("Method availble from ..."); }; /********************************************************** - * Start snooping. - * Snoop (spy/whisper) on a specific channel. - * - * @since ari_1_5_0 - *********************************************************/ -public Channel snoopChannelWithId(String channelId, String snoopId, String spy, String whisper, String app, String appArgs) throws RestException{ + * Exit application{ throw new UnsupportedOperationException("Method availble from ..."); -}; - -/********************************************************** +}; continue execution in the dialplan. * * * @since ari_1_7_0 *********************************************************/ -public void originate(String endpoint, String extension, String context, long priority, String label, String app, String appArgs, String callerId, int timeout, Map variables, String channelId, String otherChannelId, String originator, AriCallback callback){ +public void continueInDialplan(String channelId, String context, String extension, int priority, String label) throws RestException{ throw new UnsupportedOperationException("Method availble from ..."); }; @@ -762,138 +754,146 @@ public Channel originate(String endpoint, String extension, String context, long }; /********************************************************** - * Create channel. * * - * @since ari_1_10_0 + * @since ari_1_5_0 *********************************************************/ -public Channel create(String endpoint, String app, String appArgs, String channelId, String otherChannelId, String originator, String formats) throws RestException{ +public void originateWithId(String channelId, String endpoint, String extension, String context, long priority, String app, String appArgs, String callerId, int timeout, Map variables, String otherChannelId, AriCallback callback){ throw new UnsupportedOperationException("Method availble from ..."); }; /********************************************************** + * Create a new channel (originate with id). + * The new channel is created immediately and a snapshot of it returned. If a Stasis application is provided it will be automatically subscribed to the originated channel for further events and updates. * - * - * @since ari_1_5_0 + * @since ari_1_7_0 *********************************************************/ -public void snoopChannel(String channelId, String spy, String whisper, String app, String appArgs, String snoopId, AriCallback callback){ +public Channel originateWithId(String channelId, String endpoint, String extension, String context, long priority, String label, String app, String appArgs, String callerId, int timeout, Map variables, String otherChannelId, String originator) throws RestException{ throw new UnsupportedOperationException("Method availble from ..."); }; /********************************************************** + * Create a new channel (originate). + * The new channel is created immediately and a snapshot of it returned. If a Stasis application is provided it will be automatically subscribed to the originated channel for further events and updates. * + * @since ari_1_10_0 + *********************************************************/ +public Channel originate(String endpoint, String extension, String context, long priority, String label, String app, String appArgs, String callerId, int timeout, Map variables, String channelId, String otherChannelId, String originator, String formats) throws RestException{ + throw new UnsupportedOperationException("Method availble from ..."); +}; + +/********************************************************** + * Create a new channel (originate with id). + * The new channel is created immediately and a snapshot of it returned. If a Stasis application is provided it will be automatically subscribed to the originated channel for further events and updates. * - * @since ari_1_5_0 + * @since ari_1_10_0 *********************************************************/ -public void play(String channelId, String media, String lang, int offsetms, int skipms, String playbackId, AriCallback callback){ +public Channel originateWithId(String channelId, String endpoint, String extension, String context, long priority, String label, String app, String appArgs, String callerId, int timeout, Map variables, String otherChannelId, String originator, String formats) throws RestException{ throw new UnsupportedOperationException("Method availble from ..."); }; /********************************************************** * * - * @since ari_1_5_0 + * @since ari_1_7_0 *********************************************************/ -public void originate(String endpoint, String extension, String context, long priority, String app, String appArgs, String callerId, int timeout, Map variables, String channelId, String otherChannelId, AriCallback callback){ +public void originateWithId(String channelId, String endpoint, String extension, String context, long priority, String label, String app, String appArgs, String callerId, int timeout, Map variables, String otherChannelId, String originator, AriCallback callback){ throw new UnsupportedOperationException("Method availble from ..."); }; /********************************************************** - * Create a new channel (originate with id). - * The new channel is created immediately and a snapshot of it returned. If a Stasis application is provided it will be automatically subscribed to the originated channel for further events and updates. * - * @since ari_1_5_0 + * + * @since ari_1_7_0 *********************************************************/ -public Channel originateWithId(String channelId, String endpoint, String extension, String context, long priority, String app, String appArgs, String callerId, int timeout, Map variables, String otherChannelId) throws RestException{ +public void continueInDialplan(String channelId, String context, String extension, int priority, String label, AriCallback callback){ throw new UnsupportedOperationException("Method availble from ..."); }; /********************************************************** - * Create a new channel (originate with id). - * The new channel is created immediately and a snapshot of it returned. If a Stasis application is provided it will be automatically subscribed to the originated channel for further events and updates. + * Dial a created channel. + * * * @since ari_1_10_0 *********************************************************/ -public Channel originateWithId(String channelId, String endpoint, String extension, String context, long priority, String label, String app, String appArgs, String callerId, int timeout, Map variables, String otherChannelId, String originator, String formats) throws RestException{ +public void dial(String channelId, String caller, int timeout) throws RestException{ throw new UnsupportedOperationException("Method availble from ..."); }; /********************************************************** * * - * @since ari_1_7_0 + * @since ari_1_10_0 *********************************************************/ -public void originateWithId(String channelId, String endpoint, String extension, String context, long priority, String label, String app, String appArgs, String callerId, int timeout, Map variables, String otherChannelId, String originator, AriCallback callback){ +public void create(String endpoint, String app, String appArgs, String channelId, String otherChannelId, String originator, String formats, AriCallback callback){ throw new UnsupportedOperationException("Method availble from ..."); }; /********************************************************** + * Create channel. * * * @since ari_1_10_0 *********************************************************/ -public void create(String endpoint, String app, String appArgs, String channelId, String otherChannelId, String originator, String formats, AriCallback callback){ +public Channel create(String endpoint, String app, String appArgs, String channelId, String otherChannelId, String originator, String formats) throws RestException{ throw new UnsupportedOperationException("Method availble from ..."); }; /********************************************************** - * Create a new channel (originate). - * The new channel is created immediately and a snapshot of it returned. If a Stasis application is provided it will be automatically subscribed to the originated channel for further events and updates. + * * * @since ari_1_5_0 *********************************************************/ -public Channel originate(String endpoint, String extension, String context, long priority, String app, String appArgs, String callerId, int timeout, Map variables, String channelId, String otherChannelId) throws RestException{ +public void snoopChannel(String channelId, String spy, String whisper, String app, String appArgs, String snoopId, AriCallback callback){ throw new UnsupportedOperationException("Method availble from ..."); }; /********************************************************** - * Create a new channel (originate with id). - * The new channel is created immediately and a snapshot of it returned. If a Stasis application is provided it will be automatically subscribed to the originated channel for further events and updates. * - * @since ari_1_7_0 + * + * @since ari_1_10_0 *********************************************************/ -public Channel originateWithId(String channelId, String endpoint, String extension, String context, long priority, String label, String app, String appArgs, String callerId, int timeout, Map variables, String otherChannelId, String originator) throws RestException{ +public void originate(String endpoint, String extension, String context, long priority, String label, String app, String appArgs, String callerId, int timeout, Map variables, String channelId, String otherChannelId, String originator, String formats, AriCallback callback){ throw new UnsupportedOperationException("Method availble from ..."); }; /********************************************************** - * Start snooping. - * Snoop (spy/whisper) on a specific channel. + * Start playback of media. + * The media URI may be any of a number of URI's. Currently sound:, recording:, number:, digits:, characters:, and tone: URI's are supported. This operation creates a playback resource that can be used to control the playback of media (pause, rewind, fast forward, etc.) * * @since ari_1_5_0 *********************************************************/ -public Channel snoopChannel(String channelId, String spy, String whisper, String app, String appArgs, String snoopId) throws RestException{ +public Playback play(String channelId, String media, String lang, int offsetms, int skipms, String playbackId) throws RestException{ throw new UnsupportedOperationException("Method availble from ..."); }; /********************************************************** - * Exit application{ - throw new UnsupportedOperationException("Method availble from ..."); -}; continue execution in the dialplan. - * + * Create a new channel (originate). + * The new channel is created immediately and a snapshot of it returned. If a Stasis application is provided it will be automatically subscribed to the originated channel for further events and updates. * - * @since ari_1_7_0 + * @since ari_1_5_0 *********************************************************/ -public void continueInDialplan(String channelId, String context, String extension, int priority, String label) throws RestException{ +public Channel originate(String endpoint, String extension, String context, long priority, String app, String appArgs, String callerId, int timeout, Map variables, String channelId, String otherChannelId) throws RestException{ throw new UnsupportedOperationException("Method availble from ..."); }; /********************************************************** - * Start playback of media and specify the playbackId. - * The media URI may be any of a number of URI's. Currently sound: and recording: URI's are supported. This operation creates a playback resource that can be used to control the playback of media (pause, rewind, fast forward, etc.) + * Start snooping. + * Snoop (spy/whisper) on a specific channel. * * @since ari_1_5_0 *********************************************************/ -public Playback playWithId(String channelId, String playbackId, String media, String lang, int offsetms, int skipms) throws RestException{ +public Channel snoopChannel(String channelId, String spy, String whisper, String app, String appArgs, String snoopId) throws RestException{ throw new UnsupportedOperationException("Method availble from ..."); }; /********************************************************** + * Redirect the channel to a different location. * * - * @since ari_1_10_0 + * @since ari_1_8_0 *********************************************************/ -public void originate(String endpoint, String extension, String context, long priority, String label, String app, String appArgs, String callerId, int timeout, Map variables, String channelId, String otherChannelId, String originator, String formats, AriCallback callback){ +public void redirect(String channelId, String endpoint) throws RestException{ throw new UnsupportedOperationException("Method availble from ..."); }; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_0_0/actions/ActionDeviceStates_impl_ari_1_0_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_0_0/actions/ActionDeviceStates_impl_ari_1_0_0.java index bdb1d057..9059b0e3 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_0_0/actions/ActionDeviceStates_impl_ari_1_0_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_0_0/actions/ActionDeviceStates_impl_ari_1_0_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Wed Aug 31 18:05:11 CEST 2016 +// Generated on: Sat Feb 04 15:23:09 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_0_0/actions/ActionEndpoints_impl_ari_1_0_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_0_0/actions/ActionEndpoints_impl_ari_1_0_0.java index 7c19c7e4..1dad50e0 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_0_0/actions/ActionEndpoints_impl_ari_1_0_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_0_0/actions/ActionEndpoints_impl_ari_1_0_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Wed Aug 31 18:05:11 CEST 2016 +// Generated on: Sat Feb 04 15:23:09 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; @@ -103,40 +103,40 @@ public void get(String tech, String resource, AriCallback callback) { } /********************************************************** + * Send a message to some endpoint in a technology. * * * @since ari_1_5_0 *********************************************************/ -public void sendMessage(String to, String from, String body, Map variables, AriCallback callback){ +public void sendMessageToEndpoint(String tech, String resource, String from, String body, Map variables) throws RestException{ throw new UnsupportedOperationException("Method availble from ..."); }; /********************************************************** + * Send a message to some technology URI or endpoint. * * * @since ari_1_5_0 *********************************************************/ -public void sendMessageToEndpoint(String tech, String resource, String from, String body, Map variables, AriCallback callback){ +public void sendMessage(String to, String from, String body, Map variables) throws RestException{ throw new UnsupportedOperationException("Method availble from ..."); }; /********************************************************** - * Send a message to some endpoint in a technology. * * * @since ari_1_5_0 *********************************************************/ -public void sendMessageToEndpoint(String tech, String resource, String from, String body, Map variables) throws RestException{ +public void sendMessage(String to, String from, String body, Map variables, AriCallback callback){ throw new UnsupportedOperationException("Method availble from ..."); }; /********************************************************** - * Send a message to some technology URI or endpoint. * * * @since ari_1_5_0 *********************************************************/ -public void sendMessage(String to, String from, String body, Map variables) throws RestException{ +public void sendMessageToEndpoint(String tech, String resource, String from, String body, Map variables, AriCallback callback){ throw new UnsupportedOperationException("Method availble from ..."); }; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_0_0/actions/ActionEvents_impl_ari_1_0_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_0_0/actions/ActionEvents_impl_ari_1_0_0.java index 371be715..3db645a7 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_0_0/actions/ActionEvents_impl_ari_1_0_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_0_0/actions/ActionEvents_impl_ari_1_0_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Wed Aug 31 18:05:11 CEST 2016 +// Generated on: Sat Feb 04 15:23:09 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; @@ -51,40 +51,40 @@ public void eventWebsocket(String app, AriCallback callback) { } /********************************************************** - * Generate a user event. * * * @since ari_1_5_0 *********************************************************/ -public void userEvent(String eventName, String application, String source, Map variables) throws RestException{ +public void userEvent(String eventName, String application, String source, Map variables, AriCallback callback){ throw new UnsupportedOperationException("Method availble from ..."); }; /********************************************************** + * WebSocket connection for events. * * * @since ari_1_9_0 *********************************************************/ -public void eventWebsocket(String app, boolean subscribeAll, AriCallback callback){ +public Message eventWebsocket(String app, boolean subscribeAll) throws RestException{ throw new UnsupportedOperationException("Method availble from ..."); }; /********************************************************** + * Generate a user event. * * * @since ari_1_5_0 *********************************************************/ -public void userEvent(String eventName, String application, String source, Map variables, AriCallback callback){ +public void userEvent(String eventName, String application, String source, Map variables) throws RestException{ throw new UnsupportedOperationException("Method availble from ..."); }; /********************************************************** - * WebSocket connection for events. * * * @since ari_1_9_0 *********************************************************/ -public Message eventWebsocket(String app, boolean subscribeAll) throws RestException{ +public void eventWebsocket(String app, boolean subscribeAll, AriCallback callback){ throw new UnsupportedOperationException("Method availble from ..."); }; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_0_0/actions/ActionPlaybacks_impl_ari_1_0_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_0_0/actions/ActionPlaybacks_impl_ari_1_0_0.java index 6b2d5f0a..8b978939 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_0_0/actions/ActionPlaybacks_impl_ari_1_0_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_0_0/actions/ActionPlaybacks_impl_ari_1_0_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Wed Aug 31 18:05:11 CEST 2016 +// Generated on: Sat Feb 04 15:23:09 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_0_0/actions/ActionRecordings_impl_ari_1_0_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_0_0/actions/ActionRecordings_impl_ari_1_0_0.java index 6b700a59..6eed8021 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_0_0/actions/ActionRecordings_impl_ari_1_0_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_0_0/actions/ActionRecordings_impl_ari_1_0_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Wed Aug 31 18:05:11 CEST 2016 +// Generated on: Sat Feb 04 15:23:09 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; @@ -295,21 +295,21 @@ public void getStoredFile(String recordingName, AriCallback callback){ }; /********************************************************** - * Get the file associated with the stored recording. * * - * @since ari_1_10_0 + * @since ari_1_5_0 *********************************************************/ -public byte[] getStoredFile(String recordingName) throws RestException{ +public void copyStored(String recordingName, String destinationRecordingName, AriCallback callback){ throw new UnsupportedOperationException("Method availble from ..."); }; /********************************************************** + * Get the file associated with the stored recording. * * - * @since ari_1_5_0 + * @since ari_1_10_0 *********************************************************/ -public void copyStored(String recordingName, String destinationRecordingName, AriCallback callback){ +public byte[] getStoredFile(String recordingName) throws RestException{ throw new UnsupportedOperationException("Method availble from ..."); }; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_0_0/actions/ActionSounds_impl_ari_1_0_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_0_0/actions/ActionSounds_impl_ari_1_0_0.java index a162e6df..5a397fe3 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_0_0/actions/ActionSounds_impl_ari_1_0_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_0_0/actions/ActionSounds_impl_ari_1_0_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Wed Aug 31 18:05:11 CEST 2016 +// Generated on: Sat Feb 04 15:23:09 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_0_0/models/ApplicationReplaced_impl_ari_1_0_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_0_0/models/ApplicationReplaced_impl_ari_1_0_0.java index d249ddaa..63c41df3 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_0_0/models/ApplicationReplaced_impl_ari_1_0_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_0_0/models/ApplicationReplaced_impl_ari_1_0_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Wed Aug 31 18:05:10 CEST 2016 +// Generated on: Sat Feb 04 15:23:09 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_0_0/models/Application_impl_ari_1_0_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_0_0/models/Application_impl_ari_1_0_0.java index 05252a02..6f215d5b 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_0_0/models/Application_impl_ari_1_0_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_0_0/models/Application_impl_ari_1_0_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Wed Aug 31 18:05:10 CEST 2016 +// Generated on: Sat Feb 04 15:23:09 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_0_0/models/AsteriskInfo_impl_ari_1_0_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_0_0/models/AsteriskInfo_impl_ari_1_0_0.java index b1079833..f2d2708d 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_0_0/models/AsteriskInfo_impl_ari_1_0_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_0_0/models/AsteriskInfo_impl_ari_1_0_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Wed Aug 31 18:05:10 CEST 2016 +// Generated on: Sat Feb 04 15:23:09 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_0_0/models/BridgeCreated_impl_ari_1_0_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_0_0/models/BridgeCreated_impl_ari_1_0_0.java index f7c6bf83..2b3448b2 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_0_0/models/BridgeCreated_impl_ari_1_0_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_0_0/models/BridgeCreated_impl_ari_1_0_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Wed Aug 31 18:05:10 CEST 2016 +// Generated on: Sat Feb 04 15:23:09 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_0_0/models/BridgeDestroyed_impl_ari_1_0_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_0_0/models/BridgeDestroyed_impl_ari_1_0_0.java index b1787e23..c1ef270b 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_0_0/models/BridgeDestroyed_impl_ari_1_0_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_0_0/models/BridgeDestroyed_impl_ari_1_0_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Wed Aug 31 18:05:10 CEST 2016 +// Generated on: Sat Feb 04 15:23:09 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_0_0/models/BridgeMerged_impl_ari_1_0_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_0_0/models/BridgeMerged_impl_ari_1_0_0.java index 2df23a07..5bce2e10 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_0_0/models/BridgeMerged_impl_ari_1_0_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_0_0/models/BridgeMerged_impl_ari_1_0_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Wed Aug 31 18:05:10 CEST 2016 +// Generated on: Sat Feb 04 15:23:09 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_0_0/models/Bridge_impl_ari_1_0_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_0_0/models/Bridge_impl_ari_1_0_0.java index ec2f7ba2..11d6e712 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_0_0/models/Bridge_impl_ari_1_0_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_0_0/models/Bridge_impl_ari_1_0_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Wed Aug 31 18:05:10 CEST 2016 +// Generated on: Sat Feb 04 15:23:09 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; @@ -100,6 +100,41 @@ public void setTechnology(String val ) { technology = val; } -/** No missing signatures from interface */ +/********************************************************** + * The video mode the bridge is using. One of 'none', 'talker', or 'single'. + * + * @since ari_2_0_0 + *********************************************************/ + public String getVideo_mode(){ + throw new UnsupportedOperationException("Method availble from ..."); +}; + +/********************************************************** + * The ID of the channel that is the source of video in this bridge, if one exists. + * + * @since ari_2_0_0 + *********************************************************/ + public String getVideo_source_id(){ + throw new UnsupportedOperationException("Method availble from ..."); +}; + +/********************************************************** + * The video mode the bridge is using. One of 'none', 'talker', or 'single'. + * + * @since ari_2_0_0 + *********************************************************/ + public void setVideo_mode(String val ){ + throw new UnsupportedOperationException("Method availble from ..."); +}; + +/********************************************************** + * The ID of the channel that is the source of video in this bridge, if one exists. + * + * @since ari_2_0_0 + *********************************************************/ + public void setVideo_source_id(String val ){ + throw new UnsupportedOperationException("Method availble from ..."); +}; + } diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_0_0/models/BuildInfo_impl_ari_1_0_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_0_0/models/BuildInfo_impl_ari_1_0_0.java index dba0a3f5..9e52fd6a 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_0_0/models/BuildInfo_impl_ari_1_0_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_0_0/models/BuildInfo_impl_ari_1_0_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Wed Aug 31 18:05:10 CEST 2016 +// Generated on: Sat Feb 04 15:23:09 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_0_0/models/CallerID_impl_ari_1_0_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_0_0/models/CallerID_impl_ari_1_0_0.java index 94ed7b8c..7e58c79d 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_0_0/models/CallerID_impl_ari_1_0_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_0_0/models/CallerID_impl_ari_1_0_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Wed Aug 31 18:05:10 CEST 2016 +// Generated on: Sat Feb 04 15:23:09 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_0_0/models/ChannelCallerId_impl_ari_1_0_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_0_0/models/ChannelCallerId_impl_ari_1_0_0.java index b3eb9ac7..9296c9bf 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_0_0/models/ChannelCallerId_impl_ari_1_0_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_0_0/models/ChannelCallerId_impl_ari_1_0_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Wed Aug 31 18:05:10 CEST 2016 +// Generated on: Sat Feb 04 15:23:09 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_0_0/models/ChannelCreated_impl_ari_1_0_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_0_0/models/ChannelCreated_impl_ari_1_0_0.java index 6c446ecc..381c9327 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_0_0/models/ChannelCreated_impl_ari_1_0_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_0_0/models/ChannelCreated_impl_ari_1_0_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Wed Aug 31 18:05:10 CEST 2016 +// Generated on: Sat Feb 04 15:23:09 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_0_0/models/ChannelDestroyed_impl_ari_1_0_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_0_0/models/ChannelDestroyed_impl_ari_1_0_0.java index 0c21405a..5342ae01 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_0_0/models/ChannelDestroyed_impl_ari_1_0_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_0_0/models/ChannelDestroyed_impl_ari_1_0_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Wed Aug 31 18:05:10 CEST 2016 +// Generated on: Sat Feb 04 15:23:09 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_0_0/models/ChannelDialplan_impl_ari_1_0_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_0_0/models/ChannelDialplan_impl_ari_1_0_0.java index f011699d..65927544 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_0_0/models/ChannelDialplan_impl_ari_1_0_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_0_0/models/ChannelDialplan_impl_ari_1_0_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Wed Aug 31 18:05:10 CEST 2016 +// Generated on: Sat Feb 04 15:23:09 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_0_0/models/ChannelDtmfReceived_impl_ari_1_0_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_0_0/models/ChannelDtmfReceived_impl_ari_1_0_0.java index 7a03ea22..db0304c7 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_0_0/models/ChannelDtmfReceived_impl_ari_1_0_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_0_0/models/ChannelDtmfReceived_impl_ari_1_0_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Wed Aug 31 18:05:10 CEST 2016 +// Generated on: Sat Feb 04 15:23:09 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_0_0/models/ChannelEnteredBridge_impl_ari_1_0_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_0_0/models/ChannelEnteredBridge_impl_ari_1_0_0.java index db8efac8..c24a93dd 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_0_0/models/ChannelEnteredBridge_impl_ari_1_0_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_0_0/models/ChannelEnteredBridge_impl_ari_1_0_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Wed Aug 31 18:05:10 CEST 2016 +// Generated on: Sat Feb 04 15:23:09 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_0_0/models/ChannelHangupRequest_impl_ari_1_0_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_0_0/models/ChannelHangupRequest_impl_ari_1_0_0.java index 952f4dae..125be123 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_0_0/models/ChannelHangupRequest_impl_ari_1_0_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_0_0/models/ChannelHangupRequest_impl_ari_1_0_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Wed Aug 31 18:05:10 CEST 2016 +// Generated on: Sat Feb 04 15:23:09 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_0_0/models/ChannelLeftBridge_impl_ari_1_0_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_0_0/models/ChannelLeftBridge_impl_ari_1_0_0.java index 12908cc1..96434d2a 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_0_0/models/ChannelLeftBridge_impl_ari_1_0_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_0_0/models/ChannelLeftBridge_impl_ari_1_0_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Wed Aug 31 18:05:10 CEST 2016 +// Generated on: Sat Feb 04 15:23:09 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_0_0/models/ChannelStateChange_impl_ari_1_0_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_0_0/models/ChannelStateChange_impl_ari_1_0_0.java index b5488969..daa7c1f5 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_0_0/models/ChannelStateChange_impl_ari_1_0_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_0_0/models/ChannelStateChange_impl_ari_1_0_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Wed Aug 31 18:05:10 CEST 2016 +// Generated on: Sat Feb 04 15:23:09 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_0_0/models/ChannelUserevent_impl_ari_1_0_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_0_0/models/ChannelUserevent_impl_ari_1_0_0.java index fb3979a7..35caa476 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_0_0/models/ChannelUserevent_impl_ari_1_0_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_0_0/models/ChannelUserevent_impl_ari_1_0_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Wed Aug 31 18:05:10 CEST 2016 +// Generated on: Sat Feb 04 15:23:09 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; @@ -55,38 +55,38 @@ public void setUserevent(String val ) { } /********************************************************** - * A bridge that is signaled with the user event. + * A endpoint that is signaled with the user event. * * @since ari_1_5_0 *********************************************************/ - public void setBridge(Bridge val ){ + public Endpoint getEndpoint(){ throw new UnsupportedOperationException("Method availble from ..."); }; /********************************************************** - * A endpoint that is signaled with the user event. + * A bridge that is signaled with the user event. * * @since ari_1_5_0 *********************************************************/ - public void setEndpoint(Endpoint val ){ + public void setBridge(Bridge val ){ throw new UnsupportedOperationException("Method availble from ..."); }; /********************************************************** - * A endpoint that is signaled with the user event. + * A bridge that is signaled with the user event. * * @since ari_1_5_0 *********************************************************/ - public Endpoint getEndpoint(){ + public Bridge getBridge(){ throw new UnsupportedOperationException("Method availble from ..."); }; /********************************************************** - * A bridge that is signaled with the user event. + * A endpoint that is signaled with the user event. * * @since ari_1_5_0 *********************************************************/ - public Bridge getBridge(){ + public void setEndpoint(Endpoint val ){ throw new UnsupportedOperationException("Method availble from ..."); }; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_0_0/models/ChannelVarset_impl_ari_1_0_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_0_0/models/ChannelVarset_impl_ari_1_0_0.java index 4506519c..83df0f67 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_0_0/models/ChannelVarset_impl_ari_1_0_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_0_0/models/ChannelVarset_impl_ari_1_0_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Wed Aug 31 18:05:10 CEST 2016 +// Generated on: Sat Feb 04 15:23:09 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_0_0/models/Channel_impl_ari_1_0_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_0_0/models/Channel_impl_ari_1_0_0.java index 9d15cd36..9432e200 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_0_0/models/Channel_impl_ari_1_0_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_0_0/models/Channel_impl_ari_1_0_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Wed Aug 31 18:05:10 CEST 2016 +// Generated on: Sat Feb 04 15:23:09 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; @@ -129,5 +129,23 @@ public void setLanguage(String val ){ throw new UnsupportedOperationException("Method availble from ..."); }; +/********************************************************** + * Channel variables + * + * @since ari_2_0_0 + *********************************************************/ + public String getChannelvars(){ + throw new UnsupportedOperationException("Method availble from ..."); +}; + +/********************************************************** + * Channel variables + * + * @since ari_2_0_0 + *********************************************************/ + public void setChannelvars(String val ){ + throw new UnsupportedOperationException("Method availble from ..."); +}; + } diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_0_0/models/ConfigInfo_impl_ari_1_0_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_0_0/models/ConfigInfo_impl_ari_1_0_0.java index 2664e39f..884d17fc 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_0_0/models/ConfigInfo_impl_ari_1_0_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_0_0/models/ConfigInfo_impl_ari_1_0_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Wed Aug 31 18:05:10 CEST 2016 +// Generated on: Sat Feb 04 15:23:09 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_0_0/models/DeviceStateChanged_impl_ari_1_0_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_0_0/models/DeviceStateChanged_impl_ari_1_0_0.java index d6f4bcea..db480f09 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_0_0/models/DeviceStateChanged_impl_ari_1_0_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_0_0/models/DeviceStateChanged_impl_ari_1_0_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Wed Aug 31 18:05:10 CEST 2016 +// Generated on: Sat Feb 04 15:23:09 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_0_0/models/DeviceState_impl_ari_1_0_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_0_0/models/DeviceState_impl_ari_1_0_0.java index fe80b84e..c7b72e1a 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_0_0/models/DeviceState_impl_ari_1_0_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_0_0/models/DeviceState_impl_ari_1_0_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Wed Aug 31 18:05:10 CEST 2016 +// Generated on: Sat Feb 04 15:23:09 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_0_0/models/Dial_impl_ari_1_0_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_0_0/models/Dial_impl_ari_1_0_0.java index 325f92b9..ba48de19 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_0_0/models/Dial_impl_ari_1_0_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_0_0/models/Dial_impl_ari_1_0_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Wed Aug 31 18:05:10 CEST 2016 +// Generated on: Sat Feb 04 15:23:09 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_0_0/models/Dialed_impl_ari_1_0_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_0_0/models/Dialed_impl_ari_1_0_0.java index 3153186a..8077139b 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_0_0/models/Dialed_impl_ari_1_0_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_0_0/models/Dialed_impl_ari_1_0_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Wed Aug 31 18:05:10 CEST 2016 +// Generated on: Sat Feb 04 15:23:09 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_0_0/models/DialplanCEP_impl_ari_1_0_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_0_0/models/DialplanCEP_impl_ari_1_0_0.java index 3f60aa94..0a76cefe 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_0_0/models/DialplanCEP_impl_ari_1_0_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_0_0/models/DialplanCEP_impl_ari_1_0_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Wed Aug 31 18:05:10 CEST 2016 +// Generated on: Sat Feb 04 15:23:09 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_0_0/models/EndpointStateChange_impl_ari_1_0_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_0_0/models/EndpointStateChange_impl_ari_1_0_0.java index c93e6f54..01e481e9 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_0_0/models/EndpointStateChange_impl_ari_1_0_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_0_0/models/EndpointStateChange_impl_ari_1_0_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Wed Aug 31 18:05:10 CEST 2016 +// Generated on: Sat Feb 04 15:23:09 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_0_0/models/Endpoint_impl_ari_1_0_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_0_0/models/Endpoint_impl_ari_1_0_0.java index 66cea54e..948d5d39 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_0_0/models/Endpoint_impl_ari_1_0_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_0_0/models/Endpoint_impl_ari_1_0_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Wed Aug 31 18:05:10 CEST 2016 +// Generated on: Sat Feb 04 15:23:09 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_0_0/models/Event_impl_ari_1_0_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_0_0/models/Event_impl_ari_1_0_0.java index 04c2f024..047a1d11 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_0_0/models/Event_impl_ari_1_0_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_0_0/models/Event_impl_ari_1_0_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Wed Aug 31 18:05:10 CEST 2016 +// Generated on: Sat Feb 04 15:23:09 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_0_0/models/FormatLangPair_impl_ari_1_0_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_0_0/models/FormatLangPair_impl_ari_1_0_0.java index 3db8b437..5e7f13c6 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_0_0/models/FormatLangPair_impl_ari_1_0_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_0_0/models/FormatLangPair_impl_ari_1_0_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Wed Aug 31 18:05:10 CEST 2016 +// Generated on: Sat Feb 04 15:23:09 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_0_0/models/LiveRecording_impl_ari_1_0_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_0_0/models/LiveRecording_impl_ari_1_0_0.java index c0d227ac..11c6f93d 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_0_0/models/LiveRecording_impl_ari_1_0_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_0_0/models/LiveRecording_impl_ari_1_0_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Wed Aug 31 18:05:10 CEST 2016 +// Generated on: Sat Feb 04 15:23:09 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; @@ -66,56 +66,56 @@ public void setState(String val ) { } /********************************************************** - * Duration of silence, in seconds, detected in the recording. This is only available if the recording was initiated with a non-zero maxSilenceSeconds. + * URI for the channel or bridge being recorded * * @since ari_1_5_0 *********************************************************/ - public int getSilence_duration(){ + public String getTarget_uri(){ throw new UnsupportedOperationException("Method availble from ..."); }; /********************************************************** - * URI for the channel or bridge being recorded + * Duration of talking, in seconds, detected in the recording. This is only available if the recording was initiated with a non-zero maxSilenceSeconds. * * @since ari_1_5_0 *********************************************************/ - public void setTarget_uri(String val ){ + public void setTalking_duration(int val ){ throw new UnsupportedOperationException("Method availble from ..."); }; /********************************************************** - * URI for the channel or bridge being recorded + * Duration in seconds of the recording * * @since ari_1_5_0 *********************************************************/ - public String getTarget_uri(){ + public int getDuration(){ throw new UnsupportedOperationException("Method availble from ..."); }; /********************************************************** - * Duration in seconds of the recording + * URI for the channel or bridge being recorded * * @since ari_1_5_0 *********************************************************/ - public void setDuration(int val ){ + public void setTarget_uri(String val ){ throw new UnsupportedOperationException("Method availble from ..."); }; /********************************************************** - * Duration of talking, in seconds, detected in the recording. This is only available if the recording was initiated with a non-zero maxSilenceSeconds. + * Duration in seconds of the recording * * @since ari_1_5_0 *********************************************************/ - public void setTalking_duration(int val ){ + public void setDuration(int val ){ throw new UnsupportedOperationException("Method availble from ..."); }; /********************************************************** - * Duration in seconds of the recording + * Duration of silence, in seconds, detected in the recording. This is only available if the recording was initiated with a non-zero maxSilenceSeconds. * * @since ari_1_5_0 *********************************************************/ - public int getDuration(){ + public int getSilence_duration(){ throw new UnsupportedOperationException("Method availble from ..."); }; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_0_0/models/Message_impl_ari_1_0_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_0_0/models/Message_impl_ari_1_0_0.java index 185b0552..20344103 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_0_0/models/Message_impl_ari_1_0_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_0_0/models/Message_impl_ari_1_0_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Wed Aug 31 18:05:10 CEST 2016 +// Generated on: Sat Feb 04 15:23:09 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; @@ -65,6 +65,23 @@ public void setType(String val ) { type = val; } -/** No missing signatures from interface */ +/********************************************************** + * The unique ID for the Asterisk instance that raised this event. + * + * @since ari_2_0_0 + *********************************************************/ + public void setAsterisk_id(String val ){ + throw new UnsupportedOperationException("Method availble from ..."); +}; + +/********************************************************** + * The unique ID for the Asterisk instance that raised this event. + * + * @since ari_2_0_0 + *********************************************************/ + public String getAsterisk_id(){ + throw new UnsupportedOperationException("Method availble from ..."); +}; + } diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_0_0/models/MissingParams_impl_ari_1_0_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_0_0/models/MissingParams_impl_ari_1_0_0.java index 7dd1d53f..32d9912a 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_0_0/models/MissingParams_impl_ari_1_0_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_0_0/models/MissingParams_impl_ari_1_0_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Wed Aug 31 18:05:10 CEST 2016 +// Generated on: Sat Feb 04 15:23:09 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_0_0/models/PlaybackFinished_impl_ari_1_0_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_0_0/models/PlaybackFinished_impl_ari_1_0_0.java index 2e9ecd54..f1bb1cdd 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_0_0/models/PlaybackFinished_impl_ari_1_0_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_0_0/models/PlaybackFinished_impl_ari_1_0_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Wed Aug 31 18:05:10 CEST 2016 +// Generated on: Sat Feb 04 15:23:09 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_0_0/models/PlaybackStarted_impl_ari_1_0_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_0_0/models/PlaybackStarted_impl_ari_1_0_0.java index c06d0385..2726727b 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_0_0/models/PlaybackStarted_impl_ari_1_0_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_0_0/models/PlaybackStarted_impl_ari_1_0_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Wed Aug 31 18:05:10 CEST 2016 +// Generated on: Sat Feb 04 15:23:09 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_0_0/models/Playback_impl_ari_1_0_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_0_0/models/Playback_impl_ari_1_0_0.java index f2ec2231..5732b3c1 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_0_0/models/Playback_impl_ari_1_0_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_0_0/models/Playback_impl_ari_1_0_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Wed Aug 31 18:05:10 CEST 2016 +// Generated on: Sat Feb 04 15:23:09 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; @@ -81,7 +81,7 @@ public void setTarget_uri(String val ) { * * @since ari_1_10_0 *********************************************************/ - public void setNext_media_uri(String val ){ + public String getNext_media_uri(){ throw new UnsupportedOperationException("Method availble from ..."); }; @@ -90,7 +90,7 @@ public void setNext_media_uri(String val ){ * * @since ari_1_10_0 *********************************************************/ - public String getNext_media_uri(){ + public void setNext_media_uri(String val ){ throw new UnsupportedOperationException("Method availble from ..."); }; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_0_0/models/RecordingFailed_impl_ari_1_0_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_0_0/models/RecordingFailed_impl_ari_1_0_0.java index cf189602..0e3cc250 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_0_0/models/RecordingFailed_impl_ari_1_0_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_0_0/models/RecordingFailed_impl_ari_1_0_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Wed Aug 31 18:05:10 CEST 2016 +// Generated on: Sat Feb 04 15:23:09 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_0_0/models/RecordingFinished_impl_ari_1_0_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_0_0/models/RecordingFinished_impl_ari_1_0_0.java index 760f1d45..1ac7dd06 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_0_0/models/RecordingFinished_impl_ari_1_0_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_0_0/models/RecordingFinished_impl_ari_1_0_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Wed Aug 31 18:05:10 CEST 2016 +// Generated on: Sat Feb 04 15:23:09 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_0_0/models/RecordingStarted_impl_ari_1_0_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_0_0/models/RecordingStarted_impl_ari_1_0_0.java index 6e59d77a..8b243689 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_0_0/models/RecordingStarted_impl_ari_1_0_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_0_0/models/RecordingStarted_impl_ari_1_0_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Wed Aug 31 18:05:10 CEST 2016 +// Generated on: Sat Feb 04 15:23:09 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_0_0/models/SetId_impl_ari_1_0_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_0_0/models/SetId_impl_ari_1_0_0.java index 3c89dd31..de226be1 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_0_0/models/SetId_impl_ari_1_0_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_0_0/models/SetId_impl_ari_1_0_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Wed Aug 31 18:05:10 CEST 2016 +// Generated on: Sat Feb 04 15:23:09 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_0_0/models/Sound_impl_ari_1_0_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_0_0/models/Sound_impl_ari_1_0_0.java index 8505d73b..6fcc7703 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_0_0/models/Sound_impl_ari_1_0_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_0_0/models/Sound_impl_ari_1_0_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Wed Aug 31 18:05:10 CEST 2016 +// Generated on: Sat Feb 04 15:23:09 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_0_0/models/StasisEnd_impl_ari_1_0_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_0_0/models/StasisEnd_impl_ari_1_0_0.java index aad2ac88..6f45431e 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_0_0/models/StasisEnd_impl_ari_1_0_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_0_0/models/StasisEnd_impl_ari_1_0_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Wed Aug 31 18:05:10 CEST 2016 +// Generated on: Sat Feb 04 15:23:09 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_0_0/models/StasisStart_impl_ari_1_0_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_0_0/models/StasisStart_impl_ari_1_0_0.java index 9b5e78dd..12d04f60 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_0_0/models/StasisStart_impl_ari_1_0_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_0_0/models/StasisStart_impl_ari_1_0_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Wed Aug 31 18:05:10 CEST 2016 +// Generated on: Sat Feb 04 15:23:09 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; @@ -48,7 +48,7 @@ public void setChannel(Channel val ) { * * @since ari_1_5_0 *********************************************************/ - public void setReplace_channel(Channel val ){ + public Channel getReplace_channel(){ throw new UnsupportedOperationException("Method availble from ..."); }; @@ -57,7 +57,7 @@ public void setReplace_channel(Channel val ){ * * @since ari_1_5_0 *********************************************************/ - public Channel getReplace_channel(){ + public void setReplace_channel(Channel val ){ throw new UnsupportedOperationException("Method availble from ..."); }; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_0_0/models/StatusInfo_impl_ari_1_0_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_0_0/models/StatusInfo_impl_ari_1_0_0.java index b246d476..949919b7 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_0_0/models/StatusInfo_impl_ari_1_0_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_0_0/models/StatusInfo_impl_ari_1_0_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Wed Aug 31 18:05:10 CEST 2016 +// Generated on: Sat Feb 04 15:23:09 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_0_0/models/StoredRecording_impl_ari_1_0_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_0_0/models/StoredRecording_impl_ari_1_0_0.java index 89045ff4..475240f6 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_0_0/models/StoredRecording_impl_ari_1_0_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_0_0/models/StoredRecording_impl_ari_1_0_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Wed Aug 31 18:05:10 CEST 2016 +// Generated on: Sat Feb 04 15:23:09 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_0_0/models/SystemInfo_impl_ari_1_0_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_0_0/models/SystemInfo_impl_ari_1_0_0.java index f54c78b7..87cdbdfd 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_0_0/models/SystemInfo_impl_ari_1_0_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_0_0/models/SystemInfo_impl_ari_1_0_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Wed Aug 31 18:05:10 CEST 2016 +// Generated on: Sat Feb 04 15:23:09 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_0_0/models/Variable_impl_ari_1_0_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_0_0/models/Variable_impl_ari_1_0_0.java index a242c8a7..a4cee814 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_0_0/models/Variable_impl_ari_1_0_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_0_0/models/Variable_impl_ari_1_0_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Wed Aug 31 18:05:10 CEST 2016 +// Generated on: Sat Feb 04 15:23:09 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/AriBuilder_impl_ari_1_10_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/AriBuilder_impl_ari_1_10_0.java index 9382913a..bb5a9fe1 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/AriBuilder_impl_ari_1_10_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/AriBuilder_impl_ari_1_10_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Wed Aug 31 18:05:11 CEST 2016 +// Generated on: Sat Feb 04 15:23:09 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.ari_1_10_0.models.*; @@ -13,18 +13,26 @@ public class AriBuilder_impl_ari_1_10_0 implements AriBuilder { +public ActionChannels actionChannels() { + return new ActionChannels_impl_ari_1_10_0(); + }; + public ActionEvents actionEvents() { return new ActionEvents_impl_ari_1_10_0(); }; -public ActionAsterisk actionAsterisk() { - return new ActionAsterisk_impl_ari_1_10_0(); +public ActionEndpoints actionEndpoints() { + return new ActionEndpoints_impl_ari_1_10_0(); }; public ActionRecordings actionRecordings() { return new ActionRecordings_impl_ari_1_10_0(); }; +public ActionAsterisk actionAsterisk() { + return new ActionAsterisk_impl_ari_1_10_0(); + }; + public ActionPlaybacks actionPlaybacks() { return new ActionPlaybacks_impl_ari_1_10_0(); }; @@ -33,288 +41,284 @@ public ActionBridges actionBridges() { return new ActionBridges_impl_ari_1_10_0(); }; -public ActionApplications actionApplications() { - return new ActionApplications_impl_ari_1_10_0(); - }; - public ActionSounds actionSounds() { return new ActionSounds_impl_ari_1_10_0(); }; -public ActionEndpoints actionEndpoints() { - return new ActionEndpoints_impl_ari_1_10_0(); +public ActionDeviceStates actionDeviceStates() { + return new ActionDeviceStates_impl_ari_1_10_0(); }; -public ActionChannels actionChannels() { - return new ActionChannels_impl_ari_1_10_0(); +public ActionApplications actionApplications() { + return new ActionApplications_impl_ari_1_10_0(); }; -public ActionDeviceStates actionDeviceStates() { - return new ActionDeviceStates_impl_ari_1_10_0(); +public BridgeMerged bridgeMerged() { + return new BridgeMerged_impl_ari_1_10_0(); }; -public Channel channel() { - return new Channel_impl_ari_1_10_0(); +public PeerStatusChange peerStatusChange() { + return new PeerStatusChange_impl_ari_1_10_0(); }; -public DeviceState deviceState() { - return new DeviceState_impl_ari_1_10_0(); +public CallerID callerID() { + return new CallerID_impl_ari_1_10_0(); }; -public ContactStatusChange contactStatusChange() { - return new ContactStatusChange_impl_ari_1_10_0(); +public Event event() { + return new Event_impl_ari_1_10_0(); }; -public ChannelDialplan channelDialplan() { - return new ChannelDialplan_impl_ari_1_10_0(); +public LogChannel logChannel() { + return new LogChannel_impl_ari_1_10_0(); }; -public BridgeBlindTransfer bridgeBlindTransfer() { - return new BridgeBlindTransfer_impl_ari_1_10_0(); +public ApplicationReplaced applicationReplaced() { + return new ApplicationReplaced_impl_ari_1_10_0(); }; -public CallerID callerID() { - return new CallerID_impl_ari_1_10_0(); +public StoredRecording storedRecording() { + return new StoredRecording_impl_ari_1_10_0(); }; -public ChannelVarset channelVarset() { - return new ChannelVarset_impl_ari_1_10_0(); +public ContactInfo contactInfo() { + return new ContactInfo_impl_ari_1_10_0(); }; -public ChannelDtmfReceived channelDtmfReceived() { - return new ChannelDtmfReceived_impl_ari_1_10_0(); +public ChannelStateChange channelStateChange() { + return new ChannelStateChange_impl_ari_1_10_0(); }; -public Endpoint endpoint() { - return new Endpoint_impl_ari_1_10_0(); +public MissingParams missingParams() { + return new MissingParams_impl_ari_1_10_0(); }; -public Playback playback() { - return new Playback_impl_ari_1_10_0(); +public BuildInfo buildInfo() { + return new BuildInfo_impl_ari_1_10_0(); }; -public PlaybackFinished playbackFinished() { - return new PlaybackFinished_impl_ari_1_10_0(); +public RecordingStarted recordingStarted() { + return new RecordingStarted_impl_ari_1_10_0(); }; -public Application application() { - return new Application_impl_ari_1_10_0(); +public ChannelEnteredBridge channelEnteredBridge() { + return new ChannelEnteredBridge_impl_ari_1_10_0(); }; -public LiveRecording liveRecording() { - return new LiveRecording_impl_ari_1_10_0(); +public FormatLangPair formatLangPair() { + return new FormatLangPair_impl_ari_1_10_0(); }; -public TextMessageReceived textMessageReceived() { - return new TextMessageReceived_impl_ari_1_10_0(); +public ChannelTalkingFinished channelTalkingFinished() { + return new ChannelTalkingFinished_impl_ari_1_10_0(); + }; + +public ContactStatusChange contactStatusChange() { + return new ContactStatusChange_impl_ari_1_10_0(); }; public SetId setId() { return new SetId_impl_ari_1_10_0(); }; -public Message message() { - return new Message_impl_ari_1_10_0(); +public ChannelCreated channelCreated() { + return new ChannelCreated_impl_ari_1_10_0(); }; -public DeviceStateChanged deviceStateChanged() { - return new DeviceStateChanged_impl_ari_1_10_0(); +public BridgeBlindTransfer bridgeBlindTransfer() { + return new BridgeBlindTransfer_impl_ari_1_10_0(); }; -public RecordingFailed recordingFailed() { - return new RecordingFailed_impl_ari_1_10_0(); +public BridgeDestroyed bridgeDestroyed() { + return new BridgeDestroyed_impl_ari_1_10_0(); }; -public ChannelStateChange channelStateChange() { - return new ChannelStateChange_impl_ari_1_10_0(); +public StasisEnd stasisEnd() { + return new StasisEnd_impl_ari_1_10_0(); }; -public ChannelEnteredBridge channelEnteredBridge() { - return new ChannelEnteredBridge_impl_ari_1_10_0(); +public AsteriskInfo asteriskInfo() { + return new AsteriskInfo_impl_ari_1_10_0(); + }; + +public Playback playback() { + return new Playback_impl_ari_1_10_0(); + }; + +public TextMessageVariable textMessageVariable() { + return new TextMessageVariable_impl_ari_1_10_0(); }; public EndpointStateChange endpointStateChange() { return new EndpointStateChange_impl_ari_1_10_0(); }; -public SystemInfo systemInfo() { - return new SystemInfo_impl_ari_1_10_0(); +public ChannelUnhold channelUnhold() { + return new ChannelUnhold_impl_ari_1_10_0(); }; -public StoredRecording storedRecording() { - return new StoredRecording_impl_ari_1_10_0(); +public TextMessage textMessage() { + return new TextMessage_impl_ari_1_10_0(); }; -public BridgeCreated bridgeCreated() { - return new BridgeCreated_impl_ari_1_10_0(); +public RecordingFinished recordingFinished() { + return new RecordingFinished_impl_ari_1_10_0(); }; -public Dial dial() { - return new Dial_impl_ari_1_10_0(); +public SystemInfo systemInfo() { + return new SystemInfo_impl_ari_1_10_0(); }; -public Module module() { - return new Module_impl_ari_1_10_0(); +public Message message() { + return new Message_impl_ari_1_10_0(); }; -public BridgeDestroyed bridgeDestroyed() { - return new BridgeDestroyed_impl_ari_1_10_0(); +public ChannelCallerId channelCallerId() { + return new ChannelCallerId_impl_ari_1_10_0(); }; -public TextMessage textMessage() { - return new TextMessage_impl_ari_1_10_0(); +public ChannelHangupRequest channelHangupRequest() { + return new ChannelHangupRequest_impl_ari_1_10_0(); }; public PlaybackContinuing playbackContinuing() { return new PlaybackContinuing_impl_ari_1_10_0(); }; -public ApplicationReplaced applicationReplaced() { - return new ApplicationReplaced_impl_ari_1_10_0(); +public StasisStart stasisStart() { + return new StasisStart_impl_ari_1_10_0(); }; -public Peer peer() { - return new Peer_impl_ari_1_10_0(); +public DialplanCEP dialplanCEP() { + return new DialplanCEP_impl_ari_1_10_0(); }; public Variable variable() { return new Variable_impl_ari_1_10_0(); }; -public StasisEnd stasisEnd() { - return new StasisEnd_impl_ari_1_10_0(); - }; - -public ChannelTalkingFinished channelTalkingFinished() { - return new ChannelTalkingFinished_impl_ari_1_10_0(); - }; - public Bridge bridge() { return new Bridge_impl_ari_1_10_0(); }; -public RecordingFinished recordingFinished() { - return new RecordingFinished_impl_ari_1_10_0(); - }; - -public ConfigTuple configTuple() { - return new ConfigTuple_impl_ari_1_10_0(); +public ChannelLeftBridge channelLeftBridge() { + return new ChannelLeftBridge_impl_ari_1_10_0(); }; -public LogChannel logChannel() { - return new LogChannel_impl_ari_1_10_0(); +public BridgeAttendedTransfer bridgeAttendedTransfer() { + return new BridgeAttendedTransfer_impl_ari_1_10_0(); }; -public StatusInfo statusInfo() { - return new StatusInfo_impl_ari_1_10_0(); +public ChannelConnectedLine channelConnectedLine() { + return new ChannelConnectedLine_impl_ari_1_10_0(); }; -public MissingParams missingParams() { - return new MissingParams_impl_ari_1_10_0(); +public DeviceStateChanged deviceStateChanged() { + return new DeviceStateChanged_impl_ari_1_10_0(); }; -public BridgeMerged bridgeMerged() { - return new BridgeMerged_impl_ari_1_10_0(); +public ChannelHold channelHold() { + return new ChannelHold_impl_ari_1_10_0(); }; -public ChannelLeftBridge channelLeftBridge() { - return new ChannelLeftBridge_impl_ari_1_10_0(); +public ConfigInfo configInfo() { + return new ConfigInfo_impl_ari_1_10_0(); }; -public AsteriskInfo asteriskInfo() { - return new AsteriskInfo_impl_ari_1_10_0(); +public Endpoint endpoint() { + return new Endpoint_impl_ari_1_10_0(); }; -public TextMessageVariable textMessageVariable() { - return new TextMessageVariable_impl_ari_1_10_0(); +public Module module() { + return new Module_impl_ari_1_10_0(); }; -public RecordingStarted recordingStarted() { - return new RecordingStarted_impl_ari_1_10_0(); +public ChannelDestroyed channelDestroyed() { + return new ChannelDestroyed_impl_ari_1_10_0(); }; -public FormatLangPair formatLangPair() { - return new FormatLangPair_impl_ari_1_10_0(); +public ChannelTalkingStarted channelTalkingStarted() { + return new ChannelTalkingStarted_impl_ari_1_10_0(); }; -public ChannelHangupRequest channelHangupRequest() { - return new ChannelHangupRequest_impl_ari_1_10_0(); +public Dial dial() { + return new Dial_impl_ari_1_10_0(); }; -public Sound sound() { - return new Sound_impl_ari_1_10_0(); +public PlaybackStarted playbackStarted() { + return new PlaybackStarted_impl_ari_1_10_0(); }; -public StasisStart stasisStart() { - return new StasisStart_impl_ari_1_10_0(); +public Peer peer() { + return new Peer_impl_ari_1_10_0(); }; -public BridgeAttendedTransfer bridgeAttendedTransfer() { - return new BridgeAttendedTransfer_impl_ari_1_10_0(); +public ChannelDialplan channelDialplan() { + return new ChannelDialplan_impl_ari_1_10_0(); }; -public ChannelTalkingStarted channelTalkingStarted() { - return new ChannelTalkingStarted_impl_ari_1_10_0(); +public ChannelUserevent channelUserevent() { + return new ChannelUserevent_impl_ari_1_10_0(); }; -public Dialed dialed() { - return new Dialed_impl_ari_1_10_0(); +public Sound sound() { + return new Sound_impl_ari_1_10_0(); }; -public ChannelCallerId channelCallerId() { - return new ChannelCallerId_impl_ari_1_10_0(); +public StatusInfo statusInfo() { + return new StatusInfo_impl_ari_1_10_0(); }; -public ConfigInfo configInfo() { - return new ConfigInfo_impl_ari_1_10_0(); +public ChannelVarset channelVarset() { + return new ChannelVarset_impl_ari_1_10_0(); }; -public ChannelCreated channelCreated() { - return new ChannelCreated_impl_ari_1_10_0(); +public ChannelDtmfReceived channelDtmfReceived() { + return new ChannelDtmfReceived_impl_ari_1_10_0(); }; -public ChannelUserevent channelUserevent() { - return new ChannelUserevent_impl_ari_1_10_0(); +public LiveRecording liveRecording() { + return new LiveRecording_impl_ari_1_10_0(); }; -public PlaybackStarted playbackStarted() { - return new PlaybackStarted_impl_ari_1_10_0(); +public BridgeCreated bridgeCreated() { + return new BridgeCreated_impl_ari_1_10_0(); }; -public ChannelHold channelHold() { - return new ChannelHold_impl_ari_1_10_0(); +public PlaybackFinished playbackFinished() { + return new PlaybackFinished_impl_ari_1_10_0(); }; -public DialplanCEP dialplanCEP() { - return new DialplanCEP_impl_ari_1_10_0(); +public RecordingFailed recordingFailed() { + return new RecordingFailed_impl_ari_1_10_0(); }; -public ChannelDestroyed channelDestroyed() { - return new ChannelDestroyed_impl_ari_1_10_0(); +public Channel channel() { + return new Channel_impl_ari_1_10_0(); }; -public ChannelConnectedLine channelConnectedLine() { - return new ChannelConnectedLine_impl_ari_1_10_0(); +public Dialed dialed() { + return new Dialed_impl_ari_1_10_0(); }; -public PeerStatusChange peerStatusChange() { - return new PeerStatusChange_impl_ari_1_10_0(); +public TextMessageReceived textMessageReceived() { + return new TextMessageReceived_impl_ari_1_10_0(); }; -public Event event() { - return new Event_impl_ari_1_10_0(); +public ConfigTuple configTuple() { + return new ConfigTuple_impl_ari_1_10_0(); }; -public ContactInfo contactInfo() { - return new ContactInfo_impl_ari_1_10_0(); +public Application application() { + return new Application_impl_ari_1_10_0(); }; -public BuildInfo buildInfo() { - return new BuildInfo_impl_ari_1_10_0(); +public DeviceState deviceState() { + return new DeviceState_impl_ari_1_10_0(); }; -public ChannelUnhold channelUnhold() { - return new ChannelUnhold_impl_ari_1_10_0(); +public BridgeVideoSourceChanged bridgeVideoSourceChanged() { + throw new UnsupportedOperationException(); }; public ARI.ClassFactory getClassFactory() { diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/ClassTranslator_impl_ari_1_10_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/ClassTranslator_impl_ari_1_10_0.java index 4e01b6d8..d1ac17d6 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/ClassTranslator_impl_ari_1_10_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/ClassTranslator_impl_ari_1_10_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Wed Aug 31 18:05:11 CEST 2016 +// Generated on: Sat Feb 04 15:23:09 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.ARI; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/actions/ActionApplications_impl_ari_1_10_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/actions/ActionApplications_impl_ari_1_10_0.java index d2cc93a3..f442060d 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/actions/ActionApplications_impl_ari_1_10_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/actions/ActionApplications_impl_ari_1_10_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Wed Aug 31 18:05:11 CEST 2016 +// Generated on: Sat Feb 04 15:23:09 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/actions/ActionAsterisk_impl_ari_1_10_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/actions/ActionAsterisk_impl_ari_1_10_0.java index c792f9ea..1ec2b1a9 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/actions/ActionAsterisk_impl_ari_1_10_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/actions/ActionAsterisk_impl_ari_1_10_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Wed Aug 31 18:05:11 CEST 2016 +// Generated on: Sat Feb 04 15:23:09 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/actions/ActionBridges_impl_ari_1_10_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/actions/ActionBridges_impl_ari_1_10_0.java index e24ef904..b79c4b56 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/actions/ActionBridges_impl_ari_1_10_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/actions/ActionBridges_impl_ari_1_10_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Wed Aug 31 18:05:11 CEST 2016 +// Generated on: Sat Feb 04 15:23:09 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; @@ -364,12 +364,22 @@ public void removeChannel(String bridgeId, String channel, AriCallback cal httpActionAsync(callback); } +/********************************************************** + * Start playback of media on a bridge. + * The media URI may be any of a number of URI's. Currently sound: and recording: URI's are supported. This operation creates a playback resource that can be used to control the playback of media (pause, rewind, fast forward, etc.) + * + * @since ari_0_0_1 + *********************************************************/ +public Playback play(String bridgeId, String media, String lang, int offsetms, int skipms) throws RestException{ + throw new UnsupportedOperationException("Method availble from ..."); +}; + /********************************************************** * * * @since ari_0_0_1 *********************************************************/ -public void create(String type, AriCallback callback){ +public void play(String bridgeId, String media, String lang, int offsetms, int skipms, AriCallback callback){ throw new UnsupportedOperationException("Method availble from ..."); }; @@ -383,6 +393,35 @@ public Bridge create(String type, String name) throws RestException{ throw new UnsupportedOperationException("Method availble from ..."); }; +/********************************************************** + * + * + * @since ari_1_5_0 + *********************************************************/ +public void create_or_update_with_id(String type, String bridgeId, String name, AriCallback callback){ + throw new UnsupportedOperationException("Method availble from ..."); +}; + +/********************************************************** + * Set a channel as the video source in a multi-party mixing bridge. This operation has no effect on bridges with two or fewer participants. + * + * + * @since ari_2_0_0 + *********************************************************/ +public void setVideoSource(String bridgeId, String channelId) throws RestException{ + throw new UnsupportedOperationException("Method availble from ..."); +}; + +/********************************************************** + * Create a new bridge or updates an existing one. + * This bridge persists until it has been shut down, or Asterisk has been shut down. + * + * @since ari_1_5_0 + *********************************************************/ +public Bridge create_or_update_with_id(String type, String bridgeId, String name) throws RestException{ + throw new UnsupportedOperationException("Method availble from ..."); +}; + /********************************************************** * Create a new bridge. * This bridge persists until it has been shut down, or Asterisk has been shut down. @@ -394,49 +433,48 @@ public Bridge create(String type) throws RestException{ }; /********************************************************** + * Removes any explicit video source in a multi-party mixing bridge. This operation has no effect on bridges with two or fewer participants. When no explicit video source is set, talk detection will be used to determine the active video stream. * * - * @since ari_0_0_1 + * @since ari_2_0_0 *********************************************************/ -public void play(String bridgeId, String media, String lang, int offsetms, int skipms, AriCallback callback){ +public void clearVideoSource(String bridgeId) throws RestException{ throw new UnsupportedOperationException("Method availble from ..."); }; /********************************************************** - * Start playback of media on a bridge. - * The media URI may be any of a number of URI's. Currently sound: and recording: URI's are supported. This operation creates a playback resource that can be used to control the playback of media (pause, rewind, fast forward, etc.) + * * * @since ari_0_0_1 *********************************************************/ -public Playback play(String bridgeId, String media, String lang, int offsetms, int skipms) throws RestException{ +public void create(String type, AriCallback callback){ throw new UnsupportedOperationException("Method availble from ..."); }; /********************************************************** * * - * @since ari_1_0_0 + * @since ari_2_0_0 *********************************************************/ -public void create(String type, String name, AriCallback callback){ +public void setVideoSource(String bridgeId, String channelId, AriCallback callback){ throw new UnsupportedOperationException("Method availble from ..."); }; /********************************************************** * * - * @since ari_1_5_0 + * @since ari_1_0_0 *********************************************************/ -public void create_or_update_with_id(String type, String bridgeId, String name, AriCallback callback){ +public void create(String type, String name, AriCallback callback){ throw new UnsupportedOperationException("Method availble from ..."); }; /********************************************************** - * Create a new bridge or updates an existing one. - * This bridge persists until it has been shut down, or Asterisk has been shut down. * - * @since ari_1_5_0 + * + * @since ari_2_0_0 *********************************************************/ -public Bridge create_or_update_with_id(String type, String bridgeId, String name) throws RestException{ +public void clearVideoSource(String bridgeId, AriCallback callback){ throw new UnsupportedOperationException("Method availble from ..."); }; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/actions/ActionChannels_impl_ari_1_10_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/actions/ActionChannels_impl_ari_1_10_0.java index 0cd216ae..19a99b45 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/actions/ActionChannels_impl_ari_1_10_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/actions/ActionChannels_impl_ari_1_10_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Wed Aug 31 18:05:11 CEST 2016 +// Generated on: Sat Feb 04 15:23:09 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; @@ -844,49 +844,57 @@ public void setChannelVar(String channelId, String variable, String value, AriCa /********************************************************** * * - * @since ari_1_5_0 + * @since ari_1_7_0 *********************************************************/ -public void originateWithId(String channelId, String endpoint, String extension, String context, long priority, String app, String appArgs, String callerId, int timeout, Map variables, String otherChannelId, AriCallback callback){ +public void originate(String endpoint, String extension, String context, long priority, String label, String app, String appArgs, String callerId, int timeout, Map variables, String channelId, String otherChannelId, String originator, AriCallback callback){ throw new UnsupportedOperationException("Method availble from ..."); }; /********************************************************** + * Create a new channel (originate with id). + * The new channel is created immediately and a snapshot of it returned. If a Stasis application is provided it will be automatically subscribed to the originated channel for further events and updates. * + * @since ari_1_5_0 + *********************************************************/ +public Channel originateWithId(String channelId, String endpoint, String extension, String context, long priority, String app, String appArgs, String callerId, int timeout, Map variables, String otherChannelId) throws RestException{ + throw new UnsupportedOperationException("Method availble from ..."); +}; + +/********************************************************** + * Start snooping. + * Snoop (spy/whisper) on a specific channel. * * @since ari_0_0_1 *********************************************************/ -public void snoopChannel(String channelId, String spy, String whisper, String app, String appArgs, AriCallback callback){ +public Channel snoopChannel(String channelId, String spy, String whisper, String app, String appArgs) throws RestException{ throw new UnsupportedOperationException("Method availble from ..."); }; /********************************************************** * * - * @since ari_0_0_1 + * @since ari_1_5_0 *********************************************************/ -public void continueInDialplan(String channelId, String context, String extension, int priority, AriCallback callback){ +public void originate(String endpoint, String extension, String context, long priority, String app, String appArgs, String callerId, int timeout, Map variables, String channelId, String otherChannelId, AriCallback callback){ throw new UnsupportedOperationException("Method availble from ..."); }; /********************************************************** - * Start playback of media. - * The media URI may be any of a number of URI's. Currently sound: and recording: URI's are supported. This operation creates a playback resource that can be used to control the playback of media (pause, rewind, fast forward, etc.) + * * * @since ari_0_0_1 *********************************************************/ -public Playback play(String channelId, String media, String lang, int offsetms, int skipms) throws RestException{ +public void continueInDialplan(String channelId, String context, String extension, int priority, AriCallback callback){ throw new UnsupportedOperationException("Method availble from ..."); }; /********************************************************** - * Exit application{ - throw new UnsupportedOperationException("Method availble from ..."); -}; continue execution in the dialplan. - * + * Start playback of media. + * The media URI may be any of a number of URI's. Currently sound: and recording: URI's are supported. This operation creates a playback resource that can be used to control the playback of media (pause, rewind, fast forward, etc.) * * @since ari_0_0_1 *********************************************************/ -public void continueInDialplan(String channelId, String context, String extension, int priority) throws RestException{ +public Playback play(String channelId, String media, String lang, int offsetms, int skipms) throws RestException{ throw new UnsupportedOperationException("Method availble from ..."); }; @@ -895,16 +903,16 @@ public void continueInDialplan(String channelId, String context, String extensio * * @since ari_0_0_1 *********************************************************/ -public void originate(String endpoint, String extension, String context, long priority, String app, String appArgs, String callerId, int timeout, AriCallback callback){ +public void play(String channelId, String media, String lang, int offsetms, int skipms, AriCallback callback){ throw new UnsupportedOperationException("Method availble from ..."); }; /********************************************************** * * - * @since ari_1_7_0 + * @since ari_0_0_1 *********************************************************/ -public void originate(String endpoint, String extension, String context, long priority, String label, String app, String appArgs, String callerId, int timeout, Map variables, String channelId, String otherChannelId, String originator, AriCallback callback){ +public void snoopChannel(String channelId, String spy, String whisper, String app, String appArgs, AriCallback callback){ throw new UnsupportedOperationException("Method availble from ..."); }; @@ -923,27 +931,27 @@ public Channel originate(String endpoint, String extension, String context, long * * @since ari_1_5_0 *********************************************************/ -public void originate(String endpoint, String extension, String context, long priority, String app, String appArgs, String callerId, int timeout, Map variables, String channelId, String otherChannelId, AriCallback callback){ +public void originateWithId(String channelId, String endpoint, String extension, String context, long priority, String app, String appArgs, String callerId, int timeout, Map variables, String otherChannelId, AriCallback callback){ throw new UnsupportedOperationException("Method availble from ..."); }; /********************************************************** - * Create a new channel (originate). + * Create a new channel (originate with id). * The new channel is created immediately and a snapshot of it returned. If a Stasis application is provided it will be automatically subscribed to the originated channel for further events and updates. * - * @since ari_0_0_1 + * @since ari_1_7_0 *********************************************************/ -public Channel originate(String endpoint, String extension, String context, long priority, String app, String appArgs, String callerId, int timeout) throws RestException{ +public Channel originateWithId(String channelId, String endpoint, String extension, String context, long priority, String label, String app, String appArgs, String callerId, int timeout, Map variables, String otherChannelId, String originator) throws RestException{ throw new UnsupportedOperationException("Method availble from ..."); }; /********************************************************** - * Create a new channel (originate with id). + * Create a new channel (originate). * The new channel is created immediately and a snapshot of it returned. If a Stasis application is provided it will be automatically subscribed to the originated channel for further events and updates. * - * @since ari_1_5_0 + * @since ari_0_0_1 *********************************************************/ -public Channel originateWithId(String channelId, String endpoint, String extension, String context, long priority, String app, String appArgs, String callerId, int timeout, Map variables, String otherChannelId) throws RestException{ +public Channel originate(String endpoint, String extension, String context, long priority, String app, String appArgs, String callerId, int timeout) throws RestException{ throw new UnsupportedOperationException("Method availble from ..."); }; @@ -957,41 +965,33 @@ public void originateWithId(String channelId, String endpoint, String extension, }; /********************************************************** - * Create a new channel (originate). - * The new channel is created immediately and a snapshot of it returned. If a Stasis application is provided it will be automatically subscribed to the originated channel for further events and updates. - * - * @since ari_1_5_0 - *********************************************************/ -public Channel originate(String endpoint, String extension, String context, long priority, String app, String appArgs, String callerId, int timeout, Map variables, String channelId, String otherChannelId) throws RestException{ + * Exit application{ throw new UnsupportedOperationException("Method availble from ..."); -}; - -/********************************************************** +}; continue execution in the dialplan. * * * @since ari_0_0_1 *********************************************************/ -public void play(String channelId, String media, String lang, int offsetms, int skipms, AriCallback callback){ +public void continueInDialplan(String channelId, String context, String extension, int priority) throws RestException{ throw new UnsupportedOperationException("Method availble from ..."); }; /********************************************************** - * Create a new channel (originate with id). + * Create a new channel (originate). * The new channel is created immediately and a snapshot of it returned. If a Stasis application is provided it will be automatically subscribed to the originated channel for further events and updates. * - * @since ari_1_7_0 + * @since ari_1_5_0 *********************************************************/ -public Channel originateWithId(String channelId, String endpoint, String extension, String context, long priority, String label, String app, String appArgs, String callerId, int timeout, Map variables, String otherChannelId, String originator) throws RestException{ +public Channel originate(String endpoint, String extension, String context, long priority, String app, String appArgs, String callerId, int timeout, Map variables, String channelId, String otherChannelId) throws RestException{ throw new UnsupportedOperationException("Method availble from ..."); }; /********************************************************** - * Start snooping. - * Snoop (spy/whisper) on a specific channel. + * * * @since ari_0_0_1 *********************************************************/ -public Channel snoopChannel(String channelId, String spy, String whisper, String app, String appArgs) throws RestException{ +public void originate(String endpoint, String extension, String context, long priority, String app, String appArgs, String callerId, int timeout, AriCallback callback){ throw new UnsupportedOperationException("Method availble from ..."); }; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/actions/ActionDeviceStates_impl_ari_1_10_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/actions/ActionDeviceStates_impl_ari_1_10_0.java index cfc3eff5..da33255e 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/actions/ActionDeviceStates_impl_ari_1_10_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/actions/ActionDeviceStates_impl_ari_1_10_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Wed Aug 31 18:05:11 CEST 2016 +// Generated on: Sat Feb 04 15:23:09 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/actions/ActionEndpoints_impl_ari_1_10_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/actions/ActionEndpoints_impl_ari_1_10_0.java index bb25b0ec..1ffbcee7 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/actions/ActionEndpoints_impl_ari_1_10_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/actions/ActionEndpoints_impl_ari_1_10_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Wed Aug 31 18:05:11 CEST 2016 +// Generated on: Sat Feb 04 15:23:09 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/actions/ActionEvents_impl_ari_1_10_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/actions/ActionEvents_impl_ari_1_10_0.java index ad1c9424..0b16ef06 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/actions/ActionEvents_impl_ari_1_10_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/actions/ActionEvents_impl_ari_1_10_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Wed Aug 31 18:05:11 CEST 2016 +// Generated on: Sat Feb 04 15:23:09 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; @@ -81,21 +81,21 @@ public void userEvent(String eventName, String application, String source, Map callback){ +public Message eventWebsocket(String app) throws RestException{ throw new UnsupportedOperationException("Method availble from ..."); }; /********************************************************** - * WebSocket connection for events. * * * @since ari_0_0_1 *********************************************************/ -public Message eventWebsocket(String app) throws RestException{ +public void eventWebsocket(String app, AriCallback callback){ throw new UnsupportedOperationException("Method availble from ..."); }; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/actions/ActionPlaybacks_impl_ari_1_10_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/actions/ActionPlaybacks_impl_ari_1_10_0.java index 0be19c2a..9a69f130 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/actions/ActionPlaybacks_impl_ari_1_10_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/actions/ActionPlaybacks_impl_ari_1_10_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Wed Aug 31 18:05:11 CEST 2016 +// Generated on: Sat Feb 04 15:23:09 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/actions/ActionRecordings_impl_ari_1_10_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/actions/ActionRecordings_impl_ari_1_10_0.java index 9ed2c32a..f2f59640 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/actions/ActionRecordings_impl_ari_1_10_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/actions/ActionRecordings_impl_ari_1_10_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Wed Aug 31 18:05:11 CEST 2016 +// Generated on: Sat Feb 04 15:23:09 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/actions/ActionSounds_impl_ari_1_10_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/actions/ActionSounds_impl_ari_1_10_0.java index edeca389..1f73798c 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/actions/ActionSounds_impl_ari_1_10_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/actions/ActionSounds_impl_ari_1_10_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Wed Aug 31 18:05:11 CEST 2016 +// Generated on: Sat Feb 04 15:23:09 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/models/ApplicationReplaced_impl_ari_1_10_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/models/ApplicationReplaced_impl_ari_1_10_0.java index b7309907..2d6d0b91 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/models/ApplicationReplaced_impl_ari_1_10_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/models/ApplicationReplaced_impl_ari_1_10_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Wed Aug 31 18:05:11 CEST 2016 +// Generated on: Sat Feb 04 15:23:09 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/models/Application_impl_ari_1_10_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/models/Application_impl_ari_1_10_0.java index 68df81bd..77d9f216 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/models/Application_impl_ari_1_10_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/models/Application_impl_ari_1_10_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Wed Aug 31 18:05:10 CEST 2016 +// Generated on: Sat Feb 04 15:23:09 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/models/AsteriskInfo_impl_ari_1_10_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/models/AsteriskInfo_impl_ari_1_10_0.java index 445660e5..a5ff7cd1 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/models/AsteriskInfo_impl_ari_1_10_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/models/AsteriskInfo_impl_ari_1_10_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Wed Aug 31 18:05:10 CEST 2016 +// Generated on: Sat Feb 04 15:23:09 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/models/BridgeAttendedTransfer_impl_ari_1_10_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/models/BridgeAttendedTransfer_impl_ari_1_10_0.java index 9f18f923..52c009d7 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/models/BridgeAttendedTransfer_impl_ari_1_10_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/models/BridgeAttendedTransfer_impl_ari_1_10_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Wed Aug 31 18:05:11 CEST 2016 +// Generated on: Sat Feb 04 15:23:09 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/models/BridgeBlindTransfer_impl_ari_1_10_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/models/BridgeBlindTransfer_impl_ari_1_10_0.java index 4bc78eb2..6a506de2 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/models/BridgeBlindTransfer_impl_ari_1_10_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/models/BridgeBlindTransfer_impl_ari_1_10_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Wed Aug 31 18:05:11 CEST 2016 +// Generated on: Sat Feb 04 15:23:09 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/models/BridgeCreated_impl_ari_1_10_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/models/BridgeCreated_impl_ari_1_10_0.java index deb0f081..f48020fe 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/models/BridgeCreated_impl_ari_1_10_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/models/BridgeCreated_impl_ari_1_10_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Wed Aug 31 18:05:11 CEST 2016 +// Generated on: Sat Feb 04 15:23:09 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/models/BridgeDestroyed_impl_ari_1_10_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/models/BridgeDestroyed_impl_ari_1_10_0.java index 83a5b676..5f32973d 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/models/BridgeDestroyed_impl_ari_1_10_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/models/BridgeDestroyed_impl_ari_1_10_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Wed Aug 31 18:05:11 CEST 2016 +// Generated on: Sat Feb 04 15:23:09 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/models/BridgeMerged_impl_ari_1_10_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/models/BridgeMerged_impl_ari_1_10_0.java index 76040d41..d287f432 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/models/BridgeMerged_impl_ari_1_10_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/models/BridgeMerged_impl_ari_1_10_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Wed Aug 31 18:05:11 CEST 2016 +// Generated on: Sat Feb 04 15:23:09 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/models/Bridge_impl_ari_1_10_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/models/Bridge_impl_ari_1_10_0.java index 09bc6694..5d4688d2 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/models/Bridge_impl_ari_1_10_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/models/Bridge_impl_ari_1_10_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Wed Aug 31 18:05:10 CEST 2016 +// Generated on: Sat Feb 04 15:23:09 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; @@ -100,6 +100,41 @@ public void setTechnology(String val ) { technology = val; } -/** No missing signatures from interface */ +/********************************************************** + * The video mode the bridge is using. One of 'none', 'talker', or 'single'. + * + * @since ari_2_0_0 + *********************************************************/ + public String getVideo_mode(){ + throw new UnsupportedOperationException("Method availble from ..."); +}; + +/********************************************************** + * The ID of the channel that is the source of video in this bridge, if one exists. + * + * @since ari_2_0_0 + *********************************************************/ + public String getVideo_source_id(){ + throw new UnsupportedOperationException("Method availble from ..."); +}; + +/********************************************************** + * The video mode the bridge is using. One of 'none', 'talker', or 'single'. + * + * @since ari_2_0_0 + *********************************************************/ + public void setVideo_mode(String val ){ + throw new UnsupportedOperationException("Method availble from ..."); +}; + +/********************************************************** + * The ID of the channel that is the source of video in this bridge, if one exists. + * + * @since ari_2_0_0 + *********************************************************/ + public void setVideo_source_id(String val ){ + throw new UnsupportedOperationException("Method availble from ..."); +}; + } diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/models/BuildInfo_impl_ari_1_10_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/models/BuildInfo_impl_ari_1_10_0.java index 2c808c8c..2592bea3 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/models/BuildInfo_impl_ari_1_10_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/models/BuildInfo_impl_ari_1_10_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Wed Aug 31 18:05:10 CEST 2016 +// Generated on: Sat Feb 04 15:23:09 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/models/CallerID_impl_ari_1_10_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/models/CallerID_impl_ari_1_10_0.java index d56a272e..a096a5a9 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/models/CallerID_impl_ari_1_10_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/models/CallerID_impl_ari_1_10_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Wed Aug 31 18:05:10 CEST 2016 +// Generated on: Sat Feb 04 15:23:09 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/models/ChannelCallerId_impl_ari_1_10_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/models/ChannelCallerId_impl_ari_1_10_0.java index 1739dbe4..6598dd03 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/models/ChannelCallerId_impl_ari_1_10_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/models/ChannelCallerId_impl_ari_1_10_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Wed Aug 31 18:05:11 CEST 2016 +// Generated on: Sat Feb 04 15:23:09 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/models/ChannelConnectedLine_impl_ari_1_10_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/models/ChannelConnectedLine_impl_ari_1_10_0.java index a4c98322..5dd67399 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/models/ChannelConnectedLine_impl_ari_1_10_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/models/ChannelConnectedLine_impl_ari_1_10_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Wed Aug 31 18:05:11 CEST 2016 +// Generated on: Sat Feb 04 15:23:09 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/models/ChannelCreated_impl_ari_1_10_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/models/ChannelCreated_impl_ari_1_10_0.java index 84a75722..b54bed0d 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/models/ChannelCreated_impl_ari_1_10_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/models/ChannelCreated_impl_ari_1_10_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Wed Aug 31 18:05:11 CEST 2016 +// Generated on: Sat Feb 04 15:23:09 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/models/ChannelDestroyed_impl_ari_1_10_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/models/ChannelDestroyed_impl_ari_1_10_0.java index 89634699..b672ff0d 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/models/ChannelDestroyed_impl_ari_1_10_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/models/ChannelDestroyed_impl_ari_1_10_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Wed Aug 31 18:05:11 CEST 2016 +// Generated on: Sat Feb 04 15:23:09 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/models/ChannelDialplan_impl_ari_1_10_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/models/ChannelDialplan_impl_ari_1_10_0.java index b6769b3b..7cd49112 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/models/ChannelDialplan_impl_ari_1_10_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/models/ChannelDialplan_impl_ari_1_10_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Wed Aug 31 18:05:11 CEST 2016 +// Generated on: Sat Feb 04 15:23:09 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/models/ChannelDtmfReceived_impl_ari_1_10_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/models/ChannelDtmfReceived_impl_ari_1_10_0.java index f1ce01d9..f2127ad6 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/models/ChannelDtmfReceived_impl_ari_1_10_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/models/ChannelDtmfReceived_impl_ari_1_10_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Wed Aug 31 18:05:11 CEST 2016 +// Generated on: Sat Feb 04 15:23:09 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/models/ChannelEnteredBridge_impl_ari_1_10_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/models/ChannelEnteredBridge_impl_ari_1_10_0.java index b4c334ec..0abd1b26 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/models/ChannelEnteredBridge_impl_ari_1_10_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/models/ChannelEnteredBridge_impl_ari_1_10_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Wed Aug 31 18:05:11 CEST 2016 +// Generated on: Sat Feb 04 15:23:09 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/models/ChannelHangupRequest_impl_ari_1_10_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/models/ChannelHangupRequest_impl_ari_1_10_0.java index 837331c4..aab015b4 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/models/ChannelHangupRequest_impl_ari_1_10_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/models/ChannelHangupRequest_impl_ari_1_10_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Wed Aug 31 18:05:11 CEST 2016 +// Generated on: Sat Feb 04 15:23:09 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/models/ChannelHold_impl_ari_1_10_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/models/ChannelHold_impl_ari_1_10_0.java index f55318a4..de0b1472 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/models/ChannelHold_impl_ari_1_10_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/models/ChannelHold_impl_ari_1_10_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Wed Aug 31 18:05:11 CEST 2016 +// Generated on: Sat Feb 04 15:23:09 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/models/ChannelLeftBridge_impl_ari_1_10_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/models/ChannelLeftBridge_impl_ari_1_10_0.java index 1a21c8dd..c6bead22 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/models/ChannelLeftBridge_impl_ari_1_10_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/models/ChannelLeftBridge_impl_ari_1_10_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Wed Aug 31 18:05:11 CEST 2016 +// Generated on: Sat Feb 04 15:23:09 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/models/ChannelStateChange_impl_ari_1_10_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/models/ChannelStateChange_impl_ari_1_10_0.java index 64f8530e..87bdabac 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/models/ChannelStateChange_impl_ari_1_10_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/models/ChannelStateChange_impl_ari_1_10_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Wed Aug 31 18:05:11 CEST 2016 +// Generated on: Sat Feb 04 15:23:09 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/models/ChannelTalkingFinished_impl_ari_1_10_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/models/ChannelTalkingFinished_impl_ari_1_10_0.java index e5d3ef48..63b16a37 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/models/ChannelTalkingFinished_impl_ari_1_10_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/models/ChannelTalkingFinished_impl_ari_1_10_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Wed Aug 31 18:05:11 CEST 2016 +// Generated on: Sat Feb 04 15:23:09 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/models/ChannelTalkingStarted_impl_ari_1_10_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/models/ChannelTalkingStarted_impl_ari_1_10_0.java index 7fd5353b..71da1795 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/models/ChannelTalkingStarted_impl_ari_1_10_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/models/ChannelTalkingStarted_impl_ari_1_10_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Wed Aug 31 18:05:11 CEST 2016 +// Generated on: Sat Feb 04 15:23:09 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/models/ChannelUnhold_impl_ari_1_10_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/models/ChannelUnhold_impl_ari_1_10_0.java index 8f1686f9..ea8ae8e9 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/models/ChannelUnhold_impl_ari_1_10_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/models/ChannelUnhold_impl_ari_1_10_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Wed Aug 31 18:05:11 CEST 2016 +// Generated on: Sat Feb 04 15:23:09 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/models/ChannelUserevent_impl_ari_1_10_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/models/ChannelUserevent_impl_ari_1_10_0.java index e8e25dc9..9ac62247 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/models/ChannelUserevent_impl_ari_1_10_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/models/ChannelUserevent_impl_ari_1_10_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Wed Aug 31 18:05:11 CEST 2016 +// Generated on: Sat Feb 04 15:23:09 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/models/ChannelVarset_impl_ari_1_10_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/models/ChannelVarset_impl_ari_1_10_0.java index abb26121..be5f1b1e 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/models/ChannelVarset_impl_ari_1_10_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/models/ChannelVarset_impl_ari_1_10_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Wed Aug 31 18:05:11 CEST 2016 +// Generated on: Sat Feb 04 15:23:09 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/models/Channel_impl_ari_1_10_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/models/Channel_impl_ari_1_10_0.java index 5bdcda94..82972587 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/models/Channel_impl_ari_1_10_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/models/Channel_impl_ari_1_10_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Wed Aug 31 18:05:10 CEST 2016 +// Generated on: Sat Feb 04 15:23:09 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; @@ -122,6 +122,23 @@ public void setState(String val ) { state = val; } -/** No missing signatures from interface */ +/********************************************************** + * Channel variables + * + * @since ari_2_0_0 + *********************************************************/ + public String getChannelvars(){ + throw new UnsupportedOperationException("Method availble from ..."); +}; + +/********************************************************** + * Channel variables + * + * @since ari_2_0_0 + *********************************************************/ + public void setChannelvars(String val ){ + throw new UnsupportedOperationException("Method availble from ..."); +}; + } diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/models/ConfigInfo_impl_ari_1_10_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/models/ConfigInfo_impl_ari_1_10_0.java index e0775e28..0e753b56 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/models/ConfigInfo_impl_ari_1_10_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/models/ConfigInfo_impl_ari_1_10_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Wed Aug 31 18:05:10 CEST 2016 +// Generated on: Sat Feb 04 15:23:09 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/models/ConfigTuple_impl_ari_1_10_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/models/ConfigTuple_impl_ari_1_10_0.java index 5ed4f392..7ea11e9d 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/models/ConfigTuple_impl_ari_1_10_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/models/ConfigTuple_impl_ari_1_10_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Wed Aug 31 18:05:10 CEST 2016 +// Generated on: Sat Feb 04 15:23:09 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/models/ContactInfo_impl_ari_1_10_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/models/ContactInfo_impl_ari_1_10_0.java index 18cbdfc8..2f5db17f 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/models/ContactInfo_impl_ari_1_10_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/models/ContactInfo_impl_ari_1_10_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Wed Aug 31 18:05:11 CEST 2016 +// Generated on: Sat Feb 04 15:23:09 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/models/ContactStatusChange_impl_ari_1_10_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/models/ContactStatusChange_impl_ari_1_10_0.java index 00e0ce4b..d3b091c8 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/models/ContactStatusChange_impl_ari_1_10_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/models/ContactStatusChange_impl_ari_1_10_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Wed Aug 31 18:05:11 CEST 2016 +// Generated on: Sat Feb 04 15:23:09 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/models/DeviceStateChanged_impl_ari_1_10_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/models/DeviceStateChanged_impl_ari_1_10_0.java index c772c4ec..1263e014 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/models/DeviceStateChanged_impl_ari_1_10_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/models/DeviceStateChanged_impl_ari_1_10_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Wed Aug 31 18:05:11 CEST 2016 +// Generated on: Sat Feb 04 15:23:09 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/models/DeviceState_impl_ari_1_10_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/models/DeviceState_impl_ari_1_10_0.java index f9294be0..62d6f1ae 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/models/DeviceState_impl_ari_1_10_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/models/DeviceState_impl_ari_1_10_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Wed Aug 31 18:05:11 CEST 2016 +// Generated on: Sat Feb 04 15:23:09 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/models/Dial_impl_ari_1_10_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/models/Dial_impl_ari_1_10_0.java index c8bb8ec8..792b55e1 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/models/Dial_impl_ari_1_10_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/models/Dial_impl_ari_1_10_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Wed Aug 31 18:05:11 CEST 2016 +// Generated on: Sat Feb 04 15:23:09 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/models/Dialed_impl_ari_1_10_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/models/Dialed_impl_ari_1_10_0.java index 0f1addc4..24289856 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/models/Dialed_impl_ari_1_10_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/models/Dialed_impl_ari_1_10_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Wed Aug 31 18:05:10 CEST 2016 +// Generated on: Sat Feb 04 15:23:09 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/models/DialplanCEP_impl_ari_1_10_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/models/DialplanCEP_impl_ari_1_10_0.java index 16e0b617..209887bd 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/models/DialplanCEP_impl_ari_1_10_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/models/DialplanCEP_impl_ari_1_10_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Wed Aug 31 18:05:10 CEST 2016 +// Generated on: Sat Feb 04 15:23:09 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/models/EndpointStateChange_impl_ari_1_10_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/models/EndpointStateChange_impl_ari_1_10_0.java index f3859881..3bdcf8f5 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/models/EndpointStateChange_impl_ari_1_10_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/models/EndpointStateChange_impl_ari_1_10_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Wed Aug 31 18:05:11 CEST 2016 +// Generated on: Sat Feb 04 15:23:09 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/models/Endpoint_impl_ari_1_10_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/models/Endpoint_impl_ari_1_10_0.java index 131a4792..78119fda 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/models/Endpoint_impl_ari_1_10_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/models/Endpoint_impl_ari_1_10_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Wed Aug 31 18:05:10 CEST 2016 +// Generated on: Sat Feb 04 15:23:09 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/models/Event_impl_ari_1_10_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/models/Event_impl_ari_1_10_0.java index fa1cf41f..5a234738 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/models/Event_impl_ari_1_10_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/models/Event_impl_ari_1_10_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Wed Aug 31 18:05:11 CEST 2016 +// Generated on: Sat Feb 04 15:23:09 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/models/FormatLangPair_impl_ari_1_10_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/models/FormatLangPair_impl_ari_1_10_0.java index af5730f9..705d7c0a 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/models/FormatLangPair_impl_ari_1_10_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/models/FormatLangPair_impl_ari_1_10_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Wed Aug 31 18:05:11 CEST 2016 +// Generated on: Sat Feb 04 15:23:09 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/models/LiveRecording_impl_ari_1_10_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/models/LiveRecording_impl_ari_1_10_0.java index e48f38d2..54d7f64c 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/models/LiveRecording_impl_ari_1_10_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/models/LiveRecording_impl_ari_1_10_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Wed Aug 31 18:05:11 CEST 2016 +// Generated on: Sat Feb 04 15:23:09 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/models/LogChannel_impl_ari_1_10_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/models/LogChannel_impl_ari_1_10_0.java index ad2fbd57..066f7130 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/models/LogChannel_impl_ari_1_10_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/models/LogChannel_impl_ari_1_10_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Wed Aug 31 18:05:10 CEST 2016 +// Generated on: Sat Feb 04 15:23:09 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/models/Message_impl_ari_1_10_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/models/Message_impl_ari_1_10_0.java index 53e094c5..eefd261c 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/models/Message_impl_ari_1_10_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/models/Message_impl_ari_1_10_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Wed Aug 31 18:05:11 CEST 2016 +// Generated on: Sat Feb 04 15:23:09 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; @@ -78,6 +78,23 @@ public void setType(String val ) { type = val; } -/** No missing signatures from interface */ +/********************************************************** + * The unique ID for the Asterisk instance that raised this event. + * + * @since ari_2_0_0 + *********************************************************/ + public void setAsterisk_id(String val ){ + throw new UnsupportedOperationException("Method availble from ..."); +}; + +/********************************************************** + * The unique ID for the Asterisk instance that raised this event. + * + * @since ari_2_0_0 + *********************************************************/ + public String getAsterisk_id(){ + throw new UnsupportedOperationException("Method availble from ..."); +}; + } diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/models/MissingParams_impl_ari_1_10_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/models/MissingParams_impl_ari_1_10_0.java index fb24cfa2..813745f0 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/models/MissingParams_impl_ari_1_10_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/models/MissingParams_impl_ari_1_10_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Wed Aug 31 18:05:11 CEST 2016 +// Generated on: Sat Feb 04 15:23:09 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/models/Module_impl_ari_1_10_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/models/Module_impl_ari_1_10_0.java index 317dfaed..3bf113c0 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/models/Module_impl_ari_1_10_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/models/Module_impl_ari_1_10_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Wed Aug 31 18:05:10 CEST 2016 +// Generated on: Sat Feb 04 15:23:09 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/models/PeerStatusChange_impl_ari_1_10_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/models/PeerStatusChange_impl_ari_1_10_0.java index 4bfe89b0..448fecda 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/models/PeerStatusChange_impl_ari_1_10_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/models/PeerStatusChange_impl_ari_1_10_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Wed Aug 31 18:05:11 CEST 2016 +// Generated on: Sat Feb 04 15:23:09 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/models/Peer_impl_ari_1_10_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/models/Peer_impl_ari_1_10_0.java index 6eb50188..c161eb26 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/models/Peer_impl_ari_1_10_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/models/Peer_impl_ari_1_10_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Wed Aug 31 18:05:11 CEST 2016 +// Generated on: Sat Feb 04 15:23:09 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/models/PlaybackContinuing_impl_ari_1_10_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/models/PlaybackContinuing_impl_ari_1_10_0.java index a56f412f..1926a933 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/models/PlaybackContinuing_impl_ari_1_10_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/models/PlaybackContinuing_impl_ari_1_10_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Wed Aug 31 18:05:11 CEST 2016 +// Generated on: Sat Feb 04 15:23:09 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/models/PlaybackFinished_impl_ari_1_10_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/models/PlaybackFinished_impl_ari_1_10_0.java index 88ee8bde..c0b7c9d0 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/models/PlaybackFinished_impl_ari_1_10_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/models/PlaybackFinished_impl_ari_1_10_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Wed Aug 31 18:05:11 CEST 2016 +// Generated on: Sat Feb 04 15:23:09 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/models/PlaybackStarted_impl_ari_1_10_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/models/PlaybackStarted_impl_ari_1_10_0.java index 3dc80fb6..27d06c87 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/models/PlaybackStarted_impl_ari_1_10_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/models/PlaybackStarted_impl_ari_1_10_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Wed Aug 31 18:05:11 CEST 2016 +// Generated on: Sat Feb 04 15:23:09 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/models/Playback_impl_ari_1_10_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/models/Playback_impl_ari_1_10_0.java index 3d7451c2..2d582a75 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/models/Playback_impl_ari_1_10_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/models/Playback_impl_ari_1_10_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Wed Aug 31 18:05:11 CEST 2016 +// Generated on: Sat Feb 04 15:23:09 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/models/RecordingFailed_impl_ari_1_10_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/models/RecordingFailed_impl_ari_1_10_0.java index 39b0f42e..7cfd5bbb 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/models/RecordingFailed_impl_ari_1_10_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/models/RecordingFailed_impl_ari_1_10_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Wed Aug 31 18:05:11 CEST 2016 +// Generated on: Sat Feb 04 15:23:09 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/models/RecordingFinished_impl_ari_1_10_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/models/RecordingFinished_impl_ari_1_10_0.java index 1b093f5d..0fc44753 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/models/RecordingFinished_impl_ari_1_10_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/models/RecordingFinished_impl_ari_1_10_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Wed Aug 31 18:05:11 CEST 2016 +// Generated on: Sat Feb 04 15:23:09 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/models/RecordingStarted_impl_ari_1_10_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/models/RecordingStarted_impl_ari_1_10_0.java index 1844218e..c5c68c20 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/models/RecordingStarted_impl_ari_1_10_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/models/RecordingStarted_impl_ari_1_10_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Wed Aug 31 18:05:11 CEST 2016 +// Generated on: Sat Feb 04 15:23:09 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/models/SetId_impl_ari_1_10_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/models/SetId_impl_ari_1_10_0.java index 69a94e42..b5893f1f 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/models/SetId_impl_ari_1_10_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/models/SetId_impl_ari_1_10_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Wed Aug 31 18:05:10 CEST 2016 +// Generated on: Sat Feb 04 15:23:09 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/models/Sound_impl_ari_1_10_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/models/Sound_impl_ari_1_10_0.java index a1bda08d..4493b551 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/models/Sound_impl_ari_1_10_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/models/Sound_impl_ari_1_10_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Wed Aug 31 18:05:11 CEST 2016 +// Generated on: Sat Feb 04 15:23:09 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/models/StasisEnd_impl_ari_1_10_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/models/StasisEnd_impl_ari_1_10_0.java index f7778fbb..703b923f 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/models/StasisEnd_impl_ari_1_10_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/models/StasisEnd_impl_ari_1_10_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Wed Aug 31 18:05:11 CEST 2016 +// Generated on: Sat Feb 04 15:23:09 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/models/StasisStart_impl_ari_1_10_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/models/StasisStart_impl_ari_1_10_0.java index b501db5a..6f78288a 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/models/StasisStart_impl_ari_1_10_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/models/StasisStart_impl_ari_1_10_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Wed Aug 31 18:05:11 CEST 2016 +// Generated on: Sat Feb 04 15:23:09 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/models/StatusInfo_impl_ari_1_10_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/models/StatusInfo_impl_ari_1_10_0.java index 41bd5a25..9788c8c0 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/models/StatusInfo_impl_ari_1_10_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/models/StatusInfo_impl_ari_1_10_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Wed Aug 31 18:05:10 CEST 2016 +// Generated on: Sat Feb 04 15:23:09 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/models/StoredRecording_impl_ari_1_10_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/models/StoredRecording_impl_ari_1_10_0.java index 2d7a46ff..de72f41a 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/models/StoredRecording_impl_ari_1_10_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/models/StoredRecording_impl_ari_1_10_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Wed Aug 31 18:05:11 CEST 2016 +// Generated on: Sat Feb 04 15:23:09 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/models/SystemInfo_impl_ari_1_10_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/models/SystemInfo_impl_ari_1_10_0.java index e2e02cac..2f4285b2 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/models/SystemInfo_impl_ari_1_10_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/models/SystemInfo_impl_ari_1_10_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Wed Aug 31 18:05:10 CEST 2016 +// Generated on: Sat Feb 04 15:23:09 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/models/TextMessageReceived_impl_ari_1_10_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/models/TextMessageReceived_impl_ari_1_10_0.java index 30c45fa4..7c25ec48 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/models/TextMessageReceived_impl_ari_1_10_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/models/TextMessageReceived_impl_ari_1_10_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Wed Aug 31 18:05:11 CEST 2016 +// Generated on: Sat Feb 04 15:23:09 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/models/TextMessageVariable_impl_ari_1_10_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/models/TextMessageVariable_impl_ari_1_10_0.java index 6bd31088..130cab0e 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/models/TextMessageVariable_impl_ari_1_10_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/models/TextMessageVariable_impl_ari_1_10_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Wed Aug 31 18:05:10 CEST 2016 +// Generated on: Sat Feb 04 15:23:09 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/models/TextMessage_impl_ari_1_10_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/models/TextMessage_impl_ari_1_10_0.java index 80eaad07..214a533f 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/models/TextMessage_impl_ari_1_10_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/models/TextMessage_impl_ari_1_10_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Wed Aug 31 18:05:11 CEST 2016 +// Generated on: Sat Feb 04 15:23:09 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/models/Variable_impl_ari_1_10_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/models/Variable_impl_ari_1_10_0.java index 7f59fb15..46ed6d40 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/models/Variable_impl_ari_1_10_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/models/Variable_impl_ari_1_10_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Wed Aug 31 18:05:10 CEST 2016 +// Generated on: Sat Feb 04 15:23:09 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_5_0/AriBuilder_impl_ari_1_5_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_5_0/AriBuilder_impl_ari_1_5_0.java index 45bf5e08..87497f91 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_5_0/AriBuilder_impl_ari_1_5_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_5_0/AriBuilder_impl_ari_1_5_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Wed Aug 31 18:05:11 CEST 2016 +// Generated on: Sat Feb 04 15:23:09 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.ari_1_5_0.models.*; @@ -13,264 +13,268 @@ public class AriBuilder_impl_ari_1_5_0 implements AriBuilder { -public ActionEvents actionEvents() { - return new ActionEvents_impl_ari_1_5_0(); +public ActionApplications actionApplications() { + return new ActionApplications_impl_ari_1_5_0(); }; -public ActionSounds actionSounds() { - return new ActionSounds_impl_ari_1_5_0(); +public ActionBridges actionBridges() { + return new ActionBridges_impl_ari_1_5_0(); }; public ActionChannels actionChannels() { return new ActionChannels_impl_ari_1_5_0(); }; -public ActionPlaybacks actionPlaybacks() { - return new ActionPlaybacks_impl_ari_1_5_0(); - }; - public ActionRecordings actionRecordings() { return new ActionRecordings_impl_ari_1_5_0(); }; -public ActionApplications actionApplications() { - return new ActionApplications_impl_ari_1_5_0(); - }; - public ActionEndpoints actionEndpoints() { return new ActionEndpoints_impl_ari_1_5_0(); }; -public ActionBridges actionBridges() { - return new ActionBridges_impl_ari_1_5_0(); +public ActionAsterisk actionAsterisk() { + return new ActionAsterisk_impl_ari_1_5_0(); }; -public ActionDeviceStates actionDeviceStates() { - return new ActionDeviceStates_impl_ari_1_5_0(); +public ActionEvents actionEvents() { + return new ActionEvents_impl_ari_1_5_0(); }; -public ActionAsterisk actionAsterisk() { - return new ActionAsterisk_impl_ari_1_5_0(); +public ActionSounds actionSounds() { + return new ActionSounds_impl_ari_1_5_0(); }; -public PlaybackFinished playbackFinished() { - return new PlaybackFinished_impl_ari_1_5_0(); +public ActionPlaybacks actionPlaybacks() { + return new ActionPlaybacks_impl_ari_1_5_0(); }; -public MissingParams missingParams() { - return new MissingParams_impl_ari_1_5_0(); +public ActionDeviceStates actionDeviceStates() { + return new ActionDeviceStates_impl_ari_1_5_0(); }; -public BridgeDestroyed bridgeDestroyed() { - return new BridgeDestroyed_impl_ari_1_5_0(); +public TextMessageVariable textMessageVariable() { + return new TextMessageVariable_impl_ari_1_5_0(); }; -public DeviceStateChanged deviceStateChanged() { - return new DeviceStateChanged_impl_ari_1_5_0(); +public ChannelEnteredBridge channelEnteredBridge() { + return new ChannelEnteredBridge_impl_ari_1_5_0(); }; -public Bridge bridge() { - return new Bridge_impl_ari_1_5_0(); +public Sound sound() { + return new Sound_impl_ari_1_5_0(); }; -public CallerID callerID() { - return new CallerID_impl_ari_1_5_0(); +public ChannelStateChange channelStateChange() { + return new ChannelStateChange_impl_ari_1_5_0(); }; -public LiveRecording liveRecording() { - return new LiveRecording_impl_ari_1_5_0(); +public TextMessageReceived textMessageReceived() { + return new TextMessageReceived_impl_ari_1_5_0(); }; -public SystemInfo systemInfo() { - return new SystemInfo_impl_ari_1_5_0(); +public ChannelTalkingFinished channelTalkingFinished() { + return new ChannelTalkingFinished_impl_ari_1_5_0(); }; -public ChannelDialplan channelDialplan() { - return new ChannelDialplan_impl_ari_1_5_0(); +public ChannelVarset channelVarset() { + return new ChannelVarset_impl_ari_1_5_0(); }; -public DialplanCEP dialplanCEP() { - return new DialplanCEP_impl_ari_1_5_0(); +public Channel channel() { + return new Channel_impl_ari_1_5_0(); }; -public ChannelCallerId channelCallerId() { - return new ChannelCallerId_impl_ari_1_5_0(); +public Variable variable() { + return new Variable_impl_ari_1_5_0(); }; -public ChannelTalkingStarted channelTalkingStarted() { - return new ChannelTalkingStarted_impl_ari_1_5_0(); +public PlaybackStarted playbackStarted() { + return new PlaybackStarted_impl_ari_1_5_0(); }; -public Channel channel() { - return new Channel_impl_ari_1_5_0(); +public RecordingStarted recordingStarted() { + return new RecordingStarted_impl_ari_1_5_0(); }; -public AsteriskInfo asteriskInfo() { - return new AsteriskInfo_impl_ari_1_5_0(); +public TextMessage textMessage() { + return new TextMessage_impl_ari_1_5_0(); }; -public EndpointStateChange endpointStateChange() { - return new EndpointStateChange_impl_ari_1_5_0(); +public ApplicationReplaced applicationReplaced() { + return new ApplicationReplaced_impl_ari_1_5_0(); }; -public ChannelLeftBridge channelLeftBridge() { - return new ChannelLeftBridge_impl_ari_1_5_0(); +public LiveRecording liveRecording() { + return new LiveRecording_impl_ari_1_5_0(); }; -public StoredRecording storedRecording() { - return new StoredRecording_impl_ari_1_5_0(); +public DeviceState deviceState() { + return new DeviceState_impl_ari_1_5_0(); }; -public BuildInfo buildInfo() { - return new BuildInfo_impl_ari_1_5_0(); +public Dialed dialed() { + return new Dialed_impl_ari_1_5_0(); }; -public TextMessageReceived textMessageReceived() { - return new TextMessageReceived_impl_ari_1_5_0(); +public BridgeMerged bridgeMerged() { + return new BridgeMerged_impl_ari_1_5_0(); }; -public ChannelCreated channelCreated() { - return new ChannelCreated_impl_ari_1_5_0(); +public ConfigInfo configInfo() { + return new ConfigInfo_impl_ari_1_5_0(); }; -public BridgeAttendedTransfer bridgeAttendedTransfer() { - return new BridgeAttendedTransfer_impl_ari_1_5_0(); +public StasisStart stasisStart() { + return new StasisStart_impl_ari_1_5_0(); }; -public Application application() { - return new Application_impl_ari_1_5_0(); +public RecordingFailed recordingFailed() { + return new RecordingFailed_impl_ari_1_5_0(); }; -public RecordingFinished recordingFinished() { - return new RecordingFinished_impl_ari_1_5_0(); +public StatusInfo statusInfo() { + return new StatusInfo_impl_ari_1_5_0(); }; -public SetId setId() { - return new SetId_impl_ari_1_5_0(); +public SystemInfo systemInfo() { + return new SystemInfo_impl_ari_1_5_0(); }; -public BridgeMerged bridgeMerged() { - return new BridgeMerged_impl_ari_1_5_0(); +public DeviceStateChanged deviceStateChanged() { + return new DeviceStateChanged_impl_ari_1_5_0(); }; -public Dialed dialed() { - return new Dialed_impl_ari_1_5_0(); +public ChannelHangupRequest channelHangupRequest() { + return new ChannelHangupRequest_impl_ari_1_5_0(); }; -public RecordingStarted recordingStarted() { - return new RecordingStarted_impl_ari_1_5_0(); +public ChannelCreated channelCreated() { + return new ChannelCreated_impl_ari_1_5_0(); }; -public TextMessageVariable textMessageVariable() { - return new TextMessageVariable_impl_ari_1_5_0(); +public ChannelUserevent channelUserevent() { + return new ChannelUserevent_impl_ari_1_5_0(); }; -public ConfigInfo configInfo() { - return new ConfigInfo_impl_ari_1_5_0(); +public SetId setId() { + return new SetId_impl_ari_1_5_0(); }; -public ChannelEnteredBridge channelEnteredBridge() { - return new ChannelEnteredBridge_impl_ari_1_5_0(); +public EndpointStateChange endpointStateChange() { + return new EndpointStateChange_impl_ari_1_5_0(); }; -public ChannelDtmfReceived channelDtmfReceived() { - return new ChannelDtmfReceived_impl_ari_1_5_0(); +public Event event() { + return new Event_impl_ari_1_5_0(); }; -public Message message() { - return new Message_impl_ari_1_5_0(); +public Playback playback() { + return new Playback_impl_ari_1_5_0(); }; -public StasisStart stasisStart() { - return new StasisStart_impl_ari_1_5_0(); +public StoredRecording storedRecording() { + return new StoredRecording_impl_ari_1_5_0(); }; -public ChannelHangupRequest channelHangupRequest() { - return new ChannelHangupRequest_impl_ari_1_5_0(); +public BridgeBlindTransfer bridgeBlindTransfer() { + return new BridgeBlindTransfer_impl_ari_1_5_0(); }; -public ChannelDestroyed channelDestroyed() { - return new ChannelDestroyed_impl_ari_1_5_0(); +public CallerID callerID() { + return new CallerID_impl_ari_1_5_0(); }; -public DeviceState deviceState() { - return new DeviceState_impl_ari_1_5_0(); +public DialplanCEP dialplanCEP() { + return new DialplanCEP_impl_ari_1_5_0(); }; -public Endpoint endpoint() { - return new Endpoint_impl_ari_1_5_0(); +public BuildInfo buildInfo() { + return new BuildInfo_impl_ari_1_5_0(); }; -public ChannelUserevent channelUserevent() { - return new ChannelUserevent_impl_ari_1_5_0(); +public MissingParams missingParams() { + return new MissingParams_impl_ari_1_5_0(); }; -public ChannelStateChange channelStateChange() { - return new ChannelStateChange_impl_ari_1_5_0(); +public Application application() { + return new Application_impl_ari_1_5_0(); }; -public BridgeBlindTransfer bridgeBlindTransfer() { - return new BridgeBlindTransfer_impl_ari_1_5_0(); +public FormatLangPair formatLangPair() { + return new FormatLangPair_impl_ari_1_5_0(); + }; + +public ChannelTalkingStarted channelTalkingStarted() { + return new ChannelTalkingStarted_impl_ari_1_5_0(); }; public BridgeCreated bridgeCreated() { return new BridgeCreated_impl_ari_1_5_0(); }; -public TextMessage textMessage() { - return new TextMessage_impl_ari_1_5_0(); +public RecordingFinished recordingFinished() { + return new RecordingFinished_impl_ari_1_5_0(); }; -public Dial dial() { - return new Dial_impl_ari_1_5_0(); +public AsteriskInfo asteriskInfo() { + return new AsteriskInfo_impl_ari_1_5_0(); }; -public ChannelTalkingFinished channelTalkingFinished() { - return new ChannelTalkingFinished_impl_ari_1_5_0(); +public ChannelDialplan channelDialplan() { + return new ChannelDialplan_impl_ari_1_5_0(); }; -public PlaybackStarted playbackStarted() { - return new PlaybackStarted_impl_ari_1_5_0(); +public PlaybackFinished playbackFinished() { + return new PlaybackFinished_impl_ari_1_5_0(); }; -public Variable variable() { - return new Variable_impl_ari_1_5_0(); +public BridgeAttendedTransfer bridgeAttendedTransfer() { + return new BridgeAttendedTransfer_impl_ari_1_5_0(); + }; + +public ChannelDestroyed channelDestroyed() { + return new ChannelDestroyed_impl_ari_1_5_0(); + }; + +public Dial dial() { + return new Dial_impl_ari_1_5_0(); }; public StasisEnd stasisEnd() { return new StasisEnd_impl_ari_1_5_0(); }; -public Playback playback() { - return new Playback_impl_ari_1_5_0(); +public ChannelDtmfReceived channelDtmfReceived() { + return new ChannelDtmfReceived_impl_ari_1_5_0(); }; -public Sound sound() { - return new Sound_impl_ari_1_5_0(); +public ChannelCallerId channelCallerId() { + return new ChannelCallerId_impl_ari_1_5_0(); }; -public ChannelVarset channelVarset() { - return new ChannelVarset_impl_ari_1_5_0(); +public BridgeDestroyed bridgeDestroyed() { + return new BridgeDestroyed_impl_ari_1_5_0(); }; -public RecordingFailed recordingFailed() { - return new RecordingFailed_impl_ari_1_5_0(); +public Bridge bridge() { + return new Bridge_impl_ari_1_5_0(); }; -public FormatLangPair formatLangPair() { - return new FormatLangPair_impl_ari_1_5_0(); +public Message message() { + return new Message_impl_ari_1_5_0(); }; -public Event event() { - return new Event_impl_ari_1_5_0(); +public Endpoint endpoint() { + return new Endpoint_impl_ari_1_5_0(); }; -public ApplicationReplaced applicationReplaced() { - return new ApplicationReplaced_impl_ari_1_5_0(); +public ChannelLeftBridge channelLeftBridge() { + return new ChannelLeftBridge_impl_ari_1_5_0(); }; -public StatusInfo statusInfo() { - return new StatusInfo_impl_ari_1_5_0(); +public BridgeVideoSourceChanged bridgeVideoSourceChanged() { + throw new UnsupportedOperationException(); }; public ChannelConnectedLine channelConnectedLine() { diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_5_0/ClassTranslator_impl_ari_1_5_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_5_0/ClassTranslator_impl_ari_1_5_0.java index da0f7b29..6a7b51ea 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_5_0/ClassTranslator_impl_ari_1_5_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_5_0/ClassTranslator_impl_ari_1_5_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Wed Aug 31 18:05:11 CEST 2016 +// Generated on: Sat Feb 04 15:23:09 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.ARI; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_5_0/actions/ActionApplications_impl_ari_1_5_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_5_0/actions/ActionApplications_impl_ari_1_5_0.java index 83c2e0f1..30ea4f44 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_5_0/actions/ActionApplications_impl_ari_1_5_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_5_0/actions/ActionApplications_impl_ari_1_5_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Wed Aug 31 18:05:11 CEST 2016 +// Generated on: Sat Feb 04 15:23:09 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_5_0/actions/ActionAsterisk_impl_ari_1_5_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_5_0/actions/ActionAsterisk_impl_ari_1_5_0.java index 108e7e90..f4175477 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_5_0/actions/ActionAsterisk_impl_ari_1_5_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_5_0/actions/ActionAsterisk_impl_ari_1_5_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Wed Aug 31 18:05:11 CEST 2016 +// Generated on: Sat Feb 04 15:23:09 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; @@ -104,22 +104,20 @@ public void setGlobalVar(String variable, String value, AriCallback callba } /********************************************************** - * Reload an Asterisk module. * * * @since ari_1_8_0 *********************************************************/ -public void reloadModule(String moduleName) throws RestException{ +public void updateObject(String configClass, String objectType, String id, Map fields, AriCallback> callback){ throw new UnsupportedOperationException("Method availble from ..."); }; /********************************************************** - * Create or update a dynamic configuration object. * * * @since ari_1_8_0 *********************************************************/ -public List updateObject(String configClass, String objectType, String id, Map fields) throws RestException{ +public void listModules(AriCallback> callback){ throw new UnsupportedOperationException("Method availble from ..."); }; @@ -128,7 +126,7 @@ public List updateObject(String configClass, String objectType, Str * * @since ari_1_8_0 *********************************************************/ -public void deleteObject(String configClass, String objectType, String id, AriCallback callback){ +public void getModule(String moduleName, AriCallback callback){ throw new UnsupportedOperationException("Method availble from ..."); }; @@ -137,16 +135,17 @@ public void deleteObject(String configClass, String objectType, String id, AriCa * * @since ari_1_8_0 *********************************************************/ -public void reloadModule(String moduleName, AriCallback callback){ +public void unloadModule(String moduleName, AriCallback callback){ throw new UnsupportedOperationException("Method availble from ..."); }; /********************************************************** + * Rotates a log channel. * * * @since ari_1_9_0 *********************************************************/ -public void addLog(String logChannelName, String configuration, AriCallback callback){ +public void rotateLog(String logChannelName) throws RestException{ throw new UnsupportedOperationException("Method availble from ..."); }; @@ -155,46 +154,47 @@ public void addLog(String logChannelName, String configuration, AriCallback callback){ +public void deleteObject(String configClass, String objectType, String id, AriCallback callback){ throw new UnsupportedOperationException("Method availble from ..."); }; /********************************************************** - * List Asterisk modules. + * Deletes a log channel. * * - * @since ari_1_8_0 + * @since ari_1_9_0 *********************************************************/ -public List listModules() throws RestException{ +public void deleteLog(String logChannelName) throws RestException{ throw new UnsupportedOperationException("Method availble from ..."); }; /********************************************************** - * Gets Asterisk log channel information. + * Load an Asterisk module. * * - * @since ari_1_9_0 + * @since ari_1_8_0 *********************************************************/ -public List listLogChannels() throws RestException{ +public void loadModule(String moduleName) throws RestException{ throw new UnsupportedOperationException("Method availble from ..."); }; /********************************************************** - * Get Asterisk module information. + * Unload an Asterisk module. * * * @since ari_1_8_0 *********************************************************/ -public Module getModule(String moduleName) throws RestException{ +public void unloadModule(String moduleName) throws RestException{ throw new UnsupportedOperationException("Method availble from ..."); }; /********************************************************** + * Create or update a dynamic configuration object. * * - * @since ari_1_9_0 + * @since ari_1_8_0 *********************************************************/ -public void rotateLog(String logChannelName, AriCallback callback){ +public List updateObject(String configClass, String objectType, String id, Map fields) throws RestException{ throw new UnsupportedOperationException("Method availble from ..."); }; @@ -209,22 +209,21 @@ public List getObject(String configClass, String objectType, String }; /********************************************************** - * Load an Asterisk module. + * Get Asterisk module information. * * * @since ari_1_8_0 *********************************************************/ -public void loadModule(String moduleName) throws RestException{ +public Module getModule(String moduleName) throws RestException{ throw new UnsupportedOperationException("Method availble from ..."); }; /********************************************************** - * Unload an Asterisk module. * * - * @since ari_1_8_0 + * @since ari_1_9_0 *********************************************************/ -public void unloadModule(String moduleName) throws RestException{ +public void rotateLog(String logChannelName, AriCallback callback){ throw new UnsupportedOperationException("Method availble from ..."); }; @@ -233,45 +232,44 @@ public void unloadModule(String moduleName) throws RestException{ * * @since ari_1_8_0 *********************************************************/ -public void getModule(String moduleName, AriCallback callback){ +public void loadModule(String moduleName, AriCallback callback){ throw new UnsupportedOperationException("Method availble from ..."); }; /********************************************************** * * - * @since ari_1_8_0 + * @since ari_1_9_0 *********************************************************/ -public void updateObject(String configClass, String objectType, String id, Map fields, AriCallback> callback){ +public void addLog(String logChannelName, String configuration, AriCallback callback){ throw new UnsupportedOperationException("Method availble from ..."); }; /********************************************************** - * Delete a dynamic configuration object. * * * @since ari_1_8_0 *********************************************************/ -public void deleteObject(String configClass, String objectType, String id) throws RestException{ +public void reloadModule(String moduleName, AriCallback callback){ throw new UnsupportedOperationException("Method availble from ..."); }; /********************************************************** - * Rotates a log channel. + * Gets Asterisk log channel information. * * * @since ari_1_9_0 *********************************************************/ -public void rotateLog(String logChannelName) throws RestException{ +public List listLogChannels() throws RestException{ throw new UnsupportedOperationException("Method availble from ..."); }; /********************************************************** * * - * @since ari_1_9_0 + * @since ari_1_8_0 *********************************************************/ -public void listLogChannels(AriCallback> callback){ +public void getObject(String configClass, String objectType, String id, AriCallback> callback){ throw new UnsupportedOperationException("Method availble from ..."); }; @@ -288,46 +286,48 @@ public void addLog(String logChannelName, String configuration) throws RestExcep /********************************************************** * * - * @since ari_1_8_0 + * @since ari_1_9_0 *********************************************************/ -public void listModules(AriCallback> callback){ +public void listLogChannels(AriCallback> callback){ throw new UnsupportedOperationException("Method availble from ..."); }; /********************************************************** - * Deletes a log channel. + * List Asterisk modules. * * - * @since ari_1_9_0 + * @since ari_1_8_0 *********************************************************/ -public void deleteLog(String logChannelName) throws RestException{ +public List listModules() throws RestException{ throw new UnsupportedOperationException("Method availble from ..."); }; /********************************************************** + * Reload an Asterisk module. * * - * @since ari_1_9_0 + * @since ari_1_8_0 *********************************************************/ -public void deleteLog(String logChannelName, AriCallback callback){ +public void reloadModule(String moduleName) throws RestException{ throw new UnsupportedOperationException("Method availble from ..."); }; /********************************************************** * * - * @since ari_1_8_0 + * @since ari_1_9_0 *********************************************************/ -public void loadModule(String moduleName, AriCallback callback){ +public void deleteLog(String logChannelName, AriCallback callback){ throw new UnsupportedOperationException("Method availble from ..."); }; /********************************************************** + * Delete a dynamic configuration object. * * * @since ari_1_8_0 *********************************************************/ -public void getObject(String configClass, String objectType, String id, AriCallback> callback){ +public void deleteObject(String configClass, String objectType, String id) throws RestException{ throw new UnsupportedOperationException("Method availble from ..."); }; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_5_0/actions/ActionBridges_impl_ari_1_5_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_5_0/actions/ActionBridges_impl_ari_1_5_0.java index ced51f6f..83bbbf3d 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_5_0/actions/ActionBridges_impl_ari_1_5_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_5_0/actions/ActionBridges_impl_ari_1_5_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Wed Aug 31 18:05:11 CEST 2016 +// Generated on: Sat Feb 04 15:23:09 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; @@ -365,11 +365,12 @@ public void removeChannel(String bridgeId, String channel, AriCallback cal } /********************************************************** + * Start playback of media on a bridge. + * The media URI may be any of a number of URI's. Currently sound: and recording: URI's are supported. This operation creates a playback resource that can be used to control the playback of media (pause, rewind, fast forward, etc.) * - * - * @since ari_1_7_0 + * @since ari_0_0_1 *********************************************************/ -public void createWithId(String type, String bridgeId, String name, AriCallback callback){ +public Playback play(String bridgeId, String media, String lang, int offsetms, int skipms) throws RestException{ throw new UnsupportedOperationException("Method availble from ..."); }; @@ -378,17 +379,16 @@ public void createWithId(String type, String bridgeId, String name, AriCallback< * * @since ari_0_0_1 *********************************************************/ -public void create(String type, AriCallback callback){ +public void play(String bridgeId, String media, String lang, int offsetms, int skipms, AriCallback callback){ throw new UnsupportedOperationException("Method availble from ..."); }; /********************************************************** - * Create a new bridge or updates an existing one. - * This bridge persists until it has been shut down, or Asterisk has been shut down. + * * * @since ari_1_7_0 *********************************************************/ -public Bridge createWithId(String type, String bridgeId, String name) throws RestException{ +public void createWithId(String type, String bridgeId, String name, AriCallback callback){ throw new UnsupportedOperationException("Method availble from ..."); }; @@ -402,6 +402,16 @@ public Bridge create(String type, String name) throws RestException{ throw new UnsupportedOperationException("Method availble from ..."); }; +/********************************************************** + * Set a channel as the video source in a multi-party mixing bridge. This operation has no effect on bridges with two or fewer participants. + * + * + * @since ari_2_0_0 + *********************************************************/ +public void setVideoSource(String bridgeId, String channelId) throws RestException{ + throw new UnsupportedOperationException("Method availble from ..."); +}; + /********************************************************** * Create a new bridge. * This bridge persists until it has been shut down, or Asterisk has been shut down. @@ -413,21 +423,30 @@ public Bridge create(String type) throws RestException{ }; /********************************************************** + * Removes any explicit video source in a multi-party mixing bridge. This operation has no effect on bridges with two or fewer participants. When no explicit video source is set, talk detection will be used to determine the active video stream. * * - * @since ari_0_0_1 + * @since ari_2_0_0 *********************************************************/ -public void play(String bridgeId, String media, String lang, int offsetms, int skipms, AriCallback callback){ +public void clearVideoSource(String bridgeId) throws RestException{ throw new UnsupportedOperationException("Method availble from ..."); }; /********************************************************** - * Start playback of media on a bridge. - * The media URI may be any of a number of URI's. Currently sound: and recording: URI's are supported. This operation creates a playback resource that can be used to control the playback of media (pause, rewind, fast forward, etc.) + * * * @since ari_0_0_1 *********************************************************/ -public Playback play(String bridgeId, String media, String lang, int offsetms, int skipms) throws RestException{ +public void create(String type, AriCallback callback){ + throw new UnsupportedOperationException("Method availble from ..."); +}; + +/********************************************************** + * + * + * @since ari_2_0_0 + *********************************************************/ +public void setVideoSource(String bridgeId, String channelId, AriCallback callback){ throw new UnsupportedOperationException("Method availble from ..."); }; @@ -440,5 +459,24 @@ public void create(String type, String name, AriCallback callback){ throw new UnsupportedOperationException("Method availble from ..."); }; +/********************************************************** + * + * + * @since ari_2_0_0 + *********************************************************/ +public void clearVideoSource(String bridgeId, AriCallback callback){ + throw new UnsupportedOperationException("Method availble from ..."); +}; + +/********************************************************** + * Create a new bridge or updates an existing one. + * This bridge persists until it has been shut down, or Asterisk has been shut down. + * + * @since ari_1_7_0 + *********************************************************/ +public Bridge createWithId(String type, String bridgeId, String name) throws RestException{ + throw new UnsupportedOperationException("Method availble from ..."); +}; + }; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_5_0/actions/ActionChannels_impl_ari_1_5_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_5_0/actions/ActionChannels_impl_ari_1_5_0.java index 8bf16089..4d0a3e41 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_5_0/actions/ActionChannels_impl_ari_1_5_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_5_0/actions/ActionChannels_impl_ari_1_5_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Wed Aug 31 18:05:11 CEST 2016 +// Generated on: Sat Feb 04 15:23:09 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; @@ -735,37 +735,37 @@ public void setChannelVar(String channelId, String variable, String value, AriCa /********************************************************** * * - * @since ari_1_10_0 + * @since ari_1_8_0 *********************************************************/ -public void dial(String channelId, String caller, int timeout, AriCallback callback){ +public void redirect(String channelId, String endpoint, AriCallback callback){ throw new UnsupportedOperationException("Method availble from ..."); }; /********************************************************** * * - * @since ari_0_0_1 + * @since ari_1_7_0 *********************************************************/ -public void snoopChannel(String channelId, String spy, String whisper, String app, String appArgs, AriCallback callback){ +public void originate(String endpoint, String extension, String context, long priority, String label, String app, String appArgs, String callerId, int timeout, Map variables, String channelId, String otherChannelId, String originator, AriCallback callback){ throw new UnsupportedOperationException("Method availble from ..."); }; /********************************************************** - * Dial a created channel. - * + * Start snooping. + * Snoop (spy/whisper) on a specific channel. * - * @since ari_1_10_0 + * @since ari_0_0_1 *********************************************************/ -public void dial(String channelId, String caller, int timeout) throws RestException{ +public Channel snoopChannel(String channelId, String spy, String whisper, String app, String appArgs) throws RestException{ throw new UnsupportedOperationException("Method availble from ..."); }; /********************************************************** * * - * @since ari_1_7_0 + * @since ari_1_10_0 *********************************************************/ -public void continueInDialplan(String channelId, String context, String extension, int priority, String label, AriCallback callback){ +public void dial(String channelId, String caller, int timeout, AriCallback callback){ throw new UnsupportedOperationException("Method availble from ..."); }; @@ -779,22 +779,24 @@ public void originateWithId(String channelId, String endpoint, String extension, }; /********************************************************** - * Start playback of media. - * The media URI may be any of a number of URI's. Currently sound: and recording: URI's are supported. This operation creates a playback resource that can be used to control the playback of media (pause, rewind, fast forward, etc.) + * Exit application{ + throw new UnsupportedOperationException("Method availble from ..."); +}; continue execution in the dialplan. * - * @since ari_0_0_1 + * + * @since ari_1_7_0 *********************************************************/ -public Playback play(String channelId, String media, String lang, int offsetms, int skipms) throws RestException{ +public void continueInDialplan(String channelId, String context, String extension, int priority, String label) throws RestException{ throw new UnsupportedOperationException("Method availble from ..."); }; /********************************************************** - * Create a new channel (originate). - * The new channel is created immediately and a snapshot of it returned. If a Stasis application is provided it will be automatically subscribed to the originated channel for further events and updates. + * Start playback of media. + * The media URI may be any of a number of URI's. Currently sound: and recording: URI's are supported. This operation creates a playback resource that can be used to control the playback of media (pause, rewind, fast forward, etc.) * - * @since ari_1_10_0 + * @since ari_0_0_1 *********************************************************/ -public Channel originate(String endpoint, String extension, String context, long priority, String label, String app, String appArgs, String callerId, int timeout, Map variables, String channelId, String otherChannelId, String originator, String formats) throws RestException{ +public Playback play(String channelId, String media, String lang, int offsetms, int skipms) throws RestException{ throw new UnsupportedOperationException("Method availble from ..."); }; @@ -803,35 +805,36 @@ public Channel originate(String endpoint, String extension, String context, long * * @since ari_0_0_1 *********************************************************/ -public void originate(String endpoint, String extension, String context, long priority, String app, String appArgs, String callerId, int timeout, AriCallback callback){ +public void play(String channelId, String media, String lang, int offsetms, int skipms, AriCallback callback){ throw new UnsupportedOperationException("Method availble from ..."); }; /********************************************************** - * Redirect the channel to a different location. * * - * @since ari_1_8_0 + * @since ari_0_0_1 *********************************************************/ -public void redirect(String channelId, String endpoint) throws RestException{ +public void snoopChannel(String channelId, String spy, String whisper, String app, String appArgs, AriCallback callback){ throw new UnsupportedOperationException("Method availble from ..."); }; /********************************************************** + * Create a new channel (originate). + * The new channel is created immediately and a snapshot of it returned. If a Stasis application is provided it will be automatically subscribed to the originated channel for further events and updates. * - * - * @since ari_1_8_0 + * @since ari_1_7_0 *********************************************************/ -public void redirect(String channelId, String endpoint, AriCallback callback){ +public Channel originate(String endpoint, String extension, String context, long priority, String label, String app, String appArgs, String callerId, int timeout, Map variables, String channelId, String otherChannelId, String originator) throws RestException{ throw new UnsupportedOperationException("Method availble from ..."); }; /********************************************************** - * + * Create a new channel (originate with id). + * The new channel is created immediately and a snapshot of it returned. If a Stasis application is provided it will be automatically subscribed to the originated channel for further events and updates. * * @since ari_1_7_0 *********************************************************/ -public void originate(String endpoint, String extension, String context, long priority, String label, String app, String appArgs, String callerId, int timeout, Map variables, String channelId, String otherChannelId, String originator, AriCallback callback){ +public Channel originateWithId(String channelId, String endpoint, String extension, String context, long priority, String label, String app, String appArgs, String callerId, int timeout, Map variables, String otherChannelId, String originator) throws RestException{ throw new UnsupportedOperationException("Method availble from ..."); }; @@ -839,19 +842,19 @@ public void originate(String endpoint, String extension, String context, long pr * Create a new channel (originate). * The new channel is created immediately and a snapshot of it returned. If a Stasis application is provided it will be automatically subscribed to the originated channel for further events and updates. * - * @since ari_1_7_0 + * @since ari_1_10_0 *********************************************************/ -public Channel originate(String endpoint, String extension, String context, long priority, String label, String app, String appArgs, String callerId, int timeout, Map variables, String channelId, String otherChannelId, String originator) throws RestException{ +public Channel originate(String endpoint, String extension, String context, long priority, String label, String app, String appArgs, String callerId, int timeout, Map variables, String channelId, String otherChannelId, String originator, String formats) throws RestException{ throw new UnsupportedOperationException("Method availble from ..."); }; /********************************************************** - * Create channel. - * + * Create a new channel (originate with id). + * The new channel is created immediately and a snapshot of it returned. If a Stasis application is provided it will be automatically subscribed to the originated channel for further events and updates. * * @since ari_1_10_0 *********************************************************/ -public Channel create(String endpoint, String app, String appArgs, String channelId, String otherChannelId, String originator, String formats) throws RestException{ +public Channel originateWithId(String channelId, String endpoint, String extension, String context, long priority, String label, String app, String appArgs, String callerId, int timeout, Map variables, String otherChannelId, String originator, String formats) throws RestException{ throw new UnsupportedOperationException("Method availble from ..."); }; @@ -866,12 +869,11 @@ public Channel originate(String endpoint, String extension, String context, long }; /********************************************************** - * Create a new channel (originate with id). - * The new channel is created immediately and a snapshot of it returned. If a Stasis application is provided it will be automatically subscribed to the originated channel for further events and updates. * - * @since ari_1_10_0 + * + * @since ari_1_7_0 *********************************************************/ -public Channel originateWithId(String channelId, String endpoint, String extension, String context, long priority, String label, String app, String appArgs, String callerId, int timeout, Map variables, String otherChannelId, String originator, String formats) throws RestException{ +public void originateWithId(String channelId, String endpoint, String extension, String context, long priority, String label, String app, String appArgs, String callerId, int timeout, Map variables, String otherChannelId, String originator, AriCallback callback){ throw new UnsupportedOperationException("Method availble from ..."); }; @@ -880,66 +882,64 @@ public Channel originateWithId(String channelId, String endpoint, String extensi * * @since ari_1_7_0 *********************************************************/ -public void originateWithId(String channelId, String endpoint, String extension, String context, long priority, String label, String app, String appArgs, String callerId, int timeout, Map variables, String otherChannelId, String originator, AriCallback callback){ +public void continueInDialplan(String channelId, String context, String extension, int priority, String label, AriCallback callback){ throw new UnsupportedOperationException("Method availble from ..."); }; /********************************************************** + * Dial a created channel. * * * @since ari_1_10_0 *********************************************************/ -public void create(String endpoint, String app, String appArgs, String channelId, String otherChannelId, String originator, String formats, AriCallback callback){ +public void dial(String channelId, String caller, int timeout) throws RestException{ throw new UnsupportedOperationException("Method availble from ..."); }; /********************************************************** * * - * @since ari_0_0_1 + * @since ari_1_10_0 *********************************************************/ -public void play(String channelId, String media, String lang, int offsetms, int skipms, AriCallback callback){ +public void create(String endpoint, String app, String appArgs, String channelId, String otherChannelId, String originator, String formats, AriCallback callback){ throw new UnsupportedOperationException("Method availble from ..."); }; /********************************************************** - * Create a new channel (originate with id). - * The new channel is created immediately and a snapshot of it returned. If a Stasis application is provided it will be automatically subscribed to the originated channel for further events and updates. + * Create channel. * - * @since ari_1_7_0 + * + * @since ari_1_10_0 *********************************************************/ -public Channel originateWithId(String channelId, String endpoint, String extension, String context, long priority, String label, String app, String appArgs, String callerId, int timeout, Map variables, String otherChannelId, String originator) throws RestException{ +public Channel create(String endpoint, String app, String appArgs, String channelId, String otherChannelId, String originator, String formats) throws RestException{ throw new UnsupportedOperationException("Method availble from ..."); }; /********************************************************** - * Exit application{ - throw new UnsupportedOperationException("Method availble from ..."); -}; continue execution in the dialplan. * * - * @since ari_1_7_0 + * @since ari_1_10_0 *********************************************************/ -public void continueInDialplan(String channelId, String context, String extension, int priority, String label) throws RestException{ +public void originate(String endpoint, String extension, String context, long priority, String label, String app, String appArgs, String callerId, int timeout, Map variables, String channelId, String otherChannelId, String originator, String formats, AriCallback callback){ throw new UnsupportedOperationException("Method availble from ..."); }; /********************************************************** - * Start snooping. - * Snoop (spy/whisper) on a specific channel. + * Redirect the channel to a different location. * - * @since ari_0_0_1 + * + * @since ari_1_8_0 *********************************************************/ -public Channel snoopChannel(String channelId, String spy, String whisper, String app, String appArgs) throws RestException{ +public void redirect(String channelId, String endpoint) throws RestException{ throw new UnsupportedOperationException("Method availble from ..."); }; /********************************************************** * * - * @since ari_1_10_0 + * @since ari_0_0_1 *********************************************************/ -public void originate(String endpoint, String extension, String context, long priority, String label, String app, String appArgs, String callerId, int timeout, Map variables, String channelId, String otherChannelId, String originator, String formats, AriCallback callback){ +public void originate(String endpoint, String extension, String context, long priority, String app, String appArgs, String callerId, int timeout, AriCallback callback){ throw new UnsupportedOperationException("Method availble from ..."); }; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_5_0/actions/ActionDeviceStates_impl_ari_1_5_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_5_0/actions/ActionDeviceStates_impl_ari_1_5_0.java index b09dea33..55591d7c 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_5_0/actions/ActionDeviceStates_impl_ari_1_5_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_5_0/actions/ActionDeviceStates_impl_ari_1_5_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Wed Aug 31 18:05:11 CEST 2016 +// Generated on: Sat Feb 04 15:23:09 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_5_0/actions/ActionEndpoints_impl_ari_1_5_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_5_0/actions/ActionEndpoints_impl_ari_1_5_0.java index f1fe60ba..557892b5 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_5_0/actions/ActionEndpoints_impl_ari_1_5_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_5_0/actions/ActionEndpoints_impl_ari_1_5_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Wed Aug 31 18:05:11 CEST 2016 +// Generated on: Sat Feb 04 15:23:09 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_5_0/actions/ActionEvents_impl_ari_1_5_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_5_0/actions/ActionEvents_impl_ari_1_5_0.java index 88be6708..8231331c 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_5_0/actions/ActionEvents_impl_ari_1_5_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_5_0/actions/ActionEvents_impl_ari_1_5_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Wed Aug 31 18:05:11 CEST 2016 +// Generated on: Sat Feb 04 15:23:09 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; @@ -80,21 +80,21 @@ public void userEvent(String eventName, String application, String source, Map callback){ +public Message eventWebsocket(String app, boolean subscribeAll) throws RestException{ throw new UnsupportedOperationException("Method availble from ..."); }; /********************************************************** - * WebSocket connection for events. * * * @since ari_1_9_0 *********************************************************/ -public Message eventWebsocket(String app, boolean subscribeAll) throws RestException{ +public void eventWebsocket(String app, boolean subscribeAll, AriCallback callback){ throw new UnsupportedOperationException("Method availble from ..."); }; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_5_0/actions/ActionPlaybacks_impl_ari_1_5_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_5_0/actions/ActionPlaybacks_impl_ari_1_5_0.java index 77d5db84..1532ea3e 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_5_0/actions/ActionPlaybacks_impl_ari_1_5_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_5_0/actions/ActionPlaybacks_impl_ari_1_5_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Wed Aug 31 18:05:11 CEST 2016 +// Generated on: Sat Feb 04 15:23:09 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_5_0/actions/ActionRecordings_impl_ari_1_5_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_5_0/actions/ActionRecordings_impl_ari_1_5_0.java index c612e395..af5e1be3 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_5_0/actions/ActionRecordings_impl_ari_1_5_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_5_0/actions/ActionRecordings_impl_ari_1_5_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Wed Aug 31 18:05:11 CEST 2016 +// Generated on: Sat Feb 04 15:23:09 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_5_0/actions/ActionSounds_impl_ari_1_5_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_5_0/actions/ActionSounds_impl_ari_1_5_0.java index 5782f81b..9e8bc0ba 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_5_0/actions/ActionSounds_impl_ari_1_5_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_5_0/actions/ActionSounds_impl_ari_1_5_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Wed Aug 31 18:05:11 CEST 2016 +// Generated on: Sat Feb 04 15:23:09 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_5_0/models/ApplicationReplaced_impl_ari_1_5_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_5_0/models/ApplicationReplaced_impl_ari_1_5_0.java index 232ecac8..b41234f1 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_5_0/models/ApplicationReplaced_impl_ari_1_5_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_5_0/models/ApplicationReplaced_impl_ari_1_5_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Wed Aug 31 18:05:10 CEST 2016 +// Generated on: Sat Feb 04 15:23:09 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_5_0/models/Application_impl_ari_1_5_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_5_0/models/Application_impl_ari_1_5_0.java index f7f27da7..2e00247e 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_5_0/models/Application_impl_ari_1_5_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_5_0/models/Application_impl_ari_1_5_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Wed Aug 31 18:05:10 CEST 2016 +// Generated on: Sat Feb 04 15:23:09 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_5_0/models/AsteriskInfo_impl_ari_1_5_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_5_0/models/AsteriskInfo_impl_ari_1_5_0.java index a824a78e..dc15df3e 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_5_0/models/AsteriskInfo_impl_ari_1_5_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_5_0/models/AsteriskInfo_impl_ari_1_5_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Wed Aug 31 18:05:10 CEST 2016 +// Generated on: Sat Feb 04 15:23:09 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_5_0/models/BridgeAttendedTransfer_impl_ari_1_5_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_5_0/models/BridgeAttendedTransfer_impl_ari_1_5_0.java index 0342d4e9..796f007b 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_5_0/models/BridgeAttendedTransfer_impl_ari_1_5_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_5_0/models/BridgeAttendedTransfer_impl_ari_1_5_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Wed Aug 31 18:05:10 CEST 2016 +// Generated on: Sat Feb 04 15:23:09 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_5_0/models/BridgeBlindTransfer_impl_ari_1_5_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_5_0/models/BridgeBlindTransfer_impl_ari_1_5_0.java index a186cadd..1141cf50 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_5_0/models/BridgeBlindTransfer_impl_ari_1_5_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_5_0/models/BridgeBlindTransfer_impl_ari_1_5_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Wed Aug 31 18:05:10 CEST 2016 +// Generated on: Sat Feb 04 15:23:09 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_5_0/models/BridgeCreated_impl_ari_1_5_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_5_0/models/BridgeCreated_impl_ari_1_5_0.java index 76cd3124..04b54b91 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_5_0/models/BridgeCreated_impl_ari_1_5_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_5_0/models/BridgeCreated_impl_ari_1_5_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Wed Aug 31 18:05:10 CEST 2016 +// Generated on: Sat Feb 04 15:23:09 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_5_0/models/BridgeDestroyed_impl_ari_1_5_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_5_0/models/BridgeDestroyed_impl_ari_1_5_0.java index fc0c71cc..4c00aa01 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_5_0/models/BridgeDestroyed_impl_ari_1_5_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_5_0/models/BridgeDestroyed_impl_ari_1_5_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Wed Aug 31 18:05:10 CEST 2016 +// Generated on: Sat Feb 04 15:23:09 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_5_0/models/BridgeMerged_impl_ari_1_5_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_5_0/models/BridgeMerged_impl_ari_1_5_0.java index 15c50c60..ec24a79e 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_5_0/models/BridgeMerged_impl_ari_1_5_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_5_0/models/BridgeMerged_impl_ari_1_5_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Wed Aug 31 18:05:10 CEST 2016 +// Generated on: Sat Feb 04 15:23:09 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_5_0/models/Bridge_impl_ari_1_5_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_5_0/models/Bridge_impl_ari_1_5_0.java index 90340ebe..83d816d8 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_5_0/models/Bridge_impl_ari_1_5_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_5_0/models/Bridge_impl_ari_1_5_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Wed Aug 31 18:05:10 CEST 2016 +// Generated on: Sat Feb 04 15:23:09 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; @@ -100,6 +100,41 @@ public void setTechnology(String val ) { technology = val; } -/** No missing signatures from interface */ +/********************************************************** + * The video mode the bridge is using. One of 'none', 'talker', or 'single'. + * + * @since ari_2_0_0 + *********************************************************/ + public String getVideo_mode(){ + throw new UnsupportedOperationException("Method availble from ..."); +}; + +/********************************************************** + * The ID of the channel that is the source of video in this bridge, if one exists. + * + * @since ari_2_0_0 + *********************************************************/ + public String getVideo_source_id(){ + throw new UnsupportedOperationException("Method availble from ..."); +}; + +/********************************************************** + * The video mode the bridge is using. One of 'none', 'talker', or 'single'. + * + * @since ari_2_0_0 + *********************************************************/ + public void setVideo_mode(String val ){ + throw new UnsupportedOperationException("Method availble from ..."); +}; + +/********************************************************** + * The ID of the channel that is the source of video in this bridge, if one exists. + * + * @since ari_2_0_0 + *********************************************************/ + public void setVideo_source_id(String val ){ + throw new UnsupportedOperationException("Method availble from ..."); +}; + } diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_5_0/models/BuildInfo_impl_ari_1_5_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_5_0/models/BuildInfo_impl_ari_1_5_0.java index b44db633..dbdfa3f0 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_5_0/models/BuildInfo_impl_ari_1_5_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_5_0/models/BuildInfo_impl_ari_1_5_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Wed Aug 31 18:05:10 CEST 2016 +// Generated on: Sat Feb 04 15:23:09 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_5_0/models/CallerID_impl_ari_1_5_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_5_0/models/CallerID_impl_ari_1_5_0.java index e9c97674..051c5c5c 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_5_0/models/CallerID_impl_ari_1_5_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_5_0/models/CallerID_impl_ari_1_5_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Wed Aug 31 18:05:10 CEST 2016 +// Generated on: Sat Feb 04 15:23:09 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_5_0/models/ChannelCallerId_impl_ari_1_5_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_5_0/models/ChannelCallerId_impl_ari_1_5_0.java index c60d39bf..62fd7ff1 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_5_0/models/ChannelCallerId_impl_ari_1_5_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_5_0/models/ChannelCallerId_impl_ari_1_5_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Wed Aug 31 18:05:10 CEST 2016 +// Generated on: Sat Feb 04 15:23:09 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_5_0/models/ChannelCreated_impl_ari_1_5_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_5_0/models/ChannelCreated_impl_ari_1_5_0.java index 567f0196..30ab0c02 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_5_0/models/ChannelCreated_impl_ari_1_5_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_5_0/models/ChannelCreated_impl_ari_1_5_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Wed Aug 31 18:05:10 CEST 2016 +// Generated on: Sat Feb 04 15:23:09 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_5_0/models/ChannelDestroyed_impl_ari_1_5_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_5_0/models/ChannelDestroyed_impl_ari_1_5_0.java index cfa96fcf..99ae4f8b 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_5_0/models/ChannelDestroyed_impl_ari_1_5_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_5_0/models/ChannelDestroyed_impl_ari_1_5_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Wed Aug 31 18:05:10 CEST 2016 +// Generated on: Sat Feb 04 15:23:09 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_5_0/models/ChannelDialplan_impl_ari_1_5_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_5_0/models/ChannelDialplan_impl_ari_1_5_0.java index a03eb77e..93da65db 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_5_0/models/ChannelDialplan_impl_ari_1_5_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_5_0/models/ChannelDialplan_impl_ari_1_5_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Wed Aug 31 18:05:10 CEST 2016 +// Generated on: Sat Feb 04 15:23:09 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_5_0/models/ChannelDtmfReceived_impl_ari_1_5_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_5_0/models/ChannelDtmfReceived_impl_ari_1_5_0.java index 5bd211b0..9fccbc77 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_5_0/models/ChannelDtmfReceived_impl_ari_1_5_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_5_0/models/ChannelDtmfReceived_impl_ari_1_5_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Wed Aug 31 18:05:10 CEST 2016 +// Generated on: Sat Feb 04 15:23:09 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_5_0/models/ChannelEnteredBridge_impl_ari_1_5_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_5_0/models/ChannelEnteredBridge_impl_ari_1_5_0.java index 8c6e2fe6..0365fbff 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_5_0/models/ChannelEnteredBridge_impl_ari_1_5_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_5_0/models/ChannelEnteredBridge_impl_ari_1_5_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Wed Aug 31 18:05:10 CEST 2016 +// Generated on: Sat Feb 04 15:23:09 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_5_0/models/ChannelHangupRequest_impl_ari_1_5_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_5_0/models/ChannelHangupRequest_impl_ari_1_5_0.java index 99d10bcf..91eb36fc 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_5_0/models/ChannelHangupRequest_impl_ari_1_5_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_5_0/models/ChannelHangupRequest_impl_ari_1_5_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Wed Aug 31 18:05:10 CEST 2016 +// Generated on: Sat Feb 04 15:23:09 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_5_0/models/ChannelLeftBridge_impl_ari_1_5_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_5_0/models/ChannelLeftBridge_impl_ari_1_5_0.java index 31876bb9..da940b48 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_5_0/models/ChannelLeftBridge_impl_ari_1_5_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_5_0/models/ChannelLeftBridge_impl_ari_1_5_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Wed Aug 31 18:05:10 CEST 2016 +// Generated on: Sat Feb 04 15:23:09 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_5_0/models/ChannelStateChange_impl_ari_1_5_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_5_0/models/ChannelStateChange_impl_ari_1_5_0.java index 7f76c784..cac72502 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_5_0/models/ChannelStateChange_impl_ari_1_5_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_5_0/models/ChannelStateChange_impl_ari_1_5_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Wed Aug 31 18:05:10 CEST 2016 +// Generated on: Sat Feb 04 15:23:09 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_5_0/models/ChannelTalkingFinished_impl_ari_1_5_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_5_0/models/ChannelTalkingFinished_impl_ari_1_5_0.java index 7a596dc5..f8910e59 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_5_0/models/ChannelTalkingFinished_impl_ari_1_5_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_5_0/models/ChannelTalkingFinished_impl_ari_1_5_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Wed Aug 31 18:05:10 CEST 2016 +// Generated on: Sat Feb 04 15:23:09 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_5_0/models/ChannelTalkingStarted_impl_ari_1_5_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_5_0/models/ChannelTalkingStarted_impl_ari_1_5_0.java index f46cebf2..062e1049 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_5_0/models/ChannelTalkingStarted_impl_ari_1_5_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_5_0/models/ChannelTalkingStarted_impl_ari_1_5_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Wed Aug 31 18:05:10 CEST 2016 +// Generated on: Sat Feb 04 15:23:09 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_5_0/models/ChannelUserevent_impl_ari_1_5_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_5_0/models/ChannelUserevent_impl_ari_1_5_0.java index 1f5045d1..d8083a40 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_5_0/models/ChannelUserevent_impl_ari_1_5_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_5_0/models/ChannelUserevent_impl_ari_1_5_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Wed Aug 31 18:05:10 CEST 2016 +// Generated on: Sat Feb 04 15:23:09 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_5_0/models/ChannelVarset_impl_ari_1_5_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_5_0/models/ChannelVarset_impl_ari_1_5_0.java index 9afd0401..d60b6f07 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_5_0/models/ChannelVarset_impl_ari_1_5_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_5_0/models/ChannelVarset_impl_ari_1_5_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Wed Aug 31 18:05:10 CEST 2016 +// Generated on: Sat Feb 04 15:23:09 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_5_0/models/Channel_impl_ari_1_5_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_5_0/models/Channel_impl_ari_1_5_0.java index 8f47eb64..5164537c 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_5_0/models/Channel_impl_ari_1_5_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_5_0/models/Channel_impl_ari_1_5_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Wed Aug 31 18:05:10 CEST 2016 +// Generated on: Sat Feb 04 15:23:09 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; @@ -129,5 +129,23 @@ public void setLanguage(String val ){ throw new UnsupportedOperationException("Method availble from ..."); }; +/********************************************************** + * Channel variables + * + * @since ari_2_0_0 + *********************************************************/ + public String getChannelvars(){ + throw new UnsupportedOperationException("Method availble from ..."); +}; + +/********************************************************** + * Channel variables + * + * @since ari_2_0_0 + *********************************************************/ + public void setChannelvars(String val ){ + throw new UnsupportedOperationException("Method availble from ..."); +}; + } diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_5_0/models/ConfigInfo_impl_ari_1_5_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_5_0/models/ConfigInfo_impl_ari_1_5_0.java index dcb9985e..384ec604 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_5_0/models/ConfigInfo_impl_ari_1_5_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_5_0/models/ConfigInfo_impl_ari_1_5_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Wed Aug 31 18:05:10 CEST 2016 +// Generated on: Sat Feb 04 15:23:09 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_5_0/models/DeviceStateChanged_impl_ari_1_5_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_5_0/models/DeviceStateChanged_impl_ari_1_5_0.java index e4174724..e7394558 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_5_0/models/DeviceStateChanged_impl_ari_1_5_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_5_0/models/DeviceStateChanged_impl_ari_1_5_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Wed Aug 31 18:05:10 CEST 2016 +// Generated on: Sat Feb 04 15:23:09 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_5_0/models/DeviceState_impl_ari_1_5_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_5_0/models/DeviceState_impl_ari_1_5_0.java index b6e8c236..004f6a1b 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_5_0/models/DeviceState_impl_ari_1_5_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_5_0/models/DeviceState_impl_ari_1_5_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Wed Aug 31 18:05:10 CEST 2016 +// Generated on: Sat Feb 04 15:23:09 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_5_0/models/Dial_impl_ari_1_5_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_5_0/models/Dial_impl_ari_1_5_0.java index 9d4ea1f2..c46d9490 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_5_0/models/Dial_impl_ari_1_5_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_5_0/models/Dial_impl_ari_1_5_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Wed Aug 31 18:05:10 CEST 2016 +// Generated on: Sat Feb 04 15:23:09 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_5_0/models/Dialed_impl_ari_1_5_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_5_0/models/Dialed_impl_ari_1_5_0.java index 68b86f6d..0c4e532a 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_5_0/models/Dialed_impl_ari_1_5_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_5_0/models/Dialed_impl_ari_1_5_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Wed Aug 31 18:05:10 CEST 2016 +// Generated on: Sat Feb 04 15:23:09 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_5_0/models/DialplanCEP_impl_ari_1_5_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_5_0/models/DialplanCEP_impl_ari_1_5_0.java index 5e3eb65f..e0acc1df 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_5_0/models/DialplanCEP_impl_ari_1_5_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_5_0/models/DialplanCEP_impl_ari_1_5_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Wed Aug 31 18:05:10 CEST 2016 +// Generated on: Sat Feb 04 15:23:09 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_5_0/models/EndpointStateChange_impl_ari_1_5_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_5_0/models/EndpointStateChange_impl_ari_1_5_0.java index 9c45a3f2..e167edb9 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_5_0/models/EndpointStateChange_impl_ari_1_5_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_5_0/models/EndpointStateChange_impl_ari_1_5_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Wed Aug 31 18:05:10 CEST 2016 +// Generated on: Sat Feb 04 15:23:09 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_5_0/models/Endpoint_impl_ari_1_5_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_5_0/models/Endpoint_impl_ari_1_5_0.java index 2671cd55..366f8d63 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_5_0/models/Endpoint_impl_ari_1_5_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_5_0/models/Endpoint_impl_ari_1_5_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Wed Aug 31 18:05:10 CEST 2016 +// Generated on: Sat Feb 04 15:23:09 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_5_0/models/Event_impl_ari_1_5_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_5_0/models/Event_impl_ari_1_5_0.java index 49355f36..54593b14 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_5_0/models/Event_impl_ari_1_5_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_5_0/models/Event_impl_ari_1_5_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Wed Aug 31 18:05:10 CEST 2016 +// Generated on: Sat Feb 04 15:23:09 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_5_0/models/FormatLangPair_impl_ari_1_5_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_5_0/models/FormatLangPair_impl_ari_1_5_0.java index cc515d40..9815535f 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_5_0/models/FormatLangPair_impl_ari_1_5_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_5_0/models/FormatLangPair_impl_ari_1_5_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Wed Aug 31 18:05:10 CEST 2016 +// Generated on: Sat Feb 04 15:23:09 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_5_0/models/LiveRecording_impl_ari_1_5_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_5_0/models/LiveRecording_impl_ari_1_5_0.java index 80d61fe4..2710a500 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_5_0/models/LiveRecording_impl_ari_1_5_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_5_0/models/LiveRecording_impl_ari_1_5_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Wed Aug 31 18:05:10 CEST 2016 +// Generated on: Sat Feb 04 15:23:09 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_5_0/models/Message_impl_ari_1_5_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_5_0/models/Message_impl_ari_1_5_0.java index 6c87354e..a3b58341 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_5_0/models/Message_impl_ari_1_5_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_5_0/models/Message_impl_ari_1_5_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Wed Aug 31 18:05:10 CEST 2016 +// Generated on: Sat Feb 04 15:23:09 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; @@ -70,6 +70,23 @@ public void setType(String val ) { type = val; } -/** No missing signatures from interface */ +/********************************************************** + * The unique ID for the Asterisk instance that raised this event. + * + * @since ari_2_0_0 + *********************************************************/ + public void setAsterisk_id(String val ){ + throw new UnsupportedOperationException("Method availble from ..."); +}; + +/********************************************************** + * The unique ID for the Asterisk instance that raised this event. + * + * @since ari_2_0_0 + *********************************************************/ + public String getAsterisk_id(){ + throw new UnsupportedOperationException("Method availble from ..."); +}; + } diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_5_0/models/MissingParams_impl_ari_1_5_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_5_0/models/MissingParams_impl_ari_1_5_0.java index af6182af..2dcfe6f3 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_5_0/models/MissingParams_impl_ari_1_5_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_5_0/models/MissingParams_impl_ari_1_5_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Wed Aug 31 18:05:10 CEST 2016 +// Generated on: Sat Feb 04 15:23:09 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_5_0/models/PlaybackFinished_impl_ari_1_5_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_5_0/models/PlaybackFinished_impl_ari_1_5_0.java index 565d8010..dad403b4 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_5_0/models/PlaybackFinished_impl_ari_1_5_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_5_0/models/PlaybackFinished_impl_ari_1_5_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Wed Aug 31 18:05:10 CEST 2016 +// Generated on: Sat Feb 04 15:23:09 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_5_0/models/PlaybackStarted_impl_ari_1_5_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_5_0/models/PlaybackStarted_impl_ari_1_5_0.java index 8f02edbd..c16bfa6a 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_5_0/models/PlaybackStarted_impl_ari_1_5_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_5_0/models/PlaybackStarted_impl_ari_1_5_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Wed Aug 31 18:05:10 CEST 2016 +// Generated on: Sat Feb 04 15:23:09 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_5_0/models/Playback_impl_ari_1_5_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_5_0/models/Playback_impl_ari_1_5_0.java index d0086838..80a5249f 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_5_0/models/Playback_impl_ari_1_5_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_5_0/models/Playback_impl_ari_1_5_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Wed Aug 31 18:05:10 CEST 2016 +// Generated on: Sat Feb 04 15:23:09 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; @@ -81,7 +81,7 @@ public void setTarget_uri(String val ) { * * @since ari_1_10_0 *********************************************************/ - public void setNext_media_uri(String val ){ + public String getNext_media_uri(){ throw new UnsupportedOperationException("Method availble from ..."); }; @@ -90,7 +90,7 @@ public void setNext_media_uri(String val ){ * * @since ari_1_10_0 *********************************************************/ - public String getNext_media_uri(){ + public void setNext_media_uri(String val ){ throw new UnsupportedOperationException("Method availble from ..."); }; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_5_0/models/RecordingFailed_impl_ari_1_5_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_5_0/models/RecordingFailed_impl_ari_1_5_0.java index 2ccf446f..e160eff0 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_5_0/models/RecordingFailed_impl_ari_1_5_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_5_0/models/RecordingFailed_impl_ari_1_5_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Wed Aug 31 18:05:10 CEST 2016 +// Generated on: Sat Feb 04 15:23:09 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_5_0/models/RecordingFinished_impl_ari_1_5_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_5_0/models/RecordingFinished_impl_ari_1_5_0.java index abe59c9c..d7b93d02 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_5_0/models/RecordingFinished_impl_ari_1_5_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_5_0/models/RecordingFinished_impl_ari_1_5_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Wed Aug 31 18:05:10 CEST 2016 +// Generated on: Sat Feb 04 15:23:09 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_5_0/models/RecordingStarted_impl_ari_1_5_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_5_0/models/RecordingStarted_impl_ari_1_5_0.java index 40d0e632..d600ab5c 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_5_0/models/RecordingStarted_impl_ari_1_5_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_5_0/models/RecordingStarted_impl_ari_1_5_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Wed Aug 31 18:05:10 CEST 2016 +// Generated on: Sat Feb 04 15:23:09 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_5_0/models/SetId_impl_ari_1_5_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_5_0/models/SetId_impl_ari_1_5_0.java index ddaf3802..8a473515 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_5_0/models/SetId_impl_ari_1_5_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_5_0/models/SetId_impl_ari_1_5_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Wed Aug 31 18:05:10 CEST 2016 +// Generated on: Sat Feb 04 15:23:09 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_5_0/models/Sound_impl_ari_1_5_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_5_0/models/Sound_impl_ari_1_5_0.java index 677cf13e..b82b7455 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_5_0/models/Sound_impl_ari_1_5_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_5_0/models/Sound_impl_ari_1_5_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Wed Aug 31 18:05:10 CEST 2016 +// Generated on: Sat Feb 04 15:23:09 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_5_0/models/StasisEnd_impl_ari_1_5_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_5_0/models/StasisEnd_impl_ari_1_5_0.java index e64abe81..4feee569 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_5_0/models/StasisEnd_impl_ari_1_5_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_5_0/models/StasisEnd_impl_ari_1_5_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Wed Aug 31 18:05:10 CEST 2016 +// Generated on: Sat Feb 04 15:23:09 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_5_0/models/StasisStart_impl_ari_1_5_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_5_0/models/StasisStart_impl_ari_1_5_0.java index 3e18d912..a40d0058 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_5_0/models/StasisStart_impl_ari_1_5_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_5_0/models/StasisStart_impl_ari_1_5_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Wed Aug 31 18:05:10 CEST 2016 +// Generated on: Sat Feb 04 15:23:09 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_5_0/models/StatusInfo_impl_ari_1_5_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_5_0/models/StatusInfo_impl_ari_1_5_0.java index 233f60ee..fe7b1f8b 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_5_0/models/StatusInfo_impl_ari_1_5_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_5_0/models/StatusInfo_impl_ari_1_5_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Wed Aug 31 18:05:10 CEST 2016 +// Generated on: Sat Feb 04 15:23:09 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_5_0/models/StoredRecording_impl_ari_1_5_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_5_0/models/StoredRecording_impl_ari_1_5_0.java index 8d1dfc75..6988237b 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_5_0/models/StoredRecording_impl_ari_1_5_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_5_0/models/StoredRecording_impl_ari_1_5_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Wed Aug 31 18:05:10 CEST 2016 +// Generated on: Sat Feb 04 15:23:09 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_5_0/models/SystemInfo_impl_ari_1_5_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_5_0/models/SystemInfo_impl_ari_1_5_0.java index 23fbfbf9..e9cc8b41 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_5_0/models/SystemInfo_impl_ari_1_5_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_5_0/models/SystemInfo_impl_ari_1_5_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Wed Aug 31 18:05:10 CEST 2016 +// Generated on: Sat Feb 04 15:23:09 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_5_0/models/TextMessageReceived_impl_ari_1_5_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_5_0/models/TextMessageReceived_impl_ari_1_5_0.java index baeeb2ee..ec1b3593 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_5_0/models/TextMessageReceived_impl_ari_1_5_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_5_0/models/TextMessageReceived_impl_ari_1_5_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Wed Aug 31 18:05:10 CEST 2016 +// Generated on: Sat Feb 04 15:23:09 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_5_0/models/TextMessageVariable_impl_ari_1_5_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_5_0/models/TextMessageVariable_impl_ari_1_5_0.java index 5a7ea157..5b628b73 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_5_0/models/TextMessageVariable_impl_ari_1_5_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_5_0/models/TextMessageVariable_impl_ari_1_5_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Wed Aug 31 18:05:10 CEST 2016 +// Generated on: Sat Feb 04 15:23:09 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_5_0/models/TextMessage_impl_ari_1_5_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_5_0/models/TextMessage_impl_ari_1_5_0.java index 437fc04b..698565b2 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_5_0/models/TextMessage_impl_ari_1_5_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_5_0/models/TextMessage_impl_ari_1_5_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Wed Aug 31 18:05:10 CEST 2016 +// Generated on: Sat Feb 04 15:23:09 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_5_0/models/Variable_impl_ari_1_5_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_5_0/models/Variable_impl_ari_1_5_0.java index 2e2a9284..b44776cb 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_5_0/models/Variable_impl_ari_1_5_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_5_0/models/Variable_impl_ari_1_5_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Wed Aug 31 18:05:10 CEST 2016 +// Generated on: Sat Feb 04 15:23:09 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_6_0/AriBuilder_impl_ari_1_6_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_6_0/AriBuilder_impl_ari_1_6_0.java index ad8bbe6f..057175d3 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_6_0/AriBuilder_impl_ari_1_6_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_6_0/AriBuilder_impl_ari_1_6_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Wed Aug 31 18:05:11 CEST 2016 +// Generated on: Sat Feb 04 15:23:09 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.ari_1_6_0.models.*; @@ -13,26 +13,10 @@ public class AriBuilder_impl_ari_1_6_0 implements AriBuilder { -public ActionPlaybacks actionPlaybacks() { - return new ActionPlaybacks_impl_ari_1_6_0(); - }; - -public ActionApplications actionApplications() { - return new ActionApplications_impl_ari_1_6_0(); - }; - public ActionChannels actionChannels() { return new ActionChannels_impl_ari_1_6_0(); }; -public ActionRecordings actionRecordings() { - return new ActionRecordings_impl_ari_1_6_0(); - }; - -public ActionEndpoints actionEndpoints() { - return new ActionEndpoints_impl_ari_1_6_0(); - }; - public ActionDeviceStates actionDeviceStates() { return new ActionDeviceStates_impl_ari_1_6_0(); }; @@ -41,242 +25,262 @@ public ActionAsterisk actionAsterisk() { return new ActionAsterisk_impl_ari_1_6_0(); }; -public ActionBridges actionBridges() { - return new ActionBridges_impl_ari_1_6_0(); +public ActionEndpoints actionEndpoints() { + return new ActionEndpoints_impl_ari_1_6_0(); + }; + +public ActionRecordings actionRecordings() { + return new ActionRecordings_impl_ari_1_6_0(); }; public ActionSounds actionSounds() { return new ActionSounds_impl_ari_1_6_0(); }; -public ActionEvents actionEvents() { - return new ActionEvents_impl_ari_1_6_0(); +public ActionApplications actionApplications() { + return new ActionApplications_impl_ari_1_6_0(); }; -public ChannelDestroyed channelDestroyed() { - return new ChannelDestroyed_impl_ari_1_6_0(); +public ActionPlaybacks actionPlaybacks() { + return new ActionPlaybacks_impl_ari_1_6_0(); }; -public AsteriskInfo asteriskInfo() { - return new AsteriskInfo_impl_ari_1_6_0(); +public ActionBridges actionBridges() { + return new ActionBridges_impl_ari_1_6_0(); }; -public TextMessageVariable textMessageVariable() { - return new TextMessageVariable_impl_ari_1_6_0(); +public ActionEvents actionEvents() { + return new ActionEvents_impl_ari_1_6_0(); }; -public ChannelDialplan channelDialplan() { - return new ChannelDialplan_impl_ari_1_6_0(); +public StasisStart stasisStart() { + return new StasisStart_impl_ari_1_6_0(); }; -public Event event() { - return new Event_impl_ari_1_6_0(); +public ChannelTalkingStarted channelTalkingStarted() { + return new ChannelTalkingStarted_impl_ari_1_6_0(); }; -public ChannelDtmfReceived channelDtmfReceived() { - return new ChannelDtmfReceived_impl_ari_1_6_0(); +public BridgeAttendedTransfer bridgeAttendedTransfer() { + return new BridgeAttendedTransfer_impl_ari_1_6_0(); }; -public DeviceState deviceState() { - return new DeviceState_impl_ari_1_6_0(); +public ChannelDestroyed channelDestroyed() { + return new ChannelDestroyed_impl_ari_1_6_0(); }; -public PlaybackFinished playbackFinished() { - return new PlaybackFinished_impl_ari_1_6_0(); +public Channel channel() { + return new Channel_impl_ari_1_6_0(); }; -public ChannelCallerId channelCallerId() { - return new ChannelCallerId_impl_ari_1_6_0(); +public PlaybackStarted playbackStarted() { + return new PlaybackStarted_impl_ari_1_6_0(); }; -public MissingParams missingParams() { - return new MissingParams_impl_ari_1_6_0(); +public SystemInfo systemInfo() { + return new SystemInfo_impl_ari_1_6_0(); }; -public BridgeAttendedTransfer bridgeAttendedTransfer() { - return new BridgeAttendedTransfer_impl_ari_1_6_0(); +public ChannelTalkingFinished channelTalkingFinished() { + return new ChannelTalkingFinished_impl_ari_1_6_0(); }; -public StoredRecording storedRecording() { - return new StoredRecording_impl_ari_1_6_0(); +public Variable variable() { + return new Variable_impl_ari_1_6_0(); }; public ChannelLeftBridge channelLeftBridge() { return new ChannelLeftBridge_impl_ari_1_6_0(); }; -public Message message() { - return new Message_impl_ari_1_6_0(); +public TextMessageVariable textMessageVariable() { + return new TextMessageVariable_impl_ari_1_6_0(); }; -public ChannelCreated channelCreated() { - return new ChannelCreated_impl_ari_1_6_0(); +public StoredRecording storedRecording() { + return new StoredRecording_impl_ari_1_6_0(); }; -public SystemInfo systemInfo() { - return new SystemInfo_impl_ari_1_6_0(); +public BridgeMerged bridgeMerged() { + return new BridgeMerged_impl_ari_1_6_0(); }; -public RecordingStarted recordingStarted() { - return new RecordingStarted_impl_ari_1_6_0(); +public Sound sound() { + return new Sound_impl_ari_1_6_0(); }; -public DialplanCEP dialplanCEP() { - return new DialplanCEP_impl_ari_1_6_0(); +public Dial dial() { + return new Dial_impl_ari_1_6_0(); }; -public Bridge bridge() { - return new Bridge_impl_ari_1_6_0(); +public ChannelDtmfReceived channelDtmfReceived() { + return new ChannelDtmfReceived_impl_ari_1_6_0(); }; -public Channel channel() { - return new Channel_impl_ari_1_6_0(); +public StatusInfo statusInfo() { + return new StatusInfo_impl_ari_1_6_0(); }; -public Sound sound() { - return new Sound_impl_ari_1_6_0(); +public Endpoint endpoint() { + return new Endpoint_impl_ari_1_6_0(); }; -public DeviceStateChanged deviceStateChanged() { - return new DeviceStateChanged_impl_ari_1_6_0(); +public ChannelUserevent channelUserevent() { + return new ChannelUserevent_impl_ari_1_6_0(); }; -public ChannelConnectedLine channelConnectedLine() { - return new ChannelConnectedLine_impl_ari_1_6_0(); +public BridgeCreated bridgeCreated() { + return new BridgeCreated_impl_ari_1_6_0(); }; -public CallerID callerID() { - return new CallerID_impl_ari_1_6_0(); +public BuildInfo buildInfo() { + return new BuildInfo_impl_ari_1_6_0(); }; -public FormatLangPair formatLangPair() { - return new FormatLangPair_impl_ari_1_6_0(); +public TextMessage textMessage() { + return new TextMessage_impl_ari_1_6_0(); }; -public StasisStart stasisStart() { - return new StasisStart_impl_ari_1_6_0(); +public AsteriskInfo asteriskInfo() { + return new AsteriskInfo_impl_ari_1_6_0(); }; -public ChannelEnteredBridge channelEnteredBridge() { - return new ChannelEnteredBridge_impl_ari_1_6_0(); +public Message message() { + return new Message_impl_ari_1_6_0(); }; -public Endpoint endpoint() { - return new Endpoint_impl_ari_1_6_0(); +public DeviceStateChanged deviceStateChanged() { + return new DeviceStateChanged_impl_ari_1_6_0(); }; -public BuildInfo buildInfo() { - return new BuildInfo_impl_ari_1_6_0(); +public MissingParams missingParams() { + return new MissingParams_impl_ari_1_6_0(); }; public TextMessageReceived textMessageReceived() { return new TextMessageReceived_impl_ari_1_6_0(); }; -public EndpointStateChange endpointStateChange() { - return new EndpointStateChange_impl_ari_1_6_0(); - }; - -public PlaybackStarted playbackStarted() { - return new PlaybackStarted_impl_ari_1_6_0(); +public ChannelStateChange channelStateChange() { + return new ChannelStateChange_impl_ari_1_6_0(); }; -public ChannelTalkingStarted channelTalkingStarted() { - return new ChannelTalkingStarted_impl_ari_1_6_0(); +public FormatLangPair formatLangPair() { + return new FormatLangPair_impl_ari_1_6_0(); }; -public ChannelVarset channelVarset() { - return new ChannelVarset_impl_ari_1_6_0(); +public RecordingFailed recordingFailed() { + return new RecordingFailed_impl_ari_1_6_0(); }; -public TextMessage textMessage() { - return new TextMessage_impl_ari_1_6_0(); +public ChannelConnectedLine channelConnectedLine() { + return new ChannelConnectedLine_impl_ari_1_6_0(); }; -public Variable variable() { - return new Variable_impl_ari_1_6_0(); +public StasisEnd stasisEnd() { + return new StasisEnd_impl_ari_1_6_0(); }; -public ChannelUserevent channelUserevent() { - return new ChannelUserevent_impl_ari_1_6_0(); +public BridgeDestroyed bridgeDestroyed() { + return new BridgeDestroyed_impl_ari_1_6_0(); }; -public BridgeBlindTransfer bridgeBlindTransfer() { - return new BridgeBlindTransfer_impl_ari_1_6_0(); +public EndpointStateChange endpointStateChange() { + return new EndpointStateChange_impl_ari_1_6_0(); }; -public ChannelStateChange channelStateChange() { - return new ChannelStateChange_impl_ari_1_6_0(); +public Event event() { + return new Event_impl_ari_1_6_0(); }; -public ConfigInfo configInfo() { - return new ConfigInfo_impl_ari_1_6_0(); +public ChannelVarset channelVarset() { + return new ChannelVarset_impl_ari_1_6_0(); }; -public Playback playback() { - return new Playback_impl_ari_1_6_0(); +public DialplanCEP dialplanCEP() { + return new DialplanCEP_impl_ari_1_6_0(); }; -public StatusInfo statusInfo() { - return new StatusInfo_impl_ari_1_6_0(); +public BridgeBlindTransfer bridgeBlindTransfer() { + return new BridgeBlindTransfer_impl_ari_1_6_0(); }; -public Dial dial() { - return new Dial_impl_ari_1_6_0(); +public ChannelCallerId channelCallerId() { + return new ChannelCallerId_impl_ari_1_6_0(); }; -public SetId setId() { - return new SetId_impl_ari_1_6_0(); +public Playback playback() { + return new Playback_impl_ari_1_6_0(); }; -public RecordingFailed recordingFailed() { - return new RecordingFailed_impl_ari_1_6_0(); +public ChannelEnteredBridge channelEnteredBridge() { + return new ChannelEnteredBridge_impl_ari_1_6_0(); }; -public BridgeCreated bridgeCreated() { - return new BridgeCreated_impl_ari_1_6_0(); +public ConfigInfo configInfo() { + return new ConfigInfo_impl_ari_1_6_0(); }; -public RecordingFinished recordingFinished() { - return new RecordingFinished_impl_ari_1_6_0(); +public PlaybackFinished playbackFinished() { + return new PlaybackFinished_impl_ari_1_6_0(); }; -public ChannelTalkingFinished channelTalkingFinished() { - return new ChannelTalkingFinished_impl_ari_1_6_0(); +public Bridge bridge() { + return new Bridge_impl_ari_1_6_0(); }; public Application application() { return new Application_impl_ari_1_6_0(); }; -public StasisEnd stasisEnd() { - return new StasisEnd_impl_ari_1_6_0(); +public RecordingStarted recordingStarted() { + return new RecordingStarted_impl_ari_1_6_0(); + }; + +public SetId setId() { + return new SetId_impl_ari_1_6_0(); }; public ApplicationReplaced applicationReplaced() { return new ApplicationReplaced_impl_ari_1_6_0(); }; -public Dialed dialed() { - return new Dialed_impl_ari_1_6_0(); +public CallerID callerID() { + return new CallerID_impl_ari_1_6_0(); }; public LiveRecording liveRecording() { return new LiveRecording_impl_ari_1_6_0(); }; -public BridgeDestroyed bridgeDestroyed() { - return new BridgeDestroyed_impl_ari_1_6_0(); +public DeviceState deviceState() { + return new DeviceState_impl_ari_1_6_0(); }; -public BridgeMerged bridgeMerged() { - return new BridgeMerged_impl_ari_1_6_0(); +public RecordingFinished recordingFinished() { + return new RecordingFinished_impl_ari_1_6_0(); + }; + +public ChannelDialplan channelDialplan() { + return new ChannelDialplan_impl_ari_1_6_0(); + }; + +public ChannelCreated channelCreated() { + return new ChannelCreated_impl_ari_1_6_0(); }; public ChannelHangupRequest channelHangupRequest() { return new ChannelHangupRequest_impl_ari_1_6_0(); }; +public Dialed dialed() { + return new Dialed_impl_ari_1_6_0(); + }; + +public BridgeVideoSourceChanged bridgeVideoSourceChanged() { + throw new UnsupportedOperationException(); + }; + public ChannelHold channelHold() { throw new UnsupportedOperationException(); }; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_6_0/ClassTranslator_impl_ari_1_6_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_6_0/ClassTranslator_impl_ari_1_6_0.java index 679defcc..3d56ef8f 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_6_0/ClassTranslator_impl_ari_1_6_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_6_0/ClassTranslator_impl_ari_1_6_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Wed Aug 31 18:05:11 CEST 2016 +// Generated on: Sat Feb 04 15:23:09 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.ARI; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_6_0/actions/ActionApplications_impl_ari_1_6_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_6_0/actions/ActionApplications_impl_ari_1_6_0.java index 4472d7a9..29f481d2 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_6_0/actions/ActionApplications_impl_ari_1_6_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_6_0/actions/ActionApplications_impl_ari_1_6_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Wed Aug 31 18:05:11 CEST 2016 +// Generated on: Sat Feb 04 15:23:09 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_6_0/actions/ActionAsterisk_impl_ari_1_6_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_6_0/actions/ActionAsterisk_impl_ari_1_6_0.java index dc8c8cb5..af4b6c8b 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_6_0/actions/ActionAsterisk_impl_ari_1_6_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_6_0/actions/ActionAsterisk_impl_ari_1_6_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Wed Aug 31 18:05:11 CEST 2016 +// Generated on: Sat Feb 04 15:23:09 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; @@ -104,22 +104,20 @@ public void setGlobalVar(String variable, String value, AriCallback callba } /********************************************************** - * Reload an Asterisk module. * * * @since ari_1_8_0 *********************************************************/ -public void reloadModule(String moduleName) throws RestException{ +public void updateObject(String configClass, String objectType, String id, Map fields, AriCallback> callback){ throw new UnsupportedOperationException("Method availble from ..."); }; /********************************************************** - * Create or update a dynamic configuration object. * * * @since ari_1_8_0 *********************************************************/ -public List updateObject(String configClass, String objectType, String id, Map fields) throws RestException{ +public void listModules(AriCallback> callback){ throw new UnsupportedOperationException("Method availble from ..."); }; @@ -128,7 +126,7 @@ public List updateObject(String configClass, String objectType, Str * * @since ari_1_8_0 *********************************************************/ -public void deleteObject(String configClass, String objectType, String id, AriCallback callback){ +public void getModule(String moduleName, AriCallback callback){ throw new UnsupportedOperationException("Method availble from ..."); }; @@ -137,16 +135,17 @@ public void deleteObject(String configClass, String objectType, String id, AriCa * * @since ari_1_8_0 *********************************************************/ -public void reloadModule(String moduleName, AriCallback callback){ +public void unloadModule(String moduleName, AriCallback callback){ throw new UnsupportedOperationException("Method availble from ..."); }; /********************************************************** + * Rotates a log channel. * * * @since ari_1_9_0 *********************************************************/ -public void addLog(String logChannelName, String configuration, AriCallback callback){ +public void rotateLog(String logChannelName) throws RestException{ throw new UnsupportedOperationException("Method availble from ..."); }; @@ -155,46 +154,47 @@ public void addLog(String logChannelName, String configuration, AriCallback callback){ +public void deleteObject(String configClass, String objectType, String id, AriCallback callback){ throw new UnsupportedOperationException("Method availble from ..."); }; /********************************************************** - * List Asterisk modules. + * Deletes a log channel. * * - * @since ari_1_8_0 + * @since ari_1_9_0 *********************************************************/ -public List listModules() throws RestException{ +public void deleteLog(String logChannelName) throws RestException{ throw new UnsupportedOperationException("Method availble from ..."); }; /********************************************************** - * Gets Asterisk log channel information. + * Load an Asterisk module. * * - * @since ari_1_9_0 + * @since ari_1_8_0 *********************************************************/ -public List listLogChannels() throws RestException{ +public void loadModule(String moduleName) throws RestException{ throw new UnsupportedOperationException("Method availble from ..."); }; /********************************************************** - * Get Asterisk module information. + * Unload an Asterisk module. * * * @since ari_1_8_0 *********************************************************/ -public Module getModule(String moduleName) throws RestException{ +public void unloadModule(String moduleName) throws RestException{ throw new UnsupportedOperationException("Method availble from ..."); }; /********************************************************** + * Create or update a dynamic configuration object. * * - * @since ari_1_9_0 + * @since ari_1_8_0 *********************************************************/ -public void rotateLog(String logChannelName, AriCallback callback){ +public List updateObject(String configClass, String objectType, String id, Map fields) throws RestException{ throw new UnsupportedOperationException("Method availble from ..."); }; @@ -209,22 +209,21 @@ public List getObject(String configClass, String objectType, String }; /********************************************************** - * Load an Asterisk module. + * Get Asterisk module information. * * * @since ari_1_8_0 *********************************************************/ -public void loadModule(String moduleName) throws RestException{ +public Module getModule(String moduleName) throws RestException{ throw new UnsupportedOperationException("Method availble from ..."); }; /********************************************************** - * Unload an Asterisk module. * * - * @since ari_1_8_0 + * @since ari_1_9_0 *********************************************************/ -public void unloadModule(String moduleName) throws RestException{ +public void rotateLog(String logChannelName, AriCallback callback){ throw new UnsupportedOperationException("Method availble from ..."); }; @@ -233,45 +232,44 @@ public void unloadModule(String moduleName) throws RestException{ * * @since ari_1_8_0 *********************************************************/ -public void getModule(String moduleName, AriCallback callback){ +public void loadModule(String moduleName, AriCallback callback){ throw new UnsupportedOperationException("Method availble from ..."); }; /********************************************************** * * - * @since ari_1_8_0 + * @since ari_1_9_0 *********************************************************/ -public void updateObject(String configClass, String objectType, String id, Map fields, AriCallback> callback){ +public void addLog(String logChannelName, String configuration, AriCallback callback){ throw new UnsupportedOperationException("Method availble from ..."); }; /********************************************************** - * Delete a dynamic configuration object. * * * @since ari_1_8_0 *********************************************************/ -public void deleteObject(String configClass, String objectType, String id) throws RestException{ +public void reloadModule(String moduleName, AriCallback callback){ throw new UnsupportedOperationException("Method availble from ..."); }; /********************************************************** - * Rotates a log channel. + * Gets Asterisk log channel information. * * * @since ari_1_9_0 *********************************************************/ -public void rotateLog(String logChannelName) throws RestException{ +public List listLogChannels() throws RestException{ throw new UnsupportedOperationException("Method availble from ..."); }; /********************************************************** * * - * @since ari_1_9_0 + * @since ari_1_8_0 *********************************************************/ -public void listLogChannels(AriCallback> callback){ +public void getObject(String configClass, String objectType, String id, AriCallback> callback){ throw new UnsupportedOperationException("Method availble from ..."); }; @@ -288,46 +286,48 @@ public void addLog(String logChannelName, String configuration) throws RestExcep /********************************************************** * * - * @since ari_1_8_0 + * @since ari_1_9_0 *********************************************************/ -public void listModules(AriCallback> callback){ +public void listLogChannels(AriCallback> callback){ throw new UnsupportedOperationException("Method availble from ..."); }; /********************************************************** - * Deletes a log channel. + * List Asterisk modules. * * - * @since ari_1_9_0 + * @since ari_1_8_0 *********************************************************/ -public void deleteLog(String logChannelName) throws RestException{ +public List listModules() throws RestException{ throw new UnsupportedOperationException("Method availble from ..."); }; /********************************************************** + * Reload an Asterisk module. * * - * @since ari_1_9_0 + * @since ari_1_8_0 *********************************************************/ -public void deleteLog(String logChannelName, AriCallback callback){ +public void reloadModule(String moduleName) throws RestException{ throw new UnsupportedOperationException("Method availble from ..."); }; /********************************************************** * * - * @since ari_1_8_0 + * @since ari_1_9_0 *********************************************************/ -public void loadModule(String moduleName, AriCallback callback){ +public void deleteLog(String logChannelName, AriCallback callback){ throw new UnsupportedOperationException("Method availble from ..."); }; /********************************************************** + * Delete a dynamic configuration object. * * * @since ari_1_8_0 *********************************************************/ -public void getObject(String configClass, String objectType, String id, AriCallback> callback){ +public void deleteObject(String configClass, String objectType, String id) throws RestException{ throw new UnsupportedOperationException("Method availble from ..."); }; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_6_0/actions/ActionBridges_impl_ari_1_6_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_6_0/actions/ActionBridges_impl_ari_1_6_0.java index 1a6be924..e6c1a76b 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_6_0/actions/ActionBridges_impl_ari_1_6_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_6_0/actions/ActionBridges_impl_ari_1_6_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Wed Aug 31 18:05:11 CEST 2016 +// Generated on: Sat Feb 04 15:23:09 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; @@ -365,11 +365,12 @@ public void removeChannel(String bridgeId, String channel, AriCallback cal } /********************************************************** + * Start playback of media on a bridge. + * The media URI may be any of a number of URI's. Currently sound: and recording: URI's are supported. This operation creates a playback resource that can be used to control the playback of media (pause, rewind, fast forward, etc.) * - * - * @since ari_1_7_0 + * @since ari_0_0_1 *********************************************************/ -public void createWithId(String type, String bridgeId, String name, AriCallback callback){ +public Playback play(String bridgeId, String media, String lang, int offsetms, int skipms) throws RestException{ throw new UnsupportedOperationException("Method availble from ..."); }; @@ -378,17 +379,16 @@ public void createWithId(String type, String bridgeId, String name, AriCallback< * * @since ari_0_0_1 *********************************************************/ -public void create(String type, AriCallback callback){ +public void play(String bridgeId, String media, String lang, int offsetms, int skipms, AriCallback callback){ throw new UnsupportedOperationException("Method availble from ..."); }; /********************************************************** - * Create a new bridge or updates an existing one. - * This bridge persists until it has been shut down, or Asterisk has been shut down. + * * * @since ari_1_7_0 *********************************************************/ -public Bridge createWithId(String type, String bridgeId, String name) throws RestException{ +public void createWithId(String type, String bridgeId, String name, AriCallback callback){ throw new UnsupportedOperationException("Method availble from ..."); }; @@ -402,6 +402,16 @@ public Bridge create(String type, String name) throws RestException{ throw new UnsupportedOperationException("Method availble from ..."); }; +/********************************************************** + * Set a channel as the video source in a multi-party mixing bridge. This operation has no effect on bridges with two or fewer participants. + * + * + * @since ari_2_0_0 + *********************************************************/ +public void setVideoSource(String bridgeId, String channelId) throws RestException{ + throw new UnsupportedOperationException("Method availble from ..."); +}; + /********************************************************** * Create a new bridge. * This bridge persists until it has been shut down, or Asterisk has been shut down. @@ -413,21 +423,30 @@ public Bridge create(String type) throws RestException{ }; /********************************************************** + * Removes any explicit video source in a multi-party mixing bridge. This operation has no effect on bridges with two or fewer participants. When no explicit video source is set, talk detection will be used to determine the active video stream. * * - * @since ari_0_0_1 + * @since ari_2_0_0 *********************************************************/ -public void play(String bridgeId, String media, String lang, int offsetms, int skipms, AriCallback callback){ +public void clearVideoSource(String bridgeId) throws RestException{ throw new UnsupportedOperationException("Method availble from ..."); }; /********************************************************** - * Start playback of media on a bridge. - * The media URI may be any of a number of URI's. Currently sound: and recording: URI's are supported. This operation creates a playback resource that can be used to control the playback of media (pause, rewind, fast forward, etc.) + * * * @since ari_0_0_1 *********************************************************/ -public Playback play(String bridgeId, String media, String lang, int offsetms, int skipms) throws RestException{ +public void create(String type, AriCallback callback){ + throw new UnsupportedOperationException("Method availble from ..."); +}; + +/********************************************************** + * + * + * @since ari_2_0_0 + *********************************************************/ +public void setVideoSource(String bridgeId, String channelId, AriCallback callback){ throw new UnsupportedOperationException("Method availble from ..."); }; @@ -440,5 +459,24 @@ public void create(String type, String name, AriCallback callback){ throw new UnsupportedOperationException("Method availble from ..."); }; +/********************************************************** + * + * + * @since ari_2_0_0 + *********************************************************/ +public void clearVideoSource(String bridgeId, AriCallback callback){ + throw new UnsupportedOperationException("Method availble from ..."); +}; + +/********************************************************** + * Create a new bridge or updates an existing one. + * This bridge persists until it has been shut down, or Asterisk has been shut down. + * + * @since ari_1_7_0 + *********************************************************/ +public Bridge createWithId(String type, String bridgeId, String name) throws RestException{ + throw new UnsupportedOperationException("Method availble from ..."); +}; + }; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_6_0/actions/ActionChannels_impl_ari_1_6_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_6_0/actions/ActionChannels_impl_ari_1_6_0.java index 9e50db32..adf557fa 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_6_0/actions/ActionChannels_impl_ari_1_6_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_6_0/actions/ActionChannels_impl_ari_1_6_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Wed Aug 31 18:05:11 CEST 2016 +// Generated on: Sat Feb 04 15:23:09 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; @@ -735,37 +735,37 @@ public void setChannelVar(String channelId, String variable, String value, AriCa /********************************************************** * * - * @since ari_1_10_0 + * @since ari_1_8_0 *********************************************************/ -public void dial(String channelId, String caller, int timeout, AriCallback callback){ +public void redirect(String channelId, String endpoint, AriCallback callback){ throw new UnsupportedOperationException("Method availble from ..."); }; /********************************************************** * * - * @since ari_0_0_1 + * @since ari_1_7_0 *********************************************************/ -public void snoopChannel(String channelId, String spy, String whisper, String app, String appArgs, AriCallback callback){ +public void originate(String endpoint, String extension, String context, long priority, String label, String app, String appArgs, String callerId, int timeout, Map variables, String channelId, String otherChannelId, String originator, AriCallback callback){ throw new UnsupportedOperationException("Method availble from ..."); }; /********************************************************** - * Dial a created channel. - * + * Start snooping. + * Snoop (spy/whisper) on a specific channel. * - * @since ari_1_10_0 + * @since ari_0_0_1 *********************************************************/ -public void dial(String channelId, String caller, int timeout) throws RestException{ +public Channel snoopChannel(String channelId, String spy, String whisper, String app, String appArgs) throws RestException{ throw new UnsupportedOperationException("Method availble from ..."); }; /********************************************************** * * - * @since ari_1_7_0 + * @since ari_1_10_0 *********************************************************/ -public void continueInDialplan(String channelId, String context, String extension, int priority, String label, AriCallback callback){ +public void dial(String channelId, String caller, int timeout, AriCallback callback){ throw new UnsupportedOperationException("Method availble from ..."); }; @@ -779,22 +779,24 @@ public void originateWithId(String channelId, String endpoint, String extension, }; /********************************************************** - * Start playback of media. - * The media URI may be any of a number of URI's. Currently sound: and recording: URI's are supported. This operation creates a playback resource that can be used to control the playback of media (pause, rewind, fast forward, etc.) + * Exit application{ + throw new UnsupportedOperationException("Method availble from ..."); +}; continue execution in the dialplan. * - * @since ari_0_0_1 + * + * @since ari_1_7_0 *********************************************************/ -public Playback play(String channelId, String media, String lang, int offsetms, int skipms) throws RestException{ +public void continueInDialplan(String channelId, String context, String extension, int priority, String label) throws RestException{ throw new UnsupportedOperationException("Method availble from ..."); }; /********************************************************** - * Create a new channel (originate). - * The new channel is created immediately and a snapshot of it returned. If a Stasis application is provided it will be automatically subscribed to the originated channel for further events and updates. + * Start playback of media. + * The media URI may be any of a number of URI's. Currently sound: and recording: URI's are supported. This operation creates a playback resource that can be used to control the playback of media (pause, rewind, fast forward, etc.) * - * @since ari_1_10_0 + * @since ari_0_0_1 *********************************************************/ -public Channel originate(String endpoint, String extension, String context, long priority, String label, String app, String appArgs, String callerId, int timeout, Map variables, String channelId, String otherChannelId, String originator, String formats) throws RestException{ +public Playback play(String channelId, String media, String lang, int offsetms, int skipms) throws RestException{ throw new UnsupportedOperationException("Method availble from ..."); }; @@ -803,35 +805,36 @@ public Channel originate(String endpoint, String extension, String context, long * * @since ari_0_0_1 *********************************************************/ -public void originate(String endpoint, String extension, String context, long priority, String app, String appArgs, String callerId, int timeout, AriCallback callback){ +public void play(String channelId, String media, String lang, int offsetms, int skipms, AriCallback callback){ throw new UnsupportedOperationException("Method availble from ..."); }; /********************************************************** - * Redirect the channel to a different location. * * - * @since ari_1_8_0 + * @since ari_0_0_1 *********************************************************/ -public void redirect(String channelId, String endpoint) throws RestException{ +public void snoopChannel(String channelId, String spy, String whisper, String app, String appArgs, AriCallback callback){ throw new UnsupportedOperationException("Method availble from ..."); }; /********************************************************** + * Create a new channel (originate). + * The new channel is created immediately and a snapshot of it returned. If a Stasis application is provided it will be automatically subscribed to the originated channel for further events and updates. * - * - * @since ari_1_8_0 + * @since ari_1_7_0 *********************************************************/ -public void redirect(String channelId, String endpoint, AriCallback callback){ +public Channel originate(String endpoint, String extension, String context, long priority, String label, String app, String appArgs, String callerId, int timeout, Map variables, String channelId, String otherChannelId, String originator) throws RestException{ throw new UnsupportedOperationException("Method availble from ..."); }; /********************************************************** - * + * Create a new channel (originate with id). + * The new channel is created immediately and a snapshot of it returned. If a Stasis application is provided it will be automatically subscribed to the originated channel for further events and updates. * * @since ari_1_7_0 *********************************************************/ -public void originate(String endpoint, String extension, String context, long priority, String label, String app, String appArgs, String callerId, int timeout, Map variables, String channelId, String otherChannelId, String originator, AriCallback callback){ +public Channel originateWithId(String channelId, String endpoint, String extension, String context, long priority, String label, String app, String appArgs, String callerId, int timeout, Map variables, String otherChannelId, String originator) throws RestException{ throw new UnsupportedOperationException("Method availble from ..."); }; @@ -839,19 +842,19 @@ public void originate(String endpoint, String extension, String context, long pr * Create a new channel (originate). * The new channel is created immediately and a snapshot of it returned. If a Stasis application is provided it will be automatically subscribed to the originated channel for further events and updates. * - * @since ari_1_7_0 + * @since ari_1_10_0 *********************************************************/ -public Channel originate(String endpoint, String extension, String context, long priority, String label, String app, String appArgs, String callerId, int timeout, Map variables, String channelId, String otherChannelId, String originator) throws RestException{ +public Channel originate(String endpoint, String extension, String context, long priority, String label, String app, String appArgs, String callerId, int timeout, Map variables, String channelId, String otherChannelId, String originator, String formats) throws RestException{ throw new UnsupportedOperationException("Method availble from ..."); }; /********************************************************** - * Create channel. - * + * Create a new channel (originate with id). + * The new channel is created immediately and a snapshot of it returned. If a Stasis application is provided it will be automatically subscribed to the originated channel for further events and updates. * * @since ari_1_10_0 *********************************************************/ -public Channel create(String endpoint, String app, String appArgs, String channelId, String otherChannelId, String originator, String formats) throws RestException{ +public Channel originateWithId(String channelId, String endpoint, String extension, String context, long priority, String label, String app, String appArgs, String callerId, int timeout, Map variables, String otherChannelId, String originator, String formats) throws RestException{ throw new UnsupportedOperationException("Method availble from ..."); }; @@ -866,12 +869,11 @@ public Channel originate(String endpoint, String extension, String context, long }; /********************************************************** - * Create a new channel (originate with id). - * The new channel is created immediately and a snapshot of it returned. If a Stasis application is provided it will be automatically subscribed to the originated channel for further events and updates. * - * @since ari_1_10_0 + * + * @since ari_1_7_0 *********************************************************/ -public Channel originateWithId(String channelId, String endpoint, String extension, String context, long priority, String label, String app, String appArgs, String callerId, int timeout, Map variables, String otherChannelId, String originator, String formats) throws RestException{ +public void originateWithId(String channelId, String endpoint, String extension, String context, long priority, String label, String app, String appArgs, String callerId, int timeout, Map variables, String otherChannelId, String originator, AriCallback callback){ throw new UnsupportedOperationException("Method availble from ..."); }; @@ -880,66 +882,64 @@ public Channel originateWithId(String channelId, String endpoint, String extensi * * @since ari_1_7_0 *********************************************************/ -public void originateWithId(String channelId, String endpoint, String extension, String context, long priority, String label, String app, String appArgs, String callerId, int timeout, Map variables, String otherChannelId, String originator, AriCallback callback){ +public void continueInDialplan(String channelId, String context, String extension, int priority, String label, AriCallback callback){ throw new UnsupportedOperationException("Method availble from ..."); }; /********************************************************** + * Dial a created channel. * * * @since ari_1_10_0 *********************************************************/ -public void create(String endpoint, String app, String appArgs, String channelId, String otherChannelId, String originator, String formats, AriCallback callback){ +public void dial(String channelId, String caller, int timeout) throws RestException{ throw new UnsupportedOperationException("Method availble from ..."); }; /********************************************************** * * - * @since ari_0_0_1 + * @since ari_1_10_0 *********************************************************/ -public void play(String channelId, String media, String lang, int offsetms, int skipms, AriCallback callback){ +public void create(String endpoint, String app, String appArgs, String channelId, String otherChannelId, String originator, String formats, AriCallback callback){ throw new UnsupportedOperationException("Method availble from ..."); }; /********************************************************** - * Create a new channel (originate with id). - * The new channel is created immediately and a snapshot of it returned. If a Stasis application is provided it will be automatically subscribed to the originated channel for further events and updates. + * Create channel. * - * @since ari_1_7_0 + * + * @since ari_1_10_0 *********************************************************/ -public Channel originateWithId(String channelId, String endpoint, String extension, String context, long priority, String label, String app, String appArgs, String callerId, int timeout, Map variables, String otherChannelId, String originator) throws RestException{ +public Channel create(String endpoint, String app, String appArgs, String channelId, String otherChannelId, String originator, String formats) throws RestException{ throw new UnsupportedOperationException("Method availble from ..."); }; /********************************************************** - * Exit application{ - throw new UnsupportedOperationException("Method availble from ..."); -}; continue execution in the dialplan. * * - * @since ari_1_7_0 + * @since ari_1_10_0 *********************************************************/ -public void continueInDialplan(String channelId, String context, String extension, int priority, String label) throws RestException{ +public void originate(String endpoint, String extension, String context, long priority, String label, String app, String appArgs, String callerId, int timeout, Map variables, String channelId, String otherChannelId, String originator, String formats, AriCallback callback){ throw new UnsupportedOperationException("Method availble from ..."); }; /********************************************************** - * Start snooping. - * Snoop (spy/whisper) on a specific channel. + * Redirect the channel to a different location. * - * @since ari_0_0_1 + * + * @since ari_1_8_0 *********************************************************/ -public Channel snoopChannel(String channelId, String spy, String whisper, String app, String appArgs) throws RestException{ +public void redirect(String channelId, String endpoint) throws RestException{ throw new UnsupportedOperationException("Method availble from ..."); }; /********************************************************** * * - * @since ari_1_10_0 + * @since ari_0_0_1 *********************************************************/ -public void originate(String endpoint, String extension, String context, long priority, String label, String app, String appArgs, String callerId, int timeout, Map variables, String channelId, String otherChannelId, String originator, String formats, AriCallback callback){ +public void originate(String endpoint, String extension, String context, long priority, String app, String appArgs, String callerId, int timeout, AriCallback callback){ throw new UnsupportedOperationException("Method availble from ..."); }; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_6_0/actions/ActionDeviceStates_impl_ari_1_6_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_6_0/actions/ActionDeviceStates_impl_ari_1_6_0.java index e1bea62b..4db2836c 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_6_0/actions/ActionDeviceStates_impl_ari_1_6_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_6_0/actions/ActionDeviceStates_impl_ari_1_6_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Wed Aug 31 18:05:11 CEST 2016 +// Generated on: Sat Feb 04 15:23:09 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_6_0/actions/ActionEndpoints_impl_ari_1_6_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_6_0/actions/ActionEndpoints_impl_ari_1_6_0.java index 5d41de94..d07052a4 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_6_0/actions/ActionEndpoints_impl_ari_1_6_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_6_0/actions/ActionEndpoints_impl_ari_1_6_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Wed Aug 31 18:05:11 CEST 2016 +// Generated on: Sat Feb 04 15:23:09 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_6_0/actions/ActionEvents_impl_ari_1_6_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_6_0/actions/ActionEvents_impl_ari_1_6_0.java index d3e06f1b..d3be59c8 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_6_0/actions/ActionEvents_impl_ari_1_6_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_6_0/actions/ActionEvents_impl_ari_1_6_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Wed Aug 31 18:05:11 CEST 2016 +// Generated on: Sat Feb 04 15:23:09 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; @@ -80,21 +80,21 @@ public void userEvent(String eventName, String application, String source, Map callback){ +public Message eventWebsocket(String app, boolean subscribeAll) throws RestException{ throw new UnsupportedOperationException("Method availble from ..."); }; /********************************************************** - * WebSocket connection for events. * * * @since ari_1_9_0 *********************************************************/ -public Message eventWebsocket(String app, boolean subscribeAll) throws RestException{ +public void eventWebsocket(String app, boolean subscribeAll, AriCallback callback){ throw new UnsupportedOperationException("Method availble from ..."); }; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_6_0/actions/ActionPlaybacks_impl_ari_1_6_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_6_0/actions/ActionPlaybacks_impl_ari_1_6_0.java index cfea3844..3259a9f7 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_6_0/actions/ActionPlaybacks_impl_ari_1_6_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_6_0/actions/ActionPlaybacks_impl_ari_1_6_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Wed Aug 31 18:05:11 CEST 2016 +// Generated on: Sat Feb 04 15:23:09 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_6_0/actions/ActionRecordings_impl_ari_1_6_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_6_0/actions/ActionRecordings_impl_ari_1_6_0.java index 98a71e60..7434ef72 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_6_0/actions/ActionRecordings_impl_ari_1_6_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_6_0/actions/ActionRecordings_impl_ari_1_6_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Wed Aug 31 18:05:11 CEST 2016 +// Generated on: Sat Feb 04 15:23:09 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_6_0/actions/ActionSounds_impl_ari_1_6_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_6_0/actions/ActionSounds_impl_ari_1_6_0.java index adaf95b2..c0990023 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_6_0/actions/ActionSounds_impl_ari_1_6_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_6_0/actions/ActionSounds_impl_ari_1_6_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Wed Aug 31 18:05:11 CEST 2016 +// Generated on: Sat Feb 04 15:23:09 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_6_0/models/ApplicationReplaced_impl_ari_1_6_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_6_0/models/ApplicationReplaced_impl_ari_1_6_0.java index 82b59183..e4fd6ebf 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_6_0/models/ApplicationReplaced_impl_ari_1_6_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_6_0/models/ApplicationReplaced_impl_ari_1_6_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Wed Aug 31 18:05:10 CEST 2016 +// Generated on: Sat Feb 04 15:23:09 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_6_0/models/Application_impl_ari_1_6_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_6_0/models/Application_impl_ari_1_6_0.java index 1a2963bc..fe4f467b 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_6_0/models/Application_impl_ari_1_6_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_6_0/models/Application_impl_ari_1_6_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Wed Aug 31 18:05:10 CEST 2016 +// Generated on: Sat Feb 04 15:23:09 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_6_0/models/AsteriskInfo_impl_ari_1_6_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_6_0/models/AsteriskInfo_impl_ari_1_6_0.java index ba4befbb..83a62d08 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_6_0/models/AsteriskInfo_impl_ari_1_6_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_6_0/models/AsteriskInfo_impl_ari_1_6_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Wed Aug 31 18:05:10 CEST 2016 +// Generated on: Sat Feb 04 15:23:09 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_6_0/models/BridgeAttendedTransfer_impl_ari_1_6_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_6_0/models/BridgeAttendedTransfer_impl_ari_1_6_0.java index 6d6ac039..d644b786 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_6_0/models/BridgeAttendedTransfer_impl_ari_1_6_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_6_0/models/BridgeAttendedTransfer_impl_ari_1_6_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Wed Aug 31 18:05:10 CEST 2016 +// Generated on: Sat Feb 04 15:23:09 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_6_0/models/BridgeBlindTransfer_impl_ari_1_6_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_6_0/models/BridgeBlindTransfer_impl_ari_1_6_0.java index 6afd08f6..69113c6c 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_6_0/models/BridgeBlindTransfer_impl_ari_1_6_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_6_0/models/BridgeBlindTransfer_impl_ari_1_6_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Wed Aug 31 18:05:10 CEST 2016 +// Generated on: Sat Feb 04 15:23:09 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_6_0/models/BridgeCreated_impl_ari_1_6_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_6_0/models/BridgeCreated_impl_ari_1_6_0.java index 7be145e6..65872f32 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_6_0/models/BridgeCreated_impl_ari_1_6_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_6_0/models/BridgeCreated_impl_ari_1_6_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Wed Aug 31 18:05:10 CEST 2016 +// Generated on: Sat Feb 04 15:23:09 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_6_0/models/BridgeDestroyed_impl_ari_1_6_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_6_0/models/BridgeDestroyed_impl_ari_1_6_0.java index 0d075113..51ac97db 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_6_0/models/BridgeDestroyed_impl_ari_1_6_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_6_0/models/BridgeDestroyed_impl_ari_1_6_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Wed Aug 31 18:05:10 CEST 2016 +// Generated on: Sat Feb 04 15:23:09 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_6_0/models/BridgeMerged_impl_ari_1_6_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_6_0/models/BridgeMerged_impl_ari_1_6_0.java index 41d35647..29c81e99 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_6_0/models/BridgeMerged_impl_ari_1_6_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_6_0/models/BridgeMerged_impl_ari_1_6_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Wed Aug 31 18:05:10 CEST 2016 +// Generated on: Sat Feb 04 15:23:09 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_6_0/models/Bridge_impl_ari_1_6_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_6_0/models/Bridge_impl_ari_1_6_0.java index f014163a..1d785f29 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_6_0/models/Bridge_impl_ari_1_6_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_6_0/models/Bridge_impl_ari_1_6_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Wed Aug 31 18:05:10 CEST 2016 +// Generated on: Sat Feb 04 15:23:09 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; @@ -100,6 +100,41 @@ public void setTechnology(String val ) { technology = val; } -/** No missing signatures from interface */ +/********************************************************** + * The video mode the bridge is using. One of 'none', 'talker', or 'single'. + * + * @since ari_2_0_0 + *********************************************************/ + public String getVideo_mode(){ + throw new UnsupportedOperationException("Method availble from ..."); +}; + +/********************************************************** + * The ID of the channel that is the source of video in this bridge, if one exists. + * + * @since ari_2_0_0 + *********************************************************/ + public String getVideo_source_id(){ + throw new UnsupportedOperationException("Method availble from ..."); +}; + +/********************************************************** + * The video mode the bridge is using. One of 'none', 'talker', or 'single'. + * + * @since ari_2_0_0 + *********************************************************/ + public void setVideo_mode(String val ){ + throw new UnsupportedOperationException("Method availble from ..."); +}; + +/********************************************************** + * The ID of the channel that is the source of video in this bridge, if one exists. + * + * @since ari_2_0_0 + *********************************************************/ + public void setVideo_source_id(String val ){ + throw new UnsupportedOperationException("Method availble from ..."); +}; + } diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_6_0/models/BuildInfo_impl_ari_1_6_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_6_0/models/BuildInfo_impl_ari_1_6_0.java index 9d525c80..e52769d9 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_6_0/models/BuildInfo_impl_ari_1_6_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_6_0/models/BuildInfo_impl_ari_1_6_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Wed Aug 31 18:05:10 CEST 2016 +// Generated on: Sat Feb 04 15:23:09 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_6_0/models/CallerID_impl_ari_1_6_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_6_0/models/CallerID_impl_ari_1_6_0.java index f6ce53fb..22e48e61 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_6_0/models/CallerID_impl_ari_1_6_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_6_0/models/CallerID_impl_ari_1_6_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Wed Aug 31 18:05:10 CEST 2016 +// Generated on: Sat Feb 04 15:23:09 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_6_0/models/ChannelCallerId_impl_ari_1_6_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_6_0/models/ChannelCallerId_impl_ari_1_6_0.java index 3170422d..606fb9d8 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_6_0/models/ChannelCallerId_impl_ari_1_6_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_6_0/models/ChannelCallerId_impl_ari_1_6_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Wed Aug 31 18:05:10 CEST 2016 +// Generated on: Sat Feb 04 15:23:09 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_6_0/models/ChannelConnectedLine_impl_ari_1_6_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_6_0/models/ChannelConnectedLine_impl_ari_1_6_0.java index cf56c945..4ff6a90b 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_6_0/models/ChannelConnectedLine_impl_ari_1_6_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_6_0/models/ChannelConnectedLine_impl_ari_1_6_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Wed Aug 31 18:05:10 CEST 2016 +// Generated on: Sat Feb 04 15:23:09 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_6_0/models/ChannelCreated_impl_ari_1_6_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_6_0/models/ChannelCreated_impl_ari_1_6_0.java index 6e3013de..169bf36b 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_6_0/models/ChannelCreated_impl_ari_1_6_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_6_0/models/ChannelCreated_impl_ari_1_6_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Wed Aug 31 18:05:10 CEST 2016 +// Generated on: Sat Feb 04 15:23:09 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_6_0/models/ChannelDestroyed_impl_ari_1_6_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_6_0/models/ChannelDestroyed_impl_ari_1_6_0.java index 849a1751..9baeb334 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_6_0/models/ChannelDestroyed_impl_ari_1_6_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_6_0/models/ChannelDestroyed_impl_ari_1_6_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Wed Aug 31 18:05:10 CEST 2016 +// Generated on: Sat Feb 04 15:23:09 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_6_0/models/ChannelDialplan_impl_ari_1_6_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_6_0/models/ChannelDialplan_impl_ari_1_6_0.java index 6b8f312e..5c6786e7 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_6_0/models/ChannelDialplan_impl_ari_1_6_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_6_0/models/ChannelDialplan_impl_ari_1_6_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Wed Aug 31 18:05:10 CEST 2016 +// Generated on: Sat Feb 04 15:23:09 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_6_0/models/ChannelDtmfReceived_impl_ari_1_6_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_6_0/models/ChannelDtmfReceived_impl_ari_1_6_0.java index f64257c0..7636dc02 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_6_0/models/ChannelDtmfReceived_impl_ari_1_6_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_6_0/models/ChannelDtmfReceived_impl_ari_1_6_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Wed Aug 31 18:05:10 CEST 2016 +// Generated on: Sat Feb 04 15:23:09 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_6_0/models/ChannelEnteredBridge_impl_ari_1_6_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_6_0/models/ChannelEnteredBridge_impl_ari_1_6_0.java index 729592e7..6ecf8303 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_6_0/models/ChannelEnteredBridge_impl_ari_1_6_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_6_0/models/ChannelEnteredBridge_impl_ari_1_6_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Wed Aug 31 18:05:10 CEST 2016 +// Generated on: Sat Feb 04 15:23:09 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_6_0/models/ChannelHangupRequest_impl_ari_1_6_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_6_0/models/ChannelHangupRequest_impl_ari_1_6_0.java index ce0a2d43..d44387ba 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_6_0/models/ChannelHangupRequest_impl_ari_1_6_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_6_0/models/ChannelHangupRequest_impl_ari_1_6_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Wed Aug 31 18:05:10 CEST 2016 +// Generated on: Sat Feb 04 15:23:09 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_6_0/models/ChannelLeftBridge_impl_ari_1_6_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_6_0/models/ChannelLeftBridge_impl_ari_1_6_0.java index d89a1219..544222f0 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_6_0/models/ChannelLeftBridge_impl_ari_1_6_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_6_0/models/ChannelLeftBridge_impl_ari_1_6_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Wed Aug 31 18:05:10 CEST 2016 +// Generated on: Sat Feb 04 15:23:09 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_6_0/models/ChannelStateChange_impl_ari_1_6_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_6_0/models/ChannelStateChange_impl_ari_1_6_0.java index 1b5a8d4b..e522d749 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_6_0/models/ChannelStateChange_impl_ari_1_6_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_6_0/models/ChannelStateChange_impl_ari_1_6_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Wed Aug 31 18:05:10 CEST 2016 +// Generated on: Sat Feb 04 15:23:09 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_6_0/models/ChannelTalkingFinished_impl_ari_1_6_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_6_0/models/ChannelTalkingFinished_impl_ari_1_6_0.java index d3f9974b..c8b1bb28 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_6_0/models/ChannelTalkingFinished_impl_ari_1_6_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_6_0/models/ChannelTalkingFinished_impl_ari_1_6_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Wed Aug 31 18:05:10 CEST 2016 +// Generated on: Sat Feb 04 15:23:09 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_6_0/models/ChannelTalkingStarted_impl_ari_1_6_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_6_0/models/ChannelTalkingStarted_impl_ari_1_6_0.java index d79c253b..6d494f3c 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_6_0/models/ChannelTalkingStarted_impl_ari_1_6_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_6_0/models/ChannelTalkingStarted_impl_ari_1_6_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Wed Aug 31 18:05:10 CEST 2016 +// Generated on: Sat Feb 04 15:23:09 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_6_0/models/ChannelUserevent_impl_ari_1_6_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_6_0/models/ChannelUserevent_impl_ari_1_6_0.java index ece8d954..ea63989b 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_6_0/models/ChannelUserevent_impl_ari_1_6_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_6_0/models/ChannelUserevent_impl_ari_1_6_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Wed Aug 31 18:05:10 CEST 2016 +// Generated on: Sat Feb 04 15:23:09 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_6_0/models/ChannelVarset_impl_ari_1_6_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_6_0/models/ChannelVarset_impl_ari_1_6_0.java index 81a04d13..787e9399 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_6_0/models/ChannelVarset_impl_ari_1_6_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_6_0/models/ChannelVarset_impl_ari_1_6_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Wed Aug 31 18:05:10 CEST 2016 +// Generated on: Sat Feb 04 15:23:09 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_6_0/models/Channel_impl_ari_1_6_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_6_0/models/Channel_impl_ari_1_6_0.java index 06536037..c238b9fb 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_6_0/models/Channel_impl_ari_1_6_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_6_0/models/Channel_impl_ari_1_6_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Wed Aug 31 18:05:10 CEST 2016 +// Generated on: Sat Feb 04 15:23:09 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; @@ -129,5 +129,23 @@ public void setLanguage(String val ){ throw new UnsupportedOperationException("Method availble from ..."); }; +/********************************************************** + * Channel variables + * + * @since ari_2_0_0 + *********************************************************/ + public String getChannelvars(){ + throw new UnsupportedOperationException("Method availble from ..."); +}; + +/********************************************************** + * Channel variables + * + * @since ari_2_0_0 + *********************************************************/ + public void setChannelvars(String val ){ + throw new UnsupportedOperationException("Method availble from ..."); +}; + } diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_6_0/models/ConfigInfo_impl_ari_1_6_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_6_0/models/ConfigInfo_impl_ari_1_6_0.java index 301c1e09..d63c6d32 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_6_0/models/ConfigInfo_impl_ari_1_6_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_6_0/models/ConfigInfo_impl_ari_1_6_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Wed Aug 31 18:05:10 CEST 2016 +// Generated on: Sat Feb 04 15:23:09 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_6_0/models/DeviceStateChanged_impl_ari_1_6_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_6_0/models/DeviceStateChanged_impl_ari_1_6_0.java index 64cc388c..f61c102d 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_6_0/models/DeviceStateChanged_impl_ari_1_6_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_6_0/models/DeviceStateChanged_impl_ari_1_6_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Wed Aug 31 18:05:10 CEST 2016 +// Generated on: Sat Feb 04 15:23:09 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_6_0/models/DeviceState_impl_ari_1_6_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_6_0/models/DeviceState_impl_ari_1_6_0.java index 82540e4a..99f15764 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_6_0/models/DeviceState_impl_ari_1_6_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_6_0/models/DeviceState_impl_ari_1_6_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Wed Aug 31 18:05:10 CEST 2016 +// Generated on: Sat Feb 04 15:23:09 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_6_0/models/Dial_impl_ari_1_6_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_6_0/models/Dial_impl_ari_1_6_0.java index 37ef32c4..805391f7 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_6_0/models/Dial_impl_ari_1_6_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_6_0/models/Dial_impl_ari_1_6_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Wed Aug 31 18:05:10 CEST 2016 +// Generated on: Sat Feb 04 15:23:09 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_6_0/models/Dialed_impl_ari_1_6_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_6_0/models/Dialed_impl_ari_1_6_0.java index c1afddf1..b1df666f 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_6_0/models/Dialed_impl_ari_1_6_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_6_0/models/Dialed_impl_ari_1_6_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Wed Aug 31 18:05:10 CEST 2016 +// Generated on: Sat Feb 04 15:23:09 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_6_0/models/DialplanCEP_impl_ari_1_6_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_6_0/models/DialplanCEP_impl_ari_1_6_0.java index 1e399c13..3fa5a92b 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_6_0/models/DialplanCEP_impl_ari_1_6_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_6_0/models/DialplanCEP_impl_ari_1_6_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Wed Aug 31 18:05:10 CEST 2016 +// Generated on: Sat Feb 04 15:23:09 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_6_0/models/EndpointStateChange_impl_ari_1_6_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_6_0/models/EndpointStateChange_impl_ari_1_6_0.java index 20063bcd..c93bb16a 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_6_0/models/EndpointStateChange_impl_ari_1_6_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_6_0/models/EndpointStateChange_impl_ari_1_6_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Wed Aug 31 18:05:10 CEST 2016 +// Generated on: Sat Feb 04 15:23:09 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_6_0/models/Endpoint_impl_ari_1_6_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_6_0/models/Endpoint_impl_ari_1_6_0.java index 63ea6cfd..9929380c 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_6_0/models/Endpoint_impl_ari_1_6_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_6_0/models/Endpoint_impl_ari_1_6_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Wed Aug 31 18:05:10 CEST 2016 +// Generated on: Sat Feb 04 15:23:09 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_6_0/models/Event_impl_ari_1_6_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_6_0/models/Event_impl_ari_1_6_0.java index 2d0000df..028017d1 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_6_0/models/Event_impl_ari_1_6_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_6_0/models/Event_impl_ari_1_6_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Wed Aug 31 18:05:10 CEST 2016 +// Generated on: Sat Feb 04 15:23:09 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_6_0/models/FormatLangPair_impl_ari_1_6_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_6_0/models/FormatLangPair_impl_ari_1_6_0.java index b948ce01..177159a4 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_6_0/models/FormatLangPair_impl_ari_1_6_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_6_0/models/FormatLangPair_impl_ari_1_6_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Wed Aug 31 18:05:10 CEST 2016 +// Generated on: Sat Feb 04 15:23:09 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_6_0/models/LiveRecording_impl_ari_1_6_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_6_0/models/LiveRecording_impl_ari_1_6_0.java index 61a5d14a..6c7f0291 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_6_0/models/LiveRecording_impl_ari_1_6_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_6_0/models/LiveRecording_impl_ari_1_6_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Wed Aug 31 18:05:10 CEST 2016 +// Generated on: Sat Feb 04 15:23:09 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_6_0/models/Message_impl_ari_1_6_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_6_0/models/Message_impl_ari_1_6_0.java index 058adfb1..0551e04e 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_6_0/models/Message_impl_ari_1_6_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_6_0/models/Message_impl_ari_1_6_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Wed Aug 31 18:05:10 CEST 2016 +// Generated on: Sat Feb 04 15:23:09 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; @@ -71,6 +71,23 @@ public void setType(String val ) { type = val; } -/** No missing signatures from interface */ +/********************************************************** + * The unique ID for the Asterisk instance that raised this event. + * + * @since ari_2_0_0 + *********************************************************/ + public void setAsterisk_id(String val ){ + throw new UnsupportedOperationException("Method availble from ..."); +}; + +/********************************************************** + * The unique ID for the Asterisk instance that raised this event. + * + * @since ari_2_0_0 + *********************************************************/ + public String getAsterisk_id(){ + throw new UnsupportedOperationException("Method availble from ..."); +}; + } diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_6_0/models/MissingParams_impl_ari_1_6_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_6_0/models/MissingParams_impl_ari_1_6_0.java index 6f2ced4f..c7d9dfae 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_6_0/models/MissingParams_impl_ari_1_6_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_6_0/models/MissingParams_impl_ari_1_6_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Wed Aug 31 18:05:10 CEST 2016 +// Generated on: Sat Feb 04 15:23:09 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_6_0/models/PlaybackFinished_impl_ari_1_6_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_6_0/models/PlaybackFinished_impl_ari_1_6_0.java index 6876a0ac..ef03627b 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_6_0/models/PlaybackFinished_impl_ari_1_6_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_6_0/models/PlaybackFinished_impl_ari_1_6_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Wed Aug 31 18:05:10 CEST 2016 +// Generated on: Sat Feb 04 15:23:09 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_6_0/models/PlaybackStarted_impl_ari_1_6_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_6_0/models/PlaybackStarted_impl_ari_1_6_0.java index a0491bb8..c2bbcff1 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_6_0/models/PlaybackStarted_impl_ari_1_6_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_6_0/models/PlaybackStarted_impl_ari_1_6_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Wed Aug 31 18:05:10 CEST 2016 +// Generated on: Sat Feb 04 15:23:09 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_6_0/models/Playback_impl_ari_1_6_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_6_0/models/Playback_impl_ari_1_6_0.java index 0c29bd92..f07e20b1 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_6_0/models/Playback_impl_ari_1_6_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_6_0/models/Playback_impl_ari_1_6_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Wed Aug 31 18:05:10 CEST 2016 +// Generated on: Sat Feb 04 15:23:09 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; @@ -81,7 +81,7 @@ public void setTarget_uri(String val ) { * * @since ari_1_10_0 *********************************************************/ - public void setNext_media_uri(String val ){ + public String getNext_media_uri(){ throw new UnsupportedOperationException("Method availble from ..."); }; @@ -90,7 +90,7 @@ public void setNext_media_uri(String val ){ * * @since ari_1_10_0 *********************************************************/ - public String getNext_media_uri(){ + public void setNext_media_uri(String val ){ throw new UnsupportedOperationException("Method availble from ..."); }; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_6_0/models/RecordingFailed_impl_ari_1_6_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_6_0/models/RecordingFailed_impl_ari_1_6_0.java index 785db1e4..71a209cf 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_6_0/models/RecordingFailed_impl_ari_1_6_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_6_0/models/RecordingFailed_impl_ari_1_6_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Wed Aug 31 18:05:10 CEST 2016 +// Generated on: Sat Feb 04 15:23:09 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_6_0/models/RecordingFinished_impl_ari_1_6_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_6_0/models/RecordingFinished_impl_ari_1_6_0.java index fc3a4643..5dde725e 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_6_0/models/RecordingFinished_impl_ari_1_6_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_6_0/models/RecordingFinished_impl_ari_1_6_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Wed Aug 31 18:05:10 CEST 2016 +// Generated on: Sat Feb 04 15:23:09 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_6_0/models/RecordingStarted_impl_ari_1_6_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_6_0/models/RecordingStarted_impl_ari_1_6_0.java index a98b513d..b0f55815 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_6_0/models/RecordingStarted_impl_ari_1_6_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_6_0/models/RecordingStarted_impl_ari_1_6_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Wed Aug 31 18:05:10 CEST 2016 +// Generated on: Sat Feb 04 15:23:09 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_6_0/models/SetId_impl_ari_1_6_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_6_0/models/SetId_impl_ari_1_6_0.java index 7c8ff5a2..32f69db8 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_6_0/models/SetId_impl_ari_1_6_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_6_0/models/SetId_impl_ari_1_6_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Wed Aug 31 18:05:10 CEST 2016 +// Generated on: Sat Feb 04 15:23:09 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_6_0/models/Sound_impl_ari_1_6_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_6_0/models/Sound_impl_ari_1_6_0.java index 9fde559b..9a5d152f 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_6_0/models/Sound_impl_ari_1_6_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_6_0/models/Sound_impl_ari_1_6_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Wed Aug 31 18:05:10 CEST 2016 +// Generated on: Sat Feb 04 15:23:09 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_6_0/models/StasisEnd_impl_ari_1_6_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_6_0/models/StasisEnd_impl_ari_1_6_0.java index ef6d6c86..1fdc1b35 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_6_0/models/StasisEnd_impl_ari_1_6_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_6_0/models/StasisEnd_impl_ari_1_6_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Wed Aug 31 18:05:10 CEST 2016 +// Generated on: Sat Feb 04 15:23:09 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_6_0/models/StasisStart_impl_ari_1_6_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_6_0/models/StasisStart_impl_ari_1_6_0.java index b147cb12..0ef5240f 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_6_0/models/StasisStart_impl_ari_1_6_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_6_0/models/StasisStart_impl_ari_1_6_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Wed Aug 31 18:05:10 CEST 2016 +// Generated on: Sat Feb 04 15:23:09 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_6_0/models/StatusInfo_impl_ari_1_6_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_6_0/models/StatusInfo_impl_ari_1_6_0.java index 51ffc44f..e78f5e3b 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_6_0/models/StatusInfo_impl_ari_1_6_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_6_0/models/StatusInfo_impl_ari_1_6_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Wed Aug 31 18:05:10 CEST 2016 +// Generated on: Sat Feb 04 15:23:09 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_6_0/models/StoredRecording_impl_ari_1_6_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_6_0/models/StoredRecording_impl_ari_1_6_0.java index 6e5e9a9a..66efd4bb 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_6_0/models/StoredRecording_impl_ari_1_6_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_6_0/models/StoredRecording_impl_ari_1_6_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Wed Aug 31 18:05:10 CEST 2016 +// Generated on: Sat Feb 04 15:23:09 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_6_0/models/SystemInfo_impl_ari_1_6_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_6_0/models/SystemInfo_impl_ari_1_6_0.java index 841d5dac..ba94d1e6 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_6_0/models/SystemInfo_impl_ari_1_6_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_6_0/models/SystemInfo_impl_ari_1_6_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Wed Aug 31 18:05:10 CEST 2016 +// Generated on: Sat Feb 04 15:23:09 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_6_0/models/TextMessageReceived_impl_ari_1_6_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_6_0/models/TextMessageReceived_impl_ari_1_6_0.java index bc2b4553..f508626c 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_6_0/models/TextMessageReceived_impl_ari_1_6_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_6_0/models/TextMessageReceived_impl_ari_1_6_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Wed Aug 31 18:05:10 CEST 2016 +// Generated on: Sat Feb 04 15:23:09 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_6_0/models/TextMessageVariable_impl_ari_1_6_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_6_0/models/TextMessageVariable_impl_ari_1_6_0.java index 89f4cad4..b6c8e219 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_6_0/models/TextMessageVariable_impl_ari_1_6_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_6_0/models/TextMessageVariable_impl_ari_1_6_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Wed Aug 31 18:05:10 CEST 2016 +// Generated on: Sat Feb 04 15:23:09 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_6_0/models/TextMessage_impl_ari_1_6_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_6_0/models/TextMessage_impl_ari_1_6_0.java index 57c51d4f..60603f1f 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_6_0/models/TextMessage_impl_ari_1_6_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_6_0/models/TextMessage_impl_ari_1_6_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Wed Aug 31 18:05:10 CEST 2016 +// Generated on: Sat Feb 04 15:23:09 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_6_0/models/Variable_impl_ari_1_6_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_6_0/models/Variable_impl_ari_1_6_0.java index c9864955..2b754750 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_6_0/models/Variable_impl_ari_1_6_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_6_0/models/Variable_impl_ari_1_6_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Wed Aug 31 18:05:10 CEST 2016 +// Generated on: Sat Feb 04 15:23:09 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_7_0/AriBuilder_impl_ari_1_7_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_7_0/AriBuilder_impl_ari_1_7_0.java index 6517f704..04fd51d5 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_7_0/AriBuilder_impl_ari_1_7_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_7_0/AriBuilder_impl_ari_1_7_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Wed Aug 31 18:05:11 CEST 2016 +// Generated on: Sat Feb 04 15:23:09 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.ari_1_7_0.models.*; @@ -13,22 +13,14 @@ public class AriBuilder_impl_ari_1_7_0 implements AriBuilder { -public ActionSounds actionSounds() { - return new ActionSounds_impl_ari_1_7_0(); +public ActionRecordings actionRecordings() { + return new ActionRecordings_impl_ari_1_7_0(); }; public ActionEvents actionEvents() { return new ActionEvents_impl_ari_1_7_0(); }; -public ActionEndpoints actionEndpoints() { - return new ActionEndpoints_impl_ari_1_7_0(); - }; - -public ActionAsterisk actionAsterisk() { - return new ActionAsterisk_impl_ari_1_7_0(); - }; - public ActionApplications actionApplications() { return new ActionApplications_impl_ari_1_7_0(); }; @@ -37,244 +29,256 @@ public ActionChannels actionChannels() { return new ActionChannels_impl_ari_1_7_0(); }; -public ActionDeviceStates actionDeviceStates() { - return new ActionDeviceStates_impl_ari_1_7_0(); - }; - -public ActionRecordings actionRecordings() { - return new ActionRecordings_impl_ari_1_7_0(); - }; - public ActionPlaybacks actionPlaybacks() { return new ActionPlaybacks_impl_ari_1_7_0(); }; -public ActionBridges actionBridges() { - return new ActionBridges_impl_ari_1_7_0(); +public ActionDeviceStates actionDeviceStates() { + return new ActionDeviceStates_impl_ari_1_7_0(); }; -public BridgeAttendedTransfer bridgeAttendedTransfer() { - return new BridgeAttendedTransfer_impl_ari_1_7_0(); +public ActionBridges actionBridges() { + return new ActionBridges_impl_ari_1_7_0(); }; -public ChannelEnteredBridge channelEnteredBridge() { - return new ChannelEnteredBridge_impl_ari_1_7_0(); +public ActionSounds actionSounds() { + return new ActionSounds_impl_ari_1_7_0(); }; -public ChannelDialplan channelDialplan() { - return new ChannelDialplan_impl_ari_1_7_0(); +public ActionAsterisk actionAsterisk() { + return new ActionAsterisk_impl_ari_1_7_0(); }; -public LiveRecording liveRecording() { - return new LiveRecording_impl_ari_1_7_0(); +public ActionEndpoints actionEndpoints() { + return new ActionEndpoints_impl_ari_1_7_0(); }; -public BridgeBlindTransfer bridgeBlindTransfer() { - return new BridgeBlindTransfer_impl_ari_1_7_0(); +public TextMessageReceived textMessageReceived() { + return new TextMessageReceived_impl_ari_1_7_0(); }; -public Channel channel() { - return new Channel_impl_ari_1_7_0(); +public ChannelTalkingStarted channelTalkingStarted() { + return new ChannelTalkingStarted_impl_ari_1_7_0(); }; -public ChannelConnectedLine channelConnectedLine() { - return new ChannelConnectedLine_impl_ari_1_7_0(); +public ChannelTalkingFinished channelTalkingFinished() { + return new ChannelTalkingFinished_impl_ari_1_7_0(); }; -public StasisStart stasisStart() { - return new StasisStart_impl_ari_1_7_0(); +public ChannelHangupRequest channelHangupRequest() { + return new ChannelHangupRequest_impl_ari_1_7_0(); }; -public Dial dial() { - return new Dial_impl_ari_1_7_0(); +public DialplanCEP dialplanCEP() { + return new DialplanCEP_impl_ari_1_7_0(); }; -public Variable variable() { - return new Variable_impl_ari_1_7_0(); +public Playback playback() { + return new Playback_impl_ari_1_7_0(); }; -public RecordingFinished recordingFinished() { - return new RecordingFinished_impl_ari_1_7_0(); +public PlaybackFinished playbackFinished() { + return new PlaybackFinished_impl_ari_1_7_0(); }; -public ChannelLeftBridge channelLeftBridge() { - return new ChannelLeftBridge_impl_ari_1_7_0(); +public StoredRecording storedRecording() { + return new StoredRecording_impl_ari_1_7_0(); }; -public BridgeCreated bridgeCreated() { - return new BridgeCreated_impl_ari_1_7_0(); +public Sound sound() { + return new Sound_impl_ari_1_7_0(); }; -public Event event() { - return new Event_impl_ari_1_7_0(); +public FormatLangPair formatLangPair() { + return new FormatLangPair_impl_ari_1_7_0(); }; -public PlaybackStarted playbackStarted() { - return new PlaybackStarted_impl_ari_1_7_0(); +public Variable variable() { + return new Variable_impl_ari_1_7_0(); }; public ConfigInfo configInfo() { return new ConfigInfo_impl_ari_1_7_0(); }; -public BridgeMerged bridgeMerged() { - return new BridgeMerged_impl_ari_1_7_0(); +public ChannelCallerId channelCallerId() { + return new ChannelCallerId_impl_ari_1_7_0(); + }; + +public RecordingFinished recordingFinished() { + return new RecordingFinished_impl_ari_1_7_0(); + }; + +public RecordingStarted recordingStarted() { + return new RecordingStarted_impl_ari_1_7_0(); }; public ChannelCreated channelCreated() { return new ChannelCreated_impl_ari_1_7_0(); }; -public ChannelVarset channelVarset() { - return new ChannelVarset_impl_ari_1_7_0(); +public BridgeMerged bridgeMerged() { + return new BridgeMerged_impl_ari_1_7_0(); }; -public SetId setId() { - return new SetId_impl_ari_1_7_0(); +public Dial dial() { + return new Dial_impl_ari_1_7_0(); }; -public RecordingStarted recordingStarted() { - return new RecordingStarted_impl_ari_1_7_0(); +public Dialed dialed() { + return new Dialed_impl_ari_1_7_0(); }; -public Endpoint endpoint() { - return new Endpoint_impl_ari_1_7_0(); +public LiveRecording liveRecording() { + return new LiveRecording_impl_ari_1_7_0(); }; -public ChannelTalkingStarted channelTalkingStarted() { - return new ChannelTalkingStarted_impl_ari_1_7_0(); +public StasisEnd stasisEnd() { + return new StasisEnd_impl_ari_1_7_0(); }; -public CallerID callerID() { - return new CallerID_impl_ari_1_7_0(); +public Channel channel() { + return new Channel_impl_ari_1_7_0(); }; -public Message message() { - return new Message_impl_ari_1_7_0(); +public MissingParams missingParams() { + return new MissingParams_impl_ari_1_7_0(); }; -public BuildInfo buildInfo() { - return new BuildInfo_impl_ari_1_7_0(); +public BridgeBlindTransfer bridgeBlindTransfer() { + return new BridgeBlindTransfer_impl_ari_1_7_0(); }; -public EndpointStateChange endpointStateChange() { - return new EndpointStateChange_impl_ari_1_7_0(); +public TextMessage textMessage() { + return new TextMessage_impl_ari_1_7_0(); + }; + +public CallerID callerID() { + return new CallerID_impl_ari_1_7_0(); }; public ChannelStateChange channelStateChange() { return new ChannelStateChange_impl_ari_1_7_0(); }; -public ChannelUserevent channelUserevent() { - return new ChannelUserevent_impl_ari_1_7_0(); +public AsteriskInfo asteriskInfo() { + return new AsteriskInfo_impl_ari_1_7_0(); }; -public RecordingFailed recordingFailed() { - return new RecordingFailed_impl_ari_1_7_0(); +public ChannelVarset channelVarset() { + return new ChannelVarset_impl_ari_1_7_0(); }; -public AsteriskInfo asteriskInfo() { - return new AsteriskInfo_impl_ari_1_7_0(); +public ChannelLeftBridge channelLeftBridge() { + return new ChannelLeftBridge_impl_ari_1_7_0(); }; -public MissingParams missingParams() { - return new MissingParams_impl_ari_1_7_0(); +public SetId setId() { + return new SetId_impl_ari_1_7_0(); }; -public Sound sound() { - return new Sound_impl_ari_1_7_0(); +public BridgeAttendedTransfer bridgeAttendedTransfer() { + return new BridgeAttendedTransfer_impl_ari_1_7_0(); }; -public BridgeDestroyed bridgeDestroyed() { - return new BridgeDestroyed_impl_ari_1_7_0(); +public Message message() { + return new Message_impl_ari_1_7_0(); }; -public ChannelHangupRequest channelHangupRequest() { - return new ChannelHangupRequest_impl_ari_1_7_0(); +public ChannelUserevent channelUserevent() { + return new ChannelUserevent_impl_ari_1_7_0(); }; -public StasisEnd stasisEnd() { - return new StasisEnd_impl_ari_1_7_0(); +public ApplicationReplaced applicationReplaced() { + return new ApplicationReplaced_impl_ari_1_7_0(); }; -public Application application() { - return new Application_impl_ari_1_7_0(); +public DeviceStateChanged deviceStateChanged() { + return new DeviceStateChanged_impl_ari_1_7_0(); }; -public DialplanCEP dialplanCEP() { - return new DialplanCEP_impl_ari_1_7_0(); +public BridgeDestroyed bridgeDestroyed() { + return new BridgeDestroyed_impl_ari_1_7_0(); }; -public Dialed dialed() { - return new Dialed_impl_ari_1_7_0(); +public TextMessageVariable textMessageVariable() { + return new TextMessageVariable_impl_ari_1_7_0(); }; -public PlaybackFinished playbackFinished() { - return new PlaybackFinished_impl_ari_1_7_0(); +public ChannelEnteredBridge channelEnteredBridge() { + return new ChannelEnteredBridge_impl_ari_1_7_0(); }; -public ApplicationReplaced applicationReplaced() { - return new ApplicationReplaced_impl_ari_1_7_0(); +public EndpointStateChange endpointStateChange() { + return new EndpointStateChange_impl_ari_1_7_0(); }; -public ChannelDtmfReceived channelDtmfReceived() { - return new ChannelDtmfReceived_impl_ari_1_7_0(); +public Application application() { + return new Application_impl_ari_1_7_0(); }; -public StatusInfo statusInfo() { - return new StatusInfo_impl_ari_1_7_0(); +public Bridge bridge() { + return new Bridge_impl_ari_1_7_0(); }; -public ChannelDestroyed channelDestroyed() { - return new ChannelDestroyed_impl_ari_1_7_0(); +public Event event() { + return new Event_impl_ari_1_7_0(); }; -public DeviceStateChanged deviceStateChanged() { - return new DeviceStateChanged_impl_ari_1_7_0(); +public BuildInfo buildInfo() { + return new BuildInfo_impl_ari_1_7_0(); }; -public TextMessage textMessage() { - return new TextMessage_impl_ari_1_7_0(); +public Endpoint endpoint() { + return new Endpoint_impl_ari_1_7_0(); }; -public FormatLangPair formatLangPair() { - return new FormatLangPair_impl_ari_1_7_0(); +public ChannelDialplan channelDialplan() { + return new ChannelDialplan_impl_ari_1_7_0(); }; -public ChannelTalkingFinished channelTalkingFinished() { - return new ChannelTalkingFinished_impl_ari_1_7_0(); +public RecordingFailed recordingFailed() { + return new RecordingFailed_impl_ari_1_7_0(); }; -public DeviceState deviceState() { - return new DeviceState_impl_ari_1_7_0(); +public StasisStart stasisStart() { + return new StasisStart_impl_ari_1_7_0(); }; -public StoredRecording storedRecording() { - return new StoredRecording_impl_ari_1_7_0(); +public SystemInfo systemInfo() { + return new SystemInfo_impl_ari_1_7_0(); }; -public ChannelCallerId channelCallerId() { - return new ChannelCallerId_impl_ari_1_7_0(); +public ChannelDestroyed channelDestroyed() { + return new ChannelDestroyed_impl_ari_1_7_0(); }; -public Bridge bridge() { - return new Bridge_impl_ari_1_7_0(); +public ChannelDtmfReceived channelDtmfReceived() { + return new ChannelDtmfReceived_impl_ari_1_7_0(); }; -public TextMessageVariable textMessageVariable() { - return new TextMessageVariable_impl_ari_1_7_0(); +public StatusInfo statusInfo() { + return new StatusInfo_impl_ari_1_7_0(); }; -public Playback playback() { - return new Playback_impl_ari_1_7_0(); +public ChannelConnectedLine channelConnectedLine() { + return new ChannelConnectedLine_impl_ari_1_7_0(); }; -public SystemInfo systemInfo() { - return new SystemInfo_impl_ari_1_7_0(); +public BridgeCreated bridgeCreated() { + return new BridgeCreated_impl_ari_1_7_0(); }; -public TextMessageReceived textMessageReceived() { - return new TextMessageReceived_impl_ari_1_7_0(); +public PlaybackStarted playbackStarted() { + return new PlaybackStarted_impl_ari_1_7_0(); + }; + +public DeviceState deviceState() { + return new DeviceState_impl_ari_1_7_0(); + }; + +public BridgeVideoSourceChanged bridgeVideoSourceChanged() { + throw new UnsupportedOperationException(); }; public ChannelHold channelHold() { diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_7_0/ClassTranslator_impl_ari_1_7_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_7_0/ClassTranslator_impl_ari_1_7_0.java index 182fd543..093af588 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_7_0/ClassTranslator_impl_ari_1_7_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_7_0/ClassTranslator_impl_ari_1_7_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Wed Aug 31 18:05:11 CEST 2016 +// Generated on: Sat Feb 04 15:23:09 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.ARI; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_7_0/actions/ActionApplications_impl_ari_1_7_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_7_0/actions/ActionApplications_impl_ari_1_7_0.java index 491f3d2a..16db693e 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_7_0/actions/ActionApplications_impl_ari_1_7_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_7_0/actions/ActionApplications_impl_ari_1_7_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Wed Aug 31 18:05:11 CEST 2016 +// Generated on: Sat Feb 04 15:23:09 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_7_0/actions/ActionAsterisk_impl_ari_1_7_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_7_0/actions/ActionAsterisk_impl_ari_1_7_0.java index 17bee814..847696b7 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_7_0/actions/ActionAsterisk_impl_ari_1_7_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_7_0/actions/ActionAsterisk_impl_ari_1_7_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Wed Aug 31 18:05:11 CEST 2016 +// Generated on: Sat Feb 04 15:23:09 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; @@ -104,22 +104,20 @@ public void setGlobalVar(String variable, String value, AriCallback callba } /********************************************************** - * Reload an Asterisk module. * * * @since ari_1_8_0 *********************************************************/ -public void reloadModule(String moduleName) throws RestException{ +public void updateObject(String configClass, String objectType, String id, Map fields, AriCallback> callback){ throw new UnsupportedOperationException("Method availble from ..."); }; /********************************************************** - * Create or update a dynamic configuration object. * * * @since ari_1_8_0 *********************************************************/ -public List updateObject(String configClass, String objectType, String id, Map fields) throws RestException{ +public void listModules(AriCallback> callback){ throw new UnsupportedOperationException("Method availble from ..."); }; @@ -128,7 +126,7 @@ public List updateObject(String configClass, String objectType, Str * * @since ari_1_8_0 *********************************************************/ -public void deleteObject(String configClass, String objectType, String id, AriCallback callback){ +public void getModule(String moduleName, AriCallback callback){ throw new UnsupportedOperationException("Method availble from ..."); }; @@ -137,16 +135,17 @@ public void deleteObject(String configClass, String objectType, String id, AriCa * * @since ari_1_8_0 *********************************************************/ -public void reloadModule(String moduleName, AriCallback callback){ +public void unloadModule(String moduleName, AriCallback callback){ throw new UnsupportedOperationException("Method availble from ..."); }; /********************************************************** + * Rotates a log channel. * * * @since ari_1_9_0 *********************************************************/ -public void addLog(String logChannelName, String configuration, AriCallback callback){ +public void rotateLog(String logChannelName) throws RestException{ throw new UnsupportedOperationException("Method availble from ..."); }; @@ -155,46 +154,47 @@ public void addLog(String logChannelName, String configuration, AriCallback callback){ +public void deleteObject(String configClass, String objectType, String id, AriCallback callback){ throw new UnsupportedOperationException("Method availble from ..."); }; /********************************************************** - * List Asterisk modules. + * Deletes a log channel. * * - * @since ari_1_8_0 + * @since ari_1_9_0 *********************************************************/ -public List listModules() throws RestException{ +public void deleteLog(String logChannelName) throws RestException{ throw new UnsupportedOperationException("Method availble from ..."); }; /********************************************************** - * Gets Asterisk log channel information. + * Load an Asterisk module. * * - * @since ari_1_9_0 + * @since ari_1_8_0 *********************************************************/ -public List listLogChannels() throws RestException{ +public void loadModule(String moduleName) throws RestException{ throw new UnsupportedOperationException("Method availble from ..."); }; /********************************************************** - * Get Asterisk module information. + * Unload an Asterisk module. * * * @since ari_1_8_0 *********************************************************/ -public Module getModule(String moduleName) throws RestException{ +public void unloadModule(String moduleName) throws RestException{ throw new UnsupportedOperationException("Method availble from ..."); }; /********************************************************** + * Create or update a dynamic configuration object. * * - * @since ari_1_9_0 + * @since ari_1_8_0 *********************************************************/ -public void rotateLog(String logChannelName, AriCallback callback){ +public List updateObject(String configClass, String objectType, String id, Map fields) throws RestException{ throw new UnsupportedOperationException("Method availble from ..."); }; @@ -209,22 +209,21 @@ public List getObject(String configClass, String objectType, String }; /********************************************************** - * Load an Asterisk module. + * Get Asterisk module information. * * * @since ari_1_8_0 *********************************************************/ -public void loadModule(String moduleName) throws RestException{ +public Module getModule(String moduleName) throws RestException{ throw new UnsupportedOperationException("Method availble from ..."); }; /********************************************************** - * Unload an Asterisk module. * * - * @since ari_1_8_0 + * @since ari_1_9_0 *********************************************************/ -public void unloadModule(String moduleName) throws RestException{ +public void rotateLog(String logChannelName, AriCallback callback){ throw new UnsupportedOperationException("Method availble from ..."); }; @@ -233,45 +232,44 @@ public void unloadModule(String moduleName) throws RestException{ * * @since ari_1_8_0 *********************************************************/ -public void getModule(String moduleName, AriCallback callback){ +public void loadModule(String moduleName, AriCallback callback){ throw new UnsupportedOperationException("Method availble from ..."); }; /********************************************************** * * - * @since ari_1_8_0 + * @since ari_1_9_0 *********************************************************/ -public void updateObject(String configClass, String objectType, String id, Map fields, AriCallback> callback){ +public void addLog(String logChannelName, String configuration, AriCallback callback){ throw new UnsupportedOperationException("Method availble from ..."); }; /********************************************************** - * Delete a dynamic configuration object. * * * @since ari_1_8_0 *********************************************************/ -public void deleteObject(String configClass, String objectType, String id) throws RestException{ +public void reloadModule(String moduleName, AriCallback callback){ throw new UnsupportedOperationException("Method availble from ..."); }; /********************************************************** - * Rotates a log channel. + * Gets Asterisk log channel information. * * * @since ari_1_9_0 *********************************************************/ -public void rotateLog(String logChannelName) throws RestException{ +public List listLogChannels() throws RestException{ throw new UnsupportedOperationException("Method availble from ..."); }; /********************************************************** * * - * @since ari_1_9_0 + * @since ari_1_8_0 *********************************************************/ -public void listLogChannels(AriCallback> callback){ +public void getObject(String configClass, String objectType, String id, AriCallback> callback){ throw new UnsupportedOperationException("Method availble from ..."); }; @@ -288,46 +286,48 @@ public void addLog(String logChannelName, String configuration) throws RestExcep /********************************************************** * * - * @since ari_1_8_0 + * @since ari_1_9_0 *********************************************************/ -public void listModules(AriCallback> callback){ +public void listLogChannels(AriCallback> callback){ throw new UnsupportedOperationException("Method availble from ..."); }; /********************************************************** - * Deletes a log channel. + * List Asterisk modules. * * - * @since ari_1_9_0 + * @since ari_1_8_0 *********************************************************/ -public void deleteLog(String logChannelName) throws RestException{ +public List listModules() throws RestException{ throw new UnsupportedOperationException("Method availble from ..."); }; /********************************************************** + * Reload an Asterisk module. * * - * @since ari_1_9_0 + * @since ari_1_8_0 *********************************************************/ -public void deleteLog(String logChannelName, AriCallback callback){ +public void reloadModule(String moduleName) throws RestException{ throw new UnsupportedOperationException("Method availble from ..."); }; /********************************************************** * * - * @since ari_1_8_0 + * @since ari_1_9_0 *********************************************************/ -public void loadModule(String moduleName, AriCallback callback){ +public void deleteLog(String logChannelName, AriCallback callback){ throw new UnsupportedOperationException("Method availble from ..."); }; /********************************************************** + * Delete a dynamic configuration object. * * * @since ari_1_8_0 *********************************************************/ -public void getObject(String configClass, String objectType, String id, AriCallback> callback){ +public void deleteObject(String configClass, String objectType, String id) throws RestException{ throw new UnsupportedOperationException("Method availble from ..."); }; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_7_0/actions/ActionBridges_impl_ari_1_7_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_7_0/actions/ActionBridges_impl_ari_1_7_0.java index 81acf32e..56dfb03d 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_7_0/actions/ActionBridges_impl_ari_1_7_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_7_0/actions/ActionBridges_impl_ari_1_7_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Wed Aug 31 18:05:11 CEST 2016 +// Generated on: Sat Feb 04 15:23:09 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; @@ -364,12 +364,22 @@ public void removeChannel(String bridgeId, String channel, AriCallback cal httpActionAsync(callback); } +/********************************************************** + * Start playback of media on a bridge. + * The media URI may be any of a number of URI's. Currently sound: and recording: URI's are supported. This operation creates a playback resource that can be used to control the playback of media (pause, rewind, fast forward, etc.) + * + * @since ari_0_0_1 + *********************************************************/ +public Playback play(String bridgeId, String media, String lang, int offsetms, int skipms) throws RestException{ + throw new UnsupportedOperationException("Method availble from ..."); +}; + /********************************************************** * * * @since ari_0_0_1 *********************************************************/ -public void create(String type, AriCallback callback){ +public void play(String bridgeId, String media, String lang, int offsetms, int skipms, AriCallback callback){ throw new UnsupportedOperationException("Method availble from ..."); }; @@ -383,6 +393,35 @@ public Bridge create(String type, String name) throws RestException{ throw new UnsupportedOperationException("Method availble from ..."); }; +/********************************************************** + * + * + * @since ari_1_5_0 + *********************************************************/ +public void create_or_update_with_id(String type, String bridgeId, String name, AriCallback callback){ + throw new UnsupportedOperationException("Method availble from ..."); +}; + +/********************************************************** + * Set a channel as the video source in a multi-party mixing bridge. This operation has no effect on bridges with two or fewer participants. + * + * + * @since ari_2_0_0 + *********************************************************/ +public void setVideoSource(String bridgeId, String channelId) throws RestException{ + throw new UnsupportedOperationException("Method availble from ..."); +}; + +/********************************************************** + * Create a new bridge or updates an existing one. + * This bridge persists until it has been shut down, or Asterisk has been shut down. + * + * @since ari_1_5_0 + *********************************************************/ +public Bridge create_or_update_with_id(String type, String bridgeId, String name) throws RestException{ + throw new UnsupportedOperationException("Method availble from ..."); +}; + /********************************************************** * Create a new bridge. * This bridge persists until it has been shut down, or Asterisk has been shut down. @@ -394,49 +433,48 @@ public Bridge create(String type) throws RestException{ }; /********************************************************** + * Removes any explicit video source in a multi-party mixing bridge. This operation has no effect on bridges with two or fewer participants. When no explicit video source is set, talk detection will be used to determine the active video stream. * * - * @since ari_0_0_1 + * @since ari_2_0_0 *********************************************************/ -public void play(String bridgeId, String media, String lang, int offsetms, int skipms, AriCallback callback){ +public void clearVideoSource(String bridgeId) throws RestException{ throw new UnsupportedOperationException("Method availble from ..."); }; /********************************************************** - * Start playback of media on a bridge. - * The media URI may be any of a number of URI's. Currently sound: and recording: URI's are supported. This operation creates a playback resource that can be used to control the playback of media (pause, rewind, fast forward, etc.) + * * * @since ari_0_0_1 *********************************************************/ -public Playback play(String bridgeId, String media, String lang, int offsetms, int skipms) throws RestException{ +public void create(String type, AriCallback callback){ throw new UnsupportedOperationException("Method availble from ..."); }; /********************************************************** * * - * @since ari_1_0_0 + * @since ari_2_0_0 *********************************************************/ -public void create(String type, String name, AriCallback callback){ +public void setVideoSource(String bridgeId, String channelId, AriCallback callback){ throw new UnsupportedOperationException("Method availble from ..."); }; /********************************************************** * * - * @since ari_1_5_0 + * @since ari_1_0_0 *********************************************************/ -public void create_or_update_with_id(String type, String bridgeId, String name, AriCallback callback){ +public void create(String type, String name, AriCallback callback){ throw new UnsupportedOperationException("Method availble from ..."); }; /********************************************************** - * Create a new bridge or updates an existing one. - * This bridge persists until it has been shut down, or Asterisk has been shut down. * - * @since ari_1_5_0 + * + * @since ari_2_0_0 *********************************************************/ -public Bridge create_or_update_with_id(String type, String bridgeId, String name) throws RestException{ +public void clearVideoSource(String bridgeId, AriCallback callback){ throw new UnsupportedOperationException("Method availble from ..."); }; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_7_0/actions/ActionChannels_impl_ari_1_7_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_7_0/actions/ActionChannels_impl_ari_1_7_0.java index 5b0a32d0..9c4d7a92 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_7_0/actions/ActionChannels_impl_ari_1_7_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_7_0/actions/ActionChannels_impl_ari_1_7_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Wed Aug 31 18:05:11 CEST 2016 +// Generated on: Sat Feb 04 15:23:09 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; @@ -740,37 +740,47 @@ public void setChannelVar(String channelId, String variable, String value, AriCa /********************************************************** * * - * @since ari_1_5_0 + * @since ari_1_8_0 *********************************************************/ -public void originateWithId(String channelId, String endpoint, String extension, String context, long priority, String app, String appArgs, String callerId, int timeout, Map variables, String otherChannelId, AriCallback callback){ +public void redirect(String channelId, String endpoint, AriCallback callback){ throw new UnsupportedOperationException("Method availble from ..."); }; /********************************************************** + * Create a new channel (originate with id). + * The new channel is created immediately and a snapshot of it returned. If a Stasis application is provided it will be automatically subscribed to the originated channel for further events and updates. * - * - * @since ari_1_10_0 + * @since ari_1_5_0 *********************************************************/ -public void dial(String channelId, String caller, int timeout, AriCallback callback){ +public Channel originateWithId(String channelId, String endpoint, String extension, String context, long priority, String app, String appArgs, String callerId, int timeout, Map variables, String otherChannelId) throws RestException{ throw new UnsupportedOperationException("Method availble from ..."); }; /********************************************************** - * + * Start snooping. + * Snoop (spy/whisper) on a specific channel. * * @since ari_0_0_1 *********************************************************/ -public void snoopChannel(String channelId, String spy, String whisper, String app, String appArgs, AriCallback callback){ +public Channel snoopChannel(String channelId, String spy, String whisper, String app, String appArgs) throws RestException{ throw new UnsupportedOperationException("Method availble from ..."); }; /********************************************************** - * Dial a created channel. * * * @since ari_1_10_0 *********************************************************/ -public void dial(String channelId, String caller, int timeout) throws RestException{ +public void dial(String channelId, String caller, int timeout, AriCallback callback){ + throw new UnsupportedOperationException("Method availble from ..."); +}; + +/********************************************************** + * + * + * @since ari_1_5_0 + *********************************************************/ +public void originate(String endpoint, String extension, String context, long priority, String app, String appArgs, String callerId, int timeout, Map variables, String channelId, String otherChannelId, AriCallback callback){ throw new UnsupportedOperationException("Method availble from ..."); }; @@ -803,101 +813,100 @@ public Playback play(String channelId, String media, String lang, int offsetms, }; /********************************************************** - * Exit application{ - throw new UnsupportedOperationException("Method availble from ..."); -}; continue execution in the dialplan. * * * @since ari_0_0_1 *********************************************************/ -public void continueInDialplan(String channelId, String context, String extension, int priority) throws RestException{ +public void play(String channelId, String media, String lang, int offsetms, int skipms, AriCallback callback){ throw new UnsupportedOperationException("Method availble from ..."); }; /********************************************************** - * Create a new channel (originate). - * The new channel is created immediately and a snapshot of it returned. If a Stasis application is provided it will be automatically subscribed to the originated channel for further events and updates. * - * @since ari_1_10_0 + * + * @since ari_0_0_1 *********************************************************/ -public Channel originate(String endpoint, String extension, String context, long priority, String label, String app, String appArgs, String callerId, int timeout, Map variables, String channelId, String otherChannelId, String originator, String formats) throws RestException{ +public void snoopChannel(String channelId, String spy, String whisper, String app, String appArgs, AriCallback callback){ throw new UnsupportedOperationException("Method availble from ..."); }; /********************************************************** * * - * @since ari_0_0_1 + * @since ari_1_5_0 *********************************************************/ -public void originate(String endpoint, String extension, String context, long priority, String app, String appArgs, String callerId, int timeout, AriCallback callback){ +public void originateWithId(String channelId, String endpoint, String extension, String context, long priority, String app, String appArgs, String callerId, int timeout, Map variables, String otherChannelId, AriCallback callback){ throw new UnsupportedOperationException("Method availble from ..."); }; /********************************************************** - * Redirect the channel to a different location. - * + * Create a new channel (originate). + * The new channel is created immediately and a snapshot of it returned. If a Stasis application is provided it will be automatically subscribed to the originated channel for further events and updates. * - * @since ari_1_8_0 + * @since ari_1_10_0 *********************************************************/ -public void redirect(String channelId, String endpoint) throws RestException{ +public Channel originate(String endpoint, String extension, String context, long priority, String label, String app, String appArgs, String callerId, int timeout, Map variables, String channelId, String otherChannelId, String originator, String formats) throws RestException{ throw new UnsupportedOperationException("Method availble from ..."); }; /********************************************************** + * Create a new channel (originate with id). + * The new channel is created immediately and a snapshot of it returned. If a Stasis application is provided it will be automatically subscribed to the originated channel for further events and updates. * - * - * @since ari_1_8_0 + * @since ari_1_10_0 *********************************************************/ -public void redirect(String channelId, String endpoint, AriCallback callback){ +public Channel originateWithId(String channelId, String endpoint, String extension, String context, long priority, String label, String app, String appArgs, String callerId, int timeout, Map variables, String otherChannelId, String originator, String formats) throws RestException{ throw new UnsupportedOperationException("Method availble from ..."); }; /********************************************************** - * Create channel. - * + * Create a new channel (originate). + * The new channel is created immediately and a snapshot of it returned. If a Stasis application is provided it will be automatically subscribed to the originated channel for further events and updates. * - * @since ari_1_10_0 + * @since ari_0_0_1 *********************************************************/ -public Channel create(String endpoint, String app, String appArgs, String channelId, String otherChannelId, String originator, String formats) throws RestException{ +public Channel originate(String endpoint, String extension, String context, long priority, String app, String appArgs, String callerId, int timeout) throws RestException{ throw new UnsupportedOperationException("Method availble from ..."); }; /********************************************************** + * Dial a created channel. * * - * @since ari_1_5_0 + * @since ari_1_10_0 *********************************************************/ -public void originate(String endpoint, String extension, String context, long priority, String app, String appArgs, String callerId, int timeout, Map variables, String channelId, String otherChannelId, AriCallback callback){ +public void dial(String channelId, String caller, int timeout) throws RestException{ throw new UnsupportedOperationException("Method availble from ..."); }; /********************************************************** - * Create a new channel (originate). - * The new channel is created immediately and a snapshot of it returned. If a Stasis application is provided it will be automatically subscribed to the originated channel for further events and updates. * - * @since ari_0_0_1 + * + * @since ari_1_10_0 *********************************************************/ -public Channel originate(String endpoint, String extension, String context, long priority, String app, String appArgs, String callerId, int timeout) throws RestException{ +public void create(String endpoint, String app, String appArgs, String channelId, String otherChannelId, String originator, String formats, AriCallback callback){ throw new UnsupportedOperationException("Method availble from ..."); }; /********************************************************** - * Create a new channel (originate with id). - * The new channel is created immediately and a snapshot of it returned. If a Stasis application is provided it will be automatically subscribed to the originated channel for further events and updates. + * Create channel. * - * @since ari_1_5_0 + * + * @since ari_1_10_0 *********************************************************/ -public Channel originateWithId(String channelId, String endpoint, String extension, String context, long priority, String app, String appArgs, String callerId, int timeout, Map variables, String otherChannelId) throws RestException{ +public Channel create(String endpoint, String app, String appArgs, String channelId, String otherChannelId, String originator, String formats) throws RestException{ throw new UnsupportedOperationException("Method availble from ..."); }; /********************************************************** - * Create a new channel (originate with id). - * The new channel is created immediately and a snapshot of it returned. If a Stasis application is provided it will be automatically subscribed to the originated channel for further events and updates. + * Exit application{ + throw new UnsupportedOperationException("Method availble from ..."); +}; continue execution in the dialplan. * - * @since ari_1_10_0 + * + * @since ari_0_0_1 *********************************************************/ -public Channel originateWithId(String channelId, String endpoint, String extension, String context, long priority, String label, String app, String appArgs, String callerId, int timeout, Map variables, String otherChannelId, String originator, String formats) throws RestException{ +public void continueInDialplan(String channelId, String context, String extension, int priority) throws RestException{ throw new UnsupportedOperationException("Method availble from ..."); }; @@ -906,7 +915,7 @@ public Channel originateWithId(String channelId, String endpoint, String extensi * * @since ari_1_10_0 *********************************************************/ -public void create(String endpoint, String app, String appArgs, String channelId, String otherChannelId, String originator, String formats, AriCallback callback){ +public void originate(String endpoint, String extension, String context, long priority, String label, String app, String appArgs, String callerId, int timeout, Map variables, String channelId, String otherChannelId, String originator, String formats, AriCallback callback){ throw new UnsupportedOperationException("Method availble from ..."); }; @@ -921,30 +930,21 @@ public Channel originate(String endpoint, String extension, String context, long }; /********************************************************** + * Redirect the channel to a different location. * * - * @since ari_0_0_1 - *********************************************************/ -public void play(String channelId, String media, String lang, int offsetms, int skipms, AriCallback callback){ - throw new UnsupportedOperationException("Method availble from ..."); -}; - -/********************************************************** - * Start snooping. - * Snoop (spy/whisper) on a specific channel. - * - * @since ari_0_0_1 + * @since ari_1_8_0 *********************************************************/ -public Channel snoopChannel(String channelId, String spy, String whisper, String app, String appArgs) throws RestException{ +public void redirect(String channelId, String endpoint) throws RestException{ throw new UnsupportedOperationException("Method availble from ..."); }; /********************************************************** * * - * @since ari_1_10_0 + * @since ari_0_0_1 *********************************************************/ -public void originate(String endpoint, String extension, String context, long priority, String label, String app, String appArgs, String callerId, int timeout, Map variables, String channelId, String otherChannelId, String originator, String formats, AriCallback callback){ +public void originate(String endpoint, String extension, String context, long priority, String app, String appArgs, String callerId, int timeout, AriCallback callback){ throw new UnsupportedOperationException("Method availble from ..."); }; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_7_0/actions/ActionDeviceStates_impl_ari_1_7_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_7_0/actions/ActionDeviceStates_impl_ari_1_7_0.java index 03dbb2b9..8b2e533b 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_7_0/actions/ActionDeviceStates_impl_ari_1_7_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_7_0/actions/ActionDeviceStates_impl_ari_1_7_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Wed Aug 31 18:05:11 CEST 2016 +// Generated on: Sat Feb 04 15:23:09 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_7_0/actions/ActionEndpoints_impl_ari_1_7_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_7_0/actions/ActionEndpoints_impl_ari_1_7_0.java index 3cb296ba..ea2d6bae 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_7_0/actions/ActionEndpoints_impl_ari_1_7_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_7_0/actions/ActionEndpoints_impl_ari_1_7_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Wed Aug 31 18:05:11 CEST 2016 +// Generated on: Sat Feb 04 15:23:09 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_7_0/actions/ActionEvents_impl_ari_1_7_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_7_0/actions/ActionEvents_impl_ari_1_7_0.java index 17c7516f..170e62de 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_7_0/actions/ActionEvents_impl_ari_1_7_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_7_0/actions/ActionEvents_impl_ari_1_7_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Wed Aug 31 18:05:11 CEST 2016 +// Generated on: Sat Feb 04 15:23:09 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; @@ -80,21 +80,21 @@ public void userEvent(String eventName, String application, String source, Map callback){ +public Message eventWebsocket(String app, boolean subscribeAll) throws RestException{ throw new UnsupportedOperationException("Method availble from ..."); }; /********************************************************** - * WebSocket connection for events. * * * @since ari_1_9_0 *********************************************************/ -public Message eventWebsocket(String app, boolean subscribeAll) throws RestException{ +public void eventWebsocket(String app, boolean subscribeAll, AriCallback callback){ throw new UnsupportedOperationException("Method availble from ..."); }; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_7_0/actions/ActionPlaybacks_impl_ari_1_7_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_7_0/actions/ActionPlaybacks_impl_ari_1_7_0.java index bdf7ca39..1b896e2e 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_7_0/actions/ActionPlaybacks_impl_ari_1_7_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_7_0/actions/ActionPlaybacks_impl_ari_1_7_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Wed Aug 31 18:05:11 CEST 2016 +// Generated on: Sat Feb 04 15:23:09 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_7_0/actions/ActionRecordings_impl_ari_1_7_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_7_0/actions/ActionRecordings_impl_ari_1_7_0.java index 64de0991..b800475e 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_7_0/actions/ActionRecordings_impl_ari_1_7_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_7_0/actions/ActionRecordings_impl_ari_1_7_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Wed Aug 31 18:05:11 CEST 2016 +// Generated on: Sat Feb 04 15:23:09 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_7_0/actions/ActionSounds_impl_ari_1_7_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_7_0/actions/ActionSounds_impl_ari_1_7_0.java index a118bc66..3d3476e7 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_7_0/actions/ActionSounds_impl_ari_1_7_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_7_0/actions/ActionSounds_impl_ari_1_7_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Wed Aug 31 18:05:11 CEST 2016 +// Generated on: Sat Feb 04 15:23:09 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_7_0/models/ApplicationReplaced_impl_ari_1_7_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_7_0/models/ApplicationReplaced_impl_ari_1_7_0.java index e6e58a3a..99422fe6 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_7_0/models/ApplicationReplaced_impl_ari_1_7_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_7_0/models/ApplicationReplaced_impl_ari_1_7_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Wed Aug 31 18:05:10 CEST 2016 +// Generated on: Sat Feb 04 15:23:09 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_7_0/models/Application_impl_ari_1_7_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_7_0/models/Application_impl_ari_1_7_0.java index dc21d6f5..a35512ab 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_7_0/models/Application_impl_ari_1_7_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_7_0/models/Application_impl_ari_1_7_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Wed Aug 31 18:05:10 CEST 2016 +// Generated on: Sat Feb 04 15:23:09 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_7_0/models/AsteriskInfo_impl_ari_1_7_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_7_0/models/AsteriskInfo_impl_ari_1_7_0.java index 029b1a8f..00b9cb4b 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_7_0/models/AsteriskInfo_impl_ari_1_7_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_7_0/models/AsteriskInfo_impl_ari_1_7_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Wed Aug 31 18:05:10 CEST 2016 +// Generated on: Sat Feb 04 15:23:09 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_7_0/models/BridgeAttendedTransfer_impl_ari_1_7_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_7_0/models/BridgeAttendedTransfer_impl_ari_1_7_0.java index 81a57565..98a3d42e 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_7_0/models/BridgeAttendedTransfer_impl_ari_1_7_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_7_0/models/BridgeAttendedTransfer_impl_ari_1_7_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Wed Aug 31 18:05:10 CEST 2016 +// Generated on: Sat Feb 04 15:23:09 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_7_0/models/BridgeBlindTransfer_impl_ari_1_7_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_7_0/models/BridgeBlindTransfer_impl_ari_1_7_0.java index f24c0da3..805b5288 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_7_0/models/BridgeBlindTransfer_impl_ari_1_7_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_7_0/models/BridgeBlindTransfer_impl_ari_1_7_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Wed Aug 31 18:05:10 CEST 2016 +// Generated on: Sat Feb 04 15:23:09 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_7_0/models/BridgeCreated_impl_ari_1_7_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_7_0/models/BridgeCreated_impl_ari_1_7_0.java index 2a7cb2a3..d58f6e79 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_7_0/models/BridgeCreated_impl_ari_1_7_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_7_0/models/BridgeCreated_impl_ari_1_7_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Wed Aug 31 18:05:10 CEST 2016 +// Generated on: Sat Feb 04 15:23:09 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_7_0/models/BridgeDestroyed_impl_ari_1_7_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_7_0/models/BridgeDestroyed_impl_ari_1_7_0.java index d3c2e42a..c5fc159d 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_7_0/models/BridgeDestroyed_impl_ari_1_7_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_7_0/models/BridgeDestroyed_impl_ari_1_7_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Wed Aug 31 18:05:10 CEST 2016 +// Generated on: Sat Feb 04 15:23:09 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_7_0/models/BridgeMerged_impl_ari_1_7_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_7_0/models/BridgeMerged_impl_ari_1_7_0.java index 737df25f..70f2f4b7 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_7_0/models/BridgeMerged_impl_ari_1_7_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_7_0/models/BridgeMerged_impl_ari_1_7_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Wed Aug 31 18:05:10 CEST 2016 +// Generated on: Sat Feb 04 15:23:09 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_7_0/models/Bridge_impl_ari_1_7_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_7_0/models/Bridge_impl_ari_1_7_0.java index 37710232..29ade6e4 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_7_0/models/Bridge_impl_ari_1_7_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_7_0/models/Bridge_impl_ari_1_7_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Wed Aug 31 18:05:10 CEST 2016 +// Generated on: Sat Feb 04 15:23:09 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; @@ -100,6 +100,41 @@ public void setTechnology(String val ) { technology = val; } -/** No missing signatures from interface */ +/********************************************************** + * The video mode the bridge is using. One of 'none', 'talker', or 'single'. + * + * @since ari_2_0_0 + *********************************************************/ + public String getVideo_mode(){ + throw new UnsupportedOperationException("Method availble from ..."); +}; + +/********************************************************** + * The ID of the channel that is the source of video in this bridge, if one exists. + * + * @since ari_2_0_0 + *********************************************************/ + public String getVideo_source_id(){ + throw new UnsupportedOperationException("Method availble from ..."); +}; + +/********************************************************** + * The video mode the bridge is using. One of 'none', 'talker', or 'single'. + * + * @since ari_2_0_0 + *********************************************************/ + public void setVideo_mode(String val ){ + throw new UnsupportedOperationException("Method availble from ..."); +}; + +/********************************************************** + * The ID of the channel that is the source of video in this bridge, if one exists. + * + * @since ari_2_0_0 + *********************************************************/ + public void setVideo_source_id(String val ){ + throw new UnsupportedOperationException("Method availble from ..."); +}; + } diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_7_0/models/BuildInfo_impl_ari_1_7_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_7_0/models/BuildInfo_impl_ari_1_7_0.java index fd216629..66608cb9 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_7_0/models/BuildInfo_impl_ari_1_7_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_7_0/models/BuildInfo_impl_ari_1_7_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Wed Aug 31 18:05:10 CEST 2016 +// Generated on: Sat Feb 04 15:23:09 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_7_0/models/CallerID_impl_ari_1_7_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_7_0/models/CallerID_impl_ari_1_7_0.java index b3333fa3..bb40e77d 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_7_0/models/CallerID_impl_ari_1_7_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_7_0/models/CallerID_impl_ari_1_7_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Wed Aug 31 18:05:10 CEST 2016 +// Generated on: Sat Feb 04 15:23:09 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_7_0/models/ChannelCallerId_impl_ari_1_7_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_7_0/models/ChannelCallerId_impl_ari_1_7_0.java index 04452601..0248a68c 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_7_0/models/ChannelCallerId_impl_ari_1_7_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_7_0/models/ChannelCallerId_impl_ari_1_7_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Wed Aug 31 18:05:10 CEST 2016 +// Generated on: Sat Feb 04 15:23:09 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_7_0/models/ChannelConnectedLine_impl_ari_1_7_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_7_0/models/ChannelConnectedLine_impl_ari_1_7_0.java index 8c5c1290..6c259fd3 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_7_0/models/ChannelConnectedLine_impl_ari_1_7_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_7_0/models/ChannelConnectedLine_impl_ari_1_7_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Wed Aug 31 18:05:10 CEST 2016 +// Generated on: Sat Feb 04 15:23:09 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_7_0/models/ChannelCreated_impl_ari_1_7_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_7_0/models/ChannelCreated_impl_ari_1_7_0.java index 78a2eb9c..65df5c2b 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_7_0/models/ChannelCreated_impl_ari_1_7_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_7_0/models/ChannelCreated_impl_ari_1_7_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Wed Aug 31 18:05:10 CEST 2016 +// Generated on: Sat Feb 04 15:23:09 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_7_0/models/ChannelDestroyed_impl_ari_1_7_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_7_0/models/ChannelDestroyed_impl_ari_1_7_0.java index 8cf2fc7b..d4092e38 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_7_0/models/ChannelDestroyed_impl_ari_1_7_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_7_0/models/ChannelDestroyed_impl_ari_1_7_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Wed Aug 31 18:05:10 CEST 2016 +// Generated on: Sat Feb 04 15:23:09 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_7_0/models/ChannelDialplan_impl_ari_1_7_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_7_0/models/ChannelDialplan_impl_ari_1_7_0.java index 02d6b22d..f61f4bea 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_7_0/models/ChannelDialplan_impl_ari_1_7_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_7_0/models/ChannelDialplan_impl_ari_1_7_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Wed Aug 31 18:05:10 CEST 2016 +// Generated on: Sat Feb 04 15:23:09 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_7_0/models/ChannelDtmfReceived_impl_ari_1_7_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_7_0/models/ChannelDtmfReceived_impl_ari_1_7_0.java index cb323120..d3351a74 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_7_0/models/ChannelDtmfReceived_impl_ari_1_7_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_7_0/models/ChannelDtmfReceived_impl_ari_1_7_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Wed Aug 31 18:05:10 CEST 2016 +// Generated on: Sat Feb 04 15:23:09 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_7_0/models/ChannelEnteredBridge_impl_ari_1_7_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_7_0/models/ChannelEnteredBridge_impl_ari_1_7_0.java index 47ac6c05..e68454d4 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_7_0/models/ChannelEnteredBridge_impl_ari_1_7_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_7_0/models/ChannelEnteredBridge_impl_ari_1_7_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Wed Aug 31 18:05:10 CEST 2016 +// Generated on: Sat Feb 04 15:23:09 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_7_0/models/ChannelHangupRequest_impl_ari_1_7_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_7_0/models/ChannelHangupRequest_impl_ari_1_7_0.java index 262b5512..ade0d5aa 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_7_0/models/ChannelHangupRequest_impl_ari_1_7_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_7_0/models/ChannelHangupRequest_impl_ari_1_7_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Wed Aug 31 18:05:10 CEST 2016 +// Generated on: Sat Feb 04 15:23:09 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_7_0/models/ChannelLeftBridge_impl_ari_1_7_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_7_0/models/ChannelLeftBridge_impl_ari_1_7_0.java index 48976e08..0d1b9390 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_7_0/models/ChannelLeftBridge_impl_ari_1_7_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_7_0/models/ChannelLeftBridge_impl_ari_1_7_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Wed Aug 31 18:05:10 CEST 2016 +// Generated on: Sat Feb 04 15:23:09 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_7_0/models/ChannelStateChange_impl_ari_1_7_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_7_0/models/ChannelStateChange_impl_ari_1_7_0.java index 59facace..e076bd39 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_7_0/models/ChannelStateChange_impl_ari_1_7_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_7_0/models/ChannelStateChange_impl_ari_1_7_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Wed Aug 31 18:05:10 CEST 2016 +// Generated on: Sat Feb 04 15:23:09 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_7_0/models/ChannelTalkingFinished_impl_ari_1_7_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_7_0/models/ChannelTalkingFinished_impl_ari_1_7_0.java index 704c9cc4..a635da49 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_7_0/models/ChannelTalkingFinished_impl_ari_1_7_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_7_0/models/ChannelTalkingFinished_impl_ari_1_7_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Wed Aug 31 18:05:10 CEST 2016 +// Generated on: Sat Feb 04 15:23:09 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_7_0/models/ChannelTalkingStarted_impl_ari_1_7_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_7_0/models/ChannelTalkingStarted_impl_ari_1_7_0.java index 67cc085a..afa5e106 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_7_0/models/ChannelTalkingStarted_impl_ari_1_7_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_7_0/models/ChannelTalkingStarted_impl_ari_1_7_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Wed Aug 31 18:05:10 CEST 2016 +// Generated on: Sat Feb 04 15:23:09 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_7_0/models/ChannelUserevent_impl_ari_1_7_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_7_0/models/ChannelUserevent_impl_ari_1_7_0.java index 6dbdb4b1..a517e9dd 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_7_0/models/ChannelUserevent_impl_ari_1_7_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_7_0/models/ChannelUserevent_impl_ari_1_7_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Wed Aug 31 18:05:10 CEST 2016 +// Generated on: Sat Feb 04 15:23:09 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_7_0/models/ChannelVarset_impl_ari_1_7_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_7_0/models/ChannelVarset_impl_ari_1_7_0.java index ea6d1a2f..5613f304 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_7_0/models/ChannelVarset_impl_ari_1_7_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_7_0/models/ChannelVarset_impl_ari_1_7_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Wed Aug 31 18:05:10 CEST 2016 +// Generated on: Sat Feb 04 15:23:09 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_7_0/models/Channel_impl_ari_1_7_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_7_0/models/Channel_impl_ari_1_7_0.java index eb3cf5b9..dc10e281 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_7_0/models/Channel_impl_ari_1_7_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_7_0/models/Channel_impl_ari_1_7_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Wed Aug 31 18:05:10 CEST 2016 +// Generated on: Sat Feb 04 15:23:09 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; @@ -122,6 +122,23 @@ public void setState(String val ) { state = val; } -/** No missing signatures from interface */ +/********************************************************** + * Channel variables + * + * @since ari_2_0_0 + *********************************************************/ + public String getChannelvars(){ + throw new UnsupportedOperationException("Method availble from ..."); +}; + +/********************************************************** + * Channel variables + * + * @since ari_2_0_0 + *********************************************************/ + public void setChannelvars(String val ){ + throw new UnsupportedOperationException("Method availble from ..."); +}; + } diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_7_0/models/ConfigInfo_impl_ari_1_7_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_7_0/models/ConfigInfo_impl_ari_1_7_0.java index b71aad27..5e718276 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_7_0/models/ConfigInfo_impl_ari_1_7_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_7_0/models/ConfigInfo_impl_ari_1_7_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Wed Aug 31 18:05:10 CEST 2016 +// Generated on: Sat Feb 04 15:23:09 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_7_0/models/DeviceStateChanged_impl_ari_1_7_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_7_0/models/DeviceStateChanged_impl_ari_1_7_0.java index db0bdf82..b08eb62c 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_7_0/models/DeviceStateChanged_impl_ari_1_7_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_7_0/models/DeviceStateChanged_impl_ari_1_7_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Wed Aug 31 18:05:10 CEST 2016 +// Generated on: Sat Feb 04 15:23:09 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_7_0/models/DeviceState_impl_ari_1_7_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_7_0/models/DeviceState_impl_ari_1_7_0.java index 11acc1b9..e14c0d6c 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_7_0/models/DeviceState_impl_ari_1_7_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_7_0/models/DeviceState_impl_ari_1_7_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Wed Aug 31 18:05:10 CEST 2016 +// Generated on: Sat Feb 04 15:23:09 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_7_0/models/Dial_impl_ari_1_7_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_7_0/models/Dial_impl_ari_1_7_0.java index 29b8d0dc..20f5cd6a 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_7_0/models/Dial_impl_ari_1_7_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_7_0/models/Dial_impl_ari_1_7_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Wed Aug 31 18:05:10 CEST 2016 +// Generated on: Sat Feb 04 15:23:09 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_7_0/models/Dialed_impl_ari_1_7_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_7_0/models/Dialed_impl_ari_1_7_0.java index 2e02fa5d..e0e39579 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_7_0/models/Dialed_impl_ari_1_7_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_7_0/models/Dialed_impl_ari_1_7_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Wed Aug 31 18:05:10 CEST 2016 +// Generated on: Sat Feb 04 15:23:09 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_7_0/models/DialplanCEP_impl_ari_1_7_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_7_0/models/DialplanCEP_impl_ari_1_7_0.java index 57df82b5..cda50106 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_7_0/models/DialplanCEP_impl_ari_1_7_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_7_0/models/DialplanCEP_impl_ari_1_7_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Wed Aug 31 18:05:10 CEST 2016 +// Generated on: Sat Feb 04 15:23:09 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_7_0/models/EndpointStateChange_impl_ari_1_7_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_7_0/models/EndpointStateChange_impl_ari_1_7_0.java index 9cd09f26..818cf893 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_7_0/models/EndpointStateChange_impl_ari_1_7_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_7_0/models/EndpointStateChange_impl_ari_1_7_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Wed Aug 31 18:05:10 CEST 2016 +// Generated on: Sat Feb 04 15:23:09 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_7_0/models/Endpoint_impl_ari_1_7_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_7_0/models/Endpoint_impl_ari_1_7_0.java index ba53cfcd..d85ae3f1 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_7_0/models/Endpoint_impl_ari_1_7_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_7_0/models/Endpoint_impl_ari_1_7_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Wed Aug 31 18:05:10 CEST 2016 +// Generated on: Sat Feb 04 15:23:09 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_7_0/models/Event_impl_ari_1_7_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_7_0/models/Event_impl_ari_1_7_0.java index b65cc2aa..80383f18 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_7_0/models/Event_impl_ari_1_7_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_7_0/models/Event_impl_ari_1_7_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Wed Aug 31 18:05:10 CEST 2016 +// Generated on: Sat Feb 04 15:23:09 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_7_0/models/FormatLangPair_impl_ari_1_7_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_7_0/models/FormatLangPair_impl_ari_1_7_0.java index bfedfa78..f529cd24 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_7_0/models/FormatLangPair_impl_ari_1_7_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_7_0/models/FormatLangPair_impl_ari_1_7_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Wed Aug 31 18:05:10 CEST 2016 +// Generated on: Sat Feb 04 15:23:09 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_7_0/models/LiveRecording_impl_ari_1_7_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_7_0/models/LiveRecording_impl_ari_1_7_0.java index 37273720..e1b9a298 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_7_0/models/LiveRecording_impl_ari_1_7_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_7_0/models/LiveRecording_impl_ari_1_7_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Wed Aug 31 18:05:10 CEST 2016 +// Generated on: Sat Feb 04 15:23:09 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_7_0/models/Message_impl_ari_1_7_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_7_0/models/Message_impl_ari_1_7_0.java index 1ed4cf6a..075e462a 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_7_0/models/Message_impl_ari_1_7_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_7_0/models/Message_impl_ari_1_7_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Wed Aug 31 18:05:10 CEST 2016 +// Generated on: Sat Feb 04 15:23:09 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; @@ -71,6 +71,23 @@ public void setType(String val ) { type = val; } -/** No missing signatures from interface */ +/********************************************************** + * The unique ID for the Asterisk instance that raised this event. + * + * @since ari_2_0_0 + *********************************************************/ + public void setAsterisk_id(String val ){ + throw new UnsupportedOperationException("Method availble from ..."); +}; + +/********************************************************** + * The unique ID for the Asterisk instance that raised this event. + * + * @since ari_2_0_0 + *********************************************************/ + public String getAsterisk_id(){ + throw new UnsupportedOperationException("Method availble from ..."); +}; + } diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_7_0/models/MissingParams_impl_ari_1_7_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_7_0/models/MissingParams_impl_ari_1_7_0.java index d1888fe4..9ed220bf 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_7_0/models/MissingParams_impl_ari_1_7_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_7_0/models/MissingParams_impl_ari_1_7_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Wed Aug 31 18:05:10 CEST 2016 +// Generated on: Sat Feb 04 15:23:09 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_7_0/models/PlaybackFinished_impl_ari_1_7_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_7_0/models/PlaybackFinished_impl_ari_1_7_0.java index a94ac1a8..def2e3a2 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_7_0/models/PlaybackFinished_impl_ari_1_7_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_7_0/models/PlaybackFinished_impl_ari_1_7_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Wed Aug 31 18:05:10 CEST 2016 +// Generated on: Sat Feb 04 15:23:09 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_7_0/models/PlaybackStarted_impl_ari_1_7_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_7_0/models/PlaybackStarted_impl_ari_1_7_0.java index bdca7044..5e2ec367 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_7_0/models/PlaybackStarted_impl_ari_1_7_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_7_0/models/PlaybackStarted_impl_ari_1_7_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Wed Aug 31 18:05:10 CEST 2016 +// Generated on: Sat Feb 04 15:23:09 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_7_0/models/Playback_impl_ari_1_7_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_7_0/models/Playback_impl_ari_1_7_0.java index 3c1fac80..5b122fb8 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_7_0/models/Playback_impl_ari_1_7_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_7_0/models/Playback_impl_ari_1_7_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Wed Aug 31 18:05:10 CEST 2016 +// Generated on: Sat Feb 04 15:23:09 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; @@ -81,7 +81,7 @@ public void setTarget_uri(String val ) { * * @since ari_1_10_0 *********************************************************/ - public void setNext_media_uri(String val ){ + public String getNext_media_uri(){ throw new UnsupportedOperationException("Method availble from ..."); }; @@ -90,7 +90,7 @@ public void setNext_media_uri(String val ){ * * @since ari_1_10_0 *********************************************************/ - public String getNext_media_uri(){ + public void setNext_media_uri(String val ){ throw new UnsupportedOperationException("Method availble from ..."); }; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_7_0/models/RecordingFailed_impl_ari_1_7_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_7_0/models/RecordingFailed_impl_ari_1_7_0.java index 1861d7e1..39b3cf09 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_7_0/models/RecordingFailed_impl_ari_1_7_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_7_0/models/RecordingFailed_impl_ari_1_7_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Wed Aug 31 18:05:10 CEST 2016 +// Generated on: Sat Feb 04 15:23:09 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_7_0/models/RecordingFinished_impl_ari_1_7_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_7_0/models/RecordingFinished_impl_ari_1_7_0.java index 70ab0bf4..45107d26 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_7_0/models/RecordingFinished_impl_ari_1_7_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_7_0/models/RecordingFinished_impl_ari_1_7_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Wed Aug 31 18:05:10 CEST 2016 +// Generated on: Sat Feb 04 15:23:09 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_7_0/models/RecordingStarted_impl_ari_1_7_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_7_0/models/RecordingStarted_impl_ari_1_7_0.java index 31d7db82..f1a3750f 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_7_0/models/RecordingStarted_impl_ari_1_7_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_7_0/models/RecordingStarted_impl_ari_1_7_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Wed Aug 31 18:05:10 CEST 2016 +// Generated on: Sat Feb 04 15:23:09 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_7_0/models/SetId_impl_ari_1_7_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_7_0/models/SetId_impl_ari_1_7_0.java index 53577f84..541f82cf 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_7_0/models/SetId_impl_ari_1_7_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_7_0/models/SetId_impl_ari_1_7_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Wed Aug 31 18:05:10 CEST 2016 +// Generated on: Sat Feb 04 15:23:09 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_7_0/models/Sound_impl_ari_1_7_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_7_0/models/Sound_impl_ari_1_7_0.java index 955853aa..8fd0acbc 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_7_0/models/Sound_impl_ari_1_7_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_7_0/models/Sound_impl_ari_1_7_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Wed Aug 31 18:05:10 CEST 2016 +// Generated on: Sat Feb 04 15:23:09 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_7_0/models/StasisEnd_impl_ari_1_7_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_7_0/models/StasisEnd_impl_ari_1_7_0.java index ddd31a45..676e49a0 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_7_0/models/StasisEnd_impl_ari_1_7_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_7_0/models/StasisEnd_impl_ari_1_7_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Wed Aug 31 18:05:10 CEST 2016 +// Generated on: Sat Feb 04 15:23:09 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_7_0/models/StasisStart_impl_ari_1_7_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_7_0/models/StasisStart_impl_ari_1_7_0.java index ef3037e7..a96492e7 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_7_0/models/StasisStart_impl_ari_1_7_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_7_0/models/StasisStart_impl_ari_1_7_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Wed Aug 31 18:05:10 CEST 2016 +// Generated on: Sat Feb 04 15:23:09 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_7_0/models/StatusInfo_impl_ari_1_7_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_7_0/models/StatusInfo_impl_ari_1_7_0.java index 37ebd7af..77929021 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_7_0/models/StatusInfo_impl_ari_1_7_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_7_0/models/StatusInfo_impl_ari_1_7_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Wed Aug 31 18:05:10 CEST 2016 +// Generated on: Sat Feb 04 15:23:09 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_7_0/models/StoredRecording_impl_ari_1_7_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_7_0/models/StoredRecording_impl_ari_1_7_0.java index a60ab34c..ca30f736 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_7_0/models/StoredRecording_impl_ari_1_7_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_7_0/models/StoredRecording_impl_ari_1_7_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Wed Aug 31 18:05:10 CEST 2016 +// Generated on: Sat Feb 04 15:23:09 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_7_0/models/SystemInfo_impl_ari_1_7_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_7_0/models/SystemInfo_impl_ari_1_7_0.java index 03645f33..efc84af7 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_7_0/models/SystemInfo_impl_ari_1_7_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_7_0/models/SystemInfo_impl_ari_1_7_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Wed Aug 31 18:05:10 CEST 2016 +// Generated on: Sat Feb 04 15:23:09 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_7_0/models/TextMessageReceived_impl_ari_1_7_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_7_0/models/TextMessageReceived_impl_ari_1_7_0.java index 8882b0f6..b43be872 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_7_0/models/TextMessageReceived_impl_ari_1_7_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_7_0/models/TextMessageReceived_impl_ari_1_7_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Wed Aug 31 18:05:10 CEST 2016 +// Generated on: Sat Feb 04 15:23:09 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_7_0/models/TextMessageVariable_impl_ari_1_7_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_7_0/models/TextMessageVariable_impl_ari_1_7_0.java index 0249fa7c..b35702a3 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_7_0/models/TextMessageVariable_impl_ari_1_7_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_7_0/models/TextMessageVariable_impl_ari_1_7_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Wed Aug 31 18:05:10 CEST 2016 +// Generated on: Sat Feb 04 15:23:09 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_7_0/models/TextMessage_impl_ari_1_7_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_7_0/models/TextMessage_impl_ari_1_7_0.java index ce9850ee..8ab324de 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_7_0/models/TextMessage_impl_ari_1_7_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_7_0/models/TextMessage_impl_ari_1_7_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Wed Aug 31 18:05:10 CEST 2016 +// Generated on: Sat Feb 04 15:23:09 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_7_0/models/Variable_impl_ari_1_7_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_7_0/models/Variable_impl_ari_1_7_0.java index a486405d..a6a7700a 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_7_0/models/Variable_impl_ari_1_7_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_7_0/models/Variable_impl_ari_1_7_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Wed Aug 31 18:05:10 CEST 2016 +// Generated on: Sat Feb 04 15:23:09 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_8_0/AriBuilder_impl_ari_1_8_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_8_0/AriBuilder_impl_ari_1_8_0.java index d01bc328..71cecb4f 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_8_0/AriBuilder_impl_ari_1_8_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_8_0/AriBuilder_impl_ari_1_8_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Wed Aug 31 18:05:11 CEST 2016 +// Generated on: Sat Feb 04 15:23:09 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.ari_1_8_0.models.*; @@ -13,6 +13,18 @@ public class AriBuilder_impl_ari_1_8_0 implements AriBuilder { +public ActionAsterisk actionAsterisk() { + return new ActionAsterisk_impl_ari_1_8_0(); + }; + +public ActionDeviceStates actionDeviceStates() { + return new ActionDeviceStates_impl_ari_1_8_0(); + }; + +public ActionBridges actionBridges() { + return new ActionBridges_impl_ari_1_8_0(); + }; + public ActionPlaybacks actionPlaybacks() { return new ActionPlaybacks_impl_ari_1_8_0(); }; @@ -21,12 +33,12 @@ public ActionRecordings actionRecordings() { return new ActionRecordings_impl_ari_1_8_0(); }; -public ActionAsterisk actionAsterisk() { - return new ActionAsterisk_impl_ari_1_8_0(); +public ActionSounds actionSounds() { + return new ActionSounds_impl_ari_1_8_0(); }; -public ActionApplications actionApplications() { - return new ActionApplications_impl_ari_1_8_0(); +public ActionChannels actionChannels() { + return new ActionChannels_impl_ari_1_8_0(); }; public ActionEvents actionEvents() { @@ -37,260 +49,252 @@ public ActionEndpoints actionEndpoints() { return new ActionEndpoints_impl_ari_1_8_0(); }; -public ActionChannels actionChannels() { - return new ActionChannels_impl_ari_1_8_0(); - }; - -public ActionDeviceStates actionDeviceStates() { - return new ActionDeviceStates_impl_ari_1_8_0(); +public ActionApplications actionApplications() { + return new ActionApplications_impl_ari_1_8_0(); }; -public ActionBridges actionBridges() { - return new ActionBridges_impl_ari_1_8_0(); +public ChannelTalkingStarted channelTalkingStarted() { + return new ChannelTalkingStarted_impl_ari_1_8_0(); }; -public ActionSounds actionSounds() { - return new ActionSounds_impl_ari_1_8_0(); +public DeviceStateChanged deviceStateChanged() { + return new DeviceStateChanged_impl_ari_1_8_0(); }; -public StasisStart stasisStart() { - return new StasisStart_impl_ari_1_8_0(); +public ChannelLeftBridge channelLeftBridge() { + return new ChannelLeftBridge_impl_ari_1_8_0(); }; -public BuildInfo buildInfo() { - return new BuildInfo_impl_ari_1_8_0(); +public ChannelUserevent channelUserevent() { + return new ChannelUserevent_impl_ari_1_8_0(); }; -public BridgeBlindTransfer bridgeBlindTransfer() { - return new BridgeBlindTransfer_impl_ari_1_8_0(); +public TextMessage textMessage() { + return new TextMessage_impl_ari_1_8_0(); }; public TextMessageReceived textMessageReceived() { return new TextMessageReceived_impl_ari_1_8_0(); }; -public ChannelHold channelHold() { - return new ChannelHold_impl_ari_1_8_0(); +public ChannelDtmfReceived channelDtmfReceived() { + return new ChannelDtmfReceived_impl_ari_1_8_0(); }; -public StoredRecording storedRecording() { - return new StoredRecording_impl_ari_1_8_0(); +public ChannelDestroyed channelDestroyed() { + return new ChannelDestroyed_impl_ari_1_8_0(); }; -public ChannelUserevent channelUserevent() { - return new ChannelUserevent_impl_ari_1_8_0(); +public BridgeBlindTransfer bridgeBlindTransfer() { + return new BridgeBlindTransfer_impl_ari_1_8_0(); }; -public DialplanCEP dialplanCEP() { - return new DialplanCEP_impl_ari_1_8_0(); +public ChannelHangupRequest channelHangupRequest() { + return new ChannelHangupRequest_impl_ari_1_8_0(); }; -public Sound sound() { - return new Sound_impl_ari_1_8_0(); +public ChannelTalkingFinished channelTalkingFinished() { + return new ChannelTalkingFinished_impl_ari_1_8_0(); }; -public Module module() { - return new Module_impl_ari_1_8_0(); +public EndpointStateChange endpointStateChange() { + return new EndpointStateChange_impl_ari_1_8_0(); }; -public StatusInfo statusInfo() { - return new StatusInfo_impl_ari_1_8_0(); +public BridgeDestroyed bridgeDestroyed() { + return new BridgeDestroyed_impl_ari_1_8_0(); }; -public ChannelVarset channelVarset() { - return new ChannelVarset_impl_ari_1_8_0(); +public RecordingStarted recordingStarted() { + return new RecordingStarted_impl_ari_1_8_0(); }; -public Playback playback() { - return new Playback_impl_ari_1_8_0(); +public StasisEnd stasisEnd() { + return new StasisEnd_impl_ari_1_8_0(); }; -public EndpointStateChange endpointStateChange() { - return new EndpointStateChange_impl_ari_1_8_0(); +public StatusInfo statusInfo() { + return new StatusInfo_impl_ari_1_8_0(); }; -public DeviceStateChanged deviceStateChanged() { - return new DeviceStateChanged_impl_ari_1_8_0(); +public Playback playback() { + return new Playback_impl_ari_1_8_0(); }; -public DeviceState deviceState() { - return new DeviceState_impl_ari_1_8_0(); +public ChannelDialplan channelDialplan() { + return new ChannelDialplan_impl_ari_1_8_0(); }; -public CallerID callerID() { - return new CallerID_impl_ari_1_8_0(); +public TextMessageVariable textMessageVariable() { + return new TextMessageVariable_impl_ari_1_8_0(); }; -public ChannelDestroyed channelDestroyed() { - return new ChannelDestroyed_impl_ari_1_8_0(); +public Sound sound() { + return new Sound_impl_ari_1_8_0(); }; -public Bridge bridge() { - return new Bridge_impl_ari_1_8_0(); +public SetId setId() { + return new SetId_impl_ari_1_8_0(); }; -public Endpoint endpoint() { - return new Endpoint_impl_ari_1_8_0(); +public BridgeMerged bridgeMerged() { + return new BridgeMerged_impl_ari_1_8_0(); }; -public Channel channel() { - return new Channel_impl_ari_1_8_0(); +public ChannelConnectedLine channelConnectedLine() { + return new ChannelConnectedLine_impl_ari_1_8_0(); }; -public StasisEnd stasisEnd() { - return new StasisEnd_impl_ari_1_8_0(); +public PlaybackStarted playbackStarted() { + return new PlaybackStarted_impl_ari_1_8_0(); }; -public SetId setId() { - return new SetId_impl_ari_1_8_0(); +public Module module() { + return new Module_impl_ari_1_8_0(); }; -public ApplicationReplaced applicationReplaced() { - return new ApplicationReplaced_impl_ari_1_8_0(); +public ChannelEnteredBridge channelEnteredBridge() { + return new ChannelEnteredBridge_impl_ari_1_8_0(); }; -public Event event() { - return new Event_impl_ari_1_8_0(); +public Endpoint endpoint() { + return new Endpoint_impl_ari_1_8_0(); }; -public SystemInfo systemInfo() { - return new SystemInfo_impl_ari_1_8_0(); +public DialplanCEP dialplanCEP() { + return new DialplanCEP_impl_ari_1_8_0(); }; -public BridgeCreated bridgeCreated() { - return new BridgeCreated_impl_ari_1_8_0(); +public Channel channel() { + return new Channel_impl_ari_1_8_0(); }; -public ConfigTuple configTuple() { - return new ConfigTuple_impl_ari_1_8_0(); +public Dialed dialed() { + return new Dialed_impl_ari_1_8_0(); }; -public RecordingFailed recordingFailed() { - return new RecordingFailed_impl_ari_1_8_0(); +public FormatLangPair formatLangPair() { + return new FormatLangPair_impl_ari_1_8_0(); }; -public ChannelDialplan channelDialplan() { - return new ChannelDialplan_impl_ari_1_8_0(); +public StoredRecording storedRecording() { + return new StoredRecording_impl_ari_1_8_0(); }; -public RecordingStarted recordingStarted() { - return new RecordingStarted_impl_ari_1_8_0(); +public Variable variable() { + return new Variable_impl_ari_1_8_0(); }; -public ChannelDtmfReceived channelDtmfReceived() { - return new ChannelDtmfReceived_impl_ari_1_8_0(); +public ChannelUnhold channelUnhold() { + return new ChannelUnhold_impl_ari_1_8_0(); }; -public ChannelHangupRequest channelHangupRequest() { - return new ChannelHangupRequest_impl_ari_1_8_0(); +public SystemInfo systemInfo() { + return new SystemInfo_impl_ari_1_8_0(); }; -public BridgeMerged bridgeMerged() { - return new BridgeMerged_impl_ari_1_8_0(); +public Event event() { + return new Event_impl_ari_1_8_0(); }; -public BridgeDestroyed bridgeDestroyed() { - return new BridgeDestroyed_impl_ari_1_8_0(); +public CallerID callerID() { + return new CallerID_impl_ari_1_8_0(); }; -public BridgeAttendedTransfer bridgeAttendedTransfer() { - return new BridgeAttendedTransfer_impl_ari_1_8_0(); +public Application application() { + return new Application_impl_ari_1_8_0(); }; -public Variable variable() { - return new Variable_impl_ari_1_8_0(); +public BridgeAttendedTransfer bridgeAttendedTransfer() { + return new BridgeAttendedTransfer_impl_ari_1_8_0(); }; -public Message message() { - return new Message_impl_ari_1_8_0(); +public ChannelCreated channelCreated() { + return new ChannelCreated_impl_ari_1_8_0(); }; -public ChannelConnectedLine channelConnectedLine() { - return new ChannelConnectedLine_impl_ari_1_8_0(); +public AsteriskInfo asteriskInfo() { + return new AsteriskInfo_impl_ari_1_8_0(); }; public Dial dial() { return new Dial_impl_ari_1_8_0(); }; -public ChannelCallerId channelCallerId() { - return new ChannelCallerId_impl_ari_1_8_0(); - }; - -public Dialed dialed() { - return new Dialed_impl_ari_1_8_0(); +public ConfigInfo configInfo() { + return new ConfigInfo_impl_ari_1_8_0(); }; -public ChannelStateChange channelStateChange() { - return new ChannelStateChange_impl_ari_1_8_0(); +public BuildInfo buildInfo() { + return new BuildInfo_impl_ari_1_8_0(); }; -public PlaybackStarted playbackStarted() { - return new PlaybackStarted_impl_ari_1_8_0(); +public ChannelHold channelHold() { + return new ChannelHold_impl_ari_1_8_0(); }; -public PlaybackFinished playbackFinished() { - return new PlaybackFinished_impl_ari_1_8_0(); +public LiveRecording liveRecording() { + return new LiveRecording_impl_ari_1_8_0(); }; -public FormatLangPair formatLangPair() { - return new FormatLangPair_impl_ari_1_8_0(); +public ConfigTuple configTuple() { + return new ConfigTuple_impl_ari_1_8_0(); }; -public MissingParams missingParams() { - return new MissingParams_impl_ari_1_8_0(); +public RecordingFailed recordingFailed() { + return new RecordingFailed_impl_ari_1_8_0(); }; -public ChannelTalkingFinished channelTalkingFinished() { - return new ChannelTalkingFinished_impl_ari_1_8_0(); +public StasisStart stasisStart() { + return new StasisStart_impl_ari_1_8_0(); }; -public TextMessage textMessage() { - return new TextMessage_impl_ari_1_8_0(); +public BridgeCreated bridgeCreated() { + return new BridgeCreated_impl_ari_1_8_0(); }; -public TextMessageVariable textMessageVariable() { - return new TextMessageVariable_impl_ari_1_8_0(); +public ApplicationReplaced applicationReplaced() { + return new ApplicationReplaced_impl_ari_1_8_0(); }; -public ChannelCreated channelCreated() { - return new ChannelCreated_impl_ari_1_8_0(); +public ChannelVarset channelVarset() { + return new ChannelVarset_impl_ari_1_8_0(); }; -public RecordingFinished recordingFinished() { - return new RecordingFinished_impl_ari_1_8_0(); +public ChannelStateChange channelStateChange() { + return new ChannelStateChange_impl_ari_1_8_0(); }; -public ChannelTalkingStarted channelTalkingStarted() { - return new ChannelTalkingStarted_impl_ari_1_8_0(); +public Message message() { + return new Message_impl_ari_1_8_0(); }; -public Application application() { - return new Application_impl_ari_1_8_0(); +public MissingParams missingParams() { + return new MissingParams_impl_ari_1_8_0(); }; -public ChannelLeftBridge channelLeftBridge() { - return new ChannelLeftBridge_impl_ari_1_8_0(); +public Bridge bridge() { + return new Bridge_impl_ari_1_8_0(); }; -public ConfigInfo configInfo() { - return new ConfigInfo_impl_ari_1_8_0(); +public DeviceState deviceState() { + return new DeviceState_impl_ari_1_8_0(); }; -public ChannelUnhold channelUnhold() { - return new ChannelUnhold_impl_ari_1_8_0(); +public RecordingFinished recordingFinished() { + return new RecordingFinished_impl_ari_1_8_0(); }; -public ChannelEnteredBridge channelEnteredBridge() { - return new ChannelEnteredBridge_impl_ari_1_8_0(); +public ChannelCallerId channelCallerId() { + return new ChannelCallerId_impl_ari_1_8_0(); }; -public AsteriskInfo asteriskInfo() { - return new AsteriskInfo_impl_ari_1_8_0(); +public PlaybackFinished playbackFinished() { + return new PlaybackFinished_impl_ari_1_8_0(); }; -public LiveRecording liveRecording() { - return new LiveRecording_impl_ari_1_8_0(); +public BridgeVideoSourceChanged bridgeVideoSourceChanged() { + throw new UnsupportedOperationException(); }; public ContactInfo contactInfo() { diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_8_0/ClassTranslator_impl_ari_1_8_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_8_0/ClassTranslator_impl_ari_1_8_0.java index b3a60bce..207bbb58 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_8_0/ClassTranslator_impl_ari_1_8_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_8_0/ClassTranslator_impl_ari_1_8_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Wed Aug 31 18:05:11 CEST 2016 +// Generated on: Sat Feb 04 15:23:09 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.ARI; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_8_0/actions/ActionApplications_impl_ari_1_8_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_8_0/actions/ActionApplications_impl_ari_1_8_0.java index fbd3efba..b2a6c20a 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_8_0/actions/ActionApplications_impl_ari_1_8_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_8_0/actions/ActionApplications_impl_ari_1_8_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Wed Aug 31 18:05:11 CEST 2016 +// Generated on: Sat Feb 04 15:23:09 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_8_0/actions/ActionAsterisk_impl_ari_1_8_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_8_0/actions/ActionAsterisk_impl_ari_1_8_0.java index 11ad9eb0..2a71766d 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_8_0/actions/ActionAsterisk_impl_ari_1_8_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_8_0/actions/ActionAsterisk_impl_ari_1_8_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Wed Aug 31 18:05:11 CEST 2016 +// Generated on: Sat Feb 04 15:23:09 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; @@ -309,21 +309,22 @@ public void setGlobalVar(String variable, String value, AriCallback callba } /********************************************************** + * Rotates a log channel. * * * @since ari_1_9_0 *********************************************************/ -public void addLog(String logChannelName, String configuration, AriCallback callback){ +public void rotateLog(String logChannelName) throws RestException{ throw new UnsupportedOperationException("Method availble from ..."); }; /********************************************************** - * Gets Asterisk log channel information. + * Deletes a log channel. * * * @since ari_1_9_0 *********************************************************/ -public List listLogChannels() throws RestException{ +public void deleteLog(String logChannelName) throws RestException{ throw new UnsupportedOperationException("Method availble from ..."); }; @@ -337,21 +338,21 @@ public void rotateLog(String logChannelName, AriCallback callback){ }; /********************************************************** - * Rotates a log channel. * * * @since ari_1_9_0 *********************************************************/ -public void rotateLog(String logChannelName) throws RestException{ +public void addLog(String logChannelName, String configuration, AriCallback callback){ throw new UnsupportedOperationException("Method availble from ..."); }; /********************************************************** + * Gets Asterisk log channel information. * * * @since ari_1_9_0 *********************************************************/ -public void listLogChannels(AriCallback> callback){ +public List listLogChannels() throws RestException{ throw new UnsupportedOperationException("Method availble from ..."); }; @@ -366,12 +367,11 @@ public void addLog(String logChannelName, String configuration) throws RestExcep }; /********************************************************** - * Deletes a log channel. * * * @since ari_1_9_0 *********************************************************/ -public void deleteLog(String logChannelName) throws RestException{ +public void listLogChannels(AriCallback> callback){ throw new UnsupportedOperationException("Method availble from ..."); }; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_8_0/actions/ActionBridges_impl_ari_1_8_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_8_0/actions/ActionBridges_impl_ari_1_8_0.java index da171958..a92dee2d 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_8_0/actions/ActionBridges_impl_ari_1_8_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_8_0/actions/ActionBridges_impl_ari_1_8_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Wed Aug 31 18:05:11 CEST 2016 +// Generated on: Sat Feb 04 15:23:09 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; @@ -364,12 +364,22 @@ public void removeChannel(String bridgeId, String channel, AriCallback cal httpActionAsync(callback); } +/********************************************************** + * Start playback of media on a bridge. + * The media URI may be any of a number of URI's. Currently sound: and recording: URI's are supported. This operation creates a playback resource that can be used to control the playback of media (pause, rewind, fast forward, etc.) + * + * @since ari_0_0_1 + *********************************************************/ +public Playback play(String bridgeId, String media, String lang, int offsetms, int skipms) throws RestException{ + throw new UnsupportedOperationException("Method availble from ..."); +}; + /********************************************************** * * * @since ari_0_0_1 *********************************************************/ -public void create(String type, AriCallback callback){ +public void play(String bridgeId, String media, String lang, int offsetms, int skipms, AriCallback callback){ throw new UnsupportedOperationException("Method availble from ..."); }; @@ -383,6 +393,35 @@ public Bridge create(String type, String name) throws RestException{ throw new UnsupportedOperationException("Method availble from ..."); }; +/********************************************************** + * + * + * @since ari_1_5_0 + *********************************************************/ +public void create_or_update_with_id(String type, String bridgeId, String name, AriCallback callback){ + throw new UnsupportedOperationException("Method availble from ..."); +}; + +/********************************************************** + * Set a channel as the video source in a multi-party mixing bridge. This operation has no effect on bridges with two or fewer participants. + * + * + * @since ari_2_0_0 + *********************************************************/ +public void setVideoSource(String bridgeId, String channelId) throws RestException{ + throw new UnsupportedOperationException("Method availble from ..."); +}; + +/********************************************************** + * Create a new bridge or updates an existing one. + * This bridge persists until it has been shut down, or Asterisk has been shut down. + * + * @since ari_1_5_0 + *********************************************************/ +public Bridge create_or_update_with_id(String type, String bridgeId, String name) throws RestException{ + throw new UnsupportedOperationException("Method availble from ..."); +}; + /********************************************************** * Create a new bridge. * This bridge persists until it has been shut down, or Asterisk has been shut down. @@ -394,49 +433,48 @@ public Bridge create(String type) throws RestException{ }; /********************************************************** + * Removes any explicit video source in a multi-party mixing bridge. This operation has no effect on bridges with two or fewer participants. When no explicit video source is set, talk detection will be used to determine the active video stream. * * - * @since ari_0_0_1 + * @since ari_2_0_0 *********************************************************/ -public void play(String bridgeId, String media, String lang, int offsetms, int skipms, AriCallback callback){ +public void clearVideoSource(String bridgeId) throws RestException{ throw new UnsupportedOperationException("Method availble from ..."); }; /********************************************************** - * Start playback of media on a bridge. - * The media URI may be any of a number of URI's. Currently sound: and recording: URI's are supported. This operation creates a playback resource that can be used to control the playback of media (pause, rewind, fast forward, etc.) + * * * @since ari_0_0_1 *********************************************************/ -public Playback play(String bridgeId, String media, String lang, int offsetms, int skipms) throws RestException{ +public void create(String type, AriCallback callback){ throw new UnsupportedOperationException("Method availble from ..."); }; /********************************************************** * * - * @since ari_1_0_0 + * @since ari_2_0_0 *********************************************************/ -public void create(String type, String name, AriCallback callback){ +public void setVideoSource(String bridgeId, String channelId, AriCallback callback){ throw new UnsupportedOperationException("Method availble from ..."); }; /********************************************************** * * - * @since ari_1_5_0 + * @since ari_1_0_0 *********************************************************/ -public void create_or_update_with_id(String type, String bridgeId, String name, AriCallback callback){ +public void create(String type, String name, AriCallback callback){ throw new UnsupportedOperationException("Method availble from ..."); }; /********************************************************** - * Create a new bridge or updates an existing one. - * This bridge persists until it has been shut down, or Asterisk has been shut down. * - * @since ari_1_5_0 + * + * @since ari_2_0_0 *********************************************************/ -public Bridge create_or_update_with_id(String type, String bridgeId, String name) throws RestException{ +public void clearVideoSource(String bridgeId, AriCallback callback){ throw new UnsupportedOperationException("Method availble from ..."); }; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_8_0/actions/ActionChannels_impl_ari_1_8_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_8_0/actions/ActionChannels_impl_ari_1_8_0.java index 1fcf9a1a..abfa9b6d 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_8_0/actions/ActionChannels_impl_ari_1_8_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_8_0/actions/ActionChannels_impl_ari_1_8_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Wed Aug 31 18:05:11 CEST 2016 +// Generated on: Sat Feb 04 15:23:09 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; @@ -766,39 +766,40 @@ public void setChannelVar(String channelId, String variable, String value, AriCa } /********************************************************** - * + * Create a new channel (originate with id). + * The new channel is created immediately and a snapshot of it returned. If a Stasis application is provided it will be automatically subscribed to the originated channel for further events and updates. * * @since ari_1_5_0 *********************************************************/ -public void originateWithId(String channelId, String endpoint, String extension, String context, long priority, String app, String appArgs, String callerId, int timeout, Map variables, String otherChannelId, AriCallback callback){ +public Channel originateWithId(String channelId, String endpoint, String extension, String context, long priority, String app, String appArgs, String callerId, int timeout, Map variables, String otherChannelId) throws RestException{ throw new UnsupportedOperationException("Method availble from ..."); }; /********************************************************** + * Start snooping. + * Snoop (spy/whisper) on a specific channel. * - * - * @since ari_1_10_0 + * @since ari_0_0_1 *********************************************************/ -public void dial(String channelId, String caller, int timeout, AriCallback callback){ +public Channel snoopChannel(String channelId, String spy, String whisper, String app, String appArgs) throws RestException{ throw new UnsupportedOperationException("Method availble from ..."); }; /********************************************************** * * - * @since ari_0_0_1 + * @since ari_1_10_0 *********************************************************/ -public void snoopChannel(String channelId, String spy, String whisper, String app, String appArgs, AriCallback callback){ +public void dial(String channelId, String caller, int timeout, AriCallback callback){ throw new UnsupportedOperationException("Method availble from ..."); }; /********************************************************** - * Dial a created channel. * * - * @since ari_1_10_0 + * @since ari_1_5_0 *********************************************************/ -public void dial(String channelId, String caller, int timeout) throws RestException{ +public void originate(String endpoint, String extension, String context, long priority, String app, String appArgs, String callerId, int timeout, Map variables, String channelId, String otherChannelId, AriCallback callback){ throw new UnsupportedOperationException("Method availble from ..."); }; @@ -831,52 +832,49 @@ public Playback play(String channelId, String media, String lang, int offsetms, }; /********************************************************** - * Exit application{ - throw new UnsupportedOperationException("Method availble from ..."); -}; continue execution in the dialplan. * * * @since ari_0_0_1 *********************************************************/ -public void continueInDialplan(String channelId, String context, String extension, int priority) throws RestException{ +public void play(String channelId, String media, String lang, int offsetms, int skipms, AriCallback callback){ throw new UnsupportedOperationException("Method availble from ..."); }; /********************************************************** - * Create a new channel (originate). - * The new channel is created immediately and a snapshot of it returned. If a Stasis application is provided it will be automatically subscribed to the originated channel for further events and updates. * - * @since ari_1_10_0 + * + * @since ari_0_0_1 *********************************************************/ -public Channel originate(String endpoint, String extension, String context, long priority, String label, String app, String appArgs, String callerId, int timeout, Map variables, String channelId, String otherChannelId, String originator, String formats) throws RestException{ +public void snoopChannel(String channelId, String spy, String whisper, String app, String appArgs, AriCallback callback){ throw new UnsupportedOperationException("Method availble from ..."); }; /********************************************************** * * - * @since ari_0_0_1 + * @since ari_1_5_0 *********************************************************/ -public void originate(String endpoint, String extension, String context, long priority, String app, String appArgs, String callerId, int timeout, AriCallback callback){ +public void originateWithId(String channelId, String endpoint, String extension, String context, long priority, String app, String appArgs, String callerId, int timeout, Map variables, String otherChannelId, AriCallback callback){ throw new UnsupportedOperationException("Method availble from ..."); }; /********************************************************** - * Create channel. - * + * Create a new channel (originate). + * The new channel is created immediately and a snapshot of it returned. If a Stasis application is provided it will be automatically subscribed to the originated channel for further events and updates. * * @since ari_1_10_0 *********************************************************/ -public Channel create(String endpoint, String app, String appArgs, String channelId, String otherChannelId, String originator, String formats) throws RestException{ +public Channel originate(String endpoint, String extension, String context, long priority, String label, String app, String appArgs, String callerId, int timeout, Map variables, String channelId, String otherChannelId, String originator, String formats) throws RestException{ throw new UnsupportedOperationException("Method availble from ..."); }; /********************************************************** + * Create a new channel (originate with id). + * The new channel is created immediately and a snapshot of it returned. If a Stasis application is provided it will be automatically subscribed to the originated channel for further events and updates. * - * - * @since ari_1_5_0 + * @since ari_1_10_0 *********************************************************/ -public void originate(String endpoint, String extension, String context, long priority, String app, String appArgs, String callerId, int timeout, Map variables, String channelId, String otherChannelId, AriCallback callback){ +public Channel originateWithId(String channelId, String endpoint, String extension, String context, long priority, String label, String app, String appArgs, String callerId, int timeout, Map variables, String otherChannelId, String originator, String formats) throws RestException{ throw new UnsupportedOperationException("Method availble from ..."); }; @@ -891,69 +889,71 @@ public Channel originate(String endpoint, String extension, String context, long }; /********************************************************** - * Create a new channel (originate with id). - * The new channel is created immediately and a snapshot of it returned. If a Stasis application is provided it will be automatically subscribed to the originated channel for further events and updates. + * Dial a created channel. * - * @since ari_1_5_0 + * + * @since ari_1_10_0 *********************************************************/ -public Channel originateWithId(String channelId, String endpoint, String extension, String context, long priority, String app, String appArgs, String callerId, int timeout, Map variables, String otherChannelId) throws RestException{ +public void dial(String channelId, String caller, int timeout) throws RestException{ throw new UnsupportedOperationException("Method availble from ..."); }; /********************************************************** - * Create a new channel (originate with id). - * The new channel is created immediately and a snapshot of it returned. If a Stasis application is provided it will be automatically subscribed to the originated channel for further events and updates. + * * * @since ari_1_10_0 *********************************************************/ -public Channel originateWithId(String channelId, String endpoint, String extension, String context, long priority, String label, String app, String appArgs, String callerId, int timeout, Map variables, String otherChannelId, String originator, String formats) throws RestException{ +public void create(String endpoint, String app, String appArgs, String channelId, String otherChannelId, String originator, String formats, AriCallback callback){ throw new UnsupportedOperationException("Method availble from ..."); }; /********************************************************** + * Create channel. * * * @since ari_1_10_0 *********************************************************/ -public void create(String endpoint, String app, String appArgs, String channelId, String otherChannelId, String originator, String formats, AriCallback callback){ +public Channel create(String endpoint, String app, String appArgs, String channelId, String otherChannelId, String originator, String formats) throws RestException{ throw new UnsupportedOperationException("Method availble from ..."); }; /********************************************************** - * Create a new channel (originate). - * The new channel is created immediately and a snapshot of it returned. If a Stasis application is provided it will be automatically subscribed to the originated channel for further events and updates. + * Exit application{ + throw new UnsupportedOperationException("Method availble from ..."); +}; continue execution in the dialplan. * - * @since ari_1_5_0 + * + * @since ari_0_0_1 *********************************************************/ -public Channel originate(String endpoint, String extension, String context, long priority, String app, String appArgs, String callerId, int timeout, Map variables, String channelId, String otherChannelId) throws RestException{ +public void continueInDialplan(String channelId, String context, String extension, int priority) throws RestException{ throw new UnsupportedOperationException("Method availble from ..."); }; /********************************************************** * * - * @since ari_0_0_1 + * @since ari_1_10_0 *********************************************************/ -public void play(String channelId, String media, String lang, int offsetms, int skipms, AriCallback callback){ +public void originate(String endpoint, String extension, String context, long priority, String label, String app, String appArgs, String callerId, int timeout, Map variables, String channelId, String otherChannelId, String originator, String formats, AriCallback callback){ throw new UnsupportedOperationException("Method availble from ..."); }; /********************************************************** - * Start snooping. - * Snoop (spy/whisper) on a specific channel. + * Create a new channel (originate). + * The new channel is created immediately and a snapshot of it returned. If a Stasis application is provided it will be automatically subscribed to the originated channel for further events and updates. * - * @since ari_0_0_1 + * @since ari_1_5_0 *********************************************************/ -public Channel snoopChannel(String channelId, String spy, String whisper, String app, String appArgs) throws RestException{ +public Channel originate(String endpoint, String extension, String context, long priority, String app, String appArgs, String callerId, int timeout, Map variables, String channelId, String otherChannelId) throws RestException{ throw new UnsupportedOperationException("Method availble from ..."); }; /********************************************************** * * - * @since ari_1_10_0 + * @since ari_0_0_1 *********************************************************/ -public void originate(String endpoint, String extension, String context, long priority, String label, String app, String appArgs, String callerId, int timeout, Map variables, String channelId, String otherChannelId, String originator, String formats, AriCallback callback){ +public void originate(String endpoint, String extension, String context, long priority, String app, String appArgs, String callerId, int timeout, AriCallback callback){ throw new UnsupportedOperationException("Method availble from ..."); }; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_8_0/actions/ActionDeviceStates_impl_ari_1_8_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_8_0/actions/ActionDeviceStates_impl_ari_1_8_0.java index ffc3c87d..ad0c1857 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_8_0/actions/ActionDeviceStates_impl_ari_1_8_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_8_0/actions/ActionDeviceStates_impl_ari_1_8_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Wed Aug 31 18:05:11 CEST 2016 +// Generated on: Sat Feb 04 15:23:09 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_8_0/actions/ActionEndpoints_impl_ari_1_8_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_8_0/actions/ActionEndpoints_impl_ari_1_8_0.java index 9723e1ce..801d57e8 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_8_0/actions/ActionEndpoints_impl_ari_1_8_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_8_0/actions/ActionEndpoints_impl_ari_1_8_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Wed Aug 31 18:05:11 CEST 2016 +// Generated on: Sat Feb 04 15:23:09 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_8_0/actions/ActionEvents_impl_ari_1_8_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_8_0/actions/ActionEvents_impl_ari_1_8_0.java index 107dde34..94a7891c 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_8_0/actions/ActionEvents_impl_ari_1_8_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_8_0/actions/ActionEvents_impl_ari_1_8_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Wed Aug 31 18:05:11 CEST 2016 +// Generated on: Sat Feb 04 15:23:09 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; @@ -80,21 +80,21 @@ public void userEvent(String eventName, String application, String source, Map callback){ +public Message eventWebsocket(String app, boolean subscribeAll) throws RestException{ throw new UnsupportedOperationException("Method availble from ..."); }; /********************************************************** - * WebSocket connection for events. * * * @since ari_1_9_0 *********************************************************/ -public Message eventWebsocket(String app, boolean subscribeAll) throws RestException{ +public void eventWebsocket(String app, boolean subscribeAll, AriCallback callback){ throw new UnsupportedOperationException("Method availble from ..."); }; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_8_0/actions/ActionPlaybacks_impl_ari_1_8_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_8_0/actions/ActionPlaybacks_impl_ari_1_8_0.java index 99f98a53..e9be2ea7 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_8_0/actions/ActionPlaybacks_impl_ari_1_8_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_8_0/actions/ActionPlaybacks_impl_ari_1_8_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Wed Aug 31 18:05:11 CEST 2016 +// Generated on: Sat Feb 04 15:23:09 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_8_0/actions/ActionRecordings_impl_ari_1_8_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_8_0/actions/ActionRecordings_impl_ari_1_8_0.java index 6dc142f2..546ce150 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_8_0/actions/ActionRecordings_impl_ari_1_8_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_8_0/actions/ActionRecordings_impl_ari_1_8_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Wed Aug 31 18:05:11 CEST 2016 +// Generated on: Sat Feb 04 15:23:09 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_8_0/actions/ActionSounds_impl_ari_1_8_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_8_0/actions/ActionSounds_impl_ari_1_8_0.java index 8d9cd06c..c1c105f2 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_8_0/actions/ActionSounds_impl_ari_1_8_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_8_0/actions/ActionSounds_impl_ari_1_8_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Wed Aug 31 18:05:11 CEST 2016 +// Generated on: Sat Feb 04 15:23:09 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_8_0/models/ApplicationReplaced_impl_ari_1_8_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_8_0/models/ApplicationReplaced_impl_ari_1_8_0.java index 54401a8d..ee8f46f1 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_8_0/models/ApplicationReplaced_impl_ari_1_8_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_8_0/models/ApplicationReplaced_impl_ari_1_8_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Wed Aug 31 18:05:10 CEST 2016 +// Generated on: Sat Feb 04 15:23:09 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_8_0/models/Application_impl_ari_1_8_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_8_0/models/Application_impl_ari_1_8_0.java index b5c9464d..2a0c672f 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_8_0/models/Application_impl_ari_1_8_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_8_0/models/Application_impl_ari_1_8_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Wed Aug 31 18:05:10 CEST 2016 +// Generated on: Sat Feb 04 15:23:09 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_8_0/models/AsteriskInfo_impl_ari_1_8_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_8_0/models/AsteriskInfo_impl_ari_1_8_0.java index bb3e7087..44eb6792 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_8_0/models/AsteriskInfo_impl_ari_1_8_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_8_0/models/AsteriskInfo_impl_ari_1_8_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Wed Aug 31 18:05:10 CEST 2016 +// Generated on: Sat Feb 04 15:23:09 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_8_0/models/BridgeAttendedTransfer_impl_ari_1_8_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_8_0/models/BridgeAttendedTransfer_impl_ari_1_8_0.java index dbba50db..90efb289 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_8_0/models/BridgeAttendedTransfer_impl_ari_1_8_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_8_0/models/BridgeAttendedTransfer_impl_ari_1_8_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Wed Aug 31 18:05:10 CEST 2016 +// Generated on: Sat Feb 04 15:23:09 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_8_0/models/BridgeBlindTransfer_impl_ari_1_8_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_8_0/models/BridgeBlindTransfer_impl_ari_1_8_0.java index f5c9a2fe..701e6dca 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_8_0/models/BridgeBlindTransfer_impl_ari_1_8_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_8_0/models/BridgeBlindTransfer_impl_ari_1_8_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Wed Aug 31 18:05:10 CEST 2016 +// Generated on: Sat Feb 04 15:23:09 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_8_0/models/BridgeCreated_impl_ari_1_8_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_8_0/models/BridgeCreated_impl_ari_1_8_0.java index 082d5169..eb9293ce 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_8_0/models/BridgeCreated_impl_ari_1_8_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_8_0/models/BridgeCreated_impl_ari_1_8_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Wed Aug 31 18:05:10 CEST 2016 +// Generated on: Sat Feb 04 15:23:09 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_8_0/models/BridgeDestroyed_impl_ari_1_8_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_8_0/models/BridgeDestroyed_impl_ari_1_8_0.java index b2473867..8308bd3d 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_8_0/models/BridgeDestroyed_impl_ari_1_8_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_8_0/models/BridgeDestroyed_impl_ari_1_8_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Wed Aug 31 18:05:10 CEST 2016 +// Generated on: Sat Feb 04 15:23:09 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_8_0/models/BridgeMerged_impl_ari_1_8_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_8_0/models/BridgeMerged_impl_ari_1_8_0.java index cb396b71..f17b505c 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_8_0/models/BridgeMerged_impl_ari_1_8_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_8_0/models/BridgeMerged_impl_ari_1_8_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Wed Aug 31 18:05:10 CEST 2016 +// Generated on: Sat Feb 04 15:23:09 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_8_0/models/Bridge_impl_ari_1_8_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_8_0/models/Bridge_impl_ari_1_8_0.java index 28c05ed4..262ad5c3 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_8_0/models/Bridge_impl_ari_1_8_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_8_0/models/Bridge_impl_ari_1_8_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Wed Aug 31 18:05:10 CEST 2016 +// Generated on: Sat Feb 04 15:23:09 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; @@ -100,6 +100,41 @@ public void setTechnology(String val ) { technology = val; } -/** No missing signatures from interface */ +/********************************************************** + * The video mode the bridge is using. One of 'none', 'talker', or 'single'. + * + * @since ari_2_0_0 + *********************************************************/ + public String getVideo_mode(){ + throw new UnsupportedOperationException("Method availble from ..."); +}; + +/********************************************************** + * The ID of the channel that is the source of video in this bridge, if one exists. + * + * @since ari_2_0_0 + *********************************************************/ + public String getVideo_source_id(){ + throw new UnsupportedOperationException("Method availble from ..."); +}; + +/********************************************************** + * The video mode the bridge is using. One of 'none', 'talker', or 'single'. + * + * @since ari_2_0_0 + *********************************************************/ + public void setVideo_mode(String val ){ + throw new UnsupportedOperationException("Method availble from ..."); +}; + +/********************************************************** + * The ID of the channel that is the source of video in this bridge, if one exists. + * + * @since ari_2_0_0 + *********************************************************/ + public void setVideo_source_id(String val ){ + throw new UnsupportedOperationException("Method availble from ..."); +}; + } diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_8_0/models/BuildInfo_impl_ari_1_8_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_8_0/models/BuildInfo_impl_ari_1_8_0.java index 91916b40..cb4c6f75 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_8_0/models/BuildInfo_impl_ari_1_8_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_8_0/models/BuildInfo_impl_ari_1_8_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Wed Aug 31 18:05:10 CEST 2016 +// Generated on: Sat Feb 04 15:23:09 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_8_0/models/CallerID_impl_ari_1_8_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_8_0/models/CallerID_impl_ari_1_8_0.java index 4f8f27ef..b976d3c6 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_8_0/models/CallerID_impl_ari_1_8_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_8_0/models/CallerID_impl_ari_1_8_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Wed Aug 31 18:05:10 CEST 2016 +// Generated on: Sat Feb 04 15:23:09 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_8_0/models/ChannelCallerId_impl_ari_1_8_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_8_0/models/ChannelCallerId_impl_ari_1_8_0.java index ec82d98a..f0d7a741 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_8_0/models/ChannelCallerId_impl_ari_1_8_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_8_0/models/ChannelCallerId_impl_ari_1_8_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Wed Aug 31 18:05:10 CEST 2016 +// Generated on: Sat Feb 04 15:23:09 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_8_0/models/ChannelConnectedLine_impl_ari_1_8_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_8_0/models/ChannelConnectedLine_impl_ari_1_8_0.java index c0107eae..b769f81a 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_8_0/models/ChannelConnectedLine_impl_ari_1_8_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_8_0/models/ChannelConnectedLine_impl_ari_1_8_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Wed Aug 31 18:05:10 CEST 2016 +// Generated on: Sat Feb 04 15:23:09 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_8_0/models/ChannelCreated_impl_ari_1_8_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_8_0/models/ChannelCreated_impl_ari_1_8_0.java index 79675a82..2e1df585 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_8_0/models/ChannelCreated_impl_ari_1_8_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_8_0/models/ChannelCreated_impl_ari_1_8_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Wed Aug 31 18:05:10 CEST 2016 +// Generated on: Sat Feb 04 15:23:09 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_8_0/models/ChannelDestroyed_impl_ari_1_8_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_8_0/models/ChannelDestroyed_impl_ari_1_8_0.java index 7e4d5f51..f47430ec 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_8_0/models/ChannelDestroyed_impl_ari_1_8_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_8_0/models/ChannelDestroyed_impl_ari_1_8_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Wed Aug 31 18:05:10 CEST 2016 +// Generated on: Sat Feb 04 15:23:09 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_8_0/models/ChannelDialplan_impl_ari_1_8_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_8_0/models/ChannelDialplan_impl_ari_1_8_0.java index 2d611aab..8b03c506 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_8_0/models/ChannelDialplan_impl_ari_1_8_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_8_0/models/ChannelDialplan_impl_ari_1_8_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Wed Aug 31 18:05:10 CEST 2016 +// Generated on: Sat Feb 04 15:23:09 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_8_0/models/ChannelDtmfReceived_impl_ari_1_8_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_8_0/models/ChannelDtmfReceived_impl_ari_1_8_0.java index 940a3616..40e4e86a 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_8_0/models/ChannelDtmfReceived_impl_ari_1_8_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_8_0/models/ChannelDtmfReceived_impl_ari_1_8_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Wed Aug 31 18:05:10 CEST 2016 +// Generated on: Sat Feb 04 15:23:09 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_8_0/models/ChannelEnteredBridge_impl_ari_1_8_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_8_0/models/ChannelEnteredBridge_impl_ari_1_8_0.java index dbdd9184..a23c3edf 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_8_0/models/ChannelEnteredBridge_impl_ari_1_8_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_8_0/models/ChannelEnteredBridge_impl_ari_1_8_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Wed Aug 31 18:05:10 CEST 2016 +// Generated on: Sat Feb 04 15:23:09 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_8_0/models/ChannelHangupRequest_impl_ari_1_8_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_8_0/models/ChannelHangupRequest_impl_ari_1_8_0.java index 399e1e06..e0e525a7 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_8_0/models/ChannelHangupRequest_impl_ari_1_8_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_8_0/models/ChannelHangupRequest_impl_ari_1_8_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Wed Aug 31 18:05:10 CEST 2016 +// Generated on: Sat Feb 04 15:23:09 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_8_0/models/ChannelHold_impl_ari_1_8_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_8_0/models/ChannelHold_impl_ari_1_8_0.java index 04e64a47..e170d038 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_8_0/models/ChannelHold_impl_ari_1_8_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_8_0/models/ChannelHold_impl_ari_1_8_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Wed Aug 31 18:05:10 CEST 2016 +// Generated on: Sat Feb 04 15:23:09 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_8_0/models/ChannelLeftBridge_impl_ari_1_8_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_8_0/models/ChannelLeftBridge_impl_ari_1_8_0.java index 5eb22a9e..03f549b9 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_8_0/models/ChannelLeftBridge_impl_ari_1_8_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_8_0/models/ChannelLeftBridge_impl_ari_1_8_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Wed Aug 31 18:05:10 CEST 2016 +// Generated on: Sat Feb 04 15:23:09 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_8_0/models/ChannelStateChange_impl_ari_1_8_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_8_0/models/ChannelStateChange_impl_ari_1_8_0.java index 291672ef..7804bbc1 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_8_0/models/ChannelStateChange_impl_ari_1_8_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_8_0/models/ChannelStateChange_impl_ari_1_8_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Wed Aug 31 18:05:10 CEST 2016 +// Generated on: Sat Feb 04 15:23:09 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_8_0/models/ChannelTalkingFinished_impl_ari_1_8_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_8_0/models/ChannelTalkingFinished_impl_ari_1_8_0.java index 20f329aa..4cade731 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_8_0/models/ChannelTalkingFinished_impl_ari_1_8_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_8_0/models/ChannelTalkingFinished_impl_ari_1_8_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Wed Aug 31 18:05:10 CEST 2016 +// Generated on: Sat Feb 04 15:23:09 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_8_0/models/ChannelTalkingStarted_impl_ari_1_8_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_8_0/models/ChannelTalkingStarted_impl_ari_1_8_0.java index d8974bbb..7863fa7c 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_8_0/models/ChannelTalkingStarted_impl_ari_1_8_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_8_0/models/ChannelTalkingStarted_impl_ari_1_8_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Wed Aug 31 18:05:10 CEST 2016 +// Generated on: Sat Feb 04 15:23:09 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_8_0/models/ChannelUnhold_impl_ari_1_8_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_8_0/models/ChannelUnhold_impl_ari_1_8_0.java index c9233884..6b9b89f5 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_8_0/models/ChannelUnhold_impl_ari_1_8_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_8_0/models/ChannelUnhold_impl_ari_1_8_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Wed Aug 31 18:05:10 CEST 2016 +// Generated on: Sat Feb 04 15:23:09 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_8_0/models/ChannelUserevent_impl_ari_1_8_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_8_0/models/ChannelUserevent_impl_ari_1_8_0.java index 4ed0b4ed..e6be1429 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_8_0/models/ChannelUserevent_impl_ari_1_8_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_8_0/models/ChannelUserevent_impl_ari_1_8_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Wed Aug 31 18:05:10 CEST 2016 +// Generated on: Sat Feb 04 15:23:09 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_8_0/models/ChannelVarset_impl_ari_1_8_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_8_0/models/ChannelVarset_impl_ari_1_8_0.java index 63251eb9..0028ad92 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_8_0/models/ChannelVarset_impl_ari_1_8_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_8_0/models/ChannelVarset_impl_ari_1_8_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Wed Aug 31 18:05:10 CEST 2016 +// Generated on: Sat Feb 04 15:23:09 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_8_0/models/Channel_impl_ari_1_8_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_8_0/models/Channel_impl_ari_1_8_0.java index 24366085..fe8f9920 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_8_0/models/Channel_impl_ari_1_8_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_8_0/models/Channel_impl_ari_1_8_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Wed Aug 31 18:05:10 CEST 2016 +// Generated on: Sat Feb 04 15:23:09 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; @@ -122,6 +122,23 @@ public void setState(String val ) { state = val; } -/** No missing signatures from interface */ +/********************************************************** + * Channel variables + * + * @since ari_2_0_0 + *********************************************************/ + public String getChannelvars(){ + throw new UnsupportedOperationException("Method availble from ..."); +}; + +/********************************************************** + * Channel variables + * + * @since ari_2_0_0 + *********************************************************/ + public void setChannelvars(String val ){ + throw new UnsupportedOperationException("Method availble from ..."); +}; + } diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_8_0/models/ConfigInfo_impl_ari_1_8_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_8_0/models/ConfigInfo_impl_ari_1_8_0.java index e0163bc4..b54d6486 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_8_0/models/ConfigInfo_impl_ari_1_8_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_8_0/models/ConfigInfo_impl_ari_1_8_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Wed Aug 31 18:05:10 CEST 2016 +// Generated on: Sat Feb 04 15:23:09 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_8_0/models/ConfigTuple_impl_ari_1_8_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_8_0/models/ConfigTuple_impl_ari_1_8_0.java index 85ece380..a05cd88f 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_8_0/models/ConfigTuple_impl_ari_1_8_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_8_0/models/ConfigTuple_impl_ari_1_8_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Wed Aug 31 18:05:10 CEST 2016 +// Generated on: Sat Feb 04 15:23:09 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_8_0/models/DeviceStateChanged_impl_ari_1_8_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_8_0/models/DeviceStateChanged_impl_ari_1_8_0.java index ad471cd4..8ea859fd 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_8_0/models/DeviceStateChanged_impl_ari_1_8_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_8_0/models/DeviceStateChanged_impl_ari_1_8_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Wed Aug 31 18:05:10 CEST 2016 +// Generated on: Sat Feb 04 15:23:09 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_8_0/models/DeviceState_impl_ari_1_8_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_8_0/models/DeviceState_impl_ari_1_8_0.java index ece24a6b..76957251 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_8_0/models/DeviceState_impl_ari_1_8_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_8_0/models/DeviceState_impl_ari_1_8_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Wed Aug 31 18:05:10 CEST 2016 +// Generated on: Sat Feb 04 15:23:09 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_8_0/models/Dial_impl_ari_1_8_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_8_0/models/Dial_impl_ari_1_8_0.java index a5109085..0f12fc12 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_8_0/models/Dial_impl_ari_1_8_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_8_0/models/Dial_impl_ari_1_8_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Wed Aug 31 18:05:10 CEST 2016 +// Generated on: Sat Feb 04 15:23:09 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_8_0/models/Dialed_impl_ari_1_8_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_8_0/models/Dialed_impl_ari_1_8_0.java index 24827008..fb1e7921 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_8_0/models/Dialed_impl_ari_1_8_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_8_0/models/Dialed_impl_ari_1_8_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Wed Aug 31 18:05:10 CEST 2016 +// Generated on: Sat Feb 04 15:23:09 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_8_0/models/DialplanCEP_impl_ari_1_8_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_8_0/models/DialplanCEP_impl_ari_1_8_0.java index 0d606e4c..65768bdd 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_8_0/models/DialplanCEP_impl_ari_1_8_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_8_0/models/DialplanCEP_impl_ari_1_8_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Wed Aug 31 18:05:10 CEST 2016 +// Generated on: Sat Feb 04 15:23:09 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_8_0/models/EndpointStateChange_impl_ari_1_8_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_8_0/models/EndpointStateChange_impl_ari_1_8_0.java index 5bced2f9..df855528 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_8_0/models/EndpointStateChange_impl_ari_1_8_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_8_0/models/EndpointStateChange_impl_ari_1_8_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Wed Aug 31 18:05:10 CEST 2016 +// Generated on: Sat Feb 04 15:23:09 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_8_0/models/Endpoint_impl_ari_1_8_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_8_0/models/Endpoint_impl_ari_1_8_0.java index d5bfad5f..8b3c7c90 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_8_0/models/Endpoint_impl_ari_1_8_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_8_0/models/Endpoint_impl_ari_1_8_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Wed Aug 31 18:05:10 CEST 2016 +// Generated on: Sat Feb 04 15:23:09 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_8_0/models/Event_impl_ari_1_8_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_8_0/models/Event_impl_ari_1_8_0.java index 11ad2aa7..95739bd0 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_8_0/models/Event_impl_ari_1_8_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_8_0/models/Event_impl_ari_1_8_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Wed Aug 31 18:05:10 CEST 2016 +// Generated on: Sat Feb 04 15:23:09 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_8_0/models/FormatLangPair_impl_ari_1_8_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_8_0/models/FormatLangPair_impl_ari_1_8_0.java index bc1da462..a8dcdba3 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_8_0/models/FormatLangPair_impl_ari_1_8_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_8_0/models/FormatLangPair_impl_ari_1_8_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Wed Aug 31 18:05:10 CEST 2016 +// Generated on: Sat Feb 04 15:23:09 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_8_0/models/LiveRecording_impl_ari_1_8_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_8_0/models/LiveRecording_impl_ari_1_8_0.java index 7aa1c73d..142f11dd 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_8_0/models/LiveRecording_impl_ari_1_8_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_8_0/models/LiveRecording_impl_ari_1_8_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Wed Aug 31 18:05:10 CEST 2016 +// Generated on: Sat Feb 04 15:23:09 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_8_0/models/Message_impl_ari_1_8_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_8_0/models/Message_impl_ari_1_8_0.java index dfc82edb..70a23282 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_8_0/models/Message_impl_ari_1_8_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_8_0/models/Message_impl_ari_1_8_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Wed Aug 31 18:05:10 CEST 2016 +// Generated on: Sat Feb 04 15:23:09 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; @@ -73,6 +73,23 @@ public void setType(String val ) { type = val; } -/** No missing signatures from interface */ +/********************************************************** + * The unique ID for the Asterisk instance that raised this event. + * + * @since ari_2_0_0 + *********************************************************/ + public void setAsterisk_id(String val ){ + throw new UnsupportedOperationException("Method availble from ..."); +}; + +/********************************************************** + * The unique ID for the Asterisk instance that raised this event. + * + * @since ari_2_0_0 + *********************************************************/ + public String getAsterisk_id(){ + throw new UnsupportedOperationException("Method availble from ..."); +}; + } diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_8_0/models/MissingParams_impl_ari_1_8_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_8_0/models/MissingParams_impl_ari_1_8_0.java index 7a44b9bc..b39a3d84 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_8_0/models/MissingParams_impl_ari_1_8_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_8_0/models/MissingParams_impl_ari_1_8_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Wed Aug 31 18:05:10 CEST 2016 +// Generated on: Sat Feb 04 15:23:09 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_8_0/models/Module_impl_ari_1_8_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_8_0/models/Module_impl_ari_1_8_0.java index ebf54a52..3340bcc7 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_8_0/models/Module_impl_ari_1_8_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_8_0/models/Module_impl_ari_1_8_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Wed Aug 31 18:05:10 CEST 2016 +// Generated on: Sat Feb 04 15:23:09 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_8_0/models/PlaybackFinished_impl_ari_1_8_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_8_0/models/PlaybackFinished_impl_ari_1_8_0.java index 76cedc8b..726c7541 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_8_0/models/PlaybackFinished_impl_ari_1_8_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_8_0/models/PlaybackFinished_impl_ari_1_8_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Wed Aug 31 18:05:10 CEST 2016 +// Generated on: Sat Feb 04 15:23:09 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_8_0/models/PlaybackStarted_impl_ari_1_8_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_8_0/models/PlaybackStarted_impl_ari_1_8_0.java index ae8e87b0..265c4c88 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_8_0/models/PlaybackStarted_impl_ari_1_8_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_8_0/models/PlaybackStarted_impl_ari_1_8_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Wed Aug 31 18:05:10 CEST 2016 +// Generated on: Sat Feb 04 15:23:09 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_8_0/models/Playback_impl_ari_1_8_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_8_0/models/Playback_impl_ari_1_8_0.java index e77d5baf..06bd8579 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_8_0/models/Playback_impl_ari_1_8_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_8_0/models/Playback_impl_ari_1_8_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Wed Aug 31 18:05:10 CEST 2016 +// Generated on: Sat Feb 04 15:23:09 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; @@ -81,7 +81,7 @@ public void setTarget_uri(String val ) { * * @since ari_1_10_0 *********************************************************/ - public void setNext_media_uri(String val ){ + public String getNext_media_uri(){ throw new UnsupportedOperationException("Method availble from ..."); }; @@ -90,7 +90,7 @@ public void setNext_media_uri(String val ){ * * @since ari_1_10_0 *********************************************************/ - public String getNext_media_uri(){ + public void setNext_media_uri(String val ){ throw new UnsupportedOperationException("Method availble from ..."); }; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_8_0/models/RecordingFailed_impl_ari_1_8_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_8_0/models/RecordingFailed_impl_ari_1_8_0.java index abc87ce8..946e3d8d 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_8_0/models/RecordingFailed_impl_ari_1_8_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_8_0/models/RecordingFailed_impl_ari_1_8_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Wed Aug 31 18:05:10 CEST 2016 +// Generated on: Sat Feb 04 15:23:09 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_8_0/models/RecordingFinished_impl_ari_1_8_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_8_0/models/RecordingFinished_impl_ari_1_8_0.java index d992dbc1..e901dfe8 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_8_0/models/RecordingFinished_impl_ari_1_8_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_8_0/models/RecordingFinished_impl_ari_1_8_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Wed Aug 31 18:05:10 CEST 2016 +// Generated on: Sat Feb 04 15:23:09 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_8_0/models/RecordingStarted_impl_ari_1_8_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_8_0/models/RecordingStarted_impl_ari_1_8_0.java index 42e0729d..98886777 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_8_0/models/RecordingStarted_impl_ari_1_8_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_8_0/models/RecordingStarted_impl_ari_1_8_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Wed Aug 31 18:05:10 CEST 2016 +// Generated on: Sat Feb 04 15:23:09 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_8_0/models/SetId_impl_ari_1_8_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_8_0/models/SetId_impl_ari_1_8_0.java index a1e4439d..94eabb65 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_8_0/models/SetId_impl_ari_1_8_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_8_0/models/SetId_impl_ari_1_8_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Wed Aug 31 18:05:10 CEST 2016 +// Generated on: Sat Feb 04 15:23:09 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_8_0/models/Sound_impl_ari_1_8_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_8_0/models/Sound_impl_ari_1_8_0.java index b0f8bb7d..cf46f1c2 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_8_0/models/Sound_impl_ari_1_8_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_8_0/models/Sound_impl_ari_1_8_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Wed Aug 31 18:05:10 CEST 2016 +// Generated on: Sat Feb 04 15:23:09 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_8_0/models/StasisEnd_impl_ari_1_8_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_8_0/models/StasisEnd_impl_ari_1_8_0.java index 7bbe23c5..554813a5 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_8_0/models/StasisEnd_impl_ari_1_8_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_8_0/models/StasisEnd_impl_ari_1_8_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Wed Aug 31 18:05:10 CEST 2016 +// Generated on: Sat Feb 04 15:23:09 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_8_0/models/StasisStart_impl_ari_1_8_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_8_0/models/StasisStart_impl_ari_1_8_0.java index 88628dc4..d8b0314a 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_8_0/models/StasisStart_impl_ari_1_8_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_8_0/models/StasisStart_impl_ari_1_8_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Wed Aug 31 18:05:10 CEST 2016 +// Generated on: Sat Feb 04 15:23:09 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_8_0/models/StatusInfo_impl_ari_1_8_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_8_0/models/StatusInfo_impl_ari_1_8_0.java index c8a593aa..c7514a81 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_8_0/models/StatusInfo_impl_ari_1_8_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_8_0/models/StatusInfo_impl_ari_1_8_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Wed Aug 31 18:05:10 CEST 2016 +// Generated on: Sat Feb 04 15:23:09 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_8_0/models/StoredRecording_impl_ari_1_8_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_8_0/models/StoredRecording_impl_ari_1_8_0.java index 4103a212..53fe6a76 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_8_0/models/StoredRecording_impl_ari_1_8_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_8_0/models/StoredRecording_impl_ari_1_8_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Wed Aug 31 18:05:10 CEST 2016 +// Generated on: Sat Feb 04 15:23:09 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_8_0/models/SystemInfo_impl_ari_1_8_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_8_0/models/SystemInfo_impl_ari_1_8_0.java index fdd840df..39420941 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_8_0/models/SystemInfo_impl_ari_1_8_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_8_0/models/SystemInfo_impl_ari_1_8_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Wed Aug 31 18:05:10 CEST 2016 +// Generated on: Sat Feb 04 15:23:09 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_8_0/models/TextMessageReceived_impl_ari_1_8_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_8_0/models/TextMessageReceived_impl_ari_1_8_0.java index 14e720ab..f6b7f2dc 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_8_0/models/TextMessageReceived_impl_ari_1_8_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_8_0/models/TextMessageReceived_impl_ari_1_8_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Wed Aug 31 18:05:10 CEST 2016 +// Generated on: Sat Feb 04 15:23:09 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_8_0/models/TextMessageVariable_impl_ari_1_8_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_8_0/models/TextMessageVariable_impl_ari_1_8_0.java index b6fa2b1c..82d2fd14 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_8_0/models/TextMessageVariable_impl_ari_1_8_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_8_0/models/TextMessageVariable_impl_ari_1_8_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Wed Aug 31 18:05:10 CEST 2016 +// Generated on: Sat Feb 04 15:23:09 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_8_0/models/TextMessage_impl_ari_1_8_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_8_0/models/TextMessage_impl_ari_1_8_0.java index 13729a63..9cbe99ba 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_8_0/models/TextMessage_impl_ari_1_8_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_8_0/models/TextMessage_impl_ari_1_8_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Wed Aug 31 18:05:10 CEST 2016 +// Generated on: Sat Feb 04 15:23:09 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_8_0/models/Variable_impl_ari_1_8_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_8_0/models/Variable_impl_ari_1_8_0.java index 279b43f4..bc8219bc 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_8_0/models/Variable_impl_ari_1_8_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_8_0/models/Variable_impl_ari_1_8_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Wed Aug 31 18:05:10 CEST 2016 +// Generated on: Sat Feb 04 15:23:09 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/AriBuilder_impl_ari_1_9_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/AriBuilder_impl_ari_1_9_0.java index 5bf192bd..a5bf8724 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/AriBuilder_impl_ari_1_9_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/AriBuilder_impl_ari_1_9_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Wed Aug 31 18:05:11 CEST 2016 +// Generated on: Sat Feb 04 15:23:09 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.ari_1_9_0.models.*; @@ -13,304 +13,308 @@ public class AriBuilder_impl_ari_1_9_0 implements AriBuilder { +public ActionAsterisk actionAsterisk() { + return new ActionAsterisk_impl_ari_1_9_0(); + }; + public ActionPlaybacks actionPlaybacks() { return new ActionPlaybacks_impl_ari_1_9_0(); }; -public ActionEvents actionEvents() { - return new ActionEvents_impl_ari_1_9_0(); +public ActionApplications actionApplications() { + return new ActionApplications_impl_ari_1_9_0(); }; public ActionSounds actionSounds() { return new ActionSounds_impl_ari_1_9_0(); }; -public ActionChannels actionChannels() { - return new ActionChannels_impl_ari_1_9_0(); +public ActionEvents actionEvents() { + return new ActionEvents_impl_ari_1_9_0(); + }; + +public ActionEndpoints actionEndpoints() { + return new ActionEndpoints_impl_ari_1_9_0(); }; public ActionRecordings actionRecordings() { return new ActionRecordings_impl_ari_1_9_0(); }; -public ActionEndpoints actionEndpoints() { - return new ActionEndpoints_impl_ari_1_9_0(); +public ActionChannels actionChannels() { + return new ActionChannels_impl_ari_1_9_0(); }; public ActionBridges actionBridges() { return new ActionBridges_impl_ari_1_9_0(); }; -public ActionApplications actionApplications() { - return new ActionApplications_impl_ari_1_9_0(); - }; - public ActionDeviceStates actionDeviceStates() { return new ActionDeviceStates_impl_ari_1_9_0(); }; -public ActionAsterisk actionAsterisk() { - return new ActionAsterisk_impl_ari_1_9_0(); +public CallerID callerID() { + return new CallerID_impl_ari_1_9_0(); }; -public EndpointStateChange endpointStateChange() { - return new EndpointStateChange_impl_ari_1_9_0(); +public Event event() { + return new Event_impl_ari_1_9_0(); }; -public StasisEnd stasisEnd() { - return new StasisEnd_impl_ari_1_9_0(); +public ChannelStateChange channelStateChange() { + return new ChannelStateChange_impl_ari_1_9_0(); }; -public CallerID callerID() { - return new CallerID_impl_ari_1_9_0(); +public ChannelCallerId channelCallerId() { + return new ChannelCallerId_impl_ari_1_9_0(); }; -public ConfigInfo configInfo() { - return new ConfigInfo_impl_ari_1_9_0(); +public PlaybackFinished playbackFinished() { + return new PlaybackFinished_impl_ari_1_9_0(); }; -public ChannelCreated channelCreated() { - return new ChannelCreated_impl_ari_1_9_0(); +public StasisStart stasisStart() { + return new StasisStart_impl_ari_1_9_0(); + }; + +public Playback playback() { + return new Playback_impl_ari_1_9_0(); }; public ChannelEnteredBridge channelEnteredBridge() { return new ChannelEnteredBridge_impl_ari_1_9_0(); }; -public ChannelHangupRequest channelHangupRequest() { - return new ChannelHangupRequest_impl_ari_1_9_0(); +public TextMessageReceived textMessageReceived() { + return new TextMessageReceived_impl_ari_1_9_0(); }; -public Channel channel() { - return new Channel_impl_ari_1_9_0(); +public StasisEnd stasisEnd() { + return new StasisEnd_impl_ari_1_9_0(); }; -public StatusInfo statusInfo() { - return new StatusInfo_impl_ari_1_9_0(); +public ChannelHold channelHold() { + return new ChannelHold_impl_ari_1_9_0(); }; -public ChannelStateChange channelStateChange() { - return new ChannelStateChange_impl_ari_1_9_0(); +public FormatLangPair formatLangPair() { + return new FormatLangPair_impl_ari_1_9_0(); }; -public ChannelUserevent channelUserevent() { - return new ChannelUserevent_impl_ari_1_9_0(); +public BridgeAttendedTransfer bridgeAttendedTransfer() { + return new BridgeAttendedTransfer_impl_ari_1_9_0(); }; -public RecordingFailed recordingFailed() { - return new RecordingFailed_impl_ari_1_9_0(); +public Bridge bridge() { + return new Bridge_impl_ari_1_9_0(); }; -public ChannelDialplan channelDialplan() { - return new ChannelDialplan_impl_ari_1_9_0(); +public ChannelVarset channelVarset() { + return new ChannelVarset_impl_ari_1_9_0(); }; -public Dialed dialed() { - return new Dialed_impl_ari_1_9_0(); +public ChannelTalkingFinished channelTalkingFinished() { + return new ChannelTalkingFinished_impl_ari_1_9_0(); }; -public MissingParams missingParams() { - return new MissingParams_impl_ari_1_9_0(); +public PlaybackStarted playbackStarted() { + return new PlaybackStarted_impl_ari_1_9_0(); }; -public FormatLangPair formatLangPair() { - return new FormatLangPair_impl_ari_1_9_0(); +public SetId setId() { + return new SetId_impl_ari_1_9_0(); }; -public Event event() { - return new Event_impl_ari_1_9_0(); +public RecordingFinished recordingFinished() { + return new RecordingFinished_impl_ari_1_9_0(); }; -public PlaybackStarted playbackStarted() { - return new PlaybackStarted_impl_ari_1_9_0(); +public BridgeDestroyed bridgeDestroyed() { + return new BridgeDestroyed_impl_ari_1_9_0(); }; -public BridgeAttendedTransfer bridgeAttendedTransfer() { - return new BridgeAttendedTransfer_impl_ari_1_9_0(); +public ChannelCreated channelCreated() { + return new ChannelCreated_impl_ari_1_9_0(); }; -public AsteriskInfo asteriskInfo() { - return new AsteriskInfo_impl_ari_1_9_0(); +public PeerStatusChange peerStatusChange() { + return new PeerStatusChange_impl_ari_1_9_0(); }; -public ChannelTalkingStarted channelTalkingStarted() { - return new ChannelTalkingStarted_impl_ari_1_9_0(); +public Application application() { + return new Application_impl_ari_1_9_0(); }; -public TextMessage textMessage() { - return new TextMessage_impl_ari_1_9_0(); +public Variable variable() { + return new Variable_impl_ari_1_9_0(); }; -public Endpoint endpoint() { - return new Endpoint_impl_ari_1_9_0(); +public ConfigTuple configTuple() { + return new ConfigTuple_impl_ari_1_9_0(); }; -public BridgeBlindTransfer bridgeBlindTransfer() { - return new BridgeBlindTransfer_impl_ari_1_9_0(); +public EndpointStateChange endpointStateChange() { + return new EndpointStateChange_impl_ari_1_9_0(); }; public ChannelLeftBridge channelLeftBridge() { return new ChannelLeftBridge_impl_ari_1_9_0(); }; -public ApplicationReplaced applicationReplaced() { - return new ApplicationReplaced_impl_ari_1_9_0(); - }; - -public TextMessageVariable textMessageVariable() { - return new TextMessageVariable_impl_ari_1_9_0(); +public RecordingStarted recordingStarted() { + return new RecordingStarted_impl_ari_1_9_0(); }; -public Message message() { - return new Message_impl_ari_1_9_0(); +public StoredRecording storedRecording() { + return new StoredRecording_impl_ari_1_9_0(); }; -public TextMessageReceived textMessageReceived() { - return new TextMessageReceived_impl_ari_1_9_0(); +public DeviceStateChanged deviceStateChanged() { + return new DeviceStateChanged_impl_ari_1_9_0(); }; -public Module module() { - return new Module_impl_ari_1_9_0(); +public ChannelConnectedLine channelConnectedLine() { + return new ChannelConnectedLine_impl_ari_1_9_0(); }; -public RecordingFinished recordingFinished() { - return new RecordingFinished_impl_ari_1_9_0(); +public ChannelUserevent channelUserevent() { + return new ChannelUserevent_impl_ari_1_9_0(); }; public Dial dial() { return new Dial_impl_ari_1_9_0(); }; -public DeviceStateChanged deviceStateChanged() { - return new DeviceStateChanged_impl_ari_1_9_0(); +public BuildInfo buildInfo() { + return new BuildInfo_impl_ari_1_9_0(); }; -public ChannelDestroyed channelDestroyed() { - return new ChannelDestroyed_impl_ari_1_9_0(); +public DialplanCEP dialplanCEP() { + return new DialplanCEP_impl_ari_1_9_0(); }; -public Bridge bridge() { - return new Bridge_impl_ari_1_9_0(); +public Endpoint endpoint() { + return new Endpoint_impl_ari_1_9_0(); }; -public LiveRecording liveRecording() { - return new LiveRecording_impl_ari_1_9_0(); +public ChannelDestroyed channelDestroyed() { + return new ChannelDestroyed_impl_ari_1_9_0(); }; -public ChannelConnectedLine channelConnectedLine() { - return new ChannelConnectedLine_impl_ari_1_9_0(); +public Channel channel() { + return new Channel_impl_ari_1_9_0(); }; -public Playback playback() { - return new Playback_impl_ari_1_9_0(); +public MissingParams missingParams() { + return new MissingParams_impl_ari_1_9_0(); }; -public RecordingStarted recordingStarted() { - return new RecordingStarted_impl_ari_1_9_0(); +public Module module() { + return new Module_impl_ari_1_9_0(); }; -public PlaybackFinished playbackFinished() { - return new PlaybackFinished_impl_ari_1_9_0(); +public ChannelDialplan channelDialplan() { + return new ChannelDialplan_impl_ari_1_9_0(); }; -public StasisStart stasisStart() { - return new StasisStart_impl_ari_1_9_0(); +public LogChannel logChannel() { + return new LogChannel_impl_ari_1_9_0(); }; -public ChannelDtmfReceived channelDtmfReceived() { - return new ChannelDtmfReceived_impl_ari_1_9_0(); +public AsteriskInfo asteriskInfo() { + return new AsteriskInfo_impl_ari_1_9_0(); }; -public ContactStatusChange contactStatusChange() { - return new ContactStatusChange_impl_ari_1_9_0(); +public StatusInfo statusInfo() { + return new StatusInfo_impl_ari_1_9_0(); }; -public Application application() { - return new Application_impl_ari_1_9_0(); +public ChannelHangupRequest channelHangupRequest() { + return new ChannelHangupRequest_impl_ari_1_9_0(); }; -public ChannelVarset channelVarset() { - return new ChannelVarset_impl_ari_1_9_0(); +public Dialed dialed() { + return new Dialed_impl_ari_1_9_0(); }; -public ContactInfo contactInfo() { - return new ContactInfo_impl_ari_1_9_0(); +public ChannelTalkingStarted channelTalkingStarted() { + return new ChannelTalkingStarted_impl_ari_1_9_0(); }; -public BridgeCreated bridgeCreated() { - return new BridgeCreated_impl_ari_1_9_0(); +public Sound sound() { + return new Sound_impl_ari_1_9_0(); }; -public ChannelTalkingFinished channelTalkingFinished() { - return new ChannelTalkingFinished_impl_ari_1_9_0(); +public TextMessage textMessage() { + return new TextMessage_impl_ari_1_9_0(); }; -public BuildInfo buildInfo() { - return new BuildInfo_impl_ari_1_9_0(); +public DeviceState deviceState() { + return new DeviceState_impl_ari_1_9_0(); }; -public LogChannel logChannel() { - return new LogChannel_impl_ari_1_9_0(); +public BridgeMerged bridgeMerged() { + return new BridgeMerged_impl_ari_1_9_0(); }; -public BridgeDestroyed bridgeDestroyed() { - return new BridgeDestroyed_impl_ari_1_9_0(); +public ChannelDtmfReceived channelDtmfReceived() { + return new ChannelDtmfReceived_impl_ari_1_9_0(); }; -public Variable variable() { - return new Variable_impl_ari_1_9_0(); +public ChannelUnhold channelUnhold() { + return new ChannelUnhold_impl_ari_1_9_0(); }; -public Peer peer() { - return new Peer_impl_ari_1_9_0(); +public ContactStatusChange contactStatusChange() { + return new ContactStatusChange_impl_ari_1_9_0(); }; -public Sound sound() { - return new Sound_impl_ari_1_9_0(); +public BridgeCreated bridgeCreated() { + return new BridgeCreated_impl_ari_1_9_0(); }; -public SystemInfo systemInfo() { - return new SystemInfo_impl_ari_1_9_0(); +public ConfigInfo configInfo() { + return new ConfigInfo_impl_ari_1_9_0(); }; -public ChannelHold channelHold() { - return new ChannelHold_impl_ari_1_9_0(); +public SystemInfo systemInfo() { + return new SystemInfo_impl_ari_1_9_0(); }; -public DialplanCEP dialplanCEP() { - return new DialplanCEP_impl_ari_1_9_0(); +public TextMessageVariable textMessageVariable() { + return new TextMessageVariable_impl_ari_1_9_0(); }; -public SetId setId() { - return new SetId_impl_ari_1_9_0(); +public ContactInfo contactInfo() { + return new ContactInfo_impl_ari_1_9_0(); }; -public ChannelUnhold channelUnhold() { - return new ChannelUnhold_impl_ari_1_9_0(); +public LiveRecording liveRecording() { + return new LiveRecording_impl_ari_1_9_0(); }; -public ConfigTuple configTuple() { - return new ConfigTuple_impl_ari_1_9_0(); +public ApplicationReplaced applicationReplaced() { + return new ApplicationReplaced_impl_ari_1_9_0(); }; -public StoredRecording storedRecording() { - return new StoredRecording_impl_ari_1_9_0(); +public Peer peer() { + return new Peer_impl_ari_1_9_0(); }; -public ChannelCallerId channelCallerId() { - return new ChannelCallerId_impl_ari_1_9_0(); +public BridgeBlindTransfer bridgeBlindTransfer() { + return new BridgeBlindTransfer_impl_ari_1_9_0(); }; -public DeviceState deviceState() { - return new DeviceState_impl_ari_1_9_0(); +public Message message() { + return new Message_impl_ari_1_9_0(); }; -public BridgeMerged bridgeMerged() { - return new BridgeMerged_impl_ari_1_9_0(); +public RecordingFailed recordingFailed() { + return new RecordingFailed_impl_ari_1_9_0(); }; -public PeerStatusChange peerStatusChange() { - return new PeerStatusChange_impl_ari_1_9_0(); +public BridgeVideoSourceChanged bridgeVideoSourceChanged() { + throw new UnsupportedOperationException(); }; public PlaybackContinuing playbackContinuing() { diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/ClassTranslator_impl_ari_1_9_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/ClassTranslator_impl_ari_1_9_0.java index 8348b1a0..22f981ac 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/ClassTranslator_impl_ari_1_9_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/ClassTranslator_impl_ari_1_9_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Wed Aug 31 18:05:11 CEST 2016 +// Generated on: Sat Feb 04 15:23:09 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.ARI; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/actions/ActionApplications_impl_ari_1_9_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/actions/ActionApplications_impl_ari_1_9_0.java index 1866b0d7..aa9b675c 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/actions/ActionApplications_impl_ari_1_9_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/actions/ActionApplications_impl_ari_1_9_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Wed Aug 31 18:05:11 CEST 2016 +// Generated on: Sat Feb 04 15:23:09 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/actions/ActionAsterisk_impl_ari_1_9_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/actions/ActionAsterisk_impl_ari_1_9_0.java index 8c3425cb..8c612319 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/actions/ActionAsterisk_impl_ari_1_9_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/actions/ActionAsterisk_impl_ari_1_9_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Wed Aug 31 18:05:11 CEST 2016 +// Generated on: Sat Feb 04 15:23:09 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/actions/ActionBridges_impl_ari_1_9_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/actions/ActionBridges_impl_ari_1_9_0.java index 648b9671..fb0dc96c 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/actions/ActionBridges_impl_ari_1_9_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/actions/ActionBridges_impl_ari_1_9_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Wed Aug 31 18:05:11 CEST 2016 +// Generated on: Sat Feb 04 15:23:09 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; @@ -364,12 +364,22 @@ public void removeChannel(String bridgeId, String channel, AriCallback cal httpActionAsync(callback); } +/********************************************************** + * Start playback of media on a bridge. + * The media URI may be any of a number of URI's. Currently sound: and recording: URI's are supported. This operation creates a playback resource that can be used to control the playback of media (pause, rewind, fast forward, etc.) + * + * @since ari_0_0_1 + *********************************************************/ +public Playback play(String bridgeId, String media, String lang, int offsetms, int skipms) throws RestException{ + throw new UnsupportedOperationException("Method availble from ..."); +}; + /********************************************************** * * * @since ari_0_0_1 *********************************************************/ -public void create(String type, AriCallback callback){ +public void play(String bridgeId, String media, String lang, int offsetms, int skipms, AriCallback callback){ throw new UnsupportedOperationException("Method availble from ..."); }; @@ -383,6 +393,35 @@ public Bridge create(String type, String name) throws RestException{ throw new UnsupportedOperationException("Method availble from ..."); }; +/********************************************************** + * + * + * @since ari_1_5_0 + *********************************************************/ +public void create_or_update_with_id(String type, String bridgeId, String name, AriCallback callback){ + throw new UnsupportedOperationException("Method availble from ..."); +}; + +/********************************************************** + * Set a channel as the video source in a multi-party mixing bridge. This operation has no effect on bridges with two or fewer participants. + * + * + * @since ari_2_0_0 + *********************************************************/ +public void setVideoSource(String bridgeId, String channelId) throws RestException{ + throw new UnsupportedOperationException("Method availble from ..."); +}; + +/********************************************************** + * Create a new bridge or updates an existing one. + * This bridge persists until it has been shut down, or Asterisk has been shut down. + * + * @since ari_1_5_0 + *********************************************************/ +public Bridge create_or_update_with_id(String type, String bridgeId, String name) throws RestException{ + throw new UnsupportedOperationException("Method availble from ..."); +}; + /********************************************************** * Create a new bridge. * This bridge persists until it has been shut down, or Asterisk has been shut down. @@ -394,49 +433,48 @@ public Bridge create(String type) throws RestException{ }; /********************************************************** + * Removes any explicit video source in a multi-party mixing bridge. This operation has no effect on bridges with two or fewer participants. When no explicit video source is set, talk detection will be used to determine the active video stream. * * - * @since ari_0_0_1 + * @since ari_2_0_0 *********************************************************/ -public void play(String bridgeId, String media, String lang, int offsetms, int skipms, AriCallback callback){ +public void clearVideoSource(String bridgeId) throws RestException{ throw new UnsupportedOperationException("Method availble from ..."); }; /********************************************************** - * Start playback of media on a bridge. - * The media URI may be any of a number of URI's. Currently sound: and recording: URI's are supported. This operation creates a playback resource that can be used to control the playback of media (pause, rewind, fast forward, etc.) + * * * @since ari_0_0_1 *********************************************************/ -public Playback play(String bridgeId, String media, String lang, int offsetms, int skipms) throws RestException{ +public void create(String type, AriCallback callback){ throw new UnsupportedOperationException("Method availble from ..."); }; /********************************************************** * * - * @since ari_1_0_0 + * @since ari_2_0_0 *********************************************************/ -public void create(String type, String name, AriCallback callback){ +public void setVideoSource(String bridgeId, String channelId, AriCallback callback){ throw new UnsupportedOperationException("Method availble from ..."); }; /********************************************************** * * - * @since ari_1_5_0 + * @since ari_1_0_0 *********************************************************/ -public void create_or_update_with_id(String type, String bridgeId, String name, AriCallback callback){ +public void create(String type, String name, AriCallback callback){ throw new UnsupportedOperationException("Method availble from ..."); }; /********************************************************** - * Create a new bridge or updates an existing one. - * This bridge persists until it has been shut down, or Asterisk has been shut down. * - * @since ari_1_5_0 + * + * @since ari_2_0_0 *********************************************************/ -public Bridge create_or_update_with_id(String type, String bridgeId, String name) throws RestException{ +public void clearVideoSource(String bridgeId, AriCallback callback){ throw new UnsupportedOperationException("Method availble from ..."); }; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/actions/ActionChannels_impl_ari_1_9_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/actions/ActionChannels_impl_ari_1_9_0.java index 8138f39c..ff50ac48 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/actions/ActionChannels_impl_ari_1_9_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/actions/ActionChannels_impl_ari_1_9_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Wed Aug 31 18:05:11 CEST 2016 +// Generated on: Sat Feb 04 15:23:09 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; @@ -766,39 +766,40 @@ public void setChannelVar(String channelId, String variable, String value, AriCa } /********************************************************** - * + * Create a new channel (originate with id). + * The new channel is created immediately and a snapshot of it returned. If a Stasis application is provided it will be automatically subscribed to the originated channel for further events and updates. * * @since ari_1_5_0 *********************************************************/ -public void originateWithId(String channelId, String endpoint, String extension, String context, long priority, String app, String appArgs, String callerId, int timeout, Map variables, String otherChannelId, AriCallback callback){ +public Channel originateWithId(String channelId, String endpoint, String extension, String context, long priority, String app, String appArgs, String callerId, int timeout, Map variables, String otherChannelId) throws RestException{ throw new UnsupportedOperationException("Method availble from ..."); }; /********************************************************** + * Start snooping. + * Snoop (spy/whisper) on a specific channel. * - * - * @since ari_1_10_0 + * @since ari_0_0_1 *********************************************************/ -public void dial(String channelId, String caller, int timeout, AriCallback callback){ +public Channel snoopChannel(String channelId, String spy, String whisper, String app, String appArgs) throws RestException{ throw new UnsupportedOperationException("Method availble from ..."); }; /********************************************************** * * - * @since ari_0_0_1 + * @since ari_1_10_0 *********************************************************/ -public void snoopChannel(String channelId, String spy, String whisper, String app, String appArgs, AriCallback callback){ +public void dial(String channelId, String caller, int timeout, AriCallback callback){ throw new UnsupportedOperationException("Method availble from ..."); }; /********************************************************** - * Dial a created channel. * * - * @since ari_1_10_0 + * @since ari_1_5_0 *********************************************************/ -public void dial(String channelId, String caller, int timeout) throws RestException{ +public void originate(String endpoint, String extension, String context, long priority, String app, String appArgs, String callerId, int timeout, Map variables, String channelId, String otherChannelId, AriCallback callback){ throw new UnsupportedOperationException("Method availble from ..."); }; @@ -831,52 +832,49 @@ public Playback play(String channelId, String media, String lang, int offsetms, }; /********************************************************** - * Exit application{ - throw new UnsupportedOperationException("Method availble from ..."); -}; continue execution in the dialplan. * * * @since ari_0_0_1 *********************************************************/ -public void continueInDialplan(String channelId, String context, String extension, int priority) throws RestException{ +public void play(String channelId, String media, String lang, int offsetms, int skipms, AriCallback callback){ throw new UnsupportedOperationException("Method availble from ..."); }; /********************************************************** - * Create a new channel (originate). - * The new channel is created immediately and a snapshot of it returned. If a Stasis application is provided it will be automatically subscribed to the originated channel for further events and updates. * - * @since ari_1_10_0 + * + * @since ari_0_0_1 *********************************************************/ -public Channel originate(String endpoint, String extension, String context, long priority, String label, String app, String appArgs, String callerId, int timeout, Map variables, String channelId, String otherChannelId, String originator, String formats) throws RestException{ +public void snoopChannel(String channelId, String spy, String whisper, String app, String appArgs, AriCallback callback){ throw new UnsupportedOperationException("Method availble from ..."); }; /********************************************************** * * - * @since ari_0_0_1 + * @since ari_1_5_0 *********************************************************/ -public void originate(String endpoint, String extension, String context, long priority, String app, String appArgs, String callerId, int timeout, AriCallback callback){ +public void originateWithId(String channelId, String endpoint, String extension, String context, long priority, String app, String appArgs, String callerId, int timeout, Map variables, String otherChannelId, AriCallback callback){ throw new UnsupportedOperationException("Method availble from ..."); }; /********************************************************** - * Create channel. - * + * Create a new channel (originate). + * The new channel is created immediately and a snapshot of it returned. If a Stasis application is provided it will be automatically subscribed to the originated channel for further events and updates. * * @since ari_1_10_0 *********************************************************/ -public Channel create(String endpoint, String app, String appArgs, String channelId, String otherChannelId, String originator, String formats) throws RestException{ +public Channel originate(String endpoint, String extension, String context, long priority, String label, String app, String appArgs, String callerId, int timeout, Map variables, String channelId, String otherChannelId, String originator, String formats) throws RestException{ throw new UnsupportedOperationException("Method availble from ..."); }; /********************************************************** + * Create a new channel (originate with id). + * The new channel is created immediately and a snapshot of it returned. If a Stasis application is provided it will be automatically subscribed to the originated channel for further events and updates. * - * - * @since ari_1_5_0 + * @since ari_1_10_0 *********************************************************/ -public void originate(String endpoint, String extension, String context, long priority, String app, String appArgs, String callerId, int timeout, Map variables, String channelId, String otherChannelId, AriCallback callback){ +public Channel originateWithId(String channelId, String endpoint, String extension, String context, long priority, String label, String app, String appArgs, String callerId, int timeout, Map variables, String otherChannelId, String originator, String formats) throws RestException{ throw new UnsupportedOperationException("Method availble from ..."); }; @@ -891,69 +889,71 @@ public Channel originate(String endpoint, String extension, String context, long }; /********************************************************** - * Create a new channel (originate with id). - * The new channel is created immediately and a snapshot of it returned. If a Stasis application is provided it will be automatically subscribed to the originated channel for further events and updates. + * Dial a created channel. * - * @since ari_1_5_0 + * + * @since ari_1_10_0 *********************************************************/ -public Channel originateWithId(String channelId, String endpoint, String extension, String context, long priority, String app, String appArgs, String callerId, int timeout, Map variables, String otherChannelId) throws RestException{ +public void dial(String channelId, String caller, int timeout) throws RestException{ throw new UnsupportedOperationException("Method availble from ..."); }; /********************************************************** - * Create a new channel (originate with id). - * The new channel is created immediately and a snapshot of it returned. If a Stasis application is provided it will be automatically subscribed to the originated channel for further events and updates. + * * * @since ari_1_10_0 *********************************************************/ -public Channel originateWithId(String channelId, String endpoint, String extension, String context, long priority, String label, String app, String appArgs, String callerId, int timeout, Map variables, String otherChannelId, String originator, String formats) throws RestException{ +public void create(String endpoint, String app, String appArgs, String channelId, String otherChannelId, String originator, String formats, AriCallback callback){ throw new UnsupportedOperationException("Method availble from ..."); }; /********************************************************** + * Create channel. * * * @since ari_1_10_0 *********************************************************/ -public void create(String endpoint, String app, String appArgs, String channelId, String otherChannelId, String originator, String formats, AriCallback callback){ +public Channel create(String endpoint, String app, String appArgs, String channelId, String otherChannelId, String originator, String formats) throws RestException{ throw new UnsupportedOperationException("Method availble from ..."); }; /********************************************************** - * Create a new channel (originate). - * The new channel is created immediately and a snapshot of it returned. If a Stasis application is provided it will be automatically subscribed to the originated channel for further events and updates. + * Exit application{ + throw new UnsupportedOperationException("Method availble from ..."); +}; continue execution in the dialplan. * - * @since ari_1_5_0 + * + * @since ari_0_0_1 *********************************************************/ -public Channel originate(String endpoint, String extension, String context, long priority, String app, String appArgs, String callerId, int timeout, Map variables, String channelId, String otherChannelId) throws RestException{ +public void continueInDialplan(String channelId, String context, String extension, int priority) throws RestException{ throw new UnsupportedOperationException("Method availble from ..."); }; /********************************************************** * * - * @since ari_0_0_1 + * @since ari_1_10_0 *********************************************************/ -public void play(String channelId, String media, String lang, int offsetms, int skipms, AriCallback callback){ +public void originate(String endpoint, String extension, String context, long priority, String label, String app, String appArgs, String callerId, int timeout, Map variables, String channelId, String otherChannelId, String originator, String formats, AriCallback callback){ throw new UnsupportedOperationException("Method availble from ..."); }; /********************************************************** - * Start snooping. - * Snoop (spy/whisper) on a specific channel. + * Create a new channel (originate). + * The new channel is created immediately and a snapshot of it returned. If a Stasis application is provided it will be automatically subscribed to the originated channel for further events and updates. * - * @since ari_0_0_1 + * @since ari_1_5_0 *********************************************************/ -public Channel snoopChannel(String channelId, String spy, String whisper, String app, String appArgs) throws RestException{ +public Channel originate(String endpoint, String extension, String context, long priority, String app, String appArgs, String callerId, int timeout, Map variables, String channelId, String otherChannelId) throws RestException{ throw new UnsupportedOperationException("Method availble from ..."); }; /********************************************************** * * - * @since ari_1_10_0 + * @since ari_0_0_1 *********************************************************/ -public void originate(String endpoint, String extension, String context, long priority, String label, String app, String appArgs, String callerId, int timeout, Map variables, String channelId, String otherChannelId, String originator, String formats, AriCallback callback){ +public void originate(String endpoint, String extension, String context, long priority, String app, String appArgs, String callerId, int timeout, AriCallback callback){ throw new UnsupportedOperationException("Method availble from ..."); }; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/actions/ActionDeviceStates_impl_ari_1_9_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/actions/ActionDeviceStates_impl_ari_1_9_0.java index 97f725d5..dd94c937 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/actions/ActionDeviceStates_impl_ari_1_9_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/actions/ActionDeviceStates_impl_ari_1_9_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Wed Aug 31 18:05:11 CEST 2016 +// Generated on: Sat Feb 04 15:23:09 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/actions/ActionEndpoints_impl_ari_1_9_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/actions/ActionEndpoints_impl_ari_1_9_0.java index 004c7751..185f6b30 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/actions/ActionEndpoints_impl_ari_1_9_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/actions/ActionEndpoints_impl_ari_1_9_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Wed Aug 31 18:05:11 CEST 2016 +// Generated on: Sat Feb 04 15:23:09 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/actions/ActionEvents_impl_ari_1_9_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/actions/ActionEvents_impl_ari_1_9_0.java index e9089b3a..4cde6138 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/actions/ActionEvents_impl_ari_1_9_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/actions/ActionEvents_impl_ari_1_9_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Wed Aug 31 18:05:11 CEST 2016 +// Generated on: Sat Feb 04 15:23:09 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; @@ -81,21 +81,21 @@ public void userEvent(String eventName, String application, String source, Map callback){ +public Message eventWebsocket(String app) throws RestException{ throw new UnsupportedOperationException("Method availble from ..."); }; /********************************************************** - * WebSocket connection for events. * * * @since ari_0_0_1 *********************************************************/ -public Message eventWebsocket(String app) throws RestException{ +public void eventWebsocket(String app, AriCallback callback){ throw new UnsupportedOperationException("Method availble from ..."); }; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/actions/ActionPlaybacks_impl_ari_1_9_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/actions/ActionPlaybacks_impl_ari_1_9_0.java index 6e89b60b..1394791e 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/actions/ActionPlaybacks_impl_ari_1_9_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/actions/ActionPlaybacks_impl_ari_1_9_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Wed Aug 31 18:05:11 CEST 2016 +// Generated on: Sat Feb 04 15:23:09 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/actions/ActionRecordings_impl_ari_1_9_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/actions/ActionRecordings_impl_ari_1_9_0.java index 7ff898a1..470f0739 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/actions/ActionRecordings_impl_ari_1_9_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/actions/ActionRecordings_impl_ari_1_9_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Wed Aug 31 18:05:11 CEST 2016 +// Generated on: Sat Feb 04 15:23:09 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/actions/ActionSounds_impl_ari_1_9_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/actions/ActionSounds_impl_ari_1_9_0.java index 61a02b24..2326c451 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/actions/ActionSounds_impl_ari_1_9_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/actions/ActionSounds_impl_ari_1_9_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Wed Aug 31 18:05:11 CEST 2016 +// Generated on: Sat Feb 04 15:23:09 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/models/ApplicationReplaced_impl_ari_1_9_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/models/ApplicationReplaced_impl_ari_1_9_0.java index 4028f974..17e991b2 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/models/ApplicationReplaced_impl_ari_1_9_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/models/ApplicationReplaced_impl_ari_1_9_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Wed Aug 31 18:05:10 CEST 2016 +// Generated on: Sat Feb 04 15:23:09 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/models/Application_impl_ari_1_9_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/models/Application_impl_ari_1_9_0.java index 5668a588..2d585b19 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/models/Application_impl_ari_1_9_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/models/Application_impl_ari_1_9_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Wed Aug 31 18:05:10 CEST 2016 +// Generated on: Sat Feb 04 15:23:09 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/models/AsteriskInfo_impl_ari_1_9_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/models/AsteriskInfo_impl_ari_1_9_0.java index e91ee6c7..4a4bca19 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/models/AsteriskInfo_impl_ari_1_9_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/models/AsteriskInfo_impl_ari_1_9_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Wed Aug 31 18:05:10 CEST 2016 +// Generated on: Sat Feb 04 15:23:09 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/models/BridgeAttendedTransfer_impl_ari_1_9_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/models/BridgeAttendedTransfer_impl_ari_1_9_0.java index a16d30d5..dff8c7fa 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/models/BridgeAttendedTransfer_impl_ari_1_9_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/models/BridgeAttendedTransfer_impl_ari_1_9_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Wed Aug 31 18:05:10 CEST 2016 +// Generated on: Sat Feb 04 15:23:09 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/models/BridgeBlindTransfer_impl_ari_1_9_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/models/BridgeBlindTransfer_impl_ari_1_9_0.java index 187e99ae..baa9ebd3 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/models/BridgeBlindTransfer_impl_ari_1_9_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/models/BridgeBlindTransfer_impl_ari_1_9_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Wed Aug 31 18:05:10 CEST 2016 +// Generated on: Sat Feb 04 15:23:09 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/models/BridgeCreated_impl_ari_1_9_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/models/BridgeCreated_impl_ari_1_9_0.java index 313307e6..cd4a1601 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/models/BridgeCreated_impl_ari_1_9_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/models/BridgeCreated_impl_ari_1_9_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Wed Aug 31 18:05:10 CEST 2016 +// Generated on: Sat Feb 04 15:23:09 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/models/BridgeDestroyed_impl_ari_1_9_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/models/BridgeDestroyed_impl_ari_1_9_0.java index 6841e253..582f099d 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/models/BridgeDestroyed_impl_ari_1_9_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/models/BridgeDestroyed_impl_ari_1_9_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Wed Aug 31 18:05:10 CEST 2016 +// Generated on: Sat Feb 04 15:23:09 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/models/BridgeMerged_impl_ari_1_9_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/models/BridgeMerged_impl_ari_1_9_0.java index 7d347b9f..68915562 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/models/BridgeMerged_impl_ari_1_9_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/models/BridgeMerged_impl_ari_1_9_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Wed Aug 31 18:05:10 CEST 2016 +// Generated on: Sat Feb 04 15:23:09 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/models/Bridge_impl_ari_1_9_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/models/Bridge_impl_ari_1_9_0.java index 450f61bc..1e6742c0 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/models/Bridge_impl_ari_1_9_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/models/Bridge_impl_ari_1_9_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Wed Aug 31 18:05:10 CEST 2016 +// Generated on: Sat Feb 04 15:23:09 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; @@ -100,6 +100,41 @@ public void setTechnology(String val ) { technology = val; } -/** No missing signatures from interface */ +/********************************************************** + * The video mode the bridge is using. One of 'none', 'talker', or 'single'. + * + * @since ari_2_0_0 + *********************************************************/ + public String getVideo_mode(){ + throw new UnsupportedOperationException("Method availble from ..."); +}; + +/********************************************************** + * The ID of the channel that is the source of video in this bridge, if one exists. + * + * @since ari_2_0_0 + *********************************************************/ + public String getVideo_source_id(){ + throw new UnsupportedOperationException("Method availble from ..."); +}; + +/********************************************************** + * The video mode the bridge is using. One of 'none', 'talker', or 'single'. + * + * @since ari_2_0_0 + *********************************************************/ + public void setVideo_mode(String val ){ + throw new UnsupportedOperationException("Method availble from ..."); +}; + +/********************************************************** + * The ID of the channel that is the source of video in this bridge, if one exists. + * + * @since ari_2_0_0 + *********************************************************/ + public void setVideo_source_id(String val ){ + throw new UnsupportedOperationException("Method availble from ..."); +}; + } diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/models/BuildInfo_impl_ari_1_9_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/models/BuildInfo_impl_ari_1_9_0.java index a0a99e8c..6f00c0a8 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/models/BuildInfo_impl_ari_1_9_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/models/BuildInfo_impl_ari_1_9_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Wed Aug 31 18:05:10 CEST 2016 +// Generated on: Sat Feb 04 15:23:09 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/models/CallerID_impl_ari_1_9_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/models/CallerID_impl_ari_1_9_0.java index e98f4b68..0b255389 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/models/CallerID_impl_ari_1_9_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/models/CallerID_impl_ari_1_9_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Wed Aug 31 18:05:10 CEST 2016 +// Generated on: Sat Feb 04 15:23:09 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/models/ChannelCallerId_impl_ari_1_9_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/models/ChannelCallerId_impl_ari_1_9_0.java index 1da543a3..2c97187f 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/models/ChannelCallerId_impl_ari_1_9_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/models/ChannelCallerId_impl_ari_1_9_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Wed Aug 31 18:05:10 CEST 2016 +// Generated on: Sat Feb 04 15:23:09 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/models/ChannelConnectedLine_impl_ari_1_9_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/models/ChannelConnectedLine_impl_ari_1_9_0.java index 7184b328..8f073bec 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/models/ChannelConnectedLine_impl_ari_1_9_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/models/ChannelConnectedLine_impl_ari_1_9_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Wed Aug 31 18:05:10 CEST 2016 +// Generated on: Sat Feb 04 15:23:09 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/models/ChannelCreated_impl_ari_1_9_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/models/ChannelCreated_impl_ari_1_9_0.java index 43bf8cd4..4401f821 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/models/ChannelCreated_impl_ari_1_9_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/models/ChannelCreated_impl_ari_1_9_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Wed Aug 31 18:05:10 CEST 2016 +// Generated on: Sat Feb 04 15:23:09 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/models/ChannelDestroyed_impl_ari_1_9_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/models/ChannelDestroyed_impl_ari_1_9_0.java index d3da38eb..6444019f 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/models/ChannelDestroyed_impl_ari_1_9_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/models/ChannelDestroyed_impl_ari_1_9_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Wed Aug 31 18:05:10 CEST 2016 +// Generated on: Sat Feb 04 15:23:09 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/models/ChannelDialplan_impl_ari_1_9_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/models/ChannelDialplan_impl_ari_1_9_0.java index 0f94c48e..7c87b7e9 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/models/ChannelDialplan_impl_ari_1_9_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/models/ChannelDialplan_impl_ari_1_9_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Wed Aug 31 18:05:10 CEST 2016 +// Generated on: Sat Feb 04 15:23:09 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/models/ChannelDtmfReceived_impl_ari_1_9_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/models/ChannelDtmfReceived_impl_ari_1_9_0.java index 7e2082ef..efeb2f35 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/models/ChannelDtmfReceived_impl_ari_1_9_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/models/ChannelDtmfReceived_impl_ari_1_9_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Wed Aug 31 18:05:10 CEST 2016 +// Generated on: Sat Feb 04 15:23:09 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/models/ChannelEnteredBridge_impl_ari_1_9_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/models/ChannelEnteredBridge_impl_ari_1_9_0.java index aad8c116..f8122a12 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/models/ChannelEnteredBridge_impl_ari_1_9_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/models/ChannelEnteredBridge_impl_ari_1_9_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Wed Aug 31 18:05:10 CEST 2016 +// Generated on: Sat Feb 04 15:23:09 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/models/ChannelHangupRequest_impl_ari_1_9_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/models/ChannelHangupRequest_impl_ari_1_9_0.java index 9bc21ac4..32eb0a4e 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/models/ChannelHangupRequest_impl_ari_1_9_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/models/ChannelHangupRequest_impl_ari_1_9_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Wed Aug 31 18:05:10 CEST 2016 +// Generated on: Sat Feb 04 15:23:09 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/models/ChannelHold_impl_ari_1_9_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/models/ChannelHold_impl_ari_1_9_0.java index 66c60ef6..c3cde183 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/models/ChannelHold_impl_ari_1_9_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/models/ChannelHold_impl_ari_1_9_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Wed Aug 31 18:05:10 CEST 2016 +// Generated on: Sat Feb 04 15:23:09 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/models/ChannelLeftBridge_impl_ari_1_9_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/models/ChannelLeftBridge_impl_ari_1_9_0.java index 877eeac5..88b7ec81 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/models/ChannelLeftBridge_impl_ari_1_9_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/models/ChannelLeftBridge_impl_ari_1_9_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Wed Aug 31 18:05:10 CEST 2016 +// Generated on: Sat Feb 04 15:23:09 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/models/ChannelStateChange_impl_ari_1_9_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/models/ChannelStateChange_impl_ari_1_9_0.java index 1921ab73..4216d9fb 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/models/ChannelStateChange_impl_ari_1_9_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/models/ChannelStateChange_impl_ari_1_9_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Wed Aug 31 18:05:10 CEST 2016 +// Generated on: Sat Feb 04 15:23:09 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/models/ChannelTalkingFinished_impl_ari_1_9_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/models/ChannelTalkingFinished_impl_ari_1_9_0.java index 3cbcc61f..ffbcb88f 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/models/ChannelTalkingFinished_impl_ari_1_9_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/models/ChannelTalkingFinished_impl_ari_1_9_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Wed Aug 31 18:05:10 CEST 2016 +// Generated on: Sat Feb 04 15:23:09 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/models/ChannelTalkingStarted_impl_ari_1_9_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/models/ChannelTalkingStarted_impl_ari_1_9_0.java index 2c350130..cd9f748a 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/models/ChannelTalkingStarted_impl_ari_1_9_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/models/ChannelTalkingStarted_impl_ari_1_9_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Wed Aug 31 18:05:10 CEST 2016 +// Generated on: Sat Feb 04 15:23:09 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/models/ChannelUnhold_impl_ari_1_9_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/models/ChannelUnhold_impl_ari_1_9_0.java index 34a9aa12..bbf10957 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/models/ChannelUnhold_impl_ari_1_9_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/models/ChannelUnhold_impl_ari_1_9_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Wed Aug 31 18:05:10 CEST 2016 +// Generated on: Sat Feb 04 15:23:09 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/models/ChannelUserevent_impl_ari_1_9_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/models/ChannelUserevent_impl_ari_1_9_0.java index 0d15c93a..e7184530 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/models/ChannelUserevent_impl_ari_1_9_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/models/ChannelUserevent_impl_ari_1_9_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Wed Aug 31 18:05:10 CEST 2016 +// Generated on: Sat Feb 04 15:23:09 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/models/ChannelVarset_impl_ari_1_9_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/models/ChannelVarset_impl_ari_1_9_0.java index 42f73487..94d3476f 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/models/ChannelVarset_impl_ari_1_9_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/models/ChannelVarset_impl_ari_1_9_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Wed Aug 31 18:05:10 CEST 2016 +// Generated on: Sat Feb 04 15:23:09 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/models/Channel_impl_ari_1_9_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/models/Channel_impl_ari_1_9_0.java index 63177a5e..eda963f6 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/models/Channel_impl_ari_1_9_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/models/Channel_impl_ari_1_9_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Wed Aug 31 18:05:10 CEST 2016 +// Generated on: Sat Feb 04 15:23:09 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; @@ -122,6 +122,23 @@ public void setState(String val ) { state = val; } -/** No missing signatures from interface */ +/********************************************************** + * Channel variables + * + * @since ari_2_0_0 + *********************************************************/ + public String getChannelvars(){ + throw new UnsupportedOperationException("Method availble from ..."); +}; + +/********************************************************** + * Channel variables + * + * @since ari_2_0_0 + *********************************************************/ + public void setChannelvars(String val ){ + throw new UnsupportedOperationException("Method availble from ..."); +}; + } diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/models/ConfigInfo_impl_ari_1_9_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/models/ConfigInfo_impl_ari_1_9_0.java index e91ef4ba..d273d0e2 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/models/ConfigInfo_impl_ari_1_9_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/models/ConfigInfo_impl_ari_1_9_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Wed Aug 31 18:05:10 CEST 2016 +// Generated on: Sat Feb 04 15:23:09 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/models/ConfigTuple_impl_ari_1_9_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/models/ConfigTuple_impl_ari_1_9_0.java index 6c76c08f..beb76cf8 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/models/ConfigTuple_impl_ari_1_9_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/models/ConfigTuple_impl_ari_1_9_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Wed Aug 31 18:05:10 CEST 2016 +// Generated on: Sat Feb 04 15:23:09 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/models/ContactInfo_impl_ari_1_9_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/models/ContactInfo_impl_ari_1_9_0.java index d1f69b05..e216d1f9 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/models/ContactInfo_impl_ari_1_9_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/models/ContactInfo_impl_ari_1_9_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Wed Aug 31 18:05:10 CEST 2016 +// Generated on: Sat Feb 04 15:23:09 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/models/ContactStatusChange_impl_ari_1_9_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/models/ContactStatusChange_impl_ari_1_9_0.java index cec6eee5..a9ed3955 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/models/ContactStatusChange_impl_ari_1_9_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/models/ContactStatusChange_impl_ari_1_9_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Wed Aug 31 18:05:10 CEST 2016 +// Generated on: Sat Feb 04 15:23:09 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/models/DeviceStateChanged_impl_ari_1_9_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/models/DeviceStateChanged_impl_ari_1_9_0.java index a83e5887..f048c738 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/models/DeviceStateChanged_impl_ari_1_9_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/models/DeviceStateChanged_impl_ari_1_9_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Wed Aug 31 18:05:10 CEST 2016 +// Generated on: Sat Feb 04 15:23:09 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/models/DeviceState_impl_ari_1_9_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/models/DeviceState_impl_ari_1_9_0.java index c26b46a4..b215ef95 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/models/DeviceState_impl_ari_1_9_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/models/DeviceState_impl_ari_1_9_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Wed Aug 31 18:05:10 CEST 2016 +// Generated on: Sat Feb 04 15:23:09 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/models/Dial_impl_ari_1_9_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/models/Dial_impl_ari_1_9_0.java index 24043577..6572beac 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/models/Dial_impl_ari_1_9_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/models/Dial_impl_ari_1_9_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Wed Aug 31 18:05:10 CEST 2016 +// Generated on: Sat Feb 04 15:23:09 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/models/Dialed_impl_ari_1_9_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/models/Dialed_impl_ari_1_9_0.java index 20ce330a..7c8ca4bf 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/models/Dialed_impl_ari_1_9_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/models/Dialed_impl_ari_1_9_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Wed Aug 31 18:05:10 CEST 2016 +// Generated on: Sat Feb 04 15:23:09 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/models/DialplanCEP_impl_ari_1_9_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/models/DialplanCEP_impl_ari_1_9_0.java index 0a5f6e6a..d001842d 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/models/DialplanCEP_impl_ari_1_9_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/models/DialplanCEP_impl_ari_1_9_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Wed Aug 31 18:05:10 CEST 2016 +// Generated on: Sat Feb 04 15:23:09 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/models/EndpointStateChange_impl_ari_1_9_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/models/EndpointStateChange_impl_ari_1_9_0.java index bf73328d..2c52b822 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/models/EndpointStateChange_impl_ari_1_9_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/models/EndpointStateChange_impl_ari_1_9_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Wed Aug 31 18:05:10 CEST 2016 +// Generated on: Sat Feb 04 15:23:09 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/models/Endpoint_impl_ari_1_9_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/models/Endpoint_impl_ari_1_9_0.java index 09c91dc8..600c8dc7 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/models/Endpoint_impl_ari_1_9_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/models/Endpoint_impl_ari_1_9_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Wed Aug 31 18:05:10 CEST 2016 +// Generated on: Sat Feb 04 15:23:09 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/models/Event_impl_ari_1_9_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/models/Event_impl_ari_1_9_0.java index 0a3e9180..0d2f6298 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/models/Event_impl_ari_1_9_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/models/Event_impl_ari_1_9_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Wed Aug 31 18:05:10 CEST 2016 +// Generated on: Sat Feb 04 15:23:09 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/models/FormatLangPair_impl_ari_1_9_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/models/FormatLangPair_impl_ari_1_9_0.java index cbc52aa4..1aab337c 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/models/FormatLangPair_impl_ari_1_9_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/models/FormatLangPair_impl_ari_1_9_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Wed Aug 31 18:05:10 CEST 2016 +// Generated on: Sat Feb 04 15:23:09 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/models/LiveRecording_impl_ari_1_9_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/models/LiveRecording_impl_ari_1_9_0.java index 96eb9951..f27e09be 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/models/LiveRecording_impl_ari_1_9_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/models/LiveRecording_impl_ari_1_9_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Wed Aug 31 18:05:10 CEST 2016 +// Generated on: Sat Feb 04 15:23:09 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/models/LogChannel_impl_ari_1_9_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/models/LogChannel_impl_ari_1_9_0.java index b37ddbdc..510f0f85 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/models/LogChannel_impl_ari_1_9_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/models/LogChannel_impl_ari_1_9_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Wed Aug 31 18:05:10 CEST 2016 +// Generated on: Sat Feb 04 15:23:09 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/models/Message_impl_ari_1_9_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/models/Message_impl_ari_1_9_0.java index cc898fcd..9a1db25d 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/models/Message_impl_ari_1_9_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/models/Message_impl_ari_1_9_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Wed Aug 31 18:05:10 CEST 2016 +// Generated on: Sat Feb 04 15:23:09 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; @@ -77,6 +77,23 @@ public void setType(String val ) { type = val; } -/** No missing signatures from interface */ +/********************************************************** + * The unique ID for the Asterisk instance that raised this event. + * + * @since ari_2_0_0 + *********************************************************/ + public void setAsterisk_id(String val ){ + throw new UnsupportedOperationException("Method availble from ..."); +}; + +/********************************************************** + * The unique ID for the Asterisk instance that raised this event. + * + * @since ari_2_0_0 + *********************************************************/ + public String getAsterisk_id(){ + throw new UnsupportedOperationException("Method availble from ..."); +}; + } diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/models/MissingParams_impl_ari_1_9_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/models/MissingParams_impl_ari_1_9_0.java index 96bf3a34..5751868c 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/models/MissingParams_impl_ari_1_9_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/models/MissingParams_impl_ari_1_9_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Wed Aug 31 18:05:10 CEST 2016 +// Generated on: Sat Feb 04 15:23:09 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/models/Module_impl_ari_1_9_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/models/Module_impl_ari_1_9_0.java index f5a16c26..7a198449 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/models/Module_impl_ari_1_9_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/models/Module_impl_ari_1_9_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Wed Aug 31 18:05:10 CEST 2016 +// Generated on: Sat Feb 04 15:23:09 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/models/PeerStatusChange_impl_ari_1_9_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/models/PeerStatusChange_impl_ari_1_9_0.java index 9137c04f..8e382153 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/models/PeerStatusChange_impl_ari_1_9_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/models/PeerStatusChange_impl_ari_1_9_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Wed Aug 31 18:05:10 CEST 2016 +// Generated on: Sat Feb 04 15:23:09 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/models/Peer_impl_ari_1_9_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/models/Peer_impl_ari_1_9_0.java index 9855a31a..a3dd5cea 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/models/Peer_impl_ari_1_9_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/models/Peer_impl_ari_1_9_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Wed Aug 31 18:05:10 CEST 2016 +// Generated on: Sat Feb 04 15:23:09 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/models/PlaybackFinished_impl_ari_1_9_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/models/PlaybackFinished_impl_ari_1_9_0.java index 9dcc19b7..91869b01 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/models/PlaybackFinished_impl_ari_1_9_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/models/PlaybackFinished_impl_ari_1_9_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Wed Aug 31 18:05:10 CEST 2016 +// Generated on: Sat Feb 04 15:23:09 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/models/PlaybackStarted_impl_ari_1_9_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/models/PlaybackStarted_impl_ari_1_9_0.java index 272879e3..62bc1b1b 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/models/PlaybackStarted_impl_ari_1_9_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/models/PlaybackStarted_impl_ari_1_9_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Wed Aug 31 18:05:10 CEST 2016 +// Generated on: Sat Feb 04 15:23:09 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/models/Playback_impl_ari_1_9_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/models/Playback_impl_ari_1_9_0.java index 23231adb..e9ffea06 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/models/Playback_impl_ari_1_9_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/models/Playback_impl_ari_1_9_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Wed Aug 31 18:05:10 CEST 2016 +// Generated on: Sat Feb 04 15:23:09 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; @@ -81,7 +81,7 @@ public void setTarget_uri(String val ) { * * @since ari_1_10_0 *********************************************************/ - public void setNext_media_uri(String val ){ + public String getNext_media_uri(){ throw new UnsupportedOperationException("Method availble from ..."); }; @@ -90,7 +90,7 @@ public void setNext_media_uri(String val ){ * * @since ari_1_10_0 *********************************************************/ - public String getNext_media_uri(){ + public void setNext_media_uri(String val ){ throw new UnsupportedOperationException("Method availble from ..."); }; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/models/RecordingFailed_impl_ari_1_9_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/models/RecordingFailed_impl_ari_1_9_0.java index 4ef34ce7..8f520c6b 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/models/RecordingFailed_impl_ari_1_9_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/models/RecordingFailed_impl_ari_1_9_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Wed Aug 31 18:05:10 CEST 2016 +// Generated on: Sat Feb 04 15:23:09 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/models/RecordingFinished_impl_ari_1_9_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/models/RecordingFinished_impl_ari_1_9_0.java index 1313c205..fd9359c2 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/models/RecordingFinished_impl_ari_1_9_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/models/RecordingFinished_impl_ari_1_9_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Wed Aug 31 18:05:10 CEST 2016 +// Generated on: Sat Feb 04 15:23:09 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/models/RecordingStarted_impl_ari_1_9_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/models/RecordingStarted_impl_ari_1_9_0.java index 88f05a47..a74d5c75 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/models/RecordingStarted_impl_ari_1_9_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/models/RecordingStarted_impl_ari_1_9_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Wed Aug 31 18:05:10 CEST 2016 +// Generated on: Sat Feb 04 15:23:09 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/models/SetId_impl_ari_1_9_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/models/SetId_impl_ari_1_9_0.java index c3fc94d1..9cea67dd 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/models/SetId_impl_ari_1_9_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/models/SetId_impl_ari_1_9_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Wed Aug 31 18:05:10 CEST 2016 +// Generated on: Sat Feb 04 15:23:09 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/models/Sound_impl_ari_1_9_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/models/Sound_impl_ari_1_9_0.java index c9660028..47f13cec 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/models/Sound_impl_ari_1_9_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/models/Sound_impl_ari_1_9_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Wed Aug 31 18:05:10 CEST 2016 +// Generated on: Sat Feb 04 15:23:09 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/models/StasisEnd_impl_ari_1_9_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/models/StasisEnd_impl_ari_1_9_0.java index 578b077a..fa395c94 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/models/StasisEnd_impl_ari_1_9_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/models/StasisEnd_impl_ari_1_9_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Wed Aug 31 18:05:10 CEST 2016 +// Generated on: Sat Feb 04 15:23:09 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/models/StasisStart_impl_ari_1_9_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/models/StasisStart_impl_ari_1_9_0.java index c041e6b4..2d127a49 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/models/StasisStart_impl_ari_1_9_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/models/StasisStart_impl_ari_1_9_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Wed Aug 31 18:05:10 CEST 2016 +// Generated on: Sat Feb 04 15:23:09 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/models/StatusInfo_impl_ari_1_9_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/models/StatusInfo_impl_ari_1_9_0.java index 49c35d53..845bd9d0 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/models/StatusInfo_impl_ari_1_9_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/models/StatusInfo_impl_ari_1_9_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Wed Aug 31 18:05:10 CEST 2016 +// Generated on: Sat Feb 04 15:23:09 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/models/StoredRecording_impl_ari_1_9_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/models/StoredRecording_impl_ari_1_9_0.java index 425e51a6..15327215 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/models/StoredRecording_impl_ari_1_9_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/models/StoredRecording_impl_ari_1_9_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Wed Aug 31 18:05:10 CEST 2016 +// Generated on: Sat Feb 04 15:23:09 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/models/SystemInfo_impl_ari_1_9_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/models/SystemInfo_impl_ari_1_9_0.java index bd06e340..36680559 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/models/SystemInfo_impl_ari_1_9_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/models/SystemInfo_impl_ari_1_9_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Wed Aug 31 18:05:10 CEST 2016 +// Generated on: Sat Feb 04 15:23:09 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/models/TextMessageReceived_impl_ari_1_9_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/models/TextMessageReceived_impl_ari_1_9_0.java index 7211399c..aae2f622 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/models/TextMessageReceived_impl_ari_1_9_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/models/TextMessageReceived_impl_ari_1_9_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Wed Aug 31 18:05:10 CEST 2016 +// Generated on: Sat Feb 04 15:23:09 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/models/TextMessageVariable_impl_ari_1_9_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/models/TextMessageVariable_impl_ari_1_9_0.java index e65e364d..318740f1 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/models/TextMessageVariable_impl_ari_1_9_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/models/TextMessageVariable_impl_ari_1_9_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Wed Aug 31 18:05:10 CEST 2016 +// Generated on: Sat Feb 04 15:23:09 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/models/TextMessage_impl_ari_1_9_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/models/TextMessage_impl_ari_1_9_0.java index a89fb3da..048e1bc4 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/models/TextMessage_impl_ari_1_9_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/models/TextMessage_impl_ari_1_9_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Wed Aug 31 18:05:10 CEST 2016 +// Generated on: Sat Feb 04 15:23:09 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/models/Variable_impl_ari_1_9_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/models/Variable_impl_ari_1_9_0.java index 782b3a67..f14edffb 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/models/Variable_impl_ari_1_9_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/models/Variable_impl_ari_1_9_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Wed Aug 31 18:05:10 CEST 2016 +// Generated on: Sat Feb 04 15:23:09 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_2_0_0/AriBuilder_impl_ari_2_0_0.java b/classes/ch/loway/oss/ari4java/generated/ari_2_0_0/AriBuilder_impl_ari_2_0_0.java new file mode 100644 index 00000000..18555a95 --- /dev/null +++ b/classes/ch/loway/oss/ari4java/generated/ari_2_0_0/AriBuilder_impl_ari_2_0_0.java @@ -0,0 +1,328 @@ +package ch.loway.oss.ari4java.generated.ari_2_0_0; + +// ---------------------------------------------------- +// THIS CLASS WAS GENERATED AUTOMATICALLY +// PLEASE DO NOT EDIT +// Generated on: Sat Feb 04 15:23:09 CET 2017 +// ---------------------------------------------------- + +import ch.loway.oss.ari4java.generated.ari_2_0_0.models.*; +import ch.loway.oss.ari4java.generated.ari_2_0_0.actions.*; +import ch.loway.oss.ari4java.generated.*; +import ch.loway.oss.ari4java.ARI; + +public class AriBuilder_impl_ari_2_0_0 implements AriBuilder { + +public ActionEndpoints actionEndpoints() { + return new ActionEndpoints_impl_ari_2_0_0(); + }; + +public ActionBridges actionBridges() { + return new ActionBridges_impl_ari_2_0_0(); + }; + +public ActionChannels actionChannels() { + return new ActionChannels_impl_ari_2_0_0(); + }; + +public ActionSounds actionSounds() { + return new ActionSounds_impl_ari_2_0_0(); + }; + +public ActionPlaybacks actionPlaybacks() { + return new ActionPlaybacks_impl_ari_2_0_0(); + }; + +public ActionApplications actionApplications() { + return new ActionApplications_impl_ari_2_0_0(); + }; + +public ActionDeviceStates actionDeviceStates() { + return new ActionDeviceStates_impl_ari_2_0_0(); + }; + +public ActionEvents actionEvents() { + return new ActionEvents_impl_ari_2_0_0(); + }; + +public ActionAsterisk actionAsterisk() { + return new ActionAsterisk_impl_ari_2_0_0(); + }; + +public ActionRecordings actionRecordings() { + return new ActionRecordings_impl_ari_2_0_0(); + }; + +public Endpoint endpoint() { + return new Endpoint_impl_ari_2_0_0(); + }; + +public TextMessage textMessage() { + return new TextMessage_impl_ari_2_0_0(); + }; + +public ContactInfo contactInfo() { + return new ContactInfo_impl_ari_2_0_0(); + }; + +public BridgeBlindTransfer bridgeBlindTransfer() { + return new BridgeBlindTransfer_impl_ari_2_0_0(); + }; + +public DialplanCEP dialplanCEP() { + return new DialplanCEP_impl_ari_2_0_0(); + }; + +public RecordingStarted recordingStarted() { + return new RecordingStarted_impl_ari_2_0_0(); + }; + +public Bridge bridge() { + return new Bridge_impl_ari_2_0_0(); + }; + +public ChannelDestroyed channelDestroyed() { + return new ChannelDestroyed_impl_ari_2_0_0(); + }; + +public BridgeAttendedTransfer bridgeAttendedTransfer() { + return new BridgeAttendedTransfer_impl_ari_2_0_0(); + }; + +public Module module() { + return new Module_impl_ari_2_0_0(); + }; + +public ChannelTalkingFinished channelTalkingFinished() { + return new ChannelTalkingFinished_impl_ari_2_0_0(); + }; + +public MissingParams missingParams() { + return new MissingParams_impl_ari_2_0_0(); + }; + +public Message message() { + return new Message_impl_ari_2_0_0(); + }; + +public Dialed dialed() { + return new Dialed_impl_ari_2_0_0(); + }; + +public Playback playback() { + return new Playback_impl_ari_2_0_0(); + }; + +public Variable variable() { + return new Variable_impl_ari_2_0_0(); + }; + +public BridgeVideoSourceChanged bridgeVideoSourceChanged() { + return new BridgeVideoSourceChanged_impl_ari_2_0_0(); + }; + +public StatusInfo statusInfo() { + return new StatusInfo_impl_ari_2_0_0(); + }; + +public PeerStatusChange peerStatusChange() { + return new PeerStatusChange_impl_ari_2_0_0(); + }; + +public RecordingFinished recordingFinished() { + return new RecordingFinished_impl_ari_2_0_0(); + }; + +public ChannelLeftBridge channelLeftBridge() { + return new ChannelLeftBridge_impl_ari_2_0_0(); + }; + +public PlaybackContinuing playbackContinuing() { + return new PlaybackContinuing_impl_ari_2_0_0(); + }; + +public SetId setId() { + return new SetId_impl_ari_2_0_0(); + }; + +public ChannelEnteredBridge channelEnteredBridge() { + return new ChannelEnteredBridge_impl_ari_2_0_0(); + }; + +public ChannelDialplan channelDialplan() { + return new ChannelDialplan_impl_ari_2_0_0(); + }; + +public PlaybackFinished playbackFinished() { + return new PlaybackFinished_impl_ari_2_0_0(); + }; + +public ChannelUserevent channelUserevent() { + return new ChannelUserevent_impl_ari_2_0_0(); + }; + +public ChannelHold channelHold() { + return new ChannelHold_impl_ari_2_0_0(); + }; + +public SystemInfo systemInfo() { + return new SystemInfo_impl_ari_2_0_0(); + }; + +public ChannelHangupRequest channelHangupRequest() { + return new ChannelHangupRequest_impl_ari_2_0_0(); + }; + +public Peer peer() { + return new Peer_impl_ari_2_0_0(); + }; + +public BridgeMerged bridgeMerged() { + return new BridgeMerged_impl_ari_2_0_0(); + }; + +public StasisEnd stasisEnd() { + return new StasisEnd_impl_ari_2_0_0(); + }; + +public FormatLangPair formatLangPair() { + return new FormatLangPair_impl_ari_2_0_0(); + }; + +public ChannelDtmfReceived channelDtmfReceived() { + return new ChannelDtmfReceived_impl_ari_2_0_0(); + }; + +public DeviceState deviceState() { + return new DeviceState_impl_ari_2_0_0(); + }; + +public Channel channel() { + return new Channel_impl_ari_2_0_0(); + }; + +public Dial dial() { + return new Dial_impl_ari_2_0_0(); + }; + +public RecordingFailed recordingFailed() { + return new RecordingFailed_impl_ari_2_0_0(); + }; + +public ChannelCallerId channelCallerId() { + return new ChannelCallerId_impl_ari_2_0_0(); + }; + +public ChannelCreated channelCreated() { + return new ChannelCreated_impl_ari_2_0_0(); + }; + +public ChannelConnectedLine channelConnectedLine() { + return new ChannelConnectedLine_impl_ari_2_0_0(); + }; + +public StoredRecording storedRecording() { + return new StoredRecording_impl_ari_2_0_0(); + }; + +public TextMessageVariable textMessageVariable() { + return new TextMessageVariable_impl_ari_2_0_0(); + }; + +public EndpointStateChange endpointStateChange() { + return new EndpointStateChange_impl_ari_2_0_0(); + }; + +public ApplicationReplaced applicationReplaced() { + return new ApplicationReplaced_impl_ari_2_0_0(); + }; + +public ChannelVarset channelVarset() { + return new ChannelVarset_impl_ari_2_0_0(); + }; + +public ChannelStateChange channelStateChange() { + return new ChannelStateChange_impl_ari_2_0_0(); + }; + +public ConfigInfo configInfo() { + return new ConfigInfo_impl_ari_2_0_0(); + }; + +public TextMessageReceived textMessageReceived() { + return new TextMessageReceived_impl_ari_2_0_0(); + }; + +public BridgeCreated bridgeCreated() { + return new BridgeCreated_impl_ari_2_0_0(); + }; + +public BuildInfo buildInfo() { + return new BuildInfo_impl_ari_2_0_0(); + }; + +public LogChannel logChannel() { + return new LogChannel_impl_ari_2_0_0(); + }; + +public Event event() { + return new Event_impl_ari_2_0_0(); + }; + +public ChannelUnhold channelUnhold() { + return new ChannelUnhold_impl_ari_2_0_0(); + }; + +public Sound sound() { + return new Sound_impl_ari_2_0_0(); + }; + +public ContactStatusChange contactStatusChange() { + return new ContactStatusChange_impl_ari_2_0_0(); + }; + +public AsteriskInfo asteriskInfo() { + return new AsteriskInfo_impl_ari_2_0_0(); + }; + +public StasisStart stasisStart() { + return new StasisStart_impl_ari_2_0_0(); + }; + +public PlaybackStarted playbackStarted() { + return new PlaybackStarted_impl_ari_2_0_0(); + }; + +public ConfigTuple configTuple() { + return new ConfigTuple_impl_ari_2_0_0(); + }; + +public LiveRecording liveRecording() { + return new LiveRecording_impl_ari_2_0_0(); + }; + +public BridgeDestroyed bridgeDestroyed() { + return new BridgeDestroyed_impl_ari_2_0_0(); + }; + +public ChannelTalkingStarted channelTalkingStarted() { + return new ChannelTalkingStarted_impl_ari_2_0_0(); + }; + +public CallerID callerID() { + return new CallerID_impl_ari_2_0_0(); + }; + +public DeviceStateChanged deviceStateChanged() { + return new DeviceStateChanged_impl_ari_2_0_0(); + }; + +public Application application() { + return new Application_impl_ari_2_0_0(); + }; + +public ARI.ClassFactory getClassFactory() { + return new ClassTranslator_impl_ari_2_0_0(); +}; + +}; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_2_0_0/ClassTranslator_impl_ari_2_0_0.java b/classes/ch/loway/oss/ari4java/generated/ari_2_0_0/ClassTranslator_impl_ari_2_0_0.java new file mode 100644 index 00000000..b5baeac9 --- /dev/null +++ b/classes/ch/loway/oss/ari4java/generated/ari_2_0_0/ClassTranslator_impl_ari_2_0_0.java @@ -0,0 +1,335 @@ +package ch.loway.oss.ari4java.generated.ari_2_0_0; + +// ---------------------------------------------------- +// THIS CLASS WAS GENERATED AUTOMATICALLY +// PLEASE DO NOT EDIT +// Generated on: Sat Feb 04 15:23:09 CET 2017 +// ---------------------------------------------------- + +import ch.loway.oss.ari4java.ARI; +import ch.loway.oss.ari4java.generated.*; +import ch.loway.oss.ari4java.generated.ari_2_0_0.models.*; +import ch.loway.oss.ari4java.generated.ari_2_0_0.actions.*; + +/********************************************************** + * This is a class translator. + *********************************************************/ +public class ClassTranslator_impl_ari_2_0_0 implements ARI.ClassFactory { + + @Override + public Class getImplementationFor(Class interfaceClass) { + + if ( interfaceClass.equals(ActionApplications.class) ) { + return (ActionApplications_impl_ari_2_0_0.class); + } else + + if ( interfaceClass.equals(ActionAsterisk.class) ) { + return (ActionAsterisk_impl_ari_2_0_0.class); + } else + + if ( interfaceClass.equals(ActionBridges.class) ) { + return (ActionBridges_impl_ari_2_0_0.class); + } else + + if ( interfaceClass.equals(ActionChannels.class) ) { + return (ActionChannels_impl_ari_2_0_0.class); + } else + + if ( interfaceClass.equals(ActionDeviceStates.class) ) { + return (ActionDeviceStates_impl_ari_2_0_0.class); + } else + + if ( interfaceClass.equals(ActionEndpoints.class) ) { + return (ActionEndpoints_impl_ari_2_0_0.class); + } else + + if ( interfaceClass.equals(ActionEvents.class) ) { + return (ActionEvents_impl_ari_2_0_0.class); + } else + + if ( interfaceClass.equals(ActionPlaybacks.class) ) { + return (ActionPlaybacks_impl_ari_2_0_0.class); + } else + + if ( interfaceClass.equals(ActionRecordings.class) ) { + return (ActionRecordings_impl_ari_2_0_0.class); + } else + + if ( interfaceClass.equals(ActionSounds.class) ) { + return (ActionSounds_impl_ari_2_0_0.class); + } else + + if ( interfaceClass.equals(Application.class) ) { + return (Application_impl_ari_2_0_0.class); + } else + + if ( interfaceClass.equals(ApplicationReplaced.class) ) { + return (ApplicationReplaced_impl_ari_2_0_0.class); + } else + + if ( interfaceClass.equals(AsteriskInfo.class) ) { + return (AsteriskInfo_impl_ari_2_0_0.class); + } else + + if ( interfaceClass.equals(Bridge.class) ) { + return (Bridge_impl_ari_2_0_0.class); + } else + + if ( interfaceClass.equals(BridgeAttendedTransfer.class) ) { + return (BridgeAttendedTransfer_impl_ari_2_0_0.class); + } else + + if ( interfaceClass.equals(BridgeBlindTransfer.class) ) { + return (BridgeBlindTransfer_impl_ari_2_0_0.class); + } else + + if ( interfaceClass.equals(BridgeCreated.class) ) { + return (BridgeCreated_impl_ari_2_0_0.class); + } else + + if ( interfaceClass.equals(BridgeDestroyed.class) ) { + return (BridgeDestroyed_impl_ari_2_0_0.class); + } else + + if ( interfaceClass.equals(BridgeMerged.class) ) { + return (BridgeMerged_impl_ari_2_0_0.class); + } else + + if ( interfaceClass.equals(BridgeVideoSourceChanged.class) ) { + return (BridgeVideoSourceChanged_impl_ari_2_0_0.class); + } else + + if ( interfaceClass.equals(BuildInfo.class) ) { + return (BuildInfo_impl_ari_2_0_0.class); + } else + + if ( interfaceClass.equals(CallerID.class) ) { + return (CallerID_impl_ari_2_0_0.class); + } else + + if ( interfaceClass.equals(Channel.class) ) { + return (Channel_impl_ari_2_0_0.class); + } else + + if ( interfaceClass.equals(ChannelCallerId.class) ) { + return (ChannelCallerId_impl_ari_2_0_0.class); + } else + + if ( interfaceClass.equals(ChannelConnectedLine.class) ) { + return (ChannelConnectedLine_impl_ari_2_0_0.class); + } else + + if ( interfaceClass.equals(ChannelCreated.class) ) { + return (ChannelCreated_impl_ari_2_0_0.class); + } else + + if ( interfaceClass.equals(ChannelDestroyed.class) ) { + return (ChannelDestroyed_impl_ari_2_0_0.class); + } else + + if ( interfaceClass.equals(ChannelDialplan.class) ) { + return (ChannelDialplan_impl_ari_2_0_0.class); + } else + + if ( interfaceClass.equals(ChannelDtmfReceived.class) ) { + return (ChannelDtmfReceived_impl_ari_2_0_0.class); + } else + + if ( interfaceClass.equals(ChannelEnteredBridge.class) ) { + return (ChannelEnteredBridge_impl_ari_2_0_0.class); + } else + + if ( interfaceClass.equals(ChannelHangupRequest.class) ) { + return (ChannelHangupRequest_impl_ari_2_0_0.class); + } else + + if ( interfaceClass.equals(ChannelHold.class) ) { + return (ChannelHold_impl_ari_2_0_0.class); + } else + + if ( interfaceClass.equals(ChannelLeftBridge.class) ) { + return (ChannelLeftBridge_impl_ari_2_0_0.class); + } else + + if ( interfaceClass.equals(ChannelStateChange.class) ) { + return (ChannelStateChange_impl_ari_2_0_0.class); + } else + + if ( interfaceClass.equals(ChannelTalkingFinished.class) ) { + return (ChannelTalkingFinished_impl_ari_2_0_0.class); + } else + + if ( interfaceClass.equals(ChannelTalkingStarted.class) ) { + return (ChannelTalkingStarted_impl_ari_2_0_0.class); + } else + + if ( interfaceClass.equals(ChannelUnhold.class) ) { + return (ChannelUnhold_impl_ari_2_0_0.class); + } else + + if ( interfaceClass.equals(ChannelUserevent.class) ) { + return (ChannelUserevent_impl_ari_2_0_0.class); + } else + + if ( interfaceClass.equals(ChannelVarset.class) ) { + return (ChannelVarset_impl_ari_2_0_0.class); + } else + + if ( interfaceClass.equals(ConfigInfo.class) ) { + return (ConfigInfo_impl_ari_2_0_0.class); + } else + + if ( interfaceClass.equals(ConfigTuple.class) ) { + return (ConfigTuple_impl_ari_2_0_0.class); + } else + + if ( interfaceClass.equals(ContactInfo.class) ) { + return (ContactInfo_impl_ari_2_0_0.class); + } else + + if ( interfaceClass.equals(ContactStatusChange.class) ) { + return (ContactStatusChange_impl_ari_2_0_0.class); + } else + + if ( interfaceClass.equals(DeviceState.class) ) { + return (DeviceState_impl_ari_2_0_0.class); + } else + + if ( interfaceClass.equals(DeviceStateChanged.class) ) { + return (DeviceStateChanged_impl_ari_2_0_0.class); + } else + + if ( interfaceClass.equals(Dial.class) ) { + return (Dial_impl_ari_2_0_0.class); + } else + + if ( interfaceClass.equals(Dialed.class) ) { + return (Dialed_impl_ari_2_0_0.class); + } else + + if ( interfaceClass.equals(DialplanCEP.class) ) { + return (DialplanCEP_impl_ari_2_0_0.class); + } else + + if ( interfaceClass.equals(Endpoint.class) ) { + return (Endpoint_impl_ari_2_0_0.class); + } else + + if ( interfaceClass.equals(EndpointStateChange.class) ) { + return (EndpointStateChange_impl_ari_2_0_0.class); + } else + + if ( interfaceClass.equals(Event.class) ) { + return (Event_impl_ari_2_0_0.class); + } else + + if ( interfaceClass.equals(FormatLangPair.class) ) { + return (FormatLangPair_impl_ari_2_0_0.class); + } else + + if ( interfaceClass.equals(LiveRecording.class) ) { + return (LiveRecording_impl_ari_2_0_0.class); + } else + + if ( interfaceClass.equals(LogChannel.class) ) { + return (LogChannel_impl_ari_2_0_0.class); + } else + + if ( interfaceClass.equals(Message.class) ) { + return (Message_impl_ari_2_0_0.class); + } else + + if ( interfaceClass.equals(MissingParams.class) ) { + return (MissingParams_impl_ari_2_0_0.class); + } else + + if ( interfaceClass.equals(Module.class) ) { + return (Module_impl_ari_2_0_0.class); + } else + + if ( interfaceClass.equals(Peer.class) ) { + return (Peer_impl_ari_2_0_0.class); + } else + + if ( interfaceClass.equals(PeerStatusChange.class) ) { + return (PeerStatusChange_impl_ari_2_0_0.class); + } else + + if ( interfaceClass.equals(Playback.class) ) { + return (Playback_impl_ari_2_0_0.class); + } else + + if ( interfaceClass.equals(PlaybackContinuing.class) ) { + return (PlaybackContinuing_impl_ari_2_0_0.class); + } else + + if ( interfaceClass.equals(PlaybackFinished.class) ) { + return (PlaybackFinished_impl_ari_2_0_0.class); + } else + + if ( interfaceClass.equals(PlaybackStarted.class) ) { + return (PlaybackStarted_impl_ari_2_0_0.class); + } else + + if ( interfaceClass.equals(RecordingFailed.class) ) { + return (RecordingFailed_impl_ari_2_0_0.class); + } else + + if ( interfaceClass.equals(RecordingFinished.class) ) { + return (RecordingFinished_impl_ari_2_0_0.class); + } else + + if ( interfaceClass.equals(RecordingStarted.class) ) { + return (RecordingStarted_impl_ari_2_0_0.class); + } else + + if ( interfaceClass.equals(SetId.class) ) { + return (SetId_impl_ari_2_0_0.class); + } else + + if ( interfaceClass.equals(Sound.class) ) { + return (Sound_impl_ari_2_0_0.class); + } else + + if ( interfaceClass.equals(StasisEnd.class) ) { + return (StasisEnd_impl_ari_2_0_0.class); + } else + + if ( interfaceClass.equals(StasisStart.class) ) { + return (StasisStart_impl_ari_2_0_0.class); + } else + + if ( interfaceClass.equals(StatusInfo.class) ) { + return (StatusInfo_impl_ari_2_0_0.class); + } else + + if ( interfaceClass.equals(StoredRecording.class) ) { + return (StoredRecording_impl_ari_2_0_0.class); + } else + + if ( interfaceClass.equals(SystemInfo.class) ) { + return (SystemInfo_impl_ari_2_0_0.class); + } else + + if ( interfaceClass.equals(TextMessage.class) ) { + return (TextMessage_impl_ari_2_0_0.class); + } else + + if ( interfaceClass.equals(TextMessageReceived.class) ) { + return (TextMessageReceived_impl_ari_2_0_0.class); + } else + + if ( interfaceClass.equals(TextMessageVariable.class) ) { + return (TextMessageVariable_impl_ari_2_0_0.class); + } else + + if ( interfaceClass.equals(Variable.class) ) { + return (Variable_impl_ari_2_0_0.class); + } else + { + return null; + } + } +} + + diff --git a/classes/ch/loway/oss/ari4java/generated/ari_2_0_0/actions/ActionApplications_impl_ari_2_0_0.java b/classes/ch/loway/oss/ari4java/generated/ari_2_0_0/actions/ActionApplications_impl_ari_2_0_0.java new file mode 100644 index 00000000..065e40f7 --- /dev/null +++ b/classes/ch/loway/oss/ari4java/generated/ari_2_0_0/actions/ActionApplications_impl_ari_2_0_0.java @@ -0,0 +1,140 @@ +package ch.loway.oss.ari4java.generated.ari_2_0_0.actions; + +// ---------------------------------------------------- +// THIS CLASS WAS GENERATED AUTOMATICALLY +// PLEASE DO NOT EDIT +// Generated on: Sat Feb 04 15:23:09 CET 2017 +// ---------------------------------------------------- + +import ch.loway.oss.ari4java.generated.*; +import java.util.Date; +import java.util.List; +import java.util.Map; +import java.util.ArrayList; +import ch.loway.oss.ari4java.tools.BaseAriAction; +import ch.loway.oss.ari4java.tools.RestException; +import ch.loway.oss.ari4java.tools.AriCallback; +import ch.loway.oss.ari4java.tools.HttpParam; +import ch.loway.oss.ari4java.tools.HttpResponse; +import com.fasterxml.jackson.core.type.TypeReference; +import ch.loway.oss.ari4java.generated.ari_2_0_0.models.*; + +/********************************************************** + * + * Generated by: Apis + *********************************************************/ + + +public class ActionApplications_impl_ari_2_0_0 extends BaseAriAction implements ActionApplications { +/********************************************************** + * Stasis applications + * + * List all applications. + *********************************************************/ +private void buildList() { +reset(); +url = "/applications"; +method = "GET"; +} + +@Override +public List list() throws RestException { +buildList(); +String json = httpActionSync(); +return deserializeJsonAsAbstractList( json, + new TypeReference>() {} ); +} + +@Override +public void list(AriCallback> callback) { +buildList(); +httpActionAsync(callback, new TypeReference>() {}); +} + +/********************************************************** + * Stasis application + * + * Get details of an application. + *********************************************************/ +private void buildGet(String applicationName) { +reset(); +url = "/applications/" + applicationName + ""; +method = "GET"; +lE.add( HttpResponse.build( 404, "Application does not exist.") ); +} + +@Override +public Application get(String applicationName) throws RestException { +buildGet(applicationName); +String json = httpActionSync(); +return deserializeJson( json, Application_impl_ari_2_0_0.class ); +} + +@Override +public void get(String applicationName, AriCallback callback) { +buildGet(applicationName); +httpActionAsync(callback, Application_impl_ari_2_0_0.class); +} + +/********************************************************** + * Stasis application + * + * Subscribe an application to a event source. + * Returns the state of the application after the subscriptions have changed + *********************************************************/ +private void buildSubscribe(String applicationName, String eventSource) { +reset(); +url = "/applications/" + applicationName + "/subscription"; +method = "POST"; +lParamQuery.add( HttpParam.build( "eventSource", eventSource) ); +lE.add( HttpResponse.build( 400, "Missing parameter.") ); +lE.add( HttpResponse.build( 404, "Application does not exist.") ); +lE.add( HttpResponse.build( 422, "Event source does not exist.") ); +} + +@Override +public Application subscribe(String applicationName, String eventSource) throws RestException { +buildSubscribe(applicationName, eventSource); +String json = httpActionSync(); +return deserializeJson( json, Application_impl_ari_2_0_0.class ); +} + +@Override +public void subscribe(String applicationName, String eventSource, AriCallback callback) { +buildSubscribe(applicationName, eventSource); +httpActionAsync(callback, Application_impl_ari_2_0_0.class); +} + +/********************************************************** + * Stasis application + * + * Unsubscribe an application from an event source. + * Returns the state of the application after the subscriptions have changed + *********************************************************/ +private void buildUnsubscribe(String applicationName, String eventSource) { +reset(); +url = "/applications/" + applicationName + "/subscription"; +method = "DELETE"; +lParamQuery.add( HttpParam.build( "eventSource", eventSource) ); +lE.add( HttpResponse.build( 400, "Missing parameter; event source scheme not recognized.") ); +lE.add( HttpResponse.build( 404, "Application does not exist.") ); +lE.add( HttpResponse.build( 409, "Application not subscribed to event source.") ); +lE.add( HttpResponse.build( 422, "Event source does not exist.") ); +} + +@Override +public Application unsubscribe(String applicationName, String eventSource) throws RestException { +buildUnsubscribe(applicationName, eventSource); +String json = httpActionSync(); +return deserializeJson( json, Application_impl_ari_2_0_0.class ); +} + +@Override +public void unsubscribe(String applicationName, String eventSource, AriCallback callback) { +buildUnsubscribe(applicationName, eventSource); +httpActionAsync(callback, Application_impl_ari_2_0_0.class); +} + +/** No missing signatures from interface */ +}; + diff --git a/classes/ch/loway/oss/ari4java/generated/ari_2_0_0/actions/ActionAsterisk_impl_ari_2_0_0.java b/classes/ch/loway/oss/ari4java/generated/ari_2_0_0/actions/ActionAsterisk_impl_ari_2_0_0.java new file mode 100644 index 00000000..1a8aaa03 --- /dev/null +++ b/classes/ch/loway/oss/ari4java/generated/ari_2_0_0/actions/ActionAsterisk_impl_ari_2_0_0.java @@ -0,0 +1,412 @@ +package ch.loway.oss.ari4java.generated.ari_2_0_0.actions; + +// ---------------------------------------------------- +// THIS CLASS WAS GENERATED AUTOMATICALLY +// PLEASE DO NOT EDIT +// Generated on: Sat Feb 04 15:23:09 CET 2017 +// ---------------------------------------------------- + +import ch.loway.oss.ari4java.generated.*; +import java.util.Date; +import java.util.List; +import java.util.Map; +import java.util.ArrayList; +import ch.loway.oss.ari4java.tools.BaseAriAction; +import ch.loway.oss.ari4java.tools.RestException; +import ch.loway.oss.ari4java.tools.AriCallback; +import ch.loway.oss.ari4java.tools.HttpParam; +import ch.loway.oss.ari4java.tools.HttpResponse; +import com.fasterxml.jackson.core.type.TypeReference; +import ch.loway.oss.ari4java.generated.ari_2_0_0.models.*; + +/********************************************************** + * + * Generated by: Apis + *********************************************************/ + + +public class ActionAsterisk_impl_ari_2_0_0 extends BaseAriAction implements ActionAsterisk { +/********************************************************** + * Asterisk dynamic configuration + * + * Retrieve a dynamic configuration object. + *********************************************************/ +private void buildGetObject(String configClass, String objectType, String id) { +reset(); +url = "/asterisk/config/dynamic/" + configClass + "/" + objectType + "/" + id + ""; +method = "GET"; +lE.add( HttpResponse.build( 404, "{configClass|objectType|id} not found") ); +} + +@Override +public List getObject(String configClass, String objectType, String id) throws RestException { +buildGetObject(configClass, objectType, id); +String json = httpActionSync(); +return deserializeJsonAsAbstractList( json, + new TypeReference>() {} ); +} + +@Override +public void getObject(String configClass, String objectType, String id, AriCallback> callback) { +buildGetObject(configClass, objectType, id); +httpActionAsync(callback, new TypeReference>() {}); +} + +/********************************************************** + * Asterisk dynamic configuration + * + * Create or update a dynamic configuration object. + *********************************************************/ +private void buildUpdateObject(String configClass, String objectType, String id, Map fields) { +reset(); +url = "/asterisk/config/dynamic/" + configClass + "/" + objectType + "/" + id + ""; +method = "PUT"; +lParamBody.addAll( HttpParam.build( "fields", fields) ); +lE.add( HttpResponse.build( 400, "Bad request body") ); +lE.add( HttpResponse.build( 403, "Could not create or update object") ); +lE.add( HttpResponse.build( 404, "{configClass|objectType} not found") ); +} + +@Override +public List updateObject(String configClass, String objectType, String id, Map fields) throws RestException { +buildUpdateObject(configClass, objectType, id, fields); +String json = httpActionSync(); +return deserializeJsonAsAbstractList( json, + new TypeReference>() {} ); +} + +@Override +public void updateObject(String configClass, String objectType, String id, Map fields, AriCallback> callback) { +buildUpdateObject(configClass, objectType, id, fields); +httpActionAsync(callback, new TypeReference>() {}); +} + +/********************************************************** + * Asterisk dynamic configuration + * + * Delete a dynamic configuration object. + *********************************************************/ +private void buildDeleteObject(String configClass, String objectType, String id) { +reset(); +url = "/asterisk/config/dynamic/" + configClass + "/" + objectType + "/" + id + ""; +method = "DELETE"; +lE.add( HttpResponse.build( 403, "Could not delete object") ); +lE.add( HttpResponse.build( 404, "{configClass|objectType|id} not found") ); +} + +@Override +public void deleteObject(String configClass, String objectType, String id) throws RestException { +buildDeleteObject(configClass, objectType, id); +String json = httpActionSync(); +} + +@Override +public void deleteObject(String configClass, String objectType, String id, AriCallback callback) { +buildDeleteObject(configClass, objectType, id); +httpActionAsync(callback); +} + +/********************************************************** + * Asterisk system information (similar to core show settings) + * + * Gets Asterisk system information. + *********************************************************/ +private void buildGetInfo(String only) { +reset(); +url = "/asterisk/info"; +method = "GET"; +lParamQuery.add( HttpParam.build( "only", only) ); +} + +@Override +public AsteriskInfo getInfo(String only) throws RestException { +buildGetInfo(only); +String json = httpActionSync(); +return deserializeJson( json, AsteriskInfo_impl_ari_2_0_0.class ); +} + +@Override +public void getInfo(String only, AriCallback callback) { +buildGetInfo(only); +httpActionAsync(callback, AsteriskInfo_impl_ari_2_0_0.class); +} + +/********************************************************** + * Asterisk log channels + * + * Gets Asterisk log channel information. + *********************************************************/ +private void buildListLogChannels() { +reset(); +url = "/asterisk/logging"; +method = "GET"; +} + +@Override +public List listLogChannels() throws RestException { +buildListLogChannels(); +String json = httpActionSync(); +return deserializeJsonAsAbstractList( json, + new TypeReference>() {} ); +} + +@Override +public void listLogChannels(AriCallback> callback) { +buildListLogChannels(); +httpActionAsync(callback, new TypeReference>() {}); +} + +/********************************************************** + * Asterisk log channel + * + * Adds a log channel. + *********************************************************/ +private void buildAddLog(String logChannelName, String configuration) { +reset(); +url = "/asterisk/logging/" + logChannelName + ""; +method = "POST"; +lParamQuery.add( HttpParam.build( "configuration", configuration) ); +lE.add( HttpResponse.build( 400, "Bad request body") ); +lE.add( HttpResponse.build( 409, "Log channel could not be created.") ); +} + +@Override +public void addLog(String logChannelName, String configuration) throws RestException { +buildAddLog(logChannelName, configuration); +String json = httpActionSync(); +} + +@Override +public void addLog(String logChannelName, String configuration, AriCallback callback) { +buildAddLog(logChannelName, configuration); +httpActionAsync(callback); +} + +/********************************************************** + * Asterisk log channel + * + * Deletes a log channel. + *********************************************************/ +private void buildDeleteLog(String logChannelName) { +reset(); +url = "/asterisk/logging/" + logChannelName + ""; +method = "DELETE"; +lE.add( HttpResponse.build( 404, "Log channel does not exist.") ); +} + +@Override +public void deleteLog(String logChannelName) throws RestException { +buildDeleteLog(logChannelName); +String json = httpActionSync(); +} + +@Override +public void deleteLog(String logChannelName, AriCallback callback) { +buildDeleteLog(logChannelName); +httpActionAsync(callback); +} + +/********************************************************** + * Asterisk log channel + * + * Rotates a log channel. + *********************************************************/ +private void buildRotateLog(String logChannelName) { +reset(); +url = "/asterisk/logging/" + logChannelName + "/rotate"; +method = "PUT"; +lE.add( HttpResponse.build( 404, "Log channel does not exist.") ); +} + +@Override +public void rotateLog(String logChannelName) throws RestException { +buildRotateLog(logChannelName); +String json = httpActionSync(); +} + +@Override +public void rotateLog(String logChannelName, AriCallback callback) { +buildRotateLog(logChannelName); +httpActionAsync(callback); +} + +/********************************************************** + * Asterisk modules + * + * List Asterisk modules. + *********************************************************/ +private void buildListModules() { +reset(); +url = "/asterisk/modules"; +method = "GET"; +} + +@Override +public List listModules() throws RestException { +buildListModules(); +String json = httpActionSync(); +return deserializeJsonAsAbstractList( json, + new TypeReference>() {} ); +} + +@Override +public void listModules(AriCallback> callback) { +buildListModules(); +httpActionAsync(callback, new TypeReference>() {}); +} + +/********************************************************** + * Asterisk module + * + * Get Asterisk module information. + *********************************************************/ +private void buildGetModule(String moduleName) { +reset(); +url = "/asterisk/modules/" + moduleName + ""; +method = "GET"; +lE.add( HttpResponse.build( 404, "Module could not be found in running modules.") ); +lE.add( HttpResponse.build( 409, "Module information could not be retrieved.") ); +} + +@Override +public Module getModule(String moduleName) throws RestException { +buildGetModule(moduleName); +String json = httpActionSync(); +return deserializeJson( json, Module_impl_ari_2_0_0.class ); +} + +@Override +public void getModule(String moduleName, AriCallback callback) { +buildGetModule(moduleName); +httpActionAsync(callback, Module_impl_ari_2_0_0.class); +} + +/********************************************************** + * Asterisk module + * + * Load an Asterisk module. + *********************************************************/ +private void buildLoadModule(String moduleName) { +reset(); +url = "/asterisk/modules/" + moduleName + ""; +method = "POST"; +lE.add( HttpResponse.build( 409, "Module could not be loaded.") ); +} + +@Override +public void loadModule(String moduleName) throws RestException { +buildLoadModule(moduleName); +String json = httpActionSync(); +} + +@Override +public void loadModule(String moduleName, AriCallback callback) { +buildLoadModule(moduleName); +httpActionAsync(callback); +} + +/********************************************************** + * Asterisk module + * + * Unload an Asterisk module. + *********************************************************/ +private void buildUnloadModule(String moduleName) { +reset(); +url = "/asterisk/modules/" + moduleName + ""; +method = "DELETE"; +lE.add( HttpResponse.build( 404, "Module not found in running modules.") ); +lE.add( HttpResponse.build( 409, "Module could not be unloaded.") ); +} + +@Override +public void unloadModule(String moduleName) throws RestException { +buildUnloadModule(moduleName); +String json = httpActionSync(); +} + +@Override +public void unloadModule(String moduleName, AriCallback callback) { +buildUnloadModule(moduleName); +httpActionAsync(callback); +} + +/********************************************************** + * Asterisk module + * + * Reload an Asterisk module. + *********************************************************/ +private void buildReloadModule(String moduleName) { +reset(); +url = "/asterisk/modules/" + moduleName + ""; +method = "PUT"; +lE.add( HttpResponse.build( 404, "Module not found in running modules.") ); +lE.add( HttpResponse.build( 409, "Module could not be reloaded.") ); +} + +@Override +public void reloadModule(String moduleName) throws RestException { +buildReloadModule(moduleName); +String json = httpActionSync(); +} + +@Override +public void reloadModule(String moduleName, AriCallback callback) { +buildReloadModule(moduleName); +httpActionAsync(callback); +} + +/********************************************************** + * Global variables + * + * Get the value of a global variable. + *********************************************************/ +private void buildGetGlobalVar(String variable) { +reset(); +url = "/asterisk/variable"; +method = "GET"; +lParamQuery.add( HttpParam.build( "variable", variable) ); +lE.add( HttpResponse.build( 400, "Missing variable parameter.") ); +} + +@Override +public Variable getGlobalVar(String variable) throws RestException { +buildGetGlobalVar(variable); +String json = httpActionSync(); +return deserializeJson( json, Variable_impl_ari_2_0_0.class ); +} + +@Override +public void getGlobalVar(String variable, AriCallback callback) { +buildGetGlobalVar(variable); +httpActionAsync(callback, Variable_impl_ari_2_0_0.class); +} + +/********************************************************** + * Global variables + * + * Set the value of a global variable. + *********************************************************/ +private void buildSetGlobalVar(String variable, String value) { +reset(); +url = "/asterisk/variable"; +method = "POST"; +lParamQuery.add( HttpParam.build( "variable", variable) ); +lParamQuery.add( HttpParam.build( "value", value) ); +lE.add( HttpResponse.build( 400, "Missing variable parameter.") ); +} + +@Override +public void setGlobalVar(String variable, String value) throws RestException { +buildSetGlobalVar(variable, value); +String json = httpActionSync(); +} + +@Override +public void setGlobalVar(String variable, String value, AriCallback callback) { +buildSetGlobalVar(variable, value); +httpActionAsync(callback); +} + +/** No missing signatures from interface */ +}; + diff --git a/classes/ch/loway/oss/ari4java/generated/ari_2_0_0/actions/ActionBridges_impl_ari_2_0_0.java b/classes/ch/loway/oss/ari4java/generated/ari_2_0_0/actions/ActionBridges_impl_ari_2_0_0.java new file mode 100644 index 00000000..2813cdb0 --- /dev/null +++ b/classes/ch/loway/oss/ari4java/generated/ari_2_0_0/actions/ActionBridges_impl_ari_2_0_0.java @@ -0,0 +1,494 @@ +package ch.loway.oss.ari4java.generated.ari_2_0_0.actions; + +// ---------------------------------------------------- +// THIS CLASS WAS GENERATED AUTOMATICALLY +// PLEASE DO NOT EDIT +// Generated on: Sat Feb 04 15:23:09 CET 2017 +// ---------------------------------------------------- + +import ch.loway.oss.ari4java.generated.*; +import java.util.Date; +import java.util.List; +import java.util.Map; +import java.util.ArrayList; +import ch.loway.oss.ari4java.tools.BaseAriAction; +import ch.loway.oss.ari4java.tools.RestException; +import ch.loway.oss.ari4java.tools.AriCallback; +import ch.loway.oss.ari4java.tools.HttpParam; +import ch.loway.oss.ari4java.tools.HttpResponse; +import com.fasterxml.jackson.core.type.TypeReference; +import ch.loway.oss.ari4java.generated.ari_2_0_0.models.*; + +/********************************************************** + * + * Generated by: Apis + *********************************************************/ + + +public class ActionBridges_impl_ari_2_0_0 extends BaseAriAction implements ActionBridges { +/********************************************************** + * Active bridges + * + * List all active bridges in Asterisk. + *********************************************************/ +private void buildList() { +reset(); +url = "/bridges"; +method = "GET"; +} + +@Override +public List list() throws RestException { +buildList(); +String json = httpActionSync(); +return deserializeJsonAsAbstractList( json, + new TypeReference>() {} ); +} + +@Override +public void list(AriCallback> callback) { +buildList(); +httpActionAsync(callback, new TypeReference>() {}); +} + +/********************************************************** + * Active bridges + * + * Create a new bridge. + * This bridge persists until it has been shut down, or Asterisk has been shut down. + *********************************************************/ +private void buildCreate(String type, String bridgeId, String name) { +reset(); +url = "/bridges"; +method = "POST"; +lParamQuery.add( HttpParam.build( "type", type) ); +lParamQuery.add( HttpParam.build( "bridgeId", bridgeId) ); +lParamQuery.add( HttpParam.build( "name", name) ); +} + +@Override +public Bridge create(String type, String bridgeId, String name) throws RestException { +buildCreate(type, bridgeId, name); +String json = httpActionSync(); +return deserializeJson( json, Bridge_impl_ari_2_0_0.class ); +} + +@Override +public void create(String type, String bridgeId, String name, AriCallback callback) { +buildCreate(type, bridgeId, name); +httpActionAsync(callback, Bridge_impl_ari_2_0_0.class); +} + +/********************************************************** + * Individual bridge + * + * Create a new bridge or updates an existing one. + * This bridge persists until it has been shut down, or Asterisk has been shut down. + *********************************************************/ +private void buildCreateWithId(String type, String bridgeId, String name) { +reset(); +url = "/bridges/" + bridgeId + ""; +method = "POST"; +lParamQuery.add( HttpParam.build( "type", type) ); +lParamQuery.add( HttpParam.build( "name", name) ); +} + +@Override +public Bridge createWithId(String type, String bridgeId, String name) throws RestException { +buildCreateWithId(type, bridgeId, name); +String json = httpActionSync(); +return deserializeJson( json, Bridge_impl_ari_2_0_0.class ); +} + +@Override +public void createWithId(String type, String bridgeId, String name, AriCallback callback) { +buildCreateWithId(type, bridgeId, name); +httpActionAsync(callback, Bridge_impl_ari_2_0_0.class); +} + +/********************************************************** + * Individual bridge + * + * Get bridge details. + *********************************************************/ +private void buildGet(String bridgeId) { +reset(); +url = "/bridges/" + bridgeId + ""; +method = "GET"; +lE.add( HttpResponse.build( 404, "Bridge not found") ); +} + +@Override +public Bridge get(String bridgeId) throws RestException { +buildGet(bridgeId); +String json = httpActionSync(); +return deserializeJson( json, Bridge_impl_ari_2_0_0.class ); +} + +@Override +public void get(String bridgeId, AriCallback callback) { +buildGet(bridgeId); +httpActionAsync(callback, Bridge_impl_ari_2_0_0.class); +} + +/********************************************************** + * Individual bridge + * + * Shut down a bridge. + * If any channels are in this bridge, they will be removed and resume whatever they were doing beforehand. + *********************************************************/ +private void buildDestroy(String bridgeId) { +reset(); +url = "/bridges/" + bridgeId + ""; +method = "DELETE"; +lE.add( HttpResponse.build( 404, "Bridge not found") ); +} + +@Override +public void destroy(String bridgeId) throws RestException { +buildDestroy(bridgeId); +String json = httpActionSync(); +} + +@Override +public void destroy(String bridgeId, AriCallback callback) { +buildDestroy(bridgeId); +httpActionAsync(callback); +} + +/********************************************************** + * Add a channel to a bridge + * + * Add a channel to a bridge. + *********************************************************/ +private void buildAddChannel(String bridgeId, String channel, String role) { +reset(); +url = "/bridges/" + bridgeId + "/addChannel"; +method = "POST"; +lParamQuery.add( HttpParam.build( "channel", channel) ); +lParamQuery.add( HttpParam.build( "role", role) ); +lE.add( HttpResponse.build( 400, "Channel not found") ); +lE.add( HttpResponse.build( 404, "Bridge not found") ); +lE.add( HttpResponse.build( 409, "Bridge not in Stasis application; Channel currently recording") ); +lE.add( HttpResponse.build( 422, "Channel not in Stasis application") ); +} + +@Override +public void addChannel(String bridgeId, String channel, String role) throws RestException { +buildAddChannel(bridgeId, channel, role); +String json = httpActionSync(); +} + +@Override +public void addChannel(String bridgeId, String channel, String role, AriCallback callback) { +buildAddChannel(bridgeId, channel, role); +httpActionAsync(callback); +} + +/********************************************************** + * Play music on hold to a bridge + * + * Play music on hold to a bridge or change the MOH class that is playing. + *********************************************************/ +private void buildStartMoh(String bridgeId, String mohClass) { +reset(); +url = "/bridges/" + bridgeId + "/moh"; +method = "POST"; +lParamQuery.add( HttpParam.build( "mohClass", mohClass) ); +lE.add( HttpResponse.build( 404, "Bridge not found") ); +lE.add( HttpResponse.build( 409, "Bridge not in Stasis application") ); +} + +@Override +public void startMoh(String bridgeId, String mohClass) throws RestException { +buildStartMoh(bridgeId, mohClass); +String json = httpActionSync(); +} + +@Override +public void startMoh(String bridgeId, String mohClass, AriCallback callback) { +buildStartMoh(bridgeId, mohClass); +httpActionAsync(callback); +} + +/********************************************************** + * Play music on hold to a bridge + * + * Stop playing music on hold to a bridge. + * This will only stop music on hold being played via POST bridges/{bridgeId}/moh. + *********************************************************/ +private void buildStopMoh(String bridgeId) { +reset(); +url = "/bridges/" + bridgeId + "/moh"; +method = "DELETE"; +lE.add( HttpResponse.build( 404, "Bridge not found") ); +lE.add( HttpResponse.build( 409, "Bridge not in Stasis application") ); +} + +@Override +public void stopMoh(String bridgeId) throws RestException { +buildStopMoh(bridgeId); +String json = httpActionSync(); +} + +@Override +public void stopMoh(String bridgeId, AriCallback callback) { +buildStopMoh(bridgeId); +httpActionAsync(callback); +} + +/********************************************************** + * Play media to the participants of a bridge + * + * Start playback of media on a bridge. + * The media URI may be any of a number of URI's. Currently sound:, recording:, number:, digits:, characters:, and tone: URI's are supported. This operation creates a playback resource that can be used to control the playback of media (pause, rewind, fast forward, etc.) + *********************************************************/ +private void buildPlay(String bridgeId, String media, String lang, int offsetms, int skipms, String playbackId) { +reset(); +url = "/bridges/" + bridgeId + "/play"; +method = "POST"; +lParamQuery.add( HttpParam.build( "media", media) ); +lParamQuery.add( HttpParam.build( "lang", lang) ); +lParamQuery.add( HttpParam.build( "offsetms", offsetms) ); +lParamQuery.add( HttpParam.build( "skipms", skipms) ); +lParamQuery.add( HttpParam.build( "playbackId", playbackId) ); +lE.add( HttpResponse.build( 404, "Bridge not found") ); +lE.add( HttpResponse.build( 409, "Bridge not in a Stasis application") ); +} + +@Override +public Playback play(String bridgeId, String media, String lang, int offsetms, int skipms, String playbackId) throws RestException { +buildPlay(bridgeId, media, lang, offsetms, skipms, playbackId); +String json = httpActionSync(); +return deserializeJson( json, Playback_impl_ari_2_0_0.class ); +} + +@Override +public void play(String bridgeId, String media, String lang, int offsetms, int skipms, String playbackId, AriCallback callback) { +buildPlay(bridgeId, media, lang, offsetms, skipms, playbackId); +httpActionAsync(callback, Playback_impl_ari_2_0_0.class); +} + +/********************************************************** + * Play media to a bridge + * + * Start playback of media on a bridge. + * The media URI may be any of a number of URI's. Currently sound:, recording:, number:, digits:, characters:, and tone: URI's are supported. This operation creates a playback resource that can be used to control the playback of media (pause, rewind, fast forward, etc.) + *********************************************************/ +private void buildPlayWithId(String bridgeId, String playbackId, String media, String lang, int offsetms, int skipms) { +reset(); +url = "/bridges/" + bridgeId + "/play/" + playbackId + ""; +method = "POST"; +lParamQuery.add( HttpParam.build( "media", media) ); +lParamQuery.add( HttpParam.build( "lang", lang) ); +lParamQuery.add( HttpParam.build( "offsetms", offsetms) ); +lParamQuery.add( HttpParam.build( "skipms", skipms) ); +lE.add( HttpResponse.build( 404, "Bridge not found") ); +lE.add( HttpResponse.build( 409, "Bridge not in a Stasis application") ); +} + +@Override +public Playback playWithId(String bridgeId, String playbackId, String media, String lang, int offsetms, int skipms) throws RestException { +buildPlayWithId(bridgeId, playbackId, media, lang, offsetms, skipms); +String json = httpActionSync(); +return deserializeJson( json, Playback_impl_ari_2_0_0.class ); +} + +@Override +public void playWithId(String bridgeId, String playbackId, String media, String lang, int offsetms, int skipms, AriCallback callback) { +buildPlayWithId(bridgeId, playbackId, media, lang, offsetms, skipms); +httpActionAsync(callback, Playback_impl_ari_2_0_0.class); +} + +/********************************************************** + * Record audio on a bridge + * + * Start a recording. + * This records the mixed audio from all channels participating in this bridge. + *********************************************************/ +private void buildRecord(String bridgeId, String name, String format, int maxDurationSeconds, int maxSilenceSeconds, String ifExists, boolean beep, String terminateOn) { +reset(); +url = "/bridges/" + bridgeId + "/record"; +method = "POST"; +lParamQuery.add( HttpParam.build( "name", name) ); +lParamQuery.add( HttpParam.build( "format", format) ); +lParamQuery.add( HttpParam.build( "maxDurationSeconds", maxDurationSeconds) ); +lParamQuery.add( HttpParam.build( "maxSilenceSeconds", maxSilenceSeconds) ); +lParamQuery.add( HttpParam.build( "ifExists", ifExists) ); +lParamQuery.add( HttpParam.build( "beep", beep) ); +lParamQuery.add( HttpParam.build( "terminateOn", terminateOn) ); +lE.add( HttpResponse.build( 400, "Invalid parameters") ); +lE.add( HttpResponse.build( 404, "Bridge not found") ); +lE.add( HttpResponse.build( 409, "Bridge is not in a Stasis application; A recording with the same name already exists on the system and can not be overwritten because it is in progress or ifExists=fail") ); +lE.add( HttpResponse.build( 422, "The format specified is unknown on this system") ); +} + +@Override +public LiveRecording record(String bridgeId, String name, String format, int maxDurationSeconds, int maxSilenceSeconds, String ifExists, boolean beep, String terminateOn) throws RestException { +buildRecord(bridgeId, name, format, maxDurationSeconds, maxSilenceSeconds, ifExists, beep, terminateOn); +String json = httpActionSync(); +return deserializeJson( json, LiveRecording_impl_ari_2_0_0.class ); +} + +@Override +public void record(String bridgeId, String name, String format, int maxDurationSeconds, int maxSilenceSeconds, String ifExists, boolean beep, String terminateOn, AriCallback callback) { +buildRecord(bridgeId, name, format, maxDurationSeconds, maxSilenceSeconds, ifExists, beep, terminateOn); +httpActionAsync(callback, LiveRecording_impl_ari_2_0_0.class); +} + +/********************************************************** + * Remove a channel from a bridge + * + * Remove a channel from a bridge. + *********************************************************/ +private void buildRemoveChannel(String bridgeId, String channel) { +reset(); +url = "/bridges/" + bridgeId + "/removeChannel"; +method = "POST"; +lParamQuery.add( HttpParam.build( "channel", channel) ); +lE.add( HttpResponse.build( 400, "Channel not found") ); +lE.add( HttpResponse.build( 404, "Bridge not found") ); +lE.add( HttpResponse.build( 409, "Bridge not in Stasis application") ); +lE.add( HttpResponse.build( 422, "Channel not in this bridge") ); +} + +@Override +public void removeChannel(String bridgeId, String channel) throws RestException { +buildRemoveChannel(bridgeId, channel); +String json = httpActionSync(); +} + +@Override +public void removeChannel(String bridgeId, String channel, AriCallback callback) { +buildRemoveChannel(bridgeId, channel); +httpActionAsync(callback); +} + +/********************************************************** + * Removes any explicit video source + * + * Removes any explicit video source in a multi-party mixing bridge. This operation has no effect on bridges with two or fewer participants. When no explicit video source is set, talk detection will be used to determine the active video stream. + *********************************************************/ +private void buildClearVideoSource(String bridgeId) { +reset(); +url = "/bridges/" + bridgeId + "/videoSource"; +method = "DELETE"; +lE.add( HttpResponse.build( 404, "Bridge not found") ); +} + +@Override +public void clearVideoSource(String bridgeId) throws RestException { +buildClearVideoSource(bridgeId); +String json = httpActionSync(); +} + +@Override +public void clearVideoSource(String bridgeId, AriCallback callback) { +buildClearVideoSource(bridgeId); +httpActionAsync(callback); +} + +/********************************************************** + * Set a channel as the video source in a multi-party bridge + * + * Set a channel as the video source in a multi-party mixing bridge. This operation has no effect on bridges with two or fewer participants. + *********************************************************/ +private void buildSetVideoSource(String bridgeId, String channelId) { +reset(); +url = "/bridges/" + bridgeId + "/videoSource/" + channelId + ""; +method = "POST"; +lE.add( HttpResponse.build( 404, "Bridge or Channel not found") ); +lE.add( HttpResponse.build( 409, "Channel not in Stasis application") ); +lE.add( HttpResponse.build( 422, "Channel not in this Bridge") ); +} + +@Override +public void setVideoSource(String bridgeId, String channelId) throws RestException { +buildSetVideoSource(bridgeId, channelId); +String json = httpActionSync(); +} + +@Override +public void setVideoSource(String bridgeId, String channelId, AriCallback callback) { +buildSetVideoSource(bridgeId, channelId); +httpActionAsync(callback); +} + +/********************************************************** + * Start playback of media on a bridge. + * The media URI may be any of a number of URI's. Currently sound: and recording: URI's are supported. This operation creates a playback resource that can be used to control the playback of media (pause, rewind, fast forward, etc.) + * + * @since ari_0_0_1 + *********************************************************/ +public Playback play(String bridgeId, String media, String lang, int offsetms, int skipms) throws RestException{ + throw new UnsupportedOperationException("Method availble from ..."); +}; + +/********************************************************** + * + * + * @since ari_0_0_1 + *********************************************************/ +public void play(String bridgeId, String media, String lang, int offsetms, int skipms, AriCallback callback){ + throw new UnsupportedOperationException("Method availble from ..."); +}; + +/********************************************************** + * Create a new bridge. + * This bridge persists until it has been shut down, or Asterisk has been shut down. + * + * @since ari_1_0_0 + *********************************************************/ +public Bridge create(String type, String name) throws RestException{ + throw new UnsupportedOperationException("Method availble from ..."); +}; + +/********************************************************** + * + * + * @since ari_1_5_0 + *********************************************************/ +public void create_or_update_with_id(String type, String bridgeId, String name, AriCallback callback){ + throw new UnsupportedOperationException("Method availble from ..."); +}; + +/********************************************************** + * Create a new bridge or updates an existing one. + * This bridge persists until it has been shut down, or Asterisk has been shut down. + * + * @since ari_1_5_0 + *********************************************************/ +public Bridge create_or_update_with_id(String type, String bridgeId, String name) throws RestException{ + throw new UnsupportedOperationException("Method availble from ..."); +}; + +/********************************************************** + * Create a new bridge. + * This bridge persists until it has been shut down, or Asterisk has been shut down. + * + * @since ari_0_0_1 + *********************************************************/ +public Bridge create(String type) throws RestException{ + throw new UnsupportedOperationException("Method availble from ..."); +}; + +/********************************************************** + * + * + * @since ari_0_0_1 + *********************************************************/ +public void create(String type, AriCallback callback){ + throw new UnsupportedOperationException("Method availble from ..."); +}; + +/********************************************************** + * + * + * @since ari_1_0_0 + *********************************************************/ +public void create(String type, String name, AriCallback callback){ + throw new UnsupportedOperationException("Method availble from ..."); +}; + +}; + diff --git a/classes/ch/loway/oss/ari4java/generated/ari_2_0_0/actions/ActionChannels_impl_ari_2_0_0.java b/classes/ch/loway/oss/ari4java/generated/ari_2_0_0/actions/ActionChannels_impl_ari_2_0_0.java new file mode 100644 index 00000000..ad8d93d3 --- /dev/null +++ b/classes/ch/loway/oss/ari4java/generated/ari_2_0_0/actions/ActionChannels_impl_ari_2_0_0.java @@ -0,0 +1,1002 @@ +package ch.loway.oss.ari4java.generated.ari_2_0_0.actions; + +// ---------------------------------------------------- +// THIS CLASS WAS GENERATED AUTOMATICALLY +// PLEASE DO NOT EDIT +// Generated on: Sat Feb 04 15:23:09 CET 2017 +// ---------------------------------------------------- + +import ch.loway.oss.ari4java.generated.*; +import java.util.Date; +import java.util.List; +import java.util.Map; +import java.util.ArrayList; +import ch.loway.oss.ari4java.tools.BaseAriAction; +import ch.loway.oss.ari4java.tools.RestException; +import ch.loway.oss.ari4java.tools.AriCallback; +import ch.loway.oss.ari4java.tools.HttpParam; +import ch.loway.oss.ari4java.tools.HttpResponse; +import com.fasterxml.jackson.core.type.TypeReference; +import ch.loway.oss.ari4java.generated.ari_2_0_0.models.*; + +/********************************************************** + * + * Generated by: Apis + *********************************************************/ + + +public class ActionChannels_impl_ari_2_0_0 extends BaseAriAction implements ActionChannels { +/********************************************************** + * Active channels + * + * List all active channels in Asterisk. + *********************************************************/ +private void buildList() { +reset(); +url = "/channels"; +method = "GET"; +} + +@Override +public List list() throws RestException { +buildList(); +String json = httpActionSync(); +return deserializeJsonAsAbstractList( json, + new TypeReference>() {} ); +} + +@Override +public void list(AriCallback> callback) { +buildList(); +httpActionAsync(callback, new TypeReference>() {}); +} + +/********************************************************** + * Active channels + * + * Create a new channel (originate). + * The new channel is created immediately and a snapshot of it returned. If a Stasis application is provided it will be automatically subscribed to the originated channel for further events and updates. + *********************************************************/ +private void buildOriginate(String endpoint, String extension, String context, long priority, String label, String app, String appArgs, String callerId, int timeout, Map variables, String channelId, String otherChannelId, String originator, String formats) { +reset(); +url = "/channels"; +method = "POST"; +lParamQuery.add( HttpParam.build( "endpoint", endpoint) ); +lParamQuery.add( HttpParam.build( "extension", extension) ); +lParamQuery.add( HttpParam.build( "context", context) ); +lParamQuery.add( HttpParam.build( "priority", priority) ); +lParamQuery.add( HttpParam.build( "label", label) ); +lParamQuery.add( HttpParam.build( "app", app) ); +lParamQuery.add( HttpParam.build( "appArgs", appArgs) ); +lParamQuery.add( HttpParam.build( "callerId", callerId) ); +lParamQuery.add( HttpParam.build( "timeout", timeout) ); +lParamBody.addAll( HttpParam.build( "variables", variables) ); +lParamQuery.add( HttpParam.build( "channelId", channelId) ); +lParamQuery.add( HttpParam.build( "otherChannelId", otherChannelId) ); +lParamQuery.add( HttpParam.build( "originator", originator) ); +lParamQuery.add( HttpParam.build( "formats", formats) ); +lE.add( HttpResponse.build( 400, "Invalid parameters for originating a channel.") ); +lE.add( HttpResponse.build( 409, "Channel with given unique ID already exists.") ); +} + +@Override +public Channel originate(String endpoint, String extension, String context, long priority, String label, String app, String appArgs, String callerId, int timeout, Map variables, String channelId, String otherChannelId, String originator, String formats) throws RestException { +buildOriginate(endpoint, extension, context, priority, label, app, appArgs, callerId, timeout, variables, channelId, otherChannelId, originator, formats); +String json = httpActionSync(); +return deserializeJson( json, Channel_impl_ari_2_0_0.class ); +} + +@Override +public void originate(String endpoint, String extension, String context, long priority, String label, String app, String appArgs, String callerId, int timeout, Map variables, String channelId, String otherChannelId, String originator, String formats, AriCallback callback) { +buildOriginate(endpoint, extension, context, priority, label, app, appArgs, callerId, timeout, variables, channelId, otherChannelId, originator, formats); +httpActionAsync(callback, Channel_impl_ari_2_0_0.class); +} + +/********************************************************** + * Create a channel and place it in a Stasis app, but do not dial the channel yet. + * + * Create channel. + *********************************************************/ +private void buildCreate(String endpoint, String app, String appArgs, String channelId, String otherChannelId, String originator, String formats) { +reset(); +url = "/channels/create"; +method = "POST"; +lParamQuery.add( HttpParam.build( "endpoint", endpoint) ); +lParamQuery.add( HttpParam.build( "app", app) ); +lParamQuery.add( HttpParam.build( "appArgs", appArgs) ); +lParamQuery.add( HttpParam.build( "channelId", channelId) ); +lParamQuery.add( HttpParam.build( "otherChannelId", otherChannelId) ); +lParamQuery.add( HttpParam.build( "originator", originator) ); +lParamQuery.add( HttpParam.build( "formats", formats) ); +lE.add( HttpResponse.build( 409, "Channel with given unique ID already exists.") ); +} + +@Override +public Channel create(String endpoint, String app, String appArgs, String channelId, String otherChannelId, String originator, String formats) throws RestException { +buildCreate(endpoint, app, appArgs, channelId, otherChannelId, originator, formats); +String json = httpActionSync(); +return deserializeJson( json, Channel_impl_ari_2_0_0.class ); +} + +@Override +public void create(String endpoint, String app, String appArgs, String channelId, String otherChannelId, String originator, String formats, AriCallback callback) { +buildCreate(endpoint, app, appArgs, channelId, otherChannelId, originator, formats); +httpActionAsync(callback, Channel_impl_ari_2_0_0.class); +} + +/********************************************************** + * Active channel + * + * Channel details. + *********************************************************/ +private void buildGet(String channelId) { +reset(); +url = "/channels/" + channelId + ""; +method = "GET"; +lE.add( HttpResponse.build( 404, "Channel not found") ); +} + +@Override +public Channel get(String channelId) throws RestException { +buildGet(channelId); +String json = httpActionSync(); +return deserializeJson( json, Channel_impl_ari_2_0_0.class ); +} + +@Override +public void get(String channelId, AriCallback callback) { +buildGet(channelId); +httpActionAsync(callback, Channel_impl_ari_2_0_0.class); +} + +/********************************************************** + * Active channel + * + * Create a new channel (originate with id). + * The new channel is created immediately and a snapshot of it returned. If a Stasis application is provided it will be automatically subscribed to the originated channel for further events and updates. + *********************************************************/ +private void buildOriginateWithId(String channelId, String endpoint, String extension, String context, long priority, String label, String app, String appArgs, String callerId, int timeout, Map variables, String otherChannelId, String originator, String formats) { +reset(); +url = "/channels/" + channelId + ""; +method = "POST"; +lParamQuery.add( HttpParam.build( "endpoint", endpoint) ); +lParamQuery.add( HttpParam.build( "extension", extension) ); +lParamQuery.add( HttpParam.build( "context", context) ); +lParamQuery.add( HttpParam.build( "priority", priority) ); +lParamQuery.add( HttpParam.build( "label", label) ); +lParamQuery.add( HttpParam.build( "app", app) ); +lParamQuery.add( HttpParam.build( "appArgs", appArgs) ); +lParamQuery.add( HttpParam.build( "callerId", callerId) ); +lParamQuery.add( HttpParam.build( "timeout", timeout) ); +lParamBody.addAll( HttpParam.build( "variables", variables) ); +lParamQuery.add( HttpParam.build( "otherChannelId", otherChannelId) ); +lParamQuery.add( HttpParam.build( "originator", originator) ); +lParamQuery.add( HttpParam.build( "formats", formats) ); +lE.add( HttpResponse.build( 400, "Invalid parameters for originating a channel.") ); +lE.add( HttpResponse.build( 409, "Channel with given unique ID already exists.") ); +} + +@Override +public Channel originateWithId(String channelId, String endpoint, String extension, String context, long priority, String label, String app, String appArgs, String callerId, int timeout, Map variables, String otherChannelId, String originator, String formats) throws RestException { +buildOriginateWithId(channelId, endpoint, extension, context, priority, label, app, appArgs, callerId, timeout, variables, otherChannelId, originator, formats); +String json = httpActionSync(); +return deserializeJson( json, Channel_impl_ari_2_0_0.class ); +} + +@Override +public void originateWithId(String channelId, String endpoint, String extension, String context, long priority, String label, String app, String appArgs, String callerId, int timeout, Map variables, String otherChannelId, String originator, String formats, AriCallback callback) { +buildOriginateWithId(channelId, endpoint, extension, context, priority, label, app, appArgs, callerId, timeout, variables, otherChannelId, originator, formats); +httpActionAsync(callback, Channel_impl_ari_2_0_0.class); +} + +/********************************************************** + * Active channel + * + * Delete (i.e. hangup) a channel. + *********************************************************/ +private void buildHangup(String channelId, String reason) { +reset(); +url = "/channels/" + channelId + ""; +method = "DELETE"; +lParamQuery.add( HttpParam.build( "reason", reason) ); +lE.add( HttpResponse.build( 400, "Invalid reason for hangup provided") ); +lE.add( HttpResponse.build( 404, "Channel not found") ); +} + +@Override +public void hangup(String channelId, String reason) throws RestException { +buildHangup(channelId, reason); +String json = httpActionSync(); +} + +@Override +public void hangup(String channelId, String reason, AriCallback callback) { +buildHangup(channelId, reason); +httpActionAsync(callback); +} + +/********************************************************** + * Answer a channel + * + * Answer a channel. + *********************************************************/ +private void buildAnswer(String channelId) { +reset(); +url = "/channels/" + channelId + "/answer"; +method = "POST"; +lE.add( HttpResponse.build( 404, "Channel not found") ); +lE.add( HttpResponse.build( 409, "Channel not in a Stasis application") ); +lE.add( HttpResponse.build( 412, "Channel in invalid state") ); +} + +@Override +public void answer(String channelId) throws RestException { +buildAnswer(channelId); +String json = httpActionSync(); +} + +@Override +public void answer(String channelId, AriCallback callback) { +buildAnswer(channelId); +httpActionAsync(callback); +} + +/********************************************************** + * Exit application; continue execution in the dialplan + * + * Exit application; continue execution in the dialplan. + *********************************************************/ +private void buildContinueInDialplan(String channelId, String context, String extension, int priority, String label) { +reset(); +url = "/channels/" + channelId + "/continue"; +method = "POST"; +lParamQuery.add( HttpParam.build( "context", context) ); +lParamQuery.add( HttpParam.build( "extension", extension) ); +lParamQuery.add( HttpParam.build( "priority", priority) ); +lParamQuery.add( HttpParam.build( "label", label) ); +lE.add( HttpResponse.build( 404, "Channel not found") ); +lE.add( HttpResponse.build( 409, "Channel not in a Stasis application") ); +lE.add( HttpResponse.build( 412, "Channel in invalid state") ); +} + +@Override +public void continueInDialplan(String channelId, String context, String extension, int priority, String label) throws RestException { +buildContinueInDialplan(channelId, context, extension, priority, label); +String json = httpActionSync(); +} + +@Override +public void continueInDialplan(String channelId, String context, String extension, int priority, String label, AriCallback callback) { +buildContinueInDialplan(channelId, context, extension, priority, label); +httpActionAsync(callback); +} + +/********************************************************** + * Dial a channel + * + * Dial a created channel. + *********************************************************/ +private void buildDial(String channelId, String caller, int timeout) { +reset(); +url = "/channels/" + channelId + "/dial"; +method = "POST"; +lParamQuery.add( HttpParam.build( "caller", caller) ); +lParamQuery.add( HttpParam.build( "timeout", timeout) ); +lE.add( HttpResponse.build( 404, "Channel cannot be found.") ); +lE.add( HttpResponse.build( 409, "Channel cannot be dialed.") ); +} + +@Override +public void dial(String channelId, String caller, int timeout) throws RestException { +buildDial(channelId, caller, timeout); +String json = httpActionSync(); +} + +@Override +public void dial(String channelId, String caller, int timeout, AriCallback callback) { +buildDial(channelId, caller, timeout); +httpActionAsync(callback); +} + +/********************************************************** + * Send DTMF to a channel + * + * Send provided DTMF to a given channel. + *********************************************************/ +private void buildSendDTMF(String channelId, String dtmf, int before, int between, int duration, int after) { +reset(); +url = "/channels/" + channelId + "/dtmf"; +method = "POST"; +lParamQuery.add( HttpParam.build( "dtmf", dtmf) ); +lParamQuery.add( HttpParam.build( "before", before) ); +lParamQuery.add( HttpParam.build( "between", between) ); +lParamQuery.add( HttpParam.build( "duration", duration) ); +lParamQuery.add( HttpParam.build( "after", after) ); +lE.add( HttpResponse.build( 400, "DTMF is required") ); +lE.add( HttpResponse.build( 404, "Channel not found") ); +lE.add( HttpResponse.build( 409, "Channel not in a Stasis application") ); +lE.add( HttpResponse.build( 412, "Channel in invalid state") ); +} + +@Override +public void sendDTMF(String channelId, String dtmf, int before, int between, int duration, int after) throws RestException { +buildSendDTMF(channelId, dtmf, before, between, duration, after); +String json = httpActionSync(); +} + +@Override +public void sendDTMF(String channelId, String dtmf, int before, int between, int duration, int after, AriCallback callback) { +buildSendDTMF(channelId, dtmf, before, between, duration, after); +httpActionAsync(callback); +} + +/********************************************************** + * Put a channel on hold + * + * Hold a channel. + *********************************************************/ +private void buildHold(String channelId) { +reset(); +url = "/channels/" + channelId + "/hold"; +method = "POST"; +lE.add( HttpResponse.build( 404, "Channel not found") ); +lE.add( HttpResponse.build( 409, "Channel not in a Stasis application") ); +lE.add( HttpResponse.build( 412, "Channel in invalid state") ); +} + +@Override +public void hold(String channelId) throws RestException { +buildHold(channelId); +String json = httpActionSync(); +} + +@Override +public void hold(String channelId, AriCallback callback) { +buildHold(channelId); +httpActionAsync(callback); +} + +/********************************************************** + * Put a channel on hold + * + * Remove a channel from hold. + *********************************************************/ +private void buildUnhold(String channelId) { +reset(); +url = "/channels/" + channelId + "/hold"; +method = "DELETE"; +lE.add( HttpResponse.build( 404, "Channel not found") ); +lE.add( HttpResponse.build( 409, "Channel not in a Stasis application") ); +lE.add( HttpResponse.build( 412, "Channel in invalid state") ); +} + +@Override +public void unhold(String channelId) throws RestException { +buildUnhold(channelId); +String json = httpActionSync(); +} + +@Override +public void unhold(String channelId, AriCallback callback) { +buildUnhold(channelId); +httpActionAsync(callback); +} + +/********************************************************** + * Play music on hold to a channel + * + * Play music on hold to a channel. + * Using media operations such as /play on a channel playing MOH in this manner will suspend MOH without resuming automatically. If continuing music on hold is desired, the stasis application must reinitiate music on hold. + *********************************************************/ +private void buildStartMoh(String channelId, String mohClass) { +reset(); +url = "/channels/" + channelId + "/moh"; +method = "POST"; +lParamQuery.add( HttpParam.build( "mohClass", mohClass) ); +lE.add( HttpResponse.build( 404, "Channel not found") ); +lE.add( HttpResponse.build( 409, "Channel not in a Stasis application") ); +lE.add( HttpResponse.build( 412, "Channel in invalid state") ); +} + +@Override +public void startMoh(String channelId, String mohClass) throws RestException { +buildStartMoh(channelId, mohClass); +String json = httpActionSync(); +} + +@Override +public void startMoh(String channelId, String mohClass, AriCallback callback) { +buildStartMoh(channelId, mohClass); +httpActionAsync(callback); +} + +/********************************************************** + * Play music on hold to a channel + * + * Stop playing music on hold to a channel. + *********************************************************/ +private void buildStopMoh(String channelId) { +reset(); +url = "/channels/" + channelId + "/moh"; +method = "DELETE"; +lE.add( HttpResponse.build( 404, "Channel not found") ); +lE.add( HttpResponse.build( 409, "Channel not in a Stasis application") ); +lE.add( HttpResponse.build( 412, "Channel in invalid state") ); +} + +@Override +public void stopMoh(String channelId) throws RestException { +buildStopMoh(channelId); +String json = httpActionSync(); +} + +@Override +public void stopMoh(String channelId, AriCallback callback) { +buildStopMoh(channelId); +httpActionAsync(callback); +} + +/********************************************************** + * Mute a channel + * + * Mute a channel. + *********************************************************/ +private void buildMute(String channelId, String direction) { +reset(); +url = "/channels/" + channelId + "/mute"; +method = "POST"; +lParamQuery.add( HttpParam.build( "direction", direction) ); +lE.add( HttpResponse.build( 404, "Channel not found") ); +lE.add( HttpResponse.build( 409, "Channel not in a Stasis application") ); +lE.add( HttpResponse.build( 412, "Channel in invalid state") ); +} + +@Override +public void mute(String channelId, String direction) throws RestException { +buildMute(channelId, direction); +String json = httpActionSync(); +} + +@Override +public void mute(String channelId, String direction, AriCallback callback) { +buildMute(channelId, direction); +httpActionAsync(callback); +} + +/********************************************************** + * Mute a channel + * + * Unmute a channel. + *********************************************************/ +private void buildUnmute(String channelId, String direction) { +reset(); +url = "/channels/" + channelId + "/mute"; +method = "DELETE"; +lParamQuery.add( HttpParam.build( "direction", direction) ); +lE.add( HttpResponse.build( 404, "Channel not found") ); +lE.add( HttpResponse.build( 409, "Channel not in a Stasis application") ); +lE.add( HttpResponse.build( 412, "Channel in invalid state") ); +} + +@Override +public void unmute(String channelId, String direction) throws RestException { +buildUnmute(channelId, direction); +String json = httpActionSync(); +} + +@Override +public void unmute(String channelId, String direction, AriCallback callback) { +buildUnmute(channelId, direction); +httpActionAsync(callback); +} + +/********************************************************** + * Play media to a channel + * + * Start playback of media. + * The media URI may be any of a number of URI's. Currently sound:, recording:, number:, digits:, characters:, and tone: URI's are supported. This operation creates a playback resource that can be used to control the playback of media (pause, rewind, fast forward, etc.) + *********************************************************/ +private void buildPlay(String channelId, String media, String lang, int offsetms, int skipms, String playbackId) { +reset(); +url = "/channels/" + channelId + "/play"; +method = "POST"; +lParamQuery.add( HttpParam.build( "media", media) ); +lParamQuery.add( HttpParam.build( "lang", lang) ); +lParamQuery.add( HttpParam.build( "offsetms", offsetms) ); +lParamQuery.add( HttpParam.build( "skipms", skipms) ); +lParamQuery.add( HttpParam.build( "playbackId", playbackId) ); +lE.add( HttpResponse.build( 404, "Channel not found") ); +lE.add( HttpResponse.build( 409, "Channel not in a Stasis application") ); +lE.add( HttpResponse.build( 412, "Channel in invalid state") ); +} + +@Override +public Playback play(String channelId, String media, String lang, int offsetms, int skipms, String playbackId) throws RestException { +buildPlay(channelId, media, lang, offsetms, skipms, playbackId); +String json = httpActionSync(); +return deserializeJson( json, Playback_impl_ari_2_0_0.class ); +} + +@Override +public void play(String channelId, String media, String lang, int offsetms, int skipms, String playbackId, AriCallback callback) { +buildPlay(channelId, media, lang, offsetms, skipms, playbackId); +httpActionAsync(callback, Playback_impl_ari_2_0_0.class); +} + +/********************************************************** + * Play media to a channel + * + * Start playback of media and specify the playbackId. + * The media URI may be any of a number of URI's. Currently sound:, recording:, number:, digits:, characters:, and tone: URI's are supported. This operation creates a playback resource that can be used to control the playback of media (pause, rewind, fast forward, etc.) + *********************************************************/ +private void buildPlayWithId(String channelId, String playbackId, String media, String lang, int offsetms, int skipms) { +reset(); +url = "/channels/" + channelId + "/play/" + playbackId + ""; +method = "POST"; +lParamQuery.add( HttpParam.build( "media", media) ); +lParamQuery.add( HttpParam.build( "lang", lang) ); +lParamQuery.add( HttpParam.build( "offsetms", offsetms) ); +lParamQuery.add( HttpParam.build( "skipms", skipms) ); +lE.add( HttpResponse.build( 404, "Channel not found") ); +lE.add( HttpResponse.build( 409, "Channel not in a Stasis application") ); +lE.add( HttpResponse.build( 412, "Channel in invalid state") ); +} + +@Override +public Playback playWithId(String channelId, String playbackId, String media, String lang, int offsetms, int skipms) throws RestException { +buildPlayWithId(channelId, playbackId, media, lang, offsetms, skipms); +String json = httpActionSync(); +return deserializeJson( json, Playback_impl_ari_2_0_0.class ); +} + +@Override +public void playWithId(String channelId, String playbackId, String media, String lang, int offsetms, int skipms, AriCallback callback) { +buildPlayWithId(channelId, playbackId, media, lang, offsetms, skipms); +httpActionAsync(callback, Playback_impl_ari_2_0_0.class); +} + +/********************************************************** + * Record audio from a channel + * + * Start a recording. + * Record audio from a channel. Note that this will not capture audio sent to the channel. The bridge itself has a record feature if that's what you want. + *********************************************************/ +private void buildRecord(String channelId, String name, String format, int maxDurationSeconds, int maxSilenceSeconds, String ifExists, boolean beep, String terminateOn) { +reset(); +url = "/channels/" + channelId + "/record"; +method = "POST"; +lParamQuery.add( HttpParam.build( "name", name) ); +lParamQuery.add( HttpParam.build( "format", format) ); +lParamQuery.add( HttpParam.build( "maxDurationSeconds", maxDurationSeconds) ); +lParamQuery.add( HttpParam.build( "maxSilenceSeconds", maxSilenceSeconds) ); +lParamQuery.add( HttpParam.build( "ifExists", ifExists) ); +lParamQuery.add( HttpParam.build( "beep", beep) ); +lParamQuery.add( HttpParam.build( "terminateOn", terminateOn) ); +lE.add( HttpResponse.build( 400, "Invalid parameters") ); +lE.add( HttpResponse.build( 404, "Channel not found") ); +lE.add( HttpResponse.build( 409, "Channel is not in a Stasis application; the channel is currently bridged with other hcannels; A recording with the same name already exists on the system and can not be overwritten because it is in progress or ifExists=fail") ); +lE.add( HttpResponse.build( 422, "The format specified is unknown on this system") ); +} + +@Override +public LiveRecording record(String channelId, String name, String format, int maxDurationSeconds, int maxSilenceSeconds, String ifExists, boolean beep, String terminateOn) throws RestException { +buildRecord(channelId, name, format, maxDurationSeconds, maxSilenceSeconds, ifExists, beep, terminateOn); +String json = httpActionSync(); +return deserializeJson( json, LiveRecording_impl_ari_2_0_0.class ); +} + +@Override +public void record(String channelId, String name, String format, int maxDurationSeconds, int maxSilenceSeconds, String ifExists, boolean beep, String terminateOn, AriCallback callback) { +buildRecord(channelId, name, format, maxDurationSeconds, maxSilenceSeconds, ifExists, beep, terminateOn); +httpActionAsync(callback, LiveRecording_impl_ari_2_0_0.class); +} + +/********************************************************** + * Inform the channel that it should redirect itself to a different location. Note that this will almost certainly cause the channel to exit the application. + * + * Redirect the channel to a different location. + *********************************************************/ +private void buildRedirect(String channelId, String endpoint) { +reset(); +url = "/channels/" + channelId + "/redirect"; +method = "POST"; +lParamQuery.add( HttpParam.build( "endpoint", endpoint) ); +lE.add( HttpResponse.build( 400, "Endpoint parameter not provided") ); +lE.add( HttpResponse.build( 404, "Channel or endpoint not found") ); +lE.add( HttpResponse.build( 409, "Channel not in a Stasis application") ); +lE.add( HttpResponse.build( 422, "Endpoint is not the same type as the channel") ); +lE.add( HttpResponse.build( 412, "Channel in invalid state") ); +} + +@Override +public void redirect(String channelId, String endpoint) throws RestException { +buildRedirect(channelId, endpoint); +String json = httpActionSync(); +} + +@Override +public void redirect(String channelId, String endpoint, AriCallback callback) { +buildRedirect(channelId, endpoint); +httpActionAsync(callback); +} + +/********************************************************** + * Send a ringing indication to a channel + * + * Indicate ringing to a channel. + *********************************************************/ +private void buildRing(String channelId) { +reset(); +url = "/channels/" + channelId + "/ring"; +method = "POST"; +lE.add( HttpResponse.build( 404, "Channel not found") ); +lE.add( HttpResponse.build( 409, "Channel not in a Stasis application") ); +lE.add( HttpResponse.build( 412, "Channel in invalid state") ); +} + +@Override +public void ring(String channelId) throws RestException { +buildRing(channelId); +String json = httpActionSync(); +} + +@Override +public void ring(String channelId, AriCallback callback) { +buildRing(channelId); +httpActionAsync(callback); +} + +/********************************************************** + * Send a ringing indication to a channel + * + * Stop ringing indication on a channel if locally generated. + *********************************************************/ +private void buildRingStop(String channelId) { +reset(); +url = "/channels/" + channelId + "/ring"; +method = "DELETE"; +lE.add( HttpResponse.build( 404, "Channel not found") ); +lE.add( HttpResponse.build( 409, "Channel not in a Stasis application") ); +lE.add( HttpResponse.build( 412, "Channel in invalid state") ); +} + +@Override +public void ringStop(String channelId) throws RestException { +buildRingStop(channelId); +String json = httpActionSync(); +} + +@Override +public void ringStop(String channelId, AriCallback callback) { +buildRingStop(channelId); +httpActionAsync(callback); +} + +/********************************************************** + * Play silence to a channel + * + * Play silence to a channel. + * Using media operations such as /play on a channel playing silence in this manner will suspend silence without resuming automatically. + *********************************************************/ +private void buildStartSilence(String channelId) { +reset(); +url = "/channels/" + channelId + "/silence"; +method = "POST"; +lE.add( HttpResponse.build( 404, "Channel not found") ); +lE.add( HttpResponse.build( 409, "Channel not in a Stasis application") ); +lE.add( HttpResponse.build( 412, "Channel in invalid state") ); +} + +@Override +public void startSilence(String channelId) throws RestException { +buildStartSilence(channelId); +String json = httpActionSync(); +} + +@Override +public void startSilence(String channelId, AriCallback callback) { +buildStartSilence(channelId); +httpActionAsync(callback); +} + +/********************************************************** + * Play silence to a channel + * + * Stop playing silence to a channel. + *********************************************************/ +private void buildStopSilence(String channelId) { +reset(); +url = "/channels/" + channelId + "/silence"; +method = "DELETE"; +lE.add( HttpResponse.build( 404, "Channel not found") ); +lE.add( HttpResponse.build( 409, "Channel not in a Stasis application") ); +lE.add( HttpResponse.build( 412, "Channel in invalid state") ); +} + +@Override +public void stopSilence(String channelId) throws RestException { +buildStopSilence(channelId); +String json = httpActionSync(); +} + +@Override +public void stopSilence(String channelId, AriCallback callback) { +buildStopSilence(channelId); +httpActionAsync(callback); +} + +/********************************************************** + * Snoop (spy/whisper) on a channel + * + * Start snooping. + * Snoop (spy/whisper) on a specific channel. + *********************************************************/ +private void buildSnoopChannel(String channelId, String spy, String whisper, String app, String appArgs, String snoopId) { +reset(); +url = "/channels/" + channelId + "/snoop"; +method = "POST"; +lParamQuery.add( HttpParam.build( "spy", spy) ); +lParamQuery.add( HttpParam.build( "whisper", whisper) ); +lParamQuery.add( HttpParam.build( "app", app) ); +lParamQuery.add( HttpParam.build( "appArgs", appArgs) ); +lParamQuery.add( HttpParam.build( "snoopId", snoopId) ); +lE.add( HttpResponse.build( 400, "Invalid parameters") ); +lE.add( HttpResponse.build( 404, "Channel not found") ); +} + +@Override +public Channel snoopChannel(String channelId, String spy, String whisper, String app, String appArgs, String snoopId) throws RestException { +buildSnoopChannel(channelId, spy, whisper, app, appArgs, snoopId); +String json = httpActionSync(); +return deserializeJson( json, Channel_impl_ari_2_0_0.class ); +} + +@Override +public void snoopChannel(String channelId, String spy, String whisper, String app, String appArgs, String snoopId, AriCallback callback) { +buildSnoopChannel(channelId, spy, whisper, app, appArgs, snoopId); +httpActionAsync(callback, Channel_impl_ari_2_0_0.class); +} + +/********************************************************** + * Snoop (spy/whisper) on a channel + * + * Start snooping. + * Snoop (spy/whisper) on a specific channel. + *********************************************************/ +private void buildSnoopChannelWithId(String channelId, String snoopId, String spy, String whisper, String app, String appArgs) { +reset(); +url = "/channels/" + channelId + "/snoop/" + snoopId + ""; +method = "POST"; +lParamQuery.add( HttpParam.build( "spy", spy) ); +lParamQuery.add( HttpParam.build( "whisper", whisper) ); +lParamQuery.add( HttpParam.build( "app", app) ); +lParamQuery.add( HttpParam.build( "appArgs", appArgs) ); +lE.add( HttpResponse.build( 400, "Invalid parameters") ); +lE.add( HttpResponse.build( 404, "Channel not found") ); +} + +@Override +public Channel snoopChannelWithId(String channelId, String snoopId, String spy, String whisper, String app, String appArgs) throws RestException { +buildSnoopChannelWithId(channelId, snoopId, spy, whisper, app, appArgs); +String json = httpActionSync(); +return deserializeJson( json, Channel_impl_ari_2_0_0.class ); +} + +@Override +public void snoopChannelWithId(String channelId, String snoopId, String spy, String whisper, String app, String appArgs, AriCallback callback) { +buildSnoopChannelWithId(channelId, snoopId, spy, whisper, app, appArgs); +httpActionAsync(callback, Channel_impl_ari_2_0_0.class); +} + +/********************************************************** + * Variables on a channel + * + * Get the value of a channel variable or function. + *********************************************************/ +private void buildGetChannelVar(String channelId, String variable) { +reset(); +url = "/channels/" + channelId + "/variable"; +method = "GET"; +lParamQuery.add( HttpParam.build( "variable", variable) ); +lE.add( HttpResponse.build( 400, "Missing variable parameter.") ); +lE.add( HttpResponse.build( 404, "Channel or variable not found") ); +lE.add( HttpResponse.build( 409, "Channel not in a Stasis application") ); +} + +@Override +public Variable getChannelVar(String channelId, String variable) throws RestException { +buildGetChannelVar(channelId, variable); +String json = httpActionSync(); +return deserializeJson( json, Variable_impl_ari_2_0_0.class ); +} + +@Override +public void getChannelVar(String channelId, String variable, AriCallback callback) { +buildGetChannelVar(channelId, variable); +httpActionAsync(callback, Variable_impl_ari_2_0_0.class); +} + +/********************************************************** + * Variables on a channel + * + * Set the value of a channel variable or function. + *********************************************************/ +private void buildSetChannelVar(String channelId, String variable, String value) { +reset(); +url = "/channels/" + channelId + "/variable"; +method = "POST"; +lParamQuery.add( HttpParam.build( "variable", variable) ); +lParamQuery.add( HttpParam.build( "value", value) ); +lE.add( HttpResponse.build( 400, "Missing variable parameter.") ); +lE.add( HttpResponse.build( 404, "Channel not found") ); +lE.add( HttpResponse.build( 409, "Channel not in a Stasis application") ); +} + +@Override +public void setChannelVar(String channelId, String variable, String value) throws RestException { +buildSetChannelVar(channelId, variable, value); +String json = httpActionSync(); +} + +@Override +public void setChannelVar(String channelId, String variable, String value, AriCallback callback) { +buildSetChannelVar(channelId, variable, value); +httpActionAsync(callback); +} + +/********************************************************** + * + * + * @since ari_1_7_0 + *********************************************************/ +public void originate(String endpoint, String extension, String context, long priority, String label, String app, String appArgs, String callerId, int timeout, Map variables, String channelId, String otherChannelId, String originator, AriCallback callback){ + throw new UnsupportedOperationException("Method availble from ..."); +}; + +/********************************************************** + * Create a new channel (originate with id). + * The new channel is created immediately and a snapshot of it returned. If a Stasis application is provided it will be automatically subscribed to the originated channel for further events and updates. + * + * @since ari_1_5_0 + *********************************************************/ +public Channel originateWithId(String channelId, String endpoint, String extension, String context, long priority, String app, String appArgs, String callerId, int timeout, Map variables, String otherChannelId) throws RestException{ + throw new UnsupportedOperationException("Method availble from ..."); +}; + +/********************************************************** + * Start snooping. + * Snoop (spy/whisper) on a specific channel. + * + * @since ari_0_0_1 + *********************************************************/ +public Channel snoopChannel(String channelId, String spy, String whisper, String app, String appArgs) throws RestException{ + throw new UnsupportedOperationException("Method availble from ..."); +}; + +/********************************************************** + * + * + * @since ari_1_5_0 + *********************************************************/ +public void originate(String endpoint, String extension, String context, long priority, String app, String appArgs, String callerId, int timeout, Map variables, String channelId, String otherChannelId, AriCallback callback){ + throw new UnsupportedOperationException("Method availble from ..."); +}; + +/********************************************************** + * + * + * @since ari_0_0_1 + *********************************************************/ +public void continueInDialplan(String channelId, String context, String extension, int priority, AriCallback callback){ + throw new UnsupportedOperationException("Method availble from ..."); +}; + +/********************************************************** + * Start playback of media. + * The media URI may be any of a number of URI's. Currently sound: and recording: URI's are supported. This operation creates a playback resource that can be used to control the playback of media (pause, rewind, fast forward, etc.) + * + * @since ari_0_0_1 + *********************************************************/ +public Playback play(String channelId, String media, String lang, int offsetms, int skipms) throws RestException{ + throw new UnsupportedOperationException("Method availble from ..."); +}; + +/********************************************************** + * + * + * @since ari_0_0_1 + *********************************************************/ +public void play(String channelId, String media, String lang, int offsetms, int skipms, AriCallback callback){ + throw new UnsupportedOperationException("Method availble from ..."); +}; + +/********************************************************** + * + * + * @since ari_0_0_1 + *********************************************************/ +public void snoopChannel(String channelId, String spy, String whisper, String app, String appArgs, AriCallback callback){ + throw new UnsupportedOperationException("Method availble from ..."); +}; + +/********************************************************** + * Create a new channel (originate). + * The new channel is created immediately and a snapshot of it returned. If a Stasis application is provided it will be automatically subscribed to the originated channel for further events and updates. + * + * @since ari_1_7_0 + *********************************************************/ +public Channel originate(String endpoint, String extension, String context, long priority, String label, String app, String appArgs, String callerId, int timeout, Map variables, String channelId, String otherChannelId, String originator) throws RestException{ + throw new UnsupportedOperationException("Method availble from ..."); +}; + +/********************************************************** + * + * + * @since ari_1_5_0 + *********************************************************/ +public void originateWithId(String channelId, String endpoint, String extension, String context, long priority, String app, String appArgs, String callerId, int timeout, Map variables, String otherChannelId, AriCallback callback){ + throw new UnsupportedOperationException("Method availble from ..."); +}; + +/********************************************************** + * Create a new channel (originate with id). + * The new channel is created immediately and a snapshot of it returned. If a Stasis application is provided it will be automatically subscribed to the originated channel for further events and updates. + * + * @since ari_1_7_0 + *********************************************************/ +public Channel originateWithId(String channelId, String endpoint, String extension, String context, long priority, String label, String app, String appArgs, String callerId, int timeout, Map variables, String otherChannelId, String originator) throws RestException{ + throw new UnsupportedOperationException("Method availble from ..."); +}; + +/********************************************************** + * Create a new channel (originate). + * The new channel is created immediately and a snapshot of it returned. If a Stasis application is provided it will be automatically subscribed to the originated channel for further events and updates. + * + * @since ari_0_0_1 + *********************************************************/ +public Channel originate(String endpoint, String extension, String context, long priority, String app, String appArgs, String callerId, int timeout) throws RestException{ + throw new UnsupportedOperationException("Method availble from ..."); +}; + +/********************************************************** + * + * + * @since ari_1_7_0 + *********************************************************/ +public void originateWithId(String channelId, String endpoint, String extension, String context, long priority, String label, String app, String appArgs, String callerId, int timeout, Map variables, String otherChannelId, String originator, AriCallback callback){ + throw new UnsupportedOperationException("Method availble from ..."); +}; + +/********************************************************** + * Exit application{ + throw new UnsupportedOperationException("Method availble from ..."); +}; continue execution in the dialplan. + * + * + * @since ari_0_0_1 + *********************************************************/ +public void continueInDialplan(String channelId, String context, String extension, int priority) throws RestException{ + throw new UnsupportedOperationException("Method availble from ..."); +}; + +/********************************************************** + * Create a new channel (originate). + * The new channel is created immediately and a snapshot of it returned. If a Stasis application is provided it will be automatically subscribed to the originated channel for further events and updates. + * + * @since ari_1_5_0 + *********************************************************/ +public Channel originate(String endpoint, String extension, String context, long priority, String app, String appArgs, String callerId, int timeout, Map variables, String channelId, String otherChannelId) throws RestException{ + throw new UnsupportedOperationException("Method availble from ..."); +}; + +/********************************************************** + * + * + * @since ari_0_0_1 + *********************************************************/ +public void originate(String endpoint, String extension, String context, long priority, String app, String appArgs, String callerId, int timeout, AriCallback callback){ + throw new UnsupportedOperationException("Method availble from ..."); +}; + +}; + diff --git a/classes/ch/loway/oss/ari4java/generated/ari_2_0_0/actions/ActionDeviceStates_impl_ari_2_0_0.java b/classes/ch/loway/oss/ari4java/generated/ari_2_0_0/actions/ActionDeviceStates_impl_ari_2_0_0.java new file mode 100644 index 00000000..caef72e9 --- /dev/null +++ b/classes/ch/loway/oss/ari4java/generated/ari_2_0_0/actions/ActionDeviceStates_impl_ari_2_0_0.java @@ -0,0 +1,131 @@ +package ch.loway.oss.ari4java.generated.ari_2_0_0.actions; + +// ---------------------------------------------------- +// THIS CLASS WAS GENERATED AUTOMATICALLY +// PLEASE DO NOT EDIT +// Generated on: Sat Feb 04 15:23:09 CET 2017 +// ---------------------------------------------------- + +import ch.loway.oss.ari4java.generated.*; +import java.util.Date; +import java.util.List; +import java.util.Map; +import java.util.ArrayList; +import ch.loway.oss.ari4java.tools.BaseAriAction; +import ch.loway.oss.ari4java.tools.RestException; +import ch.loway.oss.ari4java.tools.AriCallback; +import ch.loway.oss.ari4java.tools.HttpParam; +import ch.loway.oss.ari4java.tools.HttpResponse; +import com.fasterxml.jackson.core.type.TypeReference; +import ch.loway.oss.ari4java.generated.ari_2_0_0.models.*; + +/********************************************************** + * + * Generated by: Apis + *********************************************************/ + + +public class ActionDeviceStates_impl_ari_2_0_0 extends BaseAriAction implements ActionDeviceStates { +/********************************************************** + * Device states + * + * List all ARI controlled device states. + *********************************************************/ +private void buildList() { +reset(); +url = "/deviceStates"; +method = "GET"; +} + +@Override +public List list() throws RestException { +buildList(); +String json = httpActionSync(); +return deserializeJsonAsAbstractList( json, + new TypeReference>() {} ); +} + +@Override +public void list(AriCallback> callback) { +buildList(); +httpActionAsync(callback, new TypeReference>() {}); +} + +/********************************************************** + * Device state + * + * Retrieve the current state of a device. + *********************************************************/ +private void buildGet(String deviceName) { +reset(); +url = "/deviceStates/" + deviceName + ""; +method = "GET"; +} + +@Override +public DeviceState get(String deviceName) throws RestException { +buildGet(deviceName); +String json = httpActionSync(); +return deserializeJson( json, DeviceState_impl_ari_2_0_0.class ); +} + +@Override +public void get(String deviceName, AriCallback callback) { +buildGet(deviceName); +httpActionAsync(callback, DeviceState_impl_ari_2_0_0.class); +} + +/********************************************************** + * Device state + * + * Change the state of a device controlled by ARI. (Note - implicitly creates the device state). + *********************************************************/ +private void buildUpdate(String deviceName, String deviceState) { +reset(); +url = "/deviceStates/" + deviceName + ""; +method = "PUT"; +lParamQuery.add( HttpParam.build( "deviceState", deviceState) ); +lE.add( HttpResponse.build( 404, "Device name is missing") ); +lE.add( HttpResponse.build( 409, "Uncontrolled device specified") ); +} + +@Override +public void update(String deviceName, String deviceState) throws RestException { +buildUpdate(deviceName, deviceState); +String json = httpActionSync(); +} + +@Override +public void update(String deviceName, String deviceState, AriCallback callback) { +buildUpdate(deviceName, deviceState); +httpActionAsync(callback); +} + +/********************************************************** + * Device state + * + * Destroy a device-state controlled by ARI. + *********************************************************/ +private void buildDelete(String deviceName) { +reset(); +url = "/deviceStates/" + deviceName + ""; +method = "DELETE"; +lE.add( HttpResponse.build( 404, "Device name is missing") ); +lE.add( HttpResponse.build( 409, "Uncontrolled device specified") ); +} + +@Override +public void delete(String deviceName) throws RestException { +buildDelete(deviceName); +String json = httpActionSync(); +} + +@Override +public void delete(String deviceName, AriCallback callback) { +buildDelete(deviceName); +httpActionAsync(callback); +} + +/** No missing signatures from interface */ +}; + diff --git a/classes/ch/loway/oss/ari4java/generated/ari_2_0_0/actions/ActionEndpoints_impl_ari_2_0_0.java b/classes/ch/loway/oss/ari4java/generated/ari_2_0_0/actions/ActionEndpoints_impl_ari_2_0_0.java new file mode 100644 index 00000000..01e1a55e --- /dev/null +++ b/classes/ch/loway/oss/ari4java/generated/ari_2_0_0/actions/ActionEndpoints_impl_ari_2_0_0.java @@ -0,0 +1,165 @@ +package ch.loway.oss.ari4java.generated.ari_2_0_0.actions; + +// ---------------------------------------------------- +// THIS CLASS WAS GENERATED AUTOMATICALLY +// PLEASE DO NOT EDIT +// Generated on: Sat Feb 04 15:23:09 CET 2017 +// ---------------------------------------------------- + +import ch.loway.oss.ari4java.generated.*; +import java.util.Date; +import java.util.List; +import java.util.Map; +import java.util.ArrayList; +import ch.loway.oss.ari4java.tools.BaseAriAction; +import ch.loway.oss.ari4java.tools.RestException; +import ch.loway.oss.ari4java.tools.AriCallback; +import ch.loway.oss.ari4java.tools.HttpParam; +import ch.loway.oss.ari4java.tools.HttpResponse; +import com.fasterxml.jackson.core.type.TypeReference; +import ch.loway.oss.ari4java.generated.ari_2_0_0.models.*; + +/********************************************************** + * + * Generated by: Apis + *********************************************************/ + + +public class ActionEndpoints_impl_ari_2_0_0 extends BaseAriAction implements ActionEndpoints { +/********************************************************** + * Asterisk endpoints + * + * List all endpoints. + *********************************************************/ +private void buildList() { +reset(); +url = "/endpoints"; +method = "GET"; +} + +@Override +public List list() throws RestException { +buildList(); +String json = httpActionSync(); +return deserializeJsonAsAbstractList( json, + new TypeReference>() {} ); +} + +@Override +public void list(AriCallback> callback) { +buildList(); +httpActionAsync(callback, new TypeReference>() {}); +} + +/********************************************************** + * Send a message to some technology URI or endpoint. + * + * Send a message to some technology URI or endpoint. + *********************************************************/ +private void buildSendMessage(String to, String from, String body, Map variables) { +reset(); +url = "/endpoints/sendMessage"; +method = "PUT"; +lParamQuery.add( HttpParam.build( "to", to) ); +lParamQuery.add( HttpParam.build( "from", from) ); +lParamQuery.add( HttpParam.build( "body", body) ); +lParamBody.addAll( HttpParam.build( "variables", variables) ); +lE.add( HttpResponse.build( 400, "Invalid parameters for sending a message.") ); +lE.add( HttpResponse.build( 404, "Endpoint not found") ); +} + +@Override +public void sendMessage(String to, String from, String body, Map variables) throws RestException { +buildSendMessage(to, from, body, variables); +String json = httpActionSync(); +} + +@Override +public void sendMessage(String to, String from, String body, Map variables, AriCallback callback) { +buildSendMessage(to, from, body, variables); +httpActionAsync(callback); +} + +/********************************************************** + * Asterisk endpoints + * + * List available endoints for a given endpoint technology. + *********************************************************/ +private void buildListByTech(String tech) { +reset(); +url = "/endpoints/" + tech + ""; +method = "GET"; +lE.add( HttpResponse.build( 404, "Endpoints not found") ); +} + +@Override +public List listByTech(String tech) throws RestException { +buildListByTech(tech); +String json = httpActionSync(); +return deserializeJsonAsAbstractList( json, + new TypeReference>() {} ); +} + +@Override +public void listByTech(String tech, AriCallback> callback) { +buildListByTech(tech); +httpActionAsync(callback, new TypeReference>() {}); +} + +/********************************************************** + * Single endpoint + * + * Details for an endpoint. + *********************************************************/ +private void buildGet(String tech, String resource) { +reset(); +url = "/endpoints/" + tech + "/" + resource + ""; +method = "GET"; +lE.add( HttpResponse.build( 400, "Invalid parameters for sending a message.") ); +lE.add( HttpResponse.build( 404, "Endpoints not found") ); +} + +@Override +public Endpoint get(String tech, String resource) throws RestException { +buildGet(tech, resource); +String json = httpActionSync(); +return deserializeJson( json, Endpoint_impl_ari_2_0_0.class ); +} + +@Override +public void get(String tech, String resource, AriCallback callback) { +buildGet(tech, resource); +httpActionAsync(callback, Endpoint_impl_ari_2_0_0.class); +} + +/********************************************************** + * Send a message to some endpoint in a technology. + * + * Send a message to some endpoint in a technology. + *********************************************************/ +private void buildSendMessageToEndpoint(String tech, String resource, String from, String body, Map variables) { +reset(); +url = "/endpoints/" + tech + "/" + resource + "/sendMessage"; +method = "PUT"; +lParamQuery.add( HttpParam.build( "from", from) ); +lParamQuery.add( HttpParam.build( "body", body) ); +lParamBody.addAll( HttpParam.build( "variables", variables) ); +lE.add( HttpResponse.build( 400, "Invalid parameters for sending a message.") ); +lE.add( HttpResponse.build( 404, "Endpoint not found") ); +} + +@Override +public void sendMessageToEndpoint(String tech, String resource, String from, String body, Map variables) throws RestException { +buildSendMessageToEndpoint(tech, resource, from, body, variables); +String json = httpActionSync(); +} + +@Override +public void sendMessageToEndpoint(String tech, String resource, String from, String body, Map variables, AriCallback callback) { +buildSendMessageToEndpoint(tech, resource, from, body, variables); +httpActionAsync(callback); +} + +/** No missing signatures from interface */ +}; + diff --git a/classes/ch/loway/oss/ari4java/generated/ari_2_0_0/actions/ActionEvents_impl_ari_2_0_0.java b/classes/ch/loway/oss/ari4java/generated/ari_2_0_0/actions/ActionEvents_impl_ari_2_0_0.java new file mode 100644 index 00000000..e82be20c --- /dev/null +++ b/classes/ch/loway/oss/ari4java/generated/ari_2_0_0/actions/ActionEvents_impl_ari_2_0_0.java @@ -0,0 +1,103 @@ +package ch.loway.oss.ari4java.generated.ari_2_0_0.actions; + +// ---------------------------------------------------- +// THIS CLASS WAS GENERATED AUTOMATICALLY +// PLEASE DO NOT EDIT +// Generated on: Sat Feb 04 15:23:09 CET 2017 +// ---------------------------------------------------- + +import ch.loway.oss.ari4java.generated.*; +import java.util.Date; +import java.util.List; +import java.util.Map; +import java.util.ArrayList; +import ch.loway.oss.ari4java.tools.BaseAriAction; +import ch.loway.oss.ari4java.tools.RestException; +import ch.loway.oss.ari4java.tools.AriCallback; +import ch.loway.oss.ari4java.tools.HttpParam; +import ch.loway.oss.ari4java.tools.HttpResponse; +import com.fasterxml.jackson.core.type.TypeReference; +import ch.loway.oss.ari4java.generated.ari_2_0_0.models.*; + +/********************************************************** + * + * Generated by: Apis + *********************************************************/ + + +public class ActionEvents_impl_ari_2_0_0 extends BaseAriAction implements ActionEvents { +/********************************************************** + * Events from Asterisk to applications + * + * WebSocket connection for events. + *********************************************************/ +private void buildEventWebsocket(String app, boolean subscribeAll) { +reset(); +url = "/events"; +method = "GET"; +lParamQuery.add( HttpParam.build( "app", app) ); +lParamQuery.add( HttpParam.build( "subscribeAll", subscribeAll) ); +wsUpgrade = true; +} + +@Override +public Message eventWebsocket(String app, boolean subscribeAll) throws RestException { +throw new RestException("No synchronous operation on WebSocket"); +} + +@Override +public void eventWebsocket(String app, boolean subscribeAll, AriCallback callback) { +buildEventWebsocket(app, subscribeAll); +httpActionAsync(callback, Message_impl_ari_2_0_0.class); +} + +/********************************************************** + * Stasis application user events + * + * Generate a user event. + *********************************************************/ +private void buildUserEvent(String eventName, String application, String source, Map variables) { +reset(); +url = "/events/user/" + eventName + ""; +method = "POST"; +lParamQuery.add( HttpParam.build( "application", application) ); +lParamQuery.add( HttpParam.build( "source", source) ); +lParamBody.addAll( HttpParam.build( "variables", variables) ); +lE.add( HttpResponse.build( 404, "Application does not exist.") ); +lE.add( HttpResponse.build( 422, "Event source not found.") ); +lE.add( HttpResponse.build( 400, "Invalid even tsource URI or userevent data.") ); +} + +@Override +public void userEvent(String eventName, String application, String source, Map variables) throws RestException { +buildUserEvent(eventName, application, source, variables); +String json = httpActionSync(); +} + +@Override +public void userEvent(String eventName, String application, String source, Map variables, AriCallback callback) { +buildUserEvent(eventName, application, source, variables); +httpActionAsync(callback); +} + +/********************************************************** + * WebSocket connection for events. + * + * + * @since ari_0_0_1 + *********************************************************/ +public Message eventWebsocket(String app) throws RestException{ + throw new UnsupportedOperationException("Method availble from ..."); +}; + +/********************************************************** + * + * + * @since ari_0_0_1 + *********************************************************/ +public void eventWebsocket(String app, AriCallback callback){ + throw new UnsupportedOperationException("Method availble from ..."); +}; + +}; + diff --git a/classes/ch/loway/oss/ari4java/generated/ari_2_0_0/actions/ActionPlaybacks_impl_ari_2_0_0.java b/classes/ch/loway/oss/ari4java/generated/ari_2_0_0/actions/ActionPlaybacks_impl_ari_2_0_0.java new file mode 100644 index 00000000..d06632f4 --- /dev/null +++ b/classes/ch/loway/oss/ari4java/generated/ari_2_0_0/actions/ActionPlaybacks_impl_ari_2_0_0.java @@ -0,0 +1,107 @@ +package ch.loway.oss.ari4java.generated.ari_2_0_0.actions; + +// ---------------------------------------------------- +// THIS CLASS WAS GENERATED AUTOMATICALLY +// PLEASE DO NOT EDIT +// Generated on: Sat Feb 04 15:23:09 CET 2017 +// ---------------------------------------------------- + +import ch.loway.oss.ari4java.generated.*; +import java.util.Date; +import java.util.List; +import java.util.Map; +import java.util.ArrayList; +import ch.loway.oss.ari4java.tools.BaseAriAction; +import ch.loway.oss.ari4java.tools.RestException; +import ch.loway.oss.ari4java.tools.AriCallback; +import ch.loway.oss.ari4java.tools.HttpParam; +import ch.loway.oss.ari4java.tools.HttpResponse; +import com.fasterxml.jackson.core.type.TypeReference; +import ch.loway.oss.ari4java.generated.ari_2_0_0.models.*; + +/********************************************************** + * + * Generated by: Apis + *********************************************************/ + + +public class ActionPlaybacks_impl_ari_2_0_0 extends BaseAriAction implements ActionPlaybacks { +/********************************************************** + * Control object for a playback operation. + * + * Get a playback's details. + *********************************************************/ +private void buildGet(String playbackId) { +reset(); +url = "/playbacks/" + playbackId + ""; +method = "GET"; +lE.add( HttpResponse.build( 404, "The playback cannot be found") ); +} + +@Override +public Playback get(String playbackId) throws RestException { +buildGet(playbackId); +String json = httpActionSync(); +return deserializeJson( json, Playback_impl_ari_2_0_0.class ); +} + +@Override +public void get(String playbackId, AriCallback callback) { +buildGet(playbackId); +httpActionAsync(callback, Playback_impl_ari_2_0_0.class); +} + +/********************************************************** + * Control object for a playback operation. + * + * Stop a playback. + *********************************************************/ +private void buildStop(String playbackId) { +reset(); +url = "/playbacks/" + playbackId + ""; +method = "DELETE"; +lE.add( HttpResponse.build( 404, "The playback cannot be found") ); +} + +@Override +public void stop(String playbackId) throws RestException { +buildStop(playbackId); +String json = httpActionSync(); +} + +@Override +public void stop(String playbackId, AriCallback callback) { +buildStop(playbackId); +httpActionAsync(callback); +} + +/********************************************************** + * Control object for a playback operation. + * + * Control a playback. + *********************************************************/ +private void buildControl(String playbackId, String operation) { +reset(); +url = "/playbacks/" + playbackId + "/control"; +method = "POST"; +lParamQuery.add( HttpParam.build( "operation", operation) ); +lE.add( HttpResponse.build( 400, "The provided operation parameter was invalid") ); +lE.add( HttpResponse.build( 404, "The playback cannot be found") ); +lE.add( HttpResponse.build( 409, "The operation cannot be performed in the playback's current state") ); +} + +@Override +public void control(String playbackId, String operation) throws RestException { +buildControl(playbackId, operation); +String json = httpActionSync(); +} + +@Override +public void control(String playbackId, String operation, AriCallback callback) { +buildControl(playbackId, operation); +httpActionAsync(callback); +} + +/** No missing signatures from interface */ +}; + diff --git a/classes/ch/loway/oss/ari4java/generated/ari_2_0_0/actions/ActionRecordings_impl_ari_2_0_0.java b/classes/ch/loway/oss/ari4java/generated/ari_2_0_0/actions/ActionRecordings_impl_ari_2_0_0.java new file mode 100644 index 00000000..d63ddd1d --- /dev/null +++ b/classes/ch/loway/oss/ari4java/generated/ari_2_0_0/actions/ActionRecordings_impl_ari_2_0_0.java @@ -0,0 +1,333 @@ +package ch.loway.oss.ari4java.generated.ari_2_0_0.actions; + +// ---------------------------------------------------- +// THIS CLASS WAS GENERATED AUTOMATICALLY +// PLEASE DO NOT EDIT +// Generated on: Sat Feb 04 15:23:09 CET 2017 +// ---------------------------------------------------- + +import ch.loway.oss.ari4java.generated.*; +import java.util.Date; +import java.util.List; +import java.util.Map; +import java.util.ArrayList; +import ch.loway.oss.ari4java.tools.BaseAriAction; +import ch.loway.oss.ari4java.tools.RestException; +import ch.loway.oss.ari4java.tools.AriCallback; +import ch.loway.oss.ari4java.tools.HttpParam; +import ch.loway.oss.ari4java.tools.HttpResponse; +import com.fasterxml.jackson.core.type.TypeReference; +import ch.loway.oss.ari4java.generated.ari_2_0_0.models.*; + +/********************************************************** + * + * Generated by: Apis + *********************************************************/ + + +public class ActionRecordings_impl_ari_2_0_0 extends BaseAriAction implements ActionRecordings { +/********************************************************** + * A recording that is in progress + * + * List live recordings. + *********************************************************/ +private void buildGetLive(String recordingName) { +reset(); +url = "/recordings/live/" + recordingName + ""; +method = "GET"; +lE.add( HttpResponse.build( 404, "Recording not found") ); +} + +@Override +public LiveRecording getLive(String recordingName) throws RestException { +buildGetLive(recordingName); +String json = httpActionSync(); +return deserializeJson( json, LiveRecording_impl_ari_2_0_0.class ); +} + +@Override +public void getLive(String recordingName, AriCallback callback) { +buildGetLive(recordingName); +httpActionAsync(callback, LiveRecording_impl_ari_2_0_0.class); +} + +/********************************************************** + * A recording that is in progress + * + * Stop a live recording and discard it. + *********************************************************/ +private void buildCancel(String recordingName) { +reset(); +url = "/recordings/live/" + recordingName + ""; +method = "DELETE"; +lE.add( HttpResponse.build( 404, "Recording not found") ); +} + +@Override +public void cancel(String recordingName) throws RestException { +buildCancel(recordingName); +String json = httpActionSync(); +} + +@Override +public void cancel(String recordingName, AriCallback callback) { +buildCancel(recordingName); +httpActionAsync(callback); +} + +/********************************************************** + * + * + * Mute a live recording. + * Muting a recording suspends silence detection, which will be restarted when the recording is unmuted. + *********************************************************/ +private void buildMute(String recordingName) { +reset(); +url = "/recordings/live/" + recordingName + "/mute"; +method = "POST"; +lE.add( HttpResponse.build( 404, "Recording not found") ); +lE.add( HttpResponse.build( 409, "Recording not in session") ); +} + +@Override +public void mute(String recordingName) throws RestException { +buildMute(recordingName); +String json = httpActionSync(); +} + +@Override +public void mute(String recordingName, AriCallback callback) { +buildMute(recordingName); +httpActionAsync(callback); +} + +/********************************************************** + * + * + * Unmute a live recording. + *********************************************************/ +private void buildUnmute(String recordingName) { +reset(); +url = "/recordings/live/" + recordingName + "/mute"; +method = "DELETE"; +lE.add( HttpResponse.build( 404, "Recording not found") ); +lE.add( HttpResponse.build( 409, "Recording not in session") ); +} + +@Override +public void unmute(String recordingName) throws RestException { +buildUnmute(recordingName); +String json = httpActionSync(); +} + +@Override +public void unmute(String recordingName, AriCallback callback) { +buildUnmute(recordingName); +httpActionAsync(callback); +} + +/********************************************************** + * + * + * Pause a live recording. + * Pausing a recording suspends silence detection, which will be restarted when the recording is unpaused. Paused time is not included in the accounting for maxDurationSeconds. + *********************************************************/ +private void buildPause(String recordingName) { +reset(); +url = "/recordings/live/" + recordingName + "/pause"; +method = "POST"; +lE.add( HttpResponse.build( 404, "Recording not found") ); +lE.add( HttpResponse.build( 409, "Recording not in session") ); +} + +@Override +public void pause(String recordingName) throws RestException { +buildPause(recordingName); +String json = httpActionSync(); +} + +@Override +public void pause(String recordingName, AriCallback callback) { +buildPause(recordingName); +httpActionAsync(callback); +} + +/********************************************************** + * + * + * Unpause a live recording. + *********************************************************/ +private void buildUnpause(String recordingName) { +reset(); +url = "/recordings/live/" + recordingName + "/pause"; +method = "DELETE"; +lE.add( HttpResponse.build( 404, "Recording not found") ); +lE.add( HttpResponse.build( 409, "Recording not in session") ); +} + +@Override +public void unpause(String recordingName) throws RestException { +buildUnpause(recordingName); +String json = httpActionSync(); +} + +@Override +public void unpause(String recordingName, AriCallback callback) { +buildUnpause(recordingName); +httpActionAsync(callback); +} + +/********************************************************** + * + * + * Stop a live recording and store it. + *********************************************************/ +private void buildStop(String recordingName) { +reset(); +url = "/recordings/live/" + recordingName + "/stop"; +method = "POST"; +lE.add( HttpResponse.build( 404, "Recording not found") ); +} + +@Override +public void stop(String recordingName) throws RestException { +buildStop(recordingName); +String json = httpActionSync(); +} + +@Override +public void stop(String recordingName, AriCallback callback) { +buildStop(recordingName); +httpActionAsync(callback); +} + +/********************************************************** + * Recordings + * + * List recordings that are complete. + *********************************************************/ +private void buildListStored() { +reset(); +url = "/recordings/stored"; +method = "GET"; +} + +@Override +public List listStored() throws RestException { +buildListStored(); +String json = httpActionSync(); +return deserializeJsonAsAbstractList( json, + new TypeReference>() {} ); +} + +@Override +public void listStored(AriCallback> callback) { +buildListStored(); +httpActionAsync(callback, new TypeReference>() {}); +} + +/********************************************************** + * Individual recording + * + * Get a stored recording's details. + *********************************************************/ +private void buildGetStored(String recordingName) { +reset(); +url = "/recordings/stored/" + recordingName + ""; +method = "GET"; +lE.add( HttpResponse.build( 404, "Recording not found") ); +} + +@Override +public StoredRecording getStored(String recordingName) throws RestException { +buildGetStored(recordingName); +String json = httpActionSync(); +return deserializeJson( json, StoredRecording_impl_ari_2_0_0.class ); +} + +@Override +public void getStored(String recordingName, AriCallback callback) { +buildGetStored(recordingName); +httpActionAsync(callback, StoredRecording_impl_ari_2_0_0.class); +} + +/********************************************************** + * Individual recording + * + * Delete a stored recording. + *********************************************************/ +private void buildDeleteStored(String recordingName) { +reset(); +url = "/recordings/stored/" + recordingName + ""; +method = "DELETE"; +lE.add( HttpResponse.build( 404, "Recording not found") ); +} + +@Override +public void deleteStored(String recordingName) throws RestException { +buildDeleteStored(recordingName); +String json = httpActionSync(); +} + +@Override +public void deleteStored(String recordingName, AriCallback callback) { +buildDeleteStored(recordingName); +httpActionAsync(callback); +} + +/********************************************************** + * Copy an individual recording + * + * Copy a stored recording. + *********************************************************/ +private void buildCopyStored(String recordingName, String destinationRecordingName) { +reset(); +url = "/recordings/stored/" + recordingName + "/copy"; +method = "POST"; +lParamQuery.add( HttpParam.build( "destinationRecordingName", destinationRecordingName) ); +lE.add( HttpResponse.build( 404, "Recording not found") ); +lE.add( HttpResponse.build( 409, "A recording with the same name already exists on the system") ); +} + +@Override +public StoredRecording copyStored(String recordingName, String destinationRecordingName) throws RestException { +buildCopyStored(recordingName, destinationRecordingName); +String json = httpActionSync(); +return deserializeJson( json, StoredRecording_impl_ari_2_0_0.class ); +} + +@Override +public void copyStored(String recordingName, String destinationRecordingName, AriCallback callback) { +buildCopyStored(recordingName, destinationRecordingName); +httpActionAsync(callback, StoredRecording_impl_ari_2_0_0.class); +} + +/********************************************************** + * The actual file associated with the stored recording + * + * Get the file associated with the stored recording. + *********************************************************/ +private void buildGetStoredFile(String recordingName) { +reset(); +url = "/recordings/stored/" + recordingName + "/file"; +method = "GET"; +lE.add( HttpResponse.build( 403, "The recording file could not be opened") ); +lE.add( HttpResponse.build( 404, "Recording not found") ); +} + +@Override +public byte[] getStoredFile(String recordingName) throws RestException { +buildGetStoredFile(recordingName); +String json = httpActionSync(); +return deserializeJson( json, byte[].class ); +} + +@Override +public void getStoredFile(String recordingName, AriCallback callback) { +buildGetStoredFile(recordingName); +httpActionAsync(callback, byte[].class); +} + +/** No missing signatures from interface */ +}; + diff --git a/classes/ch/loway/oss/ari4java/generated/ari_2_0_0/actions/ActionSounds_impl_ari_2_0_0.java b/classes/ch/loway/oss/ari4java/generated/ari_2_0_0/actions/ActionSounds_impl_ari_2_0_0.java new file mode 100644 index 00000000..c8e4a0b0 --- /dev/null +++ b/classes/ch/loway/oss/ari4java/generated/ari_2_0_0/actions/ActionSounds_impl_ari_2_0_0.java @@ -0,0 +1,82 @@ +package ch.loway.oss.ari4java.generated.ari_2_0_0.actions; + +// ---------------------------------------------------- +// THIS CLASS WAS GENERATED AUTOMATICALLY +// PLEASE DO NOT EDIT +// Generated on: Sat Feb 04 15:23:09 CET 2017 +// ---------------------------------------------------- + +import ch.loway.oss.ari4java.generated.*; +import java.util.Date; +import java.util.List; +import java.util.Map; +import java.util.ArrayList; +import ch.loway.oss.ari4java.tools.BaseAriAction; +import ch.loway.oss.ari4java.tools.RestException; +import ch.loway.oss.ari4java.tools.AriCallback; +import ch.loway.oss.ari4java.tools.HttpParam; +import ch.loway.oss.ari4java.tools.HttpResponse; +import com.fasterxml.jackson.core.type.TypeReference; +import ch.loway.oss.ari4java.generated.ari_2_0_0.models.*; + +/********************************************************** + * + * Generated by: Apis + *********************************************************/ + + +public class ActionSounds_impl_ari_2_0_0 extends BaseAriAction implements ActionSounds { +/********************************************************** + * Sounds + * + * List all sounds. + *********************************************************/ +private void buildList(String lang, String format) { +reset(); +url = "/sounds"; +method = "GET"; +lParamQuery.add( HttpParam.build( "lang", lang) ); +lParamQuery.add( HttpParam.build( "format", format) ); +} + +@Override +public List list(String lang, String format) throws RestException { +buildList(lang, format); +String json = httpActionSync(); +return deserializeJsonAsAbstractList( json, + new TypeReference>() {} ); +} + +@Override +public void list(String lang, String format, AriCallback> callback) { +buildList(lang, format); +httpActionAsync(callback, new TypeReference>() {}); +} + +/********************************************************** + * Individual sound + * + * Get a sound's details. + *********************************************************/ +private void buildGet(String soundId) { +reset(); +url = "/sounds/" + soundId + ""; +method = "GET"; +} + +@Override +public Sound get(String soundId) throws RestException { +buildGet(soundId); +String json = httpActionSync(); +return deserializeJson( json, Sound_impl_ari_2_0_0.class ); +} + +@Override +public void get(String soundId, AriCallback callback) { +buildGet(soundId); +httpActionAsync(callback, Sound_impl_ari_2_0_0.class); +} + +/** No missing signatures from interface */ +}; + diff --git a/classes/ch/loway/oss/ari4java/generated/ari_2_0_0/models/ApplicationReplaced_impl_ari_2_0_0.java b/classes/ch/loway/oss/ari4java/generated/ari_2_0_0/models/ApplicationReplaced_impl_ari_2_0_0.java new file mode 100644 index 00000000..a663250a --- /dev/null +++ b/classes/ch/loway/oss/ari4java/generated/ari_2_0_0/models/ApplicationReplaced_impl_ari_2_0_0.java @@ -0,0 +1,28 @@ +package ch.loway.oss.ari4java.generated.ari_2_0_0.models; + +// ---------------------------------------------------- +// THIS CLASS WAS GENERATED AUTOMATICALLY +// PLEASE DO NOT EDIT +// Generated on: Sat Feb 04 15:23:09 CET 2017 +// ---------------------------------------------------- + +import ch.loway.oss.ari4java.generated.*; +import com.fasterxml.jackson.databind.annotation.JsonDeserialize; +import java.util.Date; +import java.util.List; +import java.util.Map; + +/********************************************************** + * Notification that another WebSocket has taken over for an application. + * + * An application may only be subscribed to by a single WebSocket at a time. If multiple WebSockets attempt to subscribe to the same application, the newer WebSocket wins, and the older one receives this event. + * + * Defined in file: events.json + * Generated by: Model + *********************************************************/ + +public class ApplicationReplaced_impl_ari_2_0_0 extends Event_impl_ari_2_0_0 implements ApplicationReplaced, java.io.Serializable { +private static final long serialVersionUID = 1L; +/** No missing signatures from interface */ +} + diff --git a/classes/ch/loway/oss/ari4java/generated/ari_2_0_0/models/Application_impl_ari_2_0_0.java b/classes/ch/loway/oss/ari4java/generated/ari_2_0_0/models/Application_impl_ari_2_0_0.java new file mode 100644 index 00000000..14c9e451 --- /dev/null +++ b/classes/ch/loway/oss/ari4java/generated/ari_2_0_0/models/Application_impl_ari_2_0_0.java @@ -0,0 +1,81 @@ +package ch.loway.oss.ari4java.generated.ari_2_0_0.models; + +// ---------------------------------------------------- +// THIS CLASS WAS GENERATED AUTOMATICALLY +// PLEASE DO NOT EDIT +// Generated on: Sat Feb 04 15:23:09 CET 2017 +// ---------------------------------------------------- + +import ch.loway.oss.ari4java.generated.*; +import com.fasterxml.jackson.databind.annotation.JsonDeserialize; +import java.util.Date; +import java.util.List; +import java.util.Map; + +/********************************************************** + * Details of a Stasis application + * + * Defined in file: applications.json + * Generated by: Model + *********************************************************/ + +public class Application_impl_ari_2_0_0 implements Application, java.io.Serializable { +private static final long serialVersionUID = 1L; + /** Id's for bridges subscribed to. */ + private List bridge_ids; + public List getBridge_ids() { + return bridge_ids; + } + + @JsonDeserialize( contentAs=String.class ) + public void setBridge_ids(List val ) { + bridge_ids = val; + } + + /** Id's for channels subscribed to. */ + private List channel_ids; + public List getChannel_ids() { + return channel_ids; + } + + @JsonDeserialize( contentAs=String.class ) + public void setChannel_ids(List val ) { + channel_ids = val; + } + + /** Names of the devices subscribed to. */ + private List device_names; + public List getDevice_names() { + return device_names; + } + + @JsonDeserialize( contentAs=String.class ) + public void setDevice_names(List val ) { + device_names = val; + } + + /** {tech}/{resource} for endpoints subscribed to. */ + private List endpoint_ids; + public List getEndpoint_ids() { + return endpoint_ids; + } + + @JsonDeserialize( contentAs=String.class ) + public void setEndpoint_ids(List val ) { + endpoint_ids = val; + } + + /** Name of this application */ + private String name; + public String getName() { + return name; + } + + @JsonDeserialize( as=String.class ) + public void setName(String val ) { + name = val; + } + +/** No missing signatures from interface */ +} + diff --git a/classes/ch/loway/oss/ari4java/generated/ari_2_0_0/models/AsteriskInfo_impl_ari_2_0_0.java b/classes/ch/loway/oss/ari4java/generated/ari_2_0_0/models/AsteriskInfo_impl_ari_2_0_0.java new file mode 100644 index 00000000..a939244e --- /dev/null +++ b/classes/ch/loway/oss/ari4java/generated/ari_2_0_0/models/AsteriskInfo_impl_ari_2_0_0.java @@ -0,0 +1,70 @@ +package ch.loway.oss.ari4java.generated.ari_2_0_0.models; + +// ---------------------------------------------------- +// THIS CLASS WAS GENERATED AUTOMATICALLY +// PLEASE DO NOT EDIT +// Generated on: Sat Feb 04 15:23:09 CET 2017 +// ---------------------------------------------------- + +import ch.loway.oss.ari4java.generated.*; +import com.fasterxml.jackson.databind.annotation.JsonDeserialize; +import java.util.Date; +import java.util.List; +import java.util.Map; + +/********************************************************** + * Asterisk system information + * + * Defined in file: asterisk.json + * Generated by: Model + *********************************************************/ + +public class AsteriskInfo_impl_ari_2_0_0 implements AsteriskInfo, java.io.Serializable { +private static final long serialVersionUID = 1L; + /** Info about how Asterisk was built */ + private BuildInfo build; + public BuildInfo getBuild() { + return build; + } + + @JsonDeserialize( as=BuildInfo_impl_ari_2_0_0.class ) + public void setBuild(BuildInfo val ) { + build = val; + } + + /** Info about Asterisk configuration */ + private ConfigInfo config; + public ConfigInfo getConfig() { + return config; + } + + @JsonDeserialize( as=ConfigInfo_impl_ari_2_0_0.class ) + public void setConfig(ConfigInfo val ) { + config = val; + } + + /** Info about Asterisk status */ + private StatusInfo status; + public StatusInfo getStatus() { + return status; + } + + @JsonDeserialize( as=StatusInfo_impl_ari_2_0_0.class ) + public void setStatus(StatusInfo val ) { + status = val; + } + + /** Info about the system running Asterisk */ + private SystemInfo system; + public SystemInfo getSystem() { + return system; + } + + @JsonDeserialize( as=SystemInfo_impl_ari_2_0_0.class ) + public void setSystem(SystemInfo val ) { + system = val; + } + +/** No missing signatures from interface */ +} + diff --git a/classes/ch/loway/oss/ari4java/generated/ari_2_0_0/models/BridgeAttendedTransfer_impl_ari_2_0_0.java b/classes/ch/loway/oss/ari4java/generated/ari_2_0_0/models/BridgeAttendedTransfer_impl_ari_2_0_0.java new file mode 100644 index 00000000..720c79bb --- /dev/null +++ b/classes/ch/loway/oss/ari4java/generated/ari_2_0_0/models/BridgeAttendedTransfer_impl_ari_2_0_0.java @@ -0,0 +1,202 @@ +package ch.loway.oss.ari4java.generated.ari_2_0_0.models; + +// ---------------------------------------------------- +// THIS CLASS WAS GENERATED AUTOMATICALLY +// PLEASE DO NOT EDIT +// Generated on: Sat Feb 04 15:23:09 CET 2017 +// ---------------------------------------------------- + +import ch.loway.oss.ari4java.generated.*; +import com.fasterxml.jackson.databind.annotation.JsonDeserialize; +import java.util.Date; +import java.util.List; +import java.util.Map; + +/********************************************************** + * Notification that an attended transfer has occurred. + * + * Defined in file: events.json + * Generated by: Model + *********************************************************/ + +public class BridgeAttendedTransfer_impl_ari_2_0_0 extends Event_impl_ari_2_0_0 implements BridgeAttendedTransfer, java.io.Serializable { +private static final long serialVersionUID = 1L; + /** Application that has been transferred into */ + private String destination_application; + public String getDestination_application() { + return destination_application; + } + + @JsonDeserialize( as=String.class ) + public void setDestination_application(String val ) { + destination_application = val; + } + + /** Bridge that survived the merge result */ + private String destination_bridge; + public String getDestination_bridge() { + return destination_bridge; + } + + @JsonDeserialize( as=String.class ) + public void setDestination_bridge(String val ) { + destination_bridge = val; + } + + /** First leg of a link transfer result */ + private Channel destination_link_first_leg; + public Channel getDestination_link_first_leg() { + return destination_link_first_leg; + } + + @JsonDeserialize( as=Channel_impl_ari_2_0_0.class ) + public void setDestination_link_first_leg(Channel val ) { + destination_link_first_leg = val; + } + + /** Second leg of a link transfer result */ + private Channel destination_link_second_leg; + public Channel getDestination_link_second_leg() { + return destination_link_second_leg; + } + + @JsonDeserialize( as=Channel_impl_ari_2_0_0.class ) + public void setDestination_link_second_leg(Channel val ) { + destination_link_second_leg = val; + } + + /** Bridge that survived the threeway result */ + private Bridge destination_threeway_bridge; + public Bridge getDestination_threeway_bridge() { + return destination_threeway_bridge; + } + + @JsonDeserialize( as=Bridge_impl_ari_2_0_0.class ) + public void setDestination_threeway_bridge(Bridge val ) { + destination_threeway_bridge = val; + } + + /** Transferer channel that survived the threeway result */ + private Channel destination_threeway_channel; + public Channel getDestination_threeway_channel() { + return destination_threeway_channel; + } + + @JsonDeserialize( as=Channel_impl_ari_2_0_0.class ) + public void setDestination_threeway_channel(Channel val ) { + destination_threeway_channel = val; + } + + /** How the transfer was accomplished */ + private String destination_type; + public String getDestination_type() { + return destination_type; + } + + @JsonDeserialize( as=String.class ) + public void setDestination_type(String val ) { + destination_type = val; + } + + /** Whether the transfer was externally initiated or not */ + private boolean is_external; + public boolean getIs_external() { + return is_external; + } + + @JsonDeserialize( as=boolean.class ) + public void setIs_external(boolean val ) { + is_external = val; + } + + /** The channel that is replacing transferer_first_leg in the swap */ + private Channel replace_channel; + public Channel getReplace_channel() { + return replace_channel; + } + + @JsonDeserialize( as=Channel_impl_ari_2_0_0.class ) + public void setReplace_channel(Channel val ) { + replace_channel = val; + } + + /** The result of the transfer attempt */ + private String result; + public String getResult() { + return result; + } + + @JsonDeserialize( as=String.class ) + public void setResult(String val ) { + result = val; + } + + /** The channel that is being transferred to */ + private Channel transfer_target; + public Channel getTransfer_target() { + return transfer_target; + } + + @JsonDeserialize( as=Channel_impl_ari_2_0_0.class ) + public void setTransfer_target(Channel val ) { + transfer_target = val; + } + + /** The channel that is being transferred */ + private Channel transferee; + public Channel getTransferee() { + return transferee; + } + + @JsonDeserialize( as=Channel_impl_ari_2_0_0.class ) + public void setTransferee(Channel val ) { + transferee = val; + } + + /** First leg of the transferer */ + private Channel transferer_first_leg; + public Channel getTransferer_first_leg() { + return transferer_first_leg; + } + + @JsonDeserialize( as=Channel_impl_ari_2_0_0.class ) + public void setTransferer_first_leg(Channel val ) { + transferer_first_leg = val; + } + + /** Bridge the transferer first leg is in */ + private Bridge transferer_first_leg_bridge; + public Bridge getTransferer_first_leg_bridge() { + return transferer_first_leg_bridge; + } + + @JsonDeserialize( as=Bridge_impl_ari_2_0_0.class ) + public void setTransferer_first_leg_bridge(Bridge val ) { + transferer_first_leg_bridge = val; + } + + /** Second leg of the transferer */ + private Channel transferer_second_leg; + public Channel getTransferer_second_leg() { + return transferer_second_leg; + } + + @JsonDeserialize( as=Channel_impl_ari_2_0_0.class ) + public void setTransferer_second_leg(Channel val ) { + transferer_second_leg = val; + } + + /** Bridge the transferer second leg is in */ + private Bridge transferer_second_leg_bridge; + public Bridge getTransferer_second_leg_bridge() { + return transferer_second_leg_bridge; + } + + @JsonDeserialize( as=Bridge_impl_ari_2_0_0.class ) + public void setTransferer_second_leg_bridge(Bridge val ) { + transferer_second_leg_bridge = val; + } + +/** No missing signatures from interface */ +} + diff --git a/classes/ch/loway/oss/ari4java/generated/ari_2_0_0/models/BridgeBlindTransfer_impl_ari_2_0_0.java b/classes/ch/loway/oss/ari4java/generated/ari_2_0_0/models/BridgeBlindTransfer_impl_ari_2_0_0.java new file mode 100644 index 00000000..2b517e98 --- /dev/null +++ b/classes/ch/loway/oss/ari4java/generated/ari_2_0_0/models/BridgeBlindTransfer_impl_ari_2_0_0.java @@ -0,0 +1,114 @@ +package ch.loway.oss.ari4java.generated.ari_2_0_0.models; + +// ---------------------------------------------------- +// THIS CLASS WAS GENERATED AUTOMATICALLY +// PLEASE DO NOT EDIT +// Generated on: Sat Feb 04 15:23:09 CET 2017 +// ---------------------------------------------------- + +import ch.loway.oss.ari4java.generated.*; +import com.fasterxml.jackson.databind.annotation.JsonDeserialize; +import java.util.Date; +import java.util.List; +import java.util.Map; + +/********************************************************** + * Notification that a blind transfer has occurred. + * + * Defined in file: events.json + * Generated by: Model + *********************************************************/ + +public class BridgeBlindTransfer_impl_ari_2_0_0 extends Event_impl_ari_2_0_0 implements BridgeBlindTransfer, java.io.Serializable { +private static final long serialVersionUID = 1L; + /** The bridge being transferred */ + private Bridge bridge; + public Bridge getBridge() { + return bridge; + } + + @JsonDeserialize( as=Bridge_impl_ari_2_0_0.class ) + public void setBridge(Bridge val ) { + bridge = val; + } + + /** The channel performing the blind transfer */ + private Channel channel; + public Channel getChannel() { + return channel; + } + + @JsonDeserialize( as=Channel_impl_ari_2_0_0.class ) + public void setChannel(Channel val ) { + channel = val; + } + + /** The context transferred to */ + private String context; + public String getContext() { + return context; + } + + @JsonDeserialize( as=String.class ) + public void setContext(String val ) { + context = val; + } + + /** The extension transferred to */ + private String exten; + public String getExten() { + return exten; + } + + @JsonDeserialize( as=String.class ) + public void setExten(String val ) { + exten = val; + } + + /** Whether the transfer was externally initiated or not */ + private boolean is_external; + public boolean getIs_external() { + return is_external; + } + + @JsonDeserialize( as=boolean.class ) + public void setIs_external(boolean val ) { + is_external = val; + } + + /** The channel that is replacing transferer when the transferee(s) can not be transferred directly */ + private Channel replace_channel; + public Channel getReplace_channel() { + return replace_channel; + } + + @JsonDeserialize( as=Channel_impl_ari_2_0_0.class ) + public void setReplace_channel(Channel val ) { + replace_channel = val; + } + + /** The result of the transfer attempt */ + private String result; + public String getResult() { + return result; + } + + @JsonDeserialize( as=String.class ) + public void setResult(String val ) { + result = val; + } + + /** The channel that is being transferred */ + private Channel transferee; + public Channel getTransferee() { + return transferee; + } + + @JsonDeserialize( as=Channel_impl_ari_2_0_0.class ) + public void setTransferee(Channel val ) { + transferee = val; + } + +/** No missing signatures from interface */ +} + diff --git a/classes/ch/loway/oss/ari4java/generated/ari_2_0_0/models/BridgeCreated_impl_ari_2_0_0.java b/classes/ch/loway/oss/ari4java/generated/ari_2_0_0/models/BridgeCreated_impl_ari_2_0_0.java new file mode 100644 index 00000000..02b35c29 --- /dev/null +++ b/classes/ch/loway/oss/ari4java/generated/ari_2_0_0/models/BridgeCreated_impl_ari_2_0_0.java @@ -0,0 +1,37 @@ +package ch.loway.oss.ari4java.generated.ari_2_0_0.models; + +// ---------------------------------------------------- +// THIS CLASS WAS GENERATED AUTOMATICALLY +// PLEASE DO NOT EDIT +// Generated on: Sat Feb 04 15:23:09 CET 2017 +// ---------------------------------------------------- + +import ch.loway.oss.ari4java.generated.*; +import com.fasterxml.jackson.databind.annotation.JsonDeserialize; +import java.util.Date; +import java.util.List; +import java.util.Map; + +/********************************************************** + * Notification that a bridge has been created. + * + * Defined in file: events.json + * Generated by: Model + *********************************************************/ + +public class BridgeCreated_impl_ari_2_0_0 extends Event_impl_ari_2_0_0 implements BridgeCreated, java.io.Serializable { +private static final long serialVersionUID = 1L; + /** */ + private Bridge bridge; + public Bridge getBridge() { + return bridge; + } + + @JsonDeserialize( as=Bridge_impl_ari_2_0_0.class ) + public void setBridge(Bridge val ) { + bridge = val; + } + +/** No missing signatures from interface */ +} + diff --git a/classes/ch/loway/oss/ari4java/generated/ari_2_0_0/models/BridgeDestroyed_impl_ari_2_0_0.java b/classes/ch/loway/oss/ari4java/generated/ari_2_0_0/models/BridgeDestroyed_impl_ari_2_0_0.java new file mode 100644 index 00000000..3db3d17a --- /dev/null +++ b/classes/ch/loway/oss/ari4java/generated/ari_2_0_0/models/BridgeDestroyed_impl_ari_2_0_0.java @@ -0,0 +1,37 @@ +package ch.loway.oss.ari4java.generated.ari_2_0_0.models; + +// ---------------------------------------------------- +// THIS CLASS WAS GENERATED AUTOMATICALLY +// PLEASE DO NOT EDIT +// Generated on: Sat Feb 04 15:23:09 CET 2017 +// ---------------------------------------------------- + +import ch.loway.oss.ari4java.generated.*; +import com.fasterxml.jackson.databind.annotation.JsonDeserialize; +import java.util.Date; +import java.util.List; +import java.util.Map; + +/********************************************************** + * Notification that a bridge has been destroyed. + * + * Defined in file: events.json + * Generated by: Model + *********************************************************/ + +public class BridgeDestroyed_impl_ari_2_0_0 extends Event_impl_ari_2_0_0 implements BridgeDestroyed, java.io.Serializable { +private static final long serialVersionUID = 1L; + /** */ + private Bridge bridge; + public Bridge getBridge() { + return bridge; + } + + @JsonDeserialize( as=Bridge_impl_ari_2_0_0.class ) + public void setBridge(Bridge val ) { + bridge = val; + } + +/** No missing signatures from interface */ +} + diff --git a/classes/ch/loway/oss/ari4java/generated/ari_2_0_0/models/BridgeMerged_impl_ari_2_0_0.java b/classes/ch/loway/oss/ari4java/generated/ari_2_0_0/models/BridgeMerged_impl_ari_2_0_0.java new file mode 100644 index 00000000..ba724453 --- /dev/null +++ b/classes/ch/loway/oss/ari4java/generated/ari_2_0_0/models/BridgeMerged_impl_ari_2_0_0.java @@ -0,0 +1,48 @@ +package ch.loway.oss.ari4java.generated.ari_2_0_0.models; + +// ---------------------------------------------------- +// THIS CLASS WAS GENERATED AUTOMATICALLY +// PLEASE DO NOT EDIT +// Generated on: Sat Feb 04 15:23:09 CET 2017 +// ---------------------------------------------------- + +import ch.loway.oss.ari4java.generated.*; +import com.fasterxml.jackson.databind.annotation.JsonDeserialize; +import java.util.Date; +import java.util.List; +import java.util.Map; + +/********************************************************** + * Notification that one bridge has merged into another. + * + * Defined in file: events.json + * Generated by: Model + *********************************************************/ + +public class BridgeMerged_impl_ari_2_0_0 extends Event_impl_ari_2_0_0 implements BridgeMerged, java.io.Serializable { +private static final long serialVersionUID = 1L; + /** */ + private Bridge bridge; + public Bridge getBridge() { + return bridge; + } + + @JsonDeserialize( as=Bridge_impl_ari_2_0_0.class ) + public void setBridge(Bridge val ) { + bridge = val; + } + + /** */ + private Bridge bridge_from; + public Bridge getBridge_from() { + return bridge_from; + } + + @JsonDeserialize( as=Bridge_impl_ari_2_0_0.class ) + public void setBridge_from(Bridge val ) { + bridge_from = val; + } + +/** No missing signatures from interface */ +} + diff --git a/classes/ch/loway/oss/ari4java/generated/ari_2_0_0/models/BridgeVideoSourceChanged_impl_ari_2_0_0.java b/classes/ch/loway/oss/ari4java/generated/ari_2_0_0/models/BridgeVideoSourceChanged_impl_ari_2_0_0.java new file mode 100644 index 00000000..1575c7db --- /dev/null +++ b/classes/ch/loway/oss/ari4java/generated/ari_2_0_0/models/BridgeVideoSourceChanged_impl_ari_2_0_0.java @@ -0,0 +1,48 @@ +package ch.loway.oss.ari4java.generated.ari_2_0_0.models; + +// ---------------------------------------------------- +// THIS CLASS WAS GENERATED AUTOMATICALLY +// PLEASE DO NOT EDIT +// Generated on: Sat Feb 04 15:23:09 CET 2017 +// ---------------------------------------------------- + +import ch.loway.oss.ari4java.generated.*; +import com.fasterxml.jackson.databind.annotation.JsonDeserialize; +import java.util.Date; +import java.util.List; +import java.util.Map; + +/********************************************************** + * Notification that the source of video in a bridge has changed. + * + * Defined in file: events.json + * Generated by: Model + *********************************************************/ + +public class BridgeVideoSourceChanged_impl_ari_2_0_0 extends Event_impl_ari_2_0_0 implements BridgeVideoSourceChanged, java.io.Serializable { +private static final long serialVersionUID = 1L; + /** */ + private Bridge bridge; + public Bridge getBridge() { + return bridge; + } + + @JsonDeserialize( as=Bridge_impl_ari_2_0_0.class ) + public void setBridge(Bridge val ) { + bridge = val; + } + + /** */ + private String old_video_source_id; + public String getOld_video_source_id() { + return old_video_source_id; + } + + @JsonDeserialize( as=String.class ) + public void setOld_video_source_id(String val ) { + old_video_source_id = val; + } + +/** No missing signatures from interface */ +} + diff --git a/classes/ch/loway/oss/ari4java/generated/ari_2_0_0/models/Bridge_impl_ari_2_0_0.java b/classes/ch/loway/oss/ari4java/generated/ari_2_0_0/models/Bridge_impl_ari_2_0_0.java new file mode 100644 index 00000000..e8cd29c6 --- /dev/null +++ b/classes/ch/loway/oss/ari4java/generated/ari_2_0_0/models/Bridge_impl_ari_2_0_0.java @@ -0,0 +1,127 @@ +package ch.loway.oss.ari4java.generated.ari_2_0_0.models; + +// ---------------------------------------------------- +// THIS CLASS WAS GENERATED AUTOMATICALLY +// PLEASE DO NOT EDIT +// Generated on: Sat Feb 04 15:23:09 CET 2017 +// ---------------------------------------------------- + +import ch.loway.oss.ari4java.generated.*; +import com.fasterxml.jackson.databind.annotation.JsonDeserialize; +import java.util.Date; +import java.util.List; +import java.util.Map; + +/********************************************************** + * The merging of media from one or more channels. + * + * Everyone on the bridge receives the same audio. + * + * Defined in file: bridges.json + * Generated by: Model + *********************************************************/ + +public class Bridge_impl_ari_2_0_0 implements Bridge, java.io.Serializable { +private static final long serialVersionUID = 1L; + /** Bridging class */ + private String bridge_class; + public String getBridge_class() { + return bridge_class; + } + + @JsonDeserialize( as=String.class ) + public void setBridge_class(String val ) { + bridge_class = val; + } + + /** Type of bridge technology */ + private String bridge_type; + public String getBridge_type() { + return bridge_type; + } + + @JsonDeserialize( as=String.class ) + public void setBridge_type(String val ) { + bridge_type = val; + } + + /** Ids of channels participating in this bridge */ + private List channels; + public List getChannels() { + return channels; + } + + @JsonDeserialize( contentAs=String.class ) + public void setChannels(List val ) { + channels = val; + } + + /** Entity that created the bridge */ + private String creator; + public String getCreator() { + return creator; + } + + @JsonDeserialize( as=String.class ) + public void setCreator(String val ) { + creator = val; + } + + /** Unique identifier for this bridge */ + private String id; + public String getId() { + return id; + } + + @JsonDeserialize( as=String.class ) + public void setId(String val ) { + id = val; + } + + /** Name the creator gave the bridge */ + private String name; + public String getName() { + return name; + } + + @JsonDeserialize( as=String.class ) + public void setName(String val ) { + name = val; + } + + /** Name of the current bridging technology */ + private String technology; + public String getTechnology() { + return technology; + } + + @JsonDeserialize( as=String.class ) + public void setTechnology(String val ) { + technology = val; + } + + /** The video mode the bridge is using. One of 'none', 'talker', or 'single'. */ + private String video_mode; + public String getVideo_mode() { + return video_mode; + } + + @JsonDeserialize( as=String.class ) + public void setVideo_mode(String val ) { + video_mode = val; + } + + /** The ID of the channel that is the source of video in this bridge, if one exists. */ + private String video_source_id; + public String getVideo_source_id() { + return video_source_id; + } + + @JsonDeserialize( as=String.class ) + public void setVideo_source_id(String val ) { + video_source_id = val; + } + +/** No missing signatures from interface */ +} + diff --git a/classes/ch/loway/oss/ari4java/generated/ari_2_0_0/models/BuildInfo_impl_ari_2_0_0.java b/classes/ch/loway/oss/ari4java/generated/ari_2_0_0/models/BuildInfo_impl_ari_2_0_0.java new file mode 100644 index 00000000..7acdc847 --- /dev/null +++ b/classes/ch/loway/oss/ari4java/generated/ari_2_0_0/models/BuildInfo_impl_ari_2_0_0.java @@ -0,0 +1,92 @@ +package ch.loway.oss.ari4java.generated.ari_2_0_0.models; + +// ---------------------------------------------------- +// THIS CLASS WAS GENERATED AUTOMATICALLY +// PLEASE DO NOT EDIT +// Generated on: Sat Feb 04 15:23:09 CET 2017 +// ---------------------------------------------------- + +import ch.loway.oss.ari4java.generated.*; +import com.fasterxml.jackson.databind.annotation.JsonDeserialize; +import java.util.Date; +import java.util.List; +import java.util.Map; + +/********************************************************** + * Info about how Asterisk was built + * + * Defined in file: asterisk.json + * Generated by: Model + *********************************************************/ + +public class BuildInfo_impl_ari_2_0_0 implements BuildInfo, java.io.Serializable { +private static final long serialVersionUID = 1L; + /** Date and time when Asterisk was built. */ + private String date; + public String getDate() { + return date; + } + + @JsonDeserialize( as=String.class ) + public void setDate(String val ) { + date = val; + } + + /** Kernel version Asterisk was built on. */ + private String kernel; + public String getKernel() { + return kernel; + } + + @JsonDeserialize( as=String.class ) + public void setKernel(String val ) { + kernel = val; + } + + /** Machine architecture (x86_64, i686, ppc, etc.) */ + private String machine; + public String getMachine() { + return machine; + } + + @JsonDeserialize( as=String.class ) + public void setMachine(String val ) { + machine = val; + } + + /** Compile time options, or empty string if default. */ + private String options; + public String getOptions() { + return options; + } + + @JsonDeserialize( as=String.class ) + public void setOptions(String val ) { + options = val; + } + + /** OS Asterisk was built on. */ + private String os; + public String getOs() { + return os; + } + + @JsonDeserialize( as=String.class ) + public void setOs(String val ) { + os = val; + } + + /** Username that build Asterisk */ + private String user; + public String getUser() { + return user; + } + + @JsonDeserialize( as=String.class ) + public void setUser(String val ) { + user = val; + } + +/** No missing signatures from interface */ +} + diff --git a/classes/ch/loway/oss/ari4java/generated/ari_2_0_0/models/CallerID_impl_ari_2_0_0.java b/classes/ch/loway/oss/ari4java/generated/ari_2_0_0/models/CallerID_impl_ari_2_0_0.java new file mode 100644 index 00000000..25ae03d4 --- /dev/null +++ b/classes/ch/loway/oss/ari4java/generated/ari_2_0_0/models/CallerID_impl_ari_2_0_0.java @@ -0,0 +1,48 @@ +package ch.loway.oss.ari4java.generated.ari_2_0_0.models; + +// ---------------------------------------------------- +// THIS CLASS WAS GENERATED AUTOMATICALLY +// PLEASE DO NOT EDIT +// Generated on: Sat Feb 04 15:23:09 CET 2017 +// ---------------------------------------------------- + +import ch.loway.oss.ari4java.generated.*; +import com.fasterxml.jackson.databind.annotation.JsonDeserialize; +import java.util.Date; +import java.util.List; +import java.util.Map; + +/********************************************************** + * Caller identification + * + * Defined in file: channels.json + * Generated by: Model + *********************************************************/ + +public class CallerID_impl_ari_2_0_0 implements CallerID, java.io.Serializable { +private static final long serialVersionUID = 1L; + /** */ + private String name; + public String getName() { + return name; + } + + @JsonDeserialize( as=String.class ) + public void setName(String val ) { + name = val; + } + + /** */ + private String number; + public String getNumber() { + return number; + } + + @JsonDeserialize( as=String.class ) + public void setNumber(String val ) { + number = val; + } + +/** No missing signatures from interface */ +} + diff --git a/classes/ch/loway/oss/ari4java/generated/ari_2_0_0/models/ChannelCallerId_impl_ari_2_0_0.java b/classes/ch/loway/oss/ari4java/generated/ari_2_0_0/models/ChannelCallerId_impl_ari_2_0_0.java new file mode 100644 index 00000000..c99d2ec1 --- /dev/null +++ b/classes/ch/loway/oss/ari4java/generated/ari_2_0_0/models/ChannelCallerId_impl_ari_2_0_0.java @@ -0,0 +1,59 @@ +package ch.loway.oss.ari4java.generated.ari_2_0_0.models; + +// ---------------------------------------------------- +// THIS CLASS WAS GENERATED AUTOMATICALLY +// PLEASE DO NOT EDIT +// Generated on: Sat Feb 04 15:23:09 CET 2017 +// ---------------------------------------------------- + +import ch.loway.oss.ari4java.generated.*; +import com.fasterxml.jackson.databind.annotation.JsonDeserialize; +import java.util.Date; +import java.util.List; +import java.util.Map; + +/********************************************************** + * Channel changed Caller ID. + * + * Defined in file: events.json + * Generated by: Model + *********************************************************/ + +public class ChannelCallerId_impl_ari_2_0_0 extends Event_impl_ari_2_0_0 implements ChannelCallerId, java.io.Serializable { +private static final long serialVersionUID = 1L; + /** The integer representation of the Caller Presentation value. */ + private int caller_presentation; + public int getCaller_presentation() { + return caller_presentation; + } + + @JsonDeserialize( as=int.class ) + public void setCaller_presentation(int val ) { + caller_presentation = val; + } + + /** The text representation of the Caller Presentation value. */ + private String caller_presentation_txt; + public String getCaller_presentation_txt() { + return caller_presentation_txt; + } + + @JsonDeserialize( as=String.class ) + public void setCaller_presentation_txt(String val ) { + caller_presentation_txt = val; + } + + /** The channel that changed Caller ID. */ + private Channel channel; + public Channel getChannel() { + return channel; + } + + @JsonDeserialize( as=Channel_impl_ari_2_0_0.class ) + public void setChannel(Channel val ) { + channel = val; + } + +/** No missing signatures from interface */ +} + diff --git a/classes/ch/loway/oss/ari4java/generated/ari_2_0_0/models/ChannelConnectedLine_impl_ari_2_0_0.java b/classes/ch/loway/oss/ari4java/generated/ari_2_0_0/models/ChannelConnectedLine_impl_ari_2_0_0.java new file mode 100644 index 00000000..8cfbfca7 --- /dev/null +++ b/classes/ch/loway/oss/ari4java/generated/ari_2_0_0/models/ChannelConnectedLine_impl_ari_2_0_0.java @@ -0,0 +1,37 @@ +package ch.loway.oss.ari4java.generated.ari_2_0_0.models; + +// ---------------------------------------------------- +// THIS CLASS WAS GENERATED AUTOMATICALLY +// PLEASE DO NOT EDIT +// Generated on: Sat Feb 04 15:23:09 CET 2017 +// ---------------------------------------------------- + +import ch.loway.oss.ari4java.generated.*; +import com.fasterxml.jackson.databind.annotation.JsonDeserialize; +import java.util.Date; +import java.util.List; +import java.util.Map; + +/********************************************************** + * Channel changed Connected Line. + * + * Defined in file: events.json + * Generated by: Model + *********************************************************/ + +public class ChannelConnectedLine_impl_ari_2_0_0 extends Event_impl_ari_2_0_0 implements ChannelConnectedLine, java.io.Serializable { +private static final long serialVersionUID = 1L; + /** The channel whose connected line has changed. */ + private Channel channel; + public Channel getChannel() { + return channel; + } + + @JsonDeserialize( as=Channel_impl_ari_2_0_0.class ) + public void setChannel(Channel val ) { + channel = val; + } + +/** No missing signatures from interface */ +} + diff --git a/classes/ch/loway/oss/ari4java/generated/ari_2_0_0/models/ChannelCreated_impl_ari_2_0_0.java b/classes/ch/loway/oss/ari4java/generated/ari_2_0_0/models/ChannelCreated_impl_ari_2_0_0.java new file mode 100644 index 00000000..07057cd1 --- /dev/null +++ b/classes/ch/loway/oss/ari4java/generated/ari_2_0_0/models/ChannelCreated_impl_ari_2_0_0.java @@ -0,0 +1,37 @@ +package ch.loway.oss.ari4java.generated.ari_2_0_0.models; + +// ---------------------------------------------------- +// THIS CLASS WAS GENERATED AUTOMATICALLY +// PLEASE DO NOT EDIT +// Generated on: Sat Feb 04 15:23:09 CET 2017 +// ---------------------------------------------------- + +import ch.loway.oss.ari4java.generated.*; +import com.fasterxml.jackson.databind.annotation.JsonDeserialize; +import java.util.Date; +import java.util.List; +import java.util.Map; + +/********************************************************** + * Notification that a channel has been created. + * + * Defined in file: events.json + * Generated by: Model + *********************************************************/ + +public class ChannelCreated_impl_ari_2_0_0 extends Event_impl_ari_2_0_0 implements ChannelCreated, java.io.Serializable { +private static final long serialVersionUID = 1L; + /** */ + private Channel channel; + public Channel getChannel() { + return channel; + } + + @JsonDeserialize( as=Channel_impl_ari_2_0_0.class ) + public void setChannel(Channel val ) { + channel = val; + } + +/** No missing signatures from interface */ +} + diff --git a/classes/ch/loway/oss/ari4java/generated/ari_2_0_0/models/ChannelDestroyed_impl_ari_2_0_0.java b/classes/ch/loway/oss/ari4java/generated/ari_2_0_0/models/ChannelDestroyed_impl_ari_2_0_0.java new file mode 100644 index 00000000..84af817f --- /dev/null +++ b/classes/ch/loway/oss/ari4java/generated/ari_2_0_0/models/ChannelDestroyed_impl_ari_2_0_0.java @@ -0,0 +1,59 @@ +package ch.loway.oss.ari4java.generated.ari_2_0_0.models; + +// ---------------------------------------------------- +// THIS CLASS WAS GENERATED AUTOMATICALLY +// PLEASE DO NOT EDIT +// Generated on: Sat Feb 04 15:23:09 CET 2017 +// ---------------------------------------------------- + +import ch.loway.oss.ari4java.generated.*; +import com.fasterxml.jackson.databind.annotation.JsonDeserialize; +import java.util.Date; +import java.util.List; +import java.util.Map; + +/********************************************************** + * Notification that a channel has been destroyed. + * + * Defined in file: events.json + * Generated by: Model + *********************************************************/ + +public class ChannelDestroyed_impl_ari_2_0_0 extends Event_impl_ari_2_0_0 implements ChannelDestroyed, java.io.Serializable { +private static final long serialVersionUID = 1L; + /** Integer representation of the cause of the hangup */ + private int cause; + public int getCause() { + return cause; + } + + @JsonDeserialize( as=int.class ) + public void setCause(int val ) { + cause = val; + } + + /** Text representation of the cause of the hangup */ + private String cause_txt; + public String getCause_txt() { + return cause_txt; + } + + @JsonDeserialize( as=String.class ) + public void setCause_txt(String val ) { + cause_txt = val; + } + + /** */ + private Channel channel; + public Channel getChannel() { + return channel; + } + + @JsonDeserialize( as=Channel_impl_ari_2_0_0.class ) + public void setChannel(Channel val ) { + channel = val; + } + +/** No missing signatures from interface */ +} + diff --git a/classes/ch/loway/oss/ari4java/generated/ari_2_0_0/models/ChannelDialplan_impl_ari_2_0_0.java b/classes/ch/loway/oss/ari4java/generated/ari_2_0_0/models/ChannelDialplan_impl_ari_2_0_0.java new file mode 100644 index 00000000..16e27ca4 --- /dev/null +++ b/classes/ch/loway/oss/ari4java/generated/ari_2_0_0/models/ChannelDialplan_impl_ari_2_0_0.java @@ -0,0 +1,59 @@ +package ch.loway.oss.ari4java.generated.ari_2_0_0.models; + +// ---------------------------------------------------- +// THIS CLASS WAS GENERATED AUTOMATICALLY +// PLEASE DO NOT EDIT +// Generated on: Sat Feb 04 15:23:09 CET 2017 +// ---------------------------------------------------- + +import ch.loway.oss.ari4java.generated.*; +import com.fasterxml.jackson.databind.annotation.JsonDeserialize; +import java.util.Date; +import java.util.List; +import java.util.Map; + +/********************************************************** + * Channel changed location in the dialplan. + * + * Defined in file: events.json + * Generated by: Model + *********************************************************/ + +public class ChannelDialplan_impl_ari_2_0_0 extends Event_impl_ari_2_0_0 implements ChannelDialplan, java.io.Serializable { +private static final long serialVersionUID = 1L; + /** The channel that changed dialplan location. */ + private Channel channel; + public Channel getChannel() { + return channel; + } + + @JsonDeserialize( as=Channel_impl_ari_2_0_0.class ) + public void setChannel(Channel val ) { + channel = val; + } + + /** The application about to be executed. */ + private String dialplan_app; + public String getDialplan_app() { + return dialplan_app; + } + + @JsonDeserialize( as=String.class ) + public void setDialplan_app(String val ) { + dialplan_app = val; + } + + /** The data to be passed to the application. */ + private String dialplan_app_data; + public String getDialplan_app_data() { + return dialplan_app_data; + } + + @JsonDeserialize( as=String.class ) + public void setDialplan_app_data(String val ) { + dialplan_app_data = val; + } + +/** No missing signatures from interface */ +} + diff --git a/classes/ch/loway/oss/ari4java/generated/ari_2_0_0/models/ChannelDtmfReceived_impl_ari_2_0_0.java b/classes/ch/loway/oss/ari4java/generated/ari_2_0_0/models/ChannelDtmfReceived_impl_ari_2_0_0.java new file mode 100644 index 00000000..dd10edab --- /dev/null +++ b/classes/ch/loway/oss/ari4java/generated/ari_2_0_0/models/ChannelDtmfReceived_impl_ari_2_0_0.java @@ -0,0 +1,61 @@ +package ch.loway.oss.ari4java.generated.ari_2_0_0.models; + +// ---------------------------------------------------- +// THIS CLASS WAS GENERATED AUTOMATICALLY +// PLEASE DO NOT EDIT +// Generated on: Sat Feb 04 15:23:09 CET 2017 +// ---------------------------------------------------- + +import ch.loway.oss.ari4java.generated.*; +import com.fasterxml.jackson.databind.annotation.JsonDeserialize; +import java.util.Date; +import java.util.List; +import java.util.Map; + +/********************************************************** + * DTMF received on a channel. + * + * This event is sent when the DTMF ends. There is no notification about the start of DTMF + * + * Defined in file: events.json + * Generated by: Model + *********************************************************/ + +public class ChannelDtmfReceived_impl_ari_2_0_0 extends Event_impl_ari_2_0_0 implements ChannelDtmfReceived, java.io.Serializable { +private static final long serialVersionUID = 1L; + /** The channel on which DTMF was received */ + private Channel channel; + public Channel getChannel() { + return channel; + } + + @JsonDeserialize( as=Channel_impl_ari_2_0_0.class ) + public void setChannel(Channel val ) { + channel = val; + } + + /** DTMF digit received (0-9, A-E, # or *) */ + private String digit; + public String getDigit() { + return digit; + } + + @JsonDeserialize( as=String.class ) + public void setDigit(String val ) { + digit = val; + } + + /** Number of milliseconds DTMF was received */ + private int duration_ms; + public int getDuration_ms() { + return duration_ms; + } + + @JsonDeserialize( as=int.class ) + public void setDuration_ms(int val ) { + duration_ms = val; + } + +/** No missing signatures from interface */ +} + diff --git a/classes/ch/loway/oss/ari4java/generated/ari_2_0_0/models/ChannelEnteredBridge_impl_ari_2_0_0.java b/classes/ch/loway/oss/ari4java/generated/ari_2_0_0/models/ChannelEnteredBridge_impl_ari_2_0_0.java new file mode 100644 index 00000000..c8816e6f --- /dev/null +++ b/classes/ch/loway/oss/ari4java/generated/ari_2_0_0/models/ChannelEnteredBridge_impl_ari_2_0_0.java @@ -0,0 +1,48 @@ +package ch.loway.oss.ari4java.generated.ari_2_0_0.models; + +// ---------------------------------------------------- +// THIS CLASS WAS GENERATED AUTOMATICALLY +// PLEASE DO NOT EDIT +// Generated on: Sat Feb 04 15:23:09 CET 2017 +// ---------------------------------------------------- + +import ch.loway.oss.ari4java.generated.*; +import com.fasterxml.jackson.databind.annotation.JsonDeserialize; +import java.util.Date; +import java.util.List; +import java.util.Map; + +/********************************************************** + * Notification that a channel has entered a bridge. + * + * Defined in file: events.json + * Generated by: Model + *********************************************************/ + +public class ChannelEnteredBridge_impl_ari_2_0_0 extends Event_impl_ari_2_0_0 implements ChannelEnteredBridge, java.io.Serializable { +private static final long serialVersionUID = 1L; + /** */ + private Bridge bridge; + public Bridge getBridge() { + return bridge; + } + + @JsonDeserialize( as=Bridge_impl_ari_2_0_0.class ) + public void setBridge(Bridge val ) { + bridge = val; + } + + /** */ + private Channel channel; + public Channel getChannel() { + return channel; + } + + @JsonDeserialize( as=Channel_impl_ari_2_0_0.class ) + public void setChannel(Channel val ) { + channel = val; + } + +/** No missing signatures from interface */ +} + diff --git a/classes/ch/loway/oss/ari4java/generated/ari_2_0_0/models/ChannelHangupRequest_impl_ari_2_0_0.java b/classes/ch/loway/oss/ari4java/generated/ari_2_0_0/models/ChannelHangupRequest_impl_ari_2_0_0.java new file mode 100644 index 00000000..de6a6b12 --- /dev/null +++ b/classes/ch/loway/oss/ari4java/generated/ari_2_0_0/models/ChannelHangupRequest_impl_ari_2_0_0.java @@ -0,0 +1,59 @@ +package ch.loway.oss.ari4java.generated.ari_2_0_0.models; + +// ---------------------------------------------------- +// THIS CLASS WAS GENERATED AUTOMATICALLY +// PLEASE DO NOT EDIT +// Generated on: Sat Feb 04 15:23:09 CET 2017 +// ---------------------------------------------------- + +import ch.loway.oss.ari4java.generated.*; +import com.fasterxml.jackson.databind.annotation.JsonDeserialize; +import java.util.Date; +import java.util.List; +import java.util.Map; + +/********************************************************** + * A hangup was requested on the channel. + * + * Defined in file: events.json + * Generated by: Model + *********************************************************/ + +public class ChannelHangupRequest_impl_ari_2_0_0 extends Event_impl_ari_2_0_0 implements ChannelHangupRequest, java.io.Serializable { +private static final long serialVersionUID = 1L; + /** Integer representation of the cause of the hangup. */ + private int cause; + public int getCause() { + return cause; + } + + @JsonDeserialize( as=int.class ) + public void setCause(int val ) { + cause = val; + } + + /** The channel on which the hangup was requested. */ + private Channel channel; + public Channel getChannel() { + return channel; + } + + @JsonDeserialize( as=Channel_impl_ari_2_0_0.class ) + public void setChannel(Channel val ) { + channel = val; + } + + /** Whether the hangup request was a soft hangup request. */ + private boolean soft; + public boolean getSoft() { + return soft; + } + + @JsonDeserialize( as=boolean.class ) + public void setSoft(boolean val ) { + soft = val; + } + +/** No missing signatures from interface */ +} + diff --git a/classes/ch/loway/oss/ari4java/generated/ari_2_0_0/models/ChannelHold_impl_ari_2_0_0.java b/classes/ch/loway/oss/ari4java/generated/ari_2_0_0/models/ChannelHold_impl_ari_2_0_0.java new file mode 100644 index 00000000..a2f49147 --- /dev/null +++ b/classes/ch/loway/oss/ari4java/generated/ari_2_0_0/models/ChannelHold_impl_ari_2_0_0.java @@ -0,0 +1,48 @@ +package ch.loway.oss.ari4java.generated.ari_2_0_0.models; + +// ---------------------------------------------------- +// THIS CLASS WAS GENERATED AUTOMATICALLY +// PLEASE DO NOT EDIT +// Generated on: Sat Feb 04 15:23:09 CET 2017 +// ---------------------------------------------------- + +import ch.loway.oss.ari4java.generated.*; +import com.fasterxml.jackson.databind.annotation.JsonDeserialize; +import java.util.Date; +import java.util.List; +import java.util.Map; + +/********************************************************** + * A channel initiated a media hold. + * + * Defined in file: events.json + * Generated by: Model + *********************************************************/ + +public class ChannelHold_impl_ari_2_0_0 extends Event_impl_ari_2_0_0 implements ChannelHold, java.io.Serializable { +private static final long serialVersionUID = 1L; + /** The channel that initiated the hold event. */ + private Channel channel; + public Channel getChannel() { + return channel; + } + + @JsonDeserialize( as=Channel_impl_ari_2_0_0.class ) + public void setChannel(Channel val ) { + channel = val; + } + + /** The music on hold class that the initiator requested. */ + private String musicclass; + public String getMusicclass() { + return musicclass; + } + + @JsonDeserialize( as=String.class ) + public void setMusicclass(String val ) { + musicclass = val; + } + +/** No missing signatures from interface */ +} + diff --git a/classes/ch/loway/oss/ari4java/generated/ari_2_0_0/models/ChannelLeftBridge_impl_ari_2_0_0.java b/classes/ch/loway/oss/ari4java/generated/ari_2_0_0/models/ChannelLeftBridge_impl_ari_2_0_0.java new file mode 100644 index 00000000..d8ee3cbd --- /dev/null +++ b/classes/ch/loway/oss/ari4java/generated/ari_2_0_0/models/ChannelLeftBridge_impl_ari_2_0_0.java @@ -0,0 +1,48 @@ +package ch.loway.oss.ari4java.generated.ari_2_0_0.models; + +// ---------------------------------------------------- +// THIS CLASS WAS GENERATED AUTOMATICALLY +// PLEASE DO NOT EDIT +// Generated on: Sat Feb 04 15:23:09 CET 2017 +// ---------------------------------------------------- + +import ch.loway.oss.ari4java.generated.*; +import com.fasterxml.jackson.databind.annotation.JsonDeserialize; +import java.util.Date; +import java.util.List; +import java.util.Map; + +/********************************************************** + * Notification that a channel has left a bridge. + * + * Defined in file: events.json + * Generated by: Model + *********************************************************/ + +public class ChannelLeftBridge_impl_ari_2_0_0 extends Event_impl_ari_2_0_0 implements ChannelLeftBridge, java.io.Serializable { +private static final long serialVersionUID = 1L; + /** */ + private Bridge bridge; + public Bridge getBridge() { + return bridge; + } + + @JsonDeserialize( as=Bridge_impl_ari_2_0_0.class ) + public void setBridge(Bridge val ) { + bridge = val; + } + + /** */ + private Channel channel; + public Channel getChannel() { + return channel; + } + + @JsonDeserialize( as=Channel_impl_ari_2_0_0.class ) + public void setChannel(Channel val ) { + channel = val; + } + +/** No missing signatures from interface */ +} + diff --git a/classes/ch/loway/oss/ari4java/generated/ari_2_0_0/models/ChannelStateChange_impl_ari_2_0_0.java b/classes/ch/loway/oss/ari4java/generated/ari_2_0_0/models/ChannelStateChange_impl_ari_2_0_0.java new file mode 100644 index 00000000..6ad72677 --- /dev/null +++ b/classes/ch/loway/oss/ari4java/generated/ari_2_0_0/models/ChannelStateChange_impl_ari_2_0_0.java @@ -0,0 +1,37 @@ +package ch.loway.oss.ari4java.generated.ari_2_0_0.models; + +// ---------------------------------------------------- +// THIS CLASS WAS GENERATED AUTOMATICALLY +// PLEASE DO NOT EDIT +// Generated on: Sat Feb 04 15:23:09 CET 2017 +// ---------------------------------------------------- + +import ch.loway.oss.ari4java.generated.*; +import com.fasterxml.jackson.databind.annotation.JsonDeserialize; +import java.util.Date; +import java.util.List; +import java.util.Map; + +/********************************************************** + * Notification of a channel's state change. + * + * Defined in file: events.json + * Generated by: Model + *********************************************************/ + +public class ChannelStateChange_impl_ari_2_0_0 extends Event_impl_ari_2_0_0 implements ChannelStateChange, java.io.Serializable { +private static final long serialVersionUID = 1L; + /** */ + private Channel channel; + public Channel getChannel() { + return channel; + } + + @JsonDeserialize( as=Channel_impl_ari_2_0_0.class ) + public void setChannel(Channel val ) { + channel = val; + } + +/** No missing signatures from interface */ +} + diff --git a/classes/ch/loway/oss/ari4java/generated/ari_2_0_0/models/ChannelTalkingFinished_impl_ari_2_0_0.java b/classes/ch/loway/oss/ari4java/generated/ari_2_0_0/models/ChannelTalkingFinished_impl_ari_2_0_0.java new file mode 100644 index 00000000..d85ee5d8 --- /dev/null +++ b/classes/ch/loway/oss/ari4java/generated/ari_2_0_0/models/ChannelTalkingFinished_impl_ari_2_0_0.java @@ -0,0 +1,48 @@ +package ch.loway.oss.ari4java.generated.ari_2_0_0.models; + +// ---------------------------------------------------- +// THIS CLASS WAS GENERATED AUTOMATICALLY +// PLEASE DO NOT EDIT +// Generated on: Sat Feb 04 15:23:09 CET 2017 +// ---------------------------------------------------- + +import ch.loway.oss.ari4java.generated.*; +import com.fasterxml.jackson.databind.annotation.JsonDeserialize; +import java.util.Date; +import java.util.List; +import java.util.Map; + +/********************************************************** + * Talking is no longer detected on the channel. + * + * Defined in file: events.json + * Generated by: Model + *********************************************************/ + +public class ChannelTalkingFinished_impl_ari_2_0_0 extends Event_impl_ari_2_0_0 implements ChannelTalkingFinished, java.io.Serializable { +private static final long serialVersionUID = 1L; + /** The channel on which talking completed. */ + private Channel channel; + public Channel getChannel() { + return channel; + } + + @JsonDeserialize( as=Channel_impl_ari_2_0_0.class ) + public void setChannel(Channel val ) { + channel = val; + } + + /** The length of time, in milliseconds, that talking was detected on the channel */ + private int duration; + public int getDuration() { + return duration; + } + + @JsonDeserialize( as=int.class ) + public void setDuration(int val ) { + duration = val; + } + +/** No missing signatures from interface */ +} + diff --git a/classes/ch/loway/oss/ari4java/generated/ari_2_0_0/models/ChannelTalkingStarted_impl_ari_2_0_0.java b/classes/ch/loway/oss/ari4java/generated/ari_2_0_0/models/ChannelTalkingStarted_impl_ari_2_0_0.java new file mode 100644 index 00000000..bd239a20 --- /dev/null +++ b/classes/ch/loway/oss/ari4java/generated/ari_2_0_0/models/ChannelTalkingStarted_impl_ari_2_0_0.java @@ -0,0 +1,37 @@ +package ch.loway.oss.ari4java.generated.ari_2_0_0.models; + +// ---------------------------------------------------- +// THIS CLASS WAS GENERATED AUTOMATICALLY +// PLEASE DO NOT EDIT +// Generated on: Sat Feb 04 15:23:09 CET 2017 +// ---------------------------------------------------- + +import ch.loway.oss.ari4java.generated.*; +import com.fasterxml.jackson.databind.annotation.JsonDeserialize; +import java.util.Date; +import java.util.List; +import java.util.Map; + +/********************************************************** + * Talking was detected on the channel. + * + * Defined in file: events.json + * Generated by: Model + *********************************************************/ + +public class ChannelTalkingStarted_impl_ari_2_0_0 extends Event_impl_ari_2_0_0 implements ChannelTalkingStarted, java.io.Serializable { +private static final long serialVersionUID = 1L; + /** The channel on which talking started. */ + private Channel channel; + public Channel getChannel() { + return channel; + } + + @JsonDeserialize( as=Channel_impl_ari_2_0_0.class ) + public void setChannel(Channel val ) { + channel = val; + } + +/** No missing signatures from interface */ +} + diff --git a/classes/ch/loway/oss/ari4java/generated/ari_2_0_0/models/ChannelUnhold_impl_ari_2_0_0.java b/classes/ch/loway/oss/ari4java/generated/ari_2_0_0/models/ChannelUnhold_impl_ari_2_0_0.java new file mode 100644 index 00000000..bd94082a --- /dev/null +++ b/classes/ch/loway/oss/ari4java/generated/ari_2_0_0/models/ChannelUnhold_impl_ari_2_0_0.java @@ -0,0 +1,37 @@ +package ch.loway.oss.ari4java.generated.ari_2_0_0.models; + +// ---------------------------------------------------- +// THIS CLASS WAS GENERATED AUTOMATICALLY +// PLEASE DO NOT EDIT +// Generated on: Sat Feb 04 15:23:09 CET 2017 +// ---------------------------------------------------- + +import ch.loway.oss.ari4java.generated.*; +import com.fasterxml.jackson.databind.annotation.JsonDeserialize; +import java.util.Date; +import java.util.List; +import java.util.Map; + +/********************************************************** + * A channel initiated a media unhold. + * + * Defined in file: events.json + * Generated by: Model + *********************************************************/ + +public class ChannelUnhold_impl_ari_2_0_0 extends Event_impl_ari_2_0_0 implements ChannelUnhold, java.io.Serializable { +private static final long serialVersionUID = 1L; + /** The channel that initiated the unhold event. */ + private Channel channel; + public Channel getChannel() { + return channel; + } + + @JsonDeserialize( as=Channel_impl_ari_2_0_0.class ) + public void setChannel(Channel val ) { + channel = val; + } + +/** No missing signatures from interface */ +} + diff --git a/classes/ch/loway/oss/ari4java/generated/ari_2_0_0/models/ChannelUserevent_impl_ari_2_0_0.java b/classes/ch/loway/oss/ari4java/generated/ari_2_0_0/models/ChannelUserevent_impl_ari_2_0_0.java new file mode 100644 index 00000000..c62426d1 --- /dev/null +++ b/classes/ch/loway/oss/ari4java/generated/ari_2_0_0/models/ChannelUserevent_impl_ari_2_0_0.java @@ -0,0 +1,81 @@ +package ch.loway.oss.ari4java.generated.ari_2_0_0.models; + +// ---------------------------------------------------- +// THIS CLASS WAS GENERATED AUTOMATICALLY +// PLEASE DO NOT EDIT +// Generated on: Sat Feb 04 15:23:09 CET 2017 +// ---------------------------------------------------- + +import ch.loway.oss.ari4java.generated.*; +import com.fasterxml.jackson.databind.annotation.JsonDeserialize; +import java.util.Date; +import java.util.List; +import java.util.Map; + +/********************************************************** + * User-generated event with additional user-defined fields in the object. + * + * Defined in file: events.json + * Generated by: Model + *********************************************************/ + +public class ChannelUserevent_impl_ari_2_0_0 extends Event_impl_ari_2_0_0 implements ChannelUserevent, java.io.Serializable { +private static final long serialVersionUID = 1L; + /** A bridge that is signaled with the user event. */ + private Bridge bridge; + public Bridge getBridge() { + return bridge; + } + + @JsonDeserialize( as=Bridge_impl_ari_2_0_0.class ) + public void setBridge(Bridge val ) { + bridge = val; + } + + /** A channel that is signaled with the user event. */ + private Channel channel; + public Channel getChannel() { + return channel; + } + + @JsonDeserialize( as=Channel_impl_ari_2_0_0.class ) + public void setChannel(Channel val ) { + channel = val; + } + + /** A endpoint that is signaled with the user event. */ + private Endpoint endpoint; + public Endpoint getEndpoint() { + return endpoint; + } + + @JsonDeserialize( as=Endpoint_impl_ari_2_0_0.class ) + public void setEndpoint(Endpoint val ) { + endpoint = val; + } + + /** The name of the user event. */ + private String eventname; + public String getEventname() { + return eventname; + } + + @JsonDeserialize( as=String.class ) + public void setEventname(String val ) { + eventname = val; + } + + /** Custom Userevent data */ + private String userevent; + public String getUserevent() { + return userevent; + } + + @JsonDeserialize( as=String.class ) + public void setUserevent(String val ) { + userevent = val; + } + +/** No missing signatures from interface */ +} + diff --git a/classes/ch/loway/oss/ari4java/generated/ari_2_0_0/models/ChannelVarset_impl_ari_2_0_0.java b/classes/ch/loway/oss/ari4java/generated/ari_2_0_0/models/ChannelVarset_impl_ari_2_0_0.java new file mode 100644 index 00000000..db272a6e --- /dev/null +++ b/classes/ch/loway/oss/ari4java/generated/ari_2_0_0/models/ChannelVarset_impl_ari_2_0_0.java @@ -0,0 +1,61 @@ +package ch.loway.oss.ari4java.generated.ari_2_0_0.models; + +// ---------------------------------------------------- +// THIS CLASS WAS GENERATED AUTOMATICALLY +// PLEASE DO NOT EDIT +// Generated on: Sat Feb 04 15:23:09 CET 2017 +// ---------------------------------------------------- + +import ch.loway.oss.ari4java.generated.*; +import com.fasterxml.jackson.databind.annotation.JsonDeserialize; +import java.util.Date; +import java.util.List; +import java.util.Map; + +/********************************************************** + * Channel variable changed. + * + * Defined in file: events.json + * Generated by: Model + *********************************************************/ + +public class ChannelVarset_impl_ari_2_0_0 extends Event_impl_ari_2_0_0 implements ChannelVarset, java.io.Serializable { +private static final long serialVersionUID = 1L; + /** The channel on which the variable was set. + +If missing, the variable is a global variable. */ + private Channel channel; + public Channel getChannel() { + return channel; + } + + @JsonDeserialize( as=Channel_impl_ari_2_0_0.class ) + public void setChannel(Channel val ) { + channel = val; + } + + /** The new value of the variable. */ + private String value; + public String getValue() { + return value; + } + + @JsonDeserialize( as=String.class ) + public void setValue(String val ) { + value = val; + } + + /** The variable that changed. */ + private String variable; + public String getVariable() { + return variable; + } + + @JsonDeserialize( as=String.class ) + public void setVariable(String val ) { + variable = val; + } + +/** No missing signatures from interface */ +} + diff --git a/classes/ch/loway/oss/ari4java/generated/ari_2_0_0/models/Channel_impl_ari_2_0_0.java b/classes/ch/loway/oss/ari4java/generated/ari_2_0_0/models/Channel_impl_ari_2_0_0.java new file mode 100644 index 00000000..a86c9201 --- /dev/null +++ b/classes/ch/loway/oss/ari4java/generated/ari_2_0_0/models/Channel_impl_ari_2_0_0.java @@ -0,0 +1,138 @@ +package ch.loway.oss.ari4java.generated.ari_2_0_0.models; + +// ---------------------------------------------------- +// THIS CLASS WAS GENERATED AUTOMATICALLY +// PLEASE DO NOT EDIT +// Generated on: Sat Feb 04 15:23:09 CET 2017 +// ---------------------------------------------------- + +import ch.loway.oss.ari4java.generated.*; +import com.fasterxml.jackson.databind.annotation.JsonDeserialize; +import java.util.Date; +import java.util.List; +import java.util.Map; + +/********************************************************** + * A specific communication connection between Asterisk and an Endpoint. + * + * Defined in file: channels.json + * Generated by: Model + *********************************************************/ + +public class Channel_impl_ari_2_0_0 implements Channel, java.io.Serializable { +private static final long serialVersionUID = 1L; + /** */ + private String accountcode; + public String getAccountcode() { + return accountcode; + } + + @JsonDeserialize( as=String.class ) + public void setAccountcode(String val ) { + accountcode = val; + } + + /** */ + private CallerID caller; + public CallerID getCaller() { + return caller; + } + + @JsonDeserialize( as=CallerID_impl_ari_2_0_0.class ) + public void setCaller(CallerID val ) { + caller = val; + } + + /** Channel variables */ + private String channelvars; + public String getChannelvars() { + return channelvars; + } + + @JsonDeserialize( as=String.class ) + public void setChannelvars(String val ) { + channelvars = val; + } + + /** */ + private CallerID connected; + public CallerID getConnected() { + return connected; + } + + @JsonDeserialize( as=CallerID_impl_ari_2_0_0.class ) + public void setConnected(CallerID val ) { + connected = val; + } + + /** Timestamp when channel was created */ + private Date creationtime; + public Date getCreationtime() { + return creationtime; + } + + @JsonDeserialize( as=Date.class ) + public void setCreationtime(Date val ) { + creationtime = val; + } + + /** Current location in the dialplan */ + private DialplanCEP dialplan; + public DialplanCEP getDialplan() { + return dialplan; + } + + @JsonDeserialize( as=DialplanCEP_impl_ari_2_0_0.class ) + public void setDialplan(DialplanCEP val ) { + dialplan = val; + } + + /** Unique identifier of the channel. + +This is the same as the Uniqueid field in AMI. */ + private String id; + public String getId() { + return id; + } + + @JsonDeserialize( as=String.class ) + public void setId(String val ) { + id = val; + } + + /** The default spoken language */ + private String language; + public String getLanguage() { + return language; + } + + @JsonDeserialize( as=String.class ) + public void setLanguage(String val ) { + language = val; + } + + /** Name of the channel (i.e. SIP/foo-0000a7e3) */ + private String name; + public String getName() { + return name; + } + + @JsonDeserialize( as=String.class ) + public void setName(String val ) { + name = val; + } + + /** */ + private String state; + public String getState() { + return state; + } + + @JsonDeserialize( as=String.class ) + public void setState(String val ) { + state = val; + } + +/** No missing signatures from interface */ +} + diff --git a/classes/ch/loway/oss/ari4java/generated/ari_2_0_0/models/ConfigInfo_impl_ari_2_0_0.java b/classes/ch/loway/oss/ari4java/generated/ari_2_0_0/models/ConfigInfo_impl_ari_2_0_0.java new file mode 100644 index 00000000..de46575a --- /dev/null +++ b/classes/ch/loway/oss/ari4java/generated/ari_2_0_0/models/ConfigInfo_impl_ari_2_0_0.java @@ -0,0 +1,92 @@ +package ch.loway.oss.ari4java.generated.ari_2_0_0.models; + +// ---------------------------------------------------- +// THIS CLASS WAS GENERATED AUTOMATICALLY +// PLEASE DO NOT EDIT +// Generated on: Sat Feb 04 15:23:09 CET 2017 +// ---------------------------------------------------- + +import ch.loway.oss.ari4java.generated.*; +import com.fasterxml.jackson.databind.annotation.JsonDeserialize; +import java.util.Date; +import java.util.List; +import java.util.Map; + +/********************************************************** + * Info about Asterisk configuration + * + * Defined in file: asterisk.json + * Generated by: Model + *********************************************************/ + +public class ConfigInfo_impl_ari_2_0_0 implements ConfigInfo, java.io.Serializable { +private static final long serialVersionUID = 1L; + /** Default language for media playback. */ + private String default_language; + public String getDefault_language() { + return default_language; + } + + @JsonDeserialize( as=String.class ) + public void setDefault_language(String val ) { + default_language = val; + } + + /** Maximum number of simultaneous channels. */ + private int max_channels; + public int getMax_channels() { + return max_channels; + } + + @JsonDeserialize( as=int.class ) + public void setMax_channels(int val ) { + max_channels = val; + } + + /** Maximum load avg on system. */ + private double max_load; + public double getMax_load() { + return max_load; + } + + @JsonDeserialize( as=double.class ) + public void setMax_load(double val ) { + max_load = val; + } + + /** Maximum number of open file handles (files, sockets). */ + private int max_open_files; + public int getMax_open_files() { + return max_open_files; + } + + @JsonDeserialize( as=int.class ) + public void setMax_open_files(int val ) { + max_open_files = val; + } + + /** Asterisk system name. */ + private String name; + public String getName() { + return name; + } + + @JsonDeserialize( as=String.class ) + public void setName(String val ) { + name = val; + } + + /** Effective user/group id for running Asterisk. */ + private SetId setid; + public SetId getSetid() { + return setid; + } + + @JsonDeserialize( as=SetId_impl_ari_2_0_0.class ) + public void setSetid(SetId val ) { + setid = val; + } + +/** No missing signatures from interface */ +} + diff --git a/classes/ch/loway/oss/ari4java/generated/ari_2_0_0/models/ConfigTuple_impl_ari_2_0_0.java b/classes/ch/loway/oss/ari4java/generated/ari_2_0_0/models/ConfigTuple_impl_ari_2_0_0.java new file mode 100644 index 00000000..acda06c7 --- /dev/null +++ b/classes/ch/loway/oss/ari4java/generated/ari_2_0_0/models/ConfigTuple_impl_ari_2_0_0.java @@ -0,0 +1,48 @@ +package ch.loway.oss.ari4java.generated.ari_2_0_0.models; + +// ---------------------------------------------------- +// THIS CLASS WAS GENERATED AUTOMATICALLY +// PLEASE DO NOT EDIT +// Generated on: Sat Feb 04 15:23:09 CET 2017 +// ---------------------------------------------------- + +import ch.loway.oss.ari4java.generated.*; +import com.fasterxml.jackson.databind.annotation.JsonDeserialize; +import java.util.Date; +import java.util.List; +import java.util.Map; + +/********************************************************** + * A key/value pair that makes up part of a configuration object. + * + * Defined in file: asterisk.json + * Generated by: Model + *********************************************************/ + +public class ConfigTuple_impl_ari_2_0_0 implements ConfigTuple, java.io.Serializable { +private static final long serialVersionUID = 1L; + /** A configuration object attribute. */ + private String attribute; + public String getAttribute() { + return attribute; + } + + @JsonDeserialize( as=String.class ) + public void setAttribute(String val ) { + attribute = val; + } + + /** The value for the attribute. */ + private String value; + public String getValue() { + return value; + } + + @JsonDeserialize( as=String.class ) + public void setValue(String val ) { + value = val; + } + +/** No missing signatures from interface */ +} + diff --git a/classes/ch/loway/oss/ari4java/generated/ari_2_0_0/models/ContactInfo_impl_ari_2_0_0.java b/classes/ch/loway/oss/ari4java/generated/ari_2_0_0/models/ContactInfo_impl_ari_2_0_0.java new file mode 100644 index 00000000..7c0221c0 --- /dev/null +++ b/classes/ch/loway/oss/ari4java/generated/ari_2_0_0/models/ContactInfo_impl_ari_2_0_0.java @@ -0,0 +1,70 @@ +package ch.loway.oss.ari4java.generated.ari_2_0_0.models; + +// ---------------------------------------------------- +// THIS CLASS WAS GENERATED AUTOMATICALLY +// PLEASE DO NOT EDIT +// Generated on: Sat Feb 04 15:23:09 CET 2017 +// ---------------------------------------------------- + +import ch.loway.oss.ari4java.generated.*; +import com.fasterxml.jackson.databind.annotation.JsonDeserialize; +import java.util.Date; +import java.util.List; +import java.util.Map; + +/********************************************************** + * Detailed information about a contact on an endpoint. + * + * Defined in file: events.json + * Generated by: Model + *********************************************************/ + +public class ContactInfo_impl_ari_2_0_0 implements ContactInfo, java.io.Serializable { +private static final long serialVersionUID = 1L; + /** The Address of Record this contact belongs to. */ + private String aor; + public String getAor() { + return aor; + } + + @JsonDeserialize( as=String.class ) + public void setAor(String val ) { + aor = val; + } + + /** The current status of the contact. */ + private String contact_status; + public String getContact_status() { + return contact_status; + } + + @JsonDeserialize( as=String.class ) + public void setContact_status(String val ) { + contact_status = val; + } + + /** Current round trip time, in microseconds, for the contact. */ + private String roundtrip_usec; + public String getRoundtrip_usec() { + return roundtrip_usec; + } + + @JsonDeserialize( as=String.class ) + public void setRoundtrip_usec(String val ) { + roundtrip_usec = val; + } + + /** The location of the contact. */ + private String uri; + public String getUri() { + return uri; + } + + @JsonDeserialize( as=String.class ) + public void setUri(String val ) { + uri = val; + } + +/** No missing signatures from interface */ +} + diff --git a/classes/ch/loway/oss/ari4java/generated/ari_2_0_0/models/ContactStatusChange_impl_ari_2_0_0.java b/classes/ch/loway/oss/ari4java/generated/ari_2_0_0/models/ContactStatusChange_impl_ari_2_0_0.java new file mode 100644 index 00000000..43dea76c --- /dev/null +++ b/classes/ch/loway/oss/ari4java/generated/ari_2_0_0/models/ContactStatusChange_impl_ari_2_0_0.java @@ -0,0 +1,48 @@ +package ch.loway.oss.ari4java.generated.ari_2_0_0.models; + +// ---------------------------------------------------- +// THIS CLASS WAS GENERATED AUTOMATICALLY +// PLEASE DO NOT EDIT +// Generated on: Sat Feb 04 15:23:09 CET 2017 +// ---------------------------------------------------- + +import ch.loway.oss.ari4java.generated.*; +import com.fasterxml.jackson.databind.annotation.JsonDeserialize; +import java.util.Date; +import java.util.List; +import java.util.Map; + +/********************************************************** + * The state of a contact on an endpoint has changed. + * + * Defined in file: events.json + * Generated by: Model + *********************************************************/ + +public class ContactStatusChange_impl_ari_2_0_0 extends Event_impl_ari_2_0_0 implements ContactStatusChange, java.io.Serializable { +private static final long serialVersionUID = 1L; + /** */ + private ContactInfo contact_info; + public ContactInfo getContact_info() { + return contact_info; + } + + @JsonDeserialize( as=ContactInfo_impl_ari_2_0_0.class ) + public void setContact_info(ContactInfo val ) { + contact_info = val; + } + + /** */ + private Endpoint endpoint; + public Endpoint getEndpoint() { + return endpoint; + } + + @JsonDeserialize( as=Endpoint_impl_ari_2_0_0.class ) + public void setEndpoint(Endpoint val ) { + endpoint = val; + } + +/** No missing signatures from interface */ +} + diff --git a/classes/ch/loway/oss/ari4java/generated/ari_2_0_0/models/DeviceStateChanged_impl_ari_2_0_0.java b/classes/ch/loway/oss/ari4java/generated/ari_2_0_0/models/DeviceStateChanged_impl_ari_2_0_0.java new file mode 100644 index 00000000..8b32efbf --- /dev/null +++ b/classes/ch/loway/oss/ari4java/generated/ari_2_0_0/models/DeviceStateChanged_impl_ari_2_0_0.java @@ -0,0 +1,37 @@ +package ch.loway.oss.ari4java.generated.ari_2_0_0.models; + +// ---------------------------------------------------- +// THIS CLASS WAS GENERATED AUTOMATICALLY +// PLEASE DO NOT EDIT +// Generated on: Sat Feb 04 15:23:09 CET 2017 +// ---------------------------------------------------- + +import ch.loway.oss.ari4java.generated.*; +import com.fasterxml.jackson.databind.annotation.JsonDeserialize; +import java.util.Date; +import java.util.List; +import java.util.Map; + +/********************************************************** + * Notification that a device state has changed. + * + * Defined in file: events.json + * Generated by: Model + *********************************************************/ + +public class DeviceStateChanged_impl_ari_2_0_0 extends Event_impl_ari_2_0_0 implements DeviceStateChanged, java.io.Serializable { +private static final long serialVersionUID = 1L; + /** Device state object */ + private DeviceState device_state; + public DeviceState getDevice_state() { + return device_state; + } + + @JsonDeserialize( as=DeviceState_impl_ari_2_0_0.class ) + public void setDevice_state(DeviceState val ) { + device_state = val; + } + +/** No missing signatures from interface */ +} + diff --git a/classes/ch/loway/oss/ari4java/generated/ari_2_0_0/models/DeviceState_impl_ari_2_0_0.java b/classes/ch/loway/oss/ari4java/generated/ari_2_0_0/models/DeviceState_impl_ari_2_0_0.java new file mode 100644 index 00000000..ad3ee3e2 --- /dev/null +++ b/classes/ch/loway/oss/ari4java/generated/ari_2_0_0/models/DeviceState_impl_ari_2_0_0.java @@ -0,0 +1,48 @@ +package ch.loway.oss.ari4java.generated.ari_2_0_0.models; + +// ---------------------------------------------------- +// THIS CLASS WAS GENERATED AUTOMATICALLY +// PLEASE DO NOT EDIT +// Generated on: Sat Feb 04 15:23:09 CET 2017 +// ---------------------------------------------------- + +import ch.loway.oss.ari4java.generated.*; +import com.fasterxml.jackson.databind.annotation.JsonDeserialize; +import java.util.Date; +import java.util.List; +import java.util.Map; + +/********************************************************** + * Represents the state of a device. + * + * Defined in file: deviceStates.json + * Generated by: Model + *********************************************************/ + +public class DeviceState_impl_ari_2_0_0 implements DeviceState, java.io.Serializable { +private static final long serialVersionUID = 1L; + /** Name of the device. */ + private String name; + public String getName() { + return name; + } + + @JsonDeserialize( as=String.class ) + public void setName(String val ) { + name = val; + } + + /** Device's state */ + private String state; + public String getState() { + return state; + } + + @JsonDeserialize( as=String.class ) + public void setState(String val ) { + state = val; + } + +/** No missing signatures from interface */ +} + diff --git a/classes/ch/loway/oss/ari4java/generated/ari_2_0_0/models/Dial_impl_ari_2_0_0.java b/classes/ch/loway/oss/ari4java/generated/ari_2_0_0/models/Dial_impl_ari_2_0_0.java new file mode 100644 index 00000000..36d05d4f --- /dev/null +++ b/classes/ch/loway/oss/ari4java/generated/ari_2_0_0/models/Dial_impl_ari_2_0_0.java @@ -0,0 +1,92 @@ +package ch.loway.oss.ari4java.generated.ari_2_0_0.models; + +// ---------------------------------------------------- +// THIS CLASS WAS GENERATED AUTOMATICALLY +// PLEASE DO NOT EDIT +// Generated on: Sat Feb 04 15:23:09 CET 2017 +// ---------------------------------------------------- + +import ch.loway.oss.ari4java.generated.*; +import com.fasterxml.jackson.databind.annotation.JsonDeserialize; +import java.util.Date; +import java.util.List; +import java.util.Map; + +/********************************************************** + * Dialing state has changed. + * + * Defined in file: events.json + * Generated by: Model + *********************************************************/ + +public class Dial_impl_ari_2_0_0 extends Event_impl_ari_2_0_0 implements Dial, java.io.Serializable { +private static final long serialVersionUID = 1L; + /** The calling channel. */ + private Channel caller; + public Channel getCaller() { + return caller; + } + + @JsonDeserialize( as=Channel_impl_ari_2_0_0.class ) + public void setCaller(Channel val ) { + caller = val; + } + + /** Current status of the dialing attempt to the peer. */ + private String dialstatus; + public String getDialstatus() { + return dialstatus; + } + + @JsonDeserialize( as=String.class ) + public void setDialstatus(String val ) { + dialstatus = val; + } + + /** The dial string for calling the peer channel. */ + private String dialstring; + public String getDialstring() { + return dialstring; + } + + @JsonDeserialize( as=String.class ) + public void setDialstring(String val ) { + dialstring = val; + } + + /** Forwarding target requested by the original dialed channel. */ + private String forward; + public String getForward() { + return forward; + } + + @JsonDeserialize( as=String.class ) + public void setForward(String val ) { + forward = val; + } + + /** Channel that the caller has been forwarded to. */ + private Channel forwarded; + public Channel getForwarded() { + return forwarded; + } + + @JsonDeserialize( as=Channel_impl_ari_2_0_0.class ) + public void setForwarded(Channel val ) { + forwarded = val; + } + + /** The dialed channel. */ + private Channel peer; + public Channel getPeer() { + return peer; + } + + @JsonDeserialize( as=Channel_impl_ari_2_0_0.class ) + public void setPeer(Channel val ) { + peer = val; + } + +/** No missing signatures from interface */ +} + diff --git a/classes/ch/loway/oss/ari4java/generated/ari_2_0_0/models/Dialed_impl_ari_2_0_0.java b/classes/ch/loway/oss/ari4java/generated/ari_2_0_0/models/Dialed_impl_ari_2_0_0.java new file mode 100644 index 00000000..0b0e3a5a --- /dev/null +++ b/classes/ch/loway/oss/ari4java/generated/ari_2_0_0/models/Dialed_impl_ari_2_0_0.java @@ -0,0 +1,26 @@ +package ch.loway.oss.ari4java.generated.ari_2_0_0.models; + +// ---------------------------------------------------- +// THIS CLASS WAS GENERATED AUTOMATICALLY +// PLEASE DO NOT EDIT +// Generated on: Sat Feb 04 15:23:09 CET 2017 +// ---------------------------------------------------- + +import ch.loway.oss.ari4java.generated.*; +import com.fasterxml.jackson.databind.annotation.JsonDeserialize; +import java.util.Date; +import java.util.List; +import java.util.Map; + +/********************************************************** + * Dialed channel information. + * + * Defined in file: channels.json + * Generated by: Model + *********************************************************/ + +public class Dialed_impl_ari_2_0_0 implements Dialed, java.io.Serializable { +private static final long serialVersionUID = 1L; +/** No missing signatures from interface */ +} + diff --git a/classes/ch/loway/oss/ari4java/generated/ari_2_0_0/models/DialplanCEP_impl_ari_2_0_0.java b/classes/ch/loway/oss/ari4java/generated/ari_2_0_0/models/DialplanCEP_impl_ari_2_0_0.java new file mode 100644 index 00000000..62c544bb --- /dev/null +++ b/classes/ch/loway/oss/ari4java/generated/ari_2_0_0/models/DialplanCEP_impl_ari_2_0_0.java @@ -0,0 +1,59 @@ +package ch.loway.oss.ari4java.generated.ari_2_0_0.models; + +// ---------------------------------------------------- +// THIS CLASS WAS GENERATED AUTOMATICALLY +// PLEASE DO NOT EDIT +// Generated on: Sat Feb 04 15:23:09 CET 2017 +// ---------------------------------------------------- + +import ch.loway.oss.ari4java.generated.*; +import com.fasterxml.jackson.databind.annotation.JsonDeserialize; +import java.util.Date; +import java.util.List; +import java.util.Map; + +/********************************************************** + * Dialplan location (context/extension/priority) + * + * Defined in file: channels.json + * Generated by: Model + *********************************************************/ + +public class DialplanCEP_impl_ari_2_0_0 implements DialplanCEP, java.io.Serializable { +private static final long serialVersionUID = 1L; + /** Context in the dialplan */ + private String context; + public String getContext() { + return context; + } + + @JsonDeserialize( as=String.class ) + public void setContext(String val ) { + context = val; + } + + /** Extension in the dialplan */ + private String exten; + public String getExten() { + return exten; + } + + @JsonDeserialize( as=String.class ) + public void setExten(String val ) { + exten = val; + } + + /** Priority in the dialplan */ + private long priority; + public long getPriority() { + return priority; + } + + @JsonDeserialize( as=long.class ) + public void setPriority(long val ) { + priority = val; + } + +/** No missing signatures from interface */ +} + diff --git a/classes/ch/loway/oss/ari4java/generated/ari_2_0_0/models/EndpointStateChange_impl_ari_2_0_0.java b/classes/ch/loway/oss/ari4java/generated/ari_2_0_0/models/EndpointStateChange_impl_ari_2_0_0.java new file mode 100644 index 00000000..f229b1cf --- /dev/null +++ b/classes/ch/loway/oss/ari4java/generated/ari_2_0_0/models/EndpointStateChange_impl_ari_2_0_0.java @@ -0,0 +1,37 @@ +package ch.loway.oss.ari4java.generated.ari_2_0_0.models; + +// ---------------------------------------------------- +// THIS CLASS WAS GENERATED AUTOMATICALLY +// PLEASE DO NOT EDIT +// Generated on: Sat Feb 04 15:23:09 CET 2017 +// ---------------------------------------------------- + +import ch.loway.oss.ari4java.generated.*; +import com.fasterxml.jackson.databind.annotation.JsonDeserialize; +import java.util.Date; +import java.util.List; +import java.util.Map; + +/********************************************************** + * Endpoint state changed. + * + * Defined in file: events.json + * Generated by: Model + *********************************************************/ + +public class EndpointStateChange_impl_ari_2_0_0 extends Event_impl_ari_2_0_0 implements EndpointStateChange, java.io.Serializable { +private static final long serialVersionUID = 1L; + /** */ + private Endpoint endpoint; + public Endpoint getEndpoint() { + return endpoint; + } + + @JsonDeserialize( as=Endpoint_impl_ari_2_0_0.class ) + public void setEndpoint(Endpoint val ) { + endpoint = val; + } + +/** No missing signatures from interface */ +} + diff --git a/classes/ch/loway/oss/ari4java/generated/ari_2_0_0/models/Endpoint_impl_ari_2_0_0.java b/classes/ch/loway/oss/ari4java/generated/ari_2_0_0/models/Endpoint_impl_ari_2_0_0.java new file mode 100644 index 00000000..8cba300c --- /dev/null +++ b/classes/ch/loway/oss/ari4java/generated/ari_2_0_0/models/Endpoint_impl_ari_2_0_0.java @@ -0,0 +1,72 @@ +package ch.loway.oss.ari4java.generated.ari_2_0_0.models; + +// ---------------------------------------------------- +// THIS CLASS WAS GENERATED AUTOMATICALLY +// PLEASE DO NOT EDIT +// Generated on: Sat Feb 04 15:23:09 CET 2017 +// ---------------------------------------------------- + +import ch.loway.oss.ari4java.generated.*; +import com.fasterxml.jackson.databind.annotation.JsonDeserialize; +import java.util.Date; +import java.util.List; +import java.util.Map; + +/********************************************************** + * An external device that may offer/accept calls to/from Asterisk. + * + * Unlike most resources, which have a single unique identifier, an endpoint is uniquely identified by the technology/resource pair. + * + * Defined in file: endpoints.json + * Generated by: Model + *********************************************************/ + +public class Endpoint_impl_ari_2_0_0 implements Endpoint, java.io.Serializable { +private static final long serialVersionUID = 1L; + /** Id's of channels associated with this endpoint */ + private List channel_ids; + public List getChannel_ids() { + return channel_ids; + } + + @JsonDeserialize( contentAs=String.class ) + public void setChannel_ids(List val ) { + channel_ids = val; + } + + /** Identifier of the endpoint, specific to the given technology. */ + private String resource; + public String getResource() { + return resource; + } + + @JsonDeserialize( as=String.class ) + public void setResource(String val ) { + resource = val; + } + + /** Endpoint's state */ + private String state; + public String getState() { + return state; + } + + @JsonDeserialize( as=String.class ) + public void setState(String val ) { + state = val; + } + + /** Technology of the endpoint */ + private String technology; + public String getTechnology() { + return technology; + } + + @JsonDeserialize( as=String.class ) + public void setTechnology(String val ) { + technology = val; + } + +/** No missing signatures from interface */ +} + diff --git a/classes/ch/loway/oss/ari4java/generated/ari_2_0_0/models/Event_impl_ari_2_0_0.java b/classes/ch/loway/oss/ari4java/generated/ari_2_0_0/models/Event_impl_ari_2_0_0.java new file mode 100644 index 00000000..5b7635c4 --- /dev/null +++ b/classes/ch/loway/oss/ari4java/generated/ari_2_0_0/models/Event_impl_ari_2_0_0.java @@ -0,0 +1,48 @@ +package ch.loway.oss.ari4java.generated.ari_2_0_0.models; + +// ---------------------------------------------------- +// THIS CLASS WAS GENERATED AUTOMATICALLY +// PLEASE DO NOT EDIT +// Generated on: Sat Feb 04 15:23:09 CET 2017 +// ---------------------------------------------------- + +import ch.loway.oss.ari4java.generated.*; +import com.fasterxml.jackson.databind.annotation.JsonDeserialize; +import java.util.Date; +import java.util.List; +import java.util.Map; + +/********************************************************** + * Base type for asynchronous events from Asterisk. + * + * Defined in file: events.json + * Generated by: Model + *********************************************************/ + +public class Event_impl_ari_2_0_0 extends Message_impl_ari_2_0_0 implements Event, java.io.Serializable { +private static final long serialVersionUID = 1L; + /** Name of the application receiving the event. */ + private String application; + public String getApplication() { + return application; + } + + @JsonDeserialize( as=String.class ) + public void setApplication(String val ) { + application = val; + } + + /** Time at which this event was created. */ + private Date timestamp; + public Date getTimestamp() { + return timestamp; + } + + @JsonDeserialize( as=Date.class ) + public void setTimestamp(Date val ) { + timestamp = val; + } + +/** No missing signatures from interface */ +} + diff --git a/classes/ch/loway/oss/ari4java/generated/ari_2_0_0/models/FormatLangPair_impl_ari_2_0_0.java b/classes/ch/loway/oss/ari4java/generated/ari_2_0_0/models/FormatLangPair_impl_ari_2_0_0.java new file mode 100644 index 00000000..405cfe73 --- /dev/null +++ b/classes/ch/loway/oss/ari4java/generated/ari_2_0_0/models/FormatLangPair_impl_ari_2_0_0.java @@ -0,0 +1,48 @@ +package ch.loway.oss.ari4java.generated.ari_2_0_0.models; + +// ---------------------------------------------------- +// THIS CLASS WAS GENERATED AUTOMATICALLY +// PLEASE DO NOT EDIT +// Generated on: Sat Feb 04 15:23:09 CET 2017 +// ---------------------------------------------------- + +import ch.loway.oss.ari4java.generated.*; +import com.fasterxml.jackson.databind.annotation.JsonDeserialize; +import java.util.Date; +import java.util.List; +import java.util.Map; + +/********************************************************** + * Identifies the format and language of a sound file + * + * Defined in file: sounds.json + * Generated by: Model + *********************************************************/ + +public class FormatLangPair_impl_ari_2_0_0 implements FormatLangPair, java.io.Serializable { +private static final long serialVersionUID = 1L; + /** */ + private String format; + public String getFormat() { + return format; + } + + @JsonDeserialize( as=String.class ) + public void setFormat(String val ) { + format = val; + } + + /** */ + private String language; + public String getLanguage() { + return language; + } + + @JsonDeserialize( as=String.class ) + public void setLanguage(String val ) { + language = val; + } + +/** No missing signatures from interface */ +} + diff --git a/classes/ch/loway/oss/ari4java/generated/ari_2_0_0/models/LiveRecording_impl_ari_2_0_0.java b/classes/ch/loway/oss/ari4java/generated/ari_2_0_0/models/LiveRecording_impl_ari_2_0_0.java new file mode 100644 index 00000000..5da4beed --- /dev/null +++ b/classes/ch/loway/oss/ari4java/generated/ari_2_0_0/models/LiveRecording_impl_ari_2_0_0.java @@ -0,0 +1,114 @@ +package ch.loway.oss.ari4java.generated.ari_2_0_0.models; + +// ---------------------------------------------------- +// THIS CLASS WAS GENERATED AUTOMATICALLY +// PLEASE DO NOT EDIT +// Generated on: Sat Feb 04 15:23:09 CET 2017 +// ---------------------------------------------------- + +import ch.loway.oss.ari4java.generated.*; +import com.fasterxml.jackson.databind.annotation.JsonDeserialize; +import java.util.Date; +import java.util.List; +import java.util.Map; + +/********************************************************** + * A recording that is in progress + * + * Defined in file: recordings.json + * Generated by: Model + *********************************************************/ + +public class LiveRecording_impl_ari_2_0_0 implements LiveRecording, java.io.Serializable { +private static final long serialVersionUID = 1L; + /** Cause for recording failure if failed */ + private String cause; + public String getCause() { + return cause; + } + + @JsonDeserialize( as=String.class ) + public void setCause(String val ) { + cause = val; + } + + /** Duration in seconds of the recording */ + private int duration; + public int getDuration() { + return duration; + } + + @JsonDeserialize( as=int.class ) + public void setDuration(int val ) { + duration = val; + } + + /** Recording format (wav, gsm, etc.) */ + private String format; + public String getFormat() { + return format; + } + + @JsonDeserialize( as=String.class ) + public void setFormat(String val ) { + format = val; + } + + /** Base name for the recording */ + private String name; + public String getName() { + return name; + } + + @JsonDeserialize( as=String.class ) + public void setName(String val ) { + name = val; + } + + /** Duration of silence, in seconds, detected in the recording. This is only available if the recording was initiated with a non-zero maxSilenceSeconds. */ + private int silence_duration; + public int getSilence_duration() { + return silence_duration; + } + + @JsonDeserialize( as=int.class ) + public void setSilence_duration(int val ) { + silence_duration = val; + } + + /** */ + private String state; + public String getState() { + return state; + } + + @JsonDeserialize( as=String.class ) + public void setState(String val ) { + state = val; + } + + /** Duration of talking, in seconds, detected in the recording. This is only available if the recording was initiated with a non-zero maxSilenceSeconds. */ + private int talking_duration; + public int getTalking_duration() { + return talking_duration; + } + + @JsonDeserialize( as=int.class ) + public void setTalking_duration(int val ) { + talking_duration = val; + } + + /** URI for the channel or bridge being recorded */ + private String target_uri; + public String getTarget_uri() { + return target_uri; + } + + @JsonDeserialize( as=String.class ) + public void setTarget_uri(String val ) { + target_uri = val; + } + +/** No missing signatures from interface */ +} + diff --git a/classes/ch/loway/oss/ari4java/generated/ari_2_0_0/models/LogChannel_impl_ari_2_0_0.java b/classes/ch/loway/oss/ari4java/generated/ari_2_0_0/models/LogChannel_impl_ari_2_0_0.java new file mode 100644 index 00000000..b63350d4 --- /dev/null +++ b/classes/ch/loway/oss/ari4java/generated/ari_2_0_0/models/LogChannel_impl_ari_2_0_0.java @@ -0,0 +1,70 @@ +package ch.loway.oss.ari4java.generated.ari_2_0_0.models; + +// ---------------------------------------------------- +// THIS CLASS WAS GENERATED AUTOMATICALLY +// PLEASE DO NOT EDIT +// Generated on: Sat Feb 04 15:23:09 CET 2017 +// ---------------------------------------------------- + +import ch.loway.oss.ari4java.generated.*; +import com.fasterxml.jackson.databind.annotation.JsonDeserialize; +import java.util.Date; +import java.util.List; +import java.util.Map; + +/********************************************************** + * Details of an Asterisk log channel + * + * Defined in file: asterisk.json + * Generated by: Model + *********************************************************/ + +public class LogChannel_impl_ari_2_0_0 implements LogChannel, java.io.Serializable { +private static final long serialVersionUID = 1L; + /** The log channel path */ + private String channel; + public String getChannel() { + return channel; + } + + @JsonDeserialize( as=String.class ) + public void setChannel(String val ) { + channel = val; + } + + /** The various log levels */ + private String configuration; + public String getConfiguration() { + return configuration; + } + + @JsonDeserialize( as=String.class ) + public void setConfiguration(String val ) { + configuration = val; + } + + /** Whether or not a log type is enabled */ + private String status; + public String getStatus() { + return status; + } + + @JsonDeserialize( as=String.class ) + public void setStatus(String val ) { + status = val; + } + + /** Types of logs for the log channel */ + private String type; + public String getType() { + return type; + } + + @JsonDeserialize( as=String.class ) + public void setType(String val ) { + type = val; + } + +/** No missing signatures from interface */ +} + diff --git a/classes/ch/loway/oss/ari4java/generated/ari_2_0_0/models/Message_impl_ari_2_0_0.java b/classes/ch/loway/oss/ari4java/generated/ari_2_0_0/models/Message_impl_ari_2_0_0.java new file mode 100644 index 00000000..8f1eb4fa --- /dev/null +++ b/classes/ch/loway/oss/ari4java/generated/ari_2_0_0/models/Message_impl_ari_2_0_0.java @@ -0,0 +1,95 @@ +package ch.loway.oss.ari4java.generated.ari_2_0_0.models; + +// ---------------------------------------------------- +// THIS CLASS WAS GENERATED AUTOMATICALLY +// PLEASE DO NOT EDIT +// Generated on: Sat Feb 04 15:23:09 CET 2017 +// ---------------------------------------------------- + +import ch.loway.oss.ari4java.generated.*; +import com.fasterxml.jackson.annotation.JsonSubTypes; +import com.fasterxml.jackson.annotation.JsonSubTypes.Type; +import com.fasterxml.jackson.annotation.JsonTypeInfo; +import com.fasterxml.jackson.databind.annotation.JsonDeserialize; +import java.util.Date; +import java.util.List; +import java.util.Map; + +/********************************************************** + * Base type for errors and events + * + * Defined in file: events.json + * Generated by: Model + *********************************************************/ + @JsonTypeInfo( use = JsonTypeInfo.Id.NAME, include = JsonTypeInfo.As.PROPERTY, property = "type") + @JsonSubTypes({ @Type(value = MissingParams_impl_ari_2_0_0.class, name = "MissingParams") +, @Type(value = Event_impl_ari_2_0_0.class, name = "Event") +, @Type(value = ContactInfo_impl_ari_2_0_0.class, name = "ContactInfo") +, @Type(value = Peer_impl_ari_2_0_0.class, name = "Peer") +, @Type(value = DeviceStateChanged_impl_ari_2_0_0.class, name = "DeviceStateChanged") +, @Type(value = PlaybackStarted_impl_ari_2_0_0.class, name = "PlaybackStarted") +, @Type(value = PlaybackContinuing_impl_ari_2_0_0.class, name = "PlaybackContinuing") +, @Type(value = PlaybackFinished_impl_ari_2_0_0.class, name = "PlaybackFinished") +, @Type(value = RecordingStarted_impl_ari_2_0_0.class, name = "RecordingStarted") +, @Type(value = RecordingFinished_impl_ari_2_0_0.class, name = "RecordingFinished") +, @Type(value = RecordingFailed_impl_ari_2_0_0.class, name = "RecordingFailed") +, @Type(value = ApplicationReplaced_impl_ari_2_0_0.class, name = "ApplicationReplaced") +, @Type(value = BridgeCreated_impl_ari_2_0_0.class, name = "BridgeCreated") +, @Type(value = BridgeDestroyed_impl_ari_2_0_0.class, name = "BridgeDestroyed") +, @Type(value = BridgeMerged_impl_ari_2_0_0.class, name = "BridgeMerged") +, @Type(value = BridgeVideoSourceChanged_impl_ari_2_0_0.class, name = "BridgeVideoSourceChanged") +, @Type(value = BridgeBlindTransfer_impl_ari_2_0_0.class, name = "BridgeBlindTransfer") +, @Type(value = BridgeAttendedTransfer_impl_ari_2_0_0.class, name = "BridgeAttendedTransfer") +, @Type(value = ChannelCreated_impl_ari_2_0_0.class, name = "ChannelCreated") +, @Type(value = ChannelDestroyed_impl_ari_2_0_0.class, name = "ChannelDestroyed") +, @Type(value = ChannelEnteredBridge_impl_ari_2_0_0.class, name = "ChannelEnteredBridge") +, @Type(value = ChannelLeftBridge_impl_ari_2_0_0.class, name = "ChannelLeftBridge") +, @Type(value = ChannelStateChange_impl_ari_2_0_0.class, name = "ChannelStateChange") +, @Type(value = ChannelDtmfReceived_impl_ari_2_0_0.class, name = "ChannelDtmfReceived") +, @Type(value = ChannelDialplan_impl_ari_2_0_0.class, name = "ChannelDialplan") +, @Type(value = ChannelCallerId_impl_ari_2_0_0.class, name = "ChannelCallerId") +, @Type(value = ChannelUserevent_impl_ari_2_0_0.class, name = "ChannelUserevent") +, @Type(value = ChannelHangupRequest_impl_ari_2_0_0.class, name = "ChannelHangupRequest") +, @Type(value = ChannelVarset_impl_ari_2_0_0.class, name = "ChannelVarset") +, @Type(value = ChannelHold_impl_ari_2_0_0.class, name = "ChannelHold") +, @Type(value = ChannelUnhold_impl_ari_2_0_0.class, name = "ChannelUnhold") +, @Type(value = ChannelTalkingStarted_impl_ari_2_0_0.class, name = "ChannelTalkingStarted") +, @Type(value = ChannelTalkingFinished_impl_ari_2_0_0.class, name = "ChannelTalkingFinished") +, @Type(value = ContactStatusChange_impl_ari_2_0_0.class, name = "ContactStatusChange") +, @Type(value = PeerStatusChange_impl_ari_2_0_0.class, name = "PeerStatusChange") +, @Type(value = EndpointStateChange_impl_ari_2_0_0.class, name = "EndpointStateChange") +, @Type(value = Dial_impl_ari_2_0_0.class, name = "Dial") +, @Type(value = StasisEnd_impl_ari_2_0_0.class, name = "StasisEnd") +, @Type(value = StasisStart_impl_ari_2_0_0.class, name = "StasisStart") +, @Type(value = TextMessageReceived_impl_ari_2_0_0.class, name = "TextMessageReceived") +, @Type(value = ChannelConnectedLine_impl_ari_2_0_0.class, name = "ChannelConnectedLine") + }) + + +public class Message_impl_ari_2_0_0 implements Message, java.io.Serializable { +private static final long serialVersionUID = 1L; + /** The unique ID for the Asterisk instance that raised this event. */ + private String asterisk_id; + public String getAsterisk_id() { + return asterisk_id; + } + + @JsonDeserialize( as=String.class ) + public void setAsterisk_id(String val ) { + asterisk_id = val; + } + + /** Indicates the type of this message. */ + private String type; + public String getType() { + return type; + } + + @JsonDeserialize( as=String.class ) + public void setType(String val ) { + type = val; + } + +/** No missing signatures from interface */ +} + diff --git a/classes/ch/loway/oss/ari4java/generated/ari_2_0_0/models/MissingParams_impl_ari_2_0_0.java b/classes/ch/loway/oss/ari4java/generated/ari_2_0_0/models/MissingParams_impl_ari_2_0_0.java new file mode 100644 index 00000000..a142abae --- /dev/null +++ b/classes/ch/loway/oss/ari4java/generated/ari_2_0_0/models/MissingParams_impl_ari_2_0_0.java @@ -0,0 +1,37 @@ +package ch.loway.oss.ari4java.generated.ari_2_0_0.models; + +// ---------------------------------------------------- +// THIS CLASS WAS GENERATED AUTOMATICALLY +// PLEASE DO NOT EDIT +// Generated on: Sat Feb 04 15:23:09 CET 2017 +// ---------------------------------------------------- + +import ch.loway.oss.ari4java.generated.*; +import com.fasterxml.jackson.databind.annotation.JsonDeserialize; +import java.util.Date; +import java.util.List; +import java.util.Map; + +/********************************************************** + * Error event sent when required params are missing. + * + * Defined in file: events.json + * Generated by: Model + *********************************************************/ + +public class MissingParams_impl_ari_2_0_0 extends Message_impl_ari_2_0_0 implements MissingParams, java.io.Serializable { +private static final long serialVersionUID = 1L; + /** A list of the missing parameters */ + private List params; + public List getParams() { + return params; + } + + @JsonDeserialize( contentAs=String.class ) + public void setParams(List val ) { + params = val; + } + +/** No missing signatures from interface */ +} + diff --git a/classes/ch/loway/oss/ari4java/generated/ari_2_0_0/models/Module_impl_ari_2_0_0.java b/classes/ch/loway/oss/ari4java/generated/ari_2_0_0/models/Module_impl_ari_2_0_0.java new file mode 100644 index 00000000..85ab88fd --- /dev/null +++ b/classes/ch/loway/oss/ari4java/generated/ari_2_0_0/models/Module_impl_ari_2_0_0.java @@ -0,0 +1,81 @@ +package ch.loway.oss.ari4java.generated.ari_2_0_0.models; + +// ---------------------------------------------------- +// THIS CLASS WAS GENERATED AUTOMATICALLY +// PLEASE DO NOT EDIT +// Generated on: Sat Feb 04 15:23:09 CET 2017 +// ---------------------------------------------------- + +import ch.loway.oss.ari4java.generated.*; +import com.fasterxml.jackson.databind.annotation.JsonDeserialize; +import java.util.Date; +import java.util.List; +import java.util.Map; + +/********************************************************** + * Details of an Asterisk module + * + * Defined in file: asterisk.json + * Generated by: Model + *********************************************************/ + +public class Module_impl_ari_2_0_0 implements Module, java.io.Serializable { +private static final long serialVersionUID = 1L; + /** The description of this module */ + private String description; + public String getDescription() { + return description; + } + + @JsonDeserialize( as=String.class ) + public void setDescription(String val ) { + description = val; + } + + /** The name of this module */ + private String name; + public String getName() { + return name; + } + + @JsonDeserialize( as=String.class ) + public void setName(String val ) { + name = val; + } + + /** The running status of this module */ + private String status; + public String getStatus() { + return status; + } + + @JsonDeserialize( as=String.class ) + public void setStatus(String val ) { + status = val; + } + + /** The support state of this module */ + private String support_level; + public String getSupport_level() { + return support_level; + } + + @JsonDeserialize( as=String.class ) + public void setSupport_level(String val ) { + support_level = val; + } + + /** The number of times this module is being used */ + private int use_count; + public int getUse_count() { + return use_count; + } + + @JsonDeserialize( as=int.class ) + public void setUse_count(int val ) { + use_count = val; + } + +/** No missing signatures from interface */ +} + diff --git a/classes/ch/loway/oss/ari4java/generated/ari_2_0_0/models/PeerStatusChange_impl_ari_2_0_0.java b/classes/ch/loway/oss/ari4java/generated/ari_2_0_0/models/PeerStatusChange_impl_ari_2_0_0.java new file mode 100644 index 00000000..0038db0c --- /dev/null +++ b/classes/ch/loway/oss/ari4java/generated/ari_2_0_0/models/PeerStatusChange_impl_ari_2_0_0.java @@ -0,0 +1,48 @@ +package ch.loway.oss.ari4java.generated.ari_2_0_0.models; + +// ---------------------------------------------------- +// THIS CLASS WAS GENERATED AUTOMATICALLY +// PLEASE DO NOT EDIT +// Generated on: Sat Feb 04 15:23:09 CET 2017 +// ---------------------------------------------------- + +import ch.loway.oss.ari4java.generated.*; +import com.fasterxml.jackson.databind.annotation.JsonDeserialize; +import java.util.Date; +import java.util.List; +import java.util.Map; + +/********************************************************** + * The state of a peer associated with an endpoint has changed. + * + * Defined in file: events.json + * Generated by: Model + *********************************************************/ + +public class PeerStatusChange_impl_ari_2_0_0 extends Event_impl_ari_2_0_0 implements PeerStatusChange, java.io.Serializable { +private static final long serialVersionUID = 1L; + /** */ + private Endpoint endpoint; + public Endpoint getEndpoint() { + return endpoint; + } + + @JsonDeserialize( as=Endpoint_impl_ari_2_0_0.class ) + public void setEndpoint(Endpoint val ) { + endpoint = val; + } + + /** */ + private Peer peer; + public Peer getPeer() { + return peer; + } + + @JsonDeserialize( as=Peer_impl_ari_2_0_0.class ) + public void setPeer(Peer val ) { + peer = val; + } + +/** No missing signatures from interface */ +} + diff --git a/classes/ch/loway/oss/ari4java/generated/ari_2_0_0/models/Peer_impl_ari_2_0_0.java b/classes/ch/loway/oss/ari4java/generated/ari_2_0_0/models/Peer_impl_ari_2_0_0.java new file mode 100644 index 00000000..17390fbd --- /dev/null +++ b/classes/ch/loway/oss/ari4java/generated/ari_2_0_0/models/Peer_impl_ari_2_0_0.java @@ -0,0 +1,81 @@ +package ch.loway.oss.ari4java.generated.ari_2_0_0.models; + +// ---------------------------------------------------- +// THIS CLASS WAS GENERATED AUTOMATICALLY +// PLEASE DO NOT EDIT +// Generated on: Sat Feb 04 15:23:09 CET 2017 +// ---------------------------------------------------- + +import ch.loway.oss.ari4java.generated.*; +import com.fasterxml.jackson.databind.annotation.JsonDeserialize; +import java.util.Date; +import java.util.List; +import java.util.Map; + +/********************************************************** + * Detailed information about a remote peer that communicates with Asterisk. + * + * Defined in file: events.json + * Generated by: Model + *********************************************************/ + +public class Peer_impl_ari_2_0_0 implements Peer, java.io.Serializable { +private static final long serialVersionUID = 1L; + /** The IP address of the peer. */ + private String address; + public String getAddress() { + return address; + } + + @JsonDeserialize( as=String.class ) + public void setAddress(String val ) { + address = val; + } + + /** An optional reason associated with the change in peer_status. */ + private String cause; + public String getCause() { + return cause; + } + + @JsonDeserialize( as=String.class ) + public void setCause(String val ) { + cause = val; + } + + /** The current state of the peer. Note that the values of the status are dependent on the underlying peer technology. */ + private String peer_status; + public String getPeer_status() { + return peer_status; + } + + @JsonDeserialize( as=String.class ) + public void setPeer_status(String val ) { + peer_status = val; + } + + /** The port of the peer. */ + private String port; + public String getPort() { + return port; + } + + @JsonDeserialize( as=String.class ) + public void setPort(String val ) { + port = val; + } + + /** The last known time the peer was contacted. */ + private String time; + public String getTime() { + return time; + } + + @JsonDeserialize( as=String.class ) + public void setTime(String val ) { + time = val; + } + +/** No missing signatures from interface */ +} + diff --git a/classes/ch/loway/oss/ari4java/generated/ari_2_0_0/models/PlaybackContinuing_impl_ari_2_0_0.java b/classes/ch/loway/oss/ari4java/generated/ari_2_0_0/models/PlaybackContinuing_impl_ari_2_0_0.java new file mode 100644 index 00000000..646d544d --- /dev/null +++ b/classes/ch/loway/oss/ari4java/generated/ari_2_0_0/models/PlaybackContinuing_impl_ari_2_0_0.java @@ -0,0 +1,37 @@ +package ch.loway.oss.ari4java.generated.ari_2_0_0.models; + +// ---------------------------------------------------- +// THIS CLASS WAS GENERATED AUTOMATICALLY +// PLEASE DO NOT EDIT +// Generated on: Sat Feb 04 15:23:09 CET 2017 +// ---------------------------------------------------- + +import ch.loway.oss.ari4java.generated.*; +import com.fasterxml.jackson.databind.annotation.JsonDeserialize; +import java.util.Date; +import java.util.List; +import java.util.Map; + +/********************************************************** + * Event showing the continuation of a media playback operation from one media URI to the next in the list. + * + * Defined in file: events.json + * Generated by: Model + *********************************************************/ + +public class PlaybackContinuing_impl_ari_2_0_0 extends Event_impl_ari_2_0_0 implements PlaybackContinuing, java.io.Serializable { +private static final long serialVersionUID = 1L; + /** Playback control object */ + private Playback playback; + public Playback getPlayback() { + return playback; + } + + @JsonDeserialize( as=Playback_impl_ari_2_0_0.class ) + public void setPlayback(Playback val ) { + playback = val; + } + +/** No missing signatures from interface */ +} + diff --git a/classes/ch/loway/oss/ari4java/generated/ari_2_0_0/models/PlaybackFinished_impl_ari_2_0_0.java b/classes/ch/loway/oss/ari4java/generated/ari_2_0_0/models/PlaybackFinished_impl_ari_2_0_0.java new file mode 100644 index 00000000..3e75f423 --- /dev/null +++ b/classes/ch/loway/oss/ari4java/generated/ari_2_0_0/models/PlaybackFinished_impl_ari_2_0_0.java @@ -0,0 +1,37 @@ +package ch.loway.oss.ari4java.generated.ari_2_0_0.models; + +// ---------------------------------------------------- +// THIS CLASS WAS GENERATED AUTOMATICALLY +// PLEASE DO NOT EDIT +// Generated on: Sat Feb 04 15:23:09 CET 2017 +// ---------------------------------------------------- + +import ch.loway.oss.ari4java.generated.*; +import com.fasterxml.jackson.databind.annotation.JsonDeserialize; +import java.util.Date; +import java.util.List; +import java.util.Map; + +/********************************************************** + * Event showing the completion of a media playback operation. + * + * Defined in file: events.json + * Generated by: Model + *********************************************************/ + +public class PlaybackFinished_impl_ari_2_0_0 extends Event_impl_ari_2_0_0 implements PlaybackFinished, java.io.Serializable { +private static final long serialVersionUID = 1L; + /** Playback control object */ + private Playback playback; + public Playback getPlayback() { + return playback; + } + + @JsonDeserialize( as=Playback_impl_ari_2_0_0.class ) + public void setPlayback(Playback val ) { + playback = val; + } + +/** No missing signatures from interface */ +} + diff --git a/classes/ch/loway/oss/ari4java/generated/ari_2_0_0/models/PlaybackStarted_impl_ari_2_0_0.java b/classes/ch/loway/oss/ari4java/generated/ari_2_0_0/models/PlaybackStarted_impl_ari_2_0_0.java new file mode 100644 index 00000000..f38131b0 --- /dev/null +++ b/classes/ch/loway/oss/ari4java/generated/ari_2_0_0/models/PlaybackStarted_impl_ari_2_0_0.java @@ -0,0 +1,37 @@ +package ch.loway.oss.ari4java.generated.ari_2_0_0.models; + +// ---------------------------------------------------- +// THIS CLASS WAS GENERATED AUTOMATICALLY +// PLEASE DO NOT EDIT +// Generated on: Sat Feb 04 15:23:09 CET 2017 +// ---------------------------------------------------- + +import ch.loway.oss.ari4java.generated.*; +import com.fasterxml.jackson.databind.annotation.JsonDeserialize; +import java.util.Date; +import java.util.List; +import java.util.Map; + +/********************************************************** + * Event showing the start of a media playback operation. + * + * Defined in file: events.json + * Generated by: Model + *********************************************************/ + +public class PlaybackStarted_impl_ari_2_0_0 extends Event_impl_ari_2_0_0 implements PlaybackStarted, java.io.Serializable { +private static final long serialVersionUID = 1L; + /** Playback control object */ + private Playback playback; + public Playback getPlayback() { + return playback; + } + + @JsonDeserialize( as=Playback_impl_ari_2_0_0.class ) + public void setPlayback(Playback val ) { + playback = val; + } + +/** No missing signatures from interface */ +} + diff --git a/classes/ch/loway/oss/ari4java/generated/ari_2_0_0/models/Playback_impl_ari_2_0_0.java b/classes/ch/loway/oss/ari4java/generated/ari_2_0_0/models/Playback_impl_ari_2_0_0.java new file mode 100644 index 00000000..6ef4779e --- /dev/null +++ b/classes/ch/loway/oss/ari4java/generated/ari_2_0_0/models/Playback_impl_ari_2_0_0.java @@ -0,0 +1,92 @@ +package ch.loway.oss.ari4java.generated.ari_2_0_0.models; + +// ---------------------------------------------------- +// THIS CLASS WAS GENERATED AUTOMATICALLY +// PLEASE DO NOT EDIT +// Generated on: Sat Feb 04 15:23:09 CET 2017 +// ---------------------------------------------------- + +import ch.loway.oss.ari4java.generated.*; +import com.fasterxml.jackson.databind.annotation.JsonDeserialize; +import java.util.Date; +import java.util.List; +import java.util.Map; + +/********************************************************** + * Object representing the playback of media to a channel + * + * Defined in file: playbacks.json + * Generated by: Model + *********************************************************/ + +public class Playback_impl_ari_2_0_0 implements Playback, java.io.Serializable { +private static final long serialVersionUID = 1L; + /** ID for this playback operation */ + private String id; + public String getId() { + return id; + } + + @JsonDeserialize( as=String.class ) + public void setId(String val ) { + id = val; + } + + /** For media types that support multiple languages, the language requested for playback. */ + private String language; + public String getLanguage() { + return language; + } + + @JsonDeserialize( as=String.class ) + public void setLanguage(String val ) { + language = val; + } + + /** The URI for the media currently being played back. */ + private String media_uri; + public String getMedia_uri() { + return media_uri; + } + + @JsonDeserialize( as=String.class ) + public void setMedia_uri(String val ) { + media_uri = val; + } + + /** If a list of URIs is being played, the next media URI to be played back. */ + private String next_media_uri; + public String getNext_media_uri() { + return next_media_uri; + } + + @JsonDeserialize( as=String.class ) + public void setNext_media_uri(String val ) { + next_media_uri = val; + } + + /** Current state of the playback operation. */ + private String state; + public String getState() { + return state; + } + + @JsonDeserialize( as=String.class ) + public void setState(String val ) { + state = val; + } + + /** URI for the channel or bridge to play the media on */ + private String target_uri; + public String getTarget_uri() { + return target_uri; + } + + @JsonDeserialize( as=String.class ) + public void setTarget_uri(String val ) { + target_uri = val; + } + +/** No missing signatures from interface */ +} + diff --git a/classes/ch/loway/oss/ari4java/generated/ari_2_0_0/models/RecordingFailed_impl_ari_2_0_0.java b/classes/ch/loway/oss/ari4java/generated/ari_2_0_0/models/RecordingFailed_impl_ari_2_0_0.java new file mode 100644 index 00000000..ec49fe27 --- /dev/null +++ b/classes/ch/loway/oss/ari4java/generated/ari_2_0_0/models/RecordingFailed_impl_ari_2_0_0.java @@ -0,0 +1,37 @@ +package ch.loway.oss.ari4java.generated.ari_2_0_0.models; + +// ---------------------------------------------------- +// THIS CLASS WAS GENERATED AUTOMATICALLY +// PLEASE DO NOT EDIT +// Generated on: Sat Feb 04 15:23:09 CET 2017 +// ---------------------------------------------------- + +import ch.loway.oss.ari4java.generated.*; +import com.fasterxml.jackson.databind.annotation.JsonDeserialize; +import java.util.Date; +import java.util.List; +import java.util.Map; + +/********************************************************** + * Event showing failure of a recording operation. + * + * Defined in file: events.json + * Generated by: Model + *********************************************************/ + +public class RecordingFailed_impl_ari_2_0_0 extends Event_impl_ari_2_0_0 implements RecordingFailed, java.io.Serializable { +private static final long serialVersionUID = 1L; + /** Recording control object */ + private LiveRecording recording; + public LiveRecording getRecording() { + return recording; + } + + @JsonDeserialize( as=LiveRecording_impl_ari_2_0_0.class ) + public void setRecording(LiveRecording val ) { + recording = val; + } + +/** No missing signatures from interface */ +} + diff --git a/classes/ch/loway/oss/ari4java/generated/ari_2_0_0/models/RecordingFinished_impl_ari_2_0_0.java b/classes/ch/loway/oss/ari4java/generated/ari_2_0_0/models/RecordingFinished_impl_ari_2_0_0.java new file mode 100644 index 00000000..f8ae5e38 --- /dev/null +++ b/classes/ch/loway/oss/ari4java/generated/ari_2_0_0/models/RecordingFinished_impl_ari_2_0_0.java @@ -0,0 +1,37 @@ +package ch.loway.oss.ari4java.generated.ari_2_0_0.models; + +// ---------------------------------------------------- +// THIS CLASS WAS GENERATED AUTOMATICALLY +// PLEASE DO NOT EDIT +// Generated on: Sat Feb 04 15:23:09 CET 2017 +// ---------------------------------------------------- + +import ch.loway.oss.ari4java.generated.*; +import com.fasterxml.jackson.databind.annotation.JsonDeserialize; +import java.util.Date; +import java.util.List; +import java.util.Map; + +/********************************************************** + * Event showing the completion of a recording operation. + * + * Defined in file: events.json + * Generated by: Model + *********************************************************/ + +public class RecordingFinished_impl_ari_2_0_0 extends Event_impl_ari_2_0_0 implements RecordingFinished, java.io.Serializable { +private static final long serialVersionUID = 1L; + /** Recording control object */ + private LiveRecording recording; + public LiveRecording getRecording() { + return recording; + } + + @JsonDeserialize( as=LiveRecording_impl_ari_2_0_0.class ) + public void setRecording(LiveRecording val ) { + recording = val; + } + +/** No missing signatures from interface */ +} + diff --git a/classes/ch/loway/oss/ari4java/generated/ari_2_0_0/models/RecordingStarted_impl_ari_2_0_0.java b/classes/ch/loway/oss/ari4java/generated/ari_2_0_0/models/RecordingStarted_impl_ari_2_0_0.java new file mode 100644 index 00000000..64633975 --- /dev/null +++ b/classes/ch/loway/oss/ari4java/generated/ari_2_0_0/models/RecordingStarted_impl_ari_2_0_0.java @@ -0,0 +1,37 @@ +package ch.loway.oss.ari4java.generated.ari_2_0_0.models; + +// ---------------------------------------------------- +// THIS CLASS WAS GENERATED AUTOMATICALLY +// PLEASE DO NOT EDIT +// Generated on: Sat Feb 04 15:23:09 CET 2017 +// ---------------------------------------------------- + +import ch.loway.oss.ari4java.generated.*; +import com.fasterxml.jackson.databind.annotation.JsonDeserialize; +import java.util.Date; +import java.util.List; +import java.util.Map; + +/********************************************************** + * Event showing the start of a recording operation. + * + * Defined in file: events.json + * Generated by: Model + *********************************************************/ + +public class RecordingStarted_impl_ari_2_0_0 extends Event_impl_ari_2_0_0 implements RecordingStarted, java.io.Serializable { +private static final long serialVersionUID = 1L; + /** Recording control object */ + private LiveRecording recording; + public LiveRecording getRecording() { + return recording; + } + + @JsonDeserialize( as=LiveRecording_impl_ari_2_0_0.class ) + public void setRecording(LiveRecording val ) { + recording = val; + } + +/** No missing signatures from interface */ +} + diff --git a/classes/ch/loway/oss/ari4java/generated/ari_2_0_0/models/SetId_impl_ari_2_0_0.java b/classes/ch/loway/oss/ari4java/generated/ari_2_0_0/models/SetId_impl_ari_2_0_0.java new file mode 100644 index 00000000..d1347f47 --- /dev/null +++ b/classes/ch/loway/oss/ari4java/generated/ari_2_0_0/models/SetId_impl_ari_2_0_0.java @@ -0,0 +1,48 @@ +package ch.loway.oss.ari4java.generated.ari_2_0_0.models; + +// ---------------------------------------------------- +// THIS CLASS WAS GENERATED AUTOMATICALLY +// PLEASE DO NOT EDIT +// Generated on: Sat Feb 04 15:23:09 CET 2017 +// ---------------------------------------------------- + +import ch.loway.oss.ari4java.generated.*; +import com.fasterxml.jackson.databind.annotation.JsonDeserialize; +import java.util.Date; +import java.util.List; +import java.util.Map; + +/********************************************************** + * Effective user/group id + * + * Defined in file: asterisk.json + * Generated by: Model + *********************************************************/ + +public class SetId_impl_ari_2_0_0 implements SetId, java.io.Serializable { +private static final long serialVersionUID = 1L; + /** Effective group id. */ + private String group; + public String getGroup() { + return group; + } + + @JsonDeserialize( as=String.class ) + public void setGroup(String val ) { + group = val; + } + + /** Effective user id. */ + private String user; + public String getUser() { + return user; + } + + @JsonDeserialize( as=String.class ) + public void setUser(String val ) { + user = val; + } + +/** No missing signatures from interface */ +} + diff --git a/classes/ch/loway/oss/ari4java/generated/ari_2_0_0/models/Sound_impl_ari_2_0_0.java b/classes/ch/loway/oss/ari4java/generated/ari_2_0_0/models/Sound_impl_ari_2_0_0.java new file mode 100644 index 00000000..674468fd --- /dev/null +++ b/classes/ch/loway/oss/ari4java/generated/ari_2_0_0/models/Sound_impl_ari_2_0_0.java @@ -0,0 +1,59 @@ +package ch.loway.oss.ari4java.generated.ari_2_0_0.models; + +// ---------------------------------------------------- +// THIS CLASS WAS GENERATED AUTOMATICALLY +// PLEASE DO NOT EDIT +// Generated on: Sat Feb 04 15:23:09 CET 2017 +// ---------------------------------------------------- + +import ch.loway.oss.ari4java.generated.*; +import com.fasterxml.jackson.databind.annotation.JsonDeserialize; +import java.util.Date; +import java.util.List; +import java.util.Map; + +/********************************************************** + * A media file that may be played back. + * + * Defined in file: sounds.json + * Generated by: Model + *********************************************************/ + +public class Sound_impl_ari_2_0_0 implements Sound, java.io.Serializable { +private static final long serialVersionUID = 1L; + /** The formats and languages in which this sound is available. */ + private List formats; + public List getFormats() { + return formats; + } + + @JsonDeserialize( contentAs=FormatLangPair_impl_ari_2_0_0.class ) + public void setFormats(List val ) { + formats = val; + } + + /** Sound's identifier. */ + private String id; + public String getId() { + return id; + } + + @JsonDeserialize( as=String.class ) + public void setId(String val ) { + id = val; + } + + /** Text description of the sound, usually the words spoken. */ + private String text; + public String getText() { + return text; + } + + @JsonDeserialize( as=String.class ) + public void setText(String val ) { + text = val; + } + +/** No missing signatures from interface */ +} + diff --git a/classes/ch/loway/oss/ari4java/generated/ari_2_0_0/models/StasisEnd_impl_ari_2_0_0.java b/classes/ch/loway/oss/ari4java/generated/ari_2_0_0/models/StasisEnd_impl_ari_2_0_0.java new file mode 100644 index 00000000..a725005b --- /dev/null +++ b/classes/ch/loway/oss/ari4java/generated/ari_2_0_0/models/StasisEnd_impl_ari_2_0_0.java @@ -0,0 +1,37 @@ +package ch.loway.oss.ari4java.generated.ari_2_0_0.models; + +// ---------------------------------------------------- +// THIS CLASS WAS GENERATED AUTOMATICALLY +// PLEASE DO NOT EDIT +// Generated on: Sat Feb 04 15:23:09 CET 2017 +// ---------------------------------------------------- + +import ch.loway.oss.ari4java.generated.*; +import com.fasterxml.jackson.databind.annotation.JsonDeserialize; +import java.util.Date; +import java.util.List; +import java.util.Map; + +/********************************************************** + * Notification that a channel has left a Stasis application. + * + * Defined in file: events.json + * Generated by: Model + *********************************************************/ + +public class StasisEnd_impl_ari_2_0_0 extends Event_impl_ari_2_0_0 implements StasisEnd, java.io.Serializable { +private static final long serialVersionUID = 1L; + /** */ + private Channel channel; + public Channel getChannel() { + return channel; + } + + @JsonDeserialize( as=Channel_impl_ari_2_0_0.class ) + public void setChannel(Channel val ) { + channel = val; + } + +/** No missing signatures from interface */ +} + diff --git a/classes/ch/loway/oss/ari4java/generated/ari_2_0_0/models/StasisStart_impl_ari_2_0_0.java b/classes/ch/loway/oss/ari4java/generated/ari_2_0_0/models/StasisStart_impl_ari_2_0_0.java new file mode 100644 index 00000000..7bc6befa --- /dev/null +++ b/classes/ch/loway/oss/ari4java/generated/ari_2_0_0/models/StasisStart_impl_ari_2_0_0.java @@ -0,0 +1,59 @@ +package ch.loway.oss.ari4java.generated.ari_2_0_0.models; + +// ---------------------------------------------------- +// THIS CLASS WAS GENERATED AUTOMATICALLY +// PLEASE DO NOT EDIT +// Generated on: Sat Feb 04 15:23:09 CET 2017 +// ---------------------------------------------------- + +import ch.loway.oss.ari4java.generated.*; +import com.fasterxml.jackson.databind.annotation.JsonDeserialize; +import java.util.Date; +import java.util.List; +import java.util.Map; + +/********************************************************** + * Notification that a channel has entered a Stasis application. + * + * Defined in file: events.json + * Generated by: Model + *********************************************************/ + +public class StasisStart_impl_ari_2_0_0 extends Event_impl_ari_2_0_0 implements StasisStart, java.io.Serializable { +private static final long serialVersionUID = 1L; + /** Arguments to the application */ + private List args; + public List getArgs() { + return args; + } + + @JsonDeserialize( contentAs=String.class ) + public void setArgs(List val ) { + args = val; + } + + /** */ + private Channel channel; + public Channel getChannel() { + return channel; + } + + @JsonDeserialize( as=Channel_impl_ari_2_0_0.class ) + public void setChannel(Channel val ) { + channel = val; + } + + /** */ + private Channel replace_channel; + public Channel getReplace_channel() { + return replace_channel; + } + + @JsonDeserialize( as=Channel_impl_ari_2_0_0.class ) + public void setReplace_channel(Channel val ) { + replace_channel = val; + } + +/** No missing signatures from interface */ +} + diff --git a/classes/ch/loway/oss/ari4java/generated/ari_2_0_0/models/StatusInfo_impl_ari_2_0_0.java b/classes/ch/loway/oss/ari4java/generated/ari_2_0_0/models/StatusInfo_impl_ari_2_0_0.java new file mode 100644 index 00000000..fa664f85 --- /dev/null +++ b/classes/ch/loway/oss/ari4java/generated/ari_2_0_0/models/StatusInfo_impl_ari_2_0_0.java @@ -0,0 +1,48 @@ +package ch.loway.oss.ari4java.generated.ari_2_0_0.models; + +// ---------------------------------------------------- +// THIS CLASS WAS GENERATED AUTOMATICALLY +// PLEASE DO NOT EDIT +// Generated on: Sat Feb 04 15:23:09 CET 2017 +// ---------------------------------------------------- + +import ch.loway.oss.ari4java.generated.*; +import com.fasterxml.jackson.databind.annotation.JsonDeserialize; +import java.util.Date; +import java.util.List; +import java.util.Map; + +/********************************************************** + * Info about Asterisk status + * + * Defined in file: asterisk.json + * Generated by: Model + *********************************************************/ + +public class StatusInfo_impl_ari_2_0_0 implements StatusInfo, java.io.Serializable { +private static final long serialVersionUID = 1L; + /** Time when Asterisk was last reloaded. */ + private Date last_reload_time; + public Date getLast_reload_time() { + return last_reload_time; + } + + @JsonDeserialize( as=Date.class ) + public void setLast_reload_time(Date val ) { + last_reload_time = val; + } + + /** Time when Asterisk was started. */ + private Date startup_time; + public Date getStartup_time() { + return startup_time; + } + + @JsonDeserialize( as=Date.class ) + public void setStartup_time(Date val ) { + startup_time = val; + } + +/** No missing signatures from interface */ +} + diff --git a/classes/ch/loway/oss/ari4java/generated/ari_2_0_0/models/StoredRecording_impl_ari_2_0_0.java b/classes/ch/loway/oss/ari4java/generated/ari_2_0_0/models/StoredRecording_impl_ari_2_0_0.java new file mode 100644 index 00000000..c8474f1a --- /dev/null +++ b/classes/ch/loway/oss/ari4java/generated/ari_2_0_0/models/StoredRecording_impl_ari_2_0_0.java @@ -0,0 +1,48 @@ +package ch.loway.oss.ari4java.generated.ari_2_0_0.models; + +// ---------------------------------------------------- +// THIS CLASS WAS GENERATED AUTOMATICALLY +// PLEASE DO NOT EDIT +// Generated on: Sat Feb 04 15:23:09 CET 2017 +// ---------------------------------------------------- + +import ch.loway.oss.ari4java.generated.*; +import com.fasterxml.jackson.databind.annotation.JsonDeserialize; +import java.util.Date; +import java.util.List; +import java.util.Map; + +/********************************************************** + * A past recording that may be played back. + * + * Defined in file: recordings.json + * Generated by: Model + *********************************************************/ + +public class StoredRecording_impl_ari_2_0_0 implements StoredRecording, java.io.Serializable { +private static final long serialVersionUID = 1L; + /** */ + private String format; + public String getFormat() { + return format; + } + + @JsonDeserialize( as=String.class ) + public void setFormat(String val ) { + format = val; + } + + /** */ + private String name; + public String getName() { + return name; + } + + @JsonDeserialize( as=String.class ) + public void setName(String val ) { + name = val; + } + +/** No missing signatures from interface */ +} + diff --git a/classes/ch/loway/oss/ari4java/generated/ari_2_0_0/models/SystemInfo_impl_ari_2_0_0.java b/classes/ch/loway/oss/ari4java/generated/ari_2_0_0/models/SystemInfo_impl_ari_2_0_0.java new file mode 100644 index 00000000..3d1cc900 --- /dev/null +++ b/classes/ch/loway/oss/ari4java/generated/ari_2_0_0/models/SystemInfo_impl_ari_2_0_0.java @@ -0,0 +1,48 @@ +package ch.loway.oss.ari4java.generated.ari_2_0_0.models; + +// ---------------------------------------------------- +// THIS CLASS WAS GENERATED AUTOMATICALLY +// PLEASE DO NOT EDIT +// Generated on: Sat Feb 04 15:23:09 CET 2017 +// ---------------------------------------------------- + +import ch.loway.oss.ari4java.generated.*; +import com.fasterxml.jackson.databind.annotation.JsonDeserialize; +import java.util.Date; +import java.util.List; +import java.util.Map; + +/********************************************************** + * Info about Asterisk + * + * Defined in file: asterisk.json + * Generated by: Model + *********************************************************/ + +public class SystemInfo_impl_ari_2_0_0 implements SystemInfo, java.io.Serializable { +private static final long serialVersionUID = 1L; + /** */ + private String entity_id; + public String getEntity_id() { + return entity_id; + } + + @JsonDeserialize( as=String.class ) + public void setEntity_id(String val ) { + entity_id = val; + } + + /** Asterisk version. */ + private String version; + public String getVersion() { + return version; + } + + @JsonDeserialize( as=String.class ) + public void setVersion(String val ) { + version = val; + } + +/** No missing signatures from interface */ +} + diff --git a/classes/ch/loway/oss/ari4java/generated/ari_2_0_0/models/TextMessageReceived_impl_ari_2_0_0.java b/classes/ch/loway/oss/ari4java/generated/ari_2_0_0/models/TextMessageReceived_impl_ari_2_0_0.java new file mode 100644 index 00000000..bcefcf6d --- /dev/null +++ b/classes/ch/loway/oss/ari4java/generated/ari_2_0_0/models/TextMessageReceived_impl_ari_2_0_0.java @@ -0,0 +1,48 @@ +package ch.loway.oss.ari4java.generated.ari_2_0_0.models; + +// ---------------------------------------------------- +// THIS CLASS WAS GENERATED AUTOMATICALLY +// PLEASE DO NOT EDIT +// Generated on: Sat Feb 04 15:23:09 CET 2017 +// ---------------------------------------------------- + +import ch.loway.oss.ari4java.generated.*; +import com.fasterxml.jackson.databind.annotation.JsonDeserialize; +import java.util.Date; +import java.util.List; +import java.util.Map; + +/********************************************************** + * A text message was received from an endpoint. + * + * Defined in file: events.json + * Generated by: Model + *********************************************************/ + +public class TextMessageReceived_impl_ari_2_0_0 extends Event_impl_ari_2_0_0 implements TextMessageReceived, java.io.Serializable { +private static final long serialVersionUID = 1L; + /** */ + private Endpoint endpoint; + public Endpoint getEndpoint() { + return endpoint; + } + + @JsonDeserialize( as=Endpoint_impl_ari_2_0_0.class ) + public void setEndpoint(Endpoint val ) { + endpoint = val; + } + + /** */ + private TextMessage message; + public TextMessage getMessage() { + return message; + } + + @JsonDeserialize( as=TextMessage_impl_ari_2_0_0.class ) + public void setMessage(TextMessage val ) { + message = val; + } + +/** No missing signatures from interface */ +} + diff --git a/classes/ch/loway/oss/ari4java/generated/ari_2_0_0/models/TextMessageVariable_impl_ari_2_0_0.java b/classes/ch/loway/oss/ari4java/generated/ari_2_0_0/models/TextMessageVariable_impl_ari_2_0_0.java new file mode 100644 index 00000000..70b2e397 --- /dev/null +++ b/classes/ch/loway/oss/ari4java/generated/ari_2_0_0/models/TextMessageVariable_impl_ari_2_0_0.java @@ -0,0 +1,48 @@ +package ch.loway.oss.ari4java.generated.ari_2_0_0.models; + +// ---------------------------------------------------- +// THIS CLASS WAS GENERATED AUTOMATICALLY +// PLEASE DO NOT EDIT +// Generated on: Sat Feb 04 15:23:09 CET 2017 +// ---------------------------------------------------- + +import ch.loway.oss.ari4java.generated.*; +import com.fasterxml.jackson.databind.annotation.JsonDeserialize; +import java.util.Date; +import java.util.List; +import java.util.Map; + +/********************************************************** + * A key/value pair variable in a text message. + * + * Defined in file: endpoints.json + * Generated by: Model + *********************************************************/ + +public class TextMessageVariable_impl_ari_2_0_0 implements TextMessageVariable, java.io.Serializable { +private static final long serialVersionUID = 1L; + /** A unique key identifying the variable. */ + private String key; + public String getKey() { + return key; + } + + @JsonDeserialize( as=String.class ) + public void setKey(String val ) { + key = val; + } + + /** The value of the variable. */ + private String value; + public String getValue() { + return value; + } + + @JsonDeserialize( as=String.class ) + public void setValue(String val ) { + value = val; + } + +/** No missing signatures from interface */ +} + diff --git a/classes/ch/loway/oss/ari4java/generated/ari_2_0_0/models/TextMessage_impl_ari_2_0_0.java b/classes/ch/loway/oss/ari4java/generated/ari_2_0_0/models/TextMessage_impl_ari_2_0_0.java new file mode 100644 index 00000000..446cc714 --- /dev/null +++ b/classes/ch/loway/oss/ari4java/generated/ari_2_0_0/models/TextMessage_impl_ari_2_0_0.java @@ -0,0 +1,70 @@ +package ch.loway.oss.ari4java.generated.ari_2_0_0.models; + +// ---------------------------------------------------- +// THIS CLASS WAS GENERATED AUTOMATICALLY +// PLEASE DO NOT EDIT +// Generated on: Sat Feb 04 15:23:09 CET 2017 +// ---------------------------------------------------- + +import ch.loway.oss.ari4java.generated.*; +import com.fasterxml.jackson.databind.annotation.JsonDeserialize; +import java.util.Date; +import java.util.List; +import java.util.Map; + +/********************************************************** + * A text message. + * + * Defined in file: endpoints.json + * Generated by: Model + *********************************************************/ + +public class TextMessage_impl_ari_2_0_0 implements TextMessage, java.io.Serializable { +private static final long serialVersionUID = 1L; + /** The text of the message. */ + private String body; + public String getBody() { + return body; + } + + @JsonDeserialize( as=String.class ) + public void setBody(String val ) { + body = val; + } + + /** A technology specific URI specifying the source of the message. For sip and pjsip technologies, any SIP URI can be specified. For xmpp, the URI must correspond to the client connection being used to send the message. */ + private String from; + public String getFrom() { + return from; + } + + @JsonDeserialize( as=String.class ) + public void setFrom(String val ) { + from = val; + } + + /** A technology specific URI specifying the destination of the message. Valid technologies include sip, pjsip, and xmp. The destination of a message should be an endpoint. */ + private String to; + public String getTo() { + return to; + } + + @JsonDeserialize( as=String.class ) + public void setTo(String val ) { + to = val; + } + + /** Technology specific key/value pairs associated with the message. */ + private List variables; + public List getVariables() { + return variables; + } + + @JsonDeserialize( contentAs=TextMessageVariable_impl_ari_2_0_0.class ) + public void setVariables(List val ) { + variables = val; + } + +/** No missing signatures from interface */ +} + diff --git a/classes/ch/loway/oss/ari4java/generated/ari_2_0_0/models/Variable_impl_ari_2_0_0.java b/classes/ch/loway/oss/ari4java/generated/ari_2_0_0/models/Variable_impl_ari_2_0_0.java new file mode 100644 index 00000000..56f7a671 --- /dev/null +++ b/classes/ch/loway/oss/ari4java/generated/ari_2_0_0/models/Variable_impl_ari_2_0_0.java @@ -0,0 +1,37 @@ +package ch.loway.oss.ari4java.generated.ari_2_0_0.models; + +// ---------------------------------------------------- +// THIS CLASS WAS GENERATED AUTOMATICALLY +// PLEASE DO NOT EDIT +// Generated on: Sat Feb 04 15:23:09 CET 2017 +// ---------------------------------------------------- + +import ch.loway.oss.ari4java.generated.*; +import com.fasterxml.jackson.databind.annotation.JsonDeserialize; +import java.util.Date; +import java.util.List; +import java.util.Map; + +/********************************************************** + * The value of a channel variable + * + * Defined in file: asterisk.json + * Generated by: Model + *********************************************************/ + +public class Variable_impl_ari_2_0_0 implements Variable, java.io.Serializable { +private static final long serialVersionUID = 1L; + /** The value of the variable requested */ + private String value; + public String getValue() { + return value; + } + + @JsonDeserialize( as=String.class ) + public void setValue(String val ) { + value = val; + } + +/** No missing signatures from interface */ +} + From 5ade692a15572f5b17b505dc199c0ab649acae2d Mon Sep 17 00:00:00 2001 From: lenz Date: Sat, 4 Feb 2017 15:37:26 +0100 Subject: [PATCH 007/220] bug #62 - manual changes --- classes/ch/loway/oss/ari4java/AriVersion.java | 3 +++ .../oss/ari4java/tools/MessageQueue.java | 20 ++++++++++++++----- 2 files changed, 18 insertions(+), 5 deletions(-) diff --git a/classes/ch/loway/oss/ari4java/AriVersion.java b/classes/ch/loway/oss/ari4java/AriVersion.java index 13efd532..f8e2dc9a 100644 --- a/classes/ch/loway/oss/ari4java/AriVersion.java +++ b/classes/ch/loway/oss/ari4java/AriVersion.java @@ -10,6 +10,7 @@ import ch.loway.oss.ari4java.generated.ari_1_7_0.AriBuilder_impl_ari_1_7_0; import ch.loway.oss.ari4java.generated.ari_1_8_0.AriBuilder_impl_ari_1_8_0; import ch.loway.oss.ari4java.generated.ari_1_9_0.AriBuilder_impl_ari_1_9_0; +import ch.loway.oss.ari4java.generated.ari_2_0_0.AriBuilder_impl_ari_2_0_0; import ch.loway.oss.ari4java.tools.ARIException; /** @@ -28,6 +29,8 @@ public enum AriVersion { ARI_1_8_0 ( "1.8.0", new AriBuilder_impl_ari_1_8_0() ), /** Asterisk 13.5.0 */ ARI_1_9_0 ( "1.9.0", new AriBuilder_impl_ari_1_9_0() ), /** Asterisk 13.7.0 */ ARI_1_10_0 ( "1.10.0", new AriBuilder_impl_ari_1_10_0() ), /** Asterisk 14.0.0 */ + ARI_2_0_0 ( "2.0.0", new AriBuilder_impl_ari_2_0_0() ), /** Asterisk 14.2.1 */ + IM_FEELING_LUCKY ( "", null ); diff --git a/classes/ch/loway/oss/ari4java/tools/MessageQueue.java b/classes/ch/loway/oss/ari4java/tools/MessageQueue.java index 102b2a3e..5b249408 100644 --- a/classes/ch/loway/oss/ari4java/tools/MessageQueue.java +++ b/classes/ch/loway/oss/ari4java/tools/MessageQueue.java @@ -92,21 +92,31 @@ public synchronized int size() { * */ - public static class ErrorMessage implements Message { String type = ""; + String asterisk_id = ""; + @Override public void setType(String val) { - type=val; + this.type=val; } + @Override public String getType() { - return type; + return this.type; + } + + @Override + public void setAsterisk_id(String val) { + this.asterisk_id = val; + } + + @Override + public String getAsterisk_id() { + return this.asterisk_id; } } } -// $Log$ -// From 028c79f060e744688097e034dc64af4acd17347a Mon Sep 17 00:00:00 2001 From: lenz Date: Sat, 4 Feb 2017 15:38:46 +0100 Subject: [PATCH 008/220] ari4java requires java 1.7 to build --- .java-version | 1 + 1 file changed, 1 insertion(+) create mode 100644 .java-version diff --git a/.java-version b/.java-version new file mode 100644 index 00000000..d3bdbdf1 --- /dev/null +++ b/.java-version @@ -0,0 +1 @@ +1.7 From f1b4181ad0f43837b1408be4e66782b3d97ec406 Mon Sep 17 00:00:00 2001 From: lenz Date: Sat, 4 Feb 2017 15:45:14 +0100 Subject: [PATCH 009/220] bug #63 - Slow JSON deserialization --- classes/ch/loway/oss/ari4java/tools/BaseAriAction.java | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/classes/ch/loway/oss/ari4java/tools/BaseAriAction.java b/classes/ch/loway/oss/ari4java/tools/BaseAriAction.java index 27e21ba9..4b9cdfbc 100644 --- a/classes/ch/loway/oss/ari4java/tools/BaseAriAction.java +++ b/classes/ch/loway/oss/ari4java/tools/BaseAriAction.java @@ -22,6 +22,9 @@ */ public class BaseAriAction { + // Shared ObjectMapper + private static final ObjectMapper mapper = new ObjectMapper(); + private String forcedResponse = null; private HttpClient httpClient; private WsClient wsClient; @@ -125,7 +128,6 @@ protected void httpActionAsync( */ public static T deserializeJson(String json, Class klazz) throws RestException { - ObjectMapper mapper = new ObjectMapper(); try { return mapper.readValue(json, klazz); } catch (IOException e) { @@ -143,7 +145,6 @@ public static T deserializeJson(String json, Class klazz) throws RestExce */ public static T deserializeJson(String json, TypeReference klazzType) throws RestException { - ObjectMapper mapper = new ObjectMapper(); try { return mapper.readValue(json, klazzType); } catch (IOException e) { @@ -168,7 +169,6 @@ public static T deserializeJson(String json, TypeReference klazzType) thr */ public static List deserializeJsonAsAbstractList(String json, TypeReference> refConcreteType) throws RestException { - ObjectMapper mapper = new ObjectMapper(); try { List lC = mapper.readValue(json, refConcreteType); List lA = (List) lC; @@ -188,7 +188,6 @@ public static List deserializeJsonAsAbstractList(String json * @throws RestException */ public static Message deserializeEvent(String json, Class klazz) throws RestException { - ObjectMapper mapper = new ObjectMapper(); try { return (Message) mapper.readValue(json, klazz); } catch (IOException e) { @@ -203,8 +202,9 @@ public static Message deserializeEvent(String json, Class klazz) throws RestE * @throws RestException */ public synchronized void disconnectWs() throws RestException { - if (wsConnection != null) + if (wsConnection != null) { wsConnection.disconnect(); + } wsConnection = null; } From f421b9bbd46fcac842cdc42e276b3995cff3e6ff Mon Sep 17 00:00:00 2001 From: lenz Date: Sat, 4 Feb 2017 15:47:11 +0100 Subject: [PATCH 010/220] Release 0.4.4 --- README.md | 3 ++- build.gradle | 2 +- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 453f1ba7..a34974f0 100644 --- a/README.md +++ b/README.md @@ -39,7 +39,7 @@ If you use Gradle (or any tool using Maven dependencies) you can simply declare dependencies { - compile 'ch.loway.oss.ari4java:ari4java:0.4.2' + compile 'ch.loway.oss.ari4java:ari4java:0.4.4' } This will download the package and all required dependencies. @@ -87,6 +87,7 @@ The project requires: Status ------ +* 17.02.04 - Added support for ARI 2.0.0 (#62) and quicker deserialization (#63) * 16.11.30 - Fixes on Graham's AutoReconnect patch - #60 - rel 0.4.3 * 16.10.21 - Fixing #55 and #57 - rel 0.4.2 * 16.10.17 - Graham's AutoReconnect patch #52 - rel 0.4.1 diff --git a/build.gradle b/build.gradle index f9a51d0a..ccf8360d 100644 --- a/build.gradle +++ b/build.gradle @@ -9,7 +9,7 @@ def env = System.getenv() project.ext { webapp_name = 'ari4java' - app_version = '0.4.3' + app_version = '0.4.4' build_number = env["BUILD_NUMBER"] version_class = 'ch/loway/oss/ari4java/BUILD.java' build_time = "" + new Date() From 6e04ba03c1bf0e2d0c17db3758034b3068f2aa2e Mon Sep 17 00:00:00 2001 From: Joseph Smith Date: Mon, 3 Jul 2017 15:17:13 -0500 Subject: [PATCH 011/220] Update Gradle instruction. mavenRepo was removed in Gradle 2.0 --- README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index a34974f0..a195ac49 100644 --- a/README.md +++ b/README.md @@ -33,8 +33,8 @@ If you use Gradle (or any tool using Maven dependencies) you can simply declare repositories { - mavenCentral() - mavenRepo(url: 'http://jcenter.bintray.com') + mavenCentral() + jcenter() } From b1c2306ad5ff8512f8fd32a43deac8528f2d474f Mon Sep 17 00:00:00 2001 From: Joseph Smith Date: Thu, 6 Jul 2017 13:30:13 -0500 Subject: [PATCH 012/220] #64 - Shutting down shutDownGroup after group shutdown is completed. --- .../loway/oss/ari4java/tools/http/NettyHttpClient.java | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/classes/ch/loway/oss/ari4java/tools/http/NettyHttpClient.java b/classes/ch/loway/oss/ari4java/tools/http/NettyHttpClient.java index cf99bba8..b9b0675b 100644 --- a/classes/ch/loway/oss/ari4java/tools/http/NettyHttpClient.java +++ b/classes/ch/loway/oss/ari4java/tools/http/NettyHttpClient.java @@ -16,6 +16,8 @@ import io.netty.channel.socket.nio.NioSocketChannel; import io.netty.handler.codec.http.*; import io.netty.handler.codec.http.websocketx.*; +import io.netty.util.concurrent.Future; +import io.netty.util.concurrent.GenericFutureListener; import io.netty.util.concurrent.ScheduledFuture; import java.io.UnsupportedEncodingException; @@ -101,7 +103,13 @@ public void run() { } } if (group != null && !group.isShuttingDown()) { - group.shutdownGracefully(5, 10, TimeUnit.SECONDS).syncUninterruptibly(); + group.shutdownGracefully(5, 10, TimeUnit.SECONDS).addListener(new GenericFutureListener() { + @Override + public void operationComplete(Future future) throws Exception { + shutDownGroup.shutdownGracefully(5, 10, TimeUnit.SECONDS); + shutDownGroup = null; + } + }).syncUninterruptibly(); group = null; } } From 7c540aa4b9df6ef93afe5a9d27249955f07b0798 Mon Sep 17 00:00:00 2001 From: Joseph Smith Date: Tue, 29 Aug 2017 14:00:29 -0500 Subject: [PATCH 013/220] #76 removing unnecessary throws --- classes/ch/loway/oss/ari4java/ARI.java | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/classes/ch/loway/oss/ari4java/ARI.java b/classes/ch/loway/oss/ari4java/ARI.java index a3d8dd9d..69fa0388 100644 --- a/classes/ch/loway/oss/ari4java/ARI.java +++ b/classes/ch/loway/oss/ari4java/ARI.java @@ -61,7 +61,7 @@ public void setWsClient(WsClient wsClient) { } - public void setVersion(AriVersion version) throws ARIException { + public void setVersion(AriVersion version) { this.version = version; } @@ -73,10 +73,9 @@ public void setUrl(String url) { * Returns the current ARI version. * * @return the ARI version currently used. - * @throws ARIException */ - public AriVersion getVersion() throws ARIException { + public AriVersion getVersion() { return version; } From 8a653b33df783f94abad5c900745f4b884b52f44 Mon Sep 17 00:00:00 2001 From: lenz Date: Sat, 2 Sep 2017 13:19:18 +0200 Subject: [PATCH 014/220] Support for ARI 3.0.0 / Asterisk 15 (#78) Initial upload of Asterisk files, so everything is in one place. Files taken from Asterisk 15 beta 1. To be rebuilt when officially released, if any files change. --- codegen-data/ari_3_0_0/applications.json | 172 +++ codegen-data/ari_3_0_0/asterisk.json | 692 +++++++++ codegen-data/ari_3_0_0/bridges.json | 738 +++++++++ codegen-data/ari_3_0_0/channels.json | 1773 ++++++++++++++++++++++ codegen-data/ari_3_0_0/deviceStates.json | 151 ++ codegen-data/ari_3_0_0/endpoints.json | 279 ++++ codegen-data/ari_3_0_0/events.json | 895 +++++++++++ codegen-data/ari_3_0_0/mailboxes.json | 134 ++ codegen-data/ari_3_0_0/playbacks.json | 161 ++ codegen-data/ari_3_0_0/recordings.json | 410 +++++ codegen-data/ari_3_0_0/sounds.json | 99 ++ 11 files changed, 5504 insertions(+) create mode 100644 codegen-data/ari_3_0_0/applications.json create mode 100644 codegen-data/ari_3_0_0/asterisk.json create mode 100644 codegen-data/ari_3_0_0/bridges.json create mode 100644 codegen-data/ari_3_0_0/channels.json create mode 100644 codegen-data/ari_3_0_0/deviceStates.json create mode 100644 codegen-data/ari_3_0_0/endpoints.json create mode 100644 codegen-data/ari_3_0_0/events.json create mode 100644 codegen-data/ari_3_0_0/mailboxes.json create mode 100644 codegen-data/ari_3_0_0/playbacks.json create mode 100644 codegen-data/ari_3_0_0/recordings.json create mode 100644 codegen-data/ari_3_0_0/sounds.json diff --git a/codegen-data/ari_3_0_0/applications.json b/codegen-data/ari_3_0_0/applications.json new file mode 100644 index 00000000..cdd69c41 --- /dev/null +++ b/codegen-data/ari_3_0_0/applications.json @@ -0,0 +1,172 @@ +{ + "_copyright": "Copyright (C) 2013, Digium, Inc.", + "_author": "David M. Lee, II ", + "_svn_revision": "$Revision$", + "apiVersion": "2.0.0", + "swaggerVersion": "1.1", + "basePath": "http://localhost:8088/ari", + "resourcePath": "/api-docs/applications.{format}", + "apis": [ + { + "path": "/applications", + "description": "Stasis applications", + "operations": [ + { + "httpMethod": "GET", + "summary": "List all applications.", + "nickname": "list", + "responseClass": "List[Application]" + } + ] + }, + { + "path": "/applications/{applicationName}", + "description": "Stasis application", + "operations": [ + { + "httpMethod": "GET", + "summary": "Get details of an application.", + "nickname": "get", + "responseClass": "Application", + "parameters": [ + { + "name": "applicationName", + "description": "Application's name", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Application does not exist." + } + ] + } + ] + }, + { + "path": "/applications/{applicationName}/subscription", + "description": "Stasis application", + "operations": [ + { + "httpMethod": "POST", + "summary": "Subscribe an application to a event source.", + "notes": "Returns the state of the application after the subscriptions have changed", + "nickname": "subscribe", + "responseClass": "Application", + "parameters": [ + { + "name": "applicationName", + "description": "Application's name", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "eventSource", + "description": "URI for event source (channel:{channelId}, bridge:{bridgeId}, endpoint:{tech}[/{resource}], deviceState:{deviceName}", + "paramType": "query", + "required": true, + "allowMultiple": true, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 400, + "reason": "Missing parameter." + }, + { + "code": 404, + "reason": "Application does not exist." + }, + { + "code": 422, + "reason": "Event source does not exist." + } + ] + }, + { + "httpMethod": "DELETE", + "summary": "Unsubscribe an application from an event source.", + "notes": "Returns the state of the application after the subscriptions have changed", + "nickname": "unsubscribe", + "responseClass": "Application", + "parameters": [ + { + "name": "applicationName", + "description": "Application's name", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "eventSource", + "description": "URI for event source (channel:{channelId}, bridge:{bridgeId}, endpoint:{tech}[/{resource}], deviceState:{deviceName}", + "paramType": "query", + "required": true, + "allowMultiple": true, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 400, + "reason": "Missing parameter; event source scheme not recognized." + }, + { + "code": 404, + "reason": "Application does not exist." + }, + { + "code": 409, + "reason": "Application not subscribed to event source." + }, + { + "code": 422, + "reason": "Event source does not exist." + } + ] + } + ] + } + ], + "models": { + "Application": { + "id": "Application", + "description": "Details of a Stasis application", + "properties": { + "name": { + "type": "string", + "description": "Name of this application", + "required": true + }, + "channel_ids": { + "type": "List[string]", + "description": "Id's for channels subscribed to.", + "required": true + }, + "bridge_ids": { + "type": "List[string]", + "description": "Id's for bridges subscribed to.", + "required": true + }, + "endpoint_ids": { + "type": "List[string]", + "description": "{tech}/{resource} for endpoints subscribed to.", + "required": true + }, + "device_names": { + "type": "List[string]", + "description": "Names of the devices subscribed to.", + "required": true + } + } + } + } +} diff --git a/codegen-data/ari_3_0_0/asterisk.json b/codegen-data/ari_3_0_0/asterisk.json new file mode 100644 index 00000000..f40bf5c6 --- /dev/null +++ b/codegen-data/ari_3_0_0/asterisk.json @@ -0,0 +1,692 @@ +{ + "_copyright": "Copyright (C) 2012 - 2013, Digium, Inc.", + "_author": "David M. Lee, II ", + "_svn_revision": "$Revision$", + "apiVersion": "2.0.0", + "swaggerVersion": "1.1", + "basePath": "http://localhost:8088/ari", + "resourcePath": "/api-docs/asterisk.{format}", + "apis": [ + { + "path": "/asterisk/config/dynamic/{configClass}/{objectType}/{id}", + "description": "Asterisk dynamic configuration", + "operations": [ + { + "httpMethod": "GET", + "summary": "Retrieve a dynamic configuration object.", + "nickname": "getObject", + "responseClass": "List[ConfigTuple]", + "parameters": [ + { + "name": "configClass", + "description": "The configuration class containing dynamic configuration objects.", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "objectType", + "description": "The type of configuration object to retrieve.", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "id", + "description": "The unique identifier of the object to retrieve.", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "{configClass|objectType|id} not found" + } + ] + }, + { + "httpMethod": "PUT", + "summary": "Create or update a dynamic configuration object.", + "nickname": "updateObject", + "responseClass": "List[ConfigTuple]", + "parameters": [ + { + "name": "configClass", + "description": "The configuration class containing dynamic configuration objects.", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "objectType", + "description": "The type of configuration object to create or update.", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "id", + "description": "The unique identifier of the object to create or update.", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "fields", + "description": "The body object should have a value that is a list of ConfigTuples, which provide the fields to update. Ex. [ { \"attribute\": \"directmedia\", \"value\": \"false\" } ]", + "paramType": "body", + "required": false, + "dataType": "containers", + "allowMultiple": false + } + ], + "errorResponses": [ + { + "code": 400, + "reason": "Bad request body" + }, + { + "code": 403, + "reason": "Could not create or update object" + }, + { + "code": 404, + "reason": "{configClass|objectType} not found" + } + ] + }, + { + "httpMethod": "DELETE", + "summary": "Delete a dynamic configuration object.", + "nickname": "deleteObject", + "responseClass": "void", + "parameters": [ + { + "name": "configClass", + "description": "The configuration class containing dynamic configuration objects.", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "objectType", + "description": "The type of configuration object to delete.", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "id", + "description": "The unique identifier of the object to delete.", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 403, + "reason": "Could not delete object" + }, + { + "code": 404, + "reason": "{configClass|objectType|id} not found" + } + ] + } + ] + }, + { + "path": "/asterisk/info", + "description": "Asterisk system information (similar to core show settings)", + "operations": [ + { + "httpMethod": "GET", + "summary": "Gets Asterisk system information.", + "nickname": "getInfo", + "responseClass": "AsteriskInfo", + "parameters": [ + { + "name": "only", + "description": "Filter information returned", + "paramType": "query", + "required": false, + "allowMultiple": true, + "dataType": "string", + "allowableValues": { + "valueType": "LIST", + "values": [ + "build", + "system", + "config", + "status" + ] + } + } + ] + } + ] + }, + { + "path": "/asterisk/modules", + "description": "Asterisk modules", + "operations": [ + { + "httpMethod": "GET", + "summary": "List Asterisk modules.", + "nickname": "listModules", + "responseClass": "List[Module]" + } + ] + }, + { + "path": "/asterisk/modules/{moduleName}", + "description": "Asterisk module", + "operations": [ + { + "httpMethod": "GET", + "summary": "Get Asterisk module information.", + "nickname": "getModule", + "responseClass": "Module", + "parameters": [ + { + "name": "moduleName", + "description": "Module's name", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Module could not be found in running modules." + }, + { + "code": 409, + "reason": "Module information could not be retrieved." + } + ] + }, + { + "httpMethod": "POST", + "summary": "Load an Asterisk module.", + "nickname": "loadModule", + "responseClass": "void", + "parameters": [ + { + "name": "moduleName", + "description": "Module's name", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 409, + "reason": "Module could not be loaded." + } + ] + }, + { + "httpMethod": "DELETE", + "summary": "Unload an Asterisk module.", + "nickname": "unloadModule", + "responseClass": "void", + "parameters": [ + { + "name": "moduleName", + "description": "Module's name", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Module not found in running modules." + }, + { + "code": 409, + "reason": "Module could not be unloaded." + } + ] + }, + { + "httpMethod": "PUT", + "summary": "Reload an Asterisk module.", + "nickname": "reloadModule", + "responseClass": "void", + "parameters": [ + { + "name": "moduleName", + "description": "Module's name", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Module not found in running modules." + }, + { + "code": 409, + "reason": "Module could not be reloaded." + } + ] + } + ] + }, + { + "path": "/asterisk/logging", + "description": "Asterisk log channels", + "operations": [ + { + "httpMethod": "GET", + "summary": "Gets Asterisk log channel information.", + "nickname": "listLogChannels", + "responseClass": "List[LogChannel]" + } + ] + }, + { + "path": "/asterisk/logging/{logChannelName}", + "description": "Asterisk log channel", + "operations": [ + { + "httpMethod": "POST", + "summary": "Adds a log channel.", + "nickname": "addLog", + "responseClass": "void", + "parameters": [ + { + "name": "logChannelName", + "description": "The log channel to add", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "configuration", + "description": "levels of the log channel", + "paramType": "query", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 400, + "reason": "Bad request body" + }, + { + "code": 409, + "reason": "Log channel could not be created." + } + ] + }, + { + "httpMethod": "DELETE", + "summary": "Deletes a log channel.", + "nickname": "deleteLog", + "responseClass": "void", + "parameters": [ + { + "name": "logChannelName", + "description": "Log channels name", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Log channel does not exist." + } + ] + } + ] + }, + { + "path": "/asterisk/logging/{logChannelName}/rotate", + "description": "Asterisk log channel", + "operations": [ + { + "httpMethod": "PUT", + "summary": "Rotates a log channel.", + "nickname": "rotateLog", + "responseClass": "void", + "parameters": [ + { + "name": "logChannelName", + "description": "Log channel's name", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Log channel does not exist." + } + ] + } + ] + }, + { + "path": "/asterisk/variable", + "description": "Global variables", + "operations": [ + { + "httpMethod": "GET", + "summary": "Get the value of a global variable.", + "nickname": "getGlobalVar", + "responseClass": "Variable", + "parameters": [ + { + "name": "variable", + "description": "The variable to get", + "paramType": "query", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 400, + "reason": "Missing variable parameter." + } + ] + }, + { + "httpMethod": "POST", + "summary": "Set the value of a global variable.", + "nickname": "setGlobalVar", + "responseClass": "void", + "parameters": [ + { + "name": "variable", + "description": "The variable to set", + "paramType": "query", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "value", + "description": "The value to set the variable to", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 400, + "reason": "Missing variable parameter." + } + ] + } + ] + } + ], + "models": { + "BuildInfo": { + "id": "BuildInfo", + "description": "Info about how Asterisk was built", + "properties": { + "os": { + "required": true, + "type": "string", + "description": "OS Asterisk was built on." + }, + "kernel": { + "required": true, + "type": "string", + "description": "Kernel version Asterisk was built on." + }, + "options": { + "required": true, + "type": "string", + "description": "Compile time options, or empty string if default." + }, + "machine": { + "required": true, + "type": "string", + "description": "Machine architecture (x86_64, i686, ppc, etc.)" + }, + "date": { + "required": true, + "type": "string", + "description": "Date and time when Asterisk was built." + }, + "user": { + "required": true, + "type": "string", + "description": "Username that build Asterisk" + } + } + }, + "SystemInfo": { + "id": "SystemInfo", + "description": "Info about Asterisk", + "properties": { + "version": { + "required": true, + "type": "string", + "description": "Asterisk version." + }, + "entity_id": { + "required": true, + "type": "string", + "description": "" + } + } + }, + "SetId": { + "id": "SetId", + "description": "Effective user/group id", + "properties": { + "user": { + "required": true, + "type": "string", + "description": "Effective user id." + }, + "group": { + "required": true, + "type": "string", + "description": "Effective group id." + } + } + }, + "ConfigInfo": { + "id": "ConfigInfo", + "description": "Info about Asterisk configuration", + "properties": { + "name": { + "required": true, + "type": "string", + "description": "Asterisk system name." + }, + "default_language": { + "required": true, + "type": "string", + "description": "Default language for media playback." + }, + "max_channels": { + "required": false, + "type": "int", + "description": "Maximum number of simultaneous channels." + }, + "max_open_files": { + "required": false, + "type": "int", + "description": "Maximum number of open file handles (files, sockets)." + }, + "max_load": { + "required": false, + "type": "double", + "description": "Maximum load avg on system." + }, + "setid": { + "required": true, + "type": "SetId", + "description": "Effective user/group id for running Asterisk." + } + } + }, + "StatusInfo": { + "id": "StatusInfo", + "description": "Info about Asterisk status", + "properties": { + "startup_time": { + "required": true, + "type": "Date", + "description": "Time when Asterisk was started." + }, + "last_reload_time": { + "required": true, + "type": "Date", + "description": "Time when Asterisk was last reloaded." + } + } + }, + "AsteriskInfo": { + "id": "AsteriskInfo", + "description": "Asterisk system information", + "properties": { + "build": { + "required": false, + "type": "BuildInfo", + "description": "Info about how Asterisk was built" + }, + "system": { + "required": false, + "type": "SystemInfo", + "description": "Info about the system running Asterisk" + }, + "config": { + "required": false, + "type": "ConfigInfo", + "description": "Info about Asterisk configuration" + }, + "status": { + "required": false, + "type": "StatusInfo", + "description": "Info about Asterisk status" + } + } + }, + "Module": { + "id": "Module", + "description": "Details of an Asterisk module", + "properties": { + "name": { + "type": "string", + "description": "The name of this module", + "required": true + }, + "description": { + "type": "string", + "description": "The description of this module", + "required": true + }, + "use_count": { + "type": "int", + "description": "The number of times this module is being used", + "required": true + }, + "status": { + "type": "string", + "description": "The running status of this module", + "required": true + }, + "support_level": { + "type": "string", + "description": "The support state of this module", + "required": true + } + } + }, + "LogChannel": { + "id": "LogChannel", + "description": "Details of an Asterisk log channel", + "properties": { + "channel": { + "type": "string", + "description": "The log channel path", + "required": true + }, + "type": { + "type": "string", + "description": "Types of logs for the log channel", + "required": true + }, + "status": { + "type": "string", + "description": "Whether or not a log type is enabled", + "required": true + }, + "configuration": { + "type": "string", + "description": "The various log levels", + "required": true + } + } + }, + "Variable": { + "id": "Variable", + "description": "The value of a channel variable", + "properties": { + "value": { + "required": true, + "type": "string", + "description": "The value of the variable requested" + } + } + }, + "ConfigTuple": { + "id": "ConfigTuple", + "description": "A key/value pair that makes up part of a configuration object.", + "properties": { + "attribute": { + "required": true, + "type": "string", + "description": "A configuration object attribute." + }, + "value": { + "required": true, + "type": "string", + "description": "The value for the attribute." + } + } + } + } +} diff --git a/codegen-data/ari_3_0_0/bridges.json b/codegen-data/ari_3_0_0/bridges.json new file mode 100644 index 00000000..03a1e7a6 --- /dev/null +++ b/codegen-data/ari_3_0_0/bridges.json @@ -0,0 +1,738 @@ +{ + "_copyright": "Copyright (C) 2012 - 2013, Digium, Inc.", + "_author": "David M. Lee, II ", + "_svn_revision": "$Revision$", + "apiVersion": "2.0.0", + "swaggerVersion": "1.1", + "basePath": "http://localhost:8088/ari", + "resourcePath": "/api-docs/bridges.{format}", + "apis": [ + { + "path": "/bridges", + "description": "Active bridges", + "operations": [ + { + "httpMethod": "GET", + "summary": "List all active bridges in Asterisk.", + "nickname": "list", + "responseClass": "List[Bridge]" + }, + { + "httpMethod": "POST", + "summary": "Create a new bridge.", + "notes": "This bridge persists until it has been shut down, or Asterisk has been shut down.", + "nickname": "create", + "responseClass": "Bridge", + "parameters": [ + { + "name": "type", + "description": "Comma separated list of bridge type attributes (mixing, holding, dtmf_events, proxy_media).", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "bridgeId", + "description": "Unique ID to give to the bridge being created.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "name", + "description": "Name to give to the bridge being created.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + } + ] + } + ] + }, + { + "path": "/bridges/{bridgeId}", + "description": "Individual bridge", + "operations": [ + { + "httpMethod": "POST", + "summary": "Create a new bridge or updates an existing one.", + "notes": "This bridge persists until it has been shut down, or Asterisk has been shut down.", + "nickname": "createWithId", + "responseClass": "Bridge", + "parameters": [ + { + "name": "type", + "description": "Comma separated list of bridge type attributes (mixing, holding, dtmf_events, proxy_media) to set.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "bridgeId", + "description": "Unique ID to give to the bridge being created.", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "name", + "description": "Set the name of the bridge.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + } + ] + }, + { + "httpMethod": "GET", + "summary": "Get bridge details.", + "nickname": "get", + "responseClass": "Bridge", + "parameters": [ + { + "name": "bridgeId", + "description": "Bridge's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Bridge not found" + } + ] + }, + { + "httpMethod": "DELETE", + "summary": "Shut down a bridge.", + "notes": "If any channels are in this bridge, they will be removed and resume whatever they were doing beforehand.", + "nickname": "destroy", + "responseClass": "void", + "parameters": [ + { + "name": "bridgeId", + "description": "Bridge's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Bridge not found" + } + ] + } + ] + }, + { + "path": "/bridges/{bridgeId}/addChannel", + "description": "Add a channel to a bridge", + "operations": [ + { + "httpMethod": "POST", + "summary": "Add a channel to a bridge.", + "nickname": "addChannel", + "responseClass": "void", + "parameters": [ + { + "name": "bridgeId", + "description": "Bridge's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "channel", + "description": "Ids of channels to add to bridge", + "paramType": "query", + "required": true, + "allowMultiple": true, + "dataType": "string" + }, + { + "name": "role", + "description": "Channel's role in the bridge", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 400, + "reason": "Channel not found" + }, + { + "code": 404, + "reason": "Bridge not found" + }, + { + "code": 409, + "reason": "Bridge not in Stasis application; Channel currently recording" + }, + { + "code": 422, + "reason": "Channel not in Stasis application" + } + ] + } + ] + }, + { + "path": "/bridges/{bridgeId}/removeChannel", + "description": "Remove a channel from a bridge", + "operations": [ + { + "httpMethod": "POST", + "summary": "Remove a channel from a bridge.", + "nickname": "removeChannel", + "responseClass": "void", + "parameters": [ + { + "name": "bridgeId", + "description": "Bridge's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "channel", + "description": "Ids of channels to remove from bridge", + "paramType": "query", + "required": true, + "allowMultiple": true, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 400, + "reason": "Channel not found" + }, + { + "code": 404, + "reason": "Bridge not found" + }, + { + "code": 409, + "reason": "Bridge not in Stasis application" + }, + { + "code": 422, + "reason": "Channel not in this bridge" + } + ] + } + ] + }, + { + "path": "/bridges/{bridgeId}/videoSource/{channelId}", + "description": "Set a channel as the video source in a multi-party bridge", + "operations": [ + { + "httpMethod": "POST", + "summary": "Set a channel as the video source in a multi-party mixing bridge. This operation has no effect on bridges with two or fewer participants.", + "nickname": "setVideoSource", + "responseClass": "void", + "parameters": [ + { + "name": "bridgeId", + "description": "Bridge's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "channelId", + "description": "Channel's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Bridge or Channel not found" + }, + { + "code": 409, + "reason": "Channel not in Stasis application" + }, + { + "code": 422, + "reason": "Channel not in this Bridge" + } + ] + } + ] + }, + { + "path": "/bridges/{bridgeId}/videoSource", + "description": "Removes any explicit video source", + "operations": [ + { + "httpMethod": "DELETE", + "summary": "Removes any explicit video source in a multi-party mixing bridge. This operation has no effect on bridges with two or fewer participants. When no explicit video source is set, talk detection will be used to determine the active video stream.", + "nickname": "clearVideoSource", + "responseClass": "void", + "parameters": [ + { + "name": "bridgeId", + "description": "Bridge's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Bridge not found" + } + ] + } + ] + }, + { + "path": "/bridges/{bridgeId}/moh", + "description": "Play music on hold to a bridge", + "operations": [ + { + "httpMethod": "POST", + "summary": "Play music on hold to a bridge or change the MOH class that is playing.", + "nickname": "startMoh", + "responseClass": "void", + "parameters": [ + { + "name": "bridgeId", + "description": "Bridge's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "mohClass", + "description": "Channel's id", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Bridge not found" + }, + { + "code": 409, + "reason": "Bridge not in Stasis application" + } + ] + }, + { + "httpMethod": "DELETE", + "summary": "Stop playing music on hold to a bridge.", + "notes": "This will only stop music on hold being played via POST bridges/{bridgeId}/moh.", + "nickname": "stopMoh", + "responseClass": "void", + "parameters": [ + { + "name": "bridgeId", + "description": "Bridge's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Bridge not found" + }, + { + "code": 409, + "reason": "Bridge not in Stasis application" + } + ] + } + ] + }, + { + "path": "/bridges/{bridgeId}/play", + "description": "Play media to the participants of a bridge", + "operations": [ + { + "httpMethod": "POST", + "summary": "Start playback of media on a bridge.", + "notes": "The media URI may be any of a number of URI's. Currently sound:, recording:, number:, digits:, characters:, and tone: URI's are supported. This operation creates a playback resource that can be used to control the playback of media (pause, rewind, fast forward, etc.)", + "nickname": "play", + "responseClass": "Playback", + "parameters": [ + { + "name": "bridgeId", + "description": "Bridge's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "media", + "description": "Media URIs to play.", + "paramType": "query", + "required": true, + "allowMultiple": true, + "dataType": "string" + }, + { + "name": "lang", + "description": "For sounds, selects language for sound.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "offsetms", + "description": "Number of milliseconds to skip before playing. Only applies to the first URI if multiple media URIs are specified.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "int", + "defaultValue": 0, + "allowableValues": { + "valueType": "RANGE", + "min": 0 + } + + }, + { + "name": "skipms", + "description": "Number of milliseconds to skip for forward/reverse operations.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "int", + "defaultValue": 3000, + "allowableValues": { + "valueType": "RANGE", + "min": 0 + } + }, + { + "name": "playbackId", + "description": "Playback Id.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Bridge not found" + }, + { + "code": 409, + "reason": "Bridge not in a Stasis application" + } + ] + } + ] + }, + { + "path": "/bridges/{bridgeId}/play/{playbackId}", + "description": "Play media to a bridge", + "operations": [ + { + "httpMethod": "POST", + "summary": "Start playback of media on a bridge.", + "notes": "The media URI may be any of a number of URI's. Currently sound:, recording:, number:, digits:, characters:, and tone: URI's are supported. This operation creates a playback resource that can be used to control the playback of media (pause, rewind, fast forward, etc.)", + "nickname": "playWithId", + "responseClass": "Playback", + "parameters": [ + { + "name": "bridgeId", + "description": "Bridge's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "playbackId", + "description": "Playback ID.", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "media", + "description": "Media URIs to play.", + "paramType": "query", + "required": true, + "allowMultiple": true, + "dataType": "string" + }, + { + "name": "lang", + "description": "For sounds, selects language for sound.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "offsetms", + "description": "Number of milliseconds to skip before playing. Only applies to the first URI if multiple media URIs are specified.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "int", + "defaultValue": 0, + "allowableValues": { + "valueType": "RANGE", + "min": 0 + } + }, + { + "name": "skipms", + "description": "Number of milliseconds to skip for forward/reverse operations.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "int", + "defaultValue": 3000, + "allowableValues": { + "valueType": "RANGE", + "min": 0 + } + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Bridge not found" + }, + { + "code": 409, + "reason": "Bridge not in a Stasis application" + } + ] + + } + ] + }, + { + "path": "/bridges/{bridgeId}/record", + "description": "Record audio on a bridge", + "operations": [ + { + "httpMethod": "POST", + "summary": "Start a recording.", + "notes": "This records the mixed audio from all channels participating in this bridge.", + "nickname": "record", + "responseClass": "LiveRecording", + "parameters": [ + { + "name": "bridgeId", + "description": "Bridge's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "name", + "description": "Recording's filename", + "paramType": "query", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "format", + "description": "Format to encode audio in", + "paramType": "query", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "maxDurationSeconds", + "description": "Maximum duration of the recording, in seconds. 0 for no limit.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "int", + "defaultValue": 0, + "allowableValues": { + "valueType": "RANGE", + "min": 0 + } + }, + { + "name": "maxSilenceSeconds", + "description": "Maximum duration of silence, in seconds. 0 for no limit.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "int", + "defaultValue": 0, + "allowableValues": { + "valueType": "RANGE", + "min": 0 + } + }, + { + "name": "ifExists", + "description": "Action to take if a recording with the same name already exists.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string", + "defaultValue": "fail", + "allowableValues": { + "valueType": "LIST", + "values": [ + "fail", + "overwrite", + "append" + ] + } + }, + { + "name": "beep", + "description": "Play beep when recording begins", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "boolean", + "defaultValue": false + }, + { + "name": "terminateOn", + "description": "DTMF input to terminate recording.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string", + "defaultValue": "none", + "allowableValues": { + "valueType": "LIST", + "values": [ + "none", + "any", + "*", + "#" + ] + } + } + ], + "errorResponses": [ + { + "code": 400, + "reason": "Invalid parameters" + }, + { + "code": 404, + "reason": "Bridge not found" + }, + { + "code": 409, + "reason": "Bridge is not in a Stasis application; A recording with the same name already exists on the system and can not be overwritten because it is in progress or ifExists=fail" + }, + { + "code": 422, + "reason": "The format specified is unknown on this system" + } + ] + } + ] + } + ], + "models": { + "Bridge": { + "id": "Bridge", + "description": "The merging of media from one or more channels.\n\nEveryone on the bridge receives the same audio.", + "properties": { + "id": { + "type": "string", + "description": "Unique identifier for this bridge", + "required": true + }, + "technology": { + "type": "string", + "description": "Name of the current bridging technology", + "required": true + }, + "bridge_type": { + "type": "string", + "description": "Type of bridge technology", + "required": true, + "allowableValues": { + "valueType": "LIST", + "values": [ + "mixing", + "holding" + ] + } + }, + "bridge_class": { + "type": "string", + "description": "Bridging class", + "required": true + }, + "creator": { + "type": "string", + "description": "Entity that created the bridge", + "required": true + }, + "name": { + "type": "string", + "description": "Name the creator gave the bridge", + "required": true + }, + "channels": { + "type": "List[string]", + "description": "Ids of channels participating in this bridge", + "required": true + }, + "video_mode": { + "type": "string", + "description": "The video mode the bridge is using. One of 'none', 'talker', or 'single'.", + "required": false + }, + "video_source_id": { + "type": "string", + "description": "The ID of the channel that is the source of video in this bridge, if one exists.", + "required": false + } + } + } + } +} diff --git a/codegen-data/ari_3_0_0/channels.json b/codegen-data/ari_3_0_0/channels.json new file mode 100644 index 00000000..602606cf --- /dev/null +++ b/codegen-data/ari_3_0_0/channels.json @@ -0,0 +1,1773 @@ +{ + "_copyright": "Copyright (C) 2012 - 2013, Digium, Inc.", + "_author": "David M. Lee, II ", + "_svn_revision": "$Revision$", + "apiVersion": "2.0.0", + "swaggerVersion": "1.1", + "basePath": "http://localhost:8088/ari", + "resourcePath": "/api-docs/channels.{format}", + "apis": [ + { + "path": "/channels", + "description": "Active channels", + "operations": [ + { + "httpMethod": "GET", + "summary": "List all active channels in Asterisk.", + "nickname": "list", + "responseClass": "List[Channel]" + }, + { + "httpMethod": "POST", + "summary": "Create a new channel (originate).", + "notes": "The new channel is created immediately and a snapshot of it returned. If a Stasis application is provided it will be automatically subscribed to the originated channel for further events and updates.", + "nickname": "originate", + "responseClass": "Channel", + "parameters": [ + { + "name": "endpoint", + "description": "Endpoint to call.", + "paramType": "query", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "extension", + "description": "The extension to dial after the endpoint answers. Mutually exclusive with 'app'.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "context", + "description": "The context to dial after the endpoint answers. If omitted, uses 'default'. Mutually exclusive with 'app'.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "priority", + "description": "The priority to dial after the endpoint answers. If omitted, uses 1. Mutually exclusive with 'app'.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "long" + }, + { + "name": "label", + "description": "The label to dial after the endpoint answers. Will supersede 'priority' if provided. Mutually exclusive with 'app'.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "app", + "description": "The application that is subscribed to the originated channel. When the channel is answered, it will be passed to this Stasis application. Mutually exclusive with 'context', 'extension', 'priority', and 'label'.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "appArgs", + "description": "The application arguments to pass to the Stasis application provided by 'app'. Mutually exclusive with 'context', 'extension', 'priority', and 'label'.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "callerId", + "description": "CallerID to use when dialing the endpoint or extension.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "timeout", + "description": "Timeout (in seconds) before giving up dialing, or -1 for no timeout.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "int", + "defaultValue": 30 + }, + { + "name": "variables", + "description": "The \"variables\" key in the body object holds variable key/value pairs to set on the channel on creation. Other keys in the body object are interpreted as query parameters. Ex. { \"endpoint\": \"SIP/Alice\", \"variables\": { \"CALLERID(name)\": \"Alice\" } }", + "paramType": "body", + "required": false, + "dataType": "containers", + "allowMultiple": false + }, + { + "name": "channelId", + "description": "The unique id to assign the channel on creation.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "otherChannelId", + "description": "The unique id to assign the second channel when using local channels.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "originator", + "description": "The unique id of the channel which is originating this one.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "formats", + "description": "The format name capability list to use if originator is not specified. Ex. \"ulaw,slin16\". Format names can be found with \"core show codecs\".", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 400, + "reason": "Invalid parameters for originating a channel." + }, + { + "code": 409, + "reason": "Channel with given unique ID already exists." + } + ] + } + ] + }, + { + "path": "/channels/create", + "description": "Create a channel and place it in a Stasis app, but do not dial the channel yet.", + "operations": [ + { + "httpMethod": "POST", + "summary": "Create channel.", + "nickname": "create", + "responseClass": "Channel", + "parameters": [ + { + "name": "endpoint", + "description": "Endpoint for channel communication", + "paramType": "query", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "app", + "description": "Stasis Application to place channel into", + "paramType": "query", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "appArgs", + "description": "The application arguments to pass to the Stasis application provided by 'app'. Mutually exclusive with 'context', 'extension', 'priority', and 'label'.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "channelId", + "description": "The unique id to assign the channel on creation.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "otherChannelId", + "description": "The unique id to assign the second channel when using local channels.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "originator", + "description": "Unique ID of the calling channel", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "formats", + "description": "The format name capability list to use if originator is not specified. Ex. \"ulaw,slin16\". Format names can be found with \"core show codecs\".", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 409, + "reason": "Channel with given unique ID already exists." + } + ] + } + ] + }, + { + "path": "/channels/{channelId}", + "description": "Active channel", + "operations": [ + { + "httpMethod": "GET", + "summary": "Channel details.", + "nickname": "get", + "responseClass": "Channel", + "parameters": [ + { + "name": "channelId", + "description": "Channel's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Channel not found" + } + ] + }, + { + "httpMethod": "POST", + "summary": "Create a new channel (originate with id).", + "notes": "The new channel is created immediately and a snapshot of it returned. If a Stasis application is provided it will be automatically subscribed to the originated channel for further events and updates.", + "nickname": "originateWithId", + "responseClass": "Channel", + "parameters": [ + { + "name": "channelId", + "description": "The unique id to assign the channel on creation.", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "endpoint", + "description": "Endpoint to call.", + "paramType": "query", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "extension", + "description": "The extension to dial after the endpoint answers. Mutually exclusive with 'app'.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "context", + "description": "The context to dial after the endpoint answers. If omitted, uses 'default'. Mutually exclusive with 'app'.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "priority", + "description": "The priority to dial after the endpoint answers. If omitted, uses 1. Mutually exclusive with 'app'.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "long" + }, + { + "name": "label", + "description": "The label to dial after the endpoint answers. Will supersede 'priority' if provided. Mutually exclusive with 'app'.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "app", + "description": "The application that is subscribed to the originated channel. When the channel is answered, it will be passed to this Stasis application. Mutually exclusive with 'context', 'extension', 'priority', and 'label'.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "appArgs", + "description": "The application arguments to pass to the Stasis application provided by 'app'. Mutually exclusive with 'context', 'extension', 'priority', and 'label'.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "callerId", + "description": "CallerID to use when dialing the endpoint or extension.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "timeout", + "description": "Timeout (in seconds) before giving up dialing, or -1 for no timeout.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "int", + "defaultValue": 30 + }, + { + "name": "variables", + "description": "The \"variables\" key in the body object holds variable key/value pairs to set on the channel on creation. Other keys in the body object are interpreted as query parameters. Ex. { \"endpoint\": \"SIP/Alice\", \"variables\": { \"CALLERID(name)\": \"Alice\" } }", + "paramType": "body", + "required": false, + "dataType": "containers", + "allowMultiple": false + }, + { + "name": "otherChannelId", + "description": "The unique id to assign the second channel when using local channels.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "originator", + "description": "The unique id of the channel which is originating this one.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "formats", + "description": "The format name capability list to use if originator is not specified. Ex. \"ulaw,slin16\". Format names can be found with \"core show codecs\".", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 400, + "reason": "Invalid parameters for originating a channel." + }, + { + "code": 409, + "reason": "Channel with given unique ID already exists." + } + ] + + }, + { + "httpMethod": "DELETE", + "summary": "Delete (i.e. hangup) a channel.", + "nickname": "hangup", + "responseClass": "void", + "parameters": [ + { + "name": "channelId", + "description": "Channel's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "reason", + "description": "Reason for hanging up the channel", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string", + "defalutValue": "normal", + "allowableValues": { + "valueType": "LIST", + "values": [ + "normal", + "busy", + "congestion", + "no_answer", + "answered_elsewhere" + ] + } + } + ], + "errorResponses": [ + { + "code": 400, + "reason": "Invalid reason for hangup provided" + }, + { + "code": 404, + "reason": "Channel not found" + } + ] + } + ] + }, + { + "path": "/channels/{channelId}/continue", + "description": "Exit application; continue execution in the dialplan", + "operations": [ + { + "httpMethod": "POST", + "summary": "Exit application; continue execution in the dialplan.", + "nickname": "continueInDialplan", + "responseClass": "void", + "parameters": [ + { + "name": "channelId", + "description": "Channel's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "context", + "description": "The context to continue to.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "extension", + "description": "The extension to continue to.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "priority", + "description": "The priority to continue to.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "int" + }, + { + "name": "label", + "description": "The label to continue to - will supersede 'priority' if both are provided.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Channel not found" + }, + { + "code": 409, + "reason": "Channel not in a Stasis application" + }, + { + "code": 412, + "reason": "Channel in invalid state" + } + ] + } + ] + }, + { + "path": "/channels/{channelId}/redirect", + "description": "Inform the channel that it should redirect itself to a different location. Note that this will almost certainly cause the channel to exit the application.", + "operations": [ + { + "httpMethod": "POST", + "summary": "Redirect the channel to a different location.", + "nickname": "redirect", + "responseClass": "void", + "parameters": [ + { + "name": "channelId", + "description": "Channel's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "endpoint", + "description": "The endpoint to redirect the channel to", + "paramType": "query", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 400, + "reason": "Endpoint parameter not provided" + }, + { + "code": 404, + "reason": "Channel or endpoint not found" + }, + { + "code": 409, + "reason": "Channel not in a Stasis application" + }, + { + "code": 422, + "reason": "Endpoint is not the same type as the channel" + }, + { + "code": 412, + "reason": "Channel in invalid state" + } + ] + } + ] + }, + { + "path": "/channels/{channelId}/answer", + "description": "Answer a channel", + "operations": [ + { + "httpMethod": "POST", + "summary": "Answer a channel.", + "nickname": "answer", + "responseClass": "void", + "parameters": [ + { + "name": "channelId", + "description": "Channel's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Channel not found" + }, + { + "code": 409, + "reason": "Channel not in a Stasis application" + }, + { + "code": 412, + "reason": "Channel in invalid state" + } + ] + } + ] + }, + { + "path": "/channels/{channelId}/ring", + "description": "Send a ringing indication to a channel", + "operations": [ + { + "httpMethod": "POST", + "summary": "Indicate ringing to a channel.", + "nickname": "ring", + "responseClass": "void", + "parameters": [ + { + "name": "channelId", + "description": "Channel's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Channel not found" + }, + { + "code": 409, + "reason": "Channel not in a Stasis application" + }, + { + "code": 412, + "reason": "Channel in invalid state" + } + ] + }, + { + "httpMethod": "DELETE", + "summary": "Stop ringing indication on a channel if locally generated.", + "nickname": "ringStop", + "responseClass": "void", + "parameters": [ + { + "name": "channelId", + "description": "Channel's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Channel not found" + }, + { + "code": 409, + "reason": "Channel not in a Stasis application" + }, + { + "code": 412, + "reason": "Channel in invalid state" + } + ] + } + ] + }, + { + "path": "/channels/{channelId}/dtmf", + "description": "Send DTMF to a channel", + "operations": [ + { + "httpMethod": "POST", + "summary": "Send provided DTMF to a given channel.", + "nickname": "sendDTMF", + "responseClass": "void", + "parameters": [ + { + "name": "channelId", + "description": "Channel's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "dtmf", + "description": "DTMF To send.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "before", + "description": "Amount of time to wait before DTMF digits (specified in milliseconds) start.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "int", + "defaultValue": 0 + }, + { + "name": "between", + "description": "Amount of time in between DTMF digits (specified in milliseconds).", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "int", + "defaultValue": 100 + }, + { + "name": "duration", + "description": "Length of each DTMF digit (specified in milliseconds).", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "int", + "defaultValue": 100 + }, + { + "name": "after", + "description": "Amount of time to wait after DTMF digits (specified in milliseconds) end.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "int", + "defaultValue": 0 + } + ], + "errorResponses": [ + { + "code": 400, + "reason": "DTMF is required" + }, + { + "code": 404, + "reason": "Channel not found" + }, + { + "code": 409, + "reason": "Channel not in a Stasis application" + }, + { + "code": 412, + "reason": "Channel in invalid state" + } + ] + } + ] + }, + { + "path": "/channels/{channelId}/mute", + "description": "Mute a channel", + "operations": [ + { + "httpMethod": "POST", + "summary": "Mute a channel.", + "nickname": "mute", + "responseClass": "void", + "parameters": [ + { + "name": "channelId", + "description": "Channel's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "direction", + "description": "Direction in which to mute audio", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string", + "defaultValue": "both", + "allowableValues": { + "valueType": "LIST", + "values": [ + "both", + "in", + "out" + ] + } + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Channel not found" + }, + { + "code": 409, + "reason": "Channel not in a Stasis application" + }, + { + "code": 412, + "reason": "Channel in invalid state" + } + ] + }, + { + "httpMethod": "DELETE", + "summary": "Unmute a channel.", + "nickname": "unmute", + "responseClass": "void", + "parameters": [ + { + "name": "channelId", + "description": "Channel's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "direction", + "description": "Direction in which to unmute audio", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string", + "defaultValue": "both", + "allowableValues": { + "valueType": "LIST", + "values": [ + "both", + "in", + "out" + ] + } + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Channel not found" + }, + { + "code": 409, + "reason": "Channel not in a Stasis application" + }, + { + "code": 412, + "reason": "Channel in invalid state" + } + ] + } + ] + }, + { + "path": "/channels/{channelId}/hold", + "description": "Put a channel on hold", + "operations": [ + { + "httpMethod": "POST", + "summary": "Hold a channel.", + "nickname": "hold", + "responseClass": "void", + "parameters": [ + { + "name": "channelId", + "description": "Channel's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Channel not found" + }, + { + "code": 409, + "reason": "Channel not in a Stasis application" + }, + { + "code": 412, + "reason": "Channel in invalid state" + } + ] + }, + { + "httpMethod": "DELETE", + "summary": "Remove a channel from hold.", + "nickname": "unhold", + "responseClass": "void", + "parameters": [ + { + "name": "channelId", + "description": "Channel's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Channel not found" + }, + { + "code": 409, + "reason": "Channel not in a Stasis application" + }, + { + "code": 412, + "reason": "Channel in invalid state" + } + ] + } + ] + }, + { + "path": "/channels/{channelId}/moh", + "description": "Play music on hold to a channel", + "operations": [ + { + "httpMethod": "POST", + "summary": "Play music on hold to a channel.", + "notes": "Using media operations such as /play on a channel playing MOH in this manner will suspend MOH without resuming automatically. If continuing music on hold is desired, the stasis application must reinitiate music on hold.", + "nickname": "startMoh", + "responseClass": "void", + "parameters": [ + { + "name": "channelId", + "description": "Channel's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "mohClass", + "description": "Music on hold class to use", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Channel not found" + }, + { + "code": 409, + "reason": "Channel not in a Stasis application" + }, + { + "code": 412, + "reason": "Channel in invalid state" + } + ] + }, + { + "httpMethod": "DELETE", + "summary": "Stop playing music on hold to a channel.", + "nickname": "stopMoh", + "responseClass": "void", + "parameters": [ + { + "name": "channelId", + "description": "Channel's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Channel not found" + }, + { + "code": 409, + "reason": "Channel not in a Stasis application" + }, + { + "code": 412, + "reason": "Channel in invalid state" + } + ] + } + ] + }, + { + "path": "/channels/{channelId}/silence", + "description": "Play silence to a channel", + "operations": [ + { + "httpMethod": "POST", + "summary": "Play silence to a channel.", + "notes": "Using media operations such as /play on a channel playing silence in this manner will suspend silence without resuming automatically.", + "nickname": "startSilence", + "responseClass": "void", + "parameters": [ + { + "name": "channelId", + "description": "Channel's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Channel not found" + }, + { + "code": 409, + "reason": "Channel not in a Stasis application" + }, + { + "code": 412, + "reason": "Channel in invalid state" + } + ] + }, + { + "httpMethod": "DELETE", + "summary": "Stop playing silence to a channel.", + "nickname": "stopSilence", + "responseClass": "void", + "parameters": [ + { + "name": "channelId", + "description": "Channel's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Channel not found" + }, + { + "code": 409, + "reason": "Channel not in a Stasis application" + }, + { + "code": 412, + "reason": "Channel in invalid state" + } + ] + } + ] + }, + { + "path": "/channels/{channelId}/play", + "description": "Play media to a channel", + "operations": [ + { + "httpMethod": "POST", + "summary": "Start playback of media.", + "notes": "The media URI may be any of a number of URI's. Currently sound:, recording:, number:, digits:, characters:, and tone: URI's are supported. This operation creates a playback resource that can be used to control the playback of media (pause, rewind, fast forward, etc.)", + "nickname": "play", + "responseClass": "Playback", + "parameters": [ + { + "name": "channelId", + "description": "Channel's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "media", + "description": "Media URIs to play.", + "paramType": "query", + "required": true, + "allowMultiple": true, + "dataType": "string" + }, + { + "name": "lang", + "description": "For sounds, selects language for sound.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "offsetms", + "description": "Number of milliseconds to skip before playing. Only applies to the first URI if multiple media URIs are specified.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "int" + }, + { + "name": "skipms", + "description": "Number of milliseconds to skip for forward/reverse operations.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "int", + "defaultValue": 3000 + }, + { + "name": "playbackId", + "description": "Playback ID.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Channel not found" + }, + { + "code": 409, + "reason": "Channel not in a Stasis application" + }, + { + "code": 412, + "reason": "Channel in invalid state" + } + ] + } + ] + }, + { + "path": "/channels/{channelId}/play/{playbackId}", + "description": "Play media to a channel", + "operations": [ + { + "httpMethod": "POST", + "summary": "Start playback of media and specify the playbackId.", + "notes": "The media URI may be any of a number of URI's. Currently sound:, recording:, number:, digits:, characters:, and tone: URI's are supported. This operation creates a playback resource that can be used to control the playback of media (pause, rewind, fast forward, etc.)", + "nickname": "playWithId", + "responseClass": "Playback", + "parameters": [ + { + "name": "channelId", + "description": "Channel's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "playbackId", + "description": "Playback ID.", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "media", + "description": "Media URIs to play.", + "paramType": "query", + "required": true, + "allowMultiple": true, + "dataType": "string" + }, + { + "name": "lang", + "description": "For sounds, selects language for sound.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "offsetms", + "description": "Number of milliseconds to skip before playing. Only applies to the first URI if multiple media URIs are specified.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "int" + }, + { + "name": "skipms", + "description": "Number of milliseconds to skip for forward/reverse operations.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "int", + "defaultValue": 3000 + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Channel not found" + }, + { + "code": 409, + "reason": "Channel not in a Stasis application" + }, + { + "code": 412, + "reason": "Channel in invalid state" + } + ] + } + ] + }, + { + "path": "/channels/{channelId}/record", + "description": "Record audio from a channel", + "operations": [ + { + "httpMethod": "POST", + "summary": "Start a recording.", + "notes": "Record audio from a channel. Note that this will not capture audio sent to the channel. The bridge itself has a record feature if that's what you want.", + "nickname": "record", + "responseClass": "LiveRecording", + "parameters": [ + { + "name": "channelId", + "description": "Channel's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "name", + "description": "Recording's filename", + "paramType": "query", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "format", + "description": "Format to encode audio in", + "paramType": "query", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "maxDurationSeconds", + "description": "Maximum duration of the recording, in seconds. 0 for no limit", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "int", + "defaultValue": 0, + "allowableValues": { + "valueType": "RANGE", + "min": 0 + } + }, + { + "name": "maxSilenceSeconds", + "description": "Maximum duration of silence, in seconds. 0 for no limit", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "int", + "defaultValue": 0, + "allowableValues": { + "valueType": "RANGE", + "min": 0 + } + }, + { + "name": "ifExists", + "description": "Action to take if a recording with the same name already exists.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string", + "defaultValue": "fail", + "allowableValues": { + "valueType": "LIST", + "values": [ + "fail", + "overwrite", + "append" + ] + } + }, + { + "name": "beep", + "description": "Play beep when recording begins", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "boolean", + "defaultValue": false + }, + { + "name": "terminateOn", + "description": "DTMF input to terminate recording", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string", + "defaultValue": "none", + "allowableValues": { + "valueType": "LIST", + "values": [ + "none", + "any", + "*", + "#" + ] + } + } + ], + "errorResponses": [ + { + "code": 400, + "reason": "Invalid parameters" + }, + { + "code": 404, + "reason": "Channel not found" + }, + { + "code": 409, + "reason": "Channel is not in a Stasis application; the channel is currently bridged with other hcannels; A recording with the same name already exists on the system and can not be overwritten because it is in progress or ifExists=fail" + }, + { + "code": 422, + "reason": "The format specified is unknown on this system" + } + ] + } + ] + }, + { + "path": "/channels/{channelId}/variable", + "description": "Variables on a channel", + "operations": [ + { + "httpMethod": "GET", + "summary": "Get the value of a channel variable or function.", + "nickname": "getChannelVar", + "responseClass": "Variable", + "parameters": [ + { + "name": "channelId", + "description": "Channel's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "variable", + "description": "The channel variable or function to get", + "paramType": "query", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 400, + "reason": "Missing variable parameter." + }, + { + "code": 404, + "reason": "Channel or variable not found" + }, + { + "code": 409, + "reason": "Channel not in a Stasis application" + } + ] + }, + { + "httpMethod": "POST", + "summary": "Set the value of a channel variable or function.", + "nickname": "setChannelVar", + "responseClass": "void", + "parameters": [ + { + "name": "channelId", + "description": "Channel's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "variable", + "description": "The channel variable or function to set", + "paramType": "query", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "value", + "description": "The value to set the variable to", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 400, + "reason": "Missing variable parameter." + }, + { + "code": 404, + "reason": "Channel not found" + }, + { + "code": 409, + "reason": "Channel not in a Stasis application" + } + ] + } + ] + }, + { + "path": "/channels/{channelId}/snoop", + "description": "Snoop (spy/whisper) on a channel", + "operations": [ + { + "httpMethod": "POST", + "summary": "Start snooping.", + "notes": "Snoop (spy/whisper) on a specific channel.", + "nickname": "snoopChannel", + "responseClass": "Channel", + "parameters": [ + { + "name": "channelId", + "description": "Channel's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "spy", + "description": "Direction of audio to spy on", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string", + "defaultValue": "none", + "allowableValues": { + "valueType": "LIST", + "values": [ + "none", + "both", + "out", + "in" + ] + } + }, + { + "name": "whisper", + "description": "Direction of audio to whisper into", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string", + "defaultValue": "none", + "allowableValues": { + "valueType": "LIST", + "values": [ + "none", + "both", + "out", + "in" + ] + } + }, + { + "name": "app", + "description": "Application the snooping channel is placed into", + "paramType": "query", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "appArgs", + "description": "The application arguments to pass to the Stasis application", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "snoopId", + "description": "Unique ID to assign to snooping channel", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 400, + "reason": "Invalid parameters" + }, + { + "code": 404, + "reason": "Channel not found" + } + ] + } + ] + }, + { + "path": "/channels/{channelId}/snoop/{snoopId}", + "description": "Snoop (spy/whisper) on a channel", + "operations": [ + { + "httpMethod": "POST", + "summary": "Start snooping.", + "notes": "Snoop (spy/whisper) on a specific channel.", + "nickname": "snoopChannelWithId", + "responseClass": "Channel", + "parameters": [ + { + "name": "channelId", + "description": "Channel's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "snoopId", + "description": "Unique ID to assign to snooping channel", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "spy", + "description": "Direction of audio to spy on", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string", + "defaultValue": "none", + "allowableValues": { + "valueType": "LIST", + "values": [ + "none", + "both", + "out", + "in" + ] + } + }, + { + "name": "whisper", + "description": "Direction of audio to whisper into", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string", + "defaultValue": "none", + "allowableValues": { + "valueType": "LIST", + "values": [ + "none", + "both", + "out", + "in" + ] + } + }, + { + "name": "app", + "description": "Application the snooping channel is placed into", + "paramType": "query", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "appArgs", + "description": "The application arguments to pass to the Stasis application", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 400, + "reason": "Invalid parameters" + }, + { + "code": 404, + "reason": "Channel not found" + } + ] + } + ] + }, + { + "path": "/channels/{channelId}/dial", + "description": "Dial a channel", + "operations": [ + { + "httpMethod": "POST", + "summary": "Dial a created channel.", + "nickname": "dial", + "responseClass": "void", + "parameters": [ + { + "name": "channelId", + "description": "Channel's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "caller", + "description": "Channel ID of caller", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "timeout", + "description": "Dial timeout", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "int", + "defaultValue": 0, + "allowableValues": { + "valueType": "RANGE", + "min": 0 + } + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Channel cannot be found." + }, + { + "code": 409, + "reason": "Channel cannot be dialed." + } + ] + } + ] + } + ], + "models": { + "Dialed": { + "id": "Dialed", + "description": "Dialed channel information.", + "properties": {} + }, + "DialplanCEP": { + "id": "DialplanCEP", + "description": "Dialplan location (context/extension/priority)", + "properties": { + "context": { + "required": true, + "type": "string", + "description": "Context in the dialplan" + }, + "exten": { + "required": true, + "type": "string", + "description": "Extension in the dialplan" + }, + "priority": { + "required": true, + "type": "long", + "description": "Priority in the dialplan" + } + } + }, + "CallerID": { + "id": "CallerID", + "description": "Caller identification", + "properties": { + "name": { + "required": true, + "type": "string" + }, + "number": { + "required": true, + "type": "string" + } + } + }, + "Channel": { + "id": "Channel", + "description": "A specific communication connection between Asterisk and an Endpoint.", + "properties": { + "id": { + "required": true, + "type": "string", + "description": "Unique identifier of the channel.\n\nThis is the same as the Uniqueid field in AMI." + }, + "name": { + "required": true, + "type": "string", + "description": "Name of the channel (i.e. SIP/foo-0000a7e3)" + }, + "state": { + "required": true, + "type": "string", + "allowableValues": { + "valueType": "LIST", + "values": [ + "Down", + "Rsrved", + "OffHook", + "Dialing", + "Ring", + "Ringing", + "Up", + "Busy", + "Dialing Offhook", + "Pre-ring", + "Unknown" + ] + } + }, + "caller": { + "required": true, + "type": "CallerID" + }, + "connected": { + "required": true, + "type": "CallerID" + }, + "accountcode": { + "required": true, + "type": "string" + }, + "dialplan": { + "required": true, + "type": "DialplanCEP", + "description": "Current location in the dialplan" + }, + "creationtime": { + "required": true, + "type": "Date", + "description": "Timestamp when channel was created" + }, + "language": { + "required": true, + "type": "string", + "description": "The default spoken language" + }, + "channelvars": { + "required": false, + "type": "object", + "description": "Channel variables" + } + } + } + } +} diff --git a/codegen-data/ari_3_0_0/deviceStates.json b/codegen-data/ari_3_0_0/deviceStates.json new file mode 100644 index 00000000..94d5b93c --- /dev/null +++ b/codegen-data/ari_3_0_0/deviceStates.json @@ -0,0 +1,151 @@ +{ + "_copyright": "Copyright (C) 2012 - 2013, Digium, Inc.", + "_author": "Kevin Harwell ", + "_svn_revision": "$Revision$", + "apiVersion": "2.0.0", + "swaggerVersion": "1.1", + "basePath": "http://localhost:8088/ari", + "resourcePath": "/api-docs/deviceStates.{format}", + "apis": [ + { + "path": "/deviceStates", + "description": "Device states", + "operations": [ + { + "httpMethod": "GET", + "summary": "List all ARI controlled device states.", + "nickname": "list", + "responseClass": "List[DeviceState]" + } + ] + }, + { + "path": "/deviceStates/{deviceName}", + "description": "Device state", + "operations": [ + { + "httpMethod": "GET", + "summary": "Retrieve the current state of a device.", + "nickname": "get", + "responseClass": "DeviceState", + "parameters": [ + { + "name": "deviceName", + "description": "Name of the device", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ] + }, + { + "httpMethod": "PUT", + "summary": "Change the state of a device controlled by ARI. (Note - implicitly creates the device state).", + "nickname": "update", + "responseClass": "void", + "parameters": [ + { + "name": "deviceName", + "description": "Name of the device", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "deviceState", + "description": "Device state value", + "paramType": "query", + "required": true, + "allowMultiple": false, + "dataType": "string", + "allowableValues": { + "valueType": "LIST", + "values": [ + "NOT_INUSE", + "INUSE", + "BUSY", + "INVALID", + "UNAVAILABLE", + "RINGING", + "RINGINUSE", + "ONHOLD" + ] + } + + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Device name is missing" + }, + { + "code": 409, + "reason": "Uncontrolled device specified" + } + ] + }, + { + "httpMethod": "DELETE", + "summary": "Destroy a device-state controlled by ARI.", + "nickname": "delete", + "responseClass": "void", + "parameters": [ + { + "name": "deviceName", + "description": "Name of the device", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Device name is missing" + }, + { + "code": 409, + "reason": "Uncontrolled device specified" + } + ] + } + ] + } + ], + "models": { + "DeviceState": { + "id": "DeviceState", + "description": "Represents the state of a device.", + "properties": { + "name": { + "type": "string", + "description": "Name of the device.", + "required": true + }, + "state": { + "type": "string", + "description": "Device's state", + "required": true, + "allowableValues": { + "valueType": "LIST", + "values": [ + "UNKNOWN", + "NOT_INUSE", + "INUSE", + "BUSY", + "INVALID", + "UNAVAILABLE", + "RINGING", + "RINGINUSE", + "ONHOLD" + ] + } + } + } + } + } +} diff --git a/codegen-data/ari_3_0_0/endpoints.json b/codegen-data/ari_3_0_0/endpoints.json new file mode 100644 index 00000000..264c0eb2 --- /dev/null +++ b/codegen-data/ari_3_0_0/endpoints.json @@ -0,0 +1,279 @@ +{ + "_copyright": "Copyright (C) 2012 - 2013, Digium, Inc.", + "_author": "David M. Lee, II ", + "_svn_revision": "$Revision$", + "apiVersion": "2.0.0", + "swaggerVersion": "1.1", + "basePath": "http://localhost:8088/ari", + "resourcePath": "/api-docs/endpoints.{format}", + "apis": [ + { + "path": "/endpoints", + "description": "Asterisk endpoints", + "operations": [ + { + "httpMethod": "GET", + "summary": "List all endpoints.", + "nickname": "list", + "responseClass": "List[Endpoint]" + } + ] + }, + { + "path": "/endpoints/sendMessage", + "description": "Send a message to some technology URI or endpoint.", + "operations": [ + { + "httpMethod": "PUT", + "summary": "Send a message to some technology URI or endpoint.", + "nickname": "sendMessage", + "responseClass": "void", + "parameters": [ + { + "name": "to", + "description": "The endpoint resource or technology specific URI to send the message to. Valid resources are sip, pjsip, and xmpp.", + "paramType": "query", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "from", + "description": "The endpoint resource or technology specific identity to send this message from. Valid resources are sip, pjsip, and xmpp.", + "paramType": "query", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "body", + "description": "The body of the message", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "variables", + "descriptioni": "The \"variables\" key in the body object holds technology specific key/value pairs to append to the message. These can be interpreted and used by the various resource types; for example, pjsip and sip resource types will add the key/value pairs as SIP headers,", + "paramType": "body", + "required": false, + "dataType": "containers", + "allowMultiple": false + } + ], + "errorResponses": [ + { + "code": 400, + "reason": "Invalid parameters for sending a message." + }, + { + "code": 404, + "reason": "Endpoint not found" + } + ] + } + ] + }, + { + "path": "/endpoints/{tech}", + "description": "Asterisk endpoints", + "operations": [ + { + "httpMethod": "GET", + "summary": "List available endoints for a given endpoint technology.", + "nickname": "listByTech", + "responseClass": "List[Endpoint]", + "parameters": [ + { + "name": "tech", + "description": "Technology of the endpoints (sip,iax2,...)", + "paramType": "path", + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Endpoints not found" + } + ] + } + ] + }, + { + "path": "/endpoints/{tech}/{resource}", + "description": "Single endpoint", + "operations": [ + { + "httpMethod": "GET", + "summary": "Details for an endpoint.", + "nickname": "get", + "responseClass": "Endpoint", + "parameters": [ + { + "name": "tech", + "description": "Technology of the endpoint", + "paramType": "path", + "dataType": "string" + }, + { + "name": "resource", + "description": "ID of the endpoint", + "paramType": "path", + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 400, + "reason": "Invalid parameters for sending a message." + }, + { + "code": 404, + "reason": "Endpoints not found" + } + ] + } + ] + }, + { + "path": "/endpoints/{tech}/{resource}/sendMessage", + "description": "Send a message to some endpoint in a technology.", + "operations": [ + { + "httpMethod": "PUT", + "summary": "Send a message to some endpoint in a technology.", + "nickname": "sendMessageToEndpoint", + "responseClass": "void", + "parameters": [ + { + "name": "tech", + "description": "Technology of the endpoint", + "paramType": "path", + "dataType": "string" + }, + { + "name": "resource", + "description": "ID of the endpoint", + "paramType": "path", + "dataType": "string" + }, + { + "name": "from", + "description": "The endpoint resource or technology specific identity to send this message from. Valid resources are sip, pjsip, and xmpp.", + "paramType": "query", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "body", + "description": "The body of the message", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "variables", + "descriptioni": "The \"variables\" key in the body object holds technology specific key/value pairs to append to the message. These can be interpreted and used by the various resource types; for example, pjsip and sip resource types will add the key/value pairs as SIP headers,", + "paramType": "body", + "required": false, + "dataType": "containers", + "allowMultiple": false + } + ], + "errorResponses": [ + { + "code": 400, + "reason": "Invalid parameters for sending a message." + }, + { + "code": 404, + "reason": "Endpoint not found" + } + ] + } + ] + } + ], + "models": { + "Endpoint": { + "id": "Endpoint", + "description": "An external device that may offer/accept calls to/from Asterisk.\n\nUnlike most resources, which have a single unique identifier, an endpoint is uniquely identified by the technology/resource pair.", + "properties": { + "technology": { + "type": "string", + "description": "Technology of the endpoint", + "required": true + }, + "resource": { + "type": "string", + "description": "Identifier of the endpoint, specific to the given technology.", + "required": true + }, + "state": { + "type": "string", + "description": "Endpoint's state", + "required": false, + "allowableValues": { + "valueType": "LIST", + "values": [ + "unknown", + "offline", + "online" + ] + } + }, + "channel_ids": { + "type": "List[string]", + "description": "Id's of channels associated with this endpoint", + "required": true + } + } + }, + "TextMessageVariable": { + "id": "TextMessageVariable", + "description": "A key/value pair variable in a text message.", + "properties": { + "key": { + "type": "string", + "description": "A unique key identifying the variable.", + "required": true + }, + "value": { + "type": "string", + "description": "The value of the variable.", + "required": true + } + } + }, + "TextMessage": { + "id": "TextMessage", + "description": "A text message.", + "properties": { + "from": { + "type": "string", + "description": "A technology specific URI specifying the source of the message. For sip and pjsip technologies, any SIP URI can be specified. For xmpp, the URI must correspond to the client connection being used to send the message.", + "required": true + }, + "to": { + "type": "string", + "description": "A technology specific URI specifying the destination of the message. Valid technologies include sip, pjsip, and xmp. The destination of a message should be an endpoint.", + "required": true + }, + "body": { + "type": "string", + "description": "The text of the message.", + "required": true + }, + "variables": { + "type": "List[TextMessageVariable]", + "description": "Technology specific key/value pairs associated with the message.", + "required": false + } + } + } + } +} diff --git a/codegen-data/ari_3_0_0/events.json b/codegen-data/ari_3_0_0/events.json new file mode 100644 index 00000000..9ebbac06 --- /dev/null +++ b/codegen-data/ari_3_0_0/events.json @@ -0,0 +1,895 @@ +{ + "_copyright": "Copyright (C) 2012 - 2013, Digium, Inc.", + "_author": "David M. Lee, II ", + "_svn_revision": "$Revision$", + "apiVersion": "2.0.0", + "swaggerVersion": "1.2", + "basePath": "http://localhost:8088/ari", + "resourcePath": "/api-docs/events.{format}", + "apis": [ + { + "path": "/events", + "description": "Events from Asterisk to applications", + "operations": [ + { + "httpMethod": "GET", + "upgrade": "websocket", + "websocketProtocol": "ari", + "summary": "WebSocket connection for events.", + "nickname": "eventWebsocket", + "responseClass": "Message", + "parameters": [ + { + "name": "app", + "description": "Applications to subscribe to.", + "paramType": "query", + "required": true, + "allowMultiple": true, + "dataType": "string" + }, + { + "name": "subscribeAll", + "description": "Subscribe to all Asterisk events. If provided, the applications listed will be subscribed to all events, effectively disabling the application specific subscriptions. Default is 'false'.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "boolean" + } + ] + } + ] + }, + { + "path": "/events/user/{eventName}", + "description": "Stasis application user events", + "operations": [ + { + "httpMethod": "POST", + "summary": "Generate a user event.", + "nickname": "userEvent", + "responseClass": "void", + "parameters": [ + { + "name": "eventName", + "description": "Event name", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "application", + "description": "The name of the application that will receive this event", + "paramType": "query", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "source", + "description": "URI for event source (channel:{channelId}, bridge:{bridgeId}, endpoint:{tech}/{resource}, deviceState:{deviceName}", + "paramType": "query", + "required": false, + "allowMultiple": true, + "dataType": "string" + }, + { + "name": "variables", + "description": "The \"variables\" key in the body object holds custom key/value pairs to add to the user event. Ex. { \"variables\": { \"key\": \"value\" } }", + "paramType": "body", + "required": false, + "allowMultiple": false, + "dataType": "containers" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Application does not exist." + }, + { + "code": 422, + "reason": "Event source not found." + }, + { + "code": 400, + "reason": "Invalid even tsource URI or userevent data." + } + ] + } + ] + } + ], + "models": { + "Message": { + "id": "Message", + "description": "Base type for errors and events", + "discriminator": "type", + "properties": { + "type": { + "type": "string", + "required": true, + "description": "Indicates the type of this message." + }, + "asterisk_id": { + "type": "string", + "required": false, + "description": "The unique ID for the Asterisk instance that raised this event." + } + }, + "subTypes": [ + "MissingParams", + "Event" + ] + }, + "MissingParams": { + "id": "MissingParams", + "description": "Error event sent when required params are missing.", + "properties": { + "params": { + "required": true, + "type": "List[string]", + "description": "A list of the missing parameters" + } + } + }, + "Event": { + "id": "Event", + "description": "Base type for asynchronous events from Asterisk.", + "properties": { + "application": { + "type": "string", + "description": "Name of the application receiving the event.", + "required": true + }, + "timestamp": { + "type": "Date", + "description": "Time at which this event was created.", + "required": false + } + }, + "subTypes": [ + "DeviceStateChanged", + "PlaybackStarted", + "PlaybackContinuing", + "PlaybackFinished", + "RecordingStarted", + "RecordingFinished", + "RecordingFailed", + "ApplicationReplaced", + "BridgeCreated", + "BridgeDestroyed", + "BridgeMerged", + "BridgeBlindTransfer", + "BridgeAttendedTransfer", + "BridgeVideoSourceChanged", + "ChannelCreated", + "ChannelDestroyed", + "ChannelEnteredBridge", + "ChannelLeftBridge", + "ChannelStateChange", + "ChannelDtmfReceived", + "ChannelDialplan", + "ChannelCallerId", + "ChannelUserevent", + "ChannelHangupRequest", + "ChannelVarset", + "ChannelTalkingStarted", + "ChannelTalkingFinished", + "ChannelHold", + "ChannelUnhold", + "ContactStatusChange", + "EndpointStateChange", + "Dial", + "StasisEnd", + "StasisStart", + "TextMessageReceived", + "ChannelConnectedLine", + "PeerStatusChange" + ] + }, + "ContactInfo": { + "id": "ContactInfo", + "description": "Detailed information about a contact on an endpoint.", + "properties": { + "uri": { + "type": "string", + "description": "The location of the contact.", + "required": true + }, + "contact_status": { + "type": "string", + "description": "The current status of the contact.", + "required": true, + "allowableValues": { + "valueType": "LIST", + "values": [ + "Unreachable", + "Reachable", + "Unknown", + "Created", + "Removed" + ] + } + }, + "aor": { + "type": "string", + "description": "The Address of Record this contact belongs to.", + "required": true + }, + "roundtrip_usec": { + "type": "string", + "description": "Current round trip time, in microseconds, for the contact.", + "required": false + } + } + }, + "Peer": { + "id": "Peer", + "description": "Detailed information about a remote peer that communicates with Asterisk.", + "properties": { + "peer_status": { + "type": "string", + "description": "The current state of the peer. Note that the values of the status are dependent on the underlying peer technology.", + "required": true + }, + "cause": { + "type": "string", + "description": "An optional reason associated with the change in peer_status.", + "required": false + }, + "address": { + "type": "string", + "description": "The IP address of the peer.", + "required": false + }, + "port": { + "type": "string", + "description": "The port of the peer.", + "required": false + }, + "time": { + "type": "string", + "description": "The last known time the peer was contacted.", + "required": false + } + } + }, + "DeviceStateChanged": { + "id": "DeviceStateChanged", + "description": "Notification that a device state has changed.", + "properties": { + "device_state": { + "type": "DeviceState", + "description": "Device state object", + "required": true + } + } + }, + "PlaybackStarted": { + "id": "PlaybackStarted", + "description": "Event showing the start of a media playback operation.", + "properties": { + "playback": { + "type": "Playback", + "description": "Playback control object", + "required": true + } + } + }, + "PlaybackContinuing": { + "id": "PlaybackContinuing", + "description": "Event showing the continuation of a media playback operation from one media URI to the next in the list.", + "properties": { + "playback": { + "type": "Playback", + "description": "Playback control object", + "required": true + } + } + }, + "PlaybackFinished": { + "id": "PlaybackFinished", + "description": "Event showing the completion of a media playback operation.", + "properties": { + "playback": { + "type": "Playback", + "description": "Playback control object", + "required": true + } + } + }, + "RecordingStarted": { + "id": "RecordingStarted", + "description": "Event showing the start of a recording operation.", + "properties": { + "recording": { + "type": "LiveRecording", + "description": "Recording control object", + "required": true + } + } + }, + "RecordingFinished": { + "id": "RecordingFinished", + "description": "Event showing the completion of a recording operation.", + "properties": { + "recording": { + "type": "LiveRecording", + "description": "Recording control object", + "required": true + } + } + }, + "RecordingFailed": { + "id": "RecordingFailed", + "description": "Event showing failure of a recording operation.", + "properties": { + "recording": { + "type": "LiveRecording", + "description": "Recording control object", + "required": true + } + } + }, + "ApplicationReplaced": { + "id": "ApplicationReplaced", + "description": "Notification that another WebSocket has taken over for an application.\n\nAn application may only be subscribed to by a single WebSocket at a time. If multiple WebSockets attempt to subscribe to the same application, the newer WebSocket wins, and the older one receives this event.", + "properties": {} + }, + "BridgeCreated": { + "id": "BridgeCreated", + "description": "Notification that a bridge has been created.", + "properties": { + "bridge": { + "required": true, + "type": "Bridge" + } + } + }, + "BridgeDestroyed": { + "id": "BridgeDestroyed", + "description": "Notification that a bridge has been destroyed.", + "properties": { + "bridge": { + "required": true, + "type": "Bridge" + } + } + }, + "BridgeMerged": { + "id": "BridgeMerged", + "description": "Notification that one bridge has merged into another.", + "properties": { + "bridge": { + "required": true, + "type": "Bridge" + }, + "bridge_from": { + "required": true, + "type": "Bridge" + } + } + }, + "BridgeVideoSourceChanged": { + "id": "BridgeVideoSourceChanged", + "description": "Notification that the source of video in a bridge has changed.", + "properties": { + "bridge": { + "required": true, + "type": "Bridge" + }, + "old_video_source_id": { + "required": false, + "type": "string" + } + } + }, + "BridgeBlindTransfer": { + "id": "BridgeBlindTransfer", + "description": "Notification that a blind transfer has occurred.", + "properties": { + "channel": { + "description": "The channel performing the blind transfer", + "required": true, + "type": "Channel" + }, + "replace_channel": { + "description": "The channel that is replacing transferer when the transferee(s) can not be transferred directly", + "required": false, + "type": "Channel" + }, + "transferee": { + "description": "The channel that is being transferred", + "required": false, + "type": "Channel" + }, + "exten": { + "description": "The extension transferred to", + "required": true, + "type": "string" + }, + "context": { + "description": "The context transferred to", + "required": true, + "type": "string" + }, + "result": { + "description": "The result of the transfer attempt", + "required": true, + "type": "string" + }, + "is_external": { + "description": "Whether the transfer was externally initiated or not", + "required": true, + "type": "boolean" + }, + "bridge": { + "description": "The bridge being transferred", + "type": "Bridge" + } + } + }, + "BridgeAttendedTransfer": { + "id": "BridgeAttendedTransfer", + "description": "Notification that an attended transfer has occurred.", + "properties": { + "transferer_first_leg": { + "description": "First leg of the transferer", + "required": true, + "type": "Channel" + }, + "transferer_second_leg": { + "description": "Second leg of the transferer", + "required": true, + "type": "Channel" + }, + "replace_channel": { + "description": "The channel that is replacing transferer_first_leg in the swap", + "required": false, + "type": "Channel" + }, + "transferee": { + "description": "The channel that is being transferred", + "required": false, + "type": "Channel" + }, + "transfer_target": { + "description": "The channel that is being transferred to", + "required": false, + "type": "Channel" + }, + "result": { + "description": "The result of the transfer attempt", + "required": true, + "type": "string" + }, + "is_external": { + "description": "Whether the transfer was externally initiated or not", + "required": true, + "type": "boolean" + }, + "transferer_first_leg_bridge": { + "description": "Bridge the transferer first leg is in", + "type": "Bridge" + }, + "transferer_second_leg_bridge": { + "description": "Bridge the transferer second leg is in", + "type": "Bridge" + }, + "destination_type": { + "description": "How the transfer was accomplished", + "required": true, + "type": "string" + }, + "destination_bridge": { + "description": "Bridge that survived the merge result", + "type": "string" + }, + "destination_application": { + "description": "Application that has been transferred into", + "type": "string" + }, + "destination_link_first_leg": { + "description": "First leg of a link transfer result", + "type": "Channel" + }, + "destination_link_second_leg": { + "description": "Second leg of a link transfer result", + "type": "Channel" + }, + "destination_threeway_channel": { + "description": "Transferer channel that survived the threeway result", + "type": "Channel" + }, + "destination_threeway_bridge": { + "description": "Bridge that survived the threeway result", + "type": "Bridge" + } + } + }, + "ChannelCreated": { + "id": "ChannelCreated", + "description": "Notification that a channel has been created.", + "properties": { + "channel": { + "required": true, + "type": "Channel" + } + } + }, + "ChannelDestroyed": { + "id": "ChannelDestroyed", + "description": "Notification that a channel has been destroyed.", + "properties": { + "cause": { + "required": true, + "description": "Integer representation of the cause of the hangup", + "type": "int" + }, + "cause_txt": { + "required": true, + "description": "Text representation of the cause of the hangup", + "type": "string" + }, + "channel": { + "required": true, + "type": "Channel" + } + } + }, + "ChannelEnteredBridge": { + "id": "ChannelEnteredBridge", + "description": "Notification that a channel has entered a bridge.", + "properties": { + "bridge": { + "required": true, + "type": "Bridge" + }, + "channel": { + "type": "Channel" + } + } + }, + "ChannelLeftBridge": { + "id": "ChannelLeftBridge", + "description": "Notification that a channel has left a bridge.", + "properties": { + "bridge": { + "required": true, + "type": "Bridge" + }, + "channel": { + "required": true, + "type": "Channel" + } + } + }, + "ChannelStateChange": { + "id": "ChannelStateChange", + "description": "Notification of a channel's state change.", + "properties": { + "channel": { + "required": true, + "type": "Channel" + } + } + }, + "ChannelDtmfReceived": { + "id": "ChannelDtmfReceived", + "description": "DTMF received on a channel.\n\nThis event is sent when the DTMF ends. There is no notification about the start of DTMF", + "properties": { + "digit": { + "required": true, + "type": "string", + "description": "DTMF digit received (0-9, A-E, # or *)" + }, + "duration_ms": { + "required": true, + "type": "int", + "description": "Number of milliseconds DTMF was received" + }, + "channel": { + "required": true, + "type": "Channel", + "description": "The channel on which DTMF was received" + } + } + }, + "ChannelDialplan": { + "id": "ChannelDialplan", + "description": "Channel changed location in the dialplan.", + "properties": { + "channel": { + "required": true, + "type": "Channel", + "description": "The channel that changed dialplan location." + }, + "dialplan_app": { + "required": true, + "type": "string", + "description": "The application about to be executed." + }, + "dialplan_app_data": { + "required": true, + "type": "string", + "description": "The data to be passed to the application." + } + } + }, + "ChannelCallerId": { + "id": "ChannelCallerId", + "description": "Channel changed Caller ID.", + "properties": { + "caller_presentation": { + "required": true, + "type": "int", + "description": "The integer representation of the Caller Presentation value." + }, + "caller_presentation_txt": { + "required": true, + "type": "string", + "description": "The text representation of the Caller Presentation value." + }, + "channel": { + "required": true, + "type": "Channel", + "description": "The channel that changed Caller ID." + } + } + }, + "ChannelUserevent": { + "id": "ChannelUserevent", + "description": "User-generated event with additional user-defined fields in the object.", + "properties": { + "eventname": { + "required": true, + "type": "string", + "description": "The name of the user event." + }, + "channel": { + "required": false, + "type": "Channel", + "description": "A channel that is signaled with the user event." + }, + "bridge": { + "required": false, + "type": "Bridge", + "description": "A bridge that is signaled with the user event." + }, + "endpoint": { + "required": false, + "type": "Endpoint", + "description": "A endpoint that is signaled with the user event." + }, + "userevent": { + "required": true, + "type": "object", + "description": "Custom Userevent data" + } + } + }, + "ChannelHangupRequest": { + "id": "ChannelHangupRequest", + "description": "A hangup was requested on the channel.", + "properties": { + "cause": { + "type": "int", + "description": "Integer representation of the cause of the hangup." + }, + "soft": { + "type": "boolean", + "description": "Whether the hangup request was a soft hangup request." + }, + "channel": { + "required": true, + "type": "Channel", + "description": "The channel on which the hangup was requested." + } + } + }, + "ChannelVarset": { + "id": "ChannelVarset", + "description": "Channel variable changed.", + "properties": { + "variable": { + "required": true, + "type": "string", + "description": "The variable that changed." + }, + "value": { + "required": true, + "type": "string", + "description": "The new value of the variable." + }, + "channel": { + "required": false, + "type": "Channel", + "description": "The channel on which the variable was set.\n\nIf missing, the variable is a global variable." + } + } + }, + "ChannelHold": { + "id": "ChannelHold", + "description": "A channel initiated a media hold.", + "properties": { + "channel": { + "required": true, + "type": "Channel", + "description": "The channel that initiated the hold event." + }, + "musicclass": { + "required": false, + "type": "string", + "description": "The music on hold class that the initiator requested." + } + } + }, + "ChannelUnhold": { + "id": "ChannelUnhold", + "description": "A channel initiated a media unhold.", + "properties": { + "channel": { + "required": true, + "type": "Channel", + "description": "The channel that initiated the unhold event." + } + } + }, + "ChannelTalkingStarted": { + "id": "ChannelTalkingStarted", + "description": "Talking was detected on the channel.", + "properties": { + "channel": { + "required": true, + "type": "Channel", + "description": "The channel on which talking started." + } + } + }, + "ChannelTalkingFinished": { + "id": "ChannelTalkingFinished", + "description": "Talking is no longer detected on the channel.", + "properties": { + "channel": { + "required": true, + "type": "Channel", + "description": "The channel on which talking completed." + }, + "duration": { + "required": true, + "type": "int", + "description": "The length of time, in milliseconds, that talking was detected on the channel" + } + } + }, + "ContactStatusChange": { + "id": "ContactStatusChange", + "description": "The state of a contact on an endpoint has changed.", + "properties": { + "endpoint": { + "required": true, + "type": "Endpoint" + }, + "contact_info": { + "required": true, + "type": "ContactInfo" + } + } + }, + "PeerStatusChange": { + "id": "PeerStatusChange", + "description": "The state of a peer associated with an endpoint has changed.", + "properties": { + "endpoint": { + "required": true, + "type": "Endpoint" + }, + "peer": { + "required": true, + "type": "Peer" + } + } + }, + "EndpointStateChange": { + "id": "EndpointStateChange", + "description": "Endpoint state changed.", + "properties": { + "endpoint": { + "required": true, + "type": "Endpoint" + } + } + }, + "Dial": { + "id": "Dial", + "description": "Dialing state has changed.", + "properties": { + "caller": { + "required": false, + "type": "Channel", + "description": "The calling channel." + }, + "peer": { + "required": true, + "type": "Channel", + "description": "The dialed channel." + }, + "forward": { + "required": false, + "type": "string", + "description": "Forwarding target requested by the original dialed channel." + }, + "forwarded": { + "required": false, + "type": "Channel", + "description": "Channel that the caller has been forwarded to." + }, + "dialstring": { + "required": false, + "type": "string", + "description": "The dial string for calling the peer channel." + }, + "dialstatus": { + "required": true, + "type": "string", + "description": "Current status of the dialing attempt to the peer." + } + } + }, + "StasisEnd": { + "id": "StasisEnd", + "description": "Notification that a channel has left a Stasis application.", + "properties": { + "channel": { + "required": true, + "type": "Channel" + } + } + }, + "StasisStart": { + "id": "StasisStart", + "description": "Notification that a channel has entered a Stasis application.", + "properties": { + "args": { + "required": true, + "type": "List[string]", + "description": "Arguments to the application" + }, + "channel": { + "required": true, + "type": "Channel" + }, + "replace_channel": { + "required": false, + "type": "Channel" + } + } + }, + "TextMessageReceived": { + "id": "TextMessageReceived", + "description": "A text message was received from an endpoint.", + "properties": { + "message": { + "required": true, + "type": "TextMessage" + }, + "endpoint": { + "required": false, + "type": "Endpoint" + } + } + }, + "ChannelConnectedLine": { + "id": "ChannelConnectedLine", + "description": "Channel changed Connected Line.", + "properties": { + "channel": { + "required": true, + "type": "Channel", + "description": "The channel whose connected line has changed." + } + } + } + } +} diff --git a/codegen-data/ari_3_0_0/mailboxes.json b/codegen-data/ari_3_0_0/mailboxes.json new file mode 100644 index 00000000..ed50019f --- /dev/null +++ b/codegen-data/ari_3_0_0/mailboxes.json @@ -0,0 +1,134 @@ +{ + "_copyright": "Copyright (C) 2013, Digium, Inc.", + "_author": "Jonathan Rose ", + "_svn_revision": "$Revision$", + "apiVersion": "2.0.0", + "swaggerVersion": "1.1", + "basePath": "http://localhost:8088/ari", + "resourcePath": "/api-docs/mailboxes.{format}", + "apis": [ + { + "path": "/mailboxes", + "description": "Mailboxes", + "operations": [ + { + "httpMethod": "GET", + "summary": "List all mailboxes.", + "nickname": "list", + "responseClass": "List[Mailbox]" + } + ] + }, + { + "path": "/mailboxes/{mailboxName}", + "description": "Mailbox state", + "operations": [ + { + "httpMethod": "GET", + "summary": "Retrieve the current state of a mailbox.", + "nickname": "get", + "responseClass": "Mailbox", + "parameters": [ + { + "name": "mailboxName", + "description": "Name of the mailbox", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Mailbox not found" + } + ] + }, + { + "httpMethod": "PUT", + "summary": "Change the state of a mailbox. (Note - implicitly creates the mailbox).", + "nickname": "update", + "responseClass": "void", + "parameters": [ + { + "name": "mailboxName", + "description": "Name of the mailbox", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "oldMessages", + "description": "Count of old messages in the mailbox", + "paramType": "query", + "required": true, + "allowMultiple": false, + "dataType": "int" + }, + { + "name": "newMessages", + "description": "Count of new messages in the mailbox", + "paramType": "query", + "required": true, + "allowMultiple": false, + "dataType": "int" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Mailbox not found" + } + ] + }, + { + "httpMethod": "DELETE", + "summary": "Destroy a mailbox.", + "nickname": "delete", + "responseClass": "void", + "parameters": [ + { + "name": "mailboxName", + "description": "Name of the mailbox", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Mailbox not found" + } + ] + } + ] + } + ], + "models": { + "Mailbox": { + "id": "Mailbox", + "description": "Represents the state of a mailbox.", + "properties": { + "name": { + "type": "string", + "description": "Name of the mailbox.", + "required": true + }, + "old_messages": { + "type": "int", + "description": "Count of old messages in the mailbox.", + "required": true + }, + "new_messages": { + "type": "int", + "description": "Count of new messages in the mailbox.", + "required": true + } + } + } + } +} diff --git a/codegen-data/ari_3_0_0/playbacks.json b/codegen-data/ari_3_0_0/playbacks.json new file mode 100644 index 00000000..3dc4e1da --- /dev/null +++ b/codegen-data/ari_3_0_0/playbacks.json @@ -0,0 +1,161 @@ +{ + "_copyright": "Copyright (C) 2012 - 2013, Digium, Inc.", + "_author": "David M. Lee, II ", + "_svn_revision": "$Revision$", + "apiVersion": "2.0.0", + "swaggerVersion": "1.1", + "basePath": "http://localhost:8088/ari", + "resourcePath": "/api-docs/playbacks.{format}", + "apis": [ + { + "path": "/playbacks/{playbackId}", + "description": "Control object for a playback operation.", + "operations": [ + { + "httpMethod": "GET", + "summary": "Get a playback's details.", + "nickname": "get", + "responseClass": "Playback", + "parameters": [ + { + "name": "playbackId", + "description": "Playback's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "The playback cannot be found" + } + ] + }, + { + "httpMethod": "DELETE", + "summary": "Stop a playback.", + "nickname": "stop", + "responseClass": "void", + "parameters": [ + { + "name": "playbackId", + "description": "Playback's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "The playback cannot be found" + } + ] + } + ] + }, + { + "path": "/playbacks/{playbackId}/control", + "description": "Control object for a playback operation.", + "operations": [ + { + "httpMethod": "POST", + "summary": "Control a playback.", + "nickname": "control", + "responseClass": "void", + "parameters": [ + { + "name": "playbackId", + "description": "Playback's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "operation", + "description": "Operation to perform on the playback.", + "paramType": "query", + "required": true, + "allowMultiple": false, + "dataType": "string", + "allowableValues": { + "valueType": "LIST", + "values": [ + "restart", + "pause", + "unpause", + "reverse", + "forward" + ] + } + } + ], + "errorResponses": [ + { + "code": 400, + "reason": "The provided operation parameter was invalid" + }, + { + "code": 404, + "reason": "The playback cannot be found" + }, + { + "code": 409, + "reason": "The operation cannot be performed in the playback's current state" + } +] + } + ] + } + ], + "models": { + "Playback": { + "id": "Playback", + "description": "Object representing the playback of media to a channel", + "properties": { + "id": { + "type": "string", + "description": "ID for this playback operation", + "required": true + }, + "media_uri": { + "type": "string", + "description": "The URI for the media currently being played back.", + "required": true + }, + "next_media_uri": { + "type": "string", + "description": "If a list of URIs is being played, the next media URI to be played back.", + "required": false + }, + "target_uri": { + "type": "string", + "description": "URI for the channel or bridge to play the media on", + "required": true + }, + "language": { + "type": "string", + "description": "For media types that support multiple languages, the language requested for playback." + }, + "state": { + "type": "string", + "description": "Current state of the playback operation.", + "required": true, + "allowableValues": { + "valueType": "LIST", + "values": [ + "queued", + "playing", + "continuing", + "done" + ] + } + } + } + } + } +} diff --git a/codegen-data/ari_3_0_0/recordings.json b/codegen-data/ari_3_0_0/recordings.json new file mode 100644 index 00000000..d0b9630d --- /dev/null +++ b/codegen-data/ari_3_0_0/recordings.json @@ -0,0 +1,410 @@ +{ + "_copyright": "Copyright (C) 2012 - 2013, Digium, Inc.", + "_author": "David M. Lee, II ", + "_svn_revision": "$Revision$", + "apiVersion": "2.0.0", + "swaggerVersion": "1.1", + "basePath": "http://localhost:8088/ari", + "resourcePath": "/api-docs/recordings.{format}", + "apis": [ + { + "path": "/recordings/stored", + "description": "Recordings", + "operations": [ + { + "httpMethod": "GET", + "summary": "List recordings that are complete.", + "nickname": "listStored", + "responseClass": "List[StoredRecording]" + } + ] + }, + { + "path": "/recordings/stored/{recordingName}", + "description": "Individual recording", + "operations": [ + { + "httpMethod": "GET", + "summary": "Get a stored recording's details.", + "nickname": "getStored", + "responseClass": "StoredRecording", + "parameters": [ + { + "name": "recordingName", + "description": "The name of the recording", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Recording not found" + } + ] + }, + { + "httpMethod": "DELETE", + "summary": "Delete a stored recording.", + "nickname": "deleteStored", + "responseClass": "void", + "parameters": [ + { + "name": "recordingName", + "description": "The name of the recording", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Recording not found" + } + ] + } + ] + }, + { + "path": "/recordings/stored/{recordingName}/file", + "description": "The actual file associated with the stored recording", + "operations": [ + { + "httpMethod": "GET", + "summary": "Get the file associated with the stored recording.", + "nickname": "getStoredFile", + "responseClass": "binary", + "parameters": [ + { + "name": "recordingName", + "description": "The name of the recording", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 403, + "reason": "The recording file could not be opened" + }, + { + "code": 404, + "reason": "Recording not found" + } + ] + } + ] + }, + { + "path": "/recordings/stored/{recordingName}/copy", + "description": "Copy an individual recording", + "operations": [ + { + "httpMethod": "POST", + "summary": "Copy a stored recording.", + "nickname": "copyStored", + "responseClass": "StoredRecording", + "parameters": [ + { + "name": "recordingName", + "description": "The name of the recording to copy", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "destinationRecordingName", + "description": "The destination name of the recording", + "paramType": "query", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Recording not found" + }, + { + "code": 409, + "reason": "A recording with the same name already exists on the system" + } + ] + } + ] + }, + { + "path": "/recordings/live/{recordingName}", + "description": "A recording that is in progress", + "operations": [ + { + "httpMethod": "GET", + "summary": "List live recordings.", + "nickname": "getLive", + "responseClass": "LiveRecording", + "parameters": [ + { + "name": "recordingName", + "description": "The name of the recording", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Recording not found" + } + ] + }, + { + "httpMethod": "DELETE", + "summary": "Stop a live recording and discard it.", + "nickname": "cancel", + "responseClass": "void", + "parameters": [ + { + "name": "recordingName", + "description": "The name of the recording", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Recording not found" + } + ] + } + ] + }, + { + "path": "/recordings/live/{recordingName}/stop", + "operations": [ + { + "httpMethod": "POST", + "summary": "Stop a live recording and store it.", + "nickname": "stop", + "responseClass": "void", + "parameters": [ + { + "name": "recordingName", + "description": "The name of the recording", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Recording not found" + } + ] + } + ] + }, + { + "path": "/recordings/live/{recordingName}/pause", + "operations": [ + { + "httpMethod": "POST", + "summary": "Pause a live recording.", + "notes": "Pausing a recording suspends silence detection, which will be restarted when the recording is unpaused. Paused time is not included in the accounting for maxDurationSeconds.", + "nickname": "pause", + "responseClass": "void", + "parameters": [ + { + "name": "recordingName", + "description": "The name of the recording", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Recording not found" + }, + { + "code": 409, + "reason": "Recording not in session" + } + ] + }, + { + "httpMethod": "DELETE", + "summary": "Unpause a live recording.", + "nickname": "unpause", + "responseClass": "void", + "parameters": [ + { + "name": "recordingName", + "description": "The name of the recording", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Recording not found" + }, + { + "code": 409, + "reason": "Recording not in session" + } + ] + } + ] + }, + { + "path": "/recordings/live/{recordingName}/mute", + "operations": [ + { + "httpMethod": "POST", + "summary": "Mute a live recording.", + "notes": "Muting a recording suspends silence detection, which will be restarted when the recording is unmuted.", + "nickname": "mute", + "responseClass": "void", + "parameters": [ + { + "name": "recordingName", + "description": "The name of the recording", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Recording not found" + }, + { + "code": 409, + "reason": "Recording not in session" + } + ] + }, + { + "httpMethod": "DELETE", + "summary": "Unmute a live recording.", + "nickname": "unmute", + "responseClass": "void", + "parameters": [ + { + "name": "recordingName", + "description": "The name of the recording", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Recording not found" + }, + { + "code": 409, + "reason": "Recording not in session" + } + ] + } + ] + } + ], + "models": { + "StoredRecording": { + "id": "StoredRecording", + "description": "A past recording that may be played back.", + "properties": { + "name": { + "required": true, + "type": "string" + }, + "format": { + "required": true, + "type": "string" + } + } + }, + "LiveRecording": { + "id": "LiveRecording", + "description": "A recording that is in progress", + "properties": { + "name": { + "required": true, + "type": "string", + "description": "Base name for the recording" + }, + "format": { + "required": true, + "type": "string", + "description": "Recording format (wav, gsm, etc.)" + }, + "target_uri": { + "required": true, + "type": "string", + "description": "URI for the channel or bridge being recorded" + }, + "state": { + "required": true, + "type": "string", + "allowableValues": { + "valueType": "LIST", + "values": [ + "queued", + "recording", + "paused", + "done", + "failed", + "canceled" + ] + } + }, + "duration": { + "required": false, + "type": "int", + "description": "Duration in seconds of the recording" + }, + "talking_duration": { + "required": false, + "type": "int", + "description": "Duration of talking, in seconds, detected in the recording. This is only available if the recording was initiated with a non-zero maxSilenceSeconds." + }, + "silence_duration": { + "required": false, + "type": "int", + "description": "Duration of silence, in seconds, detected in the recording. This is only available if the recording was initiated with a non-zero maxSilenceSeconds." + }, + "cause": { + "required": false, + "type": "string", + "description": "Cause for recording failure if failed" + } + } + } + } +} diff --git a/codegen-data/ari_3_0_0/sounds.json b/codegen-data/ari_3_0_0/sounds.json new file mode 100644 index 00000000..8fbe1c57 --- /dev/null +++ b/codegen-data/ari_3_0_0/sounds.json @@ -0,0 +1,99 @@ +{ + "_copyright": "Copyright (C) 2012 - 2013, Digium, Inc.", + "_author": "David M. Lee, II ", + "_svn_revision": "$Revision$", + "apiVersion": "2.0.0", + "swaggerVersion": "1.1", + "basePath": "http://localhost:8088/ari", + "resourcePath": "/api-docs/sounds.{format}", + "apis": [ + { + "path": "/sounds", + "description": "Sounds", + "operations": [ + { + "httpMethod": "GET", + "summary": "List all sounds.", + "nickname": "list", + "responseClass": "List[Sound]", + "parameters": [ + { + "name": "lang", + "description": "Lookup sound for a specific language.", + "paramType": "query", + "dataType": "string", + "required": false + }, + { + "name": "format", + "description": "Lookup sound in a specific format.", + "paramType": "query", + "dataType": "string", + "required": false, + "__note": "core show translation can show translation paths between formats, along with relative costs. so this could be just installed format, or we could follow that for transcoded formats." + } + ] + } + ] + }, + { + "path": "/sounds/{soundId}", + "description": "Individual sound", + "operations": [ + { + "httpMethod": "GET", + "summary": "Get a sound's details.", + "nickname": "get", + "responseClass": "Sound", + "parameters": [ + { + "name": "soundId", + "description": "Sound's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ] + } + ] + } + ], + "models": { + "FormatLangPair": { + "id": "FormatLangPair", + "description": "Identifies the format and language of a sound file", + "properties": { + "language": { + "required": true, + "type": "string" + }, + "format": { + "required": true, + "type": "string" + } + } + }, + "Sound": { + "id": "Sound", + "description": "A media file that may be played back.", + "properties": { + "id": { + "required": true, + "description": "Sound's identifier.", + "type": "string" + }, + "text": { + "required": false, + "description": "Text description of the sound, usually the words spoken.", + "type": "string" + }, + "formats": { + "required": true, + "description": "The formats and languages in which this sound is available.", + "type": "List[FormatLangPair]" + } + } + } + } +} From 2f01f3520bdef812143b1a2e03abb5875a19f5eb Mon Sep 17 00:00:00 2001 From: lenz Date: Mon, 18 Dec 2017 23:21:41 +0100 Subject: [PATCH 015/220] ARI 3.0.0 as of Asterisk 15.1.4 --- codegen-data/ari_3_0_0/bridges.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/codegen-data/ari_3_0_0/bridges.json b/codegen-data/ari_3_0_0/bridges.json index 03a1e7a6..877fdf84 100644 --- a/codegen-data/ari_3_0_0/bridges.json +++ b/codegen-data/ari_3_0_0/bridges.json @@ -26,7 +26,7 @@ "parameters": [ { "name": "type", - "description": "Comma separated list of bridge type attributes (mixing, holding, dtmf_events, proxy_media).", + "description": "Comma separated list of bridge type attributes (mixing, holding, dtmf_events, proxy_media, video_sfu).", "paramType": "query", "required": false, "allowMultiple": false, @@ -65,7 +65,7 @@ "parameters": [ { "name": "type", - "description": "Comma separated list of bridge type attributes (mixing, holding, dtmf_events, proxy_media) to set.", + "description": "Comma separated list of bridge type attributes (mixing, holding, dtmf_events, proxy_media, video_sfu) to set.", "paramType": "query", "required": false, "allowMultiple": false, From 8227589d83e39bd542582eae06a64d718776a070 Mon Sep 17 00:00:00 2001 From: lenz Date: Tue, 19 Dec 2017 10:01:10 +0100 Subject: [PATCH 016/220] bug #78: Support for ARI 3.0.0 / Asterisk 15 This still uses the old code generator. JAR version is now 0.4.5 --- README.md | 7 +- build.gradle | 2 +- classes/ch/loway/oss/ari4java/AriVersion.java | 3 + .../generated/ActionApplications.java | 2 +- .../ari4java/generated/ActionAsterisk.java | 2 +- .../oss/ari4java/generated/ActionBridges.java | 2 +- .../ari4java/generated/ActionChannels.java | 2 +- .../generated/ActionDeviceStates.java | 2 +- .../ari4java/generated/ActionEndpoints.java | 2 +- .../oss/ari4java/generated/ActionEvents.java | 2 +- .../ari4java/generated/ActionPlaybacks.java | 2 +- .../ari4java/generated/ActionRecordings.java | 2 +- .../oss/ari4java/generated/ActionSounds.java | 2 +- .../oss/ari4java/generated/Application.java | 2 +- .../generated/ApplicationReplaced.java | 2 +- .../oss/ari4java/generated/AriBuilder.java | 2 +- .../oss/ari4java/generated/AsteriskInfo.java | 2 +- .../loway/oss/ari4java/generated/Bridge.java | 2 +- .../generated/BridgeAttendedTransfer.java | 2 +- .../generated/BridgeBlindTransfer.java | 2 +- .../oss/ari4java/generated/BridgeCreated.java | 2 +- .../ari4java/generated/BridgeDestroyed.java | 2 +- .../oss/ari4java/generated/BridgeMerged.java | 2 +- .../generated/BridgeVideoSourceChanged.java | 2 +- .../oss/ari4java/generated/BuildInfo.java | 2 +- .../oss/ari4java/generated/CallerID.java | 2 +- .../loway/oss/ari4java/generated/Channel.java | 2 +- .../ari4java/generated/ChannelCallerId.java | 2 +- .../generated/ChannelConnectedLine.java | 2 +- .../ari4java/generated/ChannelCreated.java | 2 +- .../ari4java/generated/ChannelDestroyed.java | 2 +- .../ari4java/generated/ChannelDialplan.java | 2 +- .../generated/ChannelDtmfReceived.java | 2 +- .../generated/ChannelEnteredBridge.java | 2 +- .../generated/ChannelHangupRequest.java | 2 +- .../oss/ari4java/generated/ChannelHold.java | 2 +- .../ari4java/generated/ChannelLeftBridge.java | 2 +- .../generated/ChannelStateChange.java | 2 +- .../generated/ChannelTalkingFinished.java | 2 +- .../generated/ChannelTalkingStarted.java | 2 +- .../oss/ari4java/generated/ChannelUnhold.java | 2 +- .../ari4java/generated/ChannelUserevent.java | 2 +- .../oss/ari4java/generated/ChannelVarset.java | 2 +- .../oss/ari4java/generated/ConfigInfo.java | 2 +- .../oss/ari4java/generated/ConfigTuple.java | 2 +- .../oss/ari4java/generated/ContactInfo.java | 2 +- .../generated/ContactStatusChange.java | 2 +- .../oss/ari4java/generated/DeviceState.java | 2 +- .../generated/DeviceStateChanged.java | 2 +- .../ch/loway/oss/ari4java/generated/Dial.java | 2 +- .../loway/oss/ari4java/generated/Dialed.java | 2 +- .../oss/ari4java/generated/DialplanCEP.java | 2 +- .../oss/ari4java/generated/Endpoint.java | 2 +- .../generated/EndpointStateChange.java | 2 +- .../loway/oss/ari4java/generated/Event.java | 2 +- .../ari4java/generated/FormatLangPair.java | 2 +- .../oss/ari4java/generated/LiveRecording.java | 2 +- .../oss/ari4java/generated/LogChannel.java | 2 +- .../loway/oss/ari4java/generated/Message.java | 2 +- .../oss/ari4java/generated/MissingParams.java | 2 +- .../loway/oss/ari4java/generated/Module.java | 2 +- .../ch/loway/oss/ari4java/generated/Peer.java | 2 +- .../ari4java/generated/PeerStatusChange.java | 2 +- .../oss/ari4java/generated/Playback.java | 2 +- .../generated/PlaybackContinuing.java | 2 +- .../ari4java/generated/PlaybackFinished.java | 2 +- .../ari4java/generated/PlaybackStarted.java | 2 +- .../ari4java/generated/RecordingFailed.java | 2 +- .../ari4java/generated/RecordingFinished.java | 2 +- .../ari4java/generated/RecordingStarted.java | 2 +- .../loway/oss/ari4java/generated/SetId.java | 2 +- .../loway/oss/ari4java/generated/Sound.java | 2 +- .../oss/ari4java/generated/StasisEnd.java | 2 +- .../oss/ari4java/generated/StasisStart.java | 2 +- .../oss/ari4java/generated/StatusInfo.java | 2 +- .../ari4java/generated/StoredRecording.java | 2 +- .../oss/ari4java/generated/SystemInfo.java | 2 +- .../oss/ari4java/generated/TextMessage.java | 2 +- .../generated/TextMessageReceived.java | 2 +- .../generated/TextMessageVariable.java | 2 +- .../oss/ari4java/generated/Variable.java | 2 +- .../ari_0_0_1/AriBuilder_impl_ari_0_0_1.java | 182 +-- .../ClassTranslator_impl_ari_0_0_1.java | 2 +- .../ActionApplications_impl_ari_0_0_1.java | 2 +- .../ActionAsterisk_impl_ari_0_0_1.java | 2 +- .../actions/ActionBridges_impl_ari_0_0_1.java | 2 +- .../ActionChannels_impl_ari_0_0_1.java | 2 +- .../ActionDeviceStates_impl_ari_0_0_1.java | 2 +- .../ActionEndpoints_impl_ari_0_0_1.java | 2 +- .../actions/ActionEvents_impl_ari_0_0_1.java | 2 +- .../ActionPlaybacks_impl_ari_0_0_1.java | 2 +- .../ActionRecordings_impl_ari_0_0_1.java | 2 +- .../actions/ActionSounds_impl_ari_0_0_1.java | 2 +- .../ApplicationReplaced_impl_ari_0_0_1.java | 2 +- .../models/Application_impl_ari_0_0_1.java | 2 +- .../models/AsteriskInfo_impl_ari_0_0_1.java | 2 +- .../models/BridgeCreated_impl_ari_0_0_1.java | 2 +- .../BridgeDestroyed_impl_ari_0_0_1.java | 2 +- .../models/BridgeMerged_impl_ari_0_0_1.java | 2 +- .../models/Bridge_impl_ari_0_0_1.java | 2 +- .../models/BuildInfo_impl_ari_0_0_1.java | 2 +- .../models/CallerID_impl_ari_0_0_1.java | 2 +- .../ChannelCallerId_impl_ari_0_0_1.java | 2 +- .../models/ChannelCreated_impl_ari_0_0_1.java | 2 +- .../ChannelDestroyed_impl_ari_0_0_1.java | 2 +- .../ChannelDialplan_impl_ari_0_0_1.java | 2 +- .../ChannelDtmfReceived_impl_ari_0_0_1.java | 2 +- .../ChannelEnteredBridge_impl_ari_0_0_1.java | 2 +- .../ChannelHangupRequest_impl_ari_0_0_1.java | 2 +- .../ChannelLeftBridge_impl_ari_0_0_1.java | 2 +- .../ChannelStateChange_impl_ari_0_0_1.java | 2 +- .../ChannelUserevent_impl_ari_0_0_1.java | 2 +- .../models/ChannelVarset_impl_ari_0_0_1.java | 2 +- .../models/Channel_impl_ari_0_0_1.java | 2 +- .../models/ConfigInfo_impl_ari_0_0_1.java | 2 +- .../DeviceStateChanged_impl_ari_0_0_1.java | 2 +- .../models/DeviceState_impl_ari_0_0_1.java | 2 +- .../models/Dialed_impl_ari_0_0_1.java | 2 +- .../models/DialplanCEP_impl_ari_0_0_1.java | 2 +- .../EndpointStateChange_impl_ari_0_0_1.java | 2 +- .../models/Endpoint_impl_ari_0_0_1.java | 2 +- .../models/Event_impl_ari_0_0_1.java | 2 +- .../models/FormatLangPair_impl_ari_0_0_1.java | 2 +- .../models/LiveRecording_impl_ari_0_0_1.java | 2 +- .../models/Message_impl_ari_0_0_1.java | 2 +- .../models/MissingParams_impl_ari_0_0_1.java | 2 +- .../PlaybackFinished_impl_ari_0_0_1.java | 2 +- .../PlaybackStarted_impl_ari_0_0_1.java | 2 +- .../models/Playback_impl_ari_0_0_1.java | 2 +- .../RecordingFailed_impl_ari_0_0_1.java | 2 +- .../RecordingFinished_impl_ari_0_0_1.java | 2 +- .../RecordingStarted_impl_ari_0_0_1.java | 2 +- .../models/SetId_impl_ari_0_0_1.java | 2 +- .../models/Sound_impl_ari_0_0_1.java | 2 +- .../models/StasisEnd_impl_ari_0_0_1.java | 2 +- .../models/StasisStart_impl_ari_0_0_1.java | 2 +- .../models/StatusInfo_impl_ari_0_0_1.java | 2 +- .../StoredRecording_impl_ari_0_0_1.java | 2 +- .../models/SystemInfo_impl_ari_0_0_1.java | 2 +- .../models/Variable_impl_ari_0_0_1.java | 2 +- .../ari_1_0_0/AriBuilder_impl_ari_1_0_0.java | 182 +-- .../ClassTranslator_impl_ari_1_0_0.java | 2 +- .../ActionApplications_impl_ari_1_0_0.java | 2 +- .../ActionAsterisk_impl_ari_1_0_0.java | 2 +- .../actions/ActionBridges_impl_ari_1_0_0.java | 2 +- .../ActionChannels_impl_ari_1_0_0.java | 2 +- .../ActionDeviceStates_impl_ari_1_0_0.java | 2 +- .../ActionEndpoints_impl_ari_1_0_0.java | 2 +- .../actions/ActionEvents_impl_ari_1_0_0.java | 2 +- .../ActionPlaybacks_impl_ari_1_0_0.java | 2 +- .../ActionRecordings_impl_ari_1_0_0.java | 2 +- .../actions/ActionSounds_impl_ari_1_0_0.java | 2 +- .../ApplicationReplaced_impl_ari_1_0_0.java | 2 +- .../models/Application_impl_ari_1_0_0.java | 2 +- .../models/AsteriskInfo_impl_ari_1_0_0.java | 2 +- .../models/BridgeCreated_impl_ari_1_0_0.java | 2 +- .../BridgeDestroyed_impl_ari_1_0_0.java | 2 +- .../models/BridgeMerged_impl_ari_1_0_0.java | 2 +- .../models/Bridge_impl_ari_1_0_0.java | 2 +- .../models/BuildInfo_impl_ari_1_0_0.java | 2 +- .../models/CallerID_impl_ari_1_0_0.java | 2 +- .../ChannelCallerId_impl_ari_1_0_0.java | 2 +- .../models/ChannelCreated_impl_ari_1_0_0.java | 2 +- .../ChannelDestroyed_impl_ari_1_0_0.java | 2 +- .../ChannelDialplan_impl_ari_1_0_0.java | 2 +- .../ChannelDtmfReceived_impl_ari_1_0_0.java | 2 +- .../ChannelEnteredBridge_impl_ari_1_0_0.java | 2 +- .../ChannelHangupRequest_impl_ari_1_0_0.java | 2 +- .../ChannelLeftBridge_impl_ari_1_0_0.java | 2 +- .../ChannelStateChange_impl_ari_1_0_0.java | 2 +- .../ChannelUserevent_impl_ari_1_0_0.java | 2 +- .../models/ChannelVarset_impl_ari_1_0_0.java | 2 +- .../models/Channel_impl_ari_1_0_0.java | 2 +- .../models/ConfigInfo_impl_ari_1_0_0.java | 2 +- .../DeviceStateChanged_impl_ari_1_0_0.java | 2 +- .../models/DeviceState_impl_ari_1_0_0.java | 2 +- .../ari_1_0_0/models/Dial_impl_ari_1_0_0.java | 2 +- .../models/Dialed_impl_ari_1_0_0.java | 2 +- .../models/DialplanCEP_impl_ari_1_0_0.java | 2 +- .../EndpointStateChange_impl_ari_1_0_0.java | 2 +- .../models/Endpoint_impl_ari_1_0_0.java | 2 +- .../models/Event_impl_ari_1_0_0.java | 2 +- .../models/FormatLangPair_impl_ari_1_0_0.java | 2 +- .../models/LiveRecording_impl_ari_1_0_0.java | 2 +- .../models/Message_impl_ari_1_0_0.java | 2 +- .../models/MissingParams_impl_ari_1_0_0.java | 2 +- .../PlaybackFinished_impl_ari_1_0_0.java | 2 +- .../PlaybackStarted_impl_ari_1_0_0.java | 2 +- .../models/Playback_impl_ari_1_0_0.java | 2 +- .../RecordingFailed_impl_ari_1_0_0.java | 2 +- .../RecordingFinished_impl_ari_1_0_0.java | 2 +- .../RecordingStarted_impl_ari_1_0_0.java | 2 +- .../models/SetId_impl_ari_1_0_0.java | 2 +- .../models/Sound_impl_ari_1_0_0.java | 2 +- .../models/StasisEnd_impl_ari_1_0_0.java | 2 +- .../models/StasisStart_impl_ari_1_0_0.java | 2 +- .../models/StatusInfo_impl_ari_1_0_0.java | 2 +- .../StoredRecording_impl_ari_1_0_0.java | 2 +- .../models/SystemInfo_impl_ari_1_0_0.java | 2 +- .../models/Variable_impl_ari_1_0_0.java | 2 +- .../AriBuilder_impl_ari_1_10_0.java | 266 ++--- .../ClassTranslator_impl_ari_1_10_0.java | 2 +- .../ActionApplications_impl_ari_1_10_0.java | 2 +- .../ActionAsterisk_impl_ari_1_10_0.java | 2 +- .../ActionBridges_impl_ari_1_10_0.java | 2 +- .../ActionChannels_impl_ari_1_10_0.java | 2 +- .../ActionDeviceStates_impl_ari_1_10_0.java | 2 +- .../ActionEndpoints_impl_ari_1_10_0.java | 2 +- .../actions/ActionEvents_impl_ari_1_10_0.java | 2 +- .../ActionPlaybacks_impl_ari_1_10_0.java | 2 +- .../ActionRecordings_impl_ari_1_10_0.java | 2 +- .../actions/ActionSounds_impl_ari_1_10_0.java | 2 +- .../ApplicationReplaced_impl_ari_1_10_0.java | 2 +- .../models/Application_impl_ari_1_10_0.java | 2 +- .../models/AsteriskInfo_impl_ari_1_10_0.java | 2 +- ...ridgeAttendedTransfer_impl_ari_1_10_0.java | 2 +- .../BridgeBlindTransfer_impl_ari_1_10_0.java | 2 +- .../models/BridgeCreated_impl_ari_1_10_0.java | 2 +- .../BridgeDestroyed_impl_ari_1_10_0.java | 2 +- .../models/BridgeMerged_impl_ari_1_10_0.java | 2 +- .../models/Bridge_impl_ari_1_10_0.java | 2 +- .../models/BuildInfo_impl_ari_1_10_0.java | 2 +- .../models/CallerID_impl_ari_1_10_0.java | 2 +- .../ChannelCallerId_impl_ari_1_10_0.java | 2 +- .../ChannelConnectedLine_impl_ari_1_10_0.java | 2 +- .../ChannelCreated_impl_ari_1_10_0.java | 2 +- .../ChannelDestroyed_impl_ari_1_10_0.java | 2 +- .../ChannelDialplan_impl_ari_1_10_0.java | 2 +- .../ChannelDtmfReceived_impl_ari_1_10_0.java | 2 +- .../ChannelEnteredBridge_impl_ari_1_10_0.java | 2 +- .../ChannelHangupRequest_impl_ari_1_10_0.java | 2 +- .../models/ChannelHold_impl_ari_1_10_0.java | 2 +- .../ChannelLeftBridge_impl_ari_1_10_0.java | 2 +- .../ChannelStateChange_impl_ari_1_10_0.java | 2 +- ...hannelTalkingFinished_impl_ari_1_10_0.java | 2 +- ...ChannelTalkingStarted_impl_ari_1_10_0.java | 2 +- .../models/ChannelUnhold_impl_ari_1_10_0.java | 2 +- .../ChannelUserevent_impl_ari_1_10_0.java | 2 +- .../models/ChannelVarset_impl_ari_1_10_0.java | 2 +- .../models/Channel_impl_ari_1_10_0.java | 2 +- .../models/ConfigInfo_impl_ari_1_10_0.java | 2 +- .../models/ConfigTuple_impl_ari_1_10_0.java | 2 +- .../models/ContactInfo_impl_ari_1_10_0.java | 2 +- .../ContactStatusChange_impl_ari_1_10_0.java | 2 +- .../DeviceStateChanged_impl_ari_1_10_0.java | 2 +- .../models/DeviceState_impl_ari_1_10_0.java | 2 +- .../models/Dial_impl_ari_1_10_0.java | 2 +- .../models/Dialed_impl_ari_1_10_0.java | 2 +- .../models/DialplanCEP_impl_ari_1_10_0.java | 2 +- .../EndpointStateChange_impl_ari_1_10_0.java | 2 +- .../models/Endpoint_impl_ari_1_10_0.java | 2 +- .../models/Event_impl_ari_1_10_0.java | 2 +- .../FormatLangPair_impl_ari_1_10_0.java | 2 +- .../models/LiveRecording_impl_ari_1_10_0.java | 2 +- .../models/LogChannel_impl_ari_1_10_0.java | 2 +- .../models/Message_impl_ari_1_10_0.java | 2 +- .../models/MissingParams_impl_ari_1_10_0.java | 2 +- .../models/Module_impl_ari_1_10_0.java | 2 +- .../PeerStatusChange_impl_ari_1_10_0.java | 2 +- .../models/Peer_impl_ari_1_10_0.java | 2 +- .../PlaybackContinuing_impl_ari_1_10_0.java | 2 +- .../PlaybackFinished_impl_ari_1_10_0.java | 2 +- .../PlaybackStarted_impl_ari_1_10_0.java | 2 +- .../models/Playback_impl_ari_1_10_0.java | 2 +- .../RecordingFailed_impl_ari_1_10_0.java | 2 +- .../RecordingFinished_impl_ari_1_10_0.java | 2 +- .../RecordingStarted_impl_ari_1_10_0.java | 2 +- .../models/SetId_impl_ari_1_10_0.java | 2 +- .../models/Sound_impl_ari_1_10_0.java | 2 +- .../models/StasisEnd_impl_ari_1_10_0.java | 2 +- .../models/StasisStart_impl_ari_1_10_0.java | 2 +- .../models/StatusInfo_impl_ari_1_10_0.java | 2 +- .../StoredRecording_impl_ari_1_10_0.java | 2 +- .../models/SystemInfo_impl_ari_1_10_0.java | 2 +- .../TextMessageReceived_impl_ari_1_10_0.java | 2 +- .../TextMessageVariable_impl_ari_1_10_0.java | 2 +- .../models/TextMessage_impl_ari_1_10_0.java | 2 +- .../models/Variable_impl_ari_1_10_0.java | 2 +- .../ari_1_5_0/AriBuilder_impl_ari_1_5_0.java | 214 ++-- .../ClassTranslator_impl_ari_1_5_0.java | 2 +- .../ActionApplications_impl_ari_1_5_0.java | 2 +- .../ActionAsterisk_impl_ari_1_5_0.java | 2 +- .../actions/ActionBridges_impl_ari_1_5_0.java | 2 +- .../ActionChannels_impl_ari_1_5_0.java | 2 +- .../ActionDeviceStates_impl_ari_1_5_0.java | 2 +- .../ActionEndpoints_impl_ari_1_5_0.java | 2 +- .../actions/ActionEvents_impl_ari_1_5_0.java | 2 +- .../ActionPlaybacks_impl_ari_1_5_0.java | 2 +- .../ActionRecordings_impl_ari_1_5_0.java | 2 +- .../actions/ActionSounds_impl_ari_1_5_0.java | 2 +- .../ApplicationReplaced_impl_ari_1_5_0.java | 2 +- .../models/Application_impl_ari_1_5_0.java | 2 +- .../models/AsteriskInfo_impl_ari_1_5_0.java | 2 +- ...BridgeAttendedTransfer_impl_ari_1_5_0.java | 2 +- .../BridgeBlindTransfer_impl_ari_1_5_0.java | 2 +- .../models/BridgeCreated_impl_ari_1_5_0.java | 2 +- .../BridgeDestroyed_impl_ari_1_5_0.java | 2 +- .../models/BridgeMerged_impl_ari_1_5_0.java | 2 +- .../models/Bridge_impl_ari_1_5_0.java | 2 +- .../models/BuildInfo_impl_ari_1_5_0.java | 2 +- .../models/CallerID_impl_ari_1_5_0.java | 2 +- .../ChannelCallerId_impl_ari_1_5_0.java | 2 +- .../models/ChannelCreated_impl_ari_1_5_0.java | 2 +- .../ChannelDestroyed_impl_ari_1_5_0.java | 2 +- .../ChannelDialplan_impl_ari_1_5_0.java | 2 +- .../ChannelDtmfReceived_impl_ari_1_5_0.java | 2 +- .../ChannelEnteredBridge_impl_ari_1_5_0.java | 2 +- .../ChannelHangupRequest_impl_ari_1_5_0.java | 2 +- .../ChannelLeftBridge_impl_ari_1_5_0.java | 2 +- .../ChannelStateChange_impl_ari_1_5_0.java | 2 +- ...ChannelTalkingFinished_impl_ari_1_5_0.java | 2 +- .../ChannelTalkingStarted_impl_ari_1_5_0.java | 2 +- .../ChannelUserevent_impl_ari_1_5_0.java | 2 +- .../models/ChannelVarset_impl_ari_1_5_0.java | 2 +- .../models/Channel_impl_ari_1_5_0.java | 2 +- .../models/ConfigInfo_impl_ari_1_5_0.java | 2 +- .../DeviceStateChanged_impl_ari_1_5_0.java | 2 +- .../models/DeviceState_impl_ari_1_5_0.java | 2 +- .../ari_1_5_0/models/Dial_impl_ari_1_5_0.java | 2 +- .../models/Dialed_impl_ari_1_5_0.java | 2 +- .../models/DialplanCEP_impl_ari_1_5_0.java | 2 +- .../EndpointStateChange_impl_ari_1_5_0.java | 2 +- .../models/Endpoint_impl_ari_1_5_0.java | 2 +- .../models/Event_impl_ari_1_5_0.java | 2 +- .../models/FormatLangPair_impl_ari_1_5_0.java | 2 +- .../models/LiveRecording_impl_ari_1_5_0.java | 2 +- .../models/Message_impl_ari_1_5_0.java | 2 +- .../models/MissingParams_impl_ari_1_5_0.java | 2 +- .../PlaybackFinished_impl_ari_1_5_0.java | 2 +- .../PlaybackStarted_impl_ari_1_5_0.java | 2 +- .../models/Playback_impl_ari_1_5_0.java | 2 +- .../RecordingFailed_impl_ari_1_5_0.java | 2 +- .../RecordingFinished_impl_ari_1_5_0.java | 2 +- .../RecordingStarted_impl_ari_1_5_0.java | 2 +- .../models/SetId_impl_ari_1_5_0.java | 2 +- .../models/Sound_impl_ari_1_5_0.java | 2 +- .../models/StasisEnd_impl_ari_1_5_0.java | 2 +- .../models/StasisStart_impl_ari_1_5_0.java | 2 +- .../models/StatusInfo_impl_ari_1_5_0.java | 2 +- .../StoredRecording_impl_ari_1_5_0.java | 2 +- .../models/SystemInfo_impl_ari_1_5_0.java | 2 +- .../TextMessageReceived_impl_ari_1_5_0.java | 2 +- .../TextMessageVariable_impl_ari_1_5_0.java | 2 +- .../models/TextMessage_impl_ari_1_5_0.java | 2 +- .../models/Variable_impl_ari_1_5_0.java | 2 +- .../ari_1_6_0/AriBuilder_impl_ari_1_6_0.java | 218 ++-- .../ClassTranslator_impl_ari_1_6_0.java | 2 +- .../ActionApplications_impl_ari_1_6_0.java | 2 +- .../ActionAsterisk_impl_ari_1_6_0.java | 2 +- .../actions/ActionBridges_impl_ari_1_6_0.java | 2 +- .../ActionChannels_impl_ari_1_6_0.java | 2 +- .../ActionDeviceStates_impl_ari_1_6_0.java | 2 +- .../ActionEndpoints_impl_ari_1_6_0.java | 2 +- .../actions/ActionEvents_impl_ari_1_6_0.java | 2 +- .../ActionPlaybacks_impl_ari_1_6_0.java | 2 +- .../ActionRecordings_impl_ari_1_6_0.java | 2 +- .../actions/ActionSounds_impl_ari_1_6_0.java | 2 +- .../ApplicationReplaced_impl_ari_1_6_0.java | 2 +- .../models/Application_impl_ari_1_6_0.java | 2 +- .../models/AsteriskInfo_impl_ari_1_6_0.java | 2 +- ...BridgeAttendedTransfer_impl_ari_1_6_0.java | 2 +- .../BridgeBlindTransfer_impl_ari_1_6_0.java | 2 +- .../models/BridgeCreated_impl_ari_1_6_0.java | 2 +- .../BridgeDestroyed_impl_ari_1_6_0.java | 2 +- .../models/BridgeMerged_impl_ari_1_6_0.java | 2 +- .../models/Bridge_impl_ari_1_6_0.java | 2 +- .../models/BuildInfo_impl_ari_1_6_0.java | 2 +- .../models/CallerID_impl_ari_1_6_0.java | 2 +- .../ChannelCallerId_impl_ari_1_6_0.java | 2 +- .../ChannelConnectedLine_impl_ari_1_6_0.java | 2 +- .../models/ChannelCreated_impl_ari_1_6_0.java | 2 +- .../ChannelDestroyed_impl_ari_1_6_0.java | 2 +- .../ChannelDialplan_impl_ari_1_6_0.java | 2 +- .../ChannelDtmfReceived_impl_ari_1_6_0.java | 2 +- .../ChannelEnteredBridge_impl_ari_1_6_0.java | 2 +- .../ChannelHangupRequest_impl_ari_1_6_0.java | 2 +- .../ChannelLeftBridge_impl_ari_1_6_0.java | 2 +- .../ChannelStateChange_impl_ari_1_6_0.java | 2 +- ...ChannelTalkingFinished_impl_ari_1_6_0.java | 2 +- .../ChannelTalkingStarted_impl_ari_1_6_0.java | 2 +- .../ChannelUserevent_impl_ari_1_6_0.java | 2 +- .../models/ChannelVarset_impl_ari_1_6_0.java | 2 +- .../models/Channel_impl_ari_1_6_0.java | 2 +- .../models/ConfigInfo_impl_ari_1_6_0.java | 2 +- .../DeviceStateChanged_impl_ari_1_6_0.java | 2 +- .../models/DeviceState_impl_ari_1_6_0.java | 2 +- .../ari_1_6_0/models/Dial_impl_ari_1_6_0.java | 2 +- .../models/Dialed_impl_ari_1_6_0.java | 2 +- .../models/DialplanCEP_impl_ari_1_6_0.java | 2 +- .../EndpointStateChange_impl_ari_1_6_0.java | 2 +- .../models/Endpoint_impl_ari_1_6_0.java | 2 +- .../models/Event_impl_ari_1_6_0.java | 2 +- .../models/FormatLangPair_impl_ari_1_6_0.java | 2 +- .../models/LiveRecording_impl_ari_1_6_0.java | 2 +- .../models/Message_impl_ari_1_6_0.java | 2 +- .../models/MissingParams_impl_ari_1_6_0.java | 2 +- .../PlaybackFinished_impl_ari_1_6_0.java | 2 +- .../PlaybackStarted_impl_ari_1_6_0.java | 2 +- .../models/Playback_impl_ari_1_6_0.java | 2 +- .../RecordingFailed_impl_ari_1_6_0.java | 2 +- .../RecordingFinished_impl_ari_1_6_0.java | 2 +- .../RecordingStarted_impl_ari_1_6_0.java | 2 +- .../models/SetId_impl_ari_1_6_0.java | 2 +- .../models/Sound_impl_ari_1_6_0.java | 2 +- .../models/StasisEnd_impl_ari_1_6_0.java | 2 +- .../models/StasisStart_impl_ari_1_6_0.java | 2 +- .../models/StatusInfo_impl_ari_1_6_0.java | 2 +- .../StoredRecording_impl_ari_1_6_0.java | 2 +- .../models/SystemInfo_impl_ari_1_6_0.java | 2 +- .../TextMessageReceived_impl_ari_1_6_0.java | 2 +- .../TextMessageVariable_impl_ari_1_6_0.java | 2 +- .../models/TextMessage_impl_ari_1_6_0.java | 2 +- .../models/Variable_impl_ari_1_6_0.java | 2 +- .../ari_1_7_0/AriBuilder_impl_ari_1_7_0.java | 222 ++-- .../ClassTranslator_impl_ari_1_7_0.java | 2 +- .../ActionApplications_impl_ari_1_7_0.java | 2 +- .../ActionAsterisk_impl_ari_1_7_0.java | 2 +- .../actions/ActionBridges_impl_ari_1_7_0.java | 2 +- .../ActionChannels_impl_ari_1_7_0.java | 2 +- .../ActionDeviceStates_impl_ari_1_7_0.java | 2 +- .../ActionEndpoints_impl_ari_1_7_0.java | 2 +- .../actions/ActionEvents_impl_ari_1_7_0.java | 2 +- .../ActionPlaybacks_impl_ari_1_7_0.java | 2 +- .../ActionRecordings_impl_ari_1_7_0.java | 2 +- .../actions/ActionSounds_impl_ari_1_7_0.java | 2 +- .../ApplicationReplaced_impl_ari_1_7_0.java | 2 +- .../models/Application_impl_ari_1_7_0.java | 2 +- .../models/AsteriskInfo_impl_ari_1_7_0.java | 2 +- ...BridgeAttendedTransfer_impl_ari_1_7_0.java | 2 +- .../BridgeBlindTransfer_impl_ari_1_7_0.java | 2 +- .../models/BridgeCreated_impl_ari_1_7_0.java | 2 +- .../BridgeDestroyed_impl_ari_1_7_0.java | 2 +- .../models/BridgeMerged_impl_ari_1_7_0.java | 2 +- .../models/Bridge_impl_ari_1_7_0.java | 2 +- .../models/BuildInfo_impl_ari_1_7_0.java | 2 +- .../models/CallerID_impl_ari_1_7_0.java | 2 +- .../ChannelCallerId_impl_ari_1_7_0.java | 2 +- .../ChannelConnectedLine_impl_ari_1_7_0.java | 2 +- .../models/ChannelCreated_impl_ari_1_7_0.java | 2 +- .../ChannelDestroyed_impl_ari_1_7_0.java | 2 +- .../ChannelDialplan_impl_ari_1_7_0.java | 2 +- .../ChannelDtmfReceived_impl_ari_1_7_0.java | 2 +- .../ChannelEnteredBridge_impl_ari_1_7_0.java | 2 +- .../ChannelHangupRequest_impl_ari_1_7_0.java | 2 +- .../ChannelLeftBridge_impl_ari_1_7_0.java | 2 +- .../ChannelStateChange_impl_ari_1_7_0.java | 2 +- ...ChannelTalkingFinished_impl_ari_1_7_0.java | 2 +- .../ChannelTalkingStarted_impl_ari_1_7_0.java | 2 +- .../ChannelUserevent_impl_ari_1_7_0.java | 2 +- .../models/ChannelVarset_impl_ari_1_7_0.java | 2 +- .../models/Channel_impl_ari_1_7_0.java | 2 +- .../models/ConfigInfo_impl_ari_1_7_0.java | 2 +- .../DeviceStateChanged_impl_ari_1_7_0.java | 2 +- .../models/DeviceState_impl_ari_1_7_0.java | 2 +- .../ari_1_7_0/models/Dial_impl_ari_1_7_0.java | 2 +- .../models/Dialed_impl_ari_1_7_0.java | 2 +- .../models/DialplanCEP_impl_ari_1_7_0.java | 2 +- .../EndpointStateChange_impl_ari_1_7_0.java | 2 +- .../models/Endpoint_impl_ari_1_7_0.java | 2 +- .../models/Event_impl_ari_1_7_0.java | 2 +- .../models/FormatLangPair_impl_ari_1_7_0.java | 2 +- .../models/LiveRecording_impl_ari_1_7_0.java | 2 +- .../models/Message_impl_ari_1_7_0.java | 2 +- .../models/MissingParams_impl_ari_1_7_0.java | 2 +- .../PlaybackFinished_impl_ari_1_7_0.java | 2 +- .../PlaybackStarted_impl_ari_1_7_0.java | 2 +- .../models/Playback_impl_ari_1_7_0.java | 2 +- .../RecordingFailed_impl_ari_1_7_0.java | 2 +- .../RecordingFinished_impl_ari_1_7_0.java | 2 +- .../RecordingStarted_impl_ari_1_7_0.java | 2 +- .../models/SetId_impl_ari_1_7_0.java | 2 +- .../models/Sound_impl_ari_1_7_0.java | 2 +- .../models/StasisEnd_impl_ari_1_7_0.java | 2 +- .../models/StasisStart_impl_ari_1_7_0.java | 2 +- .../models/StatusInfo_impl_ari_1_7_0.java | 2 +- .../StoredRecording_impl_ari_1_7_0.java | 2 +- .../models/SystemInfo_impl_ari_1_7_0.java | 2 +- .../TextMessageReceived_impl_ari_1_7_0.java | 2 +- .../TextMessageVariable_impl_ari_1_7_0.java | 2 +- .../models/TextMessage_impl_ari_1_7_0.java | 2 +- .../models/Variable_impl_ari_1_7_0.java | 2 +- .../ari_1_8_0/AriBuilder_impl_ari_1_8_0.java | 238 ++-- .../ClassTranslator_impl_ari_1_8_0.java | 2 +- .../ActionApplications_impl_ari_1_8_0.java | 2 +- .../ActionAsterisk_impl_ari_1_8_0.java | 2 +- .../actions/ActionBridges_impl_ari_1_8_0.java | 2 +- .../ActionChannels_impl_ari_1_8_0.java | 2 +- .../ActionDeviceStates_impl_ari_1_8_0.java | 2 +- .../ActionEndpoints_impl_ari_1_8_0.java | 2 +- .../actions/ActionEvents_impl_ari_1_8_0.java | 2 +- .../ActionPlaybacks_impl_ari_1_8_0.java | 2 +- .../ActionRecordings_impl_ari_1_8_0.java | 2 +- .../actions/ActionSounds_impl_ari_1_8_0.java | 2 +- .../ApplicationReplaced_impl_ari_1_8_0.java | 2 +- .../models/Application_impl_ari_1_8_0.java | 2 +- .../models/AsteriskInfo_impl_ari_1_8_0.java | 2 +- ...BridgeAttendedTransfer_impl_ari_1_8_0.java | 2 +- .../BridgeBlindTransfer_impl_ari_1_8_0.java | 2 +- .../models/BridgeCreated_impl_ari_1_8_0.java | 2 +- .../BridgeDestroyed_impl_ari_1_8_0.java | 2 +- .../models/BridgeMerged_impl_ari_1_8_0.java | 2 +- .../models/Bridge_impl_ari_1_8_0.java | 2 +- .../models/BuildInfo_impl_ari_1_8_0.java | 2 +- .../models/CallerID_impl_ari_1_8_0.java | 2 +- .../ChannelCallerId_impl_ari_1_8_0.java | 2 +- .../ChannelConnectedLine_impl_ari_1_8_0.java | 2 +- .../models/ChannelCreated_impl_ari_1_8_0.java | 2 +- .../ChannelDestroyed_impl_ari_1_8_0.java | 2 +- .../ChannelDialplan_impl_ari_1_8_0.java | 2 +- .../ChannelDtmfReceived_impl_ari_1_8_0.java | 2 +- .../ChannelEnteredBridge_impl_ari_1_8_0.java | 2 +- .../ChannelHangupRequest_impl_ari_1_8_0.java | 2 +- .../models/ChannelHold_impl_ari_1_8_0.java | 2 +- .../ChannelLeftBridge_impl_ari_1_8_0.java | 2 +- .../ChannelStateChange_impl_ari_1_8_0.java | 2 +- ...ChannelTalkingFinished_impl_ari_1_8_0.java | 2 +- .../ChannelTalkingStarted_impl_ari_1_8_0.java | 2 +- .../models/ChannelUnhold_impl_ari_1_8_0.java | 2 +- .../ChannelUserevent_impl_ari_1_8_0.java | 2 +- .../models/ChannelVarset_impl_ari_1_8_0.java | 2 +- .../models/Channel_impl_ari_1_8_0.java | 2 +- .../models/ConfigInfo_impl_ari_1_8_0.java | 2 +- .../models/ConfigTuple_impl_ari_1_8_0.java | 2 +- .../DeviceStateChanged_impl_ari_1_8_0.java | 2 +- .../models/DeviceState_impl_ari_1_8_0.java | 2 +- .../ari_1_8_0/models/Dial_impl_ari_1_8_0.java | 2 +- .../models/Dialed_impl_ari_1_8_0.java | 2 +- .../models/DialplanCEP_impl_ari_1_8_0.java | 2 +- .../EndpointStateChange_impl_ari_1_8_0.java | 2 +- .../models/Endpoint_impl_ari_1_8_0.java | 2 +- .../models/Event_impl_ari_1_8_0.java | 2 +- .../models/FormatLangPair_impl_ari_1_8_0.java | 2 +- .../models/LiveRecording_impl_ari_1_8_0.java | 2 +- .../models/Message_impl_ari_1_8_0.java | 2 +- .../models/MissingParams_impl_ari_1_8_0.java | 2 +- .../models/Module_impl_ari_1_8_0.java | 2 +- .../PlaybackFinished_impl_ari_1_8_0.java | 2 +- .../PlaybackStarted_impl_ari_1_8_0.java | 2 +- .../models/Playback_impl_ari_1_8_0.java | 2 +- .../RecordingFailed_impl_ari_1_8_0.java | 2 +- .../RecordingFinished_impl_ari_1_8_0.java | 2 +- .../RecordingStarted_impl_ari_1_8_0.java | 2 +- .../models/SetId_impl_ari_1_8_0.java | 2 +- .../models/Sound_impl_ari_1_8_0.java | 2 +- .../models/StasisEnd_impl_ari_1_8_0.java | 2 +- .../models/StasisStart_impl_ari_1_8_0.java | 2 +- .../models/StatusInfo_impl_ari_1_8_0.java | 2 +- .../StoredRecording_impl_ari_1_8_0.java | 2 +- .../models/SystemInfo_impl_ari_1_8_0.java | 2 +- .../TextMessageReceived_impl_ari_1_8_0.java | 2 +- .../TextMessageVariable_impl_ari_1_8_0.java | 2 +- .../models/TextMessage_impl_ari_1_8_0.java | 2 +- .../models/Variable_impl_ari_1_8_0.java | 2 +- .../ari_1_9_0/AriBuilder_impl_ari_1_9_0.java | 242 ++-- .../ClassTranslator_impl_ari_1_9_0.java | 2 +- .../ActionApplications_impl_ari_1_9_0.java | 2 +- .../ActionAsterisk_impl_ari_1_9_0.java | 2 +- .../actions/ActionBridges_impl_ari_1_9_0.java | 2 +- .../ActionChannels_impl_ari_1_9_0.java | 2 +- .../ActionDeviceStates_impl_ari_1_9_0.java | 2 +- .../ActionEndpoints_impl_ari_1_9_0.java | 2 +- .../actions/ActionEvents_impl_ari_1_9_0.java | 2 +- .../ActionPlaybacks_impl_ari_1_9_0.java | 2 +- .../ActionRecordings_impl_ari_1_9_0.java | 2 +- .../actions/ActionSounds_impl_ari_1_9_0.java | 2 +- .../ApplicationReplaced_impl_ari_1_9_0.java | 2 +- .../models/Application_impl_ari_1_9_0.java | 2 +- .../models/AsteriskInfo_impl_ari_1_9_0.java | 2 +- ...BridgeAttendedTransfer_impl_ari_1_9_0.java | 2 +- .../BridgeBlindTransfer_impl_ari_1_9_0.java | 2 +- .../models/BridgeCreated_impl_ari_1_9_0.java | 2 +- .../BridgeDestroyed_impl_ari_1_9_0.java | 2 +- .../models/BridgeMerged_impl_ari_1_9_0.java | 2 +- .../models/Bridge_impl_ari_1_9_0.java | 2 +- .../models/BuildInfo_impl_ari_1_9_0.java | 2 +- .../models/CallerID_impl_ari_1_9_0.java | 2 +- .../ChannelCallerId_impl_ari_1_9_0.java | 2 +- .../ChannelConnectedLine_impl_ari_1_9_0.java | 2 +- .../models/ChannelCreated_impl_ari_1_9_0.java | 2 +- .../ChannelDestroyed_impl_ari_1_9_0.java | 2 +- .../ChannelDialplan_impl_ari_1_9_0.java | 2 +- .../ChannelDtmfReceived_impl_ari_1_9_0.java | 2 +- .../ChannelEnteredBridge_impl_ari_1_9_0.java | 2 +- .../ChannelHangupRequest_impl_ari_1_9_0.java | 2 +- .../models/ChannelHold_impl_ari_1_9_0.java | 2 +- .../ChannelLeftBridge_impl_ari_1_9_0.java | 2 +- .../ChannelStateChange_impl_ari_1_9_0.java | 2 +- ...ChannelTalkingFinished_impl_ari_1_9_0.java | 2 +- .../ChannelTalkingStarted_impl_ari_1_9_0.java | 2 +- .../models/ChannelUnhold_impl_ari_1_9_0.java | 2 +- .../ChannelUserevent_impl_ari_1_9_0.java | 2 +- .../models/ChannelVarset_impl_ari_1_9_0.java | 2 +- .../models/Channel_impl_ari_1_9_0.java | 2 +- .../models/ConfigInfo_impl_ari_1_9_0.java | 2 +- .../models/ConfigTuple_impl_ari_1_9_0.java | 2 +- .../models/ContactInfo_impl_ari_1_9_0.java | 2 +- .../ContactStatusChange_impl_ari_1_9_0.java | 2 +- .../DeviceStateChanged_impl_ari_1_9_0.java | 2 +- .../models/DeviceState_impl_ari_1_9_0.java | 2 +- .../ari_1_9_0/models/Dial_impl_ari_1_9_0.java | 2 +- .../models/Dialed_impl_ari_1_9_0.java | 2 +- .../models/DialplanCEP_impl_ari_1_9_0.java | 2 +- .../EndpointStateChange_impl_ari_1_9_0.java | 2 +- .../models/Endpoint_impl_ari_1_9_0.java | 2 +- .../models/Event_impl_ari_1_9_0.java | 2 +- .../models/FormatLangPair_impl_ari_1_9_0.java | 2 +- .../models/LiveRecording_impl_ari_1_9_0.java | 2 +- .../models/LogChannel_impl_ari_1_9_0.java | 2 +- .../models/Message_impl_ari_1_9_0.java | 2 +- .../models/MissingParams_impl_ari_1_9_0.java | 2 +- .../models/Module_impl_ari_1_9_0.java | 2 +- .../PeerStatusChange_impl_ari_1_9_0.java | 2 +- .../ari_1_9_0/models/Peer_impl_ari_1_9_0.java | 2 +- .../PlaybackFinished_impl_ari_1_9_0.java | 2 +- .../PlaybackStarted_impl_ari_1_9_0.java | 2 +- .../models/Playback_impl_ari_1_9_0.java | 2 +- .../RecordingFailed_impl_ari_1_9_0.java | 2 +- .../RecordingFinished_impl_ari_1_9_0.java | 2 +- .../RecordingStarted_impl_ari_1_9_0.java | 2 +- .../models/SetId_impl_ari_1_9_0.java | 2 +- .../models/Sound_impl_ari_1_9_0.java | 2 +- .../models/StasisEnd_impl_ari_1_9_0.java | 2 +- .../models/StasisStart_impl_ari_1_9_0.java | 2 +- .../models/StatusInfo_impl_ari_1_9_0.java | 2 +- .../StoredRecording_impl_ari_1_9_0.java | 2 +- .../models/SystemInfo_impl_ari_1_9_0.java | 2 +- .../TextMessageReceived_impl_ari_1_9_0.java | 2 +- .../TextMessageVariable_impl_ari_1_9_0.java | 2 +- .../models/TextMessage_impl_ari_1_9_0.java | 2 +- .../models/Variable_impl_ari_1_9_0.java | 2 +- .../ari_2_0_0/AriBuilder_impl_ari_2_0_0.java | 266 ++--- .../ClassTranslator_impl_ari_2_0_0.java | 2 +- .../ActionApplications_impl_ari_2_0_0.java | 2 +- .../ActionAsterisk_impl_ari_2_0_0.java | 2 +- .../actions/ActionBridges_impl_ari_2_0_0.java | 2 +- .../ActionChannels_impl_ari_2_0_0.java | 2 +- .../ActionDeviceStates_impl_ari_2_0_0.java | 2 +- .../ActionEndpoints_impl_ari_2_0_0.java | 2 +- .../actions/ActionEvents_impl_ari_2_0_0.java | 2 +- .../ActionPlaybacks_impl_ari_2_0_0.java | 2 +- .../ActionRecordings_impl_ari_2_0_0.java | 2 +- .../actions/ActionSounds_impl_ari_2_0_0.java | 2 +- .../ApplicationReplaced_impl_ari_2_0_0.java | 2 +- .../models/Application_impl_ari_2_0_0.java | 2 +- .../models/AsteriskInfo_impl_ari_2_0_0.java | 2 +- ...BridgeAttendedTransfer_impl_ari_2_0_0.java | 2 +- .../BridgeBlindTransfer_impl_ari_2_0_0.java | 2 +- .../models/BridgeCreated_impl_ari_2_0_0.java | 2 +- .../BridgeDestroyed_impl_ari_2_0_0.java | 2 +- .../models/BridgeMerged_impl_ari_2_0_0.java | 2 +- ...idgeVideoSourceChanged_impl_ari_2_0_0.java | 2 +- .../models/Bridge_impl_ari_2_0_0.java | 2 +- .../models/BuildInfo_impl_ari_2_0_0.java | 2 +- .../models/CallerID_impl_ari_2_0_0.java | 2 +- .../ChannelCallerId_impl_ari_2_0_0.java | 2 +- .../ChannelConnectedLine_impl_ari_2_0_0.java | 2 +- .../models/ChannelCreated_impl_ari_2_0_0.java | 2 +- .../ChannelDestroyed_impl_ari_2_0_0.java | 2 +- .../ChannelDialplan_impl_ari_2_0_0.java | 2 +- .../ChannelDtmfReceived_impl_ari_2_0_0.java | 2 +- .../ChannelEnteredBridge_impl_ari_2_0_0.java | 2 +- .../ChannelHangupRequest_impl_ari_2_0_0.java | 2 +- .../models/ChannelHold_impl_ari_2_0_0.java | 2 +- .../ChannelLeftBridge_impl_ari_2_0_0.java | 2 +- .../ChannelStateChange_impl_ari_2_0_0.java | 2 +- ...ChannelTalkingFinished_impl_ari_2_0_0.java | 2 +- .../ChannelTalkingStarted_impl_ari_2_0_0.java | 2 +- .../models/ChannelUnhold_impl_ari_2_0_0.java | 2 +- .../ChannelUserevent_impl_ari_2_0_0.java | 2 +- .../models/ChannelVarset_impl_ari_2_0_0.java | 2 +- .../models/Channel_impl_ari_2_0_0.java | 2 +- .../models/ConfigInfo_impl_ari_2_0_0.java | 2 +- .../models/ConfigTuple_impl_ari_2_0_0.java | 2 +- .../models/ContactInfo_impl_ari_2_0_0.java | 2 +- .../ContactStatusChange_impl_ari_2_0_0.java | 2 +- .../DeviceStateChanged_impl_ari_2_0_0.java | 2 +- .../models/DeviceState_impl_ari_2_0_0.java | 2 +- .../ari_2_0_0/models/Dial_impl_ari_2_0_0.java | 2 +- .../models/Dialed_impl_ari_2_0_0.java | 2 +- .../models/DialplanCEP_impl_ari_2_0_0.java | 2 +- .../EndpointStateChange_impl_ari_2_0_0.java | 2 +- .../models/Endpoint_impl_ari_2_0_0.java | 2 +- .../models/Event_impl_ari_2_0_0.java | 2 +- .../models/FormatLangPair_impl_ari_2_0_0.java | 2 +- .../models/LiveRecording_impl_ari_2_0_0.java | 2 +- .../models/LogChannel_impl_ari_2_0_0.java | 2 +- .../models/Message_impl_ari_2_0_0.java | 2 +- .../models/MissingParams_impl_ari_2_0_0.java | 2 +- .../models/Module_impl_ari_2_0_0.java | 2 +- .../PeerStatusChange_impl_ari_2_0_0.java | 2 +- .../ari_2_0_0/models/Peer_impl_ari_2_0_0.java | 2 +- .../PlaybackContinuing_impl_ari_2_0_0.java | 2 +- .../PlaybackFinished_impl_ari_2_0_0.java | 2 +- .../PlaybackStarted_impl_ari_2_0_0.java | 2 +- .../models/Playback_impl_ari_2_0_0.java | 2 +- .../RecordingFailed_impl_ari_2_0_0.java | 2 +- .../RecordingFinished_impl_ari_2_0_0.java | 2 +- .../RecordingStarted_impl_ari_2_0_0.java | 2 +- .../models/SetId_impl_ari_2_0_0.java | 2 +- .../models/Sound_impl_ari_2_0_0.java | 2 +- .../models/StasisEnd_impl_ari_2_0_0.java | 2 +- .../models/StasisStart_impl_ari_2_0_0.java | 2 +- .../models/StatusInfo_impl_ari_2_0_0.java | 2 +- .../StoredRecording_impl_ari_2_0_0.java | 2 +- .../models/SystemInfo_impl_ari_2_0_0.java | 2 +- .../TextMessageReceived_impl_ari_2_0_0.java | 2 +- .../TextMessageVariable_impl_ari_2_0_0.java | 2 +- .../models/TextMessage_impl_ari_2_0_0.java | 2 +- .../models/Variable_impl_ari_2_0_0.java | 2 +- .../ari_3_0_0/AriBuilder_impl_ari_3_0_0.java | 328 ++++++ .../ClassTranslator_impl_ari_3_0_0.java | 335 ++++++ .../ActionApplications_impl_ari_3_0_0.java | 140 +++ .../ActionAsterisk_impl_ari_3_0_0.java | 412 +++++++ .../actions/ActionBridges_impl_ari_3_0_0.java | 494 ++++++++ .../ActionChannels_impl_ari_3_0_0.java | 1002 +++++++++++++++++ .../ActionDeviceStates_impl_ari_3_0_0.java | 131 +++ .../ActionEndpoints_impl_ari_3_0_0.java | 165 +++ .../actions/ActionEvents_impl_ari_3_0_0.java | 103 ++ .../ActionPlaybacks_impl_ari_3_0_0.java | 107 ++ .../ActionRecordings_impl_ari_3_0_0.java | 333 ++++++ .../actions/ActionSounds_impl_ari_3_0_0.java | 82 ++ .../ApplicationReplaced_impl_ari_3_0_0.java | 28 + .../models/Application_impl_ari_3_0_0.java | 81 ++ .../models/AsteriskInfo_impl_ari_3_0_0.java | 70 ++ ...BridgeAttendedTransfer_impl_ari_3_0_0.java | 202 ++++ .../BridgeBlindTransfer_impl_ari_3_0_0.java | 114 ++ .../models/BridgeCreated_impl_ari_3_0_0.java | 37 + .../BridgeDestroyed_impl_ari_3_0_0.java | 37 + .../models/BridgeMerged_impl_ari_3_0_0.java | 48 + ...idgeVideoSourceChanged_impl_ari_3_0_0.java | 48 + .../models/Bridge_impl_ari_3_0_0.java | 127 +++ .../models/BuildInfo_impl_ari_3_0_0.java | 92 ++ .../models/CallerID_impl_ari_3_0_0.java | 48 + .../ChannelCallerId_impl_ari_3_0_0.java | 59 + .../ChannelConnectedLine_impl_ari_3_0_0.java | 37 + .../models/ChannelCreated_impl_ari_3_0_0.java | 37 + .../ChannelDestroyed_impl_ari_3_0_0.java | 59 + .../ChannelDialplan_impl_ari_3_0_0.java | 59 + .../ChannelDtmfReceived_impl_ari_3_0_0.java | 61 + .../ChannelEnteredBridge_impl_ari_3_0_0.java | 48 + .../ChannelHangupRequest_impl_ari_3_0_0.java | 59 + .../models/ChannelHold_impl_ari_3_0_0.java | 48 + .../ChannelLeftBridge_impl_ari_3_0_0.java | 48 + .../ChannelStateChange_impl_ari_3_0_0.java | 37 + ...ChannelTalkingFinished_impl_ari_3_0_0.java | 48 + .../ChannelTalkingStarted_impl_ari_3_0_0.java | 37 + .../models/ChannelUnhold_impl_ari_3_0_0.java | 37 + .../ChannelUserevent_impl_ari_3_0_0.java | 81 ++ .../models/ChannelVarset_impl_ari_3_0_0.java | 61 + .../models/Channel_impl_ari_3_0_0.java | 138 +++ .../models/ConfigInfo_impl_ari_3_0_0.java | 92 ++ .../models/ConfigTuple_impl_ari_3_0_0.java | 48 + .../models/ContactInfo_impl_ari_3_0_0.java | 70 ++ .../ContactStatusChange_impl_ari_3_0_0.java | 48 + .../DeviceStateChanged_impl_ari_3_0_0.java | 37 + .../models/DeviceState_impl_ari_3_0_0.java | 48 + .../ari_3_0_0/models/Dial_impl_ari_3_0_0.java | 92 ++ .../models/Dialed_impl_ari_3_0_0.java | 26 + .../models/DialplanCEP_impl_ari_3_0_0.java | 59 + .../EndpointStateChange_impl_ari_3_0_0.java | 37 + .../models/Endpoint_impl_ari_3_0_0.java | 72 ++ .../models/Event_impl_ari_3_0_0.java | 48 + .../models/FormatLangPair_impl_ari_3_0_0.java | 48 + .../models/LiveRecording_impl_ari_3_0_0.java | 114 ++ .../models/LogChannel_impl_ari_3_0_0.java | 70 ++ .../models/Message_impl_ari_3_0_0.java | 95 ++ .../models/MissingParams_impl_ari_3_0_0.java | 37 + .../models/Module_impl_ari_3_0_0.java | 81 ++ .../PeerStatusChange_impl_ari_3_0_0.java | 48 + .../ari_3_0_0/models/Peer_impl_ari_3_0_0.java | 81 ++ .../PlaybackContinuing_impl_ari_3_0_0.java | 37 + .../PlaybackFinished_impl_ari_3_0_0.java | 37 + .../PlaybackStarted_impl_ari_3_0_0.java | 37 + .../models/Playback_impl_ari_3_0_0.java | 92 ++ .../RecordingFailed_impl_ari_3_0_0.java | 37 + .../RecordingFinished_impl_ari_3_0_0.java | 37 + .../RecordingStarted_impl_ari_3_0_0.java | 37 + .../models/SetId_impl_ari_3_0_0.java | 48 + .../models/Sound_impl_ari_3_0_0.java | 59 + .../models/StasisEnd_impl_ari_3_0_0.java | 37 + .../models/StasisStart_impl_ari_3_0_0.java | 59 + .../models/StatusInfo_impl_ari_3_0_0.java | 48 + .../StoredRecording_impl_ari_3_0_0.java | 48 + .../models/SystemInfo_impl_ari_3_0_0.java | 48 + .../TextMessageReceived_impl_ari_3_0_0.java | 48 + .../TextMessageVariable_impl_ari_3_0_0.java | 48 + .../models/TextMessage_impl_ari_3_0_0.java | 70 ++ .../models/Variable_impl_ari_3_0_0.java | 37 + .../ch/loway/oss/ari4java/codegen/run.java | 3 +- 789 files changed, 9355 insertions(+), 1717 deletions(-) create mode 100644 classes/ch/loway/oss/ari4java/generated/ari_3_0_0/AriBuilder_impl_ari_3_0_0.java create mode 100644 classes/ch/loway/oss/ari4java/generated/ari_3_0_0/ClassTranslator_impl_ari_3_0_0.java create mode 100644 classes/ch/loway/oss/ari4java/generated/ari_3_0_0/actions/ActionApplications_impl_ari_3_0_0.java create mode 100644 classes/ch/loway/oss/ari4java/generated/ari_3_0_0/actions/ActionAsterisk_impl_ari_3_0_0.java create mode 100644 classes/ch/loway/oss/ari4java/generated/ari_3_0_0/actions/ActionBridges_impl_ari_3_0_0.java create mode 100644 classes/ch/loway/oss/ari4java/generated/ari_3_0_0/actions/ActionChannels_impl_ari_3_0_0.java create mode 100644 classes/ch/loway/oss/ari4java/generated/ari_3_0_0/actions/ActionDeviceStates_impl_ari_3_0_0.java create mode 100644 classes/ch/loway/oss/ari4java/generated/ari_3_0_0/actions/ActionEndpoints_impl_ari_3_0_0.java create mode 100644 classes/ch/loway/oss/ari4java/generated/ari_3_0_0/actions/ActionEvents_impl_ari_3_0_0.java create mode 100644 classes/ch/loway/oss/ari4java/generated/ari_3_0_0/actions/ActionPlaybacks_impl_ari_3_0_0.java create mode 100644 classes/ch/loway/oss/ari4java/generated/ari_3_0_0/actions/ActionRecordings_impl_ari_3_0_0.java create mode 100644 classes/ch/loway/oss/ari4java/generated/ari_3_0_0/actions/ActionSounds_impl_ari_3_0_0.java create mode 100644 classes/ch/loway/oss/ari4java/generated/ari_3_0_0/models/ApplicationReplaced_impl_ari_3_0_0.java create mode 100644 classes/ch/loway/oss/ari4java/generated/ari_3_0_0/models/Application_impl_ari_3_0_0.java create mode 100644 classes/ch/loway/oss/ari4java/generated/ari_3_0_0/models/AsteriskInfo_impl_ari_3_0_0.java create mode 100644 classes/ch/loway/oss/ari4java/generated/ari_3_0_0/models/BridgeAttendedTransfer_impl_ari_3_0_0.java create mode 100644 classes/ch/loway/oss/ari4java/generated/ari_3_0_0/models/BridgeBlindTransfer_impl_ari_3_0_0.java create mode 100644 classes/ch/loway/oss/ari4java/generated/ari_3_0_0/models/BridgeCreated_impl_ari_3_0_0.java create mode 100644 classes/ch/loway/oss/ari4java/generated/ari_3_0_0/models/BridgeDestroyed_impl_ari_3_0_0.java create mode 100644 classes/ch/loway/oss/ari4java/generated/ari_3_0_0/models/BridgeMerged_impl_ari_3_0_0.java create mode 100644 classes/ch/loway/oss/ari4java/generated/ari_3_0_0/models/BridgeVideoSourceChanged_impl_ari_3_0_0.java create mode 100644 classes/ch/loway/oss/ari4java/generated/ari_3_0_0/models/Bridge_impl_ari_3_0_0.java create mode 100644 classes/ch/loway/oss/ari4java/generated/ari_3_0_0/models/BuildInfo_impl_ari_3_0_0.java create mode 100644 classes/ch/loway/oss/ari4java/generated/ari_3_0_0/models/CallerID_impl_ari_3_0_0.java create mode 100644 classes/ch/loway/oss/ari4java/generated/ari_3_0_0/models/ChannelCallerId_impl_ari_3_0_0.java create mode 100644 classes/ch/loway/oss/ari4java/generated/ari_3_0_0/models/ChannelConnectedLine_impl_ari_3_0_0.java create mode 100644 classes/ch/loway/oss/ari4java/generated/ari_3_0_0/models/ChannelCreated_impl_ari_3_0_0.java create mode 100644 classes/ch/loway/oss/ari4java/generated/ari_3_0_0/models/ChannelDestroyed_impl_ari_3_0_0.java create mode 100644 classes/ch/loway/oss/ari4java/generated/ari_3_0_0/models/ChannelDialplan_impl_ari_3_0_0.java create mode 100644 classes/ch/loway/oss/ari4java/generated/ari_3_0_0/models/ChannelDtmfReceived_impl_ari_3_0_0.java create mode 100644 classes/ch/loway/oss/ari4java/generated/ari_3_0_0/models/ChannelEnteredBridge_impl_ari_3_0_0.java create mode 100644 classes/ch/loway/oss/ari4java/generated/ari_3_0_0/models/ChannelHangupRequest_impl_ari_3_0_0.java create mode 100644 classes/ch/loway/oss/ari4java/generated/ari_3_0_0/models/ChannelHold_impl_ari_3_0_0.java create mode 100644 classes/ch/loway/oss/ari4java/generated/ari_3_0_0/models/ChannelLeftBridge_impl_ari_3_0_0.java create mode 100644 classes/ch/loway/oss/ari4java/generated/ari_3_0_0/models/ChannelStateChange_impl_ari_3_0_0.java create mode 100644 classes/ch/loway/oss/ari4java/generated/ari_3_0_0/models/ChannelTalkingFinished_impl_ari_3_0_0.java create mode 100644 classes/ch/loway/oss/ari4java/generated/ari_3_0_0/models/ChannelTalkingStarted_impl_ari_3_0_0.java create mode 100644 classes/ch/loway/oss/ari4java/generated/ari_3_0_0/models/ChannelUnhold_impl_ari_3_0_0.java create mode 100644 classes/ch/loway/oss/ari4java/generated/ari_3_0_0/models/ChannelUserevent_impl_ari_3_0_0.java create mode 100644 classes/ch/loway/oss/ari4java/generated/ari_3_0_0/models/ChannelVarset_impl_ari_3_0_0.java create mode 100644 classes/ch/loway/oss/ari4java/generated/ari_3_0_0/models/Channel_impl_ari_3_0_0.java create mode 100644 classes/ch/loway/oss/ari4java/generated/ari_3_0_0/models/ConfigInfo_impl_ari_3_0_0.java create mode 100644 classes/ch/loway/oss/ari4java/generated/ari_3_0_0/models/ConfigTuple_impl_ari_3_0_0.java create mode 100644 classes/ch/loway/oss/ari4java/generated/ari_3_0_0/models/ContactInfo_impl_ari_3_0_0.java create mode 100644 classes/ch/loway/oss/ari4java/generated/ari_3_0_0/models/ContactStatusChange_impl_ari_3_0_0.java create mode 100644 classes/ch/loway/oss/ari4java/generated/ari_3_0_0/models/DeviceStateChanged_impl_ari_3_0_0.java create mode 100644 classes/ch/loway/oss/ari4java/generated/ari_3_0_0/models/DeviceState_impl_ari_3_0_0.java create mode 100644 classes/ch/loway/oss/ari4java/generated/ari_3_0_0/models/Dial_impl_ari_3_0_0.java create mode 100644 classes/ch/loway/oss/ari4java/generated/ari_3_0_0/models/Dialed_impl_ari_3_0_0.java create mode 100644 classes/ch/loway/oss/ari4java/generated/ari_3_0_0/models/DialplanCEP_impl_ari_3_0_0.java create mode 100644 classes/ch/loway/oss/ari4java/generated/ari_3_0_0/models/EndpointStateChange_impl_ari_3_0_0.java create mode 100644 classes/ch/loway/oss/ari4java/generated/ari_3_0_0/models/Endpoint_impl_ari_3_0_0.java create mode 100644 classes/ch/loway/oss/ari4java/generated/ari_3_0_0/models/Event_impl_ari_3_0_0.java create mode 100644 classes/ch/loway/oss/ari4java/generated/ari_3_0_0/models/FormatLangPair_impl_ari_3_0_0.java create mode 100644 classes/ch/loway/oss/ari4java/generated/ari_3_0_0/models/LiveRecording_impl_ari_3_0_0.java create mode 100644 classes/ch/loway/oss/ari4java/generated/ari_3_0_0/models/LogChannel_impl_ari_3_0_0.java create mode 100644 classes/ch/loway/oss/ari4java/generated/ari_3_0_0/models/Message_impl_ari_3_0_0.java create mode 100644 classes/ch/loway/oss/ari4java/generated/ari_3_0_0/models/MissingParams_impl_ari_3_0_0.java create mode 100644 classes/ch/loway/oss/ari4java/generated/ari_3_0_0/models/Module_impl_ari_3_0_0.java create mode 100644 classes/ch/loway/oss/ari4java/generated/ari_3_0_0/models/PeerStatusChange_impl_ari_3_0_0.java create mode 100644 classes/ch/loway/oss/ari4java/generated/ari_3_0_0/models/Peer_impl_ari_3_0_0.java create mode 100644 classes/ch/loway/oss/ari4java/generated/ari_3_0_0/models/PlaybackContinuing_impl_ari_3_0_0.java create mode 100644 classes/ch/loway/oss/ari4java/generated/ari_3_0_0/models/PlaybackFinished_impl_ari_3_0_0.java create mode 100644 classes/ch/loway/oss/ari4java/generated/ari_3_0_0/models/PlaybackStarted_impl_ari_3_0_0.java create mode 100644 classes/ch/loway/oss/ari4java/generated/ari_3_0_0/models/Playback_impl_ari_3_0_0.java create mode 100644 classes/ch/loway/oss/ari4java/generated/ari_3_0_0/models/RecordingFailed_impl_ari_3_0_0.java create mode 100644 classes/ch/loway/oss/ari4java/generated/ari_3_0_0/models/RecordingFinished_impl_ari_3_0_0.java create mode 100644 classes/ch/loway/oss/ari4java/generated/ari_3_0_0/models/RecordingStarted_impl_ari_3_0_0.java create mode 100644 classes/ch/loway/oss/ari4java/generated/ari_3_0_0/models/SetId_impl_ari_3_0_0.java create mode 100644 classes/ch/loway/oss/ari4java/generated/ari_3_0_0/models/Sound_impl_ari_3_0_0.java create mode 100644 classes/ch/loway/oss/ari4java/generated/ari_3_0_0/models/StasisEnd_impl_ari_3_0_0.java create mode 100644 classes/ch/loway/oss/ari4java/generated/ari_3_0_0/models/StasisStart_impl_ari_3_0_0.java create mode 100644 classes/ch/loway/oss/ari4java/generated/ari_3_0_0/models/StatusInfo_impl_ari_3_0_0.java create mode 100644 classes/ch/loway/oss/ari4java/generated/ari_3_0_0/models/StoredRecording_impl_ari_3_0_0.java create mode 100644 classes/ch/loway/oss/ari4java/generated/ari_3_0_0/models/SystemInfo_impl_ari_3_0_0.java create mode 100644 classes/ch/loway/oss/ari4java/generated/ari_3_0_0/models/TextMessageReceived_impl_ari_3_0_0.java create mode 100644 classes/ch/loway/oss/ari4java/generated/ari_3_0_0/models/TextMessageVariable_impl_ari_3_0_0.java create mode 100644 classes/ch/loway/oss/ari4java/generated/ari_3_0_0/models/TextMessage_impl_ari_3_0_0.java create mode 100644 classes/ch/loway/oss/ari4java/generated/ari_3_0_0/models/Variable_impl_ari_3_0_0.java diff --git a/README.md b/README.md index a195ac49..2c9766a1 100644 --- a/README.md +++ b/README.md @@ -8,7 +8,7 @@ The Asterisk REST Interface (ARI) bindings for Java. Description ----------- -ARI is an interface available on Asterisk 12/13 that lets you write applications +ARI is an interface available on Asterisk 12/13/14/15 that lets you write applications that run externally and control call flow through REST calls while receiving events on a websocket. @@ -39,7 +39,7 @@ If you use Gradle (or any tool using Maven dependencies) you can simply declare dependencies { - compile 'ch.loway.oss.ari4java:ari4java:0.4.4' + compile 'ch.loway.oss.ari4java:ari4java:0.4.5' } This will download the package and all required dependencies. @@ -67,7 +67,7 @@ In order to run codegen (class ch.loway.oss.ari4java.codegen.run), you need the Testing and packaging --------------------- -The easiest tway to build is simply using the Gradle script supplied. +The easiest way to build is simply using the Gradle script supplied. gradle clean build @@ -87,6 +87,7 @@ The project requires: Status ------ +* 17.12.19 - Added support for ARI 3.0.0 (#78) * 17.02.04 - Added support for ARI 2.0.0 (#62) and quicker deserialization (#63) * 16.11.30 - Fixes on Graham's AutoReconnect patch - #60 - rel 0.4.3 * 16.10.21 - Fixing #55 and #57 - rel 0.4.2 diff --git a/build.gradle b/build.gradle index ccf8360d..af295ead 100644 --- a/build.gradle +++ b/build.gradle @@ -9,7 +9,7 @@ def env = System.getenv() project.ext { webapp_name = 'ari4java' - app_version = '0.4.4' + app_version = '0.4.5' build_number = env["BUILD_NUMBER"] version_class = 'ch/loway/oss/ari4java/BUILD.java' build_time = "" + new Date() diff --git a/classes/ch/loway/oss/ari4java/AriVersion.java b/classes/ch/loway/oss/ari4java/AriVersion.java index f8e2dc9a..1e990337 100644 --- a/classes/ch/loway/oss/ari4java/AriVersion.java +++ b/classes/ch/loway/oss/ari4java/AriVersion.java @@ -11,6 +11,8 @@ import ch.loway.oss.ari4java.generated.ari_1_8_0.AriBuilder_impl_ari_1_8_0; import ch.loway.oss.ari4java.generated.ari_1_9_0.AriBuilder_impl_ari_1_9_0; import ch.loway.oss.ari4java.generated.ari_2_0_0.AriBuilder_impl_ari_2_0_0; +import ch.loway.oss.ari4java.generated.ari_3_0_0.AriBuilder_impl_ari_3_0_0; + import ch.loway.oss.ari4java.tools.ARIException; /** @@ -30,6 +32,7 @@ public enum AriVersion { ARI_1_9_0 ( "1.9.0", new AriBuilder_impl_ari_1_9_0() ), /** Asterisk 13.7.0 */ ARI_1_10_0 ( "1.10.0", new AriBuilder_impl_ari_1_10_0() ), /** Asterisk 14.0.0 */ ARI_2_0_0 ( "2.0.0", new AriBuilder_impl_ari_2_0_0() ), /** Asterisk 14.2.1 */ + ARI_3_0_0 ( "3.0.0", new AriBuilder_impl_ari_3_0_0() ), /** Asterisk 14.2.1 */ IM_FEELING_LUCKY ( "", null ); diff --git a/classes/ch/loway/oss/ari4java/generated/ActionApplications.java b/classes/ch/loway/oss/ari4java/generated/ActionApplications.java index 273d1061..025c5fe9 100644 --- a/classes/ch/loway/oss/ari4java/generated/ActionApplications.java +++ b/classes/ch/loway/oss/ari4java/generated/ActionApplications.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Sat Feb 04 15:23:09 CET 2017 +// Generated on: Tue Dec 19 09:55:48 CET 2017 // ---------------------------------------------------- import java.util.Date; diff --git a/classes/ch/loway/oss/ari4java/generated/ActionAsterisk.java b/classes/ch/loway/oss/ari4java/generated/ActionAsterisk.java index e4c264de..832ce5d3 100644 --- a/classes/ch/loway/oss/ari4java/generated/ActionAsterisk.java +++ b/classes/ch/loway/oss/ari4java/generated/ActionAsterisk.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Sat Feb 04 15:23:08 CET 2017 +// Generated on: Tue Dec 19 09:55:48 CET 2017 // ---------------------------------------------------- import java.util.Date; diff --git a/classes/ch/loway/oss/ari4java/generated/ActionBridges.java b/classes/ch/loway/oss/ari4java/generated/ActionBridges.java index c8327a0c..dc088380 100644 --- a/classes/ch/loway/oss/ari4java/generated/ActionBridges.java +++ b/classes/ch/loway/oss/ari4java/generated/ActionBridges.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Sat Feb 04 15:23:08 CET 2017 +// Generated on: Tue Dec 19 09:55:48 CET 2017 // ---------------------------------------------------- import java.util.Date; diff --git a/classes/ch/loway/oss/ari4java/generated/ActionChannels.java b/classes/ch/loway/oss/ari4java/generated/ActionChannels.java index f7fc4d20..0e9c5479 100644 --- a/classes/ch/loway/oss/ari4java/generated/ActionChannels.java +++ b/classes/ch/loway/oss/ari4java/generated/ActionChannels.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Sat Feb 04 15:23:08 CET 2017 +// Generated on: Tue Dec 19 09:55:48 CET 2017 // ---------------------------------------------------- import java.util.Date; diff --git a/classes/ch/loway/oss/ari4java/generated/ActionDeviceStates.java b/classes/ch/loway/oss/ari4java/generated/ActionDeviceStates.java index 44ec0de4..c650a195 100644 --- a/classes/ch/loway/oss/ari4java/generated/ActionDeviceStates.java +++ b/classes/ch/loway/oss/ari4java/generated/ActionDeviceStates.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Sat Feb 04 15:23:09 CET 2017 +// Generated on: Tue Dec 19 09:55:48 CET 2017 // ---------------------------------------------------- import java.util.Date; diff --git a/classes/ch/loway/oss/ari4java/generated/ActionEndpoints.java b/classes/ch/loway/oss/ari4java/generated/ActionEndpoints.java index e4884208..17aa5eb5 100644 --- a/classes/ch/loway/oss/ari4java/generated/ActionEndpoints.java +++ b/classes/ch/loway/oss/ari4java/generated/ActionEndpoints.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Sat Feb 04 15:23:08 CET 2017 +// Generated on: Tue Dec 19 09:55:48 CET 2017 // ---------------------------------------------------- import java.util.Date; diff --git a/classes/ch/loway/oss/ari4java/generated/ActionEvents.java b/classes/ch/loway/oss/ari4java/generated/ActionEvents.java index a397b048..62eaf2fc 100644 --- a/classes/ch/loway/oss/ari4java/generated/ActionEvents.java +++ b/classes/ch/loway/oss/ari4java/generated/ActionEvents.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Sat Feb 04 15:23:09 CET 2017 +// Generated on: Tue Dec 19 09:55:48 CET 2017 // ---------------------------------------------------- import java.util.Date; diff --git a/classes/ch/loway/oss/ari4java/generated/ActionPlaybacks.java b/classes/ch/loway/oss/ari4java/generated/ActionPlaybacks.java index 63eab822..5f8e653d 100644 --- a/classes/ch/loway/oss/ari4java/generated/ActionPlaybacks.java +++ b/classes/ch/loway/oss/ari4java/generated/ActionPlaybacks.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Sat Feb 04 15:23:08 CET 2017 +// Generated on: Tue Dec 19 09:55:48 CET 2017 // ---------------------------------------------------- import java.util.Date; diff --git a/classes/ch/loway/oss/ari4java/generated/ActionRecordings.java b/classes/ch/loway/oss/ari4java/generated/ActionRecordings.java index 85a0038a..f3b0a75e 100644 --- a/classes/ch/loway/oss/ari4java/generated/ActionRecordings.java +++ b/classes/ch/loway/oss/ari4java/generated/ActionRecordings.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Sat Feb 04 15:23:08 CET 2017 +// Generated on: Tue Dec 19 09:55:48 CET 2017 // ---------------------------------------------------- import java.util.Date; diff --git a/classes/ch/loway/oss/ari4java/generated/ActionSounds.java b/classes/ch/loway/oss/ari4java/generated/ActionSounds.java index 8e54ba07..61014ab0 100644 --- a/classes/ch/loway/oss/ari4java/generated/ActionSounds.java +++ b/classes/ch/loway/oss/ari4java/generated/ActionSounds.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Sat Feb 04 15:23:09 CET 2017 +// Generated on: Tue Dec 19 09:55:48 CET 2017 // ---------------------------------------------------- import java.util.Date; diff --git a/classes/ch/loway/oss/ari4java/generated/Application.java b/classes/ch/loway/oss/ari4java/generated/Application.java index b490173f..b8499d5b 100644 --- a/classes/ch/loway/oss/ari4java/generated/Application.java +++ b/classes/ch/loway/oss/ari4java/generated/Application.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Sat Feb 04 15:23:08 CET 2017 +// Generated on: Tue Dec 19 09:55:48 CET 2017 // ---------------------------------------------------- import java.util.Date; diff --git a/classes/ch/loway/oss/ari4java/generated/ApplicationReplaced.java b/classes/ch/loway/oss/ari4java/generated/ApplicationReplaced.java index 025135de..f8b6d425 100644 --- a/classes/ch/loway/oss/ari4java/generated/ApplicationReplaced.java +++ b/classes/ch/loway/oss/ari4java/generated/ApplicationReplaced.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Sat Feb 04 15:23:08 CET 2017 +// Generated on: Tue Dec 19 09:55:48 CET 2017 // ---------------------------------------------------- import java.util.Date; diff --git a/classes/ch/loway/oss/ari4java/generated/AriBuilder.java b/classes/ch/loway/oss/ari4java/generated/AriBuilder.java index 97ff980a..47178c10 100644 --- a/classes/ch/loway/oss/ari4java/generated/AriBuilder.java +++ b/classes/ch/loway/oss/ari4java/generated/AriBuilder.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Sat Feb 04 15:23:09 CET 2017 +// Generated on: Tue Dec 19 09:55:48 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.ARI; diff --git a/classes/ch/loway/oss/ari4java/generated/AsteriskInfo.java b/classes/ch/loway/oss/ari4java/generated/AsteriskInfo.java index 59528d43..275b8b56 100644 --- a/classes/ch/loway/oss/ari4java/generated/AsteriskInfo.java +++ b/classes/ch/loway/oss/ari4java/generated/AsteriskInfo.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Sat Feb 04 15:23:09 CET 2017 +// Generated on: Tue Dec 19 09:55:48 CET 2017 // ---------------------------------------------------- import java.util.Date; diff --git a/classes/ch/loway/oss/ari4java/generated/Bridge.java b/classes/ch/loway/oss/ari4java/generated/Bridge.java index fe9e75ef..c739e6c2 100644 --- a/classes/ch/loway/oss/ari4java/generated/Bridge.java +++ b/classes/ch/loway/oss/ari4java/generated/Bridge.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Sat Feb 04 15:23:08 CET 2017 +// Generated on: Tue Dec 19 09:55:48 CET 2017 // ---------------------------------------------------- import java.util.Date; diff --git a/classes/ch/loway/oss/ari4java/generated/BridgeAttendedTransfer.java b/classes/ch/loway/oss/ari4java/generated/BridgeAttendedTransfer.java index 1d9ef5c2..3d4755b9 100644 --- a/classes/ch/loway/oss/ari4java/generated/BridgeAttendedTransfer.java +++ b/classes/ch/loway/oss/ari4java/generated/BridgeAttendedTransfer.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Sat Feb 04 15:23:09 CET 2017 +// Generated on: Tue Dec 19 09:55:48 CET 2017 // ---------------------------------------------------- import java.util.Date; diff --git a/classes/ch/loway/oss/ari4java/generated/BridgeBlindTransfer.java b/classes/ch/loway/oss/ari4java/generated/BridgeBlindTransfer.java index 498788e1..80660c5d 100644 --- a/classes/ch/loway/oss/ari4java/generated/BridgeBlindTransfer.java +++ b/classes/ch/loway/oss/ari4java/generated/BridgeBlindTransfer.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Sat Feb 04 15:23:09 CET 2017 +// Generated on: Tue Dec 19 09:55:48 CET 2017 // ---------------------------------------------------- import java.util.Date; diff --git a/classes/ch/loway/oss/ari4java/generated/BridgeCreated.java b/classes/ch/loway/oss/ari4java/generated/BridgeCreated.java index 583a5bdd..eb2c0487 100644 --- a/classes/ch/loway/oss/ari4java/generated/BridgeCreated.java +++ b/classes/ch/loway/oss/ari4java/generated/BridgeCreated.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Sat Feb 04 15:23:08 CET 2017 +// Generated on: Tue Dec 19 09:55:48 CET 2017 // ---------------------------------------------------- import java.util.Date; diff --git a/classes/ch/loway/oss/ari4java/generated/BridgeDestroyed.java b/classes/ch/loway/oss/ari4java/generated/BridgeDestroyed.java index a7b97b47..2fd21584 100644 --- a/classes/ch/loway/oss/ari4java/generated/BridgeDestroyed.java +++ b/classes/ch/loway/oss/ari4java/generated/BridgeDestroyed.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Sat Feb 04 15:23:08 CET 2017 +// Generated on: Tue Dec 19 09:55:48 CET 2017 // ---------------------------------------------------- import java.util.Date; diff --git a/classes/ch/loway/oss/ari4java/generated/BridgeMerged.java b/classes/ch/loway/oss/ari4java/generated/BridgeMerged.java index 5d527a8f..72de65ed 100644 --- a/classes/ch/loway/oss/ari4java/generated/BridgeMerged.java +++ b/classes/ch/loway/oss/ari4java/generated/BridgeMerged.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Sat Feb 04 15:23:08 CET 2017 +// Generated on: Tue Dec 19 09:55:48 CET 2017 // ---------------------------------------------------- import java.util.Date; diff --git a/classes/ch/loway/oss/ari4java/generated/BridgeVideoSourceChanged.java b/classes/ch/loway/oss/ari4java/generated/BridgeVideoSourceChanged.java index 638c2daf..973a6c41 100644 --- a/classes/ch/loway/oss/ari4java/generated/BridgeVideoSourceChanged.java +++ b/classes/ch/loway/oss/ari4java/generated/BridgeVideoSourceChanged.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Sat Feb 04 15:23:09 CET 2017 +// Generated on: Tue Dec 19 09:55:48 CET 2017 // ---------------------------------------------------- import java.util.Date; diff --git a/classes/ch/loway/oss/ari4java/generated/BuildInfo.java b/classes/ch/loway/oss/ari4java/generated/BuildInfo.java index e3823fda..0103d6a0 100644 --- a/classes/ch/loway/oss/ari4java/generated/BuildInfo.java +++ b/classes/ch/loway/oss/ari4java/generated/BuildInfo.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Sat Feb 04 15:23:09 CET 2017 +// Generated on: Tue Dec 19 09:55:48 CET 2017 // ---------------------------------------------------- import java.util.Date; diff --git a/classes/ch/loway/oss/ari4java/generated/CallerID.java b/classes/ch/loway/oss/ari4java/generated/CallerID.java index 3f83bcc2..3974b2b7 100644 --- a/classes/ch/loway/oss/ari4java/generated/CallerID.java +++ b/classes/ch/loway/oss/ari4java/generated/CallerID.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Sat Feb 04 15:23:08 CET 2017 +// Generated on: Tue Dec 19 09:55:48 CET 2017 // ---------------------------------------------------- import java.util.Date; diff --git a/classes/ch/loway/oss/ari4java/generated/Channel.java b/classes/ch/loway/oss/ari4java/generated/Channel.java index acb8cdd2..f9d0fad7 100644 --- a/classes/ch/loway/oss/ari4java/generated/Channel.java +++ b/classes/ch/loway/oss/ari4java/generated/Channel.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Sat Feb 04 15:23:08 CET 2017 +// Generated on: Tue Dec 19 09:55:48 CET 2017 // ---------------------------------------------------- import java.util.Date; diff --git a/classes/ch/loway/oss/ari4java/generated/ChannelCallerId.java b/classes/ch/loway/oss/ari4java/generated/ChannelCallerId.java index 73bd4edb..9f24883a 100644 --- a/classes/ch/loway/oss/ari4java/generated/ChannelCallerId.java +++ b/classes/ch/loway/oss/ari4java/generated/ChannelCallerId.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Sat Feb 04 15:23:08 CET 2017 +// Generated on: Tue Dec 19 09:55:48 CET 2017 // ---------------------------------------------------- import java.util.Date; diff --git a/classes/ch/loway/oss/ari4java/generated/ChannelConnectedLine.java b/classes/ch/loway/oss/ari4java/generated/ChannelConnectedLine.java index 718294e8..28fb6572 100644 --- a/classes/ch/loway/oss/ari4java/generated/ChannelConnectedLine.java +++ b/classes/ch/loway/oss/ari4java/generated/ChannelConnectedLine.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Sat Feb 04 15:23:09 CET 2017 +// Generated on: Tue Dec 19 09:55:48 CET 2017 // ---------------------------------------------------- import java.util.Date; diff --git a/classes/ch/loway/oss/ari4java/generated/ChannelCreated.java b/classes/ch/loway/oss/ari4java/generated/ChannelCreated.java index a6843808..40c88279 100644 --- a/classes/ch/loway/oss/ari4java/generated/ChannelCreated.java +++ b/classes/ch/loway/oss/ari4java/generated/ChannelCreated.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Sat Feb 04 15:23:09 CET 2017 +// Generated on: Tue Dec 19 09:55:48 CET 2017 // ---------------------------------------------------- import java.util.Date; diff --git a/classes/ch/loway/oss/ari4java/generated/ChannelDestroyed.java b/classes/ch/loway/oss/ari4java/generated/ChannelDestroyed.java index 32872a5b..28fd69b3 100644 --- a/classes/ch/loway/oss/ari4java/generated/ChannelDestroyed.java +++ b/classes/ch/loway/oss/ari4java/generated/ChannelDestroyed.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Sat Feb 04 15:23:09 CET 2017 +// Generated on: Tue Dec 19 09:55:48 CET 2017 // ---------------------------------------------------- import java.util.Date; diff --git a/classes/ch/loway/oss/ari4java/generated/ChannelDialplan.java b/classes/ch/loway/oss/ari4java/generated/ChannelDialplan.java index c816e45c..7dac3526 100644 --- a/classes/ch/loway/oss/ari4java/generated/ChannelDialplan.java +++ b/classes/ch/loway/oss/ari4java/generated/ChannelDialplan.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Sat Feb 04 15:23:08 CET 2017 +// Generated on: Tue Dec 19 09:55:48 CET 2017 // ---------------------------------------------------- import java.util.Date; diff --git a/classes/ch/loway/oss/ari4java/generated/ChannelDtmfReceived.java b/classes/ch/loway/oss/ari4java/generated/ChannelDtmfReceived.java index 7179b359..b0bb99e5 100644 --- a/classes/ch/loway/oss/ari4java/generated/ChannelDtmfReceived.java +++ b/classes/ch/loway/oss/ari4java/generated/ChannelDtmfReceived.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Sat Feb 04 15:23:09 CET 2017 +// Generated on: Tue Dec 19 09:55:48 CET 2017 // ---------------------------------------------------- import java.util.Date; diff --git a/classes/ch/loway/oss/ari4java/generated/ChannelEnteredBridge.java b/classes/ch/loway/oss/ari4java/generated/ChannelEnteredBridge.java index ad92ee8e..aceb1888 100644 --- a/classes/ch/loway/oss/ari4java/generated/ChannelEnteredBridge.java +++ b/classes/ch/loway/oss/ari4java/generated/ChannelEnteredBridge.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Sat Feb 04 15:23:08 CET 2017 +// Generated on: Tue Dec 19 09:55:48 CET 2017 // ---------------------------------------------------- import java.util.Date; diff --git a/classes/ch/loway/oss/ari4java/generated/ChannelHangupRequest.java b/classes/ch/loway/oss/ari4java/generated/ChannelHangupRequest.java index c800bcce..4242cee4 100644 --- a/classes/ch/loway/oss/ari4java/generated/ChannelHangupRequest.java +++ b/classes/ch/loway/oss/ari4java/generated/ChannelHangupRequest.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Sat Feb 04 15:23:09 CET 2017 +// Generated on: Tue Dec 19 09:55:48 CET 2017 // ---------------------------------------------------- import java.util.Date; diff --git a/classes/ch/loway/oss/ari4java/generated/ChannelHold.java b/classes/ch/loway/oss/ari4java/generated/ChannelHold.java index 559826b5..4f9b5c7c 100644 --- a/classes/ch/loway/oss/ari4java/generated/ChannelHold.java +++ b/classes/ch/loway/oss/ari4java/generated/ChannelHold.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Sat Feb 04 15:23:09 CET 2017 +// Generated on: Tue Dec 19 09:55:48 CET 2017 // ---------------------------------------------------- import java.util.Date; diff --git a/classes/ch/loway/oss/ari4java/generated/ChannelLeftBridge.java b/classes/ch/loway/oss/ari4java/generated/ChannelLeftBridge.java index df5f6988..87bf0f4c 100644 --- a/classes/ch/loway/oss/ari4java/generated/ChannelLeftBridge.java +++ b/classes/ch/loway/oss/ari4java/generated/ChannelLeftBridge.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Sat Feb 04 15:23:09 CET 2017 +// Generated on: Tue Dec 19 09:55:48 CET 2017 // ---------------------------------------------------- import java.util.Date; diff --git a/classes/ch/loway/oss/ari4java/generated/ChannelStateChange.java b/classes/ch/loway/oss/ari4java/generated/ChannelStateChange.java index 4d9120be..ae149e16 100644 --- a/classes/ch/loway/oss/ari4java/generated/ChannelStateChange.java +++ b/classes/ch/loway/oss/ari4java/generated/ChannelStateChange.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Sat Feb 04 15:23:08 CET 2017 +// Generated on: Tue Dec 19 09:55:48 CET 2017 // ---------------------------------------------------- import java.util.Date; diff --git a/classes/ch/loway/oss/ari4java/generated/ChannelTalkingFinished.java b/classes/ch/loway/oss/ari4java/generated/ChannelTalkingFinished.java index 3caf2123..0109e076 100644 --- a/classes/ch/loway/oss/ari4java/generated/ChannelTalkingFinished.java +++ b/classes/ch/loway/oss/ari4java/generated/ChannelTalkingFinished.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Sat Feb 04 15:23:09 CET 2017 +// Generated on: Tue Dec 19 09:55:48 CET 2017 // ---------------------------------------------------- import java.util.Date; diff --git a/classes/ch/loway/oss/ari4java/generated/ChannelTalkingStarted.java b/classes/ch/loway/oss/ari4java/generated/ChannelTalkingStarted.java index b4a8934c..cb822308 100644 --- a/classes/ch/loway/oss/ari4java/generated/ChannelTalkingStarted.java +++ b/classes/ch/loway/oss/ari4java/generated/ChannelTalkingStarted.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Sat Feb 04 15:23:09 CET 2017 +// Generated on: Tue Dec 19 09:55:48 CET 2017 // ---------------------------------------------------- import java.util.Date; diff --git a/classes/ch/loway/oss/ari4java/generated/ChannelUnhold.java b/classes/ch/loway/oss/ari4java/generated/ChannelUnhold.java index 2a2c0fee..cd73c68c 100644 --- a/classes/ch/loway/oss/ari4java/generated/ChannelUnhold.java +++ b/classes/ch/loway/oss/ari4java/generated/ChannelUnhold.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Sat Feb 04 15:23:09 CET 2017 +// Generated on: Tue Dec 19 09:55:48 CET 2017 // ---------------------------------------------------- import java.util.Date; diff --git a/classes/ch/loway/oss/ari4java/generated/ChannelUserevent.java b/classes/ch/loway/oss/ari4java/generated/ChannelUserevent.java index 7aa1bcfd..292e9dc9 100644 --- a/classes/ch/loway/oss/ari4java/generated/ChannelUserevent.java +++ b/classes/ch/loway/oss/ari4java/generated/ChannelUserevent.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Sat Feb 04 15:23:08 CET 2017 +// Generated on: Tue Dec 19 09:55:48 CET 2017 // ---------------------------------------------------- import java.util.Date; diff --git a/classes/ch/loway/oss/ari4java/generated/ChannelVarset.java b/classes/ch/loway/oss/ari4java/generated/ChannelVarset.java index bbfd64e9..e627a178 100644 --- a/classes/ch/loway/oss/ari4java/generated/ChannelVarset.java +++ b/classes/ch/loway/oss/ari4java/generated/ChannelVarset.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Sat Feb 04 15:23:09 CET 2017 +// Generated on: Tue Dec 19 09:55:48 CET 2017 // ---------------------------------------------------- import java.util.Date; diff --git a/classes/ch/loway/oss/ari4java/generated/ConfigInfo.java b/classes/ch/loway/oss/ari4java/generated/ConfigInfo.java index 06d9d04b..bf629679 100644 --- a/classes/ch/loway/oss/ari4java/generated/ConfigInfo.java +++ b/classes/ch/loway/oss/ari4java/generated/ConfigInfo.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Sat Feb 04 15:23:09 CET 2017 +// Generated on: Tue Dec 19 09:55:48 CET 2017 // ---------------------------------------------------- import java.util.Date; diff --git a/classes/ch/loway/oss/ari4java/generated/ConfigTuple.java b/classes/ch/loway/oss/ari4java/generated/ConfigTuple.java index 63861c3d..59ea5cde 100644 --- a/classes/ch/loway/oss/ari4java/generated/ConfigTuple.java +++ b/classes/ch/loway/oss/ari4java/generated/ConfigTuple.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Sat Feb 04 15:23:09 CET 2017 +// Generated on: Tue Dec 19 09:55:48 CET 2017 // ---------------------------------------------------- import java.util.Date; diff --git a/classes/ch/loway/oss/ari4java/generated/ContactInfo.java b/classes/ch/loway/oss/ari4java/generated/ContactInfo.java index 8045d5a6..bd8877e2 100644 --- a/classes/ch/loway/oss/ari4java/generated/ContactInfo.java +++ b/classes/ch/loway/oss/ari4java/generated/ContactInfo.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Sat Feb 04 15:23:08 CET 2017 +// Generated on: Tue Dec 19 09:55:48 CET 2017 // ---------------------------------------------------- import java.util.Date; diff --git a/classes/ch/loway/oss/ari4java/generated/ContactStatusChange.java b/classes/ch/loway/oss/ari4java/generated/ContactStatusChange.java index 9b79f52c..d299598b 100644 --- a/classes/ch/loway/oss/ari4java/generated/ContactStatusChange.java +++ b/classes/ch/loway/oss/ari4java/generated/ContactStatusChange.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Sat Feb 04 15:23:08 CET 2017 +// Generated on: Tue Dec 19 09:55:48 CET 2017 // ---------------------------------------------------- import java.util.Date; diff --git a/classes/ch/loway/oss/ari4java/generated/DeviceState.java b/classes/ch/loway/oss/ari4java/generated/DeviceState.java index 2e04e3d9..a6bfee5e 100644 --- a/classes/ch/loway/oss/ari4java/generated/DeviceState.java +++ b/classes/ch/loway/oss/ari4java/generated/DeviceState.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Sat Feb 04 15:23:09 CET 2017 +// Generated on: Tue Dec 19 09:55:48 CET 2017 // ---------------------------------------------------- import java.util.Date; diff --git a/classes/ch/loway/oss/ari4java/generated/DeviceStateChanged.java b/classes/ch/loway/oss/ari4java/generated/DeviceStateChanged.java index bc74bdec..cb098938 100644 --- a/classes/ch/loway/oss/ari4java/generated/DeviceStateChanged.java +++ b/classes/ch/loway/oss/ari4java/generated/DeviceStateChanged.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Sat Feb 04 15:23:09 CET 2017 +// Generated on: Tue Dec 19 09:55:48 CET 2017 // ---------------------------------------------------- import java.util.Date; diff --git a/classes/ch/loway/oss/ari4java/generated/Dial.java b/classes/ch/loway/oss/ari4java/generated/Dial.java index e5c7c8a7..a80169f5 100644 --- a/classes/ch/loway/oss/ari4java/generated/Dial.java +++ b/classes/ch/loway/oss/ari4java/generated/Dial.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Sat Feb 04 15:23:08 CET 2017 +// Generated on: Tue Dec 19 09:55:48 CET 2017 // ---------------------------------------------------- import java.util.Date; diff --git a/classes/ch/loway/oss/ari4java/generated/Dialed.java b/classes/ch/loway/oss/ari4java/generated/Dialed.java index a2576c04..c1363088 100644 --- a/classes/ch/loway/oss/ari4java/generated/Dialed.java +++ b/classes/ch/loway/oss/ari4java/generated/Dialed.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Sat Feb 04 15:23:09 CET 2017 +// Generated on: Tue Dec 19 09:55:48 CET 2017 // ---------------------------------------------------- import java.util.Date; diff --git a/classes/ch/loway/oss/ari4java/generated/DialplanCEP.java b/classes/ch/loway/oss/ari4java/generated/DialplanCEP.java index c9b0ec06..92e89e48 100644 --- a/classes/ch/loway/oss/ari4java/generated/DialplanCEP.java +++ b/classes/ch/loway/oss/ari4java/generated/DialplanCEP.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Sat Feb 04 15:23:08 CET 2017 +// Generated on: Tue Dec 19 09:55:48 CET 2017 // ---------------------------------------------------- import java.util.Date; diff --git a/classes/ch/loway/oss/ari4java/generated/Endpoint.java b/classes/ch/loway/oss/ari4java/generated/Endpoint.java index afb70145..51921059 100644 --- a/classes/ch/loway/oss/ari4java/generated/Endpoint.java +++ b/classes/ch/loway/oss/ari4java/generated/Endpoint.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Sat Feb 04 15:23:08 CET 2017 +// Generated on: Tue Dec 19 09:55:48 CET 2017 // ---------------------------------------------------- import java.util.Date; diff --git a/classes/ch/loway/oss/ari4java/generated/EndpointStateChange.java b/classes/ch/loway/oss/ari4java/generated/EndpointStateChange.java index b8db8ba6..3dc99795 100644 --- a/classes/ch/loway/oss/ari4java/generated/EndpointStateChange.java +++ b/classes/ch/loway/oss/ari4java/generated/EndpointStateChange.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Sat Feb 04 15:23:08 CET 2017 +// Generated on: Tue Dec 19 09:55:48 CET 2017 // ---------------------------------------------------- import java.util.Date; diff --git a/classes/ch/loway/oss/ari4java/generated/Event.java b/classes/ch/loway/oss/ari4java/generated/Event.java index 6d6df2c2..9b5ceca9 100644 --- a/classes/ch/loway/oss/ari4java/generated/Event.java +++ b/classes/ch/loway/oss/ari4java/generated/Event.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Sat Feb 04 15:23:09 CET 2017 +// Generated on: Tue Dec 19 09:55:48 CET 2017 // ---------------------------------------------------- import java.util.Date; diff --git a/classes/ch/loway/oss/ari4java/generated/FormatLangPair.java b/classes/ch/loway/oss/ari4java/generated/FormatLangPair.java index 96da0db5..27dce2f2 100644 --- a/classes/ch/loway/oss/ari4java/generated/FormatLangPair.java +++ b/classes/ch/loway/oss/ari4java/generated/FormatLangPair.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Sat Feb 04 15:23:09 CET 2017 +// Generated on: Tue Dec 19 09:55:48 CET 2017 // ---------------------------------------------------- import java.util.Date; diff --git a/classes/ch/loway/oss/ari4java/generated/LiveRecording.java b/classes/ch/loway/oss/ari4java/generated/LiveRecording.java index 9f017e32..cec21aca 100644 --- a/classes/ch/loway/oss/ari4java/generated/LiveRecording.java +++ b/classes/ch/loway/oss/ari4java/generated/LiveRecording.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Sat Feb 04 15:23:08 CET 2017 +// Generated on: Tue Dec 19 09:55:48 CET 2017 // ---------------------------------------------------- import java.util.Date; diff --git a/classes/ch/loway/oss/ari4java/generated/LogChannel.java b/classes/ch/loway/oss/ari4java/generated/LogChannel.java index e9b679e6..e74a44fb 100644 --- a/classes/ch/loway/oss/ari4java/generated/LogChannel.java +++ b/classes/ch/loway/oss/ari4java/generated/LogChannel.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Sat Feb 04 15:23:09 CET 2017 +// Generated on: Tue Dec 19 09:55:48 CET 2017 // ---------------------------------------------------- import java.util.Date; diff --git a/classes/ch/loway/oss/ari4java/generated/Message.java b/classes/ch/loway/oss/ari4java/generated/Message.java index f0ea2238..b88c30ec 100644 --- a/classes/ch/loway/oss/ari4java/generated/Message.java +++ b/classes/ch/loway/oss/ari4java/generated/Message.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Sat Feb 04 15:23:08 CET 2017 +// Generated on: Tue Dec 19 09:55:48 CET 2017 // ---------------------------------------------------- import java.util.Date; diff --git a/classes/ch/loway/oss/ari4java/generated/MissingParams.java b/classes/ch/loway/oss/ari4java/generated/MissingParams.java index d7037984..97398941 100644 --- a/classes/ch/loway/oss/ari4java/generated/MissingParams.java +++ b/classes/ch/loway/oss/ari4java/generated/MissingParams.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Sat Feb 04 15:23:09 CET 2017 +// Generated on: Tue Dec 19 09:55:48 CET 2017 // ---------------------------------------------------- import java.util.Date; diff --git a/classes/ch/loway/oss/ari4java/generated/Module.java b/classes/ch/loway/oss/ari4java/generated/Module.java index 9b44a87f..0911cf94 100644 --- a/classes/ch/loway/oss/ari4java/generated/Module.java +++ b/classes/ch/loway/oss/ari4java/generated/Module.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Sat Feb 04 15:23:08 CET 2017 +// Generated on: Tue Dec 19 09:55:48 CET 2017 // ---------------------------------------------------- import java.util.Date; diff --git a/classes/ch/loway/oss/ari4java/generated/Peer.java b/classes/ch/loway/oss/ari4java/generated/Peer.java index 56fe87a7..69eda194 100644 --- a/classes/ch/loway/oss/ari4java/generated/Peer.java +++ b/classes/ch/loway/oss/ari4java/generated/Peer.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Sat Feb 04 15:23:08 CET 2017 +// Generated on: Tue Dec 19 09:55:48 CET 2017 // ---------------------------------------------------- import java.util.Date; diff --git a/classes/ch/loway/oss/ari4java/generated/PeerStatusChange.java b/classes/ch/loway/oss/ari4java/generated/PeerStatusChange.java index 01232591..421286e1 100644 --- a/classes/ch/loway/oss/ari4java/generated/PeerStatusChange.java +++ b/classes/ch/loway/oss/ari4java/generated/PeerStatusChange.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Sat Feb 04 15:23:08 CET 2017 +// Generated on: Tue Dec 19 09:55:48 CET 2017 // ---------------------------------------------------- import java.util.Date; diff --git a/classes/ch/loway/oss/ari4java/generated/Playback.java b/classes/ch/loway/oss/ari4java/generated/Playback.java index d8820550..8eab463d 100644 --- a/classes/ch/loway/oss/ari4java/generated/Playback.java +++ b/classes/ch/loway/oss/ari4java/generated/Playback.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Sat Feb 04 15:23:09 CET 2017 +// Generated on: Tue Dec 19 09:55:48 CET 2017 // ---------------------------------------------------- import java.util.Date; diff --git a/classes/ch/loway/oss/ari4java/generated/PlaybackContinuing.java b/classes/ch/loway/oss/ari4java/generated/PlaybackContinuing.java index ce0e2614..e81821e7 100644 --- a/classes/ch/loway/oss/ari4java/generated/PlaybackContinuing.java +++ b/classes/ch/loway/oss/ari4java/generated/PlaybackContinuing.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Sat Feb 04 15:23:08 CET 2017 +// Generated on: Tue Dec 19 09:55:48 CET 2017 // ---------------------------------------------------- import java.util.Date; diff --git a/classes/ch/loway/oss/ari4java/generated/PlaybackFinished.java b/classes/ch/loway/oss/ari4java/generated/PlaybackFinished.java index ca4dad80..732a0206 100644 --- a/classes/ch/loway/oss/ari4java/generated/PlaybackFinished.java +++ b/classes/ch/loway/oss/ari4java/generated/PlaybackFinished.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Sat Feb 04 15:23:08 CET 2017 +// Generated on: Tue Dec 19 09:55:48 CET 2017 // ---------------------------------------------------- import java.util.Date; diff --git a/classes/ch/loway/oss/ari4java/generated/PlaybackStarted.java b/classes/ch/loway/oss/ari4java/generated/PlaybackStarted.java index 115c9975..c0ad04cc 100644 --- a/classes/ch/loway/oss/ari4java/generated/PlaybackStarted.java +++ b/classes/ch/loway/oss/ari4java/generated/PlaybackStarted.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Sat Feb 04 15:23:08 CET 2017 +// Generated on: Tue Dec 19 09:55:48 CET 2017 // ---------------------------------------------------- import java.util.Date; diff --git a/classes/ch/loway/oss/ari4java/generated/RecordingFailed.java b/classes/ch/loway/oss/ari4java/generated/RecordingFailed.java index b2af191a..549482b8 100644 --- a/classes/ch/loway/oss/ari4java/generated/RecordingFailed.java +++ b/classes/ch/loway/oss/ari4java/generated/RecordingFailed.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Sat Feb 04 15:23:08 CET 2017 +// Generated on: Tue Dec 19 09:55:48 CET 2017 // ---------------------------------------------------- import java.util.Date; diff --git a/classes/ch/loway/oss/ari4java/generated/RecordingFinished.java b/classes/ch/loway/oss/ari4java/generated/RecordingFinished.java index 3f8a2268..e6e85061 100644 --- a/classes/ch/loway/oss/ari4java/generated/RecordingFinished.java +++ b/classes/ch/loway/oss/ari4java/generated/RecordingFinished.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Sat Feb 04 15:23:08 CET 2017 +// Generated on: Tue Dec 19 09:55:48 CET 2017 // ---------------------------------------------------- import java.util.Date; diff --git a/classes/ch/loway/oss/ari4java/generated/RecordingStarted.java b/classes/ch/loway/oss/ari4java/generated/RecordingStarted.java index 0b8f717d..409b6123 100644 --- a/classes/ch/loway/oss/ari4java/generated/RecordingStarted.java +++ b/classes/ch/loway/oss/ari4java/generated/RecordingStarted.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Sat Feb 04 15:23:09 CET 2017 +// Generated on: Tue Dec 19 09:55:48 CET 2017 // ---------------------------------------------------- import java.util.Date; diff --git a/classes/ch/loway/oss/ari4java/generated/SetId.java b/classes/ch/loway/oss/ari4java/generated/SetId.java index 18e9f08f..b8c7160b 100644 --- a/classes/ch/loway/oss/ari4java/generated/SetId.java +++ b/classes/ch/loway/oss/ari4java/generated/SetId.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Sat Feb 04 15:23:08 CET 2017 +// Generated on: Tue Dec 19 09:55:48 CET 2017 // ---------------------------------------------------- import java.util.Date; diff --git a/classes/ch/loway/oss/ari4java/generated/Sound.java b/classes/ch/loway/oss/ari4java/generated/Sound.java index 0d0d2a27..252e7f04 100644 --- a/classes/ch/loway/oss/ari4java/generated/Sound.java +++ b/classes/ch/loway/oss/ari4java/generated/Sound.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Sat Feb 04 15:23:08 CET 2017 +// Generated on: Tue Dec 19 09:55:48 CET 2017 // ---------------------------------------------------- import java.util.Date; diff --git a/classes/ch/loway/oss/ari4java/generated/StasisEnd.java b/classes/ch/loway/oss/ari4java/generated/StasisEnd.java index 76bf9e6d..fb53dc2e 100644 --- a/classes/ch/loway/oss/ari4java/generated/StasisEnd.java +++ b/classes/ch/loway/oss/ari4java/generated/StasisEnd.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Sat Feb 04 15:23:08 CET 2017 +// Generated on: Tue Dec 19 09:55:48 CET 2017 // ---------------------------------------------------- import java.util.Date; diff --git a/classes/ch/loway/oss/ari4java/generated/StasisStart.java b/classes/ch/loway/oss/ari4java/generated/StasisStart.java index 76dbef44..ae01aeeb 100644 --- a/classes/ch/loway/oss/ari4java/generated/StasisStart.java +++ b/classes/ch/loway/oss/ari4java/generated/StasisStart.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Sat Feb 04 15:23:09 CET 2017 +// Generated on: Tue Dec 19 09:55:48 CET 2017 // ---------------------------------------------------- import java.util.Date; diff --git a/classes/ch/loway/oss/ari4java/generated/StatusInfo.java b/classes/ch/loway/oss/ari4java/generated/StatusInfo.java index b990c97f..d77dd86b 100644 --- a/classes/ch/loway/oss/ari4java/generated/StatusInfo.java +++ b/classes/ch/loway/oss/ari4java/generated/StatusInfo.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Sat Feb 04 15:23:09 CET 2017 +// Generated on: Tue Dec 19 09:55:48 CET 2017 // ---------------------------------------------------- import java.util.Date; diff --git a/classes/ch/loway/oss/ari4java/generated/StoredRecording.java b/classes/ch/loway/oss/ari4java/generated/StoredRecording.java index 2d27b9cc..f62bf333 100644 --- a/classes/ch/loway/oss/ari4java/generated/StoredRecording.java +++ b/classes/ch/loway/oss/ari4java/generated/StoredRecording.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Sat Feb 04 15:23:09 CET 2017 +// Generated on: Tue Dec 19 09:55:48 CET 2017 // ---------------------------------------------------- import java.util.Date; diff --git a/classes/ch/loway/oss/ari4java/generated/SystemInfo.java b/classes/ch/loway/oss/ari4java/generated/SystemInfo.java index 3091095c..e323d047 100644 --- a/classes/ch/loway/oss/ari4java/generated/SystemInfo.java +++ b/classes/ch/loway/oss/ari4java/generated/SystemInfo.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Sat Feb 04 15:23:08 CET 2017 +// Generated on: Tue Dec 19 09:55:48 CET 2017 // ---------------------------------------------------- import java.util.Date; diff --git a/classes/ch/loway/oss/ari4java/generated/TextMessage.java b/classes/ch/loway/oss/ari4java/generated/TextMessage.java index 558b8920..59057156 100644 --- a/classes/ch/loway/oss/ari4java/generated/TextMessage.java +++ b/classes/ch/loway/oss/ari4java/generated/TextMessage.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Sat Feb 04 15:23:08 CET 2017 +// Generated on: Tue Dec 19 09:55:48 CET 2017 // ---------------------------------------------------- import java.util.Date; diff --git a/classes/ch/loway/oss/ari4java/generated/TextMessageReceived.java b/classes/ch/loway/oss/ari4java/generated/TextMessageReceived.java index eebf0434..69ab382d 100644 --- a/classes/ch/loway/oss/ari4java/generated/TextMessageReceived.java +++ b/classes/ch/loway/oss/ari4java/generated/TextMessageReceived.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Sat Feb 04 15:23:09 CET 2017 +// Generated on: Tue Dec 19 09:55:48 CET 2017 // ---------------------------------------------------- import java.util.Date; diff --git a/classes/ch/loway/oss/ari4java/generated/TextMessageVariable.java b/classes/ch/loway/oss/ari4java/generated/TextMessageVariable.java index 06bd3501..b9c85522 100644 --- a/classes/ch/loway/oss/ari4java/generated/TextMessageVariable.java +++ b/classes/ch/loway/oss/ari4java/generated/TextMessageVariable.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Sat Feb 04 15:23:09 CET 2017 +// Generated on: Tue Dec 19 09:55:48 CET 2017 // ---------------------------------------------------- import java.util.Date; diff --git a/classes/ch/loway/oss/ari4java/generated/Variable.java b/classes/ch/loway/oss/ari4java/generated/Variable.java index aca298c7..ce66da4b 100644 --- a/classes/ch/loway/oss/ari4java/generated/Variable.java +++ b/classes/ch/loway/oss/ari4java/generated/Variable.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Sat Feb 04 15:23:08 CET 2017 +// Generated on: Tue Dec 19 09:55:48 CET 2017 // ---------------------------------------------------- import java.util.Date; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_0_0_1/AriBuilder_impl_ari_0_0_1.java b/classes/ch/loway/oss/ari4java/generated/ari_0_0_1/AriBuilder_impl_ari_0_0_1.java index a623f5cf..eb2953ad 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_0_0_1/AriBuilder_impl_ari_0_0_1.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_0_0_1/AriBuilder_impl_ari_0_0_1.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Sat Feb 04 15:23:09 CET 2017 +// Generated on: Tue Dec 19 09:55:49 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.ari_0_0_1.models.*; @@ -53,192 +53,192 @@ public ActionApplications actionApplications() { return new ActionApplications_impl_ari_0_0_1(); }; -public StasisEnd stasisEnd() { - return new StasisEnd_impl_ari_0_0_1(); - }; - -public MissingParams missingParams() { - return new MissingParams_impl_ari_0_0_1(); - }; - -public RecordingStarted recordingStarted() { - return new RecordingStarted_impl_ari_0_0_1(); +public ChannelEnteredBridge channelEnteredBridge() { + return new ChannelEnteredBridge_impl_ari_0_0_1(); }; -public DeviceState deviceState() { - return new DeviceState_impl_ari_0_0_1(); +public CallerID callerID() { + return new CallerID_impl_ari_0_0_1(); }; -public RecordingFailed recordingFailed() { - return new RecordingFailed_impl_ari_0_0_1(); +public StasisEnd stasisEnd() { + return new StasisEnd_impl_ari_0_0_1(); }; public LiveRecording liveRecording() { return new LiveRecording_impl_ari_0_0_1(); }; -public Variable variable() { - return new Variable_impl_ari_0_0_1(); +public Dialed dialed() { + return new Dialed_impl_ari_0_0_1(); }; public Sound sound() { return new Sound_impl_ari_0_0_1(); }; -public BridgeDestroyed bridgeDestroyed() { - return new BridgeDestroyed_impl_ari_0_0_1(); +public AsteriskInfo asteriskInfo() { + return new AsteriskInfo_impl_ari_0_0_1(); }; -public ChannelLeftBridge channelLeftBridge() { - return new ChannelLeftBridge_impl_ari_0_0_1(); +public Bridge bridge() { + return new Bridge_impl_ari_0_0_1(); }; -public ChannelDtmfReceived channelDtmfReceived() { - return new ChannelDtmfReceived_impl_ari_0_0_1(); +public MissingParams missingParams() { + return new MissingParams_impl_ari_0_0_1(); }; -public PlaybackFinished playbackFinished() { - return new PlaybackFinished_impl_ari_0_0_1(); +public RecordingStarted recordingStarted() { + return new RecordingStarted_impl_ari_0_0_1(); }; -public ChannelDestroyed channelDestroyed() { - return new ChannelDestroyed_impl_ari_0_0_1(); +public RecordingFailed recordingFailed() { + return new RecordingFailed_impl_ari_0_0_1(); }; -public ChannelVarset channelVarset() { - return new ChannelVarset_impl_ari_0_0_1(); +public StoredRecording storedRecording() { + return new StoredRecording_impl_ari_0_0_1(); }; -public ChannelUserevent channelUserevent() { - return new ChannelUserevent_impl_ari_0_0_1(); +public PlaybackStarted playbackStarted() { + return new PlaybackStarted_impl_ari_0_0_1(); }; -public Endpoint endpoint() { - return new Endpoint_impl_ari_0_0_1(); +public ChannelDialplan channelDialplan() { + return new ChannelDialplan_impl_ari_0_0_1(); }; -public PlaybackStarted playbackStarted() { - return new PlaybackStarted_impl_ari_0_0_1(); +public ChannelCreated channelCreated() { + return new ChannelCreated_impl_ari_0_0_1(); }; -public DeviceStateChanged deviceStateChanged() { - return new DeviceStateChanged_impl_ari_0_0_1(); +public BridgeDestroyed bridgeDestroyed() { + return new BridgeDestroyed_impl_ari_0_0_1(); }; -public BridgeCreated bridgeCreated() { - return new BridgeCreated_impl_ari_0_0_1(); +public SetId setId() { + return new SetId_impl_ari_0_0_1(); }; -public Channel channel() { - return new Channel_impl_ari_0_0_1(); +public Playback playback() { + return new Playback_impl_ari_0_0_1(); }; -public FormatLangPair formatLangPair() { - return new FormatLangPair_impl_ari_0_0_1(); +public Endpoint endpoint() { + return new Endpoint_impl_ari_0_0_1(); }; -public CallerID callerID() { - return new CallerID_impl_ari_0_0_1(); +public ChannelVarset channelVarset() { + return new ChannelVarset_impl_ari_0_0_1(); }; -public Dialed dialed() { - return new Dialed_impl_ari_0_0_1(); +public Message message() { + return new Message_impl_ari_0_0_1(); }; -public DialplanCEP dialplanCEP() { - return new DialplanCEP_impl_ari_0_0_1(); +public SystemInfo systemInfo() { + return new SystemInfo_impl_ari_0_0_1(); }; -public Playback playback() { - return new Playback_impl_ari_0_0_1(); +public Variable variable() { + return new Variable_impl_ari_0_0_1(); }; -public SetId setId() { - return new SetId_impl_ari_0_0_1(); +public BuildInfo buildInfo() { + return new BuildInfo_impl_ari_0_0_1(); }; -public Event event() { - return new Event_impl_ari_0_0_1(); +public ChannelStateChange channelStateChange() { + return new ChannelStateChange_impl_ari_0_0_1(); + }; + +public Application application() { + return new Application_impl_ari_0_0_1(); }; public ConfigInfo configInfo() { return new ConfigInfo_impl_ari_0_0_1(); }; -public ChannelDialplan channelDialplan() { - return new ChannelDialplan_impl_ari_0_0_1(); +public ChannelDtmfReceived channelDtmfReceived() { + return new ChannelDtmfReceived_impl_ari_0_0_1(); }; -public ChannelCallerId channelCallerId() { - return new ChannelCallerId_impl_ari_0_0_1(); +public EndpointStateChange endpointStateChange() { + return new EndpointStateChange_impl_ari_0_0_1(); }; -public StoredRecording storedRecording() { - return new StoredRecording_impl_ari_0_0_1(); +public Channel channel() { + return new Channel_impl_ari_0_0_1(); }; -public Application application() { - return new Application_impl_ari_0_0_1(); +public ApplicationReplaced applicationReplaced() { + return new ApplicationReplaced_impl_ari_0_0_1(); + }; + +public BridgeCreated bridgeCreated() { + return new BridgeCreated_impl_ari_0_0_1(); }; public StatusInfo statusInfo() { return new StatusInfo_impl_ari_0_0_1(); }; -public BridgeMerged bridgeMerged() { - return new BridgeMerged_impl_ari_0_0_1(); +public ChannelUserevent channelUserevent() { + return new ChannelUserevent_impl_ari_0_0_1(); }; -public ChannelCreated channelCreated() { - return new ChannelCreated_impl_ari_0_0_1(); +public Event event() { + return new Event_impl_ari_0_0_1(); }; -public ChannelHangupRequest channelHangupRequest() { - return new ChannelHangupRequest_impl_ari_0_0_1(); +public DeviceStateChanged deviceStateChanged() { + return new DeviceStateChanged_impl_ari_0_0_1(); }; -public StasisStart stasisStart() { - return new StasisStart_impl_ari_0_0_1(); +public BridgeMerged bridgeMerged() { + return new BridgeMerged_impl_ari_0_0_1(); }; -public AsteriskInfo asteriskInfo() { - return new AsteriskInfo_impl_ari_0_0_1(); +public ChannelLeftBridge channelLeftBridge() { + return new ChannelLeftBridge_impl_ari_0_0_1(); }; -public Bridge bridge() { - return new Bridge_impl_ari_0_0_1(); +public RecordingFinished recordingFinished() { + return new RecordingFinished_impl_ari_0_0_1(); }; -public ChannelStateChange channelStateChange() { - return new ChannelStateChange_impl_ari_0_0_1(); +public DialplanCEP dialplanCEP() { + return new DialplanCEP_impl_ari_0_0_1(); }; -public Message message() { - return new Message_impl_ari_0_0_1(); +public ChannelCallerId channelCallerId() { + return new ChannelCallerId_impl_ari_0_0_1(); }; -public ApplicationReplaced applicationReplaced() { - return new ApplicationReplaced_impl_ari_0_0_1(); +public ChannelHangupRequest channelHangupRequest() { + return new ChannelHangupRequest_impl_ari_0_0_1(); }; -public SystemInfo systemInfo() { - return new SystemInfo_impl_ari_0_0_1(); +public DeviceState deviceState() { + return new DeviceState_impl_ari_0_0_1(); }; -public EndpointStateChange endpointStateChange() { - return new EndpointStateChange_impl_ari_0_0_1(); +public StasisStart stasisStart() { + return new StasisStart_impl_ari_0_0_1(); }; -public RecordingFinished recordingFinished() { - return new RecordingFinished_impl_ari_0_0_1(); +public ChannelDestroyed channelDestroyed() { + return new ChannelDestroyed_impl_ari_0_0_1(); }; -public ChannelEnteredBridge channelEnteredBridge() { - return new ChannelEnteredBridge_impl_ari_0_0_1(); +public FormatLangPair formatLangPair() { + return new FormatLangPair_impl_ari_0_0_1(); }; -public BuildInfo buildInfo() { - return new BuildInfo_impl_ari_0_0_1(); +public PlaybackFinished playbackFinished() { + return new PlaybackFinished_impl_ari_0_0_1(); }; public BridgeAttendedTransfer bridgeAttendedTransfer() { diff --git a/classes/ch/loway/oss/ari4java/generated/ari_0_0_1/ClassTranslator_impl_ari_0_0_1.java b/classes/ch/loway/oss/ari4java/generated/ari_0_0_1/ClassTranslator_impl_ari_0_0_1.java index 9f8130ba..17596311 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_0_0_1/ClassTranslator_impl_ari_0_0_1.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_0_0_1/ClassTranslator_impl_ari_0_0_1.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Sat Feb 04 15:23:09 CET 2017 +// Generated on: Tue Dec 19 09:55:50 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.ARI; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_0_0_1/actions/ActionApplications_impl_ari_0_0_1.java b/classes/ch/loway/oss/ari4java/generated/ari_0_0_1/actions/ActionApplications_impl_ari_0_0_1.java index 92ce6b82..837bc178 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_0_0_1/actions/ActionApplications_impl_ari_0_0_1.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_0_0_1/actions/ActionApplications_impl_ari_0_0_1.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Sat Feb 04 15:23:09 CET 2017 +// Generated on: Tue Dec 19 09:55:49 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_0_0_1/actions/ActionAsterisk_impl_ari_0_0_1.java b/classes/ch/loway/oss/ari4java/generated/ari_0_0_1/actions/ActionAsterisk_impl_ari_0_0_1.java index 162d7e34..dbf892b1 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_0_0_1/actions/ActionAsterisk_impl_ari_0_0_1.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_0_0_1/actions/ActionAsterisk_impl_ari_0_0_1.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Sat Feb 04 15:23:09 CET 2017 +// Generated on: Tue Dec 19 09:55:49 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_0_0_1/actions/ActionBridges_impl_ari_0_0_1.java b/classes/ch/loway/oss/ari4java/generated/ari_0_0_1/actions/ActionBridges_impl_ari_0_0_1.java index 5b608a34..20bdf737 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_0_0_1/actions/ActionBridges_impl_ari_0_0_1.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_0_0_1/actions/ActionBridges_impl_ari_0_0_1.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Sat Feb 04 15:23:09 CET 2017 +// Generated on: Tue Dec 19 09:55:49 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_0_0_1/actions/ActionChannels_impl_ari_0_0_1.java b/classes/ch/loway/oss/ari4java/generated/ari_0_0_1/actions/ActionChannels_impl_ari_0_0_1.java index ddd58f19..939af4cc 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_0_0_1/actions/ActionChannels_impl_ari_0_0_1.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_0_0_1/actions/ActionChannels_impl_ari_0_0_1.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Sat Feb 04 15:23:09 CET 2017 +// Generated on: Tue Dec 19 09:55:49 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_0_0_1/actions/ActionDeviceStates_impl_ari_0_0_1.java b/classes/ch/loway/oss/ari4java/generated/ari_0_0_1/actions/ActionDeviceStates_impl_ari_0_0_1.java index 1f7c7f05..66735e3f 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_0_0_1/actions/ActionDeviceStates_impl_ari_0_0_1.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_0_0_1/actions/ActionDeviceStates_impl_ari_0_0_1.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Sat Feb 04 15:23:09 CET 2017 +// Generated on: Tue Dec 19 09:55:49 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_0_0_1/actions/ActionEndpoints_impl_ari_0_0_1.java b/classes/ch/loway/oss/ari4java/generated/ari_0_0_1/actions/ActionEndpoints_impl_ari_0_0_1.java index 34ff6024..73333a6a 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_0_0_1/actions/ActionEndpoints_impl_ari_0_0_1.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_0_0_1/actions/ActionEndpoints_impl_ari_0_0_1.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Sat Feb 04 15:23:09 CET 2017 +// Generated on: Tue Dec 19 09:55:49 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_0_0_1/actions/ActionEvents_impl_ari_0_0_1.java b/classes/ch/loway/oss/ari4java/generated/ari_0_0_1/actions/ActionEvents_impl_ari_0_0_1.java index 0d66046b..013960e7 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_0_0_1/actions/ActionEvents_impl_ari_0_0_1.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_0_0_1/actions/ActionEvents_impl_ari_0_0_1.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Sat Feb 04 15:23:09 CET 2017 +// Generated on: Tue Dec 19 09:55:49 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_0_0_1/actions/ActionPlaybacks_impl_ari_0_0_1.java b/classes/ch/loway/oss/ari4java/generated/ari_0_0_1/actions/ActionPlaybacks_impl_ari_0_0_1.java index 7332f649..31ec8507 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_0_0_1/actions/ActionPlaybacks_impl_ari_0_0_1.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_0_0_1/actions/ActionPlaybacks_impl_ari_0_0_1.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Sat Feb 04 15:23:09 CET 2017 +// Generated on: Tue Dec 19 09:55:49 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_0_0_1/actions/ActionRecordings_impl_ari_0_0_1.java b/classes/ch/loway/oss/ari4java/generated/ari_0_0_1/actions/ActionRecordings_impl_ari_0_0_1.java index 56f39b9d..71e61c50 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_0_0_1/actions/ActionRecordings_impl_ari_0_0_1.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_0_0_1/actions/ActionRecordings_impl_ari_0_0_1.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Sat Feb 04 15:23:09 CET 2017 +// Generated on: Tue Dec 19 09:55:49 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_0_0_1/actions/ActionSounds_impl_ari_0_0_1.java b/classes/ch/loway/oss/ari4java/generated/ari_0_0_1/actions/ActionSounds_impl_ari_0_0_1.java index 562ec2e8..ea93ebb5 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_0_0_1/actions/ActionSounds_impl_ari_0_0_1.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_0_0_1/actions/ActionSounds_impl_ari_0_0_1.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Sat Feb 04 15:23:09 CET 2017 +// Generated on: Tue Dec 19 09:55:49 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_0_0_1/models/ApplicationReplaced_impl_ari_0_0_1.java b/classes/ch/loway/oss/ari4java/generated/ari_0_0_1/models/ApplicationReplaced_impl_ari_0_0_1.java index 24832a2e..77f0896e 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_0_0_1/models/ApplicationReplaced_impl_ari_0_0_1.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_0_0_1/models/ApplicationReplaced_impl_ari_0_0_1.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Sat Feb 04 15:23:09 CET 2017 +// Generated on: Tue Dec 19 09:55:48 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_0_0_1/models/Application_impl_ari_0_0_1.java b/classes/ch/loway/oss/ari4java/generated/ari_0_0_1/models/Application_impl_ari_0_0_1.java index abf80352..6b181185 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_0_0_1/models/Application_impl_ari_0_0_1.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_0_0_1/models/Application_impl_ari_0_0_1.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Sat Feb 04 15:23:09 CET 2017 +// Generated on: Tue Dec 19 09:55:48 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_0_0_1/models/AsteriskInfo_impl_ari_0_0_1.java b/classes/ch/loway/oss/ari4java/generated/ari_0_0_1/models/AsteriskInfo_impl_ari_0_0_1.java index 7663ad67..70adce51 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_0_0_1/models/AsteriskInfo_impl_ari_0_0_1.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_0_0_1/models/AsteriskInfo_impl_ari_0_0_1.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Sat Feb 04 15:23:09 CET 2017 +// Generated on: Tue Dec 19 09:55:48 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_0_0_1/models/BridgeCreated_impl_ari_0_0_1.java b/classes/ch/loway/oss/ari4java/generated/ari_0_0_1/models/BridgeCreated_impl_ari_0_0_1.java index efe4322a..f355d36e 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_0_0_1/models/BridgeCreated_impl_ari_0_0_1.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_0_0_1/models/BridgeCreated_impl_ari_0_0_1.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Sat Feb 04 15:23:09 CET 2017 +// Generated on: Tue Dec 19 09:55:48 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_0_0_1/models/BridgeDestroyed_impl_ari_0_0_1.java b/classes/ch/loway/oss/ari4java/generated/ari_0_0_1/models/BridgeDestroyed_impl_ari_0_0_1.java index 24012fe4..9e3df49c 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_0_0_1/models/BridgeDestroyed_impl_ari_0_0_1.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_0_0_1/models/BridgeDestroyed_impl_ari_0_0_1.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Sat Feb 04 15:23:09 CET 2017 +// Generated on: Tue Dec 19 09:55:48 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_0_0_1/models/BridgeMerged_impl_ari_0_0_1.java b/classes/ch/loway/oss/ari4java/generated/ari_0_0_1/models/BridgeMerged_impl_ari_0_0_1.java index 84ca262e..6b202151 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_0_0_1/models/BridgeMerged_impl_ari_0_0_1.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_0_0_1/models/BridgeMerged_impl_ari_0_0_1.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Sat Feb 04 15:23:09 CET 2017 +// Generated on: Tue Dec 19 09:55:48 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_0_0_1/models/Bridge_impl_ari_0_0_1.java b/classes/ch/loway/oss/ari4java/generated/ari_0_0_1/models/Bridge_impl_ari_0_0_1.java index b3f1efa1..bef937e6 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_0_0_1/models/Bridge_impl_ari_0_0_1.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_0_0_1/models/Bridge_impl_ari_0_0_1.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Sat Feb 04 15:23:09 CET 2017 +// Generated on: Tue Dec 19 09:55:48 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_0_0_1/models/BuildInfo_impl_ari_0_0_1.java b/classes/ch/loway/oss/ari4java/generated/ari_0_0_1/models/BuildInfo_impl_ari_0_0_1.java index c8b0dbe7..3b891e1f 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_0_0_1/models/BuildInfo_impl_ari_0_0_1.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_0_0_1/models/BuildInfo_impl_ari_0_0_1.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Sat Feb 04 15:23:09 CET 2017 +// Generated on: Tue Dec 19 09:55:48 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_0_0_1/models/CallerID_impl_ari_0_0_1.java b/classes/ch/loway/oss/ari4java/generated/ari_0_0_1/models/CallerID_impl_ari_0_0_1.java index 8677c88c..612be1ed 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_0_0_1/models/CallerID_impl_ari_0_0_1.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_0_0_1/models/CallerID_impl_ari_0_0_1.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Sat Feb 04 15:23:09 CET 2017 +// Generated on: Tue Dec 19 09:55:48 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_0_0_1/models/ChannelCallerId_impl_ari_0_0_1.java b/classes/ch/loway/oss/ari4java/generated/ari_0_0_1/models/ChannelCallerId_impl_ari_0_0_1.java index 5b7f3d19..0d79c159 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_0_0_1/models/ChannelCallerId_impl_ari_0_0_1.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_0_0_1/models/ChannelCallerId_impl_ari_0_0_1.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Sat Feb 04 15:23:09 CET 2017 +// Generated on: Tue Dec 19 09:55:48 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_0_0_1/models/ChannelCreated_impl_ari_0_0_1.java b/classes/ch/loway/oss/ari4java/generated/ari_0_0_1/models/ChannelCreated_impl_ari_0_0_1.java index 77eeeaf2..a4a141e2 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_0_0_1/models/ChannelCreated_impl_ari_0_0_1.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_0_0_1/models/ChannelCreated_impl_ari_0_0_1.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Sat Feb 04 15:23:09 CET 2017 +// Generated on: Tue Dec 19 09:55:48 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_0_0_1/models/ChannelDestroyed_impl_ari_0_0_1.java b/classes/ch/loway/oss/ari4java/generated/ari_0_0_1/models/ChannelDestroyed_impl_ari_0_0_1.java index 87507907..04319ee4 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_0_0_1/models/ChannelDestroyed_impl_ari_0_0_1.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_0_0_1/models/ChannelDestroyed_impl_ari_0_0_1.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Sat Feb 04 15:23:09 CET 2017 +// Generated on: Tue Dec 19 09:55:48 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_0_0_1/models/ChannelDialplan_impl_ari_0_0_1.java b/classes/ch/loway/oss/ari4java/generated/ari_0_0_1/models/ChannelDialplan_impl_ari_0_0_1.java index fde40385..2d989761 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_0_0_1/models/ChannelDialplan_impl_ari_0_0_1.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_0_0_1/models/ChannelDialplan_impl_ari_0_0_1.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Sat Feb 04 15:23:09 CET 2017 +// Generated on: Tue Dec 19 09:55:48 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_0_0_1/models/ChannelDtmfReceived_impl_ari_0_0_1.java b/classes/ch/loway/oss/ari4java/generated/ari_0_0_1/models/ChannelDtmfReceived_impl_ari_0_0_1.java index 5b9d7b3f..08fbe2b5 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_0_0_1/models/ChannelDtmfReceived_impl_ari_0_0_1.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_0_0_1/models/ChannelDtmfReceived_impl_ari_0_0_1.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Sat Feb 04 15:23:09 CET 2017 +// Generated on: Tue Dec 19 09:55:48 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_0_0_1/models/ChannelEnteredBridge_impl_ari_0_0_1.java b/classes/ch/loway/oss/ari4java/generated/ari_0_0_1/models/ChannelEnteredBridge_impl_ari_0_0_1.java index 74620d16..9e201149 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_0_0_1/models/ChannelEnteredBridge_impl_ari_0_0_1.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_0_0_1/models/ChannelEnteredBridge_impl_ari_0_0_1.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Sat Feb 04 15:23:09 CET 2017 +// Generated on: Tue Dec 19 09:55:48 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_0_0_1/models/ChannelHangupRequest_impl_ari_0_0_1.java b/classes/ch/loway/oss/ari4java/generated/ari_0_0_1/models/ChannelHangupRequest_impl_ari_0_0_1.java index eafcd8f6..9aa2f8ef 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_0_0_1/models/ChannelHangupRequest_impl_ari_0_0_1.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_0_0_1/models/ChannelHangupRequest_impl_ari_0_0_1.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Sat Feb 04 15:23:09 CET 2017 +// Generated on: Tue Dec 19 09:55:48 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_0_0_1/models/ChannelLeftBridge_impl_ari_0_0_1.java b/classes/ch/loway/oss/ari4java/generated/ari_0_0_1/models/ChannelLeftBridge_impl_ari_0_0_1.java index df0814ad..645afb84 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_0_0_1/models/ChannelLeftBridge_impl_ari_0_0_1.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_0_0_1/models/ChannelLeftBridge_impl_ari_0_0_1.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Sat Feb 04 15:23:09 CET 2017 +// Generated on: Tue Dec 19 09:55:48 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_0_0_1/models/ChannelStateChange_impl_ari_0_0_1.java b/classes/ch/loway/oss/ari4java/generated/ari_0_0_1/models/ChannelStateChange_impl_ari_0_0_1.java index 81a28ac4..ddfceac6 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_0_0_1/models/ChannelStateChange_impl_ari_0_0_1.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_0_0_1/models/ChannelStateChange_impl_ari_0_0_1.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Sat Feb 04 15:23:09 CET 2017 +// Generated on: Tue Dec 19 09:55:48 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_0_0_1/models/ChannelUserevent_impl_ari_0_0_1.java b/classes/ch/loway/oss/ari4java/generated/ari_0_0_1/models/ChannelUserevent_impl_ari_0_0_1.java index c50a2208..71deb6b4 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_0_0_1/models/ChannelUserevent_impl_ari_0_0_1.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_0_0_1/models/ChannelUserevent_impl_ari_0_0_1.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Sat Feb 04 15:23:09 CET 2017 +// Generated on: Tue Dec 19 09:55:48 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_0_0_1/models/ChannelVarset_impl_ari_0_0_1.java b/classes/ch/loway/oss/ari4java/generated/ari_0_0_1/models/ChannelVarset_impl_ari_0_0_1.java index 98c28351..50fd5cc7 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_0_0_1/models/ChannelVarset_impl_ari_0_0_1.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_0_0_1/models/ChannelVarset_impl_ari_0_0_1.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Sat Feb 04 15:23:09 CET 2017 +// Generated on: Tue Dec 19 09:55:48 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_0_0_1/models/Channel_impl_ari_0_0_1.java b/classes/ch/loway/oss/ari4java/generated/ari_0_0_1/models/Channel_impl_ari_0_0_1.java index 684762b2..6e48d77e 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_0_0_1/models/Channel_impl_ari_0_0_1.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_0_0_1/models/Channel_impl_ari_0_0_1.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Sat Feb 04 15:23:09 CET 2017 +// Generated on: Tue Dec 19 09:55:48 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_0_0_1/models/ConfigInfo_impl_ari_0_0_1.java b/classes/ch/loway/oss/ari4java/generated/ari_0_0_1/models/ConfigInfo_impl_ari_0_0_1.java index 55137d72..d6e5a9d8 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_0_0_1/models/ConfigInfo_impl_ari_0_0_1.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_0_0_1/models/ConfigInfo_impl_ari_0_0_1.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Sat Feb 04 15:23:09 CET 2017 +// Generated on: Tue Dec 19 09:55:48 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_0_0_1/models/DeviceStateChanged_impl_ari_0_0_1.java b/classes/ch/loway/oss/ari4java/generated/ari_0_0_1/models/DeviceStateChanged_impl_ari_0_0_1.java index f2cd8217..b780ae3c 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_0_0_1/models/DeviceStateChanged_impl_ari_0_0_1.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_0_0_1/models/DeviceStateChanged_impl_ari_0_0_1.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Sat Feb 04 15:23:09 CET 2017 +// Generated on: Tue Dec 19 09:55:48 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_0_0_1/models/DeviceState_impl_ari_0_0_1.java b/classes/ch/loway/oss/ari4java/generated/ari_0_0_1/models/DeviceState_impl_ari_0_0_1.java index 81a4f3da..8aa1242e 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_0_0_1/models/DeviceState_impl_ari_0_0_1.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_0_0_1/models/DeviceState_impl_ari_0_0_1.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Sat Feb 04 15:23:09 CET 2017 +// Generated on: Tue Dec 19 09:55:48 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_0_0_1/models/Dialed_impl_ari_0_0_1.java b/classes/ch/loway/oss/ari4java/generated/ari_0_0_1/models/Dialed_impl_ari_0_0_1.java index 1f64ef24..85a42958 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_0_0_1/models/Dialed_impl_ari_0_0_1.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_0_0_1/models/Dialed_impl_ari_0_0_1.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Sat Feb 04 15:23:09 CET 2017 +// Generated on: Tue Dec 19 09:55:48 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_0_0_1/models/DialplanCEP_impl_ari_0_0_1.java b/classes/ch/loway/oss/ari4java/generated/ari_0_0_1/models/DialplanCEP_impl_ari_0_0_1.java index 41db538d..ba6b20e9 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_0_0_1/models/DialplanCEP_impl_ari_0_0_1.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_0_0_1/models/DialplanCEP_impl_ari_0_0_1.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Sat Feb 04 15:23:09 CET 2017 +// Generated on: Tue Dec 19 09:55:48 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_0_0_1/models/EndpointStateChange_impl_ari_0_0_1.java b/classes/ch/loway/oss/ari4java/generated/ari_0_0_1/models/EndpointStateChange_impl_ari_0_0_1.java index df6a1c9f..986f8dd8 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_0_0_1/models/EndpointStateChange_impl_ari_0_0_1.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_0_0_1/models/EndpointStateChange_impl_ari_0_0_1.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Sat Feb 04 15:23:09 CET 2017 +// Generated on: Tue Dec 19 09:55:48 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_0_0_1/models/Endpoint_impl_ari_0_0_1.java b/classes/ch/loway/oss/ari4java/generated/ari_0_0_1/models/Endpoint_impl_ari_0_0_1.java index d76a35d4..5e975f24 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_0_0_1/models/Endpoint_impl_ari_0_0_1.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_0_0_1/models/Endpoint_impl_ari_0_0_1.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Sat Feb 04 15:23:09 CET 2017 +// Generated on: Tue Dec 19 09:55:48 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_0_0_1/models/Event_impl_ari_0_0_1.java b/classes/ch/loway/oss/ari4java/generated/ari_0_0_1/models/Event_impl_ari_0_0_1.java index fcfc1288..c6d615e1 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_0_0_1/models/Event_impl_ari_0_0_1.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_0_0_1/models/Event_impl_ari_0_0_1.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Sat Feb 04 15:23:09 CET 2017 +// Generated on: Tue Dec 19 09:55:48 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_0_0_1/models/FormatLangPair_impl_ari_0_0_1.java b/classes/ch/loway/oss/ari4java/generated/ari_0_0_1/models/FormatLangPair_impl_ari_0_0_1.java index 687c2489..f245a288 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_0_0_1/models/FormatLangPair_impl_ari_0_0_1.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_0_0_1/models/FormatLangPair_impl_ari_0_0_1.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Sat Feb 04 15:23:09 CET 2017 +// Generated on: Tue Dec 19 09:55:48 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_0_0_1/models/LiveRecording_impl_ari_0_0_1.java b/classes/ch/loway/oss/ari4java/generated/ari_0_0_1/models/LiveRecording_impl_ari_0_0_1.java index 12a23d98..828308b8 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_0_0_1/models/LiveRecording_impl_ari_0_0_1.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_0_0_1/models/LiveRecording_impl_ari_0_0_1.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Sat Feb 04 15:23:09 CET 2017 +// Generated on: Tue Dec 19 09:55:48 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_0_0_1/models/Message_impl_ari_0_0_1.java b/classes/ch/loway/oss/ari4java/generated/ari_0_0_1/models/Message_impl_ari_0_0_1.java index 7ff07624..8a75845c 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_0_0_1/models/Message_impl_ari_0_0_1.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_0_0_1/models/Message_impl_ari_0_0_1.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Sat Feb 04 15:23:09 CET 2017 +// Generated on: Tue Dec 19 09:55:48 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_0_0_1/models/MissingParams_impl_ari_0_0_1.java b/classes/ch/loway/oss/ari4java/generated/ari_0_0_1/models/MissingParams_impl_ari_0_0_1.java index baa4a984..8b3885b8 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_0_0_1/models/MissingParams_impl_ari_0_0_1.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_0_0_1/models/MissingParams_impl_ari_0_0_1.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Sat Feb 04 15:23:09 CET 2017 +// Generated on: Tue Dec 19 09:55:48 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_0_0_1/models/PlaybackFinished_impl_ari_0_0_1.java b/classes/ch/loway/oss/ari4java/generated/ari_0_0_1/models/PlaybackFinished_impl_ari_0_0_1.java index 48f3d4bb..0125bccf 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_0_0_1/models/PlaybackFinished_impl_ari_0_0_1.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_0_0_1/models/PlaybackFinished_impl_ari_0_0_1.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Sat Feb 04 15:23:09 CET 2017 +// Generated on: Tue Dec 19 09:55:48 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_0_0_1/models/PlaybackStarted_impl_ari_0_0_1.java b/classes/ch/loway/oss/ari4java/generated/ari_0_0_1/models/PlaybackStarted_impl_ari_0_0_1.java index 4dc7cb6e..83ed3d36 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_0_0_1/models/PlaybackStarted_impl_ari_0_0_1.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_0_0_1/models/PlaybackStarted_impl_ari_0_0_1.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Sat Feb 04 15:23:09 CET 2017 +// Generated on: Tue Dec 19 09:55:48 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_0_0_1/models/Playback_impl_ari_0_0_1.java b/classes/ch/loway/oss/ari4java/generated/ari_0_0_1/models/Playback_impl_ari_0_0_1.java index 5b4defc1..9f73d5f3 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_0_0_1/models/Playback_impl_ari_0_0_1.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_0_0_1/models/Playback_impl_ari_0_0_1.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Sat Feb 04 15:23:09 CET 2017 +// Generated on: Tue Dec 19 09:55:48 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_0_0_1/models/RecordingFailed_impl_ari_0_0_1.java b/classes/ch/loway/oss/ari4java/generated/ari_0_0_1/models/RecordingFailed_impl_ari_0_0_1.java index bd6f21e5..799f4f42 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_0_0_1/models/RecordingFailed_impl_ari_0_0_1.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_0_0_1/models/RecordingFailed_impl_ari_0_0_1.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Sat Feb 04 15:23:09 CET 2017 +// Generated on: Tue Dec 19 09:55:48 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_0_0_1/models/RecordingFinished_impl_ari_0_0_1.java b/classes/ch/loway/oss/ari4java/generated/ari_0_0_1/models/RecordingFinished_impl_ari_0_0_1.java index ab30cbe7..d4598758 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_0_0_1/models/RecordingFinished_impl_ari_0_0_1.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_0_0_1/models/RecordingFinished_impl_ari_0_0_1.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Sat Feb 04 15:23:09 CET 2017 +// Generated on: Tue Dec 19 09:55:48 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_0_0_1/models/RecordingStarted_impl_ari_0_0_1.java b/classes/ch/loway/oss/ari4java/generated/ari_0_0_1/models/RecordingStarted_impl_ari_0_0_1.java index 1819c59c..9c192507 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_0_0_1/models/RecordingStarted_impl_ari_0_0_1.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_0_0_1/models/RecordingStarted_impl_ari_0_0_1.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Sat Feb 04 15:23:09 CET 2017 +// Generated on: Tue Dec 19 09:55:48 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_0_0_1/models/SetId_impl_ari_0_0_1.java b/classes/ch/loway/oss/ari4java/generated/ari_0_0_1/models/SetId_impl_ari_0_0_1.java index 62b32949..f4c82348 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_0_0_1/models/SetId_impl_ari_0_0_1.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_0_0_1/models/SetId_impl_ari_0_0_1.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Sat Feb 04 15:23:09 CET 2017 +// Generated on: Tue Dec 19 09:55:48 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_0_0_1/models/Sound_impl_ari_0_0_1.java b/classes/ch/loway/oss/ari4java/generated/ari_0_0_1/models/Sound_impl_ari_0_0_1.java index 7bc7892b..482dbd7b 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_0_0_1/models/Sound_impl_ari_0_0_1.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_0_0_1/models/Sound_impl_ari_0_0_1.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Sat Feb 04 15:23:09 CET 2017 +// Generated on: Tue Dec 19 09:55:48 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_0_0_1/models/StasisEnd_impl_ari_0_0_1.java b/classes/ch/loway/oss/ari4java/generated/ari_0_0_1/models/StasisEnd_impl_ari_0_0_1.java index e41321c9..26a5454f 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_0_0_1/models/StasisEnd_impl_ari_0_0_1.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_0_0_1/models/StasisEnd_impl_ari_0_0_1.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Sat Feb 04 15:23:09 CET 2017 +// Generated on: Tue Dec 19 09:55:48 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_0_0_1/models/StasisStart_impl_ari_0_0_1.java b/classes/ch/loway/oss/ari4java/generated/ari_0_0_1/models/StasisStart_impl_ari_0_0_1.java index 37a007d0..7562fe46 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_0_0_1/models/StasisStart_impl_ari_0_0_1.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_0_0_1/models/StasisStart_impl_ari_0_0_1.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Sat Feb 04 15:23:09 CET 2017 +// Generated on: Tue Dec 19 09:55:48 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_0_0_1/models/StatusInfo_impl_ari_0_0_1.java b/classes/ch/loway/oss/ari4java/generated/ari_0_0_1/models/StatusInfo_impl_ari_0_0_1.java index 354e116f..8655a2e3 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_0_0_1/models/StatusInfo_impl_ari_0_0_1.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_0_0_1/models/StatusInfo_impl_ari_0_0_1.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Sat Feb 04 15:23:09 CET 2017 +// Generated on: Tue Dec 19 09:55:48 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_0_0_1/models/StoredRecording_impl_ari_0_0_1.java b/classes/ch/loway/oss/ari4java/generated/ari_0_0_1/models/StoredRecording_impl_ari_0_0_1.java index e1481c48..c3530157 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_0_0_1/models/StoredRecording_impl_ari_0_0_1.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_0_0_1/models/StoredRecording_impl_ari_0_0_1.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Sat Feb 04 15:23:09 CET 2017 +// Generated on: Tue Dec 19 09:55:48 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_0_0_1/models/SystemInfo_impl_ari_0_0_1.java b/classes/ch/loway/oss/ari4java/generated/ari_0_0_1/models/SystemInfo_impl_ari_0_0_1.java index 386d20c3..148a9509 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_0_0_1/models/SystemInfo_impl_ari_0_0_1.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_0_0_1/models/SystemInfo_impl_ari_0_0_1.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Sat Feb 04 15:23:09 CET 2017 +// Generated on: Tue Dec 19 09:55:48 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_0_0_1/models/Variable_impl_ari_0_0_1.java b/classes/ch/loway/oss/ari4java/generated/ari_0_0_1/models/Variable_impl_ari_0_0_1.java index 3ef71ee3..08907aaa 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_0_0_1/models/Variable_impl_ari_0_0_1.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_0_0_1/models/Variable_impl_ari_0_0_1.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Sat Feb 04 15:23:09 CET 2017 +// Generated on: Tue Dec 19 09:55:48 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_0_0/AriBuilder_impl_ari_1_0_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_0_0/AriBuilder_impl_ari_1_0_0.java index 91f2512c..e3a51482 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_0_0/AriBuilder_impl_ari_1_0_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_0_0/AriBuilder_impl_ari_1_0_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Sat Feb 04 15:23:09 CET 2017 +// Generated on: Tue Dec 19 09:55:49 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.ari_1_0_0.models.*; @@ -53,196 +53,196 @@ public ActionPlaybacks actionPlaybacks() { return new ActionPlaybacks_impl_ari_1_0_0(); }; -public DeviceStateChanged deviceStateChanged() { - return new DeviceStateChanged_impl_ari_1_0_0(); +public Endpoint endpoint() { + return new Endpoint_impl_ari_1_0_0(); }; -public ChannelDtmfReceived channelDtmfReceived() { - return new ChannelDtmfReceived_impl_ari_1_0_0(); +public RecordingFailed recordingFailed() { + return new RecordingFailed_impl_ari_1_0_0(); }; -public StasisEnd stasisEnd() { - return new StasisEnd_impl_ari_1_0_0(); +public ChannelLeftBridge channelLeftBridge() { + return new ChannelLeftBridge_impl_ari_1_0_0(); }; -public ChannelCreated channelCreated() { - return new ChannelCreated_impl_ari_1_0_0(); +public DeviceStateChanged deviceStateChanged() { + return new DeviceStateChanged_impl_ari_1_0_0(); }; -public ApplicationReplaced applicationReplaced() { - return new ApplicationReplaced_impl_ari_1_0_0(); +public DeviceState deviceState() { + return new DeviceState_impl_ari_1_0_0(); }; -public Bridge bridge() { - return new Bridge_impl_ari_1_0_0(); +public BuildInfo buildInfo() { + return new BuildInfo_impl_ari_1_0_0(); }; -public CallerID callerID() { - return new CallerID_impl_ari_1_0_0(); +public Event event() { + return new Event_impl_ari_1_0_0(); }; -public BridgeMerged bridgeMerged() { - return new BridgeMerged_impl_ari_1_0_0(); +public Application application() { + return new Application_impl_ari_1_0_0(); }; -public DialplanCEP dialplanCEP() { - return new DialplanCEP_impl_ari_1_0_0(); +public FormatLangPair formatLangPair() { + return new FormatLangPair_impl_ari_1_0_0(); }; -public RecordingFinished recordingFinished() { - return new RecordingFinished_impl_ari_1_0_0(); +public Message message() { + return new Message_impl_ari_1_0_0(); }; -public BridgeCreated bridgeCreated() { - return new BridgeCreated_impl_ari_1_0_0(); +public LiveRecording liveRecording() { + return new LiveRecording_impl_ari_1_0_0(); }; -public RecordingStarted recordingStarted() { - return new RecordingStarted_impl_ari_1_0_0(); +public ChannelDialplan channelDialplan() { + return new ChannelDialplan_impl_ari_1_0_0(); }; -public ChannelEnteredBridge channelEnteredBridge() { - return new ChannelEnteredBridge_impl_ari_1_0_0(); +public PlaybackFinished playbackFinished() { + return new PlaybackFinished_impl_ari_1_0_0(); }; -public EndpointStateChange endpointStateChange() { - return new EndpointStateChange_impl_ari_1_0_0(); +public ChannelDestroyed channelDestroyed() { + return new ChannelDestroyed_impl_ari_1_0_0(); }; -public BridgeDestroyed bridgeDestroyed() { - return new BridgeDestroyed_impl_ari_1_0_0(); +public ChannelDtmfReceived channelDtmfReceived() { + return new ChannelDtmfReceived_impl_ari_1_0_0(); + }; + +public Dial dial() { + return new Dial_impl_ari_1_0_0(); + }; + +public MissingParams missingParams() { + return new MissingParams_impl_ari_1_0_0(); }; public SystemInfo systemInfo() { return new SystemInfo_impl_ari_1_0_0(); }; -public Channel channel() { - return new Channel_impl_ari_1_0_0(); +public ConfigInfo configInfo() { + return new ConfigInfo_impl_ari_1_0_0(); }; -public Playback playback() { - return new Playback_impl_ari_1_0_0(); +public RecordingStarted recordingStarted() { + return new RecordingStarted_impl_ari_1_0_0(); }; -public ChannelLeftBridge channelLeftBridge() { - return new ChannelLeftBridge_impl_ari_1_0_0(); +public Variable variable() { + return new Variable_impl_ari_1_0_0(); }; -public FormatLangPair formatLangPair() { - return new FormatLangPair_impl_ari_1_0_0(); +public Playback playback() { + return new Playback_impl_ari_1_0_0(); }; public PlaybackStarted playbackStarted() { return new PlaybackStarted_impl_ari_1_0_0(); }; -public ChannelDestroyed channelDestroyed() { - return new ChannelDestroyed_impl_ari_1_0_0(); +public EndpointStateChange endpointStateChange() { + return new EndpointStateChange_impl_ari_1_0_0(); }; -public ChannelCallerId channelCallerId() { - return new ChannelCallerId_impl_ari_1_0_0(); +public BridgeCreated bridgeCreated() { + return new BridgeCreated_impl_ari_1_0_0(); }; -public AsteriskInfo asteriskInfo() { - return new AsteriskInfo_impl_ari_1_0_0(); +public ChannelStateChange channelStateChange() { + return new ChannelStateChange_impl_ari_1_0_0(); }; public StasisStart stasisStart() { return new StasisStart_impl_ari_1_0_0(); }; -public Application application() { - return new Application_impl_ari_1_0_0(); - }; - -public BuildInfo buildInfo() { - return new BuildInfo_impl_ari_1_0_0(); +public ChannelHangupRequest channelHangupRequest() { + return new ChannelHangupRequest_impl_ari_1_0_0(); }; -public Variable variable() { - return new Variable_impl_ari_1_0_0(); +public Bridge bridge() { + return new Bridge_impl_ari_1_0_0(); }; -public Sound sound() { - return new Sound_impl_ari_1_0_0(); +public CallerID callerID() { + return new CallerID_impl_ari_1_0_0(); }; -public MissingParams missingParams() { - return new MissingParams_impl_ari_1_0_0(); +public BridgeMerged bridgeMerged() { + return new BridgeMerged_impl_ari_1_0_0(); }; -public ChannelHangupRequest channelHangupRequest() { - return new ChannelHangupRequest_impl_ari_1_0_0(); +public ApplicationReplaced applicationReplaced() { + return new ApplicationReplaced_impl_ari_1_0_0(); }; -public ChannelDialplan channelDialplan() { - return new ChannelDialplan_impl_ari_1_0_0(); +public ChannelCreated channelCreated() { + return new ChannelCreated_impl_ari_1_0_0(); }; public ChannelVarset channelVarset() { return new ChannelVarset_impl_ari_1_0_0(); }; -public ConfigInfo configInfo() { - return new ConfigInfo_impl_ari_1_0_0(); - }; - -public DeviceState deviceState() { - return new DeviceState_impl_ari_1_0_0(); +public ChannelCallerId channelCallerId() { + return new ChannelCallerId_impl_ari_1_0_0(); }; -public StoredRecording storedRecording() { - return new StoredRecording_impl_ari_1_0_0(); +public Dialed dialed() { + return new Dialed_impl_ari_1_0_0(); }; -public PlaybackFinished playbackFinished() { - return new PlaybackFinished_impl_ari_1_0_0(); +public StatusInfo statusInfo() { + return new StatusInfo_impl_ari_1_0_0(); }; -public ChannelUserevent channelUserevent() { - return new ChannelUserevent_impl_ari_1_0_0(); +public StoredRecording storedRecording() { + return new StoredRecording_impl_ari_1_0_0(); }; -public Message message() { - return new Message_impl_ari_1_0_0(); +public BridgeDestroyed bridgeDestroyed() { + return new BridgeDestroyed_impl_ari_1_0_0(); }; -public ChannelStateChange channelStateChange() { - return new ChannelStateChange_impl_ari_1_0_0(); +public DialplanCEP dialplanCEP() { + return new DialplanCEP_impl_ari_1_0_0(); }; -public Endpoint endpoint() { - return new Endpoint_impl_ari_1_0_0(); +public StasisEnd stasisEnd() { + return new StasisEnd_impl_ari_1_0_0(); }; -public LiveRecording liveRecording() { - return new LiveRecording_impl_ari_1_0_0(); +public RecordingFinished recordingFinished() { + return new RecordingFinished_impl_ari_1_0_0(); }; public SetId setId() { return new SetId_impl_ari_1_0_0(); }; -public StatusInfo statusInfo() { - return new StatusInfo_impl_ari_1_0_0(); +public AsteriskInfo asteriskInfo() { + return new AsteriskInfo_impl_ari_1_0_0(); }; -public Dialed dialed() { - return new Dialed_impl_ari_1_0_0(); +public Channel channel() { + return new Channel_impl_ari_1_0_0(); }; -public Event event() { - return new Event_impl_ari_1_0_0(); +public ChannelUserevent channelUserevent() { + return new ChannelUserevent_impl_ari_1_0_0(); }; -public RecordingFailed recordingFailed() { - return new RecordingFailed_impl_ari_1_0_0(); +public Sound sound() { + return new Sound_impl_ari_1_0_0(); }; -public Dial dial() { - return new Dial_impl_ari_1_0_0(); +public ChannelEnteredBridge channelEnteredBridge() { + return new ChannelEnteredBridge_impl_ari_1_0_0(); }; public BridgeAttendedTransfer bridgeAttendedTransfer() { diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_0_0/ClassTranslator_impl_ari_1_0_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_0_0/ClassTranslator_impl_ari_1_0_0.java index 1404b67d..1cfc7221 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_0_0/ClassTranslator_impl_ari_1_0_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_0_0/ClassTranslator_impl_ari_1_0_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Sat Feb 04 15:23:09 CET 2017 +// Generated on: Tue Dec 19 09:55:50 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.ARI; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_0_0/actions/ActionApplications_impl_ari_1_0_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_0_0/actions/ActionApplications_impl_ari_1_0_0.java index 023d0919..66500e57 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_0_0/actions/ActionApplications_impl_ari_1_0_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_0_0/actions/ActionApplications_impl_ari_1_0_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Sat Feb 04 15:23:09 CET 2017 +// Generated on: Tue Dec 19 09:55:49 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_0_0/actions/ActionAsterisk_impl_ari_1_0_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_0_0/actions/ActionAsterisk_impl_ari_1_0_0.java index 4047dbc9..92a48284 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_0_0/actions/ActionAsterisk_impl_ari_1_0_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_0_0/actions/ActionAsterisk_impl_ari_1_0_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Sat Feb 04 15:23:09 CET 2017 +// Generated on: Tue Dec 19 09:55:49 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_0_0/actions/ActionBridges_impl_ari_1_0_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_0_0/actions/ActionBridges_impl_ari_1_0_0.java index e0865d0a..3dca2bab 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_0_0/actions/ActionBridges_impl_ari_1_0_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_0_0/actions/ActionBridges_impl_ari_1_0_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Sat Feb 04 15:23:09 CET 2017 +// Generated on: Tue Dec 19 09:55:49 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_0_0/actions/ActionChannels_impl_ari_1_0_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_0_0/actions/ActionChannels_impl_ari_1_0_0.java index 1aa8a0d2..e85b61ab 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_0_0/actions/ActionChannels_impl_ari_1_0_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_0_0/actions/ActionChannels_impl_ari_1_0_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Sat Feb 04 15:23:09 CET 2017 +// Generated on: Tue Dec 19 09:55:49 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_0_0/actions/ActionDeviceStates_impl_ari_1_0_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_0_0/actions/ActionDeviceStates_impl_ari_1_0_0.java index 9059b0e3..c430e57f 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_0_0/actions/ActionDeviceStates_impl_ari_1_0_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_0_0/actions/ActionDeviceStates_impl_ari_1_0_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Sat Feb 04 15:23:09 CET 2017 +// Generated on: Tue Dec 19 09:55:49 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_0_0/actions/ActionEndpoints_impl_ari_1_0_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_0_0/actions/ActionEndpoints_impl_ari_1_0_0.java index 1dad50e0..acb14bee 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_0_0/actions/ActionEndpoints_impl_ari_1_0_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_0_0/actions/ActionEndpoints_impl_ari_1_0_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Sat Feb 04 15:23:09 CET 2017 +// Generated on: Tue Dec 19 09:55:49 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_0_0/actions/ActionEvents_impl_ari_1_0_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_0_0/actions/ActionEvents_impl_ari_1_0_0.java index 3db645a7..f738118a 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_0_0/actions/ActionEvents_impl_ari_1_0_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_0_0/actions/ActionEvents_impl_ari_1_0_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Sat Feb 04 15:23:09 CET 2017 +// Generated on: Tue Dec 19 09:55:49 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_0_0/actions/ActionPlaybacks_impl_ari_1_0_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_0_0/actions/ActionPlaybacks_impl_ari_1_0_0.java index 8b978939..b4e5127d 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_0_0/actions/ActionPlaybacks_impl_ari_1_0_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_0_0/actions/ActionPlaybacks_impl_ari_1_0_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Sat Feb 04 15:23:09 CET 2017 +// Generated on: Tue Dec 19 09:55:49 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_0_0/actions/ActionRecordings_impl_ari_1_0_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_0_0/actions/ActionRecordings_impl_ari_1_0_0.java index 6eed8021..2c07b3f9 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_0_0/actions/ActionRecordings_impl_ari_1_0_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_0_0/actions/ActionRecordings_impl_ari_1_0_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Sat Feb 04 15:23:09 CET 2017 +// Generated on: Tue Dec 19 09:55:49 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_0_0/actions/ActionSounds_impl_ari_1_0_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_0_0/actions/ActionSounds_impl_ari_1_0_0.java index 5a397fe3..039c03e8 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_0_0/actions/ActionSounds_impl_ari_1_0_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_0_0/actions/ActionSounds_impl_ari_1_0_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Sat Feb 04 15:23:09 CET 2017 +// Generated on: Tue Dec 19 09:55:49 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_0_0/models/ApplicationReplaced_impl_ari_1_0_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_0_0/models/ApplicationReplaced_impl_ari_1_0_0.java index 63c41df3..4b4e793d 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_0_0/models/ApplicationReplaced_impl_ari_1_0_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_0_0/models/ApplicationReplaced_impl_ari_1_0_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Sat Feb 04 15:23:09 CET 2017 +// Generated on: Tue Dec 19 09:55:48 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_0_0/models/Application_impl_ari_1_0_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_0_0/models/Application_impl_ari_1_0_0.java index 6f215d5b..59f2d2ad 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_0_0/models/Application_impl_ari_1_0_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_0_0/models/Application_impl_ari_1_0_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Sat Feb 04 15:23:09 CET 2017 +// Generated on: Tue Dec 19 09:55:48 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_0_0/models/AsteriskInfo_impl_ari_1_0_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_0_0/models/AsteriskInfo_impl_ari_1_0_0.java index f2d2708d..99c4e22a 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_0_0/models/AsteriskInfo_impl_ari_1_0_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_0_0/models/AsteriskInfo_impl_ari_1_0_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Sat Feb 04 15:23:09 CET 2017 +// Generated on: Tue Dec 19 09:55:48 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_0_0/models/BridgeCreated_impl_ari_1_0_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_0_0/models/BridgeCreated_impl_ari_1_0_0.java index 2b3448b2..a0eefcd8 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_0_0/models/BridgeCreated_impl_ari_1_0_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_0_0/models/BridgeCreated_impl_ari_1_0_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Sat Feb 04 15:23:09 CET 2017 +// Generated on: Tue Dec 19 09:55:48 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_0_0/models/BridgeDestroyed_impl_ari_1_0_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_0_0/models/BridgeDestroyed_impl_ari_1_0_0.java index c1ef270b..86dd54bf 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_0_0/models/BridgeDestroyed_impl_ari_1_0_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_0_0/models/BridgeDestroyed_impl_ari_1_0_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Sat Feb 04 15:23:09 CET 2017 +// Generated on: Tue Dec 19 09:55:48 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_0_0/models/BridgeMerged_impl_ari_1_0_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_0_0/models/BridgeMerged_impl_ari_1_0_0.java index 5bce2e10..dcbe68ff 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_0_0/models/BridgeMerged_impl_ari_1_0_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_0_0/models/BridgeMerged_impl_ari_1_0_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Sat Feb 04 15:23:09 CET 2017 +// Generated on: Tue Dec 19 09:55:48 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_0_0/models/Bridge_impl_ari_1_0_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_0_0/models/Bridge_impl_ari_1_0_0.java index 11d6e712..8fdbc737 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_0_0/models/Bridge_impl_ari_1_0_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_0_0/models/Bridge_impl_ari_1_0_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Sat Feb 04 15:23:09 CET 2017 +// Generated on: Tue Dec 19 09:55:48 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_0_0/models/BuildInfo_impl_ari_1_0_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_0_0/models/BuildInfo_impl_ari_1_0_0.java index 9e52fd6a..4471a396 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_0_0/models/BuildInfo_impl_ari_1_0_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_0_0/models/BuildInfo_impl_ari_1_0_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Sat Feb 04 15:23:09 CET 2017 +// Generated on: Tue Dec 19 09:55:48 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_0_0/models/CallerID_impl_ari_1_0_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_0_0/models/CallerID_impl_ari_1_0_0.java index 7e58c79d..750b328e 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_0_0/models/CallerID_impl_ari_1_0_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_0_0/models/CallerID_impl_ari_1_0_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Sat Feb 04 15:23:09 CET 2017 +// Generated on: Tue Dec 19 09:55:48 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_0_0/models/ChannelCallerId_impl_ari_1_0_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_0_0/models/ChannelCallerId_impl_ari_1_0_0.java index 9296c9bf..9fdbdf1a 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_0_0/models/ChannelCallerId_impl_ari_1_0_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_0_0/models/ChannelCallerId_impl_ari_1_0_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Sat Feb 04 15:23:09 CET 2017 +// Generated on: Tue Dec 19 09:55:49 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_0_0/models/ChannelCreated_impl_ari_1_0_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_0_0/models/ChannelCreated_impl_ari_1_0_0.java index 381c9327..65ccc791 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_0_0/models/ChannelCreated_impl_ari_1_0_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_0_0/models/ChannelCreated_impl_ari_1_0_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Sat Feb 04 15:23:09 CET 2017 +// Generated on: Tue Dec 19 09:55:48 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_0_0/models/ChannelDestroyed_impl_ari_1_0_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_0_0/models/ChannelDestroyed_impl_ari_1_0_0.java index 5342ae01..fecb7e26 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_0_0/models/ChannelDestroyed_impl_ari_1_0_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_0_0/models/ChannelDestroyed_impl_ari_1_0_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Sat Feb 04 15:23:09 CET 2017 +// Generated on: Tue Dec 19 09:55:48 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_0_0/models/ChannelDialplan_impl_ari_1_0_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_0_0/models/ChannelDialplan_impl_ari_1_0_0.java index 65927544..8c3d9e42 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_0_0/models/ChannelDialplan_impl_ari_1_0_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_0_0/models/ChannelDialplan_impl_ari_1_0_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Sat Feb 04 15:23:09 CET 2017 +// Generated on: Tue Dec 19 09:55:49 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_0_0/models/ChannelDtmfReceived_impl_ari_1_0_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_0_0/models/ChannelDtmfReceived_impl_ari_1_0_0.java index db0304c7..bef7b93f 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_0_0/models/ChannelDtmfReceived_impl_ari_1_0_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_0_0/models/ChannelDtmfReceived_impl_ari_1_0_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Sat Feb 04 15:23:09 CET 2017 +// Generated on: Tue Dec 19 09:55:49 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_0_0/models/ChannelEnteredBridge_impl_ari_1_0_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_0_0/models/ChannelEnteredBridge_impl_ari_1_0_0.java index c24a93dd..596e61e1 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_0_0/models/ChannelEnteredBridge_impl_ari_1_0_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_0_0/models/ChannelEnteredBridge_impl_ari_1_0_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Sat Feb 04 15:23:09 CET 2017 +// Generated on: Tue Dec 19 09:55:48 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_0_0/models/ChannelHangupRequest_impl_ari_1_0_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_0_0/models/ChannelHangupRequest_impl_ari_1_0_0.java index 125be123..f0e3e3df 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_0_0/models/ChannelHangupRequest_impl_ari_1_0_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_0_0/models/ChannelHangupRequest_impl_ari_1_0_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Sat Feb 04 15:23:09 CET 2017 +// Generated on: Tue Dec 19 09:55:49 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_0_0/models/ChannelLeftBridge_impl_ari_1_0_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_0_0/models/ChannelLeftBridge_impl_ari_1_0_0.java index 96434d2a..45a50b6c 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_0_0/models/ChannelLeftBridge_impl_ari_1_0_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_0_0/models/ChannelLeftBridge_impl_ari_1_0_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Sat Feb 04 15:23:09 CET 2017 +// Generated on: Tue Dec 19 09:55:48 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_0_0/models/ChannelStateChange_impl_ari_1_0_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_0_0/models/ChannelStateChange_impl_ari_1_0_0.java index daa7c1f5..50180415 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_0_0/models/ChannelStateChange_impl_ari_1_0_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_0_0/models/ChannelStateChange_impl_ari_1_0_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Sat Feb 04 15:23:09 CET 2017 +// Generated on: Tue Dec 19 09:55:49 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_0_0/models/ChannelUserevent_impl_ari_1_0_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_0_0/models/ChannelUserevent_impl_ari_1_0_0.java index 35caa476..a842db1a 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_0_0/models/ChannelUserevent_impl_ari_1_0_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_0_0/models/ChannelUserevent_impl_ari_1_0_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Sat Feb 04 15:23:09 CET 2017 +// Generated on: Tue Dec 19 09:55:49 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_0_0/models/ChannelVarset_impl_ari_1_0_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_0_0/models/ChannelVarset_impl_ari_1_0_0.java index 83df0f67..a7a88979 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_0_0/models/ChannelVarset_impl_ari_1_0_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_0_0/models/ChannelVarset_impl_ari_1_0_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Sat Feb 04 15:23:09 CET 2017 +// Generated on: Tue Dec 19 09:55:49 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_0_0/models/Channel_impl_ari_1_0_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_0_0/models/Channel_impl_ari_1_0_0.java index 9432e200..8445b987 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_0_0/models/Channel_impl_ari_1_0_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_0_0/models/Channel_impl_ari_1_0_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Sat Feb 04 15:23:09 CET 2017 +// Generated on: Tue Dec 19 09:55:48 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_0_0/models/ConfigInfo_impl_ari_1_0_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_0_0/models/ConfigInfo_impl_ari_1_0_0.java index 884d17fc..a451364c 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_0_0/models/ConfigInfo_impl_ari_1_0_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_0_0/models/ConfigInfo_impl_ari_1_0_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Sat Feb 04 15:23:09 CET 2017 +// Generated on: Tue Dec 19 09:55:48 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_0_0/models/DeviceStateChanged_impl_ari_1_0_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_0_0/models/DeviceStateChanged_impl_ari_1_0_0.java index db480f09..4e4b139c 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_0_0/models/DeviceStateChanged_impl_ari_1_0_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_0_0/models/DeviceStateChanged_impl_ari_1_0_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Sat Feb 04 15:23:09 CET 2017 +// Generated on: Tue Dec 19 09:55:48 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_0_0/models/DeviceState_impl_ari_1_0_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_0_0/models/DeviceState_impl_ari_1_0_0.java index c7b72e1a..3738e790 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_0_0/models/DeviceState_impl_ari_1_0_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_0_0/models/DeviceState_impl_ari_1_0_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Sat Feb 04 15:23:09 CET 2017 +// Generated on: Tue Dec 19 09:55:48 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_0_0/models/Dial_impl_ari_1_0_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_0_0/models/Dial_impl_ari_1_0_0.java index ba48de19..43ef0feb 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_0_0/models/Dial_impl_ari_1_0_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_0_0/models/Dial_impl_ari_1_0_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Sat Feb 04 15:23:09 CET 2017 +// Generated on: Tue Dec 19 09:55:49 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_0_0/models/Dialed_impl_ari_1_0_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_0_0/models/Dialed_impl_ari_1_0_0.java index 8077139b..4b939a17 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_0_0/models/Dialed_impl_ari_1_0_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_0_0/models/Dialed_impl_ari_1_0_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Sat Feb 04 15:23:09 CET 2017 +// Generated on: Tue Dec 19 09:55:48 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_0_0/models/DialplanCEP_impl_ari_1_0_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_0_0/models/DialplanCEP_impl_ari_1_0_0.java index 0a76cefe..53f695d0 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_0_0/models/DialplanCEP_impl_ari_1_0_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_0_0/models/DialplanCEP_impl_ari_1_0_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Sat Feb 04 15:23:09 CET 2017 +// Generated on: Tue Dec 19 09:55:48 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_0_0/models/EndpointStateChange_impl_ari_1_0_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_0_0/models/EndpointStateChange_impl_ari_1_0_0.java index 01e481e9..64ac6bbf 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_0_0/models/EndpointStateChange_impl_ari_1_0_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_0_0/models/EndpointStateChange_impl_ari_1_0_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Sat Feb 04 15:23:09 CET 2017 +// Generated on: Tue Dec 19 09:55:49 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_0_0/models/Endpoint_impl_ari_1_0_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_0_0/models/Endpoint_impl_ari_1_0_0.java index 948d5d39..db2f7813 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_0_0/models/Endpoint_impl_ari_1_0_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_0_0/models/Endpoint_impl_ari_1_0_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Sat Feb 04 15:23:09 CET 2017 +// Generated on: Tue Dec 19 09:55:48 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_0_0/models/Event_impl_ari_1_0_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_0_0/models/Event_impl_ari_1_0_0.java index 047a1d11..5afe3562 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_0_0/models/Event_impl_ari_1_0_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_0_0/models/Event_impl_ari_1_0_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Sat Feb 04 15:23:09 CET 2017 +// Generated on: Tue Dec 19 09:55:48 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_0_0/models/FormatLangPair_impl_ari_1_0_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_0_0/models/FormatLangPair_impl_ari_1_0_0.java index 5e7f13c6..09f90fd7 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_0_0/models/FormatLangPair_impl_ari_1_0_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_0_0/models/FormatLangPair_impl_ari_1_0_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Sat Feb 04 15:23:09 CET 2017 +// Generated on: Tue Dec 19 09:55:48 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_0_0/models/LiveRecording_impl_ari_1_0_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_0_0/models/LiveRecording_impl_ari_1_0_0.java index 11c6f93d..a8a3ac44 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_0_0/models/LiveRecording_impl_ari_1_0_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_0_0/models/LiveRecording_impl_ari_1_0_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Sat Feb 04 15:23:09 CET 2017 +// Generated on: Tue Dec 19 09:55:48 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_0_0/models/Message_impl_ari_1_0_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_0_0/models/Message_impl_ari_1_0_0.java index 20344103..786ba029 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_0_0/models/Message_impl_ari_1_0_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_0_0/models/Message_impl_ari_1_0_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Sat Feb 04 15:23:09 CET 2017 +// Generated on: Tue Dec 19 09:55:48 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_0_0/models/MissingParams_impl_ari_1_0_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_0_0/models/MissingParams_impl_ari_1_0_0.java index 32d9912a..0285abeb 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_0_0/models/MissingParams_impl_ari_1_0_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_0_0/models/MissingParams_impl_ari_1_0_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Sat Feb 04 15:23:09 CET 2017 +// Generated on: Tue Dec 19 09:55:48 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_0_0/models/PlaybackFinished_impl_ari_1_0_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_0_0/models/PlaybackFinished_impl_ari_1_0_0.java index f1bb1cdd..a3e184a9 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_0_0/models/PlaybackFinished_impl_ari_1_0_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_0_0/models/PlaybackFinished_impl_ari_1_0_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Sat Feb 04 15:23:09 CET 2017 +// Generated on: Tue Dec 19 09:55:48 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_0_0/models/PlaybackStarted_impl_ari_1_0_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_0_0/models/PlaybackStarted_impl_ari_1_0_0.java index 2726727b..e53afa38 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_0_0/models/PlaybackStarted_impl_ari_1_0_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_0_0/models/PlaybackStarted_impl_ari_1_0_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Sat Feb 04 15:23:09 CET 2017 +// Generated on: Tue Dec 19 09:55:48 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_0_0/models/Playback_impl_ari_1_0_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_0_0/models/Playback_impl_ari_1_0_0.java index 5732b3c1..3b426891 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_0_0/models/Playback_impl_ari_1_0_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_0_0/models/Playback_impl_ari_1_0_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Sat Feb 04 15:23:09 CET 2017 +// Generated on: Tue Dec 19 09:55:48 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_0_0/models/RecordingFailed_impl_ari_1_0_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_0_0/models/RecordingFailed_impl_ari_1_0_0.java index 0e3cc250..83a1e323 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_0_0/models/RecordingFailed_impl_ari_1_0_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_0_0/models/RecordingFailed_impl_ari_1_0_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Sat Feb 04 15:23:09 CET 2017 +// Generated on: Tue Dec 19 09:55:48 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_0_0/models/RecordingFinished_impl_ari_1_0_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_0_0/models/RecordingFinished_impl_ari_1_0_0.java index 1ac7dd06..c68ac7d0 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_0_0/models/RecordingFinished_impl_ari_1_0_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_0_0/models/RecordingFinished_impl_ari_1_0_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Sat Feb 04 15:23:09 CET 2017 +// Generated on: Tue Dec 19 09:55:48 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_0_0/models/RecordingStarted_impl_ari_1_0_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_0_0/models/RecordingStarted_impl_ari_1_0_0.java index 8b243689..b3bec692 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_0_0/models/RecordingStarted_impl_ari_1_0_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_0_0/models/RecordingStarted_impl_ari_1_0_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Sat Feb 04 15:23:09 CET 2017 +// Generated on: Tue Dec 19 09:55:48 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_0_0/models/SetId_impl_ari_1_0_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_0_0/models/SetId_impl_ari_1_0_0.java index de226be1..c1f26511 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_0_0/models/SetId_impl_ari_1_0_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_0_0/models/SetId_impl_ari_1_0_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Sat Feb 04 15:23:09 CET 2017 +// Generated on: Tue Dec 19 09:55:48 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_0_0/models/Sound_impl_ari_1_0_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_0_0/models/Sound_impl_ari_1_0_0.java index 6fcc7703..72f2e60e 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_0_0/models/Sound_impl_ari_1_0_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_0_0/models/Sound_impl_ari_1_0_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Sat Feb 04 15:23:09 CET 2017 +// Generated on: Tue Dec 19 09:55:48 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_0_0/models/StasisEnd_impl_ari_1_0_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_0_0/models/StasisEnd_impl_ari_1_0_0.java index 6f45431e..bd51832d 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_0_0/models/StasisEnd_impl_ari_1_0_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_0_0/models/StasisEnd_impl_ari_1_0_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Sat Feb 04 15:23:09 CET 2017 +// Generated on: Tue Dec 19 09:55:49 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_0_0/models/StasisStart_impl_ari_1_0_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_0_0/models/StasisStart_impl_ari_1_0_0.java index 12d04f60..0c3a0a17 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_0_0/models/StasisStart_impl_ari_1_0_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_0_0/models/StasisStart_impl_ari_1_0_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Sat Feb 04 15:23:09 CET 2017 +// Generated on: Tue Dec 19 09:55:49 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_0_0/models/StatusInfo_impl_ari_1_0_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_0_0/models/StatusInfo_impl_ari_1_0_0.java index 949919b7..a346a910 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_0_0/models/StatusInfo_impl_ari_1_0_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_0_0/models/StatusInfo_impl_ari_1_0_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Sat Feb 04 15:23:09 CET 2017 +// Generated on: Tue Dec 19 09:55:48 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_0_0/models/StoredRecording_impl_ari_1_0_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_0_0/models/StoredRecording_impl_ari_1_0_0.java index 475240f6..35409db0 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_0_0/models/StoredRecording_impl_ari_1_0_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_0_0/models/StoredRecording_impl_ari_1_0_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Sat Feb 04 15:23:09 CET 2017 +// Generated on: Tue Dec 19 09:55:48 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_0_0/models/SystemInfo_impl_ari_1_0_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_0_0/models/SystemInfo_impl_ari_1_0_0.java index 87cdbdfd..dd456834 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_0_0/models/SystemInfo_impl_ari_1_0_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_0_0/models/SystemInfo_impl_ari_1_0_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Sat Feb 04 15:23:09 CET 2017 +// Generated on: Tue Dec 19 09:55:48 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_0_0/models/Variable_impl_ari_1_0_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_0_0/models/Variable_impl_ari_1_0_0.java index a4cee814..d30b650f 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_0_0/models/Variable_impl_ari_1_0_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_0_0/models/Variable_impl_ari_1_0_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Sat Feb 04 15:23:09 CET 2017 +// Generated on: Tue Dec 19 09:55:48 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/AriBuilder_impl_ari_1_10_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/AriBuilder_impl_ari_1_10_0.java index bb5a9fe1..e242708d 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/AriBuilder_impl_ari_1_10_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/AriBuilder_impl_ari_1_10_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Sat Feb 04 15:23:09 CET 2017 +// Generated on: Tue Dec 19 09:55:49 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.ari_1_10_0.models.*; @@ -53,268 +53,268 @@ public ActionApplications actionApplications() { return new ActionApplications_impl_ari_1_10_0(); }; -public BridgeMerged bridgeMerged() { - return new BridgeMerged_impl_ari_1_10_0(); - }; - -public PeerStatusChange peerStatusChange() { - return new PeerStatusChange_impl_ari_1_10_0(); - }; - -public CallerID callerID() { - return new CallerID_impl_ari_1_10_0(); - }; - -public Event event() { - return new Event_impl_ari_1_10_0(); +public DeviceStateChanged deviceStateChanged() { + return new DeviceStateChanged_impl_ari_1_10_0(); }; -public LogChannel logChannel() { - return new LogChannel_impl_ari_1_10_0(); +public ChannelDialplan channelDialplan() { + return new ChannelDialplan_impl_ari_1_10_0(); }; -public ApplicationReplaced applicationReplaced() { - return new ApplicationReplaced_impl_ari_1_10_0(); +public ConfigInfo configInfo() { + return new ConfigInfo_impl_ari_1_10_0(); }; -public StoredRecording storedRecording() { - return new StoredRecording_impl_ari_1_10_0(); +public TextMessageVariable textMessageVariable() { + return new TextMessageVariable_impl_ari_1_10_0(); }; -public ContactInfo contactInfo() { - return new ContactInfo_impl_ari_1_10_0(); +public Event event() { + return new Event_impl_ari_1_10_0(); }; -public ChannelStateChange channelStateChange() { - return new ChannelStateChange_impl_ari_1_10_0(); +public ConfigTuple configTuple() { + return new ConfigTuple_impl_ari_1_10_0(); }; -public MissingParams missingParams() { - return new MissingParams_impl_ari_1_10_0(); +public TextMessage textMessage() { + return new TextMessage_impl_ari_1_10_0(); }; -public BuildInfo buildInfo() { - return new BuildInfo_impl_ari_1_10_0(); +public ApplicationReplaced applicationReplaced() { + return new ApplicationReplaced_impl_ari_1_10_0(); }; -public RecordingStarted recordingStarted() { - return new RecordingStarted_impl_ari_1_10_0(); +public Endpoint endpoint() { + return new Endpoint_impl_ari_1_10_0(); }; -public ChannelEnteredBridge channelEnteredBridge() { - return new ChannelEnteredBridge_impl_ari_1_10_0(); +public StasisStart stasisStart() { + return new StasisStart_impl_ari_1_10_0(); }; -public FormatLangPair formatLangPair() { - return new FormatLangPair_impl_ari_1_10_0(); +public DeviceState deviceState() { + return new DeviceState_impl_ari_1_10_0(); }; -public ChannelTalkingFinished channelTalkingFinished() { - return new ChannelTalkingFinished_impl_ari_1_10_0(); +public RecordingFinished recordingFinished() { + return new RecordingFinished_impl_ari_1_10_0(); }; -public ContactStatusChange contactStatusChange() { - return new ContactStatusChange_impl_ari_1_10_0(); +public Dialed dialed() { + return new Dialed_impl_ari_1_10_0(); }; -public SetId setId() { - return new SetId_impl_ari_1_10_0(); +public ChannelStateChange channelStateChange() { + return new ChannelStateChange_impl_ari_1_10_0(); }; -public ChannelCreated channelCreated() { - return new ChannelCreated_impl_ari_1_10_0(); +public ChannelDtmfReceived channelDtmfReceived() { + return new ChannelDtmfReceived_impl_ari_1_10_0(); }; -public BridgeBlindTransfer bridgeBlindTransfer() { - return new BridgeBlindTransfer_impl_ari_1_10_0(); +public ChannelConnectedLine channelConnectedLine() { + return new ChannelConnectedLine_impl_ari_1_10_0(); }; -public BridgeDestroyed bridgeDestroyed() { - return new BridgeDestroyed_impl_ari_1_10_0(); +public PlaybackFinished playbackFinished() { + return new PlaybackFinished_impl_ari_1_10_0(); }; -public StasisEnd stasisEnd() { - return new StasisEnd_impl_ari_1_10_0(); +public PlaybackStarted playbackStarted() { + return new PlaybackStarted_impl_ari_1_10_0(); }; -public AsteriskInfo asteriskInfo() { - return new AsteriskInfo_impl_ari_1_10_0(); +public Peer peer() { + return new Peer_impl_ari_1_10_0(); }; -public Playback playback() { - return new Playback_impl_ari_1_10_0(); +public ChannelHangupRequest channelHangupRequest() { + return new ChannelHangupRequest_impl_ari_1_10_0(); }; -public TextMessageVariable textMessageVariable() { - return new TextMessageVariable_impl_ari_1_10_0(); +public Dial dial() { + return new Dial_impl_ari_1_10_0(); }; -public EndpointStateChange endpointStateChange() { - return new EndpointStateChange_impl_ari_1_10_0(); +public Variable variable() { + return new Variable_impl_ari_1_10_0(); }; -public ChannelUnhold channelUnhold() { - return new ChannelUnhold_impl_ari_1_10_0(); +public Module module() { + return new Module_impl_ari_1_10_0(); }; -public TextMessage textMessage() { - return new TextMessage_impl_ari_1_10_0(); +public ChannelCallerId channelCallerId() { + return new ChannelCallerId_impl_ari_1_10_0(); }; -public RecordingFinished recordingFinished() { - return new RecordingFinished_impl_ari_1_10_0(); +public ChannelEnteredBridge channelEnteredBridge() { + return new ChannelEnteredBridge_impl_ari_1_10_0(); }; -public SystemInfo systemInfo() { - return new SystemInfo_impl_ari_1_10_0(); +public LogChannel logChannel() { + return new LogChannel_impl_ari_1_10_0(); }; public Message message() { return new Message_impl_ari_1_10_0(); }; -public ChannelCallerId channelCallerId() { - return new ChannelCallerId_impl_ari_1_10_0(); +public PeerStatusChange peerStatusChange() { + return new PeerStatusChange_impl_ari_1_10_0(); }; -public ChannelHangupRequest channelHangupRequest() { - return new ChannelHangupRequest_impl_ari_1_10_0(); +public Channel channel() { + return new Channel_impl_ari_1_10_0(); }; -public PlaybackContinuing playbackContinuing() { - return new PlaybackContinuing_impl_ari_1_10_0(); +public BridgeMerged bridgeMerged() { + return new BridgeMerged_impl_ari_1_10_0(); }; -public StasisStart stasisStart() { - return new StasisStart_impl_ari_1_10_0(); +public BridgeAttendedTransfer bridgeAttendedTransfer() { + return new BridgeAttendedTransfer_impl_ari_1_10_0(); }; -public DialplanCEP dialplanCEP() { - return new DialplanCEP_impl_ari_1_10_0(); +public FormatLangPair formatLangPair() { + return new FormatLangPair_impl_ari_1_10_0(); }; -public Variable variable() { - return new Variable_impl_ari_1_10_0(); +public ChannelVarset channelVarset() { + return new ChannelVarset_impl_ari_1_10_0(); }; -public Bridge bridge() { - return new Bridge_impl_ari_1_10_0(); +public SetId setId() { + return new SetId_impl_ari_1_10_0(); }; -public ChannelLeftBridge channelLeftBridge() { - return new ChannelLeftBridge_impl_ari_1_10_0(); +public ContactStatusChange contactStatusChange() { + return new ContactStatusChange_impl_ari_1_10_0(); }; -public BridgeAttendedTransfer bridgeAttendedTransfer() { - return new BridgeAttendedTransfer_impl_ari_1_10_0(); +public BuildInfo buildInfo() { + return new BuildInfo_impl_ari_1_10_0(); }; -public ChannelConnectedLine channelConnectedLine() { - return new ChannelConnectedLine_impl_ari_1_10_0(); +public RecordingFailed recordingFailed() { + return new RecordingFailed_impl_ari_1_10_0(); }; -public DeviceStateChanged deviceStateChanged() { - return new DeviceStateChanged_impl_ari_1_10_0(); +public PlaybackContinuing playbackContinuing() { + return new PlaybackContinuing_impl_ari_1_10_0(); }; -public ChannelHold channelHold() { - return new ChannelHold_impl_ari_1_10_0(); +public ChannelUnhold channelUnhold() { + return new ChannelUnhold_impl_ari_1_10_0(); }; -public ConfigInfo configInfo() { - return new ConfigInfo_impl_ari_1_10_0(); +public StoredRecording storedRecording() { + return new StoredRecording_impl_ari_1_10_0(); }; -public Endpoint endpoint() { - return new Endpoint_impl_ari_1_10_0(); +public ChannelDestroyed channelDestroyed() { + return new ChannelDestroyed_impl_ari_1_10_0(); }; -public Module module() { - return new Module_impl_ari_1_10_0(); +public AsteriskInfo asteriskInfo() { + return new AsteriskInfo_impl_ari_1_10_0(); }; -public ChannelDestroyed channelDestroyed() { - return new ChannelDestroyed_impl_ari_1_10_0(); +public RecordingStarted recordingStarted() { + return new RecordingStarted_impl_ari_1_10_0(); }; -public ChannelTalkingStarted channelTalkingStarted() { - return new ChannelTalkingStarted_impl_ari_1_10_0(); +public EndpointStateChange endpointStateChange() { + return new EndpointStateChange_impl_ari_1_10_0(); }; -public Dial dial() { - return new Dial_impl_ari_1_10_0(); +public ChannelLeftBridge channelLeftBridge() { + return new ChannelLeftBridge_impl_ari_1_10_0(); }; -public PlaybackStarted playbackStarted() { - return new PlaybackStarted_impl_ari_1_10_0(); +public ChannelUserevent channelUserevent() { + return new ChannelUserevent_impl_ari_1_10_0(); }; -public Peer peer() { - return new Peer_impl_ari_1_10_0(); +public LiveRecording liveRecording() { + return new LiveRecording_impl_ari_1_10_0(); }; -public ChannelDialplan channelDialplan() { - return new ChannelDialplan_impl_ari_1_10_0(); +public ChannelTalkingFinished channelTalkingFinished() { + return new ChannelTalkingFinished_impl_ari_1_10_0(); }; -public ChannelUserevent channelUserevent() { - return new ChannelUserevent_impl_ari_1_10_0(); +public TextMessageReceived textMessageReceived() { + return new TextMessageReceived_impl_ari_1_10_0(); }; -public Sound sound() { - return new Sound_impl_ari_1_10_0(); +public Playback playback() { + return new Playback_impl_ari_1_10_0(); }; -public StatusInfo statusInfo() { - return new StatusInfo_impl_ari_1_10_0(); +public BridgeDestroyed bridgeDestroyed() { + return new BridgeDestroyed_impl_ari_1_10_0(); }; -public ChannelVarset channelVarset() { - return new ChannelVarset_impl_ari_1_10_0(); +public BridgeBlindTransfer bridgeBlindTransfer() { + return new BridgeBlindTransfer_impl_ari_1_10_0(); }; -public ChannelDtmfReceived channelDtmfReceived() { - return new ChannelDtmfReceived_impl_ari_1_10_0(); +public StasisEnd stasisEnd() { + return new StasisEnd_impl_ari_1_10_0(); }; -public LiveRecording liveRecording() { - return new LiveRecording_impl_ari_1_10_0(); +public DialplanCEP dialplanCEP() { + return new DialplanCEP_impl_ari_1_10_0(); + }; + +public ChannelCreated channelCreated() { + return new ChannelCreated_impl_ari_1_10_0(); }; public BridgeCreated bridgeCreated() { return new BridgeCreated_impl_ari_1_10_0(); }; -public PlaybackFinished playbackFinished() { - return new PlaybackFinished_impl_ari_1_10_0(); +public Bridge bridge() { + return new Bridge_impl_ari_1_10_0(); }; -public RecordingFailed recordingFailed() { - return new RecordingFailed_impl_ari_1_10_0(); +public ContactInfo contactInfo() { + return new ContactInfo_impl_ari_1_10_0(); }; -public Channel channel() { - return new Channel_impl_ari_1_10_0(); +public Sound sound() { + return new Sound_impl_ari_1_10_0(); }; -public Dialed dialed() { - return new Dialed_impl_ari_1_10_0(); +public MissingParams missingParams() { + return new MissingParams_impl_ari_1_10_0(); }; -public TextMessageReceived textMessageReceived() { - return new TextMessageReceived_impl_ari_1_10_0(); +public StatusInfo statusInfo() { + return new StatusInfo_impl_ari_1_10_0(); }; -public ConfigTuple configTuple() { - return new ConfigTuple_impl_ari_1_10_0(); +public SystemInfo systemInfo() { + return new SystemInfo_impl_ari_1_10_0(); + }; + +public ChannelHold channelHold() { + return new ChannelHold_impl_ari_1_10_0(); }; public Application application() { return new Application_impl_ari_1_10_0(); }; -public DeviceState deviceState() { - return new DeviceState_impl_ari_1_10_0(); +public CallerID callerID() { + return new CallerID_impl_ari_1_10_0(); + }; + +public ChannelTalkingStarted channelTalkingStarted() { + return new ChannelTalkingStarted_impl_ari_1_10_0(); }; public BridgeVideoSourceChanged bridgeVideoSourceChanged() { diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/ClassTranslator_impl_ari_1_10_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/ClassTranslator_impl_ari_1_10_0.java index d1ac17d6..f1ffb142 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/ClassTranslator_impl_ari_1_10_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/ClassTranslator_impl_ari_1_10_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Sat Feb 04 15:23:09 CET 2017 +// Generated on: Tue Dec 19 09:55:50 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.ARI; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/actions/ActionApplications_impl_ari_1_10_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/actions/ActionApplications_impl_ari_1_10_0.java index f442060d..1c714cda 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/actions/ActionApplications_impl_ari_1_10_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/actions/ActionApplications_impl_ari_1_10_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Sat Feb 04 15:23:09 CET 2017 +// Generated on: Tue Dec 19 09:55:49 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/actions/ActionAsterisk_impl_ari_1_10_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/actions/ActionAsterisk_impl_ari_1_10_0.java index 1ec2b1a9..ebf4ad43 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/actions/ActionAsterisk_impl_ari_1_10_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/actions/ActionAsterisk_impl_ari_1_10_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Sat Feb 04 15:23:09 CET 2017 +// Generated on: Tue Dec 19 09:55:49 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/actions/ActionBridges_impl_ari_1_10_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/actions/ActionBridges_impl_ari_1_10_0.java index b79c4b56..9cb47549 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/actions/ActionBridges_impl_ari_1_10_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/actions/ActionBridges_impl_ari_1_10_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Sat Feb 04 15:23:09 CET 2017 +// Generated on: Tue Dec 19 09:55:49 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/actions/ActionChannels_impl_ari_1_10_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/actions/ActionChannels_impl_ari_1_10_0.java index 19a99b45..53e7b6fa 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/actions/ActionChannels_impl_ari_1_10_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/actions/ActionChannels_impl_ari_1_10_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Sat Feb 04 15:23:09 CET 2017 +// Generated on: Tue Dec 19 09:55:49 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/actions/ActionDeviceStates_impl_ari_1_10_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/actions/ActionDeviceStates_impl_ari_1_10_0.java index da33255e..4904a415 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/actions/ActionDeviceStates_impl_ari_1_10_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/actions/ActionDeviceStates_impl_ari_1_10_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Sat Feb 04 15:23:09 CET 2017 +// Generated on: Tue Dec 19 09:55:49 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/actions/ActionEndpoints_impl_ari_1_10_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/actions/ActionEndpoints_impl_ari_1_10_0.java index 1ffbcee7..0e96979c 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/actions/ActionEndpoints_impl_ari_1_10_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/actions/ActionEndpoints_impl_ari_1_10_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Sat Feb 04 15:23:09 CET 2017 +// Generated on: Tue Dec 19 09:55:49 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/actions/ActionEvents_impl_ari_1_10_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/actions/ActionEvents_impl_ari_1_10_0.java index 0b16ef06..6adbb2b9 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/actions/ActionEvents_impl_ari_1_10_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/actions/ActionEvents_impl_ari_1_10_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Sat Feb 04 15:23:09 CET 2017 +// Generated on: Tue Dec 19 09:55:49 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/actions/ActionPlaybacks_impl_ari_1_10_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/actions/ActionPlaybacks_impl_ari_1_10_0.java index 9a69f130..b190d812 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/actions/ActionPlaybacks_impl_ari_1_10_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/actions/ActionPlaybacks_impl_ari_1_10_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Sat Feb 04 15:23:09 CET 2017 +// Generated on: Tue Dec 19 09:55:49 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/actions/ActionRecordings_impl_ari_1_10_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/actions/ActionRecordings_impl_ari_1_10_0.java index f2f59640..324db17c 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/actions/ActionRecordings_impl_ari_1_10_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/actions/ActionRecordings_impl_ari_1_10_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Sat Feb 04 15:23:09 CET 2017 +// Generated on: Tue Dec 19 09:55:49 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/actions/ActionSounds_impl_ari_1_10_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/actions/ActionSounds_impl_ari_1_10_0.java index 1f73798c..70750ef0 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/actions/ActionSounds_impl_ari_1_10_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/actions/ActionSounds_impl_ari_1_10_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Sat Feb 04 15:23:09 CET 2017 +// Generated on: Tue Dec 19 09:55:49 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/models/ApplicationReplaced_impl_ari_1_10_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/models/ApplicationReplaced_impl_ari_1_10_0.java index 2d6d0b91..820e70d3 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/models/ApplicationReplaced_impl_ari_1_10_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/models/ApplicationReplaced_impl_ari_1_10_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Sat Feb 04 15:23:09 CET 2017 +// Generated on: Tue Dec 19 09:55:49 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/models/Application_impl_ari_1_10_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/models/Application_impl_ari_1_10_0.java index 77d9f216..15237141 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/models/Application_impl_ari_1_10_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/models/Application_impl_ari_1_10_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Sat Feb 04 15:23:09 CET 2017 +// Generated on: Tue Dec 19 09:55:49 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/models/AsteriskInfo_impl_ari_1_10_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/models/AsteriskInfo_impl_ari_1_10_0.java index a5ff7cd1..c93cac6f 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/models/AsteriskInfo_impl_ari_1_10_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/models/AsteriskInfo_impl_ari_1_10_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Sat Feb 04 15:23:09 CET 2017 +// Generated on: Tue Dec 19 09:55:49 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/models/BridgeAttendedTransfer_impl_ari_1_10_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/models/BridgeAttendedTransfer_impl_ari_1_10_0.java index 52c009d7..6052260a 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/models/BridgeAttendedTransfer_impl_ari_1_10_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/models/BridgeAttendedTransfer_impl_ari_1_10_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Sat Feb 04 15:23:09 CET 2017 +// Generated on: Tue Dec 19 09:55:49 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/models/BridgeBlindTransfer_impl_ari_1_10_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/models/BridgeBlindTransfer_impl_ari_1_10_0.java index 6a506de2..52f44353 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/models/BridgeBlindTransfer_impl_ari_1_10_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/models/BridgeBlindTransfer_impl_ari_1_10_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Sat Feb 04 15:23:09 CET 2017 +// Generated on: Tue Dec 19 09:55:49 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/models/BridgeCreated_impl_ari_1_10_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/models/BridgeCreated_impl_ari_1_10_0.java index f48020fe..c10633a8 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/models/BridgeCreated_impl_ari_1_10_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/models/BridgeCreated_impl_ari_1_10_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Sat Feb 04 15:23:09 CET 2017 +// Generated on: Tue Dec 19 09:55:49 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/models/BridgeDestroyed_impl_ari_1_10_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/models/BridgeDestroyed_impl_ari_1_10_0.java index 5f32973d..ae6f2687 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/models/BridgeDestroyed_impl_ari_1_10_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/models/BridgeDestroyed_impl_ari_1_10_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Sat Feb 04 15:23:09 CET 2017 +// Generated on: Tue Dec 19 09:55:49 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/models/BridgeMerged_impl_ari_1_10_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/models/BridgeMerged_impl_ari_1_10_0.java index d287f432..ad5ed430 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/models/BridgeMerged_impl_ari_1_10_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/models/BridgeMerged_impl_ari_1_10_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Sat Feb 04 15:23:09 CET 2017 +// Generated on: Tue Dec 19 09:55:49 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/models/Bridge_impl_ari_1_10_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/models/Bridge_impl_ari_1_10_0.java index 5d4688d2..7211d2ac 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/models/Bridge_impl_ari_1_10_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/models/Bridge_impl_ari_1_10_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Sat Feb 04 15:23:09 CET 2017 +// Generated on: Tue Dec 19 09:55:49 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/models/BuildInfo_impl_ari_1_10_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/models/BuildInfo_impl_ari_1_10_0.java index 2592bea3..086f096e 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/models/BuildInfo_impl_ari_1_10_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/models/BuildInfo_impl_ari_1_10_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Sat Feb 04 15:23:09 CET 2017 +// Generated on: Tue Dec 19 09:55:49 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/models/CallerID_impl_ari_1_10_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/models/CallerID_impl_ari_1_10_0.java index a096a5a9..387ff946 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/models/CallerID_impl_ari_1_10_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/models/CallerID_impl_ari_1_10_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Sat Feb 04 15:23:09 CET 2017 +// Generated on: Tue Dec 19 09:55:49 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/models/ChannelCallerId_impl_ari_1_10_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/models/ChannelCallerId_impl_ari_1_10_0.java index 6598dd03..3ce36c70 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/models/ChannelCallerId_impl_ari_1_10_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/models/ChannelCallerId_impl_ari_1_10_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Sat Feb 04 15:23:09 CET 2017 +// Generated on: Tue Dec 19 09:55:49 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/models/ChannelConnectedLine_impl_ari_1_10_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/models/ChannelConnectedLine_impl_ari_1_10_0.java index 5dd67399..687518e9 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/models/ChannelConnectedLine_impl_ari_1_10_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/models/ChannelConnectedLine_impl_ari_1_10_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Sat Feb 04 15:23:09 CET 2017 +// Generated on: Tue Dec 19 09:55:49 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/models/ChannelCreated_impl_ari_1_10_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/models/ChannelCreated_impl_ari_1_10_0.java index b54bed0d..2de48673 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/models/ChannelCreated_impl_ari_1_10_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/models/ChannelCreated_impl_ari_1_10_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Sat Feb 04 15:23:09 CET 2017 +// Generated on: Tue Dec 19 09:55:49 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/models/ChannelDestroyed_impl_ari_1_10_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/models/ChannelDestroyed_impl_ari_1_10_0.java index b672ff0d..b3fbcc37 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/models/ChannelDestroyed_impl_ari_1_10_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/models/ChannelDestroyed_impl_ari_1_10_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Sat Feb 04 15:23:09 CET 2017 +// Generated on: Tue Dec 19 09:55:49 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/models/ChannelDialplan_impl_ari_1_10_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/models/ChannelDialplan_impl_ari_1_10_0.java index 7cd49112..ba3ee3c7 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/models/ChannelDialplan_impl_ari_1_10_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/models/ChannelDialplan_impl_ari_1_10_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Sat Feb 04 15:23:09 CET 2017 +// Generated on: Tue Dec 19 09:55:49 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/models/ChannelDtmfReceived_impl_ari_1_10_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/models/ChannelDtmfReceived_impl_ari_1_10_0.java index f2127ad6..7dcbaf81 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/models/ChannelDtmfReceived_impl_ari_1_10_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/models/ChannelDtmfReceived_impl_ari_1_10_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Sat Feb 04 15:23:09 CET 2017 +// Generated on: Tue Dec 19 09:55:49 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/models/ChannelEnteredBridge_impl_ari_1_10_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/models/ChannelEnteredBridge_impl_ari_1_10_0.java index 0abd1b26..a30834d4 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/models/ChannelEnteredBridge_impl_ari_1_10_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/models/ChannelEnteredBridge_impl_ari_1_10_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Sat Feb 04 15:23:09 CET 2017 +// Generated on: Tue Dec 19 09:55:49 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/models/ChannelHangupRequest_impl_ari_1_10_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/models/ChannelHangupRequest_impl_ari_1_10_0.java index aab015b4..d2b13e3d 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/models/ChannelHangupRequest_impl_ari_1_10_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/models/ChannelHangupRequest_impl_ari_1_10_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Sat Feb 04 15:23:09 CET 2017 +// Generated on: Tue Dec 19 09:55:49 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/models/ChannelHold_impl_ari_1_10_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/models/ChannelHold_impl_ari_1_10_0.java index de0b1472..230f7d8b 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/models/ChannelHold_impl_ari_1_10_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/models/ChannelHold_impl_ari_1_10_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Sat Feb 04 15:23:09 CET 2017 +// Generated on: Tue Dec 19 09:55:49 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/models/ChannelLeftBridge_impl_ari_1_10_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/models/ChannelLeftBridge_impl_ari_1_10_0.java index c6bead22..106393a8 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/models/ChannelLeftBridge_impl_ari_1_10_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/models/ChannelLeftBridge_impl_ari_1_10_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Sat Feb 04 15:23:09 CET 2017 +// Generated on: Tue Dec 19 09:55:49 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/models/ChannelStateChange_impl_ari_1_10_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/models/ChannelStateChange_impl_ari_1_10_0.java index 87bdabac..ee10d49e 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/models/ChannelStateChange_impl_ari_1_10_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/models/ChannelStateChange_impl_ari_1_10_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Sat Feb 04 15:23:09 CET 2017 +// Generated on: Tue Dec 19 09:55:49 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/models/ChannelTalkingFinished_impl_ari_1_10_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/models/ChannelTalkingFinished_impl_ari_1_10_0.java index 63b16a37..f4b5e17d 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/models/ChannelTalkingFinished_impl_ari_1_10_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/models/ChannelTalkingFinished_impl_ari_1_10_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Sat Feb 04 15:23:09 CET 2017 +// Generated on: Tue Dec 19 09:55:49 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/models/ChannelTalkingStarted_impl_ari_1_10_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/models/ChannelTalkingStarted_impl_ari_1_10_0.java index 71da1795..4f57baaf 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/models/ChannelTalkingStarted_impl_ari_1_10_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/models/ChannelTalkingStarted_impl_ari_1_10_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Sat Feb 04 15:23:09 CET 2017 +// Generated on: Tue Dec 19 09:55:49 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/models/ChannelUnhold_impl_ari_1_10_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/models/ChannelUnhold_impl_ari_1_10_0.java index ea8ae8e9..ec39ed0a 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/models/ChannelUnhold_impl_ari_1_10_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/models/ChannelUnhold_impl_ari_1_10_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Sat Feb 04 15:23:09 CET 2017 +// Generated on: Tue Dec 19 09:55:49 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/models/ChannelUserevent_impl_ari_1_10_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/models/ChannelUserevent_impl_ari_1_10_0.java index 9ac62247..4ab6e986 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/models/ChannelUserevent_impl_ari_1_10_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/models/ChannelUserevent_impl_ari_1_10_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Sat Feb 04 15:23:09 CET 2017 +// Generated on: Tue Dec 19 09:55:49 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/models/ChannelVarset_impl_ari_1_10_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/models/ChannelVarset_impl_ari_1_10_0.java index be5f1b1e..539566ce 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/models/ChannelVarset_impl_ari_1_10_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/models/ChannelVarset_impl_ari_1_10_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Sat Feb 04 15:23:09 CET 2017 +// Generated on: Tue Dec 19 09:55:49 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/models/Channel_impl_ari_1_10_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/models/Channel_impl_ari_1_10_0.java index 82972587..b61bfad3 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/models/Channel_impl_ari_1_10_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/models/Channel_impl_ari_1_10_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Sat Feb 04 15:23:09 CET 2017 +// Generated on: Tue Dec 19 09:55:49 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/models/ConfigInfo_impl_ari_1_10_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/models/ConfigInfo_impl_ari_1_10_0.java index 0e753b56..ddde36d5 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/models/ConfigInfo_impl_ari_1_10_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/models/ConfigInfo_impl_ari_1_10_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Sat Feb 04 15:23:09 CET 2017 +// Generated on: Tue Dec 19 09:55:49 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/models/ConfigTuple_impl_ari_1_10_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/models/ConfigTuple_impl_ari_1_10_0.java index 7ea11e9d..73409088 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/models/ConfigTuple_impl_ari_1_10_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/models/ConfigTuple_impl_ari_1_10_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Sat Feb 04 15:23:09 CET 2017 +// Generated on: Tue Dec 19 09:55:49 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/models/ContactInfo_impl_ari_1_10_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/models/ContactInfo_impl_ari_1_10_0.java index 2f5db17f..f0c9814a 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/models/ContactInfo_impl_ari_1_10_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/models/ContactInfo_impl_ari_1_10_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Sat Feb 04 15:23:09 CET 2017 +// Generated on: Tue Dec 19 09:55:49 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/models/ContactStatusChange_impl_ari_1_10_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/models/ContactStatusChange_impl_ari_1_10_0.java index d3b091c8..2b9f920c 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/models/ContactStatusChange_impl_ari_1_10_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/models/ContactStatusChange_impl_ari_1_10_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Sat Feb 04 15:23:09 CET 2017 +// Generated on: Tue Dec 19 09:55:49 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/models/DeviceStateChanged_impl_ari_1_10_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/models/DeviceStateChanged_impl_ari_1_10_0.java index 1263e014..c42bbf3c 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/models/DeviceStateChanged_impl_ari_1_10_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/models/DeviceStateChanged_impl_ari_1_10_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Sat Feb 04 15:23:09 CET 2017 +// Generated on: Tue Dec 19 09:55:49 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/models/DeviceState_impl_ari_1_10_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/models/DeviceState_impl_ari_1_10_0.java index 62d6f1ae..b5d73b0d 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/models/DeviceState_impl_ari_1_10_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/models/DeviceState_impl_ari_1_10_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Sat Feb 04 15:23:09 CET 2017 +// Generated on: Tue Dec 19 09:55:49 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/models/Dial_impl_ari_1_10_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/models/Dial_impl_ari_1_10_0.java index 792b55e1..64f8063a 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/models/Dial_impl_ari_1_10_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/models/Dial_impl_ari_1_10_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Sat Feb 04 15:23:09 CET 2017 +// Generated on: Tue Dec 19 09:55:49 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/models/Dialed_impl_ari_1_10_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/models/Dialed_impl_ari_1_10_0.java index 24289856..a073834d 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/models/Dialed_impl_ari_1_10_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/models/Dialed_impl_ari_1_10_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Sat Feb 04 15:23:09 CET 2017 +// Generated on: Tue Dec 19 09:55:49 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/models/DialplanCEP_impl_ari_1_10_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/models/DialplanCEP_impl_ari_1_10_0.java index 209887bd..d2f90a97 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/models/DialplanCEP_impl_ari_1_10_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/models/DialplanCEP_impl_ari_1_10_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Sat Feb 04 15:23:09 CET 2017 +// Generated on: Tue Dec 19 09:55:49 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/models/EndpointStateChange_impl_ari_1_10_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/models/EndpointStateChange_impl_ari_1_10_0.java index 3bdcf8f5..45b52d20 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/models/EndpointStateChange_impl_ari_1_10_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/models/EndpointStateChange_impl_ari_1_10_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Sat Feb 04 15:23:09 CET 2017 +// Generated on: Tue Dec 19 09:55:49 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/models/Endpoint_impl_ari_1_10_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/models/Endpoint_impl_ari_1_10_0.java index 78119fda..68fcfcfc 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/models/Endpoint_impl_ari_1_10_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/models/Endpoint_impl_ari_1_10_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Sat Feb 04 15:23:09 CET 2017 +// Generated on: Tue Dec 19 09:55:49 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/models/Event_impl_ari_1_10_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/models/Event_impl_ari_1_10_0.java index 5a234738..0914b507 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/models/Event_impl_ari_1_10_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/models/Event_impl_ari_1_10_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Sat Feb 04 15:23:09 CET 2017 +// Generated on: Tue Dec 19 09:55:49 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/models/FormatLangPair_impl_ari_1_10_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/models/FormatLangPair_impl_ari_1_10_0.java index 705d7c0a..ce7f82d0 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/models/FormatLangPair_impl_ari_1_10_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/models/FormatLangPair_impl_ari_1_10_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Sat Feb 04 15:23:09 CET 2017 +// Generated on: Tue Dec 19 09:55:49 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/models/LiveRecording_impl_ari_1_10_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/models/LiveRecording_impl_ari_1_10_0.java index 54d7f64c..cfae53e8 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/models/LiveRecording_impl_ari_1_10_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/models/LiveRecording_impl_ari_1_10_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Sat Feb 04 15:23:09 CET 2017 +// Generated on: Tue Dec 19 09:55:49 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/models/LogChannel_impl_ari_1_10_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/models/LogChannel_impl_ari_1_10_0.java index 066f7130..5775d7ef 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/models/LogChannel_impl_ari_1_10_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/models/LogChannel_impl_ari_1_10_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Sat Feb 04 15:23:09 CET 2017 +// Generated on: Tue Dec 19 09:55:49 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/models/Message_impl_ari_1_10_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/models/Message_impl_ari_1_10_0.java index eefd261c..d7271111 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/models/Message_impl_ari_1_10_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/models/Message_impl_ari_1_10_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Sat Feb 04 15:23:09 CET 2017 +// Generated on: Tue Dec 19 09:55:49 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/models/MissingParams_impl_ari_1_10_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/models/MissingParams_impl_ari_1_10_0.java index 813745f0..917b7357 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/models/MissingParams_impl_ari_1_10_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/models/MissingParams_impl_ari_1_10_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Sat Feb 04 15:23:09 CET 2017 +// Generated on: Tue Dec 19 09:55:49 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/models/Module_impl_ari_1_10_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/models/Module_impl_ari_1_10_0.java index 3bf113c0..903911ce 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/models/Module_impl_ari_1_10_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/models/Module_impl_ari_1_10_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Sat Feb 04 15:23:09 CET 2017 +// Generated on: Tue Dec 19 09:55:49 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/models/PeerStatusChange_impl_ari_1_10_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/models/PeerStatusChange_impl_ari_1_10_0.java index 448fecda..4cf380b5 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/models/PeerStatusChange_impl_ari_1_10_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/models/PeerStatusChange_impl_ari_1_10_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Sat Feb 04 15:23:09 CET 2017 +// Generated on: Tue Dec 19 09:55:49 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/models/Peer_impl_ari_1_10_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/models/Peer_impl_ari_1_10_0.java index c161eb26..b4b04acc 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/models/Peer_impl_ari_1_10_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/models/Peer_impl_ari_1_10_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Sat Feb 04 15:23:09 CET 2017 +// Generated on: Tue Dec 19 09:55:49 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/models/PlaybackContinuing_impl_ari_1_10_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/models/PlaybackContinuing_impl_ari_1_10_0.java index 1926a933..a4971db0 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/models/PlaybackContinuing_impl_ari_1_10_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/models/PlaybackContinuing_impl_ari_1_10_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Sat Feb 04 15:23:09 CET 2017 +// Generated on: Tue Dec 19 09:55:49 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/models/PlaybackFinished_impl_ari_1_10_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/models/PlaybackFinished_impl_ari_1_10_0.java index c0b7c9d0..5bc46ba9 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/models/PlaybackFinished_impl_ari_1_10_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/models/PlaybackFinished_impl_ari_1_10_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Sat Feb 04 15:23:09 CET 2017 +// Generated on: Tue Dec 19 09:55:49 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/models/PlaybackStarted_impl_ari_1_10_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/models/PlaybackStarted_impl_ari_1_10_0.java index 27d06c87..a8332f90 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/models/PlaybackStarted_impl_ari_1_10_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/models/PlaybackStarted_impl_ari_1_10_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Sat Feb 04 15:23:09 CET 2017 +// Generated on: Tue Dec 19 09:55:49 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/models/Playback_impl_ari_1_10_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/models/Playback_impl_ari_1_10_0.java index 2d582a75..e089e9f5 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/models/Playback_impl_ari_1_10_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/models/Playback_impl_ari_1_10_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Sat Feb 04 15:23:09 CET 2017 +// Generated on: Tue Dec 19 09:55:49 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/models/RecordingFailed_impl_ari_1_10_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/models/RecordingFailed_impl_ari_1_10_0.java index 7cfd5bbb..58b8a41f 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/models/RecordingFailed_impl_ari_1_10_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/models/RecordingFailed_impl_ari_1_10_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Sat Feb 04 15:23:09 CET 2017 +// Generated on: Tue Dec 19 09:55:49 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/models/RecordingFinished_impl_ari_1_10_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/models/RecordingFinished_impl_ari_1_10_0.java index 0fc44753..bb538546 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/models/RecordingFinished_impl_ari_1_10_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/models/RecordingFinished_impl_ari_1_10_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Sat Feb 04 15:23:09 CET 2017 +// Generated on: Tue Dec 19 09:55:49 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/models/RecordingStarted_impl_ari_1_10_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/models/RecordingStarted_impl_ari_1_10_0.java index c5c68c20..b44b0c51 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/models/RecordingStarted_impl_ari_1_10_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/models/RecordingStarted_impl_ari_1_10_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Sat Feb 04 15:23:09 CET 2017 +// Generated on: Tue Dec 19 09:55:49 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/models/SetId_impl_ari_1_10_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/models/SetId_impl_ari_1_10_0.java index b5893f1f..caf7f729 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/models/SetId_impl_ari_1_10_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/models/SetId_impl_ari_1_10_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Sat Feb 04 15:23:09 CET 2017 +// Generated on: Tue Dec 19 09:55:49 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/models/Sound_impl_ari_1_10_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/models/Sound_impl_ari_1_10_0.java index 4493b551..0364ffb6 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/models/Sound_impl_ari_1_10_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/models/Sound_impl_ari_1_10_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Sat Feb 04 15:23:09 CET 2017 +// Generated on: Tue Dec 19 09:55:49 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/models/StasisEnd_impl_ari_1_10_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/models/StasisEnd_impl_ari_1_10_0.java index 703b923f..a1f4e4cc 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/models/StasisEnd_impl_ari_1_10_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/models/StasisEnd_impl_ari_1_10_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Sat Feb 04 15:23:09 CET 2017 +// Generated on: Tue Dec 19 09:55:49 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/models/StasisStart_impl_ari_1_10_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/models/StasisStart_impl_ari_1_10_0.java index 6f78288a..eb6c3e0b 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/models/StasisStart_impl_ari_1_10_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/models/StasisStart_impl_ari_1_10_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Sat Feb 04 15:23:09 CET 2017 +// Generated on: Tue Dec 19 09:55:49 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/models/StatusInfo_impl_ari_1_10_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/models/StatusInfo_impl_ari_1_10_0.java index 9788c8c0..cd04fb28 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/models/StatusInfo_impl_ari_1_10_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/models/StatusInfo_impl_ari_1_10_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Sat Feb 04 15:23:09 CET 2017 +// Generated on: Tue Dec 19 09:55:49 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/models/StoredRecording_impl_ari_1_10_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/models/StoredRecording_impl_ari_1_10_0.java index de72f41a..319d964a 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/models/StoredRecording_impl_ari_1_10_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/models/StoredRecording_impl_ari_1_10_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Sat Feb 04 15:23:09 CET 2017 +// Generated on: Tue Dec 19 09:55:49 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/models/SystemInfo_impl_ari_1_10_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/models/SystemInfo_impl_ari_1_10_0.java index 2f4285b2..b54392bd 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/models/SystemInfo_impl_ari_1_10_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/models/SystemInfo_impl_ari_1_10_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Sat Feb 04 15:23:09 CET 2017 +// Generated on: Tue Dec 19 09:55:49 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/models/TextMessageReceived_impl_ari_1_10_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/models/TextMessageReceived_impl_ari_1_10_0.java index 7c25ec48..5cf44ebe 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/models/TextMessageReceived_impl_ari_1_10_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/models/TextMessageReceived_impl_ari_1_10_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Sat Feb 04 15:23:09 CET 2017 +// Generated on: Tue Dec 19 09:55:49 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/models/TextMessageVariable_impl_ari_1_10_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/models/TextMessageVariable_impl_ari_1_10_0.java index 130cab0e..cdabaa55 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/models/TextMessageVariable_impl_ari_1_10_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/models/TextMessageVariable_impl_ari_1_10_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Sat Feb 04 15:23:09 CET 2017 +// Generated on: Tue Dec 19 09:55:49 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/models/TextMessage_impl_ari_1_10_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/models/TextMessage_impl_ari_1_10_0.java index 214a533f..3be50f12 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/models/TextMessage_impl_ari_1_10_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/models/TextMessage_impl_ari_1_10_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Sat Feb 04 15:23:09 CET 2017 +// Generated on: Tue Dec 19 09:55:49 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/models/Variable_impl_ari_1_10_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/models/Variable_impl_ari_1_10_0.java index 46ed6d40..61c603e6 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/models/Variable_impl_ari_1_10_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/models/Variable_impl_ari_1_10_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Sat Feb 04 15:23:09 CET 2017 +// Generated on: Tue Dec 19 09:55:49 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_5_0/AriBuilder_impl_ari_1_5_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_5_0/AriBuilder_impl_ari_1_5_0.java index 87497f91..57686444 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_5_0/AriBuilder_impl_ari_1_5_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_5_0/AriBuilder_impl_ari_1_5_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Sat Feb 04 15:23:09 CET 2017 +// Generated on: Tue Dec 19 09:55:50 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.ari_1_5_0.models.*; @@ -53,224 +53,224 @@ public ActionDeviceStates actionDeviceStates() { return new ActionDeviceStates_impl_ari_1_5_0(); }; -public TextMessageVariable textMessageVariable() { - return new TextMessageVariable_impl_ari_1_5_0(); +public ConfigInfo configInfo() { + return new ConfigInfo_impl_ari_1_5_0(); }; -public ChannelEnteredBridge channelEnteredBridge() { - return new ChannelEnteredBridge_impl_ari_1_5_0(); +public RecordingFinished recordingFinished() { + return new RecordingFinished_impl_ari_1_5_0(); }; -public Sound sound() { - return new Sound_impl_ari_1_5_0(); +public DialplanCEP dialplanCEP() { + return new DialplanCEP_impl_ari_1_5_0(); }; -public ChannelStateChange channelStateChange() { - return new ChannelStateChange_impl_ari_1_5_0(); +public ApplicationReplaced applicationReplaced() { + return new ApplicationReplaced_impl_ari_1_5_0(); }; -public TextMessageReceived textMessageReceived() { - return new TextMessageReceived_impl_ari_1_5_0(); +public ChannelCallerId channelCallerId() { + return new ChannelCallerId_impl_ari_1_5_0(); }; -public ChannelTalkingFinished channelTalkingFinished() { - return new ChannelTalkingFinished_impl_ari_1_5_0(); +public ChannelEnteredBridge channelEnteredBridge() { + return new ChannelEnteredBridge_impl_ari_1_5_0(); }; public ChannelVarset channelVarset() { return new ChannelVarset_impl_ari_1_5_0(); }; -public Channel channel() { - return new Channel_impl_ari_1_5_0(); - }; - -public Variable variable() { - return new Variable_impl_ari_1_5_0(); - }; - -public PlaybackStarted playbackStarted() { - return new PlaybackStarted_impl_ari_1_5_0(); +public ChannelCreated channelCreated() { + return new ChannelCreated_impl_ari_1_5_0(); }; -public RecordingStarted recordingStarted() { - return new RecordingStarted_impl_ari_1_5_0(); +public StasisEnd stasisEnd() { + return new StasisEnd_impl_ari_1_5_0(); }; -public TextMessage textMessage() { - return new TextMessage_impl_ari_1_5_0(); +public SystemInfo systemInfo() { + return new SystemInfo_impl_ari_1_5_0(); }; -public ApplicationReplaced applicationReplaced() { - return new ApplicationReplaced_impl_ari_1_5_0(); +public Playback playback() { + return new Playback_impl_ari_1_5_0(); }; public LiveRecording liveRecording() { return new LiveRecording_impl_ari_1_5_0(); }; -public DeviceState deviceState() { - return new DeviceState_impl_ari_1_5_0(); - }; - -public Dialed dialed() { - return new Dialed_impl_ari_1_5_0(); +public StatusInfo statusInfo() { + return new StatusInfo_impl_ari_1_5_0(); }; -public BridgeMerged bridgeMerged() { - return new BridgeMerged_impl_ari_1_5_0(); +public DeviceState deviceState() { + return new DeviceState_impl_ari_1_5_0(); }; -public ConfigInfo configInfo() { - return new ConfigInfo_impl_ari_1_5_0(); +public Bridge bridge() { + return new Bridge_impl_ari_1_5_0(); }; -public StasisStart stasisStart() { - return new StasisStart_impl_ari_1_5_0(); +public CallerID callerID() { + return new CallerID_impl_ari_1_5_0(); }; -public RecordingFailed recordingFailed() { - return new RecordingFailed_impl_ari_1_5_0(); +public Event event() { + return new Event_impl_ari_1_5_0(); }; -public StatusInfo statusInfo() { - return new StatusInfo_impl_ari_1_5_0(); +public ChannelDialplan channelDialplan() { + return new ChannelDialplan_impl_ari_1_5_0(); }; -public SystemInfo systemInfo() { - return new SystemInfo_impl_ari_1_5_0(); +public Sound sound() { + return new Sound_impl_ari_1_5_0(); }; -public DeviceStateChanged deviceStateChanged() { - return new DeviceStateChanged_impl_ari_1_5_0(); +public EndpointStateChange endpointStateChange() { + return new EndpointStateChange_impl_ari_1_5_0(); }; public ChannelHangupRequest channelHangupRequest() { return new ChannelHangupRequest_impl_ari_1_5_0(); }; -public ChannelCreated channelCreated() { - return new ChannelCreated_impl_ari_1_5_0(); +public TextMessage textMessage() { + return new TextMessage_impl_ari_1_5_0(); }; -public ChannelUserevent channelUserevent() { - return new ChannelUserevent_impl_ari_1_5_0(); +public Dial dial() { + return new Dial_impl_ari_1_5_0(); }; -public SetId setId() { - return new SetId_impl_ari_1_5_0(); +public BridgeAttendedTransfer bridgeAttendedTransfer() { + return new BridgeAttendedTransfer_impl_ari_1_5_0(); }; -public EndpointStateChange endpointStateChange() { - return new EndpointStateChange_impl_ari_1_5_0(); +public PlaybackFinished playbackFinished() { + return new PlaybackFinished_impl_ari_1_5_0(); }; -public Event event() { - return new Event_impl_ari_1_5_0(); +public BridgeBlindTransfer bridgeBlindTransfer() { + return new BridgeBlindTransfer_impl_ari_1_5_0(); }; -public Playback playback() { - return new Playback_impl_ari_1_5_0(); +public ChannelLeftBridge channelLeftBridge() { + return new ChannelLeftBridge_impl_ari_1_5_0(); }; -public StoredRecording storedRecording() { - return new StoredRecording_impl_ari_1_5_0(); +public TextMessageVariable textMessageVariable() { + return new TextMessageVariable_impl_ari_1_5_0(); }; -public BridgeBlindTransfer bridgeBlindTransfer() { - return new BridgeBlindTransfer_impl_ari_1_5_0(); +public AsteriskInfo asteriskInfo() { + return new AsteriskInfo_impl_ari_1_5_0(); }; -public CallerID callerID() { - return new CallerID_impl_ari_1_5_0(); +public Variable variable() { + return new Variable_impl_ari_1_5_0(); }; -public DialplanCEP dialplanCEP() { - return new DialplanCEP_impl_ari_1_5_0(); +public DeviceStateChanged deviceStateChanged() { + return new DeviceStateChanged_impl_ari_1_5_0(); }; public BuildInfo buildInfo() { return new BuildInfo_impl_ari_1_5_0(); }; -public MissingParams missingParams() { - return new MissingParams_impl_ari_1_5_0(); - }; - public Application application() { return new Application_impl_ari_1_5_0(); }; -public FormatLangPair formatLangPair() { - return new FormatLangPair_impl_ari_1_5_0(); +public Endpoint endpoint() { + return new Endpoint_impl_ari_1_5_0(); }; -public ChannelTalkingStarted channelTalkingStarted() { - return new ChannelTalkingStarted_impl_ari_1_5_0(); +public Dialed dialed() { + return new Dialed_impl_ari_1_5_0(); }; -public BridgeCreated bridgeCreated() { - return new BridgeCreated_impl_ari_1_5_0(); +public ChannelDestroyed channelDestroyed() { + return new ChannelDestroyed_impl_ari_1_5_0(); }; -public RecordingFinished recordingFinished() { - return new RecordingFinished_impl_ari_1_5_0(); +public Message message() { + return new Message_impl_ari_1_5_0(); }; -public AsteriskInfo asteriskInfo() { - return new AsteriskInfo_impl_ari_1_5_0(); +public FormatLangPair formatLangPair() { + return new FormatLangPair_impl_ari_1_5_0(); }; -public ChannelDialplan channelDialplan() { - return new ChannelDialplan_impl_ari_1_5_0(); +public BridgeDestroyed bridgeDestroyed() { + return new BridgeDestroyed_impl_ari_1_5_0(); }; -public PlaybackFinished playbackFinished() { - return new PlaybackFinished_impl_ari_1_5_0(); +public ChannelTalkingFinished channelTalkingFinished() { + return new ChannelTalkingFinished_impl_ari_1_5_0(); }; -public BridgeAttendedTransfer bridgeAttendedTransfer() { - return new BridgeAttendedTransfer_impl_ari_1_5_0(); +public StoredRecording storedRecording() { + return new StoredRecording_impl_ari_1_5_0(); }; -public ChannelDestroyed channelDestroyed() { - return new ChannelDestroyed_impl_ari_1_5_0(); +public PlaybackStarted playbackStarted() { + return new PlaybackStarted_impl_ari_1_5_0(); }; -public Dial dial() { - return new Dial_impl_ari_1_5_0(); +public StasisStart stasisStart() { + return new StasisStart_impl_ari_1_5_0(); }; -public StasisEnd stasisEnd() { - return new StasisEnd_impl_ari_1_5_0(); +public RecordingStarted recordingStarted() { + return new RecordingStarted_impl_ari_1_5_0(); + }; + +public ChannelStateChange channelStateChange() { + return new ChannelStateChange_impl_ari_1_5_0(); + }; + +public ChannelUserevent channelUserevent() { + return new ChannelUserevent_impl_ari_1_5_0(); + }; + +public ChannelTalkingStarted channelTalkingStarted() { + return new ChannelTalkingStarted_impl_ari_1_5_0(); }; public ChannelDtmfReceived channelDtmfReceived() { return new ChannelDtmfReceived_impl_ari_1_5_0(); }; -public ChannelCallerId channelCallerId() { - return new ChannelCallerId_impl_ari_1_5_0(); +public BridgeCreated bridgeCreated() { + return new BridgeCreated_impl_ari_1_5_0(); }; -public BridgeDestroyed bridgeDestroyed() { - return new BridgeDestroyed_impl_ari_1_5_0(); +public BridgeMerged bridgeMerged() { + return new BridgeMerged_impl_ari_1_5_0(); }; -public Bridge bridge() { - return new Bridge_impl_ari_1_5_0(); +public MissingParams missingParams() { + return new MissingParams_impl_ari_1_5_0(); }; -public Message message() { - return new Message_impl_ari_1_5_0(); +public Channel channel() { + return new Channel_impl_ari_1_5_0(); }; -public Endpoint endpoint() { - return new Endpoint_impl_ari_1_5_0(); +public SetId setId() { + return new SetId_impl_ari_1_5_0(); }; -public ChannelLeftBridge channelLeftBridge() { - return new ChannelLeftBridge_impl_ari_1_5_0(); +public RecordingFailed recordingFailed() { + return new RecordingFailed_impl_ari_1_5_0(); + }; + +public TextMessageReceived textMessageReceived() { + return new TextMessageReceived_impl_ari_1_5_0(); }; public BridgeVideoSourceChanged bridgeVideoSourceChanged() { diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_5_0/ClassTranslator_impl_ari_1_5_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_5_0/ClassTranslator_impl_ari_1_5_0.java index 6a7b51ea..3cef052b 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_5_0/ClassTranslator_impl_ari_1_5_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_5_0/ClassTranslator_impl_ari_1_5_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Sat Feb 04 15:23:09 CET 2017 +// Generated on: Tue Dec 19 09:55:50 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.ARI; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_5_0/actions/ActionApplications_impl_ari_1_5_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_5_0/actions/ActionApplications_impl_ari_1_5_0.java index 30ea4f44..01ff5dc9 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_5_0/actions/ActionApplications_impl_ari_1_5_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_5_0/actions/ActionApplications_impl_ari_1_5_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Sat Feb 04 15:23:09 CET 2017 +// Generated on: Tue Dec 19 09:55:49 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_5_0/actions/ActionAsterisk_impl_ari_1_5_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_5_0/actions/ActionAsterisk_impl_ari_1_5_0.java index f4175477..e014d69c 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_5_0/actions/ActionAsterisk_impl_ari_1_5_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_5_0/actions/ActionAsterisk_impl_ari_1_5_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Sat Feb 04 15:23:09 CET 2017 +// Generated on: Tue Dec 19 09:55:49 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_5_0/actions/ActionBridges_impl_ari_1_5_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_5_0/actions/ActionBridges_impl_ari_1_5_0.java index 83bbbf3d..4e2b5a71 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_5_0/actions/ActionBridges_impl_ari_1_5_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_5_0/actions/ActionBridges_impl_ari_1_5_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Sat Feb 04 15:23:09 CET 2017 +// Generated on: Tue Dec 19 09:55:49 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_5_0/actions/ActionChannels_impl_ari_1_5_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_5_0/actions/ActionChannels_impl_ari_1_5_0.java index 4d0a3e41..c6881842 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_5_0/actions/ActionChannels_impl_ari_1_5_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_5_0/actions/ActionChannels_impl_ari_1_5_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Sat Feb 04 15:23:09 CET 2017 +// Generated on: Tue Dec 19 09:55:49 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_5_0/actions/ActionDeviceStates_impl_ari_1_5_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_5_0/actions/ActionDeviceStates_impl_ari_1_5_0.java index 55591d7c..825fb7b6 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_5_0/actions/ActionDeviceStates_impl_ari_1_5_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_5_0/actions/ActionDeviceStates_impl_ari_1_5_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Sat Feb 04 15:23:09 CET 2017 +// Generated on: Tue Dec 19 09:55:49 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_5_0/actions/ActionEndpoints_impl_ari_1_5_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_5_0/actions/ActionEndpoints_impl_ari_1_5_0.java index 557892b5..c37a48c8 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_5_0/actions/ActionEndpoints_impl_ari_1_5_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_5_0/actions/ActionEndpoints_impl_ari_1_5_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Sat Feb 04 15:23:09 CET 2017 +// Generated on: Tue Dec 19 09:55:49 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_5_0/actions/ActionEvents_impl_ari_1_5_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_5_0/actions/ActionEvents_impl_ari_1_5_0.java index 8231331c..bf8f8dc9 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_5_0/actions/ActionEvents_impl_ari_1_5_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_5_0/actions/ActionEvents_impl_ari_1_5_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Sat Feb 04 15:23:09 CET 2017 +// Generated on: Tue Dec 19 09:55:49 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_5_0/actions/ActionPlaybacks_impl_ari_1_5_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_5_0/actions/ActionPlaybacks_impl_ari_1_5_0.java index 1532ea3e..a4e52823 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_5_0/actions/ActionPlaybacks_impl_ari_1_5_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_5_0/actions/ActionPlaybacks_impl_ari_1_5_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Sat Feb 04 15:23:09 CET 2017 +// Generated on: Tue Dec 19 09:55:49 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_5_0/actions/ActionRecordings_impl_ari_1_5_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_5_0/actions/ActionRecordings_impl_ari_1_5_0.java index af5e1be3..60844da9 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_5_0/actions/ActionRecordings_impl_ari_1_5_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_5_0/actions/ActionRecordings_impl_ari_1_5_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Sat Feb 04 15:23:09 CET 2017 +// Generated on: Tue Dec 19 09:55:49 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_5_0/actions/ActionSounds_impl_ari_1_5_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_5_0/actions/ActionSounds_impl_ari_1_5_0.java index 9e8bc0ba..d321f41c 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_5_0/actions/ActionSounds_impl_ari_1_5_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_5_0/actions/ActionSounds_impl_ari_1_5_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Sat Feb 04 15:23:09 CET 2017 +// Generated on: Tue Dec 19 09:55:49 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_5_0/models/ApplicationReplaced_impl_ari_1_5_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_5_0/models/ApplicationReplaced_impl_ari_1_5_0.java index b41234f1..22fc0b6a 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_5_0/models/ApplicationReplaced_impl_ari_1_5_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_5_0/models/ApplicationReplaced_impl_ari_1_5_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Sat Feb 04 15:23:09 CET 2017 +// Generated on: Tue Dec 19 09:55:49 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_5_0/models/Application_impl_ari_1_5_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_5_0/models/Application_impl_ari_1_5_0.java index 2e00247e..d7567dd2 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_5_0/models/Application_impl_ari_1_5_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_5_0/models/Application_impl_ari_1_5_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Sat Feb 04 15:23:09 CET 2017 +// Generated on: Tue Dec 19 09:55:49 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_5_0/models/AsteriskInfo_impl_ari_1_5_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_5_0/models/AsteriskInfo_impl_ari_1_5_0.java index dc15df3e..919c45f9 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_5_0/models/AsteriskInfo_impl_ari_1_5_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_5_0/models/AsteriskInfo_impl_ari_1_5_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Sat Feb 04 15:23:09 CET 2017 +// Generated on: Tue Dec 19 09:55:49 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_5_0/models/BridgeAttendedTransfer_impl_ari_1_5_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_5_0/models/BridgeAttendedTransfer_impl_ari_1_5_0.java index 796f007b..0302c112 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_5_0/models/BridgeAttendedTransfer_impl_ari_1_5_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_5_0/models/BridgeAttendedTransfer_impl_ari_1_5_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Sat Feb 04 15:23:09 CET 2017 +// Generated on: Tue Dec 19 09:55:49 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_5_0/models/BridgeBlindTransfer_impl_ari_1_5_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_5_0/models/BridgeBlindTransfer_impl_ari_1_5_0.java index 1141cf50..59ee3c78 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_5_0/models/BridgeBlindTransfer_impl_ari_1_5_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_5_0/models/BridgeBlindTransfer_impl_ari_1_5_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Sat Feb 04 15:23:09 CET 2017 +// Generated on: Tue Dec 19 09:55:49 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_5_0/models/BridgeCreated_impl_ari_1_5_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_5_0/models/BridgeCreated_impl_ari_1_5_0.java index 04b54b91..ce1ffc8f 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_5_0/models/BridgeCreated_impl_ari_1_5_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_5_0/models/BridgeCreated_impl_ari_1_5_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Sat Feb 04 15:23:09 CET 2017 +// Generated on: Tue Dec 19 09:55:49 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_5_0/models/BridgeDestroyed_impl_ari_1_5_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_5_0/models/BridgeDestroyed_impl_ari_1_5_0.java index 4c00aa01..05fc5015 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_5_0/models/BridgeDestroyed_impl_ari_1_5_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_5_0/models/BridgeDestroyed_impl_ari_1_5_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Sat Feb 04 15:23:09 CET 2017 +// Generated on: Tue Dec 19 09:55:49 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_5_0/models/BridgeMerged_impl_ari_1_5_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_5_0/models/BridgeMerged_impl_ari_1_5_0.java index ec24a79e..167d4846 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_5_0/models/BridgeMerged_impl_ari_1_5_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_5_0/models/BridgeMerged_impl_ari_1_5_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Sat Feb 04 15:23:09 CET 2017 +// Generated on: Tue Dec 19 09:55:49 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_5_0/models/Bridge_impl_ari_1_5_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_5_0/models/Bridge_impl_ari_1_5_0.java index 83d816d8..3ad7f338 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_5_0/models/Bridge_impl_ari_1_5_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_5_0/models/Bridge_impl_ari_1_5_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Sat Feb 04 15:23:09 CET 2017 +// Generated on: Tue Dec 19 09:55:49 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_5_0/models/BuildInfo_impl_ari_1_5_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_5_0/models/BuildInfo_impl_ari_1_5_0.java index dbdfa3f0..bab27213 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_5_0/models/BuildInfo_impl_ari_1_5_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_5_0/models/BuildInfo_impl_ari_1_5_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Sat Feb 04 15:23:09 CET 2017 +// Generated on: Tue Dec 19 09:55:49 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_5_0/models/CallerID_impl_ari_1_5_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_5_0/models/CallerID_impl_ari_1_5_0.java index 051c5c5c..0230a442 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_5_0/models/CallerID_impl_ari_1_5_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_5_0/models/CallerID_impl_ari_1_5_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Sat Feb 04 15:23:09 CET 2017 +// Generated on: Tue Dec 19 09:55:49 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_5_0/models/ChannelCallerId_impl_ari_1_5_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_5_0/models/ChannelCallerId_impl_ari_1_5_0.java index 62fd7ff1..236bc5d1 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_5_0/models/ChannelCallerId_impl_ari_1_5_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_5_0/models/ChannelCallerId_impl_ari_1_5_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Sat Feb 04 15:23:09 CET 2017 +// Generated on: Tue Dec 19 09:55:49 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_5_0/models/ChannelCreated_impl_ari_1_5_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_5_0/models/ChannelCreated_impl_ari_1_5_0.java index 30ab0c02..e9c5564d 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_5_0/models/ChannelCreated_impl_ari_1_5_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_5_0/models/ChannelCreated_impl_ari_1_5_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Sat Feb 04 15:23:09 CET 2017 +// Generated on: Tue Dec 19 09:55:49 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_5_0/models/ChannelDestroyed_impl_ari_1_5_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_5_0/models/ChannelDestroyed_impl_ari_1_5_0.java index 99ae4f8b..6bc8d511 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_5_0/models/ChannelDestroyed_impl_ari_1_5_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_5_0/models/ChannelDestroyed_impl_ari_1_5_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Sat Feb 04 15:23:09 CET 2017 +// Generated on: Tue Dec 19 09:55:49 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_5_0/models/ChannelDialplan_impl_ari_1_5_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_5_0/models/ChannelDialplan_impl_ari_1_5_0.java index 93da65db..13909956 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_5_0/models/ChannelDialplan_impl_ari_1_5_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_5_0/models/ChannelDialplan_impl_ari_1_5_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Sat Feb 04 15:23:09 CET 2017 +// Generated on: Tue Dec 19 09:55:49 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_5_0/models/ChannelDtmfReceived_impl_ari_1_5_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_5_0/models/ChannelDtmfReceived_impl_ari_1_5_0.java index 9fccbc77..529fb1a0 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_5_0/models/ChannelDtmfReceived_impl_ari_1_5_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_5_0/models/ChannelDtmfReceived_impl_ari_1_5_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Sat Feb 04 15:23:09 CET 2017 +// Generated on: Tue Dec 19 09:55:49 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_5_0/models/ChannelEnteredBridge_impl_ari_1_5_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_5_0/models/ChannelEnteredBridge_impl_ari_1_5_0.java index 0365fbff..bbb841ad 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_5_0/models/ChannelEnteredBridge_impl_ari_1_5_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_5_0/models/ChannelEnteredBridge_impl_ari_1_5_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Sat Feb 04 15:23:09 CET 2017 +// Generated on: Tue Dec 19 09:55:49 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_5_0/models/ChannelHangupRequest_impl_ari_1_5_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_5_0/models/ChannelHangupRequest_impl_ari_1_5_0.java index 91eb36fc..d8702666 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_5_0/models/ChannelHangupRequest_impl_ari_1_5_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_5_0/models/ChannelHangupRequest_impl_ari_1_5_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Sat Feb 04 15:23:09 CET 2017 +// Generated on: Tue Dec 19 09:55:49 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_5_0/models/ChannelLeftBridge_impl_ari_1_5_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_5_0/models/ChannelLeftBridge_impl_ari_1_5_0.java index da940b48..e6e9a7be 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_5_0/models/ChannelLeftBridge_impl_ari_1_5_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_5_0/models/ChannelLeftBridge_impl_ari_1_5_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Sat Feb 04 15:23:09 CET 2017 +// Generated on: Tue Dec 19 09:55:49 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_5_0/models/ChannelStateChange_impl_ari_1_5_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_5_0/models/ChannelStateChange_impl_ari_1_5_0.java index cac72502..86bdf585 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_5_0/models/ChannelStateChange_impl_ari_1_5_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_5_0/models/ChannelStateChange_impl_ari_1_5_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Sat Feb 04 15:23:09 CET 2017 +// Generated on: Tue Dec 19 09:55:49 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_5_0/models/ChannelTalkingFinished_impl_ari_1_5_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_5_0/models/ChannelTalkingFinished_impl_ari_1_5_0.java index f8910e59..63c9a3c9 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_5_0/models/ChannelTalkingFinished_impl_ari_1_5_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_5_0/models/ChannelTalkingFinished_impl_ari_1_5_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Sat Feb 04 15:23:09 CET 2017 +// Generated on: Tue Dec 19 09:55:49 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_5_0/models/ChannelTalkingStarted_impl_ari_1_5_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_5_0/models/ChannelTalkingStarted_impl_ari_1_5_0.java index 062e1049..4cb62ea6 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_5_0/models/ChannelTalkingStarted_impl_ari_1_5_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_5_0/models/ChannelTalkingStarted_impl_ari_1_5_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Sat Feb 04 15:23:09 CET 2017 +// Generated on: Tue Dec 19 09:55:49 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_5_0/models/ChannelUserevent_impl_ari_1_5_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_5_0/models/ChannelUserevent_impl_ari_1_5_0.java index d8083a40..cc29692e 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_5_0/models/ChannelUserevent_impl_ari_1_5_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_5_0/models/ChannelUserevent_impl_ari_1_5_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Sat Feb 04 15:23:09 CET 2017 +// Generated on: Tue Dec 19 09:55:49 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_5_0/models/ChannelVarset_impl_ari_1_5_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_5_0/models/ChannelVarset_impl_ari_1_5_0.java index d60b6f07..c62789c5 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_5_0/models/ChannelVarset_impl_ari_1_5_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_5_0/models/ChannelVarset_impl_ari_1_5_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Sat Feb 04 15:23:09 CET 2017 +// Generated on: Tue Dec 19 09:55:49 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_5_0/models/Channel_impl_ari_1_5_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_5_0/models/Channel_impl_ari_1_5_0.java index 5164537c..2dc83ce5 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_5_0/models/Channel_impl_ari_1_5_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_5_0/models/Channel_impl_ari_1_5_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Sat Feb 04 15:23:09 CET 2017 +// Generated on: Tue Dec 19 09:55:49 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_5_0/models/ConfigInfo_impl_ari_1_5_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_5_0/models/ConfigInfo_impl_ari_1_5_0.java index 384ec604..3025a30e 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_5_0/models/ConfigInfo_impl_ari_1_5_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_5_0/models/ConfigInfo_impl_ari_1_5_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Sat Feb 04 15:23:09 CET 2017 +// Generated on: Tue Dec 19 09:55:49 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_5_0/models/DeviceStateChanged_impl_ari_1_5_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_5_0/models/DeviceStateChanged_impl_ari_1_5_0.java index e7394558..e44b7b35 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_5_0/models/DeviceStateChanged_impl_ari_1_5_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_5_0/models/DeviceStateChanged_impl_ari_1_5_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Sat Feb 04 15:23:09 CET 2017 +// Generated on: Tue Dec 19 09:55:49 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_5_0/models/DeviceState_impl_ari_1_5_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_5_0/models/DeviceState_impl_ari_1_5_0.java index 004f6a1b..c7326c90 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_5_0/models/DeviceState_impl_ari_1_5_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_5_0/models/DeviceState_impl_ari_1_5_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Sat Feb 04 15:23:09 CET 2017 +// Generated on: Tue Dec 19 09:55:49 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_5_0/models/Dial_impl_ari_1_5_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_5_0/models/Dial_impl_ari_1_5_0.java index c46d9490..189a326c 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_5_0/models/Dial_impl_ari_1_5_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_5_0/models/Dial_impl_ari_1_5_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Sat Feb 04 15:23:09 CET 2017 +// Generated on: Tue Dec 19 09:55:49 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_5_0/models/Dialed_impl_ari_1_5_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_5_0/models/Dialed_impl_ari_1_5_0.java index 0c4e532a..2394405c 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_5_0/models/Dialed_impl_ari_1_5_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_5_0/models/Dialed_impl_ari_1_5_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Sat Feb 04 15:23:09 CET 2017 +// Generated on: Tue Dec 19 09:55:49 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_5_0/models/DialplanCEP_impl_ari_1_5_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_5_0/models/DialplanCEP_impl_ari_1_5_0.java index e0acc1df..f1e53c7f 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_5_0/models/DialplanCEP_impl_ari_1_5_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_5_0/models/DialplanCEP_impl_ari_1_5_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Sat Feb 04 15:23:09 CET 2017 +// Generated on: Tue Dec 19 09:55:49 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_5_0/models/EndpointStateChange_impl_ari_1_5_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_5_0/models/EndpointStateChange_impl_ari_1_5_0.java index e167edb9..8ba897c1 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_5_0/models/EndpointStateChange_impl_ari_1_5_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_5_0/models/EndpointStateChange_impl_ari_1_5_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Sat Feb 04 15:23:09 CET 2017 +// Generated on: Tue Dec 19 09:55:49 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_5_0/models/Endpoint_impl_ari_1_5_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_5_0/models/Endpoint_impl_ari_1_5_0.java index 366f8d63..670188e0 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_5_0/models/Endpoint_impl_ari_1_5_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_5_0/models/Endpoint_impl_ari_1_5_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Sat Feb 04 15:23:09 CET 2017 +// Generated on: Tue Dec 19 09:55:49 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_5_0/models/Event_impl_ari_1_5_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_5_0/models/Event_impl_ari_1_5_0.java index 54593b14..e94f6cbd 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_5_0/models/Event_impl_ari_1_5_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_5_0/models/Event_impl_ari_1_5_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Sat Feb 04 15:23:09 CET 2017 +// Generated on: Tue Dec 19 09:55:49 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_5_0/models/FormatLangPair_impl_ari_1_5_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_5_0/models/FormatLangPair_impl_ari_1_5_0.java index 9815535f..780fe66d 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_5_0/models/FormatLangPair_impl_ari_1_5_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_5_0/models/FormatLangPair_impl_ari_1_5_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Sat Feb 04 15:23:09 CET 2017 +// Generated on: Tue Dec 19 09:55:49 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_5_0/models/LiveRecording_impl_ari_1_5_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_5_0/models/LiveRecording_impl_ari_1_5_0.java index 2710a500..a0969e05 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_5_0/models/LiveRecording_impl_ari_1_5_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_5_0/models/LiveRecording_impl_ari_1_5_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Sat Feb 04 15:23:09 CET 2017 +// Generated on: Tue Dec 19 09:55:49 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_5_0/models/Message_impl_ari_1_5_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_5_0/models/Message_impl_ari_1_5_0.java index a3b58341..dc29c8cd 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_5_0/models/Message_impl_ari_1_5_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_5_0/models/Message_impl_ari_1_5_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Sat Feb 04 15:23:09 CET 2017 +// Generated on: Tue Dec 19 09:55:49 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_5_0/models/MissingParams_impl_ari_1_5_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_5_0/models/MissingParams_impl_ari_1_5_0.java index 2dcfe6f3..09cb30d8 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_5_0/models/MissingParams_impl_ari_1_5_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_5_0/models/MissingParams_impl_ari_1_5_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Sat Feb 04 15:23:09 CET 2017 +// Generated on: Tue Dec 19 09:55:49 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_5_0/models/PlaybackFinished_impl_ari_1_5_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_5_0/models/PlaybackFinished_impl_ari_1_5_0.java index dad403b4..23972709 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_5_0/models/PlaybackFinished_impl_ari_1_5_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_5_0/models/PlaybackFinished_impl_ari_1_5_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Sat Feb 04 15:23:09 CET 2017 +// Generated on: Tue Dec 19 09:55:49 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_5_0/models/PlaybackStarted_impl_ari_1_5_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_5_0/models/PlaybackStarted_impl_ari_1_5_0.java index c16bfa6a..73aa0351 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_5_0/models/PlaybackStarted_impl_ari_1_5_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_5_0/models/PlaybackStarted_impl_ari_1_5_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Sat Feb 04 15:23:09 CET 2017 +// Generated on: Tue Dec 19 09:55:49 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_5_0/models/Playback_impl_ari_1_5_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_5_0/models/Playback_impl_ari_1_5_0.java index 80a5249f..ec71a25c 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_5_0/models/Playback_impl_ari_1_5_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_5_0/models/Playback_impl_ari_1_5_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Sat Feb 04 15:23:09 CET 2017 +// Generated on: Tue Dec 19 09:55:49 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_5_0/models/RecordingFailed_impl_ari_1_5_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_5_0/models/RecordingFailed_impl_ari_1_5_0.java index e160eff0..d7fab916 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_5_0/models/RecordingFailed_impl_ari_1_5_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_5_0/models/RecordingFailed_impl_ari_1_5_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Sat Feb 04 15:23:09 CET 2017 +// Generated on: Tue Dec 19 09:55:49 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_5_0/models/RecordingFinished_impl_ari_1_5_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_5_0/models/RecordingFinished_impl_ari_1_5_0.java index d7b93d02..e18387f2 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_5_0/models/RecordingFinished_impl_ari_1_5_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_5_0/models/RecordingFinished_impl_ari_1_5_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Sat Feb 04 15:23:09 CET 2017 +// Generated on: Tue Dec 19 09:55:49 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_5_0/models/RecordingStarted_impl_ari_1_5_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_5_0/models/RecordingStarted_impl_ari_1_5_0.java index d600ab5c..2a4acba9 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_5_0/models/RecordingStarted_impl_ari_1_5_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_5_0/models/RecordingStarted_impl_ari_1_5_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Sat Feb 04 15:23:09 CET 2017 +// Generated on: Tue Dec 19 09:55:49 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_5_0/models/SetId_impl_ari_1_5_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_5_0/models/SetId_impl_ari_1_5_0.java index 8a473515..7d796bf0 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_5_0/models/SetId_impl_ari_1_5_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_5_0/models/SetId_impl_ari_1_5_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Sat Feb 04 15:23:09 CET 2017 +// Generated on: Tue Dec 19 09:55:49 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_5_0/models/Sound_impl_ari_1_5_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_5_0/models/Sound_impl_ari_1_5_0.java index b82b7455..d3e8c613 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_5_0/models/Sound_impl_ari_1_5_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_5_0/models/Sound_impl_ari_1_5_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Sat Feb 04 15:23:09 CET 2017 +// Generated on: Tue Dec 19 09:55:49 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_5_0/models/StasisEnd_impl_ari_1_5_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_5_0/models/StasisEnd_impl_ari_1_5_0.java index 4feee569..7175c075 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_5_0/models/StasisEnd_impl_ari_1_5_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_5_0/models/StasisEnd_impl_ari_1_5_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Sat Feb 04 15:23:09 CET 2017 +// Generated on: Tue Dec 19 09:55:49 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_5_0/models/StasisStart_impl_ari_1_5_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_5_0/models/StasisStart_impl_ari_1_5_0.java index a40d0058..fda7f4c7 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_5_0/models/StasisStart_impl_ari_1_5_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_5_0/models/StasisStart_impl_ari_1_5_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Sat Feb 04 15:23:09 CET 2017 +// Generated on: Tue Dec 19 09:55:49 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_5_0/models/StatusInfo_impl_ari_1_5_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_5_0/models/StatusInfo_impl_ari_1_5_0.java index fe7b1f8b..7aee6539 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_5_0/models/StatusInfo_impl_ari_1_5_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_5_0/models/StatusInfo_impl_ari_1_5_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Sat Feb 04 15:23:09 CET 2017 +// Generated on: Tue Dec 19 09:55:49 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_5_0/models/StoredRecording_impl_ari_1_5_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_5_0/models/StoredRecording_impl_ari_1_5_0.java index 6988237b..7f8ddb2a 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_5_0/models/StoredRecording_impl_ari_1_5_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_5_0/models/StoredRecording_impl_ari_1_5_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Sat Feb 04 15:23:09 CET 2017 +// Generated on: Tue Dec 19 09:55:49 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_5_0/models/SystemInfo_impl_ari_1_5_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_5_0/models/SystemInfo_impl_ari_1_5_0.java index e9cc8b41..a94422f3 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_5_0/models/SystemInfo_impl_ari_1_5_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_5_0/models/SystemInfo_impl_ari_1_5_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Sat Feb 04 15:23:09 CET 2017 +// Generated on: Tue Dec 19 09:55:49 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_5_0/models/TextMessageReceived_impl_ari_1_5_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_5_0/models/TextMessageReceived_impl_ari_1_5_0.java index ec1b3593..43586979 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_5_0/models/TextMessageReceived_impl_ari_1_5_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_5_0/models/TextMessageReceived_impl_ari_1_5_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Sat Feb 04 15:23:09 CET 2017 +// Generated on: Tue Dec 19 09:55:49 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_5_0/models/TextMessageVariable_impl_ari_1_5_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_5_0/models/TextMessageVariable_impl_ari_1_5_0.java index 5b628b73..62c1057d 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_5_0/models/TextMessageVariable_impl_ari_1_5_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_5_0/models/TextMessageVariable_impl_ari_1_5_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Sat Feb 04 15:23:09 CET 2017 +// Generated on: Tue Dec 19 09:55:49 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_5_0/models/TextMessage_impl_ari_1_5_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_5_0/models/TextMessage_impl_ari_1_5_0.java index 698565b2..b3a863d3 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_5_0/models/TextMessage_impl_ari_1_5_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_5_0/models/TextMessage_impl_ari_1_5_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Sat Feb 04 15:23:09 CET 2017 +// Generated on: Tue Dec 19 09:55:49 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_5_0/models/Variable_impl_ari_1_5_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_5_0/models/Variable_impl_ari_1_5_0.java index b44776cb..36233240 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_5_0/models/Variable_impl_ari_1_5_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_5_0/models/Variable_impl_ari_1_5_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Sat Feb 04 15:23:09 CET 2017 +// Generated on: Tue Dec 19 09:55:49 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_6_0/AriBuilder_impl_ari_1_6_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_6_0/AriBuilder_impl_ari_1_6_0.java index 057175d3..19073548 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_6_0/AriBuilder_impl_ari_1_6_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_6_0/AriBuilder_impl_ari_1_6_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Sat Feb 04 15:23:09 CET 2017 +// Generated on: Tue Dec 19 09:55:50 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.ari_1_6_0.models.*; @@ -53,200 +53,188 @@ public ActionEvents actionEvents() { return new ActionEvents_impl_ari_1_6_0(); }; -public StasisStart stasisStart() { - return new StasisStart_impl_ari_1_6_0(); - }; - -public ChannelTalkingStarted channelTalkingStarted() { - return new ChannelTalkingStarted_impl_ari_1_6_0(); - }; - -public BridgeAttendedTransfer bridgeAttendedTransfer() { - return new BridgeAttendedTransfer_impl_ari_1_6_0(); +public ChannelDialplan channelDialplan() { + return new ChannelDialplan_impl_ari_1_6_0(); }; public ChannelDestroyed channelDestroyed() { return new ChannelDestroyed_impl_ari_1_6_0(); }; -public Channel channel() { - return new Channel_impl_ari_1_6_0(); - }; - public PlaybackStarted playbackStarted() { return new PlaybackStarted_impl_ari_1_6_0(); }; -public SystemInfo systemInfo() { - return new SystemInfo_impl_ari_1_6_0(); - }; - -public ChannelTalkingFinished channelTalkingFinished() { - return new ChannelTalkingFinished_impl_ari_1_6_0(); +public RecordingStarted recordingStarted() { + return new RecordingStarted_impl_ari_1_6_0(); }; -public Variable variable() { - return new Variable_impl_ari_1_6_0(); +public SystemInfo systemInfo() { + return new SystemInfo_impl_ari_1_6_0(); }; -public ChannelLeftBridge channelLeftBridge() { - return new ChannelLeftBridge_impl_ari_1_6_0(); +public Playback playback() { + return new Playback_impl_ari_1_6_0(); }; -public TextMessageVariable textMessageVariable() { - return new TextMessageVariable_impl_ari_1_6_0(); +public ChannelEnteredBridge channelEnteredBridge() { + return new ChannelEnteredBridge_impl_ari_1_6_0(); }; -public StoredRecording storedRecording() { - return new StoredRecording_impl_ari_1_6_0(); +public StasisStart stasisStart() { + return new StasisStart_impl_ari_1_6_0(); }; -public BridgeMerged bridgeMerged() { - return new BridgeMerged_impl_ari_1_6_0(); +public RecordingFailed recordingFailed() { + return new RecordingFailed_impl_ari_1_6_0(); }; -public Sound sound() { - return new Sound_impl_ari_1_6_0(); +public EndpointStateChange endpointStateChange() { + return new EndpointStateChange_impl_ari_1_6_0(); }; -public Dial dial() { - return new Dial_impl_ari_1_6_0(); +public ConfigInfo configInfo() { + return new ConfigInfo_impl_ari_1_6_0(); }; -public ChannelDtmfReceived channelDtmfReceived() { - return new ChannelDtmfReceived_impl_ari_1_6_0(); +public Variable variable() { + return new Variable_impl_ari_1_6_0(); }; -public StatusInfo statusInfo() { - return new StatusInfo_impl_ari_1_6_0(); +public Event event() { + return new Event_impl_ari_1_6_0(); }; -public Endpoint endpoint() { - return new Endpoint_impl_ari_1_6_0(); +public DialplanCEP dialplanCEP() { + return new DialplanCEP_impl_ari_1_6_0(); }; -public ChannelUserevent channelUserevent() { - return new ChannelUserevent_impl_ari_1_6_0(); +public ChannelStateChange channelStateChange() { + return new ChannelStateChange_impl_ari_1_6_0(); }; public BridgeCreated bridgeCreated() { return new BridgeCreated_impl_ari_1_6_0(); }; -public BuildInfo buildInfo() { - return new BuildInfo_impl_ari_1_6_0(); +public ChannelConnectedLine channelConnectedLine() { + return new ChannelConnectedLine_impl_ari_1_6_0(); }; -public TextMessage textMessage() { - return new TextMessage_impl_ari_1_6_0(); +public SetId setId() { + return new SetId_impl_ari_1_6_0(); }; -public AsteriskInfo asteriskInfo() { - return new AsteriskInfo_impl_ari_1_6_0(); +public BridgeBlindTransfer bridgeBlindTransfer() { + return new BridgeBlindTransfer_impl_ari_1_6_0(); }; public Message message() { return new Message_impl_ari_1_6_0(); }; -public DeviceStateChanged deviceStateChanged() { - return new DeviceStateChanged_impl_ari_1_6_0(); +public StatusInfo statusInfo() { + return new StatusInfo_impl_ari_1_6_0(); }; -public MissingParams missingParams() { - return new MissingParams_impl_ari_1_6_0(); +public Channel channel() { + return new Channel_impl_ari_1_6_0(); }; -public TextMessageReceived textMessageReceived() { - return new TextMessageReceived_impl_ari_1_6_0(); +public TextMessage textMessage() { + return new TextMessage_impl_ari_1_6_0(); }; -public ChannelStateChange channelStateChange() { - return new ChannelStateChange_impl_ari_1_6_0(); +public Endpoint endpoint() { + return new Endpoint_impl_ari_1_6_0(); }; -public FormatLangPair formatLangPair() { - return new FormatLangPair_impl_ari_1_6_0(); +public ChannelCallerId channelCallerId() { + return new ChannelCallerId_impl_ari_1_6_0(); }; -public RecordingFailed recordingFailed() { - return new RecordingFailed_impl_ari_1_6_0(); +public StasisEnd stasisEnd() { + return new StasisEnd_impl_ari_1_6_0(); }; -public ChannelConnectedLine channelConnectedLine() { - return new ChannelConnectedLine_impl_ari_1_6_0(); +public ApplicationReplaced applicationReplaced() { + return new ApplicationReplaced_impl_ari_1_6_0(); }; -public StasisEnd stasisEnd() { - return new StasisEnd_impl_ari_1_6_0(); +public Dialed dialed() { + return new Dialed_impl_ari_1_6_0(); }; -public BridgeDestroyed bridgeDestroyed() { - return new BridgeDestroyed_impl_ari_1_6_0(); +public ChannelTalkingFinished channelTalkingFinished() { + return new ChannelTalkingFinished_impl_ari_1_6_0(); }; -public EndpointStateChange endpointStateChange() { - return new EndpointStateChange_impl_ari_1_6_0(); +public Sound sound() { + return new Sound_impl_ari_1_6_0(); }; -public Event event() { - return new Event_impl_ari_1_6_0(); +public ChannelUserevent channelUserevent() { + return new ChannelUserevent_impl_ari_1_6_0(); }; -public ChannelVarset channelVarset() { - return new ChannelVarset_impl_ari_1_6_0(); +public ChannelDtmfReceived channelDtmfReceived() { + return new ChannelDtmfReceived_impl_ari_1_6_0(); }; -public DialplanCEP dialplanCEP() { - return new DialplanCEP_impl_ari_1_6_0(); +public MissingParams missingParams() { + return new MissingParams_impl_ari_1_6_0(); }; -public BridgeBlindTransfer bridgeBlindTransfer() { - return new BridgeBlindTransfer_impl_ari_1_6_0(); +public ChannelLeftBridge channelLeftBridge() { + return new ChannelLeftBridge_impl_ari_1_6_0(); }; -public ChannelCallerId channelCallerId() { - return new ChannelCallerId_impl_ari_1_6_0(); +public TextMessageVariable textMessageVariable() { + return new TextMessageVariable_impl_ari_1_6_0(); }; -public Playback playback() { - return new Playback_impl_ari_1_6_0(); +public ChannelCreated channelCreated() { + return new ChannelCreated_impl_ari_1_6_0(); }; -public ChannelEnteredBridge channelEnteredBridge() { - return new ChannelEnteredBridge_impl_ari_1_6_0(); +public Application application() { + return new Application_impl_ari_1_6_0(); }; -public ConfigInfo configInfo() { - return new ConfigInfo_impl_ari_1_6_0(); +public DeviceStateChanged deviceStateChanged() { + return new DeviceStateChanged_impl_ari_1_6_0(); }; -public PlaybackFinished playbackFinished() { - return new PlaybackFinished_impl_ari_1_6_0(); +public ChannelHangupRequest channelHangupRequest() { + return new ChannelHangupRequest_impl_ari_1_6_0(); }; -public Bridge bridge() { - return new Bridge_impl_ari_1_6_0(); +public TextMessageReceived textMessageReceived() { + return new TextMessageReceived_impl_ari_1_6_0(); }; -public Application application() { - return new Application_impl_ari_1_6_0(); +public BridgeMerged bridgeMerged() { + return new BridgeMerged_impl_ari_1_6_0(); }; -public RecordingStarted recordingStarted() { - return new RecordingStarted_impl_ari_1_6_0(); +public ChannelVarset channelVarset() { + return new ChannelVarset_impl_ari_1_6_0(); }; -public SetId setId() { - return new SetId_impl_ari_1_6_0(); +public AsteriskInfo asteriskInfo() { + return new AsteriskInfo_impl_ari_1_6_0(); }; -public ApplicationReplaced applicationReplaced() { - return new ApplicationReplaced_impl_ari_1_6_0(); +public RecordingFinished recordingFinished() { + return new RecordingFinished_impl_ari_1_6_0(); }; -public CallerID callerID() { - return new CallerID_impl_ari_1_6_0(); +public StoredRecording storedRecording() { + return new StoredRecording_impl_ari_1_6_0(); + }; + +public ChannelTalkingStarted channelTalkingStarted() { + return new ChannelTalkingStarted_impl_ari_1_6_0(); }; public LiveRecording liveRecording() { @@ -257,24 +245,36 @@ public DeviceState deviceState() { return new DeviceState_impl_ari_1_6_0(); }; -public RecordingFinished recordingFinished() { - return new RecordingFinished_impl_ari_1_6_0(); +public Dial dial() { + return new Dial_impl_ari_1_6_0(); }; -public ChannelDialplan channelDialplan() { - return new ChannelDialplan_impl_ari_1_6_0(); +public BuildInfo buildInfo() { + return new BuildInfo_impl_ari_1_6_0(); }; -public ChannelCreated channelCreated() { - return new ChannelCreated_impl_ari_1_6_0(); +public Bridge bridge() { + return new Bridge_impl_ari_1_6_0(); }; -public ChannelHangupRequest channelHangupRequest() { - return new ChannelHangupRequest_impl_ari_1_6_0(); +public CallerID callerID() { + return new CallerID_impl_ari_1_6_0(); }; -public Dialed dialed() { - return new Dialed_impl_ari_1_6_0(); +public FormatLangPair formatLangPair() { + return new FormatLangPair_impl_ari_1_6_0(); + }; + +public BridgeDestroyed bridgeDestroyed() { + return new BridgeDestroyed_impl_ari_1_6_0(); + }; + +public PlaybackFinished playbackFinished() { + return new PlaybackFinished_impl_ari_1_6_0(); + }; + +public BridgeAttendedTransfer bridgeAttendedTransfer() { + return new BridgeAttendedTransfer_impl_ari_1_6_0(); }; public BridgeVideoSourceChanged bridgeVideoSourceChanged() { diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_6_0/ClassTranslator_impl_ari_1_6_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_6_0/ClassTranslator_impl_ari_1_6_0.java index 3d56ef8f..628b6f06 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_6_0/ClassTranslator_impl_ari_1_6_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_6_0/ClassTranslator_impl_ari_1_6_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Sat Feb 04 15:23:09 CET 2017 +// Generated on: Tue Dec 19 09:55:50 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.ARI; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_6_0/actions/ActionApplications_impl_ari_1_6_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_6_0/actions/ActionApplications_impl_ari_1_6_0.java index 29f481d2..0c48b6e7 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_6_0/actions/ActionApplications_impl_ari_1_6_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_6_0/actions/ActionApplications_impl_ari_1_6_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Sat Feb 04 15:23:09 CET 2017 +// Generated on: Tue Dec 19 09:55:49 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_6_0/actions/ActionAsterisk_impl_ari_1_6_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_6_0/actions/ActionAsterisk_impl_ari_1_6_0.java index af4b6c8b..806271a1 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_6_0/actions/ActionAsterisk_impl_ari_1_6_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_6_0/actions/ActionAsterisk_impl_ari_1_6_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Sat Feb 04 15:23:09 CET 2017 +// Generated on: Tue Dec 19 09:55:49 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_6_0/actions/ActionBridges_impl_ari_1_6_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_6_0/actions/ActionBridges_impl_ari_1_6_0.java index e6c1a76b..0dbf7865 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_6_0/actions/ActionBridges_impl_ari_1_6_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_6_0/actions/ActionBridges_impl_ari_1_6_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Sat Feb 04 15:23:09 CET 2017 +// Generated on: Tue Dec 19 09:55:49 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_6_0/actions/ActionChannels_impl_ari_1_6_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_6_0/actions/ActionChannels_impl_ari_1_6_0.java index adf557fa..d65529aa 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_6_0/actions/ActionChannels_impl_ari_1_6_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_6_0/actions/ActionChannels_impl_ari_1_6_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Sat Feb 04 15:23:09 CET 2017 +// Generated on: Tue Dec 19 09:55:49 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_6_0/actions/ActionDeviceStates_impl_ari_1_6_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_6_0/actions/ActionDeviceStates_impl_ari_1_6_0.java index 4db2836c..bf3324c3 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_6_0/actions/ActionDeviceStates_impl_ari_1_6_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_6_0/actions/ActionDeviceStates_impl_ari_1_6_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Sat Feb 04 15:23:09 CET 2017 +// Generated on: Tue Dec 19 09:55:49 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_6_0/actions/ActionEndpoints_impl_ari_1_6_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_6_0/actions/ActionEndpoints_impl_ari_1_6_0.java index d07052a4..bd973222 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_6_0/actions/ActionEndpoints_impl_ari_1_6_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_6_0/actions/ActionEndpoints_impl_ari_1_6_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Sat Feb 04 15:23:09 CET 2017 +// Generated on: Tue Dec 19 09:55:49 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_6_0/actions/ActionEvents_impl_ari_1_6_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_6_0/actions/ActionEvents_impl_ari_1_6_0.java index d3be59c8..7b37472d 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_6_0/actions/ActionEvents_impl_ari_1_6_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_6_0/actions/ActionEvents_impl_ari_1_6_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Sat Feb 04 15:23:09 CET 2017 +// Generated on: Tue Dec 19 09:55:49 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_6_0/actions/ActionPlaybacks_impl_ari_1_6_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_6_0/actions/ActionPlaybacks_impl_ari_1_6_0.java index 3259a9f7..1245af06 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_6_0/actions/ActionPlaybacks_impl_ari_1_6_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_6_0/actions/ActionPlaybacks_impl_ari_1_6_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Sat Feb 04 15:23:09 CET 2017 +// Generated on: Tue Dec 19 09:55:49 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_6_0/actions/ActionRecordings_impl_ari_1_6_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_6_0/actions/ActionRecordings_impl_ari_1_6_0.java index 7434ef72..1d9045e7 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_6_0/actions/ActionRecordings_impl_ari_1_6_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_6_0/actions/ActionRecordings_impl_ari_1_6_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Sat Feb 04 15:23:09 CET 2017 +// Generated on: Tue Dec 19 09:55:49 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_6_0/actions/ActionSounds_impl_ari_1_6_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_6_0/actions/ActionSounds_impl_ari_1_6_0.java index c0990023..3d427e03 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_6_0/actions/ActionSounds_impl_ari_1_6_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_6_0/actions/ActionSounds_impl_ari_1_6_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Sat Feb 04 15:23:09 CET 2017 +// Generated on: Tue Dec 19 09:55:49 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_6_0/models/ApplicationReplaced_impl_ari_1_6_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_6_0/models/ApplicationReplaced_impl_ari_1_6_0.java index e4fd6ebf..7b653314 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_6_0/models/ApplicationReplaced_impl_ari_1_6_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_6_0/models/ApplicationReplaced_impl_ari_1_6_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Sat Feb 04 15:23:09 CET 2017 +// Generated on: Tue Dec 19 09:55:49 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_6_0/models/Application_impl_ari_1_6_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_6_0/models/Application_impl_ari_1_6_0.java index fe4f467b..cb5647b2 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_6_0/models/Application_impl_ari_1_6_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_6_0/models/Application_impl_ari_1_6_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Sat Feb 04 15:23:09 CET 2017 +// Generated on: Tue Dec 19 09:55:49 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_6_0/models/AsteriskInfo_impl_ari_1_6_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_6_0/models/AsteriskInfo_impl_ari_1_6_0.java index 83a62d08..dab91ea4 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_6_0/models/AsteriskInfo_impl_ari_1_6_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_6_0/models/AsteriskInfo_impl_ari_1_6_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Sat Feb 04 15:23:09 CET 2017 +// Generated on: Tue Dec 19 09:55:49 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_6_0/models/BridgeAttendedTransfer_impl_ari_1_6_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_6_0/models/BridgeAttendedTransfer_impl_ari_1_6_0.java index d644b786..a6425b94 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_6_0/models/BridgeAttendedTransfer_impl_ari_1_6_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_6_0/models/BridgeAttendedTransfer_impl_ari_1_6_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Sat Feb 04 15:23:09 CET 2017 +// Generated on: Tue Dec 19 09:55:49 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_6_0/models/BridgeBlindTransfer_impl_ari_1_6_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_6_0/models/BridgeBlindTransfer_impl_ari_1_6_0.java index 69113c6c..03a29c43 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_6_0/models/BridgeBlindTransfer_impl_ari_1_6_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_6_0/models/BridgeBlindTransfer_impl_ari_1_6_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Sat Feb 04 15:23:09 CET 2017 +// Generated on: Tue Dec 19 09:55:49 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_6_0/models/BridgeCreated_impl_ari_1_6_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_6_0/models/BridgeCreated_impl_ari_1_6_0.java index 65872f32..5013fb9e 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_6_0/models/BridgeCreated_impl_ari_1_6_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_6_0/models/BridgeCreated_impl_ari_1_6_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Sat Feb 04 15:23:09 CET 2017 +// Generated on: Tue Dec 19 09:55:49 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_6_0/models/BridgeDestroyed_impl_ari_1_6_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_6_0/models/BridgeDestroyed_impl_ari_1_6_0.java index 51ac97db..4e5635cf 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_6_0/models/BridgeDestroyed_impl_ari_1_6_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_6_0/models/BridgeDestroyed_impl_ari_1_6_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Sat Feb 04 15:23:09 CET 2017 +// Generated on: Tue Dec 19 09:55:49 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_6_0/models/BridgeMerged_impl_ari_1_6_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_6_0/models/BridgeMerged_impl_ari_1_6_0.java index 29c81e99..7d3c59b7 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_6_0/models/BridgeMerged_impl_ari_1_6_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_6_0/models/BridgeMerged_impl_ari_1_6_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Sat Feb 04 15:23:09 CET 2017 +// Generated on: Tue Dec 19 09:55:49 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_6_0/models/Bridge_impl_ari_1_6_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_6_0/models/Bridge_impl_ari_1_6_0.java index 1d785f29..5f66c910 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_6_0/models/Bridge_impl_ari_1_6_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_6_0/models/Bridge_impl_ari_1_6_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Sat Feb 04 15:23:09 CET 2017 +// Generated on: Tue Dec 19 09:55:49 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_6_0/models/BuildInfo_impl_ari_1_6_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_6_0/models/BuildInfo_impl_ari_1_6_0.java index e52769d9..2caac542 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_6_0/models/BuildInfo_impl_ari_1_6_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_6_0/models/BuildInfo_impl_ari_1_6_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Sat Feb 04 15:23:09 CET 2017 +// Generated on: Tue Dec 19 09:55:49 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_6_0/models/CallerID_impl_ari_1_6_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_6_0/models/CallerID_impl_ari_1_6_0.java index 22e48e61..036a5835 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_6_0/models/CallerID_impl_ari_1_6_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_6_0/models/CallerID_impl_ari_1_6_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Sat Feb 04 15:23:09 CET 2017 +// Generated on: Tue Dec 19 09:55:49 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_6_0/models/ChannelCallerId_impl_ari_1_6_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_6_0/models/ChannelCallerId_impl_ari_1_6_0.java index 606fb9d8..b8a0e1d3 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_6_0/models/ChannelCallerId_impl_ari_1_6_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_6_0/models/ChannelCallerId_impl_ari_1_6_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Sat Feb 04 15:23:09 CET 2017 +// Generated on: Tue Dec 19 09:55:49 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_6_0/models/ChannelConnectedLine_impl_ari_1_6_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_6_0/models/ChannelConnectedLine_impl_ari_1_6_0.java index 4ff6a90b..85e54394 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_6_0/models/ChannelConnectedLine_impl_ari_1_6_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_6_0/models/ChannelConnectedLine_impl_ari_1_6_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Sat Feb 04 15:23:09 CET 2017 +// Generated on: Tue Dec 19 09:55:49 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_6_0/models/ChannelCreated_impl_ari_1_6_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_6_0/models/ChannelCreated_impl_ari_1_6_0.java index 169bf36b..1079570e 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_6_0/models/ChannelCreated_impl_ari_1_6_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_6_0/models/ChannelCreated_impl_ari_1_6_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Sat Feb 04 15:23:09 CET 2017 +// Generated on: Tue Dec 19 09:55:49 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_6_0/models/ChannelDestroyed_impl_ari_1_6_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_6_0/models/ChannelDestroyed_impl_ari_1_6_0.java index 9baeb334..87eb1392 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_6_0/models/ChannelDestroyed_impl_ari_1_6_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_6_0/models/ChannelDestroyed_impl_ari_1_6_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Sat Feb 04 15:23:09 CET 2017 +// Generated on: Tue Dec 19 09:55:49 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_6_0/models/ChannelDialplan_impl_ari_1_6_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_6_0/models/ChannelDialplan_impl_ari_1_6_0.java index 5c6786e7..09b36014 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_6_0/models/ChannelDialplan_impl_ari_1_6_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_6_0/models/ChannelDialplan_impl_ari_1_6_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Sat Feb 04 15:23:09 CET 2017 +// Generated on: Tue Dec 19 09:55:49 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_6_0/models/ChannelDtmfReceived_impl_ari_1_6_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_6_0/models/ChannelDtmfReceived_impl_ari_1_6_0.java index 7636dc02..2fef2877 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_6_0/models/ChannelDtmfReceived_impl_ari_1_6_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_6_0/models/ChannelDtmfReceived_impl_ari_1_6_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Sat Feb 04 15:23:09 CET 2017 +// Generated on: Tue Dec 19 09:55:49 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_6_0/models/ChannelEnteredBridge_impl_ari_1_6_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_6_0/models/ChannelEnteredBridge_impl_ari_1_6_0.java index 6ecf8303..715dd16b 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_6_0/models/ChannelEnteredBridge_impl_ari_1_6_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_6_0/models/ChannelEnteredBridge_impl_ari_1_6_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Sat Feb 04 15:23:09 CET 2017 +// Generated on: Tue Dec 19 09:55:49 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_6_0/models/ChannelHangupRequest_impl_ari_1_6_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_6_0/models/ChannelHangupRequest_impl_ari_1_6_0.java index d44387ba..d2966cb6 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_6_0/models/ChannelHangupRequest_impl_ari_1_6_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_6_0/models/ChannelHangupRequest_impl_ari_1_6_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Sat Feb 04 15:23:09 CET 2017 +// Generated on: Tue Dec 19 09:55:49 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_6_0/models/ChannelLeftBridge_impl_ari_1_6_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_6_0/models/ChannelLeftBridge_impl_ari_1_6_0.java index 544222f0..b68200f0 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_6_0/models/ChannelLeftBridge_impl_ari_1_6_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_6_0/models/ChannelLeftBridge_impl_ari_1_6_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Sat Feb 04 15:23:09 CET 2017 +// Generated on: Tue Dec 19 09:55:49 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_6_0/models/ChannelStateChange_impl_ari_1_6_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_6_0/models/ChannelStateChange_impl_ari_1_6_0.java index e522d749..afb2c07e 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_6_0/models/ChannelStateChange_impl_ari_1_6_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_6_0/models/ChannelStateChange_impl_ari_1_6_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Sat Feb 04 15:23:09 CET 2017 +// Generated on: Tue Dec 19 09:55:49 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_6_0/models/ChannelTalkingFinished_impl_ari_1_6_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_6_0/models/ChannelTalkingFinished_impl_ari_1_6_0.java index c8b1bb28..05300a5d 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_6_0/models/ChannelTalkingFinished_impl_ari_1_6_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_6_0/models/ChannelTalkingFinished_impl_ari_1_6_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Sat Feb 04 15:23:09 CET 2017 +// Generated on: Tue Dec 19 09:55:49 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_6_0/models/ChannelTalkingStarted_impl_ari_1_6_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_6_0/models/ChannelTalkingStarted_impl_ari_1_6_0.java index 6d494f3c..3d3ab09a 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_6_0/models/ChannelTalkingStarted_impl_ari_1_6_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_6_0/models/ChannelTalkingStarted_impl_ari_1_6_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Sat Feb 04 15:23:09 CET 2017 +// Generated on: Tue Dec 19 09:55:49 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_6_0/models/ChannelUserevent_impl_ari_1_6_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_6_0/models/ChannelUserevent_impl_ari_1_6_0.java index ea63989b..51335ebd 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_6_0/models/ChannelUserevent_impl_ari_1_6_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_6_0/models/ChannelUserevent_impl_ari_1_6_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Sat Feb 04 15:23:09 CET 2017 +// Generated on: Tue Dec 19 09:55:49 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_6_0/models/ChannelVarset_impl_ari_1_6_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_6_0/models/ChannelVarset_impl_ari_1_6_0.java index 787e9399..efbe29f5 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_6_0/models/ChannelVarset_impl_ari_1_6_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_6_0/models/ChannelVarset_impl_ari_1_6_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Sat Feb 04 15:23:09 CET 2017 +// Generated on: Tue Dec 19 09:55:49 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_6_0/models/Channel_impl_ari_1_6_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_6_0/models/Channel_impl_ari_1_6_0.java index c238b9fb..b266a54a 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_6_0/models/Channel_impl_ari_1_6_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_6_0/models/Channel_impl_ari_1_6_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Sat Feb 04 15:23:09 CET 2017 +// Generated on: Tue Dec 19 09:55:49 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_6_0/models/ConfigInfo_impl_ari_1_6_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_6_0/models/ConfigInfo_impl_ari_1_6_0.java index d63c6d32..73575c87 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_6_0/models/ConfigInfo_impl_ari_1_6_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_6_0/models/ConfigInfo_impl_ari_1_6_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Sat Feb 04 15:23:09 CET 2017 +// Generated on: Tue Dec 19 09:55:49 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_6_0/models/DeviceStateChanged_impl_ari_1_6_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_6_0/models/DeviceStateChanged_impl_ari_1_6_0.java index f61c102d..4285195e 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_6_0/models/DeviceStateChanged_impl_ari_1_6_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_6_0/models/DeviceStateChanged_impl_ari_1_6_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Sat Feb 04 15:23:09 CET 2017 +// Generated on: Tue Dec 19 09:55:49 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_6_0/models/DeviceState_impl_ari_1_6_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_6_0/models/DeviceState_impl_ari_1_6_0.java index 99f15764..fc9ab1e2 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_6_0/models/DeviceState_impl_ari_1_6_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_6_0/models/DeviceState_impl_ari_1_6_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Sat Feb 04 15:23:09 CET 2017 +// Generated on: Tue Dec 19 09:55:49 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_6_0/models/Dial_impl_ari_1_6_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_6_0/models/Dial_impl_ari_1_6_0.java index 805391f7..fdcd3a15 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_6_0/models/Dial_impl_ari_1_6_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_6_0/models/Dial_impl_ari_1_6_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Sat Feb 04 15:23:09 CET 2017 +// Generated on: Tue Dec 19 09:55:49 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_6_0/models/Dialed_impl_ari_1_6_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_6_0/models/Dialed_impl_ari_1_6_0.java index b1df666f..fadb925d 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_6_0/models/Dialed_impl_ari_1_6_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_6_0/models/Dialed_impl_ari_1_6_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Sat Feb 04 15:23:09 CET 2017 +// Generated on: Tue Dec 19 09:55:49 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_6_0/models/DialplanCEP_impl_ari_1_6_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_6_0/models/DialplanCEP_impl_ari_1_6_0.java index 3fa5a92b..ead1d6ba 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_6_0/models/DialplanCEP_impl_ari_1_6_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_6_0/models/DialplanCEP_impl_ari_1_6_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Sat Feb 04 15:23:09 CET 2017 +// Generated on: Tue Dec 19 09:55:49 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_6_0/models/EndpointStateChange_impl_ari_1_6_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_6_0/models/EndpointStateChange_impl_ari_1_6_0.java index c93bb16a..2cc483dc 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_6_0/models/EndpointStateChange_impl_ari_1_6_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_6_0/models/EndpointStateChange_impl_ari_1_6_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Sat Feb 04 15:23:09 CET 2017 +// Generated on: Tue Dec 19 09:55:49 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_6_0/models/Endpoint_impl_ari_1_6_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_6_0/models/Endpoint_impl_ari_1_6_0.java index 9929380c..6f656445 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_6_0/models/Endpoint_impl_ari_1_6_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_6_0/models/Endpoint_impl_ari_1_6_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Sat Feb 04 15:23:09 CET 2017 +// Generated on: Tue Dec 19 09:55:49 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_6_0/models/Event_impl_ari_1_6_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_6_0/models/Event_impl_ari_1_6_0.java index 028017d1..be76e404 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_6_0/models/Event_impl_ari_1_6_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_6_0/models/Event_impl_ari_1_6_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Sat Feb 04 15:23:09 CET 2017 +// Generated on: Tue Dec 19 09:55:49 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_6_0/models/FormatLangPair_impl_ari_1_6_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_6_0/models/FormatLangPair_impl_ari_1_6_0.java index 177159a4..19104eba 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_6_0/models/FormatLangPair_impl_ari_1_6_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_6_0/models/FormatLangPair_impl_ari_1_6_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Sat Feb 04 15:23:09 CET 2017 +// Generated on: Tue Dec 19 09:55:49 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_6_0/models/LiveRecording_impl_ari_1_6_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_6_0/models/LiveRecording_impl_ari_1_6_0.java index 6c7f0291..d4b72685 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_6_0/models/LiveRecording_impl_ari_1_6_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_6_0/models/LiveRecording_impl_ari_1_6_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Sat Feb 04 15:23:09 CET 2017 +// Generated on: Tue Dec 19 09:55:49 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_6_0/models/Message_impl_ari_1_6_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_6_0/models/Message_impl_ari_1_6_0.java index 0551e04e..3ca7d94b 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_6_0/models/Message_impl_ari_1_6_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_6_0/models/Message_impl_ari_1_6_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Sat Feb 04 15:23:09 CET 2017 +// Generated on: Tue Dec 19 09:55:49 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_6_0/models/MissingParams_impl_ari_1_6_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_6_0/models/MissingParams_impl_ari_1_6_0.java index c7d9dfae..9f508977 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_6_0/models/MissingParams_impl_ari_1_6_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_6_0/models/MissingParams_impl_ari_1_6_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Sat Feb 04 15:23:09 CET 2017 +// Generated on: Tue Dec 19 09:55:49 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_6_0/models/PlaybackFinished_impl_ari_1_6_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_6_0/models/PlaybackFinished_impl_ari_1_6_0.java index ef03627b..31bfa302 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_6_0/models/PlaybackFinished_impl_ari_1_6_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_6_0/models/PlaybackFinished_impl_ari_1_6_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Sat Feb 04 15:23:09 CET 2017 +// Generated on: Tue Dec 19 09:55:49 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_6_0/models/PlaybackStarted_impl_ari_1_6_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_6_0/models/PlaybackStarted_impl_ari_1_6_0.java index c2bbcff1..72b01ca2 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_6_0/models/PlaybackStarted_impl_ari_1_6_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_6_0/models/PlaybackStarted_impl_ari_1_6_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Sat Feb 04 15:23:09 CET 2017 +// Generated on: Tue Dec 19 09:55:49 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_6_0/models/Playback_impl_ari_1_6_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_6_0/models/Playback_impl_ari_1_6_0.java index f07e20b1..f5aa25df 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_6_0/models/Playback_impl_ari_1_6_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_6_0/models/Playback_impl_ari_1_6_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Sat Feb 04 15:23:09 CET 2017 +// Generated on: Tue Dec 19 09:55:49 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_6_0/models/RecordingFailed_impl_ari_1_6_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_6_0/models/RecordingFailed_impl_ari_1_6_0.java index 71a209cf..b256ad3a 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_6_0/models/RecordingFailed_impl_ari_1_6_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_6_0/models/RecordingFailed_impl_ari_1_6_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Sat Feb 04 15:23:09 CET 2017 +// Generated on: Tue Dec 19 09:55:49 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_6_0/models/RecordingFinished_impl_ari_1_6_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_6_0/models/RecordingFinished_impl_ari_1_6_0.java index 5dde725e..9f7b8877 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_6_0/models/RecordingFinished_impl_ari_1_6_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_6_0/models/RecordingFinished_impl_ari_1_6_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Sat Feb 04 15:23:09 CET 2017 +// Generated on: Tue Dec 19 09:55:49 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_6_0/models/RecordingStarted_impl_ari_1_6_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_6_0/models/RecordingStarted_impl_ari_1_6_0.java index b0f55815..a1ec5b7e 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_6_0/models/RecordingStarted_impl_ari_1_6_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_6_0/models/RecordingStarted_impl_ari_1_6_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Sat Feb 04 15:23:09 CET 2017 +// Generated on: Tue Dec 19 09:55:49 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_6_0/models/SetId_impl_ari_1_6_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_6_0/models/SetId_impl_ari_1_6_0.java index 32f69db8..8453f495 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_6_0/models/SetId_impl_ari_1_6_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_6_0/models/SetId_impl_ari_1_6_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Sat Feb 04 15:23:09 CET 2017 +// Generated on: Tue Dec 19 09:55:49 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_6_0/models/Sound_impl_ari_1_6_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_6_0/models/Sound_impl_ari_1_6_0.java index 9a5d152f..dc18716c 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_6_0/models/Sound_impl_ari_1_6_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_6_0/models/Sound_impl_ari_1_6_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Sat Feb 04 15:23:09 CET 2017 +// Generated on: Tue Dec 19 09:55:49 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_6_0/models/StasisEnd_impl_ari_1_6_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_6_0/models/StasisEnd_impl_ari_1_6_0.java index 1fdc1b35..f48e4087 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_6_0/models/StasisEnd_impl_ari_1_6_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_6_0/models/StasisEnd_impl_ari_1_6_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Sat Feb 04 15:23:09 CET 2017 +// Generated on: Tue Dec 19 09:55:49 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_6_0/models/StasisStart_impl_ari_1_6_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_6_0/models/StasisStart_impl_ari_1_6_0.java index 0ef5240f..2240c384 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_6_0/models/StasisStart_impl_ari_1_6_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_6_0/models/StasisStart_impl_ari_1_6_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Sat Feb 04 15:23:09 CET 2017 +// Generated on: Tue Dec 19 09:55:49 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_6_0/models/StatusInfo_impl_ari_1_6_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_6_0/models/StatusInfo_impl_ari_1_6_0.java index e78f5e3b..23c5f834 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_6_0/models/StatusInfo_impl_ari_1_6_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_6_0/models/StatusInfo_impl_ari_1_6_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Sat Feb 04 15:23:09 CET 2017 +// Generated on: Tue Dec 19 09:55:49 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_6_0/models/StoredRecording_impl_ari_1_6_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_6_0/models/StoredRecording_impl_ari_1_6_0.java index 66efd4bb..70d1c2f5 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_6_0/models/StoredRecording_impl_ari_1_6_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_6_0/models/StoredRecording_impl_ari_1_6_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Sat Feb 04 15:23:09 CET 2017 +// Generated on: Tue Dec 19 09:55:49 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_6_0/models/SystemInfo_impl_ari_1_6_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_6_0/models/SystemInfo_impl_ari_1_6_0.java index ba94d1e6..495d2a94 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_6_0/models/SystemInfo_impl_ari_1_6_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_6_0/models/SystemInfo_impl_ari_1_6_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Sat Feb 04 15:23:09 CET 2017 +// Generated on: Tue Dec 19 09:55:49 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_6_0/models/TextMessageReceived_impl_ari_1_6_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_6_0/models/TextMessageReceived_impl_ari_1_6_0.java index f508626c..02994fe4 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_6_0/models/TextMessageReceived_impl_ari_1_6_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_6_0/models/TextMessageReceived_impl_ari_1_6_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Sat Feb 04 15:23:09 CET 2017 +// Generated on: Tue Dec 19 09:55:49 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_6_0/models/TextMessageVariable_impl_ari_1_6_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_6_0/models/TextMessageVariable_impl_ari_1_6_0.java index b6c8e219..bdf86e12 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_6_0/models/TextMessageVariable_impl_ari_1_6_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_6_0/models/TextMessageVariable_impl_ari_1_6_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Sat Feb 04 15:23:09 CET 2017 +// Generated on: Tue Dec 19 09:55:49 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_6_0/models/TextMessage_impl_ari_1_6_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_6_0/models/TextMessage_impl_ari_1_6_0.java index 60603f1f..ecc5a781 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_6_0/models/TextMessage_impl_ari_1_6_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_6_0/models/TextMessage_impl_ari_1_6_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Sat Feb 04 15:23:09 CET 2017 +// Generated on: Tue Dec 19 09:55:49 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_6_0/models/Variable_impl_ari_1_6_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_6_0/models/Variable_impl_ari_1_6_0.java index 2b754750..8fa210fb 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_6_0/models/Variable_impl_ari_1_6_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_6_0/models/Variable_impl_ari_1_6_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Sat Feb 04 15:23:09 CET 2017 +// Generated on: Tue Dec 19 09:55:49 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_7_0/AriBuilder_impl_ari_1_7_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_7_0/AriBuilder_impl_ari_1_7_0.java index 04fd51d5..58e3e45f 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_7_0/AriBuilder_impl_ari_1_7_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_7_0/AriBuilder_impl_ari_1_7_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Sat Feb 04 15:23:09 CET 2017 +// Generated on: Tue Dec 19 09:55:50 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.ari_1_7_0.models.*; @@ -53,228 +53,228 @@ public ActionEndpoints actionEndpoints() { return new ActionEndpoints_impl_ari_1_7_0(); }; -public TextMessageReceived textMessageReceived() { - return new TextMessageReceived_impl_ari_1_7_0(); - }; - -public ChannelTalkingStarted channelTalkingStarted() { - return new ChannelTalkingStarted_impl_ari_1_7_0(); +public ChannelCallerId channelCallerId() { + return new ChannelCallerId_impl_ari_1_7_0(); }; -public ChannelTalkingFinished channelTalkingFinished() { - return new ChannelTalkingFinished_impl_ari_1_7_0(); +public ChannelDestroyed channelDestroyed() { + return new ChannelDestroyed_impl_ari_1_7_0(); }; -public ChannelHangupRequest channelHangupRequest() { - return new ChannelHangupRequest_impl_ari_1_7_0(); +public ChannelEnteredBridge channelEnteredBridge() { + return new ChannelEnteredBridge_impl_ari_1_7_0(); }; -public DialplanCEP dialplanCEP() { - return new DialplanCEP_impl_ari_1_7_0(); +public BridgeAttendedTransfer bridgeAttendedTransfer() { + return new BridgeAttendedTransfer_impl_ari_1_7_0(); }; -public Playback playback() { - return new Playback_impl_ari_1_7_0(); +public Application application() { + return new Application_impl_ari_1_7_0(); }; -public PlaybackFinished playbackFinished() { - return new PlaybackFinished_impl_ari_1_7_0(); +public AsteriskInfo asteriskInfo() { + return new AsteriskInfo_impl_ari_1_7_0(); }; public StoredRecording storedRecording() { return new StoredRecording_impl_ari_1_7_0(); }; -public Sound sound() { - return new Sound_impl_ari_1_7_0(); - }; - -public FormatLangPair formatLangPair() { - return new FormatLangPair_impl_ari_1_7_0(); - }; - public Variable variable() { return new Variable_impl_ari_1_7_0(); }; -public ConfigInfo configInfo() { - return new ConfigInfo_impl_ari_1_7_0(); +public DialplanCEP dialplanCEP() { + return new DialplanCEP_impl_ari_1_7_0(); }; -public ChannelCallerId channelCallerId() { - return new ChannelCallerId_impl_ari_1_7_0(); +public Dialed dialed() { + return new Dialed_impl_ari_1_7_0(); }; -public RecordingFinished recordingFinished() { - return new RecordingFinished_impl_ari_1_7_0(); +public BridgeMerged bridgeMerged() { + return new BridgeMerged_impl_ari_1_7_0(); }; -public RecordingStarted recordingStarted() { - return new RecordingStarted_impl_ari_1_7_0(); +public FormatLangPair formatLangPair() { + return new FormatLangPair_impl_ari_1_7_0(); }; -public ChannelCreated channelCreated() { - return new ChannelCreated_impl_ari_1_7_0(); +public LiveRecording liveRecording() { + return new LiveRecording_impl_ari_1_7_0(); }; -public BridgeMerged bridgeMerged() { - return new BridgeMerged_impl_ari_1_7_0(); +public PlaybackFinished playbackFinished() { + return new PlaybackFinished_impl_ari_1_7_0(); }; -public Dial dial() { - return new Dial_impl_ari_1_7_0(); +public Event event() { + return new Event_impl_ari_1_7_0(); }; -public Dialed dialed() { - return new Dialed_impl_ari_1_7_0(); +public Dial dial() { + return new Dial_impl_ari_1_7_0(); }; -public LiveRecording liveRecording() { - return new LiveRecording_impl_ari_1_7_0(); +public ChannelStateChange channelStateChange() { + return new ChannelStateChange_impl_ari_1_7_0(); }; -public StasisEnd stasisEnd() { - return new StasisEnd_impl_ari_1_7_0(); +public Bridge bridge() { + return new Bridge_impl_ari_1_7_0(); }; -public Channel channel() { - return new Channel_impl_ari_1_7_0(); +public ChannelDtmfReceived channelDtmfReceived() { + return new ChannelDtmfReceived_impl_ari_1_7_0(); }; -public MissingParams missingParams() { - return new MissingParams_impl_ari_1_7_0(); +public SystemInfo systemInfo() { + return new SystemInfo_impl_ari_1_7_0(); }; -public BridgeBlindTransfer bridgeBlindTransfer() { - return new BridgeBlindTransfer_impl_ari_1_7_0(); +public Endpoint endpoint() { + return new Endpoint_impl_ari_1_7_0(); }; -public TextMessage textMessage() { - return new TextMessage_impl_ari_1_7_0(); +public DeviceStateChanged deviceStateChanged() { + return new DeviceStateChanged_impl_ari_1_7_0(); }; -public CallerID callerID() { - return new CallerID_impl_ari_1_7_0(); +public StatusInfo statusInfo() { + return new StatusInfo_impl_ari_1_7_0(); }; -public ChannelStateChange channelStateChange() { - return new ChannelStateChange_impl_ari_1_7_0(); +public ChannelTalkingFinished channelTalkingFinished() { + return new ChannelTalkingFinished_impl_ari_1_7_0(); }; -public AsteriskInfo asteriskInfo() { - return new AsteriskInfo_impl_ari_1_7_0(); +public BuildInfo buildInfo() { + return new BuildInfo_impl_ari_1_7_0(); }; -public ChannelVarset channelVarset() { - return new ChannelVarset_impl_ari_1_7_0(); +public ApplicationReplaced applicationReplaced() { + return new ApplicationReplaced_impl_ari_1_7_0(); }; -public ChannelLeftBridge channelLeftBridge() { - return new ChannelLeftBridge_impl_ari_1_7_0(); +public StasisStart stasisStart() { + return new StasisStart_impl_ari_1_7_0(); }; -public SetId setId() { - return new SetId_impl_ari_1_7_0(); +public ChannelCreated channelCreated() { + return new ChannelCreated_impl_ari_1_7_0(); }; -public BridgeAttendedTransfer bridgeAttendedTransfer() { - return new BridgeAttendedTransfer_impl_ari_1_7_0(); +public RecordingFailed recordingFailed() { + return new RecordingFailed_impl_ari_1_7_0(); }; -public Message message() { - return new Message_impl_ari_1_7_0(); +public PlaybackStarted playbackStarted() { + return new PlaybackStarted_impl_ari_1_7_0(); }; -public ChannelUserevent channelUserevent() { - return new ChannelUserevent_impl_ari_1_7_0(); +public Channel channel() { + return new Channel_impl_ari_1_7_0(); }; -public ApplicationReplaced applicationReplaced() { - return new ApplicationReplaced_impl_ari_1_7_0(); +public TextMessageReceived textMessageReceived() { + return new TextMessageReceived_impl_ari_1_7_0(); }; -public DeviceStateChanged deviceStateChanged() { - return new DeviceStateChanged_impl_ari_1_7_0(); +public BridgeBlindTransfer bridgeBlindTransfer() { + return new BridgeBlindTransfer_impl_ari_1_7_0(); }; -public BridgeDestroyed bridgeDestroyed() { - return new BridgeDestroyed_impl_ari_1_7_0(); +public DeviceState deviceState() { + return new DeviceState_impl_ari_1_7_0(); }; -public TextMessageVariable textMessageVariable() { - return new TextMessageVariable_impl_ari_1_7_0(); +public ChannelTalkingStarted channelTalkingStarted() { + return new ChannelTalkingStarted_impl_ari_1_7_0(); }; -public ChannelEnteredBridge channelEnteredBridge() { - return new ChannelEnteredBridge_impl_ari_1_7_0(); +public TextMessage textMessage() { + return new TextMessage_impl_ari_1_7_0(); }; -public EndpointStateChange endpointStateChange() { - return new EndpointStateChange_impl_ari_1_7_0(); +public ChannelHangupRequest channelHangupRequest() { + return new ChannelHangupRequest_impl_ari_1_7_0(); }; -public Application application() { - return new Application_impl_ari_1_7_0(); +public MissingParams missingParams() { + return new MissingParams_impl_ari_1_7_0(); }; -public Bridge bridge() { - return new Bridge_impl_ari_1_7_0(); +public ConfigInfo configInfo() { + return new ConfigInfo_impl_ari_1_7_0(); }; -public Event event() { - return new Event_impl_ari_1_7_0(); +public RecordingFinished recordingFinished() { + return new RecordingFinished_impl_ari_1_7_0(); }; -public BuildInfo buildInfo() { - return new BuildInfo_impl_ari_1_7_0(); +public ChannelLeftBridge channelLeftBridge() { + return new ChannelLeftBridge_impl_ari_1_7_0(); }; -public Endpoint endpoint() { - return new Endpoint_impl_ari_1_7_0(); +public TextMessageVariable textMessageVariable() { + return new TextMessageVariable_impl_ari_1_7_0(); }; -public ChannelDialplan channelDialplan() { - return new ChannelDialplan_impl_ari_1_7_0(); +public StasisEnd stasisEnd() { + return new StasisEnd_impl_ari_1_7_0(); }; -public RecordingFailed recordingFailed() { - return new RecordingFailed_impl_ari_1_7_0(); +public EndpointStateChange endpointStateChange() { + return new EndpointStateChange_impl_ari_1_7_0(); }; -public StasisStart stasisStart() { - return new StasisStart_impl_ari_1_7_0(); +public ChannelVarset channelVarset() { + return new ChannelVarset_impl_ari_1_7_0(); }; -public SystemInfo systemInfo() { - return new SystemInfo_impl_ari_1_7_0(); +public SetId setId() { + return new SetId_impl_ari_1_7_0(); }; -public ChannelDestroyed channelDestroyed() { - return new ChannelDestroyed_impl_ari_1_7_0(); +public BridgeDestroyed bridgeDestroyed() { + return new BridgeDestroyed_impl_ari_1_7_0(); }; -public ChannelDtmfReceived channelDtmfReceived() { - return new ChannelDtmfReceived_impl_ari_1_7_0(); +public Sound sound() { + return new Sound_impl_ari_1_7_0(); }; -public StatusInfo statusInfo() { - return new StatusInfo_impl_ari_1_7_0(); +public ChannelDialplan channelDialplan() { + return new ChannelDialplan_impl_ari_1_7_0(); }; public ChannelConnectedLine channelConnectedLine() { return new ChannelConnectedLine_impl_ari_1_7_0(); }; +public RecordingStarted recordingStarted() { + return new RecordingStarted_impl_ari_1_7_0(); + }; + public BridgeCreated bridgeCreated() { return new BridgeCreated_impl_ari_1_7_0(); }; -public PlaybackStarted playbackStarted() { - return new PlaybackStarted_impl_ari_1_7_0(); +public ChannelUserevent channelUserevent() { + return new ChannelUserevent_impl_ari_1_7_0(); }; -public DeviceState deviceState() { - return new DeviceState_impl_ari_1_7_0(); +public Message message() { + return new Message_impl_ari_1_7_0(); + }; + +public Playback playback() { + return new Playback_impl_ari_1_7_0(); + }; + +public CallerID callerID() { + return new CallerID_impl_ari_1_7_0(); }; public BridgeVideoSourceChanged bridgeVideoSourceChanged() { diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_7_0/ClassTranslator_impl_ari_1_7_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_7_0/ClassTranslator_impl_ari_1_7_0.java index 093af588..9eeb3a7b 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_7_0/ClassTranslator_impl_ari_1_7_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_7_0/ClassTranslator_impl_ari_1_7_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Sat Feb 04 15:23:09 CET 2017 +// Generated on: Tue Dec 19 09:55:50 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.ARI; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_7_0/actions/ActionApplications_impl_ari_1_7_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_7_0/actions/ActionApplications_impl_ari_1_7_0.java index 16db693e..babb3782 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_7_0/actions/ActionApplications_impl_ari_1_7_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_7_0/actions/ActionApplications_impl_ari_1_7_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Sat Feb 04 15:23:09 CET 2017 +// Generated on: Tue Dec 19 09:55:49 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_7_0/actions/ActionAsterisk_impl_ari_1_7_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_7_0/actions/ActionAsterisk_impl_ari_1_7_0.java index 847696b7..7661cea3 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_7_0/actions/ActionAsterisk_impl_ari_1_7_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_7_0/actions/ActionAsterisk_impl_ari_1_7_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Sat Feb 04 15:23:09 CET 2017 +// Generated on: Tue Dec 19 09:55:49 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_7_0/actions/ActionBridges_impl_ari_1_7_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_7_0/actions/ActionBridges_impl_ari_1_7_0.java index 56dfb03d..cdc70270 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_7_0/actions/ActionBridges_impl_ari_1_7_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_7_0/actions/ActionBridges_impl_ari_1_7_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Sat Feb 04 15:23:09 CET 2017 +// Generated on: Tue Dec 19 09:55:49 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_7_0/actions/ActionChannels_impl_ari_1_7_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_7_0/actions/ActionChannels_impl_ari_1_7_0.java index 9c4d7a92..53f668d1 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_7_0/actions/ActionChannels_impl_ari_1_7_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_7_0/actions/ActionChannels_impl_ari_1_7_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Sat Feb 04 15:23:09 CET 2017 +// Generated on: Tue Dec 19 09:55:49 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_7_0/actions/ActionDeviceStates_impl_ari_1_7_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_7_0/actions/ActionDeviceStates_impl_ari_1_7_0.java index 8b2e533b..49df38dc 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_7_0/actions/ActionDeviceStates_impl_ari_1_7_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_7_0/actions/ActionDeviceStates_impl_ari_1_7_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Sat Feb 04 15:23:09 CET 2017 +// Generated on: Tue Dec 19 09:55:49 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_7_0/actions/ActionEndpoints_impl_ari_1_7_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_7_0/actions/ActionEndpoints_impl_ari_1_7_0.java index ea2d6bae..d84d6228 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_7_0/actions/ActionEndpoints_impl_ari_1_7_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_7_0/actions/ActionEndpoints_impl_ari_1_7_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Sat Feb 04 15:23:09 CET 2017 +// Generated on: Tue Dec 19 09:55:49 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_7_0/actions/ActionEvents_impl_ari_1_7_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_7_0/actions/ActionEvents_impl_ari_1_7_0.java index 170e62de..a0d5db56 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_7_0/actions/ActionEvents_impl_ari_1_7_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_7_0/actions/ActionEvents_impl_ari_1_7_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Sat Feb 04 15:23:09 CET 2017 +// Generated on: Tue Dec 19 09:55:49 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_7_0/actions/ActionPlaybacks_impl_ari_1_7_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_7_0/actions/ActionPlaybacks_impl_ari_1_7_0.java index 1b896e2e..023ecdb0 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_7_0/actions/ActionPlaybacks_impl_ari_1_7_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_7_0/actions/ActionPlaybacks_impl_ari_1_7_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Sat Feb 04 15:23:09 CET 2017 +// Generated on: Tue Dec 19 09:55:49 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_7_0/actions/ActionRecordings_impl_ari_1_7_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_7_0/actions/ActionRecordings_impl_ari_1_7_0.java index b800475e..956e2a93 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_7_0/actions/ActionRecordings_impl_ari_1_7_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_7_0/actions/ActionRecordings_impl_ari_1_7_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Sat Feb 04 15:23:09 CET 2017 +// Generated on: Tue Dec 19 09:55:49 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_7_0/actions/ActionSounds_impl_ari_1_7_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_7_0/actions/ActionSounds_impl_ari_1_7_0.java index 3d3476e7..3c0973d7 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_7_0/actions/ActionSounds_impl_ari_1_7_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_7_0/actions/ActionSounds_impl_ari_1_7_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Sat Feb 04 15:23:09 CET 2017 +// Generated on: Tue Dec 19 09:55:49 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_7_0/models/ApplicationReplaced_impl_ari_1_7_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_7_0/models/ApplicationReplaced_impl_ari_1_7_0.java index 99422fe6..22ebff55 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_7_0/models/ApplicationReplaced_impl_ari_1_7_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_7_0/models/ApplicationReplaced_impl_ari_1_7_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Sat Feb 04 15:23:09 CET 2017 +// Generated on: Tue Dec 19 09:55:49 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_7_0/models/Application_impl_ari_1_7_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_7_0/models/Application_impl_ari_1_7_0.java index a35512ab..df2868f0 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_7_0/models/Application_impl_ari_1_7_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_7_0/models/Application_impl_ari_1_7_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Sat Feb 04 15:23:09 CET 2017 +// Generated on: Tue Dec 19 09:55:49 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_7_0/models/AsteriskInfo_impl_ari_1_7_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_7_0/models/AsteriskInfo_impl_ari_1_7_0.java index 00b9cb4b..b9091d7a 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_7_0/models/AsteriskInfo_impl_ari_1_7_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_7_0/models/AsteriskInfo_impl_ari_1_7_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Sat Feb 04 15:23:09 CET 2017 +// Generated on: Tue Dec 19 09:55:49 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_7_0/models/BridgeAttendedTransfer_impl_ari_1_7_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_7_0/models/BridgeAttendedTransfer_impl_ari_1_7_0.java index 98a3d42e..c9cb962f 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_7_0/models/BridgeAttendedTransfer_impl_ari_1_7_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_7_0/models/BridgeAttendedTransfer_impl_ari_1_7_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Sat Feb 04 15:23:09 CET 2017 +// Generated on: Tue Dec 19 09:55:49 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_7_0/models/BridgeBlindTransfer_impl_ari_1_7_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_7_0/models/BridgeBlindTransfer_impl_ari_1_7_0.java index 805b5288..ce368ed4 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_7_0/models/BridgeBlindTransfer_impl_ari_1_7_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_7_0/models/BridgeBlindTransfer_impl_ari_1_7_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Sat Feb 04 15:23:09 CET 2017 +// Generated on: Tue Dec 19 09:55:49 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_7_0/models/BridgeCreated_impl_ari_1_7_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_7_0/models/BridgeCreated_impl_ari_1_7_0.java index d58f6e79..30a071fa 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_7_0/models/BridgeCreated_impl_ari_1_7_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_7_0/models/BridgeCreated_impl_ari_1_7_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Sat Feb 04 15:23:09 CET 2017 +// Generated on: Tue Dec 19 09:55:49 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_7_0/models/BridgeDestroyed_impl_ari_1_7_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_7_0/models/BridgeDestroyed_impl_ari_1_7_0.java index c5fc159d..04ed08bf 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_7_0/models/BridgeDestroyed_impl_ari_1_7_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_7_0/models/BridgeDestroyed_impl_ari_1_7_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Sat Feb 04 15:23:09 CET 2017 +// Generated on: Tue Dec 19 09:55:49 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_7_0/models/BridgeMerged_impl_ari_1_7_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_7_0/models/BridgeMerged_impl_ari_1_7_0.java index 70f2f4b7..ab2596d5 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_7_0/models/BridgeMerged_impl_ari_1_7_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_7_0/models/BridgeMerged_impl_ari_1_7_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Sat Feb 04 15:23:09 CET 2017 +// Generated on: Tue Dec 19 09:55:49 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_7_0/models/Bridge_impl_ari_1_7_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_7_0/models/Bridge_impl_ari_1_7_0.java index 29ade6e4..6f1bbf5e 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_7_0/models/Bridge_impl_ari_1_7_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_7_0/models/Bridge_impl_ari_1_7_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Sat Feb 04 15:23:09 CET 2017 +// Generated on: Tue Dec 19 09:55:49 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_7_0/models/BuildInfo_impl_ari_1_7_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_7_0/models/BuildInfo_impl_ari_1_7_0.java index 66608cb9..0847ca27 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_7_0/models/BuildInfo_impl_ari_1_7_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_7_0/models/BuildInfo_impl_ari_1_7_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Sat Feb 04 15:23:09 CET 2017 +// Generated on: Tue Dec 19 09:55:49 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_7_0/models/CallerID_impl_ari_1_7_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_7_0/models/CallerID_impl_ari_1_7_0.java index bb40e77d..e591bddb 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_7_0/models/CallerID_impl_ari_1_7_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_7_0/models/CallerID_impl_ari_1_7_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Sat Feb 04 15:23:09 CET 2017 +// Generated on: Tue Dec 19 09:55:49 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_7_0/models/ChannelCallerId_impl_ari_1_7_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_7_0/models/ChannelCallerId_impl_ari_1_7_0.java index 0248a68c..6529cd4b 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_7_0/models/ChannelCallerId_impl_ari_1_7_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_7_0/models/ChannelCallerId_impl_ari_1_7_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Sat Feb 04 15:23:09 CET 2017 +// Generated on: Tue Dec 19 09:55:49 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_7_0/models/ChannelConnectedLine_impl_ari_1_7_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_7_0/models/ChannelConnectedLine_impl_ari_1_7_0.java index 6c259fd3..fe68a34d 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_7_0/models/ChannelConnectedLine_impl_ari_1_7_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_7_0/models/ChannelConnectedLine_impl_ari_1_7_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Sat Feb 04 15:23:09 CET 2017 +// Generated on: Tue Dec 19 09:55:49 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_7_0/models/ChannelCreated_impl_ari_1_7_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_7_0/models/ChannelCreated_impl_ari_1_7_0.java index 65df5c2b..d1fafaf1 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_7_0/models/ChannelCreated_impl_ari_1_7_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_7_0/models/ChannelCreated_impl_ari_1_7_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Sat Feb 04 15:23:09 CET 2017 +// Generated on: Tue Dec 19 09:55:49 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_7_0/models/ChannelDestroyed_impl_ari_1_7_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_7_0/models/ChannelDestroyed_impl_ari_1_7_0.java index d4092e38..b742a001 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_7_0/models/ChannelDestroyed_impl_ari_1_7_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_7_0/models/ChannelDestroyed_impl_ari_1_7_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Sat Feb 04 15:23:09 CET 2017 +// Generated on: Tue Dec 19 09:55:49 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_7_0/models/ChannelDialplan_impl_ari_1_7_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_7_0/models/ChannelDialplan_impl_ari_1_7_0.java index f61f4bea..78fefd0c 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_7_0/models/ChannelDialplan_impl_ari_1_7_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_7_0/models/ChannelDialplan_impl_ari_1_7_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Sat Feb 04 15:23:09 CET 2017 +// Generated on: Tue Dec 19 09:55:49 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_7_0/models/ChannelDtmfReceived_impl_ari_1_7_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_7_0/models/ChannelDtmfReceived_impl_ari_1_7_0.java index d3351a74..d98c9e9c 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_7_0/models/ChannelDtmfReceived_impl_ari_1_7_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_7_0/models/ChannelDtmfReceived_impl_ari_1_7_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Sat Feb 04 15:23:09 CET 2017 +// Generated on: Tue Dec 19 09:55:49 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_7_0/models/ChannelEnteredBridge_impl_ari_1_7_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_7_0/models/ChannelEnteredBridge_impl_ari_1_7_0.java index e68454d4..3418bf72 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_7_0/models/ChannelEnteredBridge_impl_ari_1_7_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_7_0/models/ChannelEnteredBridge_impl_ari_1_7_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Sat Feb 04 15:23:09 CET 2017 +// Generated on: Tue Dec 19 09:55:49 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_7_0/models/ChannelHangupRequest_impl_ari_1_7_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_7_0/models/ChannelHangupRequest_impl_ari_1_7_0.java index ade0d5aa..e288b521 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_7_0/models/ChannelHangupRequest_impl_ari_1_7_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_7_0/models/ChannelHangupRequest_impl_ari_1_7_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Sat Feb 04 15:23:09 CET 2017 +// Generated on: Tue Dec 19 09:55:49 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_7_0/models/ChannelLeftBridge_impl_ari_1_7_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_7_0/models/ChannelLeftBridge_impl_ari_1_7_0.java index 0d1b9390..26aaf272 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_7_0/models/ChannelLeftBridge_impl_ari_1_7_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_7_0/models/ChannelLeftBridge_impl_ari_1_7_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Sat Feb 04 15:23:09 CET 2017 +// Generated on: Tue Dec 19 09:55:49 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_7_0/models/ChannelStateChange_impl_ari_1_7_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_7_0/models/ChannelStateChange_impl_ari_1_7_0.java index e076bd39..573f0e08 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_7_0/models/ChannelStateChange_impl_ari_1_7_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_7_0/models/ChannelStateChange_impl_ari_1_7_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Sat Feb 04 15:23:09 CET 2017 +// Generated on: Tue Dec 19 09:55:49 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_7_0/models/ChannelTalkingFinished_impl_ari_1_7_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_7_0/models/ChannelTalkingFinished_impl_ari_1_7_0.java index a635da49..b3dc15fb 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_7_0/models/ChannelTalkingFinished_impl_ari_1_7_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_7_0/models/ChannelTalkingFinished_impl_ari_1_7_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Sat Feb 04 15:23:09 CET 2017 +// Generated on: Tue Dec 19 09:55:49 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_7_0/models/ChannelTalkingStarted_impl_ari_1_7_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_7_0/models/ChannelTalkingStarted_impl_ari_1_7_0.java index afa5e106..13a8ae91 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_7_0/models/ChannelTalkingStarted_impl_ari_1_7_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_7_0/models/ChannelTalkingStarted_impl_ari_1_7_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Sat Feb 04 15:23:09 CET 2017 +// Generated on: Tue Dec 19 09:55:49 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_7_0/models/ChannelUserevent_impl_ari_1_7_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_7_0/models/ChannelUserevent_impl_ari_1_7_0.java index a517e9dd..fe75804e 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_7_0/models/ChannelUserevent_impl_ari_1_7_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_7_0/models/ChannelUserevent_impl_ari_1_7_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Sat Feb 04 15:23:09 CET 2017 +// Generated on: Tue Dec 19 09:55:49 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_7_0/models/ChannelVarset_impl_ari_1_7_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_7_0/models/ChannelVarset_impl_ari_1_7_0.java index 5613f304..2b8173c9 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_7_0/models/ChannelVarset_impl_ari_1_7_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_7_0/models/ChannelVarset_impl_ari_1_7_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Sat Feb 04 15:23:09 CET 2017 +// Generated on: Tue Dec 19 09:55:49 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_7_0/models/Channel_impl_ari_1_7_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_7_0/models/Channel_impl_ari_1_7_0.java index dc10e281..ebaceadf 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_7_0/models/Channel_impl_ari_1_7_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_7_0/models/Channel_impl_ari_1_7_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Sat Feb 04 15:23:09 CET 2017 +// Generated on: Tue Dec 19 09:55:49 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_7_0/models/ConfigInfo_impl_ari_1_7_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_7_0/models/ConfigInfo_impl_ari_1_7_0.java index 5e718276..f7b0b5a4 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_7_0/models/ConfigInfo_impl_ari_1_7_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_7_0/models/ConfigInfo_impl_ari_1_7_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Sat Feb 04 15:23:09 CET 2017 +// Generated on: Tue Dec 19 09:55:49 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_7_0/models/DeviceStateChanged_impl_ari_1_7_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_7_0/models/DeviceStateChanged_impl_ari_1_7_0.java index b08eb62c..cdca8838 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_7_0/models/DeviceStateChanged_impl_ari_1_7_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_7_0/models/DeviceStateChanged_impl_ari_1_7_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Sat Feb 04 15:23:09 CET 2017 +// Generated on: Tue Dec 19 09:55:49 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_7_0/models/DeviceState_impl_ari_1_7_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_7_0/models/DeviceState_impl_ari_1_7_0.java index e14c0d6c..c7975454 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_7_0/models/DeviceState_impl_ari_1_7_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_7_0/models/DeviceState_impl_ari_1_7_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Sat Feb 04 15:23:09 CET 2017 +// Generated on: Tue Dec 19 09:55:49 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_7_0/models/Dial_impl_ari_1_7_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_7_0/models/Dial_impl_ari_1_7_0.java index 20f5cd6a..9529423b 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_7_0/models/Dial_impl_ari_1_7_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_7_0/models/Dial_impl_ari_1_7_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Sat Feb 04 15:23:09 CET 2017 +// Generated on: Tue Dec 19 09:55:49 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_7_0/models/Dialed_impl_ari_1_7_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_7_0/models/Dialed_impl_ari_1_7_0.java index e0e39579..08558ae2 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_7_0/models/Dialed_impl_ari_1_7_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_7_0/models/Dialed_impl_ari_1_7_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Sat Feb 04 15:23:09 CET 2017 +// Generated on: Tue Dec 19 09:55:49 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_7_0/models/DialplanCEP_impl_ari_1_7_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_7_0/models/DialplanCEP_impl_ari_1_7_0.java index cda50106..5b3ca0c5 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_7_0/models/DialplanCEP_impl_ari_1_7_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_7_0/models/DialplanCEP_impl_ari_1_7_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Sat Feb 04 15:23:09 CET 2017 +// Generated on: Tue Dec 19 09:55:49 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_7_0/models/EndpointStateChange_impl_ari_1_7_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_7_0/models/EndpointStateChange_impl_ari_1_7_0.java index 818cf893..d030b142 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_7_0/models/EndpointStateChange_impl_ari_1_7_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_7_0/models/EndpointStateChange_impl_ari_1_7_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Sat Feb 04 15:23:09 CET 2017 +// Generated on: Tue Dec 19 09:55:49 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_7_0/models/Endpoint_impl_ari_1_7_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_7_0/models/Endpoint_impl_ari_1_7_0.java index d85ae3f1..41db54f9 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_7_0/models/Endpoint_impl_ari_1_7_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_7_0/models/Endpoint_impl_ari_1_7_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Sat Feb 04 15:23:09 CET 2017 +// Generated on: Tue Dec 19 09:55:49 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_7_0/models/Event_impl_ari_1_7_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_7_0/models/Event_impl_ari_1_7_0.java index 80383f18..e318bf50 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_7_0/models/Event_impl_ari_1_7_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_7_0/models/Event_impl_ari_1_7_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Sat Feb 04 15:23:09 CET 2017 +// Generated on: Tue Dec 19 09:55:49 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_7_0/models/FormatLangPair_impl_ari_1_7_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_7_0/models/FormatLangPair_impl_ari_1_7_0.java index f529cd24..7427e737 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_7_0/models/FormatLangPair_impl_ari_1_7_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_7_0/models/FormatLangPair_impl_ari_1_7_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Sat Feb 04 15:23:09 CET 2017 +// Generated on: Tue Dec 19 09:55:49 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_7_0/models/LiveRecording_impl_ari_1_7_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_7_0/models/LiveRecording_impl_ari_1_7_0.java index e1b9a298..c534fbb4 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_7_0/models/LiveRecording_impl_ari_1_7_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_7_0/models/LiveRecording_impl_ari_1_7_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Sat Feb 04 15:23:09 CET 2017 +// Generated on: Tue Dec 19 09:55:49 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_7_0/models/Message_impl_ari_1_7_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_7_0/models/Message_impl_ari_1_7_0.java index 075e462a..287f690c 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_7_0/models/Message_impl_ari_1_7_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_7_0/models/Message_impl_ari_1_7_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Sat Feb 04 15:23:09 CET 2017 +// Generated on: Tue Dec 19 09:55:49 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_7_0/models/MissingParams_impl_ari_1_7_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_7_0/models/MissingParams_impl_ari_1_7_0.java index 9ed220bf..b8ed9b2d 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_7_0/models/MissingParams_impl_ari_1_7_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_7_0/models/MissingParams_impl_ari_1_7_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Sat Feb 04 15:23:09 CET 2017 +// Generated on: Tue Dec 19 09:55:49 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_7_0/models/PlaybackFinished_impl_ari_1_7_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_7_0/models/PlaybackFinished_impl_ari_1_7_0.java index def2e3a2..2d79b19a 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_7_0/models/PlaybackFinished_impl_ari_1_7_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_7_0/models/PlaybackFinished_impl_ari_1_7_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Sat Feb 04 15:23:09 CET 2017 +// Generated on: Tue Dec 19 09:55:49 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_7_0/models/PlaybackStarted_impl_ari_1_7_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_7_0/models/PlaybackStarted_impl_ari_1_7_0.java index 5e2ec367..4414eb39 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_7_0/models/PlaybackStarted_impl_ari_1_7_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_7_0/models/PlaybackStarted_impl_ari_1_7_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Sat Feb 04 15:23:09 CET 2017 +// Generated on: Tue Dec 19 09:55:49 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_7_0/models/Playback_impl_ari_1_7_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_7_0/models/Playback_impl_ari_1_7_0.java index 5b122fb8..062eb3f9 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_7_0/models/Playback_impl_ari_1_7_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_7_0/models/Playback_impl_ari_1_7_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Sat Feb 04 15:23:09 CET 2017 +// Generated on: Tue Dec 19 09:55:49 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_7_0/models/RecordingFailed_impl_ari_1_7_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_7_0/models/RecordingFailed_impl_ari_1_7_0.java index 39b3cf09..877d626a 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_7_0/models/RecordingFailed_impl_ari_1_7_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_7_0/models/RecordingFailed_impl_ari_1_7_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Sat Feb 04 15:23:09 CET 2017 +// Generated on: Tue Dec 19 09:55:49 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_7_0/models/RecordingFinished_impl_ari_1_7_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_7_0/models/RecordingFinished_impl_ari_1_7_0.java index 45107d26..c0df93ab 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_7_0/models/RecordingFinished_impl_ari_1_7_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_7_0/models/RecordingFinished_impl_ari_1_7_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Sat Feb 04 15:23:09 CET 2017 +// Generated on: Tue Dec 19 09:55:49 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_7_0/models/RecordingStarted_impl_ari_1_7_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_7_0/models/RecordingStarted_impl_ari_1_7_0.java index f1a3750f..8112757a 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_7_0/models/RecordingStarted_impl_ari_1_7_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_7_0/models/RecordingStarted_impl_ari_1_7_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Sat Feb 04 15:23:09 CET 2017 +// Generated on: Tue Dec 19 09:55:49 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_7_0/models/SetId_impl_ari_1_7_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_7_0/models/SetId_impl_ari_1_7_0.java index 541f82cf..c7b2c8d2 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_7_0/models/SetId_impl_ari_1_7_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_7_0/models/SetId_impl_ari_1_7_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Sat Feb 04 15:23:09 CET 2017 +// Generated on: Tue Dec 19 09:55:49 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_7_0/models/Sound_impl_ari_1_7_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_7_0/models/Sound_impl_ari_1_7_0.java index 8fd0acbc..6dffff3a 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_7_0/models/Sound_impl_ari_1_7_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_7_0/models/Sound_impl_ari_1_7_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Sat Feb 04 15:23:09 CET 2017 +// Generated on: Tue Dec 19 09:55:49 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_7_0/models/StasisEnd_impl_ari_1_7_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_7_0/models/StasisEnd_impl_ari_1_7_0.java index 676e49a0..aee3e30b 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_7_0/models/StasisEnd_impl_ari_1_7_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_7_0/models/StasisEnd_impl_ari_1_7_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Sat Feb 04 15:23:09 CET 2017 +// Generated on: Tue Dec 19 09:55:49 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_7_0/models/StasisStart_impl_ari_1_7_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_7_0/models/StasisStart_impl_ari_1_7_0.java index a96492e7..c5890e6b 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_7_0/models/StasisStart_impl_ari_1_7_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_7_0/models/StasisStart_impl_ari_1_7_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Sat Feb 04 15:23:09 CET 2017 +// Generated on: Tue Dec 19 09:55:49 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_7_0/models/StatusInfo_impl_ari_1_7_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_7_0/models/StatusInfo_impl_ari_1_7_0.java index 77929021..13ac89e0 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_7_0/models/StatusInfo_impl_ari_1_7_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_7_0/models/StatusInfo_impl_ari_1_7_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Sat Feb 04 15:23:09 CET 2017 +// Generated on: Tue Dec 19 09:55:49 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_7_0/models/StoredRecording_impl_ari_1_7_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_7_0/models/StoredRecording_impl_ari_1_7_0.java index ca30f736..1ee86271 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_7_0/models/StoredRecording_impl_ari_1_7_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_7_0/models/StoredRecording_impl_ari_1_7_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Sat Feb 04 15:23:09 CET 2017 +// Generated on: Tue Dec 19 09:55:49 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_7_0/models/SystemInfo_impl_ari_1_7_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_7_0/models/SystemInfo_impl_ari_1_7_0.java index efc84af7..27396f7e 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_7_0/models/SystemInfo_impl_ari_1_7_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_7_0/models/SystemInfo_impl_ari_1_7_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Sat Feb 04 15:23:09 CET 2017 +// Generated on: Tue Dec 19 09:55:49 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_7_0/models/TextMessageReceived_impl_ari_1_7_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_7_0/models/TextMessageReceived_impl_ari_1_7_0.java index b43be872..2bc71ee5 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_7_0/models/TextMessageReceived_impl_ari_1_7_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_7_0/models/TextMessageReceived_impl_ari_1_7_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Sat Feb 04 15:23:09 CET 2017 +// Generated on: Tue Dec 19 09:55:49 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_7_0/models/TextMessageVariable_impl_ari_1_7_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_7_0/models/TextMessageVariable_impl_ari_1_7_0.java index b35702a3..ca02e837 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_7_0/models/TextMessageVariable_impl_ari_1_7_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_7_0/models/TextMessageVariable_impl_ari_1_7_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Sat Feb 04 15:23:09 CET 2017 +// Generated on: Tue Dec 19 09:55:49 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_7_0/models/TextMessage_impl_ari_1_7_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_7_0/models/TextMessage_impl_ari_1_7_0.java index 8ab324de..5f52255f 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_7_0/models/TextMessage_impl_ari_1_7_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_7_0/models/TextMessage_impl_ari_1_7_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Sat Feb 04 15:23:09 CET 2017 +// Generated on: Tue Dec 19 09:55:49 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_7_0/models/Variable_impl_ari_1_7_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_7_0/models/Variable_impl_ari_1_7_0.java index a6a7700a..b2ce795c 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_7_0/models/Variable_impl_ari_1_7_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_7_0/models/Variable_impl_ari_1_7_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Sat Feb 04 15:23:09 CET 2017 +// Generated on: Tue Dec 19 09:55:49 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_8_0/AriBuilder_impl_ari_1_8_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_8_0/AriBuilder_impl_ari_1_8_0.java index 71cecb4f..845cf26d 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_8_0/AriBuilder_impl_ari_1_8_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_8_0/AriBuilder_impl_ari_1_8_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Sat Feb 04 15:23:09 CET 2017 +// Generated on: Tue Dec 19 09:55:50 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.ari_1_8_0.models.*; @@ -53,244 +53,244 @@ public ActionApplications actionApplications() { return new ActionApplications_impl_ari_1_8_0(); }; -public ChannelTalkingStarted channelTalkingStarted() { - return new ChannelTalkingStarted_impl_ari_1_8_0(); - }; - -public DeviceStateChanged deviceStateChanged() { - return new DeviceStateChanged_impl_ari_1_8_0(); - }; - public ChannelLeftBridge channelLeftBridge() { return new ChannelLeftBridge_impl_ari_1_8_0(); }; -public ChannelUserevent channelUserevent() { - return new ChannelUserevent_impl_ari_1_8_0(); - }; - public TextMessage textMessage() { return new TextMessage_impl_ari_1_8_0(); }; -public TextMessageReceived textMessageReceived() { - return new TextMessageReceived_impl_ari_1_8_0(); - }; - -public ChannelDtmfReceived channelDtmfReceived() { - return new ChannelDtmfReceived_impl_ari_1_8_0(); - }; - -public ChannelDestroyed channelDestroyed() { - return new ChannelDestroyed_impl_ari_1_8_0(); +public RecordingFailed recordingFailed() { + return new RecordingFailed_impl_ari_1_8_0(); }; public BridgeBlindTransfer bridgeBlindTransfer() { return new BridgeBlindTransfer_impl_ari_1_8_0(); }; -public ChannelHangupRequest channelHangupRequest() { - return new ChannelHangupRequest_impl_ari_1_8_0(); - }; - -public ChannelTalkingFinished channelTalkingFinished() { - return new ChannelTalkingFinished_impl_ari_1_8_0(); +public Module module() { + return new Module_impl_ari_1_8_0(); }; -public EndpointStateChange endpointStateChange() { - return new EndpointStateChange_impl_ari_1_8_0(); +public ChannelHangupRequest channelHangupRequest() { + return new ChannelHangupRequest_impl_ari_1_8_0(); }; -public BridgeDestroyed bridgeDestroyed() { - return new BridgeDestroyed_impl_ari_1_8_0(); +public BridgeCreated bridgeCreated() { + return new BridgeCreated_impl_ari_1_8_0(); }; public RecordingStarted recordingStarted() { return new RecordingStarted_impl_ari_1_8_0(); }; -public StasisEnd stasisEnd() { - return new StasisEnd_impl_ari_1_8_0(); +public DeviceStateChanged deviceStateChanged() { + return new DeviceStateChanged_impl_ari_1_8_0(); }; -public StatusInfo statusInfo() { - return new StatusInfo_impl_ari_1_8_0(); +public BridgeAttendedTransfer bridgeAttendedTransfer() { + return new BridgeAttendedTransfer_impl_ari_1_8_0(); }; -public Playback playback() { - return new Playback_impl_ari_1_8_0(); +public ChannelStateChange channelStateChange() { + return new ChannelStateChange_impl_ari_1_8_0(); }; -public ChannelDialplan channelDialplan() { - return new ChannelDialplan_impl_ari_1_8_0(); +public ChannelDtmfReceived channelDtmfReceived() { + return new ChannelDtmfReceived_impl_ari_1_8_0(); }; -public TextMessageVariable textMessageVariable() { - return new TextMessageVariable_impl_ari_1_8_0(); +public MissingParams missingParams() { + return new MissingParams_impl_ari_1_8_0(); }; -public Sound sound() { - return new Sound_impl_ari_1_8_0(); +public ChannelTalkingFinished channelTalkingFinished() { + return new ChannelTalkingFinished_impl_ari_1_8_0(); }; -public SetId setId() { - return new SetId_impl_ari_1_8_0(); +public LiveRecording liveRecording() { + return new LiveRecording_impl_ari_1_8_0(); }; -public BridgeMerged bridgeMerged() { - return new BridgeMerged_impl_ari_1_8_0(); +public ChannelCallerId channelCallerId() { + return new ChannelCallerId_impl_ari_1_8_0(); }; -public ChannelConnectedLine channelConnectedLine() { - return new ChannelConnectedLine_impl_ari_1_8_0(); +public Variable variable() { + return new Variable_impl_ari_1_8_0(); }; -public PlaybackStarted playbackStarted() { - return new PlaybackStarted_impl_ari_1_8_0(); +public BridgeDestroyed bridgeDestroyed() { + return new BridgeDestroyed_impl_ari_1_8_0(); }; -public Module module() { - return new Module_impl_ari_1_8_0(); +public AsteriskInfo asteriskInfo() { + return new AsteriskInfo_impl_ari_1_8_0(); }; -public ChannelEnteredBridge channelEnteredBridge() { - return new ChannelEnteredBridge_impl_ari_1_8_0(); +public ChannelHold channelHold() { + return new ChannelHold_impl_ari_1_8_0(); }; -public Endpoint endpoint() { - return new Endpoint_impl_ari_1_8_0(); +public ChannelConnectedLine channelConnectedLine() { + return new ChannelConnectedLine_impl_ari_1_8_0(); }; public DialplanCEP dialplanCEP() { return new DialplanCEP_impl_ari_1_8_0(); }; -public Channel channel() { - return new Channel_impl_ari_1_8_0(); +public Event event() { + return new Event_impl_ari_1_8_0(); }; -public Dialed dialed() { - return new Dialed_impl_ari_1_8_0(); +public ChannelVarset channelVarset() { + return new ChannelVarset_impl_ari_1_8_0(); }; -public FormatLangPair formatLangPair() { - return new FormatLangPair_impl_ari_1_8_0(); +public Playback playback() { + return new Playback_impl_ari_1_8_0(); }; -public StoredRecording storedRecording() { - return new StoredRecording_impl_ari_1_8_0(); +public ChannelUnhold channelUnhold() { + return new ChannelUnhold_impl_ari_1_8_0(); }; -public Variable variable() { - return new Variable_impl_ari_1_8_0(); +public RecordingFinished recordingFinished() { + return new RecordingFinished_impl_ari_1_8_0(); }; -public ChannelUnhold channelUnhold() { - return new ChannelUnhold_impl_ari_1_8_0(); +public StatusInfo statusInfo() { + return new StatusInfo_impl_ari_1_8_0(); }; public SystemInfo systemInfo() { return new SystemInfo_impl_ari_1_8_0(); }; -public Event event() { - return new Event_impl_ari_1_8_0(); +public ConfigInfo configInfo() { + return new ConfigInfo_impl_ari_1_8_0(); }; -public CallerID callerID() { - return new CallerID_impl_ari_1_8_0(); +public BuildInfo buildInfo() { + return new BuildInfo_impl_ari_1_8_0(); }; -public Application application() { - return new Application_impl_ari_1_8_0(); +public Dialed dialed() { + return new Dialed_impl_ari_1_8_0(); }; -public BridgeAttendedTransfer bridgeAttendedTransfer() { - return new BridgeAttendedTransfer_impl_ari_1_8_0(); +public ConfigTuple configTuple() { + return new ConfigTuple_impl_ari_1_8_0(); }; -public ChannelCreated channelCreated() { - return new ChannelCreated_impl_ari_1_8_0(); +public StasisStart stasisStart() { + return new StasisStart_impl_ari_1_8_0(); }; -public AsteriskInfo asteriskInfo() { - return new AsteriskInfo_impl_ari_1_8_0(); +public ChannelEnteredBridge channelEnteredBridge() { + return new ChannelEnteredBridge_impl_ari_1_8_0(); }; -public Dial dial() { - return new Dial_impl_ari_1_8_0(); +public TextMessageVariable textMessageVariable() { + return new TextMessageVariable_impl_ari_1_8_0(); }; -public ConfigInfo configInfo() { - return new ConfigInfo_impl_ari_1_8_0(); +public SetId setId() { + return new SetId_impl_ari_1_8_0(); }; -public BuildInfo buildInfo() { - return new BuildInfo_impl_ari_1_8_0(); +public TextMessageReceived textMessageReceived() { + return new TextMessageReceived_impl_ari_1_8_0(); }; -public ChannelHold channelHold() { - return new ChannelHold_impl_ari_1_8_0(); +public StasisEnd stasisEnd() { + return new StasisEnd_impl_ari_1_8_0(); }; -public LiveRecording liveRecording() { - return new LiveRecording_impl_ari_1_8_0(); +public PlaybackStarted playbackStarted() { + return new PlaybackStarted_impl_ari_1_8_0(); }; -public ConfigTuple configTuple() { - return new ConfigTuple_impl_ari_1_8_0(); +public Dial dial() { + return new Dial_impl_ari_1_8_0(); }; -public RecordingFailed recordingFailed() { - return new RecordingFailed_impl_ari_1_8_0(); +public PlaybackFinished playbackFinished() { + return new PlaybackFinished_impl_ari_1_8_0(); }; -public StasisStart stasisStart() { - return new StasisStart_impl_ari_1_8_0(); +public ChannelDialplan channelDialplan() { + return new ChannelDialplan_impl_ari_1_8_0(); }; -public BridgeCreated bridgeCreated() { - return new BridgeCreated_impl_ari_1_8_0(); +public EndpointStateChange endpointStateChange() { + return new EndpointStateChange_impl_ari_1_8_0(); }; -public ApplicationReplaced applicationReplaced() { - return new ApplicationReplaced_impl_ari_1_8_0(); +public ChannelTalkingStarted channelTalkingStarted() { + return new ChannelTalkingStarted_impl_ari_1_8_0(); }; -public ChannelVarset channelVarset() { - return new ChannelVarset_impl_ari_1_8_0(); +public ChannelDestroyed channelDestroyed() { + return new ChannelDestroyed_impl_ari_1_8_0(); }; -public ChannelStateChange channelStateChange() { - return new ChannelStateChange_impl_ari_1_8_0(); +public Bridge bridge() { + return new Bridge_impl_ari_1_8_0(); }; -public Message message() { - return new Message_impl_ari_1_8_0(); +public Sound sound() { + return new Sound_impl_ari_1_8_0(); }; -public MissingParams missingParams() { - return new MissingParams_impl_ari_1_8_0(); +public ChannelUserevent channelUserevent() { + return new ChannelUserevent_impl_ari_1_8_0(); }; -public Bridge bridge() { - return new Bridge_impl_ari_1_8_0(); +public Message message() { + return new Message_impl_ari_1_8_0(); }; public DeviceState deviceState() { return new DeviceState_impl_ari_1_8_0(); }; -public RecordingFinished recordingFinished() { - return new RecordingFinished_impl_ari_1_8_0(); +public ChannelCreated channelCreated() { + return new ChannelCreated_impl_ari_1_8_0(); }; -public ChannelCallerId channelCallerId() { - return new ChannelCallerId_impl_ari_1_8_0(); +public ApplicationReplaced applicationReplaced() { + return new ApplicationReplaced_impl_ari_1_8_0(); }; -public PlaybackFinished playbackFinished() { - return new PlaybackFinished_impl_ari_1_8_0(); +public Channel channel() { + return new Channel_impl_ari_1_8_0(); + }; + +public Endpoint endpoint() { + return new Endpoint_impl_ari_1_8_0(); + }; + +public Application application() { + return new Application_impl_ari_1_8_0(); + }; + +public CallerID callerID() { + return new CallerID_impl_ari_1_8_0(); + }; + +public FormatLangPair formatLangPair() { + return new FormatLangPair_impl_ari_1_8_0(); + }; + +public BridgeMerged bridgeMerged() { + return new BridgeMerged_impl_ari_1_8_0(); + }; + +public StoredRecording storedRecording() { + return new StoredRecording_impl_ari_1_8_0(); }; public BridgeVideoSourceChanged bridgeVideoSourceChanged() { diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_8_0/ClassTranslator_impl_ari_1_8_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_8_0/ClassTranslator_impl_ari_1_8_0.java index 207bbb58..c1a9b6bb 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_8_0/ClassTranslator_impl_ari_1_8_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_8_0/ClassTranslator_impl_ari_1_8_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Sat Feb 04 15:23:09 CET 2017 +// Generated on: Tue Dec 19 09:55:50 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.ARI; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_8_0/actions/ActionApplications_impl_ari_1_8_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_8_0/actions/ActionApplications_impl_ari_1_8_0.java index b2a6c20a..e35ad7da 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_8_0/actions/ActionApplications_impl_ari_1_8_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_8_0/actions/ActionApplications_impl_ari_1_8_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Sat Feb 04 15:23:09 CET 2017 +// Generated on: Tue Dec 19 09:55:49 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_8_0/actions/ActionAsterisk_impl_ari_1_8_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_8_0/actions/ActionAsterisk_impl_ari_1_8_0.java index 2a71766d..de007ffa 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_8_0/actions/ActionAsterisk_impl_ari_1_8_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_8_0/actions/ActionAsterisk_impl_ari_1_8_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Sat Feb 04 15:23:09 CET 2017 +// Generated on: Tue Dec 19 09:55:49 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_8_0/actions/ActionBridges_impl_ari_1_8_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_8_0/actions/ActionBridges_impl_ari_1_8_0.java index a92dee2d..6d0c618f 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_8_0/actions/ActionBridges_impl_ari_1_8_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_8_0/actions/ActionBridges_impl_ari_1_8_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Sat Feb 04 15:23:09 CET 2017 +// Generated on: Tue Dec 19 09:55:49 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_8_0/actions/ActionChannels_impl_ari_1_8_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_8_0/actions/ActionChannels_impl_ari_1_8_0.java index abfa9b6d..e358cb27 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_8_0/actions/ActionChannels_impl_ari_1_8_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_8_0/actions/ActionChannels_impl_ari_1_8_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Sat Feb 04 15:23:09 CET 2017 +// Generated on: Tue Dec 19 09:55:49 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_8_0/actions/ActionDeviceStates_impl_ari_1_8_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_8_0/actions/ActionDeviceStates_impl_ari_1_8_0.java index ad0c1857..5517d832 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_8_0/actions/ActionDeviceStates_impl_ari_1_8_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_8_0/actions/ActionDeviceStates_impl_ari_1_8_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Sat Feb 04 15:23:09 CET 2017 +// Generated on: Tue Dec 19 09:55:49 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_8_0/actions/ActionEndpoints_impl_ari_1_8_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_8_0/actions/ActionEndpoints_impl_ari_1_8_0.java index 801d57e8..c4abc05f 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_8_0/actions/ActionEndpoints_impl_ari_1_8_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_8_0/actions/ActionEndpoints_impl_ari_1_8_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Sat Feb 04 15:23:09 CET 2017 +// Generated on: Tue Dec 19 09:55:49 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_8_0/actions/ActionEvents_impl_ari_1_8_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_8_0/actions/ActionEvents_impl_ari_1_8_0.java index 94a7891c..b3f60243 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_8_0/actions/ActionEvents_impl_ari_1_8_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_8_0/actions/ActionEvents_impl_ari_1_8_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Sat Feb 04 15:23:09 CET 2017 +// Generated on: Tue Dec 19 09:55:49 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_8_0/actions/ActionPlaybacks_impl_ari_1_8_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_8_0/actions/ActionPlaybacks_impl_ari_1_8_0.java index e9be2ea7..5423819a 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_8_0/actions/ActionPlaybacks_impl_ari_1_8_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_8_0/actions/ActionPlaybacks_impl_ari_1_8_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Sat Feb 04 15:23:09 CET 2017 +// Generated on: Tue Dec 19 09:55:49 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_8_0/actions/ActionRecordings_impl_ari_1_8_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_8_0/actions/ActionRecordings_impl_ari_1_8_0.java index 546ce150..c43281fc 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_8_0/actions/ActionRecordings_impl_ari_1_8_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_8_0/actions/ActionRecordings_impl_ari_1_8_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Sat Feb 04 15:23:09 CET 2017 +// Generated on: Tue Dec 19 09:55:49 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_8_0/actions/ActionSounds_impl_ari_1_8_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_8_0/actions/ActionSounds_impl_ari_1_8_0.java index c1c105f2..64dbcc8c 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_8_0/actions/ActionSounds_impl_ari_1_8_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_8_0/actions/ActionSounds_impl_ari_1_8_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Sat Feb 04 15:23:09 CET 2017 +// Generated on: Tue Dec 19 09:55:49 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_8_0/models/ApplicationReplaced_impl_ari_1_8_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_8_0/models/ApplicationReplaced_impl_ari_1_8_0.java index ee8f46f1..a0c3a629 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_8_0/models/ApplicationReplaced_impl_ari_1_8_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_8_0/models/ApplicationReplaced_impl_ari_1_8_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Sat Feb 04 15:23:09 CET 2017 +// Generated on: Tue Dec 19 09:55:49 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_8_0/models/Application_impl_ari_1_8_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_8_0/models/Application_impl_ari_1_8_0.java index 2a0c672f..a8b72f11 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_8_0/models/Application_impl_ari_1_8_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_8_0/models/Application_impl_ari_1_8_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Sat Feb 04 15:23:09 CET 2017 +// Generated on: Tue Dec 19 09:55:49 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_8_0/models/AsteriskInfo_impl_ari_1_8_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_8_0/models/AsteriskInfo_impl_ari_1_8_0.java index 44eb6792..b90fde20 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_8_0/models/AsteriskInfo_impl_ari_1_8_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_8_0/models/AsteriskInfo_impl_ari_1_8_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Sat Feb 04 15:23:09 CET 2017 +// Generated on: Tue Dec 19 09:55:49 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_8_0/models/BridgeAttendedTransfer_impl_ari_1_8_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_8_0/models/BridgeAttendedTransfer_impl_ari_1_8_0.java index 90efb289..89b28f39 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_8_0/models/BridgeAttendedTransfer_impl_ari_1_8_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_8_0/models/BridgeAttendedTransfer_impl_ari_1_8_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Sat Feb 04 15:23:09 CET 2017 +// Generated on: Tue Dec 19 09:55:49 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_8_0/models/BridgeBlindTransfer_impl_ari_1_8_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_8_0/models/BridgeBlindTransfer_impl_ari_1_8_0.java index 701e6dca..7c6c19d1 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_8_0/models/BridgeBlindTransfer_impl_ari_1_8_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_8_0/models/BridgeBlindTransfer_impl_ari_1_8_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Sat Feb 04 15:23:09 CET 2017 +// Generated on: Tue Dec 19 09:55:49 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_8_0/models/BridgeCreated_impl_ari_1_8_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_8_0/models/BridgeCreated_impl_ari_1_8_0.java index eb9293ce..f5d11cd9 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_8_0/models/BridgeCreated_impl_ari_1_8_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_8_0/models/BridgeCreated_impl_ari_1_8_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Sat Feb 04 15:23:09 CET 2017 +// Generated on: Tue Dec 19 09:55:49 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_8_0/models/BridgeDestroyed_impl_ari_1_8_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_8_0/models/BridgeDestroyed_impl_ari_1_8_0.java index 8308bd3d..a52cfd65 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_8_0/models/BridgeDestroyed_impl_ari_1_8_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_8_0/models/BridgeDestroyed_impl_ari_1_8_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Sat Feb 04 15:23:09 CET 2017 +// Generated on: Tue Dec 19 09:55:49 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_8_0/models/BridgeMerged_impl_ari_1_8_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_8_0/models/BridgeMerged_impl_ari_1_8_0.java index f17b505c..f4475462 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_8_0/models/BridgeMerged_impl_ari_1_8_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_8_0/models/BridgeMerged_impl_ari_1_8_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Sat Feb 04 15:23:09 CET 2017 +// Generated on: Tue Dec 19 09:55:49 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_8_0/models/Bridge_impl_ari_1_8_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_8_0/models/Bridge_impl_ari_1_8_0.java index 262ad5c3..fb50c86e 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_8_0/models/Bridge_impl_ari_1_8_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_8_0/models/Bridge_impl_ari_1_8_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Sat Feb 04 15:23:09 CET 2017 +// Generated on: Tue Dec 19 09:55:49 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_8_0/models/BuildInfo_impl_ari_1_8_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_8_0/models/BuildInfo_impl_ari_1_8_0.java index cb4c6f75..74196f00 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_8_0/models/BuildInfo_impl_ari_1_8_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_8_0/models/BuildInfo_impl_ari_1_8_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Sat Feb 04 15:23:09 CET 2017 +// Generated on: Tue Dec 19 09:55:49 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_8_0/models/CallerID_impl_ari_1_8_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_8_0/models/CallerID_impl_ari_1_8_0.java index b976d3c6..e64ff45d 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_8_0/models/CallerID_impl_ari_1_8_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_8_0/models/CallerID_impl_ari_1_8_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Sat Feb 04 15:23:09 CET 2017 +// Generated on: Tue Dec 19 09:55:49 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_8_0/models/ChannelCallerId_impl_ari_1_8_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_8_0/models/ChannelCallerId_impl_ari_1_8_0.java index f0d7a741..0a56498e 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_8_0/models/ChannelCallerId_impl_ari_1_8_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_8_0/models/ChannelCallerId_impl_ari_1_8_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Sat Feb 04 15:23:09 CET 2017 +// Generated on: Tue Dec 19 09:55:49 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_8_0/models/ChannelConnectedLine_impl_ari_1_8_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_8_0/models/ChannelConnectedLine_impl_ari_1_8_0.java index b769f81a..c0e50fc8 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_8_0/models/ChannelConnectedLine_impl_ari_1_8_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_8_0/models/ChannelConnectedLine_impl_ari_1_8_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Sat Feb 04 15:23:09 CET 2017 +// Generated on: Tue Dec 19 09:55:49 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_8_0/models/ChannelCreated_impl_ari_1_8_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_8_0/models/ChannelCreated_impl_ari_1_8_0.java index 2e1df585..e199bbc9 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_8_0/models/ChannelCreated_impl_ari_1_8_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_8_0/models/ChannelCreated_impl_ari_1_8_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Sat Feb 04 15:23:09 CET 2017 +// Generated on: Tue Dec 19 09:55:49 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_8_0/models/ChannelDestroyed_impl_ari_1_8_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_8_0/models/ChannelDestroyed_impl_ari_1_8_0.java index f47430ec..37e45fed 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_8_0/models/ChannelDestroyed_impl_ari_1_8_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_8_0/models/ChannelDestroyed_impl_ari_1_8_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Sat Feb 04 15:23:09 CET 2017 +// Generated on: Tue Dec 19 09:55:49 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_8_0/models/ChannelDialplan_impl_ari_1_8_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_8_0/models/ChannelDialplan_impl_ari_1_8_0.java index 8b03c506..6752af7b 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_8_0/models/ChannelDialplan_impl_ari_1_8_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_8_0/models/ChannelDialplan_impl_ari_1_8_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Sat Feb 04 15:23:09 CET 2017 +// Generated on: Tue Dec 19 09:55:49 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_8_0/models/ChannelDtmfReceived_impl_ari_1_8_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_8_0/models/ChannelDtmfReceived_impl_ari_1_8_0.java index 40e4e86a..4683805c 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_8_0/models/ChannelDtmfReceived_impl_ari_1_8_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_8_0/models/ChannelDtmfReceived_impl_ari_1_8_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Sat Feb 04 15:23:09 CET 2017 +// Generated on: Tue Dec 19 09:55:49 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_8_0/models/ChannelEnteredBridge_impl_ari_1_8_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_8_0/models/ChannelEnteredBridge_impl_ari_1_8_0.java index a23c3edf..e0fc849e 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_8_0/models/ChannelEnteredBridge_impl_ari_1_8_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_8_0/models/ChannelEnteredBridge_impl_ari_1_8_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Sat Feb 04 15:23:09 CET 2017 +// Generated on: Tue Dec 19 09:55:49 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_8_0/models/ChannelHangupRequest_impl_ari_1_8_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_8_0/models/ChannelHangupRequest_impl_ari_1_8_0.java index e0e525a7..48ca553f 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_8_0/models/ChannelHangupRequest_impl_ari_1_8_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_8_0/models/ChannelHangupRequest_impl_ari_1_8_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Sat Feb 04 15:23:09 CET 2017 +// Generated on: Tue Dec 19 09:55:49 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_8_0/models/ChannelHold_impl_ari_1_8_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_8_0/models/ChannelHold_impl_ari_1_8_0.java index e170d038..cb2db9ce 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_8_0/models/ChannelHold_impl_ari_1_8_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_8_0/models/ChannelHold_impl_ari_1_8_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Sat Feb 04 15:23:09 CET 2017 +// Generated on: Tue Dec 19 09:55:49 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_8_0/models/ChannelLeftBridge_impl_ari_1_8_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_8_0/models/ChannelLeftBridge_impl_ari_1_8_0.java index 03f549b9..153e152f 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_8_0/models/ChannelLeftBridge_impl_ari_1_8_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_8_0/models/ChannelLeftBridge_impl_ari_1_8_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Sat Feb 04 15:23:09 CET 2017 +// Generated on: Tue Dec 19 09:55:49 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_8_0/models/ChannelStateChange_impl_ari_1_8_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_8_0/models/ChannelStateChange_impl_ari_1_8_0.java index 7804bbc1..6923f054 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_8_0/models/ChannelStateChange_impl_ari_1_8_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_8_0/models/ChannelStateChange_impl_ari_1_8_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Sat Feb 04 15:23:09 CET 2017 +// Generated on: Tue Dec 19 09:55:49 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_8_0/models/ChannelTalkingFinished_impl_ari_1_8_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_8_0/models/ChannelTalkingFinished_impl_ari_1_8_0.java index 4cade731..80fc697a 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_8_0/models/ChannelTalkingFinished_impl_ari_1_8_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_8_0/models/ChannelTalkingFinished_impl_ari_1_8_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Sat Feb 04 15:23:09 CET 2017 +// Generated on: Tue Dec 19 09:55:49 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_8_0/models/ChannelTalkingStarted_impl_ari_1_8_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_8_0/models/ChannelTalkingStarted_impl_ari_1_8_0.java index 7863fa7c..eb1d8c4a 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_8_0/models/ChannelTalkingStarted_impl_ari_1_8_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_8_0/models/ChannelTalkingStarted_impl_ari_1_8_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Sat Feb 04 15:23:09 CET 2017 +// Generated on: Tue Dec 19 09:55:49 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_8_0/models/ChannelUnhold_impl_ari_1_8_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_8_0/models/ChannelUnhold_impl_ari_1_8_0.java index 6b9b89f5..5c287f19 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_8_0/models/ChannelUnhold_impl_ari_1_8_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_8_0/models/ChannelUnhold_impl_ari_1_8_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Sat Feb 04 15:23:09 CET 2017 +// Generated on: Tue Dec 19 09:55:49 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_8_0/models/ChannelUserevent_impl_ari_1_8_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_8_0/models/ChannelUserevent_impl_ari_1_8_0.java index e6be1429..ed72c2e0 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_8_0/models/ChannelUserevent_impl_ari_1_8_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_8_0/models/ChannelUserevent_impl_ari_1_8_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Sat Feb 04 15:23:09 CET 2017 +// Generated on: Tue Dec 19 09:55:49 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_8_0/models/ChannelVarset_impl_ari_1_8_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_8_0/models/ChannelVarset_impl_ari_1_8_0.java index 0028ad92..874cb4ec 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_8_0/models/ChannelVarset_impl_ari_1_8_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_8_0/models/ChannelVarset_impl_ari_1_8_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Sat Feb 04 15:23:09 CET 2017 +// Generated on: Tue Dec 19 09:55:49 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_8_0/models/Channel_impl_ari_1_8_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_8_0/models/Channel_impl_ari_1_8_0.java index fe8f9920..15c36979 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_8_0/models/Channel_impl_ari_1_8_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_8_0/models/Channel_impl_ari_1_8_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Sat Feb 04 15:23:09 CET 2017 +// Generated on: Tue Dec 19 09:55:49 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_8_0/models/ConfigInfo_impl_ari_1_8_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_8_0/models/ConfigInfo_impl_ari_1_8_0.java index b54d6486..0256ae2a 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_8_0/models/ConfigInfo_impl_ari_1_8_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_8_0/models/ConfigInfo_impl_ari_1_8_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Sat Feb 04 15:23:09 CET 2017 +// Generated on: Tue Dec 19 09:55:49 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_8_0/models/ConfigTuple_impl_ari_1_8_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_8_0/models/ConfigTuple_impl_ari_1_8_0.java index a05cd88f..1f765c15 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_8_0/models/ConfigTuple_impl_ari_1_8_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_8_0/models/ConfigTuple_impl_ari_1_8_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Sat Feb 04 15:23:09 CET 2017 +// Generated on: Tue Dec 19 09:55:49 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_8_0/models/DeviceStateChanged_impl_ari_1_8_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_8_0/models/DeviceStateChanged_impl_ari_1_8_0.java index 8ea859fd..ed6a3542 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_8_0/models/DeviceStateChanged_impl_ari_1_8_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_8_0/models/DeviceStateChanged_impl_ari_1_8_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Sat Feb 04 15:23:09 CET 2017 +// Generated on: Tue Dec 19 09:55:49 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_8_0/models/DeviceState_impl_ari_1_8_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_8_0/models/DeviceState_impl_ari_1_8_0.java index 76957251..f8d4b1c7 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_8_0/models/DeviceState_impl_ari_1_8_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_8_0/models/DeviceState_impl_ari_1_8_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Sat Feb 04 15:23:09 CET 2017 +// Generated on: Tue Dec 19 09:55:49 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_8_0/models/Dial_impl_ari_1_8_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_8_0/models/Dial_impl_ari_1_8_0.java index 0f12fc12..d04a3026 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_8_0/models/Dial_impl_ari_1_8_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_8_0/models/Dial_impl_ari_1_8_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Sat Feb 04 15:23:09 CET 2017 +// Generated on: Tue Dec 19 09:55:49 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_8_0/models/Dialed_impl_ari_1_8_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_8_0/models/Dialed_impl_ari_1_8_0.java index fb1e7921..74cdfb9e 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_8_0/models/Dialed_impl_ari_1_8_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_8_0/models/Dialed_impl_ari_1_8_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Sat Feb 04 15:23:09 CET 2017 +// Generated on: Tue Dec 19 09:55:49 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_8_0/models/DialplanCEP_impl_ari_1_8_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_8_0/models/DialplanCEP_impl_ari_1_8_0.java index 65768bdd..635ee7a1 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_8_0/models/DialplanCEP_impl_ari_1_8_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_8_0/models/DialplanCEP_impl_ari_1_8_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Sat Feb 04 15:23:09 CET 2017 +// Generated on: Tue Dec 19 09:55:49 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_8_0/models/EndpointStateChange_impl_ari_1_8_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_8_0/models/EndpointStateChange_impl_ari_1_8_0.java index df855528..d754697b 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_8_0/models/EndpointStateChange_impl_ari_1_8_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_8_0/models/EndpointStateChange_impl_ari_1_8_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Sat Feb 04 15:23:09 CET 2017 +// Generated on: Tue Dec 19 09:55:49 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_8_0/models/Endpoint_impl_ari_1_8_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_8_0/models/Endpoint_impl_ari_1_8_0.java index 8b3c7c90..22bf8f56 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_8_0/models/Endpoint_impl_ari_1_8_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_8_0/models/Endpoint_impl_ari_1_8_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Sat Feb 04 15:23:09 CET 2017 +// Generated on: Tue Dec 19 09:55:49 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_8_0/models/Event_impl_ari_1_8_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_8_0/models/Event_impl_ari_1_8_0.java index 95739bd0..1d44e6d5 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_8_0/models/Event_impl_ari_1_8_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_8_0/models/Event_impl_ari_1_8_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Sat Feb 04 15:23:09 CET 2017 +// Generated on: Tue Dec 19 09:55:49 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_8_0/models/FormatLangPair_impl_ari_1_8_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_8_0/models/FormatLangPair_impl_ari_1_8_0.java index a8dcdba3..76acd9da 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_8_0/models/FormatLangPair_impl_ari_1_8_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_8_0/models/FormatLangPair_impl_ari_1_8_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Sat Feb 04 15:23:09 CET 2017 +// Generated on: Tue Dec 19 09:55:49 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_8_0/models/LiveRecording_impl_ari_1_8_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_8_0/models/LiveRecording_impl_ari_1_8_0.java index 142f11dd..0337c2d1 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_8_0/models/LiveRecording_impl_ari_1_8_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_8_0/models/LiveRecording_impl_ari_1_8_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Sat Feb 04 15:23:09 CET 2017 +// Generated on: Tue Dec 19 09:55:49 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_8_0/models/Message_impl_ari_1_8_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_8_0/models/Message_impl_ari_1_8_0.java index 70a23282..10d0b427 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_8_0/models/Message_impl_ari_1_8_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_8_0/models/Message_impl_ari_1_8_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Sat Feb 04 15:23:09 CET 2017 +// Generated on: Tue Dec 19 09:55:49 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_8_0/models/MissingParams_impl_ari_1_8_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_8_0/models/MissingParams_impl_ari_1_8_0.java index b39a3d84..2c243195 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_8_0/models/MissingParams_impl_ari_1_8_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_8_0/models/MissingParams_impl_ari_1_8_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Sat Feb 04 15:23:09 CET 2017 +// Generated on: Tue Dec 19 09:55:49 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_8_0/models/Module_impl_ari_1_8_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_8_0/models/Module_impl_ari_1_8_0.java index 3340bcc7..0edbc16c 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_8_0/models/Module_impl_ari_1_8_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_8_0/models/Module_impl_ari_1_8_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Sat Feb 04 15:23:09 CET 2017 +// Generated on: Tue Dec 19 09:55:49 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_8_0/models/PlaybackFinished_impl_ari_1_8_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_8_0/models/PlaybackFinished_impl_ari_1_8_0.java index 726c7541..70f13202 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_8_0/models/PlaybackFinished_impl_ari_1_8_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_8_0/models/PlaybackFinished_impl_ari_1_8_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Sat Feb 04 15:23:09 CET 2017 +// Generated on: Tue Dec 19 09:55:49 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_8_0/models/PlaybackStarted_impl_ari_1_8_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_8_0/models/PlaybackStarted_impl_ari_1_8_0.java index 265c4c88..35e34fa9 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_8_0/models/PlaybackStarted_impl_ari_1_8_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_8_0/models/PlaybackStarted_impl_ari_1_8_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Sat Feb 04 15:23:09 CET 2017 +// Generated on: Tue Dec 19 09:55:49 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_8_0/models/Playback_impl_ari_1_8_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_8_0/models/Playback_impl_ari_1_8_0.java index 06bd8579..9add1d6d 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_8_0/models/Playback_impl_ari_1_8_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_8_0/models/Playback_impl_ari_1_8_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Sat Feb 04 15:23:09 CET 2017 +// Generated on: Tue Dec 19 09:55:49 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_8_0/models/RecordingFailed_impl_ari_1_8_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_8_0/models/RecordingFailed_impl_ari_1_8_0.java index 946e3d8d..aedd17aa 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_8_0/models/RecordingFailed_impl_ari_1_8_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_8_0/models/RecordingFailed_impl_ari_1_8_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Sat Feb 04 15:23:09 CET 2017 +// Generated on: Tue Dec 19 09:55:49 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_8_0/models/RecordingFinished_impl_ari_1_8_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_8_0/models/RecordingFinished_impl_ari_1_8_0.java index e901dfe8..d41638f7 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_8_0/models/RecordingFinished_impl_ari_1_8_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_8_0/models/RecordingFinished_impl_ari_1_8_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Sat Feb 04 15:23:09 CET 2017 +// Generated on: Tue Dec 19 09:55:49 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_8_0/models/RecordingStarted_impl_ari_1_8_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_8_0/models/RecordingStarted_impl_ari_1_8_0.java index 98886777..d5485f4e 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_8_0/models/RecordingStarted_impl_ari_1_8_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_8_0/models/RecordingStarted_impl_ari_1_8_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Sat Feb 04 15:23:09 CET 2017 +// Generated on: Tue Dec 19 09:55:49 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_8_0/models/SetId_impl_ari_1_8_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_8_0/models/SetId_impl_ari_1_8_0.java index 94eabb65..10d5a8ad 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_8_0/models/SetId_impl_ari_1_8_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_8_0/models/SetId_impl_ari_1_8_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Sat Feb 04 15:23:09 CET 2017 +// Generated on: Tue Dec 19 09:55:49 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_8_0/models/Sound_impl_ari_1_8_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_8_0/models/Sound_impl_ari_1_8_0.java index cf46f1c2..f43130f8 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_8_0/models/Sound_impl_ari_1_8_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_8_0/models/Sound_impl_ari_1_8_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Sat Feb 04 15:23:09 CET 2017 +// Generated on: Tue Dec 19 09:55:49 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_8_0/models/StasisEnd_impl_ari_1_8_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_8_0/models/StasisEnd_impl_ari_1_8_0.java index 554813a5..830793df 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_8_0/models/StasisEnd_impl_ari_1_8_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_8_0/models/StasisEnd_impl_ari_1_8_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Sat Feb 04 15:23:09 CET 2017 +// Generated on: Tue Dec 19 09:55:49 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_8_0/models/StasisStart_impl_ari_1_8_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_8_0/models/StasisStart_impl_ari_1_8_0.java index d8b0314a..e7705209 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_8_0/models/StasisStart_impl_ari_1_8_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_8_0/models/StasisStart_impl_ari_1_8_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Sat Feb 04 15:23:09 CET 2017 +// Generated on: Tue Dec 19 09:55:49 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_8_0/models/StatusInfo_impl_ari_1_8_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_8_0/models/StatusInfo_impl_ari_1_8_0.java index c7514a81..3a76319f 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_8_0/models/StatusInfo_impl_ari_1_8_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_8_0/models/StatusInfo_impl_ari_1_8_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Sat Feb 04 15:23:09 CET 2017 +// Generated on: Tue Dec 19 09:55:49 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_8_0/models/StoredRecording_impl_ari_1_8_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_8_0/models/StoredRecording_impl_ari_1_8_0.java index 53fe6a76..c0a5dec1 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_8_0/models/StoredRecording_impl_ari_1_8_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_8_0/models/StoredRecording_impl_ari_1_8_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Sat Feb 04 15:23:09 CET 2017 +// Generated on: Tue Dec 19 09:55:49 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_8_0/models/SystemInfo_impl_ari_1_8_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_8_0/models/SystemInfo_impl_ari_1_8_0.java index 39420941..06799abf 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_8_0/models/SystemInfo_impl_ari_1_8_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_8_0/models/SystemInfo_impl_ari_1_8_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Sat Feb 04 15:23:09 CET 2017 +// Generated on: Tue Dec 19 09:55:49 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_8_0/models/TextMessageReceived_impl_ari_1_8_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_8_0/models/TextMessageReceived_impl_ari_1_8_0.java index f6b7f2dc..40c95c8e 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_8_0/models/TextMessageReceived_impl_ari_1_8_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_8_0/models/TextMessageReceived_impl_ari_1_8_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Sat Feb 04 15:23:09 CET 2017 +// Generated on: Tue Dec 19 09:55:49 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_8_0/models/TextMessageVariable_impl_ari_1_8_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_8_0/models/TextMessageVariable_impl_ari_1_8_0.java index 82d2fd14..b59302e1 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_8_0/models/TextMessageVariable_impl_ari_1_8_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_8_0/models/TextMessageVariable_impl_ari_1_8_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Sat Feb 04 15:23:09 CET 2017 +// Generated on: Tue Dec 19 09:55:49 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_8_0/models/TextMessage_impl_ari_1_8_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_8_0/models/TextMessage_impl_ari_1_8_0.java index 9cbe99ba..4ae26cbe 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_8_0/models/TextMessage_impl_ari_1_8_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_8_0/models/TextMessage_impl_ari_1_8_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Sat Feb 04 15:23:09 CET 2017 +// Generated on: Tue Dec 19 09:55:49 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_8_0/models/Variable_impl_ari_1_8_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_8_0/models/Variable_impl_ari_1_8_0.java index bc8219bc..324b5469 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_8_0/models/Variable_impl_ari_1_8_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_8_0/models/Variable_impl_ari_1_8_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Sat Feb 04 15:23:09 CET 2017 +// Generated on: Tue Dec 19 09:55:49 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/AriBuilder_impl_ari_1_9_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/AriBuilder_impl_ari_1_9_0.java index a5bf8724..7ae0aee4 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/AriBuilder_impl_ari_1_9_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/AriBuilder_impl_ari_1_9_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Sat Feb 04 15:23:09 CET 2017 +// Generated on: Tue Dec 19 09:55:50 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.ari_1_9_0.models.*; @@ -53,264 +53,264 @@ public ActionDeviceStates actionDeviceStates() { return new ActionDeviceStates_impl_ari_1_9_0(); }; -public CallerID callerID() { - return new CallerID_impl_ari_1_9_0(); - }; - -public Event event() { - return new Event_impl_ari_1_9_0(); +public ConfigInfo configInfo() { + return new ConfigInfo_impl_ari_1_9_0(); }; -public ChannelStateChange channelStateChange() { - return new ChannelStateChange_impl_ari_1_9_0(); +public TextMessageVariable textMessageVariable() { + return new TextMessageVariable_impl_ari_1_9_0(); }; -public ChannelCallerId channelCallerId() { - return new ChannelCallerId_impl_ari_1_9_0(); +public ApplicationReplaced applicationReplaced() { + return new ApplicationReplaced_impl_ari_1_9_0(); }; -public PlaybackFinished playbackFinished() { - return new PlaybackFinished_impl_ari_1_9_0(); +public BridgeMerged bridgeMerged() { + return new BridgeMerged_impl_ari_1_9_0(); }; -public StasisStart stasisStart() { - return new StasisStart_impl_ari_1_9_0(); +public FormatLangPair formatLangPair() { + return new FormatLangPair_impl_ari_1_9_0(); }; -public Playback playback() { - return new Playback_impl_ari_1_9_0(); +public ChannelVarset channelVarset() { + return new ChannelVarset_impl_ari_1_9_0(); }; -public ChannelEnteredBridge channelEnteredBridge() { - return new ChannelEnteredBridge_impl_ari_1_9_0(); +public Variable variable() { + return new Variable_impl_ari_1_9_0(); }; public TextMessageReceived textMessageReceived() { return new TextMessageReceived_impl_ari_1_9_0(); }; -public StasisEnd stasisEnd() { - return new StasisEnd_impl_ari_1_9_0(); +public RecordingFinished recordingFinished() { + return new RecordingFinished_impl_ari_1_9_0(); }; public ChannelHold channelHold() { return new ChannelHold_impl_ari_1_9_0(); }; -public FormatLangPair formatLangPair() { - return new FormatLangPair_impl_ari_1_9_0(); +public ChannelHangupRequest channelHangupRequest() { + return new ChannelHangupRequest_impl_ari_1_9_0(); }; -public BridgeAttendedTransfer bridgeAttendedTransfer() { - return new BridgeAttendedTransfer_impl_ari_1_9_0(); +public ChannelDestroyed channelDestroyed() { + return new ChannelDestroyed_impl_ari_1_9_0(); }; -public Bridge bridge() { - return new Bridge_impl_ari_1_9_0(); +public Dialed dialed() { + return new Dialed_impl_ari_1_9_0(); }; -public ChannelVarset channelVarset() { - return new ChannelVarset_impl_ari_1_9_0(); +public PlaybackStarted playbackStarted() { + return new PlaybackStarted_impl_ari_1_9_0(); + }; + +public BuildInfo buildInfo() { + return new BuildInfo_impl_ari_1_9_0(); }; public ChannelTalkingFinished channelTalkingFinished() { return new ChannelTalkingFinished_impl_ari_1_9_0(); }; -public PlaybackStarted playbackStarted() { - return new PlaybackStarted_impl_ari_1_9_0(); +public ChannelCreated channelCreated() { + return new ChannelCreated_impl_ari_1_9_0(); }; -public SetId setId() { - return new SetId_impl_ari_1_9_0(); +public ChannelStateChange channelStateChange() { + return new ChannelStateChange_impl_ari_1_9_0(); }; -public RecordingFinished recordingFinished() { - return new RecordingFinished_impl_ari_1_9_0(); +public LiveRecording liveRecording() { + return new LiveRecording_impl_ari_1_9_0(); }; -public BridgeDestroyed bridgeDestroyed() { - return new BridgeDestroyed_impl_ari_1_9_0(); +public DeviceState deviceState() { + return new DeviceState_impl_ari_1_9_0(); }; -public ChannelCreated channelCreated() { - return new ChannelCreated_impl_ari_1_9_0(); +public ContactInfo contactInfo() { + return new ContactInfo_impl_ari_1_9_0(); }; public PeerStatusChange peerStatusChange() { return new PeerStatusChange_impl_ari_1_9_0(); }; -public Application application() { - return new Application_impl_ari_1_9_0(); +public PlaybackFinished playbackFinished() { + return new PlaybackFinished_impl_ari_1_9_0(); }; -public Variable variable() { - return new Variable_impl_ari_1_9_0(); +public ChannelDialplan channelDialplan() { + return new ChannelDialplan_impl_ari_1_9_0(); }; -public ConfigTuple configTuple() { - return new ConfigTuple_impl_ari_1_9_0(); +public StasisEnd stasisEnd() { + return new StasisEnd_impl_ari_1_9_0(); }; -public EndpointStateChange endpointStateChange() { - return new EndpointStateChange_impl_ari_1_9_0(); +public Application application() { + return new Application_impl_ari_1_9_0(); }; -public ChannelLeftBridge channelLeftBridge() { - return new ChannelLeftBridge_impl_ari_1_9_0(); +public ChannelCallerId channelCallerId() { + return new ChannelCallerId_impl_ari_1_9_0(); }; -public RecordingStarted recordingStarted() { - return new RecordingStarted_impl_ari_1_9_0(); +public RecordingFailed recordingFailed() { + return new RecordingFailed_impl_ari_1_9_0(); + }; + +public Sound sound() { + return new Sound_impl_ari_1_9_0(); + }; + +public ConfigTuple configTuple() { + return new ConfigTuple_impl_ari_1_9_0(); }; public StoredRecording storedRecording() { return new StoredRecording_impl_ari_1_9_0(); }; -public DeviceStateChanged deviceStateChanged() { - return new DeviceStateChanged_impl_ari_1_9_0(); +public ChannelUnhold channelUnhold() { + return new ChannelUnhold_impl_ari_1_9_0(); }; -public ChannelConnectedLine channelConnectedLine() { - return new ChannelConnectedLine_impl_ari_1_9_0(); +public BridgeBlindTransfer bridgeBlindTransfer() { + return new BridgeBlindTransfer_impl_ari_1_9_0(); }; public ChannelUserevent channelUserevent() { return new ChannelUserevent_impl_ari_1_9_0(); }; -public Dial dial() { - return new Dial_impl_ari_1_9_0(); +public ContactStatusChange contactStatusChange() { + return new ContactStatusChange_impl_ari_1_9_0(); }; -public BuildInfo buildInfo() { - return new BuildInfo_impl_ari_1_9_0(); +public SetId setId() { + return new SetId_impl_ari_1_9_0(); }; -public DialplanCEP dialplanCEP() { - return new DialplanCEP_impl_ari_1_9_0(); +public AsteriskInfo asteriskInfo() { + return new AsteriskInfo_impl_ari_1_9_0(); }; -public Endpoint endpoint() { - return new Endpoint_impl_ari_1_9_0(); +public ChannelConnectedLine channelConnectedLine() { + return new ChannelConnectedLine_impl_ari_1_9_0(); }; -public ChannelDestroyed channelDestroyed() { - return new ChannelDestroyed_impl_ari_1_9_0(); +public RecordingStarted recordingStarted() { + return new RecordingStarted_impl_ari_1_9_0(); }; -public Channel channel() { - return new Channel_impl_ari_1_9_0(); +public StatusInfo statusInfo() { + return new StatusInfo_impl_ari_1_9_0(); }; -public MissingParams missingParams() { - return new MissingParams_impl_ari_1_9_0(); +public Endpoint endpoint() { + return new Endpoint_impl_ari_1_9_0(); }; -public Module module() { - return new Module_impl_ari_1_9_0(); +public EndpointStateChange endpointStateChange() { + return new EndpointStateChange_impl_ari_1_9_0(); }; -public ChannelDialplan channelDialplan() { - return new ChannelDialplan_impl_ari_1_9_0(); +public BridgeDestroyed bridgeDestroyed() { + return new BridgeDestroyed_impl_ari_1_9_0(); }; -public LogChannel logChannel() { - return new LogChannel_impl_ari_1_9_0(); +public StasisStart stasisStart() { + return new StasisStart_impl_ari_1_9_0(); }; -public AsteriskInfo asteriskInfo() { - return new AsteriskInfo_impl_ari_1_9_0(); +public BridgeAttendedTransfer bridgeAttendedTransfer() { + return new BridgeAttendedTransfer_impl_ari_1_9_0(); }; -public StatusInfo statusInfo() { - return new StatusInfo_impl_ari_1_9_0(); +public SystemInfo systemInfo() { + return new SystemInfo_impl_ari_1_9_0(); }; -public ChannelHangupRequest channelHangupRequest() { - return new ChannelHangupRequest_impl_ari_1_9_0(); +public ChannelLeftBridge channelLeftBridge() { + return new ChannelLeftBridge_impl_ari_1_9_0(); }; -public Dialed dialed() { - return new Dialed_impl_ari_1_9_0(); +public DialplanCEP dialplanCEP() { + return new DialplanCEP_impl_ari_1_9_0(); }; -public ChannelTalkingStarted channelTalkingStarted() { - return new ChannelTalkingStarted_impl_ari_1_9_0(); +public LogChannel logChannel() { + return new LogChannel_impl_ari_1_9_0(); }; -public Sound sound() { - return new Sound_impl_ari_1_9_0(); +public CallerID callerID() { + return new CallerID_impl_ari_1_9_0(); }; -public TextMessage textMessage() { - return new TextMessage_impl_ari_1_9_0(); +public Peer peer() { + return new Peer_impl_ari_1_9_0(); }; -public DeviceState deviceState() { - return new DeviceState_impl_ari_1_9_0(); +public BridgeCreated bridgeCreated() { + return new BridgeCreated_impl_ari_1_9_0(); }; -public BridgeMerged bridgeMerged() { - return new BridgeMerged_impl_ari_1_9_0(); +public ChannelEnteredBridge channelEnteredBridge() { + return new ChannelEnteredBridge_impl_ari_1_9_0(); }; public ChannelDtmfReceived channelDtmfReceived() { return new ChannelDtmfReceived_impl_ari_1_9_0(); }; -public ChannelUnhold channelUnhold() { - return new ChannelUnhold_impl_ari_1_9_0(); - }; - -public ContactStatusChange contactStatusChange() { - return new ContactStatusChange_impl_ari_1_9_0(); - }; - -public BridgeCreated bridgeCreated() { - return new BridgeCreated_impl_ari_1_9_0(); +public Event event() { + return new Event_impl_ari_1_9_0(); }; -public ConfigInfo configInfo() { - return new ConfigInfo_impl_ari_1_9_0(); +public Module module() { + return new Module_impl_ari_1_9_0(); }; -public SystemInfo systemInfo() { - return new SystemInfo_impl_ari_1_9_0(); +public TextMessage textMessage() { + return new TextMessage_impl_ari_1_9_0(); }; -public TextMessageVariable textMessageVariable() { - return new TextMessageVariable_impl_ari_1_9_0(); +public Bridge bridge() { + return new Bridge_impl_ari_1_9_0(); }; -public ContactInfo contactInfo() { - return new ContactInfo_impl_ari_1_9_0(); +public MissingParams missingParams() { + return new MissingParams_impl_ari_1_9_0(); }; -public LiveRecording liveRecording() { - return new LiveRecording_impl_ari_1_9_0(); +public Dial dial() { + return new Dial_impl_ari_1_9_0(); }; -public ApplicationReplaced applicationReplaced() { - return new ApplicationReplaced_impl_ari_1_9_0(); +public Playback playback() { + return new Playback_impl_ari_1_9_0(); }; -public Peer peer() { - return new Peer_impl_ari_1_9_0(); +public DeviceStateChanged deviceStateChanged() { + return new DeviceStateChanged_impl_ari_1_9_0(); }; -public BridgeBlindTransfer bridgeBlindTransfer() { - return new BridgeBlindTransfer_impl_ari_1_9_0(); +public Channel channel() { + return new Channel_impl_ari_1_9_0(); }; public Message message() { return new Message_impl_ari_1_9_0(); }; -public RecordingFailed recordingFailed() { - return new RecordingFailed_impl_ari_1_9_0(); +public ChannelTalkingStarted channelTalkingStarted() { + return new ChannelTalkingStarted_impl_ari_1_9_0(); }; public BridgeVideoSourceChanged bridgeVideoSourceChanged() { diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/ClassTranslator_impl_ari_1_9_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/ClassTranslator_impl_ari_1_9_0.java index 22f981ac..6b68a6ef 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/ClassTranslator_impl_ari_1_9_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/ClassTranslator_impl_ari_1_9_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Sat Feb 04 15:23:09 CET 2017 +// Generated on: Tue Dec 19 09:55:50 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.ARI; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/actions/ActionApplications_impl_ari_1_9_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/actions/ActionApplications_impl_ari_1_9_0.java index aa9b675c..96db8689 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/actions/ActionApplications_impl_ari_1_9_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/actions/ActionApplications_impl_ari_1_9_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Sat Feb 04 15:23:09 CET 2017 +// Generated on: Tue Dec 19 09:55:49 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/actions/ActionAsterisk_impl_ari_1_9_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/actions/ActionAsterisk_impl_ari_1_9_0.java index 8c612319..91681d2c 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/actions/ActionAsterisk_impl_ari_1_9_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/actions/ActionAsterisk_impl_ari_1_9_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Sat Feb 04 15:23:09 CET 2017 +// Generated on: Tue Dec 19 09:55:49 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/actions/ActionBridges_impl_ari_1_9_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/actions/ActionBridges_impl_ari_1_9_0.java index fb0dc96c..857bf58e 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/actions/ActionBridges_impl_ari_1_9_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/actions/ActionBridges_impl_ari_1_9_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Sat Feb 04 15:23:09 CET 2017 +// Generated on: Tue Dec 19 09:55:49 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/actions/ActionChannels_impl_ari_1_9_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/actions/ActionChannels_impl_ari_1_9_0.java index ff50ac48..5598f4ba 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/actions/ActionChannels_impl_ari_1_9_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/actions/ActionChannels_impl_ari_1_9_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Sat Feb 04 15:23:09 CET 2017 +// Generated on: Tue Dec 19 09:55:49 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/actions/ActionDeviceStates_impl_ari_1_9_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/actions/ActionDeviceStates_impl_ari_1_9_0.java index dd94c937..b1d1b501 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/actions/ActionDeviceStates_impl_ari_1_9_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/actions/ActionDeviceStates_impl_ari_1_9_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Sat Feb 04 15:23:09 CET 2017 +// Generated on: Tue Dec 19 09:55:49 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/actions/ActionEndpoints_impl_ari_1_9_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/actions/ActionEndpoints_impl_ari_1_9_0.java index 185f6b30..5d5eec2f 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/actions/ActionEndpoints_impl_ari_1_9_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/actions/ActionEndpoints_impl_ari_1_9_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Sat Feb 04 15:23:09 CET 2017 +// Generated on: Tue Dec 19 09:55:49 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/actions/ActionEvents_impl_ari_1_9_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/actions/ActionEvents_impl_ari_1_9_0.java index 4cde6138..460ce64b 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/actions/ActionEvents_impl_ari_1_9_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/actions/ActionEvents_impl_ari_1_9_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Sat Feb 04 15:23:09 CET 2017 +// Generated on: Tue Dec 19 09:55:49 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/actions/ActionPlaybacks_impl_ari_1_9_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/actions/ActionPlaybacks_impl_ari_1_9_0.java index 1394791e..12e0b6d9 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/actions/ActionPlaybacks_impl_ari_1_9_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/actions/ActionPlaybacks_impl_ari_1_9_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Sat Feb 04 15:23:09 CET 2017 +// Generated on: Tue Dec 19 09:55:49 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/actions/ActionRecordings_impl_ari_1_9_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/actions/ActionRecordings_impl_ari_1_9_0.java index 470f0739..2492c13f 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/actions/ActionRecordings_impl_ari_1_9_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/actions/ActionRecordings_impl_ari_1_9_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Sat Feb 04 15:23:09 CET 2017 +// Generated on: Tue Dec 19 09:55:49 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/actions/ActionSounds_impl_ari_1_9_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/actions/ActionSounds_impl_ari_1_9_0.java index 2326c451..c66d9fe2 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/actions/ActionSounds_impl_ari_1_9_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/actions/ActionSounds_impl_ari_1_9_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Sat Feb 04 15:23:09 CET 2017 +// Generated on: Tue Dec 19 09:55:49 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/models/ApplicationReplaced_impl_ari_1_9_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/models/ApplicationReplaced_impl_ari_1_9_0.java index 17e991b2..3934b197 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/models/ApplicationReplaced_impl_ari_1_9_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/models/ApplicationReplaced_impl_ari_1_9_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Sat Feb 04 15:23:09 CET 2017 +// Generated on: Tue Dec 19 09:55:49 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/models/Application_impl_ari_1_9_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/models/Application_impl_ari_1_9_0.java index 2d585b19..780940f8 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/models/Application_impl_ari_1_9_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/models/Application_impl_ari_1_9_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Sat Feb 04 15:23:09 CET 2017 +// Generated on: Tue Dec 19 09:55:49 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/models/AsteriskInfo_impl_ari_1_9_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/models/AsteriskInfo_impl_ari_1_9_0.java index 4a4bca19..e6aaa295 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/models/AsteriskInfo_impl_ari_1_9_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/models/AsteriskInfo_impl_ari_1_9_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Sat Feb 04 15:23:09 CET 2017 +// Generated on: Tue Dec 19 09:55:49 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/models/BridgeAttendedTransfer_impl_ari_1_9_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/models/BridgeAttendedTransfer_impl_ari_1_9_0.java index dff8c7fa..6443d88b 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/models/BridgeAttendedTransfer_impl_ari_1_9_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/models/BridgeAttendedTransfer_impl_ari_1_9_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Sat Feb 04 15:23:09 CET 2017 +// Generated on: Tue Dec 19 09:55:49 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/models/BridgeBlindTransfer_impl_ari_1_9_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/models/BridgeBlindTransfer_impl_ari_1_9_0.java index baa9ebd3..ac2aedcd 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/models/BridgeBlindTransfer_impl_ari_1_9_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/models/BridgeBlindTransfer_impl_ari_1_9_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Sat Feb 04 15:23:09 CET 2017 +// Generated on: Tue Dec 19 09:55:49 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/models/BridgeCreated_impl_ari_1_9_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/models/BridgeCreated_impl_ari_1_9_0.java index cd4a1601..cf899220 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/models/BridgeCreated_impl_ari_1_9_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/models/BridgeCreated_impl_ari_1_9_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Sat Feb 04 15:23:09 CET 2017 +// Generated on: Tue Dec 19 09:55:49 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/models/BridgeDestroyed_impl_ari_1_9_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/models/BridgeDestroyed_impl_ari_1_9_0.java index 582f099d..f39391b2 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/models/BridgeDestroyed_impl_ari_1_9_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/models/BridgeDestroyed_impl_ari_1_9_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Sat Feb 04 15:23:09 CET 2017 +// Generated on: Tue Dec 19 09:55:49 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/models/BridgeMerged_impl_ari_1_9_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/models/BridgeMerged_impl_ari_1_9_0.java index 68915562..3c39b1be 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/models/BridgeMerged_impl_ari_1_9_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/models/BridgeMerged_impl_ari_1_9_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Sat Feb 04 15:23:09 CET 2017 +// Generated on: Tue Dec 19 09:55:49 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/models/Bridge_impl_ari_1_9_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/models/Bridge_impl_ari_1_9_0.java index 1e6742c0..31c98625 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/models/Bridge_impl_ari_1_9_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/models/Bridge_impl_ari_1_9_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Sat Feb 04 15:23:09 CET 2017 +// Generated on: Tue Dec 19 09:55:49 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/models/BuildInfo_impl_ari_1_9_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/models/BuildInfo_impl_ari_1_9_0.java index 6f00c0a8..bc71c6c6 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/models/BuildInfo_impl_ari_1_9_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/models/BuildInfo_impl_ari_1_9_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Sat Feb 04 15:23:09 CET 2017 +// Generated on: Tue Dec 19 09:55:49 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/models/CallerID_impl_ari_1_9_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/models/CallerID_impl_ari_1_9_0.java index 0b255389..801746ac 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/models/CallerID_impl_ari_1_9_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/models/CallerID_impl_ari_1_9_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Sat Feb 04 15:23:09 CET 2017 +// Generated on: Tue Dec 19 09:55:49 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/models/ChannelCallerId_impl_ari_1_9_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/models/ChannelCallerId_impl_ari_1_9_0.java index 2c97187f..3a548301 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/models/ChannelCallerId_impl_ari_1_9_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/models/ChannelCallerId_impl_ari_1_9_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Sat Feb 04 15:23:09 CET 2017 +// Generated on: Tue Dec 19 09:55:49 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/models/ChannelConnectedLine_impl_ari_1_9_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/models/ChannelConnectedLine_impl_ari_1_9_0.java index 8f073bec..f2fb54d7 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/models/ChannelConnectedLine_impl_ari_1_9_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/models/ChannelConnectedLine_impl_ari_1_9_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Sat Feb 04 15:23:09 CET 2017 +// Generated on: Tue Dec 19 09:55:49 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/models/ChannelCreated_impl_ari_1_9_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/models/ChannelCreated_impl_ari_1_9_0.java index 4401f821..0e72eef2 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/models/ChannelCreated_impl_ari_1_9_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/models/ChannelCreated_impl_ari_1_9_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Sat Feb 04 15:23:09 CET 2017 +// Generated on: Tue Dec 19 09:55:49 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/models/ChannelDestroyed_impl_ari_1_9_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/models/ChannelDestroyed_impl_ari_1_9_0.java index 6444019f..dbe64a47 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/models/ChannelDestroyed_impl_ari_1_9_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/models/ChannelDestroyed_impl_ari_1_9_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Sat Feb 04 15:23:09 CET 2017 +// Generated on: Tue Dec 19 09:55:49 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/models/ChannelDialplan_impl_ari_1_9_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/models/ChannelDialplan_impl_ari_1_9_0.java index 7c87b7e9..dfe4e03d 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/models/ChannelDialplan_impl_ari_1_9_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/models/ChannelDialplan_impl_ari_1_9_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Sat Feb 04 15:23:09 CET 2017 +// Generated on: Tue Dec 19 09:55:49 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/models/ChannelDtmfReceived_impl_ari_1_9_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/models/ChannelDtmfReceived_impl_ari_1_9_0.java index efeb2f35..d5bffa75 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/models/ChannelDtmfReceived_impl_ari_1_9_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/models/ChannelDtmfReceived_impl_ari_1_9_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Sat Feb 04 15:23:09 CET 2017 +// Generated on: Tue Dec 19 09:55:49 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/models/ChannelEnteredBridge_impl_ari_1_9_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/models/ChannelEnteredBridge_impl_ari_1_9_0.java index f8122a12..bf059c3d 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/models/ChannelEnteredBridge_impl_ari_1_9_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/models/ChannelEnteredBridge_impl_ari_1_9_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Sat Feb 04 15:23:09 CET 2017 +// Generated on: Tue Dec 19 09:55:49 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/models/ChannelHangupRequest_impl_ari_1_9_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/models/ChannelHangupRequest_impl_ari_1_9_0.java index 32eb0a4e..8fca5e20 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/models/ChannelHangupRequest_impl_ari_1_9_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/models/ChannelHangupRequest_impl_ari_1_9_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Sat Feb 04 15:23:09 CET 2017 +// Generated on: Tue Dec 19 09:55:49 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/models/ChannelHold_impl_ari_1_9_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/models/ChannelHold_impl_ari_1_9_0.java index c3cde183..f0a0b73d 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/models/ChannelHold_impl_ari_1_9_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/models/ChannelHold_impl_ari_1_9_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Sat Feb 04 15:23:09 CET 2017 +// Generated on: Tue Dec 19 09:55:49 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/models/ChannelLeftBridge_impl_ari_1_9_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/models/ChannelLeftBridge_impl_ari_1_9_0.java index 88b7ec81..b7cfe1c5 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/models/ChannelLeftBridge_impl_ari_1_9_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/models/ChannelLeftBridge_impl_ari_1_9_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Sat Feb 04 15:23:09 CET 2017 +// Generated on: Tue Dec 19 09:55:49 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/models/ChannelStateChange_impl_ari_1_9_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/models/ChannelStateChange_impl_ari_1_9_0.java index 4216d9fb..55afd34a 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/models/ChannelStateChange_impl_ari_1_9_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/models/ChannelStateChange_impl_ari_1_9_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Sat Feb 04 15:23:09 CET 2017 +// Generated on: Tue Dec 19 09:55:49 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/models/ChannelTalkingFinished_impl_ari_1_9_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/models/ChannelTalkingFinished_impl_ari_1_9_0.java index ffbcb88f..d8544f42 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/models/ChannelTalkingFinished_impl_ari_1_9_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/models/ChannelTalkingFinished_impl_ari_1_9_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Sat Feb 04 15:23:09 CET 2017 +// Generated on: Tue Dec 19 09:55:49 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/models/ChannelTalkingStarted_impl_ari_1_9_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/models/ChannelTalkingStarted_impl_ari_1_9_0.java index cd9f748a..450ff80c 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/models/ChannelTalkingStarted_impl_ari_1_9_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/models/ChannelTalkingStarted_impl_ari_1_9_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Sat Feb 04 15:23:09 CET 2017 +// Generated on: Tue Dec 19 09:55:49 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/models/ChannelUnhold_impl_ari_1_9_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/models/ChannelUnhold_impl_ari_1_9_0.java index bbf10957..60d2bc86 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/models/ChannelUnhold_impl_ari_1_9_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/models/ChannelUnhold_impl_ari_1_9_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Sat Feb 04 15:23:09 CET 2017 +// Generated on: Tue Dec 19 09:55:49 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/models/ChannelUserevent_impl_ari_1_9_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/models/ChannelUserevent_impl_ari_1_9_0.java index e7184530..8c8248d4 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/models/ChannelUserevent_impl_ari_1_9_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/models/ChannelUserevent_impl_ari_1_9_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Sat Feb 04 15:23:09 CET 2017 +// Generated on: Tue Dec 19 09:55:49 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/models/ChannelVarset_impl_ari_1_9_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/models/ChannelVarset_impl_ari_1_9_0.java index 94d3476f..69f1520a 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/models/ChannelVarset_impl_ari_1_9_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/models/ChannelVarset_impl_ari_1_9_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Sat Feb 04 15:23:09 CET 2017 +// Generated on: Tue Dec 19 09:55:49 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/models/Channel_impl_ari_1_9_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/models/Channel_impl_ari_1_9_0.java index eda963f6..6c2bf66b 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/models/Channel_impl_ari_1_9_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/models/Channel_impl_ari_1_9_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Sat Feb 04 15:23:09 CET 2017 +// Generated on: Tue Dec 19 09:55:49 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/models/ConfigInfo_impl_ari_1_9_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/models/ConfigInfo_impl_ari_1_9_0.java index d273d0e2..184fafe8 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/models/ConfigInfo_impl_ari_1_9_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/models/ConfigInfo_impl_ari_1_9_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Sat Feb 04 15:23:09 CET 2017 +// Generated on: Tue Dec 19 09:55:49 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/models/ConfigTuple_impl_ari_1_9_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/models/ConfigTuple_impl_ari_1_9_0.java index beb76cf8..8d24c4e5 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/models/ConfigTuple_impl_ari_1_9_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/models/ConfigTuple_impl_ari_1_9_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Sat Feb 04 15:23:09 CET 2017 +// Generated on: Tue Dec 19 09:55:49 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/models/ContactInfo_impl_ari_1_9_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/models/ContactInfo_impl_ari_1_9_0.java index e216d1f9..f0dd21b6 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/models/ContactInfo_impl_ari_1_9_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/models/ContactInfo_impl_ari_1_9_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Sat Feb 04 15:23:09 CET 2017 +// Generated on: Tue Dec 19 09:55:49 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/models/ContactStatusChange_impl_ari_1_9_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/models/ContactStatusChange_impl_ari_1_9_0.java index a9ed3955..74e371cf 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/models/ContactStatusChange_impl_ari_1_9_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/models/ContactStatusChange_impl_ari_1_9_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Sat Feb 04 15:23:09 CET 2017 +// Generated on: Tue Dec 19 09:55:49 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/models/DeviceStateChanged_impl_ari_1_9_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/models/DeviceStateChanged_impl_ari_1_9_0.java index f048c738..f92031d9 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/models/DeviceStateChanged_impl_ari_1_9_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/models/DeviceStateChanged_impl_ari_1_9_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Sat Feb 04 15:23:09 CET 2017 +// Generated on: Tue Dec 19 09:55:49 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/models/DeviceState_impl_ari_1_9_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/models/DeviceState_impl_ari_1_9_0.java index b215ef95..7f17b260 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/models/DeviceState_impl_ari_1_9_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/models/DeviceState_impl_ari_1_9_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Sat Feb 04 15:23:09 CET 2017 +// Generated on: Tue Dec 19 09:55:49 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/models/Dial_impl_ari_1_9_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/models/Dial_impl_ari_1_9_0.java index 6572beac..5a2e0c02 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/models/Dial_impl_ari_1_9_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/models/Dial_impl_ari_1_9_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Sat Feb 04 15:23:09 CET 2017 +// Generated on: Tue Dec 19 09:55:49 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/models/Dialed_impl_ari_1_9_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/models/Dialed_impl_ari_1_9_0.java index 7c8ca4bf..e387e77b 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/models/Dialed_impl_ari_1_9_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/models/Dialed_impl_ari_1_9_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Sat Feb 04 15:23:09 CET 2017 +// Generated on: Tue Dec 19 09:55:49 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/models/DialplanCEP_impl_ari_1_9_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/models/DialplanCEP_impl_ari_1_9_0.java index d001842d..6ef74822 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/models/DialplanCEP_impl_ari_1_9_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/models/DialplanCEP_impl_ari_1_9_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Sat Feb 04 15:23:09 CET 2017 +// Generated on: Tue Dec 19 09:55:49 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/models/EndpointStateChange_impl_ari_1_9_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/models/EndpointStateChange_impl_ari_1_9_0.java index 2c52b822..2997aa7f 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/models/EndpointStateChange_impl_ari_1_9_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/models/EndpointStateChange_impl_ari_1_9_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Sat Feb 04 15:23:09 CET 2017 +// Generated on: Tue Dec 19 09:55:49 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/models/Endpoint_impl_ari_1_9_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/models/Endpoint_impl_ari_1_9_0.java index 600c8dc7..d1f1a434 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/models/Endpoint_impl_ari_1_9_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/models/Endpoint_impl_ari_1_9_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Sat Feb 04 15:23:09 CET 2017 +// Generated on: Tue Dec 19 09:55:49 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/models/Event_impl_ari_1_9_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/models/Event_impl_ari_1_9_0.java index 0d2f6298..5471f815 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/models/Event_impl_ari_1_9_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/models/Event_impl_ari_1_9_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Sat Feb 04 15:23:09 CET 2017 +// Generated on: Tue Dec 19 09:55:49 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/models/FormatLangPair_impl_ari_1_9_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/models/FormatLangPair_impl_ari_1_9_0.java index 1aab337c..e6f1d2f1 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/models/FormatLangPair_impl_ari_1_9_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/models/FormatLangPair_impl_ari_1_9_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Sat Feb 04 15:23:09 CET 2017 +// Generated on: Tue Dec 19 09:55:49 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/models/LiveRecording_impl_ari_1_9_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/models/LiveRecording_impl_ari_1_9_0.java index f27e09be..f93fce23 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/models/LiveRecording_impl_ari_1_9_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/models/LiveRecording_impl_ari_1_9_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Sat Feb 04 15:23:09 CET 2017 +// Generated on: Tue Dec 19 09:55:49 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/models/LogChannel_impl_ari_1_9_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/models/LogChannel_impl_ari_1_9_0.java index 510f0f85..9bb4f62a 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/models/LogChannel_impl_ari_1_9_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/models/LogChannel_impl_ari_1_9_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Sat Feb 04 15:23:09 CET 2017 +// Generated on: Tue Dec 19 09:55:49 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/models/Message_impl_ari_1_9_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/models/Message_impl_ari_1_9_0.java index 9a1db25d..3d29c107 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/models/Message_impl_ari_1_9_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/models/Message_impl_ari_1_9_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Sat Feb 04 15:23:09 CET 2017 +// Generated on: Tue Dec 19 09:55:49 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/models/MissingParams_impl_ari_1_9_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/models/MissingParams_impl_ari_1_9_0.java index 5751868c..310f4ed6 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/models/MissingParams_impl_ari_1_9_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/models/MissingParams_impl_ari_1_9_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Sat Feb 04 15:23:09 CET 2017 +// Generated on: Tue Dec 19 09:55:49 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/models/Module_impl_ari_1_9_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/models/Module_impl_ari_1_9_0.java index 7a198449..bb563037 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/models/Module_impl_ari_1_9_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/models/Module_impl_ari_1_9_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Sat Feb 04 15:23:09 CET 2017 +// Generated on: Tue Dec 19 09:55:49 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/models/PeerStatusChange_impl_ari_1_9_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/models/PeerStatusChange_impl_ari_1_9_0.java index 8e382153..67575a1a 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/models/PeerStatusChange_impl_ari_1_9_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/models/PeerStatusChange_impl_ari_1_9_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Sat Feb 04 15:23:09 CET 2017 +// Generated on: Tue Dec 19 09:55:49 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/models/Peer_impl_ari_1_9_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/models/Peer_impl_ari_1_9_0.java index a3dd5cea..960a2174 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/models/Peer_impl_ari_1_9_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/models/Peer_impl_ari_1_9_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Sat Feb 04 15:23:09 CET 2017 +// Generated on: Tue Dec 19 09:55:49 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/models/PlaybackFinished_impl_ari_1_9_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/models/PlaybackFinished_impl_ari_1_9_0.java index 91869b01..d5783371 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/models/PlaybackFinished_impl_ari_1_9_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/models/PlaybackFinished_impl_ari_1_9_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Sat Feb 04 15:23:09 CET 2017 +// Generated on: Tue Dec 19 09:55:49 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/models/PlaybackStarted_impl_ari_1_9_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/models/PlaybackStarted_impl_ari_1_9_0.java index 62bc1b1b..761e5213 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/models/PlaybackStarted_impl_ari_1_9_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/models/PlaybackStarted_impl_ari_1_9_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Sat Feb 04 15:23:09 CET 2017 +// Generated on: Tue Dec 19 09:55:49 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/models/Playback_impl_ari_1_9_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/models/Playback_impl_ari_1_9_0.java index e9ffea06..d6fe008c 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/models/Playback_impl_ari_1_9_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/models/Playback_impl_ari_1_9_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Sat Feb 04 15:23:09 CET 2017 +// Generated on: Tue Dec 19 09:55:49 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/models/RecordingFailed_impl_ari_1_9_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/models/RecordingFailed_impl_ari_1_9_0.java index 8f520c6b..69f15141 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/models/RecordingFailed_impl_ari_1_9_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/models/RecordingFailed_impl_ari_1_9_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Sat Feb 04 15:23:09 CET 2017 +// Generated on: Tue Dec 19 09:55:49 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/models/RecordingFinished_impl_ari_1_9_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/models/RecordingFinished_impl_ari_1_9_0.java index fd9359c2..2eec8605 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/models/RecordingFinished_impl_ari_1_9_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/models/RecordingFinished_impl_ari_1_9_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Sat Feb 04 15:23:09 CET 2017 +// Generated on: Tue Dec 19 09:55:49 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/models/RecordingStarted_impl_ari_1_9_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/models/RecordingStarted_impl_ari_1_9_0.java index a74d5c75..85ff385c 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/models/RecordingStarted_impl_ari_1_9_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/models/RecordingStarted_impl_ari_1_9_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Sat Feb 04 15:23:09 CET 2017 +// Generated on: Tue Dec 19 09:55:49 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/models/SetId_impl_ari_1_9_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/models/SetId_impl_ari_1_9_0.java index 9cea67dd..2f6ac8f9 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/models/SetId_impl_ari_1_9_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/models/SetId_impl_ari_1_9_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Sat Feb 04 15:23:09 CET 2017 +// Generated on: Tue Dec 19 09:55:49 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/models/Sound_impl_ari_1_9_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/models/Sound_impl_ari_1_9_0.java index 47f13cec..5a01105d 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/models/Sound_impl_ari_1_9_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/models/Sound_impl_ari_1_9_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Sat Feb 04 15:23:09 CET 2017 +// Generated on: Tue Dec 19 09:55:49 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/models/StasisEnd_impl_ari_1_9_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/models/StasisEnd_impl_ari_1_9_0.java index fa395c94..c03990d2 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/models/StasisEnd_impl_ari_1_9_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/models/StasisEnd_impl_ari_1_9_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Sat Feb 04 15:23:09 CET 2017 +// Generated on: Tue Dec 19 09:55:49 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/models/StasisStart_impl_ari_1_9_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/models/StasisStart_impl_ari_1_9_0.java index 2d127a49..cc5af37e 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/models/StasisStart_impl_ari_1_9_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/models/StasisStart_impl_ari_1_9_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Sat Feb 04 15:23:09 CET 2017 +// Generated on: Tue Dec 19 09:55:49 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/models/StatusInfo_impl_ari_1_9_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/models/StatusInfo_impl_ari_1_9_0.java index 845bd9d0..977f4971 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/models/StatusInfo_impl_ari_1_9_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/models/StatusInfo_impl_ari_1_9_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Sat Feb 04 15:23:09 CET 2017 +// Generated on: Tue Dec 19 09:55:49 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/models/StoredRecording_impl_ari_1_9_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/models/StoredRecording_impl_ari_1_9_0.java index 15327215..decfe5d8 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/models/StoredRecording_impl_ari_1_9_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/models/StoredRecording_impl_ari_1_9_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Sat Feb 04 15:23:09 CET 2017 +// Generated on: Tue Dec 19 09:55:49 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/models/SystemInfo_impl_ari_1_9_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/models/SystemInfo_impl_ari_1_9_0.java index 36680559..ec63300e 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/models/SystemInfo_impl_ari_1_9_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/models/SystemInfo_impl_ari_1_9_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Sat Feb 04 15:23:09 CET 2017 +// Generated on: Tue Dec 19 09:55:49 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/models/TextMessageReceived_impl_ari_1_9_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/models/TextMessageReceived_impl_ari_1_9_0.java index aae2f622..02f104e2 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/models/TextMessageReceived_impl_ari_1_9_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/models/TextMessageReceived_impl_ari_1_9_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Sat Feb 04 15:23:09 CET 2017 +// Generated on: Tue Dec 19 09:55:49 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/models/TextMessageVariable_impl_ari_1_9_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/models/TextMessageVariable_impl_ari_1_9_0.java index 318740f1..d1402059 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/models/TextMessageVariable_impl_ari_1_9_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/models/TextMessageVariable_impl_ari_1_9_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Sat Feb 04 15:23:09 CET 2017 +// Generated on: Tue Dec 19 09:55:49 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/models/TextMessage_impl_ari_1_9_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/models/TextMessage_impl_ari_1_9_0.java index 048e1bc4..ba7a44b7 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/models/TextMessage_impl_ari_1_9_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/models/TextMessage_impl_ari_1_9_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Sat Feb 04 15:23:09 CET 2017 +// Generated on: Tue Dec 19 09:55:49 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/models/Variable_impl_ari_1_9_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/models/Variable_impl_ari_1_9_0.java index f14edffb..09730bfa 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/models/Variable_impl_ari_1_9_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/models/Variable_impl_ari_1_9_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Sat Feb 04 15:23:09 CET 2017 +// Generated on: Tue Dec 19 09:55:49 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_2_0_0/AriBuilder_impl_ari_2_0_0.java b/classes/ch/loway/oss/ari4java/generated/ari_2_0_0/AriBuilder_impl_ari_2_0_0.java index 18555a95..a818bfb1 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_2_0_0/AriBuilder_impl_ari_2_0_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_2_0_0/AriBuilder_impl_ari_2_0_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Sat Feb 04 15:23:09 CET 2017 +// Generated on: Tue Dec 19 09:55:49 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.ari_2_0_0.models.*; @@ -53,272 +53,272 @@ public ActionRecordings actionRecordings() { return new ActionRecordings_impl_ari_2_0_0(); }; -public Endpoint endpoint() { - return new Endpoint_impl_ari_2_0_0(); +public TextMessageReceived textMessageReceived() { + return new TextMessageReceived_impl_ari_2_0_0(); }; -public TextMessage textMessage() { - return new TextMessage_impl_ari_2_0_0(); +public AsteriskInfo asteriskInfo() { + return new AsteriskInfo_impl_ari_2_0_0(); }; -public ContactInfo contactInfo() { - return new ContactInfo_impl_ari_2_0_0(); +public LogChannel logChannel() { + return new LogChannel_impl_ari_2_0_0(); }; -public BridgeBlindTransfer bridgeBlindTransfer() { - return new BridgeBlindTransfer_impl_ari_2_0_0(); +public PeerStatusChange peerStatusChange() { + return new PeerStatusChange_impl_ari_2_0_0(); }; -public DialplanCEP dialplanCEP() { - return new DialplanCEP_impl_ari_2_0_0(); +public TextMessage textMessage() { + return new TextMessage_impl_ari_2_0_0(); }; -public RecordingStarted recordingStarted() { - return new RecordingStarted_impl_ari_2_0_0(); +public PlaybackContinuing playbackContinuing() { + return new PlaybackContinuing_impl_ari_2_0_0(); }; -public Bridge bridge() { - return new Bridge_impl_ari_2_0_0(); +public SetId setId() { + return new SetId_impl_ari_2_0_0(); }; -public ChannelDestroyed channelDestroyed() { - return new ChannelDestroyed_impl_ari_2_0_0(); +public ChannelTalkingStarted channelTalkingStarted() { + return new ChannelTalkingStarted_impl_ari_2_0_0(); }; -public BridgeAttendedTransfer bridgeAttendedTransfer() { - return new BridgeAttendedTransfer_impl_ari_2_0_0(); +public DeviceState deviceState() { + return new DeviceState_impl_ari_2_0_0(); }; -public Module module() { - return new Module_impl_ari_2_0_0(); +public BuildInfo buildInfo() { + return new BuildInfo_impl_ari_2_0_0(); }; -public ChannelTalkingFinished channelTalkingFinished() { - return new ChannelTalkingFinished_impl_ari_2_0_0(); +public RecordingFinished recordingFinished() { + return new RecordingFinished_impl_ari_2_0_0(); }; -public MissingParams missingParams() { - return new MissingParams_impl_ari_2_0_0(); +public PlaybackFinished playbackFinished() { + return new PlaybackFinished_impl_ari_2_0_0(); }; -public Message message() { - return new Message_impl_ari_2_0_0(); +public ChannelStateChange channelStateChange() { + return new ChannelStateChange_impl_ari_2_0_0(); }; -public Dialed dialed() { - return new Dialed_impl_ari_2_0_0(); +public Endpoint endpoint() { + return new Endpoint_impl_ari_2_0_0(); }; -public Playback playback() { - return new Playback_impl_ari_2_0_0(); +public StasisEnd stasisEnd() { + return new StasisEnd_impl_ari_2_0_0(); }; -public Variable variable() { - return new Variable_impl_ari_2_0_0(); +public Channel channel() { + return new Channel_impl_ari_2_0_0(); }; -public BridgeVideoSourceChanged bridgeVideoSourceChanged() { - return new BridgeVideoSourceChanged_impl_ari_2_0_0(); +public SystemInfo systemInfo() { + return new SystemInfo_impl_ari_2_0_0(); }; -public StatusInfo statusInfo() { - return new StatusInfo_impl_ari_2_0_0(); +public Variable variable() { + return new Variable_impl_ari_2_0_0(); }; -public PeerStatusChange peerStatusChange() { - return new PeerStatusChange_impl_ari_2_0_0(); +public EndpointStateChange endpointStateChange() { + return new EndpointStateChange_impl_ari_2_0_0(); }; -public RecordingFinished recordingFinished() { - return new RecordingFinished_impl_ari_2_0_0(); +public PlaybackStarted playbackStarted() { + return new PlaybackStarted_impl_ari_2_0_0(); }; -public ChannelLeftBridge channelLeftBridge() { - return new ChannelLeftBridge_impl_ari_2_0_0(); +public ChannelTalkingFinished channelTalkingFinished() { + return new ChannelTalkingFinished_impl_ari_2_0_0(); }; -public PlaybackContinuing playbackContinuing() { - return new PlaybackContinuing_impl_ari_2_0_0(); +public ContactStatusChange contactStatusChange() { + return new ContactStatusChange_impl_ari_2_0_0(); }; -public SetId setId() { - return new SetId_impl_ari_2_0_0(); +public ChannelDialplan channelDialplan() { + return new ChannelDialplan_impl_ari_2_0_0(); }; -public ChannelEnteredBridge channelEnteredBridge() { - return new ChannelEnteredBridge_impl_ari_2_0_0(); +public Message message() { + return new Message_impl_ari_2_0_0(); }; -public ChannelDialplan channelDialplan() { - return new ChannelDialplan_impl_ari_2_0_0(); +public ChannelConnectedLine channelConnectedLine() { + return new ChannelConnectedLine_impl_ari_2_0_0(); }; -public PlaybackFinished playbackFinished() { - return new PlaybackFinished_impl_ari_2_0_0(); +public ApplicationReplaced applicationReplaced() { + return new ApplicationReplaced_impl_ari_2_0_0(); }; -public ChannelUserevent channelUserevent() { - return new ChannelUserevent_impl_ari_2_0_0(); +public FormatLangPair formatLangPair() { + return new FormatLangPair_impl_ari_2_0_0(); }; -public ChannelHold channelHold() { - return new ChannelHold_impl_ari_2_0_0(); +public RecordingFailed recordingFailed() { + return new RecordingFailed_impl_ari_2_0_0(); }; -public SystemInfo systemInfo() { - return new SystemInfo_impl_ari_2_0_0(); +public BridgeMerged bridgeMerged() { + return new BridgeMerged_impl_ari_2_0_0(); }; -public ChannelHangupRequest channelHangupRequest() { - return new ChannelHangupRequest_impl_ari_2_0_0(); +public Sound sound() { + return new Sound_impl_ari_2_0_0(); }; -public Peer peer() { - return new Peer_impl_ari_2_0_0(); +public BridgeBlindTransfer bridgeBlindTransfer() { + return new BridgeBlindTransfer_impl_ari_2_0_0(); }; -public BridgeMerged bridgeMerged() { - return new BridgeMerged_impl_ari_2_0_0(); +public ChannelDestroyed channelDestroyed() { + return new ChannelDestroyed_impl_ari_2_0_0(); }; -public StasisEnd stasisEnd() { - return new StasisEnd_impl_ari_2_0_0(); +public BridgeAttendedTransfer bridgeAttendedTransfer() { + return new BridgeAttendedTransfer_impl_ari_2_0_0(); }; -public FormatLangPair formatLangPair() { - return new FormatLangPair_impl_ari_2_0_0(); +public Playback playback() { + return new Playback_impl_ari_2_0_0(); }; -public ChannelDtmfReceived channelDtmfReceived() { - return new ChannelDtmfReceived_impl_ari_2_0_0(); +public DeviceStateChanged deviceStateChanged() { + return new DeviceStateChanged_impl_ari_2_0_0(); }; -public DeviceState deviceState() { - return new DeviceState_impl_ari_2_0_0(); +public ChannelHangupRequest channelHangupRequest() { + return new ChannelHangupRequest_impl_ari_2_0_0(); }; -public Channel channel() { - return new Channel_impl_ari_2_0_0(); +public Dialed dialed() { + return new Dialed_impl_ari_2_0_0(); }; -public Dial dial() { - return new Dial_impl_ari_2_0_0(); +public BridgeDestroyed bridgeDestroyed() { + return new BridgeDestroyed_impl_ari_2_0_0(); }; -public RecordingFailed recordingFailed() { - return new RecordingFailed_impl_ari_2_0_0(); +public CallerID callerID() { + return new CallerID_impl_ari_2_0_0(); }; -public ChannelCallerId channelCallerId() { - return new ChannelCallerId_impl_ari_2_0_0(); +public StatusInfo statusInfo() { + return new StatusInfo_impl_ari_2_0_0(); }; -public ChannelCreated channelCreated() { - return new ChannelCreated_impl_ari_2_0_0(); +public ChannelUserevent channelUserevent() { + return new ChannelUserevent_impl_ari_2_0_0(); }; -public ChannelConnectedLine channelConnectedLine() { - return new ChannelConnectedLine_impl_ari_2_0_0(); +public MissingParams missingParams() { + return new MissingParams_impl_ari_2_0_0(); }; -public StoredRecording storedRecording() { - return new StoredRecording_impl_ari_2_0_0(); +public BridgeVideoSourceChanged bridgeVideoSourceChanged() { + return new BridgeVideoSourceChanged_impl_ari_2_0_0(); }; -public TextMessageVariable textMessageVariable() { - return new TextMessageVariable_impl_ari_2_0_0(); +public RecordingStarted recordingStarted() { + return new RecordingStarted_impl_ari_2_0_0(); }; -public EndpointStateChange endpointStateChange() { - return new EndpointStateChange_impl_ari_2_0_0(); +public ChannelUnhold channelUnhold() { + return new ChannelUnhold_impl_ari_2_0_0(); }; -public ApplicationReplaced applicationReplaced() { - return new ApplicationReplaced_impl_ari_2_0_0(); +public ConfigTuple configTuple() { + return new ConfigTuple_impl_ari_2_0_0(); }; -public ChannelVarset channelVarset() { - return new ChannelVarset_impl_ari_2_0_0(); +public Module module() { + return new Module_impl_ari_2_0_0(); }; -public ChannelStateChange channelStateChange() { - return new ChannelStateChange_impl_ari_2_0_0(); +public ChannelCallerId channelCallerId() { + return new ChannelCallerId_impl_ari_2_0_0(); }; -public ConfigInfo configInfo() { - return new ConfigInfo_impl_ari_2_0_0(); +public Event event() { + return new Event_impl_ari_2_0_0(); }; -public TextMessageReceived textMessageReceived() { - return new TextMessageReceived_impl_ari_2_0_0(); +public ChannelCreated channelCreated() { + return new ChannelCreated_impl_ari_2_0_0(); }; public BridgeCreated bridgeCreated() { return new BridgeCreated_impl_ari_2_0_0(); }; -public BuildInfo buildInfo() { - return new BuildInfo_impl_ari_2_0_0(); +public ChannelHold channelHold() { + return new ChannelHold_impl_ari_2_0_0(); }; -public LogChannel logChannel() { - return new LogChannel_impl_ari_2_0_0(); +public ContactInfo contactInfo() { + return new ContactInfo_impl_ari_2_0_0(); }; -public Event event() { - return new Event_impl_ari_2_0_0(); +public TextMessageVariable textMessageVariable() { + return new TextMessageVariable_impl_ari_2_0_0(); }; -public ChannelUnhold channelUnhold() { - return new ChannelUnhold_impl_ari_2_0_0(); +public ChannelEnteredBridge channelEnteredBridge() { + return new ChannelEnteredBridge_impl_ari_2_0_0(); }; -public Sound sound() { - return new Sound_impl_ari_2_0_0(); +public DialplanCEP dialplanCEP() { + return new DialplanCEP_impl_ari_2_0_0(); }; -public ContactStatusChange contactStatusChange() { - return new ContactStatusChange_impl_ari_2_0_0(); +public ChannelDtmfReceived channelDtmfReceived() { + return new ChannelDtmfReceived_impl_ari_2_0_0(); }; -public AsteriskInfo asteriskInfo() { - return new AsteriskInfo_impl_ari_2_0_0(); +public ChannelVarset channelVarset() { + return new ChannelVarset_impl_ari_2_0_0(); }; -public StasisStart stasisStart() { - return new StasisStart_impl_ari_2_0_0(); +public LiveRecording liveRecording() { + return new LiveRecording_impl_ari_2_0_0(); }; -public PlaybackStarted playbackStarted() { - return new PlaybackStarted_impl_ari_2_0_0(); +public Dial dial() { + return new Dial_impl_ari_2_0_0(); }; -public ConfigTuple configTuple() { - return new ConfigTuple_impl_ari_2_0_0(); +public Application application() { + return new Application_impl_ari_2_0_0(); }; -public LiveRecording liveRecording() { - return new LiveRecording_impl_ari_2_0_0(); +public StasisStart stasisStart() { + return new StasisStart_impl_ari_2_0_0(); }; -public BridgeDestroyed bridgeDestroyed() { - return new BridgeDestroyed_impl_ari_2_0_0(); +public Bridge bridge() { + return new Bridge_impl_ari_2_0_0(); }; -public ChannelTalkingStarted channelTalkingStarted() { - return new ChannelTalkingStarted_impl_ari_2_0_0(); +public Peer peer() { + return new Peer_impl_ari_2_0_0(); }; -public CallerID callerID() { - return new CallerID_impl_ari_2_0_0(); +public ChannelLeftBridge channelLeftBridge() { + return new ChannelLeftBridge_impl_ari_2_0_0(); }; -public DeviceStateChanged deviceStateChanged() { - return new DeviceStateChanged_impl_ari_2_0_0(); +public ConfigInfo configInfo() { + return new ConfigInfo_impl_ari_2_0_0(); }; -public Application application() { - return new Application_impl_ari_2_0_0(); +public StoredRecording storedRecording() { + return new StoredRecording_impl_ari_2_0_0(); }; public ARI.ClassFactory getClassFactory() { diff --git a/classes/ch/loway/oss/ari4java/generated/ari_2_0_0/ClassTranslator_impl_ari_2_0_0.java b/classes/ch/loway/oss/ari4java/generated/ari_2_0_0/ClassTranslator_impl_ari_2_0_0.java index b5baeac9..30102ce7 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_2_0_0/ClassTranslator_impl_ari_2_0_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_2_0_0/ClassTranslator_impl_ari_2_0_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Sat Feb 04 15:23:09 CET 2017 +// Generated on: Tue Dec 19 09:55:50 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.ARI; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_2_0_0/actions/ActionApplications_impl_ari_2_0_0.java b/classes/ch/loway/oss/ari4java/generated/ari_2_0_0/actions/ActionApplications_impl_ari_2_0_0.java index 065e40f7..8ee8bf7f 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_2_0_0/actions/ActionApplications_impl_ari_2_0_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_2_0_0/actions/ActionApplications_impl_ari_2_0_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Sat Feb 04 15:23:09 CET 2017 +// Generated on: Tue Dec 19 09:55:49 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_2_0_0/actions/ActionAsterisk_impl_ari_2_0_0.java b/classes/ch/loway/oss/ari4java/generated/ari_2_0_0/actions/ActionAsterisk_impl_ari_2_0_0.java index 1a8aaa03..21e8352d 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_2_0_0/actions/ActionAsterisk_impl_ari_2_0_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_2_0_0/actions/ActionAsterisk_impl_ari_2_0_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Sat Feb 04 15:23:09 CET 2017 +// Generated on: Tue Dec 19 09:55:49 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_2_0_0/actions/ActionBridges_impl_ari_2_0_0.java b/classes/ch/loway/oss/ari4java/generated/ari_2_0_0/actions/ActionBridges_impl_ari_2_0_0.java index 2813cdb0..17f9ebe3 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_2_0_0/actions/ActionBridges_impl_ari_2_0_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_2_0_0/actions/ActionBridges_impl_ari_2_0_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Sat Feb 04 15:23:09 CET 2017 +// Generated on: Tue Dec 19 09:55:49 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_2_0_0/actions/ActionChannels_impl_ari_2_0_0.java b/classes/ch/loway/oss/ari4java/generated/ari_2_0_0/actions/ActionChannels_impl_ari_2_0_0.java index ad8d93d3..a2c18d29 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_2_0_0/actions/ActionChannels_impl_ari_2_0_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_2_0_0/actions/ActionChannels_impl_ari_2_0_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Sat Feb 04 15:23:09 CET 2017 +// Generated on: Tue Dec 19 09:55:49 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_2_0_0/actions/ActionDeviceStates_impl_ari_2_0_0.java b/classes/ch/loway/oss/ari4java/generated/ari_2_0_0/actions/ActionDeviceStates_impl_ari_2_0_0.java index caef72e9..faf0c7fb 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_2_0_0/actions/ActionDeviceStates_impl_ari_2_0_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_2_0_0/actions/ActionDeviceStates_impl_ari_2_0_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Sat Feb 04 15:23:09 CET 2017 +// Generated on: Tue Dec 19 09:55:49 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_2_0_0/actions/ActionEndpoints_impl_ari_2_0_0.java b/classes/ch/loway/oss/ari4java/generated/ari_2_0_0/actions/ActionEndpoints_impl_ari_2_0_0.java index 01e1a55e..b719d980 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_2_0_0/actions/ActionEndpoints_impl_ari_2_0_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_2_0_0/actions/ActionEndpoints_impl_ari_2_0_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Sat Feb 04 15:23:09 CET 2017 +// Generated on: Tue Dec 19 09:55:49 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_2_0_0/actions/ActionEvents_impl_ari_2_0_0.java b/classes/ch/loway/oss/ari4java/generated/ari_2_0_0/actions/ActionEvents_impl_ari_2_0_0.java index e82be20c..87a11775 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_2_0_0/actions/ActionEvents_impl_ari_2_0_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_2_0_0/actions/ActionEvents_impl_ari_2_0_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Sat Feb 04 15:23:09 CET 2017 +// Generated on: Tue Dec 19 09:55:49 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_2_0_0/actions/ActionPlaybacks_impl_ari_2_0_0.java b/classes/ch/loway/oss/ari4java/generated/ari_2_0_0/actions/ActionPlaybacks_impl_ari_2_0_0.java index d06632f4..cda36ca1 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_2_0_0/actions/ActionPlaybacks_impl_ari_2_0_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_2_0_0/actions/ActionPlaybacks_impl_ari_2_0_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Sat Feb 04 15:23:09 CET 2017 +// Generated on: Tue Dec 19 09:55:49 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_2_0_0/actions/ActionRecordings_impl_ari_2_0_0.java b/classes/ch/loway/oss/ari4java/generated/ari_2_0_0/actions/ActionRecordings_impl_ari_2_0_0.java index d63ddd1d..a1e631af 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_2_0_0/actions/ActionRecordings_impl_ari_2_0_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_2_0_0/actions/ActionRecordings_impl_ari_2_0_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Sat Feb 04 15:23:09 CET 2017 +// Generated on: Tue Dec 19 09:55:49 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_2_0_0/actions/ActionSounds_impl_ari_2_0_0.java b/classes/ch/loway/oss/ari4java/generated/ari_2_0_0/actions/ActionSounds_impl_ari_2_0_0.java index c8e4a0b0..8f1e5168 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_2_0_0/actions/ActionSounds_impl_ari_2_0_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_2_0_0/actions/ActionSounds_impl_ari_2_0_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Sat Feb 04 15:23:09 CET 2017 +// Generated on: Tue Dec 19 09:55:49 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_2_0_0/models/ApplicationReplaced_impl_ari_2_0_0.java b/classes/ch/loway/oss/ari4java/generated/ari_2_0_0/models/ApplicationReplaced_impl_ari_2_0_0.java index a663250a..5a96882b 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_2_0_0/models/ApplicationReplaced_impl_ari_2_0_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_2_0_0/models/ApplicationReplaced_impl_ari_2_0_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Sat Feb 04 15:23:09 CET 2017 +// Generated on: Tue Dec 19 09:55:49 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_2_0_0/models/Application_impl_ari_2_0_0.java b/classes/ch/loway/oss/ari4java/generated/ari_2_0_0/models/Application_impl_ari_2_0_0.java index 14c9e451..00864a46 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_2_0_0/models/Application_impl_ari_2_0_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_2_0_0/models/Application_impl_ari_2_0_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Sat Feb 04 15:23:09 CET 2017 +// Generated on: Tue Dec 19 09:55:49 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_2_0_0/models/AsteriskInfo_impl_ari_2_0_0.java b/classes/ch/loway/oss/ari4java/generated/ari_2_0_0/models/AsteriskInfo_impl_ari_2_0_0.java index a939244e..f2da8b0a 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_2_0_0/models/AsteriskInfo_impl_ari_2_0_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_2_0_0/models/AsteriskInfo_impl_ari_2_0_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Sat Feb 04 15:23:09 CET 2017 +// Generated on: Tue Dec 19 09:55:49 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_2_0_0/models/BridgeAttendedTransfer_impl_ari_2_0_0.java b/classes/ch/loway/oss/ari4java/generated/ari_2_0_0/models/BridgeAttendedTransfer_impl_ari_2_0_0.java index 720c79bb..94bf45f3 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_2_0_0/models/BridgeAttendedTransfer_impl_ari_2_0_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_2_0_0/models/BridgeAttendedTransfer_impl_ari_2_0_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Sat Feb 04 15:23:09 CET 2017 +// Generated on: Tue Dec 19 09:55:49 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_2_0_0/models/BridgeBlindTransfer_impl_ari_2_0_0.java b/classes/ch/loway/oss/ari4java/generated/ari_2_0_0/models/BridgeBlindTransfer_impl_ari_2_0_0.java index 2b517e98..99b87e69 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_2_0_0/models/BridgeBlindTransfer_impl_ari_2_0_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_2_0_0/models/BridgeBlindTransfer_impl_ari_2_0_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Sat Feb 04 15:23:09 CET 2017 +// Generated on: Tue Dec 19 09:55:49 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_2_0_0/models/BridgeCreated_impl_ari_2_0_0.java b/classes/ch/loway/oss/ari4java/generated/ari_2_0_0/models/BridgeCreated_impl_ari_2_0_0.java index 02b35c29..f27cbfd6 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_2_0_0/models/BridgeCreated_impl_ari_2_0_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_2_0_0/models/BridgeCreated_impl_ari_2_0_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Sat Feb 04 15:23:09 CET 2017 +// Generated on: Tue Dec 19 09:55:49 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_2_0_0/models/BridgeDestroyed_impl_ari_2_0_0.java b/classes/ch/loway/oss/ari4java/generated/ari_2_0_0/models/BridgeDestroyed_impl_ari_2_0_0.java index 3db3d17a..1f810898 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_2_0_0/models/BridgeDestroyed_impl_ari_2_0_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_2_0_0/models/BridgeDestroyed_impl_ari_2_0_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Sat Feb 04 15:23:09 CET 2017 +// Generated on: Tue Dec 19 09:55:49 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_2_0_0/models/BridgeMerged_impl_ari_2_0_0.java b/classes/ch/loway/oss/ari4java/generated/ari_2_0_0/models/BridgeMerged_impl_ari_2_0_0.java index ba724453..6f246a6b 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_2_0_0/models/BridgeMerged_impl_ari_2_0_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_2_0_0/models/BridgeMerged_impl_ari_2_0_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Sat Feb 04 15:23:09 CET 2017 +// Generated on: Tue Dec 19 09:55:49 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_2_0_0/models/BridgeVideoSourceChanged_impl_ari_2_0_0.java b/classes/ch/loway/oss/ari4java/generated/ari_2_0_0/models/BridgeVideoSourceChanged_impl_ari_2_0_0.java index 1575c7db..0e2cb824 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_2_0_0/models/BridgeVideoSourceChanged_impl_ari_2_0_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_2_0_0/models/BridgeVideoSourceChanged_impl_ari_2_0_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Sat Feb 04 15:23:09 CET 2017 +// Generated on: Tue Dec 19 09:55:49 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_2_0_0/models/Bridge_impl_ari_2_0_0.java b/classes/ch/loway/oss/ari4java/generated/ari_2_0_0/models/Bridge_impl_ari_2_0_0.java index e8cd29c6..f4a0ae98 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_2_0_0/models/Bridge_impl_ari_2_0_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_2_0_0/models/Bridge_impl_ari_2_0_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Sat Feb 04 15:23:09 CET 2017 +// Generated on: Tue Dec 19 09:55:49 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_2_0_0/models/BuildInfo_impl_ari_2_0_0.java b/classes/ch/loway/oss/ari4java/generated/ari_2_0_0/models/BuildInfo_impl_ari_2_0_0.java index 7acdc847..443316be 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_2_0_0/models/BuildInfo_impl_ari_2_0_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_2_0_0/models/BuildInfo_impl_ari_2_0_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Sat Feb 04 15:23:09 CET 2017 +// Generated on: Tue Dec 19 09:55:49 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_2_0_0/models/CallerID_impl_ari_2_0_0.java b/classes/ch/loway/oss/ari4java/generated/ari_2_0_0/models/CallerID_impl_ari_2_0_0.java index 25ae03d4..6c036e7e 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_2_0_0/models/CallerID_impl_ari_2_0_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_2_0_0/models/CallerID_impl_ari_2_0_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Sat Feb 04 15:23:09 CET 2017 +// Generated on: Tue Dec 19 09:55:49 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_2_0_0/models/ChannelCallerId_impl_ari_2_0_0.java b/classes/ch/loway/oss/ari4java/generated/ari_2_0_0/models/ChannelCallerId_impl_ari_2_0_0.java index c99d2ec1..983d587f 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_2_0_0/models/ChannelCallerId_impl_ari_2_0_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_2_0_0/models/ChannelCallerId_impl_ari_2_0_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Sat Feb 04 15:23:09 CET 2017 +// Generated on: Tue Dec 19 09:55:49 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_2_0_0/models/ChannelConnectedLine_impl_ari_2_0_0.java b/classes/ch/loway/oss/ari4java/generated/ari_2_0_0/models/ChannelConnectedLine_impl_ari_2_0_0.java index 8cfbfca7..5293b551 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_2_0_0/models/ChannelConnectedLine_impl_ari_2_0_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_2_0_0/models/ChannelConnectedLine_impl_ari_2_0_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Sat Feb 04 15:23:09 CET 2017 +// Generated on: Tue Dec 19 09:55:49 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_2_0_0/models/ChannelCreated_impl_ari_2_0_0.java b/classes/ch/loway/oss/ari4java/generated/ari_2_0_0/models/ChannelCreated_impl_ari_2_0_0.java index 07057cd1..1e5ea71d 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_2_0_0/models/ChannelCreated_impl_ari_2_0_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_2_0_0/models/ChannelCreated_impl_ari_2_0_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Sat Feb 04 15:23:09 CET 2017 +// Generated on: Tue Dec 19 09:55:49 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_2_0_0/models/ChannelDestroyed_impl_ari_2_0_0.java b/classes/ch/loway/oss/ari4java/generated/ari_2_0_0/models/ChannelDestroyed_impl_ari_2_0_0.java index 84af817f..8dc8375e 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_2_0_0/models/ChannelDestroyed_impl_ari_2_0_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_2_0_0/models/ChannelDestroyed_impl_ari_2_0_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Sat Feb 04 15:23:09 CET 2017 +// Generated on: Tue Dec 19 09:55:49 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_2_0_0/models/ChannelDialplan_impl_ari_2_0_0.java b/classes/ch/loway/oss/ari4java/generated/ari_2_0_0/models/ChannelDialplan_impl_ari_2_0_0.java index 16e27ca4..f1ad2380 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_2_0_0/models/ChannelDialplan_impl_ari_2_0_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_2_0_0/models/ChannelDialplan_impl_ari_2_0_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Sat Feb 04 15:23:09 CET 2017 +// Generated on: Tue Dec 19 09:55:49 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_2_0_0/models/ChannelDtmfReceived_impl_ari_2_0_0.java b/classes/ch/loway/oss/ari4java/generated/ari_2_0_0/models/ChannelDtmfReceived_impl_ari_2_0_0.java index dd10edab..27ae811f 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_2_0_0/models/ChannelDtmfReceived_impl_ari_2_0_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_2_0_0/models/ChannelDtmfReceived_impl_ari_2_0_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Sat Feb 04 15:23:09 CET 2017 +// Generated on: Tue Dec 19 09:55:49 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_2_0_0/models/ChannelEnteredBridge_impl_ari_2_0_0.java b/classes/ch/loway/oss/ari4java/generated/ari_2_0_0/models/ChannelEnteredBridge_impl_ari_2_0_0.java index c8816e6f..7814a0a2 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_2_0_0/models/ChannelEnteredBridge_impl_ari_2_0_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_2_0_0/models/ChannelEnteredBridge_impl_ari_2_0_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Sat Feb 04 15:23:09 CET 2017 +// Generated on: Tue Dec 19 09:55:49 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_2_0_0/models/ChannelHangupRequest_impl_ari_2_0_0.java b/classes/ch/loway/oss/ari4java/generated/ari_2_0_0/models/ChannelHangupRequest_impl_ari_2_0_0.java index de6a6b12..451b080f 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_2_0_0/models/ChannelHangupRequest_impl_ari_2_0_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_2_0_0/models/ChannelHangupRequest_impl_ari_2_0_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Sat Feb 04 15:23:09 CET 2017 +// Generated on: Tue Dec 19 09:55:49 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_2_0_0/models/ChannelHold_impl_ari_2_0_0.java b/classes/ch/loway/oss/ari4java/generated/ari_2_0_0/models/ChannelHold_impl_ari_2_0_0.java index a2f49147..afd6dff5 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_2_0_0/models/ChannelHold_impl_ari_2_0_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_2_0_0/models/ChannelHold_impl_ari_2_0_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Sat Feb 04 15:23:09 CET 2017 +// Generated on: Tue Dec 19 09:55:49 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_2_0_0/models/ChannelLeftBridge_impl_ari_2_0_0.java b/classes/ch/loway/oss/ari4java/generated/ari_2_0_0/models/ChannelLeftBridge_impl_ari_2_0_0.java index d8ee3cbd..24412422 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_2_0_0/models/ChannelLeftBridge_impl_ari_2_0_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_2_0_0/models/ChannelLeftBridge_impl_ari_2_0_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Sat Feb 04 15:23:09 CET 2017 +// Generated on: Tue Dec 19 09:55:49 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_2_0_0/models/ChannelStateChange_impl_ari_2_0_0.java b/classes/ch/loway/oss/ari4java/generated/ari_2_0_0/models/ChannelStateChange_impl_ari_2_0_0.java index 6ad72677..86acf945 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_2_0_0/models/ChannelStateChange_impl_ari_2_0_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_2_0_0/models/ChannelStateChange_impl_ari_2_0_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Sat Feb 04 15:23:09 CET 2017 +// Generated on: Tue Dec 19 09:55:49 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_2_0_0/models/ChannelTalkingFinished_impl_ari_2_0_0.java b/classes/ch/loway/oss/ari4java/generated/ari_2_0_0/models/ChannelTalkingFinished_impl_ari_2_0_0.java index d85ee5d8..b55fb042 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_2_0_0/models/ChannelTalkingFinished_impl_ari_2_0_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_2_0_0/models/ChannelTalkingFinished_impl_ari_2_0_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Sat Feb 04 15:23:09 CET 2017 +// Generated on: Tue Dec 19 09:55:49 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_2_0_0/models/ChannelTalkingStarted_impl_ari_2_0_0.java b/classes/ch/loway/oss/ari4java/generated/ari_2_0_0/models/ChannelTalkingStarted_impl_ari_2_0_0.java index bd239a20..6b15b4cc 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_2_0_0/models/ChannelTalkingStarted_impl_ari_2_0_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_2_0_0/models/ChannelTalkingStarted_impl_ari_2_0_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Sat Feb 04 15:23:09 CET 2017 +// Generated on: Tue Dec 19 09:55:49 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_2_0_0/models/ChannelUnhold_impl_ari_2_0_0.java b/classes/ch/loway/oss/ari4java/generated/ari_2_0_0/models/ChannelUnhold_impl_ari_2_0_0.java index bd94082a..8997496a 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_2_0_0/models/ChannelUnhold_impl_ari_2_0_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_2_0_0/models/ChannelUnhold_impl_ari_2_0_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Sat Feb 04 15:23:09 CET 2017 +// Generated on: Tue Dec 19 09:55:49 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_2_0_0/models/ChannelUserevent_impl_ari_2_0_0.java b/classes/ch/loway/oss/ari4java/generated/ari_2_0_0/models/ChannelUserevent_impl_ari_2_0_0.java index c62426d1..9afc9e99 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_2_0_0/models/ChannelUserevent_impl_ari_2_0_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_2_0_0/models/ChannelUserevent_impl_ari_2_0_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Sat Feb 04 15:23:09 CET 2017 +// Generated on: Tue Dec 19 09:55:49 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_2_0_0/models/ChannelVarset_impl_ari_2_0_0.java b/classes/ch/loway/oss/ari4java/generated/ari_2_0_0/models/ChannelVarset_impl_ari_2_0_0.java index db272a6e..2652ccfa 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_2_0_0/models/ChannelVarset_impl_ari_2_0_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_2_0_0/models/ChannelVarset_impl_ari_2_0_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Sat Feb 04 15:23:09 CET 2017 +// Generated on: Tue Dec 19 09:55:49 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_2_0_0/models/Channel_impl_ari_2_0_0.java b/classes/ch/loway/oss/ari4java/generated/ari_2_0_0/models/Channel_impl_ari_2_0_0.java index a86c9201..17acb081 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_2_0_0/models/Channel_impl_ari_2_0_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_2_0_0/models/Channel_impl_ari_2_0_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Sat Feb 04 15:23:09 CET 2017 +// Generated on: Tue Dec 19 09:55:49 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_2_0_0/models/ConfigInfo_impl_ari_2_0_0.java b/classes/ch/loway/oss/ari4java/generated/ari_2_0_0/models/ConfigInfo_impl_ari_2_0_0.java index de46575a..83eb401b 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_2_0_0/models/ConfigInfo_impl_ari_2_0_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_2_0_0/models/ConfigInfo_impl_ari_2_0_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Sat Feb 04 15:23:09 CET 2017 +// Generated on: Tue Dec 19 09:55:49 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_2_0_0/models/ConfigTuple_impl_ari_2_0_0.java b/classes/ch/loway/oss/ari4java/generated/ari_2_0_0/models/ConfigTuple_impl_ari_2_0_0.java index acda06c7..d8487c2b 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_2_0_0/models/ConfigTuple_impl_ari_2_0_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_2_0_0/models/ConfigTuple_impl_ari_2_0_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Sat Feb 04 15:23:09 CET 2017 +// Generated on: Tue Dec 19 09:55:49 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_2_0_0/models/ContactInfo_impl_ari_2_0_0.java b/classes/ch/loway/oss/ari4java/generated/ari_2_0_0/models/ContactInfo_impl_ari_2_0_0.java index 7c0221c0..ffb7fe1a 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_2_0_0/models/ContactInfo_impl_ari_2_0_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_2_0_0/models/ContactInfo_impl_ari_2_0_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Sat Feb 04 15:23:09 CET 2017 +// Generated on: Tue Dec 19 09:55:49 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_2_0_0/models/ContactStatusChange_impl_ari_2_0_0.java b/classes/ch/loway/oss/ari4java/generated/ari_2_0_0/models/ContactStatusChange_impl_ari_2_0_0.java index 43dea76c..3d02231f 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_2_0_0/models/ContactStatusChange_impl_ari_2_0_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_2_0_0/models/ContactStatusChange_impl_ari_2_0_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Sat Feb 04 15:23:09 CET 2017 +// Generated on: Tue Dec 19 09:55:49 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_2_0_0/models/DeviceStateChanged_impl_ari_2_0_0.java b/classes/ch/loway/oss/ari4java/generated/ari_2_0_0/models/DeviceStateChanged_impl_ari_2_0_0.java index 8b32efbf..b48c30fd 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_2_0_0/models/DeviceStateChanged_impl_ari_2_0_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_2_0_0/models/DeviceStateChanged_impl_ari_2_0_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Sat Feb 04 15:23:09 CET 2017 +// Generated on: Tue Dec 19 09:55:49 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_2_0_0/models/DeviceState_impl_ari_2_0_0.java b/classes/ch/loway/oss/ari4java/generated/ari_2_0_0/models/DeviceState_impl_ari_2_0_0.java index ad3ee3e2..7f39a1be 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_2_0_0/models/DeviceState_impl_ari_2_0_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_2_0_0/models/DeviceState_impl_ari_2_0_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Sat Feb 04 15:23:09 CET 2017 +// Generated on: Tue Dec 19 09:55:49 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_2_0_0/models/Dial_impl_ari_2_0_0.java b/classes/ch/loway/oss/ari4java/generated/ari_2_0_0/models/Dial_impl_ari_2_0_0.java index 36d05d4f..8a4b8e3b 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_2_0_0/models/Dial_impl_ari_2_0_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_2_0_0/models/Dial_impl_ari_2_0_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Sat Feb 04 15:23:09 CET 2017 +// Generated on: Tue Dec 19 09:55:49 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_2_0_0/models/Dialed_impl_ari_2_0_0.java b/classes/ch/loway/oss/ari4java/generated/ari_2_0_0/models/Dialed_impl_ari_2_0_0.java index 0b0e3a5a..39ca64d5 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_2_0_0/models/Dialed_impl_ari_2_0_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_2_0_0/models/Dialed_impl_ari_2_0_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Sat Feb 04 15:23:09 CET 2017 +// Generated on: Tue Dec 19 09:55:49 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_2_0_0/models/DialplanCEP_impl_ari_2_0_0.java b/classes/ch/loway/oss/ari4java/generated/ari_2_0_0/models/DialplanCEP_impl_ari_2_0_0.java index 62c544bb..1d794d7c 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_2_0_0/models/DialplanCEP_impl_ari_2_0_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_2_0_0/models/DialplanCEP_impl_ari_2_0_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Sat Feb 04 15:23:09 CET 2017 +// Generated on: Tue Dec 19 09:55:49 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_2_0_0/models/EndpointStateChange_impl_ari_2_0_0.java b/classes/ch/loway/oss/ari4java/generated/ari_2_0_0/models/EndpointStateChange_impl_ari_2_0_0.java index f229b1cf..c230cacf 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_2_0_0/models/EndpointStateChange_impl_ari_2_0_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_2_0_0/models/EndpointStateChange_impl_ari_2_0_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Sat Feb 04 15:23:09 CET 2017 +// Generated on: Tue Dec 19 09:55:49 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_2_0_0/models/Endpoint_impl_ari_2_0_0.java b/classes/ch/loway/oss/ari4java/generated/ari_2_0_0/models/Endpoint_impl_ari_2_0_0.java index 8cba300c..c5d081da 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_2_0_0/models/Endpoint_impl_ari_2_0_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_2_0_0/models/Endpoint_impl_ari_2_0_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Sat Feb 04 15:23:09 CET 2017 +// Generated on: Tue Dec 19 09:55:49 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_2_0_0/models/Event_impl_ari_2_0_0.java b/classes/ch/loway/oss/ari4java/generated/ari_2_0_0/models/Event_impl_ari_2_0_0.java index 5b7635c4..ddc6bab5 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_2_0_0/models/Event_impl_ari_2_0_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_2_0_0/models/Event_impl_ari_2_0_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Sat Feb 04 15:23:09 CET 2017 +// Generated on: Tue Dec 19 09:55:49 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_2_0_0/models/FormatLangPair_impl_ari_2_0_0.java b/classes/ch/loway/oss/ari4java/generated/ari_2_0_0/models/FormatLangPair_impl_ari_2_0_0.java index 405cfe73..051b69df 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_2_0_0/models/FormatLangPair_impl_ari_2_0_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_2_0_0/models/FormatLangPair_impl_ari_2_0_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Sat Feb 04 15:23:09 CET 2017 +// Generated on: Tue Dec 19 09:55:49 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_2_0_0/models/LiveRecording_impl_ari_2_0_0.java b/classes/ch/loway/oss/ari4java/generated/ari_2_0_0/models/LiveRecording_impl_ari_2_0_0.java index 5da4beed..fd8711f4 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_2_0_0/models/LiveRecording_impl_ari_2_0_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_2_0_0/models/LiveRecording_impl_ari_2_0_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Sat Feb 04 15:23:09 CET 2017 +// Generated on: Tue Dec 19 09:55:49 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_2_0_0/models/LogChannel_impl_ari_2_0_0.java b/classes/ch/loway/oss/ari4java/generated/ari_2_0_0/models/LogChannel_impl_ari_2_0_0.java index b63350d4..0307c325 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_2_0_0/models/LogChannel_impl_ari_2_0_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_2_0_0/models/LogChannel_impl_ari_2_0_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Sat Feb 04 15:23:09 CET 2017 +// Generated on: Tue Dec 19 09:55:49 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_2_0_0/models/Message_impl_ari_2_0_0.java b/classes/ch/loway/oss/ari4java/generated/ari_2_0_0/models/Message_impl_ari_2_0_0.java index 8f1eb4fa..6c4639f6 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_2_0_0/models/Message_impl_ari_2_0_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_2_0_0/models/Message_impl_ari_2_0_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Sat Feb 04 15:23:09 CET 2017 +// Generated on: Tue Dec 19 09:55:49 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_2_0_0/models/MissingParams_impl_ari_2_0_0.java b/classes/ch/loway/oss/ari4java/generated/ari_2_0_0/models/MissingParams_impl_ari_2_0_0.java index a142abae..79ebbce9 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_2_0_0/models/MissingParams_impl_ari_2_0_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_2_0_0/models/MissingParams_impl_ari_2_0_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Sat Feb 04 15:23:09 CET 2017 +// Generated on: Tue Dec 19 09:55:49 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_2_0_0/models/Module_impl_ari_2_0_0.java b/classes/ch/loway/oss/ari4java/generated/ari_2_0_0/models/Module_impl_ari_2_0_0.java index 85ab88fd..b042405a 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_2_0_0/models/Module_impl_ari_2_0_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_2_0_0/models/Module_impl_ari_2_0_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Sat Feb 04 15:23:09 CET 2017 +// Generated on: Tue Dec 19 09:55:49 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_2_0_0/models/PeerStatusChange_impl_ari_2_0_0.java b/classes/ch/loway/oss/ari4java/generated/ari_2_0_0/models/PeerStatusChange_impl_ari_2_0_0.java index 0038db0c..b9f0c5fe 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_2_0_0/models/PeerStatusChange_impl_ari_2_0_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_2_0_0/models/PeerStatusChange_impl_ari_2_0_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Sat Feb 04 15:23:09 CET 2017 +// Generated on: Tue Dec 19 09:55:49 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_2_0_0/models/Peer_impl_ari_2_0_0.java b/classes/ch/loway/oss/ari4java/generated/ari_2_0_0/models/Peer_impl_ari_2_0_0.java index 17390fbd..ed36db31 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_2_0_0/models/Peer_impl_ari_2_0_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_2_0_0/models/Peer_impl_ari_2_0_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Sat Feb 04 15:23:09 CET 2017 +// Generated on: Tue Dec 19 09:55:49 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_2_0_0/models/PlaybackContinuing_impl_ari_2_0_0.java b/classes/ch/loway/oss/ari4java/generated/ari_2_0_0/models/PlaybackContinuing_impl_ari_2_0_0.java index 646d544d..cf59df1c 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_2_0_0/models/PlaybackContinuing_impl_ari_2_0_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_2_0_0/models/PlaybackContinuing_impl_ari_2_0_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Sat Feb 04 15:23:09 CET 2017 +// Generated on: Tue Dec 19 09:55:49 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_2_0_0/models/PlaybackFinished_impl_ari_2_0_0.java b/classes/ch/loway/oss/ari4java/generated/ari_2_0_0/models/PlaybackFinished_impl_ari_2_0_0.java index 3e75f423..ea7c36df 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_2_0_0/models/PlaybackFinished_impl_ari_2_0_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_2_0_0/models/PlaybackFinished_impl_ari_2_0_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Sat Feb 04 15:23:09 CET 2017 +// Generated on: Tue Dec 19 09:55:49 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_2_0_0/models/PlaybackStarted_impl_ari_2_0_0.java b/classes/ch/loway/oss/ari4java/generated/ari_2_0_0/models/PlaybackStarted_impl_ari_2_0_0.java index f38131b0..6c13f6f8 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_2_0_0/models/PlaybackStarted_impl_ari_2_0_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_2_0_0/models/PlaybackStarted_impl_ari_2_0_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Sat Feb 04 15:23:09 CET 2017 +// Generated on: Tue Dec 19 09:55:49 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_2_0_0/models/Playback_impl_ari_2_0_0.java b/classes/ch/loway/oss/ari4java/generated/ari_2_0_0/models/Playback_impl_ari_2_0_0.java index 6ef4779e..4a66d75a 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_2_0_0/models/Playback_impl_ari_2_0_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_2_0_0/models/Playback_impl_ari_2_0_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Sat Feb 04 15:23:09 CET 2017 +// Generated on: Tue Dec 19 09:55:49 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_2_0_0/models/RecordingFailed_impl_ari_2_0_0.java b/classes/ch/loway/oss/ari4java/generated/ari_2_0_0/models/RecordingFailed_impl_ari_2_0_0.java index ec49fe27..b50333e7 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_2_0_0/models/RecordingFailed_impl_ari_2_0_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_2_0_0/models/RecordingFailed_impl_ari_2_0_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Sat Feb 04 15:23:09 CET 2017 +// Generated on: Tue Dec 19 09:55:49 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_2_0_0/models/RecordingFinished_impl_ari_2_0_0.java b/classes/ch/loway/oss/ari4java/generated/ari_2_0_0/models/RecordingFinished_impl_ari_2_0_0.java index f8ae5e38..ce3c4696 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_2_0_0/models/RecordingFinished_impl_ari_2_0_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_2_0_0/models/RecordingFinished_impl_ari_2_0_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Sat Feb 04 15:23:09 CET 2017 +// Generated on: Tue Dec 19 09:55:49 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_2_0_0/models/RecordingStarted_impl_ari_2_0_0.java b/classes/ch/loway/oss/ari4java/generated/ari_2_0_0/models/RecordingStarted_impl_ari_2_0_0.java index 64633975..2647a3f1 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_2_0_0/models/RecordingStarted_impl_ari_2_0_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_2_0_0/models/RecordingStarted_impl_ari_2_0_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Sat Feb 04 15:23:09 CET 2017 +// Generated on: Tue Dec 19 09:55:49 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_2_0_0/models/SetId_impl_ari_2_0_0.java b/classes/ch/loway/oss/ari4java/generated/ari_2_0_0/models/SetId_impl_ari_2_0_0.java index d1347f47..f3711763 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_2_0_0/models/SetId_impl_ari_2_0_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_2_0_0/models/SetId_impl_ari_2_0_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Sat Feb 04 15:23:09 CET 2017 +// Generated on: Tue Dec 19 09:55:49 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_2_0_0/models/Sound_impl_ari_2_0_0.java b/classes/ch/loway/oss/ari4java/generated/ari_2_0_0/models/Sound_impl_ari_2_0_0.java index 674468fd..8c846a58 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_2_0_0/models/Sound_impl_ari_2_0_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_2_0_0/models/Sound_impl_ari_2_0_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Sat Feb 04 15:23:09 CET 2017 +// Generated on: Tue Dec 19 09:55:49 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_2_0_0/models/StasisEnd_impl_ari_2_0_0.java b/classes/ch/loway/oss/ari4java/generated/ari_2_0_0/models/StasisEnd_impl_ari_2_0_0.java index a725005b..d5385b82 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_2_0_0/models/StasisEnd_impl_ari_2_0_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_2_0_0/models/StasisEnd_impl_ari_2_0_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Sat Feb 04 15:23:09 CET 2017 +// Generated on: Tue Dec 19 09:55:49 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_2_0_0/models/StasisStart_impl_ari_2_0_0.java b/classes/ch/loway/oss/ari4java/generated/ari_2_0_0/models/StasisStart_impl_ari_2_0_0.java index 7bc6befa..484d6e4a 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_2_0_0/models/StasisStart_impl_ari_2_0_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_2_0_0/models/StasisStart_impl_ari_2_0_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Sat Feb 04 15:23:09 CET 2017 +// Generated on: Tue Dec 19 09:55:49 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_2_0_0/models/StatusInfo_impl_ari_2_0_0.java b/classes/ch/loway/oss/ari4java/generated/ari_2_0_0/models/StatusInfo_impl_ari_2_0_0.java index fa664f85..91eb5a9d 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_2_0_0/models/StatusInfo_impl_ari_2_0_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_2_0_0/models/StatusInfo_impl_ari_2_0_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Sat Feb 04 15:23:09 CET 2017 +// Generated on: Tue Dec 19 09:55:49 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_2_0_0/models/StoredRecording_impl_ari_2_0_0.java b/classes/ch/loway/oss/ari4java/generated/ari_2_0_0/models/StoredRecording_impl_ari_2_0_0.java index c8474f1a..4f0b68ce 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_2_0_0/models/StoredRecording_impl_ari_2_0_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_2_0_0/models/StoredRecording_impl_ari_2_0_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Sat Feb 04 15:23:09 CET 2017 +// Generated on: Tue Dec 19 09:55:49 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_2_0_0/models/SystemInfo_impl_ari_2_0_0.java b/classes/ch/loway/oss/ari4java/generated/ari_2_0_0/models/SystemInfo_impl_ari_2_0_0.java index 3d1cc900..6e096293 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_2_0_0/models/SystemInfo_impl_ari_2_0_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_2_0_0/models/SystemInfo_impl_ari_2_0_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Sat Feb 04 15:23:09 CET 2017 +// Generated on: Tue Dec 19 09:55:49 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_2_0_0/models/TextMessageReceived_impl_ari_2_0_0.java b/classes/ch/loway/oss/ari4java/generated/ari_2_0_0/models/TextMessageReceived_impl_ari_2_0_0.java index bcefcf6d..c2090ad6 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_2_0_0/models/TextMessageReceived_impl_ari_2_0_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_2_0_0/models/TextMessageReceived_impl_ari_2_0_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Sat Feb 04 15:23:09 CET 2017 +// Generated on: Tue Dec 19 09:55:49 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_2_0_0/models/TextMessageVariable_impl_ari_2_0_0.java b/classes/ch/loway/oss/ari4java/generated/ari_2_0_0/models/TextMessageVariable_impl_ari_2_0_0.java index 70b2e397..c59ad796 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_2_0_0/models/TextMessageVariable_impl_ari_2_0_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_2_0_0/models/TextMessageVariable_impl_ari_2_0_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Sat Feb 04 15:23:09 CET 2017 +// Generated on: Tue Dec 19 09:55:49 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_2_0_0/models/TextMessage_impl_ari_2_0_0.java b/classes/ch/loway/oss/ari4java/generated/ari_2_0_0/models/TextMessage_impl_ari_2_0_0.java index 446cc714..cf0c8a0c 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_2_0_0/models/TextMessage_impl_ari_2_0_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_2_0_0/models/TextMessage_impl_ari_2_0_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Sat Feb 04 15:23:09 CET 2017 +// Generated on: Tue Dec 19 09:55:49 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_2_0_0/models/Variable_impl_ari_2_0_0.java b/classes/ch/loway/oss/ari4java/generated/ari_2_0_0/models/Variable_impl_ari_2_0_0.java index 56f7a671..13ee4d8a 100644 --- a/classes/ch/loway/oss/ari4java/generated/ari_2_0_0/models/Variable_impl_ari_2_0_0.java +++ b/classes/ch/loway/oss/ari4java/generated/ari_2_0_0/models/Variable_impl_ari_2_0_0.java @@ -3,7 +3,7 @@ // ---------------------------------------------------- // THIS CLASS WAS GENERATED AUTOMATICALLY // PLEASE DO NOT EDIT -// Generated on: Sat Feb 04 15:23:09 CET 2017 +// Generated on: Tue Dec 19 09:55:49 CET 2017 // ---------------------------------------------------- import ch.loway.oss.ari4java.generated.*; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_3_0_0/AriBuilder_impl_ari_3_0_0.java b/classes/ch/loway/oss/ari4java/generated/ari_3_0_0/AriBuilder_impl_ari_3_0_0.java new file mode 100644 index 00000000..08e4fc2a --- /dev/null +++ b/classes/ch/loway/oss/ari4java/generated/ari_3_0_0/AriBuilder_impl_ari_3_0_0.java @@ -0,0 +1,328 @@ +package ch.loway.oss.ari4java.generated.ari_3_0_0; + +// ---------------------------------------------------- +// THIS CLASS WAS GENERATED AUTOMATICALLY +// PLEASE DO NOT EDIT +// Generated on: Tue Dec 19 09:55:50 CET 2017 +// ---------------------------------------------------- + +import ch.loway.oss.ari4java.generated.ari_3_0_0.models.*; +import ch.loway.oss.ari4java.generated.ari_3_0_0.actions.*; +import ch.loway.oss.ari4java.generated.*; +import ch.loway.oss.ari4java.ARI; + +public class AriBuilder_impl_ari_3_0_0 implements AriBuilder { + +public ActionApplications actionApplications() { + return new ActionApplications_impl_ari_3_0_0(); + }; + +public ActionPlaybacks actionPlaybacks() { + return new ActionPlaybacks_impl_ari_3_0_0(); + }; + +public ActionEvents actionEvents() { + return new ActionEvents_impl_ari_3_0_0(); + }; + +public ActionRecordings actionRecordings() { + return new ActionRecordings_impl_ari_3_0_0(); + }; + +public ActionDeviceStates actionDeviceStates() { + return new ActionDeviceStates_impl_ari_3_0_0(); + }; + +public ActionChannels actionChannels() { + return new ActionChannels_impl_ari_3_0_0(); + }; + +public ActionBridges actionBridges() { + return new ActionBridges_impl_ari_3_0_0(); + }; + +public ActionEndpoints actionEndpoints() { + return new ActionEndpoints_impl_ari_3_0_0(); + }; + +public ActionSounds actionSounds() { + return new ActionSounds_impl_ari_3_0_0(); + }; + +public ActionAsterisk actionAsterisk() { + return new ActionAsterisk_impl_ari_3_0_0(); + }; + +public TextMessageVariable textMessageVariable() { + return new TextMessageVariable_impl_ari_3_0_0(); + }; + +public LiveRecording liveRecording() { + return new LiveRecording_impl_ari_3_0_0(); + }; + +public CallerID callerID() { + return new CallerID_impl_ari_3_0_0(); + }; + +public PeerStatusChange peerStatusChange() { + return new PeerStatusChange_impl_ari_3_0_0(); + }; + +public Playback playback() { + return new Playback_impl_ari_3_0_0(); + }; + +public RecordingStarted recordingStarted() { + return new RecordingStarted_impl_ari_3_0_0(); + }; + +public BridgeBlindTransfer bridgeBlindTransfer() { + return new BridgeBlindTransfer_impl_ari_3_0_0(); + }; + +public SetId setId() { + return new SetId_impl_ari_3_0_0(); + }; + +public Dialed dialed() { + return new Dialed_impl_ari_3_0_0(); + }; + +public Sound sound() { + return new Sound_impl_ari_3_0_0(); + }; + +public BridgeVideoSourceChanged bridgeVideoSourceChanged() { + return new BridgeVideoSourceChanged_impl_ari_3_0_0(); + }; + +public Peer peer() { + return new Peer_impl_ari_3_0_0(); + }; + +public ChannelEnteredBridge channelEnteredBridge() { + return new ChannelEnteredBridge_impl_ari_3_0_0(); + }; + +public PlaybackStarted playbackStarted() { + return new PlaybackStarted_impl_ari_3_0_0(); + }; + +public DialplanCEP dialplanCEP() { + return new DialplanCEP_impl_ari_3_0_0(); + }; + +public RecordingFailed recordingFailed() { + return new RecordingFailed_impl_ari_3_0_0(); + }; + +public ChannelLeftBridge channelLeftBridge() { + return new ChannelLeftBridge_impl_ari_3_0_0(); + }; + +public ChannelUserevent channelUserevent() { + return new ChannelUserevent_impl_ari_3_0_0(); + }; + +public PlaybackContinuing playbackContinuing() { + return new PlaybackContinuing_impl_ari_3_0_0(); + }; + +public EndpointStateChange endpointStateChange() { + return new EndpointStateChange_impl_ari_3_0_0(); + }; + +public ChannelStateChange channelStateChange() { + return new ChannelStateChange_impl_ari_3_0_0(); + }; + +public BridgeAttendedTransfer bridgeAttendedTransfer() { + return new BridgeAttendedTransfer_impl_ari_3_0_0(); + }; + +public Module module() { + return new Module_impl_ari_3_0_0(); + }; + +public BridgeCreated bridgeCreated() { + return new BridgeCreated_impl_ari_3_0_0(); + }; + +public ChannelDialplan channelDialplan() { + return new ChannelDialplan_impl_ari_3_0_0(); + }; + +public ChannelTalkingStarted channelTalkingStarted() { + return new ChannelTalkingStarted_impl_ari_3_0_0(); + }; + +public TextMessageReceived textMessageReceived() { + return new TextMessageReceived_impl_ari_3_0_0(); + }; + +public Dial dial() { + return new Dial_impl_ari_3_0_0(); + }; + +public StasisEnd stasisEnd() { + return new StasisEnd_impl_ari_3_0_0(); + }; + +public ChannelConnectedLine channelConnectedLine() { + return new ChannelConnectedLine_impl_ari_3_0_0(); + }; + +public BridgeDestroyed bridgeDestroyed() { + return new BridgeDestroyed_impl_ari_3_0_0(); + }; + +public ConfigTuple configTuple() { + return new ConfigTuple_impl_ari_3_0_0(); + }; + +public Message message() { + return new Message_impl_ari_3_0_0(); + }; + +public ChannelDestroyed channelDestroyed() { + return new ChannelDestroyed_impl_ari_3_0_0(); + }; + +public ContactInfo contactInfo() { + return new ContactInfo_impl_ari_3_0_0(); + }; + +public ChannelCreated channelCreated() { + return new ChannelCreated_impl_ari_3_0_0(); + }; + +public ChannelHold channelHold() { + return new ChannelHold_impl_ari_3_0_0(); + }; + +public ChannelDtmfReceived channelDtmfReceived() { + return new ChannelDtmfReceived_impl_ari_3_0_0(); + }; + +public ChannelVarset channelVarset() { + return new ChannelVarset_impl_ari_3_0_0(); + }; + +public SystemInfo systemInfo() { + return new SystemInfo_impl_ari_3_0_0(); + }; + +public ConfigInfo configInfo() { + return new ConfigInfo_impl_ari_3_0_0(); + }; + +public ChannelUnhold channelUnhold() { + return new ChannelUnhold_impl_ari_3_0_0(); + }; + +public StasisStart stasisStart() { + return new StasisStart_impl_ari_3_0_0(); + }; + +public Channel channel() { + return new Channel_impl_ari_3_0_0(); + }; + +public MissingParams missingParams() { + return new MissingParams_impl_ari_3_0_0(); + }; + +public Event event() { + return new Event_impl_ari_3_0_0(); + }; + +public LogChannel logChannel() { + return new LogChannel_impl_ari_3_0_0(); + }; + +public RecordingFinished recordingFinished() { + return new RecordingFinished_impl_ari_3_0_0(); + }; + +public ChannelTalkingFinished channelTalkingFinished() { + return new ChannelTalkingFinished_impl_ari_3_0_0(); + }; + +public BuildInfo buildInfo() { + return new BuildInfo_impl_ari_3_0_0(); + }; + +public FormatLangPair formatLangPair() { + return new FormatLangPair_impl_ari_3_0_0(); + }; + +public BridgeMerged bridgeMerged() { + return new BridgeMerged_impl_ari_3_0_0(); + }; + +public Application application() { + return new Application_impl_ari_3_0_0(); + }; + +public TextMessage textMessage() { + return new TextMessage_impl_ari_3_0_0(); + }; + +public ContactStatusChange contactStatusChange() { + return new ContactStatusChange_impl_ari_3_0_0(); + }; + +public DeviceState deviceState() { + return new DeviceState_impl_ari_3_0_0(); + }; + +public DeviceStateChanged deviceStateChanged() { + return new DeviceStateChanged_impl_ari_3_0_0(); + }; + +public ChannelHangupRequest channelHangupRequest() { + return new ChannelHangupRequest_impl_ari_3_0_0(); + }; + +public Endpoint endpoint() { + return new Endpoint_impl_ari_3_0_0(); + }; + +public AsteriskInfo asteriskInfo() { + return new AsteriskInfo_impl_ari_3_0_0(); + }; + +public StoredRecording storedRecording() { + return new StoredRecording_impl_ari_3_0_0(); + }; + +public PlaybackFinished playbackFinished() { + return new PlaybackFinished_impl_ari_3_0_0(); + }; + +public StatusInfo statusInfo() { + return new StatusInfo_impl_ari_3_0_0(); + }; + +public ApplicationReplaced applicationReplaced() { + return new ApplicationReplaced_impl_ari_3_0_0(); + }; + +public ChannelCallerId channelCallerId() { + return new ChannelCallerId_impl_ari_3_0_0(); + }; + +public Variable variable() { + return new Variable_impl_ari_3_0_0(); + }; + +public Bridge bridge() { + return new Bridge_impl_ari_3_0_0(); + }; + +public ARI.ClassFactory getClassFactory() { + return new ClassTranslator_impl_ari_3_0_0(); +}; + +}; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_3_0_0/ClassTranslator_impl_ari_3_0_0.java b/classes/ch/loway/oss/ari4java/generated/ari_3_0_0/ClassTranslator_impl_ari_3_0_0.java new file mode 100644 index 00000000..8a825ffc --- /dev/null +++ b/classes/ch/loway/oss/ari4java/generated/ari_3_0_0/ClassTranslator_impl_ari_3_0_0.java @@ -0,0 +1,335 @@ +package ch.loway.oss.ari4java.generated.ari_3_0_0; + +// ---------------------------------------------------- +// THIS CLASS WAS GENERATED AUTOMATICALLY +// PLEASE DO NOT EDIT +// Generated on: Tue Dec 19 09:55:50 CET 2017 +// ---------------------------------------------------- + +import ch.loway.oss.ari4java.ARI; +import ch.loway.oss.ari4java.generated.*; +import ch.loway.oss.ari4java.generated.ari_3_0_0.models.*; +import ch.loway.oss.ari4java.generated.ari_3_0_0.actions.*; + +/********************************************************** + * This is a class translator. + *********************************************************/ +public class ClassTranslator_impl_ari_3_0_0 implements ARI.ClassFactory { + + @Override + public Class getImplementationFor(Class interfaceClass) { + + if ( interfaceClass.equals(ActionApplications.class) ) { + return (ActionApplications_impl_ari_3_0_0.class); + } else + + if ( interfaceClass.equals(ActionAsterisk.class) ) { + return (ActionAsterisk_impl_ari_3_0_0.class); + } else + + if ( interfaceClass.equals(ActionBridges.class) ) { + return (ActionBridges_impl_ari_3_0_0.class); + } else + + if ( interfaceClass.equals(ActionChannels.class) ) { + return (ActionChannels_impl_ari_3_0_0.class); + } else + + if ( interfaceClass.equals(ActionDeviceStates.class) ) { + return (ActionDeviceStates_impl_ari_3_0_0.class); + } else + + if ( interfaceClass.equals(ActionEndpoints.class) ) { + return (ActionEndpoints_impl_ari_3_0_0.class); + } else + + if ( interfaceClass.equals(ActionEvents.class) ) { + return (ActionEvents_impl_ari_3_0_0.class); + } else + + if ( interfaceClass.equals(ActionPlaybacks.class) ) { + return (ActionPlaybacks_impl_ari_3_0_0.class); + } else + + if ( interfaceClass.equals(ActionRecordings.class) ) { + return (ActionRecordings_impl_ari_3_0_0.class); + } else + + if ( interfaceClass.equals(ActionSounds.class) ) { + return (ActionSounds_impl_ari_3_0_0.class); + } else + + if ( interfaceClass.equals(Application.class) ) { + return (Application_impl_ari_3_0_0.class); + } else + + if ( interfaceClass.equals(ApplicationReplaced.class) ) { + return (ApplicationReplaced_impl_ari_3_0_0.class); + } else + + if ( interfaceClass.equals(AsteriskInfo.class) ) { + return (AsteriskInfo_impl_ari_3_0_0.class); + } else + + if ( interfaceClass.equals(Bridge.class) ) { + return (Bridge_impl_ari_3_0_0.class); + } else + + if ( interfaceClass.equals(BridgeAttendedTransfer.class) ) { + return (BridgeAttendedTransfer_impl_ari_3_0_0.class); + } else + + if ( interfaceClass.equals(BridgeBlindTransfer.class) ) { + return (BridgeBlindTransfer_impl_ari_3_0_0.class); + } else + + if ( interfaceClass.equals(BridgeCreated.class) ) { + return (BridgeCreated_impl_ari_3_0_0.class); + } else + + if ( interfaceClass.equals(BridgeDestroyed.class) ) { + return (BridgeDestroyed_impl_ari_3_0_0.class); + } else + + if ( interfaceClass.equals(BridgeMerged.class) ) { + return (BridgeMerged_impl_ari_3_0_0.class); + } else + + if ( interfaceClass.equals(BridgeVideoSourceChanged.class) ) { + return (BridgeVideoSourceChanged_impl_ari_3_0_0.class); + } else + + if ( interfaceClass.equals(BuildInfo.class) ) { + return (BuildInfo_impl_ari_3_0_0.class); + } else + + if ( interfaceClass.equals(CallerID.class) ) { + return (CallerID_impl_ari_3_0_0.class); + } else + + if ( interfaceClass.equals(Channel.class) ) { + return (Channel_impl_ari_3_0_0.class); + } else + + if ( interfaceClass.equals(ChannelCallerId.class) ) { + return (ChannelCallerId_impl_ari_3_0_0.class); + } else + + if ( interfaceClass.equals(ChannelConnectedLine.class) ) { + return (ChannelConnectedLine_impl_ari_3_0_0.class); + } else + + if ( interfaceClass.equals(ChannelCreated.class) ) { + return (ChannelCreated_impl_ari_3_0_0.class); + } else + + if ( interfaceClass.equals(ChannelDestroyed.class) ) { + return (ChannelDestroyed_impl_ari_3_0_0.class); + } else + + if ( interfaceClass.equals(ChannelDialplan.class) ) { + return (ChannelDialplan_impl_ari_3_0_0.class); + } else + + if ( interfaceClass.equals(ChannelDtmfReceived.class) ) { + return (ChannelDtmfReceived_impl_ari_3_0_0.class); + } else + + if ( interfaceClass.equals(ChannelEnteredBridge.class) ) { + return (ChannelEnteredBridge_impl_ari_3_0_0.class); + } else + + if ( interfaceClass.equals(ChannelHangupRequest.class) ) { + return (ChannelHangupRequest_impl_ari_3_0_0.class); + } else + + if ( interfaceClass.equals(ChannelHold.class) ) { + return (ChannelHold_impl_ari_3_0_0.class); + } else + + if ( interfaceClass.equals(ChannelLeftBridge.class) ) { + return (ChannelLeftBridge_impl_ari_3_0_0.class); + } else + + if ( interfaceClass.equals(ChannelStateChange.class) ) { + return (ChannelStateChange_impl_ari_3_0_0.class); + } else + + if ( interfaceClass.equals(ChannelTalkingFinished.class) ) { + return (ChannelTalkingFinished_impl_ari_3_0_0.class); + } else + + if ( interfaceClass.equals(ChannelTalkingStarted.class) ) { + return (ChannelTalkingStarted_impl_ari_3_0_0.class); + } else + + if ( interfaceClass.equals(ChannelUnhold.class) ) { + return (ChannelUnhold_impl_ari_3_0_0.class); + } else + + if ( interfaceClass.equals(ChannelUserevent.class) ) { + return (ChannelUserevent_impl_ari_3_0_0.class); + } else + + if ( interfaceClass.equals(ChannelVarset.class) ) { + return (ChannelVarset_impl_ari_3_0_0.class); + } else + + if ( interfaceClass.equals(ConfigInfo.class) ) { + return (ConfigInfo_impl_ari_3_0_0.class); + } else + + if ( interfaceClass.equals(ConfigTuple.class) ) { + return (ConfigTuple_impl_ari_3_0_0.class); + } else + + if ( interfaceClass.equals(ContactInfo.class) ) { + return (ContactInfo_impl_ari_3_0_0.class); + } else + + if ( interfaceClass.equals(ContactStatusChange.class) ) { + return (ContactStatusChange_impl_ari_3_0_0.class); + } else + + if ( interfaceClass.equals(DeviceState.class) ) { + return (DeviceState_impl_ari_3_0_0.class); + } else + + if ( interfaceClass.equals(DeviceStateChanged.class) ) { + return (DeviceStateChanged_impl_ari_3_0_0.class); + } else + + if ( interfaceClass.equals(Dial.class) ) { + return (Dial_impl_ari_3_0_0.class); + } else + + if ( interfaceClass.equals(Dialed.class) ) { + return (Dialed_impl_ari_3_0_0.class); + } else + + if ( interfaceClass.equals(DialplanCEP.class) ) { + return (DialplanCEP_impl_ari_3_0_0.class); + } else + + if ( interfaceClass.equals(Endpoint.class) ) { + return (Endpoint_impl_ari_3_0_0.class); + } else + + if ( interfaceClass.equals(EndpointStateChange.class) ) { + return (EndpointStateChange_impl_ari_3_0_0.class); + } else + + if ( interfaceClass.equals(Event.class) ) { + return (Event_impl_ari_3_0_0.class); + } else + + if ( interfaceClass.equals(FormatLangPair.class) ) { + return (FormatLangPair_impl_ari_3_0_0.class); + } else + + if ( interfaceClass.equals(LiveRecording.class) ) { + return (LiveRecording_impl_ari_3_0_0.class); + } else + + if ( interfaceClass.equals(LogChannel.class) ) { + return (LogChannel_impl_ari_3_0_0.class); + } else + + if ( interfaceClass.equals(Message.class) ) { + return (Message_impl_ari_3_0_0.class); + } else + + if ( interfaceClass.equals(MissingParams.class) ) { + return (MissingParams_impl_ari_3_0_0.class); + } else + + if ( interfaceClass.equals(Module.class) ) { + return (Module_impl_ari_3_0_0.class); + } else + + if ( interfaceClass.equals(Peer.class) ) { + return (Peer_impl_ari_3_0_0.class); + } else + + if ( interfaceClass.equals(PeerStatusChange.class) ) { + return (PeerStatusChange_impl_ari_3_0_0.class); + } else + + if ( interfaceClass.equals(Playback.class) ) { + return (Playback_impl_ari_3_0_0.class); + } else + + if ( interfaceClass.equals(PlaybackContinuing.class) ) { + return (PlaybackContinuing_impl_ari_3_0_0.class); + } else + + if ( interfaceClass.equals(PlaybackFinished.class) ) { + return (PlaybackFinished_impl_ari_3_0_0.class); + } else + + if ( interfaceClass.equals(PlaybackStarted.class) ) { + return (PlaybackStarted_impl_ari_3_0_0.class); + } else + + if ( interfaceClass.equals(RecordingFailed.class) ) { + return (RecordingFailed_impl_ari_3_0_0.class); + } else + + if ( interfaceClass.equals(RecordingFinished.class) ) { + return (RecordingFinished_impl_ari_3_0_0.class); + } else + + if ( interfaceClass.equals(RecordingStarted.class) ) { + return (RecordingStarted_impl_ari_3_0_0.class); + } else + + if ( interfaceClass.equals(SetId.class) ) { + return (SetId_impl_ari_3_0_0.class); + } else + + if ( interfaceClass.equals(Sound.class) ) { + return (Sound_impl_ari_3_0_0.class); + } else + + if ( interfaceClass.equals(StasisEnd.class) ) { + return (StasisEnd_impl_ari_3_0_0.class); + } else + + if ( interfaceClass.equals(StasisStart.class) ) { + return (StasisStart_impl_ari_3_0_0.class); + } else + + if ( interfaceClass.equals(StatusInfo.class) ) { + return (StatusInfo_impl_ari_3_0_0.class); + } else + + if ( interfaceClass.equals(StoredRecording.class) ) { + return (StoredRecording_impl_ari_3_0_0.class); + } else + + if ( interfaceClass.equals(SystemInfo.class) ) { + return (SystemInfo_impl_ari_3_0_0.class); + } else + + if ( interfaceClass.equals(TextMessage.class) ) { + return (TextMessage_impl_ari_3_0_0.class); + } else + + if ( interfaceClass.equals(TextMessageReceived.class) ) { + return (TextMessageReceived_impl_ari_3_0_0.class); + } else + + if ( interfaceClass.equals(TextMessageVariable.class) ) { + return (TextMessageVariable_impl_ari_3_0_0.class); + } else + + if ( interfaceClass.equals(Variable.class) ) { + return (Variable_impl_ari_3_0_0.class); + } else + { + return null; + } + } +} + + diff --git a/classes/ch/loway/oss/ari4java/generated/ari_3_0_0/actions/ActionApplications_impl_ari_3_0_0.java b/classes/ch/loway/oss/ari4java/generated/ari_3_0_0/actions/ActionApplications_impl_ari_3_0_0.java new file mode 100644 index 00000000..738bc55c --- /dev/null +++ b/classes/ch/loway/oss/ari4java/generated/ari_3_0_0/actions/ActionApplications_impl_ari_3_0_0.java @@ -0,0 +1,140 @@ +package ch.loway.oss.ari4java.generated.ari_3_0_0.actions; + +// ---------------------------------------------------- +// THIS CLASS WAS GENERATED AUTOMATICALLY +// PLEASE DO NOT EDIT +// Generated on: Tue Dec 19 09:55:49 CET 2017 +// ---------------------------------------------------- + +import ch.loway.oss.ari4java.generated.*; +import java.util.Date; +import java.util.List; +import java.util.Map; +import java.util.ArrayList; +import ch.loway.oss.ari4java.tools.BaseAriAction; +import ch.loway.oss.ari4java.tools.RestException; +import ch.loway.oss.ari4java.tools.AriCallback; +import ch.loway.oss.ari4java.tools.HttpParam; +import ch.loway.oss.ari4java.tools.HttpResponse; +import com.fasterxml.jackson.core.type.TypeReference; +import ch.loway.oss.ari4java.generated.ari_3_0_0.models.*; + +/********************************************************** + * + * Generated by: Apis + *********************************************************/ + + +public class ActionApplications_impl_ari_3_0_0 extends BaseAriAction implements ActionApplications { +/********************************************************** + * Stasis applications + * + * List all applications. + *********************************************************/ +private void buildList() { +reset(); +url = "/applications"; +method = "GET"; +} + +@Override +public List list() throws RestException { +buildList(); +String json = httpActionSync(); +return deserializeJsonAsAbstractList( json, + new TypeReference>() {} ); +} + +@Override +public void list(AriCallback> callback) { +buildList(); +httpActionAsync(callback, new TypeReference>() {}); +} + +/********************************************************** + * Stasis application + * + * Get details of an application. + *********************************************************/ +private void buildGet(String applicationName) { +reset(); +url = "/applications/" + applicationName + ""; +method = "GET"; +lE.add( HttpResponse.build( 404, "Application does not exist.") ); +} + +@Override +public Application get(String applicationName) throws RestException { +buildGet(applicationName); +String json = httpActionSync(); +return deserializeJson( json, Application_impl_ari_3_0_0.class ); +} + +@Override +public void get(String applicationName, AriCallback callback) { +buildGet(applicationName); +httpActionAsync(callback, Application_impl_ari_3_0_0.class); +} + +/********************************************************** + * Stasis application + * + * Subscribe an application to a event source. + * Returns the state of the application after the subscriptions have changed + *********************************************************/ +private void buildSubscribe(String applicationName, String eventSource) { +reset(); +url = "/applications/" + applicationName + "/subscription"; +method = "POST"; +lParamQuery.add( HttpParam.build( "eventSource", eventSource) ); +lE.add( HttpResponse.build( 400, "Missing parameter.") ); +lE.add( HttpResponse.build( 404, "Application does not exist.") ); +lE.add( HttpResponse.build( 422, "Event source does not exist.") ); +} + +@Override +public Application subscribe(String applicationName, String eventSource) throws RestException { +buildSubscribe(applicationName, eventSource); +String json = httpActionSync(); +return deserializeJson( json, Application_impl_ari_3_0_0.class ); +} + +@Override +public void subscribe(String applicationName, String eventSource, AriCallback callback) { +buildSubscribe(applicationName, eventSource); +httpActionAsync(callback, Application_impl_ari_3_0_0.class); +} + +/********************************************************** + * Stasis application + * + * Unsubscribe an application from an event source. + * Returns the state of the application after the subscriptions have changed + *********************************************************/ +private void buildUnsubscribe(String applicationName, String eventSource) { +reset(); +url = "/applications/" + applicationName + "/subscription"; +method = "DELETE"; +lParamQuery.add( HttpParam.build( "eventSource", eventSource) ); +lE.add( HttpResponse.build( 400, "Missing parameter; event source scheme not recognized.") ); +lE.add( HttpResponse.build( 404, "Application does not exist.") ); +lE.add( HttpResponse.build( 409, "Application not subscribed to event source.") ); +lE.add( HttpResponse.build( 422, "Event source does not exist.") ); +} + +@Override +public Application unsubscribe(String applicationName, String eventSource) throws RestException { +buildUnsubscribe(applicationName, eventSource); +String json = httpActionSync(); +return deserializeJson( json, Application_impl_ari_3_0_0.class ); +} + +@Override +public void unsubscribe(String applicationName, String eventSource, AriCallback callback) { +buildUnsubscribe(applicationName, eventSource); +httpActionAsync(callback, Application_impl_ari_3_0_0.class); +} + +/** No missing signatures from interface */ +}; + diff --git a/classes/ch/loway/oss/ari4java/generated/ari_3_0_0/actions/ActionAsterisk_impl_ari_3_0_0.java b/classes/ch/loway/oss/ari4java/generated/ari_3_0_0/actions/ActionAsterisk_impl_ari_3_0_0.java new file mode 100644 index 00000000..0d7cbe4a --- /dev/null +++ b/classes/ch/loway/oss/ari4java/generated/ari_3_0_0/actions/ActionAsterisk_impl_ari_3_0_0.java @@ -0,0 +1,412 @@ +package ch.loway.oss.ari4java.generated.ari_3_0_0.actions; + +// ---------------------------------------------------- +// THIS CLASS WAS GENERATED AUTOMATICALLY +// PLEASE DO NOT EDIT +// Generated on: Tue Dec 19 09:55:49 CET 2017 +// ---------------------------------------------------- + +import ch.loway.oss.ari4java.generated.*; +import java.util.Date; +import java.util.List; +import java.util.Map; +import java.util.ArrayList; +import ch.loway.oss.ari4java.tools.BaseAriAction; +import ch.loway.oss.ari4java.tools.RestException; +import ch.loway.oss.ari4java.tools.AriCallback; +import ch.loway.oss.ari4java.tools.HttpParam; +import ch.loway.oss.ari4java.tools.HttpResponse; +import com.fasterxml.jackson.core.type.TypeReference; +import ch.loway.oss.ari4java.generated.ari_3_0_0.models.*; + +/********************************************************** + * + * Generated by: Apis + *********************************************************/ + + +public class ActionAsterisk_impl_ari_3_0_0 extends BaseAriAction implements ActionAsterisk { +/********************************************************** + * Asterisk dynamic configuration + * + * Retrieve a dynamic configuration object. + *********************************************************/ +private void buildGetObject(String configClass, String objectType, String id) { +reset(); +url = "/asterisk/config/dynamic/" + configClass + "/" + objectType + "/" + id + ""; +method = "GET"; +lE.add( HttpResponse.build( 404, "{configClass|objectType|id} not found") ); +} + +@Override +public List getObject(String configClass, String objectType, String id) throws RestException { +buildGetObject(configClass, objectType, id); +String json = httpActionSync(); +return deserializeJsonAsAbstractList( json, + new TypeReference>() {} ); +} + +@Override +public void getObject(String configClass, String objectType, String id, AriCallback> callback) { +buildGetObject(configClass, objectType, id); +httpActionAsync(callback, new TypeReference>() {}); +} + +/********************************************************** + * Asterisk dynamic configuration + * + * Create or update a dynamic configuration object. + *********************************************************/ +private void buildUpdateObject(String configClass, String objectType, String id, Map fields) { +reset(); +url = "/asterisk/config/dynamic/" + configClass + "/" + objectType + "/" + id + ""; +method = "PUT"; +lParamBody.addAll( HttpParam.build( "fields", fields) ); +lE.add( HttpResponse.build( 400, "Bad request body") ); +lE.add( HttpResponse.build( 403, "Could not create or update object") ); +lE.add( HttpResponse.build( 404, "{configClass|objectType} not found") ); +} + +@Override +public List updateObject(String configClass, String objectType, String id, Map fields) throws RestException { +buildUpdateObject(configClass, objectType, id, fields); +String json = httpActionSync(); +return deserializeJsonAsAbstractList( json, + new TypeReference>() {} ); +} + +@Override +public void updateObject(String configClass, String objectType, String id, Map fields, AriCallback> callback) { +buildUpdateObject(configClass, objectType, id, fields); +httpActionAsync(callback, new TypeReference>() {}); +} + +/********************************************************** + * Asterisk dynamic configuration + * + * Delete a dynamic configuration object. + *********************************************************/ +private void buildDeleteObject(String configClass, String objectType, String id) { +reset(); +url = "/asterisk/config/dynamic/" + configClass + "/" + objectType + "/" + id + ""; +method = "DELETE"; +lE.add( HttpResponse.build( 403, "Could not delete object") ); +lE.add( HttpResponse.build( 404, "{configClass|objectType|id} not found") ); +} + +@Override +public void deleteObject(String configClass, String objectType, String id) throws RestException { +buildDeleteObject(configClass, objectType, id); +String json = httpActionSync(); +} + +@Override +public void deleteObject(String configClass, String objectType, String id, AriCallback callback) { +buildDeleteObject(configClass, objectType, id); +httpActionAsync(callback); +} + +/********************************************************** + * Asterisk system information (similar to core show settings) + * + * Gets Asterisk system information. + *********************************************************/ +private void buildGetInfo(String only) { +reset(); +url = "/asterisk/info"; +method = "GET"; +lParamQuery.add( HttpParam.build( "only", only) ); +} + +@Override +public AsteriskInfo getInfo(String only) throws RestException { +buildGetInfo(only); +String json = httpActionSync(); +return deserializeJson( json, AsteriskInfo_impl_ari_3_0_0.class ); +} + +@Override +public void getInfo(String only, AriCallback callback) { +buildGetInfo(only); +httpActionAsync(callback, AsteriskInfo_impl_ari_3_0_0.class); +} + +/********************************************************** + * Asterisk log channels + * + * Gets Asterisk log channel information. + *********************************************************/ +private void buildListLogChannels() { +reset(); +url = "/asterisk/logging"; +method = "GET"; +} + +@Override +public List listLogChannels() throws RestException { +buildListLogChannels(); +String json = httpActionSync(); +return deserializeJsonAsAbstractList( json, + new TypeReference>() {} ); +} + +@Override +public void listLogChannels(AriCallback> callback) { +buildListLogChannels(); +httpActionAsync(callback, new TypeReference>() {}); +} + +/********************************************************** + * Asterisk log channel + * + * Adds a log channel. + *********************************************************/ +private void buildAddLog(String logChannelName, String configuration) { +reset(); +url = "/asterisk/logging/" + logChannelName + ""; +method = "POST"; +lParamQuery.add( HttpParam.build( "configuration", configuration) ); +lE.add( HttpResponse.build( 400, "Bad request body") ); +lE.add( HttpResponse.build( 409, "Log channel could not be created.") ); +} + +@Override +public void addLog(String logChannelName, String configuration) throws RestException { +buildAddLog(logChannelName, configuration); +String json = httpActionSync(); +} + +@Override +public void addLog(String logChannelName, String configuration, AriCallback callback) { +buildAddLog(logChannelName, configuration); +httpActionAsync(callback); +} + +/********************************************************** + * Asterisk log channel + * + * Deletes a log channel. + *********************************************************/ +private void buildDeleteLog(String logChannelName) { +reset(); +url = "/asterisk/logging/" + logChannelName + ""; +method = "DELETE"; +lE.add( HttpResponse.build( 404, "Log channel does not exist.") ); +} + +@Override +public void deleteLog(String logChannelName) throws RestException { +buildDeleteLog(logChannelName); +String json = httpActionSync(); +} + +@Override +public void deleteLog(String logChannelName, AriCallback callback) { +buildDeleteLog(logChannelName); +httpActionAsync(callback); +} + +/********************************************************** + * Asterisk log channel + * + * Rotates a log channel. + *********************************************************/ +private void buildRotateLog(String logChannelName) { +reset(); +url = "/asterisk/logging/" + logChannelName + "/rotate"; +method = "PUT"; +lE.add( HttpResponse.build( 404, "Log channel does not exist.") ); +} + +@Override +public void rotateLog(String logChannelName) throws RestException { +buildRotateLog(logChannelName); +String json = httpActionSync(); +} + +@Override +public void rotateLog(String logChannelName, AriCallback callback) { +buildRotateLog(logChannelName); +httpActionAsync(callback); +} + +/********************************************************** + * Asterisk modules + * + * List Asterisk modules. + *********************************************************/ +private void buildListModules() { +reset(); +url = "/asterisk/modules"; +method = "GET"; +} + +@Override +public List listModules() throws RestException { +buildListModules(); +String json = httpActionSync(); +return deserializeJsonAsAbstractList( json, + new TypeReference>() {} ); +} + +@Override +public void listModules(AriCallback> callback) { +buildListModules(); +httpActionAsync(callback, new TypeReference>() {}); +} + +/********************************************************** + * Asterisk module + * + * Get Asterisk module information. + *********************************************************/ +private void buildGetModule(String moduleName) { +reset(); +url = "/asterisk/modules/" + moduleName + ""; +method = "GET"; +lE.add( HttpResponse.build( 404, "Module could not be found in running modules.") ); +lE.add( HttpResponse.build( 409, "Module information could not be retrieved.") ); +} + +@Override +public Module getModule(String moduleName) throws RestException { +buildGetModule(moduleName); +String json = httpActionSync(); +return deserializeJson( json, Module_impl_ari_3_0_0.class ); +} + +@Override +public void getModule(String moduleName, AriCallback callback) { +buildGetModule(moduleName); +httpActionAsync(callback, Module_impl_ari_3_0_0.class); +} + +/********************************************************** + * Asterisk module + * + * Load an Asterisk module. + *********************************************************/ +private void buildLoadModule(String moduleName) { +reset(); +url = "/asterisk/modules/" + moduleName + ""; +method = "POST"; +lE.add( HttpResponse.build( 409, "Module could not be loaded.") ); +} + +@Override +public void loadModule(String moduleName) throws RestException { +buildLoadModule(moduleName); +String json = httpActionSync(); +} + +@Override +public void loadModule(String moduleName, AriCallback callback) { +buildLoadModule(moduleName); +httpActionAsync(callback); +} + +/********************************************************** + * Asterisk module + * + * Unload an Asterisk module. + *********************************************************/ +private void buildUnloadModule(String moduleName) { +reset(); +url = "/asterisk/modules/" + moduleName + ""; +method = "DELETE"; +lE.add( HttpResponse.build( 404, "Module not found in running modules.") ); +lE.add( HttpResponse.build( 409, "Module could not be unloaded.") ); +} + +@Override +public void unloadModule(String moduleName) throws RestException { +buildUnloadModule(moduleName); +String json = httpActionSync(); +} + +@Override +public void unloadModule(String moduleName, AriCallback callback) { +buildUnloadModule(moduleName); +httpActionAsync(callback); +} + +/********************************************************** + * Asterisk module + * + * Reload an Asterisk module. + *********************************************************/ +private void buildReloadModule(String moduleName) { +reset(); +url = "/asterisk/modules/" + moduleName + ""; +method = "PUT"; +lE.add( HttpResponse.build( 404, "Module not found in running modules.") ); +lE.add( HttpResponse.build( 409, "Module could not be reloaded.") ); +} + +@Override +public void reloadModule(String moduleName) throws RestException { +buildReloadModule(moduleName); +String json = httpActionSync(); +} + +@Override +public void reloadModule(String moduleName, AriCallback callback) { +buildReloadModule(moduleName); +httpActionAsync(callback); +} + +/********************************************************** + * Global variables + * + * Get the value of a global variable. + *********************************************************/ +private void buildGetGlobalVar(String variable) { +reset(); +url = "/asterisk/variable"; +method = "GET"; +lParamQuery.add( HttpParam.build( "variable", variable) ); +lE.add( HttpResponse.build( 400, "Missing variable parameter.") ); +} + +@Override +public Variable getGlobalVar(String variable) throws RestException { +buildGetGlobalVar(variable); +String json = httpActionSync(); +return deserializeJson( json, Variable_impl_ari_3_0_0.class ); +} + +@Override +public void getGlobalVar(String variable, AriCallback callback) { +buildGetGlobalVar(variable); +httpActionAsync(callback, Variable_impl_ari_3_0_0.class); +} + +/********************************************************** + * Global variables + * + * Set the value of a global variable. + *********************************************************/ +private void buildSetGlobalVar(String variable, String value) { +reset(); +url = "/asterisk/variable"; +method = "POST"; +lParamQuery.add( HttpParam.build( "variable", variable) ); +lParamQuery.add( HttpParam.build( "value", value) ); +lE.add( HttpResponse.build( 400, "Missing variable parameter.") ); +} + +@Override +public void setGlobalVar(String variable, String value) throws RestException { +buildSetGlobalVar(variable, value); +String json = httpActionSync(); +} + +@Override +public void setGlobalVar(String variable, String value, AriCallback callback) { +buildSetGlobalVar(variable, value); +httpActionAsync(callback); +} + +/** No missing signatures from interface */ +}; + diff --git a/classes/ch/loway/oss/ari4java/generated/ari_3_0_0/actions/ActionBridges_impl_ari_3_0_0.java b/classes/ch/loway/oss/ari4java/generated/ari_3_0_0/actions/ActionBridges_impl_ari_3_0_0.java new file mode 100644 index 00000000..731ff788 --- /dev/null +++ b/classes/ch/loway/oss/ari4java/generated/ari_3_0_0/actions/ActionBridges_impl_ari_3_0_0.java @@ -0,0 +1,494 @@ +package ch.loway.oss.ari4java.generated.ari_3_0_0.actions; + +// ---------------------------------------------------- +// THIS CLASS WAS GENERATED AUTOMATICALLY +// PLEASE DO NOT EDIT +// Generated on: Tue Dec 19 09:55:49 CET 2017 +// ---------------------------------------------------- + +import ch.loway.oss.ari4java.generated.*; +import java.util.Date; +import java.util.List; +import java.util.Map; +import java.util.ArrayList; +import ch.loway.oss.ari4java.tools.BaseAriAction; +import ch.loway.oss.ari4java.tools.RestException; +import ch.loway.oss.ari4java.tools.AriCallback; +import ch.loway.oss.ari4java.tools.HttpParam; +import ch.loway.oss.ari4java.tools.HttpResponse; +import com.fasterxml.jackson.core.type.TypeReference; +import ch.loway.oss.ari4java.generated.ari_3_0_0.models.*; + +/********************************************************** + * + * Generated by: Apis + *********************************************************/ + + +public class ActionBridges_impl_ari_3_0_0 extends BaseAriAction implements ActionBridges { +/********************************************************** + * Active bridges + * + * List all active bridges in Asterisk. + *********************************************************/ +private void buildList() { +reset(); +url = "/bridges"; +method = "GET"; +} + +@Override +public List list() throws RestException { +buildList(); +String json = httpActionSync(); +return deserializeJsonAsAbstractList( json, + new TypeReference>() {} ); +} + +@Override +public void list(AriCallback> callback) { +buildList(); +httpActionAsync(callback, new TypeReference>() {}); +} + +/********************************************************** + * Active bridges + * + * Create a new bridge. + * This bridge persists until it has been shut down, or Asterisk has been shut down. + *********************************************************/ +private void buildCreate(String type, String bridgeId, String name) { +reset(); +url = "/bridges"; +method = "POST"; +lParamQuery.add( HttpParam.build( "type", type) ); +lParamQuery.add( HttpParam.build( "bridgeId", bridgeId) ); +lParamQuery.add( HttpParam.build( "name", name) ); +} + +@Override +public Bridge create(String type, String bridgeId, String name) throws RestException { +buildCreate(type, bridgeId, name); +String json = httpActionSync(); +return deserializeJson( json, Bridge_impl_ari_3_0_0.class ); +} + +@Override +public void create(String type, String bridgeId, String name, AriCallback callback) { +buildCreate(type, bridgeId, name); +httpActionAsync(callback, Bridge_impl_ari_3_0_0.class); +} + +/********************************************************** + * Individual bridge + * + * Create a new bridge or updates an existing one. + * This bridge persists until it has been shut down, or Asterisk has been shut down. + *********************************************************/ +private void buildCreateWithId(String type, String bridgeId, String name) { +reset(); +url = "/bridges/" + bridgeId + ""; +method = "POST"; +lParamQuery.add( HttpParam.build( "type", type) ); +lParamQuery.add( HttpParam.build( "name", name) ); +} + +@Override +public Bridge createWithId(String type, String bridgeId, String name) throws RestException { +buildCreateWithId(type, bridgeId, name); +String json = httpActionSync(); +return deserializeJson( json, Bridge_impl_ari_3_0_0.class ); +} + +@Override +public void createWithId(String type, String bridgeId, String name, AriCallback callback) { +buildCreateWithId(type, bridgeId, name); +httpActionAsync(callback, Bridge_impl_ari_3_0_0.class); +} + +/********************************************************** + * Individual bridge + * + * Get bridge details. + *********************************************************/ +private void buildGet(String bridgeId) { +reset(); +url = "/bridges/" + bridgeId + ""; +method = "GET"; +lE.add( HttpResponse.build( 404, "Bridge not found") ); +} + +@Override +public Bridge get(String bridgeId) throws RestException { +buildGet(bridgeId); +String json = httpActionSync(); +return deserializeJson( json, Bridge_impl_ari_3_0_0.class ); +} + +@Override +public void get(String bridgeId, AriCallback callback) { +buildGet(bridgeId); +httpActionAsync(callback, Bridge_impl_ari_3_0_0.class); +} + +/********************************************************** + * Individual bridge + * + * Shut down a bridge. + * If any channels are in this bridge, they will be removed and resume whatever they were doing beforehand. + *********************************************************/ +private void buildDestroy(String bridgeId) { +reset(); +url = "/bridges/" + bridgeId + ""; +method = "DELETE"; +lE.add( HttpResponse.build( 404, "Bridge not found") ); +} + +@Override +public void destroy(String bridgeId) throws RestException { +buildDestroy(bridgeId); +String json = httpActionSync(); +} + +@Override +public void destroy(String bridgeId, AriCallback callback) { +buildDestroy(bridgeId); +httpActionAsync(callback); +} + +/********************************************************** + * Add a channel to a bridge + * + * Add a channel to a bridge. + *********************************************************/ +private void buildAddChannel(String bridgeId, String channel, String role) { +reset(); +url = "/bridges/" + bridgeId + "/addChannel"; +method = "POST"; +lParamQuery.add( HttpParam.build( "channel", channel) ); +lParamQuery.add( HttpParam.build( "role", role) ); +lE.add( HttpResponse.build( 400, "Channel not found") ); +lE.add( HttpResponse.build( 404, "Bridge not found") ); +lE.add( HttpResponse.build( 409, "Bridge not in Stasis application; Channel currently recording") ); +lE.add( HttpResponse.build( 422, "Channel not in Stasis application") ); +} + +@Override +public void addChannel(String bridgeId, String channel, String role) throws RestException { +buildAddChannel(bridgeId, channel, role); +String json = httpActionSync(); +} + +@Override +public void addChannel(String bridgeId, String channel, String role, AriCallback callback) { +buildAddChannel(bridgeId, channel, role); +httpActionAsync(callback); +} + +/********************************************************** + * Play music on hold to a bridge + * + * Play music on hold to a bridge or change the MOH class that is playing. + *********************************************************/ +private void buildStartMoh(String bridgeId, String mohClass) { +reset(); +url = "/bridges/" + bridgeId + "/moh"; +method = "POST"; +lParamQuery.add( HttpParam.build( "mohClass", mohClass) ); +lE.add( HttpResponse.build( 404, "Bridge not found") ); +lE.add( HttpResponse.build( 409, "Bridge not in Stasis application") ); +} + +@Override +public void startMoh(String bridgeId, String mohClass) throws RestException { +buildStartMoh(bridgeId, mohClass); +String json = httpActionSync(); +} + +@Override +public void startMoh(String bridgeId, String mohClass, AriCallback callback) { +buildStartMoh(bridgeId, mohClass); +httpActionAsync(callback); +} + +/********************************************************** + * Play music on hold to a bridge + * + * Stop playing music on hold to a bridge. + * This will only stop music on hold being played via POST bridges/{bridgeId}/moh. + *********************************************************/ +private void buildStopMoh(String bridgeId) { +reset(); +url = "/bridges/" + bridgeId + "/moh"; +method = "DELETE"; +lE.add( HttpResponse.build( 404, "Bridge not found") ); +lE.add( HttpResponse.build( 409, "Bridge not in Stasis application") ); +} + +@Override +public void stopMoh(String bridgeId) throws RestException { +buildStopMoh(bridgeId); +String json = httpActionSync(); +} + +@Override +public void stopMoh(String bridgeId, AriCallback callback) { +buildStopMoh(bridgeId); +httpActionAsync(callback); +} + +/********************************************************** + * Play media to the participants of a bridge + * + * Start playback of media on a bridge. + * The media URI may be any of a number of URI's. Currently sound:, recording:, number:, digits:, characters:, and tone: URI's are supported. This operation creates a playback resource that can be used to control the playback of media (pause, rewind, fast forward, etc.) + *********************************************************/ +private void buildPlay(String bridgeId, String media, String lang, int offsetms, int skipms, String playbackId) { +reset(); +url = "/bridges/" + bridgeId + "/play"; +method = "POST"; +lParamQuery.add( HttpParam.build( "media", media) ); +lParamQuery.add( HttpParam.build( "lang", lang) ); +lParamQuery.add( HttpParam.build( "offsetms", offsetms) ); +lParamQuery.add( HttpParam.build( "skipms", skipms) ); +lParamQuery.add( HttpParam.build( "playbackId", playbackId) ); +lE.add( HttpResponse.build( 404, "Bridge not found") ); +lE.add( HttpResponse.build( 409, "Bridge not in a Stasis application") ); +} + +@Override +public Playback play(String bridgeId, String media, String lang, int offsetms, int skipms, String playbackId) throws RestException { +buildPlay(bridgeId, media, lang, offsetms, skipms, playbackId); +String json = httpActionSync(); +return deserializeJson( json, Playback_impl_ari_3_0_0.class ); +} + +@Override +public void play(String bridgeId, String media, String lang, int offsetms, int skipms, String playbackId, AriCallback callback) { +buildPlay(bridgeId, media, lang, offsetms, skipms, playbackId); +httpActionAsync(callback, Playback_impl_ari_3_0_0.class); +} + +/********************************************************** + * Play media to a bridge + * + * Start playback of media on a bridge. + * The media URI may be any of a number of URI's. Currently sound:, recording:, number:, digits:, characters:, and tone: URI's are supported. This operation creates a playback resource that can be used to control the playback of media (pause, rewind, fast forward, etc.) + *********************************************************/ +private void buildPlayWithId(String bridgeId, String playbackId, String media, String lang, int offsetms, int skipms) { +reset(); +url = "/bridges/" + bridgeId + "/play/" + playbackId + ""; +method = "POST"; +lParamQuery.add( HttpParam.build( "media", media) ); +lParamQuery.add( HttpParam.build( "lang", lang) ); +lParamQuery.add( HttpParam.build( "offsetms", offsetms) ); +lParamQuery.add( HttpParam.build( "skipms", skipms) ); +lE.add( HttpResponse.build( 404, "Bridge not found") ); +lE.add( HttpResponse.build( 409, "Bridge not in a Stasis application") ); +} + +@Override +public Playback playWithId(String bridgeId, String playbackId, String media, String lang, int offsetms, int skipms) throws RestException { +buildPlayWithId(bridgeId, playbackId, media, lang, offsetms, skipms); +String json = httpActionSync(); +return deserializeJson( json, Playback_impl_ari_3_0_0.class ); +} + +@Override +public void playWithId(String bridgeId, String playbackId, String media, String lang, int offsetms, int skipms, AriCallback callback) { +buildPlayWithId(bridgeId, playbackId, media, lang, offsetms, skipms); +httpActionAsync(callback, Playback_impl_ari_3_0_0.class); +} + +/********************************************************** + * Record audio on a bridge + * + * Start a recording. + * This records the mixed audio from all channels participating in this bridge. + *********************************************************/ +private void buildRecord(String bridgeId, String name, String format, int maxDurationSeconds, int maxSilenceSeconds, String ifExists, boolean beep, String terminateOn) { +reset(); +url = "/bridges/" + bridgeId + "/record"; +method = "POST"; +lParamQuery.add( HttpParam.build( "name", name) ); +lParamQuery.add( HttpParam.build( "format", format) ); +lParamQuery.add( HttpParam.build( "maxDurationSeconds", maxDurationSeconds) ); +lParamQuery.add( HttpParam.build( "maxSilenceSeconds", maxSilenceSeconds) ); +lParamQuery.add( HttpParam.build( "ifExists", ifExists) ); +lParamQuery.add( HttpParam.build( "beep", beep) ); +lParamQuery.add( HttpParam.build( "terminateOn", terminateOn) ); +lE.add( HttpResponse.build( 400, "Invalid parameters") ); +lE.add( HttpResponse.build( 404, "Bridge not found") ); +lE.add( HttpResponse.build( 409, "Bridge is not in a Stasis application; A recording with the same name already exists on the system and can not be overwritten because it is in progress or ifExists=fail") ); +lE.add( HttpResponse.build( 422, "The format specified is unknown on this system") ); +} + +@Override +public LiveRecording record(String bridgeId, String name, String format, int maxDurationSeconds, int maxSilenceSeconds, String ifExists, boolean beep, String terminateOn) throws RestException { +buildRecord(bridgeId, name, format, maxDurationSeconds, maxSilenceSeconds, ifExists, beep, terminateOn); +String json = httpActionSync(); +return deserializeJson( json, LiveRecording_impl_ari_3_0_0.class ); +} + +@Override +public void record(String bridgeId, String name, String format, int maxDurationSeconds, int maxSilenceSeconds, String ifExists, boolean beep, String terminateOn, AriCallback callback) { +buildRecord(bridgeId, name, format, maxDurationSeconds, maxSilenceSeconds, ifExists, beep, terminateOn); +httpActionAsync(callback, LiveRecording_impl_ari_3_0_0.class); +} + +/********************************************************** + * Remove a channel from a bridge + * + * Remove a channel from a bridge. + *********************************************************/ +private void buildRemoveChannel(String bridgeId, String channel) { +reset(); +url = "/bridges/" + bridgeId + "/removeChannel"; +method = "POST"; +lParamQuery.add( HttpParam.build( "channel", channel) ); +lE.add( HttpResponse.build( 400, "Channel not found") ); +lE.add( HttpResponse.build( 404, "Bridge not found") ); +lE.add( HttpResponse.build( 409, "Bridge not in Stasis application") ); +lE.add( HttpResponse.build( 422, "Channel not in this bridge") ); +} + +@Override +public void removeChannel(String bridgeId, String channel) throws RestException { +buildRemoveChannel(bridgeId, channel); +String json = httpActionSync(); +} + +@Override +public void removeChannel(String bridgeId, String channel, AriCallback callback) { +buildRemoveChannel(bridgeId, channel); +httpActionAsync(callback); +} + +/********************************************************** + * Removes any explicit video source + * + * Removes any explicit video source in a multi-party mixing bridge. This operation has no effect on bridges with two or fewer participants. When no explicit video source is set, talk detection will be used to determine the active video stream. + *********************************************************/ +private void buildClearVideoSource(String bridgeId) { +reset(); +url = "/bridges/" + bridgeId + "/videoSource"; +method = "DELETE"; +lE.add( HttpResponse.build( 404, "Bridge not found") ); +} + +@Override +public void clearVideoSource(String bridgeId) throws RestException { +buildClearVideoSource(bridgeId); +String json = httpActionSync(); +} + +@Override +public void clearVideoSource(String bridgeId, AriCallback callback) { +buildClearVideoSource(bridgeId); +httpActionAsync(callback); +} + +/********************************************************** + * Set a channel as the video source in a multi-party bridge + * + * Set a channel as the video source in a multi-party mixing bridge. This operation has no effect on bridges with two or fewer participants. + *********************************************************/ +private void buildSetVideoSource(String bridgeId, String channelId) { +reset(); +url = "/bridges/" + bridgeId + "/videoSource/" + channelId + ""; +method = "POST"; +lE.add( HttpResponse.build( 404, "Bridge or Channel not found") ); +lE.add( HttpResponse.build( 409, "Channel not in Stasis application") ); +lE.add( HttpResponse.build( 422, "Channel not in this Bridge") ); +} + +@Override +public void setVideoSource(String bridgeId, String channelId) throws RestException { +buildSetVideoSource(bridgeId, channelId); +String json = httpActionSync(); +} + +@Override +public void setVideoSource(String bridgeId, String channelId, AriCallback callback) { +buildSetVideoSource(bridgeId, channelId); +httpActionAsync(callback); +} + +/********************************************************** + * Start playback of media on a bridge. + * The media URI may be any of a number of URI's. Currently sound: and recording: URI's are supported. This operation creates a playback resource that can be used to control the playback of media (pause, rewind, fast forward, etc.) + * + * @since ari_0_0_1 + *********************************************************/ +public Playback play(String bridgeId, String media, String lang, int offsetms, int skipms) throws RestException{ + throw new UnsupportedOperationException("Method availble from ..."); +}; + +/********************************************************** + * + * + * @since ari_0_0_1 + *********************************************************/ +public void play(String bridgeId, String media, String lang, int offsetms, int skipms, AriCallback callback){ + throw new UnsupportedOperationException("Method availble from ..."); +}; + +/********************************************************** + * Create a new bridge. + * This bridge persists until it has been shut down, or Asterisk has been shut down. + * + * @since ari_1_0_0 + *********************************************************/ +public Bridge create(String type, String name) throws RestException{ + throw new UnsupportedOperationException("Method availble from ..."); +}; + +/********************************************************** + * + * + * @since ari_1_5_0 + *********************************************************/ +public void create_or_update_with_id(String type, String bridgeId, String name, AriCallback callback){ + throw new UnsupportedOperationException("Method availble from ..."); +}; + +/********************************************************** + * Create a new bridge or updates an existing one. + * This bridge persists until it has been shut down, or Asterisk has been shut down. + * + * @since ari_1_5_0 + *********************************************************/ +public Bridge create_or_update_with_id(String type, String bridgeId, String name) throws RestException{ + throw new UnsupportedOperationException("Method availble from ..."); +}; + +/********************************************************** + * Create a new bridge. + * This bridge persists until it has been shut down, or Asterisk has been shut down. + * + * @since ari_0_0_1 + *********************************************************/ +public Bridge create(String type) throws RestException{ + throw new UnsupportedOperationException("Method availble from ..."); +}; + +/********************************************************** + * + * + * @since ari_0_0_1 + *********************************************************/ +public void create(String type, AriCallback callback){ + throw new UnsupportedOperationException("Method availble from ..."); +}; + +/********************************************************** + * + * + * @since ari_1_0_0 + *********************************************************/ +public void create(String type, String name, AriCallback callback){ + throw new UnsupportedOperationException("Method availble from ..."); +}; + +}; + diff --git a/classes/ch/loway/oss/ari4java/generated/ari_3_0_0/actions/ActionChannels_impl_ari_3_0_0.java b/classes/ch/loway/oss/ari4java/generated/ari_3_0_0/actions/ActionChannels_impl_ari_3_0_0.java new file mode 100644 index 00000000..730fa314 --- /dev/null +++ b/classes/ch/loway/oss/ari4java/generated/ari_3_0_0/actions/ActionChannels_impl_ari_3_0_0.java @@ -0,0 +1,1002 @@ +package ch.loway.oss.ari4java.generated.ari_3_0_0.actions; + +// ---------------------------------------------------- +// THIS CLASS WAS GENERATED AUTOMATICALLY +// PLEASE DO NOT EDIT +// Generated on: Tue Dec 19 09:55:49 CET 2017 +// ---------------------------------------------------- + +import ch.loway.oss.ari4java.generated.*; +import java.util.Date; +import java.util.List; +import java.util.Map; +import java.util.ArrayList; +import ch.loway.oss.ari4java.tools.BaseAriAction; +import ch.loway.oss.ari4java.tools.RestException; +import ch.loway.oss.ari4java.tools.AriCallback; +import ch.loway.oss.ari4java.tools.HttpParam; +import ch.loway.oss.ari4java.tools.HttpResponse; +import com.fasterxml.jackson.core.type.TypeReference; +import ch.loway.oss.ari4java.generated.ari_3_0_0.models.*; + +/********************************************************** + * + * Generated by: Apis + *********************************************************/ + + +public class ActionChannels_impl_ari_3_0_0 extends BaseAriAction implements ActionChannels { +/********************************************************** + * Active channels + * + * List all active channels in Asterisk. + *********************************************************/ +private void buildList() { +reset(); +url = "/channels"; +method = "GET"; +} + +@Override +public List list() throws RestException { +buildList(); +String json = httpActionSync(); +return deserializeJsonAsAbstractList( json, + new TypeReference>() {} ); +} + +@Override +public void list(AriCallback> callback) { +buildList(); +httpActionAsync(callback, new TypeReference>() {}); +} + +/********************************************************** + * Active channels + * + * Create a new channel (originate). + * The new channel is created immediately and a snapshot of it returned. If a Stasis application is provided it will be automatically subscribed to the originated channel for further events and updates. + *********************************************************/ +private void buildOriginate(String endpoint, String extension, String context, long priority, String label, String app, String appArgs, String callerId, int timeout, Map variables, String channelId, String otherChannelId, String originator, String formats) { +reset(); +url = "/channels"; +method = "POST"; +lParamQuery.add( HttpParam.build( "endpoint", endpoint) ); +lParamQuery.add( HttpParam.build( "extension", extension) ); +lParamQuery.add( HttpParam.build( "context", context) ); +lParamQuery.add( HttpParam.build( "priority", priority) ); +lParamQuery.add( HttpParam.build( "label", label) ); +lParamQuery.add( HttpParam.build( "app", app) ); +lParamQuery.add( HttpParam.build( "appArgs", appArgs) ); +lParamQuery.add( HttpParam.build( "callerId", callerId) ); +lParamQuery.add( HttpParam.build( "timeout", timeout) ); +lParamBody.addAll( HttpParam.build( "variables", variables) ); +lParamQuery.add( HttpParam.build( "channelId", channelId) ); +lParamQuery.add( HttpParam.build( "otherChannelId", otherChannelId) ); +lParamQuery.add( HttpParam.build( "originator", originator) ); +lParamQuery.add( HttpParam.build( "formats", formats) ); +lE.add( HttpResponse.build( 400, "Invalid parameters for originating a channel.") ); +lE.add( HttpResponse.build( 409, "Channel with given unique ID already exists.") ); +} + +@Override +public Channel originate(String endpoint, String extension, String context, long priority, String label, String app, String appArgs, String callerId, int timeout, Map variables, String channelId, String otherChannelId, String originator, String formats) throws RestException { +buildOriginate(endpoint, extension, context, priority, label, app, appArgs, callerId, timeout, variables, channelId, otherChannelId, originator, formats); +String json = httpActionSync(); +return deserializeJson( json, Channel_impl_ari_3_0_0.class ); +} + +@Override +public void originate(String endpoint, String extension, String context, long priority, String label, String app, String appArgs, String callerId, int timeout, Map variables, String channelId, String otherChannelId, String originator, String formats, AriCallback callback) { +buildOriginate(endpoint, extension, context, priority, label, app, appArgs, callerId, timeout, variables, channelId, otherChannelId, originator, formats); +httpActionAsync(callback, Channel_impl_ari_3_0_0.class); +} + +/********************************************************** + * Create a channel and place it in a Stasis app, but do not dial the channel yet. + * + * Create channel. + *********************************************************/ +private void buildCreate(String endpoint, String app, String appArgs, String channelId, String otherChannelId, String originator, String formats) { +reset(); +url = "/channels/create"; +method = "POST"; +lParamQuery.add( HttpParam.build( "endpoint", endpoint) ); +lParamQuery.add( HttpParam.build( "app", app) ); +lParamQuery.add( HttpParam.build( "appArgs", appArgs) ); +lParamQuery.add( HttpParam.build( "channelId", channelId) ); +lParamQuery.add( HttpParam.build( "otherChannelId", otherChannelId) ); +lParamQuery.add( HttpParam.build( "originator", originator) ); +lParamQuery.add( HttpParam.build( "formats", formats) ); +lE.add( HttpResponse.build( 409, "Channel with given unique ID already exists.") ); +} + +@Override +public Channel create(String endpoint, String app, String appArgs, String channelId, String otherChannelId, String originator, String formats) throws RestException { +buildCreate(endpoint, app, appArgs, channelId, otherChannelId, originator, formats); +String json = httpActionSync(); +return deserializeJson( json, Channel_impl_ari_3_0_0.class ); +} + +@Override +public void create(String endpoint, String app, String appArgs, String channelId, String otherChannelId, String originator, String formats, AriCallback callback) { +buildCreate(endpoint, app, appArgs, channelId, otherChannelId, originator, formats); +httpActionAsync(callback, Channel_impl_ari_3_0_0.class); +} + +/********************************************************** + * Active channel + * + * Channel details. + *********************************************************/ +private void buildGet(String channelId) { +reset(); +url = "/channels/" + channelId + ""; +method = "GET"; +lE.add( HttpResponse.build( 404, "Channel not found") ); +} + +@Override +public Channel get(String channelId) throws RestException { +buildGet(channelId); +String json = httpActionSync(); +return deserializeJson( json, Channel_impl_ari_3_0_0.class ); +} + +@Override +public void get(String channelId, AriCallback callback) { +buildGet(channelId); +httpActionAsync(callback, Channel_impl_ari_3_0_0.class); +} + +/********************************************************** + * Active channel + * + * Create a new channel (originate with id). + * The new channel is created immediately and a snapshot of it returned. If a Stasis application is provided it will be automatically subscribed to the originated channel for further events and updates. + *********************************************************/ +private void buildOriginateWithId(String channelId, String endpoint, String extension, String context, long priority, String label, String app, String appArgs, String callerId, int timeout, Map variables, String otherChannelId, String originator, String formats) { +reset(); +url = "/channels/" + channelId + ""; +method = "POST"; +lParamQuery.add( HttpParam.build( "endpoint", endpoint) ); +lParamQuery.add( HttpParam.build( "extension", extension) ); +lParamQuery.add( HttpParam.build( "context", context) ); +lParamQuery.add( HttpParam.build( "priority", priority) ); +lParamQuery.add( HttpParam.build( "label", label) ); +lParamQuery.add( HttpParam.build( "app", app) ); +lParamQuery.add( HttpParam.build( "appArgs", appArgs) ); +lParamQuery.add( HttpParam.build( "callerId", callerId) ); +lParamQuery.add( HttpParam.build( "timeout", timeout) ); +lParamBody.addAll( HttpParam.build( "variables", variables) ); +lParamQuery.add( HttpParam.build( "otherChannelId", otherChannelId) ); +lParamQuery.add( HttpParam.build( "originator", originator) ); +lParamQuery.add( HttpParam.build( "formats", formats) ); +lE.add( HttpResponse.build( 400, "Invalid parameters for originating a channel.") ); +lE.add( HttpResponse.build( 409, "Channel with given unique ID already exists.") ); +} + +@Override +public Channel originateWithId(String channelId, String endpoint, String extension, String context, long priority, String label, String app, String appArgs, String callerId, int timeout, Map variables, String otherChannelId, String originator, String formats) throws RestException { +buildOriginateWithId(channelId, endpoint, extension, context, priority, label, app, appArgs, callerId, timeout, variables, otherChannelId, originator, formats); +String json = httpActionSync(); +return deserializeJson( json, Channel_impl_ari_3_0_0.class ); +} + +@Override +public void originateWithId(String channelId, String endpoint, String extension, String context, long priority, String label, String app, String appArgs, String callerId, int timeout, Map variables, String otherChannelId, String originator, String formats, AriCallback callback) { +buildOriginateWithId(channelId, endpoint, extension, context, priority, label, app, appArgs, callerId, timeout, variables, otherChannelId, originator, formats); +httpActionAsync(callback, Channel_impl_ari_3_0_0.class); +} + +/********************************************************** + * Active channel + * + * Delete (i.e. hangup) a channel. + *********************************************************/ +private void buildHangup(String channelId, String reason) { +reset(); +url = "/channels/" + channelId + ""; +method = "DELETE"; +lParamQuery.add( HttpParam.build( "reason", reason) ); +lE.add( HttpResponse.build( 400, "Invalid reason for hangup provided") ); +lE.add( HttpResponse.build( 404, "Channel not found") ); +} + +@Override +public void hangup(String channelId, String reason) throws RestException { +buildHangup(channelId, reason); +String json = httpActionSync(); +} + +@Override +public void hangup(String channelId, String reason, AriCallback callback) { +buildHangup(channelId, reason); +httpActionAsync(callback); +} + +/********************************************************** + * Answer a channel + * + * Answer a channel. + *********************************************************/ +private void buildAnswer(String channelId) { +reset(); +url = "/channels/" + channelId + "/answer"; +method = "POST"; +lE.add( HttpResponse.build( 404, "Channel not found") ); +lE.add( HttpResponse.build( 409, "Channel not in a Stasis application") ); +lE.add( HttpResponse.build( 412, "Channel in invalid state") ); +} + +@Override +public void answer(String channelId) throws RestException { +buildAnswer(channelId); +String json = httpActionSync(); +} + +@Override +public void answer(String channelId, AriCallback callback) { +buildAnswer(channelId); +httpActionAsync(callback); +} + +/********************************************************** + * Exit application; continue execution in the dialplan + * + * Exit application; continue execution in the dialplan. + *********************************************************/ +private void buildContinueInDialplan(String channelId, String context, String extension, int priority, String label) { +reset(); +url = "/channels/" + channelId + "/continue"; +method = "POST"; +lParamQuery.add( HttpParam.build( "context", context) ); +lParamQuery.add( HttpParam.build( "extension", extension) ); +lParamQuery.add( HttpParam.build( "priority", priority) ); +lParamQuery.add( HttpParam.build( "label", label) ); +lE.add( HttpResponse.build( 404, "Channel not found") ); +lE.add( HttpResponse.build( 409, "Channel not in a Stasis application") ); +lE.add( HttpResponse.build( 412, "Channel in invalid state") ); +} + +@Override +public void continueInDialplan(String channelId, String context, String extension, int priority, String label) throws RestException { +buildContinueInDialplan(channelId, context, extension, priority, label); +String json = httpActionSync(); +} + +@Override +public void continueInDialplan(String channelId, String context, String extension, int priority, String label, AriCallback callback) { +buildContinueInDialplan(channelId, context, extension, priority, label); +httpActionAsync(callback); +} + +/********************************************************** + * Dial a channel + * + * Dial a created channel. + *********************************************************/ +private void buildDial(String channelId, String caller, int timeout) { +reset(); +url = "/channels/" + channelId + "/dial"; +method = "POST"; +lParamQuery.add( HttpParam.build( "caller", caller) ); +lParamQuery.add( HttpParam.build( "timeout", timeout) ); +lE.add( HttpResponse.build( 404, "Channel cannot be found.") ); +lE.add( HttpResponse.build( 409, "Channel cannot be dialed.") ); +} + +@Override +public void dial(String channelId, String caller, int timeout) throws RestException { +buildDial(channelId, caller, timeout); +String json = httpActionSync(); +} + +@Override +public void dial(String channelId, String caller, int timeout, AriCallback callback) { +buildDial(channelId, caller, timeout); +httpActionAsync(callback); +} + +/********************************************************** + * Send DTMF to a channel + * + * Send provided DTMF to a given channel. + *********************************************************/ +private void buildSendDTMF(String channelId, String dtmf, int before, int between, int duration, int after) { +reset(); +url = "/channels/" + channelId + "/dtmf"; +method = "POST"; +lParamQuery.add( HttpParam.build( "dtmf", dtmf) ); +lParamQuery.add( HttpParam.build( "before", before) ); +lParamQuery.add( HttpParam.build( "between", between) ); +lParamQuery.add( HttpParam.build( "duration", duration) ); +lParamQuery.add( HttpParam.build( "after", after) ); +lE.add( HttpResponse.build( 400, "DTMF is required") ); +lE.add( HttpResponse.build( 404, "Channel not found") ); +lE.add( HttpResponse.build( 409, "Channel not in a Stasis application") ); +lE.add( HttpResponse.build( 412, "Channel in invalid state") ); +} + +@Override +public void sendDTMF(String channelId, String dtmf, int before, int between, int duration, int after) throws RestException { +buildSendDTMF(channelId, dtmf, before, between, duration, after); +String json = httpActionSync(); +} + +@Override +public void sendDTMF(String channelId, String dtmf, int before, int between, int duration, int after, AriCallback callback) { +buildSendDTMF(channelId, dtmf, before, between, duration, after); +httpActionAsync(callback); +} + +/********************************************************** + * Put a channel on hold + * + * Hold a channel. + *********************************************************/ +private void buildHold(String channelId) { +reset(); +url = "/channels/" + channelId + "/hold"; +method = "POST"; +lE.add( HttpResponse.build( 404, "Channel not found") ); +lE.add( HttpResponse.build( 409, "Channel not in a Stasis application") ); +lE.add( HttpResponse.build( 412, "Channel in invalid state") ); +} + +@Override +public void hold(String channelId) throws RestException { +buildHold(channelId); +String json = httpActionSync(); +} + +@Override +public void hold(String channelId, AriCallback callback) { +buildHold(channelId); +httpActionAsync(callback); +} + +/********************************************************** + * Put a channel on hold + * + * Remove a channel from hold. + *********************************************************/ +private void buildUnhold(String channelId) { +reset(); +url = "/channels/" + channelId + "/hold"; +method = "DELETE"; +lE.add( HttpResponse.build( 404, "Channel not found") ); +lE.add( HttpResponse.build( 409, "Channel not in a Stasis application") ); +lE.add( HttpResponse.build( 412, "Channel in invalid state") ); +} + +@Override +public void unhold(String channelId) throws RestException { +buildUnhold(channelId); +String json = httpActionSync(); +} + +@Override +public void unhold(String channelId, AriCallback callback) { +buildUnhold(channelId); +httpActionAsync(callback); +} + +/********************************************************** + * Play music on hold to a channel + * + * Play music on hold to a channel. + * Using media operations such as /play on a channel playing MOH in this manner will suspend MOH without resuming automatically. If continuing music on hold is desired, the stasis application must reinitiate music on hold. + *********************************************************/ +private void buildStartMoh(String channelId, String mohClass) { +reset(); +url = "/channels/" + channelId + "/moh"; +method = "POST"; +lParamQuery.add( HttpParam.build( "mohClass", mohClass) ); +lE.add( HttpResponse.build( 404, "Channel not found") ); +lE.add( HttpResponse.build( 409, "Channel not in a Stasis application") ); +lE.add( HttpResponse.build( 412, "Channel in invalid state") ); +} + +@Override +public void startMoh(String channelId, String mohClass) throws RestException { +buildStartMoh(channelId, mohClass); +String json = httpActionSync(); +} + +@Override +public void startMoh(String channelId, String mohClass, AriCallback callback) { +buildStartMoh(channelId, mohClass); +httpActionAsync(callback); +} + +/********************************************************** + * Play music on hold to a channel + * + * Stop playing music on hold to a channel. + *********************************************************/ +private void buildStopMoh(String channelId) { +reset(); +url = "/channels/" + channelId + "/moh"; +method = "DELETE"; +lE.add( HttpResponse.build( 404, "Channel not found") ); +lE.add( HttpResponse.build( 409, "Channel not in a Stasis application") ); +lE.add( HttpResponse.build( 412, "Channel in invalid state") ); +} + +@Override +public void stopMoh(String channelId) throws RestException { +buildStopMoh(channelId); +String json = httpActionSync(); +} + +@Override +public void stopMoh(String channelId, AriCallback callback) { +buildStopMoh(channelId); +httpActionAsync(callback); +} + +/********************************************************** + * Mute a channel + * + * Mute a channel. + *********************************************************/ +private void buildMute(String channelId, String direction) { +reset(); +url = "/channels/" + channelId + "/mute"; +method = "POST"; +lParamQuery.add( HttpParam.build( "direction", direction) ); +lE.add( HttpResponse.build( 404, "Channel not found") ); +lE.add( HttpResponse.build( 409, "Channel not in a Stasis application") ); +lE.add( HttpResponse.build( 412, "Channel in invalid state") ); +} + +@Override +public void mute(String channelId, String direction) throws RestException { +buildMute(channelId, direction); +String json = httpActionSync(); +} + +@Override +public void mute(String channelId, String direction, AriCallback callback) { +buildMute(channelId, direction); +httpActionAsync(callback); +} + +/********************************************************** + * Mute a channel + * + * Unmute a channel. + *********************************************************/ +private void buildUnmute(String channelId, String direction) { +reset(); +url = "/channels/" + channelId + "/mute"; +method = "DELETE"; +lParamQuery.add( HttpParam.build( "direction", direction) ); +lE.add( HttpResponse.build( 404, "Channel not found") ); +lE.add( HttpResponse.build( 409, "Channel not in a Stasis application") ); +lE.add( HttpResponse.build( 412, "Channel in invalid state") ); +} + +@Override +public void unmute(String channelId, String direction) throws RestException { +buildUnmute(channelId, direction); +String json = httpActionSync(); +} + +@Override +public void unmute(String channelId, String direction, AriCallback callback) { +buildUnmute(channelId, direction); +httpActionAsync(callback); +} + +/********************************************************** + * Play media to a channel + * + * Start playback of media. + * The media URI may be any of a number of URI's. Currently sound:, recording:, number:, digits:, characters:, and tone: URI's are supported. This operation creates a playback resource that can be used to control the playback of media (pause, rewind, fast forward, etc.) + *********************************************************/ +private void buildPlay(String channelId, String media, String lang, int offsetms, int skipms, String playbackId) { +reset(); +url = "/channels/" + channelId + "/play"; +method = "POST"; +lParamQuery.add( HttpParam.build( "media", media) ); +lParamQuery.add( HttpParam.build( "lang", lang) ); +lParamQuery.add( HttpParam.build( "offsetms", offsetms) ); +lParamQuery.add( HttpParam.build( "skipms", skipms) ); +lParamQuery.add( HttpParam.build( "playbackId", playbackId) ); +lE.add( HttpResponse.build( 404, "Channel not found") ); +lE.add( HttpResponse.build( 409, "Channel not in a Stasis application") ); +lE.add( HttpResponse.build( 412, "Channel in invalid state") ); +} + +@Override +public Playback play(String channelId, String media, String lang, int offsetms, int skipms, String playbackId) throws RestException { +buildPlay(channelId, media, lang, offsetms, skipms, playbackId); +String json = httpActionSync(); +return deserializeJson( json, Playback_impl_ari_3_0_0.class ); +} + +@Override +public void play(String channelId, String media, String lang, int offsetms, int skipms, String playbackId, AriCallback callback) { +buildPlay(channelId, media, lang, offsetms, skipms, playbackId); +httpActionAsync(callback, Playback_impl_ari_3_0_0.class); +} + +/********************************************************** + * Play media to a channel + * + * Start playback of media and specify the playbackId. + * The media URI may be any of a number of URI's. Currently sound:, recording:, number:, digits:, characters:, and tone: URI's are supported. This operation creates a playback resource that can be used to control the playback of media (pause, rewind, fast forward, etc.) + *********************************************************/ +private void buildPlayWithId(String channelId, String playbackId, String media, String lang, int offsetms, int skipms) { +reset(); +url = "/channels/" + channelId + "/play/" + playbackId + ""; +method = "POST"; +lParamQuery.add( HttpParam.build( "media", media) ); +lParamQuery.add( HttpParam.build( "lang", lang) ); +lParamQuery.add( HttpParam.build( "offsetms", offsetms) ); +lParamQuery.add( HttpParam.build( "skipms", skipms) ); +lE.add( HttpResponse.build( 404, "Channel not found") ); +lE.add( HttpResponse.build( 409, "Channel not in a Stasis application") ); +lE.add( HttpResponse.build( 412, "Channel in invalid state") ); +} + +@Override +public Playback playWithId(String channelId, String playbackId, String media, String lang, int offsetms, int skipms) throws RestException { +buildPlayWithId(channelId, playbackId, media, lang, offsetms, skipms); +String json = httpActionSync(); +return deserializeJson( json, Playback_impl_ari_3_0_0.class ); +} + +@Override +public void playWithId(String channelId, String playbackId, String media, String lang, int offsetms, int skipms, AriCallback callback) { +buildPlayWithId(channelId, playbackId, media, lang, offsetms, skipms); +httpActionAsync(callback, Playback_impl_ari_3_0_0.class); +} + +/********************************************************** + * Record audio from a channel + * + * Start a recording. + * Record audio from a channel. Note that this will not capture audio sent to the channel. The bridge itself has a record feature if that's what you want. + *********************************************************/ +private void buildRecord(String channelId, String name, String format, int maxDurationSeconds, int maxSilenceSeconds, String ifExists, boolean beep, String terminateOn) { +reset(); +url = "/channels/" + channelId + "/record"; +method = "POST"; +lParamQuery.add( HttpParam.build( "name", name) ); +lParamQuery.add( HttpParam.build( "format", format) ); +lParamQuery.add( HttpParam.build( "maxDurationSeconds", maxDurationSeconds) ); +lParamQuery.add( HttpParam.build( "maxSilenceSeconds", maxSilenceSeconds) ); +lParamQuery.add( HttpParam.build( "ifExists", ifExists) ); +lParamQuery.add( HttpParam.build( "beep", beep) ); +lParamQuery.add( HttpParam.build( "terminateOn", terminateOn) ); +lE.add( HttpResponse.build( 400, "Invalid parameters") ); +lE.add( HttpResponse.build( 404, "Channel not found") ); +lE.add( HttpResponse.build( 409, "Channel is not in a Stasis application; the channel is currently bridged with other hcannels; A recording with the same name already exists on the system and can not be overwritten because it is in progress or ifExists=fail") ); +lE.add( HttpResponse.build( 422, "The format specified is unknown on this system") ); +} + +@Override +public LiveRecording record(String channelId, String name, String format, int maxDurationSeconds, int maxSilenceSeconds, String ifExists, boolean beep, String terminateOn) throws RestException { +buildRecord(channelId, name, format, maxDurationSeconds, maxSilenceSeconds, ifExists, beep, terminateOn); +String json = httpActionSync(); +return deserializeJson( json, LiveRecording_impl_ari_3_0_0.class ); +} + +@Override +public void record(String channelId, String name, String format, int maxDurationSeconds, int maxSilenceSeconds, String ifExists, boolean beep, String terminateOn, AriCallback callback) { +buildRecord(channelId, name, format, maxDurationSeconds, maxSilenceSeconds, ifExists, beep, terminateOn); +httpActionAsync(callback, LiveRecording_impl_ari_3_0_0.class); +} + +/********************************************************** + * Inform the channel that it should redirect itself to a different location. Note that this will almost certainly cause the channel to exit the application. + * + * Redirect the channel to a different location. + *********************************************************/ +private void buildRedirect(String channelId, String endpoint) { +reset(); +url = "/channels/" + channelId + "/redirect"; +method = "POST"; +lParamQuery.add( HttpParam.build( "endpoint", endpoint) ); +lE.add( HttpResponse.build( 400, "Endpoint parameter not provided") ); +lE.add( HttpResponse.build( 404, "Channel or endpoint not found") ); +lE.add( HttpResponse.build( 409, "Channel not in a Stasis application") ); +lE.add( HttpResponse.build( 422, "Endpoint is not the same type as the channel") ); +lE.add( HttpResponse.build( 412, "Channel in invalid state") ); +} + +@Override +public void redirect(String channelId, String endpoint) throws RestException { +buildRedirect(channelId, endpoint); +String json = httpActionSync(); +} + +@Override +public void redirect(String channelId, String endpoint, AriCallback callback) { +buildRedirect(channelId, endpoint); +httpActionAsync(callback); +} + +/********************************************************** + * Send a ringing indication to a channel + * + * Indicate ringing to a channel. + *********************************************************/ +private void buildRing(String channelId) { +reset(); +url = "/channels/" + channelId + "/ring"; +method = "POST"; +lE.add( HttpResponse.build( 404, "Channel not found") ); +lE.add( HttpResponse.build( 409, "Channel not in a Stasis application") ); +lE.add( HttpResponse.build( 412, "Channel in invalid state") ); +} + +@Override +public void ring(String channelId) throws RestException { +buildRing(channelId); +String json = httpActionSync(); +} + +@Override +public void ring(String channelId, AriCallback callback) { +buildRing(channelId); +httpActionAsync(callback); +} + +/********************************************************** + * Send a ringing indication to a channel + * + * Stop ringing indication on a channel if locally generated. + *********************************************************/ +private void buildRingStop(String channelId) { +reset(); +url = "/channels/" + channelId + "/ring"; +method = "DELETE"; +lE.add( HttpResponse.build( 404, "Channel not found") ); +lE.add( HttpResponse.build( 409, "Channel not in a Stasis application") ); +lE.add( HttpResponse.build( 412, "Channel in invalid state") ); +} + +@Override +public void ringStop(String channelId) throws RestException { +buildRingStop(channelId); +String json = httpActionSync(); +} + +@Override +public void ringStop(String channelId, AriCallback callback) { +buildRingStop(channelId); +httpActionAsync(callback); +} + +/********************************************************** + * Play silence to a channel + * + * Play silence to a channel. + * Using media operations such as /play on a channel playing silence in this manner will suspend silence without resuming automatically. + *********************************************************/ +private void buildStartSilence(String channelId) { +reset(); +url = "/channels/" + channelId + "/silence"; +method = "POST"; +lE.add( HttpResponse.build( 404, "Channel not found") ); +lE.add( HttpResponse.build( 409, "Channel not in a Stasis application") ); +lE.add( HttpResponse.build( 412, "Channel in invalid state") ); +} + +@Override +public void startSilence(String channelId) throws RestException { +buildStartSilence(channelId); +String json = httpActionSync(); +} + +@Override +public void startSilence(String channelId, AriCallback callback) { +buildStartSilence(channelId); +httpActionAsync(callback); +} + +/********************************************************** + * Play silence to a channel + * + * Stop playing silence to a channel. + *********************************************************/ +private void buildStopSilence(String channelId) { +reset(); +url = "/channels/" + channelId + "/silence"; +method = "DELETE"; +lE.add( HttpResponse.build( 404, "Channel not found") ); +lE.add( HttpResponse.build( 409, "Channel not in a Stasis application") ); +lE.add( HttpResponse.build( 412, "Channel in invalid state") ); +} + +@Override +public void stopSilence(String channelId) throws RestException { +buildStopSilence(channelId); +String json = httpActionSync(); +} + +@Override +public void stopSilence(String channelId, AriCallback callback) { +buildStopSilence(channelId); +httpActionAsync(callback); +} + +/********************************************************** + * Snoop (spy/whisper) on a channel + * + * Start snooping. + * Snoop (spy/whisper) on a specific channel. + *********************************************************/ +private void buildSnoopChannel(String channelId, String spy, String whisper, String app, String appArgs, String snoopId) { +reset(); +url = "/channels/" + channelId + "/snoop"; +method = "POST"; +lParamQuery.add( HttpParam.build( "spy", spy) ); +lParamQuery.add( HttpParam.build( "whisper", whisper) ); +lParamQuery.add( HttpParam.build( "app", app) ); +lParamQuery.add( HttpParam.build( "appArgs", appArgs) ); +lParamQuery.add( HttpParam.build( "snoopId", snoopId) ); +lE.add( HttpResponse.build( 400, "Invalid parameters") ); +lE.add( HttpResponse.build( 404, "Channel not found") ); +} + +@Override +public Channel snoopChannel(String channelId, String spy, String whisper, String app, String appArgs, String snoopId) throws RestException { +buildSnoopChannel(channelId, spy, whisper, app, appArgs, snoopId); +String json = httpActionSync(); +return deserializeJson( json, Channel_impl_ari_3_0_0.class ); +} + +@Override +public void snoopChannel(String channelId, String spy, String whisper, String app, String appArgs, String snoopId, AriCallback callback) { +buildSnoopChannel(channelId, spy, whisper, app, appArgs, snoopId); +httpActionAsync(callback, Channel_impl_ari_3_0_0.class); +} + +/********************************************************** + * Snoop (spy/whisper) on a channel + * + * Start snooping. + * Snoop (spy/whisper) on a specific channel. + *********************************************************/ +private void buildSnoopChannelWithId(String channelId, String snoopId, String spy, String whisper, String app, String appArgs) { +reset(); +url = "/channels/" + channelId + "/snoop/" + snoopId + ""; +method = "POST"; +lParamQuery.add( HttpParam.build( "spy", spy) ); +lParamQuery.add( HttpParam.build( "whisper", whisper) ); +lParamQuery.add( HttpParam.build( "app", app) ); +lParamQuery.add( HttpParam.build( "appArgs", appArgs) ); +lE.add( HttpResponse.build( 400, "Invalid parameters") ); +lE.add( HttpResponse.build( 404, "Channel not found") ); +} + +@Override +public Channel snoopChannelWithId(String channelId, String snoopId, String spy, String whisper, String app, String appArgs) throws RestException { +buildSnoopChannelWithId(channelId, snoopId, spy, whisper, app, appArgs); +String json = httpActionSync(); +return deserializeJson( json, Channel_impl_ari_3_0_0.class ); +} + +@Override +public void snoopChannelWithId(String channelId, String snoopId, String spy, String whisper, String app, String appArgs, AriCallback callback) { +buildSnoopChannelWithId(channelId, snoopId, spy, whisper, app, appArgs); +httpActionAsync(callback, Channel_impl_ari_3_0_0.class); +} + +/********************************************************** + * Variables on a channel + * + * Get the value of a channel variable or function. + *********************************************************/ +private void buildGetChannelVar(String channelId, String variable) { +reset(); +url = "/channels/" + channelId + "/variable"; +method = "GET"; +lParamQuery.add( HttpParam.build( "variable", variable) ); +lE.add( HttpResponse.build( 400, "Missing variable parameter.") ); +lE.add( HttpResponse.build( 404, "Channel or variable not found") ); +lE.add( HttpResponse.build( 409, "Channel not in a Stasis application") ); +} + +@Override +public Variable getChannelVar(String channelId, String variable) throws RestException { +buildGetChannelVar(channelId, variable); +String json = httpActionSync(); +return deserializeJson( json, Variable_impl_ari_3_0_0.class ); +} + +@Override +public void getChannelVar(String channelId, String variable, AriCallback callback) { +buildGetChannelVar(channelId, variable); +httpActionAsync(callback, Variable_impl_ari_3_0_0.class); +} + +/********************************************************** + * Variables on a channel + * + * Set the value of a channel variable or function. + *********************************************************/ +private void buildSetChannelVar(String channelId, String variable, String value) { +reset(); +url = "/channels/" + channelId + "/variable"; +method = "POST"; +lParamQuery.add( HttpParam.build( "variable", variable) ); +lParamQuery.add( HttpParam.build( "value", value) ); +lE.add( HttpResponse.build( 400, "Missing variable parameter.") ); +lE.add( HttpResponse.build( 404, "Channel not found") ); +lE.add( HttpResponse.build( 409, "Channel not in a Stasis application") ); +} + +@Override +public void setChannelVar(String channelId, String variable, String value) throws RestException { +buildSetChannelVar(channelId, variable, value); +String json = httpActionSync(); +} + +@Override +public void setChannelVar(String channelId, String variable, String value, AriCallback callback) { +buildSetChannelVar(channelId, variable, value); +httpActionAsync(callback); +} + +/********************************************************** + * + * + * @since ari_1_7_0 + *********************************************************/ +public void originate(String endpoint, String extension, String context, long priority, String label, String app, String appArgs, String callerId, int timeout, Map variables, String channelId, String otherChannelId, String originator, AriCallback callback){ + throw new UnsupportedOperationException("Method availble from ..."); +}; + +/********************************************************** + * Create a new channel (originate with id). + * The new channel is created immediately and a snapshot of it returned. If a Stasis application is provided it will be automatically subscribed to the originated channel for further events and updates. + * + * @since ari_1_5_0 + *********************************************************/ +public Channel originateWithId(String channelId, String endpoint, String extension, String context, long priority, String app, String appArgs, String callerId, int timeout, Map variables, String otherChannelId) throws RestException{ + throw new UnsupportedOperationException("Method availble from ..."); +}; + +/********************************************************** + * Start snooping. + * Snoop (spy/whisper) on a specific channel. + * + * @since ari_0_0_1 + *********************************************************/ +public Channel snoopChannel(String channelId, String spy, String whisper, String app, String appArgs) throws RestException{ + throw new UnsupportedOperationException("Method availble from ..."); +}; + +/********************************************************** + * + * + * @since ari_1_5_0 + *********************************************************/ +public void originate(String endpoint, String extension, String context, long priority, String app, String appArgs, String callerId, int timeout, Map variables, String channelId, String otherChannelId, AriCallback callback){ + throw new UnsupportedOperationException("Method availble from ..."); +}; + +/********************************************************** + * + * + * @since ari_0_0_1 + *********************************************************/ +public void continueInDialplan(String channelId, String context, String extension, int priority, AriCallback callback){ + throw new UnsupportedOperationException("Method availble from ..."); +}; + +/********************************************************** + * Start playback of media. + * The media URI may be any of a number of URI's. Currently sound: and recording: URI's are supported. This operation creates a playback resource that can be used to control the playback of media (pause, rewind, fast forward, etc.) + * + * @since ari_0_0_1 + *********************************************************/ +public Playback play(String channelId, String media, String lang, int offsetms, int skipms) throws RestException{ + throw new UnsupportedOperationException("Method availble from ..."); +}; + +/********************************************************** + * + * + * @since ari_0_0_1 + *********************************************************/ +public void play(String channelId, String media, String lang, int offsetms, int skipms, AriCallback callback){ + throw new UnsupportedOperationException("Method availble from ..."); +}; + +/********************************************************** + * + * + * @since ari_0_0_1 + *********************************************************/ +public void snoopChannel(String channelId, String spy, String whisper, String app, String appArgs, AriCallback callback){ + throw new UnsupportedOperationException("Method availble from ..."); +}; + +/********************************************************** + * Create a new channel (originate). + * The new channel is created immediately and a snapshot of it returned. If a Stasis application is provided it will be automatically subscribed to the originated channel for further events and updates. + * + * @since ari_1_7_0 + *********************************************************/ +public Channel originate(String endpoint, String extension, String context, long priority, String label, String app, String appArgs, String callerId, int timeout, Map variables, String channelId, String otherChannelId, String originator) throws RestException{ + throw new UnsupportedOperationException("Method availble from ..."); +}; + +/********************************************************** + * + * + * @since ari_1_5_0 + *********************************************************/ +public void originateWithId(String channelId, String endpoint, String extension, String context, long priority, String app, String appArgs, String callerId, int timeout, Map variables, String otherChannelId, AriCallback callback){ + throw new UnsupportedOperationException("Method availble from ..."); +}; + +/********************************************************** + * Create a new channel (originate with id). + * The new channel is created immediately and a snapshot of it returned. If a Stasis application is provided it will be automatically subscribed to the originated channel for further events and updates. + * + * @since ari_1_7_0 + *********************************************************/ +public Channel originateWithId(String channelId, String endpoint, String extension, String context, long priority, String label, String app, String appArgs, String callerId, int timeout, Map variables, String otherChannelId, String originator) throws RestException{ + throw new UnsupportedOperationException("Method availble from ..."); +}; + +/********************************************************** + * Create a new channel (originate). + * The new channel is created immediately and a snapshot of it returned. If a Stasis application is provided it will be automatically subscribed to the originated channel for further events and updates. + * + * @since ari_0_0_1 + *********************************************************/ +public Channel originate(String endpoint, String extension, String context, long priority, String app, String appArgs, String callerId, int timeout) throws RestException{ + throw new UnsupportedOperationException("Method availble from ..."); +}; + +/********************************************************** + * + * + * @since ari_1_7_0 + *********************************************************/ +public void originateWithId(String channelId, String endpoint, String extension, String context, long priority, String label, String app, String appArgs, String callerId, int timeout, Map variables, String otherChannelId, String originator, AriCallback callback){ + throw new UnsupportedOperationException("Method availble from ..."); +}; + +/********************************************************** + * Exit application{ + throw new UnsupportedOperationException("Method availble from ..."); +}; continue execution in the dialplan. + * + * + * @since ari_0_0_1 + *********************************************************/ +public void continueInDialplan(String channelId, String context, String extension, int priority) throws RestException{ + throw new UnsupportedOperationException("Method availble from ..."); +}; + +/********************************************************** + * Create a new channel (originate). + * The new channel is created immediately and a snapshot of it returned. If a Stasis application is provided it will be automatically subscribed to the originated channel for further events and updates. + * + * @since ari_1_5_0 + *********************************************************/ +public Channel originate(String endpoint, String extension, String context, long priority, String app, String appArgs, String callerId, int timeout, Map variables, String channelId, String otherChannelId) throws RestException{ + throw new UnsupportedOperationException("Method availble from ..."); +}; + +/********************************************************** + * + * + * @since ari_0_0_1 + *********************************************************/ +public void originate(String endpoint, String extension, String context, long priority, String app, String appArgs, String callerId, int timeout, AriCallback callback){ + throw new UnsupportedOperationException("Method availble from ..."); +}; + +}; + diff --git a/classes/ch/loway/oss/ari4java/generated/ari_3_0_0/actions/ActionDeviceStates_impl_ari_3_0_0.java b/classes/ch/loway/oss/ari4java/generated/ari_3_0_0/actions/ActionDeviceStates_impl_ari_3_0_0.java new file mode 100644 index 00000000..f1cad0b0 --- /dev/null +++ b/classes/ch/loway/oss/ari4java/generated/ari_3_0_0/actions/ActionDeviceStates_impl_ari_3_0_0.java @@ -0,0 +1,131 @@ +package ch.loway.oss.ari4java.generated.ari_3_0_0.actions; + +// ---------------------------------------------------- +// THIS CLASS WAS GENERATED AUTOMATICALLY +// PLEASE DO NOT EDIT +// Generated on: Tue Dec 19 09:55:49 CET 2017 +// ---------------------------------------------------- + +import ch.loway.oss.ari4java.generated.*; +import java.util.Date; +import java.util.List; +import java.util.Map; +import java.util.ArrayList; +import ch.loway.oss.ari4java.tools.BaseAriAction; +import ch.loway.oss.ari4java.tools.RestException; +import ch.loway.oss.ari4java.tools.AriCallback; +import ch.loway.oss.ari4java.tools.HttpParam; +import ch.loway.oss.ari4java.tools.HttpResponse; +import com.fasterxml.jackson.core.type.TypeReference; +import ch.loway.oss.ari4java.generated.ari_3_0_0.models.*; + +/********************************************************** + * + * Generated by: Apis + *********************************************************/ + + +public class ActionDeviceStates_impl_ari_3_0_0 extends BaseAriAction implements ActionDeviceStates { +/********************************************************** + * Device states + * + * List all ARI controlled device states. + *********************************************************/ +private void buildList() { +reset(); +url = "/deviceStates"; +method = "GET"; +} + +@Override +public List list() throws RestException { +buildList(); +String json = httpActionSync(); +return deserializeJsonAsAbstractList( json, + new TypeReference>() {} ); +} + +@Override +public void list(AriCallback> callback) { +buildList(); +httpActionAsync(callback, new TypeReference>() {}); +} + +/********************************************************** + * Device state + * + * Retrieve the current state of a device. + *********************************************************/ +private void buildGet(String deviceName) { +reset(); +url = "/deviceStates/" + deviceName + ""; +method = "GET"; +} + +@Override +public DeviceState get(String deviceName) throws RestException { +buildGet(deviceName); +String json = httpActionSync(); +return deserializeJson( json, DeviceState_impl_ari_3_0_0.class ); +} + +@Override +public void get(String deviceName, AriCallback callback) { +buildGet(deviceName); +httpActionAsync(callback, DeviceState_impl_ari_3_0_0.class); +} + +/********************************************************** + * Device state + * + * Change the state of a device controlled by ARI. (Note - implicitly creates the device state). + *********************************************************/ +private void buildUpdate(String deviceName, String deviceState) { +reset(); +url = "/deviceStates/" + deviceName + ""; +method = "PUT"; +lParamQuery.add( HttpParam.build( "deviceState", deviceState) ); +lE.add( HttpResponse.build( 404, "Device name is missing") ); +lE.add( HttpResponse.build( 409, "Uncontrolled device specified") ); +} + +@Override +public void update(String deviceName, String deviceState) throws RestException { +buildUpdate(deviceName, deviceState); +String json = httpActionSync(); +} + +@Override +public void update(String deviceName, String deviceState, AriCallback callback) { +buildUpdate(deviceName, deviceState); +httpActionAsync(callback); +} + +/********************************************************** + * Device state + * + * Destroy a device-state controlled by ARI. + *********************************************************/ +private void buildDelete(String deviceName) { +reset(); +url = "/deviceStates/" + deviceName + ""; +method = "DELETE"; +lE.add( HttpResponse.build( 404, "Device name is missing") ); +lE.add( HttpResponse.build( 409, "Uncontrolled device specified") ); +} + +@Override +public void delete(String deviceName) throws RestException { +buildDelete(deviceName); +String json = httpActionSync(); +} + +@Override +public void delete(String deviceName, AriCallback callback) { +buildDelete(deviceName); +httpActionAsync(callback); +} + +/** No missing signatures from interface */ +}; + diff --git a/classes/ch/loway/oss/ari4java/generated/ari_3_0_0/actions/ActionEndpoints_impl_ari_3_0_0.java b/classes/ch/loway/oss/ari4java/generated/ari_3_0_0/actions/ActionEndpoints_impl_ari_3_0_0.java new file mode 100644 index 00000000..9d744740 --- /dev/null +++ b/classes/ch/loway/oss/ari4java/generated/ari_3_0_0/actions/ActionEndpoints_impl_ari_3_0_0.java @@ -0,0 +1,165 @@ +package ch.loway.oss.ari4java.generated.ari_3_0_0.actions; + +// ---------------------------------------------------- +// THIS CLASS WAS GENERATED AUTOMATICALLY +// PLEASE DO NOT EDIT +// Generated on: Tue Dec 19 09:55:49 CET 2017 +// ---------------------------------------------------- + +import ch.loway.oss.ari4java.generated.*; +import java.util.Date; +import java.util.List; +import java.util.Map; +import java.util.ArrayList; +import ch.loway.oss.ari4java.tools.BaseAriAction; +import ch.loway.oss.ari4java.tools.RestException; +import ch.loway.oss.ari4java.tools.AriCallback; +import ch.loway.oss.ari4java.tools.HttpParam; +import ch.loway.oss.ari4java.tools.HttpResponse; +import com.fasterxml.jackson.core.type.TypeReference; +import ch.loway.oss.ari4java.generated.ari_3_0_0.models.*; + +/********************************************************** + * + * Generated by: Apis + *********************************************************/ + + +public class ActionEndpoints_impl_ari_3_0_0 extends BaseAriAction implements ActionEndpoints { +/********************************************************** + * Asterisk endpoints + * + * List all endpoints. + *********************************************************/ +private void buildList() { +reset(); +url = "/endpoints"; +method = "GET"; +} + +@Override +public List list() throws RestException { +buildList(); +String json = httpActionSync(); +return deserializeJsonAsAbstractList( json, + new TypeReference>() {} ); +} + +@Override +public void list(AriCallback> callback) { +buildList(); +httpActionAsync(callback, new TypeReference>() {}); +} + +/********************************************************** + * Send a message to some technology URI or endpoint. + * + * Send a message to some technology URI or endpoint. + *********************************************************/ +private void buildSendMessage(String to, String from, String body, Map variables) { +reset(); +url = "/endpoints/sendMessage"; +method = "PUT"; +lParamQuery.add( HttpParam.build( "to", to) ); +lParamQuery.add( HttpParam.build( "from", from) ); +lParamQuery.add( HttpParam.build( "body", body) ); +lParamBody.addAll( HttpParam.build( "variables", variables) ); +lE.add( HttpResponse.build( 400, "Invalid parameters for sending a message.") ); +lE.add( HttpResponse.build( 404, "Endpoint not found") ); +} + +@Override +public void sendMessage(String to, String from, String body, Map variables) throws RestException { +buildSendMessage(to, from, body, variables); +String json = httpActionSync(); +} + +@Override +public void sendMessage(String to, String from, String body, Map variables, AriCallback callback) { +buildSendMessage(to, from, body, variables); +httpActionAsync(callback); +} + +/********************************************************** + * Asterisk endpoints + * + * List available endoints for a given endpoint technology. + *********************************************************/ +private void buildListByTech(String tech) { +reset(); +url = "/endpoints/" + tech + ""; +method = "GET"; +lE.add( HttpResponse.build( 404, "Endpoints not found") ); +} + +@Override +public List listByTech(String tech) throws RestException { +buildListByTech(tech); +String json = httpActionSync(); +return deserializeJsonAsAbstractList( json, + new TypeReference>() {} ); +} + +@Override +public void listByTech(String tech, AriCallback> callback) { +buildListByTech(tech); +httpActionAsync(callback, new TypeReference>() {}); +} + +/********************************************************** + * Single endpoint + * + * Details for an endpoint. + *********************************************************/ +private void buildGet(String tech, String resource) { +reset(); +url = "/endpoints/" + tech + "/" + resource + ""; +method = "GET"; +lE.add( HttpResponse.build( 400, "Invalid parameters for sending a message.") ); +lE.add( HttpResponse.build( 404, "Endpoints not found") ); +} + +@Override +public Endpoint get(String tech, String resource) throws RestException { +buildGet(tech, resource); +String json = httpActionSync(); +return deserializeJson( json, Endpoint_impl_ari_3_0_0.class ); +} + +@Override +public void get(String tech, String resource, AriCallback callback) { +buildGet(tech, resource); +httpActionAsync(callback, Endpoint_impl_ari_3_0_0.class); +} + +/********************************************************** + * Send a message to some endpoint in a technology. + * + * Send a message to some endpoint in a technology. + *********************************************************/ +private void buildSendMessageToEndpoint(String tech, String resource, String from, String body, Map variables) { +reset(); +url = "/endpoints/" + tech + "/" + resource + "/sendMessage"; +method = "PUT"; +lParamQuery.add( HttpParam.build( "from", from) ); +lParamQuery.add( HttpParam.build( "body", body) ); +lParamBody.addAll( HttpParam.build( "variables", variables) ); +lE.add( HttpResponse.build( 400, "Invalid parameters for sending a message.") ); +lE.add( HttpResponse.build( 404, "Endpoint not found") ); +} + +@Override +public void sendMessageToEndpoint(String tech, String resource, String from, String body, Map variables) throws RestException { +buildSendMessageToEndpoint(tech, resource, from, body, variables); +String json = httpActionSync(); +} + +@Override +public void sendMessageToEndpoint(String tech, String resource, String from, String body, Map variables, AriCallback callback) { +buildSendMessageToEndpoint(tech, resource, from, body, variables); +httpActionAsync(callback); +} + +/** No missing signatures from interface */ +}; + diff --git a/classes/ch/loway/oss/ari4java/generated/ari_3_0_0/actions/ActionEvents_impl_ari_3_0_0.java b/classes/ch/loway/oss/ari4java/generated/ari_3_0_0/actions/ActionEvents_impl_ari_3_0_0.java new file mode 100644 index 00000000..7dab01c5 --- /dev/null +++ b/classes/ch/loway/oss/ari4java/generated/ari_3_0_0/actions/ActionEvents_impl_ari_3_0_0.java @@ -0,0 +1,103 @@ +package ch.loway.oss.ari4java.generated.ari_3_0_0.actions; + +// ---------------------------------------------------- +// THIS CLASS WAS GENERATED AUTOMATICALLY +// PLEASE DO NOT EDIT +// Generated on: Tue Dec 19 09:55:49 CET 2017 +// ---------------------------------------------------- + +import ch.loway.oss.ari4java.generated.*; +import java.util.Date; +import java.util.List; +import java.util.Map; +import java.util.ArrayList; +import ch.loway.oss.ari4java.tools.BaseAriAction; +import ch.loway.oss.ari4java.tools.RestException; +import ch.loway.oss.ari4java.tools.AriCallback; +import ch.loway.oss.ari4java.tools.HttpParam; +import ch.loway.oss.ari4java.tools.HttpResponse; +import com.fasterxml.jackson.core.type.TypeReference; +import ch.loway.oss.ari4java.generated.ari_3_0_0.models.*; + +/********************************************************** + * + * Generated by: Apis + *********************************************************/ + + +public class ActionEvents_impl_ari_3_0_0 extends BaseAriAction implements ActionEvents { +/********************************************************** + * Events from Asterisk to applications + * + * WebSocket connection for events. + *********************************************************/ +private void buildEventWebsocket(String app, boolean subscribeAll) { +reset(); +url = "/events"; +method = "GET"; +lParamQuery.add( HttpParam.build( "app", app) ); +lParamQuery.add( HttpParam.build( "subscribeAll", subscribeAll) ); +wsUpgrade = true; +} + +@Override +public Message eventWebsocket(String app, boolean subscribeAll) throws RestException { +throw new RestException("No synchronous operation on WebSocket"); +} + +@Override +public void eventWebsocket(String app, boolean subscribeAll, AriCallback callback) { +buildEventWebsocket(app, subscribeAll); +httpActionAsync(callback, Message_impl_ari_3_0_0.class); +} + +/********************************************************** + * Stasis application user events + * + * Generate a user event. + *********************************************************/ +private void buildUserEvent(String eventName, String application, String source, Map variables) { +reset(); +url = "/events/user/" + eventName + ""; +method = "POST"; +lParamQuery.add( HttpParam.build( "application", application) ); +lParamQuery.add( HttpParam.build( "source", source) ); +lParamBody.addAll( HttpParam.build( "variables", variables) ); +lE.add( HttpResponse.build( 404, "Application does not exist.") ); +lE.add( HttpResponse.build( 422, "Event source not found.") ); +lE.add( HttpResponse.build( 400, "Invalid even tsource URI or userevent data.") ); +} + +@Override +public void userEvent(String eventName, String application, String source, Map variables) throws RestException { +buildUserEvent(eventName, application, source, variables); +String json = httpActionSync(); +} + +@Override +public void userEvent(String eventName, String application, String source, Map variables, AriCallback callback) { +buildUserEvent(eventName, application, source, variables); +httpActionAsync(callback); +} + +/********************************************************** + * WebSocket connection for events. + * + * + * @since ari_0_0_1 + *********************************************************/ +public Message eventWebsocket(String app) throws RestException{ + throw new UnsupportedOperationException("Method availble from ..."); +}; + +/********************************************************** + * + * + * @since ari_0_0_1 + *********************************************************/ +public void eventWebsocket(String app, AriCallback callback){ + throw new UnsupportedOperationException("Method availble from ..."); +}; + +}; + diff --git a/classes/ch/loway/oss/ari4java/generated/ari_3_0_0/actions/ActionPlaybacks_impl_ari_3_0_0.java b/classes/ch/loway/oss/ari4java/generated/ari_3_0_0/actions/ActionPlaybacks_impl_ari_3_0_0.java new file mode 100644 index 00000000..be9cb045 --- /dev/null +++ b/classes/ch/loway/oss/ari4java/generated/ari_3_0_0/actions/ActionPlaybacks_impl_ari_3_0_0.java @@ -0,0 +1,107 @@ +package ch.loway.oss.ari4java.generated.ari_3_0_0.actions; + +// ---------------------------------------------------- +// THIS CLASS WAS GENERATED AUTOMATICALLY +// PLEASE DO NOT EDIT +// Generated on: Tue Dec 19 09:55:49 CET 2017 +// ---------------------------------------------------- + +import ch.loway.oss.ari4java.generated.*; +import java.util.Date; +import java.util.List; +import java.util.Map; +import java.util.ArrayList; +import ch.loway.oss.ari4java.tools.BaseAriAction; +import ch.loway.oss.ari4java.tools.RestException; +import ch.loway.oss.ari4java.tools.AriCallback; +import ch.loway.oss.ari4java.tools.HttpParam; +import ch.loway.oss.ari4java.tools.HttpResponse; +import com.fasterxml.jackson.core.type.TypeReference; +import ch.loway.oss.ari4java.generated.ari_3_0_0.models.*; + +/********************************************************** + * + * Generated by: Apis + *********************************************************/ + + +public class ActionPlaybacks_impl_ari_3_0_0 extends BaseAriAction implements ActionPlaybacks { +/********************************************************** + * Control object for a playback operation. + * + * Get a playback's details. + *********************************************************/ +private void buildGet(String playbackId) { +reset(); +url = "/playbacks/" + playbackId + ""; +method = "GET"; +lE.add( HttpResponse.build( 404, "The playback cannot be found") ); +} + +@Override +public Playback get(String playbackId) throws RestException { +buildGet(playbackId); +String json = httpActionSync(); +return deserializeJson( json, Playback_impl_ari_3_0_0.class ); +} + +@Override +public void get(String playbackId, AriCallback callback) { +buildGet(playbackId); +httpActionAsync(callback, Playback_impl_ari_3_0_0.class); +} + +/********************************************************** + * Control object for a playback operation. + * + * Stop a playback. + *********************************************************/ +private void buildStop(String playbackId) { +reset(); +url = "/playbacks/" + playbackId + ""; +method = "DELETE"; +lE.add( HttpResponse.build( 404, "The playback cannot be found") ); +} + +@Override +public void stop(String playbackId) throws RestException { +buildStop(playbackId); +String json = httpActionSync(); +} + +@Override +public void stop(String playbackId, AriCallback callback) { +buildStop(playbackId); +httpActionAsync(callback); +} + +/********************************************************** + * Control object for a playback operation. + * + * Control a playback. + *********************************************************/ +private void buildControl(String playbackId, String operation) { +reset(); +url = "/playbacks/" + playbackId + "/control"; +method = "POST"; +lParamQuery.add( HttpParam.build( "operation", operation) ); +lE.add( HttpResponse.build( 400, "The provided operation parameter was invalid") ); +lE.add( HttpResponse.build( 404, "The playback cannot be found") ); +lE.add( HttpResponse.build( 409, "The operation cannot be performed in the playback's current state") ); +} + +@Override +public void control(String playbackId, String operation) throws RestException { +buildControl(playbackId, operation); +String json = httpActionSync(); +} + +@Override +public void control(String playbackId, String operation, AriCallback callback) { +buildControl(playbackId, operation); +httpActionAsync(callback); +} + +/** No missing signatures from interface */ +}; + diff --git a/classes/ch/loway/oss/ari4java/generated/ari_3_0_0/actions/ActionRecordings_impl_ari_3_0_0.java b/classes/ch/loway/oss/ari4java/generated/ari_3_0_0/actions/ActionRecordings_impl_ari_3_0_0.java new file mode 100644 index 00000000..90fdb18a --- /dev/null +++ b/classes/ch/loway/oss/ari4java/generated/ari_3_0_0/actions/ActionRecordings_impl_ari_3_0_0.java @@ -0,0 +1,333 @@ +package ch.loway.oss.ari4java.generated.ari_3_0_0.actions; + +// ---------------------------------------------------- +// THIS CLASS WAS GENERATED AUTOMATICALLY +// PLEASE DO NOT EDIT +// Generated on: Tue Dec 19 09:55:49 CET 2017 +// ---------------------------------------------------- + +import ch.loway.oss.ari4java.generated.*; +import java.util.Date; +import java.util.List; +import java.util.Map; +import java.util.ArrayList; +import ch.loway.oss.ari4java.tools.BaseAriAction; +import ch.loway.oss.ari4java.tools.RestException; +import ch.loway.oss.ari4java.tools.AriCallback; +import ch.loway.oss.ari4java.tools.HttpParam; +import ch.loway.oss.ari4java.tools.HttpResponse; +import com.fasterxml.jackson.core.type.TypeReference; +import ch.loway.oss.ari4java.generated.ari_3_0_0.models.*; + +/********************************************************** + * + * Generated by: Apis + *********************************************************/ + + +public class ActionRecordings_impl_ari_3_0_0 extends BaseAriAction implements ActionRecordings { +/********************************************************** + * A recording that is in progress + * + * List live recordings. + *********************************************************/ +private void buildGetLive(String recordingName) { +reset(); +url = "/recordings/live/" + recordingName + ""; +method = "GET"; +lE.add( HttpResponse.build( 404, "Recording not found") ); +} + +@Override +public LiveRecording getLive(String recordingName) throws RestException { +buildGetLive(recordingName); +String json = httpActionSync(); +return deserializeJson( json, LiveRecording_impl_ari_3_0_0.class ); +} + +@Override +public void getLive(String recordingName, AriCallback callback) { +buildGetLive(recordingName); +httpActionAsync(callback, LiveRecording_impl_ari_3_0_0.class); +} + +/********************************************************** + * A recording that is in progress + * + * Stop a live recording and discard it. + *********************************************************/ +private void buildCancel(String recordingName) { +reset(); +url = "/recordings/live/" + recordingName + ""; +method = "DELETE"; +lE.add( HttpResponse.build( 404, "Recording not found") ); +} + +@Override +public void cancel(String recordingName) throws RestException { +buildCancel(recordingName); +String json = httpActionSync(); +} + +@Override +public void cancel(String recordingName, AriCallback callback) { +buildCancel(recordingName); +httpActionAsync(callback); +} + +/********************************************************** + * + * + * Mute a live recording. + * Muting a recording suspends silence detection, which will be restarted when the recording is unmuted. + *********************************************************/ +private void buildMute(String recordingName) { +reset(); +url = "/recordings/live/" + recordingName + "/mute"; +method = "POST"; +lE.add( HttpResponse.build( 404, "Recording not found") ); +lE.add( HttpResponse.build( 409, "Recording not in session") ); +} + +@Override +public void mute(String recordingName) throws RestException { +buildMute(recordingName); +String json = httpActionSync(); +} + +@Override +public void mute(String recordingName, AriCallback callback) { +buildMute(recordingName); +httpActionAsync(callback); +} + +/********************************************************** + * + * + * Unmute a live recording. + *********************************************************/ +private void buildUnmute(String recordingName) { +reset(); +url = "/recordings/live/" + recordingName + "/mute"; +method = "DELETE"; +lE.add( HttpResponse.build( 404, "Recording not found") ); +lE.add( HttpResponse.build( 409, "Recording not in session") ); +} + +@Override +public void unmute(String recordingName) throws RestException { +buildUnmute(recordingName); +String json = httpActionSync(); +} + +@Override +public void unmute(String recordingName, AriCallback callback) { +buildUnmute(recordingName); +httpActionAsync(callback); +} + +/********************************************************** + * + * + * Pause a live recording. + * Pausing a recording suspends silence detection, which will be restarted when the recording is unpaused. Paused time is not included in the accounting for maxDurationSeconds. + *********************************************************/ +private void buildPause(String recordingName) { +reset(); +url = "/recordings/live/" + recordingName + "/pause"; +method = "POST"; +lE.add( HttpResponse.build( 404, "Recording not found") ); +lE.add( HttpResponse.build( 409, "Recording not in session") ); +} + +@Override +public void pause(String recordingName) throws RestException { +buildPause(recordingName); +String json = httpActionSync(); +} + +@Override +public void pause(String recordingName, AriCallback callback) { +buildPause(recordingName); +httpActionAsync(callback); +} + +/********************************************************** + * + * + * Unpause a live recording. + *********************************************************/ +private void buildUnpause(String recordingName) { +reset(); +url = "/recordings/live/" + recordingName + "/pause"; +method = "DELETE"; +lE.add( HttpResponse.build( 404, "Recording not found") ); +lE.add( HttpResponse.build( 409, "Recording not in session") ); +} + +@Override +public void unpause(String recordingName) throws RestException { +buildUnpause(recordingName); +String json = httpActionSync(); +} + +@Override +public void unpause(String recordingName, AriCallback callback) { +buildUnpause(recordingName); +httpActionAsync(callback); +} + +/********************************************************** + * + * + * Stop a live recording and store it. + *********************************************************/ +private void buildStop(String recordingName) { +reset(); +url = "/recordings/live/" + recordingName + "/stop"; +method = "POST"; +lE.add( HttpResponse.build( 404, "Recording not found") ); +} + +@Override +public void stop(String recordingName) throws RestException { +buildStop(recordingName); +String json = httpActionSync(); +} + +@Override +public void stop(String recordingName, AriCallback callback) { +buildStop(recordingName); +httpActionAsync(callback); +} + +/********************************************************** + * Recordings + * + * List recordings that are complete. + *********************************************************/ +private void buildListStored() { +reset(); +url = "/recordings/stored"; +method = "GET"; +} + +@Override +public List listStored() throws RestException { +buildListStored(); +String json = httpActionSync(); +return deserializeJsonAsAbstractList( json, + new TypeReference>() {} ); +} + +@Override +public void listStored(AriCallback> callback) { +buildListStored(); +httpActionAsync(callback, new TypeReference>() {}); +} + +/********************************************************** + * Individual recording + * + * Get a stored recording's details. + *********************************************************/ +private void buildGetStored(String recordingName) { +reset(); +url = "/recordings/stored/" + recordingName + ""; +method = "GET"; +lE.add( HttpResponse.build( 404, "Recording not found") ); +} + +@Override +public StoredRecording getStored(String recordingName) throws RestException { +buildGetStored(recordingName); +String json = httpActionSync(); +return deserializeJson( json, StoredRecording_impl_ari_3_0_0.class ); +} + +@Override +public void getStored(String recordingName, AriCallback callback) { +buildGetStored(recordingName); +httpActionAsync(callback, StoredRecording_impl_ari_3_0_0.class); +} + +/********************************************************** + * Individual recording + * + * Delete a stored recording. + *********************************************************/ +private void buildDeleteStored(String recordingName) { +reset(); +url = "/recordings/stored/" + recordingName + ""; +method = "DELETE"; +lE.add( HttpResponse.build( 404, "Recording not found") ); +} + +@Override +public void deleteStored(String recordingName) throws RestException { +buildDeleteStored(recordingName); +String json = httpActionSync(); +} + +@Override +public void deleteStored(String recordingName, AriCallback callback) { +buildDeleteStored(recordingName); +httpActionAsync(callback); +} + +/********************************************************** + * Copy an individual recording + * + * Copy a stored recording. + *********************************************************/ +private void buildCopyStored(String recordingName, String destinationRecordingName) { +reset(); +url = "/recordings/stored/" + recordingName + "/copy"; +method = "POST"; +lParamQuery.add( HttpParam.build( "destinationRecordingName", destinationRecordingName) ); +lE.add( HttpResponse.build( 404, "Recording not found") ); +lE.add( HttpResponse.build( 409, "A recording with the same name already exists on the system") ); +} + +@Override +public StoredRecording copyStored(String recordingName, String destinationRecordingName) throws RestException { +buildCopyStored(recordingName, destinationRecordingName); +String json = httpActionSync(); +return deserializeJson( json, StoredRecording_impl_ari_3_0_0.class ); +} + +@Override +public void copyStored(String recordingName, String destinationRecordingName, AriCallback callback) { +buildCopyStored(recordingName, destinationRecordingName); +httpActionAsync(callback, StoredRecording_impl_ari_3_0_0.class); +} + +/********************************************************** + * The actual file associated with the stored recording + * + * Get the file associated with the stored recording. + *********************************************************/ +private void buildGetStoredFile(String recordingName) { +reset(); +url = "/recordings/stored/" + recordingName + "/file"; +method = "GET"; +lE.add( HttpResponse.build( 403, "The recording file could not be opened") ); +lE.add( HttpResponse.build( 404, "Recording not found") ); +} + +@Override +public byte[] getStoredFile(String recordingName) throws RestException { +buildGetStoredFile(recordingName); +String json = httpActionSync(); +return deserializeJson( json, byte[].class ); +} + +@Override +public void getStoredFile(String recordingName, AriCallback callback) { +buildGetStoredFile(recordingName); +httpActionAsync(callback, byte[].class); +} + +/** No missing signatures from interface */ +}; + diff --git a/classes/ch/loway/oss/ari4java/generated/ari_3_0_0/actions/ActionSounds_impl_ari_3_0_0.java b/classes/ch/loway/oss/ari4java/generated/ari_3_0_0/actions/ActionSounds_impl_ari_3_0_0.java new file mode 100644 index 00000000..9476aeea --- /dev/null +++ b/classes/ch/loway/oss/ari4java/generated/ari_3_0_0/actions/ActionSounds_impl_ari_3_0_0.java @@ -0,0 +1,82 @@ +package ch.loway.oss.ari4java.generated.ari_3_0_0.actions; + +// ---------------------------------------------------- +// THIS CLASS WAS GENERATED AUTOMATICALLY +// PLEASE DO NOT EDIT +// Generated on: Tue Dec 19 09:55:49 CET 2017 +// ---------------------------------------------------- + +import ch.loway.oss.ari4java.generated.*; +import java.util.Date; +import java.util.List; +import java.util.Map; +import java.util.ArrayList; +import ch.loway.oss.ari4java.tools.BaseAriAction; +import ch.loway.oss.ari4java.tools.RestException; +import ch.loway.oss.ari4java.tools.AriCallback; +import ch.loway.oss.ari4java.tools.HttpParam; +import ch.loway.oss.ari4java.tools.HttpResponse; +import com.fasterxml.jackson.core.type.TypeReference; +import ch.loway.oss.ari4java.generated.ari_3_0_0.models.*; + +/********************************************************** + * + * Generated by: Apis + *********************************************************/ + + +public class ActionSounds_impl_ari_3_0_0 extends BaseAriAction implements ActionSounds { +/********************************************************** + * Sounds + * + * List all sounds. + *********************************************************/ +private void buildList(String lang, String format) { +reset(); +url = "/sounds"; +method = "GET"; +lParamQuery.add( HttpParam.build( "lang", lang) ); +lParamQuery.add( HttpParam.build( "format", format) ); +} + +@Override +public List list(String lang, String format) throws RestException { +buildList(lang, format); +String json = httpActionSync(); +return deserializeJsonAsAbstractList( json, + new TypeReference>() {} ); +} + +@Override +public void list(String lang, String format, AriCallback> callback) { +buildList(lang, format); +httpActionAsync(callback, new TypeReference>() {}); +} + +/********************************************************** + * Individual sound + * + * Get a sound's details. + *********************************************************/ +private void buildGet(String soundId) { +reset(); +url = "/sounds/" + soundId + ""; +method = "GET"; +} + +@Override +public Sound get(String soundId) throws RestException { +buildGet(soundId); +String json = httpActionSync(); +return deserializeJson( json, Sound_impl_ari_3_0_0.class ); +} + +@Override +public void get(String soundId, AriCallback callback) { +buildGet(soundId); +httpActionAsync(callback, Sound_impl_ari_3_0_0.class); +} + +/** No missing signatures from interface */ +}; + diff --git a/classes/ch/loway/oss/ari4java/generated/ari_3_0_0/models/ApplicationReplaced_impl_ari_3_0_0.java b/classes/ch/loway/oss/ari4java/generated/ari_3_0_0/models/ApplicationReplaced_impl_ari_3_0_0.java new file mode 100644 index 00000000..fa257066 --- /dev/null +++ b/classes/ch/loway/oss/ari4java/generated/ari_3_0_0/models/ApplicationReplaced_impl_ari_3_0_0.java @@ -0,0 +1,28 @@ +package ch.loway.oss.ari4java.generated.ari_3_0_0.models; + +// ---------------------------------------------------- +// THIS CLASS WAS GENERATED AUTOMATICALLY +// PLEASE DO NOT EDIT +// Generated on: Tue Dec 19 09:55:49 CET 2017 +// ---------------------------------------------------- + +import ch.loway.oss.ari4java.generated.*; +import com.fasterxml.jackson.databind.annotation.JsonDeserialize; +import java.util.Date; +import java.util.List; +import java.util.Map; + +/********************************************************** + * Notification that another WebSocket has taken over for an application. + * + * An application may only be subscribed to by a single WebSocket at a time. If multiple WebSockets attempt to subscribe to the same application, the newer WebSocket wins, and the older one receives this event. + * + * Defined in file: events.json + * Generated by: Model + *********************************************************/ + +public class ApplicationReplaced_impl_ari_3_0_0 extends Event_impl_ari_3_0_0 implements ApplicationReplaced, java.io.Serializable { +private static final long serialVersionUID = 1L; +/** No missing signatures from interface */ +} + diff --git a/classes/ch/loway/oss/ari4java/generated/ari_3_0_0/models/Application_impl_ari_3_0_0.java b/classes/ch/loway/oss/ari4java/generated/ari_3_0_0/models/Application_impl_ari_3_0_0.java new file mode 100644 index 00000000..98efa4e4 --- /dev/null +++ b/classes/ch/loway/oss/ari4java/generated/ari_3_0_0/models/Application_impl_ari_3_0_0.java @@ -0,0 +1,81 @@ +package ch.loway.oss.ari4java.generated.ari_3_0_0.models; + +// ---------------------------------------------------- +// THIS CLASS WAS GENERATED AUTOMATICALLY +// PLEASE DO NOT EDIT +// Generated on: Tue Dec 19 09:55:49 CET 2017 +// ---------------------------------------------------- + +import ch.loway.oss.ari4java.generated.*; +import com.fasterxml.jackson.databind.annotation.JsonDeserialize; +import java.util.Date; +import java.util.List; +import java.util.Map; + +/********************************************************** + * Details of a Stasis application + * + * Defined in file: applications.json + * Generated by: Model + *********************************************************/ + +public class Application_impl_ari_3_0_0 implements Application, java.io.Serializable { +private static final long serialVersionUID = 1L; + /** Id's for bridges subscribed to. */ + private List bridge_ids; + public List getBridge_ids() { + return bridge_ids; + } + + @JsonDeserialize( contentAs=String.class ) + public void setBridge_ids(List val ) { + bridge_ids = val; + } + + /** Id's for channels subscribed to. */ + private List channel_ids; + public List getChannel_ids() { + return channel_ids; + } + + @JsonDeserialize( contentAs=String.class ) + public void setChannel_ids(List val ) { + channel_ids = val; + } + + /** Names of the devices subscribed to. */ + private List device_names; + public List getDevice_names() { + return device_names; + } + + @JsonDeserialize( contentAs=String.class ) + public void setDevice_names(List val ) { + device_names = val; + } + + /** {tech}/{resource} for endpoints subscribed to. */ + private List endpoint_ids; + public List getEndpoint_ids() { + return endpoint_ids; + } + + @JsonDeserialize( contentAs=String.class ) + public void setEndpoint_ids(List val ) { + endpoint_ids = val; + } + + /** Name of this application */ + private String name; + public String getName() { + return name; + } + + @JsonDeserialize( as=String.class ) + public void setName(String val ) { + name = val; + } + +/** No missing signatures from interface */ +} + diff --git a/classes/ch/loway/oss/ari4java/generated/ari_3_0_0/models/AsteriskInfo_impl_ari_3_0_0.java b/classes/ch/loway/oss/ari4java/generated/ari_3_0_0/models/AsteriskInfo_impl_ari_3_0_0.java new file mode 100644 index 00000000..60d95389 --- /dev/null +++ b/classes/ch/loway/oss/ari4java/generated/ari_3_0_0/models/AsteriskInfo_impl_ari_3_0_0.java @@ -0,0 +1,70 @@ +package ch.loway.oss.ari4java.generated.ari_3_0_0.models; + +// ---------------------------------------------------- +// THIS CLASS WAS GENERATED AUTOMATICALLY +// PLEASE DO NOT EDIT +// Generated on: Tue Dec 19 09:55:49 CET 2017 +// ---------------------------------------------------- + +import ch.loway.oss.ari4java.generated.*; +import com.fasterxml.jackson.databind.annotation.JsonDeserialize; +import java.util.Date; +import java.util.List; +import java.util.Map; + +/********************************************************** + * Asterisk system information + * + * Defined in file: asterisk.json + * Generated by: Model + *********************************************************/ + +public class AsteriskInfo_impl_ari_3_0_0 implements AsteriskInfo, java.io.Serializable { +private static final long serialVersionUID = 1L; + /** Info about how Asterisk was built */ + private BuildInfo build; + public BuildInfo getBuild() { + return build; + } + + @JsonDeserialize( as=BuildInfo_impl_ari_3_0_0.class ) + public void setBuild(BuildInfo val ) { + build = val; + } + + /** Info about Asterisk configuration */ + private ConfigInfo config; + public ConfigInfo getConfig() { + return config; + } + + @JsonDeserialize( as=ConfigInfo_impl_ari_3_0_0.class ) + public void setConfig(ConfigInfo val ) { + config = val; + } + + /** Info about Asterisk status */ + private StatusInfo status; + public StatusInfo getStatus() { + return status; + } + + @JsonDeserialize( as=StatusInfo_impl_ari_3_0_0.class ) + public void setStatus(StatusInfo val ) { + status = val; + } + + /** Info about the system running Asterisk */ + private SystemInfo system; + public SystemInfo getSystem() { + return system; + } + + @JsonDeserialize( as=SystemInfo_impl_ari_3_0_0.class ) + public void setSystem(SystemInfo val ) { + system = val; + } + +/** No missing signatures from interface */ +} + diff --git a/classes/ch/loway/oss/ari4java/generated/ari_3_0_0/models/BridgeAttendedTransfer_impl_ari_3_0_0.java b/classes/ch/loway/oss/ari4java/generated/ari_3_0_0/models/BridgeAttendedTransfer_impl_ari_3_0_0.java new file mode 100644 index 00000000..ed6688a3 --- /dev/null +++ b/classes/ch/loway/oss/ari4java/generated/ari_3_0_0/models/BridgeAttendedTransfer_impl_ari_3_0_0.java @@ -0,0 +1,202 @@ +package ch.loway.oss.ari4java.generated.ari_3_0_0.models; + +// ---------------------------------------------------- +// THIS CLASS WAS GENERATED AUTOMATICALLY +// PLEASE DO NOT EDIT +// Generated on: Tue Dec 19 09:55:49 CET 2017 +// ---------------------------------------------------- + +import ch.loway.oss.ari4java.generated.*; +import com.fasterxml.jackson.databind.annotation.JsonDeserialize; +import java.util.Date; +import java.util.List; +import java.util.Map; + +/********************************************************** + * Notification that an attended transfer has occurred. + * + * Defined in file: events.json + * Generated by: Model + *********************************************************/ + +public class BridgeAttendedTransfer_impl_ari_3_0_0 extends Event_impl_ari_3_0_0 implements BridgeAttendedTransfer, java.io.Serializable { +private static final long serialVersionUID = 1L; + /** Application that has been transferred into */ + private String destination_application; + public String getDestination_application() { + return destination_application; + } + + @JsonDeserialize( as=String.class ) + public void setDestination_application(String val ) { + destination_application = val; + } + + /** Bridge that survived the merge result */ + private String destination_bridge; + public String getDestination_bridge() { + return destination_bridge; + } + + @JsonDeserialize( as=String.class ) + public void setDestination_bridge(String val ) { + destination_bridge = val; + } + + /** First leg of a link transfer result */ + private Channel destination_link_first_leg; + public Channel getDestination_link_first_leg() { + return destination_link_first_leg; + } + + @JsonDeserialize( as=Channel_impl_ari_3_0_0.class ) + public void setDestination_link_first_leg(Channel val ) { + destination_link_first_leg = val; + } + + /** Second leg of a link transfer result */ + private Channel destination_link_second_leg; + public Channel getDestination_link_second_leg() { + return destination_link_second_leg; + } + + @JsonDeserialize( as=Channel_impl_ari_3_0_0.class ) + public void setDestination_link_second_leg(Channel val ) { + destination_link_second_leg = val; + } + + /** Bridge that survived the threeway result */ + private Bridge destination_threeway_bridge; + public Bridge getDestination_threeway_bridge() { + return destination_threeway_bridge; + } + + @JsonDeserialize( as=Bridge_impl_ari_3_0_0.class ) + public void setDestination_threeway_bridge(Bridge val ) { + destination_threeway_bridge = val; + } + + /** Transferer channel that survived the threeway result */ + private Channel destination_threeway_channel; + public Channel getDestination_threeway_channel() { + return destination_threeway_channel; + } + + @JsonDeserialize( as=Channel_impl_ari_3_0_0.class ) + public void setDestination_threeway_channel(Channel val ) { + destination_threeway_channel = val; + } + + /** How the transfer was accomplished */ + private String destination_type; + public String getDestination_type() { + return destination_type; + } + + @JsonDeserialize( as=String.class ) + public void setDestination_type(String val ) { + destination_type = val; + } + + /** Whether the transfer was externally initiated or not */ + private boolean is_external; + public boolean getIs_external() { + return is_external; + } + + @JsonDeserialize( as=boolean.class ) + public void setIs_external(boolean val ) { + is_external = val; + } + + /** The channel that is replacing transferer_first_leg in the swap */ + private Channel replace_channel; + public Channel getReplace_channel() { + return replace_channel; + } + + @JsonDeserialize( as=Channel_impl_ari_3_0_0.class ) + public void setReplace_channel(Channel val ) { + replace_channel = val; + } + + /** The result of the transfer attempt */ + private String result; + public String getResult() { + return result; + } + + @JsonDeserialize( as=String.class ) + public void setResult(String val ) { + result = val; + } + + /** The channel that is being transferred to */ + private Channel transfer_target; + public Channel getTransfer_target() { + return transfer_target; + } + + @JsonDeserialize( as=Channel_impl_ari_3_0_0.class ) + public void setTransfer_target(Channel val ) { + transfer_target = val; + } + + /** The channel that is being transferred */ + private Channel transferee; + public Channel getTransferee() { + return transferee; + } + + @JsonDeserialize( as=Channel_impl_ari_3_0_0.class ) + public void setTransferee(Channel val ) { + transferee = val; + } + + /** First leg of the transferer */ + private Channel transferer_first_leg; + public Channel getTransferer_first_leg() { + return transferer_first_leg; + } + + @JsonDeserialize( as=Channel_impl_ari_3_0_0.class ) + public void setTransferer_first_leg(Channel val ) { + transferer_first_leg = val; + } + + /** Bridge the transferer first leg is in */ + private Bridge transferer_first_leg_bridge; + public Bridge getTransferer_first_leg_bridge() { + return transferer_first_leg_bridge; + } + + @JsonDeserialize( as=Bridge_impl_ari_3_0_0.class ) + public void setTransferer_first_leg_bridge(Bridge val ) { + transferer_first_leg_bridge = val; + } + + /** Second leg of the transferer */ + private Channel transferer_second_leg; + public Channel getTransferer_second_leg() { + return transferer_second_leg; + } + + @JsonDeserialize( as=Channel_impl_ari_3_0_0.class ) + public void setTransferer_second_leg(Channel val ) { + transferer_second_leg = val; + } + + /** Bridge the transferer second leg is in */ + private Bridge transferer_second_leg_bridge; + public Bridge getTransferer_second_leg_bridge() { + return transferer_second_leg_bridge; + } + + @JsonDeserialize( as=Bridge_impl_ari_3_0_0.class ) + public void setTransferer_second_leg_bridge(Bridge val ) { + transferer_second_leg_bridge = val; + } + +/** No missing signatures from interface */ +} + diff --git a/classes/ch/loway/oss/ari4java/generated/ari_3_0_0/models/BridgeBlindTransfer_impl_ari_3_0_0.java b/classes/ch/loway/oss/ari4java/generated/ari_3_0_0/models/BridgeBlindTransfer_impl_ari_3_0_0.java new file mode 100644 index 00000000..e5791816 --- /dev/null +++ b/classes/ch/loway/oss/ari4java/generated/ari_3_0_0/models/BridgeBlindTransfer_impl_ari_3_0_0.java @@ -0,0 +1,114 @@ +package ch.loway.oss.ari4java.generated.ari_3_0_0.models; + +// ---------------------------------------------------- +// THIS CLASS WAS GENERATED AUTOMATICALLY +// PLEASE DO NOT EDIT +// Generated on: Tue Dec 19 09:55:49 CET 2017 +// ---------------------------------------------------- + +import ch.loway.oss.ari4java.generated.*; +import com.fasterxml.jackson.databind.annotation.JsonDeserialize; +import java.util.Date; +import java.util.List; +import java.util.Map; + +/********************************************************** + * Notification that a blind transfer has occurred. + * + * Defined in file: events.json + * Generated by: Model + *********************************************************/ + +public class BridgeBlindTransfer_impl_ari_3_0_0 extends Event_impl_ari_3_0_0 implements BridgeBlindTransfer, java.io.Serializable { +private static final long serialVersionUID = 1L; + /** The bridge being transferred */ + private Bridge bridge; + public Bridge getBridge() { + return bridge; + } + + @JsonDeserialize( as=Bridge_impl_ari_3_0_0.class ) + public void setBridge(Bridge val ) { + bridge = val; + } + + /** The channel performing the blind transfer */ + private Channel channel; + public Channel getChannel() { + return channel; + } + + @JsonDeserialize( as=Channel_impl_ari_3_0_0.class ) + public void setChannel(Channel val ) { + channel = val; + } + + /** The context transferred to */ + private String context; + public String getContext() { + return context; + } + + @JsonDeserialize( as=String.class ) + public void setContext(String val ) { + context = val; + } + + /** The extension transferred to */ + private String exten; + public String getExten() { + return exten; + } + + @JsonDeserialize( as=String.class ) + public void setExten(String val ) { + exten = val; + } + + /** Whether the transfer was externally initiated or not */ + private boolean is_external; + public boolean getIs_external() { + return is_external; + } + + @JsonDeserialize( as=boolean.class ) + public void setIs_external(boolean val ) { + is_external = val; + } + + /** The channel that is replacing transferer when the transferee(s) can not be transferred directly */ + private Channel replace_channel; + public Channel getReplace_channel() { + return replace_channel; + } + + @JsonDeserialize( as=Channel_impl_ari_3_0_0.class ) + public void setReplace_channel(Channel val ) { + replace_channel = val; + } + + /** The result of the transfer attempt */ + private String result; + public String getResult() { + return result; + } + + @JsonDeserialize( as=String.class ) + public void setResult(String val ) { + result = val; + } + + /** The channel that is being transferred */ + private Channel transferee; + public Channel getTransferee() { + return transferee; + } + + @JsonDeserialize( as=Channel_impl_ari_3_0_0.class ) + public void setTransferee(Channel val ) { + transferee = val; + } + +/** No missing signatures from interface */ +} + diff --git a/classes/ch/loway/oss/ari4java/generated/ari_3_0_0/models/BridgeCreated_impl_ari_3_0_0.java b/classes/ch/loway/oss/ari4java/generated/ari_3_0_0/models/BridgeCreated_impl_ari_3_0_0.java new file mode 100644 index 00000000..f3812097 --- /dev/null +++ b/classes/ch/loway/oss/ari4java/generated/ari_3_0_0/models/BridgeCreated_impl_ari_3_0_0.java @@ -0,0 +1,37 @@ +package ch.loway.oss.ari4java.generated.ari_3_0_0.models; + +// ---------------------------------------------------- +// THIS CLASS WAS GENERATED AUTOMATICALLY +// PLEASE DO NOT EDIT +// Generated on: Tue Dec 19 09:55:49 CET 2017 +// ---------------------------------------------------- + +import ch.loway.oss.ari4java.generated.*; +import com.fasterxml.jackson.databind.annotation.JsonDeserialize; +import java.util.Date; +import java.util.List; +import java.util.Map; + +/********************************************************** + * Notification that a bridge has been created. + * + * Defined in file: events.json + * Generated by: Model + *********************************************************/ + +public class BridgeCreated_impl_ari_3_0_0 extends Event_impl_ari_3_0_0 implements BridgeCreated, java.io.Serializable { +private static final long serialVersionUID = 1L; + /** */ + private Bridge bridge; + public Bridge getBridge() { + return bridge; + } + + @JsonDeserialize( as=Bridge_impl_ari_3_0_0.class ) + public void setBridge(Bridge val ) { + bridge = val; + } + +/** No missing signatures from interface */ +} + diff --git a/classes/ch/loway/oss/ari4java/generated/ari_3_0_0/models/BridgeDestroyed_impl_ari_3_0_0.java b/classes/ch/loway/oss/ari4java/generated/ari_3_0_0/models/BridgeDestroyed_impl_ari_3_0_0.java new file mode 100644 index 00000000..eb06b33a --- /dev/null +++ b/classes/ch/loway/oss/ari4java/generated/ari_3_0_0/models/BridgeDestroyed_impl_ari_3_0_0.java @@ -0,0 +1,37 @@ +package ch.loway.oss.ari4java.generated.ari_3_0_0.models; + +// ---------------------------------------------------- +// THIS CLASS WAS GENERATED AUTOMATICALLY +// PLEASE DO NOT EDIT +// Generated on: Tue Dec 19 09:55:49 CET 2017 +// ---------------------------------------------------- + +import ch.loway.oss.ari4java.generated.*; +import com.fasterxml.jackson.databind.annotation.JsonDeserialize; +import java.util.Date; +import java.util.List; +import java.util.Map; + +/********************************************************** + * Notification that a bridge has been destroyed. + * + * Defined in file: events.json + * Generated by: Model + *********************************************************/ + +public class BridgeDestroyed_impl_ari_3_0_0 extends Event_impl_ari_3_0_0 implements BridgeDestroyed, java.io.Serializable { +private static final long serialVersionUID = 1L; + /** */ + private Bridge bridge; + public Bridge getBridge() { + return bridge; + } + + @JsonDeserialize( as=Bridge_impl_ari_3_0_0.class ) + public void setBridge(Bridge val ) { + bridge = val; + } + +/** No missing signatures from interface */ +} + diff --git a/classes/ch/loway/oss/ari4java/generated/ari_3_0_0/models/BridgeMerged_impl_ari_3_0_0.java b/classes/ch/loway/oss/ari4java/generated/ari_3_0_0/models/BridgeMerged_impl_ari_3_0_0.java new file mode 100644 index 00000000..029e9649 --- /dev/null +++ b/classes/ch/loway/oss/ari4java/generated/ari_3_0_0/models/BridgeMerged_impl_ari_3_0_0.java @@ -0,0 +1,48 @@ +package ch.loway.oss.ari4java.generated.ari_3_0_0.models; + +// ---------------------------------------------------- +// THIS CLASS WAS GENERATED AUTOMATICALLY +// PLEASE DO NOT EDIT +// Generated on: Tue Dec 19 09:55:49 CET 2017 +// ---------------------------------------------------- + +import ch.loway.oss.ari4java.generated.*; +import com.fasterxml.jackson.databind.annotation.JsonDeserialize; +import java.util.Date; +import java.util.List; +import java.util.Map; + +/********************************************************** + * Notification that one bridge has merged into another. + * + * Defined in file: events.json + * Generated by: Model + *********************************************************/ + +public class BridgeMerged_impl_ari_3_0_0 extends Event_impl_ari_3_0_0 implements BridgeMerged, java.io.Serializable { +private static final long serialVersionUID = 1L; + /** */ + private Bridge bridge; + public Bridge getBridge() { + return bridge; + } + + @JsonDeserialize( as=Bridge_impl_ari_3_0_0.class ) + public void setBridge(Bridge val ) { + bridge = val; + } + + /** */ + private Bridge bridge_from; + public Bridge getBridge_from() { + return bridge_from; + } + + @JsonDeserialize( as=Bridge_impl_ari_3_0_0.class ) + public void setBridge_from(Bridge val ) { + bridge_from = val; + } + +/** No missing signatures from interface */ +} + diff --git a/classes/ch/loway/oss/ari4java/generated/ari_3_0_0/models/BridgeVideoSourceChanged_impl_ari_3_0_0.java b/classes/ch/loway/oss/ari4java/generated/ari_3_0_0/models/BridgeVideoSourceChanged_impl_ari_3_0_0.java new file mode 100644 index 00000000..49adcaca --- /dev/null +++ b/classes/ch/loway/oss/ari4java/generated/ari_3_0_0/models/BridgeVideoSourceChanged_impl_ari_3_0_0.java @@ -0,0 +1,48 @@ +package ch.loway.oss.ari4java.generated.ari_3_0_0.models; + +// ---------------------------------------------------- +// THIS CLASS WAS GENERATED AUTOMATICALLY +// PLEASE DO NOT EDIT +// Generated on: Tue Dec 19 09:55:49 CET 2017 +// ---------------------------------------------------- + +import ch.loway.oss.ari4java.generated.*; +import com.fasterxml.jackson.databind.annotation.JsonDeserialize; +import java.util.Date; +import java.util.List; +import java.util.Map; + +/********************************************************** + * Notification that the source of video in a bridge has changed. + * + * Defined in file: events.json + * Generated by: Model + *********************************************************/ + +public class BridgeVideoSourceChanged_impl_ari_3_0_0 extends Event_impl_ari_3_0_0 implements BridgeVideoSourceChanged, java.io.Serializable { +private static final long serialVersionUID = 1L; + /** */ + private Bridge bridge; + public Bridge getBridge() { + return bridge; + } + + @JsonDeserialize( as=Bridge_impl_ari_3_0_0.class ) + public void setBridge(Bridge val ) { + bridge = val; + } + + /** */ + private String old_video_source_id; + public String getOld_video_source_id() { + return old_video_source_id; + } + + @JsonDeserialize( as=String.class ) + public void setOld_video_source_id(String val ) { + old_video_source_id = val; + } + +/** No missing signatures from interface */ +} + diff --git a/classes/ch/loway/oss/ari4java/generated/ari_3_0_0/models/Bridge_impl_ari_3_0_0.java b/classes/ch/loway/oss/ari4java/generated/ari_3_0_0/models/Bridge_impl_ari_3_0_0.java new file mode 100644 index 00000000..73a2903a --- /dev/null +++ b/classes/ch/loway/oss/ari4java/generated/ari_3_0_0/models/Bridge_impl_ari_3_0_0.java @@ -0,0 +1,127 @@ +package ch.loway.oss.ari4java.generated.ari_3_0_0.models; + +// ---------------------------------------------------- +// THIS CLASS WAS GENERATED AUTOMATICALLY +// PLEASE DO NOT EDIT +// Generated on: Tue Dec 19 09:55:49 CET 2017 +// ---------------------------------------------------- + +import ch.loway.oss.ari4java.generated.*; +import com.fasterxml.jackson.databind.annotation.JsonDeserialize; +import java.util.Date; +import java.util.List; +import java.util.Map; + +/********************************************************** + * The merging of media from one or more channels. + * + * Everyone on the bridge receives the same audio. + * + * Defined in file: bridges.json + * Generated by: Model + *********************************************************/ + +public class Bridge_impl_ari_3_0_0 implements Bridge, java.io.Serializable { +private static final long serialVersionUID = 1L; + /** Bridging class */ + private String bridge_class; + public String getBridge_class() { + return bridge_class; + } + + @JsonDeserialize( as=String.class ) + public void setBridge_class(String val ) { + bridge_class = val; + } + + /** Type of bridge technology */ + private String bridge_type; + public String getBridge_type() { + return bridge_type; + } + + @JsonDeserialize( as=String.class ) + public void setBridge_type(String val ) { + bridge_type = val; + } + + /** Ids of channels participating in this bridge */ + private List channels; + public List getChannels() { + return channels; + } + + @JsonDeserialize( contentAs=String.class ) + public void setChannels(List val ) { + channels = val; + } + + /** Entity that created the bridge */ + private String creator; + public String getCreator() { + return creator; + } + + @JsonDeserialize( as=String.class ) + public void setCreator(String val ) { + creator = val; + } + + /** Unique identifier for this bridge */ + private String id; + public String getId() { + return id; + } + + @JsonDeserialize( as=String.class ) + public void setId(String val ) { + id = val; + } + + /** Name the creator gave the bridge */ + private String name; + public String getName() { + return name; + } + + @JsonDeserialize( as=String.class ) + public void setName(String val ) { + name = val; + } + + /** Name of the current bridging technology */ + private String technology; + public String getTechnology() { + return technology; + } + + @JsonDeserialize( as=String.class ) + public void setTechnology(String val ) { + technology = val; + } + + /** The video mode the bridge is using. One of 'none', 'talker', or 'single'. */ + private String video_mode; + public String getVideo_mode() { + return video_mode; + } + + @JsonDeserialize( as=String.class ) + public void setVideo_mode(String val ) { + video_mode = val; + } + + /** The ID of the channel that is the source of video in this bridge, if one exists. */ + private String video_source_id; + public String getVideo_source_id() { + return video_source_id; + } + + @JsonDeserialize( as=String.class ) + public void setVideo_source_id(String val ) { + video_source_id = val; + } + +/** No missing signatures from interface */ +} + diff --git a/classes/ch/loway/oss/ari4java/generated/ari_3_0_0/models/BuildInfo_impl_ari_3_0_0.java b/classes/ch/loway/oss/ari4java/generated/ari_3_0_0/models/BuildInfo_impl_ari_3_0_0.java new file mode 100644 index 00000000..4151ea7a --- /dev/null +++ b/classes/ch/loway/oss/ari4java/generated/ari_3_0_0/models/BuildInfo_impl_ari_3_0_0.java @@ -0,0 +1,92 @@ +package ch.loway.oss.ari4java.generated.ari_3_0_0.models; + +// ---------------------------------------------------- +// THIS CLASS WAS GENERATED AUTOMATICALLY +// PLEASE DO NOT EDIT +// Generated on: Tue Dec 19 09:55:49 CET 2017 +// ---------------------------------------------------- + +import ch.loway.oss.ari4java.generated.*; +import com.fasterxml.jackson.databind.annotation.JsonDeserialize; +import java.util.Date; +import java.util.List; +import java.util.Map; + +/********************************************************** + * Info about how Asterisk was built + * + * Defined in file: asterisk.json + * Generated by: Model + *********************************************************/ + +public class BuildInfo_impl_ari_3_0_0 implements BuildInfo, java.io.Serializable { +private static final long serialVersionUID = 1L; + /** Date and time when Asterisk was built. */ + private String date; + public String getDate() { + return date; + } + + @JsonDeserialize( as=String.class ) + public void setDate(String val ) { + date = val; + } + + /** Kernel version Asterisk was built on. */ + private String kernel; + public String getKernel() { + return kernel; + } + + @JsonDeserialize( as=String.class ) + public void setKernel(String val ) { + kernel = val; + } + + /** Machine architecture (x86_64, i686, ppc, etc.) */ + private String machine; + public String getMachine() { + return machine; + } + + @JsonDeserialize( as=String.class ) + public void setMachine(String val ) { + machine = val; + } + + /** Compile time options, or empty string if default. */ + private String options; + public String getOptions() { + return options; + } + + @JsonDeserialize( as=String.class ) + public void setOptions(String val ) { + options = val; + } + + /** OS Asterisk was built on. */ + private String os; + public String getOs() { + return os; + } + + @JsonDeserialize( as=String.class ) + public void setOs(String val ) { + os = val; + } + + /** Username that build Asterisk */ + private String user; + public String getUser() { + return user; + } + + @JsonDeserialize( as=String.class ) + public void setUser(String val ) { + user = val; + } + +/** No missing signatures from interface */ +} + diff --git a/classes/ch/loway/oss/ari4java/generated/ari_3_0_0/models/CallerID_impl_ari_3_0_0.java b/classes/ch/loway/oss/ari4java/generated/ari_3_0_0/models/CallerID_impl_ari_3_0_0.java new file mode 100644 index 00000000..c9678272 --- /dev/null +++ b/classes/ch/loway/oss/ari4java/generated/ari_3_0_0/models/CallerID_impl_ari_3_0_0.java @@ -0,0 +1,48 @@ +package ch.loway.oss.ari4java.generated.ari_3_0_0.models; + +// ---------------------------------------------------- +// THIS CLASS WAS GENERATED AUTOMATICALLY +// PLEASE DO NOT EDIT +// Generated on: Tue Dec 19 09:55:49 CET 2017 +// ---------------------------------------------------- + +import ch.loway.oss.ari4java.generated.*; +import com.fasterxml.jackson.databind.annotation.JsonDeserialize; +import java.util.Date; +import java.util.List; +import java.util.Map; + +/********************************************************** + * Caller identification + * + * Defined in file: channels.json + * Generated by: Model + *********************************************************/ + +public class CallerID_impl_ari_3_0_0 implements CallerID, java.io.Serializable { +private static final long serialVersionUID = 1L; + /** */ + private String name; + public String getName() { + return name; + } + + @JsonDeserialize( as=String.class ) + public void setName(String val ) { + name = val; + } + + /** */ + private String number; + public String getNumber() { + return number; + } + + @JsonDeserialize( as=String.class ) + public void setNumber(String val ) { + number = val; + } + +/** No missing signatures from interface */ +} + diff --git a/classes/ch/loway/oss/ari4java/generated/ari_3_0_0/models/ChannelCallerId_impl_ari_3_0_0.java b/classes/ch/loway/oss/ari4java/generated/ari_3_0_0/models/ChannelCallerId_impl_ari_3_0_0.java new file mode 100644 index 00000000..e79e76a4 --- /dev/null +++ b/classes/ch/loway/oss/ari4java/generated/ari_3_0_0/models/ChannelCallerId_impl_ari_3_0_0.java @@ -0,0 +1,59 @@ +package ch.loway.oss.ari4java.generated.ari_3_0_0.models; + +// ---------------------------------------------------- +// THIS CLASS WAS GENERATED AUTOMATICALLY +// PLEASE DO NOT EDIT +// Generated on: Tue Dec 19 09:55:49 CET 2017 +// ---------------------------------------------------- + +import ch.loway.oss.ari4java.generated.*; +import com.fasterxml.jackson.databind.annotation.JsonDeserialize; +import java.util.Date; +import java.util.List; +import java.util.Map; + +/********************************************************** + * Channel changed Caller ID. + * + * Defined in file: events.json + * Generated by: Model + *********************************************************/ + +public class ChannelCallerId_impl_ari_3_0_0 extends Event_impl_ari_3_0_0 implements ChannelCallerId, java.io.Serializable { +private static final long serialVersionUID = 1L; + /** The integer representation of the Caller Presentation value. */ + private int caller_presentation; + public int getCaller_presentation() { + return caller_presentation; + } + + @JsonDeserialize( as=int.class ) + public void setCaller_presentation(int val ) { + caller_presentation = val; + } + + /** The text representation of the Caller Presentation value. */ + private String caller_presentation_txt; + public String getCaller_presentation_txt() { + return caller_presentation_txt; + } + + @JsonDeserialize( as=String.class ) + public void setCaller_presentation_txt(String val ) { + caller_presentation_txt = val; + } + + /** The channel that changed Caller ID. */ + private Channel channel; + public Channel getChannel() { + return channel; + } + + @JsonDeserialize( as=Channel_impl_ari_3_0_0.class ) + public void setChannel(Channel val ) { + channel = val; + } + +/** No missing signatures from interface */ +} + diff --git a/classes/ch/loway/oss/ari4java/generated/ari_3_0_0/models/ChannelConnectedLine_impl_ari_3_0_0.java b/classes/ch/loway/oss/ari4java/generated/ari_3_0_0/models/ChannelConnectedLine_impl_ari_3_0_0.java new file mode 100644 index 00000000..de294561 --- /dev/null +++ b/classes/ch/loway/oss/ari4java/generated/ari_3_0_0/models/ChannelConnectedLine_impl_ari_3_0_0.java @@ -0,0 +1,37 @@ +package ch.loway.oss.ari4java.generated.ari_3_0_0.models; + +// ---------------------------------------------------- +// THIS CLASS WAS GENERATED AUTOMATICALLY +// PLEASE DO NOT EDIT +// Generated on: Tue Dec 19 09:55:49 CET 2017 +// ---------------------------------------------------- + +import ch.loway.oss.ari4java.generated.*; +import com.fasterxml.jackson.databind.annotation.JsonDeserialize; +import java.util.Date; +import java.util.List; +import java.util.Map; + +/********************************************************** + * Channel changed Connected Line. + * + * Defined in file: events.json + * Generated by: Model + *********************************************************/ + +public class ChannelConnectedLine_impl_ari_3_0_0 extends Event_impl_ari_3_0_0 implements ChannelConnectedLine, java.io.Serializable { +private static final long serialVersionUID = 1L; + /** The channel whose connected line has changed. */ + private Channel channel; + public Channel getChannel() { + return channel; + } + + @JsonDeserialize( as=Channel_impl_ari_3_0_0.class ) + public void setChannel(Channel val ) { + channel = val; + } + +/** No missing signatures from interface */ +} + diff --git a/classes/ch/loway/oss/ari4java/generated/ari_3_0_0/models/ChannelCreated_impl_ari_3_0_0.java b/classes/ch/loway/oss/ari4java/generated/ari_3_0_0/models/ChannelCreated_impl_ari_3_0_0.java new file mode 100644 index 00000000..e4dce773 --- /dev/null +++ b/classes/ch/loway/oss/ari4java/generated/ari_3_0_0/models/ChannelCreated_impl_ari_3_0_0.java @@ -0,0 +1,37 @@ +package ch.loway.oss.ari4java.generated.ari_3_0_0.models; + +// ---------------------------------------------------- +// THIS CLASS WAS GENERATED AUTOMATICALLY +// PLEASE DO NOT EDIT +// Generated on: Tue Dec 19 09:55:49 CET 2017 +// ---------------------------------------------------- + +import ch.loway.oss.ari4java.generated.*; +import com.fasterxml.jackson.databind.annotation.JsonDeserialize; +import java.util.Date; +import java.util.List; +import java.util.Map; + +/********************************************************** + * Notification that a channel has been created. + * + * Defined in file: events.json + * Generated by: Model + *********************************************************/ + +public class ChannelCreated_impl_ari_3_0_0 extends Event_impl_ari_3_0_0 implements ChannelCreated, java.io.Serializable { +private static final long serialVersionUID = 1L; + /** */ + private Channel channel; + public Channel getChannel() { + return channel; + } + + @JsonDeserialize( as=Channel_impl_ari_3_0_0.class ) + public void setChannel(Channel val ) { + channel = val; + } + +/** No missing signatures from interface */ +} + diff --git a/classes/ch/loway/oss/ari4java/generated/ari_3_0_0/models/ChannelDestroyed_impl_ari_3_0_0.java b/classes/ch/loway/oss/ari4java/generated/ari_3_0_0/models/ChannelDestroyed_impl_ari_3_0_0.java new file mode 100644 index 00000000..fc1489be --- /dev/null +++ b/classes/ch/loway/oss/ari4java/generated/ari_3_0_0/models/ChannelDestroyed_impl_ari_3_0_0.java @@ -0,0 +1,59 @@ +package ch.loway.oss.ari4java.generated.ari_3_0_0.models; + +// ---------------------------------------------------- +// THIS CLASS WAS GENERATED AUTOMATICALLY +// PLEASE DO NOT EDIT +// Generated on: Tue Dec 19 09:55:49 CET 2017 +// ---------------------------------------------------- + +import ch.loway.oss.ari4java.generated.*; +import com.fasterxml.jackson.databind.annotation.JsonDeserialize; +import java.util.Date; +import java.util.List; +import java.util.Map; + +/********************************************************** + * Notification that a channel has been destroyed. + * + * Defined in file: events.json + * Generated by: Model + *********************************************************/ + +public class ChannelDestroyed_impl_ari_3_0_0 extends Event_impl_ari_3_0_0 implements ChannelDestroyed, java.io.Serializable { +private static final long serialVersionUID = 1L; + /** Integer representation of the cause of the hangup */ + private int cause; + public int getCause() { + return cause; + } + + @JsonDeserialize( as=int.class ) + public void setCause(int val ) { + cause = val; + } + + /** Text representation of the cause of the hangup */ + private String cause_txt; + public String getCause_txt() { + return cause_txt; + } + + @JsonDeserialize( as=String.class ) + public void setCause_txt(String val ) { + cause_txt = val; + } + + /** */ + private Channel channel; + public Channel getChannel() { + return channel; + } + + @JsonDeserialize( as=Channel_impl_ari_3_0_0.class ) + public void setChannel(Channel val ) { + channel = val; + } + +/** No missing signatures from interface */ +} + diff --git a/classes/ch/loway/oss/ari4java/generated/ari_3_0_0/models/ChannelDialplan_impl_ari_3_0_0.java b/classes/ch/loway/oss/ari4java/generated/ari_3_0_0/models/ChannelDialplan_impl_ari_3_0_0.java new file mode 100644 index 00000000..d0ea24d8 --- /dev/null +++ b/classes/ch/loway/oss/ari4java/generated/ari_3_0_0/models/ChannelDialplan_impl_ari_3_0_0.java @@ -0,0 +1,59 @@ +package ch.loway.oss.ari4java.generated.ari_3_0_0.models; + +// ---------------------------------------------------- +// THIS CLASS WAS GENERATED AUTOMATICALLY +// PLEASE DO NOT EDIT +// Generated on: Tue Dec 19 09:55:49 CET 2017 +// ---------------------------------------------------- + +import ch.loway.oss.ari4java.generated.*; +import com.fasterxml.jackson.databind.annotation.JsonDeserialize; +import java.util.Date; +import java.util.List; +import java.util.Map; + +/********************************************************** + * Channel changed location in the dialplan. + * + * Defined in file: events.json + * Generated by: Model + *********************************************************/ + +public class ChannelDialplan_impl_ari_3_0_0 extends Event_impl_ari_3_0_0 implements ChannelDialplan, java.io.Serializable { +private static final long serialVersionUID = 1L; + /** The channel that changed dialplan location. */ + private Channel channel; + public Channel getChannel() { + return channel; + } + + @JsonDeserialize( as=Channel_impl_ari_3_0_0.class ) + public void setChannel(Channel val ) { + channel = val; + } + + /** The application about to be executed. */ + private String dialplan_app; + public String getDialplan_app() { + return dialplan_app; + } + + @JsonDeserialize( as=String.class ) + public void setDialplan_app(String val ) { + dialplan_app = val; + } + + /** The data to be passed to the application. */ + private String dialplan_app_data; + public String getDialplan_app_data() { + return dialplan_app_data; + } + + @JsonDeserialize( as=String.class ) + public void setDialplan_app_data(String val ) { + dialplan_app_data = val; + } + +/** No missing signatures from interface */ +} + diff --git a/classes/ch/loway/oss/ari4java/generated/ari_3_0_0/models/ChannelDtmfReceived_impl_ari_3_0_0.java b/classes/ch/loway/oss/ari4java/generated/ari_3_0_0/models/ChannelDtmfReceived_impl_ari_3_0_0.java new file mode 100644 index 00000000..70fac732 --- /dev/null +++ b/classes/ch/loway/oss/ari4java/generated/ari_3_0_0/models/ChannelDtmfReceived_impl_ari_3_0_0.java @@ -0,0 +1,61 @@ +package ch.loway.oss.ari4java.generated.ari_3_0_0.models; + +// ---------------------------------------------------- +// THIS CLASS WAS GENERATED AUTOMATICALLY +// PLEASE DO NOT EDIT +// Generated on: Tue Dec 19 09:55:49 CET 2017 +// ---------------------------------------------------- + +import ch.loway.oss.ari4java.generated.*; +import com.fasterxml.jackson.databind.annotation.JsonDeserialize; +import java.util.Date; +import java.util.List; +import java.util.Map; + +/********************************************************** + * DTMF received on a channel. + * + * This event is sent when the DTMF ends. There is no notification about the start of DTMF + * + * Defined in file: events.json + * Generated by: Model + *********************************************************/ + +public class ChannelDtmfReceived_impl_ari_3_0_0 extends Event_impl_ari_3_0_0 implements ChannelDtmfReceived, java.io.Serializable { +private static final long serialVersionUID = 1L; + /** The channel on which DTMF was received */ + private Channel channel; + public Channel getChannel() { + return channel; + } + + @JsonDeserialize( as=Channel_impl_ari_3_0_0.class ) + public void setChannel(Channel val ) { + channel = val; + } + + /** DTMF digit received (0-9, A-E, # or *) */ + private String digit; + public String getDigit() { + return digit; + } + + @JsonDeserialize( as=String.class ) + public void setDigit(String val ) { + digit = val; + } + + /** Number of milliseconds DTMF was received */ + private int duration_ms; + public int getDuration_ms() { + return duration_ms; + } + + @JsonDeserialize( as=int.class ) + public void setDuration_ms(int val ) { + duration_ms = val; + } + +/** No missing signatures from interface */ +} + diff --git a/classes/ch/loway/oss/ari4java/generated/ari_3_0_0/models/ChannelEnteredBridge_impl_ari_3_0_0.java b/classes/ch/loway/oss/ari4java/generated/ari_3_0_0/models/ChannelEnteredBridge_impl_ari_3_0_0.java new file mode 100644 index 00000000..3f5e5592 --- /dev/null +++ b/classes/ch/loway/oss/ari4java/generated/ari_3_0_0/models/ChannelEnteredBridge_impl_ari_3_0_0.java @@ -0,0 +1,48 @@ +package ch.loway.oss.ari4java.generated.ari_3_0_0.models; + +// ---------------------------------------------------- +// THIS CLASS WAS GENERATED AUTOMATICALLY +// PLEASE DO NOT EDIT +// Generated on: Tue Dec 19 09:55:49 CET 2017 +// ---------------------------------------------------- + +import ch.loway.oss.ari4java.generated.*; +import com.fasterxml.jackson.databind.annotation.JsonDeserialize; +import java.util.Date; +import java.util.List; +import java.util.Map; + +/********************************************************** + * Notification that a channel has entered a bridge. + * + * Defined in file: events.json + * Generated by: Model + *********************************************************/ + +public class ChannelEnteredBridge_impl_ari_3_0_0 extends Event_impl_ari_3_0_0 implements ChannelEnteredBridge, java.io.Serializable { +private static final long serialVersionUID = 1L; + /** */ + private Bridge bridge; + public Bridge getBridge() { + return bridge; + } + + @JsonDeserialize( as=Bridge_impl_ari_3_0_0.class ) + public void setBridge(Bridge val ) { + bridge = val; + } + + /** */ + private Channel channel; + public Channel getChannel() { + return channel; + } + + @JsonDeserialize( as=Channel_impl_ari_3_0_0.class ) + public void setChannel(Channel val ) { + channel = val; + } + +/** No missing signatures from interface */ +} + diff --git a/classes/ch/loway/oss/ari4java/generated/ari_3_0_0/models/ChannelHangupRequest_impl_ari_3_0_0.java b/classes/ch/loway/oss/ari4java/generated/ari_3_0_0/models/ChannelHangupRequest_impl_ari_3_0_0.java new file mode 100644 index 00000000..c4ba0963 --- /dev/null +++ b/classes/ch/loway/oss/ari4java/generated/ari_3_0_0/models/ChannelHangupRequest_impl_ari_3_0_0.java @@ -0,0 +1,59 @@ +package ch.loway.oss.ari4java.generated.ari_3_0_0.models; + +// ---------------------------------------------------- +// THIS CLASS WAS GENERATED AUTOMATICALLY +// PLEASE DO NOT EDIT +// Generated on: Tue Dec 19 09:55:49 CET 2017 +// ---------------------------------------------------- + +import ch.loway.oss.ari4java.generated.*; +import com.fasterxml.jackson.databind.annotation.JsonDeserialize; +import java.util.Date; +import java.util.List; +import java.util.Map; + +/********************************************************** + * A hangup was requested on the channel. + * + * Defined in file: events.json + * Generated by: Model + *********************************************************/ + +public class ChannelHangupRequest_impl_ari_3_0_0 extends Event_impl_ari_3_0_0 implements ChannelHangupRequest, java.io.Serializable { +private static final long serialVersionUID = 1L; + /** Integer representation of the cause of the hangup. */ + private int cause; + public int getCause() { + return cause; + } + + @JsonDeserialize( as=int.class ) + public void setCause(int val ) { + cause = val; + } + + /** The channel on which the hangup was requested. */ + private Channel channel; + public Channel getChannel() { + return channel; + } + + @JsonDeserialize( as=Channel_impl_ari_3_0_0.class ) + public void setChannel(Channel val ) { + channel = val; + } + + /** Whether the hangup request was a soft hangup request. */ + private boolean soft; + public boolean getSoft() { + return soft; + } + + @JsonDeserialize( as=boolean.class ) + public void setSoft(boolean val ) { + soft = val; + } + +/** No missing signatures from interface */ +} + diff --git a/classes/ch/loway/oss/ari4java/generated/ari_3_0_0/models/ChannelHold_impl_ari_3_0_0.java b/classes/ch/loway/oss/ari4java/generated/ari_3_0_0/models/ChannelHold_impl_ari_3_0_0.java new file mode 100644 index 00000000..4f030d2e --- /dev/null +++ b/classes/ch/loway/oss/ari4java/generated/ari_3_0_0/models/ChannelHold_impl_ari_3_0_0.java @@ -0,0 +1,48 @@ +package ch.loway.oss.ari4java.generated.ari_3_0_0.models; + +// ---------------------------------------------------- +// THIS CLASS WAS GENERATED AUTOMATICALLY +// PLEASE DO NOT EDIT +// Generated on: Tue Dec 19 09:55:49 CET 2017 +// ---------------------------------------------------- + +import ch.loway.oss.ari4java.generated.*; +import com.fasterxml.jackson.databind.annotation.JsonDeserialize; +import java.util.Date; +import java.util.List; +import java.util.Map; + +/********************************************************** + * A channel initiated a media hold. + * + * Defined in file: events.json + * Generated by: Model + *********************************************************/ + +public class ChannelHold_impl_ari_3_0_0 extends Event_impl_ari_3_0_0 implements ChannelHold, java.io.Serializable { +private static final long serialVersionUID = 1L; + /** The channel that initiated the hold event. */ + private Channel channel; + public Channel getChannel() { + return channel; + } + + @JsonDeserialize( as=Channel_impl_ari_3_0_0.class ) + public void setChannel(Channel val ) { + channel = val; + } + + /** The music on hold class that the initiator requested. */ + private String musicclass; + public String getMusicclass() { + return musicclass; + } + + @JsonDeserialize( as=String.class ) + public void setMusicclass(String val ) { + musicclass = val; + } + +/** No missing signatures from interface */ +} + diff --git a/classes/ch/loway/oss/ari4java/generated/ari_3_0_0/models/ChannelLeftBridge_impl_ari_3_0_0.java b/classes/ch/loway/oss/ari4java/generated/ari_3_0_0/models/ChannelLeftBridge_impl_ari_3_0_0.java new file mode 100644 index 00000000..9dd80552 --- /dev/null +++ b/classes/ch/loway/oss/ari4java/generated/ari_3_0_0/models/ChannelLeftBridge_impl_ari_3_0_0.java @@ -0,0 +1,48 @@ +package ch.loway.oss.ari4java.generated.ari_3_0_0.models; + +// ---------------------------------------------------- +// THIS CLASS WAS GENERATED AUTOMATICALLY +// PLEASE DO NOT EDIT +// Generated on: Tue Dec 19 09:55:49 CET 2017 +// ---------------------------------------------------- + +import ch.loway.oss.ari4java.generated.*; +import com.fasterxml.jackson.databind.annotation.JsonDeserialize; +import java.util.Date; +import java.util.List; +import java.util.Map; + +/********************************************************** + * Notification that a channel has left a bridge. + * + * Defined in file: events.json + * Generated by: Model + *********************************************************/ + +public class ChannelLeftBridge_impl_ari_3_0_0 extends Event_impl_ari_3_0_0 implements ChannelLeftBridge, java.io.Serializable { +private static final long serialVersionUID = 1L; + /** */ + private Bridge bridge; + public Bridge getBridge() { + return bridge; + } + + @JsonDeserialize( as=Bridge_impl_ari_3_0_0.class ) + public void setBridge(Bridge val ) { + bridge = val; + } + + /** */ + private Channel channel; + public Channel getChannel() { + return channel; + } + + @JsonDeserialize( as=Channel_impl_ari_3_0_0.class ) + public void setChannel(Channel val ) { + channel = val; + } + +/** No missing signatures from interface */ +} + diff --git a/classes/ch/loway/oss/ari4java/generated/ari_3_0_0/models/ChannelStateChange_impl_ari_3_0_0.java b/classes/ch/loway/oss/ari4java/generated/ari_3_0_0/models/ChannelStateChange_impl_ari_3_0_0.java new file mode 100644 index 00000000..443394fb --- /dev/null +++ b/classes/ch/loway/oss/ari4java/generated/ari_3_0_0/models/ChannelStateChange_impl_ari_3_0_0.java @@ -0,0 +1,37 @@ +package ch.loway.oss.ari4java.generated.ari_3_0_0.models; + +// ---------------------------------------------------- +// THIS CLASS WAS GENERATED AUTOMATICALLY +// PLEASE DO NOT EDIT +// Generated on: Tue Dec 19 09:55:49 CET 2017 +// ---------------------------------------------------- + +import ch.loway.oss.ari4java.generated.*; +import com.fasterxml.jackson.databind.annotation.JsonDeserialize; +import java.util.Date; +import java.util.List; +import java.util.Map; + +/********************************************************** + * Notification of a channel's state change. + * + * Defined in file: events.json + * Generated by: Model + *********************************************************/ + +public class ChannelStateChange_impl_ari_3_0_0 extends Event_impl_ari_3_0_0 implements ChannelStateChange, java.io.Serializable { +private static final long serialVersionUID = 1L; + /** */ + private Channel channel; + public Channel getChannel() { + return channel; + } + + @JsonDeserialize( as=Channel_impl_ari_3_0_0.class ) + public void setChannel(Channel val ) { + channel = val; + } + +/** No missing signatures from interface */ +} + diff --git a/classes/ch/loway/oss/ari4java/generated/ari_3_0_0/models/ChannelTalkingFinished_impl_ari_3_0_0.java b/classes/ch/loway/oss/ari4java/generated/ari_3_0_0/models/ChannelTalkingFinished_impl_ari_3_0_0.java new file mode 100644 index 00000000..07d12383 --- /dev/null +++ b/classes/ch/loway/oss/ari4java/generated/ari_3_0_0/models/ChannelTalkingFinished_impl_ari_3_0_0.java @@ -0,0 +1,48 @@ +package ch.loway.oss.ari4java.generated.ari_3_0_0.models; + +// ---------------------------------------------------- +// THIS CLASS WAS GENERATED AUTOMATICALLY +// PLEASE DO NOT EDIT +// Generated on: Tue Dec 19 09:55:49 CET 2017 +// ---------------------------------------------------- + +import ch.loway.oss.ari4java.generated.*; +import com.fasterxml.jackson.databind.annotation.JsonDeserialize; +import java.util.Date; +import java.util.List; +import java.util.Map; + +/********************************************************** + * Talking is no longer detected on the channel. + * + * Defined in file: events.json + * Generated by: Model + *********************************************************/ + +public class ChannelTalkingFinished_impl_ari_3_0_0 extends Event_impl_ari_3_0_0 implements ChannelTalkingFinished, java.io.Serializable { +private static final long serialVersionUID = 1L; + /** The channel on which talking completed. */ + private Channel channel; + public Channel getChannel() { + return channel; + } + + @JsonDeserialize( as=Channel_impl_ari_3_0_0.class ) + public void setChannel(Channel val ) { + channel = val; + } + + /** The length of time, in milliseconds, that talking was detected on the channel */ + private int duration; + public int getDuration() { + return duration; + } + + @JsonDeserialize( as=int.class ) + public void setDuration(int val ) { + duration = val; + } + +/** No missing signatures from interface */ +} + diff --git a/classes/ch/loway/oss/ari4java/generated/ari_3_0_0/models/ChannelTalkingStarted_impl_ari_3_0_0.java b/classes/ch/loway/oss/ari4java/generated/ari_3_0_0/models/ChannelTalkingStarted_impl_ari_3_0_0.java new file mode 100644 index 00000000..2076a8b4 --- /dev/null +++ b/classes/ch/loway/oss/ari4java/generated/ari_3_0_0/models/ChannelTalkingStarted_impl_ari_3_0_0.java @@ -0,0 +1,37 @@ +package ch.loway.oss.ari4java.generated.ari_3_0_0.models; + +// ---------------------------------------------------- +// THIS CLASS WAS GENERATED AUTOMATICALLY +// PLEASE DO NOT EDIT +// Generated on: Tue Dec 19 09:55:49 CET 2017 +// ---------------------------------------------------- + +import ch.loway.oss.ari4java.generated.*; +import com.fasterxml.jackson.databind.annotation.JsonDeserialize; +import java.util.Date; +import java.util.List; +import java.util.Map; + +/********************************************************** + * Talking was detected on the channel. + * + * Defined in file: events.json + * Generated by: Model + *********************************************************/ + +public class ChannelTalkingStarted_impl_ari_3_0_0 extends Event_impl_ari_3_0_0 implements ChannelTalkingStarted, java.io.Serializable { +private static final long serialVersionUID = 1L; + /** The channel on which talking started. */ + private Channel channel; + public Channel getChannel() { + return channel; + } + + @JsonDeserialize( as=Channel_impl_ari_3_0_0.class ) + public void setChannel(Channel val ) { + channel = val; + } + +/** No missing signatures from interface */ +} + diff --git a/classes/ch/loway/oss/ari4java/generated/ari_3_0_0/models/ChannelUnhold_impl_ari_3_0_0.java b/classes/ch/loway/oss/ari4java/generated/ari_3_0_0/models/ChannelUnhold_impl_ari_3_0_0.java new file mode 100644 index 00000000..ae28973b --- /dev/null +++ b/classes/ch/loway/oss/ari4java/generated/ari_3_0_0/models/ChannelUnhold_impl_ari_3_0_0.java @@ -0,0 +1,37 @@ +package ch.loway.oss.ari4java.generated.ari_3_0_0.models; + +// ---------------------------------------------------- +// THIS CLASS WAS GENERATED AUTOMATICALLY +// PLEASE DO NOT EDIT +// Generated on: Tue Dec 19 09:55:49 CET 2017 +// ---------------------------------------------------- + +import ch.loway.oss.ari4java.generated.*; +import com.fasterxml.jackson.databind.annotation.JsonDeserialize; +import java.util.Date; +import java.util.List; +import java.util.Map; + +/********************************************************** + * A channel initiated a media unhold. + * + * Defined in file: events.json + * Generated by: Model + *********************************************************/ + +public class ChannelUnhold_impl_ari_3_0_0 extends Event_impl_ari_3_0_0 implements ChannelUnhold, java.io.Serializable { +private static final long serialVersionUID = 1L; + /** The channel that initiated the unhold event. */ + private Channel channel; + public Channel getChannel() { + return channel; + } + + @JsonDeserialize( as=Channel_impl_ari_3_0_0.class ) + public void setChannel(Channel val ) { + channel = val; + } + +/** No missing signatures from interface */ +} + diff --git a/classes/ch/loway/oss/ari4java/generated/ari_3_0_0/models/ChannelUserevent_impl_ari_3_0_0.java b/classes/ch/loway/oss/ari4java/generated/ari_3_0_0/models/ChannelUserevent_impl_ari_3_0_0.java new file mode 100644 index 00000000..b80a6c71 --- /dev/null +++ b/classes/ch/loway/oss/ari4java/generated/ari_3_0_0/models/ChannelUserevent_impl_ari_3_0_0.java @@ -0,0 +1,81 @@ +package ch.loway.oss.ari4java.generated.ari_3_0_0.models; + +// ---------------------------------------------------- +// THIS CLASS WAS GENERATED AUTOMATICALLY +// PLEASE DO NOT EDIT +// Generated on: Tue Dec 19 09:55:49 CET 2017 +// ---------------------------------------------------- + +import ch.loway.oss.ari4java.generated.*; +import com.fasterxml.jackson.databind.annotation.JsonDeserialize; +import java.util.Date; +import java.util.List; +import java.util.Map; + +/********************************************************** + * User-generated event with additional user-defined fields in the object. + * + * Defined in file: events.json + * Generated by: Model + *********************************************************/ + +public class ChannelUserevent_impl_ari_3_0_0 extends Event_impl_ari_3_0_0 implements ChannelUserevent, java.io.Serializable { +private static final long serialVersionUID = 1L; + /** A bridge that is signaled with the user event. */ + private Bridge bridge; + public Bridge getBridge() { + return bridge; + } + + @JsonDeserialize( as=Bridge_impl_ari_3_0_0.class ) + public void setBridge(Bridge val ) { + bridge = val; + } + + /** A channel that is signaled with the user event. */ + private Channel channel; + public Channel getChannel() { + return channel; + } + + @JsonDeserialize( as=Channel_impl_ari_3_0_0.class ) + public void setChannel(Channel val ) { + channel = val; + } + + /** A endpoint that is signaled with the user event. */ + private Endpoint endpoint; + public Endpoint getEndpoint() { + return endpoint; + } + + @JsonDeserialize( as=Endpoint_impl_ari_3_0_0.class ) + public void setEndpoint(Endpoint val ) { + endpoint = val; + } + + /** The name of the user event. */ + private String eventname; + public String getEventname() { + return eventname; + } + + @JsonDeserialize( as=String.class ) + public void setEventname(String val ) { + eventname = val; + } + + /** Custom Userevent data */ + private String userevent; + public String getUserevent() { + return userevent; + } + + @JsonDeserialize( as=String.class ) + public void setUserevent(String val ) { + userevent = val; + } + +/** No missing signatures from interface */ +} + diff --git a/classes/ch/loway/oss/ari4java/generated/ari_3_0_0/models/ChannelVarset_impl_ari_3_0_0.java b/classes/ch/loway/oss/ari4java/generated/ari_3_0_0/models/ChannelVarset_impl_ari_3_0_0.java new file mode 100644 index 00000000..0abb8e33 --- /dev/null +++ b/classes/ch/loway/oss/ari4java/generated/ari_3_0_0/models/ChannelVarset_impl_ari_3_0_0.java @@ -0,0 +1,61 @@ +package ch.loway.oss.ari4java.generated.ari_3_0_0.models; + +// ---------------------------------------------------- +// THIS CLASS WAS GENERATED AUTOMATICALLY +// PLEASE DO NOT EDIT +// Generated on: Tue Dec 19 09:55:49 CET 2017 +// ---------------------------------------------------- + +import ch.loway.oss.ari4java.generated.*; +import com.fasterxml.jackson.databind.annotation.JsonDeserialize; +import java.util.Date; +import java.util.List; +import java.util.Map; + +/********************************************************** + * Channel variable changed. + * + * Defined in file: events.json + * Generated by: Model + *********************************************************/ + +public class ChannelVarset_impl_ari_3_0_0 extends Event_impl_ari_3_0_0 implements ChannelVarset, java.io.Serializable { +private static final long serialVersionUID = 1L; + /** The channel on which the variable was set. + +If missing, the variable is a global variable. */ + private Channel channel; + public Channel getChannel() { + return channel; + } + + @JsonDeserialize( as=Channel_impl_ari_3_0_0.class ) + public void setChannel(Channel val ) { + channel = val; + } + + /** The new value of the variable. */ + private String value; + public String getValue() { + return value; + } + + @JsonDeserialize( as=String.class ) + public void setValue(String val ) { + value = val; + } + + /** The variable that changed. */ + private String variable; + public String getVariable() { + return variable; + } + + @JsonDeserialize( as=String.class ) + public void setVariable(String val ) { + variable = val; + } + +/** No missing signatures from interface */ +} + diff --git a/classes/ch/loway/oss/ari4java/generated/ari_3_0_0/models/Channel_impl_ari_3_0_0.java b/classes/ch/loway/oss/ari4java/generated/ari_3_0_0/models/Channel_impl_ari_3_0_0.java new file mode 100644 index 00000000..dd3eb764 --- /dev/null +++ b/classes/ch/loway/oss/ari4java/generated/ari_3_0_0/models/Channel_impl_ari_3_0_0.java @@ -0,0 +1,138 @@ +package ch.loway.oss.ari4java.generated.ari_3_0_0.models; + +// ---------------------------------------------------- +// THIS CLASS WAS GENERATED AUTOMATICALLY +// PLEASE DO NOT EDIT +// Generated on: Tue Dec 19 09:55:49 CET 2017 +// ---------------------------------------------------- + +import ch.loway.oss.ari4java.generated.*; +import com.fasterxml.jackson.databind.annotation.JsonDeserialize; +import java.util.Date; +import java.util.List; +import java.util.Map; + +/********************************************************** + * A specific communication connection between Asterisk and an Endpoint. + * + * Defined in file: channels.json + * Generated by: Model + *********************************************************/ + +public class Channel_impl_ari_3_0_0 implements Channel, java.io.Serializable { +private static final long serialVersionUID = 1L; + /** */ + private String accountcode; + public String getAccountcode() { + return accountcode; + } + + @JsonDeserialize( as=String.class ) + public void setAccountcode(String val ) { + accountcode = val; + } + + /** */ + private CallerID caller; + public CallerID getCaller() { + return caller; + } + + @JsonDeserialize( as=CallerID_impl_ari_3_0_0.class ) + public void setCaller(CallerID val ) { + caller = val; + } + + /** Channel variables */ + private String channelvars; + public String getChannelvars() { + return channelvars; + } + + @JsonDeserialize( as=String.class ) + public void setChannelvars(String val ) { + channelvars = val; + } + + /** */ + private CallerID connected; + public CallerID getConnected() { + return connected; + } + + @JsonDeserialize( as=CallerID_impl_ari_3_0_0.class ) + public void setConnected(CallerID val ) { + connected = val; + } + + /** Timestamp when channel was created */ + private Date creationtime; + public Date getCreationtime() { + return creationtime; + } + + @JsonDeserialize( as=Date.class ) + public void setCreationtime(Date val ) { + creationtime = val; + } + + /** Current location in the dialplan */ + private DialplanCEP dialplan; + public DialplanCEP getDialplan() { + return dialplan; + } + + @JsonDeserialize( as=DialplanCEP_impl_ari_3_0_0.class ) + public void setDialplan(DialplanCEP val ) { + dialplan = val; + } + + /** Unique identifier of the channel. + +This is the same as the Uniqueid field in AMI. */ + private String id; + public String getId() { + return id; + } + + @JsonDeserialize( as=String.class ) + public void setId(String val ) { + id = val; + } + + /** The default spoken language */ + private String language; + public String getLanguage() { + return language; + } + + @JsonDeserialize( as=String.class ) + public void setLanguage(String val ) { + language = val; + } + + /** Name of the channel (i.e. SIP/foo-0000a7e3) */ + private String name; + public String getName() { + return name; + } + + @JsonDeserialize( as=String.class ) + public void setName(String val ) { + name = val; + } + + /** */ + private String state; + public String getState() { + return state; + } + + @JsonDeserialize( as=String.class ) + public void setState(String val ) { + state = val; + } + +/** No missing signatures from interface */ +} + diff --git a/classes/ch/loway/oss/ari4java/generated/ari_3_0_0/models/ConfigInfo_impl_ari_3_0_0.java b/classes/ch/loway/oss/ari4java/generated/ari_3_0_0/models/ConfigInfo_impl_ari_3_0_0.java new file mode 100644 index 00000000..00034346 --- /dev/null +++ b/classes/ch/loway/oss/ari4java/generated/ari_3_0_0/models/ConfigInfo_impl_ari_3_0_0.java @@ -0,0 +1,92 @@ +package ch.loway.oss.ari4java.generated.ari_3_0_0.models; + +// ---------------------------------------------------- +// THIS CLASS WAS GENERATED AUTOMATICALLY +// PLEASE DO NOT EDIT +// Generated on: Tue Dec 19 09:55:49 CET 2017 +// ---------------------------------------------------- + +import ch.loway.oss.ari4java.generated.*; +import com.fasterxml.jackson.databind.annotation.JsonDeserialize; +import java.util.Date; +import java.util.List; +import java.util.Map; + +/********************************************************** + * Info about Asterisk configuration + * + * Defined in file: asterisk.json + * Generated by: Model + *********************************************************/ + +public class ConfigInfo_impl_ari_3_0_0 implements ConfigInfo, java.io.Serializable { +private static final long serialVersionUID = 1L; + /** Default language for media playback. */ + private String default_language; + public String getDefault_language() { + return default_language; + } + + @JsonDeserialize( as=String.class ) + public void setDefault_language(String val ) { + default_language = val; + } + + /** Maximum number of simultaneous channels. */ + private int max_channels; + public int getMax_channels() { + return max_channels; + } + + @JsonDeserialize( as=int.class ) + public void setMax_channels(int val ) { + max_channels = val; + } + + /** Maximum load avg on system. */ + private double max_load; + public double getMax_load() { + return max_load; + } + + @JsonDeserialize( as=double.class ) + public void setMax_load(double val ) { + max_load = val; + } + + /** Maximum number of open file handles (files, sockets). */ + private int max_open_files; + public int getMax_open_files() { + return max_open_files; + } + + @JsonDeserialize( as=int.class ) + public void setMax_open_files(int val ) { + max_open_files = val; + } + + /** Asterisk system name. */ + private String name; + public String getName() { + return name; + } + + @JsonDeserialize( as=String.class ) + public void setName(String val ) { + name = val; + } + + /** Effective user/group id for running Asterisk. */ + private SetId setid; + public SetId getSetid() { + return setid; + } + + @JsonDeserialize( as=SetId_impl_ari_3_0_0.class ) + public void setSetid(SetId val ) { + setid = val; + } + +/** No missing signatures from interface */ +} + diff --git a/classes/ch/loway/oss/ari4java/generated/ari_3_0_0/models/ConfigTuple_impl_ari_3_0_0.java b/classes/ch/loway/oss/ari4java/generated/ari_3_0_0/models/ConfigTuple_impl_ari_3_0_0.java new file mode 100644 index 00000000..06d5bfac --- /dev/null +++ b/classes/ch/loway/oss/ari4java/generated/ari_3_0_0/models/ConfigTuple_impl_ari_3_0_0.java @@ -0,0 +1,48 @@ +package ch.loway.oss.ari4java.generated.ari_3_0_0.models; + +// ---------------------------------------------------- +// THIS CLASS WAS GENERATED AUTOMATICALLY +// PLEASE DO NOT EDIT +// Generated on: Tue Dec 19 09:55:49 CET 2017 +// ---------------------------------------------------- + +import ch.loway.oss.ari4java.generated.*; +import com.fasterxml.jackson.databind.annotation.JsonDeserialize; +import java.util.Date; +import java.util.List; +import java.util.Map; + +/********************************************************** + * A key/value pair that makes up part of a configuration object. + * + * Defined in file: asterisk.json + * Generated by: Model + *********************************************************/ + +public class ConfigTuple_impl_ari_3_0_0 implements ConfigTuple, java.io.Serializable { +private static final long serialVersionUID = 1L; + /** A configuration object attribute. */ + private String attribute; + public String getAttribute() { + return attribute; + } + + @JsonDeserialize( as=String.class ) + public void setAttribute(String val ) { + attribute = val; + } + + /** The value for the attribute. */ + private String value; + public String getValue() { + return value; + } + + @JsonDeserialize( as=String.class ) + public void setValue(String val ) { + value = val; + } + +/** No missing signatures from interface */ +} + diff --git a/classes/ch/loway/oss/ari4java/generated/ari_3_0_0/models/ContactInfo_impl_ari_3_0_0.java b/classes/ch/loway/oss/ari4java/generated/ari_3_0_0/models/ContactInfo_impl_ari_3_0_0.java new file mode 100644 index 00000000..a09f037a --- /dev/null +++ b/classes/ch/loway/oss/ari4java/generated/ari_3_0_0/models/ContactInfo_impl_ari_3_0_0.java @@ -0,0 +1,70 @@ +package ch.loway.oss.ari4java.generated.ari_3_0_0.models; + +// ---------------------------------------------------- +// THIS CLASS WAS GENERATED AUTOMATICALLY +// PLEASE DO NOT EDIT +// Generated on: Tue Dec 19 09:55:49 CET 2017 +// ---------------------------------------------------- + +import ch.loway.oss.ari4java.generated.*; +import com.fasterxml.jackson.databind.annotation.JsonDeserialize; +import java.util.Date; +import java.util.List; +import java.util.Map; + +/********************************************************** + * Detailed information about a contact on an endpoint. + * + * Defined in file: events.json + * Generated by: Model + *********************************************************/ + +public class ContactInfo_impl_ari_3_0_0 implements ContactInfo, java.io.Serializable { +private static final long serialVersionUID = 1L; + /** The Address of Record this contact belongs to. */ + private String aor; + public String getAor() { + return aor; + } + + @JsonDeserialize( as=String.class ) + public void setAor(String val ) { + aor = val; + } + + /** The current status of the contact. */ + private String contact_status; + public String getContact_status() { + return contact_status; + } + + @JsonDeserialize( as=String.class ) + public void setContact_status(String val ) { + contact_status = val; + } + + /** Current round trip time, in microseconds, for the contact. */ + private String roundtrip_usec; + public String getRoundtrip_usec() { + return roundtrip_usec; + } + + @JsonDeserialize( as=String.class ) + public void setRoundtrip_usec(String val ) { + roundtrip_usec = val; + } + + /** The location of the contact. */ + private String uri; + public String getUri() { + return uri; + } + + @JsonDeserialize( as=String.class ) + public void setUri(String val ) { + uri = val; + } + +/** No missing signatures from interface */ +} + diff --git a/classes/ch/loway/oss/ari4java/generated/ari_3_0_0/models/ContactStatusChange_impl_ari_3_0_0.java b/classes/ch/loway/oss/ari4java/generated/ari_3_0_0/models/ContactStatusChange_impl_ari_3_0_0.java new file mode 100644 index 00000000..058a740d --- /dev/null +++ b/classes/ch/loway/oss/ari4java/generated/ari_3_0_0/models/ContactStatusChange_impl_ari_3_0_0.java @@ -0,0 +1,48 @@ +package ch.loway.oss.ari4java.generated.ari_3_0_0.models; + +// ---------------------------------------------------- +// THIS CLASS WAS GENERATED AUTOMATICALLY +// PLEASE DO NOT EDIT +// Generated on: Tue Dec 19 09:55:49 CET 2017 +// ---------------------------------------------------- + +import ch.loway.oss.ari4java.generated.*; +import com.fasterxml.jackson.databind.annotation.JsonDeserialize; +import java.util.Date; +import java.util.List; +import java.util.Map; + +/********************************************************** + * The state of a contact on an endpoint has changed. + * + * Defined in file: events.json + * Generated by: Model + *********************************************************/ + +public class ContactStatusChange_impl_ari_3_0_0 extends Event_impl_ari_3_0_0 implements ContactStatusChange, java.io.Serializable { +private static final long serialVersionUID = 1L; + /** */ + private ContactInfo contact_info; + public ContactInfo getContact_info() { + return contact_info; + } + + @JsonDeserialize( as=ContactInfo_impl_ari_3_0_0.class ) + public void setContact_info(ContactInfo val ) { + contact_info = val; + } + + /** */ + private Endpoint endpoint; + public Endpoint getEndpoint() { + return endpoint; + } + + @JsonDeserialize( as=Endpoint_impl_ari_3_0_0.class ) + public void setEndpoint(Endpoint val ) { + endpoint = val; + } + +/** No missing signatures from interface */ +} + diff --git a/classes/ch/loway/oss/ari4java/generated/ari_3_0_0/models/DeviceStateChanged_impl_ari_3_0_0.java b/classes/ch/loway/oss/ari4java/generated/ari_3_0_0/models/DeviceStateChanged_impl_ari_3_0_0.java new file mode 100644 index 00000000..13d5775b --- /dev/null +++ b/classes/ch/loway/oss/ari4java/generated/ari_3_0_0/models/DeviceStateChanged_impl_ari_3_0_0.java @@ -0,0 +1,37 @@ +package ch.loway.oss.ari4java.generated.ari_3_0_0.models; + +// ---------------------------------------------------- +// THIS CLASS WAS GENERATED AUTOMATICALLY +// PLEASE DO NOT EDIT +// Generated on: Tue Dec 19 09:55:49 CET 2017 +// ---------------------------------------------------- + +import ch.loway.oss.ari4java.generated.*; +import com.fasterxml.jackson.databind.annotation.JsonDeserialize; +import java.util.Date; +import java.util.List; +import java.util.Map; + +/********************************************************** + * Notification that a device state has changed. + * + * Defined in file: events.json + * Generated by: Model + *********************************************************/ + +public class DeviceStateChanged_impl_ari_3_0_0 extends Event_impl_ari_3_0_0 implements DeviceStateChanged, java.io.Serializable { +private static final long serialVersionUID = 1L; + /** Device state object */ + private DeviceState device_state; + public DeviceState getDevice_state() { + return device_state; + } + + @JsonDeserialize( as=DeviceState_impl_ari_3_0_0.class ) + public void setDevice_state(DeviceState val ) { + device_state = val; + } + +/** No missing signatures from interface */ +} + diff --git a/classes/ch/loway/oss/ari4java/generated/ari_3_0_0/models/DeviceState_impl_ari_3_0_0.java b/classes/ch/loway/oss/ari4java/generated/ari_3_0_0/models/DeviceState_impl_ari_3_0_0.java new file mode 100644 index 00000000..c6112375 --- /dev/null +++ b/classes/ch/loway/oss/ari4java/generated/ari_3_0_0/models/DeviceState_impl_ari_3_0_0.java @@ -0,0 +1,48 @@ +package ch.loway.oss.ari4java.generated.ari_3_0_0.models; + +// ---------------------------------------------------- +// THIS CLASS WAS GENERATED AUTOMATICALLY +// PLEASE DO NOT EDIT +// Generated on: Tue Dec 19 09:55:49 CET 2017 +// ---------------------------------------------------- + +import ch.loway.oss.ari4java.generated.*; +import com.fasterxml.jackson.databind.annotation.JsonDeserialize; +import java.util.Date; +import java.util.List; +import java.util.Map; + +/********************************************************** + * Represents the state of a device. + * + * Defined in file: deviceStates.json + * Generated by: Model + *********************************************************/ + +public class DeviceState_impl_ari_3_0_0 implements DeviceState, java.io.Serializable { +private static final long serialVersionUID = 1L; + /** Name of the device. */ + private String name; + public String getName() { + return name; + } + + @JsonDeserialize( as=String.class ) + public void setName(String val ) { + name = val; + } + + /** Device's state */ + private String state; + public String getState() { + return state; + } + + @JsonDeserialize( as=String.class ) + public void setState(String val ) { + state = val; + } + +/** No missing signatures from interface */ +} + diff --git a/classes/ch/loway/oss/ari4java/generated/ari_3_0_0/models/Dial_impl_ari_3_0_0.java b/classes/ch/loway/oss/ari4java/generated/ari_3_0_0/models/Dial_impl_ari_3_0_0.java new file mode 100644 index 00000000..b2204fe1 --- /dev/null +++ b/classes/ch/loway/oss/ari4java/generated/ari_3_0_0/models/Dial_impl_ari_3_0_0.java @@ -0,0 +1,92 @@ +package ch.loway.oss.ari4java.generated.ari_3_0_0.models; + +// ---------------------------------------------------- +// THIS CLASS WAS GENERATED AUTOMATICALLY +// PLEASE DO NOT EDIT +// Generated on: Tue Dec 19 09:55:49 CET 2017 +// ---------------------------------------------------- + +import ch.loway.oss.ari4java.generated.*; +import com.fasterxml.jackson.databind.annotation.JsonDeserialize; +import java.util.Date; +import java.util.List; +import java.util.Map; + +/********************************************************** + * Dialing state has changed. + * + * Defined in file: events.json + * Generated by: Model + *********************************************************/ + +public class Dial_impl_ari_3_0_0 extends Event_impl_ari_3_0_0 implements Dial, java.io.Serializable { +private static final long serialVersionUID = 1L; + /** The calling channel. */ + private Channel caller; + public Channel getCaller() { + return caller; + } + + @JsonDeserialize( as=Channel_impl_ari_3_0_0.class ) + public void setCaller(Channel val ) { + caller = val; + } + + /** Current status of the dialing attempt to the peer. */ + private String dialstatus; + public String getDialstatus() { + return dialstatus; + } + + @JsonDeserialize( as=String.class ) + public void setDialstatus(String val ) { + dialstatus = val; + } + + /** The dial string for calling the peer channel. */ + private String dialstring; + public String getDialstring() { + return dialstring; + } + + @JsonDeserialize( as=String.class ) + public void setDialstring(String val ) { + dialstring = val; + } + + /** Forwarding target requested by the original dialed channel. */ + private String forward; + public String getForward() { + return forward; + } + + @JsonDeserialize( as=String.class ) + public void setForward(String val ) { + forward = val; + } + + /** Channel that the caller has been forwarded to. */ + private Channel forwarded; + public Channel getForwarded() { + return forwarded; + } + + @JsonDeserialize( as=Channel_impl_ari_3_0_0.class ) + public void setForwarded(Channel val ) { + forwarded = val; + } + + /** The dialed channel. */ + private Channel peer; + public Channel getPeer() { + return peer; + } + + @JsonDeserialize( as=Channel_impl_ari_3_0_0.class ) + public void setPeer(Channel val ) { + peer = val; + } + +/** No missing signatures from interface */ +} + diff --git a/classes/ch/loway/oss/ari4java/generated/ari_3_0_0/models/Dialed_impl_ari_3_0_0.java b/classes/ch/loway/oss/ari4java/generated/ari_3_0_0/models/Dialed_impl_ari_3_0_0.java new file mode 100644 index 00000000..16eff8db --- /dev/null +++ b/classes/ch/loway/oss/ari4java/generated/ari_3_0_0/models/Dialed_impl_ari_3_0_0.java @@ -0,0 +1,26 @@ +package ch.loway.oss.ari4java.generated.ari_3_0_0.models; + +// ---------------------------------------------------- +// THIS CLASS WAS GENERATED AUTOMATICALLY +// PLEASE DO NOT EDIT +// Generated on: Tue Dec 19 09:55:49 CET 2017 +// ---------------------------------------------------- + +import ch.loway.oss.ari4java.generated.*; +import com.fasterxml.jackson.databind.annotation.JsonDeserialize; +import java.util.Date; +import java.util.List; +import java.util.Map; + +/********************************************************** + * Dialed channel information. + * + * Defined in file: channels.json + * Generated by: Model + *********************************************************/ + +public class Dialed_impl_ari_3_0_0 implements Dialed, java.io.Serializable { +private static final long serialVersionUID = 1L; +/** No missing signatures from interface */ +} + diff --git a/classes/ch/loway/oss/ari4java/generated/ari_3_0_0/models/DialplanCEP_impl_ari_3_0_0.java b/classes/ch/loway/oss/ari4java/generated/ari_3_0_0/models/DialplanCEP_impl_ari_3_0_0.java new file mode 100644 index 00000000..c52534d4 --- /dev/null +++ b/classes/ch/loway/oss/ari4java/generated/ari_3_0_0/models/DialplanCEP_impl_ari_3_0_0.java @@ -0,0 +1,59 @@ +package ch.loway.oss.ari4java.generated.ari_3_0_0.models; + +// ---------------------------------------------------- +// THIS CLASS WAS GENERATED AUTOMATICALLY +// PLEASE DO NOT EDIT +// Generated on: Tue Dec 19 09:55:49 CET 2017 +// ---------------------------------------------------- + +import ch.loway.oss.ari4java.generated.*; +import com.fasterxml.jackson.databind.annotation.JsonDeserialize; +import java.util.Date; +import java.util.List; +import java.util.Map; + +/********************************************************** + * Dialplan location (context/extension/priority) + * + * Defined in file: channels.json + * Generated by: Model + *********************************************************/ + +public class DialplanCEP_impl_ari_3_0_0 implements DialplanCEP, java.io.Serializable { +private static final long serialVersionUID = 1L; + /** Context in the dialplan */ + private String context; + public String getContext() { + return context; + } + + @JsonDeserialize( as=String.class ) + public void setContext(String val ) { + context = val; + } + + /** Extension in the dialplan */ + private String exten; + public String getExten() { + return exten; + } + + @JsonDeserialize( as=String.class ) + public void setExten(String val ) { + exten = val; + } + + /** Priority in the dialplan */ + private long priority; + public long getPriority() { + return priority; + } + + @JsonDeserialize( as=long.class ) + public void setPriority(long val ) { + priority = val; + } + +/** No missing signatures from interface */ +} + diff --git a/classes/ch/loway/oss/ari4java/generated/ari_3_0_0/models/EndpointStateChange_impl_ari_3_0_0.java b/classes/ch/loway/oss/ari4java/generated/ari_3_0_0/models/EndpointStateChange_impl_ari_3_0_0.java new file mode 100644 index 00000000..86ecb778 --- /dev/null +++ b/classes/ch/loway/oss/ari4java/generated/ari_3_0_0/models/EndpointStateChange_impl_ari_3_0_0.java @@ -0,0 +1,37 @@ +package ch.loway.oss.ari4java.generated.ari_3_0_0.models; + +// ---------------------------------------------------- +// THIS CLASS WAS GENERATED AUTOMATICALLY +// PLEASE DO NOT EDIT +// Generated on: Tue Dec 19 09:55:49 CET 2017 +// ---------------------------------------------------- + +import ch.loway.oss.ari4java.generated.*; +import com.fasterxml.jackson.databind.annotation.JsonDeserialize; +import java.util.Date; +import java.util.List; +import java.util.Map; + +/********************************************************** + * Endpoint state changed. + * + * Defined in file: events.json + * Generated by: Model + *********************************************************/ + +public class EndpointStateChange_impl_ari_3_0_0 extends Event_impl_ari_3_0_0 implements EndpointStateChange, java.io.Serializable { +private static final long serialVersionUID = 1L; + /** */ + private Endpoint endpoint; + public Endpoint getEndpoint() { + return endpoint; + } + + @JsonDeserialize( as=Endpoint_impl_ari_3_0_0.class ) + public void setEndpoint(Endpoint val ) { + endpoint = val; + } + +/** No missing signatures from interface */ +} + diff --git a/classes/ch/loway/oss/ari4java/generated/ari_3_0_0/models/Endpoint_impl_ari_3_0_0.java b/classes/ch/loway/oss/ari4java/generated/ari_3_0_0/models/Endpoint_impl_ari_3_0_0.java new file mode 100644 index 00000000..943dfb83 --- /dev/null +++ b/classes/ch/loway/oss/ari4java/generated/ari_3_0_0/models/Endpoint_impl_ari_3_0_0.java @@ -0,0 +1,72 @@ +package ch.loway.oss.ari4java.generated.ari_3_0_0.models; + +// ---------------------------------------------------- +// THIS CLASS WAS GENERATED AUTOMATICALLY +// PLEASE DO NOT EDIT +// Generated on: Tue Dec 19 09:55:49 CET 2017 +// ---------------------------------------------------- + +import ch.loway.oss.ari4java.generated.*; +import com.fasterxml.jackson.databind.annotation.JsonDeserialize; +import java.util.Date; +import java.util.List; +import java.util.Map; + +/********************************************************** + * An external device that may offer/accept calls to/from Asterisk. + * + * Unlike most resources, which have a single unique identifier, an endpoint is uniquely identified by the technology/resource pair. + * + * Defined in file: endpoints.json + * Generated by: Model + *********************************************************/ + +public class Endpoint_impl_ari_3_0_0 implements Endpoint, java.io.Serializable { +private static final long serialVersionUID = 1L; + /** Id's of channels associated with this endpoint */ + private List channel_ids; + public List getChannel_ids() { + return channel_ids; + } + + @JsonDeserialize( contentAs=String.class ) + public void setChannel_ids(List val ) { + channel_ids = val; + } + + /** Identifier of the endpoint, specific to the given technology. */ + private String resource; + public String getResource() { + return resource; + } + + @JsonDeserialize( as=String.class ) + public void setResource(String val ) { + resource = val; + } + + /** Endpoint's state */ + private String state; + public String getState() { + return state; + } + + @JsonDeserialize( as=String.class ) + public void setState(String val ) { + state = val; + } + + /** Technology of the endpoint */ + private String technology; + public String getTechnology() { + return technology; + } + + @JsonDeserialize( as=String.class ) + public void setTechnology(String val ) { + technology = val; + } + +/** No missing signatures from interface */ +} + diff --git a/classes/ch/loway/oss/ari4java/generated/ari_3_0_0/models/Event_impl_ari_3_0_0.java b/classes/ch/loway/oss/ari4java/generated/ari_3_0_0/models/Event_impl_ari_3_0_0.java new file mode 100644 index 00000000..2847407e --- /dev/null +++ b/classes/ch/loway/oss/ari4java/generated/ari_3_0_0/models/Event_impl_ari_3_0_0.java @@ -0,0 +1,48 @@ +package ch.loway.oss.ari4java.generated.ari_3_0_0.models; + +// ---------------------------------------------------- +// THIS CLASS WAS GENERATED AUTOMATICALLY +// PLEASE DO NOT EDIT +// Generated on: Tue Dec 19 09:55:49 CET 2017 +// ---------------------------------------------------- + +import ch.loway.oss.ari4java.generated.*; +import com.fasterxml.jackson.databind.annotation.JsonDeserialize; +import java.util.Date; +import java.util.List; +import java.util.Map; + +/********************************************************** + * Base type for asynchronous events from Asterisk. + * + * Defined in file: events.json + * Generated by: Model + *********************************************************/ + +public class Event_impl_ari_3_0_0 extends Message_impl_ari_3_0_0 implements Event, java.io.Serializable { +private static final long serialVersionUID = 1L; + /** Name of the application receiving the event. */ + private String application; + public String getApplication() { + return application; + } + + @JsonDeserialize( as=String.class ) + public void setApplication(String val ) { + application = val; + } + + /** Time at which this event was created. */ + private Date timestamp; + public Date getTimestamp() { + return timestamp; + } + + @JsonDeserialize( as=Date.class ) + public void setTimestamp(Date val ) { + timestamp = val; + } + +/** No missing signatures from interface */ +} + diff --git a/classes/ch/loway/oss/ari4java/generated/ari_3_0_0/models/FormatLangPair_impl_ari_3_0_0.java b/classes/ch/loway/oss/ari4java/generated/ari_3_0_0/models/FormatLangPair_impl_ari_3_0_0.java new file mode 100644 index 00000000..e12d0fdb --- /dev/null +++ b/classes/ch/loway/oss/ari4java/generated/ari_3_0_0/models/FormatLangPair_impl_ari_3_0_0.java @@ -0,0 +1,48 @@ +package ch.loway.oss.ari4java.generated.ari_3_0_0.models; + +// ---------------------------------------------------- +// THIS CLASS WAS GENERATED AUTOMATICALLY +// PLEASE DO NOT EDIT +// Generated on: Tue Dec 19 09:55:49 CET 2017 +// ---------------------------------------------------- + +import ch.loway.oss.ari4java.generated.*; +import com.fasterxml.jackson.databind.annotation.JsonDeserialize; +import java.util.Date; +import java.util.List; +import java.util.Map; + +/********************************************************** + * Identifies the format and language of a sound file + * + * Defined in file: sounds.json + * Generated by: Model + *********************************************************/ + +public class FormatLangPair_impl_ari_3_0_0 implements FormatLangPair, java.io.Serializable { +private static final long serialVersionUID = 1L; + /** */ + private String format; + public String getFormat() { + return format; + } + + @JsonDeserialize( as=String.class ) + public void setFormat(String val ) { + format = val; + } + + /** */ + private String language; + public String getLanguage() { + return language; + } + + @JsonDeserialize( as=String.class ) + public void setLanguage(String val ) { + language = val; + } + +/** No missing signatures from interface */ +} + diff --git a/classes/ch/loway/oss/ari4java/generated/ari_3_0_0/models/LiveRecording_impl_ari_3_0_0.java b/classes/ch/loway/oss/ari4java/generated/ari_3_0_0/models/LiveRecording_impl_ari_3_0_0.java new file mode 100644 index 00000000..ef6c8d60 --- /dev/null +++ b/classes/ch/loway/oss/ari4java/generated/ari_3_0_0/models/LiveRecording_impl_ari_3_0_0.java @@ -0,0 +1,114 @@ +package ch.loway.oss.ari4java.generated.ari_3_0_0.models; + +// ---------------------------------------------------- +// THIS CLASS WAS GENERATED AUTOMATICALLY +// PLEASE DO NOT EDIT +// Generated on: Tue Dec 19 09:55:49 CET 2017 +// ---------------------------------------------------- + +import ch.loway.oss.ari4java.generated.*; +import com.fasterxml.jackson.databind.annotation.JsonDeserialize; +import java.util.Date; +import java.util.List; +import java.util.Map; + +/********************************************************** + * A recording that is in progress + * + * Defined in file: recordings.json + * Generated by: Model + *********************************************************/ + +public class LiveRecording_impl_ari_3_0_0 implements LiveRecording, java.io.Serializable { +private static final long serialVersionUID = 1L; + /** Cause for recording failure if failed */ + private String cause; + public String getCause() { + return cause; + } + + @JsonDeserialize( as=String.class ) + public void setCause(String val ) { + cause = val; + } + + /** Duration in seconds of the recording */ + private int duration; + public int getDuration() { + return duration; + } + + @JsonDeserialize( as=int.class ) + public void setDuration(int val ) { + duration = val; + } + + /** Recording format (wav, gsm, etc.) */ + private String format; + public String getFormat() { + return format; + } + + @JsonDeserialize( as=String.class ) + public void setFormat(String val ) { + format = val; + } + + /** Base name for the recording */ + private String name; + public String getName() { + return name; + } + + @JsonDeserialize( as=String.class ) + public void setName(String val ) { + name = val; + } + + /** Duration of silence, in seconds, detected in the recording. This is only available if the recording was initiated with a non-zero maxSilenceSeconds. */ + private int silence_duration; + public int getSilence_duration() { + return silence_duration; + } + + @JsonDeserialize( as=int.class ) + public void setSilence_duration(int val ) { + silence_duration = val; + } + + /** */ + private String state; + public String getState() { + return state; + } + + @JsonDeserialize( as=String.class ) + public void setState(String val ) { + state = val; + } + + /** Duration of talking, in seconds, detected in the recording. This is only available if the recording was initiated with a non-zero maxSilenceSeconds. */ + private int talking_duration; + public int getTalking_duration() { + return talking_duration; + } + + @JsonDeserialize( as=int.class ) + public void setTalking_duration(int val ) { + talking_duration = val; + } + + /** URI for the channel or bridge being recorded */ + private String target_uri; + public String getTarget_uri() { + return target_uri; + } + + @JsonDeserialize( as=String.class ) + public void setTarget_uri(String val ) { + target_uri = val; + } + +/** No missing signatures from interface */ +} + diff --git a/classes/ch/loway/oss/ari4java/generated/ari_3_0_0/models/LogChannel_impl_ari_3_0_0.java b/classes/ch/loway/oss/ari4java/generated/ari_3_0_0/models/LogChannel_impl_ari_3_0_0.java new file mode 100644 index 00000000..42338d13 --- /dev/null +++ b/classes/ch/loway/oss/ari4java/generated/ari_3_0_0/models/LogChannel_impl_ari_3_0_0.java @@ -0,0 +1,70 @@ +package ch.loway.oss.ari4java.generated.ari_3_0_0.models; + +// ---------------------------------------------------- +// THIS CLASS WAS GENERATED AUTOMATICALLY +// PLEASE DO NOT EDIT +// Generated on: Tue Dec 19 09:55:49 CET 2017 +// ---------------------------------------------------- + +import ch.loway.oss.ari4java.generated.*; +import com.fasterxml.jackson.databind.annotation.JsonDeserialize; +import java.util.Date; +import java.util.List; +import java.util.Map; + +/********************************************************** + * Details of an Asterisk log channel + * + * Defined in file: asterisk.json + * Generated by: Model + *********************************************************/ + +public class LogChannel_impl_ari_3_0_0 implements LogChannel, java.io.Serializable { +private static final long serialVersionUID = 1L; + /** The log channel path */ + private String channel; + public String getChannel() { + return channel; + } + + @JsonDeserialize( as=String.class ) + public void setChannel(String val ) { + channel = val; + } + + /** The various log levels */ + private String configuration; + public String getConfiguration() { + return configuration; + } + + @JsonDeserialize( as=String.class ) + public void setConfiguration(String val ) { + configuration = val; + } + + /** Whether or not a log type is enabled */ + private String status; + public String getStatus() { + return status; + } + + @JsonDeserialize( as=String.class ) + public void setStatus(String val ) { + status = val; + } + + /** Types of logs for the log channel */ + private String type; + public String getType() { + return type; + } + + @JsonDeserialize( as=String.class ) + public void setType(String val ) { + type = val; + } + +/** No missing signatures from interface */ +} + diff --git a/classes/ch/loway/oss/ari4java/generated/ari_3_0_0/models/Message_impl_ari_3_0_0.java b/classes/ch/loway/oss/ari4java/generated/ari_3_0_0/models/Message_impl_ari_3_0_0.java new file mode 100644 index 00000000..8ca81ac1 --- /dev/null +++ b/classes/ch/loway/oss/ari4java/generated/ari_3_0_0/models/Message_impl_ari_3_0_0.java @@ -0,0 +1,95 @@ +package ch.loway.oss.ari4java.generated.ari_3_0_0.models; + +// ---------------------------------------------------- +// THIS CLASS WAS GENERATED AUTOMATICALLY +// PLEASE DO NOT EDIT +// Generated on: Tue Dec 19 09:55:49 CET 2017 +// ---------------------------------------------------- + +import ch.loway.oss.ari4java.generated.*; +import com.fasterxml.jackson.annotation.JsonSubTypes; +import com.fasterxml.jackson.annotation.JsonSubTypes.Type; +import com.fasterxml.jackson.annotation.JsonTypeInfo; +import com.fasterxml.jackson.databind.annotation.JsonDeserialize; +import java.util.Date; +import java.util.List; +import java.util.Map; + +/********************************************************** + * Base type for errors and events + * + * Defined in file: events.json + * Generated by: Model + *********************************************************/ + @JsonTypeInfo( use = JsonTypeInfo.Id.NAME, include = JsonTypeInfo.As.PROPERTY, property = "type") + @JsonSubTypes({ @Type(value = MissingParams_impl_ari_3_0_0.class, name = "MissingParams") +, @Type(value = Event_impl_ari_3_0_0.class, name = "Event") +, @Type(value = ContactInfo_impl_ari_3_0_0.class, name = "ContactInfo") +, @Type(value = Peer_impl_ari_3_0_0.class, name = "Peer") +, @Type(value = DeviceStateChanged_impl_ari_3_0_0.class, name = "DeviceStateChanged") +, @Type(value = PlaybackStarted_impl_ari_3_0_0.class, name = "PlaybackStarted") +, @Type(value = PlaybackContinuing_impl_ari_3_0_0.class, name = "PlaybackContinuing") +, @Type(value = PlaybackFinished_impl_ari_3_0_0.class, name = "PlaybackFinished") +, @Type(value = RecordingStarted_impl_ari_3_0_0.class, name = "RecordingStarted") +, @Type(value = RecordingFinished_impl_ari_3_0_0.class, name = "RecordingFinished") +, @Type(value = RecordingFailed_impl_ari_3_0_0.class, name = "RecordingFailed") +, @Type(value = ApplicationReplaced_impl_ari_3_0_0.class, name = "ApplicationReplaced") +, @Type(value = BridgeCreated_impl_ari_3_0_0.class, name = "BridgeCreated") +, @Type(value = BridgeDestroyed_impl_ari_3_0_0.class, name = "BridgeDestroyed") +, @Type(value = BridgeMerged_impl_ari_3_0_0.class, name = "BridgeMerged") +, @Type(value = BridgeVideoSourceChanged_impl_ari_3_0_0.class, name = "BridgeVideoSourceChanged") +, @Type(value = BridgeBlindTransfer_impl_ari_3_0_0.class, name = "BridgeBlindTransfer") +, @Type(value = BridgeAttendedTransfer_impl_ari_3_0_0.class, name = "BridgeAttendedTransfer") +, @Type(value = ChannelCreated_impl_ari_3_0_0.class, name = "ChannelCreated") +, @Type(value = ChannelDestroyed_impl_ari_3_0_0.class, name = "ChannelDestroyed") +, @Type(value = ChannelEnteredBridge_impl_ari_3_0_0.class, name = "ChannelEnteredBridge") +, @Type(value = ChannelLeftBridge_impl_ari_3_0_0.class, name = "ChannelLeftBridge") +, @Type(value = ChannelStateChange_impl_ari_3_0_0.class, name = "ChannelStateChange") +, @Type(value = ChannelDtmfReceived_impl_ari_3_0_0.class, name = "ChannelDtmfReceived") +, @Type(value = ChannelDialplan_impl_ari_3_0_0.class, name = "ChannelDialplan") +, @Type(value = ChannelCallerId_impl_ari_3_0_0.class, name = "ChannelCallerId") +, @Type(value = ChannelUserevent_impl_ari_3_0_0.class, name = "ChannelUserevent") +, @Type(value = ChannelHangupRequest_impl_ari_3_0_0.class, name = "ChannelHangupRequest") +, @Type(value = ChannelVarset_impl_ari_3_0_0.class, name = "ChannelVarset") +, @Type(value = ChannelHold_impl_ari_3_0_0.class, name = "ChannelHold") +, @Type(value = ChannelUnhold_impl_ari_3_0_0.class, name = "ChannelUnhold") +, @Type(value = ChannelTalkingStarted_impl_ari_3_0_0.class, name = "ChannelTalkingStarted") +, @Type(value = ChannelTalkingFinished_impl_ari_3_0_0.class, name = "ChannelTalkingFinished") +, @Type(value = ContactStatusChange_impl_ari_3_0_0.class, name = "ContactStatusChange") +, @Type(value = PeerStatusChange_impl_ari_3_0_0.class, name = "PeerStatusChange") +, @Type(value = EndpointStateChange_impl_ari_3_0_0.class, name = "EndpointStateChange") +, @Type(value = Dial_impl_ari_3_0_0.class, name = "Dial") +, @Type(value = StasisEnd_impl_ari_3_0_0.class, name = "StasisEnd") +, @Type(value = StasisStart_impl_ari_3_0_0.class, name = "StasisStart") +, @Type(value = TextMessageReceived_impl_ari_3_0_0.class, name = "TextMessageReceived") +, @Type(value = ChannelConnectedLine_impl_ari_3_0_0.class, name = "ChannelConnectedLine") + }) + + +public class Message_impl_ari_3_0_0 implements Message, java.io.Serializable { +private static final long serialVersionUID = 1L; + /** The unique ID for the Asterisk instance that raised this event. */ + private String asterisk_id; + public String getAsterisk_id() { + return asterisk_id; + } + + @JsonDeserialize( as=String.class ) + public void setAsterisk_id(String val ) { + asterisk_id = val; + } + + /** Indicates the type of this message. */ + private String type; + public String getType() { + return type; + } + + @JsonDeserialize( as=String.class ) + public void setType(String val ) { + type = val; + } + +/** No missing signatures from interface */ +} + diff --git a/classes/ch/loway/oss/ari4java/generated/ari_3_0_0/models/MissingParams_impl_ari_3_0_0.java b/classes/ch/loway/oss/ari4java/generated/ari_3_0_0/models/MissingParams_impl_ari_3_0_0.java new file mode 100644 index 00000000..bc02d853 --- /dev/null +++ b/classes/ch/loway/oss/ari4java/generated/ari_3_0_0/models/MissingParams_impl_ari_3_0_0.java @@ -0,0 +1,37 @@ +package ch.loway.oss.ari4java.generated.ari_3_0_0.models; + +// ---------------------------------------------------- +// THIS CLASS WAS GENERATED AUTOMATICALLY +// PLEASE DO NOT EDIT +// Generated on: Tue Dec 19 09:55:49 CET 2017 +// ---------------------------------------------------- + +import ch.loway.oss.ari4java.generated.*; +import com.fasterxml.jackson.databind.annotation.JsonDeserialize; +import java.util.Date; +import java.util.List; +import java.util.Map; + +/********************************************************** + * Error event sent when required params are missing. + * + * Defined in file: events.json + * Generated by: Model + *********************************************************/ + +public class MissingParams_impl_ari_3_0_0 extends Message_impl_ari_3_0_0 implements MissingParams, java.io.Serializable { +private static final long serialVersionUID = 1L; + /** A list of the missing parameters */ + private List params; + public List getParams() { + return params; + } + + @JsonDeserialize( contentAs=String.class ) + public void setParams(List val ) { + params = val; + } + +/** No missing signatures from interface */ +} + diff --git a/classes/ch/loway/oss/ari4java/generated/ari_3_0_0/models/Module_impl_ari_3_0_0.java b/classes/ch/loway/oss/ari4java/generated/ari_3_0_0/models/Module_impl_ari_3_0_0.java new file mode 100644 index 00000000..9a305665 --- /dev/null +++ b/classes/ch/loway/oss/ari4java/generated/ari_3_0_0/models/Module_impl_ari_3_0_0.java @@ -0,0 +1,81 @@ +package ch.loway.oss.ari4java.generated.ari_3_0_0.models; + +// ---------------------------------------------------- +// THIS CLASS WAS GENERATED AUTOMATICALLY +// PLEASE DO NOT EDIT +// Generated on: Tue Dec 19 09:55:49 CET 2017 +// ---------------------------------------------------- + +import ch.loway.oss.ari4java.generated.*; +import com.fasterxml.jackson.databind.annotation.JsonDeserialize; +import java.util.Date; +import java.util.List; +import java.util.Map; + +/********************************************************** + * Details of an Asterisk module + * + * Defined in file: asterisk.json + * Generated by: Model + *********************************************************/ + +public class Module_impl_ari_3_0_0 implements Module, java.io.Serializable { +private static final long serialVersionUID = 1L; + /** The description of this module */ + private String description; + public String getDescription() { + return description; + } + + @JsonDeserialize( as=String.class ) + public void setDescription(String val ) { + description = val; + } + + /** The name of this module */ + private String name; + public String getName() { + return name; + } + + @JsonDeserialize( as=String.class ) + public void setName(String val ) { + name = val; + } + + /** The running status of this module */ + private String status; + public String getStatus() { + return status; + } + + @JsonDeserialize( as=String.class ) + public void setStatus(String val ) { + status = val; + } + + /** The support state of this module */ + private String support_level; + public String getSupport_level() { + return support_level; + } + + @JsonDeserialize( as=String.class ) + public void setSupport_level(String val ) { + support_level = val; + } + + /** The number of times this module is being used */ + private int use_count; + public int getUse_count() { + return use_count; + } + + @JsonDeserialize( as=int.class ) + public void setUse_count(int val ) { + use_count = val; + } + +/** No missing signatures from interface */ +} + diff --git a/classes/ch/loway/oss/ari4java/generated/ari_3_0_0/models/PeerStatusChange_impl_ari_3_0_0.java b/classes/ch/loway/oss/ari4java/generated/ari_3_0_0/models/PeerStatusChange_impl_ari_3_0_0.java new file mode 100644 index 00000000..09baac8e --- /dev/null +++ b/classes/ch/loway/oss/ari4java/generated/ari_3_0_0/models/PeerStatusChange_impl_ari_3_0_0.java @@ -0,0 +1,48 @@ +package ch.loway.oss.ari4java.generated.ari_3_0_0.models; + +// ---------------------------------------------------- +// THIS CLASS WAS GENERATED AUTOMATICALLY +// PLEASE DO NOT EDIT +// Generated on: Tue Dec 19 09:55:49 CET 2017 +// ---------------------------------------------------- + +import ch.loway.oss.ari4java.generated.*; +import com.fasterxml.jackson.databind.annotation.JsonDeserialize; +import java.util.Date; +import java.util.List; +import java.util.Map; + +/********************************************************** + * The state of a peer associated with an endpoint has changed. + * + * Defined in file: events.json + * Generated by: Model + *********************************************************/ + +public class PeerStatusChange_impl_ari_3_0_0 extends Event_impl_ari_3_0_0 implements PeerStatusChange, java.io.Serializable { +private static final long serialVersionUID = 1L; + /** */ + private Endpoint endpoint; + public Endpoint getEndpoint() { + return endpoint; + } + + @JsonDeserialize( as=Endpoint_impl_ari_3_0_0.class ) + public void setEndpoint(Endpoint val ) { + endpoint = val; + } + + /** */ + private Peer peer; + public Peer getPeer() { + return peer; + } + + @JsonDeserialize( as=Peer_impl_ari_3_0_0.class ) + public void setPeer(Peer val ) { + peer = val; + } + +/** No missing signatures from interface */ +} + diff --git a/classes/ch/loway/oss/ari4java/generated/ari_3_0_0/models/Peer_impl_ari_3_0_0.java b/classes/ch/loway/oss/ari4java/generated/ari_3_0_0/models/Peer_impl_ari_3_0_0.java new file mode 100644 index 00000000..1274f13e --- /dev/null +++ b/classes/ch/loway/oss/ari4java/generated/ari_3_0_0/models/Peer_impl_ari_3_0_0.java @@ -0,0 +1,81 @@ +package ch.loway.oss.ari4java.generated.ari_3_0_0.models; + +// ---------------------------------------------------- +// THIS CLASS WAS GENERATED AUTOMATICALLY +// PLEASE DO NOT EDIT +// Generated on: Tue Dec 19 09:55:49 CET 2017 +// ---------------------------------------------------- + +import ch.loway.oss.ari4java.generated.*; +import com.fasterxml.jackson.databind.annotation.JsonDeserialize; +import java.util.Date; +import java.util.List; +import java.util.Map; + +/********************************************************** + * Detailed information about a remote peer that communicates with Asterisk. + * + * Defined in file: events.json + * Generated by: Model + *********************************************************/ + +public class Peer_impl_ari_3_0_0 implements Peer, java.io.Serializable { +private static final long serialVersionUID = 1L; + /** The IP address of the peer. */ + private String address; + public String getAddress() { + return address; + } + + @JsonDeserialize( as=String.class ) + public void setAddress(String val ) { + address = val; + } + + /** An optional reason associated with the change in peer_status. */ + private String cause; + public String getCause() { + return cause; + } + + @JsonDeserialize( as=String.class ) + public void setCause(String val ) { + cause = val; + } + + /** The current state of the peer. Note that the values of the status are dependent on the underlying peer technology. */ + private String peer_status; + public String getPeer_status() { + return peer_status; + } + + @JsonDeserialize( as=String.class ) + public void setPeer_status(String val ) { + peer_status = val; + } + + /** The port of the peer. */ + private String port; + public String getPort() { + return port; + } + + @JsonDeserialize( as=String.class ) + public void setPort(String val ) { + port = val; + } + + /** The last known time the peer was contacted. */ + private String time; + public String getTime() { + return time; + } + + @JsonDeserialize( as=String.class ) + public void setTime(String val ) { + time = val; + } + +/** No missing signatures from interface */ +} + diff --git a/classes/ch/loway/oss/ari4java/generated/ari_3_0_0/models/PlaybackContinuing_impl_ari_3_0_0.java b/classes/ch/loway/oss/ari4java/generated/ari_3_0_0/models/PlaybackContinuing_impl_ari_3_0_0.java new file mode 100644 index 00000000..f40a3a97 --- /dev/null +++ b/classes/ch/loway/oss/ari4java/generated/ari_3_0_0/models/PlaybackContinuing_impl_ari_3_0_0.java @@ -0,0 +1,37 @@ +package ch.loway.oss.ari4java.generated.ari_3_0_0.models; + +// ---------------------------------------------------- +// THIS CLASS WAS GENERATED AUTOMATICALLY +// PLEASE DO NOT EDIT +// Generated on: Tue Dec 19 09:55:49 CET 2017 +// ---------------------------------------------------- + +import ch.loway.oss.ari4java.generated.*; +import com.fasterxml.jackson.databind.annotation.JsonDeserialize; +import java.util.Date; +import java.util.List; +import java.util.Map; + +/********************************************************** + * Event showing the continuation of a media playback operation from one media URI to the next in the list. + * + * Defined in file: events.json + * Generated by: Model + *********************************************************/ + +public class PlaybackContinuing_impl_ari_3_0_0 extends Event_impl_ari_3_0_0 implements PlaybackContinuing, java.io.Serializable { +private static final long serialVersionUID = 1L; + /** Playback control object */ + private Playback playback; + public Playback getPlayback() { + return playback; + } + + @JsonDeserialize( as=Playback_impl_ari_3_0_0.class ) + public void setPlayback(Playback val ) { + playback = val; + } + +/** No missing signatures from interface */ +} + diff --git a/classes/ch/loway/oss/ari4java/generated/ari_3_0_0/models/PlaybackFinished_impl_ari_3_0_0.java b/classes/ch/loway/oss/ari4java/generated/ari_3_0_0/models/PlaybackFinished_impl_ari_3_0_0.java new file mode 100644 index 00000000..a42eef74 --- /dev/null +++ b/classes/ch/loway/oss/ari4java/generated/ari_3_0_0/models/PlaybackFinished_impl_ari_3_0_0.java @@ -0,0 +1,37 @@ +package ch.loway.oss.ari4java.generated.ari_3_0_0.models; + +// ---------------------------------------------------- +// THIS CLASS WAS GENERATED AUTOMATICALLY +// PLEASE DO NOT EDIT +// Generated on: Tue Dec 19 09:55:49 CET 2017 +// ---------------------------------------------------- + +import ch.loway.oss.ari4java.generated.*; +import com.fasterxml.jackson.databind.annotation.JsonDeserialize; +import java.util.Date; +import java.util.List; +import java.util.Map; + +/********************************************************** + * Event showing the completion of a media playback operation. + * + * Defined in file: events.json + * Generated by: Model + *********************************************************/ + +public class PlaybackFinished_impl_ari_3_0_0 extends Event_impl_ari_3_0_0 implements PlaybackFinished, java.io.Serializable { +private static final long serialVersionUID = 1L; + /** Playback control object */ + private Playback playback; + public Playback getPlayback() { + return playback; + } + + @JsonDeserialize( as=Playback_impl_ari_3_0_0.class ) + public void setPlayback(Playback val ) { + playback = val; + } + +/** No missing signatures from interface */ +} + diff --git a/classes/ch/loway/oss/ari4java/generated/ari_3_0_0/models/PlaybackStarted_impl_ari_3_0_0.java b/classes/ch/loway/oss/ari4java/generated/ari_3_0_0/models/PlaybackStarted_impl_ari_3_0_0.java new file mode 100644 index 00000000..86552fb1 --- /dev/null +++ b/classes/ch/loway/oss/ari4java/generated/ari_3_0_0/models/PlaybackStarted_impl_ari_3_0_0.java @@ -0,0 +1,37 @@ +package ch.loway.oss.ari4java.generated.ari_3_0_0.models; + +// ---------------------------------------------------- +// THIS CLASS WAS GENERATED AUTOMATICALLY +// PLEASE DO NOT EDIT +// Generated on: Tue Dec 19 09:55:49 CET 2017 +// ---------------------------------------------------- + +import ch.loway.oss.ari4java.generated.*; +import com.fasterxml.jackson.databind.annotation.JsonDeserialize; +import java.util.Date; +import java.util.List; +import java.util.Map; + +/********************************************************** + * Event showing the start of a media playback operation. + * + * Defined in file: events.json + * Generated by: Model + *********************************************************/ + +public class PlaybackStarted_impl_ari_3_0_0 extends Event_impl_ari_3_0_0 implements PlaybackStarted, java.io.Serializable { +private static final long serialVersionUID = 1L; + /** Playback control object */ + private Playback playback; + public Playback getPlayback() { + return playback; + } + + @JsonDeserialize( as=Playback_impl_ari_3_0_0.class ) + public void setPlayback(Playback val ) { + playback = val; + } + +/** No missing signatures from interface */ +} + diff --git a/classes/ch/loway/oss/ari4java/generated/ari_3_0_0/models/Playback_impl_ari_3_0_0.java b/classes/ch/loway/oss/ari4java/generated/ari_3_0_0/models/Playback_impl_ari_3_0_0.java new file mode 100644 index 00000000..7845396b --- /dev/null +++ b/classes/ch/loway/oss/ari4java/generated/ari_3_0_0/models/Playback_impl_ari_3_0_0.java @@ -0,0 +1,92 @@ +package ch.loway.oss.ari4java.generated.ari_3_0_0.models; + +// ---------------------------------------------------- +// THIS CLASS WAS GENERATED AUTOMATICALLY +// PLEASE DO NOT EDIT +// Generated on: Tue Dec 19 09:55:49 CET 2017 +// ---------------------------------------------------- + +import ch.loway.oss.ari4java.generated.*; +import com.fasterxml.jackson.databind.annotation.JsonDeserialize; +import java.util.Date; +import java.util.List; +import java.util.Map; + +/********************************************************** + * Object representing the playback of media to a channel + * + * Defined in file: playbacks.json + * Generated by: Model + *********************************************************/ + +public class Playback_impl_ari_3_0_0 implements Playback, java.io.Serializable { +private static final long serialVersionUID = 1L; + /** ID for this playback operation */ + private String id; + public String getId() { + return id; + } + + @JsonDeserialize( as=String.class ) + public void setId(String val ) { + id = val; + } + + /** For media types that support multiple languages, the language requested for playback. */ + private String language; + public String getLanguage() { + return language; + } + + @JsonDeserialize( as=String.class ) + public void setLanguage(String val ) { + language = val; + } + + /** The URI for the media currently being played back. */ + private String media_uri; + public String getMedia_uri() { + return media_uri; + } + + @JsonDeserialize( as=String.class ) + public void setMedia_uri(String val ) { + media_uri = val; + } + + /** If a list of URIs is being played, the next media URI to be played back. */ + private String next_media_uri; + public String getNext_media_uri() { + return next_media_uri; + } + + @JsonDeserialize( as=String.class ) + public void setNext_media_uri(String val ) { + next_media_uri = val; + } + + /** Current state of the playback operation. */ + private String state; + public String getState() { + return state; + } + + @JsonDeserialize( as=String.class ) + public void setState(String val ) { + state = val; + } + + /** URI for the channel or bridge to play the media on */ + private String target_uri; + public String getTarget_uri() { + return target_uri; + } + + @JsonDeserialize( as=String.class ) + public void setTarget_uri(String val ) { + target_uri = val; + } + +/** No missing signatures from interface */ +} + diff --git a/classes/ch/loway/oss/ari4java/generated/ari_3_0_0/models/RecordingFailed_impl_ari_3_0_0.java b/classes/ch/loway/oss/ari4java/generated/ari_3_0_0/models/RecordingFailed_impl_ari_3_0_0.java new file mode 100644 index 00000000..535096ea --- /dev/null +++ b/classes/ch/loway/oss/ari4java/generated/ari_3_0_0/models/RecordingFailed_impl_ari_3_0_0.java @@ -0,0 +1,37 @@ +package ch.loway.oss.ari4java.generated.ari_3_0_0.models; + +// ---------------------------------------------------- +// THIS CLASS WAS GENERATED AUTOMATICALLY +// PLEASE DO NOT EDIT +// Generated on: Tue Dec 19 09:55:49 CET 2017 +// ---------------------------------------------------- + +import ch.loway.oss.ari4java.generated.*; +import com.fasterxml.jackson.databind.annotation.JsonDeserialize; +import java.util.Date; +import java.util.List; +import java.util.Map; + +/********************************************************** + * Event showing failure of a recording operation. + * + * Defined in file: events.json + * Generated by: Model + *********************************************************/ + +public class RecordingFailed_impl_ari_3_0_0 extends Event_impl_ari_3_0_0 implements RecordingFailed, java.io.Serializable { +private static final long serialVersionUID = 1L; + /** Recording control object */ + private LiveRecording recording; + public LiveRecording getRecording() { + return recording; + } + + @JsonDeserialize( as=LiveRecording_impl_ari_3_0_0.class ) + public void setRecording(LiveRecording val ) { + recording = val; + } + +/** No missing signatures from interface */ +} + diff --git a/classes/ch/loway/oss/ari4java/generated/ari_3_0_0/models/RecordingFinished_impl_ari_3_0_0.java b/classes/ch/loway/oss/ari4java/generated/ari_3_0_0/models/RecordingFinished_impl_ari_3_0_0.java new file mode 100644 index 00000000..6d0d259a --- /dev/null +++ b/classes/ch/loway/oss/ari4java/generated/ari_3_0_0/models/RecordingFinished_impl_ari_3_0_0.java @@ -0,0 +1,37 @@ +package ch.loway.oss.ari4java.generated.ari_3_0_0.models; + +// ---------------------------------------------------- +// THIS CLASS WAS GENERATED AUTOMATICALLY +// PLEASE DO NOT EDIT +// Generated on: Tue Dec 19 09:55:49 CET 2017 +// ---------------------------------------------------- + +import ch.loway.oss.ari4java.generated.*; +import com.fasterxml.jackson.databind.annotation.JsonDeserialize; +import java.util.Date; +import java.util.List; +import java.util.Map; + +/********************************************************** + * Event showing the completion of a recording operation. + * + * Defined in file: events.json + * Generated by: Model + *********************************************************/ + +public class RecordingFinished_impl_ari_3_0_0 extends Event_impl_ari_3_0_0 implements RecordingFinished, java.io.Serializable { +private static final long serialVersionUID = 1L; + /** Recording control object */ + private LiveRecording recording; + public LiveRecording getRecording() { + return recording; + } + + @JsonDeserialize( as=LiveRecording_impl_ari_3_0_0.class ) + public void setRecording(LiveRecording val ) { + recording = val; + } + +/** No missing signatures from interface */ +} + diff --git a/classes/ch/loway/oss/ari4java/generated/ari_3_0_0/models/RecordingStarted_impl_ari_3_0_0.java b/classes/ch/loway/oss/ari4java/generated/ari_3_0_0/models/RecordingStarted_impl_ari_3_0_0.java new file mode 100644 index 00000000..930c4a73 --- /dev/null +++ b/classes/ch/loway/oss/ari4java/generated/ari_3_0_0/models/RecordingStarted_impl_ari_3_0_0.java @@ -0,0 +1,37 @@ +package ch.loway.oss.ari4java.generated.ari_3_0_0.models; + +// ---------------------------------------------------- +// THIS CLASS WAS GENERATED AUTOMATICALLY +// PLEASE DO NOT EDIT +// Generated on: Tue Dec 19 09:55:49 CET 2017 +// ---------------------------------------------------- + +import ch.loway.oss.ari4java.generated.*; +import com.fasterxml.jackson.databind.annotation.JsonDeserialize; +import java.util.Date; +import java.util.List; +import java.util.Map; + +/********************************************************** + * Event showing the start of a recording operation. + * + * Defined in file: events.json + * Generated by: Model + *********************************************************/ + +public class RecordingStarted_impl_ari_3_0_0 extends Event_impl_ari_3_0_0 implements RecordingStarted, java.io.Serializable { +private static final long serialVersionUID = 1L; + /** Recording control object */ + private LiveRecording recording; + public LiveRecording getRecording() { + return recording; + } + + @JsonDeserialize( as=LiveRecording_impl_ari_3_0_0.class ) + public void setRecording(LiveRecording val ) { + recording = val; + } + +/** No missing signatures from interface */ +} + diff --git a/classes/ch/loway/oss/ari4java/generated/ari_3_0_0/models/SetId_impl_ari_3_0_0.java b/classes/ch/loway/oss/ari4java/generated/ari_3_0_0/models/SetId_impl_ari_3_0_0.java new file mode 100644 index 00000000..c56d5bcd --- /dev/null +++ b/classes/ch/loway/oss/ari4java/generated/ari_3_0_0/models/SetId_impl_ari_3_0_0.java @@ -0,0 +1,48 @@ +package ch.loway.oss.ari4java.generated.ari_3_0_0.models; + +// ---------------------------------------------------- +// THIS CLASS WAS GENERATED AUTOMATICALLY +// PLEASE DO NOT EDIT +// Generated on: Tue Dec 19 09:55:49 CET 2017 +// ---------------------------------------------------- + +import ch.loway.oss.ari4java.generated.*; +import com.fasterxml.jackson.databind.annotation.JsonDeserialize; +import java.util.Date; +import java.util.List; +import java.util.Map; + +/********************************************************** + * Effective user/group id + * + * Defined in file: asterisk.json + * Generated by: Model + *********************************************************/ + +public class SetId_impl_ari_3_0_0 implements SetId, java.io.Serializable { +private static final long serialVersionUID = 1L; + /** Effective group id. */ + private String group; + public String getGroup() { + return group; + } + + @JsonDeserialize( as=String.class ) + public void setGroup(String val ) { + group = val; + } + + /** Effective user id. */ + private String user; + public String getUser() { + return user; + } + + @JsonDeserialize( as=String.class ) + public void setUser(String val ) { + user = val; + } + +/** No missing signatures from interface */ +} + diff --git a/classes/ch/loway/oss/ari4java/generated/ari_3_0_0/models/Sound_impl_ari_3_0_0.java b/classes/ch/loway/oss/ari4java/generated/ari_3_0_0/models/Sound_impl_ari_3_0_0.java new file mode 100644 index 00000000..6ecb64c9 --- /dev/null +++ b/classes/ch/loway/oss/ari4java/generated/ari_3_0_0/models/Sound_impl_ari_3_0_0.java @@ -0,0 +1,59 @@ +package ch.loway.oss.ari4java.generated.ari_3_0_0.models; + +// ---------------------------------------------------- +// THIS CLASS WAS GENERATED AUTOMATICALLY +// PLEASE DO NOT EDIT +// Generated on: Tue Dec 19 09:55:49 CET 2017 +// ---------------------------------------------------- + +import ch.loway.oss.ari4java.generated.*; +import com.fasterxml.jackson.databind.annotation.JsonDeserialize; +import java.util.Date; +import java.util.List; +import java.util.Map; + +/********************************************************** + * A media file that may be played back. + * + * Defined in file: sounds.json + * Generated by: Model + *********************************************************/ + +public class Sound_impl_ari_3_0_0 implements Sound, java.io.Serializable { +private static final long serialVersionUID = 1L; + /** The formats and languages in which this sound is available. */ + private List formats; + public List getFormats() { + return formats; + } + + @JsonDeserialize( contentAs=FormatLangPair_impl_ari_3_0_0.class ) + public void setFormats(List val ) { + formats = val; + } + + /** Sound's identifier. */ + private String id; + public String getId() { + return id; + } + + @JsonDeserialize( as=String.class ) + public void setId(String val ) { + id = val; + } + + /** Text description of the sound, usually the words spoken. */ + private String text; + public String getText() { + return text; + } + + @JsonDeserialize( as=String.class ) + public void setText(String val ) { + text = val; + } + +/** No missing signatures from interface */ +} + diff --git a/classes/ch/loway/oss/ari4java/generated/ari_3_0_0/models/StasisEnd_impl_ari_3_0_0.java b/classes/ch/loway/oss/ari4java/generated/ari_3_0_0/models/StasisEnd_impl_ari_3_0_0.java new file mode 100644 index 00000000..081e3b33 --- /dev/null +++ b/classes/ch/loway/oss/ari4java/generated/ari_3_0_0/models/StasisEnd_impl_ari_3_0_0.java @@ -0,0 +1,37 @@ +package ch.loway.oss.ari4java.generated.ari_3_0_0.models; + +// ---------------------------------------------------- +// THIS CLASS WAS GENERATED AUTOMATICALLY +// PLEASE DO NOT EDIT +// Generated on: Tue Dec 19 09:55:49 CET 2017 +// ---------------------------------------------------- + +import ch.loway.oss.ari4java.generated.*; +import com.fasterxml.jackson.databind.annotation.JsonDeserialize; +import java.util.Date; +import java.util.List; +import java.util.Map; + +/********************************************************** + * Notification that a channel has left a Stasis application. + * + * Defined in file: events.json + * Generated by: Model + *********************************************************/ + +public class StasisEnd_impl_ari_3_0_0 extends Event_impl_ari_3_0_0 implements StasisEnd, java.io.Serializable { +private static final long serialVersionUID = 1L; + /** */ + private Channel channel; + public Channel getChannel() { + return channel; + } + + @JsonDeserialize( as=Channel_impl_ari_3_0_0.class ) + public void setChannel(Channel val ) { + channel = val; + } + +/** No missing signatures from interface */ +} + diff --git a/classes/ch/loway/oss/ari4java/generated/ari_3_0_0/models/StasisStart_impl_ari_3_0_0.java b/classes/ch/loway/oss/ari4java/generated/ari_3_0_0/models/StasisStart_impl_ari_3_0_0.java new file mode 100644 index 00000000..5ba2ed2b --- /dev/null +++ b/classes/ch/loway/oss/ari4java/generated/ari_3_0_0/models/StasisStart_impl_ari_3_0_0.java @@ -0,0 +1,59 @@ +package ch.loway.oss.ari4java.generated.ari_3_0_0.models; + +// ---------------------------------------------------- +// THIS CLASS WAS GENERATED AUTOMATICALLY +// PLEASE DO NOT EDIT +// Generated on: Tue Dec 19 09:55:49 CET 2017 +// ---------------------------------------------------- + +import ch.loway.oss.ari4java.generated.*; +import com.fasterxml.jackson.databind.annotation.JsonDeserialize; +import java.util.Date; +import java.util.List; +import java.util.Map; + +/********************************************************** + * Notification that a channel has entered a Stasis application. + * + * Defined in file: events.json + * Generated by: Model + *********************************************************/ + +public class StasisStart_impl_ari_3_0_0 extends Event_impl_ari_3_0_0 implements StasisStart, java.io.Serializable { +private static final long serialVersionUID = 1L; + /** Arguments to the application */ + private List args; + public List getArgs() { + return args; + } + + @JsonDeserialize( contentAs=String.class ) + public void setArgs(List val ) { + args = val; + } + + /** */ + private Channel channel; + public Channel getChannel() { + return channel; + } + + @JsonDeserialize( as=Channel_impl_ari_3_0_0.class ) + public void setChannel(Channel val ) { + channel = val; + } + + /** */ + private Channel replace_channel; + public Channel getReplace_channel() { + return replace_channel; + } + + @JsonDeserialize( as=Channel_impl_ari_3_0_0.class ) + public void setReplace_channel(Channel val ) { + replace_channel = val; + } + +/** No missing signatures from interface */ +} + diff --git a/classes/ch/loway/oss/ari4java/generated/ari_3_0_0/models/StatusInfo_impl_ari_3_0_0.java b/classes/ch/loway/oss/ari4java/generated/ari_3_0_0/models/StatusInfo_impl_ari_3_0_0.java new file mode 100644 index 00000000..1f8ea65d --- /dev/null +++ b/classes/ch/loway/oss/ari4java/generated/ari_3_0_0/models/StatusInfo_impl_ari_3_0_0.java @@ -0,0 +1,48 @@ +package ch.loway.oss.ari4java.generated.ari_3_0_0.models; + +// ---------------------------------------------------- +// THIS CLASS WAS GENERATED AUTOMATICALLY +// PLEASE DO NOT EDIT +// Generated on: Tue Dec 19 09:55:49 CET 2017 +// ---------------------------------------------------- + +import ch.loway.oss.ari4java.generated.*; +import com.fasterxml.jackson.databind.annotation.JsonDeserialize; +import java.util.Date; +import java.util.List; +import java.util.Map; + +/********************************************************** + * Info about Asterisk status + * + * Defined in file: asterisk.json + * Generated by: Model + *********************************************************/ + +public class StatusInfo_impl_ari_3_0_0 implements StatusInfo, java.io.Serializable { +private static final long serialVersionUID = 1L; + /** Time when Asterisk was last reloaded. */ + private Date last_reload_time; + public Date getLast_reload_time() { + return last_reload_time; + } + + @JsonDeserialize( as=Date.class ) + public void setLast_reload_time(Date val ) { + last_reload_time = val; + } + + /** Time when Asterisk was started. */ + private Date startup_time; + public Date getStartup_time() { + return startup_time; + } + + @JsonDeserialize( as=Date.class ) + public void setStartup_time(Date val ) { + startup_time = val; + } + +/** No missing signatures from interface */ +} + diff --git a/classes/ch/loway/oss/ari4java/generated/ari_3_0_0/models/StoredRecording_impl_ari_3_0_0.java b/classes/ch/loway/oss/ari4java/generated/ari_3_0_0/models/StoredRecording_impl_ari_3_0_0.java new file mode 100644 index 00000000..acac8036 --- /dev/null +++ b/classes/ch/loway/oss/ari4java/generated/ari_3_0_0/models/StoredRecording_impl_ari_3_0_0.java @@ -0,0 +1,48 @@ +package ch.loway.oss.ari4java.generated.ari_3_0_0.models; + +// ---------------------------------------------------- +// THIS CLASS WAS GENERATED AUTOMATICALLY +// PLEASE DO NOT EDIT +// Generated on: Tue Dec 19 09:55:49 CET 2017 +// ---------------------------------------------------- + +import ch.loway.oss.ari4java.generated.*; +import com.fasterxml.jackson.databind.annotation.JsonDeserialize; +import java.util.Date; +import java.util.List; +import java.util.Map; + +/********************************************************** + * A past recording that may be played back. + * + * Defined in file: recordings.json + * Generated by: Model + *********************************************************/ + +public class StoredRecording_impl_ari_3_0_0 implements StoredRecording, java.io.Serializable { +private static final long serialVersionUID = 1L; + /** */ + private String format; + public String getFormat() { + return format; + } + + @JsonDeserialize( as=String.class ) + public void setFormat(String val ) { + format = val; + } + + /** */ + private String name; + public String getName() { + return name; + } + + @JsonDeserialize( as=String.class ) + public void setName(String val ) { + name = val; + } + +/** No missing signatures from interface */ +} + diff --git a/classes/ch/loway/oss/ari4java/generated/ari_3_0_0/models/SystemInfo_impl_ari_3_0_0.java b/classes/ch/loway/oss/ari4java/generated/ari_3_0_0/models/SystemInfo_impl_ari_3_0_0.java new file mode 100644 index 00000000..8c97aea0 --- /dev/null +++ b/classes/ch/loway/oss/ari4java/generated/ari_3_0_0/models/SystemInfo_impl_ari_3_0_0.java @@ -0,0 +1,48 @@ +package ch.loway.oss.ari4java.generated.ari_3_0_0.models; + +// ---------------------------------------------------- +// THIS CLASS WAS GENERATED AUTOMATICALLY +// PLEASE DO NOT EDIT +// Generated on: Tue Dec 19 09:55:49 CET 2017 +// ---------------------------------------------------- + +import ch.loway.oss.ari4java.generated.*; +import com.fasterxml.jackson.databind.annotation.JsonDeserialize; +import java.util.Date; +import java.util.List; +import java.util.Map; + +/********************************************************** + * Info about Asterisk + * + * Defined in file: asterisk.json + * Generated by: Model + *********************************************************/ + +public class SystemInfo_impl_ari_3_0_0 implements SystemInfo, java.io.Serializable { +private static final long serialVersionUID = 1L; + /** */ + private String entity_id; + public String getEntity_id() { + return entity_id; + } + + @JsonDeserialize( as=String.class ) + public void setEntity_id(String val ) { + entity_id = val; + } + + /** Asterisk version. */ + private String version; + public String getVersion() { + return version; + } + + @JsonDeserialize( as=String.class ) + public void setVersion(String val ) { + version = val; + } + +/** No missing signatures from interface */ +} + diff --git a/classes/ch/loway/oss/ari4java/generated/ari_3_0_0/models/TextMessageReceived_impl_ari_3_0_0.java b/classes/ch/loway/oss/ari4java/generated/ari_3_0_0/models/TextMessageReceived_impl_ari_3_0_0.java new file mode 100644 index 00000000..1f606582 --- /dev/null +++ b/classes/ch/loway/oss/ari4java/generated/ari_3_0_0/models/TextMessageReceived_impl_ari_3_0_0.java @@ -0,0 +1,48 @@ +package ch.loway.oss.ari4java.generated.ari_3_0_0.models; + +// ---------------------------------------------------- +// THIS CLASS WAS GENERATED AUTOMATICALLY +// PLEASE DO NOT EDIT +// Generated on: Tue Dec 19 09:55:49 CET 2017 +// ---------------------------------------------------- + +import ch.loway.oss.ari4java.generated.*; +import com.fasterxml.jackson.databind.annotation.JsonDeserialize; +import java.util.Date; +import java.util.List; +import java.util.Map; + +/********************************************************** + * A text message was received from an endpoint. + * + * Defined in file: events.json + * Generated by: Model + *********************************************************/ + +public class TextMessageReceived_impl_ari_3_0_0 extends Event_impl_ari_3_0_0 implements TextMessageReceived, java.io.Serializable { +private static final long serialVersionUID = 1L; + /** */ + private Endpoint endpoint; + public Endpoint getEndpoint() { + return endpoint; + } + + @JsonDeserialize( as=Endpoint_impl_ari_3_0_0.class ) + public void setEndpoint(Endpoint val ) { + endpoint = val; + } + + /** */ + private TextMessage message; + public TextMessage getMessage() { + return message; + } + + @JsonDeserialize( as=TextMessage_impl_ari_3_0_0.class ) + public void setMessage(TextMessage val ) { + message = val; + } + +/** No missing signatures from interface */ +} + diff --git a/classes/ch/loway/oss/ari4java/generated/ari_3_0_0/models/TextMessageVariable_impl_ari_3_0_0.java b/classes/ch/loway/oss/ari4java/generated/ari_3_0_0/models/TextMessageVariable_impl_ari_3_0_0.java new file mode 100644 index 00000000..51879983 --- /dev/null +++ b/classes/ch/loway/oss/ari4java/generated/ari_3_0_0/models/TextMessageVariable_impl_ari_3_0_0.java @@ -0,0 +1,48 @@ +package ch.loway.oss.ari4java.generated.ari_3_0_0.models; + +// ---------------------------------------------------- +// THIS CLASS WAS GENERATED AUTOMATICALLY +// PLEASE DO NOT EDIT +// Generated on: Tue Dec 19 09:55:49 CET 2017 +// ---------------------------------------------------- + +import ch.loway.oss.ari4java.generated.*; +import com.fasterxml.jackson.databind.annotation.JsonDeserialize; +import java.util.Date; +import java.util.List; +import java.util.Map; + +/********************************************************** + * A key/value pair variable in a text message. + * + * Defined in file: endpoints.json + * Generated by: Model + *********************************************************/ + +public class TextMessageVariable_impl_ari_3_0_0 implements TextMessageVariable, java.io.Serializable { +private static final long serialVersionUID = 1L; + /** A unique key identifying the variable. */ + private String key; + public String getKey() { + return key; + } + + @JsonDeserialize( as=String.class ) + public void setKey(String val ) { + key = val; + } + + /** The value of the variable. */ + private String value; + public String getValue() { + return value; + } + + @JsonDeserialize( as=String.class ) + public void setValue(String val ) { + value = val; + } + +/** No missing signatures from interface */ +} + diff --git a/classes/ch/loway/oss/ari4java/generated/ari_3_0_0/models/TextMessage_impl_ari_3_0_0.java b/classes/ch/loway/oss/ari4java/generated/ari_3_0_0/models/TextMessage_impl_ari_3_0_0.java new file mode 100644 index 00000000..5983ff28 --- /dev/null +++ b/classes/ch/loway/oss/ari4java/generated/ari_3_0_0/models/TextMessage_impl_ari_3_0_0.java @@ -0,0 +1,70 @@ +package ch.loway.oss.ari4java.generated.ari_3_0_0.models; + +// ---------------------------------------------------- +// THIS CLASS WAS GENERATED AUTOMATICALLY +// PLEASE DO NOT EDIT +// Generated on: Tue Dec 19 09:55:49 CET 2017 +// ---------------------------------------------------- + +import ch.loway.oss.ari4java.generated.*; +import com.fasterxml.jackson.databind.annotation.JsonDeserialize; +import java.util.Date; +import java.util.List; +import java.util.Map; + +/********************************************************** + * A text message. + * + * Defined in file: endpoints.json + * Generated by: Model + *********************************************************/ + +public class TextMessage_impl_ari_3_0_0 implements TextMessage, java.io.Serializable { +private static final long serialVersionUID = 1L; + /** The text of the message. */ + private String body; + public String getBody() { + return body; + } + + @JsonDeserialize( as=String.class ) + public void setBody(String val ) { + body = val; + } + + /** A technology specific URI specifying the source of the message. For sip and pjsip technologies, any SIP URI can be specified. For xmpp, the URI must correspond to the client connection being used to send the message. */ + private String from; + public String getFrom() { + return from; + } + + @JsonDeserialize( as=String.class ) + public void setFrom(String val ) { + from = val; + } + + /** A technology specific URI specifying the destination of the message. Valid technologies include sip, pjsip, and xmp. The destination of a message should be an endpoint. */ + private String to; + public String getTo() { + return to; + } + + @JsonDeserialize( as=String.class ) + public void setTo(String val ) { + to = val; + } + + /** Technology specific key/value pairs associated with the message. */ + private List variables; + public List getVariables() { + return variables; + } + + @JsonDeserialize( contentAs=TextMessageVariable_impl_ari_3_0_0.class ) + public void setVariables(List val ) { + variables = val; + } + +/** No missing signatures from interface */ +} + diff --git a/classes/ch/loway/oss/ari4java/generated/ari_3_0_0/models/Variable_impl_ari_3_0_0.java b/classes/ch/loway/oss/ari4java/generated/ari_3_0_0/models/Variable_impl_ari_3_0_0.java new file mode 100644 index 00000000..fdd8b790 --- /dev/null +++ b/classes/ch/loway/oss/ari4java/generated/ari_3_0_0/models/Variable_impl_ari_3_0_0.java @@ -0,0 +1,37 @@ +package ch.loway.oss.ari4java.generated.ari_3_0_0.models; + +// ---------------------------------------------------- +// THIS CLASS WAS GENERATED AUTOMATICALLY +// PLEASE DO NOT EDIT +// Generated on: Tue Dec 19 09:55:49 CET 2017 +// ---------------------------------------------------- + +import ch.loway.oss.ari4java.generated.*; +import com.fasterxml.jackson.databind.annotation.JsonDeserialize; +import java.util.Date; +import java.util.List; +import java.util.Map; + +/********************************************************** + * The value of a channel variable + * + * Defined in file: asterisk.json + * Generated by: Model + *********************************************************/ + +public class Variable_impl_ari_3_0_0 implements Variable, java.io.Serializable { +private static final long serialVersionUID = 1L; + /** The value of the variable requested */ + private String value; + public String getValue() { + return value; + } + + @JsonDeserialize( as=String.class ) + public void setValue(String val ) { + value = val; + } + +/** No missing signatures from interface */ +} + diff --git a/codegen/ch/loway/oss/ari4java/codegen/run.java b/codegen/ch/loway/oss/ari4java/codegen/run.java index 28a4f5a9..0ca07b14 100644 --- a/codegen/ch/loway/oss/ari4java/codegen/run.java +++ b/codegen/ch/loway/oss/ari4java/codegen/run.java @@ -14,7 +14,7 @@ public class run { //public static String SOURCES = "codegen-data/"; - public static String PROJECT = "/Users/lenz/varie/ari4java"; + public static String PROJECT = "/Users/lenz/Desktop/ari4java"; public static String SOURCES = PROJECT + "/codegen-data/"; @@ -38,6 +38,7 @@ public static void main( String [] argv ) throws IOException { loadAsteriskDefs( dm, "ari_1_9_0" ); loadAsteriskDefs( dm, "ari_1_10_0" ); loadAsteriskDefs( dm, "ari_2_0_0" ); + loadAsteriskDefs( dm, "ari_3_0_0" ); dm.generateAllClasses(); From fcd7c3c4bfa796704f2c5b25c830a2ab0aa736b1 Mon Sep 17 00:00:00 2001 From: lenz Date: Tue, 19 Dec 2017 12:22:31 +0100 Subject: [PATCH 017/220] Wrong Asterisk version in comments for ARI 3.0.0 --- classes/ch/loway/oss/ari4java/AriVersion.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/classes/ch/loway/oss/ari4java/AriVersion.java b/classes/ch/loway/oss/ari4java/AriVersion.java index 1e990337..4dbb3aaf 100644 --- a/classes/ch/loway/oss/ari4java/AriVersion.java +++ b/classes/ch/loway/oss/ari4java/AriVersion.java @@ -32,7 +32,7 @@ public enum AriVersion { ARI_1_9_0 ( "1.9.0", new AriBuilder_impl_ari_1_9_0() ), /** Asterisk 13.7.0 */ ARI_1_10_0 ( "1.10.0", new AriBuilder_impl_ari_1_10_0() ), /** Asterisk 14.0.0 */ ARI_2_0_0 ( "2.0.0", new AriBuilder_impl_ari_2_0_0() ), /** Asterisk 14.2.1 */ - ARI_3_0_0 ( "3.0.0", new AriBuilder_impl_ari_3_0_0() ), /** Asterisk 14.2.1 */ + ARI_3_0_0 ( "3.0.0", new AriBuilder_impl_ari_3_0_0() ), /** Asterisk 15.1.4 */ IM_FEELING_LUCKY ( "", null ); From 6bd217f5bcaea4f7f1ede86ba2a24323755b4faf Mon Sep 17 00:00:00 2001 From: Stefan Repke Date: Sat, 13 Jan 2018 13:58:46 +0100 Subject: [PATCH 018/220] Fixed NullpointerException when using recent Netty versions (eg. "4.1.12.Final") --- .../ari4java/tools/http/NettyHttpClient.java | 18 +++++++++++++----- 1 file changed, 13 insertions(+), 5 deletions(-) diff --git a/classes/ch/loway/oss/ari4java/tools/http/NettyHttpClient.java b/classes/ch/loway/oss/ari4java/tools/http/NettyHttpClient.java index b9b0675b..b9e6aa2b 100644 --- a/classes/ch/loway/oss/ari4java/tools/http/NettyHttpClient.java +++ b/classes/ch/loway/oss/ari4java/tools/http/NettyHttpClient.java @@ -116,9 +116,13 @@ public void operationComplete(Future future) throws Exception { }, 250L, TimeUnit.MILLISECONDS); } - private String buildURL(String path, List parametersQuery) throws UnsupportedEncodingException { + private String buildURL(String path, List parametersQuery, boolean withAddress) throws UnsupportedEncodingException { StringBuilder uriBuilder = new StringBuilder(); - uriBuilder.append(baseUri.getPath()); + if (withAddress) { + uriBuilder.append(baseUri); + } else { + uriBuilder.append(baseUri.getPath()); + } uriBuilder.append("ari"); uriBuilder.append(path); uriBuilder.append("?api_key="); @@ -140,9 +144,13 @@ private String buildURL(String path, List parametersQuery) throws Uns // Factory for WS handshakes private WebSocketClientHandshaker getWsHandshake(String path, List parametersQuery) throws UnsupportedEncodingException { - String url = buildURL(path, parametersQuery); + String url = buildURL(path, parametersQuery, true); try { - URI uri = new URI(url.replaceFirst("http", "ws")); + if (url.regionMatches(true, 0, "http", 0, 4)) { + // http(s):// -> ws(s):// + url = "ws" + url.substring(4); + } + URI uri = new URI(url); return WebSocketClientHandshakerFactory.newHandshaker( uri, WebSocketVersion.V13, null, false, null); } catch (URISyntaxException e) { @@ -153,7 +161,7 @@ private WebSocketClientHandshaker getWsHandshake(String path, List pa // Build the HTTP request based on the given parameters private HttpRequest buildRequest(String path, String method, List parametersQuery, List parametersForm, List parametersBody) throws UnsupportedEncodingException { - String url = buildURL(path, parametersQuery); + String url = buildURL(path, parametersQuery, false); FullHttpRequest request = new DefaultFullHttpRequest( HttpVersion.HTTP_1_1, HttpMethod.valueOf(method), url); //System.out.println(request.getUri()); From d4cf992660e0e15e89ea4a4fe9b11d268f7c4f91 Mon Sep 17 00:00:00 2001 From: Stefan Repke Date: Wed, 17 Jan 2018 21:13:48 +0100 Subject: [PATCH 019/220] websocket is only successful if http AND handshake were successful --- .../ari4java/tools/http/NettyHttpClient.java | 19 ++++++++++++++++--- .../tools/http/NettyWSClientHandler.java | 1 - 2 files changed, 16 insertions(+), 4 deletions(-) diff --git a/classes/ch/loway/oss/ari4java/tools/http/NettyHttpClient.java b/classes/ch/loway/oss/ari4java/tools/http/NettyHttpClient.java index b9e6aa2b..4066f239 100644 --- a/classes/ch/loway/oss/ari4java/tools/http/NettyHttpClient.java +++ b/classes/ch/loway/oss/ari4java/tools/http/NettyHttpClient.java @@ -310,9 +310,22 @@ public void initChannel(SocketChannel ch) throws Exception { @Override public void operationComplete(ChannelFuture future) throws Exception { if (future.isSuccess()) { - callback.onChReadyToWrite(); - // reset the reconnect counter on successful connect - reconnectCount = 0; + wsHandler.handshakeFuture().addListener(new ChannelFutureListener() { + @Override + public void operationComplete(ChannelFuture future) throws Exception { + if (future.isSuccess()) { + callback.onChReadyToWrite(); + // reset the reconnect counter on successful connect + reconnectCount = 0; + } else { + if (reconnectCount >= 10) { + callback.onFailure(future.cause()); + } else { + reconnectWs(); + } + } + } + }); } else { if (reconnectCount >= 10) { callback.onFailure(future.cause()); diff --git a/classes/ch/loway/oss/ari4java/tools/http/NettyWSClientHandler.java b/classes/ch/loway/oss/ari4java/tools/http/NettyWSClientHandler.java index 323a628d..14b0fc07 100644 --- a/classes/ch/loway/oss/ari4java/tools/http/NettyWSClientHandler.java +++ b/classes/ch/loway/oss/ari4java/tools/http/NettyWSClientHandler.java @@ -69,7 +69,6 @@ protected void channelRead0(ChannelHandlerContext ctx, Object msg) throws Except if (!handshaker.isHandshakeComplete()) { handshaker.finishHandshake(ch, (FullHttpResponse) msg); handshakeFuture.setSuccess(); - wsCallback.onChReadyToWrite(); return; } From 69d4d8da6c6c7f7b670db5e9f7ba8376952f3e2d Mon Sep 17 00:00:00 2001 From: Stefan Repke Date: Wed, 17 Jan 2018 21:23:00 +0100 Subject: [PATCH 020/220] Check reconnectCount for each call of reconnectWs() --- .../ari4java/tools/WsClientAutoReconnect.java | 2 +- .../ari4java/tools/http/NettyHttpClient.java | 20 +++++++++---------- .../tools/http/NettyWSClientHandler.java | 4 ++-- 3 files changed, 12 insertions(+), 14 deletions(-) diff --git a/classes/ch/loway/oss/ari4java/tools/WsClientAutoReconnect.java b/classes/ch/loway/oss/ari4java/tools/WsClientAutoReconnect.java index d6a00781..a9bc1858 100644 --- a/classes/ch/loway/oss/ari4java/tools/WsClientAutoReconnect.java +++ b/classes/ch/loway/oss/ari4java/tools/WsClientAutoReconnect.java @@ -7,5 +7,5 @@ * */ public interface WsClientAutoReconnect { - void reconnectWs(); + void reconnectWs(Throwable cause); } \ No newline at end of file diff --git a/classes/ch/loway/oss/ari4java/tools/http/NettyHttpClient.java b/classes/ch/loway/oss/ari4java/tools/http/NettyHttpClient.java index 4066f239..3d74a673 100644 --- a/classes/ch/loway/oss/ari4java/tools/http/NettyHttpClient.java +++ b/classes/ch/loway/oss/ari4java/tools/http/NettyHttpClient.java @@ -318,20 +318,12 @@ public void operationComplete(ChannelFuture future) throws Exception { // reset the reconnect counter on successful connect reconnectCount = 0; } else { - if (reconnectCount >= 10) { - callback.onFailure(future.cause()); - } else { - reconnectWs(); - } + reconnectWs(future.cause()); } } }); } else { - if (reconnectCount >= 10) { - callback.onFailure(future.cause()); - } else { - reconnectWs(); - } + reconnectWs(future.cause()); } } }; @@ -404,12 +396,18 @@ private boolean httpResponseOkay(HttpResponseStatus status) { @Override - public void reconnectWs() { + public void reconnectWs(Throwable cause) { // cancel the ping timer if (wsPingTimer != null) { wsPingTimer.cancel(false); wsPingTimer = null; } + + if (reconnectCount >= 10) { + wsCallback.onFailure(cause); + return; + } + // if not shutdown reconnect, note the check not on the shutDownGroup if (!group.isShuttingDown()) { // schedule reconnect after a 2,5,10 seconds diff --git a/classes/ch/loway/oss/ari4java/tools/http/NettyWSClientHandler.java b/classes/ch/loway/oss/ari4java/tools/http/NettyWSClientHandler.java index 14b0fc07..52f7fe06 100644 --- a/classes/ch/loway/oss/ari4java/tools/http/NettyWSClientHandler.java +++ b/classes/ch/loway/oss/ari4java/tools/http/NettyWSClientHandler.java @@ -55,7 +55,7 @@ public void channelActive(ChannelHandlerContext ctx) throws Exception { public void channelInactive(ChannelHandlerContext ctx) throws Exception { if (!shuttingDown) { if (this.wsClient != null) { - wsClient.reconnectWs(); + wsClient.reconnectWs(null); } else { wsCallback.onDisconnect(); } @@ -91,7 +91,7 @@ protected void channelRead0(ChannelHandlerContext ctx, Object msg) throws Except ch.close(); if (!shuttingDown) { if (this.wsClient != null) { - wsClient.reconnectWs(); + wsClient.reconnectWs(null); } else { wsCallback.onDisconnect(); } From 09b95637241cf09ca1fa780a4da52580cb4fb8ca Mon Sep 17 00:00:00 2001 From: Stefan Repke Date: Wed, 17 Jan 2018 21:26:27 +0100 Subject: [PATCH 021/220] Fixed: compute reconnect timeout before incrementing the counter --- classes/ch/loway/oss/ari4java/tools/http/NettyHttpClient.java | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/classes/ch/loway/oss/ari4java/tools/http/NettyHttpClient.java b/classes/ch/loway/oss/ari4java/tools/http/NettyHttpClient.java index 3d74a673..7eba4ce6 100644 --- a/classes/ch/loway/oss/ari4java/tools/http/NettyHttpClient.java +++ b/classes/ch/loway/oss/ari4java/tools/http/NettyHttpClient.java @@ -412,6 +412,7 @@ public void reconnectWs(Throwable cause) { if (!group.isShuttingDown()) { // schedule reconnect after a 2,5,10 seconds long[] timeouts = {2L, 5L, 10L}; + long timeout = reconnectCount >= timeouts.length ? timeouts[timeouts.length - 1] : timeouts[reconnectCount]; reconnectCount++; shutDownGroup.schedule(new Runnable() { @Override @@ -426,7 +427,7 @@ public void run() { wsCallback.onFailure(e); } } - }, reconnectCount >= timeouts.length ? timeouts[timeouts.length - 1] : timeouts[reconnectCount], TimeUnit.SECONDS); + }, timeout, TimeUnit.SECONDS); } } } From 9ba56cca4abf3eae1215ff69abece7677f51e0a5 Mon Sep 17 00:00:00 2001 From: Stefan Repke Date: Thu, 15 Feb 2018 20:48:41 +0100 Subject: [PATCH 022/220] Allow multiple instances of ActionEvents (fixes ConcurrentModificationException) --- classes/ch/loway/oss/ari4java/ARI.java | 12 +++++++----- .../ch/loway/oss/ari4java/tools/BaseAriAction.java | 7 +++++++ 2 files changed, 14 insertions(+), 5 deletions(-) diff --git a/classes/ch/loway/oss/ari4java/ARI.java b/classes/ch/loway/oss/ari4java/ARI.java index 69fa0388..9679cf56 100644 --- a/classes/ch/loway/oss/ari4java/ARI.java +++ b/classes/ch/loway/oss/ari4java/ARI.java @@ -31,6 +31,7 @@ import java.net.MalformedURLException; import java.net.URISyntaxException; import java.net.URLConnection; +import java.util.concurrent.CopyOnWriteArrayList; import java.util.regex.Matcher; import java.util.regex.Pattern; @@ -51,6 +52,7 @@ public class ARI { private WsClient wsClient; private ActionEvents liveActionEvent = null; private AriSubscriber subscriptions = new AriSubscriber(); + private final CopyOnWriteArrayList liveActionList = new CopyOnWriteArrayList<>(); public void setHttpClient(HttpClient httpClient) { this.httpClient = httpClient; @@ -106,6 +108,7 @@ public T getActionImpl(Class klazz) throws ARIException { BaseAriAction action = (BaseAriAction) buildConcreteImplementation(klazz); action.setHttpClient(this.httpClient); action.setWsClient(this.wsClient); + action.setLiveActionList(this.liveActionList); return (T) action; } @@ -366,13 +369,12 @@ private static String findVersionString(String response) throws ARIException { public void cleanup() throws ARIException { - if ( liveActionEvent != null ) { + for (BaseAriAction liveAction : liveActionList) { try { - closeAction(liveActionEvent); + closeAction(liveAction); } catch (ARIException e) { // ignore on cleanup... } - liveActionEvent = null; } destroy( wsClient ); @@ -500,8 +502,7 @@ public ActionEndpoints endpoints() { * @return an Events object. */ public ActionEvents events() { - if (liveActionEvent == null) - liveActionEvent = (ActionEvents) setupAction(version.builder().actionEvents()); + liveActionEvent = (ActionEvents) setupAction(version.builder().actionEvents()); return liveActionEvent; } @@ -553,6 +554,7 @@ public Object setupAction(Object a) throws IllegalArgumentException { BaseAriAction action = (BaseAriAction) a; action.setHttpClient(this.httpClient); action.setWsClient(this.wsClient); + action.setLiveActionList(this.liveActionList); } else { throw new IllegalArgumentException("Object does not seem to be an Action implementation " + a.toString()); } diff --git a/classes/ch/loway/oss/ari4java/tools/BaseAriAction.java b/classes/ch/loway/oss/ari4java/tools/BaseAriAction.java index 4b9cdfbc..e2d7524e 100644 --- a/classes/ch/loway/oss/ari4java/tools/BaseAriAction.java +++ b/classes/ch/loway/oss/ari4java/tools/BaseAriAction.java @@ -36,6 +36,7 @@ public class BaseAriAction { protected String method; protected boolean wsUpgrade = false; protected WsClientConnection wsConnection; + private List liveActionList; /** * Reset contents in preparation for new RPC @@ -91,6 +92,7 @@ private synchronized void httpActionAsync(AriAsyncHandler asyncHandler) { } try { wsConnection = wsClient.connect(asyncHandler, this.url, this.lParamQuery); + liveActionList.add(this); } catch (RestException e) { asyncHandler.getCallback().onFailure(e); } @@ -203,6 +205,7 @@ public static Message deserializeEvent(String json, Class klazz) throws RestE */ public synchronized void disconnectWs() throws RestException { if (wsConnection != null) { + liveActionList.remove(this); wsConnection.disconnect(); } wsConnection = null; @@ -215,6 +218,10 @@ public synchronized void setHttpClient(HttpClient httpClient) { public synchronized void setWsClient(WsClient wsClient) { this.wsClient = wsClient; } + + public synchronized void setLiveActionList(List liveActionList) { + this.liveActionList = liveActionList; + } } // From 8438d1640588b2a65190443ef901951793276ec2 Mon Sep 17 00:00:00 2001 From: sere Date: Tue, 17 Apr 2018 12:49:13 +0200 Subject: [PATCH 023/220] Increased Websocket frame size from 256 kb to 16 Mb --- classes/ch/loway/oss/ari4java/tools/http/NettyHttpClient.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/classes/ch/loway/oss/ari4java/tools/http/NettyHttpClient.java b/classes/ch/loway/oss/ari4java/tools/http/NettyHttpClient.java index 7eba4ce6..9146b6c9 100644 --- a/classes/ch/loway/oss/ari4java/tools/http/NettyHttpClient.java +++ b/classes/ch/loway/oss/ari4java/tools/http/NettyHttpClient.java @@ -42,7 +42,7 @@ */ public class NettyHttpClient implements HttpClient, WsClient, WsClientAutoReconnect { - public static final int MAX_HTTP_REQUEST_KB = 256; + public static final int MAX_HTTP_REQUEST_KB = 16 * 1024; private Bootstrap bootStrap; private URI baseUri; From 1b6d24ace150bb94301ffc53ed667f931d6c60e7 Mon Sep 17 00:00:00 2001 From: sere Date: Tue, 15 May 2018 13:47:49 +0200 Subject: [PATCH 024/220] Fixed Javadoc: comment must be in front of identifier --- classes/ch/loway/oss/ari4java/AriVersion.java | 28 +++++++++++++------ 1 file changed, 19 insertions(+), 9 deletions(-) diff --git a/classes/ch/loway/oss/ari4java/AriVersion.java b/classes/ch/loway/oss/ari4java/AriVersion.java index 4dbb3aaf..d04f2618 100644 --- a/classes/ch/loway/oss/ari4java/AriVersion.java +++ b/classes/ch/loway/oss/ari4java/AriVersion.java @@ -23,15 +23,25 @@ public enum AriVersion { - ARI_0_0_1 ( "0.0.1", new AriBuilder_impl_ari_0_0_1() ), /** Asterisk 12 beta 1 */ - ARI_1_0_0 ( "1.0.0", new AriBuilder_impl_ari_1_0_0() ), /** Asterisk 12 */ - ARI_1_5_0 ( "1.5.0", new AriBuilder_impl_ari_1_5_0() ), /** Asterisk 13.0.0 */ - ARI_1_6_0 ( "1.6.0", new AriBuilder_impl_ari_1_6_0() ), /** Asterisk 13.1.0 */ - ARI_1_7_0 ( "1.7.0", new AriBuilder_impl_ari_1_7_0() ), /** Asterisk 13.2.0 */ - ARI_1_8_0 ( "1.8.0", new AriBuilder_impl_ari_1_8_0() ), /** Asterisk 13.5.0 */ - ARI_1_9_0 ( "1.9.0", new AriBuilder_impl_ari_1_9_0() ), /** Asterisk 13.7.0 */ - ARI_1_10_0 ( "1.10.0", new AriBuilder_impl_ari_1_10_0() ), /** Asterisk 14.0.0 */ - ARI_2_0_0 ( "2.0.0", new AriBuilder_impl_ari_2_0_0() ), /** Asterisk 14.2.1 */ + /** Asterisk 12 beta 1 */ + ARI_0_0_1 ( "0.0.1", new AriBuilder_impl_ari_0_0_1() ), + /** Asterisk 12 */ + ARI_1_0_0 ( "1.0.0", new AriBuilder_impl_ari_1_0_0() ), + /** Asterisk 13.0.0 */ + ARI_1_5_0 ( "1.5.0", new AriBuilder_impl_ari_1_5_0() ), + /** Asterisk 13.1.0 */ + ARI_1_6_0 ( "1.6.0", new AriBuilder_impl_ari_1_6_0() ), + /** Asterisk 13.2.0 */ + ARI_1_7_0 ( "1.7.0", new AriBuilder_impl_ari_1_7_0() ), + /** Asterisk 13.5.0 */ + ARI_1_8_0 ( "1.8.0", new AriBuilder_impl_ari_1_8_0() ), + /** Asterisk 13.7.0 */ + ARI_1_9_0 ( "1.9.0", new AriBuilder_impl_ari_1_9_0() ), + /** Asterisk 14.0.0 */ + ARI_1_10_0 ( "1.10.0", new AriBuilder_impl_ari_1_10_0() ), + /** Asterisk 14.2.1 */ + ARI_2_0_0 ( "2.0.0", new AriBuilder_impl_ari_2_0_0() ), + /** Asterisk 15.1.4 */ ARI_3_0_0 ( "3.0.0", new AriBuilder_impl_ari_3_0_0() ), /** Asterisk 15.1.4 */ From 2c3c81e22872d726086b5dfb9a3d19e9ccc6b668 Mon Sep 17 00:00:00 2001 From: Nils Hambrecht Date: Thu, 18 Oct 2018 12:07:08 +0200 Subject: [PATCH 025/220] fixed unknown tag error in javadoc --- classes/ch/loway/oss/ari4java/tools/BaseAriAction.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/classes/ch/loway/oss/ari4java/tools/BaseAriAction.java b/classes/ch/loway/oss/ari4java/tools/BaseAriAction.java index e2d7524e..12585a41 100644 --- a/classes/ch/loway/oss/ari4java/tools/BaseAriAction.java +++ b/classes/ch/loway/oss/ari4java/tools/BaseAriAction.java @@ -165,7 +165,7 @@ public static T deserializeJson(String json, TypeReference klazzType) thr * @param The abstract type for members of the list. * @param The concrete type for members of the list. * @param json Data in - * @param refConcreteType The reference concrete type, should be a List + * @param refConcreteType The reference concrete type, should be a List<C> * @return a list of A's * @throws RestException */ From 0ce5e3b625706964abdad3b703e1f58710297bb8 Mon Sep 17 00:00:00 2001 From: lenz Date: Fri, 19 Oct 2018 08:46:46 +0200 Subject: [PATCH 026/220] Update README.md --- README.md | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/README.md b/README.md index 2c9766a1..60d10294 100644 --- a/README.md +++ b/README.md @@ -5,6 +5,15 @@ The Asterisk REST Interface (ARI) bindings for Java. [ ![Download](https://api.bintray.com/packages/lenz/maven/ari4java/images/download.png) ](https://bintray.com/lenz/maven/ari4java/_latestVersion) +Project status: Looking for a new maintainer +-------------------------------------------- + +I am looking for a new maintainer to take over this project, as I currently have no +time to handle it appropriately. **Looking for someone who is using the library in production, so +they have a very good reason to keep it fit.** Any takers? + + + Description ----------- From c1122a868b86b9f0deff15457551514de8c068f3 Mon Sep 17 00:00:00 2001 From: Naama Gertel Date: Wed, 5 Dec 2018 09:37:43 +0200 Subject: [PATCH 027/220] I'm a maintainer now, so need for that --- README.md | 9 --------- 1 file changed, 9 deletions(-) diff --git a/README.md b/README.md index 60d10294..2c9766a1 100644 --- a/README.md +++ b/README.md @@ -5,15 +5,6 @@ The Asterisk REST Interface (ARI) bindings for Java. [ ![Download](https://api.bintray.com/packages/lenz/maven/ari4java/images/download.png) ](https://bintray.com/lenz/maven/ari4java/_latestVersion) -Project status: Looking for a new maintainer --------------------------------------------- - -I am looking for a new maintainer to take over this project, as I currently have no -time to handle it appropriately. **Looking for someone who is using the library in production, so -they have a very good reason to keep it fit.** Any takers? - - - Description ----------- From 8b2c8998fdd73fac751b06663578b2fa286b22f0 Mon Sep 17 00:00:00 2001 From: Oded Arbel Date: Sun, 18 Nov 2018 15:48:50 +0200 Subject: [PATCH 028/220] allow to run not only on Lenz's desktop --- codegen/ch/loway/oss/ari4java/codegen/run.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/codegen/ch/loway/oss/ari4java/codegen/run.java b/codegen/ch/loway/oss/ari4java/codegen/run.java index 0ca07b14..c5ef0f13 100644 --- a/codegen/ch/loway/oss/ari4java/codegen/run.java +++ b/codegen/ch/loway/oss/ari4java/codegen/run.java @@ -14,7 +14,7 @@ public class run { //public static String SOURCES = "codegen-data/"; - public static String PROJECT = "/Users/lenz/Desktop/ari4java"; + public static String PROJECT = "."; public static String SOURCES = PROJECT + "/codegen-data/"; From a6ccf6186f80e2eb7c0993cd18bed2dc5506f31a Mon Sep 17 00:00:00 2001 From: Oded Arbel Date: Tue, 18 Dec 2018 15:53:15 +0200 Subject: [PATCH 029/220] teach JavaInterface that it can extend other interfaces and use it to support models extending each other as per the spec. --- codegen/ch/loway/oss/ari4java/codegen/DefMapper.java | 1 + .../ch/loway/oss/ari4java/codegen/genJava/JavaInterface.java | 3 +++ 2 files changed, 4 insertions(+) diff --git a/codegen/ch/loway/oss/ari4java/codegen/DefMapper.java b/codegen/ch/loway/oss/ari4java/codegen/DefMapper.java index 84b2919c..e5ef049a 100644 --- a/codegen/ch/loway/oss/ari4java/codegen/DefMapper.java +++ b/codegen/ch/loway/oss/ari4java/codegen/DefMapper.java @@ -111,6 +111,7 @@ public void parseJsonDefinition( File f, String apiVersion, boolean modelHasEven j = new JavaInterface(); j.pkgName = "ch.loway.oss.ari4java.generated"; j.className = m.getInterfaceName(); + j.parent = m.extendsModel; interfaces.put(m.getInterfaceName(), j); } diff --git a/codegen/ch/loway/oss/ari4java/codegen/genJava/JavaInterface.java b/codegen/ch/loway/oss/ari4java/codegen/genJava/JavaInterface.java index f0a6f7c5..a5c6ee46 100644 --- a/codegen/ch/loway/oss/ari4java/codegen/genJava/JavaInterface.java +++ b/codegen/ch/loway/oss/ari4java/codegen/genJava/JavaInterface.java @@ -25,6 +25,7 @@ public class JavaInterface { public String pkgName = ""; public String className = ""; public String since = ""; + public String parent = ""; Map definitions = new HashMap(); @@ -80,6 +81,8 @@ public String toString() { if ( eventSources.contains( className )) { sb.append( " extends EventSource " ); + } else if (!parent.isEmpty()) { + sb.append( " extends " + parent + " " ); } From 59c1eb7dc29bc8a91377c033da9c429fae3f2002 Mon Sep 17 00:00:00 2001 From: Oded Arbel Date: Sun, 18 Nov 2018 15:48:50 +0200 Subject: [PATCH 030/220] allow to run not only on Lenz's desktop --- codegen/ch/loway/oss/ari4java/codegen/run.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/codegen/ch/loway/oss/ari4java/codegen/run.java b/codegen/ch/loway/oss/ari4java/codegen/run.java index 0ca07b14..c5ef0f13 100644 --- a/codegen/ch/loway/oss/ari4java/codegen/run.java +++ b/codegen/ch/loway/oss/ari4java/codegen/run.java @@ -14,7 +14,7 @@ public class run { //public static String SOURCES = "codegen-data/"; - public static String PROJECT = "/Users/lenz/Desktop/ari4java"; + public static String PROJECT = "."; public static String SOURCES = PROJECT + "/codegen-data/"; From 1aa2955045f7ca27fd28db63a5a9c38bcaa47b2d Mon Sep 17 00:00:00 2001 From: Oded Arbel Date: Sun, 18 Nov 2018 15:50:58 +0200 Subject: [PATCH 031/220] for compatibility with Java 9 that defines Module, we need to explicitly import the generated Module class. --- codegen/ch/loway/oss/ari4java/codegen/DefMapper.java | 1 + codegen/ch/loway/oss/ari4java/codegen/models/Apis.java | 1 + .../ch/loway/oss/ari4java/codegen/models/ClassTranslator.java | 1 + codegen/ch/loway/oss/ari4java/codegen/models/Model.java | 1 + 4 files changed, 4 insertions(+) diff --git a/codegen/ch/loway/oss/ari4java/codegen/DefMapper.java b/codegen/ch/loway/oss/ari4java/codegen/DefMapper.java index 84b2919c..4ea348e4 100644 --- a/codegen/ch/loway/oss/ari4java/codegen/DefMapper.java +++ b/codegen/ch/loway/oss/ari4java/codegen/DefMapper.java @@ -554,6 +554,7 @@ private void writeAriBuilder( String apiVersion, AriBuilderInterface abi, Collec Arrays.asList( new String[] { "ch.loway.oss.ari4java.generated." + apiVersion + ".models.*" , "ch.loway.oss.ari4java.generated." + apiVersion + ".actions.*", + "ch.loway.oss.ari4java.generated.Module", "ch.loway.oss.ari4java.generated.*", "ch.loway.oss.ari4java.ARI" })); diff --git a/codegen/ch/loway/oss/ari4java/codegen/models/Apis.java b/codegen/ch/loway/oss/ari4java/codegen/models/Apis.java index 656396ea..45fffcc8 100644 --- a/codegen/ch/loway/oss/ari4java/codegen/models/Apis.java +++ b/codegen/ch/loway/oss/ari4java/codegen/models/Apis.java @@ -25,6 +25,7 @@ public String toString() { JavaInterface ji = getBaseInterface(); JavaGen.importClasses(sb, getActionsPackage(), Arrays.asList( new String[] { + "ch.loway.oss.ari4java.generated.Module", "ch.loway.oss.ari4java.generated.*", "java.util.Date", "java.util.List", diff --git a/codegen/ch/loway/oss/ari4java/codegen/models/ClassTranslator.java b/codegen/ch/loway/oss/ari4java/codegen/models/ClassTranslator.java index 22cb8b8a..8fc31cd9 100644 --- a/codegen/ch/loway/oss/ari4java/codegen/models/ClassTranslator.java +++ b/codegen/ch/loway/oss/ari4java/codegen/models/ClassTranslator.java @@ -24,6 +24,7 @@ public ClassTranslator() { imports = new ArrayList(); className = "ClassTranslator"; imports.add("ch.loway.oss.ari4java.ARI" ); + imports.add("ch.loway.oss.ari4java.generated.Module"); imports.add( "ch.loway.oss.ari4java.generated.*" ); } diff --git a/codegen/ch/loway/oss/ari4java/codegen/models/Model.java b/codegen/ch/loway/oss/ari4java/codegen/models/Model.java index fca78bc7..274910db 100644 --- a/codegen/ch/loway/oss/ari4java/codegen/models/Model.java +++ b/codegen/ch/loway/oss/ari4java/codegen/models/Model.java @@ -33,6 +33,7 @@ public Model() { imports.add( "java.util.Date" ); imports.add( "java.util.List" ); imports.add( "java.util.Map" ); + imports.add( "ch.loway.oss.ari4java.generated.Module"); imports.add( "ch.loway.oss.ari4java.generated.*"); imports.add( "com.fasterxml.jackson.databind.annotation.JsonDeserialize" ); } From 8d67d2e7286e83dbf112bef44b35bfa564f6ae4d Mon Sep 17 00:00:00 2001 From: Oded Arbel Date: Sun, 18 Nov 2018 15:54:22 +0200 Subject: [PATCH 032/220] Add another missing import for Java 9 compatibility --- .../ch/loway/oss/ari4java/codegen/genJava/JavaInterface.java | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/codegen/ch/loway/oss/ari4java/codegen/genJava/JavaInterface.java b/codegen/ch/loway/oss/ari4java/codegen/genJava/JavaInterface.java index f0a6f7c5..41a74f96 100644 --- a/codegen/ch/loway/oss/ari4java/codegen/genJava/JavaInterface.java +++ b/codegen/ch/loway/oss/ari4java/codegen/genJava/JavaInterface.java @@ -65,7 +65,8 @@ public String toString() { "java.util.ArrayList", "ch.loway.oss.ari4java.tools.RestException", "ch.loway.oss.ari4java.tools.AriCallback", - "ch.loway.oss.ari4java.tools.tags.*" + "ch.loway.oss.ari4java.tools.tags.*", + "ch.loway.oss.ari4java.generated.Module" })); From 0da372df0e79143f579eb48a70d0d43e8c986cb5 Mon Sep 17 00:00:00 2001 From: Oded Arbel Date: Sun, 18 Nov 2018 15:55:49 +0200 Subject: [PATCH 033/220] add JAXB that is missing in JDK >=9 --- .gitignore | 2 ++ build.gradle | 2 +- 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/.gitignore b/.gitignore index 26414f59..e3f1aea9 100644 --- a/.gitignore +++ b/.gitignore @@ -23,3 +23,5 @@ build.xml # macbook .DS_Store +/bin/ +/build/ diff --git a/build.gradle b/build.gradle index af295ead..9a7a4dd3 100644 --- a/build.gradle +++ b/build.gradle @@ -105,9 +105,9 @@ dependencies { compile 'com.fasterxml.jackson.core:jackson-databind:2.2.2' compile 'com.fasterxml.jackson.core:jackson-annotations:2.2.2' compile 'io.netty:netty-all:4.0.25.Final' + compile 'javax.xml.bind:jaxb-api:2.1' testCompile 'junit:junit:4.10' - } task setVersionInSources() { From c0cad14ddb67c3b9ff1397d0a684d9d5fba19599 Mon Sep 17 00:00:00 2001 From: Oded Arbel Date: Sun, 18 Nov 2018 15:48:50 +0200 Subject: [PATCH 034/220] allow to run not only on Lenz's desktop --- codegen/ch/loway/oss/ari4java/codegen/run.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/codegen/ch/loway/oss/ari4java/codegen/run.java b/codegen/ch/loway/oss/ari4java/codegen/run.java index 0ca07b14..c5ef0f13 100644 --- a/codegen/ch/loway/oss/ari4java/codegen/run.java +++ b/codegen/ch/loway/oss/ari4java/codegen/run.java @@ -14,7 +14,7 @@ public class run { //public static String SOURCES = "codegen-data/"; - public static String PROJECT = "/Users/lenz/Desktop/ari4java"; + public static String PROJECT = "."; public static String SOURCES = PROJECT + "/codegen-data/"; From 797218d7089262dc8935866411dfd514f51c5950 Mon Sep 17 00:00:00 2001 From: Oded Arbel Date: Tue, 18 Dec 2018 17:43:51 +0200 Subject: [PATCH 035/220] Added code generation from gradle build --- .gitignore | 3 ++- build.gradle | 18 +++++++++++++++--- codegen/build.gradle | 21 +++++++++++++++++++++ settings.gradle | 5 +++++ 4 files changed, 43 insertions(+), 4 deletions(-) create mode 100644 codegen/build.gradle create mode 100644 settings.gradle diff --git a/.gitignore b/.gitignore index 26414f59..52431af8 100644 --- a/.gitignore +++ b/.gitignore @@ -17,8 +17,9 @@ build.xml /.settings /.classpath /.project -/.gradle +.gradle/ /.nb-gradle +/.directory # macbook .DS_Store diff --git a/build.gradle b/build.gradle index af295ead..1fb0e0e3 100644 --- a/build.gradle +++ b/build.gradle @@ -15,10 +15,8 @@ project.ext { build_time = "" + new Date() } - - sourceSets { - + main { java { srcDirs "$buildDir/classes_subst" @@ -101,6 +99,8 @@ repositories { dependencies { + compile 'ari4java:codegen' + compile 'com.fasterxml.jackson.core:jackson-core:2.2.2' compile 'com.fasterxml.jackson.core:jackson-databind:2.2.2' compile 'com.fasterxml.jackson.core:jackson-annotations:2.2.2' @@ -110,6 +110,15 @@ dependencies { } +task buildCodegen { + dependsOn gradle.includedBuild('codegen').task(':build') +} + +task runCodegen(type:JavaExec) { + main = 'ch.loway.oss.ari4java.codegen.run' + classpath sourceSets.main.compileClasspath +} + task setVersionInSources() { doLast { def cjd = new File( "$buildDir/classes_subst" ) @@ -134,6 +143,9 @@ task setVersionInSources() { ) } } + +runCodegen.dependsOn buildCodegen +setVersionInSources.dependsOn runCodegen compileJava.dependsOn setVersionInSources // decide what to see -only one can be enabled diff --git a/codegen/build.gradle b/codegen/build.gradle new file mode 100644 index 00000000..1685127c --- /dev/null +++ b/codegen/build.gradle @@ -0,0 +1,21 @@ +plugins { + id 'java' +} + +sourceSets { + main { + java { + srcDirs "." + } + } +} + +repositories { + mavenCentral() +} + +dependencies { + compile 'com.fasterxml.jackson.core:jackson-core:2.9.6' + compile 'com.fasterxml.jackson.core:jackson-databind:2.9.6' + compile 'com.fasterxml.jackson.core:jackson-annotations:2.9.6' +} diff --git a/settings.gradle b/settings.gradle new file mode 100644 index 00000000..5a6bf691 --- /dev/null +++ b/settings.gradle @@ -0,0 +1,5 @@ +includeBuild('codegen') { + dependencySubstitution { + substitute module('ari4java:codegen') with project(':') + } +} From 39ccb1934225c0888398cdd3def728b67f517e4d Mon Sep 17 00:00:00 2001 From: Oded Arbel Date: Wed, 19 Dec 2018 11:29:49 +0200 Subject: [PATCH 036/220] Removed generated files and ignore them - these are now artifacts that will be regenerated by the build process --- .gitignore | 5 +- .../generated/ActionApplications.java | 109 -- .../ari4java/generated/ActionAsterisk.java | 340 ------ .../oss/ari4java/generated/ActionBridges.java | 403 ------- .../ari4java/generated/ActionChannels.java | 781 ------------- .../generated/ActionDeviceStates.java | 109 -- .../ari4java/generated/ActionEndpoints.java | 130 --- .../oss/ari4java/generated/ActionEvents.java | 88 -- .../ari4java/generated/ActionPlaybacks.java | 88 -- .../ari4java/generated/ActionRecordings.java | 277 ----- .../oss/ari4java/generated/ActionSounds.java | 67 -- .../oss/ari4java/generated/Application.java | 125 -- .../generated/ApplicationReplaced.java | 25 - .../oss/ari4java/generated/AriBuilder.java | 95 -- .../oss/ari4java/generated/AsteriskInfo.java | 105 -- .../loway/oss/ari4java/generated/Bridge.java | 205 ---- .../generated/BridgeAttendedTransfer.java | 345 ------ .../generated/BridgeBlindTransfer.java | 185 --- .../oss/ari4java/generated/BridgeCreated.java | 45 - .../ari4java/generated/BridgeDestroyed.java | 45 - .../oss/ari4java/generated/BridgeMerged.java | 65 -- .../generated/BridgeVideoSourceChanged.java | 65 -- .../oss/ari4java/generated/BuildInfo.java | 145 --- .../oss/ari4java/generated/CallerID.java | 65 -- .../loway/oss/ari4java/generated/Channel.java | 229 ---- .../ari4java/generated/ChannelCallerId.java | 85 -- .../generated/ChannelConnectedLine.java | 45 - .../ari4java/generated/ChannelCreated.java | 45 - .../ari4java/generated/ChannelDestroyed.java | 85 -- .../ari4java/generated/ChannelDialplan.java | 85 -- .../generated/ChannelDtmfReceived.java | 85 -- .../generated/ChannelEnteredBridge.java | 65 -- .../generated/ChannelHangupRequest.java | 85 -- .../oss/ari4java/generated/ChannelHold.java | 65 -- .../ari4java/generated/ChannelLeftBridge.java | 65 -- .../generated/ChannelStateChange.java | 45 - .../generated/ChannelTalkingFinished.java | 65 -- .../generated/ChannelTalkingStarted.java | 45 - .../oss/ari4java/generated/ChannelUnhold.java | 45 - .../ari4java/generated/ChannelUserevent.java | 125 -- .../oss/ari4java/generated/ChannelVarset.java | 89 -- .../oss/ari4java/generated/ConfigInfo.java | 145 --- .../oss/ari4java/generated/ConfigTuple.java | 65 -- .../oss/ari4java/generated/ContactInfo.java | 105 -- .../generated/ContactStatusChange.java | 65 -- .../oss/ari4java/generated/DeviceState.java | 65 -- .../generated/DeviceStateChanged.java | 45 - .../ch/loway/oss/ari4java/generated/Dial.java | 145 --- .../loway/oss/ari4java/generated/Dialed.java | 25 - .../oss/ari4java/generated/DialplanCEP.java | 85 -- .../oss/ari4java/generated/Endpoint.java | 105 -- .../generated/EndpointStateChange.java | 45 - .../loway/oss/ari4java/generated/Event.java | 65 -- .../ari4java/generated/FormatLangPair.java | 65 -- .../oss/ari4java/generated/LiveRecording.java | 185 --- .../oss/ari4java/generated/LogChannel.java | 105 -- .../loway/oss/ari4java/generated/Message.java | 65 -- .../oss/ari4java/generated/MissingParams.java | 45 - .../loway/oss/ari4java/generated/Module.java | 125 -- .../ch/loway/oss/ari4java/generated/Peer.java | 125 -- .../ari4java/generated/PeerStatusChange.java | 65 -- .../oss/ari4java/generated/Playback.java | 145 --- .../generated/PlaybackContinuing.java | 45 - .../ari4java/generated/PlaybackFinished.java | 45 - .../ari4java/generated/PlaybackStarted.java | 45 - .../ari4java/generated/RecordingFailed.java | 45 - .../ari4java/generated/RecordingFinished.java | 45 - .../ari4java/generated/RecordingStarted.java | 45 - .../loway/oss/ari4java/generated/SetId.java | 65 -- .../loway/oss/ari4java/generated/Sound.java | 85 -- .../oss/ari4java/generated/StasisEnd.java | 45 - .../oss/ari4java/generated/StasisStart.java | 85 -- .../oss/ari4java/generated/StatusInfo.java | 65 -- .../ari4java/generated/StoredRecording.java | 65 -- .../oss/ari4java/generated/SystemInfo.java | 65 -- .../oss/ari4java/generated/TextMessage.java | 105 -- .../generated/TextMessageReceived.java | 65 -- .../generated/TextMessageVariable.java | 65 -- .../oss/ari4java/generated/Variable.java | 45 - .../ari_0_0_1/AriBuilder_impl_ari_0_0_1.java | 328 ------ .../ClassTranslator_impl_ari_0_0_1.java | 255 ----- .../ActionApplications_impl_ari_0_0_1.java | 140 --- .../ActionAsterisk_impl_ari_0_0_1.java | 335 ------ .../actions/ActionBridges_impl_ari_0_0_1.java | 459 -------- .../ActionChannels_impl_ari_0_0_1.java | 901 --------------- .../ActionDeviceStates_impl_ari_0_0_1.java | 131 --- .../ActionEndpoints_impl_ari_0_0_1.java | 144 --- .../actions/ActionEvents_impl_ari_0_0_1.java | 92 -- .../ActionPlaybacks_impl_ari_0_0_1.java | 107 -- .../ActionRecordings_impl_ari_0_0_1.java | 317 ------ .../actions/ActionSounds_impl_ari_0_0_1.java | 82 -- .../ApplicationReplaced_impl_ari_0_0_1.java | 28 - .../models/Application_impl_ari_0_0_1.java | 81 -- .../models/AsteriskInfo_impl_ari_0_0_1.java | 70 -- .../models/BridgeCreated_impl_ari_0_0_1.java | 37 - .../BridgeDestroyed_impl_ari_0_0_1.java | 37 - .../models/BridgeMerged_impl_ari_0_0_1.java | 48 - .../models/Bridge_impl_ari_0_0_1.java | 154 --- .../models/BuildInfo_impl_ari_0_0_1.java | 92 -- .../models/CallerID_impl_ari_0_0_1.java | 48 - .../ChannelCallerId_impl_ari_0_0_1.java | 59 - .../models/ChannelCreated_impl_ari_0_0_1.java | 37 - .../ChannelDestroyed_impl_ari_0_0_1.java | 59 - .../ChannelDialplan_impl_ari_0_0_1.java | 59 - .../ChannelDtmfReceived_impl_ari_0_0_1.java | 61 - .../ChannelEnteredBridge_impl_ari_0_0_1.java | 48 - .../ChannelHangupRequest_impl_ari_0_0_1.java | 59 - .../ChannelLeftBridge_impl_ari_0_0_1.java | 48 - .../ChannelStateChange_impl_ari_0_0_1.java | 37 - .../ChannelUserevent_impl_ari_0_0_1.java | 94 -- .../models/ChannelVarset_impl_ari_0_0_1.java | 61 - .../models/Channel_impl_ari_0_0_1.java | 151 --- .../models/ConfigInfo_impl_ari_0_0_1.java | 92 -- .../DeviceStateChanged_impl_ari_0_0_1.java | 37 - .../models/DeviceState_impl_ari_0_0_1.java | 48 - .../models/Dialed_impl_ari_0_0_1.java | 26 - .../models/DialplanCEP_impl_ari_0_0_1.java | 59 - .../EndpointStateChange_impl_ari_0_0_1.java | 37 - .../models/Endpoint_impl_ari_0_0_1.java | 72 -- .../models/Event_impl_ari_0_0_1.java | 48 - .../models/FormatLangPair_impl_ari_0_0_1.java | 48 - .../models/LiveRecording_impl_ari_0_0_1.java | 141 --- .../models/Message_impl_ari_0_0_1.java | 86 -- .../models/MissingParams_impl_ari_0_0_1.java | 37 - .../PlaybackFinished_impl_ari_0_0_1.java | 37 - .../PlaybackStarted_impl_ari_0_0_1.java | 37 - .../models/Playback_impl_ari_0_0_1.java | 98 -- .../RecordingFailed_impl_ari_0_0_1.java | 37 - .../RecordingFinished_impl_ari_0_0_1.java | 37 - .../RecordingStarted_impl_ari_0_0_1.java | 37 - .../models/SetId_impl_ari_0_0_1.java | 48 - .../models/Sound_impl_ari_0_0_1.java | 59 - .../models/StasisEnd_impl_ari_0_0_1.java | 37 - .../models/StasisStart_impl_ari_0_0_1.java | 65 -- .../models/StatusInfo_impl_ari_0_0_1.java | 48 - .../StoredRecording_impl_ari_0_0_1.java | 48 - .../models/SystemInfo_impl_ari_0_0_1.java | 48 - .../models/Variable_impl_ari_0_0_1.java | 37 - .../ari_1_0_0/AriBuilder_impl_ari_1_0_0.java | 328 ------ .../ClassTranslator_impl_ari_1_0_0.java | 259 ----- .../ActionApplications_impl_ari_1_0_0.java | 140 --- .../ActionAsterisk_impl_ari_1_0_0.java | 335 ------ .../actions/ActionBridges_impl_ari_1_0_0.java | 460 -------- .../ActionChannels_impl_ari_1_0_0.java | 901 --------------- .../ActionDeviceStates_impl_ari_1_0_0.java | 131 --- .../ActionEndpoints_impl_ari_1_0_0.java | 144 --- .../actions/ActionEvents_impl_ari_1_0_0.java | 92 -- .../ActionPlaybacks_impl_ari_1_0_0.java | 107 -- .../ActionRecordings_impl_ari_1_0_0.java | 317 ------ .../actions/ActionSounds_impl_ari_1_0_0.java | 82 -- .../ApplicationReplaced_impl_ari_1_0_0.java | 28 - .../models/Application_impl_ari_1_0_0.java | 81 -- .../models/AsteriskInfo_impl_ari_1_0_0.java | 70 -- .../models/BridgeCreated_impl_ari_1_0_0.java | 37 - .../BridgeDestroyed_impl_ari_1_0_0.java | 37 - .../models/BridgeMerged_impl_ari_1_0_0.java | 48 - .../models/Bridge_impl_ari_1_0_0.java | 140 --- .../models/BuildInfo_impl_ari_1_0_0.java | 92 -- .../models/CallerID_impl_ari_1_0_0.java | 48 - .../ChannelCallerId_impl_ari_1_0_0.java | 59 - .../models/ChannelCreated_impl_ari_1_0_0.java | 37 - .../ChannelDestroyed_impl_ari_1_0_0.java | 59 - .../ChannelDialplan_impl_ari_1_0_0.java | 59 - .../ChannelDtmfReceived_impl_ari_1_0_0.java | 61 - .../ChannelEnteredBridge_impl_ari_1_0_0.java | 48 - .../ChannelHangupRequest_impl_ari_1_0_0.java | 59 - .../ChannelLeftBridge_impl_ari_1_0_0.java | 48 - .../ChannelStateChange_impl_ari_1_0_0.java | 37 - .../ChannelUserevent_impl_ari_1_0_0.java | 94 -- .../models/ChannelVarset_impl_ari_1_0_0.java | 61 - .../models/Channel_impl_ari_1_0_0.java | 151 --- .../models/ConfigInfo_impl_ari_1_0_0.java | 92 -- .../DeviceStateChanged_impl_ari_1_0_0.java | 37 - .../models/DeviceState_impl_ari_1_0_0.java | 48 - .../ari_1_0_0/models/Dial_impl_ari_1_0_0.java | 92 -- .../models/Dialed_impl_ari_1_0_0.java | 26 - .../models/DialplanCEP_impl_ari_1_0_0.java | 59 - .../EndpointStateChange_impl_ari_1_0_0.java | 37 - .../models/Endpoint_impl_ari_1_0_0.java | 72 -- .../models/Event_impl_ari_1_0_0.java | 48 - .../models/FormatLangPair_impl_ari_1_0_0.java | 48 - .../models/LiveRecording_impl_ari_1_0_0.java | 141 --- .../models/Message_impl_ari_1_0_0.java | 87 -- .../models/MissingParams_impl_ari_1_0_0.java | 37 - .../PlaybackFinished_impl_ari_1_0_0.java | 37 - .../PlaybackStarted_impl_ari_1_0_0.java | 37 - .../models/Playback_impl_ari_1_0_0.java | 98 -- .../RecordingFailed_impl_ari_1_0_0.java | 37 - .../RecordingFinished_impl_ari_1_0_0.java | 37 - .../RecordingStarted_impl_ari_1_0_0.java | 37 - .../models/SetId_impl_ari_1_0_0.java | 48 - .../models/Sound_impl_ari_1_0_0.java | 59 - .../models/StasisEnd_impl_ari_1_0_0.java | 37 - .../models/StasisStart_impl_ari_1_0_0.java | 65 -- .../models/StatusInfo_impl_ari_1_0_0.java | 48 - .../StoredRecording_impl_ari_1_0_0.java | 48 - .../models/SystemInfo_impl_ari_1_0_0.java | 48 - .../models/Variable_impl_ari_1_0_0.java | 37 - .../AriBuilder_impl_ari_1_10_0.java | 328 ------ .../ClassTranslator_impl_ari_1_10_0.java | 331 ------ .../ActionApplications_impl_ari_1_10_0.java | 140 --- .../ActionAsterisk_impl_ari_1_10_0.java | 412 ------- .../ActionBridges_impl_ari_1_10_0.java | 482 -------- .../ActionChannels_impl_ari_1_10_0.java | 999 ---------------- .../ActionDeviceStates_impl_ari_1_10_0.java | 131 --- .../ActionEndpoints_impl_ari_1_10_0.java | 165 --- .../actions/ActionEvents_impl_ari_1_10_0.java | 103 -- .../ActionPlaybacks_impl_ari_1_10_0.java | 107 -- .../ActionRecordings_impl_ari_1_10_0.java | 333 ------ .../actions/ActionSounds_impl_ari_1_10_0.java | 82 -- .../ApplicationReplaced_impl_ari_1_10_0.java | 28 - .../models/Application_impl_ari_1_10_0.java | 81 -- .../models/AsteriskInfo_impl_ari_1_10_0.java | 70 -- ...ridgeAttendedTransfer_impl_ari_1_10_0.java | 202 ---- .../BridgeBlindTransfer_impl_ari_1_10_0.java | 114 -- .../models/BridgeCreated_impl_ari_1_10_0.java | 37 - .../BridgeDestroyed_impl_ari_1_10_0.java | 37 - .../models/BridgeMerged_impl_ari_1_10_0.java | 48 - .../models/Bridge_impl_ari_1_10_0.java | 140 --- .../models/BuildInfo_impl_ari_1_10_0.java | 92 -- .../models/CallerID_impl_ari_1_10_0.java | 48 - .../ChannelCallerId_impl_ari_1_10_0.java | 59 - .../ChannelConnectedLine_impl_ari_1_10_0.java | 37 - .../ChannelCreated_impl_ari_1_10_0.java | 37 - .../ChannelDestroyed_impl_ari_1_10_0.java | 59 - .../ChannelDialplan_impl_ari_1_10_0.java | 59 - .../ChannelDtmfReceived_impl_ari_1_10_0.java | 61 - .../ChannelEnteredBridge_impl_ari_1_10_0.java | 48 - .../ChannelHangupRequest_impl_ari_1_10_0.java | 59 - .../models/ChannelHold_impl_ari_1_10_0.java | 48 - .../ChannelLeftBridge_impl_ari_1_10_0.java | 48 - .../ChannelStateChange_impl_ari_1_10_0.java | 37 - ...hannelTalkingFinished_impl_ari_1_10_0.java | 48 - ...ChannelTalkingStarted_impl_ari_1_10_0.java | 37 - .../models/ChannelUnhold_impl_ari_1_10_0.java | 37 - .../ChannelUserevent_impl_ari_1_10_0.java | 81 -- .../models/ChannelVarset_impl_ari_1_10_0.java | 61 - .../models/Channel_impl_ari_1_10_0.java | 144 --- .../models/ConfigInfo_impl_ari_1_10_0.java | 92 -- .../models/ConfigTuple_impl_ari_1_10_0.java | 48 - .../models/ContactInfo_impl_ari_1_10_0.java | 70 -- .../ContactStatusChange_impl_ari_1_10_0.java | 48 - .../DeviceStateChanged_impl_ari_1_10_0.java | 37 - .../models/DeviceState_impl_ari_1_10_0.java | 48 - .../models/Dial_impl_ari_1_10_0.java | 92 -- .../models/Dialed_impl_ari_1_10_0.java | 26 - .../models/DialplanCEP_impl_ari_1_10_0.java | 59 - .../EndpointStateChange_impl_ari_1_10_0.java | 37 - .../models/Endpoint_impl_ari_1_10_0.java | 72 -- .../models/Event_impl_ari_1_10_0.java | 48 - .../FormatLangPair_impl_ari_1_10_0.java | 48 - .../models/LiveRecording_impl_ari_1_10_0.java | 114 -- .../models/LogChannel_impl_ari_1_10_0.java | 70 -- .../models/Message_impl_ari_1_10_0.java | 100 -- .../models/MissingParams_impl_ari_1_10_0.java | 37 - .../models/Module_impl_ari_1_10_0.java | 81 -- .../PeerStatusChange_impl_ari_1_10_0.java | 48 - .../models/Peer_impl_ari_1_10_0.java | 81 -- .../PlaybackContinuing_impl_ari_1_10_0.java | 37 - .../PlaybackFinished_impl_ari_1_10_0.java | 37 - .../PlaybackStarted_impl_ari_1_10_0.java | 37 - .../models/Playback_impl_ari_1_10_0.java | 92 -- .../RecordingFailed_impl_ari_1_10_0.java | 37 - .../RecordingFinished_impl_ari_1_10_0.java | 37 - .../RecordingStarted_impl_ari_1_10_0.java | 37 - .../models/SetId_impl_ari_1_10_0.java | 48 - .../models/Sound_impl_ari_1_10_0.java | 59 - .../models/StasisEnd_impl_ari_1_10_0.java | 37 - .../models/StasisStart_impl_ari_1_10_0.java | 59 - .../models/StatusInfo_impl_ari_1_10_0.java | 48 - .../StoredRecording_impl_ari_1_10_0.java | 48 - .../models/SystemInfo_impl_ari_1_10_0.java | 48 - .../TextMessageReceived_impl_ari_1_10_0.java | 48 - .../TextMessageVariable_impl_ari_1_10_0.java | 48 - .../models/TextMessage_impl_ari_1_10_0.java | 70 -- .../models/Variable_impl_ari_1_10_0.java | 37 - .../ari_1_5_0/AriBuilder_impl_ari_1_5_0.java | 328 ------ .../ClassTranslator_impl_ari_1_5_0.java | 287 ----- .../ActionApplications_impl_ari_1_5_0.java | 140 --- .../ActionAsterisk_impl_ari_1_5_0.java | 335 ------ .../actions/ActionBridges_impl_ari_1_5_0.java | 482 -------- .../ActionChannels_impl_ari_1_5_0.java | 947 ---------------- .../ActionDeviceStates_impl_ari_1_5_0.java | 131 --- .../ActionEndpoints_impl_ari_1_5_0.java | 164 --- .../actions/ActionEvents_impl_ari_1_5_0.java | 102 -- .../ActionPlaybacks_impl_ari_1_5_0.java | 107 -- .../ActionRecordings_impl_ari_1_5_0.java | 325 ------ .../actions/ActionSounds_impl_ari_1_5_0.java | 82 -- .../ApplicationReplaced_impl_ari_1_5_0.java | 28 - .../models/Application_impl_ari_1_5_0.java | 81 -- .../models/AsteriskInfo_impl_ari_1_5_0.java | 70 -- ...BridgeAttendedTransfer_impl_ari_1_5_0.java | 202 ---- .../BridgeBlindTransfer_impl_ari_1_5_0.java | 114 -- .../models/BridgeCreated_impl_ari_1_5_0.java | 37 - .../BridgeDestroyed_impl_ari_1_5_0.java | 37 - .../models/BridgeMerged_impl_ari_1_5_0.java | 48 - .../models/Bridge_impl_ari_1_5_0.java | 140 --- .../models/BuildInfo_impl_ari_1_5_0.java | 92 -- .../models/CallerID_impl_ari_1_5_0.java | 48 - .../ChannelCallerId_impl_ari_1_5_0.java | 59 - .../models/ChannelCreated_impl_ari_1_5_0.java | 37 - .../ChannelDestroyed_impl_ari_1_5_0.java | 59 - .../ChannelDialplan_impl_ari_1_5_0.java | 59 - .../ChannelDtmfReceived_impl_ari_1_5_0.java | 61 - .../ChannelEnteredBridge_impl_ari_1_5_0.java | 48 - .../ChannelHangupRequest_impl_ari_1_5_0.java | 59 - .../ChannelLeftBridge_impl_ari_1_5_0.java | 48 - .../ChannelStateChange_impl_ari_1_5_0.java | 37 - ...ChannelTalkingFinished_impl_ari_1_5_0.java | 48 - .../ChannelTalkingStarted_impl_ari_1_5_0.java | 37 - .../ChannelUserevent_impl_ari_1_5_0.java | 81 -- .../models/ChannelVarset_impl_ari_1_5_0.java | 61 - .../models/Channel_impl_ari_1_5_0.java | 151 --- .../models/ConfigInfo_impl_ari_1_5_0.java | 92 -- .../DeviceStateChanged_impl_ari_1_5_0.java | 37 - .../models/DeviceState_impl_ari_1_5_0.java | 48 - .../ari_1_5_0/models/Dial_impl_ari_1_5_0.java | 92 -- .../models/Dialed_impl_ari_1_5_0.java | 26 - .../models/DialplanCEP_impl_ari_1_5_0.java | 59 - .../EndpointStateChange_impl_ari_1_5_0.java | 37 - .../models/Endpoint_impl_ari_1_5_0.java | 72 -- .../models/Event_impl_ari_1_5_0.java | 48 - .../models/FormatLangPair_impl_ari_1_5_0.java | 48 - .../models/LiveRecording_impl_ari_1_5_0.java | 114 -- .../models/Message_impl_ari_1_5_0.java | 92 -- .../models/MissingParams_impl_ari_1_5_0.java | 37 - .../PlaybackFinished_impl_ari_1_5_0.java | 37 - .../PlaybackStarted_impl_ari_1_5_0.java | 37 - .../models/Playback_impl_ari_1_5_0.java | 98 -- .../RecordingFailed_impl_ari_1_5_0.java | 37 - .../RecordingFinished_impl_ari_1_5_0.java | 37 - .../RecordingStarted_impl_ari_1_5_0.java | 37 - .../models/SetId_impl_ari_1_5_0.java | 48 - .../models/Sound_impl_ari_1_5_0.java | 59 - .../models/StasisEnd_impl_ari_1_5_0.java | 37 - .../models/StasisStart_impl_ari_1_5_0.java | 59 - .../models/StatusInfo_impl_ari_1_5_0.java | 48 - .../StoredRecording_impl_ari_1_5_0.java | 48 - .../models/SystemInfo_impl_ari_1_5_0.java | 48 - .../TextMessageReceived_impl_ari_1_5_0.java | 48 - .../TextMessageVariable_impl_ari_1_5_0.java | 48 - .../models/TextMessage_impl_ari_1_5_0.java | 70 -- .../models/Variable_impl_ari_1_5_0.java | 37 - .../ari_1_6_0/AriBuilder_impl_ari_1_6_0.java | 328 ------ .../ClassTranslator_impl_ari_1_6_0.java | 291 ----- .../ActionApplications_impl_ari_1_6_0.java | 140 --- .../ActionAsterisk_impl_ari_1_6_0.java | 335 ------ .../actions/ActionBridges_impl_ari_1_6_0.java | 482 -------- .../ActionChannels_impl_ari_1_6_0.java | 947 ---------------- .../ActionDeviceStates_impl_ari_1_6_0.java | 131 --- .../ActionEndpoints_impl_ari_1_6_0.java | 164 --- .../actions/ActionEvents_impl_ari_1_6_0.java | 102 -- .../ActionPlaybacks_impl_ari_1_6_0.java | 107 -- .../ActionRecordings_impl_ari_1_6_0.java | 325 ------ .../actions/ActionSounds_impl_ari_1_6_0.java | 82 -- .../ApplicationReplaced_impl_ari_1_6_0.java | 28 - .../models/Application_impl_ari_1_6_0.java | 81 -- .../models/AsteriskInfo_impl_ari_1_6_0.java | 70 -- ...BridgeAttendedTransfer_impl_ari_1_6_0.java | 202 ---- .../BridgeBlindTransfer_impl_ari_1_6_0.java | 114 -- .../models/BridgeCreated_impl_ari_1_6_0.java | 37 - .../BridgeDestroyed_impl_ari_1_6_0.java | 37 - .../models/BridgeMerged_impl_ari_1_6_0.java | 48 - .../models/Bridge_impl_ari_1_6_0.java | 140 --- .../models/BuildInfo_impl_ari_1_6_0.java | 92 -- .../models/CallerID_impl_ari_1_6_0.java | 48 - .../ChannelCallerId_impl_ari_1_6_0.java | 59 - .../ChannelConnectedLine_impl_ari_1_6_0.java | 37 - .../models/ChannelCreated_impl_ari_1_6_0.java | 37 - .../ChannelDestroyed_impl_ari_1_6_0.java | 59 - .../ChannelDialplan_impl_ari_1_6_0.java | 59 - .../ChannelDtmfReceived_impl_ari_1_6_0.java | 61 - .../ChannelEnteredBridge_impl_ari_1_6_0.java | 48 - .../ChannelHangupRequest_impl_ari_1_6_0.java | 59 - .../ChannelLeftBridge_impl_ari_1_6_0.java | 48 - .../ChannelStateChange_impl_ari_1_6_0.java | 37 - ...ChannelTalkingFinished_impl_ari_1_6_0.java | 48 - .../ChannelTalkingStarted_impl_ari_1_6_0.java | 37 - .../ChannelUserevent_impl_ari_1_6_0.java | 81 -- .../models/ChannelVarset_impl_ari_1_6_0.java | 61 - .../models/Channel_impl_ari_1_6_0.java | 151 --- .../models/ConfigInfo_impl_ari_1_6_0.java | 92 -- .../DeviceStateChanged_impl_ari_1_6_0.java | 37 - .../models/DeviceState_impl_ari_1_6_0.java | 48 - .../ari_1_6_0/models/Dial_impl_ari_1_6_0.java | 92 -- .../models/Dialed_impl_ari_1_6_0.java | 26 - .../models/DialplanCEP_impl_ari_1_6_0.java | 59 - .../EndpointStateChange_impl_ari_1_6_0.java | 37 - .../models/Endpoint_impl_ari_1_6_0.java | 72 -- .../models/Event_impl_ari_1_6_0.java | 48 - .../models/FormatLangPair_impl_ari_1_6_0.java | 48 - .../models/LiveRecording_impl_ari_1_6_0.java | 114 -- .../models/Message_impl_ari_1_6_0.java | 93 -- .../models/MissingParams_impl_ari_1_6_0.java | 37 - .../PlaybackFinished_impl_ari_1_6_0.java | 37 - .../PlaybackStarted_impl_ari_1_6_0.java | 37 - .../models/Playback_impl_ari_1_6_0.java | 98 -- .../RecordingFailed_impl_ari_1_6_0.java | 37 - .../RecordingFinished_impl_ari_1_6_0.java | 37 - .../RecordingStarted_impl_ari_1_6_0.java | 37 - .../models/SetId_impl_ari_1_6_0.java | 48 - .../models/Sound_impl_ari_1_6_0.java | 59 - .../models/StasisEnd_impl_ari_1_6_0.java | 37 - .../models/StasisStart_impl_ari_1_6_0.java | 59 - .../models/StatusInfo_impl_ari_1_6_0.java | 48 - .../StoredRecording_impl_ari_1_6_0.java | 48 - .../models/SystemInfo_impl_ari_1_6_0.java | 48 - .../TextMessageReceived_impl_ari_1_6_0.java | 48 - .../TextMessageVariable_impl_ari_1_6_0.java | 48 - .../models/TextMessage_impl_ari_1_6_0.java | 70 -- .../models/Variable_impl_ari_1_6_0.java | 37 - .../ari_1_7_0/AriBuilder_impl_ari_1_7_0.java | 328 ------ .../ClassTranslator_impl_ari_1_7_0.java | 291 ----- .../ActionApplications_impl_ari_1_7_0.java | 140 --- .../ActionAsterisk_impl_ari_1_7_0.java | 335 ------ .../actions/ActionBridges_impl_ari_1_7_0.java | 482 -------- .../ActionChannels_impl_ari_1_7_0.java | 952 ---------------- .../ActionDeviceStates_impl_ari_1_7_0.java | 131 --- .../ActionEndpoints_impl_ari_1_7_0.java | 164 --- .../actions/ActionEvents_impl_ari_1_7_0.java | 102 -- .../ActionPlaybacks_impl_ari_1_7_0.java | 107 -- .../ActionRecordings_impl_ari_1_7_0.java | 325 ------ .../actions/ActionSounds_impl_ari_1_7_0.java | 82 -- .../ApplicationReplaced_impl_ari_1_7_0.java | 28 - .../models/Application_impl_ari_1_7_0.java | 81 -- .../models/AsteriskInfo_impl_ari_1_7_0.java | 70 -- ...BridgeAttendedTransfer_impl_ari_1_7_0.java | 202 ---- .../BridgeBlindTransfer_impl_ari_1_7_0.java | 114 -- .../models/BridgeCreated_impl_ari_1_7_0.java | 37 - .../BridgeDestroyed_impl_ari_1_7_0.java | 37 - .../models/BridgeMerged_impl_ari_1_7_0.java | 48 - .../models/Bridge_impl_ari_1_7_0.java | 140 --- .../models/BuildInfo_impl_ari_1_7_0.java | 92 -- .../models/CallerID_impl_ari_1_7_0.java | 48 - .../ChannelCallerId_impl_ari_1_7_0.java | 59 - .../ChannelConnectedLine_impl_ari_1_7_0.java | 37 - .../models/ChannelCreated_impl_ari_1_7_0.java | 37 - .../ChannelDestroyed_impl_ari_1_7_0.java | 59 - .../ChannelDialplan_impl_ari_1_7_0.java | 59 - .../ChannelDtmfReceived_impl_ari_1_7_0.java | 61 - .../ChannelEnteredBridge_impl_ari_1_7_0.java | 48 - .../ChannelHangupRequest_impl_ari_1_7_0.java | 59 - .../ChannelLeftBridge_impl_ari_1_7_0.java | 48 - .../ChannelStateChange_impl_ari_1_7_0.java | 37 - ...ChannelTalkingFinished_impl_ari_1_7_0.java | 48 - .../ChannelTalkingStarted_impl_ari_1_7_0.java | 37 - .../ChannelUserevent_impl_ari_1_7_0.java | 81 -- .../models/ChannelVarset_impl_ari_1_7_0.java | 61 - .../models/Channel_impl_ari_1_7_0.java | 144 --- .../models/ConfigInfo_impl_ari_1_7_0.java | 92 -- .../DeviceStateChanged_impl_ari_1_7_0.java | 37 - .../models/DeviceState_impl_ari_1_7_0.java | 48 - .../ari_1_7_0/models/Dial_impl_ari_1_7_0.java | 92 -- .../models/Dialed_impl_ari_1_7_0.java | 26 - .../models/DialplanCEP_impl_ari_1_7_0.java | 59 - .../EndpointStateChange_impl_ari_1_7_0.java | 37 - .../models/Endpoint_impl_ari_1_7_0.java | 72 -- .../models/Event_impl_ari_1_7_0.java | 48 - .../models/FormatLangPair_impl_ari_1_7_0.java | 48 - .../models/LiveRecording_impl_ari_1_7_0.java | 114 -- .../models/Message_impl_ari_1_7_0.java | 93 -- .../models/MissingParams_impl_ari_1_7_0.java | 37 - .../PlaybackFinished_impl_ari_1_7_0.java | 37 - .../PlaybackStarted_impl_ari_1_7_0.java | 37 - .../models/Playback_impl_ari_1_7_0.java | 98 -- .../RecordingFailed_impl_ari_1_7_0.java | 37 - .../RecordingFinished_impl_ari_1_7_0.java | 37 - .../RecordingStarted_impl_ari_1_7_0.java | 37 - .../models/SetId_impl_ari_1_7_0.java | 48 - .../models/Sound_impl_ari_1_7_0.java | 59 - .../models/StasisEnd_impl_ari_1_7_0.java | 37 - .../models/StasisStart_impl_ari_1_7_0.java | 59 - .../models/StatusInfo_impl_ari_1_7_0.java | 48 - .../StoredRecording_impl_ari_1_7_0.java | 48 - .../models/SystemInfo_impl_ari_1_7_0.java | 48 - .../TextMessageReceived_impl_ari_1_7_0.java | 48 - .../TextMessageVariable_impl_ari_1_7_0.java | 48 - .../models/TextMessage_impl_ari_1_7_0.java | 70 -- .../models/Variable_impl_ari_1_7_0.java | 37 - .../ari_1_8_0/AriBuilder_impl_ari_1_8_0.java | 328 ------ .../ClassTranslator_impl_ari_1_8_0.java | 307 ----- .../ActionApplications_impl_ari_1_8_0.java | 140 --- .../ActionAsterisk_impl_ari_1_8_0.java | 388 ------- .../actions/ActionBridges_impl_ari_1_8_0.java | 482 -------- .../ActionChannels_impl_ari_1_8_0.java | 961 ---------------- .../ActionDeviceStates_impl_ari_1_8_0.java | 131 --- .../ActionEndpoints_impl_ari_1_8_0.java | 165 --- .../actions/ActionEvents_impl_ari_1_8_0.java | 102 -- .../ActionPlaybacks_impl_ari_1_8_0.java | 107 -- .../ActionRecordings_impl_ari_1_8_0.java | 325 ------ .../actions/ActionSounds_impl_ari_1_8_0.java | 82 -- .../ApplicationReplaced_impl_ari_1_8_0.java | 28 - .../models/Application_impl_ari_1_8_0.java | 81 -- .../models/AsteriskInfo_impl_ari_1_8_0.java | 70 -- ...BridgeAttendedTransfer_impl_ari_1_8_0.java | 202 ---- .../BridgeBlindTransfer_impl_ari_1_8_0.java | 114 -- .../models/BridgeCreated_impl_ari_1_8_0.java | 37 - .../BridgeDestroyed_impl_ari_1_8_0.java | 37 - .../models/BridgeMerged_impl_ari_1_8_0.java | 48 - .../models/Bridge_impl_ari_1_8_0.java | 140 --- .../models/BuildInfo_impl_ari_1_8_0.java | 92 -- .../models/CallerID_impl_ari_1_8_0.java | 48 - .../ChannelCallerId_impl_ari_1_8_0.java | 59 - .../ChannelConnectedLine_impl_ari_1_8_0.java | 37 - .../models/ChannelCreated_impl_ari_1_8_0.java | 37 - .../ChannelDestroyed_impl_ari_1_8_0.java | 59 - .../ChannelDialplan_impl_ari_1_8_0.java | 59 - .../ChannelDtmfReceived_impl_ari_1_8_0.java | 61 - .../ChannelEnteredBridge_impl_ari_1_8_0.java | 48 - .../ChannelHangupRequest_impl_ari_1_8_0.java | 59 - .../models/ChannelHold_impl_ari_1_8_0.java | 48 - .../ChannelLeftBridge_impl_ari_1_8_0.java | 48 - .../ChannelStateChange_impl_ari_1_8_0.java | 37 - ...ChannelTalkingFinished_impl_ari_1_8_0.java | 48 - .../ChannelTalkingStarted_impl_ari_1_8_0.java | 37 - .../models/ChannelUnhold_impl_ari_1_8_0.java | 37 - .../ChannelUserevent_impl_ari_1_8_0.java | 81 -- .../models/ChannelVarset_impl_ari_1_8_0.java | 61 - .../models/Channel_impl_ari_1_8_0.java | 144 --- .../models/ConfigInfo_impl_ari_1_8_0.java | 92 -- .../models/ConfigTuple_impl_ari_1_8_0.java | 48 - .../DeviceStateChanged_impl_ari_1_8_0.java | 37 - .../models/DeviceState_impl_ari_1_8_0.java | 48 - .../ari_1_8_0/models/Dial_impl_ari_1_8_0.java | 92 -- .../models/Dialed_impl_ari_1_8_0.java | 26 - .../models/DialplanCEP_impl_ari_1_8_0.java | 59 - .../EndpointStateChange_impl_ari_1_8_0.java | 37 - .../models/Endpoint_impl_ari_1_8_0.java | 72 -- .../models/Event_impl_ari_1_8_0.java | 48 - .../models/FormatLangPair_impl_ari_1_8_0.java | 48 - .../models/LiveRecording_impl_ari_1_8_0.java | 114 -- .../models/Message_impl_ari_1_8_0.java | 95 -- .../models/MissingParams_impl_ari_1_8_0.java | 37 - .../models/Module_impl_ari_1_8_0.java | 81 -- .../PlaybackFinished_impl_ari_1_8_0.java | 37 - .../PlaybackStarted_impl_ari_1_8_0.java | 37 - .../models/Playback_impl_ari_1_8_0.java | 98 -- .../RecordingFailed_impl_ari_1_8_0.java | 37 - .../RecordingFinished_impl_ari_1_8_0.java | 37 - .../RecordingStarted_impl_ari_1_8_0.java | 37 - .../models/SetId_impl_ari_1_8_0.java | 48 - .../models/Sound_impl_ari_1_8_0.java | 59 - .../models/StasisEnd_impl_ari_1_8_0.java | 37 - .../models/StasisStart_impl_ari_1_8_0.java | 59 - .../models/StatusInfo_impl_ari_1_8_0.java | 48 - .../StoredRecording_impl_ari_1_8_0.java | 48 - .../models/SystemInfo_impl_ari_1_8_0.java | 48 - .../TextMessageReceived_impl_ari_1_8_0.java | 48 - .../TextMessageVariable_impl_ari_1_8_0.java | 48 - .../models/TextMessage_impl_ari_1_8_0.java | 70 -- .../models/Variable_impl_ari_1_8_0.java | 37 - .../ari_1_9_0/AriBuilder_impl_ari_1_9_0.java | 328 ------ .../ClassTranslator_impl_ari_1_9_0.java | 327 ------ .../ActionApplications_impl_ari_1_9_0.java | 140 --- .../ActionAsterisk_impl_ari_1_9_0.java | 412 ------- .../actions/ActionBridges_impl_ari_1_9_0.java | 482 -------- .../ActionChannels_impl_ari_1_9_0.java | 961 ---------------- .../ActionDeviceStates_impl_ari_1_9_0.java | 131 --- .../ActionEndpoints_impl_ari_1_9_0.java | 165 --- .../actions/ActionEvents_impl_ari_1_9_0.java | 103 -- .../ActionPlaybacks_impl_ari_1_9_0.java | 107 -- .../ActionRecordings_impl_ari_1_9_0.java | 325 ------ .../actions/ActionSounds_impl_ari_1_9_0.java | 82 -- .../ApplicationReplaced_impl_ari_1_9_0.java | 28 - .../models/Application_impl_ari_1_9_0.java | 81 -- .../models/AsteriskInfo_impl_ari_1_9_0.java | 70 -- ...BridgeAttendedTransfer_impl_ari_1_9_0.java | 202 ---- .../BridgeBlindTransfer_impl_ari_1_9_0.java | 114 -- .../models/BridgeCreated_impl_ari_1_9_0.java | 37 - .../BridgeDestroyed_impl_ari_1_9_0.java | 37 - .../models/BridgeMerged_impl_ari_1_9_0.java | 48 - .../models/Bridge_impl_ari_1_9_0.java | 140 --- .../models/BuildInfo_impl_ari_1_9_0.java | 92 -- .../models/CallerID_impl_ari_1_9_0.java | 48 - .../ChannelCallerId_impl_ari_1_9_0.java | 59 - .../ChannelConnectedLine_impl_ari_1_9_0.java | 37 - .../models/ChannelCreated_impl_ari_1_9_0.java | 37 - .../ChannelDestroyed_impl_ari_1_9_0.java | 59 - .../ChannelDialplan_impl_ari_1_9_0.java | 59 - .../ChannelDtmfReceived_impl_ari_1_9_0.java | 61 - .../ChannelEnteredBridge_impl_ari_1_9_0.java | 48 - .../ChannelHangupRequest_impl_ari_1_9_0.java | 59 - .../models/ChannelHold_impl_ari_1_9_0.java | 48 - .../ChannelLeftBridge_impl_ari_1_9_0.java | 48 - .../ChannelStateChange_impl_ari_1_9_0.java | 37 - ...ChannelTalkingFinished_impl_ari_1_9_0.java | 48 - .../ChannelTalkingStarted_impl_ari_1_9_0.java | 37 - .../models/ChannelUnhold_impl_ari_1_9_0.java | 37 - .../ChannelUserevent_impl_ari_1_9_0.java | 81 -- .../models/ChannelVarset_impl_ari_1_9_0.java | 61 - .../models/Channel_impl_ari_1_9_0.java | 144 --- .../models/ConfigInfo_impl_ari_1_9_0.java | 92 -- .../models/ConfigTuple_impl_ari_1_9_0.java | 48 - .../models/ContactInfo_impl_ari_1_9_0.java | 70 -- .../ContactStatusChange_impl_ari_1_9_0.java | 48 - .../DeviceStateChanged_impl_ari_1_9_0.java | 37 - .../models/DeviceState_impl_ari_1_9_0.java | 48 - .../ari_1_9_0/models/Dial_impl_ari_1_9_0.java | 92 -- .../models/Dialed_impl_ari_1_9_0.java | 26 - .../models/DialplanCEP_impl_ari_1_9_0.java | 59 - .../EndpointStateChange_impl_ari_1_9_0.java | 37 - .../models/Endpoint_impl_ari_1_9_0.java | 72 -- .../models/Event_impl_ari_1_9_0.java | 48 - .../models/FormatLangPair_impl_ari_1_9_0.java | 48 - .../models/LiveRecording_impl_ari_1_9_0.java | 114 -- .../models/LogChannel_impl_ari_1_9_0.java | 70 -- .../models/Message_impl_ari_1_9_0.java | 99 -- .../models/MissingParams_impl_ari_1_9_0.java | 37 - .../models/Module_impl_ari_1_9_0.java | 81 -- .../PeerStatusChange_impl_ari_1_9_0.java | 48 - .../ari_1_9_0/models/Peer_impl_ari_1_9_0.java | 81 -- .../PlaybackFinished_impl_ari_1_9_0.java | 37 - .../PlaybackStarted_impl_ari_1_9_0.java | 37 - .../models/Playback_impl_ari_1_9_0.java | 98 -- .../RecordingFailed_impl_ari_1_9_0.java | 37 - .../RecordingFinished_impl_ari_1_9_0.java | 37 - .../RecordingStarted_impl_ari_1_9_0.java | 37 - .../models/SetId_impl_ari_1_9_0.java | 48 - .../models/Sound_impl_ari_1_9_0.java | 59 - .../models/StasisEnd_impl_ari_1_9_0.java | 37 - .../models/StasisStart_impl_ari_1_9_0.java | 59 - .../models/StatusInfo_impl_ari_1_9_0.java | 48 - .../StoredRecording_impl_ari_1_9_0.java | 48 - .../models/SystemInfo_impl_ari_1_9_0.java | 48 - .../TextMessageReceived_impl_ari_1_9_0.java | 48 - .../TextMessageVariable_impl_ari_1_9_0.java | 48 - .../models/TextMessage_impl_ari_1_9_0.java | 70 -- .../models/Variable_impl_ari_1_9_0.java | 37 - .../ari_2_0_0/AriBuilder_impl_ari_2_0_0.java | 328 ------ .../ClassTranslator_impl_ari_2_0_0.java | 335 ------ .../ActionApplications_impl_ari_2_0_0.java | 140 --- .../ActionAsterisk_impl_ari_2_0_0.java | 412 ------- .../actions/ActionBridges_impl_ari_2_0_0.java | 494 -------- .../ActionChannels_impl_ari_2_0_0.java | 1002 ----------------- .../ActionDeviceStates_impl_ari_2_0_0.java | 131 --- .../ActionEndpoints_impl_ari_2_0_0.java | 165 --- .../actions/ActionEvents_impl_ari_2_0_0.java | 103 -- .../ActionPlaybacks_impl_ari_2_0_0.java | 107 -- .../ActionRecordings_impl_ari_2_0_0.java | 333 ------ .../actions/ActionSounds_impl_ari_2_0_0.java | 82 -- .../ApplicationReplaced_impl_ari_2_0_0.java | 28 - .../models/Application_impl_ari_2_0_0.java | 81 -- .../models/AsteriskInfo_impl_ari_2_0_0.java | 70 -- ...BridgeAttendedTransfer_impl_ari_2_0_0.java | 202 ---- .../BridgeBlindTransfer_impl_ari_2_0_0.java | 114 -- .../models/BridgeCreated_impl_ari_2_0_0.java | 37 - .../BridgeDestroyed_impl_ari_2_0_0.java | 37 - .../models/BridgeMerged_impl_ari_2_0_0.java | 48 - ...idgeVideoSourceChanged_impl_ari_2_0_0.java | 48 - .../models/Bridge_impl_ari_2_0_0.java | 127 --- .../models/BuildInfo_impl_ari_2_0_0.java | 92 -- .../models/CallerID_impl_ari_2_0_0.java | 48 - .../ChannelCallerId_impl_ari_2_0_0.java | 59 - .../ChannelConnectedLine_impl_ari_2_0_0.java | 37 - .../models/ChannelCreated_impl_ari_2_0_0.java | 37 - .../ChannelDestroyed_impl_ari_2_0_0.java | 59 - .../ChannelDialplan_impl_ari_2_0_0.java | 59 - .../ChannelDtmfReceived_impl_ari_2_0_0.java | 61 - .../ChannelEnteredBridge_impl_ari_2_0_0.java | 48 - .../ChannelHangupRequest_impl_ari_2_0_0.java | 59 - .../models/ChannelHold_impl_ari_2_0_0.java | 48 - .../ChannelLeftBridge_impl_ari_2_0_0.java | 48 - .../ChannelStateChange_impl_ari_2_0_0.java | 37 - ...ChannelTalkingFinished_impl_ari_2_0_0.java | 48 - .../ChannelTalkingStarted_impl_ari_2_0_0.java | 37 - .../models/ChannelUnhold_impl_ari_2_0_0.java | 37 - .../ChannelUserevent_impl_ari_2_0_0.java | 81 -- .../models/ChannelVarset_impl_ari_2_0_0.java | 61 - .../models/Channel_impl_ari_2_0_0.java | 138 --- .../models/ConfigInfo_impl_ari_2_0_0.java | 92 -- .../models/ConfigTuple_impl_ari_2_0_0.java | 48 - .../models/ContactInfo_impl_ari_2_0_0.java | 70 -- .../ContactStatusChange_impl_ari_2_0_0.java | 48 - .../DeviceStateChanged_impl_ari_2_0_0.java | 37 - .../models/DeviceState_impl_ari_2_0_0.java | 48 - .../ari_2_0_0/models/Dial_impl_ari_2_0_0.java | 92 -- .../models/Dialed_impl_ari_2_0_0.java | 26 - .../models/DialplanCEP_impl_ari_2_0_0.java | 59 - .../EndpointStateChange_impl_ari_2_0_0.java | 37 - .../models/Endpoint_impl_ari_2_0_0.java | 72 -- .../models/Event_impl_ari_2_0_0.java | 48 - .../models/FormatLangPair_impl_ari_2_0_0.java | 48 - .../models/LiveRecording_impl_ari_2_0_0.java | 114 -- .../models/LogChannel_impl_ari_2_0_0.java | 70 -- .../models/Message_impl_ari_2_0_0.java | 95 -- .../models/MissingParams_impl_ari_2_0_0.java | 37 - .../models/Module_impl_ari_2_0_0.java | 81 -- .../PeerStatusChange_impl_ari_2_0_0.java | 48 - .../ari_2_0_0/models/Peer_impl_ari_2_0_0.java | 81 -- .../PlaybackContinuing_impl_ari_2_0_0.java | 37 - .../PlaybackFinished_impl_ari_2_0_0.java | 37 - .../PlaybackStarted_impl_ari_2_0_0.java | 37 - .../models/Playback_impl_ari_2_0_0.java | 92 -- .../RecordingFailed_impl_ari_2_0_0.java | 37 - .../RecordingFinished_impl_ari_2_0_0.java | 37 - .../RecordingStarted_impl_ari_2_0_0.java | 37 - .../models/SetId_impl_ari_2_0_0.java | 48 - .../models/Sound_impl_ari_2_0_0.java | 59 - .../models/StasisEnd_impl_ari_2_0_0.java | 37 - .../models/StasisStart_impl_ari_2_0_0.java | 59 - .../models/StatusInfo_impl_ari_2_0_0.java | 48 - .../StoredRecording_impl_ari_2_0_0.java | 48 - .../models/SystemInfo_impl_ari_2_0_0.java | 48 - .../TextMessageReceived_impl_ari_2_0_0.java | 48 - .../TextMessageVariable_impl_ari_2_0_0.java | 48 - .../models/TextMessage_impl_ari_2_0_0.java | 70 -- .../models/Variable_impl_ari_2_0_0.java | 37 - .../ari_3_0_0/AriBuilder_impl_ari_3_0_0.java | 328 ------ .../ClassTranslator_impl_ari_3_0_0.java | 335 ------ .../ActionApplications_impl_ari_3_0_0.java | 140 --- .../ActionAsterisk_impl_ari_3_0_0.java | 412 ------- .../actions/ActionBridges_impl_ari_3_0_0.java | 494 -------- .../ActionChannels_impl_ari_3_0_0.java | 1002 ----------------- .../ActionDeviceStates_impl_ari_3_0_0.java | 131 --- .../ActionEndpoints_impl_ari_3_0_0.java | 165 --- .../actions/ActionEvents_impl_ari_3_0_0.java | 103 -- .../ActionPlaybacks_impl_ari_3_0_0.java | 107 -- .../ActionRecordings_impl_ari_3_0_0.java | 333 ------ .../actions/ActionSounds_impl_ari_3_0_0.java | 82 -- .../ApplicationReplaced_impl_ari_3_0_0.java | 28 - .../models/Application_impl_ari_3_0_0.java | 81 -- .../models/AsteriskInfo_impl_ari_3_0_0.java | 70 -- ...BridgeAttendedTransfer_impl_ari_3_0_0.java | 202 ---- .../BridgeBlindTransfer_impl_ari_3_0_0.java | 114 -- .../models/BridgeCreated_impl_ari_3_0_0.java | 37 - .../BridgeDestroyed_impl_ari_3_0_0.java | 37 - .../models/BridgeMerged_impl_ari_3_0_0.java | 48 - ...idgeVideoSourceChanged_impl_ari_3_0_0.java | 48 - .../models/Bridge_impl_ari_3_0_0.java | 127 --- .../models/BuildInfo_impl_ari_3_0_0.java | 92 -- .../models/CallerID_impl_ari_3_0_0.java | 48 - .../ChannelCallerId_impl_ari_3_0_0.java | 59 - .../ChannelConnectedLine_impl_ari_3_0_0.java | 37 - .../models/ChannelCreated_impl_ari_3_0_0.java | 37 - .../ChannelDestroyed_impl_ari_3_0_0.java | 59 - .../ChannelDialplan_impl_ari_3_0_0.java | 59 - .../ChannelDtmfReceived_impl_ari_3_0_0.java | 61 - .../ChannelEnteredBridge_impl_ari_3_0_0.java | 48 - .../ChannelHangupRequest_impl_ari_3_0_0.java | 59 - .../models/ChannelHold_impl_ari_3_0_0.java | 48 - .../ChannelLeftBridge_impl_ari_3_0_0.java | 48 - .../ChannelStateChange_impl_ari_3_0_0.java | 37 - ...ChannelTalkingFinished_impl_ari_3_0_0.java | 48 - .../ChannelTalkingStarted_impl_ari_3_0_0.java | 37 - .../models/ChannelUnhold_impl_ari_3_0_0.java | 37 - .../ChannelUserevent_impl_ari_3_0_0.java | 81 -- .../models/ChannelVarset_impl_ari_3_0_0.java | 61 - .../models/Channel_impl_ari_3_0_0.java | 138 --- .../models/ConfigInfo_impl_ari_3_0_0.java | 92 -- .../models/ConfigTuple_impl_ari_3_0_0.java | 48 - .../models/ContactInfo_impl_ari_3_0_0.java | 70 -- .../ContactStatusChange_impl_ari_3_0_0.java | 48 - .../DeviceStateChanged_impl_ari_3_0_0.java | 37 - .../models/DeviceState_impl_ari_3_0_0.java | 48 - .../ari_3_0_0/models/Dial_impl_ari_3_0_0.java | 92 -- .../models/Dialed_impl_ari_3_0_0.java | 26 - .../models/DialplanCEP_impl_ari_3_0_0.java | 59 - .../EndpointStateChange_impl_ari_3_0_0.java | 37 - .../models/Endpoint_impl_ari_3_0_0.java | 72 -- .../models/Event_impl_ari_3_0_0.java | 48 - .../models/FormatLangPair_impl_ari_3_0_0.java | 48 - .../models/LiveRecording_impl_ari_3_0_0.java | 114 -- .../models/LogChannel_impl_ari_3_0_0.java | 70 -- .../models/Message_impl_ari_3_0_0.java | 95 -- .../models/MissingParams_impl_ari_3_0_0.java | 37 - .../models/Module_impl_ari_3_0_0.java | 81 -- .../PeerStatusChange_impl_ari_3_0_0.java | 48 - .../ari_3_0_0/models/Peer_impl_ari_3_0_0.java | 81 -- .../PlaybackContinuing_impl_ari_3_0_0.java | 37 - .../PlaybackFinished_impl_ari_3_0_0.java | 37 - .../PlaybackStarted_impl_ari_3_0_0.java | 37 - .../models/Playback_impl_ari_3_0_0.java | 92 -- .../RecordingFailed_impl_ari_3_0_0.java | 37 - .../RecordingFinished_impl_ari_3_0_0.java | 37 - .../RecordingStarted_impl_ari_3_0_0.java | 37 - .../models/SetId_impl_ari_3_0_0.java | 48 - .../models/Sound_impl_ari_3_0_0.java | 59 - .../models/StasisEnd_impl_ari_3_0_0.java | 37 - .../models/StasisStart_impl_ari_3_0_0.java | 59 - .../models/StatusInfo_impl_ari_3_0_0.java | 48 - .../StoredRecording_impl_ari_3_0_0.java | 48 - .../models/SystemInfo_impl_ari_3_0_0.java | 48 - .../TextMessageReceived_impl_ari_3_0_0.java | 48 - .../TextMessageVariable_impl_ari_3_0_0.java | 48 - .../models/TextMessage_impl_ari_3_0_0.java | 70 -- .../models/Variable_impl_ari_3_0_0.java | 37 - 786 files changed, 4 insertions(+), 78390 deletions(-) delete mode 100644 classes/ch/loway/oss/ari4java/generated/ActionApplications.java delete mode 100644 classes/ch/loway/oss/ari4java/generated/ActionAsterisk.java delete mode 100644 classes/ch/loway/oss/ari4java/generated/ActionBridges.java delete mode 100644 classes/ch/loway/oss/ari4java/generated/ActionChannels.java delete mode 100644 classes/ch/loway/oss/ari4java/generated/ActionDeviceStates.java delete mode 100644 classes/ch/loway/oss/ari4java/generated/ActionEndpoints.java delete mode 100644 classes/ch/loway/oss/ari4java/generated/ActionEvents.java delete mode 100644 classes/ch/loway/oss/ari4java/generated/ActionPlaybacks.java delete mode 100644 classes/ch/loway/oss/ari4java/generated/ActionRecordings.java delete mode 100644 classes/ch/loway/oss/ari4java/generated/ActionSounds.java delete mode 100644 classes/ch/loway/oss/ari4java/generated/Application.java delete mode 100644 classes/ch/loway/oss/ari4java/generated/ApplicationReplaced.java delete mode 100644 classes/ch/loway/oss/ari4java/generated/AriBuilder.java delete mode 100644 classes/ch/loway/oss/ari4java/generated/AsteriskInfo.java delete mode 100644 classes/ch/loway/oss/ari4java/generated/Bridge.java delete mode 100644 classes/ch/loway/oss/ari4java/generated/BridgeAttendedTransfer.java delete mode 100644 classes/ch/loway/oss/ari4java/generated/BridgeBlindTransfer.java delete mode 100644 classes/ch/loway/oss/ari4java/generated/BridgeCreated.java delete mode 100644 classes/ch/loway/oss/ari4java/generated/BridgeDestroyed.java delete mode 100644 classes/ch/loway/oss/ari4java/generated/BridgeMerged.java delete mode 100644 classes/ch/loway/oss/ari4java/generated/BridgeVideoSourceChanged.java delete mode 100644 classes/ch/loway/oss/ari4java/generated/BuildInfo.java delete mode 100644 classes/ch/loway/oss/ari4java/generated/CallerID.java delete mode 100644 classes/ch/loway/oss/ari4java/generated/Channel.java delete mode 100644 classes/ch/loway/oss/ari4java/generated/ChannelCallerId.java delete mode 100644 classes/ch/loway/oss/ari4java/generated/ChannelConnectedLine.java delete mode 100644 classes/ch/loway/oss/ari4java/generated/ChannelCreated.java delete mode 100644 classes/ch/loway/oss/ari4java/generated/ChannelDestroyed.java delete mode 100644 classes/ch/loway/oss/ari4java/generated/ChannelDialplan.java delete mode 100644 classes/ch/loway/oss/ari4java/generated/ChannelDtmfReceived.java delete mode 100644 classes/ch/loway/oss/ari4java/generated/ChannelEnteredBridge.java delete mode 100644 classes/ch/loway/oss/ari4java/generated/ChannelHangupRequest.java delete mode 100644 classes/ch/loway/oss/ari4java/generated/ChannelHold.java delete mode 100644 classes/ch/loway/oss/ari4java/generated/ChannelLeftBridge.java delete mode 100644 classes/ch/loway/oss/ari4java/generated/ChannelStateChange.java delete mode 100644 classes/ch/loway/oss/ari4java/generated/ChannelTalkingFinished.java delete mode 100644 classes/ch/loway/oss/ari4java/generated/ChannelTalkingStarted.java delete mode 100644 classes/ch/loway/oss/ari4java/generated/ChannelUnhold.java delete mode 100644 classes/ch/loway/oss/ari4java/generated/ChannelUserevent.java delete mode 100644 classes/ch/loway/oss/ari4java/generated/ChannelVarset.java delete mode 100644 classes/ch/loway/oss/ari4java/generated/ConfigInfo.java delete mode 100644 classes/ch/loway/oss/ari4java/generated/ConfigTuple.java delete mode 100644 classes/ch/loway/oss/ari4java/generated/ContactInfo.java delete mode 100644 classes/ch/loway/oss/ari4java/generated/ContactStatusChange.java delete mode 100644 classes/ch/loway/oss/ari4java/generated/DeviceState.java delete mode 100644 classes/ch/loway/oss/ari4java/generated/DeviceStateChanged.java delete mode 100644 classes/ch/loway/oss/ari4java/generated/Dial.java delete mode 100644 classes/ch/loway/oss/ari4java/generated/Dialed.java delete mode 100644 classes/ch/loway/oss/ari4java/generated/DialplanCEP.java delete mode 100644 classes/ch/loway/oss/ari4java/generated/Endpoint.java delete mode 100644 classes/ch/loway/oss/ari4java/generated/EndpointStateChange.java delete mode 100644 classes/ch/loway/oss/ari4java/generated/Event.java delete mode 100644 classes/ch/loway/oss/ari4java/generated/FormatLangPair.java delete mode 100644 classes/ch/loway/oss/ari4java/generated/LiveRecording.java delete mode 100644 classes/ch/loway/oss/ari4java/generated/LogChannel.java delete mode 100644 classes/ch/loway/oss/ari4java/generated/Message.java delete mode 100644 classes/ch/loway/oss/ari4java/generated/MissingParams.java delete mode 100644 classes/ch/loway/oss/ari4java/generated/Module.java delete mode 100644 classes/ch/loway/oss/ari4java/generated/Peer.java delete mode 100644 classes/ch/loway/oss/ari4java/generated/PeerStatusChange.java delete mode 100644 classes/ch/loway/oss/ari4java/generated/Playback.java delete mode 100644 classes/ch/loway/oss/ari4java/generated/PlaybackContinuing.java delete mode 100644 classes/ch/loway/oss/ari4java/generated/PlaybackFinished.java delete mode 100644 classes/ch/loway/oss/ari4java/generated/PlaybackStarted.java delete mode 100644 classes/ch/loway/oss/ari4java/generated/RecordingFailed.java delete mode 100644 classes/ch/loway/oss/ari4java/generated/RecordingFinished.java delete mode 100644 classes/ch/loway/oss/ari4java/generated/RecordingStarted.java delete mode 100644 classes/ch/loway/oss/ari4java/generated/SetId.java delete mode 100644 classes/ch/loway/oss/ari4java/generated/Sound.java delete mode 100644 classes/ch/loway/oss/ari4java/generated/StasisEnd.java delete mode 100644 classes/ch/loway/oss/ari4java/generated/StasisStart.java delete mode 100644 classes/ch/loway/oss/ari4java/generated/StatusInfo.java delete mode 100644 classes/ch/loway/oss/ari4java/generated/StoredRecording.java delete mode 100644 classes/ch/loway/oss/ari4java/generated/SystemInfo.java delete mode 100644 classes/ch/loway/oss/ari4java/generated/TextMessage.java delete mode 100644 classes/ch/loway/oss/ari4java/generated/TextMessageReceived.java delete mode 100644 classes/ch/loway/oss/ari4java/generated/TextMessageVariable.java delete mode 100644 classes/ch/loway/oss/ari4java/generated/Variable.java delete mode 100644 classes/ch/loway/oss/ari4java/generated/ari_0_0_1/AriBuilder_impl_ari_0_0_1.java delete mode 100644 classes/ch/loway/oss/ari4java/generated/ari_0_0_1/ClassTranslator_impl_ari_0_0_1.java delete mode 100644 classes/ch/loway/oss/ari4java/generated/ari_0_0_1/actions/ActionApplications_impl_ari_0_0_1.java delete mode 100644 classes/ch/loway/oss/ari4java/generated/ari_0_0_1/actions/ActionAsterisk_impl_ari_0_0_1.java delete mode 100644 classes/ch/loway/oss/ari4java/generated/ari_0_0_1/actions/ActionBridges_impl_ari_0_0_1.java delete mode 100644 classes/ch/loway/oss/ari4java/generated/ari_0_0_1/actions/ActionChannels_impl_ari_0_0_1.java delete mode 100644 classes/ch/loway/oss/ari4java/generated/ari_0_0_1/actions/ActionDeviceStates_impl_ari_0_0_1.java delete mode 100644 classes/ch/loway/oss/ari4java/generated/ari_0_0_1/actions/ActionEndpoints_impl_ari_0_0_1.java delete mode 100644 classes/ch/loway/oss/ari4java/generated/ari_0_0_1/actions/ActionEvents_impl_ari_0_0_1.java delete mode 100644 classes/ch/loway/oss/ari4java/generated/ari_0_0_1/actions/ActionPlaybacks_impl_ari_0_0_1.java delete mode 100644 classes/ch/loway/oss/ari4java/generated/ari_0_0_1/actions/ActionRecordings_impl_ari_0_0_1.java delete mode 100644 classes/ch/loway/oss/ari4java/generated/ari_0_0_1/actions/ActionSounds_impl_ari_0_0_1.java delete mode 100644 classes/ch/loway/oss/ari4java/generated/ari_0_0_1/models/ApplicationReplaced_impl_ari_0_0_1.java delete mode 100644 classes/ch/loway/oss/ari4java/generated/ari_0_0_1/models/Application_impl_ari_0_0_1.java delete mode 100644 classes/ch/loway/oss/ari4java/generated/ari_0_0_1/models/AsteriskInfo_impl_ari_0_0_1.java delete mode 100644 classes/ch/loway/oss/ari4java/generated/ari_0_0_1/models/BridgeCreated_impl_ari_0_0_1.java delete mode 100644 classes/ch/loway/oss/ari4java/generated/ari_0_0_1/models/BridgeDestroyed_impl_ari_0_0_1.java delete mode 100644 classes/ch/loway/oss/ari4java/generated/ari_0_0_1/models/BridgeMerged_impl_ari_0_0_1.java delete mode 100644 classes/ch/loway/oss/ari4java/generated/ari_0_0_1/models/Bridge_impl_ari_0_0_1.java delete mode 100644 classes/ch/loway/oss/ari4java/generated/ari_0_0_1/models/BuildInfo_impl_ari_0_0_1.java delete mode 100644 classes/ch/loway/oss/ari4java/generated/ari_0_0_1/models/CallerID_impl_ari_0_0_1.java delete mode 100644 classes/ch/loway/oss/ari4java/generated/ari_0_0_1/models/ChannelCallerId_impl_ari_0_0_1.java delete mode 100644 classes/ch/loway/oss/ari4java/generated/ari_0_0_1/models/ChannelCreated_impl_ari_0_0_1.java delete mode 100644 classes/ch/loway/oss/ari4java/generated/ari_0_0_1/models/ChannelDestroyed_impl_ari_0_0_1.java delete mode 100644 classes/ch/loway/oss/ari4java/generated/ari_0_0_1/models/ChannelDialplan_impl_ari_0_0_1.java delete mode 100644 classes/ch/loway/oss/ari4java/generated/ari_0_0_1/models/ChannelDtmfReceived_impl_ari_0_0_1.java delete mode 100644 classes/ch/loway/oss/ari4java/generated/ari_0_0_1/models/ChannelEnteredBridge_impl_ari_0_0_1.java delete mode 100644 classes/ch/loway/oss/ari4java/generated/ari_0_0_1/models/ChannelHangupRequest_impl_ari_0_0_1.java delete mode 100644 classes/ch/loway/oss/ari4java/generated/ari_0_0_1/models/ChannelLeftBridge_impl_ari_0_0_1.java delete mode 100644 classes/ch/loway/oss/ari4java/generated/ari_0_0_1/models/ChannelStateChange_impl_ari_0_0_1.java delete mode 100644 classes/ch/loway/oss/ari4java/generated/ari_0_0_1/models/ChannelUserevent_impl_ari_0_0_1.java delete mode 100644 classes/ch/loway/oss/ari4java/generated/ari_0_0_1/models/ChannelVarset_impl_ari_0_0_1.java delete mode 100644 classes/ch/loway/oss/ari4java/generated/ari_0_0_1/models/Channel_impl_ari_0_0_1.java delete mode 100644 classes/ch/loway/oss/ari4java/generated/ari_0_0_1/models/ConfigInfo_impl_ari_0_0_1.java delete mode 100644 classes/ch/loway/oss/ari4java/generated/ari_0_0_1/models/DeviceStateChanged_impl_ari_0_0_1.java delete mode 100644 classes/ch/loway/oss/ari4java/generated/ari_0_0_1/models/DeviceState_impl_ari_0_0_1.java delete mode 100644 classes/ch/loway/oss/ari4java/generated/ari_0_0_1/models/Dialed_impl_ari_0_0_1.java delete mode 100644 classes/ch/loway/oss/ari4java/generated/ari_0_0_1/models/DialplanCEP_impl_ari_0_0_1.java delete mode 100644 classes/ch/loway/oss/ari4java/generated/ari_0_0_1/models/EndpointStateChange_impl_ari_0_0_1.java delete mode 100644 classes/ch/loway/oss/ari4java/generated/ari_0_0_1/models/Endpoint_impl_ari_0_0_1.java delete mode 100644 classes/ch/loway/oss/ari4java/generated/ari_0_0_1/models/Event_impl_ari_0_0_1.java delete mode 100644 classes/ch/loway/oss/ari4java/generated/ari_0_0_1/models/FormatLangPair_impl_ari_0_0_1.java delete mode 100644 classes/ch/loway/oss/ari4java/generated/ari_0_0_1/models/LiveRecording_impl_ari_0_0_1.java delete mode 100644 classes/ch/loway/oss/ari4java/generated/ari_0_0_1/models/Message_impl_ari_0_0_1.java delete mode 100644 classes/ch/loway/oss/ari4java/generated/ari_0_0_1/models/MissingParams_impl_ari_0_0_1.java delete mode 100644 classes/ch/loway/oss/ari4java/generated/ari_0_0_1/models/PlaybackFinished_impl_ari_0_0_1.java delete mode 100644 classes/ch/loway/oss/ari4java/generated/ari_0_0_1/models/PlaybackStarted_impl_ari_0_0_1.java delete mode 100644 classes/ch/loway/oss/ari4java/generated/ari_0_0_1/models/Playback_impl_ari_0_0_1.java delete mode 100644 classes/ch/loway/oss/ari4java/generated/ari_0_0_1/models/RecordingFailed_impl_ari_0_0_1.java delete mode 100644 classes/ch/loway/oss/ari4java/generated/ari_0_0_1/models/RecordingFinished_impl_ari_0_0_1.java delete mode 100644 classes/ch/loway/oss/ari4java/generated/ari_0_0_1/models/RecordingStarted_impl_ari_0_0_1.java delete mode 100644 classes/ch/loway/oss/ari4java/generated/ari_0_0_1/models/SetId_impl_ari_0_0_1.java delete mode 100644 classes/ch/loway/oss/ari4java/generated/ari_0_0_1/models/Sound_impl_ari_0_0_1.java delete mode 100644 classes/ch/loway/oss/ari4java/generated/ari_0_0_1/models/StasisEnd_impl_ari_0_0_1.java delete mode 100644 classes/ch/loway/oss/ari4java/generated/ari_0_0_1/models/StasisStart_impl_ari_0_0_1.java delete mode 100644 classes/ch/loway/oss/ari4java/generated/ari_0_0_1/models/StatusInfo_impl_ari_0_0_1.java delete mode 100644 classes/ch/loway/oss/ari4java/generated/ari_0_0_1/models/StoredRecording_impl_ari_0_0_1.java delete mode 100644 classes/ch/loway/oss/ari4java/generated/ari_0_0_1/models/SystemInfo_impl_ari_0_0_1.java delete mode 100644 classes/ch/loway/oss/ari4java/generated/ari_0_0_1/models/Variable_impl_ari_0_0_1.java delete mode 100644 classes/ch/loway/oss/ari4java/generated/ari_1_0_0/AriBuilder_impl_ari_1_0_0.java delete mode 100644 classes/ch/loway/oss/ari4java/generated/ari_1_0_0/ClassTranslator_impl_ari_1_0_0.java delete mode 100644 classes/ch/loway/oss/ari4java/generated/ari_1_0_0/actions/ActionApplications_impl_ari_1_0_0.java delete mode 100644 classes/ch/loway/oss/ari4java/generated/ari_1_0_0/actions/ActionAsterisk_impl_ari_1_0_0.java delete mode 100644 classes/ch/loway/oss/ari4java/generated/ari_1_0_0/actions/ActionBridges_impl_ari_1_0_0.java delete mode 100644 classes/ch/loway/oss/ari4java/generated/ari_1_0_0/actions/ActionChannels_impl_ari_1_0_0.java delete mode 100644 classes/ch/loway/oss/ari4java/generated/ari_1_0_0/actions/ActionDeviceStates_impl_ari_1_0_0.java delete mode 100644 classes/ch/loway/oss/ari4java/generated/ari_1_0_0/actions/ActionEndpoints_impl_ari_1_0_0.java delete mode 100644 classes/ch/loway/oss/ari4java/generated/ari_1_0_0/actions/ActionEvents_impl_ari_1_0_0.java delete mode 100644 classes/ch/loway/oss/ari4java/generated/ari_1_0_0/actions/ActionPlaybacks_impl_ari_1_0_0.java delete mode 100644 classes/ch/loway/oss/ari4java/generated/ari_1_0_0/actions/ActionRecordings_impl_ari_1_0_0.java delete mode 100644 classes/ch/loway/oss/ari4java/generated/ari_1_0_0/actions/ActionSounds_impl_ari_1_0_0.java delete mode 100644 classes/ch/loway/oss/ari4java/generated/ari_1_0_0/models/ApplicationReplaced_impl_ari_1_0_0.java delete mode 100644 classes/ch/loway/oss/ari4java/generated/ari_1_0_0/models/Application_impl_ari_1_0_0.java delete mode 100644 classes/ch/loway/oss/ari4java/generated/ari_1_0_0/models/AsteriskInfo_impl_ari_1_0_0.java delete mode 100644 classes/ch/loway/oss/ari4java/generated/ari_1_0_0/models/BridgeCreated_impl_ari_1_0_0.java delete mode 100644 classes/ch/loway/oss/ari4java/generated/ari_1_0_0/models/BridgeDestroyed_impl_ari_1_0_0.java delete mode 100644 classes/ch/loway/oss/ari4java/generated/ari_1_0_0/models/BridgeMerged_impl_ari_1_0_0.java delete mode 100644 classes/ch/loway/oss/ari4java/generated/ari_1_0_0/models/Bridge_impl_ari_1_0_0.java delete mode 100644 classes/ch/loway/oss/ari4java/generated/ari_1_0_0/models/BuildInfo_impl_ari_1_0_0.java delete mode 100644 classes/ch/loway/oss/ari4java/generated/ari_1_0_0/models/CallerID_impl_ari_1_0_0.java delete mode 100644 classes/ch/loway/oss/ari4java/generated/ari_1_0_0/models/ChannelCallerId_impl_ari_1_0_0.java delete mode 100644 classes/ch/loway/oss/ari4java/generated/ari_1_0_0/models/ChannelCreated_impl_ari_1_0_0.java delete mode 100644 classes/ch/loway/oss/ari4java/generated/ari_1_0_0/models/ChannelDestroyed_impl_ari_1_0_0.java delete mode 100644 classes/ch/loway/oss/ari4java/generated/ari_1_0_0/models/ChannelDialplan_impl_ari_1_0_0.java delete mode 100644 classes/ch/loway/oss/ari4java/generated/ari_1_0_0/models/ChannelDtmfReceived_impl_ari_1_0_0.java delete mode 100644 classes/ch/loway/oss/ari4java/generated/ari_1_0_0/models/ChannelEnteredBridge_impl_ari_1_0_0.java delete mode 100644 classes/ch/loway/oss/ari4java/generated/ari_1_0_0/models/ChannelHangupRequest_impl_ari_1_0_0.java delete mode 100644 classes/ch/loway/oss/ari4java/generated/ari_1_0_0/models/ChannelLeftBridge_impl_ari_1_0_0.java delete mode 100644 classes/ch/loway/oss/ari4java/generated/ari_1_0_0/models/ChannelStateChange_impl_ari_1_0_0.java delete mode 100644 classes/ch/loway/oss/ari4java/generated/ari_1_0_0/models/ChannelUserevent_impl_ari_1_0_0.java delete mode 100644 classes/ch/loway/oss/ari4java/generated/ari_1_0_0/models/ChannelVarset_impl_ari_1_0_0.java delete mode 100644 classes/ch/loway/oss/ari4java/generated/ari_1_0_0/models/Channel_impl_ari_1_0_0.java delete mode 100644 classes/ch/loway/oss/ari4java/generated/ari_1_0_0/models/ConfigInfo_impl_ari_1_0_0.java delete mode 100644 classes/ch/loway/oss/ari4java/generated/ari_1_0_0/models/DeviceStateChanged_impl_ari_1_0_0.java delete mode 100644 classes/ch/loway/oss/ari4java/generated/ari_1_0_0/models/DeviceState_impl_ari_1_0_0.java delete mode 100644 classes/ch/loway/oss/ari4java/generated/ari_1_0_0/models/Dial_impl_ari_1_0_0.java delete mode 100644 classes/ch/loway/oss/ari4java/generated/ari_1_0_0/models/Dialed_impl_ari_1_0_0.java delete mode 100644 classes/ch/loway/oss/ari4java/generated/ari_1_0_0/models/DialplanCEP_impl_ari_1_0_0.java delete mode 100644 classes/ch/loway/oss/ari4java/generated/ari_1_0_0/models/EndpointStateChange_impl_ari_1_0_0.java delete mode 100644 classes/ch/loway/oss/ari4java/generated/ari_1_0_0/models/Endpoint_impl_ari_1_0_0.java delete mode 100644 classes/ch/loway/oss/ari4java/generated/ari_1_0_0/models/Event_impl_ari_1_0_0.java delete mode 100644 classes/ch/loway/oss/ari4java/generated/ari_1_0_0/models/FormatLangPair_impl_ari_1_0_0.java delete mode 100644 classes/ch/loway/oss/ari4java/generated/ari_1_0_0/models/LiveRecording_impl_ari_1_0_0.java delete mode 100644 classes/ch/loway/oss/ari4java/generated/ari_1_0_0/models/Message_impl_ari_1_0_0.java delete mode 100644 classes/ch/loway/oss/ari4java/generated/ari_1_0_0/models/MissingParams_impl_ari_1_0_0.java delete mode 100644 classes/ch/loway/oss/ari4java/generated/ari_1_0_0/models/PlaybackFinished_impl_ari_1_0_0.java delete mode 100644 classes/ch/loway/oss/ari4java/generated/ari_1_0_0/models/PlaybackStarted_impl_ari_1_0_0.java delete mode 100644 classes/ch/loway/oss/ari4java/generated/ari_1_0_0/models/Playback_impl_ari_1_0_0.java delete mode 100644 classes/ch/loway/oss/ari4java/generated/ari_1_0_0/models/RecordingFailed_impl_ari_1_0_0.java delete mode 100644 classes/ch/loway/oss/ari4java/generated/ari_1_0_0/models/RecordingFinished_impl_ari_1_0_0.java delete mode 100644 classes/ch/loway/oss/ari4java/generated/ari_1_0_0/models/RecordingStarted_impl_ari_1_0_0.java delete mode 100644 classes/ch/loway/oss/ari4java/generated/ari_1_0_0/models/SetId_impl_ari_1_0_0.java delete mode 100644 classes/ch/loway/oss/ari4java/generated/ari_1_0_0/models/Sound_impl_ari_1_0_0.java delete mode 100644 classes/ch/loway/oss/ari4java/generated/ari_1_0_0/models/StasisEnd_impl_ari_1_0_0.java delete mode 100644 classes/ch/loway/oss/ari4java/generated/ari_1_0_0/models/StasisStart_impl_ari_1_0_0.java delete mode 100644 classes/ch/loway/oss/ari4java/generated/ari_1_0_0/models/StatusInfo_impl_ari_1_0_0.java delete mode 100644 classes/ch/loway/oss/ari4java/generated/ari_1_0_0/models/StoredRecording_impl_ari_1_0_0.java delete mode 100644 classes/ch/loway/oss/ari4java/generated/ari_1_0_0/models/SystemInfo_impl_ari_1_0_0.java delete mode 100644 classes/ch/loway/oss/ari4java/generated/ari_1_0_0/models/Variable_impl_ari_1_0_0.java delete mode 100644 classes/ch/loway/oss/ari4java/generated/ari_1_10_0/AriBuilder_impl_ari_1_10_0.java delete mode 100644 classes/ch/loway/oss/ari4java/generated/ari_1_10_0/ClassTranslator_impl_ari_1_10_0.java delete mode 100644 classes/ch/loway/oss/ari4java/generated/ari_1_10_0/actions/ActionApplications_impl_ari_1_10_0.java delete mode 100644 classes/ch/loway/oss/ari4java/generated/ari_1_10_0/actions/ActionAsterisk_impl_ari_1_10_0.java delete mode 100644 classes/ch/loway/oss/ari4java/generated/ari_1_10_0/actions/ActionBridges_impl_ari_1_10_0.java delete mode 100644 classes/ch/loway/oss/ari4java/generated/ari_1_10_0/actions/ActionChannels_impl_ari_1_10_0.java delete mode 100644 classes/ch/loway/oss/ari4java/generated/ari_1_10_0/actions/ActionDeviceStates_impl_ari_1_10_0.java delete mode 100644 classes/ch/loway/oss/ari4java/generated/ari_1_10_0/actions/ActionEndpoints_impl_ari_1_10_0.java delete mode 100644 classes/ch/loway/oss/ari4java/generated/ari_1_10_0/actions/ActionEvents_impl_ari_1_10_0.java delete mode 100644 classes/ch/loway/oss/ari4java/generated/ari_1_10_0/actions/ActionPlaybacks_impl_ari_1_10_0.java delete mode 100644 classes/ch/loway/oss/ari4java/generated/ari_1_10_0/actions/ActionRecordings_impl_ari_1_10_0.java delete mode 100644 classes/ch/loway/oss/ari4java/generated/ari_1_10_0/actions/ActionSounds_impl_ari_1_10_0.java delete mode 100644 classes/ch/loway/oss/ari4java/generated/ari_1_10_0/models/ApplicationReplaced_impl_ari_1_10_0.java delete mode 100644 classes/ch/loway/oss/ari4java/generated/ari_1_10_0/models/Application_impl_ari_1_10_0.java delete mode 100644 classes/ch/loway/oss/ari4java/generated/ari_1_10_0/models/AsteriskInfo_impl_ari_1_10_0.java delete mode 100644 classes/ch/loway/oss/ari4java/generated/ari_1_10_0/models/BridgeAttendedTransfer_impl_ari_1_10_0.java delete mode 100644 classes/ch/loway/oss/ari4java/generated/ari_1_10_0/models/BridgeBlindTransfer_impl_ari_1_10_0.java delete mode 100644 classes/ch/loway/oss/ari4java/generated/ari_1_10_0/models/BridgeCreated_impl_ari_1_10_0.java delete mode 100644 classes/ch/loway/oss/ari4java/generated/ari_1_10_0/models/BridgeDestroyed_impl_ari_1_10_0.java delete mode 100644 classes/ch/loway/oss/ari4java/generated/ari_1_10_0/models/BridgeMerged_impl_ari_1_10_0.java delete mode 100644 classes/ch/loway/oss/ari4java/generated/ari_1_10_0/models/Bridge_impl_ari_1_10_0.java delete mode 100644 classes/ch/loway/oss/ari4java/generated/ari_1_10_0/models/BuildInfo_impl_ari_1_10_0.java delete mode 100644 classes/ch/loway/oss/ari4java/generated/ari_1_10_0/models/CallerID_impl_ari_1_10_0.java delete mode 100644 classes/ch/loway/oss/ari4java/generated/ari_1_10_0/models/ChannelCallerId_impl_ari_1_10_0.java delete mode 100644 classes/ch/loway/oss/ari4java/generated/ari_1_10_0/models/ChannelConnectedLine_impl_ari_1_10_0.java delete mode 100644 classes/ch/loway/oss/ari4java/generated/ari_1_10_0/models/ChannelCreated_impl_ari_1_10_0.java delete mode 100644 classes/ch/loway/oss/ari4java/generated/ari_1_10_0/models/ChannelDestroyed_impl_ari_1_10_0.java delete mode 100644 classes/ch/loway/oss/ari4java/generated/ari_1_10_0/models/ChannelDialplan_impl_ari_1_10_0.java delete mode 100644 classes/ch/loway/oss/ari4java/generated/ari_1_10_0/models/ChannelDtmfReceived_impl_ari_1_10_0.java delete mode 100644 classes/ch/loway/oss/ari4java/generated/ari_1_10_0/models/ChannelEnteredBridge_impl_ari_1_10_0.java delete mode 100644 classes/ch/loway/oss/ari4java/generated/ari_1_10_0/models/ChannelHangupRequest_impl_ari_1_10_0.java delete mode 100644 classes/ch/loway/oss/ari4java/generated/ari_1_10_0/models/ChannelHold_impl_ari_1_10_0.java delete mode 100644 classes/ch/loway/oss/ari4java/generated/ari_1_10_0/models/ChannelLeftBridge_impl_ari_1_10_0.java delete mode 100644 classes/ch/loway/oss/ari4java/generated/ari_1_10_0/models/ChannelStateChange_impl_ari_1_10_0.java delete mode 100644 classes/ch/loway/oss/ari4java/generated/ari_1_10_0/models/ChannelTalkingFinished_impl_ari_1_10_0.java delete mode 100644 classes/ch/loway/oss/ari4java/generated/ari_1_10_0/models/ChannelTalkingStarted_impl_ari_1_10_0.java delete mode 100644 classes/ch/loway/oss/ari4java/generated/ari_1_10_0/models/ChannelUnhold_impl_ari_1_10_0.java delete mode 100644 classes/ch/loway/oss/ari4java/generated/ari_1_10_0/models/ChannelUserevent_impl_ari_1_10_0.java delete mode 100644 classes/ch/loway/oss/ari4java/generated/ari_1_10_0/models/ChannelVarset_impl_ari_1_10_0.java delete mode 100644 classes/ch/loway/oss/ari4java/generated/ari_1_10_0/models/Channel_impl_ari_1_10_0.java delete mode 100644 classes/ch/loway/oss/ari4java/generated/ari_1_10_0/models/ConfigInfo_impl_ari_1_10_0.java delete mode 100644 classes/ch/loway/oss/ari4java/generated/ari_1_10_0/models/ConfigTuple_impl_ari_1_10_0.java delete mode 100644 classes/ch/loway/oss/ari4java/generated/ari_1_10_0/models/ContactInfo_impl_ari_1_10_0.java delete mode 100644 classes/ch/loway/oss/ari4java/generated/ari_1_10_0/models/ContactStatusChange_impl_ari_1_10_0.java delete mode 100644 classes/ch/loway/oss/ari4java/generated/ari_1_10_0/models/DeviceStateChanged_impl_ari_1_10_0.java delete mode 100644 classes/ch/loway/oss/ari4java/generated/ari_1_10_0/models/DeviceState_impl_ari_1_10_0.java delete mode 100644 classes/ch/loway/oss/ari4java/generated/ari_1_10_0/models/Dial_impl_ari_1_10_0.java delete mode 100644 classes/ch/loway/oss/ari4java/generated/ari_1_10_0/models/Dialed_impl_ari_1_10_0.java delete mode 100644 classes/ch/loway/oss/ari4java/generated/ari_1_10_0/models/DialplanCEP_impl_ari_1_10_0.java delete mode 100644 classes/ch/loway/oss/ari4java/generated/ari_1_10_0/models/EndpointStateChange_impl_ari_1_10_0.java delete mode 100644 classes/ch/loway/oss/ari4java/generated/ari_1_10_0/models/Endpoint_impl_ari_1_10_0.java delete mode 100644 classes/ch/loway/oss/ari4java/generated/ari_1_10_0/models/Event_impl_ari_1_10_0.java delete mode 100644 classes/ch/loway/oss/ari4java/generated/ari_1_10_0/models/FormatLangPair_impl_ari_1_10_0.java delete mode 100644 classes/ch/loway/oss/ari4java/generated/ari_1_10_0/models/LiveRecording_impl_ari_1_10_0.java delete mode 100644 classes/ch/loway/oss/ari4java/generated/ari_1_10_0/models/LogChannel_impl_ari_1_10_0.java delete mode 100644 classes/ch/loway/oss/ari4java/generated/ari_1_10_0/models/Message_impl_ari_1_10_0.java delete mode 100644 classes/ch/loway/oss/ari4java/generated/ari_1_10_0/models/MissingParams_impl_ari_1_10_0.java delete mode 100644 classes/ch/loway/oss/ari4java/generated/ari_1_10_0/models/Module_impl_ari_1_10_0.java delete mode 100644 classes/ch/loway/oss/ari4java/generated/ari_1_10_0/models/PeerStatusChange_impl_ari_1_10_0.java delete mode 100644 classes/ch/loway/oss/ari4java/generated/ari_1_10_0/models/Peer_impl_ari_1_10_0.java delete mode 100644 classes/ch/loway/oss/ari4java/generated/ari_1_10_0/models/PlaybackContinuing_impl_ari_1_10_0.java delete mode 100644 classes/ch/loway/oss/ari4java/generated/ari_1_10_0/models/PlaybackFinished_impl_ari_1_10_0.java delete mode 100644 classes/ch/loway/oss/ari4java/generated/ari_1_10_0/models/PlaybackStarted_impl_ari_1_10_0.java delete mode 100644 classes/ch/loway/oss/ari4java/generated/ari_1_10_0/models/Playback_impl_ari_1_10_0.java delete mode 100644 classes/ch/loway/oss/ari4java/generated/ari_1_10_0/models/RecordingFailed_impl_ari_1_10_0.java delete mode 100644 classes/ch/loway/oss/ari4java/generated/ari_1_10_0/models/RecordingFinished_impl_ari_1_10_0.java delete mode 100644 classes/ch/loway/oss/ari4java/generated/ari_1_10_0/models/RecordingStarted_impl_ari_1_10_0.java delete mode 100644 classes/ch/loway/oss/ari4java/generated/ari_1_10_0/models/SetId_impl_ari_1_10_0.java delete mode 100644 classes/ch/loway/oss/ari4java/generated/ari_1_10_0/models/Sound_impl_ari_1_10_0.java delete mode 100644 classes/ch/loway/oss/ari4java/generated/ari_1_10_0/models/StasisEnd_impl_ari_1_10_0.java delete mode 100644 classes/ch/loway/oss/ari4java/generated/ari_1_10_0/models/StasisStart_impl_ari_1_10_0.java delete mode 100644 classes/ch/loway/oss/ari4java/generated/ari_1_10_0/models/StatusInfo_impl_ari_1_10_0.java delete mode 100644 classes/ch/loway/oss/ari4java/generated/ari_1_10_0/models/StoredRecording_impl_ari_1_10_0.java delete mode 100644 classes/ch/loway/oss/ari4java/generated/ari_1_10_0/models/SystemInfo_impl_ari_1_10_0.java delete mode 100644 classes/ch/loway/oss/ari4java/generated/ari_1_10_0/models/TextMessageReceived_impl_ari_1_10_0.java delete mode 100644 classes/ch/loway/oss/ari4java/generated/ari_1_10_0/models/TextMessageVariable_impl_ari_1_10_0.java delete mode 100644 classes/ch/loway/oss/ari4java/generated/ari_1_10_0/models/TextMessage_impl_ari_1_10_0.java delete mode 100644 classes/ch/loway/oss/ari4java/generated/ari_1_10_0/models/Variable_impl_ari_1_10_0.java delete mode 100644 classes/ch/loway/oss/ari4java/generated/ari_1_5_0/AriBuilder_impl_ari_1_5_0.java delete mode 100644 classes/ch/loway/oss/ari4java/generated/ari_1_5_0/ClassTranslator_impl_ari_1_5_0.java delete mode 100644 classes/ch/loway/oss/ari4java/generated/ari_1_5_0/actions/ActionApplications_impl_ari_1_5_0.java delete mode 100644 classes/ch/loway/oss/ari4java/generated/ari_1_5_0/actions/ActionAsterisk_impl_ari_1_5_0.java delete mode 100644 classes/ch/loway/oss/ari4java/generated/ari_1_5_0/actions/ActionBridges_impl_ari_1_5_0.java delete mode 100644 classes/ch/loway/oss/ari4java/generated/ari_1_5_0/actions/ActionChannels_impl_ari_1_5_0.java delete mode 100644 classes/ch/loway/oss/ari4java/generated/ari_1_5_0/actions/ActionDeviceStates_impl_ari_1_5_0.java delete mode 100644 classes/ch/loway/oss/ari4java/generated/ari_1_5_0/actions/ActionEndpoints_impl_ari_1_5_0.java delete mode 100644 classes/ch/loway/oss/ari4java/generated/ari_1_5_0/actions/ActionEvents_impl_ari_1_5_0.java delete mode 100644 classes/ch/loway/oss/ari4java/generated/ari_1_5_0/actions/ActionPlaybacks_impl_ari_1_5_0.java delete mode 100644 classes/ch/loway/oss/ari4java/generated/ari_1_5_0/actions/ActionRecordings_impl_ari_1_5_0.java delete mode 100644 classes/ch/loway/oss/ari4java/generated/ari_1_5_0/actions/ActionSounds_impl_ari_1_5_0.java delete mode 100644 classes/ch/loway/oss/ari4java/generated/ari_1_5_0/models/ApplicationReplaced_impl_ari_1_5_0.java delete mode 100644 classes/ch/loway/oss/ari4java/generated/ari_1_5_0/models/Application_impl_ari_1_5_0.java delete mode 100644 classes/ch/loway/oss/ari4java/generated/ari_1_5_0/models/AsteriskInfo_impl_ari_1_5_0.java delete mode 100644 classes/ch/loway/oss/ari4java/generated/ari_1_5_0/models/BridgeAttendedTransfer_impl_ari_1_5_0.java delete mode 100644 classes/ch/loway/oss/ari4java/generated/ari_1_5_0/models/BridgeBlindTransfer_impl_ari_1_5_0.java delete mode 100644 classes/ch/loway/oss/ari4java/generated/ari_1_5_0/models/BridgeCreated_impl_ari_1_5_0.java delete mode 100644 classes/ch/loway/oss/ari4java/generated/ari_1_5_0/models/BridgeDestroyed_impl_ari_1_5_0.java delete mode 100644 classes/ch/loway/oss/ari4java/generated/ari_1_5_0/models/BridgeMerged_impl_ari_1_5_0.java delete mode 100644 classes/ch/loway/oss/ari4java/generated/ari_1_5_0/models/Bridge_impl_ari_1_5_0.java delete mode 100644 classes/ch/loway/oss/ari4java/generated/ari_1_5_0/models/BuildInfo_impl_ari_1_5_0.java delete mode 100644 classes/ch/loway/oss/ari4java/generated/ari_1_5_0/models/CallerID_impl_ari_1_5_0.java delete mode 100644 classes/ch/loway/oss/ari4java/generated/ari_1_5_0/models/ChannelCallerId_impl_ari_1_5_0.java delete mode 100644 classes/ch/loway/oss/ari4java/generated/ari_1_5_0/models/ChannelCreated_impl_ari_1_5_0.java delete mode 100644 classes/ch/loway/oss/ari4java/generated/ari_1_5_0/models/ChannelDestroyed_impl_ari_1_5_0.java delete mode 100644 classes/ch/loway/oss/ari4java/generated/ari_1_5_0/models/ChannelDialplan_impl_ari_1_5_0.java delete mode 100644 classes/ch/loway/oss/ari4java/generated/ari_1_5_0/models/ChannelDtmfReceived_impl_ari_1_5_0.java delete mode 100644 classes/ch/loway/oss/ari4java/generated/ari_1_5_0/models/ChannelEnteredBridge_impl_ari_1_5_0.java delete mode 100644 classes/ch/loway/oss/ari4java/generated/ari_1_5_0/models/ChannelHangupRequest_impl_ari_1_5_0.java delete mode 100644 classes/ch/loway/oss/ari4java/generated/ari_1_5_0/models/ChannelLeftBridge_impl_ari_1_5_0.java delete mode 100644 classes/ch/loway/oss/ari4java/generated/ari_1_5_0/models/ChannelStateChange_impl_ari_1_5_0.java delete mode 100644 classes/ch/loway/oss/ari4java/generated/ari_1_5_0/models/ChannelTalkingFinished_impl_ari_1_5_0.java delete mode 100644 classes/ch/loway/oss/ari4java/generated/ari_1_5_0/models/ChannelTalkingStarted_impl_ari_1_5_0.java delete mode 100644 classes/ch/loway/oss/ari4java/generated/ari_1_5_0/models/ChannelUserevent_impl_ari_1_5_0.java delete mode 100644 classes/ch/loway/oss/ari4java/generated/ari_1_5_0/models/ChannelVarset_impl_ari_1_5_0.java delete mode 100644 classes/ch/loway/oss/ari4java/generated/ari_1_5_0/models/Channel_impl_ari_1_5_0.java delete mode 100644 classes/ch/loway/oss/ari4java/generated/ari_1_5_0/models/ConfigInfo_impl_ari_1_5_0.java delete mode 100644 classes/ch/loway/oss/ari4java/generated/ari_1_5_0/models/DeviceStateChanged_impl_ari_1_5_0.java delete mode 100644 classes/ch/loway/oss/ari4java/generated/ari_1_5_0/models/DeviceState_impl_ari_1_5_0.java delete mode 100644 classes/ch/loway/oss/ari4java/generated/ari_1_5_0/models/Dial_impl_ari_1_5_0.java delete mode 100644 classes/ch/loway/oss/ari4java/generated/ari_1_5_0/models/Dialed_impl_ari_1_5_0.java delete mode 100644 classes/ch/loway/oss/ari4java/generated/ari_1_5_0/models/DialplanCEP_impl_ari_1_5_0.java delete mode 100644 classes/ch/loway/oss/ari4java/generated/ari_1_5_0/models/EndpointStateChange_impl_ari_1_5_0.java delete mode 100644 classes/ch/loway/oss/ari4java/generated/ari_1_5_0/models/Endpoint_impl_ari_1_5_0.java delete mode 100644 classes/ch/loway/oss/ari4java/generated/ari_1_5_0/models/Event_impl_ari_1_5_0.java delete mode 100644 classes/ch/loway/oss/ari4java/generated/ari_1_5_0/models/FormatLangPair_impl_ari_1_5_0.java delete mode 100644 classes/ch/loway/oss/ari4java/generated/ari_1_5_0/models/LiveRecording_impl_ari_1_5_0.java delete mode 100644 classes/ch/loway/oss/ari4java/generated/ari_1_5_0/models/Message_impl_ari_1_5_0.java delete mode 100644 classes/ch/loway/oss/ari4java/generated/ari_1_5_0/models/MissingParams_impl_ari_1_5_0.java delete mode 100644 classes/ch/loway/oss/ari4java/generated/ari_1_5_0/models/PlaybackFinished_impl_ari_1_5_0.java delete mode 100644 classes/ch/loway/oss/ari4java/generated/ari_1_5_0/models/PlaybackStarted_impl_ari_1_5_0.java delete mode 100644 classes/ch/loway/oss/ari4java/generated/ari_1_5_0/models/Playback_impl_ari_1_5_0.java delete mode 100644 classes/ch/loway/oss/ari4java/generated/ari_1_5_0/models/RecordingFailed_impl_ari_1_5_0.java delete mode 100644 classes/ch/loway/oss/ari4java/generated/ari_1_5_0/models/RecordingFinished_impl_ari_1_5_0.java delete mode 100644 classes/ch/loway/oss/ari4java/generated/ari_1_5_0/models/RecordingStarted_impl_ari_1_5_0.java delete mode 100644 classes/ch/loway/oss/ari4java/generated/ari_1_5_0/models/SetId_impl_ari_1_5_0.java delete mode 100644 classes/ch/loway/oss/ari4java/generated/ari_1_5_0/models/Sound_impl_ari_1_5_0.java delete mode 100644 classes/ch/loway/oss/ari4java/generated/ari_1_5_0/models/StasisEnd_impl_ari_1_5_0.java delete mode 100644 classes/ch/loway/oss/ari4java/generated/ari_1_5_0/models/StasisStart_impl_ari_1_5_0.java delete mode 100644 classes/ch/loway/oss/ari4java/generated/ari_1_5_0/models/StatusInfo_impl_ari_1_5_0.java delete mode 100644 classes/ch/loway/oss/ari4java/generated/ari_1_5_0/models/StoredRecording_impl_ari_1_5_0.java delete mode 100644 classes/ch/loway/oss/ari4java/generated/ari_1_5_0/models/SystemInfo_impl_ari_1_5_0.java delete mode 100644 classes/ch/loway/oss/ari4java/generated/ari_1_5_0/models/TextMessageReceived_impl_ari_1_5_0.java delete mode 100644 classes/ch/loway/oss/ari4java/generated/ari_1_5_0/models/TextMessageVariable_impl_ari_1_5_0.java delete mode 100644 classes/ch/loway/oss/ari4java/generated/ari_1_5_0/models/TextMessage_impl_ari_1_5_0.java delete mode 100644 classes/ch/loway/oss/ari4java/generated/ari_1_5_0/models/Variable_impl_ari_1_5_0.java delete mode 100644 classes/ch/loway/oss/ari4java/generated/ari_1_6_0/AriBuilder_impl_ari_1_6_0.java delete mode 100644 classes/ch/loway/oss/ari4java/generated/ari_1_6_0/ClassTranslator_impl_ari_1_6_0.java delete mode 100644 classes/ch/loway/oss/ari4java/generated/ari_1_6_0/actions/ActionApplications_impl_ari_1_6_0.java delete mode 100644 classes/ch/loway/oss/ari4java/generated/ari_1_6_0/actions/ActionAsterisk_impl_ari_1_6_0.java delete mode 100644 classes/ch/loway/oss/ari4java/generated/ari_1_6_0/actions/ActionBridges_impl_ari_1_6_0.java delete mode 100644 classes/ch/loway/oss/ari4java/generated/ari_1_6_0/actions/ActionChannels_impl_ari_1_6_0.java delete mode 100644 classes/ch/loway/oss/ari4java/generated/ari_1_6_0/actions/ActionDeviceStates_impl_ari_1_6_0.java delete mode 100644 classes/ch/loway/oss/ari4java/generated/ari_1_6_0/actions/ActionEndpoints_impl_ari_1_6_0.java delete mode 100644 classes/ch/loway/oss/ari4java/generated/ari_1_6_0/actions/ActionEvents_impl_ari_1_6_0.java delete mode 100644 classes/ch/loway/oss/ari4java/generated/ari_1_6_0/actions/ActionPlaybacks_impl_ari_1_6_0.java delete mode 100644 classes/ch/loway/oss/ari4java/generated/ari_1_6_0/actions/ActionRecordings_impl_ari_1_6_0.java delete mode 100644 classes/ch/loway/oss/ari4java/generated/ari_1_6_0/actions/ActionSounds_impl_ari_1_6_0.java delete mode 100644 classes/ch/loway/oss/ari4java/generated/ari_1_6_0/models/ApplicationReplaced_impl_ari_1_6_0.java delete mode 100644 classes/ch/loway/oss/ari4java/generated/ari_1_6_0/models/Application_impl_ari_1_6_0.java delete mode 100644 classes/ch/loway/oss/ari4java/generated/ari_1_6_0/models/AsteriskInfo_impl_ari_1_6_0.java delete mode 100644 classes/ch/loway/oss/ari4java/generated/ari_1_6_0/models/BridgeAttendedTransfer_impl_ari_1_6_0.java delete mode 100644 classes/ch/loway/oss/ari4java/generated/ari_1_6_0/models/BridgeBlindTransfer_impl_ari_1_6_0.java delete mode 100644 classes/ch/loway/oss/ari4java/generated/ari_1_6_0/models/BridgeCreated_impl_ari_1_6_0.java delete mode 100644 classes/ch/loway/oss/ari4java/generated/ari_1_6_0/models/BridgeDestroyed_impl_ari_1_6_0.java delete mode 100644 classes/ch/loway/oss/ari4java/generated/ari_1_6_0/models/BridgeMerged_impl_ari_1_6_0.java delete mode 100644 classes/ch/loway/oss/ari4java/generated/ari_1_6_0/models/Bridge_impl_ari_1_6_0.java delete mode 100644 classes/ch/loway/oss/ari4java/generated/ari_1_6_0/models/BuildInfo_impl_ari_1_6_0.java delete mode 100644 classes/ch/loway/oss/ari4java/generated/ari_1_6_0/models/CallerID_impl_ari_1_6_0.java delete mode 100644 classes/ch/loway/oss/ari4java/generated/ari_1_6_0/models/ChannelCallerId_impl_ari_1_6_0.java delete mode 100644 classes/ch/loway/oss/ari4java/generated/ari_1_6_0/models/ChannelConnectedLine_impl_ari_1_6_0.java delete mode 100644 classes/ch/loway/oss/ari4java/generated/ari_1_6_0/models/ChannelCreated_impl_ari_1_6_0.java delete mode 100644 classes/ch/loway/oss/ari4java/generated/ari_1_6_0/models/ChannelDestroyed_impl_ari_1_6_0.java delete mode 100644 classes/ch/loway/oss/ari4java/generated/ari_1_6_0/models/ChannelDialplan_impl_ari_1_6_0.java delete mode 100644 classes/ch/loway/oss/ari4java/generated/ari_1_6_0/models/ChannelDtmfReceived_impl_ari_1_6_0.java delete mode 100644 classes/ch/loway/oss/ari4java/generated/ari_1_6_0/models/ChannelEnteredBridge_impl_ari_1_6_0.java delete mode 100644 classes/ch/loway/oss/ari4java/generated/ari_1_6_0/models/ChannelHangupRequest_impl_ari_1_6_0.java delete mode 100644 classes/ch/loway/oss/ari4java/generated/ari_1_6_0/models/ChannelLeftBridge_impl_ari_1_6_0.java delete mode 100644 classes/ch/loway/oss/ari4java/generated/ari_1_6_0/models/ChannelStateChange_impl_ari_1_6_0.java delete mode 100644 classes/ch/loway/oss/ari4java/generated/ari_1_6_0/models/ChannelTalkingFinished_impl_ari_1_6_0.java delete mode 100644 classes/ch/loway/oss/ari4java/generated/ari_1_6_0/models/ChannelTalkingStarted_impl_ari_1_6_0.java delete mode 100644 classes/ch/loway/oss/ari4java/generated/ari_1_6_0/models/ChannelUserevent_impl_ari_1_6_0.java delete mode 100644 classes/ch/loway/oss/ari4java/generated/ari_1_6_0/models/ChannelVarset_impl_ari_1_6_0.java delete mode 100644 classes/ch/loway/oss/ari4java/generated/ari_1_6_0/models/Channel_impl_ari_1_6_0.java delete mode 100644 classes/ch/loway/oss/ari4java/generated/ari_1_6_0/models/ConfigInfo_impl_ari_1_6_0.java delete mode 100644 classes/ch/loway/oss/ari4java/generated/ari_1_6_0/models/DeviceStateChanged_impl_ari_1_6_0.java delete mode 100644 classes/ch/loway/oss/ari4java/generated/ari_1_6_0/models/DeviceState_impl_ari_1_6_0.java delete mode 100644 classes/ch/loway/oss/ari4java/generated/ari_1_6_0/models/Dial_impl_ari_1_6_0.java delete mode 100644 classes/ch/loway/oss/ari4java/generated/ari_1_6_0/models/Dialed_impl_ari_1_6_0.java delete mode 100644 classes/ch/loway/oss/ari4java/generated/ari_1_6_0/models/DialplanCEP_impl_ari_1_6_0.java delete mode 100644 classes/ch/loway/oss/ari4java/generated/ari_1_6_0/models/EndpointStateChange_impl_ari_1_6_0.java delete mode 100644 classes/ch/loway/oss/ari4java/generated/ari_1_6_0/models/Endpoint_impl_ari_1_6_0.java delete mode 100644 classes/ch/loway/oss/ari4java/generated/ari_1_6_0/models/Event_impl_ari_1_6_0.java delete mode 100644 classes/ch/loway/oss/ari4java/generated/ari_1_6_0/models/FormatLangPair_impl_ari_1_6_0.java delete mode 100644 classes/ch/loway/oss/ari4java/generated/ari_1_6_0/models/LiveRecording_impl_ari_1_6_0.java delete mode 100644 classes/ch/loway/oss/ari4java/generated/ari_1_6_0/models/Message_impl_ari_1_6_0.java delete mode 100644 classes/ch/loway/oss/ari4java/generated/ari_1_6_0/models/MissingParams_impl_ari_1_6_0.java delete mode 100644 classes/ch/loway/oss/ari4java/generated/ari_1_6_0/models/PlaybackFinished_impl_ari_1_6_0.java delete mode 100644 classes/ch/loway/oss/ari4java/generated/ari_1_6_0/models/PlaybackStarted_impl_ari_1_6_0.java delete mode 100644 classes/ch/loway/oss/ari4java/generated/ari_1_6_0/models/Playback_impl_ari_1_6_0.java delete mode 100644 classes/ch/loway/oss/ari4java/generated/ari_1_6_0/models/RecordingFailed_impl_ari_1_6_0.java delete mode 100644 classes/ch/loway/oss/ari4java/generated/ari_1_6_0/models/RecordingFinished_impl_ari_1_6_0.java delete mode 100644 classes/ch/loway/oss/ari4java/generated/ari_1_6_0/models/RecordingStarted_impl_ari_1_6_0.java delete mode 100644 classes/ch/loway/oss/ari4java/generated/ari_1_6_0/models/SetId_impl_ari_1_6_0.java delete mode 100644 classes/ch/loway/oss/ari4java/generated/ari_1_6_0/models/Sound_impl_ari_1_6_0.java delete mode 100644 classes/ch/loway/oss/ari4java/generated/ari_1_6_0/models/StasisEnd_impl_ari_1_6_0.java delete mode 100644 classes/ch/loway/oss/ari4java/generated/ari_1_6_0/models/StasisStart_impl_ari_1_6_0.java delete mode 100644 classes/ch/loway/oss/ari4java/generated/ari_1_6_0/models/StatusInfo_impl_ari_1_6_0.java delete mode 100644 classes/ch/loway/oss/ari4java/generated/ari_1_6_0/models/StoredRecording_impl_ari_1_6_0.java delete mode 100644 classes/ch/loway/oss/ari4java/generated/ari_1_6_0/models/SystemInfo_impl_ari_1_6_0.java delete mode 100644 classes/ch/loway/oss/ari4java/generated/ari_1_6_0/models/TextMessageReceived_impl_ari_1_6_0.java delete mode 100644 classes/ch/loway/oss/ari4java/generated/ari_1_6_0/models/TextMessageVariable_impl_ari_1_6_0.java delete mode 100644 classes/ch/loway/oss/ari4java/generated/ari_1_6_0/models/TextMessage_impl_ari_1_6_0.java delete mode 100644 classes/ch/loway/oss/ari4java/generated/ari_1_6_0/models/Variable_impl_ari_1_6_0.java delete mode 100644 classes/ch/loway/oss/ari4java/generated/ari_1_7_0/AriBuilder_impl_ari_1_7_0.java delete mode 100644 classes/ch/loway/oss/ari4java/generated/ari_1_7_0/ClassTranslator_impl_ari_1_7_0.java delete mode 100644 classes/ch/loway/oss/ari4java/generated/ari_1_7_0/actions/ActionApplications_impl_ari_1_7_0.java delete mode 100644 classes/ch/loway/oss/ari4java/generated/ari_1_7_0/actions/ActionAsterisk_impl_ari_1_7_0.java delete mode 100644 classes/ch/loway/oss/ari4java/generated/ari_1_7_0/actions/ActionBridges_impl_ari_1_7_0.java delete mode 100644 classes/ch/loway/oss/ari4java/generated/ari_1_7_0/actions/ActionChannels_impl_ari_1_7_0.java delete mode 100644 classes/ch/loway/oss/ari4java/generated/ari_1_7_0/actions/ActionDeviceStates_impl_ari_1_7_0.java delete mode 100644 classes/ch/loway/oss/ari4java/generated/ari_1_7_0/actions/ActionEndpoints_impl_ari_1_7_0.java delete mode 100644 classes/ch/loway/oss/ari4java/generated/ari_1_7_0/actions/ActionEvents_impl_ari_1_7_0.java delete mode 100644 classes/ch/loway/oss/ari4java/generated/ari_1_7_0/actions/ActionPlaybacks_impl_ari_1_7_0.java delete mode 100644 classes/ch/loway/oss/ari4java/generated/ari_1_7_0/actions/ActionRecordings_impl_ari_1_7_0.java delete mode 100644 classes/ch/loway/oss/ari4java/generated/ari_1_7_0/actions/ActionSounds_impl_ari_1_7_0.java delete mode 100644 classes/ch/loway/oss/ari4java/generated/ari_1_7_0/models/ApplicationReplaced_impl_ari_1_7_0.java delete mode 100644 classes/ch/loway/oss/ari4java/generated/ari_1_7_0/models/Application_impl_ari_1_7_0.java delete mode 100644 classes/ch/loway/oss/ari4java/generated/ari_1_7_0/models/AsteriskInfo_impl_ari_1_7_0.java delete mode 100644 classes/ch/loway/oss/ari4java/generated/ari_1_7_0/models/BridgeAttendedTransfer_impl_ari_1_7_0.java delete mode 100644 classes/ch/loway/oss/ari4java/generated/ari_1_7_0/models/BridgeBlindTransfer_impl_ari_1_7_0.java delete mode 100644 classes/ch/loway/oss/ari4java/generated/ari_1_7_0/models/BridgeCreated_impl_ari_1_7_0.java delete mode 100644 classes/ch/loway/oss/ari4java/generated/ari_1_7_0/models/BridgeDestroyed_impl_ari_1_7_0.java delete mode 100644 classes/ch/loway/oss/ari4java/generated/ari_1_7_0/models/BridgeMerged_impl_ari_1_7_0.java delete mode 100644 classes/ch/loway/oss/ari4java/generated/ari_1_7_0/models/Bridge_impl_ari_1_7_0.java delete mode 100644 classes/ch/loway/oss/ari4java/generated/ari_1_7_0/models/BuildInfo_impl_ari_1_7_0.java delete mode 100644 classes/ch/loway/oss/ari4java/generated/ari_1_7_0/models/CallerID_impl_ari_1_7_0.java delete mode 100644 classes/ch/loway/oss/ari4java/generated/ari_1_7_0/models/ChannelCallerId_impl_ari_1_7_0.java delete mode 100644 classes/ch/loway/oss/ari4java/generated/ari_1_7_0/models/ChannelConnectedLine_impl_ari_1_7_0.java delete mode 100644 classes/ch/loway/oss/ari4java/generated/ari_1_7_0/models/ChannelCreated_impl_ari_1_7_0.java delete mode 100644 classes/ch/loway/oss/ari4java/generated/ari_1_7_0/models/ChannelDestroyed_impl_ari_1_7_0.java delete mode 100644 classes/ch/loway/oss/ari4java/generated/ari_1_7_0/models/ChannelDialplan_impl_ari_1_7_0.java delete mode 100644 classes/ch/loway/oss/ari4java/generated/ari_1_7_0/models/ChannelDtmfReceived_impl_ari_1_7_0.java delete mode 100644 classes/ch/loway/oss/ari4java/generated/ari_1_7_0/models/ChannelEnteredBridge_impl_ari_1_7_0.java delete mode 100644 classes/ch/loway/oss/ari4java/generated/ari_1_7_0/models/ChannelHangupRequest_impl_ari_1_7_0.java delete mode 100644 classes/ch/loway/oss/ari4java/generated/ari_1_7_0/models/ChannelLeftBridge_impl_ari_1_7_0.java delete mode 100644 classes/ch/loway/oss/ari4java/generated/ari_1_7_0/models/ChannelStateChange_impl_ari_1_7_0.java delete mode 100644 classes/ch/loway/oss/ari4java/generated/ari_1_7_0/models/ChannelTalkingFinished_impl_ari_1_7_0.java delete mode 100644 classes/ch/loway/oss/ari4java/generated/ari_1_7_0/models/ChannelTalkingStarted_impl_ari_1_7_0.java delete mode 100644 classes/ch/loway/oss/ari4java/generated/ari_1_7_0/models/ChannelUserevent_impl_ari_1_7_0.java delete mode 100644 classes/ch/loway/oss/ari4java/generated/ari_1_7_0/models/ChannelVarset_impl_ari_1_7_0.java delete mode 100644 classes/ch/loway/oss/ari4java/generated/ari_1_7_0/models/Channel_impl_ari_1_7_0.java delete mode 100644 classes/ch/loway/oss/ari4java/generated/ari_1_7_0/models/ConfigInfo_impl_ari_1_7_0.java delete mode 100644 classes/ch/loway/oss/ari4java/generated/ari_1_7_0/models/DeviceStateChanged_impl_ari_1_7_0.java delete mode 100644 classes/ch/loway/oss/ari4java/generated/ari_1_7_0/models/DeviceState_impl_ari_1_7_0.java delete mode 100644 classes/ch/loway/oss/ari4java/generated/ari_1_7_0/models/Dial_impl_ari_1_7_0.java delete mode 100644 classes/ch/loway/oss/ari4java/generated/ari_1_7_0/models/Dialed_impl_ari_1_7_0.java delete mode 100644 classes/ch/loway/oss/ari4java/generated/ari_1_7_0/models/DialplanCEP_impl_ari_1_7_0.java delete mode 100644 classes/ch/loway/oss/ari4java/generated/ari_1_7_0/models/EndpointStateChange_impl_ari_1_7_0.java delete mode 100644 classes/ch/loway/oss/ari4java/generated/ari_1_7_0/models/Endpoint_impl_ari_1_7_0.java delete mode 100644 classes/ch/loway/oss/ari4java/generated/ari_1_7_0/models/Event_impl_ari_1_7_0.java delete mode 100644 classes/ch/loway/oss/ari4java/generated/ari_1_7_0/models/FormatLangPair_impl_ari_1_7_0.java delete mode 100644 classes/ch/loway/oss/ari4java/generated/ari_1_7_0/models/LiveRecording_impl_ari_1_7_0.java delete mode 100644 classes/ch/loway/oss/ari4java/generated/ari_1_7_0/models/Message_impl_ari_1_7_0.java delete mode 100644 classes/ch/loway/oss/ari4java/generated/ari_1_7_0/models/MissingParams_impl_ari_1_7_0.java delete mode 100644 classes/ch/loway/oss/ari4java/generated/ari_1_7_0/models/PlaybackFinished_impl_ari_1_7_0.java delete mode 100644 classes/ch/loway/oss/ari4java/generated/ari_1_7_0/models/PlaybackStarted_impl_ari_1_7_0.java delete mode 100644 classes/ch/loway/oss/ari4java/generated/ari_1_7_0/models/Playback_impl_ari_1_7_0.java delete mode 100644 classes/ch/loway/oss/ari4java/generated/ari_1_7_0/models/RecordingFailed_impl_ari_1_7_0.java delete mode 100644 classes/ch/loway/oss/ari4java/generated/ari_1_7_0/models/RecordingFinished_impl_ari_1_7_0.java delete mode 100644 classes/ch/loway/oss/ari4java/generated/ari_1_7_0/models/RecordingStarted_impl_ari_1_7_0.java delete mode 100644 classes/ch/loway/oss/ari4java/generated/ari_1_7_0/models/SetId_impl_ari_1_7_0.java delete mode 100644 classes/ch/loway/oss/ari4java/generated/ari_1_7_0/models/Sound_impl_ari_1_7_0.java delete mode 100644 classes/ch/loway/oss/ari4java/generated/ari_1_7_0/models/StasisEnd_impl_ari_1_7_0.java delete mode 100644 classes/ch/loway/oss/ari4java/generated/ari_1_7_0/models/StasisStart_impl_ari_1_7_0.java delete mode 100644 classes/ch/loway/oss/ari4java/generated/ari_1_7_0/models/StatusInfo_impl_ari_1_7_0.java delete mode 100644 classes/ch/loway/oss/ari4java/generated/ari_1_7_0/models/StoredRecording_impl_ari_1_7_0.java delete mode 100644 classes/ch/loway/oss/ari4java/generated/ari_1_7_0/models/SystemInfo_impl_ari_1_7_0.java delete mode 100644 classes/ch/loway/oss/ari4java/generated/ari_1_7_0/models/TextMessageReceived_impl_ari_1_7_0.java delete mode 100644 classes/ch/loway/oss/ari4java/generated/ari_1_7_0/models/TextMessageVariable_impl_ari_1_7_0.java delete mode 100644 classes/ch/loway/oss/ari4java/generated/ari_1_7_0/models/TextMessage_impl_ari_1_7_0.java delete mode 100644 classes/ch/loway/oss/ari4java/generated/ari_1_7_0/models/Variable_impl_ari_1_7_0.java delete mode 100644 classes/ch/loway/oss/ari4java/generated/ari_1_8_0/AriBuilder_impl_ari_1_8_0.java delete mode 100644 classes/ch/loway/oss/ari4java/generated/ari_1_8_0/ClassTranslator_impl_ari_1_8_0.java delete mode 100644 classes/ch/loway/oss/ari4java/generated/ari_1_8_0/actions/ActionApplications_impl_ari_1_8_0.java delete mode 100644 classes/ch/loway/oss/ari4java/generated/ari_1_8_0/actions/ActionAsterisk_impl_ari_1_8_0.java delete mode 100644 classes/ch/loway/oss/ari4java/generated/ari_1_8_0/actions/ActionBridges_impl_ari_1_8_0.java delete mode 100644 classes/ch/loway/oss/ari4java/generated/ari_1_8_0/actions/ActionChannels_impl_ari_1_8_0.java delete mode 100644 classes/ch/loway/oss/ari4java/generated/ari_1_8_0/actions/ActionDeviceStates_impl_ari_1_8_0.java delete mode 100644 classes/ch/loway/oss/ari4java/generated/ari_1_8_0/actions/ActionEndpoints_impl_ari_1_8_0.java delete mode 100644 classes/ch/loway/oss/ari4java/generated/ari_1_8_0/actions/ActionEvents_impl_ari_1_8_0.java delete mode 100644 classes/ch/loway/oss/ari4java/generated/ari_1_8_0/actions/ActionPlaybacks_impl_ari_1_8_0.java delete mode 100644 classes/ch/loway/oss/ari4java/generated/ari_1_8_0/actions/ActionRecordings_impl_ari_1_8_0.java delete mode 100644 classes/ch/loway/oss/ari4java/generated/ari_1_8_0/actions/ActionSounds_impl_ari_1_8_0.java delete mode 100644 classes/ch/loway/oss/ari4java/generated/ari_1_8_0/models/ApplicationReplaced_impl_ari_1_8_0.java delete mode 100644 classes/ch/loway/oss/ari4java/generated/ari_1_8_0/models/Application_impl_ari_1_8_0.java delete mode 100644 classes/ch/loway/oss/ari4java/generated/ari_1_8_0/models/AsteriskInfo_impl_ari_1_8_0.java delete mode 100644 classes/ch/loway/oss/ari4java/generated/ari_1_8_0/models/BridgeAttendedTransfer_impl_ari_1_8_0.java delete mode 100644 classes/ch/loway/oss/ari4java/generated/ari_1_8_0/models/BridgeBlindTransfer_impl_ari_1_8_0.java delete mode 100644 classes/ch/loway/oss/ari4java/generated/ari_1_8_0/models/BridgeCreated_impl_ari_1_8_0.java delete mode 100644 classes/ch/loway/oss/ari4java/generated/ari_1_8_0/models/BridgeDestroyed_impl_ari_1_8_0.java delete mode 100644 classes/ch/loway/oss/ari4java/generated/ari_1_8_0/models/BridgeMerged_impl_ari_1_8_0.java delete mode 100644 classes/ch/loway/oss/ari4java/generated/ari_1_8_0/models/Bridge_impl_ari_1_8_0.java delete mode 100644 classes/ch/loway/oss/ari4java/generated/ari_1_8_0/models/BuildInfo_impl_ari_1_8_0.java delete mode 100644 classes/ch/loway/oss/ari4java/generated/ari_1_8_0/models/CallerID_impl_ari_1_8_0.java delete mode 100644 classes/ch/loway/oss/ari4java/generated/ari_1_8_0/models/ChannelCallerId_impl_ari_1_8_0.java delete mode 100644 classes/ch/loway/oss/ari4java/generated/ari_1_8_0/models/ChannelConnectedLine_impl_ari_1_8_0.java delete mode 100644 classes/ch/loway/oss/ari4java/generated/ari_1_8_0/models/ChannelCreated_impl_ari_1_8_0.java delete mode 100644 classes/ch/loway/oss/ari4java/generated/ari_1_8_0/models/ChannelDestroyed_impl_ari_1_8_0.java delete mode 100644 classes/ch/loway/oss/ari4java/generated/ari_1_8_0/models/ChannelDialplan_impl_ari_1_8_0.java delete mode 100644 classes/ch/loway/oss/ari4java/generated/ari_1_8_0/models/ChannelDtmfReceived_impl_ari_1_8_0.java delete mode 100644 classes/ch/loway/oss/ari4java/generated/ari_1_8_0/models/ChannelEnteredBridge_impl_ari_1_8_0.java delete mode 100644 classes/ch/loway/oss/ari4java/generated/ari_1_8_0/models/ChannelHangupRequest_impl_ari_1_8_0.java delete mode 100644 classes/ch/loway/oss/ari4java/generated/ari_1_8_0/models/ChannelHold_impl_ari_1_8_0.java delete mode 100644 classes/ch/loway/oss/ari4java/generated/ari_1_8_0/models/ChannelLeftBridge_impl_ari_1_8_0.java delete mode 100644 classes/ch/loway/oss/ari4java/generated/ari_1_8_0/models/ChannelStateChange_impl_ari_1_8_0.java delete mode 100644 classes/ch/loway/oss/ari4java/generated/ari_1_8_0/models/ChannelTalkingFinished_impl_ari_1_8_0.java delete mode 100644 classes/ch/loway/oss/ari4java/generated/ari_1_8_0/models/ChannelTalkingStarted_impl_ari_1_8_0.java delete mode 100644 classes/ch/loway/oss/ari4java/generated/ari_1_8_0/models/ChannelUnhold_impl_ari_1_8_0.java delete mode 100644 classes/ch/loway/oss/ari4java/generated/ari_1_8_0/models/ChannelUserevent_impl_ari_1_8_0.java delete mode 100644 classes/ch/loway/oss/ari4java/generated/ari_1_8_0/models/ChannelVarset_impl_ari_1_8_0.java delete mode 100644 classes/ch/loway/oss/ari4java/generated/ari_1_8_0/models/Channel_impl_ari_1_8_0.java delete mode 100644 classes/ch/loway/oss/ari4java/generated/ari_1_8_0/models/ConfigInfo_impl_ari_1_8_0.java delete mode 100644 classes/ch/loway/oss/ari4java/generated/ari_1_8_0/models/ConfigTuple_impl_ari_1_8_0.java delete mode 100644 classes/ch/loway/oss/ari4java/generated/ari_1_8_0/models/DeviceStateChanged_impl_ari_1_8_0.java delete mode 100644 classes/ch/loway/oss/ari4java/generated/ari_1_8_0/models/DeviceState_impl_ari_1_8_0.java delete mode 100644 classes/ch/loway/oss/ari4java/generated/ari_1_8_0/models/Dial_impl_ari_1_8_0.java delete mode 100644 classes/ch/loway/oss/ari4java/generated/ari_1_8_0/models/Dialed_impl_ari_1_8_0.java delete mode 100644 classes/ch/loway/oss/ari4java/generated/ari_1_8_0/models/DialplanCEP_impl_ari_1_8_0.java delete mode 100644 classes/ch/loway/oss/ari4java/generated/ari_1_8_0/models/EndpointStateChange_impl_ari_1_8_0.java delete mode 100644 classes/ch/loway/oss/ari4java/generated/ari_1_8_0/models/Endpoint_impl_ari_1_8_0.java delete mode 100644 classes/ch/loway/oss/ari4java/generated/ari_1_8_0/models/Event_impl_ari_1_8_0.java delete mode 100644 classes/ch/loway/oss/ari4java/generated/ari_1_8_0/models/FormatLangPair_impl_ari_1_8_0.java delete mode 100644 classes/ch/loway/oss/ari4java/generated/ari_1_8_0/models/LiveRecording_impl_ari_1_8_0.java delete mode 100644 classes/ch/loway/oss/ari4java/generated/ari_1_8_0/models/Message_impl_ari_1_8_0.java delete mode 100644 classes/ch/loway/oss/ari4java/generated/ari_1_8_0/models/MissingParams_impl_ari_1_8_0.java delete mode 100644 classes/ch/loway/oss/ari4java/generated/ari_1_8_0/models/Module_impl_ari_1_8_0.java delete mode 100644 classes/ch/loway/oss/ari4java/generated/ari_1_8_0/models/PlaybackFinished_impl_ari_1_8_0.java delete mode 100644 classes/ch/loway/oss/ari4java/generated/ari_1_8_0/models/PlaybackStarted_impl_ari_1_8_0.java delete mode 100644 classes/ch/loway/oss/ari4java/generated/ari_1_8_0/models/Playback_impl_ari_1_8_0.java delete mode 100644 classes/ch/loway/oss/ari4java/generated/ari_1_8_0/models/RecordingFailed_impl_ari_1_8_0.java delete mode 100644 classes/ch/loway/oss/ari4java/generated/ari_1_8_0/models/RecordingFinished_impl_ari_1_8_0.java delete mode 100644 classes/ch/loway/oss/ari4java/generated/ari_1_8_0/models/RecordingStarted_impl_ari_1_8_0.java delete mode 100644 classes/ch/loway/oss/ari4java/generated/ari_1_8_0/models/SetId_impl_ari_1_8_0.java delete mode 100644 classes/ch/loway/oss/ari4java/generated/ari_1_8_0/models/Sound_impl_ari_1_8_0.java delete mode 100644 classes/ch/loway/oss/ari4java/generated/ari_1_8_0/models/StasisEnd_impl_ari_1_8_0.java delete mode 100644 classes/ch/loway/oss/ari4java/generated/ari_1_8_0/models/StasisStart_impl_ari_1_8_0.java delete mode 100644 classes/ch/loway/oss/ari4java/generated/ari_1_8_0/models/StatusInfo_impl_ari_1_8_0.java delete mode 100644 classes/ch/loway/oss/ari4java/generated/ari_1_8_0/models/StoredRecording_impl_ari_1_8_0.java delete mode 100644 classes/ch/loway/oss/ari4java/generated/ari_1_8_0/models/SystemInfo_impl_ari_1_8_0.java delete mode 100644 classes/ch/loway/oss/ari4java/generated/ari_1_8_0/models/TextMessageReceived_impl_ari_1_8_0.java delete mode 100644 classes/ch/loway/oss/ari4java/generated/ari_1_8_0/models/TextMessageVariable_impl_ari_1_8_0.java delete mode 100644 classes/ch/loway/oss/ari4java/generated/ari_1_8_0/models/TextMessage_impl_ari_1_8_0.java delete mode 100644 classes/ch/loway/oss/ari4java/generated/ari_1_8_0/models/Variable_impl_ari_1_8_0.java delete mode 100644 classes/ch/loway/oss/ari4java/generated/ari_1_9_0/AriBuilder_impl_ari_1_9_0.java delete mode 100644 classes/ch/loway/oss/ari4java/generated/ari_1_9_0/ClassTranslator_impl_ari_1_9_0.java delete mode 100644 classes/ch/loway/oss/ari4java/generated/ari_1_9_0/actions/ActionApplications_impl_ari_1_9_0.java delete mode 100644 classes/ch/loway/oss/ari4java/generated/ari_1_9_0/actions/ActionAsterisk_impl_ari_1_9_0.java delete mode 100644 classes/ch/loway/oss/ari4java/generated/ari_1_9_0/actions/ActionBridges_impl_ari_1_9_0.java delete mode 100644 classes/ch/loway/oss/ari4java/generated/ari_1_9_0/actions/ActionChannels_impl_ari_1_9_0.java delete mode 100644 classes/ch/loway/oss/ari4java/generated/ari_1_9_0/actions/ActionDeviceStates_impl_ari_1_9_0.java delete mode 100644 classes/ch/loway/oss/ari4java/generated/ari_1_9_0/actions/ActionEndpoints_impl_ari_1_9_0.java delete mode 100644 classes/ch/loway/oss/ari4java/generated/ari_1_9_0/actions/ActionEvents_impl_ari_1_9_0.java delete mode 100644 classes/ch/loway/oss/ari4java/generated/ari_1_9_0/actions/ActionPlaybacks_impl_ari_1_9_0.java delete mode 100644 classes/ch/loway/oss/ari4java/generated/ari_1_9_0/actions/ActionRecordings_impl_ari_1_9_0.java delete mode 100644 classes/ch/loway/oss/ari4java/generated/ari_1_9_0/actions/ActionSounds_impl_ari_1_9_0.java delete mode 100644 classes/ch/loway/oss/ari4java/generated/ari_1_9_0/models/ApplicationReplaced_impl_ari_1_9_0.java delete mode 100644 classes/ch/loway/oss/ari4java/generated/ari_1_9_0/models/Application_impl_ari_1_9_0.java delete mode 100644 classes/ch/loway/oss/ari4java/generated/ari_1_9_0/models/AsteriskInfo_impl_ari_1_9_0.java delete mode 100644 classes/ch/loway/oss/ari4java/generated/ari_1_9_0/models/BridgeAttendedTransfer_impl_ari_1_9_0.java delete mode 100644 classes/ch/loway/oss/ari4java/generated/ari_1_9_0/models/BridgeBlindTransfer_impl_ari_1_9_0.java delete mode 100644 classes/ch/loway/oss/ari4java/generated/ari_1_9_0/models/BridgeCreated_impl_ari_1_9_0.java delete mode 100644 classes/ch/loway/oss/ari4java/generated/ari_1_9_0/models/BridgeDestroyed_impl_ari_1_9_0.java delete mode 100644 classes/ch/loway/oss/ari4java/generated/ari_1_9_0/models/BridgeMerged_impl_ari_1_9_0.java delete mode 100644 classes/ch/loway/oss/ari4java/generated/ari_1_9_0/models/Bridge_impl_ari_1_9_0.java delete mode 100644 classes/ch/loway/oss/ari4java/generated/ari_1_9_0/models/BuildInfo_impl_ari_1_9_0.java delete mode 100644 classes/ch/loway/oss/ari4java/generated/ari_1_9_0/models/CallerID_impl_ari_1_9_0.java delete mode 100644 classes/ch/loway/oss/ari4java/generated/ari_1_9_0/models/ChannelCallerId_impl_ari_1_9_0.java delete mode 100644 classes/ch/loway/oss/ari4java/generated/ari_1_9_0/models/ChannelConnectedLine_impl_ari_1_9_0.java delete mode 100644 classes/ch/loway/oss/ari4java/generated/ari_1_9_0/models/ChannelCreated_impl_ari_1_9_0.java delete mode 100644 classes/ch/loway/oss/ari4java/generated/ari_1_9_0/models/ChannelDestroyed_impl_ari_1_9_0.java delete mode 100644 classes/ch/loway/oss/ari4java/generated/ari_1_9_0/models/ChannelDialplan_impl_ari_1_9_0.java delete mode 100644 classes/ch/loway/oss/ari4java/generated/ari_1_9_0/models/ChannelDtmfReceived_impl_ari_1_9_0.java delete mode 100644 classes/ch/loway/oss/ari4java/generated/ari_1_9_0/models/ChannelEnteredBridge_impl_ari_1_9_0.java delete mode 100644 classes/ch/loway/oss/ari4java/generated/ari_1_9_0/models/ChannelHangupRequest_impl_ari_1_9_0.java delete mode 100644 classes/ch/loway/oss/ari4java/generated/ari_1_9_0/models/ChannelHold_impl_ari_1_9_0.java delete mode 100644 classes/ch/loway/oss/ari4java/generated/ari_1_9_0/models/ChannelLeftBridge_impl_ari_1_9_0.java delete mode 100644 classes/ch/loway/oss/ari4java/generated/ari_1_9_0/models/ChannelStateChange_impl_ari_1_9_0.java delete mode 100644 classes/ch/loway/oss/ari4java/generated/ari_1_9_0/models/ChannelTalkingFinished_impl_ari_1_9_0.java delete mode 100644 classes/ch/loway/oss/ari4java/generated/ari_1_9_0/models/ChannelTalkingStarted_impl_ari_1_9_0.java delete mode 100644 classes/ch/loway/oss/ari4java/generated/ari_1_9_0/models/ChannelUnhold_impl_ari_1_9_0.java delete mode 100644 classes/ch/loway/oss/ari4java/generated/ari_1_9_0/models/ChannelUserevent_impl_ari_1_9_0.java delete mode 100644 classes/ch/loway/oss/ari4java/generated/ari_1_9_0/models/ChannelVarset_impl_ari_1_9_0.java delete mode 100644 classes/ch/loway/oss/ari4java/generated/ari_1_9_0/models/Channel_impl_ari_1_9_0.java delete mode 100644 classes/ch/loway/oss/ari4java/generated/ari_1_9_0/models/ConfigInfo_impl_ari_1_9_0.java delete mode 100644 classes/ch/loway/oss/ari4java/generated/ari_1_9_0/models/ConfigTuple_impl_ari_1_9_0.java delete mode 100644 classes/ch/loway/oss/ari4java/generated/ari_1_9_0/models/ContactInfo_impl_ari_1_9_0.java delete mode 100644 classes/ch/loway/oss/ari4java/generated/ari_1_9_0/models/ContactStatusChange_impl_ari_1_9_0.java delete mode 100644 classes/ch/loway/oss/ari4java/generated/ari_1_9_0/models/DeviceStateChanged_impl_ari_1_9_0.java delete mode 100644 classes/ch/loway/oss/ari4java/generated/ari_1_9_0/models/DeviceState_impl_ari_1_9_0.java delete mode 100644 classes/ch/loway/oss/ari4java/generated/ari_1_9_0/models/Dial_impl_ari_1_9_0.java delete mode 100644 classes/ch/loway/oss/ari4java/generated/ari_1_9_0/models/Dialed_impl_ari_1_9_0.java delete mode 100644 classes/ch/loway/oss/ari4java/generated/ari_1_9_0/models/DialplanCEP_impl_ari_1_9_0.java delete mode 100644 classes/ch/loway/oss/ari4java/generated/ari_1_9_0/models/EndpointStateChange_impl_ari_1_9_0.java delete mode 100644 classes/ch/loway/oss/ari4java/generated/ari_1_9_0/models/Endpoint_impl_ari_1_9_0.java delete mode 100644 classes/ch/loway/oss/ari4java/generated/ari_1_9_0/models/Event_impl_ari_1_9_0.java delete mode 100644 classes/ch/loway/oss/ari4java/generated/ari_1_9_0/models/FormatLangPair_impl_ari_1_9_0.java delete mode 100644 classes/ch/loway/oss/ari4java/generated/ari_1_9_0/models/LiveRecording_impl_ari_1_9_0.java delete mode 100644 classes/ch/loway/oss/ari4java/generated/ari_1_9_0/models/LogChannel_impl_ari_1_9_0.java delete mode 100644 classes/ch/loway/oss/ari4java/generated/ari_1_9_0/models/Message_impl_ari_1_9_0.java delete mode 100644 classes/ch/loway/oss/ari4java/generated/ari_1_9_0/models/MissingParams_impl_ari_1_9_0.java delete mode 100644 classes/ch/loway/oss/ari4java/generated/ari_1_9_0/models/Module_impl_ari_1_9_0.java delete mode 100644 classes/ch/loway/oss/ari4java/generated/ari_1_9_0/models/PeerStatusChange_impl_ari_1_9_0.java delete mode 100644 classes/ch/loway/oss/ari4java/generated/ari_1_9_0/models/Peer_impl_ari_1_9_0.java delete mode 100644 classes/ch/loway/oss/ari4java/generated/ari_1_9_0/models/PlaybackFinished_impl_ari_1_9_0.java delete mode 100644 classes/ch/loway/oss/ari4java/generated/ari_1_9_0/models/PlaybackStarted_impl_ari_1_9_0.java delete mode 100644 classes/ch/loway/oss/ari4java/generated/ari_1_9_0/models/Playback_impl_ari_1_9_0.java delete mode 100644 classes/ch/loway/oss/ari4java/generated/ari_1_9_0/models/RecordingFailed_impl_ari_1_9_0.java delete mode 100644 classes/ch/loway/oss/ari4java/generated/ari_1_9_0/models/RecordingFinished_impl_ari_1_9_0.java delete mode 100644 classes/ch/loway/oss/ari4java/generated/ari_1_9_0/models/RecordingStarted_impl_ari_1_9_0.java delete mode 100644 classes/ch/loway/oss/ari4java/generated/ari_1_9_0/models/SetId_impl_ari_1_9_0.java delete mode 100644 classes/ch/loway/oss/ari4java/generated/ari_1_9_0/models/Sound_impl_ari_1_9_0.java delete mode 100644 classes/ch/loway/oss/ari4java/generated/ari_1_9_0/models/StasisEnd_impl_ari_1_9_0.java delete mode 100644 classes/ch/loway/oss/ari4java/generated/ari_1_9_0/models/StasisStart_impl_ari_1_9_0.java delete mode 100644 classes/ch/loway/oss/ari4java/generated/ari_1_9_0/models/StatusInfo_impl_ari_1_9_0.java delete mode 100644 classes/ch/loway/oss/ari4java/generated/ari_1_9_0/models/StoredRecording_impl_ari_1_9_0.java delete mode 100644 classes/ch/loway/oss/ari4java/generated/ari_1_9_0/models/SystemInfo_impl_ari_1_9_0.java delete mode 100644 classes/ch/loway/oss/ari4java/generated/ari_1_9_0/models/TextMessageReceived_impl_ari_1_9_0.java delete mode 100644 classes/ch/loway/oss/ari4java/generated/ari_1_9_0/models/TextMessageVariable_impl_ari_1_9_0.java delete mode 100644 classes/ch/loway/oss/ari4java/generated/ari_1_9_0/models/TextMessage_impl_ari_1_9_0.java delete mode 100644 classes/ch/loway/oss/ari4java/generated/ari_1_9_0/models/Variable_impl_ari_1_9_0.java delete mode 100644 classes/ch/loway/oss/ari4java/generated/ari_2_0_0/AriBuilder_impl_ari_2_0_0.java delete mode 100644 classes/ch/loway/oss/ari4java/generated/ari_2_0_0/ClassTranslator_impl_ari_2_0_0.java delete mode 100644 classes/ch/loway/oss/ari4java/generated/ari_2_0_0/actions/ActionApplications_impl_ari_2_0_0.java delete mode 100644 classes/ch/loway/oss/ari4java/generated/ari_2_0_0/actions/ActionAsterisk_impl_ari_2_0_0.java delete mode 100644 classes/ch/loway/oss/ari4java/generated/ari_2_0_0/actions/ActionBridges_impl_ari_2_0_0.java delete mode 100644 classes/ch/loway/oss/ari4java/generated/ari_2_0_0/actions/ActionChannels_impl_ari_2_0_0.java delete mode 100644 classes/ch/loway/oss/ari4java/generated/ari_2_0_0/actions/ActionDeviceStates_impl_ari_2_0_0.java delete mode 100644 classes/ch/loway/oss/ari4java/generated/ari_2_0_0/actions/ActionEndpoints_impl_ari_2_0_0.java delete mode 100644 classes/ch/loway/oss/ari4java/generated/ari_2_0_0/actions/ActionEvents_impl_ari_2_0_0.java delete mode 100644 classes/ch/loway/oss/ari4java/generated/ari_2_0_0/actions/ActionPlaybacks_impl_ari_2_0_0.java delete mode 100644 classes/ch/loway/oss/ari4java/generated/ari_2_0_0/actions/ActionRecordings_impl_ari_2_0_0.java delete mode 100644 classes/ch/loway/oss/ari4java/generated/ari_2_0_0/actions/ActionSounds_impl_ari_2_0_0.java delete mode 100644 classes/ch/loway/oss/ari4java/generated/ari_2_0_0/models/ApplicationReplaced_impl_ari_2_0_0.java delete mode 100644 classes/ch/loway/oss/ari4java/generated/ari_2_0_0/models/Application_impl_ari_2_0_0.java delete mode 100644 classes/ch/loway/oss/ari4java/generated/ari_2_0_0/models/AsteriskInfo_impl_ari_2_0_0.java delete mode 100644 classes/ch/loway/oss/ari4java/generated/ari_2_0_0/models/BridgeAttendedTransfer_impl_ari_2_0_0.java delete mode 100644 classes/ch/loway/oss/ari4java/generated/ari_2_0_0/models/BridgeBlindTransfer_impl_ari_2_0_0.java delete mode 100644 classes/ch/loway/oss/ari4java/generated/ari_2_0_0/models/BridgeCreated_impl_ari_2_0_0.java delete mode 100644 classes/ch/loway/oss/ari4java/generated/ari_2_0_0/models/BridgeDestroyed_impl_ari_2_0_0.java delete mode 100644 classes/ch/loway/oss/ari4java/generated/ari_2_0_0/models/BridgeMerged_impl_ari_2_0_0.java delete mode 100644 classes/ch/loway/oss/ari4java/generated/ari_2_0_0/models/BridgeVideoSourceChanged_impl_ari_2_0_0.java delete mode 100644 classes/ch/loway/oss/ari4java/generated/ari_2_0_0/models/Bridge_impl_ari_2_0_0.java delete mode 100644 classes/ch/loway/oss/ari4java/generated/ari_2_0_0/models/BuildInfo_impl_ari_2_0_0.java delete mode 100644 classes/ch/loway/oss/ari4java/generated/ari_2_0_0/models/CallerID_impl_ari_2_0_0.java delete mode 100644 classes/ch/loway/oss/ari4java/generated/ari_2_0_0/models/ChannelCallerId_impl_ari_2_0_0.java delete mode 100644 classes/ch/loway/oss/ari4java/generated/ari_2_0_0/models/ChannelConnectedLine_impl_ari_2_0_0.java delete mode 100644 classes/ch/loway/oss/ari4java/generated/ari_2_0_0/models/ChannelCreated_impl_ari_2_0_0.java delete mode 100644 classes/ch/loway/oss/ari4java/generated/ari_2_0_0/models/ChannelDestroyed_impl_ari_2_0_0.java delete mode 100644 classes/ch/loway/oss/ari4java/generated/ari_2_0_0/models/ChannelDialplan_impl_ari_2_0_0.java delete mode 100644 classes/ch/loway/oss/ari4java/generated/ari_2_0_0/models/ChannelDtmfReceived_impl_ari_2_0_0.java delete mode 100644 classes/ch/loway/oss/ari4java/generated/ari_2_0_0/models/ChannelEnteredBridge_impl_ari_2_0_0.java delete mode 100644 classes/ch/loway/oss/ari4java/generated/ari_2_0_0/models/ChannelHangupRequest_impl_ari_2_0_0.java delete mode 100644 classes/ch/loway/oss/ari4java/generated/ari_2_0_0/models/ChannelHold_impl_ari_2_0_0.java delete mode 100644 classes/ch/loway/oss/ari4java/generated/ari_2_0_0/models/ChannelLeftBridge_impl_ari_2_0_0.java delete mode 100644 classes/ch/loway/oss/ari4java/generated/ari_2_0_0/models/ChannelStateChange_impl_ari_2_0_0.java delete mode 100644 classes/ch/loway/oss/ari4java/generated/ari_2_0_0/models/ChannelTalkingFinished_impl_ari_2_0_0.java delete mode 100644 classes/ch/loway/oss/ari4java/generated/ari_2_0_0/models/ChannelTalkingStarted_impl_ari_2_0_0.java delete mode 100644 classes/ch/loway/oss/ari4java/generated/ari_2_0_0/models/ChannelUnhold_impl_ari_2_0_0.java delete mode 100644 classes/ch/loway/oss/ari4java/generated/ari_2_0_0/models/ChannelUserevent_impl_ari_2_0_0.java delete mode 100644 classes/ch/loway/oss/ari4java/generated/ari_2_0_0/models/ChannelVarset_impl_ari_2_0_0.java delete mode 100644 classes/ch/loway/oss/ari4java/generated/ari_2_0_0/models/Channel_impl_ari_2_0_0.java delete mode 100644 classes/ch/loway/oss/ari4java/generated/ari_2_0_0/models/ConfigInfo_impl_ari_2_0_0.java delete mode 100644 classes/ch/loway/oss/ari4java/generated/ari_2_0_0/models/ConfigTuple_impl_ari_2_0_0.java delete mode 100644 classes/ch/loway/oss/ari4java/generated/ari_2_0_0/models/ContactInfo_impl_ari_2_0_0.java delete mode 100644 classes/ch/loway/oss/ari4java/generated/ari_2_0_0/models/ContactStatusChange_impl_ari_2_0_0.java delete mode 100644 classes/ch/loway/oss/ari4java/generated/ari_2_0_0/models/DeviceStateChanged_impl_ari_2_0_0.java delete mode 100644 classes/ch/loway/oss/ari4java/generated/ari_2_0_0/models/DeviceState_impl_ari_2_0_0.java delete mode 100644 classes/ch/loway/oss/ari4java/generated/ari_2_0_0/models/Dial_impl_ari_2_0_0.java delete mode 100644 classes/ch/loway/oss/ari4java/generated/ari_2_0_0/models/Dialed_impl_ari_2_0_0.java delete mode 100644 classes/ch/loway/oss/ari4java/generated/ari_2_0_0/models/DialplanCEP_impl_ari_2_0_0.java delete mode 100644 classes/ch/loway/oss/ari4java/generated/ari_2_0_0/models/EndpointStateChange_impl_ari_2_0_0.java delete mode 100644 classes/ch/loway/oss/ari4java/generated/ari_2_0_0/models/Endpoint_impl_ari_2_0_0.java delete mode 100644 classes/ch/loway/oss/ari4java/generated/ari_2_0_0/models/Event_impl_ari_2_0_0.java delete mode 100644 classes/ch/loway/oss/ari4java/generated/ari_2_0_0/models/FormatLangPair_impl_ari_2_0_0.java delete mode 100644 classes/ch/loway/oss/ari4java/generated/ari_2_0_0/models/LiveRecording_impl_ari_2_0_0.java delete mode 100644 classes/ch/loway/oss/ari4java/generated/ari_2_0_0/models/LogChannel_impl_ari_2_0_0.java delete mode 100644 classes/ch/loway/oss/ari4java/generated/ari_2_0_0/models/Message_impl_ari_2_0_0.java delete mode 100644 classes/ch/loway/oss/ari4java/generated/ari_2_0_0/models/MissingParams_impl_ari_2_0_0.java delete mode 100644 classes/ch/loway/oss/ari4java/generated/ari_2_0_0/models/Module_impl_ari_2_0_0.java delete mode 100644 classes/ch/loway/oss/ari4java/generated/ari_2_0_0/models/PeerStatusChange_impl_ari_2_0_0.java delete mode 100644 classes/ch/loway/oss/ari4java/generated/ari_2_0_0/models/Peer_impl_ari_2_0_0.java delete mode 100644 classes/ch/loway/oss/ari4java/generated/ari_2_0_0/models/PlaybackContinuing_impl_ari_2_0_0.java delete mode 100644 classes/ch/loway/oss/ari4java/generated/ari_2_0_0/models/PlaybackFinished_impl_ari_2_0_0.java delete mode 100644 classes/ch/loway/oss/ari4java/generated/ari_2_0_0/models/PlaybackStarted_impl_ari_2_0_0.java delete mode 100644 classes/ch/loway/oss/ari4java/generated/ari_2_0_0/models/Playback_impl_ari_2_0_0.java delete mode 100644 classes/ch/loway/oss/ari4java/generated/ari_2_0_0/models/RecordingFailed_impl_ari_2_0_0.java delete mode 100644 classes/ch/loway/oss/ari4java/generated/ari_2_0_0/models/RecordingFinished_impl_ari_2_0_0.java delete mode 100644 classes/ch/loway/oss/ari4java/generated/ari_2_0_0/models/RecordingStarted_impl_ari_2_0_0.java delete mode 100644 classes/ch/loway/oss/ari4java/generated/ari_2_0_0/models/SetId_impl_ari_2_0_0.java delete mode 100644 classes/ch/loway/oss/ari4java/generated/ari_2_0_0/models/Sound_impl_ari_2_0_0.java delete mode 100644 classes/ch/loway/oss/ari4java/generated/ari_2_0_0/models/StasisEnd_impl_ari_2_0_0.java delete mode 100644 classes/ch/loway/oss/ari4java/generated/ari_2_0_0/models/StasisStart_impl_ari_2_0_0.java delete mode 100644 classes/ch/loway/oss/ari4java/generated/ari_2_0_0/models/StatusInfo_impl_ari_2_0_0.java delete mode 100644 classes/ch/loway/oss/ari4java/generated/ari_2_0_0/models/StoredRecording_impl_ari_2_0_0.java delete mode 100644 classes/ch/loway/oss/ari4java/generated/ari_2_0_0/models/SystemInfo_impl_ari_2_0_0.java delete mode 100644 classes/ch/loway/oss/ari4java/generated/ari_2_0_0/models/TextMessageReceived_impl_ari_2_0_0.java delete mode 100644 classes/ch/loway/oss/ari4java/generated/ari_2_0_0/models/TextMessageVariable_impl_ari_2_0_0.java delete mode 100644 classes/ch/loway/oss/ari4java/generated/ari_2_0_0/models/TextMessage_impl_ari_2_0_0.java delete mode 100644 classes/ch/loway/oss/ari4java/generated/ari_2_0_0/models/Variable_impl_ari_2_0_0.java delete mode 100644 classes/ch/loway/oss/ari4java/generated/ari_3_0_0/AriBuilder_impl_ari_3_0_0.java delete mode 100644 classes/ch/loway/oss/ari4java/generated/ari_3_0_0/ClassTranslator_impl_ari_3_0_0.java delete mode 100644 classes/ch/loway/oss/ari4java/generated/ari_3_0_0/actions/ActionApplications_impl_ari_3_0_0.java delete mode 100644 classes/ch/loway/oss/ari4java/generated/ari_3_0_0/actions/ActionAsterisk_impl_ari_3_0_0.java delete mode 100644 classes/ch/loway/oss/ari4java/generated/ari_3_0_0/actions/ActionBridges_impl_ari_3_0_0.java delete mode 100644 classes/ch/loway/oss/ari4java/generated/ari_3_0_0/actions/ActionChannels_impl_ari_3_0_0.java delete mode 100644 classes/ch/loway/oss/ari4java/generated/ari_3_0_0/actions/ActionDeviceStates_impl_ari_3_0_0.java delete mode 100644 classes/ch/loway/oss/ari4java/generated/ari_3_0_0/actions/ActionEndpoints_impl_ari_3_0_0.java delete mode 100644 classes/ch/loway/oss/ari4java/generated/ari_3_0_0/actions/ActionEvents_impl_ari_3_0_0.java delete mode 100644 classes/ch/loway/oss/ari4java/generated/ari_3_0_0/actions/ActionPlaybacks_impl_ari_3_0_0.java delete mode 100644 classes/ch/loway/oss/ari4java/generated/ari_3_0_0/actions/ActionRecordings_impl_ari_3_0_0.java delete mode 100644 classes/ch/loway/oss/ari4java/generated/ari_3_0_0/actions/ActionSounds_impl_ari_3_0_0.java delete mode 100644 classes/ch/loway/oss/ari4java/generated/ari_3_0_0/models/ApplicationReplaced_impl_ari_3_0_0.java delete mode 100644 classes/ch/loway/oss/ari4java/generated/ari_3_0_0/models/Application_impl_ari_3_0_0.java delete mode 100644 classes/ch/loway/oss/ari4java/generated/ari_3_0_0/models/AsteriskInfo_impl_ari_3_0_0.java delete mode 100644 classes/ch/loway/oss/ari4java/generated/ari_3_0_0/models/BridgeAttendedTransfer_impl_ari_3_0_0.java delete mode 100644 classes/ch/loway/oss/ari4java/generated/ari_3_0_0/models/BridgeBlindTransfer_impl_ari_3_0_0.java delete mode 100644 classes/ch/loway/oss/ari4java/generated/ari_3_0_0/models/BridgeCreated_impl_ari_3_0_0.java delete mode 100644 classes/ch/loway/oss/ari4java/generated/ari_3_0_0/models/BridgeDestroyed_impl_ari_3_0_0.java delete mode 100644 classes/ch/loway/oss/ari4java/generated/ari_3_0_0/models/BridgeMerged_impl_ari_3_0_0.java delete mode 100644 classes/ch/loway/oss/ari4java/generated/ari_3_0_0/models/BridgeVideoSourceChanged_impl_ari_3_0_0.java delete mode 100644 classes/ch/loway/oss/ari4java/generated/ari_3_0_0/models/Bridge_impl_ari_3_0_0.java delete mode 100644 classes/ch/loway/oss/ari4java/generated/ari_3_0_0/models/BuildInfo_impl_ari_3_0_0.java delete mode 100644 classes/ch/loway/oss/ari4java/generated/ari_3_0_0/models/CallerID_impl_ari_3_0_0.java delete mode 100644 classes/ch/loway/oss/ari4java/generated/ari_3_0_0/models/ChannelCallerId_impl_ari_3_0_0.java delete mode 100644 classes/ch/loway/oss/ari4java/generated/ari_3_0_0/models/ChannelConnectedLine_impl_ari_3_0_0.java delete mode 100644 classes/ch/loway/oss/ari4java/generated/ari_3_0_0/models/ChannelCreated_impl_ari_3_0_0.java delete mode 100644 classes/ch/loway/oss/ari4java/generated/ari_3_0_0/models/ChannelDestroyed_impl_ari_3_0_0.java delete mode 100644 classes/ch/loway/oss/ari4java/generated/ari_3_0_0/models/ChannelDialplan_impl_ari_3_0_0.java delete mode 100644 classes/ch/loway/oss/ari4java/generated/ari_3_0_0/models/ChannelDtmfReceived_impl_ari_3_0_0.java delete mode 100644 classes/ch/loway/oss/ari4java/generated/ari_3_0_0/models/ChannelEnteredBridge_impl_ari_3_0_0.java delete mode 100644 classes/ch/loway/oss/ari4java/generated/ari_3_0_0/models/ChannelHangupRequest_impl_ari_3_0_0.java delete mode 100644 classes/ch/loway/oss/ari4java/generated/ari_3_0_0/models/ChannelHold_impl_ari_3_0_0.java delete mode 100644 classes/ch/loway/oss/ari4java/generated/ari_3_0_0/models/ChannelLeftBridge_impl_ari_3_0_0.java delete mode 100644 classes/ch/loway/oss/ari4java/generated/ari_3_0_0/models/ChannelStateChange_impl_ari_3_0_0.java delete mode 100644 classes/ch/loway/oss/ari4java/generated/ari_3_0_0/models/ChannelTalkingFinished_impl_ari_3_0_0.java delete mode 100644 classes/ch/loway/oss/ari4java/generated/ari_3_0_0/models/ChannelTalkingStarted_impl_ari_3_0_0.java delete mode 100644 classes/ch/loway/oss/ari4java/generated/ari_3_0_0/models/ChannelUnhold_impl_ari_3_0_0.java delete mode 100644 classes/ch/loway/oss/ari4java/generated/ari_3_0_0/models/ChannelUserevent_impl_ari_3_0_0.java delete mode 100644 classes/ch/loway/oss/ari4java/generated/ari_3_0_0/models/ChannelVarset_impl_ari_3_0_0.java delete mode 100644 classes/ch/loway/oss/ari4java/generated/ari_3_0_0/models/Channel_impl_ari_3_0_0.java delete mode 100644 classes/ch/loway/oss/ari4java/generated/ari_3_0_0/models/ConfigInfo_impl_ari_3_0_0.java delete mode 100644 classes/ch/loway/oss/ari4java/generated/ari_3_0_0/models/ConfigTuple_impl_ari_3_0_0.java delete mode 100644 classes/ch/loway/oss/ari4java/generated/ari_3_0_0/models/ContactInfo_impl_ari_3_0_0.java delete mode 100644 classes/ch/loway/oss/ari4java/generated/ari_3_0_0/models/ContactStatusChange_impl_ari_3_0_0.java delete mode 100644 classes/ch/loway/oss/ari4java/generated/ari_3_0_0/models/DeviceStateChanged_impl_ari_3_0_0.java delete mode 100644 classes/ch/loway/oss/ari4java/generated/ari_3_0_0/models/DeviceState_impl_ari_3_0_0.java delete mode 100644 classes/ch/loway/oss/ari4java/generated/ari_3_0_0/models/Dial_impl_ari_3_0_0.java delete mode 100644 classes/ch/loway/oss/ari4java/generated/ari_3_0_0/models/Dialed_impl_ari_3_0_0.java delete mode 100644 classes/ch/loway/oss/ari4java/generated/ari_3_0_0/models/DialplanCEP_impl_ari_3_0_0.java delete mode 100644 classes/ch/loway/oss/ari4java/generated/ari_3_0_0/models/EndpointStateChange_impl_ari_3_0_0.java delete mode 100644 classes/ch/loway/oss/ari4java/generated/ari_3_0_0/models/Endpoint_impl_ari_3_0_0.java delete mode 100644 classes/ch/loway/oss/ari4java/generated/ari_3_0_0/models/Event_impl_ari_3_0_0.java delete mode 100644 classes/ch/loway/oss/ari4java/generated/ari_3_0_0/models/FormatLangPair_impl_ari_3_0_0.java delete mode 100644 classes/ch/loway/oss/ari4java/generated/ari_3_0_0/models/LiveRecording_impl_ari_3_0_0.java delete mode 100644 classes/ch/loway/oss/ari4java/generated/ari_3_0_0/models/LogChannel_impl_ari_3_0_0.java delete mode 100644 classes/ch/loway/oss/ari4java/generated/ari_3_0_0/models/Message_impl_ari_3_0_0.java delete mode 100644 classes/ch/loway/oss/ari4java/generated/ari_3_0_0/models/MissingParams_impl_ari_3_0_0.java delete mode 100644 classes/ch/loway/oss/ari4java/generated/ari_3_0_0/models/Module_impl_ari_3_0_0.java delete mode 100644 classes/ch/loway/oss/ari4java/generated/ari_3_0_0/models/PeerStatusChange_impl_ari_3_0_0.java delete mode 100644 classes/ch/loway/oss/ari4java/generated/ari_3_0_0/models/Peer_impl_ari_3_0_0.java delete mode 100644 classes/ch/loway/oss/ari4java/generated/ari_3_0_0/models/PlaybackContinuing_impl_ari_3_0_0.java delete mode 100644 classes/ch/loway/oss/ari4java/generated/ari_3_0_0/models/PlaybackFinished_impl_ari_3_0_0.java delete mode 100644 classes/ch/loway/oss/ari4java/generated/ari_3_0_0/models/PlaybackStarted_impl_ari_3_0_0.java delete mode 100644 classes/ch/loway/oss/ari4java/generated/ari_3_0_0/models/Playback_impl_ari_3_0_0.java delete mode 100644 classes/ch/loway/oss/ari4java/generated/ari_3_0_0/models/RecordingFailed_impl_ari_3_0_0.java delete mode 100644 classes/ch/loway/oss/ari4java/generated/ari_3_0_0/models/RecordingFinished_impl_ari_3_0_0.java delete mode 100644 classes/ch/loway/oss/ari4java/generated/ari_3_0_0/models/RecordingStarted_impl_ari_3_0_0.java delete mode 100644 classes/ch/loway/oss/ari4java/generated/ari_3_0_0/models/SetId_impl_ari_3_0_0.java delete mode 100644 classes/ch/loway/oss/ari4java/generated/ari_3_0_0/models/Sound_impl_ari_3_0_0.java delete mode 100644 classes/ch/loway/oss/ari4java/generated/ari_3_0_0/models/StasisEnd_impl_ari_3_0_0.java delete mode 100644 classes/ch/loway/oss/ari4java/generated/ari_3_0_0/models/StasisStart_impl_ari_3_0_0.java delete mode 100644 classes/ch/loway/oss/ari4java/generated/ari_3_0_0/models/StatusInfo_impl_ari_3_0_0.java delete mode 100644 classes/ch/loway/oss/ari4java/generated/ari_3_0_0/models/StoredRecording_impl_ari_3_0_0.java delete mode 100644 classes/ch/loway/oss/ari4java/generated/ari_3_0_0/models/SystemInfo_impl_ari_3_0_0.java delete mode 100644 classes/ch/loway/oss/ari4java/generated/ari_3_0_0/models/TextMessageReceived_impl_ari_3_0_0.java delete mode 100644 classes/ch/loway/oss/ari4java/generated/ari_3_0_0/models/TextMessageVariable_impl_ari_3_0_0.java delete mode 100644 classes/ch/loway/oss/ari4java/generated/ari_3_0_0/models/TextMessage_impl_ari_3_0_0.java delete mode 100644 classes/ch/loway/oss/ari4java/generated/ari_3_0_0/models/Variable_impl_ari_3_0_0.java diff --git a/.gitignore b/.gitignore index 52431af8..6f6e6967 100644 --- a/.gitignore +++ b/.gitignore @@ -6,7 +6,8 @@ *.ear ari4java/* -build/* +build/ +bin/ dist/* nbproject/* libs/* @@ -24,3 +25,5 @@ build.xml # macbook .DS_Store +# ignore generated code artifacts - they will be rebuilt by gradle as needed +classes/ch/loway/oss/ari4java/generated/ \ No newline at end of file diff --git a/classes/ch/loway/oss/ari4java/generated/ActionApplications.java b/classes/ch/loway/oss/ari4java/generated/ActionApplications.java deleted file mode 100644 index 025c5fe9..00000000 --- a/classes/ch/loway/oss/ari4java/generated/ActionApplications.java +++ /dev/null @@ -1,109 +0,0 @@ -package ch.loway.oss.ari4java.generated; - -// ---------------------------------------------------- -// THIS CLASS WAS GENERATED AUTOMATICALLY -// PLEASE DO NOT EDIT -// Generated on: Tue Dec 19 09:55:48 CET 2017 -// ---------------------------------------------------- - -import java.util.Date; -import java.util.List; -import java.util.Map; -import java.util.ArrayList; -import ch.loway.oss.ari4java.tools.RestException; -import ch.loway.oss.ari4java.tools.AriCallback; -import ch.loway.oss.ari4java.tools.tags.*; - -/********************************************************** - * - * Generated by: JavaInterface - *********************************************************/ - - -public interface ActionApplications { - -// void subscribe String String AriCallback callback -/********************************************************** - * - * - * @since ari_0_0_1 - *********************************************************/ -public void subscribe(String applicationName, String eventSource, AriCallback callback); - - - -// Application subscribe String String -/********************************************************** - * Subscribe an application to a event source. - * Returns the state of the application after the subscriptions have changed - * - * @since ari_0_0_1 - *********************************************************/ -public Application subscribe(String applicationName, String eventSource) throws RestException; - - - -// Application get String -/********************************************************** - * Get details of an application. - * - * - * @since ari_0_0_1 - *********************************************************/ -public Application get(String applicationName) throws RestException; - - - -// void get String AriCallback callback -/********************************************************** - * - * - * @since ari_0_0_1 - *********************************************************/ -public void get(String applicationName, AriCallback callback); - - - -// void unsubscribe String String AriCallback callback -/********************************************************** - * - * - * @since ari_0_0_1 - *********************************************************/ -public void unsubscribe(String applicationName, String eventSource, AriCallback callback); - - - -// void list AriCallback> callback -/********************************************************** - * - * - * @since ari_0_0_1 - *********************************************************/ -public void list(AriCallback> callback); - - - -// List list -/********************************************************** - * List all applications. - * - * - * @since ari_0_0_1 - *********************************************************/ -public List list() throws RestException; - - - -// Application unsubscribe String String -/********************************************************** - * Unsubscribe an application from an event source. - * Returns the state of the application after the subscriptions have changed - * - * @since ari_0_0_1 - *********************************************************/ -public Application unsubscribe(String applicationName, String eventSource) throws RestException; - - -} -; diff --git a/classes/ch/loway/oss/ari4java/generated/ActionAsterisk.java b/classes/ch/loway/oss/ari4java/generated/ActionAsterisk.java deleted file mode 100644 index 832ce5d3..00000000 --- a/classes/ch/loway/oss/ari4java/generated/ActionAsterisk.java +++ /dev/null @@ -1,340 +0,0 @@ -package ch.loway.oss.ari4java.generated; - -// ---------------------------------------------------- -// THIS CLASS WAS GENERATED AUTOMATICALLY -// PLEASE DO NOT EDIT -// Generated on: Tue Dec 19 09:55:48 CET 2017 -// ---------------------------------------------------- - -import java.util.Date; -import java.util.List; -import java.util.Map; -import java.util.ArrayList; -import ch.loway.oss.ari4java.tools.RestException; -import ch.loway.oss.ari4java.tools.AriCallback; -import ch.loway.oss.ari4java.tools.tags.*; - -/********************************************************** - * - * Generated by: JavaInterface - *********************************************************/ - - -public interface ActionAsterisk { - -// void updateObject String String String Map AriCallback> callback -/********************************************************** - * - * - * @since ari_1_8_0 - *********************************************************/ -public void updateObject(String configClass, String objectType, String id, Map fields, AriCallback> callback); - - - -// void listModules AriCallback> callback -/********************************************************** - * - * - * @since ari_1_8_0 - *********************************************************/ -public void listModules(AriCallback> callback); - - - -// void getModule String AriCallback callback -/********************************************************** - * - * - * @since ari_1_8_0 - *********************************************************/ -public void getModule(String moduleName, AriCallback callback); - - - -// void unloadModule String AriCallback callback -/********************************************************** - * - * - * @since ari_1_8_0 - *********************************************************/ -public void unloadModule(String moduleName, AriCallback callback); - - - -// void rotateLog String -/********************************************************** - * Rotates a log channel. - * - * - * @since ari_1_9_0 - *********************************************************/ -public void rotateLog(String logChannelName) throws RestException; - - - -// void deleteObject String String String AriCallback callback -/********************************************************** - * - * - * @since ari_1_8_0 - *********************************************************/ -public void deleteObject(String configClass, String objectType, String id, AriCallback callback); - - - -// void deleteLog String -/********************************************************** - * Deletes a log channel. - * - * - * @since ari_1_9_0 - *********************************************************/ -public void deleteLog(String logChannelName) throws RestException; - - - -// void loadModule String -/********************************************************** - * Load an Asterisk module. - * - * - * @since ari_1_8_0 - *********************************************************/ -public void loadModule(String moduleName) throws RestException; - - - -// void unloadModule String -/********************************************************** - * Unload an Asterisk module. - * - * - * @since ari_1_8_0 - *********************************************************/ -public void unloadModule(String moduleName) throws RestException; - - - -// Variable getGlobalVar String -/********************************************************** - * Get the value of a global variable. - * - * - * @since ari_0_0_1 - *********************************************************/ -public Variable getGlobalVar(String variable) throws RestException; - - - -// void setGlobalVar String String -/********************************************************** - * Set the value of a global variable. - * - * - * @since ari_0_0_1 - *********************************************************/ -public void setGlobalVar(String variable, String value) throws RestException; - - - -// List updateObject String String String Map -/********************************************************** - * Create or update a dynamic configuration object. - * - * - * @since ari_1_8_0 - *********************************************************/ -public List updateObject(String configClass, String objectType, String id, Map fields) throws RestException; - - - -// List getObject String String String -/********************************************************** - * Retrieve a dynamic configuration object. - * - * - * @since ari_1_8_0 - *********************************************************/ -public List getObject(String configClass, String objectType, String id) throws RestException; - - - -// Module getModule String -/********************************************************** - * Get Asterisk module information. - * - * - * @since ari_1_8_0 - *********************************************************/ -public Module getModule(String moduleName) throws RestException; - - - -// void rotateLog String AriCallback callback -/********************************************************** - * - * - * @since ari_1_9_0 - *********************************************************/ -public void rotateLog(String logChannelName, AriCallback callback); - - - -// void getGlobalVar String AriCallback callback -/********************************************************** - * - * - * @since ari_0_0_1 - *********************************************************/ -public void getGlobalVar(String variable, AriCallback callback); - - - -// void loadModule String AriCallback callback -/********************************************************** - * - * - * @since ari_1_8_0 - *********************************************************/ -public void loadModule(String moduleName, AriCallback callback); - - - -// AsteriskInfo getInfo String -/********************************************************** - * Gets Asterisk system information. - * - * - * @since ari_0_0_1 - *********************************************************/ -public AsteriskInfo getInfo(String only) throws RestException; - - - -// void addLog String String AriCallback callback -/********************************************************** - * - * - * @since ari_1_9_0 - *********************************************************/ -public void addLog(String logChannelName, String configuration, AriCallback callback); - - - -// void setGlobalVar String String AriCallback callback -/********************************************************** - * - * - * @since ari_0_0_1 - *********************************************************/ -public void setGlobalVar(String variable, String value, AriCallback callback); - - - -// void reloadModule String AriCallback callback -/********************************************************** - * - * - * @since ari_1_8_0 - *********************************************************/ -public void reloadModule(String moduleName, AriCallback callback); - - - -// List listLogChannels -/********************************************************** - * Gets Asterisk log channel information. - * - * - * @since ari_1_9_0 - *********************************************************/ -public List listLogChannels() throws RestException; - - - -// void getInfo String AriCallback callback -/********************************************************** - * - * - * @since ari_0_0_1 - *********************************************************/ -public void getInfo(String only, AriCallback callback); - - - -// void getObject String String String AriCallback> callback -/********************************************************** - * - * - * @since ari_1_8_0 - *********************************************************/ -public void getObject(String configClass, String objectType, String id, AriCallback> callback); - - - -// void addLog String String -/********************************************************** - * Adds a log channel. - * - * - * @since ari_1_9_0 - *********************************************************/ -public void addLog(String logChannelName, String configuration) throws RestException; - - - -// void listLogChannels AriCallback> callback -/********************************************************** - * - * - * @since ari_1_9_0 - *********************************************************/ -public void listLogChannels(AriCallback> callback); - - - -// List listModules -/********************************************************** - * List Asterisk modules. - * - * - * @since ari_1_8_0 - *********************************************************/ -public List listModules() throws RestException; - - - -// void reloadModule String -/********************************************************** - * Reload an Asterisk module. - * - * - * @since ari_1_8_0 - *********************************************************/ -public void reloadModule(String moduleName) throws RestException; - - - -// void deleteLog String AriCallback callback -/********************************************************** - * - * - * @since ari_1_9_0 - *********************************************************/ -public void deleteLog(String logChannelName, AriCallback callback); - - - -// void deleteObject String String String -/********************************************************** - * Delete a dynamic configuration object. - * - * - * @since ari_1_8_0 - *********************************************************/ -public void deleteObject(String configClass, String objectType, String id) throws RestException; - - -} -; diff --git a/classes/ch/loway/oss/ari4java/generated/ActionBridges.java b/classes/ch/loway/oss/ari4java/generated/ActionBridges.java deleted file mode 100644 index dc088380..00000000 --- a/classes/ch/loway/oss/ari4java/generated/ActionBridges.java +++ /dev/null @@ -1,403 +0,0 @@ -package ch.loway.oss.ari4java.generated; - -// ---------------------------------------------------- -// THIS CLASS WAS GENERATED AUTOMATICALLY -// PLEASE DO NOT EDIT -// Generated on: Tue Dec 19 09:55:48 CET 2017 -// ---------------------------------------------------- - -import java.util.Date; -import java.util.List; -import java.util.Map; -import java.util.ArrayList; -import ch.loway.oss.ari4java.tools.RestException; -import ch.loway.oss.ari4java.tools.AriCallback; -import ch.loway.oss.ari4java.tools.tags.*; - -/********************************************************** - * - * Generated by: JavaInterface - *********************************************************/ - - -public interface ActionBridges { - -// void create String String String AriCallback callback -/********************************************************** - * - * - * @since ari_1_5_0 - *********************************************************/ -public void create(String type, String bridgeId, String name, AriCallback callback); - - - -// Playback play String String String int int -/********************************************************** - * Start playback of media on a bridge. - * The media URI may be any of a number of URI's. Currently sound: and recording: URI's are supported. This operation creates a playback resource that can be used to control the playback of media (pause, rewind, fast forward, etc.) - * - * @since ari_0_0_1 - *********************************************************/ -public Playback play(String bridgeId, String media, String lang, int offsetms, int skipms) throws RestException; - - - -// void play String String String int int AriCallback callback -/********************************************************** - * - * - * @since ari_0_0_1 - *********************************************************/ -public void play(String bridgeId, String media, String lang, int offsetms, int skipms, AriCallback callback); - - - -// void play String String String int int String AriCallback callback -/********************************************************** - * - * - * @since ari_1_5_0 - *********************************************************/ -public void play(String bridgeId, String media, String lang, int offsetms, int skipms, String playbackId, AriCallback callback); - - - -// void addChannel String String String -/********************************************************** - * Add a channel to a bridge. - * - * - * @since ari_0_0_1 - *********************************************************/ -public void addChannel(String bridgeId, String channel, String role) throws RestException; - - - -// void startMoh String String AriCallback callback -/********************************************************** - * - * - * @since ari_0_0_1 - *********************************************************/ -public void startMoh(String bridgeId, String mohClass, AriCallback callback); - - - -// Bridge get String -/********************************************************** - * Get bridge details. - * - * - * @since ari_0_0_1 - *********************************************************/ -public Bridge get(String bridgeId) throws RestException; - - - -// void record String String String int int String boolean String AriCallback callback -/********************************************************** - * - * - * @since ari_0_0_1 - *********************************************************/ -public void record(String bridgeId, String name, String format, int maxDurationSeconds, int maxSilenceSeconds, String ifExists, boolean beep, String terminateOn, AriCallback callback); - - - -// void stopMoh String -/********************************************************** - * Stop playing music on hold to a bridge. - * This will only stop music on hold being played via POST bridges/{bridgeId}/moh. - * - * @since ari_0_0_1 - *********************************************************/ -public void stopMoh(String bridgeId) throws RestException; - - - -// void createWithId String String String AriCallback callback -/********************************************************** - * - * - * @since ari_1_7_0 - *********************************************************/ -public void createWithId(String type, String bridgeId, String name, AriCallback callback); - - - -// void get String AriCallback callback -/********************************************************** - * - * - * @since ari_0_0_1 - *********************************************************/ -public void get(String bridgeId, AriCallback callback); - - - -// List list -/********************************************************** - * List all active bridges in Asterisk. - * - * - * @since ari_0_0_1 - *********************************************************/ -public List list() throws RestException; - - - -// void list AriCallback> callback -/********************************************************** - * - * - * @since ari_0_0_1 - *********************************************************/ -public void list(AriCallback> callback); - - - -// void destroy String -/********************************************************** - * Shut down a bridge. - * If any channels are in this bridge, they will be removed and resume whatever they were doing beforehand. - * - * @since ari_0_0_1 - *********************************************************/ -public void destroy(String bridgeId) throws RestException; - - - -// Playback playWithId String String String String int int -/********************************************************** - * Start playback of media on a bridge. - * The media URI may be any of a number of URI's. Currently sound: and recording: URI's are supported. This operation creates a playback resource that can be used to control the playback of media (pause, rewind, fast forward, etc.) - * - * @since ari_1_5_0 - *********************************************************/ -public Playback playWithId(String bridgeId, String playbackId, String media, String lang, int offsetms, int skipms) throws RestException; - - - -// Bridge create String String String -/********************************************************** - * Create a new bridge. - * This bridge persists until it has been shut down, or Asterisk has been shut down. - * - * @since ari_1_5_0 - *********************************************************/ -public Bridge create(String type, String bridgeId, String name) throws RestException; - - - -// Bridge create String String -/********************************************************** - * Create a new bridge. - * This bridge persists until it has been shut down, or Asterisk has been shut down. - * - * @since ari_1_0_0 - *********************************************************/ -public Bridge create(String type, String name) throws RestException; - - - -// void addChannel String String String AriCallback callback -/********************************************************** - * - * - * @since ari_0_0_1 - *********************************************************/ -public void addChannel(String bridgeId, String channel, String role, AriCallback callback); - - - -// LiveRecording record String String String int int String boolean String -/********************************************************** - * Start a recording. - * This records the mixed audio from all channels participating in this bridge. - * - * @since ari_0_0_1 - *********************************************************/ -public LiveRecording record(String bridgeId, String name, String format, int maxDurationSeconds, int maxSilenceSeconds, String ifExists, boolean beep, String terminateOn) throws RestException; - - - -// void playWithId String String String String int int AriCallback callback -/********************************************************** - * - * - * @since ari_1_5_0 - *********************************************************/ -public void playWithId(String bridgeId, String playbackId, String media, String lang, int offsetms, int skipms, AriCallback callback); - - - -// void create_or_update_with_id String String String AriCallback callback -/********************************************************** - * - * - * @since ari_1_5_0 - *********************************************************/ -public void create_or_update_with_id(String type, String bridgeId, String name, AriCallback callback); - - - -// void setVideoSource String String -/********************************************************** - * Set a channel as the video source in a multi-party mixing bridge. This operation has no effect on bridges with two or fewer participants. - * - * - * @since ari_2_0_0 - *********************************************************/ -public void setVideoSource(String bridgeId, String channelId) throws RestException; - - - -// void removeChannel String String -/********************************************************** - * Remove a channel from a bridge. - * - * - * @since ari_0_0_1 - *********************************************************/ -public void removeChannel(String bridgeId, String channel) throws RestException; - - - -// void destroy String AriCallback callback -/********************************************************** - * - * - * @since ari_0_0_1 - *********************************************************/ -public void destroy(String bridgeId, AriCallback callback); - - - -// Bridge create_or_update_with_id String String String -/********************************************************** - * Create a new bridge or updates an existing one. - * This bridge persists until it has been shut down, or Asterisk has been shut down. - * - * @since ari_1_5_0 - *********************************************************/ -public Bridge create_or_update_with_id(String type, String bridgeId, String name) throws RestException; - - - -// Bridge create String -/********************************************************** - * Create a new bridge. - * This bridge persists until it has been shut down, or Asterisk has been shut down. - * - * @since ari_0_0_1 - *********************************************************/ -public Bridge create(String type) throws RestException; - - - -// void stopMoh String AriCallback callback -/********************************************************** - * - * - * @since ari_0_0_1 - *********************************************************/ -public void stopMoh(String bridgeId, AriCallback callback); - - - -// void removeChannel String String AriCallback callback -/********************************************************** - * - * - * @since ari_0_0_1 - *********************************************************/ -public void removeChannel(String bridgeId, String channel, AriCallback callback); - - - -// Playback play String String String int int String -/********************************************************** - * Start playback of media on a bridge. - * The media URI may be any of a number of URI's. Currently sound:, recording:, number:, digits:, characters:, and tone: URI's are supported. This operation creates a playback resource that can be used to control the playback of media (pause, rewind, fast forward, etc.) - * - * @since ari_1_5_0 - *********************************************************/ -public Playback play(String bridgeId, String media, String lang, int offsetms, int skipms, String playbackId) throws RestException; - - - -// void clearVideoSource String -/********************************************************** - * Removes any explicit video source in a multi-party mixing bridge. This operation has no effect on bridges with two or fewer participants. When no explicit video source is set, talk detection will be used to determine the active video stream. - * - * - * @since ari_2_0_0 - *********************************************************/ -public void clearVideoSource(String bridgeId) throws RestException; - - - -// void create String AriCallback callback -/********************************************************** - * - * - * @since ari_0_0_1 - *********************************************************/ -public void create(String type, AriCallback callback); - - - -// void setVideoSource String String AriCallback callback -/********************************************************** - * - * - * @since ari_2_0_0 - *********************************************************/ -public void setVideoSource(String bridgeId, String channelId, AriCallback callback); - - - -// void startMoh String String -/********************************************************** - * Play music on hold to a bridge or change the MOH class that is playing. - * - * - * @since ari_0_0_1 - *********************************************************/ -public void startMoh(String bridgeId, String mohClass) throws RestException; - - - -// void create String String AriCallback callback -/********************************************************** - * - * - * @since ari_1_0_0 - *********************************************************/ -public void create(String type, String name, AriCallback callback); - - - -// void clearVideoSource String AriCallback callback -/********************************************************** - * - * - * @since ari_2_0_0 - *********************************************************/ -public void clearVideoSource(String bridgeId, AriCallback callback); - - - -// Bridge createWithId String String String -/********************************************************** - * Create a new bridge or updates an existing one. - * This bridge persists until it has been shut down, or Asterisk has been shut down. - * - * @since ari_1_7_0 - *********************************************************/ -public Bridge createWithId(String type, String bridgeId, String name) throws RestException; - - -} -; diff --git a/classes/ch/loway/oss/ari4java/generated/ActionChannels.java b/classes/ch/loway/oss/ari4java/generated/ActionChannels.java deleted file mode 100644 index 0e9c5479..00000000 --- a/classes/ch/loway/oss/ari4java/generated/ActionChannels.java +++ /dev/null @@ -1,781 +0,0 @@ -package ch.loway.oss.ari4java.generated; - -// ---------------------------------------------------- -// THIS CLASS WAS GENERATED AUTOMATICALLY -// PLEASE DO NOT EDIT -// Generated on: Tue Dec 19 09:55:48 CET 2017 -// ---------------------------------------------------- - -import java.util.Date; -import java.util.List; -import java.util.Map; -import java.util.ArrayList; -import ch.loway.oss.ari4java.tools.RestException; -import ch.loway.oss.ari4java.tools.AriCallback; -import ch.loway.oss.ari4java.tools.tags.*; - -/********************************************************** - * - * Generated by: JavaInterface - *********************************************************/ - - -public interface ActionChannels { - -// void play String String String int int String AriCallback callback -/********************************************************** - * - * - * @since ari_1_5_0 - *********************************************************/ -public void play(String channelId, String media, String lang, int offsetms, int skipms, String playbackId, AriCallback callback); - - - -// void redirect String String AriCallback callback -/********************************************************** - * - * - * @since ari_1_8_0 - *********************************************************/ -public void redirect(String channelId, String endpoint, AriCallback callback); - - - -// void startMoh String String AriCallback callback -/********************************************************** - * - * - * @since ari_0_0_1 - *********************************************************/ -public void startMoh(String channelId, String mohClass, AriCallback callback); - - - -// void getChannelVar String String AriCallback callback -/********************************************************** - * - * - * @since ari_0_0_1 - *********************************************************/ -public void getChannelVar(String channelId, String variable, AriCallback callback); - - - -// void stopMoh String -/********************************************************** - * Stop playing music on hold to a channel. - * - * - * @since ari_0_0_1 - *********************************************************/ -public void stopMoh(String channelId) throws RestException; - - - -// Channel snoopChannelWithId String String String String String String -/********************************************************** - * Start snooping. - * Snoop (spy/whisper) on a specific channel. - * - * @since ari_1_5_0 - *********************************************************/ -public Channel snoopChannelWithId(String channelId, String snoopId, String spy, String whisper, String app, String appArgs) throws RestException; - - - -// void answer String -/********************************************************** - * Answer a channel. - * - * - * @since ari_0_0_1 - *********************************************************/ -public void answer(String channelId) throws RestException; - - - -// void stopSilence String AriCallback callback -/********************************************************** - * - * - * @since ari_0_0_1 - *********************************************************/ -public void stopSilence(String channelId, AriCallback callback); - - - -// Playback playWithId String String String String int int -/********************************************************** - * Start playback of media and specify the playbackId. - * The media URI may be any of a number of URI's. Currently sound: and recording: URI's are supported. This operation creates a playback resource that can be used to control the playback of media (pause, rewind, fast forward, etc.) - * - * @since ari_1_5_0 - *********************************************************/ -public Playback playWithId(String channelId, String playbackId, String media, String lang, int offsetms, int skipms) throws RestException; - - - -// void unhold String -/********************************************************** - * Remove a channel from hold. - * - * - * @since ari_0_0_1 - *********************************************************/ -public void unhold(String channelId) throws RestException; - - - -// LiveRecording record String String String int int String boolean String -/********************************************************** - * Start a recording. - * Record audio from a channel. Note that this will not capture audio sent to the channel. The bridge itself has a record feature if that's what you want. - * - * @since ari_0_0_1 - *********************************************************/ -public LiveRecording record(String channelId, String name, String format, int maxDurationSeconds, int maxSilenceSeconds, String ifExists, boolean beep, String terminateOn) throws RestException; - - - -// void playWithId String String String String int int AriCallback callback -/********************************************************** - * - * - * @since ari_1_5_0 - *********************************************************/ -public void playWithId(String channelId, String playbackId, String media, String lang, int offsetms, int skipms, AriCallback callback); - - - -// void unhold String AriCallback callback -/********************************************************** - * - * - * @since ari_0_0_1 - *********************************************************/ -public void unhold(String channelId, AriCallback callback); - - - -// void ring String -/********************************************************** - * Indicate ringing to a channel. - * - * - * @since ari_0_0_1 - *********************************************************/ -public void ring(String channelId) throws RestException; - - - -// void startSilence String -/********************************************************** - * Play silence to a channel. - * Using media operations such as /play on a channel playing silence in this manner will suspend silence without resuming automatically. - * - * @since ari_0_0_1 - *********************************************************/ -public void startSilence(String channelId) throws RestException; - - - -// void setChannelVar String String String AriCallback callback -/********************************************************** - * - * - * @since ari_0_0_1 - *********************************************************/ -public void setChannelVar(String channelId, String variable, String value, AriCallback callback); - - - -// void originate String String String long String String String String int Map String String String AriCallback callback -/********************************************************** - * - * - * @since ari_1_7_0 - *********************************************************/ -public void originate(String endpoint, String extension, String context, long priority, String label, String app, String appArgs, String callerId, int timeout, Map variables, String channelId, String otherChannelId, String originator, AriCallback callback); - - - -// void list AriCallback> callback -/********************************************************** - * - * - * @since ari_0_0_1 - *********************************************************/ -public void list(AriCallback> callback); - - - -// void stopMoh String AriCallback callback -/********************************************************** - * - * - * @since ari_0_0_1 - *********************************************************/ -public void stopMoh(String channelId, AriCallback callback); - - - -// Channel originateWithId String String String String long String String String int Map String -/********************************************************** - * Create a new channel (originate with id). - * The new channel is created immediately and a snapshot of it returned. If a Stasis application is provided it will be automatically subscribed to the originated channel for further events and updates. - * - * @since ari_1_5_0 - *********************************************************/ -public Channel originateWithId(String channelId, String endpoint, String extension, String context, long priority, String app, String appArgs, String callerId, int timeout, Map variables, String otherChannelId) throws RestException; - - - -// void answer String AriCallback callback -/********************************************************** - * - * - * @since ari_0_0_1 - *********************************************************/ -public void answer(String channelId, AriCallback callback); - - - -// Channel snoopChannel String String String String String -/********************************************************** - * Start snooping. - * Snoop (spy/whisper) on a specific channel. - * - * @since ari_0_0_1 - *********************************************************/ -public Channel snoopChannel(String channelId, String spy, String whisper, String app, String appArgs) throws RestException; - - - -// void dial String String int AriCallback callback -/********************************************************** - * - * - * @since ari_1_10_0 - *********************************************************/ -public void dial(String channelId, String caller, int timeout, AriCallback callback); - - - -// void stopSilence String -/********************************************************** - * Stop playing silence to a channel. - * - * - * @since ari_0_0_1 - *********************************************************/ -public void stopSilence(String channelId) throws RestException; - - - -// void originate String String String long String String String int Map String String AriCallback callback -/********************************************************** - * - * - * @since ari_1_5_0 - *********************************************************/ -public void originate(String endpoint, String extension, String context, long priority, String app, String appArgs, String callerId, int timeout, Map variables, String channelId, String otherChannelId, AriCallback callback); - - - -// void continueInDialplan String String String int AriCallback callback -/********************************************************** - * - * - * @since ari_0_0_1 - *********************************************************/ -public void continueInDialplan(String channelId, String context, String extension, int priority, AriCallback callback); - - - -// void setChannelVar String String String -/********************************************************** - * Set the value of a channel variable or function. - * - * - * @since ari_0_0_1 - *********************************************************/ -public void setChannelVar(String channelId, String variable, String value) throws RestException; - - - -// void startMoh String String -/********************************************************** - * Play music on hold to a channel. - * Using media operations such as /play on a channel playing MOH in this manner will suspend MOH without resuming automatically. If continuing music on hold is desired, the stasis application must reinitiate music on hold. - * - * @since ari_0_0_1 - *********************************************************/ -public void startMoh(String channelId, String mohClass) throws RestException; - - - -// void snoopChannelWithId String String String String String String AriCallback callback -/********************************************************** - * - * - * @since ari_1_5_0 - *********************************************************/ -public void snoopChannelWithId(String channelId, String snoopId, String spy, String whisper, String app, String appArgs, AriCallback callback); - - - -// void originateWithId String String String String long String String String String int Map String String String AriCallback callback -/********************************************************** - * - * - * @since ari_1_10_0 - *********************************************************/ -public void originateWithId(String channelId, String endpoint, String extension, String context, long priority, String label, String app, String appArgs, String callerId, int timeout, Map variables, String otherChannelId, String originator, String formats, AriCallback callback); - - - -// void continueInDialplan String String String int String -/********************************************************** - * Exit application; continue execution in the dialplan. - * - * - * @since ari_1_7_0 - *********************************************************/ -public void continueInDialplan(String channelId, String context, String extension, int priority, String label) throws RestException; - - - -// Channel get String -/********************************************************** - * Channel details. - * - * - * @since ari_0_0_1 - *********************************************************/ -public Channel get(String channelId) throws RestException; - - - -// Playback play String String String int int -/********************************************************** - * Start playback of media. - * The media URI may be any of a number of URI's. Currently sound: and recording: URI's are supported. This operation creates a playback resource that can be used to control the playback of media (pause, rewind, fast forward, etc.) - * - * @since ari_0_0_1 - *********************************************************/ -public Playback play(String channelId, String media, String lang, int offsetms, int skipms) throws RestException; - - - -// void play String String String int int AriCallback callback -/********************************************************** - * - * - * @since ari_0_0_1 - *********************************************************/ -public void play(String channelId, String media, String lang, int offsetms, int skipms, AriCallback callback); - - - -// void ringStop String -/********************************************************** - * Stop ringing indication on a channel if locally generated. - * - * - * @since ari_0_0_1 - *********************************************************/ -public void ringStop(String channelId) throws RestException; - - - -// void startSilence String AriCallback callback -/********************************************************** - * - * - * @since ari_0_0_1 - *********************************************************/ -public void startSilence(String channelId, AriCallback callback); - - - -// void record String String String int int String boolean String AriCallback callback -/********************************************************** - * - * - * @since ari_0_0_1 - *********************************************************/ -public void record(String channelId, String name, String format, int maxDurationSeconds, int maxSilenceSeconds, String ifExists, boolean beep, String terminateOn, AriCallback callback); - - - -// void snoopChannel String String String String String AriCallback callback -/********************************************************** - * - * - * @since ari_0_0_1 - *********************************************************/ -public void snoopChannel(String channelId, String spy, String whisper, String app, String appArgs, AriCallback callback); - - - -// Channel originate String String String long String String String String int Map String String String -/********************************************************** - * Create a new channel (originate). - * The new channel is created immediately and a snapshot of it returned. If a Stasis application is provided it will be automatically subscribed to the originated channel for further events and updates. - * - * @since ari_1_7_0 - *********************************************************/ -public Channel originate(String endpoint, String extension, String context, long priority, String label, String app, String appArgs, String callerId, int timeout, Map variables, String channelId, String otherChannelId, String originator) throws RestException; - - - -// void sendDTMF String String int int int int AriCallback callback -/********************************************************** - * - * - * @since ari_0_0_1 - *********************************************************/ -public void sendDTMF(String channelId, String dtmf, int before, int between, int duration, int after, AriCallback callback); - - - -// void ring String AriCallback callback -/********************************************************** - * - * - * @since ari_0_0_1 - *********************************************************/ -public void ring(String channelId, AriCallback callback); - - - -// void originateWithId String String String String long String String String int Map String AriCallback callback -/********************************************************** - * - * - * @since ari_1_5_0 - *********************************************************/ -public void originateWithId(String channelId, String endpoint, String extension, String context, long priority, String app, String appArgs, String callerId, int timeout, Map variables, String otherChannelId, AriCallback callback); - - - -// Channel originateWithId String String String String long String String String String int Map String String -/********************************************************** - * Create a new channel (originate with id). - * The new channel is created immediately and a snapshot of it returned. If a Stasis application is provided it will be automatically subscribed to the originated channel for further events and updates. - * - * @since ari_1_7_0 - *********************************************************/ -public Channel originateWithId(String channelId, String endpoint, String extension, String context, long priority, String label, String app, String appArgs, String callerId, int timeout, Map variables, String otherChannelId, String originator) throws RestException; - - - -// List list -/********************************************************** - * List all active channels in Asterisk. - * - * - * @since ari_0_0_1 - *********************************************************/ -public List list() throws RestException; - - - -// void get String AriCallback callback -/********************************************************** - * - * - * @since ari_0_0_1 - *********************************************************/ -public void get(String channelId, AriCallback callback); - - - -// void hold String AriCallback callback -/********************************************************** - * - * - * @since ari_0_0_1 - *********************************************************/ -public void hold(String channelId, AriCallback callback); - - - -// void unmute String String AriCallback callback -/********************************************************** - * - * - * @since ari_0_0_1 - *********************************************************/ -public void unmute(String channelId, String direction, AriCallback callback); - - - -// void ringStop String AriCallback callback -/********************************************************** - * - * - * @since ari_0_0_1 - *********************************************************/ -public void ringStop(String channelId, AriCallback callback); - - - -// Channel originate String String String long String String String String int Map String String String String -/********************************************************** - * Create a new channel (originate). - * The new channel is created immediately and a snapshot of it returned. If a Stasis application is provided it will be automatically subscribed to the originated channel for further events and updates. - * - * @since ari_1_10_0 - *********************************************************/ -public Channel originate(String endpoint, String extension, String context, long priority, String label, String app, String appArgs, String callerId, int timeout, Map variables, String channelId, String otherChannelId, String originator, String formats) throws RestException; - - - -// Channel originateWithId String String String String long String String String String int Map String String String -/********************************************************** - * Create a new channel (originate with id). - * The new channel is created immediately and a snapshot of it returned. If a Stasis application is provided it will be automatically subscribed to the originated channel for further events and updates. - * - * @since ari_1_10_0 - *********************************************************/ -public Channel originateWithId(String channelId, String endpoint, String extension, String context, long priority, String label, String app, String appArgs, String callerId, int timeout, Map variables, String otherChannelId, String originator, String formats) throws RestException; - - - -// void sendDTMF String String int int int int -/********************************************************** - * Send provided DTMF to a given channel. - * - * - * @since ari_0_0_1 - *********************************************************/ -public void sendDTMF(String channelId, String dtmf, int before, int between, int duration, int after) throws RestException; - - - -// Channel originate String String String long String String String int -/********************************************************** - * Create a new channel (originate). - * The new channel is created immediately and a snapshot of it returned. If a Stasis application is provided it will be automatically subscribed to the originated channel for further events and updates. - * - * @since ari_0_0_1 - *********************************************************/ -public Channel originate(String endpoint, String extension, String context, long priority, String app, String appArgs, String callerId, int timeout) throws RestException; - - - -// void originateWithId String String String String long String String String String int Map String String AriCallback callback -/********************************************************** - * - * - * @since ari_1_7_0 - *********************************************************/ -public void originateWithId(String channelId, String endpoint, String extension, String context, long priority, String label, String app, String appArgs, String callerId, int timeout, Map variables, String otherChannelId, String originator, AriCallback callback); - - - -// void continueInDialplan String String String int String AriCallback callback -/********************************************************** - * - * - * @since ari_1_7_0 - *********************************************************/ -public void continueInDialplan(String channelId, String context, String extension, int priority, String label, AriCallback callback); - - - -// void dial String String int -/********************************************************** - * Dial a created channel. - * - * - * @since ari_1_10_0 - *********************************************************/ -public void dial(String channelId, String caller, int timeout) throws RestException; - - - -// void mute String String -/********************************************************** - * Mute a channel. - * - * - * @since ari_0_0_1 - *********************************************************/ -public void mute(String channelId, String direction) throws RestException; - - - -// Variable getChannelVar String String -/********************************************************** - * Get the value of a channel variable or function. - * - * - * @since ari_0_0_1 - *********************************************************/ -public Variable getChannelVar(String channelId, String variable) throws RestException; - - - -// void create String String String String String String String AriCallback callback -/********************************************************** - * - * - * @since ari_1_10_0 - *********************************************************/ -public void create(String endpoint, String app, String appArgs, String channelId, String otherChannelId, String originator, String formats, AriCallback callback); - - - -// Channel create String String String String String String String -/********************************************************** - * Create channel. - * - * - * @since ari_1_10_0 - *********************************************************/ -public Channel create(String endpoint, String app, String appArgs, String channelId, String otherChannelId, String originator, String formats) throws RestException; - - - -// void continueInDialplan String String String int -/********************************************************** - * Exit application; continue execution in the dialplan. - * - * - * @since ari_0_0_1 - *********************************************************/ -public void continueInDialplan(String channelId, String context, String extension, int priority) throws RestException; - - - -// void snoopChannel String String String String String String AriCallback callback -/********************************************************** - * - * - * @since ari_1_5_0 - *********************************************************/ -public void snoopChannel(String channelId, String spy, String whisper, String app, String appArgs, String snoopId, AriCallback callback); - - - -// void originate String String String long String String String String int Map String String String String AriCallback callback -/********************************************************** - * - * - * @since ari_1_10_0 - *********************************************************/ -public void originate(String endpoint, String extension, String context, long priority, String label, String app, String appArgs, String callerId, int timeout, Map variables, String channelId, String otherChannelId, String originator, String formats, AriCallback callback); - - - -// void mute String String AriCallback callback -/********************************************************** - * - * - * @since ari_0_0_1 - *********************************************************/ -public void mute(String channelId, String direction, AriCallback callback); - - - -// void hangup String String AriCallback callback -/********************************************************** - * - * - * @since ari_0_0_1 - *********************************************************/ -public void hangup(String channelId, String reason, AriCallback callback); - - - -// Playback play String String String int int String -/********************************************************** - * Start playback of media. - * The media URI may be any of a number of URI's. Currently sound:, recording:, number:, digits:, characters:, and tone: URI's are supported. This operation creates a playback resource that can be used to control the playback of media (pause, rewind, fast forward, etc.) - * - * @since ari_1_5_0 - *********************************************************/ -public Playback play(String channelId, String media, String lang, int offsetms, int skipms, String playbackId) throws RestException; - - - -// void hangup String String -/********************************************************** - * Delete (i.e. hangup) a channel. - * - * - * @since ari_0_0_1 - *********************************************************/ -public void hangup(String channelId, String reason) throws RestException; - - - -// void hold String -/********************************************************** - * Hold a channel. - * - * - * @since ari_0_0_1 - *********************************************************/ -public void hold(String channelId) throws RestException; - - - -// Channel originate String String String long String String String int Map String String -/********************************************************** - * Create a new channel (originate). - * The new channel is created immediately and a snapshot of it returned. If a Stasis application is provided it will be automatically subscribed to the originated channel for further events and updates. - * - * @since ari_1_5_0 - *********************************************************/ -public Channel originate(String endpoint, String extension, String context, long priority, String app, String appArgs, String callerId, int timeout, Map variables, String channelId, String otherChannelId) throws RestException; - - - -// void unmute String String -/********************************************************** - * Unmute a channel. - * - * - * @since ari_0_0_1 - *********************************************************/ -public void unmute(String channelId, String direction) throws RestException; - - - -// Channel snoopChannel String String String String String String -/********************************************************** - * Start snooping. - * Snoop (spy/whisper) on a specific channel. - * - * @since ari_1_5_0 - *********************************************************/ -public Channel snoopChannel(String channelId, String spy, String whisper, String app, String appArgs, String snoopId) throws RestException; - - - -// void redirect String String -/********************************************************** - * Redirect the channel to a different location. - * - * - * @since ari_1_8_0 - *********************************************************/ -public void redirect(String channelId, String endpoint) throws RestException; - - - -// void originate String String String long String String String int AriCallback callback -/********************************************************** - * - * - * @since ari_0_0_1 - *********************************************************/ -public void originate(String endpoint, String extension, String context, long priority, String app, String appArgs, String callerId, int timeout, AriCallback callback); - - -} -; diff --git a/classes/ch/loway/oss/ari4java/generated/ActionDeviceStates.java b/classes/ch/loway/oss/ari4java/generated/ActionDeviceStates.java deleted file mode 100644 index c650a195..00000000 --- a/classes/ch/loway/oss/ari4java/generated/ActionDeviceStates.java +++ /dev/null @@ -1,109 +0,0 @@ -package ch.loway.oss.ari4java.generated; - -// ---------------------------------------------------- -// THIS CLASS WAS GENERATED AUTOMATICALLY -// PLEASE DO NOT EDIT -// Generated on: Tue Dec 19 09:55:48 CET 2017 -// ---------------------------------------------------- - -import java.util.Date; -import java.util.List; -import java.util.Map; -import java.util.ArrayList; -import ch.loway.oss.ari4java.tools.RestException; -import ch.loway.oss.ari4java.tools.AriCallback; -import ch.loway.oss.ari4java.tools.tags.*; - -/********************************************************** - * - * Generated by: JavaInterface - *********************************************************/ - - -public interface ActionDeviceStates { - -// void list AriCallback> callback -/********************************************************** - * - * - * @since ari_0_0_1 - *********************************************************/ -public void list(AriCallback> callback); - - - -// void update String String -/********************************************************** - * Change the state of a device controlled by ARI. (Note - implicitly creates the device state). - * - * - * @since ari_0_0_1 - *********************************************************/ -public void update(String deviceName, String deviceState) throws RestException; - - - -// void get String AriCallback callback -/********************************************************** - * - * - * @since ari_0_0_1 - *********************************************************/ -public void get(String deviceName, AriCallback callback); - - - -// List list -/********************************************************** - * List all ARI controlled device states. - * - * - * @since ari_0_0_1 - *********************************************************/ -public List list() throws RestException; - - - -// void delete String -/********************************************************** - * Destroy a device-state controlled by ARI. - * - * - * @since ari_0_0_1 - *********************************************************/ -public void delete(String deviceName) throws RestException; - - - -// void delete String AriCallback callback -/********************************************************** - * - * - * @since ari_0_0_1 - *********************************************************/ -public void delete(String deviceName, AriCallback callback); - - - -// DeviceState get String -/********************************************************** - * Retrieve the current state of a device. - * - * - * @since ari_0_0_1 - *********************************************************/ -public DeviceState get(String deviceName) throws RestException; - - - -// void update String String AriCallback callback -/********************************************************** - * - * - * @since ari_0_0_1 - *********************************************************/ -public void update(String deviceName, String deviceState, AriCallback callback); - - -} -; diff --git a/classes/ch/loway/oss/ari4java/generated/ActionEndpoints.java b/classes/ch/loway/oss/ari4java/generated/ActionEndpoints.java deleted file mode 100644 index 17aa5eb5..00000000 --- a/classes/ch/loway/oss/ari4java/generated/ActionEndpoints.java +++ /dev/null @@ -1,130 +0,0 @@ -package ch.loway.oss.ari4java.generated; - -// ---------------------------------------------------- -// THIS CLASS WAS GENERATED AUTOMATICALLY -// PLEASE DO NOT EDIT -// Generated on: Tue Dec 19 09:55:48 CET 2017 -// ---------------------------------------------------- - -import java.util.Date; -import java.util.List; -import java.util.Map; -import java.util.ArrayList; -import ch.loway.oss.ari4java.tools.RestException; -import ch.loway.oss.ari4java.tools.AriCallback; -import ch.loway.oss.ari4java.tools.tags.*; - -/********************************************************** - * - * Generated by: JavaInterface - *********************************************************/ - - -public interface ActionEndpoints { - -// void listByTech String AriCallback> callback -/********************************************************** - * - * - * @since ari_0_0_1 - *********************************************************/ -public void listByTech(String tech, AriCallback> callback); - - - -// void sendMessageToEndpoint String String String String Map -/********************************************************** - * Send a message to some endpoint in a technology. - * - * - * @since ari_1_5_0 - *********************************************************/ -public void sendMessageToEndpoint(String tech, String resource, String from, String body, Map variables) throws RestException; - - - -// void sendMessage String String String Map -/********************************************************** - * Send a message to some technology URI or endpoint. - * - * - * @since ari_1_5_0 - *********************************************************/ -public void sendMessage(String to, String from, String body, Map variables) throws RestException; - - - -// void list AriCallback> callback -/********************************************************** - * - * - * @since ari_0_0_1 - *********************************************************/ -public void list(AriCallback> callback); - - - -// List listByTech String -/********************************************************** - * List available endoints for a given endpoint technology. - * - * - * @since ari_0_0_1 - *********************************************************/ -public List listByTech(String tech) throws RestException; - - - -// List list -/********************************************************** - * List all endpoints. - * - * - * @since ari_0_0_1 - *********************************************************/ -public List list() throws RestException; - - - -// void sendMessage String String String Map AriCallback callback -/********************************************************** - * - * - * @since ari_1_5_0 - *********************************************************/ -public void sendMessage(String to, String from, String body, Map variables, AriCallback callback); - - - -// void get String String AriCallback callback -/********************************************************** - * - * - * @since ari_0_0_1 - *********************************************************/ -public void get(String tech, String resource, AriCallback callback); - - - -// Endpoint get String String -/********************************************************** - * Details for an endpoint. - * - * - * @since ari_0_0_1 - *********************************************************/ -public Endpoint get(String tech, String resource) throws RestException; - - - -// void sendMessageToEndpoint String String String String Map AriCallback callback -/********************************************************** - * - * - * @since ari_1_5_0 - *********************************************************/ -public void sendMessageToEndpoint(String tech, String resource, String from, String body, Map variables, AriCallback callback); - - -} -; diff --git a/classes/ch/loway/oss/ari4java/generated/ActionEvents.java b/classes/ch/loway/oss/ari4java/generated/ActionEvents.java deleted file mode 100644 index 62eaf2fc..00000000 --- a/classes/ch/loway/oss/ari4java/generated/ActionEvents.java +++ /dev/null @@ -1,88 +0,0 @@ -package ch.loway.oss.ari4java.generated; - -// ---------------------------------------------------- -// THIS CLASS WAS GENERATED AUTOMATICALLY -// PLEASE DO NOT EDIT -// Generated on: Tue Dec 19 09:55:48 CET 2017 -// ---------------------------------------------------- - -import java.util.Date; -import java.util.List; -import java.util.Map; -import java.util.ArrayList; -import ch.loway.oss.ari4java.tools.RestException; -import ch.loway.oss.ari4java.tools.AriCallback; -import ch.loway.oss.ari4java.tools.tags.*; - -/********************************************************** - * - * Generated by: JavaInterface - *********************************************************/ - - -public interface ActionEvents { - -// void userEvent String String String Map AriCallback callback -/********************************************************** - * - * - * @since ari_1_5_0 - *********************************************************/ -public void userEvent(String eventName, String application, String source, Map variables, AriCallback callback); - - - -// Message eventWebsocket String -/********************************************************** - * WebSocket connection for events. - * - * - * @since ari_0_0_1 - *********************************************************/ -public Message eventWebsocket(String app) throws RestException; - - - -// Message eventWebsocket String boolean -/********************************************************** - * WebSocket connection for events. - * - * - * @since ari_1_9_0 - *********************************************************/ -public Message eventWebsocket(String app, boolean subscribeAll) throws RestException; - - - -// void eventWebsocket String AriCallback callback -/********************************************************** - * - * - * @since ari_0_0_1 - *********************************************************/ -public void eventWebsocket(String app, AriCallback callback); - - - -// void userEvent String String String Map -/********************************************************** - * Generate a user event. - * - * - * @since ari_1_5_0 - *********************************************************/ -public void userEvent(String eventName, String application, String source, Map variables) throws RestException; - - - -// void eventWebsocket String boolean AriCallback callback -/********************************************************** - * - * - * @since ari_1_9_0 - *********************************************************/ -public void eventWebsocket(String app, boolean subscribeAll, AriCallback callback); - - -} -; diff --git a/classes/ch/loway/oss/ari4java/generated/ActionPlaybacks.java b/classes/ch/loway/oss/ari4java/generated/ActionPlaybacks.java deleted file mode 100644 index 5f8e653d..00000000 --- a/classes/ch/loway/oss/ari4java/generated/ActionPlaybacks.java +++ /dev/null @@ -1,88 +0,0 @@ -package ch.loway.oss.ari4java.generated; - -// ---------------------------------------------------- -// THIS CLASS WAS GENERATED AUTOMATICALLY -// PLEASE DO NOT EDIT -// Generated on: Tue Dec 19 09:55:48 CET 2017 -// ---------------------------------------------------- - -import java.util.Date; -import java.util.List; -import java.util.Map; -import java.util.ArrayList; -import ch.loway.oss.ari4java.tools.RestException; -import ch.loway.oss.ari4java.tools.AriCallback; -import ch.loway.oss.ari4java.tools.tags.*; - -/********************************************************** - * - * Generated by: JavaInterface - *********************************************************/ - - -public interface ActionPlaybacks { - -// void get String AriCallback callback -/********************************************************** - * - * - * @since ari_0_0_1 - *********************************************************/ -public void get(String playbackId, AriCallback callback); - - - -// Playback get String -/********************************************************** - * Get a playback's details. - * - * - * @since ari_0_0_1 - *********************************************************/ -public Playback get(String playbackId) throws RestException; - - - -// void stop String AriCallback callback -/********************************************************** - * - * - * @since ari_0_0_1 - *********************************************************/ -public void stop(String playbackId, AriCallback callback); - - - -// void stop String -/********************************************************** - * Stop a playback. - * - * - * @since ari_0_0_1 - *********************************************************/ -public void stop(String playbackId) throws RestException; - - - -// void control String String -/********************************************************** - * Control a playback. - * - * - * @since ari_0_0_1 - *********************************************************/ -public void control(String playbackId, String operation) throws RestException; - - - -// void control String String AriCallback callback -/********************************************************** - * - * - * @since ari_0_0_1 - *********************************************************/ -public void control(String playbackId, String operation, AriCallback callback); - - -} -; diff --git a/classes/ch/loway/oss/ari4java/generated/ActionRecordings.java b/classes/ch/loway/oss/ari4java/generated/ActionRecordings.java deleted file mode 100644 index f3b0a75e..00000000 --- a/classes/ch/loway/oss/ari4java/generated/ActionRecordings.java +++ /dev/null @@ -1,277 +0,0 @@ -package ch.loway.oss.ari4java.generated; - -// ---------------------------------------------------- -// THIS CLASS WAS GENERATED AUTOMATICALLY -// PLEASE DO NOT EDIT -// Generated on: Tue Dec 19 09:55:48 CET 2017 -// ---------------------------------------------------- - -import java.util.Date; -import java.util.List; -import java.util.Map; -import java.util.ArrayList; -import ch.loway.oss.ari4java.tools.RestException; -import ch.loway.oss.ari4java.tools.AriCallback; -import ch.loway.oss.ari4java.tools.tags.*; - -/********************************************************** - * - * Generated by: JavaInterface - *********************************************************/ - - -public interface ActionRecordings { - -// LiveRecording getLive String -/********************************************************** - * List live recordings. - * - * - * @since ari_0_0_1 - *********************************************************/ -public LiveRecording getLive(String recordingName) throws RestException; - - - -// void cancel String -/********************************************************** - * Stop a live recording and discard it. - * - * - * @since ari_0_0_1 - *********************************************************/ -public void cancel(String recordingName) throws RestException; - - - -// void copyStored String String AriCallback callback -/********************************************************** - * - * - * @since ari_1_5_0 - *********************************************************/ -public void copyStored(String recordingName, String destinationRecordingName, AriCallback callback); - - - -// void getStored String AriCallback callback -/********************************************************** - * - * - * @since ari_0_0_1 - *********************************************************/ -public void getStored(String recordingName, AriCallback callback); - - - -// void getLive String AriCallback callback -/********************************************************** - * - * - * @since ari_0_0_1 - *********************************************************/ -public void getLive(String recordingName, AriCallback callback); - - - -// void mute String -/********************************************************** - * Mute a live recording. - * Muting a recording suspends silence detection, which will be restarted when the recording is unmuted. - * - * @since ari_0_0_1 - *********************************************************/ -public void mute(String recordingName) throws RestException; - - - -// StoredRecording copyStored String String -/********************************************************** - * Copy a stored recording. - * - * - * @since ari_1_5_0 - *********************************************************/ -public StoredRecording copyStored(String recordingName, String destinationRecordingName) throws RestException; - - - -// void stop String AriCallback callback -/********************************************************** - * - * - * @since ari_0_0_1 - *********************************************************/ -public void stop(String recordingName, AriCallback callback); - - - -// void unmute String AriCallback callback -/********************************************************** - * - * - * @since ari_0_0_1 - *********************************************************/ -public void unmute(String recordingName, AriCallback callback); - - - -// List listStored -/********************************************************** - * List recordings that are complete. - * - * - * @since ari_0_0_1 - *********************************************************/ -public List listStored() throws RestException; - - - -// void deleteStored String -/********************************************************** - * Delete a stored recording. - * - * - * @since ari_0_0_1 - *********************************************************/ -public void deleteStored(String recordingName) throws RestException; - - - -// void cancel String AriCallback callback -/********************************************************** - * - * - * @since ari_0_0_1 - *********************************************************/ -public void cancel(String recordingName, AriCallback callback); - - - -// void stop String -/********************************************************** - * Stop a live recording and store it. - * - * - * @since ari_0_0_1 - *********************************************************/ -public void stop(String recordingName) throws RestException; - - - -// void mute String AriCallback callback -/********************************************************** - * - * - * @since ari_0_0_1 - *********************************************************/ -public void mute(String recordingName, AriCallback callback); - - - -// void unpause String -/********************************************************** - * Unpause a live recording. - * - * - * @since ari_0_0_1 - *********************************************************/ -public void unpause(String recordingName) throws RestException; - - - -// StoredRecording getStored String -/********************************************************** - * Get a stored recording's details. - * - * - * @since ari_0_0_1 - *********************************************************/ -public StoredRecording getStored(String recordingName) throws RestException; - - - -// void listStored AriCallback> callback -/********************************************************** - * - * - * @since ari_0_0_1 - *********************************************************/ -public void listStored(AriCallback> callback); - - - -// void pause String -/********************************************************** - * Pause a live recording. - * Pausing a recording suspends silence detection, which will be restarted when the recording is unpaused. Paused time is not included in the accounting for maxDurationSeconds. - * - * @since ari_0_0_1 - *********************************************************/ -public void pause(String recordingName) throws RestException; - - - -// void unpause String AriCallback callback -/********************************************************** - * - * - * @since ari_0_0_1 - *********************************************************/ -public void unpause(String recordingName, AriCallback callback); - - - -// void unmute String -/********************************************************** - * Unmute a live recording. - * - * - * @since ari_0_0_1 - *********************************************************/ -public void unmute(String recordingName) throws RestException; - - - -// void pause String AriCallback callback -/********************************************************** - * - * - * @since ari_0_0_1 - *********************************************************/ -public void pause(String recordingName, AriCallback callback); - - - -// byte[] getStoredFile String -/********************************************************** - * Get the file associated with the stored recording. - * - * - * @since ari_1_10_0 - *********************************************************/ -public byte[] getStoredFile(String recordingName) throws RestException; - - - -// void getStoredFile String AriCallback callback -/********************************************************** - * - * - * @since ari_1_10_0 - *********************************************************/ -public void getStoredFile(String recordingName, AriCallback callback); - - - -// void deleteStored String AriCallback callback -/********************************************************** - * - * - * @since ari_0_0_1 - *********************************************************/ -public void deleteStored(String recordingName, AriCallback callback); - - -} -; diff --git a/classes/ch/loway/oss/ari4java/generated/ActionSounds.java b/classes/ch/loway/oss/ari4java/generated/ActionSounds.java deleted file mode 100644 index 61014ab0..00000000 --- a/classes/ch/loway/oss/ari4java/generated/ActionSounds.java +++ /dev/null @@ -1,67 +0,0 @@ -package ch.loway.oss.ari4java.generated; - -// ---------------------------------------------------- -// THIS CLASS WAS GENERATED AUTOMATICALLY -// PLEASE DO NOT EDIT -// Generated on: Tue Dec 19 09:55:48 CET 2017 -// ---------------------------------------------------- - -import java.util.Date; -import java.util.List; -import java.util.Map; -import java.util.ArrayList; -import ch.loway.oss.ari4java.tools.RestException; -import ch.loway.oss.ari4java.tools.AriCallback; -import ch.loway.oss.ari4java.tools.tags.*; - -/********************************************************** - * - * Generated by: JavaInterface - *********************************************************/ - - -public interface ActionSounds { - -// List list String String -/********************************************************** - * List all sounds. - * - * - * @since ari_0_0_1 - *********************************************************/ -public List list(String lang, String format) throws RestException; - - - -// Sound get String -/********************************************************** - * Get a sound's details. - * - * - * @since ari_0_0_1 - *********************************************************/ -public Sound get(String soundId) throws RestException; - - - -// void list String String AriCallback> callback -/********************************************************** - * - * - * @since ari_0_0_1 - *********************************************************/ -public void list(String lang, String format, AriCallback> callback); - - - -// void get String AriCallback callback -/********************************************************** - * - * - * @since ari_0_0_1 - *********************************************************/ -public void get(String soundId, AriCallback callback); - - -} -; diff --git a/classes/ch/loway/oss/ari4java/generated/Application.java b/classes/ch/loway/oss/ari4java/generated/Application.java deleted file mode 100644 index b8499d5b..00000000 --- a/classes/ch/loway/oss/ari4java/generated/Application.java +++ /dev/null @@ -1,125 +0,0 @@ -package ch.loway.oss.ari4java.generated; - -// ---------------------------------------------------- -// THIS CLASS WAS GENERATED AUTOMATICALLY -// PLEASE DO NOT EDIT -// Generated on: Tue Dec 19 09:55:48 CET 2017 -// ---------------------------------------------------- - -import java.util.Date; -import java.util.List; -import java.util.Map; -import java.util.ArrayList; -import ch.loway.oss.ari4java.tools.RestException; -import ch.loway.oss.ari4java.tools.AriCallback; -import ch.loway.oss.ari4java.tools.tags.*; - -/********************************************************** - * - * Generated by: JavaInterface - *********************************************************/ - - -public interface Application { - -// List getBridge_ids -/********************************************************** - * Id's for bridges subscribed to. - * - * @since ari_0_0_1 - *********************************************************/ - public List getBridge_ids(); - - - -// String getName -/********************************************************** - * Name of this application - * - * @since ari_0_0_1 - *********************************************************/ - public String getName(); - - - -// List getChannel_ids -/********************************************************** - * Id's for channels subscribed to. - * - * @since ari_0_0_1 - *********************************************************/ - public List getChannel_ids(); - - - -// List getDevice_names -/********************************************************** - * Names of the devices subscribed to. - * - * @since ari_0_0_1 - *********************************************************/ - public List getDevice_names(); - - - -// void setDevice_names List -/********************************************************** - * Names of the devices subscribed to. - * - * @since ari_0_0_1 - *********************************************************/ - public void setDevice_names(List val ); - - - -// List getEndpoint_ids -/********************************************************** - * {tech}/{resource} for endpoints subscribed to. - * - * @since ari_0_0_1 - *********************************************************/ - public List getEndpoint_ids(); - - - -// void setEndpoint_ids List -/********************************************************** - * {tech}/{resource} for endpoints subscribed to. - * - * @since ari_0_0_1 - *********************************************************/ - public void setEndpoint_ids(List val ); - - - -// void setName String -/********************************************************** - * Name of this application - * - * @since ari_0_0_1 - *********************************************************/ - public void setName(String val ); - - - -// void setChannel_ids List -/********************************************************** - * Id's for channels subscribed to. - * - * @since ari_0_0_1 - *********************************************************/ - public void setChannel_ids(List val ); - - - -// void setBridge_ids List -/********************************************************** - * Id's for bridges subscribed to. - * - * @since ari_0_0_1 - *********************************************************/ - public void setBridge_ids(List val ); - - -} -; diff --git a/classes/ch/loway/oss/ari4java/generated/ApplicationReplaced.java b/classes/ch/loway/oss/ari4java/generated/ApplicationReplaced.java deleted file mode 100644 index f8b6d425..00000000 --- a/classes/ch/loway/oss/ari4java/generated/ApplicationReplaced.java +++ /dev/null @@ -1,25 +0,0 @@ -package ch.loway.oss.ari4java.generated; - -// ---------------------------------------------------- -// THIS CLASS WAS GENERATED AUTOMATICALLY -// PLEASE DO NOT EDIT -// Generated on: Tue Dec 19 09:55:48 CET 2017 -// ---------------------------------------------------- - -import java.util.Date; -import java.util.List; -import java.util.Map; -import java.util.ArrayList; -import ch.loway.oss.ari4java.tools.RestException; -import ch.loway.oss.ari4java.tools.AriCallback; -import ch.loway.oss.ari4java.tools.tags.*; - -/********************************************************** - * - * Generated by: JavaInterface - *********************************************************/ - - -public interface ApplicationReplaced { -} -; diff --git a/classes/ch/loway/oss/ari4java/generated/AriBuilder.java b/classes/ch/loway/oss/ari4java/generated/AriBuilder.java deleted file mode 100644 index 47178c10..00000000 --- a/classes/ch/loway/oss/ari4java/generated/AriBuilder.java +++ /dev/null @@ -1,95 +0,0 @@ -package ch.loway.oss.ari4java.generated; - -// ---------------------------------------------------- -// THIS CLASS WAS GENERATED AUTOMATICALLY -// PLEASE DO NOT EDIT -// Generated on: Tue Dec 19 09:55:48 CET 2017 -// ---------------------------------------------------- - -import ch.loway.oss.ari4java.ARI; - -public interface AriBuilder { - public abstract ActionApplications actionApplications(); - public abstract ActionAsterisk actionAsterisk(); - public abstract ActionBridges actionBridges(); - public abstract ActionChannels actionChannels(); - public abstract ActionDeviceStates actionDeviceStates(); - public abstract ActionEndpoints actionEndpoints(); - public abstract ActionEvents actionEvents(); - public abstract ActionPlaybacks actionPlaybacks(); - public abstract ActionRecordings actionRecordings(); - public abstract ActionSounds actionSounds(); - public abstract Application application(); - public abstract ApplicationReplaced applicationReplaced(); - public abstract AsteriskInfo asteriskInfo(); - public abstract Bridge bridge(); - public abstract BridgeAttendedTransfer bridgeAttendedTransfer(); - public abstract BridgeBlindTransfer bridgeBlindTransfer(); - public abstract BridgeCreated bridgeCreated(); - public abstract BridgeDestroyed bridgeDestroyed(); - public abstract BridgeMerged bridgeMerged(); - public abstract BridgeVideoSourceChanged bridgeVideoSourceChanged(); - public abstract BuildInfo buildInfo(); - public abstract CallerID callerID(); - public abstract Channel channel(); - public abstract ChannelCallerId channelCallerId(); - public abstract ChannelConnectedLine channelConnectedLine(); - public abstract ChannelCreated channelCreated(); - public abstract ChannelDestroyed channelDestroyed(); - public abstract ChannelDialplan channelDialplan(); - public abstract ChannelDtmfReceived channelDtmfReceived(); - public abstract ChannelEnteredBridge channelEnteredBridge(); - public abstract ChannelHangupRequest channelHangupRequest(); - public abstract ChannelHold channelHold(); - public abstract ChannelLeftBridge channelLeftBridge(); - public abstract ChannelStateChange channelStateChange(); - public abstract ChannelTalkingFinished channelTalkingFinished(); - public abstract ChannelTalkingStarted channelTalkingStarted(); - public abstract ChannelUnhold channelUnhold(); - public abstract ChannelUserevent channelUserevent(); - public abstract ChannelVarset channelVarset(); - public abstract ConfigInfo configInfo(); - public abstract ConfigTuple configTuple(); - public abstract ContactInfo contactInfo(); - public abstract ContactStatusChange contactStatusChange(); - public abstract DeviceState deviceState(); - public abstract DeviceStateChanged deviceStateChanged(); - public abstract Dial dial(); - public abstract Dialed dialed(); - public abstract DialplanCEP dialplanCEP(); - public abstract Endpoint endpoint(); - public abstract EndpointStateChange endpointStateChange(); - public abstract Event event(); - public abstract FormatLangPair formatLangPair(); - public abstract LiveRecording liveRecording(); - public abstract LogChannel logChannel(); - public abstract Message message(); - public abstract MissingParams missingParams(); - public abstract Module module(); - public abstract Peer peer(); - public abstract PeerStatusChange peerStatusChange(); - public abstract Playback playback(); - public abstract PlaybackContinuing playbackContinuing(); - public abstract PlaybackFinished playbackFinished(); - public abstract PlaybackStarted playbackStarted(); - public abstract RecordingFailed recordingFailed(); - public abstract RecordingFinished recordingFinished(); - public abstract RecordingStarted recordingStarted(); - public abstract SetId setId(); - public abstract Sound sound(); - public abstract StasisEnd stasisEnd(); - public abstract StasisStart stasisStart(); - public abstract StatusInfo statusInfo(); - public abstract StoredRecording storedRecording(); - public abstract SystemInfo systemInfo(); - public abstract TextMessage textMessage(); - public abstract TextMessageReceived textMessageReceived(); - public abstract TextMessageVariable textMessageVariable(); - public abstract Variable variable(); - - - public abstract ARI.ClassFactory getClassFactory(); - - -} - diff --git a/classes/ch/loway/oss/ari4java/generated/AsteriskInfo.java b/classes/ch/loway/oss/ari4java/generated/AsteriskInfo.java deleted file mode 100644 index 275b8b56..00000000 --- a/classes/ch/loway/oss/ari4java/generated/AsteriskInfo.java +++ /dev/null @@ -1,105 +0,0 @@ -package ch.loway.oss.ari4java.generated; - -// ---------------------------------------------------- -// THIS CLASS WAS GENERATED AUTOMATICALLY -// PLEASE DO NOT EDIT -// Generated on: Tue Dec 19 09:55:48 CET 2017 -// ---------------------------------------------------- - -import java.util.Date; -import java.util.List; -import java.util.Map; -import java.util.ArrayList; -import ch.loway.oss.ari4java.tools.RestException; -import ch.loway.oss.ari4java.tools.AriCallback; -import ch.loway.oss.ari4java.tools.tags.*; - -/********************************************************** - * - * Generated by: JavaInterface - *********************************************************/ - - -public interface AsteriskInfo { - -// void setSystem SystemInfo -/********************************************************** - * Info about the system running Asterisk - * - * @since ari_0_0_1 - *********************************************************/ - public void setSystem(SystemInfo val ); - - - -// void setConfig ConfigInfo -/********************************************************** - * Info about Asterisk configuration - * - * @since ari_0_0_1 - *********************************************************/ - public void setConfig(ConfigInfo val ); - - - -// void setBuild BuildInfo -/********************************************************** - * Info about how Asterisk was built - * - * @since ari_0_0_1 - *********************************************************/ - public void setBuild(BuildInfo val ); - - - -// BuildInfo getBuild -/********************************************************** - * Info about how Asterisk was built - * - * @since ari_0_0_1 - *********************************************************/ - public BuildInfo getBuild(); - - - -// SystemInfo getSystem -/********************************************************** - * Info about the system running Asterisk - * - * @since ari_0_0_1 - *********************************************************/ - public SystemInfo getSystem(); - - - -// void setStatus StatusInfo -/********************************************************** - * Info about Asterisk status - * - * @since ari_0_0_1 - *********************************************************/ - public void setStatus(StatusInfo val ); - - - -// ConfigInfo getConfig -/********************************************************** - * Info about Asterisk configuration - * - * @since ari_0_0_1 - *********************************************************/ - public ConfigInfo getConfig(); - - - -// StatusInfo getStatus -/********************************************************** - * Info about Asterisk status - * - * @since ari_0_0_1 - *********************************************************/ - public StatusInfo getStatus(); - - -} -; diff --git a/classes/ch/loway/oss/ari4java/generated/Bridge.java b/classes/ch/loway/oss/ari4java/generated/Bridge.java deleted file mode 100644 index c739e6c2..00000000 --- a/classes/ch/loway/oss/ari4java/generated/Bridge.java +++ /dev/null @@ -1,205 +0,0 @@ -package ch.loway.oss.ari4java.generated; - -// ---------------------------------------------------- -// THIS CLASS WAS GENERATED AUTOMATICALLY -// PLEASE DO NOT EDIT -// Generated on: Tue Dec 19 09:55:48 CET 2017 -// ---------------------------------------------------- - -import java.util.Date; -import java.util.List; -import java.util.Map; -import java.util.ArrayList; -import ch.loway.oss.ari4java.tools.RestException; -import ch.loway.oss.ari4java.tools.AriCallback; -import ch.loway.oss.ari4java.tools.tags.*; - -/********************************************************** - * - * Generated by: JavaInterface - *********************************************************/ - - -public interface Bridge extends EventSource { - -// String getName -/********************************************************** - * Name the creator gave the bridge - * - * @since ari_1_0_0 - *********************************************************/ - public String getName(); - - - -// String getVideo_mode -/********************************************************** - * The video mode the bridge is using. One of 'none', 'talker', or 'single'. - * - * @since ari_2_0_0 - *********************************************************/ - public String getVideo_mode(); - - - -// void setTechnology String -/********************************************************** - * Name of the current bridging technology - * - * @since ari_0_0_1 - *********************************************************/ - public void setTechnology(String val ); - - - -// void setBridge_class String -/********************************************************** - * Bridging class - * - * @since ari_0_0_1 - *********************************************************/ - public void setBridge_class(String val ); - - - -// void setChannels List -/********************************************************** - * Ids of channels participating in this bridge - * - * @since ari_0_0_1 - *********************************************************/ - public void setChannels(List val ); - - - -// String getBridge_type -/********************************************************** - * Type of bridge technology - * - * @since ari_0_0_1 - *********************************************************/ - public String getBridge_type(); - - - -// String getBridge_class -/********************************************************** - * Bridging class - * - * @since ari_0_0_1 - *********************************************************/ - public String getBridge_class(); - - - -// String getVideo_source_id -/********************************************************** - * The ID of the channel that is the source of video in this bridge, if one exists. - * - * @since ari_2_0_0 - *********************************************************/ - public String getVideo_source_id(); - - - -// String getTechnology -/********************************************************** - * Name of the current bridging technology - * - * @since ari_0_0_1 - *********************************************************/ - public String getTechnology(); - - - -// String getCreator -/********************************************************** - * Entity that created the bridge - * - * @since ari_1_0_0 - *********************************************************/ - public String getCreator(); - - - -// void setBridge_type String -/********************************************************** - * Type of bridge technology - * - * @since ari_0_0_1 - *********************************************************/ - public void setBridge_type(String val ); - - - -// List getChannels -/********************************************************** - * Ids of channels participating in this bridge - * - * @since ari_0_0_1 - *********************************************************/ - public List getChannels(); - - - -// void setId String -/********************************************************** - * Unique identifier for this bridge - * - * @since ari_0_0_1 - *********************************************************/ - public void setId(String val ); - - - -// void setVideo_mode String -/********************************************************** - * The video mode the bridge is using. One of 'none', 'talker', or 'single'. - * - * @since ari_2_0_0 - *********************************************************/ - public void setVideo_mode(String val ); - - - -// String getId -/********************************************************** - * Unique identifier for this bridge - * - * @since ari_0_0_1 - *********************************************************/ - public String getId(); - - - -// void setVideo_source_id String -/********************************************************** - * The ID of the channel that is the source of video in this bridge, if one exists. - * - * @since ari_2_0_0 - *********************************************************/ - public void setVideo_source_id(String val ); - - - -// void setCreator String -/********************************************************** - * Entity that created the bridge - * - * @since ari_1_0_0 - *********************************************************/ - public void setCreator(String val ); - - - -// void setName String -/********************************************************** - * Name the creator gave the bridge - * - * @since ari_1_0_0 - *********************************************************/ - public void setName(String val ); - - -} -; diff --git a/classes/ch/loway/oss/ari4java/generated/BridgeAttendedTransfer.java b/classes/ch/loway/oss/ari4java/generated/BridgeAttendedTransfer.java deleted file mode 100644 index 3d4755b9..00000000 --- a/classes/ch/loway/oss/ari4java/generated/BridgeAttendedTransfer.java +++ /dev/null @@ -1,345 +0,0 @@ -package ch.loway.oss.ari4java.generated; - -// ---------------------------------------------------- -// THIS CLASS WAS GENERATED AUTOMATICALLY -// PLEASE DO NOT EDIT -// Generated on: Tue Dec 19 09:55:48 CET 2017 -// ---------------------------------------------------- - -import java.util.Date; -import java.util.List; -import java.util.Map; -import java.util.ArrayList; -import ch.loway.oss.ari4java.tools.RestException; -import ch.loway.oss.ari4java.tools.AriCallback; -import ch.loway.oss.ari4java.tools.tags.*; - -/********************************************************** - * - * Generated by: JavaInterface - *********************************************************/ - - -public interface BridgeAttendedTransfer { - -// String getResult -/********************************************************** - * The result of the transfer attempt - * - * @since ari_1_5_0 - *********************************************************/ - public String getResult(); - - - -// String getDestination_bridge -/********************************************************** - * Bridge that survived the merge result - * - * @since ari_1_5_0 - *********************************************************/ - public String getDestination_bridge(); - - - -// Channel getTransfer_target -/********************************************************** - * The channel that is being transferred to - * - * @since ari_1_5_0 - *********************************************************/ - public Channel getTransfer_target(); - - - -// void setDestination_bridge String -/********************************************************** - * Bridge that survived the merge result - * - * @since ari_1_5_0 - *********************************************************/ - public void setDestination_bridge(String val ); - - - -// Channel getTransferer_second_leg -/********************************************************** - * Second leg of the transferer - * - * @since ari_1_5_0 - *********************************************************/ - public Channel getTransferer_second_leg(); - - - -// Channel getDestination_link_second_leg -/********************************************************** - * Second leg of a link transfer result - * - * @since ari_1_5_0 - *********************************************************/ - public Channel getDestination_link_second_leg(); - - - -// Bridge getTransferer_first_leg_bridge -/********************************************************** - * Bridge the transferer first leg is in - * - * @since ari_1_5_0 - *********************************************************/ - public Bridge getTransferer_first_leg_bridge(); - - - -// void setReplace_channel Channel -/********************************************************** - * The channel that is replacing transferer_first_leg in the swap - * - * @since ari_1_5_0 - *********************************************************/ - public void setReplace_channel(Channel val ); - - - -// Channel getDestination_link_first_leg -/********************************************************** - * First leg of a link transfer result - * - * @since ari_1_5_0 - *********************************************************/ - public Channel getDestination_link_first_leg(); - - - -// void setDestination_type String -/********************************************************** - * How the transfer was accomplished - * - * @since ari_1_5_0 - *********************************************************/ - public void setDestination_type(String val ); - - - -// Channel getTransferer_first_leg -/********************************************************** - * First leg of the transferer - * - * @since ari_1_5_0 - *********************************************************/ - public Channel getTransferer_first_leg(); - - - -// Channel getReplace_channel -/********************************************************** - * The channel that is replacing transferer_first_leg in the swap - * - * @since ari_1_5_0 - *********************************************************/ - public Channel getReplace_channel(); - - - -// Channel getDestination_threeway_channel -/********************************************************** - * Transferer channel that survived the threeway result - * - * @since ari_1_5_0 - *********************************************************/ - public Channel getDestination_threeway_channel(); - - - -// boolean getIs_external -/********************************************************** - * Whether the transfer was externally initiated or not - * - * @since ari_1_5_0 - *********************************************************/ - public boolean getIs_external(); - - - -// void setDestination_application String -/********************************************************** - * Application that has been transferred into - * - * @since ari_1_5_0 - *********************************************************/ - public void setDestination_application(String val ); - - - -// void setTransferee Channel -/********************************************************** - * The channel that is being transferred - * - * @since ari_1_5_0 - *********************************************************/ - public void setTransferee(Channel val ); - - - -// void setIs_external boolean -/********************************************************** - * Whether the transfer was externally initiated or not - * - * @since ari_1_5_0 - *********************************************************/ - public void setIs_external(boolean val ); - - - -// void setTransfer_target Channel -/********************************************************** - * The channel that is being transferred to - * - * @since ari_1_5_0 - *********************************************************/ - public void setTransfer_target(Channel val ); - - - -// String getDestination_type -/********************************************************** - * How the transfer was accomplished - * - * @since ari_1_5_0 - *********************************************************/ - public String getDestination_type(); - - - -// Bridge getDestination_threeway_bridge -/********************************************************** - * Bridge that survived the threeway result - * - * @since ari_1_5_0 - *********************************************************/ - public Bridge getDestination_threeway_bridge(); - - - -// void setDestination_threeway_bridge Bridge -/********************************************************** - * Bridge that survived the threeway result - * - * @since ari_1_5_0 - *********************************************************/ - public void setDestination_threeway_bridge(Bridge val ); - - - -// Channel getTransferee -/********************************************************** - * The channel that is being transferred - * - * @since ari_1_5_0 - *********************************************************/ - public Channel getTransferee(); - - - -// void setDestination_link_second_leg Channel -/********************************************************** - * Second leg of a link transfer result - * - * @since ari_1_5_0 - *********************************************************/ - public void setDestination_link_second_leg(Channel val ); - - - -// void setTransferer_first_leg_bridge Bridge -/********************************************************** - * Bridge the transferer first leg is in - * - * @since ari_1_5_0 - *********************************************************/ - public void setTransferer_first_leg_bridge(Bridge val ); - - - -// String getDestination_application -/********************************************************** - * Application that has been transferred into - * - * @since ari_1_5_0 - *********************************************************/ - public String getDestination_application(); - - - -// void setDestination_link_first_leg Channel -/********************************************************** - * First leg of a link transfer result - * - * @since ari_1_5_0 - *********************************************************/ - public void setDestination_link_first_leg(Channel val ); - - - -// Bridge getTransferer_second_leg_bridge -/********************************************************** - * Bridge the transferer second leg is in - * - * @since ari_1_5_0 - *********************************************************/ - public Bridge getTransferer_second_leg_bridge(); - - - -// void setTransferer_first_leg Channel -/********************************************************** - * First leg of the transferer - * - * @since ari_1_5_0 - *********************************************************/ - public void setTransferer_first_leg(Channel val ); - - - -// void setTransferer_second_leg_bridge Bridge -/********************************************************** - * Bridge the transferer second leg is in - * - * @since ari_1_5_0 - *********************************************************/ - public void setTransferer_second_leg_bridge(Bridge val ); - - - -// void setTransferer_second_leg Channel -/********************************************************** - * Second leg of the transferer - * - * @since ari_1_5_0 - *********************************************************/ - public void setTransferer_second_leg(Channel val ); - - - -// void setDestination_threeway_channel Channel -/********************************************************** - * Transferer channel that survived the threeway result - * - * @since ari_1_5_0 - *********************************************************/ - public void setDestination_threeway_channel(Channel val ); - - - -// void setResult String -/********************************************************** - * The result of the transfer attempt - * - * @since ari_1_5_0 - *********************************************************/ - public void setResult(String val ); - - -} -; diff --git a/classes/ch/loway/oss/ari4java/generated/BridgeBlindTransfer.java b/classes/ch/loway/oss/ari4java/generated/BridgeBlindTransfer.java deleted file mode 100644 index 80660c5d..00000000 --- a/classes/ch/loway/oss/ari4java/generated/BridgeBlindTransfer.java +++ /dev/null @@ -1,185 +0,0 @@ -package ch.loway.oss.ari4java.generated; - -// ---------------------------------------------------- -// THIS CLASS WAS GENERATED AUTOMATICALLY -// PLEASE DO NOT EDIT -// Generated on: Tue Dec 19 09:55:48 CET 2017 -// ---------------------------------------------------- - -import java.util.Date; -import java.util.List; -import java.util.Map; -import java.util.ArrayList; -import ch.loway.oss.ari4java.tools.RestException; -import ch.loway.oss.ari4java.tools.AriCallback; -import ch.loway.oss.ari4java.tools.tags.*; - -/********************************************************** - * - * Generated by: JavaInterface - *********************************************************/ - - -public interface BridgeBlindTransfer { - -// Channel getTransferee -/********************************************************** - * The channel that is being transferred - * - * @since ari_1_5_0 - *********************************************************/ - public Channel getTransferee(); - - - -// String getResult -/********************************************************** - * The result of the transfer attempt - * - * @since ari_1_5_0 - *********************************************************/ - public String getResult(); - - - -// void setExten String -/********************************************************** - * The extension transferred to - * - * @since ari_1_5_0 - *********************************************************/ - public void setExten(String val ); - - - -// Bridge getBridge -/********************************************************** - * The bridge being transferred - * - * @since ari_1_5_0 - *********************************************************/ - public Bridge getBridge(); - - - -// void setContext String -/********************************************************** - * The context transferred to - * - * @since ari_1_5_0 - *********************************************************/ - public void setContext(String val ); - - - -// void setReplace_channel Channel -/********************************************************** - * The channel that is replacing transferer when the transferee(s) can not be transferred directly - * - * @since ari_1_5_0 - *********************************************************/ - public void setReplace_channel(Channel val ); - - - -// Channel getReplace_channel -/********************************************************** - * The channel that is replacing transferer when the transferee(s) can not be transferred directly - * - * @since ari_1_5_0 - *********************************************************/ - public Channel getReplace_channel(); - - - -// String getContext -/********************************************************** - * The context transferred to - * - * @since ari_1_5_0 - *********************************************************/ - public String getContext(); - - - -// boolean getIs_external -/********************************************************** - * Whether the transfer was externally initiated or not - * - * @since ari_1_5_0 - *********************************************************/ - public boolean getIs_external(); - - - -// Channel getChannel -/********************************************************** - * The channel performing the blind transfer - * - * @since ari_1_5_0 - *********************************************************/ - public Channel getChannel(); - - - -// void setChannel Channel -/********************************************************** - * The channel performing the blind transfer - * - * @since ari_1_5_0 - *********************************************************/ - public void setChannel(Channel val ); - - - -// void setTransferee Channel -/********************************************************** - * The channel that is being transferred - * - * @since ari_1_5_0 - *********************************************************/ - public void setTransferee(Channel val ); - - - -// void setBridge Bridge -/********************************************************** - * The bridge being transferred - * - * @since ari_1_5_0 - *********************************************************/ - public void setBridge(Bridge val ); - - - -// void setIs_external boolean -/********************************************************** - * Whether the transfer was externally initiated or not - * - * @since ari_1_5_0 - *********************************************************/ - public void setIs_external(boolean val ); - - - -// void setResult String -/********************************************************** - * The result of the transfer attempt - * - * @since ari_1_5_0 - *********************************************************/ - public void setResult(String val ); - - - -// String getExten -/********************************************************** - * The extension transferred to - * - * @since ari_1_5_0 - *********************************************************/ - public String getExten(); - - -} -; diff --git a/classes/ch/loway/oss/ari4java/generated/BridgeCreated.java b/classes/ch/loway/oss/ari4java/generated/BridgeCreated.java deleted file mode 100644 index eb2c0487..00000000 --- a/classes/ch/loway/oss/ari4java/generated/BridgeCreated.java +++ /dev/null @@ -1,45 +0,0 @@ -package ch.loway.oss.ari4java.generated; - -// ---------------------------------------------------- -// THIS CLASS WAS GENERATED AUTOMATICALLY -// PLEASE DO NOT EDIT -// Generated on: Tue Dec 19 09:55:48 CET 2017 -// ---------------------------------------------------- - -import java.util.Date; -import java.util.List; -import java.util.Map; -import java.util.ArrayList; -import ch.loway.oss.ari4java.tools.RestException; -import ch.loway.oss.ari4java.tools.AriCallback; -import ch.loway.oss.ari4java.tools.tags.*; - -/********************************************************** - * - * Generated by: JavaInterface - *********************************************************/ - - -public interface BridgeCreated { - -// void setBridge Bridge -/********************************************************** - * - * - * @since ari_0_0_1 - *********************************************************/ - public void setBridge(Bridge val ); - - - -// Bridge getBridge -/********************************************************** - * - * - * @since ari_0_0_1 - *********************************************************/ - public Bridge getBridge(); - - -} -; diff --git a/classes/ch/loway/oss/ari4java/generated/BridgeDestroyed.java b/classes/ch/loway/oss/ari4java/generated/BridgeDestroyed.java deleted file mode 100644 index 2fd21584..00000000 --- a/classes/ch/loway/oss/ari4java/generated/BridgeDestroyed.java +++ /dev/null @@ -1,45 +0,0 @@ -package ch.loway.oss.ari4java.generated; - -// ---------------------------------------------------- -// THIS CLASS WAS GENERATED AUTOMATICALLY -// PLEASE DO NOT EDIT -// Generated on: Tue Dec 19 09:55:48 CET 2017 -// ---------------------------------------------------- - -import java.util.Date; -import java.util.List; -import java.util.Map; -import java.util.ArrayList; -import ch.loway.oss.ari4java.tools.RestException; -import ch.loway.oss.ari4java.tools.AriCallback; -import ch.loway.oss.ari4java.tools.tags.*; - -/********************************************************** - * - * Generated by: JavaInterface - *********************************************************/ - - -public interface BridgeDestroyed { - -// void setBridge Bridge -/********************************************************** - * - * - * @since ari_0_0_1 - *********************************************************/ - public void setBridge(Bridge val ); - - - -// Bridge getBridge -/********************************************************** - * - * - * @since ari_0_0_1 - *********************************************************/ - public Bridge getBridge(); - - -} -; diff --git a/classes/ch/loway/oss/ari4java/generated/BridgeMerged.java b/classes/ch/loway/oss/ari4java/generated/BridgeMerged.java deleted file mode 100644 index 72de65ed..00000000 --- a/classes/ch/loway/oss/ari4java/generated/BridgeMerged.java +++ /dev/null @@ -1,65 +0,0 @@ -package ch.loway.oss.ari4java.generated; - -// ---------------------------------------------------- -// THIS CLASS WAS GENERATED AUTOMATICALLY -// PLEASE DO NOT EDIT -// Generated on: Tue Dec 19 09:55:48 CET 2017 -// ---------------------------------------------------- - -import java.util.Date; -import java.util.List; -import java.util.Map; -import java.util.ArrayList; -import ch.loway.oss.ari4java.tools.RestException; -import ch.loway.oss.ari4java.tools.AriCallback; -import ch.loway.oss.ari4java.tools.tags.*; - -/********************************************************** - * - * Generated by: JavaInterface - *********************************************************/ - - -public interface BridgeMerged { - -// Bridge getBridge_from -/********************************************************** - * - * - * @since ari_0_0_1 - *********************************************************/ - public Bridge getBridge_from(); - - - -// void setBridge Bridge -/********************************************************** - * - * - * @since ari_0_0_1 - *********************************************************/ - public void setBridge(Bridge val ); - - - -// Bridge getBridge -/********************************************************** - * - * - * @since ari_0_0_1 - *********************************************************/ - public Bridge getBridge(); - - - -// void setBridge_from Bridge -/********************************************************** - * - * - * @since ari_0_0_1 - *********************************************************/ - public void setBridge_from(Bridge val ); - - -} -; diff --git a/classes/ch/loway/oss/ari4java/generated/BridgeVideoSourceChanged.java b/classes/ch/loway/oss/ari4java/generated/BridgeVideoSourceChanged.java deleted file mode 100644 index 973a6c41..00000000 --- a/classes/ch/loway/oss/ari4java/generated/BridgeVideoSourceChanged.java +++ /dev/null @@ -1,65 +0,0 @@ -package ch.loway.oss.ari4java.generated; - -// ---------------------------------------------------- -// THIS CLASS WAS GENERATED AUTOMATICALLY -// PLEASE DO NOT EDIT -// Generated on: Tue Dec 19 09:55:48 CET 2017 -// ---------------------------------------------------- - -import java.util.Date; -import java.util.List; -import java.util.Map; -import java.util.ArrayList; -import ch.loway.oss.ari4java.tools.RestException; -import ch.loway.oss.ari4java.tools.AriCallback; -import ch.loway.oss.ari4java.tools.tags.*; - -/********************************************************** - * - * Generated by: JavaInterface - *********************************************************/ - - -public interface BridgeVideoSourceChanged { - -// void setBridge Bridge -/********************************************************** - * - * - * @since ari_2_0_0 - *********************************************************/ - public void setBridge(Bridge val ); - - - -// String getOld_video_source_id -/********************************************************** - * - * - * @since ari_2_0_0 - *********************************************************/ - public String getOld_video_source_id(); - - - -// Bridge getBridge -/********************************************************** - * - * - * @since ari_2_0_0 - *********************************************************/ - public Bridge getBridge(); - - - -// void setOld_video_source_id String -/********************************************************** - * - * - * @since ari_2_0_0 - *********************************************************/ - public void setOld_video_source_id(String val ); - - -} -; diff --git a/classes/ch/loway/oss/ari4java/generated/BuildInfo.java b/classes/ch/loway/oss/ari4java/generated/BuildInfo.java deleted file mode 100644 index 0103d6a0..00000000 --- a/classes/ch/loway/oss/ari4java/generated/BuildInfo.java +++ /dev/null @@ -1,145 +0,0 @@ -package ch.loway.oss.ari4java.generated; - -// ---------------------------------------------------- -// THIS CLASS WAS GENERATED AUTOMATICALLY -// PLEASE DO NOT EDIT -// Generated on: Tue Dec 19 09:55:48 CET 2017 -// ---------------------------------------------------- - -import java.util.Date; -import java.util.List; -import java.util.Map; -import java.util.ArrayList; -import ch.loway.oss.ari4java.tools.RestException; -import ch.loway.oss.ari4java.tools.AriCallback; -import ch.loway.oss.ari4java.tools.tags.*; - -/********************************************************** - * - * Generated by: JavaInterface - *********************************************************/ - - -public interface BuildInfo { - -// void setKernel String -/********************************************************** - * Kernel version Asterisk was built on. - * - * @since ari_0_0_1 - *********************************************************/ - public void setKernel(String val ); - - - -// String getUser -/********************************************************** - * Username that build Asterisk - * - * @since ari_0_0_1 - *********************************************************/ - public String getUser(); - - - -// String getOs -/********************************************************** - * OS Asterisk was built on. - * - * @since ari_0_0_1 - *********************************************************/ - public String getOs(); - - - -// String getMachine -/********************************************************** - * Machine architecture (x86_64, i686, ppc, etc.) - * - * @since ari_0_0_1 - *********************************************************/ - public String getMachine(); - - - -// void setDate String -/********************************************************** - * Date and time when Asterisk was built. - * - * @since ari_0_0_1 - *********************************************************/ - public void setDate(String val ); - - - -// void setOs String -/********************************************************** - * OS Asterisk was built on. - * - * @since ari_0_0_1 - *********************************************************/ - public void setOs(String val ); - - - -// void setUser String -/********************************************************** - * Username that build Asterisk - * - * @since ari_0_0_1 - *********************************************************/ - public void setUser(String val ); - - - -// String getKernel -/********************************************************** - * Kernel version Asterisk was built on. - * - * @since ari_0_0_1 - *********************************************************/ - public String getKernel(); - - - -// void setOptions String -/********************************************************** - * Compile time options, or empty string if default. - * - * @since ari_0_0_1 - *********************************************************/ - public void setOptions(String val ); - - - -// String getDate -/********************************************************** - * Date and time when Asterisk was built. - * - * @since ari_0_0_1 - *********************************************************/ - public String getDate(); - - - -// String getOptions -/********************************************************** - * Compile time options, or empty string if default. - * - * @since ari_0_0_1 - *********************************************************/ - public String getOptions(); - - - -// void setMachine String -/********************************************************** - * Machine architecture (x86_64, i686, ppc, etc.) - * - * @since ari_0_0_1 - *********************************************************/ - public void setMachine(String val ); - - -} -; diff --git a/classes/ch/loway/oss/ari4java/generated/CallerID.java b/classes/ch/loway/oss/ari4java/generated/CallerID.java deleted file mode 100644 index 3974b2b7..00000000 --- a/classes/ch/loway/oss/ari4java/generated/CallerID.java +++ /dev/null @@ -1,65 +0,0 @@ -package ch.loway.oss.ari4java.generated; - -// ---------------------------------------------------- -// THIS CLASS WAS GENERATED AUTOMATICALLY -// PLEASE DO NOT EDIT -// Generated on: Tue Dec 19 09:55:48 CET 2017 -// ---------------------------------------------------- - -import java.util.Date; -import java.util.List; -import java.util.Map; -import java.util.ArrayList; -import ch.loway.oss.ari4java.tools.RestException; -import ch.loway.oss.ari4java.tools.AriCallback; -import ch.loway.oss.ari4java.tools.tags.*; - -/********************************************************** - * - * Generated by: JavaInterface - *********************************************************/ - - -public interface CallerID { - -// String getName -/********************************************************** - * - * - * @since ari_0_0_1 - *********************************************************/ - public String getName(); - - - -// void setNumber String -/********************************************************** - * - * - * @since ari_0_0_1 - *********************************************************/ - public void setNumber(String val ); - - - -// void setName String -/********************************************************** - * - * - * @since ari_0_0_1 - *********************************************************/ - public void setName(String val ); - - - -// String getNumber -/********************************************************** - * - * - * @since ari_0_0_1 - *********************************************************/ - public String getNumber(); - - -} -; diff --git a/classes/ch/loway/oss/ari4java/generated/Channel.java b/classes/ch/loway/oss/ari4java/generated/Channel.java deleted file mode 100644 index f9d0fad7..00000000 --- a/classes/ch/loway/oss/ari4java/generated/Channel.java +++ /dev/null @@ -1,229 +0,0 @@ -package ch.loway.oss.ari4java.generated; - -// ---------------------------------------------------- -// THIS CLASS WAS GENERATED AUTOMATICALLY -// PLEASE DO NOT EDIT -// Generated on: Tue Dec 19 09:55:48 CET 2017 -// ---------------------------------------------------- - -import java.util.Date; -import java.util.List; -import java.util.Map; -import java.util.ArrayList; -import ch.loway.oss.ari4java.tools.RestException; -import ch.loway.oss.ari4java.tools.AriCallback; -import ch.loway.oss.ari4java.tools.tags.*; - -/********************************************************** - * - * Generated by: JavaInterface - *********************************************************/ - - -public interface Channel extends EventSource { - -// Date getCreationtime -/********************************************************** - * Timestamp when channel was created - * - * @since ari_0_0_1 - *********************************************************/ - public Date getCreationtime(); - - - -// String getLanguage -/********************************************************** - * The default spoken language - * - * @since ari_1_7_0 - *********************************************************/ - public String getLanguage(); - - - -// String getName -/********************************************************** - * Name of the channel (i.e. SIP/foo-0000a7e3) - * - * @since ari_0_0_1 - *********************************************************/ - public String getName(); - - - -// CallerID getCaller -/********************************************************** - * - * - * @since ari_0_0_1 - *********************************************************/ - public CallerID getCaller(); - - - -// DialplanCEP getDialplan -/********************************************************** - * Current location in the dialplan - * - * @since ari_0_0_1 - *********************************************************/ - public DialplanCEP getDialplan(); - - - -// void setAccountcode String -/********************************************************** - * - * - * @since ari_0_0_1 - *********************************************************/ - public void setAccountcode(String val ); - - - -// void setCaller CallerID -/********************************************************** - * - * - * @since ari_0_0_1 - *********************************************************/ - public void setCaller(CallerID val ); - - - -// void setDialplan DialplanCEP -/********************************************************** - * Current location in the dialplan - * - * @since ari_0_0_1 - *********************************************************/ - public void setDialplan(DialplanCEP val ); - - - -// void setCreationtime Date -/********************************************************** - * Timestamp when channel was created - * - * @since ari_0_0_1 - *********************************************************/ - public void setCreationtime(Date val ); - - - -// String getAccountcode -/********************************************************** - * - * - * @since ari_0_0_1 - *********************************************************/ - public String getAccountcode(); - - - -// String getState -/********************************************************** - * - * - * @since ari_0_0_1 - *********************************************************/ - public String getState(); - - - -// void setState String -/********************************************************** - * - * - * @since ari_0_0_1 - *********************************************************/ - public void setState(String val ); - - - -// CallerID getConnected -/********************************************************** - * - * - * @since ari_0_0_1 - *********************************************************/ - public CallerID getConnected(); - - - -// void setLanguage String -/********************************************************** - * The default spoken language - * - * @since ari_1_7_0 - *********************************************************/ - public void setLanguage(String val ); - - - -// void setConnected CallerID -/********************************************************** - * - * - * @since ari_0_0_1 - *********************************************************/ - public void setConnected(CallerID val ); - - - -// String getChannelvars -/********************************************************** - * Channel variables - * - * @since ari_2_0_0 - *********************************************************/ - public String getChannelvars(); - - - -// void setChannelvars String -/********************************************************** - * Channel variables - * - * @since ari_2_0_0 - *********************************************************/ - public void setChannelvars(String val ); - - - -// void setId String -/********************************************************** - * Unique identifier of the channel. - * - * This is the same as the Uniqueid field in AMI. - * - * @since ari_0_0_1 - *********************************************************/ - public void setId(String val ); - - - -// String getId -/********************************************************** - * Unique identifier of the channel. - * - * This is the same as the Uniqueid field in AMI. - * - * @since ari_0_0_1 - *********************************************************/ - public String getId(); - - - -// void setName String -/********************************************************** - * Name of the channel (i.e. SIP/foo-0000a7e3) - * - * @since ari_0_0_1 - *********************************************************/ - public void setName(String val ); - - -} -; diff --git a/classes/ch/loway/oss/ari4java/generated/ChannelCallerId.java b/classes/ch/loway/oss/ari4java/generated/ChannelCallerId.java deleted file mode 100644 index 9f24883a..00000000 --- a/classes/ch/loway/oss/ari4java/generated/ChannelCallerId.java +++ /dev/null @@ -1,85 +0,0 @@ -package ch.loway.oss.ari4java.generated; - -// ---------------------------------------------------- -// THIS CLASS WAS GENERATED AUTOMATICALLY -// PLEASE DO NOT EDIT -// Generated on: Tue Dec 19 09:55:48 CET 2017 -// ---------------------------------------------------- - -import java.util.Date; -import java.util.List; -import java.util.Map; -import java.util.ArrayList; -import ch.loway.oss.ari4java.tools.RestException; -import ch.loway.oss.ari4java.tools.AriCallback; -import ch.loway.oss.ari4java.tools.tags.*; - -/********************************************************** - * - * Generated by: JavaInterface - *********************************************************/ - - -public interface ChannelCallerId { - -// int getCaller_presentation -/********************************************************** - * The integer representation of the Caller Presentation value. - * - * @since ari_0_0_1 - *********************************************************/ - public int getCaller_presentation(); - - - -// String getCaller_presentation_txt -/********************************************************** - * The text representation of the Caller Presentation value. - * - * @since ari_0_0_1 - *********************************************************/ - public String getCaller_presentation_txt(); - - - -// Channel getChannel -/********************************************************** - * The channel that changed Caller ID. - * - * @since ari_0_0_1 - *********************************************************/ - public Channel getChannel(); - - - -// void setChannel Channel -/********************************************************** - * The channel that changed Caller ID. - * - * @since ari_0_0_1 - *********************************************************/ - public void setChannel(Channel val ); - - - -// void setCaller_presentation_txt String -/********************************************************** - * The text representation of the Caller Presentation value. - * - * @since ari_0_0_1 - *********************************************************/ - public void setCaller_presentation_txt(String val ); - - - -// void setCaller_presentation int -/********************************************************** - * The integer representation of the Caller Presentation value. - * - * @since ari_0_0_1 - *********************************************************/ - public void setCaller_presentation(int val ); - - -} -; diff --git a/classes/ch/loway/oss/ari4java/generated/ChannelConnectedLine.java b/classes/ch/loway/oss/ari4java/generated/ChannelConnectedLine.java deleted file mode 100644 index 28fb6572..00000000 --- a/classes/ch/loway/oss/ari4java/generated/ChannelConnectedLine.java +++ /dev/null @@ -1,45 +0,0 @@ -package ch.loway.oss.ari4java.generated; - -// ---------------------------------------------------- -// THIS CLASS WAS GENERATED AUTOMATICALLY -// PLEASE DO NOT EDIT -// Generated on: Tue Dec 19 09:55:48 CET 2017 -// ---------------------------------------------------- - -import java.util.Date; -import java.util.List; -import java.util.Map; -import java.util.ArrayList; -import ch.loway.oss.ari4java.tools.RestException; -import ch.loway.oss.ari4java.tools.AriCallback; -import ch.loway.oss.ari4java.tools.tags.*; - -/********************************************************** - * - * Generated by: JavaInterface - *********************************************************/ - - -public interface ChannelConnectedLine { - -// Channel getChannel -/********************************************************** - * The channel whose connected line has changed. - * - * @since ari_1_6_0 - *********************************************************/ - public Channel getChannel(); - - - -// void setChannel Channel -/********************************************************** - * The channel whose connected line has changed. - * - * @since ari_1_6_0 - *********************************************************/ - public void setChannel(Channel val ); - - -} -; diff --git a/classes/ch/loway/oss/ari4java/generated/ChannelCreated.java b/classes/ch/loway/oss/ari4java/generated/ChannelCreated.java deleted file mode 100644 index 40c88279..00000000 --- a/classes/ch/loway/oss/ari4java/generated/ChannelCreated.java +++ /dev/null @@ -1,45 +0,0 @@ -package ch.loway.oss.ari4java.generated; - -// ---------------------------------------------------- -// THIS CLASS WAS GENERATED AUTOMATICALLY -// PLEASE DO NOT EDIT -// Generated on: Tue Dec 19 09:55:48 CET 2017 -// ---------------------------------------------------- - -import java.util.Date; -import java.util.List; -import java.util.Map; -import java.util.ArrayList; -import ch.loway.oss.ari4java.tools.RestException; -import ch.loway.oss.ari4java.tools.AriCallback; -import ch.loway.oss.ari4java.tools.tags.*; - -/********************************************************** - * - * Generated by: JavaInterface - *********************************************************/ - - -public interface ChannelCreated { - -// Channel getChannel -/********************************************************** - * - * - * @since ari_0_0_1 - *********************************************************/ - public Channel getChannel(); - - - -// void setChannel Channel -/********************************************************** - * - * - * @since ari_0_0_1 - *********************************************************/ - public void setChannel(Channel val ); - - -} -; diff --git a/classes/ch/loway/oss/ari4java/generated/ChannelDestroyed.java b/classes/ch/loway/oss/ari4java/generated/ChannelDestroyed.java deleted file mode 100644 index 28fd69b3..00000000 --- a/classes/ch/loway/oss/ari4java/generated/ChannelDestroyed.java +++ /dev/null @@ -1,85 +0,0 @@ -package ch.loway.oss.ari4java.generated; - -// ---------------------------------------------------- -// THIS CLASS WAS GENERATED AUTOMATICALLY -// PLEASE DO NOT EDIT -// Generated on: Tue Dec 19 09:55:48 CET 2017 -// ---------------------------------------------------- - -import java.util.Date; -import java.util.List; -import java.util.Map; -import java.util.ArrayList; -import ch.loway.oss.ari4java.tools.RestException; -import ch.loway.oss.ari4java.tools.AriCallback; -import ch.loway.oss.ari4java.tools.tags.*; - -/********************************************************** - * - * Generated by: JavaInterface - *********************************************************/ - - -public interface ChannelDestroyed { - -// int getCause -/********************************************************** - * Integer representation of the cause of the hangup - * - * @since ari_0_0_1 - *********************************************************/ - public int getCause(); - - - -// Channel getChannel -/********************************************************** - * - * - * @since ari_0_0_1 - *********************************************************/ - public Channel getChannel(); - - - -// void setChannel Channel -/********************************************************** - * - * - * @since ari_0_0_1 - *********************************************************/ - public void setChannel(Channel val ); - - - -// void setCause_txt String -/********************************************************** - * Text representation of the cause of the hangup - * - * @since ari_0_0_1 - *********************************************************/ - public void setCause_txt(String val ); - - - -// String getCause_txt -/********************************************************** - * Text representation of the cause of the hangup - * - * @since ari_0_0_1 - *********************************************************/ - public String getCause_txt(); - - - -// void setCause int -/********************************************************** - * Integer representation of the cause of the hangup - * - * @since ari_0_0_1 - *********************************************************/ - public void setCause(int val ); - - -} -; diff --git a/classes/ch/loway/oss/ari4java/generated/ChannelDialplan.java b/classes/ch/loway/oss/ari4java/generated/ChannelDialplan.java deleted file mode 100644 index 7dac3526..00000000 --- a/classes/ch/loway/oss/ari4java/generated/ChannelDialplan.java +++ /dev/null @@ -1,85 +0,0 @@ -package ch.loway.oss.ari4java.generated; - -// ---------------------------------------------------- -// THIS CLASS WAS GENERATED AUTOMATICALLY -// PLEASE DO NOT EDIT -// Generated on: Tue Dec 19 09:55:48 CET 2017 -// ---------------------------------------------------- - -import java.util.Date; -import java.util.List; -import java.util.Map; -import java.util.ArrayList; -import ch.loway.oss.ari4java.tools.RestException; -import ch.loway.oss.ari4java.tools.AriCallback; -import ch.loway.oss.ari4java.tools.tags.*; - -/********************************************************** - * - * Generated by: JavaInterface - *********************************************************/ - - -public interface ChannelDialplan { - -// Channel getChannel -/********************************************************** - * The channel that changed dialplan location. - * - * @since ari_0_0_1 - *********************************************************/ - public Channel getChannel(); - - - -// String getDialplan_app_data -/********************************************************** - * The data to be passed to the application. - * - * @since ari_0_0_1 - *********************************************************/ - public String getDialplan_app_data(); - - - -// void setChannel Channel -/********************************************************** - * The channel that changed dialplan location. - * - * @since ari_0_0_1 - *********************************************************/ - public void setChannel(Channel val ); - - - -// void setDialplan_app String -/********************************************************** - * The application about to be executed. - * - * @since ari_0_0_1 - *********************************************************/ - public void setDialplan_app(String val ); - - - -// void setDialplan_app_data String -/********************************************************** - * The data to be passed to the application. - * - * @since ari_0_0_1 - *********************************************************/ - public void setDialplan_app_data(String val ); - - - -// String getDialplan_app -/********************************************************** - * The application about to be executed. - * - * @since ari_0_0_1 - *********************************************************/ - public String getDialplan_app(); - - -} -; diff --git a/classes/ch/loway/oss/ari4java/generated/ChannelDtmfReceived.java b/classes/ch/loway/oss/ari4java/generated/ChannelDtmfReceived.java deleted file mode 100644 index b0bb99e5..00000000 --- a/classes/ch/loway/oss/ari4java/generated/ChannelDtmfReceived.java +++ /dev/null @@ -1,85 +0,0 @@ -package ch.loway.oss.ari4java.generated; - -// ---------------------------------------------------- -// THIS CLASS WAS GENERATED AUTOMATICALLY -// PLEASE DO NOT EDIT -// Generated on: Tue Dec 19 09:55:48 CET 2017 -// ---------------------------------------------------- - -import java.util.Date; -import java.util.List; -import java.util.Map; -import java.util.ArrayList; -import ch.loway.oss.ari4java.tools.RestException; -import ch.loway.oss.ari4java.tools.AriCallback; -import ch.loway.oss.ari4java.tools.tags.*; - -/********************************************************** - * - * Generated by: JavaInterface - *********************************************************/ - - -public interface ChannelDtmfReceived { - -// void setDigit String -/********************************************************** - * DTMF digit received (0-9, A-E, # or *) - * - * @since ari_0_0_1 - *********************************************************/ - public void setDigit(String val ); - - - -// String getDigit -/********************************************************** - * DTMF digit received (0-9, A-E, # or *) - * - * @since ari_0_0_1 - *********************************************************/ - public String getDigit(); - - - -// void setDuration_ms int -/********************************************************** - * Number of milliseconds DTMF was received - * - * @since ari_0_0_1 - *********************************************************/ - public void setDuration_ms(int val ); - - - -// Channel getChannel -/********************************************************** - * The channel on which DTMF was received - * - * @since ari_0_0_1 - *********************************************************/ - public Channel getChannel(); - - - -// void setChannel Channel -/********************************************************** - * The channel on which DTMF was received - * - * @since ari_0_0_1 - *********************************************************/ - public void setChannel(Channel val ); - - - -// int getDuration_ms -/********************************************************** - * Number of milliseconds DTMF was received - * - * @since ari_0_0_1 - *********************************************************/ - public int getDuration_ms(); - - -} -; diff --git a/classes/ch/loway/oss/ari4java/generated/ChannelEnteredBridge.java b/classes/ch/loway/oss/ari4java/generated/ChannelEnteredBridge.java deleted file mode 100644 index aceb1888..00000000 --- a/classes/ch/loway/oss/ari4java/generated/ChannelEnteredBridge.java +++ /dev/null @@ -1,65 +0,0 @@ -package ch.loway.oss.ari4java.generated; - -// ---------------------------------------------------- -// THIS CLASS WAS GENERATED AUTOMATICALLY -// PLEASE DO NOT EDIT -// Generated on: Tue Dec 19 09:55:48 CET 2017 -// ---------------------------------------------------- - -import java.util.Date; -import java.util.List; -import java.util.Map; -import java.util.ArrayList; -import ch.loway.oss.ari4java.tools.RestException; -import ch.loway.oss.ari4java.tools.AriCallback; -import ch.loway.oss.ari4java.tools.tags.*; - -/********************************************************** - * - * Generated by: JavaInterface - *********************************************************/ - - -public interface ChannelEnteredBridge { - -// Channel getChannel -/********************************************************** - * - * - * @since ari_0_0_1 - *********************************************************/ - public Channel getChannel(); - - - -// void setBridge Bridge -/********************************************************** - * - * - * @since ari_0_0_1 - *********************************************************/ - public void setBridge(Bridge val ); - - - -// void setChannel Channel -/********************************************************** - * - * - * @since ari_0_0_1 - *********************************************************/ - public void setChannel(Channel val ); - - - -// Bridge getBridge -/********************************************************** - * - * - * @since ari_0_0_1 - *********************************************************/ - public Bridge getBridge(); - - -} -; diff --git a/classes/ch/loway/oss/ari4java/generated/ChannelHangupRequest.java b/classes/ch/loway/oss/ari4java/generated/ChannelHangupRequest.java deleted file mode 100644 index 4242cee4..00000000 --- a/classes/ch/loway/oss/ari4java/generated/ChannelHangupRequest.java +++ /dev/null @@ -1,85 +0,0 @@ -package ch.loway.oss.ari4java.generated; - -// ---------------------------------------------------- -// THIS CLASS WAS GENERATED AUTOMATICALLY -// PLEASE DO NOT EDIT -// Generated on: Tue Dec 19 09:55:48 CET 2017 -// ---------------------------------------------------- - -import java.util.Date; -import java.util.List; -import java.util.Map; -import java.util.ArrayList; -import ch.loway.oss.ari4java.tools.RestException; -import ch.loway.oss.ari4java.tools.AriCallback; -import ch.loway.oss.ari4java.tools.tags.*; - -/********************************************************** - * - * Generated by: JavaInterface - *********************************************************/ - - -public interface ChannelHangupRequest { - -// int getCause -/********************************************************** - * Integer representation of the cause of the hangup. - * - * @since ari_0_0_1 - *********************************************************/ - public int getCause(); - - - -// boolean getSoft -/********************************************************** - * Whether the hangup request was a soft hangup request. - * - * @since ari_0_0_1 - *********************************************************/ - public boolean getSoft(); - - - -// Channel getChannel -/********************************************************** - * The channel on which the hangup was requested. - * - * @since ari_0_0_1 - *********************************************************/ - public Channel getChannel(); - - - -// void setSoft boolean -/********************************************************** - * Whether the hangup request was a soft hangup request. - * - * @since ari_0_0_1 - *********************************************************/ - public void setSoft(boolean val ); - - - -// void setChannel Channel -/********************************************************** - * The channel on which the hangup was requested. - * - * @since ari_0_0_1 - *********************************************************/ - public void setChannel(Channel val ); - - - -// void setCause int -/********************************************************** - * Integer representation of the cause of the hangup. - * - * @since ari_0_0_1 - *********************************************************/ - public void setCause(int val ); - - -} -; diff --git a/classes/ch/loway/oss/ari4java/generated/ChannelHold.java b/classes/ch/loway/oss/ari4java/generated/ChannelHold.java deleted file mode 100644 index 4f9b5c7c..00000000 --- a/classes/ch/loway/oss/ari4java/generated/ChannelHold.java +++ /dev/null @@ -1,65 +0,0 @@ -package ch.loway.oss.ari4java.generated; - -// ---------------------------------------------------- -// THIS CLASS WAS GENERATED AUTOMATICALLY -// PLEASE DO NOT EDIT -// Generated on: Tue Dec 19 09:55:48 CET 2017 -// ---------------------------------------------------- - -import java.util.Date; -import java.util.List; -import java.util.Map; -import java.util.ArrayList; -import ch.loway.oss.ari4java.tools.RestException; -import ch.loway.oss.ari4java.tools.AriCallback; -import ch.loway.oss.ari4java.tools.tags.*; - -/********************************************************** - * - * Generated by: JavaInterface - *********************************************************/ - - -public interface ChannelHold { - -// void setMusicclass String -/********************************************************** - * The music on hold class that the initiator requested. - * - * @since ari_1_8_0 - *********************************************************/ - public void setMusicclass(String val ); - - - -// Channel getChannel -/********************************************************** - * The channel that initiated the hold event. - * - * @since ari_1_8_0 - *********************************************************/ - public Channel getChannel(); - - - -// void setChannel Channel -/********************************************************** - * The channel that initiated the hold event. - * - * @since ari_1_8_0 - *********************************************************/ - public void setChannel(Channel val ); - - - -// String getMusicclass -/********************************************************** - * The music on hold class that the initiator requested. - * - * @since ari_1_8_0 - *********************************************************/ - public String getMusicclass(); - - -} -; diff --git a/classes/ch/loway/oss/ari4java/generated/ChannelLeftBridge.java b/classes/ch/loway/oss/ari4java/generated/ChannelLeftBridge.java deleted file mode 100644 index 87bf0f4c..00000000 --- a/classes/ch/loway/oss/ari4java/generated/ChannelLeftBridge.java +++ /dev/null @@ -1,65 +0,0 @@ -package ch.loway.oss.ari4java.generated; - -// ---------------------------------------------------- -// THIS CLASS WAS GENERATED AUTOMATICALLY -// PLEASE DO NOT EDIT -// Generated on: Tue Dec 19 09:55:48 CET 2017 -// ---------------------------------------------------- - -import java.util.Date; -import java.util.List; -import java.util.Map; -import java.util.ArrayList; -import ch.loway.oss.ari4java.tools.RestException; -import ch.loway.oss.ari4java.tools.AriCallback; -import ch.loway.oss.ari4java.tools.tags.*; - -/********************************************************** - * - * Generated by: JavaInterface - *********************************************************/ - - -public interface ChannelLeftBridge { - -// Channel getChannel -/********************************************************** - * - * - * @since ari_0_0_1 - *********************************************************/ - public Channel getChannel(); - - - -// void setBridge Bridge -/********************************************************** - * - * - * @since ari_0_0_1 - *********************************************************/ - public void setBridge(Bridge val ); - - - -// void setChannel Channel -/********************************************************** - * - * - * @since ari_0_0_1 - *********************************************************/ - public void setChannel(Channel val ); - - - -// Bridge getBridge -/********************************************************** - * - * - * @since ari_0_0_1 - *********************************************************/ - public Bridge getBridge(); - - -} -; diff --git a/classes/ch/loway/oss/ari4java/generated/ChannelStateChange.java b/classes/ch/loway/oss/ari4java/generated/ChannelStateChange.java deleted file mode 100644 index ae149e16..00000000 --- a/classes/ch/loway/oss/ari4java/generated/ChannelStateChange.java +++ /dev/null @@ -1,45 +0,0 @@ -package ch.loway.oss.ari4java.generated; - -// ---------------------------------------------------- -// THIS CLASS WAS GENERATED AUTOMATICALLY -// PLEASE DO NOT EDIT -// Generated on: Tue Dec 19 09:55:48 CET 2017 -// ---------------------------------------------------- - -import java.util.Date; -import java.util.List; -import java.util.Map; -import java.util.ArrayList; -import ch.loway.oss.ari4java.tools.RestException; -import ch.loway.oss.ari4java.tools.AriCallback; -import ch.loway.oss.ari4java.tools.tags.*; - -/********************************************************** - * - * Generated by: JavaInterface - *********************************************************/ - - -public interface ChannelStateChange { - -// Channel getChannel -/********************************************************** - * - * - * @since ari_0_0_1 - *********************************************************/ - public Channel getChannel(); - - - -// void setChannel Channel -/********************************************************** - * - * - * @since ari_0_0_1 - *********************************************************/ - public void setChannel(Channel val ); - - -} -; diff --git a/classes/ch/loway/oss/ari4java/generated/ChannelTalkingFinished.java b/classes/ch/loway/oss/ari4java/generated/ChannelTalkingFinished.java deleted file mode 100644 index 0109e076..00000000 --- a/classes/ch/loway/oss/ari4java/generated/ChannelTalkingFinished.java +++ /dev/null @@ -1,65 +0,0 @@ -package ch.loway.oss.ari4java.generated; - -// ---------------------------------------------------- -// THIS CLASS WAS GENERATED AUTOMATICALLY -// PLEASE DO NOT EDIT -// Generated on: Tue Dec 19 09:55:48 CET 2017 -// ---------------------------------------------------- - -import java.util.Date; -import java.util.List; -import java.util.Map; -import java.util.ArrayList; -import ch.loway.oss.ari4java.tools.RestException; -import ch.loway.oss.ari4java.tools.AriCallback; -import ch.loway.oss.ari4java.tools.tags.*; - -/********************************************************** - * - * Generated by: JavaInterface - *********************************************************/ - - -public interface ChannelTalkingFinished { - -// int getDuration -/********************************************************** - * The length of time, in milliseconds, that talking was detected on the channel - * - * @since ari_1_5_0 - *********************************************************/ - public int getDuration(); - - - -// void setDuration int -/********************************************************** - * The length of time, in milliseconds, that talking was detected on the channel - * - * @since ari_1_5_0 - *********************************************************/ - public void setDuration(int val ); - - - -// Channel getChannel -/********************************************************** - * The channel on which talking completed. - * - * @since ari_1_5_0 - *********************************************************/ - public Channel getChannel(); - - - -// void setChannel Channel -/********************************************************** - * The channel on which talking completed. - * - * @since ari_1_5_0 - *********************************************************/ - public void setChannel(Channel val ); - - -} -; diff --git a/classes/ch/loway/oss/ari4java/generated/ChannelTalkingStarted.java b/classes/ch/loway/oss/ari4java/generated/ChannelTalkingStarted.java deleted file mode 100644 index cb822308..00000000 --- a/classes/ch/loway/oss/ari4java/generated/ChannelTalkingStarted.java +++ /dev/null @@ -1,45 +0,0 @@ -package ch.loway.oss.ari4java.generated; - -// ---------------------------------------------------- -// THIS CLASS WAS GENERATED AUTOMATICALLY -// PLEASE DO NOT EDIT -// Generated on: Tue Dec 19 09:55:48 CET 2017 -// ---------------------------------------------------- - -import java.util.Date; -import java.util.List; -import java.util.Map; -import java.util.ArrayList; -import ch.loway.oss.ari4java.tools.RestException; -import ch.loway.oss.ari4java.tools.AriCallback; -import ch.loway.oss.ari4java.tools.tags.*; - -/********************************************************** - * - * Generated by: JavaInterface - *********************************************************/ - - -public interface ChannelTalkingStarted { - -// Channel getChannel -/********************************************************** - * The channel on which talking started. - * - * @since ari_1_5_0 - *********************************************************/ - public Channel getChannel(); - - - -// void setChannel Channel -/********************************************************** - * The channel on which talking started. - * - * @since ari_1_5_0 - *********************************************************/ - public void setChannel(Channel val ); - - -} -; diff --git a/classes/ch/loway/oss/ari4java/generated/ChannelUnhold.java b/classes/ch/loway/oss/ari4java/generated/ChannelUnhold.java deleted file mode 100644 index cd73c68c..00000000 --- a/classes/ch/loway/oss/ari4java/generated/ChannelUnhold.java +++ /dev/null @@ -1,45 +0,0 @@ -package ch.loway.oss.ari4java.generated; - -// ---------------------------------------------------- -// THIS CLASS WAS GENERATED AUTOMATICALLY -// PLEASE DO NOT EDIT -// Generated on: Tue Dec 19 09:55:48 CET 2017 -// ---------------------------------------------------- - -import java.util.Date; -import java.util.List; -import java.util.Map; -import java.util.ArrayList; -import ch.loway.oss.ari4java.tools.RestException; -import ch.loway.oss.ari4java.tools.AriCallback; -import ch.loway.oss.ari4java.tools.tags.*; - -/********************************************************** - * - * Generated by: JavaInterface - *********************************************************/ - - -public interface ChannelUnhold { - -// Channel getChannel -/********************************************************** - * The channel that initiated the unhold event. - * - * @since ari_1_8_0 - *********************************************************/ - public Channel getChannel(); - - - -// void setChannel Channel -/********************************************************** - * The channel that initiated the unhold event. - * - * @since ari_1_8_0 - *********************************************************/ - public void setChannel(Channel val ); - - -} -; diff --git a/classes/ch/loway/oss/ari4java/generated/ChannelUserevent.java b/classes/ch/loway/oss/ari4java/generated/ChannelUserevent.java deleted file mode 100644 index 292e9dc9..00000000 --- a/classes/ch/loway/oss/ari4java/generated/ChannelUserevent.java +++ /dev/null @@ -1,125 +0,0 @@ -package ch.loway.oss.ari4java.generated; - -// ---------------------------------------------------- -// THIS CLASS WAS GENERATED AUTOMATICALLY -// PLEASE DO NOT EDIT -// Generated on: Tue Dec 19 09:55:48 CET 2017 -// ---------------------------------------------------- - -import java.util.Date; -import java.util.List; -import java.util.Map; -import java.util.ArrayList; -import ch.loway.oss.ari4java.tools.RestException; -import ch.loway.oss.ari4java.tools.AriCallback; -import ch.loway.oss.ari4java.tools.tags.*; - -/********************************************************** - * - * Generated by: JavaInterface - *********************************************************/ - - -public interface ChannelUserevent { - -// String getEventname -/********************************************************** - * The name of the user event. - * - * @since ari_0_0_1 - *********************************************************/ - public String getEventname(); - - - -// void setEventname String -/********************************************************** - * The name of the user event. - * - * @since ari_0_0_1 - *********************************************************/ - public void setEventname(String val ); - - - -// Endpoint getEndpoint -/********************************************************** - * A endpoint that is signaled with the user event. - * - * @since ari_1_5_0 - *********************************************************/ - public Endpoint getEndpoint(); - - - -// Channel getChannel -/********************************************************** - * The channel that signaled the user event. - * - * @since ari_0_0_1 - *********************************************************/ - public Channel getChannel(); - - - -// void setChannel Channel -/********************************************************** - * The channel that signaled the user event. - * - * @since ari_0_0_1 - *********************************************************/ - public void setChannel(Channel val ); - - - -// void setBridge Bridge -/********************************************************** - * A bridge that is signaled with the user event. - * - * @since ari_1_5_0 - *********************************************************/ - public void setBridge(Bridge val ); - - - -// Bridge getBridge -/********************************************************** - * A bridge that is signaled with the user event. - * - * @since ari_1_5_0 - *********************************************************/ - public Bridge getBridge(); - - - -// void setUserevent String -/********************************************************** - * Custom Userevent data - * - * @since ari_0_0_1 - *********************************************************/ - public void setUserevent(String val ); - - - -// void setEndpoint Endpoint -/********************************************************** - * A endpoint that is signaled with the user event. - * - * @since ari_1_5_0 - *********************************************************/ - public void setEndpoint(Endpoint val ); - - - -// String getUserevent -/********************************************************** - * Custom Userevent data - * - * @since ari_0_0_1 - *********************************************************/ - public String getUserevent(); - - -} -; diff --git a/classes/ch/loway/oss/ari4java/generated/ChannelVarset.java b/classes/ch/loway/oss/ari4java/generated/ChannelVarset.java deleted file mode 100644 index e627a178..00000000 --- a/classes/ch/loway/oss/ari4java/generated/ChannelVarset.java +++ /dev/null @@ -1,89 +0,0 @@ -package ch.loway.oss.ari4java.generated; - -// ---------------------------------------------------- -// THIS CLASS WAS GENERATED AUTOMATICALLY -// PLEASE DO NOT EDIT -// Generated on: Tue Dec 19 09:55:48 CET 2017 -// ---------------------------------------------------- - -import java.util.Date; -import java.util.List; -import java.util.Map; -import java.util.ArrayList; -import ch.loway.oss.ari4java.tools.RestException; -import ch.loway.oss.ari4java.tools.AriCallback; -import ch.loway.oss.ari4java.tools.tags.*; - -/********************************************************** - * - * Generated by: JavaInterface - *********************************************************/ - - -public interface ChannelVarset { - -// void setVariable String -/********************************************************** - * The variable that changed. - * - * @since ari_0_0_1 - *********************************************************/ - public void setVariable(String val ); - - - -// String getVariable -/********************************************************** - * The variable that changed. - * - * @since ari_0_0_1 - *********************************************************/ - public String getVariable(); - - - -// void setValue String -/********************************************************** - * The new value of the variable. - * - * @since ari_0_0_1 - *********************************************************/ - public void setValue(String val ); - - - -// Channel getChannel -/********************************************************** - * The channel on which the variable was set. - * - * If missing, the variable is a global variable. - * - * @since ari_0_0_1 - *********************************************************/ - public Channel getChannel(); - - - -// void setChannel Channel -/********************************************************** - * The channel on which the variable was set. - * - * If missing, the variable is a global variable. - * - * @since ari_0_0_1 - *********************************************************/ - public void setChannel(Channel val ); - - - -// String getValue -/********************************************************** - * The new value of the variable. - * - * @since ari_0_0_1 - *********************************************************/ - public String getValue(); - - -} -; diff --git a/classes/ch/loway/oss/ari4java/generated/ConfigInfo.java b/classes/ch/loway/oss/ari4java/generated/ConfigInfo.java deleted file mode 100644 index bf629679..00000000 --- a/classes/ch/loway/oss/ari4java/generated/ConfigInfo.java +++ /dev/null @@ -1,145 +0,0 @@ -package ch.loway.oss.ari4java.generated; - -// ---------------------------------------------------- -// THIS CLASS WAS GENERATED AUTOMATICALLY -// PLEASE DO NOT EDIT -// Generated on: Tue Dec 19 09:55:48 CET 2017 -// ---------------------------------------------------- - -import java.util.Date; -import java.util.List; -import java.util.Map; -import java.util.ArrayList; -import ch.loway.oss.ari4java.tools.RestException; -import ch.loway.oss.ari4java.tools.AriCallback; -import ch.loway.oss.ari4java.tools.tags.*; - -/********************************************************** - * - * Generated by: JavaInterface - *********************************************************/ - - -public interface ConfigInfo { - -// String getName -/********************************************************** - * Asterisk system name. - * - * @since ari_0_0_1 - *********************************************************/ - public String getName(); - - - -// double getMax_load -/********************************************************** - * Maximum load avg on system. - * - * @since ari_0_0_1 - *********************************************************/ - public double getMax_load(); - - - -// SetId getSetid -/********************************************************** - * Effective user/group id for running Asterisk. - * - * @since ari_0_0_1 - *********************************************************/ - public SetId getSetid(); - - - -// void setMax_channels int -/********************************************************** - * Maximum number of simultaneous channels. - * - * @since ari_0_0_1 - *********************************************************/ - public void setMax_channels(int val ); - - - -// int getMax_channels -/********************************************************** - * Maximum number of simultaneous channels. - * - * @since ari_0_0_1 - *********************************************************/ - public int getMax_channels(); - - - -// void setDefault_language String -/********************************************************** - * Default language for media playback. - * - * @since ari_0_0_1 - *********************************************************/ - public void setDefault_language(String val ); - - - -// void setSetid SetId -/********************************************************** - * Effective user/group id for running Asterisk. - * - * @since ari_0_0_1 - *********************************************************/ - public void setSetid(SetId val ); - - - -// String getDefault_language -/********************************************************** - * Default language for media playback. - * - * @since ari_0_0_1 - *********************************************************/ - public String getDefault_language(); - - - -// int getMax_open_files -/********************************************************** - * Maximum number of open file handles (files, sockets). - * - * @since ari_0_0_1 - *********************************************************/ - public int getMax_open_files(); - - - -// void setMax_open_files int -/********************************************************** - * Maximum number of open file handles (files, sockets). - * - * @since ari_0_0_1 - *********************************************************/ - public void setMax_open_files(int val ); - - - -// void setName String -/********************************************************** - * Asterisk system name. - * - * @since ari_0_0_1 - *********************************************************/ - public void setName(String val ); - - - -// void setMax_load double -/********************************************************** - * Maximum load avg on system. - * - * @since ari_0_0_1 - *********************************************************/ - public void setMax_load(double val ); - - -} -; diff --git a/classes/ch/loway/oss/ari4java/generated/ConfigTuple.java b/classes/ch/loway/oss/ari4java/generated/ConfigTuple.java deleted file mode 100644 index 59ea5cde..00000000 --- a/classes/ch/loway/oss/ari4java/generated/ConfigTuple.java +++ /dev/null @@ -1,65 +0,0 @@ -package ch.loway.oss.ari4java.generated; - -// ---------------------------------------------------- -// THIS CLASS WAS GENERATED AUTOMATICALLY -// PLEASE DO NOT EDIT -// Generated on: Tue Dec 19 09:55:48 CET 2017 -// ---------------------------------------------------- - -import java.util.Date; -import java.util.List; -import java.util.Map; -import java.util.ArrayList; -import ch.loway.oss.ari4java.tools.RestException; -import ch.loway.oss.ari4java.tools.AriCallback; -import ch.loway.oss.ari4java.tools.tags.*; - -/********************************************************** - * - * Generated by: JavaInterface - *********************************************************/ - - -public interface ConfigTuple { - -// void setValue String -/********************************************************** - * The value for the attribute. - * - * @since ari_1_8_0 - *********************************************************/ - public void setValue(String val ); - - - -// String getValue -/********************************************************** - * The value for the attribute. - * - * @since ari_1_8_0 - *********************************************************/ - public String getValue(); - - - -// void setAttribute String -/********************************************************** - * A configuration object attribute. - * - * @since ari_1_8_0 - *********************************************************/ - public void setAttribute(String val ); - - - -// String getAttribute -/********************************************************** - * A configuration object attribute. - * - * @since ari_1_8_0 - *********************************************************/ - public String getAttribute(); - - -} -; diff --git a/classes/ch/loway/oss/ari4java/generated/ContactInfo.java b/classes/ch/loway/oss/ari4java/generated/ContactInfo.java deleted file mode 100644 index bd8877e2..00000000 --- a/classes/ch/loway/oss/ari4java/generated/ContactInfo.java +++ /dev/null @@ -1,105 +0,0 @@ -package ch.loway.oss.ari4java.generated; - -// ---------------------------------------------------- -// THIS CLASS WAS GENERATED AUTOMATICALLY -// PLEASE DO NOT EDIT -// Generated on: Tue Dec 19 09:55:48 CET 2017 -// ---------------------------------------------------- - -import java.util.Date; -import java.util.List; -import java.util.Map; -import java.util.ArrayList; -import ch.loway.oss.ari4java.tools.RestException; -import ch.loway.oss.ari4java.tools.AriCallback; -import ch.loway.oss.ari4java.tools.tags.*; - -/********************************************************** - * - * Generated by: JavaInterface - *********************************************************/ - - -public interface ContactInfo { - -// void setRoundtrip_usec String -/********************************************************** - * Current round trip time, in microseconds, for the contact. - * - * @since ari_1_9_0 - *********************************************************/ - public void setRoundtrip_usec(String val ); - - - -// String getContact_status -/********************************************************** - * The current status of the contact. - * - * @since ari_1_9_0 - *********************************************************/ - public String getContact_status(); - - - -// String getUri -/********************************************************** - * The location of the contact. - * - * @since ari_1_9_0 - *********************************************************/ - public String getUri(); - - - -// void setContact_status String -/********************************************************** - * The current status of the contact. - * - * @since ari_1_9_0 - *********************************************************/ - public void setContact_status(String val ); - - - -// void setAor String -/********************************************************** - * The Address of Record this contact belongs to. - * - * @since ari_1_9_0 - *********************************************************/ - public void setAor(String val ); - - - -// String getAor -/********************************************************** - * The Address of Record this contact belongs to. - * - * @since ari_1_9_0 - *********************************************************/ - public String getAor(); - - - -// String getRoundtrip_usec -/********************************************************** - * Current round trip time, in microseconds, for the contact. - * - * @since ari_1_9_0 - *********************************************************/ - public String getRoundtrip_usec(); - - - -// void setUri String -/********************************************************** - * The location of the contact. - * - * @since ari_1_9_0 - *********************************************************/ - public void setUri(String val ); - - -} -; diff --git a/classes/ch/loway/oss/ari4java/generated/ContactStatusChange.java b/classes/ch/loway/oss/ari4java/generated/ContactStatusChange.java deleted file mode 100644 index d299598b..00000000 --- a/classes/ch/loway/oss/ari4java/generated/ContactStatusChange.java +++ /dev/null @@ -1,65 +0,0 @@ -package ch.loway.oss.ari4java.generated; - -// ---------------------------------------------------- -// THIS CLASS WAS GENERATED AUTOMATICALLY -// PLEASE DO NOT EDIT -// Generated on: Tue Dec 19 09:55:48 CET 2017 -// ---------------------------------------------------- - -import java.util.Date; -import java.util.List; -import java.util.Map; -import java.util.ArrayList; -import ch.loway.oss.ari4java.tools.RestException; -import ch.loway.oss.ari4java.tools.AriCallback; -import ch.loway.oss.ari4java.tools.tags.*; - -/********************************************************** - * - * Generated by: JavaInterface - *********************************************************/ - - -public interface ContactStatusChange { - -// Endpoint getEndpoint -/********************************************************** - * - * - * @since ari_1_9_0 - *********************************************************/ - public Endpoint getEndpoint(); - - - -// ContactInfo getContact_info -/********************************************************** - * - * - * @since ari_1_9_0 - *********************************************************/ - public ContactInfo getContact_info(); - - - -// void setEndpoint Endpoint -/********************************************************** - * - * - * @since ari_1_9_0 - *********************************************************/ - public void setEndpoint(Endpoint val ); - - - -// void setContact_info ContactInfo -/********************************************************** - * - * - * @since ari_1_9_0 - *********************************************************/ - public void setContact_info(ContactInfo val ); - - -} -; diff --git a/classes/ch/loway/oss/ari4java/generated/DeviceState.java b/classes/ch/loway/oss/ari4java/generated/DeviceState.java deleted file mode 100644 index a6bfee5e..00000000 --- a/classes/ch/loway/oss/ari4java/generated/DeviceState.java +++ /dev/null @@ -1,65 +0,0 @@ -package ch.loway.oss.ari4java.generated; - -// ---------------------------------------------------- -// THIS CLASS WAS GENERATED AUTOMATICALLY -// PLEASE DO NOT EDIT -// Generated on: Tue Dec 19 09:55:48 CET 2017 -// ---------------------------------------------------- - -import java.util.Date; -import java.util.List; -import java.util.Map; -import java.util.ArrayList; -import ch.loway.oss.ari4java.tools.RestException; -import ch.loway.oss.ari4java.tools.AriCallback; -import ch.loway.oss.ari4java.tools.tags.*; - -/********************************************************** - * - * Generated by: JavaInterface - *********************************************************/ - - -public interface DeviceState extends EventSource { - -// String getName -/********************************************************** - * Name of the device. - * - * @since ari_0_0_1 - *********************************************************/ - public String getName(); - - - -// String getState -/********************************************************** - * Device's state - * - * @since ari_0_0_1 - *********************************************************/ - public String getState(); - - - -// void setState String -/********************************************************** - * Device's state - * - * @since ari_0_0_1 - *********************************************************/ - public void setState(String val ); - - - -// void setName String -/********************************************************** - * Name of the device. - * - * @since ari_0_0_1 - *********************************************************/ - public void setName(String val ); - - -} -; diff --git a/classes/ch/loway/oss/ari4java/generated/DeviceStateChanged.java b/classes/ch/loway/oss/ari4java/generated/DeviceStateChanged.java deleted file mode 100644 index cb098938..00000000 --- a/classes/ch/loway/oss/ari4java/generated/DeviceStateChanged.java +++ /dev/null @@ -1,45 +0,0 @@ -package ch.loway.oss.ari4java.generated; - -// ---------------------------------------------------- -// THIS CLASS WAS GENERATED AUTOMATICALLY -// PLEASE DO NOT EDIT -// Generated on: Tue Dec 19 09:55:48 CET 2017 -// ---------------------------------------------------- - -import java.util.Date; -import java.util.List; -import java.util.Map; -import java.util.ArrayList; -import ch.loway.oss.ari4java.tools.RestException; -import ch.loway.oss.ari4java.tools.AriCallback; -import ch.loway.oss.ari4java.tools.tags.*; - -/********************************************************** - * - * Generated by: JavaInterface - *********************************************************/ - - -public interface DeviceStateChanged { - -// DeviceState getDevice_state -/********************************************************** - * Device state object - * - * @since ari_0_0_1 - *********************************************************/ - public DeviceState getDevice_state(); - - - -// void setDevice_state DeviceState -/********************************************************** - * Device state object - * - * @since ari_0_0_1 - *********************************************************/ - public void setDevice_state(DeviceState val ); - - -} -; diff --git a/classes/ch/loway/oss/ari4java/generated/Dial.java b/classes/ch/loway/oss/ari4java/generated/Dial.java deleted file mode 100644 index a80169f5..00000000 --- a/classes/ch/loway/oss/ari4java/generated/Dial.java +++ /dev/null @@ -1,145 +0,0 @@ -package ch.loway.oss.ari4java.generated; - -// ---------------------------------------------------- -// THIS CLASS WAS GENERATED AUTOMATICALLY -// PLEASE DO NOT EDIT -// Generated on: Tue Dec 19 09:55:48 CET 2017 -// ---------------------------------------------------- - -import java.util.Date; -import java.util.List; -import java.util.Map; -import java.util.ArrayList; -import ch.loway.oss.ari4java.tools.RestException; -import ch.loway.oss.ari4java.tools.AriCallback; -import ch.loway.oss.ari4java.tools.tags.*; - -/********************************************************** - * - * Generated by: JavaInterface - *********************************************************/ - - -public interface Dial { - -// Channel getCaller -/********************************************************** - * The calling channel. - * - * @since ari_1_0_0 - *********************************************************/ - public Channel getCaller(); - - - -// String getDialstring -/********************************************************** - * The dial string for calling the peer channel. - * - * @since ari_1_0_0 - *********************************************************/ - public String getDialstring(); - - - -// void setCaller Channel -/********************************************************** - * The calling channel. - * - * @since ari_1_0_0 - *********************************************************/ - public void setCaller(Channel val ); - - - -// void setDialstatus String -/********************************************************** - * Current status of the dialing attempt to the peer. - * - * @since ari_1_0_0 - *********************************************************/ - public void setDialstatus(String val ); - - - -// Channel getForwarded -/********************************************************** - * Channel that the caller has been forwarded to. - * - * @since ari_1_0_0 - *********************************************************/ - public Channel getForwarded(); - - - -// String getForward -/********************************************************** - * Forwarding target requested by the original dialed channel. - * - * @since ari_1_0_0 - *********************************************************/ - public String getForward(); - - - -// String getDialstatus -/********************************************************** - * Current status of the dialing attempt to the peer. - * - * @since ari_1_0_0 - *********************************************************/ - public String getDialstatus(); - - - -// void setPeer Channel -/********************************************************** - * The dialed channel. - * - * @since ari_1_0_0 - *********************************************************/ - public void setPeer(Channel val ); - - - -// Channel getPeer -/********************************************************** - * The dialed channel. - * - * @since ari_1_0_0 - *********************************************************/ - public Channel getPeer(); - - - -// void setForwarded Channel -/********************************************************** - * Channel that the caller has been forwarded to. - * - * @since ari_1_0_0 - *********************************************************/ - public void setForwarded(Channel val ); - - - -// void setForward String -/********************************************************** - * Forwarding target requested by the original dialed channel. - * - * @since ari_1_0_0 - *********************************************************/ - public void setForward(String val ); - - - -// void setDialstring String -/********************************************************** - * The dial string for calling the peer channel. - * - * @since ari_1_0_0 - *********************************************************/ - public void setDialstring(String val ); - - -} -; diff --git a/classes/ch/loway/oss/ari4java/generated/Dialed.java b/classes/ch/loway/oss/ari4java/generated/Dialed.java deleted file mode 100644 index c1363088..00000000 --- a/classes/ch/loway/oss/ari4java/generated/Dialed.java +++ /dev/null @@ -1,25 +0,0 @@ -package ch.loway.oss.ari4java.generated; - -// ---------------------------------------------------- -// THIS CLASS WAS GENERATED AUTOMATICALLY -// PLEASE DO NOT EDIT -// Generated on: Tue Dec 19 09:55:48 CET 2017 -// ---------------------------------------------------- - -import java.util.Date; -import java.util.List; -import java.util.Map; -import java.util.ArrayList; -import ch.loway.oss.ari4java.tools.RestException; -import ch.loway.oss.ari4java.tools.AriCallback; -import ch.loway.oss.ari4java.tools.tags.*; - -/********************************************************** - * - * Generated by: JavaInterface - *********************************************************/ - - -public interface Dialed { -} -; diff --git a/classes/ch/loway/oss/ari4java/generated/DialplanCEP.java b/classes/ch/loway/oss/ari4java/generated/DialplanCEP.java deleted file mode 100644 index 92e89e48..00000000 --- a/classes/ch/loway/oss/ari4java/generated/DialplanCEP.java +++ /dev/null @@ -1,85 +0,0 @@ -package ch.loway.oss.ari4java.generated; - -// ---------------------------------------------------- -// THIS CLASS WAS GENERATED AUTOMATICALLY -// PLEASE DO NOT EDIT -// Generated on: Tue Dec 19 09:55:48 CET 2017 -// ---------------------------------------------------- - -import java.util.Date; -import java.util.List; -import java.util.Map; -import java.util.ArrayList; -import ch.loway.oss.ari4java.tools.RestException; -import ch.loway.oss.ari4java.tools.AriCallback; -import ch.loway.oss.ari4java.tools.tags.*; - -/********************************************************** - * - * Generated by: JavaInterface - *********************************************************/ - - -public interface DialplanCEP { - -// String getContext -/********************************************************** - * Context in the dialplan - * - * @since ari_0_0_1 - *********************************************************/ - public String getContext(); - - - -// void setExten String -/********************************************************** - * Extension in the dialplan - * - * @since ari_0_0_1 - *********************************************************/ - public void setExten(String val ); - - - -// void setContext String -/********************************************************** - * Context in the dialplan - * - * @since ari_0_0_1 - *********************************************************/ - public void setContext(String val ); - - - -// void setPriority long -/********************************************************** - * Priority in the dialplan - * - * @since ari_0_0_1 - *********************************************************/ - public void setPriority(long val ); - - - -// long getPriority -/********************************************************** - * Priority in the dialplan - * - * @since ari_0_0_1 - *********************************************************/ - public long getPriority(); - - - -// String getExten -/********************************************************** - * Extension in the dialplan - * - * @since ari_0_0_1 - *********************************************************/ - public String getExten(); - - -} -; diff --git a/classes/ch/loway/oss/ari4java/generated/Endpoint.java b/classes/ch/loway/oss/ari4java/generated/Endpoint.java deleted file mode 100644 index 51921059..00000000 --- a/classes/ch/loway/oss/ari4java/generated/Endpoint.java +++ /dev/null @@ -1,105 +0,0 @@ -package ch.loway.oss.ari4java.generated; - -// ---------------------------------------------------- -// THIS CLASS WAS GENERATED AUTOMATICALLY -// PLEASE DO NOT EDIT -// Generated on: Tue Dec 19 09:55:48 CET 2017 -// ---------------------------------------------------- - -import java.util.Date; -import java.util.List; -import java.util.Map; -import java.util.ArrayList; -import ch.loway.oss.ari4java.tools.RestException; -import ch.loway.oss.ari4java.tools.AriCallback; -import ch.loway.oss.ari4java.tools.tags.*; - -/********************************************************** - * - * Generated by: JavaInterface - *********************************************************/ - - -public interface Endpoint extends EventSource { - -// String getResource -/********************************************************** - * Identifier of the endpoint, specific to the given technology. - * - * @since ari_0_0_1 - *********************************************************/ - public String getResource(); - - - -// List getChannel_ids -/********************************************************** - * Id's of channels associated with this endpoint - * - * @since ari_0_0_1 - *********************************************************/ - public List getChannel_ids(); - - - -// String getTechnology -/********************************************************** - * Technology of the endpoint - * - * @since ari_0_0_1 - *********************************************************/ - public String getTechnology(); - - - -// void setTechnology String -/********************************************************** - * Technology of the endpoint - * - * @since ari_0_0_1 - *********************************************************/ - public void setTechnology(String val ); - - - -// String getState -/********************************************************** - * Endpoint's state - * - * @since ari_0_0_1 - *********************************************************/ - public String getState(); - - - -// void setState String -/********************************************************** - * Endpoint's state - * - * @since ari_0_0_1 - *********************************************************/ - public void setState(String val ); - - - -// void setResource String -/********************************************************** - * Identifier of the endpoint, specific to the given technology. - * - * @since ari_0_0_1 - *********************************************************/ - public void setResource(String val ); - - - -// void setChannel_ids List -/********************************************************** - * Id's of channels associated with this endpoint - * - * @since ari_0_0_1 - *********************************************************/ - public void setChannel_ids(List val ); - - -} -; diff --git a/classes/ch/loway/oss/ari4java/generated/EndpointStateChange.java b/classes/ch/loway/oss/ari4java/generated/EndpointStateChange.java deleted file mode 100644 index 3dc99795..00000000 --- a/classes/ch/loway/oss/ari4java/generated/EndpointStateChange.java +++ /dev/null @@ -1,45 +0,0 @@ -package ch.loway.oss.ari4java.generated; - -// ---------------------------------------------------- -// THIS CLASS WAS GENERATED AUTOMATICALLY -// PLEASE DO NOT EDIT -// Generated on: Tue Dec 19 09:55:48 CET 2017 -// ---------------------------------------------------- - -import java.util.Date; -import java.util.List; -import java.util.Map; -import java.util.ArrayList; -import ch.loway.oss.ari4java.tools.RestException; -import ch.loway.oss.ari4java.tools.AriCallback; -import ch.loway.oss.ari4java.tools.tags.*; - -/********************************************************** - * - * Generated by: JavaInterface - *********************************************************/ - - -public interface EndpointStateChange { - -// Endpoint getEndpoint -/********************************************************** - * - * - * @since ari_0_0_1 - *********************************************************/ - public Endpoint getEndpoint(); - - - -// void setEndpoint Endpoint -/********************************************************** - * - * - * @since ari_0_0_1 - *********************************************************/ - public void setEndpoint(Endpoint val ); - - -} -; diff --git a/classes/ch/loway/oss/ari4java/generated/Event.java b/classes/ch/loway/oss/ari4java/generated/Event.java deleted file mode 100644 index 9b5ceca9..00000000 --- a/classes/ch/loway/oss/ari4java/generated/Event.java +++ /dev/null @@ -1,65 +0,0 @@ -package ch.loway.oss.ari4java.generated; - -// ---------------------------------------------------- -// THIS CLASS WAS GENERATED AUTOMATICALLY -// PLEASE DO NOT EDIT -// Generated on: Tue Dec 19 09:55:48 CET 2017 -// ---------------------------------------------------- - -import java.util.Date; -import java.util.List; -import java.util.Map; -import java.util.ArrayList; -import ch.loway.oss.ari4java.tools.RestException; -import ch.loway.oss.ari4java.tools.AriCallback; -import ch.loway.oss.ari4java.tools.tags.*; - -/********************************************************** - * - * Generated by: JavaInterface - *********************************************************/ - - -public interface Event { - -// void setTimestamp Date -/********************************************************** - * Time at which this event was created. - * - * @since ari_0_0_1 - *********************************************************/ - public void setTimestamp(Date val ); - - - -// Date getTimestamp -/********************************************************** - * Time at which this event was created. - * - * @since ari_0_0_1 - *********************************************************/ - public Date getTimestamp(); - - - -// void setApplication String -/********************************************************** - * Name of the application receiving the event. - * - * @since ari_0_0_1 - *********************************************************/ - public void setApplication(String val ); - - - -// String getApplication -/********************************************************** - * Name of the application receiving the event. - * - * @since ari_0_0_1 - *********************************************************/ - public String getApplication(); - - -} -; diff --git a/classes/ch/loway/oss/ari4java/generated/FormatLangPair.java b/classes/ch/loway/oss/ari4java/generated/FormatLangPair.java deleted file mode 100644 index 27dce2f2..00000000 --- a/classes/ch/loway/oss/ari4java/generated/FormatLangPair.java +++ /dev/null @@ -1,65 +0,0 @@ -package ch.loway.oss.ari4java.generated; - -// ---------------------------------------------------- -// THIS CLASS WAS GENERATED AUTOMATICALLY -// PLEASE DO NOT EDIT -// Generated on: Tue Dec 19 09:55:48 CET 2017 -// ---------------------------------------------------- - -import java.util.Date; -import java.util.List; -import java.util.Map; -import java.util.ArrayList; -import ch.loway.oss.ari4java.tools.RestException; -import ch.loway.oss.ari4java.tools.AriCallback; -import ch.loway.oss.ari4java.tools.tags.*; - -/********************************************************** - * - * Generated by: JavaInterface - *********************************************************/ - - -public interface FormatLangPair { - -// String getLanguage -/********************************************************** - * - * - * @since ari_0_0_1 - *********************************************************/ - public String getLanguage(); - - - -// String getFormat -/********************************************************** - * - * - * @since ari_0_0_1 - *********************************************************/ - public String getFormat(); - - - -// void setFormat String -/********************************************************** - * - * - * @since ari_0_0_1 - *********************************************************/ - public void setFormat(String val ); - - - -// void setLanguage String -/********************************************************** - * - * - * @since ari_0_0_1 - *********************************************************/ - public void setLanguage(String val ); - - -} -; diff --git a/classes/ch/loway/oss/ari4java/generated/LiveRecording.java b/classes/ch/loway/oss/ari4java/generated/LiveRecording.java deleted file mode 100644 index cec21aca..00000000 --- a/classes/ch/loway/oss/ari4java/generated/LiveRecording.java +++ /dev/null @@ -1,185 +0,0 @@ -package ch.loway.oss.ari4java.generated; - -// ---------------------------------------------------- -// THIS CLASS WAS GENERATED AUTOMATICALLY -// PLEASE DO NOT EDIT -// Generated on: Tue Dec 19 09:55:48 CET 2017 -// ---------------------------------------------------- - -import java.util.Date; -import java.util.List; -import java.util.Map; -import java.util.ArrayList; -import ch.loway.oss.ari4java.tools.RestException; -import ch.loway.oss.ari4java.tools.AriCallback; -import ch.loway.oss.ari4java.tools.tags.*; - -/********************************************************** - * - * Generated by: JavaInterface - *********************************************************/ - - -public interface LiveRecording { - -// String getTarget_uri -/********************************************************** - * URI for the channel or bridge being recorded - * - * @since ari_1_5_0 - *********************************************************/ - public String getTarget_uri(); - - - -// void setTalking_duration int -/********************************************************** - * Duration of talking, in seconds, detected in the recording. This is only available if the recording was initiated with a non-zero maxSilenceSeconds. - * - * @since ari_1_5_0 - *********************************************************/ - public void setTalking_duration(int val ); - - - -// String getName -/********************************************************** - * Base name for the recording - * - * @since ari_0_0_1 - *********************************************************/ - public String getName(); - - - -// int getDuration -/********************************************************** - * Duration in seconds of the recording - * - * @since ari_1_5_0 - *********************************************************/ - public int getDuration(); - - - -// String getFormat -/********************************************************** - * - * - * @since ari_0_0_1 - *********************************************************/ - public String getFormat(); - - - -// void setFormat String -/********************************************************** - * - * - * @since ari_0_0_1 - *********************************************************/ - public void setFormat(String val ); - - - -// String getState -/********************************************************** - * - * - * @since ari_0_0_1 - *********************************************************/ - public String getState(); - - - -// void setState String -/********************************************************** - * - * - * @since ari_0_0_1 - *********************************************************/ - public void setState(String val ); - - - -// void setTarget_uri String -/********************************************************** - * URI for the channel or bridge being recorded - * - * @since ari_1_5_0 - *********************************************************/ - public void setTarget_uri(String val ); - - - -// String getCause -/********************************************************** - * Cause for recording failure if failed - * - * @since ari_0_0_1 - *********************************************************/ - public String getCause(); - - - -// void setDuration int -/********************************************************** - * Duration in seconds of the recording - * - * @since ari_1_5_0 - *********************************************************/ - public void setDuration(int val ); - - - -// int getSilence_duration -/********************************************************** - * Duration of silence, in seconds, detected in the recording. This is only available if the recording was initiated with a non-zero maxSilenceSeconds. - * - * @since ari_1_5_0 - *********************************************************/ - public int getSilence_duration(); - - - -// int getTalking_duration -/********************************************************** - * Duration of talking, in seconds, detected in the recording. This is only available if the recording was initiated with a non-zero maxSilenceSeconds. - * - * @since ari_1_5_0 - *********************************************************/ - public int getTalking_duration(); - - - -// void setCause String -/********************************************************** - * Cause for recording failure if failed - * - * @since ari_0_0_1 - *********************************************************/ - public void setCause(String val ); - - - -// void setName String -/********************************************************** - * Base name for the recording - * - * @since ari_0_0_1 - *********************************************************/ - public void setName(String val ); - - - -// void setSilence_duration int -/********************************************************** - * Duration of silence, in seconds, detected in the recording. This is only available if the recording was initiated with a non-zero maxSilenceSeconds. - * - * @since ari_1_5_0 - *********************************************************/ - public void setSilence_duration(int val ); - - -} -; diff --git a/classes/ch/loway/oss/ari4java/generated/LogChannel.java b/classes/ch/loway/oss/ari4java/generated/LogChannel.java deleted file mode 100644 index e74a44fb..00000000 --- a/classes/ch/loway/oss/ari4java/generated/LogChannel.java +++ /dev/null @@ -1,105 +0,0 @@ -package ch.loway.oss.ari4java.generated; - -// ---------------------------------------------------- -// THIS CLASS WAS GENERATED AUTOMATICALLY -// PLEASE DO NOT EDIT -// Generated on: Tue Dec 19 09:55:48 CET 2017 -// ---------------------------------------------------- - -import java.util.Date; -import java.util.List; -import java.util.Map; -import java.util.ArrayList; -import ch.loway.oss.ari4java.tools.RestException; -import ch.loway.oss.ari4java.tools.AriCallback; -import ch.loway.oss.ari4java.tools.tags.*; - -/********************************************************** - * - * Generated by: JavaInterface - *********************************************************/ - - -public interface LogChannel { - -// String getChannel -/********************************************************** - * The log channel path - * - * @since ari_1_9_0 - *********************************************************/ - public String getChannel(); - - - -// String getType -/********************************************************** - * Types of logs for the log channel - * - * @since ari_1_9_0 - *********************************************************/ - public String getType(); - - - -// void setChannel String -/********************************************************** - * The log channel path - * - * @since ari_1_9_0 - *********************************************************/ - public void setChannel(String val ); - - - -// void setConfiguration String -/********************************************************** - * The various log levels - * - * @since ari_1_9_0 - *********************************************************/ - public void setConfiguration(String val ); - - - -// void setType String -/********************************************************** - * Types of logs for the log channel - * - * @since ari_1_9_0 - *********************************************************/ - public void setType(String val ); - - - -// String getStatus -/********************************************************** - * Whether or not a log type is enabled - * - * @since ari_1_9_0 - *********************************************************/ - public String getStatus(); - - - -// String getConfiguration -/********************************************************** - * The various log levels - * - * @since ari_1_9_0 - *********************************************************/ - public String getConfiguration(); - - - -// void setStatus String -/********************************************************** - * Whether or not a log type is enabled - * - * @since ari_1_9_0 - *********************************************************/ - public void setStatus(String val ); - - -} -; diff --git a/classes/ch/loway/oss/ari4java/generated/Message.java b/classes/ch/loway/oss/ari4java/generated/Message.java deleted file mode 100644 index b88c30ec..00000000 --- a/classes/ch/loway/oss/ari4java/generated/Message.java +++ /dev/null @@ -1,65 +0,0 @@ -package ch.loway.oss.ari4java.generated; - -// ---------------------------------------------------- -// THIS CLASS WAS GENERATED AUTOMATICALLY -// PLEASE DO NOT EDIT -// Generated on: Tue Dec 19 09:55:48 CET 2017 -// ---------------------------------------------------- - -import java.util.Date; -import java.util.List; -import java.util.Map; -import java.util.ArrayList; -import ch.loway.oss.ari4java.tools.RestException; -import ch.loway.oss.ari4java.tools.AriCallback; -import ch.loway.oss.ari4java.tools.tags.*; - -/********************************************************** - * - * Generated by: JavaInterface - *********************************************************/ - - -public interface Message { - -// void setAsterisk_id String -/********************************************************** - * The unique ID for the Asterisk instance that raised this event. - * - * @since ari_2_0_0 - *********************************************************/ - public void setAsterisk_id(String val ); - - - -// String getType -/********************************************************** - * Indicates the type of this message. - * - * @since ari_0_0_1 - *********************************************************/ - public String getType(); - - - -// String getAsterisk_id -/********************************************************** - * The unique ID for the Asterisk instance that raised this event. - * - * @since ari_2_0_0 - *********************************************************/ - public String getAsterisk_id(); - - - -// void setType String -/********************************************************** - * Indicates the type of this message. - * - * @since ari_0_0_1 - *********************************************************/ - public void setType(String val ); - - -} -; diff --git a/classes/ch/loway/oss/ari4java/generated/MissingParams.java b/classes/ch/loway/oss/ari4java/generated/MissingParams.java deleted file mode 100644 index 97398941..00000000 --- a/classes/ch/loway/oss/ari4java/generated/MissingParams.java +++ /dev/null @@ -1,45 +0,0 @@ -package ch.loway.oss.ari4java.generated; - -// ---------------------------------------------------- -// THIS CLASS WAS GENERATED AUTOMATICALLY -// PLEASE DO NOT EDIT -// Generated on: Tue Dec 19 09:55:48 CET 2017 -// ---------------------------------------------------- - -import java.util.Date; -import java.util.List; -import java.util.Map; -import java.util.ArrayList; -import ch.loway.oss.ari4java.tools.RestException; -import ch.loway.oss.ari4java.tools.AriCallback; -import ch.loway.oss.ari4java.tools.tags.*; - -/********************************************************** - * - * Generated by: JavaInterface - *********************************************************/ - - -public interface MissingParams { - -// List getParams -/********************************************************** - * A list of the missing parameters - * - * @since ari_0_0_1 - *********************************************************/ - public List getParams(); - - - -// void setParams List -/********************************************************** - * A list of the missing parameters - * - * @since ari_0_0_1 - *********************************************************/ - public void setParams(List val ); - - -} -; diff --git a/classes/ch/loway/oss/ari4java/generated/Module.java b/classes/ch/loway/oss/ari4java/generated/Module.java deleted file mode 100644 index 0911cf94..00000000 --- a/classes/ch/loway/oss/ari4java/generated/Module.java +++ /dev/null @@ -1,125 +0,0 @@ -package ch.loway.oss.ari4java.generated; - -// ---------------------------------------------------- -// THIS CLASS WAS GENERATED AUTOMATICALLY -// PLEASE DO NOT EDIT -// Generated on: Tue Dec 19 09:55:48 CET 2017 -// ---------------------------------------------------- - -import java.util.Date; -import java.util.List; -import java.util.Map; -import java.util.ArrayList; -import ch.loway.oss.ari4java.tools.RestException; -import ch.loway.oss.ari4java.tools.AriCallback; -import ch.loway.oss.ari4java.tools.tags.*; - -/********************************************************** - * - * Generated by: JavaInterface - *********************************************************/ - - -public interface Module { - -// void setDescription String -/********************************************************** - * The description of this module - * - * @since ari_1_8_0 - *********************************************************/ - public void setDescription(String val ); - - - -// String getName -/********************************************************** - * The name of this module - * - * @since ari_1_8_0 - *********************************************************/ - public String getName(); - - - -// int getUse_count -/********************************************************** - * The number of times this module is being used - * - * @since ari_1_8_0 - *********************************************************/ - public int getUse_count(); - - - -// void setUse_count int -/********************************************************** - * The number of times this module is being used - * - * @since ari_1_8_0 - *********************************************************/ - public void setUse_count(int val ); - - - -// void setSupport_level String -/********************************************************** - * The support state of this module - * - * @since ari_1_8_0 - *********************************************************/ - public void setSupport_level(String val ); - - - -// String getSupport_level -/********************************************************** - * The support state of this module - * - * @since ari_1_8_0 - *********************************************************/ - public String getSupport_level(); - - - -// String getDescription -/********************************************************** - * The description of this module - * - * @since ari_1_8_0 - *********************************************************/ - public String getDescription(); - - - -// String getStatus -/********************************************************** - * The running status of this module - * - * @since ari_1_8_0 - *********************************************************/ - public String getStatus(); - - - -// void setName String -/********************************************************** - * The name of this module - * - * @since ari_1_8_0 - *********************************************************/ - public void setName(String val ); - - - -// void setStatus String -/********************************************************** - * The running status of this module - * - * @since ari_1_8_0 - *********************************************************/ - public void setStatus(String val ); - - -} -; diff --git a/classes/ch/loway/oss/ari4java/generated/Peer.java b/classes/ch/loway/oss/ari4java/generated/Peer.java deleted file mode 100644 index 69eda194..00000000 --- a/classes/ch/loway/oss/ari4java/generated/Peer.java +++ /dev/null @@ -1,125 +0,0 @@ -package ch.loway.oss.ari4java.generated; - -// ---------------------------------------------------- -// THIS CLASS WAS GENERATED AUTOMATICALLY -// PLEASE DO NOT EDIT -// Generated on: Tue Dec 19 09:55:48 CET 2017 -// ---------------------------------------------------- - -import java.util.Date; -import java.util.List; -import java.util.Map; -import java.util.ArrayList; -import ch.loway.oss.ari4java.tools.RestException; -import ch.loway.oss.ari4java.tools.AriCallback; -import ch.loway.oss.ari4java.tools.tags.*; - -/********************************************************** - * - * Generated by: JavaInterface - *********************************************************/ - - -public interface Peer { - -// String getCause -/********************************************************** - * An optional reason associated with the change in peer_status. - * - * @since ari_1_9_0 - *********************************************************/ - public String getCause(); - - - -// String getPeer_status -/********************************************************** - * The current state of the peer. Note that the values of the status are dependent on the underlying peer technology. - * - * @since ari_1_9_0 - *********************************************************/ - public String getPeer_status(); - - - -// String getTime -/********************************************************** - * The last known time the peer was contacted. - * - * @since ari_1_9_0 - *********************************************************/ - public String getTime(); - - - -// String getAddress -/********************************************************** - * The IP address of the peer. - * - * @since ari_1_9_0 - *********************************************************/ - public String getAddress(); - - - -// void setAddress String -/********************************************************** - * The IP address of the peer. - * - * @since ari_1_9_0 - *********************************************************/ - public void setAddress(String val ); - - - -// String getPort -/********************************************************** - * The port of the peer. - * - * @since ari_1_9_0 - *********************************************************/ - public String getPort(); - - - -// void setPeer_status String -/********************************************************** - * The current state of the peer. Note that the values of the status are dependent on the underlying peer technology. - * - * @since ari_1_9_0 - *********************************************************/ - public void setPeer_status(String val ); - - - -// void setPort String -/********************************************************** - * The port of the peer. - * - * @since ari_1_9_0 - *********************************************************/ - public void setPort(String val ); - - - -// void setTime String -/********************************************************** - * The last known time the peer was contacted. - * - * @since ari_1_9_0 - *********************************************************/ - public void setTime(String val ); - - - -// void setCause String -/********************************************************** - * An optional reason associated with the change in peer_status. - * - * @since ari_1_9_0 - *********************************************************/ - public void setCause(String val ); - - -} -; diff --git a/classes/ch/loway/oss/ari4java/generated/PeerStatusChange.java b/classes/ch/loway/oss/ari4java/generated/PeerStatusChange.java deleted file mode 100644 index 421286e1..00000000 --- a/classes/ch/loway/oss/ari4java/generated/PeerStatusChange.java +++ /dev/null @@ -1,65 +0,0 @@ -package ch.loway.oss.ari4java.generated; - -// ---------------------------------------------------- -// THIS CLASS WAS GENERATED AUTOMATICALLY -// PLEASE DO NOT EDIT -// Generated on: Tue Dec 19 09:55:48 CET 2017 -// ---------------------------------------------------- - -import java.util.Date; -import java.util.List; -import java.util.Map; -import java.util.ArrayList; -import ch.loway.oss.ari4java.tools.RestException; -import ch.loway.oss.ari4java.tools.AriCallback; -import ch.loway.oss.ari4java.tools.tags.*; - -/********************************************************** - * - * Generated by: JavaInterface - *********************************************************/ - - -public interface PeerStatusChange { - -// Peer getPeer -/********************************************************** - * - * - * @since ari_1_9_0 - *********************************************************/ - public Peer getPeer(); - - - -// Endpoint getEndpoint -/********************************************************** - * - * - * @since ari_1_9_0 - *********************************************************/ - public Endpoint getEndpoint(); - - - -// void setPeer Peer -/********************************************************** - * - * - * @since ari_1_9_0 - *********************************************************/ - public void setPeer(Peer val ); - - - -// void setEndpoint Endpoint -/********************************************************** - * - * - * @since ari_1_9_0 - *********************************************************/ - public void setEndpoint(Endpoint val ); - - -} -; diff --git a/classes/ch/loway/oss/ari4java/generated/Playback.java b/classes/ch/loway/oss/ari4java/generated/Playback.java deleted file mode 100644 index 8eab463d..00000000 --- a/classes/ch/loway/oss/ari4java/generated/Playback.java +++ /dev/null @@ -1,145 +0,0 @@ -package ch.loway.oss.ari4java.generated; - -// ---------------------------------------------------- -// THIS CLASS WAS GENERATED AUTOMATICALLY -// PLEASE DO NOT EDIT -// Generated on: Tue Dec 19 09:55:48 CET 2017 -// ---------------------------------------------------- - -import java.util.Date; -import java.util.List; -import java.util.Map; -import java.util.ArrayList; -import ch.loway.oss.ari4java.tools.RestException; -import ch.loway.oss.ari4java.tools.AriCallback; -import ch.loway.oss.ari4java.tools.tags.*; - -/********************************************************** - * - * Generated by: JavaInterface - *********************************************************/ - - -public interface Playback { - -// String getTarget_uri -/********************************************************** - * URI for the channel or bridge to play the media on - * - * @since ari_0_0_1 - *********************************************************/ - public String getTarget_uri(); - - - -// String getLanguage -/********************************************************** - * For media types that support multiple languages, the language requested for playback. - * - * @since ari_0_0_1 - *********************************************************/ - public String getLanguage(); - - - -// void setMedia_uri String -/********************************************************** - * URI for the media to play back. - * - * @since ari_0_0_1 - *********************************************************/ - public void setMedia_uri(String val ); - - - -// String getNext_media_uri -/********************************************************** - * If a list of URIs is being played, the next media URI to be played back. - * - * @since ari_1_10_0 - *********************************************************/ - public String getNext_media_uri(); - - - -// String getMedia_uri -/********************************************************** - * URI for the media to play back. - * - * @since ari_0_0_1 - *********************************************************/ - public String getMedia_uri(); - - - -// void setId String -/********************************************************** - * ID for this playback operation - * - * @since ari_0_0_1 - *********************************************************/ - public void setId(String val ); - - - -// String getId -/********************************************************** - * ID for this playback operation - * - * @since ari_0_0_1 - *********************************************************/ - public String getId(); - - - -// String getState -/********************************************************** - * Current state of the playback operation. - * - * @since ari_0_0_1 - *********************************************************/ - public String getState(); - - - -// void setState String -/********************************************************** - * Current state of the playback operation. - * - * @since ari_0_0_1 - *********************************************************/ - public void setState(String val ); - - - -// void setTarget_uri String -/********************************************************** - * URI for the channel or bridge to play the media on - * - * @since ari_0_0_1 - *********************************************************/ - public void setTarget_uri(String val ); - - - -// void setNext_media_uri String -/********************************************************** - * If a list of URIs is being played, the next media URI to be played back. - * - * @since ari_1_10_0 - *********************************************************/ - public void setNext_media_uri(String val ); - - - -// void setLanguage String -/********************************************************** - * For media types that support multiple languages, the language requested for playback. - * - * @since ari_0_0_1 - *********************************************************/ - public void setLanguage(String val ); - - -} -; diff --git a/classes/ch/loway/oss/ari4java/generated/PlaybackContinuing.java b/classes/ch/loway/oss/ari4java/generated/PlaybackContinuing.java deleted file mode 100644 index e81821e7..00000000 --- a/classes/ch/loway/oss/ari4java/generated/PlaybackContinuing.java +++ /dev/null @@ -1,45 +0,0 @@ -package ch.loway.oss.ari4java.generated; - -// ---------------------------------------------------- -// THIS CLASS WAS GENERATED AUTOMATICALLY -// PLEASE DO NOT EDIT -// Generated on: Tue Dec 19 09:55:48 CET 2017 -// ---------------------------------------------------- - -import java.util.Date; -import java.util.List; -import java.util.Map; -import java.util.ArrayList; -import ch.loway.oss.ari4java.tools.RestException; -import ch.loway.oss.ari4java.tools.AriCallback; -import ch.loway.oss.ari4java.tools.tags.*; - -/********************************************************** - * - * Generated by: JavaInterface - *********************************************************/ - - -public interface PlaybackContinuing { - -// Playback getPlayback -/********************************************************** - * Playback control object - * - * @since ari_1_10_0 - *********************************************************/ - public Playback getPlayback(); - - - -// void setPlayback Playback -/********************************************************** - * Playback control object - * - * @since ari_1_10_0 - *********************************************************/ - public void setPlayback(Playback val ); - - -} -; diff --git a/classes/ch/loway/oss/ari4java/generated/PlaybackFinished.java b/classes/ch/loway/oss/ari4java/generated/PlaybackFinished.java deleted file mode 100644 index 732a0206..00000000 --- a/classes/ch/loway/oss/ari4java/generated/PlaybackFinished.java +++ /dev/null @@ -1,45 +0,0 @@ -package ch.loway.oss.ari4java.generated; - -// ---------------------------------------------------- -// THIS CLASS WAS GENERATED AUTOMATICALLY -// PLEASE DO NOT EDIT -// Generated on: Tue Dec 19 09:55:48 CET 2017 -// ---------------------------------------------------- - -import java.util.Date; -import java.util.List; -import java.util.Map; -import java.util.ArrayList; -import ch.loway.oss.ari4java.tools.RestException; -import ch.loway.oss.ari4java.tools.AriCallback; -import ch.loway.oss.ari4java.tools.tags.*; - -/********************************************************** - * - * Generated by: JavaInterface - *********************************************************/ - - -public interface PlaybackFinished { - -// Playback getPlayback -/********************************************************** - * Playback control object - * - * @since ari_0_0_1 - *********************************************************/ - public Playback getPlayback(); - - - -// void setPlayback Playback -/********************************************************** - * Playback control object - * - * @since ari_0_0_1 - *********************************************************/ - public void setPlayback(Playback val ); - - -} -; diff --git a/classes/ch/loway/oss/ari4java/generated/PlaybackStarted.java b/classes/ch/loway/oss/ari4java/generated/PlaybackStarted.java deleted file mode 100644 index c0ad04cc..00000000 --- a/classes/ch/loway/oss/ari4java/generated/PlaybackStarted.java +++ /dev/null @@ -1,45 +0,0 @@ -package ch.loway.oss.ari4java.generated; - -// ---------------------------------------------------- -// THIS CLASS WAS GENERATED AUTOMATICALLY -// PLEASE DO NOT EDIT -// Generated on: Tue Dec 19 09:55:48 CET 2017 -// ---------------------------------------------------- - -import java.util.Date; -import java.util.List; -import java.util.Map; -import java.util.ArrayList; -import ch.loway.oss.ari4java.tools.RestException; -import ch.loway.oss.ari4java.tools.AriCallback; -import ch.loway.oss.ari4java.tools.tags.*; - -/********************************************************** - * - * Generated by: JavaInterface - *********************************************************/ - - -public interface PlaybackStarted { - -// Playback getPlayback -/********************************************************** - * Playback control object - * - * @since ari_0_0_1 - *********************************************************/ - public Playback getPlayback(); - - - -// void setPlayback Playback -/********************************************************** - * Playback control object - * - * @since ari_0_0_1 - *********************************************************/ - public void setPlayback(Playback val ); - - -} -; diff --git a/classes/ch/loway/oss/ari4java/generated/RecordingFailed.java b/classes/ch/loway/oss/ari4java/generated/RecordingFailed.java deleted file mode 100644 index 549482b8..00000000 --- a/classes/ch/loway/oss/ari4java/generated/RecordingFailed.java +++ /dev/null @@ -1,45 +0,0 @@ -package ch.loway.oss.ari4java.generated; - -// ---------------------------------------------------- -// THIS CLASS WAS GENERATED AUTOMATICALLY -// PLEASE DO NOT EDIT -// Generated on: Tue Dec 19 09:55:48 CET 2017 -// ---------------------------------------------------- - -import java.util.Date; -import java.util.List; -import java.util.Map; -import java.util.ArrayList; -import ch.loway.oss.ari4java.tools.RestException; -import ch.loway.oss.ari4java.tools.AriCallback; -import ch.loway.oss.ari4java.tools.tags.*; - -/********************************************************** - * - * Generated by: JavaInterface - *********************************************************/ - - -public interface RecordingFailed { - -// LiveRecording getRecording -/********************************************************** - * Recording control object - * - * @since ari_0_0_1 - *********************************************************/ - public LiveRecording getRecording(); - - - -// void setRecording LiveRecording -/********************************************************** - * Recording control object - * - * @since ari_0_0_1 - *********************************************************/ - public void setRecording(LiveRecording val ); - - -} -; diff --git a/classes/ch/loway/oss/ari4java/generated/RecordingFinished.java b/classes/ch/loway/oss/ari4java/generated/RecordingFinished.java deleted file mode 100644 index e6e85061..00000000 --- a/classes/ch/loway/oss/ari4java/generated/RecordingFinished.java +++ /dev/null @@ -1,45 +0,0 @@ -package ch.loway.oss.ari4java.generated; - -// ---------------------------------------------------- -// THIS CLASS WAS GENERATED AUTOMATICALLY -// PLEASE DO NOT EDIT -// Generated on: Tue Dec 19 09:55:48 CET 2017 -// ---------------------------------------------------- - -import java.util.Date; -import java.util.List; -import java.util.Map; -import java.util.ArrayList; -import ch.loway.oss.ari4java.tools.RestException; -import ch.loway.oss.ari4java.tools.AriCallback; -import ch.loway.oss.ari4java.tools.tags.*; - -/********************************************************** - * - * Generated by: JavaInterface - *********************************************************/ - - -public interface RecordingFinished { - -// LiveRecording getRecording -/********************************************************** - * Recording control object - * - * @since ari_0_0_1 - *********************************************************/ - public LiveRecording getRecording(); - - - -// void setRecording LiveRecording -/********************************************************** - * Recording control object - * - * @since ari_0_0_1 - *********************************************************/ - public void setRecording(LiveRecording val ); - - -} -; diff --git a/classes/ch/loway/oss/ari4java/generated/RecordingStarted.java b/classes/ch/loway/oss/ari4java/generated/RecordingStarted.java deleted file mode 100644 index 409b6123..00000000 --- a/classes/ch/loway/oss/ari4java/generated/RecordingStarted.java +++ /dev/null @@ -1,45 +0,0 @@ -package ch.loway.oss.ari4java.generated; - -// ---------------------------------------------------- -// THIS CLASS WAS GENERATED AUTOMATICALLY -// PLEASE DO NOT EDIT -// Generated on: Tue Dec 19 09:55:48 CET 2017 -// ---------------------------------------------------- - -import java.util.Date; -import java.util.List; -import java.util.Map; -import java.util.ArrayList; -import ch.loway.oss.ari4java.tools.RestException; -import ch.loway.oss.ari4java.tools.AriCallback; -import ch.loway.oss.ari4java.tools.tags.*; - -/********************************************************** - * - * Generated by: JavaInterface - *********************************************************/ - - -public interface RecordingStarted { - -// LiveRecording getRecording -/********************************************************** - * Recording control object - * - * @since ari_0_0_1 - *********************************************************/ - public LiveRecording getRecording(); - - - -// void setRecording LiveRecording -/********************************************************** - * Recording control object - * - * @since ari_0_0_1 - *********************************************************/ - public void setRecording(LiveRecording val ); - - -} -; diff --git a/classes/ch/loway/oss/ari4java/generated/SetId.java b/classes/ch/loway/oss/ari4java/generated/SetId.java deleted file mode 100644 index b8c7160b..00000000 --- a/classes/ch/loway/oss/ari4java/generated/SetId.java +++ /dev/null @@ -1,65 +0,0 @@ -package ch.loway.oss.ari4java.generated; - -// ---------------------------------------------------- -// THIS CLASS WAS GENERATED AUTOMATICALLY -// PLEASE DO NOT EDIT -// Generated on: Tue Dec 19 09:55:48 CET 2017 -// ---------------------------------------------------- - -import java.util.Date; -import java.util.List; -import java.util.Map; -import java.util.ArrayList; -import ch.loway.oss.ari4java.tools.RestException; -import ch.loway.oss.ari4java.tools.AriCallback; -import ch.loway.oss.ari4java.tools.tags.*; - -/********************************************************** - * - * Generated by: JavaInterface - *********************************************************/ - - -public interface SetId { - -// String getUser -/********************************************************** - * Effective user id. - * - * @since ari_0_0_1 - *********************************************************/ - public String getUser(); - - - -// void setUser String -/********************************************************** - * Effective user id. - * - * @since ari_0_0_1 - *********************************************************/ - public void setUser(String val ); - - - -// String getGroup -/********************************************************** - * Effective group id. - * - * @since ari_0_0_1 - *********************************************************/ - public String getGroup(); - - - -// void setGroup String -/********************************************************** - * Effective group id. - * - * @since ari_0_0_1 - *********************************************************/ - public void setGroup(String val ); - - -} -; diff --git a/classes/ch/loway/oss/ari4java/generated/Sound.java b/classes/ch/loway/oss/ari4java/generated/Sound.java deleted file mode 100644 index 252e7f04..00000000 --- a/classes/ch/loway/oss/ari4java/generated/Sound.java +++ /dev/null @@ -1,85 +0,0 @@ -package ch.loway.oss.ari4java.generated; - -// ---------------------------------------------------- -// THIS CLASS WAS GENERATED AUTOMATICALLY -// PLEASE DO NOT EDIT -// Generated on: Tue Dec 19 09:55:48 CET 2017 -// ---------------------------------------------------- - -import java.util.Date; -import java.util.List; -import java.util.Map; -import java.util.ArrayList; -import ch.loway.oss.ari4java.tools.RestException; -import ch.loway.oss.ari4java.tools.AriCallback; -import ch.loway.oss.ari4java.tools.tags.*; - -/********************************************************** - * - * Generated by: JavaInterface - *********************************************************/ - - -public interface Sound { - -// List getFormats -/********************************************************** - * The formats and languages in which this sound is available. - * - * @since ari_0_0_1 - *********************************************************/ - public List getFormats(); - - - -// String getText -/********************************************************** - * Text description of the sound, usually the words spoken. - * - * @since ari_0_0_1 - *********************************************************/ - public String getText(); - - - -// void setFormats List -/********************************************************** - * The formats and languages in which this sound is available. - * - * @since ari_0_0_1 - *********************************************************/ - public void setFormats(List val ); - - - -// void setId String -/********************************************************** - * Sound's identifier. - * - * @since ari_0_0_1 - *********************************************************/ - public void setId(String val ); - - - -// String getId -/********************************************************** - * Sound's identifier. - * - * @since ari_0_0_1 - *********************************************************/ - public String getId(); - - - -// void setText String -/********************************************************** - * Text description of the sound, usually the words spoken. - * - * @since ari_0_0_1 - *********************************************************/ - public void setText(String val ); - - -} -; diff --git a/classes/ch/loway/oss/ari4java/generated/StasisEnd.java b/classes/ch/loway/oss/ari4java/generated/StasisEnd.java deleted file mode 100644 index fb53dc2e..00000000 --- a/classes/ch/loway/oss/ari4java/generated/StasisEnd.java +++ /dev/null @@ -1,45 +0,0 @@ -package ch.loway.oss.ari4java.generated; - -// ---------------------------------------------------- -// THIS CLASS WAS GENERATED AUTOMATICALLY -// PLEASE DO NOT EDIT -// Generated on: Tue Dec 19 09:55:48 CET 2017 -// ---------------------------------------------------- - -import java.util.Date; -import java.util.List; -import java.util.Map; -import java.util.ArrayList; -import ch.loway.oss.ari4java.tools.RestException; -import ch.loway.oss.ari4java.tools.AriCallback; -import ch.loway.oss.ari4java.tools.tags.*; - -/********************************************************** - * - * Generated by: JavaInterface - *********************************************************/ - - -public interface StasisEnd { - -// Channel getChannel -/********************************************************** - * - * - * @since ari_0_0_1 - *********************************************************/ - public Channel getChannel(); - - - -// void setChannel Channel -/********************************************************** - * - * - * @since ari_0_0_1 - *********************************************************/ - public void setChannel(Channel val ); - - -} -; diff --git a/classes/ch/loway/oss/ari4java/generated/StasisStart.java b/classes/ch/loway/oss/ari4java/generated/StasisStart.java deleted file mode 100644 index ae01aeeb..00000000 --- a/classes/ch/loway/oss/ari4java/generated/StasisStart.java +++ /dev/null @@ -1,85 +0,0 @@ -package ch.loway.oss.ari4java.generated; - -// ---------------------------------------------------- -// THIS CLASS WAS GENERATED AUTOMATICALLY -// PLEASE DO NOT EDIT -// Generated on: Tue Dec 19 09:55:48 CET 2017 -// ---------------------------------------------------- - -import java.util.Date; -import java.util.List; -import java.util.Map; -import java.util.ArrayList; -import ch.loway.oss.ari4java.tools.RestException; -import ch.loway.oss.ari4java.tools.AriCallback; -import ch.loway.oss.ari4java.tools.tags.*; - -/********************************************************** - * - * Generated by: JavaInterface - *********************************************************/ - - -public interface StasisStart { - -// Channel getReplace_channel -/********************************************************** - * - * - * @since ari_1_5_0 - *********************************************************/ - public Channel getReplace_channel(); - - - -// Channel getChannel -/********************************************************** - * - * - * @since ari_0_0_1 - *********************************************************/ - public Channel getChannel(); - - - -// void setArgs List -/********************************************************** - * Arguments to the application - * - * @since ari_0_0_1 - *********************************************************/ - public void setArgs(List val ); - - - -// void setChannel Channel -/********************************************************** - * - * - * @since ari_0_0_1 - *********************************************************/ - public void setChannel(Channel val ); - - - -// List getArgs -/********************************************************** - * Arguments to the application - * - * @since ari_0_0_1 - *********************************************************/ - public List getArgs(); - - - -// void setReplace_channel Channel -/********************************************************** - * - * - * @since ari_1_5_0 - *********************************************************/ - public void setReplace_channel(Channel val ); - - -} -; diff --git a/classes/ch/loway/oss/ari4java/generated/StatusInfo.java b/classes/ch/loway/oss/ari4java/generated/StatusInfo.java deleted file mode 100644 index d77dd86b..00000000 --- a/classes/ch/loway/oss/ari4java/generated/StatusInfo.java +++ /dev/null @@ -1,65 +0,0 @@ -package ch.loway.oss.ari4java.generated; - -// ---------------------------------------------------- -// THIS CLASS WAS GENERATED AUTOMATICALLY -// PLEASE DO NOT EDIT -// Generated on: Tue Dec 19 09:55:48 CET 2017 -// ---------------------------------------------------- - -import java.util.Date; -import java.util.List; -import java.util.Map; -import java.util.ArrayList; -import ch.loway.oss.ari4java.tools.RestException; -import ch.loway.oss.ari4java.tools.AriCallback; -import ch.loway.oss.ari4java.tools.tags.*; - -/********************************************************** - * - * Generated by: JavaInterface - *********************************************************/ - - -public interface StatusInfo { - -// void setStartup_time Date -/********************************************************** - * Time when Asterisk was started. - * - * @since ari_0_0_1 - *********************************************************/ - public void setStartup_time(Date val ); - - - -// Date getStartup_time -/********************************************************** - * Time when Asterisk was started. - * - * @since ari_0_0_1 - *********************************************************/ - public Date getStartup_time(); - - - -// Date getLast_reload_time -/********************************************************** - * Time when Asterisk was last reloaded. - * - * @since ari_0_0_1 - *********************************************************/ - public Date getLast_reload_time(); - - - -// void setLast_reload_time Date -/********************************************************** - * Time when Asterisk was last reloaded. - * - * @since ari_0_0_1 - *********************************************************/ - public void setLast_reload_time(Date val ); - - -} -; diff --git a/classes/ch/loway/oss/ari4java/generated/StoredRecording.java b/classes/ch/loway/oss/ari4java/generated/StoredRecording.java deleted file mode 100644 index f62bf333..00000000 --- a/classes/ch/loway/oss/ari4java/generated/StoredRecording.java +++ /dev/null @@ -1,65 +0,0 @@ -package ch.loway.oss.ari4java.generated; - -// ---------------------------------------------------- -// THIS CLASS WAS GENERATED AUTOMATICALLY -// PLEASE DO NOT EDIT -// Generated on: Tue Dec 19 09:55:48 CET 2017 -// ---------------------------------------------------- - -import java.util.Date; -import java.util.List; -import java.util.Map; -import java.util.ArrayList; -import ch.loway.oss.ari4java.tools.RestException; -import ch.loway.oss.ari4java.tools.AriCallback; -import ch.loway.oss.ari4java.tools.tags.*; - -/********************************************************** - * - * Generated by: JavaInterface - *********************************************************/ - - -public interface StoredRecording { - -// String getName -/********************************************************** - * - * - * @since ari_0_0_1 - *********************************************************/ - public String getName(); - - - -// String getFormat -/********************************************************** - * - * - * @since ari_0_0_1 - *********************************************************/ - public String getFormat(); - - - -// void setFormat String -/********************************************************** - * - * - * @since ari_0_0_1 - *********************************************************/ - public void setFormat(String val ); - - - -// void setName String -/********************************************************** - * - * - * @since ari_0_0_1 - *********************************************************/ - public void setName(String val ); - - -} -; diff --git a/classes/ch/loway/oss/ari4java/generated/SystemInfo.java b/classes/ch/loway/oss/ari4java/generated/SystemInfo.java deleted file mode 100644 index e323d047..00000000 --- a/classes/ch/loway/oss/ari4java/generated/SystemInfo.java +++ /dev/null @@ -1,65 +0,0 @@ -package ch.loway.oss.ari4java.generated; - -// ---------------------------------------------------- -// THIS CLASS WAS GENERATED AUTOMATICALLY -// PLEASE DO NOT EDIT -// Generated on: Tue Dec 19 09:55:48 CET 2017 -// ---------------------------------------------------- - -import java.util.Date; -import java.util.List; -import java.util.Map; -import java.util.ArrayList; -import ch.loway.oss.ari4java.tools.RestException; -import ch.loway.oss.ari4java.tools.AriCallback; -import ch.loway.oss.ari4java.tools.tags.*; - -/********************************************************** - * - * Generated by: JavaInterface - *********************************************************/ - - -public interface SystemInfo { - -// void setEntity_id String -/********************************************************** - * - * - * @since ari_0_0_1 - *********************************************************/ - public void setEntity_id(String val ); - - - -// String getVersion -/********************************************************** - * Asterisk version. - * - * @since ari_0_0_1 - *********************************************************/ - public String getVersion(); - - - -// void setVersion String -/********************************************************** - * Asterisk version. - * - * @since ari_0_0_1 - *********************************************************/ - public void setVersion(String val ); - - - -// String getEntity_id -/********************************************************** - * - * - * @since ari_0_0_1 - *********************************************************/ - public String getEntity_id(); - - -} -; diff --git a/classes/ch/loway/oss/ari4java/generated/TextMessage.java b/classes/ch/loway/oss/ari4java/generated/TextMessage.java deleted file mode 100644 index 59057156..00000000 --- a/classes/ch/loway/oss/ari4java/generated/TextMessage.java +++ /dev/null @@ -1,105 +0,0 @@ -package ch.loway.oss.ari4java.generated; - -// ---------------------------------------------------- -// THIS CLASS WAS GENERATED AUTOMATICALLY -// PLEASE DO NOT EDIT -// Generated on: Tue Dec 19 09:55:48 CET 2017 -// ---------------------------------------------------- - -import java.util.Date; -import java.util.List; -import java.util.Map; -import java.util.ArrayList; -import ch.loway.oss.ari4java.tools.RestException; -import ch.loway.oss.ari4java.tools.AriCallback; -import ch.loway.oss.ari4java.tools.tags.*; - -/********************************************************** - * - * Generated by: JavaInterface - *********************************************************/ - - -public interface TextMessage { - -// List getVariables -/********************************************************** - * Technology specific key/value pairs associated with the message. - * - * @since ari_1_5_0 - *********************************************************/ - public List getVariables(); - - - -// void setBody String -/********************************************************** - * The text of the message. - * - * @since ari_1_5_0 - *********************************************************/ - public void setBody(String val ); - - - -// String getBody -/********************************************************** - * The text of the message. - * - * @since ari_1_5_0 - *********************************************************/ - public String getBody(); - - - -// void setTo String -/********************************************************** - * A technology specific URI specifying the destination of the message. Valid technologies include sip, pjsip, and xmp. The destination of a message should be an endpoint. - * - * @since ari_1_5_0 - *********************************************************/ - public void setTo(String val ); - - - -// void setVariables List -/********************************************************** - * Technology specific key/value pairs associated with the message. - * - * @since ari_1_5_0 - *********************************************************/ - public void setVariables(List val ); - - - -// String getTo -/********************************************************** - * A technology specific URI specifying the destination of the message. Valid technologies include sip, pjsip, and xmp. The destination of a message should be an endpoint. - * - * @since ari_1_5_0 - *********************************************************/ - public String getTo(); - - - -// void setFrom String -/********************************************************** - * A technology specific URI specifying the source of the message. For sip and pjsip technologies, any SIP URI can be specified. For xmpp, the URI must correspond to the client connection being used to send the message. - * - * @since ari_1_5_0 - *********************************************************/ - public void setFrom(String val ); - - - -// String getFrom -/********************************************************** - * A technology specific URI specifying the source of the message. For sip and pjsip technologies, any SIP URI can be specified. For xmpp, the URI must correspond to the client connection being used to send the message. - * - * @since ari_1_5_0 - *********************************************************/ - public String getFrom(); - - -} -; diff --git a/classes/ch/loway/oss/ari4java/generated/TextMessageReceived.java b/classes/ch/loway/oss/ari4java/generated/TextMessageReceived.java deleted file mode 100644 index 69ab382d..00000000 --- a/classes/ch/loway/oss/ari4java/generated/TextMessageReceived.java +++ /dev/null @@ -1,65 +0,0 @@ -package ch.loway.oss.ari4java.generated; - -// ---------------------------------------------------- -// THIS CLASS WAS GENERATED AUTOMATICALLY -// PLEASE DO NOT EDIT -// Generated on: Tue Dec 19 09:55:48 CET 2017 -// ---------------------------------------------------- - -import java.util.Date; -import java.util.List; -import java.util.Map; -import java.util.ArrayList; -import ch.loway.oss.ari4java.tools.RestException; -import ch.loway.oss.ari4java.tools.AriCallback; -import ch.loway.oss.ari4java.tools.tags.*; - -/********************************************************** - * - * Generated by: JavaInterface - *********************************************************/ - - -public interface TextMessageReceived { - -// Endpoint getEndpoint -/********************************************************** - * - * - * @since ari_1_5_0 - *********************************************************/ - public Endpoint getEndpoint(); - - - -// TextMessage getMessage -/********************************************************** - * - * - * @since ari_1_5_0 - *********************************************************/ - public TextMessage getMessage(); - - - -// void setEndpoint Endpoint -/********************************************************** - * - * - * @since ari_1_5_0 - *********************************************************/ - public void setEndpoint(Endpoint val ); - - - -// void setMessage TextMessage -/********************************************************** - * - * - * @since ari_1_5_0 - *********************************************************/ - public void setMessage(TextMessage val ); - - -} -; diff --git a/classes/ch/loway/oss/ari4java/generated/TextMessageVariable.java b/classes/ch/loway/oss/ari4java/generated/TextMessageVariable.java deleted file mode 100644 index b9c85522..00000000 --- a/classes/ch/loway/oss/ari4java/generated/TextMessageVariable.java +++ /dev/null @@ -1,65 +0,0 @@ -package ch.loway.oss.ari4java.generated; - -// ---------------------------------------------------- -// THIS CLASS WAS GENERATED AUTOMATICALLY -// PLEASE DO NOT EDIT -// Generated on: Tue Dec 19 09:55:48 CET 2017 -// ---------------------------------------------------- - -import java.util.Date; -import java.util.List; -import java.util.Map; -import java.util.ArrayList; -import ch.loway.oss.ari4java.tools.RestException; -import ch.loway.oss.ari4java.tools.AriCallback; -import ch.loway.oss.ari4java.tools.tags.*; - -/********************************************************** - * - * Generated by: JavaInterface - *********************************************************/ - - -public interface TextMessageVariable { - -// void setValue String -/********************************************************** - * The value of the variable. - * - * @since ari_1_5_0 - *********************************************************/ - public void setValue(String val ); - - - -// void setKey String -/********************************************************** - * A unique key identifying the variable. - * - * @since ari_1_5_0 - *********************************************************/ - public void setKey(String val ); - - - -// String getKey -/********************************************************** - * A unique key identifying the variable. - * - * @since ari_1_5_0 - *********************************************************/ - public String getKey(); - - - -// String getValue -/********************************************************** - * The value of the variable. - * - * @since ari_1_5_0 - *********************************************************/ - public String getValue(); - - -} -; diff --git a/classes/ch/loway/oss/ari4java/generated/Variable.java b/classes/ch/loway/oss/ari4java/generated/Variable.java deleted file mode 100644 index ce66da4b..00000000 --- a/classes/ch/loway/oss/ari4java/generated/Variable.java +++ /dev/null @@ -1,45 +0,0 @@ -package ch.loway.oss.ari4java.generated; - -// ---------------------------------------------------- -// THIS CLASS WAS GENERATED AUTOMATICALLY -// PLEASE DO NOT EDIT -// Generated on: Tue Dec 19 09:55:48 CET 2017 -// ---------------------------------------------------- - -import java.util.Date; -import java.util.List; -import java.util.Map; -import java.util.ArrayList; -import ch.loway.oss.ari4java.tools.RestException; -import ch.loway.oss.ari4java.tools.AriCallback; -import ch.loway.oss.ari4java.tools.tags.*; - -/********************************************************** - * - * Generated by: JavaInterface - *********************************************************/ - - -public interface Variable { - -// void setValue String -/********************************************************** - * The value of the variable requested - * - * @since ari_0_0_1 - *********************************************************/ - public void setValue(String val ); - - - -// String getValue -/********************************************************** - * The value of the variable requested - * - * @since ari_0_0_1 - *********************************************************/ - public String getValue(); - - -} -; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_0_0_1/AriBuilder_impl_ari_0_0_1.java b/classes/ch/loway/oss/ari4java/generated/ari_0_0_1/AriBuilder_impl_ari_0_0_1.java deleted file mode 100644 index eb2953ad..00000000 --- a/classes/ch/loway/oss/ari4java/generated/ari_0_0_1/AriBuilder_impl_ari_0_0_1.java +++ /dev/null @@ -1,328 +0,0 @@ -package ch.loway.oss.ari4java.generated.ari_0_0_1; - -// ---------------------------------------------------- -// THIS CLASS WAS GENERATED AUTOMATICALLY -// PLEASE DO NOT EDIT -// Generated on: Tue Dec 19 09:55:49 CET 2017 -// ---------------------------------------------------- - -import ch.loway.oss.ari4java.generated.ari_0_0_1.models.*; -import ch.loway.oss.ari4java.generated.ari_0_0_1.actions.*; -import ch.loway.oss.ari4java.generated.*; -import ch.loway.oss.ari4java.ARI; - -public class AriBuilder_impl_ari_0_0_1 implements AriBuilder { - -public ActionChannels actionChannels() { - return new ActionChannels_impl_ari_0_0_1(); - }; - -public ActionSounds actionSounds() { - return new ActionSounds_impl_ari_0_0_1(); - }; - -public ActionDeviceStates actionDeviceStates() { - return new ActionDeviceStates_impl_ari_0_0_1(); - }; - -public ActionBridges actionBridges() { - return new ActionBridges_impl_ari_0_0_1(); - }; - -public ActionEvents actionEvents() { - return new ActionEvents_impl_ari_0_0_1(); - }; - -public ActionAsterisk actionAsterisk() { - return new ActionAsterisk_impl_ari_0_0_1(); - }; - -public ActionEndpoints actionEndpoints() { - return new ActionEndpoints_impl_ari_0_0_1(); - }; - -public ActionPlaybacks actionPlaybacks() { - return new ActionPlaybacks_impl_ari_0_0_1(); - }; - -public ActionRecordings actionRecordings() { - return new ActionRecordings_impl_ari_0_0_1(); - }; - -public ActionApplications actionApplications() { - return new ActionApplications_impl_ari_0_0_1(); - }; - -public ChannelEnteredBridge channelEnteredBridge() { - return new ChannelEnteredBridge_impl_ari_0_0_1(); - }; - -public CallerID callerID() { - return new CallerID_impl_ari_0_0_1(); - }; - -public StasisEnd stasisEnd() { - return new StasisEnd_impl_ari_0_0_1(); - }; - -public LiveRecording liveRecording() { - return new LiveRecording_impl_ari_0_0_1(); - }; - -public Dialed dialed() { - return new Dialed_impl_ari_0_0_1(); - }; - -public Sound sound() { - return new Sound_impl_ari_0_0_1(); - }; - -public AsteriskInfo asteriskInfo() { - return new AsteriskInfo_impl_ari_0_0_1(); - }; - -public Bridge bridge() { - return new Bridge_impl_ari_0_0_1(); - }; - -public MissingParams missingParams() { - return new MissingParams_impl_ari_0_0_1(); - }; - -public RecordingStarted recordingStarted() { - return new RecordingStarted_impl_ari_0_0_1(); - }; - -public RecordingFailed recordingFailed() { - return new RecordingFailed_impl_ari_0_0_1(); - }; - -public StoredRecording storedRecording() { - return new StoredRecording_impl_ari_0_0_1(); - }; - -public PlaybackStarted playbackStarted() { - return new PlaybackStarted_impl_ari_0_0_1(); - }; - -public ChannelDialplan channelDialplan() { - return new ChannelDialplan_impl_ari_0_0_1(); - }; - -public ChannelCreated channelCreated() { - return new ChannelCreated_impl_ari_0_0_1(); - }; - -public BridgeDestroyed bridgeDestroyed() { - return new BridgeDestroyed_impl_ari_0_0_1(); - }; - -public SetId setId() { - return new SetId_impl_ari_0_0_1(); - }; - -public Playback playback() { - return new Playback_impl_ari_0_0_1(); - }; - -public Endpoint endpoint() { - return new Endpoint_impl_ari_0_0_1(); - }; - -public ChannelVarset channelVarset() { - return new ChannelVarset_impl_ari_0_0_1(); - }; - -public Message message() { - return new Message_impl_ari_0_0_1(); - }; - -public SystemInfo systemInfo() { - return new SystemInfo_impl_ari_0_0_1(); - }; - -public Variable variable() { - return new Variable_impl_ari_0_0_1(); - }; - -public BuildInfo buildInfo() { - return new BuildInfo_impl_ari_0_0_1(); - }; - -public ChannelStateChange channelStateChange() { - return new ChannelStateChange_impl_ari_0_0_1(); - }; - -public Application application() { - return new Application_impl_ari_0_0_1(); - }; - -public ConfigInfo configInfo() { - return new ConfigInfo_impl_ari_0_0_1(); - }; - -public ChannelDtmfReceived channelDtmfReceived() { - return new ChannelDtmfReceived_impl_ari_0_0_1(); - }; - -public EndpointStateChange endpointStateChange() { - return new EndpointStateChange_impl_ari_0_0_1(); - }; - -public Channel channel() { - return new Channel_impl_ari_0_0_1(); - }; - -public ApplicationReplaced applicationReplaced() { - return new ApplicationReplaced_impl_ari_0_0_1(); - }; - -public BridgeCreated bridgeCreated() { - return new BridgeCreated_impl_ari_0_0_1(); - }; - -public StatusInfo statusInfo() { - return new StatusInfo_impl_ari_0_0_1(); - }; - -public ChannelUserevent channelUserevent() { - return new ChannelUserevent_impl_ari_0_0_1(); - }; - -public Event event() { - return new Event_impl_ari_0_0_1(); - }; - -public DeviceStateChanged deviceStateChanged() { - return new DeviceStateChanged_impl_ari_0_0_1(); - }; - -public BridgeMerged bridgeMerged() { - return new BridgeMerged_impl_ari_0_0_1(); - }; - -public ChannelLeftBridge channelLeftBridge() { - return new ChannelLeftBridge_impl_ari_0_0_1(); - }; - -public RecordingFinished recordingFinished() { - return new RecordingFinished_impl_ari_0_0_1(); - }; - -public DialplanCEP dialplanCEP() { - return new DialplanCEP_impl_ari_0_0_1(); - }; - -public ChannelCallerId channelCallerId() { - return new ChannelCallerId_impl_ari_0_0_1(); - }; - -public ChannelHangupRequest channelHangupRequest() { - return new ChannelHangupRequest_impl_ari_0_0_1(); - }; - -public DeviceState deviceState() { - return new DeviceState_impl_ari_0_0_1(); - }; - -public StasisStart stasisStart() { - return new StasisStart_impl_ari_0_0_1(); - }; - -public ChannelDestroyed channelDestroyed() { - return new ChannelDestroyed_impl_ari_0_0_1(); - }; - -public FormatLangPair formatLangPair() { - return new FormatLangPair_impl_ari_0_0_1(); - }; - -public PlaybackFinished playbackFinished() { - return new PlaybackFinished_impl_ari_0_0_1(); - }; - -public BridgeAttendedTransfer bridgeAttendedTransfer() { - throw new UnsupportedOperationException(); - }; - -public BridgeBlindTransfer bridgeBlindTransfer() { - throw new UnsupportedOperationException(); - }; - -public BridgeVideoSourceChanged bridgeVideoSourceChanged() { - throw new UnsupportedOperationException(); - }; - -public ChannelConnectedLine channelConnectedLine() { - throw new UnsupportedOperationException(); - }; - -public ChannelHold channelHold() { - throw new UnsupportedOperationException(); - }; - -public ChannelTalkingFinished channelTalkingFinished() { - throw new UnsupportedOperationException(); - }; - -public ChannelTalkingStarted channelTalkingStarted() { - throw new UnsupportedOperationException(); - }; - -public ChannelUnhold channelUnhold() { - throw new UnsupportedOperationException(); - }; - -public ConfigTuple configTuple() { - throw new UnsupportedOperationException(); - }; - -public ContactInfo contactInfo() { - throw new UnsupportedOperationException(); - }; - -public ContactStatusChange contactStatusChange() { - throw new UnsupportedOperationException(); - }; - -public Dial dial() { - throw new UnsupportedOperationException(); - }; - -public LogChannel logChannel() { - throw new UnsupportedOperationException(); - }; - -public Module module() { - throw new UnsupportedOperationException(); - }; - -public Peer peer() { - throw new UnsupportedOperationException(); - }; - -public PeerStatusChange peerStatusChange() { - throw new UnsupportedOperationException(); - }; - -public PlaybackContinuing playbackContinuing() { - throw new UnsupportedOperationException(); - }; - -public TextMessage textMessage() { - throw new UnsupportedOperationException(); - }; - -public TextMessageReceived textMessageReceived() { - throw new UnsupportedOperationException(); - }; - -public TextMessageVariable textMessageVariable() { - throw new UnsupportedOperationException(); - }; - -public ARI.ClassFactory getClassFactory() { - return new ClassTranslator_impl_ari_0_0_1(); -}; - -}; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_0_0_1/ClassTranslator_impl_ari_0_0_1.java b/classes/ch/loway/oss/ari4java/generated/ari_0_0_1/ClassTranslator_impl_ari_0_0_1.java deleted file mode 100644 index 17596311..00000000 --- a/classes/ch/loway/oss/ari4java/generated/ari_0_0_1/ClassTranslator_impl_ari_0_0_1.java +++ /dev/null @@ -1,255 +0,0 @@ -package ch.loway.oss.ari4java.generated.ari_0_0_1; - -// ---------------------------------------------------- -// THIS CLASS WAS GENERATED AUTOMATICALLY -// PLEASE DO NOT EDIT -// Generated on: Tue Dec 19 09:55:50 CET 2017 -// ---------------------------------------------------- - -import ch.loway.oss.ari4java.ARI; -import ch.loway.oss.ari4java.generated.*; -import ch.loway.oss.ari4java.generated.ari_0_0_1.models.*; -import ch.loway.oss.ari4java.generated.ari_0_0_1.actions.*; - -/********************************************************** - * This is a class translator. - *********************************************************/ -public class ClassTranslator_impl_ari_0_0_1 implements ARI.ClassFactory { - - @Override - public Class getImplementationFor(Class interfaceClass) { - - if ( interfaceClass.equals(ActionApplications.class) ) { - return (ActionApplications_impl_ari_0_0_1.class); - } else - - if ( interfaceClass.equals(ActionAsterisk.class) ) { - return (ActionAsterisk_impl_ari_0_0_1.class); - } else - - if ( interfaceClass.equals(ActionBridges.class) ) { - return (ActionBridges_impl_ari_0_0_1.class); - } else - - if ( interfaceClass.equals(ActionChannels.class) ) { - return (ActionChannels_impl_ari_0_0_1.class); - } else - - if ( interfaceClass.equals(ActionDeviceStates.class) ) { - return (ActionDeviceStates_impl_ari_0_0_1.class); - } else - - if ( interfaceClass.equals(ActionEndpoints.class) ) { - return (ActionEndpoints_impl_ari_0_0_1.class); - } else - - if ( interfaceClass.equals(ActionEvents.class) ) { - return (ActionEvents_impl_ari_0_0_1.class); - } else - - if ( interfaceClass.equals(ActionPlaybacks.class) ) { - return (ActionPlaybacks_impl_ari_0_0_1.class); - } else - - if ( interfaceClass.equals(ActionRecordings.class) ) { - return (ActionRecordings_impl_ari_0_0_1.class); - } else - - if ( interfaceClass.equals(ActionSounds.class) ) { - return (ActionSounds_impl_ari_0_0_1.class); - } else - - if ( interfaceClass.equals(Application.class) ) { - return (Application_impl_ari_0_0_1.class); - } else - - if ( interfaceClass.equals(ApplicationReplaced.class) ) { - return (ApplicationReplaced_impl_ari_0_0_1.class); - } else - - if ( interfaceClass.equals(AsteriskInfo.class) ) { - return (AsteriskInfo_impl_ari_0_0_1.class); - } else - - if ( interfaceClass.equals(Bridge.class) ) { - return (Bridge_impl_ari_0_0_1.class); - } else - - if ( interfaceClass.equals(BridgeCreated.class) ) { - return (BridgeCreated_impl_ari_0_0_1.class); - } else - - if ( interfaceClass.equals(BridgeDestroyed.class) ) { - return (BridgeDestroyed_impl_ari_0_0_1.class); - } else - - if ( interfaceClass.equals(BridgeMerged.class) ) { - return (BridgeMerged_impl_ari_0_0_1.class); - } else - - if ( interfaceClass.equals(BuildInfo.class) ) { - return (BuildInfo_impl_ari_0_0_1.class); - } else - - if ( interfaceClass.equals(CallerID.class) ) { - return (CallerID_impl_ari_0_0_1.class); - } else - - if ( interfaceClass.equals(Channel.class) ) { - return (Channel_impl_ari_0_0_1.class); - } else - - if ( interfaceClass.equals(ChannelCallerId.class) ) { - return (ChannelCallerId_impl_ari_0_0_1.class); - } else - - if ( interfaceClass.equals(ChannelCreated.class) ) { - return (ChannelCreated_impl_ari_0_0_1.class); - } else - - if ( interfaceClass.equals(ChannelDestroyed.class) ) { - return (ChannelDestroyed_impl_ari_0_0_1.class); - } else - - if ( interfaceClass.equals(ChannelDialplan.class) ) { - return (ChannelDialplan_impl_ari_0_0_1.class); - } else - - if ( interfaceClass.equals(ChannelDtmfReceived.class) ) { - return (ChannelDtmfReceived_impl_ari_0_0_1.class); - } else - - if ( interfaceClass.equals(ChannelEnteredBridge.class) ) { - return (ChannelEnteredBridge_impl_ari_0_0_1.class); - } else - - if ( interfaceClass.equals(ChannelHangupRequest.class) ) { - return (ChannelHangupRequest_impl_ari_0_0_1.class); - } else - - if ( interfaceClass.equals(ChannelLeftBridge.class) ) { - return (ChannelLeftBridge_impl_ari_0_0_1.class); - } else - - if ( interfaceClass.equals(ChannelStateChange.class) ) { - return (ChannelStateChange_impl_ari_0_0_1.class); - } else - - if ( interfaceClass.equals(ChannelUserevent.class) ) { - return (ChannelUserevent_impl_ari_0_0_1.class); - } else - - if ( interfaceClass.equals(ChannelVarset.class) ) { - return (ChannelVarset_impl_ari_0_0_1.class); - } else - - if ( interfaceClass.equals(ConfigInfo.class) ) { - return (ConfigInfo_impl_ari_0_0_1.class); - } else - - if ( interfaceClass.equals(DeviceState.class) ) { - return (DeviceState_impl_ari_0_0_1.class); - } else - - if ( interfaceClass.equals(DeviceStateChanged.class) ) { - return (DeviceStateChanged_impl_ari_0_0_1.class); - } else - - if ( interfaceClass.equals(Dialed.class) ) { - return (Dialed_impl_ari_0_0_1.class); - } else - - if ( interfaceClass.equals(DialplanCEP.class) ) { - return (DialplanCEP_impl_ari_0_0_1.class); - } else - - if ( interfaceClass.equals(Endpoint.class) ) { - return (Endpoint_impl_ari_0_0_1.class); - } else - - if ( interfaceClass.equals(EndpointStateChange.class) ) { - return (EndpointStateChange_impl_ari_0_0_1.class); - } else - - if ( interfaceClass.equals(Event.class) ) { - return (Event_impl_ari_0_0_1.class); - } else - - if ( interfaceClass.equals(FormatLangPair.class) ) { - return (FormatLangPair_impl_ari_0_0_1.class); - } else - - if ( interfaceClass.equals(LiveRecording.class) ) { - return (LiveRecording_impl_ari_0_0_1.class); - } else - - if ( interfaceClass.equals(Message.class) ) { - return (Message_impl_ari_0_0_1.class); - } else - - if ( interfaceClass.equals(MissingParams.class) ) { - return (MissingParams_impl_ari_0_0_1.class); - } else - - if ( interfaceClass.equals(Playback.class) ) { - return (Playback_impl_ari_0_0_1.class); - } else - - if ( interfaceClass.equals(PlaybackFinished.class) ) { - return (PlaybackFinished_impl_ari_0_0_1.class); - } else - - if ( interfaceClass.equals(PlaybackStarted.class) ) { - return (PlaybackStarted_impl_ari_0_0_1.class); - } else - - if ( interfaceClass.equals(RecordingFailed.class) ) { - return (RecordingFailed_impl_ari_0_0_1.class); - } else - - if ( interfaceClass.equals(RecordingFinished.class) ) { - return (RecordingFinished_impl_ari_0_0_1.class); - } else - - if ( interfaceClass.equals(RecordingStarted.class) ) { - return (RecordingStarted_impl_ari_0_0_1.class); - } else - - if ( interfaceClass.equals(SetId.class) ) { - return (SetId_impl_ari_0_0_1.class); - } else - - if ( interfaceClass.equals(Sound.class) ) { - return (Sound_impl_ari_0_0_1.class); - } else - - if ( interfaceClass.equals(StasisEnd.class) ) { - return (StasisEnd_impl_ari_0_0_1.class); - } else - - if ( interfaceClass.equals(StasisStart.class) ) { - return (StasisStart_impl_ari_0_0_1.class); - } else - - if ( interfaceClass.equals(StatusInfo.class) ) { - return (StatusInfo_impl_ari_0_0_1.class); - } else - - if ( interfaceClass.equals(StoredRecording.class) ) { - return (StoredRecording_impl_ari_0_0_1.class); - } else - - if ( interfaceClass.equals(SystemInfo.class) ) { - return (SystemInfo_impl_ari_0_0_1.class); - } else - - if ( interfaceClass.equals(Variable.class) ) { - return (Variable_impl_ari_0_0_1.class); - } else - { - return null; - } - } -} - - diff --git a/classes/ch/loway/oss/ari4java/generated/ari_0_0_1/actions/ActionApplications_impl_ari_0_0_1.java b/classes/ch/loway/oss/ari4java/generated/ari_0_0_1/actions/ActionApplications_impl_ari_0_0_1.java deleted file mode 100644 index 837bc178..00000000 --- a/classes/ch/loway/oss/ari4java/generated/ari_0_0_1/actions/ActionApplications_impl_ari_0_0_1.java +++ /dev/null @@ -1,140 +0,0 @@ -package ch.loway.oss.ari4java.generated.ari_0_0_1.actions; - -// ---------------------------------------------------- -// THIS CLASS WAS GENERATED AUTOMATICALLY -// PLEASE DO NOT EDIT -// Generated on: Tue Dec 19 09:55:49 CET 2017 -// ---------------------------------------------------- - -import ch.loway.oss.ari4java.generated.*; -import java.util.Date; -import java.util.List; -import java.util.Map; -import java.util.ArrayList; -import ch.loway.oss.ari4java.tools.BaseAriAction; -import ch.loway.oss.ari4java.tools.RestException; -import ch.loway.oss.ari4java.tools.AriCallback; -import ch.loway.oss.ari4java.tools.HttpParam; -import ch.loway.oss.ari4java.tools.HttpResponse; -import com.fasterxml.jackson.core.type.TypeReference; -import ch.loway.oss.ari4java.generated.ari_0_0_1.models.*; - -/********************************************************** - * - * Generated by: Apis - *********************************************************/ - - -public class ActionApplications_impl_ari_0_0_1 extends BaseAriAction implements ActionApplications { -/********************************************************** - * Stasis applications - * - * List all applications. - *********************************************************/ -private void buildList() { -reset(); -url = "/applications"; -method = "GET"; -} - -@Override -public List list() throws RestException { -buildList(); -String json = httpActionSync(); -return deserializeJsonAsAbstractList( json, - new TypeReference>() {} ); -} - -@Override -public void list(AriCallback> callback) { -buildList(); -httpActionAsync(callback, new TypeReference>() {}); -} - -/********************************************************** - * Stasis application - * - * Get details of an application. - *********************************************************/ -private void buildGet(String applicationName) { -reset(); -url = "/applications/" + applicationName + ""; -method = "GET"; -lE.add( HttpResponse.build( 404, "Application does not exist.") ); -} - -@Override -public Application get(String applicationName) throws RestException { -buildGet(applicationName); -String json = httpActionSync(); -return deserializeJson( json, Application_impl_ari_0_0_1.class ); -} - -@Override -public void get(String applicationName, AriCallback callback) { -buildGet(applicationName); -httpActionAsync(callback, Application_impl_ari_0_0_1.class); -} - -/********************************************************** - * Stasis application - * - * Subscribe an application to a event source. - * Returns the state of the application after the subscriptions have changed - *********************************************************/ -private void buildSubscribe(String applicationName, String eventSource) { -reset(); -url = "/applications/" + applicationName + "/subscription"; -method = "POST"; -lParamQuery.add( HttpParam.build( "eventSource", eventSource) ); -lE.add( HttpResponse.build( 400, "Missing parameter.") ); -lE.add( HttpResponse.build( 404, "Application does not exist.") ); -lE.add( HttpResponse.build( 422, "Event source does not exist.") ); -} - -@Override -public Application subscribe(String applicationName, String eventSource) throws RestException { -buildSubscribe(applicationName, eventSource); -String json = httpActionSync(); -return deserializeJson( json, Application_impl_ari_0_0_1.class ); -} - -@Override -public void subscribe(String applicationName, String eventSource, AriCallback callback) { -buildSubscribe(applicationName, eventSource); -httpActionAsync(callback, Application_impl_ari_0_0_1.class); -} - -/********************************************************** - * Stasis application - * - * Unsubscribe an application from an event source. - * Returns the state of the application after the subscriptions have changed - *********************************************************/ -private void buildUnsubscribe(String applicationName, String eventSource) { -reset(); -url = "/applications/" + applicationName + "/subscription"; -method = "DELETE"; -lParamQuery.add( HttpParam.build( "eventSource", eventSource) ); -lE.add( HttpResponse.build( 400, "Missing parameter; event source scheme not recognized.") ); -lE.add( HttpResponse.build( 404, "Application does not exist.") ); -lE.add( HttpResponse.build( 409, "Application not subscribed to event source.") ); -lE.add( HttpResponse.build( 422, "Event source does not exist.") ); -} - -@Override -public Application unsubscribe(String applicationName, String eventSource) throws RestException { -buildUnsubscribe(applicationName, eventSource); -String json = httpActionSync(); -return deserializeJson( json, Application_impl_ari_0_0_1.class ); -} - -@Override -public void unsubscribe(String applicationName, String eventSource, AriCallback callback) { -buildUnsubscribe(applicationName, eventSource); -httpActionAsync(callback, Application_impl_ari_0_0_1.class); -} - -/** No missing signatures from interface */ -}; - diff --git a/classes/ch/loway/oss/ari4java/generated/ari_0_0_1/actions/ActionAsterisk_impl_ari_0_0_1.java b/classes/ch/loway/oss/ari4java/generated/ari_0_0_1/actions/ActionAsterisk_impl_ari_0_0_1.java deleted file mode 100644 index dbf892b1..00000000 --- a/classes/ch/loway/oss/ari4java/generated/ari_0_0_1/actions/ActionAsterisk_impl_ari_0_0_1.java +++ /dev/null @@ -1,335 +0,0 @@ -package ch.loway.oss.ari4java.generated.ari_0_0_1.actions; - -// ---------------------------------------------------- -// THIS CLASS WAS GENERATED AUTOMATICALLY -// PLEASE DO NOT EDIT -// Generated on: Tue Dec 19 09:55:49 CET 2017 -// ---------------------------------------------------- - -import ch.loway.oss.ari4java.generated.*; -import java.util.Date; -import java.util.List; -import java.util.Map; -import java.util.ArrayList; -import ch.loway.oss.ari4java.tools.BaseAriAction; -import ch.loway.oss.ari4java.tools.RestException; -import ch.loway.oss.ari4java.tools.AriCallback; -import ch.loway.oss.ari4java.tools.HttpParam; -import ch.loway.oss.ari4java.tools.HttpResponse; -import com.fasterxml.jackson.core.type.TypeReference; -import ch.loway.oss.ari4java.generated.ari_0_0_1.models.*; - -/********************************************************** - * - * Generated by: Apis - *********************************************************/ - - -public class ActionAsterisk_impl_ari_0_0_1 extends BaseAriAction implements ActionAsterisk { -/********************************************************** - * Asterisk system information (similar to core show settings) - * - * Gets Asterisk system information. - *********************************************************/ -private void buildGetInfo(String only) { -reset(); -url = "/asterisk/info"; -method = "GET"; -lParamQuery.add( HttpParam.build( "only", only) ); -} - -@Override -public AsteriskInfo getInfo(String only) throws RestException { -buildGetInfo(only); -String json = httpActionSync(); -return deserializeJson( json, AsteriskInfo_impl_ari_0_0_1.class ); -} - -@Override -public void getInfo(String only, AriCallback callback) { -buildGetInfo(only); -httpActionAsync(callback, AsteriskInfo_impl_ari_0_0_1.class); -} - -/********************************************************** - * Global variables - * - * Get the value of a global variable. - *********************************************************/ -private void buildGetGlobalVar(String variable) { -reset(); -url = "/asterisk/variable"; -method = "GET"; -lParamQuery.add( HttpParam.build( "variable", variable) ); -lE.add( HttpResponse.build( 400, "Missing variable parameter.") ); -} - -@Override -public Variable getGlobalVar(String variable) throws RestException { -buildGetGlobalVar(variable); -String json = httpActionSync(); -return deserializeJson( json, Variable_impl_ari_0_0_1.class ); -} - -@Override -public void getGlobalVar(String variable, AriCallback callback) { -buildGetGlobalVar(variable); -httpActionAsync(callback, Variable_impl_ari_0_0_1.class); -} - -/********************************************************** - * Global variables - * - * Set the value of a global variable. - *********************************************************/ -private void buildSetGlobalVar(String variable, String value) { -reset(); -url = "/asterisk/variable"; -method = "POST"; -lParamQuery.add( HttpParam.build( "variable", variable) ); -lParamQuery.add( HttpParam.build( "value", value) ); -lE.add( HttpResponse.build( 400, "Missing variable parameter.") ); -} - -@Override -public void setGlobalVar(String variable, String value) throws RestException { -buildSetGlobalVar(variable, value); -String json = httpActionSync(); -} - -@Override -public void setGlobalVar(String variable, String value, AriCallback callback) { -buildSetGlobalVar(variable, value); -httpActionAsync(callback); -} - -/********************************************************** - * - * - * @since ari_1_8_0 - *********************************************************/ -public void updateObject(String configClass, String objectType, String id, Map fields, AriCallback> callback){ - throw new UnsupportedOperationException("Method availble from ..."); -}; - -/********************************************************** - * - * - * @since ari_1_8_0 - *********************************************************/ -public void listModules(AriCallback> callback){ - throw new UnsupportedOperationException("Method availble from ..."); -}; - -/********************************************************** - * - * - * @since ari_1_8_0 - *********************************************************/ -public void getModule(String moduleName, AriCallback callback){ - throw new UnsupportedOperationException("Method availble from ..."); -}; - -/********************************************************** - * - * - * @since ari_1_8_0 - *********************************************************/ -public void unloadModule(String moduleName, AriCallback callback){ - throw new UnsupportedOperationException("Method availble from ..."); -}; - -/********************************************************** - * Rotates a log channel. - * - * - * @since ari_1_9_0 - *********************************************************/ -public void rotateLog(String logChannelName) throws RestException{ - throw new UnsupportedOperationException("Method availble from ..."); -}; - -/********************************************************** - * - * - * @since ari_1_8_0 - *********************************************************/ -public void deleteObject(String configClass, String objectType, String id, AriCallback callback){ - throw new UnsupportedOperationException("Method availble from ..."); -}; - -/********************************************************** - * Deletes a log channel. - * - * - * @since ari_1_9_0 - *********************************************************/ -public void deleteLog(String logChannelName) throws RestException{ - throw new UnsupportedOperationException("Method availble from ..."); -}; - -/********************************************************** - * Load an Asterisk module. - * - * - * @since ari_1_8_0 - *********************************************************/ -public void loadModule(String moduleName) throws RestException{ - throw new UnsupportedOperationException("Method availble from ..."); -}; - -/********************************************************** - * Unload an Asterisk module. - * - * - * @since ari_1_8_0 - *********************************************************/ -public void unloadModule(String moduleName) throws RestException{ - throw new UnsupportedOperationException("Method availble from ..."); -}; - -/********************************************************** - * Create or update a dynamic configuration object. - * - * - * @since ari_1_8_0 - *********************************************************/ -public List updateObject(String configClass, String objectType, String id, Map fields) throws RestException{ - throw new UnsupportedOperationException("Method availble from ..."); -}; - -/********************************************************** - * Retrieve a dynamic configuration object. - * - * - * @since ari_1_8_0 - *********************************************************/ -public List getObject(String configClass, String objectType, String id) throws RestException{ - throw new UnsupportedOperationException("Method availble from ..."); -}; - -/********************************************************** - * Get Asterisk module information. - * - * - * @since ari_1_8_0 - *********************************************************/ -public Module getModule(String moduleName) throws RestException{ - throw new UnsupportedOperationException("Method availble from ..."); -}; - -/********************************************************** - * - * - * @since ari_1_9_0 - *********************************************************/ -public void rotateLog(String logChannelName, AriCallback callback){ - throw new UnsupportedOperationException("Method availble from ..."); -}; - -/********************************************************** - * - * - * @since ari_1_8_0 - *********************************************************/ -public void loadModule(String moduleName, AriCallback callback){ - throw new UnsupportedOperationException("Method availble from ..."); -}; - -/********************************************************** - * - * - * @since ari_1_9_0 - *********************************************************/ -public void addLog(String logChannelName, String configuration, AriCallback callback){ - throw new UnsupportedOperationException("Method availble from ..."); -}; - -/********************************************************** - * - * - * @since ari_1_8_0 - *********************************************************/ -public void reloadModule(String moduleName, AriCallback callback){ - throw new UnsupportedOperationException("Method availble from ..."); -}; - -/********************************************************** - * Gets Asterisk log channel information. - * - * - * @since ari_1_9_0 - *********************************************************/ -public List listLogChannels() throws RestException{ - throw new UnsupportedOperationException("Method availble from ..."); -}; - -/********************************************************** - * - * - * @since ari_1_8_0 - *********************************************************/ -public void getObject(String configClass, String objectType, String id, AriCallback> callback){ - throw new UnsupportedOperationException("Method availble from ..."); -}; - -/********************************************************** - * Adds a log channel. - * - * - * @since ari_1_9_0 - *********************************************************/ -public void addLog(String logChannelName, String configuration) throws RestException{ - throw new UnsupportedOperationException("Method availble from ..."); -}; - -/********************************************************** - * - * - * @since ari_1_9_0 - *********************************************************/ -public void listLogChannels(AriCallback> callback){ - throw new UnsupportedOperationException("Method availble from ..."); -}; - -/********************************************************** - * List Asterisk modules. - * - * - * @since ari_1_8_0 - *********************************************************/ -public List listModules() throws RestException{ - throw new UnsupportedOperationException("Method availble from ..."); -}; - -/********************************************************** - * Reload an Asterisk module. - * - * - * @since ari_1_8_0 - *********************************************************/ -public void reloadModule(String moduleName) throws RestException{ - throw new UnsupportedOperationException("Method availble from ..."); -}; - -/********************************************************** - * - * - * @since ari_1_9_0 - *********************************************************/ -public void deleteLog(String logChannelName, AriCallback callback){ - throw new UnsupportedOperationException("Method availble from ..."); -}; - -/********************************************************** - * Delete a dynamic configuration object. - * - * - * @since ari_1_8_0 - *********************************************************/ -public void deleteObject(String configClass, String objectType, String id) throws RestException{ - throw new UnsupportedOperationException("Method availble from ..."); -}; - -}; - diff --git a/classes/ch/loway/oss/ari4java/generated/ari_0_0_1/actions/ActionBridges_impl_ari_0_0_1.java b/classes/ch/loway/oss/ari4java/generated/ari_0_0_1/actions/ActionBridges_impl_ari_0_0_1.java deleted file mode 100644 index 20bdf737..00000000 --- a/classes/ch/loway/oss/ari4java/generated/ari_0_0_1/actions/ActionBridges_impl_ari_0_0_1.java +++ /dev/null @@ -1,459 +0,0 @@ -package ch.loway.oss.ari4java.generated.ari_0_0_1.actions; - -// ---------------------------------------------------- -// THIS CLASS WAS GENERATED AUTOMATICALLY -// PLEASE DO NOT EDIT -// Generated on: Tue Dec 19 09:55:49 CET 2017 -// ---------------------------------------------------- - -import ch.loway.oss.ari4java.generated.*; -import java.util.Date; -import java.util.List; -import java.util.Map; -import java.util.ArrayList; -import ch.loway.oss.ari4java.tools.BaseAriAction; -import ch.loway.oss.ari4java.tools.RestException; -import ch.loway.oss.ari4java.tools.AriCallback; -import ch.loway.oss.ari4java.tools.HttpParam; -import ch.loway.oss.ari4java.tools.HttpResponse; -import com.fasterxml.jackson.core.type.TypeReference; -import ch.loway.oss.ari4java.generated.ari_0_0_1.models.*; - -/********************************************************** - * - * Generated by: Apis - *********************************************************/ - - -public class ActionBridges_impl_ari_0_0_1 extends BaseAriAction implements ActionBridges { -/********************************************************** - * Active bridges - * - * List all active bridges in Asterisk. - *********************************************************/ -private void buildList() { -reset(); -url = "/bridges"; -method = "GET"; -} - -@Override -public List list() throws RestException { -buildList(); -String json = httpActionSync(); -return deserializeJsonAsAbstractList( json, - new TypeReference>() {} ); -} - -@Override -public void list(AriCallback> callback) { -buildList(); -httpActionAsync(callback, new TypeReference>() {}); -} - -/********************************************************** - * Active bridges - * - * Create a new bridge. - * This bridge persists until it has been shut down, or Asterisk has been shut down. - *********************************************************/ -private void buildCreate(String type) { -reset(); -url = "/bridges"; -method = "POST"; -lParamQuery.add( HttpParam.build( "type", type) ); -} - -@Override -public Bridge create(String type) throws RestException { -buildCreate(type); -String json = httpActionSync(); -return deserializeJson( json, Bridge_impl_ari_0_0_1.class ); -} - -@Override -public void create(String type, AriCallback callback) { -buildCreate(type); -httpActionAsync(callback, Bridge_impl_ari_0_0_1.class); -} - -/********************************************************** - * Individual bridge - * - * Get bridge details. - *********************************************************/ -private void buildGet(String bridgeId) { -reset(); -url = "/bridges/" + bridgeId + ""; -method = "GET"; -lE.add( HttpResponse.build( 404, "Bridge not found") ); -} - -@Override -public Bridge get(String bridgeId) throws RestException { -buildGet(bridgeId); -String json = httpActionSync(); -return deserializeJson( json, Bridge_impl_ari_0_0_1.class ); -} - -@Override -public void get(String bridgeId, AriCallback callback) { -buildGet(bridgeId); -httpActionAsync(callback, Bridge_impl_ari_0_0_1.class); -} - -/********************************************************** - * Individual bridge - * - * Shut down a bridge. - * If any channels are in this bridge, they will be removed and resume whatever they were doing beforehand. - *********************************************************/ -private void buildDestroy(String bridgeId) { -reset(); -url = "/bridges/" + bridgeId + ""; -method = "DELETE"; -lE.add( HttpResponse.build( 404, "Bridge not found") ); -} - -@Override -public void destroy(String bridgeId) throws RestException { -buildDestroy(bridgeId); -String json = httpActionSync(); -} - -@Override -public void destroy(String bridgeId, AriCallback callback) { -buildDestroy(bridgeId); -httpActionAsync(callback); -} - -/********************************************************** - * Add a channel to a bridge - * - * Add a channel to a bridge. - *********************************************************/ -private void buildAddChannel(String bridgeId, String channel, String role) { -reset(); -url = "/bridges/" + bridgeId + "/addChannel"; -method = "POST"; -lParamQuery.add( HttpParam.build( "channel", channel) ); -lParamQuery.add( HttpParam.build( "role", role) ); -lE.add( HttpResponse.build( 400, "Channel not found") ); -lE.add( HttpResponse.build( 404, "Bridge not found") ); -lE.add( HttpResponse.build( 409, "Bridge not in Stasis application") ); -lE.add( HttpResponse.build( 422, "Channel not in Stasis application") ); -} - -@Override -public void addChannel(String bridgeId, String channel, String role) throws RestException { -buildAddChannel(bridgeId, channel, role); -String json = httpActionSync(); -} - -@Override -public void addChannel(String bridgeId, String channel, String role, AriCallback callback) { -buildAddChannel(bridgeId, channel, role); -httpActionAsync(callback); -} - -/********************************************************** - * Play music on hold to a bridge - * - * Play music on hold to a bridge or change the MOH class that is playing. - *********************************************************/ -private void buildStartMoh(String bridgeId, String mohClass) { -reset(); -url = "/bridges/" + bridgeId + "/moh"; -method = "POST"; -lParamQuery.add( HttpParam.build( "mohClass", mohClass) ); -lE.add( HttpResponse.build( 404, "Bridge not found") ); -lE.add( HttpResponse.build( 409, "Bridge not in Stasis application") ); -} - -@Override -public void startMoh(String bridgeId, String mohClass) throws RestException { -buildStartMoh(bridgeId, mohClass); -String json = httpActionSync(); -} - -@Override -public void startMoh(String bridgeId, String mohClass, AriCallback callback) { -buildStartMoh(bridgeId, mohClass); -httpActionAsync(callback); -} - -/********************************************************** - * Play music on hold to a bridge - * - * Stop playing music on hold to a bridge. - * This will only stop music on hold being played via POST bridges/{bridgeId}/moh. - *********************************************************/ -private void buildStopMoh(String bridgeId) { -reset(); -url = "/bridges/" + bridgeId + "/moh"; -method = "DELETE"; -lE.add( HttpResponse.build( 404, "Bridge not found") ); -lE.add( HttpResponse.build( 409, "Bridge not in Stasis application") ); -} - -@Override -public void stopMoh(String bridgeId) throws RestException { -buildStopMoh(bridgeId); -String json = httpActionSync(); -} - -@Override -public void stopMoh(String bridgeId, AriCallback callback) { -buildStopMoh(bridgeId); -httpActionAsync(callback); -} - -/********************************************************** - * Play media to the participants of a bridge - * - * Start playback of media on a bridge. - * The media URI may be any of a number of URI's. Currently sound: and recording: URI's are supported. This operation creates a playback resource that can be used to control the playback of media (pause, rewind, fast forward, etc.) - *********************************************************/ -private void buildPlay(String bridgeId, String media, String lang, int offsetms, int skipms) { -reset(); -url = "/bridges/" + bridgeId + "/play"; -method = "POST"; -lParamQuery.add( HttpParam.build( "media", media) ); -lParamQuery.add( HttpParam.build( "lang", lang) ); -lParamQuery.add( HttpParam.build( "offsetms", offsetms) ); -lParamQuery.add( HttpParam.build( "skipms", skipms) ); -lE.add( HttpResponse.build( 404, "Bridge not found") ); -lE.add( HttpResponse.build( 409, "Bridge not in a Stasis application") ); -} - -@Override -public Playback play(String bridgeId, String media, String lang, int offsetms, int skipms) throws RestException { -buildPlay(bridgeId, media, lang, offsetms, skipms); -String json = httpActionSync(); -return deserializeJson( json, Playback_impl_ari_0_0_1.class ); -} - -@Override -public void play(String bridgeId, String media, String lang, int offsetms, int skipms, AriCallback callback) { -buildPlay(bridgeId, media, lang, offsetms, skipms); -httpActionAsync(callback, Playback_impl_ari_0_0_1.class); -} - -/********************************************************** - * Record audio on a bridge - * - * Start a recording. - * This records the mixed audio from all channels participating in this bridge. - *********************************************************/ -private void buildRecord(String bridgeId, String name, String format, int maxDurationSeconds, int maxSilenceSeconds, String ifExists, boolean beep, String terminateOn) { -reset(); -url = "/bridges/" + bridgeId + "/record"; -method = "POST"; -lParamQuery.add( HttpParam.build( "name", name) ); -lParamQuery.add( HttpParam.build( "format", format) ); -lParamQuery.add( HttpParam.build( "maxDurationSeconds", maxDurationSeconds) ); -lParamQuery.add( HttpParam.build( "maxSilenceSeconds", maxSilenceSeconds) ); -lParamQuery.add( HttpParam.build( "ifExists", ifExists) ); -lParamQuery.add( HttpParam.build( "beep", beep) ); -lParamQuery.add( HttpParam.build( "terminateOn", terminateOn) ); -lE.add( HttpResponse.build( 400, "Invalid parameters") ); -lE.add( HttpResponse.build( 404, "Bridge not found") ); -lE.add( HttpResponse.build( 409, "Bridge is not in a Stasis application; A recording with the same name already exists on the system and can not be overwritten because it is in progress or ifExists=fail") ); -lE.add( HttpResponse.build( 422, "The format specified is unknown on this system") ); -} - -@Override -public LiveRecording record(String bridgeId, String name, String format, int maxDurationSeconds, int maxSilenceSeconds, String ifExists, boolean beep, String terminateOn) throws RestException { -buildRecord(bridgeId, name, format, maxDurationSeconds, maxSilenceSeconds, ifExists, beep, terminateOn); -String json = httpActionSync(); -return deserializeJson( json, LiveRecording_impl_ari_0_0_1.class ); -} - -@Override -public void record(String bridgeId, String name, String format, int maxDurationSeconds, int maxSilenceSeconds, String ifExists, boolean beep, String terminateOn, AriCallback callback) { -buildRecord(bridgeId, name, format, maxDurationSeconds, maxSilenceSeconds, ifExists, beep, terminateOn); -httpActionAsync(callback, LiveRecording_impl_ari_0_0_1.class); -} - -/********************************************************** - * Remove a channel from a bridge - * - * Remove a channel from a bridge. - *********************************************************/ -private void buildRemoveChannel(String bridgeId, String channel) { -reset(); -url = "/bridges/" + bridgeId + "/removeChannel"; -method = "POST"; -lParamQuery.add( HttpParam.build( "channel", channel) ); -lE.add( HttpResponse.build( 400, "Channel not found") ); -lE.add( HttpResponse.build( 404, "Bridge not found") ); -lE.add( HttpResponse.build( 409, "Bridge not in Stasis application") ); -lE.add( HttpResponse.build( 422, "Channel not in this bridge") ); -} - -@Override -public void removeChannel(String bridgeId, String channel) throws RestException { -buildRemoveChannel(bridgeId, channel); -String json = httpActionSync(); -} - -@Override -public void removeChannel(String bridgeId, String channel, AriCallback callback) { -buildRemoveChannel(bridgeId, channel); -httpActionAsync(callback); -} - -/********************************************************** - * - * - * @since ari_1_5_0 - *********************************************************/ -public void create(String type, String bridgeId, String name, AriCallback callback){ - throw new UnsupportedOperationException("Method availble from ..."); -}; - -/********************************************************** - * - * - * @since ari_1_5_0 - *********************************************************/ -public void play(String bridgeId, String media, String lang, int offsetms, int skipms, String playbackId, AriCallback callback){ - throw new UnsupportedOperationException("Method availble from ..."); -}; - -/********************************************************** - * - * - * @since ari_1_7_0 - *********************************************************/ -public void createWithId(String type, String bridgeId, String name, AriCallback callback){ - throw new UnsupportedOperationException("Method availble from ..."); -}; - -/********************************************************** - * Start playback of media on a bridge. - * The media URI may be any of a number of URI's. Currently sound: and recording: URI's are supported. This operation creates a playback resource that can be used to control the playback of media (pause, rewind, fast forward, etc.) - * - * @since ari_1_5_0 - *********************************************************/ -public Playback playWithId(String bridgeId, String playbackId, String media, String lang, int offsetms, int skipms) throws RestException{ - throw new UnsupportedOperationException("Method availble from ..."); -}; - -/********************************************************** - * Create a new bridge. - * This bridge persists until it has been shut down, or Asterisk has been shut down. - * - * @since ari_1_5_0 - *********************************************************/ -public Bridge create(String type, String bridgeId, String name) throws RestException{ - throw new UnsupportedOperationException("Method availble from ..."); -}; - -/********************************************************** - * Create a new bridge. - * This bridge persists until it has been shut down, or Asterisk has been shut down. - * - * @since ari_1_0_0 - *********************************************************/ -public Bridge create(String type, String name) throws RestException{ - throw new UnsupportedOperationException("Method availble from ..."); -}; - -/********************************************************** - * - * - * @since ari_1_5_0 - *********************************************************/ -public void playWithId(String bridgeId, String playbackId, String media, String lang, int offsetms, int skipms, AriCallback callback){ - throw new UnsupportedOperationException("Method availble from ..."); -}; - -/********************************************************** - * - * - * @since ari_1_5_0 - *********************************************************/ -public void create_or_update_with_id(String type, String bridgeId, String name, AriCallback callback){ - throw new UnsupportedOperationException("Method availble from ..."); -}; - -/********************************************************** - * Set a channel as the video source in a multi-party mixing bridge. This operation has no effect on bridges with two or fewer participants. - * - * - * @since ari_2_0_0 - *********************************************************/ -public void setVideoSource(String bridgeId, String channelId) throws RestException{ - throw new UnsupportedOperationException("Method availble from ..."); -}; - -/********************************************************** - * Create a new bridge or updates an existing one. - * This bridge persists until it has been shut down, or Asterisk has been shut down. - * - * @since ari_1_5_0 - *********************************************************/ -public Bridge create_or_update_with_id(String type, String bridgeId, String name) throws RestException{ - throw new UnsupportedOperationException("Method availble from ..."); -}; - -/********************************************************** - * Start playback of media on a bridge. - * The media URI may be any of a number of URI's. Currently sound:, recording:, number:, digits:, characters:, and tone: URI's are supported. This operation creates a playback resource that can be used to control the playback of media (pause, rewind, fast forward, etc.) - * - * @since ari_1_5_0 - *********************************************************/ -public Playback play(String bridgeId, String media, String lang, int offsetms, int skipms, String playbackId) throws RestException{ - throw new UnsupportedOperationException("Method availble from ..."); -}; - -/********************************************************** - * Removes any explicit video source in a multi-party mixing bridge. This operation has no effect on bridges with two or fewer participants. When no explicit video source is set, talk detection will be used to determine the active video stream. - * - * - * @since ari_2_0_0 - *********************************************************/ -public void clearVideoSource(String bridgeId) throws RestException{ - throw new UnsupportedOperationException("Method availble from ..."); -}; - -/********************************************************** - * - * - * @since ari_2_0_0 - *********************************************************/ -public void setVideoSource(String bridgeId, String channelId, AriCallback callback){ - throw new UnsupportedOperationException("Method availble from ..."); -}; - -/********************************************************** - * - * - * @since ari_1_0_0 - *********************************************************/ -public void create(String type, String name, AriCallback callback){ - throw new UnsupportedOperationException("Method availble from ..."); -}; - -/********************************************************** - * - * - * @since ari_2_0_0 - *********************************************************/ -public void clearVideoSource(String bridgeId, AriCallback callback){ - throw new UnsupportedOperationException("Method availble from ..."); -}; - -/********************************************************** - * Create a new bridge or updates an existing one. - * This bridge persists until it has been shut down, or Asterisk has been shut down. - * - * @since ari_1_7_0 - *********************************************************/ -public Bridge createWithId(String type, String bridgeId, String name) throws RestException{ - throw new UnsupportedOperationException("Method availble from ..."); -}; - -}; - diff --git a/classes/ch/loway/oss/ari4java/generated/ari_0_0_1/actions/ActionChannels_impl_ari_0_0_1.java b/classes/ch/loway/oss/ari4java/generated/ari_0_0_1/actions/ActionChannels_impl_ari_0_0_1.java deleted file mode 100644 index 939af4cc..00000000 --- a/classes/ch/loway/oss/ari4java/generated/ari_0_0_1/actions/ActionChannels_impl_ari_0_0_1.java +++ /dev/null @@ -1,901 +0,0 @@ -package ch.loway.oss.ari4java.generated.ari_0_0_1.actions; - -// ---------------------------------------------------- -// THIS CLASS WAS GENERATED AUTOMATICALLY -// PLEASE DO NOT EDIT -// Generated on: Tue Dec 19 09:55:49 CET 2017 -// ---------------------------------------------------- - -import ch.loway.oss.ari4java.generated.*; -import java.util.Date; -import java.util.List; -import java.util.Map; -import java.util.ArrayList; -import ch.loway.oss.ari4java.tools.BaseAriAction; -import ch.loway.oss.ari4java.tools.RestException; -import ch.loway.oss.ari4java.tools.AriCallback; -import ch.loway.oss.ari4java.tools.HttpParam; -import ch.loway.oss.ari4java.tools.HttpResponse; -import com.fasterxml.jackson.core.type.TypeReference; -import ch.loway.oss.ari4java.generated.ari_0_0_1.models.*; - -/********************************************************** - * - * Generated by: Apis - *********************************************************/ - - -public class ActionChannels_impl_ari_0_0_1 extends BaseAriAction implements ActionChannels { -/********************************************************** - * Active channels - * - * List all active channels in Asterisk. - *********************************************************/ -private void buildList() { -reset(); -url = "/channels"; -method = "GET"; -} - -@Override -public List list() throws RestException { -buildList(); -String json = httpActionSync(); -return deserializeJsonAsAbstractList( json, - new TypeReference>() {} ); -} - -@Override -public void list(AriCallback> callback) { -buildList(); -httpActionAsync(callback, new TypeReference>() {}); -} - -/********************************************************** - * Active channels - * - * Create a new channel (originate). - * The new channel is created immediately and a snapshot of it returned. If a Stasis application is provided it will be automatically subscribed to the originated channel for further events and updates. - *********************************************************/ -private void buildOriginate(String endpoint, String extension, String context, long priority, String app, String appArgs, String callerId, int timeout) { -reset(); -url = "/channels"; -method = "POST"; -lParamQuery.add( HttpParam.build( "endpoint", endpoint) ); -lParamQuery.add( HttpParam.build( "extension", extension) ); -lParamQuery.add( HttpParam.build( "context", context) ); -lParamQuery.add( HttpParam.build( "priority", priority) ); -lParamQuery.add( HttpParam.build( "app", app) ); -lParamQuery.add( HttpParam.build( "appArgs", appArgs) ); -lParamQuery.add( HttpParam.build( "callerId", callerId) ); -lParamQuery.add( HttpParam.build( "timeout", timeout) ); -lE.add( HttpResponse.build( 400, "Invalid parameters for originating a channel.") ); -} - -@Override -public Channel originate(String endpoint, String extension, String context, long priority, String app, String appArgs, String callerId, int timeout) throws RestException { -buildOriginate(endpoint, extension, context, priority, app, appArgs, callerId, timeout); -String json = httpActionSync(); -return deserializeJson( json, Channel_impl_ari_0_0_1.class ); -} - -@Override -public void originate(String endpoint, String extension, String context, long priority, String app, String appArgs, String callerId, int timeout, AriCallback callback) { -buildOriginate(endpoint, extension, context, priority, app, appArgs, callerId, timeout); -httpActionAsync(callback, Channel_impl_ari_0_0_1.class); -} - -/********************************************************** - * Active channel - * - * Channel details. - *********************************************************/ -private void buildGet(String channelId) { -reset(); -url = "/channels/" + channelId + ""; -method = "GET"; -lE.add( HttpResponse.build( 404, "Channel not found") ); -} - -@Override -public Channel get(String channelId) throws RestException { -buildGet(channelId); -String json = httpActionSync(); -return deserializeJson( json, Channel_impl_ari_0_0_1.class ); -} - -@Override -public void get(String channelId, AriCallback callback) { -buildGet(channelId); -httpActionAsync(callback, Channel_impl_ari_0_0_1.class); -} - -/********************************************************** - * Active channel - * - * Delete (i.e. hangup) a channel. - *********************************************************/ -private void buildHangup(String channelId, String reason) { -reset(); -url = "/channels/" + channelId + ""; -method = "DELETE"; -lParamQuery.add( HttpParam.build( "reason", reason) ); -lE.add( HttpResponse.build( 400, "Invalid reason for hangup provided") ); -lE.add( HttpResponse.build( 404, "Channel not found") ); -} - -@Override -public void hangup(String channelId, String reason) throws RestException { -buildHangup(channelId, reason); -String json = httpActionSync(); -} - -@Override -public void hangup(String channelId, String reason, AriCallback callback) { -buildHangup(channelId, reason); -httpActionAsync(callback); -} - -/********************************************************** - * Answer a channel - * - * Answer a channel. - *********************************************************/ -private void buildAnswer(String channelId) { -reset(); -url = "/channels/" + channelId + "/answer"; -method = "POST"; -lE.add( HttpResponse.build( 404, "Channel not found") ); -lE.add( HttpResponse.build( 409, "Channel not in a Stasis application") ); -} - -@Override -public void answer(String channelId) throws RestException { -buildAnswer(channelId); -String json = httpActionSync(); -} - -@Override -public void answer(String channelId, AriCallback callback) { -buildAnswer(channelId); -httpActionAsync(callback); -} - -/********************************************************** - * Exit application; continue execution in the dialplan - * - * Exit application; continue execution in the dialplan. - *********************************************************/ -private void buildContinueInDialplan(String channelId, String context, String extension, int priority) { -reset(); -url = "/channels/" + channelId + "/continue"; -method = "POST"; -lParamQuery.add( HttpParam.build( "context", context) ); -lParamQuery.add( HttpParam.build( "extension", extension) ); -lParamQuery.add( HttpParam.build( "priority", priority) ); -lE.add( HttpResponse.build( 404, "Channel not found") ); -lE.add( HttpResponse.build( 409, "Channel not in a Stasis application") ); -} - -@Override -public void continueInDialplan(String channelId, String context, String extension, int priority) throws RestException { -buildContinueInDialplan(channelId, context, extension, priority); -String json = httpActionSync(); -} - -@Override -public void continueInDialplan(String channelId, String context, String extension, int priority, AriCallback callback) { -buildContinueInDialplan(channelId, context, extension, priority); -httpActionAsync(callback); -} - -/********************************************************** - * Send DTMF to a channel - * - * Send provided DTMF to a given channel. - *********************************************************/ -private void buildSendDTMF(String channelId, String dtmf, int before, int between, int duration, int after) { -reset(); -url = "/channels/" + channelId + "/dtmf"; -method = "POST"; -lParamQuery.add( HttpParam.build( "dtmf", dtmf) ); -lParamQuery.add( HttpParam.build( "before", before) ); -lParamQuery.add( HttpParam.build( "between", between) ); -lParamQuery.add( HttpParam.build( "duration", duration) ); -lParamQuery.add( HttpParam.build( "after", after) ); -lE.add( HttpResponse.build( 400, "DTMF is required") ); -lE.add( HttpResponse.build( 404, "Channel not found") ); -lE.add( HttpResponse.build( 409, "Channel not in a Stasis application") ); -} - -@Override -public void sendDTMF(String channelId, String dtmf, int before, int between, int duration, int after) throws RestException { -buildSendDTMF(channelId, dtmf, before, between, duration, after); -String json = httpActionSync(); -} - -@Override -public void sendDTMF(String channelId, String dtmf, int before, int between, int duration, int after, AriCallback callback) { -buildSendDTMF(channelId, dtmf, before, between, duration, after); -httpActionAsync(callback); -} - -/********************************************************** - * Put a channel on hold - * - * Hold a channel. - *********************************************************/ -private void buildHold(String channelId) { -reset(); -url = "/channels/" + channelId + "/hold"; -method = "POST"; -lE.add( HttpResponse.build( 404, "Channel not found") ); -lE.add( HttpResponse.build( 409, "Channel not in a Stasis application") ); -} - -@Override -public void hold(String channelId) throws RestException { -buildHold(channelId); -String json = httpActionSync(); -} - -@Override -public void hold(String channelId, AriCallback callback) { -buildHold(channelId); -httpActionAsync(callback); -} - -/********************************************************** - * Put a channel on hold - * - * Remove a channel from hold. - *********************************************************/ -private void buildUnhold(String channelId) { -reset(); -url = "/channels/" + channelId + "/hold"; -method = "DELETE"; -lE.add( HttpResponse.build( 404, "Channel not found") ); -lE.add( HttpResponse.build( 409, "Channel not in a Stasis application") ); -} - -@Override -public void unhold(String channelId) throws RestException { -buildUnhold(channelId); -String json = httpActionSync(); -} - -@Override -public void unhold(String channelId, AriCallback callback) { -buildUnhold(channelId); -httpActionAsync(callback); -} - -/********************************************************** - * Play music on hold to a channel - * - * Play music on hold to a channel. - * Using media operations such as /play on a channel playing MOH in this manner will suspend MOH without resuming automatically. If continuing music on hold is desired, the stasis application must reinitiate music on hold. - *********************************************************/ -private void buildStartMoh(String channelId, String mohClass) { -reset(); -url = "/channels/" + channelId + "/moh"; -method = "POST"; -lParamQuery.add( HttpParam.build( "mohClass", mohClass) ); -lE.add( HttpResponse.build( 404, "Channel not found") ); -lE.add( HttpResponse.build( 409, "Channel not in a Stasis application") ); -} - -@Override -public void startMoh(String channelId, String mohClass) throws RestException { -buildStartMoh(channelId, mohClass); -String json = httpActionSync(); -} - -@Override -public void startMoh(String channelId, String mohClass, AriCallback callback) { -buildStartMoh(channelId, mohClass); -httpActionAsync(callback); -} - -/********************************************************** - * Play music on hold to a channel - * - * Stop playing music on hold to a channel. - *********************************************************/ -private void buildStopMoh(String channelId) { -reset(); -url = "/channels/" + channelId + "/moh"; -method = "DELETE"; -lE.add( HttpResponse.build( 404, "Channel not found") ); -lE.add( HttpResponse.build( 409, "Channel not in a Stasis application") ); -} - -@Override -public void stopMoh(String channelId) throws RestException { -buildStopMoh(channelId); -String json = httpActionSync(); -} - -@Override -public void stopMoh(String channelId, AriCallback callback) { -buildStopMoh(channelId); -httpActionAsync(callback); -} - -/********************************************************** - * Mute a channel - * - * Mute a channel. - *********************************************************/ -private void buildMute(String channelId, String direction) { -reset(); -url = "/channels/" + channelId + "/mute"; -method = "POST"; -lParamQuery.add( HttpParam.build( "direction", direction) ); -lE.add( HttpResponse.build( 404, "Channel not found") ); -lE.add( HttpResponse.build( 409, "Channel not in a Stasis application") ); -} - -@Override -public void mute(String channelId, String direction) throws RestException { -buildMute(channelId, direction); -String json = httpActionSync(); -} - -@Override -public void mute(String channelId, String direction, AriCallback callback) { -buildMute(channelId, direction); -httpActionAsync(callback); -} - -/********************************************************** - * Mute a channel - * - * Unmute a channel. - *********************************************************/ -private void buildUnmute(String channelId, String direction) { -reset(); -url = "/channels/" + channelId + "/mute"; -method = "DELETE"; -lParamQuery.add( HttpParam.build( "direction", direction) ); -lE.add( HttpResponse.build( 404, "Channel not found") ); -lE.add( HttpResponse.build( 409, "Channel not in a Stasis application") ); -} - -@Override -public void unmute(String channelId, String direction) throws RestException { -buildUnmute(channelId, direction); -String json = httpActionSync(); -} - -@Override -public void unmute(String channelId, String direction, AriCallback callback) { -buildUnmute(channelId, direction); -httpActionAsync(callback); -} - -/********************************************************** - * Play media to a channel - * - * Start playback of media. - * The media URI may be any of a number of URI's. Currently sound: and recording: URI's are supported. This operation creates a playback resource that can be used to control the playback of media (pause, rewind, fast forward, etc.) - *********************************************************/ -private void buildPlay(String channelId, String media, String lang, int offsetms, int skipms) { -reset(); -url = "/channels/" + channelId + "/play"; -method = "POST"; -lParamQuery.add( HttpParam.build( "media", media) ); -lParamQuery.add( HttpParam.build( "lang", lang) ); -lParamQuery.add( HttpParam.build( "offsetms", offsetms) ); -lParamQuery.add( HttpParam.build( "skipms", skipms) ); -lE.add( HttpResponse.build( 404, "Channel not found") ); -lE.add( HttpResponse.build( 409, "Channel not in a Stasis application") ); -} - -@Override -public Playback play(String channelId, String media, String lang, int offsetms, int skipms) throws RestException { -buildPlay(channelId, media, lang, offsetms, skipms); -String json = httpActionSync(); -return deserializeJson( json, Playback_impl_ari_0_0_1.class ); -} - -@Override -public void play(String channelId, String media, String lang, int offsetms, int skipms, AriCallback callback) { -buildPlay(channelId, media, lang, offsetms, skipms); -httpActionAsync(callback, Playback_impl_ari_0_0_1.class); -} - -/********************************************************** - * Record audio from a channel - * - * Start a recording. - * Record audio from a channel. Note that this will not capture audio sent to the channel. The bridge itself has a record feature if that's what you want. - *********************************************************/ -private void buildRecord(String channelId, String name, String format, int maxDurationSeconds, int maxSilenceSeconds, String ifExists, boolean beep, String terminateOn) { -reset(); -url = "/channels/" + channelId + "/record"; -method = "POST"; -lParamQuery.add( HttpParam.build( "name", name) ); -lParamQuery.add( HttpParam.build( "format", format) ); -lParamQuery.add( HttpParam.build( "maxDurationSeconds", maxDurationSeconds) ); -lParamQuery.add( HttpParam.build( "maxSilenceSeconds", maxSilenceSeconds) ); -lParamQuery.add( HttpParam.build( "ifExists", ifExists) ); -lParamQuery.add( HttpParam.build( "beep", beep) ); -lParamQuery.add( HttpParam.build( "terminateOn", terminateOn) ); -lE.add( HttpResponse.build( 400, "Invalid parameters") ); -lE.add( HttpResponse.build( 404, "Channel not found") ); -lE.add( HttpResponse.build( 409, "Channel is not in a Stasis application; the channel is currently bridged with other hcannels; A recording with the same name already exists on the system and can not be overwritten because it is in progress or ifExists=fail") ); -lE.add( HttpResponse.build( 422, "The format specified is unknown on this system") ); -} - -@Override -public LiveRecording record(String channelId, String name, String format, int maxDurationSeconds, int maxSilenceSeconds, String ifExists, boolean beep, String terminateOn) throws RestException { -buildRecord(channelId, name, format, maxDurationSeconds, maxSilenceSeconds, ifExists, beep, terminateOn); -String json = httpActionSync(); -return deserializeJson( json, LiveRecording_impl_ari_0_0_1.class ); -} - -@Override -public void record(String channelId, String name, String format, int maxDurationSeconds, int maxSilenceSeconds, String ifExists, boolean beep, String terminateOn, AriCallback callback) { -buildRecord(channelId, name, format, maxDurationSeconds, maxSilenceSeconds, ifExists, beep, terminateOn); -httpActionAsync(callback, LiveRecording_impl_ari_0_0_1.class); -} - -/********************************************************** - * Send a ringing indication to a channel - * - * Indicate ringing to a channel. - *********************************************************/ -private void buildRing(String channelId) { -reset(); -url = "/channels/" + channelId + "/ring"; -method = "POST"; -lE.add( HttpResponse.build( 404, "Channel not found") ); -lE.add( HttpResponse.build( 409, "Channel not in a Stasis application") ); -} - -@Override -public void ring(String channelId) throws RestException { -buildRing(channelId); -String json = httpActionSync(); -} - -@Override -public void ring(String channelId, AriCallback callback) { -buildRing(channelId); -httpActionAsync(callback); -} - -/********************************************************** - * Send a ringing indication to a channel - * - * Stop ringing indication on a channel if locally generated. - *********************************************************/ -private void buildRingStop(String channelId) { -reset(); -url = "/channels/" + channelId + "/ring"; -method = "DELETE"; -lE.add( HttpResponse.build( 404, "Channel not found") ); -lE.add( HttpResponse.build( 409, "Channel not in a Stasis application") ); -} - -@Override -public void ringStop(String channelId) throws RestException { -buildRingStop(channelId); -String json = httpActionSync(); -} - -@Override -public void ringStop(String channelId, AriCallback callback) { -buildRingStop(channelId); -httpActionAsync(callback); -} - -/********************************************************** - * Play silence to a channel - * - * Play silence to a channel. - * Using media operations such as /play on a channel playing silence in this manner will suspend silence without resuming automatically. - *********************************************************/ -private void buildStartSilence(String channelId) { -reset(); -url = "/channels/" + channelId + "/silence"; -method = "POST"; -lE.add( HttpResponse.build( 404, "Channel not found") ); -lE.add( HttpResponse.build( 409, "Channel not in a Stasis application") ); -} - -@Override -public void startSilence(String channelId) throws RestException { -buildStartSilence(channelId); -String json = httpActionSync(); -} - -@Override -public void startSilence(String channelId, AriCallback callback) { -buildStartSilence(channelId); -httpActionAsync(callback); -} - -/********************************************************** - * Play silence to a channel - * - * Stop playing silence to a channel. - *********************************************************/ -private void buildStopSilence(String channelId) { -reset(); -url = "/channels/" + channelId + "/silence"; -method = "DELETE"; -lE.add( HttpResponse.build( 404, "Channel not found") ); -lE.add( HttpResponse.build( 409, "Channel not in a Stasis application") ); -} - -@Override -public void stopSilence(String channelId) throws RestException { -buildStopSilence(channelId); -String json = httpActionSync(); -} - -@Override -public void stopSilence(String channelId, AriCallback callback) { -buildStopSilence(channelId); -httpActionAsync(callback); -} - -/********************************************************** - * Snoop (spy/whisper) on a channel - * - * Start snooping. - * Snoop (spy/whisper) on a specific channel. - *********************************************************/ -private void buildSnoopChannel(String channelId, String spy, String whisper, String app, String appArgs) { -reset(); -url = "/channels/" + channelId + "/snoop"; -method = "POST"; -lParamQuery.add( HttpParam.build( "spy", spy) ); -lParamQuery.add( HttpParam.build( "whisper", whisper) ); -lParamQuery.add( HttpParam.build( "app", app) ); -lParamQuery.add( HttpParam.build( "appArgs", appArgs) ); -lE.add( HttpResponse.build( 400, "Invalid parameters") ); -lE.add( HttpResponse.build( 404, "Channel not found") ); -} - -@Override -public Channel snoopChannel(String channelId, String spy, String whisper, String app, String appArgs) throws RestException { -buildSnoopChannel(channelId, spy, whisper, app, appArgs); -String json = httpActionSync(); -return deserializeJson( json, Channel_impl_ari_0_0_1.class ); -} - -@Override -public void snoopChannel(String channelId, String spy, String whisper, String app, String appArgs, AriCallback callback) { -buildSnoopChannel(channelId, spy, whisper, app, appArgs); -httpActionAsync(callback, Channel_impl_ari_0_0_1.class); -} - -/********************************************************** - * Variables on a channel - * - * Get the value of a channel variable or function. - *********************************************************/ -private void buildGetChannelVar(String channelId, String variable) { -reset(); -url = "/channels/" + channelId + "/variable"; -method = "GET"; -lParamQuery.add( HttpParam.build( "variable", variable) ); -lE.add( HttpResponse.build( 400, "Missing variable parameter.") ); -lE.add( HttpResponse.build( 404, "Channel not found") ); -lE.add( HttpResponse.build( 409, "Channel not in a Stasis application") ); -} - -@Override -public Variable getChannelVar(String channelId, String variable) throws RestException { -buildGetChannelVar(channelId, variable); -String json = httpActionSync(); -return deserializeJson( json, Variable_impl_ari_0_0_1.class ); -} - -@Override -public void getChannelVar(String channelId, String variable, AriCallback callback) { -buildGetChannelVar(channelId, variable); -httpActionAsync(callback, Variable_impl_ari_0_0_1.class); -} - -/********************************************************** - * Variables on a channel - * - * Set the value of a channel variable or function. - *********************************************************/ -private void buildSetChannelVar(String channelId, String variable, String value) { -reset(); -url = "/channels/" + channelId + "/variable"; -method = "POST"; -lParamQuery.add( HttpParam.build( "variable", variable) ); -lParamQuery.add( HttpParam.build( "value", value) ); -lE.add( HttpResponse.build( 400, "Missing variable parameter.") ); -lE.add( HttpResponse.build( 404, "Channel not found") ); -lE.add( HttpResponse.build( 409, "Channel not in a Stasis application") ); -} - -@Override -public void setChannelVar(String channelId, String variable, String value) throws RestException { -buildSetChannelVar(channelId, variable, value); -String json = httpActionSync(); -} - -@Override -public void setChannelVar(String channelId, String variable, String value, AriCallback callback) { -buildSetChannelVar(channelId, variable, value); -httpActionAsync(callback); -} - -/********************************************************** - * - * - * @since ari_1_5_0 - *********************************************************/ -public void play(String channelId, String media, String lang, int offsetms, int skipms, String playbackId, AriCallback callback){ - throw new UnsupportedOperationException("Method availble from ..."); -}; - -/********************************************************** - * - * - * @since ari_1_8_0 - *********************************************************/ -public void redirect(String channelId, String endpoint, AriCallback callback){ - throw new UnsupportedOperationException("Method availble from ..."); -}; - -/********************************************************** - * Start snooping. - * Snoop (spy/whisper) on a specific channel. - * - * @since ari_1_5_0 - *********************************************************/ -public Channel snoopChannelWithId(String channelId, String snoopId, String spy, String whisper, String app, String appArgs) throws RestException{ - throw new UnsupportedOperationException("Method availble from ..."); -}; - -/********************************************************** - * Start playback of media and specify the playbackId. - * The media URI may be any of a number of URI's. Currently sound: and recording: URI's are supported. This operation creates a playback resource that can be used to control the playback of media (pause, rewind, fast forward, etc.) - * - * @since ari_1_5_0 - *********************************************************/ -public Playback playWithId(String channelId, String playbackId, String media, String lang, int offsetms, int skipms) throws RestException{ - throw new UnsupportedOperationException("Method availble from ..."); -}; - -/********************************************************** - * - * - * @since ari_1_5_0 - *********************************************************/ -public void playWithId(String channelId, String playbackId, String media, String lang, int offsetms, int skipms, AriCallback callback){ - throw new UnsupportedOperationException("Method availble from ..."); -}; - -/********************************************************** - * - * - * @since ari_1_7_0 - *********************************************************/ -public void originate(String endpoint, String extension, String context, long priority, String label, String app, String appArgs, String callerId, int timeout, Map variables, String channelId, String otherChannelId, String originator, AriCallback callback){ - throw new UnsupportedOperationException("Method availble from ..."); -}; - -/********************************************************** - * Create a new channel (originate with id). - * The new channel is created immediately and a snapshot of it returned. If a Stasis application is provided it will be automatically subscribed to the originated channel for further events and updates. - * - * @since ari_1_5_0 - *********************************************************/ -public Channel originateWithId(String channelId, String endpoint, String extension, String context, long priority, String app, String appArgs, String callerId, int timeout, Map variables, String otherChannelId) throws RestException{ - throw new UnsupportedOperationException("Method availble from ..."); -}; - -/********************************************************** - * - * - * @since ari_1_10_0 - *********************************************************/ -public void dial(String channelId, String caller, int timeout, AriCallback callback){ - throw new UnsupportedOperationException("Method availble from ..."); -}; - -/********************************************************** - * - * - * @since ari_1_5_0 - *********************************************************/ -public void originate(String endpoint, String extension, String context, long priority, String app, String appArgs, String callerId, int timeout, Map variables, String channelId, String otherChannelId, AriCallback callback){ - throw new UnsupportedOperationException("Method availble from ..."); -}; - -/********************************************************** - * - * - * @since ari_1_5_0 - *********************************************************/ -public void snoopChannelWithId(String channelId, String snoopId, String spy, String whisper, String app, String appArgs, AriCallback callback){ - throw new UnsupportedOperationException("Method availble from ..."); -}; - -/********************************************************** - * - * - * @since ari_1_10_0 - *********************************************************/ -public void originateWithId(String channelId, String endpoint, String extension, String context, long priority, String label, String app, String appArgs, String callerId, int timeout, Map variables, String otherChannelId, String originator, String formats, AriCallback callback){ - throw new UnsupportedOperationException("Method availble from ..."); -}; - -/********************************************************** - * Exit application{ - throw new UnsupportedOperationException("Method availble from ..."); -}; continue execution in the dialplan. - * - * - * @since ari_1_7_0 - *********************************************************/ -public void continueInDialplan(String channelId, String context, String extension, int priority, String label) throws RestException{ - throw new UnsupportedOperationException("Method availble from ..."); -}; - -/********************************************************** - * Create a new channel (originate). - * The new channel is created immediately and a snapshot of it returned. If a Stasis application is provided it will be automatically subscribed to the originated channel for further events and updates. - * - * @since ari_1_7_0 - *********************************************************/ -public Channel originate(String endpoint, String extension, String context, long priority, String label, String app, String appArgs, String callerId, int timeout, Map variables, String channelId, String otherChannelId, String originator) throws RestException{ - throw new UnsupportedOperationException("Method availble from ..."); -}; - -/********************************************************** - * - * - * @since ari_1_5_0 - *********************************************************/ -public void originateWithId(String channelId, String endpoint, String extension, String context, long priority, String app, String appArgs, String callerId, int timeout, Map variables, String otherChannelId, AriCallback callback){ - throw new UnsupportedOperationException("Method availble from ..."); -}; - -/********************************************************** - * Create a new channel (originate with id). - * The new channel is created immediately and a snapshot of it returned. If a Stasis application is provided it will be automatically subscribed to the originated channel for further events and updates. - * - * @since ari_1_7_0 - *********************************************************/ -public Channel originateWithId(String channelId, String endpoint, String extension, String context, long priority, String label, String app, String appArgs, String callerId, int timeout, Map variables, String otherChannelId, String originator) throws RestException{ - throw new UnsupportedOperationException("Method availble from ..."); -}; - -/********************************************************** - * Create a new channel (originate). - * The new channel is created immediately and a snapshot of it returned. If a Stasis application is provided it will be automatically subscribed to the originated channel for further events and updates. - * - * @since ari_1_10_0 - *********************************************************/ -public Channel originate(String endpoint, String extension, String context, long priority, String label, String app, String appArgs, String callerId, int timeout, Map variables, String channelId, String otherChannelId, String originator, String formats) throws RestException{ - throw new UnsupportedOperationException("Method availble from ..."); -}; - -/********************************************************** - * Create a new channel (originate with id). - * The new channel is created immediately and a snapshot of it returned. If a Stasis application is provided it will be automatically subscribed to the originated channel for further events and updates. - * - * @since ari_1_10_0 - *********************************************************/ -public Channel originateWithId(String channelId, String endpoint, String extension, String context, long priority, String label, String app, String appArgs, String callerId, int timeout, Map variables, String otherChannelId, String originator, String formats) throws RestException{ - throw new UnsupportedOperationException("Method availble from ..."); -}; - -/********************************************************** - * - * - * @since ari_1_7_0 - *********************************************************/ -public void originateWithId(String channelId, String endpoint, String extension, String context, long priority, String label, String app, String appArgs, String callerId, int timeout, Map variables, String otherChannelId, String originator, AriCallback callback){ - throw new UnsupportedOperationException("Method availble from ..."); -}; - -/********************************************************** - * - * - * @since ari_1_7_0 - *********************************************************/ -public void continueInDialplan(String channelId, String context, String extension, int priority, String label, AriCallback callback){ - throw new UnsupportedOperationException("Method availble from ..."); -}; - -/********************************************************** - * Dial a created channel. - * - * - * @since ari_1_10_0 - *********************************************************/ -public void dial(String channelId, String caller, int timeout) throws RestException{ - throw new UnsupportedOperationException("Method availble from ..."); -}; - -/********************************************************** - * - * - * @since ari_1_10_0 - *********************************************************/ -public void create(String endpoint, String app, String appArgs, String channelId, String otherChannelId, String originator, String formats, AriCallback callback){ - throw new UnsupportedOperationException("Method availble from ..."); -}; - -/********************************************************** - * Create channel. - * - * - * @since ari_1_10_0 - *********************************************************/ -public Channel create(String endpoint, String app, String appArgs, String channelId, String otherChannelId, String originator, String formats) throws RestException{ - throw new UnsupportedOperationException("Method availble from ..."); -}; - -/********************************************************** - * - * - * @since ari_1_5_0 - *********************************************************/ -public void snoopChannel(String channelId, String spy, String whisper, String app, String appArgs, String snoopId, AriCallback callback){ - throw new UnsupportedOperationException("Method availble from ..."); -}; - -/********************************************************** - * - * - * @since ari_1_10_0 - *********************************************************/ -public void originate(String endpoint, String extension, String context, long priority, String label, String app, String appArgs, String callerId, int timeout, Map variables, String channelId, String otherChannelId, String originator, String formats, AriCallback callback){ - throw new UnsupportedOperationException("Method availble from ..."); -}; - -/********************************************************** - * Start playback of media. - * The media URI may be any of a number of URI's. Currently sound:, recording:, number:, digits:, characters:, and tone: URI's are supported. This operation creates a playback resource that can be used to control the playback of media (pause, rewind, fast forward, etc.) - * - * @since ari_1_5_0 - *********************************************************/ -public Playback play(String channelId, String media, String lang, int offsetms, int skipms, String playbackId) throws RestException{ - throw new UnsupportedOperationException("Method availble from ..."); -}; - -/********************************************************** - * Create a new channel (originate). - * The new channel is created immediately and a snapshot of it returned. If a Stasis application is provided it will be automatically subscribed to the originated channel for further events and updates. - * - * @since ari_1_5_0 - *********************************************************/ -public Channel originate(String endpoint, String extension, String context, long priority, String app, String appArgs, String callerId, int timeout, Map variables, String channelId, String otherChannelId) throws RestException{ - throw new UnsupportedOperationException("Method availble from ..."); -}; - -/********************************************************** - * Start snooping. - * Snoop (spy/whisper) on a specific channel. - * - * @since ari_1_5_0 - *********************************************************/ -public Channel snoopChannel(String channelId, String spy, String whisper, String app, String appArgs, String snoopId) throws RestException{ - throw new UnsupportedOperationException("Method availble from ..."); -}; - -/********************************************************** - * Redirect the channel to a different location. - * - * - * @since ari_1_8_0 - *********************************************************/ -public void redirect(String channelId, String endpoint) throws RestException{ - throw new UnsupportedOperationException("Method availble from ..."); -}; - -}; - diff --git a/classes/ch/loway/oss/ari4java/generated/ari_0_0_1/actions/ActionDeviceStates_impl_ari_0_0_1.java b/classes/ch/loway/oss/ari4java/generated/ari_0_0_1/actions/ActionDeviceStates_impl_ari_0_0_1.java deleted file mode 100644 index 66735e3f..00000000 --- a/classes/ch/loway/oss/ari4java/generated/ari_0_0_1/actions/ActionDeviceStates_impl_ari_0_0_1.java +++ /dev/null @@ -1,131 +0,0 @@ -package ch.loway.oss.ari4java.generated.ari_0_0_1.actions; - -// ---------------------------------------------------- -// THIS CLASS WAS GENERATED AUTOMATICALLY -// PLEASE DO NOT EDIT -// Generated on: Tue Dec 19 09:55:49 CET 2017 -// ---------------------------------------------------- - -import ch.loway.oss.ari4java.generated.*; -import java.util.Date; -import java.util.List; -import java.util.Map; -import java.util.ArrayList; -import ch.loway.oss.ari4java.tools.BaseAriAction; -import ch.loway.oss.ari4java.tools.RestException; -import ch.loway.oss.ari4java.tools.AriCallback; -import ch.loway.oss.ari4java.tools.HttpParam; -import ch.loway.oss.ari4java.tools.HttpResponse; -import com.fasterxml.jackson.core.type.TypeReference; -import ch.loway.oss.ari4java.generated.ari_0_0_1.models.*; - -/********************************************************** - * - * Generated by: Apis - *********************************************************/ - - -public class ActionDeviceStates_impl_ari_0_0_1 extends BaseAriAction implements ActionDeviceStates { -/********************************************************** - * Device states - * - * List all ARI controlled device states. - *********************************************************/ -private void buildList() { -reset(); -url = "/deviceStates"; -method = "GET"; -} - -@Override -public List list() throws RestException { -buildList(); -String json = httpActionSync(); -return deserializeJsonAsAbstractList( json, - new TypeReference>() {} ); -} - -@Override -public void list(AriCallback> callback) { -buildList(); -httpActionAsync(callback, new TypeReference>() {}); -} - -/********************************************************** - * Device state - * - * Retrieve the current state of a device. - *********************************************************/ -private void buildGet(String deviceName) { -reset(); -url = "/deviceStates/" + deviceName + ""; -method = "GET"; -} - -@Override -public DeviceState get(String deviceName) throws RestException { -buildGet(deviceName); -String json = httpActionSync(); -return deserializeJson( json, DeviceState_impl_ari_0_0_1.class ); -} - -@Override -public void get(String deviceName, AriCallback callback) { -buildGet(deviceName); -httpActionAsync(callback, DeviceState_impl_ari_0_0_1.class); -} - -/********************************************************** - * Device state - * - * Change the state of a device controlled by ARI. (Note - implicitly creates the device state). - *********************************************************/ -private void buildUpdate(String deviceName, String deviceState) { -reset(); -url = "/deviceStates/" + deviceName + ""; -method = "PUT"; -lParamQuery.add( HttpParam.build( "deviceState", deviceState) ); -lE.add( HttpResponse.build( 404, "Device name is missing") ); -lE.add( HttpResponse.build( 409, "Uncontrolled device specified") ); -} - -@Override -public void update(String deviceName, String deviceState) throws RestException { -buildUpdate(deviceName, deviceState); -String json = httpActionSync(); -} - -@Override -public void update(String deviceName, String deviceState, AriCallback callback) { -buildUpdate(deviceName, deviceState); -httpActionAsync(callback); -} - -/********************************************************** - * Device state - * - * Destroy a device-state controlled by ARI. - *********************************************************/ -private void buildDelete(String deviceName) { -reset(); -url = "/deviceStates/" + deviceName + ""; -method = "DELETE"; -lE.add( HttpResponse.build( 404, "Device name is missing") ); -lE.add( HttpResponse.build( 409, "Uncontrolled device specified") ); -} - -@Override -public void delete(String deviceName) throws RestException { -buildDelete(deviceName); -String json = httpActionSync(); -} - -@Override -public void delete(String deviceName, AriCallback callback) { -buildDelete(deviceName); -httpActionAsync(callback); -} - -/** No missing signatures from interface */ -}; - diff --git a/classes/ch/loway/oss/ari4java/generated/ari_0_0_1/actions/ActionEndpoints_impl_ari_0_0_1.java b/classes/ch/loway/oss/ari4java/generated/ari_0_0_1/actions/ActionEndpoints_impl_ari_0_0_1.java deleted file mode 100644 index 73333a6a..00000000 --- a/classes/ch/loway/oss/ari4java/generated/ari_0_0_1/actions/ActionEndpoints_impl_ari_0_0_1.java +++ /dev/null @@ -1,144 +0,0 @@ -package ch.loway.oss.ari4java.generated.ari_0_0_1.actions; - -// ---------------------------------------------------- -// THIS CLASS WAS GENERATED AUTOMATICALLY -// PLEASE DO NOT EDIT -// Generated on: Tue Dec 19 09:55:49 CET 2017 -// ---------------------------------------------------- - -import ch.loway.oss.ari4java.generated.*; -import java.util.Date; -import java.util.List; -import java.util.Map; -import java.util.ArrayList; -import ch.loway.oss.ari4java.tools.BaseAriAction; -import ch.loway.oss.ari4java.tools.RestException; -import ch.loway.oss.ari4java.tools.AriCallback; -import ch.loway.oss.ari4java.tools.HttpParam; -import ch.loway.oss.ari4java.tools.HttpResponse; -import com.fasterxml.jackson.core.type.TypeReference; -import ch.loway.oss.ari4java.generated.ari_0_0_1.models.*; - -/********************************************************** - * - * Generated by: Apis - *********************************************************/ - - -public class ActionEndpoints_impl_ari_0_0_1 extends BaseAriAction implements ActionEndpoints { -/********************************************************** - * Asterisk endpoints - * - * List all endpoints. - *********************************************************/ -private void buildList() { -reset(); -url = "/endpoints"; -method = "GET"; -} - -@Override -public List list() throws RestException { -buildList(); -String json = httpActionSync(); -return deserializeJsonAsAbstractList( json, - new TypeReference>() {} ); -} - -@Override -public void list(AriCallback> callback) { -buildList(); -httpActionAsync(callback, new TypeReference>() {}); -} - -/********************************************************** - * Asterisk endpoints - * - * List available endoints for a given endpoint technology. - *********************************************************/ -private void buildListByTech(String tech) { -reset(); -url = "/endpoints/" + tech + ""; -method = "GET"; -lE.add( HttpResponse.build( 404, "Endpoints not found") ); -} - -@Override -public List listByTech(String tech) throws RestException { -buildListByTech(tech); -String json = httpActionSync(); -return deserializeJsonAsAbstractList( json, - new TypeReference>() {} ); -} - -@Override -public void listByTech(String tech, AriCallback> callback) { -buildListByTech(tech); -httpActionAsync(callback, new TypeReference>() {}); -} - -/********************************************************** - * Single endpoint - * - * Details for an endpoint. - *********************************************************/ -private void buildGet(String tech, String resource) { -reset(); -url = "/endpoints/" + tech + "/" + resource + ""; -method = "GET"; -lE.add( HttpResponse.build( 404, "Endpoints not found") ); -} - -@Override -public Endpoint get(String tech, String resource) throws RestException { -buildGet(tech, resource); -String json = httpActionSync(); -return deserializeJson( json, Endpoint_impl_ari_0_0_1.class ); -} - -@Override -public void get(String tech, String resource, AriCallback callback) { -buildGet(tech, resource); -httpActionAsync(callback, Endpoint_impl_ari_0_0_1.class); -} - -/********************************************************** - * Send a message to some endpoint in a technology. - * - * - * @since ari_1_5_0 - *********************************************************/ -public void sendMessageToEndpoint(String tech, String resource, String from, String body, Map variables) throws RestException{ - throw new UnsupportedOperationException("Method availble from ..."); -}; - -/********************************************************** - * Send a message to some technology URI or endpoint. - * - * - * @since ari_1_5_0 - *********************************************************/ -public void sendMessage(String to, String from, String body, Map variables) throws RestException{ - throw new UnsupportedOperationException("Method availble from ..."); -}; - -/********************************************************** - * - * - * @since ari_1_5_0 - *********************************************************/ -public void sendMessage(String to, String from, String body, Map variables, AriCallback callback){ - throw new UnsupportedOperationException("Method availble from ..."); -}; - -/********************************************************** - * - * - * @since ari_1_5_0 - *********************************************************/ -public void sendMessageToEndpoint(String tech, String resource, String from, String body, Map variables, AriCallback callback){ - throw new UnsupportedOperationException("Method availble from ..."); -}; - -}; - diff --git a/classes/ch/loway/oss/ari4java/generated/ari_0_0_1/actions/ActionEvents_impl_ari_0_0_1.java b/classes/ch/loway/oss/ari4java/generated/ari_0_0_1/actions/ActionEvents_impl_ari_0_0_1.java deleted file mode 100644 index 013960e7..00000000 --- a/classes/ch/loway/oss/ari4java/generated/ari_0_0_1/actions/ActionEvents_impl_ari_0_0_1.java +++ /dev/null @@ -1,92 +0,0 @@ -package ch.loway.oss.ari4java.generated.ari_0_0_1.actions; - -// ---------------------------------------------------- -// THIS CLASS WAS GENERATED AUTOMATICALLY -// PLEASE DO NOT EDIT -// Generated on: Tue Dec 19 09:55:49 CET 2017 -// ---------------------------------------------------- - -import ch.loway.oss.ari4java.generated.*; -import java.util.Date; -import java.util.List; -import java.util.Map; -import java.util.ArrayList; -import ch.loway.oss.ari4java.tools.BaseAriAction; -import ch.loway.oss.ari4java.tools.RestException; -import ch.loway.oss.ari4java.tools.AriCallback; -import ch.loway.oss.ari4java.tools.HttpParam; -import ch.loway.oss.ari4java.tools.HttpResponse; -import com.fasterxml.jackson.core.type.TypeReference; -import ch.loway.oss.ari4java.generated.ari_0_0_1.models.*; - -/********************************************************** - * - * Generated by: Apis - *********************************************************/ - - -public class ActionEvents_impl_ari_0_0_1 extends BaseAriAction implements ActionEvents { -/********************************************************** - * Events from Asterisk to applications - * - * WebSocket connection for events. - *********************************************************/ -private void buildEventWebsocket(String app) { -reset(); -url = "/events"; -method = "GET"; -lParamQuery.add( HttpParam.build( "app", app) ); -wsUpgrade = true; -} - -@Override -public Message eventWebsocket(String app) throws RestException { -throw new RestException("No synchronous operation on WebSocket"); -} - -@Override -public void eventWebsocket(String app, AriCallback callback) { -buildEventWebsocket(app); -httpActionAsync(callback, Message_impl_ari_0_0_1.class); -} - -/********************************************************** - * - * - * @since ari_1_5_0 - *********************************************************/ -public void userEvent(String eventName, String application, String source, Map variables, AriCallback callback){ - throw new UnsupportedOperationException("Method availble from ..."); -}; - -/********************************************************** - * WebSocket connection for events. - * - * - * @since ari_1_9_0 - *********************************************************/ -public Message eventWebsocket(String app, boolean subscribeAll) throws RestException{ - throw new UnsupportedOperationException("Method availble from ..."); -}; - -/********************************************************** - * Generate a user event. - * - * - * @since ari_1_5_0 - *********************************************************/ -public void userEvent(String eventName, String application, String source, Map variables) throws RestException{ - throw new UnsupportedOperationException("Method availble from ..."); -}; - -/********************************************************** - * - * - * @since ari_1_9_0 - *********************************************************/ -public void eventWebsocket(String app, boolean subscribeAll, AriCallback callback){ - throw new UnsupportedOperationException("Method availble from ..."); -}; - -}; - diff --git a/classes/ch/loway/oss/ari4java/generated/ari_0_0_1/actions/ActionPlaybacks_impl_ari_0_0_1.java b/classes/ch/loway/oss/ari4java/generated/ari_0_0_1/actions/ActionPlaybacks_impl_ari_0_0_1.java deleted file mode 100644 index 31ec8507..00000000 --- a/classes/ch/loway/oss/ari4java/generated/ari_0_0_1/actions/ActionPlaybacks_impl_ari_0_0_1.java +++ /dev/null @@ -1,107 +0,0 @@ -package ch.loway.oss.ari4java.generated.ari_0_0_1.actions; - -// ---------------------------------------------------- -// THIS CLASS WAS GENERATED AUTOMATICALLY -// PLEASE DO NOT EDIT -// Generated on: Tue Dec 19 09:55:49 CET 2017 -// ---------------------------------------------------- - -import ch.loway.oss.ari4java.generated.*; -import java.util.Date; -import java.util.List; -import java.util.Map; -import java.util.ArrayList; -import ch.loway.oss.ari4java.tools.BaseAriAction; -import ch.loway.oss.ari4java.tools.RestException; -import ch.loway.oss.ari4java.tools.AriCallback; -import ch.loway.oss.ari4java.tools.HttpParam; -import ch.loway.oss.ari4java.tools.HttpResponse; -import com.fasterxml.jackson.core.type.TypeReference; -import ch.loway.oss.ari4java.generated.ari_0_0_1.models.*; - -/********************************************************** - * - * Generated by: Apis - *********************************************************/ - - -public class ActionPlaybacks_impl_ari_0_0_1 extends BaseAriAction implements ActionPlaybacks { -/********************************************************** - * Control object for a playback operation. - * - * Get a playback's details. - *********************************************************/ -private void buildGet(String playbackId) { -reset(); -url = "/playbacks/" + playbackId + ""; -method = "GET"; -lE.add( HttpResponse.build( 404, "The playback cannot be found") ); -} - -@Override -public Playback get(String playbackId) throws RestException { -buildGet(playbackId); -String json = httpActionSync(); -return deserializeJson( json, Playback_impl_ari_0_0_1.class ); -} - -@Override -public void get(String playbackId, AriCallback callback) { -buildGet(playbackId); -httpActionAsync(callback, Playback_impl_ari_0_0_1.class); -} - -/********************************************************** - * Control object for a playback operation. - * - * Stop a playback. - *********************************************************/ -private void buildStop(String playbackId) { -reset(); -url = "/playbacks/" + playbackId + ""; -method = "DELETE"; -lE.add( HttpResponse.build( 404, "The playback cannot be found") ); -} - -@Override -public void stop(String playbackId) throws RestException { -buildStop(playbackId); -String json = httpActionSync(); -} - -@Override -public void stop(String playbackId, AriCallback callback) { -buildStop(playbackId); -httpActionAsync(callback); -} - -/********************************************************** - * Control object for a playback operation. - * - * Control a playback. - *********************************************************/ -private void buildControl(String playbackId, String operation) { -reset(); -url = "/playbacks/" + playbackId + "/control"; -method = "POST"; -lParamQuery.add( HttpParam.build( "operation", operation) ); -lE.add( HttpResponse.build( 400, "The provided operation parameter was invalid") ); -lE.add( HttpResponse.build( 404, "The playback cannot be found") ); -lE.add( HttpResponse.build( 409, "The operation cannot be performed in the playback's current state") ); -} - -@Override -public void control(String playbackId, String operation) throws RestException { -buildControl(playbackId, operation); -String json = httpActionSync(); -} - -@Override -public void control(String playbackId, String operation, AriCallback callback) { -buildControl(playbackId, operation); -httpActionAsync(callback); -} - -/** No missing signatures from interface */ -}; - diff --git a/classes/ch/loway/oss/ari4java/generated/ari_0_0_1/actions/ActionRecordings_impl_ari_0_0_1.java b/classes/ch/loway/oss/ari4java/generated/ari_0_0_1/actions/ActionRecordings_impl_ari_0_0_1.java deleted file mode 100644 index 71e61c50..00000000 --- a/classes/ch/loway/oss/ari4java/generated/ari_0_0_1/actions/ActionRecordings_impl_ari_0_0_1.java +++ /dev/null @@ -1,317 +0,0 @@ -package ch.loway.oss.ari4java.generated.ari_0_0_1.actions; - -// ---------------------------------------------------- -// THIS CLASS WAS GENERATED AUTOMATICALLY -// PLEASE DO NOT EDIT -// Generated on: Tue Dec 19 09:55:49 CET 2017 -// ---------------------------------------------------- - -import ch.loway.oss.ari4java.generated.*; -import java.util.Date; -import java.util.List; -import java.util.Map; -import java.util.ArrayList; -import ch.loway.oss.ari4java.tools.BaseAriAction; -import ch.loway.oss.ari4java.tools.RestException; -import ch.loway.oss.ari4java.tools.AriCallback; -import ch.loway.oss.ari4java.tools.HttpParam; -import ch.loway.oss.ari4java.tools.HttpResponse; -import com.fasterxml.jackson.core.type.TypeReference; -import ch.loway.oss.ari4java.generated.ari_0_0_1.models.*; - -/********************************************************** - * - * Generated by: Apis - *********************************************************/ - - -public class ActionRecordings_impl_ari_0_0_1 extends BaseAriAction implements ActionRecordings { -/********************************************************** - * A recording that is in progress - * - * List live recordings. - *********************************************************/ -private void buildGetLive(String recordingName) { -reset(); -url = "/recordings/live/" + recordingName + ""; -method = "GET"; -lE.add( HttpResponse.build( 404, "Recording not found") ); -} - -@Override -public LiveRecording getLive(String recordingName) throws RestException { -buildGetLive(recordingName); -String json = httpActionSync(); -return deserializeJson( json, LiveRecording_impl_ari_0_0_1.class ); -} - -@Override -public void getLive(String recordingName, AriCallback callback) { -buildGetLive(recordingName); -httpActionAsync(callback, LiveRecording_impl_ari_0_0_1.class); -} - -/********************************************************** - * A recording that is in progress - * - * Stop a live recording and discard it. - *********************************************************/ -private void buildCancel(String recordingName) { -reset(); -url = "/recordings/live/" + recordingName + ""; -method = "DELETE"; -lE.add( HttpResponse.build( 404, "Recording not found") ); -} - -@Override -public void cancel(String recordingName) throws RestException { -buildCancel(recordingName); -String json = httpActionSync(); -} - -@Override -public void cancel(String recordingName, AriCallback callback) { -buildCancel(recordingName); -httpActionAsync(callback); -} - -/********************************************************** - * - * - * Mute a live recording. - * Muting a recording suspends silence detection, which will be restarted when the recording is unmuted. - *********************************************************/ -private void buildMute(String recordingName) { -reset(); -url = "/recordings/live/" + recordingName + "/mute"; -method = "POST"; -lE.add( HttpResponse.build( 404, "Recording not found") ); -lE.add( HttpResponse.build( 409, "Recording not in session") ); -} - -@Override -public void mute(String recordingName) throws RestException { -buildMute(recordingName); -String json = httpActionSync(); -} - -@Override -public void mute(String recordingName, AriCallback callback) { -buildMute(recordingName); -httpActionAsync(callback); -} - -/********************************************************** - * - * - * Unmute a live recording. - *********************************************************/ -private void buildUnmute(String recordingName) { -reset(); -url = "/recordings/live/" + recordingName + "/mute"; -method = "DELETE"; -lE.add( HttpResponse.build( 404, "Recording not found") ); -lE.add( HttpResponse.build( 409, "Recording not in session") ); -} - -@Override -public void unmute(String recordingName) throws RestException { -buildUnmute(recordingName); -String json = httpActionSync(); -} - -@Override -public void unmute(String recordingName, AriCallback callback) { -buildUnmute(recordingName); -httpActionAsync(callback); -} - -/********************************************************** - * - * - * Pause a live recording. - * Pausing a recording suspends silence detection, which will be restarted when the recording is unpaused. Paused time is not included in the accounting for maxDurationSeconds. - *********************************************************/ -private void buildPause(String recordingName) { -reset(); -url = "/recordings/live/" + recordingName + "/pause"; -method = "POST"; -lE.add( HttpResponse.build( 404, "Recording not found") ); -lE.add( HttpResponse.build( 409, "Recording not in session") ); -} - -@Override -public void pause(String recordingName) throws RestException { -buildPause(recordingName); -String json = httpActionSync(); -} - -@Override -public void pause(String recordingName, AriCallback callback) { -buildPause(recordingName); -httpActionAsync(callback); -} - -/********************************************************** - * - * - * Unpause a live recording. - *********************************************************/ -private void buildUnpause(String recordingName) { -reset(); -url = "/recordings/live/" + recordingName + "/pause"; -method = "DELETE"; -lE.add( HttpResponse.build( 404, "Recording not found") ); -lE.add( HttpResponse.build( 409, "Recording not in session") ); -} - -@Override -public void unpause(String recordingName) throws RestException { -buildUnpause(recordingName); -String json = httpActionSync(); -} - -@Override -public void unpause(String recordingName, AriCallback callback) { -buildUnpause(recordingName); -httpActionAsync(callback); -} - -/********************************************************** - * - * - * Stop a live recording and store it. - *********************************************************/ -private void buildStop(String recordingName) { -reset(); -url = "/recordings/live/" + recordingName + "/stop"; -method = "POST"; -lE.add( HttpResponse.build( 404, "Recording not found") ); -} - -@Override -public void stop(String recordingName) throws RestException { -buildStop(recordingName); -String json = httpActionSync(); -} - -@Override -public void stop(String recordingName, AriCallback callback) { -buildStop(recordingName); -httpActionAsync(callback); -} - -/********************************************************** - * Recordings - * - * List recordings that are complete. - *********************************************************/ -private void buildListStored() { -reset(); -url = "/recordings/stored"; -method = "GET"; -} - -@Override -public List listStored() throws RestException { -buildListStored(); -String json = httpActionSync(); -return deserializeJsonAsAbstractList( json, - new TypeReference>() {} ); -} - -@Override -public void listStored(AriCallback> callback) { -buildListStored(); -httpActionAsync(callback, new TypeReference>() {}); -} - -/********************************************************** - * Individual recording - * - * Get a stored recording's details. - *********************************************************/ -private void buildGetStored(String recordingName) { -reset(); -url = "/recordings/stored/" + recordingName + ""; -method = "GET"; -lE.add( HttpResponse.build( 404, "Recording not found") ); -} - -@Override -public StoredRecording getStored(String recordingName) throws RestException { -buildGetStored(recordingName); -String json = httpActionSync(); -return deserializeJson( json, StoredRecording_impl_ari_0_0_1.class ); -} - -@Override -public void getStored(String recordingName, AriCallback callback) { -buildGetStored(recordingName); -httpActionAsync(callback, StoredRecording_impl_ari_0_0_1.class); -} - -/********************************************************** - * Individual recording - * - * Delete a stored recording. - *********************************************************/ -private void buildDeleteStored(String recordingName) { -reset(); -url = "/recordings/stored/" + recordingName + ""; -method = "DELETE"; -lE.add( HttpResponse.build( 404, "Recording not found") ); -} - -@Override -public void deleteStored(String recordingName) throws RestException { -buildDeleteStored(recordingName); -String json = httpActionSync(); -} - -@Override -public void deleteStored(String recordingName, AriCallback callback) { -buildDeleteStored(recordingName); -httpActionAsync(callback); -} - -/********************************************************** - * Copy a stored recording. - * - * - * @since ari_1_5_0 - *********************************************************/ -public StoredRecording copyStored(String recordingName, String destinationRecordingName) throws RestException{ - throw new UnsupportedOperationException("Method availble from ..."); -}; - -/********************************************************** - * - * - * @since ari_1_10_0 - *********************************************************/ -public void getStoredFile(String recordingName, AriCallback callback){ - throw new UnsupportedOperationException("Method availble from ..."); -}; - -/********************************************************** - * - * - * @since ari_1_5_0 - *********************************************************/ -public void copyStored(String recordingName, String destinationRecordingName, AriCallback callback){ - throw new UnsupportedOperationException("Method availble from ..."); -}; - -/********************************************************** - * Get the file associated with the stored recording. - * - * - * @since ari_1_10_0 - *********************************************************/ -public byte[] getStoredFile(String recordingName) throws RestException{ - throw new UnsupportedOperationException("Method availble from ..."); -}; - -}; - diff --git a/classes/ch/loway/oss/ari4java/generated/ari_0_0_1/actions/ActionSounds_impl_ari_0_0_1.java b/classes/ch/loway/oss/ari4java/generated/ari_0_0_1/actions/ActionSounds_impl_ari_0_0_1.java deleted file mode 100644 index ea93ebb5..00000000 --- a/classes/ch/loway/oss/ari4java/generated/ari_0_0_1/actions/ActionSounds_impl_ari_0_0_1.java +++ /dev/null @@ -1,82 +0,0 @@ -package ch.loway.oss.ari4java.generated.ari_0_0_1.actions; - -// ---------------------------------------------------- -// THIS CLASS WAS GENERATED AUTOMATICALLY -// PLEASE DO NOT EDIT -// Generated on: Tue Dec 19 09:55:49 CET 2017 -// ---------------------------------------------------- - -import ch.loway.oss.ari4java.generated.*; -import java.util.Date; -import java.util.List; -import java.util.Map; -import java.util.ArrayList; -import ch.loway.oss.ari4java.tools.BaseAriAction; -import ch.loway.oss.ari4java.tools.RestException; -import ch.loway.oss.ari4java.tools.AriCallback; -import ch.loway.oss.ari4java.tools.HttpParam; -import ch.loway.oss.ari4java.tools.HttpResponse; -import com.fasterxml.jackson.core.type.TypeReference; -import ch.loway.oss.ari4java.generated.ari_0_0_1.models.*; - -/********************************************************** - * - * Generated by: Apis - *********************************************************/ - - -public class ActionSounds_impl_ari_0_0_1 extends BaseAriAction implements ActionSounds { -/********************************************************** - * Sounds - * - * List all sounds. - *********************************************************/ -private void buildList(String lang, String format) { -reset(); -url = "/sounds"; -method = "GET"; -lParamQuery.add( HttpParam.build( "lang", lang) ); -lParamQuery.add( HttpParam.build( "format", format) ); -} - -@Override -public List list(String lang, String format) throws RestException { -buildList(lang, format); -String json = httpActionSync(); -return deserializeJsonAsAbstractList( json, - new TypeReference>() {} ); -} - -@Override -public void list(String lang, String format, AriCallback> callback) { -buildList(lang, format); -httpActionAsync(callback, new TypeReference>() {}); -} - -/********************************************************** - * Individual sound - * - * Get a sound's details. - *********************************************************/ -private void buildGet(String soundId) { -reset(); -url = "/sounds/" + soundId + ""; -method = "GET"; -} - -@Override -public Sound get(String soundId) throws RestException { -buildGet(soundId); -String json = httpActionSync(); -return deserializeJson( json, Sound_impl_ari_0_0_1.class ); -} - -@Override -public void get(String soundId, AriCallback callback) { -buildGet(soundId); -httpActionAsync(callback, Sound_impl_ari_0_0_1.class); -} - -/** No missing signatures from interface */ -}; - diff --git a/classes/ch/loway/oss/ari4java/generated/ari_0_0_1/models/ApplicationReplaced_impl_ari_0_0_1.java b/classes/ch/loway/oss/ari4java/generated/ari_0_0_1/models/ApplicationReplaced_impl_ari_0_0_1.java deleted file mode 100644 index 77f0896e..00000000 --- a/classes/ch/loway/oss/ari4java/generated/ari_0_0_1/models/ApplicationReplaced_impl_ari_0_0_1.java +++ /dev/null @@ -1,28 +0,0 @@ -package ch.loway.oss.ari4java.generated.ari_0_0_1.models; - -// ---------------------------------------------------- -// THIS CLASS WAS GENERATED AUTOMATICALLY -// PLEASE DO NOT EDIT -// Generated on: Tue Dec 19 09:55:48 CET 2017 -// ---------------------------------------------------- - -import ch.loway.oss.ari4java.generated.*; -import com.fasterxml.jackson.databind.annotation.JsonDeserialize; -import java.util.Date; -import java.util.List; -import java.util.Map; - -/********************************************************** - * Notification that another WebSocket has taken over for an application. - * - * An application may only be subscribed to by a single WebSocket at a time. If multiple WebSockets attempt to subscribe to the same application, the newer WebSocket wins, and the older one receives this event. - * - * Defined in file: events.json - * Generated by: Model - *********************************************************/ - -public class ApplicationReplaced_impl_ari_0_0_1 extends Event_impl_ari_0_0_1 implements ApplicationReplaced, java.io.Serializable { -private static final long serialVersionUID = 1L; -/** No missing signatures from interface */ -} - diff --git a/classes/ch/loway/oss/ari4java/generated/ari_0_0_1/models/Application_impl_ari_0_0_1.java b/classes/ch/loway/oss/ari4java/generated/ari_0_0_1/models/Application_impl_ari_0_0_1.java deleted file mode 100644 index 6b181185..00000000 --- a/classes/ch/loway/oss/ari4java/generated/ari_0_0_1/models/Application_impl_ari_0_0_1.java +++ /dev/null @@ -1,81 +0,0 @@ -package ch.loway.oss.ari4java.generated.ari_0_0_1.models; - -// ---------------------------------------------------- -// THIS CLASS WAS GENERATED AUTOMATICALLY -// PLEASE DO NOT EDIT -// Generated on: Tue Dec 19 09:55:48 CET 2017 -// ---------------------------------------------------- - -import ch.loway.oss.ari4java.generated.*; -import com.fasterxml.jackson.databind.annotation.JsonDeserialize; -import java.util.Date; -import java.util.List; -import java.util.Map; - -/********************************************************** - * Details of a Stasis application - * - * Defined in file: applications.json - * Generated by: Model - *********************************************************/ - -public class Application_impl_ari_0_0_1 implements Application, java.io.Serializable { -private static final long serialVersionUID = 1L; - /** Id's for bridges subscribed to. */ - private List bridge_ids; - public List getBridge_ids() { - return bridge_ids; - } - - @JsonDeserialize( contentAs=String.class ) - public void setBridge_ids(List val ) { - bridge_ids = val; - } - - /** Id's for channels subscribed to. */ - private List channel_ids; - public List getChannel_ids() { - return channel_ids; - } - - @JsonDeserialize( contentAs=String.class ) - public void setChannel_ids(List val ) { - channel_ids = val; - } - - /** Names of the devices subscribed to. */ - private List device_names; - public List getDevice_names() { - return device_names; - } - - @JsonDeserialize( contentAs=String.class ) - public void setDevice_names(List val ) { - device_names = val; - } - - /** {tech}/{resource} for endpoints subscribed to. */ - private List endpoint_ids; - public List getEndpoint_ids() { - return endpoint_ids; - } - - @JsonDeserialize( contentAs=String.class ) - public void setEndpoint_ids(List val ) { - endpoint_ids = val; - } - - /** Name of this application */ - private String name; - public String getName() { - return name; - } - - @JsonDeserialize( as=String.class ) - public void setName(String val ) { - name = val; - } - -/** No missing signatures from interface */ -} - diff --git a/classes/ch/loway/oss/ari4java/generated/ari_0_0_1/models/AsteriskInfo_impl_ari_0_0_1.java b/classes/ch/loway/oss/ari4java/generated/ari_0_0_1/models/AsteriskInfo_impl_ari_0_0_1.java deleted file mode 100644 index 70adce51..00000000 --- a/classes/ch/loway/oss/ari4java/generated/ari_0_0_1/models/AsteriskInfo_impl_ari_0_0_1.java +++ /dev/null @@ -1,70 +0,0 @@ -package ch.loway.oss.ari4java.generated.ari_0_0_1.models; - -// ---------------------------------------------------- -// THIS CLASS WAS GENERATED AUTOMATICALLY -// PLEASE DO NOT EDIT -// Generated on: Tue Dec 19 09:55:48 CET 2017 -// ---------------------------------------------------- - -import ch.loway.oss.ari4java.generated.*; -import com.fasterxml.jackson.databind.annotation.JsonDeserialize; -import java.util.Date; -import java.util.List; -import java.util.Map; - -/********************************************************** - * Asterisk system information - * - * Defined in file: asterisk.json - * Generated by: Model - *********************************************************/ - -public class AsteriskInfo_impl_ari_0_0_1 implements AsteriskInfo, java.io.Serializable { -private static final long serialVersionUID = 1L; - /** Info about how Asterisk was built */ - private BuildInfo build; - public BuildInfo getBuild() { - return build; - } - - @JsonDeserialize( as=BuildInfo_impl_ari_0_0_1.class ) - public void setBuild(BuildInfo val ) { - build = val; - } - - /** Info about Asterisk configuration */ - private ConfigInfo config; - public ConfigInfo getConfig() { - return config; - } - - @JsonDeserialize( as=ConfigInfo_impl_ari_0_0_1.class ) - public void setConfig(ConfigInfo val ) { - config = val; - } - - /** Info about Asterisk status */ - private StatusInfo status; - public StatusInfo getStatus() { - return status; - } - - @JsonDeserialize( as=StatusInfo_impl_ari_0_0_1.class ) - public void setStatus(StatusInfo val ) { - status = val; - } - - /** Info about the system running Asterisk */ - private SystemInfo system; - public SystemInfo getSystem() { - return system; - } - - @JsonDeserialize( as=SystemInfo_impl_ari_0_0_1.class ) - public void setSystem(SystemInfo val ) { - system = val; - } - -/** No missing signatures from interface */ -} - diff --git a/classes/ch/loway/oss/ari4java/generated/ari_0_0_1/models/BridgeCreated_impl_ari_0_0_1.java b/classes/ch/loway/oss/ari4java/generated/ari_0_0_1/models/BridgeCreated_impl_ari_0_0_1.java deleted file mode 100644 index f355d36e..00000000 --- a/classes/ch/loway/oss/ari4java/generated/ari_0_0_1/models/BridgeCreated_impl_ari_0_0_1.java +++ /dev/null @@ -1,37 +0,0 @@ -package ch.loway.oss.ari4java.generated.ari_0_0_1.models; - -// ---------------------------------------------------- -// THIS CLASS WAS GENERATED AUTOMATICALLY -// PLEASE DO NOT EDIT -// Generated on: Tue Dec 19 09:55:48 CET 2017 -// ---------------------------------------------------- - -import ch.loway.oss.ari4java.generated.*; -import com.fasterxml.jackson.databind.annotation.JsonDeserialize; -import java.util.Date; -import java.util.List; -import java.util.Map; - -/********************************************************** - * Notification that a bridge has been created. - * - * Defined in file: events.json - * Generated by: Model - *********************************************************/ - -public class BridgeCreated_impl_ari_0_0_1 extends Event_impl_ari_0_0_1 implements BridgeCreated, java.io.Serializable { -private static final long serialVersionUID = 1L; - /** */ - private Bridge bridge; - public Bridge getBridge() { - return bridge; - } - - @JsonDeserialize( as=Bridge_impl_ari_0_0_1.class ) - public void setBridge(Bridge val ) { - bridge = val; - } - -/** No missing signatures from interface */ -} - diff --git a/classes/ch/loway/oss/ari4java/generated/ari_0_0_1/models/BridgeDestroyed_impl_ari_0_0_1.java b/classes/ch/loway/oss/ari4java/generated/ari_0_0_1/models/BridgeDestroyed_impl_ari_0_0_1.java deleted file mode 100644 index 9e3df49c..00000000 --- a/classes/ch/loway/oss/ari4java/generated/ari_0_0_1/models/BridgeDestroyed_impl_ari_0_0_1.java +++ /dev/null @@ -1,37 +0,0 @@ -package ch.loway.oss.ari4java.generated.ari_0_0_1.models; - -// ---------------------------------------------------- -// THIS CLASS WAS GENERATED AUTOMATICALLY -// PLEASE DO NOT EDIT -// Generated on: Tue Dec 19 09:55:48 CET 2017 -// ---------------------------------------------------- - -import ch.loway.oss.ari4java.generated.*; -import com.fasterxml.jackson.databind.annotation.JsonDeserialize; -import java.util.Date; -import java.util.List; -import java.util.Map; - -/********************************************************** - * Notification that a bridge has been destroyed. - * - * Defined in file: events.json - * Generated by: Model - *********************************************************/ - -public class BridgeDestroyed_impl_ari_0_0_1 extends Event_impl_ari_0_0_1 implements BridgeDestroyed, java.io.Serializable { -private static final long serialVersionUID = 1L; - /** */ - private Bridge bridge; - public Bridge getBridge() { - return bridge; - } - - @JsonDeserialize( as=Bridge_impl_ari_0_0_1.class ) - public void setBridge(Bridge val ) { - bridge = val; - } - -/** No missing signatures from interface */ -} - diff --git a/classes/ch/loway/oss/ari4java/generated/ari_0_0_1/models/BridgeMerged_impl_ari_0_0_1.java b/classes/ch/loway/oss/ari4java/generated/ari_0_0_1/models/BridgeMerged_impl_ari_0_0_1.java deleted file mode 100644 index 6b202151..00000000 --- a/classes/ch/loway/oss/ari4java/generated/ari_0_0_1/models/BridgeMerged_impl_ari_0_0_1.java +++ /dev/null @@ -1,48 +0,0 @@ -package ch.loway.oss.ari4java.generated.ari_0_0_1.models; - -// ---------------------------------------------------- -// THIS CLASS WAS GENERATED AUTOMATICALLY -// PLEASE DO NOT EDIT -// Generated on: Tue Dec 19 09:55:48 CET 2017 -// ---------------------------------------------------- - -import ch.loway.oss.ari4java.generated.*; -import com.fasterxml.jackson.databind.annotation.JsonDeserialize; -import java.util.Date; -import java.util.List; -import java.util.Map; - -/********************************************************** - * Notification that one bridge has merged into another. - * - * Defined in file: events.json - * Generated by: Model - *********************************************************/ - -public class BridgeMerged_impl_ari_0_0_1 extends Event_impl_ari_0_0_1 implements BridgeMerged, java.io.Serializable { -private static final long serialVersionUID = 1L; - /** */ - private Bridge bridge; - public Bridge getBridge() { - return bridge; - } - - @JsonDeserialize( as=Bridge_impl_ari_0_0_1.class ) - public void setBridge(Bridge val ) { - bridge = val; - } - - /** */ - private Bridge bridge_from; - public Bridge getBridge_from() { - return bridge_from; - } - - @JsonDeserialize( as=Bridge_impl_ari_0_0_1.class ) - public void setBridge_from(Bridge val ) { - bridge_from = val; - } - -/** No missing signatures from interface */ -} - diff --git a/classes/ch/loway/oss/ari4java/generated/ari_0_0_1/models/Bridge_impl_ari_0_0_1.java b/classes/ch/loway/oss/ari4java/generated/ari_0_0_1/models/Bridge_impl_ari_0_0_1.java deleted file mode 100644 index bef937e6..00000000 --- a/classes/ch/loway/oss/ari4java/generated/ari_0_0_1/models/Bridge_impl_ari_0_0_1.java +++ /dev/null @@ -1,154 +0,0 @@ -package ch.loway.oss.ari4java.generated.ari_0_0_1.models; - -// ---------------------------------------------------- -// THIS CLASS WAS GENERATED AUTOMATICALLY -// PLEASE DO NOT EDIT -// Generated on: Tue Dec 19 09:55:48 CET 2017 -// ---------------------------------------------------- - -import ch.loway.oss.ari4java.generated.*; -import com.fasterxml.jackson.databind.annotation.JsonDeserialize; -import java.util.Date; -import java.util.List; -import java.util.Map; - -/********************************************************** - * The merging of media from one or more channels. - * - * Everyone on the bridge receives the same audio. - * - * Defined in file: bridges.json - * Generated by: Model - *********************************************************/ - -public class Bridge_impl_ari_0_0_1 implements Bridge, java.io.Serializable { -private static final long serialVersionUID = 1L; - /** Bridging class */ - private String bridge_class; - public String getBridge_class() { - return bridge_class; - } - - @JsonDeserialize( as=String.class ) - public void setBridge_class(String val ) { - bridge_class = val; - } - - /** Type of bridge technology */ - private String bridge_type; - public String getBridge_type() { - return bridge_type; - } - - @JsonDeserialize( as=String.class ) - public void setBridge_type(String val ) { - bridge_type = val; - } - - /** Ids of channels participating in this bridge */ - private List channels; - public List getChannels() { - return channels; - } - - @JsonDeserialize( contentAs=String.class ) - public void setChannels(List val ) { - channels = val; - } - - /** Unique identifier for this bridge */ - private String id; - public String getId() { - return id; - } - - @JsonDeserialize( as=String.class ) - public void setId(String val ) { - id = val; - } - - /** Name of the current bridging technology */ - private String technology; - public String getTechnology() { - return technology; - } - - @JsonDeserialize( as=String.class ) - public void setTechnology(String val ) { - technology = val; - } - -/********************************************************** - * Name the creator gave the bridge - * - * @since ari_1_0_0 - *********************************************************/ - public String getName(){ - throw new UnsupportedOperationException("Method availble from ..."); -}; - -/********************************************************** - * The video mode the bridge is using. One of 'none', 'talker', or 'single'. - * - * @since ari_2_0_0 - *********************************************************/ - public String getVideo_mode(){ - throw new UnsupportedOperationException("Method availble from ..."); -}; - -/********************************************************** - * The ID of the channel that is the source of video in this bridge, if one exists. - * - * @since ari_2_0_0 - *********************************************************/ - public String getVideo_source_id(){ - throw new UnsupportedOperationException("Method availble from ..."); -}; - -/********************************************************** - * Entity that created the bridge - * - * @since ari_1_0_0 - *********************************************************/ - public String getCreator(){ - throw new UnsupportedOperationException("Method availble from ..."); -}; - -/********************************************************** - * The video mode the bridge is using. One of 'none', 'talker', or 'single'. - * - * @since ari_2_0_0 - *********************************************************/ - public void setVideo_mode(String val ){ - throw new UnsupportedOperationException("Method availble from ..."); -}; - -/********************************************************** - * The ID of the channel that is the source of video in this bridge, if one exists. - * - * @since ari_2_0_0 - *********************************************************/ - public void setVideo_source_id(String val ){ - throw new UnsupportedOperationException("Method availble from ..."); -}; - -/********************************************************** - * Entity that created the bridge - * - * @since ari_1_0_0 - *********************************************************/ - public void setCreator(String val ){ - throw new UnsupportedOperationException("Method availble from ..."); -}; - -/********************************************************** - * Name the creator gave the bridge - * - * @since ari_1_0_0 - *********************************************************/ - public void setName(String val ){ - throw new UnsupportedOperationException("Method availble from ..."); -}; - -} - diff --git a/classes/ch/loway/oss/ari4java/generated/ari_0_0_1/models/BuildInfo_impl_ari_0_0_1.java b/classes/ch/loway/oss/ari4java/generated/ari_0_0_1/models/BuildInfo_impl_ari_0_0_1.java deleted file mode 100644 index 3b891e1f..00000000 --- a/classes/ch/loway/oss/ari4java/generated/ari_0_0_1/models/BuildInfo_impl_ari_0_0_1.java +++ /dev/null @@ -1,92 +0,0 @@ -package ch.loway.oss.ari4java.generated.ari_0_0_1.models; - -// ---------------------------------------------------- -// THIS CLASS WAS GENERATED AUTOMATICALLY -// PLEASE DO NOT EDIT -// Generated on: Tue Dec 19 09:55:48 CET 2017 -// ---------------------------------------------------- - -import ch.loway.oss.ari4java.generated.*; -import com.fasterxml.jackson.databind.annotation.JsonDeserialize; -import java.util.Date; -import java.util.List; -import java.util.Map; - -/********************************************************** - * Info about how Asterisk was built - * - * Defined in file: asterisk.json - * Generated by: Model - *********************************************************/ - -public class BuildInfo_impl_ari_0_0_1 implements BuildInfo, java.io.Serializable { -private static final long serialVersionUID = 1L; - /** Date and time when Asterisk was built. */ - private String date; - public String getDate() { - return date; - } - - @JsonDeserialize( as=String.class ) - public void setDate(String val ) { - date = val; - } - - /** Kernel version Asterisk was built on. */ - private String kernel; - public String getKernel() { - return kernel; - } - - @JsonDeserialize( as=String.class ) - public void setKernel(String val ) { - kernel = val; - } - - /** Machine architecture (x86_64, i686, ppc, etc.) */ - private String machine; - public String getMachine() { - return machine; - } - - @JsonDeserialize( as=String.class ) - public void setMachine(String val ) { - machine = val; - } - - /** Compile time options, or empty string if default. */ - private String options; - public String getOptions() { - return options; - } - - @JsonDeserialize( as=String.class ) - public void setOptions(String val ) { - options = val; - } - - /** OS Asterisk was built on. */ - private String os; - public String getOs() { - return os; - } - - @JsonDeserialize( as=String.class ) - public void setOs(String val ) { - os = val; - } - - /** Username that build Asterisk */ - private String user; - public String getUser() { - return user; - } - - @JsonDeserialize( as=String.class ) - public void setUser(String val ) { - user = val; - } - -/** No missing signatures from interface */ -} - diff --git a/classes/ch/loway/oss/ari4java/generated/ari_0_0_1/models/CallerID_impl_ari_0_0_1.java b/classes/ch/loway/oss/ari4java/generated/ari_0_0_1/models/CallerID_impl_ari_0_0_1.java deleted file mode 100644 index 612be1ed..00000000 --- a/classes/ch/loway/oss/ari4java/generated/ari_0_0_1/models/CallerID_impl_ari_0_0_1.java +++ /dev/null @@ -1,48 +0,0 @@ -package ch.loway.oss.ari4java.generated.ari_0_0_1.models; - -// ---------------------------------------------------- -// THIS CLASS WAS GENERATED AUTOMATICALLY -// PLEASE DO NOT EDIT -// Generated on: Tue Dec 19 09:55:48 CET 2017 -// ---------------------------------------------------- - -import ch.loway.oss.ari4java.generated.*; -import com.fasterxml.jackson.databind.annotation.JsonDeserialize; -import java.util.Date; -import java.util.List; -import java.util.Map; - -/********************************************************** - * Caller identification - * - * Defined in file: channels.json - * Generated by: Model - *********************************************************/ - -public class CallerID_impl_ari_0_0_1 implements CallerID, java.io.Serializable { -private static final long serialVersionUID = 1L; - /** */ - private String name; - public String getName() { - return name; - } - - @JsonDeserialize( as=String.class ) - public void setName(String val ) { - name = val; - } - - /** */ - private String number; - public String getNumber() { - return number; - } - - @JsonDeserialize( as=String.class ) - public void setNumber(String val ) { - number = val; - } - -/** No missing signatures from interface */ -} - diff --git a/classes/ch/loway/oss/ari4java/generated/ari_0_0_1/models/ChannelCallerId_impl_ari_0_0_1.java b/classes/ch/loway/oss/ari4java/generated/ari_0_0_1/models/ChannelCallerId_impl_ari_0_0_1.java deleted file mode 100644 index 0d79c159..00000000 --- a/classes/ch/loway/oss/ari4java/generated/ari_0_0_1/models/ChannelCallerId_impl_ari_0_0_1.java +++ /dev/null @@ -1,59 +0,0 @@ -package ch.loway.oss.ari4java.generated.ari_0_0_1.models; - -// ---------------------------------------------------- -// THIS CLASS WAS GENERATED AUTOMATICALLY -// PLEASE DO NOT EDIT -// Generated on: Tue Dec 19 09:55:48 CET 2017 -// ---------------------------------------------------- - -import ch.loway.oss.ari4java.generated.*; -import com.fasterxml.jackson.databind.annotation.JsonDeserialize; -import java.util.Date; -import java.util.List; -import java.util.Map; - -/********************************************************** - * Channel changed Caller ID. - * - * Defined in file: events.json - * Generated by: Model - *********************************************************/ - -public class ChannelCallerId_impl_ari_0_0_1 extends Event_impl_ari_0_0_1 implements ChannelCallerId, java.io.Serializable { -private static final long serialVersionUID = 1L; - /** The integer representation of the Caller Presentation value. */ - private int caller_presentation; - public int getCaller_presentation() { - return caller_presentation; - } - - @JsonDeserialize( as=int.class ) - public void setCaller_presentation(int val ) { - caller_presentation = val; - } - - /** The text representation of the Caller Presentation value. */ - private String caller_presentation_txt; - public String getCaller_presentation_txt() { - return caller_presentation_txt; - } - - @JsonDeserialize( as=String.class ) - public void setCaller_presentation_txt(String val ) { - caller_presentation_txt = val; - } - - /** The channel that changed Caller ID. */ - private Channel channel; - public Channel getChannel() { - return channel; - } - - @JsonDeserialize( as=Channel_impl_ari_0_0_1.class ) - public void setChannel(Channel val ) { - channel = val; - } - -/** No missing signatures from interface */ -} - diff --git a/classes/ch/loway/oss/ari4java/generated/ari_0_0_1/models/ChannelCreated_impl_ari_0_0_1.java b/classes/ch/loway/oss/ari4java/generated/ari_0_0_1/models/ChannelCreated_impl_ari_0_0_1.java deleted file mode 100644 index a4a141e2..00000000 --- a/classes/ch/loway/oss/ari4java/generated/ari_0_0_1/models/ChannelCreated_impl_ari_0_0_1.java +++ /dev/null @@ -1,37 +0,0 @@ -package ch.loway.oss.ari4java.generated.ari_0_0_1.models; - -// ---------------------------------------------------- -// THIS CLASS WAS GENERATED AUTOMATICALLY -// PLEASE DO NOT EDIT -// Generated on: Tue Dec 19 09:55:48 CET 2017 -// ---------------------------------------------------- - -import ch.loway.oss.ari4java.generated.*; -import com.fasterxml.jackson.databind.annotation.JsonDeserialize; -import java.util.Date; -import java.util.List; -import java.util.Map; - -/********************************************************** - * Notification that a channel has been created. - * - * Defined in file: events.json - * Generated by: Model - *********************************************************/ - -public class ChannelCreated_impl_ari_0_0_1 extends Event_impl_ari_0_0_1 implements ChannelCreated, java.io.Serializable { -private static final long serialVersionUID = 1L; - /** */ - private Channel channel; - public Channel getChannel() { - return channel; - } - - @JsonDeserialize( as=Channel_impl_ari_0_0_1.class ) - public void setChannel(Channel val ) { - channel = val; - } - -/** No missing signatures from interface */ -} - diff --git a/classes/ch/loway/oss/ari4java/generated/ari_0_0_1/models/ChannelDestroyed_impl_ari_0_0_1.java b/classes/ch/loway/oss/ari4java/generated/ari_0_0_1/models/ChannelDestroyed_impl_ari_0_0_1.java deleted file mode 100644 index 04319ee4..00000000 --- a/classes/ch/loway/oss/ari4java/generated/ari_0_0_1/models/ChannelDestroyed_impl_ari_0_0_1.java +++ /dev/null @@ -1,59 +0,0 @@ -package ch.loway.oss.ari4java.generated.ari_0_0_1.models; - -// ---------------------------------------------------- -// THIS CLASS WAS GENERATED AUTOMATICALLY -// PLEASE DO NOT EDIT -// Generated on: Tue Dec 19 09:55:48 CET 2017 -// ---------------------------------------------------- - -import ch.loway.oss.ari4java.generated.*; -import com.fasterxml.jackson.databind.annotation.JsonDeserialize; -import java.util.Date; -import java.util.List; -import java.util.Map; - -/********************************************************** - * Notification that a channel has been destroyed. - * - * Defined in file: events.json - * Generated by: Model - *********************************************************/ - -public class ChannelDestroyed_impl_ari_0_0_1 extends Event_impl_ari_0_0_1 implements ChannelDestroyed, java.io.Serializable { -private static final long serialVersionUID = 1L; - /** Integer representation of the cause of the hangup */ - private int cause; - public int getCause() { - return cause; - } - - @JsonDeserialize( as=int.class ) - public void setCause(int val ) { - cause = val; - } - - /** Text representation of the cause of the hangup */ - private String cause_txt; - public String getCause_txt() { - return cause_txt; - } - - @JsonDeserialize( as=String.class ) - public void setCause_txt(String val ) { - cause_txt = val; - } - - /** */ - private Channel channel; - public Channel getChannel() { - return channel; - } - - @JsonDeserialize( as=Channel_impl_ari_0_0_1.class ) - public void setChannel(Channel val ) { - channel = val; - } - -/** No missing signatures from interface */ -} - diff --git a/classes/ch/loway/oss/ari4java/generated/ari_0_0_1/models/ChannelDialplan_impl_ari_0_0_1.java b/classes/ch/loway/oss/ari4java/generated/ari_0_0_1/models/ChannelDialplan_impl_ari_0_0_1.java deleted file mode 100644 index 2d989761..00000000 --- a/classes/ch/loway/oss/ari4java/generated/ari_0_0_1/models/ChannelDialplan_impl_ari_0_0_1.java +++ /dev/null @@ -1,59 +0,0 @@ -package ch.loway.oss.ari4java.generated.ari_0_0_1.models; - -// ---------------------------------------------------- -// THIS CLASS WAS GENERATED AUTOMATICALLY -// PLEASE DO NOT EDIT -// Generated on: Tue Dec 19 09:55:48 CET 2017 -// ---------------------------------------------------- - -import ch.loway.oss.ari4java.generated.*; -import com.fasterxml.jackson.databind.annotation.JsonDeserialize; -import java.util.Date; -import java.util.List; -import java.util.Map; - -/********************************************************** - * Channel changed location in the dialplan. - * - * Defined in file: events.json - * Generated by: Model - *********************************************************/ - -public class ChannelDialplan_impl_ari_0_0_1 extends Event_impl_ari_0_0_1 implements ChannelDialplan, java.io.Serializable { -private static final long serialVersionUID = 1L; - /** The channel that changed dialplan location. */ - private Channel channel; - public Channel getChannel() { - return channel; - } - - @JsonDeserialize( as=Channel_impl_ari_0_0_1.class ) - public void setChannel(Channel val ) { - channel = val; - } - - /** The application about to be executed. */ - private String dialplan_app; - public String getDialplan_app() { - return dialplan_app; - } - - @JsonDeserialize( as=String.class ) - public void setDialplan_app(String val ) { - dialplan_app = val; - } - - /** The data to be passed to the application. */ - private String dialplan_app_data; - public String getDialplan_app_data() { - return dialplan_app_data; - } - - @JsonDeserialize( as=String.class ) - public void setDialplan_app_data(String val ) { - dialplan_app_data = val; - } - -/** No missing signatures from interface */ -} - diff --git a/classes/ch/loway/oss/ari4java/generated/ari_0_0_1/models/ChannelDtmfReceived_impl_ari_0_0_1.java b/classes/ch/loway/oss/ari4java/generated/ari_0_0_1/models/ChannelDtmfReceived_impl_ari_0_0_1.java deleted file mode 100644 index 08fbe2b5..00000000 --- a/classes/ch/loway/oss/ari4java/generated/ari_0_0_1/models/ChannelDtmfReceived_impl_ari_0_0_1.java +++ /dev/null @@ -1,61 +0,0 @@ -package ch.loway.oss.ari4java.generated.ari_0_0_1.models; - -// ---------------------------------------------------- -// THIS CLASS WAS GENERATED AUTOMATICALLY -// PLEASE DO NOT EDIT -// Generated on: Tue Dec 19 09:55:48 CET 2017 -// ---------------------------------------------------- - -import ch.loway.oss.ari4java.generated.*; -import com.fasterxml.jackson.databind.annotation.JsonDeserialize; -import java.util.Date; -import java.util.List; -import java.util.Map; - -/********************************************************** - * DTMF received on a channel. - * - * This event is sent when the DTMF ends. There is no notification about the start of DTMF - * - * Defined in file: events.json - * Generated by: Model - *********************************************************/ - -public class ChannelDtmfReceived_impl_ari_0_0_1 extends Event_impl_ari_0_0_1 implements ChannelDtmfReceived, java.io.Serializable { -private static final long serialVersionUID = 1L; - /** The channel on which DTMF was received */ - private Channel channel; - public Channel getChannel() { - return channel; - } - - @JsonDeserialize( as=Channel_impl_ari_0_0_1.class ) - public void setChannel(Channel val ) { - channel = val; - } - - /** DTMF digit received (0-9, A-E, # or *) */ - private String digit; - public String getDigit() { - return digit; - } - - @JsonDeserialize( as=String.class ) - public void setDigit(String val ) { - digit = val; - } - - /** Number of milliseconds DTMF was received */ - private int duration_ms; - public int getDuration_ms() { - return duration_ms; - } - - @JsonDeserialize( as=int.class ) - public void setDuration_ms(int val ) { - duration_ms = val; - } - -/** No missing signatures from interface */ -} - diff --git a/classes/ch/loway/oss/ari4java/generated/ari_0_0_1/models/ChannelEnteredBridge_impl_ari_0_0_1.java b/classes/ch/loway/oss/ari4java/generated/ari_0_0_1/models/ChannelEnteredBridge_impl_ari_0_0_1.java deleted file mode 100644 index 9e201149..00000000 --- a/classes/ch/loway/oss/ari4java/generated/ari_0_0_1/models/ChannelEnteredBridge_impl_ari_0_0_1.java +++ /dev/null @@ -1,48 +0,0 @@ -package ch.loway.oss.ari4java.generated.ari_0_0_1.models; - -// ---------------------------------------------------- -// THIS CLASS WAS GENERATED AUTOMATICALLY -// PLEASE DO NOT EDIT -// Generated on: Tue Dec 19 09:55:48 CET 2017 -// ---------------------------------------------------- - -import ch.loway.oss.ari4java.generated.*; -import com.fasterxml.jackson.databind.annotation.JsonDeserialize; -import java.util.Date; -import java.util.List; -import java.util.Map; - -/********************************************************** - * Notification that a channel has entered a bridge. - * - * Defined in file: events.json - * Generated by: Model - *********************************************************/ - -public class ChannelEnteredBridge_impl_ari_0_0_1 extends Event_impl_ari_0_0_1 implements ChannelEnteredBridge, java.io.Serializable { -private static final long serialVersionUID = 1L; - /** */ - private Bridge bridge; - public Bridge getBridge() { - return bridge; - } - - @JsonDeserialize( as=Bridge_impl_ari_0_0_1.class ) - public void setBridge(Bridge val ) { - bridge = val; - } - - /** */ - private Channel channel; - public Channel getChannel() { - return channel; - } - - @JsonDeserialize( as=Channel_impl_ari_0_0_1.class ) - public void setChannel(Channel val ) { - channel = val; - } - -/** No missing signatures from interface */ -} - diff --git a/classes/ch/loway/oss/ari4java/generated/ari_0_0_1/models/ChannelHangupRequest_impl_ari_0_0_1.java b/classes/ch/loway/oss/ari4java/generated/ari_0_0_1/models/ChannelHangupRequest_impl_ari_0_0_1.java deleted file mode 100644 index 9aa2f8ef..00000000 --- a/classes/ch/loway/oss/ari4java/generated/ari_0_0_1/models/ChannelHangupRequest_impl_ari_0_0_1.java +++ /dev/null @@ -1,59 +0,0 @@ -package ch.loway.oss.ari4java.generated.ari_0_0_1.models; - -// ---------------------------------------------------- -// THIS CLASS WAS GENERATED AUTOMATICALLY -// PLEASE DO NOT EDIT -// Generated on: Tue Dec 19 09:55:48 CET 2017 -// ---------------------------------------------------- - -import ch.loway.oss.ari4java.generated.*; -import com.fasterxml.jackson.databind.annotation.JsonDeserialize; -import java.util.Date; -import java.util.List; -import java.util.Map; - -/********************************************************** - * A hangup was requested on the channel. - * - * Defined in file: events.json - * Generated by: Model - *********************************************************/ - -public class ChannelHangupRequest_impl_ari_0_0_1 extends Event_impl_ari_0_0_1 implements ChannelHangupRequest, java.io.Serializable { -private static final long serialVersionUID = 1L; - /** Integer representation of the cause of the hangup. */ - private int cause; - public int getCause() { - return cause; - } - - @JsonDeserialize( as=int.class ) - public void setCause(int val ) { - cause = val; - } - - /** The channel on which the hangup was requested. */ - private Channel channel; - public Channel getChannel() { - return channel; - } - - @JsonDeserialize( as=Channel_impl_ari_0_0_1.class ) - public void setChannel(Channel val ) { - channel = val; - } - - /** Whether the hangup request was a soft hangup request. */ - private boolean soft; - public boolean getSoft() { - return soft; - } - - @JsonDeserialize( as=boolean.class ) - public void setSoft(boolean val ) { - soft = val; - } - -/** No missing signatures from interface */ -} - diff --git a/classes/ch/loway/oss/ari4java/generated/ari_0_0_1/models/ChannelLeftBridge_impl_ari_0_0_1.java b/classes/ch/loway/oss/ari4java/generated/ari_0_0_1/models/ChannelLeftBridge_impl_ari_0_0_1.java deleted file mode 100644 index 645afb84..00000000 --- a/classes/ch/loway/oss/ari4java/generated/ari_0_0_1/models/ChannelLeftBridge_impl_ari_0_0_1.java +++ /dev/null @@ -1,48 +0,0 @@ -package ch.loway.oss.ari4java.generated.ari_0_0_1.models; - -// ---------------------------------------------------- -// THIS CLASS WAS GENERATED AUTOMATICALLY -// PLEASE DO NOT EDIT -// Generated on: Tue Dec 19 09:55:48 CET 2017 -// ---------------------------------------------------- - -import ch.loway.oss.ari4java.generated.*; -import com.fasterxml.jackson.databind.annotation.JsonDeserialize; -import java.util.Date; -import java.util.List; -import java.util.Map; - -/********************************************************** - * Notification that a channel has left a bridge. - * - * Defined in file: events.json - * Generated by: Model - *********************************************************/ - -public class ChannelLeftBridge_impl_ari_0_0_1 extends Event_impl_ari_0_0_1 implements ChannelLeftBridge, java.io.Serializable { -private static final long serialVersionUID = 1L; - /** */ - private Bridge bridge; - public Bridge getBridge() { - return bridge; - } - - @JsonDeserialize( as=Bridge_impl_ari_0_0_1.class ) - public void setBridge(Bridge val ) { - bridge = val; - } - - /** */ - private Channel channel; - public Channel getChannel() { - return channel; - } - - @JsonDeserialize( as=Channel_impl_ari_0_0_1.class ) - public void setChannel(Channel val ) { - channel = val; - } - -/** No missing signatures from interface */ -} - diff --git a/classes/ch/loway/oss/ari4java/generated/ari_0_0_1/models/ChannelStateChange_impl_ari_0_0_1.java b/classes/ch/loway/oss/ari4java/generated/ari_0_0_1/models/ChannelStateChange_impl_ari_0_0_1.java deleted file mode 100644 index ddfceac6..00000000 --- a/classes/ch/loway/oss/ari4java/generated/ari_0_0_1/models/ChannelStateChange_impl_ari_0_0_1.java +++ /dev/null @@ -1,37 +0,0 @@ -package ch.loway.oss.ari4java.generated.ari_0_0_1.models; - -// ---------------------------------------------------- -// THIS CLASS WAS GENERATED AUTOMATICALLY -// PLEASE DO NOT EDIT -// Generated on: Tue Dec 19 09:55:48 CET 2017 -// ---------------------------------------------------- - -import ch.loway.oss.ari4java.generated.*; -import com.fasterxml.jackson.databind.annotation.JsonDeserialize; -import java.util.Date; -import java.util.List; -import java.util.Map; - -/********************************************************** - * Notification of a channel's state change. - * - * Defined in file: events.json - * Generated by: Model - *********************************************************/ - -public class ChannelStateChange_impl_ari_0_0_1 extends Event_impl_ari_0_0_1 implements ChannelStateChange, java.io.Serializable { -private static final long serialVersionUID = 1L; - /** */ - private Channel channel; - public Channel getChannel() { - return channel; - } - - @JsonDeserialize( as=Channel_impl_ari_0_0_1.class ) - public void setChannel(Channel val ) { - channel = val; - } - -/** No missing signatures from interface */ -} - diff --git a/classes/ch/loway/oss/ari4java/generated/ari_0_0_1/models/ChannelUserevent_impl_ari_0_0_1.java b/classes/ch/loway/oss/ari4java/generated/ari_0_0_1/models/ChannelUserevent_impl_ari_0_0_1.java deleted file mode 100644 index 71deb6b4..00000000 --- a/classes/ch/loway/oss/ari4java/generated/ari_0_0_1/models/ChannelUserevent_impl_ari_0_0_1.java +++ /dev/null @@ -1,94 +0,0 @@ -package ch.loway.oss.ari4java.generated.ari_0_0_1.models; - -// ---------------------------------------------------- -// THIS CLASS WAS GENERATED AUTOMATICALLY -// PLEASE DO NOT EDIT -// Generated on: Tue Dec 19 09:55:48 CET 2017 -// ---------------------------------------------------- - -import ch.loway.oss.ari4java.generated.*; -import com.fasterxml.jackson.databind.annotation.JsonDeserialize; -import java.util.Date; -import java.util.List; -import java.util.Map; - -/********************************************************** - * User-generated event with additional user-defined fields in the object. - * - * Defined in file: events.json - * Generated by: Model - *********************************************************/ - -public class ChannelUserevent_impl_ari_0_0_1 extends Event_impl_ari_0_0_1 implements ChannelUserevent, java.io.Serializable { -private static final long serialVersionUID = 1L; - /** The channel that signaled the user event. */ - private Channel channel; - public Channel getChannel() { - return channel; - } - - @JsonDeserialize( as=Channel_impl_ari_0_0_1.class ) - public void setChannel(Channel val ) { - channel = val; - } - - /** The name of the user event. */ - private String eventname; - public String getEventname() { - return eventname; - } - - @JsonDeserialize( as=String.class ) - public void setEventname(String val ) { - eventname = val; - } - - /** Custom Userevent data */ - private String userevent; - public String getUserevent() { - return userevent; - } - - @JsonDeserialize( as=String.class ) - public void setUserevent(String val ) { - userevent = val; - } - -/********************************************************** - * A endpoint that is signaled with the user event. - * - * @since ari_1_5_0 - *********************************************************/ - public Endpoint getEndpoint(){ - throw new UnsupportedOperationException("Method availble from ..."); -}; - -/********************************************************** - * A bridge that is signaled with the user event. - * - * @since ari_1_5_0 - *********************************************************/ - public void setBridge(Bridge val ){ - throw new UnsupportedOperationException("Method availble from ..."); -}; - -/********************************************************** - * A bridge that is signaled with the user event. - * - * @since ari_1_5_0 - *********************************************************/ - public Bridge getBridge(){ - throw new UnsupportedOperationException("Method availble from ..."); -}; - -/********************************************************** - * A endpoint that is signaled with the user event. - * - * @since ari_1_5_0 - *********************************************************/ - public void setEndpoint(Endpoint val ){ - throw new UnsupportedOperationException("Method availble from ..."); -}; - -} - diff --git a/classes/ch/loway/oss/ari4java/generated/ari_0_0_1/models/ChannelVarset_impl_ari_0_0_1.java b/classes/ch/loway/oss/ari4java/generated/ari_0_0_1/models/ChannelVarset_impl_ari_0_0_1.java deleted file mode 100644 index 50fd5cc7..00000000 --- a/classes/ch/loway/oss/ari4java/generated/ari_0_0_1/models/ChannelVarset_impl_ari_0_0_1.java +++ /dev/null @@ -1,61 +0,0 @@ -package ch.loway.oss.ari4java.generated.ari_0_0_1.models; - -// ---------------------------------------------------- -// THIS CLASS WAS GENERATED AUTOMATICALLY -// PLEASE DO NOT EDIT -// Generated on: Tue Dec 19 09:55:48 CET 2017 -// ---------------------------------------------------- - -import ch.loway.oss.ari4java.generated.*; -import com.fasterxml.jackson.databind.annotation.JsonDeserialize; -import java.util.Date; -import java.util.List; -import java.util.Map; - -/********************************************************** - * Channel variable changed. - * - * Defined in file: events.json - * Generated by: Model - *********************************************************/ - -public class ChannelVarset_impl_ari_0_0_1 extends Event_impl_ari_0_0_1 implements ChannelVarset, java.io.Serializable { -private static final long serialVersionUID = 1L; - /** The channel on which the variable was set. - -If missing, the variable is a global variable. */ - private Channel channel; - public Channel getChannel() { - return channel; - } - - @JsonDeserialize( as=Channel_impl_ari_0_0_1.class ) - public void setChannel(Channel val ) { - channel = val; - } - - /** The new value of the variable. */ - private String value; - public String getValue() { - return value; - } - - @JsonDeserialize( as=String.class ) - public void setValue(String val ) { - value = val; - } - - /** The variable that changed. */ - private String variable; - public String getVariable() { - return variable; - } - - @JsonDeserialize( as=String.class ) - public void setVariable(String val ) { - variable = val; - } - -/** No missing signatures from interface */ -} - diff --git a/classes/ch/loway/oss/ari4java/generated/ari_0_0_1/models/Channel_impl_ari_0_0_1.java b/classes/ch/loway/oss/ari4java/generated/ari_0_0_1/models/Channel_impl_ari_0_0_1.java deleted file mode 100644 index 6e48d77e..00000000 --- a/classes/ch/loway/oss/ari4java/generated/ari_0_0_1/models/Channel_impl_ari_0_0_1.java +++ /dev/null @@ -1,151 +0,0 @@ -package ch.loway.oss.ari4java.generated.ari_0_0_1.models; - -// ---------------------------------------------------- -// THIS CLASS WAS GENERATED AUTOMATICALLY -// PLEASE DO NOT EDIT -// Generated on: Tue Dec 19 09:55:48 CET 2017 -// ---------------------------------------------------- - -import ch.loway.oss.ari4java.generated.*; -import com.fasterxml.jackson.databind.annotation.JsonDeserialize; -import java.util.Date; -import java.util.List; -import java.util.Map; - -/********************************************************** - * A specific communication connection between Asterisk and an Endpoint. - * - * Defined in file: channels.json - * Generated by: Model - *********************************************************/ - -public class Channel_impl_ari_0_0_1 implements Channel, java.io.Serializable { -private static final long serialVersionUID = 1L; - /** */ - private String accountcode; - public String getAccountcode() { - return accountcode; - } - - @JsonDeserialize( as=String.class ) - public void setAccountcode(String val ) { - accountcode = val; - } - - /** */ - private CallerID caller; - public CallerID getCaller() { - return caller; - } - - @JsonDeserialize( as=CallerID_impl_ari_0_0_1.class ) - public void setCaller(CallerID val ) { - caller = val; - } - - /** */ - private CallerID connected; - public CallerID getConnected() { - return connected; - } - - @JsonDeserialize( as=CallerID_impl_ari_0_0_1.class ) - public void setConnected(CallerID val ) { - connected = val; - } - - /** Timestamp when channel was created */ - private Date creationtime; - public Date getCreationtime() { - return creationtime; - } - - @JsonDeserialize( as=Date.class ) - public void setCreationtime(Date val ) { - creationtime = val; - } - - /** Current location in the dialplan */ - private DialplanCEP dialplan; - public DialplanCEP getDialplan() { - return dialplan; - } - - @JsonDeserialize( as=DialplanCEP_impl_ari_0_0_1.class ) - public void setDialplan(DialplanCEP val ) { - dialplan = val; - } - - /** Unique identifier of the channel. - -This is the same as the Uniqueid field in AMI. */ - private String id; - public String getId() { - return id; - } - - @JsonDeserialize( as=String.class ) - public void setId(String val ) { - id = val; - } - - /** Name of the channel (i.e. SIP/foo-0000a7e3) */ - private String name; - public String getName() { - return name; - } - - @JsonDeserialize( as=String.class ) - public void setName(String val ) { - name = val; - } - - /** */ - private String state; - public String getState() { - return state; - } - - @JsonDeserialize( as=String.class ) - public void setState(String val ) { - state = val; - } - -/********************************************************** - * The default spoken language - * - * @since ari_1_7_0 - *********************************************************/ - public String getLanguage(){ - throw new UnsupportedOperationException("Method availble from ..."); -}; - -/********************************************************** - * The default spoken language - * - * @since ari_1_7_0 - *********************************************************/ - public void setLanguage(String val ){ - throw new UnsupportedOperationException("Method availble from ..."); -}; - -/********************************************************** - * Channel variables - * - * @since ari_2_0_0 - *********************************************************/ - public String getChannelvars(){ - throw new UnsupportedOperationException("Method availble from ..."); -}; - -/********************************************************** - * Channel variables - * - * @since ari_2_0_0 - *********************************************************/ - public void setChannelvars(String val ){ - throw new UnsupportedOperationException("Method availble from ..."); -}; - -} - diff --git a/classes/ch/loway/oss/ari4java/generated/ari_0_0_1/models/ConfigInfo_impl_ari_0_0_1.java b/classes/ch/loway/oss/ari4java/generated/ari_0_0_1/models/ConfigInfo_impl_ari_0_0_1.java deleted file mode 100644 index d6e5a9d8..00000000 --- a/classes/ch/loway/oss/ari4java/generated/ari_0_0_1/models/ConfigInfo_impl_ari_0_0_1.java +++ /dev/null @@ -1,92 +0,0 @@ -package ch.loway.oss.ari4java.generated.ari_0_0_1.models; - -// ---------------------------------------------------- -// THIS CLASS WAS GENERATED AUTOMATICALLY -// PLEASE DO NOT EDIT -// Generated on: Tue Dec 19 09:55:48 CET 2017 -// ---------------------------------------------------- - -import ch.loway.oss.ari4java.generated.*; -import com.fasterxml.jackson.databind.annotation.JsonDeserialize; -import java.util.Date; -import java.util.List; -import java.util.Map; - -/********************************************************** - * Info about Asterisk configuration - * - * Defined in file: asterisk.json - * Generated by: Model - *********************************************************/ - -public class ConfigInfo_impl_ari_0_0_1 implements ConfigInfo, java.io.Serializable { -private static final long serialVersionUID = 1L; - /** Default language for media playback. */ - private String default_language; - public String getDefault_language() { - return default_language; - } - - @JsonDeserialize( as=String.class ) - public void setDefault_language(String val ) { - default_language = val; - } - - /** Maximum number of simultaneous channels. */ - private int max_channels; - public int getMax_channels() { - return max_channels; - } - - @JsonDeserialize( as=int.class ) - public void setMax_channels(int val ) { - max_channels = val; - } - - /** Maximum load avg on system. */ - private double max_load; - public double getMax_load() { - return max_load; - } - - @JsonDeserialize( as=double.class ) - public void setMax_load(double val ) { - max_load = val; - } - - /** Maximum number of open file handles (files, sockets). */ - private int max_open_files; - public int getMax_open_files() { - return max_open_files; - } - - @JsonDeserialize( as=int.class ) - public void setMax_open_files(int val ) { - max_open_files = val; - } - - /** Asterisk system name. */ - private String name; - public String getName() { - return name; - } - - @JsonDeserialize( as=String.class ) - public void setName(String val ) { - name = val; - } - - /** Effective user/group id for running Asterisk. */ - private SetId setid; - public SetId getSetid() { - return setid; - } - - @JsonDeserialize( as=SetId_impl_ari_0_0_1.class ) - public void setSetid(SetId val ) { - setid = val; - } - -/** No missing signatures from interface */ -} - diff --git a/classes/ch/loway/oss/ari4java/generated/ari_0_0_1/models/DeviceStateChanged_impl_ari_0_0_1.java b/classes/ch/loway/oss/ari4java/generated/ari_0_0_1/models/DeviceStateChanged_impl_ari_0_0_1.java deleted file mode 100644 index b780ae3c..00000000 --- a/classes/ch/loway/oss/ari4java/generated/ari_0_0_1/models/DeviceStateChanged_impl_ari_0_0_1.java +++ /dev/null @@ -1,37 +0,0 @@ -package ch.loway.oss.ari4java.generated.ari_0_0_1.models; - -// ---------------------------------------------------- -// THIS CLASS WAS GENERATED AUTOMATICALLY -// PLEASE DO NOT EDIT -// Generated on: Tue Dec 19 09:55:48 CET 2017 -// ---------------------------------------------------- - -import ch.loway.oss.ari4java.generated.*; -import com.fasterxml.jackson.databind.annotation.JsonDeserialize; -import java.util.Date; -import java.util.List; -import java.util.Map; - -/********************************************************** - * Notification that a device state has changed. - * - * Defined in file: events.json - * Generated by: Model - *********************************************************/ - -public class DeviceStateChanged_impl_ari_0_0_1 extends Event_impl_ari_0_0_1 implements DeviceStateChanged, java.io.Serializable { -private static final long serialVersionUID = 1L; - /** Device state object */ - private DeviceState device_state; - public DeviceState getDevice_state() { - return device_state; - } - - @JsonDeserialize( as=DeviceState_impl_ari_0_0_1.class ) - public void setDevice_state(DeviceState val ) { - device_state = val; - } - -/** No missing signatures from interface */ -} - diff --git a/classes/ch/loway/oss/ari4java/generated/ari_0_0_1/models/DeviceState_impl_ari_0_0_1.java b/classes/ch/loway/oss/ari4java/generated/ari_0_0_1/models/DeviceState_impl_ari_0_0_1.java deleted file mode 100644 index 8aa1242e..00000000 --- a/classes/ch/loway/oss/ari4java/generated/ari_0_0_1/models/DeviceState_impl_ari_0_0_1.java +++ /dev/null @@ -1,48 +0,0 @@ -package ch.loway.oss.ari4java.generated.ari_0_0_1.models; - -// ---------------------------------------------------- -// THIS CLASS WAS GENERATED AUTOMATICALLY -// PLEASE DO NOT EDIT -// Generated on: Tue Dec 19 09:55:48 CET 2017 -// ---------------------------------------------------- - -import ch.loway.oss.ari4java.generated.*; -import com.fasterxml.jackson.databind.annotation.JsonDeserialize; -import java.util.Date; -import java.util.List; -import java.util.Map; - -/********************************************************** - * Represents the state of a device. - * - * Defined in file: deviceStates.json - * Generated by: Model - *********************************************************/ - -public class DeviceState_impl_ari_0_0_1 implements DeviceState, java.io.Serializable { -private static final long serialVersionUID = 1L; - /** Name of the device. */ - private String name; - public String getName() { - return name; - } - - @JsonDeserialize( as=String.class ) - public void setName(String val ) { - name = val; - } - - /** Device's state */ - private String state; - public String getState() { - return state; - } - - @JsonDeserialize( as=String.class ) - public void setState(String val ) { - state = val; - } - -/** No missing signatures from interface */ -} - diff --git a/classes/ch/loway/oss/ari4java/generated/ari_0_0_1/models/Dialed_impl_ari_0_0_1.java b/classes/ch/loway/oss/ari4java/generated/ari_0_0_1/models/Dialed_impl_ari_0_0_1.java deleted file mode 100644 index 85a42958..00000000 --- a/classes/ch/loway/oss/ari4java/generated/ari_0_0_1/models/Dialed_impl_ari_0_0_1.java +++ /dev/null @@ -1,26 +0,0 @@ -package ch.loway.oss.ari4java.generated.ari_0_0_1.models; - -// ---------------------------------------------------- -// THIS CLASS WAS GENERATED AUTOMATICALLY -// PLEASE DO NOT EDIT -// Generated on: Tue Dec 19 09:55:48 CET 2017 -// ---------------------------------------------------- - -import ch.loway.oss.ari4java.generated.*; -import com.fasterxml.jackson.databind.annotation.JsonDeserialize; -import java.util.Date; -import java.util.List; -import java.util.Map; - -/********************************************************** - * Dialed channel information. - * - * Defined in file: channels.json - * Generated by: Model - *********************************************************/ - -public class Dialed_impl_ari_0_0_1 implements Dialed, java.io.Serializable { -private static final long serialVersionUID = 1L; -/** No missing signatures from interface */ -} - diff --git a/classes/ch/loway/oss/ari4java/generated/ari_0_0_1/models/DialplanCEP_impl_ari_0_0_1.java b/classes/ch/loway/oss/ari4java/generated/ari_0_0_1/models/DialplanCEP_impl_ari_0_0_1.java deleted file mode 100644 index ba6b20e9..00000000 --- a/classes/ch/loway/oss/ari4java/generated/ari_0_0_1/models/DialplanCEP_impl_ari_0_0_1.java +++ /dev/null @@ -1,59 +0,0 @@ -package ch.loway.oss.ari4java.generated.ari_0_0_1.models; - -// ---------------------------------------------------- -// THIS CLASS WAS GENERATED AUTOMATICALLY -// PLEASE DO NOT EDIT -// Generated on: Tue Dec 19 09:55:48 CET 2017 -// ---------------------------------------------------- - -import ch.loway.oss.ari4java.generated.*; -import com.fasterxml.jackson.databind.annotation.JsonDeserialize; -import java.util.Date; -import java.util.List; -import java.util.Map; - -/********************************************************** - * Dialplan location (context/extension/priority) - * - * Defined in file: channels.json - * Generated by: Model - *********************************************************/ - -public class DialplanCEP_impl_ari_0_0_1 implements DialplanCEP, java.io.Serializable { -private static final long serialVersionUID = 1L; - /** Context in the dialplan */ - private String context; - public String getContext() { - return context; - } - - @JsonDeserialize( as=String.class ) - public void setContext(String val ) { - context = val; - } - - /** Extension in the dialplan */ - private String exten; - public String getExten() { - return exten; - } - - @JsonDeserialize( as=String.class ) - public void setExten(String val ) { - exten = val; - } - - /** Priority in the dialplan */ - private long priority; - public long getPriority() { - return priority; - } - - @JsonDeserialize( as=long.class ) - public void setPriority(long val ) { - priority = val; - } - -/** No missing signatures from interface */ -} - diff --git a/classes/ch/loway/oss/ari4java/generated/ari_0_0_1/models/EndpointStateChange_impl_ari_0_0_1.java b/classes/ch/loway/oss/ari4java/generated/ari_0_0_1/models/EndpointStateChange_impl_ari_0_0_1.java deleted file mode 100644 index 986f8dd8..00000000 --- a/classes/ch/loway/oss/ari4java/generated/ari_0_0_1/models/EndpointStateChange_impl_ari_0_0_1.java +++ /dev/null @@ -1,37 +0,0 @@ -package ch.loway.oss.ari4java.generated.ari_0_0_1.models; - -// ---------------------------------------------------- -// THIS CLASS WAS GENERATED AUTOMATICALLY -// PLEASE DO NOT EDIT -// Generated on: Tue Dec 19 09:55:48 CET 2017 -// ---------------------------------------------------- - -import ch.loway.oss.ari4java.generated.*; -import com.fasterxml.jackson.databind.annotation.JsonDeserialize; -import java.util.Date; -import java.util.List; -import java.util.Map; - -/********************************************************** - * Endpoint state changed. - * - * Defined in file: events.json - * Generated by: Model - *********************************************************/ - -public class EndpointStateChange_impl_ari_0_0_1 extends Event_impl_ari_0_0_1 implements EndpointStateChange, java.io.Serializable { -private static final long serialVersionUID = 1L; - /** */ - private Endpoint endpoint; - public Endpoint getEndpoint() { - return endpoint; - } - - @JsonDeserialize( as=Endpoint_impl_ari_0_0_1.class ) - public void setEndpoint(Endpoint val ) { - endpoint = val; - } - -/** No missing signatures from interface */ -} - diff --git a/classes/ch/loway/oss/ari4java/generated/ari_0_0_1/models/Endpoint_impl_ari_0_0_1.java b/classes/ch/loway/oss/ari4java/generated/ari_0_0_1/models/Endpoint_impl_ari_0_0_1.java deleted file mode 100644 index 5e975f24..00000000 --- a/classes/ch/loway/oss/ari4java/generated/ari_0_0_1/models/Endpoint_impl_ari_0_0_1.java +++ /dev/null @@ -1,72 +0,0 @@ -package ch.loway.oss.ari4java.generated.ari_0_0_1.models; - -// ---------------------------------------------------- -// THIS CLASS WAS GENERATED AUTOMATICALLY -// PLEASE DO NOT EDIT -// Generated on: Tue Dec 19 09:55:48 CET 2017 -// ---------------------------------------------------- - -import ch.loway.oss.ari4java.generated.*; -import com.fasterxml.jackson.databind.annotation.JsonDeserialize; -import java.util.Date; -import java.util.List; -import java.util.Map; - -/********************************************************** - * An external device that may offer/accept calls to/from Asterisk. - * - * Unlike most resources, which have a single unique identifier, an endpoint is uniquely identified by the technology/resource pair. - * - * Defined in file: endpoints.json - * Generated by: Model - *********************************************************/ - -public class Endpoint_impl_ari_0_0_1 implements Endpoint, java.io.Serializable { -private static final long serialVersionUID = 1L; - /** Id's of channels associated with this endpoint */ - private List channel_ids; - public List getChannel_ids() { - return channel_ids; - } - - @JsonDeserialize( contentAs=String.class ) - public void setChannel_ids(List val ) { - channel_ids = val; - } - - /** Identifier of the endpoint, specific to the given technology. */ - private String resource; - public String getResource() { - return resource; - } - - @JsonDeserialize( as=String.class ) - public void setResource(String val ) { - resource = val; - } - - /** Endpoint's state */ - private String state; - public String getState() { - return state; - } - - @JsonDeserialize( as=String.class ) - public void setState(String val ) { - state = val; - } - - /** Technology of the endpoint */ - private String technology; - public String getTechnology() { - return technology; - } - - @JsonDeserialize( as=String.class ) - public void setTechnology(String val ) { - technology = val; - } - -/** No missing signatures from interface */ -} - diff --git a/classes/ch/loway/oss/ari4java/generated/ari_0_0_1/models/Event_impl_ari_0_0_1.java b/classes/ch/loway/oss/ari4java/generated/ari_0_0_1/models/Event_impl_ari_0_0_1.java deleted file mode 100644 index c6d615e1..00000000 --- a/classes/ch/loway/oss/ari4java/generated/ari_0_0_1/models/Event_impl_ari_0_0_1.java +++ /dev/null @@ -1,48 +0,0 @@ -package ch.loway.oss.ari4java.generated.ari_0_0_1.models; - -// ---------------------------------------------------- -// THIS CLASS WAS GENERATED AUTOMATICALLY -// PLEASE DO NOT EDIT -// Generated on: Tue Dec 19 09:55:48 CET 2017 -// ---------------------------------------------------- - -import ch.loway.oss.ari4java.generated.*; -import com.fasterxml.jackson.databind.annotation.JsonDeserialize; -import java.util.Date; -import java.util.List; -import java.util.Map; - -/********************************************************** - * Base type for asynchronous events from Asterisk. - * - * Defined in file: events.json - * Generated by: Model - *********************************************************/ - -public class Event_impl_ari_0_0_1 extends Message_impl_ari_0_0_1 implements Event, java.io.Serializable { -private static final long serialVersionUID = 1L; - /** Name of the application receiving the event. */ - private String application; - public String getApplication() { - return application; - } - - @JsonDeserialize( as=String.class ) - public void setApplication(String val ) { - application = val; - } - - /** Time at which this event was created. */ - private Date timestamp; - public Date getTimestamp() { - return timestamp; - } - - @JsonDeserialize( as=Date.class ) - public void setTimestamp(Date val ) { - timestamp = val; - } - -/** No missing signatures from interface */ -} - diff --git a/classes/ch/loway/oss/ari4java/generated/ari_0_0_1/models/FormatLangPair_impl_ari_0_0_1.java b/classes/ch/loway/oss/ari4java/generated/ari_0_0_1/models/FormatLangPair_impl_ari_0_0_1.java deleted file mode 100644 index f245a288..00000000 --- a/classes/ch/loway/oss/ari4java/generated/ari_0_0_1/models/FormatLangPair_impl_ari_0_0_1.java +++ /dev/null @@ -1,48 +0,0 @@ -package ch.loway.oss.ari4java.generated.ari_0_0_1.models; - -// ---------------------------------------------------- -// THIS CLASS WAS GENERATED AUTOMATICALLY -// PLEASE DO NOT EDIT -// Generated on: Tue Dec 19 09:55:48 CET 2017 -// ---------------------------------------------------- - -import ch.loway.oss.ari4java.generated.*; -import com.fasterxml.jackson.databind.annotation.JsonDeserialize; -import java.util.Date; -import java.util.List; -import java.util.Map; - -/********************************************************** - * Identifies the format and language of a sound file - * - * Defined in file: sounds.json - * Generated by: Model - *********************************************************/ - -public class FormatLangPair_impl_ari_0_0_1 implements FormatLangPair, java.io.Serializable { -private static final long serialVersionUID = 1L; - /** */ - private String format; - public String getFormat() { - return format; - } - - @JsonDeserialize( as=String.class ) - public void setFormat(String val ) { - format = val; - } - - /** */ - private String language; - public String getLanguage() { - return language; - } - - @JsonDeserialize( as=String.class ) - public void setLanguage(String val ) { - language = val; - } - -/** No missing signatures from interface */ -} - diff --git a/classes/ch/loway/oss/ari4java/generated/ari_0_0_1/models/LiveRecording_impl_ari_0_0_1.java b/classes/ch/loway/oss/ari4java/generated/ari_0_0_1/models/LiveRecording_impl_ari_0_0_1.java deleted file mode 100644 index 828308b8..00000000 --- a/classes/ch/loway/oss/ari4java/generated/ari_0_0_1/models/LiveRecording_impl_ari_0_0_1.java +++ /dev/null @@ -1,141 +0,0 @@ -package ch.loway.oss.ari4java.generated.ari_0_0_1.models; - -// ---------------------------------------------------- -// THIS CLASS WAS GENERATED AUTOMATICALLY -// PLEASE DO NOT EDIT -// Generated on: Tue Dec 19 09:55:48 CET 2017 -// ---------------------------------------------------- - -import ch.loway.oss.ari4java.generated.*; -import com.fasterxml.jackson.databind.annotation.JsonDeserialize; -import java.util.Date; -import java.util.List; -import java.util.Map; - -/********************************************************** - * A recording that is in progress - * - * Defined in file: recordings.json - * Generated by: Model - *********************************************************/ - -public class LiveRecording_impl_ari_0_0_1 implements LiveRecording, java.io.Serializable { -private static final long serialVersionUID = 1L; - /** Cause for recording failure if failed */ - private String cause; - public String getCause() { - return cause; - } - - @JsonDeserialize( as=String.class ) - public void setCause(String val ) { - cause = val; - } - - /** */ - private String format; - public String getFormat() { - return format; - } - - @JsonDeserialize( as=String.class ) - public void setFormat(String val ) { - format = val; - } - - /** Base name for the recording */ - private String name; - public String getName() { - return name; - } - - @JsonDeserialize( as=String.class ) - public void setName(String val ) { - name = val; - } - - /** */ - private String state; - public String getState() { - return state; - } - - @JsonDeserialize( as=String.class ) - public void setState(String val ) { - state = val; - } - -/********************************************************** - * URI for the channel or bridge being recorded - * - * @since ari_1_5_0 - *********************************************************/ - public String getTarget_uri(){ - throw new UnsupportedOperationException("Method availble from ..."); -}; - -/********************************************************** - * Duration of talking, in seconds, detected in the recording. This is only available if the recording was initiated with a non-zero maxSilenceSeconds. - * - * @since ari_1_5_0 - *********************************************************/ - public void setTalking_duration(int val ){ - throw new UnsupportedOperationException("Method availble from ..."); -}; - -/********************************************************** - * Duration in seconds of the recording - * - * @since ari_1_5_0 - *********************************************************/ - public int getDuration(){ - throw new UnsupportedOperationException("Method availble from ..."); -}; - -/********************************************************** - * URI for the channel or bridge being recorded - * - * @since ari_1_5_0 - *********************************************************/ - public void setTarget_uri(String val ){ - throw new UnsupportedOperationException("Method availble from ..."); -}; - -/********************************************************** - * Duration in seconds of the recording - * - * @since ari_1_5_0 - *********************************************************/ - public void setDuration(int val ){ - throw new UnsupportedOperationException("Method availble from ..."); -}; - -/********************************************************** - * Duration of silence, in seconds, detected in the recording. This is only available if the recording was initiated with a non-zero maxSilenceSeconds. - * - * @since ari_1_5_0 - *********************************************************/ - public int getSilence_duration(){ - throw new UnsupportedOperationException("Method availble from ..."); -}; - -/********************************************************** - * Duration of talking, in seconds, detected in the recording. This is only available if the recording was initiated with a non-zero maxSilenceSeconds. - * - * @since ari_1_5_0 - *********************************************************/ - public int getTalking_duration(){ - throw new UnsupportedOperationException("Method availble from ..."); -}; - -/********************************************************** - * Duration of silence, in seconds, detected in the recording. This is only available if the recording was initiated with a non-zero maxSilenceSeconds. - * - * @since ari_1_5_0 - *********************************************************/ - public void setSilence_duration(int val ){ - throw new UnsupportedOperationException("Method availble from ..."); -}; - -} - diff --git a/classes/ch/loway/oss/ari4java/generated/ari_0_0_1/models/Message_impl_ari_0_0_1.java b/classes/ch/loway/oss/ari4java/generated/ari_0_0_1/models/Message_impl_ari_0_0_1.java deleted file mode 100644 index 8a75845c..00000000 --- a/classes/ch/loway/oss/ari4java/generated/ari_0_0_1/models/Message_impl_ari_0_0_1.java +++ /dev/null @@ -1,86 +0,0 @@ -package ch.loway.oss.ari4java.generated.ari_0_0_1.models; - -// ---------------------------------------------------- -// THIS CLASS WAS GENERATED AUTOMATICALLY -// PLEASE DO NOT EDIT -// Generated on: Tue Dec 19 09:55:48 CET 2017 -// ---------------------------------------------------- - -import ch.loway.oss.ari4java.generated.*; -import com.fasterxml.jackson.annotation.JsonSubTypes; -import com.fasterxml.jackson.annotation.JsonSubTypes.Type; -import com.fasterxml.jackson.annotation.JsonTypeInfo; -import com.fasterxml.jackson.databind.annotation.JsonDeserialize; -import java.util.Date; -import java.util.List; -import java.util.Map; - -/********************************************************** - * Base type for errors and events - * - * Defined in file: events.json - * Generated by: Model - *********************************************************/ - @JsonTypeInfo( use = JsonTypeInfo.Id.NAME, include = JsonTypeInfo.As.PROPERTY, property = "type") - @JsonSubTypes({ @Type(value = MissingParams_impl_ari_0_0_1.class, name = "MissingParams") -, @Type(value = Event_impl_ari_0_0_1.class, name = "Event") -, @Type(value = DeviceStateChanged_impl_ari_0_0_1.class, name = "DeviceStateChanged") -, @Type(value = PlaybackStarted_impl_ari_0_0_1.class, name = "PlaybackStarted") -, @Type(value = PlaybackFinished_impl_ari_0_0_1.class, name = "PlaybackFinished") -, @Type(value = RecordingStarted_impl_ari_0_0_1.class, name = "RecordingStarted") -, @Type(value = RecordingFinished_impl_ari_0_0_1.class, name = "RecordingFinished") -, @Type(value = RecordingFailed_impl_ari_0_0_1.class, name = "RecordingFailed") -, @Type(value = ApplicationReplaced_impl_ari_0_0_1.class, name = "ApplicationReplaced") -, @Type(value = BridgeCreated_impl_ari_0_0_1.class, name = "BridgeCreated") -, @Type(value = BridgeDestroyed_impl_ari_0_0_1.class, name = "BridgeDestroyed") -, @Type(value = BridgeMerged_impl_ari_0_0_1.class, name = "BridgeMerged") -, @Type(value = ChannelCreated_impl_ari_0_0_1.class, name = "ChannelCreated") -, @Type(value = ChannelDestroyed_impl_ari_0_0_1.class, name = "ChannelDestroyed") -, @Type(value = ChannelEnteredBridge_impl_ari_0_0_1.class, name = "ChannelEnteredBridge") -, @Type(value = ChannelLeftBridge_impl_ari_0_0_1.class, name = "ChannelLeftBridge") -, @Type(value = ChannelStateChange_impl_ari_0_0_1.class, name = "ChannelStateChange") -, @Type(value = ChannelDtmfReceived_impl_ari_0_0_1.class, name = "ChannelDtmfReceived") -, @Type(value = ChannelDialplan_impl_ari_0_0_1.class, name = "ChannelDialplan") -, @Type(value = ChannelCallerId_impl_ari_0_0_1.class, name = "ChannelCallerId") -, @Type(value = ChannelUserevent_impl_ari_0_0_1.class, name = "ChannelUserevent") -, @Type(value = ChannelHangupRequest_impl_ari_0_0_1.class, name = "ChannelHangupRequest") -, @Type(value = ChannelVarset_impl_ari_0_0_1.class, name = "ChannelVarset") -, @Type(value = EndpointStateChange_impl_ari_0_0_1.class, name = "EndpointStateChange") -, @Type(value = StasisEnd_impl_ari_0_0_1.class, name = "StasisEnd") -, @Type(value = StasisStart_impl_ari_0_0_1.class, name = "StasisStart") - }) - - -public class Message_impl_ari_0_0_1 implements Message, java.io.Serializable { -private static final long serialVersionUID = 1L; - /** Indicates the type of this message. */ - private String type; - public String getType() { - return type; - } - - @JsonDeserialize( as=String.class ) - public void setType(String val ) { - type = val; - } - -/********************************************************** - * The unique ID for the Asterisk instance that raised this event. - * - * @since ari_2_0_0 - *********************************************************/ - public void setAsterisk_id(String val ){ - throw new UnsupportedOperationException("Method availble from ..."); -}; - -/********************************************************** - * The unique ID for the Asterisk instance that raised this event. - * - * @since ari_2_0_0 - *********************************************************/ - public String getAsterisk_id(){ - throw new UnsupportedOperationException("Method availble from ..."); -}; - -} - diff --git a/classes/ch/loway/oss/ari4java/generated/ari_0_0_1/models/MissingParams_impl_ari_0_0_1.java b/classes/ch/loway/oss/ari4java/generated/ari_0_0_1/models/MissingParams_impl_ari_0_0_1.java deleted file mode 100644 index 8b3885b8..00000000 --- a/classes/ch/loway/oss/ari4java/generated/ari_0_0_1/models/MissingParams_impl_ari_0_0_1.java +++ /dev/null @@ -1,37 +0,0 @@ -package ch.loway.oss.ari4java.generated.ari_0_0_1.models; - -// ---------------------------------------------------- -// THIS CLASS WAS GENERATED AUTOMATICALLY -// PLEASE DO NOT EDIT -// Generated on: Tue Dec 19 09:55:48 CET 2017 -// ---------------------------------------------------- - -import ch.loway.oss.ari4java.generated.*; -import com.fasterxml.jackson.databind.annotation.JsonDeserialize; -import java.util.Date; -import java.util.List; -import java.util.Map; - -/********************************************************** - * Error event sent when required params are missing. - * - * Defined in file: events.json - * Generated by: Model - *********************************************************/ - -public class MissingParams_impl_ari_0_0_1 extends Message_impl_ari_0_0_1 implements MissingParams, java.io.Serializable { -private static final long serialVersionUID = 1L; - /** A list of the missing parameters */ - private List params; - public List getParams() { - return params; - } - - @JsonDeserialize( contentAs=String.class ) - public void setParams(List val ) { - params = val; - } - -/** No missing signatures from interface */ -} - diff --git a/classes/ch/loway/oss/ari4java/generated/ari_0_0_1/models/PlaybackFinished_impl_ari_0_0_1.java b/classes/ch/loway/oss/ari4java/generated/ari_0_0_1/models/PlaybackFinished_impl_ari_0_0_1.java deleted file mode 100644 index 0125bccf..00000000 --- a/classes/ch/loway/oss/ari4java/generated/ari_0_0_1/models/PlaybackFinished_impl_ari_0_0_1.java +++ /dev/null @@ -1,37 +0,0 @@ -package ch.loway.oss.ari4java.generated.ari_0_0_1.models; - -// ---------------------------------------------------- -// THIS CLASS WAS GENERATED AUTOMATICALLY -// PLEASE DO NOT EDIT -// Generated on: Tue Dec 19 09:55:48 CET 2017 -// ---------------------------------------------------- - -import ch.loway.oss.ari4java.generated.*; -import com.fasterxml.jackson.databind.annotation.JsonDeserialize; -import java.util.Date; -import java.util.List; -import java.util.Map; - -/********************************************************** - * Event showing the completion of a media playback operation. - * - * Defined in file: events.json - * Generated by: Model - *********************************************************/ - -public class PlaybackFinished_impl_ari_0_0_1 extends Event_impl_ari_0_0_1 implements PlaybackFinished, java.io.Serializable { -private static final long serialVersionUID = 1L; - /** Playback control object */ - private Playback playback; - public Playback getPlayback() { - return playback; - } - - @JsonDeserialize( as=Playback_impl_ari_0_0_1.class ) - public void setPlayback(Playback val ) { - playback = val; - } - -/** No missing signatures from interface */ -} - diff --git a/classes/ch/loway/oss/ari4java/generated/ari_0_0_1/models/PlaybackStarted_impl_ari_0_0_1.java b/classes/ch/loway/oss/ari4java/generated/ari_0_0_1/models/PlaybackStarted_impl_ari_0_0_1.java deleted file mode 100644 index 83ed3d36..00000000 --- a/classes/ch/loway/oss/ari4java/generated/ari_0_0_1/models/PlaybackStarted_impl_ari_0_0_1.java +++ /dev/null @@ -1,37 +0,0 @@ -package ch.loway.oss.ari4java.generated.ari_0_0_1.models; - -// ---------------------------------------------------- -// THIS CLASS WAS GENERATED AUTOMATICALLY -// PLEASE DO NOT EDIT -// Generated on: Tue Dec 19 09:55:48 CET 2017 -// ---------------------------------------------------- - -import ch.loway.oss.ari4java.generated.*; -import com.fasterxml.jackson.databind.annotation.JsonDeserialize; -import java.util.Date; -import java.util.List; -import java.util.Map; - -/********************************************************** - * Event showing the start of a media playback operation. - * - * Defined in file: events.json - * Generated by: Model - *********************************************************/ - -public class PlaybackStarted_impl_ari_0_0_1 extends Event_impl_ari_0_0_1 implements PlaybackStarted, java.io.Serializable { -private static final long serialVersionUID = 1L; - /** Playback control object */ - private Playback playback; - public Playback getPlayback() { - return playback; - } - - @JsonDeserialize( as=Playback_impl_ari_0_0_1.class ) - public void setPlayback(Playback val ) { - playback = val; - } - -/** No missing signatures from interface */ -} - diff --git a/classes/ch/loway/oss/ari4java/generated/ari_0_0_1/models/Playback_impl_ari_0_0_1.java b/classes/ch/loway/oss/ari4java/generated/ari_0_0_1/models/Playback_impl_ari_0_0_1.java deleted file mode 100644 index 9f73d5f3..00000000 --- a/classes/ch/loway/oss/ari4java/generated/ari_0_0_1/models/Playback_impl_ari_0_0_1.java +++ /dev/null @@ -1,98 +0,0 @@ -package ch.loway.oss.ari4java.generated.ari_0_0_1.models; - -// ---------------------------------------------------- -// THIS CLASS WAS GENERATED AUTOMATICALLY -// PLEASE DO NOT EDIT -// Generated on: Tue Dec 19 09:55:48 CET 2017 -// ---------------------------------------------------- - -import ch.loway.oss.ari4java.generated.*; -import com.fasterxml.jackson.databind.annotation.JsonDeserialize; -import java.util.Date; -import java.util.List; -import java.util.Map; - -/********************************************************** - * Object representing the playback of media to a channel - * - * Defined in file: playbacks.json - * Generated by: Model - *********************************************************/ - -public class Playback_impl_ari_0_0_1 implements Playback, java.io.Serializable { -private static final long serialVersionUID = 1L; - /** ID for this playback operation */ - private String id; - public String getId() { - return id; - } - - @JsonDeserialize( as=String.class ) - public void setId(String val ) { - id = val; - } - - /** For media types that support multiple languages, the language requested for playback. */ - private String language; - public String getLanguage() { - return language; - } - - @JsonDeserialize( as=String.class ) - public void setLanguage(String val ) { - language = val; - } - - /** URI for the media to play back. */ - private String media_uri; - public String getMedia_uri() { - return media_uri; - } - - @JsonDeserialize( as=String.class ) - public void setMedia_uri(String val ) { - media_uri = val; - } - - /** Current state of the playback operation. */ - private String state; - public String getState() { - return state; - } - - @JsonDeserialize( as=String.class ) - public void setState(String val ) { - state = val; - } - - /** URI for the channel or bridge to play the media on */ - private String target_uri; - public String getTarget_uri() { - return target_uri; - } - - @JsonDeserialize( as=String.class ) - public void setTarget_uri(String val ) { - target_uri = val; - } - -/********************************************************** - * If a list of URIs is being played, the next media URI to be played back. - * - * @since ari_1_10_0 - *********************************************************/ - public String getNext_media_uri(){ - throw new UnsupportedOperationException("Method availble from ..."); -}; - -/********************************************************** - * If a list of URIs is being played, the next media URI to be played back. - * - * @since ari_1_10_0 - *********************************************************/ - public void setNext_media_uri(String val ){ - throw new UnsupportedOperationException("Method availble from ..."); -}; - -} - diff --git a/classes/ch/loway/oss/ari4java/generated/ari_0_0_1/models/RecordingFailed_impl_ari_0_0_1.java b/classes/ch/loway/oss/ari4java/generated/ari_0_0_1/models/RecordingFailed_impl_ari_0_0_1.java deleted file mode 100644 index 799f4f42..00000000 --- a/classes/ch/loway/oss/ari4java/generated/ari_0_0_1/models/RecordingFailed_impl_ari_0_0_1.java +++ /dev/null @@ -1,37 +0,0 @@ -package ch.loway.oss.ari4java.generated.ari_0_0_1.models; - -// ---------------------------------------------------- -// THIS CLASS WAS GENERATED AUTOMATICALLY -// PLEASE DO NOT EDIT -// Generated on: Tue Dec 19 09:55:48 CET 2017 -// ---------------------------------------------------- - -import ch.loway.oss.ari4java.generated.*; -import com.fasterxml.jackson.databind.annotation.JsonDeserialize; -import java.util.Date; -import java.util.List; -import java.util.Map; - -/********************************************************** - * Event showing failure of a recording operation. - * - * Defined in file: events.json - * Generated by: Model - *********************************************************/ - -public class RecordingFailed_impl_ari_0_0_1 extends Event_impl_ari_0_0_1 implements RecordingFailed, java.io.Serializable { -private static final long serialVersionUID = 1L; - /** Recording control object */ - private LiveRecording recording; - public LiveRecording getRecording() { - return recording; - } - - @JsonDeserialize( as=LiveRecording_impl_ari_0_0_1.class ) - public void setRecording(LiveRecording val ) { - recording = val; - } - -/** No missing signatures from interface */ -} - diff --git a/classes/ch/loway/oss/ari4java/generated/ari_0_0_1/models/RecordingFinished_impl_ari_0_0_1.java b/classes/ch/loway/oss/ari4java/generated/ari_0_0_1/models/RecordingFinished_impl_ari_0_0_1.java deleted file mode 100644 index d4598758..00000000 --- a/classes/ch/loway/oss/ari4java/generated/ari_0_0_1/models/RecordingFinished_impl_ari_0_0_1.java +++ /dev/null @@ -1,37 +0,0 @@ -package ch.loway.oss.ari4java.generated.ari_0_0_1.models; - -// ---------------------------------------------------- -// THIS CLASS WAS GENERATED AUTOMATICALLY -// PLEASE DO NOT EDIT -// Generated on: Tue Dec 19 09:55:48 CET 2017 -// ---------------------------------------------------- - -import ch.loway.oss.ari4java.generated.*; -import com.fasterxml.jackson.databind.annotation.JsonDeserialize; -import java.util.Date; -import java.util.List; -import java.util.Map; - -/********************************************************** - * Event showing the completion of a recording operation. - * - * Defined in file: events.json - * Generated by: Model - *********************************************************/ - -public class RecordingFinished_impl_ari_0_0_1 extends Event_impl_ari_0_0_1 implements RecordingFinished, java.io.Serializable { -private static final long serialVersionUID = 1L; - /** Recording control object */ - private LiveRecording recording; - public LiveRecording getRecording() { - return recording; - } - - @JsonDeserialize( as=LiveRecording_impl_ari_0_0_1.class ) - public void setRecording(LiveRecording val ) { - recording = val; - } - -/** No missing signatures from interface */ -} - diff --git a/classes/ch/loway/oss/ari4java/generated/ari_0_0_1/models/RecordingStarted_impl_ari_0_0_1.java b/classes/ch/loway/oss/ari4java/generated/ari_0_0_1/models/RecordingStarted_impl_ari_0_0_1.java deleted file mode 100644 index 9c192507..00000000 --- a/classes/ch/loway/oss/ari4java/generated/ari_0_0_1/models/RecordingStarted_impl_ari_0_0_1.java +++ /dev/null @@ -1,37 +0,0 @@ -package ch.loway.oss.ari4java.generated.ari_0_0_1.models; - -// ---------------------------------------------------- -// THIS CLASS WAS GENERATED AUTOMATICALLY -// PLEASE DO NOT EDIT -// Generated on: Tue Dec 19 09:55:48 CET 2017 -// ---------------------------------------------------- - -import ch.loway.oss.ari4java.generated.*; -import com.fasterxml.jackson.databind.annotation.JsonDeserialize; -import java.util.Date; -import java.util.List; -import java.util.Map; - -/********************************************************** - * Event showing the start of a recording operation. - * - * Defined in file: events.json - * Generated by: Model - *********************************************************/ - -public class RecordingStarted_impl_ari_0_0_1 extends Event_impl_ari_0_0_1 implements RecordingStarted, java.io.Serializable { -private static final long serialVersionUID = 1L; - /** Recording control object */ - private LiveRecording recording; - public LiveRecording getRecording() { - return recording; - } - - @JsonDeserialize( as=LiveRecording_impl_ari_0_0_1.class ) - public void setRecording(LiveRecording val ) { - recording = val; - } - -/** No missing signatures from interface */ -} - diff --git a/classes/ch/loway/oss/ari4java/generated/ari_0_0_1/models/SetId_impl_ari_0_0_1.java b/classes/ch/loway/oss/ari4java/generated/ari_0_0_1/models/SetId_impl_ari_0_0_1.java deleted file mode 100644 index f4c82348..00000000 --- a/classes/ch/loway/oss/ari4java/generated/ari_0_0_1/models/SetId_impl_ari_0_0_1.java +++ /dev/null @@ -1,48 +0,0 @@ -package ch.loway.oss.ari4java.generated.ari_0_0_1.models; - -// ---------------------------------------------------- -// THIS CLASS WAS GENERATED AUTOMATICALLY -// PLEASE DO NOT EDIT -// Generated on: Tue Dec 19 09:55:48 CET 2017 -// ---------------------------------------------------- - -import ch.loway.oss.ari4java.generated.*; -import com.fasterxml.jackson.databind.annotation.JsonDeserialize; -import java.util.Date; -import java.util.List; -import java.util.Map; - -/********************************************************** - * Effective user/group id - * - * Defined in file: asterisk.json - * Generated by: Model - *********************************************************/ - -public class SetId_impl_ari_0_0_1 implements SetId, java.io.Serializable { -private static final long serialVersionUID = 1L; - /** Effective group id. */ - private String group; - public String getGroup() { - return group; - } - - @JsonDeserialize( as=String.class ) - public void setGroup(String val ) { - group = val; - } - - /** Effective user id. */ - private String user; - public String getUser() { - return user; - } - - @JsonDeserialize( as=String.class ) - public void setUser(String val ) { - user = val; - } - -/** No missing signatures from interface */ -} - diff --git a/classes/ch/loway/oss/ari4java/generated/ari_0_0_1/models/Sound_impl_ari_0_0_1.java b/classes/ch/loway/oss/ari4java/generated/ari_0_0_1/models/Sound_impl_ari_0_0_1.java deleted file mode 100644 index 482dbd7b..00000000 --- a/classes/ch/loway/oss/ari4java/generated/ari_0_0_1/models/Sound_impl_ari_0_0_1.java +++ /dev/null @@ -1,59 +0,0 @@ -package ch.loway.oss.ari4java.generated.ari_0_0_1.models; - -// ---------------------------------------------------- -// THIS CLASS WAS GENERATED AUTOMATICALLY -// PLEASE DO NOT EDIT -// Generated on: Tue Dec 19 09:55:48 CET 2017 -// ---------------------------------------------------- - -import ch.loway.oss.ari4java.generated.*; -import com.fasterxml.jackson.databind.annotation.JsonDeserialize; -import java.util.Date; -import java.util.List; -import java.util.Map; - -/********************************************************** - * A media file that may be played back. - * - * Defined in file: sounds.json - * Generated by: Model - *********************************************************/ - -public class Sound_impl_ari_0_0_1 implements Sound, java.io.Serializable { -private static final long serialVersionUID = 1L; - /** The formats and languages in which this sound is available. */ - private List formats; - public List getFormats() { - return formats; - } - - @JsonDeserialize( contentAs=FormatLangPair_impl_ari_0_0_1.class ) - public void setFormats(List val ) { - formats = val; - } - - /** Sound's identifier. */ - private String id; - public String getId() { - return id; - } - - @JsonDeserialize( as=String.class ) - public void setId(String val ) { - id = val; - } - - /** Text description of the sound, usually the words spoken. */ - private String text; - public String getText() { - return text; - } - - @JsonDeserialize( as=String.class ) - public void setText(String val ) { - text = val; - } - -/** No missing signatures from interface */ -} - diff --git a/classes/ch/loway/oss/ari4java/generated/ari_0_0_1/models/StasisEnd_impl_ari_0_0_1.java b/classes/ch/loway/oss/ari4java/generated/ari_0_0_1/models/StasisEnd_impl_ari_0_0_1.java deleted file mode 100644 index 26a5454f..00000000 --- a/classes/ch/loway/oss/ari4java/generated/ari_0_0_1/models/StasisEnd_impl_ari_0_0_1.java +++ /dev/null @@ -1,37 +0,0 @@ -package ch.loway.oss.ari4java.generated.ari_0_0_1.models; - -// ---------------------------------------------------- -// THIS CLASS WAS GENERATED AUTOMATICALLY -// PLEASE DO NOT EDIT -// Generated on: Tue Dec 19 09:55:48 CET 2017 -// ---------------------------------------------------- - -import ch.loway.oss.ari4java.generated.*; -import com.fasterxml.jackson.databind.annotation.JsonDeserialize; -import java.util.Date; -import java.util.List; -import java.util.Map; - -/********************************************************** - * Notification that a channel has left a Stasis application. - * - * Defined in file: events.json - * Generated by: Model - *********************************************************/ - -public class StasisEnd_impl_ari_0_0_1 extends Event_impl_ari_0_0_1 implements StasisEnd, java.io.Serializable { -private static final long serialVersionUID = 1L; - /** */ - private Channel channel; - public Channel getChannel() { - return channel; - } - - @JsonDeserialize( as=Channel_impl_ari_0_0_1.class ) - public void setChannel(Channel val ) { - channel = val; - } - -/** No missing signatures from interface */ -} - diff --git a/classes/ch/loway/oss/ari4java/generated/ari_0_0_1/models/StasisStart_impl_ari_0_0_1.java b/classes/ch/loway/oss/ari4java/generated/ari_0_0_1/models/StasisStart_impl_ari_0_0_1.java deleted file mode 100644 index 7562fe46..00000000 --- a/classes/ch/loway/oss/ari4java/generated/ari_0_0_1/models/StasisStart_impl_ari_0_0_1.java +++ /dev/null @@ -1,65 +0,0 @@ -package ch.loway.oss.ari4java.generated.ari_0_0_1.models; - -// ---------------------------------------------------- -// THIS CLASS WAS GENERATED AUTOMATICALLY -// PLEASE DO NOT EDIT -// Generated on: Tue Dec 19 09:55:48 CET 2017 -// ---------------------------------------------------- - -import ch.loway.oss.ari4java.generated.*; -import com.fasterxml.jackson.databind.annotation.JsonDeserialize; -import java.util.Date; -import java.util.List; -import java.util.Map; - -/********************************************************** - * Notification that a channel has entered a Stasis application. - * - * Defined in file: events.json - * Generated by: Model - *********************************************************/ - -public class StasisStart_impl_ari_0_0_1 extends Event_impl_ari_0_0_1 implements StasisStart, java.io.Serializable { -private static final long serialVersionUID = 1L; - /** Arguments to the application */ - private List args; - public List getArgs() { - return args; - } - - @JsonDeserialize( contentAs=String.class ) - public void setArgs(List val ) { - args = val; - } - - /** */ - private Channel channel; - public Channel getChannel() { - return channel; - } - - @JsonDeserialize( as=Channel_impl_ari_0_0_1.class ) - public void setChannel(Channel val ) { - channel = val; - } - -/********************************************************** - * - * - * @since ari_1_5_0 - *********************************************************/ - public Channel getReplace_channel(){ - throw new UnsupportedOperationException("Method availble from ..."); -}; - -/********************************************************** - * - * - * @since ari_1_5_0 - *********************************************************/ - public void setReplace_channel(Channel val ){ - throw new UnsupportedOperationException("Method availble from ..."); -}; - -} - diff --git a/classes/ch/loway/oss/ari4java/generated/ari_0_0_1/models/StatusInfo_impl_ari_0_0_1.java b/classes/ch/loway/oss/ari4java/generated/ari_0_0_1/models/StatusInfo_impl_ari_0_0_1.java deleted file mode 100644 index 8655a2e3..00000000 --- a/classes/ch/loway/oss/ari4java/generated/ari_0_0_1/models/StatusInfo_impl_ari_0_0_1.java +++ /dev/null @@ -1,48 +0,0 @@ -package ch.loway.oss.ari4java.generated.ari_0_0_1.models; - -// ---------------------------------------------------- -// THIS CLASS WAS GENERATED AUTOMATICALLY -// PLEASE DO NOT EDIT -// Generated on: Tue Dec 19 09:55:48 CET 2017 -// ---------------------------------------------------- - -import ch.loway.oss.ari4java.generated.*; -import com.fasterxml.jackson.databind.annotation.JsonDeserialize; -import java.util.Date; -import java.util.List; -import java.util.Map; - -/********************************************************** - * Info about Asterisk status - * - * Defined in file: asterisk.json - * Generated by: Model - *********************************************************/ - -public class StatusInfo_impl_ari_0_0_1 implements StatusInfo, java.io.Serializable { -private static final long serialVersionUID = 1L; - /** Time when Asterisk was last reloaded. */ - private Date last_reload_time; - public Date getLast_reload_time() { - return last_reload_time; - } - - @JsonDeserialize( as=Date.class ) - public void setLast_reload_time(Date val ) { - last_reload_time = val; - } - - /** Time when Asterisk was started. */ - private Date startup_time; - public Date getStartup_time() { - return startup_time; - } - - @JsonDeserialize( as=Date.class ) - public void setStartup_time(Date val ) { - startup_time = val; - } - -/** No missing signatures from interface */ -} - diff --git a/classes/ch/loway/oss/ari4java/generated/ari_0_0_1/models/StoredRecording_impl_ari_0_0_1.java b/classes/ch/loway/oss/ari4java/generated/ari_0_0_1/models/StoredRecording_impl_ari_0_0_1.java deleted file mode 100644 index c3530157..00000000 --- a/classes/ch/loway/oss/ari4java/generated/ari_0_0_1/models/StoredRecording_impl_ari_0_0_1.java +++ /dev/null @@ -1,48 +0,0 @@ -package ch.loway.oss.ari4java.generated.ari_0_0_1.models; - -// ---------------------------------------------------- -// THIS CLASS WAS GENERATED AUTOMATICALLY -// PLEASE DO NOT EDIT -// Generated on: Tue Dec 19 09:55:48 CET 2017 -// ---------------------------------------------------- - -import ch.loway.oss.ari4java.generated.*; -import com.fasterxml.jackson.databind.annotation.JsonDeserialize; -import java.util.Date; -import java.util.List; -import java.util.Map; - -/********************************************************** - * A past recording that may be played back. - * - * Defined in file: recordings.json - * Generated by: Model - *********************************************************/ - -public class StoredRecording_impl_ari_0_0_1 implements StoredRecording, java.io.Serializable { -private static final long serialVersionUID = 1L; - /** */ - private String format; - public String getFormat() { - return format; - } - - @JsonDeserialize( as=String.class ) - public void setFormat(String val ) { - format = val; - } - - /** */ - private String name; - public String getName() { - return name; - } - - @JsonDeserialize( as=String.class ) - public void setName(String val ) { - name = val; - } - -/** No missing signatures from interface */ -} - diff --git a/classes/ch/loway/oss/ari4java/generated/ari_0_0_1/models/SystemInfo_impl_ari_0_0_1.java b/classes/ch/loway/oss/ari4java/generated/ari_0_0_1/models/SystemInfo_impl_ari_0_0_1.java deleted file mode 100644 index 148a9509..00000000 --- a/classes/ch/loway/oss/ari4java/generated/ari_0_0_1/models/SystemInfo_impl_ari_0_0_1.java +++ /dev/null @@ -1,48 +0,0 @@ -package ch.loway.oss.ari4java.generated.ari_0_0_1.models; - -// ---------------------------------------------------- -// THIS CLASS WAS GENERATED AUTOMATICALLY -// PLEASE DO NOT EDIT -// Generated on: Tue Dec 19 09:55:48 CET 2017 -// ---------------------------------------------------- - -import ch.loway.oss.ari4java.generated.*; -import com.fasterxml.jackson.databind.annotation.JsonDeserialize; -import java.util.Date; -import java.util.List; -import java.util.Map; - -/********************************************************** - * Info about Asterisk - * - * Defined in file: asterisk.json - * Generated by: Model - *********************************************************/ - -public class SystemInfo_impl_ari_0_0_1 implements SystemInfo, java.io.Serializable { -private static final long serialVersionUID = 1L; - /** */ - private String entity_id; - public String getEntity_id() { - return entity_id; - } - - @JsonDeserialize( as=String.class ) - public void setEntity_id(String val ) { - entity_id = val; - } - - /** Asterisk version. */ - private String version; - public String getVersion() { - return version; - } - - @JsonDeserialize( as=String.class ) - public void setVersion(String val ) { - version = val; - } - -/** No missing signatures from interface */ -} - diff --git a/classes/ch/loway/oss/ari4java/generated/ari_0_0_1/models/Variable_impl_ari_0_0_1.java b/classes/ch/loway/oss/ari4java/generated/ari_0_0_1/models/Variable_impl_ari_0_0_1.java deleted file mode 100644 index 08907aaa..00000000 --- a/classes/ch/loway/oss/ari4java/generated/ari_0_0_1/models/Variable_impl_ari_0_0_1.java +++ /dev/null @@ -1,37 +0,0 @@ -package ch.loway.oss.ari4java.generated.ari_0_0_1.models; - -// ---------------------------------------------------- -// THIS CLASS WAS GENERATED AUTOMATICALLY -// PLEASE DO NOT EDIT -// Generated on: Tue Dec 19 09:55:48 CET 2017 -// ---------------------------------------------------- - -import ch.loway.oss.ari4java.generated.*; -import com.fasterxml.jackson.databind.annotation.JsonDeserialize; -import java.util.Date; -import java.util.List; -import java.util.Map; - -/********************************************************** - * The value of a channel variable - * - * Defined in file: asterisk.json - * Generated by: Model - *********************************************************/ - -public class Variable_impl_ari_0_0_1 implements Variable, java.io.Serializable { -private static final long serialVersionUID = 1L; - /** The value of the variable requested */ - private String value; - public String getValue() { - return value; - } - - @JsonDeserialize( as=String.class ) - public void setValue(String val ) { - value = val; - } - -/** No missing signatures from interface */ -} - diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_0_0/AriBuilder_impl_ari_1_0_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_0_0/AriBuilder_impl_ari_1_0_0.java deleted file mode 100644 index e3a51482..00000000 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_0_0/AriBuilder_impl_ari_1_0_0.java +++ /dev/null @@ -1,328 +0,0 @@ -package ch.loway.oss.ari4java.generated.ari_1_0_0; - -// ---------------------------------------------------- -// THIS CLASS WAS GENERATED AUTOMATICALLY -// PLEASE DO NOT EDIT -// Generated on: Tue Dec 19 09:55:49 CET 2017 -// ---------------------------------------------------- - -import ch.loway.oss.ari4java.generated.ari_1_0_0.models.*; -import ch.loway.oss.ari4java.generated.ari_1_0_0.actions.*; -import ch.loway.oss.ari4java.generated.*; -import ch.loway.oss.ari4java.ARI; - -public class AriBuilder_impl_ari_1_0_0 implements AriBuilder { - -public ActionEndpoints actionEndpoints() { - return new ActionEndpoints_impl_ari_1_0_0(); - }; - -public ActionRecordings actionRecordings() { - return new ActionRecordings_impl_ari_1_0_0(); - }; - -public ActionSounds actionSounds() { - return new ActionSounds_impl_ari_1_0_0(); - }; - -public ActionChannels actionChannels() { - return new ActionChannels_impl_ari_1_0_0(); - }; - -public ActionEvents actionEvents() { - return new ActionEvents_impl_ari_1_0_0(); - }; - -public ActionBridges actionBridges() { - return new ActionBridges_impl_ari_1_0_0(); - }; - -public ActionDeviceStates actionDeviceStates() { - return new ActionDeviceStates_impl_ari_1_0_0(); - }; - -public ActionApplications actionApplications() { - return new ActionApplications_impl_ari_1_0_0(); - }; - -public ActionAsterisk actionAsterisk() { - return new ActionAsterisk_impl_ari_1_0_0(); - }; - -public ActionPlaybacks actionPlaybacks() { - return new ActionPlaybacks_impl_ari_1_0_0(); - }; - -public Endpoint endpoint() { - return new Endpoint_impl_ari_1_0_0(); - }; - -public RecordingFailed recordingFailed() { - return new RecordingFailed_impl_ari_1_0_0(); - }; - -public ChannelLeftBridge channelLeftBridge() { - return new ChannelLeftBridge_impl_ari_1_0_0(); - }; - -public DeviceStateChanged deviceStateChanged() { - return new DeviceStateChanged_impl_ari_1_0_0(); - }; - -public DeviceState deviceState() { - return new DeviceState_impl_ari_1_0_0(); - }; - -public BuildInfo buildInfo() { - return new BuildInfo_impl_ari_1_0_0(); - }; - -public Event event() { - return new Event_impl_ari_1_0_0(); - }; - -public Application application() { - return new Application_impl_ari_1_0_0(); - }; - -public FormatLangPair formatLangPair() { - return new FormatLangPair_impl_ari_1_0_0(); - }; - -public Message message() { - return new Message_impl_ari_1_0_0(); - }; - -public LiveRecording liveRecording() { - return new LiveRecording_impl_ari_1_0_0(); - }; - -public ChannelDialplan channelDialplan() { - return new ChannelDialplan_impl_ari_1_0_0(); - }; - -public PlaybackFinished playbackFinished() { - return new PlaybackFinished_impl_ari_1_0_0(); - }; - -public ChannelDestroyed channelDestroyed() { - return new ChannelDestroyed_impl_ari_1_0_0(); - }; - -public ChannelDtmfReceived channelDtmfReceived() { - return new ChannelDtmfReceived_impl_ari_1_0_0(); - }; - -public Dial dial() { - return new Dial_impl_ari_1_0_0(); - }; - -public MissingParams missingParams() { - return new MissingParams_impl_ari_1_0_0(); - }; - -public SystemInfo systemInfo() { - return new SystemInfo_impl_ari_1_0_0(); - }; - -public ConfigInfo configInfo() { - return new ConfigInfo_impl_ari_1_0_0(); - }; - -public RecordingStarted recordingStarted() { - return new RecordingStarted_impl_ari_1_0_0(); - }; - -public Variable variable() { - return new Variable_impl_ari_1_0_0(); - }; - -public Playback playback() { - return new Playback_impl_ari_1_0_0(); - }; - -public PlaybackStarted playbackStarted() { - return new PlaybackStarted_impl_ari_1_0_0(); - }; - -public EndpointStateChange endpointStateChange() { - return new EndpointStateChange_impl_ari_1_0_0(); - }; - -public BridgeCreated bridgeCreated() { - return new BridgeCreated_impl_ari_1_0_0(); - }; - -public ChannelStateChange channelStateChange() { - return new ChannelStateChange_impl_ari_1_0_0(); - }; - -public StasisStart stasisStart() { - return new StasisStart_impl_ari_1_0_0(); - }; - -public ChannelHangupRequest channelHangupRequest() { - return new ChannelHangupRequest_impl_ari_1_0_0(); - }; - -public Bridge bridge() { - return new Bridge_impl_ari_1_0_0(); - }; - -public CallerID callerID() { - return new CallerID_impl_ari_1_0_0(); - }; - -public BridgeMerged bridgeMerged() { - return new BridgeMerged_impl_ari_1_0_0(); - }; - -public ApplicationReplaced applicationReplaced() { - return new ApplicationReplaced_impl_ari_1_0_0(); - }; - -public ChannelCreated channelCreated() { - return new ChannelCreated_impl_ari_1_0_0(); - }; - -public ChannelVarset channelVarset() { - return new ChannelVarset_impl_ari_1_0_0(); - }; - -public ChannelCallerId channelCallerId() { - return new ChannelCallerId_impl_ari_1_0_0(); - }; - -public Dialed dialed() { - return new Dialed_impl_ari_1_0_0(); - }; - -public StatusInfo statusInfo() { - return new StatusInfo_impl_ari_1_0_0(); - }; - -public StoredRecording storedRecording() { - return new StoredRecording_impl_ari_1_0_0(); - }; - -public BridgeDestroyed bridgeDestroyed() { - return new BridgeDestroyed_impl_ari_1_0_0(); - }; - -public DialplanCEP dialplanCEP() { - return new DialplanCEP_impl_ari_1_0_0(); - }; - -public StasisEnd stasisEnd() { - return new StasisEnd_impl_ari_1_0_0(); - }; - -public RecordingFinished recordingFinished() { - return new RecordingFinished_impl_ari_1_0_0(); - }; - -public SetId setId() { - return new SetId_impl_ari_1_0_0(); - }; - -public AsteriskInfo asteriskInfo() { - return new AsteriskInfo_impl_ari_1_0_0(); - }; - -public Channel channel() { - return new Channel_impl_ari_1_0_0(); - }; - -public ChannelUserevent channelUserevent() { - return new ChannelUserevent_impl_ari_1_0_0(); - }; - -public Sound sound() { - return new Sound_impl_ari_1_0_0(); - }; - -public ChannelEnteredBridge channelEnteredBridge() { - return new ChannelEnteredBridge_impl_ari_1_0_0(); - }; - -public BridgeAttendedTransfer bridgeAttendedTransfer() { - throw new UnsupportedOperationException(); - }; - -public BridgeBlindTransfer bridgeBlindTransfer() { - throw new UnsupportedOperationException(); - }; - -public BridgeVideoSourceChanged bridgeVideoSourceChanged() { - throw new UnsupportedOperationException(); - }; - -public ChannelConnectedLine channelConnectedLine() { - throw new UnsupportedOperationException(); - }; - -public ChannelHold channelHold() { - throw new UnsupportedOperationException(); - }; - -public ChannelTalkingFinished channelTalkingFinished() { - throw new UnsupportedOperationException(); - }; - -public ChannelTalkingStarted channelTalkingStarted() { - throw new UnsupportedOperationException(); - }; - -public ChannelUnhold channelUnhold() { - throw new UnsupportedOperationException(); - }; - -public ConfigTuple configTuple() { - throw new UnsupportedOperationException(); - }; - -public ContactInfo contactInfo() { - throw new UnsupportedOperationException(); - }; - -public ContactStatusChange contactStatusChange() { - throw new UnsupportedOperationException(); - }; - -public LogChannel logChannel() { - throw new UnsupportedOperationException(); - }; - -public Module module() { - throw new UnsupportedOperationException(); - }; - -public Peer peer() { - throw new UnsupportedOperationException(); - }; - -public PeerStatusChange peerStatusChange() { - throw new UnsupportedOperationException(); - }; - -public PlaybackContinuing playbackContinuing() { - throw new UnsupportedOperationException(); - }; - -public TextMessage textMessage() { - throw new UnsupportedOperationException(); - }; - -public TextMessageReceived textMessageReceived() { - throw new UnsupportedOperationException(); - }; - -public TextMessageVariable textMessageVariable() { - throw new UnsupportedOperationException(); - }; - -public ARI.ClassFactory getClassFactory() { - return new ClassTranslator_impl_ari_1_0_0(); -}; - -}; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_0_0/ClassTranslator_impl_ari_1_0_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_0_0/ClassTranslator_impl_ari_1_0_0.java deleted file mode 100644 index 1cfc7221..00000000 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_0_0/ClassTranslator_impl_ari_1_0_0.java +++ /dev/null @@ -1,259 +0,0 @@ -package ch.loway.oss.ari4java.generated.ari_1_0_0; - -// ---------------------------------------------------- -// THIS CLASS WAS GENERATED AUTOMATICALLY -// PLEASE DO NOT EDIT -// Generated on: Tue Dec 19 09:55:50 CET 2017 -// ---------------------------------------------------- - -import ch.loway.oss.ari4java.ARI; -import ch.loway.oss.ari4java.generated.*; -import ch.loway.oss.ari4java.generated.ari_1_0_0.models.*; -import ch.loway.oss.ari4java.generated.ari_1_0_0.actions.*; - -/********************************************************** - * This is a class translator. - *********************************************************/ -public class ClassTranslator_impl_ari_1_0_0 implements ARI.ClassFactory { - - @Override - public Class getImplementationFor(Class interfaceClass) { - - if ( interfaceClass.equals(ActionApplications.class) ) { - return (ActionApplications_impl_ari_1_0_0.class); - } else - - if ( interfaceClass.equals(ActionAsterisk.class) ) { - return (ActionAsterisk_impl_ari_1_0_0.class); - } else - - if ( interfaceClass.equals(ActionBridges.class) ) { - return (ActionBridges_impl_ari_1_0_0.class); - } else - - if ( interfaceClass.equals(ActionChannels.class) ) { - return (ActionChannels_impl_ari_1_0_0.class); - } else - - if ( interfaceClass.equals(ActionDeviceStates.class) ) { - return (ActionDeviceStates_impl_ari_1_0_0.class); - } else - - if ( interfaceClass.equals(ActionEndpoints.class) ) { - return (ActionEndpoints_impl_ari_1_0_0.class); - } else - - if ( interfaceClass.equals(ActionEvents.class) ) { - return (ActionEvents_impl_ari_1_0_0.class); - } else - - if ( interfaceClass.equals(ActionPlaybacks.class) ) { - return (ActionPlaybacks_impl_ari_1_0_0.class); - } else - - if ( interfaceClass.equals(ActionRecordings.class) ) { - return (ActionRecordings_impl_ari_1_0_0.class); - } else - - if ( interfaceClass.equals(ActionSounds.class) ) { - return (ActionSounds_impl_ari_1_0_0.class); - } else - - if ( interfaceClass.equals(Application.class) ) { - return (Application_impl_ari_1_0_0.class); - } else - - if ( interfaceClass.equals(ApplicationReplaced.class) ) { - return (ApplicationReplaced_impl_ari_1_0_0.class); - } else - - if ( interfaceClass.equals(AsteriskInfo.class) ) { - return (AsteriskInfo_impl_ari_1_0_0.class); - } else - - if ( interfaceClass.equals(Bridge.class) ) { - return (Bridge_impl_ari_1_0_0.class); - } else - - if ( interfaceClass.equals(BridgeCreated.class) ) { - return (BridgeCreated_impl_ari_1_0_0.class); - } else - - if ( interfaceClass.equals(BridgeDestroyed.class) ) { - return (BridgeDestroyed_impl_ari_1_0_0.class); - } else - - if ( interfaceClass.equals(BridgeMerged.class) ) { - return (BridgeMerged_impl_ari_1_0_0.class); - } else - - if ( interfaceClass.equals(BuildInfo.class) ) { - return (BuildInfo_impl_ari_1_0_0.class); - } else - - if ( interfaceClass.equals(CallerID.class) ) { - return (CallerID_impl_ari_1_0_0.class); - } else - - if ( interfaceClass.equals(Channel.class) ) { - return (Channel_impl_ari_1_0_0.class); - } else - - if ( interfaceClass.equals(ChannelCallerId.class) ) { - return (ChannelCallerId_impl_ari_1_0_0.class); - } else - - if ( interfaceClass.equals(ChannelCreated.class) ) { - return (ChannelCreated_impl_ari_1_0_0.class); - } else - - if ( interfaceClass.equals(ChannelDestroyed.class) ) { - return (ChannelDestroyed_impl_ari_1_0_0.class); - } else - - if ( interfaceClass.equals(ChannelDialplan.class) ) { - return (ChannelDialplan_impl_ari_1_0_0.class); - } else - - if ( interfaceClass.equals(ChannelDtmfReceived.class) ) { - return (ChannelDtmfReceived_impl_ari_1_0_0.class); - } else - - if ( interfaceClass.equals(ChannelEnteredBridge.class) ) { - return (ChannelEnteredBridge_impl_ari_1_0_0.class); - } else - - if ( interfaceClass.equals(ChannelHangupRequest.class) ) { - return (ChannelHangupRequest_impl_ari_1_0_0.class); - } else - - if ( interfaceClass.equals(ChannelLeftBridge.class) ) { - return (ChannelLeftBridge_impl_ari_1_0_0.class); - } else - - if ( interfaceClass.equals(ChannelStateChange.class) ) { - return (ChannelStateChange_impl_ari_1_0_0.class); - } else - - if ( interfaceClass.equals(ChannelUserevent.class) ) { - return (ChannelUserevent_impl_ari_1_0_0.class); - } else - - if ( interfaceClass.equals(ChannelVarset.class) ) { - return (ChannelVarset_impl_ari_1_0_0.class); - } else - - if ( interfaceClass.equals(ConfigInfo.class) ) { - return (ConfigInfo_impl_ari_1_0_0.class); - } else - - if ( interfaceClass.equals(DeviceState.class) ) { - return (DeviceState_impl_ari_1_0_0.class); - } else - - if ( interfaceClass.equals(DeviceStateChanged.class) ) { - return (DeviceStateChanged_impl_ari_1_0_0.class); - } else - - if ( interfaceClass.equals(Dial.class) ) { - return (Dial_impl_ari_1_0_0.class); - } else - - if ( interfaceClass.equals(Dialed.class) ) { - return (Dialed_impl_ari_1_0_0.class); - } else - - if ( interfaceClass.equals(DialplanCEP.class) ) { - return (DialplanCEP_impl_ari_1_0_0.class); - } else - - if ( interfaceClass.equals(Endpoint.class) ) { - return (Endpoint_impl_ari_1_0_0.class); - } else - - if ( interfaceClass.equals(EndpointStateChange.class) ) { - return (EndpointStateChange_impl_ari_1_0_0.class); - } else - - if ( interfaceClass.equals(Event.class) ) { - return (Event_impl_ari_1_0_0.class); - } else - - if ( interfaceClass.equals(FormatLangPair.class) ) { - return (FormatLangPair_impl_ari_1_0_0.class); - } else - - if ( interfaceClass.equals(LiveRecording.class) ) { - return (LiveRecording_impl_ari_1_0_0.class); - } else - - if ( interfaceClass.equals(Message.class) ) { - return (Message_impl_ari_1_0_0.class); - } else - - if ( interfaceClass.equals(MissingParams.class) ) { - return (MissingParams_impl_ari_1_0_0.class); - } else - - if ( interfaceClass.equals(Playback.class) ) { - return (Playback_impl_ari_1_0_0.class); - } else - - if ( interfaceClass.equals(PlaybackFinished.class) ) { - return (PlaybackFinished_impl_ari_1_0_0.class); - } else - - if ( interfaceClass.equals(PlaybackStarted.class) ) { - return (PlaybackStarted_impl_ari_1_0_0.class); - } else - - if ( interfaceClass.equals(RecordingFailed.class) ) { - return (RecordingFailed_impl_ari_1_0_0.class); - } else - - if ( interfaceClass.equals(RecordingFinished.class) ) { - return (RecordingFinished_impl_ari_1_0_0.class); - } else - - if ( interfaceClass.equals(RecordingStarted.class) ) { - return (RecordingStarted_impl_ari_1_0_0.class); - } else - - if ( interfaceClass.equals(SetId.class) ) { - return (SetId_impl_ari_1_0_0.class); - } else - - if ( interfaceClass.equals(Sound.class) ) { - return (Sound_impl_ari_1_0_0.class); - } else - - if ( interfaceClass.equals(StasisEnd.class) ) { - return (StasisEnd_impl_ari_1_0_0.class); - } else - - if ( interfaceClass.equals(StasisStart.class) ) { - return (StasisStart_impl_ari_1_0_0.class); - } else - - if ( interfaceClass.equals(StatusInfo.class) ) { - return (StatusInfo_impl_ari_1_0_0.class); - } else - - if ( interfaceClass.equals(StoredRecording.class) ) { - return (StoredRecording_impl_ari_1_0_0.class); - } else - - if ( interfaceClass.equals(SystemInfo.class) ) { - return (SystemInfo_impl_ari_1_0_0.class); - } else - - if ( interfaceClass.equals(Variable.class) ) { - return (Variable_impl_ari_1_0_0.class); - } else - { - return null; - } - } -} - - diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_0_0/actions/ActionApplications_impl_ari_1_0_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_0_0/actions/ActionApplications_impl_ari_1_0_0.java deleted file mode 100644 index 66500e57..00000000 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_0_0/actions/ActionApplications_impl_ari_1_0_0.java +++ /dev/null @@ -1,140 +0,0 @@ -package ch.loway.oss.ari4java.generated.ari_1_0_0.actions; - -// ---------------------------------------------------- -// THIS CLASS WAS GENERATED AUTOMATICALLY -// PLEASE DO NOT EDIT -// Generated on: Tue Dec 19 09:55:49 CET 2017 -// ---------------------------------------------------- - -import ch.loway.oss.ari4java.generated.*; -import java.util.Date; -import java.util.List; -import java.util.Map; -import java.util.ArrayList; -import ch.loway.oss.ari4java.tools.BaseAriAction; -import ch.loway.oss.ari4java.tools.RestException; -import ch.loway.oss.ari4java.tools.AriCallback; -import ch.loway.oss.ari4java.tools.HttpParam; -import ch.loway.oss.ari4java.tools.HttpResponse; -import com.fasterxml.jackson.core.type.TypeReference; -import ch.loway.oss.ari4java.generated.ari_1_0_0.models.*; - -/********************************************************** - * - * Generated by: Apis - *********************************************************/ - - -public class ActionApplications_impl_ari_1_0_0 extends BaseAriAction implements ActionApplications { -/********************************************************** - * Stasis applications - * - * List all applications. - *********************************************************/ -private void buildList() { -reset(); -url = "/applications"; -method = "GET"; -} - -@Override -public List list() throws RestException { -buildList(); -String json = httpActionSync(); -return deserializeJsonAsAbstractList( json, - new TypeReference>() {} ); -} - -@Override -public void list(AriCallback> callback) { -buildList(); -httpActionAsync(callback, new TypeReference>() {}); -} - -/********************************************************** - * Stasis application - * - * Get details of an application. - *********************************************************/ -private void buildGet(String applicationName) { -reset(); -url = "/applications/" + applicationName + ""; -method = "GET"; -lE.add( HttpResponse.build( 404, "Application does not exist.") ); -} - -@Override -public Application get(String applicationName) throws RestException { -buildGet(applicationName); -String json = httpActionSync(); -return deserializeJson( json, Application_impl_ari_1_0_0.class ); -} - -@Override -public void get(String applicationName, AriCallback callback) { -buildGet(applicationName); -httpActionAsync(callback, Application_impl_ari_1_0_0.class); -} - -/********************************************************** - * Stasis application - * - * Subscribe an application to a event source. - * Returns the state of the application after the subscriptions have changed - *********************************************************/ -private void buildSubscribe(String applicationName, String eventSource) { -reset(); -url = "/applications/" + applicationName + "/subscription"; -method = "POST"; -lParamQuery.add( HttpParam.build( "eventSource", eventSource) ); -lE.add( HttpResponse.build( 400, "Missing parameter.") ); -lE.add( HttpResponse.build( 404, "Application does not exist.") ); -lE.add( HttpResponse.build( 422, "Event source does not exist.") ); -} - -@Override -public Application subscribe(String applicationName, String eventSource) throws RestException { -buildSubscribe(applicationName, eventSource); -String json = httpActionSync(); -return deserializeJson( json, Application_impl_ari_1_0_0.class ); -} - -@Override -public void subscribe(String applicationName, String eventSource, AriCallback callback) { -buildSubscribe(applicationName, eventSource); -httpActionAsync(callback, Application_impl_ari_1_0_0.class); -} - -/********************************************************** - * Stasis application - * - * Unsubscribe an application from an event source. - * Returns the state of the application after the subscriptions have changed - *********************************************************/ -private void buildUnsubscribe(String applicationName, String eventSource) { -reset(); -url = "/applications/" + applicationName + "/subscription"; -method = "DELETE"; -lParamQuery.add( HttpParam.build( "eventSource", eventSource) ); -lE.add( HttpResponse.build( 400, "Missing parameter; event source scheme not recognized.") ); -lE.add( HttpResponse.build( 404, "Application does not exist.") ); -lE.add( HttpResponse.build( 409, "Application not subscribed to event source.") ); -lE.add( HttpResponse.build( 422, "Event source does not exist.") ); -} - -@Override -public Application unsubscribe(String applicationName, String eventSource) throws RestException { -buildUnsubscribe(applicationName, eventSource); -String json = httpActionSync(); -return deserializeJson( json, Application_impl_ari_1_0_0.class ); -} - -@Override -public void unsubscribe(String applicationName, String eventSource, AriCallback callback) { -buildUnsubscribe(applicationName, eventSource); -httpActionAsync(callback, Application_impl_ari_1_0_0.class); -} - -/** No missing signatures from interface */ -}; - diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_0_0/actions/ActionAsterisk_impl_ari_1_0_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_0_0/actions/ActionAsterisk_impl_ari_1_0_0.java deleted file mode 100644 index 92a48284..00000000 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_0_0/actions/ActionAsterisk_impl_ari_1_0_0.java +++ /dev/null @@ -1,335 +0,0 @@ -package ch.loway.oss.ari4java.generated.ari_1_0_0.actions; - -// ---------------------------------------------------- -// THIS CLASS WAS GENERATED AUTOMATICALLY -// PLEASE DO NOT EDIT -// Generated on: Tue Dec 19 09:55:49 CET 2017 -// ---------------------------------------------------- - -import ch.loway.oss.ari4java.generated.*; -import java.util.Date; -import java.util.List; -import java.util.Map; -import java.util.ArrayList; -import ch.loway.oss.ari4java.tools.BaseAriAction; -import ch.loway.oss.ari4java.tools.RestException; -import ch.loway.oss.ari4java.tools.AriCallback; -import ch.loway.oss.ari4java.tools.HttpParam; -import ch.loway.oss.ari4java.tools.HttpResponse; -import com.fasterxml.jackson.core.type.TypeReference; -import ch.loway.oss.ari4java.generated.ari_1_0_0.models.*; - -/********************************************************** - * - * Generated by: Apis - *********************************************************/ - - -public class ActionAsterisk_impl_ari_1_0_0 extends BaseAriAction implements ActionAsterisk { -/********************************************************** - * Asterisk system information (similar to core show settings) - * - * Gets Asterisk system information. - *********************************************************/ -private void buildGetInfo(String only) { -reset(); -url = "/asterisk/info"; -method = "GET"; -lParamQuery.add( HttpParam.build( "only", only) ); -} - -@Override -public AsteriskInfo getInfo(String only) throws RestException { -buildGetInfo(only); -String json = httpActionSync(); -return deserializeJson( json, AsteriskInfo_impl_ari_1_0_0.class ); -} - -@Override -public void getInfo(String only, AriCallback callback) { -buildGetInfo(only); -httpActionAsync(callback, AsteriskInfo_impl_ari_1_0_0.class); -} - -/********************************************************** - * Global variables - * - * Get the value of a global variable. - *********************************************************/ -private void buildGetGlobalVar(String variable) { -reset(); -url = "/asterisk/variable"; -method = "GET"; -lParamQuery.add( HttpParam.build( "variable", variable) ); -lE.add( HttpResponse.build( 400, "Missing variable parameter.") ); -} - -@Override -public Variable getGlobalVar(String variable) throws RestException { -buildGetGlobalVar(variable); -String json = httpActionSync(); -return deserializeJson( json, Variable_impl_ari_1_0_0.class ); -} - -@Override -public void getGlobalVar(String variable, AriCallback callback) { -buildGetGlobalVar(variable); -httpActionAsync(callback, Variable_impl_ari_1_0_0.class); -} - -/********************************************************** - * Global variables - * - * Set the value of a global variable. - *********************************************************/ -private void buildSetGlobalVar(String variable, String value) { -reset(); -url = "/asterisk/variable"; -method = "POST"; -lParamQuery.add( HttpParam.build( "variable", variable) ); -lParamQuery.add( HttpParam.build( "value", value) ); -lE.add( HttpResponse.build( 400, "Missing variable parameter.") ); -} - -@Override -public void setGlobalVar(String variable, String value) throws RestException { -buildSetGlobalVar(variable, value); -String json = httpActionSync(); -} - -@Override -public void setGlobalVar(String variable, String value, AriCallback callback) { -buildSetGlobalVar(variable, value); -httpActionAsync(callback); -} - -/********************************************************** - * - * - * @since ari_1_8_0 - *********************************************************/ -public void updateObject(String configClass, String objectType, String id, Map fields, AriCallback> callback){ - throw new UnsupportedOperationException("Method availble from ..."); -}; - -/********************************************************** - * - * - * @since ari_1_8_0 - *********************************************************/ -public void listModules(AriCallback> callback){ - throw new UnsupportedOperationException("Method availble from ..."); -}; - -/********************************************************** - * - * - * @since ari_1_8_0 - *********************************************************/ -public void getModule(String moduleName, AriCallback callback){ - throw new UnsupportedOperationException("Method availble from ..."); -}; - -/********************************************************** - * - * - * @since ari_1_8_0 - *********************************************************/ -public void unloadModule(String moduleName, AriCallback callback){ - throw new UnsupportedOperationException("Method availble from ..."); -}; - -/********************************************************** - * Rotates a log channel. - * - * - * @since ari_1_9_0 - *********************************************************/ -public void rotateLog(String logChannelName) throws RestException{ - throw new UnsupportedOperationException("Method availble from ..."); -}; - -/********************************************************** - * - * - * @since ari_1_8_0 - *********************************************************/ -public void deleteObject(String configClass, String objectType, String id, AriCallback callback){ - throw new UnsupportedOperationException("Method availble from ..."); -}; - -/********************************************************** - * Deletes a log channel. - * - * - * @since ari_1_9_0 - *********************************************************/ -public void deleteLog(String logChannelName) throws RestException{ - throw new UnsupportedOperationException("Method availble from ..."); -}; - -/********************************************************** - * Load an Asterisk module. - * - * - * @since ari_1_8_0 - *********************************************************/ -public void loadModule(String moduleName) throws RestException{ - throw new UnsupportedOperationException("Method availble from ..."); -}; - -/********************************************************** - * Unload an Asterisk module. - * - * - * @since ari_1_8_0 - *********************************************************/ -public void unloadModule(String moduleName) throws RestException{ - throw new UnsupportedOperationException("Method availble from ..."); -}; - -/********************************************************** - * Create or update a dynamic configuration object. - * - * - * @since ari_1_8_0 - *********************************************************/ -public List updateObject(String configClass, String objectType, String id, Map fields) throws RestException{ - throw new UnsupportedOperationException("Method availble from ..."); -}; - -/********************************************************** - * Retrieve a dynamic configuration object. - * - * - * @since ari_1_8_0 - *********************************************************/ -public List getObject(String configClass, String objectType, String id) throws RestException{ - throw new UnsupportedOperationException("Method availble from ..."); -}; - -/********************************************************** - * Get Asterisk module information. - * - * - * @since ari_1_8_0 - *********************************************************/ -public Module getModule(String moduleName) throws RestException{ - throw new UnsupportedOperationException("Method availble from ..."); -}; - -/********************************************************** - * - * - * @since ari_1_9_0 - *********************************************************/ -public void rotateLog(String logChannelName, AriCallback callback){ - throw new UnsupportedOperationException("Method availble from ..."); -}; - -/********************************************************** - * - * - * @since ari_1_8_0 - *********************************************************/ -public void loadModule(String moduleName, AriCallback callback){ - throw new UnsupportedOperationException("Method availble from ..."); -}; - -/********************************************************** - * - * - * @since ari_1_9_0 - *********************************************************/ -public void addLog(String logChannelName, String configuration, AriCallback callback){ - throw new UnsupportedOperationException("Method availble from ..."); -}; - -/********************************************************** - * - * - * @since ari_1_8_0 - *********************************************************/ -public void reloadModule(String moduleName, AriCallback callback){ - throw new UnsupportedOperationException("Method availble from ..."); -}; - -/********************************************************** - * Gets Asterisk log channel information. - * - * - * @since ari_1_9_0 - *********************************************************/ -public List listLogChannels() throws RestException{ - throw new UnsupportedOperationException("Method availble from ..."); -}; - -/********************************************************** - * - * - * @since ari_1_8_0 - *********************************************************/ -public void getObject(String configClass, String objectType, String id, AriCallback> callback){ - throw new UnsupportedOperationException("Method availble from ..."); -}; - -/********************************************************** - * Adds a log channel. - * - * - * @since ari_1_9_0 - *********************************************************/ -public void addLog(String logChannelName, String configuration) throws RestException{ - throw new UnsupportedOperationException("Method availble from ..."); -}; - -/********************************************************** - * - * - * @since ari_1_9_0 - *********************************************************/ -public void listLogChannels(AriCallback> callback){ - throw new UnsupportedOperationException("Method availble from ..."); -}; - -/********************************************************** - * List Asterisk modules. - * - * - * @since ari_1_8_0 - *********************************************************/ -public List listModules() throws RestException{ - throw new UnsupportedOperationException("Method availble from ..."); -}; - -/********************************************************** - * Reload an Asterisk module. - * - * - * @since ari_1_8_0 - *********************************************************/ -public void reloadModule(String moduleName) throws RestException{ - throw new UnsupportedOperationException("Method availble from ..."); -}; - -/********************************************************** - * - * - * @since ari_1_9_0 - *********************************************************/ -public void deleteLog(String logChannelName, AriCallback callback){ - throw new UnsupportedOperationException("Method availble from ..."); -}; - -/********************************************************** - * Delete a dynamic configuration object. - * - * - * @since ari_1_8_0 - *********************************************************/ -public void deleteObject(String configClass, String objectType, String id) throws RestException{ - throw new UnsupportedOperationException("Method availble from ..."); -}; - -}; - diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_0_0/actions/ActionBridges_impl_ari_1_0_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_0_0/actions/ActionBridges_impl_ari_1_0_0.java deleted file mode 100644 index 3dca2bab..00000000 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_0_0/actions/ActionBridges_impl_ari_1_0_0.java +++ /dev/null @@ -1,460 +0,0 @@ -package ch.loway.oss.ari4java.generated.ari_1_0_0.actions; - -// ---------------------------------------------------- -// THIS CLASS WAS GENERATED AUTOMATICALLY -// PLEASE DO NOT EDIT -// Generated on: Tue Dec 19 09:55:49 CET 2017 -// ---------------------------------------------------- - -import ch.loway.oss.ari4java.generated.*; -import java.util.Date; -import java.util.List; -import java.util.Map; -import java.util.ArrayList; -import ch.loway.oss.ari4java.tools.BaseAriAction; -import ch.loway.oss.ari4java.tools.RestException; -import ch.loway.oss.ari4java.tools.AriCallback; -import ch.loway.oss.ari4java.tools.HttpParam; -import ch.loway.oss.ari4java.tools.HttpResponse; -import com.fasterxml.jackson.core.type.TypeReference; -import ch.loway.oss.ari4java.generated.ari_1_0_0.models.*; - -/********************************************************** - * - * Generated by: Apis - *********************************************************/ - - -public class ActionBridges_impl_ari_1_0_0 extends BaseAriAction implements ActionBridges { -/********************************************************** - * Active bridges - * - * List all active bridges in Asterisk. - *********************************************************/ -private void buildList() { -reset(); -url = "/bridges"; -method = "GET"; -} - -@Override -public List list() throws RestException { -buildList(); -String json = httpActionSync(); -return deserializeJsonAsAbstractList( json, - new TypeReference>() {} ); -} - -@Override -public void list(AriCallback> callback) { -buildList(); -httpActionAsync(callback, new TypeReference>() {}); -} - -/********************************************************** - * Active bridges - * - * Create a new bridge. - * This bridge persists until it has been shut down, or Asterisk has been shut down. - *********************************************************/ -private void buildCreate(String type, String name) { -reset(); -url = "/bridges"; -method = "POST"; -lParamQuery.add( HttpParam.build( "type", type) ); -lParamQuery.add( HttpParam.build( "name", name) ); -} - -@Override -public Bridge create(String type, String name) throws RestException { -buildCreate(type, name); -String json = httpActionSync(); -return deserializeJson( json, Bridge_impl_ari_1_0_0.class ); -} - -@Override -public void create(String type, String name, AriCallback callback) { -buildCreate(type, name); -httpActionAsync(callback, Bridge_impl_ari_1_0_0.class); -} - -/********************************************************** - * Individual bridge - * - * Get bridge details. - *********************************************************/ -private void buildGet(String bridgeId) { -reset(); -url = "/bridges/" + bridgeId + ""; -method = "GET"; -lE.add( HttpResponse.build( 404, "Bridge not found") ); -} - -@Override -public Bridge get(String bridgeId) throws RestException { -buildGet(bridgeId); -String json = httpActionSync(); -return deserializeJson( json, Bridge_impl_ari_1_0_0.class ); -} - -@Override -public void get(String bridgeId, AriCallback callback) { -buildGet(bridgeId); -httpActionAsync(callback, Bridge_impl_ari_1_0_0.class); -} - -/********************************************************** - * Individual bridge - * - * Shut down a bridge. - * If any channels are in this bridge, they will be removed and resume whatever they were doing beforehand. - *********************************************************/ -private void buildDestroy(String bridgeId) { -reset(); -url = "/bridges/" + bridgeId + ""; -method = "DELETE"; -lE.add( HttpResponse.build( 404, "Bridge not found") ); -} - -@Override -public void destroy(String bridgeId) throws RestException { -buildDestroy(bridgeId); -String json = httpActionSync(); -} - -@Override -public void destroy(String bridgeId, AriCallback callback) { -buildDestroy(bridgeId); -httpActionAsync(callback); -} - -/********************************************************** - * Add a channel to a bridge - * - * Add a channel to a bridge. - *********************************************************/ -private void buildAddChannel(String bridgeId, String channel, String role) { -reset(); -url = "/bridges/" + bridgeId + "/addChannel"; -method = "POST"; -lParamQuery.add( HttpParam.build( "channel", channel) ); -lParamQuery.add( HttpParam.build( "role", role) ); -lE.add( HttpResponse.build( 400, "Channel not found") ); -lE.add( HttpResponse.build( 404, "Bridge not found") ); -lE.add( HttpResponse.build( 409, "Bridge not in Stasis application; Channel currently recording") ); -lE.add( HttpResponse.build( 422, "Channel not in Stasis application") ); -} - -@Override -public void addChannel(String bridgeId, String channel, String role) throws RestException { -buildAddChannel(bridgeId, channel, role); -String json = httpActionSync(); -} - -@Override -public void addChannel(String bridgeId, String channel, String role, AriCallback callback) { -buildAddChannel(bridgeId, channel, role); -httpActionAsync(callback); -} - -/********************************************************** - * Play music on hold to a bridge - * - * Play music on hold to a bridge or change the MOH class that is playing. - *********************************************************/ -private void buildStartMoh(String bridgeId, String mohClass) { -reset(); -url = "/bridges/" + bridgeId + "/moh"; -method = "POST"; -lParamQuery.add( HttpParam.build( "mohClass", mohClass) ); -lE.add( HttpResponse.build( 404, "Bridge not found") ); -lE.add( HttpResponse.build( 409, "Bridge not in Stasis application") ); -} - -@Override -public void startMoh(String bridgeId, String mohClass) throws RestException { -buildStartMoh(bridgeId, mohClass); -String json = httpActionSync(); -} - -@Override -public void startMoh(String bridgeId, String mohClass, AriCallback callback) { -buildStartMoh(bridgeId, mohClass); -httpActionAsync(callback); -} - -/********************************************************** - * Play music on hold to a bridge - * - * Stop playing music on hold to a bridge. - * This will only stop music on hold being played via POST bridges/{bridgeId}/moh. - *********************************************************/ -private void buildStopMoh(String bridgeId) { -reset(); -url = "/bridges/" + bridgeId + "/moh"; -method = "DELETE"; -lE.add( HttpResponse.build( 404, "Bridge not found") ); -lE.add( HttpResponse.build( 409, "Bridge not in Stasis application") ); -} - -@Override -public void stopMoh(String bridgeId) throws RestException { -buildStopMoh(bridgeId); -String json = httpActionSync(); -} - -@Override -public void stopMoh(String bridgeId, AriCallback callback) { -buildStopMoh(bridgeId); -httpActionAsync(callback); -} - -/********************************************************** - * Play media to the participants of a bridge - * - * Start playback of media on a bridge. - * The media URI may be any of a number of URI's. Currently sound: and recording: URI's are supported. This operation creates a playback resource that can be used to control the playback of media (pause, rewind, fast forward, etc.) - *********************************************************/ -private void buildPlay(String bridgeId, String media, String lang, int offsetms, int skipms) { -reset(); -url = "/bridges/" + bridgeId + "/play"; -method = "POST"; -lParamQuery.add( HttpParam.build( "media", media) ); -lParamQuery.add( HttpParam.build( "lang", lang) ); -lParamQuery.add( HttpParam.build( "offsetms", offsetms) ); -lParamQuery.add( HttpParam.build( "skipms", skipms) ); -lE.add( HttpResponse.build( 404, "Bridge not found") ); -lE.add( HttpResponse.build( 409, "Bridge not in a Stasis application") ); -} - -@Override -public Playback play(String bridgeId, String media, String lang, int offsetms, int skipms) throws RestException { -buildPlay(bridgeId, media, lang, offsetms, skipms); -String json = httpActionSync(); -return deserializeJson( json, Playback_impl_ari_1_0_0.class ); -} - -@Override -public void play(String bridgeId, String media, String lang, int offsetms, int skipms, AriCallback callback) { -buildPlay(bridgeId, media, lang, offsetms, skipms); -httpActionAsync(callback, Playback_impl_ari_1_0_0.class); -} - -/********************************************************** - * Record audio on a bridge - * - * Start a recording. - * This records the mixed audio from all channels participating in this bridge. - *********************************************************/ -private void buildRecord(String bridgeId, String name, String format, int maxDurationSeconds, int maxSilenceSeconds, String ifExists, boolean beep, String terminateOn) { -reset(); -url = "/bridges/" + bridgeId + "/record"; -method = "POST"; -lParamQuery.add( HttpParam.build( "name", name) ); -lParamQuery.add( HttpParam.build( "format", format) ); -lParamQuery.add( HttpParam.build( "maxDurationSeconds", maxDurationSeconds) ); -lParamQuery.add( HttpParam.build( "maxSilenceSeconds", maxSilenceSeconds) ); -lParamQuery.add( HttpParam.build( "ifExists", ifExists) ); -lParamQuery.add( HttpParam.build( "beep", beep) ); -lParamQuery.add( HttpParam.build( "terminateOn", terminateOn) ); -lE.add( HttpResponse.build( 400, "Invalid parameters") ); -lE.add( HttpResponse.build( 404, "Bridge not found") ); -lE.add( HttpResponse.build( 409, "Bridge is not in a Stasis application; A recording with the same name already exists on the system and can not be overwritten because it is in progress or ifExists=fail") ); -lE.add( HttpResponse.build( 422, "The format specified is unknown on this system") ); -} - -@Override -public LiveRecording record(String bridgeId, String name, String format, int maxDurationSeconds, int maxSilenceSeconds, String ifExists, boolean beep, String terminateOn) throws RestException { -buildRecord(bridgeId, name, format, maxDurationSeconds, maxSilenceSeconds, ifExists, beep, terminateOn); -String json = httpActionSync(); -return deserializeJson( json, LiveRecording_impl_ari_1_0_0.class ); -} - -@Override -public void record(String bridgeId, String name, String format, int maxDurationSeconds, int maxSilenceSeconds, String ifExists, boolean beep, String terminateOn, AriCallback callback) { -buildRecord(bridgeId, name, format, maxDurationSeconds, maxSilenceSeconds, ifExists, beep, terminateOn); -httpActionAsync(callback, LiveRecording_impl_ari_1_0_0.class); -} - -/********************************************************** - * Remove a channel from a bridge - * - * Remove a channel from a bridge. - *********************************************************/ -private void buildRemoveChannel(String bridgeId, String channel) { -reset(); -url = "/bridges/" + bridgeId + "/removeChannel"; -method = "POST"; -lParamQuery.add( HttpParam.build( "channel", channel) ); -lE.add( HttpResponse.build( 400, "Channel not found") ); -lE.add( HttpResponse.build( 404, "Bridge not found") ); -lE.add( HttpResponse.build( 409, "Bridge not in Stasis application") ); -lE.add( HttpResponse.build( 422, "Channel not in this bridge") ); -} - -@Override -public void removeChannel(String bridgeId, String channel) throws RestException { -buildRemoveChannel(bridgeId, channel); -String json = httpActionSync(); -} - -@Override -public void removeChannel(String bridgeId, String channel, AriCallback callback) { -buildRemoveChannel(bridgeId, channel); -httpActionAsync(callback); -} - -/********************************************************** - * - * - * @since ari_1_5_0 - *********************************************************/ -public void create(String type, String bridgeId, String name, AriCallback callback){ - throw new UnsupportedOperationException("Method availble from ..."); -}; - -/********************************************************** - * - * - * @since ari_1_5_0 - *********************************************************/ -public void play(String bridgeId, String media, String lang, int offsetms, int skipms, String playbackId, AriCallback callback){ - throw new UnsupportedOperationException("Method availble from ..."); -}; - -/********************************************************** - * - * - * @since ari_1_7_0 - *********************************************************/ -public void createWithId(String type, String bridgeId, String name, AriCallback callback){ - throw new UnsupportedOperationException("Method availble from ..."); -}; - -/********************************************************** - * Start playback of media on a bridge. - * The media URI may be any of a number of URI's. Currently sound: and recording: URI's are supported. This operation creates a playback resource that can be used to control the playback of media (pause, rewind, fast forward, etc.) - * - * @since ari_1_5_0 - *********************************************************/ -public Playback playWithId(String bridgeId, String playbackId, String media, String lang, int offsetms, int skipms) throws RestException{ - throw new UnsupportedOperationException("Method availble from ..."); -}; - -/********************************************************** - * Create a new bridge. - * This bridge persists until it has been shut down, or Asterisk has been shut down. - * - * @since ari_1_5_0 - *********************************************************/ -public Bridge create(String type, String bridgeId, String name) throws RestException{ - throw new UnsupportedOperationException("Method availble from ..."); -}; - -/********************************************************** - * - * - * @since ari_1_5_0 - *********************************************************/ -public void playWithId(String bridgeId, String playbackId, String media, String lang, int offsetms, int skipms, AriCallback callback){ - throw new UnsupportedOperationException("Method availble from ..."); -}; - -/********************************************************** - * - * - * @since ari_1_5_0 - *********************************************************/ -public void create_or_update_with_id(String type, String bridgeId, String name, AriCallback callback){ - throw new UnsupportedOperationException("Method availble from ..."); -}; - -/********************************************************** - * Set a channel as the video source in a multi-party mixing bridge. This operation has no effect on bridges with two or fewer participants. - * - * - * @since ari_2_0_0 - *********************************************************/ -public void setVideoSource(String bridgeId, String channelId) throws RestException{ - throw new UnsupportedOperationException("Method availble from ..."); -}; - -/********************************************************** - * Create a new bridge or updates an existing one. - * This bridge persists until it has been shut down, or Asterisk has been shut down. - * - * @since ari_1_5_0 - *********************************************************/ -public Bridge create_or_update_with_id(String type, String bridgeId, String name) throws RestException{ - throw new UnsupportedOperationException("Method availble from ..."); -}; - -/********************************************************** - * Create a new bridge. - * This bridge persists until it has been shut down, or Asterisk has been shut down. - * - * @since ari_0_0_1 - *********************************************************/ -public Bridge create(String type) throws RestException{ - throw new UnsupportedOperationException("Method availble from ..."); -}; - -/********************************************************** - * Start playback of media on a bridge. - * The media URI may be any of a number of URI's. Currently sound:, recording:, number:, digits:, characters:, and tone: URI's are supported. This operation creates a playback resource that can be used to control the playback of media (pause, rewind, fast forward, etc.) - * - * @since ari_1_5_0 - *********************************************************/ -public Playback play(String bridgeId, String media, String lang, int offsetms, int skipms, String playbackId) throws RestException{ - throw new UnsupportedOperationException("Method availble from ..."); -}; - -/********************************************************** - * Removes any explicit video source in a multi-party mixing bridge. This operation has no effect on bridges with two or fewer participants. When no explicit video source is set, talk detection will be used to determine the active video stream. - * - * - * @since ari_2_0_0 - *********************************************************/ -public void clearVideoSource(String bridgeId) throws RestException{ - throw new UnsupportedOperationException("Method availble from ..."); -}; - -/********************************************************** - * - * - * @since ari_0_0_1 - *********************************************************/ -public void create(String type, AriCallback callback){ - throw new UnsupportedOperationException("Method availble from ..."); -}; - -/********************************************************** - * - * - * @since ari_2_0_0 - *********************************************************/ -public void setVideoSource(String bridgeId, String channelId, AriCallback callback){ - throw new UnsupportedOperationException("Method availble from ..."); -}; - -/********************************************************** - * - * - * @since ari_2_0_0 - *********************************************************/ -public void clearVideoSource(String bridgeId, AriCallback callback){ - throw new UnsupportedOperationException("Method availble from ..."); -}; - -/********************************************************** - * Create a new bridge or updates an existing one. - * This bridge persists until it has been shut down, or Asterisk has been shut down. - * - * @since ari_1_7_0 - *********************************************************/ -public Bridge createWithId(String type, String bridgeId, String name) throws RestException{ - throw new UnsupportedOperationException("Method availble from ..."); -}; - -}; - diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_0_0/actions/ActionChannels_impl_ari_1_0_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_0_0/actions/ActionChannels_impl_ari_1_0_0.java deleted file mode 100644 index e85b61ab..00000000 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_0_0/actions/ActionChannels_impl_ari_1_0_0.java +++ /dev/null @@ -1,901 +0,0 @@ -package ch.loway.oss.ari4java.generated.ari_1_0_0.actions; - -// ---------------------------------------------------- -// THIS CLASS WAS GENERATED AUTOMATICALLY -// PLEASE DO NOT EDIT -// Generated on: Tue Dec 19 09:55:49 CET 2017 -// ---------------------------------------------------- - -import ch.loway.oss.ari4java.generated.*; -import java.util.Date; -import java.util.List; -import java.util.Map; -import java.util.ArrayList; -import ch.loway.oss.ari4java.tools.BaseAriAction; -import ch.loway.oss.ari4java.tools.RestException; -import ch.loway.oss.ari4java.tools.AriCallback; -import ch.loway.oss.ari4java.tools.HttpParam; -import ch.loway.oss.ari4java.tools.HttpResponse; -import com.fasterxml.jackson.core.type.TypeReference; -import ch.loway.oss.ari4java.generated.ari_1_0_0.models.*; - -/********************************************************** - * - * Generated by: Apis - *********************************************************/ - - -public class ActionChannels_impl_ari_1_0_0 extends BaseAriAction implements ActionChannels { -/********************************************************** - * Active channels - * - * List all active channels in Asterisk. - *********************************************************/ -private void buildList() { -reset(); -url = "/channels"; -method = "GET"; -} - -@Override -public List list() throws RestException { -buildList(); -String json = httpActionSync(); -return deserializeJsonAsAbstractList( json, - new TypeReference>() {} ); -} - -@Override -public void list(AriCallback> callback) { -buildList(); -httpActionAsync(callback, new TypeReference>() {}); -} - -/********************************************************** - * Active channels - * - * Create a new channel (originate). - * The new channel is created immediately and a snapshot of it returned. If a Stasis application is provided it will be automatically subscribed to the originated channel for further events and updates. - *********************************************************/ -private void buildOriginate(String endpoint, String extension, String context, long priority, String app, String appArgs, String callerId, int timeout) { -reset(); -url = "/channels"; -method = "POST"; -lParamQuery.add( HttpParam.build( "endpoint", endpoint) ); -lParamQuery.add( HttpParam.build( "extension", extension) ); -lParamQuery.add( HttpParam.build( "context", context) ); -lParamQuery.add( HttpParam.build( "priority", priority) ); -lParamQuery.add( HttpParam.build( "app", app) ); -lParamQuery.add( HttpParam.build( "appArgs", appArgs) ); -lParamQuery.add( HttpParam.build( "callerId", callerId) ); -lParamQuery.add( HttpParam.build( "timeout", timeout) ); -lE.add( HttpResponse.build( 400, "Invalid parameters for originating a channel.") ); -} - -@Override -public Channel originate(String endpoint, String extension, String context, long priority, String app, String appArgs, String callerId, int timeout) throws RestException { -buildOriginate(endpoint, extension, context, priority, app, appArgs, callerId, timeout); -String json = httpActionSync(); -return deserializeJson( json, Channel_impl_ari_1_0_0.class ); -} - -@Override -public void originate(String endpoint, String extension, String context, long priority, String app, String appArgs, String callerId, int timeout, AriCallback callback) { -buildOriginate(endpoint, extension, context, priority, app, appArgs, callerId, timeout); -httpActionAsync(callback, Channel_impl_ari_1_0_0.class); -} - -/********************************************************** - * Active channel - * - * Channel details. - *********************************************************/ -private void buildGet(String channelId) { -reset(); -url = "/channels/" + channelId + ""; -method = "GET"; -lE.add( HttpResponse.build( 404, "Channel not found") ); -} - -@Override -public Channel get(String channelId) throws RestException { -buildGet(channelId); -String json = httpActionSync(); -return deserializeJson( json, Channel_impl_ari_1_0_0.class ); -} - -@Override -public void get(String channelId, AriCallback callback) { -buildGet(channelId); -httpActionAsync(callback, Channel_impl_ari_1_0_0.class); -} - -/********************************************************** - * Active channel - * - * Delete (i.e. hangup) a channel. - *********************************************************/ -private void buildHangup(String channelId, String reason) { -reset(); -url = "/channels/" + channelId + ""; -method = "DELETE"; -lParamQuery.add( HttpParam.build( "reason", reason) ); -lE.add( HttpResponse.build( 400, "Invalid reason for hangup provided") ); -lE.add( HttpResponse.build( 404, "Channel not found") ); -} - -@Override -public void hangup(String channelId, String reason) throws RestException { -buildHangup(channelId, reason); -String json = httpActionSync(); -} - -@Override -public void hangup(String channelId, String reason, AriCallback callback) { -buildHangup(channelId, reason); -httpActionAsync(callback); -} - -/********************************************************** - * Answer a channel - * - * Answer a channel. - *********************************************************/ -private void buildAnswer(String channelId) { -reset(); -url = "/channels/" + channelId + "/answer"; -method = "POST"; -lE.add( HttpResponse.build( 404, "Channel not found") ); -lE.add( HttpResponse.build( 409, "Channel not in a Stasis application") ); -} - -@Override -public void answer(String channelId) throws RestException { -buildAnswer(channelId); -String json = httpActionSync(); -} - -@Override -public void answer(String channelId, AriCallback callback) { -buildAnswer(channelId); -httpActionAsync(callback); -} - -/********************************************************** - * Exit application; continue execution in the dialplan - * - * Exit application; continue execution in the dialplan. - *********************************************************/ -private void buildContinueInDialplan(String channelId, String context, String extension, int priority) { -reset(); -url = "/channels/" + channelId + "/continue"; -method = "POST"; -lParamQuery.add( HttpParam.build( "context", context) ); -lParamQuery.add( HttpParam.build( "extension", extension) ); -lParamQuery.add( HttpParam.build( "priority", priority) ); -lE.add( HttpResponse.build( 404, "Channel not found") ); -lE.add( HttpResponse.build( 409, "Channel not in a Stasis application") ); -} - -@Override -public void continueInDialplan(String channelId, String context, String extension, int priority) throws RestException { -buildContinueInDialplan(channelId, context, extension, priority); -String json = httpActionSync(); -} - -@Override -public void continueInDialplan(String channelId, String context, String extension, int priority, AriCallback callback) { -buildContinueInDialplan(channelId, context, extension, priority); -httpActionAsync(callback); -} - -/********************************************************** - * Send DTMF to a channel - * - * Send provided DTMF to a given channel. - *********************************************************/ -private void buildSendDTMF(String channelId, String dtmf, int before, int between, int duration, int after) { -reset(); -url = "/channels/" + channelId + "/dtmf"; -method = "POST"; -lParamQuery.add( HttpParam.build( "dtmf", dtmf) ); -lParamQuery.add( HttpParam.build( "before", before) ); -lParamQuery.add( HttpParam.build( "between", between) ); -lParamQuery.add( HttpParam.build( "duration", duration) ); -lParamQuery.add( HttpParam.build( "after", after) ); -lE.add( HttpResponse.build( 400, "DTMF is required") ); -lE.add( HttpResponse.build( 404, "Channel not found") ); -lE.add( HttpResponse.build( 409, "Channel not in a Stasis application") ); -} - -@Override -public void sendDTMF(String channelId, String dtmf, int before, int between, int duration, int after) throws RestException { -buildSendDTMF(channelId, dtmf, before, between, duration, after); -String json = httpActionSync(); -} - -@Override -public void sendDTMF(String channelId, String dtmf, int before, int between, int duration, int after, AriCallback callback) { -buildSendDTMF(channelId, dtmf, before, between, duration, after); -httpActionAsync(callback); -} - -/********************************************************** - * Put a channel on hold - * - * Hold a channel. - *********************************************************/ -private void buildHold(String channelId) { -reset(); -url = "/channels/" + channelId + "/hold"; -method = "POST"; -lE.add( HttpResponse.build( 404, "Channel not found") ); -lE.add( HttpResponse.build( 409, "Channel not in a Stasis application") ); -} - -@Override -public void hold(String channelId) throws RestException { -buildHold(channelId); -String json = httpActionSync(); -} - -@Override -public void hold(String channelId, AriCallback callback) { -buildHold(channelId); -httpActionAsync(callback); -} - -/********************************************************** - * Put a channel on hold - * - * Remove a channel from hold. - *********************************************************/ -private void buildUnhold(String channelId) { -reset(); -url = "/channels/" + channelId + "/hold"; -method = "DELETE"; -lE.add( HttpResponse.build( 404, "Channel not found") ); -lE.add( HttpResponse.build( 409, "Channel not in a Stasis application") ); -} - -@Override -public void unhold(String channelId) throws RestException { -buildUnhold(channelId); -String json = httpActionSync(); -} - -@Override -public void unhold(String channelId, AriCallback callback) { -buildUnhold(channelId); -httpActionAsync(callback); -} - -/********************************************************** - * Play music on hold to a channel - * - * Play music on hold to a channel. - * Using media operations such as /play on a channel playing MOH in this manner will suspend MOH without resuming automatically. If continuing music on hold is desired, the stasis application must reinitiate music on hold. - *********************************************************/ -private void buildStartMoh(String channelId, String mohClass) { -reset(); -url = "/channels/" + channelId + "/moh"; -method = "POST"; -lParamQuery.add( HttpParam.build( "mohClass", mohClass) ); -lE.add( HttpResponse.build( 404, "Channel not found") ); -lE.add( HttpResponse.build( 409, "Channel not in a Stasis application") ); -} - -@Override -public void startMoh(String channelId, String mohClass) throws RestException { -buildStartMoh(channelId, mohClass); -String json = httpActionSync(); -} - -@Override -public void startMoh(String channelId, String mohClass, AriCallback callback) { -buildStartMoh(channelId, mohClass); -httpActionAsync(callback); -} - -/********************************************************** - * Play music on hold to a channel - * - * Stop playing music on hold to a channel. - *********************************************************/ -private void buildStopMoh(String channelId) { -reset(); -url = "/channels/" + channelId + "/moh"; -method = "DELETE"; -lE.add( HttpResponse.build( 404, "Channel not found") ); -lE.add( HttpResponse.build( 409, "Channel not in a Stasis application") ); -} - -@Override -public void stopMoh(String channelId) throws RestException { -buildStopMoh(channelId); -String json = httpActionSync(); -} - -@Override -public void stopMoh(String channelId, AriCallback callback) { -buildStopMoh(channelId); -httpActionAsync(callback); -} - -/********************************************************** - * Mute a channel - * - * Mute a channel. - *********************************************************/ -private void buildMute(String channelId, String direction) { -reset(); -url = "/channels/" + channelId + "/mute"; -method = "POST"; -lParamQuery.add( HttpParam.build( "direction", direction) ); -lE.add( HttpResponse.build( 404, "Channel not found") ); -lE.add( HttpResponse.build( 409, "Channel not in a Stasis application") ); -} - -@Override -public void mute(String channelId, String direction) throws RestException { -buildMute(channelId, direction); -String json = httpActionSync(); -} - -@Override -public void mute(String channelId, String direction, AriCallback callback) { -buildMute(channelId, direction); -httpActionAsync(callback); -} - -/********************************************************** - * Mute a channel - * - * Unmute a channel. - *********************************************************/ -private void buildUnmute(String channelId, String direction) { -reset(); -url = "/channels/" + channelId + "/mute"; -method = "DELETE"; -lParamQuery.add( HttpParam.build( "direction", direction) ); -lE.add( HttpResponse.build( 404, "Channel not found") ); -lE.add( HttpResponse.build( 409, "Channel not in a Stasis application") ); -} - -@Override -public void unmute(String channelId, String direction) throws RestException { -buildUnmute(channelId, direction); -String json = httpActionSync(); -} - -@Override -public void unmute(String channelId, String direction, AriCallback callback) { -buildUnmute(channelId, direction); -httpActionAsync(callback); -} - -/********************************************************** - * Play media to a channel - * - * Start playback of media. - * The media URI may be any of a number of URI's. Currently sound: and recording: URI's are supported. This operation creates a playback resource that can be used to control the playback of media (pause, rewind, fast forward, etc.) - *********************************************************/ -private void buildPlay(String channelId, String media, String lang, int offsetms, int skipms) { -reset(); -url = "/channels/" + channelId + "/play"; -method = "POST"; -lParamQuery.add( HttpParam.build( "media", media) ); -lParamQuery.add( HttpParam.build( "lang", lang) ); -lParamQuery.add( HttpParam.build( "offsetms", offsetms) ); -lParamQuery.add( HttpParam.build( "skipms", skipms) ); -lE.add( HttpResponse.build( 404, "Channel not found") ); -lE.add( HttpResponse.build( 409, "Channel not in a Stasis application") ); -} - -@Override -public Playback play(String channelId, String media, String lang, int offsetms, int skipms) throws RestException { -buildPlay(channelId, media, lang, offsetms, skipms); -String json = httpActionSync(); -return deserializeJson( json, Playback_impl_ari_1_0_0.class ); -} - -@Override -public void play(String channelId, String media, String lang, int offsetms, int skipms, AriCallback callback) { -buildPlay(channelId, media, lang, offsetms, skipms); -httpActionAsync(callback, Playback_impl_ari_1_0_0.class); -} - -/********************************************************** - * Record audio from a channel - * - * Start a recording. - * Record audio from a channel. Note that this will not capture audio sent to the channel. The bridge itself has a record feature if that's what you want. - *********************************************************/ -private void buildRecord(String channelId, String name, String format, int maxDurationSeconds, int maxSilenceSeconds, String ifExists, boolean beep, String terminateOn) { -reset(); -url = "/channels/" + channelId + "/record"; -method = "POST"; -lParamQuery.add( HttpParam.build( "name", name) ); -lParamQuery.add( HttpParam.build( "format", format) ); -lParamQuery.add( HttpParam.build( "maxDurationSeconds", maxDurationSeconds) ); -lParamQuery.add( HttpParam.build( "maxSilenceSeconds", maxSilenceSeconds) ); -lParamQuery.add( HttpParam.build( "ifExists", ifExists) ); -lParamQuery.add( HttpParam.build( "beep", beep) ); -lParamQuery.add( HttpParam.build( "terminateOn", terminateOn) ); -lE.add( HttpResponse.build( 400, "Invalid parameters") ); -lE.add( HttpResponse.build( 404, "Channel not found") ); -lE.add( HttpResponse.build( 409, "Channel is not in a Stasis application; the channel is currently bridged with other hcannels; A recording with the same name already exists on the system and can not be overwritten because it is in progress or ifExists=fail") ); -lE.add( HttpResponse.build( 422, "The format specified is unknown on this system") ); -} - -@Override -public LiveRecording record(String channelId, String name, String format, int maxDurationSeconds, int maxSilenceSeconds, String ifExists, boolean beep, String terminateOn) throws RestException { -buildRecord(channelId, name, format, maxDurationSeconds, maxSilenceSeconds, ifExists, beep, terminateOn); -String json = httpActionSync(); -return deserializeJson( json, LiveRecording_impl_ari_1_0_0.class ); -} - -@Override -public void record(String channelId, String name, String format, int maxDurationSeconds, int maxSilenceSeconds, String ifExists, boolean beep, String terminateOn, AriCallback callback) { -buildRecord(channelId, name, format, maxDurationSeconds, maxSilenceSeconds, ifExists, beep, terminateOn); -httpActionAsync(callback, LiveRecording_impl_ari_1_0_0.class); -} - -/********************************************************** - * Send a ringing indication to a channel - * - * Indicate ringing to a channel. - *********************************************************/ -private void buildRing(String channelId) { -reset(); -url = "/channels/" + channelId + "/ring"; -method = "POST"; -lE.add( HttpResponse.build( 404, "Channel not found") ); -lE.add( HttpResponse.build( 409, "Channel not in a Stasis application") ); -} - -@Override -public void ring(String channelId) throws RestException { -buildRing(channelId); -String json = httpActionSync(); -} - -@Override -public void ring(String channelId, AriCallback callback) { -buildRing(channelId); -httpActionAsync(callback); -} - -/********************************************************** - * Send a ringing indication to a channel - * - * Stop ringing indication on a channel if locally generated. - *********************************************************/ -private void buildRingStop(String channelId) { -reset(); -url = "/channels/" + channelId + "/ring"; -method = "DELETE"; -lE.add( HttpResponse.build( 404, "Channel not found") ); -lE.add( HttpResponse.build( 409, "Channel not in a Stasis application") ); -} - -@Override -public void ringStop(String channelId) throws RestException { -buildRingStop(channelId); -String json = httpActionSync(); -} - -@Override -public void ringStop(String channelId, AriCallback callback) { -buildRingStop(channelId); -httpActionAsync(callback); -} - -/********************************************************** - * Play silence to a channel - * - * Play silence to a channel. - * Using media operations such as /play on a channel playing silence in this manner will suspend silence without resuming automatically. - *********************************************************/ -private void buildStartSilence(String channelId) { -reset(); -url = "/channels/" + channelId + "/silence"; -method = "POST"; -lE.add( HttpResponse.build( 404, "Channel not found") ); -lE.add( HttpResponse.build( 409, "Channel not in a Stasis application") ); -} - -@Override -public void startSilence(String channelId) throws RestException { -buildStartSilence(channelId); -String json = httpActionSync(); -} - -@Override -public void startSilence(String channelId, AriCallback callback) { -buildStartSilence(channelId); -httpActionAsync(callback); -} - -/********************************************************** - * Play silence to a channel - * - * Stop playing silence to a channel. - *********************************************************/ -private void buildStopSilence(String channelId) { -reset(); -url = "/channels/" + channelId + "/silence"; -method = "DELETE"; -lE.add( HttpResponse.build( 404, "Channel not found") ); -lE.add( HttpResponse.build( 409, "Channel not in a Stasis application") ); -} - -@Override -public void stopSilence(String channelId) throws RestException { -buildStopSilence(channelId); -String json = httpActionSync(); -} - -@Override -public void stopSilence(String channelId, AriCallback callback) { -buildStopSilence(channelId); -httpActionAsync(callback); -} - -/********************************************************** - * Snoop (spy/whisper) on a channel - * - * Start snooping. - * Snoop (spy/whisper) on a specific channel. - *********************************************************/ -private void buildSnoopChannel(String channelId, String spy, String whisper, String app, String appArgs) { -reset(); -url = "/channels/" + channelId + "/snoop"; -method = "POST"; -lParamQuery.add( HttpParam.build( "spy", spy) ); -lParamQuery.add( HttpParam.build( "whisper", whisper) ); -lParamQuery.add( HttpParam.build( "app", app) ); -lParamQuery.add( HttpParam.build( "appArgs", appArgs) ); -lE.add( HttpResponse.build( 400, "Invalid parameters") ); -lE.add( HttpResponse.build( 404, "Channel not found") ); -} - -@Override -public Channel snoopChannel(String channelId, String spy, String whisper, String app, String appArgs) throws RestException { -buildSnoopChannel(channelId, spy, whisper, app, appArgs); -String json = httpActionSync(); -return deserializeJson( json, Channel_impl_ari_1_0_0.class ); -} - -@Override -public void snoopChannel(String channelId, String spy, String whisper, String app, String appArgs, AriCallback callback) { -buildSnoopChannel(channelId, spy, whisper, app, appArgs); -httpActionAsync(callback, Channel_impl_ari_1_0_0.class); -} - -/********************************************************** - * Variables on a channel - * - * Get the value of a channel variable or function. - *********************************************************/ -private void buildGetChannelVar(String channelId, String variable) { -reset(); -url = "/channels/" + channelId + "/variable"; -method = "GET"; -lParamQuery.add( HttpParam.build( "variable", variable) ); -lE.add( HttpResponse.build( 400, "Missing variable parameter.") ); -lE.add( HttpResponse.build( 404, "Channel not found") ); -lE.add( HttpResponse.build( 409, "Channel not in a Stasis application") ); -} - -@Override -public Variable getChannelVar(String channelId, String variable) throws RestException { -buildGetChannelVar(channelId, variable); -String json = httpActionSync(); -return deserializeJson( json, Variable_impl_ari_1_0_0.class ); -} - -@Override -public void getChannelVar(String channelId, String variable, AriCallback callback) { -buildGetChannelVar(channelId, variable); -httpActionAsync(callback, Variable_impl_ari_1_0_0.class); -} - -/********************************************************** - * Variables on a channel - * - * Set the value of a channel variable or function. - *********************************************************/ -private void buildSetChannelVar(String channelId, String variable, String value) { -reset(); -url = "/channels/" + channelId + "/variable"; -method = "POST"; -lParamQuery.add( HttpParam.build( "variable", variable) ); -lParamQuery.add( HttpParam.build( "value", value) ); -lE.add( HttpResponse.build( 400, "Missing variable parameter.") ); -lE.add( HttpResponse.build( 404, "Channel not found") ); -lE.add( HttpResponse.build( 409, "Channel not in a Stasis application") ); -} - -@Override -public void setChannelVar(String channelId, String variable, String value) throws RestException { -buildSetChannelVar(channelId, variable, value); -String json = httpActionSync(); -} - -@Override -public void setChannelVar(String channelId, String variable, String value, AriCallback callback) { -buildSetChannelVar(channelId, variable, value); -httpActionAsync(callback); -} - -/********************************************************** - * - * - * @since ari_1_5_0 - *********************************************************/ -public void play(String channelId, String media, String lang, int offsetms, int skipms, String playbackId, AriCallback callback){ - throw new UnsupportedOperationException("Method availble from ..."); -}; - -/********************************************************** - * - * - * @since ari_1_8_0 - *********************************************************/ -public void redirect(String channelId, String endpoint, AriCallback callback){ - throw new UnsupportedOperationException("Method availble from ..."); -}; - -/********************************************************** - * Start snooping. - * Snoop (spy/whisper) on a specific channel. - * - * @since ari_1_5_0 - *********************************************************/ -public Channel snoopChannelWithId(String channelId, String snoopId, String spy, String whisper, String app, String appArgs) throws RestException{ - throw new UnsupportedOperationException("Method availble from ..."); -}; - -/********************************************************** - * Start playback of media and specify the playbackId. - * The media URI may be any of a number of URI's. Currently sound: and recording: URI's are supported. This operation creates a playback resource that can be used to control the playback of media (pause, rewind, fast forward, etc.) - * - * @since ari_1_5_0 - *********************************************************/ -public Playback playWithId(String channelId, String playbackId, String media, String lang, int offsetms, int skipms) throws RestException{ - throw new UnsupportedOperationException("Method availble from ..."); -}; - -/********************************************************** - * - * - * @since ari_1_5_0 - *********************************************************/ -public void playWithId(String channelId, String playbackId, String media, String lang, int offsetms, int skipms, AriCallback callback){ - throw new UnsupportedOperationException("Method availble from ..."); -}; - -/********************************************************** - * - * - * @since ari_1_7_0 - *********************************************************/ -public void originate(String endpoint, String extension, String context, long priority, String label, String app, String appArgs, String callerId, int timeout, Map variables, String channelId, String otherChannelId, String originator, AriCallback callback){ - throw new UnsupportedOperationException("Method availble from ..."); -}; - -/********************************************************** - * Create a new channel (originate with id). - * The new channel is created immediately and a snapshot of it returned. If a Stasis application is provided it will be automatically subscribed to the originated channel for further events and updates. - * - * @since ari_1_5_0 - *********************************************************/ -public Channel originateWithId(String channelId, String endpoint, String extension, String context, long priority, String app, String appArgs, String callerId, int timeout, Map variables, String otherChannelId) throws RestException{ - throw new UnsupportedOperationException("Method availble from ..."); -}; - -/********************************************************** - * - * - * @since ari_1_10_0 - *********************************************************/ -public void dial(String channelId, String caller, int timeout, AriCallback callback){ - throw new UnsupportedOperationException("Method availble from ..."); -}; - -/********************************************************** - * - * - * @since ari_1_5_0 - *********************************************************/ -public void originate(String endpoint, String extension, String context, long priority, String app, String appArgs, String callerId, int timeout, Map variables, String channelId, String otherChannelId, AriCallback callback){ - throw new UnsupportedOperationException("Method availble from ..."); -}; - -/********************************************************** - * - * - * @since ari_1_5_0 - *********************************************************/ -public void snoopChannelWithId(String channelId, String snoopId, String spy, String whisper, String app, String appArgs, AriCallback callback){ - throw new UnsupportedOperationException("Method availble from ..."); -}; - -/********************************************************** - * - * - * @since ari_1_10_0 - *********************************************************/ -public void originateWithId(String channelId, String endpoint, String extension, String context, long priority, String label, String app, String appArgs, String callerId, int timeout, Map variables, String otherChannelId, String originator, String formats, AriCallback callback){ - throw new UnsupportedOperationException("Method availble from ..."); -}; - -/********************************************************** - * Exit application{ - throw new UnsupportedOperationException("Method availble from ..."); -}; continue execution in the dialplan. - * - * - * @since ari_1_7_0 - *********************************************************/ -public void continueInDialplan(String channelId, String context, String extension, int priority, String label) throws RestException{ - throw new UnsupportedOperationException("Method availble from ..."); -}; - -/********************************************************** - * Create a new channel (originate). - * The new channel is created immediately and a snapshot of it returned. If a Stasis application is provided it will be automatically subscribed to the originated channel for further events and updates. - * - * @since ari_1_7_0 - *********************************************************/ -public Channel originate(String endpoint, String extension, String context, long priority, String label, String app, String appArgs, String callerId, int timeout, Map variables, String channelId, String otherChannelId, String originator) throws RestException{ - throw new UnsupportedOperationException("Method availble from ..."); -}; - -/********************************************************** - * - * - * @since ari_1_5_0 - *********************************************************/ -public void originateWithId(String channelId, String endpoint, String extension, String context, long priority, String app, String appArgs, String callerId, int timeout, Map variables, String otherChannelId, AriCallback callback){ - throw new UnsupportedOperationException("Method availble from ..."); -}; - -/********************************************************** - * Create a new channel (originate with id). - * The new channel is created immediately and a snapshot of it returned. If a Stasis application is provided it will be automatically subscribed to the originated channel for further events and updates. - * - * @since ari_1_7_0 - *********************************************************/ -public Channel originateWithId(String channelId, String endpoint, String extension, String context, long priority, String label, String app, String appArgs, String callerId, int timeout, Map variables, String otherChannelId, String originator) throws RestException{ - throw new UnsupportedOperationException("Method availble from ..."); -}; - -/********************************************************** - * Create a new channel (originate). - * The new channel is created immediately and a snapshot of it returned. If a Stasis application is provided it will be automatically subscribed to the originated channel for further events and updates. - * - * @since ari_1_10_0 - *********************************************************/ -public Channel originate(String endpoint, String extension, String context, long priority, String label, String app, String appArgs, String callerId, int timeout, Map variables, String channelId, String otherChannelId, String originator, String formats) throws RestException{ - throw new UnsupportedOperationException("Method availble from ..."); -}; - -/********************************************************** - * Create a new channel (originate with id). - * The new channel is created immediately and a snapshot of it returned. If a Stasis application is provided it will be automatically subscribed to the originated channel for further events and updates. - * - * @since ari_1_10_0 - *********************************************************/ -public Channel originateWithId(String channelId, String endpoint, String extension, String context, long priority, String label, String app, String appArgs, String callerId, int timeout, Map variables, String otherChannelId, String originator, String formats) throws RestException{ - throw new UnsupportedOperationException("Method availble from ..."); -}; - -/********************************************************** - * - * - * @since ari_1_7_0 - *********************************************************/ -public void originateWithId(String channelId, String endpoint, String extension, String context, long priority, String label, String app, String appArgs, String callerId, int timeout, Map variables, String otherChannelId, String originator, AriCallback callback){ - throw new UnsupportedOperationException("Method availble from ..."); -}; - -/********************************************************** - * - * - * @since ari_1_7_0 - *********************************************************/ -public void continueInDialplan(String channelId, String context, String extension, int priority, String label, AriCallback callback){ - throw new UnsupportedOperationException("Method availble from ..."); -}; - -/********************************************************** - * Dial a created channel. - * - * - * @since ari_1_10_0 - *********************************************************/ -public void dial(String channelId, String caller, int timeout) throws RestException{ - throw new UnsupportedOperationException("Method availble from ..."); -}; - -/********************************************************** - * - * - * @since ari_1_10_0 - *********************************************************/ -public void create(String endpoint, String app, String appArgs, String channelId, String otherChannelId, String originator, String formats, AriCallback callback){ - throw new UnsupportedOperationException("Method availble from ..."); -}; - -/********************************************************** - * Create channel. - * - * - * @since ari_1_10_0 - *********************************************************/ -public Channel create(String endpoint, String app, String appArgs, String channelId, String otherChannelId, String originator, String formats) throws RestException{ - throw new UnsupportedOperationException("Method availble from ..."); -}; - -/********************************************************** - * - * - * @since ari_1_5_0 - *********************************************************/ -public void snoopChannel(String channelId, String spy, String whisper, String app, String appArgs, String snoopId, AriCallback callback){ - throw new UnsupportedOperationException("Method availble from ..."); -}; - -/********************************************************** - * - * - * @since ari_1_10_0 - *********************************************************/ -public void originate(String endpoint, String extension, String context, long priority, String label, String app, String appArgs, String callerId, int timeout, Map variables, String channelId, String otherChannelId, String originator, String formats, AriCallback callback){ - throw new UnsupportedOperationException("Method availble from ..."); -}; - -/********************************************************** - * Start playback of media. - * The media URI may be any of a number of URI's. Currently sound:, recording:, number:, digits:, characters:, and tone: URI's are supported. This operation creates a playback resource that can be used to control the playback of media (pause, rewind, fast forward, etc.) - * - * @since ari_1_5_0 - *********************************************************/ -public Playback play(String channelId, String media, String lang, int offsetms, int skipms, String playbackId) throws RestException{ - throw new UnsupportedOperationException("Method availble from ..."); -}; - -/********************************************************** - * Create a new channel (originate). - * The new channel is created immediately and a snapshot of it returned. If a Stasis application is provided it will be automatically subscribed to the originated channel for further events and updates. - * - * @since ari_1_5_0 - *********************************************************/ -public Channel originate(String endpoint, String extension, String context, long priority, String app, String appArgs, String callerId, int timeout, Map variables, String channelId, String otherChannelId) throws RestException{ - throw new UnsupportedOperationException("Method availble from ..."); -}; - -/********************************************************** - * Start snooping. - * Snoop (spy/whisper) on a specific channel. - * - * @since ari_1_5_0 - *********************************************************/ -public Channel snoopChannel(String channelId, String spy, String whisper, String app, String appArgs, String snoopId) throws RestException{ - throw new UnsupportedOperationException("Method availble from ..."); -}; - -/********************************************************** - * Redirect the channel to a different location. - * - * - * @since ari_1_8_0 - *********************************************************/ -public void redirect(String channelId, String endpoint) throws RestException{ - throw new UnsupportedOperationException("Method availble from ..."); -}; - -}; - diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_0_0/actions/ActionDeviceStates_impl_ari_1_0_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_0_0/actions/ActionDeviceStates_impl_ari_1_0_0.java deleted file mode 100644 index c430e57f..00000000 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_0_0/actions/ActionDeviceStates_impl_ari_1_0_0.java +++ /dev/null @@ -1,131 +0,0 @@ -package ch.loway.oss.ari4java.generated.ari_1_0_0.actions; - -// ---------------------------------------------------- -// THIS CLASS WAS GENERATED AUTOMATICALLY -// PLEASE DO NOT EDIT -// Generated on: Tue Dec 19 09:55:49 CET 2017 -// ---------------------------------------------------- - -import ch.loway.oss.ari4java.generated.*; -import java.util.Date; -import java.util.List; -import java.util.Map; -import java.util.ArrayList; -import ch.loway.oss.ari4java.tools.BaseAriAction; -import ch.loway.oss.ari4java.tools.RestException; -import ch.loway.oss.ari4java.tools.AriCallback; -import ch.loway.oss.ari4java.tools.HttpParam; -import ch.loway.oss.ari4java.tools.HttpResponse; -import com.fasterxml.jackson.core.type.TypeReference; -import ch.loway.oss.ari4java.generated.ari_1_0_0.models.*; - -/********************************************************** - * - * Generated by: Apis - *********************************************************/ - - -public class ActionDeviceStates_impl_ari_1_0_0 extends BaseAriAction implements ActionDeviceStates { -/********************************************************** - * Device states - * - * List all ARI controlled device states. - *********************************************************/ -private void buildList() { -reset(); -url = "/deviceStates"; -method = "GET"; -} - -@Override -public List list() throws RestException { -buildList(); -String json = httpActionSync(); -return deserializeJsonAsAbstractList( json, - new TypeReference>() {} ); -} - -@Override -public void list(AriCallback> callback) { -buildList(); -httpActionAsync(callback, new TypeReference>() {}); -} - -/********************************************************** - * Device state - * - * Retrieve the current state of a device. - *********************************************************/ -private void buildGet(String deviceName) { -reset(); -url = "/deviceStates/" + deviceName + ""; -method = "GET"; -} - -@Override -public DeviceState get(String deviceName) throws RestException { -buildGet(deviceName); -String json = httpActionSync(); -return deserializeJson( json, DeviceState_impl_ari_1_0_0.class ); -} - -@Override -public void get(String deviceName, AriCallback callback) { -buildGet(deviceName); -httpActionAsync(callback, DeviceState_impl_ari_1_0_0.class); -} - -/********************************************************** - * Device state - * - * Change the state of a device controlled by ARI. (Note - implicitly creates the device state). - *********************************************************/ -private void buildUpdate(String deviceName, String deviceState) { -reset(); -url = "/deviceStates/" + deviceName + ""; -method = "PUT"; -lParamQuery.add( HttpParam.build( "deviceState", deviceState) ); -lE.add( HttpResponse.build( 404, "Device name is missing") ); -lE.add( HttpResponse.build( 409, "Uncontrolled device specified") ); -} - -@Override -public void update(String deviceName, String deviceState) throws RestException { -buildUpdate(deviceName, deviceState); -String json = httpActionSync(); -} - -@Override -public void update(String deviceName, String deviceState, AriCallback callback) { -buildUpdate(deviceName, deviceState); -httpActionAsync(callback); -} - -/********************************************************** - * Device state - * - * Destroy a device-state controlled by ARI. - *********************************************************/ -private void buildDelete(String deviceName) { -reset(); -url = "/deviceStates/" + deviceName + ""; -method = "DELETE"; -lE.add( HttpResponse.build( 404, "Device name is missing") ); -lE.add( HttpResponse.build( 409, "Uncontrolled device specified") ); -} - -@Override -public void delete(String deviceName) throws RestException { -buildDelete(deviceName); -String json = httpActionSync(); -} - -@Override -public void delete(String deviceName, AriCallback callback) { -buildDelete(deviceName); -httpActionAsync(callback); -} - -/** No missing signatures from interface */ -}; - diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_0_0/actions/ActionEndpoints_impl_ari_1_0_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_0_0/actions/ActionEndpoints_impl_ari_1_0_0.java deleted file mode 100644 index acb14bee..00000000 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_0_0/actions/ActionEndpoints_impl_ari_1_0_0.java +++ /dev/null @@ -1,144 +0,0 @@ -package ch.loway.oss.ari4java.generated.ari_1_0_0.actions; - -// ---------------------------------------------------- -// THIS CLASS WAS GENERATED AUTOMATICALLY -// PLEASE DO NOT EDIT -// Generated on: Tue Dec 19 09:55:49 CET 2017 -// ---------------------------------------------------- - -import ch.loway.oss.ari4java.generated.*; -import java.util.Date; -import java.util.List; -import java.util.Map; -import java.util.ArrayList; -import ch.loway.oss.ari4java.tools.BaseAriAction; -import ch.loway.oss.ari4java.tools.RestException; -import ch.loway.oss.ari4java.tools.AriCallback; -import ch.loway.oss.ari4java.tools.HttpParam; -import ch.loway.oss.ari4java.tools.HttpResponse; -import com.fasterxml.jackson.core.type.TypeReference; -import ch.loway.oss.ari4java.generated.ari_1_0_0.models.*; - -/********************************************************** - * - * Generated by: Apis - *********************************************************/ - - -public class ActionEndpoints_impl_ari_1_0_0 extends BaseAriAction implements ActionEndpoints { -/********************************************************** - * Asterisk endpoints - * - * List all endpoints. - *********************************************************/ -private void buildList() { -reset(); -url = "/endpoints"; -method = "GET"; -} - -@Override -public List list() throws RestException { -buildList(); -String json = httpActionSync(); -return deserializeJsonAsAbstractList( json, - new TypeReference>() {} ); -} - -@Override -public void list(AriCallback> callback) { -buildList(); -httpActionAsync(callback, new TypeReference>() {}); -} - -/********************************************************** - * Asterisk endpoints - * - * List available endoints for a given endpoint technology. - *********************************************************/ -private void buildListByTech(String tech) { -reset(); -url = "/endpoints/" + tech + ""; -method = "GET"; -lE.add( HttpResponse.build( 404, "Endpoints not found") ); -} - -@Override -public List listByTech(String tech) throws RestException { -buildListByTech(tech); -String json = httpActionSync(); -return deserializeJsonAsAbstractList( json, - new TypeReference>() {} ); -} - -@Override -public void listByTech(String tech, AriCallback> callback) { -buildListByTech(tech); -httpActionAsync(callback, new TypeReference>() {}); -} - -/********************************************************** - * Single endpoint - * - * Details for an endpoint. - *********************************************************/ -private void buildGet(String tech, String resource) { -reset(); -url = "/endpoints/" + tech + "/" + resource + ""; -method = "GET"; -lE.add( HttpResponse.build( 404, "Endpoints not found") ); -} - -@Override -public Endpoint get(String tech, String resource) throws RestException { -buildGet(tech, resource); -String json = httpActionSync(); -return deserializeJson( json, Endpoint_impl_ari_1_0_0.class ); -} - -@Override -public void get(String tech, String resource, AriCallback callback) { -buildGet(tech, resource); -httpActionAsync(callback, Endpoint_impl_ari_1_0_0.class); -} - -/********************************************************** - * Send a message to some endpoint in a technology. - * - * - * @since ari_1_5_0 - *********************************************************/ -public void sendMessageToEndpoint(String tech, String resource, String from, String body, Map variables) throws RestException{ - throw new UnsupportedOperationException("Method availble from ..."); -}; - -/********************************************************** - * Send a message to some technology URI or endpoint. - * - * - * @since ari_1_5_0 - *********************************************************/ -public void sendMessage(String to, String from, String body, Map variables) throws RestException{ - throw new UnsupportedOperationException("Method availble from ..."); -}; - -/********************************************************** - * - * - * @since ari_1_5_0 - *********************************************************/ -public void sendMessage(String to, String from, String body, Map variables, AriCallback callback){ - throw new UnsupportedOperationException("Method availble from ..."); -}; - -/********************************************************** - * - * - * @since ari_1_5_0 - *********************************************************/ -public void sendMessageToEndpoint(String tech, String resource, String from, String body, Map variables, AriCallback callback){ - throw new UnsupportedOperationException("Method availble from ..."); -}; - -}; - diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_0_0/actions/ActionEvents_impl_ari_1_0_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_0_0/actions/ActionEvents_impl_ari_1_0_0.java deleted file mode 100644 index f738118a..00000000 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_0_0/actions/ActionEvents_impl_ari_1_0_0.java +++ /dev/null @@ -1,92 +0,0 @@ -package ch.loway.oss.ari4java.generated.ari_1_0_0.actions; - -// ---------------------------------------------------- -// THIS CLASS WAS GENERATED AUTOMATICALLY -// PLEASE DO NOT EDIT -// Generated on: Tue Dec 19 09:55:49 CET 2017 -// ---------------------------------------------------- - -import ch.loway.oss.ari4java.generated.*; -import java.util.Date; -import java.util.List; -import java.util.Map; -import java.util.ArrayList; -import ch.loway.oss.ari4java.tools.BaseAriAction; -import ch.loway.oss.ari4java.tools.RestException; -import ch.loway.oss.ari4java.tools.AriCallback; -import ch.loway.oss.ari4java.tools.HttpParam; -import ch.loway.oss.ari4java.tools.HttpResponse; -import com.fasterxml.jackson.core.type.TypeReference; -import ch.loway.oss.ari4java.generated.ari_1_0_0.models.*; - -/********************************************************** - * - * Generated by: Apis - *********************************************************/ - - -public class ActionEvents_impl_ari_1_0_0 extends BaseAriAction implements ActionEvents { -/********************************************************** - * Events from Asterisk to applications - * - * WebSocket connection for events. - *********************************************************/ -private void buildEventWebsocket(String app) { -reset(); -url = "/events"; -method = "GET"; -lParamQuery.add( HttpParam.build( "app", app) ); -wsUpgrade = true; -} - -@Override -public Message eventWebsocket(String app) throws RestException { -throw new RestException("No synchronous operation on WebSocket"); -} - -@Override -public void eventWebsocket(String app, AriCallback callback) { -buildEventWebsocket(app); -httpActionAsync(callback, Message_impl_ari_1_0_0.class); -} - -/********************************************************** - * - * - * @since ari_1_5_0 - *********************************************************/ -public void userEvent(String eventName, String application, String source, Map variables, AriCallback callback){ - throw new UnsupportedOperationException("Method availble from ..."); -}; - -/********************************************************** - * WebSocket connection for events. - * - * - * @since ari_1_9_0 - *********************************************************/ -public Message eventWebsocket(String app, boolean subscribeAll) throws RestException{ - throw new UnsupportedOperationException("Method availble from ..."); -}; - -/********************************************************** - * Generate a user event. - * - * - * @since ari_1_5_0 - *********************************************************/ -public void userEvent(String eventName, String application, String source, Map variables) throws RestException{ - throw new UnsupportedOperationException("Method availble from ..."); -}; - -/********************************************************** - * - * - * @since ari_1_9_0 - *********************************************************/ -public void eventWebsocket(String app, boolean subscribeAll, AriCallback callback){ - throw new UnsupportedOperationException("Method availble from ..."); -}; - -}; - diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_0_0/actions/ActionPlaybacks_impl_ari_1_0_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_0_0/actions/ActionPlaybacks_impl_ari_1_0_0.java deleted file mode 100644 index b4e5127d..00000000 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_0_0/actions/ActionPlaybacks_impl_ari_1_0_0.java +++ /dev/null @@ -1,107 +0,0 @@ -package ch.loway.oss.ari4java.generated.ari_1_0_0.actions; - -// ---------------------------------------------------- -// THIS CLASS WAS GENERATED AUTOMATICALLY -// PLEASE DO NOT EDIT -// Generated on: Tue Dec 19 09:55:49 CET 2017 -// ---------------------------------------------------- - -import ch.loway.oss.ari4java.generated.*; -import java.util.Date; -import java.util.List; -import java.util.Map; -import java.util.ArrayList; -import ch.loway.oss.ari4java.tools.BaseAriAction; -import ch.loway.oss.ari4java.tools.RestException; -import ch.loway.oss.ari4java.tools.AriCallback; -import ch.loway.oss.ari4java.tools.HttpParam; -import ch.loway.oss.ari4java.tools.HttpResponse; -import com.fasterxml.jackson.core.type.TypeReference; -import ch.loway.oss.ari4java.generated.ari_1_0_0.models.*; - -/********************************************************** - * - * Generated by: Apis - *********************************************************/ - - -public class ActionPlaybacks_impl_ari_1_0_0 extends BaseAriAction implements ActionPlaybacks { -/********************************************************** - * Control object for a playback operation. - * - * Get a playback's details. - *********************************************************/ -private void buildGet(String playbackId) { -reset(); -url = "/playbacks/" + playbackId + ""; -method = "GET"; -lE.add( HttpResponse.build( 404, "The playback cannot be found") ); -} - -@Override -public Playback get(String playbackId) throws RestException { -buildGet(playbackId); -String json = httpActionSync(); -return deserializeJson( json, Playback_impl_ari_1_0_0.class ); -} - -@Override -public void get(String playbackId, AriCallback callback) { -buildGet(playbackId); -httpActionAsync(callback, Playback_impl_ari_1_0_0.class); -} - -/********************************************************** - * Control object for a playback operation. - * - * Stop a playback. - *********************************************************/ -private void buildStop(String playbackId) { -reset(); -url = "/playbacks/" + playbackId + ""; -method = "DELETE"; -lE.add( HttpResponse.build( 404, "The playback cannot be found") ); -} - -@Override -public void stop(String playbackId) throws RestException { -buildStop(playbackId); -String json = httpActionSync(); -} - -@Override -public void stop(String playbackId, AriCallback callback) { -buildStop(playbackId); -httpActionAsync(callback); -} - -/********************************************************** - * Control object for a playback operation. - * - * Control a playback. - *********************************************************/ -private void buildControl(String playbackId, String operation) { -reset(); -url = "/playbacks/" + playbackId + "/control"; -method = "POST"; -lParamQuery.add( HttpParam.build( "operation", operation) ); -lE.add( HttpResponse.build( 400, "The provided operation parameter was invalid") ); -lE.add( HttpResponse.build( 404, "The playback cannot be found") ); -lE.add( HttpResponse.build( 409, "The operation cannot be performed in the playback's current state") ); -} - -@Override -public void control(String playbackId, String operation) throws RestException { -buildControl(playbackId, operation); -String json = httpActionSync(); -} - -@Override -public void control(String playbackId, String operation, AriCallback callback) { -buildControl(playbackId, operation); -httpActionAsync(callback); -} - -/** No missing signatures from interface */ -}; - diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_0_0/actions/ActionRecordings_impl_ari_1_0_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_0_0/actions/ActionRecordings_impl_ari_1_0_0.java deleted file mode 100644 index 2c07b3f9..00000000 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_0_0/actions/ActionRecordings_impl_ari_1_0_0.java +++ /dev/null @@ -1,317 +0,0 @@ -package ch.loway.oss.ari4java.generated.ari_1_0_0.actions; - -// ---------------------------------------------------- -// THIS CLASS WAS GENERATED AUTOMATICALLY -// PLEASE DO NOT EDIT -// Generated on: Tue Dec 19 09:55:49 CET 2017 -// ---------------------------------------------------- - -import ch.loway.oss.ari4java.generated.*; -import java.util.Date; -import java.util.List; -import java.util.Map; -import java.util.ArrayList; -import ch.loway.oss.ari4java.tools.BaseAriAction; -import ch.loway.oss.ari4java.tools.RestException; -import ch.loway.oss.ari4java.tools.AriCallback; -import ch.loway.oss.ari4java.tools.HttpParam; -import ch.loway.oss.ari4java.tools.HttpResponse; -import com.fasterxml.jackson.core.type.TypeReference; -import ch.loway.oss.ari4java.generated.ari_1_0_0.models.*; - -/********************************************************** - * - * Generated by: Apis - *********************************************************/ - - -public class ActionRecordings_impl_ari_1_0_0 extends BaseAriAction implements ActionRecordings { -/********************************************************** - * A recording that is in progress - * - * List live recordings. - *********************************************************/ -private void buildGetLive(String recordingName) { -reset(); -url = "/recordings/live/" + recordingName + ""; -method = "GET"; -lE.add( HttpResponse.build( 404, "Recording not found") ); -} - -@Override -public LiveRecording getLive(String recordingName) throws RestException { -buildGetLive(recordingName); -String json = httpActionSync(); -return deserializeJson( json, LiveRecording_impl_ari_1_0_0.class ); -} - -@Override -public void getLive(String recordingName, AriCallback callback) { -buildGetLive(recordingName); -httpActionAsync(callback, LiveRecording_impl_ari_1_0_0.class); -} - -/********************************************************** - * A recording that is in progress - * - * Stop a live recording and discard it. - *********************************************************/ -private void buildCancel(String recordingName) { -reset(); -url = "/recordings/live/" + recordingName + ""; -method = "DELETE"; -lE.add( HttpResponse.build( 404, "Recording not found") ); -} - -@Override -public void cancel(String recordingName) throws RestException { -buildCancel(recordingName); -String json = httpActionSync(); -} - -@Override -public void cancel(String recordingName, AriCallback callback) { -buildCancel(recordingName); -httpActionAsync(callback); -} - -/********************************************************** - * - * - * Mute a live recording. - * Muting a recording suspends silence detection, which will be restarted when the recording is unmuted. - *********************************************************/ -private void buildMute(String recordingName) { -reset(); -url = "/recordings/live/" + recordingName + "/mute"; -method = "POST"; -lE.add( HttpResponse.build( 404, "Recording not found") ); -lE.add( HttpResponse.build( 409, "Recording not in session") ); -} - -@Override -public void mute(String recordingName) throws RestException { -buildMute(recordingName); -String json = httpActionSync(); -} - -@Override -public void mute(String recordingName, AriCallback callback) { -buildMute(recordingName); -httpActionAsync(callback); -} - -/********************************************************** - * - * - * Unmute a live recording. - *********************************************************/ -private void buildUnmute(String recordingName) { -reset(); -url = "/recordings/live/" + recordingName + "/mute"; -method = "DELETE"; -lE.add( HttpResponse.build( 404, "Recording not found") ); -lE.add( HttpResponse.build( 409, "Recording not in session") ); -} - -@Override -public void unmute(String recordingName) throws RestException { -buildUnmute(recordingName); -String json = httpActionSync(); -} - -@Override -public void unmute(String recordingName, AriCallback callback) { -buildUnmute(recordingName); -httpActionAsync(callback); -} - -/********************************************************** - * - * - * Pause a live recording. - * Pausing a recording suspends silence detection, which will be restarted when the recording is unpaused. Paused time is not included in the accounting for maxDurationSeconds. - *********************************************************/ -private void buildPause(String recordingName) { -reset(); -url = "/recordings/live/" + recordingName + "/pause"; -method = "POST"; -lE.add( HttpResponse.build( 404, "Recording not found") ); -lE.add( HttpResponse.build( 409, "Recording not in session") ); -} - -@Override -public void pause(String recordingName) throws RestException { -buildPause(recordingName); -String json = httpActionSync(); -} - -@Override -public void pause(String recordingName, AriCallback callback) { -buildPause(recordingName); -httpActionAsync(callback); -} - -/********************************************************** - * - * - * Unpause a live recording. - *********************************************************/ -private void buildUnpause(String recordingName) { -reset(); -url = "/recordings/live/" + recordingName + "/pause"; -method = "DELETE"; -lE.add( HttpResponse.build( 404, "Recording not found") ); -lE.add( HttpResponse.build( 409, "Recording not in session") ); -} - -@Override -public void unpause(String recordingName) throws RestException { -buildUnpause(recordingName); -String json = httpActionSync(); -} - -@Override -public void unpause(String recordingName, AriCallback callback) { -buildUnpause(recordingName); -httpActionAsync(callback); -} - -/********************************************************** - * - * - * Stop a live recording and store it. - *********************************************************/ -private void buildStop(String recordingName) { -reset(); -url = "/recordings/live/" + recordingName + "/stop"; -method = "POST"; -lE.add( HttpResponse.build( 404, "Recording not found") ); -} - -@Override -public void stop(String recordingName) throws RestException { -buildStop(recordingName); -String json = httpActionSync(); -} - -@Override -public void stop(String recordingName, AriCallback callback) { -buildStop(recordingName); -httpActionAsync(callback); -} - -/********************************************************** - * Recordings - * - * List recordings that are complete. - *********************************************************/ -private void buildListStored() { -reset(); -url = "/recordings/stored"; -method = "GET"; -} - -@Override -public List listStored() throws RestException { -buildListStored(); -String json = httpActionSync(); -return deserializeJsonAsAbstractList( json, - new TypeReference>() {} ); -} - -@Override -public void listStored(AriCallback> callback) { -buildListStored(); -httpActionAsync(callback, new TypeReference>() {}); -} - -/********************************************************** - * Individual recording - * - * Get a stored recording's details. - *********************************************************/ -private void buildGetStored(String recordingName) { -reset(); -url = "/recordings/stored/" + recordingName + ""; -method = "GET"; -lE.add( HttpResponse.build( 404, "Recording not found") ); -} - -@Override -public StoredRecording getStored(String recordingName) throws RestException { -buildGetStored(recordingName); -String json = httpActionSync(); -return deserializeJson( json, StoredRecording_impl_ari_1_0_0.class ); -} - -@Override -public void getStored(String recordingName, AriCallback callback) { -buildGetStored(recordingName); -httpActionAsync(callback, StoredRecording_impl_ari_1_0_0.class); -} - -/********************************************************** - * Individual recording - * - * Delete a stored recording. - *********************************************************/ -private void buildDeleteStored(String recordingName) { -reset(); -url = "/recordings/stored/" + recordingName + ""; -method = "DELETE"; -lE.add( HttpResponse.build( 404, "Recording not found") ); -} - -@Override -public void deleteStored(String recordingName) throws RestException { -buildDeleteStored(recordingName); -String json = httpActionSync(); -} - -@Override -public void deleteStored(String recordingName, AriCallback callback) { -buildDeleteStored(recordingName); -httpActionAsync(callback); -} - -/********************************************************** - * Copy a stored recording. - * - * - * @since ari_1_5_0 - *********************************************************/ -public StoredRecording copyStored(String recordingName, String destinationRecordingName) throws RestException{ - throw new UnsupportedOperationException("Method availble from ..."); -}; - -/********************************************************** - * - * - * @since ari_1_10_0 - *********************************************************/ -public void getStoredFile(String recordingName, AriCallback callback){ - throw new UnsupportedOperationException("Method availble from ..."); -}; - -/********************************************************** - * - * - * @since ari_1_5_0 - *********************************************************/ -public void copyStored(String recordingName, String destinationRecordingName, AriCallback callback){ - throw new UnsupportedOperationException("Method availble from ..."); -}; - -/********************************************************** - * Get the file associated with the stored recording. - * - * - * @since ari_1_10_0 - *********************************************************/ -public byte[] getStoredFile(String recordingName) throws RestException{ - throw new UnsupportedOperationException("Method availble from ..."); -}; - -}; - diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_0_0/actions/ActionSounds_impl_ari_1_0_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_0_0/actions/ActionSounds_impl_ari_1_0_0.java deleted file mode 100644 index 039c03e8..00000000 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_0_0/actions/ActionSounds_impl_ari_1_0_0.java +++ /dev/null @@ -1,82 +0,0 @@ -package ch.loway.oss.ari4java.generated.ari_1_0_0.actions; - -// ---------------------------------------------------- -// THIS CLASS WAS GENERATED AUTOMATICALLY -// PLEASE DO NOT EDIT -// Generated on: Tue Dec 19 09:55:49 CET 2017 -// ---------------------------------------------------- - -import ch.loway.oss.ari4java.generated.*; -import java.util.Date; -import java.util.List; -import java.util.Map; -import java.util.ArrayList; -import ch.loway.oss.ari4java.tools.BaseAriAction; -import ch.loway.oss.ari4java.tools.RestException; -import ch.loway.oss.ari4java.tools.AriCallback; -import ch.loway.oss.ari4java.tools.HttpParam; -import ch.loway.oss.ari4java.tools.HttpResponse; -import com.fasterxml.jackson.core.type.TypeReference; -import ch.loway.oss.ari4java.generated.ari_1_0_0.models.*; - -/********************************************************** - * - * Generated by: Apis - *********************************************************/ - - -public class ActionSounds_impl_ari_1_0_0 extends BaseAriAction implements ActionSounds { -/********************************************************** - * Sounds - * - * List all sounds. - *********************************************************/ -private void buildList(String lang, String format) { -reset(); -url = "/sounds"; -method = "GET"; -lParamQuery.add( HttpParam.build( "lang", lang) ); -lParamQuery.add( HttpParam.build( "format", format) ); -} - -@Override -public List list(String lang, String format) throws RestException { -buildList(lang, format); -String json = httpActionSync(); -return deserializeJsonAsAbstractList( json, - new TypeReference>() {} ); -} - -@Override -public void list(String lang, String format, AriCallback> callback) { -buildList(lang, format); -httpActionAsync(callback, new TypeReference>() {}); -} - -/********************************************************** - * Individual sound - * - * Get a sound's details. - *********************************************************/ -private void buildGet(String soundId) { -reset(); -url = "/sounds/" + soundId + ""; -method = "GET"; -} - -@Override -public Sound get(String soundId) throws RestException { -buildGet(soundId); -String json = httpActionSync(); -return deserializeJson( json, Sound_impl_ari_1_0_0.class ); -} - -@Override -public void get(String soundId, AriCallback callback) { -buildGet(soundId); -httpActionAsync(callback, Sound_impl_ari_1_0_0.class); -} - -/** No missing signatures from interface */ -}; - diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_0_0/models/ApplicationReplaced_impl_ari_1_0_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_0_0/models/ApplicationReplaced_impl_ari_1_0_0.java deleted file mode 100644 index 4b4e793d..00000000 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_0_0/models/ApplicationReplaced_impl_ari_1_0_0.java +++ /dev/null @@ -1,28 +0,0 @@ -package ch.loway.oss.ari4java.generated.ari_1_0_0.models; - -// ---------------------------------------------------- -// THIS CLASS WAS GENERATED AUTOMATICALLY -// PLEASE DO NOT EDIT -// Generated on: Tue Dec 19 09:55:48 CET 2017 -// ---------------------------------------------------- - -import ch.loway.oss.ari4java.generated.*; -import com.fasterxml.jackson.databind.annotation.JsonDeserialize; -import java.util.Date; -import java.util.List; -import java.util.Map; - -/********************************************************** - * Notification that another WebSocket has taken over for an application. - * - * An application may only be subscribed to by a single WebSocket at a time. If multiple WebSockets attempt to subscribe to the same application, the newer WebSocket wins, and the older one receives this event. - * - * Defined in file: events.json - * Generated by: Model - *********************************************************/ - -public class ApplicationReplaced_impl_ari_1_0_0 extends Event_impl_ari_1_0_0 implements ApplicationReplaced, java.io.Serializable { -private static final long serialVersionUID = 1L; -/** No missing signatures from interface */ -} - diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_0_0/models/Application_impl_ari_1_0_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_0_0/models/Application_impl_ari_1_0_0.java deleted file mode 100644 index 59f2d2ad..00000000 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_0_0/models/Application_impl_ari_1_0_0.java +++ /dev/null @@ -1,81 +0,0 @@ -package ch.loway.oss.ari4java.generated.ari_1_0_0.models; - -// ---------------------------------------------------- -// THIS CLASS WAS GENERATED AUTOMATICALLY -// PLEASE DO NOT EDIT -// Generated on: Tue Dec 19 09:55:48 CET 2017 -// ---------------------------------------------------- - -import ch.loway.oss.ari4java.generated.*; -import com.fasterxml.jackson.databind.annotation.JsonDeserialize; -import java.util.Date; -import java.util.List; -import java.util.Map; - -/********************************************************** - * Details of a Stasis application - * - * Defined in file: applications.json - * Generated by: Model - *********************************************************/ - -public class Application_impl_ari_1_0_0 implements Application, java.io.Serializable { -private static final long serialVersionUID = 1L; - /** Id's for bridges subscribed to. */ - private List bridge_ids; - public List getBridge_ids() { - return bridge_ids; - } - - @JsonDeserialize( contentAs=String.class ) - public void setBridge_ids(List val ) { - bridge_ids = val; - } - - /** Id's for channels subscribed to. */ - private List channel_ids; - public List getChannel_ids() { - return channel_ids; - } - - @JsonDeserialize( contentAs=String.class ) - public void setChannel_ids(List val ) { - channel_ids = val; - } - - /** Names of the devices subscribed to. */ - private List device_names; - public List getDevice_names() { - return device_names; - } - - @JsonDeserialize( contentAs=String.class ) - public void setDevice_names(List val ) { - device_names = val; - } - - /** {tech}/{resource} for endpoints subscribed to. */ - private List endpoint_ids; - public List getEndpoint_ids() { - return endpoint_ids; - } - - @JsonDeserialize( contentAs=String.class ) - public void setEndpoint_ids(List val ) { - endpoint_ids = val; - } - - /** Name of this application */ - private String name; - public String getName() { - return name; - } - - @JsonDeserialize( as=String.class ) - public void setName(String val ) { - name = val; - } - -/** No missing signatures from interface */ -} - diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_0_0/models/AsteriskInfo_impl_ari_1_0_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_0_0/models/AsteriskInfo_impl_ari_1_0_0.java deleted file mode 100644 index 99c4e22a..00000000 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_0_0/models/AsteriskInfo_impl_ari_1_0_0.java +++ /dev/null @@ -1,70 +0,0 @@ -package ch.loway.oss.ari4java.generated.ari_1_0_0.models; - -// ---------------------------------------------------- -// THIS CLASS WAS GENERATED AUTOMATICALLY -// PLEASE DO NOT EDIT -// Generated on: Tue Dec 19 09:55:48 CET 2017 -// ---------------------------------------------------- - -import ch.loway.oss.ari4java.generated.*; -import com.fasterxml.jackson.databind.annotation.JsonDeserialize; -import java.util.Date; -import java.util.List; -import java.util.Map; - -/********************************************************** - * Asterisk system information - * - * Defined in file: asterisk.json - * Generated by: Model - *********************************************************/ - -public class AsteriskInfo_impl_ari_1_0_0 implements AsteriskInfo, java.io.Serializable { -private static final long serialVersionUID = 1L; - /** Info about how Asterisk was built */ - private BuildInfo build; - public BuildInfo getBuild() { - return build; - } - - @JsonDeserialize( as=BuildInfo_impl_ari_1_0_0.class ) - public void setBuild(BuildInfo val ) { - build = val; - } - - /** Info about Asterisk configuration */ - private ConfigInfo config; - public ConfigInfo getConfig() { - return config; - } - - @JsonDeserialize( as=ConfigInfo_impl_ari_1_0_0.class ) - public void setConfig(ConfigInfo val ) { - config = val; - } - - /** Info about Asterisk status */ - private StatusInfo status; - public StatusInfo getStatus() { - return status; - } - - @JsonDeserialize( as=StatusInfo_impl_ari_1_0_0.class ) - public void setStatus(StatusInfo val ) { - status = val; - } - - /** Info about the system running Asterisk */ - private SystemInfo system; - public SystemInfo getSystem() { - return system; - } - - @JsonDeserialize( as=SystemInfo_impl_ari_1_0_0.class ) - public void setSystem(SystemInfo val ) { - system = val; - } - -/** No missing signatures from interface */ -} - diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_0_0/models/BridgeCreated_impl_ari_1_0_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_0_0/models/BridgeCreated_impl_ari_1_0_0.java deleted file mode 100644 index a0eefcd8..00000000 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_0_0/models/BridgeCreated_impl_ari_1_0_0.java +++ /dev/null @@ -1,37 +0,0 @@ -package ch.loway.oss.ari4java.generated.ari_1_0_0.models; - -// ---------------------------------------------------- -// THIS CLASS WAS GENERATED AUTOMATICALLY -// PLEASE DO NOT EDIT -// Generated on: Tue Dec 19 09:55:48 CET 2017 -// ---------------------------------------------------- - -import ch.loway.oss.ari4java.generated.*; -import com.fasterxml.jackson.databind.annotation.JsonDeserialize; -import java.util.Date; -import java.util.List; -import java.util.Map; - -/********************************************************** - * Notification that a bridge has been created. - * - * Defined in file: events.json - * Generated by: Model - *********************************************************/ - -public class BridgeCreated_impl_ari_1_0_0 extends Event_impl_ari_1_0_0 implements BridgeCreated, java.io.Serializable { -private static final long serialVersionUID = 1L; - /** */ - private Bridge bridge; - public Bridge getBridge() { - return bridge; - } - - @JsonDeserialize( as=Bridge_impl_ari_1_0_0.class ) - public void setBridge(Bridge val ) { - bridge = val; - } - -/** No missing signatures from interface */ -} - diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_0_0/models/BridgeDestroyed_impl_ari_1_0_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_0_0/models/BridgeDestroyed_impl_ari_1_0_0.java deleted file mode 100644 index 86dd54bf..00000000 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_0_0/models/BridgeDestroyed_impl_ari_1_0_0.java +++ /dev/null @@ -1,37 +0,0 @@ -package ch.loway.oss.ari4java.generated.ari_1_0_0.models; - -// ---------------------------------------------------- -// THIS CLASS WAS GENERATED AUTOMATICALLY -// PLEASE DO NOT EDIT -// Generated on: Tue Dec 19 09:55:48 CET 2017 -// ---------------------------------------------------- - -import ch.loway.oss.ari4java.generated.*; -import com.fasterxml.jackson.databind.annotation.JsonDeserialize; -import java.util.Date; -import java.util.List; -import java.util.Map; - -/********************************************************** - * Notification that a bridge has been destroyed. - * - * Defined in file: events.json - * Generated by: Model - *********************************************************/ - -public class BridgeDestroyed_impl_ari_1_0_0 extends Event_impl_ari_1_0_0 implements BridgeDestroyed, java.io.Serializable { -private static final long serialVersionUID = 1L; - /** */ - private Bridge bridge; - public Bridge getBridge() { - return bridge; - } - - @JsonDeserialize( as=Bridge_impl_ari_1_0_0.class ) - public void setBridge(Bridge val ) { - bridge = val; - } - -/** No missing signatures from interface */ -} - diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_0_0/models/BridgeMerged_impl_ari_1_0_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_0_0/models/BridgeMerged_impl_ari_1_0_0.java deleted file mode 100644 index dcbe68ff..00000000 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_0_0/models/BridgeMerged_impl_ari_1_0_0.java +++ /dev/null @@ -1,48 +0,0 @@ -package ch.loway.oss.ari4java.generated.ari_1_0_0.models; - -// ---------------------------------------------------- -// THIS CLASS WAS GENERATED AUTOMATICALLY -// PLEASE DO NOT EDIT -// Generated on: Tue Dec 19 09:55:48 CET 2017 -// ---------------------------------------------------- - -import ch.loway.oss.ari4java.generated.*; -import com.fasterxml.jackson.databind.annotation.JsonDeserialize; -import java.util.Date; -import java.util.List; -import java.util.Map; - -/********************************************************** - * Notification that one bridge has merged into another. - * - * Defined in file: events.json - * Generated by: Model - *********************************************************/ - -public class BridgeMerged_impl_ari_1_0_0 extends Event_impl_ari_1_0_0 implements BridgeMerged, java.io.Serializable { -private static final long serialVersionUID = 1L; - /** */ - private Bridge bridge; - public Bridge getBridge() { - return bridge; - } - - @JsonDeserialize( as=Bridge_impl_ari_1_0_0.class ) - public void setBridge(Bridge val ) { - bridge = val; - } - - /** */ - private Bridge bridge_from; - public Bridge getBridge_from() { - return bridge_from; - } - - @JsonDeserialize( as=Bridge_impl_ari_1_0_0.class ) - public void setBridge_from(Bridge val ) { - bridge_from = val; - } - -/** No missing signatures from interface */ -} - diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_0_0/models/Bridge_impl_ari_1_0_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_0_0/models/Bridge_impl_ari_1_0_0.java deleted file mode 100644 index 8fdbc737..00000000 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_0_0/models/Bridge_impl_ari_1_0_0.java +++ /dev/null @@ -1,140 +0,0 @@ -package ch.loway.oss.ari4java.generated.ari_1_0_0.models; - -// ---------------------------------------------------- -// THIS CLASS WAS GENERATED AUTOMATICALLY -// PLEASE DO NOT EDIT -// Generated on: Tue Dec 19 09:55:48 CET 2017 -// ---------------------------------------------------- - -import ch.loway.oss.ari4java.generated.*; -import com.fasterxml.jackson.databind.annotation.JsonDeserialize; -import java.util.Date; -import java.util.List; -import java.util.Map; - -/********************************************************** - * The merging of media from one or more channels. - * - * Everyone on the bridge receives the same audio. - * - * Defined in file: bridges.json - * Generated by: Model - *********************************************************/ - -public class Bridge_impl_ari_1_0_0 implements Bridge, java.io.Serializable { -private static final long serialVersionUID = 1L; - /** Bridging class */ - private String bridge_class; - public String getBridge_class() { - return bridge_class; - } - - @JsonDeserialize( as=String.class ) - public void setBridge_class(String val ) { - bridge_class = val; - } - - /** Type of bridge technology */ - private String bridge_type; - public String getBridge_type() { - return bridge_type; - } - - @JsonDeserialize( as=String.class ) - public void setBridge_type(String val ) { - bridge_type = val; - } - - /** Ids of channels participating in this bridge */ - private List channels; - public List getChannels() { - return channels; - } - - @JsonDeserialize( contentAs=String.class ) - public void setChannels(List val ) { - channels = val; - } - - /** Entity that created the bridge */ - private String creator; - public String getCreator() { - return creator; - } - - @JsonDeserialize( as=String.class ) - public void setCreator(String val ) { - creator = val; - } - - /** Unique identifier for this bridge */ - private String id; - public String getId() { - return id; - } - - @JsonDeserialize( as=String.class ) - public void setId(String val ) { - id = val; - } - - /** Name the creator gave the bridge */ - private String name; - public String getName() { - return name; - } - - @JsonDeserialize( as=String.class ) - public void setName(String val ) { - name = val; - } - - /** Name of the current bridging technology */ - private String technology; - public String getTechnology() { - return technology; - } - - @JsonDeserialize( as=String.class ) - public void setTechnology(String val ) { - technology = val; - } - -/********************************************************** - * The video mode the bridge is using. One of 'none', 'talker', or 'single'. - * - * @since ari_2_0_0 - *********************************************************/ - public String getVideo_mode(){ - throw new UnsupportedOperationException("Method availble from ..."); -}; - -/********************************************************** - * The ID of the channel that is the source of video in this bridge, if one exists. - * - * @since ari_2_0_0 - *********************************************************/ - public String getVideo_source_id(){ - throw new UnsupportedOperationException("Method availble from ..."); -}; - -/********************************************************** - * The video mode the bridge is using. One of 'none', 'talker', or 'single'. - * - * @since ari_2_0_0 - *********************************************************/ - public void setVideo_mode(String val ){ - throw new UnsupportedOperationException("Method availble from ..."); -}; - -/********************************************************** - * The ID of the channel that is the source of video in this bridge, if one exists. - * - * @since ari_2_0_0 - *********************************************************/ - public void setVideo_source_id(String val ){ - throw new UnsupportedOperationException("Method availble from ..."); -}; - -} - diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_0_0/models/BuildInfo_impl_ari_1_0_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_0_0/models/BuildInfo_impl_ari_1_0_0.java deleted file mode 100644 index 4471a396..00000000 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_0_0/models/BuildInfo_impl_ari_1_0_0.java +++ /dev/null @@ -1,92 +0,0 @@ -package ch.loway.oss.ari4java.generated.ari_1_0_0.models; - -// ---------------------------------------------------- -// THIS CLASS WAS GENERATED AUTOMATICALLY -// PLEASE DO NOT EDIT -// Generated on: Tue Dec 19 09:55:48 CET 2017 -// ---------------------------------------------------- - -import ch.loway.oss.ari4java.generated.*; -import com.fasterxml.jackson.databind.annotation.JsonDeserialize; -import java.util.Date; -import java.util.List; -import java.util.Map; - -/********************************************************** - * Info about how Asterisk was built - * - * Defined in file: asterisk.json - * Generated by: Model - *********************************************************/ - -public class BuildInfo_impl_ari_1_0_0 implements BuildInfo, java.io.Serializable { -private static final long serialVersionUID = 1L; - /** Date and time when Asterisk was built. */ - private String date; - public String getDate() { - return date; - } - - @JsonDeserialize( as=String.class ) - public void setDate(String val ) { - date = val; - } - - /** Kernel version Asterisk was built on. */ - private String kernel; - public String getKernel() { - return kernel; - } - - @JsonDeserialize( as=String.class ) - public void setKernel(String val ) { - kernel = val; - } - - /** Machine architecture (x86_64, i686, ppc, etc.) */ - private String machine; - public String getMachine() { - return machine; - } - - @JsonDeserialize( as=String.class ) - public void setMachine(String val ) { - machine = val; - } - - /** Compile time options, or empty string if default. */ - private String options; - public String getOptions() { - return options; - } - - @JsonDeserialize( as=String.class ) - public void setOptions(String val ) { - options = val; - } - - /** OS Asterisk was built on. */ - private String os; - public String getOs() { - return os; - } - - @JsonDeserialize( as=String.class ) - public void setOs(String val ) { - os = val; - } - - /** Username that build Asterisk */ - private String user; - public String getUser() { - return user; - } - - @JsonDeserialize( as=String.class ) - public void setUser(String val ) { - user = val; - } - -/** No missing signatures from interface */ -} - diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_0_0/models/CallerID_impl_ari_1_0_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_0_0/models/CallerID_impl_ari_1_0_0.java deleted file mode 100644 index 750b328e..00000000 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_0_0/models/CallerID_impl_ari_1_0_0.java +++ /dev/null @@ -1,48 +0,0 @@ -package ch.loway.oss.ari4java.generated.ari_1_0_0.models; - -// ---------------------------------------------------- -// THIS CLASS WAS GENERATED AUTOMATICALLY -// PLEASE DO NOT EDIT -// Generated on: Tue Dec 19 09:55:48 CET 2017 -// ---------------------------------------------------- - -import ch.loway.oss.ari4java.generated.*; -import com.fasterxml.jackson.databind.annotation.JsonDeserialize; -import java.util.Date; -import java.util.List; -import java.util.Map; - -/********************************************************** - * Caller identification - * - * Defined in file: channels.json - * Generated by: Model - *********************************************************/ - -public class CallerID_impl_ari_1_0_0 implements CallerID, java.io.Serializable { -private static final long serialVersionUID = 1L; - /** */ - private String name; - public String getName() { - return name; - } - - @JsonDeserialize( as=String.class ) - public void setName(String val ) { - name = val; - } - - /** */ - private String number; - public String getNumber() { - return number; - } - - @JsonDeserialize( as=String.class ) - public void setNumber(String val ) { - number = val; - } - -/** No missing signatures from interface */ -} - diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_0_0/models/ChannelCallerId_impl_ari_1_0_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_0_0/models/ChannelCallerId_impl_ari_1_0_0.java deleted file mode 100644 index 9fdbdf1a..00000000 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_0_0/models/ChannelCallerId_impl_ari_1_0_0.java +++ /dev/null @@ -1,59 +0,0 @@ -package ch.loway.oss.ari4java.generated.ari_1_0_0.models; - -// ---------------------------------------------------- -// THIS CLASS WAS GENERATED AUTOMATICALLY -// PLEASE DO NOT EDIT -// Generated on: Tue Dec 19 09:55:49 CET 2017 -// ---------------------------------------------------- - -import ch.loway.oss.ari4java.generated.*; -import com.fasterxml.jackson.databind.annotation.JsonDeserialize; -import java.util.Date; -import java.util.List; -import java.util.Map; - -/********************************************************** - * Channel changed Caller ID. - * - * Defined in file: events.json - * Generated by: Model - *********************************************************/ - -public class ChannelCallerId_impl_ari_1_0_0 extends Event_impl_ari_1_0_0 implements ChannelCallerId, java.io.Serializable { -private static final long serialVersionUID = 1L; - /** The integer representation of the Caller Presentation value. */ - private int caller_presentation; - public int getCaller_presentation() { - return caller_presentation; - } - - @JsonDeserialize( as=int.class ) - public void setCaller_presentation(int val ) { - caller_presentation = val; - } - - /** The text representation of the Caller Presentation value. */ - private String caller_presentation_txt; - public String getCaller_presentation_txt() { - return caller_presentation_txt; - } - - @JsonDeserialize( as=String.class ) - public void setCaller_presentation_txt(String val ) { - caller_presentation_txt = val; - } - - /** The channel that changed Caller ID. */ - private Channel channel; - public Channel getChannel() { - return channel; - } - - @JsonDeserialize( as=Channel_impl_ari_1_0_0.class ) - public void setChannel(Channel val ) { - channel = val; - } - -/** No missing signatures from interface */ -} - diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_0_0/models/ChannelCreated_impl_ari_1_0_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_0_0/models/ChannelCreated_impl_ari_1_0_0.java deleted file mode 100644 index 65ccc791..00000000 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_0_0/models/ChannelCreated_impl_ari_1_0_0.java +++ /dev/null @@ -1,37 +0,0 @@ -package ch.loway.oss.ari4java.generated.ari_1_0_0.models; - -// ---------------------------------------------------- -// THIS CLASS WAS GENERATED AUTOMATICALLY -// PLEASE DO NOT EDIT -// Generated on: Tue Dec 19 09:55:48 CET 2017 -// ---------------------------------------------------- - -import ch.loway.oss.ari4java.generated.*; -import com.fasterxml.jackson.databind.annotation.JsonDeserialize; -import java.util.Date; -import java.util.List; -import java.util.Map; - -/********************************************************** - * Notification that a channel has been created. - * - * Defined in file: events.json - * Generated by: Model - *********************************************************/ - -public class ChannelCreated_impl_ari_1_0_0 extends Event_impl_ari_1_0_0 implements ChannelCreated, java.io.Serializable { -private static final long serialVersionUID = 1L; - /** */ - private Channel channel; - public Channel getChannel() { - return channel; - } - - @JsonDeserialize( as=Channel_impl_ari_1_0_0.class ) - public void setChannel(Channel val ) { - channel = val; - } - -/** No missing signatures from interface */ -} - diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_0_0/models/ChannelDestroyed_impl_ari_1_0_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_0_0/models/ChannelDestroyed_impl_ari_1_0_0.java deleted file mode 100644 index fecb7e26..00000000 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_0_0/models/ChannelDestroyed_impl_ari_1_0_0.java +++ /dev/null @@ -1,59 +0,0 @@ -package ch.loway.oss.ari4java.generated.ari_1_0_0.models; - -// ---------------------------------------------------- -// THIS CLASS WAS GENERATED AUTOMATICALLY -// PLEASE DO NOT EDIT -// Generated on: Tue Dec 19 09:55:48 CET 2017 -// ---------------------------------------------------- - -import ch.loway.oss.ari4java.generated.*; -import com.fasterxml.jackson.databind.annotation.JsonDeserialize; -import java.util.Date; -import java.util.List; -import java.util.Map; - -/********************************************************** - * Notification that a channel has been destroyed. - * - * Defined in file: events.json - * Generated by: Model - *********************************************************/ - -public class ChannelDestroyed_impl_ari_1_0_0 extends Event_impl_ari_1_0_0 implements ChannelDestroyed, java.io.Serializable { -private static final long serialVersionUID = 1L; - /** Integer representation of the cause of the hangup */ - private int cause; - public int getCause() { - return cause; - } - - @JsonDeserialize( as=int.class ) - public void setCause(int val ) { - cause = val; - } - - /** Text representation of the cause of the hangup */ - private String cause_txt; - public String getCause_txt() { - return cause_txt; - } - - @JsonDeserialize( as=String.class ) - public void setCause_txt(String val ) { - cause_txt = val; - } - - /** */ - private Channel channel; - public Channel getChannel() { - return channel; - } - - @JsonDeserialize( as=Channel_impl_ari_1_0_0.class ) - public void setChannel(Channel val ) { - channel = val; - } - -/** No missing signatures from interface */ -} - diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_0_0/models/ChannelDialplan_impl_ari_1_0_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_0_0/models/ChannelDialplan_impl_ari_1_0_0.java deleted file mode 100644 index 8c3d9e42..00000000 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_0_0/models/ChannelDialplan_impl_ari_1_0_0.java +++ /dev/null @@ -1,59 +0,0 @@ -package ch.loway.oss.ari4java.generated.ari_1_0_0.models; - -// ---------------------------------------------------- -// THIS CLASS WAS GENERATED AUTOMATICALLY -// PLEASE DO NOT EDIT -// Generated on: Tue Dec 19 09:55:49 CET 2017 -// ---------------------------------------------------- - -import ch.loway.oss.ari4java.generated.*; -import com.fasterxml.jackson.databind.annotation.JsonDeserialize; -import java.util.Date; -import java.util.List; -import java.util.Map; - -/********************************************************** - * Channel changed location in the dialplan. - * - * Defined in file: events.json - * Generated by: Model - *********************************************************/ - -public class ChannelDialplan_impl_ari_1_0_0 extends Event_impl_ari_1_0_0 implements ChannelDialplan, java.io.Serializable { -private static final long serialVersionUID = 1L; - /** The channel that changed dialplan location. */ - private Channel channel; - public Channel getChannel() { - return channel; - } - - @JsonDeserialize( as=Channel_impl_ari_1_0_0.class ) - public void setChannel(Channel val ) { - channel = val; - } - - /** The application about to be executed. */ - private String dialplan_app; - public String getDialplan_app() { - return dialplan_app; - } - - @JsonDeserialize( as=String.class ) - public void setDialplan_app(String val ) { - dialplan_app = val; - } - - /** The data to be passed to the application. */ - private String dialplan_app_data; - public String getDialplan_app_data() { - return dialplan_app_data; - } - - @JsonDeserialize( as=String.class ) - public void setDialplan_app_data(String val ) { - dialplan_app_data = val; - } - -/** No missing signatures from interface */ -} - diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_0_0/models/ChannelDtmfReceived_impl_ari_1_0_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_0_0/models/ChannelDtmfReceived_impl_ari_1_0_0.java deleted file mode 100644 index bef7b93f..00000000 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_0_0/models/ChannelDtmfReceived_impl_ari_1_0_0.java +++ /dev/null @@ -1,61 +0,0 @@ -package ch.loway.oss.ari4java.generated.ari_1_0_0.models; - -// ---------------------------------------------------- -// THIS CLASS WAS GENERATED AUTOMATICALLY -// PLEASE DO NOT EDIT -// Generated on: Tue Dec 19 09:55:49 CET 2017 -// ---------------------------------------------------- - -import ch.loway.oss.ari4java.generated.*; -import com.fasterxml.jackson.databind.annotation.JsonDeserialize; -import java.util.Date; -import java.util.List; -import java.util.Map; - -/********************************************************** - * DTMF received on a channel. - * - * This event is sent when the DTMF ends. There is no notification about the start of DTMF - * - * Defined in file: events.json - * Generated by: Model - *********************************************************/ - -public class ChannelDtmfReceived_impl_ari_1_0_0 extends Event_impl_ari_1_0_0 implements ChannelDtmfReceived, java.io.Serializable { -private static final long serialVersionUID = 1L; - /** The channel on which DTMF was received */ - private Channel channel; - public Channel getChannel() { - return channel; - } - - @JsonDeserialize( as=Channel_impl_ari_1_0_0.class ) - public void setChannel(Channel val ) { - channel = val; - } - - /** DTMF digit received (0-9, A-E, # or *) */ - private String digit; - public String getDigit() { - return digit; - } - - @JsonDeserialize( as=String.class ) - public void setDigit(String val ) { - digit = val; - } - - /** Number of milliseconds DTMF was received */ - private int duration_ms; - public int getDuration_ms() { - return duration_ms; - } - - @JsonDeserialize( as=int.class ) - public void setDuration_ms(int val ) { - duration_ms = val; - } - -/** No missing signatures from interface */ -} - diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_0_0/models/ChannelEnteredBridge_impl_ari_1_0_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_0_0/models/ChannelEnteredBridge_impl_ari_1_0_0.java deleted file mode 100644 index 596e61e1..00000000 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_0_0/models/ChannelEnteredBridge_impl_ari_1_0_0.java +++ /dev/null @@ -1,48 +0,0 @@ -package ch.loway.oss.ari4java.generated.ari_1_0_0.models; - -// ---------------------------------------------------- -// THIS CLASS WAS GENERATED AUTOMATICALLY -// PLEASE DO NOT EDIT -// Generated on: Tue Dec 19 09:55:48 CET 2017 -// ---------------------------------------------------- - -import ch.loway.oss.ari4java.generated.*; -import com.fasterxml.jackson.databind.annotation.JsonDeserialize; -import java.util.Date; -import java.util.List; -import java.util.Map; - -/********************************************************** - * Notification that a channel has entered a bridge. - * - * Defined in file: events.json - * Generated by: Model - *********************************************************/ - -public class ChannelEnteredBridge_impl_ari_1_0_0 extends Event_impl_ari_1_0_0 implements ChannelEnteredBridge, java.io.Serializable { -private static final long serialVersionUID = 1L; - /** */ - private Bridge bridge; - public Bridge getBridge() { - return bridge; - } - - @JsonDeserialize( as=Bridge_impl_ari_1_0_0.class ) - public void setBridge(Bridge val ) { - bridge = val; - } - - /** */ - private Channel channel; - public Channel getChannel() { - return channel; - } - - @JsonDeserialize( as=Channel_impl_ari_1_0_0.class ) - public void setChannel(Channel val ) { - channel = val; - } - -/** No missing signatures from interface */ -} - diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_0_0/models/ChannelHangupRequest_impl_ari_1_0_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_0_0/models/ChannelHangupRequest_impl_ari_1_0_0.java deleted file mode 100644 index f0e3e3df..00000000 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_0_0/models/ChannelHangupRequest_impl_ari_1_0_0.java +++ /dev/null @@ -1,59 +0,0 @@ -package ch.loway.oss.ari4java.generated.ari_1_0_0.models; - -// ---------------------------------------------------- -// THIS CLASS WAS GENERATED AUTOMATICALLY -// PLEASE DO NOT EDIT -// Generated on: Tue Dec 19 09:55:49 CET 2017 -// ---------------------------------------------------- - -import ch.loway.oss.ari4java.generated.*; -import com.fasterxml.jackson.databind.annotation.JsonDeserialize; -import java.util.Date; -import java.util.List; -import java.util.Map; - -/********************************************************** - * A hangup was requested on the channel. - * - * Defined in file: events.json - * Generated by: Model - *********************************************************/ - -public class ChannelHangupRequest_impl_ari_1_0_0 extends Event_impl_ari_1_0_0 implements ChannelHangupRequest, java.io.Serializable { -private static final long serialVersionUID = 1L; - /** Integer representation of the cause of the hangup. */ - private int cause; - public int getCause() { - return cause; - } - - @JsonDeserialize( as=int.class ) - public void setCause(int val ) { - cause = val; - } - - /** The channel on which the hangup was requested. */ - private Channel channel; - public Channel getChannel() { - return channel; - } - - @JsonDeserialize( as=Channel_impl_ari_1_0_0.class ) - public void setChannel(Channel val ) { - channel = val; - } - - /** Whether the hangup request was a soft hangup request. */ - private boolean soft; - public boolean getSoft() { - return soft; - } - - @JsonDeserialize( as=boolean.class ) - public void setSoft(boolean val ) { - soft = val; - } - -/** No missing signatures from interface */ -} - diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_0_0/models/ChannelLeftBridge_impl_ari_1_0_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_0_0/models/ChannelLeftBridge_impl_ari_1_0_0.java deleted file mode 100644 index 45a50b6c..00000000 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_0_0/models/ChannelLeftBridge_impl_ari_1_0_0.java +++ /dev/null @@ -1,48 +0,0 @@ -package ch.loway.oss.ari4java.generated.ari_1_0_0.models; - -// ---------------------------------------------------- -// THIS CLASS WAS GENERATED AUTOMATICALLY -// PLEASE DO NOT EDIT -// Generated on: Tue Dec 19 09:55:48 CET 2017 -// ---------------------------------------------------- - -import ch.loway.oss.ari4java.generated.*; -import com.fasterxml.jackson.databind.annotation.JsonDeserialize; -import java.util.Date; -import java.util.List; -import java.util.Map; - -/********************************************************** - * Notification that a channel has left a bridge. - * - * Defined in file: events.json - * Generated by: Model - *********************************************************/ - -public class ChannelLeftBridge_impl_ari_1_0_0 extends Event_impl_ari_1_0_0 implements ChannelLeftBridge, java.io.Serializable { -private static final long serialVersionUID = 1L; - /** */ - private Bridge bridge; - public Bridge getBridge() { - return bridge; - } - - @JsonDeserialize( as=Bridge_impl_ari_1_0_0.class ) - public void setBridge(Bridge val ) { - bridge = val; - } - - /** */ - private Channel channel; - public Channel getChannel() { - return channel; - } - - @JsonDeserialize( as=Channel_impl_ari_1_0_0.class ) - public void setChannel(Channel val ) { - channel = val; - } - -/** No missing signatures from interface */ -} - diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_0_0/models/ChannelStateChange_impl_ari_1_0_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_0_0/models/ChannelStateChange_impl_ari_1_0_0.java deleted file mode 100644 index 50180415..00000000 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_0_0/models/ChannelStateChange_impl_ari_1_0_0.java +++ /dev/null @@ -1,37 +0,0 @@ -package ch.loway.oss.ari4java.generated.ari_1_0_0.models; - -// ---------------------------------------------------- -// THIS CLASS WAS GENERATED AUTOMATICALLY -// PLEASE DO NOT EDIT -// Generated on: Tue Dec 19 09:55:49 CET 2017 -// ---------------------------------------------------- - -import ch.loway.oss.ari4java.generated.*; -import com.fasterxml.jackson.databind.annotation.JsonDeserialize; -import java.util.Date; -import java.util.List; -import java.util.Map; - -/********************************************************** - * Notification of a channel's state change. - * - * Defined in file: events.json - * Generated by: Model - *********************************************************/ - -public class ChannelStateChange_impl_ari_1_0_0 extends Event_impl_ari_1_0_0 implements ChannelStateChange, java.io.Serializable { -private static final long serialVersionUID = 1L; - /** */ - private Channel channel; - public Channel getChannel() { - return channel; - } - - @JsonDeserialize( as=Channel_impl_ari_1_0_0.class ) - public void setChannel(Channel val ) { - channel = val; - } - -/** No missing signatures from interface */ -} - diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_0_0/models/ChannelUserevent_impl_ari_1_0_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_0_0/models/ChannelUserevent_impl_ari_1_0_0.java deleted file mode 100644 index a842db1a..00000000 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_0_0/models/ChannelUserevent_impl_ari_1_0_0.java +++ /dev/null @@ -1,94 +0,0 @@ -package ch.loway.oss.ari4java.generated.ari_1_0_0.models; - -// ---------------------------------------------------- -// THIS CLASS WAS GENERATED AUTOMATICALLY -// PLEASE DO NOT EDIT -// Generated on: Tue Dec 19 09:55:49 CET 2017 -// ---------------------------------------------------- - -import ch.loway.oss.ari4java.generated.*; -import com.fasterxml.jackson.databind.annotation.JsonDeserialize; -import java.util.Date; -import java.util.List; -import java.util.Map; - -/********************************************************** - * User-generated event with additional user-defined fields in the object. - * - * Defined in file: events.json - * Generated by: Model - *********************************************************/ - -public class ChannelUserevent_impl_ari_1_0_0 extends Event_impl_ari_1_0_0 implements ChannelUserevent, java.io.Serializable { -private static final long serialVersionUID = 1L; - /** The channel that signaled the user event. */ - private Channel channel; - public Channel getChannel() { - return channel; - } - - @JsonDeserialize( as=Channel_impl_ari_1_0_0.class ) - public void setChannel(Channel val ) { - channel = val; - } - - /** The name of the user event. */ - private String eventname; - public String getEventname() { - return eventname; - } - - @JsonDeserialize( as=String.class ) - public void setEventname(String val ) { - eventname = val; - } - - /** Custom Userevent data */ - private String userevent; - public String getUserevent() { - return userevent; - } - - @JsonDeserialize( as=String.class ) - public void setUserevent(String val ) { - userevent = val; - } - -/********************************************************** - * A endpoint that is signaled with the user event. - * - * @since ari_1_5_0 - *********************************************************/ - public Endpoint getEndpoint(){ - throw new UnsupportedOperationException("Method availble from ..."); -}; - -/********************************************************** - * A bridge that is signaled with the user event. - * - * @since ari_1_5_0 - *********************************************************/ - public void setBridge(Bridge val ){ - throw new UnsupportedOperationException("Method availble from ..."); -}; - -/********************************************************** - * A bridge that is signaled with the user event. - * - * @since ari_1_5_0 - *********************************************************/ - public Bridge getBridge(){ - throw new UnsupportedOperationException("Method availble from ..."); -}; - -/********************************************************** - * A endpoint that is signaled with the user event. - * - * @since ari_1_5_0 - *********************************************************/ - public void setEndpoint(Endpoint val ){ - throw new UnsupportedOperationException("Method availble from ..."); -}; - -} - diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_0_0/models/ChannelVarset_impl_ari_1_0_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_0_0/models/ChannelVarset_impl_ari_1_0_0.java deleted file mode 100644 index a7a88979..00000000 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_0_0/models/ChannelVarset_impl_ari_1_0_0.java +++ /dev/null @@ -1,61 +0,0 @@ -package ch.loway.oss.ari4java.generated.ari_1_0_0.models; - -// ---------------------------------------------------- -// THIS CLASS WAS GENERATED AUTOMATICALLY -// PLEASE DO NOT EDIT -// Generated on: Tue Dec 19 09:55:49 CET 2017 -// ---------------------------------------------------- - -import ch.loway.oss.ari4java.generated.*; -import com.fasterxml.jackson.databind.annotation.JsonDeserialize; -import java.util.Date; -import java.util.List; -import java.util.Map; - -/********************************************************** - * Channel variable changed. - * - * Defined in file: events.json - * Generated by: Model - *********************************************************/ - -public class ChannelVarset_impl_ari_1_0_0 extends Event_impl_ari_1_0_0 implements ChannelVarset, java.io.Serializable { -private static final long serialVersionUID = 1L; - /** The channel on which the variable was set. - -If missing, the variable is a global variable. */ - private Channel channel; - public Channel getChannel() { - return channel; - } - - @JsonDeserialize( as=Channel_impl_ari_1_0_0.class ) - public void setChannel(Channel val ) { - channel = val; - } - - /** The new value of the variable. */ - private String value; - public String getValue() { - return value; - } - - @JsonDeserialize( as=String.class ) - public void setValue(String val ) { - value = val; - } - - /** The variable that changed. */ - private String variable; - public String getVariable() { - return variable; - } - - @JsonDeserialize( as=String.class ) - public void setVariable(String val ) { - variable = val; - } - -/** No missing signatures from interface */ -} - diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_0_0/models/Channel_impl_ari_1_0_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_0_0/models/Channel_impl_ari_1_0_0.java deleted file mode 100644 index 8445b987..00000000 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_0_0/models/Channel_impl_ari_1_0_0.java +++ /dev/null @@ -1,151 +0,0 @@ -package ch.loway.oss.ari4java.generated.ari_1_0_0.models; - -// ---------------------------------------------------- -// THIS CLASS WAS GENERATED AUTOMATICALLY -// PLEASE DO NOT EDIT -// Generated on: Tue Dec 19 09:55:48 CET 2017 -// ---------------------------------------------------- - -import ch.loway.oss.ari4java.generated.*; -import com.fasterxml.jackson.databind.annotation.JsonDeserialize; -import java.util.Date; -import java.util.List; -import java.util.Map; - -/********************************************************** - * A specific communication connection between Asterisk and an Endpoint. - * - * Defined in file: channels.json - * Generated by: Model - *********************************************************/ - -public class Channel_impl_ari_1_0_0 implements Channel, java.io.Serializable { -private static final long serialVersionUID = 1L; - /** */ - private String accountcode; - public String getAccountcode() { - return accountcode; - } - - @JsonDeserialize( as=String.class ) - public void setAccountcode(String val ) { - accountcode = val; - } - - /** */ - private CallerID caller; - public CallerID getCaller() { - return caller; - } - - @JsonDeserialize( as=CallerID_impl_ari_1_0_0.class ) - public void setCaller(CallerID val ) { - caller = val; - } - - /** */ - private CallerID connected; - public CallerID getConnected() { - return connected; - } - - @JsonDeserialize( as=CallerID_impl_ari_1_0_0.class ) - public void setConnected(CallerID val ) { - connected = val; - } - - /** Timestamp when channel was created */ - private Date creationtime; - public Date getCreationtime() { - return creationtime; - } - - @JsonDeserialize( as=Date.class ) - public void setCreationtime(Date val ) { - creationtime = val; - } - - /** Current location in the dialplan */ - private DialplanCEP dialplan; - public DialplanCEP getDialplan() { - return dialplan; - } - - @JsonDeserialize( as=DialplanCEP_impl_ari_1_0_0.class ) - public void setDialplan(DialplanCEP val ) { - dialplan = val; - } - - /** Unique identifier of the channel. - -This is the same as the Uniqueid field in AMI. */ - private String id; - public String getId() { - return id; - } - - @JsonDeserialize( as=String.class ) - public void setId(String val ) { - id = val; - } - - /** Name of the channel (i.e. SIP/foo-0000a7e3) */ - private String name; - public String getName() { - return name; - } - - @JsonDeserialize( as=String.class ) - public void setName(String val ) { - name = val; - } - - /** */ - private String state; - public String getState() { - return state; - } - - @JsonDeserialize( as=String.class ) - public void setState(String val ) { - state = val; - } - -/********************************************************** - * The default spoken language - * - * @since ari_1_7_0 - *********************************************************/ - public String getLanguage(){ - throw new UnsupportedOperationException("Method availble from ..."); -}; - -/********************************************************** - * The default spoken language - * - * @since ari_1_7_0 - *********************************************************/ - public void setLanguage(String val ){ - throw new UnsupportedOperationException("Method availble from ..."); -}; - -/********************************************************** - * Channel variables - * - * @since ari_2_0_0 - *********************************************************/ - public String getChannelvars(){ - throw new UnsupportedOperationException("Method availble from ..."); -}; - -/********************************************************** - * Channel variables - * - * @since ari_2_0_0 - *********************************************************/ - public void setChannelvars(String val ){ - throw new UnsupportedOperationException("Method availble from ..."); -}; - -} - diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_0_0/models/ConfigInfo_impl_ari_1_0_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_0_0/models/ConfigInfo_impl_ari_1_0_0.java deleted file mode 100644 index a451364c..00000000 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_0_0/models/ConfigInfo_impl_ari_1_0_0.java +++ /dev/null @@ -1,92 +0,0 @@ -package ch.loway.oss.ari4java.generated.ari_1_0_0.models; - -// ---------------------------------------------------- -// THIS CLASS WAS GENERATED AUTOMATICALLY -// PLEASE DO NOT EDIT -// Generated on: Tue Dec 19 09:55:48 CET 2017 -// ---------------------------------------------------- - -import ch.loway.oss.ari4java.generated.*; -import com.fasterxml.jackson.databind.annotation.JsonDeserialize; -import java.util.Date; -import java.util.List; -import java.util.Map; - -/********************************************************** - * Info about Asterisk configuration - * - * Defined in file: asterisk.json - * Generated by: Model - *********************************************************/ - -public class ConfigInfo_impl_ari_1_0_0 implements ConfigInfo, java.io.Serializable { -private static final long serialVersionUID = 1L; - /** Default language for media playback. */ - private String default_language; - public String getDefault_language() { - return default_language; - } - - @JsonDeserialize( as=String.class ) - public void setDefault_language(String val ) { - default_language = val; - } - - /** Maximum number of simultaneous channels. */ - private int max_channels; - public int getMax_channels() { - return max_channels; - } - - @JsonDeserialize( as=int.class ) - public void setMax_channels(int val ) { - max_channels = val; - } - - /** Maximum load avg on system. */ - private double max_load; - public double getMax_load() { - return max_load; - } - - @JsonDeserialize( as=double.class ) - public void setMax_load(double val ) { - max_load = val; - } - - /** Maximum number of open file handles (files, sockets). */ - private int max_open_files; - public int getMax_open_files() { - return max_open_files; - } - - @JsonDeserialize( as=int.class ) - public void setMax_open_files(int val ) { - max_open_files = val; - } - - /** Asterisk system name. */ - private String name; - public String getName() { - return name; - } - - @JsonDeserialize( as=String.class ) - public void setName(String val ) { - name = val; - } - - /** Effective user/group id for running Asterisk. */ - private SetId setid; - public SetId getSetid() { - return setid; - } - - @JsonDeserialize( as=SetId_impl_ari_1_0_0.class ) - public void setSetid(SetId val ) { - setid = val; - } - -/** No missing signatures from interface */ -} - diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_0_0/models/DeviceStateChanged_impl_ari_1_0_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_0_0/models/DeviceStateChanged_impl_ari_1_0_0.java deleted file mode 100644 index 4e4b139c..00000000 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_0_0/models/DeviceStateChanged_impl_ari_1_0_0.java +++ /dev/null @@ -1,37 +0,0 @@ -package ch.loway.oss.ari4java.generated.ari_1_0_0.models; - -// ---------------------------------------------------- -// THIS CLASS WAS GENERATED AUTOMATICALLY -// PLEASE DO NOT EDIT -// Generated on: Tue Dec 19 09:55:48 CET 2017 -// ---------------------------------------------------- - -import ch.loway.oss.ari4java.generated.*; -import com.fasterxml.jackson.databind.annotation.JsonDeserialize; -import java.util.Date; -import java.util.List; -import java.util.Map; - -/********************************************************** - * Notification that a device state has changed. - * - * Defined in file: events.json - * Generated by: Model - *********************************************************/ - -public class DeviceStateChanged_impl_ari_1_0_0 extends Event_impl_ari_1_0_0 implements DeviceStateChanged, java.io.Serializable { -private static final long serialVersionUID = 1L; - /** Device state object */ - private DeviceState device_state; - public DeviceState getDevice_state() { - return device_state; - } - - @JsonDeserialize( as=DeviceState_impl_ari_1_0_0.class ) - public void setDevice_state(DeviceState val ) { - device_state = val; - } - -/** No missing signatures from interface */ -} - diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_0_0/models/DeviceState_impl_ari_1_0_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_0_0/models/DeviceState_impl_ari_1_0_0.java deleted file mode 100644 index 3738e790..00000000 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_0_0/models/DeviceState_impl_ari_1_0_0.java +++ /dev/null @@ -1,48 +0,0 @@ -package ch.loway.oss.ari4java.generated.ari_1_0_0.models; - -// ---------------------------------------------------- -// THIS CLASS WAS GENERATED AUTOMATICALLY -// PLEASE DO NOT EDIT -// Generated on: Tue Dec 19 09:55:48 CET 2017 -// ---------------------------------------------------- - -import ch.loway.oss.ari4java.generated.*; -import com.fasterxml.jackson.databind.annotation.JsonDeserialize; -import java.util.Date; -import java.util.List; -import java.util.Map; - -/********************************************************** - * Represents the state of a device. - * - * Defined in file: deviceStates.json - * Generated by: Model - *********************************************************/ - -public class DeviceState_impl_ari_1_0_0 implements DeviceState, java.io.Serializable { -private static final long serialVersionUID = 1L; - /** Name of the device. */ - private String name; - public String getName() { - return name; - } - - @JsonDeserialize( as=String.class ) - public void setName(String val ) { - name = val; - } - - /** Device's state */ - private String state; - public String getState() { - return state; - } - - @JsonDeserialize( as=String.class ) - public void setState(String val ) { - state = val; - } - -/** No missing signatures from interface */ -} - diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_0_0/models/Dial_impl_ari_1_0_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_0_0/models/Dial_impl_ari_1_0_0.java deleted file mode 100644 index 43ef0feb..00000000 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_0_0/models/Dial_impl_ari_1_0_0.java +++ /dev/null @@ -1,92 +0,0 @@ -package ch.loway.oss.ari4java.generated.ari_1_0_0.models; - -// ---------------------------------------------------- -// THIS CLASS WAS GENERATED AUTOMATICALLY -// PLEASE DO NOT EDIT -// Generated on: Tue Dec 19 09:55:49 CET 2017 -// ---------------------------------------------------- - -import ch.loway.oss.ari4java.generated.*; -import com.fasterxml.jackson.databind.annotation.JsonDeserialize; -import java.util.Date; -import java.util.List; -import java.util.Map; - -/********************************************************** - * Dialing state has changed. - * - * Defined in file: events.json - * Generated by: Model - *********************************************************/ - -public class Dial_impl_ari_1_0_0 extends Event_impl_ari_1_0_0 implements Dial, java.io.Serializable { -private static final long serialVersionUID = 1L; - /** The calling channel. */ - private Channel caller; - public Channel getCaller() { - return caller; - } - - @JsonDeserialize( as=Channel_impl_ari_1_0_0.class ) - public void setCaller(Channel val ) { - caller = val; - } - - /** Current status of the dialing attempt to the peer. */ - private String dialstatus; - public String getDialstatus() { - return dialstatus; - } - - @JsonDeserialize( as=String.class ) - public void setDialstatus(String val ) { - dialstatus = val; - } - - /** The dial string for calling the peer channel. */ - private String dialstring; - public String getDialstring() { - return dialstring; - } - - @JsonDeserialize( as=String.class ) - public void setDialstring(String val ) { - dialstring = val; - } - - /** Forwarding target requested by the original dialed channel. */ - private String forward; - public String getForward() { - return forward; - } - - @JsonDeserialize( as=String.class ) - public void setForward(String val ) { - forward = val; - } - - /** Channel that the caller has been forwarded to. */ - private Channel forwarded; - public Channel getForwarded() { - return forwarded; - } - - @JsonDeserialize( as=Channel_impl_ari_1_0_0.class ) - public void setForwarded(Channel val ) { - forwarded = val; - } - - /** The dialed channel. */ - private Channel peer; - public Channel getPeer() { - return peer; - } - - @JsonDeserialize( as=Channel_impl_ari_1_0_0.class ) - public void setPeer(Channel val ) { - peer = val; - } - -/** No missing signatures from interface */ -} - diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_0_0/models/Dialed_impl_ari_1_0_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_0_0/models/Dialed_impl_ari_1_0_0.java deleted file mode 100644 index 4b939a17..00000000 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_0_0/models/Dialed_impl_ari_1_0_0.java +++ /dev/null @@ -1,26 +0,0 @@ -package ch.loway.oss.ari4java.generated.ari_1_0_0.models; - -// ---------------------------------------------------- -// THIS CLASS WAS GENERATED AUTOMATICALLY -// PLEASE DO NOT EDIT -// Generated on: Tue Dec 19 09:55:48 CET 2017 -// ---------------------------------------------------- - -import ch.loway.oss.ari4java.generated.*; -import com.fasterxml.jackson.databind.annotation.JsonDeserialize; -import java.util.Date; -import java.util.List; -import java.util.Map; - -/********************************************************** - * Dialed channel information. - * - * Defined in file: channels.json - * Generated by: Model - *********************************************************/ - -public class Dialed_impl_ari_1_0_0 implements Dialed, java.io.Serializable { -private static final long serialVersionUID = 1L; -/** No missing signatures from interface */ -} - diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_0_0/models/DialplanCEP_impl_ari_1_0_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_0_0/models/DialplanCEP_impl_ari_1_0_0.java deleted file mode 100644 index 53f695d0..00000000 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_0_0/models/DialplanCEP_impl_ari_1_0_0.java +++ /dev/null @@ -1,59 +0,0 @@ -package ch.loway.oss.ari4java.generated.ari_1_0_0.models; - -// ---------------------------------------------------- -// THIS CLASS WAS GENERATED AUTOMATICALLY -// PLEASE DO NOT EDIT -// Generated on: Tue Dec 19 09:55:48 CET 2017 -// ---------------------------------------------------- - -import ch.loway.oss.ari4java.generated.*; -import com.fasterxml.jackson.databind.annotation.JsonDeserialize; -import java.util.Date; -import java.util.List; -import java.util.Map; - -/********************************************************** - * Dialplan location (context/extension/priority) - * - * Defined in file: channels.json - * Generated by: Model - *********************************************************/ - -public class DialplanCEP_impl_ari_1_0_0 implements DialplanCEP, java.io.Serializable { -private static final long serialVersionUID = 1L; - /** Context in the dialplan */ - private String context; - public String getContext() { - return context; - } - - @JsonDeserialize( as=String.class ) - public void setContext(String val ) { - context = val; - } - - /** Extension in the dialplan */ - private String exten; - public String getExten() { - return exten; - } - - @JsonDeserialize( as=String.class ) - public void setExten(String val ) { - exten = val; - } - - /** Priority in the dialplan */ - private long priority; - public long getPriority() { - return priority; - } - - @JsonDeserialize( as=long.class ) - public void setPriority(long val ) { - priority = val; - } - -/** No missing signatures from interface */ -} - diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_0_0/models/EndpointStateChange_impl_ari_1_0_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_0_0/models/EndpointStateChange_impl_ari_1_0_0.java deleted file mode 100644 index 64ac6bbf..00000000 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_0_0/models/EndpointStateChange_impl_ari_1_0_0.java +++ /dev/null @@ -1,37 +0,0 @@ -package ch.loway.oss.ari4java.generated.ari_1_0_0.models; - -// ---------------------------------------------------- -// THIS CLASS WAS GENERATED AUTOMATICALLY -// PLEASE DO NOT EDIT -// Generated on: Tue Dec 19 09:55:49 CET 2017 -// ---------------------------------------------------- - -import ch.loway.oss.ari4java.generated.*; -import com.fasterxml.jackson.databind.annotation.JsonDeserialize; -import java.util.Date; -import java.util.List; -import java.util.Map; - -/********************************************************** - * Endpoint state changed. - * - * Defined in file: events.json - * Generated by: Model - *********************************************************/ - -public class EndpointStateChange_impl_ari_1_0_0 extends Event_impl_ari_1_0_0 implements EndpointStateChange, java.io.Serializable { -private static final long serialVersionUID = 1L; - /** */ - private Endpoint endpoint; - public Endpoint getEndpoint() { - return endpoint; - } - - @JsonDeserialize( as=Endpoint_impl_ari_1_0_0.class ) - public void setEndpoint(Endpoint val ) { - endpoint = val; - } - -/** No missing signatures from interface */ -} - diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_0_0/models/Endpoint_impl_ari_1_0_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_0_0/models/Endpoint_impl_ari_1_0_0.java deleted file mode 100644 index db2f7813..00000000 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_0_0/models/Endpoint_impl_ari_1_0_0.java +++ /dev/null @@ -1,72 +0,0 @@ -package ch.loway.oss.ari4java.generated.ari_1_0_0.models; - -// ---------------------------------------------------- -// THIS CLASS WAS GENERATED AUTOMATICALLY -// PLEASE DO NOT EDIT -// Generated on: Tue Dec 19 09:55:48 CET 2017 -// ---------------------------------------------------- - -import ch.loway.oss.ari4java.generated.*; -import com.fasterxml.jackson.databind.annotation.JsonDeserialize; -import java.util.Date; -import java.util.List; -import java.util.Map; - -/********************************************************** - * An external device that may offer/accept calls to/from Asterisk. - * - * Unlike most resources, which have a single unique identifier, an endpoint is uniquely identified by the technology/resource pair. - * - * Defined in file: endpoints.json - * Generated by: Model - *********************************************************/ - -public class Endpoint_impl_ari_1_0_0 implements Endpoint, java.io.Serializable { -private static final long serialVersionUID = 1L; - /** Id's of channels associated with this endpoint */ - private List channel_ids; - public List getChannel_ids() { - return channel_ids; - } - - @JsonDeserialize( contentAs=String.class ) - public void setChannel_ids(List val ) { - channel_ids = val; - } - - /** Identifier of the endpoint, specific to the given technology. */ - private String resource; - public String getResource() { - return resource; - } - - @JsonDeserialize( as=String.class ) - public void setResource(String val ) { - resource = val; - } - - /** Endpoint's state */ - private String state; - public String getState() { - return state; - } - - @JsonDeserialize( as=String.class ) - public void setState(String val ) { - state = val; - } - - /** Technology of the endpoint */ - private String technology; - public String getTechnology() { - return technology; - } - - @JsonDeserialize( as=String.class ) - public void setTechnology(String val ) { - technology = val; - } - -/** No missing signatures from interface */ -} - diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_0_0/models/Event_impl_ari_1_0_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_0_0/models/Event_impl_ari_1_0_0.java deleted file mode 100644 index 5afe3562..00000000 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_0_0/models/Event_impl_ari_1_0_0.java +++ /dev/null @@ -1,48 +0,0 @@ -package ch.loway.oss.ari4java.generated.ari_1_0_0.models; - -// ---------------------------------------------------- -// THIS CLASS WAS GENERATED AUTOMATICALLY -// PLEASE DO NOT EDIT -// Generated on: Tue Dec 19 09:55:48 CET 2017 -// ---------------------------------------------------- - -import ch.loway.oss.ari4java.generated.*; -import com.fasterxml.jackson.databind.annotation.JsonDeserialize; -import java.util.Date; -import java.util.List; -import java.util.Map; - -/********************************************************** - * Base type for asynchronous events from Asterisk. - * - * Defined in file: events.json - * Generated by: Model - *********************************************************/ - -public class Event_impl_ari_1_0_0 extends Message_impl_ari_1_0_0 implements Event, java.io.Serializable { -private static final long serialVersionUID = 1L; - /** Name of the application receiving the event. */ - private String application; - public String getApplication() { - return application; - } - - @JsonDeserialize( as=String.class ) - public void setApplication(String val ) { - application = val; - } - - /** Time at which this event was created. */ - private Date timestamp; - public Date getTimestamp() { - return timestamp; - } - - @JsonDeserialize( as=Date.class ) - public void setTimestamp(Date val ) { - timestamp = val; - } - -/** No missing signatures from interface */ -} - diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_0_0/models/FormatLangPair_impl_ari_1_0_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_0_0/models/FormatLangPair_impl_ari_1_0_0.java deleted file mode 100644 index 09f90fd7..00000000 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_0_0/models/FormatLangPair_impl_ari_1_0_0.java +++ /dev/null @@ -1,48 +0,0 @@ -package ch.loway.oss.ari4java.generated.ari_1_0_0.models; - -// ---------------------------------------------------- -// THIS CLASS WAS GENERATED AUTOMATICALLY -// PLEASE DO NOT EDIT -// Generated on: Tue Dec 19 09:55:48 CET 2017 -// ---------------------------------------------------- - -import ch.loway.oss.ari4java.generated.*; -import com.fasterxml.jackson.databind.annotation.JsonDeserialize; -import java.util.Date; -import java.util.List; -import java.util.Map; - -/********************************************************** - * Identifies the format and language of a sound file - * - * Defined in file: sounds.json - * Generated by: Model - *********************************************************/ - -public class FormatLangPair_impl_ari_1_0_0 implements FormatLangPair, java.io.Serializable { -private static final long serialVersionUID = 1L; - /** */ - private String format; - public String getFormat() { - return format; - } - - @JsonDeserialize( as=String.class ) - public void setFormat(String val ) { - format = val; - } - - /** */ - private String language; - public String getLanguage() { - return language; - } - - @JsonDeserialize( as=String.class ) - public void setLanguage(String val ) { - language = val; - } - -/** No missing signatures from interface */ -} - diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_0_0/models/LiveRecording_impl_ari_1_0_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_0_0/models/LiveRecording_impl_ari_1_0_0.java deleted file mode 100644 index a8a3ac44..00000000 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_0_0/models/LiveRecording_impl_ari_1_0_0.java +++ /dev/null @@ -1,141 +0,0 @@ -package ch.loway.oss.ari4java.generated.ari_1_0_0.models; - -// ---------------------------------------------------- -// THIS CLASS WAS GENERATED AUTOMATICALLY -// PLEASE DO NOT EDIT -// Generated on: Tue Dec 19 09:55:48 CET 2017 -// ---------------------------------------------------- - -import ch.loway.oss.ari4java.generated.*; -import com.fasterxml.jackson.databind.annotation.JsonDeserialize; -import java.util.Date; -import java.util.List; -import java.util.Map; - -/********************************************************** - * A recording that is in progress - * - * Defined in file: recordings.json - * Generated by: Model - *********************************************************/ - -public class LiveRecording_impl_ari_1_0_0 implements LiveRecording, java.io.Serializable { -private static final long serialVersionUID = 1L; - /** Cause for recording failure if failed */ - private String cause; - public String getCause() { - return cause; - } - - @JsonDeserialize( as=String.class ) - public void setCause(String val ) { - cause = val; - } - - /** */ - private String format; - public String getFormat() { - return format; - } - - @JsonDeserialize( as=String.class ) - public void setFormat(String val ) { - format = val; - } - - /** Base name for the recording */ - private String name; - public String getName() { - return name; - } - - @JsonDeserialize( as=String.class ) - public void setName(String val ) { - name = val; - } - - /** */ - private String state; - public String getState() { - return state; - } - - @JsonDeserialize( as=String.class ) - public void setState(String val ) { - state = val; - } - -/********************************************************** - * URI for the channel or bridge being recorded - * - * @since ari_1_5_0 - *********************************************************/ - public String getTarget_uri(){ - throw new UnsupportedOperationException("Method availble from ..."); -}; - -/********************************************************** - * Duration of talking, in seconds, detected in the recording. This is only available if the recording was initiated with a non-zero maxSilenceSeconds. - * - * @since ari_1_5_0 - *********************************************************/ - public void setTalking_duration(int val ){ - throw new UnsupportedOperationException("Method availble from ..."); -}; - -/********************************************************** - * Duration in seconds of the recording - * - * @since ari_1_5_0 - *********************************************************/ - public int getDuration(){ - throw new UnsupportedOperationException("Method availble from ..."); -}; - -/********************************************************** - * URI for the channel or bridge being recorded - * - * @since ari_1_5_0 - *********************************************************/ - public void setTarget_uri(String val ){ - throw new UnsupportedOperationException("Method availble from ..."); -}; - -/********************************************************** - * Duration in seconds of the recording - * - * @since ari_1_5_0 - *********************************************************/ - public void setDuration(int val ){ - throw new UnsupportedOperationException("Method availble from ..."); -}; - -/********************************************************** - * Duration of silence, in seconds, detected in the recording. This is only available if the recording was initiated with a non-zero maxSilenceSeconds. - * - * @since ari_1_5_0 - *********************************************************/ - public int getSilence_duration(){ - throw new UnsupportedOperationException("Method availble from ..."); -}; - -/********************************************************** - * Duration of talking, in seconds, detected in the recording. This is only available if the recording was initiated with a non-zero maxSilenceSeconds. - * - * @since ari_1_5_0 - *********************************************************/ - public int getTalking_duration(){ - throw new UnsupportedOperationException("Method availble from ..."); -}; - -/********************************************************** - * Duration of silence, in seconds, detected in the recording. This is only available if the recording was initiated with a non-zero maxSilenceSeconds. - * - * @since ari_1_5_0 - *********************************************************/ - public void setSilence_duration(int val ){ - throw new UnsupportedOperationException("Method availble from ..."); -}; - -} - diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_0_0/models/Message_impl_ari_1_0_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_0_0/models/Message_impl_ari_1_0_0.java deleted file mode 100644 index 786ba029..00000000 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_0_0/models/Message_impl_ari_1_0_0.java +++ /dev/null @@ -1,87 +0,0 @@ -package ch.loway.oss.ari4java.generated.ari_1_0_0.models; - -// ---------------------------------------------------- -// THIS CLASS WAS GENERATED AUTOMATICALLY -// PLEASE DO NOT EDIT -// Generated on: Tue Dec 19 09:55:48 CET 2017 -// ---------------------------------------------------- - -import ch.loway.oss.ari4java.generated.*; -import com.fasterxml.jackson.annotation.JsonSubTypes; -import com.fasterxml.jackson.annotation.JsonSubTypes.Type; -import com.fasterxml.jackson.annotation.JsonTypeInfo; -import com.fasterxml.jackson.databind.annotation.JsonDeserialize; -import java.util.Date; -import java.util.List; -import java.util.Map; - -/********************************************************** - * Base type for errors and events - * - * Defined in file: events.json - * Generated by: Model - *********************************************************/ - @JsonTypeInfo( use = JsonTypeInfo.Id.NAME, include = JsonTypeInfo.As.PROPERTY, property = "type") - @JsonSubTypes({ @Type(value = MissingParams_impl_ari_1_0_0.class, name = "MissingParams") -, @Type(value = Event_impl_ari_1_0_0.class, name = "Event") -, @Type(value = DeviceStateChanged_impl_ari_1_0_0.class, name = "DeviceStateChanged") -, @Type(value = PlaybackStarted_impl_ari_1_0_0.class, name = "PlaybackStarted") -, @Type(value = PlaybackFinished_impl_ari_1_0_0.class, name = "PlaybackFinished") -, @Type(value = RecordingStarted_impl_ari_1_0_0.class, name = "RecordingStarted") -, @Type(value = RecordingFinished_impl_ari_1_0_0.class, name = "RecordingFinished") -, @Type(value = RecordingFailed_impl_ari_1_0_0.class, name = "RecordingFailed") -, @Type(value = ApplicationReplaced_impl_ari_1_0_0.class, name = "ApplicationReplaced") -, @Type(value = BridgeCreated_impl_ari_1_0_0.class, name = "BridgeCreated") -, @Type(value = BridgeDestroyed_impl_ari_1_0_0.class, name = "BridgeDestroyed") -, @Type(value = BridgeMerged_impl_ari_1_0_0.class, name = "BridgeMerged") -, @Type(value = ChannelCreated_impl_ari_1_0_0.class, name = "ChannelCreated") -, @Type(value = ChannelDestroyed_impl_ari_1_0_0.class, name = "ChannelDestroyed") -, @Type(value = ChannelEnteredBridge_impl_ari_1_0_0.class, name = "ChannelEnteredBridge") -, @Type(value = ChannelLeftBridge_impl_ari_1_0_0.class, name = "ChannelLeftBridge") -, @Type(value = ChannelStateChange_impl_ari_1_0_0.class, name = "ChannelStateChange") -, @Type(value = ChannelDtmfReceived_impl_ari_1_0_0.class, name = "ChannelDtmfReceived") -, @Type(value = ChannelDialplan_impl_ari_1_0_0.class, name = "ChannelDialplan") -, @Type(value = ChannelCallerId_impl_ari_1_0_0.class, name = "ChannelCallerId") -, @Type(value = ChannelUserevent_impl_ari_1_0_0.class, name = "ChannelUserevent") -, @Type(value = ChannelHangupRequest_impl_ari_1_0_0.class, name = "ChannelHangupRequest") -, @Type(value = ChannelVarset_impl_ari_1_0_0.class, name = "ChannelVarset") -, @Type(value = EndpointStateChange_impl_ari_1_0_0.class, name = "EndpointStateChange") -, @Type(value = Dial_impl_ari_1_0_0.class, name = "Dial") -, @Type(value = StasisEnd_impl_ari_1_0_0.class, name = "StasisEnd") -, @Type(value = StasisStart_impl_ari_1_0_0.class, name = "StasisStart") - }) - - -public class Message_impl_ari_1_0_0 implements Message, java.io.Serializable { -private static final long serialVersionUID = 1L; - /** Indicates the type of this message. */ - private String type; - public String getType() { - return type; - } - - @JsonDeserialize( as=String.class ) - public void setType(String val ) { - type = val; - } - -/********************************************************** - * The unique ID for the Asterisk instance that raised this event. - * - * @since ari_2_0_0 - *********************************************************/ - public void setAsterisk_id(String val ){ - throw new UnsupportedOperationException("Method availble from ..."); -}; - -/********************************************************** - * The unique ID for the Asterisk instance that raised this event. - * - * @since ari_2_0_0 - *********************************************************/ - public String getAsterisk_id(){ - throw new UnsupportedOperationException("Method availble from ..."); -}; - -} - diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_0_0/models/MissingParams_impl_ari_1_0_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_0_0/models/MissingParams_impl_ari_1_0_0.java deleted file mode 100644 index 0285abeb..00000000 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_0_0/models/MissingParams_impl_ari_1_0_0.java +++ /dev/null @@ -1,37 +0,0 @@ -package ch.loway.oss.ari4java.generated.ari_1_0_0.models; - -// ---------------------------------------------------- -// THIS CLASS WAS GENERATED AUTOMATICALLY -// PLEASE DO NOT EDIT -// Generated on: Tue Dec 19 09:55:48 CET 2017 -// ---------------------------------------------------- - -import ch.loway.oss.ari4java.generated.*; -import com.fasterxml.jackson.databind.annotation.JsonDeserialize; -import java.util.Date; -import java.util.List; -import java.util.Map; - -/********************************************************** - * Error event sent when required params are missing. - * - * Defined in file: events.json - * Generated by: Model - *********************************************************/ - -public class MissingParams_impl_ari_1_0_0 extends Message_impl_ari_1_0_0 implements MissingParams, java.io.Serializable { -private static final long serialVersionUID = 1L; - /** A list of the missing parameters */ - private List params; - public List getParams() { - return params; - } - - @JsonDeserialize( contentAs=String.class ) - public void setParams(List val ) { - params = val; - } - -/** No missing signatures from interface */ -} - diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_0_0/models/PlaybackFinished_impl_ari_1_0_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_0_0/models/PlaybackFinished_impl_ari_1_0_0.java deleted file mode 100644 index a3e184a9..00000000 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_0_0/models/PlaybackFinished_impl_ari_1_0_0.java +++ /dev/null @@ -1,37 +0,0 @@ -package ch.loway.oss.ari4java.generated.ari_1_0_0.models; - -// ---------------------------------------------------- -// THIS CLASS WAS GENERATED AUTOMATICALLY -// PLEASE DO NOT EDIT -// Generated on: Tue Dec 19 09:55:48 CET 2017 -// ---------------------------------------------------- - -import ch.loway.oss.ari4java.generated.*; -import com.fasterxml.jackson.databind.annotation.JsonDeserialize; -import java.util.Date; -import java.util.List; -import java.util.Map; - -/********************************************************** - * Event showing the completion of a media playback operation. - * - * Defined in file: events.json - * Generated by: Model - *********************************************************/ - -public class PlaybackFinished_impl_ari_1_0_0 extends Event_impl_ari_1_0_0 implements PlaybackFinished, java.io.Serializable { -private static final long serialVersionUID = 1L; - /** Playback control object */ - private Playback playback; - public Playback getPlayback() { - return playback; - } - - @JsonDeserialize( as=Playback_impl_ari_1_0_0.class ) - public void setPlayback(Playback val ) { - playback = val; - } - -/** No missing signatures from interface */ -} - diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_0_0/models/PlaybackStarted_impl_ari_1_0_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_0_0/models/PlaybackStarted_impl_ari_1_0_0.java deleted file mode 100644 index e53afa38..00000000 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_0_0/models/PlaybackStarted_impl_ari_1_0_0.java +++ /dev/null @@ -1,37 +0,0 @@ -package ch.loway.oss.ari4java.generated.ari_1_0_0.models; - -// ---------------------------------------------------- -// THIS CLASS WAS GENERATED AUTOMATICALLY -// PLEASE DO NOT EDIT -// Generated on: Tue Dec 19 09:55:48 CET 2017 -// ---------------------------------------------------- - -import ch.loway.oss.ari4java.generated.*; -import com.fasterxml.jackson.databind.annotation.JsonDeserialize; -import java.util.Date; -import java.util.List; -import java.util.Map; - -/********************************************************** - * Event showing the start of a media playback operation. - * - * Defined in file: events.json - * Generated by: Model - *********************************************************/ - -public class PlaybackStarted_impl_ari_1_0_0 extends Event_impl_ari_1_0_0 implements PlaybackStarted, java.io.Serializable { -private static final long serialVersionUID = 1L; - /** Playback control object */ - private Playback playback; - public Playback getPlayback() { - return playback; - } - - @JsonDeserialize( as=Playback_impl_ari_1_0_0.class ) - public void setPlayback(Playback val ) { - playback = val; - } - -/** No missing signatures from interface */ -} - diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_0_0/models/Playback_impl_ari_1_0_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_0_0/models/Playback_impl_ari_1_0_0.java deleted file mode 100644 index 3b426891..00000000 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_0_0/models/Playback_impl_ari_1_0_0.java +++ /dev/null @@ -1,98 +0,0 @@ -package ch.loway.oss.ari4java.generated.ari_1_0_0.models; - -// ---------------------------------------------------- -// THIS CLASS WAS GENERATED AUTOMATICALLY -// PLEASE DO NOT EDIT -// Generated on: Tue Dec 19 09:55:48 CET 2017 -// ---------------------------------------------------- - -import ch.loway.oss.ari4java.generated.*; -import com.fasterxml.jackson.databind.annotation.JsonDeserialize; -import java.util.Date; -import java.util.List; -import java.util.Map; - -/********************************************************** - * Object representing the playback of media to a channel - * - * Defined in file: playbacks.json - * Generated by: Model - *********************************************************/ - -public class Playback_impl_ari_1_0_0 implements Playback, java.io.Serializable { -private static final long serialVersionUID = 1L; - /** ID for this playback operation */ - private String id; - public String getId() { - return id; - } - - @JsonDeserialize( as=String.class ) - public void setId(String val ) { - id = val; - } - - /** For media types that support multiple languages, the language requested for playback. */ - private String language; - public String getLanguage() { - return language; - } - - @JsonDeserialize( as=String.class ) - public void setLanguage(String val ) { - language = val; - } - - /** URI for the media to play back. */ - private String media_uri; - public String getMedia_uri() { - return media_uri; - } - - @JsonDeserialize( as=String.class ) - public void setMedia_uri(String val ) { - media_uri = val; - } - - /** Current state of the playback operation. */ - private String state; - public String getState() { - return state; - } - - @JsonDeserialize( as=String.class ) - public void setState(String val ) { - state = val; - } - - /** URI for the channel or bridge to play the media on */ - private String target_uri; - public String getTarget_uri() { - return target_uri; - } - - @JsonDeserialize( as=String.class ) - public void setTarget_uri(String val ) { - target_uri = val; - } - -/********************************************************** - * If a list of URIs is being played, the next media URI to be played back. - * - * @since ari_1_10_0 - *********************************************************/ - public String getNext_media_uri(){ - throw new UnsupportedOperationException("Method availble from ..."); -}; - -/********************************************************** - * If a list of URIs is being played, the next media URI to be played back. - * - * @since ari_1_10_0 - *********************************************************/ - public void setNext_media_uri(String val ){ - throw new UnsupportedOperationException("Method availble from ..."); -}; - -} - diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_0_0/models/RecordingFailed_impl_ari_1_0_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_0_0/models/RecordingFailed_impl_ari_1_0_0.java deleted file mode 100644 index 83a1e323..00000000 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_0_0/models/RecordingFailed_impl_ari_1_0_0.java +++ /dev/null @@ -1,37 +0,0 @@ -package ch.loway.oss.ari4java.generated.ari_1_0_0.models; - -// ---------------------------------------------------- -// THIS CLASS WAS GENERATED AUTOMATICALLY -// PLEASE DO NOT EDIT -// Generated on: Tue Dec 19 09:55:48 CET 2017 -// ---------------------------------------------------- - -import ch.loway.oss.ari4java.generated.*; -import com.fasterxml.jackson.databind.annotation.JsonDeserialize; -import java.util.Date; -import java.util.List; -import java.util.Map; - -/********************************************************** - * Event showing failure of a recording operation. - * - * Defined in file: events.json - * Generated by: Model - *********************************************************/ - -public class RecordingFailed_impl_ari_1_0_0 extends Event_impl_ari_1_0_0 implements RecordingFailed, java.io.Serializable { -private static final long serialVersionUID = 1L; - /** Recording control object */ - private LiveRecording recording; - public LiveRecording getRecording() { - return recording; - } - - @JsonDeserialize( as=LiveRecording_impl_ari_1_0_0.class ) - public void setRecording(LiveRecording val ) { - recording = val; - } - -/** No missing signatures from interface */ -} - diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_0_0/models/RecordingFinished_impl_ari_1_0_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_0_0/models/RecordingFinished_impl_ari_1_0_0.java deleted file mode 100644 index c68ac7d0..00000000 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_0_0/models/RecordingFinished_impl_ari_1_0_0.java +++ /dev/null @@ -1,37 +0,0 @@ -package ch.loway.oss.ari4java.generated.ari_1_0_0.models; - -// ---------------------------------------------------- -// THIS CLASS WAS GENERATED AUTOMATICALLY -// PLEASE DO NOT EDIT -// Generated on: Tue Dec 19 09:55:48 CET 2017 -// ---------------------------------------------------- - -import ch.loway.oss.ari4java.generated.*; -import com.fasterxml.jackson.databind.annotation.JsonDeserialize; -import java.util.Date; -import java.util.List; -import java.util.Map; - -/********************************************************** - * Event showing the completion of a recording operation. - * - * Defined in file: events.json - * Generated by: Model - *********************************************************/ - -public class RecordingFinished_impl_ari_1_0_0 extends Event_impl_ari_1_0_0 implements RecordingFinished, java.io.Serializable { -private static final long serialVersionUID = 1L; - /** Recording control object */ - private LiveRecording recording; - public LiveRecording getRecording() { - return recording; - } - - @JsonDeserialize( as=LiveRecording_impl_ari_1_0_0.class ) - public void setRecording(LiveRecording val ) { - recording = val; - } - -/** No missing signatures from interface */ -} - diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_0_0/models/RecordingStarted_impl_ari_1_0_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_0_0/models/RecordingStarted_impl_ari_1_0_0.java deleted file mode 100644 index b3bec692..00000000 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_0_0/models/RecordingStarted_impl_ari_1_0_0.java +++ /dev/null @@ -1,37 +0,0 @@ -package ch.loway.oss.ari4java.generated.ari_1_0_0.models; - -// ---------------------------------------------------- -// THIS CLASS WAS GENERATED AUTOMATICALLY -// PLEASE DO NOT EDIT -// Generated on: Tue Dec 19 09:55:48 CET 2017 -// ---------------------------------------------------- - -import ch.loway.oss.ari4java.generated.*; -import com.fasterxml.jackson.databind.annotation.JsonDeserialize; -import java.util.Date; -import java.util.List; -import java.util.Map; - -/********************************************************** - * Event showing the start of a recording operation. - * - * Defined in file: events.json - * Generated by: Model - *********************************************************/ - -public class RecordingStarted_impl_ari_1_0_0 extends Event_impl_ari_1_0_0 implements RecordingStarted, java.io.Serializable { -private static final long serialVersionUID = 1L; - /** Recording control object */ - private LiveRecording recording; - public LiveRecording getRecording() { - return recording; - } - - @JsonDeserialize( as=LiveRecording_impl_ari_1_0_0.class ) - public void setRecording(LiveRecording val ) { - recording = val; - } - -/** No missing signatures from interface */ -} - diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_0_0/models/SetId_impl_ari_1_0_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_0_0/models/SetId_impl_ari_1_0_0.java deleted file mode 100644 index c1f26511..00000000 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_0_0/models/SetId_impl_ari_1_0_0.java +++ /dev/null @@ -1,48 +0,0 @@ -package ch.loway.oss.ari4java.generated.ari_1_0_0.models; - -// ---------------------------------------------------- -// THIS CLASS WAS GENERATED AUTOMATICALLY -// PLEASE DO NOT EDIT -// Generated on: Tue Dec 19 09:55:48 CET 2017 -// ---------------------------------------------------- - -import ch.loway.oss.ari4java.generated.*; -import com.fasterxml.jackson.databind.annotation.JsonDeserialize; -import java.util.Date; -import java.util.List; -import java.util.Map; - -/********************************************************** - * Effective user/group id - * - * Defined in file: asterisk.json - * Generated by: Model - *********************************************************/ - -public class SetId_impl_ari_1_0_0 implements SetId, java.io.Serializable { -private static final long serialVersionUID = 1L; - /** Effective group id. */ - private String group; - public String getGroup() { - return group; - } - - @JsonDeserialize( as=String.class ) - public void setGroup(String val ) { - group = val; - } - - /** Effective user id. */ - private String user; - public String getUser() { - return user; - } - - @JsonDeserialize( as=String.class ) - public void setUser(String val ) { - user = val; - } - -/** No missing signatures from interface */ -} - diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_0_0/models/Sound_impl_ari_1_0_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_0_0/models/Sound_impl_ari_1_0_0.java deleted file mode 100644 index 72f2e60e..00000000 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_0_0/models/Sound_impl_ari_1_0_0.java +++ /dev/null @@ -1,59 +0,0 @@ -package ch.loway.oss.ari4java.generated.ari_1_0_0.models; - -// ---------------------------------------------------- -// THIS CLASS WAS GENERATED AUTOMATICALLY -// PLEASE DO NOT EDIT -// Generated on: Tue Dec 19 09:55:48 CET 2017 -// ---------------------------------------------------- - -import ch.loway.oss.ari4java.generated.*; -import com.fasterxml.jackson.databind.annotation.JsonDeserialize; -import java.util.Date; -import java.util.List; -import java.util.Map; - -/********************************************************** - * A media file that may be played back. - * - * Defined in file: sounds.json - * Generated by: Model - *********************************************************/ - -public class Sound_impl_ari_1_0_0 implements Sound, java.io.Serializable { -private static final long serialVersionUID = 1L; - /** The formats and languages in which this sound is available. */ - private List formats; - public List getFormats() { - return formats; - } - - @JsonDeserialize( contentAs=FormatLangPair_impl_ari_1_0_0.class ) - public void setFormats(List val ) { - formats = val; - } - - /** Sound's identifier. */ - private String id; - public String getId() { - return id; - } - - @JsonDeserialize( as=String.class ) - public void setId(String val ) { - id = val; - } - - /** Text description of the sound, usually the words spoken. */ - private String text; - public String getText() { - return text; - } - - @JsonDeserialize( as=String.class ) - public void setText(String val ) { - text = val; - } - -/** No missing signatures from interface */ -} - diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_0_0/models/StasisEnd_impl_ari_1_0_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_0_0/models/StasisEnd_impl_ari_1_0_0.java deleted file mode 100644 index bd51832d..00000000 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_0_0/models/StasisEnd_impl_ari_1_0_0.java +++ /dev/null @@ -1,37 +0,0 @@ -package ch.loway.oss.ari4java.generated.ari_1_0_0.models; - -// ---------------------------------------------------- -// THIS CLASS WAS GENERATED AUTOMATICALLY -// PLEASE DO NOT EDIT -// Generated on: Tue Dec 19 09:55:49 CET 2017 -// ---------------------------------------------------- - -import ch.loway.oss.ari4java.generated.*; -import com.fasterxml.jackson.databind.annotation.JsonDeserialize; -import java.util.Date; -import java.util.List; -import java.util.Map; - -/********************************************************** - * Notification that a channel has left a Stasis application. - * - * Defined in file: events.json - * Generated by: Model - *********************************************************/ - -public class StasisEnd_impl_ari_1_0_0 extends Event_impl_ari_1_0_0 implements StasisEnd, java.io.Serializable { -private static final long serialVersionUID = 1L; - /** */ - private Channel channel; - public Channel getChannel() { - return channel; - } - - @JsonDeserialize( as=Channel_impl_ari_1_0_0.class ) - public void setChannel(Channel val ) { - channel = val; - } - -/** No missing signatures from interface */ -} - diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_0_0/models/StasisStart_impl_ari_1_0_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_0_0/models/StasisStart_impl_ari_1_0_0.java deleted file mode 100644 index 0c3a0a17..00000000 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_0_0/models/StasisStart_impl_ari_1_0_0.java +++ /dev/null @@ -1,65 +0,0 @@ -package ch.loway.oss.ari4java.generated.ari_1_0_0.models; - -// ---------------------------------------------------- -// THIS CLASS WAS GENERATED AUTOMATICALLY -// PLEASE DO NOT EDIT -// Generated on: Tue Dec 19 09:55:49 CET 2017 -// ---------------------------------------------------- - -import ch.loway.oss.ari4java.generated.*; -import com.fasterxml.jackson.databind.annotation.JsonDeserialize; -import java.util.Date; -import java.util.List; -import java.util.Map; - -/********************************************************** - * Notification that a channel has entered a Stasis application. - * - * Defined in file: events.json - * Generated by: Model - *********************************************************/ - -public class StasisStart_impl_ari_1_0_0 extends Event_impl_ari_1_0_0 implements StasisStart, java.io.Serializable { -private static final long serialVersionUID = 1L; - /** Arguments to the application */ - private List args; - public List getArgs() { - return args; - } - - @JsonDeserialize( contentAs=String.class ) - public void setArgs(List val ) { - args = val; - } - - /** */ - private Channel channel; - public Channel getChannel() { - return channel; - } - - @JsonDeserialize( as=Channel_impl_ari_1_0_0.class ) - public void setChannel(Channel val ) { - channel = val; - } - -/********************************************************** - * - * - * @since ari_1_5_0 - *********************************************************/ - public Channel getReplace_channel(){ - throw new UnsupportedOperationException("Method availble from ..."); -}; - -/********************************************************** - * - * - * @since ari_1_5_0 - *********************************************************/ - public void setReplace_channel(Channel val ){ - throw new UnsupportedOperationException("Method availble from ..."); -}; - -} - diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_0_0/models/StatusInfo_impl_ari_1_0_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_0_0/models/StatusInfo_impl_ari_1_0_0.java deleted file mode 100644 index a346a910..00000000 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_0_0/models/StatusInfo_impl_ari_1_0_0.java +++ /dev/null @@ -1,48 +0,0 @@ -package ch.loway.oss.ari4java.generated.ari_1_0_0.models; - -// ---------------------------------------------------- -// THIS CLASS WAS GENERATED AUTOMATICALLY -// PLEASE DO NOT EDIT -// Generated on: Tue Dec 19 09:55:48 CET 2017 -// ---------------------------------------------------- - -import ch.loway.oss.ari4java.generated.*; -import com.fasterxml.jackson.databind.annotation.JsonDeserialize; -import java.util.Date; -import java.util.List; -import java.util.Map; - -/********************************************************** - * Info about Asterisk status - * - * Defined in file: asterisk.json - * Generated by: Model - *********************************************************/ - -public class StatusInfo_impl_ari_1_0_0 implements StatusInfo, java.io.Serializable { -private static final long serialVersionUID = 1L; - /** Time when Asterisk was last reloaded. */ - private Date last_reload_time; - public Date getLast_reload_time() { - return last_reload_time; - } - - @JsonDeserialize( as=Date.class ) - public void setLast_reload_time(Date val ) { - last_reload_time = val; - } - - /** Time when Asterisk was started. */ - private Date startup_time; - public Date getStartup_time() { - return startup_time; - } - - @JsonDeserialize( as=Date.class ) - public void setStartup_time(Date val ) { - startup_time = val; - } - -/** No missing signatures from interface */ -} - diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_0_0/models/StoredRecording_impl_ari_1_0_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_0_0/models/StoredRecording_impl_ari_1_0_0.java deleted file mode 100644 index 35409db0..00000000 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_0_0/models/StoredRecording_impl_ari_1_0_0.java +++ /dev/null @@ -1,48 +0,0 @@ -package ch.loway.oss.ari4java.generated.ari_1_0_0.models; - -// ---------------------------------------------------- -// THIS CLASS WAS GENERATED AUTOMATICALLY -// PLEASE DO NOT EDIT -// Generated on: Tue Dec 19 09:55:48 CET 2017 -// ---------------------------------------------------- - -import ch.loway.oss.ari4java.generated.*; -import com.fasterxml.jackson.databind.annotation.JsonDeserialize; -import java.util.Date; -import java.util.List; -import java.util.Map; - -/********************************************************** - * A past recording that may be played back. - * - * Defined in file: recordings.json - * Generated by: Model - *********************************************************/ - -public class StoredRecording_impl_ari_1_0_0 implements StoredRecording, java.io.Serializable { -private static final long serialVersionUID = 1L; - /** */ - private String format; - public String getFormat() { - return format; - } - - @JsonDeserialize( as=String.class ) - public void setFormat(String val ) { - format = val; - } - - /** */ - private String name; - public String getName() { - return name; - } - - @JsonDeserialize( as=String.class ) - public void setName(String val ) { - name = val; - } - -/** No missing signatures from interface */ -} - diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_0_0/models/SystemInfo_impl_ari_1_0_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_0_0/models/SystemInfo_impl_ari_1_0_0.java deleted file mode 100644 index dd456834..00000000 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_0_0/models/SystemInfo_impl_ari_1_0_0.java +++ /dev/null @@ -1,48 +0,0 @@ -package ch.loway.oss.ari4java.generated.ari_1_0_0.models; - -// ---------------------------------------------------- -// THIS CLASS WAS GENERATED AUTOMATICALLY -// PLEASE DO NOT EDIT -// Generated on: Tue Dec 19 09:55:48 CET 2017 -// ---------------------------------------------------- - -import ch.loway.oss.ari4java.generated.*; -import com.fasterxml.jackson.databind.annotation.JsonDeserialize; -import java.util.Date; -import java.util.List; -import java.util.Map; - -/********************************************************** - * Info about Asterisk - * - * Defined in file: asterisk.json - * Generated by: Model - *********************************************************/ - -public class SystemInfo_impl_ari_1_0_0 implements SystemInfo, java.io.Serializable { -private static final long serialVersionUID = 1L; - /** */ - private String entity_id; - public String getEntity_id() { - return entity_id; - } - - @JsonDeserialize( as=String.class ) - public void setEntity_id(String val ) { - entity_id = val; - } - - /** Asterisk version. */ - private String version; - public String getVersion() { - return version; - } - - @JsonDeserialize( as=String.class ) - public void setVersion(String val ) { - version = val; - } - -/** No missing signatures from interface */ -} - diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_0_0/models/Variable_impl_ari_1_0_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_0_0/models/Variable_impl_ari_1_0_0.java deleted file mode 100644 index d30b650f..00000000 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_0_0/models/Variable_impl_ari_1_0_0.java +++ /dev/null @@ -1,37 +0,0 @@ -package ch.loway.oss.ari4java.generated.ari_1_0_0.models; - -// ---------------------------------------------------- -// THIS CLASS WAS GENERATED AUTOMATICALLY -// PLEASE DO NOT EDIT -// Generated on: Tue Dec 19 09:55:48 CET 2017 -// ---------------------------------------------------- - -import ch.loway.oss.ari4java.generated.*; -import com.fasterxml.jackson.databind.annotation.JsonDeserialize; -import java.util.Date; -import java.util.List; -import java.util.Map; - -/********************************************************** - * The value of a channel variable - * - * Defined in file: asterisk.json - * Generated by: Model - *********************************************************/ - -public class Variable_impl_ari_1_0_0 implements Variable, java.io.Serializable { -private static final long serialVersionUID = 1L; - /** The value of the variable requested */ - private String value; - public String getValue() { - return value; - } - - @JsonDeserialize( as=String.class ) - public void setValue(String val ) { - value = val; - } - -/** No missing signatures from interface */ -} - diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/AriBuilder_impl_ari_1_10_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/AriBuilder_impl_ari_1_10_0.java deleted file mode 100644 index e242708d..00000000 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/AriBuilder_impl_ari_1_10_0.java +++ /dev/null @@ -1,328 +0,0 @@ -package ch.loway.oss.ari4java.generated.ari_1_10_0; - -// ---------------------------------------------------- -// THIS CLASS WAS GENERATED AUTOMATICALLY -// PLEASE DO NOT EDIT -// Generated on: Tue Dec 19 09:55:49 CET 2017 -// ---------------------------------------------------- - -import ch.loway.oss.ari4java.generated.ari_1_10_0.models.*; -import ch.loway.oss.ari4java.generated.ari_1_10_0.actions.*; -import ch.loway.oss.ari4java.generated.*; -import ch.loway.oss.ari4java.ARI; - -public class AriBuilder_impl_ari_1_10_0 implements AriBuilder { - -public ActionChannels actionChannels() { - return new ActionChannels_impl_ari_1_10_0(); - }; - -public ActionEvents actionEvents() { - return new ActionEvents_impl_ari_1_10_0(); - }; - -public ActionEndpoints actionEndpoints() { - return new ActionEndpoints_impl_ari_1_10_0(); - }; - -public ActionRecordings actionRecordings() { - return new ActionRecordings_impl_ari_1_10_0(); - }; - -public ActionAsterisk actionAsterisk() { - return new ActionAsterisk_impl_ari_1_10_0(); - }; - -public ActionPlaybacks actionPlaybacks() { - return new ActionPlaybacks_impl_ari_1_10_0(); - }; - -public ActionBridges actionBridges() { - return new ActionBridges_impl_ari_1_10_0(); - }; - -public ActionSounds actionSounds() { - return new ActionSounds_impl_ari_1_10_0(); - }; - -public ActionDeviceStates actionDeviceStates() { - return new ActionDeviceStates_impl_ari_1_10_0(); - }; - -public ActionApplications actionApplications() { - return new ActionApplications_impl_ari_1_10_0(); - }; - -public DeviceStateChanged deviceStateChanged() { - return new DeviceStateChanged_impl_ari_1_10_0(); - }; - -public ChannelDialplan channelDialplan() { - return new ChannelDialplan_impl_ari_1_10_0(); - }; - -public ConfigInfo configInfo() { - return new ConfigInfo_impl_ari_1_10_0(); - }; - -public TextMessageVariable textMessageVariable() { - return new TextMessageVariable_impl_ari_1_10_0(); - }; - -public Event event() { - return new Event_impl_ari_1_10_0(); - }; - -public ConfigTuple configTuple() { - return new ConfigTuple_impl_ari_1_10_0(); - }; - -public TextMessage textMessage() { - return new TextMessage_impl_ari_1_10_0(); - }; - -public ApplicationReplaced applicationReplaced() { - return new ApplicationReplaced_impl_ari_1_10_0(); - }; - -public Endpoint endpoint() { - return new Endpoint_impl_ari_1_10_0(); - }; - -public StasisStart stasisStart() { - return new StasisStart_impl_ari_1_10_0(); - }; - -public DeviceState deviceState() { - return new DeviceState_impl_ari_1_10_0(); - }; - -public RecordingFinished recordingFinished() { - return new RecordingFinished_impl_ari_1_10_0(); - }; - -public Dialed dialed() { - return new Dialed_impl_ari_1_10_0(); - }; - -public ChannelStateChange channelStateChange() { - return new ChannelStateChange_impl_ari_1_10_0(); - }; - -public ChannelDtmfReceived channelDtmfReceived() { - return new ChannelDtmfReceived_impl_ari_1_10_0(); - }; - -public ChannelConnectedLine channelConnectedLine() { - return new ChannelConnectedLine_impl_ari_1_10_0(); - }; - -public PlaybackFinished playbackFinished() { - return new PlaybackFinished_impl_ari_1_10_0(); - }; - -public PlaybackStarted playbackStarted() { - return new PlaybackStarted_impl_ari_1_10_0(); - }; - -public Peer peer() { - return new Peer_impl_ari_1_10_0(); - }; - -public ChannelHangupRequest channelHangupRequest() { - return new ChannelHangupRequest_impl_ari_1_10_0(); - }; - -public Dial dial() { - return new Dial_impl_ari_1_10_0(); - }; - -public Variable variable() { - return new Variable_impl_ari_1_10_0(); - }; - -public Module module() { - return new Module_impl_ari_1_10_0(); - }; - -public ChannelCallerId channelCallerId() { - return new ChannelCallerId_impl_ari_1_10_0(); - }; - -public ChannelEnteredBridge channelEnteredBridge() { - return new ChannelEnteredBridge_impl_ari_1_10_0(); - }; - -public LogChannel logChannel() { - return new LogChannel_impl_ari_1_10_0(); - }; - -public Message message() { - return new Message_impl_ari_1_10_0(); - }; - -public PeerStatusChange peerStatusChange() { - return new PeerStatusChange_impl_ari_1_10_0(); - }; - -public Channel channel() { - return new Channel_impl_ari_1_10_0(); - }; - -public BridgeMerged bridgeMerged() { - return new BridgeMerged_impl_ari_1_10_0(); - }; - -public BridgeAttendedTransfer bridgeAttendedTransfer() { - return new BridgeAttendedTransfer_impl_ari_1_10_0(); - }; - -public FormatLangPair formatLangPair() { - return new FormatLangPair_impl_ari_1_10_0(); - }; - -public ChannelVarset channelVarset() { - return new ChannelVarset_impl_ari_1_10_0(); - }; - -public SetId setId() { - return new SetId_impl_ari_1_10_0(); - }; - -public ContactStatusChange contactStatusChange() { - return new ContactStatusChange_impl_ari_1_10_0(); - }; - -public BuildInfo buildInfo() { - return new BuildInfo_impl_ari_1_10_0(); - }; - -public RecordingFailed recordingFailed() { - return new RecordingFailed_impl_ari_1_10_0(); - }; - -public PlaybackContinuing playbackContinuing() { - return new PlaybackContinuing_impl_ari_1_10_0(); - }; - -public ChannelUnhold channelUnhold() { - return new ChannelUnhold_impl_ari_1_10_0(); - }; - -public StoredRecording storedRecording() { - return new StoredRecording_impl_ari_1_10_0(); - }; - -public ChannelDestroyed channelDestroyed() { - return new ChannelDestroyed_impl_ari_1_10_0(); - }; - -public AsteriskInfo asteriskInfo() { - return new AsteriskInfo_impl_ari_1_10_0(); - }; - -public RecordingStarted recordingStarted() { - return new RecordingStarted_impl_ari_1_10_0(); - }; - -public EndpointStateChange endpointStateChange() { - return new EndpointStateChange_impl_ari_1_10_0(); - }; - -public ChannelLeftBridge channelLeftBridge() { - return new ChannelLeftBridge_impl_ari_1_10_0(); - }; - -public ChannelUserevent channelUserevent() { - return new ChannelUserevent_impl_ari_1_10_0(); - }; - -public LiveRecording liveRecording() { - return new LiveRecording_impl_ari_1_10_0(); - }; - -public ChannelTalkingFinished channelTalkingFinished() { - return new ChannelTalkingFinished_impl_ari_1_10_0(); - }; - -public TextMessageReceived textMessageReceived() { - return new TextMessageReceived_impl_ari_1_10_0(); - }; - -public Playback playback() { - return new Playback_impl_ari_1_10_0(); - }; - -public BridgeDestroyed bridgeDestroyed() { - return new BridgeDestroyed_impl_ari_1_10_0(); - }; - -public BridgeBlindTransfer bridgeBlindTransfer() { - return new BridgeBlindTransfer_impl_ari_1_10_0(); - }; - -public StasisEnd stasisEnd() { - return new StasisEnd_impl_ari_1_10_0(); - }; - -public DialplanCEP dialplanCEP() { - return new DialplanCEP_impl_ari_1_10_0(); - }; - -public ChannelCreated channelCreated() { - return new ChannelCreated_impl_ari_1_10_0(); - }; - -public BridgeCreated bridgeCreated() { - return new BridgeCreated_impl_ari_1_10_0(); - }; - -public Bridge bridge() { - return new Bridge_impl_ari_1_10_0(); - }; - -public ContactInfo contactInfo() { - return new ContactInfo_impl_ari_1_10_0(); - }; - -public Sound sound() { - return new Sound_impl_ari_1_10_0(); - }; - -public MissingParams missingParams() { - return new MissingParams_impl_ari_1_10_0(); - }; - -public StatusInfo statusInfo() { - return new StatusInfo_impl_ari_1_10_0(); - }; - -public SystemInfo systemInfo() { - return new SystemInfo_impl_ari_1_10_0(); - }; - -public ChannelHold channelHold() { - return new ChannelHold_impl_ari_1_10_0(); - }; - -public Application application() { - return new Application_impl_ari_1_10_0(); - }; - -public CallerID callerID() { - return new CallerID_impl_ari_1_10_0(); - }; - -public ChannelTalkingStarted channelTalkingStarted() { - return new ChannelTalkingStarted_impl_ari_1_10_0(); - }; - -public BridgeVideoSourceChanged bridgeVideoSourceChanged() { - throw new UnsupportedOperationException(); - }; - -public ARI.ClassFactory getClassFactory() { - return new ClassTranslator_impl_ari_1_10_0(); -}; - -}; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/ClassTranslator_impl_ari_1_10_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/ClassTranslator_impl_ari_1_10_0.java deleted file mode 100644 index f1ffb142..00000000 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/ClassTranslator_impl_ari_1_10_0.java +++ /dev/null @@ -1,331 +0,0 @@ -package ch.loway.oss.ari4java.generated.ari_1_10_0; - -// ---------------------------------------------------- -// THIS CLASS WAS GENERATED AUTOMATICALLY -// PLEASE DO NOT EDIT -// Generated on: Tue Dec 19 09:55:50 CET 2017 -// ---------------------------------------------------- - -import ch.loway.oss.ari4java.ARI; -import ch.loway.oss.ari4java.generated.*; -import ch.loway.oss.ari4java.generated.ari_1_10_0.models.*; -import ch.loway.oss.ari4java.generated.ari_1_10_0.actions.*; - -/********************************************************** - * This is a class translator. - *********************************************************/ -public class ClassTranslator_impl_ari_1_10_0 implements ARI.ClassFactory { - - @Override - public Class getImplementationFor(Class interfaceClass) { - - if ( interfaceClass.equals(ActionApplications.class) ) { - return (ActionApplications_impl_ari_1_10_0.class); - } else - - if ( interfaceClass.equals(ActionAsterisk.class) ) { - return (ActionAsterisk_impl_ari_1_10_0.class); - } else - - if ( interfaceClass.equals(ActionBridges.class) ) { - return (ActionBridges_impl_ari_1_10_0.class); - } else - - if ( interfaceClass.equals(ActionChannels.class) ) { - return (ActionChannels_impl_ari_1_10_0.class); - } else - - if ( interfaceClass.equals(ActionDeviceStates.class) ) { - return (ActionDeviceStates_impl_ari_1_10_0.class); - } else - - if ( interfaceClass.equals(ActionEndpoints.class) ) { - return (ActionEndpoints_impl_ari_1_10_0.class); - } else - - if ( interfaceClass.equals(ActionEvents.class) ) { - return (ActionEvents_impl_ari_1_10_0.class); - } else - - if ( interfaceClass.equals(ActionPlaybacks.class) ) { - return (ActionPlaybacks_impl_ari_1_10_0.class); - } else - - if ( interfaceClass.equals(ActionRecordings.class) ) { - return (ActionRecordings_impl_ari_1_10_0.class); - } else - - if ( interfaceClass.equals(ActionSounds.class) ) { - return (ActionSounds_impl_ari_1_10_0.class); - } else - - if ( interfaceClass.equals(Application.class) ) { - return (Application_impl_ari_1_10_0.class); - } else - - if ( interfaceClass.equals(ApplicationReplaced.class) ) { - return (ApplicationReplaced_impl_ari_1_10_0.class); - } else - - if ( interfaceClass.equals(AsteriskInfo.class) ) { - return (AsteriskInfo_impl_ari_1_10_0.class); - } else - - if ( interfaceClass.equals(Bridge.class) ) { - return (Bridge_impl_ari_1_10_0.class); - } else - - if ( interfaceClass.equals(BridgeAttendedTransfer.class) ) { - return (BridgeAttendedTransfer_impl_ari_1_10_0.class); - } else - - if ( interfaceClass.equals(BridgeBlindTransfer.class) ) { - return (BridgeBlindTransfer_impl_ari_1_10_0.class); - } else - - if ( interfaceClass.equals(BridgeCreated.class) ) { - return (BridgeCreated_impl_ari_1_10_0.class); - } else - - if ( interfaceClass.equals(BridgeDestroyed.class) ) { - return (BridgeDestroyed_impl_ari_1_10_0.class); - } else - - if ( interfaceClass.equals(BridgeMerged.class) ) { - return (BridgeMerged_impl_ari_1_10_0.class); - } else - - if ( interfaceClass.equals(BuildInfo.class) ) { - return (BuildInfo_impl_ari_1_10_0.class); - } else - - if ( interfaceClass.equals(CallerID.class) ) { - return (CallerID_impl_ari_1_10_0.class); - } else - - if ( interfaceClass.equals(Channel.class) ) { - return (Channel_impl_ari_1_10_0.class); - } else - - if ( interfaceClass.equals(ChannelCallerId.class) ) { - return (ChannelCallerId_impl_ari_1_10_0.class); - } else - - if ( interfaceClass.equals(ChannelConnectedLine.class) ) { - return (ChannelConnectedLine_impl_ari_1_10_0.class); - } else - - if ( interfaceClass.equals(ChannelCreated.class) ) { - return (ChannelCreated_impl_ari_1_10_0.class); - } else - - if ( interfaceClass.equals(ChannelDestroyed.class) ) { - return (ChannelDestroyed_impl_ari_1_10_0.class); - } else - - if ( interfaceClass.equals(ChannelDialplan.class) ) { - return (ChannelDialplan_impl_ari_1_10_0.class); - } else - - if ( interfaceClass.equals(ChannelDtmfReceived.class) ) { - return (ChannelDtmfReceived_impl_ari_1_10_0.class); - } else - - if ( interfaceClass.equals(ChannelEnteredBridge.class) ) { - return (ChannelEnteredBridge_impl_ari_1_10_0.class); - } else - - if ( interfaceClass.equals(ChannelHangupRequest.class) ) { - return (ChannelHangupRequest_impl_ari_1_10_0.class); - } else - - if ( interfaceClass.equals(ChannelHold.class) ) { - return (ChannelHold_impl_ari_1_10_0.class); - } else - - if ( interfaceClass.equals(ChannelLeftBridge.class) ) { - return (ChannelLeftBridge_impl_ari_1_10_0.class); - } else - - if ( interfaceClass.equals(ChannelStateChange.class) ) { - return (ChannelStateChange_impl_ari_1_10_0.class); - } else - - if ( interfaceClass.equals(ChannelTalkingFinished.class) ) { - return (ChannelTalkingFinished_impl_ari_1_10_0.class); - } else - - if ( interfaceClass.equals(ChannelTalkingStarted.class) ) { - return (ChannelTalkingStarted_impl_ari_1_10_0.class); - } else - - if ( interfaceClass.equals(ChannelUnhold.class) ) { - return (ChannelUnhold_impl_ari_1_10_0.class); - } else - - if ( interfaceClass.equals(ChannelUserevent.class) ) { - return (ChannelUserevent_impl_ari_1_10_0.class); - } else - - if ( interfaceClass.equals(ChannelVarset.class) ) { - return (ChannelVarset_impl_ari_1_10_0.class); - } else - - if ( interfaceClass.equals(ConfigInfo.class) ) { - return (ConfigInfo_impl_ari_1_10_0.class); - } else - - if ( interfaceClass.equals(ConfigTuple.class) ) { - return (ConfigTuple_impl_ari_1_10_0.class); - } else - - if ( interfaceClass.equals(ContactInfo.class) ) { - return (ContactInfo_impl_ari_1_10_0.class); - } else - - if ( interfaceClass.equals(ContactStatusChange.class) ) { - return (ContactStatusChange_impl_ari_1_10_0.class); - } else - - if ( interfaceClass.equals(DeviceState.class) ) { - return (DeviceState_impl_ari_1_10_0.class); - } else - - if ( interfaceClass.equals(DeviceStateChanged.class) ) { - return (DeviceStateChanged_impl_ari_1_10_0.class); - } else - - if ( interfaceClass.equals(Dial.class) ) { - return (Dial_impl_ari_1_10_0.class); - } else - - if ( interfaceClass.equals(Dialed.class) ) { - return (Dialed_impl_ari_1_10_0.class); - } else - - if ( interfaceClass.equals(DialplanCEP.class) ) { - return (DialplanCEP_impl_ari_1_10_0.class); - } else - - if ( interfaceClass.equals(Endpoint.class) ) { - return (Endpoint_impl_ari_1_10_0.class); - } else - - if ( interfaceClass.equals(EndpointStateChange.class) ) { - return (EndpointStateChange_impl_ari_1_10_0.class); - } else - - if ( interfaceClass.equals(Event.class) ) { - return (Event_impl_ari_1_10_0.class); - } else - - if ( interfaceClass.equals(FormatLangPair.class) ) { - return (FormatLangPair_impl_ari_1_10_0.class); - } else - - if ( interfaceClass.equals(LiveRecording.class) ) { - return (LiveRecording_impl_ari_1_10_0.class); - } else - - if ( interfaceClass.equals(LogChannel.class) ) { - return (LogChannel_impl_ari_1_10_0.class); - } else - - if ( interfaceClass.equals(Message.class) ) { - return (Message_impl_ari_1_10_0.class); - } else - - if ( interfaceClass.equals(MissingParams.class) ) { - return (MissingParams_impl_ari_1_10_0.class); - } else - - if ( interfaceClass.equals(Module.class) ) { - return (Module_impl_ari_1_10_0.class); - } else - - if ( interfaceClass.equals(Peer.class) ) { - return (Peer_impl_ari_1_10_0.class); - } else - - if ( interfaceClass.equals(PeerStatusChange.class) ) { - return (PeerStatusChange_impl_ari_1_10_0.class); - } else - - if ( interfaceClass.equals(Playback.class) ) { - return (Playback_impl_ari_1_10_0.class); - } else - - if ( interfaceClass.equals(PlaybackContinuing.class) ) { - return (PlaybackContinuing_impl_ari_1_10_0.class); - } else - - if ( interfaceClass.equals(PlaybackFinished.class) ) { - return (PlaybackFinished_impl_ari_1_10_0.class); - } else - - if ( interfaceClass.equals(PlaybackStarted.class) ) { - return (PlaybackStarted_impl_ari_1_10_0.class); - } else - - if ( interfaceClass.equals(RecordingFailed.class) ) { - return (RecordingFailed_impl_ari_1_10_0.class); - } else - - if ( interfaceClass.equals(RecordingFinished.class) ) { - return (RecordingFinished_impl_ari_1_10_0.class); - } else - - if ( interfaceClass.equals(RecordingStarted.class) ) { - return (RecordingStarted_impl_ari_1_10_0.class); - } else - - if ( interfaceClass.equals(SetId.class) ) { - return (SetId_impl_ari_1_10_0.class); - } else - - if ( interfaceClass.equals(Sound.class) ) { - return (Sound_impl_ari_1_10_0.class); - } else - - if ( interfaceClass.equals(StasisEnd.class) ) { - return (StasisEnd_impl_ari_1_10_0.class); - } else - - if ( interfaceClass.equals(StasisStart.class) ) { - return (StasisStart_impl_ari_1_10_0.class); - } else - - if ( interfaceClass.equals(StatusInfo.class) ) { - return (StatusInfo_impl_ari_1_10_0.class); - } else - - if ( interfaceClass.equals(StoredRecording.class) ) { - return (StoredRecording_impl_ari_1_10_0.class); - } else - - if ( interfaceClass.equals(SystemInfo.class) ) { - return (SystemInfo_impl_ari_1_10_0.class); - } else - - if ( interfaceClass.equals(TextMessage.class) ) { - return (TextMessage_impl_ari_1_10_0.class); - } else - - if ( interfaceClass.equals(TextMessageReceived.class) ) { - return (TextMessageReceived_impl_ari_1_10_0.class); - } else - - if ( interfaceClass.equals(TextMessageVariable.class) ) { - return (TextMessageVariable_impl_ari_1_10_0.class); - } else - - if ( interfaceClass.equals(Variable.class) ) { - return (Variable_impl_ari_1_10_0.class); - } else - { - return null; - } - } -} - - diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/actions/ActionApplications_impl_ari_1_10_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/actions/ActionApplications_impl_ari_1_10_0.java deleted file mode 100644 index 1c714cda..00000000 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/actions/ActionApplications_impl_ari_1_10_0.java +++ /dev/null @@ -1,140 +0,0 @@ -package ch.loway.oss.ari4java.generated.ari_1_10_0.actions; - -// ---------------------------------------------------- -// THIS CLASS WAS GENERATED AUTOMATICALLY -// PLEASE DO NOT EDIT -// Generated on: Tue Dec 19 09:55:49 CET 2017 -// ---------------------------------------------------- - -import ch.loway.oss.ari4java.generated.*; -import java.util.Date; -import java.util.List; -import java.util.Map; -import java.util.ArrayList; -import ch.loway.oss.ari4java.tools.BaseAriAction; -import ch.loway.oss.ari4java.tools.RestException; -import ch.loway.oss.ari4java.tools.AriCallback; -import ch.loway.oss.ari4java.tools.HttpParam; -import ch.loway.oss.ari4java.tools.HttpResponse; -import com.fasterxml.jackson.core.type.TypeReference; -import ch.loway.oss.ari4java.generated.ari_1_10_0.models.*; - -/********************************************************** - * - * Generated by: Apis - *********************************************************/ - - -public class ActionApplications_impl_ari_1_10_0 extends BaseAriAction implements ActionApplications { -/********************************************************** - * Stasis applications - * - * List all applications. - *********************************************************/ -private void buildList() { -reset(); -url = "/applications"; -method = "GET"; -} - -@Override -public List list() throws RestException { -buildList(); -String json = httpActionSync(); -return deserializeJsonAsAbstractList( json, - new TypeReference>() {} ); -} - -@Override -public void list(AriCallback> callback) { -buildList(); -httpActionAsync(callback, new TypeReference>() {}); -} - -/********************************************************** - * Stasis application - * - * Get details of an application. - *********************************************************/ -private void buildGet(String applicationName) { -reset(); -url = "/applications/" + applicationName + ""; -method = "GET"; -lE.add( HttpResponse.build( 404, "Application does not exist.") ); -} - -@Override -public Application get(String applicationName) throws RestException { -buildGet(applicationName); -String json = httpActionSync(); -return deserializeJson( json, Application_impl_ari_1_10_0.class ); -} - -@Override -public void get(String applicationName, AriCallback callback) { -buildGet(applicationName); -httpActionAsync(callback, Application_impl_ari_1_10_0.class); -} - -/********************************************************** - * Stasis application - * - * Subscribe an application to a event source. - * Returns the state of the application after the subscriptions have changed - *********************************************************/ -private void buildSubscribe(String applicationName, String eventSource) { -reset(); -url = "/applications/" + applicationName + "/subscription"; -method = "POST"; -lParamQuery.add( HttpParam.build( "eventSource", eventSource) ); -lE.add( HttpResponse.build( 400, "Missing parameter.") ); -lE.add( HttpResponse.build( 404, "Application does not exist.") ); -lE.add( HttpResponse.build( 422, "Event source does not exist.") ); -} - -@Override -public Application subscribe(String applicationName, String eventSource) throws RestException { -buildSubscribe(applicationName, eventSource); -String json = httpActionSync(); -return deserializeJson( json, Application_impl_ari_1_10_0.class ); -} - -@Override -public void subscribe(String applicationName, String eventSource, AriCallback callback) { -buildSubscribe(applicationName, eventSource); -httpActionAsync(callback, Application_impl_ari_1_10_0.class); -} - -/********************************************************** - * Stasis application - * - * Unsubscribe an application from an event source. - * Returns the state of the application after the subscriptions have changed - *********************************************************/ -private void buildUnsubscribe(String applicationName, String eventSource) { -reset(); -url = "/applications/" + applicationName + "/subscription"; -method = "DELETE"; -lParamQuery.add( HttpParam.build( "eventSource", eventSource) ); -lE.add( HttpResponse.build( 400, "Missing parameter; event source scheme not recognized.") ); -lE.add( HttpResponse.build( 404, "Application does not exist.") ); -lE.add( HttpResponse.build( 409, "Application not subscribed to event source.") ); -lE.add( HttpResponse.build( 422, "Event source does not exist.") ); -} - -@Override -public Application unsubscribe(String applicationName, String eventSource) throws RestException { -buildUnsubscribe(applicationName, eventSource); -String json = httpActionSync(); -return deserializeJson( json, Application_impl_ari_1_10_0.class ); -} - -@Override -public void unsubscribe(String applicationName, String eventSource, AriCallback callback) { -buildUnsubscribe(applicationName, eventSource); -httpActionAsync(callback, Application_impl_ari_1_10_0.class); -} - -/** No missing signatures from interface */ -}; - diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/actions/ActionAsterisk_impl_ari_1_10_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/actions/ActionAsterisk_impl_ari_1_10_0.java deleted file mode 100644 index ebf4ad43..00000000 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/actions/ActionAsterisk_impl_ari_1_10_0.java +++ /dev/null @@ -1,412 +0,0 @@ -package ch.loway.oss.ari4java.generated.ari_1_10_0.actions; - -// ---------------------------------------------------- -// THIS CLASS WAS GENERATED AUTOMATICALLY -// PLEASE DO NOT EDIT -// Generated on: Tue Dec 19 09:55:49 CET 2017 -// ---------------------------------------------------- - -import ch.loway.oss.ari4java.generated.*; -import java.util.Date; -import java.util.List; -import java.util.Map; -import java.util.ArrayList; -import ch.loway.oss.ari4java.tools.BaseAriAction; -import ch.loway.oss.ari4java.tools.RestException; -import ch.loway.oss.ari4java.tools.AriCallback; -import ch.loway.oss.ari4java.tools.HttpParam; -import ch.loway.oss.ari4java.tools.HttpResponse; -import com.fasterxml.jackson.core.type.TypeReference; -import ch.loway.oss.ari4java.generated.ari_1_10_0.models.*; - -/********************************************************** - * - * Generated by: Apis - *********************************************************/ - - -public class ActionAsterisk_impl_ari_1_10_0 extends BaseAriAction implements ActionAsterisk { -/********************************************************** - * Asterisk dynamic configuration - * - * Retrieve a dynamic configuration object. - *********************************************************/ -private void buildGetObject(String configClass, String objectType, String id) { -reset(); -url = "/asterisk/config/dynamic/" + configClass + "/" + objectType + "/" + id + ""; -method = "GET"; -lE.add( HttpResponse.build( 404, "{configClass|objectType|id} not found") ); -} - -@Override -public List getObject(String configClass, String objectType, String id) throws RestException { -buildGetObject(configClass, objectType, id); -String json = httpActionSync(); -return deserializeJsonAsAbstractList( json, - new TypeReference>() {} ); -} - -@Override -public void getObject(String configClass, String objectType, String id, AriCallback> callback) { -buildGetObject(configClass, objectType, id); -httpActionAsync(callback, new TypeReference>() {}); -} - -/********************************************************** - * Asterisk dynamic configuration - * - * Create or update a dynamic configuration object. - *********************************************************/ -private void buildUpdateObject(String configClass, String objectType, String id, Map fields) { -reset(); -url = "/asterisk/config/dynamic/" + configClass + "/" + objectType + "/" + id + ""; -method = "PUT"; -lParamBody.addAll( HttpParam.build( "fields", fields) ); -lE.add( HttpResponse.build( 400, "Bad request body") ); -lE.add( HttpResponse.build( 403, "Could not create or update object") ); -lE.add( HttpResponse.build( 404, "{configClass|objectType} not found") ); -} - -@Override -public List updateObject(String configClass, String objectType, String id, Map fields) throws RestException { -buildUpdateObject(configClass, objectType, id, fields); -String json = httpActionSync(); -return deserializeJsonAsAbstractList( json, - new TypeReference>() {} ); -} - -@Override -public void updateObject(String configClass, String objectType, String id, Map fields, AriCallback> callback) { -buildUpdateObject(configClass, objectType, id, fields); -httpActionAsync(callback, new TypeReference>() {}); -} - -/********************************************************** - * Asterisk dynamic configuration - * - * Delete a dynamic configuration object. - *********************************************************/ -private void buildDeleteObject(String configClass, String objectType, String id) { -reset(); -url = "/asterisk/config/dynamic/" + configClass + "/" + objectType + "/" + id + ""; -method = "DELETE"; -lE.add( HttpResponse.build( 403, "Could not delete object") ); -lE.add( HttpResponse.build( 404, "{configClass|objectType|id} not found") ); -} - -@Override -public void deleteObject(String configClass, String objectType, String id) throws RestException { -buildDeleteObject(configClass, objectType, id); -String json = httpActionSync(); -} - -@Override -public void deleteObject(String configClass, String objectType, String id, AriCallback callback) { -buildDeleteObject(configClass, objectType, id); -httpActionAsync(callback); -} - -/********************************************************** - * Asterisk system information (similar to core show settings) - * - * Gets Asterisk system information. - *********************************************************/ -private void buildGetInfo(String only) { -reset(); -url = "/asterisk/info"; -method = "GET"; -lParamQuery.add( HttpParam.build( "only", only) ); -} - -@Override -public AsteriskInfo getInfo(String only) throws RestException { -buildGetInfo(only); -String json = httpActionSync(); -return deserializeJson( json, AsteriskInfo_impl_ari_1_10_0.class ); -} - -@Override -public void getInfo(String only, AriCallback callback) { -buildGetInfo(only); -httpActionAsync(callback, AsteriskInfo_impl_ari_1_10_0.class); -} - -/********************************************************** - * Asterisk log channels - * - * Gets Asterisk log channel information. - *********************************************************/ -private void buildListLogChannels() { -reset(); -url = "/asterisk/logging"; -method = "GET"; -} - -@Override -public List listLogChannels() throws RestException { -buildListLogChannels(); -String json = httpActionSync(); -return deserializeJsonAsAbstractList( json, - new TypeReference>() {} ); -} - -@Override -public void listLogChannels(AriCallback> callback) { -buildListLogChannels(); -httpActionAsync(callback, new TypeReference>() {}); -} - -/********************************************************** - * Asterisk log channel - * - * Adds a log channel. - *********************************************************/ -private void buildAddLog(String logChannelName, String configuration) { -reset(); -url = "/asterisk/logging/" + logChannelName + ""; -method = "POST"; -lParamQuery.add( HttpParam.build( "configuration", configuration) ); -lE.add( HttpResponse.build( 400, "Bad request body") ); -lE.add( HttpResponse.build( 409, "Log channel could not be created.") ); -} - -@Override -public void addLog(String logChannelName, String configuration) throws RestException { -buildAddLog(logChannelName, configuration); -String json = httpActionSync(); -} - -@Override -public void addLog(String logChannelName, String configuration, AriCallback callback) { -buildAddLog(logChannelName, configuration); -httpActionAsync(callback); -} - -/********************************************************** - * Asterisk log channel - * - * Deletes a log channel. - *********************************************************/ -private void buildDeleteLog(String logChannelName) { -reset(); -url = "/asterisk/logging/" + logChannelName + ""; -method = "DELETE"; -lE.add( HttpResponse.build( 404, "Log channel does not exist.") ); -} - -@Override -public void deleteLog(String logChannelName) throws RestException { -buildDeleteLog(logChannelName); -String json = httpActionSync(); -} - -@Override -public void deleteLog(String logChannelName, AriCallback callback) { -buildDeleteLog(logChannelName); -httpActionAsync(callback); -} - -/********************************************************** - * Asterisk log channel - * - * Rotates a log channel. - *********************************************************/ -private void buildRotateLog(String logChannelName) { -reset(); -url = "/asterisk/logging/" + logChannelName + "/rotate"; -method = "PUT"; -lE.add( HttpResponse.build( 404, "Log channel does not exist.") ); -} - -@Override -public void rotateLog(String logChannelName) throws RestException { -buildRotateLog(logChannelName); -String json = httpActionSync(); -} - -@Override -public void rotateLog(String logChannelName, AriCallback callback) { -buildRotateLog(logChannelName); -httpActionAsync(callback); -} - -/********************************************************** - * Asterisk modules - * - * List Asterisk modules. - *********************************************************/ -private void buildListModules() { -reset(); -url = "/asterisk/modules"; -method = "GET"; -} - -@Override -public List listModules() throws RestException { -buildListModules(); -String json = httpActionSync(); -return deserializeJsonAsAbstractList( json, - new TypeReference>() {} ); -} - -@Override -public void listModules(AriCallback> callback) { -buildListModules(); -httpActionAsync(callback, new TypeReference>() {}); -} - -/********************************************************** - * Asterisk module - * - * Get Asterisk module information. - *********************************************************/ -private void buildGetModule(String moduleName) { -reset(); -url = "/asterisk/modules/" + moduleName + ""; -method = "GET"; -lE.add( HttpResponse.build( 404, "Module could not be found in running modules.") ); -lE.add( HttpResponse.build( 409, "Module information could not be retrieved.") ); -} - -@Override -public Module getModule(String moduleName) throws RestException { -buildGetModule(moduleName); -String json = httpActionSync(); -return deserializeJson( json, Module_impl_ari_1_10_0.class ); -} - -@Override -public void getModule(String moduleName, AriCallback callback) { -buildGetModule(moduleName); -httpActionAsync(callback, Module_impl_ari_1_10_0.class); -} - -/********************************************************** - * Asterisk module - * - * Load an Asterisk module. - *********************************************************/ -private void buildLoadModule(String moduleName) { -reset(); -url = "/asterisk/modules/" + moduleName + ""; -method = "POST"; -lE.add( HttpResponse.build( 409, "Module could not be loaded.") ); -} - -@Override -public void loadModule(String moduleName) throws RestException { -buildLoadModule(moduleName); -String json = httpActionSync(); -} - -@Override -public void loadModule(String moduleName, AriCallback callback) { -buildLoadModule(moduleName); -httpActionAsync(callback); -} - -/********************************************************** - * Asterisk module - * - * Unload an Asterisk module. - *********************************************************/ -private void buildUnloadModule(String moduleName) { -reset(); -url = "/asterisk/modules/" + moduleName + ""; -method = "DELETE"; -lE.add( HttpResponse.build( 404, "Module not found in running modules.") ); -lE.add( HttpResponse.build( 409, "Module could not be unloaded.") ); -} - -@Override -public void unloadModule(String moduleName) throws RestException { -buildUnloadModule(moduleName); -String json = httpActionSync(); -} - -@Override -public void unloadModule(String moduleName, AriCallback callback) { -buildUnloadModule(moduleName); -httpActionAsync(callback); -} - -/********************************************************** - * Asterisk module - * - * Reload an Asterisk module. - *********************************************************/ -private void buildReloadModule(String moduleName) { -reset(); -url = "/asterisk/modules/" + moduleName + ""; -method = "PUT"; -lE.add( HttpResponse.build( 404, "Module not found in running modules.") ); -lE.add( HttpResponse.build( 409, "Module could not be reloaded.") ); -} - -@Override -public void reloadModule(String moduleName) throws RestException { -buildReloadModule(moduleName); -String json = httpActionSync(); -} - -@Override -public void reloadModule(String moduleName, AriCallback callback) { -buildReloadModule(moduleName); -httpActionAsync(callback); -} - -/********************************************************** - * Global variables - * - * Get the value of a global variable. - *********************************************************/ -private void buildGetGlobalVar(String variable) { -reset(); -url = "/asterisk/variable"; -method = "GET"; -lParamQuery.add( HttpParam.build( "variable", variable) ); -lE.add( HttpResponse.build( 400, "Missing variable parameter.") ); -} - -@Override -public Variable getGlobalVar(String variable) throws RestException { -buildGetGlobalVar(variable); -String json = httpActionSync(); -return deserializeJson( json, Variable_impl_ari_1_10_0.class ); -} - -@Override -public void getGlobalVar(String variable, AriCallback callback) { -buildGetGlobalVar(variable); -httpActionAsync(callback, Variable_impl_ari_1_10_0.class); -} - -/********************************************************** - * Global variables - * - * Set the value of a global variable. - *********************************************************/ -private void buildSetGlobalVar(String variable, String value) { -reset(); -url = "/asterisk/variable"; -method = "POST"; -lParamQuery.add( HttpParam.build( "variable", variable) ); -lParamQuery.add( HttpParam.build( "value", value) ); -lE.add( HttpResponse.build( 400, "Missing variable parameter.") ); -} - -@Override -public void setGlobalVar(String variable, String value) throws RestException { -buildSetGlobalVar(variable, value); -String json = httpActionSync(); -} - -@Override -public void setGlobalVar(String variable, String value, AriCallback callback) { -buildSetGlobalVar(variable, value); -httpActionAsync(callback); -} - -/** No missing signatures from interface */ -}; - diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/actions/ActionBridges_impl_ari_1_10_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/actions/ActionBridges_impl_ari_1_10_0.java deleted file mode 100644 index 9cb47549..00000000 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/actions/ActionBridges_impl_ari_1_10_0.java +++ /dev/null @@ -1,482 +0,0 @@ -package ch.loway.oss.ari4java.generated.ari_1_10_0.actions; - -// ---------------------------------------------------- -// THIS CLASS WAS GENERATED AUTOMATICALLY -// PLEASE DO NOT EDIT -// Generated on: Tue Dec 19 09:55:49 CET 2017 -// ---------------------------------------------------- - -import ch.loway.oss.ari4java.generated.*; -import java.util.Date; -import java.util.List; -import java.util.Map; -import java.util.ArrayList; -import ch.loway.oss.ari4java.tools.BaseAriAction; -import ch.loway.oss.ari4java.tools.RestException; -import ch.loway.oss.ari4java.tools.AriCallback; -import ch.loway.oss.ari4java.tools.HttpParam; -import ch.loway.oss.ari4java.tools.HttpResponse; -import com.fasterxml.jackson.core.type.TypeReference; -import ch.loway.oss.ari4java.generated.ari_1_10_0.models.*; - -/********************************************************** - * - * Generated by: Apis - *********************************************************/ - - -public class ActionBridges_impl_ari_1_10_0 extends BaseAriAction implements ActionBridges { -/********************************************************** - * Active bridges - * - * List all active bridges in Asterisk. - *********************************************************/ -private void buildList() { -reset(); -url = "/bridges"; -method = "GET"; -} - -@Override -public List list() throws RestException { -buildList(); -String json = httpActionSync(); -return deserializeJsonAsAbstractList( json, - new TypeReference>() {} ); -} - -@Override -public void list(AriCallback> callback) { -buildList(); -httpActionAsync(callback, new TypeReference>() {}); -} - -/********************************************************** - * Active bridges - * - * Create a new bridge. - * This bridge persists until it has been shut down, or Asterisk has been shut down. - *********************************************************/ -private void buildCreate(String type, String bridgeId, String name) { -reset(); -url = "/bridges"; -method = "POST"; -lParamQuery.add( HttpParam.build( "type", type) ); -lParamQuery.add( HttpParam.build( "bridgeId", bridgeId) ); -lParamQuery.add( HttpParam.build( "name", name) ); -} - -@Override -public Bridge create(String type, String bridgeId, String name) throws RestException { -buildCreate(type, bridgeId, name); -String json = httpActionSync(); -return deserializeJson( json, Bridge_impl_ari_1_10_0.class ); -} - -@Override -public void create(String type, String bridgeId, String name, AriCallback callback) { -buildCreate(type, bridgeId, name); -httpActionAsync(callback, Bridge_impl_ari_1_10_0.class); -} - -/********************************************************** - * Individual bridge - * - * Create a new bridge or updates an existing one. - * This bridge persists until it has been shut down, or Asterisk has been shut down. - *********************************************************/ -private void buildCreateWithId(String type, String bridgeId, String name) { -reset(); -url = "/bridges/" + bridgeId + ""; -method = "POST"; -lParamQuery.add( HttpParam.build( "type", type) ); -lParamQuery.add( HttpParam.build( "name", name) ); -} - -@Override -public Bridge createWithId(String type, String bridgeId, String name) throws RestException { -buildCreateWithId(type, bridgeId, name); -String json = httpActionSync(); -return deserializeJson( json, Bridge_impl_ari_1_10_0.class ); -} - -@Override -public void createWithId(String type, String bridgeId, String name, AriCallback callback) { -buildCreateWithId(type, bridgeId, name); -httpActionAsync(callback, Bridge_impl_ari_1_10_0.class); -} - -/********************************************************** - * Individual bridge - * - * Get bridge details. - *********************************************************/ -private void buildGet(String bridgeId) { -reset(); -url = "/bridges/" + bridgeId + ""; -method = "GET"; -lE.add( HttpResponse.build( 404, "Bridge not found") ); -} - -@Override -public Bridge get(String bridgeId) throws RestException { -buildGet(bridgeId); -String json = httpActionSync(); -return deserializeJson( json, Bridge_impl_ari_1_10_0.class ); -} - -@Override -public void get(String bridgeId, AriCallback callback) { -buildGet(bridgeId); -httpActionAsync(callback, Bridge_impl_ari_1_10_0.class); -} - -/********************************************************** - * Individual bridge - * - * Shut down a bridge. - * If any channels are in this bridge, they will be removed and resume whatever they were doing beforehand. - *********************************************************/ -private void buildDestroy(String bridgeId) { -reset(); -url = "/bridges/" + bridgeId + ""; -method = "DELETE"; -lE.add( HttpResponse.build( 404, "Bridge not found") ); -} - -@Override -public void destroy(String bridgeId) throws RestException { -buildDestroy(bridgeId); -String json = httpActionSync(); -} - -@Override -public void destroy(String bridgeId, AriCallback callback) { -buildDestroy(bridgeId); -httpActionAsync(callback); -} - -/********************************************************** - * Add a channel to a bridge - * - * Add a channel to a bridge. - *********************************************************/ -private void buildAddChannel(String bridgeId, String channel, String role) { -reset(); -url = "/bridges/" + bridgeId + "/addChannel"; -method = "POST"; -lParamQuery.add( HttpParam.build( "channel", channel) ); -lParamQuery.add( HttpParam.build( "role", role) ); -lE.add( HttpResponse.build( 400, "Channel not found") ); -lE.add( HttpResponse.build( 404, "Bridge not found") ); -lE.add( HttpResponse.build( 409, "Bridge not in Stasis application; Channel currently recording") ); -lE.add( HttpResponse.build( 422, "Channel not in Stasis application") ); -} - -@Override -public void addChannel(String bridgeId, String channel, String role) throws RestException { -buildAddChannel(bridgeId, channel, role); -String json = httpActionSync(); -} - -@Override -public void addChannel(String bridgeId, String channel, String role, AriCallback callback) { -buildAddChannel(bridgeId, channel, role); -httpActionAsync(callback); -} - -/********************************************************** - * Play music on hold to a bridge - * - * Play music on hold to a bridge or change the MOH class that is playing. - *********************************************************/ -private void buildStartMoh(String bridgeId, String mohClass) { -reset(); -url = "/bridges/" + bridgeId + "/moh"; -method = "POST"; -lParamQuery.add( HttpParam.build( "mohClass", mohClass) ); -lE.add( HttpResponse.build( 404, "Bridge not found") ); -lE.add( HttpResponse.build( 409, "Bridge not in Stasis application") ); -} - -@Override -public void startMoh(String bridgeId, String mohClass) throws RestException { -buildStartMoh(bridgeId, mohClass); -String json = httpActionSync(); -} - -@Override -public void startMoh(String bridgeId, String mohClass, AriCallback callback) { -buildStartMoh(bridgeId, mohClass); -httpActionAsync(callback); -} - -/********************************************************** - * Play music on hold to a bridge - * - * Stop playing music on hold to a bridge. - * This will only stop music on hold being played via POST bridges/{bridgeId}/moh. - *********************************************************/ -private void buildStopMoh(String bridgeId) { -reset(); -url = "/bridges/" + bridgeId + "/moh"; -method = "DELETE"; -lE.add( HttpResponse.build( 404, "Bridge not found") ); -lE.add( HttpResponse.build( 409, "Bridge not in Stasis application") ); -} - -@Override -public void stopMoh(String bridgeId) throws RestException { -buildStopMoh(bridgeId); -String json = httpActionSync(); -} - -@Override -public void stopMoh(String bridgeId, AriCallback callback) { -buildStopMoh(bridgeId); -httpActionAsync(callback); -} - -/********************************************************** - * Play media to the participants of a bridge - * - * Start playback of media on a bridge. - * The media URI may be any of a number of URI's. Currently sound:, recording:, number:, digits:, characters:, and tone: URI's are supported. This operation creates a playback resource that can be used to control the playback of media (pause, rewind, fast forward, etc.) - *********************************************************/ -private void buildPlay(String bridgeId, String media, String lang, int offsetms, int skipms, String playbackId) { -reset(); -url = "/bridges/" + bridgeId + "/play"; -method = "POST"; -lParamQuery.add( HttpParam.build( "media", media) ); -lParamQuery.add( HttpParam.build( "lang", lang) ); -lParamQuery.add( HttpParam.build( "offsetms", offsetms) ); -lParamQuery.add( HttpParam.build( "skipms", skipms) ); -lParamQuery.add( HttpParam.build( "playbackId", playbackId) ); -lE.add( HttpResponse.build( 404, "Bridge not found") ); -lE.add( HttpResponse.build( 409, "Bridge not in a Stasis application") ); -} - -@Override -public Playback play(String bridgeId, String media, String lang, int offsetms, int skipms, String playbackId) throws RestException { -buildPlay(bridgeId, media, lang, offsetms, skipms, playbackId); -String json = httpActionSync(); -return deserializeJson( json, Playback_impl_ari_1_10_0.class ); -} - -@Override -public void play(String bridgeId, String media, String lang, int offsetms, int skipms, String playbackId, AriCallback callback) { -buildPlay(bridgeId, media, lang, offsetms, skipms, playbackId); -httpActionAsync(callback, Playback_impl_ari_1_10_0.class); -} - -/********************************************************** - * Play media to a bridge - * - * Start playback of media on a bridge. - * The media URI may be any of a number of URI's. Currently sound:, recording:, number:, digits:, characters:, and tone: URI's are supported. This operation creates a playback resource that can be used to control the playback of media (pause, rewind, fast forward, etc.) - *********************************************************/ -private void buildPlayWithId(String bridgeId, String playbackId, String media, String lang, int offsetms, int skipms) { -reset(); -url = "/bridges/" + bridgeId + "/play/" + playbackId + ""; -method = "POST"; -lParamQuery.add( HttpParam.build( "media", media) ); -lParamQuery.add( HttpParam.build( "lang", lang) ); -lParamQuery.add( HttpParam.build( "offsetms", offsetms) ); -lParamQuery.add( HttpParam.build( "skipms", skipms) ); -lE.add( HttpResponse.build( 404, "Bridge not found") ); -lE.add( HttpResponse.build( 409, "Bridge not in a Stasis application") ); -} - -@Override -public Playback playWithId(String bridgeId, String playbackId, String media, String lang, int offsetms, int skipms) throws RestException { -buildPlayWithId(bridgeId, playbackId, media, lang, offsetms, skipms); -String json = httpActionSync(); -return deserializeJson( json, Playback_impl_ari_1_10_0.class ); -} - -@Override -public void playWithId(String bridgeId, String playbackId, String media, String lang, int offsetms, int skipms, AriCallback callback) { -buildPlayWithId(bridgeId, playbackId, media, lang, offsetms, skipms); -httpActionAsync(callback, Playback_impl_ari_1_10_0.class); -} - -/********************************************************** - * Record audio on a bridge - * - * Start a recording. - * This records the mixed audio from all channels participating in this bridge. - *********************************************************/ -private void buildRecord(String bridgeId, String name, String format, int maxDurationSeconds, int maxSilenceSeconds, String ifExists, boolean beep, String terminateOn) { -reset(); -url = "/bridges/" + bridgeId + "/record"; -method = "POST"; -lParamQuery.add( HttpParam.build( "name", name) ); -lParamQuery.add( HttpParam.build( "format", format) ); -lParamQuery.add( HttpParam.build( "maxDurationSeconds", maxDurationSeconds) ); -lParamQuery.add( HttpParam.build( "maxSilenceSeconds", maxSilenceSeconds) ); -lParamQuery.add( HttpParam.build( "ifExists", ifExists) ); -lParamQuery.add( HttpParam.build( "beep", beep) ); -lParamQuery.add( HttpParam.build( "terminateOn", terminateOn) ); -lE.add( HttpResponse.build( 400, "Invalid parameters") ); -lE.add( HttpResponse.build( 404, "Bridge not found") ); -lE.add( HttpResponse.build( 409, "Bridge is not in a Stasis application; A recording with the same name already exists on the system and can not be overwritten because it is in progress or ifExists=fail") ); -lE.add( HttpResponse.build( 422, "The format specified is unknown on this system") ); -} - -@Override -public LiveRecording record(String bridgeId, String name, String format, int maxDurationSeconds, int maxSilenceSeconds, String ifExists, boolean beep, String terminateOn) throws RestException { -buildRecord(bridgeId, name, format, maxDurationSeconds, maxSilenceSeconds, ifExists, beep, terminateOn); -String json = httpActionSync(); -return deserializeJson( json, LiveRecording_impl_ari_1_10_0.class ); -} - -@Override -public void record(String bridgeId, String name, String format, int maxDurationSeconds, int maxSilenceSeconds, String ifExists, boolean beep, String terminateOn, AriCallback callback) { -buildRecord(bridgeId, name, format, maxDurationSeconds, maxSilenceSeconds, ifExists, beep, terminateOn); -httpActionAsync(callback, LiveRecording_impl_ari_1_10_0.class); -} - -/********************************************************** - * Remove a channel from a bridge - * - * Remove a channel from a bridge. - *********************************************************/ -private void buildRemoveChannel(String bridgeId, String channel) { -reset(); -url = "/bridges/" + bridgeId + "/removeChannel"; -method = "POST"; -lParamQuery.add( HttpParam.build( "channel", channel) ); -lE.add( HttpResponse.build( 400, "Channel not found") ); -lE.add( HttpResponse.build( 404, "Bridge not found") ); -lE.add( HttpResponse.build( 409, "Bridge not in Stasis application") ); -lE.add( HttpResponse.build( 422, "Channel not in this bridge") ); -} - -@Override -public void removeChannel(String bridgeId, String channel) throws RestException { -buildRemoveChannel(bridgeId, channel); -String json = httpActionSync(); -} - -@Override -public void removeChannel(String bridgeId, String channel, AriCallback callback) { -buildRemoveChannel(bridgeId, channel); -httpActionAsync(callback); -} - -/********************************************************** - * Start playback of media on a bridge. - * The media URI may be any of a number of URI's. Currently sound: and recording: URI's are supported. This operation creates a playback resource that can be used to control the playback of media (pause, rewind, fast forward, etc.) - * - * @since ari_0_0_1 - *********************************************************/ -public Playback play(String bridgeId, String media, String lang, int offsetms, int skipms) throws RestException{ - throw new UnsupportedOperationException("Method availble from ..."); -}; - -/********************************************************** - * - * - * @since ari_0_0_1 - *********************************************************/ -public void play(String bridgeId, String media, String lang, int offsetms, int skipms, AriCallback callback){ - throw new UnsupportedOperationException("Method availble from ..."); -}; - -/********************************************************** - * Create a new bridge. - * This bridge persists until it has been shut down, or Asterisk has been shut down. - * - * @since ari_1_0_0 - *********************************************************/ -public Bridge create(String type, String name) throws RestException{ - throw new UnsupportedOperationException("Method availble from ..."); -}; - -/********************************************************** - * - * - * @since ari_1_5_0 - *********************************************************/ -public void create_or_update_with_id(String type, String bridgeId, String name, AriCallback callback){ - throw new UnsupportedOperationException("Method availble from ..."); -}; - -/********************************************************** - * Set a channel as the video source in a multi-party mixing bridge. This operation has no effect on bridges with two or fewer participants. - * - * - * @since ari_2_0_0 - *********************************************************/ -public void setVideoSource(String bridgeId, String channelId) throws RestException{ - throw new UnsupportedOperationException("Method availble from ..."); -}; - -/********************************************************** - * Create a new bridge or updates an existing one. - * This bridge persists until it has been shut down, or Asterisk has been shut down. - * - * @since ari_1_5_0 - *********************************************************/ -public Bridge create_or_update_with_id(String type, String bridgeId, String name) throws RestException{ - throw new UnsupportedOperationException("Method availble from ..."); -}; - -/********************************************************** - * Create a new bridge. - * This bridge persists until it has been shut down, or Asterisk has been shut down. - * - * @since ari_0_0_1 - *********************************************************/ -public Bridge create(String type) throws RestException{ - throw new UnsupportedOperationException("Method availble from ..."); -}; - -/********************************************************** - * Removes any explicit video source in a multi-party mixing bridge. This operation has no effect on bridges with two or fewer participants. When no explicit video source is set, talk detection will be used to determine the active video stream. - * - * - * @since ari_2_0_0 - *********************************************************/ -public void clearVideoSource(String bridgeId) throws RestException{ - throw new UnsupportedOperationException("Method availble from ..."); -}; - -/********************************************************** - * - * - * @since ari_0_0_1 - *********************************************************/ -public void create(String type, AriCallback callback){ - throw new UnsupportedOperationException("Method availble from ..."); -}; - -/********************************************************** - * - * - * @since ari_2_0_0 - *********************************************************/ -public void setVideoSource(String bridgeId, String channelId, AriCallback callback){ - throw new UnsupportedOperationException("Method availble from ..."); -}; - -/********************************************************** - * - * - * @since ari_1_0_0 - *********************************************************/ -public void create(String type, String name, AriCallback callback){ - throw new UnsupportedOperationException("Method availble from ..."); -}; - -/********************************************************** - * - * - * @since ari_2_0_0 - *********************************************************/ -public void clearVideoSource(String bridgeId, AriCallback callback){ - throw new UnsupportedOperationException("Method availble from ..."); -}; - -}; - diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/actions/ActionChannels_impl_ari_1_10_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/actions/ActionChannels_impl_ari_1_10_0.java deleted file mode 100644 index 53e7b6fa..00000000 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/actions/ActionChannels_impl_ari_1_10_0.java +++ /dev/null @@ -1,999 +0,0 @@ -package ch.loway.oss.ari4java.generated.ari_1_10_0.actions; - -// ---------------------------------------------------- -// THIS CLASS WAS GENERATED AUTOMATICALLY -// PLEASE DO NOT EDIT -// Generated on: Tue Dec 19 09:55:49 CET 2017 -// ---------------------------------------------------- - -import ch.loway.oss.ari4java.generated.*; -import java.util.Date; -import java.util.List; -import java.util.Map; -import java.util.ArrayList; -import ch.loway.oss.ari4java.tools.BaseAriAction; -import ch.loway.oss.ari4java.tools.RestException; -import ch.loway.oss.ari4java.tools.AriCallback; -import ch.loway.oss.ari4java.tools.HttpParam; -import ch.loway.oss.ari4java.tools.HttpResponse; -import com.fasterxml.jackson.core.type.TypeReference; -import ch.loway.oss.ari4java.generated.ari_1_10_0.models.*; - -/********************************************************** - * - * Generated by: Apis - *********************************************************/ - - -public class ActionChannels_impl_ari_1_10_0 extends BaseAriAction implements ActionChannels { -/********************************************************** - * Active channels - * - * List all active channels in Asterisk. - *********************************************************/ -private void buildList() { -reset(); -url = "/channels"; -method = "GET"; -} - -@Override -public List list() throws RestException { -buildList(); -String json = httpActionSync(); -return deserializeJsonAsAbstractList( json, - new TypeReference>() {} ); -} - -@Override -public void list(AriCallback> callback) { -buildList(); -httpActionAsync(callback, new TypeReference>() {}); -} - -/********************************************************** - * Active channels - * - * Create a new channel (originate). - * The new channel is created immediately and a snapshot of it returned. If a Stasis application is provided it will be automatically subscribed to the originated channel for further events and updates. - *********************************************************/ -private void buildOriginate(String endpoint, String extension, String context, long priority, String label, String app, String appArgs, String callerId, int timeout, Map variables, String channelId, String otherChannelId, String originator, String formats) { -reset(); -url = "/channels"; -method = "POST"; -lParamQuery.add( HttpParam.build( "endpoint", endpoint) ); -lParamQuery.add( HttpParam.build( "extension", extension) ); -lParamQuery.add( HttpParam.build( "context", context) ); -lParamQuery.add( HttpParam.build( "priority", priority) ); -lParamQuery.add( HttpParam.build( "label", label) ); -lParamQuery.add( HttpParam.build( "app", app) ); -lParamQuery.add( HttpParam.build( "appArgs", appArgs) ); -lParamQuery.add( HttpParam.build( "callerId", callerId) ); -lParamQuery.add( HttpParam.build( "timeout", timeout) ); -lParamBody.addAll( HttpParam.build( "variables", variables) ); -lParamQuery.add( HttpParam.build( "channelId", channelId) ); -lParamQuery.add( HttpParam.build( "otherChannelId", otherChannelId) ); -lParamQuery.add( HttpParam.build( "originator", originator) ); -lParamQuery.add( HttpParam.build( "formats", formats) ); -lE.add( HttpResponse.build( 400, "Invalid parameters for originating a channel.") ); -} - -@Override -public Channel originate(String endpoint, String extension, String context, long priority, String label, String app, String appArgs, String callerId, int timeout, Map variables, String channelId, String otherChannelId, String originator, String formats) throws RestException { -buildOriginate(endpoint, extension, context, priority, label, app, appArgs, callerId, timeout, variables, channelId, otherChannelId, originator, formats); -String json = httpActionSync(); -return deserializeJson( json, Channel_impl_ari_1_10_0.class ); -} - -@Override -public void originate(String endpoint, String extension, String context, long priority, String label, String app, String appArgs, String callerId, int timeout, Map variables, String channelId, String otherChannelId, String originator, String formats, AriCallback callback) { -buildOriginate(endpoint, extension, context, priority, label, app, appArgs, callerId, timeout, variables, channelId, otherChannelId, originator, formats); -httpActionAsync(callback, Channel_impl_ari_1_10_0.class); -} - -/********************************************************** - * Create a channel and place it in a Stasis app, but do not dial the channel yet. - * - * Create channel. - *********************************************************/ -private void buildCreate(String endpoint, String app, String appArgs, String channelId, String otherChannelId, String originator, String formats) { -reset(); -url = "/channels/create"; -method = "POST"; -lParamQuery.add( HttpParam.build( "endpoint", endpoint) ); -lParamQuery.add( HttpParam.build( "app", app) ); -lParamQuery.add( HttpParam.build( "appArgs", appArgs) ); -lParamQuery.add( HttpParam.build( "channelId", channelId) ); -lParamQuery.add( HttpParam.build( "otherChannelId", otherChannelId) ); -lParamQuery.add( HttpParam.build( "originator", originator) ); -lParamQuery.add( HttpParam.build( "formats", formats) ); -} - -@Override -public Channel create(String endpoint, String app, String appArgs, String channelId, String otherChannelId, String originator, String formats) throws RestException { -buildCreate(endpoint, app, appArgs, channelId, otherChannelId, originator, formats); -String json = httpActionSync(); -return deserializeJson( json, Channel_impl_ari_1_10_0.class ); -} - -@Override -public void create(String endpoint, String app, String appArgs, String channelId, String otherChannelId, String originator, String formats, AriCallback callback) { -buildCreate(endpoint, app, appArgs, channelId, otherChannelId, originator, formats); -httpActionAsync(callback, Channel_impl_ari_1_10_0.class); -} - -/********************************************************** - * Active channel - * - * Channel details. - *********************************************************/ -private void buildGet(String channelId) { -reset(); -url = "/channels/" + channelId + ""; -method = "GET"; -lE.add( HttpResponse.build( 404, "Channel not found") ); -} - -@Override -public Channel get(String channelId) throws RestException { -buildGet(channelId); -String json = httpActionSync(); -return deserializeJson( json, Channel_impl_ari_1_10_0.class ); -} - -@Override -public void get(String channelId, AriCallback callback) { -buildGet(channelId); -httpActionAsync(callback, Channel_impl_ari_1_10_0.class); -} - -/********************************************************** - * Active channel - * - * Create a new channel (originate with id). - * The new channel is created immediately and a snapshot of it returned. If a Stasis application is provided it will be automatically subscribed to the originated channel for further events and updates. - *********************************************************/ -private void buildOriginateWithId(String channelId, String endpoint, String extension, String context, long priority, String label, String app, String appArgs, String callerId, int timeout, Map variables, String otherChannelId, String originator, String formats) { -reset(); -url = "/channels/" + channelId + ""; -method = "POST"; -lParamQuery.add( HttpParam.build( "endpoint", endpoint) ); -lParamQuery.add( HttpParam.build( "extension", extension) ); -lParamQuery.add( HttpParam.build( "context", context) ); -lParamQuery.add( HttpParam.build( "priority", priority) ); -lParamQuery.add( HttpParam.build( "label", label) ); -lParamQuery.add( HttpParam.build( "app", app) ); -lParamQuery.add( HttpParam.build( "appArgs", appArgs) ); -lParamQuery.add( HttpParam.build( "callerId", callerId) ); -lParamQuery.add( HttpParam.build( "timeout", timeout) ); -lParamBody.addAll( HttpParam.build( "variables", variables) ); -lParamQuery.add( HttpParam.build( "otherChannelId", otherChannelId) ); -lParamQuery.add( HttpParam.build( "originator", originator) ); -lParamQuery.add( HttpParam.build( "formats", formats) ); -lE.add( HttpResponse.build( 400, "Invalid parameters for originating a channel.") ); -} - -@Override -public Channel originateWithId(String channelId, String endpoint, String extension, String context, long priority, String label, String app, String appArgs, String callerId, int timeout, Map variables, String otherChannelId, String originator, String formats) throws RestException { -buildOriginateWithId(channelId, endpoint, extension, context, priority, label, app, appArgs, callerId, timeout, variables, otherChannelId, originator, formats); -String json = httpActionSync(); -return deserializeJson( json, Channel_impl_ari_1_10_0.class ); -} - -@Override -public void originateWithId(String channelId, String endpoint, String extension, String context, long priority, String label, String app, String appArgs, String callerId, int timeout, Map variables, String otherChannelId, String originator, String formats, AriCallback callback) { -buildOriginateWithId(channelId, endpoint, extension, context, priority, label, app, appArgs, callerId, timeout, variables, otherChannelId, originator, formats); -httpActionAsync(callback, Channel_impl_ari_1_10_0.class); -} - -/********************************************************** - * Active channel - * - * Delete (i.e. hangup) a channel. - *********************************************************/ -private void buildHangup(String channelId, String reason) { -reset(); -url = "/channels/" + channelId + ""; -method = "DELETE"; -lParamQuery.add( HttpParam.build( "reason", reason) ); -lE.add( HttpResponse.build( 400, "Invalid reason for hangup provided") ); -lE.add( HttpResponse.build( 404, "Channel not found") ); -} - -@Override -public void hangup(String channelId, String reason) throws RestException { -buildHangup(channelId, reason); -String json = httpActionSync(); -} - -@Override -public void hangup(String channelId, String reason, AriCallback callback) { -buildHangup(channelId, reason); -httpActionAsync(callback); -} - -/********************************************************** - * Answer a channel - * - * Answer a channel. - *********************************************************/ -private void buildAnswer(String channelId) { -reset(); -url = "/channels/" + channelId + "/answer"; -method = "POST"; -lE.add( HttpResponse.build( 404, "Channel not found") ); -lE.add( HttpResponse.build( 409, "Channel not in a Stasis application") ); -lE.add( HttpResponse.build( 412, "Channel in invalid state") ); -} - -@Override -public void answer(String channelId) throws RestException { -buildAnswer(channelId); -String json = httpActionSync(); -} - -@Override -public void answer(String channelId, AriCallback callback) { -buildAnswer(channelId); -httpActionAsync(callback); -} - -/********************************************************** - * Exit application; continue execution in the dialplan - * - * Exit application; continue execution in the dialplan. - *********************************************************/ -private void buildContinueInDialplan(String channelId, String context, String extension, int priority, String label) { -reset(); -url = "/channels/" + channelId + "/continue"; -method = "POST"; -lParamQuery.add( HttpParam.build( "context", context) ); -lParamQuery.add( HttpParam.build( "extension", extension) ); -lParamQuery.add( HttpParam.build( "priority", priority) ); -lParamQuery.add( HttpParam.build( "label", label) ); -lE.add( HttpResponse.build( 404, "Channel not found") ); -lE.add( HttpResponse.build( 409, "Channel not in a Stasis application") ); -lE.add( HttpResponse.build( 412, "Channel in invalid state") ); -} - -@Override -public void continueInDialplan(String channelId, String context, String extension, int priority, String label) throws RestException { -buildContinueInDialplan(channelId, context, extension, priority, label); -String json = httpActionSync(); -} - -@Override -public void continueInDialplan(String channelId, String context, String extension, int priority, String label, AriCallback callback) { -buildContinueInDialplan(channelId, context, extension, priority, label); -httpActionAsync(callback); -} - -/********************************************************** - * Dial a channel - * - * Dial a created channel. - *********************************************************/ -private void buildDial(String channelId, String caller, int timeout) { -reset(); -url = "/channels/" + channelId + "/dial"; -method = "POST"; -lParamQuery.add( HttpParam.build( "caller", caller) ); -lParamQuery.add( HttpParam.build( "timeout", timeout) ); -lE.add( HttpResponse.build( 404, "Channel cannot be found.") ); -lE.add( HttpResponse.build( 409, "Channel cannot be dialed.") ); -} - -@Override -public void dial(String channelId, String caller, int timeout) throws RestException { -buildDial(channelId, caller, timeout); -String json = httpActionSync(); -} - -@Override -public void dial(String channelId, String caller, int timeout, AriCallback callback) { -buildDial(channelId, caller, timeout); -httpActionAsync(callback); -} - -/********************************************************** - * Send DTMF to a channel - * - * Send provided DTMF to a given channel. - *********************************************************/ -private void buildSendDTMF(String channelId, String dtmf, int before, int between, int duration, int after) { -reset(); -url = "/channels/" + channelId + "/dtmf"; -method = "POST"; -lParamQuery.add( HttpParam.build( "dtmf", dtmf) ); -lParamQuery.add( HttpParam.build( "before", before) ); -lParamQuery.add( HttpParam.build( "between", between) ); -lParamQuery.add( HttpParam.build( "duration", duration) ); -lParamQuery.add( HttpParam.build( "after", after) ); -lE.add( HttpResponse.build( 400, "DTMF is required") ); -lE.add( HttpResponse.build( 404, "Channel not found") ); -lE.add( HttpResponse.build( 409, "Channel not in a Stasis application") ); -lE.add( HttpResponse.build( 412, "Channel in invalid state") ); -} - -@Override -public void sendDTMF(String channelId, String dtmf, int before, int between, int duration, int after) throws RestException { -buildSendDTMF(channelId, dtmf, before, between, duration, after); -String json = httpActionSync(); -} - -@Override -public void sendDTMF(String channelId, String dtmf, int before, int between, int duration, int after, AriCallback callback) { -buildSendDTMF(channelId, dtmf, before, between, duration, after); -httpActionAsync(callback); -} - -/********************************************************** - * Put a channel on hold - * - * Hold a channel. - *********************************************************/ -private void buildHold(String channelId) { -reset(); -url = "/channels/" + channelId + "/hold"; -method = "POST"; -lE.add( HttpResponse.build( 404, "Channel not found") ); -lE.add( HttpResponse.build( 409, "Channel not in a Stasis application") ); -lE.add( HttpResponse.build( 412, "Channel in invalid state") ); -} - -@Override -public void hold(String channelId) throws RestException { -buildHold(channelId); -String json = httpActionSync(); -} - -@Override -public void hold(String channelId, AriCallback callback) { -buildHold(channelId); -httpActionAsync(callback); -} - -/********************************************************** - * Put a channel on hold - * - * Remove a channel from hold. - *********************************************************/ -private void buildUnhold(String channelId) { -reset(); -url = "/channels/" + channelId + "/hold"; -method = "DELETE"; -lE.add( HttpResponse.build( 404, "Channel not found") ); -lE.add( HttpResponse.build( 409, "Channel not in a Stasis application") ); -lE.add( HttpResponse.build( 412, "Channel in invalid state") ); -} - -@Override -public void unhold(String channelId) throws RestException { -buildUnhold(channelId); -String json = httpActionSync(); -} - -@Override -public void unhold(String channelId, AriCallback callback) { -buildUnhold(channelId); -httpActionAsync(callback); -} - -/********************************************************** - * Play music on hold to a channel - * - * Play music on hold to a channel. - * Using media operations such as /play on a channel playing MOH in this manner will suspend MOH without resuming automatically. If continuing music on hold is desired, the stasis application must reinitiate music on hold. - *********************************************************/ -private void buildStartMoh(String channelId, String mohClass) { -reset(); -url = "/channels/" + channelId + "/moh"; -method = "POST"; -lParamQuery.add( HttpParam.build( "mohClass", mohClass) ); -lE.add( HttpResponse.build( 404, "Channel not found") ); -lE.add( HttpResponse.build( 409, "Channel not in a Stasis application") ); -lE.add( HttpResponse.build( 412, "Channel in invalid state") ); -} - -@Override -public void startMoh(String channelId, String mohClass) throws RestException { -buildStartMoh(channelId, mohClass); -String json = httpActionSync(); -} - -@Override -public void startMoh(String channelId, String mohClass, AriCallback callback) { -buildStartMoh(channelId, mohClass); -httpActionAsync(callback); -} - -/********************************************************** - * Play music on hold to a channel - * - * Stop playing music on hold to a channel. - *********************************************************/ -private void buildStopMoh(String channelId) { -reset(); -url = "/channels/" + channelId + "/moh"; -method = "DELETE"; -lE.add( HttpResponse.build( 404, "Channel not found") ); -lE.add( HttpResponse.build( 409, "Channel not in a Stasis application") ); -lE.add( HttpResponse.build( 412, "Channel in invalid state") ); -} - -@Override -public void stopMoh(String channelId) throws RestException { -buildStopMoh(channelId); -String json = httpActionSync(); -} - -@Override -public void stopMoh(String channelId, AriCallback callback) { -buildStopMoh(channelId); -httpActionAsync(callback); -} - -/********************************************************** - * Mute a channel - * - * Mute a channel. - *********************************************************/ -private void buildMute(String channelId, String direction) { -reset(); -url = "/channels/" + channelId + "/mute"; -method = "POST"; -lParamQuery.add( HttpParam.build( "direction", direction) ); -lE.add( HttpResponse.build( 404, "Channel not found") ); -lE.add( HttpResponse.build( 409, "Channel not in a Stasis application") ); -lE.add( HttpResponse.build( 412, "Channel in invalid state") ); -} - -@Override -public void mute(String channelId, String direction) throws RestException { -buildMute(channelId, direction); -String json = httpActionSync(); -} - -@Override -public void mute(String channelId, String direction, AriCallback callback) { -buildMute(channelId, direction); -httpActionAsync(callback); -} - -/********************************************************** - * Mute a channel - * - * Unmute a channel. - *********************************************************/ -private void buildUnmute(String channelId, String direction) { -reset(); -url = "/channels/" + channelId + "/mute"; -method = "DELETE"; -lParamQuery.add( HttpParam.build( "direction", direction) ); -lE.add( HttpResponse.build( 404, "Channel not found") ); -lE.add( HttpResponse.build( 409, "Channel not in a Stasis application") ); -lE.add( HttpResponse.build( 412, "Channel in invalid state") ); -} - -@Override -public void unmute(String channelId, String direction) throws RestException { -buildUnmute(channelId, direction); -String json = httpActionSync(); -} - -@Override -public void unmute(String channelId, String direction, AriCallback callback) { -buildUnmute(channelId, direction); -httpActionAsync(callback); -} - -/********************************************************** - * Play media to a channel - * - * Start playback of media. - * The media URI may be any of a number of URI's. Currently sound:, recording:, number:, digits:, characters:, and tone: URI's are supported. This operation creates a playback resource that can be used to control the playback of media (pause, rewind, fast forward, etc.) - *********************************************************/ -private void buildPlay(String channelId, String media, String lang, int offsetms, int skipms, String playbackId) { -reset(); -url = "/channels/" + channelId + "/play"; -method = "POST"; -lParamQuery.add( HttpParam.build( "media", media) ); -lParamQuery.add( HttpParam.build( "lang", lang) ); -lParamQuery.add( HttpParam.build( "offsetms", offsetms) ); -lParamQuery.add( HttpParam.build( "skipms", skipms) ); -lParamQuery.add( HttpParam.build( "playbackId", playbackId) ); -lE.add( HttpResponse.build( 404, "Channel not found") ); -lE.add( HttpResponse.build( 409, "Channel not in a Stasis application") ); -lE.add( HttpResponse.build( 412, "Channel in invalid state") ); -} - -@Override -public Playback play(String channelId, String media, String lang, int offsetms, int skipms, String playbackId) throws RestException { -buildPlay(channelId, media, lang, offsetms, skipms, playbackId); -String json = httpActionSync(); -return deserializeJson( json, Playback_impl_ari_1_10_0.class ); -} - -@Override -public void play(String channelId, String media, String lang, int offsetms, int skipms, String playbackId, AriCallback callback) { -buildPlay(channelId, media, lang, offsetms, skipms, playbackId); -httpActionAsync(callback, Playback_impl_ari_1_10_0.class); -} - -/********************************************************** - * Play media to a channel - * - * Start playback of media and specify the playbackId. - * The media URI may be any of a number of URI's. Currently sound:, recording:, number:, digits:, characters:, and tone: URI's are supported. This operation creates a playback resource that can be used to control the playback of media (pause, rewind, fast forward, etc.) - *********************************************************/ -private void buildPlayWithId(String channelId, String playbackId, String media, String lang, int offsetms, int skipms) { -reset(); -url = "/channels/" + channelId + "/play/" + playbackId + ""; -method = "POST"; -lParamQuery.add( HttpParam.build( "media", media) ); -lParamQuery.add( HttpParam.build( "lang", lang) ); -lParamQuery.add( HttpParam.build( "offsetms", offsetms) ); -lParamQuery.add( HttpParam.build( "skipms", skipms) ); -lE.add( HttpResponse.build( 404, "Channel not found") ); -lE.add( HttpResponse.build( 409, "Channel not in a Stasis application") ); -lE.add( HttpResponse.build( 412, "Channel in invalid state") ); -} - -@Override -public Playback playWithId(String channelId, String playbackId, String media, String lang, int offsetms, int skipms) throws RestException { -buildPlayWithId(channelId, playbackId, media, lang, offsetms, skipms); -String json = httpActionSync(); -return deserializeJson( json, Playback_impl_ari_1_10_0.class ); -} - -@Override -public void playWithId(String channelId, String playbackId, String media, String lang, int offsetms, int skipms, AriCallback callback) { -buildPlayWithId(channelId, playbackId, media, lang, offsetms, skipms); -httpActionAsync(callback, Playback_impl_ari_1_10_0.class); -} - -/********************************************************** - * Record audio from a channel - * - * Start a recording. - * Record audio from a channel. Note that this will not capture audio sent to the channel. The bridge itself has a record feature if that's what you want. - *********************************************************/ -private void buildRecord(String channelId, String name, String format, int maxDurationSeconds, int maxSilenceSeconds, String ifExists, boolean beep, String terminateOn) { -reset(); -url = "/channels/" + channelId + "/record"; -method = "POST"; -lParamQuery.add( HttpParam.build( "name", name) ); -lParamQuery.add( HttpParam.build( "format", format) ); -lParamQuery.add( HttpParam.build( "maxDurationSeconds", maxDurationSeconds) ); -lParamQuery.add( HttpParam.build( "maxSilenceSeconds", maxSilenceSeconds) ); -lParamQuery.add( HttpParam.build( "ifExists", ifExists) ); -lParamQuery.add( HttpParam.build( "beep", beep) ); -lParamQuery.add( HttpParam.build( "terminateOn", terminateOn) ); -lE.add( HttpResponse.build( 400, "Invalid parameters") ); -lE.add( HttpResponse.build( 404, "Channel not found") ); -lE.add( HttpResponse.build( 409, "Channel is not in a Stasis application; the channel is currently bridged with other hcannels; A recording with the same name already exists on the system and can not be overwritten because it is in progress or ifExists=fail") ); -lE.add( HttpResponse.build( 422, "The format specified is unknown on this system") ); -} - -@Override -public LiveRecording record(String channelId, String name, String format, int maxDurationSeconds, int maxSilenceSeconds, String ifExists, boolean beep, String terminateOn) throws RestException { -buildRecord(channelId, name, format, maxDurationSeconds, maxSilenceSeconds, ifExists, beep, terminateOn); -String json = httpActionSync(); -return deserializeJson( json, LiveRecording_impl_ari_1_10_0.class ); -} - -@Override -public void record(String channelId, String name, String format, int maxDurationSeconds, int maxSilenceSeconds, String ifExists, boolean beep, String terminateOn, AriCallback callback) { -buildRecord(channelId, name, format, maxDurationSeconds, maxSilenceSeconds, ifExists, beep, terminateOn); -httpActionAsync(callback, LiveRecording_impl_ari_1_10_0.class); -} - -/********************************************************** - * Inform the channel that it should redirect itself to a different location. Note that this will almost certainly cause the channel to exit the application. - * - * Redirect the channel to a different location. - *********************************************************/ -private void buildRedirect(String channelId, String endpoint) { -reset(); -url = "/channels/" + channelId + "/redirect"; -method = "POST"; -lParamQuery.add( HttpParam.build( "endpoint", endpoint) ); -lE.add( HttpResponse.build( 400, "Endpoint parameter not provided") ); -lE.add( HttpResponse.build( 404, "Channel or endpoint not found") ); -lE.add( HttpResponse.build( 409, "Channel not in a Stasis application") ); -lE.add( HttpResponse.build( 422, "Endpoint is not the same type as the channel") ); -lE.add( HttpResponse.build( 412, "Channel in invalid state") ); -} - -@Override -public void redirect(String channelId, String endpoint) throws RestException { -buildRedirect(channelId, endpoint); -String json = httpActionSync(); -} - -@Override -public void redirect(String channelId, String endpoint, AriCallback callback) { -buildRedirect(channelId, endpoint); -httpActionAsync(callback); -} - -/********************************************************** - * Send a ringing indication to a channel - * - * Indicate ringing to a channel. - *********************************************************/ -private void buildRing(String channelId) { -reset(); -url = "/channels/" + channelId + "/ring"; -method = "POST"; -lE.add( HttpResponse.build( 404, "Channel not found") ); -lE.add( HttpResponse.build( 409, "Channel not in a Stasis application") ); -lE.add( HttpResponse.build( 412, "Channel in invalid state") ); -} - -@Override -public void ring(String channelId) throws RestException { -buildRing(channelId); -String json = httpActionSync(); -} - -@Override -public void ring(String channelId, AriCallback callback) { -buildRing(channelId); -httpActionAsync(callback); -} - -/********************************************************** - * Send a ringing indication to a channel - * - * Stop ringing indication on a channel if locally generated. - *********************************************************/ -private void buildRingStop(String channelId) { -reset(); -url = "/channels/" + channelId + "/ring"; -method = "DELETE"; -lE.add( HttpResponse.build( 404, "Channel not found") ); -lE.add( HttpResponse.build( 409, "Channel not in a Stasis application") ); -lE.add( HttpResponse.build( 412, "Channel in invalid state") ); -} - -@Override -public void ringStop(String channelId) throws RestException { -buildRingStop(channelId); -String json = httpActionSync(); -} - -@Override -public void ringStop(String channelId, AriCallback callback) { -buildRingStop(channelId); -httpActionAsync(callback); -} - -/********************************************************** - * Play silence to a channel - * - * Play silence to a channel. - * Using media operations such as /play on a channel playing silence in this manner will suspend silence without resuming automatically. - *********************************************************/ -private void buildStartSilence(String channelId) { -reset(); -url = "/channels/" + channelId + "/silence"; -method = "POST"; -lE.add( HttpResponse.build( 404, "Channel not found") ); -lE.add( HttpResponse.build( 409, "Channel not in a Stasis application") ); -lE.add( HttpResponse.build( 412, "Channel in invalid state") ); -} - -@Override -public void startSilence(String channelId) throws RestException { -buildStartSilence(channelId); -String json = httpActionSync(); -} - -@Override -public void startSilence(String channelId, AriCallback callback) { -buildStartSilence(channelId); -httpActionAsync(callback); -} - -/********************************************************** - * Play silence to a channel - * - * Stop playing silence to a channel. - *********************************************************/ -private void buildStopSilence(String channelId) { -reset(); -url = "/channels/" + channelId + "/silence"; -method = "DELETE"; -lE.add( HttpResponse.build( 404, "Channel not found") ); -lE.add( HttpResponse.build( 409, "Channel not in a Stasis application") ); -lE.add( HttpResponse.build( 412, "Channel in invalid state") ); -} - -@Override -public void stopSilence(String channelId) throws RestException { -buildStopSilence(channelId); -String json = httpActionSync(); -} - -@Override -public void stopSilence(String channelId, AriCallback callback) { -buildStopSilence(channelId); -httpActionAsync(callback); -} - -/********************************************************** - * Snoop (spy/whisper) on a channel - * - * Start snooping. - * Snoop (spy/whisper) on a specific channel. - *********************************************************/ -private void buildSnoopChannel(String channelId, String spy, String whisper, String app, String appArgs, String snoopId) { -reset(); -url = "/channels/" + channelId + "/snoop"; -method = "POST"; -lParamQuery.add( HttpParam.build( "spy", spy) ); -lParamQuery.add( HttpParam.build( "whisper", whisper) ); -lParamQuery.add( HttpParam.build( "app", app) ); -lParamQuery.add( HttpParam.build( "appArgs", appArgs) ); -lParamQuery.add( HttpParam.build( "snoopId", snoopId) ); -lE.add( HttpResponse.build( 400, "Invalid parameters") ); -lE.add( HttpResponse.build( 404, "Channel not found") ); -} - -@Override -public Channel snoopChannel(String channelId, String spy, String whisper, String app, String appArgs, String snoopId) throws RestException { -buildSnoopChannel(channelId, spy, whisper, app, appArgs, snoopId); -String json = httpActionSync(); -return deserializeJson( json, Channel_impl_ari_1_10_0.class ); -} - -@Override -public void snoopChannel(String channelId, String spy, String whisper, String app, String appArgs, String snoopId, AriCallback callback) { -buildSnoopChannel(channelId, spy, whisper, app, appArgs, snoopId); -httpActionAsync(callback, Channel_impl_ari_1_10_0.class); -} - -/********************************************************** - * Snoop (spy/whisper) on a channel - * - * Start snooping. - * Snoop (spy/whisper) on a specific channel. - *********************************************************/ -private void buildSnoopChannelWithId(String channelId, String snoopId, String spy, String whisper, String app, String appArgs) { -reset(); -url = "/channels/" + channelId + "/snoop/" + snoopId + ""; -method = "POST"; -lParamQuery.add( HttpParam.build( "spy", spy) ); -lParamQuery.add( HttpParam.build( "whisper", whisper) ); -lParamQuery.add( HttpParam.build( "app", app) ); -lParamQuery.add( HttpParam.build( "appArgs", appArgs) ); -lE.add( HttpResponse.build( 400, "Invalid parameters") ); -lE.add( HttpResponse.build( 404, "Channel not found") ); -} - -@Override -public Channel snoopChannelWithId(String channelId, String snoopId, String spy, String whisper, String app, String appArgs) throws RestException { -buildSnoopChannelWithId(channelId, snoopId, spy, whisper, app, appArgs); -String json = httpActionSync(); -return deserializeJson( json, Channel_impl_ari_1_10_0.class ); -} - -@Override -public void snoopChannelWithId(String channelId, String snoopId, String spy, String whisper, String app, String appArgs, AriCallback callback) { -buildSnoopChannelWithId(channelId, snoopId, spy, whisper, app, appArgs); -httpActionAsync(callback, Channel_impl_ari_1_10_0.class); -} - -/********************************************************** - * Variables on a channel - * - * Get the value of a channel variable or function. - *********************************************************/ -private void buildGetChannelVar(String channelId, String variable) { -reset(); -url = "/channels/" + channelId + "/variable"; -method = "GET"; -lParamQuery.add( HttpParam.build( "variable", variable) ); -lE.add( HttpResponse.build( 400, "Missing variable parameter.") ); -lE.add( HttpResponse.build( 404, "Channel or variable not found") ); -lE.add( HttpResponse.build( 409, "Channel not in a Stasis application") ); -} - -@Override -public Variable getChannelVar(String channelId, String variable) throws RestException { -buildGetChannelVar(channelId, variable); -String json = httpActionSync(); -return deserializeJson( json, Variable_impl_ari_1_10_0.class ); -} - -@Override -public void getChannelVar(String channelId, String variable, AriCallback callback) { -buildGetChannelVar(channelId, variable); -httpActionAsync(callback, Variable_impl_ari_1_10_0.class); -} - -/********************************************************** - * Variables on a channel - * - * Set the value of a channel variable or function. - *********************************************************/ -private void buildSetChannelVar(String channelId, String variable, String value) { -reset(); -url = "/channels/" + channelId + "/variable"; -method = "POST"; -lParamQuery.add( HttpParam.build( "variable", variable) ); -lParamQuery.add( HttpParam.build( "value", value) ); -lE.add( HttpResponse.build( 400, "Missing variable parameter.") ); -lE.add( HttpResponse.build( 404, "Channel not found") ); -lE.add( HttpResponse.build( 409, "Channel not in a Stasis application") ); -} - -@Override -public void setChannelVar(String channelId, String variable, String value) throws RestException { -buildSetChannelVar(channelId, variable, value); -String json = httpActionSync(); -} - -@Override -public void setChannelVar(String channelId, String variable, String value, AriCallback callback) { -buildSetChannelVar(channelId, variable, value); -httpActionAsync(callback); -} - -/********************************************************** - * - * - * @since ari_1_7_0 - *********************************************************/ -public void originate(String endpoint, String extension, String context, long priority, String label, String app, String appArgs, String callerId, int timeout, Map variables, String channelId, String otherChannelId, String originator, AriCallback callback){ - throw new UnsupportedOperationException("Method availble from ..."); -}; - -/********************************************************** - * Create a new channel (originate with id). - * The new channel is created immediately and a snapshot of it returned. If a Stasis application is provided it will be automatically subscribed to the originated channel for further events and updates. - * - * @since ari_1_5_0 - *********************************************************/ -public Channel originateWithId(String channelId, String endpoint, String extension, String context, long priority, String app, String appArgs, String callerId, int timeout, Map variables, String otherChannelId) throws RestException{ - throw new UnsupportedOperationException("Method availble from ..."); -}; - -/********************************************************** - * Start snooping. - * Snoop (spy/whisper) on a specific channel. - * - * @since ari_0_0_1 - *********************************************************/ -public Channel snoopChannel(String channelId, String spy, String whisper, String app, String appArgs) throws RestException{ - throw new UnsupportedOperationException("Method availble from ..."); -}; - -/********************************************************** - * - * - * @since ari_1_5_0 - *********************************************************/ -public void originate(String endpoint, String extension, String context, long priority, String app, String appArgs, String callerId, int timeout, Map variables, String channelId, String otherChannelId, AriCallback callback){ - throw new UnsupportedOperationException("Method availble from ..."); -}; - -/********************************************************** - * - * - * @since ari_0_0_1 - *********************************************************/ -public void continueInDialplan(String channelId, String context, String extension, int priority, AriCallback callback){ - throw new UnsupportedOperationException("Method availble from ..."); -}; - -/********************************************************** - * Start playback of media. - * The media URI may be any of a number of URI's. Currently sound: and recording: URI's are supported. This operation creates a playback resource that can be used to control the playback of media (pause, rewind, fast forward, etc.) - * - * @since ari_0_0_1 - *********************************************************/ -public Playback play(String channelId, String media, String lang, int offsetms, int skipms) throws RestException{ - throw new UnsupportedOperationException("Method availble from ..."); -}; - -/********************************************************** - * - * - * @since ari_0_0_1 - *********************************************************/ -public void play(String channelId, String media, String lang, int offsetms, int skipms, AriCallback callback){ - throw new UnsupportedOperationException("Method availble from ..."); -}; - -/********************************************************** - * - * - * @since ari_0_0_1 - *********************************************************/ -public void snoopChannel(String channelId, String spy, String whisper, String app, String appArgs, AriCallback callback){ - throw new UnsupportedOperationException("Method availble from ..."); -}; - -/********************************************************** - * Create a new channel (originate). - * The new channel is created immediately and a snapshot of it returned. If a Stasis application is provided it will be automatically subscribed to the originated channel for further events and updates. - * - * @since ari_1_7_0 - *********************************************************/ -public Channel originate(String endpoint, String extension, String context, long priority, String label, String app, String appArgs, String callerId, int timeout, Map variables, String channelId, String otherChannelId, String originator) throws RestException{ - throw new UnsupportedOperationException("Method availble from ..."); -}; - -/********************************************************** - * - * - * @since ari_1_5_0 - *********************************************************/ -public void originateWithId(String channelId, String endpoint, String extension, String context, long priority, String app, String appArgs, String callerId, int timeout, Map variables, String otherChannelId, AriCallback callback){ - throw new UnsupportedOperationException("Method availble from ..."); -}; - -/********************************************************** - * Create a new channel (originate with id). - * The new channel is created immediately and a snapshot of it returned. If a Stasis application is provided it will be automatically subscribed to the originated channel for further events and updates. - * - * @since ari_1_7_0 - *********************************************************/ -public Channel originateWithId(String channelId, String endpoint, String extension, String context, long priority, String label, String app, String appArgs, String callerId, int timeout, Map variables, String otherChannelId, String originator) throws RestException{ - throw new UnsupportedOperationException("Method availble from ..."); -}; - -/********************************************************** - * Create a new channel (originate). - * The new channel is created immediately and a snapshot of it returned. If a Stasis application is provided it will be automatically subscribed to the originated channel for further events and updates. - * - * @since ari_0_0_1 - *********************************************************/ -public Channel originate(String endpoint, String extension, String context, long priority, String app, String appArgs, String callerId, int timeout) throws RestException{ - throw new UnsupportedOperationException("Method availble from ..."); -}; - -/********************************************************** - * - * - * @since ari_1_7_0 - *********************************************************/ -public void originateWithId(String channelId, String endpoint, String extension, String context, long priority, String label, String app, String appArgs, String callerId, int timeout, Map variables, String otherChannelId, String originator, AriCallback callback){ - throw new UnsupportedOperationException("Method availble from ..."); -}; - -/********************************************************** - * Exit application{ - throw new UnsupportedOperationException("Method availble from ..."); -}; continue execution in the dialplan. - * - * - * @since ari_0_0_1 - *********************************************************/ -public void continueInDialplan(String channelId, String context, String extension, int priority) throws RestException{ - throw new UnsupportedOperationException("Method availble from ..."); -}; - -/********************************************************** - * Create a new channel (originate). - * The new channel is created immediately and a snapshot of it returned. If a Stasis application is provided it will be automatically subscribed to the originated channel for further events and updates. - * - * @since ari_1_5_0 - *********************************************************/ -public Channel originate(String endpoint, String extension, String context, long priority, String app, String appArgs, String callerId, int timeout, Map variables, String channelId, String otherChannelId) throws RestException{ - throw new UnsupportedOperationException("Method availble from ..."); -}; - -/********************************************************** - * - * - * @since ari_0_0_1 - *********************************************************/ -public void originate(String endpoint, String extension, String context, long priority, String app, String appArgs, String callerId, int timeout, AriCallback callback){ - throw new UnsupportedOperationException("Method availble from ..."); -}; - -}; - diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/actions/ActionDeviceStates_impl_ari_1_10_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/actions/ActionDeviceStates_impl_ari_1_10_0.java deleted file mode 100644 index 4904a415..00000000 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/actions/ActionDeviceStates_impl_ari_1_10_0.java +++ /dev/null @@ -1,131 +0,0 @@ -package ch.loway.oss.ari4java.generated.ari_1_10_0.actions; - -// ---------------------------------------------------- -// THIS CLASS WAS GENERATED AUTOMATICALLY -// PLEASE DO NOT EDIT -// Generated on: Tue Dec 19 09:55:49 CET 2017 -// ---------------------------------------------------- - -import ch.loway.oss.ari4java.generated.*; -import java.util.Date; -import java.util.List; -import java.util.Map; -import java.util.ArrayList; -import ch.loway.oss.ari4java.tools.BaseAriAction; -import ch.loway.oss.ari4java.tools.RestException; -import ch.loway.oss.ari4java.tools.AriCallback; -import ch.loway.oss.ari4java.tools.HttpParam; -import ch.loway.oss.ari4java.tools.HttpResponse; -import com.fasterxml.jackson.core.type.TypeReference; -import ch.loway.oss.ari4java.generated.ari_1_10_0.models.*; - -/********************************************************** - * - * Generated by: Apis - *********************************************************/ - - -public class ActionDeviceStates_impl_ari_1_10_0 extends BaseAriAction implements ActionDeviceStates { -/********************************************************** - * Device states - * - * List all ARI controlled device states. - *********************************************************/ -private void buildList() { -reset(); -url = "/deviceStates"; -method = "GET"; -} - -@Override -public List list() throws RestException { -buildList(); -String json = httpActionSync(); -return deserializeJsonAsAbstractList( json, - new TypeReference>() {} ); -} - -@Override -public void list(AriCallback> callback) { -buildList(); -httpActionAsync(callback, new TypeReference>() {}); -} - -/********************************************************** - * Device state - * - * Retrieve the current state of a device. - *********************************************************/ -private void buildGet(String deviceName) { -reset(); -url = "/deviceStates/" + deviceName + ""; -method = "GET"; -} - -@Override -public DeviceState get(String deviceName) throws RestException { -buildGet(deviceName); -String json = httpActionSync(); -return deserializeJson( json, DeviceState_impl_ari_1_10_0.class ); -} - -@Override -public void get(String deviceName, AriCallback callback) { -buildGet(deviceName); -httpActionAsync(callback, DeviceState_impl_ari_1_10_0.class); -} - -/********************************************************** - * Device state - * - * Change the state of a device controlled by ARI. (Note - implicitly creates the device state). - *********************************************************/ -private void buildUpdate(String deviceName, String deviceState) { -reset(); -url = "/deviceStates/" + deviceName + ""; -method = "PUT"; -lParamQuery.add( HttpParam.build( "deviceState", deviceState) ); -lE.add( HttpResponse.build( 404, "Device name is missing") ); -lE.add( HttpResponse.build( 409, "Uncontrolled device specified") ); -} - -@Override -public void update(String deviceName, String deviceState) throws RestException { -buildUpdate(deviceName, deviceState); -String json = httpActionSync(); -} - -@Override -public void update(String deviceName, String deviceState, AriCallback callback) { -buildUpdate(deviceName, deviceState); -httpActionAsync(callback); -} - -/********************************************************** - * Device state - * - * Destroy a device-state controlled by ARI. - *********************************************************/ -private void buildDelete(String deviceName) { -reset(); -url = "/deviceStates/" + deviceName + ""; -method = "DELETE"; -lE.add( HttpResponse.build( 404, "Device name is missing") ); -lE.add( HttpResponse.build( 409, "Uncontrolled device specified") ); -} - -@Override -public void delete(String deviceName) throws RestException { -buildDelete(deviceName); -String json = httpActionSync(); -} - -@Override -public void delete(String deviceName, AriCallback callback) { -buildDelete(deviceName); -httpActionAsync(callback); -} - -/** No missing signatures from interface */ -}; - diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/actions/ActionEndpoints_impl_ari_1_10_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/actions/ActionEndpoints_impl_ari_1_10_0.java deleted file mode 100644 index 0e96979c..00000000 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/actions/ActionEndpoints_impl_ari_1_10_0.java +++ /dev/null @@ -1,165 +0,0 @@ -package ch.loway.oss.ari4java.generated.ari_1_10_0.actions; - -// ---------------------------------------------------- -// THIS CLASS WAS GENERATED AUTOMATICALLY -// PLEASE DO NOT EDIT -// Generated on: Tue Dec 19 09:55:49 CET 2017 -// ---------------------------------------------------- - -import ch.loway.oss.ari4java.generated.*; -import java.util.Date; -import java.util.List; -import java.util.Map; -import java.util.ArrayList; -import ch.loway.oss.ari4java.tools.BaseAriAction; -import ch.loway.oss.ari4java.tools.RestException; -import ch.loway.oss.ari4java.tools.AriCallback; -import ch.loway.oss.ari4java.tools.HttpParam; -import ch.loway.oss.ari4java.tools.HttpResponse; -import com.fasterxml.jackson.core.type.TypeReference; -import ch.loway.oss.ari4java.generated.ari_1_10_0.models.*; - -/********************************************************** - * - * Generated by: Apis - *********************************************************/ - - -public class ActionEndpoints_impl_ari_1_10_0 extends BaseAriAction implements ActionEndpoints { -/********************************************************** - * Asterisk endpoints - * - * List all endpoints. - *********************************************************/ -private void buildList() { -reset(); -url = "/endpoints"; -method = "GET"; -} - -@Override -public List list() throws RestException { -buildList(); -String json = httpActionSync(); -return deserializeJsonAsAbstractList( json, - new TypeReference>() {} ); -} - -@Override -public void list(AriCallback> callback) { -buildList(); -httpActionAsync(callback, new TypeReference>() {}); -} - -/********************************************************** - * Send a message to some technology URI or endpoint. - * - * Send a message to some technology URI or endpoint. - *********************************************************/ -private void buildSendMessage(String to, String from, String body, Map variables) { -reset(); -url = "/endpoints/sendMessage"; -method = "PUT"; -lParamQuery.add( HttpParam.build( "to", to) ); -lParamQuery.add( HttpParam.build( "from", from) ); -lParamQuery.add( HttpParam.build( "body", body) ); -lParamBody.addAll( HttpParam.build( "variables", variables) ); -lE.add( HttpResponse.build( 400, "Invalid parameters for sending a message.") ); -lE.add( HttpResponse.build( 404, "Endpoint not found") ); -} - -@Override -public void sendMessage(String to, String from, String body, Map variables) throws RestException { -buildSendMessage(to, from, body, variables); -String json = httpActionSync(); -} - -@Override -public void sendMessage(String to, String from, String body, Map variables, AriCallback callback) { -buildSendMessage(to, from, body, variables); -httpActionAsync(callback); -} - -/********************************************************** - * Asterisk endpoints - * - * List available endoints for a given endpoint technology. - *********************************************************/ -private void buildListByTech(String tech) { -reset(); -url = "/endpoints/" + tech + ""; -method = "GET"; -lE.add( HttpResponse.build( 404, "Endpoints not found") ); -} - -@Override -public List listByTech(String tech) throws RestException { -buildListByTech(tech); -String json = httpActionSync(); -return deserializeJsonAsAbstractList( json, - new TypeReference>() {} ); -} - -@Override -public void listByTech(String tech, AriCallback> callback) { -buildListByTech(tech); -httpActionAsync(callback, new TypeReference>() {}); -} - -/********************************************************** - * Single endpoint - * - * Details for an endpoint. - *********************************************************/ -private void buildGet(String tech, String resource) { -reset(); -url = "/endpoints/" + tech + "/" + resource + ""; -method = "GET"; -lE.add( HttpResponse.build( 400, "Invalid parameters for sending a message.") ); -lE.add( HttpResponse.build( 404, "Endpoints not found") ); -} - -@Override -public Endpoint get(String tech, String resource) throws RestException { -buildGet(tech, resource); -String json = httpActionSync(); -return deserializeJson( json, Endpoint_impl_ari_1_10_0.class ); -} - -@Override -public void get(String tech, String resource, AriCallback callback) { -buildGet(tech, resource); -httpActionAsync(callback, Endpoint_impl_ari_1_10_0.class); -} - -/********************************************************** - * Send a message to some endpoint in a technology. - * - * Send a message to some endpoint in a technology. - *********************************************************/ -private void buildSendMessageToEndpoint(String tech, String resource, String from, String body, Map variables) { -reset(); -url = "/endpoints/" + tech + "/" + resource + "/sendMessage"; -method = "PUT"; -lParamQuery.add( HttpParam.build( "from", from) ); -lParamQuery.add( HttpParam.build( "body", body) ); -lParamBody.addAll( HttpParam.build( "variables", variables) ); -lE.add( HttpResponse.build( 400, "Invalid parameters for sending a message.") ); -lE.add( HttpResponse.build( 404, "Endpoint not found") ); -} - -@Override -public void sendMessageToEndpoint(String tech, String resource, String from, String body, Map variables) throws RestException { -buildSendMessageToEndpoint(tech, resource, from, body, variables); -String json = httpActionSync(); -} - -@Override -public void sendMessageToEndpoint(String tech, String resource, String from, String body, Map variables, AriCallback callback) { -buildSendMessageToEndpoint(tech, resource, from, body, variables); -httpActionAsync(callback); -} - -/** No missing signatures from interface */ -}; - diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/actions/ActionEvents_impl_ari_1_10_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/actions/ActionEvents_impl_ari_1_10_0.java deleted file mode 100644 index 6adbb2b9..00000000 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/actions/ActionEvents_impl_ari_1_10_0.java +++ /dev/null @@ -1,103 +0,0 @@ -package ch.loway.oss.ari4java.generated.ari_1_10_0.actions; - -// ---------------------------------------------------- -// THIS CLASS WAS GENERATED AUTOMATICALLY -// PLEASE DO NOT EDIT -// Generated on: Tue Dec 19 09:55:49 CET 2017 -// ---------------------------------------------------- - -import ch.loway.oss.ari4java.generated.*; -import java.util.Date; -import java.util.List; -import java.util.Map; -import java.util.ArrayList; -import ch.loway.oss.ari4java.tools.BaseAriAction; -import ch.loway.oss.ari4java.tools.RestException; -import ch.loway.oss.ari4java.tools.AriCallback; -import ch.loway.oss.ari4java.tools.HttpParam; -import ch.loway.oss.ari4java.tools.HttpResponse; -import com.fasterxml.jackson.core.type.TypeReference; -import ch.loway.oss.ari4java.generated.ari_1_10_0.models.*; - -/********************************************************** - * - * Generated by: Apis - *********************************************************/ - - -public class ActionEvents_impl_ari_1_10_0 extends BaseAriAction implements ActionEvents { -/********************************************************** - * Events from Asterisk to applications - * - * WebSocket connection for events. - *********************************************************/ -private void buildEventWebsocket(String app, boolean subscribeAll) { -reset(); -url = "/events"; -method = "GET"; -lParamQuery.add( HttpParam.build( "app", app) ); -lParamQuery.add( HttpParam.build( "subscribeAll", subscribeAll) ); -wsUpgrade = true; -} - -@Override -public Message eventWebsocket(String app, boolean subscribeAll) throws RestException { -throw new RestException("No synchronous operation on WebSocket"); -} - -@Override -public void eventWebsocket(String app, boolean subscribeAll, AriCallback callback) { -buildEventWebsocket(app, subscribeAll); -httpActionAsync(callback, Message_impl_ari_1_10_0.class); -} - -/********************************************************** - * Stasis application user events - * - * Generate a user event. - *********************************************************/ -private void buildUserEvent(String eventName, String application, String source, Map variables) { -reset(); -url = "/events/user/" + eventName + ""; -method = "POST"; -lParamQuery.add( HttpParam.build( "application", application) ); -lParamQuery.add( HttpParam.build( "source", source) ); -lParamBody.addAll( HttpParam.build( "variables", variables) ); -lE.add( HttpResponse.build( 404, "Application does not exist.") ); -lE.add( HttpResponse.build( 422, "Event source not found.") ); -lE.add( HttpResponse.build( 400, "Invalid even tsource URI or userevent data.") ); -} - -@Override -public void userEvent(String eventName, String application, String source, Map variables) throws RestException { -buildUserEvent(eventName, application, source, variables); -String json = httpActionSync(); -} - -@Override -public void userEvent(String eventName, String application, String source, Map variables, AriCallback callback) { -buildUserEvent(eventName, application, source, variables); -httpActionAsync(callback); -} - -/********************************************************** - * WebSocket connection for events. - * - * - * @since ari_0_0_1 - *********************************************************/ -public Message eventWebsocket(String app) throws RestException{ - throw new UnsupportedOperationException("Method availble from ..."); -}; - -/********************************************************** - * - * - * @since ari_0_0_1 - *********************************************************/ -public void eventWebsocket(String app, AriCallback callback){ - throw new UnsupportedOperationException("Method availble from ..."); -}; - -}; - diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/actions/ActionPlaybacks_impl_ari_1_10_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/actions/ActionPlaybacks_impl_ari_1_10_0.java deleted file mode 100644 index b190d812..00000000 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/actions/ActionPlaybacks_impl_ari_1_10_0.java +++ /dev/null @@ -1,107 +0,0 @@ -package ch.loway.oss.ari4java.generated.ari_1_10_0.actions; - -// ---------------------------------------------------- -// THIS CLASS WAS GENERATED AUTOMATICALLY -// PLEASE DO NOT EDIT -// Generated on: Tue Dec 19 09:55:49 CET 2017 -// ---------------------------------------------------- - -import ch.loway.oss.ari4java.generated.*; -import java.util.Date; -import java.util.List; -import java.util.Map; -import java.util.ArrayList; -import ch.loway.oss.ari4java.tools.BaseAriAction; -import ch.loway.oss.ari4java.tools.RestException; -import ch.loway.oss.ari4java.tools.AriCallback; -import ch.loway.oss.ari4java.tools.HttpParam; -import ch.loway.oss.ari4java.tools.HttpResponse; -import com.fasterxml.jackson.core.type.TypeReference; -import ch.loway.oss.ari4java.generated.ari_1_10_0.models.*; - -/********************************************************** - * - * Generated by: Apis - *********************************************************/ - - -public class ActionPlaybacks_impl_ari_1_10_0 extends BaseAriAction implements ActionPlaybacks { -/********************************************************** - * Control object for a playback operation. - * - * Get a playback's details. - *********************************************************/ -private void buildGet(String playbackId) { -reset(); -url = "/playbacks/" + playbackId + ""; -method = "GET"; -lE.add( HttpResponse.build( 404, "The playback cannot be found") ); -} - -@Override -public Playback get(String playbackId) throws RestException { -buildGet(playbackId); -String json = httpActionSync(); -return deserializeJson( json, Playback_impl_ari_1_10_0.class ); -} - -@Override -public void get(String playbackId, AriCallback callback) { -buildGet(playbackId); -httpActionAsync(callback, Playback_impl_ari_1_10_0.class); -} - -/********************************************************** - * Control object for a playback operation. - * - * Stop a playback. - *********************************************************/ -private void buildStop(String playbackId) { -reset(); -url = "/playbacks/" + playbackId + ""; -method = "DELETE"; -lE.add( HttpResponse.build( 404, "The playback cannot be found") ); -} - -@Override -public void stop(String playbackId) throws RestException { -buildStop(playbackId); -String json = httpActionSync(); -} - -@Override -public void stop(String playbackId, AriCallback callback) { -buildStop(playbackId); -httpActionAsync(callback); -} - -/********************************************************** - * Control object for a playback operation. - * - * Control a playback. - *********************************************************/ -private void buildControl(String playbackId, String operation) { -reset(); -url = "/playbacks/" + playbackId + "/control"; -method = "POST"; -lParamQuery.add( HttpParam.build( "operation", operation) ); -lE.add( HttpResponse.build( 400, "The provided operation parameter was invalid") ); -lE.add( HttpResponse.build( 404, "The playback cannot be found") ); -lE.add( HttpResponse.build( 409, "The operation cannot be performed in the playback's current state") ); -} - -@Override -public void control(String playbackId, String operation) throws RestException { -buildControl(playbackId, operation); -String json = httpActionSync(); -} - -@Override -public void control(String playbackId, String operation, AriCallback callback) { -buildControl(playbackId, operation); -httpActionAsync(callback); -} - -/** No missing signatures from interface */ -}; - diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/actions/ActionRecordings_impl_ari_1_10_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/actions/ActionRecordings_impl_ari_1_10_0.java deleted file mode 100644 index 324db17c..00000000 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/actions/ActionRecordings_impl_ari_1_10_0.java +++ /dev/null @@ -1,333 +0,0 @@ -package ch.loway.oss.ari4java.generated.ari_1_10_0.actions; - -// ---------------------------------------------------- -// THIS CLASS WAS GENERATED AUTOMATICALLY -// PLEASE DO NOT EDIT -// Generated on: Tue Dec 19 09:55:49 CET 2017 -// ---------------------------------------------------- - -import ch.loway.oss.ari4java.generated.*; -import java.util.Date; -import java.util.List; -import java.util.Map; -import java.util.ArrayList; -import ch.loway.oss.ari4java.tools.BaseAriAction; -import ch.loway.oss.ari4java.tools.RestException; -import ch.loway.oss.ari4java.tools.AriCallback; -import ch.loway.oss.ari4java.tools.HttpParam; -import ch.loway.oss.ari4java.tools.HttpResponse; -import com.fasterxml.jackson.core.type.TypeReference; -import ch.loway.oss.ari4java.generated.ari_1_10_0.models.*; - -/********************************************************** - * - * Generated by: Apis - *********************************************************/ - - -public class ActionRecordings_impl_ari_1_10_0 extends BaseAriAction implements ActionRecordings { -/********************************************************** - * A recording that is in progress - * - * List live recordings. - *********************************************************/ -private void buildGetLive(String recordingName) { -reset(); -url = "/recordings/live/" + recordingName + ""; -method = "GET"; -lE.add( HttpResponse.build( 404, "Recording not found") ); -} - -@Override -public LiveRecording getLive(String recordingName) throws RestException { -buildGetLive(recordingName); -String json = httpActionSync(); -return deserializeJson( json, LiveRecording_impl_ari_1_10_0.class ); -} - -@Override -public void getLive(String recordingName, AriCallback callback) { -buildGetLive(recordingName); -httpActionAsync(callback, LiveRecording_impl_ari_1_10_0.class); -} - -/********************************************************** - * A recording that is in progress - * - * Stop a live recording and discard it. - *********************************************************/ -private void buildCancel(String recordingName) { -reset(); -url = "/recordings/live/" + recordingName + ""; -method = "DELETE"; -lE.add( HttpResponse.build( 404, "Recording not found") ); -} - -@Override -public void cancel(String recordingName) throws RestException { -buildCancel(recordingName); -String json = httpActionSync(); -} - -@Override -public void cancel(String recordingName, AriCallback callback) { -buildCancel(recordingName); -httpActionAsync(callback); -} - -/********************************************************** - * - * - * Mute a live recording. - * Muting a recording suspends silence detection, which will be restarted when the recording is unmuted. - *********************************************************/ -private void buildMute(String recordingName) { -reset(); -url = "/recordings/live/" + recordingName + "/mute"; -method = "POST"; -lE.add( HttpResponse.build( 404, "Recording not found") ); -lE.add( HttpResponse.build( 409, "Recording not in session") ); -} - -@Override -public void mute(String recordingName) throws RestException { -buildMute(recordingName); -String json = httpActionSync(); -} - -@Override -public void mute(String recordingName, AriCallback callback) { -buildMute(recordingName); -httpActionAsync(callback); -} - -/********************************************************** - * - * - * Unmute a live recording. - *********************************************************/ -private void buildUnmute(String recordingName) { -reset(); -url = "/recordings/live/" + recordingName + "/mute"; -method = "DELETE"; -lE.add( HttpResponse.build( 404, "Recording not found") ); -lE.add( HttpResponse.build( 409, "Recording not in session") ); -} - -@Override -public void unmute(String recordingName) throws RestException { -buildUnmute(recordingName); -String json = httpActionSync(); -} - -@Override -public void unmute(String recordingName, AriCallback callback) { -buildUnmute(recordingName); -httpActionAsync(callback); -} - -/********************************************************** - * - * - * Pause a live recording. - * Pausing a recording suspends silence detection, which will be restarted when the recording is unpaused. Paused time is not included in the accounting for maxDurationSeconds. - *********************************************************/ -private void buildPause(String recordingName) { -reset(); -url = "/recordings/live/" + recordingName + "/pause"; -method = "POST"; -lE.add( HttpResponse.build( 404, "Recording not found") ); -lE.add( HttpResponse.build( 409, "Recording not in session") ); -} - -@Override -public void pause(String recordingName) throws RestException { -buildPause(recordingName); -String json = httpActionSync(); -} - -@Override -public void pause(String recordingName, AriCallback callback) { -buildPause(recordingName); -httpActionAsync(callback); -} - -/********************************************************** - * - * - * Unpause a live recording. - *********************************************************/ -private void buildUnpause(String recordingName) { -reset(); -url = "/recordings/live/" + recordingName + "/pause"; -method = "DELETE"; -lE.add( HttpResponse.build( 404, "Recording not found") ); -lE.add( HttpResponse.build( 409, "Recording not in session") ); -} - -@Override -public void unpause(String recordingName) throws RestException { -buildUnpause(recordingName); -String json = httpActionSync(); -} - -@Override -public void unpause(String recordingName, AriCallback callback) { -buildUnpause(recordingName); -httpActionAsync(callback); -} - -/********************************************************** - * - * - * Stop a live recording and store it. - *********************************************************/ -private void buildStop(String recordingName) { -reset(); -url = "/recordings/live/" + recordingName + "/stop"; -method = "POST"; -lE.add( HttpResponse.build( 404, "Recording not found") ); -} - -@Override -public void stop(String recordingName) throws RestException { -buildStop(recordingName); -String json = httpActionSync(); -} - -@Override -public void stop(String recordingName, AriCallback callback) { -buildStop(recordingName); -httpActionAsync(callback); -} - -/********************************************************** - * Recordings - * - * List recordings that are complete. - *********************************************************/ -private void buildListStored() { -reset(); -url = "/recordings/stored"; -method = "GET"; -} - -@Override -public List listStored() throws RestException { -buildListStored(); -String json = httpActionSync(); -return deserializeJsonAsAbstractList( json, - new TypeReference>() {} ); -} - -@Override -public void listStored(AriCallback> callback) { -buildListStored(); -httpActionAsync(callback, new TypeReference>() {}); -} - -/********************************************************** - * Individual recording - * - * Get a stored recording's details. - *********************************************************/ -private void buildGetStored(String recordingName) { -reset(); -url = "/recordings/stored/" + recordingName + ""; -method = "GET"; -lE.add( HttpResponse.build( 404, "Recording not found") ); -} - -@Override -public StoredRecording getStored(String recordingName) throws RestException { -buildGetStored(recordingName); -String json = httpActionSync(); -return deserializeJson( json, StoredRecording_impl_ari_1_10_0.class ); -} - -@Override -public void getStored(String recordingName, AriCallback callback) { -buildGetStored(recordingName); -httpActionAsync(callback, StoredRecording_impl_ari_1_10_0.class); -} - -/********************************************************** - * Individual recording - * - * Delete a stored recording. - *********************************************************/ -private void buildDeleteStored(String recordingName) { -reset(); -url = "/recordings/stored/" + recordingName + ""; -method = "DELETE"; -lE.add( HttpResponse.build( 404, "Recording not found") ); -} - -@Override -public void deleteStored(String recordingName) throws RestException { -buildDeleteStored(recordingName); -String json = httpActionSync(); -} - -@Override -public void deleteStored(String recordingName, AriCallback callback) { -buildDeleteStored(recordingName); -httpActionAsync(callback); -} - -/********************************************************** - * Copy an individual recording - * - * Copy a stored recording. - *********************************************************/ -private void buildCopyStored(String recordingName, String destinationRecordingName) { -reset(); -url = "/recordings/stored/" + recordingName + "/copy"; -method = "POST"; -lParamQuery.add( HttpParam.build( "destinationRecordingName", destinationRecordingName) ); -lE.add( HttpResponse.build( 404, "Recording not found") ); -lE.add( HttpResponse.build( 409, "A recording with the same name already exists on the system") ); -} - -@Override -public StoredRecording copyStored(String recordingName, String destinationRecordingName) throws RestException { -buildCopyStored(recordingName, destinationRecordingName); -String json = httpActionSync(); -return deserializeJson( json, StoredRecording_impl_ari_1_10_0.class ); -} - -@Override -public void copyStored(String recordingName, String destinationRecordingName, AriCallback callback) { -buildCopyStored(recordingName, destinationRecordingName); -httpActionAsync(callback, StoredRecording_impl_ari_1_10_0.class); -} - -/********************************************************** - * The actual file associated with the stored recording - * - * Get the file associated with the stored recording. - *********************************************************/ -private void buildGetStoredFile(String recordingName) { -reset(); -url = "/recordings/stored/" + recordingName + "/file"; -method = "GET"; -lE.add( HttpResponse.build( 403, "The recording file could not be opened") ); -lE.add( HttpResponse.build( 404, "Recording not found") ); -} - -@Override -public byte[] getStoredFile(String recordingName) throws RestException { -buildGetStoredFile(recordingName); -String json = httpActionSync(); -return deserializeJson( json, byte[].class ); -} - -@Override -public void getStoredFile(String recordingName, AriCallback callback) { -buildGetStoredFile(recordingName); -httpActionAsync(callback, byte[].class); -} - -/** No missing signatures from interface */ -}; - diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/actions/ActionSounds_impl_ari_1_10_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/actions/ActionSounds_impl_ari_1_10_0.java deleted file mode 100644 index 70750ef0..00000000 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/actions/ActionSounds_impl_ari_1_10_0.java +++ /dev/null @@ -1,82 +0,0 @@ -package ch.loway.oss.ari4java.generated.ari_1_10_0.actions; - -// ---------------------------------------------------- -// THIS CLASS WAS GENERATED AUTOMATICALLY -// PLEASE DO NOT EDIT -// Generated on: Tue Dec 19 09:55:49 CET 2017 -// ---------------------------------------------------- - -import ch.loway.oss.ari4java.generated.*; -import java.util.Date; -import java.util.List; -import java.util.Map; -import java.util.ArrayList; -import ch.loway.oss.ari4java.tools.BaseAriAction; -import ch.loway.oss.ari4java.tools.RestException; -import ch.loway.oss.ari4java.tools.AriCallback; -import ch.loway.oss.ari4java.tools.HttpParam; -import ch.loway.oss.ari4java.tools.HttpResponse; -import com.fasterxml.jackson.core.type.TypeReference; -import ch.loway.oss.ari4java.generated.ari_1_10_0.models.*; - -/********************************************************** - * - * Generated by: Apis - *********************************************************/ - - -public class ActionSounds_impl_ari_1_10_0 extends BaseAriAction implements ActionSounds { -/********************************************************** - * Sounds - * - * List all sounds. - *********************************************************/ -private void buildList(String lang, String format) { -reset(); -url = "/sounds"; -method = "GET"; -lParamQuery.add( HttpParam.build( "lang", lang) ); -lParamQuery.add( HttpParam.build( "format", format) ); -} - -@Override -public List list(String lang, String format) throws RestException { -buildList(lang, format); -String json = httpActionSync(); -return deserializeJsonAsAbstractList( json, - new TypeReference>() {} ); -} - -@Override -public void list(String lang, String format, AriCallback> callback) { -buildList(lang, format); -httpActionAsync(callback, new TypeReference>() {}); -} - -/********************************************************** - * Individual sound - * - * Get a sound's details. - *********************************************************/ -private void buildGet(String soundId) { -reset(); -url = "/sounds/" + soundId + ""; -method = "GET"; -} - -@Override -public Sound get(String soundId) throws RestException { -buildGet(soundId); -String json = httpActionSync(); -return deserializeJson( json, Sound_impl_ari_1_10_0.class ); -} - -@Override -public void get(String soundId, AriCallback callback) { -buildGet(soundId); -httpActionAsync(callback, Sound_impl_ari_1_10_0.class); -} - -/** No missing signatures from interface */ -}; - diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/models/ApplicationReplaced_impl_ari_1_10_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/models/ApplicationReplaced_impl_ari_1_10_0.java deleted file mode 100644 index 820e70d3..00000000 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/models/ApplicationReplaced_impl_ari_1_10_0.java +++ /dev/null @@ -1,28 +0,0 @@ -package ch.loway.oss.ari4java.generated.ari_1_10_0.models; - -// ---------------------------------------------------- -// THIS CLASS WAS GENERATED AUTOMATICALLY -// PLEASE DO NOT EDIT -// Generated on: Tue Dec 19 09:55:49 CET 2017 -// ---------------------------------------------------- - -import ch.loway.oss.ari4java.generated.*; -import com.fasterxml.jackson.databind.annotation.JsonDeserialize; -import java.util.Date; -import java.util.List; -import java.util.Map; - -/********************************************************** - * Notification that another WebSocket has taken over for an application. - * - * An application may only be subscribed to by a single WebSocket at a time. If multiple WebSockets attempt to subscribe to the same application, the newer WebSocket wins, and the older one receives this event. - * - * Defined in file: events.json - * Generated by: Model - *********************************************************/ - -public class ApplicationReplaced_impl_ari_1_10_0 extends Event_impl_ari_1_10_0 implements ApplicationReplaced, java.io.Serializable { -private static final long serialVersionUID = 1L; -/** No missing signatures from interface */ -} - diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/models/Application_impl_ari_1_10_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/models/Application_impl_ari_1_10_0.java deleted file mode 100644 index 15237141..00000000 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/models/Application_impl_ari_1_10_0.java +++ /dev/null @@ -1,81 +0,0 @@ -package ch.loway.oss.ari4java.generated.ari_1_10_0.models; - -// ---------------------------------------------------- -// THIS CLASS WAS GENERATED AUTOMATICALLY -// PLEASE DO NOT EDIT -// Generated on: Tue Dec 19 09:55:49 CET 2017 -// ---------------------------------------------------- - -import ch.loway.oss.ari4java.generated.*; -import com.fasterxml.jackson.databind.annotation.JsonDeserialize; -import java.util.Date; -import java.util.List; -import java.util.Map; - -/********************************************************** - * Details of a Stasis application - * - * Defined in file: applications.json - * Generated by: Model - *********************************************************/ - -public class Application_impl_ari_1_10_0 implements Application, java.io.Serializable { -private static final long serialVersionUID = 1L; - /** Id's for bridges subscribed to. */ - private List bridge_ids; - public List getBridge_ids() { - return bridge_ids; - } - - @JsonDeserialize( contentAs=String.class ) - public void setBridge_ids(List val ) { - bridge_ids = val; - } - - /** Id's for channels subscribed to. */ - private List channel_ids; - public List getChannel_ids() { - return channel_ids; - } - - @JsonDeserialize( contentAs=String.class ) - public void setChannel_ids(List val ) { - channel_ids = val; - } - - /** Names of the devices subscribed to. */ - private List device_names; - public List getDevice_names() { - return device_names; - } - - @JsonDeserialize( contentAs=String.class ) - public void setDevice_names(List val ) { - device_names = val; - } - - /** {tech}/{resource} for endpoints subscribed to. */ - private List endpoint_ids; - public List getEndpoint_ids() { - return endpoint_ids; - } - - @JsonDeserialize( contentAs=String.class ) - public void setEndpoint_ids(List val ) { - endpoint_ids = val; - } - - /** Name of this application */ - private String name; - public String getName() { - return name; - } - - @JsonDeserialize( as=String.class ) - public void setName(String val ) { - name = val; - } - -/** No missing signatures from interface */ -} - diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/models/AsteriskInfo_impl_ari_1_10_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/models/AsteriskInfo_impl_ari_1_10_0.java deleted file mode 100644 index c93cac6f..00000000 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/models/AsteriskInfo_impl_ari_1_10_0.java +++ /dev/null @@ -1,70 +0,0 @@ -package ch.loway.oss.ari4java.generated.ari_1_10_0.models; - -// ---------------------------------------------------- -// THIS CLASS WAS GENERATED AUTOMATICALLY -// PLEASE DO NOT EDIT -// Generated on: Tue Dec 19 09:55:49 CET 2017 -// ---------------------------------------------------- - -import ch.loway.oss.ari4java.generated.*; -import com.fasterxml.jackson.databind.annotation.JsonDeserialize; -import java.util.Date; -import java.util.List; -import java.util.Map; - -/********************************************************** - * Asterisk system information - * - * Defined in file: asterisk.json - * Generated by: Model - *********************************************************/ - -public class AsteriskInfo_impl_ari_1_10_0 implements AsteriskInfo, java.io.Serializable { -private static final long serialVersionUID = 1L; - /** Info about how Asterisk was built */ - private BuildInfo build; - public BuildInfo getBuild() { - return build; - } - - @JsonDeserialize( as=BuildInfo_impl_ari_1_10_0.class ) - public void setBuild(BuildInfo val ) { - build = val; - } - - /** Info about Asterisk configuration */ - private ConfigInfo config; - public ConfigInfo getConfig() { - return config; - } - - @JsonDeserialize( as=ConfigInfo_impl_ari_1_10_0.class ) - public void setConfig(ConfigInfo val ) { - config = val; - } - - /** Info about Asterisk status */ - private StatusInfo status; - public StatusInfo getStatus() { - return status; - } - - @JsonDeserialize( as=StatusInfo_impl_ari_1_10_0.class ) - public void setStatus(StatusInfo val ) { - status = val; - } - - /** Info about the system running Asterisk */ - private SystemInfo system; - public SystemInfo getSystem() { - return system; - } - - @JsonDeserialize( as=SystemInfo_impl_ari_1_10_0.class ) - public void setSystem(SystemInfo val ) { - system = val; - } - -/** No missing signatures from interface */ -} - diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/models/BridgeAttendedTransfer_impl_ari_1_10_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/models/BridgeAttendedTransfer_impl_ari_1_10_0.java deleted file mode 100644 index 6052260a..00000000 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/models/BridgeAttendedTransfer_impl_ari_1_10_0.java +++ /dev/null @@ -1,202 +0,0 @@ -package ch.loway.oss.ari4java.generated.ari_1_10_0.models; - -// ---------------------------------------------------- -// THIS CLASS WAS GENERATED AUTOMATICALLY -// PLEASE DO NOT EDIT -// Generated on: Tue Dec 19 09:55:49 CET 2017 -// ---------------------------------------------------- - -import ch.loway.oss.ari4java.generated.*; -import com.fasterxml.jackson.databind.annotation.JsonDeserialize; -import java.util.Date; -import java.util.List; -import java.util.Map; - -/********************************************************** - * Notification that an attended transfer has occurred. - * - * Defined in file: events.json - * Generated by: Model - *********************************************************/ - -public class BridgeAttendedTransfer_impl_ari_1_10_0 extends Event_impl_ari_1_10_0 implements BridgeAttendedTransfer, java.io.Serializable { -private static final long serialVersionUID = 1L; - /** Application that has been transferred into */ - private String destination_application; - public String getDestination_application() { - return destination_application; - } - - @JsonDeserialize( as=String.class ) - public void setDestination_application(String val ) { - destination_application = val; - } - - /** Bridge that survived the merge result */ - private String destination_bridge; - public String getDestination_bridge() { - return destination_bridge; - } - - @JsonDeserialize( as=String.class ) - public void setDestination_bridge(String val ) { - destination_bridge = val; - } - - /** First leg of a link transfer result */ - private Channel destination_link_first_leg; - public Channel getDestination_link_first_leg() { - return destination_link_first_leg; - } - - @JsonDeserialize( as=Channel_impl_ari_1_10_0.class ) - public void setDestination_link_first_leg(Channel val ) { - destination_link_first_leg = val; - } - - /** Second leg of a link transfer result */ - private Channel destination_link_second_leg; - public Channel getDestination_link_second_leg() { - return destination_link_second_leg; - } - - @JsonDeserialize( as=Channel_impl_ari_1_10_0.class ) - public void setDestination_link_second_leg(Channel val ) { - destination_link_second_leg = val; - } - - /** Bridge that survived the threeway result */ - private Bridge destination_threeway_bridge; - public Bridge getDestination_threeway_bridge() { - return destination_threeway_bridge; - } - - @JsonDeserialize( as=Bridge_impl_ari_1_10_0.class ) - public void setDestination_threeway_bridge(Bridge val ) { - destination_threeway_bridge = val; - } - - /** Transferer channel that survived the threeway result */ - private Channel destination_threeway_channel; - public Channel getDestination_threeway_channel() { - return destination_threeway_channel; - } - - @JsonDeserialize( as=Channel_impl_ari_1_10_0.class ) - public void setDestination_threeway_channel(Channel val ) { - destination_threeway_channel = val; - } - - /** How the transfer was accomplished */ - private String destination_type; - public String getDestination_type() { - return destination_type; - } - - @JsonDeserialize( as=String.class ) - public void setDestination_type(String val ) { - destination_type = val; - } - - /** Whether the transfer was externally initiated or not */ - private boolean is_external; - public boolean getIs_external() { - return is_external; - } - - @JsonDeserialize( as=boolean.class ) - public void setIs_external(boolean val ) { - is_external = val; - } - - /** The channel that is replacing transferer_first_leg in the swap */ - private Channel replace_channel; - public Channel getReplace_channel() { - return replace_channel; - } - - @JsonDeserialize( as=Channel_impl_ari_1_10_0.class ) - public void setReplace_channel(Channel val ) { - replace_channel = val; - } - - /** The result of the transfer attempt */ - private String result; - public String getResult() { - return result; - } - - @JsonDeserialize( as=String.class ) - public void setResult(String val ) { - result = val; - } - - /** The channel that is being transferred to */ - private Channel transfer_target; - public Channel getTransfer_target() { - return transfer_target; - } - - @JsonDeserialize( as=Channel_impl_ari_1_10_0.class ) - public void setTransfer_target(Channel val ) { - transfer_target = val; - } - - /** The channel that is being transferred */ - private Channel transferee; - public Channel getTransferee() { - return transferee; - } - - @JsonDeserialize( as=Channel_impl_ari_1_10_0.class ) - public void setTransferee(Channel val ) { - transferee = val; - } - - /** First leg of the transferer */ - private Channel transferer_first_leg; - public Channel getTransferer_first_leg() { - return transferer_first_leg; - } - - @JsonDeserialize( as=Channel_impl_ari_1_10_0.class ) - public void setTransferer_first_leg(Channel val ) { - transferer_first_leg = val; - } - - /** Bridge the transferer first leg is in */ - private Bridge transferer_first_leg_bridge; - public Bridge getTransferer_first_leg_bridge() { - return transferer_first_leg_bridge; - } - - @JsonDeserialize( as=Bridge_impl_ari_1_10_0.class ) - public void setTransferer_first_leg_bridge(Bridge val ) { - transferer_first_leg_bridge = val; - } - - /** Second leg of the transferer */ - private Channel transferer_second_leg; - public Channel getTransferer_second_leg() { - return transferer_second_leg; - } - - @JsonDeserialize( as=Channel_impl_ari_1_10_0.class ) - public void setTransferer_second_leg(Channel val ) { - transferer_second_leg = val; - } - - /** Bridge the transferer second leg is in */ - private Bridge transferer_second_leg_bridge; - public Bridge getTransferer_second_leg_bridge() { - return transferer_second_leg_bridge; - } - - @JsonDeserialize( as=Bridge_impl_ari_1_10_0.class ) - public void setTransferer_second_leg_bridge(Bridge val ) { - transferer_second_leg_bridge = val; - } - -/** No missing signatures from interface */ -} - diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/models/BridgeBlindTransfer_impl_ari_1_10_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/models/BridgeBlindTransfer_impl_ari_1_10_0.java deleted file mode 100644 index 52f44353..00000000 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/models/BridgeBlindTransfer_impl_ari_1_10_0.java +++ /dev/null @@ -1,114 +0,0 @@ -package ch.loway.oss.ari4java.generated.ari_1_10_0.models; - -// ---------------------------------------------------- -// THIS CLASS WAS GENERATED AUTOMATICALLY -// PLEASE DO NOT EDIT -// Generated on: Tue Dec 19 09:55:49 CET 2017 -// ---------------------------------------------------- - -import ch.loway.oss.ari4java.generated.*; -import com.fasterxml.jackson.databind.annotation.JsonDeserialize; -import java.util.Date; -import java.util.List; -import java.util.Map; - -/********************************************************** - * Notification that a blind transfer has occurred. - * - * Defined in file: events.json - * Generated by: Model - *********************************************************/ - -public class BridgeBlindTransfer_impl_ari_1_10_0 extends Event_impl_ari_1_10_0 implements BridgeBlindTransfer, java.io.Serializable { -private static final long serialVersionUID = 1L; - /** The bridge being transferred */ - private Bridge bridge; - public Bridge getBridge() { - return bridge; - } - - @JsonDeserialize( as=Bridge_impl_ari_1_10_0.class ) - public void setBridge(Bridge val ) { - bridge = val; - } - - /** The channel performing the blind transfer */ - private Channel channel; - public Channel getChannel() { - return channel; - } - - @JsonDeserialize( as=Channel_impl_ari_1_10_0.class ) - public void setChannel(Channel val ) { - channel = val; - } - - /** The context transferred to */ - private String context; - public String getContext() { - return context; - } - - @JsonDeserialize( as=String.class ) - public void setContext(String val ) { - context = val; - } - - /** The extension transferred to */ - private String exten; - public String getExten() { - return exten; - } - - @JsonDeserialize( as=String.class ) - public void setExten(String val ) { - exten = val; - } - - /** Whether the transfer was externally initiated or not */ - private boolean is_external; - public boolean getIs_external() { - return is_external; - } - - @JsonDeserialize( as=boolean.class ) - public void setIs_external(boolean val ) { - is_external = val; - } - - /** The channel that is replacing transferer when the transferee(s) can not be transferred directly */ - private Channel replace_channel; - public Channel getReplace_channel() { - return replace_channel; - } - - @JsonDeserialize( as=Channel_impl_ari_1_10_0.class ) - public void setReplace_channel(Channel val ) { - replace_channel = val; - } - - /** The result of the transfer attempt */ - private String result; - public String getResult() { - return result; - } - - @JsonDeserialize( as=String.class ) - public void setResult(String val ) { - result = val; - } - - /** The channel that is being transferred */ - private Channel transferee; - public Channel getTransferee() { - return transferee; - } - - @JsonDeserialize( as=Channel_impl_ari_1_10_0.class ) - public void setTransferee(Channel val ) { - transferee = val; - } - -/** No missing signatures from interface */ -} - diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/models/BridgeCreated_impl_ari_1_10_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/models/BridgeCreated_impl_ari_1_10_0.java deleted file mode 100644 index c10633a8..00000000 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/models/BridgeCreated_impl_ari_1_10_0.java +++ /dev/null @@ -1,37 +0,0 @@ -package ch.loway.oss.ari4java.generated.ari_1_10_0.models; - -// ---------------------------------------------------- -// THIS CLASS WAS GENERATED AUTOMATICALLY -// PLEASE DO NOT EDIT -// Generated on: Tue Dec 19 09:55:49 CET 2017 -// ---------------------------------------------------- - -import ch.loway.oss.ari4java.generated.*; -import com.fasterxml.jackson.databind.annotation.JsonDeserialize; -import java.util.Date; -import java.util.List; -import java.util.Map; - -/********************************************************** - * Notification that a bridge has been created. - * - * Defined in file: events.json - * Generated by: Model - *********************************************************/ - -public class BridgeCreated_impl_ari_1_10_0 extends Event_impl_ari_1_10_0 implements BridgeCreated, java.io.Serializable { -private static final long serialVersionUID = 1L; - /** */ - private Bridge bridge; - public Bridge getBridge() { - return bridge; - } - - @JsonDeserialize( as=Bridge_impl_ari_1_10_0.class ) - public void setBridge(Bridge val ) { - bridge = val; - } - -/** No missing signatures from interface */ -} - diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/models/BridgeDestroyed_impl_ari_1_10_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/models/BridgeDestroyed_impl_ari_1_10_0.java deleted file mode 100644 index ae6f2687..00000000 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/models/BridgeDestroyed_impl_ari_1_10_0.java +++ /dev/null @@ -1,37 +0,0 @@ -package ch.loway.oss.ari4java.generated.ari_1_10_0.models; - -// ---------------------------------------------------- -// THIS CLASS WAS GENERATED AUTOMATICALLY -// PLEASE DO NOT EDIT -// Generated on: Tue Dec 19 09:55:49 CET 2017 -// ---------------------------------------------------- - -import ch.loway.oss.ari4java.generated.*; -import com.fasterxml.jackson.databind.annotation.JsonDeserialize; -import java.util.Date; -import java.util.List; -import java.util.Map; - -/********************************************************** - * Notification that a bridge has been destroyed. - * - * Defined in file: events.json - * Generated by: Model - *********************************************************/ - -public class BridgeDestroyed_impl_ari_1_10_0 extends Event_impl_ari_1_10_0 implements BridgeDestroyed, java.io.Serializable { -private static final long serialVersionUID = 1L; - /** */ - private Bridge bridge; - public Bridge getBridge() { - return bridge; - } - - @JsonDeserialize( as=Bridge_impl_ari_1_10_0.class ) - public void setBridge(Bridge val ) { - bridge = val; - } - -/** No missing signatures from interface */ -} - diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/models/BridgeMerged_impl_ari_1_10_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/models/BridgeMerged_impl_ari_1_10_0.java deleted file mode 100644 index ad5ed430..00000000 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/models/BridgeMerged_impl_ari_1_10_0.java +++ /dev/null @@ -1,48 +0,0 @@ -package ch.loway.oss.ari4java.generated.ari_1_10_0.models; - -// ---------------------------------------------------- -// THIS CLASS WAS GENERATED AUTOMATICALLY -// PLEASE DO NOT EDIT -// Generated on: Tue Dec 19 09:55:49 CET 2017 -// ---------------------------------------------------- - -import ch.loway.oss.ari4java.generated.*; -import com.fasterxml.jackson.databind.annotation.JsonDeserialize; -import java.util.Date; -import java.util.List; -import java.util.Map; - -/********************************************************** - * Notification that one bridge has merged into another. - * - * Defined in file: events.json - * Generated by: Model - *********************************************************/ - -public class BridgeMerged_impl_ari_1_10_0 extends Event_impl_ari_1_10_0 implements BridgeMerged, java.io.Serializable { -private static final long serialVersionUID = 1L; - /** */ - private Bridge bridge; - public Bridge getBridge() { - return bridge; - } - - @JsonDeserialize( as=Bridge_impl_ari_1_10_0.class ) - public void setBridge(Bridge val ) { - bridge = val; - } - - /** */ - private Bridge bridge_from; - public Bridge getBridge_from() { - return bridge_from; - } - - @JsonDeserialize( as=Bridge_impl_ari_1_10_0.class ) - public void setBridge_from(Bridge val ) { - bridge_from = val; - } - -/** No missing signatures from interface */ -} - diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/models/Bridge_impl_ari_1_10_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/models/Bridge_impl_ari_1_10_0.java deleted file mode 100644 index 7211d2ac..00000000 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/models/Bridge_impl_ari_1_10_0.java +++ /dev/null @@ -1,140 +0,0 @@ -package ch.loway.oss.ari4java.generated.ari_1_10_0.models; - -// ---------------------------------------------------- -// THIS CLASS WAS GENERATED AUTOMATICALLY -// PLEASE DO NOT EDIT -// Generated on: Tue Dec 19 09:55:49 CET 2017 -// ---------------------------------------------------- - -import ch.loway.oss.ari4java.generated.*; -import com.fasterxml.jackson.databind.annotation.JsonDeserialize; -import java.util.Date; -import java.util.List; -import java.util.Map; - -/********************************************************** - * The merging of media from one or more channels. - * - * Everyone on the bridge receives the same audio. - * - * Defined in file: bridges.json - * Generated by: Model - *********************************************************/ - -public class Bridge_impl_ari_1_10_0 implements Bridge, java.io.Serializable { -private static final long serialVersionUID = 1L; - /** Bridging class */ - private String bridge_class; - public String getBridge_class() { - return bridge_class; - } - - @JsonDeserialize( as=String.class ) - public void setBridge_class(String val ) { - bridge_class = val; - } - - /** Type of bridge technology */ - private String bridge_type; - public String getBridge_type() { - return bridge_type; - } - - @JsonDeserialize( as=String.class ) - public void setBridge_type(String val ) { - bridge_type = val; - } - - /** Ids of channels participating in this bridge */ - private List channels; - public List getChannels() { - return channels; - } - - @JsonDeserialize( contentAs=String.class ) - public void setChannels(List val ) { - channels = val; - } - - /** Entity that created the bridge */ - private String creator; - public String getCreator() { - return creator; - } - - @JsonDeserialize( as=String.class ) - public void setCreator(String val ) { - creator = val; - } - - /** Unique identifier for this bridge */ - private String id; - public String getId() { - return id; - } - - @JsonDeserialize( as=String.class ) - public void setId(String val ) { - id = val; - } - - /** Name the creator gave the bridge */ - private String name; - public String getName() { - return name; - } - - @JsonDeserialize( as=String.class ) - public void setName(String val ) { - name = val; - } - - /** Name of the current bridging technology */ - private String technology; - public String getTechnology() { - return technology; - } - - @JsonDeserialize( as=String.class ) - public void setTechnology(String val ) { - technology = val; - } - -/********************************************************** - * The video mode the bridge is using. One of 'none', 'talker', or 'single'. - * - * @since ari_2_0_0 - *********************************************************/ - public String getVideo_mode(){ - throw new UnsupportedOperationException("Method availble from ..."); -}; - -/********************************************************** - * The ID of the channel that is the source of video in this bridge, if one exists. - * - * @since ari_2_0_0 - *********************************************************/ - public String getVideo_source_id(){ - throw new UnsupportedOperationException("Method availble from ..."); -}; - -/********************************************************** - * The video mode the bridge is using. One of 'none', 'talker', or 'single'. - * - * @since ari_2_0_0 - *********************************************************/ - public void setVideo_mode(String val ){ - throw new UnsupportedOperationException("Method availble from ..."); -}; - -/********************************************************** - * The ID of the channel that is the source of video in this bridge, if one exists. - * - * @since ari_2_0_0 - *********************************************************/ - public void setVideo_source_id(String val ){ - throw new UnsupportedOperationException("Method availble from ..."); -}; - -} - diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/models/BuildInfo_impl_ari_1_10_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/models/BuildInfo_impl_ari_1_10_0.java deleted file mode 100644 index 086f096e..00000000 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/models/BuildInfo_impl_ari_1_10_0.java +++ /dev/null @@ -1,92 +0,0 @@ -package ch.loway.oss.ari4java.generated.ari_1_10_0.models; - -// ---------------------------------------------------- -// THIS CLASS WAS GENERATED AUTOMATICALLY -// PLEASE DO NOT EDIT -// Generated on: Tue Dec 19 09:55:49 CET 2017 -// ---------------------------------------------------- - -import ch.loway.oss.ari4java.generated.*; -import com.fasterxml.jackson.databind.annotation.JsonDeserialize; -import java.util.Date; -import java.util.List; -import java.util.Map; - -/********************************************************** - * Info about how Asterisk was built - * - * Defined in file: asterisk.json - * Generated by: Model - *********************************************************/ - -public class BuildInfo_impl_ari_1_10_0 implements BuildInfo, java.io.Serializable { -private static final long serialVersionUID = 1L; - /** Date and time when Asterisk was built. */ - private String date; - public String getDate() { - return date; - } - - @JsonDeserialize( as=String.class ) - public void setDate(String val ) { - date = val; - } - - /** Kernel version Asterisk was built on. */ - private String kernel; - public String getKernel() { - return kernel; - } - - @JsonDeserialize( as=String.class ) - public void setKernel(String val ) { - kernel = val; - } - - /** Machine architecture (x86_64, i686, ppc, etc.) */ - private String machine; - public String getMachine() { - return machine; - } - - @JsonDeserialize( as=String.class ) - public void setMachine(String val ) { - machine = val; - } - - /** Compile time options, or empty string if default. */ - private String options; - public String getOptions() { - return options; - } - - @JsonDeserialize( as=String.class ) - public void setOptions(String val ) { - options = val; - } - - /** OS Asterisk was built on. */ - private String os; - public String getOs() { - return os; - } - - @JsonDeserialize( as=String.class ) - public void setOs(String val ) { - os = val; - } - - /** Username that build Asterisk */ - private String user; - public String getUser() { - return user; - } - - @JsonDeserialize( as=String.class ) - public void setUser(String val ) { - user = val; - } - -/** No missing signatures from interface */ -} - diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/models/CallerID_impl_ari_1_10_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/models/CallerID_impl_ari_1_10_0.java deleted file mode 100644 index 387ff946..00000000 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/models/CallerID_impl_ari_1_10_0.java +++ /dev/null @@ -1,48 +0,0 @@ -package ch.loway.oss.ari4java.generated.ari_1_10_0.models; - -// ---------------------------------------------------- -// THIS CLASS WAS GENERATED AUTOMATICALLY -// PLEASE DO NOT EDIT -// Generated on: Tue Dec 19 09:55:49 CET 2017 -// ---------------------------------------------------- - -import ch.loway.oss.ari4java.generated.*; -import com.fasterxml.jackson.databind.annotation.JsonDeserialize; -import java.util.Date; -import java.util.List; -import java.util.Map; - -/********************************************************** - * Caller identification - * - * Defined in file: channels.json - * Generated by: Model - *********************************************************/ - -public class CallerID_impl_ari_1_10_0 implements CallerID, java.io.Serializable { -private static final long serialVersionUID = 1L; - /** */ - private String name; - public String getName() { - return name; - } - - @JsonDeserialize( as=String.class ) - public void setName(String val ) { - name = val; - } - - /** */ - private String number; - public String getNumber() { - return number; - } - - @JsonDeserialize( as=String.class ) - public void setNumber(String val ) { - number = val; - } - -/** No missing signatures from interface */ -} - diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/models/ChannelCallerId_impl_ari_1_10_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/models/ChannelCallerId_impl_ari_1_10_0.java deleted file mode 100644 index 3ce36c70..00000000 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/models/ChannelCallerId_impl_ari_1_10_0.java +++ /dev/null @@ -1,59 +0,0 @@ -package ch.loway.oss.ari4java.generated.ari_1_10_0.models; - -// ---------------------------------------------------- -// THIS CLASS WAS GENERATED AUTOMATICALLY -// PLEASE DO NOT EDIT -// Generated on: Tue Dec 19 09:55:49 CET 2017 -// ---------------------------------------------------- - -import ch.loway.oss.ari4java.generated.*; -import com.fasterxml.jackson.databind.annotation.JsonDeserialize; -import java.util.Date; -import java.util.List; -import java.util.Map; - -/********************************************************** - * Channel changed Caller ID. - * - * Defined in file: events.json - * Generated by: Model - *********************************************************/ - -public class ChannelCallerId_impl_ari_1_10_0 extends Event_impl_ari_1_10_0 implements ChannelCallerId, java.io.Serializable { -private static final long serialVersionUID = 1L; - /** The integer representation of the Caller Presentation value. */ - private int caller_presentation; - public int getCaller_presentation() { - return caller_presentation; - } - - @JsonDeserialize( as=int.class ) - public void setCaller_presentation(int val ) { - caller_presentation = val; - } - - /** The text representation of the Caller Presentation value. */ - private String caller_presentation_txt; - public String getCaller_presentation_txt() { - return caller_presentation_txt; - } - - @JsonDeserialize( as=String.class ) - public void setCaller_presentation_txt(String val ) { - caller_presentation_txt = val; - } - - /** The channel that changed Caller ID. */ - private Channel channel; - public Channel getChannel() { - return channel; - } - - @JsonDeserialize( as=Channel_impl_ari_1_10_0.class ) - public void setChannel(Channel val ) { - channel = val; - } - -/** No missing signatures from interface */ -} - diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/models/ChannelConnectedLine_impl_ari_1_10_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/models/ChannelConnectedLine_impl_ari_1_10_0.java deleted file mode 100644 index 687518e9..00000000 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/models/ChannelConnectedLine_impl_ari_1_10_0.java +++ /dev/null @@ -1,37 +0,0 @@ -package ch.loway.oss.ari4java.generated.ari_1_10_0.models; - -// ---------------------------------------------------- -// THIS CLASS WAS GENERATED AUTOMATICALLY -// PLEASE DO NOT EDIT -// Generated on: Tue Dec 19 09:55:49 CET 2017 -// ---------------------------------------------------- - -import ch.loway.oss.ari4java.generated.*; -import com.fasterxml.jackson.databind.annotation.JsonDeserialize; -import java.util.Date; -import java.util.List; -import java.util.Map; - -/********************************************************** - * Channel changed Connected Line. - * - * Defined in file: events.json - * Generated by: Model - *********************************************************/ - -public class ChannelConnectedLine_impl_ari_1_10_0 extends Event_impl_ari_1_10_0 implements ChannelConnectedLine, java.io.Serializable { -private static final long serialVersionUID = 1L; - /** The channel whose connected line has changed. */ - private Channel channel; - public Channel getChannel() { - return channel; - } - - @JsonDeserialize( as=Channel_impl_ari_1_10_0.class ) - public void setChannel(Channel val ) { - channel = val; - } - -/** No missing signatures from interface */ -} - diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/models/ChannelCreated_impl_ari_1_10_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/models/ChannelCreated_impl_ari_1_10_0.java deleted file mode 100644 index 2de48673..00000000 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/models/ChannelCreated_impl_ari_1_10_0.java +++ /dev/null @@ -1,37 +0,0 @@ -package ch.loway.oss.ari4java.generated.ari_1_10_0.models; - -// ---------------------------------------------------- -// THIS CLASS WAS GENERATED AUTOMATICALLY -// PLEASE DO NOT EDIT -// Generated on: Tue Dec 19 09:55:49 CET 2017 -// ---------------------------------------------------- - -import ch.loway.oss.ari4java.generated.*; -import com.fasterxml.jackson.databind.annotation.JsonDeserialize; -import java.util.Date; -import java.util.List; -import java.util.Map; - -/********************************************************** - * Notification that a channel has been created. - * - * Defined in file: events.json - * Generated by: Model - *********************************************************/ - -public class ChannelCreated_impl_ari_1_10_0 extends Event_impl_ari_1_10_0 implements ChannelCreated, java.io.Serializable { -private static final long serialVersionUID = 1L; - /** */ - private Channel channel; - public Channel getChannel() { - return channel; - } - - @JsonDeserialize( as=Channel_impl_ari_1_10_0.class ) - public void setChannel(Channel val ) { - channel = val; - } - -/** No missing signatures from interface */ -} - diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/models/ChannelDestroyed_impl_ari_1_10_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/models/ChannelDestroyed_impl_ari_1_10_0.java deleted file mode 100644 index b3fbcc37..00000000 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/models/ChannelDestroyed_impl_ari_1_10_0.java +++ /dev/null @@ -1,59 +0,0 @@ -package ch.loway.oss.ari4java.generated.ari_1_10_0.models; - -// ---------------------------------------------------- -// THIS CLASS WAS GENERATED AUTOMATICALLY -// PLEASE DO NOT EDIT -// Generated on: Tue Dec 19 09:55:49 CET 2017 -// ---------------------------------------------------- - -import ch.loway.oss.ari4java.generated.*; -import com.fasterxml.jackson.databind.annotation.JsonDeserialize; -import java.util.Date; -import java.util.List; -import java.util.Map; - -/********************************************************** - * Notification that a channel has been destroyed. - * - * Defined in file: events.json - * Generated by: Model - *********************************************************/ - -public class ChannelDestroyed_impl_ari_1_10_0 extends Event_impl_ari_1_10_0 implements ChannelDestroyed, java.io.Serializable { -private static final long serialVersionUID = 1L; - /** Integer representation of the cause of the hangup */ - private int cause; - public int getCause() { - return cause; - } - - @JsonDeserialize( as=int.class ) - public void setCause(int val ) { - cause = val; - } - - /** Text representation of the cause of the hangup */ - private String cause_txt; - public String getCause_txt() { - return cause_txt; - } - - @JsonDeserialize( as=String.class ) - public void setCause_txt(String val ) { - cause_txt = val; - } - - /** */ - private Channel channel; - public Channel getChannel() { - return channel; - } - - @JsonDeserialize( as=Channel_impl_ari_1_10_0.class ) - public void setChannel(Channel val ) { - channel = val; - } - -/** No missing signatures from interface */ -} - diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/models/ChannelDialplan_impl_ari_1_10_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/models/ChannelDialplan_impl_ari_1_10_0.java deleted file mode 100644 index ba3ee3c7..00000000 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/models/ChannelDialplan_impl_ari_1_10_0.java +++ /dev/null @@ -1,59 +0,0 @@ -package ch.loway.oss.ari4java.generated.ari_1_10_0.models; - -// ---------------------------------------------------- -// THIS CLASS WAS GENERATED AUTOMATICALLY -// PLEASE DO NOT EDIT -// Generated on: Tue Dec 19 09:55:49 CET 2017 -// ---------------------------------------------------- - -import ch.loway.oss.ari4java.generated.*; -import com.fasterxml.jackson.databind.annotation.JsonDeserialize; -import java.util.Date; -import java.util.List; -import java.util.Map; - -/********************************************************** - * Channel changed location in the dialplan. - * - * Defined in file: events.json - * Generated by: Model - *********************************************************/ - -public class ChannelDialplan_impl_ari_1_10_0 extends Event_impl_ari_1_10_0 implements ChannelDialplan, java.io.Serializable { -private static final long serialVersionUID = 1L; - /** The channel that changed dialplan location. */ - private Channel channel; - public Channel getChannel() { - return channel; - } - - @JsonDeserialize( as=Channel_impl_ari_1_10_0.class ) - public void setChannel(Channel val ) { - channel = val; - } - - /** The application about to be executed. */ - private String dialplan_app; - public String getDialplan_app() { - return dialplan_app; - } - - @JsonDeserialize( as=String.class ) - public void setDialplan_app(String val ) { - dialplan_app = val; - } - - /** The data to be passed to the application. */ - private String dialplan_app_data; - public String getDialplan_app_data() { - return dialplan_app_data; - } - - @JsonDeserialize( as=String.class ) - public void setDialplan_app_data(String val ) { - dialplan_app_data = val; - } - -/** No missing signatures from interface */ -} - diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/models/ChannelDtmfReceived_impl_ari_1_10_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/models/ChannelDtmfReceived_impl_ari_1_10_0.java deleted file mode 100644 index 7dcbaf81..00000000 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/models/ChannelDtmfReceived_impl_ari_1_10_0.java +++ /dev/null @@ -1,61 +0,0 @@ -package ch.loway.oss.ari4java.generated.ari_1_10_0.models; - -// ---------------------------------------------------- -// THIS CLASS WAS GENERATED AUTOMATICALLY -// PLEASE DO NOT EDIT -// Generated on: Tue Dec 19 09:55:49 CET 2017 -// ---------------------------------------------------- - -import ch.loway.oss.ari4java.generated.*; -import com.fasterxml.jackson.databind.annotation.JsonDeserialize; -import java.util.Date; -import java.util.List; -import java.util.Map; - -/********************************************************** - * DTMF received on a channel. - * - * This event is sent when the DTMF ends. There is no notification about the start of DTMF - * - * Defined in file: events.json - * Generated by: Model - *********************************************************/ - -public class ChannelDtmfReceived_impl_ari_1_10_0 extends Event_impl_ari_1_10_0 implements ChannelDtmfReceived, java.io.Serializable { -private static final long serialVersionUID = 1L; - /** The channel on which DTMF was received */ - private Channel channel; - public Channel getChannel() { - return channel; - } - - @JsonDeserialize( as=Channel_impl_ari_1_10_0.class ) - public void setChannel(Channel val ) { - channel = val; - } - - /** DTMF digit received (0-9, A-E, # or *) */ - private String digit; - public String getDigit() { - return digit; - } - - @JsonDeserialize( as=String.class ) - public void setDigit(String val ) { - digit = val; - } - - /** Number of milliseconds DTMF was received */ - private int duration_ms; - public int getDuration_ms() { - return duration_ms; - } - - @JsonDeserialize( as=int.class ) - public void setDuration_ms(int val ) { - duration_ms = val; - } - -/** No missing signatures from interface */ -} - diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/models/ChannelEnteredBridge_impl_ari_1_10_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/models/ChannelEnteredBridge_impl_ari_1_10_0.java deleted file mode 100644 index a30834d4..00000000 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/models/ChannelEnteredBridge_impl_ari_1_10_0.java +++ /dev/null @@ -1,48 +0,0 @@ -package ch.loway.oss.ari4java.generated.ari_1_10_0.models; - -// ---------------------------------------------------- -// THIS CLASS WAS GENERATED AUTOMATICALLY -// PLEASE DO NOT EDIT -// Generated on: Tue Dec 19 09:55:49 CET 2017 -// ---------------------------------------------------- - -import ch.loway.oss.ari4java.generated.*; -import com.fasterxml.jackson.databind.annotation.JsonDeserialize; -import java.util.Date; -import java.util.List; -import java.util.Map; - -/********************************************************** - * Notification that a channel has entered a bridge. - * - * Defined in file: events.json - * Generated by: Model - *********************************************************/ - -public class ChannelEnteredBridge_impl_ari_1_10_0 extends Event_impl_ari_1_10_0 implements ChannelEnteredBridge, java.io.Serializable { -private static final long serialVersionUID = 1L; - /** */ - private Bridge bridge; - public Bridge getBridge() { - return bridge; - } - - @JsonDeserialize( as=Bridge_impl_ari_1_10_0.class ) - public void setBridge(Bridge val ) { - bridge = val; - } - - /** */ - private Channel channel; - public Channel getChannel() { - return channel; - } - - @JsonDeserialize( as=Channel_impl_ari_1_10_0.class ) - public void setChannel(Channel val ) { - channel = val; - } - -/** No missing signatures from interface */ -} - diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/models/ChannelHangupRequest_impl_ari_1_10_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/models/ChannelHangupRequest_impl_ari_1_10_0.java deleted file mode 100644 index d2b13e3d..00000000 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/models/ChannelHangupRequest_impl_ari_1_10_0.java +++ /dev/null @@ -1,59 +0,0 @@ -package ch.loway.oss.ari4java.generated.ari_1_10_0.models; - -// ---------------------------------------------------- -// THIS CLASS WAS GENERATED AUTOMATICALLY -// PLEASE DO NOT EDIT -// Generated on: Tue Dec 19 09:55:49 CET 2017 -// ---------------------------------------------------- - -import ch.loway.oss.ari4java.generated.*; -import com.fasterxml.jackson.databind.annotation.JsonDeserialize; -import java.util.Date; -import java.util.List; -import java.util.Map; - -/********************************************************** - * A hangup was requested on the channel. - * - * Defined in file: events.json - * Generated by: Model - *********************************************************/ - -public class ChannelHangupRequest_impl_ari_1_10_0 extends Event_impl_ari_1_10_0 implements ChannelHangupRequest, java.io.Serializable { -private static final long serialVersionUID = 1L; - /** Integer representation of the cause of the hangup. */ - private int cause; - public int getCause() { - return cause; - } - - @JsonDeserialize( as=int.class ) - public void setCause(int val ) { - cause = val; - } - - /** The channel on which the hangup was requested. */ - private Channel channel; - public Channel getChannel() { - return channel; - } - - @JsonDeserialize( as=Channel_impl_ari_1_10_0.class ) - public void setChannel(Channel val ) { - channel = val; - } - - /** Whether the hangup request was a soft hangup request. */ - private boolean soft; - public boolean getSoft() { - return soft; - } - - @JsonDeserialize( as=boolean.class ) - public void setSoft(boolean val ) { - soft = val; - } - -/** No missing signatures from interface */ -} - diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/models/ChannelHold_impl_ari_1_10_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/models/ChannelHold_impl_ari_1_10_0.java deleted file mode 100644 index 230f7d8b..00000000 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/models/ChannelHold_impl_ari_1_10_0.java +++ /dev/null @@ -1,48 +0,0 @@ -package ch.loway.oss.ari4java.generated.ari_1_10_0.models; - -// ---------------------------------------------------- -// THIS CLASS WAS GENERATED AUTOMATICALLY -// PLEASE DO NOT EDIT -// Generated on: Tue Dec 19 09:55:49 CET 2017 -// ---------------------------------------------------- - -import ch.loway.oss.ari4java.generated.*; -import com.fasterxml.jackson.databind.annotation.JsonDeserialize; -import java.util.Date; -import java.util.List; -import java.util.Map; - -/********************************************************** - * A channel initiated a media hold. - * - * Defined in file: events.json - * Generated by: Model - *********************************************************/ - -public class ChannelHold_impl_ari_1_10_0 extends Event_impl_ari_1_10_0 implements ChannelHold, java.io.Serializable { -private static final long serialVersionUID = 1L; - /** The channel that initiated the hold event. */ - private Channel channel; - public Channel getChannel() { - return channel; - } - - @JsonDeserialize( as=Channel_impl_ari_1_10_0.class ) - public void setChannel(Channel val ) { - channel = val; - } - - /** The music on hold class that the initiator requested. */ - private String musicclass; - public String getMusicclass() { - return musicclass; - } - - @JsonDeserialize( as=String.class ) - public void setMusicclass(String val ) { - musicclass = val; - } - -/** No missing signatures from interface */ -} - diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/models/ChannelLeftBridge_impl_ari_1_10_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/models/ChannelLeftBridge_impl_ari_1_10_0.java deleted file mode 100644 index 106393a8..00000000 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/models/ChannelLeftBridge_impl_ari_1_10_0.java +++ /dev/null @@ -1,48 +0,0 @@ -package ch.loway.oss.ari4java.generated.ari_1_10_0.models; - -// ---------------------------------------------------- -// THIS CLASS WAS GENERATED AUTOMATICALLY -// PLEASE DO NOT EDIT -// Generated on: Tue Dec 19 09:55:49 CET 2017 -// ---------------------------------------------------- - -import ch.loway.oss.ari4java.generated.*; -import com.fasterxml.jackson.databind.annotation.JsonDeserialize; -import java.util.Date; -import java.util.List; -import java.util.Map; - -/********************************************************** - * Notification that a channel has left a bridge. - * - * Defined in file: events.json - * Generated by: Model - *********************************************************/ - -public class ChannelLeftBridge_impl_ari_1_10_0 extends Event_impl_ari_1_10_0 implements ChannelLeftBridge, java.io.Serializable { -private static final long serialVersionUID = 1L; - /** */ - private Bridge bridge; - public Bridge getBridge() { - return bridge; - } - - @JsonDeserialize( as=Bridge_impl_ari_1_10_0.class ) - public void setBridge(Bridge val ) { - bridge = val; - } - - /** */ - private Channel channel; - public Channel getChannel() { - return channel; - } - - @JsonDeserialize( as=Channel_impl_ari_1_10_0.class ) - public void setChannel(Channel val ) { - channel = val; - } - -/** No missing signatures from interface */ -} - diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/models/ChannelStateChange_impl_ari_1_10_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/models/ChannelStateChange_impl_ari_1_10_0.java deleted file mode 100644 index ee10d49e..00000000 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/models/ChannelStateChange_impl_ari_1_10_0.java +++ /dev/null @@ -1,37 +0,0 @@ -package ch.loway.oss.ari4java.generated.ari_1_10_0.models; - -// ---------------------------------------------------- -// THIS CLASS WAS GENERATED AUTOMATICALLY -// PLEASE DO NOT EDIT -// Generated on: Tue Dec 19 09:55:49 CET 2017 -// ---------------------------------------------------- - -import ch.loway.oss.ari4java.generated.*; -import com.fasterxml.jackson.databind.annotation.JsonDeserialize; -import java.util.Date; -import java.util.List; -import java.util.Map; - -/********************************************************** - * Notification of a channel's state change. - * - * Defined in file: events.json - * Generated by: Model - *********************************************************/ - -public class ChannelStateChange_impl_ari_1_10_0 extends Event_impl_ari_1_10_0 implements ChannelStateChange, java.io.Serializable { -private static final long serialVersionUID = 1L; - /** */ - private Channel channel; - public Channel getChannel() { - return channel; - } - - @JsonDeserialize( as=Channel_impl_ari_1_10_0.class ) - public void setChannel(Channel val ) { - channel = val; - } - -/** No missing signatures from interface */ -} - diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/models/ChannelTalkingFinished_impl_ari_1_10_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/models/ChannelTalkingFinished_impl_ari_1_10_0.java deleted file mode 100644 index f4b5e17d..00000000 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/models/ChannelTalkingFinished_impl_ari_1_10_0.java +++ /dev/null @@ -1,48 +0,0 @@ -package ch.loway.oss.ari4java.generated.ari_1_10_0.models; - -// ---------------------------------------------------- -// THIS CLASS WAS GENERATED AUTOMATICALLY -// PLEASE DO NOT EDIT -// Generated on: Tue Dec 19 09:55:49 CET 2017 -// ---------------------------------------------------- - -import ch.loway.oss.ari4java.generated.*; -import com.fasterxml.jackson.databind.annotation.JsonDeserialize; -import java.util.Date; -import java.util.List; -import java.util.Map; - -/********************************************************** - * Talking is no longer detected on the channel. - * - * Defined in file: events.json - * Generated by: Model - *********************************************************/ - -public class ChannelTalkingFinished_impl_ari_1_10_0 extends Event_impl_ari_1_10_0 implements ChannelTalkingFinished, java.io.Serializable { -private static final long serialVersionUID = 1L; - /** The channel on which talking completed. */ - private Channel channel; - public Channel getChannel() { - return channel; - } - - @JsonDeserialize( as=Channel_impl_ari_1_10_0.class ) - public void setChannel(Channel val ) { - channel = val; - } - - /** The length of time, in milliseconds, that talking was detected on the channel */ - private int duration; - public int getDuration() { - return duration; - } - - @JsonDeserialize( as=int.class ) - public void setDuration(int val ) { - duration = val; - } - -/** No missing signatures from interface */ -} - diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/models/ChannelTalkingStarted_impl_ari_1_10_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/models/ChannelTalkingStarted_impl_ari_1_10_0.java deleted file mode 100644 index 4f57baaf..00000000 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/models/ChannelTalkingStarted_impl_ari_1_10_0.java +++ /dev/null @@ -1,37 +0,0 @@ -package ch.loway.oss.ari4java.generated.ari_1_10_0.models; - -// ---------------------------------------------------- -// THIS CLASS WAS GENERATED AUTOMATICALLY -// PLEASE DO NOT EDIT -// Generated on: Tue Dec 19 09:55:49 CET 2017 -// ---------------------------------------------------- - -import ch.loway.oss.ari4java.generated.*; -import com.fasterxml.jackson.databind.annotation.JsonDeserialize; -import java.util.Date; -import java.util.List; -import java.util.Map; - -/********************************************************** - * Talking was detected on the channel. - * - * Defined in file: events.json - * Generated by: Model - *********************************************************/ - -public class ChannelTalkingStarted_impl_ari_1_10_0 extends Event_impl_ari_1_10_0 implements ChannelTalkingStarted, java.io.Serializable { -private static final long serialVersionUID = 1L; - /** The channel on which talking started. */ - private Channel channel; - public Channel getChannel() { - return channel; - } - - @JsonDeserialize( as=Channel_impl_ari_1_10_0.class ) - public void setChannel(Channel val ) { - channel = val; - } - -/** No missing signatures from interface */ -} - diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/models/ChannelUnhold_impl_ari_1_10_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/models/ChannelUnhold_impl_ari_1_10_0.java deleted file mode 100644 index ec39ed0a..00000000 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/models/ChannelUnhold_impl_ari_1_10_0.java +++ /dev/null @@ -1,37 +0,0 @@ -package ch.loway.oss.ari4java.generated.ari_1_10_0.models; - -// ---------------------------------------------------- -// THIS CLASS WAS GENERATED AUTOMATICALLY -// PLEASE DO NOT EDIT -// Generated on: Tue Dec 19 09:55:49 CET 2017 -// ---------------------------------------------------- - -import ch.loway.oss.ari4java.generated.*; -import com.fasterxml.jackson.databind.annotation.JsonDeserialize; -import java.util.Date; -import java.util.List; -import java.util.Map; - -/********************************************************** - * A channel initiated a media unhold. - * - * Defined in file: events.json - * Generated by: Model - *********************************************************/ - -public class ChannelUnhold_impl_ari_1_10_0 extends Event_impl_ari_1_10_0 implements ChannelUnhold, java.io.Serializable { -private static final long serialVersionUID = 1L; - /** The channel that initiated the unhold event. */ - private Channel channel; - public Channel getChannel() { - return channel; - } - - @JsonDeserialize( as=Channel_impl_ari_1_10_0.class ) - public void setChannel(Channel val ) { - channel = val; - } - -/** No missing signatures from interface */ -} - diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/models/ChannelUserevent_impl_ari_1_10_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/models/ChannelUserevent_impl_ari_1_10_0.java deleted file mode 100644 index 4ab6e986..00000000 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/models/ChannelUserevent_impl_ari_1_10_0.java +++ /dev/null @@ -1,81 +0,0 @@ -package ch.loway.oss.ari4java.generated.ari_1_10_0.models; - -// ---------------------------------------------------- -// THIS CLASS WAS GENERATED AUTOMATICALLY -// PLEASE DO NOT EDIT -// Generated on: Tue Dec 19 09:55:49 CET 2017 -// ---------------------------------------------------- - -import ch.loway.oss.ari4java.generated.*; -import com.fasterxml.jackson.databind.annotation.JsonDeserialize; -import java.util.Date; -import java.util.List; -import java.util.Map; - -/********************************************************** - * User-generated event with additional user-defined fields in the object. - * - * Defined in file: events.json - * Generated by: Model - *********************************************************/ - -public class ChannelUserevent_impl_ari_1_10_0 extends Event_impl_ari_1_10_0 implements ChannelUserevent, java.io.Serializable { -private static final long serialVersionUID = 1L; - /** A bridge that is signaled with the user event. */ - private Bridge bridge; - public Bridge getBridge() { - return bridge; - } - - @JsonDeserialize( as=Bridge_impl_ari_1_10_0.class ) - public void setBridge(Bridge val ) { - bridge = val; - } - - /** A channel that is signaled with the user event. */ - private Channel channel; - public Channel getChannel() { - return channel; - } - - @JsonDeserialize( as=Channel_impl_ari_1_10_0.class ) - public void setChannel(Channel val ) { - channel = val; - } - - /** A endpoint that is signaled with the user event. */ - private Endpoint endpoint; - public Endpoint getEndpoint() { - return endpoint; - } - - @JsonDeserialize( as=Endpoint_impl_ari_1_10_0.class ) - public void setEndpoint(Endpoint val ) { - endpoint = val; - } - - /** The name of the user event. */ - private String eventname; - public String getEventname() { - return eventname; - } - - @JsonDeserialize( as=String.class ) - public void setEventname(String val ) { - eventname = val; - } - - /** Custom Userevent data */ - private String userevent; - public String getUserevent() { - return userevent; - } - - @JsonDeserialize( as=String.class ) - public void setUserevent(String val ) { - userevent = val; - } - -/** No missing signatures from interface */ -} - diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/models/ChannelVarset_impl_ari_1_10_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/models/ChannelVarset_impl_ari_1_10_0.java deleted file mode 100644 index 539566ce..00000000 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/models/ChannelVarset_impl_ari_1_10_0.java +++ /dev/null @@ -1,61 +0,0 @@ -package ch.loway.oss.ari4java.generated.ari_1_10_0.models; - -// ---------------------------------------------------- -// THIS CLASS WAS GENERATED AUTOMATICALLY -// PLEASE DO NOT EDIT -// Generated on: Tue Dec 19 09:55:49 CET 2017 -// ---------------------------------------------------- - -import ch.loway.oss.ari4java.generated.*; -import com.fasterxml.jackson.databind.annotation.JsonDeserialize; -import java.util.Date; -import java.util.List; -import java.util.Map; - -/********************************************************** - * Channel variable changed. - * - * Defined in file: events.json - * Generated by: Model - *********************************************************/ - -public class ChannelVarset_impl_ari_1_10_0 extends Event_impl_ari_1_10_0 implements ChannelVarset, java.io.Serializable { -private static final long serialVersionUID = 1L; - /** The channel on which the variable was set. - -If missing, the variable is a global variable. */ - private Channel channel; - public Channel getChannel() { - return channel; - } - - @JsonDeserialize( as=Channel_impl_ari_1_10_0.class ) - public void setChannel(Channel val ) { - channel = val; - } - - /** The new value of the variable. */ - private String value; - public String getValue() { - return value; - } - - @JsonDeserialize( as=String.class ) - public void setValue(String val ) { - value = val; - } - - /** The variable that changed. */ - private String variable; - public String getVariable() { - return variable; - } - - @JsonDeserialize( as=String.class ) - public void setVariable(String val ) { - variable = val; - } - -/** No missing signatures from interface */ -} - diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/models/Channel_impl_ari_1_10_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/models/Channel_impl_ari_1_10_0.java deleted file mode 100644 index b61bfad3..00000000 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/models/Channel_impl_ari_1_10_0.java +++ /dev/null @@ -1,144 +0,0 @@ -package ch.loway.oss.ari4java.generated.ari_1_10_0.models; - -// ---------------------------------------------------- -// THIS CLASS WAS GENERATED AUTOMATICALLY -// PLEASE DO NOT EDIT -// Generated on: Tue Dec 19 09:55:49 CET 2017 -// ---------------------------------------------------- - -import ch.loway.oss.ari4java.generated.*; -import com.fasterxml.jackson.databind.annotation.JsonDeserialize; -import java.util.Date; -import java.util.List; -import java.util.Map; - -/********************************************************** - * A specific communication connection between Asterisk and an Endpoint. - * - * Defined in file: channels.json - * Generated by: Model - *********************************************************/ - -public class Channel_impl_ari_1_10_0 implements Channel, java.io.Serializable { -private static final long serialVersionUID = 1L; - /** */ - private String accountcode; - public String getAccountcode() { - return accountcode; - } - - @JsonDeserialize( as=String.class ) - public void setAccountcode(String val ) { - accountcode = val; - } - - /** */ - private CallerID caller; - public CallerID getCaller() { - return caller; - } - - @JsonDeserialize( as=CallerID_impl_ari_1_10_0.class ) - public void setCaller(CallerID val ) { - caller = val; - } - - /** */ - private CallerID connected; - public CallerID getConnected() { - return connected; - } - - @JsonDeserialize( as=CallerID_impl_ari_1_10_0.class ) - public void setConnected(CallerID val ) { - connected = val; - } - - /** Timestamp when channel was created */ - private Date creationtime; - public Date getCreationtime() { - return creationtime; - } - - @JsonDeserialize( as=Date.class ) - public void setCreationtime(Date val ) { - creationtime = val; - } - - /** Current location in the dialplan */ - private DialplanCEP dialplan; - public DialplanCEP getDialplan() { - return dialplan; - } - - @JsonDeserialize( as=DialplanCEP_impl_ari_1_10_0.class ) - public void setDialplan(DialplanCEP val ) { - dialplan = val; - } - - /** Unique identifier of the channel. - -This is the same as the Uniqueid field in AMI. */ - private String id; - public String getId() { - return id; - } - - @JsonDeserialize( as=String.class ) - public void setId(String val ) { - id = val; - } - - /** The default spoken language */ - private String language; - public String getLanguage() { - return language; - } - - @JsonDeserialize( as=String.class ) - public void setLanguage(String val ) { - language = val; - } - - /** Name of the channel (i.e. SIP/foo-0000a7e3) */ - private String name; - public String getName() { - return name; - } - - @JsonDeserialize( as=String.class ) - public void setName(String val ) { - name = val; - } - - /** */ - private String state; - public String getState() { - return state; - } - - @JsonDeserialize( as=String.class ) - public void setState(String val ) { - state = val; - } - -/********************************************************** - * Channel variables - * - * @since ari_2_0_0 - *********************************************************/ - public String getChannelvars(){ - throw new UnsupportedOperationException("Method availble from ..."); -}; - -/********************************************************** - * Channel variables - * - * @since ari_2_0_0 - *********************************************************/ - public void setChannelvars(String val ){ - throw new UnsupportedOperationException("Method availble from ..."); -}; - -} - diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/models/ConfigInfo_impl_ari_1_10_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/models/ConfigInfo_impl_ari_1_10_0.java deleted file mode 100644 index ddde36d5..00000000 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/models/ConfigInfo_impl_ari_1_10_0.java +++ /dev/null @@ -1,92 +0,0 @@ -package ch.loway.oss.ari4java.generated.ari_1_10_0.models; - -// ---------------------------------------------------- -// THIS CLASS WAS GENERATED AUTOMATICALLY -// PLEASE DO NOT EDIT -// Generated on: Tue Dec 19 09:55:49 CET 2017 -// ---------------------------------------------------- - -import ch.loway.oss.ari4java.generated.*; -import com.fasterxml.jackson.databind.annotation.JsonDeserialize; -import java.util.Date; -import java.util.List; -import java.util.Map; - -/********************************************************** - * Info about Asterisk configuration - * - * Defined in file: asterisk.json - * Generated by: Model - *********************************************************/ - -public class ConfigInfo_impl_ari_1_10_0 implements ConfigInfo, java.io.Serializable { -private static final long serialVersionUID = 1L; - /** Default language for media playback. */ - private String default_language; - public String getDefault_language() { - return default_language; - } - - @JsonDeserialize( as=String.class ) - public void setDefault_language(String val ) { - default_language = val; - } - - /** Maximum number of simultaneous channels. */ - private int max_channels; - public int getMax_channels() { - return max_channels; - } - - @JsonDeserialize( as=int.class ) - public void setMax_channels(int val ) { - max_channels = val; - } - - /** Maximum load avg on system. */ - private double max_load; - public double getMax_load() { - return max_load; - } - - @JsonDeserialize( as=double.class ) - public void setMax_load(double val ) { - max_load = val; - } - - /** Maximum number of open file handles (files, sockets). */ - private int max_open_files; - public int getMax_open_files() { - return max_open_files; - } - - @JsonDeserialize( as=int.class ) - public void setMax_open_files(int val ) { - max_open_files = val; - } - - /** Asterisk system name. */ - private String name; - public String getName() { - return name; - } - - @JsonDeserialize( as=String.class ) - public void setName(String val ) { - name = val; - } - - /** Effective user/group id for running Asterisk. */ - private SetId setid; - public SetId getSetid() { - return setid; - } - - @JsonDeserialize( as=SetId_impl_ari_1_10_0.class ) - public void setSetid(SetId val ) { - setid = val; - } - -/** No missing signatures from interface */ -} - diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/models/ConfigTuple_impl_ari_1_10_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/models/ConfigTuple_impl_ari_1_10_0.java deleted file mode 100644 index 73409088..00000000 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/models/ConfigTuple_impl_ari_1_10_0.java +++ /dev/null @@ -1,48 +0,0 @@ -package ch.loway.oss.ari4java.generated.ari_1_10_0.models; - -// ---------------------------------------------------- -// THIS CLASS WAS GENERATED AUTOMATICALLY -// PLEASE DO NOT EDIT -// Generated on: Tue Dec 19 09:55:49 CET 2017 -// ---------------------------------------------------- - -import ch.loway.oss.ari4java.generated.*; -import com.fasterxml.jackson.databind.annotation.JsonDeserialize; -import java.util.Date; -import java.util.List; -import java.util.Map; - -/********************************************************** - * A key/value pair that makes up part of a configuration object. - * - * Defined in file: asterisk.json - * Generated by: Model - *********************************************************/ - -public class ConfigTuple_impl_ari_1_10_0 implements ConfigTuple, java.io.Serializable { -private static final long serialVersionUID = 1L; - /** A configuration object attribute. */ - private String attribute; - public String getAttribute() { - return attribute; - } - - @JsonDeserialize( as=String.class ) - public void setAttribute(String val ) { - attribute = val; - } - - /** The value for the attribute. */ - private String value; - public String getValue() { - return value; - } - - @JsonDeserialize( as=String.class ) - public void setValue(String val ) { - value = val; - } - -/** No missing signatures from interface */ -} - diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/models/ContactInfo_impl_ari_1_10_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/models/ContactInfo_impl_ari_1_10_0.java deleted file mode 100644 index f0c9814a..00000000 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/models/ContactInfo_impl_ari_1_10_0.java +++ /dev/null @@ -1,70 +0,0 @@ -package ch.loway.oss.ari4java.generated.ari_1_10_0.models; - -// ---------------------------------------------------- -// THIS CLASS WAS GENERATED AUTOMATICALLY -// PLEASE DO NOT EDIT -// Generated on: Tue Dec 19 09:55:49 CET 2017 -// ---------------------------------------------------- - -import ch.loway.oss.ari4java.generated.*; -import com.fasterxml.jackson.databind.annotation.JsonDeserialize; -import java.util.Date; -import java.util.List; -import java.util.Map; - -/********************************************************** - * Detailed information about a contact on an endpoint. - * - * Defined in file: events.json - * Generated by: Model - *********************************************************/ - -public class ContactInfo_impl_ari_1_10_0 implements ContactInfo, java.io.Serializable { -private static final long serialVersionUID = 1L; - /** The Address of Record this contact belongs to. */ - private String aor; - public String getAor() { - return aor; - } - - @JsonDeserialize( as=String.class ) - public void setAor(String val ) { - aor = val; - } - - /** The current status of the contact. */ - private String contact_status; - public String getContact_status() { - return contact_status; - } - - @JsonDeserialize( as=String.class ) - public void setContact_status(String val ) { - contact_status = val; - } - - /** Current round trip time, in microseconds, for the contact. */ - private String roundtrip_usec; - public String getRoundtrip_usec() { - return roundtrip_usec; - } - - @JsonDeserialize( as=String.class ) - public void setRoundtrip_usec(String val ) { - roundtrip_usec = val; - } - - /** The location of the contact. */ - private String uri; - public String getUri() { - return uri; - } - - @JsonDeserialize( as=String.class ) - public void setUri(String val ) { - uri = val; - } - -/** No missing signatures from interface */ -} - diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/models/ContactStatusChange_impl_ari_1_10_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/models/ContactStatusChange_impl_ari_1_10_0.java deleted file mode 100644 index 2b9f920c..00000000 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/models/ContactStatusChange_impl_ari_1_10_0.java +++ /dev/null @@ -1,48 +0,0 @@ -package ch.loway.oss.ari4java.generated.ari_1_10_0.models; - -// ---------------------------------------------------- -// THIS CLASS WAS GENERATED AUTOMATICALLY -// PLEASE DO NOT EDIT -// Generated on: Tue Dec 19 09:55:49 CET 2017 -// ---------------------------------------------------- - -import ch.loway.oss.ari4java.generated.*; -import com.fasterxml.jackson.databind.annotation.JsonDeserialize; -import java.util.Date; -import java.util.List; -import java.util.Map; - -/********************************************************** - * The state of a contact on an endpoint has changed. - * - * Defined in file: events.json - * Generated by: Model - *********************************************************/ - -public class ContactStatusChange_impl_ari_1_10_0 extends Event_impl_ari_1_10_0 implements ContactStatusChange, java.io.Serializable { -private static final long serialVersionUID = 1L; - /** */ - private ContactInfo contact_info; - public ContactInfo getContact_info() { - return contact_info; - } - - @JsonDeserialize( as=ContactInfo_impl_ari_1_10_0.class ) - public void setContact_info(ContactInfo val ) { - contact_info = val; - } - - /** */ - private Endpoint endpoint; - public Endpoint getEndpoint() { - return endpoint; - } - - @JsonDeserialize( as=Endpoint_impl_ari_1_10_0.class ) - public void setEndpoint(Endpoint val ) { - endpoint = val; - } - -/** No missing signatures from interface */ -} - diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/models/DeviceStateChanged_impl_ari_1_10_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/models/DeviceStateChanged_impl_ari_1_10_0.java deleted file mode 100644 index c42bbf3c..00000000 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/models/DeviceStateChanged_impl_ari_1_10_0.java +++ /dev/null @@ -1,37 +0,0 @@ -package ch.loway.oss.ari4java.generated.ari_1_10_0.models; - -// ---------------------------------------------------- -// THIS CLASS WAS GENERATED AUTOMATICALLY -// PLEASE DO NOT EDIT -// Generated on: Tue Dec 19 09:55:49 CET 2017 -// ---------------------------------------------------- - -import ch.loway.oss.ari4java.generated.*; -import com.fasterxml.jackson.databind.annotation.JsonDeserialize; -import java.util.Date; -import java.util.List; -import java.util.Map; - -/********************************************************** - * Notification that a device state has changed. - * - * Defined in file: events.json - * Generated by: Model - *********************************************************/ - -public class DeviceStateChanged_impl_ari_1_10_0 extends Event_impl_ari_1_10_0 implements DeviceStateChanged, java.io.Serializable { -private static final long serialVersionUID = 1L; - /** Device state object */ - private DeviceState device_state; - public DeviceState getDevice_state() { - return device_state; - } - - @JsonDeserialize( as=DeviceState_impl_ari_1_10_0.class ) - public void setDevice_state(DeviceState val ) { - device_state = val; - } - -/** No missing signatures from interface */ -} - diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/models/DeviceState_impl_ari_1_10_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/models/DeviceState_impl_ari_1_10_0.java deleted file mode 100644 index b5d73b0d..00000000 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/models/DeviceState_impl_ari_1_10_0.java +++ /dev/null @@ -1,48 +0,0 @@ -package ch.loway.oss.ari4java.generated.ari_1_10_0.models; - -// ---------------------------------------------------- -// THIS CLASS WAS GENERATED AUTOMATICALLY -// PLEASE DO NOT EDIT -// Generated on: Tue Dec 19 09:55:49 CET 2017 -// ---------------------------------------------------- - -import ch.loway.oss.ari4java.generated.*; -import com.fasterxml.jackson.databind.annotation.JsonDeserialize; -import java.util.Date; -import java.util.List; -import java.util.Map; - -/********************************************************** - * Represents the state of a device. - * - * Defined in file: deviceStates.json - * Generated by: Model - *********************************************************/ - -public class DeviceState_impl_ari_1_10_0 implements DeviceState, java.io.Serializable { -private static final long serialVersionUID = 1L; - /** Name of the device. */ - private String name; - public String getName() { - return name; - } - - @JsonDeserialize( as=String.class ) - public void setName(String val ) { - name = val; - } - - /** Device's state */ - private String state; - public String getState() { - return state; - } - - @JsonDeserialize( as=String.class ) - public void setState(String val ) { - state = val; - } - -/** No missing signatures from interface */ -} - diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/models/Dial_impl_ari_1_10_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/models/Dial_impl_ari_1_10_0.java deleted file mode 100644 index 64f8063a..00000000 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/models/Dial_impl_ari_1_10_0.java +++ /dev/null @@ -1,92 +0,0 @@ -package ch.loway.oss.ari4java.generated.ari_1_10_0.models; - -// ---------------------------------------------------- -// THIS CLASS WAS GENERATED AUTOMATICALLY -// PLEASE DO NOT EDIT -// Generated on: Tue Dec 19 09:55:49 CET 2017 -// ---------------------------------------------------- - -import ch.loway.oss.ari4java.generated.*; -import com.fasterxml.jackson.databind.annotation.JsonDeserialize; -import java.util.Date; -import java.util.List; -import java.util.Map; - -/********************************************************** - * Dialing state has changed. - * - * Defined in file: events.json - * Generated by: Model - *********************************************************/ - -public class Dial_impl_ari_1_10_0 extends Event_impl_ari_1_10_0 implements Dial, java.io.Serializable { -private static final long serialVersionUID = 1L; - /** The calling channel. */ - private Channel caller; - public Channel getCaller() { - return caller; - } - - @JsonDeserialize( as=Channel_impl_ari_1_10_0.class ) - public void setCaller(Channel val ) { - caller = val; - } - - /** Current status of the dialing attempt to the peer. */ - private String dialstatus; - public String getDialstatus() { - return dialstatus; - } - - @JsonDeserialize( as=String.class ) - public void setDialstatus(String val ) { - dialstatus = val; - } - - /** The dial string for calling the peer channel. */ - private String dialstring; - public String getDialstring() { - return dialstring; - } - - @JsonDeserialize( as=String.class ) - public void setDialstring(String val ) { - dialstring = val; - } - - /** Forwarding target requested by the original dialed channel. */ - private String forward; - public String getForward() { - return forward; - } - - @JsonDeserialize( as=String.class ) - public void setForward(String val ) { - forward = val; - } - - /** Channel that the caller has been forwarded to. */ - private Channel forwarded; - public Channel getForwarded() { - return forwarded; - } - - @JsonDeserialize( as=Channel_impl_ari_1_10_0.class ) - public void setForwarded(Channel val ) { - forwarded = val; - } - - /** The dialed channel. */ - private Channel peer; - public Channel getPeer() { - return peer; - } - - @JsonDeserialize( as=Channel_impl_ari_1_10_0.class ) - public void setPeer(Channel val ) { - peer = val; - } - -/** No missing signatures from interface */ -} - diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/models/Dialed_impl_ari_1_10_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/models/Dialed_impl_ari_1_10_0.java deleted file mode 100644 index a073834d..00000000 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/models/Dialed_impl_ari_1_10_0.java +++ /dev/null @@ -1,26 +0,0 @@ -package ch.loway.oss.ari4java.generated.ari_1_10_0.models; - -// ---------------------------------------------------- -// THIS CLASS WAS GENERATED AUTOMATICALLY -// PLEASE DO NOT EDIT -// Generated on: Tue Dec 19 09:55:49 CET 2017 -// ---------------------------------------------------- - -import ch.loway.oss.ari4java.generated.*; -import com.fasterxml.jackson.databind.annotation.JsonDeserialize; -import java.util.Date; -import java.util.List; -import java.util.Map; - -/********************************************************** - * Dialed channel information. - * - * Defined in file: channels.json - * Generated by: Model - *********************************************************/ - -public class Dialed_impl_ari_1_10_0 implements Dialed, java.io.Serializable { -private static final long serialVersionUID = 1L; -/** No missing signatures from interface */ -} - diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/models/DialplanCEP_impl_ari_1_10_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/models/DialplanCEP_impl_ari_1_10_0.java deleted file mode 100644 index d2f90a97..00000000 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/models/DialplanCEP_impl_ari_1_10_0.java +++ /dev/null @@ -1,59 +0,0 @@ -package ch.loway.oss.ari4java.generated.ari_1_10_0.models; - -// ---------------------------------------------------- -// THIS CLASS WAS GENERATED AUTOMATICALLY -// PLEASE DO NOT EDIT -// Generated on: Tue Dec 19 09:55:49 CET 2017 -// ---------------------------------------------------- - -import ch.loway.oss.ari4java.generated.*; -import com.fasterxml.jackson.databind.annotation.JsonDeserialize; -import java.util.Date; -import java.util.List; -import java.util.Map; - -/********************************************************** - * Dialplan location (context/extension/priority) - * - * Defined in file: channels.json - * Generated by: Model - *********************************************************/ - -public class DialplanCEP_impl_ari_1_10_0 implements DialplanCEP, java.io.Serializable { -private static final long serialVersionUID = 1L; - /** Context in the dialplan */ - private String context; - public String getContext() { - return context; - } - - @JsonDeserialize( as=String.class ) - public void setContext(String val ) { - context = val; - } - - /** Extension in the dialplan */ - private String exten; - public String getExten() { - return exten; - } - - @JsonDeserialize( as=String.class ) - public void setExten(String val ) { - exten = val; - } - - /** Priority in the dialplan */ - private long priority; - public long getPriority() { - return priority; - } - - @JsonDeserialize( as=long.class ) - public void setPriority(long val ) { - priority = val; - } - -/** No missing signatures from interface */ -} - diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/models/EndpointStateChange_impl_ari_1_10_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/models/EndpointStateChange_impl_ari_1_10_0.java deleted file mode 100644 index 45b52d20..00000000 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/models/EndpointStateChange_impl_ari_1_10_0.java +++ /dev/null @@ -1,37 +0,0 @@ -package ch.loway.oss.ari4java.generated.ari_1_10_0.models; - -// ---------------------------------------------------- -// THIS CLASS WAS GENERATED AUTOMATICALLY -// PLEASE DO NOT EDIT -// Generated on: Tue Dec 19 09:55:49 CET 2017 -// ---------------------------------------------------- - -import ch.loway.oss.ari4java.generated.*; -import com.fasterxml.jackson.databind.annotation.JsonDeserialize; -import java.util.Date; -import java.util.List; -import java.util.Map; - -/********************************************************** - * Endpoint state changed. - * - * Defined in file: events.json - * Generated by: Model - *********************************************************/ - -public class EndpointStateChange_impl_ari_1_10_0 extends Event_impl_ari_1_10_0 implements EndpointStateChange, java.io.Serializable { -private static final long serialVersionUID = 1L; - /** */ - private Endpoint endpoint; - public Endpoint getEndpoint() { - return endpoint; - } - - @JsonDeserialize( as=Endpoint_impl_ari_1_10_0.class ) - public void setEndpoint(Endpoint val ) { - endpoint = val; - } - -/** No missing signatures from interface */ -} - diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/models/Endpoint_impl_ari_1_10_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/models/Endpoint_impl_ari_1_10_0.java deleted file mode 100644 index 68fcfcfc..00000000 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/models/Endpoint_impl_ari_1_10_0.java +++ /dev/null @@ -1,72 +0,0 @@ -package ch.loway.oss.ari4java.generated.ari_1_10_0.models; - -// ---------------------------------------------------- -// THIS CLASS WAS GENERATED AUTOMATICALLY -// PLEASE DO NOT EDIT -// Generated on: Tue Dec 19 09:55:49 CET 2017 -// ---------------------------------------------------- - -import ch.loway.oss.ari4java.generated.*; -import com.fasterxml.jackson.databind.annotation.JsonDeserialize; -import java.util.Date; -import java.util.List; -import java.util.Map; - -/********************************************************** - * An external device that may offer/accept calls to/from Asterisk. - * - * Unlike most resources, which have a single unique identifier, an endpoint is uniquely identified by the technology/resource pair. - * - * Defined in file: endpoints.json - * Generated by: Model - *********************************************************/ - -public class Endpoint_impl_ari_1_10_0 implements Endpoint, java.io.Serializable { -private static final long serialVersionUID = 1L; - /** Id's of channels associated with this endpoint */ - private List channel_ids; - public List getChannel_ids() { - return channel_ids; - } - - @JsonDeserialize( contentAs=String.class ) - public void setChannel_ids(List val ) { - channel_ids = val; - } - - /** Identifier of the endpoint, specific to the given technology. */ - private String resource; - public String getResource() { - return resource; - } - - @JsonDeserialize( as=String.class ) - public void setResource(String val ) { - resource = val; - } - - /** Endpoint's state */ - private String state; - public String getState() { - return state; - } - - @JsonDeserialize( as=String.class ) - public void setState(String val ) { - state = val; - } - - /** Technology of the endpoint */ - private String technology; - public String getTechnology() { - return technology; - } - - @JsonDeserialize( as=String.class ) - public void setTechnology(String val ) { - technology = val; - } - -/** No missing signatures from interface */ -} - diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/models/Event_impl_ari_1_10_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/models/Event_impl_ari_1_10_0.java deleted file mode 100644 index 0914b507..00000000 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/models/Event_impl_ari_1_10_0.java +++ /dev/null @@ -1,48 +0,0 @@ -package ch.loway.oss.ari4java.generated.ari_1_10_0.models; - -// ---------------------------------------------------- -// THIS CLASS WAS GENERATED AUTOMATICALLY -// PLEASE DO NOT EDIT -// Generated on: Tue Dec 19 09:55:49 CET 2017 -// ---------------------------------------------------- - -import ch.loway.oss.ari4java.generated.*; -import com.fasterxml.jackson.databind.annotation.JsonDeserialize; -import java.util.Date; -import java.util.List; -import java.util.Map; - -/********************************************************** - * Base type for asynchronous events from Asterisk. - * - * Defined in file: events.json - * Generated by: Model - *********************************************************/ - -public class Event_impl_ari_1_10_0 extends Message_impl_ari_1_10_0 implements Event, java.io.Serializable { -private static final long serialVersionUID = 1L; - /** Name of the application receiving the event. */ - private String application; - public String getApplication() { - return application; - } - - @JsonDeserialize( as=String.class ) - public void setApplication(String val ) { - application = val; - } - - /** Time at which this event was created. */ - private Date timestamp; - public Date getTimestamp() { - return timestamp; - } - - @JsonDeserialize( as=Date.class ) - public void setTimestamp(Date val ) { - timestamp = val; - } - -/** No missing signatures from interface */ -} - diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/models/FormatLangPair_impl_ari_1_10_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/models/FormatLangPair_impl_ari_1_10_0.java deleted file mode 100644 index ce7f82d0..00000000 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/models/FormatLangPair_impl_ari_1_10_0.java +++ /dev/null @@ -1,48 +0,0 @@ -package ch.loway.oss.ari4java.generated.ari_1_10_0.models; - -// ---------------------------------------------------- -// THIS CLASS WAS GENERATED AUTOMATICALLY -// PLEASE DO NOT EDIT -// Generated on: Tue Dec 19 09:55:49 CET 2017 -// ---------------------------------------------------- - -import ch.loway.oss.ari4java.generated.*; -import com.fasterxml.jackson.databind.annotation.JsonDeserialize; -import java.util.Date; -import java.util.List; -import java.util.Map; - -/********************************************************** - * Identifies the format and language of a sound file - * - * Defined in file: sounds.json - * Generated by: Model - *********************************************************/ - -public class FormatLangPair_impl_ari_1_10_0 implements FormatLangPair, java.io.Serializable { -private static final long serialVersionUID = 1L; - /** */ - private String format; - public String getFormat() { - return format; - } - - @JsonDeserialize( as=String.class ) - public void setFormat(String val ) { - format = val; - } - - /** */ - private String language; - public String getLanguage() { - return language; - } - - @JsonDeserialize( as=String.class ) - public void setLanguage(String val ) { - language = val; - } - -/** No missing signatures from interface */ -} - diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/models/LiveRecording_impl_ari_1_10_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/models/LiveRecording_impl_ari_1_10_0.java deleted file mode 100644 index cfae53e8..00000000 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/models/LiveRecording_impl_ari_1_10_0.java +++ /dev/null @@ -1,114 +0,0 @@ -package ch.loway.oss.ari4java.generated.ari_1_10_0.models; - -// ---------------------------------------------------- -// THIS CLASS WAS GENERATED AUTOMATICALLY -// PLEASE DO NOT EDIT -// Generated on: Tue Dec 19 09:55:49 CET 2017 -// ---------------------------------------------------- - -import ch.loway.oss.ari4java.generated.*; -import com.fasterxml.jackson.databind.annotation.JsonDeserialize; -import java.util.Date; -import java.util.List; -import java.util.Map; - -/********************************************************** - * A recording that is in progress - * - * Defined in file: recordings.json - * Generated by: Model - *********************************************************/ - -public class LiveRecording_impl_ari_1_10_0 implements LiveRecording, java.io.Serializable { -private static final long serialVersionUID = 1L; - /** Cause for recording failure if failed */ - private String cause; - public String getCause() { - return cause; - } - - @JsonDeserialize( as=String.class ) - public void setCause(String val ) { - cause = val; - } - - /** Duration in seconds of the recording */ - private int duration; - public int getDuration() { - return duration; - } - - @JsonDeserialize( as=int.class ) - public void setDuration(int val ) { - duration = val; - } - - /** Recording format (wav, gsm, etc.) */ - private String format; - public String getFormat() { - return format; - } - - @JsonDeserialize( as=String.class ) - public void setFormat(String val ) { - format = val; - } - - /** Base name for the recording */ - private String name; - public String getName() { - return name; - } - - @JsonDeserialize( as=String.class ) - public void setName(String val ) { - name = val; - } - - /** Duration of silence, in seconds, detected in the recording. This is only available if the recording was initiated with a non-zero maxSilenceSeconds. */ - private int silence_duration; - public int getSilence_duration() { - return silence_duration; - } - - @JsonDeserialize( as=int.class ) - public void setSilence_duration(int val ) { - silence_duration = val; - } - - /** */ - private String state; - public String getState() { - return state; - } - - @JsonDeserialize( as=String.class ) - public void setState(String val ) { - state = val; - } - - /** Duration of talking, in seconds, detected in the recording. This is only available if the recording was initiated with a non-zero maxSilenceSeconds. */ - private int talking_duration; - public int getTalking_duration() { - return talking_duration; - } - - @JsonDeserialize( as=int.class ) - public void setTalking_duration(int val ) { - talking_duration = val; - } - - /** URI for the channel or bridge being recorded */ - private String target_uri; - public String getTarget_uri() { - return target_uri; - } - - @JsonDeserialize( as=String.class ) - public void setTarget_uri(String val ) { - target_uri = val; - } - -/** No missing signatures from interface */ -} - diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/models/LogChannel_impl_ari_1_10_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/models/LogChannel_impl_ari_1_10_0.java deleted file mode 100644 index 5775d7ef..00000000 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/models/LogChannel_impl_ari_1_10_0.java +++ /dev/null @@ -1,70 +0,0 @@ -package ch.loway.oss.ari4java.generated.ari_1_10_0.models; - -// ---------------------------------------------------- -// THIS CLASS WAS GENERATED AUTOMATICALLY -// PLEASE DO NOT EDIT -// Generated on: Tue Dec 19 09:55:49 CET 2017 -// ---------------------------------------------------- - -import ch.loway.oss.ari4java.generated.*; -import com.fasterxml.jackson.databind.annotation.JsonDeserialize; -import java.util.Date; -import java.util.List; -import java.util.Map; - -/********************************************************** - * Details of an Asterisk log channel - * - * Defined in file: asterisk.json - * Generated by: Model - *********************************************************/ - -public class LogChannel_impl_ari_1_10_0 implements LogChannel, java.io.Serializable { -private static final long serialVersionUID = 1L; - /** The log channel path */ - private String channel; - public String getChannel() { - return channel; - } - - @JsonDeserialize( as=String.class ) - public void setChannel(String val ) { - channel = val; - } - - /** The various log levels */ - private String configuration; - public String getConfiguration() { - return configuration; - } - - @JsonDeserialize( as=String.class ) - public void setConfiguration(String val ) { - configuration = val; - } - - /** Whether or not a log type is enabled */ - private String status; - public String getStatus() { - return status; - } - - @JsonDeserialize( as=String.class ) - public void setStatus(String val ) { - status = val; - } - - /** Types of logs for the log channel */ - private String type; - public String getType() { - return type; - } - - @JsonDeserialize( as=String.class ) - public void setType(String val ) { - type = val; - } - -/** No missing signatures from interface */ -} - diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/models/Message_impl_ari_1_10_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/models/Message_impl_ari_1_10_0.java deleted file mode 100644 index d7271111..00000000 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/models/Message_impl_ari_1_10_0.java +++ /dev/null @@ -1,100 +0,0 @@ -package ch.loway.oss.ari4java.generated.ari_1_10_0.models; - -// ---------------------------------------------------- -// THIS CLASS WAS GENERATED AUTOMATICALLY -// PLEASE DO NOT EDIT -// Generated on: Tue Dec 19 09:55:49 CET 2017 -// ---------------------------------------------------- - -import ch.loway.oss.ari4java.generated.*; -import com.fasterxml.jackson.annotation.JsonSubTypes; -import com.fasterxml.jackson.annotation.JsonSubTypes.Type; -import com.fasterxml.jackson.annotation.JsonTypeInfo; -import com.fasterxml.jackson.databind.annotation.JsonDeserialize; -import java.util.Date; -import java.util.List; -import java.util.Map; - -/********************************************************** - * Base type for errors and events - * - * Defined in file: events.json - * Generated by: Model - *********************************************************/ - @JsonTypeInfo( use = JsonTypeInfo.Id.NAME, include = JsonTypeInfo.As.PROPERTY, property = "type") - @JsonSubTypes({ @Type(value = MissingParams_impl_ari_1_10_0.class, name = "MissingParams") -, @Type(value = Event_impl_ari_1_10_0.class, name = "Event") -, @Type(value = ContactInfo_impl_ari_1_10_0.class, name = "ContactInfo") -, @Type(value = Peer_impl_ari_1_10_0.class, name = "Peer") -, @Type(value = DeviceStateChanged_impl_ari_1_10_0.class, name = "DeviceStateChanged") -, @Type(value = PlaybackStarted_impl_ari_1_10_0.class, name = "PlaybackStarted") -, @Type(value = PlaybackContinuing_impl_ari_1_10_0.class, name = "PlaybackContinuing") -, @Type(value = PlaybackFinished_impl_ari_1_10_0.class, name = "PlaybackFinished") -, @Type(value = RecordingStarted_impl_ari_1_10_0.class, name = "RecordingStarted") -, @Type(value = RecordingFinished_impl_ari_1_10_0.class, name = "RecordingFinished") -, @Type(value = RecordingFailed_impl_ari_1_10_0.class, name = "RecordingFailed") -, @Type(value = ApplicationReplaced_impl_ari_1_10_0.class, name = "ApplicationReplaced") -, @Type(value = BridgeCreated_impl_ari_1_10_0.class, name = "BridgeCreated") -, @Type(value = BridgeDestroyed_impl_ari_1_10_0.class, name = "BridgeDestroyed") -, @Type(value = BridgeMerged_impl_ari_1_10_0.class, name = "BridgeMerged") -, @Type(value = BridgeBlindTransfer_impl_ari_1_10_0.class, name = "BridgeBlindTransfer") -, @Type(value = BridgeAttendedTransfer_impl_ari_1_10_0.class, name = "BridgeAttendedTransfer") -, @Type(value = ChannelCreated_impl_ari_1_10_0.class, name = "ChannelCreated") -, @Type(value = ChannelDestroyed_impl_ari_1_10_0.class, name = "ChannelDestroyed") -, @Type(value = ChannelEnteredBridge_impl_ari_1_10_0.class, name = "ChannelEnteredBridge") -, @Type(value = ChannelLeftBridge_impl_ari_1_10_0.class, name = "ChannelLeftBridge") -, @Type(value = ChannelStateChange_impl_ari_1_10_0.class, name = "ChannelStateChange") -, @Type(value = ChannelDtmfReceived_impl_ari_1_10_0.class, name = "ChannelDtmfReceived") -, @Type(value = ChannelDialplan_impl_ari_1_10_0.class, name = "ChannelDialplan") -, @Type(value = ChannelCallerId_impl_ari_1_10_0.class, name = "ChannelCallerId") -, @Type(value = ChannelUserevent_impl_ari_1_10_0.class, name = "ChannelUserevent") -, @Type(value = ChannelHangupRequest_impl_ari_1_10_0.class, name = "ChannelHangupRequest") -, @Type(value = ChannelVarset_impl_ari_1_10_0.class, name = "ChannelVarset") -, @Type(value = ChannelHold_impl_ari_1_10_0.class, name = "ChannelHold") -, @Type(value = ChannelUnhold_impl_ari_1_10_0.class, name = "ChannelUnhold") -, @Type(value = ChannelTalkingStarted_impl_ari_1_10_0.class, name = "ChannelTalkingStarted") -, @Type(value = ChannelTalkingFinished_impl_ari_1_10_0.class, name = "ChannelTalkingFinished") -, @Type(value = ContactStatusChange_impl_ari_1_10_0.class, name = "ContactStatusChange") -, @Type(value = PeerStatusChange_impl_ari_1_10_0.class, name = "PeerStatusChange") -, @Type(value = EndpointStateChange_impl_ari_1_10_0.class, name = "EndpointStateChange") -, @Type(value = Dial_impl_ari_1_10_0.class, name = "Dial") -, @Type(value = StasisEnd_impl_ari_1_10_0.class, name = "StasisEnd") -, @Type(value = StasisStart_impl_ari_1_10_0.class, name = "StasisStart") -, @Type(value = TextMessageReceived_impl_ari_1_10_0.class, name = "TextMessageReceived") -, @Type(value = ChannelConnectedLine_impl_ari_1_10_0.class, name = "ChannelConnectedLine") - }) - - -public class Message_impl_ari_1_10_0 implements Message, java.io.Serializable { -private static final long serialVersionUID = 1L; - /** Indicates the type of this message. */ - private String type; - public String getType() { - return type; - } - - @JsonDeserialize( as=String.class ) - public void setType(String val ) { - type = val; - } - -/********************************************************** - * The unique ID for the Asterisk instance that raised this event. - * - * @since ari_2_0_0 - *********************************************************/ - public void setAsterisk_id(String val ){ - throw new UnsupportedOperationException("Method availble from ..."); -}; - -/********************************************************** - * The unique ID for the Asterisk instance that raised this event. - * - * @since ari_2_0_0 - *********************************************************/ - public String getAsterisk_id(){ - throw new UnsupportedOperationException("Method availble from ..."); -}; - -} - diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/models/MissingParams_impl_ari_1_10_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/models/MissingParams_impl_ari_1_10_0.java deleted file mode 100644 index 917b7357..00000000 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/models/MissingParams_impl_ari_1_10_0.java +++ /dev/null @@ -1,37 +0,0 @@ -package ch.loway.oss.ari4java.generated.ari_1_10_0.models; - -// ---------------------------------------------------- -// THIS CLASS WAS GENERATED AUTOMATICALLY -// PLEASE DO NOT EDIT -// Generated on: Tue Dec 19 09:55:49 CET 2017 -// ---------------------------------------------------- - -import ch.loway.oss.ari4java.generated.*; -import com.fasterxml.jackson.databind.annotation.JsonDeserialize; -import java.util.Date; -import java.util.List; -import java.util.Map; - -/********************************************************** - * Error event sent when required params are missing. - * - * Defined in file: events.json - * Generated by: Model - *********************************************************/ - -public class MissingParams_impl_ari_1_10_0 extends Message_impl_ari_1_10_0 implements MissingParams, java.io.Serializable { -private static final long serialVersionUID = 1L; - /** A list of the missing parameters */ - private List params; - public List getParams() { - return params; - } - - @JsonDeserialize( contentAs=String.class ) - public void setParams(List val ) { - params = val; - } - -/** No missing signatures from interface */ -} - diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/models/Module_impl_ari_1_10_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/models/Module_impl_ari_1_10_0.java deleted file mode 100644 index 903911ce..00000000 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/models/Module_impl_ari_1_10_0.java +++ /dev/null @@ -1,81 +0,0 @@ -package ch.loway.oss.ari4java.generated.ari_1_10_0.models; - -// ---------------------------------------------------- -// THIS CLASS WAS GENERATED AUTOMATICALLY -// PLEASE DO NOT EDIT -// Generated on: Tue Dec 19 09:55:49 CET 2017 -// ---------------------------------------------------- - -import ch.loway.oss.ari4java.generated.*; -import com.fasterxml.jackson.databind.annotation.JsonDeserialize; -import java.util.Date; -import java.util.List; -import java.util.Map; - -/********************************************************** - * Details of an Asterisk module - * - * Defined in file: asterisk.json - * Generated by: Model - *********************************************************/ - -public class Module_impl_ari_1_10_0 implements Module, java.io.Serializable { -private static final long serialVersionUID = 1L; - /** The description of this module */ - private String description; - public String getDescription() { - return description; - } - - @JsonDeserialize( as=String.class ) - public void setDescription(String val ) { - description = val; - } - - /** The name of this module */ - private String name; - public String getName() { - return name; - } - - @JsonDeserialize( as=String.class ) - public void setName(String val ) { - name = val; - } - - /** The running status of this module */ - private String status; - public String getStatus() { - return status; - } - - @JsonDeserialize( as=String.class ) - public void setStatus(String val ) { - status = val; - } - - /** The support state of this module */ - private String support_level; - public String getSupport_level() { - return support_level; - } - - @JsonDeserialize( as=String.class ) - public void setSupport_level(String val ) { - support_level = val; - } - - /** The number of times this module is being used */ - private int use_count; - public int getUse_count() { - return use_count; - } - - @JsonDeserialize( as=int.class ) - public void setUse_count(int val ) { - use_count = val; - } - -/** No missing signatures from interface */ -} - diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/models/PeerStatusChange_impl_ari_1_10_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/models/PeerStatusChange_impl_ari_1_10_0.java deleted file mode 100644 index 4cf380b5..00000000 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/models/PeerStatusChange_impl_ari_1_10_0.java +++ /dev/null @@ -1,48 +0,0 @@ -package ch.loway.oss.ari4java.generated.ari_1_10_0.models; - -// ---------------------------------------------------- -// THIS CLASS WAS GENERATED AUTOMATICALLY -// PLEASE DO NOT EDIT -// Generated on: Tue Dec 19 09:55:49 CET 2017 -// ---------------------------------------------------- - -import ch.loway.oss.ari4java.generated.*; -import com.fasterxml.jackson.databind.annotation.JsonDeserialize; -import java.util.Date; -import java.util.List; -import java.util.Map; - -/********************************************************** - * The state of a peer associated with an endpoint has changed. - * - * Defined in file: events.json - * Generated by: Model - *********************************************************/ - -public class PeerStatusChange_impl_ari_1_10_0 extends Event_impl_ari_1_10_0 implements PeerStatusChange, java.io.Serializable { -private static final long serialVersionUID = 1L; - /** */ - private Endpoint endpoint; - public Endpoint getEndpoint() { - return endpoint; - } - - @JsonDeserialize( as=Endpoint_impl_ari_1_10_0.class ) - public void setEndpoint(Endpoint val ) { - endpoint = val; - } - - /** */ - private Peer peer; - public Peer getPeer() { - return peer; - } - - @JsonDeserialize( as=Peer_impl_ari_1_10_0.class ) - public void setPeer(Peer val ) { - peer = val; - } - -/** No missing signatures from interface */ -} - diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/models/Peer_impl_ari_1_10_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/models/Peer_impl_ari_1_10_0.java deleted file mode 100644 index b4b04acc..00000000 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/models/Peer_impl_ari_1_10_0.java +++ /dev/null @@ -1,81 +0,0 @@ -package ch.loway.oss.ari4java.generated.ari_1_10_0.models; - -// ---------------------------------------------------- -// THIS CLASS WAS GENERATED AUTOMATICALLY -// PLEASE DO NOT EDIT -// Generated on: Tue Dec 19 09:55:49 CET 2017 -// ---------------------------------------------------- - -import ch.loway.oss.ari4java.generated.*; -import com.fasterxml.jackson.databind.annotation.JsonDeserialize; -import java.util.Date; -import java.util.List; -import java.util.Map; - -/********************************************************** - * Detailed information about a remote peer that communicates with Asterisk. - * - * Defined in file: events.json - * Generated by: Model - *********************************************************/ - -public class Peer_impl_ari_1_10_0 implements Peer, java.io.Serializable { -private static final long serialVersionUID = 1L; - /** The IP address of the peer. */ - private String address; - public String getAddress() { - return address; - } - - @JsonDeserialize( as=String.class ) - public void setAddress(String val ) { - address = val; - } - - /** An optional reason associated with the change in peer_status. */ - private String cause; - public String getCause() { - return cause; - } - - @JsonDeserialize( as=String.class ) - public void setCause(String val ) { - cause = val; - } - - /** The current state of the peer. Note that the values of the status are dependent on the underlying peer technology. */ - private String peer_status; - public String getPeer_status() { - return peer_status; - } - - @JsonDeserialize( as=String.class ) - public void setPeer_status(String val ) { - peer_status = val; - } - - /** The port of the peer. */ - private String port; - public String getPort() { - return port; - } - - @JsonDeserialize( as=String.class ) - public void setPort(String val ) { - port = val; - } - - /** The last known time the peer was contacted. */ - private String time; - public String getTime() { - return time; - } - - @JsonDeserialize( as=String.class ) - public void setTime(String val ) { - time = val; - } - -/** No missing signatures from interface */ -} - diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/models/PlaybackContinuing_impl_ari_1_10_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/models/PlaybackContinuing_impl_ari_1_10_0.java deleted file mode 100644 index a4971db0..00000000 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/models/PlaybackContinuing_impl_ari_1_10_0.java +++ /dev/null @@ -1,37 +0,0 @@ -package ch.loway.oss.ari4java.generated.ari_1_10_0.models; - -// ---------------------------------------------------- -// THIS CLASS WAS GENERATED AUTOMATICALLY -// PLEASE DO NOT EDIT -// Generated on: Tue Dec 19 09:55:49 CET 2017 -// ---------------------------------------------------- - -import ch.loway.oss.ari4java.generated.*; -import com.fasterxml.jackson.databind.annotation.JsonDeserialize; -import java.util.Date; -import java.util.List; -import java.util.Map; - -/********************************************************** - * Event showing the continuation of a media playback operation from one media URI to the next in the list. - * - * Defined in file: events.json - * Generated by: Model - *********************************************************/ - -public class PlaybackContinuing_impl_ari_1_10_0 extends Event_impl_ari_1_10_0 implements PlaybackContinuing, java.io.Serializable { -private static final long serialVersionUID = 1L; - /** Playback control object */ - private Playback playback; - public Playback getPlayback() { - return playback; - } - - @JsonDeserialize( as=Playback_impl_ari_1_10_0.class ) - public void setPlayback(Playback val ) { - playback = val; - } - -/** No missing signatures from interface */ -} - diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/models/PlaybackFinished_impl_ari_1_10_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/models/PlaybackFinished_impl_ari_1_10_0.java deleted file mode 100644 index 5bc46ba9..00000000 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/models/PlaybackFinished_impl_ari_1_10_0.java +++ /dev/null @@ -1,37 +0,0 @@ -package ch.loway.oss.ari4java.generated.ari_1_10_0.models; - -// ---------------------------------------------------- -// THIS CLASS WAS GENERATED AUTOMATICALLY -// PLEASE DO NOT EDIT -// Generated on: Tue Dec 19 09:55:49 CET 2017 -// ---------------------------------------------------- - -import ch.loway.oss.ari4java.generated.*; -import com.fasterxml.jackson.databind.annotation.JsonDeserialize; -import java.util.Date; -import java.util.List; -import java.util.Map; - -/********************************************************** - * Event showing the completion of a media playback operation. - * - * Defined in file: events.json - * Generated by: Model - *********************************************************/ - -public class PlaybackFinished_impl_ari_1_10_0 extends Event_impl_ari_1_10_0 implements PlaybackFinished, java.io.Serializable { -private static final long serialVersionUID = 1L; - /** Playback control object */ - private Playback playback; - public Playback getPlayback() { - return playback; - } - - @JsonDeserialize( as=Playback_impl_ari_1_10_0.class ) - public void setPlayback(Playback val ) { - playback = val; - } - -/** No missing signatures from interface */ -} - diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/models/PlaybackStarted_impl_ari_1_10_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/models/PlaybackStarted_impl_ari_1_10_0.java deleted file mode 100644 index a8332f90..00000000 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/models/PlaybackStarted_impl_ari_1_10_0.java +++ /dev/null @@ -1,37 +0,0 @@ -package ch.loway.oss.ari4java.generated.ari_1_10_0.models; - -// ---------------------------------------------------- -// THIS CLASS WAS GENERATED AUTOMATICALLY -// PLEASE DO NOT EDIT -// Generated on: Tue Dec 19 09:55:49 CET 2017 -// ---------------------------------------------------- - -import ch.loway.oss.ari4java.generated.*; -import com.fasterxml.jackson.databind.annotation.JsonDeserialize; -import java.util.Date; -import java.util.List; -import java.util.Map; - -/********************************************************** - * Event showing the start of a media playback operation. - * - * Defined in file: events.json - * Generated by: Model - *********************************************************/ - -public class PlaybackStarted_impl_ari_1_10_0 extends Event_impl_ari_1_10_0 implements PlaybackStarted, java.io.Serializable { -private static final long serialVersionUID = 1L; - /** Playback control object */ - private Playback playback; - public Playback getPlayback() { - return playback; - } - - @JsonDeserialize( as=Playback_impl_ari_1_10_0.class ) - public void setPlayback(Playback val ) { - playback = val; - } - -/** No missing signatures from interface */ -} - diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/models/Playback_impl_ari_1_10_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/models/Playback_impl_ari_1_10_0.java deleted file mode 100644 index e089e9f5..00000000 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/models/Playback_impl_ari_1_10_0.java +++ /dev/null @@ -1,92 +0,0 @@ -package ch.loway.oss.ari4java.generated.ari_1_10_0.models; - -// ---------------------------------------------------- -// THIS CLASS WAS GENERATED AUTOMATICALLY -// PLEASE DO NOT EDIT -// Generated on: Tue Dec 19 09:55:49 CET 2017 -// ---------------------------------------------------- - -import ch.loway.oss.ari4java.generated.*; -import com.fasterxml.jackson.databind.annotation.JsonDeserialize; -import java.util.Date; -import java.util.List; -import java.util.Map; - -/********************************************************** - * Object representing the playback of media to a channel - * - * Defined in file: playbacks.json - * Generated by: Model - *********************************************************/ - -public class Playback_impl_ari_1_10_0 implements Playback, java.io.Serializable { -private static final long serialVersionUID = 1L; - /** ID for this playback operation */ - private String id; - public String getId() { - return id; - } - - @JsonDeserialize( as=String.class ) - public void setId(String val ) { - id = val; - } - - /** For media types that support multiple languages, the language requested for playback. */ - private String language; - public String getLanguage() { - return language; - } - - @JsonDeserialize( as=String.class ) - public void setLanguage(String val ) { - language = val; - } - - /** The URI for the media currently being played back. */ - private String media_uri; - public String getMedia_uri() { - return media_uri; - } - - @JsonDeserialize( as=String.class ) - public void setMedia_uri(String val ) { - media_uri = val; - } - - /** If a list of URIs is being played, the next media URI to be played back. */ - private String next_media_uri; - public String getNext_media_uri() { - return next_media_uri; - } - - @JsonDeserialize( as=String.class ) - public void setNext_media_uri(String val ) { - next_media_uri = val; - } - - /** Current state of the playback operation. */ - private String state; - public String getState() { - return state; - } - - @JsonDeserialize( as=String.class ) - public void setState(String val ) { - state = val; - } - - /** URI for the channel or bridge to play the media on */ - private String target_uri; - public String getTarget_uri() { - return target_uri; - } - - @JsonDeserialize( as=String.class ) - public void setTarget_uri(String val ) { - target_uri = val; - } - -/** No missing signatures from interface */ -} - diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/models/RecordingFailed_impl_ari_1_10_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/models/RecordingFailed_impl_ari_1_10_0.java deleted file mode 100644 index 58b8a41f..00000000 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/models/RecordingFailed_impl_ari_1_10_0.java +++ /dev/null @@ -1,37 +0,0 @@ -package ch.loway.oss.ari4java.generated.ari_1_10_0.models; - -// ---------------------------------------------------- -// THIS CLASS WAS GENERATED AUTOMATICALLY -// PLEASE DO NOT EDIT -// Generated on: Tue Dec 19 09:55:49 CET 2017 -// ---------------------------------------------------- - -import ch.loway.oss.ari4java.generated.*; -import com.fasterxml.jackson.databind.annotation.JsonDeserialize; -import java.util.Date; -import java.util.List; -import java.util.Map; - -/********************************************************** - * Event showing failure of a recording operation. - * - * Defined in file: events.json - * Generated by: Model - *********************************************************/ - -public class RecordingFailed_impl_ari_1_10_0 extends Event_impl_ari_1_10_0 implements RecordingFailed, java.io.Serializable { -private static final long serialVersionUID = 1L; - /** Recording control object */ - private LiveRecording recording; - public LiveRecording getRecording() { - return recording; - } - - @JsonDeserialize( as=LiveRecording_impl_ari_1_10_0.class ) - public void setRecording(LiveRecording val ) { - recording = val; - } - -/** No missing signatures from interface */ -} - diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/models/RecordingFinished_impl_ari_1_10_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/models/RecordingFinished_impl_ari_1_10_0.java deleted file mode 100644 index bb538546..00000000 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/models/RecordingFinished_impl_ari_1_10_0.java +++ /dev/null @@ -1,37 +0,0 @@ -package ch.loway.oss.ari4java.generated.ari_1_10_0.models; - -// ---------------------------------------------------- -// THIS CLASS WAS GENERATED AUTOMATICALLY -// PLEASE DO NOT EDIT -// Generated on: Tue Dec 19 09:55:49 CET 2017 -// ---------------------------------------------------- - -import ch.loway.oss.ari4java.generated.*; -import com.fasterxml.jackson.databind.annotation.JsonDeserialize; -import java.util.Date; -import java.util.List; -import java.util.Map; - -/********************************************************** - * Event showing the completion of a recording operation. - * - * Defined in file: events.json - * Generated by: Model - *********************************************************/ - -public class RecordingFinished_impl_ari_1_10_0 extends Event_impl_ari_1_10_0 implements RecordingFinished, java.io.Serializable { -private static final long serialVersionUID = 1L; - /** Recording control object */ - private LiveRecording recording; - public LiveRecording getRecording() { - return recording; - } - - @JsonDeserialize( as=LiveRecording_impl_ari_1_10_0.class ) - public void setRecording(LiveRecording val ) { - recording = val; - } - -/** No missing signatures from interface */ -} - diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/models/RecordingStarted_impl_ari_1_10_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/models/RecordingStarted_impl_ari_1_10_0.java deleted file mode 100644 index b44b0c51..00000000 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/models/RecordingStarted_impl_ari_1_10_0.java +++ /dev/null @@ -1,37 +0,0 @@ -package ch.loway.oss.ari4java.generated.ari_1_10_0.models; - -// ---------------------------------------------------- -// THIS CLASS WAS GENERATED AUTOMATICALLY -// PLEASE DO NOT EDIT -// Generated on: Tue Dec 19 09:55:49 CET 2017 -// ---------------------------------------------------- - -import ch.loway.oss.ari4java.generated.*; -import com.fasterxml.jackson.databind.annotation.JsonDeserialize; -import java.util.Date; -import java.util.List; -import java.util.Map; - -/********************************************************** - * Event showing the start of a recording operation. - * - * Defined in file: events.json - * Generated by: Model - *********************************************************/ - -public class RecordingStarted_impl_ari_1_10_0 extends Event_impl_ari_1_10_0 implements RecordingStarted, java.io.Serializable { -private static final long serialVersionUID = 1L; - /** Recording control object */ - private LiveRecording recording; - public LiveRecording getRecording() { - return recording; - } - - @JsonDeserialize( as=LiveRecording_impl_ari_1_10_0.class ) - public void setRecording(LiveRecording val ) { - recording = val; - } - -/** No missing signatures from interface */ -} - diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/models/SetId_impl_ari_1_10_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/models/SetId_impl_ari_1_10_0.java deleted file mode 100644 index caf7f729..00000000 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/models/SetId_impl_ari_1_10_0.java +++ /dev/null @@ -1,48 +0,0 @@ -package ch.loway.oss.ari4java.generated.ari_1_10_0.models; - -// ---------------------------------------------------- -// THIS CLASS WAS GENERATED AUTOMATICALLY -// PLEASE DO NOT EDIT -// Generated on: Tue Dec 19 09:55:49 CET 2017 -// ---------------------------------------------------- - -import ch.loway.oss.ari4java.generated.*; -import com.fasterxml.jackson.databind.annotation.JsonDeserialize; -import java.util.Date; -import java.util.List; -import java.util.Map; - -/********************************************************** - * Effective user/group id - * - * Defined in file: asterisk.json - * Generated by: Model - *********************************************************/ - -public class SetId_impl_ari_1_10_0 implements SetId, java.io.Serializable { -private static final long serialVersionUID = 1L; - /** Effective group id. */ - private String group; - public String getGroup() { - return group; - } - - @JsonDeserialize( as=String.class ) - public void setGroup(String val ) { - group = val; - } - - /** Effective user id. */ - private String user; - public String getUser() { - return user; - } - - @JsonDeserialize( as=String.class ) - public void setUser(String val ) { - user = val; - } - -/** No missing signatures from interface */ -} - diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/models/Sound_impl_ari_1_10_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/models/Sound_impl_ari_1_10_0.java deleted file mode 100644 index 0364ffb6..00000000 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/models/Sound_impl_ari_1_10_0.java +++ /dev/null @@ -1,59 +0,0 @@ -package ch.loway.oss.ari4java.generated.ari_1_10_0.models; - -// ---------------------------------------------------- -// THIS CLASS WAS GENERATED AUTOMATICALLY -// PLEASE DO NOT EDIT -// Generated on: Tue Dec 19 09:55:49 CET 2017 -// ---------------------------------------------------- - -import ch.loway.oss.ari4java.generated.*; -import com.fasterxml.jackson.databind.annotation.JsonDeserialize; -import java.util.Date; -import java.util.List; -import java.util.Map; - -/********************************************************** - * A media file that may be played back. - * - * Defined in file: sounds.json - * Generated by: Model - *********************************************************/ - -public class Sound_impl_ari_1_10_0 implements Sound, java.io.Serializable { -private static final long serialVersionUID = 1L; - /** The formats and languages in which this sound is available. */ - private List formats; - public List getFormats() { - return formats; - } - - @JsonDeserialize( contentAs=FormatLangPair_impl_ari_1_10_0.class ) - public void setFormats(List val ) { - formats = val; - } - - /** Sound's identifier. */ - private String id; - public String getId() { - return id; - } - - @JsonDeserialize( as=String.class ) - public void setId(String val ) { - id = val; - } - - /** Text description of the sound, usually the words spoken. */ - private String text; - public String getText() { - return text; - } - - @JsonDeserialize( as=String.class ) - public void setText(String val ) { - text = val; - } - -/** No missing signatures from interface */ -} - diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/models/StasisEnd_impl_ari_1_10_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/models/StasisEnd_impl_ari_1_10_0.java deleted file mode 100644 index a1f4e4cc..00000000 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/models/StasisEnd_impl_ari_1_10_0.java +++ /dev/null @@ -1,37 +0,0 @@ -package ch.loway.oss.ari4java.generated.ari_1_10_0.models; - -// ---------------------------------------------------- -// THIS CLASS WAS GENERATED AUTOMATICALLY -// PLEASE DO NOT EDIT -// Generated on: Tue Dec 19 09:55:49 CET 2017 -// ---------------------------------------------------- - -import ch.loway.oss.ari4java.generated.*; -import com.fasterxml.jackson.databind.annotation.JsonDeserialize; -import java.util.Date; -import java.util.List; -import java.util.Map; - -/********************************************************** - * Notification that a channel has left a Stasis application. - * - * Defined in file: events.json - * Generated by: Model - *********************************************************/ - -public class StasisEnd_impl_ari_1_10_0 extends Event_impl_ari_1_10_0 implements StasisEnd, java.io.Serializable { -private static final long serialVersionUID = 1L; - /** */ - private Channel channel; - public Channel getChannel() { - return channel; - } - - @JsonDeserialize( as=Channel_impl_ari_1_10_0.class ) - public void setChannel(Channel val ) { - channel = val; - } - -/** No missing signatures from interface */ -} - diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/models/StasisStart_impl_ari_1_10_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/models/StasisStart_impl_ari_1_10_0.java deleted file mode 100644 index eb6c3e0b..00000000 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/models/StasisStart_impl_ari_1_10_0.java +++ /dev/null @@ -1,59 +0,0 @@ -package ch.loway.oss.ari4java.generated.ari_1_10_0.models; - -// ---------------------------------------------------- -// THIS CLASS WAS GENERATED AUTOMATICALLY -// PLEASE DO NOT EDIT -// Generated on: Tue Dec 19 09:55:49 CET 2017 -// ---------------------------------------------------- - -import ch.loway.oss.ari4java.generated.*; -import com.fasterxml.jackson.databind.annotation.JsonDeserialize; -import java.util.Date; -import java.util.List; -import java.util.Map; - -/********************************************************** - * Notification that a channel has entered a Stasis application. - * - * Defined in file: events.json - * Generated by: Model - *********************************************************/ - -public class StasisStart_impl_ari_1_10_0 extends Event_impl_ari_1_10_0 implements StasisStart, java.io.Serializable { -private static final long serialVersionUID = 1L; - /** Arguments to the application */ - private List args; - public List getArgs() { - return args; - } - - @JsonDeserialize( contentAs=String.class ) - public void setArgs(List val ) { - args = val; - } - - /** */ - private Channel channel; - public Channel getChannel() { - return channel; - } - - @JsonDeserialize( as=Channel_impl_ari_1_10_0.class ) - public void setChannel(Channel val ) { - channel = val; - } - - /** */ - private Channel replace_channel; - public Channel getReplace_channel() { - return replace_channel; - } - - @JsonDeserialize( as=Channel_impl_ari_1_10_0.class ) - public void setReplace_channel(Channel val ) { - replace_channel = val; - } - -/** No missing signatures from interface */ -} - diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/models/StatusInfo_impl_ari_1_10_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/models/StatusInfo_impl_ari_1_10_0.java deleted file mode 100644 index cd04fb28..00000000 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/models/StatusInfo_impl_ari_1_10_0.java +++ /dev/null @@ -1,48 +0,0 @@ -package ch.loway.oss.ari4java.generated.ari_1_10_0.models; - -// ---------------------------------------------------- -// THIS CLASS WAS GENERATED AUTOMATICALLY -// PLEASE DO NOT EDIT -// Generated on: Tue Dec 19 09:55:49 CET 2017 -// ---------------------------------------------------- - -import ch.loway.oss.ari4java.generated.*; -import com.fasterxml.jackson.databind.annotation.JsonDeserialize; -import java.util.Date; -import java.util.List; -import java.util.Map; - -/********************************************************** - * Info about Asterisk status - * - * Defined in file: asterisk.json - * Generated by: Model - *********************************************************/ - -public class StatusInfo_impl_ari_1_10_0 implements StatusInfo, java.io.Serializable { -private static final long serialVersionUID = 1L; - /** Time when Asterisk was last reloaded. */ - private Date last_reload_time; - public Date getLast_reload_time() { - return last_reload_time; - } - - @JsonDeserialize( as=Date.class ) - public void setLast_reload_time(Date val ) { - last_reload_time = val; - } - - /** Time when Asterisk was started. */ - private Date startup_time; - public Date getStartup_time() { - return startup_time; - } - - @JsonDeserialize( as=Date.class ) - public void setStartup_time(Date val ) { - startup_time = val; - } - -/** No missing signatures from interface */ -} - diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/models/StoredRecording_impl_ari_1_10_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/models/StoredRecording_impl_ari_1_10_0.java deleted file mode 100644 index 319d964a..00000000 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/models/StoredRecording_impl_ari_1_10_0.java +++ /dev/null @@ -1,48 +0,0 @@ -package ch.loway.oss.ari4java.generated.ari_1_10_0.models; - -// ---------------------------------------------------- -// THIS CLASS WAS GENERATED AUTOMATICALLY -// PLEASE DO NOT EDIT -// Generated on: Tue Dec 19 09:55:49 CET 2017 -// ---------------------------------------------------- - -import ch.loway.oss.ari4java.generated.*; -import com.fasterxml.jackson.databind.annotation.JsonDeserialize; -import java.util.Date; -import java.util.List; -import java.util.Map; - -/********************************************************** - * A past recording that may be played back. - * - * Defined in file: recordings.json - * Generated by: Model - *********************************************************/ - -public class StoredRecording_impl_ari_1_10_0 implements StoredRecording, java.io.Serializable { -private static final long serialVersionUID = 1L; - /** */ - private String format; - public String getFormat() { - return format; - } - - @JsonDeserialize( as=String.class ) - public void setFormat(String val ) { - format = val; - } - - /** */ - private String name; - public String getName() { - return name; - } - - @JsonDeserialize( as=String.class ) - public void setName(String val ) { - name = val; - } - -/** No missing signatures from interface */ -} - diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/models/SystemInfo_impl_ari_1_10_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/models/SystemInfo_impl_ari_1_10_0.java deleted file mode 100644 index b54392bd..00000000 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/models/SystemInfo_impl_ari_1_10_0.java +++ /dev/null @@ -1,48 +0,0 @@ -package ch.loway.oss.ari4java.generated.ari_1_10_0.models; - -// ---------------------------------------------------- -// THIS CLASS WAS GENERATED AUTOMATICALLY -// PLEASE DO NOT EDIT -// Generated on: Tue Dec 19 09:55:49 CET 2017 -// ---------------------------------------------------- - -import ch.loway.oss.ari4java.generated.*; -import com.fasterxml.jackson.databind.annotation.JsonDeserialize; -import java.util.Date; -import java.util.List; -import java.util.Map; - -/********************************************************** - * Info about Asterisk - * - * Defined in file: asterisk.json - * Generated by: Model - *********************************************************/ - -public class SystemInfo_impl_ari_1_10_0 implements SystemInfo, java.io.Serializable { -private static final long serialVersionUID = 1L; - /** */ - private String entity_id; - public String getEntity_id() { - return entity_id; - } - - @JsonDeserialize( as=String.class ) - public void setEntity_id(String val ) { - entity_id = val; - } - - /** Asterisk version. */ - private String version; - public String getVersion() { - return version; - } - - @JsonDeserialize( as=String.class ) - public void setVersion(String val ) { - version = val; - } - -/** No missing signatures from interface */ -} - diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/models/TextMessageReceived_impl_ari_1_10_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/models/TextMessageReceived_impl_ari_1_10_0.java deleted file mode 100644 index 5cf44ebe..00000000 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/models/TextMessageReceived_impl_ari_1_10_0.java +++ /dev/null @@ -1,48 +0,0 @@ -package ch.loway.oss.ari4java.generated.ari_1_10_0.models; - -// ---------------------------------------------------- -// THIS CLASS WAS GENERATED AUTOMATICALLY -// PLEASE DO NOT EDIT -// Generated on: Tue Dec 19 09:55:49 CET 2017 -// ---------------------------------------------------- - -import ch.loway.oss.ari4java.generated.*; -import com.fasterxml.jackson.databind.annotation.JsonDeserialize; -import java.util.Date; -import java.util.List; -import java.util.Map; - -/********************************************************** - * A text message was received from an endpoint. - * - * Defined in file: events.json - * Generated by: Model - *********************************************************/ - -public class TextMessageReceived_impl_ari_1_10_0 extends Event_impl_ari_1_10_0 implements TextMessageReceived, java.io.Serializable { -private static final long serialVersionUID = 1L; - /** */ - private Endpoint endpoint; - public Endpoint getEndpoint() { - return endpoint; - } - - @JsonDeserialize( as=Endpoint_impl_ari_1_10_0.class ) - public void setEndpoint(Endpoint val ) { - endpoint = val; - } - - /** */ - private TextMessage message; - public TextMessage getMessage() { - return message; - } - - @JsonDeserialize( as=TextMessage_impl_ari_1_10_0.class ) - public void setMessage(TextMessage val ) { - message = val; - } - -/** No missing signatures from interface */ -} - diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/models/TextMessageVariable_impl_ari_1_10_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/models/TextMessageVariable_impl_ari_1_10_0.java deleted file mode 100644 index cdabaa55..00000000 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/models/TextMessageVariable_impl_ari_1_10_0.java +++ /dev/null @@ -1,48 +0,0 @@ -package ch.loway.oss.ari4java.generated.ari_1_10_0.models; - -// ---------------------------------------------------- -// THIS CLASS WAS GENERATED AUTOMATICALLY -// PLEASE DO NOT EDIT -// Generated on: Tue Dec 19 09:55:49 CET 2017 -// ---------------------------------------------------- - -import ch.loway.oss.ari4java.generated.*; -import com.fasterxml.jackson.databind.annotation.JsonDeserialize; -import java.util.Date; -import java.util.List; -import java.util.Map; - -/********************************************************** - * A key/value pair variable in a text message. - * - * Defined in file: endpoints.json - * Generated by: Model - *********************************************************/ - -public class TextMessageVariable_impl_ari_1_10_0 implements TextMessageVariable, java.io.Serializable { -private static final long serialVersionUID = 1L; - /** A unique key identifying the variable. */ - private String key; - public String getKey() { - return key; - } - - @JsonDeserialize( as=String.class ) - public void setKey(String val ) { - key = val; - } - - /** The value of the variable. */ - private String value; - public String getValue() { - return value; - } - - @JsonDeserialize( as=String.class ) - public void setValue(String val ) { - value = val; - } - -/** No missing signatures from interface */ -} - diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/models/TextMessage_impl_ari_1_10_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/models/TextMessage_impl_ari_1_10_0.java deleted file mode 100644 index 3be50f12..00000000 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/models/TextMessage_impl_ari_1_10_0.java +++ /dev/null @@ -1,70 +0,0 @@ -package ch.loway.oss.ari4java.generated.ari_1_10_0.models; - -// ---------------------------------------------------- -// THIS CLASS WAS GENERATED AUTOMATICALLY -// PLEASE DO NOT EDIT -// Generated on: Tue Dec 19 09:55:49 CET 2017 -// ---------------------------------------------------- - -import ch.loway.oss.ari4java.generated.*; -import com.fasterxml.jackson.databind.annotation.JsonDeserialize; -import java.util.Date; -import java.util.List; -import java.util.Map; - -/********************************************************** - * A text message. - * - * Defined in file: endpoints.json - * Generated by: Model - *********************************************************/ - -public class TextMessage_impl_ari_1_10_0 implements TextMessage, java.io.Serializable { -private static final long serialVersionUID = 1L; - /** The text of the message. */ - private String body; - public String getBody() { - return body; - } - - @JsonDeserialize( as=String.class ) - public void setBody(String val ) { - body = val; - } - - /** A technology specific URI specifying the source of the message. For sip and pjsip technologies, any SIP URI can be specified. For xmpp, the URI must correspond to the client connection being used to send the message. */ - private String from; - public String getFrom() { - return from; - } - - @JsonDeserialize( as=String.class ) - public void setFrom(String val ) { - from = val; - } - - /** A technology specific URI specifying the destination of the message. Valid technologies include sip, pjsip, and xmp. The destination of a message should be an endpoint. */ - private String to; - public String getTo() { - return to; - } - - @JsonDeserialize( as=String.class ) - public void setTo(String val ) { - to = val; - } - - /** Technology specific key/value pairs associated with the message. */ - private List variables; - public List getVariables() { - return variables; - } - - @JsonDeserialize( contentAs=TextMessageVariable_impl_ari_1_10_0.class ) - public void setVariables(List val ) { - variables = val; - } - -/** No missing signatures from interface */ -} - diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/models/Variable_impl_ari_1_10_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/models/Variable_impl_ari_1_10_0.java deleted file mode 100644 index 61c603e6..00000000 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_10_0/models/Variable_impl_ari_1_10_0.java +++ /dev/null @@ -1,37 +0,0 @@ -package ch.loway.oss.ari4java.generated.ari_1_10_0.models; - -// ---------------------------------------------------- -// THIS CLASS WAS GENERATED AUTOMATICALLY -// PLEASE DO NOT EDIT -// Generated on: Tue Dec 19 09:55:49 CET 2017 -// ---------------------------------------------------- - -import ch.loway.oss.ari4java.generated.*; -import com.fasterxml.jackson.databind.annotation.JsonDeserialize; -import java.util.Date; -import java.util.List; -import java.util.Map; - -/********************************************************** - * The value of a channel variable - * - * Defined in file: asterisk.json - * Generated by: Model - *********************************************************/ - -public class Variable_impl_ari_1_10_0 implements Variable, java.io.Serializable { -private static final long serialVersionUID = 1L; - /** The value of the variable requested */ - private String value; - public String getValue() { - return value; - } - - @JsonDeserialize( as=String.class ) - public void setValue(String val ) { - value = val; - } - -/** No missing signatures from interface */ -} - diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_5_0/AriBuilder_impl_ari_1_5_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_5_0/AriBuilder_impl_ari_1_5_0.java deleted file mode 100644 index 57686444..00000000 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_5_0/AriBuilder_impl_ari_1_5_0.java +++ /dev/null @@ -1,328 +0,0 @@ -package ch.loway.oss.ari4java.generated.ari_1_5_0; - -// ---------------------------------------------------- -// THIS CLASS WAS GENERATED AUTOMATICALLY -// PLEASE DO NOT EDIT -// Generated on: Tue Dec 19 09:55:50 CET 2017 -// ---------------------------------------------------- - -import ch.loway.oss.ari4java.generated.ari_1_5_0.models.*; -import ch.loway.oss.ari4java.generated.ari_1_5_0.actions.*; -import ch.loway.oss.ari4java.generated.*; -import ch.loway.oss.ari4java.ARI; - -public class AriBuilder_impl_ari_1_5_0 implements AriBuilder { - -public ActionApplications actionApplications() { - return new ActionApplications_impl_ari_1_5_0(); - }; - -public ActionBridges actionBridges() { - return new ActionBridges_impl_ari_1_5_0(); - }; - -public ActionChannels actionChannels() { - return new ActionChannels_impl_ari_1_5_0(); - }; - -public ActionRecordings actionRecordings() { - return new ActionRecordings_impl_ari_1_5_0(); - }; - -public ActionEndpoints actionEndpoints() { - return new ActionEndpoints_impl_ari_1_5_0(); - }; - -public ActionAsterisk actionAsterisk() { - return new ActionAsterisk_impl_ari_1_5_0(); - }; - -public ActionEvents actionEvents() { - return new ActionEvents_impl_ari_1_5_0(); - }; - -public ActionSounds actionSounds() { - return new ActionSounds_impl_ari_1_5_0(); - }; - -public ActionPlaybacks actionPlaybacks() { - return new ActionPlaybacks_impl_ari_1_5_0(); - }; - -public ActionDeviceStates actionDeviceStates() { - return new ActionDeviceStates_impl_ari_1_5_0(); - }; - -public ConfigInfo configInfo() { - return new ConfigInfo_impl_ari_1_5_0(); - }; - -public RecordingFinished recordingFinished() { - return new RecordingFinished_impl_ari_1_5_0(); - }; - -public DialplanCEP dialplanCEP() { - return new DialplanCEP_impl_ari_1_5_0(); - }; - -public ApplicationReplaced applicationReplaced() { - return new ApplicationReplaced_impl_ari_1_5_0(); - }; - -public ChannelCallerId channelCallerId() { - return new ChannelCallerId_impl_ari_1_5_0(); - }; - -public ChannelEnteredBridge channelEnteredBridge() { - return new ChannelEnteredBridge_impl_ari_1_5_0(); - }; - -public ChannelVarset channelVarset() { - return new ChannelVarset_impl_ari_1_5_0(); - }; - -public ChannelCreated channelCreated() { - return new ChannelCreated_impl_ari_1_5_0(); - }; - -public StasisEnd stasisEnd() { - return new StasisEnd_impl_ari_1_5_0(); - }; - -public SystemInfo systemInfo() { - return new SystemInfo_impl_ari_1_5_0(); - }; - -public Playback playback() { - return new Playback_impl_ari_1_5_0(); - }; - -public LiveRecording liveRecording() { - return new LiveRecording_impl_ari_1_5_0(); - }; - -public StatusInfo statusInfo() { - return new StatusInfo_impl_ari_1_5_0(); - }; - -public DeviceState deviceState() { - return new DeviceState_impl_ari_1_5_0(); - }; - -public Bridge bridge() { - return new Bridge_impl_ari_1_5_0(); - }; - -public CallerID callerID() { - return new CallerID_impl_ari_1_5_0(); - }; - -public Event event() { - return new Event_impl_ari_1_5_0(); - }; - -public ChannelDialplan channelDialplan() { - return new ChannelDialplan_impl_ari_1_5_0(); - }; - -public Sound sound() { - return new Sound_impl_ari_1_5_0(); - }; - -public EndpointStateChange endpointStateChange() { - return new EndpointStateChange_impl_ari_1_5_0(); - }; - -public ChannelHangupRequest channelHangupRequest() { - return new ChannelHangupRequest_impl_ari_1_5_0(); - }; - -public TextMessage textMessage() { - return new TextMessage_impl_ari_1_5_0(); - }; - -public Dial dial() { - return new Dial_impl_ari_1_5_0(); - }; - -public BridgeAttendedTransfer bridgeAttendedTransfer() { - return new BridgeAttendedTransfer_impl_ari_1_5_0(); - }; - -public PlaybackFinished playbackFinished() { - return new PlaybackFinished_impl_ari_1_5_0(); - }; - -public BridgeBlindTransfer bridgeBlindTransfer() { - return new BridgeBlindTransfer_impl_ari_1_5_0(); - }; - -public ChannelLeftBridge channelLeftBridge() { - return new ChannelLeftBridge_impl_ari_1_5_0(); - }; - -public TextMessageVariable textMessageVariable() { - return new TextMessageVariable_impl_ari_1_5_0(); - }; - -public AsteriskInfo asteriskInfo() { - return new AsteriskInfo_impl_ari_1_5_0(); - }; - -public Variable variable() { - return new Variable_impl_ari_1_5_0(); - }; - -public DeviceStateChanged deviceStateChanged() { - return new DeviceStateChanged_impl_ari_1_5_0(); - }; - -public BuildInfo buildInfo() { - return new BuildInfo_impl_ari_1_5_0(); - }; - -public Application application() { - return new Application_impl_ari_1_5_0(); - }; - -public Endpoint endpoint() { - return new Endpoint_impl_ari_1_5_0(); - }; - -public Dialed dialed() { - return new Dialed_impl_ari_1_5_0(); - }; - -public ChannelDestroyed channelDestroyed() { - return new ChannelDestroyed_impl_ari_1_5_0(); - }; - -public Message message() { - return new Message_impl_ari_1_5_0(); - }; - -public FormatLangPair formatLangPair() { - return new FormatLangPair_impl_ari_1_5_0(); - }; - -public BridgeDestroyed bridgeDestroyed() { - return new BridgeDestroyed_impl_ari_1_5_0(); - }; - -public ChannelTalkingFinished channelTalkingFinished() { - return new ChannelTalkingFinished_impl_ari_1_5_0(); - }; - -public StoredRecording storedRecording() { - return new StoredRecording_impl_ari_1_5_0(); - }; - -public PlaybackStarted playbackStarted() { - return new PlaybackStarted_impl_ari_1_5_0(); - }; - -public StasisStart stasisStart() { - return new StasisStart_impl_ari_1_5_0(); - }; - -public RecordingStarted recordingStarted() { - return new RecordingStarted_impl_ari_1_5_0(); - }; - -public ChannelStateChange channelStateChange() { - return new ChannelStateChange_impl_ari_1_5_0(); - }; - -public ChannelUserevent channelUserevent() { - return new ChannelUserevent_impl_ari_1_5_0(); - }; - -public ChannelTalkingStarted channelTalkingStarted() { - return new ChannelTalkingStarted_impl_ari_1_5_0(); - }; - -public ChannelDtmfReceived channelDtmfReceived() { - return new ChannelDtmfReceived_impl_ari_1_5_0(); - }; - -public BridgeCreated bridgeCreated() { - return new BridgeCreated_impl_ari_1_5_0(); - }; - -public BridgeMerged bridgeMerged() { - return new BridgeMerged_impl_ari_1_5_0(); - }; - -public MissingParams missingParams() { - return new MissingParams_impl_ari_1_5_0(); - }; - -public Channel channel() { - return new Channel_impl_ari_1_5_0(); - }; - -public SetId setId() { - return new SetId_impl_ari_1_5_0(); - }; - -public RecordingFailed recordingFailed() { - return new RecordingFailed_impl_ari_1_5_0(); - }; - -public TextMessageReceived textMessageReceived() { - return new TextMessageReceived_impl_ari_1_5_0(); - }; - -public BridgeVideoSourceChanged bridgeVideoSourceChanged() { - throw new UnsupportedOperationException(); - }; - -public ChannelConnectedLine channelConnectedLine() { - throw new UnsupportedOperationException(); - }; - -public ChannelHold channelHold() { - throw new UnsupportedOperationException(); - }; - -public ChannelUnhold channelUnhold() { - throw new UnsupportedOperationException(); - }; - -public ConfigTuple configTuple() { - throw new UnsupportedOperationException(); - }; - -public ContactInfo contactInfo() { - throw new UnsupportedOperationException(); - }; - -public ContactStatusChange contactStatusChange() { - throw new UnsupportedOperationException(); - }; - -public LogChannel logChannel() { - throw new UnsupportedOperationException(); - }; - -public Module module() { - throw new UnsupportedOperationException(); - }; - -public Peer peer() { - throw new UnsupportedOperationException(); - }; - -public PeerStatusChange peerStatusChange() { - throw new UnsupportedOperationException(); - }; - -public PlaybackContinuing playbackContinuing() { - throw new UnsupportedOperationException(); - }; - -public ARI.ClassFactory getClassFactory() { - return new ClassTranslator_impl_ari_1_5_0(); -}; - -}; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_5_0/ClassTranslator_impl_ari_1_5_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_5_0/ClassTranslator_impl_ari_1_5_0.java deleted file mode 100644 index 3cef052b..00000000 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_5_0/ClassTranslator_impl_ari_1_5_0.java +++ /dev/null @@ -1,287 +0,0 @@ -package ch.loway.oss.ari4java.generated.ari_1_5_0; - -// ---------------------------------------------------- -// THIS CLASS WAS GENERATED AUTOMATICALLY -// PLEASE DO NOT EDIT -// Generated on: Tue Dec 19 09:55:50 CET 2017 -// ---------------------------------------------------- - -import ch.loway.oss.ari4java.ARI; -import ch.loway.oss.ari4java.generated.*; -import ch.loway.oss.ari4java.generated.ari_1_5_0.models.*; -import ch.loway.oss.ari4java.generated.ari_1_5_0.actions.*; - -/********************************************************** - * This is a class translator. - *********************************************************/ -public class ClassTranslator_impl_ari_1_5_0 implements ARI.ClassFactory { - - @Override - public Class getImplementationFor(Class interfaceClass) { - - if ( interfaceClass.equals(ActionApplications.class) ) { - return (ActionApplications_impl_ari_1_5_0.class); - } else - - if ( interfaceClass.equals(ActionAsterisk.class) ) { - return (ActionAsterisk_impl_ari_1_5_0.class); - } else - - if ( interfaceClass.equals(ActionBridges.class) ) { - return (ActionBridges_impl_ari_1_5_0.class); - } else - - if ( interfaceClass.equals(ActionChannels.class) ) { - return (ActionChannels_impl_ari_1_5_0.class); - } else - - if ( interfaceClass.equals(ActionDeviceStates.class) ) { - return (ActionDeviceStates_impl_ari_1_5_0.class); - } else - - if ( interfaceClass.equals(ActionEndpoints.class) ) { - return (ActionEndpoints_impl_ari_1_5_0.class); - } else - - if ( interfaceClass.equals(ActionEvents.class) ) { - return (ActionEvents_impl_ari_1_5_0.class); - } else - - if ( interfaceClass.equals(ActionPlaybacks.class) ) { - return (ActionPlaybacks_impl_ari_1_5_0.class); - } else - - if ( interfaceClass.equals(ActionRecordings.class) ) { - return (ActionRecordings_impl_ari_1_5_0.class); - } else - - if ( interfaceClass.equals(ActionSounds.class) ) { - return (ActionSounds_impl_ari_1_5_0.class); - } else - - if ( interfaceClass.equals(Application.class) ) { - return (Application_impl_ari_1_5_0.class); - } else - - if ( interfaceClass.equals(ApplicationReplaced.class) ) { - return (ApplicationReplaced_impl_ari_1_5_0.class); - } else - - if ( interfaceClass.equals(AsteriskInfo.class) ) { - return (AsteriskInfo_impl_ari_1_5_0.class); - } else - - if ( interfaceClass.equals(Bridge.class) ) { - return (Bridge_impl_ari_1_5_0.class); - } else - - if ( interfaceClass.equals(BridgeAttendedTransfer.class) ) { - return (BridgeAttendedTransfer_impl_ari_1_5_0.class); - } else - - if ( interfaceClass.equals(BridgeBlindTransfer.class) ) { - return (BridgeBlindTransfer_impl_ari_1_5_0.class); - } else - - if ( interfaceClass.equals(BridgeCreated.class) ) { - return (BridgeCreated_impl_ari_1_5_0.class); - } else - - if ( interfaceClass.equals(BridgeDestroyed.class) ) { - return (BridgeDestroyed_impl_ari_1_5_0.class); - } else - - if ( interfaceClass.equals(BridgeMerged.class) ) { - return (BridgeMerged_impl_ari_1_5_0.class); - } else - - if ( interfaceClass.equals(BuildInfo.class) ) { - return (BuildInfo_impl_ari_1_5_0.class); - } else - - if ( interfaceClass.equals(CallerID.class) ) { - return (CallerID_impl_ari_1_5_0.class); - } else - - if ( interfaceClass.equals(Channel.class) ) { - return (Channel_impl_ari_1_5_0.class); - } else - - if ( interfaceClass.equals(ChannelCallerId.class) ) { - return (ChannelCallerId_impl_ari_1_5_0.class); - } else - - if ( interfaceClass.equals(ChannelCreated.class) ) { - return (ChannelCreated_impl_ari_1_5_0.class); - } else - - if ( interfaceClass.equals(ChannelDestroyed.class) ) { - return (ChannelDestroyed_impl_ari_1_5_0.class); - } else - - if ( interfaceClass.equals(ChannelDialplan.class) ) { - return (ChannelDialplan_impl_ari_1_5_0.class); - } else - - if ( interfaceClass.equals(ChannelDtmfReceived.class) ) { - return (ChannelDtmfReceived_impl_ari_1_5_0.class); - } else - - if ( interfaceClass.equals(ChannelEnteredBridge.class) ) { - return (ChannelEnteredBridge_impl_ari_1_5_0.class); - } else - - if ( interfaceClass.equals(ChannelHangupRequest.class) ) { - return (ChannelHangupRequest_impl_ari_1_5_0.class); - } else - - if ( interfaceClass.equals(ChannelLeftBridge.class) ) { - return (ChannelLeftBridge_impl_ari_1_5_0.class); - } else - - if ( interfaceClass.equals(ChannelStateChange.class) ) { - return (ChannelStateChange_impl_ari_1_5_0.class); - } else - - if ( interfaceClass.equals(ChannelTalkingFinished.class) ) { - return (ChannelTalkingFinished_impl_ari_1_5_0.class); - } else - - if ( interfaceClass.equals(ChannelTalkingStarted.class) ) { - return (ChannelTalkingStarted_impl_ari_1_5_0.class); - } else - - if ( interfaceClass.equals(ChannelUserevent.class) ) { - return (ChannelUserevent_impl_ari_1_5_0.class); - } else - - if ( interfaceClass.equals(ChannelVarset.class) ) { - return (ChannelVarset_impl_ari_1_5_0.class); - } else - - if ( interfaceClass.equals(ConfigInfo.class) ) { - return (ConfigInfo_impl_ari_1_5_0.class); - } else - - if ( interfaceClass.equals(DeviceState.class) ) { - return (DeviceState_impl_ari_1_5_0.class); - } else - - if ( interfaceClass.equals(DeviceStateChanged.class) ) { - return (DeviceStateChanged_impl_ari_1_5_0.class); - } else - - if ( interfaceClass.equals(Dial.class) ) { - return (Dial_impl_ari_1_5_0.class); - } else - - if ( interfaceClass.equals(Dialed.class) ) { - return (Dialed_impl_ari_1_5_0.class); - } else - - if ( interfaceClass.equals(DialplanCEP.class) ) { - return (DialplanCEP_impl_ari_1_5_0.class); - } else - - if ( interfaceClass.equals(Endpoint.class) ) { - return (Endpoint_impl_ari_1_5_0.class); - } else - - if ( interfaceClass.equals(EndpointStateChange.class) ) { - return (EndpointStateChange_impl_ari_1_5_0.class); - } else - - if ( interfaceClass.equals(Event.class) ) { - return (Event_impl_ari_1_5_0.class); - } else - - if ( interfaceClass.equals(FormatLangPair.class) ) { - return (FormatLangPair_impl_ari_1_5_0.class); - } else - - if ( interfaceClass.equals(LiveRecording.class) ) { - return (LiveRecording_impl_ari_1_5_0.class); - } else - - if ( interfaceClass.equals(Message.class) ) { - return (Message_impl_ari_1_5_0.class); - } else - - if ( interfaceClass.equals(MissingParams.class) ) { - return (MissingParams_impl_ari_1_5_0.class); - } else - - if ( interfaceClass.equals(Playback.class) ) { - return (Playback_impl_ari_1_5_0.class); - } else - - if ( interfaceClass.equals(PlaybackFinished.class) ) { - return (PlaybackFinished_impl_ari_1_5_0.class); - } else - - if ( interfaceClass.equals(PlaybackStarted.class) ) { - return (PlaybackStarted_impl_ari_1_5_0.class); - } else - - if ( interfaceClass.equals(RecordingFailed.class) ) { - return (RecordingFailed_impl_ari_1_5_0.class); - } else - - if ( interfaceClass.equals(RecordingFinished.class) ) { - return (RecordingFinished_impl_ari_1_5_0.class); - } else - - if ( interfaceClass.equals(RecordingStarted.class) ) { - return (RecordingStarted_impl_ari_1_5_0.class); - } else - - if ( interfaceClass.equals(SetId.class) ) { - return (SetId_impl_ari_1_5_0.class); - } else - - if ( interfaceClass.equals(Sound.class) ) { - return (Sound_impl_ari_1_5_0.class); - } else - - if ( interfaceClass.equals(StasisEnd.class) ) { - return (StasisEnd_impl_ari_1_5_0.class); - } else - - if ( interfaceClass.equals(StasisStart.class) ) { - return (StasisStart_impl_ari_1_5_0.class); - } else - - if ( interfaceClass.equals(StatusInfo.class) ) { - return (StatusInfo_impl_ari_1_5_0.class); - } else - - if ( interfaceClass.equals(StoredRecording.class) ) { - return (StoredRecording_impl_ari_1_5_0.class); - } else - - if ( interfaceClass.equals(SystemInfo.class) ) { - return (SystemInfo_impl_ari_1_5_0.class); - } else - - if ( interfaceClass.equals(TextMessage.class) ) { - return (TextMessage_impl_ari_1_5_0.class); - } else - - if ( interfaceClass.equals(TextMessageReceived.class) ) { - return (TextMessageReceived_impl_ari_1_5_0.class); - } else - - if ( interfaceClass.equals(TextMessageVariable.class) ) { - return (TextMessageVariable_impl_ari_1_5_0.class); - } else - - if ( interfaceClass.equals(Variable.class) ) { - return (Variable_impl_ari_1_5_0.class); - } else - { - return null; - } - } -} - - diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_5_0/actions/ActionApplications_impl_ari_1_5_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_5_0/actions/ActionApplications_impl_ari_1_5_0.java deleted file mode 100644 index 01ff5dc9..00000000 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_5_0/actions/ActionApplications_impl_ari_1_5_0.java +++ /dev/null @@ -1,140 +0,0 @@ -package ch.loway.oss.ari4java.generated.ari_1_5_0.actions; - -// ---------------------------------------------------- -// THIS CLASS WAS GENERATED AUTOMATICALLY -// PLEASE DO NOT EDIT -// Generated on: Tue Dec 19 09:55:49 CET 2017 -// ---------------------------------------------------- - -import ch.loway.oss.ari4java.generated.*; -import java.util.Date; -import java.util.List; -import java.util.Map; -import java.util.ArrayList; -import ch.loway.oss.ari4java.tools.BaseAriAction; -import ch.loway.oss.ari4java.tools.RestException; -import ch.loway.oss.ari4java.tools.AriCallback; -import ch.loway.oss.ari4java.tools.HttpParam; -import ch.loway.oss.ari4java.tools.HttpResponse; -import com.fasterxml.jackson.core.type.TypeReference; -import ch.loway.oss.ari4java.generated.ari_1_5_0.models.*; - -/********************************************************** - * - * Generated by: Apis - *********************************************************/ - - -public class ActionApplications_impl_ari_1_5_0 extends BaseAriAction implements ActionApplications { -/********************************************************** - * Stasis applications - * - * List all applications. - *********************************************************/ -private void buildList() { -reset(); -url = "/applications"; -method = "GET"; -} - -@Override -public List list() throws RestException { -buildList(); -String json = httpActionSync(); -return deserializeJsonAsAbstractList( json, - new TypeReference>() {} ); -} - -@Override -public void list(AriCallback> callback) { -buildList(); -httpActionAsync(callback, new TypeReference>() {}); -} - -/********************************************************** - * Stasis application - * - * Get details of an application. - *********************************************************/ -private void buildGet(String applicationName) { -reset(); -url = "/applications/" + applicationName + ""; -method = "GET"; -lE.add( HttpResponse.build( 404, "Application does not exist.") ); -} - -@Override -public Application get(String applicationName) throws RestException { -buildGet(applicationName); -String json = httpActionSync(); -return deserializeJson( json, Application_impl_ari_1_5_0.class ); -} - -@Override -public void get(String applicationName, AriCallback callback) { -buildGet(applicationName); -httpActionAsync(callback, Application_impl_ari_1_5_0.class); -} - -/********************************************************** - * Stasis application - * - * Subscribe an application to a event source. - * Returns the state of the application after the subscriptions have changed - *********************************************************/ -private void buildSubscribe(String applicationName, String eventSource) { -reset(); -url = "/applications/" + applicationName + "/subscription"; -method = "POST"; -lParamQuery.add( HttpParam.build( "eventSource", eventSource) ); -lE.add( HttpResponse.build( 400, "Missing parameter.") ); -lE.add( HttpResponse.build( 404, "Application does not exist.") ); -lE.add( HttpResponse.build( 422, "Event source does not exist.") ); -} - -@Override -public Application subscribe(String applicationName, String eventSource) throws RestException { -buildSubscribe(applicationName, eventSource); -String json = httpActionSync(); -return deserializeJson( json, Application_impl_ari_1_5_0.class ); -} - -@Override -public void subscribe(String applicationName, String eventSource, AriCallback callback) { -buildSubscribe(applicationName, eventSource); -httpActionAsync(callback, Application_impl_ari_1_5_0.class); -} - -/********************************************************** - * Stasis application - * - * Unsubscribe an application from an event source. - * Returns the state of the application after the subscriptions have changed - *********************************************************/ -private void buildUnsubscribe(String applicationName, String eventSource) { -reset(); -url = "/applications/" + applicationName + "/subscription"; -method = "DELETE"; -lParamQuery.add( HttpParam.build( "eventSource", eventSource) ); -lE.add( HttpResponse.build( 400, "Missing parameter; event source scheme not recognized.") ); -lE.add( HttpResponse.build( 404, "Application does not exist.") ); -lE.add( HttpResponse.build( 409, "Application not subscribed to event source.") ); -lE.add( HttpResponse.build( 422, "Event source does not exist.") ); -} - -@Override -public Application unsubscribe(String applicationName, String eventSource) throws RestException { -buildUnsubscribe(applicationName, eventSource); -String json = httpActionSync(); -return deserializeJson( json, Application_impl_ari_1_5_0.class ); -} - -@Override -public void unsubscribe(String applicationName, String eventSource, AriCallback callback) { -buildUnsubscribe(applicationName, eventSource); -httpActionAsync(callback, Application_impl_ari_1_5_0.class); -} - -/** No missing signatures from interface */ -}; - diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_5_0/actions/ActionAsterisk_impl_ari_1_5_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_5_0/actions/ActionAsterisk_impl_ari_1_5_0.java deleted file mode 100644 index e014d69c..00000000 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_5_0/actions/ActionAsterisk_impl_ari_1_5_0.java +++ /dev/null @@ -1,335 +0,0 @@ -package ch.loway.oss.ari4java.generated.ari_1_5_0.actions; - -// ---------------------------------------------------- -// THIS CLASS WAS GENERATED AUTOMATICALLY -// PLEASE DO NOT EDIT -// Generated on: Tue Dec 19 09:55:49 CET 2017 -// ---------------------------------------------------- - -import ch.loway.oss.ari4java.generated.*; -import java.util.Date; -import java.util.List; -import java.util.Map; -import java.util.ArrayList; -import ch.loway.oss.ari4java.tools.BaseAriAction; -import ch.loway.oss.ari4java.tools.RestException; -import ch.loway.oss.ari4java.tools.AriCallback; -import ch.loway.oss.ari4java.tools.HttpParam; -import ch.loway.oss.ari4java.tools.HttpResponse; -import com.fasterxml.jackson.core.type.TypeReference; -import ch.loway.oss.ari4java.generated.ari_1_5_0.models.*; - -/********************************************************** - * - * Generated by: Apis - *********************************************************/ - - -public class ActionAsterisk_impl_ari_1_5_0 extends BaseAriAction implements ActionAsterisk { -/********************************************************** - * Asterisk system information (similar to core show settings) - * - * Gets Asterisk system information. - *********************************************************/ -private void buildGetInfo(String only) { -reset(); -url = "/asterisk/info"; -method = "GET"; -lParamQuery.add( HttpParam.build( "only", only) ); -} - -@Override -public AsteriskInfo getInfo(String only) throws RestException { -buildGetInfo(only); -String json = httpActionSync(); -return deserializeJson( json, AsteriskInfo_impl_ari_1_5_0.class ); -} - -@Override -public void getInfo(String only, AriCallback callback) { -buildGetInfo(only); -httpActionAsync(callback, AsteriskInfo_impl_ari_1_5_0.class); -} - -/********************************************************** - * Global variables - * - * Get the value of a global variable. - *********************************************************/ -private void buildGetGlobalVar(String variable) { -reset(); -url = "/asterisk/variable"; -method = "GET"; -lParamQuery.add( HttpParam.build( "variable", variable) ); -lE.add( HttpResponse.build( 400, "Missing variable parameter.") ); -} - -@Override -public Variable getGlobalVar(String variable) throws RestException { -buildGetGlobalVar(variable); -String json = httpActionSync(); -return deserializeJson( json, Variable_impl_ari_1_5_0.class ); -} - -@Override -public void getGlobalVar(String variable, AriCallback callback) { -buildGetGlobalVar(variable); -httpActionAsync(callback, Variable_impl_ari_1_5_0.class); -} - -/********************************************************** - * Global variables - * - * Set the value of a global variable. - *********************************************************/ -private void buildSetGlobalVar(String variable, String value) { -reset(); -url = "/asterisk/variable"; -method = "POST"; -lParamQuery.add( HttpParam.build( "variable", variable) ); -lParamQuery.add( HttpParam.build( "value", value) ); -lE.add( HttpResponse.build( 400, "Missing variable parameter.") ); -} - -@Override -public void setGlobalVar(String variable, String value) throws RestException { -buildSetGlobalVar(variable, value); -String json = httpActionSync(); -} - -@Override -public void setGlobalVar(String variable, String value, AriCallback callback) { -buildSetGlobalVar(variable, value); -httpActionAsync(callback); -} - -/********************************************************** - * - * - * @since ari_1_8_0 - *********************************************************/ -public void updateObject(String configClass, String objectType, String id, Map fields, AriCallback> callback){ - throw new UnsupportedOperationException("Method availble from ..."); -}; - -/********************************************************** - * - * - * @since ari_1_8_0 - *********************************************************/ -public void listModules(AriCallback> callback){ - throw new UnsupportedOperationException("Method availble from ..."); -}; - -/********************************************************** - * - * - * @since ari_1_8_0 - *********************************************************/ -public void getModule(String moduleName, AriCallback callback){ - throw new UnsupportedOperationException("Method availble from ..."); -}; - -/********************************************************** - * - * - * @since ari_1_8_0 - *********************************************************/ -public void unloadModule(String moduleName, AriCallback callback){ - throw new UnsupportedOperationException("Method availble from ..."); -}; - -/********************************************************** - * Rotates a log channel. - * - * - * @since ari_1_9_0 - *********************************************************/ -public void rotateLog(String logChannelName) throws RestException{ - throw new UnsupportedOperationException("Method availble from ..."); -}; - -/********************************************************** - * - * - * @since ari_1_8_0 - *********************************************************/ -public void deleteObject(String configClass, String objectType, String id, AriCallback callback){ - throw new UnsupportedOperationException("Method availble from ..."); -}; - -/********************************************************** - * Deletes a log channel. - * - * - * @since ari_1_9_0 - *********************************************************/ -public void deleteLog(String logChannelName) throws RestException{ - throw new UnsupportedOperationException("Method availble from ..."); -}; - -/********************************************************** - * Load an Asterisk module. - * - * - * @since ari_1_8_0 - *********************************************************/ -public void loadModule(String moduleName) throws RestException{ - throw new UnsupportedOperationException("Method availble from ..."); -}; - -/********************************************************** - * Unload an Asterisk module. - * - * - * @since ari_1_8_0 - *********************************************************/ -public void unloadModule(String moduleName) throws RestException{ - throw new UnsupportedOperationException("Method availble from ..."); -}; - -/********************************************************** - * Create or update a dynamic configuration object. - * - * - * @since ari_1_8_0 - *********************************************************/ -public List updateObject(String configClass, String objectType, String id, Map fields) throws RestException{ - throw new UnsupportedOperationException("Method availble from ..."); -}; - -/********************************************************** - * Retrieve a dynamic configuration object. - * - * - * @since ari_1_8_0 - *********************************************************/ -public List getObject(String configClass, String objectType, String id) throws RestException{ - throw new UnsupportedOperationException("Method availble from ..."); -}; - -/********************************************************** - * Get Asterisk module information. - * - * - * @since ari_1_8_0 - *********************************************************/ -public Module getModule(String moduleName) throws RestException{ - throw new UnsupportedOperationException("Method availble from ..."); -}; - -/********************************************************** - * - * - * @since ari_1_9_0 - *********************************************************/ -public void rotateLog(String logChannelName, AriCallback callback){ - throw new UnsupportedOperationException("Method availble from ..."); -}; - -/********************************************************** - * - * - * @since ari_1_8_0 - *********************************************************/ -public void loadModule(String moduleName, AriCallback callback){ - throw new UnsupportedOperationException("Method availble from ..."); -}; - -/********************************************************** - * - * - * @since ari_1_9_0 - *********************************************************/ -public void addLog(String logChannelName, String configuration, AriCallback callback){ - throw new UnsupportedOperationException("Method availble from ..."); -}; - -/********************************************************** - * - * - * @since ari_1_8_0 - *********************************************************/ -public void reloadModule(String moduleName, AriCallback callback){ - throw new UnsupportedOperationException("Method availble from ..."); -}; - -/********************************************************** - * Gets Asterisk log channel information. - * - * - * @since ari_1_9_0 - *********************************************************/ -public List listLogChannels() throws RestException{ - throw new UnsupportedOperationException("Method availble from ..."); -}; - -/********************************************************** - * - * - * @since ari_1_8_0 - *********************************************************/ -public void getObject(String configClass, String objectType, String id, AriCallback> callback){ - throw new UnsupportedOperationException("Method availble from ..."); -}; - -/********************************************************** - * Adds a log channel. - * - * - * @since ari_1_9_0 - *********************************************************/ -public void addLog(String logChannelName, String configuration) throws RestException{ - throw new UnsupportedOperationException("Method availble from ..."); -}; - -/********************************************************** - * - * - * @since ari_1_9_0 - *********************************************************/ -public void listLogChannels(AriCallback> callback){ - throw new UnsupportedOperationException("Method availble from ..."); -}; - -/********************************************************** - * List Asterisk modules. - * - * - * @since ari_1_8_0 - *********************************************************/ -public List listModules() throws RestException{ - throw new UnsupportedOperationException("Method availble from ..."); -}; - -/********************************************************** - * Reload an Asterisk module. - * - * - * @since ari_1_8_0 - *********************************************************/ -public void reloadModule(String moduleName) throws RestException{ - throw new UnsupportedOperationException("Method availble from ..."); -}; - -/********************************************************** - * - * - * @since ari_1_9_0 - *********************************************************/ -public void deleteLog(String logChannelName, AriCallback callback){ - throw new UnsupportedOperationException("Method availble from ..."); -}; - -/********************************************************** - * Delete a dynamic configuration object. - * - * - * @since ari_1_8_0 - *********************************************************/ -public void deleteObject(String configClass, String objectType, String id) throws RestException{ - throw new UnsupportedOperationException("Method availble from ..."); -}; - -}; - diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_5_0/actions/ActionBridges_impl_ari_1_5_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_5_0/actions/ActionBridges_impl_ari_1_5_0.java deleted file mode 100644 index 4e2b5a71..00000000 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_5_0/actions/ActionBridges_impl_ari_1_5_0.java +++ /dev/null @@ -1,482 +0,0 @@ -package ch.loway.oss.ari4java.generated.ari_1_5_0.actions; - -// ---------------------------------------------------- -// THIS CLASS WAS GENERATED AUTOMATICALLY -// PLEASE DO NOT EDIT -// Generated on: Tue Dec 19 09:55:49 CET 2017 -// ---------------------------------------------------- - -import ch.loway.oss.ari4java.generated.*; -import java.util.Date; -import java.util.List; -import java.util.Map; -import java.util.ArrayList; -import ch.loway.oss.ari4java.tools.BaseAriAction; -import ch.loway.oss.ari4java.tools.RestException; -import ch.loway.oss.ari4java.tools.AriCallback; -import ch.loway.oss.ari4java.tools.HttpParam; -import ch.loway.oss.ari4java.tools.HttpResponse; -import com.fasterxml.jackson.core.type.TypeReference; -import ch.loway.oss.ari4java.generated.ari_1_5_0.models.*; - -/********************************************************** - * - * Generated by: Apis - *********************************************************/ - - -public class ActionBridges_impl_ari_1_5_0 extends BaseAriAction implements ActionBridges { -/********************************************************** - * Active bridges - * - * List all active bridges in Asterisk. - *********************************************************/ -private void buildList() { -reset(); -url = "/bridges"; -method = "GET"; -} - -@Override -public List list() throws RestException { -buildList(); -String json = httpActionSync(); -return deserializeJsonAsAbstractList( json, - new TypeReference>() {} ); -} - -@Override -public void list(AriCallback> callback) { -buildList(); -httpActionAsync(callback, new TypeReference>() {}); -} - -/********************************************************** - * Active bridges - * - * Create a new bridge. - * This bridge persists until it has been shut down, or Asterisk has been shut down. - *********************************************************/ -private void buildCreate(String type, String bridgeId, String name) { -reset(); -url = "/bridges"; -method = "POST"; -lParamQuery.add( HttpParam.build( "type", type) ); -lParamQuery.add( HttpParam.build( "bridgeId", bridgeId) ); -lParamQuery.add( HttpParam.build( "name", name) ); -} - -@Override -public Bridge create(String type, String bridgeId, String name) throws RestException { -buildCreate(type, bridgeId, name); -String json = httpActionSync(); -return deserializeJson( json, Bridge_impl_ari_1_5_0.class ); -} - -@Override -public void create(String type, String bridgeId, String name, AriCallback callback) { -buildCreate(type, bridgeId, name); -httpActionAsync(callback, Bridge_impl_ari_1_5_0.class); -} - -/********************************************************** - * Individual bridge - * - * Create a new bridge or updates an existing one. - * This bridge persists until it has been shut down, or Asterisk has been shut down. - *********************************************************/ -private void buildCreate_or_update_with_id(String type, String bridgeId, String name) { -reset(); -url = "/bridges/" + bridgeId + ""; -method = "POST"; -lParamQuery.add( HttpParam.build( "type", type) ); -lParamQuery.add( HttpParam.build( "name", name) ); -} - -@Override -public Bridge create_or_update_with_id(String type, String bridgeId, String name) throws RestException { -buildCreate_or_update_with_id(type, bridgeId, name); -String json = httpActionSync(); -return deserializeJson( json, Bridge_impl_ari_1_5_0.class ); -} - -@Override -public void create_or_update_with_id(String type, String bridgeId, String name, AriCallback callback) { -buildCreate_or_update_with_id(type, bridgeId, name); -httpActionAsync(callback, Bridge_impl_ari_1_5_0.class); -} - -/********************************************************** - * Individual bridge - * - * Get bridge details. - *********************************************************/ -private void buildGet(String bridgeId) { -reset(); -url = "/bridges/" + bridgeId + ""; -method = "GET"; -lE.add( HttpResponse.build( 404, "Bridge not found") ); -} - -@Override -public Bridge get(String bridgeId) throws RestException { -buildGet(bridgeId); -String json = httpActionSync(); -return deserializeJson( json, Bridge_impl_ari_1_5_0.class ); -} - -@Override -public void get(String bridgeId, AriCallback callback) { -buildGet(bridgeId); -httpActionAsync(callback, Bridge_impl_ari_1_5_0.class); -} - -/********************************************************** - * Individual bridge - * - * Shut down a bridge. - * If any channels are in this bridge, they will be removed and resume whatever they were doing beforehand. - *********************************************************/ -private void buildDestroy(String bridgeId) { -reset(); -url = "/bridges/" + bridgeId + ""; -method = "DELETE"; -lE.add( HttpResponse.build( 404, "Bridge not found") ); -} - -@Override -public void destroy(String bridgeId) throws RestException { -buildDestroy(bridgeId); -String json = httpActionSync(); -} - -@Override -public void destroy(String bridgeId, AriCallback callback) { -buildDestroy(bridgeId); -httpActionAsync(callback); -} - -/********************************************************** - * Add a channel to a bridge - * - * Add a channel to a bridge. - *********************************************************/ -private void buildAddChannel(String bridgeId, String channel, String role) { -reset(); -url = "/bridges/" + bridgeId + "/addChannel"; -method = "POST"; -lParamQuery.add( HttpParam.build( "channel", channel) ); -lParamQuery.add( HttpParam.build( "role", role) ); -lE.add( HttpResponse.build( 400, "Channel not found") ); -lE.add( HttpResponse.build( 404, "Bridge not found") ); -lE.add( HttpResponse.build( 409, "Bridge not in Stasis application; Channel currently recording") ); -lE.add( HttpResponse.build( 422, "Channel not in Stasis application") ); -} - -@Override -public void addChannel(String bridgeId, String channel, String role) throws RestException { -buildAddChannel(bridgeId, channel, role); -String json = httpActionSync(); -} - -@Override -public void addChannel(String bridgeId, String channel, String role, AriCallback callback) { -buildAddChannel(bridgeId, channel, role); -httpActionAsync(callback); -} - -/********************************************************** - * Play music on hold to a bridge - * - * Play music on hold to a bridge or change the MOH class that is playing. - *********************************************************/ -private void buildStartMoh(String bridgeId, String mohClass) { -reset(); -url = "/bridges/" + bridgeId + "/moh"; -method = "POST"; -lParamQuery.add( HttpParam.build( "mohClass", mohClass) ); -lE.add( HttpResponse.build( 404, "Bridge not found") ); -lE.add( HttpResponse.build( 409, "Bridge not in Stasis application") ); -} - -@Override -public void startMoh(String bridgeId, String mohClass) throws RestException { -buildStartMoh(bridgeId, mohClass); -String json = httpActionSync(); -} - -@Override -public void startMoh(String bridgeId, String mohClass, AriCallback callback) { -buildStartMoh(bridgeId, mohClass); -httpActionAsync(callback); -} - -/********************************************************** - * Play music on hold to a bridge - * - * Stop playing music on hold to a bridge. - * This will only stop music on hold being played via POST bridges/{bridgeId}/moh. - *********************************************************/ -private void buildStopMoh(String bridgeId) { -reset(); -url = "/bridges/" + bridgeId + "/moh"; -method = "DELETE"; -lE.add( HttpResponse.build( 404, "Bridge not found") ); -lE.add( HttpResponse.build( 409, "Bridge not in Stasis application") ); -} - -@Override -public void stopMoh(String bridgeId) throws RestException { -buildStopMoh(bridgeId); -String json = httpActionSync(); -} - -@Override -public void stopMoh(String bridgeId, AriCallback callback) { -buildStopMoh(bridgeId); -httpActionAsync(callback); -} - -/********************************************************** - * Play media to the participants of a bridge - * - * Start playback of media on a bridge. - * The media URI may be any of a number of URI's. Currently sound:, recording:, number:, digits:, characters:, and tone: URI's are supported. This operation creates a playback resource that can be used to control the playback of media (pause, rewind, fast forward, etc.) - *********************************************************/ -private void buildPlay(String bridgeId, String media, String lang, int offsetms, int skipms, String playbackId) { -reset(); -url = "/bridges/" + bridgeId + "/play"; -method = "POST"; -lParamQuery.add( HttpParam.build( "media", media) ); -lParamQuery.add( HttpParam.build( "lang", lang) ); -lParamQuery.add( HttpParam.build( "offsetms", offsetms) ); -lParamQuery.add( HttpParam.build( "skipms", skipms) ); -lParamQuery.add( HttpParam.build( "playbackId", playbackId) ); -lE.add( HttpResponse.build( 404, "Bridge not found") ); -lE.add( HttpResponse.build( 409, "Bridge not in a Stasis application") ); -} - -@Override -public Playback play(String bridgeId, String media, String lang, int offsetms, int skipms, String playbackId) throws RestException { -buildPlay(bridgeId, media, lang, offsetms, skipms, playbackId); -String json = httpActionSync(); -return deserializeJson( json, Playback_impl_ari_1_5_0.class ); -} - -@Override -public void play(String bridgeId, String media, String lang, int offsetms, int skipms, String playbackId, AriCallback callback) { -buildPlay(bridgeId, media, lang, offsetms, skipms, playbackId); -httpActionAsync(callback, Playback_impl_ari_1_5_0.class); -} - -/********************************************************** - * Play media to a bridge - * - * Start playback of media on a bridge. - * The media URI may be any of a number of URI's. Currently sound: and recording: URI's are supported. This operation creates a playback resource that can be used to control the playback of media (pause, rewind, fast forward, etc.) - *********************************************************/ -private void buildPlayWithId(String bridgeId, String playbackId, String media, String lang, int offsetms, int skipms) { -reset(); -url = "/bridges/" + bridgeId + "/play/" + playbackId + ""; -method = "POST"; -lParamQuery.add( HttpParam.build( "media", media) ); -lParamQuery.add( HttpParam.build( "lang", lang) ); -lParamQuery.add( HttpParam.build( "offsetms", offsetms) ); -lParamQuery.add( HttpParam.build( "skipms", skipms) ); -lE.add( HttpResponse.build( 404, "Bridge not found") ); -lE.add( HttpResponse.build( 409, "Bridge not in a Stasis application") ); -} - -@Override -public Playback playWithId(String bridgeId, String playbackId, String media, String lang, int offsetms, int skipms) throws RestException { -buildPlayWithId(bridgeId, playbackId, media, lang, offsetms, skipms); -String json = httpActionSync(); -return deserializeJson( json, Playback_impl_ari_1_5_0.class ); -} - -@Override -public void playWithId(String bridgeId, String playbackId, String media, String lang, int offsetms, int skipms, AriCallback callback) { -buildPlayWithId(bridgeId, playbackId, media, lang, offsetms, skipms); -httpActionAsync(callback, Playback_impl_ari_1_5_0.class); -} - -/********************************************************** - * Record audio on a bridge - * - * Start a recording. - * This records the mixed audio from all channels participating in this bridge. - *********************************************************/ -private void buildRecord(String bridgeId, String name, String format, int maxDurationSeconds, int maxSilenceSeconds, String ifExists, boolean beep, String terminateOn) { -reset(); -url = "/bridges/" + bridgeId + "/record"; -method = "POST"; -lParamQuery.add( HttpParam.build( "name", name) ); -lParamQuery.add( HttpParam.build( "format", format) ); -lParamQuery.add( HttpParam.build( "maxDurationSeconds", maxDurationSeconds) ); -lParamQuery.add( HttpParam.build( "maxSilenceSeconds", maxSilenceSeconds) ); -lParamQuery.add( HttpParam.build( "ifExists", ifExists) ); -lParamQuery.add( HttpParam.build( "beep", beep) ); -lParamQuery.add( HttpParam.build( "terminateOn", terminateOn) ); -lE.add( HttpResponse.build( 400, "Invalid parameters") ); -lE.add( HttpResponse.build( 404, "Bridge not found") ); -lE.add( HttpResponse.build( 409, "Bridge is not in a Stasis application; A recording with the same name already exists on the system and can not be overwritten because it is in progress or ifExists=fail") ); -lE.add( HttpResponse.build( 422, "The format specified is unknown on this system") ); -} - -@Override -public LiveRecording record(String bridgeId, String name, String format, int maxDurationSeconds, int maxSilenceSeconds, String ifExists, boolean beep, String terminateOn) throws RestException { -buildRecord(bridgeId, name, format, maxDurationSeconds, maxSilenceSeconds, ifExists, beep, terminateOn); -String json = httpActionSync(); -return deserializeJson( json, LiveRecording_impl_ari_1_5_0.class ); -} - -@Override -public void record(String bridgeId, String name, String format, int maxDurationSeconds, int maxSilenceSeconds, String ifExists, boolean beep, String terminateOn, AriCallback callback) { -buildRecord(bridgeId, name, format, maxDurationSeconds, maxSilenceSeconds, ifExists, beep, terminateOn); -httpActionAsync(callback, LiveRecording_impl_ari_1_5_0.class); -} - -/********************************************************** - * Remove a channel from a bridge - * - * Remove a channel from a bridge. - *********************************************************/ -private void buildRemoveChannel(String bridgeId, String channel) { -reset(); -url = "/bridges/" + bridgeId + "/removeChannel"; -method = "POST"; -lParamQuery.add( HttpParam.build( "channel", channel) ); -lE.add( HttpResponse.build( 400, "Channel not found") ); -lE.add( HttpResponse.build( 404, "Bridge not found") ); -lE.add( HttpResponse.build( 409, "Bridge not in Stasis application") ); -lE.add( HttpResponse.build( 422, "Channel not in this bridge") ); -} - -@Override -public void removeChannel(String bridgeId, String channel) throws RestException { -buildRemoveChannel(bridgeId, channel); -String json = httpActionSync(); -} - -@Override -public void removeChannel(String bridgeId, String channel, AriCallback callback) { -buildRemoveChannel(bridgeId, channel); -httpActionAsync(callback); -} - -/********************************************************** - * Start playback of media on a bridge. - * The media URI may be any of a number of URI's. Currently sound: and recording: URI's are supported. This operation creates a playback resource that can be used to control the playback of media (pause, rewind, fast forward, etc.) - * - * @since ari_0_0_1 - *********************************************************/ -public Playback play(String bridgeId, String media, String lang, int offsetms, int skipms) throws RestException{ - throw new UnsupportedOperationException("Method availble from ..."); -}; - -/********************************************************** - * - * - * @since ari_0_0_1 - *********************************************************/ -public void play(String bridgeId, String media, String lang, int offsetms, int skipms, AriCallback callback){ - throw new UnsupportedOperationException("Method availble from ..."); -}; - -/********************************************************** - * - * - * @since ari_1_7_0 - *********************************************************/ -public void createWithId(String type, String bridgeId, String name, AriCallback callback){ - throw new UnsupportedOperationException("Method availble from ..."); -}; - -/********************************************************** - * Create a new bridge. - * This bridge persists until it has been shut down, or Asterisk has been shut down. - * - * @since ari_1_0_0 - *********************************************************/ -public Bridge create(String type, String name) throws RestException{ - throw new UnsupportedOperationException("Method availble from ..."); -}; - -/********************************************************** - * Set a channel as the video source in a multi-party mixing bridge. This operation has no effect on bridges with two or fewer participants. - * - * - * @since ari_2_0_0 - *********************************************************/ -public void setVideoSource(String bridgeId, String channelId) throws RestException{ - throw new UnsupportedOperationException("Method availble from ..."); -}; - -/********************************************************** - * Create a new bridge. - * This bridge persists until it has been shut down, or Asterisk has been shut down. - * - * @since ari_0_0_1 - *********************************************************/ -public Bridge create(String type) throws RestException{ - throw new UnsupportedOperationException("Method availble from ..."); -}; - -/********************************************************** - * Removes any explicit video source in a multi-party mixing bridge. This operation has no effect on bridges with two or fewer participants. When no explicit video source is set, talk detection will be used to determine the active video stream. - * - * - * @since ari_2_0_0 - *********************************************************/ -public void clearVideoSource(String bridgeId) throws RestException{ - throw new UnsupportedOperationException("Method availble from ..."); -}; - -/********************************************************** - * - * - * @since ari_0_0_1 - *********************************************************/ -public void create(String type, AriCallback callback){ - throw new UnsupportedOperationException("Method availble from ..."); -}; - -/********************************************************** - * - * - * @since ari_2_0_0 - *********************************************************/ -public void setVideoSource(String bridgeId, String channelId, AriCallback callback){ - throw new UnsupportedOperationException("Method availble from ..."); -}; - -/********************************************************** - * - * - * @since ari_1_0_0 - *********************************************************/ -public void create(String type, String name, AriCallback callback){ - throw new UnsupportedOperationException("Method availble from ..."); -}; - -/********************************************************** - * - * - * @since ari_2_0_0 - *********************************************************/ -public void clearVideoSource(String bridgeId, AriCallback callback){ - throw new UnsupportedOperationException("Method availble from ..."); -}; - -/********************************************************** - * Create a new bridge or updates an existing one. - * This bridge persists until it has been shut down, or Asterisk has been shut down. - * - * @since ari_1_7_0 - *********************************************************/ -public Bridge createWithId(String type, String bridgeId, String name) throws RestException{ - throw new UnsupportedOperationException("Method availble from ..."); -}; - -}; - diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_5_0/actions/ActionChannels_impl_ari_1_5_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_5_0/actions/ActionChannels_impl_ari_1_5_0.java deleted file mode 100644 index c6881842..00000000 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_5_0/actions/ActionChannels_impl_ari_1_5_0.java +++ /dev/null @@ -1,947 +0,0 @@ -package ch.loway.oss.ari4java.generated.ari_1_5_0.actions; - -// ---------------------------------------------------- -// THIS CLASS WAS GENERATED AUTOMATICALLY -// PLEASE DO NOT EDIT -// Generated on: Tue Dec 19 09:55:49 CET 2017 -// ---------------------------------------------------- - -import ch.loway.oss.ari4java.generated.*; -import java.util.Date; -import java.util.List; -import java.util.Map; -import java.util.ArrayList; -import ch.loway.oss.ari4java.tools.BaseAriAction; -import ch.loway.oss.ari4java.tools.RestException; -import ch.loway.oss.ari4java.tools.AriCallback; -import ch.loway.oss.ari4java.tools.HttpParam; -import ch.loway.oss.ari4java.tools.HttpResponse; -import com.fasterxml.jackson.core.type.TypeReference; -import ch.loway.oss.ari4java.generated.ari_1_5_0.models.*; - -/********************************************************** - * - * Generated by: Apis - *********************************************************/ - - -public class ActionChannels_impl_ari_1_5_0 extends BaseAriAction implements ActionChannels { -/********************************************************** - * Active channels - * - * List all active channels in Asterisk. - *********************************************************/ -private void buildList() { -reset(); -url = "/channels"; -method = "GET"; -} - -@Override -public List list() throws RestException { -buildList(); -String json = httpActionSync(); -return deserializeJsonAsAbstractList( json, - new TypeReference>() {} ); -} - -@Override -public void list(AriCallback> callback) { -buildList(); -httpActionAsync(callback, new TypeReference>() {}); -} - -/********************************************************** - * Active channels - * - * Create a new channel (originate). - * The new channel is created immediately and a snapshot of it returned. If a Stasis application is provided it will be automatically subscribed to the originated channel for further events and updates. - *********************************************************/ -private void buildOriginate(String endpoint, String extension, String context, long priority, String app, String appArgs, String callerId, int timeout, Map variables, String channelId, String otherChannelId) { -reset(); -url = "/channels"; -method = "POST"; -lParamQuery.add( HttpParam.build( "endpoint", endpoint) ); -lParamQuery.add( HttpParam.build( "extension", extension) ); -lParamQuery.add( HttpParam.build( "context", context) ); -lParamQuery.add( HttpParam.build( "priority", priority) ); -lParamQuery.add( HttpParam.build( "app", app) ); -lParamQuery.add( HttpParam.build( "appArgs", appArgs) ); -lParamQuery.add( HttpParam.build( "callerId", callerId) ); -lParamQuery.add( HttpParam.build( "timeout", timeout) ); -lParamBody.addAll( HttpParam.build( "variables", variables) ); -lParamQuery.add( HttpParam.build( "channelId", channelId) ); -lParamQuery.add( HttpParam.build( "otherChannelId", otherChannelId) ); -lE.add( HttpResponse.build( 400, "Invalid parameters for originating a channel.") ); -} - -@Override -public Channel originate(String endpoint, String extension, String context, long priority, String app, String appArgs, String callerId, int timeout, Map variables, String channelId, String otherChannelId) throws RestException { -buildOriginate(endpoint, extension, context, priority, app, appArgs, callerId, timeout, variables, channelId, otherChannelId); -String json = httpActionSync(); -return deserializeJson( json, Channel_impl_ari_1_5_0.class ); -} - -@Override -public void originate(String endpoint, String extension, String context, long priority, String app, String appArgs, String callerId, int timeout, Map variables, String channelId, String otherChannelId, AriCallback callback) { -buildOriginate(endpoint, extension, context, priority, app, appArgs, callerId, timeout, variables, channelId, otherChannelId); -httpActionAsync(callback, Channel_impl_ari_1_5_0.class); -} - -/********************************************************** - * Active channel - * - * Channel details. - *********************************************************/ -private void buildGet(String channelId) { -reset(); -url = "/channels/" + channelId + ""; -method = "GET"; -lE.add( HttpResponse.build( 404, "Channel not found") ); -} - -@Override -public Channel get(String channelId) throws RestException { -buildGet(channelId); -String json = httpActionSync(); -return deserializeJson( json, Channel_impl_ari_1_5_0.class ); -} - -@Override -public void get(String channelId, AriCallback callback) { -buildGet(channelId); -httpActionAsync(callback, Channel_impl_ari_1_5_0.class); -} - -/********************************************************** - * Active channel - * - * Create a new channel (originate with id). - * The new channel is created immediately and a snapshot of it returned. If a Stasis application is provided it will be automatically subscribed to the originated channel for further events and updates. - *********************************************************/ -private void buildOriginateWithId(String channelId, String endpoint, String extension, String context, long priority, String app, String appArgs, String callerId, int timeout, Map variables, String otherChannelId) { -reset(); -url = "/channels/" + channelId + ""; -method = "POST"; -lParamQuery.add( HttpParam.build( "endpoint", endpoint) ); -lParamQuery.add( HttpParam.build( "extension", extension) ); -lParamQuery.add( HttpParam.build( "context", context) ); -lParamQuery.add( HttpParam.build( "priority", priority) ); -lParamQuery.add( HttpParam.build( "app", app) ); -lParamQuery.add( HttpParam.build( "appArgs", appArgs) ); -lParamQuery.add( HttpParam.build( "callerId", callerId) ); -lParamQuery.add( HttpParam.build( "timeout", timeout) ); -lParamBody.addAll( HttpParam.build( "variables", variables) ); -lParamQuery.add( HttpParam.build( "otherChannelId", otherChannelId) ); -lE.add( HttpResponse.build( 400, "Invalid parameters for originating a channel.") ); -} - -@Override -public Channel originateWithId(String channelId, String endpoint, String extension, String context, long priority, String app, String appArgs, String callerId, int timeout, Map variables, String otherChannelId) throws RestException { -buildOriginateWithId(channelId, endpoint, extension, context, priority, app, appArgs, callerId, timeout, variables, otherChannelId); -String json = httpActionSync(); -return deserializeJson( json, Channel_impl_ari_1_5_0.class ); -} - -@Override -public void originateWithId(String channelId, String endpoint, String extension, String context, long priority, String app, String appArgs, String callerId, int timeout, Map variables, String otherChannelId, AriCallback callback) { -buildOriginateWithId(channelId, endpoint, extension, context, priority, app, appArgs, callerId, timeout, variables, otherChannelId); -httpActionAsync(callback, Channel_impl_ari_1_5_0.class); -} - -/********************************************************** - * Active channel - * - * Delete (i.e. hangup) a channel. - *********************************************************/ -private void buildHangup(String channelId, String reason) { -reset(); -url = "/channels/" + channelId + ""; -method = "DELETE"; -lParamQuery.add( HttpParam.build( "reason", reason) ); -lE.add( HttpResponse.build( 400, "Invalid reason for hangup provided") ); -lE.add( HttpResponse.build( 404, "Channel not found") ); -} - -@Override -public void hangup(String channelId, String reason) throws RestException { -buildHangup(channelId, reason); -String json = httpActionSync(); -} - -@Override -public void hangup(String channelId, String reason, AriCallback callback) { -buildHangup(channelId, reason); -httpActionAsync(callback); -} - -/********************************************************** - * Answer a channel - * - * Answer a channel. - *********************************************************/ -private void buildAnswer(String channelId) { -reset(); -url = "/channels/" + channelId + "/answer"; -method = "POST"; -lE.add( HttpResponse.build( 404, "Channel not found") ); -lE.add( HttpResponse.build( 409, "Channel not in a Stasis application") ); -} - -@Override -public void answer(String channelId) throws RestException { -buildAnswer(channelId); -String json = httpActionSync(); -} - -@Override -public void answer(String channelId, AriCallback callback) { -buildAnswer(channelId); -httpActionAsync(callback); -} - -/********************************************************** - * Exit application; continue execution in the dialplan - * - * Exit application; continue execution in the dialplan. - *********************************************************/ -private void buildContinueInDialplan(String channelId, String context, String extension, int priority) { -reset(); -url = "/channels/" + channelId + "/continue"; -method = "POST"; -lParamQuery.add( HttpParam.build( "context", context) ); -lParamQuery.add( HttpParam.build( "extension", extension) ); -lParamQuery.add( HttpParam.build( "priority", priority) ); -lE.add( HttpResponse.build( 404, "Channel not found") ); -lE.add( HttpResponse.build( 409, "Channel not in a Stasis application") ); -} - -@Override -public void continueInDialplan(String channelId, String context, String extension, int priority) throws RestException { -buildContinueInDialplan(channelId, context, extension, priority); -String json = httpActionSync(); -} - -@Override -public void continueInDialplan(String channelId, String context, String extension, int priority, AriCallback callback) { -buildContinueInDialplan(channelId, context, extension, priority); -httpActionAsync(callback); -} - -/********************************************************** - * Send DTMF to a channel - * - * Send provided DTMF to a given channel. - *********************************************************/ -private void buildSendDTMF(String channelId, String dtmf, int before, int between, int duration, int after) { -reset(); -url = "/channels/" + channelId + "/dtmf"; -method = "POST"; -lParamQuery.add( HttpParam.build( "dtmf", dtmf) ); -lParamQuery.add( HttpParam.build( "before", before) ); -lParamQuery.add( HttpParam.build( "between", between) ); -lParamQuery.add( HttpParam.build( "duration", duration) ); -lParamQuery.add( HttpParam.build( "after", after) ); -lE.add( HttpResponse.build( 400, "DTMF is required") ); -lE.add( HttpResponse.build( 404, "Channel not found") ); -lE.add( HttpResponse.build( 409, "Channel not in a Stasis application") ); -} - -@Override -public void sendDTMF(String channelId, String dtmf, int before, int between, int duration, int after) throws RestException { -buildSendDTMF(channelId, dtmf, before, between, duration, after); -String json = httpActionSync(); -} - -@Override -public void sendDTMF(String channelId, String dtmf, int before, int between, int duration, int after, AriCallback callback) { -buildSendDTMF(channelId, dtmf, before, between, duration, after); -httpActionAsync(callback); -} - -/********************************************************** - * Put a channel on hold - * - * Hold a channel. - *********************************************************/ -private void buildHold(String channelId) { -reset(); -url = "/channels/" + channelId + "/hold"; -method = "POST"; -lE.add( HttpResponse.build( 404, "Channel not found") ); -lE.add( HttpResponse.build( 409, "Channel not in a Stasis application") ); -} - -@Override -public void hold(String channelId) throws RestException { -buildHold(channelId); -String json = httpActionSync(); -} - -@Override -public void hold(String channelId, AriCallback callback) { -buildHold(channelId); -httpActionAsync(callback); -} - -/********************************************************** - * Put a channel on hold - * - * Remove a channel from hold. - *********************************************************/ -private void buildUnhold(String channelId) { -reset(); -url = "/channels/" + channelId + "/hold"; -method = "DELETE"; -lE.add( HttpResponse.build( 404, "Channel not found") ); -lE.add( HttpResponse.build( 409, "Channel not in a Stasis application") ); -} - -@Override -public void unhold(String channelId) throws RestException { -buildUnhold(channelId); -String json = httpActionSync(); -} - -@Override -public void unhold(String channelId, AriCallback callback) { -buildUnhold(channelId); -httpActionAsync(callback); -} - -/********************************************************** - * Play music on hold to a channel - * - * Play music on hold to a channel. - * Using media operations such as /play on a channel playing MOH in this manner will suspend MOH without resuming automatically. If continuing music on hold is desired, the stasis application must reinitiate music on hold. - *********************************************************/ -private void buildStartMoh(String channelId, String mohClass) { -reset(); -url = "/channels/" + channelId + "/moh"; -method = "POST"; -lParamQuery.add( HttpParam.build( "mohClass", mohClass) ); -lE.add( HttpResponse.build( 404, "Channel not found") ); -lE.add( HttpResponse.build( 409, "Channel not in a Stasis application") ); -} - -@Override -public void startMoh(String channelId, String mohClass) throws RestException { -buildStartMoh(channelId, mohClass); -String json = httpActionSync(); -} - -@Override -public void startMoh(String channelId, String mohClass, AriCallback callback) { -buildStartMoh(channelId, mohClass); -httpActionAsync(callback); -} - -/********************************************************** - * Play music on hold to a channel - * - * Stop playing music on hold to a channel. - *********************************************************/ -private void buildStopMoh(String channelId) { -reset(); -url = "/channels/" + channelId + "/moh"; -method = "DELETE"; -lE.add( HttpResponse.build( 404, "Channel not found") ); -lE.add( HttpResponse.build( 409, "Channel not in a Stasis application") ); -} - -@Override -public void stopMoh(String channelId) throws RestException { -buildStopMoh(channelId); -String json = httpActionSync(); -} - -@Override -public void stopMoh(String channelId, AriCallback callback) { -buildStopMoh(channelId); -httpActionAsync(callback); -} - -/********************************************************** - * Mute a channel - * - * Mute a channel. - *********************************************************/ -private void buildMute(String channelId, String direction) { -reset(); -url = "/channels/" + channelId + "/mute"; -method = "POST"; -lParamQuery.add( HttpParam.build( "direction", direction) ); -lE.add( HttpResponse.build( 404, "Channel not found") ); -lE.add( HttpResponse.build( 409, "Channel not in a Stasis application") ); -} - -@Override -public void mute(String channelId, String direction) throws RestException { -buildMute(channelId, direction); -String json = httpActionSync(); -} - -@Override -public void mute(String channelId, String direction, AriCallback callback) { -buildMute(channelId, direction); -httpActionAsync(callback); -} - -/********************************************************** - * Mute a channel - * - * Unmute a channel. - *********************************************************/ -private void buildUnmute(String channelId, String direction) { -reset(); -url = "/channels/" + channelId + "/mute"; -method = "DELETE"; -lParamQuery.add( HttpParam.build( "direction", direction) ); -lE.add( HttpResponse.build( 404, "Channel not found") ); -lE.add( HttpResponse.build( 409, "Channel not in a Stasis application") ); -} - -@Override -public void unmute(String channelId, String direction) throws RestException { -buildUnmute(channelId, direction); -String json = httpActionSync(); -} - -@Override -public void unmute(String channelId, String direction, AriCallback callback) { -buildUnmute(channelId, direction); -httpActionAsync(callback); -} - -/********************************************************** - * Play media to a channel - * - * Start playback of media. - * The media URI may be any of a number of URI's. Currently sound:, recording:, number:, digits:, characters:, and tone: URI's are supported. This operation creates a playback resource that can be used to control the playback of media (pause, rewind, fast forward, etc.) - *********************************************************/ -private void buildPlay(String channelId, String media, String lang, int offsetms, int skipms, String playbackId) { -reset(); -url = "/channels/" + channelId + "/play"; -method = "POST"; -lParamQuery.add( HttpParam.build( "media", media) ); -lParamQuery.add( HttpParam.build( "lang", lang) ); -lParamQuery.add( HttpParam.build( "offsetms", offsetms) ); -lParamQuery.add( HttpParam.build( "skipms", skipms) ); -lParamQuery.add( HttpParam.build( "playbackId", playbackId) ); -lE.add( HttpResponse.build( 404, "Channel not found") ); -lE.add( HttpResponse.build( 409, "Channel not in a Stasis application") ); -} - -@Override -public Playback play(String channelId, String media, String lang, int offsetms, int skipms, String playbackId) throws RestException { -buildPlay(channelId, media, lang, offsetms, skipms, playbackId); -String json = httpActionSync(); -return deserializeJson( json, Playback_impl_ari_1_5_0.class ); -} - -@Override -public void play(String channelId, String media, String lang, int offsetms, int skipms, String playbackId, AriCallback callback) { -buildPlay(channelId, media, lang, offsetms, skipms, playbackId); -httpActionAsync(callback, Playback_impl_ari_1_5_0.class); -} - -/********************************************************** - * Play media to a channel - * - * Start playback of media and specify the playbackId. - * The media URI may be any of a number of URI's. Currently sound: and recording: URI's are supported. This operation creates a playback resource that can be used to control the playback of media (pause, rewind, fast forward, etc.) - *********************************************************/ -private void buildPlayWithId(String channelId, String playbackId, String media, String lang, int offsetms, int skipms) { -reset(); -url = "/channels/" + channelId + "/play/" + playbackId + ""; -method = "POST"; -lParamQuery.add( HttpParam.build( "media", media) ); -lParamQuery.add( HttpParam.build( "lang", lang) ); -lParamQuery.add( HttpParam.build( "offsetms", offsetms) ); -lParamQuery.add( HttpParam.build( "skipms", skipms) ); -lE.add( HttpResponse.build( 404, "Channel not found") ); -lE.add( HttpResponse.build( 409, "Channel not in a Stasis application") ); -} - -@Override -public Playback playWithId(String channelId, String playbackId, String media, String lang, int offsetms, int skipms) throws RestException { -buildPlayWithId(channelId, playbackId, media, lang, offsetms, skipms); -String json = httpActionSync(); -return deserializeJson( json, Playback_impl_ari_1_5_0.class ); -} - -@Override -public void playWithId(String channelId, String playbackId, String media, String lang, int offsetms, int skipms, AriCallback callback) { -buildPlayWithId(channelId, playbackId, media, lang, offsetms, skipms); -httpActionAsync(callback, Playback_impl_ari_1_5_0.class); -} - -/********************************************************** - * Record audio from a channel - * - * Start a recording. - * Record audio from a channel. Note that this will not capture audio sent to the channel. The bridge itself has a record feature if that's what you want. - *********************************************************/ -private void buildRecord(String channelId, String name, String format, int maxDurationSeconds, int maxSilenceSeconds, String ifExists, boolean beep, String terminateOn) { -reset(); -url = "/channels/" + channelId + "/record"; -method = "POST"; -lParamQuery.add( HttpParam.build( "name", name) ); -lParamQuery.add( HttpParam.build( "format", format) ); -lParamQuery.add( HttpParam.build( "maxDurationSeconds", maxDurationSeconds) ); -lParamQuery.add( HttpParam.build( "maxSilenceSeconds", maxSilenceSeconds) ); -lParamQuery.add( HttpParam.build( "ifExists", ifExists) ); -lParamQuery.add( HttpParam.build( "beep", beep) ); -lParamQuery.add( HttpParam.build( "terminateOn", terminateOn) ); -lE.add( HttpResponse.build( 400, "Invalid parameters") ); -lE.add( HttpResponse.build( 404, "Channel not found") ); -lE.add( HttpResponse.build( 409, "Channel is not in a Stasis application; the channel is currently bridged with other hcannels; A recording with the same name already exists on the system and can not be overwritten because it is in progress or ifExists=fail") ); -lE.add( HttpResponse.build( 422, "The format specified is unknown on this system") ); -} - -@Override -public LiveRecording record(String channelId, String name, String format, int maxDurationSeconds, int maxSilenceSeconds, String ifExists, boolean beep, String terminateOn) throws RestException { -buildRecord(channelId, name, format, maxDurationSeconds, maxSilenceSeconds, ifExists, beep, terminateOn); -String json = httpActionSync(); -return deserializeJson( json, LiveRecording_impl_ari_1_5_0.class ); -} - -@Override -public void record(String channelId, String name, String format, int maxDurationSeconds, int maxSilenceSeconds, String ifExists, boolean beep, String terminateOn, AriCallback callback) { -buildRecord(channelId, name, format, maxDurationSeconds, maxSilenceSeconds, ifExists, beep, terminateOn); -httpActionAsync(callback, LiveRecording_impl_ari_1_5_0.class); -} - -/********************************************************** - * Send a ringing indication to a channel - * - * Indicate ringing to a channel. - *********************************************************/ -private void buildRing(String channelId) { -reset(); -url = "/channels/" + channelId + "/ring"; -method = "POST"; -lE.add( HttpResponse.build( 404, "Channel not found") ); -lE.add( HttpResponse.build( 409, "Channel not in a Stasis application") ); -} - -@Override -public void ring(String channelId) throws RestException { -buildRing(channelId); -String json = httpActionSync(); -} - -@Override -public void ring(String channelId, AriCallback callback) { -buildRing(channelId); -httpActionAsync(callback); -} - -/********************************************************** - * Send a ringing indication to a channel - * - * Stop ringing indication on a channel if locally generated. - *********************************************************/ -private void buildRingStop(String channelId) { -reset(); -url = "/channels/" + channelId + "/ring"; -method = "DELETE"; -lE.add( HttpResponse.build( 404, "Channel not found") ); -lE.add( HttpResponse.build( 409, "Channel not in a Stasis application") ); -} - -@Override -public void ringStop(String channelId) throws RestException { -buildRingStop(channelId); -String json = httpActionSync(); -} - -@Override -public void ringStop(String channelId, AriCallback callback) { -buildRingStop(channelId); -httpActionAsync(callback); -} - -/********************************************************** - * Play silence to a channel - * - * Play silence to a channel. - * Using media operations such as /play on a channel playing silence in this manner will suspend silence without resuming automatically. - *********************************************************/ -private void buildStartSilence(String channelId) { -reset(); -url = "/channels/" + channelId + "/silence"; -method = "POST"; -lE.add( HttpResponse.build( 404, "Channel not found") ); -lE.add( HttpResponse.build( 409, "Channel not in a Stasis application") ); -} - -@Override -public void startSilence(String channelId) throws RestException { -buildStartSilence(channelId); -String json = httpActionSync(); -} - -@Override -public void startSilence(String channelId, AriCallback callback) { -buildStartSilence(channelId); -httpActionAsync(callback); -} - -/********************************************************** - * Play silence to a channel - * - * Stop playing silence to a channel. - *********************************************************/ -private void buildStopSilence(String channelId) { -reset(); -url = "/channels/" + channelId + "/silence"; -method = "DELETE"; -lE.add( HttpResponse.build( 404, "Channel not found") ); -lE.add( HttpResponse.build( 409, "Channel not in a Stasis application") ); -} - -@Override -public void stopSilence(String channelId) throws RestException { -buildStopSilence(channelId); -String json = httpActionSync(); -} - -@Override -public void stopSilence(String channelId, AriCallback callback) { -buildStopSilence(channelId); -httpActionAsync(callback); -} - -/********************************************************** - * Snoop (spy/whisper) on a channel - * - * Start snooping. - * Snoop (spy/whisper) on a specific channel. - *********************************************************/ -private void buildSnoopChannel(String channelId, String spy, String whisper, String app, String appArgs, String snoopId) { -reset(); -url = "/channels/" + channelId + "/snoop"; -method = "POST"; -lParamQuery.add( HttpParam.build( "spy", spy) ); -lParamQuery.add( HttpParam.build( "whisper", whisper) ); -lParamQuery.add( HttpParam.build( "app", app) ); -lParamQuery.add( HttpParam.build( "appArgs", appArgs) ); -lParamQuery.add( HttpParam.build( "snoopId", snoopId) ); -lE.add( HttpResponse.build( 400, "Invalid parameters") ); -lE.add( HttpResponse.build( 404, "Channel not found") ); -} - -@Override -public Channel snoopChannel(String channelId, String spy, String whisper, String app, String appArgs, String snoopId) throws RestException { -buildSnoopChannel(channelId, spy, whisper, app, appArgs, snoopId); -String json = httpActionSync(); -return deserializeJson( json, Channel_impl_ari_1_5_0.class ); -} - -@Override -public void snoopChannel(String channelId, String spy, String whisper, String app, String appArgs, String snoopId, AriCallback callback) { -buildSnoopChannel(channelId, spy, whisper, app, appArgs, snoopId); -httpActionAsync(callback, Channel_impl_ari_1_5_0.class); -} - -/********************************************************** - * Snoop (spy/whisper) on a channel - * - * Start snooping. - * Snoop (spy/whisper) on a specific channel. - *********************************************************/ -private void buildSnoopChannelWithId(String channelId, String snoopId, String spy, String whisper, String app, String appArgs) { -reset(); -url = "/channels/" + channelId + "/snoop/" + snoopId + ""; -method = "POST"; -lParamQuery.add( HttpParam.build( "spy", spy) ); -lParamQuery.add( HttpParam.build( "whisper", whisper) ); -lParamQuery.add( HttpParam.build( "app", app) ); -lParamQuery.add( HttpParam.build( "appArgs", appArgs) ); -lE.add( HttpResponse.build( 400, "Invalid parameters") ); -lE.add( HttpResponse.build( 404, "Channel not found") ); -} - -@Override -public Channel snoopChannelWithId(String channelId, String snoopId, String spy, String whisper, String app, String appArgs) throws RestException { -buildSnoopChannelWithId(channelId, snoopId, spy, whisper, app, appArgs); -String json = httpActionSync(); -return deserializeJson( json, Channel_impl_ari_1_5_0.class ); -} - -@Override -public void snoopChannelWithId(String channelId, String snoopId, String spy, String whisper, String app, String appArgs, AriCallback callback) { -buildSnoopChannelWithId(channelId, snoopId, spy, whisper, app, appArgs); -httpActionAsync(callback, Channel_impl_ari_1_5_0.class); -} - -/********************************************************** - * Variables on a channel - * - * Get the value of a channel variable or function. - *********************************************************/ -private void buildGetChannelVar(String channelId, String variable) { -reset(); -url = "/channels/" + channelId + "/variable"; -method = "GET"; -lParamQuery.add( HttpParam.build( "variable", variable) ); -lE.add( HttpResponse.build( 400, "Missing variable parameter.") ); -lE.add( HttpResponse.build( 404, "Channel not found") ); -lE.add( HttpResponse.build( 409, "Channel not in a Stasis application") ); -} - -@Override -public Variable getChannelVar(String channelId, String variable) throws RestException { -buildGetChannelVar(channelId, variable); -String json = httpActionSync(); -return deserializeJson( json, Variable_impl_ari_1_5_0.class ); -} - -@Override -public void getChannelVar(String channelId, String variable, AriCallback callback) { -buildGetChannelVar(channelId, variable); -httpActionAsync(callback, Variable_impl_ari_1_5_0.class); -} - -/********************************************************** - * Variables on a channel - * - * Set the value of a channel variable or function. - *********************************************************/ -private void buildSetChannelVar(String channelId, String variable, String value) { -reset(); -url = "/channels/" + channelId + "/variable"; -method = "POST"; -lParamQuery.add( HttpParam.build( "variable", variable) ); -lParamQuery.add( HttpParam.build( "value", value) ); -lE.add( HttpResponse.build( 400, "Missing variable parameter.") ); -lE.add( HttpResponse.build( 404, "Channel not found") ); -lE.add( HttpResponse.build( 409, "Channel not in a Stasis application") ); -} - -@Override -public void setChannelVar(String channelId, String variable, String value) throws RestException { -buildSetChannelVar(channelId, variable, value); -String json = httpActionSync(); -} - -@Override -public void setChannelVar(String channelId, String variable, String value, AriCallback callback) { -buildSetChannelVar(channelId, variable, value); -httpActionAsync(callback); -} - -/********************************************************** - * - * - * @since ari_1_8_0 - *********************************************************/ -public void redirect(String channelId, String endpoint, AriCallback callback){ - throw new UnsupportedOperationException("Method availble from ..."); -}; - -/********************************************************** - * - * - * @since ari_1_7_0 - *********************************************************/ -public void originate(String endpoint, String extension, String context, long priority, String label, String app, String appArgs, String callerId, int timeout, Map variables, String channelId, String otherChannelId, String originator, AriCallback callback){ - throw new UnsupportedOperationException("Method availble from ..."); -}; - -/********************************************************** - * Start snooping. - * Snoop (spy/whisper) on a specific channel. - * - * @since ari_0_0_1 - *********************************************************/ -public Channel snoopChannel(String channelId, String spy, String whisper, String app, String appArgs) throws RestException{ - throw new UnsupportedOperationException("Method availble from ..."); -}; - -/********************************************************** - * - * - * @since ari_1_10_0 - *********************************************************/ -public void dial(String channelId, String caller, int timeout, AriCallback callback){ - throw new UnsupportedOperationException("Method availble from ..."); -}; - -/********************************************************** - * - * - * @since ari_1_10_0 - *********************************************************/ -public void originateWithId(String channelId, String endpoint, String extension, String context, long priority, String label, String app, String appArgs, String callerId, int timeout, Map variables, String otherChannelId, String originator, String formats, AriCallback callback){ - throw new UnsupportedOperationException("Method availble from ..."); -}; - -/********************************************************** - * Exit application{ - throw new UnsupportedOperationException("Method availble from ..."); -}; continue execution in the dialplan. - * - * - * @since ari_1_7_0 - *********************************************************/ -public void continueInDialplan(String channelId, String context, String extension, int priority, String label) throws RestException{ - throw new UnsupportedOperationException("Method availble from ..."); -}; - -/********************************************************** - * Start playback of media. - * The media URI may be any of a number of URI's. Currently sound: and recording: URI's are supported. This operation creates a playback resource that can be used to control the playback of media (pause, rewind, fast forward, etc.) - * - * @since ari_0_0_1 - *********************************************************/ -public Playback play(String channelId, String media, String lang, int offsetms, int skipms) throws RestException{ - throw new UnsupportedOperationException("Method availble from ..."); -}; - -/********************************************************** - * - * - * @since ari_0_0_1 - *********************************************************/ -public void play(String channelId, String media, String lang, int offsetms, int skipms, AriCallback callback){ - throw new UnsupportedOperationException("Method availble from ..."); -}; - -/********************************************************** - * - * - * @since ari_0_0_1 - *********************************************************/ -public void snoopChannel(String channelId, String spy, String whisper, String app, String appArgs, AriCallback callback){ - throw new UnsupportedOperationException("Method availble from ..."); -}; - -/********************************************************** - * Create a new channel (originate). - * The new channel is created immediately and a snapshot of it returned. If a Stasis application is provided it will be automatically subscribed to the originated channel for further events and updates. - * - * @since ari_1_7_0 - *********************************************************/ -public Channel originate(String endpoint, String extension, String context, long priority, String label, String app, String appArgs, String callerId, int timeout, Map variables, String channelId, String otherChannelId, String originator) throws RestException{ - throw new UnsupportedOperationException("Method availble from ..."); -}; - -/********************************************************** - * Create a new channel (originate with id). - * The new channel is created immediately and a snapshot of it returned. If a Stasis application is provided it will be automatically subscribed to the originated channel for further events and updates. - * - * @since ari_1_7_0 - *********************************************************/ -public Channel originateWithId(String channelId, String endpoint, String extension, String context, long priority, String label, String app, String appArgs, String callerId, int timeout, Map variables, String otherChannelId, String originator) throws RestException{ - throw new UnsupportedOperationException("Method availble from ..."); -}; - -/********************************************************** - * Create a new channel (originate). - * The new channel is created immediately and a snapshot of it returned. If a Stasis application is provided it will be automatically subscribed to the originated channel for further events and updates. - * - * @since ari_1_10_0 - *********************************************************/ -public Channel originate(String endpoint, String extension, String context, long priority, String label, String app, String appArgs, String callerId, int timeout, Map variables, String channelId, String otherChannelId, String originator, String formats) throws RestException{ - throw new UnsupportedOperationException("Method availble from ..."); -}; - -/********************************************************** - * Create a new channel (originate with id). - * The new channel is created immediately and a snapshot of it returned. If a Stasis application is provided it will be automatically subscribed to the originated channel for further events and updates. - * - * @since ari_1_10_0 - *********************************************************/ -public Channel originateWithId(String channelId, String endpoint, String extension, String context, long priority, String label, String app, String appArgs, String callerId, int timeout, Map variables, String otherChannelId, String originator, String formats) throws RestException{ - throw new UnsupportedOperationException("Method availble from ..."); -}; - -/********************************************************** - * Create a new channel (originate). - * The new channel is created immediately and a snapshot of it returned. If a Stasis application is provided it will be automatically subscribed to the originated channel for further events and updates. - * - * @since ari_0_0_1 - *********************************************************/ -public Channel originate(String endpoint, String extension, String context, long priority, String app, String appArgs, String callerId, int timeout) throws RestException{ - throw new UnsupportedOperationException("Method availble from ..."); -}; - -/********************************************************** - * - * - * @since ari_1_7_0 - *********************************************************/ -public void originateWithId(String channelId, String endpoint, String extension, String context, long priority, String label, String app, String appArgs, String callerId, int timeout, Map variables, String otherChannelId, String originator, AriCallback callback){ - throw new UnsupportedOperationException("Method availble from ..."); -}; - -/********************************************************** - * - * - * @since ari_1_7_0 - *********************************************************/ -public void continueInDialplan(String channelId, String context, String extension, int priority, String label, AriCallback callback){ - throw new UnsupportedOperationException("Method availble from ..."); -}; - -/********************************************************** - * Dial a created channel. - * - * - * @since ari_1_10_0 - *********************************************************/ -public void dial(String channelId, String caller, int timeout) throws RestException{ - throw new UnsupportedOperationException("Method availble from ..."); -}; - -/********************************************************** - * - * - * @since ari_1_10_0 - *********************************************************/ -public void create(String endpoint, String app, String appArgs, String channelId, String otherChannelId, String originator, String formats, AriCallback callback){ - throw new UnsupportedOperationException("Method availble from ..."); -}; - -/********************************************************** - * Create channel. - * - * - * @since ari_1_10_0 - *********************************************************/ -public Channel create(String endpoint, String app, String appArgs, String channelId, String otherChannelId, String originator, String formats) throws RestException{ - throw new UnsupportedOperationException("Method availble from ..."); -}; - -/********************************************************** - * - * - * @since ari_1_10_0 - *********************************************************/ -public void originate(String endpoint, String extension, String context, long priority, String label, String app, String appArgs, String callerId, int timeout, Map variables, String channelId, String otherChannelId, String originator, String formats, AriCallback callback){ - throw new UnsupportedOperationException("Method availble from ..."); -}; - -/********************************************************** - * Redirect the channel to a different location. - * - * - * @since ari_1_8_0 - *********************************************************/ -public void redirect(String channelId, String endpoint) throws RestException{ - throw new UnsupportedOperationException("Method availble from ..."); -}; - -/********************************************************** - * - * - * @since ari_0_0_1 - *********************************************************/ -public void originate(String endpoint, String extension, String context, long priority, String app, String appArgs, String callerId, int timeout, AriCallback callback){ - throw new UnsupportedOperationException("Method availble from ..."); -}; - -}; - diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_5_0/actions/ActionDeviceStates_impl_ari_1_5_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_5_0/actions/ActionDeviceStates_impl_ari_1_5_0.java deleted file mode 100644 index 825fb7b6..00000000 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_5_0/actions/ActionDeviceStates_impl_ari_1_5_0.java +++ /dev/null @@ -1,131 +0,0 @@ -package ch.loway.oss.ari4java.generated.ari_1_5_0.actions; - -// ---------------------------------------------------- -// THIS CLASS WAS GENERATED AUTOMATICALLY -// PLEASE DO NOT EDIT -// Generated on: Tue Dec 19 09:55:49 CET 2017 -// ---------------------------------------------------- - -import ch.loway.oss.ari4java.generated.*; -import java.util.Date; -import java.util.List; -import java.util.Map; -import java.util.ArrayList; -import ch.loway.oss.ari4java.tools.BaseAriAction; -import ch.loway.oss.ari4java.tools.RestException; -import ch.loway.oss.ari4java.tools.AriCallback; -import ch.loway.oss.ari4java.tools.HttpParam; -import ch.loway.oss.ari4java.tools.HttpResponse; -import com.fasterxml.jackson.core.type.TypeReference; -import ch.loway.oss.ari4java.generated.ari_1_5_0.models.*; - -/********************************************************** - * - * Generated by: Apis - *********************************************************/ - - -public class ActionDeviceStates_impl_ari_1_5_0 extends BaseAriAction implements ActionDeviceStates { -/********************************************************** - * Device states - * - * List all ARI controlled device states. - *********************************************************/ -private void buildList() { -reset(); -url = "/deviceStates"; -method = "GET"; -} - -@Override -public List list() throws RestException { -buildList(); -String json = httpActionSync(); -return deserializeJsonAsAbstractList( json, - new TypeReference>() {} ); -} - -@Override -public void list(AriCallback> callback) { -buildList(); -httpActionAsync(callback, new TypeReference>() {}); -} - -/********************************************************** - * Device state - * - * Retrieve the current state of a device. - *********************************************************/ -private void buildGet(String deviceName) { -reset(); -url = "/deviceStates/" + deviceName + ""; -method = "GET"; -} - -@Override -public DeviceState get(String deviceName) throws RestException { -buildGet(deviceName); -String json = httpActionSync(); -return deserializeJson( json, DeviceState_impl_ari_1_5_0.class ); -} - -@Override -public void get(String deviceName, AriCallback callback) { -buildGet(deviceName); -httpActionAsync(callback, DeviceState_impl_ari_1_5_0.class); -} - -/********************************************************** - * Device state - * - * Change the state of a device controlled by ARI. (Note - implicitly creates the device state). - *********************************************************/ -private void buildUpdate(String deviceName, String deviceState) { -reset(); -url = "/deviceStates/" + deviceName + ""; -method = "PUT"; -lParamQuery.add( HttpParam.build( "deviceState", deviceState) ); -lE.add( HttpResponse.build( 404, "Device name is missing") ); -lE.add( HttpResponse.build( 409, "Uncontrolled device specified") ); -} - -@Override -public void update(String deviceName, String deviceState) throws RestException { -buildUpdate(deviceName, deviceState); -String json = httpActionSync(); -} - -@Override -public void update(String deviceName, String deviceState, AriCallback callback) { -buildUpdate(deviceName, deviceState); -httpActionAsync(callback); -} - -/********************************************************** - * Device state - * - * Destroy a device-state controlled by ARI. - *********************************************************/ -private void buildDelete(String deviceName) { -reset(); -url = "/deviceStates/" + deviceName + ""; -method = "DELETE"; -lE.add( HttpResponse.build( 404, "Device name is missing") ); -lE.add( HttpResponse.build( 409, "Uncontrolled device specified") ); -} - -@Override -public void delete(String deviceName) throws RestException { -buildDelete(deviceName); -String json = httpActionSync(); -} - -@Override -public void delete(String deviceName, AriCallback callback) { -buildDelete(deviceName); -httpActionAsync(callback); -} - -/** No missing signatures from interface */ -}; - diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_5_0/actions/ActionEndpoints_impl_ari_1_5_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_5_0/actions/ActionEndpoints_impl_ari_1_5_0.java deleted file mode 100644 index c37a48c8..00000000 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_5_0/actions/ActionEndpoints_impl_ari_1_5_0.java +++ /dev/null @@ -1,164 +0,0 @@ -package ch.loway.oss.ari4java.generated.ari_1_5_0.actions; - -// ---------------------------------------------------- -// THIS CLASS WAS GENERATED AUTOMATICALLY -// PLEASE DO NOT EDIT -// Generated on: Tue Dec 19 09:55:49 CET 2017 -// ---------------------------------------------------- - -import ch.loway.oss.ari4java.generated.*; -import java.util.Date; -import java.util.List; -import java.util.Map; -import java.util.ArrayList; -import ch.loway.oss.ari4java.tools.BaseAriAction; -import ch.loway.oss.ari4java.tools.RestException; -import ch.loway.oss.ari4java.tools.AriCallback; -import ch.loway.oss.ari4java.tools.HttpParam; -import ch.loway.oss.ari4java.tools.HttpResponse; -import com.fasterxml.jackson.core.type.TypeReference; -import ch.loway.oss.ari4java.generated.ari_1_5_0.models.*; - -/********************************************************** - * - * Generated by: Apis - *********************************************************/ - - -public class ActionEndpoints_impl_ari_1_5_0 extends BaseAriAction implements ActionEndpoints { -/********************************************************** - * Asterisk endpoints - * - * List all endpoints. - *********************************************************/ -private void buildList() { -reset(); -url = "/endpoints"; -method = "GET"; -} - -@Override -public List list() throws RestException { -buildList(); -String json = httpActionSync(); -return deserializeJsonAsAbstractList( json, - new TypeReference>() {} ); -} - -@Override -public void list(AriCallback> callback) { -buildList(); -httpActionAsync(callback, new TypeReference>() {}); -} - -/********************************************************** - * Send a message to some technology URI or endpoint. - * - * Send a message to some technology URI or endpoint. - *********************************************************/ -private void buildSendMessage(String to, String from, String body, Map variables) { -reset(); -url = "/endpoints/sendMessage"; -method = "PUT"; -lParamQuery.add( HttpParam.build( "to", to) ); -lParamQuery.add( HttpParam.build( "from", from) ); -lParamQuery.add( HttpParam.build( "body", body) ); -lParamBody.addAll( HttpParam.build( "variables", variables) ); -lE.add( HttpResponse.build( 404, "Endpoint not found") ); -} - -@Override -public void sendMessage(String to, String from, String body, Map variables) throws RestException { -buildSendMessage(to, from, body, variables); -String json = httpActionSync(); -} - -@Override -public void sendMessage(String to, String from, String body, Map variables, AriCallback callback) { -buildSendMessage(to, from, body, variables); -httpActionAsync(callback); -} - -/********************************************************** - * Asterisk endpoints - * - * List available endoints for a given endpoint technology. - *********************************************************/ -private void buildListByTech(String tech) { -reset(); -url = "/endpoints/" + tech + ""; -method = "GET"; -lE.add( HttpResponse.build( 404, "Endpoints not found") ); -} - -@Override -public List listByTech(String tech) throws RestException { -buildListByTech(tech); -String json = httpActionSync(); -return deserializeJsonAsAbstractList( json, - new TypeReference>() {} ); -} - -@Override -public void listByTech(String tech, AriCallback> callback) { -buildListByTech(tech); -httpActionAsync(callback, new TypeReference>() {}); -} - -/********************************************************** - * Single endpoint - * - * Details for an endpoint. - *********************************************************/ -private void buildGet(String tech, String resource) { -reset(); -url = "/endpoints/" + tech + "/" + resource + ""; -method = "GET"; -lE.add( HttpResponse.build( 400, "Invalid parameters for sending a message.") ); -lE.add( HttpResponse.build( 404, "Endpoints not found") ); -} - -@Override -public Endpoint get(String tech, String resource) throws RestException { -buildGet(tech, resource); -String json = httpActionSync(); -return deserializeJson( json, Endpoint_impl_ari_1_5_0.class ); -} - -@Override -public void get(String tech, String resource, AriCallback callback) { -buildGet(tech, resource); -httpActionAsync(callback, Endpoint_impl_ari_1_5_0.class); -} - -/********************************************************** - * Send a message to some endpoint in a technology. - * - * Send a message to some endpoint in a technology. - *********************************************************/ -private void buildSendMessageToEndpoint(String tech, String resource, String from, String body, Map variables) { -reset(); -url = "/endpoints/" + tech + "/" + resource + "/sendMessage"; -method = "PUT"; -lParamQuery.add( HttpParam.build( "from", from) ); -lParamQuery.add( HttpParam.build( "body", body) ); -lParamBody.addAll( HttpParam.build( "variables", variables) ); -lE.add( HttpResponse.build( 400, "Invalid parameters for sending a message.") ); -lE.add( HttpResponse.build( 404, "Endpoint not found") ); -} - -@Override -public void sendMessageToEndpoint(String tech, String resource, String from, String body, Map variables) throws RestException { -buildSendMessageToEndpoint(tech, resource, from, body, variables); -String json = httpActionSync(); -} - -@Override -public void sendMessageToEndpoint(String tech, String resource, String from, String body, Map variables, AriCallback callback) { -buildSendMessageToEndpoint(tech, resource, from, body, variables); -httpActionAsync(callback); -} - -/** No missing signatures from interface */ -}; - diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_5_0/actions/ActionEvents_impl_ari_1_5_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_5_0/actions/ActionEvents_impl_ari_1_5_0.java deleted file mode 100644 index bf8f8dc9..00000000 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_5_0/actions/ActionEvents_impl_ari_1_5_0.java +++ /dev/null @@ -1,102 +0,0 @@ -package ch.loway.oss.ari4java.generated.ari_1_5_0.actions; - -// ---------------------------------------------------- -// THIS CLASS WAS GENERATED AUTOMATICALLY -// PLEASE DO NOT EDIT -// Generated on: Tue Dec 19 09:55:49 CET 2017 -// ---------------------------------------------------- - -import ch.loway.oss.ari4java.generated.*; -import java.util.Date; -import java.util.List; -import java.util.Map; -import java.util.ArrayList; -import ch.loway.oss.ari4java.tools.BaseAriAction; -import ch.loway.oss.ari4java.tools.RestException; -import ch.loway.oss.ari4java.tools.AriCallback; -import ch.loway.oss.ari4java.tools.HttpParam; -import ch.loway.oss.ari4java.tools.HttpResponse; -import com.fasterxml.jackson.core.type.TypeReference; -import ch.loway.oss.ari4java.generated.ari_1_5_0.models.*; - -/********************************************************** - * - * Generated by: Apis - *********************************************************/ - - -public class ActionEvents_impl_ari_1_5_0 extends BaseAriAction implements ActionEvents { -/********************************************************** - * Events from Asterisk to applications - * - * WebSocket connection for events. - *********************************************************/ -private void buildEventWebsocket(String app) { -reset(); -url = "/events"; -method = "GET"; -lParamQuery.add( HttpParam.build( "app", app) ); -wsUpgrade = true; -} - -@Override -public Message eventWebsocket(String app) throws RestException { -throw new RestException("No synchronous operation on WebSocket"); -} - -@Override -public void eventWebsocket(String app, AriCallback callback) { -buildEventWebsocket(app); -httpActionAsync(callback, Message_impl_ari_1_5_0.class); -} - -/********************************************************** - * Stasis application user events - * - * Generate a user event. - *********************************************************/ -private void buildUserEvent(String eventName, String application, String source, Map variables) { -reset(); -url = "/events/user/" + eventName + ""; -method = "POST"; -lParamQuery.add( HttpParam.build( "application", application) ); -lParamQuery.add( HttpParam.build( "source", source) ); -lParamBody.addAll( HttpParam.build( "variables", variables) ); -lE.add( HttpResponse.build( 404, "Application does not exist.") ); -lE.add( HttpResponse.build( 422, "Event source not found.") ); -lE.add( HttpResponse.build( 400, "Invalid even tsource URI or userevent data.") ); -} - -@Override -public void userEvent(String eventName, String application, String source, Map variables) throws RestException { -buildUserEvent(eventName, application, source, variables); -String json = httpActionSync(); -} - -@Override -public void userEvent(String eventName, String application, String source, Map variables, AriCallback callback) { -buildUserEvent(eventName, application, source, variables); -httpActionAsync(callback); -} - -/********************************************************** - * WebSocket connection for events. - * - * - * @since ari_1_9_0 - *********************************************************/ -public Message eventWebsocket(String app, boolean subscribeAll) throws RestException{ - throw new UnsupportedOperationException("Method availble from ..."); -}; - -/********************************************************** - * - * - * @since ari_1_9_0 - *********************************************************/ -public void eventWebsocket(String app, boolean subscribeAll, AriCallback callback){ - throw new UnsupportedOperationException("Method availble from ..."); -}; - -}; - diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_5_0/actions/ActionPlaybacks_impl_ari_1_5_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_5_0/actions/ActionPlaybacks_impl_ari_1_5_0.java deleted file mode 100644 index a4e52823..00000000 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_5_0/actions/ActionPlaybacks_impl_ari_1_5_0.java +++ /dev/null @@ -1,107 +0,0 @@ -package ch.loway.oss.ari4java.generated.ari_1_5_0.actions; - -// ---------------------------------------------------- -// THIS CLASS WAS GENERATED AUTOMATICALLY -// PLEASE DO NOT EDIT -// Generated on: Tue Dec 19 09:55:49 CET 2017 -// ---------------------------------------------------- - -import ch.loway.oss.ari4java.generated.*; -import java.util.Date; -import java.util.List; -import java.util.Map; -import java.util.ArrayList; -import ch.loway.oss.ari4java.tools.BaseAriAction; -import ch.loway.oss.ari4java.tools.RestException; -import ch.loway.oss.ari4java.tools.AriCallback; -import ch.loway.oss.ari4java.tools.HttpParam; -import ch.loway.oss.ari4java.tools.HttpResponse; -import com.fasterxml.jackson.core.type.TypeReference; -import ch.loway.oss.ari4java.generated.ari_1_5_0.models.*; - -/********************************************************** - * - * Generated by: Apis - *********************************************************/ - - -public class ActionPlaybacks_impl_ari_1_5_0 extends BaseAriAction implements ActionPlaybacks { -/********************************************************** - * Control object for a playback operation. - * - * Get a playback's details. - *********************************************************/ -private void buildGet(String playbackId) { -reset(); -url = "/playbacks/" + playbackId + ""; -method = "GET"; -lE.add( HttpResponse.build( 404, "The playback cannot be found") ); -} - -@Override -public Playback get(String playbackId) throws RestException { -buildGet(playbackId); -String json = httpActionSync(); -return deserializeJson( json, Playback_impl_ari_1_5_0.class ); -} - -@Override -public void get(String playbackId, AriCallback callback) { -buildGet(playbackId); -httpActionAsync(callback, Playback_impl_ari_1_5_0.class); -} - -/********************************************************** - * Control object for a playback operation. - * - * Stop a playback. - *********************************************************/ -private void buildStop(String playbackId) { -reset(); -url = "/playbacks/" + playbackId + ""; -method = "DELETE"; -lE.add( HttpResponse.build( 404, "The playback cannot be found") ); -} - -@Override -public void stop(String playbackId) throws RestException { -buildStop(playbackId); -String json = httpActionSync(); -} - -@Override -public void stop(String playbackId, AriCallback callback) { -buildStop(playbackId); -httpActionAsync(callback); -} - -/********************************************************** - * Control object for a playback operation. - * - * Control a playback. - *********************************************************/ -private void buildControl(String playbackId, String operation) { -reset(); -url = "/playbacks/" + playbackId + "/control"; -method = "POST"; -lParamQuery.add( HttpParam.build( "operation", operation) ); -lE.add( HttpResponse.build( 400, "The provided operation parameter was invalid") ); -lE.add( HttpResponse.build( 404, "The playback cannot be found") ); -lE.add( HttpResponse.build( 409, "The operation cannot be performed in the playback's current state") ); -} - -@Override -public void control(String playbackId, String operation) throws RestException { -buildControl(playbackId, operation); -String json = httpActionSync(); -} - -@Override -public void control(String playbackId, String operation, AriCallback callback) { -buildControl(playbackId, operation); -httpActionAsync(callback); -} - -/** No missing signatures from interface */ -}; - diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_5_0/actions/ActionRecordings_impl_ari_1_5_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_5_0/actions/ActionRecordings_impl_ari_1_5_0.java deleted file mode 100644 index 60844da9..00000000 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_5_0/actions/ActionRecordings_impl_ari_1_5_0.java +++ /dev/null @@ -1,325 +0,0 @@ -package ch.loway.oss.ari4java.generated.ari_1_5_0.actions; - -// ---------------------------------------------------- -// THIS CLASS WAS GENERATED AUTOMATICALLY -// PLEASE DO NOT EDIT -// Generated on: Tue Dec 19 09:55:49 CET 2017 -// ---------------------------------------------------- - -import ch.loway.oss.ari4java.generated.*; -import java.util.Date; -import java.util.List; -import java.util.Map; -import java.util.ArrayList; -import ch.loway.oss.ari4java.tools.BaseAriAction; -import ch.loway.oss.ari4java.tools.RestException; -import ch.loway.oss.ari4java.tools.AriCallback; -import ch.loway.oss.ari4java.tools.HttpParam; -import ch.loway.oss.ari4java.tools.HttpResponse; -import com.fasterxml.jackson.core.type.TypeReference; -import ch.loway.oss.ari4java.generated.ari_1_5_0.models.*; - -/********************************************************** - * - * Generated by: Apis - *********************************************************/ - - -public class ActionRecordings_impl_ari_1_5_0 extends BaseAriAction implements ActionRecordings { -/********************************************************** - * A recording that is in progress - * - * List live recordings. - *********************************************************/ -private void buildGetLive(String recordingName) { -reset(); -url = "/recordings/live/" + recordingName + ""; -method = "GET"; -lE.add( HttpResponse.build( 404, "Recording not found") ); -} - -@Override -public LiveRecording getLive(String recordingName) throws RestException { -buildGetLive(recordingName); -String json = httpActionSync(); -return deserializeJson( json, LiveRecording_impl_ari_1_5_0.class ); -} - -@Override -public void getLive(String recordingName, AriCallback callback) { -buildGetLive(recordingName); -httpActionAsync(callback, LiveRecording_impl_ari_1_5_0.class); -} - -/********************************************************** - * A recording that is in progress - * - * Stop a live recording and discard it. - *********************************************************/ -private void buildCancel(String recordingName) { -reset(); -url = "/recordings/live/" + recordingName + ""; -method = "DELETE"; -lE.add( HttpResponse.build( 404, "Recording not found") ); -} - -@Override -public void cancel(String recordingName) throws RestException { -buildCancel(recordingName); -String json = httpActionSync(); -} - -@Override -public void cancel(String recordingName, AriCallback callback) { -buildCancel(recordingName); -httpActionAsync(callback); -} - -/********************************************************** - * - * - * Mute a live recording. - * Muting a recording suspends silence detection, which will be restarted when the recording is unmuted. - *********************************************************/ -private void buildMute(String recordingName) { -reset(); -url = "/recordings/live/" + recordingName + "/mute"; -method = "POST"; -lE.add( HttpResponse.build( 404, "Recording not found") ); -lE.add( HttpResponse.build( 409, "Recording not in session") ); -} - -@Override -public void mute(String recordingName) throws RestException { -buildMute(recordingName); -String json = httpActionSync(); -} - -@Override -public void mute(String recordingName, AriCallback callback) { -buildMute(recordingName); -httpActionAsync(callback); -} - -/********************************************************** - * - * - * Unmute a live recording. - *********************************************************/ -private void buildUnmute(String recordingName) { -reset(); -url = "/recordings/live/" + recordingName + "/mute"; -method = "DELETE"; -lE.add( HttpResponse.build( 404, "Recording not found") ); -lE.add( HttpResponse.build( 409, "Recording not in session") ); -} - -@Override -public void unmute(String recordingName) throws RestException { -buildUnmute(recordingName); -String json = httpActionSync(); -} - -@Override -public void unmute(String recordingName, AriCallback callback) { -buildUnmute(recordingName); -httpActionAsync(callback); -} - -/********************************************************** - * - * - * Pause a live recording. - * Pausing a recording suspends silence detection, which will be restarted when the recording is unpaused. Paused time is not included in the accounting for maxDurationSeconds. - *********************************************************/ -private void buildPause(String recordingName) { -reset(); -url = "/recordings/live/" + recordingName + "/pause"; -method = "POST"; -lE.add( HttpResponse.build( 404, "Recording not found") ); -lE.add( HttpResponse.build( 409, "Recording not in session") ); -} - -@Override -public void pause(String recordingName) throws RestException { -buildPause(recordingName); -String json = httpActionSync(); -} - -@Override -public void pause(String recordingName, AriCallback callback) { -buildPause(recordingName); -httpActionAsync(callback); -} - -/********************************************************** - * - * - * Unpause a live recording. - *********************************************************/ -private void buildUnpause(String recordingName) { -reset(); -url = "/recordings/live/" + recordingName + "/pause"; -method = "DELETE"; -lE.add( HttpResponse.build( 404, "Recording not found") ); -lE.add( HttpResponse.build( 409, "Recording not in session") ); -} - -@Override -public void unpause(String recordingName) throws RestException { -buildUnpause(recordingName); -String json = httpActionSync(); -} - -@Override -public void unpause(String recordingName, AriCallback callback) { -buildUnpause(recordingName); -httpActionAsync(callback); -} - -/********************************************************** - * - * - * Stop a live recording and store it. - *********************************************************/ -private void buildStop(String recordingName) { -reset(); -url = "/recordings/live/" + recordingName + "/stop"; -method = "POST"; -lE.add( HttpResponse.build( 404, "Recording not found") ); -} - -@Override -public void stop(String recordingName) throws RestException { -buildStop(recordingName); -String json = httpActionSync(); -} - -@Override -public void stop(String recordingName, AriCallback callback) { -buildStop(recordingName); -httpActionAsync(callback); -} - -/********************************************************** - * Recordings - * - * List recordings that are complete. - *********************************************************/ -private void buildListStored() { -reset(); -url = "/recordings/stored"; -method = "GET"; -} - -@Override -public List listStored() throws RestException { -buildListStored(); -String json = httpActionSync(); -return deserializeJsonAsAbstractList( json, - new TypeReference>() {} ); -} - -@Override -public void listStored(AriCallback> callback) { -buildListStored(); -httpActionAsync(callback, new TypeReference>() {}); -} - -/********************************************************** - * Individual recording - * - * Get a stored recording's details. - *********************************************************/ -private void buildGetStored(String recordingName) { -reset(); -url = "/recordings/stored/" + recordingName + ""; -method = "GET"; -lE.add( HttpResponse.build( 404, "Recording not found") ); -} - -@Override -public StoredRecording getStored(String recordingName) throws RestException { -buildGetStored(recordingName); -String json = httpActionSync(); -return deserializeJson( json, StoredRecording_impl_ari_1_5_0.class ); -} - -@Override -public void getStored(String recordingName, AriCallback callback) { -buildGetStored(recordingName); -httpActionAsync(callback, StoredRecording_impl_ari_1_5_0.class); -} - -/********************************************************** - * Individual recording - * - * Delete a stored recording. - *********************************************************/ -private void buildDeleteStored(String recordingName) { -reset(); -url = "/recordings/stored/" + recordingName + ""; -method = "DELETE"; -lE.add( HttpResponse.build( 404, "Recording not found") ); -} - -@Override -public void deleteStored(String recordingName) throws RestException { -buildDeleteStored(recordingName); -String json = httpActionSync(); -} - -@Override -public void deleteStored(String recordingName, AriCallback callback) { -buildDeleteStored(recordingName); -httpActionAsync(callback); -} - -/********************************************************** - * Copy an individual recording - * - * Copy a stored recording. - *********************************************************/ -private void buildCopyStored(String recordingName, String destinationRecordingName) { -reset(); -url = "/recordings/stored/" + recordingName + "/copy"; -method = "POST"; -lParamQuery.add( HttpParam.build( "destinationRecordingName", destinationRecordingName) ); -lE.add( HttpResponse.build( 404, "Recording not found") ); -lE.add( HttpResponse.build( 409, "A recording with the same name already exists on the system") ); -} - -@Override -public StoredRecording copyStored(String recordingName, String destinationRecordingName) throws RestException { -buildCopyStored(recordingName, destinationRecordingName); -String json = httpActionSync(); -return deserializeJson( json, StoredRecording_impl_ari_1_5_0.class ); -} - -@Override -public void copyStored(String recordingName, String destinationRecordingName, AriCallback callback) { -buildCopyStored(recordingName, destinationRecordingName); -httpActionAsync(callback, StoredRecording_impl_ari_1_5_0.class); -} - -/********************************************************** - * - * - * @since ari_1_10_0 - *********************************************************/ -public void getStoredFile(String recordingName, AriCallback callback){ - throw new UnsupportedOperationException("Method availble from ..."); -}; - -/********************************************************** - * Get the file associated with the stored recording. - * - * - * @since ari_1_10_0 - *********************************************************/ -public byte[] getStoredFile(String recordingName) throws RestException{ - throw new UnsupportedOperationException("Method availble from ..."); -}; - -}; - diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_5_0/actions/ActionSounds_impl_ari_1_5_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_5_0/actions/ActionSounds_impl_ari_1_5_0.java deleted file mode 100644 index d321f41c..00000000 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_5_0/actions/ActionSounds_impl_ari_1_5_0.java +++ /dev/null @@ -1,82 +0,0 @@ -package ch.loway.oss.ari4java.generated.ari_1_5_0.actions; - -// ---------------------------------------------------- -// THIS CLASS WAS GENERATED AUTOMATICALLY -// PLEASE DO NOT EDIT -// Generated on: Tue Dec 19 09:55:49 CET 2017 -// ---------------------------------------------------- - -import ch.loway.oss.ari4java.generated.*; -import java.util.Date; -import java.util.List; -import java.util.Map; -import java.util.ArrayList; -import ch.loway.oss.ari4java.tools.BaseAriAction; -import ch.loway.oss.ari4java.tools.RestException; -import ch.loway.oss.ari4java.tools.AriCallback; -import ch.loway.oss.ari4java.tools.HttpParam; -import ch.loway.oss.ari4java.tools.HttpResponse; -import com.fasterxml.jackson.core.type.TypeReference; -import ch.loway.oss.ari4java.generated.ari_1_5_0.models.*; - -/********************************************************** - * - * Generated by: Apis - *********************************************************/ - - -public class ActionSounds_impl_ari_1_5_0 extends BaseAriAction implements ActionSounds { -/********************************************************** - * Sounds - * - * List all sounds. - *********************************************************/ -private void buildList(String lang, String format) { -reset(); -url = "/sounds"; -method = "GET"; -lParamQuery.add( HttpParam.build( "lang", lang) ); -lParamQuery.add( HttpParam.build( "format", format) ); -} - -@Override -public List list(String lang, String format) throws RestException { -buildList(lang, format); -String json = httpActionSync(); -return deserializeJsonAsAbstractList( json, - new TypeReference>() {} ); -} - -@Override -public void list(String lang, String format, AriCallback> callback) { -buildList(lang, format); -httpActionAsync(callback, new TypeReference>() {}); -} - -/********************************************************** - * Individual sound - * - * Get a sound's details. - *********************************************************/ -private void buildGet(String soundId) { -reset(); -url = "/sounds/" + soundId + ""; -method = "GET"; -} - -@Override -public Sound get(String soundId) throws RestException { -buildGet(soundId); -String json = httpActionSync(); -return deserializeJson( json, Sound_impl_ari_1_5_0.class ); -} - -@Override -public void get(String soundId, AriCallback callback) { -buildGet(soundId); -httpActionAsync(callback, Sound_impl_ari_1_5_0.class); -} - -/** No missing signatures from interface */ -}; - diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_5_0/models/ApplicationReplaced_impl_ari_1_5_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_5_0/models/ApplicationReplaced_impl_ari_1_5_0.java deleted file mode 100644 index 22fc0b6a..00000000 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_5_0/models/ApplicationReplaced_impl_ari_1_5_0.java +++ /dev/null @@ -1,28 +0,0 @@ -package ch.loway.oss.ari4java.generated.ari_1_5_0.models; - -// ---------------------------------------------------- -// THIS CLASS WAS GENERATED AUTOMATICALLY -// PLEASE DO NOT EDIT -// Generated on: Tue Dec 19 09:55:49 CET 2017 -// ---------------------------------------------------- - -import ch.loway.oss.ari4java.generated.*; -import com.fasterxml.jackson.databind.annotation.JsonDeserialize; -import java.util.Date; -import java.util.List; -import java.util.Map; - -/********************************************************** - * Notification that another WebSocket has taken over for an application. - * - * An application may only be subscribed to by a single WebSocket at a time. If multiple WebSockets attempt to subscribe to the same application, the newer WebSocket wins, and the older one receives this event. - * - * Defined in file: events.json - * Generated by: Model - *********************************************************/ - -public class ApplicationReplaced_impl_ari_1_5_0 extends Event_impl_ari_1_5_0 implements ApplicationReplaced, java.io.Serializable { -private static final long serialVersionUID = 1L; -/** No missing signatures from interface */ -} - diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_5_0/models/Application_impl_ari_1_5_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_5_0/models/Application_impl_ari_1_5_0.java deleted file mode 100644 index d7567dd2..00000000 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_5_0/models/Application_impl_ari_1_5_0.java +++ /dev/null @@ -1,81 +0,0 @@ -package ch.loway.oss.ari4java.generated.ari_1_5_0.models; - -// ---------------------------------------------------- -// THIS CLASS WAS GENERATED AUTOMATICALLY -// PLEASE DO NOT EDIT -// Generated on: Tue Dec 19 09:55:49 CET 2017 -// ---------------------------------------------------- - -import ch.loway.oss.ari4java.generated.*; -import com.fasterxml.jackson.databind.annotation.JsonDeserialize; -import java.util.Date; -import java.util.List; -import java.util.Map; - -/********************************************************** - * Details of a Stasis application - * - * Defined in file: applications.json - * Generated by: Model - *********************************************************/ - -public class Application_impl_ari_1_5_0 implements Application, java.io.Serializable { -private static final long serialVersionUID = 1L; - /** Id's for bridges subscribed to. */ - private List bridge_ids; - public List getBridge_ids() { - return bridge_ids; - } - - @JsonDeserialize( contentAs=String.class ) - public void setBridge_ids(List val ) { - bridge_ids = val; - } - - /** Id's for channels subscribed to. */ - private List channel_ids; - public List getChannel_ids() { - return channel_ids; - } - - @JsonDeserialize( contentAs=String.class ) - public void setChannel_ids(List val ) { - channel_ids = val; - } - - /** Names of the devices subscribed to. */ - private List device_names; - public List getDevice_names() { - return device_names; - } - - @JsonDeserialize( contentAs=String.class ) - public void setDevice_names(List val ) { - device_names = val; - } - - /** {tech}/{resource} for endpoints subscribed to. */ - private List endpoint_ids; - public List getEndpoint_ids() { - return endpoint_ids; - } - - @JsonDeserialize( contentAs=String.class ) - public void setEndpoint_ids(List val ) { - endpoint_ids = val; - } - - /** Name of this application */ - private String name; - public String getName() { - return name; - } - - @JsonDeserialize( as=String.class ) - public void setName(String val ) { - name = val; - } - -/** No missing signatures from interface */ -} - diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_5_0/models/AsteriskInfo_impl_ari_1_5_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_5_0/models/AsteriskInfo_impl_ari_1_5_0.java deleted file mode 100644 index 919c45f9..00000000 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_5_0/models/AsteriskInfo_impl_ari_1_5_0.java +++ /dev/null @@ -1,70 +0,0 @@ -package ch.loway.oss.ari4java.generated.ari_1_5_0.models; - -// ---------------------------------------------------- -// THIS CLASS WAS GENERATED AUTOMATICALLY -// PLEASE DO NOT EDIT -// Generated on: Tue Dec 19 09:55:49 CET 2017 -// ---------------------------------------------------- - -import ch.loway.oss.ari4java.generated.*; -import com.fasterxml.jackson.databind.annotation.JsonDeserialize; -import java.util.Date; -import java.util.List; -import java.util.Map; - -/********************************************************** - * Asterisk system information - * - * Defined in file: asterisk.json - * Generated by: Model - *********************************************************/ - -public class AsteriskInfo_impl_ari_1_5_0 implements AsteriskInfo, java.io.Serializable { -private static final long serialVersionUID = 1L; - /** Info about how Asterisk was built */ - private BuildInfo build; - public BuildInfo getBuild() { - return build; - } - - @JsonDeserialize( as=BuildInfo_impl_ari_1_5_0.class ) - public void setBuild(BuildInfo val ) { - build = val; - } - - /** Info about Asterisk configuration */ - private ConfigInfo config; - public ConfigInfo getConfig() { - return config; - } - - @JsonDeserialize( as=ConfigInfo_impl_ari_1_5_0.class ) - public void setConfig(ConfigInfo val ) { - config = val; - } - - /** Info about Asterisk status */ - private StatusInfo status; - public StatusInfo getStatus() { - return status; - } - - @JsonDeserialize( as=StatusInfo_impl_ari_1_5_0.class ) - public void setStatus(StatusInfo val ) { - status = val; - } - - /** Info about the system running Asterisk */ - private SystemInfo system; - public SystemInfo getSystem() { - return system; - } - - @JsonDeserialize( as=SystemInfo_impl_ari_1_5_0.class ) - public void setSystem(SystemInfo val ) { - system = val; - } - -/** No missing signatures from interface */ -} - diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_5_0/models/BridgeAttendedTransfer_impl_ari_1_5_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_5_0/models/BridgeAttendedTransfer_impl_ari_1_5_0.java deleted file mode 100644 index 0302c112..00000000 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_5_0/models/BridgeAttendedTransfer_impl_ari_1_5_0.java +++ /dev/null @@ -1,202 +0,0 @@ -package ch.loway.oss.ari4java.generated.ari_1_5_0.models; - -// ---------------------------------------------------- -// THIS CLASS WAS GENERATED AUTOMATICALLY -// PLEASE DO NOT EDIT -// Generated on: Tue Dec 19 09:55:49 CET 2017 -// ---------------------------------------------------- - -import ch.loway.oss.ari4java.generated.*; -import com.fasterxml.jackson.databind.annotation.JsonDeserialize; -import java.util.Date; -import java.util.List; -import java.util.Map; - -/********************************************************** - * Notification that an attended transfer has occurred. - * - * Defined in file: events.json - * Generated by: Model - *********************************************************/ - -public class BridgeAttendedTransfer_impl_ari_1_5_0 extends Event_impl_ari_1_5_0 implements BridgeAttendedTransfer, java.io.Serializable { -private static final long serialVersionUID = 1L; - /** Application that has been transferred into */ - private String destination_application; - public String getDestination_application() { - return destination_application; - } - - @JsonDeserialize( as=String.class ) - public void setDestination_application(String val ) { - destination_application = val; - } - - /** Bridge that survived the merge result */ - private String destination_bridge; - public String getDestination_bridge() { - return destination_bridge; - } - - @JsonDeserialize( as=String.class ) - public void setDestination_bridge(String val ) { - destination_bridge = val; - } - - /** First leg of a link transfer result */ - private Channel destination_link_first_leg; - public Channel getDestination_link_first_leg() { - return destination_link_first_leg; - } - - @JsonDeserialize( as=Channel_impl_ari_1_5_0.class ) - public void setDestination_link_first_leg(Channel val ) { - destination_link_first_leg = val; - } - - /** Second leg of a link transfer result */ - private Channel destination_link_second_leg; - public Channel getDestination_link_second_leg() { - return destination_link_second_leg; - } - - @JsonDeserialize( as=Channel_impl_ari_1_5_0.class ) - public void setDestination_link_second_leg(Channel val ) { - destination_link_second_leg = val; - } - - /** Bridge that survived the threeway result */ - private Bridge destination_threeway_bridge; - public Bridge getDestination_threeway_bridge() { - return destination_threeway_bridge; - } - - @JsonDeserialize( as=Bridge_impl_ari_1_5_0.class ) - public void setDestination_threeway_bridge(Bridge val ) { - destination_threeway_bridge = val; - } - - /** Transferer channel that survived the threeway result */ - private Channel destination_threeway_channel; - public Channel getDestination_threeway_channel() { - return destination_threeway_channel; - } - - @JsonDeserialize( as=Channel_impl_ari_1_5_0.class ) - public void setDestination_threeway_channel(Channel val ) { - destination_threeway_channel = val; - } - - /** How the transfer was accomplished */ - private String destination_type; - public String getDestination_type() { - return destination_type; - } - - @JsonDeserialize( as=String.class ) - public void setDestination_type(String val ) { - destination_type = val; - } - - /** Whether the transfer was externally initiated or not */ - private boolean is_external; - public boolean getIs_external() { - return is_external; - } - - @JsonDeserialize( as=boolean.class ) - public void setIs_external(boolean val ) { - is_external = val; - } - - /** The channel that is replacing transferer_first_leg in the swap */ - private Channel replace_channel; - public Channel getReplace_channel() { - return replace_channel; - } - - @JsonDeserialize( as=Channel_impl_ari_1_5_0.class ) - public void setReplace_channel(Channel val ) { - replace_channel = val; - } - - /** The result of the transfer attempt */ - private String result; - public String getResult() { - return result; - } - - @JsonDeserialize( as=String.class ) - public void setResult(String val ) { - result = val; - } - - /** The channel that is being transferred to */ - private Channel transfer_target; - public Channel getTransfer_target() { - return transfer_target; - } - - @JsonDeserialize( as=Channel_impl_ari_1_5_0.class ) - public void setTransfer_target(Channel val ) { - transfer_target = val; - } - - /** The channel that is being transferred */ - private Channel transferee; - public Channel getTransferee() { - return transferee; - } - - @JsonDeserialize( as=Channel_impl_ari_1_5_0.class ) - public void setTransferee(Channel val ) { - transferee = val; - } - - /** First leg of the transferer */ - private Channel transferer_first_leg; - public Channel getTransferer_first_leg() { - return transferer_first_leg; - } - - @JsonDeserialize( as=Channel_impl_ari_1_5_0.class ) - public void setTransferer_first_leg(Channel val ) { - transferer_first_leg = val; - } - - /** Bridge the transferer first leg is in */ - private Bridge transferer_first_leg_bridge; - public Bridge getTransferer_first_leg_bridge() { - return transferer_first_leg_bridge; - } - - @JsonDeserialize( as=Bridge_impl_ari_1_5_0.class ) - public void setTransferer_first_leg_bridge(Bridge val ) { - transferer_first_leg_bridge = val; - } - - /** Second leg of the transferer */ - private Channel transferer_second_leg; - public Channel getTransferer_second_leg() { - return transferer_second_leg; - } - - @JsonDeserialize( as=Channel_impl_ari_1_5_0.class ) - public void setTransferer_second_leg(Channel val ) { - transferer_second_leg = val; - } - - /** Bridge the transferer second leg is in */ - private Bridge transferer_second_leg_bridge; - public Bridge getTransferer_second_leg_bridge() { - return transferer_second_leg_bridge; - } - - @JsonDeserialize( as=Bridge_impl_ari_1_5_0.class ) - public void setTransferer_second_leg_bridge(Bridge val ) { - transferer_second_leg_bridge = val; - } - -/** No missing signatures from interface */ -} - diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_5_0/models/BridgeBlindTransfer_impl_ari_1_5_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_5_0/models/BridgeBlindTransfer_impl_ari_1_5_0.java deleted file mode 100644 index 59ee3c78..00000000 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_5_0/models/BridgeBlindTransfer_impl_ari_1_5_0.java +++ /dev/null @@ -1,114 +0,0 @@ -package ch.loway.oss.ari4java.generated.ari_1_5_0.models; - -// ---------------------------------------------------- -// THIS CLASS WAS GENERATED AUTOMATICALLY -// PLEASE DO NOT EDIT -// Generated on: Tue Dec 19 09:55:49 CET 2017 -// ---------------------------------------------------- - -import ch.loway.oss.ari4java.generated.*; -import com.fasterxml.jackson.databind.annotation.JsonDeserialize; -import java.util.Date; -import java.util.List; -import java.util.Map; - -/********************************************************** - * Notification that a blind transfer has occurred. - * - * Defined in file: events.json - * Generated by: Model - *********************************************************/ - -public class BridgeBlindTransfer_impl_ari_1_5_0 extends Event_impl_ari_1_5_0 implements BridgeBlindTransfer, java.io.Serializable { -private static final long serialVersionUID = 1L; - /** The bridge being transferred */ - private Bridge bridge; - public Bridge getBridge() { - return bridge; - } - - @JsonDeserialize( as=Bridge_impl_ari_1_5_0.class ) - public void setBridge(Bridge val ) { - bridge = val; - } - - /** The channel performing the blind transfer */ - private Channel channel; - public Channel getChannel() { - return channel; - } - - @JsonDeserialize( as=Channel_impl_ari_1_5_0.class ) - public void setChannel(Channel val ) { - channel = val; - } - - /** The context transferred to */ - private String context; - public String getContext() { - return context; - } - - @JsonDeserialize( as=String.class ) - public void setContext(String val ) { - context = val; - } - - /** The extension transferred to */ - private String exten; - public String getExten() { - return exten; - } - - @JsonDeserialize( as=String.class ) - public void setExten(String val ) { - exten = val; - } - - /** Whether the transfer was externally initiated or not */ - private boolean is_external; - public boolean getIs_external() { - return is_external; - } - - @JsonDeserialize( as=boolean.class ) - public void setIs_external(boolean val ) { - is_external = val; - } - - /** The channel that is replacing transferer when the transferee(s) can not be transferred directly */ - private Channel replace_channel; - public Channel getReplace_channel() { - return replace_channel; - } - - @JsonDeserialize( as=Channel_impl_ari_1_5_0.class ) - public void setReplace_channel(Channel val ) { - replace_channel = val; - } - - /** The result of the transfer attempt */ - private String result; - public String getResult() { - return result; - } - - @JsonDeserialize( as=String.class ) - public void setResult(String val ) { - result = val; - } - - /** The channel that is being transferred */ - private Channel transferee; - public Channel getTransferee() { - return transferee; - } - - @JsonDeserialize( as=Channel_impl_ari_1_5_0.class ) - public void setTransferee(Channel val ) { - transferee = val; - } - -/** No missing signatures from interface */ -} - diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_5_0/models/BridgeCreated_impl_ari_1_5_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_5_0/models/BridgeCreated_impl_ari_1_5_0.java deleted file mode 100644 index ce1ffc8f..00000000 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_5_0/models/BridgeCreated_impl_ari_1_5_0.java +++ /dev/null @@ -1,37 +0,0 @@ -package ch.loway.oss.ari4java.generated.ari_1_5_0.models; - -// ---------------------------------------------------- -// THIS CLASS WAS GENERATED AUTOMATICALLY -// PLEASE DO NOT EDIT -// Generated on: Tue Dec 19 09:55:49 CET 2017 -// ---------------------------------------------------- - -import ch.loway.oss.ari4java.generated.*; -import com.fasterxml.jackson.databind.annotation.JsonDeserialize; -import java.util.Date; -import java.util.List; -import java.util.Map; - -/********************************************************** - * Notification that a bridge has been created. - * - * Defined in file: events.json - * Generated by: Model - *********************************************************/ - -public class BridgeCreated_impl_ari_1_5_0 extends Event_impl_ari_1_5_0 implements BridgeCreated, java.io.Serializable { -private static final long serialVersionUID = 1L; - /** */ - private Bridge bridge; - public Bridge getBridge() { - return bridge; - } - - @JsonDeserialize( as=Bridge_impl_ari_1_5_0.class ) - public void setBridge(Bridge val ) { - bridge = val; - } - -/** No missing signatures from interface */ -} - diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_5_0/models/BridgeDestroyed_impl_ari_1_5_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_5_0/models/BridgeDestroyed_impl_ari_1_5_0.java deleted file mode 100644 index 05fc5015..00000000 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_5_0/models/BridgeDestroyed_impl_ari_1_5_0.java +++ /dev/null @@ -1,37 +0,0 @@ -package ch.loway.oss.ari4java.generated.ari_1_5_0.models; - -// ---------------------------------------------------- -// THIS CLASS WAS GENERATED AUTOMATICALLY -// PLEASE DO NOT EDIT -// Generated on: Tue Dec 19 09:55:49 CET 2017 -// ---------------------------------------------------- - -import ch.loway.oss.ari4java.generated.*; -import com.fasterxml.jackson.databind.annotation.JsonDeserialize; -import java.util.Date; -import java.util.List; -import java.util.Map; - -/********************************************************** - * Notification that a bridge has been destroyed. - * - * Defined in file: events.json - * Generated by: Model - *********************************************************/ - -public class BridgeDestroyed_impl_ari_1_5_0 extends Event_impl_ari_1_5_0 implements BridgeDestroyed, java.io.Serializable { -private static final long serialVersionUID = 1L; - /** */ - private Bridge bridge; - public Bridge getBridge() { - return bridge; - } - - @JsonDeserialize( as=Bridge_impl_ari_1_5_0.class ) - public void setBridge(Bridge val ) { - bridge = val; - } - -/** No missing signatures from interface */ -} - diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_5_0/models/BridgeMerged_impl_ari_1_5_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_5_0/models/BridgeMerged_impl_ari_1_5_0.java deleted file mode 100644 index 167d4846..00000000 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_5_0/models/BridgeMerged_impl_ari_1_5_0.java +++ /dev/null @@ -1,48 +0,0 @@ -package ch.loway.oss.ari4java.generated.ari_1_5_0.models; - -// ---------------------------------------------------- -// THIS CLASS WAS GENERATED AUTOMATICALLY -// PLEASE DO NOT EDIT -// Generated on: Tue Dec 19 09:55:49 CET 2017 -// ---------------------------------------------------- - -import ch.loway.oss.ari4java.generated.*; -import com.fasterxml.jackson.databind.annotation.JsonDeserialize; -import java.util.Date; -import java.util.List; -import java.util.Map; - -/********************************************************** - * Notification that one bridge has merged into another. - * - * Defined in file: events.json - * Generated by: Model - *********************************************************/ - -public class BridgeMerged_impl_ari_1_5_0 extends Event_impl_ari_1_5_0 implements BridgeMerged, java.io.Serializable { -private static final long serialVersionUID = 1L; - /** */ - private Bridge bridge; - public Bridge getBridge() { - return bridge; - } - - @JsonDeserialize( as=Bridge_impl_ari_1_5_0.class ) - public void setBridge(Bridge val ) { - bridge = val; - } - - /** */ - private Bridge bridge_from; - public Bridge getBridge_from() { - return bridge_from; - } - - @JsonDeserialize( as=Bridge_impl_ari_1_5_0.class ) - public void setBridge_from(Bridge val ) { - bridge_from = val; - } - -/** No missing signatures from interface */ -} - diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_5_0/models/Bridge_impl_ari_1_5_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_5_0/models/Bridge_impl_ari_1_5_0.java deleted file mode 100644 index 3ad7f338..00000000 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_5_0/models/Bridge_impl_ari_1_5_0.java +++ /dev/null @@ -1,140 +0,0 @@ -package ch.loway.oss.ari4java.generated.ari_1_5_0.models; - -// ---------------------------------------------------- -// THIS CLASS WAS GENERATED AUTOMATICALLY -// PLEASE DO NOT EDIT -// Generated on: Tue Dec 19 09:55:49 CET 2017 -// ---------------------------------------------------- - -import ch.loway.oss.ari4java.generated.*; -import com.fasterxml.jackson.databind.annotation.JsonDeserialize; -import java.util.Date; -import java.util.List; -import java.util.Map; - -/********************************************************** - * The merging of media from one or more channels. - * - * Everyone on the bridge receives the same audio. - * - * Defined in file: bridges.json - * Generated by: Model - *********************************************************/ - -public class Bridge_impl_ari_1_5_0 implements Bridge, java.io.Serializable { -private static final long serialVersionUID = 1L; - /** Bridging class */ - private String bridge_class; - public String getBridge_class() { - return bridge_class; - } - - @JsonDeserialize( as=String.class ) - public void setBridge_class(String val ) { - bridge_class = val; - } - - /** Type of bridge technology */ - private String bridge_type; - public String getBridge_type() { - return bridge_type; - } - - @JsonDeserialize( as=String.class ) - public void setBridge_type(String val ) { - bridge_type = val; - } - - /** Ids of channels participating in this bridge */ - private List channels; - public List getChannels() { - return channels; - } - - @JsonDeserialize( contentAs=String.class ) - public void setChannels(List val ) { - channels = val; - } - - /** Entity that created the bridge */ - private String creator; - public String getCreator() { - return creator; - } - - @JsonDeserialize( as=String.class ) - public void setCreator(String val ) { - creator = val; - } - - /** Unique identifier for this bridge */ - private String id; - public String getId() { - return id; - } - - @JsonDeserialize( as=String.class ) - public void setId(String val ) { - id = val; - } - - /** Name the creator gave the bridge */ - private String name; - public String getName() { - return name; - } - - @JsonDeserialize( as=String.class ) - public void setName(String val ) { - name = val; - } - - /** Name of the current bridging technology */ - private String technology; - public String getTechnology() { - return technology; - } - - @JsonDeserialize( as=String.class ) - public void setTechnology(String val ) { - technology = val; - } - -/********************************************************** - * The video mode the bridge is using. One of 'none', 'talker', or 'single'. - * - * @since ari_2_0_0 - *********************************************************/ - public String getVideo_mode(){ - throw new UnsupportedOperationException("Method availble from ..."); -}; - -/********************************************************** - * The ID of the channel that is the source of video in this bridge, if one exists. - * - * @since ari_2_0_0 - *********************************************************/ - public String getVideo_source_id(){ - throw new UnsupportedOperationException("Method availble from ..."); -}; - -/********************************************************** - * The video mode the bridge is using. One of 'none', 'talker', or 'single'. - * - * @since ari_2_0_0 - *********************************************************/ - public void setVideo_mode(String val ){ - throw new UnsupportedOperationException("Method availble from ..."); -}; - -/********************************************************** - * The ID of the channel that is the source of video in this bridge, if one exists. - * - * @since ari_2_0_0 - *********************************************************/ - public void setVideo_source_id(String val ){ - throw new UnsupportedOperationException("Method availble from ..."); -}; - -} - diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_5_0/models/BuildInfo_impl_ari_1_5_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_5_0/models/BuildInfo_impl_ari_1_5_0.java deleted file mode 100644 index bab27213..00000000 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_5_0/models/BuildInfo_impl_ari_1_5_0.java +++ /dev/null @@ -1,92 +0,0 @@ -package ch.loway.oss.ari4java.generated.ari_1_5_0.models; - -// ---------------------------------------------------- -// THIS CLASS WAS GENERATED AUTOMATICALLY -// PLEASE DO NOT EDIT -// Generated on: Tue Dec 19 09:55:49 CET 2017 -// ---------------------------------------------------- - -import ch.loway.oss.ari4java.generated.*; -import com.fasterxml.jackson.databind.annotation.JsonDeserialize; -import java.util.Date; -import java.util.List; -import java.util.Map; - -/********************************************************** - * Info about how Asterisk was built - * - * Defined in file: asterisk.json - * Generated by: Model - *********************************************************/ - -public class BuildInfo_impl_ari_1_5_0 implements BuildInfo, java.io.Serializable { -private static final long serialVersionUID = 1L; - /** Date and time when Asterisk was built. */ - private String date; - public String getDate() { - return date; - } - - @JsonDeserialize( as=String.class ) - public void setDate(String val ) { - date = val; - } - - /** Kernel version Asterisk was built on. */ - private String kernel; - public String getKernel() { - return kernel; - } - - @JsonDeserialize( as=String.class ) - public void setKernel(String val ) { - kernel = val; - } - - /** Machine architecture (x86_64, i686, ppc, etc.) */ - private String machine; - public String getMachine() { - return machine; - } - - @JsonDeserialize( as=String.class ) - public void setMachine(String val ) { - machine = val; - } - - /** Compile time options, or empty string if default. */ - private String options; - public String getOptions() { - return options; - } - - @JsonDeserialize( as=String.class ) - public void setOptions(String val ) { - options = val; - } - - /** OS Asterisk was built on. */ - private String os; - public String getOs() { - return os; - } - - @JsonDeserialize( as=String.class ) - public void setOs(String val ) { - os = val; - } - - /** Username that build Asterisk */ - private String user; - public String getUser() { - return user; - } - - @JsonDeserialize( as=String.class ) - public void setUser(String val ) { - user = val; - } - -/** No missing signatures from interface */ -} - diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_5_0/models/CallerID_impl_ari_1_5_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_5_0/models/CallerID_impl_ari_1_5_0.java deleted file mode 100644 index 0230a442..00000000 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_5_0/models/CallerID_impl_ari_1_5_0.java +++ /dev/null @@ -1,48 +0,0 @@ -package ch.loway.oss.ari4java.generated.ari_1_5_0.models; - -// ---------------------------------------------------- -// THIS CLASS WAS GENERATED AUTOMATICALLY -// PLEASE DO NOT EDIT -// Generated on: Tue Dec 19 09:55:49 CET 2017 -// ---------------------------------------------------- - -import ch.loway.oss.ari4java.generated.*; -import com.fasterxml.jackson.databind.annotation.JsonDeserialize; -import java.util.Date; -import java.util.List; -import java.util.Map; - -/********************************************************** - * Caller identification - * - * Defined in file: channels.json - * Generated by: Model - *********************************************************/ - -public class CallerID_impl_ari_1_5_0 implements CallerID, java.io.Serializable { -private static final long serialVersionUID = 1L; - /** */ - private String name; - public String getName() { - return name; - } - - @JsonDeserialize( as=String.class ) - public void setName(String val ) { - name = val; - } - - /** */ - private String number; - public String getNumber() { - return number; - } - - @JsonDeserialize( as=String.class ) - public void setNumber(String val ) { - number = val; - } - -/** No missing signatures from interface */ -} - diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_5_0/models/ChannelCallerId_impl_ari_1_5_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_5_0/models/ChannelCallerId_impl_ari_1_5_0.java deleted file mode 100644 index 236bc5d1..00000000 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_5_0/models/ChannelCallerId_impl_ari_1_5_0.java +++ /dev/null @@ -1,59 +0,0 @@ -package ch.loway.oss.ari4java.generated.ari_1_5_0.models; - -// ---------------------------------------------------- -// THIS CLASS WAS GENERATED AUTOMATICALLY -// PLEASE DO NOT EDIT -// Generated on: Tue Dec 19 09:55:49 CET 2017 -// ---------------------------------------------------- - -import ch.loway.oss.ari4java.generated.*; -import com.fasterxml.jackson.databind.annotation.JsonDeserialize; -import java.util.Date; -import java.util.List; -import java.util.Map; - -/********************************************************** - * Channel changed Caller ID. - * - * Defined in file: events.json - * Generated by: Model - *********************************************************/ - -public class ChannelCallerId_impl_ari_1_5_0 extends Event_impl_ari_1_5_0 implements ChannelCallerId, java.io.Serializable { -private static final long serialVersionUID = 1L; - /** The integer representation of the Caller Presentation value. */ - private int caller_presentation; - public int getCaller_presentation() { - return caller_presentation; - } - - @JsonDeserialize( as=int.class ) - public void setCaller_presentation(int val ) { - caller_presentation = val; - } - - /** The text representation of the Caller Presentation value. */ - private String caller_presentation_txt; - public String getCaller_presentation_txt() { - return caller_presentation_txt; - } - - @JsonDeserialize( as=String.class ) - public void setCaller_presentation_txt(String val ) { - caller_presentation_txt = val; - } - - /** The channel that changed Caller ID. */ - private Channel channel; - public Channel getChannel() { - return channel; - } - - @JsonDeserialize( as=Channel_impl_ari_1_5_0.class ) - public void setChannel(Channel val ) { - channel = val; - } - -/** No missing signatures from interface */ -} - diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_5_0/models/ChannelCreated_impl_ari_1_5_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_5_0/models/ChannelCreated_impl_ari_1_5_0.java deleted file mode 100644 index e9c5564d..00000000 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_5_0/models/ChannelCreated_impl_ari_1_5_0.java +++ /dev/null @@ -1,37 +0,0 @@ -package ch.loway.oss.ari4java.generated.ari_1_5_0.models; - -// ---------------------------------------------------- -// THIS CLASS WAS GENERATED AUTOMATICALLY -// PLEASE DO NOT EDIT -// Generated on: Tue Dec 19 09:55:49 CET 2017 -// ---------------------------------------------------- - -import ch.loway.oss.ari4java.generated.*; -import com.fasterxml.jackson.databind.annotation.JsonDeserialize; -import java.util.Date; -import java.util.List; -import java.util.Map; - -/********************************************************** - * Notification that a channel has been created. - * - * Defined in file: events.json - * Generated by: Model - *********************************************************/ - -public class ChannelCreated_impl_ari_1_5_0 extends Event_impl_ari_1_5_0 implements ChannelCreated, java.io.Serializable { -private static final long serialVersionUID = 1L; - /** */ - private Channel channel; - public Channel getChannel() { - return channel; - } - - @JsonDeserialize( as=Channel_impl_ari_1_5_0.class ) - public void setChannel(Channel val ) { - channel = val; - } - -/** No missing signatures from interface */ -} - diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_5_0/models/ChannelDestroyed_impl_ari_1_5_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_5_0/models/ChannelDestroyed_impl_ari_1_5_0.java deleted file mode 100644 index 6bc8d511..00000000 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_5_0/models/ChannelDestroyed_impl_ari_1_5_0.java +++ /dev/null @@ -1,59 +0,0 @@ -package ch.loway.oss.ari4java.generated.ari_1_5_0.models; - -// ---------------------------------------------------- -// THIS CLASS WAS GENERATED AUTOMATICALLY -// PLEASE DO NOT EDIT -// Generated on: Tue Dec 19 09:55:49 CET 2017 -// ---------------------------------------------------- - -import ch.loway.oss.ari4java.generated.*; -import com.fasterxml.jackson.databind.annotation.JsonDeserialize; -import java.util.Date; -import java.util.List; -import java.util.Map; - -/********************************************************** - * Notification that a channel has been destroyed. - * - * Defined in file: events.json - * Generated by: Model - *********************************************************/ - -public class ChannelDestroyed_impl_ari_1_5_0 extends Event_impl_ari_1_5_0 implements ChannelDestroyed, java.io.Serializable { -private static final long serialVersionUID = 1L; - /** Integer representation of the cause of the hangup */ - private int cause; - public int getCause() { - return cause; - } - - @JsonDeserialize( as=int.class ) - public void setCause(int val ) { - cause = val; - } - - /** Text representation of the cause of the hangup */ - private String cause_txt; - public String getCause_txt() { - return cause_txt; - } - - @JsonDeserialize( as=String.class ) - public void setCause_txt(String val ) { - cause_txt = val; - } - - /** */ - private Channel channel; - public Channel getChannel() { - return channel; - } - - @JsonDeserialize( as=Channel_impl_ari_1_5_0.class ) - public void setChannel(Channel val ) { - channel = val; - } - -/** No missing signatures from interface */ -} - diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_5_0/models/ChannelDialplan_impl_ari_1_5_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_5_0/models/ChannelDialplan_impl_ari_1_5_0.java deleted file mode 100644 index 13909956..00000000 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_5_0/models/ChannelDialplan_impl_ari_1_5_0.java +++ /dev/null @@ -1,59 +0,0 @@ -package ch.loway.oss.ari4java.generated.ari_1_5_0.models; - -// ---------------------------------------------------- -// THIS CLASS WAS GENERATED AUTOMATICALLY -// PLEASE DO NOT EDIT -// Generated on: Tue Dec 19 09:55:49 CET 2017 -// ---------------------------------------------------- - -import ch.loway.oss.ari4java.generated.*; -import com.fasterxml.jackson.databind.annotation.JsonDeserialize; -import java.util.Date; -import java.util.List; -import java.util.Map; - -/********************************************************** - * Channel changed location in the dialplan. - * - * Defined in file: events.json - * Generated by: Model - *********************************************************/ - -public class ChannelDialplan_impl_ari_1_5_0 extends Event_impl_ari_1_5_0 implements ChannelDialplan, java.io.Serializable { -private static final long serialVersionUID = 1L; - /** The channel that changed dialplan location. */ - private Channel channel; - public Channel getChannel() { - return channel; - } - - @JsonDeserialize( as=Channel_impl_ari_1_5_0.class ) - public void setChannel(Channel val ) { - channel = val; - } - - /** The application about to be executed. */ - private String dialplan_app; - public String getDialplan_app() { - return dialplan_app; - } - - @JsonDeserialize( as=String.class ) - public void setDialplan_app(String val ) { - dialplan_app = val; - } - - /** The data to be passed to the application. */ - private String dialplan_app_data; - public String getDialplan_app_data() { - return dialplan_app_data; - } - - @JsonDeserialize( as=String.class ) - public void setDialplan_app_data(String val ) { - dialplan_app_data = val; - } - -/** No missing signatures from interface */ -} - diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_5_0/models/ChannelDtmfReceived_impl_ari_1_5_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_5_0/models/ChannelDtmfReceived_impl_ari_1_5_0.java deleted file mode 100644 index 529fb1a0..00000000 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_5_0/models/ChannelDtmfReceived_impl_ari_1_5_0.java +++ /dev/null @@ -1,61 +0,0 @@ -package ch.loway.oss.ari4java.generated.ari_1_5_0.models; - -// ---------------------------------------------------- -// THIS CLASS WAS GENERATED AUTOMATICALLY -// PLEASE DO NOT EDIT -// Generated on: Tue Dec 19 09:55:49 CET 2017 -// ---------------------------------------------------- - -import ch.loway.oss.ari4java.generated.*; -import com.fasterxml.jackson.databind.annotation.JsonDeserialize; -import java.util.Date; -import java.util.List; -import java.util.Map; - -/********************************************************** - * DTMF received on a channel. - * - * This event is sent when the DTMF ends. There is no notification about the start of DTMF - * - * Defined in file: events.json - * Generated by: Model - *********************************************************/ - -public class ChannelDtmfReceived_impl_ari_1_5_0 extends Event_impl_ari_1_5_0 implements ChannelDtmfReceived, java.io.Serializable { -private static final long serialVersionUID = 1L; - /** The channel on which DTMF was received */ - private Channel channel; - public Channel getChannel() { - return channel; - } - - @JsonDeserialize( as=Channel_impl_ari_1_5_0.class ) - public void setChannel(Channel val ) { - channel = val; - } - - /** DTMF digit received (0-9, A-E, # or *) */ - private String digit; - public String getDigit() { - return digit; - } - - @JsonDeserialize( as=String.class ) - public void setDigit(String val ) { - digit = val; - } - - /** Number of milliseconds DTMF was received */ - private int duration_ms; - public int getDuration_ms() { - return duration_ms; - } - - @JsonDeserialize( as=int.class ) - public void setDuration_ms(int val ) { - duration_ms = val; - } - -/** No missing signatures from interface */ -} - diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_5_0/models/ChannelEnteredBridge_impl_ari_1_5_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_5_0/models/ChannelEnteredBridge_impl_ari_1_5_0.java deleted file mode 100644 index bbb841ad..00000000 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_5_0/models/ChannelEnteredBridge_impl_ari_1_5_0.java +++ /dev/null @@ -1,48 +0,0 @@ -package ch.loway.oss.ari4java.generated.ari_1_5_0.models; - -// ---------------------------------------------------- -// THIS CLASS WAS GENERATED AUTOMATICALLY -// PLEASE DO NOT EDIT -// Generated on: Tue Dec 19 09:55:49 CET 2017 -// ---------------------------------------------------- - -import ch.loway.oss.ari4java.generated.*; -import com.fasterxml.jackson.databind.annotation.JsonDeserialize; -import java.util.Date; -import java.util.List; -import java.util.Map; - -/********************************************************** - * Notification that a channel has entered a bridge. - * - * Defined in file: events.json - * Generated by: Model - *********************************************************/ - -public class ChannelEnteredBridge_impl_ari_1_5_0 extends Event_impl_ari_1_5_0 implements ChannelEnteredBridge, java.io.Serializable { -private static final long serialVersionUID = 1L; - /** */ - private Bridge bridge; - public Bridge getBridge() { - return bridge; - } - - @JsonDeserialize( as=Bridge_impl_ari_1_5_0.class ) - public void setBridge(Bridge val ) { - bridge = val; - } - - /** */ - private Channel channel; - public Channel getChannel() { - return channel; - } - - @JsonDeserialize( as=Channel_impl_ari_1_5_0.class ) - public void setChannel(Channel val ) { - channel = val; - } - -/** No missing signatures from interface */ -} - diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_5_0/models/ChannelHangupRequest_impl_ari_1_5_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_5_0/models/ChannelHangupRequest_impl_ari_1_5_0.java deleted file mode 100644 index d8702666..00000000 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_5_0/models/ChannelHangupRequest_impl_ari_1_5_0.java +++ /dev/null @@ -1,59 +0,0 @@ -package ch.loway.oss.ari4java.generated.ari_1_5_0.models; - -// ---------------------------------------------------- -// THIS CLASS WAS GENERATED AUTOMATICALLY -// PLEASE DO NOT EDIT -// Generated on: Tue Dec 19 09:55:49 CET 2017 -// ---------------------------------------------------- - -import ch.loway.oss.ari4java.generated.*; -import com.fasterxml.jackson.databind.annotation.JsonDeserialize; -import java.util.Date; -import java.util.List; -import java.util.Map; - -/********************************************************** - * A hangup was requested on the channel. - * - * Defined in file: events.json - * Generated by: Model - *********************************************************/ - -public class ChannelHangupRequest_impl_ari_1_5_0 extends Event_impl_ari_1_5_0 implements ChannelHangupRequest, java.io.Serializable { -private static final long serialVersionUID = 1L; - /** Integer representation of the cause of the hangup. */ - private int cause; - public int getCause() { - return cause; - } - - @JsonDeserialize( as=int.class ) - public void setCause(int val ) { - cause = val; - } - - /** The channel on which the hangup was requested. */ - private Channel channel; - public Channel getChannel() { - return channel; - } - - @JsonDeserialize( as=Channel_impl_ari_1_5_0.class ) - public void setChannel(Channel val ) { - channel = val; - } - - /** Whether the hangup request was a soft hangup request. */ - private boolean soft; - public boolean getSoft() { - return soft; - } - - @JsonDeserialize( as=boolean.class ) - public void setSoft(boolean val ) { - soft = val; - } - -/** No missing signatures from interface */ -} - diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_5_0/models/ChannelLeftBridge_impl_ari_1_5_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_5_0/models/ChannelLeftBridge_impl_ari_1_5_0.java deleted file mode 100644 index e6e9a7be..00000000 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_5_0/models/ChannelLeftBridge_impl_ari_1_5_0.java +++ /dev/null @@ -1,48 +0,0 @@ -package ch.loway.oss.ari4java.generated.ari_1_5_0.models; - -// ---------------------------------------------------- -// THIS CLASS WAS GENERATED AUTOMATICALLY -// PLEASE DO NOT EDIT -// Generated on: Tue Dec 19 09:55:49 CET 2017 -// ---------------------------------------------------- - -import ch.loway.oss.ari4java.generated.*; -import com.fasterxml.jackson.databind.annotation.JsonDeserialize; -import java.util.Date; -import java.util.List; -import java.util.Map; - -/********************************************************** - * Notification that a channel has left a bridge. - * - * Defined in file: events.json - * Generated by: Model - *********************************************************/ - -public class ChannelLeftBridge_impl_ari_1_5_0 extends Event_impl_ari_1_5_0 implements ChannelLeftBridge, java.io.Serializable { -private static final long serialVersionUID = 1L; - /** */ - private Bridge bridge; - public Bridge getBridge() { - return bridge; - } - - @JsonDeserialize( as=Bridge_impl_ari_1_5_0.class ) - public void setBridge(Bridge val ) { - bridge = val; - } - - /** */ - private Channel channel; - public Channel getChannel() { - return channel; - } - - @JsonDeserialize( as=Channel_impl_ari_1_5_0.class ) - public void setChannel(Channel val ) { - channel = val; - } - -/** No missing signatures from interface */ -} - diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_5_0/models/ChannelStateChange_impl_ari_1_5_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_5_0/models/ChannelStateChange_impl_ari_1_5_0.java deleted file mode 100644 index 86bdf585..00000000 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_5_0/models/ChannelStateChange_impl_ari_1_5_0.java +++ /dev/null @@ -1,37 +0,0 @@ -package ch.loway.oss.ari4java.generated.ari_1_5_0.models; - -// ---------------------------------------------------- -// THIS CLASS WAS GENERATED AUTOMATICALLY -// PLEASE DO NOT EDIT -// Generated on: Tue Dec 19 09:55:49 CET 2017 -// ---------------------------------------------------- - -import ch.loway.oss.ari4java.generated.*; -import com.fasterxml.jackson.databind.annotation.JsonDeserialize; -import java.util.Date; -import java.util.List; -import java.util.Map; - -/********************************************************** - * Notification of a channel's state change. - * - * Defined in file: events.json - * Generated by: Model - *********************************************************/ - -public class ChannelStateChange_impl_ari_1_5_0 extends Event_impl_ari_1_5_0 implements ChannelStateChange, java.io.Serializable { -private static final long serialVersionUID = 1L; - /** */ - private Channel channel; - public Channel getChannel() { - return channel; - } - - @JsonDeserialize( as=Channel_impl_ari_1_5_0.class ) - public void setChannel(Channel val ) { - channel = val; - } - -/** No missing signatures from interface */ -} - diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_5_0/models/ChannelTalkingFinished_impl_ari_1_5_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_5_0/models/ChannelTalkingFinished_impl_ari_1_5_0.java deleted file mode 100644 index 63c9a3c9..00000000 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_5_0/models/ChannelTalkingFinished_impl_ari_1_5_0.java +++ /dev/null @@ -1,48 +0,0 @@ -package ch.loway.oss.ari4java.generated.ari_1_5_0.models; - -// ---------------------------------------------------- -// THIS CLASS WAS GENERATED AUTOMATICALLY -// PLEASE DO NOT EDIT -// Generated on: Tue Dec 19 09:55:49 CET 2017 -// ---------------------------------------------------- - -import ch.loway.oss.ari4java.generated.*; -import com.fasterxml.jackson.databind.annotation.JsonDeserialize; -import java.util.Date; -import java.util.List; -import java.util.Map; - -/********************************************************** - * Talking is no longer detected on the channel. - * - * Defined in file: events.json - * Generated by: Model - *********************************************************/ - -public class ChannelTalkingFinished_impl_ari_1_5_0 extends Event_impl_ari_1_5_0 implements ChannelTalkingFinished, java.io.Serializable { -private static final long serialVersionUID = 1L; - /** The channel on which talking completed. */ - private Channel channel; - public Channel getChannel() { - return channel; - } - - @JsonDeserialize( as=Channel_impl_ari_1_5_0.class ) - public void setChannel(Channel val ) { - channel = val; - } - - /** The length of time, in milliseconds, that talking was detected on the channel */ - private int duration; - public int getDuration() { - return duration; - } - - @JsonDeserialize( as=int.class ) - public void setDuration(int val ) { - duration = val; - } - -/** No missing signatures from interface */ -} - diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_5_0/models/ChannelTalkingStarted_impl_ari_1_5_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_5_0/models/ChannelTalkingStarted_impl_ari_1_5_0.java deleted file mode 100644 index 4cb62ea6..00000000 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_5_0/models/ChannelTalkingStarted_impl_ari_1_5_0.java +++ /dev/null @@ -1,37 +0,0 @@ -package ch.loway.oss.ari4java.generated.ari_1_5_0.models; - -// ---------------------------------------------------- -// THIS CLASS WAS GENERATED AUTOMATICALLY -// PLEASE DO NOT EDIT -// Generated on: Tue Dec 19 09:55:49 CET 2017 -// ---------------------------------------------------- - -import ch.loway.oss.ari4java.generated.*; -import com.fasterxml.jackson.databind.annotation.JsonDeserialize; -import java.util.Date; -import java.util.List; -import java.util.Map; - -/********************************************************** - * Talking was detected on the channel. - * - * Defined in file: events.json - * Generated by: Model - *********************************************************/ - -public class ChannelTalkingStarted_impl_ari_1_5_0 extends Event_impl_ari_1_5_0 implements ChannelTalkingStarted, java.io.Serializable { -private static final long serialVersionUID = 1L; - /** The channel on which talking started. */ - private Channel channel; - public Channel getChannel() { - return channel; - } - - @JsonDeserialize( as=Channel_impl_ari_1_5_0.class ) - public void setChannel(Channel val ) { - channel = val; - } - -/** No missing signatures from interface */ -} - diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_5_0/models/ChannelUserevent_impl_ari_1_5_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_5_0/models/ChannelUserevent_impl_ari_1_5_0.java deleted file mode 100644 index cc29692e..00000000 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_5_0/models/ChannelUserevent_impl_ari_1_5_0.java +++ /dev/null @@ -1,81 +0,0 @@ -package ch.loway.oss.ari4java.generated.ari_1_5_0.models; - -// ---------------------------------------------------- -// THIS CLASS WAS GENERATED AUTOMATICALLY -// PLEASE DO NOT EDIT -// Generated on: Tue Dec 19 09:55:49 CET 2017 -// ---------------------------------------------------- - -import ch.loway.oss.ari4java.generated.*; -import com.fasterxml.jackson.databind.annotation.JsonDeserialize; -import java.util.Date; -import java.util.List; -import java.util.Map; - -/********************************************************** - * User-generated event with additional user-defined fields in the object. - * - * Defined in file: events.json - * Generated by: Model - *********************************************************/ - -public class ChannelUserevent_impl_ari_1_5_0 extends Event_impl_ari_1_5_0 implements ChannelUserevent, java.io.Serializable { -private static final long serialVersionUID = 1L; - /** A bridge that is signaled with the user event. */ - private Bridge bridge; - public Bridge getBridge() { - return bridge; - } - - @JsonDeserialize( as=Bridge_impl_ari_1_5_0.class ) - public void setBridge(Bridge val ) { - bridge = val; - } - - /** A channel that is signaled with the user event. */ - private Channel channel; - public Channel getChannel() { - return channel; - } - - @JsonDeserialize( as=Channel_impl_ari_1_5_0.class ) - public void setChannel(Channel val ) { - channel = val; - } - - /** A endpoint that is signaled with the user event. */ - private Endpoint endpoint; - public Endpoint getEndpoint() { - return endpoint; - } - - @JsonDeserialize( as=Endpoint_impl_ari_1_5_0.class ) - public void setEndpoint(Endpoint val ) { - endpoint = val; - } - - /** The name of the user event. */ - private String eventname; - public String getEventname() { - return eventname; - } - - @JsonDeserialize( as=String.class ) - public void setEventname(String val ) { - eventname = val; - } - - /** Custom Userevent data */ - private String userevent; - public String getUserevent() { - return userevent; - } - - @JsonDeserialize( as=String.class ) - public void setUserevent(String val ) { - userevent = val; - } - -/** No missing signatures from interface */ -} - diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_5_0/models/ChannelVarset_impl_ari_1_5_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_5_0/models/ChannelVarset_impl_ari_1_5_0.java deleted file mode 100644 index c62789c5..00000000 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_5_0/models/ChannelVarset_impl_ari_1_5_0.java +++ /dev/null @@ -1,61 +0,0 @@ -package ch.loway.oss.ari4java.generated.ari_1_5_0.models; - -// ---------------------------------------------------- -// THIS CLASS WAS GENERATED AUTOMATICALLY -// PLEASE DO NOT EDIT -// Generated on: Tue Dec 19 09:55:49 CET 2017 -// ---------------------------------------------------- - -import ch.loway.oss.ari4java.generated.*; -import com.fasterxml.jackson.databind.annotation.JsonDeserialize; -import java.util.Date; -import java.util.List; -import java.util.Map; - -/********************************************************** - * Channel variable changed. - * - * Defined in file: events.json - * Generated by: Model - *********************************************************/ - -public class ChannelVarset_impl_ari_1_5_0 extends Event_impl_ari_1_5_0 implements ChannelVarset, java.io.Serializable { -private static final long serialVersionUID = 1L; - /** The channel on which the variable was set. - -If missing, the variable is a global variable. */ - private Channel channel; - public Channel getChannel() { - return channel; - } - - @JsonDeserialize( as=Channel_impl_ari_1_5_0.class ) - public void setChannel(Channel val ) { - channel = val; - } - - /** The new value of the variable. */ - private String value; - public String getValue() { - return value; - } - - @JsonDeserialize( as=String.class ) - public void setValue(String val ) { - value = val; - } - - /** The variable that changed. */ - private String variable; - public String getVariable() { - return variable; - } - - @JsonDeserialize( as=String.class ) - public void setVariable(String val ) { - variable = val; - } - -/** No missing signatures from interface */ -} - diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_5_0/models/Channel_impl_ari_1_5_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_5_0/models/Channel_impl_ari_1_5_0.java deleted file mode 100644 index 2dc83ce5..00000000 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_5_0/models/Channel_impl_ari_1_5_0.java +++ /dev/null @@ -1,151 +0,0 @@ -package ch.loway.oss.ari4java.generated.ari_1_5_0.models; - -// ---------------------------------------------------- -// THIS CLASS WAS GENERATED AUTOMATICALLY -// PLEASE DO NOT EDIT -// Generated on: Tue Dec 19 09:55:49 CET 2017 -// ---------------------------------------------------- - -import ch.loway.oss.ari4java.generated.*; -import com.fasterxml.jackson.databind.annotation.JsonDeserialize; -import java.util.Date; -import java.util.List; -import java.util.Map; - -/********************************************************** - * A specific communication connection between Asterisk and an Endpoint. - * - * Defined in file: channels.json - * Generated by: Model - *********************************************************/ - -public class Channel_impl_ari_1_5_0 implements Channel, java.io.Serializable { -private static final long serialVersionUID = 1L; - /** */ - private String accountcode; - public String getAccountcode() { - return accountcode; - } - - @JsonDeserialize( as=String.class ) - public void setAccountcode(String val ) { - accountcode = val; - } - - /** */ - private CallerID caller; - public CallerID getCaller() { - return caller; - } - - @JsonDeserialize( as=CallerID_impl_ari_1_5_0.class ) - public void setCaller(CallerID val ) { - caller = val; - } - - /** */ - private CallerID connected; - public CallerID getConnected() { - return connected; - } - - @JsonDeserialize( as=CallerID_impl_ari_1_5_0.class ) - public void setConnected(CallerID val ) { - connected = val; - } - - /** Timestamp when channel was created */ - private Date creationtime; - public Date getCreationtime() { - return creationtime; - } - - @JsonDeserialize( as=Date.class ) - public void setCreationtime(Date val ) { - creationtime = val; - } - - /** Current location in the dialplan */ - private DialplanCEP dialplan; - public DialplanCEP getDialplan() { - return dialplan; - } - - @JsonDeserialize( as=DialplanCEP_impl_ari_1_5_0.class ) - public void setDialplan(DialplanCEP val ) { - dialplan = val; - } - - /** Unique identifier of the channel. - -This is the same as the Uniqueid field in AMI. */ - private String id; - public String getId() { - return id; - } - - @JsonDeserialize( as=String.class ) - public void setId(String val ) { - id = val; - } - - /** Name of the channel (i.e. SIP/foo-0000a7e3) */ - private String name; - public String getName() { - return name; - } - - @JsonDeserialize( as=String.class ) - public void setName(String val ) { - name = val; - } - - /** */ - private String state; - public String getState() { - return state; - } - - @JsonDeserialize( as=String.class ) - public void setState(String val ) { - state = val; - } - -/********************************************************** - * The default spoken language - * - * @since ari_1_7_0 - *********************************************************/ - public String getLanguage(){ - throw new UnsupportedOperationException("Method availble from ..."); -}; - -/********************************************************** - * The default spoken language - * - * @since ari_1_7_0 - *********************************************************/ - public void setLanguage(String val ){ - throw new UnsupportedOperationException("Method availble from ..."); -}; - -/********************************************************** - * Channel variables - * - * @since ari_2_0_0 - *********************************************************/ - public String getChannelvars(){ - throw new UnsupportedOperationException("Method availble from ..."); -}; - -/********************************************************** - * Channel variables - * - * @since ari_2_0_0 - *********************************************************/ - public void setChannelvars(String val ){ - throw new UnsupportedOperationException("Method availble from ..."); -}; - -} - diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_5_0/models/ConfigInfo_impl_ari_1_5_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_5_0/models/ConfigInfo_impl_ari_1_5_0.java deleted file mode 100644 index 3025a30e..00000000 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_5_0/models/ConfigInfo_impl_ari_1_5_0.java +++ /dev/null @@ -1,92 +0,0 @@ -package ch.loway.oss.ari4java.generated.ari_1_5_0.models; - -// ---------------------------------------------------- -// THIS CLASS WAS GENERATED AUTOMATICALLY -// PLEASE DO NOT EDIT -// Generated on: Tue Dec 19 09:55:49 CET 2017 -// ---------------------------------------------------- - -import ch.loway.oss.ari4java.generated.*; -import com.fasterxml.jackson.databind.annotation.JsonDeserialize; -import java.util.Date; -import java.util.List; -import java.util.Map; - -/********************************************************** - * Info about Asterisk configuration - * - * Defined in file: asterisk.json - * Generated by: Model - *********************************************************/ - -public class ConfigInfo_impl_ari_1_5_0 implements ConfigInfo, java.io.Serializable { -private static final long serialVersionUID = 1L; - /** Default language for media playback. */ - private String default_language; - public String getDefault_language() { - return default_language; - } - - @JsonDeserialize( as=String.class ) - public void setDefault_language(String val ) { - default_language = val; - } - - /** Maximum number of simultaneous channels. */ - private int max_channels; - public int getMax_channels() { - return max_channels; - } - - @JsonDeserialize( as=int.class ) - public void setMax_channels(int val ) { - max_channels = val; - } - - /** Maximum load avg on system. */ - private double max_load; - public double getMax_load() { - return max_load; - } - - @JsonDeserialize( as=double.class ) - public void setMax_load(double val ) { - max_load = val; - } - - /** Maximum number of open file handles (files, sockets). */ - private int max_open_files; - public int getMax_open_files() { - return max_open_files; - } - - @JsonDeserialize( as=int.class ) - public void setMax_open_files(int val ) { - max_open_files = val; - } - - /** Asterisk system name. */ - private String name; - public String getName() { - return name; - } - - @JsonDeserialize( as=String.class ) - public void setName(String val ) { - name = val; - } - - /** Effective user/group id for running Asterisk. */ - private SetId setid; - public SetId getSetid() { - return setid; - } - - @JsonDeserialize( as=SetId_impl_ari_1_5_0.class ) - public void setSetid(SetId val ) { - setid = val; - } - -/** No missing signatures from interface */ -} - diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_5_0/models/DeviceStateChanged_impl_ari_1_5_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_5_0/models/DeviceStateChanged_impl_ari_1_5_0.java deleted file mode 100644 index e44b7b35..00000000 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_5_0/models/DeviceStateChanged_impl_ari_1_5_0.java +++ /dev/null @@ -1,37 +0,0 @@ -package ch.loway.oss.ari4java.generated.ari_1_5_0.models; - -// ---------------------------------------------------- -// THIS CLASS WAS GENERATED AUTOMATICALLY -// PLEASE DO NOT EDIT -// Generated on: Tue Dec 19 09:55:49 CET 2017 -// ---------------------------------------------------- - -import ch.loway.oss.ari4java.generated.*; -import com.fasterxml.jackson.databind.annotation.JsonDeserialize; -import java.util.Date; -import java.util.List; -import java.util.Map; - -/********************************************************** - * Notification that a device state has changed. - * - * Defined in file: events.json - * Generated by: Model - *********************************************************/ - -public class DeviceStateChanged_impl_ari_1_5_0 extends Event_impl_ari_1_5_0 implements DeviceStateChanged, java.io.Serializable { -private static final long serialVersionUID = 1L; - /** Device state object */ - private DeviceState device_state; - public DeviceState getDevice_state() { - return device_state; - } - - @JsonDeserialize( as=DeviceState_impl_ari_1_5_0.class ) - public void setDevice_state(DeviceState val ) { - device_state = val; - } - -/** No missing signatures from interface */ -} - diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_5_0/models/DeviceState_impl_ari_1_5_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_5_0/models/DeviceState_impl_ari_1_5_0.java deleted file mode 100644 index c7326c90..00000000 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_5_0/models/DeviceState_impl_ari_1_5_0.java +++ /dev/null @@ -1,48 +0,0 @@ -package ch.loway.oss.ari4java.generated.ari_1_5_0.models; - -// ---------------------------------------------------- -// THIS CLASS WAS GENERATED AUTOMATICALLY -// PLEASE DO NOT EDIT -// Generated on: Tue Dec 19 09:55:49 CET 2017 -// ---------------------------------------------------- - -import ch.loway.oss.ari4java.generated.*; -import com.fasterxml.jackson.databind.annotation.JsonDeserialize; -import java.util.Date; -import java.util.List; -import java.util.Map; - -/********************************************************** - * Represents the state of a device. - * - * Defined in file: deviceStates.json - * Generated by: Model - *********************************************************/ - -public class DeviceState_impl_ari_1_5_0 implements DeviceState, java.io.Serializable { -private static final long serialVersionUID = 1L; - /** Name of the device. */ - private String name; - public String getName() { - return name; - } - - @JsonDeserialize( as=String.class ) - public void setName(String val ) { - name = val; - } - - /** Device's state */ - private String state; - public String getState() { - return state; - } - - @JsonDeserialize( as=String.class ) - public void setState(String val ) { - state = val; - } - -/** No missing signatures from interface */ -} - diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_5_0/models/Dial_impl_ari_1_5_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_5_0/models/Dial_impl_ari_1_5_0.java deleted file mode 100644 index 189a326c..00000000 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_5_0/models/Dial_impl_ari_1_5_0.java +++ /dev/null @@ -1,92 +0,0 @@ -package ch.loway.oss.ari4java.generated.ari_1_5_0.models; - -// ---------------------------------------------------- -// THIS CLASS WAS GENERATED AUTOMATICALLY -// PLEASE DO NOT EDIT -// Generated on: Tue Dec 19 09:55:49 CET 2017 -// ---------------------------------------------------- - -import ch.loway.oss.ari4java.generated.*; -import com.fasterxml.jackson.databind.annotation.JsonDeserialize; -import java.util.Date; -import java.util.List; -import java.util.Map; - -/********************************************************** - * Dialing state has changed. - * - * Defined in file: events.json - * Generated by: Model - *********************************************************/ - -public class Dial_impl_ari_1_5_0 extends Event_impl_ari_1_5_0 implements Dial, java.io.Serializable { -private static final long serialVersionUID = 1L; - /** The calling channel. */ - private Channel caller; - public Channel getCaller() { - return caller; - } - - @JsonDeserialize( as=Channel_impl_ari_1_5_0.class ) - public void setCaller(Channel val ) { - caller = val; - } - - /** Current status of the dialing attempt to the peer. */ - private String dialstatus; - public String getDialstatus() { - return dialstatus; - } - - @JsonDeserialize( as=String.class ) - public void setDialstatus(String val ) { - dialstatus = val; - } - - /** The dial string for calling the peer channel. */ - private String dialstring; - public String getDialstring() { - return dialstring; - } - - @JsonDeserialize( as=String.class ) - public void setDialstring(String val ) { - dialstring = val; - } - - /** Forwarding target requested by the original dialed channel. */ - private String forward; - public String getForward() { - return forward; - } - - @JsonDeserialize( as=String.class ) - public void setForward(String val ) { - forward = val; - } - - /** Channel that the caller has been forwarded to. */ - private Channel forwarded; - public Channel getForwarded() { - return forwarded; - } - - @JsonDeserialize( as=Channel_impl_ari_1_5_0.class ) - public void setForwarded(Channel val ) { - forwarded = val; - } - - /** The dialed channel. */ - private Channel peer; - public Channel getPeer() { - return peer; - } - - @JsonDeserialize( as=Channel_impl_ari_1_5_0.class ) - public void setPeer(Channel val ) { - peer = val; - } - -/** No missing signatures from interface */ -} - diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_5_0/models/Dialed_impl_ari_1_5_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_5_0/models/Dialed_impl_ari_1_5_0.java deleted file mode 100644 index 2394405c..00000000 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_5_0/models/Dialed_impl_ari_1_5_0.java +++ /dev/null @@ -1,26 +0,0 @@ -package ch.loway.oss.ari4java.generated.ari_1_5_0.models; - -// ---------------------------------------------------- -// THIS CLASS WAS GENERATED AUTOMATICALLY -// PLEASE DO NOT EDIT -// Generated on: Tue Dec 19 09:55:49 CET 2017 -// ---------------------------------------------------- - -import ch.loway.oss.ari4java.generated.*; -import com.fasterxml.jackson.databind.annotation.JsonDeserialize; -import java.util.Date; -import java.util.List; -import java.util.Map; - -/********************************************************** - * Dialed channel information. - * - * Defined in file: channels.json - * Generated by: Model - *********************************************************/ - -public class Dialed_impl_ari_1_5_0 implements Dialed, java.io.Serializable { -private static final long serialVersionUID = 1L; -/** No missing signatures from interface */ -} - diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_5_0/models/DialplanCEP_impl_ari_1_5_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_5_0/models/DialplanCEP_impl_ari_1_5_0.java deleted file mode 100644 index f1e53c7f..00000000 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_5_0/models/DialplanCEP_impl_ari_1_5_0.java +++ /dev/null @@ -1,59 +0,0 @@ -package ch.loway.oss.ari4java.generated.ari_1_5_0.models; - -// ---------------------------------------------------- -// THIS CLASS WAS GENERATED AUTOMATICALLY -// PLEASE DO NOT EDIT -// Generated on: Tue Dec 19 09:55:49 CET 2017 -// ---------------------------------------------------- - -import ch.loway.oss.ari4java.generated.*; -import com.fasterxml.jackson.databind.annotation.JsonDeserialize; -import java.util.Date; -import java.util.List; -import java.util.Map; - -/********************************************************** - * Dialplan location (context/extension/priority) - * - * Defined in file: channels.json - * Generated by: Model - *********************************************************/ - -public class DialplanCEP_impl_ari_1_5_0 implements DialplanCEP, java.io.Serializable { -private static final long serialVersionUID = 1L; - /** Context in the dialplan */ - private String context; - public String getContext() { - return context; - } - - @JsonDeserialize( as=String.class ) - public void setContext(String val ) { - context = val; - } - - /** Extension in the dialplan */ - private String exten; - public String getExten() { - return exten; - } - - @JsonDeserialize( as=String.class ) - public void setExten(String val ) { - exten = val; - } - - /** Priority in the dialplan */ - private long priority; - public long getPriority() { - return priority; - } - - @JsonDeserialize( as=long.class ) - public void setPriority(long val ) { - priority = val; - } - -/** No missing signatures from interface */ -} - diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_5_0/models/EndpointStateChange_impl_ari_1_5_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_5_0/models/EndpointStateChange_impl_ari_1_5_0.java deleted file mode 100644 index 8ba897c1..00000000 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_5_0/models/EndpointStateChange_impl_ari_1_5_0.java +++ /dev/null @@ -1,37 +0,0 @@ -package ch.loway.oss.ari4java.generated.ari_1_5_0.models; - -// ---------------------------------------------------- -// THIS CLASS WAS GENERATED AUTOMATICALLY -// PLEASE DO NOT EDIT -// Generated on: Tue Dec 19 09:55:49 CET 2017 -// ---------------------------------------------------- - -import ch.loway.oss.ari4java.generated.*; -import com.fasterxml.jackson.databind.annotation.JsonDeserialize; -import java.util.Date; -import java.util.List; -import java.util.Map; - -/********************************************************** - * Endpoint state changed. - * - * Defined in file: events.json - * Generated by: Model - *********************************************************/ - -public class EndpointStateChange_impl_ari_1_5_0 extends Event_impl_ari_1_5_0 implements EndpointStateChange, java.io.Serializable { -private static final long serialVersionUID = 1L; - /** */ - private Endpoint endpoint; - public Endpoint getEndpoint() { - return endpoint; - } - - @JsonDeserialize( as=Endpoint_impl_ari_1_5_0.class ) - public void setEndpoint(Endpoint val ) { - endpoint = val; - } - -/** No missing signatures from interface */ -} - diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_5_0/models/Endpoint_impl_ari_1_5_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_5_0/models/Endpoint_impl_ari_1_5_0.java deleted file mode 100644 index 670188e0..00000000 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_5_0/models/Endpoint_impl_ari_1_5_0.java +++ /dev/null @@ -1,72 +0,0 @@ -package ch.loway.oss.ari4java.generated.ari_1_5_0.models; - -// ---------------------------------------------------- -// THIS CLASS WAS GENERATED AUTOMATICALLY -// PLEASE DO NOT EDIT -// Generated on: Tue Dec 19 09:55:49 CET 2017 -// ---------------------------------------------------- - -import ch.loway.oss.ari4java.generated.*; -import com.fasterxml.jackson.databind.annotation.JsonDeserialize; -import java.util.Date; -import java.util.List; -import java.util.Map; - -/********************************************************** - * An external device that may offer/accept calls to/from Asterisk. - * - * Unlike most resources, which have a single unique identifier, an endpoint is uniquely identified by the technology/resource pair. - * - * Defined in file: endpoints.json - * Generated by: Model - *********************************************************/ - -public class Endpoint_impl_ari_1_5_0 implements Endpoint, java.io.Serializable { -private static final long serialVersionUID = 1L; - /** Id's of channels associated with this endpoint */ - private List channel_ids; - public List getChannel_ids() { - return channel_ids; - } - - @JsonDeserialize( contentAs=String.class ) - public void setChannel_ids(List val ) { - channel_ids = val; - } - - /** Identifier of the endpoint, specific to the given technology. */ - private String resource; - public String getResource() { - return resource; - } - - @JsonDeserialize( as=String.class ) - public void setResource(String val ) { - resource = val; - } - - /** Endpoint's state */ - private String state; - public String getState() { - return state; - } - - @JsonDeserialize( as=String.class ) - public void setState(String val ) { - state = val; - } - - /** Technology of the endpoint */ - private String technology; - public String getTechnology() { - return technology; - } - - @JsonDeserialize( as=String.class ) - public void setTechnology(String val ) { - technology = val; - } - -/** No missing signatures from interface */ -} - diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_5_0/models/Event_impl_ari_1_5_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_5_0/models/Event_impl_ari_1_5_0.java deleted file mode 100644 index e94f6cbd..00000000 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_5_0/models/Event_impl_ari_1_5_0.java +++ /dev/null @@ -1,48 +0,0 @@ -package ch.loway.oss.ari4java.generated.ari_1_5_0.models; - -// ---------------------------------------------------- -// THIS CLASS WAS GENERATED AUTOMATICALLY -// PLEASE DO NOT EDIT -// Generated on: Tue Dec 19 09:55:49 CET 2017 -// ---------------------------------------------------- - -import ch.loway.oss.ari4java.generated.*; -import com.fasterxml.jackson.databind.annotation.JsonDeserialize; -import java.util.Date; -import java.util.List; -import java.util.Map; - -/********************************************************** - * Base type for asynchronous events from Asterisk. - * - * Defined in file: events.json - * Generated by: Model - *********************************************************/ - -public class Event_impl_ari_1_5_0 extends Message_impl_ari_1_5_0 implements Event, java.io.Serializable { -private static final long serialVersionUID = 1L; - /** Name of the application receiving the event. */ - private String application; - public String getApplication() { - return application; - } - - @JsonDeserialize( as=String.class ) - public void setApplication(String val ) { - application = val; - } - - /** Time at which this event was created. */ - private Date timestamp; - public Date getTimestamp() { - return timestamp; - } - - @JsonDeserialize( as=Date.class ) - public void setTimestamp(Date val ) { - timestamp = val; - } - -/** No missing signatures from interface */ -} - diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_5_0/models/FormatLangPair_impl_ari_1_5_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_5_0/models/FormatLangPair_impl_ari_1_5_0.java deleted file mode 100644 index 780fe66d..00000000 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_5_0/models/FormatLangPair_impl_ari_1_5_0.java +++ /dev/null @@ -1,48 +0,0 @@ -package ch.loway.oss.ari4java.generated.ari_1_5_0.models; - -// ---------------------------------------------------- -// THIS CLASS WAS GENERATED AUTOMATICALLY -// PLEASE DO NOT EDIT -// Generated on: Tue Dec 19 09:55:49 CET 2017 -// ---------------------------------------------------- - -import ch.loway.oss.ari4java.generated.*; -import com.fasterxml.jackson.databind.annotation.JsonDeserialize; -import java.util.Date; -import java.util.List; -import java.util.Map; - -/********************************************************** - * Identifies the format and language of a sound file - * - * Defined in file: sounds.json - * Generated by: Model - *********************************************************/ - -public class FormatLangPair_impl_ari_1_5_0 implements FormatLangPair, java.io.Serializable { -private static final long serialVersionUID = 1L; - /** */ - private String format; - public String getFormat() { - return format; - } - - @JsonDeserialize( as=String.class ) - public void setFormat(String val ) { - format = val; - } - - /** */ - private String language; - public String getLanguage() { - return language; - } - - @JsonDeserialize( as=String.class ) - public void setLanguage(String val ) { - language = val; - } - -/** No missing signatures from interface */ -} - diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_5_0/models/LiveRecording_impl_ari_1_5_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_5_0/models/LiveRecording_impl_ari_1_5_0.java deleted file mode 100644 index a0969e05..00000000 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_5_0/models/LiveRecording_impl_ari_1_5_0.java +++ /dev/null @@ -1,114 +0,0 @@ -package ch.loway.oss.ari4java.generated.ari_1_5_0.models; - -// ---------------------------------------------------- -// THIS CLASS WAS GENERATED AUTOMATICALLY -// PLEASE DO NOT EDIT -// Generated on: Tue Dec 19 09:55:49 CET 2017 -// ---------------------------------------------------- - -import ch.loway.oss.ari4java.generated.*; -import com.fasterxml.jackson.databind.annotation.JsonDeserialize; -import java.util.Date; -import java.util.List; -import java.util.Map; - -/********************************************************** - * A recording that is in progress - * - * Defined in file: recordings.json - * Generated by: Model - *********************************************************/ - -public class LiveRecording_impl_ari_1_5_0 implements LiveRecording, java.io.Serializable { -private static final long serialVersionUID = 1L; - /** Cause for recording failure if failed */ - private String cause; - public String getCause() { - return cause; - } - - @JsonDeserialize( as=String.class ) - public void setCause(String val ) { - cause = val; - } - - /** Duration in seconds of the recording */ - private int duration; - public int getDuration() { - return duration; - } - - @JsonDeserialize( as=int.class ) - public void setDuration(int val ) { - duration = val; - } - - /** Recording format (wav, gsm, etc.) */ - private String format; - public String getFormat() { - return format; - } - - @JsonDeserialize( as=String.class ) - public void setFormat(String val ) { - format = val; - } - - /** Base name for the recording */ - private String name; - public String getName() { - return name; - } - - @JsonDeserialize( as=String.class ) - public void setName(String val ) { - name = val; - } - - /** Duration of silence, in seconds, detected in the recording. This is only available if the recording was initiated with a non-zero maxSilenceSeconds. */ - private int silence_duration; - public int getSilence_duration() { - return silence_duration; - } - - @JsonDeserialize( as=int.class ) - public void setSilence_duration(int val ) { - silence_duration = val; - } - - /** */ - private String state; - public String getState() { - return state; - } - - @JsonDeserialize( as=String.class ) - public void setState(String val ) { - state = val; - } - - /** Duration of talking, in seconds, detected in the recording. This is only available if the recording was initiated with a non-zero maxSilenceSeconds. */ - private int talking_duration; - public int getTalking_duration() { - return talking_duration; - } - - @JsonDeserialize( as=int.class ) - public void setTalking_duration(int val ) { - talking_duration = val; - } - - /** URI for the channel or bridge being recorded */ - private String target_uri; - public String getTarget_uri() { - return target_uri; - } - - @JsonDeserialize( as=String.class ) - public void setTarget_uri(String val ) { - target_uri = val; - } - -/** No missing signatures from interface */ -} - diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_5_0/models/Message_impl_ari_1_5_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_5_0/models/Message_impl_ari_1_5_0.java deleted file mode 100644 index dc29c8cd..00000000 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_5_0/models/Message_impl_ari_1_5_0.java +++ /dev/null @@ -1,92 +0,0 @@ -package ch.loway.oss.ari4java.generated.ari_1_5_0.models; - -// ---------------------------------------------------- -// THIS CLASS WAS GENERATED AUTOMATICALLY -// PLEASE DO NOT EDIT -// Generated on: Tue Dec 19 09:55:49 CET 2017 -// ---------------------------------------------------- - -import ch.loway.oss.ari4java.generated.*; -import com.fasterxml.jackson.annotation.JsonSubTypes; -import com.fasterxml.jackson.annotation.JsonSubTypes.Type; -import com.fasterxml.jackson.annotation.JsonTypeInfo; -import com.fasterxml.jackson.databind.annotation.JsonDeserialize; -import java.util.Date; -import java.util.List; -import java.util.Map; - -/********************************************************** - * Base type for errors and events - * - * Defined in file: events.json - * Generated by: Model - *********************************************************/ - @JsonTypeInfo( use = JsonTypeInfo.Id.NAME, include = JsonTypeInfo.As.PROPERTY, property = "type") - @JsonSubTypes({ @Type(value = MissingParams_impl_ari_1_5_0.class, name = "MissingParams") -, @Type(value = Event_impl_ari_1_5_0.class, name = "Event") -, @Type(value = DeviceStateChanged_impl_ari_1_5_0.class, name = "DeviceStateChanged") -, @Type(value = PlaybackStarted_impl_ari_1_5_0.class, name = "PlaybackStarted") -, @Type(value = PlaybackFinished_impl_ari_1_5_0.class, name = "PlaybackFinished") -, @Type(value = RecordingStarted_impl_ari_1_5_0.class, name = "RecordingStarted") -, @Type(value = RecordingFinished_impl_ari_1_5_0.class, name = "RecordingFinished") -, @Type(value = RecordingFailed_impl_ari_1_5_0.class, name = "RecordingFailed") -, @Type(value = ApplicationReplaced_impl_ari_1_5_0.class, name = "ApplicationReplaced") -, @Type(value = BridgeCreated_impl_ari_1_5_0.class, name = "BridgeCreated") -, @Type(value = BridgeDestroyed_impl_ari_1_5_0.class, name = "BridgeDestroyed") -, @Type(value = BridgeMerged_impl_ari_1_5_0.class, name = "BridgeMerged") -, @Type(value = BridgeBlindTransfer_impl_ari_1_5_0.class, name = "BridgeBlindTransfer") -, @Type(value = BridgeAttendedTransfer_impl_ari_1_5_0.class, name = "BridgeAttendedTransfer") -, @Type(value = ChannelCreated_impl_ari_1_5_0.class, name = "ChannelCreated") -, @Type(value = ChannelDestroyed_impl_ari_1_5_0.class, name = "ChannelDestroyed") -, @Type(value = ChannelEnteredBridge_impl_ari_1_5_0.class, name = "ChannelEnteredBridge") -, @Type(value = ChannelLeftBridge_impl_ari_1_5_0.class, name = "ChannelLeftBridge") -, @Type(value = ChannelStateChange_impl_ari_1_5_0.class, name = "ChannelStateChange") -, @Type(value = ChannelDtmfReceived_impl_ari_1_5_0.class, name = "ChannelDtmfReceived") -, @Type(value = ChannelDialplan_impl_ari_1_5_0.class, name = "ChannelDialplan") -, @Type(value = ChannelCallerId_impl_ari_1_5_0.class, name = "ChannelCallerId") -, @Type(value = ChannelUserevent_impl_ari_1_5_0.class, name = "ChannelUserevent") -, @Type(value = ChannelHangupRequest_impl_ari_1_5_0.class, name = "ChannelHangupRequest") -, @Type(value = ChannelVarset_impl_ari_1_5_0.class, name = "ChannelVarset") -, @Type(value = ChannelTalkingStarted_impl_ari_1_5_0.class, name = "ChannelTalkingStarted") -, @Type(value = ChannelTalkingFinished_impl_ari_1_5_0.class, name = "ChannelTalkingFinished") -, @Type(value = EndpointStateChange_impl_ari_1_5_0.class, name = "EndpointStateChange") -, @Type(value = Dial_impl_ari_1_5_0.class, name = "Dial") -, @Type(value = StasisEnd_impl_ari_1_5_0.class, name = "StasisEnd") -, @Type(value = StasisStart_impl_ari_1_5_0.class, name = "StasisStart") -, @Type(value = TextMessageReceived_impl_ari_1_5_0.class, name = "TextMessageReceived") - }) - - -public class Message_impl_ari_1_5_0 implements Message, java.io.Serializable { -private static final long serialVersionUID = 1L; - /** Indicates the type of this message. */ - private String type; - public String getType() { - return type; - } - - @JsonDeserialize( as=String.class ) - public void setType(String val ) { - type = val; - } - -/********************************************************** - * The unique ID for the Asterisk instance that raised this event. - * - * @since ari_2_0_0 - *********************************************************/ - public void setAsterisk_id(String val ){ - throw new UnsupportedOperationException("Method availble from ..."); -}; - -/********************************************************** - * The unique ID for the Asterisk instance that raised this event. - * - * @since ari_2_0_0 - *********************************************************/ - public String getAsterisk_id(){ - throw new UnsupportedOperationException("Method availble from ..."); -}; - -} - diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_5_0/models/MissingParams_impl_ari_1_5_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_5_0/models/MissingParams_impl_ari_1_5_0.java deleted file mode 100644 index 09cb30d8..00000000 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_5_0/models/MissingParams_impl_ari_1_5_0.java +++ /dev/null @@ -1,37 +0,0 @@ -package ch.loway.oss.ari4java.generated.ari_1_5_0.models; - -// ---------------------------------------------------- -// THIS CLASS WAS GENERATED AUTOMATICALLY -// PLEASE DO NOT EDIT -// Generated on: Tue Dec 19 09:55:49 CET 2017 -// ---------------------------------------------------- - -import ch.loway.oss.ari4java.generated.*; -import com.fasterxml.jackson.databind.annotation.JsonDeserialize; -import java.util.Date; -import java.util.List; -import java.util.Map; - -/********************************************************** - * Error event sent when required params are missing. - * - * Defined in file: events.json - * Generated by: Model - *********************************************************/ - -public class MissingParams_impl_ari_1_5_0 extends Message_impl_ari_1_5_0 implements MissingParams, java.io.Serializable { -private static final long serialVersionUID = 1L; - /** A list of the missing parameters */ - private List params; - public List getParams() { - return params; - } - - @JsonDeserialize( contentAs=String.class ) - public void setParams(List val ) { - params = val; - } - -/** No missing signatures from interface */ -} - diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_5_0/models/PlaybackFinished_impl_ari_1_5_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_5_0/models/PlaybackFinished_impl_ari_1_5_0.java deleted file mode 100644 index 23972709..00000000 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_5_0/models/PlaybackFinished_impl_ari_1_5_0.java +++ /dev/null @@ -1,37 +0,0 @@ -package ch.loway.oss.ari4java.generated.ari_1_5_0.models; - -// ---------------------------------------------------- -// THIS CLASS WAS GENERATED AUTOMATICALLY -// PLEASE DO NOT EDIT -// Generated on: Tue Dec 19 09:55:49 CET 2017 -// ---------------------------------------------------- - -import ch.loway.oss.ari4java.generated.*; -import com.fasterxml.jackson.databind.annotation.JsonDeserialize; -import java.util.Date; -import java.util.List; -import java.util.Map; - -/********************************************************** - * Event showing the completion of a media playback operation. - * - * Defined in file: events.json - * Generated by: Model - *********************************************************/ - -public class PlaybackFinished_impl_ari_1_5_0 extends Event_impl_ari_1_5_0 implements PlaybackFinished, java.io.Serializable { -private static final long serialVersionUID = 1L; - /** Playback control object */ - private Playback playback; - public Playback getPlayback() { - return playback; - } - - @JsonDeserialize( as=Playback_impl_ari_1_5_0.class ) - public void setPlayback(Playback val ) { - playback = val; - } - -/** No missing signatures from interface */ -} - diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_5_0/models/PlaybackStarted_impl_ari_1_5_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_5_0/models/PlaybackStarted_impl_ari_1_5_0.java deleted file mode 100644 index 73aa0351..00000000 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_5_0/models/PlaybackStarted_impl_ari_1_5_0.java +++ /dev/null @@ -1,37 +0,0 @@ -package ch.loway.oss.ari4java.generated.ari_1_5_0.models; - -// ---------------------------------------------------- -// THIS CLASS WAS GENERATED AUTOMATICALLY -// PLEASE DO NOT EDIT -// Generated on: Tue Dec 19 09:55:49 CET 2017 -// ---------------------------------------------------- - -import ch.loway.oss.ari4java.generated.*; -import com.fasterxml.jackson.databind.annotation.JsonDeserialize; -import java.util.Date; -import java.util.List; -import java.util.Map; - -/********************************************************** - * Event showing the start of a media playback operation. - * - * Defined in file: events.json - * Generated by: Model - *********************************************************/ - -public class PlaybackStarted_impl_ari_1_5_0 extends Event_impl_ari_1_5_0 implements PlaybackStarted, java.io.Serializable { -private static final long serialVersionUID = 1L; - /** Playback control object */ - private Playback playback; - public Playback getPlayback() { - return playback; - } - - @JsonDeserialize( as=Playback_impl_ari_1_5_0.class ) - public void setPlayback(Playback val ) { - playback = val; - } - -/** No missing signatures from interface */ -} - diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_5_0/models/Playback_impl_ari_1_5_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_5_0/models/Playback_impl_ari_1_5_0.java deleted file mode 100644 index ec71a25c..00000000 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_5_0/models/Playback_impl_ari_1_5_0.java +++ /dev/null @@ -1,98 +0,0 @@ -package ch.loway.oss.ari4java.generated.ari_1_5_0.models; - -// ---------------------------------------------------- -// THIS CLASS WAS GENERATED AUTOMATICALLY -// PLEASE DO NOT EDIT -// Generated on: Tue Dec 19 09:55:49 CET 2017 -// ---------------------------------------------------- - -import ch.loway.oss.ari4java.generated.*; -import com.fasterxml.jackson.databind.annotation.JsonDeserialize; -import java.util.Date; -import java.util.List; -import java.util.Map; - -/********************************************************** - * Object representing the playback of media to a channel - * - * Defined in file: playbacks.json - * Generated by: Model - *********************************************************/ - -public class Playback_impl_ari_1_5_0 implements Playback, java.io.Serializable { -private static final long serialVersionUID = 1L; - /** ID for this playback operation */ - private String id; - public String getId() { - return id; - } - - @JsonDeserialize( as=String.class ) - public void setId(String val ) { - id = val; - } - - /** For media types that support multiple languages, the language requested for playback. */ - private String language; - public String getLanguage() { - return language; - } - - @JsonDeserialize( as=String.class ) - public void setLanguage(String val ) { - language = val; - } - - /** URI for the media to play back. */ - private String media_uri; - public String getMedia_uri() { - return media_uri; - } - - @JsonDeserialize( as=String.class ) - public void setMedia_uri(String val ) { - media_uri = val; - } - - /** Current state of the playback operation. */ - private String state; - public String getState() { - return state; - } - - @JsonDeserialize( as=String.class ) - public void setState(String val ) { - state = val; - } - - /** URI for the channel or bridge to play the media on */ - private String target_uri; - public String getTarget_uri() { - return target_uri; - } - - @JsonDeserialize( as=String.class ) - public void setTarget_uri(String val ) { - target_uri = val; - } - -/********************************************************** - * If a list of URIs is being played, the next media URI to be played back. - * - * @since ari_1_10_0 - *********************************************************/ - public String getNext_media_uri(){ - throw new UnsupportedOperationException("Method availble from ..."); -}; - -/********************************************************** - * If a list of URIs is being played, the next media URI to be played back. - * - * @since ari_1_10_0 - *********************************************************/ - public void setNext_media_uri(String val ){ - throw new UnsupportedOperationException("Method availble from ..."); -}; - -} - diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_5_0/models/RecordingFailed_impl_ari_1_5_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_5_0/models/RecordingFailed_impl_ari_1_5_0.java deleted file mode 100644 index d7fab916..00000000 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_5_0/models/RecordingFailed_impl_ari_1_5_0.java +++ /dev/null @@ -1,37 +0,0 @@ -package ch.loway.oss.ari4java.generated.ari_1_5_0.models; - -// ---------------------------------------------------- -// THIS CLASS WAS GENERATED AUTOMATICALLY -// PLEASE DO NOT EDIT -// Generated on: Tue Dec 19 09:55:49 CET 2017 -// ---------------------------------------------------- - -import ch.loway.oss.ari4java.generated.*; -import com.fasterxml.jackson.databind.annotation.JsonDeserialize; -import java.util.Date; -import java.util.List; -import java.util.Map; - -/********************************************************** - * Event showing failure of a recording operation. - * - * Defined in file: events.json - * Generated by: Model - *********************************************************/ - -public class RecordingFailed_impl_ari_1_5_0 extends Event_impl_ari_1_5_0 implements RecordingFailed, java.io.Serializable { -private static final long serialVersionUID = 1L; - /** Recording control object */ - private LiveRecording recording; - public LiveRecording getRecording() { - return recording; - } - - @JsonDeserialize( as=LiveRecording_impl_ari_1_5_0.class ) - public void setRecording(LiveRecording val ) { - recording = val; - } - -/** No missing signatures from interface */ -} - diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_5_0/models/RecordingFinished_impl_ari_1_5_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_5_0/models/RecordingFinished_impl_ari_1_5_0.java deleted file mode 100644 index e18387f2..00000000 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_5_0/models/RecordingFinished_impl_ari_1_5_0.java +++ /dev/null @@ -1,37 +0,0 @@ -package ch.loway.oss.ari4java.generated.ari_1_5_0.models; - -// ---------------------------------------------------- -// THIS CLASS WAS GENERATED AUTOMATICALLY -// PLEASE DO NOT EDIT -// Generated on: Tue Dec 19 09:55:49 CET 2017 -// ---------------------------------------------------- - -import ch.loway.oss.ari4java.generated.*; -import com.fasterxml.jackson.databind.annotation.JsonDeserialize; -import java.util.Date; -import java.util.List; -import java.util.Map; - -/********************************************************** - * Event showing the completion of a recording operation. - * - * Defined in file: events.json - * Generated by: Model - *********************************************************/ - -public class RecordingFinished_impl_ari_1_5_0 extends Event_impl_ari_1_5_0 implements RecordingFinished, java.io.Serializable { -private static final long serialVersionUID = 1L; - /** Recording control object */ - private LiveRecording recording; - public LiveRecording getRecording() { - return recording; - } - - @JsonDeserialize( as=LiveRecording_impl_ari_1_5_0.class ) - public void setRecording(LiveRecording val ) { - recording = val; - } - -/** No missing signatures from interface */ -} - diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_5_0/models/RecordingStarted_impl_ari_1_5_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_5_0/models/RecordingStarted_impl_ari_1_5_0.java deleted file mode 100644 index 2a4acba9..00000000 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_5_0/models/RecordingStarted_impl_ari_1_5_0.java +++ /dev/null @@ -1,37 +0,0 @@ -package ch.loway.oss.ari4java.generated.ari_1_5_0.models; - -// ---------------------------------------------------- -// THIS CLASS WAS GENERATED AUTOMATICALLY -// PLEASE DO NOT EDIT -// Generated on: Tue Dec 19 09:55:49 CET 2017 -// ---------------------------------------------------- - -import ch.loway.oss.ari4java.generated.*; -import com.fasterxml.jackson.databind.annotation.JsonDeserialize; -import java.util.Date; -import java.util.List; -import java.util.Map; - -/********************************************************** - * Event showing the start of a recording operation. - * - * Defined in file: events.json - * Generated by: Model - *********************************************************/ - -public class RecordingStarted_impl_ari_1_5_0 extends Event_impl_ari_1_5_0 implements RecordingStarted, java.io.Serializable { -private static final long serialVersionUID = 1L; - /** Recording control object */ - private LiveRecording recording; - public LiveRecording getRecording() { - return recording; - } - - @JsonDeserialize( as=LiveRecording_impl_ari_1_5_0.class ) - public void setRecording(LiveRecording val ) { - recording = val; - } - -/** No missing signatures from interface */ -} - diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_5_0/models/SetId_impl_ari_1_5_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_5_0/models/SetId_impl_ari_1_5_0.java deleted file mode 100644 index 7d796bf0..00000000 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_5_0/models/SetId_impl_ari_1_5_0.java +++ /dev/null @@ -1,48 +0,0 @@ -package ch.loway.oss.ari4java.generated.ari_1_5_0.models; - -// ---------------------------------------------------- -// THIS CLASS WAS GENERATED AUTOMATICALLY -// PLEASE DO NOT EDIT -// Generated on: Tue Dec 19 09:55:49 CET 2017 -// ---------------------------------------------------- - -import ch.loway.oss.ari4java.generated.*; -import com.fasterxml.jackson.databind.annotation.JsonDeserialize; -import java.util.Date; -import java.util.List; -import java.util.Map; - -/********************************************************** - * Effective user/group id - * - * Defined in file: asterisk.json - * Generated by: Model - *********************************************************/ - -public class SetId_impl_ari_1_5_0 implements SetId, java.io.Serializable { -private static final long serialVersionUID = 1L; - /** Effective group id. */ - private String group; - public String getGroup() { - return group; - } - - @JsonDeserialize( as=String.class ) - public void setGroup(String val ) { - group = val; - } - - /** Effective user id. */ - private String user; - public String getUser() { - return user; - } - - @JsonDeserialize( as=String.class ) - public void setUser(String val ) { - user = val; - } - -/** No missing signatures from interface */ -} - diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_5_0/models/Sound_impl_ari_1_5_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_5_0/models/Sound_impl_ari_1_5_0.java deleted file mode 100644 index d3e8c613..00000000 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_5_0/models/Sound_impl_ari_1_5_0.java +++ /dev/null @@ -1,59 +0,0 @@ -package ch.loway.oss.ari4java.generated.ari_1_5_0.models; - -// ---------------------------------------------------- -// THIS CLASS WAS GENERATED AUTOMATICALLY -// PLEASE DO NOT EDIT -// Generated on: Tue Dec 19 09:55:49 CET 2017 -// ---------------------------------------------------- - -import ch.loway.oss.ari4java.generated.*; -import com.fasterxml.jackson.databind.annotation.JsonDeserialize; -import java.util.Date; -import java.util.List; -import java.util.Map; - -/********************************************************** - * A media file that may be played back. - * - * Defined in file: sounds.json - * Generated by: Model - *********************************************************/ - -public class Sound_impl_ari_1_5_0 implements Sound, java.io.Serializable { -private static final long serialVersionUID = 1L; - /** The formats and languages in which this sound is available. */ - private List formats; - public List getFormats() { - return formats; - } - - @JsonDeserialize( contentAs=FormatLangPair_impl_ari_1_5_0.class ) - public void setFormats(List val ) { - formats = val; - } - - /** Sound's identifier. */ - private String id; - public String getId() { - return id; - } - - @JsonDeserialize( as=String.class ) - public void setId(String val ) { - id = val; - } - - /** Text description of the sound, usually the words spoken. */ - private String text; - public String getText() { - return text; - } - - @JsonDeserialize( as=String.class ) - public void setText(String val ) { - text = val; - } - -/** No missing signatures from interface */ -} - diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_5_0/models/StasisEnd_impl_ari_1_5_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_5_0/models/StasisEnd_impl_ari_1_5_0.java deleted file mode 100644 index 7175c075..00000000 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_5_0/models/StasisEnd_impl_ari_1_5_0.java +++ /dev/null @@ -1,37 +0,0 @@ -package ch.loway.oss.ari4java.generated.ari_1_5_0.models; - -// ---------------------------------------------------- -// THIS CLASS WAS GENERATED AUTOMATICALLY -// PLEASE DO NOT EDIT -// Generated on: Tue Dec 19 09:55:49 CET 2017 -// ---------------------------------------------------- - -import ch.loway.oss.ari4java.generated.*; -import com.fasterxml.jackson.databind.annotation.JsonDeserialize; -import java.util.Date; -import java.util.List; -import java.util.Map; - -/********************************************************** - * Notification that a channel has left a Stasis application. - * - * Defined in file: events.json - * Generated by: Model - *********************************************************/ - -public class StasisEnd_impl_ari_1_5_0 extends Event_impl_ari_1_5_0 implements StasisEnd, java.io.Serializable { -private static final long serialVersionUID = 1L; - /** */ - private Channel channel; - public Channel getChannel() { - return channel; - } - - @JsonDeserialize( as=Channel_impl_ari_1_5_0.class ) - public void setChannel(Channel val ) { - channel = val; - } - -/** No missing signatures from interface */ -} - diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_5_0/models/StasisStart_impl_ari_1_5_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_5_0/models/StasisStart_impl_ari_1_5_0.java deleted file mode 100644 index fda7f4c7..00000000 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_5_0/models/StasisStart_impl_ari_1_5_0.java +++ /dev/null @@ -1,59 +0,0 @@ -package ch.loway.oss.ari4java.generated.ari_1_5_0.models; - -// ---------------------------------------------------- -// THIS CLASS WAS GENERATED AUTOMATICALLY -// PLEASE DO NOT EDIT -// Generated on: Tue Dec 19 09:55:49 CET 2017 -// ---------------------------------------------------- - -import ch.loway.oss.ari4java.generated.*; -import com.fasterxml.jackson.databind.annotation.JsonDeserialize; -import java.util.Date; -import java.util.List; -import java.util.Map; - -/********************************************************** - * Notification that a channel has entered a Stasis application. - * - * Defined in file: events.json - * Generated by: Model - *********************************************************/ - -public class StasisStart_impl_ari_1_5_0 extends Event_impl_ari_1_5_0 implements StasisStart, java.io.Serializable { -private static final long serialVersionUID = 1L; - /** Arguments to the application */ - private List args; - public List getArgs() { - return args; - } - - @JsonDeserialize( contentAs=String.class ) - public void setArgs(List val ) { - args = val; - } - - /** */ - private Channel channel; - public Channel getChannel() { - return channel; - } - - @JsonDeserialize( as=Channel_impl_ari_1_5_0.class ) - public void setChannel(Channel val ) { - channel = val; - } - - /** */ - private Channel replace_channel; - public Channel getReplace_channel() { - return replace_channel; - } - - @JsonDeserialize( as=Channel_impl_ari_1_5_0.class ) - public void setReplace_channel(Channel val ) { - replace_channel = val; - } - -/** No missing signatures from interface */ -} - diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_5_0/models/StatusInfo_impl_ari_1_5_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_5_0/models/StatusInfo_impl_ari_1_5_0.java deleted file mode 100644 index 7aee6539..00000000 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_5_0/models/StatusInfo_impl_ari_1_5_0.java +++ /dev/null @@ -1,48 +0,0 @@ -package ch.loway.oss.ari4java.generated.ari_1_5_0.models; - -// ---------------------------------------------------- -// THIS CLASS WAS GENERATED AUTOMATICALLY -// PLEASE DO NOT EDIT -// Generated on: Tue Dec 19 09:55:49 CET 2017 -// ---------------------------------------------------- - -import ch.loway.oss.ari4java.generated.*; -import com.fasterxml.jackson.databind.annotation.JsonDeserialize; -import java.util.Date; -import java.util.List; -import java.util.Map; - -/********************************************************** - * Info about Asterisk status - * - * Defined in file: asterisk.json - * Generated by: Model - *********************************************************/ - -public class StatusInfo_impl_ari_1_5_0 implements StatusInfo, java.io.Serializable { -private static final long serialVersionUID = 1L; - /** Time when Asterisk was last reloaded. */ - private Date last_reload_time; - public Date getLast_reload_time() { - return last_reload_time; - } - - @JsonDeserialize( as=Date.class ) - public void setLast_reload_time(Date val ) { - last_reload_time = val; - } - - /** Time when Asterisk was started. */ - private Date startup_time; - public Date getStartup_time() { - return startup_time; - } - - @JsonDeserialize( as=Date.class ) - public void setStartup_time(Date val ) { - startup_time = val; - } - -/** No missing signatures from interface */ -} - diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_5_0/models/StoredRecording_impl_ari_1_5_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_5_0/models/StoredRecording_impl_ari_1_5_0.java deleted file mode 100644 index 7f8ddb2a..00000000 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_5_0/models/StoredRecording_impl_ari_1_5_0.java +++ /dev/null @@ -1,48 +0,0 @@ -package ch.loway.oss.ari4java.generated.ari_1_5_0.models; - -// ---------------------------------------------------- -// THIS CLASS WAS GENERATED AUTOMATICALLY -// PLEASE DO NOT EDIT -// Generated on: Tue Dec 19 09:55:49 CET 2017 -// ---------------------------------------------------- - -import ch.loway.oss.ari4java.generated.*; -import com.fasterxml.jackson.databind.annotation.JsonDeserialize; -import java.util.Date; -import java.util.List; -import java.util.Map; - -/********************************************************** - * A past recording that may be played back. - * - * Defined in file: recordings.json - * Generated by: Model - *********************************************************/ - -public class StoredRecording_impl_ari_1_5_0 implements StoredRecording, java.io.Serializable { -private static final long serialVersionUID = 1L; - /** */ - private String format; - public String getFormat() { - return format; - } - - @JsonDeserialize( as=String.class ) - public void setFormat(String val ) { - format = val; - } - - /** */ - private String name; - public String getName() { - return name; - } - - @JsonDeserialize( as=String.class ) - public void setName(String val ) { - name = val; - } - -/** No missing signatures from interface */ -} - diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_5_0/models/SystemInfo_impl_ari_1_5_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_5_0/models/SystemInfo_impl_ari_1_5_0.java deleted file mode 100644 index a94422f3..00000000 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_5_0/models/SystemInfo_impl_ari_1_5_0.java +++ /dev/null @@ -1,48 +0,0 @@ -package ch.loway.oss.ari4java.generated.ari_1_5_0.models; - -// ---------------------------------------------------- -// THIS CLASS WAS GENERATED AUTOMATICALLY -// PLEASE DO NOT EDIT -// Generated on: Tue Dec 19 09:55:49 CET 2017 -// ---------------------------------------------------- - -import ch.loway.oss.ari4java.generated.*; -import com.fasterxml.jackson.databind.annotation.JsonDeserialize; -import java.util.Date; -import java.util.List; -import java.util.Map; - -/********************************************************** - * Info about Asterisk - * - * Defined in file: asterisk.json - * Generated by: Model - *********************************************************/ - -public class SystemInfo_impl_ari_1_5_0 implements SystemInfo, java.io.Serializable { -private static final long serialVersionUID = 1L; - /** */ - private String entity_id; - public String getEntity_id() { - return entity_id; - } - - @JsonDeserialize( as=String.class ) - public void setEntity_id(String val ) { - entity_id = val; - } - - /** Asterisk version. */ - private String version; - public String getVersion() { - return version; - } - - @JsonDeserialize( as=String.class ) - public void setVersion(String val ) { - version = val; - } - -/** No missing signatures from interface */ -} - diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_5_0/models/TextMessageReceived_impl_ari_1_5_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_5_0/models/TextMessageReceived_impl_ari_1_5_0.java deleted file mode 100644 index 43586979..00000000 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_5_0/models/TextMessageReceived_impl_ari_1_5_0.java +++ /dev/null @@ -1,48 +0,0 @@ -package ch.loway.oss.ari4java.generated.ari_1_5_0.models; - -// ---------------------------------------------------- -// THIS CLASS WAS GENERATED AUTOMATICALLY -// PLEASE DO NOT EDIT -// Generated on: Tue Dec 19 09:55:49 CET 2017 -// ---------------------------------------------------- - -import ch.loway.oss.ari4java.generated.*; -import com.fasterxml.jackson.databind.annotation.JsonDeserialize; -import java.util.Date; -import java.util.List; -import java.util.Map; - -/********************************************************** - * A text message was received from an endpoint. - * - * Defined in file: events.json - * Generated by: Model - *********************************************************/ - -public class TextMessageReceived_impl_ari_1_5_0 extends Event_impl_ari_1_5_0 implements TextMessageReceived, java.io.Serializable { -private static final long serialVersionUID = 1L; - /** */ - private Endpoint endpoint; - public Endpoint getEndpoint() { - return endpoint; - } - - @JsonDeserialize( as=Endpoint_impl_ari_1_5_0.class ) - public void setEndpoint(Endpoint val ) { - endpoint = val; - } - - /** */ - private TextMessage message; - public TextMessage getMessage() { - return message; - } - - @JsonDeserialize( as=TextMessage_impl_ari_1_5_0.class ) - public void setMessage(TextMessage val ) { - message = val; - } - -/** No missing signatures from interface */ -} - diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_5_0/models/TextMessageVariable_impl_ari_1_5_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_5_0/models/TextMessageVariable_impl_ari_1_5_0.java deleted file mode 100644 index 62c1057d..00000000 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_5_0/models/TextMessageVariable_impl_ari_1_5_0.java +++ /dev/null @@ -1,48 +0,0 @@ -package ch.loway.oss.ari4java.generated.ari_1_5_0.models; - -// ---------------------------------------------------- -// THIS CLASS WAS GENERATED AUTOMATICALLY -// PLEASE DO NOT EDIT -// Generated on: Tue Dec 19 09:55:49 CET 2017 -// ---------------------------------------------------- - -import ch.loway.oss.ari4java.generated.*; -import com.fasterxml.jackson.databind.annotation.JsonDeserialize; -import java.util.Date; -import java.util.List; -import java.util.Map; - -/********************************************************** - * A key/value pair variable in a text message. - * - * Defined in file: endpoints.json - * Generated by: Model - *********************************************************/ - -public class TextMessageVariable_impl_ari_1_5_0 implements TextMessageVariable, java.io.Serializable { -private static final long serialVersionUID = 1L; - /** A unique key identifying the variable. */ - private String key; - public String getKey() { - return key; - } - - @JsonDeserialize( as=String.class ) - public void setKey(String val ) { - key = val; - } - - /** The value of the variable. */ - private String value; - public String getValue() { - return value; - } - - @JsonDeserialize( as=String.class ) - public void setValue(String val ) { - value = val; - } - -/** No missing signatures from interface */ -} - diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_5_0/models/TextMessage_impl_ari_1_5_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_5_0/models/TextMessage_impl_ari_1_5_0.java deleted file mode 100644 index b3a863d3..00000000 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_5_0/models/TextMessage_impl_ari_1_5_0.java +++ /dev/null @@ -1,70 +0,0 @@ -package ch.loway.oss.ari4java.generated.ari_1_5_0.models; - -// ---------------------------------------------------- -// THIS CLASS WAS GENERATED AUTOMATICALLY -// PLEASE DO NOT EDIT -// Generated on: Tue Dec 19 09:55:49 CET 2017 -// ---------------------------------------------------- - -import ch.loway.oss.ari4java.generated.*; -import com.fasterxml.jackson.databind.annotation.JsonDeserialize; -import java.util.Date; -import java.util.List; -import java.util.Map; - -/********************************************************** - * A text message. - * - * Defined in file: endpoints.json - * Generated by: Model - *********************************************************/ - -public class TextMessage_impl_ari_1_5_0 implements TextMessage, java.io.Serializable { -private static final long serialVersionUID = 1L; - /** The text of the message. */ - private String body; - public String getBody() { - return body; - } - - @JsonDeserialize( as=String.class ) - public void setBody(String val ) { - body = val; - } - - /** A technology specific URI specifying the source of the message. For sip and pjsip technologies, any SIP URI can be specified. For xmpp, the URI must correspond to the client connection being used to send the message. */ - private String from; - public String getFrom() { - return from; - } - - @JsonDeserialize( as=String.class ) - public void setFrom(String val ) { - from = val; - } - - /** A technology specific URI specifying the destination of the message. Valid technologies include sip, pjsip, and xmp. The destination of a message should be an endpoint. */ - private String to; - public String getTo() { - return to; - } - - @JsonDeserialize( as=String.class ) - public void setTo(String val ) { - to = val; - } - - /** Technology specific key/value pairs associated with the message. */ - private List variables; - public List getVariables() { - return variables; - } - - @JsonDeserialize( contentAs=TextMessageVariable_impl_ari_1_5_0.class ) - public void setVariables(List val ) { - variables = val; - } - -/** No missing signatures from interface */ -} - diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_5_0/models/Variable_impl_ari_1_5_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_5_0/models/Variable_impl_ari_1_5_0.java deleted file mode 100644 index 36233240..00000000 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_5_0/models/Variable_impl_ari_1_5_0.java +++ /dev/null @@ -1,37 +0,0 @@ -package ch.loway.oss.ari4java.generated.ari_1_5_0.models; - -// ---------------------------------------------------- -// THIS CLASS WAS GENERATED AUTOMATICALLY -// PLEASE DO NOT EDIT -// Generated on: Tue Dec 19 09:55:49 CET 2017 -// ---------------------------------------------------- - -import ch.loway.oss.ari4java.generated.*; -import com.fasterxml.jackson.databind.annotation.JsonDeserialize; -import java.util.Date; -import java.util.List; -import java.util.Map; - -/********************************************************** - * The value of a channel variable - * - * Defined in file: asterisk.json - * Generated by: Model - *********************************************************/ - -public class Variable_impl_ari_1_5_0 implements Variable, java.io.Serializable { -private static final long serialVersionUID = 1L; - /** The value of the variable requested */ - private String value; - public String getValue() { - return value; - } - - @JsonDeserialize( as=String.class ) - public void setValue(String val ) { - value = val; - } - -/** No missing signatures from interface */ -} - diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_6_0/AriBuilder_impl_ari_1_6_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_6_0/AriBuilder_impl_ari_1_6_0.java deleted file mode 100644 index 19073548..00000000 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_6_0/AriBuilder_impl_ari_1_6_0.java +++ /dev/null @@ -1,328 +0,0 @@ -package ch.loway.oss.ari4java.generated.ari_1_6_0; - -// ---------------------------------------------------- -// THIS CLASS WAS GENERATED AUTOMATICALLY -// PLEASE DO NOT EDIT -// Generated on: Tue Dec 19 09:55:50 CET 2017 -// ---------------------------------------------------- - -import ch.loway.oss.ari4java.generated.ari_1_6_0.models.*; -import ch.loway.oss.ari4java.generated.ari_1_6_0.actions.*; -import ch.loway.oss.ari4java.generated.*; -import ch.loway.oss.ari4java.ARI; - -public class AriBuilder_impl_ari_1_6_0 implements AriBuilder { - -public ActionChannels actionChannels() { - return new ActionChannels_impl_ari_1_6_0(); - }; - -public ActionDeviceStates actionDeviceStates() { - return new ActionDeviceStates_impl_ari_1_6_0(); - }; - -public ActionAsterisk actionAsterisk() { - return new ActionAsterisk_impl_ari_1_6_0(); - }; - -public ActionEndpoints actionEndpoints() { - return new ActionEndpoints_impl_ari_1_6_0(); - }; - -public ActionRecordings actionRecordings() { - return new ActionRecordings_impl_ari_1_6_0(); - }; - -public ActionSounds actionSounds() { - return new ActionSounds_impl_ari_1_6_0(); - }; - -public ActionApplications actionApplications() { - return new ActionApplications_impl_ari_1_6_0(); - }; - -public ActionPlaybacks actionPlaybacks() { - return new ActionPlaybacks_impl_ari_1_6_0(); - }; - -public ActionBridges actionBridges() { - return new ActionBridges_impl_ari_1_6_0(); - }; - -public ActionEvents actionEvents() { - return new ActionEvents_impl_ari_1_6_0(); - }; - -public ChannelDialplan channelDialplan() { - return new ChannelDialplan_impl_ari_1_6_0(); - }; - -public ChannelDestroyed channelDestroyed() { - return new ChannelDestroyed_impl_ari_1_6_0(); - }; - -public PlaybackStarted playbackStarted() { - return new PlaybackStarted_impl_ari_1_6_0(); - }; - -public RecordingStarted recordingStarted() { - return new RecordingStarted_impl_ari_1_6_0(); - }; - -public SystemInfo systemInfo() { - return new SystemInfo_impl_ari_1_6_0(); - }; - -public Playback playback() { - return new Playback_impl_ari_1_6_0(); - }; - -public ChannelEnteredBridge channelEnteredBridge() { - return new ChannelEnteredBridge_impl_ari_1_6_0(); - }; - -public StasisStart stasisStart() { - return new StasisStart_impl_ari_1_6_0(); - }; - -public RecordingFailed recordingFailed() { - return new RecordingFailed_impl_ari_1_6_0(); - }; - -public EndpointStateChange endpointStateChange() { - return new EndpointStateChange_impl_ari_1_6_0(); - }; - -public ConfigInfo configInfo() { - return new ConfigInfo_impl_ari_1_6_0(); - }; - -public Variable variable() { - return new Variable_impl_ari_1_6_0(); - }; - -public Event event() { - return new Event_impl_ari_1_6_0(); - }; - -public DialplanCEP dialplanCEP() { - return new DialplanCEP_impl_ari_1_6_0(); - }; - -public ChannelStateChange channelStateChange() { - return new ChannelStateChange_impl_ari_1_6_0(); - }; - -public BridgeCreated bridgeCreated() { - return new BridgeCreated_impl_ari_1_6_0(); - }; - -public ChannelConnectedLine channelConnectedLine() { - return new ChannelConnectedLine_impl_ari_1_6_0(); - }; - -public SetId setId() { - return new SetId_impl_ari_1_6_0(); - }; - -public BridgeBlindTransfer bridgeBlindTransfer() { - return new BridgeBlindTransfer_impl_ari_1_6_0(); - }; - -public Message message() { - return new Message_impl_ari_1_6_0(); - }; - -public StatusInfo statusInfo() { - return new StatusInfo_impl_ari_1_6_0(); - }; - -public Channel channel() { - return new Channel_impl_ari_1_6_0(); - }; - -public TextMessage textMessage() { - return new TextMessage_impl_ari_1_6_0(); - }; - -public Endpoint endpoint() { - return new Endpoint_impl_ari_1_6_0(); - }; - -public ChannelCallerId channelCallerId() { - return new ChannelCallerId_impl_ari_1_6_0(); - }; - -public StasisEnd stasisEnd() { - return new StasisEnd_impl_ari_1_6_0(); - }; - -public ApplicationReplaced applicationReplaced() { - return new ApplicationReplaced_impl_ari_1_6_0(); - }; - -public Dialed dialed() { - return new Dialed_impl_ari_1_6_0(); - }; - -public ChannelTalkingFinished channelTalkingFinished() { - return new ChannelTalkingFinished_impl_ari_1_6_0(); - }; - -public Sound sound() { - return new Sound_impl_ari_1_6_0(); - }; - -public ChannelUserevent channelUserevent() { - return new ChannelUserevent_impl_ari_1_6_0(); - }; - -public ChannelDtmfReceived channelDtmfReceived() { - return new ChannelDtmfReceived_impl_ari_1_6_0(); - }; - -public MissingParams missingParams() { - return new MissingParams_impl_ari_1_6_0(); - }; - -public ChannelLeftBridge channelLeftBridge() { - return new ChannelLeftBridge_impl_ari_1_6_0(); - }; - -public TextMessageVariable textMessageVariable() { - return new TextMessageVariable_impl_ari_1_6_0(); - }; - -public ChannelCreated channelCreated() { - return new ChannelCreated_impl_ari_1_6_0(); - }; - -public Application application() { - return new Application_impl_ari_1_6_0(); - }; - -public DeviceStateChanged deviceStateChanged() { - return new DeviceStateChanged_impl_ari_1_6_0(); - }; - -public ChannelHangupRequest channelHangupRequest() { - return new ChannelHangupRequest_impl_ari_1_6_0(); - }; - -public TextMessageReceived textMessageReceived() { - return new TextMessageReceived_impl_ari_1_6_0(); - }; - -public BridgeMerged bridgeMerged() { - return new BridgeMerged_impl_ari_1_6_0(); - }; - -public ChannelVarset channelVarset() { - return new ChannelVarset_impl_ari_1_6_0(); - }; - -public AsteriskInfo asteriskInfo() { - return new AsteriskInfo_impl_ari_1_6_0(); - }; - -public RecordingFinished recordingFinished() { - return new RecordingFinished_impl_ari_1_6_0(); - }; - -public StoredRecording storedRecording() { - return new StoredRecording_impl_ari_1_6_0(); - }; - -public ChannelTalkingStarted channelTalkingStarted() { - return new ChannelTalkingStarted_impl_ari_1_6_0(); - }; - -public LiveRecording liveRecording() { - return new LiveRecording_impl_ari_1_6_0(); - }; - -public DeviceState deviceState() { - return new DeviceState_impl_ari_1_6_0(); - }; - -public Dial dial() { - return new Dial_impl_ari_1_6_0(); - }; - -public BuildInfo buildInfo() { - return new BuildInfo_impl_ari_1_6_0(); - }; - -public Bridge bridge() { - return new Bridge_impl_ari_1_6_0(); - }; - -public CallerID callerID() { - return new CallerID_impl_ari_1_6_0(); - }; - -public FormatLangPair formatLangPair() { - return new FormatLangPair_impl_ari_1_6_0(); - }; - -public BridgeDestroyed bridgeDestroyed() { - return new BridgeDestroyed_impl_ari_1_6_0(); - }; - -public PlaybackFinished playbackFinished() { - return new PlaybackFinished_impl_ari_1_6_0(); - }; - -public BridgeAttendedTransfer bridgeAttendedTransfer() { - return new BridgeAttendedTransfer_impl_ari_1_6_0(); - }; - -public BridgeVideoSourceChanged bridgeVideoSourceChanged() { - throw new UnsupportedOperationException(); - }; - -public ChannelHold channelHold() { - throw new UnsupportedOperationException(); - }; - -public ChannelUnhold channelUnhold() { - throw new UnsupportedOperationException(); - }; - -public ConfigTuple configTuple() { - throw new UnsupportedOperationException(); - }; - -public ContactInfo contactInfo() { - throw new UnsupportedOperationException(); - }; - -public ContactStatusChange contactStatusChange() { - throw new UnsupportedOperationException(); - }; - -public LogChannel logChannel() { - throw new UnsupportedOperationException(); - }; - -public Module module() { - throw new UnsupportedOperationException(); - }; - -public Peer peer() { - throw new UnsupportedOperationException(); - }; - -public PeerStatusChange peerStatusChange() { - throw new UnsupportedOperationException(); - }; - -public PlaybackContinuing playbackContinuing() { - throw new UnsupportedOperationException(); - }; - -public ARI.ClassFactory getClassFactory() { - return new ClassTranslator_impl_ari_1_6_0(); -}; - -}; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_6_0/ClassTranslator_impl_ari_1_6_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_6_0/ClassTranslator_impl_ari_1_6_0.java deleted file mode 100644 index 628b6f06..00000000 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_6_0/ClassTranslator_impl_ari_1_6_0.java +++ /dev/null @@ -1,291 +0,0 @@ -package ch.loway.oss.ari4java.generated.ari_1_6_0; - -// ---------------------------------------------------- -// THIS CLASS WAS GENERATED AUTOMATICALLY -// PLEASE DO NOT EDIT -// Generated on: Tue Dec 19 09:55:50 CET 2017 -// ---------------------------------------------------- - -import ch.loway.oss.ari4java.ARI; -import ch.loway.oss.ari4java.generated.*; -import ch.loway.oss.ari4java.generated.ari_1_6_0.models.*; -import ch.loway.oss.ari4java.generated.ari_1_6_0.actions.*; - -/********************************************************** - * This is a class translator. - *********************************************************/ -public class ClassTranslator_impl_ari_1_6_0 implements ARI.ClassFactory { - - @Override - public Class getImplementationFor(Class interfaceClass) { - - if ( interfaceClass.equals(ActionApplications.class) ) { - return (ActionApplications_impl_ari_1_6_0.class); - } else - - if ( interfaceClass.equals(ActionAsterisk.class) ) { - return (ActionAsterisk_impl_ari_1_6_0.class); - } else - - if ( interfaceClass.equals(ActionBridges.class) ) { - return (ActionBridges_impl_ari_1_6_0.class); - } else - - if ( interfaceClass.equals(ActionChannels.class) ) { - return (ActionChannels_impl_ari_1_6_0.class); - } else - - if ( interfaceClass.equals(ActionDeviceStates.class) ) { - return (ActionDeviceStates_impl_ari_1_6_0.class); - } else - - if ( interfaceClass.equals(ActionEndpoints.class) ) { - return (ActionEndpoints_impl_ari_1_6_0.class); - } else - - if ( interfaceClass.equals(ActionEvents.class) ) { - return (ActionEvents_impl_ari_1_6_0.class); - } else - - if ( interfaceClass.equals(ActionPlaybacks.class) ) { - return (ActionPlaybacks_impl_ari_1_6_0.class); - } else - - if ( interfaceClass.equals(ActionRecordings.class) ) { - return (ActionRecordings_impl_ari_1_6_0.class); - } else - - if ( interfaceClass.equals(ActionSounds.class) ) { - return (ActionSounds_impl_ari_1_6_0.class); - } else - - if ( interfaceClass.equals(Application.class) ) { - return (Application_impl_ari_1_6_0.class); - } else - - if ( interfaceClass.equals(ApplicationReplaced.class) ) { - return (ApplicationReplaced_impl_ari_1_6_0.class); - } else - - if ( interfaceClass.equals(AsteriskInfo.class) ) { - return (AsteriskInfo_impl_ari_1_6_0.class); - } else - - if ( interfaceClass.equals(Bridge.class) ) { - return (Bridge_impl_ari_1_6_0.class); - } else - - if ( interfaceClass.equals(BridgeAttendedTransfer.class) ) { - return (BridgeAttendedTransfer_impl_ari_1_6_0.class); - } else - - if ( interfaceClass.equals(BridgeBlindTransfer.class) ) { - return (BridgeBlindTransfer_impl_ari_1_6_0.class); - } else - - if ( interfaceClass.equals(BridgeCreated.class) ) { - return (BridgeCreated_impl_ari_1_6_0.class); - } else - - if ( interfaceClass.equals(BridgeDestroyed.class) ) { - return (BridgeDestroyed_impl_ari_1_6_0.class); - } else - - if ( interfaceClass.equals(BridgeMerged.class) ) { - return (BridgeMerged_impl_ari_1_6_0.class); - } else - - if ( interfaceClass.equals(BuildInfo.class) ) { - return (BuildInfo_impl_ari_1_6_0.class); - } else - - if ( interfaceClass.equals(CallerID.class) ) { - return (CallerID_impl_ari_1_6_0.class); - } else - - if ( interfaceClass.equals(Channel.class) ) { - return (Channel_impl_ari_1_6_0.class); - } else - - if ( interfaceClass.equals(ChannelCallerId.class) ) { - return (ChannelCallerId_impl_ari_1_6_0.class); - } else - - if ( interfaceClass.equals(ChannelConnectedLine.class) ) { - return (ChannelConnectedLine_impl_ari_1_6_0.class); - } else - - if ( interfaceClass.equals(ChannelCreated.class) ) { - return (ChannelCreated_impl_ari_1_6_0.class); - } else - - if ( interfaceClass.equals(ChannelDestroyed.class) ) { - return (ChannelDestroyed_impl_ari_1_6_0.class); - } else - - if ( interfaceClass.equals(ChannelDialplan.class) ) { - return (ChannelDialplan_impl_ari_1_6_0.class); - } else - - if ( interfaceClass.equals(ChannelDtmfReceived.class) ) { - return (ChannelDtmfReceived_impl_ari_1_6_0.class); - } else - - if ( interfaceClass.equals(ChannelEnteredBridge.class) ) { - return (ChannelEnteredBridge_impl_ari_1_6_0.class); - } else - - if ( interfaceClass.equals(ChannelHangupRequest.class) ) { - return (ChannelHangupRequest_impl_ari_1_6_0.class); - } else - - if ( interfaceClass.equals(ChannelLeftBridge.class) ) { - return (ChannelLeftBridge_impl_ari_1_6_0.class); - } else - - if ( interfaceClass.equals(ChannelStateChange.class) ) { - return (ChannelStateChange_impl_ari_1_6_0.class); - } else - - if ( interfaceClass.equals(ChannelTalkingFinished.class) ) { - return (ChannelTalkingFinished_impl_ari_1_6_0.class); - } else - - if ( interfaceClass.equals(ChannelTalkingStarted.class) ) { - return (ChannelTalkingStarted_impl_ari_1_6_0.class); - } else - - if ( interfaceClass.equals(ChannelUserevent.class) ) { - return (ChannelUserevent_impl_ari_1_6_0.class); - } else - - if ( interfaceClass.equals(ChannelVarset.class) ) { - return (ChannelVarset_impl_ari_1_6_0.class); - } else - - if ( interfaceClass.equals(ConfigInfo.class) ) { - return (ConfigInfo_impl_ari_1_6_0.class); - } else - - if ( interfaceClass.equals(DeviceState.class) ) { - return (DeviceState_impl_ari_1_6_0.class); - } else - - if ( interfaceClass.equals(DeviceStateChanged.class) ) { - return (DeviceStateChanged_impl_ari_1_6_0.class); - } else - - if ( interfaceClass.equals(Dial.class) ) { - return (Dial_impl_ari_1_6_0.class); - } else - - if ( interfaceClass.equals(Dialed.class) ) { - return (Dialed_impl_ari_1_6_0.class); - } else - - if ( interfaceClass.equals(DialplanCEP.class) ) { - return (DialplanCEP_impl_ari_1_6_0.class); - } else - - if ( interfaceClass.equals(Endpoint.class) ) { - return (Endpoint_impl_ari_1_6_0.class); - } else - - if ( interfaceClass.equals(EndpointStateChange.class) ) { - return (EndpointStateChange_impl_ari_1_6_0.class); - } else - - if ( interfaceClass.equals(Event.class) ) { - return (Event_impl_ari_1_6_0.class); - } else - - if ( interfaceClass.equals(FormatLangPair.class) ) { - return (FormatLangPair_impl_ari_1_6_0.class); - } else - - if ( interfaceClass.equals(LiveRecording.class) ) { - return (LiveRecording_impl_ari_1_6_0.class); - } else - - if ( interfaceClass.equals(Message.class) ) { - return (Message_impl_ari_1_6_0.class); - } else - - if ( interfaceClass.equals(MissingParams.class) ) { - return (MissingParams_impl_ari_1_6_0.class); - } else - - if ( interfaceClass.equals(Playback.class) ) { - return (Playback_impl_ari_1_6_0.class); - } else - - if ( interfaceClass.equals(PlaybackFinished.class) ) { - return (PlaybackFinished_impl_ari_1_6_0.class); - } else - - if ( interfaceClass.equals(PlaybackStarted.class) ) { - return (PlaybackStarted_impl_ari_1_6_0.class); - } else - - if ( interfaceClass.equals(RecordingFailed.class) ) { - return (RecordingFailed_impl_ari_1_6_0.class); - } else - - if ( interfaceClass.equals(RecordingFinished.class) ) { - return (RecordingFinished_impl_ari_1_6_0.class); - } else - - if ( interfaceClass.equals(RecordingStarted.class) ) { - return (RecordingStarted_impl_ari_1_6_0.class); - } else - - if ( interfaceClass.equals(SetId.class) ) { - return (SetId_impl_ari_1_6_0.class); - } else - - if ( interfaceClass.equals(Sound.class) ) { - return (Sound_impl_ari_1_6_0.class); - } else - - if ( interfaceClass.equals(StasisEnd.class) ) { - return (StasisEnd_impl_ari_1_6_0.class); - } else - - if ( interfaceClass.equals(StasisStart.class) ) { - return (StasisStart_impl_ari_1_6_0.class); - } else - - if ( interfaceClass.equals(StatusInfo.class) ) { - return (StatusInfo_impl_ari_1_6_0.class); - } else - - if ( interfaceClass.equals(StoredRecording.class) ) { - return (StoredRecording_impl_ari_1_6_0.class); - } else - - if ( interfaceClass.equals(SystemInfo.class) ) { - return (SystemInfo_impl_ari_1_6_0.class); - } else - - if ( interfaceClass.equals(TextMessage.class) ) { - return (TextMessage_impl_ari_1_6_0.class); - } else - - if ( interfaceClass.equals(TextMessageReceived.class) ) { - return (TextMessageReceived_impl_ari_1_6_0.class); - } else - - if ( interfaceClass.equals(TextMessageVariable.class) ) { - return (TextMessageVariable_impl_ari_1_6_0.class); - } else - - if ( interfaceClass.equals(Variable.class) ) { - return (Variable_impl_ari_1_6_0.class); - } else - { - return null; - } - } -} - - diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_6_0/actions/ActionApplications_impl_ari_1_6_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_6_0/actions/ActionApplications_impl_ari_1_6_0.java deleted file mode 100644 index 0c48b6e7..00000000 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_6_0/actions/ActionApplications_impl_ari_1_6_0.java +++ /dev/null @@ -1,140 +0,0 @@ -package ch.loway.oss.ari4java.generated.ari_1_6_0.actions; - -// ---------------------------------------------------- -// THIS CLASS WAS GENERATED AUTOMATICALLY -// PLEASE DO NOT EDIT -// Generated on: Tue Dec 19 09:55:49 CET 2017 -// ---------------------------------------------------- - -import ch.loway.oss.ari4java.generated.*; -import java.util.Date; -import java.util.List; -import java.util.Map; -import java.util.ArrayList; -import ch.loway.oss.ari4java.tools.BaseAriAction; -import ch.loway.oss.ari4java.tools.RestException; -import ch.loway.oss.ari4java.tools.AriCallback; -import ch.loway.oss.ari4java.tools.HttpParam; -import ch.loway.oss.ari4java.tools.HttpResponse; -import com.fasterxml.jackson.core.type.TypeReference; -import ch.loway.oss.ari4java.generated.ari_1_6_0.models.*; - -/********************************************************** - * - * Generated by: Apis - *********************************************************/ - - -public class ActionApplications_impl_ari_1_6_0 extends BaseAriAction implements ActionApplications { -/********************************************************** - * Stasis applications - * - * List all applications. - *********************************************************/ -private void buildList() { -reset(); -url = "/applications"; -method = "GET"; -} - -@Override -public List list() throws RestException { -buildList(); -String json = httpActionSync(); -return deserializeJsonAsAbstractList( json, - new TypeReference>() {} ); -} - -@Override -public void list(AriCallback> callback) { -buildList(); -httpActionAsync(callback, new TypeReference>() {}); -} - -/********************************************************** - * Stasis application - * - * Get details of an application. - *********************************************************/ -private void buildGet(String applicationName) { -reset(); -url = "/applications/" + applicationName + ""; -method = "GET"; -lE.add( HttpResponse.build( 404, "Application does not exist.") ); -} - -@Override -public Application get(String applicationName) throws RestException { -buildGet(applicationName); -String json = httpActionSync(); -return deserializeJson( json, Application_impl_ari_1_6_0.class ); -} - -@Override -public void get(String applicationName, AriCallback callback) { -buildGet(applicationName); -httpActionAsync(callback, Application_impl_ari_1_6_0.class); -} - -/********************************************************** - * Stasis application - * - * Subscribe an application to a event source. - * Returns the state of the application after the subscriptions have changed - *********************************************************/ -private void buildSubscribe(String applicationName, String eventSource) { -reset(); -url = "/applications/" + applicationName + "/subscription"; -method = "POST"; -lParamQuery.add( HttpParam.build( "eventSource", eventSource) ); -lE.add( HttpResponse.build( 400, "Missing parameter.") ); -lE.add( HttpResponse.build( 404, "Application does not exist.") ); -lE.add( HttpResponse.build( 422, "Event source does not exist.") ); -} - -@Override -public Application subscribe(String applicationName, String eventSource) throws RestException { -buildSubscribe(applicationName, eventSource); -String json = httpActionSync(); -return deserializeJson( json, Application_impl_ari_1_6_0.class ); -} - -@Override -public void subscribe(String applicationName, String eventSource, AriCallback callback) { -buildSubscribe(applicationName, eventSource); -httpActionAsync(callback, Application_impl_ari_1_6_0.class); -} - -/********************************************************** - * Stasis application - * - * Unsubscribe an application from an event source. - * Returns the state of the application after the subscriptions have changed - *********************************************************/ -private void buildUnsubscribe(String applicationName, String eventSource) { -reset(); -url = "/applications/" + applicationName + "/subscription"; -method = "DELETE"; -lParamQuery.add( HttpParam.build( "eventSource", eventSource) ); -lE.add( HttpResponse.build( 400, "Missing parameter; event source scheme not recognized.") ); -lE.add( HttpResponse.build( 404, "Application does not exist.") ); -lE.add( HttpResponse.build( 409, "Application not subscribed to event source.") ); -lE.add( HttpResponse.build( 422, "Event source does not exist.") ); -} - -@Override -public Application unsubscribe(String applicationName, String eventSource) throws RestException { -buildUnsubscribe(applicationName, eventSource); -String json = httpActionSync(); -return deserializeJson( json, Application_impl_ari_1_6_0.class ); -} - -@Override -public void unsubscribe(String applicationName, String eventSource, AriCallback callback) { -buildUnsubscribe(applicationName, eventSource); -httpActionAsync(callback, Application_impl_ari_1_6_0.class); -} - -/** No missing signatures from interface */ -}; - diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_6_0/actions/ActionAsterisk_impl_ari_1_6_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_6_0/actions/ActionAsterisk_impl_ari_1_6_0.java deleted file mode 100644 index 806271a1..00000000 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_6_0/actions/ActionAsterisk_impl_ari_1_6_0.java +++ /dev/null @@ -1,335 +0,0 @@ -package ch.loway.oss.ari4java.generated.ari_1_6_0.actions; - -// ---------------------------------------------------- -// THIS CLASS WAS GENERATED AUTOMATICALLY -// PLEASE DO NOT EDIT -// Generated on: Tue Dec 19 09:55:49 CET 2017 -// ---------------------------------------------------- - -import ch.loway.oss.ari4java.generated.*; -import java.util.Date; -import java.util.List; -import java.util.Map; -import java.util.ArrayList; -import ch.loway.oss.ari4java.tools.BaseAriAction; -import ch.loway.oss.ari4java.tools.RestException; -import ch.loway.oss.ari4java.tools.AriCallback; -import ch.loway.oss.ari4java.tools.HttpParam; -import ch.loway.oss.ari4java.tools.HttpResponse; -import com.fasterxml.jackson.core.type.TypeReference; -import ch.loway.oss.ari4java.generated.ari_1_6_0.models.*; - -/********************************************************** - * - * Generated by: Apis - *********************************************************/ - - -public class ActionAsterisk_impl_ari_1_6_0 extends BaseAriAction implements ActionAsterisk { -/********************************************************** - * Asterisk system information (similar to core show settings) - * - * Gets Asterisk system information. - *********************************************************/ -private void buildGetInfo(String only) { -reset(); -url = "/asterisk/info"; -method = "GET"; -lParamQuery.add( HttpParam.build( "only", only) ); -} - -@Override -public AsteriskInfo getInfo(String only) throws RestException { -buildGetInfo(only); -String json = httpActionSync(); -return deserializeJson( json, AsteriskInfo_impl_ari_1_6_0.class ); -} - -@Override -public void getInfo(String only, AriCallback callback) { -buildGetInfo(only); -httpActionAsync(callback, AsteriskInfo_impl_ari_1_6_0.class); -} - -/********************************************************** - * Global variables - * - * Get the value of a global variable. - *********************************************************/ -private void buildGetGlobalVar(String variable) { -reset(); -url = "/asterisk/variable"; -method = "GET"; -lParamQuery.add( HttpParam.build( "variable", variable) ); -lE.add( HttpResponse.build( 400, "Missing variable parameter.") ); -} - -@Override -public Variable getGlobalVar(String variable) throws RestException { -buildGetGlobalVar(variable); -String json = httpActionSync(); -return deserializeJson( json, Variable_impl_ari_1_6_0.class ); -} - -@Override -public void getGlobalVar(String variable, AriCallback callback) { -buildGetGlobalVar(variable); -httpActionAsync(callback, Variable_impl_ari_1_6_0.class); -} - -/********************************************************** - * Global variables - * - * Set the value of a global variable. - *********************************************************/ -private void buildSetGlobalVar(String variable, String value) { -reset(); -url = "/asterisk/variable"; -method = "POST"; -lParamQuery.add( HttpParam.build( "variable", variable) ); -lParamQuery.add( HttpParam.build( "value", value) ); -lE.add( HttpResponse.build( 400, "Missing variable parameter.") ); -} - -@Override -public void setGlobalVar(String variable, String value) throws RestException { -buildSetGlobalVar(variable, value); -String json = httpActionSync(); -} - -@Override -public void setGlobalVar(String variable, String value, AriCallback callback) { -buildSetGlobalVar(variable, value); -httpActionAsync(callback); -} - -/********************************************************** - * - * - * @since ari_1_8_0 - *********************************************************/ -public void updateObject(String configClass, String objectType, String id, Map fields, AriCallback> callback){ - throw new UnsupportedOperationException("Method availble from ..."); -}; - -/********************************************************** - * - * - * @since ari_1_8_0 - *********************************************************/ -public void listModules(AriCallback> callback){ - throw new UnsupportedOperationException("Method availble from ..."); -}; - -/********************************************************** - * - * - * @since ari_1_8_0 - *********************************************************/ -public void getModule(String moduleName, AriCallback callback){ - throw new UnsupportedOperationException("Method availble from ..."); -}; - -/********************************************************** - * - * - * @since ari_1_8_0 - *********************************************************/ -public void unloadModule(String moduleName, AriCallback callback){ - throw new UnsupportedOperationException("Method availble from ..."); -}; - -/********************************************************** - * Rotates a log channel. - * - * - * @since ari_1_9_0 - *********************************************************/ -public void rotateLog(String logChannelName) throws RestException{ - throw new UnsupportedOperationException("Method availble from ..."); -}; - -/********************************************************** - * - * - * @since ari_1_8_0 - *********************************************************/ -public void deleteObject(String configClass, String objectType, String id, AriCallback callback){ - throw new UnsupportedOperationException("Method availble from ..."); -}; - -/********************************************************** - * Deletes a log channel. - * - * - * @since ari_1_9_0 - *********************************************************/ -public void deleteLog(String logChannelName) throws RestException{ - throw new UnsupportedOperationException("Method availble from ..."); -}; - -/********************************************************** - * Load an Asterisk module. - * - * - * @since ari_1_8_0 - *********************************************************/ -public void loadModule(String moduleName) throws RestException{ - throw new UnsupportedOperationException("Method availble from ..."); -}; - -/********************************************************** - * Unload an Asterisk module. - * - * - * @since ari_1_8_0 - *********************************************************/ -public void unloadModule(String moduleName) throws RestException{ - throw new UnsupportedOperationException("Method availble from ..."); -}; - -/********************************************************** - * Create or update a dynamic configuration object. - * - * - * @since ari_1_8_0 - *********************************************************/ -public List updateObject(String configClass, String objectType, String id, Map fields) throws RestException{ - throw new UnsupportedOperationException("Method availble from ..."); -}; - -/********************************************************** - * Retrieve a dynamic configuration object. - * - * - * @since ari_1_8_0 - *********************************************************/ -public List getObject(String configClass, String objectType, String id) throws RestException{ - throw new UnsupportedOperationException("Method availble from ..."); -}; - -/********************************************************** - * Get Asterisk module information. - * - * - * @since ari_1_8_0 - *********************************************************/ -public Module getModule(String moduleName) throws RestException{ - throw new UnsupportedOperationException("Method availble from ..."); -}; - -/********************************************************** - * - * - * @since ari_1_9_0 - *********************************************************/ -public void rotateLog(String logChannelName, AriCallback callback){ - throw new UnsupportedOperationException("Method availble from ..."); -}; - -/********************************************************** - * - * - * @since ari_1_8_0 - *********************************************************/ -public void loadModule(String moduleName, AriCallback callback){ - throw new UnsupportedOperationException("Method availble from ..."); -}; - -/********************************************************** - * - * - * @since ari_1_9_0 - *********************************************************/ -public void addLog(String logChannelName, String configuration, AriCallback callback){ - throw new UnsupportedOperationException("Method availble from ..."); -}; - -/********************************************************** - * - * - * @since ari_1_8_0 - *********************************************************/ -public void reloadModule(String moduleName, AriCallback callback){ - throw new UnsupportedOperationException("Method availble from ..."); -}; - -/********************************************************** - * Gets Asterisk log channel information. - * - * - * @since ari_1_9_0 - *********************************************************/ -public List listLogChannels() throws RestException{ - throw new UnsupportedOperationException("Method availble from ..."); -}; - -/********************************************************** - * - * - * @since ari_1_8_0 - *********************************************************/ -public void getObject(String configClass, String objectType, String id, AriCallback> callback){ - throw new UnsupportedOperationException("Method availble from ..."); -}; - -/********************************************************** - * Adds a log channel. - * - * - * @since ari_1_9_0 - *********************************************************/ -public void addLog(String logChannelName, String configuration) throws RestException{ - throw new UnsupportedOperationException("Method availble from ..."); -}; - -/********************************************************** - * - * - * @since ari_1_9_0 - *********************************************************/ -public void listLogChannels(AriCallback> callback){ - throw new UnsupportedOperationException("Method availble from ..."); -}; - -/********************************************************** - * List Asterisk modules. - * - * - * @since ari_1_8_0 - *********************************************************/ -public List listModules() throws RestException{ - throw new UnsupportedOperationException("Method availble from ..."); -}; - -/********************************************************** - * Reload an Asterisk module. - * - * - * @since ari_1_8_0 - *********************************************************/ -public void reloadModule(String moduleName) throws RestException{ - throw new UnsupportedOperationException("Method availble from ..."); -}; - -/********************************************************** - * - * - * @since ari_1_9_0 - *********************************************************/ -public void deleteLog(String logChannelName, AriCallback callback){ - throw new UnsupportedOperationException("Method availble from ..."); -}; - -/********************************************************** - * Delete a dynamic configuration object. - * - * - * @since ari_1_8_0 - *********************************************************/ -public void deleteObject(String configClass, String objectType, String id) throws RestException{ - throw new UnsupportedOperationException("Method availble from ..."); -}; - -}; - diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_6_0/actions/ActionBridges_impl_ari_1_6_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_6_0/actions/ActionBridges_impl_ari_1_6_0.java deleted file mode 100644 index 0dbf7865..00000000 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_6_0/actions/ActionBridges_impl_ari_1_6_0.java +++ /dev/null @@ -1,482 +0,0 @@ -package ch.loway.oss.ari4java.generated.ari_1_6_0.actions; - -// ---------------------------------------------------- -// THIS CLASS WAS GENERATED AUTOMATICALLY -// PLEASE DO NOT EDIT -// Generated on: Tue Dec 19 09:55:49 CET 2017 -// ---------------------------------------------------- - -import ch.loway.oss.ari4java.generated.*; -import java.util.Date; -import java.util.List; -import java.util.Map; -import java.util.ArrayList; -import ch.loway.oss.ari4java.tools.BaseAriAction; -import ch.loway.oss.ari4java.tools.RestException; -import ch.loway.oss.ari4java.tools.AriCallback; -import ch.loway.oss.ari4java.tools.HttpParam; -import ch.loway.oss.ari4java.tools.HttpResponse; -import com.fasterxml.jackson.core.type.TypeReference; -import ch.loway.oss.ari4java.generated.ari_1_6_0.models.*; - -/********************************************************** - * - * Generated by: Apis - *********************************************************/ - - -public class ActionBridges_impl_ari_1_6_0 extends BaseAriAction implements ActionBridges { -/********************************************************** - * Active bridges - * - * List all active bridges in Asterisk. - *********************************************************/ -private void buildList() { -reset(); -url = "/bridges"; -method = "GET"; -} - -@Override -public List list() throws RestException { -buildList(); -String json = httpActionSync(); -return deserializeJsonAsAbstractList( json, - new TypeReference>() {} ); -} - -@Override -public void list(AriCallback> callback) { -buildList(); -httpActionAsync(callback, new TypeReference>() {}); -} - -/********************************************************** - * Active bridges - * - * Create a new bridge. - * This bridge persists until it has been shut down, or Asterisk has been shut down. - *********************************************************/ -private void buildCreate(String type, String bridgeId, String name) { -reset(); -url = "/bridges"; -method = "POST"; -lParamQuery.add( HttpParam.build( "type", type) ); -lParamQuery.add( HttpParam.build( "bridgeId", bridgeId) ); -lParamQuery.add( HttpParam.build( "name", name) ); -} - -@Override -public Bridge create(String type, String bridgeId, String name) throws RestException { -buildCreate(type, bridgeId, name); -String json = httpActionSync(); -return deserializeJson( json, Bridge_impl_ari_1_6_0.class ); -} - -@Override -public void create(String type, String bridgeId, String name, AriCallback callback) { -buildCreate(type, bridgeId, name); -httpActionAsync(callback, Bridge_impl_ari_1_6_0.class); -} - -/********************************************************** - * Individual bridge - * - * Create a new bridge or updates an existing one. - * This bridge persists until it has been shut down, or Asterisk has been shut down. - *********************************************************/ -private void buildCreate_or_update_with_id(String type, String bridgeId, String name) { -reset(); -url = "/bridges/" + bridgeId + ""; -method = "POST"; -lParamQuery.add( HttpParam.build( "type", type) ); -lParamQuery.add( HttpParam.build( "name", name) ); -} - -@Override -public Bridge create_or_update_with_id(String type, String bridgeId, String name) throws RestException { -buildCreate_or_update_with_id(type, bridgeId, name); -String json = httpActionSync(); -return deserializeJson( json, Bridge_impl_ari_1_6_0.class ); -} - -@Override -public void create_or_update_with_id(String type, String bridgeId, String name, AriCallback callback) { -buildCreate_or_update_with_id(type, bridgeId, name); -httpActionAsync(callback, Bridge_impl_ari_1_6_0.class); -} - -/********************************************************** - * Individual bridge - * - * Get bridge details. - *********************************************************/ -private void buildGet(String bridgeId) { -reset(); -url = "/bridges/" + bridgeId + ""; -method = "GET"; -lE.add( HttpResponse.build( 404, "Bridge not found") ); -} - -@Override -public Bridge get(String bridgeId) throws RestException { -buildGet(bridgeId); -String json = httpActionSync(); -return deserializeJson( json, Bridge_impl_ari_1_6_0.class ); -} - -@Override -public void get(String bridgeId, AriCallback callback) { -buildGet(bridgeId); -httpActionAsync(callback, Bridge_impl_ari_1_6_0.class); -} - -/********************************************************** - * Individual bridge - * - * Shut down a bridge. - * If any channels are in this bridge, they will be removed and resume whatever they were doing beforehand. - *********************************************************/ -private void buildDestroy(String bridgeId) { -reset(); -url = "/bridges/" + bridgeId + ""; -method = "DELETE"; -lE.add( HttpResponse.build( 404, "Bridge not found") ); -} - -@Override -public void destroy(String bridgeId) throws RestException { -buildDestroy(bridgeId); -String json = httpActionSync(); -} - -@Override -public void destroy(String bridgeId, AriCallback callback) { -buildDestroy(bridgeId); -httpActionAsync(callback); -} - -/********************************************************** - * Add a channel to a bridge - * - * Add a channel to a bridge. - *********************************************************/ -private void buildAddChannel(String bridgeId, String channel, String role) { -reset(); -url = "/bridges/" + bridgeId + "/addChannel"; -method = "POST"; -lParamQuery.add( HttpParam.build( "channel", channel) ); -lParamQuery.add( HttpParam.build( "role", role) ); -lE.add( HttpResponse.build( 400, "Channel not found") ); -lE.add( HttpResponse.build( 404, "Bridge not found") ); -lE.add( HttpResponse.build( 409, "Bridge not in Stasis application; Channel currently recording") ); -lE.add( HttpResponse.build( 422, "Channel not in Stasis application") ); -} - -@Override -public void addChannel(String bridgeId, String channel, String role) throws RestException { -buildAddChannel(bridgeId, channel, role); -String json = httpActionSync(); -} - -@Override -public void addChannel(String bridgeId, String channel, String role, AriCallback callback) { -buildAddChannel(bridgeId, channel, role); -httpActionAsync(callback); -} - -/********************************************************** - * Play music on hold to a bridge - * - * Play music on hold to a bridge or change the MOH class that is playing. - *********************************************************/ -private void buildStartMoh(String bridgeId, String mohClass) { -reset(); -url = "/bridges/" + bridgeId + "/moh"; -method = "POST"; -lParamQuery.add( HttpParam.build( "mohClass", mohClass) ); -lE.add( HttpResponse.build( 404, "Bridge not found") ); -lE.add( HttpResponse.build( 409, "Bridge not in Stasis application") ); -} - -@Override -public void startMoh(String bridgeId, String mohClass) throws RestException { -buildStartMoh(bridgeId, mohClass); -String json = httpActionSync(); -} - -@Override -public void startMoh(String bridgeId, String mohClass, AriCallback callback) { -buildStartMoh(bridgeId, mohClass); -httpActionAsync(callback); -} - -/********************************************************** - * Play music on hold to a bridge - * - * Stop playing music on hold to a bridge. - * This will only stop music on hold being played via POST bridges/{bridgeId}/moh. - *********************************************************/ -private void buildStopMoh(String bridgeId) { -reset(); -url = "/bridges/" + bridgeId + "/moh"; -method = "DELETE"; -lE.add( HttpResponse.build( 404, "Bridge not found") ); -lE.add( HttpResponse.build( 409, "Bridge not in Stasis application") ); -} - -@Override -public void stopMoh(String bridgeId) throws RestException { -buildStopMoh(bridgeId); -String json = httpActionSync(); -} - -@Override -public void stopMoh(String bridgeId, AriCallback callback) { -buildStopMoh(bridgeId); -httpActionAsync(callback); -} - -/********************************************************** - * Play media to the participants of a bridge - * - * Start playback of media on a bridge. - * The media URI may be any of a number of URI's. Currently sound:, recording:, number:, digits:, characters:, and tone: URI's are supported. This operation creates a playback resource that can be used to control the playback of media (pause, rewind, fast forward, etc.) - *********************************************************/ -private void buildPlay(String bridgeId, String media, String lang, int offsetms, int skipms, String playbackId) { -reset(); -url = "/bridges/" + bridgeId + "/play"; -method = "POST"; -lParamQuery.add( HttpParam.build( "media", media) ); -lParamQuery.add( HttpParam.build( "lang", lang) ); -lParamQuery.add( HttpParam.build( "offsetms", offsetms) ); -lParamQuery.add( HttpParam.build( "skipms", skipms) ); -lParamQuery.add( HttpParam.build( "playbackId", playbackId) ); -lE.add( HttpResponse.build( 404, "Bridge not found") ); -lE.add( HttpResponse.build( 409, "Bridge not in a Stasis application") ); -} - -@Override -public Playback play(String bridgeId, String media, String lang, int offsetms, int skipms, String playbackId) throws RestException { -buildPlay(bridgeId, media, lang, offsetms, skipms, playbackId); -String json = httpActionSync(); -return deserializeJson( json, Playback_impl_ari_1_6_0.class ); -} - -@Override -public void play(String bridgeId, String media, String lang, int offsetms, int skipms, String playbackId, AriCallback callback) { -buildPlay(bridgeId, media, lang, offsetms, skipms, playbackId); -httpActionAsync(callback, Playback_impl_ari_1_6_0.class); -} - -/********************************************************** - * Play media to a bridge - * - * Start playback of media on a bridge. - * The media URI may be any of a number of URI's. Currently sound: and recording: URI's are supported. This operation creates a playback resource that can be used to control the playback of media (pause, rewind, fast forward, etc.) - *********************************************************/ -private void buildPlayWithId(String bridgeId, String playbackId, String media, String lang, int offsetms, int skipms) { -reset(); -url = "/bridges/" + bridgeId + "/play/" + playbackId + ""; -method = "POST"; -lParamQuery.add( HttpParam.build( "media", media) ); -lParamQuery.add( HttpParam.build( "lang", lang) ); -lParamQuery.add( HttpParam.build( "offsetms", offsetms) ); -lParamQuery.add( HttpParam.build( "skipms", skipms) ); -lE.add( HttpResponse.build( 404, "Bridge not found") ); -lE.add( HttpResponse.build( 409, "Bridge not in a Stasis application") ); -} - -@Override -public Playback playWithId(String bridgeId, String playbackId, String media, String lang, int offsetms, int skipms) throws RestException { -buildPlayWithId(bridgeId, playbackId, media, lang, offsetms, skipms); -String json = httpActionSync(); -return deserializeJson( json, Playback_impl_ari_1_6_0.class ); -} - -@Override -public void playWithId(String bridgeId, String playbackId, String media, String lang, int offsetms, int skipms, AriCallback callback) { -buildPlayWithId(bridgeId, playbackId, media, lang, offsetms, skipms); -httpActionAsync(callback, Playback_impl_ari_1_6_0.class); -} - -/********************************************************** - * Record audio on a bridge - * - * Start a recording. - * This records the mixed audio from all channels participating in this bridge. - *********************************************************/ -private void buildRecord(String bridgeId, String name, String format, int maxDurationSeconds, int maxSilenceSeconds, String ifExists, boolean beep, String terminateOn) { -reset(); -url = "/bridges/" + bridgeId + "/record"; -method = "POST"; -lParamQuery.add( HttpParam.build( "name", name) ); -lParamQuery.add( HttpParam.build( "format", format) ); -lParamQuery.add( HttpParam.build( "maxDurationSeconds", maxDurationSeconds) ); -lParamQuery.add( HttpParam.build( "maxSilenceSeconds", maxSilenceSeconds) ); -lParamQuery.add( HttpParam.build( "ifExists", ifExists) ); -lParamQuery.add( HttpParam.build( "beep", beep) ); -lParamQuery.add( HttpParam.build( "terminateOn", terminateOn) ); -lE.add( HttpResponse.build( 400, "Invalid parameters") ); -lE.add( HttpResponse.build( 404, "Bridge not found") ); -lE.add( HttpResponse.build( 409, "Bridge is not in a Stasis application; A recording with the same name already exists on the system and can not be overwritten because it is in progress or ifExists=fail") ); -lE.add( HttpResponse.build( 422, "The format specified is unknown on this system") ); -} - -@Override -public LiveRecording record(String bridgeId, String name, String format, int maxDurationSeconds, int maxSilenceSeconds, String ifExists, boolean beep, String terminateOn) throws RestException { -buildRecord(bridgeId, name, format, maxDurationSeconds, maxSilenceSeconds, ifExists, beep, terminateOn); -String json = httpActionSync(); -return deserializeJson( json, LiveRecording_impl_ari_1_6_0.class ); -} - -@Override -public void record(String bridgeId, String name, String format, int maxDurationSeconds, int maxSilenceSeconds, String ifExists, boolean beep, String terminateOn, AriCallback callback) { -buildRecord(bridgeId, name, format, maxDurationSeconds, maxSilenceSeconds, ifExists, beep, terminateOn); -httpActionAsync(callback, LiveRecording_impl_ari_1_6_0.class); -} - -/********************************************************** - * Remove a channel from a bridge - * - * Remove a channel from a bridge. - *********************************************************/ -private void buildRemoveChannel(String bridgeId, String channel) { -reset(); -url = "/bridges/" + bridgeId + "/removeChannel"; -method = "POST"; -lParamQuery.add( HttpParam.build( "channel", channel) ); -lE.add( HttpResponse.build( 400, "Channel not found") ); -lE.add( HttpResponse.build( 404, "Bridge not found") ); -lE.add( HttpResponse.build( 409, "Bridge not in Stasis application") ); -lE.add( HttpResponse.build( 422, "Channel not in this bridge") ); -} - -@Override -public void removeChannel(String bridgeId, String channel) throws RestException { -buildRemoveChannel(bridgeId, channel); -String json = httpActionSync(); -} - -@Override -public void removeChannel(String bridgeId, String channel, AriCallback callback) { -buildRemoveChannel(bridgeId, channel); -httpActionAsync(callback); -} - -/********************************************************** - * Start playback of media on a bridge. - * The media URI may be any of a number of URI's. Currently sound: and recording: URI's are supported. This operation creates a playback resource that can be used to control the playback of media (pause, rewind, fast forward, etc.) - * - * @since ari_0_0_1 - *********************************************************/ -public Playback play(String bridgeId, String media, String lang, int offsetms, int skipms) throws RestException{ - throw new UnsupportedOperationException("Method availble from ..."); -}; - -/********************************************************** - * - * - * @since ari_0_0_1 - *********************************************************/ -public void play(String bridgeId, String media, String lang, int offsetms, int skipms, AriCallback callback){ - throw new UnsupportedOperationException("Method availble from ..."); -}; - -/********************************************************** - * - * - * @since ari_1_7_0 - *********************************************************/ -public void createWithId(String type, String bridgeId, String name, AriCallback callback){ - throw new UnsupportedOperationException("Method availble from ..."); -}; - -/********************************************************** - * Create a new bridge. - * This bridge persists until it has been shut down, or Asterisk has been shut down. - * - * @since ari_1_0_0 - *********************************************************/ -public Bridge create(String type, String name) throws RestException{ - throw new UnsupportedOperationException("Method availble from ..."); -}; - -/********************************************************** - * Set a channel as the video source in a multi-party mixing bridge. This operation has no effect on bridges with two or fewer participants. - * - * - * @since ari_2_0_0 - *********************************************************/ -public void setVideoSource(String bridgeId, String channelId) throws RestException{ - throw new UnsupportedOperationException("Method availble from ..."); -}; - -/********************************************************** - * Create a new bridge. - * This bridge persists until it has been shut down, or Asterisk has been shut down. - * - * @since ari_0_0_1 - *********************************************************/ -public Bridge create(String type) throws RestException{ - throw new UnsupportedOperationException("Method availble from ..."); -}; - -/********************************************************** - * Removes any explicit video source in a multi-party mixing bridge. This operation has no effect on bridges with two or fewer participants. When no explicit video source is set, talk detection will be used to determine the active video stream. - * - * - * @since ari_2_0_0 - *********************************************************/ -public void clearVideoSource(String bridgeId) throws RestException{ - throw new UnsupportedOperationException("Method availble from ..."); -}; - -/********************************************************** - * - * - * @since ari_0_0_1 - *********************************************************/ -public void create(String type, AriCallback callback){ - throw new UnsupportedOperationException("Method availble from ..."); -}; - -/********************************************************** - * - * - * @since ari_2_0_0 - *********************************************************/ -public void setVideoSource(String bridgeId, String channelId, AriCallback callback){ - throw new UnsupportedOperationException("Method availble from ..."); -}; - -/********************************************************** - * - * - * @since ari_1_0_0 - *********************************************************/ -public void create(String type, String name, AriCallback callback){ - throw new UnsupportedOperationException("Method availble from ..."); -}; - -/********************************************************** - * - * - * @since ari_2_0_0 - *********************************************************/ -public void clearVideoSource(String bridgeId, AriCallback callback){ - throw new UnsupportedOperationException("Method availble from ..."); -}; - -/********************************************************** - * Create a new bridge or updates an existing one. - * This bridge persists until it has been shut down, or Asterisk has been shut down. - * - * @since ari_1_7_0 - *********************************************************/ -public Bridge createWithId(String type, String bridgeId, String name) throws RestException{ - throw new UnsupportedOperationException("Method availble from ..."); -}; - -}; - diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_6_0/actions/ActionChannels_impl_ari_1_6_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_6_0/actions/ActionChannels_impl_ari_1_6_0.java deleted file mode 100644 index d65529aa..00000000 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_6_0/actions/ActionChannels_impl_ari_1_6_0.java +++ /dev/null @@ -1,947 +0,0 @@ -package ch.loway.oss.ari4java.generated.ari_1_6_0.actions; - -// ---------------------------------------------------- -// THIS CLASS WAS GENERATED AUTOMATICALLY -// PLEASE DO NOT EDIT -// Generated on: Tue Dec 19 09:55:49 CET 2017 -// ---------------------------------------------------- - -import ch.loway.oss.ari4java.generated.*; -import java.util.Date; -import java.util.List; -import java.util.Map; -import java.util.ArrayList; -import ch.loway.oss.ari4java.tools.BaseAriAction; -import ch.loway.oss.ari4java.tools.RestException; -import ch.loway.oss.ari4java.tools.AriCallback; -import ch.loway.oss.ari4java.tools.HttpParam; -import ch.loway.oss.ari4java.tools.HttpResponse; -import com.fasterxml.jackson.core.type.TypeReference; -import ch.loway.oss.ari4java.generated.ari_1_6_0.models.*; - -/********************************************************** - * - * Generated by: Apis - *********************************************************/ - - -public class ActionChannels_impl_ari_1_6_0 extends BaseAriAction implements ActionChannels { -/********************************************************** - * Active channels - * - * List all active channels in Asterisk. - *********************************************************/ -private void buildList() { -reset(); -url = "/channels"; -method = "GET"; -} - -@Override -public List list() throws RestException { -buildList(); -String json = httpActionSync(); -return deserializeJsonAsAbstractList( json, - new TypeReference>() {} ); -} - -@Override -public void list(AriCallback> callback) { -buildList(); -httpActionAsync(callback, new TypeReference>() {}); -} - -/********************************************************** - * Active channels - * - * Create a new channel (originate). - * The new channel is created immediately and a snapshot of it returned. If a Stasis application is provided it will be automatically subscribed to the originated channel for further events and updates. - *********************************************************/ -private void buildOriginate(String endpoint, String extension, String context, long priority, String app, String appArgs, String callerId, int timeout, Map variables, String channelId, String otherChannelId) { -reset(); -url = "/channels"; -method = "POST"; -lParamQuery.add( HttpParam.build( "endpoint", endpoint) ); -lParamQuery.add( HttpParam.build( "extension", extension) ); -lParamQuery.add( HttpParam.build( "context", context) ); -lParamQuery.add( HttpParam.build( "priority", priority) ); -lParamQuery.add( HttpParam.build( "app", app) ); -lParamQuery.add( HttpParam.build( "appArgs", appArgs) ); -lParamQuery.add( HttpParam.build( "callerId", callerId) ); -lParamQuery.add( HttpParam.build( "timeout", timeout) ); -lParamBody.addAll( HttpParam.build( "variables", variables) ); -lParamQuery.add( HttpParam.build( "channelId", channelId) ); -lParamQuery.add( HttpParam.build( "otherChannelId", otherChannelId) ); -lE.add( HttpResponse.build( 400, "Invalid parameters for originating a channel.") ); -} - -@Override -public Channel originate(String endpoint, String extension, String context, long priority, String app, String appArgs, String callerId, int timeout, Map variables, String channelId, String otherChannelId) throws RestException { -buildOriginate(endpoint, extension, context, priority, app, appArgs, callerId, timeout, variables, channelId, otherChannelId); -String json = httpActionSync(); -return deserializeJson( json, Channel_impl_ari_1_6_0.class ); -} - -@Override -public void originate(String endpoint, String extension, String context, long priority, String app, String appArgs, String callerId, int timeout, Map variables, String channelId, String otherChannelId, AriCallback callback) { -buildOriginate(endpoint, extension, context, priority, app, appArgs, callerId, timeout, variables, channelId, otherChannelId); -httpActionAsync(callback, Channel_impl_ari_1_6_0.class); -} - -/********************************************************** - * Active channel - * - * Channel details. - *********************************************************/ -private void buildGet(String channelId) { -reset(); -url = "/channels/" + channelId + ""; -method = "GET"; -lE.add( HttpResponse.build( 404, "Channel not found") ); -} - -@Override -public Channel get(String channelId) throws RestException { -buildGet(channelId); -String json = httpActionSync(); -return deserializeJson( json, Channel_impl_ari_1_6_0.class ); -} - -@Override -public void get(String channelId, AriCallback callback) { -buildGet(channelId); -httpActionAsync(callback, Channel_impl_ari_1_6_0.class); -} - -/********************************************************** - * Active channel - * - * Create a new channel (originate with id). - * The new channel is created immediately and a snapshot of it returned. If a Stasis application is provided it will be automatically subscribed to the originated channel for further events and updates. - *********************************************************/ -private void buildOriginateWithId(String channelId, String endpoint, String extension, String context, long priority, String app, String appArgs, String callerId, int timeout, Map variables, String otherChannelId) { -reset(); -url = "/channels/" + channelId + ""; -method = "POST"; -lParamQuery.add( HttpParam.build( "endpoint", endpoint) ); -lParamQuery.add( HttpParam.build( "extension", extension) ); -lParamQuery.add( HttpParam.build( "context", context) ); -lParamQuery.add( HttpParam.build( "priority", priority) ); -lParamQuery.add( HttpParam.build( "app", app) ); -lParamQuery.add( HttpParam.build( "appArgs", appArgs) ); -lParamQuery.add( HttpParam.build( "callerId", callerId) ); -lParamQuery.add( HttpParam.build( "timeout", timeout) ); -lParamBody.addAll( HttpParam.build( "variables", variables) ); -lParamQuery.add( HttpParam.build( "otherChannelId", otherChannelId) ); -lE.add( HttpResponse.build( 400, "Invalid parameters for originating a channel.") ); -} - -@Override -public Channel originateWithId(String channelId, String endpoint, String extension, String context, long priority, String app, String appArgs, String callerId, int timeout, Map variables, String otherChannelId) throws RestException { -buildOriginateWithId(channelId, endpoint, extension, context, priority, app, appArgs, callerId, timeout, variables, otherChannelId); -String json = httpActionSync(); -return deserializeJson( json, Channel_impl_ari_1_6_0.class ); -} - -@Override -public void originateWithId(String channelId, String endpoint, String extension, String context, long priority, String app, String appArgs, String callerId, int timeout, Map variables, String otherChannelId, AriCallback callback) { -buildOriginateWithId(channelId, endpoint, extension, context, priority, app, appArgs, callerId, timeout, variables, otherChannelId); -httpActionAsync(callback, Channel_impl_ari_1_6_0.class); -} - -/********************************************************** - * Active channel - * - * Delete (i.e. hangup) a channel. - *********************************************************/ -private void buildHangup(String channelId, String reason) { -reset(); -url = "/channels/" + channelId + ""; -method = "DELETE"; -lParamQuery.add( HttpParam.build( "reason", reason) ); -lE.add( HttpResponse.build( 400, "Invalid reason for hangup provided") ); -lE.add( HttpResponse.build( 404, "Channel not found") ); -} - -@Override -public void hangup(String channelId, String reason) throws RestException { -buildHangup(channelId, reason); -String json = httpActionSync(); -} - -@Override -public void hangup(String channelId, String reason, AriCallback callback) { -buildHangup(channelId, reason); -httpActionAsync(callback); -} - -/********************************************************** - * Answer a channel - * - * Answer a channel. - *********************************************************/ -private void buildAnswer(String channelId) { -reset(); -url = "/channels/" + channelId + "/answer"; -method = "POST"; -lE.add( HttpResponse.build( 404, "Channel not found") ); -lE.add( HttpResponse.build( 409, "Channel not in a Stasis application") ); -} - -@Override -public void answer(String channelId) throws RestException { -buildAnswer(channelId); -String json = httpActionSync(); -} - -@Override -public void answer(String channelId, AriCallback callback) { -buildAnswer(channelId); -httpActionAsync(callback); -} - -/********************************************************** - * Exit application; continue execution in the dialplan - * - * Exit application; continue execution in the dialplan. - *********************************************************/ -private void buildContinueInDialplan(String channelId, String context, String extension, int priority) { -reset(); -url = "/channels/" + channelId + "/continue"; -method = "POST"; -lParamQuery.add( HttpParam.build( "context", context) ); -lParamQuery.add( HttpParam.build( "extension", extension) ); -lParamQuery.add( HttpParam.build( "priority", priority) ); -lE.add( HttpResponse.build( 404, "Channel not found") ); -lE.add( HttpResponse.build( 409, "Channel not in a Stasis application") ); -} - -@Override -public void continueInDialplan(String channelId, String context, String extension, int priority) throws RestException { -buildContinueInDialplan(channelId, context, extension, priority); -String json = httpActionSync(); -} - -@Override -public void continueInDialplan(String channelId, String context, String extension, int priority, AriCallback callback) { -buildContinueInDialplan(channelId, context, extension, priority); -httpActionAsync(callback); -} - -/********************************************************** - * Send DTMF to a channel - * - * Send provided DTMF to a given channel. - *********************************************************/ -private void buildSendDTMF(String channelId, String dtmf, int before, int between, int duration, int after) { -reset(); -url = "/channels/" + channelId + "/dtmf"; -method = "POST"; -lParamQuery.add( HttpParam.build( "dtmf", dtmf) ); -lParamQuery.add( HttpParam.build( "before", before) ); -lParamQuery.add( HttpParam.build( "between", between) ); -lParamQuery.add( HttpParam.build( "duration", duration) ); -lParamQuery.add( HttpParam.build( "after", after) ); -lE.add( HttpResponse.build( 400, "DTMF is required") ); -lE.add( HttpResponse.build( 404, "Channel not found") ); -lE.add( HttpResponse.build( 409, "Channel not in a Stasis application") ); -} - -@Override -public void sendDTMF(String channelId, String dtmf, int before, int between, int duration, int after) throws RestException { -buildSendDTMF(channelId, dtmf, before, between, duration, after); -String json = httpActionSync(); -} - -@Override -public void sendDTMF(String channelId, String dtmf, int before, int between, int duration, int after, AriCallback callback) { -buildSendDTMF(channelId, dtmf, before, between, duration, after); -httpActionAsync(callback); -} - -/********************************************************** - * Put a channel on hold - * - * Hold a channel. - *********************************************************/ -private void buildHold(String channelId) { -reset(); -url = "/channels/" + channelId + "/hold"; -method = "POST"; -lE.add( HttpResponse.build( 404, "Channel not found") ); -lE.add( HttpResponse.build( 409, "Channel not in a Stasis application") ); -} - -@Override -public void hold(String channelId) throws RestException { -buildHold(channelId); -String json = httpActionSync(); -} - -@Override -public void hold(String channelId, AriCallback callback) { -buildHold(channelId); -httpActionAsync(callback); -} - -/********************************************************** - * Put a channel on hold - * - * Remove a channel from hold. - *********************************************************/ -private void buildUnhold(String channelId) { -reset(); -url = "/channels/" + channelId + "/hold"; -method = "DELETE"; -lE.add( HttpResponse.build( 404, "Channel not found") ); -lE.add( HttpResponse.build( 409, "Channel not in a Stasis application") ); -} - -@Override -public void unhold(String channelId) throws RestException { -buildUnhold(channelId); -String json = httpActionSync(); -} - -@Override -public void unhold(String channelId, AriCallback callback) { -buildUnhold(channelId); -httpActionAsync(callback); -} - -/********************************************************** - * Play music on hold to a channel - * - * Play music on hold to a channel. - * Using media operations such as /play on a channel playing MOH in this manner will suspend MOH without resuming automatically. If continuing music on hold is desired, the stasis application must reinitiate music on hold. - *********************************************************/ -private void buildStartMoh(String channelId, String mohClass) { -reset(); -url = "/channels/" + channelId + "/moh"; -method = "POST"; -lParamQuery.add( HttpParam.build( "mohClass", mohClass) ); -lE.add( HttpResponse.build( 404, "Channel not found") ); -lE.add( HttpResponse.build( 409, "Channel not in a Stasis application") ); -} - -@Override -public void startMoh(String channelId, String mohClass) throws RestException { -buildStartMoh(channelId, mohClass); -String json = httpActionSync(); -} - -@Override -public void startMoh(String channelId, String mohClass, AriCallback callback) { -buildStartMoh(channelId, mohClass); -httpActionAsync(callback); -} - -/********************************************************** - * Play music on hold to a channel - * - * Stop playing music on hold to a channel. - *********************************************************/ -private void buildStopMoh(String channelId) { -reset(); -url = "/channels/" + channelId + "/moh"; -method = "DELETE"; -lE.add( HttpResponse.build( 404, "Channel not found") ); -lE.add( HttpResponse.build( 409, "Channel not in a Stasis application") ); -} - -@Override -public void stopMoh(String channelId) throws RestException { -buildStopMoh(channelId); -String json = httpActionSync(); -} - -@Override -public void stopMoh(String channelId, AriCallback callback) { -buildStopMoh(channelId); -httpActionAsync(callback); -} - -/********************************************************** - * Mute a channel - * - * Mute a channel. - *********************************************************/ -private void buildMute(String channelId, String direction) { -reset(); -url = "/channels/" + channelId + "/mute"; -method = "POST"; -lParamQuery.add( HttpParam.build( "direction", direction) ); -lE.add( HttpResponse.build( 404, "Channel not found") ); -lE.add( HttpResponse.build( 409, "Channel not in a Stasis application") ); -} - -@Override -public void mute(String channelId, String direction) throws RestException { -buildMute(channelId, direction); -String json = httpActionSync(); -} - -@Override -public void mute(String channelId, String direction, AriCallback callback) { -buildMute(channelId, direction); -httpActionAsync(callback); -} - -/********************************************************** - * Mute a channel - * - * Unmute a channel. - *********************************************************/ -private void buildUnmute(String channelId, String direction) { -reset(); -url = "/channels/" + channelId + "/mute"; -method = "DELETE"; -lParamQuery.add( HttpParam.build( "direction", direction) ); -lE.add( HttpResponse.build( 404, "Channel not found") ); -lE.add( HttpResponse.build( 409, "Channel not in a Stasis application") ); -} - -@Override -public void unmute(String channelId, String direction) throws RestException { -buildUnmute(channelId, direction); -String json = httpActionSync(); -} - -@Override -public void unmute(String channelId, String direction, AriCallback callback) { -buildUnmute(channelId, direction); -httpActionAsync(callback); -} - -/********************************************************** - * Play media to a channel - * - * Start playback of media. - * The media URI may be any of a number of URI's. Currently sound:, recording:, number:, digits:, characters:, and tone: URI's are supported. This operation creates a playback resource that can be used to control the playback of media (pause, rewind, fast forward, etc.) - *********************************************************/ -private void buildPlay(String channelId, String media, String lang, int offsetms, int skipms, String playbackId) { -reset(); -url = "/channels/" + channelId + "/play"; -method = "POST"; -lParamQuery.add( HttpParam.build( "media", media) ); -lParamQuery.add( HttpParam.build( "lang", lang) ); -lParamQuery.add( HttpParam.build( "offsetms", offsetms) ); -lParamQuery.add( HttpParam.build( "skipms", skipms) ); -lParamQuery.add( HttpParam.build( "playbackId", playbackId) ); -lE.add( HttpResponse.build( 404, "Channel not found") ); -lE.add( HttpResponse.build( 409, "Channel not in a Stasis application") ); -} - -@Override -public Playback play(String channelId, String media, String lang, int offsetms, int skipms, String playbackId) throws RestException { -buildPlay(channelId, media, lang, offsetms, skipms, playbackId); -String json = httpActionSync(); -return deserializeJson( json, Playback_impl_ari_1_6_0.class ); -} - -@Override -public void play(String channelId, String media, String lang, int offsetms, int skipms, String playbackId, AriCallback callback) { -buildPlay(channelId, media, lang, offsetms, skipms, playbackId); -httpActionAsync(callback, Playback_impl_ari_1_6_0.class); -} - -/********************************************************** - * Play media to a channel - * - * Start playback of media and specify the playbackId. - * The media URI may be any of a number of URI's. Currently sound: and recording: URI's are supported. This operation creates a playback resource that can be used to control the playback of media (pause, rewind, fast forward, etc.) - *********************************************************/ -private void buildPlayWithId(String channelId, String playbackId, String media, String lang, int offsetms, int skipms) { -reset(); -url = "/channels/" + channelId + "/play/" + playbackId + ""; -method = "POST"; -lParamQuery.add( HttpParam.build( "media", media) ); -lParamQuery.add( HttpParam.build( "lang", lang) ); -lParamQuery.add( HttpParam.build( "offsetms", offsetms) ); -lParamQuery.add( HttpParam.build( "skipms", skipms) ); -lE.add( HttpResponse.build( 404, "Channel not found") ); -lE.add( HttpResponse.build( 409, "Channel not in a Stasis application") ); -} - -@Override -public Playback playWithId(String channelId, String playbackId, String media, String lang, int offsetms, int skipms) throws RestException { -buildPlayWithId(channelId, playbackId, media, lang, offsetms, skipms); -String json = httpActionSync(); -return deserializeJson( json, Playback_impl_ari_1_6_0.class ); -} - -@Override -public void playWithId(String channelId, String playbackId, String media, String lang, int offsetms, int skipms, AriCallback callback) { -buildPlayWithId(channelId, playbackId, media, lang, offsetms, skipms); -httpActionAsync(callback, Playback_impl_ari_1_6_0.class); -} - -/********************************************************** - * Record audio from a channel - * - * Start a recording. - * Record audio from a channel. Note that this will not capture audio sent to the channel. The bridge itself has a record feature if that's what you want. - *********************************************************/ -private void buildRecord(String channelId, String name, String format, int maxDurationSeconds, int maxSilenceSeconds, String ifExists, boolean beep, String terminateOn) { -reset(); -url = "/channels/" + channelId + "/record"; -method = "POST"; -lParamQuery.add( HttpParam.build( "name", name) ); -lParamQuery.add( HttpParam.build( "format", format) ); -lParamQuery.add( HttpParam.build( "maxDurationSeconds", maxDurationSeconds) ); -lParamQuery.add( HttpParam.build( "maxSilenceSeconds", maxSilenceSeconds) ); -lParamQuery.add( HttpParam.build( "ifExists", ifExists) ); -lParamQuery.add( HttpParam.build( "beep", beep) ); -lParamQuery.add( HttpParam.build( "terminateOn", terminateOn) ); -lE.add( HttpResponse.build( 400, "Invalid parameters") ); -lE.add( HttpResponse.build( 404, "Channel not found") ); -lE.add( HttpResponse.build( 409, "Channel is not in a Stasis application; the channel is currently bridged with other hcannels; A recording with the same name already exists on the system and can not be overwritten because it is in progress or ifExists=fail") ); -lE.add( HttpResponse.build( 422, "The format specified is unknown on this system") ); -} - -@Override -public LiveRecording record(String channelId, String name, String format, int maxDurationSeconds, int maxSilenceSeconds, String ifExists, boolean beep, String terminateOn) throws RestException { -buildRecord(channelId, name, format, maxDurationSeconds, maxSilenceSeconds, ifExists, beep, terminateOn); -String json = httpActionSync(); -return deserializeJson( json, LiveRecording_impl_ari_1_6_0.class ); -} - -@Override -public void record(String channelId, String name, String format, int maxDurationSeconds, int maxSilenceSeconds, String ifExists, boolean beep, String terminateOn, AriCallback callback) { -buildRecord(channelId, name, format, maxDurationSeconds, maxSilenceSeconds, ifExists, beep, terminateOn); -httpActionAsync(callback, LiveRecording_impl_ari_1_6_0.class); -} - -/********************************************************** - * Send a ringing indication to a channel - * - * Indicate ringing to a channel. - *********************************************************/ -private void buildRing(String channelId) { -reset(); -url = "/channels/" + channelId + "/ring"; -method = "POST"; -lE.add( HttpResponse.build( 404, "Channel not found") ); -lE.add( HttpResponse.build( 409, "Channel not in a Stasis application") ); -} - -@Override -public void ring(String channelId) throws RestException { -buildRing(channelId); -String json = httpActionSync(); -} - -@Override -public void ring(String channelId, AriCallback callback) { -buildRing(channelId); -httpActionAsync(callback); -} - -/********************************************************** - * Send a ringing indication to a channel - * - * Stop ringing indication on a channel if locally generated. - *********************************************************/ -private void buildRingStop(String channelId) { -reset(); -url = "/channels/" + channelId + "/ring"; -method = "DELETE"; -lE.add( HttpResponse.build( 404, "Channel not found") ); -lE.add( HttpResponse.build( 409, "Channel not in a Stasis application") ); -} - -@Override -public void ringStop(String channelId) throws RestException { -buildRingStop(channelId); -String json = httpActionSync(); -} - -@Override -public void ringStop(String channelId, AriCallback callback) { -buildRingStop(channelId); -httpActionAsync(callback); -} - -/********************************************************** - * Play silence to a channel - * - * Play silence to a channel. - * Using media operations such as /play on a channel playing silence in this manner will suspend silence without resuming automatically. - *********************************************************/ -private void buildStartSilence(String channelId) { -reset(); -url = "/channels/" + channelId + "/silence"; -method = "POST"; -lE.add( HttpResponse.build( 404, "Channel not found") ); -lE.add( HttpResponse.build( 409, "Channel not in a Stasis application") ); -} - -@Override -public void startSilence(String channelId) throws RestException { -buildStartSilence(channelId); -String json = httpActionSync(); -} - -@Override -public void startSilence(String channelId, AriCallback callback) { -buildStartSilence(channelId); -httpActionAsync(callback); -} - -/********************************************************** - * Play silence to a channel - * - * Stop playing silence to a channel. - *********************************************************/ -private void buildStopSilence(String channelId) { -reset(); -url = "/channels/" + channelId + "/silence"; -method = "DELETE"; -lE.add( HttpResponse.build( 404, "Channel not found") ); -lE.add( HttpResponse.build( 409, "Channel not in a Stasis application") ); -} - -@Override -public void stopSilence(String channelId) throws RestException { -buildStopSilence(channelId); -String json = httpActionSync(); -} - -@Override -public void stopSilence(String channelId, AriCallback callback) { -buildStopSilence(channelId); -httpActionAsync(callback); -} - -/********************************************************** - * Snoop (spy/whisper) on a channel - * - * Start snooping. - * Snoop (spy/whisper) on a specific channel. - *********************************************************/ -private void buildSnoopChannel(String channelId, String spy, String whisper, String app, String appArgs, String snoopId) { -reset(); -url = "/channels/" + channelId + "/snoop"; -method = "POST"; -lParamQuery.add( HttpParam.build( "spy", spy) ); -lParamQuery.add( HttpParam.build( "whisper", whisper) ); -lParamQuery.add( HttpParam.build( "app", app) ); -lParamQuery.add( HttpParam.build( "appArgs", appArgs) ); -lParamQuery.add( HttpParam.build( "snoopId", snoopId) ); -lE.add( HttpResponse.build( 400, "Invalid parameters") ); -lE.add( HttpResponse.build( 404, "Channel not found") ); -} - -@Override -public Channel snoopChannel(String channelId, String spy, String whisper, String app, String appArgs, String snoopId) throws RestException { -buildSnoopChannel(channelId, spy, whisper, app, appArgs, snoopId); -String json = httpActionSync(); -return deserializeJson( json, Channel_impl_ari_1_6_0.class ); -} - -@Override -public void snoopChannel(String channelId, String spy, String whisper, String app, String appArgs, String snoopId, AriCallback callback) { -buildSnoopChannel(channelId, spy, whisper, app, appArgs, snoopId); -httpActionAsync(callback, Channel_impl_ari_1_6_0.class); -} - -/********************************************************** - * Snoop (spy/whisper) on a channel - * - * Start snooping. - * Snoop (spy/whisper) on a specific channel. - *********************************************************/ -private void buildSnoopChannelWithId(String channelId, String snoopId, String spy, String whisper, String app, String appArgs) { -reset(); -url = "/channels/" + channelId + "/snoop/" + snoopId + ""; -method = "POST"; -lParamQuery.add( HttpParam.build( "spy", spy) ); -lParamQuery.add( HttpParam.build( "whisper", whisper) ); -lParamQuery.add( HttpParam.build( "app", app) ); -lParamQuery.add( HttpParam.build( "appArgs", appArgs) ); -lE.add( HttpResponse.build( 400, "Invalid parameters") ); -lE.add( HttpResponse.build( 404, "Channel not found") ); -} - -@Override -public Channel snoopChannelWithId(String channelId, String snoopId, String spy, String whisper, String app, String appArgs) throws RestException { -buildSnoopChannelWithId(channelId, snoopId, spy, whisper, app, appArgs); -String json = httpActionSync(); -return deserializeJson( json, Channel_impl_ari_1_6_0.class ); -} - -@Override -public void snoopChannelWithId(String channelId, String snoopId, String spy, String whisper, String app, String appArgs, AriCallback callback) { -buildSnoopChannelWithId(channelId, snoopId, spy, whisper, app, appArgs); -httpActionAsync(callback, Channel_impl_ari_1_6_0.class); -} - -/********************************************************** - * Variables on a channel - * - * Get the value of a channel variable or function. - *********************************************************/ -private void buildGetChannelVar(String channelId, String variable) { -reset(); -url = "/channels/" + channelId + "/variable"; -method = "GET"; -lParamQuery.add( HttpParam.build( "variable", variable) ); -lE.add( HttpResponse.build( 400, "Missing variable parameter.") ); -lE.add( HttpResponse.build( 404, "Channel not found") ); -lE.add( HttpResponse.build( 409, "Channel not in a Stasis application") ); -} - -@Override -public Variable getChannelVar(String channelId, String variable) throws RestException { -buildGetChannelVar(channelId, variable); -String json = httpActionSync(); -return deserializeJson( json, Variable_impl_ari_1_6_0.class ); -} - -@Override -public void getChannelVar(String channelId, String variable, AriCallback callback) { -buildGetChannelVar(channelId, variable); -httpActionAsync(callback, Variable_impl_ari_1_6_0.class); -} - -/********************************************************** - * Variables on a channel - * - * Set the value of a channel variable or function. - *********************************************************/ -private void buildSetChannelVar(String channelId, String variable, String value) { -reset(); -url = "/channels/" + channelId + "/variable"; -method = "POST"; -lParamQuery.add( HttpParam.build( "variable", variable) ); -lParamQuery.add( HttpParam.build( "value", value) ); -lE.add( HttpResponse.build( 400, "Missing variable parameter.") ); -lE.add( HttpResponse.build( 404, "Channel not found") ); -lE.add( HttpResponse.build( 409, "Channel not in a Stasis application") ); -} - -@Override -public void setChannelVar(String channelId, String variable, String value) throws RestException { -buildSetChannelVar(channelId, variable, value); -String json = httpActionSync(); -} - -@Override -public void setChannelVar(String channelId, String variable, String value, AriCallback callback) { -buildSetChannelVar(channelId, variable, value); -httpActionAsync(callback); -} - -/********************************************************** - * - * - * @since ari_1_8_0 - *********************************************************/ -public void redirect(String channelId, String endpoint, AriCallback callback){ - throw new UnsupportedOperationException("Method availble from ..."); -}; - -/********************************************************** - * - * - * @since ari_1_7_0 - *********************************************************/ -public void originate(String endpoint, String extension, String context, long priority, String label, String app, String appArgs, String callerId, int timeout, Map variables, String channelId, String otherChannelId, String originator, AriCallback callback){ - throw new UnsupportedOperationException("Method availble from ..."); -}; - -/********************************************************** - * Start snooping. - * Snoop (spy/whisper) on a specific channel. - * - * @since ari_0_0_1 - *********************************************************/ -public Channel snoopChannel(String channelId, String spy, String whisper, String app, String appArgs) throws RestException{ - throw new UnsupportedOperationException("Method availble from ..."); -}; - -/********************************************************** - * - * - * @since ari_1_10_0 - *********************************************************/ -public void dial(String channelId, String caller, int timeout, AriCallback callback){ - throw new UnsupportedOperationException("Method availble from ..."); -}; - -/********************************************************** - * - * - * @since ari_1_10_0 - *********************************************************/ -public void originateWithId(String channelId, String endpoint, String extension, String context, long priority, String label, String app, String appArgs, String callerId, int timeout, Map variables, String otherChannelId, String originator, String formats, AriCallback callback){ - throw new UnsupportedOperationException("Method availble from ..."); -}; - -/********************************************************** - * Exit application{ - throw new UnsupportedOperationException("Method availble from ..."); -}; continue execution in the dialplan. - * - * - * @since ari_1_7_0 - *********************************************************/ -public void continueInDialplan(String channelId, String context, String extension, int priority, String label) throws RestException{ - throw new UnsupportedOperationException("Method availble from ..."); -}; - -/********************************************************** - * Start playback of media. - * The media URI may be any of a number of URI's. Currently sound: and recording: URI's are supported. This operation creates a playback resource that can be used to control the playback of media (pause, rewind, fast forward, etc.) - * - * @since ari_0_0_1 - *********************************************************/ -public Playback play(String channelId, String media, String lang, int offsetms, int skipms) throws RestException{ - throw new UnsupportedOperationException("Method availble from ..."); -}; - -/********************************************************** - * - * - * @since ari_0_0_1 - *********************************************************/ -public void play(String channelId, String media, String lang, int offsetms, int skipms, AriCallback callback){ - throw new UnsupportedOperationException("Method availble from ..."); -}; - -/********************************************************** - * - * - * @since ari_0_0_1 - *********************************************************/ -public void snoopChannel(String channelId, String spy, String whisper, String app, String appArgs, AriCallback callback){ - throw new UnsupportedOperationException("Method availble from ..."); -}; - -/********************************************************** - * Create a new channel (originate). - * The new channel is created immediately and a snapshot of it returned. If a Stasis application is provided it will be automatically subscribed to the originated channel for further events and updates. - * - * @since ari_1_7_0 - *********************************************************/ -public Channel originate(String endpoint, String extension, String context, long priority, String label, String app, String appArgs, String callerId, int timeout, Map variables, String channelId, String otherChannelId, String originator) throws RestException{ - throw new UnsupportedOperationException("Method availble from ..."); -}; - -/********************************************************** - * Create a new channel (originate with id). - * The new channel is created immediately and a snapshot of it returned. If a Stasis application is provided it will be automatically subscribed to the originated channel for further events and updates. - * - * @since ari_1_7_0 - *********************************************************/ -public Channel originateWithId(String channelId, String endpoint, String extension, String context, long priority, String label, String app, String appArgs, String callerId, int timeout, Map variables, String otherChannelId, String originator) throws RestException{ - throw new UnsupportedOperationException("Method availble from ..."); -}; - -/********************************************************** - * Create a new channel (originate). - * The new channel is created immediately and a snapshot of it returned. If a Stasis application is provided it will be automatically subscribed to the originated channel for further events and updates. - * - * @since ari_1_10_0 - *********************************************************/ -public Channel originate(String endpoint, String extension, String context, long priority, String label, String app, String appArgs, String callerId, int timeout, Map variables, String channelId, String otherChannelId, String originator, String formats) throws RestException{ - throw new UnsupportedOperationException("Method availble from ..."); -}; - -/********************************************************** - * Create a new channel (originate with id). - * The new channel is created immediately and a snapshot of it returned. If a Stasis application is provided it will be automatically subscribed to the originated channel for further events and updates. - * - * @since ari_1_10_0 - *********************************************************/ -public Channel originateWithId(String channelId, String endpoint, String extension, String context, long priority, String label, String app, String appArgs, String callerId, int timeout, Map variables, String otherChannelId, String originator, String formats) throws RestException{ - throw new UnsupportedOperationException("Method availble from ..."); -}; - -/********************************************************** - * Create a new channel (originate). - * The new channel is created immediately and a snapshot of it returned. If a Stasis application is provided it will be automatically subscribed to the originated channel for further events and updates. - * - * @since ari_0_0_1 - *********************************************************/ -public Channel originate(String endpoint, String extension, String context, long priority, String app, String appArgs, String callerId, int timeout) throws RestException{ - throw new UnsupportedOperationException("Method availble from ..."); -}; - -/********************************************************** - * - * - * @since ari_1_7_0 - *********************************************************/ -public void originateWithId(String channelId, String endpoint, String extension, String context, long priority, String label, String app, String appArgs, String callerId, int timeout, Map variables, String otherChannelId, String originator, AriCallback callback){ - throw new UnsupportedOperationException("Method availble from ..."); -}; - -/********************************************************** - * - * - * @since ari_1_7_0 - *********************************************************/ -public void continueInDialplan(String channelId, String context, String extension, int priority, String label, AriCallback callback){ - throw new UnsupportedOperationException("Method availble from ..."); -}; - -/********************************************************** - * Dial a created channel. - * - * - * @since ari_1_10_0 - *********************************************************/ -public void dial(String channelId, String caller, int timeout) throws RestException{ - throw new UnsupportedOperationException("Method availble from ..."); -}; - -/********************************************************** - * - * - * @since ari_1_10_0 - *********************************************************/ -public void create(String endpoint, String app, String appArgs, String channelId, String otherChannelId, String originator, String formats, AriCallback callback){ - throw new UnsupportedOperationException("Method availble from ..."); -}; - -/********************************************************** - * Create channel. - * - * - * @since ari_1_10_0 - *********************************************************/ -public Channel create(String endpoint, String app, String appArgs, String channelId, String otherChannelId, String originator, String formats) throws RestException{ - throw new UnsupportedOperationException("Method availble from ..."); -}; - -/********************************************************** - * - * - * @since ari_1_10_0 - *********************************************************/ -public void originate(String endpoint, String extension, String context, long priority, String label, String app, String appArgs, String callerId, int timeout, Map variables, String channelId, String otherChannelId, String originator, String formats, AriCallback callback){ - throw new UnsupportedOperationException("Method availble from ..."); -}; - -/********************************************************** - * Redirect the channel to a different location. - * - * - * @since ari_1_8_0 - *********************************************************/ -public void redirect(String channelId, String endpoint) throws RestException{ - throw new UnsupportedOperationException("Method availble from ..."); -}; - -/********************************************************** - * - * - * @since ari_0_0_1 - *********************************************************/ -public void originate(String endpoint, String extension, String context, long priority, String app, String appArgs, String callerId, int timeout, AriCallback callback){ - throw new UnsupportedOperationException("Method availble from ..."); -}; - -}; - diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_6_0/actions/ActionDeviceStates_impl_ari_1_6_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_6_0/actions/ActionDeviceStates_impl_ari_1_6_0.java deleted file mode 100644 index bf3324c3..00000000 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_6_0/actions/ActionDeviceStates_impl_ari_1_6_0.java +++ /dev/null @@ -1,131 +0,0 @@ -package ch.loway.oss.ari4java.generated.ari_1_6_0.actions; - -// ---------------------------------------------------- -// THIS CLASS WAS GENERATED AUTOMATICALLY -// PLEASE DO NOT EDIT -// Generated on: Tue Dec 19 09:55:49 CET 2017 -// ---------------------------------------------------- - -import ch.loway.oss.ari4java.generated.*; -import java.util.Date; -import java.util.List; -import java.util.Map; -import java.util.ArrayList; -import ch.loway.oss.ari4java.tools.BaseAriAction; -import ch.loway.oss.ari4java.tools.RestException; -import ch.loway.oss.ari4java.tools.AriCallback; -import ch.loway.oss.ari4java.tools.HttpParam; -import ch.loway.oss.ari4java.tools.HttpResponse; -import com.fasterxml.jackson.core.type.TypeReference; -import ch.loway.oss.ari4java.generated.ari_1_6_0.models.*; - -/********************************************************** - * - * Generated by: Apis - *********************************************************/ - - -public class ActionDeviceStates_impl_ari_1_6_0 extends BaseAriAction implements ActionDeviceStates { -/********************************************************** - * Device states - * - * List all ARI controlled device states. - *********************************************************/ -private void buildList() { -reset(); -url = "/deviceStates"; -method = "GET"; -} - -@Override -public List list() throws RestException { -buildList(); -String json = httpActionSync(); -return deserializeJsonAsAbstractList( json, - new TypeReference>() {} ); -} - -@Override -public void list(AriCallback> callback) { -buildList(); -httpActionAsync(callback, new TypeReference>() {}); -} - -/********************************************************** - * Device state - * - * Retrieve the current state of a device. - *********************************************************/ -private void buildGet(String deviceName) { -reset(); -url = "/deviceStates/" + deviceName + ""; -method = "GET"; -} - -@Override -public DeviceState get(String deviceName) throws RestException { -buildGet(deviceName); -String json = httpActionSync(); -return deserializeJson( json, DeviceState_impl_ari_1_6_0.class ); -} - -@Override -public void get(String deviceName, AriCallback callback) { -buildGet(deviceName); -httpActionAsync(callback, DeviceState_impl_ari_1_6_0.class); -} - -/********************************************************** - * Device state - * - * Change the state of a device controlled by ARI. (Note - implicitly creates the device state). - *********************************************************/ -private void buildUpdate(String deviceName, String deviceState) { -reset(); -url = "/deviceStates/" + deviceName + ""; -method = "PUT"; -lParamQuery.add( HttpParam.build( "deviceState", deviceState) ); -lE.add( HttpResponse.build( 404, "Device name is missing") ); -lE.add( HttpResponse.build( 409, "Uncontrolled device specified") ); -} - -@Override -public void update(String deviceName, String deviceState) throws RestException { -buildUpdate(deviceName, deviceState); -String json = httpActionSync(); -} - -@Override -public void update(String deviceName, String deviceState, AriCallback callback) { -buildUpdate(deviceName, deviceState); -httpActionAsync(callback); -} - -/********************************************************** - * Device state - * - * Destroy a device-state controlled by ARI. - *********************************************************/ -private void buildDelete(String deviceName) { -reset(); -url = "/deviceStates/" + deviceName + ""; -method = "DELETE"; -lE.add( HttpResponse.build( 404, "Device name is missing") ); -lE.add( HttpResponse.build( 409, "Uncontrolled device specified") ); -} - -@Override -public void delete(String deviceName) throws RestException { -buildDelete(deviceName); -String json = httpActionSync(); -} - -@Override -public void delete(String deviceName, AriCallback callback) { -buildDelete(deviceName); -httpActionAsync(callback); -} - -/** No missing signatures from interface */ -}; - diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_6_0/actions/ActionEndpoints_impl_ari_1_6_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_6_0/actions/ActionEndpoints_impl_ari_1_6_0.java deleted file mode 100644 index bd973222..00000000 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_6_0/actions/ActionEndpoints_impl_ari_1_6_0.java +++ /dev/null @@ -1,164 +0,0 @@ -package ch.loway.oss.ari4java.generated.ari_1_6_0.actions; - -// ---------------------------------------------------- -// THIS CLASS WAS GENERATED AUTOMATICALLY -// PLEASE DO NOT EDIT -// Generated on: Tue Dec 19 09:55:49 CET 2017 -// ---------------------------------------------------- - -import ch.loway.oss.ari4java.generated.*; -import java.util.Date; -import java.util.List; -import java.util.Map; -import java.util.ArrayList; -import ch.loway.oss.ari4java.tools.BaseAriAction; -import ch.loway.oss.ari4java.tools.RestException; -import ch.loway.oss.ari4java.tools.AriCallback; -import ch.loway.oss.ari4java.tools.HttpParam; -import ch.loway.oss.ari4java.tools.HttpResponse; -import com.fasterxml.jackson.core.type.TypeReference; -import ch.loway.oss.ari4java.generated.ari_1_6_0.models.*; - -/********************************************************** - * - * Generated by: Apis - *********************************************************/ - - -public class ActionEndpoints_impl_ari_1_6_0 extends BaseAriAction implements ActionEndpoints { -/********************************************************** - * Asterisk endpoints - * - * List all endpoints. - *********************************************************/ -private void buildList() { -reset(); -url = "/endpoints"; -method = "GET"; -} - -@Override -public List list() throws RestException { -buildList(); -String json = httpActionSync(); -return deserializeJsonAsAbstractList( json, - new TypeReference>() {} ); -} - -@Override -public void list(AriCallback> callback) { -buildList(); -httpActionAsync(callback, new TypeReference>() {}); -} - -/********************************************************** - * Send a message to some technology URI or endpoint. - * - * Send a message to some technology URI or endpoint. - *********************************************************/ -private void buildSendMessage(String to, String from, String body, Map variables) { -reset(); -url = "/endpoints/sendMessage"; -method = "PUT"; -lParamQuery.add( HttpParam.build( "to", to) ); -lParamQuery.add( HttpParam.build( "from", from) ); -lParamQuery.add( HttpParam.build( "body", body) ); -lParamBody.addAll( HttpParam.build( "variables", variables) ); -lE.add( HttpResponse.build( 404, "Endpoint not found") ); -} - -@Override -public void sendMessage(String to, String from, String body, Map variables) throws RestException { -buildSendMessage(to, from, body, variables); -String json = httpActionSync(); -} - -@Override -public void sendMessage(String to, String from, String body, Map variables, AriCallback callback) { -buildSendMessage(to, from, body, variables); -httpActionAsync(callback); -} - -/********************************************************** - * Asterisk endpoints - * - * List available endoints for a given endpoint technology. - *********************************************************/ -private void buildListByTech(String tech) { -reset(); -url = "/endpoints/" + tech + ""; -method = "GET"; -lE.add( HttpResponse.build( 404, "Endpoints not found") ); -} - -@Override -public List listByTech(String tech) throws RestException { -buildListByTech(tech); -String json = httpActionSync(); -return deserializeJsonAsAbstractList( json, - new TypeReference>() {} ); -} - -@Override -public void listByTech(String tech, AriCallback> callback) { -buildListByTech(tech); -httpActionAsync(callback, new TypeReference>() {}); -} - -/********************************************************** - * Single endpoint - * - * Details for an endpoint. - *********************************************************/ -private void buildGet(String tech, String resource) { -reset(); -url = "/endpoints/" + tech + "/" + resource + ""; -method = "GET"; -lE.add( HttpResponse.build( 400, "Invalid parameters for sending a message.") ); -lE.add( HttpResponse.build( 404, "Endpoints not found") ); -} - -@Override -public Endpoint get(String tech, String resource) throws RestException { -buildGet(tech, resource); -String json = httpActionSync(); -return deserializeJson( json, Endpoint_impl_ari_1_6_0.class ); -} - -@Override -public void get(String tech, String resource, AriCallback callback) { -buildGet(tech, resource); -httpActionAsync(callback, Endpoint_impl_ari_1_6_0.class); -} - -/********************************************************** - * Send a message to some endpoint in a technology. - * - * Send a message to some endpoint in a technology. - *********************************************************/ -private void buildSendMessageToEndpoint(String tech, String resource, String from, String body, Map variables) { -reset(); -url = "/endpoints/" + tech + "/" + resource + "/sendMessage"; -method = "PUT"; -lParamQuery.add( HttpParam.build( "from", from) ); -lParamQuery.add( HttpParam.build( "body", body) ); -lParamBody.addAll( HttpParam.build( "variables", variables) ); -lE.add( HttpResponse.build( 400, "Invalid parameters for sending a message.") ); -lE.add( HttpResponse.build( 404, "Endpoint not found") ); -} - -@Override -public void sendMessageToEndpoint(String tech, String resource, String from, String body, Map variables) throws RestException { -buildSendMessageToEndpoint(tech, resource, from, body, variables); -String json = httpActionSync(); -} - -@Override -public void sendMessageToEndpoint(String tech, String resource, String from, String body, Map variables, AriCallback callback) { -buildSendMessageToEndpoint(tech, resource, from, body, variables); -httpActionAsync(callback); -} - -/** No missing signatures from interface */ -}; - diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_6_0/actions/ActionEvents_impl_ari_1_6_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_6_0/actions/ActionEvents_impl_ari_1_6_0.java deleted file mode 100644 index 7b37472d..00000000 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_6_0/actions/ActionEvents_impl_ari_1_6_0.java +++ /dev/null @@ -1,102 +0,0 @@ -package ch.loway.oss.ari4java.generated.ari_1_6_0.actions; - -// ---------------------------------------------------- -// THIS CLASS WAS GENERATED AUTOMATICALLY -// PLEASE DO NOT EDIT -// Generated on: Tue Dec 19 09:55:49 CET 2017 -// ---------------------------------------------------- - -import ch.loway.oss.ari4java.generated.*; -import java.util.Date; -import java.util.List; -import java.util.Map; -import java.util.ArrayList; -import ch.loway.oss.ari4java.tools.BaseAriAction; -import ch.loway.oss.ari4java.tools.RestException; -import ch.loway.oss.ari4java.tools.AriCallback; -import ch.loway.oss.ari4java.tools.HttpParam; -import ch.loway.oss.ari4java.tools.HttpResponse; -import com.fasterxml.jackson.core.type.TypeReference; -import ch.loway.oss.ari4java.generated.ari_1_6_0.models.*; - -/********************************************************** - * - * Generated by: Apis - *********************************************************/ - - -public class ActionEvents_impl_ari_1_6_0 extends BaseAriAction implements ActionEvents { -/********************************************************** - * Events from Asterisk to applications - * - * WebSocket connection for events. - *********************************************************/ -private void buildEventWebsocket(String app) { -reset(); -url = "/events"; -method = "GET"; -lParamQuery.add( HttpParam.build( "app", app) ); -wsUpgrade = true; -} - -@Override -public Message eventWebsocket(String app) throws RestException { -throw new RestException("No synchronous operation on WebSocket"); -} - -@Override -public void eventWebsocket(String app, AriCallback callback) { -buildEventWebsocket(app); -httpActionAsync(callback, Message_impl_ari_1_6_0.class); -} - -/********************************************************** - * Stasis application user events - * - * Generate a user event. - *********************************************************/ -private void buildUserEvent(String eventName, String application, String source, Map variables) { -reset(); -url = "/events/user/" + eventName + ""; -method = "POST"; -lParamQuery.add( HttpParam.build( "application", application) ); -lParamQuery.add( HttpParam.build( "source", source) ); -lParamBody.addAll( HttpParam.build( "variables", variables) ); -lE.add( HttpResponse.build( 404, "Application does not exist.") ); -lE.add( HttpResponse.build( 422, "Event source not found.") ); -lE.add( HttpResponse.build( 400, "Invalid even tsource URI or userevent data.") ); -} - -@Override -public void userEvent(String eventName, String application, String source, Map variables) throws RestException { -buildUserEvent(eventName, application, source, variables); -String json = httpActionSync(); -} - -@Override -public void userEvent(String eventName, String application, String source, Map variables, AriCallback callback) { -buildUserEvent(eventName, application, source, variables); -httpActionAsync(callback); -} - -/********************************************************** - * WebSocket connection for events. - * - * - * @since ari_1_9_0 - *********************************************************/ -public Message eventWebsocket(String app, boolean subscribeAll) throws RestException{ - throw new UnsupportedOperationException("Method availble from ..."); -}; - -/********************************************************** - * - * - * @since ari_1_9_0 - *********************************************************/ -public void eventWebsocket(String app, boolean subscribeAll, AriCallback callback){ - throw new UnsupportedOperationException("Method availble from ..."); -}; - -}; - diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_6_0/actions/ActionPlaybacks_impl_ari_1_6_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_6_0/actions/ActionPlaybacks_impl_ari_1_6_0.java deleted file mode 100644 index 1245af06..00000000 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_6_0/actions/ActionPlaybacks_impl_ari_1_6_0.java +++ /dev/null @@ -1,107 +0,0 @@ -package ch.loway.oss.ari4java.generated.ari_1_6_0.actions; - -// ---------------------------------------------------- -// THIS CLASS WAS GENERATED AUTOMATICALLY -// PLEASE DO NOT EDIT -// Generated on: Tue Dec 19 09:55:49 CET 2017 -// ---------------------------------------------------- - -import ch.loway.oss.ari4java.generated.*; -import java.util.Date; -import java.util.List; -import java.util.Map; -import java.util.ArrayList; -import ch.loway.oss.ari4java.tools.BaseAriAction; -import ch.loway.oss.ari4java.tools.RestException; -import ch.loway.oss.ari4java.tools.AriCallback; -import ch.loway.oss.ari4java.tools.HttpParam; -import ch.loway.oss.ari4java.tools.HttpResponse; -import com.fasterxml.jackson.core.type.TypeReference; -import ch.loway.oss.ari4java.generated.ari_1_6_0.models.*; - -/********************************************************** - * - * Generated by: Apis - *********************************************************/ - - -public class ActionPlaybacks_impl_ari_1_6_0 extends BaseAriAction implements ActionPlaybacks { -/********************************************************** - * Control object for a playback operation. - * - * Get a playback's details. - *********************************************************/ -private void buildGet(String playbackId) { -reset(); -url = "/playbacks/" + playbackId + ""; -method = "GET"; -lE.add( HttpResponse.build( 404, "The playback cannot be found") ); -} - -@Override -public Playback get(String playbackId) throws RestException { -buildGet(playbackId); -String json = httpActionSync(); -return deserializeJson( json, Playback_impl_ari_1_6_0.class ); -} - -@Override -public void get(String playbackId, AriCallback callback) { -buildGet(playbackId); -httpActionAsync(callback, Playback_impl_ari_1_6_0.class); -} - -/********************************************************** - * Control object for a playback operation. - * - * Stop a playback. - *********************************************************/ -private void buildStop(String playbackId) { -reset(); -url = "/playbacks/" + playbackId + ""; -method = "DELETE"; -lE.add( HttpResponse.build( 404, "The playback cannot be found") ); -} - -@Override -public void stop(String playbackId) throws RestException { -buildStop(playbackId); -String json = httpActionSync(); -} - -@Override -public void stop(String playbackId, AriCallback callback) { -buildStop(playbackId); -httpActionAsync(callback); -} - -/********************************************************** - * Control object for a playback operation. - * - * Control a playback. - *********************************************************/ -private void buildControl(String playbackId, String operation) { -reset(); -url = "/playbacks/" + playbackId + "/control"; -method = "POST"; -lParamQuery.add( HttpParam.build( "operation", operation) ); -lE.add( HttpResponse.build( 400, "The provided operation parameter was invalid") ); -lE.add( HttpResponse.build( 404, "The playback cannot be found") ); -lE.add( HttpResponse.build( 409, "The operation cannot be performed in the playback's current state") ); -} - -@Override -public void control(String playbackId, String operation) throws RestException { -buildControl(playbackId, operation); -String json = httpActionSync(); -} - -@Override -public void control(String playbackId, String operation, AriCallback callback) { -buildControl(playbackId, operation); -httpActionAsync(callback); -} - -/** No missing signatures from interface */ -}; - diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_6_0/actions/ActionRecordings_impl_ari_1_6_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_6_0/actions/ActionRecordings_impl_ari_1_6_0.java deleted file mode 100644 index 1d9045e7..00000000 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_6_0/actions/ActionRecordings_impl_ari_1_6_0.java +++ /dev/null @@ -1,325 +0,0 @@ -package ch.loway.oss.ari4java.generated.ari_1_6_0.actions; - -// ---------------------------------------------------- -// THIS CLASS WAS GENERATED AUTOMATICALLY -// PLEASE DO NOT EDIT -// Generated on: Tue Dec 19 09:55:49 CET 2017 -// ---------------------------------------------------- - -import ch.loway.oss.ari4java.generated.*; -import java.util.Date; -import java.util.List; -import java.util.Map; -import java.util.ArrayList; -import ch.loway.oss.ari4java.tools.BaseAriAction; -import ch.loway.oss.ari4java.tools.RestException; -import ch.loway.oss.ari4java.tools.AriCallback; -import ch.loway.oss.ari4java.tools.HttpParam; -import ch.loway.oss.ari4java.tools.HttpResponse; -import com.fasterxml.jackson.core.type.TypeReference; -import ch.loway.oss.ari4java.generated.ari_1_6_0.models.*; - -/********************************************************** - * - * Generated by: Apis - *********************************************************/ - - -public class ActionRecordings_impl_ari_1_6_0 extends BaseAriAction implements ActionRecordings { -/********************************************************** - * A recording that is in progress - * - * List live recordings. - *********************************************************/ -private void buildGetLive(String recordingName) { -reset(); -url = "/recordings/live/" + recordingName + ""; -method = "GET"; -lE.add( HttpResponse.build( 404, "Recording not found") ); -} - -@Override -public LiveRecording getLive(String recordingName) throws RestException { -buildGetLive(recordingName); -String json = httpActionSync(); -return deserializeJson( json, LiveRecording_impl_ari_1_6_0.class ); -} - -@Override -public void getLive(String recordingName, AriCallback callback) { -buildGetLive(recordingName); -httpActionAsync(callback, LiveRecording_impl_ari_1_6_0.class); -} - -/********************************************************** - * A recording that is in progress - * - * Stop a live recording and discard it. - *********************************************************/ -private void buildCancel(String recordingName) { -reset(); -url = "/recordings/live/" + recordingName + ""; -method = "DELETE"; -lE.add( HttpResponse.build( 404, "Recording not found") ); -} - -@Override -public void cancel(String recordingName) throws RestException { -buildCancel(recordingName); -String json = httpActionSync(); -} - -@Override -public void cancel(String recordingName, AriCallback callback) { -buildCancel(recordingName); -httpActionAsync(callback); -} - -/********************************************************** - * - * - * Mute a live recording. - * Muting a recording suspends silence detection, which will be restarted when the recording is unmuted. - *********************************************************/ -private void buildMute(String recordingName) { -reset(); -url = "/recordings/live/" + recordingName + "/mute"; -method = "POST"; -lE.add( HttpResponse.build( 404, "Recording not found") ); -lE.add( HttpResponse.build( 409, "Recording not in session") ); -} - -@Override -public void mute(String recordingName) throws RestException { -buildMute(recordingName); -String json = httpActionSync(); -} - -@Override -public void mute(String recordingName, AriCallback callback) { -buildMute(recordingName); -httpActionAsync(callback); -} - -/********************************************************** - * - * - * Unmute a live recording. - *********************************************************/ -private void buildUnmute(String recordingName) { -reset(); -url = "/recordings/live/" + recordingName + "/mute"; -method = "DELETE"; -lE.add( HttpResponse.build( 404, "Recording not found") ); -lE.add( HttpResponse.build( 409, "Recording not in session") ); -} - -@Override -public void unmute(String recordingName) throws RestException { -buildUnmute(recordingName); -String json = httpActionSync(); -} - -@Override -public void unmute(String recordingName, AriCallback callback) { -buildUnmute(recordingName); -httpActionAsync(callback); -} - -/********************************************************** - * - * - * Pause a live recording. - * Pausing a recording suspends silence detection, which will be restarted when the recording is unpaused. Paused time is not included in the accounting for maxDurationSeconds. - *********************************************************/ -private void buildPause(String recordingName) { -reset(); -url = "/recordings/live/" + recordingName + "/pause"; -method = "POST"; -lE.add( HttpResponse.build( 404, "Recording not found") ); -lE.add( HttpResponse.build( 409, "Recording not in session") ); -} - -@Override -public void pause(String recordingName) throws RestException { -buildPause(recordingName); -String json = httpActionSync(); -} - -@Override -public void pause(String recordingName, AriCallback callback) { -buildPause(recordingName); -httpActionAsync(callback); -} - -/********************************************************** - * - * - * Unpause a live recording. - *********************************************************/ -private void buildUnpause(String recordingName) { -reset(); -url = "/recordings/live/" + recordingName + "/pause"; -method = "DELETE"; -lE.add( HttpResponse.build( 404, "Recording not found") ); -lE.add( HttpResponse.build( 409, "Recording not in session") ); -} - -@Override -public void unpause(String recordingName) throws RestException { -buildUnpause(recordingName); -String json = httpActionSync(); -} - -@Override -public void unpause(String recordingName, AriCallback callback) { -buildUnpause(recordingName); -httpActionAsync(callback); -} - -/********************************************************** - * - * - * Stop a live recording and store it. - *********************************************************/ -private void buildStop(String recordingName) { -reset(); -url = "/recordings/live/" + recordingName + "/stop"; -method = "POST"; -lE.add( HttpResponse.build( 404, "Recording not found") ); -} - -@Override -public void stop(String recordingName) throws RestException { -buildStop(recordingName); -String json = httpActionSync(); -} - -@Override -public void stop(String recordingName, AriCallback callback) { -buildStop(recordingName); -httpActionAsync(callback); -} - -/********************************************************** - * Recordings - * - * List recordings that are complete. - *********************************************************/ -private void buildListStored() { -reset(); -url = "/recordings/stored"; -method = "GET"; -} - -@Override -public List listStored() throws RestException { -buildListStored(); -String json = httpActionSync(); -return deserializeJsonAsAbstractList( json, - new TypeReference>() {} ); -} - -@Override -public void listStored(AriCallback> callback) { -buildListStored(); -httpActionAsync(callback, new TypeReference>() {}); -} - -/********************************************************** - * Individual recording - * - * Get a stored recording's details. - *********************************************************/ -private void buildGetStored(String recordingName) { -reset(); -url = "/recordings/stored/" + recordingName + ""; -method = "GET"; -lE.add( HttpResponse.build( 404, "Recording not found") ); -} - -@Override -public StoredRecording getStored(String recordingName) throws RestException { -buildGetStored(recordingName); -String json = httpActionSync(); -return deserializeJson( json, StoredRecording_impl_ari_1_6_0.class ); -} - -@Override -public void getStored(String recordingName, AriCallback callback) { -buildGetStored(recordingName); -httpActionAsync(callback, StoredRecording_impl_ari_1_6_0.class); -} - -/********************************************************** - * Individual recording - * - * Delete a stored recording. - *********************************************************/ -private void buildDeleteStored(String recordingName) { -reset(); -url = "/recordings/stored/" + recordingName + ""; -method = "DELETE"; -lE.add( HttpResponse.build( 404, "Recording not found") ); -} - -@Override -public void deleteStored(String recordingName) throws RestException { -buildDeleteStored(recordingName); -String json = httpActionSync(); -} - -@Override -public void deleteStored(String recordingName, AriCallback callback) { -buildDeleteStored(recordingName); -httpActionAsync(callback); -} - -/********************************************************** - * Copy an individual recording - * - * Copy a stored recording. - *********************************************************/ -private void buildCopyStored(String recordingName, String destinationRecordingName) { -reset(); -url = "/recordings/stored/" + recordingName + "/copy"; -method = "POST"; -lParamQuery.add( HttpParam.build( "destinationRecordingName", destinationRecordingName) ); -lE.add( HttpResponse.build( 404, "Recording not found") ); -lE.add( HttpResponse.build( 409, "A recording with the same name already exists on the system") ); -} - -@Override -public StoredRecording copyStored(String recordingName, String destinationRecordingName) throws RestException { -buildCopyStored(recordingName, destinationRecordingName); -String json = httpActionSync(); -return deserializeJson( json, StoredRecording_impl_ari_1_6_0.class ); -} - -@Override -public void copyStored(String recordingName, String destinationRecordingName, AriCallback callback) { -buildCopyStored(recordingName, destinationRecordingName); -httpActionAsync(callback, StoredRecording_impl_ari_1_6_0.class); -} - -/********************************************************** - * - * - * @since ari_1_10_0 - *********************************************************/ -public void getStoredFile(String recordingName, AriCallback callback){ - throw new UnsupportedOperationException("Method availble from ..."); -}; - -/********************************************************** - * Get the file associated with the stored recording. - * - * - * @since ari_1_10_0 - *********************************************************/ -public byte[] getStoredFile(String recordingName) throws RestException{ - throw new UnsupportedOperationException("Method availble from ..."); -}; - -}; - diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_6_0/actions/ActionSounds_impl_ari_1_6_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_6_0/actions/ActionSounds_impl_ari_1_6_0.java deleted file mode 100644 index 3d427e03..00000000 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_6_0/actions/ActionSounds_impl_ari_1_6_0.java +++ /dev/null @@ -1,82 +0,0 @@ -package ch.loway.oss.ari4java.generated.ari_1_6_0.actions; - -// ---------------------------------------------------- -// THIS CLASS WAS GENERATED AUTOMATICALLY -// PLEASE DO NOT EDIT -// Generated on: Tue Dec 19 09:55:49 CET 2017 -// ---------------------------------------------------- - -import ch.loway.oss.ari4java.generated.*; -import java.util.Date; -import java.util.List; -import java.util.Map; -import java.util.ArrayList; -import ch.loway.oss.ari4java.tools.BaseAriAction; -import ch.loway.oss.ari4java.tools.RestException; -import ch.loway.oss.ari4java.tools.AriCallback; -import ch.loway.oss.ari4java.tools.HttpParam; -import ch.loway.oss.ari4java.tools.HttpResponse; -import com.fasterxml.jackson.core.type.TypeReference; -import ch.loway.oss.ari4java.generated.ari_1_6_0.models.*; - -/********************************************************** - * - * Generated by: Apis - *********************************************************/ - - -public class ActionSounds_impl_ari_1_6_0 extends BaseAriAction implements ActionSounds { -/********************************************************** - * Sounds - * - * List all sounds. - *********************************************************/ -private void buildList(String lang, String format) { -reset(); -url = "/sounds"; -method = "GET"; -lParamQuery.add( HttpParam.build( "lang", lang) ); -lParamQuery.add( HttpParam.build( "format", format) ); -} - -@Override -public List list(String lang, String format) throws RestException { -buildList(lang, format); -String json = httpActionSync(); -return deserializeJsonAsAbstractList( json, - new TypeReference>() {} ); -} - -@Override -public void list(String lang, String format, AriCallback> callback) { -buildList(lang, format); -httpActionAsync(callback, new TypeReference>() {}); -} - -/********************************************************** - * Individual sound - * - * Get a sound's details. - *********************************************************/ -private void buildGet(String soundId) { -reset(); -url = "/sounds/" + soundId + ""; -method = "GET"; -} - -@Override -public Sound get(String soundId) throws RestException { -buildGet(soundId); -String json = httpActionSync(); -return deserializeJson( json, Sound_impl_ari_1_6_0.class ); -} - -@Override -public void get(String soundId, AriCallback callback) { -buildGet(soundId); -httpActionAsync(callback, Sound_impl_ari_1_6_0.class); -} - -/** No missing signatures from interface */ -}; - diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_6_0/models/ApplicationReplaced_impl_ari_1_6_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_6_0/models/ApplicationReplaced_impl_ari_1_6_0.java deleted file mode 100644 index 7b653314..00000000 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_6_0/models/ApplicationReplaced_impl_ari_1_6_0.java +++ /dev/null @@ -1,28 +0,0 @@ -package ch.loway.oss.ari4java.generated.ari_1_6_0.models; - -// ---------------------------------------------------- -// THIS CLASS WAS GENERATED AUTOMATICALLY -// PLEASE DO NOT EDIT -// Generated on: Tue Dec 19 09:55:49 CET 2017 -// ---------------------------------------------------- - -import ch.loway.oss.ari4java.generated.*; -import com.fasterxml.jackson.databind.annotation.JsonDeserialize; -import java.util.Date; -import java.util.List; -import java.util.Map; - -/********************************************************** - * Notification that another WebSocket has taken over for an application. - * - * An application may only be subscribed to by a single WebSocket at a time. If multiple WebSockets attempt to subscribe to the same application, the newer WebSocket wins, and the older one receives this event. - * - * Defined in file: events.json - * Generated by: Model - *********************************************************/ - -public class ApplicationReplaced_impl_ari_1_6_0 extends Event_impl_ari_1_6_0 implements ApplicationReplaced, java.io.Serializable { -private static final long serialVersionUID = 1L; -/** No missing signatures from interface */ -} - diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_6_0/models/Application_impl_ari_1_6_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_6_0/models/Application_impl_ari_1_6_0.java deleted file mode 100644 index cb5647b2..00000000 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_6_0/models/Application_impl_ari_1_6_0.java +++ /dev/null @@ -1,81 +0,0 @@ -package ch.loway.oss.ari4java.generated.ari_1_6_0.models; - -// ---------------------------------------------------- -// THIS CLASS WAS GENERATED AUTOMATICALLY -// PLEASE DO NOT EDIT -// Generated on: Tue Dec 19 09:55:49 CET 2017 -// ---------------------------------------------------- - -import ch.loway.oss.ari4java.generated.*; -import com.fasterxml.jackson.databind.annotation.JsonDeserialize; -import java.util.Date; -import java.util.List; -import java.util.Map; - -/********************************************************** - * Details of a Stasis application - * - * Defined in file: applications.json - * Generated by: Model - *********************************************************/ - -public class Application_impl_ari_1_6_0 implements Application, java.io.Serializable { -private static final long serialVersionUID = 1L; - /** Id's for bridges subscribed to. */ - private List bridge_ids; - public List getBridge_ids() { - return bridge_ids; - } - - @JsonDeserialize( contentAs=String.class ) - public void setBridge_ids(List val ) { - bridge_ids = val; - } - - /** Id's for channels subscribed to. */ - private List channel_ids; - public List getChannel_ids() { - return channel_ids; - } - - @JsonDeserialize( contentAs=String.class ) - public void setChannel_ids(List val ) { - channel_ids = val; - } - - /** Names of the devices subscribed to. */ - private List device_names; - public List getDevice_names() { - return device_names; - } - - @JsonDeserialize( contentAs=String.class ) - public void setDevice_names(List val ) { - device_names = val; - } - - /** {tech}/{resource} for endpoints subscribed to. */ - private List endpoint_ids; - public List getEndpoint_ids() { - return endpoint_ids; - } - - @JsonDeserialize( contentAs=String.class ) - public void setEndpoint_ids(List val ) { - endpoint_ids = val; - } - - /** Name of this application */ - private String name; - public String getName() { - return name; - } - - @JsonDeserialize( as=String.class ) - public void setName(String val ) { - name = val; - } - -/** No missing signatures from interface */ -} - diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_6_0/models/AsteriskInfo_impl_ari_1_6_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_6_0/models/AsteriskInfo_impl_ari_1_6_0.java deleted file mode 100644 index dab91ea4..00000000 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_6_0/models/AsteriskInfo_impl_ari_1_6_0.java +++ /dev/null @@ -1,70 +0,0 @@ -package ch.loway.oss.ari4java.generated.ari_1_6_0.models; - -// ---------------------------------------------------- -// THIS CLASS WAS GENERATED AUTOMATICALLY -// PLEASE DO NOT EDIT -// Generated on: Tue Dec 19 09:55:49 CET 2017 -// ---------------------------------------------------- - -import ch.loway.oss.ari4java.generated.*; -import com.fasterxml.jackson.databind.annotation.JsonDeserialize; -import java.util.Date; -import java.util.List; -import java.util.Map; - -/********************************************************** - * Asterisk system information - * - * Defined in file: asterisk.json - * Generated by: Model - *********************************************************/ - -public class AsteriskInfo_impl_ari_1_6_0 implements AsteriskInfo, java.io.Serializable { -private static final long serialVersionUID = 1L; - /** Info about how Asterisk was built */ - private BuildInfo build; - public BuildInfo getBuild() { - return build; - } - - @JsonDeserialize( as=BuildInfo_impl_ari_1_6_0.class ) - public void setBuild(BuildInfo val ) { - build = val; - } - - /** Info about Asterisk configuration */ - private ConfigInfo config; - public ConfigInfo getConfig() { - return config; - } - - @JsonDeserialize( as=ConfigInfo_impl_ari_1_6_0.class ) - public void setConfig(ConfigInfo val ) { - config = val; - } - - /** Info about Asterisk status */ - private StatusInfo status; - public StatusInfo getStatus() { - return status; - } - - @JsonDeserialize( as=StatusInfo_impl_ari_1_6_0.class ) - public void setStatus(StatusInfo val ) { - status = val; - } - - /** Info about the system running Asterisk */ - private SystemInfo system; - public SystemInfo getSystem() { - return system; - } - - @JsonDeserialize( as=SystemInfo_impl_ari_1_6_0.class ) - public void setSystem(SystemInfo val ) { - system = val; - } - -/** No missing signatures from interface */ -} - diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_6_0/models/BridgeAttendedTransfer_impl_ari_1_6_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_6_0/models/BridgeAttendedTransfer_impl_ari_1_6_0.java deleted file mode 100644 index a6425b94..00000000 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_6_0/models/BridgeAttendedTransfer_impl_ari_1_6_0.java +++ /dev/null @@ -1,202 +0,0 @@ -package ch.loway.oss.ari4java.generated.ari_1_6_0.models; - -// ---------------------------------------------------- -// THIS CLASS WAS GENERATED AUTOMATICALLY -// PLEASE DO NOT EDIT -// Generated on: Tue Dec 19 09:55:49 CET 2017 -// ---------------------------------------------------- - -import ch.loway.oss.ari4java.generated.*; -import com.fasterxml.jackson.databind.annotation.JsonDeserialize; -import java.util.Date; -import java.util.List; -import java.util.Map; - -/********************************************************** - * Notification that an attended transfer has occurred. - * - * Defined in file: events.json - * Generated by: Model - *********************************************************/ - -public class BridgeAttendedTransfer_impl_ari_1_6_0 extends Event_impl_ari_1_6_0 implements BridgeAttendedTransfer, java.io.Serializable { -private static final long serialVersionUID = 1L; - /** Application that has been transferred into */ - private String destination_application; - public String getDestination_application() { - return destination_application; - } - - @JsonDeserialize( as=String.class ) - public void setDestination_application(String val ) { - destination_application = val; - } - - /** Bridge that survived the merge result */ - private String destination_bridge; - public String getDestination_bridge() { - return destination_bridge; - } - - @JsonDeserialize( as=String.class ) - public void setDestination_bridge(String val ) { - destination_bridge = val; - } - - /** First leg of a link transfer result */ - private Channel destination_link_first_leg; - public Channel getDestination_link_first_leg() { - return destination_link_first_leg; - } - - @JsonDeserialize( as=Channel_impl_ari_1_6_0.class ) - public void setDestination_link_first_leg(Channel val ) { - destination_link_first_leg = val; - } - - /** Second leg of a link transfer result */ - private Channel destination_link_second_leg; - public Channel getDestination_link_second_leg() { - return destination_link_second_leg; - } - - @JsonDeserialize( as=Channel_impl_ari_1_6_0.class ) - public void setDestination_link_second_leg(Channel val ) { - destination_link_second_leg = val; - } - - /** Bridge that survived the threeway result */ - private Bridge destination_threeway_bridge; - public Bridge getDestination_threeway_bridge() { - return destination_threeway_bridge; - } - - @JsonDeserialize( as=Bridge_impl_ari_1_6_0.class ) - public void setDestination_threeway_bridge(Bridge val ) { - destination_threeway_bridge = val; - } - - /** Transferer channel that survived the threeway result */ - private Channel destination_threeway_channel; - public Channel getDestination_threeway_channel() { - return destination_threeway_channel; - } - - @JsonDeserialize( as=Channel_impl_ari_1_6_0.class ) - public void setDestination_threeway_channel(Channel val ) { - destination_threeway_channel = val; - } - - /** How the transfer was accomplished */ - private String destination_type; - public String getDestination_type() { - return destination_type; - } - - @JsonDeserialize( as=String.class ) - public void setDestination_type(String val ) { - destination_type = val; - } - - /** Whether the transfer was externally initiated or not */ - private boolean is_external; - public boolean getIs_external() { - return is_external; - } - - @JsonDeserialize( as=boolean.class ) - public void setIs_external(boolean val ) { - is_external = val; - } - - /** The channel that is replacing transferer_first_leg in the swap */ - private Channel replace_channel; - public Channel getReplace_channel() { - return replace_channel; - } - - @JsonDeserialize( as=Channel_impl_ari_1_6_0.class ) - public void setReplace_channel(Channel val ) { - replace_channel = val; - } - - /** The result of the transfer attempt */ - private String result; - public String getResult() { - return result; - } - - @JsonDeserialize( as=String.class ) - public void setResult(String val ) { - result = val; - } - - /** The channel that is being transferred to */ - private Channel transfer_target; - public Channel getTransfer_target() { - return transfer_target; - } - - @JsonDeserialize( as=Channel_impl_ari_1_6_0.class ) - public void setTransfer_target(Channel val ) { - transfer_target = val; - } - - /** The channel that is being transferred */ - private Channel transferee; - public Channel getTransferee() { - return transferee; - } - - @JsonDeserialize( as=Channel_impl_ari_1_6_0.class ) - public void setTransferee(Channel val ) { - transferee = val; - } - - /** First leg of the transferer */ - private Channel transferer_first_leg; - public Channel getTransferer_first_leg() { - return transferer_first_leg; - } - - @JsonDeserialize( as=Channel_impl_ari_1_6_0.class ) - public void setTransferer_first_leg(Channel val ) { - transferer_first_leg = val; - } - - /** Bridge the transferer first leg is in */ - private Bridge transferer_first_leg_bridge; - public Bridge getTransferer_first_leg_bridge() { - return transferer_first_leg_bridge; - } - - @JsonDeserialize( as=Bridge_impl_ari_1_6_0.class ) - public void setTransferer_first_leg_bridge(Bridge val ) { - transferer_first_leg_bridge = val; - } - - /** Second leg of the transferer */ - private Channel transferer_second_leg; - public Channel getTransferer_second_leg() { - return transferer_second_leg; - } - - @JsonDeserialize( as=Channel_impl_ari_1_6_0.class ) - public void setTransferer_second_leg(Channel val ) { - transferer_second_leg = val; - } - - /** Bridge the transferer second leg is in */ - private Bridge transferer_second_leg_bridge; - public Bridge getTransferer_second_leg_bridge() { - return transferer_second_leg_bridge; - } - - @JsonDeserialize( as=Bridge_impl_ari_1_6_0.class ) - public void setTransferer_second_leg_bridge(Bridge val ) { - transferer_second_leg_bridge = val; - } - -/** No missing signatures from interface */ -} - diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_6_0/models/BridgeBlindTransfer_impl_ari_1_6_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_6_0/models/BridgeBlindTransfer_impl_ari_1_6_0.java deleted file mode 100644 index 03a29c43..00000000 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_6_0/models/BridgeBlindTransfer_impl_ari_1_6_0.java +++ /dev/null @@ -1,114 +0,0 @@ -package ch.loway.oss.ari4java.generated.ari_1_6_0.models; - -// ---------------------------------------------------- -// THIS CLASS WAS GENERATED AUTOMATICALLY -// PLEASE DO NOT EDIT -// Generated on: Tue Dec 19 09:55:49 CET 2017 -// ---------------------------------------------------- - -import ch.loway.oss.ari4java.generated.*; -import com.fasterxml.jackson.databind.annotation.JsonDeserialize; -import java.util.Date; -import java.util.List; -import java.util.Map; - -/********************************************************** - * Notification that a blind transfer has occurred. - * - * Defined in file: events.json - * Generated by: Model - *********************************************************/ - -public class BridgeBlindTransfer_impl_ari_1_6_0 extends Event_impl_ari_1_6_0 implements BridgeBlindTransfer, java.io.Serializable { -private static final long serialVersionUID = 1L; - /** The bridge being transferred */ - private Bridge bridge; - public Bridge getBridge() { - return bridge; - } - - @JsonDeserialize( as=Bridge_impl_ari_1_6_0.class ) - public void setBridge(Bridge val ) { - bridge = val; - } - - /** The channel performing the blind transfer */ - private Channel channel; - public Channel getChannel() { - return channel; - } - - @JsonDeserialize( as=Channel_impl_ari_1_6_0.class ) - public void setChannel(Channel val ) { - channel = val; - } - - /** The context transferred to */ - private String context; - public String getContext() { - return context; - } - - @JsonDeserialize( as=String.class ) - public void setContext(String val ) { - context = val; - } - - /** The extension transferred to */ - private String exten; - public String getExten() { - return exten; - } - - @JsonDeserialize( as=String.class ) - public void setExten(String val ) { - exten = val; - } - - /** Whether the transfer was externally initiated or not */ - private boolean is_external; - public boolean getIs_external() { - return is_external; - } - - @JsonDeserialize( as=boolean.class ) - public void setIs_external(boolean val ) { - is_external = val; - } - - /** The channel that is replacing transferer when the transferee(s) can not be transferred directly */ - private Channel replace_channel; - public Channel getReplace_channel() { - return replace_channel; - } - - @JsonDeserialize( as=Channel_impl_ari_1_6_0.class ) - public void setReplace_channel(Channel val ) { - replace_channel = val; - } - - /** The result of the transfer attempt */ - private String result; - public String getResult() { - return result; - } - - @JsonDeserialize( as=String.class ) - public void setResult(String val ) { - result = val; - } - - /** The channel that is being transferred */ - private Channel transferee; - public Channel getTransferee() { - return transferee; - } - - @JsonDeserialize( as=Channel_impl_ari_1_6_0.class ) - public void setTransferee(Channel val ) { - transferee = val; - } - -/** No missing signatures from interface */ -} - diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_6_0/models/BridgeCreated_impl_ari_1_6_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_6_0/models/BridgeCreated_impl_ari_1_6_0.java deleted file mode 100644 index 5013fb9e..00000000 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_6_0/models/BridgeCreated_impl_ari_1_6_0.java +++ /dev/null @@ -1,37 +0,0 @@ -package ch.loway.oss.ari4java.generated.ari_1_6_0.models; - -// ---------------------------------------------------- -// THIS CLASS WAS GENERATED AUTOMATICALLY -// PLEASE DO NOT EDIT -// Generated on: Tue Dec 19 09:55:49 CET 2017 -// ---------------------------------------------------- - -import ch.loway.oss.ari4java.generated.*; -import com.fasterxml.jackson.databind.annotation.JsonDeserialize; -import java.util.Date; -import java.util.List; -import java.util.Map; - -/********************************************************** - * Notification that a bridge has been created. - * - * Defined in file: events.json - * Generated by: Model - *********************************************************/ - -public class BridgeCreated_impl_ari_1_6_0 extends Event_impl_ari_1_6_0 implements BridgeCreated, java.io.Serializable { -private static final long serialVersionUID = 1L; - /** */ - private Bridge bridge; - public Bridge getBridge() { - return bridge; - } - - @JsonDeserialize( as=Bridge_impl_ari_1_6_0.class ) - public void setBridge(Bridge val ) { - bridge = val; - } - -/** No missing signatures from interface */ -} - diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_6_0/models/BridgeDestroyed_impl_ari_1_6_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_6_0/models/BridgeDestroyed_impl_ari_1_6_0.java deleted file mode 100644 index 4e5635cf..00000000 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_6_0/models/BridgeDestroyed_impl_ari_1_6_0.java +++ /dev/null @@ -1,37 +0,0 @@ -package ch.loway.oss.ari4java.generated.ari_1_6_0.models; - -// ---------------------------------------------------- -// THIS CLASS WAS GENERATED AUTOMATICALLY -// PLEASE DO NOT EDIT -// Generated on: Tue Dec 19 09:55:49 CET 2017 -// ---------------------------------------------------- - -import ch.loway.oss.ari4java.generated.*; -import com.fasterxml.jackson.databind.annotation.JsonDeserialize; -import java.util.Date; -import java.util.List; -import java.util.Map; - -/********************************************************** - * Notification that a bridge has been destroyed. - * - * Defined in file: events.json - * Generated by: Model - *********************************************************/ - -public class BridgeDestroyed_impl_ari_1_6_0 extends Event_impl_ari_1_6_0 implements BridgeDestroyed, java.io.Serializable { -private static final long serialVersionUID = 1L; - /** */ - private Bridge bridge; - public Bridge getBridge() { - return bridge; - } - - @JsonDeserialize( as=Bridge_impl_ari_1_6_0.class ) - public void setBridge(Bridge val ) { - bridge = val; - } - -/** No missing signatures from interface */ -} - diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_6_0/models/BridgeMerged_impl_ari_1_6_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_6_0/models/BridgeMerged_impl_ari_1_6_0.java deleted file mode 100644 index 7d3c59b7..00000000 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_6_0/models/BridgeMerged_impl_ari_1_6_0.java +++ /dev/null @@ -1,48 +0,0 @@ -package ch.loway.oss.ari4java.generated.ari_1_6_0.models; - -// ---------------------------------------------------- -// THIS CLASS WAS GENERATED AUTOMATICALLY -// PLEASE DO NOT EDIT -// Generated on: Tue Dec 19 09:55:49 CET 2017 -// ---------------------------------------------------- - -import ch.loway.oss.ari4java.generated.*; -import com.fasterxml.jackson.databind.annotation.JsonDeserialize; -import java.util.Date; -import java.util.List; -import java.util.Map; - -/********************************************************** - * Notification that one bridge has merged into another. - * - * Defined in file: events.json - * Generated by: Model - *********************************************************/ - -public class BridgeMerged_impl_ari_1_6_0 extends Event_impl_ari_1_6_0 implements BridgeMerged, java.io.Serializable { -private static final long serialVersionUID = 1L; - /** */ - private Bridge bridge; - public Bridge getBridge() { - return bridge; - } - - @JsonDeserialize( as=Bridge_impl_ari_1_6_0.class ) - public void setBridge(Bridge val ) { - bridge = val; - } - - /** */ - private Bridge bridge_from; - public Bridge getBridge_from() { - return bridge_from; - } - - @JsonDeserialize( as=Bridge_impl_ari_1_6_0.class ) - public void setBridge_from(Bridge val ) { - bridge_from = val; - } - -/** No missing signatures from interface */ -} - diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_6_0/models/Bridge_impl_ari_1_6_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_6_0/models/Bridge_impl_ari_1_6_0.java deleted file mode 100644 index 5f66c910..00000000 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_6_0/models/Bridge_impl_ari_1_6_0.java +++ /dev/null @@ -1,140 +0,0 @@ -package ch.loway.oss.ari4java.generated.ari_1_6_0.models; - -// ---------------------------------------------------- -// THIS CLASS WAS GENERATED AUTOMATICALLY -// PLEASE DO NOT EDIT -// Generated on: Tue Dec 19 09:55:49 CET 2017 -// ---------------------------------------------------- - -import ch.loway.oss.ari4java.generated.*; -import com.fasterxml.jackson.databind.annotation.JsonDeserialize; -import java.util.Date; -import java.util.List; -import java.util.Map; - -/********************************************************** - * The merging of media from one or more channels. - * - * Everyone on the bridge receives the same audio. - * - * Defined in file: bridges.json - * Generated by: Model - *********************************************************/ - -public class Bridge_impl_ari_1_6_0 implements Bridge, java.io.Serializable { -private static final long serialVersionUID = 1L; - /** Bridging class */ - private String bridge_class; - public String getBridge_class() { - return bridge_class; - } - - @JsonDeserialize( as=String.class ) - public void setBridge_class(String val ) { - bridge_class = val; - } - - /** Type of bridge technology */ - private String bridge_type; - public String getBridge_type() { - return bridge_type; - } - - @JsonDeserialize( as=String.class ) - public void setBridge_type(String val ) { - bridge_type = val; - } - - /** Ids of channels participating in this bridge */ - private List channels; - public List getChannels() { - return channels; - } - - @JsonDeserialize( contentAs=String.class ) - public void setChannels(List val ) { - channels = val; - } - - /** Entity that created the bridge */ - private String creator; - public String getCreator() { - return creator; - } - - @JsonDeserialize( as=String.class ) - public void setCreator(String val ) { - creator = val; - } - - /** Unique identifier for this bridge */ - private String id; - public String getId() { - return id; - } - - @JsonDeserialize( as=String.class ) - public void setId(String val ) { - id = val; - } - - /** Name the creator gave the bridge */ - private String name; - public String getName() { - return name; - } - - @JsonDeserialize( as=String.class ) - public void setName(String val ) { - name = val; - } - - /** Name of the current bridging technology */ - private String technology; - public String getTechnology() { - return technology; - } - - @JsonDeserialize( as=String.class ) - public void setTechnology(String val ) { - technology = val; - } - -/********************************************************** - * The video mode the bridge is using. One of 'none', 'talker', or 'single'. - * - * @since ari_2_0_0 - *********************************************************/ - public String getVideo_mode(){ - throw new UnsupportedOperationException("Method availble from ..."); -}; - -/********************************************************** - * The ID of the channel that is the source of video in this bridge, if one exists. - * - * @since ari_2_0_0 - *********************************************************/ - public String getVideo_source_id(){ - throw new UnsupportedOperationException("Method availble from ..."); -}; - -/********************************************************** - * The video mode the bridge is using. One of 'none', 'talker', or 'single'. - * - * @since ari_2_0_0 - *********************************************************/ - public void setVideo_mode(String val ){ - throw new UnsupportedOperationException("Method availble from ..."); -}; - -/********************************************************** - * The ID of the channel that is the source of video in this bridge, if one exists. - * - * @since ari_2_0_0 - *********************************************************/ - public void setVideo_source_id(String val ){ - throw new UnsupportedOperationException("Method availble from ..."); -}; - -} - diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_6_0/models/BuildInfo_impl_ari_1_6_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_6_0/models/BuildInfo_impl_ari_1_6_0.java deleted file mode 100644 index 2caac542..00000000 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_6_0/models/BuildInfo_impl_ari_1_6_0.java +++ /dev/null @@ -1,92 +0,0 @@ -package ch.loway.oss.ari4java.generated.ari_1_6_0.models; - -// ---------------------------------------------------- -// THIS CLASS WAS GENERATED AUTOMATICALLY -// PLEASE DO NOT EDIT -// Generated on: Tue Dec 19 09:55:49 CET 2017 -// ---------------------------------------------------- - -import ch.loway.oss.ari4java.generated.*; -import com.fasterxml.jackson.databind.annotation.JsonDeserialize; -import java.util.Date; -import java.util.List; -import java.util.Map; - -/********************************************************** - * Info about how Asterisk was built - * - * Defined in file: asterisk.json - * Generated by: Model - *********************************************************/ - -public class BuildInfo_impl_ari_1_6_0 implements BuildInfo, java.io.Serializable { -private static final long serialVersionUID = 1L; - /** Date and time when Asterisk was built. */ - private String date; - public String getDate() { - return date; - } - - @JsonDeserialize( as=String.class ) - public void setDate(String val ) { - date = val; - } - - /** Kernel version Asterisk was built on. */ - private String kernel; - public String getKernel() { - return kernel; - } - - @JsonDeserialize( as=String.class ) - public void setKernel(String val ) { - kernel = val; - } - - /** Machine architecture (x86_64, i686, ppc, etc.) */ - private String machine; - public String getMachine() { - return machine; - } - - @JsonDeserialize( as=String.class ) - public void setMachine(String val ) { - machine = val; - } - - /** Compile time options, or empty string if default. */ - private String options; - public String getOptions() { - return options; - } - - @JsonDeserialize( as=String.class ) - public void setOptions(String val ) { - options = val; - } - - /** OS Asterisk was built on. */ - private String os; - public String getOs() { - return os; - } - - @JsonDeserialize( as=String.class ) - public void setOs(String val ) { - os = val; - } - - /** Username that build Asterisk */ - private String user; - public String getUser() { - return user; - } - - @JsonDeserialize( as=String.class ) - public void setUser(String val ) { - user = val; - } - -/** No missing signatures from interface */ -} - diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_6_0/models/CallerID_impl_ari_1_6_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_6_0/models/CallerID_impl_ari_1_6_0.java deleted file mode 100644 index 036a5835..00000000 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_6_0/models/CallerID_impl_ari_1_6_0.java +++ /dev/null @@ -1,48 +0,0 @@ -package ch.loway.oss.ari4java.generated.ari_1_6_0.models; - -// ---------------------------------------------------- -// THIS CLASS WAS GENERATED AUTOMATICALLY -// PLEASE DO NOT EDIT -// Generated on: Tue Dec 19 09:55:49 CET 2017 -// ---------------------------------------------------- - -import ch.loway.oss.ari4java.generated.*; -import com.fasterxml.jackson.databind.annotation.JsonDeserialize; -import java.util.Date; -import java.util.List; -import java.util.Map; - -/********************************************************** - * Caller identification - * - * Defined in file: channels.json - * Generated by: Model - *********************************************************/ - -public class CallerID_impl_ari_1_6_0 implements CallerID, java.io.Serializable { -private static final long serialVersionUID = 1L; - /** */ - private String name; - public String getName() { - return name; - } - - @JsonDeserialize( as=String.class ) - public void setName(String val ) { - name = val; - } - - /** */ - private String number; - public String getNumber() { - return number; - } - - @JsonDeserialize( as=String.class ) - public void setNumber(String val ) { - number = val; - } - -/** No missing signatures from interface */ -} - diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_6_0/models/ChannelCallerId_impl_ari_1_6_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_6_0/models/ChannelCallerId_impl_ari_1_6_0.java deleted file mode 100644 index b8a0e1d3..00000000 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_6_0/models/ChannelCallerId_impl_ari_1_6_0.java +++ /dev/null @@ -1,59 +0,0 @@ -package ch.loway.oss.ari4java.generated.ari_1_6_0.models; - -// ---------------------------------------------------- -// THIS CLASS WAS GENERATED AUTOMATICALLY -// PLEASE DO NOT EDIT -// Generated on: Tue Dec 19 09:55:49 CET 2017 -// ---------------------------------------------------- - -import ch.loway.oss.ari4java.generated.*; -import com.fasterxml.jackson.databind.annotation.JsonDeserialize; -import java.util.Date; -import java.util.List; -import java.util.Map; - -/********************************************************** - * Channel changed Caller ID. - * - * Defined in file: events.json - * Generated by: Model - *********************************************************/ - -public class ChannelCallerId_impl_ari_1_6_0 extends Event_impl_ari_1_6_0 implements ChannelCallerId, java.io.Serializable { -private static final long serialVersionUID = 1L; - /** The integer representation of the Caller Presentation value. */ - private int caller_presentation; - public int getCaller_presentation() { - return caller_presentation; - } - - @JsonDeserialize( as=int.class ) - public void setCaller_presentation(int val ) { - caller_presentation = val; - } - - /** The text representation of the Caller Presentation value. */ - private String caller_presentation_txt; - public String getCaller_presentation_txt() { - return caller_presentation_txt; - } - - @JsonDeserialize( as=String.class ) - public void setCaller_presentation_txt(String val ) { - caller_presentation_txt = val; - } - - /** The channel that changed Caller ID. */ - private Channel channel; - public Channel getChannel() { - return channel; - } - - @JsonDeserialize( as=Channel_impl_ari_1_6_0.class ) - public void setChannel(Channel val ) { - channel = val; - } - -/** No missing signatures from interface */ -} - diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_6_0/models/ChannelConnectedLine_impl_ari_1_6_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_6_0/models/ChannelConnectedLine_impl_ari_1_6_0.java deleted file mode 100644 index 85e54394..00000000 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_6_0/models/ChannelConnectedLine_impl_ari_1_6_0.java +++ /dev/null @@ -1,37 +0,0 @@ -package ch.loway.oss.ari4java.generated.ari_1_6_0.models; - -// ---------------------------------------------------- -// THIS CLASS WAS GENERATED AUTOMATICALLY -// PLEASE DO NOT EDIT -// Generated on: Tue Dec 19 09:55:49 CET 2017 -// ---------------------------------------------------- - -import ch.loway.oss.ari4java.generated.*; -import com.fasterxml.jackson.databind.annotation.JsonDeserialize; -import java.util.Date; -import java.util.List; -import java.util.Map; - -/********************************************************** - * Channel changed Connected Line. - * - * Defined in file: events.json - * Generated by: Model - *********************************************************/ - -public class ChannelConnectedLine_impl_ari_1_6_0 extends Event_impl_ari_1_6_0 implements ChannelConnectedLine, java.io.Serializable { -private static final long serialVersionUID = 1L; - /** The channel whose connected line has changed. */ - private Channel channel; - public Channel getChannel() { - return channel; - } - - @JsonDeserialize( as=Channel_impl_ari_1_6_0.class ) - public void setChannel(Channel val ) { - channel = val; - } - -/** No missing signatures from interface */ -} - diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_6_0/models/ChannelCreated_impl_ari_1_6_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_6_0/models/ChannelCreated_impl_ari_1_6_0.java deleted file mode 100644 index 1079570e..00000000 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_6_0/models/ChannelCreated_impl_ari_1_6_0.java +++ /dev/null @@ -1,37 +0,0 @@ -package ch.loway.oss.ari4java.generated.ari_1_6_0.models; - -// ---------------------------------------------------- -// THIS CLASS WAS GENERATED AUTOMATICALLY -// PLEASE DO NOT EDIT -// Generated on: Tue Dec 19 09:55:49 CET 2017 -// ---------------------------------------------------- - -import ch.loway.oss.ari4java.generated.*; -import com.fasterxml.jackson.databind.annotation.JsonDeserialize; -import java.util.Date; -import java.util.List; -import java.util.Map; - -/********************************************************** - * Notification that a channel has been created. - * - * Defined in file: events.json - * Generated by: Model - *********************************************************/ - -public class ChannelCreated_impl_ari_1_6_0 extends Event_impl_ari_1_6_0 implements ChannelCreated, java.io.Serializable { -private static final long serialVersionUID = 1L; - /** */ - private Channel channel; - public Channel getChannel() { - return channel; - } - - @JsonDeserialize( as=Channel_impl_ari_1_6_0.class ) - public void setChannel(Channel val ) { - channel = val; - } - -/** No missing signatures from interface */ -} - diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_6_0/models/ChannelDestroyed_impl_ari_1_6_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_6_0/models/ChannelDestroyed_impl_ari_1_6_0.java deleted file mode 100644 index 87eb1392..00000000 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_6_0/models/ChannelDestroyed_impl_ari_1_6_0.java +++ /dev/null @@ -1,59 +0,0 @@ -package ch.loway.oss.ari4java.generated.ari_1_6_0.models; - -// ---------------------------------------------------- -// THIS CLASS WAS GENERATED AUTOMATICALLY -// PLEASE DO NOT EDIT -// Generated on: Tue Dec 19 09:55:49 CET 2017 -// ---------------------------------------------------- - -import ch.loway.oss.ari4java.generated.*; -import com.fasterxml.jackson.databind.annotation.JsonDeserialize; -import java.util.Date; -import java.util.List; -import java.util.Map; - -/********************************************************** - * Notification that a channel has been destroyed. - * - * Defined in file: events.json - * Generated by: Model - *********************************************************/ - -public class ChannelDestroyed_impl_ari_1_6_0 extends Event_impl_ari_1_6_0 implements ChannelDestroyed, java.io.Serializable { -private static final long serialVersionUID = 1L; - /** Integer representation of the cause of the hangup */ - private int cause; - public int getCause() { - return cause; - } - - @JsonDeserialize( as=int.class ) - public void setCause(int val ) { - cause = val; - } - - /** Text representation of the cause of the hangup */ - private String cause_txt; - public String getCause_txt() { - return cause_txt; - } - - @JsonDeserialize( as=String.class ) - public void setCause_txt(String val ) { - cause_txt = val; - } - - /** */ - private Channel channel; - public Channel getChannel() { - return channel; - } - - @JsonDeserialize( as=Channel_impl_ari_1_6_0.class ) - public void setChannel(Channel val ) { - channel = val; - } - -/** No missing signatures from interface */ -} - diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_6_0/models/ChannelDialplan_impl_ari_1_6_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_6_0/models/ChannelDialplan_impl_ari_1_6_0.java deleted file mode 100644 index 09b36014..00000000 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_6_0/models/ChannelDialplan_impl_ari_1_6_0.java +++ /dev/null @@ -1,59 +0,0 @@ -package ch.loway.oss.ari4java.generated.ari_1_6_0.models; - -// ---------------------------------------------------- -// THIS CLASS WAS GENERATED AUTOMATICALLY -// PLEASE DO NOT EDIT -// Generated on: Tue Dec 19 09:55:49 CET 2017 -// ---------------------------------------------------- - -import ch.loway.oss.ari4java.generated.*; -import com.fasterxml.jackson.databind.annotation.JsonDeserialize; -import java.util.Date; -import java.util.List; -import java.util.Map; - -/********************************************************** - * Channel changed location in the dialplan. - * - * Defined in file: events.json - * Generated by: Model - *********************************************************/ - -public class ChannelDialplan_impl_ari_1_6_0 extends Event_impl_ari_1_6_0 implements ChannelDialplan, java.io.Serializable { -private static final long serialVersionUID = 1L; - /** The channel that changed dialplan location. */ - private Channel channel; - public Channel getChannel() { - return channel; - } - - @JsonDeserialize( as=Channel_impl_ari_1_6_0.class ) - public void setChannel(Channel val ) { - channel = val; - } - - /** The application about to be executed. */ - private String dialplan_app; - public String getDialplan_app() { - return dialplan_app; - } - - @JsonDeserialize( as=String.class ) - public void setDialplan_app(String val ) { - dialplan_app = val; - } - - /** The data to be passed to the application. */ - private String dialplan_app_data; - public String getDialplan_app_data() { - return dialplan_app_data; - } - - @JsonDeserialize( as=String.class ) - public void setDialplan_app_data(String val ) { - dialplan_app_data = val; - } - -/** No missing signatures from interface */ -} - diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_6_0/models/ChannelDtmfReceived_impl_ari_1_6_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_6_0/models/ChannelDtmfReceived_impl_ari_1_6_0.java deleted file mode 100644 index 2fef2877..00000000 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_6_0/models/ChannelDtmfReceived_impl_ari_1_6_0.java +++ /dev/null @@ -1,61 +0,0 @@ -package ch.loway.oss.ari4java.generated.ari_1_6_0.models; - -// ---------------------------------------------------- -// THIS CLASS WAS GENERATED AUTOMATICALLY -// PLEASE DO NOT EDIT -// Generated on: Tue Dec 19 09:55:49 CET 2017 -// ---------------------------------------------------- - -import ch.loway.oss.ari4java.generated.*; -import com.fasterxml.jackson.databind.annotation.JsonDeserialize; -import java.util.Date; -import java.util.List; -import java.util.Map; - -/********************************************************** - * DTMF received on a channel. - * - * This event is sent when the DTMF ends. There is no notification about the start of DTMF - * - * Defined in file: events.json - * Generated by: Model - *********************************************************/ - -public class ChannelDtmfReceived_impl_ari_1_6_0 extends Event_impl_ari_1_6_0 implements ChannelDtmfReceived, java.io.Serializable { -private static final long serialVersionUID = 1L; - /** The channel on which DTMF was received */ - private Channel channel; - public Channel getChannel() { - return channel; - } - - @JsonDeserialize( as=Channel_impl_ari_1_6_0.class ) - public void setChannel(Channel val ) { - channel = val; - } - - /** DTMF digit received (0-9, A-E, # or *) */ - private String digit; - public String getDigit() { - return digit; - } - - @JsonDeserialize( as=String.class ) - public void setDigit(String val ) { - digit = val; - } - - /** Number of milliseconds DTMF was received */ - private int duration_ms; - public int getDuration_ms() { - return duration_ms; - } - - @JsonDeserialize( as=int.class ) - public void setDuration_ms(int val ) { - duration_ms = val; - } - -/** No missing signatures from interface */ -} - diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_6_0/models/ChannelEnteredBridge_impl_ari_1_6_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_6_0/models/ChannelEnteredBridge_impl_ari_1_6_0.java deleted file mode 100644 index 715dd16b..00000000 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_6_0/models/ChannelEnteredBridge_impl_ari_1_6_0.java +++ /dev/null @@ -1,48 +0,0 @@ -package ch.loway.oss.ari4java.generated.ari_1_6_0.models; - -// ---------------------------------------------------- -// THIS CLASS WAS GENERATED AUTOMATICALLY -// PLEASE DO NOT EDIT -// Generated on: Tue Dec 19 09:55:49 CET 2017 -// ---------------------------------------------------- - -import ch.loway.oss.ari4java.generated.*; -import com.fasterxml.jackson.databind.annotation.JsonDeserialize; -import java.util.Date; -import java.util.List; -import java.util.Map; - -/********************************************************** - * Notification that a channel has entered a bridge. - * - * Defined in file: events.json - * Generated by: Model - *********************************************************/ - -public class ChannelEnteredBridge_impl_ari_1_6_0 extends Event_impl_ari_1_6_0 implements ChannelEnteredBridge, java.io.Serializable { -private static final long serialVersionUID = 1L; - /** */ - private Bridge bridge; - public Bridge getBridge() { - return bridge; - } - - @JsonDeserialize( as=Bridge_impl_ari_1_6_0.class ) - public void setBridge(Bridge val ) { - bridge = val; - } - - /** */ - private Channel channel; - public Channel getChannel() { - return channel; - } - - @JsonDeserialize( as=Channel_impl_ari_1_6_0.class ) - public void setChannel(Channel val ) { - channel = val; - } - -/** No missing signatures from interface */ -} - diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_6_0/models/ChannelHangupRequest_impl_ari_1_6_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_6_0/models/ChannelHangupRequest_impl_ari_1_6_0.java deleted file mode 100644 index d2966cb6..00000000 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_6_0/models/ChannelHangupRequest_impl_ari_1_6_0.java +++ /dev/null @@ -1,59 +0,0 @@ -package ch.loway.oss.ari4java.generated.ari_1_6_0.models; - -// ---------------------------------------------------- -// THIS CLASS WAS GENERATED AUTOMATICALLY -// PLEASE DO NOT EDIT -// Generated on: Tue Dec 19 09:55:49 CET 2017 -// ---------------------------------------------------- - -import ch.loway.oss.ari4java.generated.*; -import com.fasterxml.jackson.databind.annotation.JsonDeserialize; -import java.util.Date; -import java.util.List; -import java.util.Map; - -/********************************************************** - * A hangup was requested on the channel. - * - * Defined in file: events.json - * Generated by: Model - *********************************************************/ - -public class ChannelHangupRequest_impl_ari_1_6_0 extends Event_impl_ari_1_6_0 implements ChannelHangupRequest, java.io.Serializable { -private static final long serialVersionUID = 1L; - /** Integer representation of the cause of the hangup. */ - private int cause; - public int getCause() { - return cause; - } - - @JsonDeserialize( as=int.class ) - public void setCause(int val ) { - cause = val; - } - - /** The channel on which the hangup was requested. */ - private Channel channel; - public Channel getChannel() { - return channel; - } - - @JsonDeserialize( as=Channel_impl_ari_1_6_0.class ) - public void setChannel(Channel val ) { - channel = val; - } - - /** Whether the hangup request was a soft hangup request. */ - private boolean soft; - public boolean getSoft() { - return soft; - } - - @JsonDeserialize( as=boolean.class ) - public void setSoft(boolean val ) { - soft = val; - } - -/** No missing signatures from interface */ -} - diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_6_0/models/ChannelLeftBridge_impl_ari_1_6_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_6_0/models/ChannelLeftBridge_impl_ari_1_6_0.java deleted file mode 100644 index b68200f0..00000000 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_6_0/models/ChannelLeftBridge_impl_ari_1_6_0.java +++ /dev/null @@ -1,48 +0,0 @@ -package ch.loway.oss.ari4java.generated.ari_1_6_0.models; - -// ---------------------------------------------------- -// THIS CLASS WAS GENERATED AUTOMATICALLY -// PLEASE DO NOT EDIT -// Generated on: Tue Dec 19 09:55:49 CET 2017 -// ---------------------------------------------------- - -import ch.loway.oss.ari4java.generated.*; -import com.fasterxml.jackson.databind.annotation.JsonDeserialize; -import java.util.Date; -import java.util.List; -import java.util.Map; - -/********************************************************** - * Notification that a channel has left a bridge. - * - * Defined in file: events.json - * Generated by: Model - *********************************************************/ - -public class ChannelLeftBridge_impl_ari_1_6_0 extends Event_impl_ari_1_6_0 implements ChannelLeftBridge, java.io.Serializable { -private static final long serialVersionUID = 1L; - /** */ - private Bridge bridge; - public Bridge getBridge() { - return bridge; - } - - @JsonDeserialize( as=Bridge_impl_ari_1_6_0.class ) - public void setBridge(Bridge val ) { - bridge = val; - } - - /** */ - private Channel channel; - public Channel getChannel() { - return channel; - } - - @JsonDeserialize( as=Channel_impl_ari_1_6_0.class ) - public void setChannel(Channel val ) { - channel = val; - } - -/** No missing signatures from interface */ -} - diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_6_0/models/ChannelStateChange_impl_ari_1_6_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_6_0/models/ChannelStateChange_impl_ari_1_6_0.java deleted file mode 100644 index afb2c07e..00000000 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_6_0/models/ChannelStateChange_impl_ari_1_6_0.java +++ /dev/null @@ -1,37 +0,0 @@ -package ch.loway.oss.ari4java.generated.ari_1_6_0.models; - -// ---------------------------------------------------- -// THIS CLASS WAS GENERATED AUTOMATICALLY -// PLEASE DO NOT EDIT -// Generated on: Tue Dec 19 09:55:49 CET 2017 -// ---------------------------------------------------- - -import ch.loway.oss.ari4java.generated.*; -import com.fasterxml.jackson.databind.annotation.JsonDeserialize; -import java.util.Date; -import java.util.List; -import java.util.Map; - -/********************************************************** - * Notification of a channel's state change. - * - * Defined in file: events.json - * Generated by: Model - *********************************************************/ - -public class ChannelStateChange_impl_ari_1_6_0 extends Event_impl_ari_1_6_0 implements ChannelStateChange, java.io.Serializable { -private static final long serialVersionUID = 1L; - /** */ - private Channel channel; - public Channel getChannel() { - return channel; - } - - @JsonDeserialize( as=Channel_impl_ari_1_6_0.class ) - public void setChannel(Channel val ) { - channel = val; - } - -/** No missing signatures from interface */ -} - diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_6_0/models/ChannelTalkingFinished_impl_ari_1_6_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_6_0/models/ChannelTalkingFinished_impl_ari_1_6_0.java deleted file mode 100644 index 05300a5d..00000000 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_6_0/models/ChannelTalkingFinished_impl_ari_1_6_0.java +++ /dev/null @@ -1,48 +0,0 @@ -package ch.loway.oss.ari4java.generated.ari_1_6_0.models; - -// ---------------------------------------------------- -// THIS CLASS WAS GENERATED AUTOMATICALLY -// PLEASE DO NOT EDIT -// Generated on: Tue Dec 19 09:55:49 CET 2017 -// ---------------------------------------------------- - -import ch.loway.oss.ari4java.generated.*; -import com.fasterxml.jackson.databind.annotation.JsonDeserialize; -import java.util.Date; -import java.util.List; -import java.util.Map; - -/********************************************************** - * Talking is no longer detected on the channel. - * - * Defined in file: events.json - * Generated by: Model - *********************************************************/ - -public class ChannelTalkingFinished_impl_ari_1_6_0 extends Event_impl_ari_1_6_0 implements ChannelTalkingFinished, java.io.Serializable { -private static final long serialVersionUID = 1L; - /** The channel on which talking completed. */ - private Channel channel; - public Channel getChannel() { - return channel; - } - - @JsonDeserialize( as=Channel_impl_ari_1_6_0.class ) - public void setChannel(Channel val ) { - channel = val; - } - - /** The length of time, in milliseconds, that talking was detected on the channel */ - private int duration; - public int getDuration() { - return duration; - } - - @JsonDeserialize( as=int.class ) - public void setDuration(int val ) { - duration = val; - } - -/** No missing signatures from interface */ -} - diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_6_0/models/ChannelTalkingStarted_impl_ari_1_6_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_6_0/models/ChannelTalkingStarted_impl_ari_1_6_0.java deleted file mode 100644 index 3d3ab09a..00000000 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_6_0/models/ChannelTalkingStarted_impl_ari_1_6_0.java +++ /dev/null @@ -1,37 +0,0 @@ -package ch.loway.oss.ari4java.generated.ari_1_6_0.models; - -// ---------------------------------------------------- -// THIS CLASS WAS GENERATED AUTOMATICALLY -// PLEASE DO NOT EDIT -// Generated on: Tue Dec 19 09:55:49 CET 2017 -// ---------------------------------------------------- - -import ch.loway.oss.ari4java.generated.*; -import com.fasterxml.jackson.databind.annotation.JsonDeserialize; -import java.util.Date; -import java.util.List; -import java.util.Map; - -/********************************************************** - * Talking was detected on the channel. - * - * Defined in file: events.json - * Generated by: Model - *********************************************************/ - -public class ChannelTalkingStarted_impl_ari_1_6_0 extends Event_impl_ari_1_6_0 implements ChannelTalkingStarted, java.io.Serializable { -private static final long serialVersionUID = 1L; - /** The channel on which talking started. */ - private Channel channel; - public Channel getChannel() { - return channel; - } - - @JsonDeserialize( as=Channel_impl_ari_1_6_0.class ) - public void setChannel(Channel val ) { - channel = val; - } - -/** No missing signatures from interface */ -} - diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_6_0/models/ChannelUserevent_impl_ari_1_6_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_6_0/models/ChannelUserevent_impl_ari_1_6_0.java deleted file mode 100644 index 51335ebd..00000000 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_6_0/models/ChannelUserevent_impl_ari_1_6_0.java +++ /dev/null @@ -1,81 +0,0 @@ -package ch.loway.oss.ari4java.generated.ari_1_6_0.models; - -// ---------------------------------------------------- -// THIS CLASS WAS GENERATED AUTOMATICALLY -// PLEASE DO NOT EDIT -// Generated on: Tue Dec 19 09:55:49 CET 2017 -// ---------------------------------------------------- - -import ch.loway.oss.ari4java.generated.*; -import com.fasterxml.jackson.databind.annotation.JsonDeserialize; -import java.util.Date; -import java.util.List; -import java.util.Map; - -/********************************************************** - * User-generated event with additional user-defined fields in the object. - * - * Defined in file: events.json - * Generated by: Model - *********************************************************/ - -public class ChannelUserevent_impl_ari_1_6_0 extends Event_impl_ari_1_6_0 implements ChannelUserevent, java.io.Serializable { -private static final long serialVersionUID = 1L; - /** A bridge that is signaled with the user event. */ - private Bridge bridge; - public Bridge getBridge() { - return bridge; - } - - @JsonDeserialize( as=Bridge_impl_ari_1_6_0.class ) - public void setBridge(Bridge val ) { - bridge = val; - } - - /** A channel that is signaled with the user event. */ - private Channel channel; - public Channel getChannel() { - return channel; - } - - @JsonDeserialize( as=Channel_impl_ari_1_6_0.class ) - public void setChannel(Channel val ) { - channel = val; - } - - /** A endpoint that is signaled with the user event. */ - private Endpoint endpoint; - public Endpoint getEndpoint() { - return endpoint; - } - - @JsonDeserialize( as=Endpoint_impl_ari_1_6_0.class ) - public void setEndpoint(Endpoint val ) { - endpoint = val; - } - - /** The name of the user event. */ - private String eventname; - public String getEventname() { - return eventname; - } - - @JsonDeserialize( as=String.class ) - public void setEventname(String val ) { - eventname = val; - } - - /** Custom Userevent data */ - private String userevent; - public String getUserevent() { - return userevent; - } - - @JsonDeserialize( as=String.class ) - public void setUserevent(String val ) { - userevent = val; - } - -/** No missing signatures from interface */ -} - diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_6_0/models/ChannelVarset_impl_ari_1_6_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_6_0/models/ChannelVarset_impl_ari_1_6_0.java deleted file mode 100644 index efbe29f5..00000000 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_6_0/models/ChannelVarset_impl_ari_1_6_0.java +++ /dev/null @@ -1,61 +0,0 @@ -package ch.loway.oss.ari4java.generated.ari_1_6_0.models; - -// ---------------------------------------------------- -// THIS CLASS WAS GENERATED AUTOMATICALLY -// PLEASE DO NOT EDIT -// Generated on: Tue Dec 19 09:55:49 CET 2017 -// ---------------------------------------------------- - -import ch.loway.oss.ari4java.generated.*; -import com.fasterxml.jackson.databind.annotation.JsonDeserialize; -import java.util.Date; -import java.util.List; -import java.util.Map; - -/********************************************************** - * Channel variable changed. - * - * Defined in file: events.json - * Generated by: Model - *********************************************************/ - -public class ChannelVarset_impl_ari_1_6_0 extends Event_impl_ari_1_6_0 implements ChannelVarset, java.io.Serializable { -private static final long serialVersionUID = 1L; - /** The channel on which the variable was set. - -If missing, the variable is a global variable. */ - private Channel channel; - public Channel getChannel() { - return channel; - } - - @JsonDeserialize( as=Channel_impl_ari_1_6_0.class ) - public void setChannel(Channel val ) { - channel = val; - } - - /** The new value of the variable. */ - private String value; - public String getValue() { - return value; - } - - @JsonDeserialize( as=String.class ) - public void setValue(String val ) { - value = val; - } - - /** The variable that changed. */ - private String variable; - public String getVariable() { - return variable; - } - - @JsonDeserialize( as=String.class ) - public void setVariable(String val ) { - variable = val; - } - -/** No missing signatures from interface */ -} - diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_6_0/models/Channel_impl_ari_1_6_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_6_0/models/Channel_impl_ari_1_6_0.java deleted file mode 100644 index b266a54a..00000000 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_6_0/models/Channel_impl_ari_1_6_0.java +++ /dev/null @@ -1,151 +0,0 @@ -package ch.loway.oss.ari4java.generated.ari_1_6_0.models; - -// ---------------------------------------------------- -// THIS CLASS WAS GENERATED AUTOMATICALLY -// PLEASE DO NOT EDIT -// Generated on: Tue Dec 19 09:55:49 CET 2017 -// ---------------------------------------------------- - -import ch.loway.oss.ari4java.generated.*; -import com.fasterxml.jackson.databind.annotation.JsonDeserialize; -import java.util.Date; -import java.util.List; -import java.util.Map; - -/********************************************************** - * A specific communication connection between Asterisk and an Endpoint. - * - * Defined in file: channels.json - * Generated by: Model - *********************************************************/ - -public class Channel_impl_ari_1_6_0 implements Channel, java.io.Serializable { -private static final long serialVersionUID = 1L; - /** */ - private String accountcode; - public String getAccountcode() { - return accountcode; - } - - @JsonDeserialize( as=String.class ) - public void setAccountcode(String val ) { - accountcode = val; - } - - /** */ - private CallerID caller; - public CallerID getCaller() { - return caller; - } - - @JsonDeserialize( as=CallerID_impl_ari_1_6_0.class ) - public void setCaller(CallerID val ) { - caller = val; - } - - /** */ - private CallerID connected; - public CallerID getConnected() { - return connected; - } - - @JsonDeserialize( as=CallerID_impl_ari_1_6_0.class ) - public void setConnected(CallerID val ) { - connected = val; - } - - /** Timestamp when channel was created */ - private Date creationtime; - public Date getCreationtime() { - return creationtime; - } - - @JsonDeserialize( as=Date.class ) - public void setCreationtime(Date val ) { - creationtime = val; - } - - /** Current location in the dialplan */ - private DialplanCEP dialplan; - public DialplanCEP getDialplan() { - return dialplan; - } - - @JsonDeserialize( as=DialplanCEP_impl_ari_1_6_0.class ) - public void setDialplan(DialplanCEP val ) { - dialplan = val; - } - - /** Unique identifier of the channel. - -This is the same as the Uniqueid field in AMI. */ - private String id; - public String getId() { - return id; - } - - @JsonDeserialize( as=String.class ) - public void setId(String val ) { - id = val; - } - - /** Name of the channel (i.e. SIP/foo-0000a7e3) */ - private String name; - public String getName() { - return name; - } - - @JsonDeserialize( as=String.class ) - public void setName(String val ) { - name = val; - } - - /** */ - private String state; - public String getState() { - return state; - } - - @JsonDeserialize( as=String.class ) - public void setState(String val ) { - state = val; - } - -/********************************************************** - * The default spoken language - * - * @since ari_1_7_0 - *********************************************************/ - public String getLanguage(){ - throw new UnsupportedOperationException("Method availble from ..."); -}; - -/********************************************************** - * The default spoken language - * - * @since ari_1_7_0 - *********************************************************/ - public void setLanguage(String val ){ - throw new UnsupportedOperationException("Method availble from ..."); -}; - -/********************************************************** - * Channel variables - * - * @since ari_2_0_0 - *********************************************************/ - public String getChannelvars(){ - throw new UnsupportedOperationException("Method availble from ..."); -}; - -/********************************************************** - * Channel variables - * - * @since ari_2_0_0 - *********************************************************/ - public void setChannelvars(String val ){ - throw new UnsupportedOperationException("Method availble from ..."); -}; - -} - diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_6_0/models/ConfigInfo_impl_ari_1_6_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_6_0/models/ConfigInfo_impl_ari_1_6_0.java deleted file mode 100644 index 73575c87..00000000 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_6_0/models/ConfigInfo_impl_ari_1_6_0.java +++ /dev/null @@ -1,92 +0,0 @@ -package ch.loway.oss.ari4java.generated.ari_1_6_0.models; - -// ---------------------------------------------------- -// THIS CLASS WAS GENERATED AUTOMATICALLY -// PLEASE DO NOT EDIT -// Generated on: Tue Dec 19 09:55:49 CET 2017 -// ---------------------------------------------------- - -import ch.loway.oss.ari4java.generated.*; -import com.fasterxml.jackson.databind.annotation.JsonDeserialize; -import java.util.Date; -import java.util.List; -import java.util.Map; - -/********************************************************** - * Info about Asterisk configuration - * - * Defined in file: asterisk.json - * Generated by: Model - *********************************************************/ - -public class ConfigInfo_impl_ari_1_6_0 implements ConfigInfo, java.io.Serializable { -private static final long serialVersionUID = 1L; - /** Default language for media playback. */ - private String default_language; - public String getDefault_language() { - return default_language; - } - - @JsonDeserialize( as=String.class ) - public void setDefault_language(String val ) { - default_language = val; - } - - /** Maximum number of simultaneous channels. */ - private int max_channels; - public int getMax_channels() { - return max_channels; - } - - @JsonDeserialize( as=int.class ) - public void setMax_channels(int val ) { - max_channels = val; - } - - /** Maximum load avg on system. */ - private double max_load; - public double getMax_load() { - return max_load; - } - - @JsonDeserialize( as=double.class ) - public void setMax_load(double val ) { - max_load = val; - } - - /** Maximum number of open file handles (files, sockets). */ - private int max_open_files; - public int getMax_open_files() { - return max_open_files; - } - - @JsonDeserialize( as=int.class ) - public void setMax_open_files(int val ) { - max_open_files = val; - } - - /** Asterisk system name. */ - private String name; - public String getName() { - return name; - } - - @JsonDeserialize( as=String.class ) - public void setName(String val ) { - name = val; - } - - /** Effective user/group id for running Asterisk. */ - private SetId setid; - public SetId getSetid() { - return setid; - } - - @JsonDeserialize( as=SetId_impl_ari_1_6_0.class ) - public void setSetid(SetId val ) { - setid = val; - } - -/** No missing signatures from interface */ -} - diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_6_0/models/DeviceStateChanged_impl_ari_1_6_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_6_0/models/DeviceStateChanged_impl_ari_1_6_0.java deleted file mode 100644 index 4285195e..00000000 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_6_0/models/DeviceStateChanged_impl_ari_1_6_0.java +++ /dev/null @@ -1,37 +0,0 @@ -package ch.loway.oss.ari4java.generated.ari_1_6_0.models; - -// ---------------------------------------------------- -// THIS CLASS WAS GENERATED AUTOMATICALLY -// PLEASE DO NOT EDIT -// Generated on: Tue Dec 19 09:55:49 CET 2017 -// ---------------------------------------------------- - -import ch.loway.oss.ari4java.generated.*; -import com.fasterxml.jackson.databind.annotation.JsonDeserialize; -import java.util.Date; -import java.util.List; -import java.util.Map; - -/********************************************************** - * Notification that a device state has changed. - * - * Defined in file: events.json - * Generated by: Model - *********************************************************/ - -public class DeviceStateChanged_impl_ari_1_6_0 extends Event_impl_ari_1_6_0 implements DeviceStateChanged, java.io.Serializable { -private static final long serialVersionUID = 1L; - /** Device state object */ - private DeviceState device_state; - public DeviceState getDevice_state() { - return device_state; - } - - @JsonDeserialize( as=DeviceState_impl_ari_1_6_0.class ) - public void setDevice_state(DeviceState val ) { - device_state = val; - } - -/** No missing signatures from interface */ -} - diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_6_0/models/DeviceState_impl_ari_1_6_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_6_0/models/DeviceState_impl_ari_1_6_0.java deleted file mode 100644 index fc9ab1e2..00000000 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_6_0/models/DeviceState_impl_ari_1_6_0.java +++ /dev/null @@ -1,48 +0,0 @@ -package ch.loway.oss.ari4java.generated.ari_1_6_0.models; - -// ---------------------------------------------------- -// THIS CLASS WAS GENERATED AUTOMATICALLY -// PLEASE DO NOT EDIT -// Generated on: Tue Dec 19 09:55:49 CET 2017 -// ---------------------------------------------------- - -import ch.loway.oss.ari4java.generated.*; -import com.fasterxml.jackson.databind.annotation.JsonDeserialize; -import java.util.Date; -import java.util.List; -import java.util.Map; - -/********************************************************** - * Represents the state of a device. - * - * Defined in file: deviceStates.json - * Generated by: Model - *********************************************************/ - -public class DeviceState_impl_ari_1_6_0 implements DeviceState, java.io.Serializable { -private static final long serialVersionUID = 1L; - /** Name of the device. */ - private String name; - public String getName() { - return name; - } - - @JsonDeserialize( as=String.class ) - public void setName(String val ) { - name = val; - } - - /** Device's state */ - private String state; - public String getState() { - return state; - } - - @JsonDeserialize( as=String.class ) - public void setState(String val ) { - state = val; - } - -/** No missing signatures from interface */ -} - diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_6_0/models/Dial_impl_ari_1_6_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_6_0/models/Dial_impl_ari_1_6_0.java deleted file mode 100644 index fdcd3a15..00000000 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_6_0/models/Dial_impl_ari_1_6_0.java +++ /dev/null @@ -1,92 +0,0 @@ -package ch.loway.oss.ari4java.generated.ari_1_6_0.models; - -// ---------------------------------------------------- -// THIS CLASS WAS GENERATED AUTOMATICALLY -// PLEASE DO NOT EDIT -// Generated on: Tue Dec 19 09:55:49 CET 2017 -// ---------------------------------------------------- - -import ch.loway.oss.ari4java.generated.*; -import com.fasterxml.jackson.databind.annotation.JsonDeserialize; -import java.util.Date; -import java.util.List; -import java.util.Map; - -/********************************************************** - * Dialing state has changed. - * - * Defined in file: events.json - * Generated by: Model - *********************************************************/ - -public class Dial_impl_ari_1_6_0 extends Event_impl_ari_1_6_0 implements Dial, java.io.Serializable { -private static final long serialVersionUID = 1L; - /** The calling channel. */ - private Channel caller; - public Channel getCaller() { - return caller; - } - - @JsonDeserialize( as=Channel_impl_ari_1_6_0.class ) - public void setCaller(Channel val ) { - caller = val; - } - - /** Current status of the dialing attempt to the peer. */ - private String dialstatus; - public String getDialstatus() { - return dialstatus; - } - - @JsonDeserialize( as=String.class ) - public void setDialstatus(String val ) { - dialstatus = val; - } - - /** The dial string for calling the peer channel. */ - private String dialstring; - public String getDialstring() { - return dialstring; - } - - @JsonDeserialize( as=String.class ) - public void setDialstring(String val ) { - dialstring = val; - } - - /** Forwarding target requested by the original dialed channel. */ - private String forward; - public String getForward() { - return forward; - } - - @JsonDeserialize( as=String.class ) - public void setForward(String val ) { - forward = val; - } - - /** Channel that the caller has been forwarded to. */ - private Channel forwarded; - public Channel getForwarded() { - return forwarded; - } - - @JsonDeserialize( as=Channel_impl_ari_1_6_0.class ) - public void setForwarded(Channel val ) { - forwarded = val; - } - - /** The dialed channel. */ - private Channel peer; - public Channel getPeer() { - return peer; - } - - @JsonDeserialize( as=Channel_impl_ari_1_6_0.class ) - public void setPeer(Channel val ) { - peer = val; - } - -/** No missing signatures from interface */ -} - diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_6_0/models/Dialed_impl_ari_1_6_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_6_0/models/Dialed_impl_ari_1_6_0.java deleted file mode 100644 index fadb925d..00000000 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_6_0/models/Dialed_impl_ari_1_6_0.java +++ /dev/null @@ -1,26 +0,0 @@ -package ch.loway.oss.ari4java.generated.ari_1_6_0.models; - -// ---------------------------------------------------- -// THIS CLASS WAS GENERATED AUTOMATICALLY -// PLEASE DO NOT EDIT -// Generated on: Tue Dec 19 09:55:49 CET 2017 -// ---------------------------------------------------- - -import ch.loway.oss.ari4java.generated.*; -import com.fasterxml.jackson.databind.annotation.JsonDeserialize; -import java.util.Date; -import java.util.List; -import java.util.Map; - -/********************************************************** - * Dialed channel information. - * - * Defined in file: channels.json - * Generated by: Model - *********************************************************/ - -public class Dialed_impl_ari_1_6_0 implements Dialed, java.io.Serializable { -private static final long serialVersionUID = 1L; -/** No missing signatures from interface */ -} - diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_6_0/models/DialplanCEP_impl_ari_1_6_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_6_0/models/DialplanCEP_impl_ari_1_6_0.java deleted file mode 100644 index ead1d6ba..00000000 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_6_0/models/DialplanCEP_impl_ari_1_6_0.java +++ /dev/null @@ -1,59 +0,0 @@ -package ch.loway.oss.ari4java.generated.ari_1_6_0.models; - -// ---------------------------------------------------- -// THIS CLASS WAS GENERATED AUTOMATICALLY -// PLEASE DO NOT EDIT -// Generated on: Tue Dec 19 09:55:49 CET 2017 -// ---------------------------------------------------- - -import ch.loway.oss.ari4java.generated.*; -import com.fasterxml.jackson.databind.annotation.JsonDeserialize; -import java.util.Date; -import java.util.List; -import java.util.Map; - -/********************************************************** - * Dialplan location (context/extension/priority) - * - * Defined in file: channels.json - * Generated by: Model - *********************************************************/ - -public class DialplanCEP_impl_ari_1_6_0 implements DialplanCEP, java.io.Serializable { -private static final long serialVersionUID = 1L; - /** Context in the dialplan */ - private String context; - public String getContext() { - return context; - } - - @JsonDeserialize( as=String.class ) - public void setContext(String val ) { - context = val; - } - - /** Extension in the dialplan */ - private String exten; - public String getExten() { - return exten; - } - - @JsonDeserialize( as=String.class ) - public void setExten(String val ) { - exten = val; - } - - /** Priority in the dialplan */ - private long priority; - public long getPriority() { - return priority; - } - - @JsonDeserialize( as=long.class ) - public void setPriority(long val ) { - priority = val; - } - -/** No missing signatures from interface */ -} - diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_6_0/models/EndpointStateChange_impl_ari_1_6_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_6_0/models/EndpointStateChange_impl_ari_1_6_0.java deleted file mode 100644 index 2cc483dc..00000000 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_6_0/models/EndpointStateChange_impl_ari_1_6_0.java +++ /dev/null @@ -1,37 +0,0 @@ -package ch.loway.oss.ari4java.generated.ari_1_6_0.models; - -// ---------------------------------------------------- -// THIS CLASS WAS GENERATED AUTOMATICALLY -// PLEASE DO NOT EDIT -// Generated on: Tue Dec 19 09:55:49 CET 2017 -// ---------------------------------------------------- - -import ch.loway.oss.ari4java.generated.*; -import com.fasterxml.jackson.databind.annotation.JsonDeserialize; -import java.util.Date; -import java.util.List; -import java.util.Map; - -/********************************************************** - * Endpoint state changed. - * - * Defined in file: events.json - * Generated by: Model - *********************************************************/ - -public class EndpointStateChange_impl_ari_1_6_0 extends Event_impl_ari_1_6_0 implements EndpointStateChange, java.io.Serializable { -private static final long serialVersionUID = 1L; - /** */ - private Endpoint endpoint; - public Endpoint getEndpoint() { - return endpoint; - } - - @JsonDeserialize( as=Endpoint_impl_ari_1_6_0.class ) - public void setEndpoint(Endpoint val ) { - endpoint = val; - } - -/** No missing signatures from interface */ -} - diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_6_0/models/Endpoint_impl_ari_1_6_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_6_0/models/Endpoint_impl_ari_1_6_0.java deleted file mode 100644 index 6f656445..00000000 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_6_0/models/Endpoint_impl_ari_1_6_0.java +++ /dev/null @@ -1,72 +0,0 @@ -package ch.loway.oss.ari4java.generated.ari_1_6_0.models; - -// ---------------------------------------------------- -// THIS CLASS WAS GENERATED AUTOMATICALLY -// PLEASE DO NOT EDIT -// Generated on: Tue Dec 19 09:55:49 CET 2017 -// ---------------------------------------------------- - -import ch.loway.oss.ari4java.generated.*; -import com.fasterxml.jackson.databind.annotation.JsonDeserialize; -import java.util.Date; -import java.util.List; -import java.util.Map; - -/********************************************************** - * An external device that may offer/accept calls to/from Asterisk. - * - * Unlike most resources, which have a single unique identifier, an endpoint is uniquely identified by the technology/resource pair. - * - * Defined in file: endpoints.json - * Generated by: Model - *********************************************************/ - -public class Endpoint_impl_ari_1_6_0 implements Endpoint, java.io.Serializable { -private static final long serialVersionUID = 1L; - /** Id's of channels associated with this endpoint */ - private List channel_ids; - public List getChannel_ids() { - return channel_ids; - } - - @JsonDeserialize( contentAs=String.class ) - public void setChannel_ids(List val ) { - channel_ids = val; - } - - /** Identifier of the endpoint, specific to the given technology. */ - private String resource; - public String getResource() { - return resource; - } - - @JsonDeserialize( as=String.class ) - public void setResource(String val ) { - resource = val; - } - - /** Endpoint's state */ - private String state; - public String getState() { - return state; - } - - @JsonDeserialize( as=String.class ) - public void setState(String val ) { - state = val; - } - - /** Technology of the endpoint */ - private String technology; - public String getTechnology() { - return technology; - } - - @JsonDeserialize( as=String.class ) - public void setTechnology(String val ) { - technology = val; - } - -/** No missing signatures from interface */ -} - diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_6_0/models/Event_impl_ari_1_6_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_6_0/models/Event_impl_ari_1_6_0.java deleted file mode 100644 index be76e404..00000000 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_6_0/models/Event_impl_ari_1_6_0.java +++ /dev/null @@ -1,48 +0,0 @@ -package ch.loway.oss.ari4java.generated.ari_1_6_0.models; - -// ---------------------------------------------------- -// THIS CLASS WAS GENERATED AUTOMATICALLY -// PLEASE DO NOT EDIT -// Generated on: Tue Dec 19 09:55:49 CET 2017 -// ---------------------------------------------------- - -import ch.loway.oss.ari4java.generated.*; -import com.fasterxml.jackson.databind.annotation.JsonDeserialize; -import java.util.Date; -import java.util.List; -import java.util.Map; - -/********************************************************** - * Base type for asynchronous events from Asterisk. - * - * Defined in file: events.json - * Generated by: Model - *********************************************************/ - -public class Event_impl_ari_1_6_0 extends Message_impl_ari_1_6_0 implements Event, java.io.Serializable { -private static final long serialVersionUID = 1L; - /** Name of the application receiving the event. */ - private String application; - public String getApplication() { - return application; - } - - @JsonDeserialize( as=String.class ) - public void setApplication(String val ) { - application = val; - } - - /** Time at which this event was created. */ - private Date timestamp; - public Date getTimestamp() { - return timestamp; - } - - @JsonDeserialize( as=Date.class ) - public void setTimestamp(Date val ) { - timestamp = val; - } - -/** No missing signatures from interface */ -} - diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_6_0/models/FormatLangPair_impl_ari_1_6_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_6_0/models/FormatLangPair_impl_ari_1_6_0.java deleted file mode 100644 index 19104eba..00000000 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_6_0/models/FormatLangPair_impl_ari_1_6_0.java +++ /dev/null @@ -1,48 +0,0 @@ -package ch.loway.oss.ari4java.generated.ari_1_6_0.models; - -// ---------------------------------------------------- -// THIS CLASS WAS GENERATED AUTOMATICALLY -// PLEASE DO NOT EDIT -// Generated on: Tue Dec 19 09:55:49 CET 2017 -// ---------------------------------------------------- - -import ch.loway.oss.ari4java.generated.*; -import com.fasterxml.jackson.databind.annotation.JsonDeserialize; -import java.util.Date; -import java.util.List; -import java.util.Map; - -/********************************************************** - * Identifies the format and language of a sound file - * - * Defined in file: sounds.json - * Generated by: Model - *********************************************************/ - -public class FormatLangPair_impl_ari_1_6_0 implements FormatLangPair, java.io.Serializable { -private static final long serialVersionUID = 1L; - /** */ - private String format; - public String getFormat() { - return format; - } - - @JsonDeserialize( as=String.class ) - public void setFormat(String val ) { - format = val; - } - - /** */ - private String language; - public String getLanguage() { - return language; - } - - @JsonDeserialize( as=String.class ) - public void setLanguage(String val ) { - language = val; - } - -/** No missing signatures from interface */ -} - diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_6_0/models/LiveRecording_impl_ari_1_6_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_6_0/models/LiveRecording_impl_ari_1_6_0.java deleted file mode 100644 index d4b72685..00000000 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_6_0/models/LiveRecording_impl_ari_1_6_0.java +++ /dev/null @@ -1,114 +0,0 @@ -package ch.loway.oss.ari4java.generated.ari_1_6_0.models; - -// ---------------------------------------------------- -// THIS CLASS WAS GENERATED AUTOMATICALLY -// PLEASE DO NOT EDIT -// Generated on: Tue Dec 19 09:55:49 CET 2017 -// ---------------------------------------------------- - -import ch.loway.oss.ari4java.generated.*; -import com.fasterxml.jackson.databind.annotation.JsonDeserialize; -import java.util.Date; -import java.util.List; -import java.util.Map; - -/********************************************************** - * A recording that is in progress - * - * Defined in file: recordings.json - * Generated by: Model - *********************************************************/ - -public class LiveRecording_impl_ari_1_6_0 implements LiveRecording, java.io.Serializable { -private static final long serialVersionUID = 1L; - /** Cause for recording failure if failed */ - private String cause; - public String getCause() { - return cause; - } - - @JsonDeserialize( as=String.class ) - public void setCause(String val ) { - cause = val; - } - - /** Duration in seconds of the recording */ - private int duration; - public int getDuration() { - return duration; - } - - @JsonDeserialize( as=int.class ) - public void setDuration(int val ) { - duration = val; - } - - /** Recording format (wav, gsm, etc.) */ - private String format; - public String getFormat() { - return format; - } - - @JsonDeserialize( as=String.class ) - public void setFormat(String val ) { - format = val; - } - - /** Base name for the recording */ - private String name; - public String getName() { - return name; - } - - @JsonDeserialize( as=String.class ) - public void setName(String val ) { - name = val; - } - - /** Duration of silence, in seconds, detected in the recording. This is only available if the recording was initiated with a non-zero maxSilenceSeconds. */ - private int silence_duration; - public int getSilence_duration() { - return silence_duration; - } - - @JsonDeserialize( as=int.class ) - public void setSilence_duration(int val ) { - silence_duration = val; - } - - /** */ - private String state; - public String getState() { - return state; - } - - @JsonDeserialize( as=String.class ) - public void setState(String val ) { - state = val; - } - - /** Duration of talking, in seconds, detected in the recording. This is only available if the recording was initiated with a non-zero maxSilenceSeconds. */ - private int talking_duration; - public int getTalking_duration() { - return talking_duration; - } - - @JsonDeserialize( as=int.class ) - public void setTalking_duration(int val ) { - talking_duration = val; - } - - /** URI for the channel or bridge being recorded */ - private String target_uri; - public String getTarget_uri() { - return target_uri; - } - - @JsonDeserialize( as=String.class ) - public void setTarget_uri(String val ) { - target_uri = val; - } - -/** No missing signatures from interface */ -} - diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_6_0/models/Message_impl_ari_1_6_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_6_0/models/Message_impl_ari_1_6_0.java deleted file mode 100644 index 3ca7d94b..00000000 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_6_0/models/Message_impl_ari_1_6_0.java +++ /dev/null @@ -1,93 +0,0 @@ -package ch.loway.oss.ari4java.generated.ari_1_6_0.models; - -// ---------------------------------------------------- -// THIS CLASS WAS GENERATED AUTOMATICALLY -// PLEASE DO NOT EDIT -// Generated on: Tue Dec 19 09:55:49 CET 2017 -// ---------------------------------------------------- - -import ch.loway.oss.ari4java.generated.*; -import com.fasterxml.jackson.annotation.JsonSubTypes; -import com.fasterxml.jackson.annotation.JsonSubTypes.Type; -import com.fasterxml.jackson.annotation.JsonTypeInfo; -import com.fasterxml.jackson.databind.annotation.JsonDeserialize; -import java.util.Date; -import java.util.List; -import java.util.Map; - -/********************************************************** - * Base type for errors and events - * - * Defined in file: events.json - * Generated by: Model - *********************************************************/ - @JsonTypeInfo( use = JsonTypeInfo.Id.NAME, include = JsonTypeInfo.As.PROPERTY, property = "type") - @JsonSubTypes({ @Type(value = MissingParams_impl_ari_1_6_0.class, name = "MissingParams") -, @Type(value = Event_impl_ari_1_6_0.class, name = "Event") -, @Type(value = DeviceStateChanged_impl_ari_1_6_0.class, name = "DeviceStateChanged") -, @Type(value = PlaybackStarted_impl_ari_1_6_0.class, name = "PlaybackStarted") -, @Type(value = PlaybackFinished_impl_ari_1_6_0.class, name = "PlaybackFinished") -, @Type(value = RecordingStarted_impl_ari_1_6_0.class, name = "RecordingStarted") -, @Type(value = RecordingFinished_impl_ari_1_6_0.class, name = "RecordingFinished") -, @Type(value = RecordingFailed_impl_ari_1_6_0.class, name = "RecordingFailed") -, @Type(value = ApplicationReplaced_impl_ari_1_6_0.class, name = "ApplicationReplaced") -, @Type(value = BridgeCreated_impl_ari_1_6_0.class, name = "BridgeCreated") -, @Type(value = BridgeDestroyed_impl_ari_1_6_0.class, name = "BridgeDestroyed") -, @Type(value = BridgeMerged_impl_ari_1_6_0.class, name = "BridgeMerged") -, @Type(value = BridgeBlindTransfer_impl_ari_1_6_0.class, name = "BridgeBlindTransfer") -, @Type(value = BridgeAttendedTransfer_impl_ari_1_6_0.class, name = "BridgeAttendedTransfer") -, @Type(value = ChannelCreated_impl_ari_1_6_0.class, name = "ChannelCreated") -, @Type(value = ChannelDestroyed_impl_ari_1_6_0.class, name = "ChannelDestroyed") -, @Type(value = ChannelEnteredBridge_impl_ari_1_6_0.class, name = "ChannelEnteredBridge") -, @Type(value = ChannelLeftBridge_impl_ari_1_6_0.class, name = "ChannelLeftBridge") -, @Type(value = ChannelStateChange_impl_ari_1_6_0.class, name = "ChannelStateChange") -, @Type(value = ChannelDtmfReceived_impl_ari_1_6_0.class, name = "ChannelDtmfReceived") -, @Type(value = ChannelDialplan_impl_ari_1_6_0.class, name = "ChannelDialplan") -, @Type(value = ChannelCallerId_impl_ari_1_6_0.class, name = "ChannelCallerId") -, @Type(value = ChannelUserevent_impl_ari_1_6_0.class, name = "ChannelUserevent") -, @Type(value = ChannelHangupRequest_impl_ari_1_6_0.class, name = "ChannelHangupRequest") -, @Type(value = ChannelVarset_impl_ari_1_6_0.class, name = "ChannelVarset") -, @Type(value = ChannelTalkingStarted_impl_ari_1_6_0.class, name = "ChannelTalkingStarted") -, @Type(value = ChannelTalkingFinished_impl_ari_1_6_0.class, name = "ChannelTalkingFinished") -, @Type(value = EndpointStateChange_impl_ari_1_6_0.class, name = "EndpointStateChange") -, @Type(value = Dial_impl_ari_1_6_0.class, name = "Dial") -, @Type(value = StasisEnd_impl_ari_1_6_0.class, name = "StasisEnd") -, @Type(value = StasisStart_impl_ari_1_6_0.class, name = "StasisStart") -, @Type(value = TextMessageReceived_impl_ari_1_6_0.class, name = "TextMessageReceived") -, @Type(value = ChannelConnectedLine_impl_ari_1_6_0.class, name = "ChannelConnectedLine") - }) - - -public class Message_impl_ari_1_6_0 implements Message, java.io.Serializable { -private static final long serialVersionUID = 1L; - /** Indicates the type of this message. */ - private String type; - public String getType() { - return type; - } - - @JsonDeserialize( as=String.class ) - public void setType(String val ) { - type = val; - } - -/********************************************************** - * The unique ID for the Asterisk instance that raised this event. - * - * @since ari_2_0_0 - *********************************************************/ - public void setAsterisk_id(String val ){ - throw new UnsupportedOperationException("Method availble from ..."); -}; - -/********************************************************** - * The unique ID for the Asterisk instance that raised this event. - * - * @since ari_2_0_0 - *********************************************************/ - public String getAsterisk_id(){ - throw new UnsupportedOperationException("Method availble from ..."); -}; - -} - diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_6_0/models/MissingParams_impl_ari_1_6_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_6_0/models/MissingParams_impl_ari_1_6_0.java deleted file mode 100644 index 9f508977..00000000 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_6_0/models/MissingParams_impl_ari_1_6_0.java +++ /dev/null @@ -1,37 +0,0 @@ -package ch.loway.oss.ari4java.generated.ari_1_6_0.models; - -// ---------------------------------------------------- -// THIS CLASS WAS GENERATED AUTOMATICALLY -// PLEASE DO NOT EDIT -// Generated on: Tue Dec 19 09:55:49 CET 2017 -// ---------------------------------------------------- - -import ch.loway.oss.ari4java.generated.*; -import com.fasterxml.jackson.databind.annotation.JsonDeserialize; -import java.util.Date; -import java.util.List; -import java.util.Map; - -/********************************************************** - * Error event sent when required params are missing. - * - * Defined in file: events.json - * Generated by: Model - *********************************************************/ - -public class MissingParams_impl_ari_1_6_0 extends Message_impl_ari_1_6_0 implements MissingParams, java.io.Serializable { -private static final long serialVersionUID = 1L; - /** A list of the missing parameters */ - private List params; - public List getParams() { - return params; - } - - @JsonDeserialize( contentAs=String.class ) - public void setParams(List val ) { - params = val; - } - -/** No missing signatures from interface */ -} - diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_6_0/models/PlaybackFinished_impl_ari_1_6_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_6_0/models/PlaybackFinished_impl_ari_1_6_0.java deleted file mode 100644 index 31bfa302..00000000 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_6_0/models/PlaybackFinished_impl_ari_1_6_0.java +++ /dev/null @@ -1,37 +0,0 @@ -package ch.loway.oss.ari4java.generated.ari_1_6_0.models; - -// ---------------------------------------------------- -// THIS CLASS WAS GENERATED AUTOMATICALLY -// PLEASE DO NOT EDIT -// Generated on: Tue Dec 19 09:55:49 CET 2017 -// ---------------------------------------------------- - -import ch.loway.oss.ari4java.generated.*; -import com.fasterxml.jackson.databind.annotation.JsonDeserialize; -import java.util.Date; -import java.util.List; -import java.util.Map; - -/********************************************************** - * Event showing the completion of a media playback operation. - * - * Defined in file: events.json - * Generated by: Model - *********************************************************/ - -public class PlaybackFinished_impl_ari_1_6_0 extends Event_impl_ari_1_6_0 implements PlaybackFinished, java.io.Serializable { -private static final long serialVersionUID = 1L; - /** Playback control object */ - private Playback playback; - public Playback getPlayback() { - return playback; - } - - @JsonDeserialize( as=Playback_impl_ari_1_6_0.class ) - public void setPlayback(Playback val ) { - playback = val; - } - -/** No missing signatures from interface */ -} - diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_6_0/models/PlaybackStarted_impl_ari_1_6_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_6_0/models/PlaybackStarted_impl_ari_1_6_0.java deleted file mode 100644 index 72b01ca2..00000000 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_6_0/models/PlaybackStarted_impl_ari_1_6_0.java +++ /dev/null @@ -1,37 +0,0 @@ -package ch.loway.oss.ari4java.generated.ari_1_6_0.models; - -// ---------------------------------------------------- -// THIS CLASS WAS GENERATED AUTOMATICALLY -// PLEASE DO NOT EDIT -// Generated on: Tue Dec 19 09:55:49 CET 2017 -// ---------------------------------------------------- - -import ch.loway.oss.ari4java.generated.*; -import com.fasterxml.jackson.databind.annotation.JsonDeserialize; -import java.util.Date; -import java.util.List; -import java.util.Map; - -/********************************************************** - * Event showing the start of a media playback operation. - * - * Defined in file: events.json - * Generated by: Model - *********************************************************/ - -public class PlaybackStarted_impl_ari_1_6_0 extends Event_impl_ari_1_6_0 implements PlaybackStarted, java.io.Serializable { -private static final long serialVersionUID = 1L; - /** Playback control object */ - private Playback playback; - public Playback getPlayback() { - return playback; - } - - @JsonDeserialize( as=Playback_impl_ari_1_6_0.class ) - public void setPlayback(Playback val ) { - playback = val; - } - -/** No missing signatures from interface */ -} - diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_6_0/models/Playback_impl_ari_1_6_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_6_0/models/Playback_impl_ari_1_6_0.java deleted file mode 100644 index f5aa25df..00000000 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_6_0/models/Playback_impl_ari_1_6_0.java +++ /dev/null @@ -1,98 +0,0 @@ -package ch.loway.oss.ari4java.generated.ari_1_6_0.models; - -// ---------------------------------------------------- -// THIS CLASS WAS GENERATED AUTOMATICALLY -// PLEASE DO NOT EDIT -// Generated on: Tue Dec 19 09:55:49 CET 2017 -// ---------------------------------------------------- - -import ch.loway.oss.ari4java.generated.*; -import com.fasterxml.jackson.databind.annotation.JsonDeserialize; -import java.util.Date; -import java.util.List; -import java.util.Map; - -/********************************************************** - * Object representing the playback of media to a channel - * - * Defined in file: playbacks.json - * Generated by: Model - *********************************************************/ - -public class Playback_impl_ari_1_6_0 implements Playback, java.io.Serializable { -private static final long serialVersionUID = 1L; - /** ID for this playback operation */ - private String id; - public String getId() { - return id; - } - - @JsonDeserialize( as=String.class ) - public void setId(String val ) { - id = val; - } - - /** For media types that support multiple languages, the language requested for playback. */ - private String language; - public String getLanguage() { - return language; - } - - @JsonDeserialize( as=String.class ) - public void setLanguage(String val ) { - language = val; - } - - /** URI for the media to play back. */ - private String media_uri; - public String getMedia_uri() { - return media_uri; - } - - @JsonDeserialize( as=String.class ) - public void setMedia_uri(String val ) { - media_uri = val; - } - - /** Current state of the playback operation. */ - private String state; - public String getState() { - return state; - } - - @JsonDeserialize( as=String.class ) - public void setState(String val ) { - state = val; - } - - /** URI for the channel or bridge to play the media on */ - private String target_uri; - public String getTarget_uri() { - return target_uri; - } - - @JsonDeserialize( as=String.class ) - public void setTarget_uri(String val ) { - target_uri = val; - } - -/********************************************************** - * If a list of URIs is being played, the next media URI to be played back. - * - * @since ari_1_10_0 - *********************************************************/ - public String getNext_media_uri(){ - throw new UnsupportedOperationException("Method availble from ..."); -}; - -/********************************************************** - * If a list of URIs is being played, the next media URI to be played back. - * - * @since ari_1_10_0 - *********************************************************/ - public void setNext_media_uri(String val ){ - throw new UnsupportedOperationException("Method availble from ..."); -}; - -} - diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_6_0/models/RecordingFailed_impl_ari_1_6_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_6_0/models/RecordingFailed_impl_ari_1_6_0.java deleted file mode 100644 index b256ad3a..00000000 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_6_0/models/RecordingFailed_impl_ari_1_6_0.java +++ /dev/null @@ -1,37 +0,0 @@ -package ch.loway.oss.ari4java.generated.ari_1_6_0.models; - -// ---------------------------------------------------- -// THIS CLASS WAS GENERATED AUTOMATICALLY -// PLEASE DO NOT EDIT -// Generated on: Tue Dec 19 09:55:49 CET 2017 -// ---------------------------------------------------- - -import ch.loway.oss.ari4java.generated.*; -import com.fasterxml.jackson.databind.annotation.JsonDeserialize; -import java.util.Date; -import java.util.List; -import java.util.Map; - -/********************************************************** - * Event showing failure of a recording operation. - * - * Defined in file: events.json - * Generated by: Model - *********************************************************/ - -public class RecordingFailed_impl_ari_1_6_0 extends Event_impl_ari_1_6_0 implements RecordingFailed, java.io.Serializable { -private static final long serialVersionUID = 1L; - /** Recording control object */ - private LiveRecording recording; - public LiveRecording getRecording() { - return recording; - } - - @JsonDeserialize( as=LiveRecording_impl_ari_1_6_0.class ) - public void setRecording(LiveRecording val ) { - recording = val; - } - -/** No missing signatures from interface */ -} - diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_6_0/models/RecordingFinished_impl_ari_1_6_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_6_0/models/RecordingFinished_impl_ari_1_6_0.java deleted file mode 100644 index 9f7b8877..00000000 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_6_0/models/RecordingFinished_impl_ari_1_6_0.java +++ /dev/null @@ -1,37 +0,0 @@ -package ch.loway.oss.ari4java.generated.ari_1_6_0.models; - -// ---------------------------------------------------- -// THIS CLASS WAS GENERATED AUTOMATICALLY -// PLEASE DO NOT EDIT -// Generated on: Tue Dec 19 09:55:49 CET 2017 -// ---------------------------------------------------- - -import ch.loway.oss.ari4java.generated.*; -import com.fasterxml.jackson.databind.annotation.JsonDeserialize; -import java.util.Date; -import java.util.List; -import java.util.Map; - -/********************************************************** - * Event showing the completion of a recording operation. - * - * Defined in file: events.json - * Generated by: Model - *********************************************************/ - -public class RecordingFinished_impl_ari_1_6_0 extends Event_impl_ari_1_6_0 implements RecordingFinished, java.io.Serializable { -private static final long serialVersionUID = 1L; - /** Recording control object */ - private LiveRecording recording; - public LiveRecording getRecording() { - return recording; - } - - @JsonDeserialize( as=LiveRecording_impl_ari_1_6_0.class ) - public void setRecording(LiveRecording val ) { - recording = val; - } - -/** No missing signatures from interface */ -} - diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_6_0/models/RecordingStarted_impl_ari_1_6_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_6_0/models/RecordingStarted_impl_ari_1_6_0.java deleted file mode 100644 index a1ec5b7e..00000000 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_6_0/models/RecordingStarted_impl_ari_1_6_0.java +++ /dev/null @@ -1,37 +0,0 @@ -package ch.loway.oss.ari4java.generated.ari_1_6_0.models; - -// ---------------------------------------------------- -// THIS CLASS WAS GENERATED AUTOMATICALLY -// PLEASE DO NOT EDIT -// Generated on: Tue Dec 19 09:55:49 CET 2017 -// ---------------------------------------------------- - -import ch.loway.oss.ari4java.generated.*; -import com.fasterxml.jackson.databind.annotation.JsonDeserialize; -import java.util.Date; -import java.util.List; -import java.util.Map; - -/********************************************************** - * Event showing the start of a recording operation. - * - * Defined in file: events.json - * Generated by: Model - *********************************************************/ - -public class RecordingStarted_impl_ari_1_6_0 extends Event_impl_ari_1_6_0 implements RecordingStarted, java.io.Serializable { -private static final long serialVersionUID = 1L; - /** Recording control object */ - private LiveRecording recording; - public LiveRecording getRecording() { - return recording; - } - - @JsonDeserialize( as=LiveRecording_impl_ari_1_6_0.class ) - public void setRecording(LiveRecording val ) { - recording = val; - } - -/** No missing signatures from interface */ -} - diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_6_0/models/SetId_impl_ari_1_6_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_6_0/models/SetId_impl_ari_1_6_0.java deleted file mode 100644 index 8453f495..00000000 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_6_0/models/SetId_impl_ari_1_6_0.java +++ /dev/null @@ -1,48 +0,0 @@ -package ch.loway.oss.ari4java.generated.ari_1_6_0.models; - -// ---------------------------------------------------- -// THIS CLASS WAS GENERATED AUTOMATICALLY -// PLEASE DO NOT EDIT -// Generated on: Tue Dec 19 09:55:49 CET 2017 -// ---------------------------------------------------- - -import ch.loway.oss.ari4java.generated.*; -import com.fasterxml.jackson.databind.annotation.JsonDeserialize; -import java.util.Date; -import java.util.List; -import java.util.Map; - -/********************************************************** - * Effective user/group id - * - * Defined in file: asterisk.json - * Generated by: Model - *********************************************************/ - -public class SetId_impl_ari_1_6_0 implements SetId, java.io.Serializable { -private static final long serialVersionUID = 1L; - /** Effective group id. */ - private String group; - public String getGroup() { - return group; - } - - @JsonDeserialize( as=String.class ) - public void setGroup(String val ) { - group = val; - } - - /** Effective user id. */ - private String user; - public String getUser() { - return user; - } - - @JsonDeserialize( as=String.class ) - public void setUser(String val ) { - user = val; - } - -/** No missing signatures from interface */ -} - diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_6_0/models/Sound_impl_ari_1_6_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_6_0/models/Sound_impl_ari_1_6_0.java deleted file mode 100644 index dc18716c..00000000 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_6_0/models/Sound_impl_ari_1_6_0.java +++ /dev/null @@ -1,59 +0,0 @@ -package ch.loway.oss.ari4java.generated.ari_1_6_0.models; - -// ---------------------------------------------------- -// THIS CLASS WAS GENERATED AUTOMATICALLY -// PLEASE DO NOT EDIT -// Generated on: Tue Dec 19 09:55:49 CET 2017 -// ---------------------------------------------------- - -import ch.loway.oss.ari4java.generated.*; -import com.fasterxml.jackson.databind.annotation.JsonDeserialize; -import java.util.Date; -import java.util.List; -import java.util.Map; - -/********************************************************** - * A media file that may be played back. - * - * Defined in file: sounds.json - * Generated by: Model - *********************************************************/ - -public class Sound_impl_ari_1_6_0 implements Sound, java.io.Serializable { -private static final long serialVersionUID = 1L; - /** The formats and languages in which this sound is available. */ - private List formats; - public List getFormats() { - return formats; - } - - @JsonDeserialize( contentAs=FormatLangPair_impl_ari_1_6_0.class ) - public void setFormats(List val ) { - formats = val; - } - - /** Sound's identifier. */ - private String id; - public String getId() { - return id; - } - - @JsonDeserialize( as=String.class ) - public void setId(String val ) { - id = val; - } - - /** Text description of the sound, usually the words spoken. */ - private String text; - public String getText() { - return text; - } - - @JsonDeserialize( as=String.class ) - public void setText(String val ) { - text = val; - } - -/** No missing signatures from interface */ -} - diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_6_0/models/StasisEnd_impl_ari_1_6_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_6_0/models/StasisEnd_impl_ari_1_6_0.java deleted file mode 100644 index f48e4087..00000000 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_6_0/models/StasisEnd_impl_ari_1_6_0.java +++ /dev/null @@ -1,37 +0,0 @@ -package ch.loway.oss.ari4java.generated.ari_1_6_0.models; - -// ---------------------------------------------------- -// THIS CLASS WAS GENERATED AUTOMATICALLY -// PLEASE DO NOT EDIT -// Generated on: Tue Dec 19 09:55:49 CET 2017 -// ---------------------------------------------------- - -import ch.loway.oss.ari4java.generated.*; -import com.fasterxml.jackson.databind.annotation.JsonDeserialize; -import java.util.Date; -import java.util.List; -import java.util.Map; - -/********************************************************** - * Notification that a channel has left a Stasis application. - * - * Defined in file: events.json - * Generated by: Model - *********************************************************/ - -public class StasisEnd_impl_ari_1_6_0 extends Event_impl_ari_1_6_0 implements StasisEnd, java.io.Serializable { -private static final long serialVersionUID = 1L; - /** */ - private Channel channel; - public Channel getChannel() { - return channel; - } - - @JsonDeserialize( as=Channel_impl_ari_1_6_0.class ) - public void setChannel(Channel val ) { - channel = val; - } - -/** No missing signatures from interface */ -} - diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_6_0/models/StasisStart_impl_ari_1_6_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_6_0/models/StasisStart_impl_ari_1_6_0.java deleted file mode 100644 index 2240c384..00000000 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_6_0/models/StasisStart_impl_ari_1_6_0.java +++ /dev/null @@ -1,59 +0,0 @@ -package ch.loway.oss.ari4java.generated.ari_1_6_0.models; - -// ---------------------------------------------------- -// THIS CLASS WAS GENERATED AUTOMATICALLY -// PLEASE DO NOT EDIT -// Generated on: Tue Dec 19 09:55:49 CET 2017 -// ---------------------------------------------------- - -import ch.loway.oss.ari4java.generated.*; -import com.fasterxml.jackson.databind.annotation.JsonDeserialize; -import java.util.Date; -import java.util.List; -import java.util.Map; - -/********************************************************** - * Notification that a channel has entered a Stasis application. - * - * Defined in file: events.json - * Generated by: Model - *********************************************************/ - -public class StasisStart_impl_ari_1_6_0 extends Event_impl_ari_1_6_0 implements StasisStart, java.io.Serializable { -private static final long serialVersionUID = 1L; - /** Arguments to the application */ - private List args; - public List getArgs() { - return args; - } - - @JsonDeserialize( contentAs=String.class ) - public void setArgs(List val ) { - args = val; - } - - /** */ - private Channel channel; - public Channel getChannel() { - return channel; - } - - @JsonDeserialize( as=Channel_impl_ari_1_6_0.class ) - public void setChannel(Channel val ) { - channel = val; - } - - /** */ - private Channel replace_channel; - public Channel getReplace_channel() { - return replace_channel; - } - - @JsonDeserialize( as=Channel_impl_ari_1_6_0.class ) - public void setReplace_channel(Channel val ) { - replace_channel = val; - } - -/** No missing signatures from interface */ -} - diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_6_0/models/StatusInfo_impl_ari_1_6_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_6_0/models/StatusInfo_impl_ari_1_6_0.java deleted file mode 100644 index 23c5f834..00000000 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_6_0/models/StatusInfo_impl_ari_1_6_0.java +++ /dev/null @@ -1,48 +0,0 @@ -package ch.loway.oss.ari4java.generated.ari_1_6_0.models; - -// ---------------------------------------------------- -// THIS CLASS WAS GENERATED AUTOMATICALLY -// PLEASE DO NOT EDIT -// Generated on: Tue Dec 19 09:55:49 CET 2017 -// ---------------------------------------------------- - -import ch.loway.oss.ari4java.generated.*; -import com.fasterxml.jackson.databind.annotation.JsonDeserialize; -import java.util.Date; -import java.util.List; -import java.util.Map; - -/********************************************************** - * Info about Asterisk status - * - * Defined in file: asterisk.json - * Generated by: Model - *********************************************************/ - -public class StatusInfo_impl_ari_1_6_0 implements StatusInfo, java.io.Serializable { -private static final long serialVersionUID = 1L; - /** Time when Asterisk was last reloaded. */ - private Date last_reload_time; - public Date getLast_reload_time() { - return last_reload_time; - } - - @JsonDeserialize( as=Date.class ) - public void setLast_reload_time(Date val ) { - last_reload_time = val; - } - - /** Time when Asterisk was started. */ - private Date startup_time; - public Date getStartup_time() { - return startup_time; - } - - @JsonDeserialize( as=Date.class ) - public void setStartup_time(Date val ) { - startup_time = val; - } - -/** No missing signatures from interface */ -} - diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_6_0/models/StoredRecording_impl_ari_1_6_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_6_0/models/StoredRecording_impl_ari_1_6_0.java deleted file mode 100644 index 70d1c2f5..00000000 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_6_0/models/StoredRecording_impl_ari_1_6_0.java +++ /dev/null @@ -1,48 +0,0 @@ -package ch.loway.oss.ari4java.generated.ari_1_6_0.models; - -// ---------------------------------------------------- -// THIS CLASS WAS GENERATED AUTOMATICALLY -// PLEASE DO NOT EDIT -// Generated on: Tue Dec 19 09:55:49 CET 2017 -// ---------------------------------------------------- - -import ch.loway.oss.ari4java.generated.*; -import com.fasterxml.jackson.databind.annotation.JsonDeserialize; -import java.util.Date; -import java.util.List; -import java.util.Map; - -/********************************************************** - * A past recording that may be played back. - * - * Defined in file: recordings.json - * Generated by: Model - *********************************************************/ - -public class StoredRecording_impl_ari_1_6_0 implements StoredRecording, java.io.Serializable { -private static final long serialVersionUID = 1L; - /** */ - private String format; - public String getFormat() { - return format; - } - - @JsonDeserialize( as=String.class ) - public void setFormat(String val ) { - format = val; - } - - /** */ - private String name; - public String getName() { - return name; - } - - @JsonDeserialize( as=String.class ) - public void setName(String val ) { - name = val; - } - -/** No missing signatures from interface */ -} - diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_6_0/models/SystemInfo_impl_ari_1_6_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_6_0/models/SystemInfo_impl_ari_1_6_0.java deleted file mode 100644 index 495d2a94..00000000 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_6_0/models/SystemInfo_impl_ari_1_6_0.java +++ /dev/null @@ -1,48 +0,0 @@ -package ch.loway.oss.ari4java.generated.ari_1_6_0.models; - -// ---------------------------------------------------- -// THIS CLASS WAS GENERATED AUTOMATICALLY -// PLEASE DO NOT EDIT -// Generated on: Tue Dec 19 09:55:49 CET 2017 -// ---------------------------------------------------- - -import ch.loway.oss.ari4java.generated.*; -import com.fasterxml.jackson.databind.annotation.JsonDeserialize; -import java.util.Date; -import java.util.List; -import java.util.Map; - -/********************************************************** - * Info about Asterisk - * - * Defined in file: asterisk.json - * Generated by: Model - *********************************************************/ - -public class SystemInfo_impl_ari_1_6_0 implements SystemInfo, java.io.Serializable { -private static final long serialVersionUID = 1L; - /** */ - private String entity_id; - public String getEntity_id() { - return entity_id; - } - - @JsonDeserialize( as=String.class ) - public void setEntity_id(String val ) { - entity_id = val; - } - - /** Asterisk version. */ - private String version; - public String getVersion() { - return version; - } - - @JsonDeserialize( as=String.class ) - public void setVersion(String val ) { - version = val; - } - -/** No missing signatures from interface */ -} - diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_6_0/models/TextMessageReceived_impl_ari_1_6_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_6_0/models/TextMessageReceived_impl_ari_1_6_0.java deleted file mode 100644 index 02994fe4..00000000 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_6_0/models/TextMessageReceived_impl_ari_1_6_0.java +++ /dev/null @@ -1,48 +0,0 @@ -package ch.loway.oss.ari4java.generated.ari_1_6_0.models; - -// ---------------------------------------------------- -// THIS CLASS WAS GENERATED AUTOMATICALLY -// PLEASE DO NOT EDIT -// Generated on: Tue Dec 19 09:55:49 CET 2017 -// ---------------------------------------------------- - -import ch.loway.oss.ari4java.generated.*; -import com.fasterxml.jackson.databind.annotation.JsonDeserialize; -import java.util.Date; -import java.util.List; -import java.util.Map; - -/********************************************************** - * A text message was received from an endpoint. - * - * Defined in file: events.json - * Generated by: Model - *********************************************************/ - -public class TextMessageReceived_impl_ari_1_6_0 extends Event_impl_ari_1_6_0 implements TextMessageReceived, java.io.Serializable { -private static final long serialVersionUID = 1L; - /** */ - private Endpoint endpoint; - public Endpoint getEndpoint() { - return endpoint; - } - - @JsonDeserialize( as=Endpoint_impl_ari_1_6_0.class ) - public void setEndpoint(Endpoint val ) { - endpoint = val; - } - - /** */ - private TextMessage message; - public TextMessage getMessage() { - return message; - } - - @JsonDeserialize( as=TextMessage_impl_ari_1_6_0.class ) - public void setMessage(TextMessage val ) { - message = val; - } - -/** No missing signatures from interface */ -} - diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_6_0/models/TextMessageVariable_impl_ari_1_6_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_6_0/models/TextMessageVariable_impl_ari_1_6_0.java deleted file mode 100644 index bdf86e12..00000000 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_6_0/models/TextMessageVariable_impl_ari_1_6_0.java +++ /dev/null @@ -1,48 +0,0 @@ -package ch.loway.oss.ari4java.generated.ari_1_6_0.models; - -// ---------------------------------------------------- -// THIS CLASS WAS GENERATED AUTOMATICALLY -// PLEASE DO NOT EDIT -// Generated on: Tue Dec 19 09:55:49 CET 2017 -// ---------------------------------------------------- - -import ch.loway.oss.ari4java.generated.*; -import com.fasterxml.jackson.databind.annotation.JsonDeserialize; -import java.util.Date; -import java.util.List; -import java.util.Map; - -/********************************************************** - * A key/value pair variable in a text message. - * - * Defined in file: endpoints.json - * Generated by: Model - *********************************************************/ - -public class TextMessageVariable_impl_ari_1_6_0 implements TextMessageVariable, java.io.Serializable { -private static final long serialVersionUID = 1L; - /** A unique key identifying the variable. */ - private String key; - public String getKey() { - return key; - } - - @JsonDeserialize( as=String.class ) - public void setKey(String val ) { - key = val; - } - - /** The value of the variable. */ - private String value; - public String getValue() { - return value; - } - - @JsonDeserialize( as=String.class ) - public void setValue(String val ) { - value = val; - } - -/** No missing signatures from interface */ -} - diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_6_0/models/TextMessage_impl_ari_1_6_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_6_0/models/TextMessage_impl_ari_1_6_0.java deleted file mode 100644 index ecc5a781..00000000 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_6_0/models/TextMessage_impl_ari_1_6_0.java +++ /dev/null @@ -1,70 +0,0 @@ -package ch.loway.oss.ari4java.generated.ari_1_6_0.models; - -// ---------------------------------------------------- -// THIS CLASS WAS GENERATED AUTOMATICALLY -// PLEASE DO NOT EDIT -// Generated on: Tue Dec 19 09:55:49 CET 2017 -// ---------------------------------------------------- - -import ch.loway.oss.ari4java.generated.*; -import com.fasterxml.jackson.databind.annotation.JsonDeserialize; -import java.util.Date; -import java.util.List; -import java.util.Map; - -/********************************************************** - * A text message. - * - * Defined in file: endpoints.json - * Generated by: Model - *********************************************************/ - -public class TextMessage_impl_ari_1_6_0 implements TextMessage, java.io.Serializable { -private static final long serialVersionUID = 1L; - /** The text of the message. */ - private String body; - public String getBody() { - return body; - } - - @JsonDeserialize( as=String.class ) - public void setBody(String val ) { - body = val; - } - - /** A technology specific URI specifying the source of the message. For sip and pjsip technologies, any SIP URI can be specified. For xmpp, the URI must correspond to the client connection being used to send the message. */ - private String from; - public String getFrom() { - return from; - } - - @JsonDeserialize( as=String.class ) - public void setFrom(String val ) { - from = val; - } - - /** A technology specific URI specifying the destination of the message. Valid technologies include sip, pjsip, and xmp. The destination of a message should be an endpoint. */ - private String to; - public String getTo() { - return to; - } - - @JsonDeserialize( as=String.class ) - public void setTo(String val ) { - to = val; - } - - /** Technology specific key/value pairs associated with the message. */ - private List variables; - public List getVariables() { - return variables; - } - - @JsonDeserialize( contentAs=TextMessageVariable_impl_ari_1_6_0.class ) - public void setVariables(List val ) { - variables = val; - } - -/** No missing signatures from interface */ -} - diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_6_0/models/Variable_impl_ari_1_6_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_6_0/models/Variable_impl_ari_1_6_0.java deleted file mode 100644 index 8fa210fb..00000000 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_6_0/models/Variable_impl_ari_1_6_0.java +++ /dev/null @@ -1,37 +0,0 @@ -package ch.loway.oss.ari4java.generated.ari_1_6_0.models; - -// ---------------------------------------------------- -// THIS CLASS WAS GENERATED AUTOMATICALLY -// PLEASE DO NOT EDIT -// Generated on: Tue Dec 19 09:55:49 CET 2017 -// ---------------------------------------------------- - -import ch.loway.oss.ari4java.generated.*; -import com.fasterxml.jackson.databind.annotation.JsonDeserialize; -import java.util.Date; -import java.util.List; -import java.util.Map; - -/********************************************************** - * The value of a channel variable - * - * Defined in file: asterisk.json - * Generated by: Model - *********************************************************/ - -public class Variable_impl_ari_1_6_0 implements Variable, java.io.Serializable { -private static final long serialVersionUID = 1L; - /** The value of the variable requested */ - private String value; - public String getValue() { - return value; - } - - @JsonDeserialize( as=String.class ) - public void setValue(String val ) { - value = val; - } - -/** No missing signatures from interface */ -} - diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_7_0/AriBuilder_impl_ari_1_7_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_7_0/AriBuilder_impl_ari_1_7_0.java deleted file mode 100644 index 58e3e45f..00000000 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_7_0/AriBuilder_impl_ari_1_7_0.java +++ /dev/null @@ -1,328 +0,0 @@ -package ch.loway.oss.ari4java.generated.ari_1_7_0; - -// ---------------------------------------------------- -// THIS CLASS WAS GENERATED AUTOMATICALLY -// PLEASE DO NOT EDIT -// Generated on: Tue Dec 19 09:55:50 CET 2017 -// ---------------------------------------------------- - -import ch.loway.oss.ari4java.generated.ari_1_7_0.models.*; -import ch.loway.oss.ari4java.generated.ari_1_7_0.actions.*; -import ch.loway.oss.ari4java.generated.*; -import ch.loway.oss.ari4java.ARI; - -public class AriBuilder_impl_ari_1_7_0 implements AriBuilder { - -public ActionRecordings actionRecordings() { - return new ActionRecordings_impl_ari_1_7_0(); - }; - -public ActionEvents actionEvents() { - return new ActionEvents_impl_ari_1_7_0(); - }; - -public ActionApplications actionApplications() { - return new ActionApplications_impl_ari_1_7_0(); - }; - -public ActionChannels actionChannels() { - return new ActionChannels_impl_ari_1_7_0(); - }; - -public ActionPlaybacks actionPlaybacks() { - return new ActionPlaybacks_impl_ari_1_7_0(); - }; - -public ActionDeviceStates actionDeviceStates() { - return new ActionDeviceStates_impl_ari_1_7_0(); - }; - -public ActionBridges actionBridges() { - return new ActionBridges_impl_ari_1_7_0(); - }; - -public ActionSounds actionSounds() { - return new ActionSounds_impl_ari_1_7_0(); - }; - -public ActionAsterisk actionAsterisk() { - return new ActionAsterisk_impl_ari_1_7_0(); - }; - -public ActionEndpoints actionEndpoints() { - return new ActionEndpoints_impl_ari_1_7_0(); - }; - -public ChannelCallerId channelCallerId() { - return new ChannelCallerId_impl_ari_1_7_0(); - }; - -public ChannelDestroyed channelDestroyed() { - return new ChannelDestroyed_impl_ari_1_7_0(); - }; - -public ChannelEnteredBridge channelEnteredBridge() { - return new ChannelEnteredBridge_impl_ari_1_7_0(); - }; - -public BridgeAttendedTransfer bridgeAttendedTransfer() { - return new BridgeAttendedTransfer_impl_ari_1_7_0(); - }; - -public Application application() { - return new Application_impl_ari_1_7_0(); - }; - -public AsteriskInfo asteriskInfo() { - return new AsteriskInfo_impl_ari_1_7_0(); - }; - -public StoredRecording storedRecording() { - return new StoredRecording_impl_ari_1_7_0(); - }; - -public Variable variable() { - return new Variable_impl_ari_1_7_0(); - }; - -public DialplanCEP dialplanCEP() { - return new DialplanCEP_impl_ari_1_7_0(); - }; - -public Dialed dialed() { - return new Dialed_impl_ari_1_7_0(); - }; - -public BridgeMerged bridgeMerged() { - return new BridgeMerged_impl_ari_1_7_0(); - }; - -public FormatLangPair formatLangPair() { - return new FormatLangPair_impl_ari_1_7_0(); - }; - -public LiveRecording liveRecording() { - return new LiveRecording_impl_ari_1_7_0(); - }; - -public PlaybackFinished playbackFinished() { - return new PlaybackFinished_impl_ari_1_7_0(); - }; - -public Event event() { - return new Event_impl_ari_1_7_0(); - }; - -public Dial dial() { - return new Dial_impl_ari_1_7_0(); - }; - -public ChannelStateChange channelStateChange() { - return new ChannelStateChange_impl_ari_1_7_0(); - }; - -public Bridge bridge() { - return new Bridge_impl_ari_1_7_0(); - }; - -public ChannelDtmfReceived channelDtmfReceived() { - return new ChannelDtmfReceived_impl_ari_1_7_0(); - }; - -public SystemInfo systemInfo() { - return new SystemInfo_impl_ari_1_7_0(); - }; - -public Endpoint endpoint() { - return new Endpoint_impl_ari_1_7_0(); - }; - -public DeviceStateChanged deviceStateChanged() { - return new DeviceStateChanged_impl_ari_1_7_0(); - }; - -public StatusInfo statusInfo() { - return new StatusInfo_impl_ari_1_7_0(); - }; - -public ChannelTalkingFinished channelTalkingFinished() { - return new ChannelTalkingFinished_impl_ari_1_7_0(); - }; - -public BuildInfo buildInfo() { - return new BuildInfo_impl_ari_1_7_0(); - }; - -public ApplicationReplaced applicationReplaced() { - return new ApplicationReplaced_impl_ari_1_7_0(); - }; - -public StasisStart stasisStart() { - return new StasisStart_impl_ari_1_7_0(); - }; - -public ChannelCreated channelCreated() { - return new ChannelCreated_impl_ari_1_7_0(); - }; - -public RecordingFailed recordingFailed() { - return new RecordingFailed_impl_ari_1_7_0(); - }; - -public PlaybackStarted playbackStarted() { - return new PlaybackStarted_impl_ari_1_7_0(); - }; - -public Channel channel() { - return new Channel_impl_ari_1_7_0(); - }; - -public TextMessageReceived textMessageReceived() { - return new TextMessageReceived_impl_ari_1_7_0(); - }; - -public BridgeBlindTransfer bridgeBlindTransfer() { - return new BridgeBlindTransfer_impl_ari_1_7_0(); - }; - -public DeviceState deviceState() { - return new DeviceState_impl_ari_1_7_0(); - }; - -public ChannelTalkingStarted channelTalkingStarted() { - return new ChannelTalkingStarted_impl_ari_1_7_0(); - }; - -public TextMessage textMessage() { - return new TextMessage_impl_ari_1_7_0(); - }; - -public ChannelHangupRequest channelHangupRequest() { - return new ChannelHangupRequest_impl_ari_1_7_0(); - }; - -public MissingParams missingParams() { - return new MissingParams_impl_ari_1_7_0(); - }; - -public ConfigInfo configInfo() { - return new ConfigInfo_impl_ari_1_7_0(); - }; - -public RecordingFinished recordingFinished() { - return new RecordingFinished_impl_ari_1_7_0(); - }; - -public ChannelLeftBridge channelLeftBridge() { - return new ChannelLeftBridge_impl_ari_1_7_0(); - }; - -public TextMessageVariable textMessageVariable() { - return new TextMessageVariable_impl_ari_1_7_0(); - }; - -public StasisEnd stasisEnd() { - return new StasisEnd_impl_ari_1_7_0(); - }; - -public EndpointStateChange endpointStateChange() { - return new EndpointStateChange_impl_ari_1_7_0(); - }; - -public ChannelVarset channelVarset() { - return new ChannelVarset_impl_ari_1_7_0(); - }; - -public SetId setId() { - return new SetId_impl_ari_1_7_0(); - }; - -public BridgeDestroyed bridgeDestroyed() { - return new BridgeDestroyed_impl_ari_1_7_0(); - }; - -public Sound sound() { - return new Sound_impl_ari_1_7_0(); - }; - -public ChannelDialplan channelDialplan() { - return new ChannelDialplan_impl_ari_1_7_0(); - }; - -public ChannelConnectedLine channelConnectedLine() { - return new ChannelConnectedLine_impl_ari_1_7_0(); - }; - -public RecordingStarted recordingStarted() { - return new RecordingStarted_impl_ari_1_7_0(); - }; - -public BridgeCreated bridgeCreated() { - return new BridgeCreated_impl_ari_1_7_0(); - }; - -public ChannelUserevent channelUserevent() { - return new ChannelUserevent_impl_ari_1_7_0(); - }; - -public Message message() { - return new Message_impl_ari_1_7_0(); - }; - -public Playback playback() { - return new Playback_impl_ari_1_7_0(); - }; - -public CallerID callerID() { - return new CallerID_impl_ari_1_7_0(); - }; - -public BridgeVideoSourceChanged bridgeVideoSourceChanged() { - throw new UnsupportedOperationException(); - }; - -public ChannelHold channelHold() { - throw new UnsupportedOperationException(); - }; - -public ChannelUnhold channelUnhold() { - throw new UnsupportedOperationException(); - }; - -public ConfigTuple configTuple() { - throw new UnsupportedOperationException(); - }; - -public ContactInfo contactInfo() { - throw new UnsupportedOperationException(); - }; - -public ContactStatusChange contactStatusChange() { - throw new UnsupportedOperationException(); - }; - -public LogChannel logChannel() { - throw new UnsupportedOperationException(); - }; - -public Module module() { - throw new UnsupportedOperationException(); - }; - -public Peer peer() { - throw new UnsupportedOperationException(); - }; - -public PeerStatusChange peerStatusChange() { - throw new UnsupportedOperationException(); - }; - -public PlaybackContinuing playbackContinuing() { - throw new UnsupportedOperationException(); - }; - -public ARI.ClassFactory getClassFactory() { - return new ClassTranslator_impl_ari_1_7_0(); -}; - -}; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_7_0/ClassTranslator_impl_ari_1_7_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_7_0/ClassTranslator_impl_ari_1_7_0.java deleted file mode 100644 index 9eeb3a7b..00000000 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_7_0/ClassTranslator_impl_ari_1_7_0.java +++ /dev/null @@ -1,291 +0,0 @@ -package ch.loway.oss.ari4java.generated.ari_1_7_0; - -// ---------------------------------------------------- -// THIS CLASS WAS GENERATED AUTOMATICALLY -// PLEASE DO NOT EDIT -// Generated on: Tue Dec 19 09:55:50 CET 2017 -// ---------------------------------------------------- - -import ch.loway.oss.ari4java.ARI; -import ch.loway.oss.ari4java.generated.*; -import ch.loway.oss.ari4java.generated.ari_1_7_0.models.*; -import ch.loway.oss.ari4java.generated.ari_1_7_0.actions.*; - -/********************************************************** - * This is a class translator. - *********************************************************/ -public class ClassTranslator_impl_ari_1_7_0 implements ARI.ClassFactory { - - @Override - public Class getImplementationFor(Class interfaceClass) { - - if ( interfaceClass.equals(ActionApplications.class) ) { - return (ActionApplications_impl_ari_1_7_0.class); - } else - - if ( interfaceClass.equals(ActionAsterisk.class) ) { - return (ActionAsterisk_impl_ari_1_7_0.class); - } else - - if ( interfaceClass.equals(ActionBridges.class) ) { - return (ActionBridges_impl_ari_1_7_0.class); - } else - - if ( interfaceClass.equals(ActionChannels.class) ) { - return (ActionChannels_impl_ari_1_7_0.class); - } else - - if ( interfaceClass.equals(ActionDeviceStates.class) ) { - return (ActionDeviceStates_impl_ari_1_7_0.class); - } else - - if ( interfaceClass.equals(ActionEndpoints.class) ) { - return (ActionEndpoints_impl_ari_1_7_0.class); - } else - - if ( interfaceClass.equals(ActionEvents.class) ) { - return (ActionEvents_impl_ari_1_7_0.class); - } else - - if ( interfaceClass.equals(ActionPlaybacks.class) ) { - return (ActionPlaybacks_impl_ari_1_7_0.class); - } else - - if ( interfaceClass.equals(ActionRecordings.class) ) { - return (ActionRecordings_impl_ari_1_7_0.class); - } else - - if ( interfaceClass.equals(ActionSounds.class) ) { - return (ActionSounds_impl_ari_1_7_0.class); - } else - - if ( interfaceClass.equals(Application.class) ) { - return (Application_impl_ari_1_7_0.class); - } else - - if ( interfaceClass.equals(ApplicationReplaced.class) ) { - return (ApplicationReplaced_impl_ari_1_7_0.class); - } else - - if ( interfaceClass.equals(AsteriskInfo.class) ) { - return (AsteriskInfo_impl_ari_1_7_0.class); - } else - - if ( interfaceClass.equals(Bridge.class) ) { - return (Bridge_impl_ari_1_7_0.class); - } else - - if ( interfaceClass.equals(BridgeAttendedTransfer.class) ) { - return (BridgeAttendedTransfer_impl_ari_1_7_0.class); - } else - - if ( interfaceClass.equals(BridgeBlindTransfer.class) ) { - return (BridgeBlindTransfer_impl_ari_1_7_0.class); - } else - - if ( interfaceClass.equals(BridgeCreated.class) ) { - return (BridgeCreated_impl_ari_1_7_0.class); - } else - - if ( interfaceClass.equals(BridgeDestroyed.class) ) { - return (BridgeDestroyed_impl_ari_1_7_0.class); - } else - - if ( interfaceClass.equals(BridgeMerged.class) ) { - return (BridgeMerged_impl_ari_1_7_0.class); - } else - - if ( interfaceClass.equals(BuildInfo.class) ) { - return (BuildInfo_impl_ari_1_7_0.class); - } else - - if ( interfaceClass.equals(CallerID.class) ) { - return (CallerID_impl_ari_1_7_0.class); - } else - - if ( interfaceClass.equals(Channel.class) ) { - return (Channel_impl_ari_1_7_0.class); - } else - - if ( interfaceClass.equals(ChannelCallerId.class) ) { - return (ChannelCallerId_impl_ari_1_7_0.class); - } else - - if ( interfaceClass.equals(ChannelConnectedLine.class) ) { - return (ChannelConnectedLine_impl_ari_1_7_0.class); - } else - - if ( interfaceClass.equals(ChannelCreated.class) ) { - return (ChannelCreated_impl_ari_1_7_0.class); - } else - - if ( interfaceClass.equals(ChannelDestroyed.class) ) { - return (ChannelDestroyed_impl_ari_1_7_0.class); - } else - - if ( interfaceClass.equals(ChannelDialplan.class) ) { - return (ChannelDialplan_impl_ari_1_7_0.class); - } else - - if ( interfaceClass.equals(ChannelDtmfReceived.class) ) { - return (ChannelDtmfReceived_impl_ari_1_7_0.class); - } else - - if ( interfaceClass.equals(ChannelEnteredBridge.class) ) { - return (ChannelEnteredBridge_impl_ari_1_7_0.class); - } else - - if ( interfaceClass.equals(ChannelHangupRequest.class) ) { - return (ChannelHangupRequest_impl_ari_1_7_0.class); - } else - - if ( interfaceClass.equals(ChannelLeftBridge.class) ) { - return (ChannelLeftBridge_impl_ari_1_7_0.class); - } else - - if ( interfaceClass.equals(ChannelStateChange.class) ) { - return (ChannelStateChange_impl_ari_1_7_0.class); - } else - - if ( interfaceClass.equals(ChannelTalkingFinished.class) ) { - return (ChannelTalkingFinished_impl_ari_1_7_0.class); - } else - - if ( interfaceClass.equals(ChannelTalkingStarted.class) ) { - return (ChannelTalkingStarted_impl_ari_1_7_0.class); - } else - - if ( interfaceClass.equals(ChannelUserevent.class) ) { - return (ChannelUserevent_impl_ari_1_7_0.class); - } else - - if ( interfaceClass.equals(ChannelVarset.class) ) { - return (ChannelVarset_impl_ari_1_7_0.class); - } else - - if ( interfaceClass.equals(ConfigInfo.class) ) { - return (ConfigInfo_impl_ari_1_7_0.class); - } else - - if ( interfaceClass.equals(DeviceState.class) ) { - return (DeviceState_impl_ari_1_7_0.class); - } else - - if ( interfaceClass.equals(DeviceStateChanged.class) ) { - return (DeviceStateChanged_impl_ari_1_7_0.class); - } else - - if ( interfaceClass.equals(Dial.class) ) { - return (Dial_impl_ari_1_7_0.class); - } else - - if ( interfaceClass.equals(Dialed.class) ) { - return (Dialed_impl_ari_1_7_0.class); - } else - - if ( interfaceClass.equals(DialplanCEP.class) ) { - return (DialplanCEP_impl_ari_1_7_0.class); - } else - - if ( interfaceClass.equals(Endpoint.class) ) { - return (Endpoint_impl_ari_1_7_0.class); - } else - - if ( interfaceClass.equals(EndpointStateChange.class) ) { - return (EndpointStateChange_impl_ari_1_7_0.class); - } else - - if ( interfaceClass.equals(Event.class) ) { - return (Event_impl_ari_1_7_0.class); - } else - - if ( interfaceClass.equals(FormatLangPair.class) ) { - return (FormatLangPair_impl_ari_1_7_0.class); - } else - - if ( interfaceClass.equals(LiveRecording.class) ) { - return (LiveRecording_impl_ari_1_7_0.class); - } else - - if ( interfaceClass.equals(Message.class) ) { - return (Message_impl_ari_1_7_0.class); - } else - - if ( interfaceClass.equals(MissingParams.class) ) { - return (MissingParams_impl_ari_1_7_0.class); - } else - - if ( interfaceClass.equals(Playback.class) ) { - return (Playback_impl_ari_1_7_0.class); - } else - - if ( interfaceClass.equals(PlaybackFinished.class) ) { - return (PlaybackFinished_impl_ari_1_7_0.class); - } else - - if ( interfaceClass.equals(PlaybackStarted.class) ) { - return (PlaybackStarted_impl_ari_1_7_0.class); - } else - - if ( interfaceClass.equals(RecordingFailed.class) ) { - return (RecordingFailed_impl_ari_1_7_0.class); - } else - - if ( interfaceClass.equals(RecordingFinished.class) ) { - return (RecordingFinished_impl_ari_1_7_0.class); - } else - - if ( interfaceClass.equals(RecordingStarted.class) ) { - return (RecordingStarted_impl_ari_1_7_0.class); - } else - - if ( interfaceClass.equals(SetId.class) ) { - return (SetId_impl_ari_1_7_0.class); - } else - - if ( interfaceClass.equals(Sound.class) ) { - return (Sound_impl_ari_1_7_0.class); - } else - - if ( interfaceClass.equals(StasisEnd.class) ) { - return (StasisEnd_impl_ari_1_7_0.class); - } else - - if ( interfaceClass.equals(StasisStart.class) ) { - return (StasisStart_impl_ari_1_7_0.class); - } else - - if ( interfaceClass.equals(StatusInfo.class) ) { - return (StatusInfo_impl_ari_1_7_0.class); - } else - - if ( interfaceClass.equals(StoredRecording.class) ) { - return (StoredRecording_impl_ari_1_7_0.class); - } else - - if ( interfaceClass.equals(SystemInfo.class) ) { - return (SystemInfo_impl_ari_1_7_0.class); - } else - - if ( interfaceClass.equals(TextMessage.class) ) { - return (TextMessage_impl_ari_1_7_0.class); - } else - - if ( interfaceClass.equals(TextMessageReceived.class) ) { - return (TextMessageReceived_impl_ari_1_7_0.class); - } else - - if ( interfaceClass.equals(TextMessageVariable.class) ) { - return (TextMessageVariable_impl_ari_1_7_0.class); - } else - - if ( interfaceClass.equals(Variable.class) ) { - return (Variable_impl_ari_1_7_0.class); - } else - { - return null; - } - } -} - - diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_7_0/actions/ActionApplications_impl_ari_1_7_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_7_0/actions/ActionApplications_impl_ari_1_7_0.java deleted file mode 100644 index babb3782..00000000 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_7_0/actions/ActionApplications_impl_ari_1_7_0.java +++ /dev/null @@ -1,140 +0,0 @@ -package ch.loway.oss.ari4java.generated.ari_1_7_0.actions; - -// ---------------------------------------------------- -// THIS CLASS WAS GENERATED AUTOMATICALLY -// PLEASE DO NOT EDIT -// Generated on: Tue Dec 19 09:55:49 CET 2017 -// ---------------------------------------------------- - -import ch.loway.oss.ari4java.generated.*; -import java.util.Date; -import java.util.List; -import java.util.Map; -import java.util.ArrayList; -import ch.loway.oss.ari4java.tools.BaseAriAction; -import ch.loway.oss.ari4java.tools.RestException; -import ch.loway.oss.ari4java.tools.AriCallback; -import ch.loway.oss.ari4java.tools.HttpParam; -import ch.loway.oss.ari4java.tools.HttpResponse; -import com.fasterxml.jackson.core.type.TypeReference; -import ch.loway.oss.ari4java.generated.ari_1_7_0.models.*; - -/********************************************************** - * - * Generated by: Apis - *********************************************************/ - - -public class ActionApplications_impl_ari_1_7_0 extends BaseAriAction implements ActionApplications { -/********************************************************** - * Stasis applications - * - * List all applications. - *********************************************************/ -private void buildList() { -reset(); -url = "/applications"; -method = "GET"; -} - -@Override -public List list() throws RestException { -buildList(); -String json = httpActionSync(); -return deserializeJsonAsAbstractList( json, - new TypeReference>() {} ); -} - -@Override -public void list(AriCallback> callback) { -buildList(); -httpActionAsync(callback, new TypeReference>() {}); -} - -/********************************************************** - * Stasis application - * - * Get details of an application. - *********************************************************/ -private void buildGet(String applicationName) { -reset(); -url = "/applications/" + applicationName + ""; -method = "GET"; -lE.add( HttpResponse.build( 404, "Application does not exist.") ); -} - -@Override -public Application get(String applicationName) throws RestException { -buildGet(applicationName); -String json = httpActionSync(); -return deserializeJson( json, Application_impl_ari_1_7_0.class ); -} - -@Override -public void get(String applicationName, AriCallback callback) { -buildGet(applicationName); -httpActionAsync(callback, Application_impl_ari_1_7_0.class); -} - -/********************************************************** - * Stasis application - * - * Subscribe an application to a event source. - * Returns the state of the application after the subscriptions have changed - *********************************************************/ -private void buildSubscribe(String applicationName, String eventSource) { -reset(); -url = "/applications/" + applicationName + "/subscription"; -method = "POST"; -lParamQuery.add( HttpParam.build( "eventSource", eventSource) ); -lE.add( HttpResponse.build( 400, "Missing parameter.") ); -lE.add( HttpResponse.build( 404, "Application does not exist.") ); -lE.add( HttpResponse.build( 422, "Event source does not exist.") ); -} - -@Override -public Application subscribe(String applicationName, String eventSource) throws RestException { -buildSubscribe(applicationName, eventSource); -String json = httpActionSync(); -return deserializeJson( json, Application_impl_ari_1_7_0.class ); -} - -@Override -public void subscribe(String applicationName, String eventSource, AriCallback callback) { -buildSubscribe(applicationName, eventSource); -httpActionAsync(callback, Application_impl_ari_1_7_0.class); -} - -/********************************************************** - * Stasis application - * - * Unsubscribe an application from an event source. - * Returns the state of the application after the subscriptions have changed - *********************************************************/ -private void buildUnsubscribe(String applicationName, String eventSource) { -reset(); -url = "/applications/" + applicationName + "/subscription"; -method = "DELETE"; -lParamQuery.add( HttpParam.build( "eventSource", eventSource) ); -lE.add( HttpResponse.build( 400, "Missing parameter; event source scheme not recognized.") ); -lE.add( HttpResponse.build( 404, "Application does not exist.") ); -lE.add( HttpResponse.build( 409, "Application not subscribed to event source.") ); -lE.add( HttpResponse.build( 422, "Event source does not exist.") ); -} - -@Override -public Application unsubscribe(String applicationName, String eventSource) throws RestException { -buildUnsubscribe(applicationName, eventSource); -String json = httpActionSync(); -return deserializeJson( json, Application_impl_ari_1_7_0.class ); -} - -@Override -public void unsubscribe(String applicationName, String eventSource, AriCallback callback) { -buildUnsubscribe(applicationName, eventSource); -httpActionAsync(callback, Application_impl_ari_1_7_0.class); -} - -/** No missing signatures from interface */ -}; - diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_7_0/actions/ActionAsterisk_impl_ari_1_7_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_7_0/actions/ActionAsterisk_impl_ari_1_7_0.java deleted file mode 100644 index 7661cea3..00000000 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_7_0/actions/ActionAsterisk_impl_ari_1_7_0.java +++ /dev/null @@ -1,335 +0,0 @@ -package ch.loway.oss.ari4java.generated.ari_1_7_0.actions; - -// ---------------------------------------------------- -// THIS CLASS WAS GENERATED AUTOMATICALLY -// PLEASE DO NOT EDIT -// Generated on: Tue Dec 19 09:55:49 CET 2017 -// ---------------------------------------------------- - -import ch.loway.oss.ari4java.generated.*; -import java.util.Date; -import java.util.List; -import java.util.Map; -import java.util.ArrayList; -import ch.loway.oss.ari4java.tools.BaseAriAction; -import ch.loway.oss.ari4java.tools.RestException; -import ch.loway.oss.ari4java.tools.AriCallback; -import ch.loway.oss.ari4java.tools.HttpParam; -import ch.loway.oss.ari4java.tools.HttpResponse; -import com.fasterxml.jackson.core.type.TypeReference; -import ch.loway.oss.ari4java.generated.ari_1_7_0.models.*; - -/********************************************************** - * - * Generated by: Apis - *********************************************************/ - - -public class ActionAsterisk_impl_ari_1_7_0 extends BaseAriAction implements ActionAsterisk { -/********************************************************** - * Asterisk system information (similar to core show settings) - * - * Gets Asterisk system information. - *********************************************************/ -private void buildGetInfo(String only) { -reset(); -url = "/asterisk/info"; -method = "GET"; -lParamQuery.add( HttpParam.build( "only", only) ); -} - -@Override -public AsteriskInfo getInfo(String only) throws RestException { -buildGetInfo(only); -String json = httpActionSync(); -return deserializeJson( json, AsteriskInfo_impl_ari_1_7_0.class ); -} - -@Override -public void getInfo(String only, AriCallback callback) { -buildGetInfo(only); -httpActionAsync(callback, AsteriskInfo_impl_ari_1_7_0.class); -} - -/********************************************************** - * Global variables - * - * Get the value of a global variable. - *********************************************************/ -private void buildGetGlobalVar(String variable) { -reset(); -url = "/asterisk/variable"; -method = "GET"; -lParamQuery.add( HttpParam.build( "variable", variable) ); -lE.add( HttpResponse.build( 400, "Missing variable parameter.") ); -} - -@Override -public Variable getGlobalVar(String variable) throws RestException { -buildGetGlobalVar(variable); -String json = httpActionSync(); -return deserializeJson( json, Variable_impl_ari_1_7_0.class ); -} - -@Override -public void getGlobalVar(String variable, AriCallback callback) { -buildGetGlobalVar(variable); -httpActionAsync(callback, Variable_impl_ari_1_7_0.class); -} - -/********************************************************** - * Global variables - * - * Set the value of a global variable. - *********************************************************/ -private void buildSetGlobalVar(String variable, String value) { -reset(); -url = "/asterisk/variable"; -method = "POST"; -lParamQuery.add( HttpParam.build( "variable", variable) ); -lParamQuery.add( HttpParam.build( "value", value) ); -lE.add( HttpResponse.build( 400, "Missing variable parameter.") ); -} - -@Override -public void setGlobalVar(String variable, String value) throws RestException { -buildSetGlobalVar(variable, value); -String json = httpActionSync(); -} - -@Override -public void setGlobalVar(String variable, String value, AriCallback callback) { -buildSetGlobalVar(variable, value); -httpActionAsync(callback); -} - -/********************************************************** - * - * - * @since ari_1_8_0 - *********************************************************/ -public void updateObject(String configClass, String objectType, String id, Map fields, AriCallback> callback){ - throw new UnsupportedOperationException("Method availble from ..."); -}; - -/********************************************************** - * - * - * @since ari_1_8_0 - *********************************************************/ -public void listModules(AriCallback> callback){ - throw new UnsupportedOperationException("Method availble from ..."); -}; - -/********************************************************** - * - * - * @since ari_1_8_0 - *********************************************************/ -public void getModule(String moduleName, AriCallback callback){ - throw new UnsupportedOperationException("Method availble from ..."); -}; - -/********************************************************** - * - * - * @since ari_1_8_0 - *********************************************************/ -public void unloadModule(String moduleName, AriCallback callback){ - throw new UnsupportedOperationException("Method availble from ..."); -}; - -/********************************************************** - * Rotates a log channel. - * - * - * @since ari_1_9_0 - *********************************************************/ -public void rotateLog(String logChannelName) throws RestException{ - throw new UnsupportedOperationException("Method availble from ..."); -}; - -/********************************************************** - * - * - * @since ari_1_8_0 - *********************************************************/ -public void deleteObject(String configClass, String objectType, String id, AriCallback callback){ - throw new UnsupportedOperationException("Method availble from ..."); -}; - -/********************************************************** - * Deletes a log channel. - * - * - * @since ari_1_9_0 - *********************************************************/ -public void deleteLog(String logChannelName) throws RestException{ - throw new UnsupportedOperationException("Method availble from ..."); -}; - -/********************************************************** - * Load an Asterisk module. - * - * - * @since ari_1_8_0 - *********************************************************/ -public void loadModule(String moduleName) throws RestException{ - throw new UnsupportedOperationException("Method availble from ..."); -}; - -/********************************************************** - * Unload an Asterisk module. - * - * - * @since ari_1_8_0 - *********************************************************/ -public void unloadModule(String moduleName) throws RestException{ - throw new UnsupportedOperationException("Method availble from ..."); -}; - -/********************************************************** - * Create or update a dynamic configuration object. - * - * - * @since ari_1_8_0 - *********************************************************/ -public List updateObject(String configClass, String objectType, String id, Map fields) throws RestException{ - throw new UnsupportedOperationException("Method availble from ..."); -}; - -/********************************************************** - * Retrieve a dynamic configuration object. - * - * - * @since ari_1_8_0 - *********************************************************/ -public List getObject(String configClass, String objectType, String id) throws RestException{ - throw new UnsupportedOperationException("Method availble from ..."); -}; - -/********************************************************** - * Get Asterisk module information. - * - * - * @since ari_1_8_0 - *********************************************************/ -public Module getModule(String moduleName) throws RestException{ - throw new UnsupportedOperationException("Method availble from ..."); -}; - -/********************************************************** - * - * - * @since ari_1_9_0 - *********************************************************/ -public void rotateLog(String logChannelName, AriCallback callback){ - throw new UnsupportedOperationException("Method availble from ..."); -}; - -/********************************************************** - * - * - * @since ari_1_8_0 - *********************************************************/ -public void loadModule(String moduleName, AriCallback callback){ - throw new UnsupportedOperationException("Method availble from ..."); -}; - -/********************************************************** - * - * - * @since ari_1_9_0 - *********************************************************/ -public void addLog(String logChannelName, String configuration, AriCallback callback){ - throw new UnsupportedOperationException("Method availble from ..."); -}; - -/********************************************************** - * - * - * @since ari_1_8_0 - *********************************************************/ -public void reloadModule(String moduleName, AriCallback callback){ - throw new UnsupportedOperationException("Method availble from ..."); -}; - -/********************************************************** - * Gets Asterisk log channel information. - * - * - * @since ari_1_9_0 - *********************************************************/ -public List listLogChannels() throws RestException{ - throw new UnsupportedOperationException("Method availble from ..."); -}; - -/********************************************************** - * - * - * @since ari_1_8_0 - *********************************************************/ -public void getObject(String configClass, String objectType, String id, AriCallback> callback){ - throw new UnsupportedOperationException("Method availble from ..."); -}; - -/********************************************************** - * Adds a log channel. - * - * - * @since ari_1_9_0 - *********************************************************/ -public void addLog(String logChannelName, String configuration) throws RestException{ - throw new UnsupportedOperationException("Method availble from ..."); -}; - -/********************************************************** - * - * - * @since ari_1_9_0 - *********************************************************/ -public void listLogChannels(AriCallback> callback){ - throw new UnsupportedOperationException("Method availble from ..."); -}; - -/********************************************************** - * List Asterisk modules. - * - * - * @since ari_1_8_0 - *********************************************************/ -public List listModules() throws RestException{ - throw new UnsupportedOperationException("Method availble from ..."); -}; - -/********************************************************** - * Reload an Asterisk module. - * - * - * @since ari_1_8_0 - *********************************************************/ -public void reloadModule(String moduleName) throws RestException{ - throw new UnsupportedOperationException("Method availble from ..."); -}; - -/********************************************************** - * - * - * @since ari_1_9_0 - *********************************************************/ -public void deleteLog(String logChannelName, AriCallback callback){ - throw new UnsupportedOperationException("Method availble from ..."); -}; - -/********************************************************** - * Delete a dynamic configuration object. - * - * - * @since ari_1_8_0 - *********************************************************/ -public void deleteObject(String configClass, String objectType, String id) throws RestException{ - throw new UnsupportedOperationException("Method availble from ..."); -}; - -}; - diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_7_0/actions/ActionBridges_impl_ari_1_7_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_7_0/actions/ActionBridges_impl_ari_1_7_0.java deleted file mode 100644 index cdc70270..00000000 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_7_0/actions/ActionBridges_impl_ari_1_7_0.java +++ /dev/null @@ -1,482 +0,0 @@ -package ch.loway.oss.ari4java.generated.ari_1_7_0.actions; - -// ---------------------------------------------------- -// THIS CLASS WAS GENERATED AUTOMATICALLY -// PLEASE DO NOT EDIT -// Generated on: Tue Dec 19 09:55:49 CET 2017 -// ---------------------------------------------------- - -import ch.loway.oss.ari4java.generated.*; -import java.util.Date; -import java.util.List; -import java.util.Map; -import java.util.ArrayList; -import ch.loway.oss.ari4java.tools.BaseAriAction; -import ch.loway.oss.ari4java.tools.RestException; -import ch.loway.oss.ari4java.tools.AriCallback; -import ch.loway.oss.ari4java.tools.HttpParam; -import ch.loway.oss.ari4java.tools.HttpResponse; -import com.fasterxml.jackson.core.type.TypeReference; -import ch.loway.oss.ari4java.generated.ari_1_7_0.models.*; - -/********************************************************** - * - * Generated by: Apis - *********************************************************/ - - -public class ActionBridges_impl_ari_1_7_0 extends BaseAriAction implements ActionBridges { -/********************************************************** - * Active bridges - * - * List all active bridges in Asterisk. - *********************************************************/ -private void buildList() { -reset(); -url = "/bridges"; -method = "GET"; -} - -@Override -public List list() throws RestException { -buildList(); -String json = httpActionSync(); -return deserializeJsonAsAbstractList( json, - new TypeReference>() {} ); -} - -@Override -public void list(AriCallback> callback) { -buildList(); -httpActionAsync(callback, new TypeReference>() {}); -} - -/********************************************************** - * Active bridges - * - * Create a new bridge. - * This bridge persists until it has been shut down, or Asterisk has been shut down. - *********************************************************/ -private void buildCreate(String type, String bridgeId, String name) { -reset(); -url = "/bridges"; -method = "POST"; -lParamQuery.add( HttpParam.build( "type", type) ); -lParamQuery.add( HttpParam.build( "bridgeId", bridgeId) ); -lParamQuery.add( HttpParam.build( "name", name) ); -} - -@Override -public Bridge create(String type, String bridgeId, String name) throws RestException { -buildCreate(type, bridgeId, name); -String json = httpActionSync(); -return deserializeJson( json, Bridge_impl_ari_1_7_0.class ); -} - -@Override -public void create(String type, String bridgeId, String name, AriCallback callback) { -buildCreate(type, bridgeId, name); -httpActionAsync(callback, Bridge_impl_ari_1_7_0.class); -} - -/********************************************************** - * Individual bridge - * - * Create a new bridge or updates an existing one. - * This bridge persists until it has been shut down, or Asterisk has been shut down. - *********************************************************/ -private void buildCreateWithId(String type, String bridgeId, String name) { -reset(); -url = "/bridges/" + bridgeId + ""; -method = "POST"; -lParamQuery.add( HttpParam.build( "type", type) ); -lParamQuery.add( HttpParam.build( "name", name) ); -} - -@Override -public Bridge createWithId(String type, String bridgeId, String name) throws RestException { -buildCreateWithId(type, bridgeId, name); -String json = httpActionSync(); -return deserializeJson( json, Bridge_impl_ari_1_7_0.class ); -} - -@Override -public void createWithId(String type, String bridgeId, String name, AriCallback callback) { -buildCreateWithId(type, bridgeId, name); -httpActionAsync(callback, Bridge_impl_ari_1_7_0.class); -} - -/********************************************************** - * Individual bridge - * - * Get bridge details. - *********************************************************/ -private void buildGet(String bridgeId) { -reset(); -url = "/bridges/" + bridgeId + ""; -method = "GET"; -lE.add( HttpResponse.build( 404, "Bridge not found") ); -} - -@Override -public Bridge get(String bridgeId) throws RestException { -buildGet(bridgeId); -String json = httpActionSync(); -return deserializeJson( json, Bridge_impl_ari_1_7_0.class ); -} - -@Override -public void get(String bridgeId, AriCallback callback) { -buildGet(bridgeId); -httpActionAsync(callback, Bridge_impl_ari_1_7_0.class); -} - -/********************************************************** - * Individual bridge - * - * Shut down a bridge. - * If any channels are in this bridge, they will be removed and resume whatever they were doing beforehand. - *********************************************************/ -private void buildDestroy(String bridgeId) { -reset(); -url = "/bridges/" + bridgeId + ""; -method = "DELETE"; -lE.add( HttpResponse.build( 404, "Bridge not found") ); -} - -@Override -public void destroy(String bridgeId) throws RestException { -buildDestroy(bridgeId); -String json = httpActionSync(); -} - -@Override -public void destroy(String bridgeId, AriCallback callback) { -buildDestroy(bridgeId); -httpActionAsync(callback); -} - -/********************************************************** - * Add a channel to a bridge - * - * Add a channel to a bridge. - *********************************************************/ -private void buildAddChannel(String bridgeId, String channel, String role) { -reset(); -url = "/bridges/" + bridgeId + "/addChannel"; -method = "POST"; -lParamQuery.add( HttpParam.build( "channel", channel) ); -lParamQuery.add( HttpParam.build( "role", role) ); -lE.add( HttpResponse.build( 400, "Channel not found") ); -lE.add( HttpResponse.build( 404, "Bridge not found") ); -lE.add( HttpResponse.build( 409, "Bridge not in Stasis application; Channel currently recording") ); -lE.add( HttpResponse.build( 422, "Channel not in Stasis application") ); -} - -@Override -public void addChannel(String bridgeId, String channel, String role) throws RestException { -buildAddChannel(bridgeId, channel, role); -String json = httpActionSync(); -} - -@Override -public void addChannel(String bridgeId, String channel, String role, AriCallback callback) { -buildAddChannel(bridgeId, channel, role); -httpActionAsync(callback); -} - -/********************************************************** - * Play music on hold to a bridge - * - * Play music on hold to a bridge or change the MOH class that is playing. - *********************************************************/ -private void buildStartMoh(String bridgeId, String mohClass) { -reset(); -url = "/bridges/" + bridgeId + "/moh"; -method = "POST"; -lParamQuery.add( HttpParam.build( "mohClass", mohClass) ); -lE.add( HttpResponse.build( 404, "Bridge not found") ); -lE.add( HttpResponse.build( 409, "Bridge not in Stasis application") ); -} - -@Override -public void startMoh(String bridgeId, String mohClass) throws RestException { -buildStartMoh(bridgeId, mohClass); -String json = httpActionSync(); -} - -@Override -public void startMoh(String bridgeId, String mohClass, AriCallback callback) { -buildStartMoh(bridgeId, mohClass); -httpActionAsync(callback); -} - -/********************************************************** - * Play music on hold to a bridge - * - * Stop playing music on hold to a bridge. - * This will only stop music on hold being played via POST bridges/{bridgeId}/moh. - *********************************************************/ -private void buildStopMoh(String bridgeId) { -reset(); -url = "/bridges/" + bridgeId + "/moh"; -method = "DELETE"; -lE.add( HttpResponse.build( 404, "Bridge not found") ); -lE.add( HttpResponse.build( 409, "Bridge not in Stasis application") ); -} - -@Override -public void stopMoh(String bridgeId) throws RestException { -buildStopMoh(bridgeId); -String json = httpActionSync(); -} - -@Override -public void stopMoh(String bridgeId, AriCallback callback) { -buildStopMoh(bridgeId); -httpActionAsync(callback); -} - -/********************************************************** - * Play media to the participants of a bridge - * - * Start playback of media on a bridge. - * The media URI may be any of a number of URI's. Currently sound:, recording:, number:, digits:, characters:, and tone: URI's are supported. This operation creates a playback resource that can be used to control the playback of media (pause, rewind, fast forward, etc.) - *********************************************************/ -private void buildPlay(String bridgeId, String media, String lang, int offsetms, int skipms, String playbackId) { -reset(); -url = "/bridges/" + bridgeId + "/play"; -method = "POST"; -lParamQuery.add( HttpParam.build( "media", media) ); -lParamQuery.add( HttpParam.build( "lang", lang) ); -lParamQuery.add( HttpParam.build( "offsetms", offsetms) ); -lParamQuery.add( HttpParam.build( "skipms", skipms) ); -lParamQuery.add( HttpParam.build( "playbackId", playbackId) ); -lE.add( HttpResponse.build( 404, "Bridge not found") ); -lE.add( HttpResponse.build( 409, "Bridge not in a Stasis application") ); -} - -@Override -public Playback play(String bridgeId, String media, String lang, int offsetms, int skipms, String playbackId) throws RestException { -buildPlay(bridgeId, media, lang, offsetms, skipms, playbackId); -String json = httpActionSync(); -return deserializeJson( json, Playback_impl_ari_1_7_0.class ); -} - -@Override -public void play(String bridgeId, String media, String lang, int offsetms, int skipms, String playbackId, AriCallback callback) { -buildPlay(bridgeId, media, lang, offsetms, skipms, playbackId); -httpActionAsync(callback, Playback_impl_ari_1_7_0.class); -} - -/********************************************************** - * Play media to a bridge - * - * Start playback of media on a bridge. - * The media URI may be any of a number of URI's. Currently sound:, recording:, number:, digits:, characters:, and tone: URI's are supported. This operation creates a playback resource that can be used to control the playback of media (pause, rewind, fast forward, etc.) - *********************************************************/ -private void buildPlayWithId(String bridgeId, String playbackId, String media, String lang, int offsetms, int skipms) { -reset(); -url = "/bridges/" + bridgeId + "/play/" + playbackId + ""; -method = "POST"; -lParamQuery.add( HttpParam.build( "media", media) ); -lParamQuery.add( HttpParam.build( "lang", lang) ); -lParamQuery.add( HttpParam.build( "offsetms", offsetms) ); -lParamQuery.add( HttpParam.build( "skipms", skipms) ); -lE.add( HttpResponse.build( 404, "Bridge not found") ); -lE.add( HttpResponse.build( 409, "Bridge not in a Stasis application") ); -} - -@Override -public Playback playWithId(String bridgeId, String playbackId, String media, String lang, int offsetms, int skipms) throws RestException { -buildPlayWithId(bridgeId, playbackId, media, lang, offsetms, skipms); -String json = httpActionSync(); -return deserializeJson( json, Playback_impl_ari_1_7_0.class ); -} - -@Override -public void playWithId(String bridgeId, String playbackId, String media, String lang, int offsetms, int skipms, AriCallback callback) { -buildPlayWithId(bridgeId, playbackId, media, lang, offsetms, skipms); -httpActionAsync(callback, Playback_impl_ari_1_7_0.class); -} - -/********************************************************** - * Record audio on a bridge - * - * Start a recording. - * This records the mixed audio from all channels participating in this bridge. - *********************************************************/ -private void buildRecord(String bridgeId, String name, String format, int maxDurationSeconds, int maxSilenceSeconds, String ifExists, boolean beep, String terminateOn) { -reset(); -url = "/bridges/" + bridgeId + "/record"; -method = "POST"; -lParamQuery.add( HttpParam.build( "name", name) ); -lParamQuery.add( HttpParam.build( "format", format) ); -lParamQuery.add( HttpParam.build( "maxDurationSeconds", maxDurationSeconds) ); -lParamQuery.add( HttpParam.build( "maxSilenceSeconds", maxSilenceSeconds) ); -lParamQuery.add( HttpParam.build( "ifExists", ifExists) ); -lParamQuery.add( HttpParam.build( "beep", beep) ); -lParamQuery.add( HttpParam.build( "terminateOn", terminateOn) ); -lE.add( HttpResponse.build( 400, "Invalid parameters") ); -lE.add( HttpResponse.build( 404, "Bridge not found") ); -lE.add( HttpResponse.build( 409, "Bridge is not in a Stasis application; A recording with the same name already exists on the system and can not be overwritten because it is in progress or ifExists=fail") ); -lE.add( HttpResponse.build( 422, "The format specified is unknown on this system") ); -} - -@Override -public LiveRecording record(String bridgeId, String name, String format, int maxDurationSeconds, int maxSilenceSeconds, String ifExists, boolean beep, String terminateOn) throws RestException { -buildRecord(bridgeId, name, format, maxDurationSeconds, maxSilenceSeconds, ifExists, beep, terminateOn); -String json = httpActionSync(); -return deserializeJson( json, LiveRecording_impl_ari_1_7_0.class ); -} - -@Override -public void record(String bridgeId, String name, String format, int maxDurationSeconds, int maxSilenceSeconds, String ifExists, boolean beep, String terminateOn, AriCallback callback) { -buildRecord(bridgeId, name, format, maxDurationSeconds, maxSilenceSeconds, ifExists, beep, terminateOn); -httpActionAsync(callback, LiveRecording_impl_ari_1_7_0.class); -} - -/********************************************************** - * Remove a channel from a bridge - * - * Remove a channel from a bridge. - *********************************************************/ -private void buildRemoveChannel(String bridgeId, String channel) { -reset(); -url = "/bridges/" + bridgeId + "/removeChannel"; -method = "POST"; -lParamQuery.add( HttpParam.build( "channel", channel) ); -lE.add( HttpResponse.build( 400, "Channel not found") ); -lE.add( HttpResponse.build( 404, "Bridge not found") ); -lE.add( HttpResponse.build( 409, "Bridge not in Stasis application") ); -lE.add( HttpResponse.build( 422, "Channel not in this bridge") ); -} - -@Override -public void removeChannel(String bridgeId, String channel) throws RestException { -buildRemoveChannel(bridgeId, channel); -String json = httpActionSync(); -} - -@Override -public void removeChannel(String bridgeId, String channel, AriCallback callback) { -buildRemoveChannel(bridgeId, channel); -httpActionAsync(callback); -} - -/********************************************************** - * Start playback of media on a bridge. - * The media URI may be any of a number of URI's. Currently sound: and recording: URI's are supported. This operation creates a playback resource that can be used to control the playback of media (pause, rewind, fast forward, etc.) - * - * @since ari_0_0_1 - *********************************************************/ -public Playback play(String bridgeId, String media, String lang, int offsetms, int skipms) throws RestException{ - throw new UnsupportedOperationException("Method availble from ..."); -}; - -/********************************************************** - * - * - * @since ari_0_0_1 - *********************************************************/ -public void play(String bridgeId, String media, String lang, int offsetms, int skipms, AriCallback callback){ - throw new UnsupportedOperationException("Method availble from ..."); -}; - -/********************************************************** - * Create a new bridge. - * This bridge persists until it has been shut down, or Asterisk has been shut down. - * - * @since ari_1_0_0 - *********************************************************/ -public Bridge create(String type, String name) throws RestException{ - throw new UnsupportedOperationException("Method availble from ..."); -}; - -/********************************************************** - * - * - * @since ari_1_5_0 - *********************************************************/ -public void create_or_update_with_id(String type, String bridgeId, String name, AriCallback callback){ - throw new UnsupportedOperationException("Method availble from ..."); -}; - -/********************************************************** - * Set a channel as the video source in a multi-party mixing bridge. This operation has no effect on bridges with two or fewer participants. - * - * - * @since ari_2_0_0 - *********************************************************/ -public void setVideoSource(String bridgeId, String channelId) throws RestException{ - throw new UnsupportedOperationException("Method availble from ..."); -}; - -/********************************************************** - * Create a new bridge or updates an existing one. - * This bridge persists until it has been shut down, or Asterisk has been shut down. - * - * @since ari_1_5_0 - *********************************************************/ -public Bridge create_or_update_with_id(String type, String bridgeId, String name) throws RestException{ - throw new UnsupportedOperationException("Method availble from ..."); -}; - -/********************************************************** - * Create a new bridge. - * This bridge persists until it has been shut down, or Asterisk has been shut down. - * - * @since ari_0_0_1 - *********************************************************/ -public Bridge create(String type) throws RestException{ - throw new UnsupportedOperationException("Method availble from ..."); -}; - -/********************************************************** - * Removes any explicit video source in a multi-party mixing bridge. This operation has no effect on bridges with two or fewer participants. When no explicit video source is set, talk detection will be used to determine the active video stream. - * - * - * @since ari_2_0_0 - *********************************************************/ -public void clearVideoSource(String bridgeId) throws RestException{ - throw new UnsupportedOperationException("Method availble from ..."); -}; - -/********************************************************** - * - * - * @since ari_0_0_1 - *********************************************************/ -public void create(String type, AriCallback callback){ - throw new UnsupportedOperationException("Method availble from ..."); -}; - -/********************************************************** - * - * - * @since ari_2_0_0 - *********************************************************/ -public void setVideoSource(String bridgeId, String channelId, AriCallback callback){ - throw new UnsupportedOperationException("Method availble from ..."); -}; - -/********************************************************** - * - * - * @since ari_1_0_0 - *********************************************************/ -public void create(String type, String name, AriCallback callback){ - throw new UnsupportedOperationException("Method availble from ..."); -}; - -/********************************************************** - * - * - * @since ari_2_0_0 - *********************************************************/ -public void clearVideoSource(String bridgeId, AriCallback callback){ - throw new UnsupportedOperationException("Method availble from ..."); -}; - -}; - diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_7_0/actions/ActionChannels_impl_ari_1_7_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_7_0/actions/ActionChannels_impl_ari_1_7_0.java deleted file mode 100644 index 53f668d1..00000000 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_7_0/actions/ActionChannels_impl_ari_1_7_0.java +++ /dev/null @@ -1,952 +0,0 @@ -package ch.loway.oss.ari4java.generated.ari_1_7_0.actions; - -// ---------------------------------------------------- -// THIS CLASS WAS GENERATED AUTOMATICALLY -// PLEASE DO NOT EDIT -// Generated on: Tue Dec 19 09:55:49 CET 2017 -// ---------------------------------------------------- - -import ch.loway.oss.ari4java.generated.*; -import java.util.Date; -import java.util.List; -import java.util.Map; -import java.util.ArrayList; -import ch.loway.oss.ari4java.tools.BaseAriAction; -import ch.loway.oss.ari4java.tools.RestException; -import ch.loway.oss.ari4java.tools.AriCallback; -import ch.loway.oss.ari4java.tools.HttpParam; -import ch.loway.oss.ari4java.tools.HttpResponse; -import com.fasterxml.jackson.core.type.TypeReference; -import ch.loway.oss.ari4java.generated.ari_1_7_0.models.*; - -/********************************************************** - * - * Generated by: Apis - *********************************************************/ - - -public class ActionChannels_impl_ari_1_7_0 extends BaseAriAction implements ActionChannels { -/********************************************************** - * Active channels - * - * List all active channels in Asterisk. - *********************************************************/ -private void buildList() { -reset(); -url = "/channels"; -method = "GET"; -} - -@Override -public List list() throws RestException { -buildList(); -String json = httpActionSync(); -return deserializeJsonAsAbstractList( json, - new TypeReference>() {} ); -} - -@Override -public void list(AriCallback> callback) { -buildList(); -httpActionAsync(callback, new TypeReference>() {}); -} - -/********************************************************** - * Active channels - * - * Create a new channel (originate). - * The new channel is created immediately and a snapshot of it returned. If a Stasis application is provided it will be automatically subscribed to the originated channel for further events and updates. - *********************************************************/ -private void buildOriginate(String endpoint, String extension, String context, long priority, String label, String app, String appArgs, String callerId, int timeout, Map variables, String channelId, String otherChannelId, String originator) { -reset(); -url = "/channels"; -method = "POST"; -lParamQuery.add( HttpParam.build( "endpoint", endpoint) ); -lParamQuery.add( HttpParam.build( "extension", extension) ); -lParamQuery.add( HttpParam.build( "context", context) ); -lParamQuery.add( HttpParam.build( "priority", priority) ); -lParamQuery.add( HttpParam.build( "label", label) ); -lParamQuery.add( HttpParam.build( "app", app) ); -lParamQuery.add( HttpParam.build( "appArgs", appArgs) ); -lParamQuery.add( HttpParam.build( "callerId", callerId) ); -lParamQuery.add( HttpParam.build( "timeout", timeout) ); -lParamBody.addAll( HttpParam.build( "variables", variables) ); -lParamQuery.add( HttpParam.build( "channelId", channelId) ); -lParamQuery.add( HttpParam.build( "otherChannelId", otherChannelId) ); -lParamQuery.add( HttpParam.build( "originator", originator) ); -lE.add( HttpResponse.build( 400, "Invalid parameters for originating a channel.") ); -} - -@Override -public Channel originate(String endpoint, String extension, String context, long priority, String label, String app, String appArgs, String callerId, int timeout, Map variables, String channelId, String otherChannelId, String originator) throws RestException { -buildOriginate(endpoint, extension, context, priority, label, app, appArgs, callerId, timeout, variables, channelId, otherChannelId, originator); -String json = httpActionSync(); -return deserializeJson( json, Channel_impl_ari_1_7_0.class ); -} - -@Override -public void originate(String endpoint, String extension, String context, long priority, String label, String app, String appArgs, String callerId, int timeout, Map variables, String channelId, String otherChannelId, String originator, AriCallback callback) { -buildOriginate(endpoint, extension, context, priority, label, app, appArgs, callerId, timeout, variables, channelId, otherChannelId, originator); -httpActionAsync(callback, Channel_impl_ari_1_7_0.class); -} - -/********************************************************** - * Active channel - * - * Channel details. - *********************************************************/ -private void buildGet(String channelId) { -reset(); -url = "/channels/" + channelId + ""; -method = "GET"; -lE.add( HttpResponse.build( 404, "Channel not found") ); -} - -@Override -public Channel get(String channelId) throws RestException { -buildGet(channelId); -String json = httpActionSync(); -return deserializeJson( json, Channel_impl_ari_1_7_0.class ); -} - -@Override -public void get(String channelId, AriCallback callback) { -buildGet(channelId); -httpActionAsync(callback, Channel_impl_ari_1_7_0.class); -} - -/********************************************************** - * Active channel - * - * Create a new channel (originate with id). - * The new channel is created immediately and a snapshot of it returned. If a Stasis application is provided it will be automatically subscribed to the originated channel for further events and updates. - *********************************************************/ -private void buildOriginateWithId(String channelId, String endpoint, String extension, String context, long priority, String label, String app, String appArgs, String callerId, int timeout, Map variables, String otherChannelId, String originator) { -reset(); -url = "/channels/" + channelId + ""; -method = "POST"; -lParamQuery.add( HttpParam.build( "endpoint", endpoint) ); -lParamQuery.add( HttpParam.build( "extension", extension) ); -lParamQuery.add( HttpParam.build( "context", context) ); -lParamQuery.add( HttpParam.build( "priority", priority) ); -lParamQuery.add( HttpParam.build( "label", label) ); -lParamQuery.add( HttpParam.build( "app", app) ); -lParamQuery.add( HttpParam.build( "appArgs", appArgs) ); -lParamQuery.add( HttpParam.build( "callerId", callerId) ); -lParamQuery.add( HttpParam.build( "timeout", timeout) ); -lParamBody.addAll( HttpParam.build( "variables", variables) ); -lParamQuery.add( HttpParam.build( "otherChannelId", otherChannelId) ); -lParamQuery.add( HttpParam.build( "originator", originator) ); -lE.add( HttpResponse.build( 400, "Invalid parameters for originating a channel.") ); -} - -@Override -public Channel originateWithId(String channelId, String endpoint, String extension, String context, long priority, String label, String app, String appArgs, String callerId, int timeout, Map variables, String otherChannelId, String originator) throws RestException { -buildOriginateWithId(channelId, endpoint, extension, context, priority, label, app, appArgs, callerId, timeout, variables, otherChannelId, originator); -String json = httpActionSync(); -return deserializeJson( json, Channel_impl_ari_1_7_0.class ); -} - -@Override -public void originateWithId(String channelId, String endpoint, String extension, String context, long priority, String label, String app, String appArgs, String callerId, int timeout, Map variables, String otherChannelId, String originator, AriCallback callback) { -buildOriginateWithId(channelId, endpoint, extension, context, priority, label, app, appArgs, callerId, timeout, variables, otherChannelId, originator); -httpActionAsync(callback, Channel_impl_ari_1_7_0.class); -} - -/********************************************************** - * Active channel - * - * Delete (i.e. hangup) a channel. - *********************************************************/ -private void buildHangup(String channelId, String reason) { -reset(); -url = "/channels/" + channelId + ""; -method = "DELETE"; -lParamQuery.add( HttpParam.build( "reason", reason) ); -lE.add( HttpResponse.build( 400, "Invalid reason for hangup provided") ); -lE.add( HttpResponse.build( 404, "Channel not found") ); -} - -@Override -public void hangup(String channelId, String reason) throws RestException { -buildHangup(channelId, reason); -String json = httpActionSync(); -} - -@Override -public void hangup(String channelId, String reason, AriCallback callback) { -buildHangup(channelId, reason); -httpActionAsync(callback); -} - -/********************************************************** - * Answer a channel - * - * Answer a channel. - *********************************************************/ -private void buildAnswer(String channelId) { -reset(); -url = "/channels/" + channelId + "/answer"; -method = "POST"; -lE.add( HttpResponse.build( 404, "Channel not found") ); -lE.add( HttpResponse.build( 409, "Channel not in a Stasis application") ); -} - -@Override -public void answer(String channelId) throws RestException { -buildAnswer(channelId); -String json = httpActionSync(); -} - -@Override -public void answer(String channelId, AriCallback callback) { -buildAnswer(channelId); -httpActionAsync(callback); -} - -/********************************************************** - * Exit application; continue execution in the dialplan - * - * Exit application; continue execution in the dialplan. - *********************************************************/ -private void buildContinueInDialplan(String channelId, String context, String extension, int priority, String label) { -reset(); -url = "/channels/" + channelId + "/continue"; -method = "POST"; -lParamQuery.add( HttpParam.build( "context", context) ); -lParamQuery.add( HttpParam.build( "extension", extension) ); -lParamQuery.add( HttpParam.build( "priority", priority) ); -lParamQuery.add( HttpParam.build( "label", label) ); -lE.add( HttpResponse.build( 404, "Channel not found") ); -lE.add( HttpResponse.build( 409, "Channel not in a Stasis application") ); -} - -@Override -public void continueInDialplan(String channelId, String context, String extension, int priority, String label) throws RestException { -buildContinueInDialplan(channelId, context, extension, priority, label); -String json = httpActionSync(); -} - -@Override -public void continueInDialplan(String channelId, String context, String extension, int priority, String label, AriCallback callback) { -buildContinueInDialplan(channelId, context, extension, priority, label); -httpActionAsync(callback); -} - -/********************************************************** - * Send DTMF to a channel - * - * Send provided DTMF to a given channel. - *********************************************************/ -private void buildSendDTMF(String channelId, String dtmf, int before, int between, int duration, int after) { -reset(); -url = "/channels/" + channelId + "/dtmf"; -method = "POST"; -lParamQuery.add( HttpParam.build( "dtmf", dtmf) ); -lParamQuery.add( HttpParam.build( "before", before) ); -lParamQuery.add( HttpParam.build( "between", between) ); -lParamQuery.add( HttpParam.build( "duration", duration) ); -lParamQuery.add( HttpParam.build( "after", after) ); -lE.add( HttpResponse.build( 400, "DTMF is required") ); -lE.add( HttpResponse.build( 404, "Channel not found") ); -lE.add( HttpResponse.build( 409, "Channel not in a Stasis application") ); -} - -@Override -public void sendDTMF(String channelId, String dtmf, int before, int between, int duration, int after) throws RestException { -buildSendDTMF(channelId, dtmf, before, between, duration, after); -String json = httpActionSync(); -} - -@Override -public void sendDTMF(String channelId, String dtmf, int before, int between, int duration, int after, AriCallback callback) { -buildSendDTMF(channelId, dtmf, before, between, duration, after); -httpActionAsync(callback); -} - -/********************************************************** - * Put a channel on hold - * - * Hold a channel. - *********************************************************/ -private void buildHold(String channelId) { -reset(); -url = "/channels/" + channelId + "/hold"; -method = "POST"; -lE.add( HttpResponse.build( 404, "Channel not found") ); -lE.add( HttpResponse.build( 409, "Channel not in a Stasis application") ); -} - -@Override -public void hold(String channelId) throws RestException { -buildHold(channelId); -String json = httpActionSync(); -} - -@Override -public void hold(String channelId, AriCallback callback) { -buildHold(channelId); -httpActionAsync(callback); -} - -/********************************************************** - * Put a channel on hold - * - * Remove a channel from hold. - *********************************************************/ -private void buildUnhold(String channelId) { -reset(); -url = "/channels/" + channelId + "/hold"; -method = "DELETE"; -lE.add( HttpResponse.build( 404, "Channel not found") ); -lE.add( HttpResponse.build( 409, "Channel not in a Stasis application") ); -} - -@Override -public void unhold(String channelId) throws RestException { -buildUnhold(channelId); -String json = httpActionSync(); -} - -@Override -public void unhold(String channelId, AriCallback callback) { -buildUnhold(channelId); -httpActionAsync(callback); -} - -/********************************************************** - * Play music on hold to a channel - * - * Play music on hold to a channel. - * Using media operations such as /play on a channel playing MOH in this manner will suspend MOH without resuming automatically. If continuing music on hold is desired, the stasis application must reinitiate music on hold. - *********************************************************/ -private void buildStartMoh(String channelId, String mohClass) { -reset(); -url = "/channels/" + channelId + "/moh"; -method = "POST"; -lParamQuery.add( HttpParam.build( "mohClass", mohClass) ); -lE.add( HttpResponse.build( 404, "Channel not found") ); -lE.add( HttpResponse.build( 409, "Channel not in a Stasis application") ); -} - -@Override -public void startMoh(String channelId, String mohClass) throws RestException { -buildStartMoh(channelId, mohClass); -String json = httpActionSync(); -} - -@Override -public void startMoh(String channelId, String mohClass, AriCallback callback) { -buildStartMoh(channelId, mohClass); -httpActionAsync(callback); -} - -/********************************************************** - * Play music on hold to a channel - * - * Stop playing music on hold to a channel. - *********************************************************/ -private void buildStopMoh(String channelId) { -reset(); -url = "/channels/" + channelId + "/moh"; -method = "DELETE"; -lE.add( HttpResponse.build( 404, "Channel not found") ); -lE.add( HttpResponse.build( 409, "Channel not in a Stasis application") ); -} - -@Override -public void stopMoh(String channelId) throws RestException { -buildStopMoh(channelId); -String json = httpActionSync(); -} - -@Override -public void stopMoh(String channelId, AriCallback callback) { -buildStopMoh(channelId); -httpActionAsync(callback); -} - -/********************************************************** - * Mute a channel - * - * Mute a channel. - *********************************************************/ -private void buildMute(String channelId, String direction) { -reset(); -url = "/channels/" + channelId + "/mute"; -method = "POST"; -lParamQuery.add( HttpParam.build( "direction", direction) ); -lE.add( HttpResponse.build( 404, "Channel not found") ); -lE.add( HttpResponse.build( 409, "Channel not in a Stasis application") ); -} - -@Override -public void mute(String channelId, String direction) throws RestException { -buildMute(channelId, direction); -String json = httpActionSync(); -} - -@Override -public void mute(String channelId, String direction, AriCallback callback) { -buildMute(channelId, direction); -httpActionAsync(callback); -} - -/********************************************************** - * Mute a channel - * - * Unmute a channel. - *********************************************************/ -private void buildUnmute(String channelId, String direction) { -reset(); -url = "/channels/" + channelId + "/mute"; -method = "DELETE"; -lParamQuery.add( HttpParam.build( "direction", direction) ); -lE.add( HttpResponse.build( 404, "Channel not found") ); -lE.add( HttpResponse.build( 409, "Channel not in a Stasis application") ); -} - -@Override -public void unmute(String channelId, String direction) throws RestException { -buildUnmute(channelId, direction); -String json = httpActionSync(); -} - -@Override -public void unmute(String channelId, String direction, AriCallback callback) { -buildUnmute(channelId, direction); -httpActionAsync(callback); -} - -/********************************************************** - * Play media to a channel - * - * Start playback of media. - * The media URI may be any of a number of URI's. Currently sound:, recording:, number:, digits:, characters:, and tone: URI's are supported. This operation creates a playback resource that can be used to control the playback of media (pause, rewind, fast forward, etc.) - *********************************************************/ -private void buildPlay(String channelId, String media, String lang, int offsetms, int skipms, String playbackId) { -reset(); -url = "/channels/" + channelId + "/play"; -method = "POST"; -lParamQuery.add( HttpParam.build( "media", media) ); -lParamQuery.add( HttpParam.build( "lang", lang) ); -lParamQuery.add( HttpParam.build( "offsetms", offsetms) ); -lParamQuery.add( HttpParam.build( "skipms", skipms) ); -lParamQuery.add( HttpParam.build( "playbackId", playbackId) ); -lE.add( HttpResponse.build( 404, "Channel not found") ); -lE.add( HttpResponse.build( 409, "Channel not in a Stasis application") ); -} - -@Override -public Playback play(String channelId, String media, String lang, int offsetms, int skipms, String playbackId) throws RestException { -buildPlay(channelId, media, lang, offsetms, skipms, playbackId); -String json = httpActionSync(); -return deserializeJson( json, Playback_impl_ari_1_7_0.class ); -} - -@Override -public void play(String channelId, String media, String lang, int offsetms, int skipms, String playbackId, AriCallback callback) { -buildPlay(channelId, media, lang, offsetms, skipms, playbackId); -httpActionAsync(callback, Playback_impl_ari_1_7_0.class); -} - -/********************************************************** - * Play media to a channel - * - * Start playback of media and specify the playbackId. - * The media URI may be any of a number of URI's. Currently sound:, recording:, number:, digits:, characters:, and tone: URI's are supported. This operation creates a playback resource that can be used to control the playback of media (pause, rewind, fast forward, etc.) - *********************************************************/ -private void buildPlayWithId(String channelId, String playbackId, String media, String lang, int offsetms, int skipms) { -reset(); -url = "/channels/" + channelId + "/play/" + playbackId + ""; -method = "POST"; -lParamQuery.add( HttpParam.build( "media", media) ); -lParamQuery.add( HttpParam.build( "lang", lang) ); -lParamQuery.add( HttpParam.build( "offsetms", offsetms) ); -lParamQuery.add( HttpParam.build( "skipms", skipms) ); -lE.add( HttpResponse.build( 404, "Channel not found") ); -lE.add( HttpResponse.build( 409, "Channel not in a Stasis application") ); -} - -@Override -public Playback playWithId(String channelId, String playbackId, String media, String lang, int offsetms, int skipms) throws RestException { -buildPlayWithId(channelId, playbackId, media, lang, offsetms, skipms); -String json = httpActionSync(); -return deserializeJson( json, Playback_impl_ari_1_7_0.class ); -} - -@Override -public void playWithId(String channelId, String playbackId, String media, String lang, int offsetms, int skipms, AriCallback callback) { -buildPlayWithId(channelId, playbackId, media, lang, offsetms, skipms); -httpActionAsync(callback, Playback_impl_ari_1_7_0.class); -} - -/********************************************************** - * Record audio from a channel - * - * Start a recording. - * Record audio from a channel. Note that this will not capture audio sent to the channel. The bridge itself has a record feature if that's what you want. - *********************************************************/ -private void buildRecord(String channelId, String name, String format, int maxDurationSeconds, int maxSilenceSeconds, String ifExists, boolean beep, String terminateOn) { -reset(); -url = "/channels/" + channelId + "/record"; -method = "POST"; -lParamQuery.add( HttpParam.build( "name", name) ); -lParamQuery.add( HttpParam.build( "format", format) ); -lParamQuery.add( HttpParam.build( "maxDurationSeconds", maxDurationSeconds) ); -lParamQuery.add( HttpParam.build( "maxSilenceSeconds", maxSilenceSeconds) ); -lParamQuery.add( HttpParam.build( "ifExists", ifExists) ); -lParamQuery.add( HttpParam.build( "beep", beep) ); -lParamQuery.add( HttpParam.build( "terminateOn", terminateOn) ); -lE.add( HttpResponse.build( 400, "Invalid parameters") ); -lE.add( HttpResponse.build( 404, "Channel not found") ); -lE.add( HttpResponse.build( 409, "Channel is not in a Stasis application; the channel is currently bridged with other hcannels; A recording with the same name already exists on the system and can not be overwritten because it is in progress or ifExists=fail") ); -lE.add( HttpResponse.build( 422, "The format specified is unknown on this system") ); -} - -@Override -public LiveRecording record(String channelId, String name, String format, int maxDurationSeconds, int maxSilenceSeconds, String ifExists, boolean beep, String terminateOn) throws RestException { -buildRecord(channelId, name, format, maxDurationSeconds, maxSilenceSeconds, ifExists, beep, terminateOn); -String json = httpActionSync(); -return deserializeJson( json, LiveRecording_impl_ari_1_7_0.class ); -} - -@Override -public void record(String channelId, String name, String format, int maxDurationSeconds, int maxSilenceSeconds, String ifExists, boolean beep, String terminateOn, AriCallback callback) { -buildRecord(channelId, name, format, maxDurationSeconds, maxSilenceSeconds, ifExists, beep, terminateOn); -httpActionAsync(callback, LiveRecording_impl_ari_1_7_0.class); -} - -/********************************************************** - * Send a ringing indication to a channel - * - * Indicate ringing to a channel. - *********************************************************/ -private void buildRing(String channelId) { -reset(); -url = "/channels/" + channelId + "/ring"; -method = "POST"; -lE.add( HttpResponse.build( 404, "Channel not found") ); -lE.add( HttpResponse.build( 409, "Channel not in a Stasis application") ); -} - -@Override -public void ring(String channelId) throws RestException { -buildRing(channelId); -String json = httpActionSync(); -} - -@Override -public void ring(String channelId, AriCallback callback) { -buildRing(channelId); -httpActionAsync(callback); -} - -/********************************************************** - * Send a ringing indication to a channel - * - * Stop ringing indication on a channel if locally generated. - *********************************************************/ -private void buildRingStop(String channelId) { -reset(); -url = "/channels/" + channelId + "/ring"; -method = "DELETE"; -lE.add( HttpResponse.build( 404, "Channel not found") ); -lE.add( HttpResponse.build( 409, "Channel not in a Stasis application") ); -} - -@Override -public void ringStop(String channelId) throws RestException { -buildRingStop(channelId); -String json = httpActionSync(); -} - -@Override -public void ringStop(String channelId, AriCallback callback) { -buildRingStop(channelId); -httpActionAsync(callback); -} - -/********************************************************** - * Play silence to a channel - * - * Play silence to a channel. - * Using media operations such as /play on a channel playing silence in this manner will suspend silence without resuming automatically. - *********************************************************/ -private void buildStartSilence(String channelId) { -reset(); -url = "/channels/" + channelId + "/silence"; -method = "POST"; -lE.add( HttpResponse.build( 404, "Channel not found") ); -lE.add( HttpResponse.build( 409, "Channel not in a Stasis application") ); -} - -@Override -public void startSilence(String channelId) throws RestException { -buildStartSilence(channelId); -String json = httpActionSync(); -} - -@Override -public void startSilence(String channelId, AriCallback callback) { -buildStartSilence(channelId); -httpActionAsync(callback); -} - -/********************************************************** - * Play silence to a channel - * - * Stop playing silence to a channel. - *********************************************************/ -private void buildStopSilence(String channelId) { -reset(); -url = "/channels/" + channelId + "/silence"; -method = "DELETE"; -lE.add( HttpResponse.build( 404, "Channel not found") ); -lE.add( HttpResponse.build( 409, "Channel not in a Stasis application") ); -} - -@Override -public void stopSilence(String channelId) throws RestException { -buildStopSilence(channelId); -String json = httpActionSync(); -} - -@Override -public void stopSilence(String channelId, AriCallback callback) { -buildStopSilence(channelId); -httpActionAsync(callback); -} - -/********************************************************** - * Snoop (spy/whisper) on a channel - * - * Start snooping. - * Snoop (spy/whisper) on a specific channel. - *********************************************************/ -private void buildSnoopChannel(String channelId, String spy, String whisper, String app, String appArgs, String snoopId) { -reset(); -url = "/channels/" + channelId + "/snoop"; -method = "POST"; -lParamQuery.add( HttpParam.build( "spy", spy) ); -lParamQuery.add( HttpParam.build( "whisper", whisper) ); -lParamQuery.add( HttpParam.build( "app", app) ); -lParamQuery.add( HttpParam.build( "appArgs", appArgs) ); -lParamQuery.add( HttpParam.build( "snoopId", snoopId) ); -lE.add( HttpResponse.build( 400, "Invalid parameters") ); -lE.add( HttpResponse.build( 404, "Channel not found") ); -} - -@Override -public Channel snoopChannel(String channelId, String spy, String whisper, String app, String appArgs, String snoopId) throws RestException { -buildSnoopChannel(channelId, spy, whisper, app, appArgs, snoopId); -String json = httpActionSync(); -return deserializeJson( json, Channel_impl_ari_1_7_0.class ); -} - -@Override -public void snoopChannel(String channelId, String spy, String whisper, String app, String appArgs, String snoopId, AriCallback callback) { -buildSnoopChannel(channelId, spy, whisper, app, appArgs, snoopId); -httpActionAsync(callback, Channel_impl_ari_1_7_0.class); -} - -/********************************************************** - * Snoop (spy/whisper) on a channel - * - * Start snooping. - * Snoop (spy/whisper) on a specific channel. - *********************************************************/ -private void buildSnoopChannelWithId(String channelId, String snoopId, String spy, String whisper, String app, String appArgs) { -reset(); -url = "/channels/" + channelId + "/snoop/" + snoopId + ""; -method = "POST"; -lParamQuery.add( HttpParam.build( "spy", spy) ); -lParamQuery.add( HttpParam.build( "whisper", whisper) ); -lParamQuery.add( HttpParam.build( "app", app) ); -lParamQuery.add( HttpParam.build( "appArgs", appArgs) ); -lE.add( HttpResponse.build( 400, "Invalid parameters") ); -lE.add( HttpResponse.build( 404, "Channel not found") ); -} - -@Override -public Channel snoopChannelWithId(String channelId, String snoopId, String spy, String whisper, String app, String appArgs) throws RestException { -buildSnoopChannelWithId(channelId, snoopId, spy, whisper, app, appArgs); -String json = httpActionSync(); -return deserializeJson( json, Channel_impl_ari_1_7_0.class ); -} - -@Override -public void snoopChannelWithId(String channelId, String snoopId, String spy, String whisper, String app, String appArgs, AriCallback callback) { -buildSnoopChannelWithId(channelId, snoopId, spy, whisper, app, appArgs); -httpActionAsync(callback, Channel_impl_ari_1_7_0.class); -} - -/********************************************************** - * Variables on a channel - * - * Get the value of a channel variable or function. - *********************************************************/ -private void buildGetChannelVar(String channelId, String variable) { -reset(); -url = "/channels/" + channelId + "/variable"; -method = "GET"; -lParamQuery.add( HttpParam.build( "variable", variable) ); -lE.add( HttpResponse.build( 400, "Missing variable parameter.") ); -lE.add( HttpResponse.build( 404, "Channel not found") ); -lE.add( HttpResponse.build( 409, "Channel not in a Stasis application") ); -} - -@Override -public Variable getChannelVar(String channelId, String variable) throws RestException { -buildGetChannelVar(channelId, variable); -String json = httpActionSync(); -return deserializeJson( json, Variable_impl_ari_1_7_0.class ); -} - -@Override -public void getChannelVar(String channelId, String variable, AriCallback callback) { -buildGetChannelVar(channelId, variable); -httpActionAsync(callback, Variable_impl_ari_1_7_0.class); -} - -/********************************************************** - * Variables on a channel - * - * Set the value of a channel variable or function. - *********************************************************/ -private void buildSetChannelVar(String channelId, String variable, String value) { -reset(); -url = "/channels/" + channelId + "/variable"; -method = "POST"; -lParamQuery.add( HttpParam.build( "variable", variable) ); -lParamQuery.add( HttpParam.build( "value", value) ); -lE.add( HttpResponse.build( 400, "Missing variable parameter.") ); -lE.add( HttpResponse.build( 404, "Channel not found") ); -lE.add( HttpResponse.build( 409, "Channel not in a Stasis application") ); -} - -@Override -public void setChannelVar(String channelId, String variable, String value) throws RestException { -buildSetChannelVar(channelId, variable, value); -String json = httpActionSync(); -} - -@Override -public void setChannelVar(String channelId, String variable, String value, AriCallback callback) { -buildSetChannelVar(channelId, variable, value); -httpActionAsync(callback); -} - -/********************************************************** - * - * - * @since ari_1_8_0 - *********************************************************/ -public void redirect(String channelId, String endpoint, AriCallback callback){ - throw new UnsupportedOperationException("Method availble from ..."); -}; - -/********************************************************** - * Create a new channel (originate with id). - * The new channel is created immediately and a snapshot of it returned. If a Stasis application is provided it will be automatically subscribed to the originated channel for further events and updates. - * - * @since ari_1_5_0 - *********************************************************/ -public Channel originateWithId(String channelId, String endpoint, String extension, String context, long priority, String app, String appArgs, String callerId, int timeout, Map variables, String otherChannelId) throws RestException{ - throw new UnsupportedOperationException("Method availble from ..."); -}; - -/********************************************************** - * Start snooping. - * Snoop (spy/whisper) on a specific channel. - * - * @since ari_0_0_1 - *********************************************************/ -public Channel snoopChannel(String channelId, String spy, String whisper, String app, String appArgs) throws RestException{ - throw new UnsupportedOperationException("Method availble from ..."); -}; - -/********************************************************** - * - * - * @since ari_1_10_0 - *********************************************************/ -public void dial(String channelId, String caller, int timeout, AriCallback callback){ - throw new UnsupportedOperationException("Method availble from ..."); -}; - -/********************************************************** - * - * - * @since ari_1_5_0 - *********************************************************/ -public void originate(String endpoint, String extension, String context, long priority, String app, String appArgs, String callerId, int timeout, Map variables, String channelId, String otherChannelId, AriCallback callback){ - throw new UnsupportedOperationException("Method availble from ..."); -}; - -/********************************************************** - * - * - * @since ari_0_0_1 - *********************************************************/ -public void continueInDialplan(String channelId, String context, String extension, int priority, AriCallback callback){ - throw new UnsupportedOperationException("Method availble from ..."); -}; - -/********************************************************** - * - * - * @since ari_1_10_0 - *********************************************************/ -public void originateWithId(String channelId, String endpoint, String extension, String context, long priority, String label, String app, String appArgs, String callerId, int timeout, Map variables, String otherChannelId, String originator, String formats, AriCallback callback){ - throw new UnsupportedOperationException("Method availble from ..."); -}; - -/********************************************************** - * Start playback of media. - * The media URI may be any of a number of URI's. Currently sound: and recording: URI's are supported. This operation creates a playback resource that can be used to control the playback of media (pause, rewind, fast forward, etc.) - * - * @since ari_0_0_1 - *********************************************************/ -public Playback play(String channelId, String media, String lang, int offsetms, int skipms) throws RestException{ - throw new UnsupportedOperationException("Method availble from ..."); -}; - -/********************************************************** - * - * - * @since ari_0_0_1 - *********************************************************/ -public void play(String channelId, String media, String lang, int offsetms, int skipms, AriCallback callback){ - throw new UnsupportedOperationException("Method availble from ..."); -}; - -/********************************************************** - * - * - * @since ari_0_0_1 - *********************************************************/ -public void snoopChannel(String channelId, String spy, String whisper, String app, String appArgs, AriCallback callback){ - throw new UnsupportedOperationException("Method availble from ..."); -}; - -/********************************************************** - * - * - * @since ari_1_5_0 - *********************************************************/ -public void originateWithId(String channelId, String endpoint, String extension, String context, long priority, String app, String appArgs, String callerId, int timeout, Map variables, String otherChannelId, AriCallback callback){ - throw new UnsupportedOperationException("Method availble from ..."); -}; - -/********************************************************** - * Create a new channel (originate). - * The new channel is created immediately and a snapshot of it returned. If a Stasis application is provided it will be automatically subscribed to the originated channel for further events and updates. - * - * @since ari_1_10_0 - *********************************************************/ -public Channel originate(String endpoint, String extension, String context, long priority, String label, String app, String appArgs, String callerId, int timeout, Map variables, String channelId, String otherChannelId, String originator, String formats) throws RestException{ - throw new UnsupportedOperationException("Method availble from ..."); -}; - -/********************************************************** - * Create a new channel (originate with id). - * The new channel is created immediately and a snapshot of it returned. If a Stasis application is provided it will be automatically subscribed to the originated channel for further events and updates. - * - * @since ari_1_10_0 - *********************************************************/ -public Channel originateWithId(String channelId, String endpoint, String extension, String context, long priority, String label, String app, String appArgs, String callerId, int timeout, Map variables, String otherChannelId, String originator, String formats) throws RestException{ - throw new UnsupportedOperationException("Method availble from ..."); -}; - -/********************************************************** - * Create a new channel (originate). - * The new channel is created immediately and a snapshot of it returned. If a Stasis application is provided it will be automatically subscribed to the originated channel for further events and updates. - * - * @since ari_0_0_1 - *********************************************************/ -public Channel originate(String endpoint, String extension, String context, long priority, String app, String appArgs, String callerId, int timeout) throws RestException{ - throw new UnsupportedOperationException("Method availble from ..."); -}; - -/********************************************************** - * Dial a created channel. - * - * - * @since ari_1_10_0 - *********************************************************/ -public void dial(String channelId, String caller, int timeout) throws RestException{ - throw new UnsupportedOperationException("Method availble from ..."); -}; - -/********************************************************** - * - * - * @since ari_1_10_0 - *********************************************************/ -public void create(String endpoint, String app, String appArgs, String channelId, String otherChannelId, String originator, String formats, AriCallback callback){ - throw new UnsupportedOperationException("Method availble from ..."); -}; - -/********************************************************** - * Create channel. - * - * - * @since ari_1_10_0 - *********************************************************/ -public Channel create(String endpoint, String app, String appArgs, String channelId, String otherChannelId, String originator, String formats) throws RestException{ - throw new UnsupportedOperationException("Method availble from ..."); -}; - -/********************************************************** - * Exit application{ - throw new UnsupportedOperationException("Method availble from ..."); -}; continue execution in the dialplan. - * - * - * @since ari_0_0_1 - *********************************************************/ -public void continueInDialplan(String channelId, String context, String extension, int priority) throws RestException{ - throw new UnsupportedOperationException("Method availble from ..."); -}; - -/********************************************************** - * - * - * @since ari_1_10_0 - *********************************************************/ -public void originate(String endpoint, String extension, String context, long priority, String label, String app, String appArgs, String callerId, int timeout, Map variables, String channelId, String otherChannelId, String originator, String formats, AriCallback callback){ - throw new UnsupportedOperationException("Method availble from ..."); -}; - -/********************************************************** - * Create a new channel (originate). - * The new channel is created immediately and a snapshot of it returned. If a Stasis application is provided it will be automatically subscribed to the originated channel for further events and updates. - * - * @since ari_1_5_0 - *********************************************************/ -public Channel originate(String endpoint, String extension, String context, long priority, String app, String appArgs, String callerId, int timeout, Map variables, String channelId, String otherChannelId) throws RestException{ - throw new UnsupportedOperationException("Method availble from ..."); -}; - -/********************************************************** - * Redirect the channel to a different location. - * - * - * @since ari_1_8_0 - *********************************************************/ -public void redirect(String channelId, String endpoint) throws RestException{ - throw new UnsupportedOperationException("Method availble from ..."); -}; - -/********************************************************** - * - * - * @since ari_0_0_1 - *********************************************************/ -public void originate(String endpoint, String extension, String context, long priority, String app, String appArgs, String callerId, int timeout, AriCallback callback){ - throw new UnsupportedOperationException("Method availble from ..."); -}; - -}; - diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_7_0/actions/ActionDeviceStates_impl_ari_1_7_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_7_0/actions/ActionDeviceStates_impl_ari_1_7_0.java deleted file mode 100644 index 49df38dc..00000000 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_7_0/actions/ActionDeviceStates_impl_ari_1_7_0.java +++ /dev/null @@ -1,131 +0,0 @@ -package ch.loway.oss.ari4java.generated.ari_1_7_0.actions; - -// ---------------------------------------------------- -// THIS CLASS WAS GENERATED AUTOMATICALLY -// PLEASE DO NOT EDIT -// Generated on: Tue Dec 19 09:55:49 CET 2017 -// ---------------------------------------------------- - -import ch.loway.oss.ari4java.generated.*; -import java.util.Date; -import java.util.List; -import java.util.Map; -import java.util.ArrayList; -import ch.loway.oss.ari4java.tools.BaseAriAction; -import ch.loway.oss.ari4java.tools.RestException; -import ch.loway.oss.ari4java.tools.AriCallback; -import ch.loway.oss.ari4java.tools.HttpParam; -import ch.loway.oss.ari4java.tools.HttpResponse; -import com.fasterxml.jackson.core.type.TypeReference; -import ch.loway.oss.ari4java.generated.ari_1_7_0.models.*; - -/********************************************************** - * - * Generated by: Apis - *********************************************************/ - - -public class ActionDeviceStates_impl_ari_1_7_0 extends BaseAriAction implements ActionDeviceStates { -/********************************************************** - * Device states - * - * List all ARI controlled device states. - *********************************************************/ -private void buildList() { -reset(); -url = "/deviceStates"; -method = "GET"; -} - -@Override -public List list() throws RestException { -buildList(); -String json = httpActionSync(); -return deserializeJsonAsAbstractList( json, - new TypeReference>() {} ); -} - -@Override -public void list(AriCallback> callback) { -buildList(); -httpActionAsync(callback, new TypeReference>() {}); -} - -/********************************************************** - * Device state - * - * Retrieve the current state of a device. - *********************************************************/ -private void buildGet(String deviceName) { -reset(); -url = "/deviceStates/" + deviceName + ""; -method = "GET"; -} - -@Override -public DeviceState get(String deviceName) throws RestException { -buildGet(deviceName); -String json = httpActionSync(); -return deserializeJson( json, DeviceState_impl_ari_1_7_0.class ); -} - -@Override -public void get(String deviceName, AriCallback callback) { -buildGet(deviceName); -httpActionAsync(callback, DeviceState_impl_ari_1_7_0.class); -} - -/********************************************************** - * Device state - * - * Change the state of a device controlled by ARI. (Note - implicitly creates the device state). - *********************************************************/ -private void buildUpdate(String deviceName, String deviceState) { -reset(); -url = "/deviceStates/" + deviceName + ""; -method = "PUT"; -lParamQuery.add( HttpParam.build( "deviceState", deviceState) ); -lE.add( HttpResponse.build( 404, "Device name is missing") ); -lE.add( HttpResponse.build( 409, "Uncontrolled device specified") ); -} - -@Override -public void update(String deviceName, String deviceState) throws RestException { -buildUpdate(deviceName, deviceState); -String json = httpActionSync(); -} - -@Override -public void update(String deviceName, String deviceState, AriCallback callback) { -buildUpdate(deviceName, deviceState); -httpActionAsync(callback); -} - -/********************************************************** - * Device state - * - * Destroy a device-state controlled by ARI. - *********************************************************/ -private void buildDelete(String deviceName) { -reset(); -url = "/deviceStates/" + deviceName + ""; -method = "DELETE"; -lE.add( HttpResponse.build( 404, "Device name is missing") ); -lE.add( HttpResponse.build( 409, "Uncontrolled device specified") ); -} - -@Override -public void delete(String deviceName) throws RestException { -buildDelete(deviceName); -String json = httpActionSync(); -} - -@Override -public void delete(String deviceName, AriCallback callback) { -buildDelete(deviceName); -httpActionAsync(callback); -} - -/** No missing signatures from interface */ -}; - diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_7_0/actions/ActionEndpoints_impl_ari_1_7_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_7_0/actions/ActionEndpoints_impl_ari_1_7_0.java deleted file mode 100644 index d84d6228..00000000 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_7_0/actions/ActionEndpoints_impl_ari_1_7_0.java +++ /dev/null @@ -1,164 +0,0 @@ -package ch.loway.oss.ari4java.generated.ari_1_7_0.actions; - -// ---------------------------------------------------- -// THIS CLASS WAS GENERATED AUTOMATICALLY -// PLEASE DO NOT EDIT -// Generated on: Tue Dec 19 09:55:49 CET 2017 -// ---------------------------------------------------- - -import ch.loway.oss.ari4java.generated.*; -import java.util.Date; -import java.util.List; -import java.util.Map; -import java.util.ArrayList; -import ch.loway.oss.ari4java.tools.BaseAriAction; -import ch.loway.oss.ari4java.tools.RestException; -import ch.loway.oss.ari4java.tools.AriCallback; -import ch.loway.oss.ari4java.tools.HttpParam; -import ch.loway.oss.ari4java.tools.HttpResponse; -import com.fasterxml.jackson.core.type.TypeReference; -import ch.loway.oss.ari4java.generated.ari_1_7_0.models.*; - -/********************************************************** - * - * Generated by: Apis - *********************************************************/ - - -public class ActionEndpoints_impl_ari_1_7_0 extends BaseAriAction implements ActionEndpoints { -/********************************************************** - * Asterisk endpoints - * - * List all endpoints. - *********************************************************/ -private void buildList() { -reset(); -url = "/endpoints"; -method = "GET"; -} - -@Override -public List list() throws RestException { -buildList(); -String json = httpActionSync(); -return deserializeJsonAsAbstractList( json, - new TypeReference>() {} ); -} - -@Override -public void list(AriCallback> callback) { -buildList(); -httpActionAsync(callback, new TypeReference>() {}); -} - -/********************************************************** - * Send a message to some technology URI or endpoint. - * - * Send a message to some technology URI or endpoint. - *********************************************************/ -private void buildSendMessage(String to, String from, String body, Map variables) { -reset(); -url = "/endpoints/sendMessage"; -method = "PUT"; -lParamQuery.add( HttpParam.build( "to", to) ); -lParamQuery.add( HttpParam.build( "from", from) ); -lParamQuery.add( HttpParam.build( "body", body) ); -lParamBody.addAll( HttpParam.build( "variables", variables) ); -lE.add( HttpResponse.build( 404, "Endpoint not found") ); -} - -@Override -public void sendMessage(String to, String from, String body, Map variables) throws RestException { -buildSendMessage(to, from, body, variables); -String json = httpActionSync(); -} - -@Override -public void sendMessage(String to, String from, String body, Map variables, AriCallback callback) { -buildSendMessage(to, from, body, variables); -httpActionAsync(callback); -} - -/********************************************************** - * Asterisk endpoints - * - * List available endoints for a given endpoint technology. - *********************************************************/ -private void buildListByTech(String tech) { -reset(); -url = "/endpoints/" + tech + ""; -method = "GET"; -lE.add( HttpResponse.build( 404, "Endpoints not found") ); -} - -@Override -public List listByTech(String tech) throws RestException { -buildListByTech(tech); -String json = httpActionSync(); -return deserializeJsonAsAbstractList( json, - new TypeReference>() {} ); -} - -@Override -public void listByTech(String tech, AriCallback> callback) { -buildListByTech(tech); -httpActionAsync(callback, new TypeReference>() {}); -} - -/********************************************************** - * Single endpoint - * - * Details for an endpoint. - *********************************************************/ -private void buildGet(String tech, String resource) { -reset(); -url = "/endpoints/" + tech + "/" + resource + ""; -method = "GET"; -lE.add( HttpResponse.build( 400, "Invalid parameters for sending a message.") ); -lE.add( HttpResponse.build( 404, "Endpoints not found") ); -} - -@Override -public Endpoint get(String tech, String resource) throws RestException { -buildGet(tech, resource); -String json = httpActionSync(); -return deserializeJson( json, Endpoint_impl_ari_1_7_0.class ); -} - -@Override -public void get(String tech, String resource, AriCallback callback) { -buildGet(tech, resource); -httpActionAsync(callback, Endpoint_impl_ari_1_7_0.class); -} - -/********************************************************** - * Send a message to some endpoint in a technology. - * - * Send a message to some endpoint in a technology. - *********************************************************/ -private void buildSendMessageToEndpoint(String tech, String resource, String from, String body, Map variables) { -reset(); -url = "/endpoints/" + tech + "/" + resource + "/sendMessage"; -method = "PUT"; -lParamQuery.add( HttpParam.build( "from", from) ); -lParamQuery.add( HttpParam.build( "body", body) ); -lParamBody.addAll( HttpParam.build( "variables", variables) ); -lE.add( HttpResponse.build( 400, "Invalid parameters for sending a message.") ); -lE.add( HttpResponse.build( 404, "Endpoint not found") ); -} - -@Override -public void sendMessageToEndpoint(String tech, String resource, String from, String body, Map variables) throws RestException { -buildSendMessageToEndpoint(tech, resource, from, body, variables); -String json = httpActionSync(); -} - -@Override -public void sendMessageToEndpoint(String tech, String resource, String from, String body, Map variables, AriCallback callback) { -buildSendMessageToEndpoint(tech, resource, from, body, variables); -httpActionAsync(callback); -} - -/** No missing signatures from interface */ -}; - diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_7_0/actions/ActionEvents_impl_ari_1_7_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_7_0/actions/ActionEvents_impl_ari_1_7_0.java deleted file mode 100644 index a0d5db56..00000000 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_7_0/actions/ActionEvents_impl_ari_1_7_0.java +++ /dev/null @@ -1,102 +0,0 @@ -package ch.loway.oss.ari4java.generated.ari_1_7_0.actions; - -// ---------------------------------------------------- -// THIS CLASS WAS GENERATED AUTOMATICALLY -// PLEASE DO NOT EDIT -// Generated on: Tue Dec 19 09:55:49 CET 2017 -// ---------------------------------------------------- - -import ch.loway.oss.ari4java.generated.*; -import java.util.Date; -import java.util.List; -import java.util.Map; -import java.util.ArrayList; -import ch.loway.oss.ari4java.tools.BaseAriAction; -import ch.loway.oss.ari4java.tools.RestException; -import ch.loway.oss.ari4java.tools.AriCallback; -import ch.loway.oss.ari4java.tools.HttpParam; -import ch.loway.oss.ari4java.tools.HttpResponse; -import com.fasterxml.jackson.core.type.TypeReference; -import ch.loway.oss.ari4java.generated.ari_1_7_0.models.*; - -/********************************************************** - * - * Generated by: Apis - *********************************************************/ - - -public class ActionEvents_impl_ari_1_7_0 extends BaseAriAction implements ActionEvents { -/********************************************************** - * Events from Asterisk to applications - * - * WebSocket connection for events. - *********************************************************/ -private void buildEventWebsocket(String app) { -reset(); -url = "/events"; -method = "GET"; -lParamQuery.add( HttpParam.build( "app", app) ); -wsUpgrade = true; -} - -@Override -public Message eventWebsocket(String app) throws RestException { -throw new RestException("No synchronous operation on WebSocket"); -} - -@Override -public void eventWebsocket(String app, AriCallback callback) { -buildEventWebsocket(app); -httpActionAsync(callback, Message_impl_ari_1_7_0.class); -} - -/********************************************************** - * Stasis application user events - * - * Generate a user event. - *********************************************************/ -private void buildUserEvent(String eventName, String application, String source, Map variables) { -reset(); -url = "/events/user/" + eventName + ""; -method = "POST"; -lParamQuery.add( HttpParam.build( "application", application) ); -lParamQuery.add( HttpParam.build( "source", source) ); -lParamBody.addAll( HttpParam.build( "variables", variables) ); -lE.add( HttpResponse.build( 404, "Application does not exist.") ); -lE.add( HttpResponse.build( 422, "Event source not found.") ); -lE.add( HttpResponse.build( 400, "Invalid even tsource URI or userevent data.") ); -} - -@Override -public void userEvent(String eventName, String application, String source, Map variables) throws RestException { -buildUserEvent(eventName, application, source, variables); -String json = httpActionSync(); -} - -@Override -public void userEvent(String eventName, String application, String source, Map variables, AriCallback callback) { -buildUserEvent(eventName, application, source, variables); -httpActionAsync(callback); -} - -/********************************************************** - * WebSocket connection for events. - * - * - * @since ari_1_9_0 - *********************************************************/ -public Message eventWebsocket(String app, boolean subscribeAll) throws RestException{ - throw new UnsupportedOperationException("Method availble from ..."); -}; - -/********************************************************** - * - * - * @since ari_1_9_0 - *********************************************************/ -public void eventWebsocket(String app, boolean subscribeAll, AriCallback callback){ - throw new UnsupportedOperationException("Method availble from ..."); -}; - -}; - diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_7_0/actions/ActionPlaybacks_impl_ari_1_7_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_7_0/actions/ActionPlaybacks_impl_ari_1_7_0.java deleted file mode 100644 index 023ecdb0..00000000 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_7_0/actions/ActionPlaybacks_impl_ari_1_7_0.java +++ /dev/null @@ -1,107 +0,0 @@ -package ch.loway.oss.ari4java.generated.ari_1_7_0.actions; - -// ---------------------------------------------------- -// THIS CLASS WAS GENERATED AUTOMATICALLY -// PLEASE DO NOT EDIT -// Generated on: Tue Dec 19 09:55:49 CET 2017 -// ---------------------------------------------------- - -import ch.loway.oss.ari4java.generated.*; -import java.util.Date; -import java.util.List; -import java.util.Map; -import java.util.ArrayList; -import ch.loway.oss.ari4java.tools.BaseAriAction; -import ch.loway.oss.ari4java.tools.RestException; -import ch.loway.oss.ari4java.tools.AriCallback; -import ch.loway.oss.ari4java.tools.HttpParam; -import ch.loway.oss.ari4java.tools.HttpResponse; -import com.fasterxml.jackson.core.type.TypeReference; -import ch.loway.oss.ari4java.generated.ari_1_7_0.models.*; - -/********************************************************** - * - * Generated by: Apis - *********************************************************/ - - -public class ActionPlaybacks_impl_ari_1_7_0 extends BaseAriAction implements ActionPlaybacks { -/********************************************************** - * Control object for a playback operation. - * - * Get a playback's details. - *********************************************************/ -private void buildGet(String playbackId) { -reset(); -url = "/playbacks/" + playbackId + ""; -method = "GET"; -lE.add( HttpResponse.build( 404, "The playback cannot be found") ); -} - -@Override -public Playback get(String playbackId) throws RestException { -buildGet(playbackId); -String json = httpActionSync(); -return deserializeJson( json, Playback_impl_ari_1_7_0.class ); -} - -@Override -public void get(String playbackId, AriCallback callback) { -buildGet(playbackId); -httpActionAsync(callback, Playback_impl_ari_1_7_0.class); -} - -/********************************************************** - * Control object for a playback operation. - * - * Stop a playback. - *********************************************************/ -private void buildStop(String playbackId) { -reset(); -url = "/playbacks/" + playbackId + ""; -method = "DELETE"; -lE.add( HttpResponse.build( 404, "The playback cannot be found") ); -} - -@Override -public void stop(String playbackId) throws RestException { -buildStop(playbackId); -String json = httpActionSync(); -} - -@Override -public void stop(String playbackId, AriCallback callback) { -buildStop(playbackId); -httpActionAsync(callback); -} - -/********************************************************** - * Control object for a playback operation. - * - * Control a playback. - *********************************************************/ -private void buildControl(String playbackId, String operation) { -reset(); -url = "/playbacks/" + playbackId + "/control"; -method = "POST"; -lParamQuery.add( HttpParam.build( "operation", operation) ); -lE.add( HttpResponse.build( 400, "The provided operation parameter was invalid") ); -lE.add( HttpResponse.build( 404, "The playback cannot be found") ); -lE.add( HttpResponse.build( 409, "The operation cannot be performed in the playback's current state") ); -} - -@Override -public void control(String playbackId, String operation) throws RestException { -buildControl(playbackId, operation); -String json = httpActionSync(); -} - -@Override -public void control(String playbackId, String operation, AriCallback callback) { -buildControl(playbackId, operation); -httpActionAsync(callback); -} - -/** No missing signatures from interface */ -}; - diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_7_0/actions/ActionRecordings_impl_ari_1_7_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_7_0/actions/ActionRecordings_impl_ari_1_7_0.java deleted file mode 100644 index 956e2a93..00000000 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_7_0/actions/ActionRecordings_impl_ari_1_7_0.java +++ /dev/null @@ -1,325 +0,0 @@ -package ch.loway.oss.ari4java.generated.ari_1_7_0.actions; - -// ---------------------------------------------------- -// THIS CLASS WAS GENERATED AUTOMATICALLY -// PLEASE DO NOT EDIT -// Generated on: Tue Dec 19 09:55:49 CET 2017 -// ---------------------------------------------------- - -import ch.loway.oss.ari4java.generated.*; -import java.util.Date; -import java.util.List; -import java.util.Map; -import java.util.ArrayList; -import ch.loway.oss.ari4java.tools.BaseAriAction; -import ch.loway.oss.ari4java.tools.RestException; -import ch.loway.oss.ari4java.tools.AriCallback; -import ch.loway.oss.ari4java.tools.HttpParam; -import ch.loway.oss.ari4java.tools.HttpResponse; -import com.fasterxml.jackson.core.type.TypeReference; -import ch.loway.oss.ari4java.generated.ari_1_7_0.models.*; - -/********************************************************** - * - * Generated by: Apis - *********************************************************/ - - -public class ActionRecordings_impl_ari_1_7_0 extends BaseAriAction implements ActionRecordings { -/********************************************************** - * A recording that is in progress - * - * List live recordings. - *********************************************************/ -private void buildGetLive(String recordingName) { -reset(); -url = "/recordings/live/" + recordingName + ""; -method = "GET"; -lE.add( HttpResponse.build( 404, "Recording not found") ); -} - -@Override -public LiveRecording getLive(String recordingName) throws RestException { -buildGetLive(recordingName); -String json = httpActionSync(); -return deserializeJson( json, LiveRecording_impl_ari_1_7_0.class ); -} - -@Override -public void getLive(String recordingName, AriCallback callback) { -buildGetLive(recordingName); -httpActionAsync(callback, LiveRecording_impl_ari_1_7_0.class); -} - -/********************************************************** - * A recording that is in progress - * - * Stop a live recording and discard it. - *********************************************************/ -private void buildCancel(String recordingName) { -reset(); -url = "/recordings/live/" + recordingName + ""; -method = "DELETE"; -lE.add( HttpResponse.build( 404, "Recording not found") ); -} - -@Override -public void cancel(String recordingName) throws RestException { -buildCancel(recordingName); -String json = httpActionSync(); -} - -@Override -public void cancel(String recordingName, AriCallback callback) { -buildCancel(recordingName); -httpActionAsync(callback); -} - -/********************************************************** - * - * - * Mute a live recording. - * Muting a recording suspends silence detection, which will be restarted when the recording is unmuted. - *********************************************************/ -private void buildMute(String recordingName) { -reset(); -url = "/recordings/live/" + recordingName + "/mute"; -method = "POST"; -lE.add( HttpResponse.build( 404, "Recording not found") ); -lE.add( HttpResponse.build( 409, "Recording not in session") ); -} - -@Override -public void mute(String recordingName) throws RestException { -buildMute(recordingName); -String json = httpActionSync(); -} - -@Override -public void mute(String recordingName, AriCallback callback) { -buildMute(recordingName); -httpActionAsync(callback); -} - -/********************************************************** - * - * - * Unmute a live recording. - *********************************************************/ -private void buildUnmute(String recordingName) { -reset(); -url = "/recordings/live/" + recordingName + "/mute"; -method = "DELETE"; -lE.add( HttpResponse.build( 404, "Recording not found") ); -lE.add( HttpResponse.build( 409, "Recording not in session") ); -} - -@Override -public void unmute(String recordingName) throws RestException { -buildUnmute(recordingName); -String json = httpActionSync(); -} - -@Override -public void unmute(String recordingName, AriCallback callback) { -buildUnmute(recordingName); -httpActionAsync(callback); -} - -/********************************************************** - * - * - * Pause a live recording. - * Pausing a recording suspends silence detection, which will be restarted when the recording is unpaused. Paused time is not included in the accounting for maxDurationSeconds. - *********************************************************/ -private void buildPause(String recordingName) { -reset(); -url = "/recordings/live/" + recordingName + "/pause"; -method = "POST"; -lE.add( HttpResponse.build( 404, "Recording not found") ); -lE.add( HttpResponse.build( 409, "Recording not in session") ); -} - -@Override -public void pause(String recordingName) throws RestException { -buildPause(recordingName); -String json = httpActionSync(); -} - -@Override -public void pause(String recordingName, AriCallback callback) { -buildPause(recordingName); -httpActionAsync(callback); -} - -/********************************************************** - * - * - * Unpause a live recording. - *********************************************************/ -private void buildUnpause(String recordingName) { -reset(); -url = "/recordings/live/" + recordingName + "/pause"; -method = "DELETE"; -lE.add( HttpResponse.build( 404, "Recording not found") ); -lE.add( HttpResponse.build( 409, "Recording not in session") ); -} - -@Override -public void unpause(String recordingName) throws RestException { -buildUnpause(recordingName); -String json = httpActionSync(); -} - -@Override -public void unpause(String recordingName, AriCallback callback) { -buildUnpause(recordingName); -httpActionAsync(callback); -} - -/********************************************************** - * - * - * Stop a live recording and store it. - *********************************************************/ -private void buildStop(String recordingName) { -reset(); -url = "/recordings/live/" + recordingName + "/stop"; -method = "POST"; -lE.add( HttpResponse.build( 404, "Recording not found") ); -} - -@Override -public void stop(String recordingName) throws RestException { -buildStop(recordingName); -String json = httpActionSync(); -} - -@Override -public void stop(String recordingName, AriCallback callback) { -buildStop(recordingName); -httpActionAsync(callback); -} - -/********************************************************** - * Recordings - * - * List recordings that are complete. - *********************************************************/ -private void buildListStored() { -reset(); -url = "/recordings/stored"; -method = "GET"; -} - -@Override -public List listStored() throws RestException { -buildListStored(); -String json = httpActionSync(); -return deserializeJsonAsAbstractList( json, - new TypeReference>() {} ); -} - -@Override -public void listStored(AriCallback> callback) { -buildListStored(); -httpActionAsync(callback, new TypeReference>() {}); -} - -/********************************************************** - * Individual recording - * - * Get a stored recording's details. - *********************************************************/ -private void buildGetStored(String recordingName) { -reset(); -url = "/recordings/stored/" + recordingName + ""; -method = "GET"; -lE.add( HttpResponse.build( 404, "Recording not found") ); -} - -@Override -public StoredRecording getStored(String recordingName) throws RestException { -buildGetStored(recordingName); -String json = httpActionSync(); -return deserializeJson( json, StoredRecording_impl_ari_1_7_0.class ); -} - -@Override -public void getStored(String recordingName, AriCallback callback) { -buildGetStored(recordingName); -httpActionAsync(callback, StoredRecording_impl_ari_1_7_0.class); -} - -/********************************************************** - * Individual recording - * - * Delete a stored recording. - *********************************************************/ -private void buildDeleteStored(String recordingName) { -reset(); -url = "/recordings/stored/" + recordingName + ""; -method = "DELETE"; -lE.add( HttpResponse.build( 404, "Recording not found") ); -} - -@Override -public void deleteStored(String recordingName) throws RestException { -buildDeleteStored(recordingName); -String json = httpActionSync(); -} - -@Override -public void deleteStored(String recordingName, AriCallback callback) { -buildDeleteStored(recordingName); -httpActionAsync(callback); -} - -/********************************************************** - * Copy an individual recording - * - * Copy a stored recording. - *********************************************************/ -private void buildCopyStored(String recordingName, String destinationRecordingName) { -reset(); -url = "/recordings/stored/" + recordingName + "/copy"; -method = "POST"; -lParamQuery.add( HttpParam.build( "destinationRecordingName", destinationRecordingName) ); -lE.add( HttpResponse.build( 404, "Recording not found") ); -lE.add( HttpResponse.build( 409, "A recording with the same name already exists on the system") ); -} - -@Override -public StoredRecording copyStored(String recordingName, String destinationRecordingName) throws RestException { -buildCopyStored(recordingName, destinationRecordingName); -String json = httpActionSync(); -return deserializeJson( json, StoredRecording_impl_ari_1_7_0.class ); -} - -@Override -public void copyStored(String recordingName, String destinationRecordingName, AriCallback callback) { -buildCopyStored(recordingName, destinationRecordingName); -httpActionAsync(callback, StoredRecording_impl_ari_1_7_0.class); -} - -/********************************************************** - * - * - * @since ari_1_10_0 - *********************************************************/ -public void getStoredFile(String recordingName, AriCallback callback){ - throw new UnsupportedOperationException("Method availble from ..."); -}; - -/********************************************************** - * Get the file associated with the stored recording. - * - * - * @since ari_1_10_0 - *********************************************************/ -public byte[] getStoredFile(String recordingName) throws RestException{ - throw new UnsupportedOperationException("Method availble from ..."); -}; - -}; - diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_7_0/actions/ActionSounds_impl_ari_1_7_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_7_0/actions/ActionSounds_impl_ari_1_7_0.java deleted file mode 100644 index 3c0973d7..00000000 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_7_0/actions/ActionSounds_impl_ari_1_7_0.java +++ /dev/null @@ -1,82 +0,0 @@ -package ch.loway.oss.ari4java.generated.ari_1_7_0.actions; - -// ---------------------------------------------------- -// THIS CLASS WAS GENERATED AUTOMATICALLY -// PLEASE DO NOT EDIT -// Generated on: Tue Dec 19 09:55:49 CET 2017 -// ---------------------------------------------------- - -import ch.loway.oss.ari4java.generated.*; -import java.util.Date; -import java.util.List; -import java.util.Map; -import java.util.ArrayList; -import ch.loway.oss.ari4java.tools.BaseAriAction; -import ch.loway.oss.ari4java.tools.RestException; -import ch.loway.oss.ari4java.tools.AriCallback; -import ch.loway.oss.ari4java.tools.HttpParam; -import ch.loway.oss.ari4java.tools.HttpResponse; -import com.fasterxml.jackson.core.type.TypeReference; -import ch.loway.oss.ari4java.generated.ari_1_7_0.models.*; - -/********************************************************** - * - * Generated by: Apis - *********************************************************/ - - -public class ActionSounds_impl_ari_1_7_0 extends BaseAriAction implements ActionSounds { -/********************************************************** - * Sounds - * - * List all sounds. - *********************************************************/ -private void buildList(String lang, String format) { -reset(); -url = "/sounds"; -method = "GET"; -lParamQuery.add( HttpParam.build( "lang", lang) ); -lParamQuery.add( HttpParam.build( "format", format) ); -} - -@Override -public List list(String lang, String format) throws RestException { -buildList(lang, format); -String json = httpActionSync(); -return deserializeJsonAsAbstractList( json, - new TypeReference>() {} ); -} - -@Override -public void list(String lang, String format, AriCallback> callback) { -buildList(lang, format); -httpActionAsync(callback, new TypeReference>() {}); -} - -/********************************************************** - * Individual sound - * - * Get a sound's details. - *********************************************************/ -private void buildGet(String soundId) { -reset(); -url = "/sounds/" + soundId + ""; -method = "GET"; -} - -@Override -public Sound get(String soundId) throws RestException { -buildGet(soundId); -String json = httpActionSync(); -return deserializeJson( json, Sound_impl_ari_1_7_0.class ); -} - -@Override -public void get(String soundId, AriCallback callback) { -buildGet(soundId); -httpActionAsync(callback, Sound_impl_ari_1_7_0.class); -} - -/** No missing signatures from interface */ -}; - diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_7_0/models/ApplicationReplaced_impl_ari_1_7_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_7_0/models/ApplicationReplaced_impl_ari_1_7_0.java deleted file mode 100644 index 22ebff55..00000000 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_7_0/models/ApplicationReplaced_impl_ari_1_7_0.java +++ /dev/null @@ -1,28 +0,0 @@ -package ch.loway.oss.ari4java.generated.ari_1_7_0.models; - -// ---------------------------------------------------- -// THIS CLASS WAS GENERATED AUTOMATICALLY -// PLEASE DO NOT EDIT -// Generated on: Tue Dec 19 09:55:49 CET 2017 -// ---------------------------------------------------- - -import ch.loway.oss.ari4java.generated.*; -import com.fasterxml.jackson.databind.annotation.JsonDeserialize; -import java.util.Date; -import java.util.List; -import java.util.Map; - -/********************************************************** - * Notification that another WebSocket has taken over for an application. - * - * An application may only be subscribed to by a single WebSocket at a time. If multiple WebSockets attempt to subscribe to the same application, the newer WebSocket wins, and the older one receives this event. - * - * Defined in file: events.json - * Generated by: Model - *********************************************************/ - -public class ApplicationReplaced_impl_ari_1_7_0 extends Event_impl_ari_1_7_0 implements ApplicationReplaced, java.io.Serializable { -private static final long serialVersionUID = 1L; -/** No missing signatures from interface */ -} - diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_7_0/models/Application_impl_ari_1_7_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_7_0/models/Application_impl_ari_1_7_0.java deleted file mode 100644 index df2868f0..00000000 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_7_0/models/Application_impl_ari_1_7_0.java +++ /dev/null @@ -1,81 +0,0 @@ -package ch.loway.oss.ari4java.generated.ari_1_7_0.models; - -// ---------------------------------------------------- -// THIS CLASS WAS GENERATED AUTOMATICALLY -// PLEASE DO NOT EDIT -// Generated on: Tue Dec 19 09:55:49 CET 2017 -// ---------------------------------------------------- - -import ch.loway.oss.ari4java.generated.*; -import com.fasterxml.jackson.databind.annotation.JsonDeserialize; -import java.util.Date; -import java.util.List; -import java.util.Map; - -/********************************************************** - * Details of a Stasis application - * - * Defined in file: applications.json - * Generated by: Model - *********************************************************/ - -public class Application_impl_ari_1_7_0 implements Application, java.io.Serializable { -private static final long serialVersionUID = 1L; - /** Id's for bridges subscribed to. */ - private List bridge_ids; - public List getBridge_ids() { - return bridge_ids; - } - - @JsonDeserialize( contentAs=String.class ) - public void setBridge_ids(List val ) { - bridge_ids = val; - } - - /** Id's for channels subscribed to. */ - private List channel_ids; - public List getChannel_ids() { - return channel_ids; - } - - @JsonDeserialize( contentAs=String.class ) - public void setChannel_ids(List val ) { - channel_ids = val; - } - - /** Names of the devices subscribed to. */ - private List device_names; - public List getDevice_names() { - return device_names; - } - - @JsonDeserialize( contentAs=String.class ) - public void setDevice_names(List val ) { - device_names = val; - } - - /** {tech}/{resource} for endpoints subscribed to. */ - private List endpoint_ids; - public List getEndpoint_ids() { - return endpoint_ids; - } - - @JsonDeserialize( contentAs=String.class ) - public void setEndpoint_ids(List val ) { - endpoint_ids = val; - } - - /** Name of this application */ - private String name; - public String getName() { - return name; - } - - @JsonDeserialize( as=String.class ) - public void setName(String val ) { - name = val; - } - -/** No missing signatures from interface */ -} - diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_7_0/models/AsteriskInfo_impl_ari_1_7_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_7_0/models/AsteriskInfo_impl_ari_1_7_0.java deleted file mode 100644 index b9091d7a..00000000 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_7_0/models/AsteriskInfo_impl_ari_1_7_0.java +++ /dev/null @@ -1,70 +0,0 @@ -package ch.loway.oss.ari4java.generated.ari_1_7_0.models; - -// ---------------------------------------------------- -// THIS CLASS WAS GENERATED AUTOMATICALLY -// PLEASE DO NOT EDIT -// Generated on: Tue Dec 19 09:55:49 CET 2017 -// ---------------------------------------------------- - -import ch.loway.oss.ari4java.generated.*; -import com.fasterxml.jackson.databind.annotation.JsonDeserialize; -import java.util.Date; -import java.util.List; -import java.util.Map; - -/********************************************************** - * Asterisk system information - * - * Defined in file: asterisk.json - * Generated by: Model - *********************************************************/ - -public class AsteriskInfo_impl_ari_1_7_0 implements AsteriskInfo, java.io.Serializable { -private static final long serialVersionUID = 1L; - /** Info about how Asterisk was built */ - private BuildInfo build; - public BuildInfo getBuild() { - return build; - } - - @JsonDeserialize( as=BuildInfo_impl_ari_1_7_0.class ) - public void setBuild(BuildInfo val ) { - build = val; - } - - /** Info about Asterisk configuration */ - private ConfigInfo config; - public ConfigInfo getConfig() { - return config; - } - - @JsonDeserialize( as=ConfigInfo_impl_ari_1_7_0.class ) - public void setConfig(ConfigInfo val ) { - config = val; - } - - /** Info about Asterisk status */ - private StatusInfo status; - public StatusInfo getStatus() { - return status; - } - - @JsonDeserialize( as=StatusInfo_impl_ari_1_7_0.class ) - public void setStatus(StatusInfo val ) { - status = val; - } - - /** Info about the system running Asterisk */ - private SystemInfo system; - public SystemInfo getSystem() { - return system; - } - - @JsonDeserialize( as=SystemInfo_impl_ari_1_7_0.class ) - public void setSystem(SystemInfo val ) { - system = val; - } - -/** No missing signatures from interface */ -} - diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_7_0/models/BridgeAttendedTransfer_impl_ari_1_7_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_7_0/models/BridgeAttendedTransfer_impl_ari_1_7_0.java deleted file mode 100644 index c9cb962f..00000000 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_7_0/models/BridgeAttendedTransfer_impl_ari_1_7_0.java +++ /dev/null @@ -1,202 +0,0 @@ -package ch.loway.oss.ari4java.generated.ari_1_7_0.models; - -// ---------------------------------------------------- -// THIS CLASS WAS GENERATED AUTOMATICALLY -// PLEASE DO NOT EDIT -// Generated on: Tue Dec 19 09:55:49 CET 2017 -// ---------------------------------------------------- - -import ch.loway.oss.ari4java.generated.*; -import com.fasterxml.jackson.databind.annotation.JsonDeserialize; -import java.util.Date; -import java.util.List; -import java.util.Map; - -/********************************************************** - * Notification that an attended transfer has occurred. - * - * Defined in file: events.json - * Generated by: Model - *********************************************************/ - -public class BridgeAttendedTransfer_impl_ari_1_7_0 extends Event_impl_ari_1_7_0 implements BridgeAttendedTransfer, java.io.Serializable { -private static final long serialVersionUID = 1L; - /** Application that has been transferred into */ - private String destination_application; - public String getDestination_application() { - return destination_application; - } - - @JsonDeserialize( as=String.class ) - public void setDestination_application(String val ) { - destination_application = val; - } - - /** Bridge that survived the merge result */ - private String destination_bridge; - public String getDestination_bridge() { - return destination_bridge; - } - - @JsonDeserialize( as=String.class ) - public void setDestination_bridge(String val ) { - destination_bridge = val; - } - - /** First leg of a link transfer result */ - private Channel destination_link_first_leg; - public Channel getDestination_link_first_leg() { - return destination_link_first_leg; - } - - @JsonDeserialize( as=Channel_impl_ari_1_7_0.class ) - public void setDestination_link_first_leg(Channel val ) { - destination_link_first_leg = val; - } - - /** Second leg of a link transfer result */ - private Channel destination_link_second_leg; - public Channel getDestination_link_second_leg() { - return destination_link_second_leg; - } - - @JsonDeserialize( as=Channel_impl_ari_1_7_0.class ) - public void setDestination_link_second_leg(Channel val ) { - destination_link_second_leg = val; - } - - /** Bridge that survived the threeway result */ - private Bridge destination_threeway_bridge; - public Bridge getDestination_threeway_bridge() { - return destination_threeway_bridge; - } - - @JsonDeserialize( as=Bridge_impl_ari_1_7_0.class ) - public void setDestination_threeway_bridge(Bridge val ) { - destination_threeway_bridge = val; - } - - /** Transferer channel that survived the threeway result */ - private Channel destination_threeway_channel; - public Channel getDestination_threeway_channel() { - return destination_threeway_channel; - } - - @JsonDeserialize( as=Channel_impl_ari_1_7_0.class ) - public void setDestination_threeway_channel(Channel val ) { - destination_threeway_channel = val; - } - - /** How the transfer was accomplished */ - private String destination_type; - public String getDestination_type() { - return destination_type; - } - - @JsonDeserialize( as=String.class ) - public void setDestination_type(String val ) { - destination_type = val; - } - - /** Whether the transfer was externally initiated or not */ - private boolean is_external; - public boolean getIs_external() { - return is_external; - } - - @JsonDeserialize( as=boolean.class ) - public void setIs_external(boolean val ) { - is_external = val; - } - - /** The channel that is replacing transferer_first_leg in the swap */ - private Channel replace_channel; - public Channel getReplace_channel() { - return replace_channel; - } - - @JsonDeserialize( as=Channel_impl_ari_1_7_0.class ) - public void setReplace_channel(Channel val ) { - replace_channel = val; - } - - /** The result of the transfer attempt */ - private String result; - public String getResult() { - return result; - } - - @JsonDeserialize( as=String.class ) - public void setResult(String val ) { - result = val; - } - - /** The channel that is being transferred to */ - private Channel transfer_target; - public Channel getTransfer_target() { - return transfer_target; - } - - @JsonDeserialize( as=Channel_impl_ari_1_7_0.class ) - public void setTransfer_target(Channel val ) { - transfer_target = val; - } - - /** The channel that is being transferred */ - private Channel transferee; - public Channel getTransferee() { - return transferee; - } - - @JsonDeserialize( as=Channel_impl_ari_1_7_0.class ) - public void setTransferee(Channel val ) { - transferee = val; - } - - /** First leg of the transferer */ - private Channel transferer_first_leg; - public Channel getTransferer_first_leg() { - return transferer_first_leg; - } - - @JsonDeserialize( as=Channel_impl_ari_1_7_0.class ) - public void setTransferer_first_leg(Channel val ) { - transferer_first_leg = val; - } - - /** Bridge the transferer first leg is in */ - private Bridge transferer_first_leg_bridge; - public Bridge getTransferer_first_leg_bridge() { - return transferer_first_leg_bridge; - } - - @JsonDeserialize( as=Bridge_impl_ari_1_7_0.class ) - public void setTransferer_first_leg_bridge(Bridge val ) { - transferer_first_leg_bridge = val; - } - - /** Second leg of the transferer */ - private Channel transferer_second_leg; - public Channel getTransferer_second_leg() { - return transferer_second_leg; - } - - @JsonDeserialize( as=Channel_impl_ari_1_7_0.class ) - public void setTransferer_second_leg(Channel val ) { - transferer_second_leg = val; - } - - /** Bridge the transferer second leg is in */ - private Bridge transferer_second_leg_bridge; - public Bridge getTransferer_second_leg_bridge() { - return transferer_second_leg_bridge; - } - - @JsonDeserialize( as=Bridge_impl_ari_1_7_0.class ) - public void setTransferer_second_leg_bridge(Bridge val ) { - transferer_second_leg_bridge = val; - } - -/** No missing signatures from interface */ -} - diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_7_0/models/BridgeBlindTransfer_impl_ari_1_7_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_7_0/models/BridgeBlindTransfer_impl_ari_1_7_0.java deleted file mode 100644 index ce368ed4..00000000 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_7_0/models/BridgeBlindTransfer_impl_ari_1_7_0.java +++ /dev/null @@ -1,114 +0,0 @@ -package ch.loway.oss.ari4java.generated.ari_1_7_0.models; - -// ---------------------------------------------------- -// THIS CLASS WAS GENERATED AUTOMATICALLY -// PLEASE DO NOT EDIT -// Generated on: Tue Dec 19 09:55:49 CET 2017 -// ---------------------------------------------------- - -import ch.loway.oss.ari4java.generated.*; -import com.fasterxml.jackson.databind.annotation.JsonDeserialize; -import java.util.Date; -import java.util.List; -import java.util.Map; - -/********************************************************** - * Notification that a blind transfer has occurred. - * - * Defined in file: events.json - * Generated by: Model - *********************************************************/ - -public class BridgeBlindTransfer_impl_ari_1_7_0 extends Event_impl_ari_1_7_0 implements BridgeBlindTransfer, java.io.Serializable { -private static final long serialVersionUID = 1L; - /** The bridge being transferred */ - private Bridge bridge; - public Bridge getBridge() { - return bridge; - } - - @JsonDeserialize( as=Bridge_impl_ari_1_7_0.class ) - public void setBridge(Bridge val ) { - bridge = val; - } - - /** The channel performing the blind transfer */ - private Channel channel; - public Channel getChannel() { - return channel; - } - - @JsonDeserialize( as=Channel_impl_ari_1_7_0.class ) - public void setChannel(Channel val ) { - channel = val; - } - - /** The context transferred to */ - private String context; - public String getContext() { - return context; - } - - @JsonDeserialize( as=String.class ) - public void setContext(String val ) { - context = val; - } - - /** The extension transferred to */ - private String exten; - public String getExten() { - return exten; - } - - @JsonDeserialize( as=String.class ) - public void setExten(String val ) { - exten = val; - } - - /** Whether the transfer was externally initiated or not */ - private boolean is_external; - public boolean getIs_external() { - return is_external; - } - - @JsonDeserialize( as=boolean.class ) - public void setIs_external(boolean val ) { - is_external = val; - } - - /** The channel that is replacing transferer when the transferee(s) can not be transferred directly */ - private Channel replace_channel; - public Channel getReplace_channel() { - return replace_channel; - } - - @JsonDeserialize( as=Channel_impl_ari_1_7_0.class ) - public void setReplace_channel(Channel val ) { - replace_channel = val; - } - - /** The result of the transfer attempt */ - private String result; - public String getResult() { - return result; - } - - @JsonDeserialize( as=String.class ) - public void setResult(String val ) { - result = val; - } - - /** The channel that is being transferred */ - private Channel transferee; - public Channel getTransferee() { - return transferee; - } - - @JsonDeserialize( as=Channel_impl_ari_1_7_0.class ) - public void setTransferee(Channel val ) { - transferee = val; - } - -/** No missing signatures from interface */ -} - diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_7_0/models/BridgeCreated_impl_ari_1_7_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_7_0/models/BridgeCreated_impl_ari_1_7_0.java deleted file mode 100644 index 30a071fa..00000000 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_7_0/models/BridgeCreated_impl_ari_1_7_0.java +++ /dev/null @@ -1,37 +0,0 @@ -package ch.loway.oss.ari4java.generated.ari_1_7_0.models; - -// ---------------------------------------------------- -// THIS CLASS WAS GENERATED AUTOMATICALLY -// PLEASE DO NOT EDIT -// Generated on: Tue Dec 19 09:55:49 CET 2017 -// ---------------------------------------------------- - -import ch.loway.oss.ari4java.generated.*; -import com.fasterxml.jackson.databind.annotation.JsonDeserialize; -import java.util.Date; -import java.util.List; -import java.util.Map; - -/********************************************************** - * Notification that a bridge has been created. - * - * Defined in file: events.json - * Generated by: Model - *********************************************************/ - -public class BridgeCreated_impl_ari_1_7_0 extends Event_impl_ari_1_7_0 implements BridgeCreated, java.io.Serializable { -private static final long serialVersionUID = 1L; - /** */ - private Bridge bridge; - public Bridge getBridge() { - return bridge; - } - - @JsonDeserialize( as=Bridge_impl_ari_1_7_0.class ) - public void setBridge(Bridge val ) { - bridge = val; - } - -/** No missing signatures from interface */ -} - diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_7_0/models/BridgeDestroyed_impl_ari_1_7_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_7_0/models/BridgeDestroyed_impl_ari_1_7_0.java deleted file mode 100644 index 04ed08bf..00000000 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_7_0/models/BridgeDestroyed_impl_ari_1_7_0.java +++ /dev/null @@ -1,37 +0,0 @@ -package ch.loway.oss.ari4java.generated.ari_1_7_0.models; - -// ---------------------------------------------------- -// THIS CLASS WAS GENERATED AUTOMATICALLY -// PLEASE DO NOT EDIT -// Generated on: Tue Dec 19 09:55:49 CET 2017 -// ---------------------------------------------------- - -import ch.loway.oss.ari4java.generated.*; -import com.fasterxml.jackson.databind.annotation.JsonDeserialize; -import java.util.Date; -import java.util.List; -import java.util.Map; - -/********************************************************** - * Notification that a bridge has been destroyed. - * - * Defined in file: events.json - * Generated by: Model - *********************************************************/ - -public class BridgeDestroyed_impl_ari_1_7_0 extends Event_impl_ari_1_7_0 implements BridgeDestroyed, java.io.Serializable { -private static final long serialVersionUID = 1L; - /** */ - private Bridge bridge; - public Bridge getBridge() { - return bridge; - } - - @JsonDeserialize( as=Bridge_impl_ari_1_7_0.class ) - public void setBridge(Bridge val ) { - bridge = val; - } - -/** No missing signatures from interface */ -} - diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_7_0/models/BridgeMerged_impl_ari_1_7_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_7_0/models/BridgeMerged_impl_ari_1_7_0.java deleted file mode 100644 index ab2596d5..00000000 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_7_0/models/BridgeMerged_impl_ari_1_7_0.java +++ /dev/null @@ -1,48 +0,0 @@ -package ch.loway.oss.ari4java.generated.ari_1_7_0.models; - -// ---------------------------------------------------- -// THIS CLASS WAS GENERATED AUTOMATICALLY -// PLEASE DO NOT EDIT -// Generated on: Tue Dec 19 09:55:49 CET 2017 -// ---------------------------------------------------- - -import ch.loway.oss.ari4java.generated.*; -import com.fasterxml.jackson.databind.annotation.JsonDeserialize; -import java.util.Date; -import java.util.List; -import java.util.Map; - -/********************************************************** - * Notification that one bridge has merged into another. - * - * Defined in file: events.json - * Generated by: Model - *********************************************************/ - -public class BridgeMerged_impl_ari_1_7_0 extends Event_impl_ari_1_7_0 implements BridgeMerged, java.io.Serializable { -private static final long serialVersionUID = 1L; - /** */ - private Bridge bridge; - public Bridge getBridge() { - return bridge; - } - - @JsonDeserialize( as=Bridge_impl_ari_1_7_0.class ) - public void setBridge(Bridge val ) { - bridge = val; - } - - /** */ - private Bridge bridge_from; - public Bridge getBridge_from() { - return bridge_from; - } - - @JsonDeserialize( as=Bridge_impl_ari_1_7_0.class ) - public void setBridge_from(Bridge val ) { - bridge_from = val; - } - -/** No missing signatures from interface */ -} - diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_7_0/models/Bridge_impl_ari_1_7_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_7_0/models/Bridge_impl_ari_1_7_0.java deleted file mode 100644 index 6f1bbf5e..00000000 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_7_0/models/Bridge_impl_ari_1_7_0.java +++ /dev/null @@ -1,140 +0,0 @@ -package ch.loway.oss.ari4java.generated.ari_1_7_0.models; - -// ---------------------------------------------------- -// THIS CLASS WAS GENERATED AUTOMATICALLY -// PLEASE DO NOT EDIT -// Generated on: Tue Dec 19 09:55:49 CET 2017 -// ---------------------------------------------------- - -import ch.loway.oss.ari4java.generated.*; -import com.fasterxml.jackson.databind.annotation.JsonDeserialize; -import java.util.Date; -import java.util.List; -import java.util.Map; - -/********************************************************** - * The merging of media from one or more channels. - * - * Everyone on the bridge receives the same audio. - * - * Defined in file: bridges.json - * Generated by: Model - *********************************************************/ - -public class Bridge_impl_ari_1_7_0 implements Bridge, java.io.Serializable { -private static final long serialVersionUID = 1L; - /** Bridging class */ - private String bridge_class; - public String getBridge_class() { - return bridge_class; - } - - @JsonDeserialize( as=String.class ) - public void setBridge_class(String val ) { - bridge_class = val; - } - - /** Type of bridge technology */ - private String bridge_type; - public String getBridge_type() { - return bridge_type; - } - - @JsonDeserialize( as=String.class ) - public void setBridge_type(String val ) { - bridge_type = val; - } - - /** Ids of channels participating in this bridge */ - private List channels; - public List getChannels() { - return channels; - } - - @JsonDeserialize( contentAs=String.class ) - public void setChannels(List val ) { - channels = val; - } - - /** Entity that created the bridge */ - private String creator; - public String getCreator() { - return creator; - } - - @JsonDeserialize( as=String.class ) - public void setCreator(String val ) { - creator = val; - } - - /** Unique identifier for this bridge */ - private String id; - public String getId() { - return id; - } - - @JsonDeserialize( as=String.class ) - public void setId(String val ) { - id = val; - } - - /** Name the creator gave the bridge */ - private String name; - public String getName() { - return name; - } - - @JsonDeserialize( as=String.class ) - public void setName(String val ) { - name = val; - } - - /** Name of the current bridging technology */ - private String technology; - public String getTechnology() { - return technology; - } - - @JsonDeserialize( as=String.class ) - public void setTechnology(String val ) { - technology = val; - } - -/********************************************************** - * The video mode the bridge is using. One of 'none', 'talker', or 'single'. - * - * @since ari_2_0_0 - *********************************************************/ - public String getVideo_mode(){ - throw new UnsupportedOperationException("Method availble from ..."); -}; - -/********************************************************** - * The ID of the channel that is the source of video in this bridge, if one exists. - * - * @since ari_2_0_0 - *********************************************************/ - public String getVideo_source_id(){ - throw new UnsupportedOperationException("Method availble from ..."); -}; - -/********************************************************** - * The video mode the bridge is using. One of 'none', 'talker', or 'single'. - * - * @since ari_2_0_0 - *********************************************************/ - public void setVideo_mode(String val ){ - throw new UnsupportedOperationException("Method availble from ..."); -}; - -/********************************************************** - * The ID of the channel that is the source of video in this bridge, if one exists. - * - * @since ari_2_0_0 - *********************************************************/ - public void setVideo_source_id(String val ){ - throw new UnsupportedOperationException("Method availble from ..."); -}; - -} - diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_7_0/models/BuildInfo_impl_ari_1_7_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_7_0/models/BuildInfo_impl_ari_1_7_0.java deleted file mode 100644 index 0847ca27..00000000 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_7_0/models/BuildInfo_impl_ari_1_7_0.java +++ /dev/null @@ -1,92 +0,0 @@ -package ch.loway.oss.ari4java.generated.ari_1_7_0.models; - -// ---------------------------------------------------- -// THIS CLASS WAS GENERATED AUTOMATICALLY -// PLEASE DO NOT EDIT -// Generated on: Tue Dec 19 09:55:49 CET 2017 -// ---------------------------------------------------- - -import ch.loway.oss.ari4java.generated.*; -import com.fasterxml.jackson.databind.annotation.JsonDeserialize; -import java.util.Date; -import java.util.List; -import java.util.Map; - -/********************************************************** - * Info about how Asterisk was built - * - * Defined in file: asterisk.json - * Generated by: Model - *********************************************************/ - -public class BuildInfo_impl_ari_1_7_0 implements BuildInfo, java.io.Serializable { -private static final long serialVersionUID = 1L; - /** Date and time when Asterisk was built. */ - private String date; - public String getDate() { - return date; - } - - @JsonDeserialize( as=String.class ) - public void setDate(String val ) { - date = val; - } - - /** Kernel version Asterisk was built on. */ - private String kernel; - public String getKernel() { - return kernel; - } - - @JsonDeserialize( as=String.class ) - public void setKernel(String val ) { - kernel = val; - } - - /** Machine architecture (x86_64, i686, ppc, etc.) */ - private String machine; - public String getMachine() { - return machine; - } - - @JsonDeserialize( as=String.class ) - public void setMachine(String val ) { - machine = val; - } - - /** Compile time options, or empty string if default. */ - private String options; - public String getOptions() { - return options; - } - - @JsonDeserialize( as=String.class ) - public void setOptions(String val ) { - options = val; - } - - /** OS Asterisk was built on. */ - private String os; - public String getOs() { - return os; - } - - @JsonDeserialize( as=String.class ) - public void setOs(String val ) { - os = val; - } - - /** Username that build Asterisk */ - private String user; - public String getUser() { - return user; - } - - @JsonDeserialize( as=String.class ) - public void setUser(String val ) { - user = val; - } - -/** No missing signatures from interface */ -} - diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_7_0/models/CallerID_impl_ari_1_7_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_7_0/models/CallerID_impl_ari_1_7_0.java deleted file mode 100644 index e591bddb..00000000 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_7_0/models/CallerID_impl_ari_1_7_0.java +++ /dev/null @@ -1,48 +0,0 @@ -package ch.loway.oss.ari4java.generated.ari_1_7_0.models; - -// ---------------------------------------------------- -// THIS CLASS WAS GENERATED AUTOMATICALLY -// PLEASE DO NOT EDIT -// Generated on: Tue Dec 19 09:55:49 CET 2017 -// ---------------------------------------------------- - -import ch.loway.oss.ari4java.generated.*; -import com.fasterxml.jackson.databind.annotation.JsonDeserialize; -import java.util.Date; -import java.util.List; -import java.util.Map; - -/********************************************************** - * Caller identification - * - * Defined in file: channels.json - * Generated by: Model - *********************************************************/ - -public class CallerID_impl_ari_1_7_0 implements CallerID, java.io.Serializable { -private static final long serialVersionUID = 1L; - /** */ - private String name; - public String getName() { - return name; - } - - @JsonDeserialize( as=String.class ) - public void setName(String val ) { - name = val; - } - - /** */ - private String number; - public String getNumber() { - return number; - } - - @JsonDeserialize( as=String.class ) - public void setNumber(String val ) { - number = val; - } - -/** No missing signatures from interface */ -} - diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_7_0/models/ChannelCallerId_impl_ari_1_7_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_7_0/models/ChannelCallerId_impl_ari_1_7_0.java deleted file mode 100644 index 6529cd4b..00000000 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_7_0/models/ChannelCallerId_impl_ari_1_7_0.java +++ /dev/null @@ -1,59 +0,0 @@ -package ch.loway.oss.ari4java.generated.ari_1_7_0.models; - -// ---------------------------------------------------- -// THIS CLASS WAS GENERATED AUTOMATICALLY -// PLEASE DO NOT EDIT -// Generated on: Tue Dec 19 09:55:49 CET 2017 -// ---------------------------------------------------- - -import ch.loway.oss.ari4java.generated.*; -import com.fasterxml.jackson.databind.annotation.JsonDeserialize; -import java.util.Date; -import java.util.List; -import java.util.Map; - -/********************************************************** - * Channel changed Caller ID. - * - * Defined in file: events.json - * Generated by: Model - *********************************************************/ - -public class ChannelCallerId_impl_ari_1_7_0 extends Event_impl_ari_1_7_0 implements ChannelCallerId, java.io.Serializable { -private static final long serialVersionUID = 1L; - /** The integer representation of the Caller Presentation value. */ - private int caller_presentation; - public int getCaller_presentation() { - return caller_presentation; - } - - @JsonDeserialize( as=int.class ) - public void setCaller_presentation(int val ) { - caller_presentation = val; - } - - /** The text representation of the Caller Presentation value. */ - private String caller_presentation_txt; - public String getCaller_presentation_txt() { - return caller_presentation_txt; - } - - @JsonDeserialize( as=String.class ) - public void setCaller_presentation_txt(String val ) { - caller_presentation_txt = val; - } - - /** The channel that changed Caller ID. */ - private Channel channel; - public Channel getChannel() { - return channel; - } - - @JsonDeserialize( as=Channel_impl_ari_1_7_0.class ) - public void setChannel(Channel val ) { - channel = val; - } - -/** No missing signatures from interface */ -} - diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_7_0/models/ChannelConnectedLine_impl_ari_1_7_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_7_0/models/ChannelConnectedLine_impl_ari_1_7_0.java deleted file mode 100644 index fe68a34d..00000000 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_7_0/models/ChannelConnectedLine_impl_ari_1_7_0.java +++ /dev/null @@ -1,37 +0,0 @@ -package ch.loway.oss.ari4java.generated.ari_1_7_0.models; - -// ---------------------------------------------------- -// THIS CLASS WAS GENERATED AUTOMATICALLY -// PLEASE DO NOT EDIT -// Generated on: Tue Dec 19 09:55:49 CET 2017 -// ---------------------------------------------------- - -import ch.loway.oss.ari4java.generated.*; -import com.fasterxml.jackson.databind.annotation.JsonDeserialize; -import java.util.Date; -import java.util.List; -import java.util.Map; - -/********************************************************** - * Channel changed Connected Line. - * - * Defined in file: events.json - * Generated by: Model - *********************************************************/ - -public class ChannelConnectedLine_impl_ari_1_7_0 extends Event_impl_ari_1_7_0 implements ChannelConnectedLine, java.io.Serializable { -private static final long serialVersionUID = 1L; - /** The channel whose connected line has changed. */ - private Channel channel; - public Channel getChannel() { - return channel; - } - - @JsonDeserialize( as=Channel_impl_ari_1_7_0.class ) - public void setChannel(Channel val ) { - channel = val; - } - -/** No missing signatures from interface */ -} - diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_7_0/models/ChannelCreated_impl_ari_1_7_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_7_0/models/ChannelCreated_impl_ari_1_7_0.java deleted file mode 100644 index d1fafaf1..00000000 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_7_0/models/ChannelCreated_impl_ari_1_7_0.java +++ /dev/null @@ -1,37 +0,0 @@ -package ch.loway.oss.ari4java.generated.ari_1_7_0.models; - -// ---------------------------------------------------- -// THIS CLASS WAS GENERATED AUTOMATICALLY -// PLEASE DO NOT EDIT -// Generated on: Tue Dec 19 09:55:49 CET 2017 -// ---------------------------------------------------- - -import ch.loway.oss.ari4java.generated.*; -import com.fasterxml.jackson.databind.annotation.JsonDeserialize; -import java.util.Date; -import java.util.List; -import java.util.Map; - -/********************************************************** - * Notification that a channel has been created. - * - * Defined in file: events.json - * Generated by: Model - *********************************************************/ - -public class ChannelCreated_impl_ari_1_7_0 extends Event_impl_ari_1_7_0 implements ChannelCreated, java.io.Serializable { -private static final long serialVersionUID = 1L; - /** */ - private Channel channel; - public Channel getChannel() { - return channel; - } - - @JsonDeserialize( as=Channel_impl_ari_1_7_0.class ) - public void setChannel(Channel val ) { - channel = val; - } - -/** No missing signatures from interface */ -} - diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_7_0/models/ChannelDestroyed_impl_ari_1_7_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_7_0/models/ChannelDestroyed_impl_ari_1_7_0.java deleted file mode 100644 index b742a001..00000000 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_7_0/models/ChannelDestroyed_impl_ari_1_7_0.java +++ /dev/null @@ -1,59 +0,0 @@ -package ch.loway.oss.ari4java.generated.ari_1_7_0.models; - -// ---------------------------------------------------- -// THIS CLASS WAS GENERATED AUTOMATICALLY -// PLEASE DO NOT EDIT -// Generated on: Tue Dec 19 09:55:49 CET 2017 -// ---------------------------------------------------- - -import ch.loway.oss.ari4java.generated.*; -import com.fasterxml.jackson.databind.annotation.JsonDeserialize; -import java.util.Date; -import java.util.List; -import java.util.Map; - -/********************************************************** - * Notification that a channel has been destroyed. - * - * Defined in file: events.json - * Generated by: Model - *********************************************************/ - -public class ChannelDestroyed_impl_ari_1_7_0 extends Event_impl_ari_1_7_0 implements ChannelDestroyed, java.io.Serializable { -private static final long serialVersionUID = 1L; - /** Integer representation of the cause of the hangup */ - private int cause; - public int getCause() { - return cause; - } - - @JsonDeserialize( as=int.class ) - public void setCause(int val ) { - cause = val; - } - - /** Text representation of the cause of the hangup */ - private String cause_txt; - public String getCause_txt() { - return cause_txt; - } - - @JsonDeserialize( as=String.class ) - public void setCause_txt(String val ) { - cause_txt = val; - } - - /** */ - private Channel channel; - public Channel getChannel() { - return channel; - } - - @JsonDeserialize( as=Channel_impl_ari_1_7_0.class ) - public void setChannel(Channel val ) { - channel = val; - } - -/** No missing signatures from interface */ -} - diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_7_0/models/ChannelDialplan_impl_ari_1_7_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_7_0/models/ChannelDialplan_impl_ari_1_7_0.java deleted file mode 100644 index 78fefd0c..00000000 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_7_0/models/ChannelDialplan_impl_ari_1_7_0.java +++ /dev/null @@ -1,59 +0,0 @@ -package ch.loway.oss.ari4java.generated.ari_1_7_0.models; - -// ---------------------------------------------------- -// THIS CLASS WAS GENERATED AUTOMATICALLY -// PLEASE DO NOT EDIT -// Generated on: Tue Dec 19 09:55:49 CET 2017 -// ---------------------------------------------------- - -import ch.loway.oss.ari4java.generated.*; -import com.fasterxml.jackson.databind.annotation.JsonDeserialize; -import java.util.Date; -import java.util.List; -import java.util.Map; - -/********************************************************** - * Channel changed location in the dialplan. - * - * Defined in file: events.json - * Generated by: Model - *********************************************************/ - -public class ChannelDialplan_impl_ari_1_7_0 extends Event_impl_ari_1_7_0 implements ChannelDialplan, java.io.Serializable { -private static final long serialVersionUID = 1L; - /** The channel that changed dialplan location. */ - private Channel channel; - public Channel getChannel() { - return channel; - } - - @JsonDeserialize( as=Channel_impl_ari_1_7_0.class ) - public void setChannel(Channel val ) { - channel = val; - } - - /** The application about to be executed. */ - private String dialplan_app; - public String getDialplan_app() { - return dialplan_app; - } - - @JsonDeserialize( as=String.class ) - public void setDialplan_app(String val ) { - dialplan_app = val; - } - - /** The data to be passed to the application. */ - private String dialplan_app_data; - public String getDialplan_app_data() { - return dialplan_app_data; - } - - @JsonDeserialize( as=String.class ) - public void setDialplan_app_data(String val ) { - dialplan_app_data = val; - } - -/** No missing signatures from interface */ -} - diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_7_0/models/ChannelDtmfReceived_impl_ari_1_7_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_7_0/models/ChannelDtmfReceived_impl_ari_1_7_0.java deleted file mode 100644 index d98c9e9c..00000000 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_7_0/models/ChannelDtmfReceived_impl_ari_1_7_0.java +++ /dev/null @@ -1,61 +0,0 @@ -package ch.loway.oss.ari4java.generated.ari_1_7_0.models; - -// ---------------------------------------------------- -// THIS CLASS WAS GENERATED AUTOMATICALLY -// PLEASE DO NOT EDIT -// Generated on: Tue Dec 19 09:55:49 CET 2017 -// ---------------------------------------------------- - -import ch.loway.oss.ari4java.generated.*; -import com.fasterxml.jackson.databind.annotation.JsonDeserialize; -import java.util.Date; -import java.util.List; -import java.util.Map; - -/********************************************************** - * DTMF received on a channel. - * - * This event is sent when the DTMF ends. There is no notification about the start of DTMF - * - * Defined in file: events.json - * Generated by: Model - *********************************************************/ - -public class ChannelDtmfReceived_impl_ari_1_7_0 extends Event_impl_ari_1_7_0 implements ChannelDtmfReceived, java.io.Serializable { -private static final long serialVersionUID = 1L; - /** The channel on which DTMF was received */ - private Channel channel; - public Channel getChannel() { - return channel; - } - - @JsonDeserialize( as=Channel_impl_ari_1_7_0.class ) - public void setChannel(Channel val ) { - channel = val; - } - - /** DTMF digit received (0-9, A-E, # or *) */ - private String digit; - public String getDigit() { - return digit; - } - - @JsonDeserialize( as=String.class ) - public void setDigit(String val ) { - digit = val; - } - - /** Number of milliseconds DTMF was received */ - private int duration_ms; - public int getDuration_ms() { - return duration_ms; - } - - @JsonDeserialize( as=int.class ) - public void setDuration_ms(int val ) { - duration_ms = val; - } - -/** No missing signatures from interface */ -} - diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_7_0/models/ChannelEnteredBridge_impl_ari_1_7_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_7_0/models/ChannelEnteredBridge_impl_ari_1_7_0.java deleted file mode 100644 index 3418bf72..00000000 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_7_0/models/ChannelEnteredBridge_impl_ari_1_7_0.java +++ /dev/null @@ -1,48 +0,0 @@ -package ch.loway.oss.ari4java.generated.ari_1_7_0.models; - -// ---------------------------------------------------- -// THIS CLASS WAS GENERATED AUTOMATICALLY -// PLEASE DO NOT EDIT -// Generated on: Tue Dec 19 09:55:49 CET 2017 -// ---------------------------------------------------- - -import ch.loway.oss.ari4java.generated.*; -import com.fasterxml.jackson.databind.annotation.JsonDeserialize; -import java.util.Date; -import java.util.List; -import java.util.Map; - -/********************************************************** - * Notification that a channel has entered a bridge. - * - * Defined in file: events.json - * Generated by: Model - *********************************************************/ - -public class ChannelEnteredBridge_impl_ari_1_7_0 extends Event_impl_ari_1_7_0 implements ChannelEnteredBridge, java.io.Serializable { -private static final long serialVersionUID = 1L; - /** */ - private Bridge bridge; - public Bridge getBridge() { - return bridge; - } - - @JsonDeserialize( as=Bridge_impl_ari_1_7_0.class ) - public void setBridge(Bridge val ) { - bridge = val; - } - - /** */ - private Channel channel; - public Channel getChannel() { - return channel; - } - - @JsonDeserialize( as=Channel_impl_ari_1_7_0.class ) - public void setChannel(Channel val ) { - channel = val; - } - -/** No missing signatures from interface */ -} - diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_7_0/models/ChannelHangupRequest_impl_ari_1_7_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_7_0/models/ChannelHangupRequest_impl_ari_1_7_0.java deleted file mode 100644 index e288b521..00000000 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_7_0/models/ChannelHangupRequest_impl_ari_1_7_0.java +++ /dev/null @@ -1,59 +0,0 @@ -package ch.loway.oss.ari4java.generated.ari_1_7_0.models; - -// ---------------------------------------------------- -// THIS CLASS WAS GENERATED AUTOMATICALLY -// PLEASE DO NOT EDIT -// Generated on: Tue Dec 19 09:55:49 CET 2017 -// ---------------------------------------------------- - -import ch.loway.oss.ari4java.generated.*; -import com.fasterxml.jackson.databind.annotation.JsonDeserialize; -import java.util.Date; -import java.util.List; -import java.util.Map; - -/********************************************************** - * A hangup was requested on the channel. - * - * Defined in file: events.json - * Generated by: Model - *********************************************************/ - -public class ChannelHangupRequest_impl_ari_1_7_0 extends Event_impl_ari_1_7_0 implements ChannelHangupRequest, java.io.Serializable { -private static final long serialVersionUID = 1L; - /** Integer representation of the cause of the hangup. */ - private int cause; - public int getCause() { - return cause; - } - - @JsonDeserialize( as=int.class ) - public void setCause(int val ) { - cause = val; - } - - /** The channel on which the hangup was requested. */ - private Channel channel; - public Channel getChannel() { - return channel; - } - - @JsonDeserialize( as=Channel_impl_ari_1_7_0.class ) - public void setChannel(Channel val ) { - channel = val; - } - - /** Whether the hangup request was a soft hangup request. */ - private boolean soft; - public boolean getSoft() { - return soft; - } - - @JsonDeserialize( as=boolean.class ) - public void setSoft(boolean val ) { - soft = val; - } - -/** No missing signatures from interface */ -} - diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_7_0/models/ChannelLeftBridge_impl_ari_1_7_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_7_0/models/ChannelLeftBridge_impl_ari_1_7_0.java deleted file mode 100644 index 26aaf272..00000000 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_7_0/models/ChannelLeftBridge_impl_ari_1_7_0.java +++ /dev/null @@ -1,48 +0,0 @@ -package ch.loway.oss.ari4java.generated.ari_1_7_0.models; - -// ---------------------------------------------------- -// THIS CLASS WAS GENERATED AUTOMATICALLY -// PLEASE DO NOT EDIT -// Generated on: Tue Dec 19 09:55:49 CET 2017 -// ---------------------------------------------------- - -import ch.loway.oss.ari4java.generated.*; -import com.fasterxml.jackson.databind.annotation.JsonDeserialize; -import java.util.Date; -import java.util.List; -import java.util.Map; - -/********************************************************** - * Notification that a channel has left a bridge. - * - * Defined in file: events.json - * Generated by: Model - *********************************************************/ - -public class ChannelLeftBridge_impl_ari_1_7_0 extends Event_impl_ari_1_7_0 implements ChannelLeftBridge, java.io.Serializable { -private static final long serialVersionUID = 1L; - /** */ - private Bridge bridge; - public Bridge getBridge() { - return bridge; - } - - @JsonDeserialize( as=Bridge_impl_ari_1_7_0.class ) - public void setBridge(Bridge val ) { - bridge = val; - } - - /** */ - private Channel channel; - public Channel getChannel() { - return channel; - } - - @JsonDeserialize( as=Channel_impl_ari_1_7_0.class ) - public void setChannel(Channel val ) { - channel = val; - } - -/** No missing signatures from interface */ -} - diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_7_0/models/ChannelStateChange_impl_ari_1_7_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_7_0/models/ChannelStateChange_impl_ari_1_7_0.java deleted file mode 100644 index 573f0e08..00000000 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_7_0/models/ChannelStateChange_impl_ari_1_7_0.java +++ /dev/null @@ -1,37 +0,0 @@ -package ch.loway.oss.ari4java.generated.ari_1_7_0.models; - -// ---------------------------------------------------- -// THIS CLASS WAS GENERATED AUTOMATICALLY -// PLEASE DO NOT EDIT -// Generated on: Tue Dec 19 09:55:49 CET 2017 -// ---------------------------------------------------- - -import ch.loway.oss.ari4java.generated.*; -import com.fasterxml.jackson.databind.annotation.JsonDeserialize; -import java.util.Date; -import java.util.List; -import java.util.Map; - -/********************************************************** - * Notification of a channel's state change. - * - * Defined in file: events.json - * Generated by: Model - *********************************************************/ - -public class ChannelStateChange_impl_ari_1_7_0 extends Event_impl_ari_1_7_0 implements ChannelStateChange, java.io.Serializable { -private static final long serialVersionUID = 1L; - /** */ - private Channel channel; - public Channel getChannel() { - return channel; - } - - @JsonDeserialize( as=Channel_impl_ari_1_7_0.class ) - public void setChannel(Channel val ) { - channel = val; - } - -/** No missing signatures from interface */ -} - diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_7_0/models/ChannelTalkingFinished_impl_ari_1_7_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_7_0/models/ChannelTalkingFinished_impl_ari_1_7_0.java deleted file mode 100644 index b3dc15fb..00000000 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_7_0/models/ChannelTalkingFinished_impl_ari_1_7_0.java +++ /dev/null @@ -1,48 +0,0 @@ -package ch.loway.oss.ari4java.generated.ari_1_7_0.models; - -// ---------------------------------------------------- -// THIS CLASS WAS GENERATED AUTOMATICALLY -// PLEASE DO NOT EDIT -// Generated on: Tue Dec 19 09:55:49 CET 2017 -// ---------------------------------------------------- - -import ch.loway.oss.ari4java.generated.*; -import com.fasterxml.jackson.databind.annotation.JsonDeserialize; -import java.util.Date; -import java.util.List; -import java.util.Map; - -/********************************************************** - * Talking is no longer detected on the channel. - * - * Defined in file: events.json - * Generated by: Model - *********************************************************/ - -public class ChannelTalkingFinished_impl_ari_1_7_0 extends Event_impl_ari_1_7_0 implements ChannelTalkingFinished, java.io.Serializable { -private static final long serialVersionUID = 1L; - /** The channel on which talking completed. */ - private Channel channel; - public Channel getChannel() { - return channel; - } - - @JsonDeserialize( as=Channel_impl_ari_1_7_0.class ) - public void setChannel(Channel val ) { - channel = val; - } - - /** The length of time, in milliseconds, that talking was detected on the channel */ - private int duration; - public int getDuration() { - return duration; - } - - @JsonDeserialize( as=int.class ) - public void setDuration(int val ) { - duration = val; - } - -/** No missing signatures from interface */ -} - diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_7_0/models/ChannelTalkingStarted_impl_ari_1_7_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_7_0/models/ChannelTalkingStarted_impl_ari_1_7_0.java deleted file mode 100644 index 13a8ae91..00000000 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_7_0/models/ChannelTalkingStarted_impl_ari_1_7_0.java +++ /dev/null @@ -1,37 +0,0 @@ -package ch.loway.oss.ari4java.generated.ari_1_7_0.models; - -// ---------------------------------------------------- -// THIS CLASS WAS GENERATED AUTOMATICALLY -// PLEASE DO NOT EDIT -// Generated on: Tue Dec 19 09:55:49 CET 2017 -// ---------------------------------------------------- - -import ch.loway.oss.ari4java.generated.*; -import com.fasterxml.jackson.databind.annotation.JsonDeserialize; -import java.util.Date; -import java.util.List; -import java.util.Map; - -/********************************************************** - * Talking was detected on the channel. - * - * Defined in file: events.json - * Generated by: Model - *********************************************************/ - -public class ChannelTalkingStarted_impl_ari_1_7_0 extends Event_impl_ari_1_7_0 implements ChannelTalkingStarted, java.io.Serializable { -private static final long serialVersionUID = 1L; - /** The channel on which talking started. */ - private Channel channel; - public Channel getChannel() { - return channel; - } - - @JsonDeserialize( as=Channel_impl_ari_1_7_0.class ) - public void setChannel(Channel val ) { - channel = val; - } - -/** No missing signatures from interface */ -} - diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_7_0/models/ChannelUserevent_impl_ari_1_7_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_7_0/models/ChannelUserevent_impl_ari_1_7_0.java deleted file mode 100644 index fe75804e..00000000 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_7_0/models/ChannelUserevent_impl_ari_1_7_0.java +++ /dev/null @@ -1,81 +0,0 @@ -package ch.loway.oss.ari4java.generated.ari_1_7_0.models; - -// ---------------------------------------------------- -// THIS CLASS WAS GENERATED AUTOMATICALLY -// PLEASE DO NOT EDIT -// Generated on: Tue Dec 19 09:55:49 CET 2017 -// ---------------------------------------------------- - -import ch.loway.oss.ari4java.generated.*; -import com.fasterxml.jackson.databind.annotation.JsonDeserialize; -import java.util.Date; -import java.util.List; -import java.util.Map; - -/********************************************************** - * User-generated event with additional user-defined fields in the object. - * - * Defined in file: events.json - * Generated by: Model - *********************************************************/ - -public class ChannelUserevent_impl_ari_1_7_0 extends Event_impl_ari_1_7_0 implements ChannelUserevent, java.io.Serializable { -private static final long serialVersionUID = 1L; - /** A bridge that is signaled with the user event. */ - private Bridge bridge; - public Bridge getBridge() { - return bridge; - } - - @JsonDeserialize( as=Bridge_impl_ari_1_7_0.class ) - public void setBridge(Bridge val ) { - bridge = val; - } - - /** A channel that is signaled with the user event. */ - private Channel channel; - public Channel getChannel() { - return channel; - } - - @JsonDeserialize( as=Channel_impl_ari_1_7_0.class ) - public void setChannel(Channel val ) { - channel = val; - } - - /** A endpoint that is signaled with the user event. */ - private Endpoint endpoint; - public Endpoint getEndpoint() { - return endpoint; - } - - @JsonDeserialize( as=Endpoint_impl_ari_1_7_0.class ) - public void setEndpoint(Endpoint val ) { - endpoint = val; - } - - /** The name of the user event. */ - private String eventname; - public String getEventname() { - return eventname; - } - - @JsonDeserialize( as=String.class ) - public void setEventname(String val ) { - eventname = val; - } - - /** Custom Userevent data */ - private String userevent; - public String getUserevent() { - return userevent; - } - - @JsonDeserialize( as=String.class ) - public void setUserevent(String val ) { - userevent = val; - } - -/** No missing signatures from interface */ -} - diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_7_0/models/ChannelVarset_impl_ari_1_7_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_7_0/models/ChannelVarset_impl_ari_1_7_0.java deleted file mode 100644 index 2b8173c9..00000000 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_7_0/models/ChannelVarset_impl_ari_1_7_0.java +++ /dev/null @@ -1,61 +0,0 @@ -package ch.loway.oss.ari4java.generated.ari_1_7_0.models; - -// ---------------------------------------------------- -// THIS CLASS WAS GENERATED AUTOMATICALLY -// PLEASE DO NOT EDIT -// Generated on: Tue Dec 19 09:55:49 CET 2017 -// ---------------------------------------------------- - -import ch.loway.oss.ari4java.generated.*; -import com.fasterxml.jackson.databind.annotation.JsonDeserialize; -import java.util.Date; -import java.util.List; -import java.util.Map; - -/********************************************************** - * Channel variable changed. - * - * Defined in file: events.json - * Generated by: Model - *********************************************************/ - -public class ChannelVarset_impl_ari_1_7_0 extends Event_impl_ari_1_7_0 implements ChannelVarset, java.io.Serializable { -private static final long serialVersionUID = 1L; - /** The channel on which the variable was set. - -If missing, the variable is a global variable. */ - private Channel channel; - public Channel getChannel() { - return channel; - } - - @JsonDeserialize( as=Channel_impl_ari_1_7_0.class ) - public void setChannel(Channel val ) { - channel = val; - } - - /** The new value of the variable. */ - private String value; - public String getValue() { - return value; - } - - @JsonDeserialize( as=String.class ) - public void setValue(String val ) { - value = val; - } - - /** The variable that changed. */ - private String variable; - public String getVariable() { - return variable; - } - - @JsonDeserialize( as=String.class ) - public void setVariable(String val ) { - variable = val; - } - -/** No missing signatures from interface */ -} - diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_7_0/models/Channel_impl_ari_1_7_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_7_0/models/Channel_impl_ari_1_7_0.java deleted file mode 100644 index ebaceadf..00000000 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_7_0/models/Channel_impl_ari_1_7_0.java +++ /dev/null @@ -1,144 +0,0 @@ -package ch.loway.oss.ari4java.generated.ari_1_7_0.models; - -// ---------------------------------------------------- -// THIS CLASS WAS GENERATED AUTOMATICALLY -// PLEASE DO NOT EDIT -// Generated on: Tue Dec 19 09:55:49 CET 2017 -// ---------------------------------------------------- - -import ch.loway.oss.ari4java.generated.*; -import com.fasterxml.jackson.databind.annotation.JsonDeserialize; -import java.util.Date; -import java.util.List; -import java.util.Map; - -/********************************************************** - * A specific communication connection between Asterisk and an Endpoint. - * - * Defined in file: channels.json - * Generated by: Model - *********************************************************/ - -public class Channel_impl_ari_1_7_0 implements Channel, java.io.Serializable { -private static final long serialVersionUID = 1L; - /** */ - private String accountcode; - public String getAccountcode() { - return accountcode; - } - - @JsonDeserialize( as=String.class ) - public void setAccountcode(String val ) { - accountcode = val; - } - - /** */ - private CallerID caller; - public CallerID getCaller() { - return caller; - } - - @JsonDeserialize( as=CallerID_impl_ari_1_7_0.class ) - public void setCaller(CallerID val ) { - caller = val; - } - - /** */ - private CallerID connected; - public CallerID getConnected() { - return connected; - } - - @JsonDeserialize( as=CallerID_impl_ari_1_7_0.class ) - public void setConnected(CallerID val ) { - connected = val; - } - - /** Timestamp when channel was created */ - private Date creationtime; - public Date getCreationtime() { - return creationtime; - } - - @JsonDeserialize( as=Date.class ) - public void setCreationtime(Date val ) { - creationtime = val; - } - - /** Current location in the dialplan */ - private DialplanCEP dialplan; - public DialplanCEP getDialplan() { - return dialplan; - } - - @JsonDeserialize( as=DialplanCEP_impl_ari_1_7_0.class ) - public void setDialplan(DialplanCEP val ) { - dialplan = val; - } - - /** Unique identifier of the channel. - -This is the same as the Uniqueid field in AMI. */ - private String id; - public String getId() { - return id; - } - - @JsonDeserialize( as=String.class ) - public void setId(String val ) { - id = val; - } - - /** The default spoken language */ - private String language; - public String getLanguage() { - return language; - } - - @JsonDeserialize( as=String.class ) - public void setLanguage(String val ) { - language = val; - } - - /** Name of the channel (i.e. SIP/foo-0000a7e3) */ - private String name; - public String getName() { - return name; - } - - @JsonDeserialize( as=String.class ) - public void setName(String val ) { - name = val; - } - - /** */ - private String state; - public String getState() { - return state; - } - - @JsonDeserialize( as=String.class ) - public void setState(String val ) { - state = val; - } - -/********************************************************** - * Channel variables - * - * @since ari_2_0_0 - *********************************************************/ - public String getChannelvars(){ - throw new UnsupportedOperationException("Method availble from ..."); -}; - -/********************************************************** - * Channel variables - * - * @since ari_2_0_0 - *********************************************************/ - public void setChannelvars(String val ){ - throw new UnsupportedOperationException("Method availble from ..."); -}; - -} - diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_7_0/models/ConfigInfo_impl_ari_1_7_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_7_0/models/ConfigInfo_impl_ari_1_7_0.java deleted file mode 100644 index f7b0b5a4..00000000 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_7_0/models/ConfigInfo_impl_ari_1_7_0.java +++ /dev/null @@ -1,92 +0,0 @@ -package ch.loway.oss.ari4java.generated.ari_1_7_0.models; - -// ---------------------------------------------------- -// THIS CLASS WAS GENERATED AUTOMATICALLY -// PLEASE DO NOT EDIT -// Generated on: Tue Dec 19 09:55:49 CET 2017 -// ---------------------------------------------------- - -import ch.loway.oss.ari4java.generated.*; -import com.fasterxml.jackson.databind.annotation.JsonDeserialize; -import java.util.Date; -import java.util.List; -import java.util.Map; - -/********************************************************** - * Info about Asterisk configuration - * - * Defined in file: asterisk.json - * Generated by: Model - *********************************************************/ - -public class ConfigInfo_impl_ari_1_7_0 implements ConfigInfo, java.io.Serializable { -private static final long serialVersionUID = 1L; - /** Default language for media playback. */ - private String default_language; - public String getDefault_language() { - return default_language; - } - - @JsonDeserialize( as=String.class ) - public void setDefault_language(String val ) { - default_language = val; - } - - /** Maximum number of simultaneous channels. */ - private int max_channels; - public int getMax_channels() { - return max_channels; - } - - @JsonDeserialize( as=int.class ) - public void setMax_channels(int val ) { - max_channels = val; - } - - /** Maximum load avg on system. */ - private double max_load; - public double getMax_load() { - return max_load; - } - - @JsonDeserialize( as=double.class ) - public void setMax_load(double val ) { - max_load = val; - } - - /** Maximum number of open file handles (files, sockets). */ - private int max_open_files; - public int getMax_open_files() { - return max_open_files; - } - - @JsonDeserialize( as=int.class ) - public void setMax_open_files(int val ) { - max_open_files = val; - } - - /** Asterisk system name. */ - private String name; - public String getName() { - return name; - } - - @JsonDeserialize( as=String.class ) - public void setName(String val ) { - name = val; - } - - /** Effective user/group id for running Asterisk. */ - private SetId setid; - public SetId getSetid() { - return setid; - } - - @JsonDeserialize( as=SetId_impl_ari_1_7_0.class ) - public void setSetid(SetId val ) { - setid = val; - } - -/** No missing signatures from interface */ -} - diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_7_0/models/DeviceStateChanged_impl_ari_1_7_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_7_0/models/DeviceStateChanged_impl_ari_1_7_0.java deleted file mode 100644 index cdca8838..00000000 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_7_0/models/DeviceStateChanged_impl_ari_1_7_0.java +++ /dev/null @@ -1,37 +0,0 @@ -package ch.loway.oss.ari4java.generated.ari_1_7_0.models; - -// ---------------------------------------------------- -// THIS CLASS WAS GENERATED AUTOMATICALLY -// PLEASE DO NOT EDIT -// Generated on: Tue Dec 19 09:55:49 CET 2017 -// ---------------------------------------------------- - -import ch.loway.oss.ari4java.generated.*; -import com.fasterxml.jackson.databind.annotation.JsonDeserialize; -import java.util.Date; -import java.util.List; -import java.util.Map; - -/********************************************************** - * Notification that a device state has changed. - * - * Defined in file: events.json - * Generated by: Model - *********************************************************/ - -public class DeviceStateChanged_impl_ari_1_7_0 extends Event_impl_ari_1_7_0 implements DeviceStateChanged, java.io.Serializable { -private static final long serialVersionUID = 1L; - /** Device state object */ - private DeviceState device_state; - public DeviceState getDevice_state() { - return device_state; - } - - @JsonDeserialize( as=DeviceState_impl_ari_1_7_0.class ) - public void setDevice_state(DeviceState val ) { - device_state = val; - } - -/** No missing signatures from interface */ -} - diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_7_0/models/DeviceState_impl_ari_1_7_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_7_0/models/DeviceState_impl_ari_1_7_0.java deleted file mode 100644 index c7975454..00000000 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_7_0/models/DeviceState_impl_ari_1_7_0.java +++ /dev/null @@ -1,48 +0,0 @@ -package ch.loway.oss.ari4java.generated.ari_1_7_0.models; - -// ---------------------------------------------------- -// THIS CLASS WAS GENERATED AUTOMATICALLY -// PLEASE DO NOT EDIT -// Generated on: Tue Dec 19 09:55:49 CET 2017 -// ---------------------------------------------------- - -import ch.loway.oss.ari4java.generated.*; -import com.fasterxml.jackson.databind.annotation.JsonDeserialize; -import java.util.Date; -import java.util.List; -import java.util.Map; - -/********************************************************** - * Represents the state of a device. - * - * Defined in file: deviceStates.json - * Generated by: Model - *********************************************************/ - -public class DeviceState_impl_ari_1_7_0 implements DeviceState, java.io.Serializable { -private static final long serialVersionUID = 1L; - /** Name of the device. */ - private String name; - public String getName() { - return name; - } - - @JsonDeserialize( as=String.class ) - public void setName(String val ) { - name = val; - } - - /** Device's state */ - private String state; - public String getState() { - return state; - } - - @JsonDeserialize( as=String.class ) - public void setState(String val ) { - state = val; - } - -/** No missing signatures from interface */ -} - diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_7_0/models/Dial_impl_ari_1_7_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_7_0/models/Dial_impl_ari_1_7_0.java deleted file mode 100644 index 9529423b..00000000 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_7_0/models/Dial_impl_ari_1_7_0.java +++ /dev/null @@ -1,92 +0,0 @@ -package ch.loway.oss.ari4java.generated.ari_1_7_0.models; - -// ---------------------------------------------------- -// THIS CLASS WAS GENERATED AUTOMATICALLY -// PLEASE DO NOT EDIT -// Generated on: Tue Dec 19 09:55:49 CET 2017 -// ---------------------------------------------------- - -import ch.loway.oss.ari4java.generated.*; -import com.fasterxml.jackson.databind.annotation.JsonDeserialize; -import java.util.Date; -import java.util.List; -import java.util.Map; - -/********************************************************** - * Dialing state has changed. - * - * Defined in file: events.json - * Generated by: Model - *********************************************************/ - -public class Dial_impl_ari_1_7_0 extends Event_impl_ari_1_7_0 implements Dial, java.io.Serializable { -private static final long serialVersionUID = 1L; - /** The calling channel. */ - private Channel caller; - public Channel getCaller() { - return caller; - } - - @JsonDeserialize( as=Channel_impl_ari_1_7_0.class ) - public void setCaller(Channel val ) { - caller = val; - } - - /** Current status of the dialing attempt to the peer. */ - private String dialstatus; - public String getDialstatus() { - return dialstatus; - } - - @JsonDeserialize( as=String.class ) - public void setDialstatus(String val ) { - dialstatus = val; - } - - /** The dial string for calling the peer channel. */ - private String dialstring; - public String getDialstring() { - return dialstring; - } - - @JsonDeserialize( as=String.class ) - public void setDialstring(String val ) { - dialstring = val; - } - - /** Forwarding target requested by the original dialed channel. */ - private String forward; - public String getForward() { - return forward; - } - - @JsonDeserialize( as=String.class ) - public void setForward(String val ) { - forward = val; - } - - /** Channel that the caller has been forwarded to. */ - private Channel forwarded; - public Channel getForwarded() { - return forwarded; - } - - @JsonDeserialize( as=Channel_impl_ari_1_7_0.class ) - public void setForwarded(Channel val ) { - forwarded = val; - } - - /** The dialed channel. */ - private Channel peer; - public Channel getPeer() { - return peer; - } - - @JsonDeserialize( as=Channel_impl_ari_1_7_0.class ) - public void setPeer(Channel val ) { - peer = val; - } - -/** No missing signatures from interface */ -} - diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_7_0/models/Dialed_impl_ari_1_7_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_7_0/models/Dialed_impl_ari_1_7_0.java deleted file mode 100644 index 08558ae2..00000000 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_7_0/models/Dialed_impl_ari_1_7_0.java +++ /dev/null @@ -1,26 +0,0 @@ -package ch.loway.oss.ari4java.generated.ari_1_7_0.models; - -// ---------------------------------------------------- -// THIS CLASS WAS GENERATED AUTOMATICALLY -// PLEASE DO NOT EDIT -// Generated on: Tue Dec 19 09:55:49 CET 2017 -// ---------------------------------------------------- - -import ch.loway.oss.ari4java.generated.*; -import com.fasterxml.jackson.databind.annotation.JsonDeserialize; -import java.util.Date; -import java.util.List; -import java.util.Map; - -/********************************************************** - * Dialed channel information. - * - * Defined in file: channels.json - * Generated by: Model - *********************************************************/ - -public class Dialed_impl_ari_1_7_0 implements Dialed, java.io.Serializable { -private static final long serialVersionUID = 1L; -/** No missing signatures from interface */ -} - diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_7_0/models/DialplanCEP_impl_ari_1_7_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_7_0/models/DialplanCEP_impl_ari_1_7_0.java deleted file mode 100644 index 5b3ca0c5..00000000 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_7_0/models/DialplanCEP_impl_ari_1_7_0.java +++ /dev/null @@ -1,59 +0,0 @@ -package ch.loway.oss.ari4java.generated.ari_1_7_0.models; - -// ---------------------------------------------------- -// THIS CLASS WAS GENERATED AUTOMATICALLY -// PLEASE DO NOT EDIT -// Generated on: Tue Dec 19 09:55:49 CET 2017 -// ---------------------------------------------------- - -import ch.loway.oss.ari4java.generated.*; -import com.fasterxml.jackson.databind.annotation.JsonDeserialize; -import java.util.Date; -import java.util.List; -import java.util.Map; - -/********************************************************** - * Dialplan location (context/extension/priority) - * - * Defined in file: channels.json - * Generated by: Model - *********************************************************/ - -public class DialplanCEP_impl_ari_1_7_0 implements DialplanCEP, java.io.Serializable { -private static final long serialVersionUID = 1L; - /** Context in the dialplan */ - private String context; - public String getContext() { - return context; - } - - @JsonDeserialize( as=String.class ) - public void setContext(String val ) { - context = val; - } - - /** Extension in the dialplan */ - private String exten; - public String getExten() { - return exten; - } - - @JsonDeserialize( as=String.class ) - public void setExten(String val ) { - exten = val; - } - - /** Priority in the dialplan */ - private long priority; - public long getPriority() { - return priority; - } - - @JsonDeserialize( as=long.class ) - public void setPriority(long val ) { - priority = val; - } - -/** No missing signatures from interface */ -} - diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_7_0/models/EndpointStateChange_impl_ari_1_7_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_7_0/models/EndpointStateChange_impl_ari_1_7_0.java deleted file mode 100644 index d030b142..00000000 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_7_0/models/EndpointStateChange_impl_ari_1_7_0.java +++ /dev/null @@ -1,37 +0,0 @@ -package ch.loway.oss.ari4java.generated.ari_1_7_0.models; - -// ---------------------------------------------------- -// THIS CLASS WAS GENERATED AUTOMATICALLY -// PLEASE DO NOT EDIT -// Generated on: Tue Dec 19 09:55:49 CET 2017 -// ---------------------------------------------------- - -import ch.loway.oss.ari4java.generated.*; -import com.fasterxml.jackson.databind.annotation.JsonDeserialize; -import java.util.Date; -import java.util.List; -import java.util.Map; - -/********************************************************** - * Endpoint state changed. - * - * Defined in file: events.json - * Generated by: Model - *********************************************************/ - -public class EndpointStateChange_impl_ari_1_7_0 extends Event_impl_ari_1_7_0 implements EndpointStateChange, java.io.Serializable { -private static final long serialVersionUID = 1L; - /** */ - private Endpoint endpoint; - public Endpoint getEndpoint() { - return endpoint; - } - - @JsonDeserialize( as=Endpoint_impl_ari_1_7_0.class ) - public void setEndpoint(Endpoint val ) { - endpoint = val; - } - -/** No missing signatures from interface */ -} - diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_7_0/models/Endpoint_impl_ari_1_7_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_7_0/models/Endpoint_impl_ari_1_7_0.java deleted file mode 100644 index 41db54f9..00000000 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_7_0/models/Endpoint_impl_ari_1_7_0.java +++ /dev/null @@ -1,72 +0,0 @@ -package ch.loway.oss.ari4java.generated.ari_1_7_0.models; - -// ---------------------------------------------------- -// THIS CLASS WAS GENERATED AUTOMATICALLY -// PLEASE DO NOT EDIT -// Generated on: Tue Dec 19 09:55:49 CET 2017 -// ---------------------------------------------------- - -import ch.loway.oss.ari4java.generated.*; -import com.fasterxml.jackson.databind.annotation.JsonDeserialize; -import java.util.Date; -import java.util.List; -import java.util.Map; - -/********************************************************** - * An external device that may offer/accept calls to/from Asterisk. - * - * Unlike most resources, which have a single unique identifier, an endpoint is uniquely identified by the technology/resource pair. - * - * Defined in file: endpoints.json - * Generated by: Model - *********************************************************/ - -public class Endpoint_impl_ari_1_7_0 implements Endpoint, java.io.Serializable { -private static final long serialVersionUID = 1L; - /** Id's of channels associated with this endpoint */ - private List channel_ids; - public List getChannel_ids() { - return channel_ids; - } - - @JsonDeserialize( contentAs=String.class ) - public void setChannel_ids(List val ) { - channel_ids = val; - } - - /** Identifier of the endpoint, specific to the given technology. */ - private String resource; - public String getResource() { - return resource; - } - - @JsonDeserialize( as=String.class ) - public void setResource(String val ) { - resource = val; - } - - /** Endpoint's state */ - private String state; - public String getState() { - return state; - } - - @JsonDeserialize( as=String.class ) - public void setState(String val ) { - state = val; - } - - /** Technology of the endpoint */ - private String technology; - public String getTechnology() { - return technology; - } - - @JsonDeserialize( as=String.class ) - public void setTechnology(String val ) { - technology = val; - } - -/** No missing signatures from interface */ -} - diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_7_0/models/Event_impl_ari_1_7_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_7_0/models/Event_impl_ari_1_7_0.java deleted file mode 100644 index e318bf50..00000000 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_7_0/models/Event_impl_ari_1_7_0.java +++ /dev/null @@ -1,48 +0,0 @@ -package ch.loway.oss.ari4java.generated.ari_1_7_0.models; - -// ---------------------------------------------------- -// THIS CLASS WAS GENERATED AUTOMATICALLY -// PLEASE DO NOT EDIT -// Generated on: Tue Dec 19 09:55:49 CET 2017 -// ---------------------------------------------------- - -import ch.loway.oss.ari4java.generated.*; -import com.fasterxml.jackson.databind.annotation.JsonDeserialize; -import java.util.Date; -import java.util.List; -import java.util.Map; - -/********************************************************** - * Base type for asynchronous events from Asterisk. - * - * Defined in file: events.json - * Generated by: Model - *********************************************************/ - -public class Event_impl_ari_1_7_0 extends Message_impl_ari_1_7_0 implements Event, java.io.Serializable { -private static final long serialVersionUID = 1L; - /** Name of the application receiving the event. */ - private String application; - public String getApplication() { - return application; - } - - @JsonDeserialize( as=String.class ) - public void setApplication(String val ) { - application = val; - } - - /** Time at which this event was created. */ - private Date timestamp; - public Date getTimestamp() { - return timestamp; - } - - @JsonDeserialize( as=Date.class ) - public void setTimestamp(Date val ) { - timestamp = val; - } - -/** No missing signatures from interface */ -} - diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_7_0/models/FormatLangPair_impl_ari_1_7_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_7_0/models/FormatLangPair_impl_ari_1_7_0.java deleted file mode 100644 index 7427e737..00000000 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_7_0/models/FormatLangPair_impl_ari_1_7_0.java +++ /dev/null @@ -1,48 +0,0 @@ -package ch.loway.oss.ari4java.generated.ari_1_7_0.models; - -// ---------------------------------------------------- -// THIS CLASS WAS GENERATED AUTOMATICALLY -// PLEASE DO NOT EDIT -// Generated on: Tue Dec 19 09:55:49 CET 2017 -// ---------------------------------------------------- - -import ch.loway.oss.ari4java.generated.*; -import com.fasterxml.jackson.databind.annotation.JsonDeserialize; -import java.util.Date; -import java.util.List; -import java.util.Map; - -/********************************************************** - * Identifies the format and language of a sound file - * - * Defined in file: sounds.json - * Generated by: Model - *********************************************************/ - -public class FormatLangPair_impl_ari_1_7_0 implements FormatLangPair, java.io.Serializable { -private static final long serialVersionUID = 1L; - /** */ - private String format; - public String getFormat() { - return format; - } - - @JsonDeserialize( as=String.class ) - public void setFormat(String val ) { - format = val; - } - - /** */ - private String language; - public String getLanguage() { - return language; - } - - @JsonDeserialize( as=String.class ) - public void setLanguage(String val ) { - language = val; - } - -/** No missing signatures from interface */ -} - diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_7_0/models/LiveRecording_impl_ari_1_7_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_7_0/models/LiveRecording_impl_ari_1_7_0.java deleted file mode 100644 index c534fbb4..00000000 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_7_0/models/LiveRecording_impl_ari_1_7_0.java +++ /dev/null @@ -1,114 +0,0 @@ -package ch.loway.oss.ari4java.generated.ari_1_7_0.models; - -// ---------------------------------------------------- -// THIS CLASS WAS GENERATED AUTOMATICALLY -// PLEASE DO NOT EDIT -// Generated on: Tue Dec 19 09:55:49 CET 2017 -// ---------------------------------------------------- - -import ch.loway.oss.ari4java.generated.*; -import com.fasterxml.jackson.databind.annotation.JsonDeserialize; -import java.util.Date; -import java.util.List; -import java.util.Map; - -/********************************************************** - * A recording that is in progress - * - * Defined in file: recordings.json - * Generated by: Model - *********************************************************/ - -public class LiveRecording_impl_ari_1_7_0 implements LiveRecording, java.io.Serializable { -private static final long serialVersionUID = 1L; - /** Cause for recording failure if failed */ - private String cause; - public String getCause() { - return cause; - } - - @JsonDeserialize( as=String.class ) - public void setCause(String val ) { - cause = val; - } - - /** Duration in seconds of the recording */ - private int duration; - public int getDuration() { - return duration; - } - - @JsonDeserialize( as=int.class ) - public void setDuration(int val ) { - duration = val; - } - - /** Recording format (wav, gsm, etc.) */ - private String format; - public String getFormat() { - return format; - } - - @JsonDeserialize( as=String.class ) - public void setFormat(String val ) { - format = val; - } - - /** Base name for the recording */ - private String name; - public String getName() { - return name; - } - - @JsonDeserialize( as=String.class ) - public void setName(String val ) { - name = val; - } - - /** Duration of silence, in seconds, detected in the recording. This is only available if the recording was initiated with a non-zero maxSilenceSeconds. */ - private int silence_duration; - public int getSilence_duration() { - return silence_duration; - } - - @JsonDeserialize( as=int.class ) - public void setSilence_duration(int val ) { - silence_duration = val; - } - - /** */ - private String state; - public String getState() { - return state; - } - - @JsonDeserialize( as=String.class ) - public void setState(String val ) { - state = val; - } - - /** Duration of talking, in seconds, detected in the recording. This is only available if the recording was initiated with a non-zero maxSilenceSeconds. */ - private int talking_duration; - public int getTalking_duration() { - return talking_duration; - } - - @JsonDeserialize( as=int.class ) - public void setTalking_duration(int val ) { - talking_duration = val; - } - - /** URI for the channel or bridge being recorded */ - private String target_uri; - public String getTarget_uri() { - return target_uri; - } - - @JsonDeserialize( as=String.class ) - public void setTarget_uri(String val ) { - target_uri = val; - } - -/** No missing signatures from interface */ -} - diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_7_0/models/Message_impl_ari_1_7_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_7_0/models/Message_impl_ari_1_7_0.java deleted file mode 100644 index 287f690c..00000000 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_7_0/models/Message_impl_ari_1_7_0.java +++ /dev/null @@ -1,93 +0,0 @@ -package ch.loway.oss.ari4java.generated.ari_1_7_0.models; - -// ---------------------------------------------------- -// THIS CLASS WAS GENERATED AUTOMATICALLY -// PLEASE DO NOT EDIT -// Generated on: Tue Dec 19 09:55:49 CET 2017 -// ---------------------------------------------------- - -import ch.loway.oss.ari4java.generated.*; -import com.fasterxml.jackson.annotation.JsonSubTypes; -import com.fasterxml.jackson.annotation.JsonSubTypes.Type; -import com.fasterxml.jackson.annotation.JsonTypeInfo; -import com.fasterxml.jackson.databind.annotation.JsonDeserialize; -import java.util.Date; -import java.util.List; -import java.util.Map; - -/********************************************************** - * Base type for errors and events - * - * Defined in file: events.json - * Generated by: Model - *********************************************************/ - @JsonTypeInfo( use = JsonTypeInfo.Id.NAME, include = JsonTypeInfo.As.PROPERTY, property = "type") - @JsonSubTypes({ @Type(value = MissingParams_impl_ari_1_7_0.class, name = "MissingParams") -, @Type(value = Event_impl_ari_1_7_0.class, name = "Event") -, @Type(value = DeviceStateChanged_impl_ari_1_7_0.class, name = "DeviceStateChanged") -, @Type(value = PlaybackStarted_impl_ari_1_7_0.class, name = "PlaybackStarted") -, @Type(value = PlaybackFinished_impl_ari_1_7_0.class, name = "PlaybackFinished") -, @Type(value = RecordingStarted_impl_ari_1_7_0.class, name = "RecordingStarted") -, @Type(value = RecordingFinished_impl_ari_1_7_0.class, name = "RecordingFinished") -, @Type(value = RecordingFailed_impl_ari_1_7_0.class, name = "RecordingFailed") -, @Type(value = ApplicationReplaced_impl_ari_1_7_0.class, name = "ApplicationReplaced") -, @Type(value = BridgeCreated_impl_ari_1_7_0.class, name = "BridgeCreated") -, @Type(value = BridgeDestroyed_impl_ari_1_7_0.class, name = "BridgeDestroyed") -, @Type(value = BridgeMerged_impl_ari_1_7_0.class, name = "BridgeMerged") -, @Type(value = BridgeBlindTransfer_impl_ari_1_7_0.class, name = "BridgeBlindTransfer") -, @Type(value = BridgeAttendedTransfer_impl_ari_1_7_0.class, name = "BridgeAttendedTransfer") -, @Type(value = ChannelCreated_impl_ari_1_7_0.class, name = "ChannelCreated") -, @Type(value = ChannelDestroyed_impl_ari_1_7_0.class, name = "ChannelDestroyed") -, @Type(value = ChannelEnteredBridge_impl_ari_1_7_0.class, name = "ChannelEnteredBridge") -, @Type(value = ChannelLeftBridge_impl_ari_1_7_0.class, name = "ChannelLeftBridge") -, @Type(value = ChannelStateChange_impl_ari_1_7_0.class, name = "ChannelStateChange") -, @Type(value = ChannelDtmfReceived_impl_ari_1_7_0.class, name = "ChannelDtmfReceived") -, @Type(value = ChannelDialplan_impl_ari_1_7_0.class, name = "ChannelDialplan") -, @Type(value = ChannelCallerId_impl_ari_1_7_0.class, name = "ChannelCallerId") -, @Type(value = ChannelUserevent_impl_ari_1_7_0.class, name = "ChannelUserevent") -, @Type(value = ChannelHangupRequest_impl_ari_1_7_0.class, name = "ChannelHangupRequest") -, @Type(value = ChannelVarset_impl_ari_1_7_0.class, name = "ChannelVarset") -, @Type(value = ChannelTalkingStarted_impl_ari_1_7_0.class, name = "ChannelTalkingStarted") -, @Type(value = ChannelTalkingFinished_impl_ari_1_7_0.class, name = "ChannelTalkingFinished") -, @Type(value = EndpointStateChange_impl_ari_1_7_0.class, name = "EndpointStateChange") -, @Type(value = Dial_impl_ari_1_7_0.class, name = "Dial") -, @Type(value = StasisEnd_impl_ari_1_7_0.class, name = "StasisEnd") -, @Type(value = StasisStart_impl_ari_1_7_0.class, name = "StasisStart") -, @Type(value = TextMessageReceived_impl_ari_1_7_0.class, name = "TextMessageReceived") -, @Type(value = ChannelConnectedLine_impl_ari_1_7_0.class, name = "ChannelConnectedLine") - }) - - -public class Message_impl_ari_1_7_0 implements Message, java.io.Serializable { -private static final long serialVersionUID = 1L; - /** Indicates the type of this message. */ - private String type; - public String getType() { - return type; - } - - @JsonDeserialize( as=String.class ) - public void setType(String val ) { - type = val; - } - -/********************************************************** - * The unique ID for the Asterisk instance that raised this event. - * - * @since ari_2_0_0 - *********************************************************/ - public void setAsterisk_id(String val ){ - throw new UnsupportedOperationException("Method availble from ..."); -}; - -/********************************************************** - * The unique ID for the Asterisk instance that raised this event. - * - * @since ari_2_0_0 - *********************************************************/ - public String getAsterisk_id(){ - throw new UnsupportedOperationException("Method availble from ..."); -}; - -} - diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_7_0/models/MissingParams_impl_ari_1_7_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_7_0/models/MissingParams_impl_ari_1_7_0.java deleted file mode 100644 index b8ed9b2d..00000000 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_7_0/models/MissingParams_impl_ari_1_7_0.java +++ /dev/null @@ -1,37 +0,0 @@ -package ch.loway.oss.ari4java.generated.ari_1_7_0.models; - -// ---------------------------------------------------- -// THIS CLASS WAS GENERATED AUTOMATICALLY -// PLEASE DO NOT EDIT -// Generated on: Tue Dec 19 09:55:49 CET 2017 -// ---------------------------------------------------- - -import ch.loway.oss.ari4java.generated.*; -import com.fasterxml.jackson.databind.annotation.JsonDeserialize; -import java.util.Date; -import java.util.List; -import java.util.Map; - -/********************************************************** - * Error event sent when required params are missing. - * - * Defined in file: events.json - * Generated by: Model - *********************************************************/ - -public class MissingParams_impl_ari_1_7_0 extends Message_impl_ari_1_7_0 implements MissingParams, java.io.Serializable { -private static final long serialVersionUID = 1L; - /** A list of the missing parameters */ - private List params; - public List getParams() { - return params; - } - - @JsonDeserialize( contentAs=String.class ) - public void setParams(List val ) { - params = val; - } - -/** No missing signatures from interface */ -} - diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_7_0/models/PlaybackFinished_impl_ari_1_7_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_7_0/models/PlaybackFinished_impl_ari_1_7_0.java deleted file mode 100644 index 2d79b19a..00000000 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_7_0/models/PlaybackFinished_impl_ari_1_7_0.java +++ /dev/null @@ -1,37 +0,0 @@ -package ch.loway.oss.ari4java.generated.ari_1_7_0.models; - -// ---------------------------------------------------- -// THIS CLASS WAS GENERATED AUTOMATICALLY -// PLEASE DO NOT EDIT -// Generated on: Tue Dec 19 09:55:49 CET 2017 -// ---------------------------------------------------- - -import ch.loway.oss.ari4java.generated.*; -import com.fasterxml.jackson.databind.annotation.JsonDeserialize; -import java.util.Date; -import java.util.List; -import java.util.Map; - -/********************************************************** - * Event showing the completion of a media playback operation. - * - * Defined in file: events.json - * Generated by: Model - *********************************************************/ - -public class PlaybackFinished_impl_ari_1_7_0 extends Event_impl_ari_1_7_0 implements PlaybackFinished, java.io.Serializable { -private static final long serialVersionUID = 1L; - /** Playback control object */ - private Playback playback; - public Playback getPlayback() { - return playback; - } - - @JsonDeserialize( as=Playback_impl_ari_1_7_0.class ) - public void setPlayback(Playback val ) { - playback = val; - } - -/** No missing signatures from interface */ -} - diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_7_0/models/PlaybackStarted_impl_ari_1_7_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_7_0/models/PlaybackStarted_impl_ari_1_7_0.java deleted file mode 100644 index 4414eb39..00000000 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_7_0/models/PlaybackStarted_impl_ari_1_7_0.java +++ /dev/null @@ -1,37 +0,0 @@ -package ch.loway.oss.ari4java.generated.ari_1_7_0.models; - -// ---------------------------------------------------- -// THIS CLASS WAS GENERATED AUTOMATICALLY -// PLEASE DO NOT EDIT -// Generated on: Tue Dec 19 09:55:49 CET 2017 -// ---------------------------------------------------- - -import ch.loway.oss.ari4java.generated.*; -import com.fasterxml.jackson.databind.annotation.JsonDeserialize; -import java.util.Date; -import java.util.List; -import java.util.Map; - -/********************************************************** - * Event showing the start of a media playback operation. - * - * Defined in file: events.json - * Generated by: Model - *********************************************************/ - -public class PlaybackStarted_impl_ari_1_7_0 extends Event_impl_ari_1_7_0 implements PlaybackStarted, java.io.Serializable { -private static final long serialVersionUID = 1L; - /** Playback control object */ - private Playback playback; - public Playback getPlayback() { - return playback; - } - - @JsonDeserialize( as=Playback_impl_ari_1_7_0.class ) - public void setPlayback(Playback val ) { - playback = val; - } - -/** No missing signatures from interface */ -} - diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_7_0/models/Playback_impl_ari_1_7_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_7_0/models/Playback_impl_ari_1_7_0.java deleted file mode 100644 index 062eb3f9..00000000 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_7_0/models/Playback_impl_ari_1_7_0.java +++ /dev/null @@ -1,98 +0,0 @@ -package ch.loway.oss.ari4java.generated.ari_1_7_0.models; - -// ---------------------------------------------------- -// THIS CLASS WAS GENERATED AUTOMATICALLY -// PLEASE DO NOT EDIT -// Generated on: Tue Dec 19 09:55:49 CET 2017 -// ---------------------------------------------------- - -import ch.loway.oss.ari4java.generated.*; -import com.fasterxml.jackson.databind.annotation.JsonDeserialize; -import java.util.Date; -import java.util.List; -import java.util.Map; - -/********************************************************** - * Object representing the playback of media to a channel - * - * Defined in file: playbacks.json - * Generated by: Model - *********************************************************/ - -public class Playback_impl_ari_1_7_0 implements Playback, java.io.Serializable { -private static final long serialVersionUID = 1L; - /** ID for this playback operation */ - private String id; - public String getId() { - return id; - } - - @JsonDeserialize( as=String.class ) - public void setId(String val ) { - id = val; - } - - /** For media types that support multiple languages, the language requested for playback. */ - private String language; - public String getLanguage() { - return language; - } - - @JsonDeserialize( as=String.class ) - public void setLanguage(String val ) { - language = val; - } - - /** URI for the media to play back. */ - private String media_uri; - public String getMedia_uri() { - return media_uri; - } - - @JsonDeserialize( as=String.class ) - public void setMedia_uri(String val ) { - media_uri = val; - } - - /** Current state of the playback operation. */ - private String state; - public String getState() { - return state; - } - - @JsonDeserialize( as=String.class ) - public void setState(String val ) { - state = val; - } - - /** URI for the channel or bridge to play the media on */ - private String target_uri; - public String getTarget_uri() { - return target_uri; - } - - @JsonDeserialize( as=String.class ) - public void setTarget_uri(String val ) { - target_uri = val; - } - -/********************************************************** - * If a list of URIs is being played, the next media URI to be played back. - * - * @since ari_1_10_0 - *********************************************************/ - public String getNext_media_uri(){ - throw new UnsupportedOperationException("Method availble from ..."); -}; - -/********************************************************** - * If a list of URIs is being played, the next media URI to be played back. - * - * @since ari_1_10_0 - *********************************************************/ - public void setNext_media_uri(String val ){ - throw new UnsupportedOperationException("Method availble from ..."); -}; - -} - diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_7_0/models/RecordingFailed_impl_ari_1_7_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_7_0/models/RecordingFailed_impl_ari_1_7_0.java deleted file mode 100644 index 877d626a..00000000 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_7_0/models/RecordingFailed_impl_ari_1_7_0.java +++ /dev/null @@ -1,37 +0,0 @@ -package ch.loway.oss.ari4java.generated.ari_1_7_0.models; - -// ---------------------------------------------------- -// THIS CLASS WAS GENERATED AUTOMATICALLY -// PLEASE DO NOT EDIT -// Generated on: Tue Dec 19 09:55:49 CET 2017 -// ---------------------------------------------------- - -import ch.loway.oss.ari4java.generated.*; -import com.fasterxml.jackson.databind.annotation.JsonDeserialize; -import java.util.Date; -import java.util.List; -import java.util.Map; - -/********************************************************** - * Event showing failure of a recording operation. - * - * Defined in file: events.json - * Generated by: Model - *********************************************************/ - -public class RecordingFailed_impl_ari_1_7_0 extends Event_impl_ari_1_7_0 implements RecordingFailed, java.io.Serializable { -private static final long serialVersionUID = 1L; - /** Recording control object */ - private LiveRecording recording; - public LiveRecording getRecording() { - return recording; - } - - @JsonDeserialize( as=LiveRecording_impl_ari_1_7_0.class ) - public void setRecording(LiveRecording val ) { - recording = val; - } - -/** No missing signatures from interface */ -} - diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_7_0/models/RecordingFinished_impl_ari_1_7_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_7_0/models/RecordingFinished_impl_ari_1_7_0.java deleted file mode 100644 index c0df93ab..00000000 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_7_0/models/RecordingFinished_impl_ari_1_7_0.java +++ /dev/null @@ -1,37 +0,0 @@ -package ch.loway.oss.ari4java.generated.ari_1_7_0.models; - -// ---------------------------------------------------- -// THIS CLASS WAS GENERATED AUTOMATICALLY -// PLEASE DO NOT EDIT -// Generated on: Tue Dec 19 09:55:49 CET 2017 -// ---------------------------------------------------- - -import ch.loway.oss.ari4java.generated.*; -import com.fasterxml.jackson.databind.annotation.JsonDeserialize; -import java.util.Date; -import java.util.List; -import java.util.Map; - -/********************************************************** - * Event showing the completion of a recording operation. - * - * Defined in file: events.json - * Generated by: Model - *********************************************************/ - -public class RecordingFinished_impl_ari_1_7_0 extends Event_impl_ari_1_7_0 implements RecordingFinished, java.io.Serializable { -private static final long serialVersionUID = 1L; - /** Recording control object */ - private LiveRecording recording; - public LiveRecording getRecording() { - return recording; - } - - @JsonDeserialize( as=LiveRecording_impl_ari_1_7_0.class ) - public void setRecording(LiveRecording val ) { - recording = val; - } - -/** No missing signatures from interface */ -} - diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_7_0/models/RecordingStarted_impl_ari_1_7_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_7_0/models/RecordingStarted_impl_ari_1_7_0.java deleted file mode 100644 index 8112757a..00000000 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_7_0/models/RecordingStarted_impl_ari_1_7_0.java +++ /dev/null @@ -1,37 +0,0 @@ -package ch.loway.oss.ari4java.generated.ari_1_7_0.models; - -// ---------------------------------------------------- -// THIS CLASS WAS GENERATED AUTOMATICALLY -// PLEASE DO NOT EDIT -// Generated on: Tue Dec 19 09:55:49 CET 2017 -// ---------------------------------------------------- - -import ch.loway.oss.ari4java.generated.*; -import com.fasterxml.jackson.databind.annotation.JsonDeserialize; -import java.util.Date; -import java.util.List; -import java.util.Map; - -/********************************************************** - * Event showing the start of a recording operation. - * - * Defined in file: events.json - * Generated by: Model - *********************************************************/ - -public class RecordingStarted_impl_ari_1_7_0 extends Event_impl_ari_1_7_0 implements RecordingStarted, java.io.Serializable { -private static final long serialVersionUID = 1L; - /** Recording control object */ - private LiveRecording recording; - public LiveRecording getRecording() { - return recording; - } - - @JsonDeserialize( as=LiveRecording_impl_ari_1_7_0.class ) - public void setRecording(LiveRecording val ) { - recording = val; - } - -/** No missing signatures from interface */ -} - diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_7_0/models/SetId_impl_ari_1_7_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_7_0/models/SetId_impl_ari_1_7_0.java deleted file mode 100644 index c7b2c8d2..00000000 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_7_0/models/SetId_impl_ari_1_7_0.java +++ /dev/null @@ -1,48 +0,0 @@ -package ch.loway.oss.ari4java.generated.ari_1_7_0.models; - -// ---------------------------------------------------- -// THIS CLASS WAS GENERATED AUTOMATICALLY -// PLEASE DO NOT EDIT -// Generated on: Tue Dec 19 09:55:49 CET 2017 -// ---------------------------------------------------- - -import ch.loway.oss.ari4java.generated.*; -import com.fasterxml.jackson.databind.annotation.JsonDeserialize; -import java.util.Date; -import java.util.List; -import java.util.Map; - -/********************************************************** - * Effective user/group id - * - * Defined in file: asterisk.json - * Generated by: Model - *********************************************************/ - -public class SetId_impl_ari_1_7_0 implements SetId, java.io.Serializable { -private static final long serialVersionUID = 1L; - /** Effective group id. */ - private String group; - public String getGroup() { - return group; - } - - @JsonDeserialize( as=String.class ) - public void setGroup(String val ) { - group = val; - } - - /** Effective user id. */ - private String user; - public String getUser() { - return user; - } - - @JsonDeserialize( as=String.class ) - public void setUser(String val ) { - user = val; - } - -/** No missing signatures from interface */ -} - diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_7_0/models/Sound_impl_ari_1_7_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_7_0/models/Sound_impl_ari_1_7_0.java deleted file mode 100644 index 6dffff3a..00000000 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_7_0/models/Sound_impl_ari_1_7_0.java +++ /dev/null @@ -1,59 +0,0 @@ -package ch.loway.oss.ari4java.generated.ari_1_7_0.models; - -// ---------------------------------------------------- -// THIS CLASS WAS GENERATED AUTOMATICALLY -// PLEASE DO NOT EDIT -// Generated on: Tue Dec 19 09:55:49 CET 2017 -// ---------------------------------------------------- - -import ch.loway.oss.ari4java.generated.*; -import com.fasterxml.jackson.databind.annotation.JsonDeserialize; -import java.util.Date; -import java.util.List; -import java.util.Map; - -/********************************************************** - * A media file that may be played back. - * - * Defined in file: sounds.json - * Generated by: Model - *********************************************************/ - -public class Sound_impl_ari_1_7_0 implements Sound, java.io.Serializable { -private static final long serialVersionUID = 1L; - /** The formats and languages in which this sound is available. */ - private List formats; - public List getFormats() { - return formats; - } - - @JsonDeserialize( contentAs=FormatLangPair_impl_ari_1_7_0.class ) - public void setFormats(List val ) { - formats = val; - } - - /** Sound's identifier. */ - private String id; - public String getId() { - return id; - } - - @JsonDeserialize( as=String.class ) - public void setId(String val ) { - id = val; - } - - /** Text description of the sound, usually the words spoken. */ - private String text; - public String getText() { - return text; - } - - @JsonDeserialize( as=String.class ) - public void setText(String val ) { - text = val; - } - -/** No missing signatures from interface */ -} - diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_7_0/models/StasisEnd_impl_ari_1_7_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_7_0/models/StasisEnd_impl_ari_1_7_0.java deleted file mode 100644 index aee3e30b..00000000 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_7_0/models/StasisEnd_impl_ari_1_7_0.java +++ /dev/null @@ -1,37 +0,0 @@ -package ch.loway.oss.ari4java.generated.ari_1_7_0.models; - -// ---------------------------------------------------- -// THIS CLASS WAS GENERATED AUTOMATICALLY -// PLEASE DO NOT EDIT -// Generated on: Tue Dec 19 09:55:49 CET 2017 -// ---------------------------------------------------- - -import ch.loway.oss.ari4java.generated.*; -import com.fasterxml.jackson.databind.annotation.JsonDeserialize; -import java.util.Date; -import java.util.List; -import java.util.Map; - -/********************************************************** - * Notification that a channel has left a Stasis application. - * - * Defined in file: events.json - * Generated by: Model - *********************************************************/ - -public class StasisEnd_impl_ari_1_7_0 extends Event_impl_ari_1_7_0 implements StasisEnd, java.io.Serializable { -private static final long serialVersionUID = 1L; - /** */ - private Channel channel; - public Channel getChannel() { - return channel; - } - - @JsonDeserialize( as=Channel_impl_ari_1_7_0.class ) - public void setChannel(Channel val ) { - channel = val; - } - -/** No missing signatures from interface */ -} - diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_7_0/models/StasisStart_impl_ari_1_7_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_7_0/models/StasisStart_impl_ari_1_7_0.java deleted file mode 100644 index c5890e6b..00000000 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_7_0/models/StasisStart_impl_ari_1_7_0.java +++ /dev/null @@ -1,59 +0,0 @@ -package ch.loway.oss.ari4java.generated.ari_1_7_0.models; - -// ---------------------------------------------------- -// THIS CLASS WAS GENERATED AUTOMATICALLY -// PLEASE DO NOT EDIT -// Generated on: Tue Dec 19 09:55:49 CET 2017 -// ---------------------------------------------------- - -import ch.loway.oss.ari4java.generated.*; -import com.fasterxml.jackson.databind.annotation.JsonDeserialize; -import java.util.Date; -import java.util.List; -import java.util.Map; - -/********************************************************** - * Notification that a channel has entered a Stasis application. - * - * Defined in file: events.json - * Generated by: Model - *********************************************************/ - -public class StasisStart_impl_ari_1_7_0 extends Event_impl_ari_1_7_0 implements StasisStart, java.io.Serializable { -private static final long serialVersionUID = 1L; - /** Arguments to the application */ - private List args; - public List getArgs() { - return args; - } - - @JsonDeserialize( contentAs=String.class ) - public void setArgs(List val ) { - args = val; - } - - /** */ - private Channel channel; - public Channel getChannel() { - return channel; - } - - @JsonDeserialize( as=Channel_impl_ari_1_7_0.class ) - public void setChannel(Channel val ) { - channel = val; - } - - /** */ - private Channel replace_channel; - public Channel getReplace_channel() { - return replace_channel; - } - - @JsonDeserialize( as=Channel_impl_ari_1_7_0.class ) - public void setReplace_channel(Channel val ) { - replace_channel = val; - } - -/** No missing signatures from interface */ -} - diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_7_0/models/StatusInfo_impl_ari_1_7_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_7_0/models/StatusInfo_impl_ari_1_7_0.java deleted file mode 100644 index 13ac89e0..00000000 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_7_0/models/StatusInfo_impl_ari_1_7_0.java +++ /dev/null @@ -1,48 +0,0 @@ -package ch.loway.oss.ari4java.generated.ari_1_7_0.models; - -// ---------------------------------------------------- -// THIS CLASS WAS GENERATED AUTOMATICALLY -// PLEASE DO NOT EDIT -// Generated on: Tue Dec 19 09:55:49 CET 2017 -// ---------------------------------------------------- - -import ch.loway.oss.ari4java.generated.*; -import com.fasterxml.jackson.databind.annotation.JsonDeserialize; -import java.util.Date; -import java.util.List; -import java.util.Map; - -/********************************************************** - * Info about Asterisk status - * - * Defined in file: asterisk.json - * Generated by: Model - *********************************************************/ - -public class StatusInfo_impl_ari_1_7_0 implements StatusInfo, java.io.Serializable { -private static final long serialVersionUID = 1L; - /** Time when Asterisk was last reloaded. */ - private Date last_reload_time; - public Date getLast_reload_time() { - return last_reload_time; - } - - @JsonDeserialize( as=Date.class ) - public void setLast_reload_time(Date val ) { - last_reload_time = val; - } - - /** Time when Asterisk was started. */ - private Date startup_time; - public Date getStartup_time() { - return startup_time; - } - - @JsonDeserialize( as=Date.class ) - public void setStartup_time(Date val ) { - startup_time = val; - } - -/** No missing signatures from interface */ -} - diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_7_0/models/StoredRecording_impl_ari_1_7_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_7_0/models/StoredRecording_impl_ari_1_7_0.java deleted file mode 100644 index 1ee86271..00000000 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_7_0/models/StoredRecording_impl_ari_1_7_0.java +++ /dev/null @@ -1,48 +0,0 @@ -package ch.loway.oss.ari4java.generated.ari_1_7_0.models; - -// ---------------------------------------------------- -// THIS CLASS WAS GENERATED AUTOMATICALLY -// PLEASE DO NOT EDIT -// Generated on: Tue Dec 19 09:55:49 CET 2017 -// ---------------------------------------------------- - -import ch.loway.oss.ari4java.generated.*; -import com.fasterxml.jackson.databind.annotation.JsonDeserialize; -import java.util.Date; -import java.util.List; -import java.util.Map; - -/********************************************************** - * A past recording that may be played back. - * - * Defined in file: recordings.json - * Generated by: Model - *********************************************************/ - -public class StoredRecording_impl_ari_1_7_0 implements StoredRecording, java.io.Serializable { -private static final long serialVersionUID = 1L; - /** */ - private String format; - public String getFormat() { - return format; - } - - @JsonDeserialize( as=String.class ) - public void setFormat(String val ) { - format = val; - } - - /** */ - private String name; - public String getName() { - return name; - } - - @JsonDeserialize( as=String.class ) - public void setName(String val ) { - name = val; - } - -/** No missing signatures from interface */ -} - diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_7_0/models/SystemInfo_impl_ari_1_7_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_7_0/models/SystemInfo_impl_ari_1_7_0.java deleted file mode 100644 index 27396f7e..00000000 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_7_0/models/SystemInfo_impl_ari_1_7_0.java +++ /dev/null @@ -1,48 +0,0 @@ -package ch.loway.oss.ari4java.generated.ari_1_7_0.models; - -// ---------------------------------------------------- -// THIS CLASS WAS GENERATED AUTOMATICALLY -// PLEASE DO NOT EDIT -// Generated on: Tue Dec 19 09:55:49 CET 2017 -// ---------------------------------------------------- - -import ch.loway.oss.ari4java.generated.*; -import com.fasterxml.jackson.databind.annotation.JsonDeserialize; -import java.util.Date; -import java.util.List; -import java.util.Map; - -/********************************************************** - * Info about Asterisk - * - * Defined in file: asterisk.json - * Generated by: Model - *********************************************************/ - -public class SystemInfo_impl_ari_1_7_0 implements SystemInfo, java.io.Serializable { -private static final long serialVersionUID = 1L; - /** */ - private String entity_id; - public String getEntity_id() { - return entity_id; - } - - @JsonDeserialize( as=String.class ) - public void setEntity_id(String val ) { - entity_id = val; - } - - /** Asterisk version. */ - private String version; - public String getVersion() { - return version; - } - - @JsonDeserialize( as=String.class ) - public void setVersion(String val ) { - version = val; - } - -/** No missing signatures from interface */ -} - diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_7_0/models/TextMessageReceived_impl_ari_1_7_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_7_0/models/TextMessageReceived_impl_ari_1_7_0.java deleted file mode 100644 index 2bc71ee5..00000000 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_7_0/models/TextMessageReceived_impl_ari_1_7_0.java +++ /dev/null @@ -1,48 +0,0 @@ -package ch.loway.oss.ari4java.generated.ari_1_7_0.models; - -// ---------------------------------------------------- -// THIS CLASS WAS GENERATED AUTOMATICALLY -// PLEASE DO NOT EDIT -// Generated on: Tue Dec 19 09:55:49 CET 2017 -// ---------------------------------------------------- - -import ch.loway.oss.ari4java.generated.*; -import com.fasterxml.jackson.databind.annotation.JsonDeserialize; -import java.util.Date; -import java.util.List; -import java.util.Map; - -/********************************************************** - * A text message was received from an endpoint. - * - * Defined in file: events.json - * Generated by: Model - *********************************************************/ - -public class TextMessageReceived_impl_ari_1_7_0 extends Event_impl_ari_1_7_0 implements TextMessageReceived, java.io.Serializable { -private static final long serialVersionUID = 1L; - /** */ - private Endpoint endpoint; - public Endpoint getEndpoint() { - return endpoint; - } - - @JsonDeserialize( as=Endpoint_impl_ari_1_7_0.class ) - public void setEndpoint(Endpoint val ) { - endpoint = val; - } - - /** */ - private TextMessage message; - public TextMessage getMessage() { - return message; - } - - @JsonDeserialize( as=TextMessage_impl_ari_1_7_0.class ) - public void setMessage(TextMessage val ) { - message = val; - } - -/** No missing signatures from interface */ -} - diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_7_0/models/TextMessageVariable_impl_ari_1_7_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_7_0/models/TextMessageVariable_impl_ari_1_7_0.java deleted file mode 100644 index ca02e837..00000000 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_7_0/models/TextMessageVariable_impl_ari_1_7_0.java +++ /dev/null @@ -1,48 +0,0 @@ -package ch.loway.oss.ari4java.generated.ari_1_7_0.models; - -// ---------------------------------------------------- -// THIS CLASS WAS GENERATED AUTOMATICALLY -// PLEASE DO NOT EDIT -// Generated on: Tue Dec 19 09:55:49 CET 2017 -// ---------------------------------------------------- - -import ch.loway.oss.ari4java.generated.*; -import com.fasterxml.jackson.databind.annotation.JsonDeserialize; -import java.util.Date; -import java.util.List; -import java.util.Map; - -/********************************************************** - * A key/value pair variable in a text message. - * - * Defined in file: endpoints.json - * Generated by: Model - *********************************************************/ - -public class TextMessageVariable_impl_ari_1_7_0 implements TextMessageVariable, java.io.Serializable { -private static final long serialVersionUID = 1L; - /** A unique key identifying the variable. */ - private String key; - public String getKey() { - return key; - } - - @JsonDeserialize( as=String.class ) - public void setKey(String val ) { - key = val; - } - - /** The value of the variable. */ - private String value; - public String getValue() { - return value; - } - - @JsonDeserialize( as=String.class ) - public void setValue(String val ) { - value = val; - } - -/** No missing signatures from interface */ -} - diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_7_0/models/TextMessage_impl_ari_1_7_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_7_0/models/TextMessage_impl_ari_1_7_0.java deleted file mode 100644 index 5f52255f..00000000 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_7_0/models/TextMessage_impl_ari_1_7_0.java +++ /dev/null @@ -1,70 +0,0 @@ -package ch.loway.oss.ari4java.generated.ari_1_7_0.models; - -// ---------------------------------------------------- -// THIS CLASS WAS GENERATED AUTOMATICALLY -// PLEASE DO NOT EDIT -// Generated on: Tue Dec 19 09:55:49 CET 2017 -// ---------------------------------------------------- - -import ch.loway.oss.ari4java.generated.*; -import com.fasterxml.jackson.databind.annotation.JsonDeserialize; -import java.util.Date; -import java.util.List; -import java.util.Map; - -/********************************************************** - * A text message. - * - * Defined in file: endpoints.json - * Generated by: Model - *********************************************************/ - -public class TextMessage_impl_ari_1_7_0 implements TextMessage, java.io.Serializable { -private static final long serialVersionUID = 1L; - /** The text of the message. */ - private String body; - public String getBody() { - return body; - } - - @JsonDeserialize( as=String.class ) - public void setBody(String val ) { - body = val; - } - - /** A technology specific URI specifying the source of the message. For sip and pjsip technologies, any SIP URI can be specified. For xmpp, the URI must correspond to the client connection being used to send the message. */ - private String from; - public String getFrom() { - return from; - } - - @JsonDeserialize( as=String.class ) - public void setFrom(String val ) { - from = val; - } - - /** A technology specific URI specifying the destination of the message. Valid technologies include sip, pjsip, and xmp. The destination of a message should be an endpoint. */ - private String to; - public String getTo() { - return to; - } - - @JsonDeserialize( as=String.class ) - public void setTo(String val ) { - to = val; - } - - /** Technology specific key/value pairs associated with the message. */ - private List variables; - public List getVariables() { - return variables; - } - - @JsonDeserialize( contentAs=TextMessageVariable_impl_ari_1_7_0.class ) - public void setVariables(List val ) { - variables = val; - } - -/** No missing signatures from interface */ -} - diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_7_0/models/Variable_impl_ari_1_7_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_7_0/models/Variable_impl_ari_1_7_0.java deleted file mode 100644 index b2ce795c..00000000 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_7_0/models/Variable_impl_ari_1_7_0.java +++ /dev/null @@ -1,37 +0,0 @@ -package ch.loway.oss.ari4java.generated.ari_1_7_0.models; - -// ---------------------------------------------------- -// THIS CLASS WAS GENERATED AUTOMATICALLY -// PLEASE DO NOT EDIT -// Generated on: Tue Dec 19 09:55:49 CET 2017 -// ---------------------------------------------------- - -import ch.loway.oss.ari4java.generated.*; -import com.fasterxml.jackson.databind.annotation.JsonDeserialize; -import java.util.Date; -import java.util.List; -import java.util.Map; - -/********************************************************** - * The value of a channel variable - * - * Defined in file: asterisk.json - * Generated by: Model - *********************************************************/ - -public class Variable_impl_ari_1_7_0 implements Variable, java.io.Serializable { -private static final long serialVersionUID = 1L; - /** The value of the variable requested */ - private String value; - public String getValue() { - return value; - } - - @JsonDeserialize( as=String.class ) - public void setValue(String val ) { - value = val; - } - -/** No missing signatures from interface */ -} - diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_8_0/AriBuilder_impl_ari_1_8_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_8_0/AriBuilder_impl_ari_1_8_0.java deleted file mode 100644 index 845cf26d..00000000 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_8_0/AriBuilder_impl_ari_1_8_0.java +++ /dev/null @@ -1,328 +0,0 @@ -package ch.loway.oss.ari4java.generated.ari_1_8_0; - -// ---------------------------------------------------- -// THIS CLASS WAS GENERATED AUTOMATICALLY -// PLEASE DO NOT EDIT -// Generated on: Tue Dec 19 09:55:50 CET 2017 -// ---------------------------------------------------- - -import ch.loway.oss.ari4java.generated.ari_1_8_0.models.*; -import ch.loway.oss.ari4java.generated.ari_1_8_0.actions.*; -import ch.loway.oss.ari4java.generated.*; -import ch.loway.oss.ari4java.ARI; - -public class AriBuilder_impl_ari_1_8_0 implements AriBuilder { - -public ActionAsterisk actionAsterisk() { - return new ActionAsterisk_impl_ari_1_8_0(); - }; - -public ActionDeviceStates actionDeviceStates() { - return new ActionDeviceStates_impl_ari_1_8_0(); - }; - -public ActionBridges actionBridges() { - return new ActionBridges_impl_ari_1_8_0(); - }; - -public ActionPlaybacks actionPlaybacks() { - return new ActionPlaybacks_impl_ari_1_8_0(); - }; - -public ActionRecordings actionRecordings() { - return new ActionRecordings_impl_ari_1_8_0(); - }; - -public ActionSounds actionSounds() { - return new ActionSounds_impl_ari_1_8_0(); - }; - -public ActionChannels actionChannels() { - return new ActionChannels_impl_ari_1_8_0(); - }; - -public ActionEvents actionEvents() { - return new ActionEvents_impl_ari_1_8_0(); - }; - -public ActionEndpoints actionEndpoints() { - return new ActionEndpoints_impl_ari_1_8_0(); - }; - -public ActionApplications actionApplications() { - return new ActionApplications_impl_ari_1_8_0(); - }; - -public ChannelLeftBridge channelLeftBridge() { - return new ChannelLeftBridge_impl_ari_1_8_0(); - }; - -public TextMessage textMessage() { - return new TextMessage_impl_ari_1_8_0(); - }; - -public RecordingFailed recordingFailed() { - return new RecordingFailed_impl_ari_1_8_0(); - }; - -public BridgeBlindTransfer bridgeBlindTransfer() { - return new BridgeBlindTransfer_impl_ari_1_8_0(); - }; - -public Module module() { - return new Module_impl_ari_1_8_0(); - }; - -public ChannelHangupRequest channelHangupRequest() { - return new ChannelHangupRequest_impl_ari_1_8_0(); - }; - -public BridgeCreated bridgeCreated() { - return new BridgeCreated_impl_ari_1_8_0(); - }; - -public RecordingStarted recordingStarted() { - return new RecordingStarted_impl_ari_1_8_0(); - }; - -public DeviceStateChanged deviceStateChanged() { - return new DeviceStateChanged_impl_ari_1_8_0(); - }; - -public BridgeAttendedTransfer bridgeAttendedTransfer() { - return new BridgeAttendedTransfer_impl_ari_1_8_0(); - }; - -public ChannelStateChange channelStateChange() { - return new ChannelStateChange_impl_ari_1_8_0(); - }; - -public ChannelDtmfReceived channelDtmfReceived() { - return new ChannelDtmfReceived_impl_ari_1_8_0(); - }; - -public MissingParams missingParams() { - return new MissingParams_impl_ari_1_8_0(); - }; - -public ChannelTalkingFinished channelTalkingFinished() { - return new ChannelTalkingFinished_impl_ari_1_8_0(); - }; - -public LiveRecording liveRecording() { - return new LiveRecording_impl_ari_1_8_0(); - }; - -public ChannelCallerId channelCallerId() { - return new ChannelCallerId_impl_ari_1_8_0(); - }; - -public Variable variable() { - return new Variable_impl_ari_1_8_0(); - }; - -public BridgeDestroyed bridgeDestroyed() { - return new BridgeDestroyed_impl_ari_1_8_0(); - }; - -public AsteriskInfo asteriskInfo() { - return new AsteriskInfo_impl_ari_1_8_0(); - }; - -public ChannelHold channelHold() { - return new ChannelHold_impl_ari_1_8_0(); - }; - -public ChannelConnectedLine channelConnectedLine() { - return new ChannelConnectedLine_impl_ari_1_8_0(); - }; - -public DialplanCEP dialplanCEP() { - return new DialplanCEP_impl_ari_1_8_0(); - }; - -public Event event() { - return new Event_impl_ari_1_8_0(); - }; - -public ChannelVarset channelVarset() { - return new ChannelVarset_impl_ari_1_8_0(); - }; - -public Playback playback() { - return new Playback_impl_ari_1_8_0(); - }; - -public ChannelUnhold channelUnhold() { - return new ChannelUnhold_impl_ari_1_8_0(); - }; - -public RecordingFinished recordingFinished() { - return new RecordingFinished_impl_ari_1_8_0(); - }; - -public StatusInfo statusInfo() { - return new StatusInfo_impl_ari_1_8_0(); - }; - -public SystemInfo systemInfo() { - return new SystemInfo_impl_ari_1_8_0(); - }; - -public ConfigInfo configInfo() { - return new ConfigInfo_impl_ari_1_8_0(); - }; - -public BuildInfo buildInfo() { - return new BuildInfo_impl_ari_1_8_0(); - }; - -public Dialed dialed() { - return new Dialed_impl_ari_1_8_0(); - }; - -public ConfigTuple configTuple() { - return new ConfigTuple_impl_ari_1_8_0(); - }; - -public StasisStart stasisStart() { - return new StasisStart_impl_ari_1_8_0(); - }; - -public ChannelEnteredBridge channelEnteredBridge() { - return new ChannelEnteredBridge_impl_ari_1_8_0(); - }; - -public TextMessageVariable textMessageVariable() { - return new TextMessageVariable_impl_ari_1_8_0(); - }; - -public SetId setId() { - return new SetId_impl_ari_1_8_0(); - }; - -public TextMessageReceived textMessageReceived() { - return new TextMessageReceived_impl_ari_1_8_0(); - }; - -public StasisEnd stasisEnd() { - return new StasisEnd_impl_ari_1_8_0(); - }; - -public PlaybackStarted playbackStarted() { - return new PlaybackStarted_impl_ari_1_8_0(); - }; - -public Dial dial() { - return new Dial_impl_ari_1_8_0(); - }; - -public PlaybackFinished playbackFinished() { - return new PlaybackFinished_impl_ari_1_8_0(); - }; - -public ChannelDialplan channelDialplan() { - return new ChannelDialplan_impl_ari_1_8_0(); - }; - -public EndpointStateChange endpointStateChange() { - return new EndpointStateChange_impl_ari_1_8_0(); - }; - -public ChannelTalkingStarted channelTalkingStarted() { - return new ChannelTalkingStarted_impl_ari_1_8_0(); - }; - -public ChannelDestroyed channelDestroyed() { - return new ChannelDestroyed_impl_ari_1_8_0(); - }; - -public Bridge bridge() { - return new Bridge_impl_ari_1_8_0(); - }; - -public Sound sound() { - return new Sound_impl_ari_1_8_0(); - }; - -public ChannelUserevent channelUserevent() { - return new ChannelUserevent_impl_ari_1_8_0(); - }; - -public Message message() { - return new Message_impl_ari_1_8_0(); - }; - -public DeviceState deviceState() { - return new DeviceState_impl_ari_1_8_0(); - }; - -public ChannelCreated channelCreated() { - return new ChannelCreated_impl_ari_1_8_0(); - }; - -public ApplicationReplaced applicationReplaced() { - return new ApplicationReplaced_impl_ari_1_8_0(); - }; - -public Channel channel() { - return new Channel_impl_ari_1_8_0(); - }; - -public Endpoint endpoint() { - return new Endpoint_impl_ari_1_8_0(); - }; - -public Application application() { - return new Application_impl_ari_1_8_0(); - }; - -public CallerID callerID() { - return new CallerID_impl_ari_1_8_0(); - }; - -public FormatLangPair formatLangPair() { - return new FormatLangPair_impl_ari_1_8_0(); - }; - -public BridgeMerged bridgeMerged() { - return new BridgeMerged_impl_ari_1_8_0(); - }; - -public StoredRecording storedRecording() { - return new StoredRecording_impl_ari_1_8_0(); - }; - -public BridgeVideoSourceChanged bridgeVideoSourceChanged() { - throw new UnsupportedOperationException(); - }; - -public ContactInfo contactInfo() { - throw new UnsupportedOperationException(); - }; - -public ContactStatusChange contactStatusChange() { - throw new UnsupportedOperationException(); - }; - -public LogChannel logChannel() { - throw new UnsupportedOperationException(); - }; - -public Peer peer() { - throw new UnsupportedOperationException(); - }; - -public PeerStatusChange peerStatusChange() { - throw new UnsupportedOperationException(); - }; - -public PlaybackContinuing playbackContinuing() { - throw new UnsupportedOperationException(); - }; - -public ARI.ClassFactory getClassFactory() { - return new ClassTranslator_impl_ari_1_8_0(); -}; - -}; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_8_0/ClassTranslator_impl_ari_1_8_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_8_0/ClassTranslator_impl_ari_1_8_0.java deleted file mode 100644 index c1a9b6bb..00000000 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_8_0/ClassTranslator_impl_ari_1_8_0.java +++ /dev/null @@ -1,307 +0,0 @@ -package ch.loway.oss.ari4java.generated.ari_1_8_0; - -// ---------------------------------------------------- -// THIS CLASS WAS GENERATED AUTOMATICALLY -// PLEASE DO NOT EDIT -// Generated on: Tue Dec 19 09:55:50 CET 2017 -// ---------------------------------------------------- - -import ch.loway.oss.ari4java.ARI; -import ch.loway.oss.ari4java.generated.*; -import ch.loway.oss.ari4java.generated.ari_1_8_0.models.*; -import ch.loway.oss.ari4java.generated.ari_1_8_0.actions.*; - -/********************************************************** - * This is a class translator. - *********************************************************/ -public class ClassTranslator_impl_ari_1_8_0 implements ARI.ClassFactory { - - @Override - public Class getImplementationFor(Class interfaceClass) { - - if ( interfaceClass.equals(ActionApplications.class) ) { - return (ActionApplications_impl_ari_1_8_0.class); - } else - - if ( interfaceClass.equals(ActionAsterisk.class) ) { - return (ActionAsterisk_impl_ari_1_8_0.class); - } else - - if ( interfaceClass.equals(ActionBridges.class) ) { - return (ActionBridges_impl_ari_1_8_0.class); - } else - - if ( interfaceClass.equals(ActionChannels.class) ) { - return (ActionChannels_impl_ari_1_8_0.class); - } else - - if ( interfaceClass.equals(ActionDeviceStates.class) ) { - return (ActionDeviceStates_impl_ari_1_8_0.class); - } else - - if ( interfaceClass.equals(ActionEndpoints.class) ) { - return (ActionEndpoints_impl_ari_1_8_0.class); - } else - - if ( interfaceClass.equals(ActionEvents.class) ) { - return (ActionEvents_impl_ari_1_8_0.class); - } else - - if ( interfaceClass.equals(ActionPlaybacks.class) ) { - return (ActionPlaybacks_impl_ari_1_8_0.class); - } else - - if ( interfaceClass.equals(ActionRecordings.class) ) { - return (ActionRecordings_impl_ari_1_8_0.class); - } else - - if ( interfaceClass.equals(ActionSounds.class) ) { - return (ActionSounds_impl_ari_1_8_0.class); - } else - - if ( interfaceClass.equals(Application.class) ) { - return (Application_impl_ari_1_8_0.class); - } else - - if ( interfaceClass.equals(ApplicationReplaced.class) ) { - return (ApplicationReplaced_impl_ari_1_8_0.class); - } else - - if ( interfaceClass.equals(AsteriskInfo.class) ) { - return (AsteriskInfo_impl_ari_1_8_0.class); - } else - - if ( interfaceClass.equals(Bridge.class) ) { - return (Bridge_impl_ari_1_8_0.class); - } else - - if ( interfaceClass.equals(BridgeAttendedTransfer.class) ) { - return (BridgeAttendedTransfer_impl_ari_1_8_0.class); - } else - - if ( interfaceClass.equals(BridgeBlindTransfer.class) ) { - return (BridgeBlindTransfer_impl_ari_1_8_0.class); - } else - - if ( interfaceClass.equals(BridgeCreated.class) ) { - return (BridgeCreated_impl_ari_1_8_0.class); - } else - - if ( interfaceClass.equals(BridgeDestroyed.class) ) { - return (BridgeDestroyed_impl_ari_1_8_0.class); - } else - - if ( interfaceClass.equals(BridgeMerged.class) ) { - return (BridgeMerged_impl_ari_1_8_0.class); - } else - - if ( interfaceClass.equals(BuildInfo.class) ) { - return (BuildInfo_impl_ari_1_8_0.class); - } else - - if ( interfaceClass.equals(CallerID.class) ) { - return (CallerID_impl_ari_1_8_0.class); - } else - - if ( interfaceClass.equals(Channel.class) ) { - return (Channel_impl_ari_1_8_0.class); - } else - - if ( interfaceClass.equals(ChannelCallerId.class) ) { - return (ChannelCallerId_impl_ari_1_8_0.class); - } else - - if ( interfaceClass.equals(ChannelConnectedLine.class) ) { - return (ChannelConnectedLine_impl_ari_1_8_0.class); - } else - - if ( interfaceClass.equals(ChannelCreated.class) ) { - return (ChannelCreated_impl_ari_1_8_0.class); - } else - - if ( interfaceClass.equals(ChannelDestroyed.class) ) { - return (ChannelDestroyed_impl_ari_1_8_0.class); - } else - - if ( interfaceClass.equals(ChannelDialplan.class) ) { - return (ChannelDialplan_impl_ari_1_8_0.class); - } else - - if ( interfaceClass.equals(ChannelDtmfReceived.class) ) { - return (ChannelDtmfReceived_impl_ari_1_8_0.class); - } else - - if ( interfaceClass.equals(ChannelEnteredBridge.class) ) { - return (ChannelEnteredBridge_impl_ari_1_8_0.class); - } else - - if ( interfaceClass.equals(ChannelHangupRequest.class) ) { - return (ChannelHangupRequest_impl_ari_1_8_0.class); - } else - - if ( interfaceClass.equals(ChannelHold.class) ) { - return (ChannelHold_impl_ari_1_8_0.class); - } else - - if ( interfaceClass.equals(ChannelLeftBridge.class) ) { - return (ChannelLeftBridge_impl_ari_1_8_0.class); - } else - - if ( interfaceClass.equals(ChannelStateChange.class) ) { - return (ChannelStateChange_impl_ari_1_8_0.class); - } else - - if ( interfaceClass.equals(ChannelTalkingFinished.class) ) { - return (ChannelTalkingFinished_impl_ari_1_8_0.class); - } else - - if ( interfaceClass.equals(ChannelTalkingStarted.class) ) { - return (ChannelTalkingStarted_impl_ari_1_8_0.class); - } else - - if ( interfaceClass.equals(ChannelUnhold.class) ) { - return (ChannelUnhold_impl_ari_1_8_0.class); - } else - - if ( interfaceClass.equals(ChannelUserevent.class) ) { - return (ChannelUserevent_impl_ari_1_8_0.class); - } else - - if ( interfaceClass.equals(ChannelVarset.class) ) { - return (ChannelVarset_impl_ari_1_8_0.class); - } else - - if ( interfaceClass.equals(ConfigInfo.class) ) { - return (ConfigInfo_impl_ari_1_8_0.class); - } else - - if ( interfaceClass.equals(ConfigTuple.class) ) { - return (ConfigTuple_impl_ari_1_8_0.class); - } else - - if ( interfaceClass.equals(DeviceState.class) ) { - return (DeviceState_impl_ari_1_8_0.class); - } else - - if ( interfaceClass.equals(DeviceStateChanged.class) ) { - return (DeviceStateChanged_impl_ari_1_8_0.class); - } else - - if ( interfaceClass.equals(Dial.class) ) { - return (Dial_impl_ari_1_8_0.class); - } else - - if ( interfaceClass.equals(Dialed.class) ) { - return (Dialed_impl_ari_1_8_0.class); - } else - - if ( interfaceClass.equals(DialplanCEP.class) ) { - return (DialplanCEP_impl_ari_1_8_0.class); - } else - - if ( interfaceClass.equals(Endpoint.class) ) { - return (Endpoint_impl_ari_1_8_0.class); - } else - - if ( interfaceClass.equals(EndpointStateChange.class) ) { - return (EndpointStateChange_impl_ari_1_8_0.class); - } else - - if ( interfaceClass.equals(Event.class) ) { - return (Event_impl_ari_1_8_0.class); - } else - - if ( interfaceClass.equals(FormatLangPair.class) ) { - return (FormatLangPair_impl_ari_1_8_0.class); - } else - - if ( interfaceClass.equals(LiveRecording.class) ) { - return (LiveRecording_impl_ari_1_8_0.class); - } else - - if ( interfaceClass.equals(Message.class) ) { - return (Message_impl_ari_1_8_0.class); - } else - - if ( interfaceClass.equals(MissingParams.class) ) { - return (MissingParams_impl_ari_1_8_0.class); - } else - - if ( interfaceClass.equals(Module.class) ) { - return (Module_impl_ari_1_8_0.class); - } else - - if ( interfaceClass.equals(Playback.class) ) { - return (Playback_impl_ari_1_8_0.class); - } else - - if ( interfaceClass.equals(PlaybackFinished.class) ) { - return (PlaybackFinished_impl_ari_1_8_0.class); - } else - - if ( interfaceClass.equals(PlaybackStarted.class) ) { - return (PlaybackStarted_impl_ari_1_8_0.class); - } else - - if ( interfaceClass.equals(RecordingFailed.class) ) { - return (RecordingFailed_impl_ari_1_8_0.class); - } else - - if ( interfaceClass.equals(RecordingFinished.class) ) { - return (RecordingFinished_impl_ari_1_8_0.class); - } else - - if ( interfaceClass.equals(RecordingStarted.class) ) { - return (RecordingStarted_impl_ari_1_8_0.class); - } else - - if ( interfaceClass.equals(SetId.class) ) { - return (SetId_impl_ari_1_8_0.class); - } else - - if ( interfaceClass.equals(Sound.class) ) { - return (Sound_impl_ari_1_8_0.class); - } else - - if ( interfaceClass.equals(StasisEnd.class) ) { - return (StasisEnd_impl_ari_1_8_0.class); - } else - - if ( interfaceClass.equals(StasisStart.class) ) { - return (StasisStart_impl_ari_1_8_0.class); - } else - - if ( interfaceClass.equals(StatusInfo.class) ) { - return (StatusInfo_impl_ari_1_8_0.class); - } else - - if ( interfaceClass.equals(StoredRecording.class) ) { - return (StoredRecording_impl_ari_1_8_0.class); - } else - - if ( interfaceClass.equals(SystemInfo.class) ) { - return (SystemInfo_impl_ari_1_8_0.class); - } else - - if ( interfaceClass.equals(TextMessage.class) ) { - return (TextMessage_impl_ari_1_8_0.class); - } else - - if ( interfaceClass.equals(TextMessageReceived.class) ) { - return (TextMessageReceived_impl_ari_1_8_0.class); - } else - - if ( interfaceClass.equals(TextMessageVariable.class) ) { - return (TextMessageVariable_impl_ari_1_8_0.class); - } else - - if ( interfaceClass.equals(Variable.class) ) { - return (Variable_impl_ari_1_8_0.class); - } else - { - return null; - } - } -} - - diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_8_0/actions/ActionApplications_impl_ari_1_8_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_8_0/actions/ActionApplications_impl_ari_1_8_0.java deleted file mode 100644 index e35ad7da..00000000 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_8_0/actions/ActionApplications_impl_ari_1_8_0.java +++ /dev/null @@ -1,140 +0,0 @@ -package ch.loway.oss.ari4java.generated.ari_1_8_0.actions; - -// ---------------------------------------------------- -// THIS CLASS WAS GENERATED AUTOMATICALLY -// PLEASE DO NOT EDIT -// Generated on: Tue Dec 19 09:55:49 CET 2017 -// ---------------------------------------------------- - -import ch.loway.oss.ari4java.generated.*; -import java.util.Date; -import java.util.List; -import java.util.Map; -import java.util.ArrayList; -import ch.loway.oss.ari4java.tools.BaseAriAction; -import ch.loway.oss.ari4java.tools.RestException; -import ch.loway.oss.ari4java.tools.AriCallback; -import ch.loway.oss.ari4java.tools.HttpParam; -import ch.loway.oss.ari4java.tools.HttpResponse; -import com.fasterxml.jackson.core.type.TypeReference; -import ch.loway.oss.ari4java.generated.ari_1_8_0.models.*; - -/********************************************************** - * - * Generated by: Apis - *********************************************************/ - - -public class ActionApplications_impl_ari_1_8_0 extends BaseAriAction implements ActionApplications { -/********************************************************** - * Stasis applications - * - * List all applications. - *********************************************************/ -private void buildList() { -reset(); -url = "/applications"; -method = "GET"; -} - -@Override -public List list() throws RestException { -buildList(); -String json = httpActionSync(); -return deserializeJsonAsAbstractList( json, - new TypeReference>() {} ); -} - -@Override -public void list(AriCallback> callback) { -buildList(); -httpActionAsync(callback, new TypeReference>() {}); -} - -/********************************************************** - * Stasis application - * - * Get details of an application. - *********************************************************/ -private void buildGet(String applicationName) { -reset(); -url = "/applications/" + applicationName + ""; -method = "GET"; -lE.add( HttpResponse.build( 404, "Application does not exist.") ); -} - -@Override -public Application get(String applicationName) throws RestException { -buildGet(applicationName); -String json = httpActionSync(); -return deserializeJson( json, Application_impl_ari_1_8_0.class ); -} - -@Override -public void get(String applicationName, AriCallback callback) { -buildGet(applicationName); -httpActionAsync(callback, Application_impl_ari_1_8_0.class); -} - -/********************************************************** - * Stasis application - * - * Subscribe an application to a event source. - * Returns the state of the application after the subscriptions have changed - *********************************************************/ -private void buildSubscribe(String applicationName, String eventSource) { -reset(); -url = "/applications/" + applicationName + "/subscription"; -method = "POST"; -lParamQuery.add( HttpParam.build( "eventSource", eventSource) ); -lE.add( HttpResponse.build( 400, "Missing parameter.") ); -lE.add( HttpResponse.build( 404, "Application does not exist.") ); -lE.add( HttpResponse.build( 422, "Event source does not exist.") ); -} - -@Override -public Application subscribe(String applicationName, String eventSource) throws RestException { -buildSubscribe(applicationName, eventSource); -String json = httpActionSync(); -return deserializeJson( json, Application_impl_ari_1_8_0.class ); -} - -@Override -public void subscribe(String applicationName, String eventSource, AriCallback callback) { -buildSubscribe(applicationName, eventSource); -httpActionAsync(callback, Application_impl_ari_1_8_0.class); -} - -/********************************************************** - * Stasis application - * - * Unsubscribe an application from an event source. - * Returns the state of the application after the subscriptions have changed - *********************************************************/ -private void buildUnsubscribe(String applicationName, String eventSource) { -reset(); -url = "/applications/" + applicationName + "/subscription"; -method = "DELETE"; -lParamQuery.add( HttpParam.build( "eventSource", eventSource) ); -lE.add( HttpResponse.build( 400, "Missing parameter; event source scheme not recognized.") ); -lE.add( HttpResponse.build( 404, "Application does not exist.") ); -lE.add( HttpResponse.build( 409, "Application not subscribed to event source.") ); -lE.add( HttpResponse.build( 422, "Event source does not exist.") ); -} - -@Override -public Application unsubscribe(String applicationName, String eventSource) throws RestException { -buildUnsubscribe(applicationName, eventSource); -String json = httpActionSync(); -return deserializeJson( json, Application_impl_ari_1_8_0.class ); -} - -@Override -public void unsubscribe(String applicationName, String eventSource, AriCallback callback) { -buildUnsubscribe(applicationName, eventSource); -httpActionAsync(callback, Application_impl_ari_1_8_0.class); -} - -/** No missing signatures from interface */ -}; - diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_8_0/actions/ActionAsterisk_impl_ari_1_8_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_8_0/actions/ActionAsterisk_impl_ari_1_8_0.java deleted file mode 100644 index de007ffa..00000000 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_8_0/actions/ActionAsterisk_impl_ari_1_8_0.java +++ /dev/null @@ -1,388 +0,0 @@ -package ch.loway.oss.ari4java.generated.ari_1_8_0.actions; - -// ---------------------------------------------------- -// THIS CLASS WAS GENERATED AUTOMATICALLY -// PLEASE DO NOT EDIT -// Generated on: Tue Dec 19 09:55:49 CET 2017 -// ---------------------------------------------------- - -import ch.loway.oss.ari4java.generated.*; -import java.util.Date; -import java.util.List; -import java.util.Map; -import java.util.ArrayList; -import ch.loway.oss.ari4java.tools.BaseAriAction; -import ch.loway.oss.ari4java.tools.RestException; -import ch.loway.oss.ari4java.tools.AriCallback; -import ch.loway.oss.ari4java.tools.HttpParam; -import ch.loway.oss.ari4java.tools.HttpResponse; -import com.fasterxml.jackson.core.type.TypeReference; -import ch.loway.oss.ari4java.generated.ari_1_8_0.models.*; - -/********************************************************** - * - * Generated by: Apis - *********************************************************/ - - -public class ActionAsterisk_impl_ari_1_8_0 extends BaseAriAction implements ActionAsterisk { -/********************************************************** - * Asterisk dynamic configuration - * - * Retrieve a dynamic configuration object. - *********************************************************/ -private void buildGetObject(String configClass, String objectType, String id) { -reset(); -url = "/asterisk/config/dynamic/" + configClass + "/" + objectType + "/" + id + ""; -method = "GET"; -lE.add( HttpResponse.build( 404, "{configClass|objectType|id} not found") ); -} - -@Override -public List getObject(String configClass, String objectType, String id) throws RestException { -buildGetObject(configClass, objectType, id); -String json = httpActionSync(); -return deserializeJsonAsAbstractList( json, - new TypeReference>() {} ); -} - -@Override -public void getObject(String configClass, String objectType, String id, AriCallback> callback) { -buildGetObject(configClass, objectType, id); -httpActionAsync(callback, new TypeReference>() {}); -} - -/********************************************************** - * Asterisk dynamic configuration - * - * Create or update a dynamic configuration object. - *********************************************************/ -private void buildUpdateObject(String configClass, String objectType, String id, Map fields) { -reset(); -url = "/asterisk/config/dynamic/" + configClass + "/" + objectType + "/" + id + ""; -method = "PUT"; -lParamBody.addAll( HttpParam.build( "fields", fields) ); -lE.add( HttpResponse.build( 400, "Bad request body") ); -lE.add( HttpResponse.build( 403, "Could not create or update object") ); -lE.add( HttpResponse.build( 404, "{configClass|objectType} not found") ); -} - -@Override -public List updateObject(String configClass, String objectType, String id, Map fields) throws RestException { -buildUpdateObject(configClass, objectType, id, fields); -String json = httpActionSync(); -return deserializeJsonAsAbstractList( json, - new TypeReference>() {} ); -} - -@Override -public void updateObject(String configClass, String objectType, String id, Map fields, AriCallback> callback) { -buildUpdateObject(configClass, objectType, id, fields); -httpActionAsync(callback, new TypeReference>() {}); -} - -/********************************************************** - * Asterisk dynamic configuration - * - * Delete a dynamic configuration object. - *********************************************************/ -private void buildDeleteObject(String configClass, String objectType, String id) { -reset(); -url = "/asterisk/config/dynamic/" + configClass + "/" + objectType + "/" + id + ""; -method = "DELETE"; -lE.add( HttpResponse.build( 403, "Could not delete object") ); -lE.add( HttpResponse.build( 404, "{configClass|objectType|id} not found") ); -} - -@Override -public void deleteObject(String configClass, String objectType, String id) throws RestException { -buildDeleteObject(configClass, objectType, id); -String json = httpActionSync(); -} - -@Override -public void deleteObject(String configClass, String objectType, String id, AriCallback callback) { -buildDeleteObject(configClass, objectType, id); -httpActionAsync(callback); -} - -/********************************************************** - * Asterisk system information (similar to core show settings) - * - * Gets Asterisk system information. - *********************************************************/ -private void buildGetInfo(String only) { -reset(); -url = "/asterisk/info"; -method = "GET"; -lParamQuery.add( HttpParam.build( "only", only) ); -} - -@Override -public AsteriskInfo getInfo(String only) throws RestException { -buildGetInfo(only); -String json = httpActionSync(); -return deserializeJson( json, AsteriskInfo_impl_ari_1_8_0.class ); -} - -@Override -public void getInfo(String only, AriCallback callback) { -buildGetInfo(only); -httpActionAsync(callback, AsteriskInfo_impl_ari_1_8_0.class); -} - -/********************************************************** - * Asterisk modules - * - * List Asterisk modules. - *********************************************************/ -private void buildListModules() { -reset(); -url = "/asterisk/modules"; -method = "GET"; -} - -@Override -public List listModules() throws RestException { -buildListModules(); -String json = httpActionSync(); -return deserializeJsonAsAbstractList( json, - new TypeReference>() {} ); -} - -@Override -public void listModules(AriCallback> callback) { -buildListModules(); -httpActionAsync(callback, new TypeReference>() {}); -} - -/********************************************************** - * Asterisk module - * - * Get Asterisk module information. - *********************************************************/ -private void buildGetModule(String moduleName) { -reset(); -url = "/asterisk/modules/" + moduleName + ""; -method = "GET"; -lE.add( HttpResponse.build( 404, "Module could not be found in running modules.") ); -lE.add( HttpResponse.build( 409, "Module information could not be retrieved.") ); -} - -@Override -public Module getModule(String moduleName) throws RestException { -buildGetModule(moduleName); -String json = httpActionSync(); -return deserializeJson( json, Module_impl_ari_1_8_0.class ); -} - -@Override -public void getModule(String moduleName, AriCallback callback) { -buildGetModule(moduleName); -httpActionAsync(callback, Module_impl_ari_1_8_0.class); -} - -/********************************************************** - * Asterisk module - * - * Load an Asterisk module. - *********************************************************/ -private void buildLoadModule(String moduleName) { -reset(); -url = "/asterisk/modules/" + moduleName + ""; -method = "POST"; -lE.add( HttpResponse.build( 409, "Module could not be loaded.") ); -} - -@Override -public void loadModule(String moduleName) throws RestException { -buildLoadModule(moduleName); -String json = httpActionSync(); -} - -@Override -public void loadModule(String moduleName, AriCallback callback) { -buildLoadModule(moduleName); -httpActionAsync(callback); -} - -/********************************************************** - * Asterisk module - * - * Unload an Asterisk module. - *********************************************************/ -private void buildUnloadModule(String moduleName) { -reset(); -url = "/asterisk/modules/" + moduleName + ""; -method = "DELETE"; -lE.add( HttpResponse.build( 404, "Module not found in running modules.") ); -lE.add( HttpResponse.build( 409, "Module could not be unloaded.") ); -} - -@Override -public void unloadModule(String moduleName) throws RestException { -buildUnloadModule(moduleName); -String json = httpActionSync(); -} - -@Override -public void unloadModule(String moduleName, AriCallback callback) { -buildUnloadModule(moduleName); -httpActionAsync(callback); -} - -/********************************************************** - * Asterisk module - * - * Reload an Asterisk module. - *********************************************************/ -private void buildReloadModule(String moduleName) { -reset(); -url = "/asterisk/modules/" + moduleName + ""; -method = "PUT"; -lE.add( HttpResponse.build( 404, "Module not found in running modules.") ); -lE.add( HttpResponse.build( 409, "Module could not be reloaded.") ); -} - -@Override -public void reloadModule(String moduleName) throws RestException { -buildReloadModule(moduleName); -String json = httpActionSync(); -} - -@Override -public void reloadModule(String moduleName, AriCallback callback) { -buildReloadModule(moduleName); -httpActionAsync(callback); -} - -/********************************************************** - * Global variables - * - * Get the value of a global variable. - *********************************************************/ -private void buildGetGlobalVar(String variable) { -reset(); -url = "/asterisk/variable"; -method = "GET"; -lParamQuery.add( HttpParam.build( "variable", variable) ); -lE.add( HttpResponse.build( 400, "Missing variable parameter.") ); -} - -@Override -public Variable getGlobalVar(String variable) throws RestException { -buildGetGlobalVar(variable); -String json = httpActionSync(); -return deserializeJson( json, Variable_impl_ari_1_8_0.class ); -} - -@Override -public void getGlobalVar(String variable, AriCallback callback) { -buildGetGlobalVar(variable); -httpActionAsync(callback, Variable_impl_ari_1_8_0.class); -} - -/********************************************************** - * Global variables - * - * Set the value of a global variable. - *********************************************************/ -private void buildSetGlobalVar(String variable, String value) { -reset(); -url = "/asterisk/variable"; -method = "POST"; -lParamQuery.add( HttpParam.build( "variable", variable) ); -lParamQuery.add( HttpParam.build( "value", value) ); -lE.add( HttpResponse.build( 400, "Missing variable parameter.") ); -} - -@Override -public void setGlobalVar(String variable, String value) throws RestException { -buildSetGlobalVar(variable, value); -String json = httpActionSync(); -} - -@Override -public void setGlobalVar(String variable, String value, AriCallback callback) { -buildSetGlobalVar(variable, value); -httpActionAsync(callback); -} - -/********************************************************** - * Rotates a log channel. - * - * - * @since ari_1_9_0 - *********************************************************/ -public void rotateLog(String logChannelName) throws RestException{ - throw new UnsupportedOperationException("Method availble from ..."); -}; - -/********************************************************** - * Deletes a log channel. - * - * - * @since ari_1_9_0 - *********************************************************/ -public void deleteLog(String logChannelName) throws RestException{ - throw new UnsupportedOperationException("Method availble from ..."); -}; - -/********************************************************** - * - * - * @since ari_1_9_0 - *********************************************************/ -public void rotateLog(String logChannelName, AriCallback callback){ - throw new UnsupportedOperationException("Method availble from ..."); -}; - -/********************************************************** - * - * - * @since ari_1_9_0 - *********************************************************/ -public void addLog(String logChannelName, String configuration, AriCallback callback){ - throw new UnsupportedOperationException("Method availble from ..."); -}; - -/********************************************************** - * Gets Asterisk log channel information. - * - * - * @since ari_1_9_0 - *********************************************************/ -public List listLogChannels() throws RestException{ - throw new UnsupportedOperationException("Method availble from ..."); -}; - -/********************************************************** - * Adds a log channel. - * - * - * @since ari_1_9_0 - *********************************************************/ -public void addLog(String logChannelName, String configuration) throws RestException{ - throw new UnsupportedOperationException("Method availble from ..."); -}; - -/********************************************************** - * - * - * @since ari_1_9_0 - *********************************************************/ -public void listLogChannels(AriCallback> callback){ - throw new UnsupportedOperationException("Method availble from ..."); -}; - -/********************************************************** - * - * - * @since ari_1_9_0 - *********************************************************/ -public void deleteLog(String logChannelName, AriCallback callback){ - throw new UnsupportedOperationException("Method availble from ..."); -}; - -}; - diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_8_0/actions/ActionBridges_impl_ari_1_8_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_8_0/actions/ActionBridges_impl_ari_1_8_0.java deleted file mode 100644 index 6d0c618f..00000000 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_8_0/actions/ActionBridges_impl_ari_1_8_0.java +++ /dev/null @@ -1,482 +0,0 @@ -package ch.loway.oss.ari4java.generated.ari_1_8_0.actions; - -// ---------------------------------------------------- -// THIS CLASS WAS GENERATED AUTOMATICALLY -// PLEASE DO NOT EDIT -// Generated on: Tue Dec 19 09:55:49 CET 2017 -// ---------------------------------------------------- - -import ch.loway.oss.ari4java.generated.*; -import java.util.Date; -import java.util.List; -import java.util.Map; -import java.util.ArrayList; -import ch.loway.oss.ari4java.tools.BaseAriAction; -import ch.loway.oss.ari4java.tools.RestException; -import ch.loway.oss.ari4java.tools.AriCallback; -import ch.loway.oss.ari4java.tools.HttpParam; -import ch.loway.oss.ari4java.tools.HttpResponse; -import com.fasterxml.jackson.core.type.TypeReference; -import ch.loway.oss.ari4java.generated.ari_1_8_0.models.*; - -/********************************************************** - * - * Generated by: Apis - *********************************************************/ - - -public class ActionBridges_impl_ari_1_8_0 extends BaseAriAction implements ActionBridges { -/********************************************************** - * Active bridges - * - * List all active bridges in Asterisk. - *********************************************************/ -private void buildList() { -reset(); -url = "/bridges"; -method = "GET"; -} - -@Override -public List list() throws RestException { -buildList(); -String json = httpActionSync(); -return deserializeJsonAsAbstractList( json, - new TypeReference>() {} ); -} - -@Override -public void list(AriCallback> callback) { -buildList(); -httpActionAsync(callback, new TypeReference>() {}); -} - -/********************************************************** - * Active bridges - * - * Create a new bridge. - * This bridge persists until it has been shut down, or Asterisk has been shut down. - *********************************************************/ -private void buildCreate(String type, String bridgeId, String name) { -reset(); -url = "/bridges"; -method = "POST"; -lParamQuery.add( HttpParam.build( "type", type) ); -lParamQuery.add( HttpParam.build( "bridgeId", bridgeId) ); -lParamQuery.add( HttpParam.build( "name", name) ); -} - -@Override -public Bridge create(String type, String bridgeId, String name) throws RestException { -buildCreate(type, bridgeId, name); -String json = httpActionSync(); -return deserializeJson( json, Bridge_impl_ari_1_8_0.class ); -} - -@Override -public void create(String type, String bridgeId, String name, AriCallback callback) { -buildCreate(type, bridgeId, name); -httpActionAsync(callback, Bridge_impl_ari_1_8_0.class); -} - -/********************************************************** - * Individual bridge - * - * Create a new bridge or updates an existing one. - * This bridge persists until it has been shut down, or Asterisk has been shut down. - *********************************************************/ -private void buildCreateWithId(String type, String bridgeId, String name) { -reset(); -url = "/bridges/" + bridgeId + ""; -method = "POST"; -lParamQuery.add( HttpParam.build( "type", type) ); -lParamQuery.add( HttpParam.build( "name", name) ); -} - -@Override -public Bridge createWithId(String type, String bridgeId, String name) throws RestException { -buildCreateWithId(type, bridgeId, name); -String json = httpActionSync(); -return deserializeJson( json, Bridge_impl_ari_1_8_0.class ); -} - -@Override -public void createWithId(String type, String bridgeId, String name, AriCallback callback) { -buildCreateWithId(type, bridgeId, name); -httpActionAsync(callback, Bridge_impl_ari_1_8_0.class); -} - -/********************************************************** - * Individual bridge - * - * Get bridge details. - *********************************************************/ -private void buildGet(String bridgeId) { -reset(); -url = "/bridges/" + bridgeId + ""; -method = "GET"; -lE.add( HttpResponse.build( 404, "Bridge not found") ); -} - -@Override -public Bridge get(String bridgeId) throws RestException { -buildGet(bridgeId); -String json = httpActionSync(); -return deserializeJson( json, Bridge_impl_ari_1_8_0.class ); -} - -@Override -public void get(String bridgeId, AriCallback callback) { -buildGet(bridgeId); -httpActionAsync(callback, Bridge_impl_ari_1_8_0.class); -} - -/********************************************************** - * Individual bridge - * - * Shut down a bridge. - * If any channels are in this bridge, they will be removed and resume whatever they were doing beforehand. - *********************************************************/ -private void buildDestroy(String bridgeId) { -reset(); -url = "/bridges/" + bridgeId + ""; -method = "DELETE"; -lE.add( HttpResponse.build( 404, "Bridge not found") ); -} - -@Override -public void destroy(String bridgeId) throws RestException { -buildDestroy(bridgeId); -String json = httpActionSync(); -} - -@Override -public void destroy(String bridgeId, AriCallback callback) { -buildDestroy(bridgeId); -httpActionAsync(callback); -} - -/********************************************************** - * Add a channel to a bridge - * - * Add a channel to a bridge. - *********************************************************/ -private void buildAddChannel(String bridgeId, String channel, String role) { -reset(); -url = "/bridges/" + bridgeId + "/addChannel"; -method = "POST"; -lParamQuery.add( HttpParam.build( "channel", channel) ); -lParamQuery.add( HttpParam.build( "role", role) ); -lE.add( HttpResponse.build( 400, "Channel not found") ); -lE.add( HttpResponse.build( 404, "Bridge not found") ); -lE.add( HttpResponse.build( 409, "Bridge not in Stasis application; Channel currently recording") ); -lE.add( HttpResponse.build( 422, "Channel not in Stasis application") ); -} - -@Override -public void addChannel(String bridgeId, String channel, String role) throws RestException { -buildAddChannel(bridgeId, channel, role); -String json = httpActionSync(); -} - -@Override -public void addChannel(String bridgeId, String channel, String role, AriCallback callback) { -buildAddChannel(bridgeId, channel, role); -httpActionAsync(callback); -} - -/********************************************************** - * Play music on hold to a bridge - * - * Play music on hold to a bridge or change the MOH class that is playing. - *********************************************************/ -private void buildStartMoh(String bridgeId, String mohClass) { -reset(); -url = "/bridges/" + bridgeId + "/moh"; -method = "POST"; -lParamQuery.add( HttpParam.build( "mohClass", mohClass) ); -lE.add( HttpResponse.build( 404, "Bridge not found") ); -lE.add( HttpResponse.build( 409, "Bridge not in Stasis application") ); -} - -@Override -public void startMoh(String bridgeId, String mohClass) throws RestException { -buildStartMoh(bridgeId, mohClass); -String json = httpActionSync(); -} - -@Override -public void startMoh(String bridgeId, String mohClass, AriCallback callback) { -buildStartMoh(bridgeId, mohClass); -httpActionAsync(callback); -} - -/********************************************************** - * Play music on hold to a bridge - * - * Stop playing music on hold to a bridge. - * This will only stop music on hold being played via POST bridges/{bridgeId}/moh. - *********************************************************/ -private void buildStopMoh(String bridgeId) { -reset(); -url = "/bridges/" + bridgeId + "/moh"; -method = "DELETE"; -lE.add( HttpResponse.build( 404, "Bridge not found") ); -lE.add( HttpResponse.build( 409, "Bridge not in Stasis application") ); -} - -@Override -public void stopMoh(String bridgeId) throws RestException { -buildStopMoh(bridgeId); -String json = httpActionSync(); -} - -@Override -public void stopMoh(String bridgeId, AriCallback callback) { -buildStopMoh(bridgeId); -httpActionAsync(callback); -} - -/********************************************************** - * Play media to the participants of a bridge - * - * Start playback of media on a bridge. - * The media URI may be any of a number of URI's. Currently sound:, recording:, number:, digits:, characters:, and tone: URI's are supported. This operation creates a playback resource that can be used to control the playback of media (pause, rewind, fast forward, etc.) - *********************************************************/ -private void buildPlay(String bridgeId, String media, String lang, int offsetms, int skipms, String playbackId) { -reset(); -url = "/bridges/" + bridgeId + "/play"; -method = "POST"; -lParamQuery.add( HttpParam.build( "media", media) ); -lParamQuery.add( HttpParam.build( "lang", lang) ); -lParamQuery.add( HttpParam.build( "offsetms", offsetms) ); -lParamQuery.add( HttpParam.build( "skipms", skipms) ); -lParamQuery.add( HttpParam.build( "playbackId", playbackId) ); -lE.add( HttpResponse.build( 404, "Bridge not found") ); -lE.add( HttpResponse.build( 409, "Bridge not in a Stasis application") ); -} - -@Override -public Playback play(String bridgeId, String media, String lang, int offsetms, int skipms, String playbackId) throws RestException { -buildPlay(bridgeId, media, lang, offsetms, skipms, playbackId); -String json = httpActionSync(); -return deserializeJson( json, Playback_impl_ari_1_8_0.class ); -} - -@Override -public void play(String bridgeId, String media, String lang, int offsetms, int skipms, String playbackId, AriCallback callback) { -buildPlay(bridgeId, media, lang, offsetms, skipms, playbackId); -httpActionAsync(callback, Playback_impl_ari_1_8_0.class); -} - -/********************************************************** - * Play media to a bridge - * - * Start playback of media on a bridge. - * The media URI may be any of a number of URI's. Currently sound:, recording:, number:, digits:, characters:, and tone: URI's are supported. This operation creates a playback resource that can be used to control the playback of media (pause, rewind, fast forward, etc.) - *********************************************************/ -private void buildPlayWithId(String bridgeId, String playbackId, String media, String lang, int offsetms, int skipms) { -reset(); -url = "/bridges/" + bridgeId + "/play/" + playbackId + ""; -method = "POST"; -lParamQuery.add( HttpParam.build( "media", media) ); -lParamQuery.add( HttpParam.build( "lang", lang) ); -lParamQuery.add( HttpParam.build( "offsetms", offsetms) ); -lParamQuery.add( HttpParam.build( "skipms", skipms) ); -lE.add( HttpResponse.build( 404, "Bridge not found") ); -lE.add( HttpResponse.build( 409, "Bridge not in a Stasis application") ); -} - -@Override -public Playback playWithId(String bridgeId, String playbackId, String media, String lang, int offsetms, int skipms) throws RestException { -buildPlayWithId(bridgeId, playbackId, media, lang, offsetms, skipms); -String json = httpActionSync(); -return deserializeJson( json, Playback_impl_ari_1_8_0.class ); -} - -@Override -public void playWithId(String bridgeId, String playbackId, String media, String lang, int offsetms, int skipms, AriCallback callback) { -buildPlayWithId(bridgeId, playbackId, media, lang, offsetms, skipms); -httpActionAsync(callback, Playback_impl_ari_1_8_0.class); -} - -/********************************************************** - * Record audio on a bridge - * - * Start a recording. - * This records the mixed audio from all channels participating in this bridge. - *********************************************************/ -private void buildRecord(String bridgeId, String name, String format, int maxDurationSeconds, int maxSilenceSeconds, String ifExists, boolean beep, String terminateOn) { -reset(); -url = "/bridges/" + bridgeId + "/record"; -method = "POST"; -lParamQuery.add( HttpParam.build( "name", name) ); -lParamQuery.add( HttpParam.build( "format", format) ); -lParamQuery.add( HttpParam.build( "maxDurationSeconds", maxDurationSeconds) ); -lParamQuery.add( HttpParam.build( "maxSilenceSeconds", maxSilenceSeconds) ); -lParamQuery.add( HttpParam.build( "ifExists", ifExists) ); -lParamQuery.add( HttpParam.build( "beep", beep) ); -lParamQuery.add( HttpParam.build( "terminateOn", terminateOn) ); -lE.add( HttpResponse.build( 400, "Invalid parameters") ); -lE.add( HttpResponse.build( 404, "Bridge not found") ); -lE.add( HttpResponse.build( 409, "Bridge is not in a Stasis application; A recording with the same name already exists on the system and can not be overwritten because it is in progress or ifExists=fail") ); -lE.add( HttpResponse.build( 422, "The format specified is unknown on this system") ); -} - -@Override -public LiveRecording record(String bridgeId, String name, String format, int maxDurationSeconds, int maxSilenceSeconds, String ifExists, boolean beep, String terminateOn) throws RestException { -buildRecord(bridgeId, name, format, maxDurationSeconds, maxSilenceSeconds, ifExists, beep, terminateOn); -String json = httpActionSync(); -return deserializeJson( json, LiveRecording_impl_ari_1_8_0.class ); -} - -@Override -public void record(String bridgeId, String name, String format, int maxDurationSeconds, int maxSilenceSeconds, String ifExists, boolean beep, String terminateOn, AriCallback callback) { -buildRecord(bridgeId, name, format, maxDurationSeconds, maxSilenceSeconds, ifExists, beep, terminateOn); -httpActionAsync(callback, LiveRecording_impl_ari_1_8_0.class); -} - -/********************************************************** - * Remove a channel from a bridge - * - * Remove a channel from a bridge. - *********************************************************/ -private void buildRemoveChannel(String bridgeId, String channel) { -reset(); -url = "/bridges/" + bridgeId + "/removeChannel"; -method = "POST"; -lParamQuery.add( HttpParam.build( "channel", channel) ); -lE.add( HttpResponse.build( 400, "Channel not found") ); -lE.add( HttpResponse.build( 404, "Bridge not found") ); -lE.add( HttpResponse.build( 409, "Bridge not in Stasis application") ); -lE.add( HttpResponse.build( 422, "Channel not in this bridge") ); -} - -@Override -public void removeChannel(String bridgeId, String channel) throws RestException { -buildRemoveChannel(bridgeId, channel); -String json = httpActionSync(); -} - -@Override -public void removeChannel(String bridgeId, String channel, AriCallback callback) { -buildRemoveChannel(bridgeId, channel); -httpActionAsync(callback); -} - -/********************************************************** - * Start playback of media on a bridge. - * The media URI may be any of a number of URI's. Currently sound: and recording: URI's are supported. This operation creates a playback resource that can be used to control the playback of media (pause, rewind, fast forward, etc.) - * - * @since ari_0_0_1 - *********************************************************/ -public Playback play(String bridgeId, String media, String lang, int offsetms, int skipms) throws RestException{ - throw new UnsupportedOperationException("Method availble from ..."); -}; - -/********************************************************** - * - * - * @since ari_0_0_1 - *********************************************************/ -public void play(String bridgeId, String media, String lang, int offsetms, int skipms, AriCallback callback){ - throw new UnsupportedOperationException("Method availble from ..."); -}; - -/********************************************************** - * Create a new bridge. - * This bridge persists until it has been shut down, or Asterisk has been shut down. - * - * @since ari_1_0_0 - *********************************************************/ -public Bridge create(String type, String name) throws RestException{ - throw new UnsupportedOperationException("Method availble from ..."); -}; - -/********************************************************** - * - * - * @since ari_1_5_0 - *********************************************************/ -public void create_or_update_with_id(String type, String bridgeId, String name, AriCallback callback){ - throw new UnsupportedOperationException("Method availble from ..."); -}; - -/********************************************************** - * Set a channel as the video source in a multi-party mixing bridge. This operation has no effect on bridges with two or fewer participants. - * - * - * @since ari_2_0_0 - *********************************************************/ -public void setVideoSource(String bridgeId, String channelId) throws RestException{ - throw new UnsupportedOperationException("Method availble from ..."); -}; - -/********************************************************** - * Create a new bridge or updates an existing one. - * This bridge persists until it has been shut down, or Asterisk has been shut down. - * - * @since ari_1_5_0 - *********************************************************/ -public Bridge create_or_update_with_id(String type, String bridgeId, String name) throws RestException{ - throw new UnsupportedOperationException("Method availble from ..."); -}; - -/********************************************************** - * Create a new bridge. - * This bridge persists until it has been shut down, or Asterisk has been shut down. - * - * @since ari_0_0_1 - *********************************************************/ -public Bridge create(String type) throws RestException{ - throw new UnsupportedOperationException("Method availble from ..."); -}; - -/********************************************************** - * Removes any explicit video source in a multi-party mixing bridge. This operation has no effect on bridges with two or fewer participants. When no explicit video source is set, talk detection will be used to determine the active video stream. - * - * - * @since ari_2_0_0 - *********************************************************/ -public void clearVideoSource(String bridgeId) throws RestException{ - throw new UnsupportedOperationException("Method availble from ..."); -}; - -/********************************************************** - * - * - * @since ari_0_0_1 - *********************************************************/ -public void create(String type, AriCallback callback){ - throw new UnsupportedOperationException("Method availble from ..."); -}; - -/********************************************************** - * - * - * @since ari_2_0_0 - *********************************************************/ -public void setVideoSource(String bridgeId, String channelId, AriCallback callback){ - throw new UnsupportedOperationException("Method availble from ..."); -}; - -/********************************************************** - * - * - * @since ari_1_0_0 - *********************************************************/ -public void create(String type, String name, AriCallback callback){ - throw new UnsupportedOperationException("Method availble from ..."); -}; - -/********************************************************** - * - * - * @since ari_2_0_0 - *********************************************************/ -public void clearVideoSource(String bridgeId, AriCallback callback){ - throw new UnsupportedOperationException("Method availble from ..."); -}; - -}; - diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_8_0/actions/ActionChannels_impl_ari_1_8_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_8_0/actions/ActionChannels_impl_ari_1_8_0.java deleted file mode 100644 index e358cb27..00000000 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_8_0/actions/ActionChannels_impl_ari_1_8_0.java +++ /dev/null @@ -1,961 +0,0 @@ -package ch.loway.oss.ari4java.generated.ari_1_8_0.actions; - -// ---------------------------------------------------- -// THIS CLASS WAS GENERATED AUTOMATICALLY -// PLEASE DO NOT EDIT -// Generated on: Tue Dec 19 09:55:49 CET 2017 -// ---------------------------------------------------- - -import ch.loway.oss.ari4java.generated.*; -import java.util.Date; -import java.util.List; -import java.util.Map; -import java.util.ArrayList; -import ch.loway.oss.ari4java.tools.BaseAriAction; -import ch.loway.oss.ari4java.tools.RestException; -import ch.loway.oss.ari4java.tools.AriCallback; -import ch.loway.oss.ari4java.tools.HttpParam; -import ch.loway.oss.ari4java.tools.HttpResponse; -import com.fasterxml.jackson.core.type.TypeReference; -import ch.loway.oss.ari4java.generated.ari_1_8_0.models.*; - -/********************************************************** - * - * Generated by: Apis - *********************************************************/ - - -public class ActionChannels_impl_ari_1_8_0 extends BaseAriAction implements ActionChannels { -/********************************************************** - * Active channels - * - * List all active channels in Asterisk. - *********************************************************/ -private void buildList() { -reset(); -url = "/channels"; -method = "GET"; -} - -@Override -public List list() throws RestException { -buildList(); -String json = httpActionSync(); -return deserializeJsonAsAbstractList( json, - new TypeReference>() {} ); -} - -@Override -public void list(AriCallback> callback) { -buildList(); -httpActionAsync(callback, new TypeReference>() {}); -} - -/********************************************************** - * Active channels - * - * Create a new channel (originate). - * The new channel is created immediately and a snapshot of it returned. If a Stasis application is provided it will be automatically subscribed to the originated channel for further events and updates. - *********************************************************/ -private void buildOriginate(String endpoint, String extension, String context, long priority, String label, String app, String appArgs, String callerId, int timeout, Map variables, String channelId, String otherChannelId, String originator) { -reset(); -url = "/channels"; -method = "POST"; -lParamQuery.add( HttpParam.build( "endpoint", endpoint) ); -lParamQuery.add( HttpParam.build( "extension", extension) ); -lParamQuery.add( HttpParam.build( "context", context) ); -lParamQuery.add( HttpParam.build( "priority", priority) ); -lParamQuery.add( HttpParam.build( "label", label) ); -lParamQuery.add( HttpParam.build( "app", app) ); -lParamQuery.add( HttpParam.build( "appArgs", appArgs) ); -lParamQuery.add( HttpParam.build( "callerId", callerId) ); -lParamQuery.add( HttpParam.build( "timeout", timeout) ); -lParamBody.addAll( HttpParam.build( "variables", variables) ); -lParamQuery.add( HttpParam.build( "channelId", channelId) ); -lParamQuery.add( HttpParam.build( "otherChannelId", otherChannelId) ); -lParamQuery.add( HttpParam.build( "originator", originator) ); -lE.add( HttpResponse.build( 400, "Invalid parameters for originating a channel.") ); -} - -@Override -public Channel originate(String endpoint, String extension, String context, long priority, String label, String app, String appArgs, String callerId, int timeout, Map variables, String channelId, String otherChannelId, String originator) throws RestException { -buildOriginate(endpoint, extension, context, priority, label, app, appArgs, callerId, timeout, variables, channelId, otherChannelId, originator); -String json = httpActionSync(); -return deserializeJson( json, Channel_impl_ari_1_8_0.class ); -} - -@Override -public void originate(String endpoint, String extension, String context, long priority, String label, String app, String appArgs, String callerId, int timeout, Map variables, String channelId, String otherChannelId, String originator, AriCallback callback) { -buildOriginate(endpoint, extension, context, priority, label, app, appArgs, callerId, timeout, variables, channelId, otherChannelId, originator); -httpActionAsync(callback, Channel_impl_ari_1_8_0.class); -} - -/********************************************************** - * Active channel - * - * Channel details. - *********************************************************/ -private void buildGet(String channelId) { -reset(); -url = "/channels/" + channelId + ""; -method = "GET"; -lE.add( HttpResponse.build( 404, "Channel not found") ); -} - -@Override -public Channel get(String channelId) throws RestException { -buildGet(channelId); -String json = httpActionSync(); -return deserializeJson( json, Channel_impl_ari_1_8_0.class ); -} - -@Override -public void get(String channelId, AriCallback callback) { -buildGet(channelId); -httpActionAsync(callback, Channel_impl_ari_1_8_0.class); -} - -/********************************************************** - * Active channel - * - * Create a new channel (originate with id). - * The new channel is created immediately and a snapshot of it returned. If a Stasis application is provided it will be automatically subscribed to the originated channel for further events and updates. - *********************************************************/ -private void buildOriginateWithId(String channelId, String endpoint, String extension, String context, long priority, String label, String app, String appArgs, String callerId, int timeout, Map variables, String otherChannelId, String originator) { -reset(); -url = "/channels/" + channelId + ""; -method = "POST"; -lParamQuery.add( HttpParam.build( "endpoint", endpoint) ); -lParamQuery.add( HttpParam.build( "extension", extension) ); -lParamQuery.add( HttpParam.build( "context", context) ); -lParamQuery.add( HttpParam.build( "priority", priority) ); -lParamQuery.add( HttpParam.build( "label", label) ); -lParamQuery.add( HttpParam.build( "app", app) ); -lParamQuery.add( HttpParam.build( "appArgs", appArgs) ); -lParamQuery.add( HttpParam.build( "callerId", callerId) ); -lParamQuery.add( HttpParam.build( "timeout", timeout) ); -lParamBody.addAll( HttpParam.build( "variables", variables) ); -lParamQuery.add( HttpParam.build( "otherChannelId", otherChannelId) ); -lParamQuery.add( HttpParam.build( "originator", originator) ); -lE.add( HttpResponse.build( 400, "Invalid parameters for originating a channel.") ); -} - -@Override -public Channel originateWithId(String channelId, String endpoint, String extension, String context, long priority, String label, String app, String appArgs, String callerId, int timeout, Map variables, String otherChannelId, String originator) throws RestException { -buildOriginateWithId(channelId, endpoint, extension, context, priority, label, app, appArgs, callerId, timeout, variables, otherChannelId, originator); -String json = httpActionSync(); -return deserializeJson( json, Channel_impl_ari_1_8_0.class ); -} - -@Override -public void originateWithId(String channelId, String endpoint, String extension, String context, long priority, String label, String app, String appArgs, String callerId, int timeout, Map variables, String otherChannelId, String originator, AriCallback callback) { -buildOriginateWithId(channelId, endpoint, extension, context, priority, label, app, appArgs, callerId, timeout, variables, otherChannelId, originator); -httpActionAsync(callback, Channel_impl_ari_1_8_0.class); -} - -/********************************************************** - * Active channel - * - * Delete (i.e. hangup) a channel. - *********************************************************/ -private void buildHangup(String channelId, String reason) { -reset(); -url = "/channels/" + channelId + ""; -method = "DELETE"; -lParamQuery.add( HttpParam.build( "reason", reason) ); -lE.add( HttpResponse.build( 400, "Invalid reason for hangup provided") ); -lE.add( HttpResponse.build( 404, "Channel not found") ); -} - -@Override -public void hangup(String channelId, String reason) throws RestException { -buildHangup(channelId, reason); -String json = httpActionSync(); -} - -@Override -public void hangup(String channelId, String reason, AriCallback callback) { -buildHangup(channelId, reason); -httpActionAsync(callback); -} - -/********************************************************** - * Answer a channel - * - * Answer a channel. - *********************************************************/ -private void buildAnswer(String channelId) { -reset(); -url = "/channels/" + channelId + "/answer"; -method = "POST"; -lE.add( HttpResponse.build( 404, "Channel not found") ); -lE.add( HttpResponse.build( 409, "Channel not in a Stasis application") ); -} - -@Override -public void answer(String channelId) throws RestException { -buildAnswer(channelId); -String json = httpActionSync(); -} - -@Override -public void answer(String channelId, AriCallback callback) { -buildAnswer(channelId); -httpActionAsync(callback); -} - -/********************************************************** - * Exit application; continue execution in the dialplan - * - * Exit application; continue execution in the dialplan. - *********************************************************/ -private void buildContinueInDialplan(String channelId, String context, String extension, int priority, String label) { -reset(); -url = "/channels/" + channelId + "/continue"; -method = "POST"; -lParamQuery.add( HttpParam.build( "context", context) ); -lParamQuery.add( HttpParam.build( "extension", extension) ); -lParamQuery.add( HttpParam.build( "priority", priority) ); -lParamQuery.add( HttpParam.build( "label", label) ); -lE.add( HttpResponse.build( 404, "Channel not found") ); -lE.add( HttpResponse.build( 409, "Channel not in a Stasis application") ); -} - -@Override -public void continueInDialplan(String channelId, String context, String extension, int priority, String label) throws RestException { -buildContinueInDialplan(channelId, context, extension, priority, label); -String json = httpActionSync(); -} - -@Override -public void continueInDialplan(String channelId, String context, String extension, int priority, String label, AriCallback callback) { -buildContinueInDialplan(channelId, context, extension, priority, label); -httpActionAsync(callback); -} - -/********************************************************** - * Send DTMF to a channel - * - * Send provided DTMF to a given channel. - *********************************************************/ -private void buildSendDTMF(String channelId, String dtmf, int before, int between, int duration, int after) { -reset(); -url = "/channels/" + channelId + "/dtmf"; -method = "POST"; -lParamQuery.add( HttpParam.build( "dtmf", dtmf) ); -lParamQuery.add( HttpParam.build( "before", before) ); -lParamQuery.add( HttpParam.build( "between", between) ); -lParamQuery.add( HttpParam.build( "duration", duration) ); -lParamQuery.add( HttpParam.build( "after", after) ); -lE.add( HttpResponse.build( 400, "DTMF is required") ); -lE.add( HttpResponse.build( 404, "Channel not found") ); -lE.add( HttpResponse.build( 409, "Channel not in a Stasis application") ); -} - -@Override -public void sendDTMF(String channelId, String dtmf, int before, int between, int duration, int after) throws RestException { -buildSendDTMF(channelId, dtmf, before, between, duration, after); -String json = httpActionSync(); -} - -@Override -public void sendDTMF(String channelId, String dtmf, int before, int between, int duration, int after, AriCallback callback) { -buildSendDTMF(channelId, dtmf, before, between, duration, after); -httpActionAsync(callback); -} - -/********************************************************** - * Put a channel on hold - * - * Hold a channel. - *********************************************************/ -private void buildHold(String channelId) { -reset(); -url = "/channels/" + channelId + "/hold"; -method = "POST"; -lE.add( HttpResponse.build( 404, "Channel not found") ); -lE.add( HttpResponse.build( 409, "Channel not in a Stasis application") ); -} - -@Override -public void hold(String channelId) throws RestException { -buildHold(channelId); -String json = httpActionSync(); -} - -@Override -public void hold(String channelId, AriCallback callback) { -buildHold(channelId); -httpActionAsync(callback); -} - -/********************************************************** - * Put a channel on hold - * - * Remove a channel from hold. - *********************************************************/ -private void buildUnhold(String channelId) { -reset(); -url = "/channels/" + channelId + "/hold"; -method = "DELETE"; -lE.add( HttpResponse.build( 404, "Channel not found") ); -lE.add( HttpResponse.build( 409, "Channel not in a Stasis application") ); -} - -@Override -public void unhold(String channelId) throws RestException { -buildUnhold(channelId); -String json = httpActionSync(); -} - -@Override -public void unhold(String channelId, AriCallback callback) { -buildUnhold(channelId); -httpActionAsync(callback); -} - -/********************************************************** - * Play music on hold to a channel - * - * Play music on hold to a channel. - * Using media operations such as /play on a channel playing MOH in this manner will suspend MOH without resuming automatically. If continuing music on hold is desired, the stasis application must reinitiate music on hold. - *********************************************************/ -private void buildStartMoh(String channelId, String mohClass) { -reset(); -url = "/channels/" + channelId + "/moh"; -method = "POST"; -lParamQuery.add( HttpParam.build( "mohClass", mohClass) ); -lE.add( HttpResponse.build( 404, "Channel not found") ); -lE.add( HttpResponse.build( 409, "Channel not in a Stasis application") ); -} - -@Override -public void startMoh(String channelId, String mohClass) throws RestException { -buildStartMoh(channelId, mohClass); -String json = httpActionSync(); -} - -@Override -public void startMoh(String channelId, String mohClass, AriCallback callback) { -buildStartMoh(channelId, mohClass); -httpActionAsync(callback); -} - -/********************************************************** - * Play music on hold to a channel - * - * Stop playing music on hold to a channel. - *********************************************************/ -private void buildStopMoh(String channelId) { -reset(); -url = "/channels/" + channelId + "/moh"; -method = "DELETE"; -lE.add( HttpResponse.build( 404, "Channel not found") ); -lE.add( HttpResponse.build( 409, "Channel not in a Stasis application") ); -} - -@Override -public void stopMoh(String channelId) throws RestException { -buildStopMoh(channelId); -String json = httpActionSync(); -} - -@Override -public void stopMoh(String channelId, AriCallback callback) { -buildStopMoh(channelId); -httpActionAsync(callback); -} - -/********************************************************** - * Mute a channel - * - * Mute a channel. - *********************************************************/ -private void buildMute(String channelId, String direction) { -reset(); -url = "/channels/" + channelId + "/mute"; -method = "POST"; -lParamQuery.add( HttpParam.build( "direction", direction) ); -lE.add( HttpResponse.build( 404, "Channel not found") ); -lE.add( HttpResponse.build( 409, "Channel not in a Stasis application") ); -} - -@Override -public void mute(String channelId, String direction) throws RestException { -buildMute(channelId, direction); -String json = httpActionSync(); -} - -@Override -public void mute(String channelId, String direction, AriCallback callback) { -buildMute(channelId, direction); -httpActionAsync(callback); -} - -/********************************************************** - * Mute a channel - * - * Unmute a channel. - *********************************************************/ -private void buildUnmute(String channelId, String direction) { -reset(); -url = "/channels/" + channelId + "/mute"; -method = "DELETE"; -lParamQuery.add( HttpParam.build( "direction", direction) ); -lE.add( HttpResponse.build( 404, "Channel not found") ); -lE.add( HttpResponse.build( 409, "Channel not in a Stasis application") ); -} - -@Override -public void unmute(String channelId, String direction) throws RestException { -buildUnmute(channelId, direction); -String json = httpActionSync(); -} - -@Override -public void unmute(String channelId, String direction, AriCallback callback) { -buildUnmute(channelId, direction); -httpActionAsync(callback); -} - -/********************************************************** - * Play media to a channel - * - * Start playback of media. - * The media URI may be any of a number of URI's. Currently sound:, recording:, number:, digits:, characters:, and tone: URI's are supported. This operation creates a playback resource that can be used to control the playback of media (pause, rewind, fast forward, etc.) - *********************************************************/ -private void buildPlay(String channelId, String media, String lang, int offsetms, int skipms, String playbackId) { -reset(); -url = "/channels/" + channelId + "/play"; -method = "POST"; -lParamQuery.add( HttpParam.build( "media", media) ); -lParamQuery.add( HttpParam.build( "lang", lang) ); -lParamQuery.add( HttpParam.build( "offsetms", offsetms) ); -lParamQuery.add( HttpParam.build( "skipms", skipms) ); -lParamQuery.add( HttpParam.build( "playbackId", playbackId) ); -lE.add( HttpResponse.build( 404, "Channel not found") ); -lE.add( HttpResponse.build( 409, "Channel not in a Stasis application") ); -} - -@Override -public Playback play(String channelId, String media, String lang, int offsetms, int skipms, String playbackId) throws RestException { -buildPlay(channelId, media, lang, offsetms, skipms, playbackId); -String json = httpActionSync(); -return deserializeJson( json, Playback_impl_ari_1_8_0.class ); -} - -@Override -public void play(String channelId, String media, String lang, int offsetms, int skipms, String playbackId, AriCallback callback) { -buildPlay(channelId, media, lang, offsetms, skipms, playbackId); -httpActionAsync(callback, Playback_impl_ari_1_8_0.class); -} - -/********************************************************** - * Play media to a channel - * - * Start playback of media and specify the playbackId. - * The media URI may be any of a number of URI's. Currently sound:, recording:, number:, digits:, characters:, and tone: URI's are supported. This operation creates a playback resource that can be used to control the playback of media (pause, rewind, fast forward, etc.) - *********************************************************/ -private void buildPlayWithId(String channelId, String playbackId, String media, String lang, int offsetms, int skipms) { -reset(); -url = "/channels/" + channelId + "/play/" + playbackId + ""; -method = "POST"; -lParamQuery.add( HttpParam.build( "media", media) ); -lParamQuery.add( HttpParam.build( "lang", lang) ); -lParamQuery.add( HttpParam.build( "offsetms", offsetms) ); -lParamQuery.add( HttpParam.build( "skipms", skipms) ); -lE.add( HttpResponse.build( 404, "Channel not found") ); -lE.add( HttpResponse.build( 409, "Channel not in a Stasis application") ); -} - -@Override -public Playback playWithId(String channelId, String playbackId, String media, String lang, int offsetms, int skipms) throws RestException { -buildPlayWithId(channelId, playbackId, media, lang, offsetms, skipms); -String json = httpActionSync(); -return deserializeJson( json, Playback_impl_ari_1_8_0.class ); -} - -@Override -public void playWithId(String channelId, String playbackId, String media, String lang, int offsetms, int skipms, AriCallback callback) { -buildPlayWithId(channelId, playbackId, media, lang, offsetms, skipms); -httpActionAsync(callback, Playback_impl_ari_1_8_0.class); -} - -/********************************************************** - * Record audio from a channel - * - * Start a recording. - * Record audio from a channel. Note that this will not capture audio sent to the channel. The bridge itself has a record feature if that's what you want. - *********************************************************/ -private void buildRecord(String channelId, String name, String format, int maxDurationSeconds, int maxSilenceSeconds, String ifExists, boolean beep, String terminateOn) { -reset(); -url = "/channels/" + channelId + "/record"; -method = "POST"; -lParamQuery.add( HttpParam.build( "name", name) ); -lParamQuery.add( HttpParam.build( "format", format) ); -lParamQuery.add( HttpParam.build( "maxDurationSeconds", maxDurationSeconds) ); -lParamQuery.add( HttpParam.build( "maxSilenceSeconds", maxSilenceSeconds) ); -lParamQuery.add( HttpParam.build( "ifExists", ifExists) ); -lParamQuery.add( HttpParam.build( "beep", beep) ); -lParamQuery.add( HttpParam.build( "terminateOn", terminateOn) ); -lE.add( HttpResponse.build( 400, "Invalid parameters") ); -lE.add( HttpResponse.build( 404, "Channel not found") ); -lE.add( HttpResponse.build( 409, "Channel is not in a Stasis application; the channel is currently bridged with other hcannels; A recording with the same name already exists on the system and can not be overwritten because it is in progress or ifExists=fail") ); -lE.add( HttpResponse.build( 422, "The format specified is unknown on this system") ); -} - -@Override -public LiveRecording record(String channelId, String name, String format, int maxDurationSeconds, int maxSilenceSeconds, String ifExists, boolean beep, String terminateOn) throws RestException { -buildRecord(channelId, name, format, maxDurationSeconds, maxSilenceSeconds, ifExists, beep, terminateOn); -String json = httpActionSync(); -return deserializeJson( json, LiveRecording_impl_ari_1_8_0.class ); -} - -@Override -public void record(String channelId, String name, String format, int maxDurationSeconds, int maxSilenceSeconds, String ifExists, boolean beep, String terminateOn, AriCallback callback) { -buildRecord(channelId, name, format, maxDurationSeconds, maxSilenceSeconds, ifExists, beep, terminateOn); -httpActionAsync(callback, LiveRecording_impl_ari_1_8_0.class); -} - -/********************************************************** - * Inform the channel that it should redirect itself to a different location. Note that this will almost certainly cause the channel to exit the application. - * - * Redirect the channel to a different location. - *********************************************************/ -private void buildRedirect(String channelId, String endpoint) { -reset(); -url = "/channels/" + channelId + "/redirect"; -method = "POST"; -lParamQuery.add( HttpParam.build( "endpoint", endpoint) ); -lE.add( HttpResponse.build( 400, "Endpoint parameter not provided") ); -lE.add( HttpResponse.build( 404, "Channel or endpoint not found") ); -lE.add( HttpResponse.build( 409, "Channel not in a Stasis application") ); -lE.add( HttpResponse.build( 422, "Endpoint is not the same type as the channel") ); -} - -@Override -public void redirect(String channelId, String endpoint) throws RestException { -buildRedirect(channelId, endpoint); -String json = httpActionSync(); -} - -@Override -public void redirect(String channelId, String endpoint, AriCallback callback) { -buildRedirect(channelId, endpoint); -httpActionAsync(callback); -} - -/********************************************************** - * Send a ringing indication to a channel - * - * Indicate ringing to a channel. - *********************************************************/ -private void buildRing(String channelId) { -reset(); -url = "/channels/" + channelId + "/ring"; -method = "POST"; -lE.add( HttpResponse.build( 404, "Channel not found") ); -lE.add( HttpResponse.build( 409, "Channel not in a Stasis application") ); -} - -@Override -public void ring(String channelId) throws RestException { -buildRing(channelId); -String json = httpActionSync(); -} - -@Override -public void ring(String channelId, AriCallback callback) { -buildRing(channelId); -httpActionAsync(callback); -} - -/********************************************************** - * Send a ringing indication to a channel - * - * Stop ringing indication on a channel if locally generated. - *********************************************************/ -private void buildRingStop(String channelId) { -reset(); -url = "/channels/" + channelId + "/ring"; -method = "DELETE"; -lE.add( HttpResponse.build( 404, "Channel not found") ); -lE.add( HttpResponse.build( 409, "Channel not in a Stasis application") ); -} - -@Override -public void ringStop(String channelId) throws RestException { -buildRingStop(channelId); -String json = httpActionSync(); -} - -@Override -public void ringStop(String channelId, AriCallback callback) { -buildRingStop(channelId); -httpActionAsync(callback); -} - -/********************************************************** - * Play silence to a channel - * - * Play silence to a channel. - * Using media operations such as /play on a channel playing silence in this manner will suspend silence without resuming automatically. - *********************************************************/ -private void buildStartSilence(String channelId) { -reset(); -url = "/channels/" + channelId + "/silence"; -method = "POST"; -lE.add( HttpResponse.build( 404, "Channel not found") ); -lE.add( HttpResponse.build( 409, "Channel not in a Stasis application") ); -} - -@Override -public void startSilence(String channelId) throws RestException { -buildStartSilence(channelId); -String json = httpActionSync(); -} - -@Override -public void startSilence(String channelId, AriCallback callback) { -buildStartSilence(channelId); -httpActionAsync(callback); -} - -/********************************************************** - * Play silence to a channel - * - * Stop playing silence to a channel. - *********************************************************/ -private void buildStopSilence(String channelId) { -reset(); -url = "/channels/" + channelId + "/silence"; -method = "DELETE"; -lE.add( HttpResponse.build( 404, "Channel not found") ); -lE.add( HttpResponse.build( 409, "Channel not in a Stasis application") ); -} - -@Override -public void stopSilence(String channelId) throws RestException { -buildStopSilence(channelId); -String json = httpActionSync(); -} - -@Override -public void stopSilence(String channelId, AriCallback callback) { -buildStopSilence(channelId); -httpActionAsync(callback); -} - -/********************************************************** - * Snoop (spy/whisper) on a channel - * - * Start snooping. - * Snoop (spy/whisper) on a specific channel. - *********************************************************/ -private void buildSnoopChannel(String channelId, String spy, String whisper, String app, String appArgs, String snoopId) { -reset(); -url = "/channels/" + channelId + "/snoop"; -method = "POST"; -lParamQuery.add( HttpParam.build( "spy", spy) ); -lParamQuery.add( HttpParam.build( "whisper", whisper) ); -lParamQuery.add( HttpParam.build( "app", app) ); -lParamQuery.add( HttpParam.build( "appArgs", appArgs) ); -lParamQuery.add( HttpParam.build( "snoopId", snoopId) ); -lE.add( HttpResponse.build( 400, "Invalid parameters") ); -lE.add( HttpResponse.build( 404, "Channel not found") ); -} - -@Override -public Channel snoopChannel(String channelId, String spy, String whisper, String app, String appArgs, String snoopId) throws RestException { -buildSnoopChannel(channelId, spy, whisper, app, appArgs, snoopId); -String json = httpActionSync(); -return deserializeJson( json, Channel_impl_ari_1_8_0.class ); -} - -@Override -public void snoopChannel(String channelId, String spy, String whisper, String app, String appArgs, String snoopId, AriCallback callback) { -buildSnoopChannel(channelId, spy, whisper, app, appArgs, snoopId); -httpActionAsync(callback, Channel_impl_ari_1_8_0.class); -} - -/********************************************************** - * Snoop (spy/whisper) on a channel - * - * Start snooping. - * Snoop (spy/whisper) on a specific channel. - *********************************************************/ -private void buildSnoopChannelWithId(String channelId, String snoopId, String spy, String whisper, String app, String appArgs) { -reset(); -url = "/channels/" + channelId + "/snoop/" + snoopId + ""; -method = "POST"; -lParamQuery.add( HttpParam.build( "spy", spy) ); -lParamQuery.add( HttpParam.build( "whisper", whisper) ); -lParamQuery.add( HttpParam.build( "app", app) ); -lParamQuery.add( HttpParam.build( "appArgs", appArgs) ); -lE.add( HttpResponse.build( 400, "Invalid parameters") ); -lE.add( HttpResponse.build( 404, "Channel not found") ); -} - -@Override -public Channel snoopChannelWithId(String channelId, String snoopId, String spy, String whisper, String app, String appArgs) throws RestException { -buildSnoopChannelWithId(channelId, snoopId, spy, whisper, app, appArgs); -String json = httpActionSync(); -return deserializeJson( json, Channel_impl_ari_1_8_0.class ); -} - -@Override -public void snoopChannelWithId(String channelId, String snoopId, String spy, String whisper, String app, String appArgs, AriCallback callback) { -buildSnoopChannelWithId(channelId, snoopId, spy, whisper, app, appArgs); -httpActionAsync(callback, Channel_impl_ari_1_8_0.class); -} - -/********************************************************** - * Variables on a channel - * - * Get the value of a channel variable or function. - *********************************************************/ -private void buildGetChannelVar(String channelId, String variable) { -reset(); -url = "/channels/" + channelId + "/variable"; -method = "GET"; -lParamQuery.add( HttpParam.build( "variable", variable) ); -lE.add( HttpResponse.build( 400, "Missing variable parameter.") ); -lE.add( HttpResponse.build( 404, "Channel or variable not found") ); -lE.add( HttpResponse.build( 409, "Channel not in a Stasis application") ); -} - -@Override -public Variable getChannelVar(String channelId, String variable) throws RestException { -buildGetChannelVar(channelId, variable); -String json = httpActionSync(); -return deserializeJson( json, Variable_impl_ari_1_8_0.class ); -} - -@Override -public void getChannelVar(String channelId, String variable, AriCallback callback) { -buildGetChannelVar(channelId, variable); -httpActionAsync(callback, Variable_impl_ari_1_8_0.class); -} - -/********************************************************** - * Variables on a channel - * - * Set the value of a channel variable or function. - *********************************************************/ -private void buildSetChannelVar(String channelId, String variable, String value) { -reset(); -url = "/channels/" + channelId + "/variable"; -method = "POST"; -lParamQuery.add( HttpParam.build( "variable", variable) ); -lParamQuery.add( HttpParam.build( "value", value) ); -lE.add( HttpResponse.build( 400, "Missing variable parameter.") ); -lE.add( HttpResponse.build( 404, "Channel not found") ); -lE.add( HttpResponse.build( 409, "Channel not in a Stasis application") ); -} - -@Override -public void setChannelVar(String channelId, String variable, String value) throws RestException { -buildSetChannelVar(channelId, variable, value); -String json = httpActionSync(); -} - -@Override -public void setChannelVar(String channelId, String variable, String value, AriCallback callback) { -buildSetChannelVar(channelId, variable, value); -httpActionAsync(callback); -} - -/********************************************************** - * Create a new channel (originate with id). - * The new channel is created immediately and a snapshot of it returned. If a Stasis application is provided it will be automatically subscribed to the originated channel for further events and updates. - * - * @since ari_1_5_0 - *********************************************************/ -public Channel originateWithId(String channelId, String endpoint, String extension, String context, long priority, String app, String appArgs, String callerId, int timeout, Map variables, String otherChannelId) throws RestException{ - throw new UnsupportedOperationException("Method availble from ..."); -}; - -/********************************************************** - * Start snooping. - * Snoop (spy/whisper) on a specific channel. - * - * @since ari_0_0_1 - *********************************************************/ -public Channel snoopChannel(String channelId, String spy, String whisper, String app, String appArgs) throws RestException{ - throw new UnsupportedOperationException("Method availble from ..."); -}; - -/********************************************************** - * - * - * @since ari_1_10_0 - *********************************************************/ -public void dial(String channelId, String caller, int timeout, AriCallback callback){ - throw new UnsupportedOperationException("Method availble from ..."); -}; - -/********************************************************** - * - * - * @since ari_1_5_0 - *********************************************************/ -public void originate(String endpoint, String extension, String context, long priority, String app, String appArgs, String callerId, int timeout, Map variables, String channelId, String otherChannelId, AriCallback callback){ - throw new UnsupportedOperationException("Method availble from ..."); -}; - -/********************************************************** - * - * - * @since ari_0_0_1 - *********************************************************/ -public void continueInDialplan(String channelId, String context, String extension, int priority, AriCallback callback){ - throw new UnsupportedOperationException("Method availble from ..."); -}; - -/********************************************************** - * - * - * @since ari_1_10_0 - *********************************************************/ -public void originateWithId(String channelId, String endpoint, String extension, String context, long priority, String label, String app, String appArgs, String callerId, int timeout, Map variables, String otherChannelId, String originator, String formats, AriCallback callback){ - throw new UnsupportedOperationException("Method availble from ..."); -}; - -/********************************************************** - * Start playback of media. - * The media URI may be any of a number of URI's. Currently sound: and recording: URI's are supported. This operation creates a playback resource that can be used to control the playback of media (pause, rewind, fast forward, etc.) - * - * @since ari_0_0_1 - *********************************************************/ -public Playback play(String channelId, String media, String lang, int offsetms, int skipms) throws RestException{ - throw new UnsupportedOperationException("Method availble from ..."); -}; - -/********************************************************** - * - * - * @since ari_0_0_1 - *********************************************************/ -public void play(String channelId, String media, String lang, int offsetms, int skipms, AriCallback callback){ - throw new UnsupportedOperationException("Method availble from ..."); -}; - -/********************************************************** - * - * - * @since ari_0_0_1 - *********************************************************/ -public void snoopChannel(String channelId, String spy, String whisper, String app, String appArgs, AriCallback callback){ - throw new UnsupportedOperationException("Method availble from ..."); -}; - -/********************************************************** - * - * - * @since ari_1_5_0 - *********************************************************/ -public void originateWithId(String channelId, String endpoint, String extension, String context, long priority, String app, String appArgs, String callerId, int timeout, Map variables, String otherChannelId, AriCallback callback){ - throw new UnsupportedOperationException("Method availble from ..."); -}; - -/********************************************************** - * Create a new channel (originate). - * The new channel is created immediately and a snapshot of it returned. If a Stasis application is provided it will be automatically subscribed to the originated channel for further events and updates. - * - * @since ari_1_10_0 - *********************************************************/ -public Channel originate(String endpoint, String extension, String context, long priority, String label, String app, String appArgs, String callerId, int timeout, Map variables, String channelId, String otherChannelId, String originator, String formats) throws RestException{ - throw new UnsupportedOperationException("Method availble from ..."); -}; - -/********************************************************** - * Create a new channel (originate with id). - * The new channel is created immediately and a snapshot of it returned. If a Stasis application is provided it will be automatically subscribed to the originated channel for further events and updates. - * - * @since ari_1_10_0 - *********************************************************/ -public Channel originateWithId(String channelId, String endpoint, String extension, String context, long priority, String label, String app, String appArgs, String callerId, int timeout, Map variables, String otherChannelId, String originator, String formats) throws RestException{ - throw new UnsupportedOperationException("Method availble from ..."); -}; - -/********************************************************** - * Create a new channel (originate). - * The new channel is created immediately and a snapshot of it returned. If a Stasis application is provided it will be automatically subscribed to the originated channel for further events and updates. - * - * @since ari_0_0_1 - *********************************************************/ -public Channel originate(String endpoint, String extension, String context, long priority, String app, String appArgs, String callerId, int timeout) throws RestException{ - throw new UnsupportedOperationException("Method availble from ..."); -}; - -/********************************************************** - * Dial a created channel. - * - * - * @since ari_1_10_0 - *********************************************************/ -public void dial(String channelId, String caller, int timeout) throws RestException{ - throw new UnsupportedOperationException("Method availble from ..."); -}; - -/********************************************************** - * - * - * @since ari_1_10_0 - *********************************************************/ -public void create(String endpoint, String app, String appArgs, String channelId, String otherChannelId, String originator, String formats, AriCallback callback){ - throw new UnsupportedOperationException("Method availble from ..."); -}; - -/********************************************************** - * Create channel. - * - * - * @since ari_1_10_0 - *********************************************************/ -public Channel create(String endpoint, String app, String appArgs, String channelId, String otherChannelId, String originator, String formats) throws RestException{ - throw new UnsupportedOperationException("Method availble from ..."); -}; - -/********************************************************** - * Exit application{ - throw new UnsupportedOperationException("Method availble from ..."); -}; continue execution in the dialplan. - * - * - * @since ari_0_0_1 - *********************************************************/ -public void continueInDialplan(String channelId, String context, String extension, int priority) throws RestException{ - throw new UnsupportedOperationException("Method availble from ..."); -}; - -/********************************************************** - * - * - * @since ari_1_10_0 - *********************************************************/ -public void originate(String endpoint, String extension, String context, long priority, String label, String app, String appArgs, String callerId, int timeout, Map variables, String channelId, String otherChannelId, String originator, String formats, AriCallback callback){ - throw new UnsupportedOperationException("Method availble from ..."); -}; - -/********************************************************** - * Create a new channel (originate). - * The new channel is created immediately and a snapshot of it returned. If a Stasis application is provided it will be automatically subscribed to the originated channel for further events and updates. - * - * @since ari_1_5_0 - *********************************************************/ -public Channel originate(String endpoint, String extension, String context, long priority, String app, String appArgs, String callerId, int timeout, Map variables, String channelId, String otherChannelId) throws RestException{ - throw new UnsupportedOperationException("Method availble from ..."); -}; - -/********************************************************** - * - * - * @since ari_0_0_1 - *********************************************************/ -public void originate(String endpoint, String extension, String context, long priority, String app, String appArgs, String callerId, int timeout, AriCallback callback){ - throw new UnsupportedOperationException("Method availble from ..."); -}; - -}; - diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_8_0/actions/ActionDeviceStates_impl_ari_1_8_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_8_0/actions/ActionDeviceStates_impl_ari_1_8_0.java deleted file mode 100644 index 5517d832..00000000 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_8_0/actions/ActionDeviceStates_impl_ari_1_8_0.java +++ /dev/null @@ -1,131 +0,0 @@ -package ch.loway.oss.ari4java.generated.ari_1_8_0.actions; - -// ---------------------------------------------------- -// THIS CLASS WAS GENERATED AUTOMATICALLY -// PLEASE DO NOT EDIT -// Generated on: Tue Dec 19 09:55:49 CET 2017 -// ---------------------------------------------------- - -import ch.loway.oss.ari4java.generated.*; -import java.util.Date; -import java.util.List; -import java.util.Map; -import java.util.ArrayList; -import ch.loway.oss.ari4java.tools.BaseAriAction; -import ch.loway.oss.ari4java.tools.RestException; -import ch.loway.oss.ari4java.tools.AriCallback; -import ch.loway.oss.ari4java.tools.HttpParam; -import ch.loway.oss.ari4java.tools.HttpResponse; -import com.fasterxml.jackson.core.type.TypeReference; -import ch.loway.oss.ari4java.generated.ari_1_8_0.models.*; - -/********************************************************** - * - * Generated by: Apis - *********************************************************/ - - -public class ActionDeviceStates_impl_ari_1_8_0 extends BaseAriAction implements ActionDeviceStates { -/********************************************************** - * Device states - * - * List all ARI controlled device states. - *********************************************************/ -private void buildList() { -reset(); -url = "/deviceStates"; -method = "GET"; -} - -@Override -public List list() throws RestException { -buildList(); -String json = httpActionSync(); -return deserializeJsonAsAbstractList( json, - new TypeReference>() {} ); -} - -@Override -public void list(AriCallback> callback) { -buildList(); -httpActionAsync(callback, new TypeReference>() {}); -} - -/********************************************************** - * Device state - * - * Retrieve the current state of a device. - *********************************************************/ -private void buildGet(String deviceName) { -reset(); -url = "/deviceStates/" + deviceName + ""; -method = "GET"; -} - -@Override -public DeviceState get(String deviceName) throws RestException { -buildGet(deviceName); -String json = httpActionSync(); -return deserializeJson( json, DeviceState_impl_ari_1_8_0.class ); -} - -@Override -public void get(String deviceName, AriCallback callback) { -buildGet(deviceName); -httpActionAsync(callback, DeviceState_impl_ari_1_8_0.class); -} - -/********************************************************** - * Device state - * - * Change the state of a device controlled by ARI. (Note - implicitly creates the device state). - *********************************************************/ -private void buildUpdate(String deviceName, String deviceState) { -reset(); -url = "/deviceStates/" + deviceName + ""; -method = "PUT"; -lParamQuery.add( HttpParam.build( "deviceState", deviceState) ); -lE.add( HttpResponse.build( 404, "Device name is missing") ); -lE.add( HttpResponse.build( 409, "Uncontrolled device specified") ); -} - -@Override -public void update(String deviceName, String deviceState) throws RestException { -buildUpdate(deviceName, deviceState); -String json = httpActionSync(); -} - -@Override -public void update(String deviceName, String deviceState, AriCallback callback) { -buildUpdate(deviceName, deviceState); -httpActionAsync(callback); -} - -/********************************************************** - * Device state - * - * Destroy a device-state controlled by ARI. - *********************************************************/ -private void buildDelete(String deviceName) { -reset(); -url = "/deviceStates/" + deviceName + ""; -method = "DELETE"; -lE.add( HttpResponse.build( 404, "Device name is missing") ); -lE.add( HttpResponse.build( 409, "Uncontrolled device specified") ); -} - -@Override -public void delete(String deviceName) throws RestException { -buildDelete(deviceName); -String json = httpActionSync(); -} - -@Override -public void delete(String deviceName, AriCallback callback) { -buildDelete(deviceName); -httpActionAsync(callback); -} - -/** No missing signatures from interface */ -}; - diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_8_0/actions/ActionEndpoints_impl_ari_1_8_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_8_0/actions/ActionEndpoints_impl_ari_1_8_0.java deleted file mode 100644 index c4abc05f..00000000 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_8_0/actions/ActionEndpoints_impl_ari_1_8_0.java +++ /dev/null @@ -1,165 +0,0 @@ -package ch.loway.oss.ari4java.generated.ari_1_8_0.actions; - -// ---------------------------------------------------- -// THIS CLASS WAS GENERATED AUTOMATICALLY -// PLEASE DO NOT EDIT -// Generated on: Tue Dec 19 09:55:49 CET 2017 -// ---------------------------------------------------- - -import ch.loway.oss.ari4java.generated.*; -import java.util.Date; -import java.util.List; -import java.util.Map; -import java.util.ArrayList; -import ch.loway.oss.ari4java.tools.BaseAriAction; -import ch.loway.oss.ari4java.tools.RestException; -import ch.loway.oss.ari4java.tools.AriCallback; -import ch.loway.oss.ari4java.tools.HttpParam; -import ch.loway.oss.ari4java.tools.HttpResponse; -import com.fasterxml.jackson.core.type.TypeReference; -import ch.loway.oss.ari4java.generated.ari_1_8_0.models.*; - -/********************************************************** - * - * Generated by: Apis - *********************************************************/ - - -public class ActionEndpoints_impl_ari_1_8_0 extends BaseAriAction implements ActionEndpoints { -/********************************************************** - * Asterisk endpoints - * - * List all endpoints. - *********************************************************/ -private void buildList() { -reset(); -url = "/endpoints"; -method = "GET"; -} - -@Override -public List list() throws RestException { -buildList(); -String json = httpActionSync(); -return deserializeJsonAsAbstractList( json, - new TypeReference>() {} ); -} - -@Override -public void list(AriCallback> callback) { -buildList(); -httpActionAsync(callback, new TypeReference>() {}); -} - -/********************************************************** - * Send a message to some technology URI or endpoint. - * - * Send a message to some technology URI or endpoint. - *********************************************************/ -private void buildSendMessage(String to, String from, String body, Map variables) { -reset(); -url = "/endpoints/sendMessage"; -method = "PUT"; -lParamQuery.add( HttpParam.build( "to", to) ); -lParamQuery.add( HttpParam.build( "from", from) ); -lParamQuery.add( HttpParam.build( "body", body) ); -lParamBody.addAll( HttpParam.build( "variables", variables) ); -lE.add( HttpResponse.build( 400, "Invalid parameters for sending a message.") ); -lE.add( HttpResponse.build( 404, "Endpoint not found") ); -} - -@Override -public void sendMessage(String to, String from, String body, Map variables) throws RestException { -buildSendMessage(to, from, body, variables); -String json = httpActionSync(); -} - -@Override -public void sendMessage(String to, String from, String body, Map variables, AriCallback callback) { -buildSendMessage(to, from, body, variables); -httpActionAsync(callback); -} - -/********************************************************** - * Asterisk endpoints - * - * List available endoints for a given endpoint technology. - *********************************************************/ -private void buildListByTech(String tech) { -reset(); -url = "/endpoints/" + tech + ""; -method = "GET"; -lE.add( HttpResponse.build( 404, "Endpoints not found") ); -} - -@Override -public List listByTech(String tech) throws RestException { -buildListByTech(tech); -String json = httpActionSync(); -return deserializeJsonAsAbstractList( json, - new TypeReference>() {} ); -} - -@Override -public void listByTech(String tech, AriCallback> callback) { -buildListByTech(tech); -httpActionAsync(callback, new TypeReference>() {}); -} - -/********************************************************** - * Single endpoint - * - * Details for an endpoint. - *********************************************************/ -private void buildGet(String tech, String resource) { -reset(); -url = "/endpoints/" + tech + "/" + resource + ""; -method = "GET"; -lE.add( HttpResponse.build( 400, "Invalid parameters for sending a message.") ); -lE.add( HttpResponse.build( 404, "Endpoints not found") ); -} - -@Override -public Endpoint get(String tech, String resource) throws RestException { -buildGet(tech, resource); -String json = httpActionSync(); -return deserializeJson( json, Endpoint_impl_ari_1_8_0.class ); -} - -@Override -public void get(String tech, String resource, AriCallback callback) { -buildGet(tech, resource); -httpActionAsync(callback, Endpoint_impl_ari_1_8_0.class); -} - -/********************************************************** - * Send a message to some endpoint in a technology. - * - * Send a message to some endpoint in a technology. - *********************************************************/ -private void buildSendMessageToEndpoint(String tech, String resource, String from, String body, Map variables) { -reset(); -url = "/endpoints/" + tech + "/" + resource + "/sendMessage"; -method = "PUT"; -lParamQuery.add( HttpParam.build( "from", from) ); -lParamQuery.add( HttpParam.build( "body", body) ); -lParamBody.addAll( HttpParam.build( "variables", variables) ); -lE.add( HttpResponse.build( 400, "Invalid parameters for sending a message.") ); -lE.add( HttpResponse.build( 404, "Endpoint not found") ); -} - -@Override -public void sendMessageToEndpoint(String tech, String resource, String from, String body, Map variables) throws RestException { -buildSendMessageToEndpoint(tech, resource, from, body, variables); -String json = httpActionSync(); -} - -@Override -public void sendMessageToEndpoint(String tech, String resource, String from, String body, Map variables, AriCallback callback) { -buildSendMessageToEndpoint(tech, resource, from, body, variables); -httpActionAsync(callback); -} - -/** No missing signatures from interface */ -}; - diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_8_0/actions/ActionEvents_impl_ari_1_8_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_8_0/actions/ActionEvents_impl_ari_1_8_0.java deleted file mode 100644 index b3f60243..00000000 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_8_0/actions/ActionEvents_impl_ari_1_8_0.java +++ /dev/null @@ -1,102 +0,0 @@ -package ch.loway.oss.ari4java.generated.ari_1_8_0.actions; - -// ---------------------------------------------------- -// THIS CLASS WAS GENERATED AUTOMATICALLY -// PLEASE DO NOT EDIT -// Generated on: Tue Dec 19 09:55:49 CET 2017 -// ---------------------------------------------------- - -import ch.loway.oss.ari4java.generated.*; -import java.util.Date; -import java.util.List; -import java.util.Map; -import java.util.ArrayList; -import ch.loway.oss.ari4java.tools.BaseAriAction; -import ch.loway.oss.ari4java.tools.RestException; -import ch.loway.oss.ari4java.tools.AriCallback; -import ch.loway.oss.ari4java.tools.HttpParam; -import ch.loway.oss.ari4java.tools.HttpResponse; -import com.fasterxml.jackson.core.type.TypeReference; -import ch.loway.oss.ari4java.generated.ari_1_8_0.models.*; - -/********************************************************** - * - * Generated by: Apis - *********************************************************/ - - -public class ActionEvents_impl_ari_1_8_0 extends BaseAriAction implements ActionEvents { -/********************************************************** - * Events from Asterisk to applications - * - * WebSocket connection for events. - *********************************************************/ -private void buildEventWebsocket(String app) { -reset(); -url = "/events"; -method = "GET"; -lParamQuery.add( HttpParam.build( "app", app) ); -wsUpgrade = true; -} - -@Override -public Message eventWebsocket(String app) throws RestException { -throw new RestException("No synchronous operation on WebSocket"); -} - -@Override -public void eventWebsocket(String app, AriCallback callback) { -buildEventWebsocket(app); -httpActionAsync(callback, Message_impl_ari_1_8_0.class); -} - -/********************************************************** - * Stasis application user events - * - * Generate a user event. - *********************************************************/ -private void buildUserEvent(String eventName, String application, String source, Map variables) { -reset(); -url = "/events/user/" + eventName + ""; -method = "POST"; -lParamQuery.add( HttpParam.build( "application", application) ); -lParamQuery.add( HttpParam.build( "source", source) ); -lParamBody.addAll( HttpParam.build( "variables", variables) ); -lE.add( HttpResponse.build( 404, "Application does not exist.") ); -lE.add( HttpResponse.build( 422, "Event source not found.") ); -lE.add( HttpResponse.build( 400, "Invalid even tsource URI or userevent data.") ); -} - -@Override -public void userEvent(String eventName, String application, String source, Map variables) throws RestException { -buildUserEvent(eventName, application, source, variables); -String json = httpActionSync(); -} - -@Override -public void userEvent(String eventName, String application, String source, Map variables, AriCallback callback) { -buildUserEvent(eventName, application, source, variables); -httpActionAsync(callback); -} - -/********************************************************** - * WebSocket connection for events. - * - * - * @since ari_1_9_0 - *********************************************************/ -public Message eventWebsocket(String app, boolean subscribeAll) throws RestException{ - throw new UnsupportedOperationException("Method availble from ..."); -}; - -/********************************************************** - * - * - * @since ari_1_9_0 - *********************************************************/ -public void eventWebsocket(String app, boolean subscribeAll, AriCallback callback){ - throw new UnsupportedOperationException("Method availble from ..."); -}; - -}; - diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_8_0/actions/ActionPlaybacks_impl_ari_1_8_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_8_0/actions/ActionPlaybacks_impl_ari_1_8_0.java deleted file mode 100644 index 5423819a..00000000 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_8_0/actions/ActionPlaybacks_impl_ari_1_8_0.java +++ /dev/null @@ -1,107 +0,0 @@ -package ch.loway.oss.ari4java.generated.ari_1_8_0.actions; - -// ---------------------------------------------------- -// THIS CLASS WAS GENERATED AUTOMATICALLY -// PLEASE DO NOT EDIT -// Generated on: Tue Dec 19 09:55:49 CET 2017 -// ---------------------------------------------------- - -import ch.loway.oss.ari4java.generated.*; -import java.util.Date; -import java.util.List; -import java.util.Map; -import java.util.ArrayList; -import ch.loway.oss.ari4java.tools.BaseAriAction; -import ch.loway.oss.ari4java.tools.RestException; -import ch.loway.oss.ari4java.tools.AriCallback; -import ch.loway.oss.ari4java.tools.HttpParam; -import ch.loway.oss.ari4java.tools.HttpResponse; -import com.fasterxml.jackson.core.type.TypeReference; -import ch.loway.oss.ari4java.generated.ari_1_8_0.models.*; - -/********************************************************** - * - * Generated by: Apis - *********************************************************/ - - -public class ActionPlaybacks_impl_ari_1_8_0 extends BaseAriAction implements ActionPlaybacks { -/********************************************************** - * Control object for a playback operation. - * - * Get a playback's details. - *********************************************************/ -private void buildGet(String playbackId) { -reset(); -url = "/playbacks/" + playbackId + ""; -method = "GET"; -lE.add( HttpResponse.build( 404, "The playback cannot be found") ); -} - -@Override -public Playback get(String playbackId) throws RestException { -buildGet(playbackId); -String json = httpActionSync(); -return deserializeJson( json, Playback_impl_ari_1_8_0.class ); -} - -@Override -public void get(String playbackId, AriCallback callback) { -buildGet(playbackId); -httpActionAsync(callback, Playback_impl_ari_1_8_0.class); -} - -/********************************************************** - * Control object for a playback operation. - * - * Stop a playback. - *********************************************************/ -private void buildStop(String playbackId) { -reset(); -url = "/playbacks/" + playbackId + ""; -method = "DELETE"; -lE.add( HttpResponse.build( 404, "The playback cannot be found") ); -} - -@Override -public void stop(String playbackId) throws RestException { -buildStop(playbackId); -String json = httpActionSync(); -} - -@Override -public void stop(String playbackId, AriCallback callback) { -buildStop(playbackId); -httpActionAsync(callback); -} - -/********************************************************** - * Control object for a playback operation. - * - * Control a playback. - *********************************************************/ -private void buildControl(String playbackId, String operation) { -reset(); -url = "/playbacks/" + playbackId + "/control"; -method = "POST"; -lParamQuery.add( HttpParam.build( "operation", operation) ); -lE.add( HttpResponse.build( 400, "The provided operation parameter was invalid") ); -lE.add( HttpResponse.build( 404, "The playback cannot be found") ); -lE.add( HttpResponse.build( 409, "The operation cannot be performed in the playback's current state") ); -} - -@Override -public void control(String playbackId, String operation) throws RestException { -buildControl(playbackId, operation); -String json = httpActionSync(); -} - -@Override -public void control(String playbackId, String operation, AriCallback callback) { -buildControl(playbackId, operation); -httpActionAsync(callback); -} - -/** No missing signatures from interface */ -}; - diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_8_0/actions/ActionRecordings_impl_ari_1_8_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_8_0/actions/ActionRecordings_impl_ari_1_8_0.java deleted file mode 100644 index c43281fc..00000000 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_8_0/actions/ActionRecordings_impl_ari_1_8_0.java +++ /dev/null @@ -1,325 +0,0 @@ -package ch.loway.oss.ari4java.generated.ari_1_8_0.actions; - -// ---------------------------------------------------- -// THIS CLASS WAS GENERATED AUTOMATICALLY -// PLEASE DO NOT EDIT -// Generated on: Tue Dec 19 09:55:49 CET 2017 -// ---------------------------------------------------- - -import ch.loway.oss.ari4java.generated.*; -import java.util.Date; -import java.util.List; -import java.util.Map; -import java.util.ArrayList; -import ch.loway.oss.ari4java.tools.BaseAriAction; -import ch.loway.oss.ari4java.tools.RestException; -import ch.loway.oss.ari4java.tools.AriCallback; -import ch.loway.oss.ari4java.tools.HttpParam; -import ch.loway.oss.ari4java.tools.HttpResponse; -import com.fasterxml.jackson.core.type.TypeReference; -import ch.loway.oss.ari4java.generated.ari_1_8_0.models.*; - -/********************************************************** - * - * Generated by: Apis - *********************************************************/ - - -public class ActionRecordings_impl_ari_1_8_0 extends BaseAriAction implements ActionRecordings { -/********************************************************** - * A recording that is in progress - * - * List live recordings. - *********************************************************/ -private void buildGetLive(String recordingName) { -reset(); -url = "/recordings/live/" + recordingName + ""; -method = "GET"; -lE.add( HttpResponse.build( 404, "Recording not found") ); -} - -@Override -public LiveRecording getLive(String recordingName) throws RestException { -buildGetLive(recordingName); -String json = httpActionSync(); -return deserializeJson( json, LiveRecording_impl_ari_1_8_0.class ); -} - -@Override -public void getLive(String recordingName, AriCallback callback) { -buildGetLive(recordingName); -httpActionAsync(callback, LiveRecording_impl_ari_1_8_0.class); -} - -/********************************************************** - * A recording that is in progress - * - * Stop a live recording and discard it. - *********************************************************/ -private void buildCancel(String recordingName) { -reset(); -url = "/recordings/live/" + recordingName + ""; -method = "DELETE"; -lE.add( HttpResponse.build( 404, "Recording not found") ); -} - -@Override -public void cancel(String recordingName) throws RestException { -buildCancel(recordingName); -String json = httpActionSync(); -} - -@Override -public void cancel(String recordingName, AriCallback callback) { -buildCancel(recordingName); -httpActionAsync(callback); -} - -/********************************************************** - * - * - * Mute a live recording. - * Muting a recording suspends silence detection, which will be restarted when the recording is unmuted. - *********************************************************/ -private void buildMute(String recordingName) { -reset(); -url = "/recordings/live/" + recordingName + "/mute"; -method = "POST"; -lE.add( HttpResponse.build( 404, "Recording not found") ); -lE.add( HttpResponse.build( 409, "Recording not in session") ); -} - -@Override -public void mute(String recordingName) throws RestException { -buildMute(recordingName); -String json = httpActionSync(); -} - -@Override -public void mute(String recordingName, AriCallback callback) { -buildMute(recordingName); -httpActionAsync(callback); -} - -/********************************************************** - * - * - * Unmute a live recording. - *********************************************************/ -private void buildUnmute(String recordingName) { -reset(); -url = "/recordings/live/" + recordingName + "/mute"; -method = "DELETE"; -lE.add( HttpResponse.build( 404, "Recording not found") ); -lE.add( HttpResponse.build( 409, "Recording not in session") ); -} - -@Override -public void unmute(String recordingName) throws RestException { -buildUnmute(recordingName); -String json = httpActionSync(); -} - -@Override -public void unmute(String recordingName, AriCallback callback) { -buildUnmute(recordingName); -httpActionAsync(callback); -} - -/********************************************************** - * - * - * Pause a live recording. - * Pausing a recording suspends silence detection, which will be restarted when the recording is unpaused. Paused time is not included in the accounting for maxDurationSeconds. - *********************************************************/ -private void buildPause(String recordingName) { -reset(); -url = "/recordings/live/" + recordingName + "/pause"; -method = "POST"; -lE.add( HttpResponse.build( 404, "Recording not found") ); -lE.add( HttpResponse.build( 409, "Recording not in session") ); -} - -@Override -public void pause(String recordingName) throws RestException { -buildPause(recordingName); -String json = httpActionSync(); -} - -@Override -public void pause(String recordingName, AriCallback callback) { -buildPause(recordingName); -httpActionAsync(callback); -} - -/********************************************************** - * - * - * Unpause a live recording. - *********************************************************/ -private void buildUnpause(String recordingName) { -reset(); -url = "/recordings/live/" + recordingName + "/pause"; -method = "DELETE"; -lE.add( HttpResponse.build( 404, "Recording not found") ); -lE.add( HttpResponse.build( 409, "Recording not in session") ); -} - -@Override -public void unpause(String recordingName) throws RestException { -buildUnpause(recordingName); -String json = httpActionSync(); -} - -@Override -public void unpause(String recordingName, AriCallback callback) { -buildUnpause(recordingName); -httpActionAsync(callback); -} - -/********************************************************** - * - * - * Stop a live recording and store it. - *********************************************************/ -private void buildStop(String recordingName) { -reset(); -url = "/recordings/live/" + recordingName + "/stop"; -method = "POST"; -lE.add( HttpResponse.build( 404, "Recording not found") ); -} - -@Override -public void stop(String recordingName) throws RestException { -buildStop(recordingName); -String json = httpActionSync(); -} - -@Override -public void stop(String recordingName, AriCallback callback) { -buildStop(recordingName); -httpActionAsync(callback); -} - -/********************************************************** - * Recordings - * - * List recordings that are complete. - *********************************************************/ -private void buildListStored() { -reset(); -url = "/recordings/stored"; -method = "GET"; -} - -@Override -public List listStored() throws RestException { -buildListStored(); -String json = httpActionSync(); -return deserializeJsonAsAbstractList( json, - new TypeReference>() {} ); -} - -@Override -public void listStored(AriCallback> callback) { -buildListStored(); -httpActionAsync(callback, new TypeReference>() {}); -} - -/********************************************************** - * Individual recording - * - * Get a stored recording's details. - *********************************************************/ -private void buildGetStored(String recordingName) { -reset(); -url = "/recordings/stored/" + recordingName + ""; -method = "GET"; -lE.add( HttpResponse.build( 404, "Recording not found") ); -} - -@Override -public StoredRecording getStored(String recordingName) throws RestException { -buildGetStored(recordingName); -String json = httpActionSync(); -return deserializeJson( json, StoredRecording_impl_ari_1_8_0.class ); -} - -@Override -public void getStored(String recordingName, AriCallback callback) { -buildGetStored(recordingName); -httpActionAsync(callback, StoredRecording_impl_ari_1_8_0.class); -} - -/********************************************************** - * Individual recording - * - * Delete a stored recording. - *********************************************************/ -private void buildDeleteStored(String recordingName) { -reset(); -url = "/recordings/stored/" + recordingName + ""; -method = "DELETE"; -lE.add( HttpResponse.build( 404, "Recording not found") ); -} - -@Override -public void deleteStored(String recordingName) throws RestException { -buildDeleteStored(recordingName); -String json = httpActionSync(); -} - -@Override -public void deleteStored(String recordingName, AriCallback callback) { -buildDeleteStored(recordingName); -httpActionAsync(callback); -} - -/********************************************************** - * Copy an individual recording - * - * Copy a stored recording. - *********************************************************/ -private void buildCopyStored(String recordingName, String destinationRecordingName) { -reset(); -url = "/recordings/stored/" + recordingName + "/copy"; -method = "POST"; -lParamQuery.add( HttpParam.build( "destinationRecordingName", destinationRecordingName) ); -lE.add( HttpResponse.build( 404, "Recording not found") ); -lE.add( HttpResponse.build( 409, "A recording with the same name already exists on the system") ); -} - -@Override -public StoredRecording copyStored(String recordingName, String destinationRecordingName) throws RestException { -buildCopyStored(recordingName, destinationRecordingName); -String json = httpActionSync(); -return deserializeJson( json, StoredRecording_impl_ari_1_8_0.class ); -} - -@Override -public void copyStored(String recordingName, String destinationRecordingName, AriCallback callback) { -buildCopyStored(recordingName, destinationRecordingName); -httpActionAsync(callback, StoredRecording_impl_ari_1_8_0.class); -} - -/********************************************************** - * - * - * @since ari_1_10_0 - *********************************************************/ -public void getStoredFile(String recordingName, AriCallback callback){ - throw new UnsupportedOperationException("Method availble from ..."); -}; - -/********************************************************** - * Get the file associated with the stored recording. - * - * - * @since ari_1_10_0 - *********************************************************/ -public byte[] getStoredFile(String recordingName) throws RestException{ - throw new UnsupportedOperationException("Method availble from ..."); -}; - -}; - diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_8_0/actions/ActionSounds_impl_ari_1_8_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_8_0/actions/ActionSounds_impl_ari_1_8_0.java deleted file mode 100644 index 64dbcc8c..00000000 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_8_0/actions/ActionSounds_impl_ari_1_8_0.java +++ /dev/null @@ -1,82 +0,0 @@ -package ch.loway.oss.ari4java.generated.ari_1_8_0.actions; - -// ---------------------------------------------------- -// THIS CLASS WAS GENERATED AUTOMATICALLY -// PLEASE DO NOT EDIT -// Generated on: Tue Dec 19 09:55:49 CET 2017 -// ---------------------------------------------------- - -import ch.loway.oss.ari4java.generated.*; -import java.util.Date; -import java.util.List; -import java.util.Map; -import java.util.ArrayList; -import ch.loway.oss.ari4java.tools.BaseAriAction; -import ch.loway.oss.ari4java.tools.RestException; -import ch.loway.oss.ari4java.tools.AriCallback; -import ch.loway.oss.ari4java.tools.HttpParam; -import ch.loway.oss.ari4java.tools.HttpResponse; -import com.fasterxml.jackson.core.type.TypeReference; -import ch.loway.oss.ari4java.generated.ari_1_8_0.models.*; - -/********************************************************** - * - * Generated by: Apis - *********************************************************/ - - -public class ActionSounds_impl_ari_1_8_0 extends BaseAriAction implements ActionSounds { -/********************************************************** - * Sounds - * - * List all sounds. - *********************************************************/ -private void buildList(String lang, String format) { -reset(); -url = "/sounds"; -method = "GET"; -lParamQuery.add( HttpParam.build( "lang", lang) ); -lParamQuery.add( HttpParam.build( "format", format) ); -} - -@Override -public List list(String lang, String format) throws RestException { -buildList(lang, format); -String json = httpActionSync(); -return deserializeJsonAsAbstractList( json, - new TypeReference>() {} ); -} - -@Override -public void list(String lang, String format, AriCallback> callback) { -buildList(lang, format); -httpActionAsync(callback, new TypeReference>() {}); -} - -/********************************************************** - * Individual sound - * - * Get a sound's details. - *********************************************************/ -private void buildGet(String soundId) { -reset(); -url = "/sounds/" + soundId + ""; -method = "GET"; -} - -@Override -public Sound get(String soundId) throws RestException { -buildGet(soundId); -String json = httpActionSync(); -return deserializeJson( json, Sound_impl_ari_1_8_0.class ); -} - -@Override -public void get(String soundId, AriCallback callback) { -buildGet(soundId); -httpActionAsync(callback, Sound_impl_ari_1_8_0.class); -} - -/** No missing signatures from interface */ -}; - diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_8_0/models/ApplicationReplaced_impl_ari_1_8_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_8_0/models/ApplicationReplaced_impl_ari_1_8_0.java deleted file mode 100644 index a0c3a629..00000000 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_8_0/models/ApplicationReplaced_impl_ari_1_8_0.java +++ /dev/null @@ -1,28 +0,0 @@ -package ch.loway.oss.ari4java.generated.ari_1_8_0.models; - -// ---------------------------------------------------- -// THIS CLASS WAS GENERATED AUTOMATICALLY -// PLEASE DO NOT EDIT -// Generated on: Tue Dec 19 09:55:49 CET 2017 -// ---------------------------------------------------- - -import ch.loway.oss.ari4java.generated.*; -import com.fasterxml.jackson.databind.annotation.JsonDeserialize; -import java.util.Date; -import java.util.List; -import java.util.Map; - -/********************************************************** - * Notification that another WebSocket has taken over for an application. - * - * An application may only be subscribed to by a single WebSocket at a time. If multiple WebSockets attempt to subscribe to the same application, the newer WebSocket wins, and the older one receives this event. - * - * Defined in file: events.json - * Generated by: Model - *********************************************************/ - -public class ApplicationReplaced_impl_ari_1_8_0 extends Event_impl_ari_1_8_0 implements ApplicationReplaced, java.io.Serializable { -private static final long serialVersionUID = 1L; -/** No missing signatures from interface */ -} - diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_8_0/models/Application_impl_ari_1_8_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_8_0/models/Application_impl_ari_1_8_0.java deleted file mode 100644 index a8b72f11..00000000 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_8_0/models/Application_impl_ari_1_8_0.java +++ /dev/null @@ -1,81 +0,0 @@ -package ch.loway.oss.ari4java.generated.ari_1_8_0.models; - -// ---------------------------------------------------- -// THIS CLASS WAS GENERATED AUTOMATICALLY -// PLEASE DO NOT EDIT -// Generated on: Tue Dec 19 09:55:49 CET 2017 -// ---------------------------------------------------- - -import ch.loway.oss.ari4java.generated.*; -import com.fasterxml.jackson.databind.annotation.JsonDeserialize; -import java.util.Date; -import java.util.List; -import java.util.Map; - -/********************************************************** - * Details of a Stasis application - * - * Defined in file: applications.json - * Generated by: Model - *********************************************************/ - -public class Application_impl_ari_1_8_0 implements Application, java.io.Serializable { -private static final long serialVersionUID = 1L; - /** Id's for bridges subscribed to. */ - private List bridge_ids; - public List getBridge_ids() { - return bridge_ids; - } - - @JsonDeserialize( contentAs=String.class ) - public void setBridge_ids(List val ) { - bridge_ids = val; - } - - /** Id's for channels subscribed to. */ - private List channel_ids; - public List getChannel_ids() { - return channel_ids; - } - - @JsonDeserialize( contentAs=String.class ) - public void setChannel_ids(List val ) { - channel_ids = val; - } - - /** Names of the devices subscribed to. */ - private List device_names; - public List getDevice_names() { - return device_names; - } - - @JsonDeserialize( contentAs=String.class ) - public void setDevice_names(List val ) { - device_names = val; - } - - /** {tech}/{resource} for endpoints subscribed to. */ - private List endpoint_ids; - public List getEndpoint_ids() { - return endpoint_ids; - } - - @JsonDeserialize( contentAs=String.class ) - public void setEndpoint_ids(List val ) { - endpoint_ids = val; - } - - /** Name of this application */ - private String name; - public String getName() { - return name; - } - - @JsonDeserialize( as=String.class ) - public void setName(String val ) { - name = val; - } - -/** No missing signatures from interface */ -} - diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_8_0/models/AsteriskInfo_impl_ari_1_8_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_8_0/models/AsteriskInfo_impl_ari_1_8_0.java deleted file mode 100644 index b90fde20..00000000 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_8_0/models/AsteriskInfo_impl_ari_1_8_0.java +++ /dev/null @@ -1,70 +0,0 @@ -package ch.loway.oss.ari4java.generated.ari_1_8_0.models; - -// ---------------------------------------------------- -// THIS CLASS WAS GENERATED AUTOMATICALLY -// PLEASE DO NOT EDIT -// Generated on: Tue Dec 19 09:55:49 CET 2017 -// ---------------------------------------------------- - -import ch.loway.oss.ari4java.generated.*; -import com.fasterxml.jackson.databind.annotation.JsonDeserialize; -import java.util.Date; -import java.util.List; -import java.util.Map; - -/********************************************************** - * Asterisk system information - * - * Defined in file: asterisk.json - * Generated by: Model - *********************************************************/ - -public class AsteriskInfo_impl_ari_1_8_0 implements AsteriskInfo, java.io.Serializable { -private static final long serialVersionUID = 1L; - /** Info about how Asterisk was built */ - private BuildInfo build; - public BuildInfo getBuild() { - return build; - } - - @JsonDeserialize( as=BuildInfo_impl_ari_1_8_0.class ) - public void setBuild(BuildInfo val ) { - build = val; - } - - /** Info about Asterisk configuration */ - private ConfigInfo config; - public ConfigInfo getConfig() { - return config; - } - - @JsonDeserialize( as=ConfigInfo_impl_ari_1_8_0.class ) - public void setConfig(ConfigInfo val ) { - config = val; - } - - /** Info about Asterisk status */ - private StatusInfo status; - public StatusInfo getStatus() { - return status; - } - - @JsonDeserialize( as=StatusInfo_impl_ari_1_8_0.class ) - public void setStatus(StatusInfo val ) { - status = val; - } - - /** Info about the system running Asterisk */ - private SystemInfo system; - public SystemInfo getSystem() { - return system; - } - - @JsonDeserialize( as=SystemInfo_impl_ari_1_8_0.class ) - public void setSystem(SystemInfo val ) { - system = val; - } - -/** No missing signatures from interface */ -} - diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_8_0/models/BridgeAttendedTransfer_impl_ari_1_8_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_8_0/models/BridgeAttendedTransfer_impl_ari_1_8_0.java deleted file mode 100644 index 89b28f39..00000000 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_8_0/models/BridgeAttendedTransfer_impl_ari_1_8_0.java +++ /dev/null @@ -1,202 +0,0 @@ -package ch.loway.oss.ari4java.generated.ari_1_8_0.models; - -// ---------------------------------------------------- -// THIS CLASS WAS GENERATED AUTOMATICALLY -// PLEASE DO NOT EDIT -// Generated on: Tue Dec 19 09:55:49 CET 2017 -// ---------------------------------------------------- - -import ch.loway.oss.ari4java.generated.*; -import com.fasterxml.jackson.databind.annotation.JsonDeserialize; -import java.util.Date; -import java.util.List; -import java.util.Map; - -/********************************************************** - * Notification that an attended transfer has occurred. - * - * Defined in file: events.json - * Generated by: Model - *********************************************************/ - -public class BridgeAttendedTransfer_impl_ari_1_8_0 extends Event_impl_ari_1_8_0 implements BridgeAttendedTransfer, java.io.Serializable { -private static final long serialVersionUID = 1L; - /** Application that has been transferred into */ - private String destination_application; - public String getDestination_application() { - return destination_application; - } - - @JsonDeserialize( as=String.class ) - public void setDestination_application(String val ) { - destination_application = val; - } - - /** Bridge that survived the merge result */ - private String destination_bridge; - public String getDestination_bridge() { - return destination_bridge; - } - - @JsonDeserialize( as=String.class ) - public void setDestination_bridge(String val ) { - destination_bridge = val; - } - - /** First leg of a link transfer result */ - private Channel destination_link_first_leg; - public Channel getDestination_link_first_leg() { - return destination_link_first_leg; - } - - @JsonDeserialize( as=Channel_impl_ari_1_8_0.class ) - public void setDestination_link_first_leg(Channel val ) { - destination_link_first_leg = val; - } - - /** Second leg of a link transfer result */ - private Channel destination_link_second_leg; - public Channel getDestination_link_second_leg() { - return destination_link_second_leg; - } - - @JsonDeserialize( as=Channel_impl_ari_1_8_0.class ) - public void setDestination_link_second_leg(Channel val ) { - destination_link_second_leg = val; - } - - /** Bridge that survived the threeway result */ - private Bridge destination_threeway_bridge; - public Bridge getDestination_threeway_bridge() { - return destination_threeway_bridge; - } - - @JsonDeserialize( as=Bridge_impl_ari_1_8_0.class ) - public void setDestination_threeway_bridge(Bridge val ) { - destination_threeway_bridge = val; - } - - /** Transferer channel that survived the threeway result */ - private Channel destination_threeway_channel; - public Channel getDestination_threeway_channel() { - return destination_threeway_channel; - } - - @JsonDeserialize( as=Channel_impl_ari_1_8_0.class ) - public void setDestination_threeway_channel(Channel val ) { - destination_threeway_channel = val; - } - - /** How the transfer was accomplished */ - private String destination_type; - public String getDestination_type() { - return destination_type; - } - - @JsonDeserialize( as=String.class ) - public void setDestination_type(String val ) { - destination_type = val; - } - - /** Whether the transfer was externally initiated or not */ - private boolean is_external; - public boolean getIs_external() { - return is_external; - } - - @JsonDeserialize( as=boolean.class ) - public void setIs_external(boolean val ) { - is_external = val; - } - - /** The channel that is replacing transferer_first_leg in the swap */ - private Channel replace_channel; - public Channel getReplace_channel() { - return replace_channel; - } - - @JsonDeserialize( as=Channel_impl_ari_1_8_0.class ) - public void setReplace_channel(Channel val ) { - replace_channel = val; - } - - /** The result of the transfer attempt */ - private String result; - public String getResult() { - return result; - } - - @JsonDeserialize( as=String.class ) - public void setResult(String val ) { - result = val; - } - - /** The channel that is being transferred to */ - private Channel transfer_target; - public Channel getTransfer_target() { - return transfer_target; - } - - @JsonDeserialize( as=Channel_impl_ari_1_8_0.class ) - public void setTransfer_target(Channel val ) { - transfer_target = val; - } - - /** The channel that is being transferred */ - private Channel transferee; - public Channel getTransferee() { - return transferee; - } - - @JsonDeserialize( as=Channel_impl_ari_1_8_0.class ) - public void setTransferee(Channel val ) { - transferee = val; - } - - /** First leg of the transferer */ - private Channel transferer_first_leg; - public Channel getTransferer_first_leg() { - return transferer_first_leg; - } - - @JsonDeserialize( as=Channel_impl_ari_1_8_0.class ) - public void setTransferer_first_leg(Channel val ) { - transferer_first_leg = val; - } - - /** Bridge the transferer first leg is in */ - private Bridge transferer_first_leg_bridge; - public Bridge getTransferer_first_leg_bridge() { - return transferer_first_leg_bridge; - } - - @JsonDeserialize( as=Bridge_impl_ari_1_8_0.class ) - public void setTransferer_first_leg_bridge(Bridge val ) { - transferer_first_leg_bridge = val; - } - - /** Second leg of the transferer */ - private Channel transferer_second_leg; - public Channel getTransferer_second_leg() { - return transferer_second_leg; - } - - @JsonDeserialize( as=Channel_impl_ari_1_8_0.class ) - public void setTransferer_second_leg(Channel val ) { - transferer_second_leg = val; - } - - /** Bridge the transferer second leg is in */ - private Bridge transferer_second_leg_bridge; - public Bridge getTransferer_second_leg_bridge() { - return transferer_second_leg_bridge; - } - - @JsonDeserialize( as=Bridge_impl_ari_1_8_0.class ) - public void setTransferer_second_leg_bridge(Bridge val ) { - transferer_second_leg_bridge = val; - } - -/** No missing signatures from interface */ -} - diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_8_0/models/BridgeBlindTransfer_impl_ari_1_8_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_8_0/models/BridgeBlindTransfer_impl_ari_1_8_0.java deleted file mode 100644 index 7c6c19d1..00000000 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_8_0/models/BridgeBlindTransfer_impl_ari_1_8_0.java +++ /dev/null @@ -1,114 +0,0 @@ -package ch.loway.oss.ari4java.generated.ari_1_8_0.models; - -// ---------------------------------------------------- -// THIS CLASS WAS GENERATED AUTOMATICALLY -// PLEASE DO NOT EDIT -// Generated on: Tue Dec 19 09:55:49 CET 2017 -// ---------------------------------------------------- - -import ch.loway.oss.ari4java.generated.*; -import com.fasterxml.jackson.databind.annotation.JsonDeserialize; -import java.util.Date; -import java.util.List; -import java.util.Map; - -/********************************************************** - * Notification that a blind transfer has occurred. - * - * Defined in file: events.json - * Generated by: Model - *********************************************************/ - -public class BridgeBlindTransfer_impl_ari_1_8_0 extends Event_impl_ari_1_8_0 implements BridgeBlindTransfer, java.io.Serializable { -private static final long serialVersionUID = 1L; - /** The bridge being transferred */ - private Bridge bridge; - public Bridge getBridge() { - return bridge; - } - - @JsonDeserialize( as=Bridge_impl_ari_1_8_0.class ) - public void setBridge(Bridge val ) { - bridge = val; - } - - /** The channel performing the blind transfer */ - private Channel channel; - public Channel getChannel() { - return channel; - } - - @JsonDeserialize( as=Channel_impl_ari_1_8_0.class ) - public void setChannel(Channel val ) { - channel = val; - } - - /** The context transferred to */ - private String context; - public String getContext() { - return context; - } - - @JsonDeserialize( as=String.class ) - public void setContext(String val ) { - context = val; - } - - /** The extension transferred to */ - private String exten; - public String getExten() { - return exten; - } - - @JsonDeserialize( as=String.class ) - public void setExten(String val ) { - exten = val; - } - - /** Whether the transfer was externally initiated or not */ - private boolean is_external; - public boolean getIs_external() { - return is_external; - } - - @JsonDeserialize( as=boolean.class ) - public void setIs_external(boolean val ) { - is_external = val; - } - - /** The channel that is replacing transferer when the transferee(s) can not be transferred directly */ - private Channel replace_channel; - public Channel getReplace_channel() { - return replace_channel; - } - - @JsonDeserialize( as=Channel_impl_ari_1_8_0.class ) - public void setReplace_channel(Channel val ) { - replace_channel = val; - } - - /** The result of the transfer attempt */ - private String result; - public String getResult() { - return result; - } - - @JsonDeserialize( as=String.class ) - public void setResult(String val ) { - result = val; - } - - /** The channel that is being transferred */ - private Channel transferee; - public Channel getTransferee() { - return transferee; - } - - @JsonDeserialize( as=Channel_impl_ari_1_8_0.class ) - public void setTransferee(Channel val ) { - transferee = val; - } - -/** No missing signatures from interface */ -} - diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_8_0/models/BridgeCreated_impl_ari_1_8_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_8_0/models/BridgeCreated_impl_ari_1_8_0.java deleted file mode 100644 index f5d11cd9..00000000 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_8_0/models/BridgeCreated_impl_ari_1_8_0.java +++ /dev/null @@ -1,37 +0,0 @@ -package ch.loway.oss.ari4java.generated.ari_1_8_0.models; - -// ---------------------------------------------------- -// THIS CLASS WAS GENERATED AUTOMATICALLY -// PLEASE DO NOT EDIT -// Generated on: Tue Dec 19 09:55:49 CET 2017 -// ---------------------------------------------------- - -import ch.loway.oss.ari4java.generated.*; -import com.fasterxml.jackson.databind.annotation.JsonDeserialize; -import java.util.Date; -import java.util.List; -import java.util.Map; - -/********************************************************** - * Notification that a bridge has been created. - * - * Defined in file: events.json - * Generated by: Model - *********************************************************/ - -public class BridgeCreated_impl_ari_1_8_0 extends Event_impl_ari_1_8_0 implements BridgeCreated, java.io.Serializable { -private static final long serialVersionUID = 1L; - /** */ - private Bridge bridge; - public Bridge getBridge() { - return bridge; - } - - @JsonDeserialize( as=Bridge_impl_ari_1_8_0.class ) - public void setBridge(Bridge val ) { - bridge = val; - } - -/** No missing signatures from interface */ -} - diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_8_0/models/BridgeDestroyed_impl_ari_1_8_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_8_0/models/BridgeDestroyed_impl_ari_1_8_0.java deleted file mode 100644 index a52cfd65..00000000 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_8_0/models/BridgeDestroyed_impl_ari_1_8_0.java +++ /dev/null @@ -1,37 +0,0 @@ -package ch.loway.oss.ari4java.generated.ari_1_8_0.models; - -// ---------------------------------------------------- -// THIS CLASS WAS GENERATED AUTOMATICALLY -// PLEASE DO NOT EDIT -// Generated on: Tue Dec 19 09:55:49 CET 2017 -// ---------------------------------------------------- - -import ch.loway.oss.ari4java.generated.*; -import com.fasterxml.jackson.databind.annotation.JsonDeserialize; -import java.util.Date; -import java.util.List; -import java.util.Map; - -/********************************************************** - * Notification that a bridge has been destroyed. - * - * Defined in file: events.json - * Generated by: Model - *********************************************************/ - -public class BridgeDestroyed_impl_ari_1_8_0 extends Event_impl_ari_1_8_0 implements BridgeDestroyed, java.io.Serializable { -private static final long serialVersionUID = 1L; - /** */ - private Bridge bridge; - public Bridge getBridge() { - return bridge; - } - - @JsonDeserialize( as=Bridge_impl_ari_1_8_0.class ) - public void setBridge(Bridge val ) { - bridge = val; - } - -/** No missing signatures from interface */ -} - diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_8_0/models/BridgeMerged_impl_ari_1_8_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_8_0/models/BridgeMerged_impl_ari_1_8_0.java deleted file mode 100644 index f4475462..00000000 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_8_0/models/BridgeMerged_impl_ari_1_8_0.java +++ /dev/null @@ -1,48 +0,0 @@ -package ch.loway.oss.ari4java.generated.ari_1_8_0.models; - -// ---------------------------------------------------- -// THIS CLASS WAS GENERATED AUTOMATICALLY -// PLEASE DO NOT EDIT -// Generated on: Tue Dec 19 09:55:49 CET 2017 -// ---------------------------------------------------- - -import ch.loway.oss.ari4java.generated.*; -import com.fasterxml.jackson.databind.annotation.JsonDeserialize; -import java.util.Date; -import java.util.List; -import java.util.Map; - -/********************************************************** - * Notification that one bridge has merged into another. - * - * Defined in file: events.json - * Generated by: Model - *********************************************************/ - -public class BridgeMerged_impl_ari_1_8_0 extends Event_impl_ari_1_8_0 implements BridgeMerged, java.io.Serializable { -private static final long serialVersionUID = 1L; - /** */ - private Bridge bridge; - public Bridge getBridge() { - return bridge; - } - - @JsonDeserialize( as=Bridge_impl_ari_1_8_0.class ) - public void setBridge(Bridge val ) { - bridge = val; - } - - /** */ - private Bridge bridge_from; - public Bridge getBridge_from() { - return bridge_from; - } - - @JsonDeserialize( as=Bridge_impl_ari_1_8_0.class ) - public void setBridge_from(Bridge val ) { - bridge_from = val; - } - -/** No missing signatures from interface */ -} - diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_8_0/models/Bridge_impl_ari_1_8_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_8_0/models/Bridge_impl_ari_1_8_0.java deleted file mode 100644 index fb50c86e..00000000 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_8_0/models/Bridge_impl_ari_1_8_0.java +++ /dev/null @@ -1,140 +0,0 @@ -package ch.loway.oss.ari4java.generated.ari_1_8_0.models; - -// ---------------------------------------------------- -// THIS CLASS WAS GENERATED AUTOMATICALLY -// PLEASE DO NOT EDIT -// Generated on: Tue Dec 19 09:55:49 CET 2017 -// ---------------------------------------------------- - -import ch.loway.oss.ari4java.generated.*; -import com.fasterxml.jackson.databind.annotation.JsonDeserialize; -import java.util.Date; -import java.util.List; -import java.util.Map; - -/********************************************************** - * The merging of media from one or more channels. - * - * Everyone on the bridge receives the same audio. - * - * Defined in file: bridges.json - * Generated by: Model - *********************************************************/ - -public class Bridge_impl_ari_1_8_0 implements Bridge, java.io.Serializable { -private static final long serialVersionUID = 1L; - /** Bridging class */ - private String bridge_class; - public String getBridge_class() { - return bridge_class; - } - - @JsonDeserialize( as=String.class ) - public void setBridge_class(String val ) { - bridge_class = val; - } - - /** Type of bridge technology */ - private String bridge_type; - public String getBridge_type() { - return bridge_type; - } - - @JsonDeserialize( as=String.class ) - public void setBridge_type(String val ) { - bridge_type = val; - } - - /** Ids of channels participating in this bridge */ - private List channels; - public List getChannels() { - return channels; - } - - @JsonDeserialize( contentAs=String.class ) - public void setChannels(List val ) { - channels = val; - } - - /** Entity that created the bridge */ - private String creator; - public String getCreator() { - return creator; - } - - @JsonDeserialize( as=String.class ) - public void setCreator(String val ) { - creator = val; - } - - /** Unique identifier for this bridge */ - private String id; - public String getId() { - return id; - } - - @JsonDeserialize( as=String.class ) - public void setId(String val ) { - id = val; - } - - /** Name the creator gave the bridge */ - private String name; - public String getName() { - return name; - } - - @JsonDeserialize( as=String.class ) - public void setName(String val ) { - name = val; - } - - /** Name of the current bridging technology */ - private String technology; - public String getTechnology() { - return technology; - } - - @JsonDeserialize( as=String.class ) - public void setTechnology(String val ) { - technology = val; - } - -/********************************************************** - * The video mode the bridge is using. One of 'none', 'talker', or 'single'. - * - * @since ari_2_0_0 - *********************************************************/ - public String getVideo_mode(){ - throw new UnsupportedOperationException("Method availble from ..."); -}; - -/********************************************************** - * The ID of the channel that is the source of video in this bridge, if one exists. - * - * @since ari_2_0_0 - *********************************************************/ - public String getVideo_source_id(){ - throw new UnsupportedOperationException("Method availble from ..."); -}; - -/********************************************************** - * The video mode the bridge is using. One of 'none', 'talker', or 'single'. - * - * @since ari_2_0_0 - *********************************************************/ - public void setVideo_mode(String val ){ - throw new UnsupportedOperationException("Method availble from ..."); -}; - -/********************************************************** - * The ID of the channel that is the source of video in this bridge, if one exists. - * - * @since ari_2_0_0 - *********************************************************/ - public void setVideo_source_id(String val ){ - throw new UnsupportedOperationException("Method availble from ..."); -}; - -} - diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_8_0/models/BuildInfo_impl_ari_1_8_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_8_0/models/BuildInfo_impl_ari_1_8_0.java deleted file mode 100644 index 74196f00..00000000 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_8_0/models/BuildInfo_impl_ari_1_8_0.java +++ /dev/null @@ -1,92 +0,0 @@ -package ch.loway.oss.ari4java.generated.ari_1_8_0.models; - -// ---------------------------------------------------- -// THIS CLASS WAS GENERATED AUTOMATICALLY -// PLEASE DO NOT EDIT -// Generated on: Tue Dec 19 09:55:49 CET 2017 -// ---------------------------------------------------- - -import ch.loway.oss.ari4java.generated.*; -import com.fasterxml.jackson.databind.annotation.JsonDeserialize; -import java.util.Date; -import java.util.List; -import java.util.Map; - -/********************************************************** - * Info about how Asterisk was built - * - * Defined in file: asterisk.json - * Generated by: Model - *********************************************************/ - -public class BuildInfo_impl_ari_1_8_0 implements BuildInfo, java.io.Serializable { -private static final long serialVersionUID = 1L; - /** Date and time when Asterisk was built. */ - private String date; - public String getDate() { - return date; - } - - @JsonDeserialize( as=String.class ) - public void setDate(String val ) { - date = val; - } - - /** Kernel version Asterisk was built on. */ - private String kernel; - public String getKernel() { - return kernel; - } - - @JsonDeserialize( as=String.class ) - public void setKernel(String val ) { - kernel = val; - } - - /** Machine architecture (x86_64, i686, ppc, etc.) */ - private String machine; - public String getMachine() { - return machine; - } - - @JsonDeserialize( as=String.class ) - public void setMachine(String val ) { - machine = val; - } - - /** Compile time options, or empty string if default. */ - private String options; - public String getOptions() { - return options; - } - - @JsonDeserialize( as=String.class ) - public void setOptions(String val ) { - options = val; - } - - /** OS Asterisk was built on. */ - private String os; - public String getOs() { - return os; - } - - @JsonDeserialize( as=String.class ) - public void setOs(String val ) { - os = val; - } - - /** Username that build Asterisk */ - private String user; - public String getUser() { - return user; - } - - @JsonDeserialize( as=String.class ) - public void setUser(String val ) { - user = val; - } - -/** No missing signatures from interface */ -} - diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_8_0/models/CallerID_impl_ari_1_8_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_8_0/models/CallerID_impl_ari_1_8_0.java deleted file mode 100644 index e64ff45d..00000000 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_8_0/models/CallerID_impl_ari_1_8_0.java +++ /dev/null @@ -1,48 +0,0 @@ -package ch.loway.oss.ari4java.generated.ari_1_8_0.models; - -// ---------------------------------------------------- -// THIS CLASS WAS GENERATED AUTOMATICALLY -// PLEASE DO NOT EDIT -// Generated on: Tue Dec 19 09:55:49 CET 2017 -// ---------------------------------------------------- - -import ch.loway.oss.ari4java.generated.*; -import com.fasterxml.jackson.databind.annotation.JsonDeserialize; -import java.util.Date; -import java.util.List; -import java.util.Map; - -/********************************************************** - * Caller identification - * - * Defined in file: channels.json - * Generated by: Model - *********************************************************/ - -public class CallerID_impl_ari_1_8_0 implements CallerID, java.io.Serializable { -private static final long serialVersionUID = 1L; - /** */ - private String name; - public String getName() { - return name; - } - - @JsonDeserialize( as=String.class ) - public void setName(String val ) { - name = val; - } - - /** */ - private String number; - public String getNumber() { - return number; - } - - @JsonDeserialize( as=String.class ) - public void setNumber(String val ) { - number = val; - } - -/** No missing signatures from interface */ -} - diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_8_0/models/ChannelCallerId_impl_ari_1_8_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_8_0/models/ChannelCallerId_impl_ari_1_8_0.java deleted file mode 100644 index 0a56498e..00000000 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_8_0/models/ChannelCallerId_impl_ari_1_8_0.java +++ /dev/null @@ -1,59 +0,0 @@ -package ch.loway.oss.ari4java.generated.ari_1_8_0.models; - -// ---------------------------------------------------- -// THIS CLASS WAS GENERATED AUTOMATICALLY -// PLEASE DO NOT EDIT -// Generated on: Tue Dec 19 09:55:49 CET 2017 -// ---------------------------------------------------- - -import ch.loway.oss.ari4java.generated.*; -import com.fasterxml.jackson.databind.annotation.JsonDeserialize; -import java.util.Date; -import java.util.List; -import java.util.Map; - -/********************************************************** - * Channel changed Caller ID. - * - * Defined in file: events.json - * Generated by: Model - *********************************************************/ - -public class ChannelCallerId_impl_ari_1_8_0 extends Event_impl_ari_1_8_0 implements ChannelCallerId, java.io.Serializable { -private static final long serialVersionUID = 1L; - /** The integer representation of the Caller Presentation value. */ - private int caller_presentation; - public int getCaller_presentation() { - return caller_presentation; - } - - @JsonDeserialize( as=int.class ) - public void setCaller_presentation(int val ) { - caller_presentation = val; - } - - /** The text representation of the Caller Presentation value. */ - private String caller_presentation_txt; - public String getCaller_presentation_txt() { - return caller_presentation_txt; - } - - @JsonDeserialize( as=String.class ) - public void setCaller_presentation_txt(String val ) { - caller_presentation_txt = val; - } - - /** The channel that changed Caller ID. */ - private Channel channel; - public Channel getChannel() { - return channel; - } - - @JsonDeserialize( as=Channel_impl_ari_1_8_0.class ) - public void setChannel(Channel val ) { - channel = val; - } - -/** No missing signatures from interface */ -} - diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_8_0/models/ChannelConnectedLine_impl_ari_1_8_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_8_0/models/ChannelConnectedLine_impl_ari_1_8_0.java deleted file mode 100644 index c0e50fc8..00000000 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_8_0/models/ChannelConnectedLine_impl_ari_1_8_0.java +++ /dev/null @@ -1,37 +0,0 @@ -package ch.loway.oss.ari4java.generated.ari_1_8_0.models; - -// ---------------------------------------------------- -// THIS CLASS WAS GENERATED AUTOMATICALLY -// PLEASE DO NOT EDIT -// Generated on: Tue Dec 19 09:55:49 CET 2017 -// ---------------------------------------------------- - -import ch.loway.oss.ari4java.generated.*; -import com.fasterxml.jackson.databind.annotation.JsonDeserialize; -import java.util.Date; -import java.util.List; -import java.util.Map; - -/********************************************************** - * Channel changed Connected Line. - * - * Defined in file: events.json - * Generated by: Model - *********************************************************/ - -public class ChannelConnectedLine_impl_ari_1_8_0 extends Event_impl_ari_1_8_0 implements ChannelConnectedLine, java.io.Serializable { -private static final long serialVersionUID = 1L; - /** The channel whose connected line has changed. */ - private Channel channel; - public Channel getChannel() { - return channel; - } - - @JsonDeserialize( as=Channel_impl_ari_1_8_0.class ) - public void setChannel(Channel val ) { - channel = val; - } - -/** No missing signatures from interface */ -} - diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_8_0/models/ChannelCreated_impl_ari_1_8_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_8_0/models/ChannelCreated_impl_ari_1_8_0.java deleted file mode 100644 index e199bbc9..00000000 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_8_0/models/ChannelCreated_impl_ari_1_8_0.java +++ /dev/null @@ -1,37 +0,0 @@ -package ch.loway.oss.ari4java.generated.ari_1_8_0.models; - -// ---------------------------------------------------- -// THIS CLASS WAS GENERATED AUTOMATICALLY -// PLEASE DO NOT EDIT -// Generated on: Tue Dec 19 09:55:49 CET 2017 -// ---------------------------------------------------- - -import ch.loway.oss.ari4java.generated.*; -import com.fasterxml.jackson.databind.annotation.JsonDeserialize; -import java.util.Date; -import java.util.List; -import java.util.Map; - -/********************************************************** - * Notification that a channel has been created. - * - * Defined in file: events.json - * Generated by: Model - *********************************************************/ - -public class ChannelCreated_impl_ari_1_8_0 extends Event_impl_ari_1_8_0 implements ChannelCreated, java.io.Serializable { -private static final long serialVersionUID = 1L; - /** */ - private Channel channel; - public Channel getChannel() { - return channel; - } - - @JsonDeserialize( as=Channel_impl_ari_1_8_0.class ) - public void setChannel(Channel val ) { - channel = val; - } - -/** No missing signatures from interface */ -} - diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_8_0/models/ChannelDestroyed_impl_ari_1_8_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_8_0/models/ChannelDestroyed_impl_ari_1_8_0.java deleted file mode 100644 index 37e45fed..00000000 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_8_0/models/ChannelDestroyed_impl_ari_1_8_0.java +++ /dev/null @@ -1,59 +0,0 @@ -package ch.loway.oss.ari4java.generated.ari_1_8_0.models; - -// ---------------------------------------------------- -// THIS CLASS WAS GENERATED AUTOMATICALLY -// PLEASE DO NOT EDIT -// Generated on: Tue Dec 19 09:55:49 CET 2017 -// ---------------------------------------------------- - -import ch.loway.oss.ari4java.generated.*; -import com.fasterxml.jackson.databind.annotation.JsonDeserialize; -import java.util.Date; -import java.util.List; -import java.util.Map; - -/********************************************************** - * Notification that a channel has been destroyed. - * - * Defined in file: events.json - * Generated by: Model - *********************************************************/ - -public class ChannelDestroyed_impl_ari_1_8_0 extends Event_impl_ari_1_8_0 implements ChannelDestroyed, java.io.Serializable { -private static final long serialVersionUID = 1L; - /** Integer representation of the cause of the hangup */ - private int cause; - public int getCause() { - return cause; - } - - @JsonDeserialize( as=int.class ) - public void setCause(int val ) { - cause = val; - } - - /** Text representation of the cause of the hangup */ - private String cause_txt; - public String getCause_txt() { - return cause_txt; - } - - @JsonDeserialize( as=String.class ) - public void setCause_txt(String val ) { - cause_txt = val; - } - - /** */ - private Channel channel; - public Channel getChannel() { - return channel; - } - - @JsonDeserialize( as=Channel_impl_ari_1_8_0.class ) - public void setChannel(Channel val ) { - channel = val; - } - -/** No missing signatures from interface */ -} - diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_8_0/models/ChannelDialplan_impl_ari_1_8_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_8_0/models/ChannelDialplan_impl_ari_1_8_0.java deleted file mode 100644 index 6752af7b..00000000 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_8_0/models/ChannelDialplan_impl_ari_1_8_0.java +++ /dev/null @@ -1,59 +0,0 @@ -package ch.loway.oss.ari4java.generated.ari_1_8_0.models; - -// ---------------------------------------------------- -// THIS CLASS WAS GENERATED AUTOMATICALLY -// PLEASE DO NOT EDIT -// Generated on: Tue Dec 19 09:55:49 CET 2017 -// ---------------------------------------------------- - -import ch.loway.oss.ari4java.generated.*; -import com.fasterxml.jackson.databind.annotation.JsonDeserialize; -import java.util.Date; -import java.util.List; -import java.util.Map; - -/********************************************************** - * Channel changed location in the dialplan. - * - * Defined in file: events.json - * Generated by: Model - *********************************************************/ - -public class ChannelDialplan_impl_ari_1_8_0 extends Event_impl_ari_1_8_0 implements ChannelDialplan, java.io.Serializable { -private static final long serialVersionUID = 1L; - /** The channel that changed dialplan location. */ - private Channel channel; - public Channel getChannel() { - return channel; - } - - @JsonDeserialize( as=Channel_impl_ari_1_8_0.class ) - public void setChannel(Channel val ) { - channel = val; - } - - /** The application about to be executed. */ - private String dialplan_app; - public String getDialplan_app() { - return dialplan_app; - } - - @JsonDeserialize( as=String.class ) - public void setDialplan_app(String val ) { - dialplan_app = val; - } - - /** The data to be passed to the application. */ - private String dialplan_app_data; - public String getDialplan_app_data() { - return dialplan_app_data; - } - - @JsonDeserialize( as=String.class ) - public void setDialplan_app_data(String val ) { - dialplan_app_data = val; - } - -/** No missing signatures from interface */ -} - diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_8_0/models/ChannelDtmfReceived_impl_ari_1_8_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_8_0/models/ChannelDtmfReceived_impl_ari_1_8_0.java deleted file mode 100644 index 4683805c..00000000 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_8_0/models/ChannelDtmfReceived_impl_ari_1_8_0.java +++ /dev/null @@ -1,61 +0,0 @@ -package ch.loway.oss.ari4java.generated.ari_1_8_0.models; - -// ---------------------------------------------------- -// THIS CLASS WAS GENERATED AUTOMATICALLY -// PLEASE DO NOT EDIT -// Generated on: Tue Dec 19 09:55:49 CET 2017 -// ---------------------------------------------------- - -import ch.loway.oss.ari4java.generated.*; -import com.fasterxml.jackson.databind.annotation.JsonDeserialize; -import java.util.Date; -import java.util.List; -import java.util.Map; - -/********************************************************** - * DTMF received on a channel. - * - * This event is sent when the DTMF ends. There is no notification about the start of DTMF - * - * Defined in file: events.json - * Generated by: Model - *********************************************************/ - -public class ChannelDtmfReceived_impl_ari_1_8_0 extends Event_impl_ari_1_8_0 implements ChannelDtmfReceived, java.io.Serializable { -private static final long serialVersionUID = 1L; - /** The channel on which DTMF was received */ - private Channel channel; - public Channel getChannel() { - return channel; - } - - @JsonDeserialize( as=Channel_impl_ari_1_8_0.class ) - public void setChannel(Channel val ) { - channel = val; - } - - /** DTMF digit received (0-9, A-E, # or *) */ - private String digit; - public String getDigit() { - return digit; - } - - @JsonDeserialize( as=String.class ) - public void setDigit(String val ) { - digit = val; - } - - /** Number of milliseconds DTMF was received */ - private int duration_ms; - public int getDuration_ms() { - return duration_ms; - } - - @JsonDeserialize( as=int.class ) - public void setDuration_ms(int val ) { - duration_ms = val; - } - -/** No missing signatures from interface */ -} - diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_8_0/models/ChannelEnteredBridge_impl_ari_1_8_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_8_0/models/ChannelEnteredBridge_impl_ari_1_8_0.java deleted file mode 100644 index e0fc849e..00000000 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_8_0/models/ChannelEnteredBridge_impl_ari_1_8_0.java +++ /dev/null @@ -1,48 +0,0 @@ -package ch.loway.oss.ari4java.generated.ari_1_8_0.models; - -// ---------------------------------------------------- -// THIS CLASS WAS GENERATED AUTOMATICALLY -// PLEASE DO NOT EDIT -// Generated on: Tue Dec 19 09:55:49 CET 2017 -// ---------------------------------------------------- - -import ch.loway.oss.ari4java.generated.*; -import com.fasterxml.jackson.databind.annotation.JsonDeserialize; -import java.util.Date; -import java.util.List; -import java.util.Map; - -/********************************************************** - * Notification that a channel has entered a bridge. - * - * Defined in file: events.json - * Generated by: Model - *********************************************************/ - -public class ChannelEnteredBridge_impl_ari_1_8_0 extends Event_impl_ari_1_8_0 implements ChannelEnteredBridge, java.io.Serializable { -private static final long serialVersionUID = 1L; - /** */ - private Bridge bridge; - public Bridge getBridge() { - return bridge; - } - - @JsonDeserialize( as=Bridge_impl_ari_1_8_0.class ) - public void setBridge(Bridge val ) { - bridge = val; - } - - /** */ - private Channel channel; - public Channel getChannel() { - return channel; - } - - @JsonDeserialize( as=Channel_impl_ari_1_8_0.class ) - public void setChannel(Channel val ) { - channel = val; - } - -/** No missing signatures from interface */ -} - diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_8_0/models/ChannelHangupRequest_impl_ari_1_8_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_8_0/models/ChannelHangupRequest_impl_ari_1_8_0.java deleted file mode 100644 index 48ca553f..00000000 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_8_0/models/ChannelHangupRequest_impl_ari_1_8_0.java +++ /dev/null @@ -1,59 +0,0 @@ -package ch.loway.oss.ari4java.generated.ari_1_8_0.models; - -// ---------------------------------------------------- -// THIS CLASS WAS GENERATED AUTOMATICALLY -// PLEASE DO NOT EDIT -// Generated on: Tue Dec 19 09:55:49 CET 2017 -// ---------------------------------------------------- - -import ch.loway.oss.ari4java.generated.*; -import com.fasterxml.jackson.databind.annotation.JsonDeserialize; -import java.util.Date; -import java.util.List; -import java.util.Map; - -/********************************************************** - * A hangup was requested on the channel. - * - * Defined in file: events.json - * Generated by: Model - *********************************************************/ - -public class ChannelHangupRequest_impl_ari_1_8_0 extends Event_impl_ari_1_8_0 implements ChannelHangupRequest, java.io.Serializable { -private static final long serialVersionUID = 1L; - /** Integer representation of the cause of the hangup. */ - private int cause; - public int getCause() { - return cause; - } - - @JsonDeserialize( as=int.class ) - public void setCause(int val ) { - cause = val; - } - - /** The channel on which the hangup was requested. */ - private Channel channel; - public Channel getChannel() { - return channel; - } - - @JsonDeserialize( as=Channel_impl_ari_1_8_0.class ) - public void setChannel(Channel val ) { - channel = val; - } - - /** Whether the hangup request was a soft hangup request. */ - private boolean soft; - public boolean getSoft() { - return soft; - } - - @JsonDeserialize( as=boolean.class ) - public void setSoft(boolean val ) { - soft = val; - } - -/** No missing signatures from interface */ -} - diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_8_0/models/ChannelHold_impl_ari_1_8_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_8_0/models/ChannelHold_impl_ari_1_8_0.java deleted file mode 100644 index cb2db9ce..00000000 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_8_0/models/ChannelHold_impl_ari_1_8_0.java +++ /dev/null @@ -1,48 +0,0 @@ -package ch.loway.oss.ari4java.generated.ari_1_8_0.models; - -// ---------------------------------------------------- -// THIS CLASS WAS GENERATED AUTOMATICALLY -// PLEASE DO NOT EDIT -// Generated on: Tue Dec 19 09:55:49 CET 2017 -// ---------------------------------------------------- - -import ch.loway.oss.ari4java.generated.*; -import com.fasterxml.jackson.databind.annotation.JsonDeserialize; -import java.util.Date; -import java.util.List; -import java.util.Map; - -/********************************************************** - * A channel initiated a media hold. - * - * Defined in file: events.json - * Generated by: Model - *********************************************************/ - -public class ChannelHold_impl_ari_1_8_0 extends Event_impl_ari_1_8_0 implements ChannelHold, java.io.Serializable { -private static final long serialVersionUID = 1L; - /** The channel that initiated the hold event. */ - private Channel channel; - public Channel getChannel() { - return channel; - } - - @JsonDeserialize( as=Channel_impl_ari_1_8_0.class ) - public void setChannel(Channel val ) { - channel = val; - } - - /** The music on hold class that the initiator requested. */ - private String musicclass; - public String getMusicclass() { - return musicclass; - } - - @JsonDeserialize( as=String.class ) - public void setMusicclass(String val ) { - musicclass = val; - } - -/** No missing signatures from interface */ -} - diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_8_0/models/ChannelLeftBridge_impl_ari_1_8_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_8_0/models/ChannelLeftBridge_impl_ari_1_8_0.java deleted file mode 100644 index 153e152f..00000000 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_8_0/models/ChannelLeftBridge_impl_ari_1_8_0.java +++ /dev/null @@ -1,48 +0,0 @@ -package ch.loway.oss.ari4java.generated.ari_1_8_0.models; - -// ---------------------------------------------------- -// THIS CLASS WAS GENERATED AUTOMATICALLY -// PLEASE DO NOT EDIT -// Generated on: Tue Dec 19 09:55:49 CET 2017 -// ---------------------------------------------------- - -import ch.loway.oss.ari4java.generated.*; -import com.fasterxml.jackson.databind.annotation.JsonDeserialize; -import java.util.Date; -import java.util.List; -import java.util.Map; - -/********************************************************** - * Notification that a channel has left a bridge. - * - * Defined in file: events.json - * Generated by: Model - *********************************************************/ - -public class ChannelLeftBridge_impl_ari_1_8_0 extends Event_impl_ari_1_8_0 implements ChannelLeftBridge, java.io.Serializable { -private static final long serialVersionUID = 1L; - /** */ - private Bridge bridge; - public Bridge getBridge() { - return bridge; - } - - @JsonDeserialize( as=Bridge_impl_ari_1_8_0.class ) - public void setBridge(Bridge val ) { - bridge = val; - } - - /** */ - private Channel channel; - public Channel getChannel() { - return channel; - } - - @JsonDeserialize( as=Channel_impl_ari_1_8_0.class ) - public void setChannel(Channel val ) { - channel = val; - } - -/** No missing signatures from interface */ -} - diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_8_0/models/ChannelStateChange_impl_ari_1_8_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_8_0/models/ChannelStateChange_impl_ari_1_8_0.java deleted file mode 100644 index 6923f054..00000000 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_8_0/models/ChannelStateChange_impl_ari_1_8_0.java +++ /dev/null @@ -1,37 +0,0 @@ -package ch.loway.oss.ari4java.generated.ari_1_8_0.models; - -// ---------------------------------------------------- -// THIS CLASS WAS GENERATED AUTOMATICALLY -// PLEASE DO NOT EDIT -// Generated on: Tue Dec 19 09:55:49 CET 2017 -// ---------------------------------------------------- - -import ch.loway.oss.ari4java.generated.*; -import com.fasterxml.jackson.databind.annotation.JsonDeserialize; -import java.util.Date; -import java.util.List; -import java.util.Map; - -/********************************************************** - * Notification of a channel's state change. - * - * Defined in file: events.json - * Generated by: Model - *********************************************************/ - -public class ChannelStateChange_impl_ari_1_8_0 extends Event_impl_ari_1_8_0 implements ChannelStateChange, java.io.Serializable { -private static final long serialVersionUID = 1L; - /** */ - private Channel channel; - public Channel getChannel() { - return channel; - } - - @JsonDeserialize( as=Channel_impl_ari_1_8_0.class ) - public void setChannel(Channel val ) { - channel = val; - } - -/** No missing signatures from interface */ -} - diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_8_0/models/ChannelTalkingFinished_impl_ari_1_8_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_8_0/models/ChannelTalkingFinished_impl_ari_1_8_0.java deleted file mode 100644 index 80fc697a..00000000 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_8_0/models/ChannelTalkingFinished_impl_ari_1_8_0.java +++ /dev/null @@ -1,48 +0,0 @@ -package ch.loway.oss.ari4java.generated.ari_1_8_0.models; - -// ---------------------------------------------------- -// THIS CLASS WAS GENERATED AUTOMATICALLY -// PLEASE DO NOT EDIT -// Generated on: Tue Dec 19 09:55:49 CET 2017 -// ---------------------------------------------------- - -import ch.loway.oss.ari4java.generated.*; -import com.fasterxml.jackson.databind.annotation.JsonDeserialize; -import java.util.Date; -import java.util.List; -import java.util.Map; - -/********************************************************** - * Talking is no longer detected on the channel. - * - * Defined in file: events.json - * Generated by: Model - *********************************************************/ - -public class ChannelTalkingFinished_impl_ari_1_8_0 extends Event_impl_ari_1_8_0 implements ChannelTalkingFinished, java.io.Serializable { -private static final long serialVersionUID = 1L; - /** The channel on which talking completed. */ - private Channel channel; - public Channel getChannel() { - return channel; - } - - @JsonDeserialize( as=Channel_impl_ari_1_8_0.class ) - public void setChannel(Channel val ) { - channel = val; - } - - /** The length of time, in milliseconds, that talking was detected on the channel */ - private int duration; - public int getDuration() { - return duration; - } - - @JsonDeserialize( as=int.class ) - public void setDuration(int val ) { - duration = val; - } - -/** No missing signatures from interface */ -} - diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_8_0/models/ChannelTalkingStarted_impl_ari_1_8_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_8_0/models/ChannelTalkingStarted_impl_ari_1_8_0.java deleted file mode 100644 index eb1d8c4a..00000000 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_8_0/models/ChannelTalkingStarted_impl_ari_1_8_0.java +++ /dev/null @@ -1,37 +0,0 @@ -package ch.loway.oss.ari4java.generated.ari_1_8_0.models; - -// ---------------------------------------------------- -// THIS CLASS WAS GENERATED AUTOMATICALLY -// PLEASE DO NOT EDIT -// Generated on: Tue Dec 19 09:55:49 CET 2017 -// ---------------------------------------------------- - -import ch.loway.oss.ari4java.generated.*; -import com.fasterxml.jackson.databind.annotation.JsonDeserialize; -import java.util.Date; -import java.util.List; -import java.util.Map; - -/********************************************************** - * Talking was detected on the channel. - * - * Defined in file: events.json - * Generated by: Model - *********************************************************/ - -public class ChannelTalkingStarted_impl_ari_1_8_0 extends Event_impl_ari_1_8_0 implements ChannelTalkingStarted, java.io.Serializable { -private static final long serialVersionUID = 1L; - /** The channel on which talking started. */ - private Channel channel; - public Channel getChannel() { - return channel; - } - - @JsonDeserialize( as=Channel_impl_ari_1_8_0.class ) - public void setChannel(Channel val ) { - channel = val; - } - -/** No missing signatures from interface */ -} - diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_8_0/models/ChannelUnhold_impl_ari_1_8_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_8_0/models/ChannelUnhold_impl_ari_1_8_0.java deleted file mode 100644 index 5c287f19..00000000 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_8_0/models/ChannelUnhold_impl_ari_1_8_0.java +++ /dev/null @@ -1,37 +0,0 @@ -package ch.loway.oss.ari4java.generated.ari_1_8_0.models; - -// ---------------------------------------------------- -// THIS CLASS WAS GENERATED AUTOMATICALLY -// PLEASE DO NOT EDIT -// Generated on: Tue Dec 19 09:55:49 CET 2017 -// ---------------------------------------------------- - -import ch.loway.oss.ari4java.generated.*; -import com.fasterxml.jackson.databind.annotation.JsonDeserialize; -import java.util.Date; -import java.util.List; -import java.util.Map; - -/********************************************************** - * A channel initiated a media unhold. - * - * Defined in file: events.json - * Generated by: Model - *********************************************************/ - -public class ChannelUnhold_impl_ari_1_8_0 extends Event_impl_ari_1_8_0 implements ChannelUnhold, java.io.Serializable { -private static final long serialVersionUID = 1L; - /** The channel that initiated the unhold event. */ - private Channel channel; - public Channel getChannel() { - return channel; - } - - @JsonDeserialize( as=Channel_impl_ari_1_8_0.class ) - public void setChannel(Channel val ) { - channel = val; - } - -/** No missing signatures from interface */ -} - diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_8_0/models/ChannelUserevent_impl_ari_1_8_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_8_0/models/ChannelUserevent_impl_ari_1_8_0.java deleted file mode 100644 index ed72c2e0..00000000 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_8_0/models/ChannelUserevent_impl_ari_1_8_0.java +++ /dev/null @@ -1,81 +0,0 @@ -package ch.loway.oss.ari4java.generated.ari_1_8_0.models; - -// ---------------------------------------------------- -// THIS CLASS WAS GENERATED AUTOMATICALLY -// PLEASE DO NOT EDIT -// Generated on: Tue Dec 19 09:55:49 CET 2017 -// ---------------------------------------------------- - -import ch.loway.oss.ari4java.generated.*; -import com.fasterxml.jackson.databind.annotation.JsonDeserialize; -import java.util.Date; -import java.util.List; -import java.util.Map; - -/********************************************************** - * User-generated event with additional user-defined fields in the object. - * - * Defined in file: events.json - * Generated by: Model - *********************************************************/ - -public class ChannelUserevent_impl_ari_1_8_0 extends Event_impl_ari_1_8_0 implements ChannelUserevent, java.io.Serializable { -private static final long serialVersionUID = 1L; - /** A bridge that is signaled with the user event. */ - private Bridge bridge; - public Bridge getBridge() { - return bridge; - } - - @JsonDeserialize( as=Bridge_impl_ari_1_8_0.class ) - public void setBridge(Bridge val ) { - bridge = val; - } - - /** A channel that is signaled with the user event. */ - private Channel channel; - public Channel getChannel() { - return channel; - } - - @JsonDeserialize( as=Channel_impl_ari_1_8_0.class ) - public void setChannel(Channel val ) { - channel = val; - } - - /** A endpoint that is signaled with the user event. */ - private Endpoint endpoint; - public Endpoint getEndpoint() { - return endpoint; - } - - @JsonDeserialize( as=Endpoint_impl_ari_1_8_0.class ) - public void setEndpoint(Endpoint val ) { - endpoint = val; - } - - /** The name of the user event. */ - private String eventname; - public String getEventname() { - return eventname; - } - - @JsonDeserialize( as=String.class ) - public void setEventname(String val ) { - eventname = val; - } - - /** Custom Userevent data */ - private String userevent; - public String getUserevent() { - return userevent; - } - - @JsonDeserialize( as=String.class ) - public void setUserevent(String val ) { - userevent = val; - } - -/** No missing signatures from interface */ -} - diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_8_0/models/ChannelVarset_impl_ari_1_8_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_8_0/models/ChannelVarset_impl_ari_1_8_0.java deleted file mode 100644 index 874cb4ec..00000000 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_8_0/models/ChannelVarset_impl_ari_1_8_0.java +++ /dev/null @@ -1,61 +0,0 @@ -package ch.loway.oss.ari4java.generated.ari_1_8_0.models; - -// ---------------------------------------------------- -// THIS CLASS WAS GENERATED AUTOMATICALLY -// PLEASE DO NOT EDIT -// Generated on: Tue Dec 19 09:55:49 CET 2017 -// ---------------------------------------------------- - -import ch.loway.oss.ari4java.generated.*; -import com.fasterxml.jackson.databind.annotation.JsonDeserialize; -import java.util.Date; -import java.util.List; -import java.util.Map; - -/********************************************************** - * Channel variable changed. - * - * Defined in file: events.json - * Generated by: Model - *********************************************************/ - -public class ChannelVarset_impl_ari_1_8_0 extends Event_impl_ari_1_8_0 implements ChannelVarset, java.io.Serializable { -private static final long serialVersionUID = 1L; - /** The channel on which the variable was set. - -If missing, the variable is a global variable. */ - private Channel channel; - public Channel getChannel() { - return channel; - } - - @JsonDeserialize( as=Channel_impl_ari_1_8_0.class ) - public void setChannel(Channel val ) { - channel = val; - } - - /** The new value of the variable. */ - private String value; - public String getValue() { - return value; - } - - @JsonDeserialize( as=String.class ) - public void setValue(String val ) { - value = val; - } - - /** The variable that changed. */ - private String variable; - public String getVariable() { - return variable; - } - - @JsonDeserialize( as=String.class ) - public void setVariable(String val ) { - variable = val; - } - -/** No missing signatures from interface */ -} - diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_8_0/models/Channel_impl_ari_1_8_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_8_0/models/Channel_impl_ari_1_8_0.java deleted file mode 100644 index 15c36979..00000000 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_8_0/models/Channel_impl_ari_1_8_0.java +++ /dev/null @@ -1,144 +0,0 @@ -package ch.loway.oss.ari4java.generated.ari_1_8_0.models; - -// ---------------------------------------------------- -// THIS CLASS WAS GENERATED AUTOMATICALLY -// PLEASE DO NOT EDIT -// Generated on: Tue Dec 19 09:55:49 CET 2017 -// ---------------------------------------------------- - -import ch.loway.oss.ari4java.generated.*; -import com.fasterxml.jackson.databind.annotation.JsonDeserialize; -import java.util.Date; -import java.util.List; -import java.util.Map; - -/********************************************************** - * A specific communication connection between Asterisk and an Endpoint. - * - * Defined in file: channels.json - * Generated by: Model - *********************************************************/ - -public class Channel_impl_ari_1_8_0 implements Channel, java.io.Serializable { -private static final long serialVersionUID = 1L; - /** */ - private String accountcode; - public String getAccountcode() { - return accountcode; - } - - @JsonDeserialize( as=String.class ) - public void setAccountcode(String val ) { - accountcode = val; - } - - /** */ - private CallerID caller; - public CallerID getCaller() { - return caller; - } - - @JsonDeserialize( as=CallerID_impl_ari_1_8_0.class ) - public void setCaller(CallerID val ) { - caller = val; - } - - /** */ - private CallerID connected; - public CallerID getConnected() { - return connected; - } - - @JsonDeserialize( as=CallerID_impl_ari_1_8_0.class ) - public void setConnected(CallerID val ) { - connected = val; - } - - /** Timestamp when channel was created */ - private Date creationtime; - public Date getCreationtime() { - return creationtime; - } - - @JsonDeserialize( as=Date.class ) - public void setCreationtime(Date val ) { - creationtime = val; - } - - /** Current location in the dialplan */ - private DialplanCEP dialplan; - public DialplanCEP getDialplan() { - return dialplan; - } - - @JsonDeserialize( as=DialplanCEP_impl_ari_1_8_0.class ) - public void setDialplan(DialplanCEP val ) { - dialplan = val; - } - - /** Unique identifier of the channel. - -This is the same as the Uniqueid field in AMI. */ - private String id; - public String getId() { - return id; - } - - @JsonDeserialize( as=String.class ) - public void setId(String val ) { - id = val; - } - - /** The default spoken language */ - private String language; - public String getLanguage() { - return language; - } - - @JsonDeserialize( as=String.class ) - public void setLanguage(String val ) { - language = val; - } - - /** Name of the channel (i.e. SIP/foo-0000a7e3) */ - private String name; - public String getName() { - return name; - } - - @JsonDeserialize( as=String.class ) - public void setName(String val ) { - name = val; - } - - /** */ - private String state; - public String getState() { - return state; - } - - @JsonDeserialize( as=String.class ) - public void setState(String val ) { - state = val; - } - -/********************************************************** - * Channel variables - * - * @since ari_2_0_0 - *********************************************************/ - public String getChannelvars(){ - throw new UnsupportedOperationException("Method availble from ..."); -}; - -/********************************************************** - * Channel variables - * - * @since ari_2_0_0 - *********************************************************/ - public void setChannelvars(String val ){ - throw new UnsupportedOperationException("Method availble from ..."); -}; - -} - diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_8_0/models/ConfigInfo_impl_ari_1_8_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_8_0/models/ConfigInfo_impl_ari_1_8_0.java deleted file mode 100644 index 0256ae2a..00000000 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_8_0/models/ConfigInfo_impl_ari_1_8_0.java +++ /dev/null @@ -1,92 +0,0 @@ -package ch.loway.oss.ari4java.generated.ari_1_8_0.models; - -// ---------------------------------------------------- -// THIS CLASS WAS GENERATED AUTOMATICALLY -// PLEASE DO NOT EDIT -// Generated on: Tue Dec 19 09:55:49 CET 2017 -// ---------------------------------------------------- - -import ch.loway.oss.ari4java.generated.*; -import com.fasterxml.jackson.databind.annotation.JsonDeserialize; -import java.util.Date; -import java.util.List; -import java.util.Map; - -/********************************************************** - * Info about Asterisk configuration - * - * Defined in file: asterisk.json - * Generated by: Model - *********************************************************/ - -public class ConfigInfo_impl_ari_1_8_0 implements ConfigInfo, java.io.Serializable { -private static final long serialVersionUID = 1L; - /** Default language for media playback. */ - private String default_language; - public String getDefault_language() { - return default_language; - } - - @JsonDeserialize( as=String.class ) - public void setDefault_language(String val ) { - default_language = val; - } - - /** Maximum number of simultaneous channels. */ - private int max_channels; - public int getMax_channels() { - return max_channels; - } - - @JsonDeserialize( as=int.class ) - public void setMax_channels(int val ) { - max_channels = val; - } - - /** Maximum load avg on system. */ - private double max_load; - public double getMax_load() { - return max_load; - } - - @JsonDeserialize( as=double.class ) - public void setMax_load(double val ) { - max_load = val; - } - - /** Maximum number of open file handles (files, sockets). */ - private int max_open_files; - public int getMax_open_files() { - return max_open_files; - } - - @JsonDeserialize( as=int.class ) - public void setMax_open_files(int val ) { - max_open_files = val; - } - - /** Asterisk system name. */ - private String name; - public String getName() { - return name; - } - - @JsonDeserialize( as=String.class ) - public void setName(String val ) { - name = val; - } - - /** Effective user/group id for running Asterisk. */ - private SetId setid; - public SetId getSetid() { - return setid; - } - - @JsonDeserialize( as=SetId_impl_ari_1_8_0.class ) - public void setSetid(SetId val ) { - setid = val; - } - -/** No missing signatures from interface */ -} - diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_8_0/models/ConfigTuple_impl_ari_1_8_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_8_0/models/ConfigTuple_impl_ari_1_8_0.java deleted file mode 100644 index 1f765c15..00000000 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_8_0/models/ConfigTuple_impl_ari_1_8_0.java +++ /dev/null @@ -1,48 +0,0 @@ -package ch.loway.oss.ari4java.generated.ari_1_8_0.models; - -// ---------------------------------------------------- -// THIS CLASS WAS GENERATED AUTOMATICALLY -// PLEASE DO NOT EDIT -// Generated on: Tue Dec 19 09:55:49 CET 2017 -// ---------------------------------------------------- - -import ch.loway.oss.ari4java.generated.*; -import com.fasterxml.jackson.databind.annotation.JsonDeserialize; -import java.util.Date; -import java.util.List; -import java.util.Map; - -/********************************************************** - * A key/value pair that makes up part of a configuration object. - * - * Defined in file: asterisk.json - * Generated by: Model - *********************************************************/ - -public class ConfigTuple_impl_ari_1_8_0 implements ConfigTuple, java.io.Serializable { -private static final long serialVersionUID = 1L; - /** A configuration object attribute. */ - private String attribute; - public String getAttribute() { - return attribute; - } - - @JsonDeserialize( as=String.class ) - public void setAttribute(String val ) { - attribute = val; - } - - /** The value for the attribute. */ - private String value; - public String getValue() { - return value; - } - - @JsonDeserialize( as=String.class ) - public void setValue(String val ) { - value = val; - } - -/** No missing signatures from interface */ -} - diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_8_0/models/DeviceStateChanged_impl_ari_1_8_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_8_0/models/DeviceStateChanged_impl_ari_1_8_0.java deleted file mode 100644 index ed6a3542..00000000 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_8_0/models/DeviceStateChanged_impl_ari_1_8_0.java +++ /dev/null @@ -1,37 +0,0 @@ -package ch.loway.oss.ari4java.generated.ari_1_8_0.models; - -// ---------------------------------------------------- -// THIS CLASS WAS GENERATED AUTOMATICALLY -// PLEASE DO NOT EDIT -// Generated on: Tue Dec 19 09:55:49 CET 2017 -// ---------------------------------------------------- - -import ch.loway.oss.ari4java.generated.*; -import com.fasterxml.jackson.databind.annotation.JsonDeserialize; -import java.util.Date; -import java.util.List; -import java.util.Map; - -/********************************************************** - * Notification that a device state has changed. - * - * Defined in file: events.json - * Generated by: Model - *********************************************************/ - -public class DeviceStateChanged_impl_ari_1_8_0 extends Event_impl_ari_1_8_0 implements DeviceStateChanged, java.io.Serializable { -private static final long serialVersionUID = 1L; - /** Device state object */ - private DeviceState device_state; - public DeviceState getDevice_state() { - return device_state; - } - - @JsonDeserialize( as=DeviceState_impl_ari_1_8_0.class ) - public void setDevice_state(DeviceState val ) { - device_state = val; - } - -/** No missing signatures from interface */ -} - diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_8_0/models/DeviceState_impl_ari_1_8_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_8_0/models/DeviceState_impl_ari_1_8_0.java deleted file mode 100644 index f8d4b1c7..00000000 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_8_0/models/DeviceState_impl_ari_1_8_0.java +++ /dev/null @@ -1,48 +0,0 @@ -package ch.loway.oss.ari4java.generated.ari_1_8_0.models; - -// ---------------------------------------------------- -// THIS CLASS WAS GENERATED AUTOMATICALLY -// PLEASE DO NOT EDIT -// Generated on: Tue Dec 19 09:55:49 CET 2017 -// ---------------------------------------------------- - -import ch.loway.oss.ari4java.generated.*; -import com.fasterxml.jackson.databind.annotation.JsonDeserialize; -import java.util.Date; -import java.util.List; -import java.util.Map; - -/********************************************************** - * Represents the state of a device. - * - * Defined in file: deviceStates.json - * Generated by: Model - *********************************************************/ - -public class DeviceState_impl_ari_1_8_0 implements DeviceState, java.io.Serializable { -private static final long serialVersionUID = 1L; - /** Name of the device. */ - private String name; - public String getName() { - return name; - } - - @JsonDeserialize( as=String.class ) - public void setName(String val ) { - name = val; - } - - /** Device's state */ - private String state; - public String getState() { - return state; - } - - @JsonDeserialize( as=String.class ) - public void setState(String val ) { - state = val; - } - -/** No missing signatures from interface */ -} - diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_8_0/models/Dial_impl_ari_1_8_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_8_0/models/Dial_impl_ari_1_8_0.java deleted file mode 100644 index d04a3026..00000000 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_8_0/models/Dial_impl_ari_1_8_0.java +++ /dev/null @@ -1,92 +0,0 @@ -package ch.loway.oss.ari4java.generated.ari_1_8_0.models; - -// ---------------------------------------------------- -// THIS CLASS WAS GENERATED AUTOMATICALLY -// PLEASE DO NOT EDIT -// Generated on: Tue Dec 19 09:55:49 CET 2017 -// ---------------------------------------------------- - -import ch.loway.oss.ari4java.generated.*; -import com.fasterxml.jackson.databind.annotation.JsonDeserialize; -import java.util.Date; -import java.util.List; -import java.util.Map; - -/********************************************************** - * Dialing state has changed. - * - * Defined in file: events.json - * Generated by: Model - *********************************************************/ - -public class Dial_impl_ari_1_8_0 extends Event_impl_ari_1_8_0 implements Dial, java.io.Serializable { -private static final long serialVersionUID = 1L; - /** The calling channel. */ - private Channel caller; - public Channel getCaller() { - return caller; - } - - @JsonDeserialize( as=Channel_impl_ari_1_8_0.class ) - public void setCaller(Channel val ) { - caller = val; - } - - /** Current status of the dialing attempt to the peer. */ - private String dialstatus; - public String getDialstatus() { - return dialstatus; - } - - @JsonDeserialize( as=String.class ) - public void setDialstatus(String val ) { - dialstatus = val; - } - - /** The dial string for calling the peer channel. */ - private String dialstring; - public String getDialstring() { - return dialstring; - } - - @JsonDeserialize( as=String.class ) - public void setDialstring(String val ) { - dialstring = val; - } - - /** Forwarding target requested by the original dialed channel. */ - private String forward; - public String getForward() { - return forward; - } - - @JsonDeserialize( as=String.class ) - public void setForward(String val ) { - forward = val; - } - - /** Channel that the caller has been forwarded to. */ - private Channel forwarded; - public Channel getForwarded() { - return forwarded; - } - - @JsonDeserialize( as=Channel_impl_ari_1_8_0.class ) - public void setForwarded(Channel val ) { - forwarded = val; - } - - /** The dialed channel. */ - private Channel peer; - public Channel getPeer() { - return peer; - } - - @JsonDeserialize( as=Channel_impl_ari_1_8_0.class ) - public void setPeer(Channel val ) { - peer = val; - } - -/** No missing signatures from interface */ -} - diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_8_0/models/Dialed_impl_ari_1_8_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_8_0/models/Dialed_impl_ari_1_8_0.java deleted file mode 100644 index 74cdfb9e..00000000 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_8_0/models/Dialed_impl_ari_1_8_0.java +++ /dev/null @@ -1,26 +0,0 @@ -package ch.loway.oss.ari4java.generated.ari_1_8_0.models; - -// ---------------------------------------------------- -// THIS CLASS WAS GENERATED AUTOMATICALLY -// PLEASE DO NOT EDIT -// Generated on: Tue Dec 19 09:55:49 CET 2017 -// ---------------------------------------------------- - -import ch.loway.oss.ari4java.generated.*; -import com.fasterxml.jackson.databind.annotation.JsonDeserialize; -import java.util.Date; -import java.util.List; -import java.util.Map; - -/********************************************************** - * Dialed channel information. - * - * Defined in file: channels.json - * Generated by: Model - *********************************************************/ - -public class Dialed_impl_ari_1_8_0 implements Dialed, java.io.Serializable { -private static final long serialVersionUID = 1L; -/** No missing signatures from interface */ -} - diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_8_0/models/DialplanCEP_impl_ari_1_8_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_8_0/models/DialplanCEP_impl_ari_1_8_0.java deleted file mode 100644 index 635ee7a1..00000000 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_8_0/models/DialplanCEP_impl_ari_1_8_0.java +++ /dev/null @@ -1,59 +0,0 @@ -package ch.loway.oss.ari4java.generated.ari_1_8_0.models; - -// ---------------------------------------------------- -// THIS CLASS WAS GENERATED AUTOMATICALLY -// PLEASE DO NOT EDIT -// Generated on: Tue Dec 19 09:55:49 CET 2017 -// ---------------------------------------------------- - -import ch.loway.oss.ari4java.generated.*; -import com.fasterxml.jackson.databind.annotation.JsonDeserialize; -import java.util.Date; -import java.util.List; -import java.util.Map; - -/********************************************************** - * Dialplan location (context/extension/priority) - * - * Defined in file: channels.json - * Generated by: Model - *********************************************************/ - -public class DialplanCEP_impl_ari_1_8_0 implements DialplanCEP, java.io.Serializable { -private static final long serialVersionUID = 1L; - /** Context in the dialplan */ - private String context; - public String getContext() { - return context; - } - - @JsonDeserialize( as=String.class ) - public void setContext(String val ) { - context = val; - } - - /** Extension in the dialplan */ - private String exten; - public String getExten() { - return exten; - } - - @JsonDeserialize( as=String.class ) - public void setExten(String val ) { - exten = val; - } - - /** Priority in the dialplan */ - private long priority; - public long getPriority() { - return priority; - } - - @JsonDeserialize( as=long.class ) - public void setPriority(long val ) { - priority = val; - } - -/** No missing signatures from interface */ -} - diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_8_0/models/EndpointStateChange_impl_ari_1_8_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_8_0/models/EndpointStateChange_impl_ari_1_8_0.java deleted file mode 100644 index d754697b..00000000 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_8_0/models/EndpointStateChange_impl_ari_1_8_0.java +++ /dev/null @@ -1,37 +0,0 @@ -package ch.loway.oss.ari4java.generated.ari_1_8_0.models; - -// ---------------------------------------------------- -// THIS CLASS WAS GENERATED AUTOMATICALLY -// PLEASE DO NOT EDIT -// Generated on: Tue Dec 19 09:55:49 CET 2017 -// ---------------------------------------------------- - -import ch.loway.oss.ari4java.generated.*; -import com.fasterxml.jackson.databind.annotation.JsonDeserialize; -import java.util.Date; -import java.util.List; -import java.util.Map; - -/********************************************************** - * Endpoint state changed. - * - * Defined in file: events.json - * Generated by: Model - *********************************************************/ - -public class EndpointStateChange_impl_ari_1_8_0 extends Event_impl_ari_1_8_0 implements EndpointStateChange, java.io.Serializable { -private static final long serialVersionUID = 1L; - /** */ - private Endpoint endpoint; - public Endpoint getEndpoint() { - return endpoint; - } - - @JsonDeserialize( as=Endpoint_impl_ari_1_8_0.class ) - public void setEndpoint(Endpoint val ) { - endpoint = val; - } - -/** No missing signatures from interface */ -} - diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_8_0/models/Endpoint_impl_ari_1_8_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_8_0/models/Endpoint_impl_ari_1_8_0.java deleted file mode 100644 index 22bf8f56..00000000 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_8_0/models/Endpoint_impl_ari_1_8_0.java +++ /dev/null @@ -1,72 +0,0 @@ -package ch.loway.oss.ari4java.generated.ari_1_8_0.models; - -// ---------------------------------------------------- -// THIS CLASS WAS GENERATED AUTOMATICALLY -// PLEASE DO NOT EDIT -// Generated on: Tue Dec 19 09:55:49 CET 2017 -// ---------------------------------------------------- - -import ch.loway.oss.ari4java.generated.*; -import com.fasterxml.jackson.databind.annotation.JsonDeserialize; -import java.util.Date; -import java.util.List; -import java.util.Map; - -/********************************************************** - * An external device that may offer/accept calls to/from Asterisk. - * - * Unlike most resources, which have a single unique identifier, an endpoint is uniquely identified by the technology/resource pair. - * - * Defined in file: endpoints.json - * Generated by: Model - *********************************************************/ - -public class Endpoint_impl_ari_1_8_0 implements Endpoint, java.io.Serializable { -private static final long serialVersionUID = 1L; - /** Id's of channels associated with this endpoint */ - private List channel_ids; - public List getChannel_ids() { - return channel_ids; - } - - @JsonDeserialize( contentAs=String.class ) - public void setChannel_ids(List val ) { - channel_ids = val; - } - - /** Identifier of the endpoint, specific to the given technology. */ - private String resource; - public String getResource() { - return resource; - } - - @JsonDeserialize( as=String.class ) - public void setResource(String val ) { - resource = val; - } - - /** Endpoint's state */ - private String state; - public String getState() { - return state; - } - - @JsonDeserialize( as=String.class ) - public void setState(String val ) { - state = val; - } - - /** Technology of the endpoint */ - private String technology; - public String getTechnology() { - return technology; - } - - @JsonDeserialize( as=String.class ) - public void setTechnology(String val ) { - technology = val; - } - -/** No missing signatures from interface */ -} - diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_8_0/models/Event_impl_ari_1_8_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_8_0/models/Event_impl_ari_1_8_0.java deleted file mode 100644 index 1d44e6d5..00000000 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_8_0/models/Event_impl_ari_1_8_0.java +++ /dev/null @@ -1,48 +0,0 @@ -package ch.loway.oss.ari4java.generated.ari_1_8_0.models; - -// ---------------------------------------------------- -// THIS CLASS WAS GENERATED AUTOMATICALLY -// PLEASE DO NOT EDIT -// Generated on: Tue Dec 19 09:55:49 CET 2017 -// ---------------------------------------------------- - -import ch.loway.oss.ari4java.generated.*; -import com.fasterxml.jackson.databind.annotation.JsonDeserialize; -import java.util.Date; -import java.util.List; -import java.util.Map; - -/********************************************************** - * Base type for asynchronous events from Asterisk. - * - * Defined in file: events.json - * Generated by: Model - *********************************************************/ - -public class Event_impl_ari_1_8_0 extends Message_impl_ari_1_8_0 implements Event, java.io.Serializable { -private static final long serialVersionUID = 1L; - /** Name of the application receiving the event. */ - private String application; - public String getApplication() { - return application; - } - - @JsonDeserialize( as=String.class ) - public void setApplication(String val ) { - application = val; - } - - /** Time at which this event was created. */ - private Date timestamp; - public Date getTimestamp() { - return timestamp; - } - - @JsonDeserialize( as=Date.class ) - public void setTimestamp(Date val ) { - timestamp = val; - } - -/** No missing signatures from interface */ -} - diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_8_0/models/FormatLangPair_impl_ari_1_8_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_8_0/models/FormatLangPair_impl_ari_1_8_0.java deleted file mode 100644 index 76acd9da..00000000 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_8_0/models/FormatLangPair_impl_ari_1_8_0.java +++ /dev/null @@ -1,48 +0,0 @@ -package ch.loway.oss.ari4java.generated.ari_1_8_0.models; - -// ---------------------------------------------------- -// THIS CLASS WAS GENERATED AUTOMATICALLY -// PLEASE DO NOT EDIT -// Generated on: Tue Dec 19 09:55:49 CET 2017 -// ---------------------------------------------------- - -import ch.loway.oss.ari4java.generated.*; -import com.fasterxml.jackson.databind.annotation.JsonDeserialize; -import java.util.Date; -import java.util.List; -import java.util.Map; - -/********************************************************** - * Identifies the format and language of a sound file - * - * Defined in file: sounds.json - * Generated by: Model - *********************************************************/ - -public class FormatLangPair_impl_ari_1_8_0 implements FormatLangPair, java.io.Serializable { -private static final long serialVersionUID = 1L; - /** */ - private String format; - public String getFormat() { - return format; - } - - @JsonDeserialize( as=String.class ) - public void setFormat(String val ) { - format = val; - } - - /** */ - private String language; - public String getLanguage() { - return language; - } - - @JsonDeserialize( as=String.class ) - public void setLanguage(String val ) { - language = val; - } - -/** No missing signatures from interface */ -} - diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_8_0/models/LiveRecording_impl_ari_1_8_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_8_0/models/LiveRecording_impl_ari_1_8_0.java deleted file mode 100644 index 0337c2d1..00000000 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_8_0/models/LiveRecording_impl_ari_1_8_0.java +++ /dev/null @@ -1,114 +0,0 @@ -package ch.loway.oss.ari4java.generated.ari_1_8_0.models; - -// ---------------------------------------------------- -// THIS CLASS WAS GENERATED AUTOMATICALLY -// PLEASE DO NOT EDIT -// Generated on: Tue Dec 19 09:55:49 CET 2017 -// ---------------------------------------------------- - -import ch.loway.oss.ari4java.generated.*; -import com.fasterxml.jackson.databind.annotation.JsonDeserialize; -import java.util.Date; -import java.util.List; -import java.util.Map; - -/********************************************************** - * A recording that is in progress - * - * Defined in file: recordings.json - * Generated by: Model - *********************************************************/ - -public class LiveRecording_impl_ari_1_8_0 implements LiveRecording, java.io.Serializable { -private static final long serialVersionUID = 1L; - /** Cause for recording failure if failed */ - private String cause; - public String getCause() { - return cause; - } - - @JsonDeserialize( as=String.class ) - public void setCause(String val ) { - cause = val; - } - - /** Duration in seconds of the recording */ - private int duration; - public int getDuration() { - return duration; - } - - @JsonDeserialize( as=int.class ) - public void setDuration(int val ) { - duration = val; - } - - /** Recording format (wav, gsm, etc.) */ - private String format; - public String getFormat() { - return format; - } - - @JsonDeserialize( as=String.class ) - public void setFormat(String val ) { - format = val; - } - - /** Base name for the recording */ - private String name; - public String getName() { - return name; - } - - @JsonDeserialize( as=String.class ) - public void setName(String val ) { - name = val; - } - - /** Duration of silence, in seconds, detected in the recording. This is only available if the recording was initiated with a non-zero maxSilenceSeconds. */ - private int silence_duration; - public int getSilence_duration() { - return silence_duration; - } - - @JsonDeserialize( as=int.class ) - public void setSilence_duration(int val ) { - silence_duration = val; - } - - /** */ - private String state; - public String getState() { - return state; - } - - @JsonDeserialize( as=String.class ) - public void setState(String val ) { - state = val; - } - - /** Duration of talking, in seconds, detected in the recording. This is only available if the recording was initiated with a non-zero maxSilenceSeconds. */ - private int talking_duration; - public int getTalking_duration() { - return talking_duration; - } - - @JsonDeserialize( as=int.class ) - public void setTalking_duration(int val ) { - talking_duration = val; - } - - /** URI for the channel or bridge being recorded */ - private String target_uri; - public String getTarget_uri() { - return target_uri; - } - - @JsonDeserialize( as=String.class ) - public void setTarget_uri(String val ) { - target_uri = val; - } - -/** No missing signatures from interface */ -} - diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_8_0/models/Message_impl_ari_1_8_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_8_0/models/Message_impl_ari_1_8_0.java deleted file mode 100644 index 10d0b427..00000000 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_8_0/models/Message_impl_ari_1_8_0.java +++ /dev/null @@ -1,95 +0,0 @@ -package ch.loway.oss.ari4java.generated.ari_1_8_0.models; - -// ---------------------------------------------------- -// THIS CLASS WAS GENERATED AUTOMATICALLY -// PLEASE DO NOT EDIT -// Generated on: Tue Dec 19 09:55:49 CET 2017 -// ---------------------------------------------------- - -import ch.loway.oss.ari4java.generated.*; -import com.fasterxml.jackson.annotation.JsonSubTypes; -import com.fasterxml.jackson.annotation.JsonSubTypes.Type; -import com.fasterxml.jackson.annotation.JsonTypeInfo; -import com.fasterxml.jackson.databind.annotation.JsonDeserialize; -import java.util.Date; -import java.util.List; -import java.util.Map; - -/********************************************************** - * Base type for errors and events - * - * Defined in file: events.json - * Generated by: Model - *********************************************************/ - @JsonTypeInfo( use = JsonTypeInfo.Id.NAME, include = JsonTypeInfo.As.PROPERTY, property = "type") - @JsonSubTypes({ @Type(value = MissingParams_impl_ari_1_8_0.class, name = "MissingParams") -, @Type(value = Event_impl_ari_1_8_0.class, name = "Event") -, @Type(value = DeviceStateChanged_impl_ari_1_8_0.class, name = "DeviceStateChanged") -, @Type(value = PlaybackStarted_impl_ari_1_8_0.class, name = "PlaybackStarted") -, @Type(value = PlaybackFinished_impl_ari_1_8_0.class, name = "PlaybackFinished") -, @Type(value = RecordingStarted_impl_ari_1_8_0.class, name = "RecordingStarted") -, @Type(value = RecordingFinished_impl_ari_1_8_0.class, name = "RecordingFinished") -, @Type(value = RecordingFailed_impl_ari_1_8_0.class, name = "RecordingFailed") -, @Type(value = ApplicationReplaced_impl_ari_1_8_0.class, name = "ApplicationReplaced") -, @Type(value = BridgeCreated_impl_ari_1_8_0.class, name = "BridgeCreated") -, @Type(value = BridgeDestroyed_impl_ari_1_8_0.class, name = "BridgeDestroyed") -, @Type(value = BridgeMerged_impl_ari_1_8_0.class, name = "BridgeMerged") -, @Type(value = BridgeBlindTransfer_impl_ari_1_8_0.class, name = "BridgeBlindTransfer") -, @Type(value = BridgeAttendedTransfer_impl_ari_1_8_0.class, name = "BridgeAttendedTransfer") -, @Type(value = ChannelCreated_impl_ari_1_8_0.class, name = "ChannelCreated") -, @Type(value = ChannelDestroyed_impl_ari_1_8_0.class, name = "ChannelDestroyed") -, @Type(value = ChannelEnteredBridge_impl_ari_1_8_0.class, name = "ChannelEnteredBridge") -, @Type(value = ChannelLeftBridge_impl_ari_1_8_0.class, name = "ChannelLeftBridge") -, @Type(value = ChannelStateChange_impl_ari_1_8_0.class, name = "ChannelStateChange") -, @Type(value = ChannelDtmfReceived_impl_ari_1_8_0.class, name = "ChannelDtmfReceived") -, @Type(value = ChannelDialplan_impl_ari_1_8_0.class, name = "ChannelDialplan") -, @Type(value = ChannelCallerId_impl_ari_1_8_0.class, name = "ChannelCallerId") -, @Type(value = ChannelUserevent_impl_ari_1_8_0.class, name = "ChannelUserevent") -, @Type(value = ChannelHangupRequest_impl_ari_1_8_0.class, name = "ChannelHangupRequest") -, @Type(value = ChannelVarset_impl_ari_1_8_0.class, name = "ChannelVarset") -, @Type(value = ChannelHold_impl_ari_1_8_0.class, name = "ChannelHold") -, @Type(value = ChannelUnhold_impl_ari_1_8_0.class, name = "ChannelUnhold") -, @Type(value = ChannelTalkingStarted_impl_ari_1_8_0.class, name = "ChannelTalkingStarted") -, @Type(value = ChannelTalkingFinished_impl_ari_1_8_0.class, name = "ChannelTalkingFinished") -, @Type(value = EndpointStateChange_impl_ari_1_8_0.class, name = "EndpointStateChange") -, @Type(value = Dial_impl_ari_1_8_0.class, name = "Dial") -, @Type(value = StasisEnd_impl_ari_1_8_0.class, name = "StasisEnd") -, @Type(value = StasisStart_impl_ari_1_8_0.class, name = "StasisStart") -, @Type(value = TextMessageReceived_impl_ari_1_8_0.class, name = "TextMessageReceived") -, @Type(value = ChannelConnectedLine_impl_ari_1_8_0.class, name = "ChannelConnectedLine") - }) - - -public class Message_impl_ari_1_8_0 implements Message, java.io.Serializable { -private static final long serialVersionUID = 1L; - /** Indicates the type of this message. */ - private String type; - public String getType() { - return type; - } - - @JsonDeserialize( as=String.class ) - public void setType(String val ) { - type = val; - } - -/********************************************************** - * The unique ID for the Asterisk instance that raised this event. - * - * @since ari_2_0_0 - *********************************************************/ - public void setAsterisk_id(String val ){ - throw new UnsupportedOperationException("Method availble from ..."); -}; - -/********************************************************** - * The unique ID for the Asterisk instance that raised this event. - * - * @since ari_2_0_0 - *********************************************************/ - public String getAsterisk_id(){ - throw new UnsupportedOperationException("Method availble from ..."); -}; - -} - diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_8_0/models/MissingParams_impl_ari_1_8_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_8_0/models/MissingParams_impl_ari_1_8_0.java deleted file mode 100644 index 2c243195..00000000 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_8_0/models/MissingParams_impl_ari_1_8_0.java +++ /dev/null @@ -1,37 +0,0 @@ -package ch.loway.oss.ari4java.generated.ari_1_8_0.models; - -// ---------------------------------------------------- -// THIS CLASS WAS GENERATED AUTOMATICALLY -// PLEASE DO NOT EDIT -// Generated on: Tue Dec 19 09:55:49 CET 2017 -// ---------------------------------------------------- - -import ch.loway.oss.ari4java.generated.*; -import com.fasterxml.jackson.databind.annotation.JsonDeserialize; -import java.util.Date; -import java.util.List; -import java.util.Map; - -/********************************************************** - * Error event sent when required params are missing. - * - * Defined in file: events.json - * Generated by: Model - *********************************************************/ - -public class MissingParams_impl_ari_1_8_0 extends Message_impl_ari_1_8_0 implements MissingParams, java.io.Serializable { -private static final long serialVersionUID = 1L; - /** A list of the missing parameters */ - private List params; - public List getParams() { - return params; - } - - @JsonDeserialize( contentAs=String.class ) - public void setParams(List val ) { - params = val; - } - -/** No missing signatures from interface */ -} - diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_8_0/models/Module_impl_ari_1_8_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_8_0/models/Module_impl_ari_1_8_0.java deleted file mode 100644 index 0edbc16c..00000000 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_8_0/models/Module_impl_ari_1_8_0.java +++ /dev/null @@ -1,81 +0,0 @@ -package ch.loway.oss.ari4java.generated.ari_1_8_0.models; - -// ---------------------------------------------------- -// THIS CLASS WAS GENERATED AUTOMATICALLY -// PLEASE DO NOT EDIT -// Generated on: Tue Dec 19 09:55:49 CET 2017 -// ---------------------------------------------------- - -import ch.loway.oss.ari4java.generated.*; -import com.fasterxml.jackson.databind.annotation.JsonDeserialize; -import java.util.Date; -import java.util.List; -import java.util.Map; - -/********************************************************** - * Details of an Asterisk module - * - * Defined in file: asterisk.json - * Generated by: Model - *********************************************************/ - -public class Module_impl_ari_1_8_0 implements Module, java.io.Serializable { -private static final long serialVersionUID = 1L; - /** The description of this module */ - private String description; - public String getDescription() { - return description; - } - - @JsonDeserialize( as=String.class ) - public void setDescription(String val ) { - description = val; - } - - /** The name of this module */ - private String name; - public String getName() { - return name; - } - - @JsonDeserialize( as=String.class ) - public void setName(String val ) { - name = val; - } - - /** The running status of this module */ - private String status; - public String getStatus() { - return status; - } - - @JsonDeserialize( as=String.class ) - public void setStatus(String val ) { - status = val; - } - - /** The support state of this module */ - private String support_level; - public String getSupport_level() { - return support_level; - } - - @JsonDeserialize( as=String.class ) - public void setSupport_level(String val ) { - support_level = val; - } - - /** The number of times this module is being used */ - private int use_count; - public int getUse_count() { - return use_count; - } - - @JsonDeserialize( as=int.class ) - public void setUse_count(int val ) { - use_count = val; - } - -/** No missing signatures from interface */ -} - diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_8_0/models/PlaybackFinished_impl_ari_1_8_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_8_0/models/PlaybackFinished_impl_ari_1_8_0.java deleted file mode 100644 index 70f13202..00000000 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_8_0/models/PlaybackFinished_impl_ari_1_8_0.java +++ /dev/null @@ -1,37 +0,0 @@ -package ch.loway.oss.ari4java.generated.ari_1_8_0.models; - -// ---------------------------------------------------- -// THIS CLASS WAS GENERATED AUTOMATICALLY -// PLEASE DO NOT EDIT -// Generated on: Tue Dec 19 09:55:49 CET 2017 -// ---------------------------------------------------- - -import ch.loway.oss.ari4java.generated.*; -import com.fasterxml.jackson.databind.annotation.JsonDeserialize; -import java.util.Date; -import java.util.List; -import java.util.Map; - -/********************************************************** - * Event showing the completion of a media playback operation. - * - * Defined in file: events.json - * Generated by: Model - *********************************************************/ - -public class PlaybackFinished_impl_ari_1_8_0 extends Event_impl_ari_1_8_0 implements PlaybackFinished, java.io.Serializable { -private static final long serialVersionUID = 1L; - /** Playback control object */ - private Playback playback; - public Playback getPlayback() { - return playback; - } - - @JsonDeserialize( as=Playback_impl_ari_1_8_0.class ) - public void setPlayback(Playback val ) { - playback = val; - } - -/** No missing signatures from interface */ -} - diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_8_0/models/PlaybackStarted_impl_ari_1_8_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_8_0/models/PlaybackStarted_impl_ari_1_8_0.java deleted file mode 100644 index 35e34fa9..00000000 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_8_0/models/PlaybackStarted_impl_ari_1_8_0.java +++ /dev/null @@ -1,37 +0,0 @@ -package ch.loway.oss.ari4java.generated.ari_1_8_0.models; - -// ---------------------------------------------------- -// THIS CLASS WAS GENERATED AUTOMATICALLY -// PLEASE DO NOT EDIT -// Generated on: Tue Dec 19 09:55:49 CET 2017 -// ---------------------------------------------------- - -import ch.loway.oss.ari4java.generated.*; -import com.fasterxml.jackson.databind.annotation.JsonDeserialize; -import java.util.Date; -import java.util.List; -import java.util.Map; - -/********************************************************** - * Event showing the start of a media playback operation. - * - * Defined in file: events.json - * Generated by: Model - *********************************************************/ - -public class PlaybackStarted_impl_ari_1_8_0 extends Event_impl_ari_1_8_0 implements PlaybackStarted, java.io.Serializable { -private static final long serialVersionUID = 1L; - /** Playback control object */ - private Playback playback; - public Playback getPlayback() { - return playback; - } - - @JsonDeserialize( as=Playback_impl_ari_1_8_0.class ) - public void setPlayback(Playback val ) { - playback = val; - } - -/** No missing signatures from interface */ -} - diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_8_0/models/Playback_impl_ari_1_8_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_8_0/models/Playback_impl_ari_1_8_0.java deleted file mode 100644 index 9add1d6d..00000000 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_8_0/models/Playback_impl_ari_1_8_0.java +++ /dev/null @@ -1,98 +0,0 @@ -package ch.loway.oss.ari4java.generated.ari_1_8_0.models; - -// ---------------------------------------------------- -// THIS CLASS WAS GENERATED AUTOMATICALLY -// PLEASE DO NOT EDIT -// Generated on: Tue Dec 19 09:55:49 CET 2017 -// ---------------------------------------------------- - -import ch.loway.oss.ari4java.generated.*; -import com.fasterxml.jackson.databind.annotation.JsonDeserialize; -import java.util.Date; -import java.util.List; -import java.util.Map; - -/********************************************************** - * Object representing the playback of media to a channel - * - * Defined in file: playbacks.json - * Generated by: Model - *********************************************************/ - -public class Playback_impl_ari_1_8_0 implements Playback, java.io.Serializable { -private static final long serialVersionUID = 1L; - /** ID for this playback operation */ - private String id; - public String getId() { - return id; - } - - @JsonDeserialize( as=String.class ) - public void setId(String val ) { - id = val; - } - - /** For media types that support multiple languages, the language requested for playback. */ - private String language; - public String getLanguage() { - return language; - } - - @JsonDeserialize( as=String.class ) - public void setLanguage(String val ) { - language = val; - } - - /** URI for the media to play back. */ - private String media_uri; - public String getMedia_uri() { - return media_uri; - } - - @JsonDeserialize( as=String.class ) - public void setMedia_uri(String val ) { - media_uri = val; - } - - /** Current state of the playback operation. */ - private String state; - public String getState() { - return state; - } - - @JsonDeserialize( as=String.class ) - public void setState(String val ) { - state = val; - } - - /** URI for the channel or bridge to play the media on */ - private String target_uri; - public String getTarget_uri() { - return target_uri; - } - - @JsonDeserialize( as=String.class ) - public void setTarget_uri(String val ) { - target_uri = val; - } - -/********************************************************** - * If a list of URIs is being played, the next media URI to be played back. - * - * @since ari_1_10_0 - *********************************************************/ - public String getNext_media_uri(){ - throw new UnsupportedOperationException("Method availble from ..."); -}; - -/********************************************************** - * If a list of URIs is being played, the next media URI to be played back. - * - * @since ari_1_10_0 - *********************************************************/ - public void setNext_media_uri(String val ){ - throw new UnsupportedOperationException("Method availble from ..."); -}; - -} - diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_8_0/models/RecordingFailed_impl_ari_1_8_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_8_0/models/RecordingFailed_impl_ari_1_8_0.java deleted file mode 100644 index aedd17aa..00000000 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_8_0/models/RecordingFailed_impl_ari_1_8_0.java +++ /dev/null @@ -1,37 +0,0 @@ -package ch.loway.oss.ari4java.generated.ari_1_8_0.models; - -// ---------------------------------------------------- -// THIS CLASS WAS GENERATED AUTOMATICALLY -// PLEASE DO NOT EDIT -// Generated on: Tue Dec 19 09:55:49 CET 2017 -// ---------------------------------------------------- - -import ch.loway.oss.ari4java.generated.*; -import com.fasterxml.jackson.databind.annotation.JsonDeserialize; -import java.util.Date; -import java.util.List; -import java.util.Map; - -/********************************************************** - * Event showing failure of a recording operation. - * - * Defined in file: events.json - * Generated by: Model - *********************************************************/ - -public class RecordingFailed_impl_ari_1_8_0 extends Event_impl_ari_1_8_0 implements RecordingFailed, java.io.Serializable { -private static final long serialVersionUID = 1L; - /** Recording control object */ - private LiveRecording recording; - public LiveRecording getRecording() { - return recording; - } - - @JsonDeserialize( as=LiveRecording_impl_ari_1_8_0.class ) - public void setRecording(LiveRecording val ) { - recording = val; - } - -/** No missing signatures from interface */ -} - diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_8_0/models/RecordingFinished_impl_ari_1_8_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_8_0/models/RecordingFinished_impl_ari_1_8_0.java deleted file mode 100644 index d41638f7..00000000 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_8_0/models/RecordingFinished_impl_ari_1_8_0.java +++ /dev/null @@ -1,37 +0,0 @@ -package ch.loway.oss.ari4java.generated.ari_1_8_0.models; - -// ---------------------------------------------------- -// THIS CLASS WAS GENERATED AUTOMATICALLY -// PLEASE DO NOT EDIT -// Generated on: Tue Dec 19 09:55:49 CET 2017 -// ---------------------------------------------------- - -import ch.loway.oss.ari4java.generated.*; -import com.fasterxml.jackson.databind.annotation.JsonDeserialize; -import java.util.Date; -import java.util.List; -import java.util.Map; - -/********************************************************** - * Event showing the completion of a recording operation. - * - * Defined in file: events.json - * Generated by: Model - *********************************************************/ - -public class RecordingFinished_impl_ari_1_8_0 extends Event_impl_ari_1_8_0 implements RecordingFinished, java.io.Serializable { -private static final long serialVersionUID = 1L; - /** Recording control object */ - private LiveRecording recording; - public LiveRecording getRecording() { - return recording; - } - - @JsonDeserialize( as=LiveRecording_impl_ari_1_8_0.class ) - public void setRecording(LiveRecording val ) { - recording = val; - } - -/** No missing signatures from interface */ -} - diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_8_0/models/RecordingStarted_impl_ari_1_8_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_8_0/models/RecordingStarted_impl_ari_1_8_0.java deleted file mode 100644 index d5485f4e..00000000 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_8_0/models/RecordingStarted_impl_ari_1_8_0.java +++ /dev/null @@ -1,37 +0,0 @@ -package ch.loway.oss.ari4java.generated.ari_1_8_0.models; - -// ---------------------------------------------------- -// THIS CLASS WAS GENERATED AUTOMATICALLY -// PLEASE DO NOT EDIT -// Generated on: Tue Dec 19 09:55:49 CET 2017 -// ---------------------------------------------------- - -import ch.loway.oss.ari4java.generated.*; -import com.fasterxml.jackson.databind.annotation.JsonDeserialize; -import java.util.Date; -import java.util.List; -import java.util.Map; - -/********************************************************** - * Event showing the start of a recording operation. - * - * Defined in file: events.json - * Generated by: Model - *********************************************************/ - -public class RecordingStarted_impl_ari_1_8_0 extends Event_impl_ari_1_8_0 implements RecordingStarted, java.io.Serializable { -private static final long serialVersionUID = 1L; - /** Recording control object */ - private LiveRecording recording; - public LiveRecording getRecording() { - return recording; - } - - @JsonDeserialize( as=LiveRecording_impl_ari_1_8_0.class ) - public void setRecording(LiveRecording val ) { - recording = val; - } - -/** No missing signatures from interface */ -} - diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_8_0/models/SetId_impl_ari_1_8_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_8_0/models/SetId_impl_ari_1_8_0.java deleted file mode 100644 index 10d5a8ad..00000000 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_8_0/models/SetId_impl_ari_1_8_0.java +++ /dev/null @@ -1,48 +0,0 @@ -package ch.loway.oss.ari4java.generated.ari_1_8_0.models; - -// ---------------------------------------------------- -// THIS CLASS WAS GENERATED AUTOMATICALLY -// PLEASE DO NOT EDIT -// Generated on: Tue Dec 19 09:55:49 CET 2017 -// ---------------------------------------------------- - -import ch.loway.oss.ari4java.generated.*; -import com.fasterxml.jackson.databind.annotation.JsonDeserialize; -import java.util.Date; -import java.util.List; -import java.util.Map; - -/********************************************************** - * Effective user/group id - * - * Defined in file: asterisk.json - * Generated by: Model - *********************************************************/ - -public class SetId_impl_ari_1_8_0 implements SetId, java.io.Serializable { -private static final long serialVersionUID = 1L; - /** Effective group id. */ - private String group; - public String getGroup() { - return group; - } - - @JsonDeserialize( as=String.class ) - public void setGroup(String val ) { - group = val; - } - - /** Effective user id. */ - private String user; - public String getUser() { - return user; - } - - @JsonDeserialize( as=String.class ) - public void setUser(String val ) { - user = val; - } - -/** No missing signatures from interface */ -} - diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_8_0/models/Sound_impl_ari_1_8_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_8_0/models/Sound_impl_ari_1_8_0.java deleted file mode 100644 index f43130f8..00000000 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_8_0/models/Sound_impl_ari_1_8_0.java +++ /dev/null @@ -1,59 +0,0 @@ -package ch.loway.oss.ari4java.generated.ari_1_8_0.models; - -// ---------------------------------------------------- -// THIS CLASS WAS GENERATED AUTOMATICALLY -// PLEASE DO NOT EDIT -// Generated on: Tue Dec 19 09:55:49 CET 2017 -// ---------------------------------------------------- - -import ch.loway.oss.ari4java.generated.*; -import com.fasterxml.jackson.databind.annotation.JsonDeserialize; -import java.util.Date; -import java.util.List; -import java.util.Map; - -/********************************************************** - * A media file that may be played back. - * - * Defined in file: sounds.json - * Generated by: Model - *********************************************************/ - -public class Sound_impl_ari_1_8_0 implements Sound, java.io.Serializable { -private static final long serialVersionUID = 1L; - /** The formats and languages in which this sound is available. */ - private List formats; - public List getFormats() { - return formats; - } - - @JsonDeserialize( contentAs=FormatLangPair_impl_ari_1_8_0.class ) - public void setFormats(List val ) { - formats = val; - } - - /** Sound's identifier. */ - private String id; - public String getId() { - return id; - } - - @JsonDeserialize( as=String.class ) - public void setId(String val ) { - id = val; - } - - /** Text description of the sound, usually the words spoken. */ - private String text; - public String getText() { - return text; - } - - @JsonDeserialize( as=String.class ) - public void setText(String val ) { - text = val; - } - -/** No missing signatures from interface */ -} - diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_8_0/models/StasisEnd_impl_ari_1_8_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_8_0/models/StasisEnd_impl_ari_1_8_0.java deleted file mode 100644 index 830793df..00000000 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_8_0/models/StasisEnd_impl_ari_1_8_0.java +++ /dev/null @@ -1,37 +0,0 @@ -package ch.loway.oss.ari4java.generated.ari_1_8_0.models; - -// ---------------------------------------------------- -// THIS CLASS WAS GENERATED AUTOMATICALLY -// PLEASE DO NOT EDIT -// Generated on: Tue Dec 19 09:55:49 CET 2017 -// ---------------------------------------------------- - -import ch.loway.oss.ari4java.generated.*; -import com.fasterxml.jackson.databind.annotation.JsonDeserialize; -import java.util.Date; -import java.util.List; -import java.util.Map; - -/********************************************************** - * Notification that a channel has left a Stasis application. - * - * Defined in file: events.json - * Generated by: Model - *********************************************************/ - -public class StasisEnd_impl_ari_1_8_0 extends Event_impl_ari_1_8_0 implements StasisEnd, java.io.Serializable { -private static final long serialVersionUID = 1L; - /** */ - private Channel channel; - public Channel getChannel() { - return channel; - } - - @JsonDeserialize( as=Channel_impl_ari_1_8_0.class ) - public void setChannel(Channel val ) { - channel = val; - } - -/** No missing signatures from interface */ -} - diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_8_0/models/StasisStart_impl_ari_1_8_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_8_0/models/StasisStart_impl_ari_1_8_0.java deleted file mode 100644 index e7705209..00000000 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_8_0/models/StasisStart_impl_ari_1_8_0.java +++ /dev/null @@ -1,59 +0,0 @@ -package ch.loway.oss.ari4java.generated.ari_1_8_0.models; - -// ---------------------------------------------------- -// THIS CLASS WAS GENERATED AUTOMATICALLY -// PLEASE DO NOT EDIT -// Generated on: Tue Dec 19 09:55:49 CET 2017 -// ---------------------------------------------------- - -import ch.loway.oss.ari4java.generated.*; -import com.fasterxml.jackson.databind.annotation.JsonDeserialize; -import java.util.Date; -import java.util.List; -import java.util.Map; - -/********************************************************** - * Notification that a channel has entered a Stasis application. - * - * Defined in file: events.json - * Generated by: Model - *********************************************************/ - -public class StasisStart_impl_ari_1_8_0 extends Event_impl_ari_1_8_0 implements StasisStart, java.io.Serializable { -private static final long serialVersionUID = 1L; - /** Arguments to the application */ - private List args; - public List getArgs() { - return args; - } - - @JsonDeserialize( contentAs=String.class ) - public void setArgs(List val ) { - args = val; - } - - /** */ - private Channel channel; - public Channel getChannel() { - return channel; - } - - @JsonDeserialize( as=Channel_impl_ari_1_8_0.class ) - public void setChannel(Channel val ) { - channel = val; - } - - /** */ - private Channel replace_channel; - public Channel getReplace_channel() { - return replace_channel; - } - - @JsonDeserialize( as=Channel_impl_ari_1_8_0.class ) - public void setReplace_channel(Channel val ) { - replace_channel = val; - } - -/** No missing signatures from interface */ -} - diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_8_0/models/StatusInfo_impl_ari_1_8_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_8_0/models/StatusInfo_impl_ari_1_8_0.java deleted file mode 100644 index 3a76319f..00000000 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_8_0/models/StatusInfo_impl_ari_1_8_0.java +++ /dev/null @@ -1,48 +0,0 @@ -package ch.loway.oss.ari4java.generated.ari_1_8_0.models; - -// ---------------------------------------------------- -// THIS CLASS WAS GENERATED AUTOMATICALLY -// PLEASE DO NOT EDIT -// Generated on: Tue Dec 19 09:55:49 CET 2017 -// ---------------------------------------------------- - -import ch.loway.oss.ari4java.generated.*; -import com.fasterxml.jackson.databind.annotation.JsonDeserialize; -import java.util.Date; -import java.util.List; -import java.util.Map; - -/********************************************************** - * Info about Asterisk status - * - * Defined in file: asterisk.json - * Generated by: Model - *********************************************************/ - -public class StatusInfo_impl_ari_1_8_0 implements StatusInfo, java.io.Serializable { -private static final long serialVersionUID = 1L; - /** Time when Asterisk was last reloaded. */ - private Date last_reload_time; - public Date getLast_reload_time() { - return last_reload_time; - } - - @JsonDeserialize( as=Date.class ) - public void setLast_reload_time(Date val ) { - last_reload_time = val; - } - - /** Time when Asterisk was started. */ - private Date startup_time; - public Date getStartup_time() { - return startup_time; - } - - @JsonDeserialize( as=Date.class ) - public void setStartup_time(Date val ) { - startup_time = val; - } - -/** No missing signatures from interface */ -} - diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_8_0/models/StoredRecording_impl_ari_1_8_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_8_0/models/StoredRecording_impl_ari_1_8_0.java deleted file mode 100644 index c0a5dec1..00000000 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_8_0/models/StoredRecording_impl_ari_1_8_0.java +++ /dev/null @@ -1,48 +0,0 @@ -package ch.loway.oss.ari4java.generated.ari_1_8_0.models; - -// ---------------------------------------------------- -// THIS CLASS WAS GENERATED AUTOMATICALLY -// PLEASE DO NOT EDIT -// Generated on: Tue Dec 19 09:55:49 CET 2017 -// ---------------------------------------------------- - -import ch.loway.oss.ari4java.generated.*; -import com.fasterxml.jackson.databind.annotation.JsonDeserialize; -import java.util.Date; -import java.util.List; -import java.util.Map; - -/********************************************************** - * A past recording that may be played back. - * - * Defined in file: recordings.json - * Generated by: Model - *********************************************************/ - -public class StoredRecording_impl_ari_1_8_0 implements StoredRecording, java.io.Serializable { -private static final long serialVersionUID = 1L; - /** */ - private String format; - public String getFormat() { - return format; - } - - @JsonDeserialize( as=String.class ) - public void setFormat(String val ) { - format = val; - } - - /** */ - private String name; - public String getName() { - return name; - } - - @JsonDeserialize( as=String.class ) - public void setName(String val ) { - name = val; - } - -/** No missing signatures from interface */ -} - diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_8_0/models/SystemInfo_impl_ari_1_8_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_8_0/models/SystemInfo_impl_ari_1_8_0.java deleted file mode 100644 index 06799abf..00000000 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_8_0/models/SystemInfo_impl_ari_1_8_0.java +++ /dev/null @@ -1,48 +0,0 @@ -package ch.loway.oss.ari4java.generated.ari_1_8_0.models; - -// ---------------------------------------------------- -// THIS CLASS WAS GENERATED AUTOMATICALLY -// PLEASE DO NOT EDIT -// Generated on: Tue Dec 19 09:55:49 CET 2017 -// ---------------------------------------------------- - -import ch.loway.oss.ari4java.generated.*; -import com.fasterxml.jackson.databind.annotation.JsonDeserialize; -import java.util.Date; -import java.util.List; -import java.util.Map; - -/********************************************************** - * Info about Asterisk - * - * Defined in file: asterisk.json - * Generated by: Model - *********************************************************/ - -public class SystemInfo_impl_ari_1_8_0 implements SystemInfo, java.io.Serializable { -private static final long serialVersionUID = 1L; - /** */ - private String entity_id; - public String getEntity_id() { - return entity_id; - } - - @JsonDeserialize( as=String.class ) - public void setEntity_id(String val ) { - entity_id = val; - } - - /** Asterisk version. */ - private String version; - public String getVersion() { - return version; - } - - @JsonDeserialize( as=String.class ) - public void setVersion(String val ) { - version = val; - } - -/** No missing signatures from interface */ -} - diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_8_0/models/TextMessageReceived_impl_ari_1_8_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_8_0/models/TextMessageReceived_impl_ari_1_8_0.java deleted file mode 100644 index 40c95c8e..00000000 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_8_0/models/TextMessageReceived_impl_ari_1_8_0.java +++ /dev/null @@ -1,48 +0,0 @@ -package ch.loway.oss.ari4java.generated.ari_1_8_0.models; - -// ---------------------------------------------------- -// THIS CLASS WAS GENERATED AUTOMATICALLY -// PLEASE DO NOT EDIT -// Generated on: Tue Dec 19 09:55:49 CET 2017 -// ---------------------------------------------------- - -import ch.loway.oss.ari4java.generated.*; -import com.fasterxml.jackson.databind.annotation.JsonDeserialize; -import java.util.Date; -import java.util.List; -import java.util.Map; - -/********************************************************** - * A text message was received from an endpoint. - * - * Defined in file: events.json - * Generated by: Model - *********************************************************/ - -public class TextMessageReceived_impl_ari_1_8_0 extends Event_impl_ari_1_8_0 implements TextMessageReceived, java.io.Serializable { -private static final long serialVersionUID = 1L; - /** */ - private Endpoint endpoint; - public Endpoint getEndpoint() { - return endpoint; - } - - @JsonDeserialize( as=Endpoint_impl_ari_1_8_0.class ) - public void setEndpoint(Endpoint val ) { - endpoint = val; - } - - /** */ - private TextMessage message; - public TextMessage getMessage() { - return message; - } - - @JsonDeserialize( as=TextMessage_impl_ari_1_8_0.class ) - public void setMessage(TextMessage val ) { - message = val; - } - -/** No missing signatures from interface */ -} - diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_8_0/models/TextMessageVariable_impl_ari_1_8_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_8_0/models/TextMessageVariable_impl_ari_1_8_0.java deleted file mode 100644 index b59302e1..00000000 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_8_0/models/TextMessageVariable_impl_ari_1_8_0.java +++ /dev/null @@ -1,48 +0,0 @@ -package ch.loway.oss.ari4java.generated.ari_1_8_0.models; - -// ---------------------------------------------------- -// THIS CLASS WAS GENERATED AUTOMATICALLY -// PLEASE DO NOT EDIT -// Generated on: Tue Dec 19 09:55:49 CET 2017 -// ---------------------------------------------------- - -import ch.loway.oss.ari4java.generated.*; -import com.fasterxml.jackson.databind.annotation.JsonDeserialize; -import java.util.Date; -import java.util.List; -import java.util.Map; - -/********************************************************** - * A key/value pair variable in a text message. - * - * Defined in file: endpoints.json - * Generated by: Model - *********************************************************/ - -public class TextMessageVariable_impl_ari_1_8_0 implements TextMessageVariable, java.io.Serializable { -private static final long serialVersionUID = 1L; - /** A unique key identifying the variable. */ - private String key; - public String getKey() { - return key; - } - - @JsonDeserialize( as=String.class ) - public void setKey(String val ) { - key = val; - } - - /** The value of the variable. */ - private String value; - public String getValue() { - return value; - } - - @JsonDeserialize( as=String.class ) - public void setValue(String val ) { - value = val; - } - -/** No missing signatures from interface */ -} - diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_8_0/models/TextMessage_impl_ari_1_8_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_8_0/models/TextMessage_impl_ari_1_8_0.java deleted file mode 100644 index 4ae26cbe..00000000 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_8_0/models/TextMessage_impl_ari_1_8_0.java +++ /dev/null @@ -1,70 +0,0 @@ -package ch.loway.oss.ari4java.generated.ari_1_8_0.models; - -// ---------------------------------------------------- -// THIS CLASS WAS GENERATED AUTOMATICALLY -// PLEASE DO NOT EDIT -// Generated on: Tue Dec 19 09:55:49 CET 2017 -// ---------------------------------------------------- - -import ch.loway.oss.ari4java.generated.*; -import com.fasterxml.jackson.databind.annotation.JsonDeserialize; -import java.util.Date; -import java.util.List; -import java.util.Map; - -/********************************************************** - * A text message. - * - * Defined in file: endpoints.json - * Generated by: Model - *********************************************************/ - -public class TextMessage_impl_ari_1_8_0 implements TextMessage, java.io.Serializable { -private static final long serialVersionUID = 1L; - /** The text of the message. */ - private String body; - public String getBody() { - return body; - } - - @JsonDeserialize( as=String.class ) - public void setBody(String val ) { - body = val; - } - - /** A technology specific URI specifying the source of the message. For sip and pjsip technologies, any SIP URI can be specified. For xmpp, the URI must correspond to the client connection being used to send the message. */ - private String from; - public String getFrom() { - return from; - } - - @JsonDeserialize( as=String.class ) - public void setFrom(String val ) { - from = val; - } - - /** A technology specific URI specifying the destination of the message. Valid technologies include sip, pjsip, and xmp. The destination of a message should be an endpoint. */ - private String to; - public String getTo() { - return to; - } - - @JsonDeserialize( as=String.class ) - public void setTo(String val ) { - to = val; - } - - /** Technology specific key/value pairs associated with the message. */ - private List variables; - public List getVariables() { - return variables; - } - - @JsonDeserialize( contentAs=TextMessageVariable_impl_ari_1_8_0.class ) - public void setVariables(List val ) { - variables = val; - } - -/** No missing signatures from interface */ -} - diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_8_0/models/Variable_impl_ari_1_8_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_8_0/models/Variable_impl_ari_1_8_0.java deleted file mode 100644 index 324b5469..00000000 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_8_0/models/Variable_impl_ari_1_8_0.java +++ /dev/null @@ -1,37 +0,0 @@ -package ch.loway.oss.ari4java.generated.ari_1_8_0.models; - -// ---------------------------------------------------- -// THIS CLASS WAS GENERATED AUTOMATICALLY -// PLEASE DO NOT EDIT -// Generated on: Tue Dec 19 09:55:49 CET 2017 -// ---------------------------------------------------- - -import ch.loway.oss.ari4java.generated.*; -import com.fasterxml.jackson.databind.annotation.JsonDeserialize; -import java.util.Date; -import java.util.List; -import java.util.Map; - -/********************************************************** - * The value of a channel variable - * - * Defined in file: asterisk.json - * Generated by: Model - *********************************************************/ - -public class Variable_impl_ari_1_8_0 implements Variable, java.io.Serializable { -private static final long serialVersionUID = 1L; - /** The value of the variable requested */ - private String value; - public String getValue() { - return value; - } - - @JsonDeserialize( as=String.class ) - public void setValue(String val ) { - value = val; - } - -/** No missing signatures from interface */ -} - diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/AriBuilder_impl_ari_1_9_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/AriBuilder_impl_ari_1_9_0.java deleted file mode 100644 index 7ae0aee4..00000000 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/AriBuilder_impl_ari_1_9_0.java +++ /dev/null @@ -1,328 +0,0 @@ -package ch.loway.oss.ari4java.generated.ari_1_9_0; - -// ---------------------------------------------------- -// THIS CLASS WAS GENERATED AUTOMATICALLY -// PLEASE DO NOT EDIT -// Generated on: Tue Dec 19 09:55:50 CET 2017 -// ---------------------------------------------------- - -import ch.loway.oss.ari4java.generated.ari_1_9_0.models.*; -import ch.loway.oss.ari4java.generated.ari_1_9_0.actions.*; -import ch.loway.oss.ari4java.generated.*; -import ch.loway.oss.ari4java.ARI; - -public class AriBuilder_impl_ari_1_9_0 implements AriBuilder { - -public ActionAsterisk actionAsterisk() { - return new ActionAsterisk_impl_ari_1_9_0(); - }; - -public ActionPlaybacks actionPlaybacks() { - return new ActionPlaybacks_impl_ari_1_9_0(); - }; - -public ActionApplications actionApplications() { - return new ActionApplications_impl_ari_1_9_0(); - }; - -public ActionSounds actionSounds() { - return new ActionSounds_impl_ari_1_9_0(); - }; - -public ActionEvents actionEvents() { - return new ActionEvents_impl_ari_1_9_0(); - }; - -public ActionEndpoints actionEndpoints() { - return new ActionEndpoints_impl_ari_1_9_0(); - }; - -public ActionRecordings actionRecordings() { - return new ActionRecordings_impl_ari_1_9_0(); - }; - -public ActionChannels actionChannels() { - return new ActionChannels_impl_ari_1_9_0(); - }; - -public ActionBridges actionBridges() { - return new ActionBridges_impl_ari_1_9_0(); - }; - -public ActionDeviceStates actionDeviceStates() { - return new ActionDeviceStates_impl_ari_1_9_0(); - }; - -public ConfigInfo configInfo() { - return new ConfigInfo_impl_ari_1_9_0(); - }; - -public TextMessageVariable textMessageVariable() { - return new TextMessageVariable_impl_ari_1_9_0(); - }; - -public ApplicationReplaced applicationReplaced() { - return new ApplicationReplaced_impl_ari_1_9_0(); - }; - -public BridgeMerged bridgeMerged() { - return new BridgeMerged_impl_ari_1_9_0(); - }; - -public FormatLangPair formatLangPair() { - return new FormatLangPair_impl_ari_1_9_0(); - }; - -public ChannelVarset channelVarset() { - return new ChannelVarset_impl_ari_1_9_0(); - }; - -public Variable variable() { - return new Variable_impl_ari_1_9_0(); - }; - -public TextMessageReceived textMessageReceived() { - return new TextMessageReceived_impl_ari_1_9_0(); - }; - -public RecordingFinished recordingFinished() { - return new RecordingFinished_impl_ari_1_9_0(); - }; - -public ChannelHold channelHold() { - return new ChannelHold_impl_ari_1_9_0(); - }; - -public ChannelHangupRequest channelHangupRequest() { - return new ChannelHangupRequest_impl_ari_1_9_0(); - }; - -public ChannelDestroyed channelDestroyed() { - return new ChannelDestroyed_impl_ari_1_9_0(); - }; - -public Dialed dialed() { - return new Dialed_impl_ari_1_9_0(); - }; - -public PlaybackStarted playbackStarted() { - return new PlaybackStarted_impl_ari_1_9_0(); - }; - -public BuildInfo buildInfo() { - return new BuildInfo_impl_ari_1_9_0(); - }; - -public ChannelTalkingFinished channelTalkingFinished() { - return new ChannelTalkingFinished_impl_ari_1_9_0(); - }; - -public ChannelCreated channelCreated() { - return new ChannelCreated_impl_ari_1_9_0(); - }; - -public ChannelStateChange channelStateChange() { - return new ChannelStateChange_impl_ari_1_9_0(); - }; - -public LiveRecording liveRecording() { - return new LiveRecording_impl_ari_1_9_0(); - }; - -public DeviceState deviceState() { - return new DeviceState_impl_ari_1_9_0(); - }; - -public ContactInfo contactInfo() { - return new ContactInfo_impl_ari_1_9_0(); - }; - -public PeerStatusChange peerStatusChange() { - return new PeerStatusChange_impl_ari_1_9_0(); - }; - -public PlaybackFinished playbackFinished() { - return new PlaybackFinished_impl_ari_1_9_0(); - }; - -public ChannelDialplan channelDialplan() { - return new ChannelDialplan_impl_ari_1_9_0(); - }; - -public StasisEnd stasisEnd() { - return new StasisEnd_impl_ari_1_9_0(); - }; - -public Application application() { - return new Application_impl_ari_1_9_0(); - }; - -public ChannelCallerId channelCallerId() { - return new ChannelCallerId_impl_ari_1_9_0(); - }; - -public RecordingFailed recordingFailed() { - return new RecordingFailed_impl_ari_1_9_0(); - }; - -public Sound sound() { - return new Sound_impl_ari_1_9_0(); - }; - -public ConfigTuple configTuple() { - return new ConfigTuple_impl_ari_1_9_0(); - }; - -public StoredRecording storedRecording() { - return new StoredRecording_impl_ari_1_9_0(); - }; - -public ChannelUnhold channelUnhold() { - return new ChannelUnhold_impl_ari_1_9_0(); - }; - -public BridgeBlindTransfer bridgeBlindTransfer() { - return new BridgeBlindTransfer_impl_ari_1_9_0(); - }; - -public ChannelUserevent channelUserevent() { - return new ChannelUserevent_impl_ari_1_9_0(); - }; - -public ContactStatusChange contactStatusChange() { - return new ContactStatusChange_impl_ari_1_9_0(); - }; - -public SetId setId() { - return new SetId_impl_ari_1_9_0(); - }; - -public AsteriskInfo asteriskInfo() { - return new AsteriskInfo_impl_ari_1_9_0(); - }; - -public ChannelConnectedLine channelConnectedLine() { - return new ChannelConnectedLine_impl_ari_1_9_0(); - }; - -public RecordingStarted recordingStarted() { - return new RecordingStarted_impl_ari_1_9_0(); - }; - -public StatusInfo statusInfo() { - return new StatusInfo_impl_ari_1_9_0(); - }; - -public Endpoint endpoint() { - return new Endpoint_impl_ari_1_9_0(); - }; - -public EndpointStateChange endpointStateChange() { - return new EndpointStateChange_impl_ari_1_9_0(); - }; - -public BridgeDestroyed bridgeDestroyed() { - return new BridgeDestroyed_impl_ari_1_9_0(); - }; - -public StasisStart stasisStart() { - return new StasisStart_impl_ari_1_9_0(); - }; - -public BridgeAttendedTransfer bridgeAttendedTransfer() { - return new BridgeAttendedTransfer_impl_ari_1_9_0(); - }; - -public SystemInfo systemInfo() { - return new SystemInfo_impl_ari_1_9_0(); - }; - -public ChannelLeftBridge channelLeftBridge() { - return new ChannelLeftBridge_impl_ari_1_9_0(); - }; - -public DialplanCEP dialplanCEP() { - return new DialplanCEP_impl_ari_1_9_0(); - }; - -public LogChannel logChannel() { - return new LogChannel_impl_ari_1_9_0(); - }; - -public CallerID callerID() { - return new CallerID_impl_ari_1_9_0(); - }; - -public Peer peer() { - return new Peer_impl_ari_1_9_0(); - }; - -public BridgeCreated bridgeCreated() { - return new BridgeCreated_impl_ari_1_9_0(); - }; - -public ChannelEnteredBridge channelEnteredBridge() { - return new ChannelEnteredBridge_impl_ari_1_9_0(); - }; - -public ChannelDtmfReceived channelDtmfReceived() { - return new ChannelDtmfReceived_impl_ari_1_9_0(); - }; - -public Event event() { - return new Event_impl_ari_1_9_0(); - }; - -public Module module() { - return new Module_impl_ari_1_9_0(); - }; - -public TextMessage textMessage() { - return new TextMessage_impl_ari_1_9_0(); - }; - -public Bridge bridge() { - return new Bridge_impl_ari_1_9_0(); - }; - -public MissingParams missingParams() { - return new MissingParams_impl_ari_1_9_0(); - }; - -public Dial dial() { - return new Dial_impl_ari_1_9_0(); - }; - -public Playback playback() { - return new Playback_impl_ari_1_9_0(); - }; - -public DeviceStateChanged deviceStateChanged() { - return new DeviceStateChanged_impl_ari_1_9_0(); - }; - -public Channel channel() { - return new Channel_impl_ari_1_9_0(); - }; - -public Message message() { - return new Message_impl_ari_1_9_0(); - }; - -public ChannelTalkingStarted channelTalkingStarted() { - return new ChannelTalkingStarted_impl_ari_1_9_0(); - }; - -public BridgeVideoSourceChanged bridgeVideoSourceChanged() { - throw new UnsupportedOperationException(); - }; - -public PlaybackContinuing playbackContinuing() { - throw new UnsupportedOperationException(); - }; - -public ARI.ClassFactory getClassFactory() { - return new ClassTranslator_impl_ari_1_9_0(); -}; - -}; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/ClassTranslator_impl_ari_1_9_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/ClassTranslator_impl_ari_1_9_0.java deleted file mode 100644 index 6b68a6ef..00000000 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/ClassTranslator_impl_ari_1_9_0.java +++ /dev/null @@ -1,327 +0,0 @@ -package ch.loway.oss.ari4java.generated.ari_1_9_0; - -// ---------------------------------------------------- -// THIS CLASS WAS GENERATED AUTOMATICALLY -// PLEASE DO NOT EDIT -// Generated on: Tue Dec 19 09:55:50 CET 2017 -// ---------------------------------------------------- - -import ch.loway.oss.ari4java.ARI; -import ch.loway.oss.ari4java.generated.*; -import ch.loway.oss.ari4java.generated.ari_1_9_0.models.*; -import ch.loway.oss.ari4java.generated.ari_1_9_0.actions.*; - -/********************************************************** - * This is a class translator. - *********************************************************/ -public class ClassTranslator_impl_ari_1_9_0 implements ARI.ClassFactory { - - @Override - public Class getImplementationFor(Class interfaceClass) { - - if ( interfaceClass.equals(ActionApplications.class) ) { - return (ActionApplications_impl_ari_1_9_0.class); - } else - - if ( interfaceClass.equals(ActionAsterisk.class) ) { - return (ActionAsterisk_impl_ari_1_9_0.class); - } else - - if ( interfaceClass.equals(ActionBridges.class) ) { - return (ActionBridges_impl_ari_1_9_0.class); - } else - - if ( interfaceClass.equals(ActionChannels.class) ) { - return (ActionChannels_impl_ari_1_9_0.class); - } else - - if ( interfaceClass.equals(ActionDeviceStates.class) ) { - return (ActionDeviceStates_impl_ari_1_9_0.class); - } else - - if ( interfaceClass.equals(ActionEndpoints.class) ) { - return (ActionEndpoints_impl_ari_1_9_0.class); - } else - - if ( interfaceClass.equals(ActionEvents.class) ) { - return (ActionEvents_impl_ari_1_9_0.class); - } else - - if ( interfaceClass.equals(ActionPlaybacks.class) ) { - return (ActionPlaybacks_impl_ari_1_9_0.class); - } else - - if ( interfaceClass.equals(ActionRecordings.class) ) { - return (ActionRecordings_impl_ari_1_9_0.class); - } else - - if ( interfaceClass.equals(ActionSounds.class) ) { - return (ActionSounds_impl_ari_1_9_0.class); - } else - - if ( interfaceClass.equals(Application.class) ) { - return (Application_impl_ari_1_9_0.class); - } else - - if ( interfaceClass.equals(ApplicationReplaced.class) ) { - return (ApplicationReplaced_impl_ari_1_9_0.class); - } else - - if ( interfaceClass.equals(AsteriskInfo.class) ) { - return (AsteriskInfo_impl_ari_1_9_0.class); - } else - - if ( interfaceClass.equals(Bridge.class) ) { - return (Bridge_impl_ari_1_9_0.class); - } else - - if ( interfaceClass.equals(BridgeAttendedTransfer.class) ) { - return (BridgeAttendedTransfer_impl_ari_1_9_0.class); - } else - - if ( interfaceClass.equals(BridgeBlindTransfer.class) ) { - return (BridgeBlindTransfer_impl_ari_1_9_0.class); - } else - - if ( interfaceClass.equals(BridgeCreated.class) ) { - return (BridgeCreated_impl_ari_1_9_0.class); - } else - - if ( interfaceClass.equals(BridgeDestroyed.class) ) { - return (BridgeDestroyed_impl_ari_1_9_0.class); - } else - - if ( interfaceClass.equals(BridgeMerged.class) ) { - return (BridgeMerged_impl_ari_1_9_0.class); - } else - - if ( interfaceClass.equals(BuildInfo.class) ) { - return (BuildInfo_impl_ari_1_9_0.class); - } else - - if ( interfaceClass.equals(CallerID.class) ) { - return (CallerID_impl_ari_1_9_0.class); - } else - - if ( interfaceClass.equals(Channel.class) ) { - return (Channel_impl_ari_1_9_0.class); - } else - - if ( interfaceClass.equals(ChannelCallerId.class) ) { - return (ChannelCallerId_impl_ari_1_9_0.class); - } else - - if ( interfaceClass.equals(ChannelConnectedLine.class) ) { - return (ChannelConnectedLine_impl_ari_1_9_0.class); - } else - - if ( interfaceClass.equals(ChannelCreated.class) ) { - return (ChannelCreated_impl_ari_1_9_0.class); - } else - - if ( interfaceClass.equals(ChannelDestroyed.class) ) { - return (ChannelDestroyed_impl_ari_1_9_0.class); - } else - - if ( interfaceClass.equals(ChannelDialplan.class) ) { - return (ChannelDialplan_impl_ari_1_9_0.class); - } else - - if ( interfaceClass.equals(ChannelDtmfReceived.class) ) { - return (ChannelDtmfReceived_impl_ari_1_9_0.class); - } else - - if ( interfaceClass.equals(ChannelEnteredBridge.class) ) { - return (ChannelEnteredBridge_impl_ari_1_9_0.class); - } else - - if ( interfaceClass.equals(ChannelHangupRequest.class) ) { - return (ChannelHangupRequest_impl_ari_1_9_0.class); - } else - - if ( interfaceClass.equals(ChannelHold.class) ) { - return (ChannelHold_impl_ari_1_9_0.class); - } else - - if ( interfaceClass.equals(ChannelLeftBridge.class) ) { - return (ChannelLeftBridge_impl_ari_1_9_0.class); - } else - - if ( interfaceClass.equals(ChannelStateChange.class) ) { - return (ChannelStateChange_impl_ari_1_9_0.class); - } else - - if ( interfaceClass.equals(ChannelTalkingFinished.class) ) { - return (ChannelTalkingFinished_impl_ari_1_9_0.class); - } else - - if ( interfaceClass.equals(ChannelTalkingStarted.class) ) { - return (ChannelTalkingStarted_impl_ari_1_9_0.class); - } else - - if ( interfaceClass.equals(ChannelUnhold.class) ) { - return (ChannelUnhold_impl_ari_1_9_0.class); - } else - - if ( interfaceClass.equals(ChannelUserevent.class) ) { - return (ChannelUserevent_impl_ari_1_9_0.class); - } else - - if ( interfaceClass.equals(ChannelVarset.class) ) { - return (ChannelVarset_impl_ari_1_9_0.class); - } else - - if ( interfaceClass.equals(ConfigInfo.class) ) { - return (ConfigInfo_impl_ari_1_9_0.class); - } else - - if ( interfaceClass.equals(ConfigTuple.class) ) { - return (ConfigTuple_impl_ari_1_9_0.class); - } else - - if ( interfaceClass.equals(ContactInfo.class) ) { - return (ContactInfo_impl_ari_1_9_0.class); - } else - - if ( interfaceClass.equals(ContactStatusChange.class) ) { - return (ContactStatusChange_impl_ari_1_9_0.class); - } else - - if ( interfaceClass.equals(DeviceState.class) ) { - return (DeviceState_impl_ari_1_9_0.class); - } else - - if ( interfaceClass.equals(DeviceStateChanged.class) ) { - return (DeviceStateChanged_impl_ari_1_9_0.class); - } else - - if ( interfaceClass.equals(Dial.class) ) { - return (Dial_impl_ari_1_9_0.class); - } else - - if ( interfaceClass.equals(Dialed.class) ) { - return (Dialed_impl_ari_1_9_0.class); - } else - - if ( interfaceClass.equals(DialplanCEP.class) ) { - return (DialplanCEP_impl_ari_1_9_0.class); - } else - - if ( interfaceClass.equals(Endpoint.class) ) { - return (Endpoint_impl_ari_1_9_0.class); - } else - - if ( interfaceClass.equals(EndpointStateChange.class) ) { - return (EndpointStateChange_impl_ari_1_9_0.class); - } else - - if ( interfaceClass.equals(Event.class) ) { - return (Event_impl_ari_1_9_0.class); - } else - - if ( interfaceClass.equals(FormatLangPair.class) ) { - return (FormatLangPair_impl_ari_1_9_0.class); - } else - - if ( interfaceClass.equals(LiveRecording.class) ) { - return (LiveRecording_impl_ari_1_9_0.class); - } else - - if ( interfaceClass.equals(LogChannel.class) ) { - return (LogChannel_impl_ari_1_9_0.class); - } else - - if ( interfaceClass.equals(Message.class) ) { - return (Message_impl_ari_1_9_0.class); - } else - - if ( interfaceClass.equals(MissingParams.class) ) { - return (MissingParams_impl_ari_1_9_0.class); - } else - - if ( interfaceClass.equals(Module.class) ) { - return (Module_impl_ari_1_9_0.class); - } else - - if ( interfaceClass.equals(Peer.class) ) { - return (Peer_impl_ari_1_9_0.class); - } else - - if ( interfaceClass.equals(PeerStatusChange.class) ) { - return (PeerStatusChange_impl_ari_1_9_0.class); - } else - - if ( interfaceClass.equals(Playback.class) ) { - return (Playback_impl_ari_1_9_0.class); - } else - - if ( interfaceClass.equals(PlaybackFinished.class) ) { - return (PlaybackFinished_impl_ari_1_9_0.class); - } else - - if ( interfaceClass.equals(PlaybackStarted.class) ) { - return (PlaybackStarted_impl_ari_1_9_0.class); - } else - - if ( interfaceClass.equals(RecordingFailed.class) ) { - return (RecordingFailed_impl_ari_1_9_0.class); - } else - - if ( interfaceClass.equals(RecordingFinished.class) ) { - return (RecordingFinished_impl_ari_1_9_0.class); - } else - - if ( interfaceClass.equals(RecordingStarted.class) ) { - return (RecordingStarted_impl_ari_1_9_0.class); - } else - - if ( interfaceClass.equals(SetId.class) ) { - return (SetId_impl_ari_1_9_0.class); - } else - - if ( interfaceClass.equals(Sound.class) ) { - return (Sound_impl_ari_1_9_0.class); - } else - - if ( interfaceClass.equals(StasisEnd.class) ) { - return (StasisEnd_impl_ari_1_9_0.class); - } else - - if ( interfaceClass.equals(StasisStart.class) ) { - return (StasisStart_impl_ari_1_9_0.class); - } else - - if ( interfaceClass.equals(StatusInfo.class) ) { - return (StatusInfo_impl_ari_1_9_0.class); - } else - - if ( interfaceClass.equals(StoredRecording.class) ) { - return (StoredRecording_impl_ari_1_9_0.class); - } else - - if ( interfaceClass.equals(SystemInfo.class) ) { - return (SystemInfo_impl_ari_1_9_0.class); - } else - - if ( interfaceClass.equals(TextMessage.class) ) { - return (TextMessage_impl_ari_1_9_0.class); - } else - - if ( interfaceClass.equals(TextMessageReceived.class) ) { - return (TextMessageReceived_impl_ari_1_9_0.class); - } else - - if ( interfaceClass.equals(TextMessageVariable.class) ) { - return (TextMessageVariable_impl_ari_1_9_0.class); - } else - - if ( interfaceClass.equals(Variable.class) ) { - return (Variable_impl_ari_1_9_0.class); - } else - { - return null; - } - } -} - - diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/actions/ActionApplications_impl_ari_1_9_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/actions/ActionApplications_impl_ari_1_9_0.java deleted file mode 100644 index 96db8689..00000000 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/actions/ActionApplications_impl_ari_1_9_0.java +++ /dev/null @@ -1,140 +0,0 @@ -package ch.loway.oss.ari4java.generated.ari_1_9_0.actions; - -// ---------------------------------------------------- -// THIS CLASS WAS GENERATED AUTOMATICALLY -// PLEASE DO NOT EDIT -// Generated on: Tue Dec 19 09:55:49 CET 2017 -// ---------------------------------------------------- - -import ch.loway.oss.ari4java.generated.*; -import java.util.Date; -import java.util.List; -import java.util.Map; -import java.util.ArrayList; -import ch.loway.oss.ari4java.tools.BaseAriAction; -import ch.loway.oss.ari4java.tools.RestException; -import ch.loway.oss.ari4java.tools.AriCallback; -import ch.loway.oss.ari4java.tools.HttpParam; -import ch.loway.oss.ari4java.tools.HttpResponse; -import com.fasterxml.jackson.core.type.TypeReference; -import ch.loway.oss.ari4java.generated.ari_1_9_0.models.*; - -/********************************************************** - * - * Generated by: Apis - *********************************************************/ - - -public class ActionApplications_impl_ari_1_9_0 extends BaseAriAction implements ActionApplications { -/********************************************************** - * Stasis applications - * - * List all applications. - *********************************************************/ -private void buildList() { -reset(); -url = "/applications"; -method = "GET"; -} - -@Override -public List list() throws RestException { -buildList(); -String json = httpActionSync(); -return deserializeJsonAsAbstractList( json, - new TypeReference>() {} ); -} - -@Override -public void list(AriCallback> callback) { -buildList(); -httpActionAsync(callback, new TypeReference>() {}); -} - -/********************************************************** - * Stasis application - * - * Get details of an application. - *********************************************************/ -private void buildGet(String applicationName) { -reset(); -url = "/applications/" + applicationName + ""; -method = "GET"; -lE.add( HttpResponse.build( 404, "Application does not exist.") ); -} - -@Override -public Application get(String applicationName) throws RestException { -buildGet(applicationName); -String json = httpActionSync(); -return deserializeJson( json, Application_impl_ari_1_9_0.class ); -} - -@Override -public void get(String applicationName, AriCallback callback) { -buildGet(applicationName); -httpActionAsync(callback, Application_impl_ari_1_9_0.class); -} - -/********************************************************** - * Stasis application - * - * Subscribe an application to a event source. - * Returns the state of the application after the subscriptions have changed - *********************************************************/ -private void buildSubscribe(String applicationName, String eventSource) { -reset(); -url = "/applications/" + applicationName + "/subscription"; -method = "POST"; -lParamQuery.add( HttpParam.build( "eventSource", eventSource) ); -lE.add( HttpResponse.build( 400, "Missing parameter.") ); -lE.add( HttpResponse.build( 404, "Application does not exist.") ); -lE.add( HttpResponse.build( 422, "Event source does not exist.") ); -} - -@Override -public Application subscribe(String applicationName, String eventSource) throws RestException { -buildSubscribe(applicationName, eventSource); -String json = httpActionSync(); -return deserializeJson( json, Application_impl_ari_1_9_0.class ); -} - -@Override -public void subscribe(String applicationName, String eventSource, AriCallback callback) { -buildSubscribe(applicationName, eventSource); -httpActionAsync(callback, Application_impl_ari_1_9_0.class); -} - -/********************************************************** - * Stasis application - * - * Unsubscribe an application from an event source. - * Returns the state of the application after the subscriptions have changed - *********************************************************/ -private void buildUnsubscribe(String applicationName, String eventSource) { -reset(); -url = "/applications/" + applicationName + "/subscription"; -method = "DELETE"; -lParamQuery.add( HttpParam.build( "eventSource", eventSource) ); -lE.add( HttpResponse.build( 400, "Missing parameter; event source scheme not recognized.") ); -lE.add( HttpResponse.build( 404, "Application does not exist.") ); -lE.add( HttpResponse.build( 409, "Application not subscribed to event source.") ); -lE.add( HttpResponse.build( 422, "Event source does not exist.") ); -} - -@Override -public Application unsubscribe(String applicationName, String eventSource) throws RestException { -buildUnsubscribe(applicationName, eventSource); -String json = httpActionSync(); -return deserializeJson( json, Application_impl_ari_1_9_0.class ); -} - -@Override -public void unsubscribe(String applicationName, String eventSource, AriCallback callback) { -buildUnsubscribe(applicationName, eventSource); -httpActionAsync(callback, Application_impl_ari_1_9_0.class); -} - -/** No missing signatures from interface */ -}; - diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/actions/ActionAsterisk_impl_ari_1_9_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/actions/ActionAsterisk_impl_ari_1_9_0.java deleted file mode 100644 index 91681d2c..00000000 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/actions/ActionAsterisk_impl_ari_1_9_0.java +++ /dev/null @@ -1,412 +0,0 @@ -package ch.loway.oss.ari4java.generated.ari_1_9_0.actions; - -// ---------------------------------------------------- -// THIS CLASS WAS GENERATED AUTOMATICALLY -// PLEASE DO NOT EDIT -// Generated on: Tue Dec 19 09:55:49 CET 2017 -// ---------------------------------------------------- - -import ch.loway.oss.ari4java.generated.*; -import java.util.Date; -import java.util.List; -import java.util.Map; -import java.util.ArrayList; -import ch.loway.oss.ari4java.tools.BaseAriAction; -import ch.loway.oss.ari4java.tools.RestException; -import ch.loway.oss.ari4java.tools.AriCallback; -import ch.loway.oss.ari4java.tools.HttpParam; -import ch.loway.oss.ari4java.tools.HttpResponse; -import com.fasterxml.jackson.core.type.TypeReference; -import ch.loway.oss.ari4java.generated.ari_1_9_0.models.*; - -/********************************************************** - * - * Generated by: Apis - *********************************************************/ - - -public class ActionAsterisk_impl_ari_1_9_0 extends BaseAriAction implements ActionAsterisk { -/********************************************************** - * Asterisk dynamic configuration - * - * Retrieve a dynamic configuration object. - *********************************************************/ -private void buildGetObject(String configClass, String objectType, String id) { -reset(); -url = "/asterisk/config/dynamic/" + configClass + "/" + objectType + "/" + id + ""; -method = "GET"; -lE.add( HttpResponse.build( 404, "{configClass|objectType|id} not found") ); -} - -@Override -public List getObject(String configClass, String objectType, String id) throws RestException { -buildGetObject(configClass, objectType, id); -String json = httpActionSync(); -return deserializeJsonAsAbstractList( json, - new TypeReference>() {} ); -} - -@Override -public void getObject(String configClass, String objectType, String id, AriCallback> callback) { -buildGetObject(configClass, objectType, id); -httpActionAsync(callback, new TypeReference>() {}); -} - -/********************************************************** - * Asterisk dynamic configuration - * - * Create or update a dynamic configuration object. - *********************************************************/ -private void buildUpdateObject(String configClass, String objectType, String id, Map fields) { -reset(); -url = "/asterisk/config/dynamic/" + configClass + "/" + objectType + "/" + id + ""; -method = "PUT"; -lParamBody.addAll( HttpParam.build( "fields", fields) ); -lE.add( HttpResponse.build( 400, "Bad request body") ); -lE.add( HttpResponse.build( 403, "Could not create or update object") ); -lE.add( HttpResponse.build( 404, "{configClass|objectType} not found") ); -} - -@Override -public List updateObject(String configClass, String objectType, String id, Map fields) throws RestException { -buildUpdateObject(configClass, objectType, id, fields); -String json = httpActionSync(); -return deserializeJsonAsAbstractList( json, - new TypeReference>() {} ); -} - -@Override -public void updateObject(String configClass, String objectType, String id, Map fields, AriCallback> callback) { -buildUpdateObject(configClass, objectType, id, fields); -httpActionAsync(callback, new TypeReference>() {}); -} - -/********************************************************** - * Asterisk dynamic configuration - * - * Delete a dynamic configuration object. - *********************************************************/ -private void buildDeleteObject(String configClass, String objectType, String id) { -reset(); -url = "/asterisk/config/dynamic/" + configClass + "/" + objectType + "/" + id + ""; -method = "DELETE"; -lE.add( HttpResponse.build( 403, "Could not delete object") ); -lE.add( HttpResponse.build( 404, "{configClass|objectType|id} not found") ); -} - -@Override -public void deleteObject(String configClass, String objectType, String id) throws RestException { -buildDeleteObject(configClass, objectType, id); -String json = httpActionSync(); -} - -@Override -public void deleteObject(String configClass, String objectType, String id, AriCallback callback) { -buildDeleteObject(configClass, objectType, id); -httpActionAsync(callback); -} - -/********************************************************** - * Asterisk system information (similar to core show settings) - * - * Gets Asterisk system information. - *********************************************************/ -private void buildGetInfo(String only) { -reset(); -url = "/asterisk/info"; -method = "GET"; -lParamQuery.add( HttpParam.build( "only", only) ); -} - -@Override -public AsteriskInfo getInfo(String only) throws RestException { -buildGetInfo(only); -String json = httpActionSync(); -return deserializeJson( json, AsteriskInfo_impl_ari_1_9_0.class ); -} - -@Override -public void getInfo(String only, AriCallback callback) { -buildGetInfo(only); -httpActionAsync(callback, AsteriskInfo_impl_ari_1_9_0.class); -} - -/********************************************************** - * Asterisk log channels - * - * Gets Asterisk log channel information. - *********************************************************/ -private void buildListLogChannels() { -reset(); -url = "/asterisk/logging"; -method = "GET"; -} - -@Override -public List listLogChannels() throws RestException { -buildListLogChannels(); -String json = httpActionSync(); -return deserializeJsonAsAbstractList( json, - new TypeReference>() {} ); -} - -@Override -public void listLogChannels(AriCallback> callback) { -buildListLogChannels(); -httpActionAsync(callback, new TypeReference>() {}); -} - -/********************************************************** - * Asterisk log channel - * - * Adds a log channel. - *********************************************************/ -private void buildAddLog(String logChannelName, String configuration) { -reset(); -url = "/asterisk/logging/" + logChannelName + ""; -method = "POST"; -lParamQuery.add( HttpParam.build( "configuration", configuration) ); -lE.add( HttpResponse.build( 400, "Bad request body") ); -lE.add( HttpResponse.build( 409, "Log channel could not be created.") ); -} - -@Override -public void addLog(String logChannelName, String configuration) throws RestException { -buildAddLog(logChannelName, configuration); -String json = httpActionSync(); -} - -@Override -public void addLog(String logChannelName, String configuration, AriCallback callback) { -buildAddLog(logChannelName, configuration); -httpActionAsync(callback); -} - -/********************************************************** - * Asterisk log channel - * - * Deletes a log channel. - *********************************************************/ -private void buildDeleteLog(String logChannelName) { -reset(); -url = "/asterisk/logging/" + logChannelName + ""; -method = "DELETE"; -lE.add( HttpResponse.build( 404, "Log channel does not exist.") ); -} - -@Override -public void deleteLog(String logChannelName) throws RestException { -buildDeleteLog(logChannelName); -String json = httpActionSync(); -} - -@Override -public void deleteLog(String logChannelName, AriCallback callback) { -buildDeleteLog(logChannelName); -httpActionAsync(callback); -} - -/********************************************************** - * Asterisk log channel - * - * Rotates a log channel. - *********************************************************/ -private void buildRotateLog(String logChannelName) { -reset(); -url = "/asterisk/logging/" + logChannelName + "/rotate"; -method = "PUT"; -lE.add( HttpResponse.build( 404, "Log channel does not exist.") ); -} - -@Override -public void rotateLog(String logChannelName) throws RestException { -buildRotateLog(logChannelName); -String json = httpActionSync(); -} - -@Override -public void rotateLog(String logChannelName, AriCallback callback) { -buildRotateLog(logChannelName); -httpActionAsync(callback); -} - -/********************************************************** - * Asterisk modules - * - * List Asterisk modules. - *********************************************************/ -private void buildListModules() { -reset(); -url = "/asterisk/modules"; -method = "GET"; -} - -@Override -public List listModules() throws RestException { -buildListModules(); -String json = httpActionSync(); -return deserializeJsonAsAbstractList( json, - new TypeReference>() {} ); -} - -@Override -public void listModules(AriCallback> callback) { -buildListModules(); -httpActionAsync(callback, new TypeReference>() {}); -} - -/********************************************************** - * Asterisk module - * - * Get Asterisk module information. - *********************************************************/ -private void buildGetModule(String moduleName) { -reset(); -url = "/asterisk/modules/" + moduleName + ""; -method = "GET"; -lE.add( HttpResponse.build( 404, "Module could not be found in running modules.") ); -lE.add( HttpResponse.build( 409, "Module information could not be retrieved.") ); -} - -@Override -public Module getModule(String moduleName) throws RestException { -buildGetModule(moduleName); -String json = httpActionSync(); -return deserializeJson( json, Module_impl_ari_1_9_0.class ); -} - -@Override -public void getModule(String moduleName, AriCallback callback) { -buildGetModule(moduleName); -httpActionAsync(callback, Module_impl_ari_1_9_0.class); -} - -/********************************************************** - * Asterisk module - * - * Load an Asterisk module. - *********************************************************/ -private void buildLoadModule(String moduleName) { -reset(); -url = "/asterisk/modules/" + moduleName + ""; -method = "POST"; -lE.add( HttpResponse.build( 409, "Module could not be loaded.") ); -} - -@Override -public void loadModule(String moduleName) throws RestException { -buildLoadModule(moduleName); -String json = httpActionSync(); -} - -@Override -public void loadModule(String moduleName, AriCallback callback) { -buildLoadModule(moduleName); -httpActionAsync(callback); -} - -/********************************************************** - * Asterisk module - * - * Unload an Asterisk module. - *********************************************************/ -private void buildUnloadModule(String moduleName) { -reset(); -url = "/asterisk/modules/" + moduleName + ""; -method = "DELETE"; -lE.add( HttpResponse.build( 404, "Module not found in running modules.") ); -lE.add( HttpResponse.build( 409, "Module could not be unloaded.") ); -} - -@Override -public void unloadModule(String moduleName) throws RestException { -buildUnloadModule(moduleName); -String json = httpActionSync(); -} - -@Override -public void unloadModule(String moduleName, AriCallback callback) { -buildUnloadModule(moduleName); -httpActionAsync(callback); -} - -/********************************************************** - * Asterisk module - * - * Reload an Asterisk module. - *********************************************************/ -private void buildReloadModule(String moduleName) { -reset(); -url = "/asterisk/modules/" + moduleName + ""; -method = "PUT"; -lE.add( HttpResponse.build( 404, "Module not found in running modules.") ); -lE.add( HttpResponse.build( 409, "Module could not be reloaded.") ); -} - -@Override -public void reloadModule(String moduleName) throws RestException { -buildReloadModule(moduleName); -String json = httpActionSync(); -} - -@Override -public void reloadModule(String moduleName, AriCallback callback) { -buildReloadModule(moduleName); -httpActionAsync(callback); -} - -/********************************************************** - * Global variables - * - * Get the value of a global variable. - *********************************************************/ -private void buildGetGlobalVar(String variable) { -reset(); -url = "/asterisk/variable"; -method = "GET"; -lParamQuery.add( HttpParam.build( "variable", variable) ); -lE.add( HttpResponse.build( 400, "Missing variable parameter.") ); -} - -@Override -public Variable getGlobalVar(String variable) throws RestException { -buildGetGlobalVar(variable); -String json = httpActionSync(); -return deserializeJson( json, Variable_impl_ari_1_9_0.class ); -} - -@Override -public void getGlobalVar(String variable, AriCallback callback) { -buildGetGlobalVar(variable); -httpActionAsync(callback, Variable_impl_ari_1_9_0.class); -} - -/********************************************************** - * Global variables - * - * Set the value of a global variable. - *********************************************************/ -private void buildSetGlobalVar(String variable, String value) { -reset(); -url = "/asterisk/variable"; -method = "POST"; -lParamQuery.add( HttpParam.build( "variable", variable) ); -lParamQuery.add( HttpParam.build( "value", value) ); -lE.add( HttpResponse.build( 400, "Missing variable parameter.") ); -} - -@Override -public void setGlobalVar(String variable, String value) throws RestException { -buildSetGlobalVar(variable, value); -String json = httpActionSync(); -} - -@Override -public void setGlobalVar(String variable, String value, AriCallback callback) { -buildSetGlobalVar(variable, value); -httpActionAsync(callback); -} - -/** No missing signatures from interface */ -}; - diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/actions/ActionBridges_impl_ari_1_9_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/actions/ActionBridges_impl_ari_1_9_0.java deleted file mode 100644 index 857bf58e..00000000 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/actions/ActionBridges_impl_ari_1_9_0.java +++ /dev/null @@ -1,482 +0,0 @@ -package ch.loway.oss.ari4java.generated.ari_1_9_0.actions; - -// ---------------------------------------------------- -// THIS CLASS WAS GENERATED AUTOMATICALLY -// PLEASE DO NOT EDIT -// Generated on: Tue Dec 19 09:55:49 CET 2017 -// ---------------------------------------------------- - -import ch.loway.oss.ari4java.generated.*; -import java.util.Date; -import java.util.List; -import java.util.Map; -import java.util.ArrayList; -import ch.loway.oss.ari4java.tools.BaseAriAction; -import ch.loway.oss.ari4java.tools.RestException; -import ch.loway.oss.ari4java.tools.AriCallback; -import ch.loway.oss.ari4java.tools.HttpParam; -import ch.loway.oss.ari4java.tools.HttpResponse; -import com.fasterxml.jackson.core.type.TypeReference; -import ch.loway.oss.ari4java.generated.ari_1_9_0.models.*; - -/********************************************************** - * - * Generated by: Apis - *********************************************************/ - - -public class ActionBridges_impl_ari_1_9_0 extends BaseAriAction implements ActionBridges { -/********************************************************** - * Active bridges - * - * List all active bridges in Asterisk. - *********************************************************/ -private void buildList() { -reset(); -url = "/bridges"; -method = "GET"; -} - -@Override -public List list() throws RestException { -buildList(); -String json = httpActionSync(); -return deserializeJsonAsAbstractList( json, - new TypeReference>() {} ); -} - -@Override -public void list(AriCallback> callback) { -buildList(); -httpActionAsync(callback, new TypeReference>() {}); -} - -/********************************************************** - * Active bridges - * - * Create a new bridge. - * This bridge persists until it has been shut down, or Asterisk has been shut down. - *********************************************************/ -private void buildCreate(String type, String bridgeId, String name) { -reset(); -url = "/bridges"; -method = "POST"; -lParamQuery.add( HttpParam.build( "type", type) ); -lParamQuery.add( HttpParam.build( "bridgeId", bridgeId) ); -lParamQuery.add( HttpParam.build( "name", name) ); -} - -@Override -public Bridge create(String type, String bridgeId, String name) throws RestException { -buildCreate(type, bridgeId, name); -String json = httpActionSync(); -return deserializeJson( json, Bridge_impl_ari_1_9_0.class ); -} - -@Override -public void create(String type, String bridgeId, String name, AriCallback callback) { -buildCreate(type, bridgeId, name); -httpActionAsync(callback, Bridge_impl_ari_1_9_0.class); -} - -/********************************************************** - * Individual bridge - * - * Create a new bridge or updates an existing one. - * This bridge persists until it has been shut down, or Asterisk has been shut down. - *********************************************************/ -private void buildCreateWithId(String type, String bridgeId, String name) { -reset(); -url = "/bridges/" + bridgeId + ""; -method = "POST"; -lParamQuery.add( HttpParam.build( "type", type) ); -lParamQuery.add( HttpParam.build( "name", name) ); -} - -@Override -public Bridge createWithId(String type, String bridgeId, String name) throws RestException { -buildCreateWithId(type, bridgeId, name); -String json = httpActionSync(); -return deserializeJson( json, Bridge_impl_ari_1_9_0.class ); -} - -@Override -public void createWithId(String type, String bridgeId, String name, AriCallback callback) { -buildCreateWithId(type, bridgeId, name); -httpActionAsync(callback, Bridge_impl_ari_1_9_0.class); -} - -/********************************************************** - * Individual bridge - * - * Get bridge details. - *********************************************************/ -private void buildGet(String bridgeId) { -reset(); -url = "/bridges/" + bridgeId + ""; -method = "GET"; -lE.add( HttpResponse.build( 404, "Bridge not found") ); -} - -@Override -public Bridge get(String bridgeId) throws RestException { -buildGet(bridgeId); -String json = httpActionSync(); -return deserializeJson( json, Bridge_impl_ari_1_9_0.class ); -} - -@Override -public void get(String bridgeId, AriCallback callback) { -buildGet(bridgeId); -httpActionAsync(callback, Bridge_impl_ari_1_9_0.class); -} - -/********************************************************** - * Individual bridge - * - * Shut down a bridge. - * If any channels are in this bridge, they will be removed and resume whatever they were doing beforehand. - *********************************************************/ -private void buildDestroy(String bridgeId) { -reset(); -url = "/bridges/" + bridgeId + ""; -method = "DELETE"; -lE.add( HttpResponse.build( 404, "Bridge not found") ); -} - -@Override -public void destroy(String bridgeId) throws RestException { -buildDestroy(bridgeId); -String json = httpActionSync(); -} - -@Override -public void destroy(String bridgeId, AriCallback callback) { -buildDestroy(bridgeId); -httpActionAsync(callback); -} - -/********************************************************** - * Add a channel to a bridge - * - * Add a channel to a bridge. - *********************************************************/ -private void buildAddChannel(String bridgeId, String channel, String role) { -reset(); -url = "/bridges/" + bridgeId + "/addChannel"; -method = "POST"; -lParamQuery.add( HttpParam.build( "channel", channel) ); -lParamQuery.add( HttpParam.build( "role", role) ); -lE.add( HttpResponse.build( 400, "Channel not found") ); -lE.add( HttpResponse.build( 404, "Bridge not found") ); -lE.add( HttpResponse.build( 409, "Bridge not in Stasis application; Channel currently recording") ); -lE.add( HttpResponse.build( 422, "Channel not in Stasis application") ); -} - -@Override -public void addChannel(String bridgeId, String channel, String role) throws RestException { -buildAddChannel(bridgeId, channel, role); -String json = httpActionSync(); -} - -@Override -public void addChannel(String bridgeId, String channel, String role, AriCallback callback) { -buildAddChannel(bridgeId, channel, role); -httpActionAsync(callback); -} - -/********************************************************** - * Play music on hold to a bridge - * - * Play music on hold to a bridge or change the MOH class that is playing. - *********************************************************/ -private void buildStartMoh(String bridgeId, String mohClass) { -reset(); -url = "/bridges/" + bridgeId + "/moh"; -method = "POST"; -lParamQuery.add( HttpParam.build( "mohClass", mohClass) ); -lE.add( HttpResponse.build( 404, "Bridge not found") ); -lE.add( HttpResponse.build( 409, "Bridge not in Stasis application") ); -} - -@Override -public void startMoh(String bridgeId, String mohClass) throws RestException { -buildStartMoh(bridgeId, mohClass); -String json = httpActionSync(); -} - -@Override -public void startMoh(String bridgeId, String mohClass, AriCallback callback) { -buildStartMoh(bridgeId, mohClass); -httpActionAsync(callback); -} - -/********************************************************** - * Play music on hold to a bridge - * - * Stop playing music on hold to a bridge. - * This will only stop music on hold being played via POST bridges/{bridgeId}/moh. - *********************************************************/ -private void buildStopMoh(String bridgeId) { -reset(); -url = "/bridges/" + bridgeId + "/moh"; -method = "DELETE"; -lE.add( HttpResponse.build( 404, "Bridge not found") ); -lE.add( HttpResponse.build( 409, "Bridge not in Stasis application") ); -} - -@Override -public void stopMoh(String bridgeId) throws RestException { -buildStopMoh(bridgeId); -String json = httpActionSync(); -} - -@Override -public void stopMoh(String bridgeId, AriCallback callback) { -buildStopMoh(bridgeId); -httpActionAsync(callback); -} - -/********************************************************** - * Play media to the participants of a bridge - * - * Start playback of media on a bridge. - * The media URI may be any of a number of URI's. Currently sound:, recording:, number:, digits:, characters:, and tone: URI's are supported. This operation creates a playback resource that can be used to control the playback of media (pause, rewind, fast forward, etc.) - *********************************************************/ -private void buildPlay(String bridgeId, String media, String lang, int offsetms, int skipms, String playbackId) { -reset(); -url = "/bridges/" + bridgeId + "/play"; -method = "POST"; -lParamQuery.add( HttpParam.build( "media", media) ); -lParamQuery.add( HttpParam.build( "lang", lang) ); -lParamQuery.add( HttpParam.build( "offsetms", offsetms) ); -lParamQuery.add( HttpParam.build( "skipms", skipms) ); -lParamQuery.add( HttpParam.build( "playbackId", playbackId) ); -lE.add( HttpResponse.build( 404, "Bridge not found") ); -lE.add( HttpResponse.build( 409, "Bridge not in a Stasis application") ); -} - -@Override -public Playback play(String bridgeId, String media, String lang, int offsetms, int skipms, String playbackId) throws RestException { -buildPlay(bridgeId, media, lang, offsetms, skipms, playbackId); -String json = httpActionSync(); -return deserializeJson( json, Playback_impl_ari_1_9_0.class ); -} - -@Override -public void play(String bridgeId, String media, String lang, int offsetms, int skipms, String playbackId, AriCallback callback) { -buildPlay(bridgeId, media, lang, offsetms, skipms, playbackId); -httpActionAsync(callback, Playback_impl_ari_1_9_0.class); -} - -/********************************************************** - * Play media to a bridge - * - * Start playback of media on a bridge. - * The media URI may be any of a number of URI's. Currently sound:, recording:, number:, digits:, characters:, and tone: URI's are supported. This operation creates a playback resource that can be used to control the playback of media (pause, rewind, fast forward, etc.) - *********************************************************/ -private void buildPlayWithId(String bridgeId, String playbackId, String media, String lang, int offsetms, int skipms) { -reset(); -url = "/bridges/" + bridgeId + "/play/" + playbackId + ""; -method = "POST"; -lParamQuery.add( HttpParam.build( "media", media) ); -lParamQuery.add( HttpParam.build( "lang", lang) ); -lParamQuery.add( HttpParam.build( "offsetms", offsetms) ); -lParamQuery.add( HttpParam.build( "skipms", skipms) ); -lE.add( HttpResponse.build( 404, "Bridge not found") ); -lE.add( HttpResponse.build( 409, "Bridge not in a Stasis application") ); -} - -@Override -public Playback playWithId(String bridgeId, String playbackId, String media, String lang, int offsetms, int skipms) throws RestException { -buildPlayWithId(bridgeId, playbackId, media, lang, offsetms, skipms); -String json = httpActionSync(); -return deserializeJson( json, Playback_impl_ari_1_9_0.class ); -} - -@Override -public void playWithId(String bridgeId, String playbackId, String media, String lang, int offsetms, int skipms, AriCallback callback) { -buildPlayWithId(bridgeId, playbackId, media, lang, offsetms, skipms); -httpActionAsync(callback, Playback_impl_ari_1_9_0.class); -} - -/********************************************************** - * Record audio on a bridge - * - * Start a recording. - * This records the mixed audio from all channels participating in this bridge. - *********************************************************/ -private void buildRecord(String bridgeId, String name, String format, int maxDurationSeconds, int maxSilenceSeconds, String ifExists, boolean beep, String terminateOn) { -reset(); -url = "/bridges/" + bridgeId + "/record"; -method = "POST"; -lParamQuery.add( HttpParam.build( "name", name) ); -lParamQuery.add( HttpParam.build( "format", format) ); -lParamQuery.add( HttpParam.build( "maxDurationSeconds", maxDurationSeconds) ); -lParamQuery.add( HttpParam.build( "maxSilenceSeconds", maxSilenceSeconds) ); -lParamQuery.add( HttpParam.build( "ifExists", ifExists) ); -lParamQuery.add( HttpParam.build( "beep", beep) ); -lParamQuery.add( HttpParam.build( "terminateOn", terminateOn) ); -lE.add( HttpResponse.build( 400, "Invalid parameters") ); -lE.add( HttpResponse.build( 404, "Bridge not found") ); -lE.add( HttpResponse.build( 409, "Bridge is not in a Stasis application; A recording with the same name already exists on the system and can not be overwritten because it is in progress or ifExists=fail") ); -lE.add( HttpResponse.build( 422, "The format specified is unknown on this system") ); -} - -@Override -public LiveRecording record(String bridgeId, String name, String format, int maxDurationSeconds, int maxSilenceSeconds, String ifExists, boolean beep, String terminateOn) throws RestException { -buildRecord(bridgeId, name, format, maxDurationSeconds, maxSilenceSeconds, ifExists, beep, terminateOn); -String json = httpActionSync(); -return deserializeJson( json, LiveRecording_impl_ari_1_9_0.class ); -} - -@Override -public void record(String bridgeId, String name, String format, int maxDurationSeconds, int maxSilenceSeconds, String ifExists, boolean beep, String terminateOn, AriCallback callback) { -buildRecord(bridgeId, name, format, maxDurationSeconds, maxSilenceSeconds, ifExists, beep, terminateOn); -httpActionAsync(callback, LiveRecording_impl_ari_1_9_0.class); -} - -/********************************************************** - * Remove a channel from a bridge - * - * Remove a channel from a bridge. - *********************************************************/ -private void buildRemoveChannel(String bridgeId, String channel) { -reset(); -url = "/bridges/" + bridgeId + "/removeChannel"; -method = "POST"; -lParamQuery.add( HttpParam.build( "channel", channel) ); -lE.add( HttpResponse.build( 400, "Channel not found") ); -lE.add( HttpResponse.build( 404, "Bridge not found") ); -lE.add( HttpResponse.build( 409, "Bridge not in Stasis application") ); -lE.add( HttpResponse.build( 422, "Channel not in this bridge") ); -} - -@Override -public void removeChannel(String bridgeId, String channel) throws RestException { -buildRemoveChannel(bridgeId, channel); -String json = httpActionSync(); -} - -@Override -public void removeChannel(String bridgeId, String channel, AriCallback callback) { -buildRemoveChannel(bridgeId, channel); -httpActionAsync(callback); -} - -/********************************************************** - * Start playback of media on a bridge. - * The media URI may be any of a number of URI's. Currently sound: and recording: URI's are supported. This operation creates a playback resource that can be used to control the playback of media (pause, rewind, fast forward, etc.) - * - * @since ari_0_0_1 - *********************************************************/ -public Playback play(String bridgeId, String media, String lang, int offsetms, int skipms) throws RestException{ - throw new UnsupportedOperationException("Method availble from ..."); -}; - -/********************************************************** - * - * - * @since ari_0_0_1 - *********************************************************/ -public void play(String bridgeId, String media, String lang, int offsetms, int skipms, AriCallback callback){ - throw new UnsupportedOperationException("Method availble from ..."); -}; - -/********************************************************** - * Create a new bridge. - * This bridge persists until it has been shut down, or Asterisk has been shut down. - * - * @since ari_1_0_0 - *********************************************************/ -public Bridge create(String type, String name) throws RestException{ - throw new UnsupportedOperationException("Method availble from ..."); -}; - -/********************************************************** - * - * - * @since ari_1_5_0 - *********************************************************/ -public void create_or_update_with_id(String type, String bridgeId, String name, AriCallback callback){ - throw new UnsupportedOperationException("Method availble from ..."); -}; - -/********************************************************** - * Set a channel as the video source in a multi-party mixing bridge. This operation has no effect on bridges with two or fewer participants. - * - * - * @since ari_2_0_0 - *********************************************************/ -public void setVideoSource(String bridgeId, String channelId) throws RestException{ - throw new UnsupportedOperationException("Method availble from ..."); -}; - -/********************************************************** - * Create a new bridge or updates an existing one. - * This bridge persists until it has been shut down, or Asterisk has been shut down. - * - * @since ari_1_5_0 - *********************************************************/ -public Bridge create_or_update_with_id(String type, String bridgeId, String name) throws RestException{ - throw new UnsupportedOperationException("Method availble from ..."); -}; - -/********************************************************** - * Create a new bridge. - * This bridge persists until it has been shut down, or Asterisk has been shut down. - * - * @since ari_0_0_1 - *********************************************************/ -public Bridge create(String type) throws RestException{ - throw new UnsupportedOperationException("Method availble from ..."); -}; - -/********************************************************** - * Removes any explicit video source in a multi-party mixing bridge. This operation has no effect on bridges with two or fewer participants. When no explicit video source is set, talk detection will be used to determine the active video stream. - * - * - * @since ari_2_0_0 - *********************************************************/ -public void clearVideoSource(String bridgeId) throws RestException{ - throw new UnsupportedOperationException("Method availble from ..."); -}; - -/********************************************************** - * - * - * @since ari_0_0_1 - *********************************************************/ -public void create(String type, AriCallback callback){ - throw new UnsupportedOperationException("Method availble from ..."); -}; - -/********************************************************** - * - * - * @since ari_2_0_0 - *********************************************************/ -public void setVideoSource(String bridgeId, String channelId, AriCallback callback){ - throw new UnsupportedOperationException("Method availble from ..."); -}; - -/********************************************************** - * - * - * @since ari_1_0_0 - *********************************************************/ -public void create(String type, String name, AriCallback callback){ - throw new UnsupportedOperationException("Method availble from ..."); -}; - -/********************************************************** - * - * - * @since ari_2_0_0 - *********************************************************/ -public void clearVideoSource(String bridgeId, AriCallback callback){ - throw new UnsupportedOperationException("Method availble from ..."); -}; - -}; - diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/actions/ActionChannels_impl_ari_1_9_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/actions/ActionChannels_impl_ari_1_9_0.java deleted file mode 100644 index 5598f4ba..00000000 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/actions/ActionChannels_impl_ari_1_9_0.java +++ /dev/null @@ -1,961 +0,0 @@ -package ch.loway.oss.ari4java.generated.ari_1_9_0.actions; - -// ---------------------------------------------------- -// THIS CLASS WAS GENERATED AUTOMATICALLY -// PLEASE DO NOT EDIT -// Generated on: Tue Dec 19 09:55:49 CET 2017 -// ---------------------------------------------------- - -import ch.loway.oss.ari4java.generated.*; -import java.util.Date; -import java.util.List; -import java.util.Map; -import java.util.ArrayList; -import ch.loway.oss.ari4java.tools.BaseAriAction; -import ch.loway.oss.ari4java.tools.RestException; -import ch.loway.oss.ari4java.tools.AriCallback; -import ch.loway.oss.ari4java.tools.HttpParam; -import ch.loway.oss.ari4java.tools.HttpResponse; -import com.fasterxml.jackson.core.type.TypeReference; -import ch.loway.oss.ari4java.generated.ari_1_9_0.models.*; - -/********************************************************** - * - * Generated by: Apis - *********************************************************/ - - -public class ActionChannels_impl_ari_1_9_0 extends BaseAriAction implements ActionChannels { -/********************************************************** - * Active channels - * - * List all active channels in Asterisk. - *********************************************************/ -private void buildList() { -reset(); -url = "/channels"; -method = "GET"; -} - -@Override -public List list() throws RestException { -buildList(); -String json = httpActionSync(); -return deserializeJsonAsAbstractList( json, - new TypeReference>() {} ); -} - -@Override -public void list(AriCallback> callback) { -buildList(); -httpActionAsync(callback, new TypeReference>() {}); -} - -/********************************************************** - * Active channels - * - * Create a new channel (originate). - * The new channel is created immediately and a snapshot of it returned. If a Stasis application is provided it will be automatically subscribed to the originated channel for further events and updates. - *********************************************************/ -private void buildOriginate(String endpoint, String extension, String context, long priority, String label, String app, String appArgs, String callerId, int timeout, Map variables, String channelId, String otherChannelId, String originator) { -reset(); -url = "/channels"; -method = "POST"; -lParamQuery.add( HttpParam.build( "endpoint", endpoint) ); -lParamQuery.add( HttpParam.build( "extension", extension) ); -lParamQuery.add( HttpParam.build( "context", context) ); -lParamQuery.add( HttpParam.build( "priority", priority) ); -lParamQuery.add( HttpParam.build( "label", label) ); -lParamQuery.add( HttpParam.build( "app", app) ); -lParamQuery.add( HttpParam.build( "appArgs", appArgs) ); -lParamQuery.add( HttpParam.build( "callerId", callerId) ); -lParamQuery.add( HttpParam.build( "timeout", timeout) ); -lParamBody.addAll( HttpParam.build( "variables", variables) ); -lParamQuery.add( HttpParam.build( "channelId", channelId) ); -lParamQuery.add( HttpParam.build( "otherChannelId", otherChannelId) ); -lParamQuery.add( HttpParam.build( "originator", originator) ); -lE.add( HttpResponse.build( 400, "Invalid parameters for originating a channel.") ); -} - -@Override -public Channel originate(String endpoint, String extension, String context, long priority, String label, String app, String appArgs, String callerId, int timeout, Map variables, String channelId, String otherChannelId, String originator) throws RestException { -buildOriginate(endpoint, extension, context, priority, label, app, appArgs, callerId, timeout, variables, channelId, otherChannelId, originator); -String json = httpActionSync(); -return deserializeJson( json, Channel_impl_ari_1_9_0.class ); -} - -@Override -public void originate(String endpoint, String extension, String context, long priority, String label, String app, String appArgs, String callerId, int timeout, Map variables, String channelId, String otherChannelId, String originator, AriCallback callback) { -buildOriginate(endpoint, extension, context, priority, label, app, appArgs, callerId, timeout, variables, channelId, otherChannelId, originator); -httpActionAsync(callback, Channel_impl_ari_1_9_0.class); -} - -/********************************************************** - * Active channel - * - * Channel details. - *********************************************************/ -private void buildGet(String channelId) { -reset(); -url = "/channels/" + channelId + ""; -method = "GET"; -lE.add( HttpResponse.build( 404, "Channel not found") ); -} - -@Override -public Channel get(String channelId) throws RestException { -buildGet(channelId); -String json = httpActionSync(); -return deserializeJson( json, Channel_impl_ari_1_9_0.class ); -} - -@Override -public void get(String channelId, AriCallback callback) { -buildGet(channelId); -httpActionAsync(callback, Channel_impl_ari_1_9_0.class); -} - -/********************************************************** - * Active channel - * - * Create a new channel (originate with id). - * The new channel is created immediately and a snapshot of it returned. If a Stasis application is provided it will be automatically subscribed to the originated channel for further events and updates. - *********************************************************/ -private void buildOriginateWithId(String channelId, String endpoint, String extension, String context, long priority, String label, String app, String appArgs, String callerId, int timeout, Map variables, String otherChannelId, String originator) { -reset(); -url = "/channels/" + channelId + ""; -method = "POST"; -lParamQuery.add( HttpParam.build( "endpoint", endpoint) ); -lParamQuery.add( HttpParam.build( "extension", extension) ); -lParamQuery.add( HttpParam.build( "context", context) ); -lParamQuery.add( HttpParam.build( "priority", priority) ); -lParamQuery.add( HttpParam.build( "label", label) ); -lParamQuery.add( HttpParam.build( "app", app) ); -lParamQuery.add( HttpParam.build( "appArgs", appArgs) ); -lParamQuery.add( HttpParam.build( "callerId", callerId) ); -lParamQuery.add( HttpParam.build( "timeout", timeout) ); -lParamBody.addAll( HttpParam.build( "variables", variables) ); -lParamQuery.add( HttpParam.build( "otherChannelId", otherChannelId) ); -lParamQuery.add( HttpParam.build( "originator", originator) ); -lE.add( HttpResponse.build( 400, "Invalid parameters for originating a channel.") ); -} - -@Override -public Channel originateWithId(String channelId, String endpoint, String extension, String context, long priority, String label, String app, String appArgs, String callerId, int timeout, Map variables, String otherChannelId, String originator) throws RestException { -buildOriginateWithId(channelId, endpoint, extension, context, priority, label, app, appArgs, callerId, timeout, variables, otherChannelId, originator); -String json = httpActionSync(); -return deserializeJson( json, Channel_impl_ari_1_9_0.class ); -} - -@Override -public void originateWithId(String channelId, String endpoint, String extension, String context, long priority, String label, String app, String appArgs, String callerId, int timeout, Map variables, String otherChannelId, String originator, AriCallback callback) { -buildOriginateWithId(channelId, endpoint, extension, context, priority, label, app, appArgs, callerId, timeout, variables, otherChannelId, originator); -httpActionAsync(callback, Channel_impl_ari_1_9_0.class); -} - -/********************************************************** - * Active channel - * - * Delete (i.e. hangup) a channel. - *********************************************************/ -private void buildHangup(String channelId, String reason) { -reset(); -url = "/channels/" + channelId + ""; -method = "DELETE"; -lParamQuery.add( HttpParam.build( "reason", reason) ); -lE.add( HttpResponse.build( 400, "Invalid reason for hangup provided") ); -lE.add( HttpResponse.build( 404, "Channel not found") ); -} - -@Override -public void hangup(String channelId, String reason) throws RestException { -buildHangup(channelId, reason); -String json = httpActionSync(); -} - -@Override -public void hangup(String channelId, String reason, AriCallback callback) { -buildHangup(channelId, reason); -httpActionAsync(callback); -} - -/********************************************************** - * Answer a channel - * - * Answer a channel. - *********************************************************/ -private void buildAnswer(String channelId) { -reset(); -url = "/channels/" + channelId + "/answer"; -method = "POST"; -lE.add( HttpResponse.build( 404, "Channel not found") ); -lE.add( HttpResponse.build( 409, "Channel not in a Stasis application") ); -} - -@Override -public void answer(String channelId) throws RestException { -buildAnswer(channelId); -String json = httpActionSync(); -} - -@Override -public void answer(String channelId, AriCallback callback) { -buildAnswer(channelId); -httpActionAsync(callback); -} - -/********************************************************** - * Exit application; continue execution in the dialplan - * - * Exit application; continue execution in the dialplan. - *********************************************************/ -private void buildContinueInDialplan(String channelId, String context, String extension, int priority, String label) { -reset(); -url = "/channels/" + channelId + "/continue"; -method = "POST"; -lParamQuery.add( HttpParam.build( "context", context) ); -lParamQuery.add( HttpParam.build( "extension", extension) ); -lParamQuery.add( HttpParam.build( "priority", priority) ); -lParamQuery.add( HttpParam.build( "label", label) ); -lE.add( HttpResponse.build( 404, "Channel not found") ); -lE.add( HttpResponse.build( 409, "Channel not in a Stasis application") ); -} - -@Override -public void continueInDialplan(String channelId, String context, String extension, int priority, String label) throws RestException { -buildContinueInDialplan(channelId, context, extension, priority, label); -String json = httpActionSync(); -} - -@Override -public void continueInDialplan(String channelId, String context, String extension, int priority, String label, AriCallback callback) { -buildContinueInDialplan(channelId, context, extension, priority, label); -httpActionAsync(callback); -} - -/********************************************************** - * Send DTMF to a channel - * - * Send provided DTMF to a given channel. - *********************************************************/ -private void buildSendDTMF(String channelId, String dtmf, int before, int between, int duration, int after) { -reset(); -url = "/channels/" + channelId + "/dtmf"; -method = "POST"; -lParamQuery.add( HttpParam.build( "dtmf", dtmf) ); -lParamQuery.add( HttpParam.build( "before", before) ); -lParamQuery.add( HttpParam.build( "between", between) ); -lParamQuery.add( HttpParam.build( "duration", duration) ); -lParamQuery.add( HttpParam.build( "after", after) ); -lE.add( HttpResponse.build( 400, "DTMF is required") ); -lE.add( HttpResponse.build( 404, "Channel not found") ); -lE.add( HttpResponse.build( 409, "Channel not in a Stasis application") ); -} - -@Override -public void sendDTMF(String channelId, String dtmf, int before, int between, int duration, int after) throws RestException { -buildSendDTMF(channelId, dtmf, before, between, duration, after); -String json = httpActionSync(); -} - -@Override -public void sendDTMF(String channelId, String dtmf, int before, int between, int duration, int after, AriCallback callback) { -buildSendDTMF(channelId, dtmf, before, between, duration, after); -httpActionAsync(callback); -} - -/********************************************************** - * Put a channel on hold - * - * Hold a channel. - *********************************************************/ -private void buildHold(String channelId) { -reset(); -url = "/channels/" + channelId + "/hold"; -method = "POST"; -lE.add( HttpResponse.build( 404, "Channel not found") ); -lE.add( HttpResponse.build( 409, "Channel not in a Stasis application") ); -} - -@Override -public void hold(String channelId) throws RestException { -buildHold(channelId); -String json = httpActionSync(); -} - -@Override -public void hold(String channelId, AriCallback callback) { -buildHold(channelId); -httpActionAsync(callback); -} - -/********************************************************** - * Put a channel on hold - * - * Remove a channel from hold. - *********************************************************/ -private void buildUnhold(String channelId) { -reset(); -url = "/channels/" + channelId + "/hold"; -method = "DELETE"; -lE.add( HttpResponse.build( 404, "Channel not found") ); -lE.add( HttpResponse.build( 409, "Channel not in a Stasis application") ); -} - -@Override -public void unhold(String channelId) throws RestException { -buildUnhold(channelId); -String json = httpActionSync(); -} - -@Override -public void unhold(String channelId, AriCallback callback) { -buildUnhold(channelId); -httpActionAsync(callback); -} - -/********************************************************** - * Play music on hold to a channel - * - * Play music on hold to a channel. - * Using media operations such as /play on a channel playing MOH in this manner will suspend MOH without resuming automatically. If continuing music on hold is desired, the stasis application must reinitiate music on hold. - *********************************************************/ -private void buildStartMoh(String channelId, String mohClass) { -reset(); -url = "/channels/" + channelId + "/moh"; -method = "POST"; -lParamQuery.add( HttpParam.build( "mohClass", mohClass) ); -lE.add( HttpResponse.build( 404, "Channel not found") ); -lE.add( HttpResponse.build( 409, "Channel not in a Stasis application") ); -} - -@Override -public void startMoh(String channelId, String mohClass) throws RestException { -buildStartMoh(channelId, mohClass); -String json = httpActionSync(); -} - -@Override -public void startMoh(String channelId, String mohClass, AriCallback callback) { -buildStartMoh(channelId, mohClass); -httpActionAsync(callback); -} - -/********************************************************** - * Play music on hold to a channel - * - * Stop playing music on hold to a channel. - *********************************************************/ -private void buildStopMoh(String channelId) { -reset(); -url = "/channels/" + channelId + "/moh"; -method = "DELETE"; -lE.add( HttpResponse.build( 404, "Channel not found") ); -lE.add( HttpResponse.build( 409, "Channel not in a Stasis application") ); -} - -@Override -public void stopMoh(String channelId) throws RestException { -buildStopMoh(channelId); -String json = httpActionSync(); -} - -@Override -public void stopMoh(String channelId, AriCallback callback) { -buildStopMoh(channelId); -httpActionAsync(callback); -} - -/********************************************************** - * Mute a channel - * - * Mute a channel. - *********************************************************/ -private void buildMute(String channelId, String direction) { -reset(); -url = "/channels/" + channelId + "/mute"; -method = "POST"; -lParamQuery.add( HttpParam.build( "direction", direction) ); -lE.add( HttpResponse.build( 404, "Channel not found") ); -lE.add( HttpResponse.build( 409, "Channel not in a Stasis application") ); -} - -@Override -public void mute(String channelId, String direction) throws RestException { -buildMute(channelId, direction); -String json = httpActionSync(); -} - -@Override -public void mute(String channelId, String direction, AriCallback callback) { -buildMute(channelId, direction); -httpActionAsync(callback); -} - -/********************************************************** - * Mute a channel - * - * Unmute a channel. - *********************************************************/ -private void buildUnmute(String channelId, String direction) { -reset(); -url = "/channels/" + channelId + "/mute"; -method = "DELETE"; -lParamQuery.add( HttpParam.build( "direction", direction) ); -lE.add( HttpResponse.build( 404, "Channel not found") ); -lE.add( HttpResponse.build( 409, "Channel not in a Stasis application") ); -} - -@Override -public void unmute(String channelId, String direction) throws RestException { -buildUnmute(channelId, direction); -String json = httpActionSync(); -} - -@Override -public void unmute(String channelId, String direction, AriCallback callback) { -buildUnmute(channelId, direction); -httpActionAsync(callback); -} - -/********************************************************** - * Play media to a channel - * - * Start playback of media. - * The media URI may be any of a number of URI's. Currently sound:, recording:, number:, digits:, characters:, and tone: URI's are supported. This operation creates a playback resource that can be used to control the playback of media (pause, rewind, fast forward, etc.) - *********************************************************/ -private void buildPlay(String channelId, String media, String lang, int offsetms, int skipms, String playbackId) { -reset(); -url = "/channels/" + channelId + "/play"; -method = "POST"; -lParamQuery.add( HttpParam.build( "media", media) ); -lParamQuery.add( HttpParam.build( "lang", lang) ); -lParamQuery.add( HttpParam.build( "offsetms", offsetms) ); -lParamQuery.add( HttpParam.build( "skipms", skipms) ); -lParamQuery.add( HttpParam.build( "playbackId", playbackId) ); -lE.add( HttpResponse.build( 404, "Channel not found") ); -lE.add( HttpResponse.build( 409, "Channel not in a Stasis application") ); -} - -@Override -public Playback play(String channelId, String media, String lang, int offsetms, int skipms, String playbackId) throws RestException { -buildPlay(channelId, media, lang, offsetms, skipms, playbackId); -String json = httpActionSync(); -return deserializeJson( json, Playback_impl_ari_1_9_0.class ); -} - -@Override -public void play(String channelId, String media, String lang, int offsetms, int skipms, String playbackId, AriCallback callback) { -buildPlay(channelId, media, lang, offsetms, skipms, playbackId); -httpActionAsync(callback, Playback_impl_ari_1_9_0.class); -} - -/********************************************************** - * Play media to a channel - * - * Start playback of media and specify the playbackId. - * The media URI may be any of a number of URI's. Currently sound:, recording:, number:, digits:, characters:, and tone: URI's are supported. This operation creates a playback resource that can be used to control the playback of media (pause, rewind, fast forward, etc.) - *********************************************************/ -private void buildPlayWithId(String channelId, String playbackId, String media, String lang, int offsetms, int skipms) { -reset(); -url = "/channels/" + channelId + "/play/" + playbackId + ""; -method = "POST"; -lParamQuery.add( HttpParam.build( "media", media) ); -lParamQuery.add( HttpParam.build( "lang", lang) ); -lParamQuery.add( HttpParam.build( "offsetms", offsetms) ); -lParamQuery.add( HttpParam.build( "skipms", skipms) ); -lE.add( HttpResponse.build( 404, "Channel not found") ); -lE.add( HttpResponse.build( 409, "Channel not in a Stasis application") ); -} - -@Override -public Playback playWithId(String channelId, String playbackId, String media, String lang, int offsetms, int skipms) throws RestException { -buildPlayWithId(channelId, playbackId, media, lang, offsetms, skipms); -String json = httpActionSync(); -return deserializeJson( json, Playback_impl_ari_1_9_0.class ); -} - -@Override -public void playWithId(String channelId, String playbackId, String media, String lang, int offsetms, int skipms, AriCallback callback) { -buildPlayWithId(channelId, playbackId, media, lang, offsetms, skipms); -httpActionAsync(callback, Playback_impl_ari_1_9_0.class); -} - -/********************************************************** - * Record audio from a channel - * - * Start a recording. - * Record audio from a channel. Note that this will not capture audio sent to the channel. The bridge itself has a record feature if that's what you want. - *********************************************************/ -private void buildRecord(String channelId, String name, String format, int maxDurationSeconds, int maxSilenceSeconds, String ifExists, boolean beep, String terminateOn) { -reset(); -url = "/channels/" + channelId + "/record"; -method = "POST"; -lParamQuery.add( HttpParam.build( "name", name) ); -lParamQuery.add( HttpParam.build( "format", format) ); -lParamQuery.add( HttpParam.build( "maxDurationSeconds", maxDurationSeconds) ); -lParamQuery.add( HttpParam.build( "maxSilenceSeconds", maxSilenceSeconds) ); -lParamQuery.add( HttpParam.build( "ifExists", ifExists) ); -lParamQuery.add( HttpParam.build( "beep", beep) ); -lParamQuery.add( HttpParam.build( "terminateOn", terminateOn) ); -lE.add( HttpResponse.build( 400, "Invalid parameters") ); -lE.add( HttpResponse.build( 404, "Channel not found") ); -lE.add( HttpResponse.build( 409, "Channel is not in a Stasis application; the channel is currently bridged with other hcannels; A recording with the same name already exists on the system and can not be overwritten because it is in progress or ifExists=fail") ); -lE.add( HttpResponse.build( 422, "The format specified is unknown on this system") ); -} - -@Override -public LiveRecording record(String channelId, String name, String format, int maxDurationSeconds, int maxSilenceSeconds, String ifExists, boolean beep, String terminateOn) throws RestException { -buildRecord(channelId, name, format, maxDurationSeconds, maxSilenceSeconds, ifExists, beep, terminateOn); -String json = httpActionSync(); -return deserializeJson( json, LiveRecording_impl_ari_1_9_0.class ); -} - -@Override -public void record(String channelId, String name, String format, int maxDurationSeconds, int maxSilenceSeconds, String ifExists, boolean beep, String terminateOn, AriCallback callback) { -buildRecord(channelId, name, format, maxDurationSeconds, maxSilenceSeconds, ifExists, beep, terminateOn); -httpActionAsync(callback, LiveRecording_impl_ari_1_9_0.class); -} - -/********************************************************** - * Inform the channel that it should redirect itself to a different location. Note that this will almost certainly cause the channel to exit the application. - * - * Redirect the channel to a different location. - *********************************************************/ -private void buildRedirect(String channelId, String endpoint) { -reset(); -url = "/channels/" + channelId + "/redirect"; -method = "POST"; -lParamQuery.add( HttpParam.build( "endpoint", endpoint) ); -lE.add( HttpResponse.build( 400, "Endpoint parameter not provided") ); -lE.add( HttpResponse.build( 404, "Channel or endpoint not found") ); -lE.add( HttpResponse.build( 409, "Channel not in a Stasis application") ); -lE.add( HttpResponse.build( 422, "Endpoint is not the same type as the channel") ); -} - -@Override -public void redirect(String channelId, String endpoint) throws RestException { -buildRedirect(channelId, endpoint); -String json = httpActionSync(); -} - -@Override -public void redirect(String channelId, String endpoint, AriCallback callback) { -buildRedirect(channelId, endpoint); -httpActionAsync(callback); -} - -/********************************************************** - * Send a ringing indication to a channel - * - * Indicate ringing to a channel. - *********************************************************/ -private void buildRing(String channelId) { -reset(); -url = "/channels/" + channelId + "/ring"; -method = "POST"; -lE.add( HttpResponse.build( 404, "Channel not found") ); -lE.add( HttpResponse.build( 409, "Channel not in a Stasis application") ); -} - -@Override -public void ring(String channelId) throws RestException { -buildRing(channelId); -String json = httpActionSync(); -} - -@Override -public void ring(String channelId, AriCallback callback) { -buildRing(channelId); -httpActionAsync(callback); -} - -/********************************************************** - * Send a ringing indication to a channel - * - * Stop ringing indication on a channel if locally generated. - *********************************************************/ -private void buildRingStop(String channelId) { -reset(); -url = "/channels/" + channelId + "/ring"; -method = "DELETE"; -lE.add( HttpResponse.build( 404, "Channel not found") ); -lE.add( HttpResponse.build( 409, "Channel not in a Stasis application") ); -} - -@Override -public void ringStop(String channelId) throws RestException { -buildRingStop(channelId); -String json = httpActionSync(); -} - -@Override -public void ringStop(String channelId, AriCallback callback) { -buildRingStop(channelId); -httpActionAsync(callback); -} - -/********************************************************** - * Play silence to a channel - * - * Play silence to a channel. - * Using media operations such as /play on a channel playing silence in this manner will suspend silence without resuming automatically. - *********************************************************/ -private void buildStartSilence(String channelId) { -reset(); -url = "/channels/" + channelId + "/silence"; -method = "POST"; -lE.add( HttpResponse.build( 404, "Channel not found") ); -lE.add( HttpResponse.build( 409, "Channel not in a Stasis application") ); -} - -@Override -public void startSilence(String channelId) throws RestException { -buildStartSilence(channelId); -String json = httpActionSync(); -} - -@Override -public void startSilence(String channelId, AriCallback callback) { -buildStartSilence(channelId); -httpActionAsync(callback); -} - -/********************************************************** - * Play silence to a channel - * - * Stop playing silence to a channel. - *********************************************************/ -private void buildStopSilence(String channelId) { -reset(); -url = "/channels/" + channelId + "/silence"; -method = "DELETE"; -lE.add( HttpResponse.build( 404, "Channel not found") ); -lE.add( HttpResponse.build( 409, "Channel not in a Stasis application") ); -} - -@Override -public void stopSilence(String channelId) throws RestException { -buildStopSilence(channelId); -String json = httpActionSync(); -} - -@Override -public void stopSilence(String channelId, AriCallback callback) { -buildStopSilence(channelId); -httpActionAsync(callback); -} - -/********************************************************** - * Snoop (spy/whisper) on a channel - * - * Start snooping. - * Snoop (spy/whisper) on a specific channel. - *********************************************************/ -private void buildSnoopChannel(String channelId, String spy, String whisper, String app, String appArgs, String snoopId) { -reset(); -url = "/channels/" + channelId + "/snoop"; -method = "POST"; -lParamQuery.add( HttpParam.build( "spy", spy) ); -lParamQuery.add( HttpParam.build( "whisper", whisper) ); -lParamQuery.add( HttpParam.build( "app", app) ); -lParamQuery.add( HttpParam.build( "appArgs", appArgs) ); -lParamQuery.add( HttpParam.build( "snoopId", snoopId) ); -lE.add( HttpResponse.build( 400, "Invalid parameters") ); -lE.add( HttpResponse.build( 404, "Channel not found") ); -} - -@Override -public Channel snoopChannel(String channelId, String spy, String whisper, String app, String appArgs, String snoopId) throws RestException { -buildSnoopChannel(channelId, spy, whisper, app, appArgs, snoopId); -String json = httpActionSync(); -return deserializeJson( json, Channel_impl_ari_1_9_0.class ); -} - -@Override -public void snoopChannel(String channelId, String spy, String whisper, String app, String appArgs, String snoopId, AriCallback callback) { -buildSnoopChannel(channelId, spy, whisper, app, appArgs, snoopId); -httpActionAsync(callback, Channel_impl_ari_1_9_0.class); -} - -/********************************************************** - * Snoop (spy/whisper) on a channel - * - * Start snooping. - * Snoop (spy/whisper) on a specific channel. - *********************************************************/ -private void buildSnoopChannelWithId(String channelId, String snoopId, String spy, String whisper, String app, String appArgs) { -reset(); -url = "/channels/" + channelId + "/snoop/" + snoopId + ""; -method = "POST"; -lParamQuery.add( HttpParam.build( "spy", spy) ); -lParamQuery.add( HttpParam.build( "whisper", whisper) ); -lParamQuery.add( HttpParam.build( "app", app) ); -lParamQuery.add( HttpParam.build( "appArgs", appArgs) ); -lE.add( HttpResponse.build( 400, "Invalid parameters") ); -lE.add( HttpResponse.build( 404, "Channel not found") ); -} - -@Override -public Channel snoopChannelWithId(String channelId, String snoopId, String spy, String whisper, String app, String appArgs) throws RestException { -buildSnoopChannelWithId(channelId, snoopId, spy, whisper, app, appArgs); -String json = httpActionSync(); -return deserializeJson( json, Channel_impl_ari_1_9_0.class ); -} - -@Override -public void snoopChannelWithId(String channelId, String snoopId, String spy, String whisper, String app, String appArgs, AriCallback callback) { -buildSnoopChannelWithId(channelId, snoopId, spy, whisper, app, appArgs); -httpActionAsync(callback, Channel_impl_ari_1_9_0.class); -} - -/********************************************************** - * Variables on a channel - * - * Get the value of a channel variable or function. - *********************************************************/ -private void buildGetChannelVar(String channelId, String variable) { -reset(); -url = "/channels/" + channelId + "/variable"; -method = "GET"; -lParamQuery.add( HttpParam.build( "variable", variable) ); -lE.add( HttpResponse.build( 400, "Missing variable parameter.") ); -lE.add( HttpResponse.build( 404, "Channel or variable not found") ); -lE.add( HttpResponse.build( 409, "Channel not in a Stasis application") ); -} - -@Override -public Variable getChannelVar(String channelId, String variable) throws RestException { -buildGetChannelVar(channelId, variable); -String json = httpActionSync(); -return deserializeJson( json, Variable_impl_ari_1_9_0.class ); -} - -@Override -public void getChannelVar(String channelId, String variable, AriCallback callback) { -buildGetChannelVar(channelId, variable); -httpActionAsync(callback, Variable_impl_ari_1_9_0.class); -} - -/********************************************************** - * Variables on a channel - * - * Set the value of a channel variable or function. - *********************************************************/ -private void buildSetChannelVar(String channelId, String variable, String value) { -reset(); -url = "/channels/" + channelId + "/variable"; -method = "POST"; -lParamQuery.add( HttpParam.build( "variable", variable) ); -lParamQuery.add( HttpParam.build( "value", value) ); -lE.add( HttpResponse.build( 400, "Missing variable parameter.") ); -lE.add( HttpResponse.build( 404, "Channel not found") ); -lE.add( HttpResponse.build( 409, "Channel not in a Stasis application") ); -} - -@Override -public void setChannelVar(String channelId, String variable, String value) throws RestException { -buildSetChannelVar(channelId, variable, value); -String json = httpActionSync(); -} - -@Override -public void setChannelVar(String channelId, String variable, String value, AriCallback callback) { -buildSetChannelVar(channelId, variable, value); -httpActionAsync(callback); -} - -/********************************************************** - * Create a new channel (originate with id). - * The new channel is created immediately and a snapshot of it returned. If a Stasis application is provided it will be automatically subscribed to the originated channel for further events and updates. - * - * @since ari_1_5_0 - *********************************************************/ -public Channel originateWithId(String channelId, String endpoint, String extension, String context, long priority, String app, String appArgs, String callerId, int timeout, Map variables, String otherChannelId) throws RestException{ - throw new UnsupportedOperationException("Method availble from ..."); -}; - -/********************************************************** - * Start snooping. - * Snoop (spy/whisper) on a specific channel. - * - * @since ari_0_0_1 - *********************************************************/ -public Channel snoopChannel(String channelId, String spy, String whisper, String app, String appArgs) throws RestException{ - throw new UnsupportedOperationException("Method availble from ..."); -}; - -/********************************************************** - * - * - * @since ari_1_10_0 - *********************************************************/ -public void dial(String channelId, String caller, int timeout, AriCallback callback){ - throw new UnsupportedOperationException("Method availble from ..."); -}; - -/********************************************************** - * - * - * @since ari_1_5_0 - *********************************************************/ -public void originate(String endpoint, String extension, String context, long priority, String app, String appArgs, String callerId, int timeout, Map variables, String channelId, String otherChannelId, AriCallback callback){ - throw new UnsupportedOperationException("Method availble from ..."); -}; - -/********************************************************** - * - * - * @since ari_0_0_1 - *********************************************************/ -public void continueInDialplan(String channelId, String context, String extension, int priority, AriCallback callback){ - throw new UnsupportedOperationException("Method availble from ..."); -}; - -/********************************************************** - * - * - * @since ari_1_10_0 - *********************************************************/ -public void originateWithId(String channelId, String endpoint, String extension, String context, long priority, String label, String app, String appArgs, String callerId, int timeout, Map variables, String otherChannelId, String originator, String formats, AriCallback callback){ - throw new UnsupportedOperationException("Method availble from ..."); -}; - -/********************************************************** - * Start playback of media. - * The media URI may be any of a number of URI's. Currently sound: and recording: URI's are supported. This operation creates a playback resource that can be used to control the playback of media (pause, rewind, fast forward, etc.) - * - * @since ari_0_0_1 - *********************************************************/ -public Playback play(String channelId, String media, String lang, int offsetms, int skipms) throws RestException{ - throw new UnsupportedOperationException("Method availble from ..."); -}; - -/********************************************************** - * - * - * @since ari_0_0_1 - *********************************************************/ -public void play(String channelId, String media, String lang, int offsetms, int skipms, AriCallback callback){ - throw new UnsupportedOperationException("Method availble from ..."); -}; - -/********************************************************** - * - * - * @since ari_0_0_1 - *********************************************************/ -public void snoopChannel(String channelId, String spy, String whisper, String app, String appArgs, AriCallback callback){ - throw new UnsupportedOperationException("Method availble from ..."); -}; - -/********************************************************** - * - * - * @since ari_1_5_0 - *********************************************************/ -public void originateWithId(String channelId, String endpoint, String extension, String context, long priority, String app, String appArgs, String callerId, int timeout, Map variables, String otherChannelId, AriCallback callback){ - throw new UnsupportedOperationException("Method availble from ..."); -}; - -/********************************************************** - * Create a new channel (originate). - * The new channel is created immediately and a snapshot of it returned. If a Stasis application is provided it will be automatically subscribed to the originated channel for further events and updates. - * - * @since ari_1_10_0 - *********************************************************/ -public Channel originate(String endpoint, String extension, String context, long priority, String label, String app, String appArgs, String callerId, int timeout, Map variables, String channelId, String otherChannelId, String originator, String formats) throws RestException{ - throw new UnsupportedOperationException("Method availble from ..."); -}; - -/********************************************************** - * Create a new channel (originate with id). - * The new channel is created immediately and a snapshot of it returned. If a Stasis application is provided it will be automatically subscribed to the originated channel for further events and updates. - * - * @since ari_1_10_0 - *********************************************************/ -public Channel originateWithId(String channelId, String endpoint, String extension, String context, long priority, String label, String app, String appArgs, String callerId, int timeout, Map variables, String otherChannelId, String originator, String formats) throws RestException{ - throw new UnsupportedOperationException("Method availble from ..."); -}; - -/********************************************************** - * Create a new channel (originate). - * The new channel is created immediately and a snapshot of it returned. If a Stasis application is provided it will be automatically subscribed to the originated channel for further events and updates. - * - * @since ari_0_0_1 - *********************************************************/ -public Channel originate(String endpoint, String extension, String context, long priority, String app, String appArgs, String callerId, int timeout) throws RestException{ - throw new UnsupportedOperationException("Method availble from ..."); -}; - -/********************************************************** - * Dial a created channel. - * - * - * @since ari_1_10_0 - *********************************************************/ -public void dial(String channelId, String caller, int timeout) throws RestException{ - throw new UnsupportedOperationException("Method availble from ..."); -}; - -/********************************************************** - * - * - * @since ari_1_10_0 - *********************************************************/ -public void create(String endpoint, String app, String appArgs, String channelId, String otherChannelId, String originator, String formats, AriCallback callback){ - throw new UnsupportedOperationException("Method availble from ..."); -}; - -/********************************************************** - * Create channel. - * - * - * @since ari_1_10_0 - *********************************************************/ -public Channel create(String endpoint, String app, String appArgs, String channelId, String otherChannelId, String originator, String formats) throws RestException{ - throw new UnsupportedOperationException("Method availble from ..."); -}; - -/********************************************************** - * Exit application{ - throw new UnsupportedOperationException("Method availble from ..."); -}; continue execution in the dialplan. - * - * - * @since ari_0_0_1 - *********************************************************/ -public void continueInDialplan(String channelId, String context, String extension, int priority) throws RestException{ - throw new UnsupportedOperationException("Method availble from ..."); -}; - -/********************************************************** - * - * - * @since ari_1_10_0 - *********************************************************/ -public void originate(String endpoint, String extension, String context, long priority, String label, String app, String appArgs, String callerId, int timeout, Map variables, String channelId, String otherChannelId, String originator, String formats, AriCallback callback){ - throw new UnsupportedOperationException("Method availble from ..."); -}; - -/********************************************************** - * Create a new channel (originate). - * The new channel is created immediately and a snapshot of it returned. If a Stasis application is provided it will be automatically subscribed to the originated channel for further events and updates. - * - * @since ari_1_5_0 - *********************************************************/ -public Channel originate(String endpoint, String extension, String context, long priority, String app, String appArgs, String callerId, int timeout, Map variables, String channelId, String otherChannelId) throws RestException{ - throw new UnsupportedOperationException("Method availble from ..."); -}; - -/********************************************************** - * - * - * @since ari_0_0_1 - *********************************************************/ -public void originate(String endpoint, String extension, String context, long priority, String app, String appArgs, String callerId, int timeout, AriCallback callback){ - throw new UnsupportedOperationException("Method availble from ..."); -}; - -}; - diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/actions/ActionDeviceStates_impl_ari_1_9_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/actions/ActionDeviceStates_impl_ari_1_9_0.java deleted file mode 100644 index b1d1b501..00000000 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/actions/ActionDeviceStates_impl_ari_1_9_0.java +++ /dev/null @@ -1,131 +0,0 @@ -package ch.loway.oss.ari4java.generated.ari_1_9_0.actions; - -// ---------------------------------------------------- -// THIS CLASS WAS GENERATED AUTOMATICALLY -// PLEASE DO NOT EDIT -// Generated on: Tue Dec 19 09:55:49 CET 2017 -// ---------------------------------------------------- - -import ch.loway.oss.ari4java.generated.*; -import java.util.Date; -import java.util.List; -import java.util.Map; -import java.util.ArrayList; -import ch.loway.oss.ari4java.tools.BaseAriAction; -import ch.loway.oss.ari4java.tools.RestException; -import ch.loway.oss.ari4java.tools.AriCallback; -import ch.loway.oss.ari4java.tools.HttpParam; -import ch.loway.oss.ari4java.tools.HttpResponse; -import com.fasterxml.jackson.core.type.TypeReference; -import ch.loway.oss.ari4java.generated.ari_1_9_0.models.*; - -/********************************************************** - * - * Generated by: Apis - *********************************************************/ - - -public class ActionDeviceStates_impl_ari_1_9_0 extends BaseAriAction implements ActionDeviceStates { -/********************************************************** - * Device states - * - * List all ARI controlled device states. - *********************************************************/ -private void buildList() { -reset(); -url = "/deviceStates"; -method = "GET"; -} - -@Override -public List list() throws RestException { -buildList(); -String json = httpActionSync(); -return deserializeJsonAsAbstractList( json, - new TypeReference>() {} ); -} - -@Override -public void list(AriCallback> callback) { -buildList(); -httpActionAsync(callback, new TypeReference>() {}); -} - -/********************************************************** - * Device state - * - * Retrieve the current state of a device. - *********************************************************/ -private void buildGet(String deviceName) { -reset(); -url = "/deviceStates/" + deviceName + ""; -method = "GET"; -} - -@Override -public DeviceState get(String deviceName) throws RestException { -buildGet(deviceName); -String json = httpActionSync(); -return deserializeJson( json, DeviceState_impl_ari_1_9_0.class ); -} - -@Override -public void get(String deviceName, AriCallback callback) { -buildGet(deviceName); -httpActionAsync(callback, DeviceState_impl_ari_1_9_0.class); -} - -/********************************************************** - * Device state - * - * Change the state of a device controlled by ARI. (Note - implicitly creates the device state). - *********************************************************/ -private void buildUpdate(String deviceName, String deviceState) { -reset(); -url = "/deviceStates/" + deviceName + ""; -method = "PUT"; -lParamQuery.add( HttpParam.build( "deviceState", deviceState) ); -lE.add( HttpResponse.build( 404, "Device name is missing") ); -lE.add( HttpResponse.build( 409, "Uncontrolled device specified") ); -} - -@Override -public void update(String deviceName, String deviceState) throws RestException { -buildUpdate(deviceName, deviceState); -String json = httpActionSync(); -} - -@Override -public void update(String deviceName, String deviceState, AriCallback callback) { -buildUpdate(deviceName, deviceState); -httpActionAsync(callback); -} - -/********************************************************** - * Device state - * - * Destroy a device-state controlled by ARI. - *********************************************************/ -private void buildDelete(String deviceName) { -reset(); -url = "/deviceStates/" + deviceName + ""; -method = "DELETE"; -lE.add( HttpResponse.build( 404, "Device name is missing") ); -lE.add( HttpResponse.build( 409, "Uncontrolled device specified") ); -} - -@Override -public void delete(String deviceName) throws RestException { -buildDelete(deviceName); -String json = httpActionSync(); -} - -@Override -public void delete(String deviceName, AriCallback callback) { -buildDelete(deviceName); -httpActionAsync(callback); -} - -/** No missing signatures from interface */ -}; - diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/actions/ActionEndpoints_impl_ari_1_9_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/actions/ActionEndpoints_impl_ari_1_9_0.java deleted file mode 100644 index 5d5eec2f..00000000 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/actions/ActionEndpoints_impl_ari_1_9_0.java +++ /dev/null @@ -1,165 +0,0 @@ -package ch.loway.oss.ari4java.generated.ari_1_9_0.actions; - -// ---------------------------------------------------- -// THIS CLASS WAS GENERATED AUTOMATICALLY -// PLEASE DO NOT EDIT -// Generated on: Tue Dec 19 09:55:49 CET 2017 -// ---------------------------------------------------- - -import ch.loway.oss.ari4java.generated.*; -import java.util.Date; -import java.util.List; -import java.util.Map; -import java.util.ArrayList; -import ch.loway.oss.ari4java.tools.BaseAriAction; -import ch.loway.oss.ari4java.tools.RestException; -import ch.loway.oss.ari4java.tools.AriCallback; -import ch.loway.oss.ari4java.tools.HttpParam; -import ch.loway.oss.ari4java.tools.HttpResponse; -import com.fasterxml.jackson.core.type.TypeReference; -import ch.loway.oss.ari4java.generated.ari_1_9_0.models.*; - -/********************************************************** - * - * Generated by: Apis - *********************************************************/ - - -public class ActionEndpoints_impl_ari_1_9_0 extends BaseAriAction implements ActionEndpoints { -/********************************************************** - * Asterisk endpoints - * - * List all endpoints. - *********************************************************/ -private void buildList() { -reset(); -url = "/endpoints"; -method = "GET"; -} - -@Override -public List list() throws RestException { -buildList(); -String json = httpActionSync(); -return deserializeJsonAsAbstractList( json, - new TypeReference>() {} ); -} - -@Override -public void list(AriCallback> callback) { -buildList(); -httpActionAsync(callback, new TypeReference>() {}); -} - -/********************************************************** - * Send a message to some technology URI or endpoint. - * - * Send a message to some technology URI or endpoint. - *********************************************************/ -private void buildSendMessage(String to, String from, String body, Map variables) { -reset(); -url = "/endpoints/sendMessage"; -method = "PUT"; -lParamQuery.add( HttpParam.build( "to", to) ); -lParamQuery.add( HttpParam.build( "from", from) ); -lParamQuery.add( HttpParam.build( "body", body) ); -lParamBody.addAll( HttpParam.build( "variables", variables) ); -lE.add( HttpResponse.build( 400, "Invalid parameters for sending a message.") ); -lE.add( HttpResponse.build( 404, "Endpoint not found") ); -} - -@Override -public void sendMessage(String to, String from, String body, Map variables) throws RestException { -buildSendMessage(to, from, body, variables); -String json = httpActionSync(); -} - -@Override -public void sendMessage(String to, String from, String body, Map variables, AriCallback callback) { -buildSendMessage(to, from, body, variables); -httpActionAsync(callback); -} - -/********************************************************** - * Asterisk endpoints - * - * List available endoints for a given endpoint technology. - *********************************************************/ -private void buildListByTech(String tech) { -reset(); -url = "/endpoints/" + tech + ""; -method = "GET"; -lE.add( HttpResponse.build( 404, "Endpoints not found") ); -} - -@Override -public List listByTech(String tech) throws RestException { -buildListByTech(tech); -String json = httpActionSync(); -return deserializeJsonAsAbstractList( json, - new TypeReference>() {} ); -} - -@Override -public void listByTech(String tech, AriCallback> callback) { -buildListByTech(tech); -httpActionAsync(callback, new TypeReference>() {}); -} - -/********************************************************** - * Single endpoint - * - * Details for an endpoint. - *********************************************************/ -private void buildGet(String tech, String resource) { -reset(); -url = "/endpoints/" + tech + "/" + resource + ""; -method = "GET"; -lE.add( HttpResponse.build( 400, "Invalid parameters for sending a message.") ); -lE.add( HttpResponse.build( 404, "Endpoints not found") ); -} - -@Override -public Endpoint get(String tech, String resource) throws RestException { -buildGet(tech, resource); -String json = httpActionSync(); -return deserializeJson( json, Endpoint_impl_ari_1_9_0.class ); -} - -@Override -public void get(String tech, String resource, AriCallback callback) { -buildGet(tech, resource); -httpActionAsync(callback, Endpoint_impl_ari_1_9_0.class); -} - -/********************************************************** - * Send a message to some endpoint in a technology. - * - * Send a message to some endpoint in a technology. - *********************************************************/ -private void buildSendMessageToEndpoint(String tech, String resource, String from, String body, Map variables) { -reset(); -url = "/endpoints/" + tech + "/" + resource + "/sendMessage"; -method = "PUT"; -lParamQuery.add( HttpParam.build( "from", from) ); -lParamQuery.add( HttpParam.build( "body", body) ); -lParamBody.addAll( HttpParam.build( "variables", variables) ); -lE.add( HttpResponse.build( 400, "Invalid parameters for sending a message.") ); -lE.add( HttpResponse.build( 404, "Endpoint not found") ); -} - -@Override -public void sendMessageToEndpoint(String tech, String resource, String from, String body, Map variables) throws RestException { -buildSendMessageToEndpoint(tech, resource, from, body, variables); -String json = httpActionSync(); -} - -@Override -public void sendMessageToEndpoint(String tech, String resource, String from, String body, Map variables, AriCallback callback) { -buildSendMessageToEndpoint(tech, resource, from, body, variables); -httpActionAsync(callback); -} - -/** No missing signatures from interface */ -}; - diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/actions/ActionEvents_impl_ari_1_9_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/actions/ActionEvents_impl_ari_1_9_0.java deleted file mode 100644 index 460ce64b..00000000 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/actions/ActionEvents_impl_ari_1_9_0.java +++ /dev/null @@ -1,103 +0,0 @@ -package ch.loway.oss.ari4java.generated.ari_1_9_0.actions; - -// ---------------------------------------------------- -// THIS CLASS WAS GENERATED AUTOMATICALLY -// PLEASE DO NOT EDIT -// Generated on: Tue Dec 19 09:55:49 CET 2017 -// ---------------------------------------------------- - -import ch.loway.oss.ari4java.generated.*; -import java.util.Date; -import java.util.List; -import java.util.Map; -import java.util.ArrayList; -import ch.loway.oss.ari4java.tools.BaseAriAction; -import ch.loway.oss.ari4java.tools.RestException; -import ch.loway.oss.ari4java.tools.AriCallback; -import ch.loway.oss.ari4java.tools.HttpParam; -import ch.loway.oss.ari4java.tools.HttpResponse; -import com.fasterxml.jackson.core.type.TypeReference; -import ch.loway.oss.ari4java.generated.ari_1_9_0.models.*; - -/********************************************************** - * - * Generated by: Apis - *********************************************************/ - - -public class ActionEvents_impl_ari_1_9_0 extends BaseAriAction implements ActionEvents { -/********************************************************** - * Events from Asterisk to applications - * - * WebSocket connection for events. - *********************************************************/ -private void buildEventWebsocket(String app, boolean subscribeAll) { -reset(); -url = "/events"; -method = "GET"; -lParamQuery.add( HttpParam.build( "app", app) ); -lParamQuery.add( HttpParam.build( "subscribeAll", subscribeAll) ); -wsUpgrade = true; -} - -@Override -public Message eventWebsocket(String app, boolean subscribeAll) throws RestException { -throw new RestException("No synchronous operation on WebSocket"); -} - -@Override -public void eventWebsocket(String app, boolean subscribeAll, AriCallback callback) { -buildEventWebsocket(app, subscribeAll); -httpActionAsync(callback, Message_impl_ari_1_9_0.class); -} - -/********************************************************** - * Stasis application user events - * - * Generate a user event. - *********************************************************/ -private void buildUserEvent(String eventName, String application, String source, Map variables) { -reset(); -url = "/events/user/" + eventName + ""; -method = "POST"; -lParamQuery.add( HttpParam.build( "application", application) ); -lParamQuery.add( HttpParam.build( "source", source) ); -lParamBody.addAll( HttpParam.build( "variables", variables) ); -lE.add( HttpResponse.build( 404, "Application does not exist.") ); -lE.add( HttpResponse.build( 422, "Event source not found.") ); -lE.add( HttpResponse.build( 400, "Invalid even tsource URI or userevent data.") ); -} - -@Override -public void userEvent(String eventName, String application, String source, Map variables) throws RestException { -buildUserEvent(eventName, application, source, variables); -String json = httpActionSync(); -} - -@Override -public void userEvent(String eventName, String application, String source, Map variables, AriCallback callback) { -buildUserEvent(eventName, application, source, variables); -httpActionAsync(callback); -} - -/********************************************************** - * WebSocket connection for events. - * - * - * @since ari_0_0_1 - *********************************************************/ -public Message eventWebsocket(String app) throws RestException{ - throw new UnsupportedOperationException("Method availble from ..."); -}; - -/********************************************************** - * - * - * @since ari_0_0_1 - *********************************************************/ -public void eventWebsocket(String app, AriCallback callback){ - throw new UnsupportedOperationException("Method availble from ..."); -}; - -}; - diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/actions/ActionPlaybacks_impl_ari_1_9_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/actions/ActionPlaybacks_impl_ari_1_9_0.java deleted file mode 100644 index 12e0b6d9..00000000 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/actions/ActionPlaybacks_impl_ari_1_9_0.java +++ /dev/null @@ -1,107 +0,0 @@ -package ch.loway.oss.ari4java.generated.ari_1_9_0.actions; - -// ---------------------------------------------------- -// THIS CLASS WAS GENERATED AUTOMATICALLY -// PLEASE DO NOT EDIT -// Generated on: Tue Dec 19 09:55:49 CET 2017 -// ---------------------------------------------------- - -import ch.loway.oss.ari4java.generated.*; -import java.util.Date; -import java.util.List; -import java.util.Map; -import java.util.ArrayList; -import ch.loway.oss.ari4java.tools.BaseAriAction; -import ch.loway.oss.ari4java.tools.RestException; -import ch.loway.oss.ari4java.tools.AriCallback; -import ch.loway.oss.ari4java.tools.HttpParam; -import ch.loway.oss.ari4java.tools.HttpResponse; -import com.fasterxml.jackson.core.type.TypeReference; -import ch.loway.oss.ari4java.generated.ari_1_9_0.models.*; - -/********************************************************** - * - * Generated by: Apis - *********************************************************/ - - -public class ActionPlaybacks_impl_ari_1_9_0 extends BaseAriAction implements ActionPlaybacks { -/********************************************************** - * Control object for a playback operation. - * - * Get a playback's details. - *********************************************************/ -private void buildGet(String playbackId) { -reset(); -url = "/playbacks/" + playbackId + ""; -method = "GET"; -lE.add( HttpResponse.build( 404, "The playback cannot be found") ); -} - -@Override -public Playback get(String playbackId) throws RestException { -buildGet(playbackId); -String json = httpActionSync(); -return deserializeJson( json, Playback_impl_ari_1_9_0.class ); -} - -@Override -public void get(String playbackId, AriCallback callback) { -buildGet(playbackId); -httpActionAsync(callback, Playback_impl_ari_1_9_0.class); -} - -/********************************************************** - * Control object for a playback operation. - * - * Stop a playback. - *********************************************************/ -private void buildStop(String playbackId) { -reset(); -url = "/playbacks/" + playbackId + ""; -method = "DELETE"; -lE.add( HttpResponse.build( 404, "The playback cannot be found") ); -} - -@Override -public void stop(String playbackId) throws RestException { -buildStop(playbackId); -String json = httpActionSync(); -} - -@Override -public void stop(String playbackId, AriCallback callback) { -buildStop(playbackId); -httpActionAsync(callback); -} - -/********************************************************** - * Control object for a playback operation. - * - * Control a playback. - *********************************************************/ -private void buildControl(String playbackId, String operation) { -reset(); -url = "/playbacks/" + playbackId + "/control"; -method = "POST"; -lParamQuery.add( HttpParam.build( "operation", operation) ); -lE.add( HttpResponse.build( 400, "The provided operation parameter was invalid") ); -lE.add( HttpResponse.build( 404, "The playback cannot be found") ); -lE.add( HttpResponse.build( 409, "The operation cannot be performed in the playback's current state") ); -} - -@Override -public void control(String playbackId, String operation) throws RestException { -buildControl(playbackId, operation); -String json = httpActionSync(); -} - -@Override -public void control(String playbackId, String operation, AriCallback callback) { -buildControl(playbackId, operation); -httpActionAsync(callback); -} - -/** No missing signatures from interface */ -}; - diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/actions/ActionRecordings_impl_ari_1_9_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/actions/ActionRecordings_impl_ari_1_9_0.java deleted file mode 100644 index 2492c13f..00000000 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/actions/ActionRecordings_impl_ari_1_9_0.java +++ /dev/null @@ -1,325 +0,0 @@ -package ch.loway.oss.ari4java.generated.ari_1_9_0.actions; - -// ---------------------------------------------------- -// THIS CLASS WAS GENERATED AUTOMATICALLY -// PLEASE DO NOT EDIT -// Generated on: Tue Dec 19 09:55:49 CET 2017 -// ---------------------------------------------------- - -import ch.loway.oss.ari4java.generated.*; -import java.util.Date; -import java.util.List; -import java.util.Map; -import java.util.ArrayList; -import ch.loway.oss.ari4java.tools.BaseAriAction; -import ch.loway.oss.ari4java.tools.RestException; -import ch.loway.oss.ari4java.tools.AriCallback; -import ch.loway.oss.ari4java.tools.HttpParam; -import ch.loway.oss.ari4java.tools.HttpResponse; -import com.fasterxml.jackson.core.type.TypeReference; -import ch.loway.oss.ari4java.generated.ari_1_9_0.models.*; - -/********************************************************** - * - * Generated by: Apis - *********************************************************/ - - -public class ActionRecordings_impl_ari_1_9_0 extends BaseAriAction implements ActionRecordings { -/********************************************************** - * A recording that is in progress - * - * List live recordings. - *********************************************************/ -private void buildGetLive(String recordingName) { -reset(); -url = "/recordings/live/" + recordingName + ""; -method = "GET"; -lE.add( HttpResponse.build( 404, "Recording not found") ); -} - -@Override -public LiveRecording getLive(String recordingName) throws RestException { -buildGetLive(recordingName); -String json = httpActionSync(); -return deserializeJson( json, LiveRecording_impl_ari_1_9_0.class ); -} - -@Override -public void getLive(String recordingName, AriCallback callback) { -buildGetLive(recordingName); -httpActionAsync(callback, LiveRecording_impl_ari_1_9_0.class); -} - -/********************************************************** - * A recording that is in progress - * - * Stop a live recording and discard it. - *********************************************************/ -private void buildCancel(String recordingName) { -reset(); -url = "/recordings/live/" + recordingName + ""; -method = "DELETE"; -lE.add( HttpResponse.build( 404, "Recording not found") ); -} - -@Override -public void cancel(String recordingName) throws RestException { -buildCancel(recordingName); -String json = httpActionSync(); -} - -@Override -public void cancel(String recordingName, AriCallback callback) { -buildCancel(recordingName); -httpActionAsync(callback); -} - -/********************************************************** - * - * - * Mute a live recording. - * Muting a recording suspends silence detection, which will be restarted when the recording is unmuted. - *********************************************************/ -private void buildMute(String recordingName) { -reset(); -url = "/recordings/live/" + recordingName + "/mute"; -method = "POST"; -lE.add( HttpResponse.build( 404, "Recording not found") ); -lE.add( HttpResponse.build( 409, "Recording not in session") ); -} - -@Override -public void mute(String recordingName) throws RestException { -buildMute(recordingName); -String json = httpActionSync(); -} - -@Override -public void mute(String recordingName, AriCallback callback) { -buildMute(recordingName); -httpActionAsync(callback); -} - -/********************************************************** - * - * - * Unmute a live recording. - *********************************************************/ -private void buildUnmute(String recordingName) { -reset(); -url = "/recordings/live/" + recordingName + "/mute"; -method = "DELETE"; -lE.add( HttpResponse.build( 404, "Recording not found") ); -lE.add( HttpResponse.build( 409, "Recording not in session") ); -} - -@Override -public void unmute(String recordingName) throws RestException { -buildUnmute(recordingName); -String json = httpActionSync(); -} - -@Override -public void unmute(String recordingName, AriCallback callback) { -buildUnmute(recordingName); -httpActionAsync(callback); -} - -/********************************************************** - * - * - * Pause a live recording. - * Pausing a recording suspends silence detection, which will be restarted when the recording is unpaused. Paused time is not included in the accounting for maxDurationSeconds. - *********************************************************/ -private void buildPause(String recordingName) { -reset(); -url = "/recordings/live/" + recordingName + "/pause"; -method = "POST"; -lE.add( HttpResponse.build( 404, "Recording not found") ); -lE.add( HttpResponse.build( 409, "Recording not in session") ); -} - -@Override -public void pause(String recordingName) throws RestException { -buildPause(recordingName); -String json = httpActionSync(); -} - -@Override -public void pause(String recordingName, AriCallback callback) { -buildPause(recordingName); -httpActionAsync(callback); -} - -/********************************************************** - * - * - * Unpause a live recording. - *********************************************************/ -private void buildUnpause(String recordingName) { -reset(); -url = "/recordings/live/" + recordingName + "/pause"; -method = "DELETE"; -lE.add( HttpResponse.build( 404, "Recording not found") ); -lE.add( HttpResponse.build( 409, "Recording not in session") ); -} - -@Override -public void unpause(String recordingName) throws RestException { -buildUnpause(recordingName); -String json = httpActionSync(); -} - -@Override -public void unpause(String recordingName, AriCallback callback) { -buildUnpause(recordingName); -httpActionAsync(callback); -} - -/********************************************************** - * - * - * Stop a live recording and store it. - *********************************************************/ -private void buildStop(String recordingName) { -reset(); -url = "/recordings/live/" + recordingName + "/stop"; -method = "POST"; -lE.add( HttpResponse.build( 404, "Recording not found") ); -} - -@Override -public void stop(String recordingName) throws RestException { -buildStop(recordingName); -String json = httpActionSync(); -} - -@Override -public void stop(String recordingName, AriCallback callback) { -buildStop(recordingName); -httpActionAsync(callback); -} - -/********************************************************** - * Recordings - * - * List recordings that are complete. - *********************************************************/ -private void buildListStored() { -reset(); -url = "/recordings/stored"; -method = "GET"; -} - -@Override -public List listStored() throws RestException { -buildListStored(); -String json = httpActionSync(); -return deserializeJsonAsAbstractList( json, - new TypeReference>() {} ); -} - -@Override -public void listStored(AriCallback> callback) { -buildListStored(); -httpActionAsync(callback, new TypeReference>() {}); -} - -/********************************************************** - * Individual recording - * - * Get a stored recording's details. - *********************************************************/ -private void buildGetStored(String recordingName) { -reset(); -url = "/recordings/stored/" + recordingName + ""; -method = "GET"; -lE.add( HttpResponse.build( 404, "Recording not found") ); -} - -@Override -public StoredRecording getStored(String recordingName) throws RestException { -buildGetStored(recordingName); -String json = httpActionSync(); -return deserializeJson( json, StoredRecording_impl_ari_1_9_0.class ); -} - -@Override -public void getStored(String recordingName, AriCallback callback) { -buildGetStored(recordingName); -httpActionAsync(callback, StoredRecording_impl_ari_1_9_0.class); -} - -/********************************************************** - * Individual recording - * - * Delete a stored recording. - *********************************************************/ -private void buildDeleteStored(String recordingName) { -reset(); -url = "/recordings/stored/" + recordingName + ""; -method = "DELETE"; -lE.add( HttpResponse.build( 404, "Recording not found") ); -} - -@Override -public void deleteStored(String recordingName) throws RestException { -buildDeleteStored(recordingName); -String json = httpActionSync(); -} - -@Override -public void deleteStored(String recordingName, AriCallback callback) { -buildDeleteStored(recordingName); -httpActionAsync(callback); -} - -/********************************************************** - * Copy an individual recording - * - * Copy a stored recording. - *********************************************************/ -private void buildCopyStored(String recordingName, String destinationRecordingName) { -reset(); -url = "/recordings/stored/" + recordingName + "/copy"; -method = "POST"; -lParamQuery.add( HttpParam.build( "destinationRecordingName", destinationRecordingName) ); -lE.add( HttpResponse.build( 404, "Recording not found") ); -lE.add( HttpResponse.build( 409, "A recording with the same name already exists on the system") ); -} - -@Override -public StoredRecording copyStored(String recordingName, String destinationRecordingName) throws RestException { -buildCopyStored(recordingName, destinationRecordingName); -String json = httpActionSync(); -return deserializeJson( json, StoredRecording_impl_ari_1_9_0.class ); -} - -@Override -public void copyStored(String recordingName, String destinationRecordingName, AriCallback callback) { -buildCopyStored(recordingName, destinationRecordingName); -httpActionAsync(callback, StoredRecording_impl_ari_1_9_0.class); -} - -/********************************************************** - * - * - * @since ari_1_10_0 - *********************************************************/ -public void getStoredFile(String recordingName, AriCallback callback){ - throw new UnsupportedOperationException("Method availble from ..."); -}; - -/********************************************************** - * Get the file associated with the stored recording. - * - * - * @since ari_1_10_0 - *********************************************************/ -public byte[] getStoredFile(String recordingName) throws RestException{ - throw new UnsupportedOperationException("Method availble from ..."); -}; - -}; - diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/actions/ActionSounds_impl_ari_1_9_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/actions/ActionSounds_impl_ari_1_9_0.java deleted file mode 100644 index c66d9fe2..00000000 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/actions/ActionSounds_impl_ari_1_9_0.java +++ /dev/null @@ -1,82 +0,0 @@ -package ch.loway.oss.ari4java.generated.ari_1_9_0.actions; - -// ---------------------------------------------------- -// THIS CLASS WAS GENERATED AUTOMATICALLY -// PLEASE DO NOT EDIT -// Generated on: Tue Dec 19 09:55:49 CET 2017 -// ---------------------------------------------------- - -import ch.loway.oss.ari4java.generated.*; -import java.util.Date; -import java.util.List; -import java.util.Map; -import java.util.ArrayList; -import ch.loway.oss.ari4java.tools.BaseAriAction; -import ch.loway.oss.ari4java.tools.RestException; -import ch.loway.oss.ari4java.tools.AriCallback; -import ch.loway.oss.ari4java.tools.HttpParam; -import ch.loway.oss.ari4java.tools.HttpResponse; -import com.fasterxml.jackson.core.type.TypeReference; -import ch.loway.oss.ari4java.generated.ari_1_9_0.models.*; - -/********************************************************** - * - * Generated by: Apis - *********************************************************/ - - -public class ActionSounds_impl_ari_1_9_0 extends BaseAriAction implements ActionSounds { -/********************************************************** - * Sounds - * - * List all sounds. - *********************************************************/ -private void buildList(String lang, String format) { -reset(); -url = "/sounds"; -method = "GET"; -lParamQuery.add( HttpParam.build( "lang", lang) ); -lParamQuery.add( HttpParam.build( "format", format) ); -} - -@Override -public List list(String lang, String format) throws RestException { -buildList(lang, format); -String json = httpActionSync(); -return deserializeJsonAsAbstractList( json, - new TypeReference>() {} ); -} - -@Override -public void list(String lang, String format, AriCallback> callback) { -buildList(lang, format); -httpActionAsync(callback, new TypeReference>() {}); -} - -/********************************************************** - * Individual sound - * - * Get a sound's details. - *********************************************************/ -private void buildGet(String soundId) { -reset(); -url = "/sounds/" + soundId + ""; -method = "GET"; -} - -@Override -public Sound get(String soundId) throws RestException { -buildGet(soundId); -String json = httpActionSync(); -return deserializeJson( json, Sound_impl_ari_1_9_0.class ); -} - -@Override -public void get(String soundId, AriCallback callback) { -buildGet(soundId); -httpActionAsync(callback, Sound_impl_ari_1_9_0.class); -} - -/** No missing signatures from interface */ -}; - diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/models/ApplicationReplaced_impl_ari_1_9_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/models/ApplicationReplaced_impl_ari_1_9_0.java deleted file mode 100644 index 3934b197..00000000 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/models/ApplicationReplaced_impl_ari_1_9_0.java +++ /dev/null @@ -1,28 +0,0 @@ -package ch.loway.oss.ari4java.generated.ari_1_9_0.models; - -// ---------------------------------------------------- -// THIS CLASS WAS GENERATED AUTOMATICALLY -// PLEASE DO NOT EDIT -// Generated on: Tue Dec 19 09:55:49 CET 2017 -// ---------------------------------------------------- - -import ch.loway.oss.ari4java.generated.*; -import com.fasterxml.jackson.databind.annotation.JsonDeserialize; -import java.util.Date; -import java.util.List; -import java.util.Map; - -/********************************************************** - * Notification that another WebSocket has taken over for an application. - * - * An application may only be subscribed to by a single WebSocket at a time. If multiple WebSockets attempt to subscribe to the same application, the newer WebSocket wins, and the older one receives this event. - * - * Defined in file: events.json - * Generated by: Model - *********************************************************/ - -public class ApplicationReplaced_impl_ari_1_9_0 extends Event_impl_ari_1_9_0 implements ApplicationReplaced, java.io.Serializable { -private static final long serialVersionUID = 1L; -/** No missing signatures from interface */ -} - diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/models/Application_impl_ari_1_9_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/models/Application_impl_ari_1_9_0.java deleted file mode 100644 index 780940f8..00000000 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/models/Application_impl_ari_1_9_0.java +++ /dev/null @@ -1,81 +0,0 @@ -package ch.loway.oss.ari4java.generated.ari_1_9_0.models; - -// ---------------------------------------------------- -// THIS CLASS WAS GENERATED AUTOMATICALLY -// PLEASE DO NOT EDIT -// Generated on: Tue Dec 19 09:55:49 CET 2017 -// ---------------------------------------------------- - -import ch.loway.oss.ari4java.generated.*; -import com.fasterxml.jackson.databind.annotation.JsonDeserialize; -import java.util.Date; -import java.util.List; -import java.util.Map; - -/********************************************************** - * Details of a Stasis application - * - * Defined in file: applications.json - * Generated by: Model - *********************************************************/ - -public class Application_impl_ari_1_9_0 implements Application, java.io.Serializable { -private static final long serialVersionUID = 1L; - /** Id's for bridges subscribed to. */ - private List bridge_ids; - public List getBridge_ids() { - return bridge_ids; - } - - @JsonDeserialize( contentAs=String.class ) - public void setBridge_ids(List val ) { - bridge_ids = val; - } - - /** Id's for channels subscribed to. */ - private List channel_ids; - public List getChannel_ids() { - return channel_ids; - } - - @JsonDeserialize( contentAs=String.class ) - public void setChannel_ids(List val ) { - channel_ids = val; - } - - /** Names of the devices subscribed to. */ - private List device_names; - public List getDevice_names() { - return device_names; - } - - @JsonDeserialize( contentAs=String.class ) - public void setDevice_names(List val ) { - device_names = val; - } - - /** {tech}/{resource} for endpoints subscribed to. */ - private List endpoint_ids; - public List getEndpoint_ids() { - return endpoint_ids; - } - - @JsonDeserialize( contentAs=String.class ) - public void setEndpoint_ids(List val ) { - endpoint_ids = val; - } - - /** Name of this application */ - private String name; - public String getName() { - return name; - } - - @JsonDeserialize( as=String.class ) - public void setName(String val ) { - name = val; - } - -/** No missing signatures from interface */ -} - diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/models/AsteriskInfo_impl_ari_1_9_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/models/AsteriskInfo_impl_ari_1_9_0.java deleted file mode 100644 index e6aaa295..00000000 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/models/AsteriskInfo_impl_ari_1_9_0.java +++ /dev/null @@ -1,70 +0,0 @@ -package ch.loway.oss.ari4java.generated.ari_1_9_0.models; - -// ---------------------------------------------------- -// THIS CLASS WAS GENERATED AUTOMATICALLY -// PLEASE DO NOT EDIT -// Generated on: Tue Dec 19 09:55:49 CET 2017 -// ---------------------------------------------------- - -import ch.loway.oss.ari4java.generated.*; -import com.fasterxml.jackson.databind.annotation.JsonDeserialize; -import java.util.Date; -import java.util.List; -import java.util.Map; - -/********************************************************** - * Asterisk system information - * - * Defined in file: asterisk.json - * Generated by: Model - *********************************************************/ - -public class AsteriskInfo_impl_ari_1_9_0 implements AsteriskInfo, java.io.Serializable { -private static final long serialVersionUID = 1L; - /** Info about how Asterisk was built */ - private BuildInfo build; - public BuildInfo getBuild() { - return build; - } - - @JsonDeserialize( as=BuildInfo_impl_ari_1_9_0.class ) - public void setBuild(BuildInfo val ) { - build = val; - } - - /** Info about Asterisk configuration */ - private ConfigInfo config; - public ConfigInfo getConfig() { - return config; - } - - @JsonDeserialize( as=ConfigInfo_impl_ari_1_9_0.class ) - public void setConfig(ConfigInfo val ) { - config = val; - } - - /** Info about Asterisk status */ - private StatusInfo status; - public StatusInfo getStatus() { - return status; - } - - @JsonDeserialize( as=StatusInfo_impl_ari_1_9_0.class ) - public void setStatus(StatusInfo val ) { - status = val; - } - - /** Info about the system running Asterisk */ - private SystemInfo system; - public SystemInfo getSystem() { - return system; - } - - @JsonDeserialize( as=SystemInfo_impl_ari_1_9_0.class ) - public void setSystem(SystemInfo val ) { - system = val; - } - -/** No missing signatures from interface */ -} - diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/models/BridgeAttendedTransfer_impl_ari_1_9_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/models/BridgeAttendedTransfer_impl_ari_1_9_0.java deleted file mode 100644 index 6443d88b..00000000 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/models/BridgeAttendedTransfer_impl_ari_1_9_0.java +++ /dev/null @@ -1,202 +0,0 @@ -package ch.loway.oss.ari4java.generated.ari_1_9_0.models; - -// ---------------------------------------------------- -// THIS CLASS WAS GENERATED AUTOMATICALLY -// PLEASE DO NOT EDIT -// Generated on: Tue Dec 19 09:55:49 CET 2017 -// ---------------------------------------------------- - -import ch.loway.oss.ari4java.generated.*; -import com.fasterxml.jackson.databind.annotation.JsonDeserialize; -import java.util.Date; -import java.util.List; -import java.util.Map; - -/********************************************************** - * Notification that an attended transfer has occurred. - * - * Defined in file: events.json - * Generated by: Model - *********************************************************/ - -public class BridgeAttendedTransfer_impl_ari_1_9_0 extends Event_impl_ari_1_9_0 implements BridgeAttendedTransfer, java.io.Serializable { -private static final long serialVersionUID = 1L; - /** Application that has been transferred into */ - private String destination_application; - public String getDestination_application() { - return destination_application; - } - - @JsonDeserialize( as=String.class ) - public void setDestination_application(String val ) { - destination_application = val; - } - - /** Bridge that survived the merge result */ - private String destination_bridge; - public String getDestination_bridge() { - return destination_bridge; - } - - @JsonDeserialize( as=String.class ) - public void setDestination_bridge(String val ) { - destination_bridge = val; - } - - /** First leg of a link transfer result */ - private Channel destination_link_first_leg; - public Channel getDestination_link_first_leg() { - return destination_link_first_leg; - } - - @JsonDeserialize( as=Channel_impl_ari_1_9_0.class ) - public void setDestination_link_first_leg(Channel val ) { - destination_link_first_leg = val; - } - - /** Second leg of a link transfer result */ - private Channel destination_link_second_leg; - public Channel getDestination_link_second_leg() { - return destination_link_second_leg; - } - - @JsonDeserialize( as=Channel_impl_ari_1_9_0.class ) - public void setDestination_link_second_leg(Channel val ) { - destination_link_second_leg = val; - } - - /** Bridge that survived the threeway result */ - private Bridge destination_threeway_bridge; - public Bridge getDestination_threeway_bridge() { - return destination_threeway_bridge; - } - - @JsonDeserialize( as=Bridge_impl_ari_1_9_0.class ) - public void setDestination_threeway_bridge(Bridge val ) { - destination_threeway_bridge = val; - } - - /** Transferer channel that survived the threeway result */ - private Channel destination_threeway_channel; - public Channel getDestination_threeway_channel() { - return destination_threeway_channel; - } - - @JsonDeserialize( as=Channel_impl_ari_1_9_0.class ) - public void setDestination_threeway_channel(Channel val ) { - destination_threeway_channel = val; - } - - /** How the transfer was accomplished */ - private String destination_type; - public String getDestination_type() { - return destination_type; - } - - @JsonDeserialize( as=String.class ) - public void setDestination_type(String val ) { - destination_type = val; - } - - /** Whether the transfer was externally initiated or not */ - private boolean is_external; - public boolean getIs_external() { - return is_external; - } - - @JsonDeserialize( as=boolean.class ) - public void setIs_external(boolean val ) { - is_external = val; - } - - /** The channel that is replacing transferer_first_leg in the swap */ - private Channel replace_channel; - public Channel getReplace_channel() { - return replace_channel; - } - - @JsonDeserialize( as=Channel_impl_ari_1_9_0.class ) - public void setReplace_channel(Channel val ) { - replace_channel = val; - } - - /** The result of the transfer attempt */ - private String result; - public String getResult() { - return result; - } - - @JsonDeserialize( as=String.class ) - public void setResult(String val ) { - result = val; - } - - /** The channel that is being transferred to */ - private Channel transfer_target; - public Channel getTransfer_target() { - return transfer_target; - } - - @JsonDeserialize( as=Channel_impl_ari_1_9_0.class ) - public void setTransfer_target(Channel val ) { - transfer_target = val; - } - - /** The channel that is being transferred */ - private Channel transferee; - public Channel getTransferee() { - return transferee; - } - - @JsonDeserialize( as=Channel_impl_ari_1_9_0.class ) - public void setTransferee(Channel val ) { - transferee = val; - } - - /** First leg of the transferer */ - private Channel transferer_first_leg; - public Channel getTransferer_first_leg() { - return transferer_first_leg; - } - - @JsonDeserialize( as=Channel_impl_ari_1_9_0.class ) - public void setTransferer_first_leg(Channel val ) { - transferer_first_leg = val; - } - - /** Bridge the transferer first leg is in */ - private Bridge transferer_first_leg_bridge; - public Bridge getTransferer_first_leg_bridge() { - return transferer_first_leg_bridge; - } - - @JsonDeserialize( as=Bridge_impl_ari_1_9_0.class ) - public void setTransferer_first_leg_bridge(Bridge val ) { - transferer_first_leg_bridge = val; - } - - /** Second leg of the transferer */ - private Channel transferer_second_leg; - public Channel getTransferer_second_leg() { - return transferer_second_leg; - } - - @JsonDeserialize( as=Channel_impl_ari_1_9_0.class ) - public void setTransferer_second_leg(Channel val ) { - transferer_second_leg = val; - } - - /** Bridge the transferer second leg is in */ - private Bridge transferer_second_leg_bridge; - public Bridge getTransferer_second_leg_bridge() { - return transferer_second_leg_bridge; - } - - @JsonDeserialize( as=Bridge_impl_ari_1_9_0.class ) - public void setTransferer_second_leg_bridge(Bridge val ) { - transferer_second_leg_bridge = val; - } - -/** No missing signatures from interface */ -} - diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/models/BridgeBlindTransfer_impl_ari_1_9_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/models/BridgeBlindTransfer_impl_ari_1_9_0.java deleted file mode 100644 index ac2aedcd..00000000 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/models/BridgeBlindTransfer_impl_ari_1_9_0.java +++ /dev/null @@ -1,114 +0,0 @@ -package ch.loway.oss.ari4java.generated.ari_1_9_0.models; - -// ---------------------------------------------------- -// THIS CLASS WAS GENERATED AUTOMATICALLY -// PLEASE DO NOT EDIT -// Generated on: Tue Dec 19 09:55:49 CET 2017 -// ---------------------------------------------------- - -import ch.loway.oss.ari4java.generated.*; -import com.fasterxml.jackson.databind.annotation.JsonDeserialize; -import java.util.Date; -import java.util.List; -import java.util.Map; - -/********************************************************** - * Notification that a blind transfer has occurred. - * - * Defined in file: events.json - * Generated by: Model - *********************************************************/ - -public class BridgeBlindTransfer_impl_ari_1_9_0 extends Event_impl_ari_1_9_0 implements BridgeBlindTransfer, java.io.Serializable { -private static final long serialVersionUID = 1L; - /** The bridge being transferred */ - private Bridge bridge; - public Bridge getBridge() { - return bridge; - } - - @JsonDeserialize( as=Bridge_impl_ari_1_9_0.class ) - public void setBridge(Bridge val ) { - bridge = val; - } - - /** The channel performing the blind transfer */ - private Channel channel; - public Channel getChannel() { - return channel; - } - - @JsonDeserialize( as=Channel_impl_ari_1_9_0.class ) - public void setChannel(Channel val ) { - channel = val; - } - - /** The context transferred to */ - private String context; - public String getContext() { - return context; - } - - @JsonDeserialize( as=String.class ) - public void setContext(String val ) { - context = val; - } - - /** The extension transferred to */ - private String exten; - public String getExten() { - return exten; - } - - @JsonDeserialize( as=String.class ) - public void setExten(String val ) { - exten = val; - } - - /** Whether the transfer was externally initiated or not */ - private boolean is_external; - public boolean getIs_external() { - return is_external; - } - - @JsonDeserialize( as=boolean.class ) - public void setIs_external(boolean val ) { - is_external = val; - } - - /** The channel that is replacing transferer when the transferee(s) can not be transferred directly */ - private Channel replace_channel; - public Channel getReplace_channel() { - return replace_channel; - } - - @JsonDeserialize( as=Channel_impl_ari_1_9_0.class ) - public void setReplace_channel(Channel val ) { - replace_channel = val; - } - - /** The result of the transfer attempt */ - private String result; - public String getResult() { - return result; - } - - @JsonDeserialize( as=String.class ) - public void setResult(String val ) { - result = val; - } - - /** The channel that is being transferred */ - private Channel transferee; - public Channel getTransferee() { - return transferee; - } - - @JsonDeserialize( as=Channel_impl_ari_1_9_0.class ) - public void setTransferee(Channel val ) { - transferee = val; - } - -/** No missing signatures from interface */ -} - diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/models/BridgeCreated_impl_ari_1_9_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/models/BridgeCreated_impl_ari_1_9_0.java deleted file mode 100644 index cf899220..00000000 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/models/BridgeCreated_impl_ari_1_9_0.java +++ /dev/null @@ -1,37 +0,0 @@ -package ch.loway.oss.ari4java.generated.ari_1_9_0.models; - -// ---------------------------------------------------- -// THIS CLASS WAS GENERATED AUTOMATICALLY -// PLEASE DO NOT EDIT -// Generated on: Tue Dec 19 09:55:49 CET 2017 -// ---------------------------------------------------- - -import ch.loway.oss.ari4java.generated.*; -import com.fasterxml.jackson.databind.annotation.JsonDeserialize; -import java.util.Date; -import java.util.List; -import java.util.Map; - -/********************************************************** - * Notification that a bridge has been created. - * - * Defined in file: events.json - * Generated by: Model - *********************************************************/ - -public class BridgeCreated_impl_ari_1_9_0 extends Event_impl_ari_1_9_0 implements BridgeCreated, java.io.Serializable { -private static final long serialVersionUID = 1L; - /** */ - private Bridge bridge; - public Bridge getBridge() { - return bridge; - } - - @JsonDeserialize( as=Bridge_impl_ari_1_9_0.class ) - public void setBridge(Bridge val ) { - bridge = val; - } - -/** No missing signatures from interface */ -} - diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/models/BridgeDestroyed_impl_ari_1_9_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/models/BridgeDestroyed_impl_ari_1_9_0.java deleted file mode 100644 index f39391b2..00000000 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/models/BridgeDestroyed_impl_ari_1_9_0.java +++ /dev/null @@ -1,37 +0,0 @@ -package ch.loway.oss.ari4java.generated.ari_1_9_0.models; - -// ---------------------------------------------------- -// THIS CLASS WAS GENERATED AUTOMATICALLY -// PLEASE DO NOT EDIT -// Generated on: Tue Dec 19 09:55:49 CET 2017 -// ---------------------------------------------------- - -import ch.loway.oss.ari4java.generated.*; -import com.fasterxml.jackson.databind.annotation.JsonDeserialize; -import java.util.Date; -import java.util.List; -import java.util.Map; - -/********************************************************** - * Notification that a bridge has been destroyed. - * - * Defined in file: events.json - * Generated by: Model - *********************************************************/ - -public class BridgeDestroyed_impl_ari_1_9_0 extends Event_impl_ari_1_9_0 implements BridgeDestroyed, java.io.Serializable { -private static final long serialVersionUID = 1L; - /** */ - private Bridge bridge; - public Bridge getBridge() { - return bridge; - } - - @JsonDeserialize( as=Bridge_impl_ari_1_9_0.class ) - public void setBridge(Bridge val ) { - bridge = val; - } - -/** No missing signatures from interface */ -} - diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/models/BridgeMerged_impl_ari_1_9_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/models/BridgeMerged_impl_ari_1_9_0.java deleted file mode 100644 index 3c39b1be..00000000 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/models/BridgeMerged_impl_ari_1_9_0.java +++ /dev/null @@ -1,48 +0,0 @@ -package ch.loway.oss.ari4java.generated.ari_1_9_0.models; - -// ---------------------------------------------------- -// THIS CLASS WAS GENERATED AUTOMATICALLY -// PLEASE DO NOT EDIT -// Generated on: Tue Dec 19 09:55:49 CET 2017 -// ---------------------------------------------------- - -import ch.loway.oss.ari4java.generated.*; -import com.fasterxml.jackson.databind.annotation.JsonDeserialize; -import java.util.Date; -import java.util.List; -import java.util.Map; - -/********************************************************** - * Notification that one bridge has merged into another. - * - * Defined in file: events.json - * Generated by: Model - *********************************************************/ - -public class BridgeMerged_impl_ari_1_9_0 extends Event_impl_ari_1_9_0 implements BridgeMerged, java.io.Serializable { -private static final long serialVersionUID = 1L; - /** */ - private Bridge bridge; - public Bridge getBridge() { - return bridge; - } - - @JsonDeserialize( as=Bridge_impl_ari_1_9_0.class ) - public void setBridge(Bridge val ) { - bridge = val; - } - - /** */ - private Bridge bridge_from; - public Bridge getBridge_from() { - return bridge_from; - } - - @JsonDeserialize( as=Bridge_impl_ari_1_9_0.class ) - public void setBridge_from(Bridge val ) { - bridge_from = val; - } - -/** No missing signatures from interface */ -} - diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/models/Bridge_impl_ari_1_9_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/models/Bridge_impl_ari_1_9_0.java deleted file mode 100644 index 31c98625..00000000 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/models/Bridge_impl_ari_1_9_0.java +++ /dev/null @@ -1,140 +0,0 @@ -package ch.loway.oss.ari4java.generated.ari_1_9_0.models; - -// ---------------------------------------------------- -// THIS CLASS WAS GENERATED AUTOMATICALLY -// PLEASE DO NOT EDIT -// Generated on: Tue Dec 19 09:55:49 CET 2017 -// ---------------------------------------------------- - -import ch.loway.oss.ari4java.generated.*; -import com.fasterxml.jackson.databind.annotation.JsonDeserialize; -import java.util.Date; -import java.util.List; -import java.util.Map; - -/********************************************************** - * The merging of media from one or more channels. - * - * Everyone on the bridge receives the same audio. - * - * Defined in file: bridges.json - * Generated by: Model - *********************************************************/ - -public class Bridge_impl_ari_1_9_0 implements Bridge, java.io.Serializable { -private static final long serialVersionUID = 1L; - /** Bridging class */ - private String bridge_class; - public String getBridge_class() { - return bridge_class; - } - - @JsonDeserialize( as=String.class ) - public void setBridge_class(String val ) { - bridge_class = val; - } - - /** Type of bridge technology */ - private String bridge_type; - public String getBridge_type() { - return bridge_type; - } - - @JsonDeserialize( as=String.class ) - public void setBridge_type(String val ) { - bridge_type = val; - } - - /** Ids of channels participating in this bridge */ - private List channels; - public List getChannels() { - return channels; - } - - @JsonDeserialize( contentAs=String.class ) - public void setChannels(List val ) { - channels = val; - } - - /** Entity that created the bridge */ - private String creator; - public String getCreator() { - return creator; - } - - @JsonDeserialize( as=String.class ) - public void setCreator(String val ) { - creator = val; - } - - /** Unique identifier for this bridge */ - private String id; - public String getId() { - return id; - } - - @JsonDeserialize( as=String.class ) - public void setId(String val ) { - id = val; - } - - /** Name the creator gave the bridge */ - private String name; - public String getName() { - return name; - } - - @JsonDeserialize( as=String.class ) - public void setName(String val ) { - name = val; - } - - /** Name of the current bridging technology */ - private String technology; - public String getTechnology() { - return technology; - } - - @JsonDeserialize( as=String.class ) - public void setTechnology(String val ) { - technology = val; - } - -/********************************************************** - * The video mode the bridge is using. One of 'none', 'talker', or 'single'. - * - * @since ari_2_0_0 - *********************************************************/ - public String getVideo_mode(){ - throw new UnsupportedOperationException("Method availble from ..."); -}; - -/********************************************************** - * The ID of the channel that is the source of video in this bridge, if one exists. - * - * @since ari_2_0_0 - *********************************************************/ - public String getVideo_source_id(){ - throw new UnsupportedOperationException("Method availble from ..."); -}; - -/********************************************************** - * The video mode the bridge is using. One of 'none', 'talker', or 'single'. - * - * @since ari_2_0_0 - *********************************************************/ - public void setVideo_mode(String val ){ - throw new UnsupportedOperationException("Method availble from ..."); -}; - -/********************************************************** - * The ID of the channel that is the source of video in this bridge, if one exists. - * - * @since ari_2_0_0 - *********************************************************/ - public void setVideo_source_id(String val ){ - throw new UnsupportedOperationException("Method availble from ..."); -}; - -} - diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/models/BuildInfo_impl_ari_1_9_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/models/BuildInfo_impl_ari_1_9_0.java deleted file mode 100644 index bc71c6c6..00000000 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/models/BuildInfo_impl_ari_1_9_0.java +++ /dev/null @@ -1,92 +0,0 @@ -package ch.loway.oss.ari4java.generated.ari_1_9_0.models; - -// ---------------------------------------------------- -// THIS CLASS WAS GENERATED AUTOMATICALLY -// PLEASE DO NOT EDIT -// Generated on: Tue Dec 19 09:55:49 CET 2017 -// ---------------------------------------------------- - -import ch.loway.oss.ari4java.generated.*; -import com.fasterxml.jackson.databind.annotation.JsonDeserialize; -import java.util.Date; -import java.util.List; -import java.util.Map; - -/********************************************************** - * Info about how Asterisk was built - * - * Defined in file: asterisk.json - * Generated by: Model - *********************************************************/ - -public class BuildInfo_impl_ari_1_9_0 implements BuildInfo, java.io.Serializable { -private static final long serialVersionUID = 1L; - /** Date and time when Asterisk was built. */ - private String date; - public String getDate() { - return date; - } - - @JsonDeserialize( as=String.class ) - public void setDate(String val ) { - date = val; - } - - /** Kernel version Asterisk was built on. */ - private String kernel; - public String getKernel() { - return kernel; - } - - @JsonDeserialize( as=String.class ) - public void setKernel(String val ) { - kernel = val; - } - - /** Machine architecture (x86_64, i686, ppc, etc.) */ - private String machine; - public String getMachine() { - return machine; - } - - @JsonDeserialize( as=String.class ) - public void setMachine(String val ) { - machine = val; - } - - /** Compile time options, or empty string if default. */ - private String options; - public String getOptions() { - return options; - } - - @JsonDeserialize( as=String.class ) - public void setOptions(String val ) { - options = val; - } - - /** OS Asterisk was built on. */ - private String os; - public String getOs() { - return os; - } - - @JsonDeserialize( as=String.class ) - public void setOs(String val ) { - os = val; - } - - /** Username that build Asterisk */ - private String user; - public String getUser() { - return user; - } - - @JsonDeserialize( as=String.class ) - public void setUser(String val ) { - user = val; - } - -/** No missing signatures from interface */ -} - diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/models/CallerID_impl_ari_1_9_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/models/CallerID_impl_ari_1_9_0.java deleted file mode 100644 index 801746ac..00000000 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/models/CallerID_impl_ari_1_9_0.java +++ /dev/null @@ -1,48 +0,0 @@ -package ch.loway.oss.ari4java.generated.ari_1_9_0.models; - -// ---------------------------------------------------- -// THIS CLASS WAS GENERATED AUTOMATICALLY -// PLEASE DO NOT EDIT -// Generated on: Tue Dec 19 09:55:49 CET 2017 -// ---------------------------------------------------- - -import ch.loway.oss.ari4java.generated.*; -import com.fasterxml.jackson.databind.annotation.JsonDeserialize; -import java.util.Date; -import java.util.List; -import java.util.Map; - -/********************************************************** - * Caller identification - * - * Defined in file: channels.json - * Generated by: Model - *********************************************************/ - -public class CallerID_impl_ari_1_9_0 implements CallerID, java.io.Serializable { -private static final long serialVersionUID = 1L; - /** */ - private String name; - public String getName() { - return name; - } - - @JsonDeserialize( as=String.class ) - public void setName(String val ) { - name = val; - } - - /** */ - private String number; - public String getNumber() { - return number; - } - - @JsonDeserialize( as=String.class ) - public void setNumber(String val ) { - number = val; - } - -/** No missing signatures from interface */ -} - diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/models/ChannelCallerId_impl_ari_1_9_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/models/ChannelCallerId_impl_ari_1_9_0.java deleted file mode 100644 index 3a548301..00000000 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/models/ChannelCallerId_impl_ari_1_9_0.java +++ /dev/null @@ -1,59 +0,0 @@ -package ch.loway.oss.ari4java.generated.ari_1_9_0.models; - -// ---------------------------------------------------- -// THIS CLASS WAS GENERATED AUTOMATICALLY -// PLEASE DO NOT EDIT -// Generated on: Tue Dec 19 09:55:49 CET 2017 -// ---------------------------------------------------- - -import ch.loway.oss.ari4java.generated.*; -import com.fasterxml.jackson.databind.annotation.JsonDeserialize; -import java.util.Date; -import java.util.List; -import java.util.Map; - -/********************************************************** - * Channel changed Caller ID. - * - * Defined in file: events.json - * Generated by: Model - *********************************************************/ - -public class ChannelCallerId_impl_ari_1_9_0 extends Event_impl_ari_1_9_0 implements ChannelCallerId, java.io.Serializable { -private static final long serialVersionUID = 1L; - /** The integer representation of the Caller Presentation value. */ - private int caller_presentation; - public int getCaller_presentation() { - return caller_presentation; - } - - @JsonDeserialize( as=int.class ) - public void setCaller_presentation(int val ) { - caller_presentation = val; - } - - /** The text representation of the Caller Presentation value. */ - private String caller_presentation_txt; - public String getCaller_presentation_txt() { - return caller_presentation_txt; - } - - @JsonDeserialize( as=String.class ) - public void setCaller_presentation_txt(String val ) { - caller_presentation_txt = val; - } - - /** The channel that changed Caller ID. */ - private Channel channel; - public Channel getChannel() { - return channel; - } - - @JsonDeserialize( as=Channel_impl_ari_1_9_0.class ) - public void setChannel(Channel val ) { - channel = val; - } - -/** No missing signatures from interface */ -} - diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/models/ChannelConnectedLine_impl_ari_1_9_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/models/ChannelConnectedLine_impl_ari_1_9_0.java deleted file mode 100644 index f2fb54d7..00000000 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/models/ChannelConnectedLine_impl_ari_1_9_0.java +++ /dev/null @@ -1,37 +0,0 @@ -package ch.loway.oss.ari4java.generated.ari_1_9_0.models; - -// ---------------------------------------------------- -// THIS CLASS WAS GENERATED AUTOMATICALLY -// PLEASE DO NOT EDIT -// Generated on: Tue Dec 19 09:55:49 CET 2017 -// ---------------------------------------------------- - -import ch.loway.oss.ari4java.generated.*; -import com.fasterxml.jackson.databind.annotation.JsonDeserialize; -import java.util.Date; -import java.util.List; -import java.util.Map; - -/********************************************************** - * Channel changed Connected Line. - * - * Defined in file: events.json - * Generated by: Model - *********************************************************/ - -public class ChannelConnectedLine_impl_ari_1_9_0 extends Event_impl_ari_1_9_0 implements ChannelConnectedLine, java.io.Serializable { -private static final long serialVersionUID = 1L; - /** The channel whose connected line has changed. */ - private Channel channel; - public Channel getChannel() { - return channel; - } - - @JsonDeserialize( as=Channel_impl_ari_1_9_0.class ) - public void setChannel(Channel val ) { - channel = val; - } - -/** No missing signatures from interface */ -} - diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/models/ChannelCreated_impl_ari_1_9_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/models/ChannelCreated_impl_ari_1_9_0.java deleted file mode 100644 index 0e72eef2..00000000 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/models/ChannelCreated_impl_ari_1_9_0.java +++ /dev/null @@ -1,37 +0,0 @@ -package ch.loway.oss.ari4java.generated.ari_1_9_0.models; - -// ---------------------------------------------------- -// THIS CLASS WAS GENERATED AUTOMATICALLY -// PLEASE DO NOT EDIT -// Generated on: Tue Dec 19 09:55:49 CET 2017 -// ---------------------------------------------------- - -import ch.loway.oss.ari4java.generated.*; -import com.fasterxml.jackson.databind.annotation.JsonDeserialize; -import java.util.Date; -import java.util.List; -import java.util.Map; - -/********************************************************** - * Notification that a channel has been created. - * - * Defined in file: events.json - * Generated by: Model - *********************************************************/ - -public class ChannelCreated_impl_ari_1_9_0 extends Event_impl_ari_1_9_0 implements ChannelCreated, java.io.Serializable { -private static final long serialVersionUID = 1L; - /** */ - private Channel channel; - public Channel getChannel() { - return channel; - } - - @JsonDeserialize( as=Channel_impl_ari_1_9_0.class ) - public void setChannel(Channel val ) { - channel = val; - } - -/** No missing signatures from interface */ -} - diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/models/ChannelDestroyed_impl_ari_1_9_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/models/ChannelDestroyed_impl_ari_1_9_0.java deleted file mode 100644 index dbe64a47..00000000 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/models/ChannelDestroyed_impl_ari_1_9_0.java +++ /dev/null @@ -1,59 +0,0 @@ -package ch.loway.oss.ari4java.generated.ari_1_9_0.models; - -// ---------------------------------------------------- -// THIS CLASS WAS GENERATED AUTOMATICALLY -// PLEASE DO NOT EDIT -// Generated on: Tue Dec 19 09:55:49 CET 2017 -// ---------------------------------------------------- - -import ch.loway.oss.ari4java.generated.*; -import com.fasterxml.jackson.databind.annotation.JsonDeserialize; -import java.util.Date; -import java.util.List; -import java.util.Map; - -/********************************************************** - * Notification that a channel has been destroyed. - * - * Defined in file: events.json - * Generated by: Model - *********************************************************/ - -public class ChannelDestroyed_impl_ari_1_9_0 extends Event_impl_ari_1_9_0 implements ChannelDestroyed, java.io.Serializable { -private static final long serialVersionUID = 1L; - /** Integer representation of the cause of the hangup */ - private int cause; - public int getCause() { - return cause; - } - - @JsonDeserialize( as=int.class ) - public void setCause(int val ) { - cause = val; - } - - /** Text representation of the cause of the hangup */ - private String cause_txt; - public String getCause_txt() { - return cause_txt; - } - - @JsonDeserialize( as=String.class ) - public void setCause_txt(String val ) { - cause_txt = val; - } - - /** */ - private Channel channel; - public Channel getChannel() { - return channel; - } - - @JsonDeserialize( as=Channel_impl_ari_1_9_0.class ) - public void setChannel(Channel val ) { - channel = val; - } - -/** No missing signatures from interface */ -} - diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/models/ChannelDialplan_impl_ari_1_9_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/models/ChannelDialplan_impl_ari_1_9_0.java deleted file mode 100644 index dfe4e03d..00000000 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/models/ChannelDialplan_impl_ari_1_9_0.java +++ /dev/null @@ -1,59 +0,0 @@ -package ch.loway.oss.ari4java.generated.ari_1_9_0.models; - -// ---------------------------------------------------- -// THIS CLASS WAS GENERATED AUTOMATICALLY -// PLEASE DO NOT EDIT -// Generated on: Tue Dec 19 09:55:49 CET 2017 -// ---------------------------------------------------- - -import ch.loway.oss.ari4java.generated.*; -import com.fasterxml.jackson.databind.annotation.JsonDeserialize; -import java.util.Date; -import java.util.List; -import java.util.Map; - -/********************************************************** - * Channel changed location in the dialplan. - * - * Defined in file: events.json - * Generated by: Model - *********************************************************/ - -public class ChannelDialplan_impl_ari_1_9_0 extends Event_impl_ari_1_9_0 implements ChannelDialplan, java.io.Serializable { -private static final long serialVersionUID = 1L; - /** The channel that changed dialplan location. */ - private Channel channel; - public Channel getChannel() { - return channel; - } - - @JsonDeserialize( as=Channel_impl_ari_1_9_0.class ) - public void setChannel(Channel val ) { - channel = val; - } - - /** The application about to be executed. */ - private String dialplan_app; - public String getDialplan_app() { - return dialplan_app; - } - - @JsonDeserialize( as=String.class ) - public void setDialplan_app(String val ) { - dialplan_app = val; - } - - /** The data to be passed to the application. */ - private String dialplan_app_data; - public String getDialplan_app_data() { - return dialplan_app_data; - } - - @JsonDeserialize( as=String.class ) - public void setDialplan_app_data(String val ) { - dialplan_app_data = val; - } - -/** No missing signatures from interface */ -} - diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/models/ChannelDtmfReceived_impl_ari_1_9_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/models/ChannelDtmfReceived_impl_ari_1_9_0.java deleted file mode 100644 index d5bffa75..00000000 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/models/ChannelDtmfReceived_impl_ari_1_9_0.java +++ /dev/null @@ -1,61 +0,0 @@ -package ch.loway.oss.ari4java.generated.ari_1_9_0.models; - -// ---------------------------------------------------- -// THIS CLASS WAS GENERATED AUTOMATICALLY -// PLEASE DO NOT EDIT -// Generated on: Tue Dec 19 09:55:49 CET 2017 -// ---------------------------------------------------- - -import ch.loway.oss.ari4java.generated.*; -import com.fasterxml.jackson.databind.annotation.JsonDeserialize; -import java.util.Date; -import java.util.List; -import java.util.Map; - -/********************************************************** - * DTMF received on a channel. - * - * This event is sent when the DTMF ends. There is no notification about the start of DTMF - * - * Defined in file: events.json - * Generated by: Model - *********************************************************/ - -public class ChannelDtmfReceived_impl_ari_1_9_0 extends Event_impl_ari_1_9_0 implements ChannelDtmfReceived, java.io.Serializable { -private static final long serialVersionUID = 1L; - /** The channel on which DTMF was received */ - private Channel channel; - public Channel getChannel() { - return channel; - } - - @JsonDeserialize( as=Channel_impl_ari_1_9_0.class ) - public void setChannel(Channel val ) { - channel = val; - } - - /** DTMF digit received (0-9, A-E, # or *) */ - private String digit; - public String getDigit() { - return digit; - } - - @JsonDeserialize( as=String.class ) - public void setDigit(String val ) { - digit = val; - } - - /** Number of milliseconds DTMF was received */ - private int duration_ms; - public int getDuration_ms() { - return duration_ms; - } - - @JsonDeserialize( as=int.class ) - public void setDuration_ms(int val ) { - duration_ms = val; - } - -/** No missing signatures from interface */ -} - diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/models/ChannelEnteredBridge_impl_ari_1_9_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/models/ChannelEnteredBridge_impl_ari_1_9_0.java deleted file mode 100644 index bf059c3d..00000000 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/models/ChannelEnteredBridge_impl_ari_1_9_0.java +++ /dev/null @@ -1,48 +0,0 @@ -package ch.loway.oss.ari4java.generated.ari_1_9_0.models; - -// ---------------------------------------------------- -// THIS CLASS WAS GENERATED AUTOMATICALLY -// PLEASE DO NOT EDIT -// Generated on: Tue Dec 19 09:55:49 CET 2017 -// ---------------------------------------------------- - -import ch.loway.oss.ari4java.generated.*; -import com.fasterxml.jackson.databind.annotation.JsonDeserialize; -import java.util.Date; -import java.util.List; -import java.util.Map; - -/********************************************************** - * Notification that a channel has entered a bridge. - * - * Defined in file: events.json - * Generated by: Model - *********************************************************/ - -public class ChannelEnteredBridge_impl_ari_1_9_0 extends Event_impl_ari_1_9_0 implements ChannelEnteredBridge, java.io.Serializable { -private static final long serialVersionUID = 1L; - /** */ - private Bridge bridge; - public Bridge getBridge() { - return bridge; - } - - @JsonDeserialize( as=Bridge_impl_ari_1_9_0.class ) - public void setBridge(Bridge val ) { - bridge = val; - } - - /** */ - private Channel channel; - public Channel getChannel() { - return channel; - } - - @JsonDeserialize( as=Channel_impl_ari_1_9_0.class ) - public void setChannel(Channel val ) { - channel = val; - } - -/** No missing signatures from interface */ -} - diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/models/ChannelHangupRequest_impl_ari_1_9_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/models/ChannelHangupRequest_impl_ari_1_9_0.java deleted file mode 100644 index 8fca5e20..00000000 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/models/ChannelHangupRequest_impl_ari_1_9_0.java +++ /dev/null @@ -1,59 +0,0 @@ -package ch.loway.oss.ari4java.generated.ari_1_9_0.models; - -// ---------------------------------------------------- -// THIS CLASS WAS GENERATED AUTOMATICALLY -// PLEASE DO NOT EDIT -// Generated on: Tue Dec 19 09:55:49 CET 2017 -// ---------------------------------------------------- - -import ch.loway.oss.ari4java.generated.*; -import com.fasterxml.jackson.databind.annotation.JsonDeserialize; -import java.util.Date; -import java.util.List; -import java.util.Map; - -/********************************************************** - * A hangup was requested on the channel. - * - * Defined in file: events.json - * Generated by: Model - *********************************************************/ - -public class ChannelHangupRequest_impl_ari_1_9_0 extends Event_impl_ari_1_9_0 implements ChannelHangupRequest, java.io.Serializable { -private static final long serialVersionUID = 1L; - /** Integer representation of the cause of the hangup. */ - private int cause; - public int getCause() { - return cause; - } - - @JsonDeserialize( as=int.class ) - public void setCause(int val ) { - cause = val; - } - - /** The channel on which the hangup was requested. */ - private Channel channel; - public Channel getChannel() { - return channel; - } - - @JsonDeserialize( as=Channel_impl_ari_1_9_0.class ) - public void setChannel(Channel val ) { - channel = val; - } - - /** Whether the hangup request was a soft hangup request. */ - private boolean soft; - public boolean getSoft() { - return soft; - } - - @JsonDeserialize( as=boolean.class ) - public void setSoft(boolean val ) { - soft = val; - } - -/** No missing signatures from interface */ -} - diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/models/ChannelHold_impl_ari_1_9_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/models/ChannelHold_impl_ari_1_9_0.java deleted file mode 100644 index f0a0b73d..00000000 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/models/ChannelHold_impl_ari_1_9_0.java +++ /dev/null @@ -1,48 +0,0 @@ -package ch.loway.oss.ari4java.generated.ari_1_9_0.models; - -// ---------------------------------------------------- -// THIS CLASS WAS GENERATED AUTOMATICALLY -// PLEASE DO NOT EDIT -// Generated on: Tue Dec 19 09:55:49 CET 2017 -// ---------------------------------------------------- - -import ch.loway.oss.ari4java.generated.*; -import com.fasterxml.jackson.databind.annotation.JsonDeserialize; -import java.util.Date; -import java.util.List; -import java.util.Map; - -/********************************************************** - * A channel initiated a media hold. - * - * Defined in file: events.json - * Generated by: Model - *********************************************************/ - -public class ChannelHold_impl_ari_1_9_0 extends Event_impl_ari_1_9_0 implements ChannelHold, java.io.Serializable { -private static final long serialVersionUID = 1L; - /** The channel that initiated the hold event. */ - private Channel channel; - public Channel getChannel() { - return channel; - } - - @JsonDeserialize( as=Channel_impl_ari_1_9_0.class ) - public void setChannel(Channel val ) { - channel = val; - } - - /** The music on hold class that the initiator requested. */ - private String musicclass; - public String getMusicclass() { - return musicclass; - } - - @JsonDeserialize( as=String.class ) - public void setMusicclass(String val ) { - musicclass = val; - } - -/** No missing signatures from interface */ -} - diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/models/ChannelLeftBridge_impl_ari_1_9_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/models/ChannelLeftBridge_impl_ari_1_9_0.java deleted file mode 100644 index b7cfe1c5..00000000 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/models/ChannelLeftBridge_impl_ari_1_9_0.java +++ /dev/null @@ -1,48 +0,0 @@ -package ch.loway.oss.ari4java.generated.ari_1_9_0.models; - -// ---------------------------------------------------- -// THIS CLASS WAS GENERATED AUTOMATICALLY -// PLEASE DO NOT EDIT -// Generated on: Tue Dec 19 09:55:49 CET 2017 -// ---------------------------------------------------- - -import ch.loway.oss.ari4java.generated.*; -import com.fasterxml.jackson.databind.annotation.JsonDeserialize; -import java.util.Date; -import java.util.List; -import java.util.Map; - -/********************************************************** - * Notification that a channel has left a bridge. - * - * Defined in file: events.json - * Generated by: Model - *********************************************************/ - -public class ChannelLeftBridge_impl_ari_1_9_0 extends Event_impl_ari_1_9_0 implements ChannelLeftBridge, java.io.Serializable { -private static final long serialVersionUID = 1L; - /** */ - private Bridge bridge; - public Bridge getBridge() { - return bridge; - } - - @JsonDeserialize( as=Bridge_impl_ari_1_9_0.class ) - public void setBridge(Bridge val ) { - bridge = val; - } - - /** */ - private Channel channel; - public Channel getChannel() { - return channel; - } - - @JsonDeserialize( as=Channel_impl_ari_1_9_0.class ) - public void setChannel(Channel val ) { - channel = val; - } - -/** No missing signatures from interface */ -} - diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/models/ChannelStateChange_impl_ari_1_9_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/models/ChannelStateChange_impl_ari_1_9_0.java deleted file mode 100644 index 55afd34a..00000000 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/models/ChannelStateChange_impl_ari_1_9_0.java +++ /dev/null @@ -1,37 +0,0 @@ -package ch.loway.oss.ari4java.generated.ari_1_9_0.models; - -// ---------------------------------------------------- -// THIS CLASS WAS GENERATED AUTOMATICALLY -// PLEASE DO NOT EDIT -// Generated on: Tue Dec 19 09:55:49 CET 2017 -// ---------------------------------------------------- - -import ch.loway.oss.ari4java.generated.*; -import com.fasterxml.jackson.databind.annotation.JsonDeserialize; -import java.util.Date; -import java.util.List; -import java.util.Map; - -/********************************************************** - * Notification of a channel's state change. - * - * Defined in file: events.json - * Generated by: Model - *********************************************************/ - -public class ChannelStateChange_impl_ari_1_9_0 extends Event_impl_ari_1_9_0 implements ChannelStateChange, java.io.Serializable { -private static final long serialVersionUID = 1L; - /** */ - private Channel channel; - public Channel getChannel() { - return channel; - } - - @JsonDeserialize( as=Channel_impl_ari_1_9_0.class ) - public void setChannel(Channel val ) { - channel = val; - } - -/** No missing signatures from interface */ -} - diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/models/ChannelTalkingFinished_impl_ari_1_9_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/models/ChannelTalkingFinished_impl_ari_1_9_0.java deleted file mode 100644 index d8544f42..00000000 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/models/ChannelTalkingFinished_impl_ari_1_9_0.java +++ /dev/null @@ -1,48 +0,0 @@ -package ch.loway.oss.ari4java.generated.ari_1_9_0.models; - -// ---------------------------------------------------- -// THIS CLASS WAS GENERATED AUTOMATICALLY -// PLEASE DO NOT EDIT -// Generated on: Tue Dec 19 09:55:49 CET 2017 -// ---------------------------------------------------- - -import ch.loway.oss.ari4java.generated.*; -import com.fasterxml.jackson.databind.annotation.JsonDeserialize; -import java.util.Date; -import java.util.List; -import java.util.Map; - -/********************************************************** - * Talking is no longer detected on the channel. - * - * Defined in file: events.json - * Generated by: Model - *********************************************************/ - -public class ChannelTalkingFinished_impl_ari_1_9_0 extends Event_impl_ari_1_9_0 implements ChannelTalkingFinished, java.io.Serializable { -private static final long serialVersionUID = 1L; - /** The channel on which talking completed. */ - private Channel channel; - public Channel getChannel() { - return channel; - } - - @JsonDeserialize( as=Channel_impl_ari_1_9_0.class ) - public void setChannel(Channel val ) { - channel = val; - } - - /** The length of time, in milliseconds, that talking was detected on the channel */ - private int duration; - public int getDuration() { - return duration; - } - - @JsonDeserialize( as=int.class ) - public void setDuration(int val ) { - duration = val; - } - -/** No missing signatures from interface */ -} - diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/models/ChannelTalkingStarted_impl_ari_1_9_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/models/ChannelTalkingStarted_impl_ari_1_9_0.java deleted file mode 100644 index 450ff80c..00000000 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/models/ChannelTalkingStarted_impl_ari_1_9_0.java +++ /dev/null @@ -1,37 +0,0 @@ -package ch.loway.oss.ari4java.generated.ari_1_9_0.models; - -// ---------------------------------------------------- -// THIS CLASS WAS GENERATED AUTOMATICALLY -// PLEASE DO NOT EDIT -// Generated on: Tue Dec 19 09:55:49 CET 2017 -// ---------------------------------------------------- - -import ch.loway.oss.ari4java.generated.*; -import com.fasterxml.jackson.databind.annotation.JsonDeserialize; -import java.util.Date; -import java.util.List; -import java.util.Map; - -/********************************************************** - * Talking was detected on the channel. - * - * Defined in file: events.json - * Generated by: Model - *********************************************************/ - -public class ChannelTalkingStarted_impl_ari_1_9_0 extends Event_impl_ari_1_9_0 implements ChannelTalkingStarted, java.io.Serializable { -private static final long serialVersionUID = 1L; - /** The channel on which talking started. */ - private Channel channel; - public Channel getChannel() { - return channel; - } - - @JsonDeserialize( as=Channel_impl_ari_1_9_0.class ) - public void setChannel(Channel val ) { - channel = val; - } - -/** No missing signatures from interface */ -} - diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/models/ChannelUnhold_impl_ari_1_9_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/models/ChannelUnhold_impl_ari_1_9_0.java deleted file mode 100644 index 60d2bc86..00000000 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/models/ChannelUnhold_impl_ari_1_9_0.java +++ /dev/null @@ -1,37 +0,0 @@ -package ch.loway.oss.ari4java.generated.ari_1_9_0.models; - -// ---------------------------------------------------- -// THIS CLASS WAS GENERATED AUTOMATICALLY -// PLEASE DO NOT EDIT -// Generated on: Tue Dec 19 09:55:49 CET 2017 -// ---------------------------------------------------- - -import ch.loway.oss.ari4java.generated.*; -import com.fasterxml.jackson.databind.annotation.JsonDeserialize; -import java.util.Date; -import java.util.List; -import java.util.Map; - -/********************************************************** - * A channel initiated a media unhold. - * - * Defined in file: events.json - * Generated by: Model - *********************************************************/ - -public class ChannelUnhold_impl_ari_1_9_0 extends Event_impl_ari_1_9_0 implements ChannelUnhold, java.io.Serializable { -private static final long serialVersionUID = 1L; - /** The channel that initiated the unhold event. */ - private Channel channel; - public Channel getChannel() { - return channel; - } - - @JsonDeserialize( as=Channel_impl_ari_1_9_0.class ) - public void setChannel(Channel val ) { - channel = val; - } - -/** No missing signatures from interface */ -} - diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/models/ChannelUserevent_impl_ari_1_9_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/models/ChannelUserevent_impl_ari_1_9_0.java deleted file mode 100644 index 8c8248d4..00000000 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/models/ChannelUserevent_impl_ari_1_9_0.java +++ /dev/null @@ -1,81 +0,0 @@ -package ch.loway.oss.ari4java.generated.ari_1_9_0.models; - -// ---------------------------------------------------- -// THIS CLASS WAS GENERATED AUTOMATICALLY -// PLEASE DO NOT EDIT -// Generated on: Tue Dec 19 09:55:49 CET 2017 -// ---------------------------------------------------- - -import ch.loway.oss.ari4java.generated.*; -import com.fasterxml.jackson.databind.annotation.JsonDeserialize; -import java.util.Date; -import java.util.List; -import java.util.Map; - -/********************************************************** - * User-generated event with additional user-defined fields in the object. - * - * Defined in file: events.json - * Generated by: Model - *********************************************************/ - -public class ChannelUserevent_impl_ari_1_9_0 extends Event_impl_ari_1_9_0 implements ChannelUserevent, java.io.Serializable { -private static final long serialVersionUID = 1L; - /** A bridge that is signaled with the user event. */ - private Bridge bridge; - public Bridge getBridge() { - return bridge; - } - - @JsonDeserialize( as=Bridge_impl_ari_1_9_0.class ) - public void setBridge(Bridge val ) { - bridge = val; - } - - /** A channel that is signaled with the user event. */ - private Channel channel; - public Channel getChannel() { - return channel; - } - - @JsonDeserialize( as=Channel_impl_ari_1_9_0.class ) - public void setChannel(Channel val ) { - channel = val; - } - - /** A endpoint that is signaled with the user event. */ - private Endpoint endpoint; - public Endpoint getEndpoint() { - return endpoint; - } - - @JsonDeserialize( as=Endpoint_impl_ari_1_9_0.class ) - public void setEndpoint(Endpoint val ) { - endpoint = val; - } - - /** The name of the user event. */ - private String eventname; - public String getEventname() { - return eventname; - } - - @JsonDeserialize( as=String.class ) - public void setEventname(String val ) { - eventname = val; - } - - /** Custom Userevent data */ - private String userevent; - public String getUserevent() { - return userevent; - } - - @JsonDeserialize( as=String.class ) - public void setUserevent(String val ) { - userevent = val; - } - -/** No missing signatures from interface */ -} - diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/models/ChannelVarset_impl_ari_1_9_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/models/ChannelVarset_impl_ari_1_9_0.java deleted file mode 100644 index 69f1520a..00000000 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/models/ChannelVarset_impl_ari_1_9_0.java +++ /dev/null @@ -1,61 +0,0 @@ -package ch.loway.oss.ari4java.generated.ari_1_9_0.models; - -// ---------------------------------------------------- -// THIS CLASS WAS GENERATED AUTOMATICALLY -// PLEASE DO NOT EDIT -// Generated on: Tue Dec 19 09:55:49 CET 2017 -// ---------------------------------------------------- - -import ch.loway.oss.ari4java.generated.*; -import com.fasterxml.jackson.databind.annotation.JsonDeserialize; -import java.util.Date; -import java.util.List; -import java.util.Map; - -/********************************************************** - * Channel variable changed. - * - * Defined in file: events.json - * Generated by: Model - *********************************************************/ - -public class ChannelVarset_impl_ari_1_9_0 extends Event_impl_ari_1_9_0 implements ChannelVarset, java.io.Serializable { -private static final long serialVersionUID = 1L; - /** The channel on which the variable was set. - -If missing, the variable is a global variable. */ - private Channel channel; - public Channel getChannel() { - return channel; - } - - @JsonDeserialize( as=Channel_impl_ari_1_9_0.class ) - public void setChannel(Channel val ) { - channel = val; - } - - /** The new value of the variable. */ - private String value; - public String getValue() { - return value; - } - - @JsonDeserialize( as=String.class ) - public void setValue(String val ) { - value = val; - } - - /** The variable that changed. */ - private String variable; - public String getVariable() { - return variable; - } - - @JsonDeserialize( as=String.class ) - public void setVariable(String val ) { - variable = val; - } - -/** No missing signatures from interface */ -} - diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/models/Channel_impl_ari_1_9_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/models/Channel_impl_ari_1_9_0.java deleted file mode 100644 index 6c2bf66b..00000000 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/models/Channel_impl_ari_1_9_0.java +++ /dev/null @@ -1,144 +0,0 @@ -package ch.loway.oss.ari4java.generated.ari_1_9_0.models; - -// ---------------------------------------------------- -// THIS CLASS WAS GENERATED AUTOMATICALLY -// PLEASE DO NOT EDIT -// Generated on: Tue Dec 19 09:55:49 CET 2017 -// ---------------------------------------------------- - -import ch.loway.oss.ari4java.generated.*; -import com.fasterxml.jackson.databind.annotation.JsonDeserialize; -import java.util.Date; -import java.util.List; -import java.util.Map; - -/********************************************************** - * A specific communication connection between Asterisk and an Endpoint. - * - * Defined in file: channels.json - * Generated by: Model - *********************************************************/ - -public class Channel_impl_ari_1_9_0 implements Channel, java.io.Serializable { -private static final long serialVersionUID = 1L; - /** */ - private String accountcode; - public String getAccountcode() { - return accountcode; - } - - @JsonDeserialize( as=String.class ) - public void setAccountcode(String val ) { - accountcode = val; - } - - /** */ - private CallerID caller; - public CallerID getCaller() { - return caller; - } - - @JsonDeserialize( as=CallerID_impl_ari_1_9_0.class ) - public void setCaller(CallerID val ) { - caller = val; - } - - /** */ - private CallerID connected; - public CallerID getConnected() { - return connected; - } - - @JsonDeserialize( as=CallerID_impl_ari_1_9_0.class ) - public void setConnected(CallerID val ) { - connected = val; - } - - /** Timestamp when channel was created */ - private Date creationtime; - public Date getCreationtime() { - return creationtime; - } - - @JsonDeserialize( as=Date.class ) - public void setCreationtime(Date val ) { - creationtime = val; - } - - /** Current location in the dialplan */ - private DialplanCEP dialplan; - public DialplanCEP getDialplan() { - return dialplan; - } - - @JsonDeserialize( as=DialplanCEP_impl_ari_1_9_0.class ) - public void setDialplan(DialplanCEP val ) { - dialplan = val; - } - - /** Unique identifier of the channel. - -This is the same as the Uniqueid field in AMI. */ - private String id; - public String getId() { - return id; - } - - @JsonDeserialize( as=String.class ) - public void setId(String val ) { - id = val; - } - - /** The default spoken language */ - private String language; - public String getLanguage() { - return language; - } - - @JsonDeserialize( as=String.class ) - public void setLanguage(String val ) { - language = val; - } - - /** Name of the channel (i.e. SIP/foo-0000a7e3) */ - private String name; - public String getName() { - return name; - } - - @JsonDeserialize( as=String.class ) - public void setName(String val ) { - name = val; - } - - /** */ - private String state; - public String getState() { - return state; - } - - @JsonDeserialize( as=String.class ) - public void setState(String val ) { - state = val; - } - -/********************************************************** - * Channel variables - * - * @since ari_2_0_0 - *********************************************************/ - public String getChannelvars(){ - throw new UnsupportedOperationException("Method availble from ..."); -}; - -/********************************************************** - * Channel variables - * - * @since ari_2_0_0 - *********************************************************/ - public void setChannelvars(String val ){ - throw new UnsupportedOperationException("Method availble from ..."); -}; - -} - diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/models/ConfigInfo_impl_ari_1_9_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/models/ConfigInfo_impl_ari_1_9_0.java deleted file mode 100644 index 184fafe8..00000000 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/models/ConfigInfo_impl_ari_1_9_0.java +++ /dev/null @@ -1,92 +0,0 @@ -package ch.loway.oss.ari4java.generated.ari_1_9_0.models; - -// ---------------------------------------------------- -// THIS CLASS WAS GENERATED AUTOMATICALLY -// PLEASE DO NOT EDIT -// Generated on: Tue Dec 19 09:55:49 CET 2017 -// ---------------------------------------------------- - -import ch.loway.oss.ari4java.generated.*; -import com.fasterxml.jackson.databind.annotation.JsonDeserialize; -import java.util.Date; -import java.util.List; -import java.util.Map; - -/********************************************************** - * Info about Asterisk configuration - * - * Defined in file: asterisk.json - * Generated by: Model - *********************************************************/ - -public class ConfigInfo_impl_ari_1_9_0 implements ConfigInfo, java.io.Serializable { -private static final long serialVersionUID = 1L; - /** Default language for media playback. */ - private String default_language; - public String getDefault_language() { - return default_language; - } - - @JsonDeserialize( as=String.class ) - public void setDefault_language(String val ) { - default_language = val; - } - - /** Maximum number of simultaneous channels. */ - private int max_channels; - public int getMax_channels() { - return max_channels; - } - - @JsonDeserialize( as=int.class ) - public void setMax_channels(int val ) { - max_channels = val; - } - - /** Maximum load avg on system. */ - private double max_load; - public double getMax_load() { - return max_load; - } - - @JsonDeserialize( as=double.class ) - public void setMax_load(double val ) { - max_load = val; - } - - /** Maximum number of open file handles (files, sockets). */ - private int max_open_files; - public int getMax_open_files() { - return max_open_files; - } - - @JsonDeserialize( as=int.class ) - public void setMax_open_files(int val ) { - max_open_files = val; - } - - /** Asterisk system name. */ - private String name; - public String getName() { - return name; - } - - @JsonDeserialize( as=String.class ) - public void setName(String val ) { - name = val; - } - - /** Effective user/group id for running Asterisk. */ - private SetId setid; - public SetId getSetid() { - return setid; - } - - @JsonDeserialize( as=SetId_impl_ari_1_9_0.class ) - public void setSetid(SetId val ) { - setid = val; - } - -/** No missing signatures from interface */ -} - diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/models/ConfigTuple_impl_ari_1_9_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/models/ConfigTuple_impl_ari_1_9_0.java deleted file mode 100644 index 8d24c4e5..00000000 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/models/ConfigTuple_impl_ari_1_9_0.java +++ /dev/null @@ -1,48 +0,0 @@ -package ch.loway.oss.ari4java.generated.ari_1_9_0.models; - -// ---------------------------------------------------- -// THIS CLASS WAS GENERATED AUTOMATICALLY -// PLEASE DO NOT EDIT -// Generated on: Tue Dec 19 09:55:49 CET 2017 -// ---------------------------------------------------- - -import ch.loway.oss.ari4java.generated.*; -import com.fasterxml.jackson.databind.annotation.JsonDeserialize; -import java.util.Date; -import java.util.List; -import java.util.Map; - -/********************************************************** - * A key/value pair that makes up part of a configuration object. - * - * Defined in file: asterisk.json - * Generated by: Model - *********************************************************/ - -public class ConfigTuple_impl_ari_1_9_0 implements ConfigTuple, java.io.Serializable { -private static final long serialVersionUID = 1L; - /** A configuration object attribute. */ - private String attribute; - public String getAttribute() { - return attribute; - } - - @JsonDeserialize( as=String.class ) - public void setAttribute(String val ) { - attribute = val; - } - - /** The value for the attribute. */ - private String value; - public String getValue() { - return value; - } - - @JsonDeserialize( as=String.class ) - public void setValue(String val ) { - value = val; - } - -/** No missing signatures from interface */ -} - diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/models/ContactInfo_impl_ari_1_9_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/models/ContactInfo_impl_ari_1_9_0.java deleted file mode 100644 index f0dd21b6..00000000 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/models/ContactInfo_impl_ari_1_9_0.java +++ /dev/null @@ -1,70 +0,0 @@ -package ch.loway.oss.ari4java.generated.ari_1_9_0.models; - -// ---------------------------------------------------- -// THIS CLASS WAS GENERATED AUTOMATICALLY -// PLEASE DO NOT EDIT -// Generated on: Tue Dec 19 09:55:49 CET 2017 -// ---------------------------------------------------- - -import ch.loway.oss.ari4java.generated.*; -import com.fasterxml.jackson.databind.annotation.JsonDeserialize; -import java.util.Date; -import java.util.List; -import java.util.Map; - -/********************************************************** - * Detailed information about a contact on an endpoint. - * - * Defined in file: events.json - * Generated by: Model - *********************************************************/ - -public class ContactInfo_impl_ari_1_9_0 implements ContactInfo, java.io.Serializable { -private static final long serialVersionUID = 1L; - /** The Address of Record this contact belongs to. */ - private String aor; - public String getAor() { - return aor; - } - - @JsonDeserialize( as=String.class ) - public void setAor(String val ) { - aor = val; - } - - /** The current status of the contact. */ - private String contact_status; - public String getContact_status() { - return contact_status; - } - - @JsonDeserialize( as=String.class ) - public void setContact_status(String val ) { - contact_status = val; - } - - /** Current round trip time, in microseconds, for the contact. */ - private String roundtrip_usec; - public String getRoundtrip_usec() { - return roundtrip_usec; - } - - @JsonDeserialize( as=String.class ) - public void setRoundtrip_usec(String val ) { - roundtrip_usec = val; - } - - /** The location of the contact. */ - private String uri; - public String getUri() { - return uri; - } - - @JsonDeserialize( as=String.class ) - public void setUri(String val ) { - uri = val; - } - -/** No missing signatures from interface */ -} - diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/models/ContactStatusChange_impl_ari_1_9_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/models/ContactStatusChange_impl_ari_1_9_0.java deleted file mode 100644 index 74e371cf..00000000 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/models/ContactStatusChange_impl_ari_1_9_0.java +++ /dev/null @@ -1,48 +0,0 @@ -package ch.loway.oss.ari4java.generated.ari_1_9_0.models; - -// ---------------------------------------------------- -// THIS CLASS WAS GENERATED AUTOMATICALLY -// PLEASE DO NOT EDIT -// Generated on: Tue Dec 19 09:55:49 CET 2017 -// ---------------------------------------------------- - -import ch.loway.oss.ari4java.generated.*; -import com.fasterxml.jackson.databind.annotation.JsonDeserialize; -import java.util.Date; -import java.util.List; -import java.util.Map; - -/********************************************************** - * The state of a contact on an endpoint has changed. - * - * Defined in file: events.json - * Generated by: Model - *********************************************************/ - -public class ContactStatusChange_impl_ari_1_9_0 extends Event_impl_ari_1_9_0 implements ContactStatusChange, java.io.Serializable { -private static final long serialVersionUID = 1L; - /** */ - private ContactInfo contact_info; - public ContactInfo getContact_info() { - return contact_info; - } - - @JsonDeserialize( as=ContactInfo_impl_ari_1_9_0.class ) - public void setContact_info(ContactInfo val ) { - contact_info = val; - } - - /** */ - private Endpoint endpoint; - public Endpoint getEndpoint() { - return endpoint; - } - - @JsonDeserialize( as=Endpoint_impl_ari_1_9_0.class ) - public void setEndpoint(Endpoint val ) { - endpoint = val; - } - -/** No missing signatures from interface */ -} - diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/models/DeviceStateChanged_impl_ari_1_9_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/models/DeviceStateChanged_impl_ari_1_9_0.java deleted file mode 100644 index f92031d9..00000000 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/models/DeviceStateChanged_impl_ari_1_9_0.java +++ /dev/null @@ -1,37 +0,0 @@ -package ch.loway.oss.ari4java.generated.ari_1_9_0.models; - -// ---------------------------------------------------- -// THIS CLASS WAS GENERATED AUTOMATICALLY -// PLEASE DO NOT EDIT -// Generated on: Tue Dec 19 09:55:49 CET 2017 -// ---------------------------------------------------- - -import ch.loway.oss.ari4java.generated.*; -import com.fasterxml.jackson.databind.annotation.JsonDeserialize; -import java.util.Date; -import java.util.List; -import java.util.Map; - -/********************************************************** - * Notification that a device state has changed. - * - * Defined in file: events.json - * Generated by: Model - *********************************************************/ - -public class DeviceStateChanged_impl_ari_1_9_0 extends Event_impl_ari_1_9_0 implements DeviceStateChanged, java.io.Serializable { -private static final long serialVersionUID = 1L; - /** Device state object */ - private DeviceState device_state; - public DeviceState getDevice_state() { - return device_state; - } - - @JsonDeserialize( as=DeviceState_impl_ari_1_9_0.class ) - public void setDevice_state(DeviceState val ) { - device_state = val; - } - -/** No missing signatures from interface */ -} - diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/models/DeviceState_impl_ari_1_9_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/models/DeviceState_impl_ari_1_9_0.java deleted file mode 100644 index 7f17b260..00000000 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/models/DeviceState_impl_ari_1_9_0.java +++ /dev/null @@ -1,48 +0,0 @@ -package ch.loway.oss.ari4java.generated.ari_1_9_0.models; - -// ---------------------------------------------------- -// THIS CLASS WAS GENERATED AUTOMATICALLY -// PLEASE DO NOT EDIT -// Generated on: Tue Dec 19 09:55:49 CET 2017 -// ---------------------------------------------------- - -import ch.loway.oss.ari4java.generated.*; -import com.fasterxml.jackson.databind.annotation.JsonDeserialize; -import java.util.Date; -import java.util.List; -import java.util.Map; - -/********************************************************** - * Represents the state of a device. - * - * Defined in file: deviceStates.json - * Generated by: Model - *********************************************************/ - -public class DeviceState_impl_ari_1_9_0 implements DeviceState, java.io.Serializable { -private static final long serialVersionUID = 1L; - /** Name of the device. */ - private String name; - public String getName() { - return name; - } - - @JsonDeserialize( as=String.class ) - public void setName(String val ) { - name = val; - } - - /** Device's state */ - private String state; - public String getState() { - return state; - } - - @JsonDeserialize( as=String.class ) - public void setState(String val ) { - state = val; - } - -/** No missing signatures from interface */ -} - diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/models/Dial_impl_ari_1_9_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/models/Dial_impl_ari_1_9_0.java deleted file mode 100644 index 5a2e0c02..00000000 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/models/Dial_impl_ari_1_9_0.java +++ /dev/null @@ -1,92 +0,0 @@ -package ch.loway.oss.ari4java.generated.ari_1_9_0.models; - -// ---------------------------------------------------- -// THIS CLASS WAS GENERATED AUTOMATICALLY -// PLEASE DO NOT EDIT -// Generated on: Tue Dec 19 09:55:49 CET 2017 -// ---------------------------------------------------- - -import ch.loway.oss.ari4java.generated.*; -import com.fasterxml.jackson.databind.annotation.JsonDeserialize; -import java.util.Date; -import java.util.List; -import java.util.Map; - -/********************************************************** - * Dialing state has changed. - * - * Defined in file: events.json - * Generated by: Model - *********************************************************/ - -public class Dial_impl_ari_1_9_0 extends Event_impl_ari_1_9_0 implements Dial, java.io.Serializable { -private static final long serialVersionUID = 1L; - /** The calling channel. */ - private Channel caller; - public Channel getCaller() { - return caller; - } - - @JsonDeserialize( as=Channel_impl_ari_1_9_0.class ) - public void setCaller(Channel val ) { - caller = val; - } - - /** Current status of the dialing attempt to the peer. */ - private String dialstatus; - public String getDialstatus() { - return dialstatus; - } - - @JsonDeserialize( as=String.class ) - public void setDialstatus(String val ) { - dialstatus = val; - } - - /** The dial string for calling the peer channel. */ - private String dialstring; - public String getDialstring() { - return dialstring; - } - - @JsonDeserialize( as=String.class ) - public void setDialstring(String val ) { - dialstring = val; - } - - /** Forwarding target requested by the original dialed channel. */ - private String forward; - public String getForward() { - return forward; - } - - @JsonDeserialize( as=String.class ) - public void setForward(String val ) { - forward = val; - } - - /** Channel that the caller has been forwarded to. */ - private Channel forwarded; - public Channel getForwarded() { - return forwarded; - } - - @JsonDeserialize( as=Channel_impl_ari_1_9_0.class ) - public void setForwarded(Channel val ) { - forwarded = val; - } - - /** The dialed channel. */ - private Channel peer; - public Channel getPeer() { - return peer; - } - - @JsonDeserialize( as=Channel_impl_ari_1_9_0.class ) - public void setPeer(Channel val ) { - peer = val; - } - -/** No missing signatures from interface */ -} - diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/models/Dialed_impl_ari_1_9_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/models/Dialed_impl_ari_1_9_0.java deleted file mode 100644 index e387e77b..00000000 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/models/Dialed_impl_ari_1_9_0.java +++ /dev/null @@ -1,26 +0,0 @@ -package ch.loway.oss.ari4java.generated.ari_1_9_0.models; - -// ---------------------------------------------------- -// THIS CLASS WAS GENERATED AUTOMATICALLY -// PLEASE DO NOT EDIT -// Generated on: Tue Dec 19 09:55:49 CET 2017 -// ---------------------------------------------------- - -import ch.loway.oss.ari4java.generated.*; -import com.fasterxml.jackson.databind.annotation.JsonDeserialize; -import java.util.Date; -import java.util.List; -import java.util.Map; - -/********************************************************** - * Dialed channel information. - * - * Defined in file: channels.json - * Generated by: Model - *********************************************************/ - -public class Dialed_impl_ari_1_9_0 implements Dialed, java.io.Serializable { -private static final long serialVersionUID = 1L; -/** No missing signatures from interface */ -} - diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/models/DialplanCEP_impl_ari_1_9_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/models/DialplanCEP_impl_ari_1_9_0.java deleted file mode 100644 index 6ef74822..00000000 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/models/DialplanCEP_impl_ari_1_9_0.java +++ /dev/null @@ -1,59 +0,0 @@ -package ch.loway.oss.ari4java.generated.ari_1_9_0.models; - -// ---------------------------------------------------- -// THIS CLASS WAS GENERATED AUTOMATICALLY -// PLEASE DO NOT EDIT -// Generated on: Tue Dec 19 09:55:49 CET 2017 -// ---------------------------------------------------- - -import ch.loway.oss.ari4java.generated.*; -import com.fasterxml.jackson.databind.annotation.JsonDeserialize; -import java.util.Date; -import java.util.List; -import java.util.Map; - -/********************************************************** - * Dialplan location (context/extension/priority) - * - * Defined in file: channels.json - * Generated by: Model - *********************************************************/ - -public class DialplanCEP_impl_ari_1_9_0 implements DialplanCEP, java.io.Serializable { -private static final long serialVersionUID = 1L; - /** Context in the dialplan */ - private String context; - public String getContext() { - return context; - } - - @JsonDeserialize( as=String.class ) - public void setContext(String val ) { - context = val; - } - - /** Extension in the dialplan */ - private String exten; - public String getExten() { - return exten; - } - - @JsonDeserialize( as=String.class ) - public void setExten(String val ) { - exten = val; - } - - /** Priority in the dialplan */ - private long priority; - public long getPriority() { - return priority; - } - - @JsonDeserialize( as=long.class ) - public void setPriority(long val ) { - priority = val; - } - -/** No missing signatures from interface */ -} - diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/models/EndpointStateChange_impl_ari_1_9_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/models/EndpointStateChange_impl_ari_1_9_0.java deleted file mode 100644 index 2997aa7f..00000000 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/models/EndpointStateChange_impl_ari_1_9_0.java +++ /dev/null @@ -1,37 +0,0 @@ -package ch.loway.oss.ari4java.generated.ari_1_9_0.models; - -// ---------------------------------------------------- -// THIS CLASS WAS GENERATED AUTOMATICALLY -// PLEASE DO NOT EDIT -// Generated on: Tue Dec 19 09:55:49 CET 2017 -// ---------------------------------------------------- - -import ch.loway.oss.ari4java.generated.*; -import com.fasterxml.jackson.databind.annotation.JsonDeserialize; -import java.util.Date; -import java.util.List; -import java.util.Map; - -/********************************************************** - * Endpoint state changed. - * - * Defined in file: events.json - * Generated by: Model - *********************************************************/ - -public class EndpointStateChange_impl_ari_1_9_0 extends Event_impl_ari_1_9_0 implements EndpointStateChange, java.io.Serializable { -private static final long serialVersionUID = 1L; - /** */ - private Endpoint endpoint; - public Endpoint getEndpoint() { - return endpoint; - } - - @JsonDeserialize( as=Endpoint_impl_ari_1_9_0.class ) - public void setEndpoint(Endpoint val ) { - endpoint = val; - } - -/** No missing signatures from interface */ -} - diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/models/Endpoint_impl_ari_1_9_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/models/Endpoint_impl_ari_1_9_0.java deleted file mode 100644 index d1f1a434..00000000 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/models/Endpoint_impl_ari_1_9_0.java +++ /dev/null @@ -1,72 +0,0 @@ -package ch.loway.oss.ari4java.generated.ari_1_9_0.models; - -// ---------------------------------------------------- -// THIS CLASS WAS GENERATED AUTOMATICALLY -// PLEASE DO NOT EDIT -// Generated on: Tue Dec 19 09:55:49 CET 2017 -// ---------------------------------------------------- - -import ch.loway.oss.ari4java.generated.*; -import com.fasterxml.jackson.databind.annotation.JsonDeserialize; -import java.util.Date; -import java.util.List; -import java.util.Map; - -/********************************************************** - * An external device that may offer/accept calls to/from Asterisk. - * - * Unlike most resources, which have a single unique identifier, an endpoint is uniquely identified by the technology/resource pair. - * - * Defined in file: endpoints.json - * Generated by: Model - *********************************************************/ - -public class Endpoint_impl_ari_1_9_0 implements Endpoint, java.io.Serializable { -private static final long serialVersionUID = 1L; - /** Id's of channels associated with this endpoint */ - private List channel_ids; - public List getChannel_ids() { - return channel_ids; - } - - @JsonDeserialize( contentAs=String.class ) - public void setChannel_ids(List val ) { - channel_ids = val; - } - - /** Identifier of the endpoint, specific to the given technology. */ - private String resource; - public String getResource() { - return resource; - } - - @JsonDeserialize( as=String.class ) - public void setResource(String val ) { - resource = val; - } - - /** Endpoint's state */ - private String state; - public String getState() { - return state; - } - - @JsonDeserialize( as=String.class ) - public void setState(String val ) { - state = val; - } - - /** Technology of the endpoint */ - private String technology; - public String getTechnology() { - return technology; - } - - @JsonDeserialize( as=String.class ) - public void setTechnology(String val ) { - technology = val; - } - -/** No missing signatures from interface */ -} - diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/models/Event_impl_ari_1_9_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/models/Event_impl_ari_1_9_0.java deleted file mode 100644 index 5471f815..00000000 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/models/Event_impl_ari_1_9_0.java +++ /dev/null @@ -1,48 +0,0 @@ -package ch.loway.oss.ari4java.generated.ari_1_9_0.models; - -// ---------------------------------------------------- -// THIS CLASS WAS GENERATED AUTOMATICALLY -// PLEASE DO NOT EDIT -// Generated on: Tue Dec 19 09:55:49 CET 2017 -// ---------------------------------------------------- - -import ch.loway.oss.ari4java.generated.*; -import com.fasterxml.jackson.databind.annotation.JsonDeserialize; -import java.util.Date; -import java.util.List; -import java.util.Map; - -/********************************************************** - * Base type for asynchronous events from Asterisk. - * - * Defined in file: events.json - * Generated by: Model - *********************************************************/ - -public class Event_impl_ari_1_9_0 extends Message_impl_ari_1_9_0 implements Event, java.io.Serializable { -private static final long serialVersionUID = 1L; - /** Name of the application receiving the event. */ - private String application; - public String getApplication() { - return application; - } - - @JsonDeserialize( as=String.class ) - public void setApplication(String val ) { - application = val; - } - - /** Time at which this event was created. */ - private Date timestamp; - public Date getTimestamp() { - return timestamp; - } - - @JsonDeserialize( as=Date.class ) - public void setTimestamp(Date val ) { - timestamp = val; - } - -/** No missing signatures from interface */ -} - diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/models/FormatLangPair_impl_ari_1_9_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/models/FormatLangPair_impl_ari_1_9_0.java deleted file mode 100644 index e6f1d2f1..00000000 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/models/FormatLangPair_impl_ari_1_9_0.java +++ /dev/null @@ -1,48 +0,0 @@ -package ch.loway.oss.ari4java.generated.ari_1_9_0.models; - -// ---------------------------------------------------- -// THIS CLASS WAS GENERATED AUTOMATICALLY -// PLEASE DO NOT EDIT -// Generated on: Tue Dec 19 09:55:49 CET 2017 -// ---------------------------------------------------- - -import ch.loway.oss.ari4java.generated.*; -import com.fasterxml.jackson.databind.annotation.JsonDeserialize; -import java.util.Date; -import java.util.List; -import java.util.Map; - -/********************************************************** - * Identifies the format and language of a sound file - * - * Defined in file: sounds.json - * Generated by: Model - *********************************************************/ - -public class FormatLangPair_impl_ari_1_9_0 implements FormatLangPair, java.io.Serializable { -private static final long serialVersionUID = 1L; - /** */ - private String format; - public String getFormat() { - return format; - } - - @JsonDeserialize( as=String.class ) - public void setFormat(String val ) { - format = val; - } - - /** */ - private String language; - public String getLanguage() { - return language; - } - - @JsonDeserialize( as=String.class ) - public void setLanguage(String val ) { - language = val; - } - -/** No missing signatures from interface */ -} - diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/models/LiveRecording_impl_ari_1_9_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/models/LiveRecording_impl_ari_1_9_0.java deleted file mode 100644 index f93fce23..00000000 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/models/LiveRecording_impl_ari_1_9_0.java +++ /dev/null @@ -1,114 +0,0 @@ -package ch.loway.oss.ari4java.generated.ari_1_9_0.models; - -// ---------------------------------------------------- -// THIS CLASS WAS GENERATED AUTOMATICALLY -// PLEASE DO NOT EDIT -// Generated on: Tue Dec 19 09:55:49 CET 2017 -// ---------------------------------------------------- - -import ch.loway.oss.ari4java.generated.*; -import com.fasterxml.jackson.databind.annotation.JsonDeserialize; -import java.util.Date; -import java.util.List; -import java.util.Map; - -/********************************************************** - * A recording that is in progress - * - * Defined in file: recordings.json - * Generated by: Model - *********************************************************/ - -public class LiveRecording_impl_ari_1_9_0 implements LiveRecording, java.io.Serializable { -private static final long serialVersionUID = 1L; - /** Cause for recording failure if failed */ - private String cause; - public String getCause() { - return cause; - } - - @JsonDeserialize( as=String.class ) - public void setCause(String val ) { - cause = val; - } - - /** Duration in seconds of the recording */ - private int duration; - public int getDuration() { - return duration; - } - - @JsonDeserialize( as=int.class ) - public void setDuration(int val ) { - duration = val; - } - - /** Recording format (wav, gsm, etc.) */ - private String format; - public String getFormat() { - return format; - } - - @JsonDeserialize( as=String.class ) - public void setFormat(String val ) { - format = val; - } - - /** Base name for the recording */ - private String name; - public String getName() { - return name; - } - - @JsonDeserialize( as=String.class ) - public void setName(String val ) { - name = val; - } - - /** Duration of silence, in seconds, detected in the recording. This is only available if the recording was initiated with a non-zero maxSilenceSeconds. */ - private int silence_duration; - public int getSilence_duration() { - return silence_duration; - } - - @JsonDeserialize( as=int.class ) - public void setSilence_duration(int val ) { - silence_duration = val; - } - - /** */ - private String state; - public String getState() { - return state; - } - - @JsonDeserialize( as=String.class ) - public void setState(String val ) { - state = val; - } - - /** Duration of talking, in seconds, detected in the recording. This is only available if the recording was initiated with a non-zero maxSilenceSeconds. */ - private int talking_duration; - public int getTalking_duration() { - return talking_duration; - } - - @JsonDeserialize( as=int.class ) - public void setTalking_duration(int val ) { - talking_duration = val; - } - - /** URI for the channel or bridge being recorded */ - private String target_uri; - public String getTarget_uri() { - return target_uri; - } - - @JsonDeserialize( as=String.class ) - public void setTarget_uri(String val ) { - target_uri = val; - } - -/** No missing signatures from interface */ -} - diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/models/LogChannel_impl_ari_1_9_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/models/LogChannel_impl_ari_1_9_0.java deleted file mode 100644 index 9bb4f62a..00000000 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/models/LogChannel_impl_ari_1_9_0.java +++ /dev/null @@ -1,70 +0,0 @@ -package ch.loway.oss.ari4java.generated.ari_1_9_0.models; - -// ---------------------------------------------------- -// THIS CLASS WAS GENERATED AUTOMATICALLY -// PLEASE DO NOT EDIT -// Generated on: Tue Dec 19 09:55:49 CET 2017 -// ---------------------------------------------------- - -import ch.loway.oss.ari4java.generated.*; -import com.fasterxml.jackson.databind.annotation.JsonDeserialize; -import java.util.Date; -import java.util.List; -import java.util.Map; - -/********************************************************** - * Details of an Asterisk log channel - * - * Defined in file: asterisk.json - * Generated by: Model - *********************************************************/ - -public class LogChannel_impl_ari_1_9_0 implements LogChannel, java.io.Serializable { -private static final long serialVersionUID = 1L; - /** The log channel path */ - private String channel; - public String getChannel() { - return channel; - } - - @JsonDeserialize( as=String.class ) - public void setChannel(String val ) { - channel = val; - } - - /** The various log levels */ - private String configuration; - public String getConfiguration() { - return configuration; - } - - @JsonDeserialize( as=String.class ) - public void setConfiguration(String val ) { - configuration = val; - } - - /** Whether or not a log type is enabled */ - private String status; - public String getStatus() { - return status; - } - - @JsonDeserialize( as=String.class ) - public void setStatus(String val ) { - status = val; - } - - /** Types of logs for the log channel */ - private String type; - public String getType() { - return type; - } - - @JsonDeserialize( as=String.class ) - public void setType(String val ) { - type = val; - } - -/** No missing signatures from interface */ -} - diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/models/Message_impl_ari_1_9_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/models/Message_impl_ari_1_9_0.java deleted file mode 100644 index 3d29c107..00000000 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/models/Message_impl_ari_1_9_0.java +++ /dev/null @@ -1,99 +0,0 @@ -package ch.loway.oss.ari4java.generated.ari_1_9_0.models; - -// ---------------------------------------------------- -// THIS CLASS WAS GENERATED AUTOMATICALLY -// PLEASE DO NOT EDIT -// Generated on: Tue Dec 19 09:55:49 CET 2017 -// ---------------------------------------------------- - -import ch.loway.oss.ari4java.generated.*; -import com.fasterxml.jackson.annotation.JsonSubTypes; -import com.fasterxml.jackson.annotation.JsonSubTypes.Type; -import com.fasterxml.jackson.annotation.JsonTypeInfo; -import com.fasterxml.jackson.databind.annotation.JsonDeserialize; -import java.util.Date; -import java.util.List; -import java.util.Map; - -/********************************************************** - * Base type for errors and events - * - * Defined in file: events.json - * Generated by: Model - *********************************************************/ - @JsonTypeInfo( use = JsonTypeInfo.Id.NAME, include = JsonTypeInfo.As.PROPERTY, property = "type") - @JsonSubTypes({ @Type(value = MissingParams_impl_ari_1_9_0.class, name = "MissingParams") -, @Type(value = Event_impl_ari_1_9_0.class, name = "Event") -, @Type(value = ContactInfo_impl_ari_1_9_0.class, name = "ContactInfo") -, @Type(value = Peer_impl_ari_1_9_0.class, name = "Peer") -, @Type(value = DeviceStateChanged_impl_ari_1_9_0.class, name = "DeviceStateChanged") -, @Type(value = PlaybackStarted_impl_ari_1_9_0.class, name = "PlaybackStarted") -, @Type(value = PlaybackFinished_impl_ari_1_9_0.class, name = "PlaybackFinished") -, @Type(value = RecordingStarted_impl_ari_1_9_0.class, name = "RecordingStarted") -, @Type(value = RecordingFinished_impl_ari_1_9_0.class, name = "RecordingFinished") -, @Type(value = RecordingFailed_impl_ari_1_9_0.class, name = "RecordingFailed") -, @Type(value = ApplicationReplaced_impl_ari_1_9_0.class, name = "ApplicationReplaced") -, @Type(value = BridgeCreated_impl_ari_1_9_0.class, name = "BridgeCreated") -, @Type(value = BridgeDestroyed_impl_ari_1_9_0.class, name = "BridgeDestroyed") -, @Type(value = BridgeMerged_impl_ari_1_9_0.class, name = "BridgeMerged") -, @Type(value = BridgeBlindTransfer_impl_ari_1_9_0.class, name = "BridgeBlindTransfer") -, @Type(value = BridgeAttendedTransfer_impl_ari_1_9_0.class, name = "BridgeAttendedTransfer") -, @Type(value = ChannelCreated_impl_ari_1_9_0.class, name = "ChannelCreated") -, @Type(value = ChannelDestroyed_impl_ari_1_9_0.class, name = "ChannelDestroyed") -, @Type(value = ChannelEnteredBridge_impl_ari_1_9_0.class, name = "ChannelEnteredBridge") -, @Type(value = ChannelLeftBridge_impl_ari_1_9_0.class, name = "ChannelLeftBridge") -, @Type(value = ChannelStateChange_impl_ari_1_9_0.class, name = "ChannelStateChange") -, @Type(value = ChannelDtmfReceived_impl_ari_1_9_0.class, name = "ChannelDtmfReceived") -, @Type(value = ChannelDialplan_impl_ari_1_9_0.class, name = "ChannelDialplan") -, @Type(value = ChannelCallerId_impl_ari_1_9_0.class, name = "ChannelCallerId") -, @Type(value = ChannelUserevent_impl_ari_1_9_0.class, name = "ChannelUserevent") -, @Type(value = ChannelHangupRequest_impl_ari_1_9_0.class, name = "ChannelHangupRequest") -, @Type(value = ChannelVarset_impl_ari_1_9_0.class, name = "ChannelVarset") -, @Type(value = ChannelHold_impl_ari_1_9_0.class, name = "ChannelHold") -, @Type(value = ChannelUnhold_impl_ari_1_9_0.class, name = "ChannelUnhold") -, @Type(value = ChannelTalkingStarted_impl_ari_1_9_0.class, name = "ChannelTalkingStarted") -, @Type(value = ChannelTalkingFinished_impl_ari_1_9_0.class, name = "ChannelTalkingFinished") -, @Type(value = ContactStatusChange_impl_ari_1_9_0.class, name = "ContactStatusChange") -, @Type(value = PeerStatusChange_impl_ari_1_9_0.class, name = "PeerStatusChange") -, @Type(value = EndpointStateChange_impl_ari_1_9_0.class, name = "EndpointStateChange") -, @Type(value = Dial_impl_ari_1_9_0.class, name = "Dial") -, @Type(value = StasisEnd_impl_ari_1_9_0.class, name = "StasisEnd") -, @Type(value = StasisStart_impl_ari_1_9_0.class, name = "StasisStart") -, @Type(value = TextMessageReceived_impl_ari_1_9_0.class, name = "TextMessageReceived") -, @Type(value = ChannelConnectedLine_impl_ari_1_9_0.class, name = "ChannelConnectedLine") - }) - - -public class Message_impl_ari_1_9_0 implements Message, java.io.Serializable { -private static final long serialVersionUID = 1L; - /** Indicates the type of this message. */ - private String type; - public String getType() { - return type; - } - - @JsonDeserialize( as=String.class ) - public void setType(String val ) { - type = val; - } - -/********************************************************** - * The unique ID for the Asterisk instance that raised this event. - * - * @since ari_2_0_0 - *********************************************************/ - public void setAsterisk_id(String val ){ - throw new UnsupportedOperationException("Method availble from ..."); -}; - -/********************************************************** - * The unique ID for the Asterisk instance that raised this event. - * - * @since ari_2_0_0 - *********************************************************/ - public String getAsterisk_id(){ - throw new UnsupportedOperationException("Method availble from ..."); -}; - -} - diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/models/MissingParams_impl_ari_1_9_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/models/MissingParams_impl_ari_1_9_0.java deleted file mode 100644 index 310f4ed6..00000000 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/models/MissingParams_impl_ari_1_9_0.java +++ /dev/null @@ -1,37 +0,0 @@ -package ch.loway.oss.ari4java.generated.ari_1_9_0.models; - -// ---------------------------------------------------- -// THIS CLASS WAS GENERATED AUTOMATICALLY -// PLEASE DO NOT EDIT -// Generated on: Tue Dec 19 09:55:49 CET 2017 -// ---------------------------------------------------- - -import ch.loway.oss.ari4java.generated.*; -import com.fasterxml.jackson.databind.annotation.JsonDeserialize; -import java.util.Date; -import java.util.List; -import java.util.Map; - -/********************************************************** - * Error event sent when required params are missing. - * - * Defined in file: events.json - * Generated by: Model - *********************************************************/ - -public class MissingParams_impl_ari_1_9_0 extends Message_impl_ari_1_9_0 implements MissingParams, java.io.Serializable { -private static final long serialVersionUID = 1L; - /** A list of the missing parameters */ - private List params; - public List getParams() { - return params; - } - - @JsonDeserialize( contentAs=String.class ) - public void setParams(List val ) { - params = val; - } - -/** No missing signatures from interface */ -} - diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/models/Module_impl_ari_1_9_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/models/Module_impl_ari_1_9_0.java deleted file mode 100644 index bb563037..00000000 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/models/Module_impl_ari_1_9_0.java +++ /dev/null @@ -1,81 +0,0 @@ -package ch.loway.oss.ari4java.generated.ari_1_9_0.models; - -// ---------------------------------------------------- -// THIS CLASS WAS GENERATED AUTOMATICALLY -// PLEASE DO NOT EDIT -// Generated on: Tue Dec 19 09:55:49 CET 2017 -// ---------------------------------------------------- - -import ch.loway.oss.ari4java.generated.*; -import com.fasterxml.jackson.databind.annotation.JsonDeserialize; -import java.util.Date; -import java.util.List; -import java.util.Map; - -/********************************************************** - * Details of an Asterisk module - * - * Defined in file: asterisk.json - * Generated by: Model - *********************************************************/ - -public class Module_impl_ari_1_9_0 implements Module, java.io.Serializable { -private static final long serialVersionUID = 1L; - /** The description of this module */ - private String description; - public String getDescription() { - return description; - } - - @JsonDeserialize( as=String.class ) - public void setDescription(String val ) { - description = val; - } - - /** The name of this module */ - private String name; - public String getName() { - return name; - } - - @JsonDeserialize( as=String.class ) - public void setName(String val ) { - name = val; - } - - /** The running status of this module */ - private String status; - public String getStatus() { - return status; - } - - @JsonDeserialize( as=String.class ) - public void setStatus(String val ) { - status = val; - } - - /** The support state of this module */ - private String support_level; - public String getSupport_level() { - return support_level; - } - - @JsonDeserialize( as=String.class ) - public void setSupport_level(String val ) { - support_level = val; - } - - /** The number of times this module is being used */ - private int use_count; - public int getUse_count() { - return use_count; - } - - @JsonDeserialize( as=int.class ) - public void setUse_count(int val ) { - use_count = val; - } - -/** No missing signatures from interface */ -} - diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/models/PeerStatusChange_impl_ari_1_9_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/models/PeerStatusChange_impl_ari_1_9_0.java deleted file mode 100644 index 67575a1a..00000000 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/models/PeerStatusChange_impl_ari_1_9_0.java +++ /dev/null @@ -1,48 +0,0 @@ -package ch.loway.oss.ari4java.generated.ari_1_9_0.models; - -// ---------------------------------------------------- -// THIS CLASS WAS GENERATED AUTOMATICALLY -// PLEASE DO NOT EDIT -// Generated on: Tue Dec 19 09:55:49 CET 2017 -// ---------------------------------------------------- - -import ch.loway.oss.ari4java.generated.*; -import com.fasterxml.jackson.databind.annotation.JsonDeserialize; -import java.util.Date; -import java.util.List; -import java.util.Map; - -/********************************************************** - * The state of a peer associated with an endpoint has changed. - * - * Defined in file: events.json - * Generated by: Model - *********************************************************/ - -public class PeerStatusChange_impl_ari_1_9_0 extends Event_impl_ari_1_9_0 implements PeerStatusChange, java.io.Serializable { -private static final long serialVersionUID = 1L; - /** */ - private Endpoint endpoint; - public Endpoint getEndpoint() { - return endpoint; - } - - @JsonDeserialize( as=Endpoint_impl_ari_1_9_0.class ) - public void setEndpoint(Endpoint val ) { - endpoint = val; - } - - /** */ - private Peer peer; - public Peer getPeer() { - return peer; - } - - @JsonDeserialize( as=Peer_impl_ari_1_9_0.class ) - public void setPeer(Peer val ) { - peer = val; - } - -/** No missing signatures from interface */ -} - diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/models/Peer_impl_ari_1_9_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/models/Peer_impl_ari_1_9_0.java deleted file mode 100644 index 960a2174..00000000 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/models/Peer_impl_ari_1_9_0.java +++ /dev/null @@ -1,81 +0,0 @@ -package ch.loway.oss.ari4java.generated.ari_1_9_0.models; - -// ---------------------------------------------------- -// THIS CLASS WAS GENERATED AUTOMATICALLY -// PLEASE DO NOT EDIT -// Generated on: Tue Dec 19 09:55:49 CET 2017 -// ---------------------------------------------------- - -import ch.loway.oss.ari4java.generated.*; -import com.fasterxml.jackson.databind.annotation.JsonDeserialize; -import java.util.Date; -import java.util.List; -import java.util.Map; - -/********************************************************** - * Detailed information about a remote peer that communicates with Asterisk. - * - * Defined in file: events.json - * Generated by: Model - *********************************************************/ - -public class Peer_impl_ari_1_9_0 implements Peer, java.io.Serializable { -private static final long serialVersionUID = 1L; - /** The IP address of the peer. */ - private String address; - public String getAddress() { - return address; - } - - @JsonDeserialize( as=String.class ) - public void setAddress(String val ) { - address = val; - } - - /** An optional reason associated with the change in peer_status. */ - private String cause; - public String getCause() { - return cause; - } - - @JsonDeserialize( as=String.class ) - public void setCause(String val ) { - cause = val; - } - - /** The current state of the peer. Note that the values of the status are dependent on the underlying peer technology. */ - private String peer_status; - public String getPeer_status() { - return peer_status; - } - - @JsonDeserialize( as=String.class ) - public void setPeer_status(String val ) { - peer_status = val; - } - - /** The port of the peer. */ - private String port; - public String getPort() { - return port; - } - - @JsonDeserialize( as=String.class ) - public void setPort(String val ) { - port = val; - } - - /** The last known time the peer was contacted. */ - private String time; - public String getTime() { - return time; - } - - @JsonDeserialize( as=String.class ) - public void setTime(String val ) { - time = val; - } - -/** No missing signatures from interface */ -} - diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/models/PlaybackFinished_impl_ari_1_9_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/models/PlaybackFinished_impl_ari_1_9_0.java deleted file mode 100644 index d5783371..00000000 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/models/PlaybackFinished_impl_ari_1_9_0.java +++ /dev/null @@ -1,37 +0,0 @@ -package ch.loway.oss.ari4java.generated.ari_1_9_0.models; - -// ---------------------------------------------------- -// THIS CLASS WAS GENERATED AUTOMATICALLY -// PLEASE DO NOT EDIT -// Generated on: Tue Dec 19 09:55:49 CET 2017 -// ---------------------------------------------------- - -import ch.loway.oss.ari4java.generated.*; -import com.fasterxml.jackson.databind.annotation.JsonDeserialize; -import java.util.Date; -import java.util.List; -import java.util.Map; - -/********************************************************** - * Event showing the completion of a media playback operation. - * - * Defined in file: events.json - * Generated by: Model - *********************************************************/ - -public class PlaybackFinished_impl_ari_1_9_0 extends Event_impl_ari_1_9_0 implements PlaybackFinished, java.io.Serializable { -private static final long serialVersionUID = 1L; - /** Playback control object */ - private Playback playback; - public Playback getPlayback() { - return playback; - } - - @JsonDeserialize( as=Playback_impl_ari_1_9_0.class ) - public void setPlayback(Playback val ) { - playback = val; - } - -/** No missing signatures from interface */ -} - diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/models/PlaybackStarted_impl_ari_1_9_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/models/PlaybackStarted_impl_ari_1_9_0.java deleted file mode 100644 index 761e5213..00000000 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/models/PlaybackStarted_impl_ari_1_9_0.java +++ /dev/null @@ -1,37 +0,0 @@ -package ch.loway.oss.ari4java.generated.ari_1_9_0.models; - -// ---------------------------------------------------- -// THIS CLASS WAS GENERATED AUTOMATICALLY -// PLEASE DO NOT EDIT -// Generated on: Tue Dec 19 09:55:49 CET 2017 -// ---------------------------------------------------- - -import ch.loway.oss.ari4java.generated.*; -import com.fasterxml.jackson.databind.annotation.JsonDeserialize; -import java.util.Date; -import java.util.List; -import java.util.Map; - -/********************************************************** - * Event showing the start of a media playback operation. - * - * Defined in file: events.json - * Generated by: Model - *********************************************************/ - -public class PlaybackStarted_impl_ari_1_9_0 extends Event_impl_ari_1_9_0 implements PlaybackStarted, java.io.Serializable { -private static final long serialVersionUID = 1L; - /** Playback control object */ - private Playback playback; - public Playback getPlayback() { - return playback; - } - - @JsonDeserialize( as=Playback_impl_ari_1_9_0.class ) - public void setPlayback(Playback val ) { - playback = val; - } - -/** No missing signatures from interface */ -} - diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/models/Playback_impl_ari_1_9_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/models/Playback_impl_ari_1_9_0.java deleted file mode 100644 index d6fe008c..00000000 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/models/Playback_impl_ari_1_9_0.java +++ /dev/null @@ -1,98 +0,0 @@ -package ch.loway.oss.ari4java.generated.ari_1_9_0.models; - -// ---------------------------------------------------- -// THIS CLASS WAS GENERATED AUTOMATICALLY -// PLEASE DO NOT EDIT -// Generated on: Tue Dec 19 09:55:49 CET 2017 -// ---------------------------------------------------- - -import ch.loway.oss.ari4java.generated.*; -import com.fasterxml.jackson.databind.annotation.JsonDeserialize; -import java.util.Date; -import java.util.List; -import java.util.Map; - -/********************************************************** - * Object representing the playback of media to a channel - * - * Defined in file: playbacks.json - * Generated by: Model - *********************************************************/ - -public class Playback_impl_ari_1_9_0 implements Playback, java.io.Serializable { -private static final long serialVersionUID = 1L; - /** ID for this playback operation */ - private String id; - public String getId() { - return id; - } - - @JsonDeserialize( as=String.class ) - public void setId(String val ) { - id = val; - } - - /** For media types that support multiple languages, the language requested for playback. */ - private String language; - public String getLanguage() { - return language; - } - - @JsonDeserialize( as=String.class ) - public void setLanguage(String val ) { - language = val; - } - - /** URI for the media to play back. */ - private String media_uri; - public String getMedia_uri() { - return media_uri; - } - - @JsonDeserialize( as=String.class ) - public void setMedia_uri(String val ) { - media_uri = val; - } - - /** Current state of the playback operation. */ - private String state; - public String getState() { - return state; - } - - @JsonDeserialize( as=String.class ) - public void setState(String val ) { - state = val; - } - - /** URI for the channel or bridge to play the media on */ - private String target_uri; - public String getTarget_uri() { - return target_uri; - } - - @JsonDeserialize( as=String.class ) - public void setTarget_uri(String val ) { - target_uri = val; - } - -/********************************************************** - * If a list of URIs is being played, the next media URI to be played back. - * - * @since ari_1_10_0 - *********************************************************/ - public String getNext_media_uri(){ - throw new UnsupportedOperationException("Method availble from ..."); -}; - -/********************************************************** - * If a list of URIs is being played, the next media URI to be played back. - * - * @since ari_1_10_0 - *********************************************************/ - public void setNext_media_uri(String val ){ - throw new UnsupportedOperationException("Method availble from ..."); -}; - -} - diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/models/RecordingFailed_impl_ari_1_9_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/models/RecordingFailed_impl_ari_1_9_0.java deleted file mode 100644 index 69f15141..00000000 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/models/RecordingFailed_impl_ari_1_9_0.java +++ /dev/null @@ -1,37 +0,0 @@ -package ch.loway.oss.ari4java.generated.ari_1_9_0.models; - -// ---------------------------------------------------- -// THIS CLASS WAS GENERATED AUTOMATICALLY -// PLEASE DO NOT EDIT -// Generated on: Tue Dec 19 09:55:49 CET 2017 -// ---------------------------------------------------- - -import ch.loway.oss.ari4java.generated.*; -import com.fasterxml.jackson.databind.annotation.JsonDeserialize; -import java.util.Date; -import java.util.List; -import java.util.Map; - -/********************************************************** - * Event showing failure of a recording operation. - * - * Defined in file: events.json - * Generated by: Model - *********************************************************/ - -public class RecordingFailed_impl_ari_1_9_0 extends Event_impl_ari_1_9_0 implements RecordingFailed, java.io.Serializable { -private static final long serialVersionUID = 1L; - /** Recording control object */ - private LiveRecording recording; - public LiveRecording getRecording() { - return recording; - } - - @JsonDeserialize( as=LiveRecording_impl_ari_1_9_0.class ) - public void setRecording(LiveRecording val ) { - recording = val; - } - -/** No missing signatures from interface */ -} - diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/models/RecordingFinished_impl_ari_1_9_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/models/RecordingFinished_impl_ari_1_9_0.java deleted file mode 100644 index 2eec8605..00000000 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/models/RecordingFinished_impl_ari_1_9_0.java +++ /dev/null @@ -1,37 +0,0 @@ -package ch.loway.oss.ari4java.generated.ari_1_9_0.models; - -// ---------------------------------------------------- -// THIS CLASS WAS GENERATED AUTOMATICALLY -// PLEASE DO NOT EDIT -// Generated on: Tue Dec 19 09:55:49 CET 2017 -// ---------------------------------------------------- - -import ch.loway.oss.ari4java.generated.*; -import com.fasterxml.jackson.databind.annotation.JsonDeserialize; -import java.util.Date; -import java.util.List; -import java.util.Map; - -/********************************************************** - * Event showing the completion of a recording operation. - * - * Defined in file: events.json - * Generated by: Model - *********************************************************/ - -public class RecordingFinished_impl_ari_1_9_0 extends Event_impl_ari_1_9_0 implements RecordingFinished, java.io.Serializable { -private static final long serialVersionUID = 1L; - /** Recording control object */ - private LiveRecording recording; - public LiveRecording getRecording() { - return recording; - } - - @JsonDeserialize( as=LiveRecording_impl_ari_1_9_0.class ) - public void setRecording(LiveRecording val ) { - recording = val; - } - -/** No missing signatures from interface */ -} - diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/models/RecordingStarted_impl_ari_1_9_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/models/RecordingStarted_impl_ari_1_9_0.java deleted file mode 100644 index 85ff385c..00000000 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/models/RecordingStarted_impl_ari_1_9_0.java +++ /dev/null @@ -1,37 +0,0 @@ -package ch.loway.oss.ari4java.generated.ari_1_9_0.models; - -// ---------------------------------------------------- -// THIS CLASS WAS GENERATED AUTOMATICALLY -// PLEASE DO NOT EDIT -// Generated on: Tue Dec 19 09:55:49 CET 2017 -// ---------------------------------------------------- - -import ch.loway.oss.ari4java.generated.*; -import com.fasterxml.jackson.databind.annotation.JsonDeserialize; -import java.util.Date; -import java.util.List; -import java.util.Map; - -/********************************************************** - * Event showing the start of a recording operation. - * - * Defined in file: events.json - * Generated by: Model - *********************************************************/ - -public class RecordingStarted_impl_ari_1_9_0 extends Event_impl_ari_1_9_0 implements RecordingStarted, java.io.Serializable { -private static final long serialVersionUID = 1L; - /** Recording control object */ - private LiveRecording recording; - public LiveRecording getRecording() { - return recording; - } - - @JsonDeserialize( as=LiveRecording_impl_ari_1_9_0.class ) - public void setRecording(LiveRecording val ) { - recording = val; - } - -/** No missing signatures from interface */ -} - diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/models/SetId_impl_ari_1_9_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/models/SetId_impl_ari_1_9_0.java deleted file mode 100644 index 2f6ac8f9..00000000 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/models/SetId_impl_ari_1_9_0.java +++ /dev/null @@ -1,48 +0,0 @@ -package ch.loway.oss.ari4java.generated.ari_1_9_0.models; - -// ---------------------------------------------------- -// THIS CLASS WAS GENERATED AUTOMATICALLY -// PLEASE DO NOT EDIT -// Generated on: Tue Dec 19 09:55:49 CET 2017 -// ---------------------------------------------------- - -import ch.loway.oss.ari4java.generated.*; -import com.fasterxml.jackson.databind.annotation.JsonDeserialize; -import java.util.Date; -import java.util.List; -import java.util.Map; - -/********************************************************** - * Effective user/group id - * - * Defined in file: asterisk.json - * Generated by: Model - *********************************************************/ - -public class SetId_impl_ari_1_9_0 implements SetId, java.io.Serializable { -private static final long serialVersionUID = 1L; - /** Effective group id. */ - private String group; - public String getGroup() { - return group; - } - - @JsonDeserialize( as=String.class ) - public void setGroup(String val ) { - group = val; - } - - /** Effective user id. */ - private String user; - public String getUser() { - return user; - } - - @JsonDeserialize( as=String.class ) - public void setUser(String val ) { - user = val; - } - -/** No missing signatures from interface */ -} - diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/models/Sound_impl_ari_1_9_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/models/Sound_impl_ari_1_9_0.java deleted file mode 100644 index 5a01105d..00000000 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/models/Sound_impl_ari_1_9_0.java +++ /dev/null @@ -1,59 +0,0 @@ -package ch.loway.oss.ari4java.generated.ari_1_9_0.models; - -// ---------------------------------------------------- -// THIS CLASS WAS GENERATED AUTOMATICALLY -// PLEASE DO NOT EDIT -// Generated on: Tue Dec 19 09:55:49 CET 2017 -// ---------------------------------------------------- - -import ch.loway.oss.ari4java.generated.*; -import com.fasterxml.jackson.databind.annotation.JsonDeserialize; -import java.util.Date; -import java.util.List; -import java.util.Map; - -/********************************************************** - * A media file that may be played back. - * - * Defined in file: sounds.json - * Generated by: Model - *********************************************************/ - -public class Sound_impl_ari_1_9_0 implements Sound, java.io.Serializable { -private static final long serialVersionUID = 1L; - /** The formats and languages in which this sound is available. */ - private List formats; - public List getFormats() { - return formats; - } - - @JsonDeserialize( contentAs=FormatLangPair_impl_ari_1_9_0.class ) - public void setFormats(List val ) { - formats = val; - } - - /** Sound's identifier. */ - private String id; - public String getId() { - return id; - } - - @JsonDeserialize( as=String.class ) - public void setId(String val ) { - id = val; - } - - /** Text description of the sound, usually the words spoken. */ - private String text; - public String getText() { - return text; - } - - @JsonDeserialize( as=String.class ) - public void setText(String val ) { - text = val; - } - -/** No missing signatures from interface */ -} - diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/models/StasisEnd_impl_ari_1_9_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/models/StasisEnd_impl_ari_1_9_0.java deleted file mode 100644 index c03990d2..00000000 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/models/StasisEnd_impl_ari_1_9_0.java +++ /dev/null @@ -1,37 +0,0 @@ -package ch.loway.oss.ari4java.generated.ari_1_9_0.models; - -// ---------------------------------------------------- -// THIS CLASS WAS GENERATED AUTOMATICALLY -// PLEASE DO NOT EDIT -// Generated on: Tue Dec 19 09:55:49 CET 2017 -// ---------------------------------------------------- - -import ch.loway.oss.ari4java.generated.*; -import com.fasterxml.jackson.databind.annotation.JsonDeserialize; -import java.util.Date; -import java.util.List; -import java.util.Map; - -/********************************************************** - * Notification that a channel has left a Stasis application. - * - * Defined in file: events.json - * Generated by: Model - *********************************************************/ - -public class StasisEnd_impl_ari_1_9_0 extends Event_impl_ari_1_9_0 implements StasisEnd, java.io.Serializable { -private static final long serialVersionUID = 1L; - /** */ - private Channel channel; - public Channel getChannel() { - return channel; - } - - @JsonDeserialize( as=Channel_impl_ari_1_9_0.class ) - public void setChannel(Channel val ) { - channel = val; - } - -/** No missing signatures from interface */ -} - diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/models/StasisStart_impl_ari_1_9_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/models/StasisStart_impl_ari_1_9_0.java deleted file mode 100644 index cc5af37e..00000000 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/models/StasisStart_impl_ari_1_9_0.java +++ /dev/null @@ -1,59 +0,0 @@ -package ch.loway.oss.ari4java.generated.ari_1_9_0.models; - -// ---------------------------------------------------- -// THIS CLASS WAS GENERATED AUTOMATICALLY -// PLEASE DO NOT EDIT -// Generated on: Tue Dec 19 09:55:49 CET 2017 -// ---------------------------------------------------- - -import ch.loway.oss.ari4java.generated.*; -import com.fasterxml.jackson.databind.annotation.JsonDeserialize; -import java.util.Date; -import java.util.List; -import java.util.Map; - -/********************************************************** - * Notification that a channel has entered a Stasis application. - * - * Defined in file: events.json - * Generated by: Model - *********************************************************/ - -public class StasisStart_impl_ari_1_9_0 extends Event_impl_ari_1_9_0 implements StasisStart, java.io.Serializable { -private static final long serialVersionUID = 1L; - /** Arguments to the application */ - private List args; - public List getArgs() { - return args; - } - - @JsonDeserialize( contentAs=String.class ) - public void setArgs(List val ) { - args = val; - } - - /** */ - private Channel channel; - public Channel getChannel() { - return channel; - } - - @JsonDeserialize( as=Channel_impl_ari_1_9_0.class ) - public void setChannel(Channel val ) { - channel = val; - } - - /** */ - private Channel replace_channel; - public Channel getReplace_channel() { - return replace_channel; - } - - @JsonDeserialize( as=Channel_impl_ari_1_9_0.class ) - public void setReplace_channel(Channel val ) { - replace_channel = val; - } - -/** No missing signatures from interface */ -} - diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/models/StatusInfo_impl_ari_1_9_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/models/StatusInfo_impl_ari_1_9_0.java deleted file mode 100644 index 977f4971..00000000 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/models/StatusInfo_impl_ari_1_9_0.java +++ /dev/null @@ -1,48 +0,0 @@ -package ch.loway.oss.ari4java.generated.ari_1_9_0.models; - -// ---------------------------------------------------- -// THIS CLASS WAS GENERATED AUTOMATICALLY -// PLEASE DO NOT EDIT -// Generated on: Tue Dec 19 09:55:49 CET 2017 -// ---------------------------------------------------- - -import ch.loway.oss.ari4java.generated.*; -import com.fasterxml.jackson.databind.annotation.JsonDeserialize; -import java.util.Date; -import java.util.List; -import java.util.Map; - -/********************************************************** - * Info about Asterisk status - * - * Defined in file: asterisk.json - * Generated by: Model - *********************************************************/ - -public class StatusInfo_impl_ari_1_9_0 implements StatusInfo, java.io.Serializable { -private static final long serialVersionUID = 1L; - /** Time when Asterisk was last reloaded. */ - private Date last_reload_time; - public Date getLast_reload_time() { - return last_reload_time; - } - - @JsonDeserialize( as=Date.class ) - public void setLast_reload_time(Date val ) { - last_reload_time = val; - } - - /** Time when Asterisk was started. */ - private Date startup_time; - public Date getStartup_time() { - return startup_time; - } - - @JsonDeserialize( as=Date.class ) - public void setStartup_time(Date val ) { - startup_time = val; - } - -/** No missing signatures from interface */ -} - diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/models/StoredRecording_impl_ari_1_9_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/models/StoredRecording_impl_ari_1_9_0.java deleted file mode 100644 index decfe5d8..00000000 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/models/StoredRecording_impl_ari_1_9_0.java +++ /dev/null @@ -1,48 +0,0 @@ -package ch.loway.oss.ari4java.generated.ari_1_9_0.models; - -// ---------------------------------------------------- -// THIS CLASS WAS GENERATED AUTOMATICALLY -// PLEASE DO NOT EDIT -// Generated on: Tue Dec 19 09:55:49 CET 2017 -// ---------------------------------------------------- - -import ch.loway.oss.ari4java.generated.*; -import com.fasterxml.jackson.databind.annotation.JsonDeserialize; -import java.util.Date; -import java.util.List; -import java.util.Map; - -/********************************************************** - * A past recording that may be played back. - * - * Defined in file: recordings.json - * Generated by: Model - *********************************************************/ - -public class StoredRecording_impl_ari_1_9_0 implements StoredRecording, java.io.Serializable { -private static final long serialVersionUID = 1L; - /** */ - private String format; - public String getFormat() { - return format; - } - - @JsonDeserialize( as=String.class ) - public void setFormat(String val ) { - format = val; - } - - /** */ - private String name; - public String getName() { - return name; - } - - @JsonDeserialize( as=String.class ) - public void setName(String val ) { - name = val; - } - -/** No missing signatures from interface */ -} - diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/models/SystemInfo_impl_ari_1_9_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/models/SystemInfo_impl_ari_1_9_0.java deleted file mode 100644 index ec63300e..00000000 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/models/SystemInfo_impl_ari_1_9_0.java +++ /dev/null @@ -1,48 +0,0 @@ -package ch.loway.oss.ari4java.generated.ari_1_9_0.models; - -// ---------------------------------------------------- -// THIS CLASS WAS GENERATED AUTOMATICALLY -// PLEASE DO NOT EDIT -// Generated on: Tue Dec 19 09:55:49 CET 2017 -// ---------------------------------------------------- - -import ch.loway.oss.ari4java.generated.*; -import com.fasterxml.jackson.databind.annotation.JsonDeserialize; -import java.util.Date; -import java.util.List; -import java.util.Map; - -/********************************************************** - * Info about Asterisk - * - * Defined in file: asterisk.json - * Generated by: Model - *********************************************************/ - -public class SystemInfo_impl_ari_1_9_0 implements SystemInfo, java.io.Serializable { -private static final long serialVersionUID = 1L; - /** */ - private String entity_id; - public String getEntity_id() { - return entity_id; - } - - @JsonDeserialize( as=String.class ) - public void setEntity_id(String val ) { - entity_id = val; - } - - /** Asterisk version. */ - private String version; - public String getVersion() { - return version; - } - - @JsonDeserialize( as=String.class ) - public void setVersion(String val ) { - version = val; - } - -/** No missing signatures from interface */ -} - diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/models/TextMessageReceived_impl_ari_1_9_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/models/TextMessageReceived_impl_ari_1_9_0.java deleted file mode 100644 index 02f104e2..00000000 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/models/TextMessageReceived_impl_ari_1_9_0.java +++ /dev/null @@ -1,48 +0,0 @@ -package ch.loway.oss.ari4java.generated.ari_1_9_0.models; - -// ---------------------------------------------------- -// THIS CLASS WAS GENERATED AUTOMATICALLY -// PLEASE DO NOT EDIT -// Generated on: Tue Dec 19 09:55:49 CET 2017 -// ---------------------------------------------------- - -import ch.loway.oss.ari4java.generated.*; -import com.fasterxml.jackson.databind.annotation.JsonDeserialize; -import java.util.Date; -import java.util.List; -import java.util.Map; - -/********************************************************** - * A text message was received from an endpoint. - * - * Defined in file: events.json - * Generated by: Model - *********************************************************/ - -public class TextMessageReceived_impl_ari_1_9_0 extends Event_impl_ari_1_9_0 implements TextMessageReceived, java.io.Serializable { -private static final long serialVersionUID = 1L; - /** */ - private Endpoint endpoint; - public Endpoint getEndpoint() { - return endpoint; - } - - @JsonDeserialize( as=Endpoint_impl_ari_1_9_0.class ) - public void setEndpoint(Endpoint val ) { - endpoint = val; - } - - /** */ - private TextMessage message; - public TextMessage getMessage() { - return message; - } - - @JsonDeserialize( as=TextMessage_impl_ari_1_9_0.class ) - public void setMessage(TextMessage val ) { - message = val; - } - -/** No missing signatures from interface */ -} - diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/models/TextMessageVariable_impl_ari_1_9_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/models/TextMessageVariable_impl_ari_1_9_0.java deleted file mode 100644 index d1402059..00000000 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/models/TextMessageVariable_impl_ari_1_9_0.java +++ /dev/null @@ -1,48 +0,0 @@ -package ch.loway.oss.ari4java.generated.ari_1_9_0.models; - -// ---------------------------------------------------- -// THIS CLASS WAS GENERATED AUTOMATICALLY -// PLEASE DO NOT EDIT -// Generated on: Tue Dec 19 09:55:49 CET 2017 -// ---------------------------------------------------- - -import ch.loway.oss.ari4java.generated.*; -import com.fasterxml.jackson.databind.annotation.JsonDeserialize; -import java.util.Date; -import java.util.List; -import java.util.Map; - -/********************************************************** - * A key/value pair variable in a text message. - * - * Defined in file: endpoints.json - * Generated by: Model - *********************************************************/ - -public class TextMessageVariable_impl_ari_1_9_0 implements TextMessageVariable, java.io.Serializable { -private static final long serialVersionUID = 1L; - /** A unique key identifying the variable. */ - private String key; - public String getKey() { - return key; - } - - @JsonDeserialize( as=String.class ) - public void setKey(String val ) { - key = val; - } - - /** The value of the variable. */ - private String value; - public String getValue() { - return value; - } - - @JsonDeserialize( as=String.class ) - public void setValue(String val ) { - value = val; - } - -/** No missing signatures from interface */ -} - diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/models/TextMessage_impl_ari_1_9_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/models/TextMessage_impl_ari_1_9_0.java deleted file mode 100644 index ba7a44b7..00000000 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/models/TextMessage_impl_ari_1_9_0.java +++ /dev/null @@ -1,70 +0,0 @@ -package ch.loway.oss.ari4java.generated.ari_1_9_0.models; - -// ---------------------------------------------------- -// THIS CLASS WAS GENERATED AUTOMATICALLY -// PLEASE DO NOT EDIT -// Generated on: Tue Dec 19 09:55:49 CET 2017 -// ---------------------------------------------------- - -import ch.loway.oss.ari4java.generated.*; -import com.fasterxml.jackson.databind.annotation.JsonDeserialize; -import java.util.Date; -import java.util.List; -import java.util.Map; - -/********************************************************** - * A text message. - * - * Defined in file: endpoints.json - * Generated by: Model - *********************************************************/ - -public class TextMessage_impl_ari_1_9_0 implements TextMessage, java.io.Serializable { -private static final long serialVersionUID = 1L; - /** The text of the message. */ - private String body; - public String getBody() { - return body; - } - - @JsonDeserialize( as=String.class ) - public void setBody(String val ) { - body = val; - } - - /** A technology specific URI specifying the source of the message. For sip and pjsip technologies, any SIP URI can be specified. For xmpp, the URI must correspond to the client connection being used to send the message. */ - private String from; - public String getFrom() { - return from; - } - - @JsonDeserialize( as=String.class ) - public void setFrom(String val ) { - from = val; - } - - /** A technology specific URI specifying the destination of the message. Valid technologies include sip, pjsip, and xmp. The destination of a message should be an endpoint. */ - private String to; - public String getTo() { - return to; - } - - @JsonDeserialize( as=String.class ) - public void setTo(String val ) { - to = val; - } - - /** Technology specific key/value pairs associated with the message. */ - private List variables; - public List getVariables() { - return variables; - } - - @JsonDeserialize( contentAs=TextMessageVariable_impl_ari_1_9_0.class ) - public void setVariables(List val ) { - variables = val; - } - -/** No missing signatures from interface */ -} - diff --git a/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/models/Variable_impl_ari_1_9_0.java b/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/models/Variable_impl_ari_1_9_0.java deleted file mode 100644 index 09730bfa..00000000 --- a/classes/ch/loway/oss/ari4java/generated/ari_1_9_0/models/Variable_impl_ari_1_9_0.java +++ /dev/null @@ -1,37 +0,0 @@ -package ch.loway.oss.ari4java.generated.ari_1_9_0.models; - -// ---------------------------------------------------- -// THIS CLASS WAS GENERATED AUTOMATICALLY -// PLEASE DO NOT EDIT -// Generated on: Tue Dec 19 09:55:49 CET 2017 -// ---------------------------------------------------- - -import ch.loway.oss.ari4java.generated.*; -import com.fasterxml.jackson.databind.annotation.JsonDeserialize; -import java.util.Date; -import java.util.List; -import java.util.Map; - -/********************************************************** - * The value of a channel variable - * - * Defined in file: asterisk.json - * Generated by: Model - *********************************************************/ - -public class Variable_impl_ari_1_9_0 implements Variable, java.io.Serializable { -private static final long serialVersionUID = 1L; - /** The value of the variable requested */ - private String value; - public String getValue() { - return value; - } - - @JsonDeserialize( as=String.class ) - public void setValue(String val ) { - value = val; - } - -/** No missing signatures from interface */ -} - diff --git a/classes/ch/loway/oss/ari4java/generated/ari_2_0_0/AriBuilder_impl_ari_2_0_0.java b/classes/ch/loway/oss/ari4java/generated/ari_2_0_0/AriBuilder_impl_ari_2_0_0.java deleted file mode 100644 index a818bfb1..00000000 --- a/classes/ch/loway/oss/ari4java/generated/ari_2_0_0/AriBuilder_impl_ari_2_0_0.java +++ /dev/null @@ -1,328 +0,0 @@ -package ch.loway.oss.ari4java.generated.ari_2_0_0; - -// ---------------------------------------------------- -// THIS CLASS WAS GENERATED AUTOMATICALLY -// PLEASE DO NOT EDIT -// Generated on: Tue Dec 19 09:55:49 CET 2017 -// ---------------------------------------------------- - -import ch.loway.oss.ari4java.generated.ari_2_0_0.models.*; -import ch.loway.oss.ari4java.generated.ari_2_0_0.actions.*; -import ch.loway.oss.ari4java.generated.*; -import ch.loway.oss.ari4java.ARI; - -public class AriBuilder_impl_ari_2_0_0 implements AriBuilder { - -public ActionEndpoints actionEndpoints() { - return new ActionEndpoints_impl_ari_2_0_0(); - }; - -public ActionBridges actionBridges() { - return new ActionBridges_impl_ari_2_0_0(); - }; - -public ActionChannels actionChannels() { - return new ActionChannels_impl_ari_2_0_0(); - }; - -public ActionSounds actionSounds() { - return new ActionSounds_impl_ari_2_0_0(); - }; - -public ActionPlaybacks actionPlaybacks() { - return new ActionPlaybacks_impl_ari_2_0_0(); - }; - -public ActionApplications actionApplications() { - return new ActionApplications_impl_ari_2_0_0(); - }; - -public ActionDeviceStates actionDeviceStates() { - return new ActionDeviceStates_impl_ari_2_0_0(); - }; - -public ActionEvents actionEvents() { - return new ActionEvents_impl_ari_2_0_0(); - }; - -public ActionAsterisk actionAsterisk() { - return new ActionAsterisk_impl_ari_2_0_0(); - }; - -public ActionRecordings actionRecordings() { - return new ActionRecordings_impl_ari_2_0_0(); - }; - -public TextMessageReceived textMessageReceived() { - return new TextMessageReceived_impl_ari_2_0_0(); - }; - -public AsteriskInfo asteriskInfo() { - return new AsteriskInfo_impl_ari_2_0_0(); - }; - -public LogChannel logChannel() { - return new LogChannel_impl_ari_2_0_0(); - }; - -public PeerStatusChange peerStatusChange() { - return new PeerStatusChange_impl_ari_2_0_0(); - }; - -public TextMessage textMessage() { - return new TextMessage_impl_ari_2_0_0(); - }; - -public PlaybackContinuing playbackContinuing() { - return new PlaybackContinuing_impl_ari_2_0_0(); - }; - -public SetId setId() { - return new SetId_impl_ari_2_0_0(); - }; - -public ChannelTalkingStarted channelTalkingStarted() { - return new ChannelTalkingStarted_impl_ari_2_0_0(); - }; - -public DeviceState deviceState() { - return new DeviceState_impl_ari_2_0_0(); - }; - -public BuildInfo buildInfo() { - return new BuildInfo_impl_ari_2_0_0(); - }; - -public RecordingFinished recordingFinished() { - return new RecordingFinished_impl_ari_2_0_0(); - }; - -public PlaybackFinished playbackFinished() { - return new PlaybackFinished_impl_ari_2_0_0(); - }; - -public ChannelStateChange channelStateChange() { - return new ChannelStateChange_impl_ari_2_0_0(); - }; - -public Endpoint endpoint() { - return new Endpoint_impl_ari_2_0_0(); - }; - -public StasisEnd stasisEnd() { - return new StasisEnd_impl_ari_2_0_0(); - }; - -public Channel channel() { - return new Channel_impl_ari_2_0_0(); - }; - -public SystemInfo systemInfo() { - return new SystemInfo_impl_ari_2_0_0(); - }; - -public Variable variable() { - return new Variable_impl_ari_2_0_0(); - }; - -public EndpointStateChange endpointStateChange() { - return new EndpointStateChange_impl_ari_2_0_0(); - }; - -public PlaybackStarted playbackStarted() { - return new PlaybackStarted_impl_ari_2_0_0(); - }; - -public ChannelTalkingFinished channelTalkingFinished() { - return new ChannelTalkingFinished_impl_ari_2_0_0(); - }; - -public ContactStatusChange contactStatusChange() { - return new ContactStatusChange_impl_ari_2_0_0(); - }; - -public ChannelDialplan channelDialplan() { - return new ChannelDialplan_impl_ari_2_0_0(); - }; - -public Message message() { - return new Message_impl_ari_2_0_0(); - }; - -public ChannelConnectedLine channelConnectedLine() { - return new ChannelConnectedLine_impl_ari_2_0_0(); - }; - -public ApplicationReplaced applicationReplaced() { - return new ApplicationReplaced_impl_ari_2_0_0(); - }; - -public FormatLangPair formatLangPair() { - return new FormatLangPair_impl_ari_2_0_0(); - }; - -public RecordingFailed recordingFailed() { - return new RecordingFailed_impl_ari_2_0_0(); - }; - -public BridgeMerged bridgeMerged() { - return new BridgeMerged_impl_ari_2_0_0(); - }; - -public Sound sound() { - return new Sound_impl_ari_2_0_0(); - }; - -public BridgeBlindTransfer bridgeBlindTransfer() { - return new BridgeBlindTransfer_impl_ari_2_0_0(); - }; - -public ChannelDestroyed channelDestroyed() { - return new ChannelDestroyed_impl_ari_2_0_0(); - }; - -public BridgeAttendedTransfer bridgeAttendedTransfer() { - return new BridgeAttendedTransfer_impl_ari_2_0_0(); - }; - -public Playback playback() { - return new Playback_impl_ari_2_0_0(); - }; - -public DeviceStateChanged deviceStateChanged() { - return new DeviceStateChanged_impl_ari_2_0_0(); - }; - -public ChannelHangupRequest channelHangupRequest() { - return new ChannelHangupRequest_impl_ari_2_0_0(); - }; - -public Dialed dialed() { - return new Dialed_impl_ari_2_0_0(); - }; - -public BridgeDestroyed bridgeDestroyed() { - return new BridgeDestroyed_impl_ari_2_0_0(); - }; - -public CallerID callerID() { - return new CallerID_impl_ari_2_0_0(); - }; - -public StatusInfo statusInfo() { - return new StatusInfo_impl_ari_2_0_0(); - }; - -public ChannelUserevent channelUserevent() { - return new ChannelUserevent_impl_ari_2_0_0(); - }; - -public MissingParams missingParams() { - return new MissingParams_impl_ari_2_0_0(); - }; - -public BridgeVideoSourceChanged bridgeVideoSourceChanged() { - return new BridgeVideoSourceChanged_impl_ari_2_0_0(); - }; - -public RecordingStarted recordingStarted() { - return new RecordingStarted_impl_ari_2_0_0(); - }; - -public ChannelUnhold channelUnhold() { - return new ChannelUnhold_impl_ari_2_0_0(); - }; - -public ConfigTuple configTuple() { - return new ConfigTuple_impl_ari_2_0_0(); - }; - -public Module module() { - return new Module_impl_ari_2_0_0(); - }; - -public ChannelCallerId channelCallerId() { - return new ChannelCallerId_impl_ari_2_0_0(); - }; - -public Event event() { - return new Event_impl_ari_2_0_0(); - }; - -public ChannelCreated channelCreated() { - return new ChannelCreated_impl_ari_2_0_0(); - }; - -public BridgeCreated bridgeCreated() { - return new BridgeCreated_impl_ari_2_0_0(); - }; - -public ChannelHold channelHold() { - return new ChannelHold_impl_ari_2_0_0(); - }; - -public ContactInfo contactInfo() { - return new ContactInfo_impl_ari_2_0_0(); - }; - -public TextMessageVariable textMessageVariable() { - return new TextMessageVariable_impl_ari_2_0_0(); - }; - -public ChannelEnteredBridge channelEnteredBridge() { - return new ChannelEnteredBridge_impl_ari_2_0_0(); - }; - -public DialplanCEP dialplanCEP() { - return new DialplanCEP_impl_ari_2_0_0(); - }; - -public ChannelDtmfReceived channelDtmfReceived() { - return new ChannelDtmfReceived_impl_ari_2_0_0(); - }; - -public ChannelVarset channelVarset() { - return new ChannelVarset_impl_ari_2_0_0(); - }; - -public LiveRecording liveRecording() { - return new LiveRecording_impl_ari_2_0_0(); - }; - -public Dial dial() { - return new Dial_impl_ari_2_0_0(); - }; - -public Application application() { - return new Application_impl_ari_2_0_0(); - }; - -public StasisStart stasisStart() { - return new StasisStart_impl_ari_2_0_0(); - }; - -public Bridge bridge() { - return new Bridge_impl_ari_2_0_0(); - }; - -public Peer peer() { - return new Peer_impl_ari_2_0_0(); - }; - -public ChannelLeftBridge channelLeftBridge() { - return new ChannelLeftBridge_impl_ari_2_0_0(); - }; - -public ConfigInfo configInfo() { - return new ConfigInfo_impl_ari_2_0_0(); - }; - -public StoredRecording storedRecording() { - return new StoredRecording_impl_ari_2_0_0(); - }; - -public ARI.ClassFactory getClassFactory() { - return new ClassTranslator_impl_ari_2_0_0(); -}; - -}; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_2_0_0/ClassTranslator_impl_ari_2_0_0.java b/classes/ch/loway/oss/ari4java/generated/ari_2_0_0/ClassTranslator_impl_ari_2_0_0.java deleted file mode 100644 index 30102ce7..00000000 --- a/classes/ch/loway/oss/ari4java/generated/ari_2_0_0/ClassTranslator_impl_ari_2_0_0.java +++ /dev/null @@ -1,335 +0,0 @@ -package ch.loway.oss.ari4java.generated.ari_2_0_0; - -// ---------------------------------------------------- -// THIS CLASS WAS GENERATED AUTOMATICALLY -// PLEASE DO NOT EDIT -// Generated on: Tue Dec 19 09:55:50 CET 2017 -// ---------------------------------------------------- - -import ch.loway.oss.ari4java.ARI; -import ch.loway.oss.ari4java.generated.*; -import ch.loway.oss.ari4java.generated.ari_2_0_0.models.*; -import ch.loway.oss.ari4java.generated.ari_2_0_0.actions.*; - -/********************************************************** - * This is a class translator. - *********************************************************/ -public class ClassTranslator_impl_ari_2_0_0 implements ARI.ClassFactory { - - @Override - public Class getImplementationFor(Class interfaceClass) { - - if ( interfaceClass.equals(ActionApplications.class) ) { - return (ActionApplications_impl_ari_2_0_0.class); - } else - - if ( interfaceClass.equals(ActionAsterisk.class) ) { - return (ActionAsterisk_impl_ari_2_0_0.class); - } else - - if ( interfaceClass.equals(ActionBridges.class) ) { - return (ActionBridges_impl_ari_2_0_0.class); - } else - - if ( interfaceClass.equals(ActionChannels.class) ) { - return (ActionChannels_impl_ari_2_0_0.class); - } else - - if ( interfaceClass.equals(ActionDeviceStates.class) ) { - return (ActionDeviceStates_impl_ari_2_0_0.class); - } else - - if ( interfaceClass.equals(ActionEndpoints.class) ) { - return (ActionEndpoints_impl_ari_2_0_0.class); - } else - - if ( interfaceClass.equals(ActionEvents.class) ) { - return (ActionEvents_impl_ari_2_0_0.class); - } else - - if ( interfaceClass.equals(ActionPlaybacks.class) ) { - return (ActionPlaybacks_impl_ari_2_0_0.class); - } else - - if ( interfaceClass.equals(ActionRecordings.class) ) { - return (ActionRecordings_impl_ari_2_0_0.class); - } else - - if ( interfaceClass.equals(ActionSounds.class) ) { - return (ActionSounds_impl_ari_2_0_0.class); - } else - - if ( interfaceClass.equals(Application.class) ) { - return (Application_impl_ari_2_0_0.class); - } else - - if ( interfaceClass.equals(ApplicationReplaced.class) ) { - return (ApplicationReplaced_impl_ari_2_0_0.class); - } else - - if ( interfaceClass.equals(AsteriskInfo.class) ) { - return (AsteriskInfo_impl_ari_2_0_0.class); - } else - - if ( interfaceClass.equals(Bridge.class) ) { - return (Bridge_impl_ari_2_0_0.class); - } else - - if ( interfaceClass.equals(BridgeAttendedTransfer.class) ) { - return (BridgeAttendedTransfer_impl_ari_2_0_0.class); - } else - - if ( interfaceClass.equals(BridgeBlindTransfer.class) ) { - return (BridgeBlindTransfer_impl_ari_2_0_0.class); - } else - - if ( interfaceClass.equals(BridgeCreated.class) ) { - return (BridgeCreated_impl_ari_2_0_0.class); - } else - - if ( interfaceClass.equals(BridgeDestroyed.class) ) { - return (BridgeDestroyed_impl_ari_2_0_0.class); - } else - - if ( interfaceClass.equals(BridgeMerged.class) ) { - return (BridgeMerged_impl_ari_2_0_0.class); - } else - - if ( interfaceClass.equals(BridgeVideoSourceChanged.class) ) { - return (BridgeVideoSourceChanged_impl_ari_2_0_0.class); - } else - - if ( interfaceClass.equals(BuildInfo.class) ) { - return (BuildInfo_impl_ari_2_0_0.class); - } else - - if ( interfaceClass.equals(CallerID.class) ) { - return (CallerID_impl_ari_2_0_0.class); - } else - - if ( interfaceClass.equals(Channel.class) ) { - return (Channel_impl_ari_2_0_0.class); - } else - - if ( interfaceClass.equals(ChannelCallerId.class) ) { - return (ChannelCallerId_impl_ari_2_0_0.class); - } else - - if ( interfaceClass.equals(ChannelConnectedLine.class) ) { - return (ChannelConnectedLine_impl_ari_2_0_0.class); - } else - - if ( interfaceClass.equals(ChannelCreated.class) ) { - return (ChannelCreated_impl_ari_2_0_0.class); - } else - - if ( interfaceClass.equals(ChannelDestroyed.class) ) { - return (ChannelDestroyed_impl_ari_2_0_0.class); - } else - - if ( interfaceClass.equals(ChannelDialplan.class) ) { - return (ChannelDialplan_impl_ari_2_0_0.class); - } else - - if ( interfaceClass.equals(ChannelDtmfReceived.class) ) { - return (ChannelDtmfReceived_impl_ari_2_0_0.class); - } else - - if ( interfaceClass.equals(ChannelEnteredBridge.class) ) { - return (ChannelEnteredBridge_impl_ari_2_0_0.class); - } else - - if ( interfaceClass.equals(ChannelHangupRequest.class) ) { - return (ChannelHangupRequest_impl_ari_2_0_0.class); - } else - - if ( interfaceClass.equals(ChannelHold.class) ) { - return (ChannelHold_impl_ari_2_0_0.class); - } else - - if ( interfaceClass.equals(ChannelLeftBridge.class) ) { - return (ChannelLeftBridge_impl_ari_2_0_0.class); - } else - - if ( interfaceClass.equals(ChannelStateChange.class) ) { - return (ChannelStateChange_impl_ari_2_0_0.class); - } else - - if ( interfaceClass.equals(ChannelTalkingFinished.class) ) { - return (ChannelTalkingFinished_impl_ari_2_0_0.class); - } else - - if ( interfaceClass.equals(ChannelTalkingStarted.class) ) { - return (ChannelTalkingStarted_impl_ari_2_0_0.class); - } else - - if ( interfaceClass.equals(ChannelUnhold.class) ) { - return (ChannelUnhold_impl_ari_2_0_0.class); - } else - - if ( interfaceClass.equals(ChannelUserevent.class) ) { - return (ChannelUserevent_impl_ari_2_0_0.class); - } else - - if ( interfaceClass.equals(ChannelVarset.class) ) { - return (ChannelVarset_impl_ari_2_0_0.class); - } else - - if ( interfaceClass.equals(ConfigInfo.class) ) { - return (ConfigInfo_impl_ari_2_0_0.class); - } else - - if ( interfaceClass.equals(ConfigTuple.class) ) { - return (ConfigTuple_impl_ari_2_0_0.class); - } else - - if ( interfaceClass.equals(ContactInfo.class) ) { - return (ContactInfo_impl_ari_2_0_0.class); - } else - - if ( interfaceClass.equals(ContactStatusChange.class) ) { - return (ContactStatusChange_impl_ari_2_0_0.class); - } else - - if ( interfaceClass.equals(DeviceState.class) ) { - return (DeviceState_impl_ari_2_0_0.class); - } else - - if ( interfaceClass.equals(DeviceStateChanged.class) ) { - return (DeviceStateChanged_impl_ari_2_0_0.class); - } else - - if ( interfaceClass.equals(Dial.class) ) { - return (Dial_impl_ari_2_0_0.class); - } else - - if ( interfaceClass.equals(Dialed.class) ) { - return (Dialed_impl_ari_2_0_0.class); - } else - - if ( interfaceClass.equals(DialplanCEP.class) ) { - return (DialplanCEP_impl_ari_2_0_0.class); - } else - - if ( interfaceClass.equals(Endpoint.class) ) { - return (Endpoint_impl_ari_2_0_0.class); - } else - - if ( interfaceClass.equals(EndpointStateChange.class) ) { - return (EndpointStateChange_impl_ari_2_0_0.class); - } else - - if ( interfaceClass.equals(Event.class) ) { - return (Event_impl_ari_2_0_0.class); - } else - - if ( interfaceClass.equals(FormatLangPair.class) ) { - return (FormatLangPair_impl_ari_2_0_0.class); - } else - - if ( interfaceClass.equals(LiveRecording.class) ) { - return (LiveRecording_impl_ari_2_0_0.class); - } else - - if ( interfaceClass.equals(LogChannel.class) ) { - return (LogChannel_impl_ari_2_0_0.class); - } else - - if ( interfaceClass.equals(Message.class) ) { - return (Message_impl_ari_2_0_0.class); - } else - - if ( interfaceClass.equals(MissingParams.class) ) { - return (MissingParams_impl_ari_2_0_0.class); - } else - - if ( interfaceClass.equals(Module.class) ) { - return (Module_impl_ari_2_0_0.class); - } else - - if ( interfaceClass.equals(Peer.class) ) { - return (Peer_impl_ari_2_0_0.class); - } else - - if ( interfaceClass.equals(PeerStatusChange.class) ) { - return (PeerStatusChange_impl_ari_2_0_0.class); - } else - - if ( interfaceClass.equals(Playback.class) ) { - return (Playback_impl_ari_2_0_0.class); - } else - - if ( interfaceClass.equals(PlaybackContinuing.class) ) { - return (PlaybackContinuing_impl_ari_2_0_0.class); - } else - - if ( interfaceClass.equals(PlaybackFinished.class) ) { - return (PlaybackFinished_impl_ari_2_0_0.class); - } else - - if ( interfaceClass.equals(PlaybackStarted.class) ) { - return (PlaybackStarted_impl_ari_2_0_0.class); - } else - - if ( interfaceClass.equals(RecordingFailed.class) ) { - return (RecordingFailed_impl_ari_2_0_0.class); - } else - - if ( interfaceClass.equals(RecordingFinished.class) ) { - return (RecordingFinished_impl_ari_2_0_0.class); - } else - - if ( interfaceClass.equals(RecordingStarted.class) ) { - return (RecordingStarted_impl_ari_2_0_0.class); - } else - - if ( interfaceClass.equals(SetId.class) ) { - return (SetId_impl_ari_2_0_0.class); - } else - - if ( interfaceClass.equals(Sound.class) ) { - return (Sound_impl_ari_2_0_0.class); - } else - - if ( interfaceClass.equals(StasisEnd.class) ) { - return (StasisEnd_impl_ari_2_0_0.class); - } else - - if ( interfaceClass.equals(StasisStart.class) ) { - return (StasisStart_impl_ari_2_0_0.class); - } else - - if ( interfaceClass.equals(StatusInfo.class) ) { - return (StatusInfo_impl_ari_2_0_0.class); - } else - - if ( interfaceClass.equals(StoredRecording.class) ) { - return (StoredRecording_impl_ari_2_0_0.class); - } else - - if ( interfaceClass.equals(SystemInfo.class) ) { - return (SystemInfo_impl_ari_2_0_0.class); - } else - - if ( interfaceClass.equals(TextMessage.class) ) { - return (TextMessage_impl_ari_2_0_0.class); - } else - - if ( interfaceClass.equals(TextMessageReceived.class) ) { - return (TextMessageReceived_impl_ari_2_0_0.class); - } else - - if ( interfaceClass.equals(TextMessageVariable.class) ) { - return (TextMessageVariable_impl_ari_2_0_0.class); - } else - - if ( interfaceClass.equals(Variable.class) ) { - return (Variable_impl_ari_2_0_0.class); - } else - { - return null; - } - } -} - - diff --git a/classes/ch/loway/oss/ari4java/generated/ari_2_0_0/actions/ActionApplications_impl_ari_2_0_0.java b/classes/ch/loway/oss/ari4java/generated/ari_2_0_0/actions/ActionApplications_impl_ari_2_0_0.java deleted file mode 100644 index 8ee8bf7f..00000000 --- a/classes/ch/loway/oss/ari4java/generated/ari_2_0_0/actions/ActionApplications_impl_ari_2_0_0.java +++ /dev/null @@ -1,140 +0,0 @@ -package ch.loway.oss.ari4java.generated.ari_2_0_0.actions; - -// ---------------------------------------------------- -// THIS CLASS WAS GENERATED AUTOMATICALLY -// PLEASE DO NOT EDIT -// Generated on: Tue Dec 19 09:55:49 CET 2017 -// ---------------------------------------------------- - -import ch.loway.oss.ari4java.generated.*; -import java.util.Date; -import java.util.List; -import java.util.Map; -import java.util.ArrayList; -import ch.loway.oss.ari4java.tools.BaseAriAction; -import ch.loway.oss.ari4java.tools.RestException; -import ch.loway.oss.ari4java.tools.AriCallback; -import ch.loway.oss.ari4java.tools.HttpParam; -import ch.loway.oss.ari4java.tools.HttpResponse; -import com.fasterxml.jackson.core.type.TypeReference; -import ch.loway.oss.ari4java.generated.ari_2_0_0.models.*; - -/********************************************************** - * - * Generated by: Apis - *********************************************************/ - - -public class ActionApplications_impl_ari_2_0_0 extends BaseAriAction implements ActionApplications { -/********************************************************** - * Stasis applications - * - * List all applications. - *********************************************************/ -private void buildList() { -reset(); -url = "/applications"; -method = "GET"; -} - -@Override -public List list() throws RestException { -buildList(); -String json = httpActionSync(); -return deserializeJsonAsAbstractList( json, - new TypeReference>() {} ); -} - -@Override -public void list(AriCallback> callback) { -buildList(); -httpActionAsync(callback, new TypeReference>() {}); -} - -/********************************************************** - * Stasis application - * - * Get details of an application. - *********************************************************/ -private void buildGet(String applicationName) { -reset(); -url = "/applications/" + applicationName + ""; -method = "GET"; -lE.add( HttpResponse.build( 404, "Application does not exist.") ); -} - -@Override -public Application get(String applicationName) throws RestException { -buildGet(applicationName); -String json = httpActionSync(); -return deserializeJson( json, Application_impl_ari_2_0_0.class ); -} - -@Override -public void get(String applicationName, AriCallback callback) { -buildGet(applicationName); -httpActionAsync(callback, Application_impl_ari_2_0_0.class); -} - -/********************************************************** - * Stasis application - * - * Subscribe an application to a event source. - * Returns the state of the application after the subscriptions have changed - *********************************************************/ -private void buildSubscribe(String applicationName, String eventSource) { -reset(); -url = "/applications/" + applicationName + "/subscription"; -method = "POST"; -lParamQuery.add( HttpParam.build( "eventSource", eventSource) ); -lE.add( HttpResponse.build( 400, "Missing parameter.") ); -lE.add( HttpResponse.build( 404, "Application does not exist.") ); -lE.add( HttpResponse.build( 422, "Event source does not exist.") ); -} - -@Override -public Application subscribe(String applicationName, String eventSource) throws RestException { -buildSubscribe(applicationName, eventSource); -String json = httpActionSync(); -return deserializeJson( json, Application_impl_ari_2_0_0.class ); -} - -@Override -public void subscribe(String applicationName, String eventSource, AriCallback callback) { -buildSubscribe(applicationName, eventSource); -httpActionAsync(callback, Application_impl_ari_2_0_0.class); -} - -/********************************************************** - * Stasis application - * - * Unsubscribe an application from an event source. - * Returns the state of the application after the subscriptions have changed - *********************************************************/ -private void buildUnsubscribe(String applicationName, String eventSource) { -reset(); -url = "/applications/" + applicationName + "/subscription"; -method = "DELETE"; -lParamQuery.add( HttpParam.build( "eventSource", eventSource) ); -lE.add( HttpResponse.build( 400, "Missing parameter; event source scheme not recognized.") ); -lE.add( HttpResponse.build( 404, "Application does not exist.") ); -lE.add( HttpResponse.build( 409, "Application not subscribed to event source.") ); -lE.add( HttpResponse.build( 422, "Event source does not exist.") ); -} - -@Override -public Application unsubscribe(String applicationName, String eventSource) throws RestException { -buildUnsubscribe(applicationName, eventSource); -String json = httpActionSync(); -return deserializeJson( json, Application_impl_ari_2_0_0.class ); -} - -@Override -public void unsubscribe(String applicationName, String eventSource, AriCallback callback) { -buildUnsubscribe(applicationName, eventSource); -httpActionAsync(callback, Application_impl_ari_2_0_0.class); -} - -/** No missing signatures from interface */ -}; - diff --git a/classes/ch/loway/oss/ari4java/generated/ari_2_0_0/actions/ActionAsterisk_impl_ari_2_0_0.java b/classes/ch/loway/oss/ari4java/generated/ari_2_0_0/actions/ActionAsterisk_impl_ari_2_0_0.java deleted file mode 100644 index 21e8352d..00000000 --- a/classes/ch/loway/oss/ari4java/generated/ari_2_0_0/actions/ActionAsterisk_impl_ari_2_0_0.java +++ /dev/null @@ -1,412 +0,0 @@ -package ch.loway.oss.ari4java.generated.ari_2_0_0.actions; - -// ---------------------------------------------------- -// THIS CLASS WAS GENERATED AUTOMATICALLY -// PLEASE DO NOT EDIT -// Generated on: Tue Dec 19 09:55:49 CET 2017 -// ---------------------------------------------------- - -import ch.loway.oss.ari4java.generated.*; -import java.util.Date; -import java.util.List; -import java.util.Map; -import java.util.ArrayList; -import ch.loway.oss.ari4java.tools.BaseAriAction; -import ch.loway.oss.ari4java.tools.RestException; -import ch.loway.oss.ari4java.tools.AriCallback; -import ch.loway.oss.ari4java.tools.HttpParam; -import ch.loway.oss.ari4java.tools.HttpResponse; -import com.fasterxml.jackson.core.type.TypeReference; -import ch.loway.oss.ari4java.generated.ari_2_0_0.models.*; - -/********************************************************** - * - * Generated by: Apis - *********************************************************/ - - -public class ActionAsterisk_impl_ari_2_0_0 extends BaseAriAction implements ActionAsterisk { -/********************************************************** - * Asterisk dynamic configuration - * - * Retrieve a dynamic configuration object. - *********************************************************/ -private void buildGetObject(String configClass, String objectType, String id) { -reset(); -url = "/asterisk/config/dynamic/" + configClass + "/" + objectType + "/" + id + ""; -method = "GET"; -lE.add( HttpResponse.build( 404, "{configClass|objectType|id} not found") ); -} - -@Override -public List getObject(String configClass, String objectType, String id) throws RestException { -buildGetObject(configClass, objectType, id); -String json = httpActionSync(); -return deserializeJsonAsAbstractList( json, - new TypeReference>() {} ); -} - -@Override -public void getObject(String configClass, String objectType, String id, AriCallback> callback) { -buildGetObject(configClass, objectType, id); -httpActionAsync(callback, new TypeReference>() {}); -} - -/********************************************************** - * Asterisk dynamic configuration - * - * Create or update a dynamic configuration object. - *********************************************************/ -private void buildUpdateObject(String configClass, String objectType, String id, Map fields) { -reset(); -url = "/asterisk/config/dynamic/" + configClass + "/" + objectType + "/" + id + ""; -method = "PUT"; -lParamBody.addAll( HttpParam.build( "fields", fields) ); -lE.add( HttpResponse.build( 400, "Bad request body") ); -lE.add( HttpResponse.build( 403, "Could not create or update object") ); -lE.add( HttpResponse.build( 404, "{configClass|objectType} not found") ); -} - -@Override -public List updateObject(String configClass, String objectType, String id, Map fields) throws RestException { -buildUpdateObject(configClass, objectType, id, fields); -String json = httpActionSync(); -return deserializeJsonAsAbstractList( json, - new TypeReference>() {} ); -} - -@Override -public void updateObject(String configClass, String objectType, String id, Map fields, AriCallback> callback) { -buildUpdateObject(configClass, objectType, id, fields); -httpActionAsync(callback, new TypeReference>() {}); -} - -/********************************************************** - * Asterisk dynamic configuration - * - * Delete a dynamic configuration object. - *********************************************************/ -private void buildDeleteObject(String configClass, String objectType, String id) { -reset(); -url = "/asterisk/config/dynamic/" + configClass + "/" + objectType + "/" + id + ""; -method = "DELETE"; -lE.add( HttpResponse.build( 403, "Could not delete object") ); -lE.add( HttpResponse.build( 404, "{configClass|objectType|id} not found") ); -} - -@Override -public void deleteObject(String configClass, String objectType, String id) throws RestException { -buildDeleteObject(configClass, objectType, id); -String json = httpActionSync(); -} - -@Override -public void deleteObject(String configClass, String objectType, String id, AriCallback callback) { -buildDeleteObject(configClass, objectType, id); -httpActionAsync(callback); -} - -/********************************************************** - * Asterisk system information (similar to core show settings) - * - * Gets Asterisk system information. - *********************************************************/ -private void buildGetInfo(String only) { -reset(); -url = "/asterisk/info"; -method = "GET"; -lParamQuery.add( HttpParam.build( "only", only) ); -} - -@Override -public AsteriskInfo getInfo(String only) throws RestException { -buildGetInfo(only); -String json = httpActionSync(); -return deserializeJson( json, AsteriskInfo_impl_ari_2_0_0.class ); -} - -@Override -public void getInfo(String only, AriCallback callback) { -buildGetInfo(only); -httpActionAsync(callback, AsteriskInfo_impl_ari_2_0_0.class); -} - -/********************************************************** - * Asterisk log channels - * - * Gets Asterisk log channel information. - *********************************************************/ -private void buildListLogChannels() { -reset(); -url = "/asterisk/logging"; -method = "GET"; -} - -@Override -public List listLogChannels() throws RestException { -buildListLogChannels(); -String json = httpActionSync(); -return deserializeJsonAsAbstractList( json, - new TypeReference>() {} ); -} - -@Override -public void listLogChannels(AriCallback> callback) { -buildListLogChannels(); -httpActionAsync(callback, new TypeReference>() {}); -} - -/********************************************************** - * Asterisk log channel - * - * Adds a log channel. - *********************************************************/ -private void buildAddLog(String logChannelName, String configuration) { -reset(); -url = "/asterisk/logging/" + logChannelName + ""; -method = "POST"; -lParamQuery.add( HttpParam.build( "configuration", configuration) ); -lE.add( HttpResponse.build( 400, "Bad request body") ); -lE.add( HttpResponse.build( 409, "Log channel could not be created.") ); -} - -@Override -public void addLog(String logChannelName, String configuration) throws RestException { -buildAddLog(logChannelName, configuration); -String json = httpActionSync(); -} - -@Override -public void addLog(String logChannelName, String configuration, AriCallback callback) { -buildAddLog(logChannelName, configuration); -httpActionAsync(callback); -} - -/********************************************************** - * Asterisk log channel - * - * Deletes a log channel. - *********************************************************/ -private void buildDeleteLog(String logChannelName) { -reset(); -url = "/asterisk/logging/" + logChannelName + ""; -method = "DELETE"; -lE.add( HttpResponse.build( 404, "Log channel does not exist.") ); -} - -@Override -public void deleteLog(String logChannelName) throws RestException { -buildDeleteLog(logChannelName); -String json = httpActionSync(); -} - -@Override -public void deleteLog(String logChannelName, AriCallback callback) { -buildDeleteLog(logChannelName); -httpActionAsync(callback); -} - -/********************************************************** - * Asterisk log channel - * - * Rotates a log channel. - *********************************************************/ -private void buildRotateLog(String logChannelName) { -reset(); -url = "/asterisk/logging/" + logChannelName + "/rotate"; -method = "PUT"; -lE.add( HttpResponse.build( 404, "Log channel does not exist.") ); -} - -@Override -public void rotateLog(String logChannelName) throws RestException { -buildRotateLog(logChannelName); -String json = httpActionSync(); -} - -@Override -public void rotateLog(String logChannelName, AriCallback callback) { -buildRotateLog(logChannelName); -httpActionAsync(callback); -} - -/********************************************************** - * Asterisk modules - * - * List Asterisk modules. - *********************************************************/ -private void buildListModules() { -reset(); -url = "/asterisk/modules"; -method = "GET"; -} - -@Override -public List listModules() throws RestException { -buildListModules(); -String json = httpActionSync(); -return deserializeJsonAsAbstractList( json, - new TypeReference>() {} ); -} - -@Override -public void listModules(AriCallback> callback) { -buildListModules(); -httpActionAsync(callback, new TypeReference>() {}); -} - -/********************************************************** - * Asterisk module - * - * Get Asterisk module information. - *********************************************************/ -private void buildGetModule(String moduleName) { -reset(); -url = "/asterisk/modules/" + moduleName + ""; -method = "GET"; -lE.add( HttpResponse.build( 404, "Module could not be found in running modules.") ); -lE.add( HttpResponse.build( 409, "Module information could not be retrieved.") ); -} - -@Override -public Module getModule(String moduleName) throws RestException { -buildGetModule(moduleName); -String json = httpActionSync(); -return deserializeJson( json, Module_impl_ari_2_0_0.class ); -} - -@Override -public void getModule(String moduleName, AriCallback callback) { -buildGetModule(moduleName); -httpActionAsync(callback, Module_impl_ari_2_0_0.class); -} - -/********************************************************** - * Asterisk module - * - * Load an Asterisk module. - *********************************************************/ -private void buildLoadModule(String moduleName) { -reset(); -url = "/asterisk/modules/" + moduleName + ""; -method = "POST"; -lE.add( HttpResponse.build( 409, "Module could not be loaded.") ); -} - -@Override -public void loadModule(String moduleName) throws RestException { -buildLoadModule(moduleName); -String json = httpActionSync(); -} - -@Override -public void loadModule(String moduleName, AriCallback callback) { -buildLoadModule(moduleName); -httpActionAsync(callback); -} - -/********************************************************** - * Asterisk module - * - * Unload an Asterisk module. - *********************************************************/ -private void buildUnloadModule(String moduleName) { -reset(); -url = "/asterisk/modules/" + moduleName + ""; -method = "DELETE"; -lE.add( HttpResponse.build( 404, "Module not found in running modules.") ); -lE.add( HttpResponse.build( 409, "Module could not be unloaded.") ); -} - -@Override -public void unloadModule(String moduleName) throws RestException { -buildUnloadModule(moduleName); -String json = httpActionSync(); -} - -@Override -public void unloadModule(String moduleName, AriCallback callback) { -buildUnloadModule(moduleName); -httpActionAsync(callback); -} - -/********************************************************** - * Asterisk module - * - * Reload an Asterisk module. - *********************************************************/ -private void buildReloadModule(String moduleName) { -reset(); -url = "/asterisk/modules/" + moduleName + ""; -method = "PUT"; -lE.add( HttpResponse.build( 404, "Module not found in running modules.") ); -lE.add( HttpResponse.build( 409, "Module could not be reloaded.") ); -} - -@Override -public void reloadModule(String moduleName) throws RestException { -buildReloadModule(moduleName); -String json = httpActionSync(); -} - -@Override -public void reloadModule(String moduleName, AriCallback callback) { -buildReloadModule(moduleName); -httpActionAsync(callback); -} - -/********************************************************** - * Global variables - * - * Get the value of a global variable. - *********************************************************/ -private void buildGetGlobalVar(String variable) { -reset(); -url = "/asterisk/variable"; -method = "GET"; -lParamQuery.add( HttpParam.build( "variable", variable) ); -lE.add( HttpResponse.build( 400, "Missing variable parameter.") ); -} - -@Override -public Variable getGlobalVar(String variable) throws RestException { -buildGetGlobalVar(variable); -String json = httpActionSync(); -return deserializeJson( json, Variable_impl_ari_2_0_0.class ); -} - -@Override -public void getGlobalVar(String variable, AriCallback callback) { -buildGetGlobalVar(variable); -httpActionAsync(callback, Variable_impl_ari_2_0_0.class); -} - -/********************************************************** - * Global variables - * - * Set the value of a global variable. - *********************************************************/ -private void buildSetGlobalVar(String variable, String value) { -reset(); -url = "/asterisk/variable"; -method = "POST"; -lParamQuery.add( HttpParam.build( "variable", variable) ); -lParamQuery.add( HttpParam.build( "value", value) ); -lE.add( HttpResponse.build( 400, "Missing variable parameter.") ); -} - -@Override -public void setGlobalVar(String variable, String value) throws RestException { -buildSetGlobalVar(variable, value); -String json = httpActionSync(); -} - -@Override -public void setGlobalVar(String variable, String value, AriCallback callback) { -buildSetGlobalVar(variable, value); -httpActionAsync(callback); -} - -/** No missing signatures from interface */ -}; - diff --git a/classes/ch/loway/oss/ari4java/generated/ari_2_0_0/actions/ActionBridges_impl_ari_2_0_0.java b/classes/ch/loway/oss/ari4java/generated/ari_2_0_0/actions/ActionBridges_impl_ari_2_0_0.java deleted file mode 100644 index 17f9ebe3..00000000 --- a/classes/ch/loway/oss/ari4java/generated/ari_2_0_0/actions/ActionBridges_impl_ari_2_0_0.java +++ /dev/null @@ -1,494 +0,0 @@ -package ch.loway.oss.ari4java.generated.ari_2_0_0.actions; - -// ---------------------------------------------------- -// THIS CLASS WAS GENERATED AUTOMATICALLY -// PLEASE DO NOT EDIT -// Generated on: Tue Dec 19 09:55:49 CET 2017 -// ---------------------------------------------------- - -import ch.loway.oss.ari4java.generated.*; -import java.util.Date; -import java.util.List; -import java.util.Map; -import java.util.ArrayList; -import ch.loway.oss.ari4java.tools.BaseAriAction; -import ch.loway.oss.ari4java.tools.RestException; -import ch.loway.oss.ari4java.tools.AriCallback; -import ch.loway.oss.ari4java.tools.HttpParam; -import ch.loway.oss.ari4java.tools.HttpResponse; -import com.fasterxml.jackson.core.type.TypeReference; -import ch.loway.oss.ari4java.generated.ari_2_0_0.models.*; - -/********************************************************** - * - * Generated by: Apis - *********************************************************/ - - -public class ActionBridges_impl_ari_2_0_0 extends BaseAriAction implements ActionBridges { -/********************************************************** - * Active bridges - * - * List all active bridges in Asterisk. - *********************************************************/ -private void buildList() { -reset(); -url = "/bridges"; -method = "GET"; -} - -@Override -public List list() throws RestException { -buildList(); -String json = httpActionSync(); -return deserializeJsonAsAbstractList( json, - new TypeReference>() {} ); -} - -@Override -public void list(AriCallback> callback) { -buildList(); -httpActionAsync(callback, new TypeReference>() {}); -} - -/********************************************************** - * Active bridges - * - * Create a new bridge. - * This bridge persists until it has been shut down, or Asterisk has been shut down. - *********************************************************/ -private void buildCreate(String type, String bridgeId, String name) { -reset(); -url = "/bridges"; -method = "POST"; -lParamQuery.add( HttpParam.build( "type", type) ); -lParamQuery.add( HttpParam.build( "bridgeId", bridgeId) ); -lParamQuery.add( HttpParam.build( "name", name) ); -} - -@Override -public Bridge create(String type, String bridgeId, String name) throws RestException { -buildCreate(type, bridgeId, name); -String json = httpActionSync(); -return deserializeJson( json, Bridge_impl_ari_2_0_0.class ); -} - -@Override -public void create(String type, String bridgeId, String name, AriCallback callback) { -buildCreate(type, bridgeId, name); -httpActionAsync(callback, Bridge_impl_ari_2_0_0.class); -} - -/********************************************************** - * Individual bridge - * - * Create a new bridge or updates an existing one. - * This bridge persists until it has been shut down, or Asterisk has been shut down. - *********************************************************/ -private void buildCreateWithId(String type, String bridgeId, String name) { -reset(); -url = "/bridges/" + bridgeId + ""; -method = "POST"; -lParamQuery.add( HttpParam.build( "type", type) ); -lParamQuery.add( HttpParam.build( "name", name) ); -} - -@Override -public Bridge createWithId(String type, String bridgeId, String name) throws RestException { -buildCreateWithId(type, bridgeId, name); -String json = httpActionSync(); -return deserializeJson( json, Bridge_impl_ari_2_0_0.class ); -} - -@Override -public void createWithId(String type, String bridgeId, String name, AriCallback callback) { -buildCreateWithId(type, bridgeId, name); -httpActionAsync(callback, Bridge_impl_ari_2_0_0.class); -} - -/********************************************************** - * Individual bridge - * - * Get bridge details. - *********************************************************/ -private void buildGet(String bridgeId) { -reset(); -url = "/bridges/" + bridgeId + ""; -method = "GET"; -lE.add( HttpResponse.build( 404, "Bridge not found") ); -} - -@Override -public Bridge get(String bridgeId) throws RestException { -buildGet(bridgeId); -String json = httpActionSync(); -return deserializeJson( json, Bridge_impl_ari_2_0_0.class ); -} - -@Override -public void get(String bridgeId, AriCallback callback) { -buildGet(bridgeId); -httpActionAsync(callback, Bridge_impl_ari_2_0_0.class); -} - -/********************************************************** - * Individual bridge - * - * Shut down a bridge. - * If any channels are in this bridge, they will be removed and resume whatever they were doing beforehand. - *********************************************************/ -private void buildDestroy(String bridgeId) { -reset(); -url = "/bridges/" + bridgeId + ""; -method = "DELETE"; -lE.add( HttpResponse.build( 404, "Bridge not found") ); -} - -@Override -public void destroy(String bridgeId) throws RestException { -buildDestroy(bridgeId); -String json = httpActionSync(); -} - -@Override -public void destroy(String bridgeId, AriCallback callback) { -buildDestroy(bridgeId); -httpActionAsync(callback); -} - -/********************************************************** - * Add a channel to a bridge - * - * Add a channel to a bridge. - *********************************************************/ -private void buildAddChannel(String bridgeId, String channel, String role) { -reset(); -url = "/bridges/" + bridgeId + "/addChannel"; -method = "POST"; -lParamQuery.add( HttpParam.build( "channel", channel) ); -lParamQuery.add( HttpParam.build( "role", role) ); -lE.add( HttpResponse.build( 400, "Channel not found") ); -lE.add( HttpResponse.build( 404, "Bridge not found") ); -lE.add( HttpResponse.build( 409, "Bridge not in Stasis application; Channel currently recording") ); -lE.add( HttpResponse.build( 422, "Channel not in Stasis application") ); -} - -@Override -public void addChannel(String bridgeId, String channel, String role) throws RestException { -buildAddChannel(bridgeId, channel, role); -String json = httpActionSync(); -} - -@Override -public void addChannel(String bridgeId, String channel, String role, AriCallback callback) { -buildAddChannel(bridgeId, channel, role); -httpActionAsync(callback); -} - -/********************************************************** - * Play music on hold to a bridge - * - * Play music on hold to a bridge or change the MOH class that is playing. - *********************************************************/ -private void buildStartMoh(String bridgeId, String mohClass) { -reset(); -url = "/bridges/" + bridgeId + "/moh"; -method = "POST"; -lParamQuery.add( HttpParam.build( "mohClass", mohClass) ); -lE.add( HttpResponse.build( 404, "Bridge not found") ); -lE.add( HttpResponse.build( 409, "Bridge not in Stasis application") ); -} - -@Override -public void startMoh(String bridgeId, String mohClass) throws RestException { -buildStartMoh(bridgeId, mohClass); -String json = httpActionSync(); -} - -@Override -public void startMoh(String bridgeId, String mohClass, AriCallback callback) { -buildStartMoh(bridgeId, mohClass); -httpActionAsync(callback); -} - -/********************************************************** - * Play music on hold to a bridge - * - * Stop playing music on hold to a bridge. - * This will only stop music on hold being played via POST bridges/{bridgeId}/moh. - *********************************************************/ -private void buildStopMoh(String bridgeId) { -reset(); -url = "/bridges/" + bridgeId + "/moh"; -method = "DELETE"; -lE.add( HttpResponse.build( 404, "Bridge not found") ); -lE.add( HttpResponse.build( 409, "Bridge not in Stasis application") ); -} - -@Override -public void stopMoh(String bridgeId) throws RestException { -buildStopMoh(bridgeId); -String json = httpActionSync(); -} - -@Override -public void stopMoh(String bridgeId, AriCallback callback) { -buildStopMoh(bridgeId); -httpActionAsync(callback); -} - -/********************************************************** - * Play media to the participants of a bridge - * - * Start playback of media on a bridge. - * The media URI may be any of a number of URI's. Currently sound:, recording:, number:, digits:, characters:, and tone: URI's are supported. This operation creates a playback resource that can be used to control the playback of media (pause, rewind, fast forward, etc.) - *********************************************************/ -private void buildPlay(String bridgeId, String media, String lang, int offsetms, int skipms, String playbackId) { -reset(); -url = "/bridges/" + bridgeId + "/play"; -method = "POST"; -lParamQuery.add( HttpParam.build( "media", media) ); -lParamQuery.add( HttpParam.build( "lang", lang) ); -lParamQuery.add( HttpParam.build( "offsetms", offsetms) ); -lParamQuery.add( HttpParam.build( "skipms", skipms) ); -lParamQuery.add( HttpParam.build( "playbackId", playbackId) ); -lE.add( HttpResponse.build( 404, "Bridge not found") ); -lE.add( HttpResponse.build( 409, "Bridge not in a Stasis application") ); -} - -@Override -public Playback play(String bridgeId, String media, String lang, int offsetms, int skipms, String playbackId) throws RestException { -buildPlay(bridgeId, media, lang, offsetms, skipms, playbackId); -String json = httpActionSync(); -return deserializeJson( json, Playback_impl_ari_2_0_0.class ); -} - -@Override -public void play(String bridgeId, String media, String lang, int offsetms, int skipms, String playbackId, AriCallback callback) { -buildPlay(bridgeId, media, lang, offsetms, skipms, playbackId); -httpActionAsync(callback, Playback_impl_ari_2_0_0.class); -} - -/********************************************************** - * Play media to a bridge - * - * Start playback of media on a bridge. - * The media URI may be any of a number of URI's. Currently sound:, recording:, number:, digits:, characters:, and tone: URI's are supported. This operation creates a playback resource that can be used to control the playback of media (pause, rewind, fast forward, etc.) - *********************************************************/ -private void buildPlayWithId(String bridgeId, String playbackId, String media, String lang, int offsetms, int skipms) { -reset(); -url = "/bridges/" + bridgeId + "/play/" + playbackId + ""; -method = "POST"; -lParamQuery.add( HttpParam.build( "media", media) ); -lParamQuery.add( HttpParam.build( "lang", lang) ); -lParamQuery.add( HttpParam.build( "offsetms", offsetms) ); -lParamQuery.add( HttpParam.build( "skipms", skipms) ); -lE.add( HttpResponse.build( 404, "Bridge not found") ); -lE.add( HttpResponse.build( 409, "Bridge not in a Stasis application") ); -} - -@Override -public Playback playWithId(String bridgeId, String playbackId, String media, String lang, int offsetms, int skipms) throws RestException { -buildPlayWithId(bridgeId, playbackId, media, lang, offsetms, skipms); -String json = httpActionSync(); -return deserializeJson( json, Playback_impl_ari_2_0_0.class ); -} - -@Override -public void playWithId(String bridgeId, String playbackId, String media, String lang, int offsetms, int skipms, AriCallback callback) { -buildPlayWithId(bridgeId, playbackId, media, lang, offsetms, skipms); -httpActionAsync(callback, Playback_impl_ari_2_0_0.class); -} - -/********************************************************** - * Record audio on a bridge - * - * Start a recording. - * This records the mixed audio from all channels participating in this bridge. - *********************************************************/ -private void buildRecord(String bridgeId, String name, String format, int maxDurationSeconds, int maxSilenceSeconds, String ifExists, boolean beep, String terminateOn) { -reset(); -url = "/bridges/" + bridgeId + "/record"; -method = "POST"; -lParamQuery.add( HttpParam.build( "name", name) ); -lParamQuery.add( HttpParam.build( "format", format) ); -lParamQuery.add( HttpParam.build( "maxDurationSeconds", maxDurationSeconds) ); -lParamQuery.add( HttpParam.build( "maxSilenceSeconds", maxSilenceSeconds) ); -lParamQuery.add( HttpParam.build( "ifExists", ifExists) ); -lParamQuery.add( HttpParam.build( "beep", beep) ); -lParamQuery.add( HttpParam.build( "terminateOn", terminateOn) ); -lE.add( HttpResponse.build( 400, "Invalid parameters") ); -lE.add( HttpResponse.build( 404, "Bridge not found") ); -lE.add( HttpResponse.build( 409, "Bridge is not in a Stasis application; A recording with the same name already exists on the system and can not be overwritten because it is in progress or ifExists=fail") ); -lE.add( HttpResponse.build( 422, "The format specified is unknown on this system") ); -} - -@Override -public LiveRecording record(String bridgeId, String name, String format, int maxDurationSeconds, int maxSilenceSeconds, String ifExists, boolean beep, String terminateOn) throws RestException { -buildRecord(bridgeId, name, format, maxDurationSeconds, maxSilenceSeconds, ifExists, beep, terminateOn); -String json = httpActionSync(); -return deserializeJson( json, LiveRecording_impl_ari_2_0_0.class ); -} - -@Override -public void record(String bridgeId, String name, String format, int maxDurationSeconds, int maxSilenceSeconds, String ifExists, boolean beep, String terminateOn, AriCallback callback) { -buildRecord(bridgeId, name, format, maxDurationSeconds, maxSilenceSeconds, ifExists, beep, terminateOn); -httpActionAsync(callback, LiveRecording_impl_ari_2_0_0.class); -} - -/********************************************************** - * Remove a channel from a bridge - * - * Remove a channel from a bridge. - *********************************************************/ -private void buildRemoveChannel(String bridgeId, String channel) { -reset(); -url = "/bridges/" + bridgeId + "/removeChannel"; -method = "POST"; -lParamQuery.add( HttpParam.build( "channel", channel) ); -lE.add( HttpResponse.build( 400, "Channel not found") ); -lE.add( HttpResponse.build( 404, "Bridge not found") ); -lE.add( HttpResponse.build( 409, "Bridge not in Stasis application") ); -lE.add( HttpResponse.build( 422, "Channel not in this bridge") ); -} - -@Override -public void removeChannel(String bridgeId, String channel) throws RestException { -buildRemoveChannel(bridgeId, channel); -String json = httpActionSync(); -} - -@Override -public void removeChannel(String bridgeId, String channel, AriCallback callback) { -buildRemoveChannel(bridgeId, channel); -httpActionAsync(callback); -} - -/********************************************************** - * Removes any explicit video source - * - * Removes any explicit video source in a multi-party mixing bridge. This operation has no effect on bridges with two or fewer participants. When no explicit video source is set, talk detection will be used to determine the active video stream. - *********************************************************/ -private void buildClearVideoSource(String bridgeId) { -reset(); -url = "/bridges/" + bridgeId + "/videoSource"; -method = "DELETE"; -lE.add( HttpResponse.build( 404, "Bridge not found") ); -} - -@Override -public void clearVideoSource(String bridgeId) throws RestException { -buildClearVideoSource(bridgeId); -String json = httpActionSync(); -} - -@Override -public void clearVideoSource(String bridgeId, AriCallback callback) { -buildClearVideoSource(bridgeId); -httpActionAsync(callback); -} - -/********************************************************** - * Set a channel as the video source in a multi-party bridge - * - * Set a channel as the video source in a multi-party mixing bridge. This operation has no effect on bridges with two or fewer participants. - *********************************************************/ -private void buildSetVideoSource(String bridgeId, String channelId) { -reset(); -url = "/bridges/" + bridgeId + "/videoSource/" + channelId + ""; -method = "POST"; -lE.add( HttpResponse.build( 404, "Bridge or Channel not found") ); -lE.add( HttpResponse.build( 409, "Channel not in Stasis application") ); -lE.add( HttpResponse.build( 422, "Channel not in this Bridge") ); -} - -@Override -public void setVideoSource(String bridgeId, String channelId) throws RestException { -buildSetVideoSource(bridgeId, channelId); -String json = httpActionSync(); -} - -@Override -public void setVideoSource(String bridgeId, String channelId, AriCallback callback) { -buildSetVideoSource(bridgeId, channelId); -httpActionAsync(callback); -} - -/********************************************************** - * Start playback of media on a bridge. - * The media URI may be any of a number of URI's. Currently sound: and recording: URI's are supported. This operation creates a playback resource that can be used to control the playback of media (pause, rewind, fast forward, etc.) - * - * @since ari_0_0_1 - *********************************************************/ -public Playback play(String bridgeId, String media, String lang, int offsetms, int skipms) throws RestException{ - throw new UnsupportedOperationException("Method availble from ..."); -}; - -/********************************************************** - * - * - * @since ari_0_0_1 - *********************************************************/ -public void play(String bridgeId, String media, String lang, int offsetms, int skipms, AriCallback callback){ - throw new UnsupportedOperationException("Method availble from ..."); -}; - -/********************************************************** - * Create a new bridge. - * This bridge persists until it has been shut down, or Asterisk has been shut down. - * - * @since ari_1_0_0 - *********************************************************/ -public Bridge create(String type, String name) throws RestException{ - throw new UnsupportedOperationException("Method availble from ..."); -}; - -/********************************************************** - * - * - * @since ari_1_5_0 - *********************************************************/ -public void create_or_update_with_id(String type, String bridgeId, String name, AriCallback callback){ - throw new UnsupportedOperationException("Method availble from ..."); -}; - -/********************************************************** - * Create a new bridge or updates an existing one. - * This bridge persists until it has been shut down, or Asterisk has been shut down. - * - * @since ari_1_5_0 - *********************************************************/ -public Bridge create_or_update_with_id(String type, String bridgeId, String name) throws RestException{ - throw new UnsupportedOperationException("Method availble from ..."); -}; - -/********************************************************** - * Create a new bridge. - * This bridge persists until it has been shut down, or Asterisk has been shut down. - * - * @since ari_0_0_1 - *********************************************************/ -public Bridge create(String type) throws RestException{ - throw new UnsupportedOperationException("Method availble from ..."); -}; - -/********************************************************** - * - * - * @since ari_0_0_1 - *********************************************************/ -public void create(String type, AriCallback callback){ - throw new UnsupportedOperationException("Method availble from ..."); -}; - -/********************************************************** - * - * - * @since ari_1_0_0 - *********************************************************/ -public void create(String type, String name, AriCallback callback){ - throw new UnsupportedOperationException("Method availble from ..."); -}; - -}; - diff --git a/classes/ch/loway/oss/ari4java/generated/ari_2_0_0/actions/ActionChannels_impl_ari_2_0_0.java b/classes/ch/loway/oss/ari4java/generated/ari_2_0_0/actions/ActionChannels_impl_ari_2_0_0.java deleted file mode 100644 index a2c18d29..00000000 --- a/classes/ch/loway/oss/ari4java/generated/ari_2_0_0/actions/ActionChannels_impl_ari_2_0_0.java +++ /dev/null @@ -1,1002 +0,0 @@ -package ch.loway.oss.ari4java.generated.ari_2_0_0.actions; - -// ---------------------------------------------------- -// THIS CLASS WAS GENERATED AUTOMATICALLY -// PLEASE DO NOT EDIT -// Generated on: Tue Dec 19 09:55:49 CET 2017 -// ---------------------------------------------------- - -import ch.loway.oss.ari4java.generated.*; -import java.util.Date; -import java.util.List; -import java.util.Map; -import java.util.ArrayList; -import ch.loway.oss.ari4java.tools.BaseAriAction; -import ch.loway.oss.ari4java.tools.RestException; -import ch.loway.oss.ari4java.tools.AriCallback; -import ch.loway.oss.ari4java.tools.HttpParam; -import ch.loway.oss.ari4java.tools.HttpResponse; -import com.fasterxml.jackson.core.type.TypeReference; -import ch.loway.oss.ari4java.generated.ari_2_0_0.models.*; - -/********************************************************** - * - * Generated by: Apis - *********************************************************/ - - -public class ActionChannels_impl_ari_2_0_0 extends BaseAriAction implements ActionChannels { -/********************************************************** - * Active channels - * - * List all active channels in Asterisk. - *********************************************************/ -private void buildList() { -reset(); -url = "/channels"; -method = "GET"; -} - -@Override -public List list() throws RestException { -buildList(); -String json = httpActionSync(); -return deserializeJsonAsAbstractList( json, - new TypeReference>() {} ); -} - -@Override -public void list(AriCallback> callback) { -buildList(); -httpActionAsync(callback, new TypeReference>() {}); -} - -/********************************************************** - * Active channels - * - * Create a new channel (originate). - * The new channel is created immediately and a snapshot of it returned. If a Stasis application is provided it will be automatically subscribed to the originated channel for further events and updates. - *********************************************************/ -private void buildOriginate(String endpoint, String extension, String context, long priority, String label, String app, String appArgs, String callerId, int timeout, Map variables, String channelId, String otherChannelId, String originator, String formats) { -reset(); -url = "/channels"; -method = "POST"; -lParamQuery.add( HttpParam.build( "endpoint", endpoint) ); -lParamQuery.add( HttpParam.build( "extension", extension) ); -lParamQuery.add( HttpParam.build( "context", context) ); -lParamQuery.add( HttpParam.build( "priority", priority) ); -lParamQuery.add( HttpParam.build( "label", label) ); -lParamQuery.add( HttpParam.build( "app", app) ); -lParamQuery.add( HttpParam.build( "appArgs", appArgs) ); -lParamQuery.add( HttpParam.build( "callerId", callerId) ); -lParamQuery.add( HttpParam.build( "timeout", timeout) ); -lParamBody.addAll( HttpParam.build( "variables", variables) ); -lParamQuery.add( HttpParam.build( "channelId", channelId) ); -lParamQuery.add( HttpParam.build( "otherChannelId", otherChannelId) ); -lParamQuery.add( HttpParam.build( "originator", originator) ); -lParamQuery.add( HttpParam.build( "formats", formats) ); -lE.add( HttpResponse.build( 400, "Invalid parameters for originating a channel.") ); -lE.add( HttpResponse.build( 409, "Channel with given unique ID already exists.") ); -} - -@Override -public Channel originate(String endpoint, String extension, String context, long priority, String label, String app, String appArgs, String callerId, int timeout, Map variables, String channelId, String otherChannelId, String originator, String formats) throws RestException { -buildOriginate(endpoint, extension, context, priority, label, app, appArgs, callerId, timeout, variables, channelId, otherChannelId, originator, formats); -String json = httpActionSync(); -return deserializeJson( json, Channel_impl_ari_2_0_0.class ); -} - -@Override -public void originate(String endpoint, String extension, String context, long priority, String label, String app, String appArgs, String callerId, int timeout, Map variables, String channelId, String otherChannelId, String originator, String formats, AriCallback callback) { -buildOriginate(endpoint, extension, context, priority, label, app, appArgs, callerId, timeout, variables, channelId, otherChannelId, originator, formats); -httpActionAsync(callback, Channel_impl_ari_2_0_0.class); -} - -/********************************************************** - * Create a channel and place it in a Stasis app, but do not dial the channel yet. - * - * Create channel. - *********************************************************/ -private void buildCreate(String endpoint, String app, String appArgs, String channelId, String otherChannelId, String originator, String formats) { -reset(); -url = "/channels/create"; -method = "POST"; -lParamQuery.add( HttpParam.build( "endpoint", endpoint) ); -lParamQuery.add( HttpParam.build( "app", app) ); -lParamQuery.add( HttpParam.build( "appArgs", appArgs) ); -lParamQuery.add( HttpParam.build( "channelId", channelId) ); -lParamQuery.add( HttpParam.build( "otherChannelId", otherChannelId) ); -lParamQuery.add( HttpParam.build( "originator", originator) ); -lParamQuery.add( HttpParam.build( "formats", formats) ); -lE.add( HttpResponse.build( 409, "Channel with given unique ID already exists.") ); -} - -@Override -public Channel create(String endpoint, String app, String appArgs, String channelId, String otherChannelId, String originator, String formats) throws RestException { -buildCreate(endpoint, app, appArgs, channelId, otherChannelId, originator, formats); -String json = httpActionSync(); -return deserializeJson( json, Channel_impl_ari_2_0_0.class ); -} - -@Override -public void create(String endpoint, String app, String appArgs, String channelId, String otherChannelId, String originator, String formats, AriCallback callback) { -buildCreate(endpoint, app, appArgs, channelId, otherChannelId, originator, formats); -httpActionAsync(callback, Channel_impl_ari_2_0_0.class); -} - -/********************************************************** - * Active channel - * - * Channel details. - *********************************************************/ -private void buildGet(String channelId) { -reset(); -url = "/channels/" + channelId + ""; -method = "GET"; -lE.add( HttpResponse.build( 404, "Channel not found") ); -} - -@Override -public Channel get(String channelId) throws RestException { -buildGet(channelId); -String json = httpActionSync(); -return deserializeJson( json, Channel_impl_ari_2_0_0.class ); -} - -@Override -public void get(String channelId, AriCallback callback) { -buildGet(channelId); -httpActionAsync(callback, Channel_impl_ari_2_0_0.class); -} - -/********************************************************** - * Active channel - * - * Create a new channel (originate with id). - * The new channel is created immediately and a snapshot of it returned. If a Stasis application is provided it will be automatically subscribed to the originated channel for further events and updates. - *********************************************************/ -private void buildOriginateWithId(String channelId, String endpoint, String extension, String context, long priority, String label, String app, String appArgs, String callerId, int timeout, Map variables, String otherChannelId, String originator, String formats) { -reset(); -url = "/channels/" + channelId + ""; -method = "POST"; -lParamQuery.add( HttpParam.build( "endpoint", endpoint) ); -lParamQuery.add( HttpParam.build( "extension", extension) ); -lParamQuery.add( HttpParam.build( "context", context) ); -lParamQuery.add( HttpParam.build( "priority", priority) ); -lParamQuery.add( HttpParam.build( "label", label) ); -lParamQuery.add( HttpParam.build( "app", app) ); -lParamQuery.add( HttpParam.build( "appArgs", appArgs) ); -lParamQuery.add( HttpParam.build( "callerId", callerId) ); -lParamQuery.add( HttpParam.build( "timeout", timeout) ); -lParamBody.addAll( HttpParam.build( "variables", variables) ); -lParamQuery.add( HttpParam.build( "otherChannelId", otherChannelId) ); -lParamQuery.add( HttpParam.build( "originator", originator) ); -lParamQuery.add( HttpParam.build( "formats", formats) ); -lE.add( HttpResponse.build( 400, "Invalid parameters for originating a channel.") ); -lE.add( HttpResponse.build( 409, "Channel with given unique ID already exists.") ); -} - -@Override -public Channel originateWithId(String channelId, String endpoint, String extension, String context, long priority, String label, String app, String appArgs, String callerId, int timeout, Map variables, String otherChannelId, String originator, String formats) throws RestException { -buildOriginateWithId(channelId, endpoint, extension, context, priority, label, app, appArgs, callerId, timeout, variables, otherChannelId, originator, formats); -String json = httpActionSync(); -return deserializeJson( json, Channel_impl_ari_2_0_0.class ); -} - -@Override -public void originateWithId(String channelId, String endpoint, String extension, String context, long priority, String label, String app, String appArgs, String callerId, int timeout, Map variables, String otherChannelId, String originator, String formats, AriCallback callback) { -buildOriginateWithId(channelId, endpoint, extension, context, priority, label, app, appArgs, callerId, timeout, variables, otherChannelId, originator, formats); -httpActionAsync(callback, Channel_impl_ari_2_0_0.class); -} - -/********************************************************** - * Active channel - * - * Delete (i.e. hangup) a channel. - *********************************************************/ -private void buildHangup(String channelId, String reason) { -reset(); -url = "/channels/" + channelId + ""; -method = "DELETE"; -lParamQuery.add( HttpParam.build( "reason", reason) ); -lE.add( HttpResponse.build( 400, "Invalid reason for hangup provided") ); -lE.add( HttpResponse.build( 404, "Channel not found") ); -} - -@Override -public void hangup(String channelId, String reason) throws RestException { -buildHangup(channelId, reason); -String json = httpActionSync(); -} - -@Override -public void hangup(String channelId, String reason, AriCallback callback) { -buildHangup(channelId, reason); -httpActionAsync(callback); -} - -/********************************************************** - * Answer a channel - * - * Answer a channel. - *********************************************************/ -private void buildAnswer(String channelId) { -reset(); -url = "/channels/" + channelId + "/answer"; -method = "POST"; -lE.add( HttpResponse.build( 404, "Channel not found") ); -lE.add( HttpResponse.build( 409, "Channel not in a Stasis application") ); -lE.add( HttpResponse.build( 412, "Channel in invalid state") ); -} - -@Override -public void answer(String channelId) throws RestException { -buildAnswer(channelId); -String json = httpActionSync(); -} - -@Override -public void answer(String channelId, AriCallback callback) { -buildAnswer(channelId); -httpActionAsync(callback); -} - -/********************************************************** - * Exit application; continue execution in the dialplan - * - * Exit application; continue execution in the dialplan. - *********************************************************/ -private void buildContinueInDialplan(String channelId, String context, String extension, int priority, String label) { -reset(); -url = "/channels/" + channelId + "/continue"; -method = "POST"; -lParamQuery.add( HttpParam.build( "context", context) ); -lParamQuery.add( HttpParam.build( "extension", extension) ); -lParamQuery.add( HttpParam.build( "priority", priority) ); -lParamQuery.add( HttpParam.build( "label", label) ); -lE.add( HttpResponse.build( 404, "Channel not found") ); -lE.add( HttpResponse.build( 409, "Channel not in a Stasis application") ); -lE.add( HttpResponse.build( 412, "Channel in invalid state") ); -} - -@Override -public void continueInDialplan(String channelId, String context, String extension, int priority, String label) throws RestException { -buildContinueInDialplan(channelId, context, extension, priority, label); -String json = httpActionSync(); -} - -@Override -public void continueInDialplan(String channelId, String context, String extension, int priority, String label, AriCallback callback) { -buildContinueInDialplan(channelId, context, extension, priority, label); -httpActionAsync(callback); -} - -/********************************************************** - * Dial a channel - * - * Dial a created channel. - *********************************************************/ -private void buildDial(String channelId, String caller, int timeout) { -reset(); -url = "/channels/" + channelId + "/dial"; -method = "POST"; -lParamQuery.add( HttpParam.build( "caller", caller) ); -lParamQuery.add( HttpParam.build( "timeout", timeout) ); -lE.add( HttpResponse.build( 404, "Channel cannot be found.") ); -lE.add( HttpResponse.build( 409, "Channel cannot be dialed.") ); -} - -@Override -public void dial(String channelId, String caller, int timeout) throws RestException { -buildDial(channelId, caller, timeout); -String json = httpActionSync(); -} - -@Override -public void dial(String channelId, String caller, int timeout, AriCallback callback) { -buildDial(channelId, caller, timeout); -httpActionAsync(callback); -} - -/********************************************************** - * Send DTMF to a channel - * - * Send provided DTMF to a given channel. - *********************************************************/ -private void buildSendDTMF(String channelId, String dtmf, int before, int between, int duration, int after) { -reset(); -url = "/channels/" + channelId + "/dtmf"; -method = "POST"; -lParamQuery.add( HttpParam.build( "dtmf", dtmf) ); -lParamQuery.add( HttpParam.build( "before", before) ); -lParamQuery.add( HttpParam.build( "between", between) ); -lParamQuery.add( HttpParam.build( "duration", duration) ); -lParamQuery.add( HttpParam.build( "after", after) ); -lE.add( HttpResponse.build( 400, "DTMF is required") ); -lE.add( HttpResponse.build( 404, "Channel not found") ); -lE.add( HttpResponse.build( 409, "Channel not in a Stasis application") ); -lE.add( HttpResponse.build( 412, "Channel in invalid state") ); -} - -@Override -public void sendDTMF(String channelId, String dtmf, int before, int between, int duration, int after) throws RestException { -buildSendDTMF(channelId, dtmf, before, between, duration, after); -String json = httpActionSync(); -} - -@Override -public void sendDTMF(String channelId, String dtmf, int before, int between, int duration, int after, AriCallback callback) { -buildSendDTMF(channelId, dtmf, before, between, duration, after); -httpActionAsync(callback); -} - -/********************************************************** - * Put a channel on hold - * - * Hold a channel. - *********************************************************/ -private void buildHold(String channelId) { -reset(); -url = "/channels/" + channelId + "/hold"; -method = "POST"; -lE.add( HttpResponse.build( 404, "Channel not found") ); -lE.add( HttpResponse.build( 409, "Channel not in a Stasis application") ); -lE.add( HttpResponse.build( 412, "Channel in invalid state") ); -} - -@Override -public void hold(String channelId) throws RestException { -buildHold(channelId); -String json = httpActionSync(); -} - -@Override -public void hold(String channelId, AriCallback callback) { -buildHold(channelId); -httpActionAsync(callback); -} - -/********************************************************** - * Put a channel on hold - * - * Remove a channel from hold. - *********************************************************/ -private void buildUnhold(String channelId) { -reset(); -url = "/channels/" + channelId + "/hold"; -method = "DELETE"; -lE.add( HttpResponse.build( 404, "Channel not found") ); -lE.add( HttpResponse.build( 409, "Channel not in a Stasis application") ); -lE.add( HttpResponse.build( 412, "Channel in invalid state") ); -} - -@Override -public void unhold(String channelId) throws RestException { -buildUnhold(channelId); -String json = httpActionSync(); -} - -@Override -public void unhold(String channelId, AriCallback callback) { -buildUnhold(channelId); -httpActionAsync(callback); -} - -/********************************************************** - * Play music on hold to a channel - * - * Play music on hold to a channel. - * Using media operations such as /play on a channel playing MOH in this manner will suspend MOH without resuming automatically. If continuing music on hold is desired, the stasis application must reinitiate music on hold. - *********************************************************/ -private void buildStartMoh(String channelId, String mohClass) { -reset(); -url = "/channels/" + channelId + "/moh"; -method = "POST"; -lParamQuery.add( HttpParam.build( "mohClass", mohClass) ); -lE.add( HttpResponse.build( 404, "Channel not found") ); -lE.add( HttpResponse.build( 409, "Channel not in a Stasis application") ); -lE.add( HttpResponse.build( 412, "Channel in invalid state") ); -} - -@Override -public void startMoh(String channelId, String mohClass) throws RestException { -buildStartMoh(channelId, mohClass); -String json = httpActionSync(); -} - -@Override -public void startMoh(String channelId, String mohClass, AriCallback callback) { -buildStartMoh(channelId, mohClass); -httpActionAsync(callback); -} - -/********************************************************** - * Play music on hold to a channel - * - * Stop playing music on hold to a channel. - *********************************************************/ -private void buildStopMoh(String channelId) { -reset(); -url = "/channels/" + channelId + "/moh"; -method = "DELETE"; -lE.add( HttpResponse.build( 404, "Channel not found") ); -lE.add( HttpResponse.build( 409, "Channel not in a Stasis application") ); -lE.add( HttpResponse.build( 412, "Channel in invalid state") ); -} - -@Override -public void stopMoh(String channelId) throws RestException { -buildStopMoh(channelId); -String json = httpActionSync(); -} - -@Override -public void stopMoh(String channelId, AriCallback callback) { -buildStopMoh(channelId); -httpActionAsync(callback); -} - -/********************************************************** - * Mute a channel - * - * Mute a channel. - *********************************************************/ -private void buildMute(String channelId, String direction) { -reset(); -url = "/channels/" + channelId + "/mute"; -method = "POST"; -lParamQuery.add( HttpParam.build( "direction", direction) ); -lE.add( HttpResponse.build( 404, "Channel not found") ); -lE.add( HttpResponse.build( 409, "Channel not in a Stasis application") ); -lE.add( HttpResponse.build( 412, "Channel in invalid state") ); -} - -@Override -public void mute(String channelId, String direction) throws RestException { -buildMute(channelId, direction); -String json = httpActionSync(); -} - -@Override -public void mute(String channelId, String direction, AriCallback callback) { -buildMute(channelId, direction); -httpActionAsync(callback); -} - -/********************************************************** - * Mute a channel - * - * Unmute a channel. - *********************************************************/ -private void buildUnmute(String channelId, String direction) { -reset(); -url = "/channels/" + channelId + "/mute"; -method = "DELETE"; -lParamQuery.add( HttpParam.build( "direction", direction) ); -lE.add( HttpResponse.build( 404, "Channel not found") ); -lE.add( HttpResponse.build( 409, "Channel not in a Stasis application") ); -lE.add( HttpResponse.build( 412, "Channel in invalid state") ); -} - -@Override -public void unmute(String channelId, String direction) throws RestException { -buildUnmute(channelId, direction); -String json = httpActionSync(); -} - -@Override -public void unmute(String channelId, String direction, AriCallback callback) { -buildUnmute(channelId, direction); -httpActionAsync(callback); -} - -/********************************************************** - * Play media to a channel - * - * Start playback of media. - * The media URI may be any of a number of URI's. Currently sound:, recording:, number:, digits:, characters:, and tone: URI's are supported. This operation creates a playback resource that can be used to control the playback of media (pause, rewind, fast forward, etc.) - *********************************************************/ -private void buildPlay(String channelId, String media, String lang, int offsetms, int skipms, String playbackId) { -reset(); -url = "/channels/" + channelId + "/play"; -method = "POST"; -lParamQuery.add( HttpParam.build( "media", media) ); -lParamQuery.add( HttpParam.build( "lang", lang) ); -lParamQuery.add( HttpParam.build( "offsetms", offsetms) ); -lParamQuery.add( HttpParam.build( "skipms", skipms) ); -lParamQuery.add( HttpParam.build( "playbackId", playbackId) ); -lE.add( HttpResponse.build( 404, "Channel not found") ); -lE.add( HttpResponse.build( 409, "Channel not in a Stasis application") ); -lE.add( HttpResponse.build( 412, "Channel in invalid state") ); -} - -@Override -public Playback play(String channelId, String media, String lang, int offsetms, int skipms, String playbackId) throws RestException { -buildPlay(channelId, media, lang, offsetms, skipms, playbackId); -String json = httpActionSync(); -return deserializeJson( json, Playback_impl_ari_2_0_0.class ); -} - -@Override -public void play(String channelId, String media, String lang, int offsetms, int skipms, String playbackId, AriCallback callback) { -buildPlay(channelId, media, lang, offsetms, skipms, playbackId); -httpActionAsync(callback, Playback_impl_ari_2_0_0.class); -} - -/********************************************************** - * Play media to a channel - * - * Start playback of media and specify the playbackId. - * The media URI may be any of a number of URI's. Currently sound:, recording:, number:, digits:, characters:, and tone: URI's are supported. This operation creates a playback resource that can be used to control the playback of media (pause, rewind, fast forward, etc.) - *********************************************************/ -private void buildPlayWithId(String channelId, String playbackId, String media, String lang, int offsetms, int skipms) { -reset(); -url = "/channels/" + channelId + "/play/" + playbackId + ""; -method = "POST"; -lParamQuery.add( HttpParam.build( "media", media) ); -lParamQuery.add( HttpParam.build( "lang", lang) ); -lParamQuery.add( HttpParam.build( "offsetms", offsetms) ); -lParamQuery.add( HttpParam.build( "skipms", skipms) ); -lE.add( HttpResponse.build( 404, "Channel not found") ); -lE.add( HttpResponse.build( 409, "Channel not in a Stasis application") ); -lE.add( HttpResponse.build( 412, "Channel in invalid state") ); -} - -@Override -public Playback playWithId(String channelId, String playbackId, String media, String lang, int offsetms, int skipms) throws RestException { -buildPlayWithId(channelId, playbackId, media, lang, offsetms, skipms); -String json = httpActionSync(); -return deserializeJson( json, Playback_impl_ari_2_0_0.class ); -} - -@Override -public void playWithId(String channelId, String playbackId, String media, String lang, int offsetms, int skipms, AriCallback callback) { -buildPlayWithId(channelId, playbackId, media, lang, offsetms, skipms); -httpActionAsync(callback, Playback_impl_ari_2_0_0.class); -} - -/********************************************************** - * Record audio from a channel - * - * Start a recording. - * Record audio from a channel. Note that this will not capture audio sent to the channel. The bridge itself has a record feature if that's what you want. - *********************************************************/ -private void buildRecord(String channelId, String name, String format, int maxDurationSeconds, int maxSilenceSeconds, String ifExists, boolean beep, String terminateOn) { -reset(); -url = "/channels/" + channelId + "/record"; -method = "POST"; -lParamQuery.add( HttpParam.build( "name", name) ); -lParamQuery.add( HttpParam.build( "format", format) ); -lParamQuery.add( HttpParam.build( "maxDurationSeconds", maxDurationSeconds) ); -lParamQuery.add( HttpParam.build( "maxSilenceSeconds", maxSilenceSeconds) ); -lParamQuery.add( HttpParam.build( "ifExists", ifExists) ); -lParamQuery.add( HttpParam.build( "beep", beep) ); -lParamQuery.add( HttpParam.build( "terminateOn", terminateOn) ); -lE.add( HttpResponse.build( 400, "Invalid parameters") ); -lE.add( HttpResponse.build( 404, "Channel not found") ); -lE.add( HttpResponse.build( 409, "Channel is not in a Stasis application; the channel is currently bridged with other hcannels; A recording with the same name already exists on the system and can not be overwritten because it is in progress or ifExists=fail") ); -lE.add( HttpResponse.build( 422, "The format specified is unknown on this system") ); -} - -@Override -public LiveRecording record(String channelId, String name, String format, int maxDurationSeconds, int maxSilenceSeconds, String ifExists, boolean beep, String terminateOn) throws RestException { -buildRecord(channelId, name, format, maxDurationSeconds, maxSilenceSeconds, ifExists, beep, terminateOn); -String json = httpActionSync(); -return deserializeJson( json, LiveRecording_impl_ari_2_0_0.class ); -} - -@Override -public void record(String channelId, String name, String format, int maxDurationSeconds, int maxSilenceSeconds, String ifExists, boolean beep, String terminateOn, AriCallback callback) { -buildRecord(channelId, name, format, maxDurationSeconds, maxSilenceSeconds, ifExists, beep, terminateOn); -httpActionAsync(callback, LiveRecording_impl_ari_2_0_0.class); -} - -/********************************************************** - * Inform the channel that it should redirect itself to a different location. Note that this will almost certainly cause the channel to exit the application. - * - * Redirect the channel to a different location. - *********************************************************/ -private void buildRedirect(String channelId, String endpoint) { -reset(); -url = "/channels/" + channelId + "/redirect"; -method = "POST"; -lParamQuery.add( HttpParam.build( "endpoint", endpoint) ); -lE.add( HttpResponse.build( 400, "Endpoint parameter not provided") ); -lE.add( HttpResponse.build( 404, "Channel or endpoint not found") ); -lE.add( HttpResponse.build( 409, "Channel not in a Stasis application") ); -lE.add( HttpResponse.build( 422, "Endpoint is not the same type as the channel") ); -lE.add( HttpResponse.build( 412, "Channel in invalid state") ); -} - -@Override -public void redirect(String channelId, String endpoint) throws RestException { -buildRedirect(channelId, endpoint); -String json = httpActionSync(); -} - -@Override -public void redirect(String channelId, String endpoint, AriCallback callback) { -buildRedirect(channelId, endpoint); -httpActionAsync(callback); -} - -/********************************************************** - * Send a ringing indication to a channel - * - * Indicate ringing to a channel. - *********************************************************/ -private void buildRing(String channelId) { -reset(); -url = "/channels/" + channelId + "/ring"; -method = "POST"; -lE.add( HttpResponse.build( 404, "Channel not found") ); -lE.add( HttpResponse.build( 409, "Channel not in a Stasis application") ); -lE.add( HttpResponse.build( 412, "Channel in invalid state") ); -} - -@Override -public void ring(String channelId) throws RestException { -buildRing(channelId); -String json = httpActionSync(); -} - -@Override -public void ring(String channelId, AriCallback callback) { -buildRing(channelId); -httpActionAsync(callback); -} - -/********************************************************** - * Send a ringing indication to a channel - * - * Stop ringing indication on a channel if locally generated. - *********************************************************/ -private void buildRingStop(String channelId) { -reset(); -url = "/channels/" + channelId + "/ring"; -method = "DELETE"; -lE.add( HttpResponse.build( 404, "Channel not found") ); -lE.add( HttpResponse.build( 409, "Channel not in a Stasis application") ); -lE.add( HttpResponse.build( 412, "Channel in invalid state") ); -} - -@Override -public void ringStop(String channelId) throws RestException { -buildRingStop(channelId); -String json = httpActionSync(); -} - -@Override -public void ringStop(String channelId, AriCallback callback) { -buildRingStop(channelId); -httpActionAsync(callback); -} - -/********************************************************** - * Play silence to a channel - * - * Play silence to a channel. - * Using media operations such as /play on a channel playing silence in this manner will suspend silence without resuming automatically. - *********************************************************/ -private void buildStartSilence(String channelId) { -reset(); -url = "/channels/" + channelId + "/silence"; -method = "POST"; -lE.add( HttpResponse.build( 404, "Channel not found") ); -lE.add( HttpResponse.build( 409, "Channel not in a Stasis application") ); -lE.add( HttpResponse.build( 412, "Channel in invalid state") ); -} - -@Override -public void startSilence(String channelId) throws RestException { -buildStartSilence(channelId); -String json = httpActionSync(); -} - -@Override -public void startSilence(String channelId, AriCallback callback) { -buildStartSilence(channelId); -httpActionAsync(callback); -} - -/********************************************************** - * Play silence to a channel - * - * Stop playing silence to a channel. - *********************************************************/ -private void buildStopSilence(String channelId) { -reset(); -url = "/channels/" + channelId + "/silence"; -method = "DELETE"; -lE.add( HttpResponse.build( 404, "Channel not found") ); -lE.add( HttpResponse.build( 409, "Channel not in a Stasis application") ); -lE.add( HttpResponse.build( 412, "Channel in invalid state") ); -} - -@Override -public void stopSilence(String channelId) throws RestException { -buildStopSilence(channelId); -String json = httpActionSync(); -} - -@Override -public void stopSilence(String channelId, AriCallback callback) { -buildStopSilence(channelId); -httpActionAsync(callback); -} - -/********************************************************** - * Snoop (spy/whisper) on a channel - * - * Start snooping. - * Snoop (spy/whisper) on a specific channel. - *********************************************************/ -private void buildSnoopChannel(String channelId, String spy, String whisper, String app, String appArgs, String snoopId) { -reset(); -url = "/channels/" + channelId + "/snoop"; -method = "POST"; -lParamQuery.add( HttpParam.build( "spy", spy) ); -lParamQuery.add( HttpParam.build( "whisper", whisper) ); -lParamQuery.add( HttpParam.build( "app", app) ); -lParamQuery.add( HttpParam.build( "appArgs", appArgs) ); -lParamQuery.add( HttpParam.build( "snoopId", snoopId) ); -lE.add( HttpResponse.build( 400, "Invalid parameters") ); -lE.add( HttpResponse.build( 404, "Channel not found") ); -} - -@Override -public Channel snoopChannel(String channelId, String spy, String whisper, String app, String appArgs, String snoopId) throws RestException { -buildSnoopChannel(channelId, spy, whisper, app, appArgs, snoopId); -String json = httpActionSync(); -return deserializeJson( json, Channel_impl_ari_2_0_0.class ); -} - -@Override -public void snoopChannel(String channelId, String spy, String whisper, String app, String appArgs, String snoopId, AriCallback callback) { -buildSnoopChannel(channelId, spy, whisper, app, appArgs, snoopId); -httpActionAsync(callback, Channel_impl_ari_2_0_0.class); -} - -/********************************************************** - * Snoop (spy/whisper) on a channel - * - * Start snooping. - * Snoop (spy/whisper) on a specific channel. - *********************************************************/ -private void buildSnoopChannelWithId(String channelId, String snoopId, String spy, String whisper, String app, String appArgs) { -reset(); -url = "/channels/" + channelId + "/snoop/" + snoopId + ""; -method = "POST"; -lParamQuery.add( HttpParam.build( "spy", spy) ); -lParamQuery.add( HttpParam.build( "whisper", whisper) ); -lParamQuery.add( HttpParam.build( "app", app) ); -lParamQuery.add( HttpParam.build( "appArgs", appArgs) ); -lE.add( HttpResponse.build( 400, "Invalid parameters") ); -lE.add( HttpResponse.build( 404, "Channel not found") ); -} - -@Override -public Channel snoopChannelWithId(String channelId, String snoopId, String spy, String whisper, String app, String appArgs) throws RestException { -buildSnoopChannelWithId(channelId, snoopId, spy, whisper, app, appArgs); -String json = httpActionSync(); -return deserializeJson( json, Channel_impl_ari_2_0_0.class ); -} - -@Override -public void snoopChannelWithId(String channelId, String snoopId, String spy, String whisper, String app, String appArgs, AriCallback callback) { -buildSnoopChannelWithId(channelId, snoopId, spy, whisper, app, appArgs); -httpActionAsync(callback, Channel_impl_ari_2_0_0.class); -} - -/********************************************************** - * Variables on a channel - * - * Get the value of a channel variable or function. - *********************************************************/ -private void buildGetChannelVar(String channelId, String variable) { -reset(); -url = "/channels/" + channelId + "/variable"; -method = "GET"; -lParamQuery.add( HttpParam.build( "variable", variable) ); -lE.add( HttpResponse.build( 400, "Missing variable parameter.") ); -lE.add( HttpResponse.build( 404, "Channel or variable not found") ); -lE.add( HttpResponse.build( 409, "Channel not in a Stasis application") ); -} - -@Override -public Variable getChannelVar(String channelId, String variable) throws RestException { -buildGetChannelVar(channelId, variable); -String json = httpActionSync(); -return deserializeJson( json, Variable_impl_ari_2_0_0.class ); -} - -@Override -public void getChannelVar(String channelId, String variable, AriCallback callback) { -buildGetChannelVar(channelId, variable); -httpActionAsync(callback, Variable_impl_ari_2_0_0.class); -} - -/********************************************************** - * Variables on a channel - * - * Set the value of a channel variable or function. - *********************************************************/ -private void buildSetChannelVar(String channelId, String variable, String value) { -reset(); -url = "/channels/" + channelId + "/variable"; -method = "POST"; -lParamQuery.add( HttpParam.build( "variable", variable) ); -lParamQuery.add( HttpParam.build( "value", value) ); -lE.add( HttpResponse.build( 400, "Missing variable parameter.") ); -lE.add( HttpResponse.build( 404, "Channel not found") ); -lE.add( HttpResponse.build( 409, "Channel not in a Stasis application") ); -} - -@Override -public void setChannelVar(String channelId, String variable, String value) throws RestException { -buildSetChannelVar(channelId, variable, value); -String json = httpActionSync(); -} - -@Override -public void setChannelVar(String channelId, String variable, String value, AriCallback callback) { -buildSetChannelVar(channelId, variable, value); -httpActionAsync(callback); -} - -/********************************************************** - * - * - * @since ari_1_7_0 - *********************************************************/ -public void originate(String endpoint, String extension, String context, long priority, String label, String app, String appArgs, String callerId, int timeout, Map variables, String channelId, String otherChannelId, String originator, AriCallback callback){ - throw new UnsupportedOperationException("Method availble from ..."); -}; - -/********************************************************** - * Create a new channel (originate with id). - * The new channel is created immediately and a snapshot of it returned. If a Stasis application is provided it will be automatically subscribed to the originated channel for further events and updates. - * - * @since ari_1_5_0 - *********************************************************/ -public Channel originateWithId(String channelId, String endpoint, String extension, String context, long priority, String app, String appArgs, String callerId, int timeout, Map variables, String otherChannelId) throws RestException{ - throw new UnsupportedOperationException("Method availble from ..."); -}; - -/********************************************************** - * Start snooping. - * Snoop (spy/whisper) on a specific channel. - * - * @since ari_0_0_1 - *********************************************************/ -public Channel snoopChannel(String channelId, String spy, String whisper, String app, String appArgs) throws RestException{ - throw new UnsupportedOperationException("Method availble from ..."); -}; - -/********************************************************** - * - * - * @since ari_1_5_0 - *********************************************************/ -public void originate(String endpoint, String extension, String context, long priority, String app, String appArgs, String callerId, int timeout, Map variables, String channelId, String otherChannelId, AriCallback callback){ - throw new UnsupportedOperationException("Method availble from ..."); -}; - -/********************************************************** - * - * - * @since ari_0_0_1 - *********************************************************/ -public void continueInDialplan(String channelId, String context, String extension, int priority, AriCallback callback){ - throw new UnsupportedOperationException("Method availble from ..."); -}; - -/********************************************************** - * Start playback of media. - * The media URI may be any of a number of URI's. Currently sound: and recording: URI's are supported. This operation creates a playback resource that can be used to control the playback of media (pause, rewind, fast forward, etc.) - * - * @since ari_0_0_1 - *********************************************************/ -public Playback play(String channelId, String media, String lang, int offsetms, int skipms) throws RestException{ - throw new UnsupportedOperationException("Method availble from ..."); -}; - -/********************************************************** - * - * - * @since ari_0_0_1 - *********************************************************/ -public void play(String channelId, String media, String lang, int offsetms, int skipms, AriCallback callback){ - throw new UnsupportedOperationException("Method availble from ..."); -}; - -/********************************************************** - * - * - * @since ari_0_0_1 - *********************************************************/ -public void snoopChannel(String channelId, String spy, String whisper, String app, String appArgs, AriCallback callback){ - throw new UnsupportedOperationException("Method availble from ..."); -}; - -/********************************************************** - * Create a new channel (originate). - * The new channel is created immediately and a snapshot of it returned. If a Stasis application is provided it will be automatically subscribed to the originated channel for further events and updates. - * - * @since ari_1_7_0 - *********************************************************/ -public Channel originate(String endpoint, String extension, String context, long priority, String label, String app, String appArgs, String callerId, int timeout, Map variables, String channelId, String otherChannelId, String originator) throws RestException{ - throw new UnsupportedOperationException("Method availble from ..."); -}; - -/********************************************************** - * - * - * @since ari_1_5_0 - *********************************************************/ -public void originateWithId(String channelId, String endpoint, String extension, String context, long priority, String app, String appArgs, String callerId, int timeout, Map variables, String otherChannelId, AriCallback callback){ - throw new UnsupportedOperationException("Method availble from ..."); -}; - -/********************************************************** - * Create a new channel (originate with id). - * The new channel is created immediately and a snapshot of it returned. If a Stasis application is provided it will be automatically subscribed to the originated channel for further events and updates. - * - * @since ari_1_7_0 - *********************************************************/ -public Channel originateWithId(String channelId, String endpoint, String extension, String context, long priority, String label, String app, String appArgs, String callerId, int timeout, Map variables, String otherChannelId, String originator) throws RestException{ - throw new UnsupportedOperationException("Method availble from ..."); -}; - -/********************************************************** - * Create a new channel (originate). - * The new channel is created immediately and a snapshot of it returned. If a Stasis application is provided it will be automatically subscribed to the originated channel for further events and updates. - * - * @since ari_0_0_1 - *********************************************************/ -public Channel originate(String endpoint, String extension, String context, long priority, String app, String appArgs, String callerId, int timeout) throws RestException{ - throw new UnsupportedOperationException("Method availble from ..."); -}; - -/********************************************************** - * - * - * @since ari_1_7_0 - *********************************************************/ -public void originateWithId(String channelId, String endpoint, String extension, String context, long priority, String label, String app, String appArgs, String callerId, int timeout, Map variables, String otherChannelId, String originator, AriCallback callback){ - throw new UnsupportedOperationException("Method availble from ..."); -}; - -/********************************************************** - * Exit application{ - throw new UnsupportedOperationException("Method availble from ..."); -}; continue execution in the dialplan. - * - * - * @since ari_0_0_1 - *********************************************************/ -public void continueInDialplan(String channelId, String context, String extension, int priority) throws RestException{ - throw new UnsupportedOperationException("Method availble from ..."); -}; - -/********************************************************** - * Create a new channel (originate). - * The new channel is created immediately and a snapshot of it returned. If a Stasis application is provided it will be automatically subscribed to the originated channel for further events and updates. - * - * @since ari_1_5_0 - *********************************************************/ -public Channel originate(String endpoint, String extension, String context, long priority, String app, String appArgs, String callerId, int timeout, Map variables, String channelId, String otherChannelId) throws RestException{ - throw new UnsupportedOperationException("Method availble from ..."); -}; - -/********************************************************** - * - * - * @since ari_0_0_1 - *********************************************************/ -public void originate(String endpoint, String extension, String context, long priority, String app, String appArgs, String callerId, int timeout, AriCallback callback){ - throw new UnsupportedOperationException("Method availble from ..."); -}; - -}; - diff --git a/classes/ch/loway/oss/ari4java/generated/ari_2_0_0/actions/ActionDeviceStates_impl_ari_2_0_0.java b/classes/ch/loway/oss/ari4java/generated/ari_2_0_0/actions/ActionDeviceStates_impl_ari_2_0_0.java deleted file mode 100644 index faf0c7fb..00000000 --- a/classes/ch/loway/oss/ari4java/generated/ari_2_0_0/actions/ActionDeviceStates_impl_ari_2_0_0.java +++ /dev/null @@ -1,131 +0,0 @@ -package ch.loway.oss.ari4java.generated.ari_2_0_0.actions; - -// ---------------------------------------------------- -// THIS CLASS WAS GENERATED AUTOMATICALLY -// PLEASE DO NOT EDIT -// Generated on: Tue Dec 19 09:55:49 CET 2017 -// ---------------------------------------------------- - -import ch.loway.oss.ari4java.generated.*; -import java.util.Date; -import java.util.List; -import java.util.Map; -import java.util.ArrayList; -import ch.loway.oss.ari4java.tools.BaseAriAction; -import ch.loway.oss.ari4java.tools.RestException; -import ch.loway.oss.ari4java.tools.AriCallback; -import ch.loway.oss.ari4java.tools.HttpParam; -import ch.loway.oss.ari4java.tools.HttpResponse; -import com.fasterxml.jackson.core.type.TypeReference; -import ch.loway.oss.ari4java.generated.ari_2_0_0.models.*; - -/********************************************************** - * - * Generated by: Apis - *********************************************************/ - - -public class ActionDeviceStates_impl_ari_2_0_0 extends BaseAriAction implements ActionDeviceStates { -/********************************************************** - * Device states - * - * List all ARI controlled device states. - *********************************************************/ -private void buildList() { -reset(); -url = "/deviceStates"; -method = "GET"; -} - -@Override -public List list() throws RestException { -buildList(); -String json = httpActionSync(); -return deserializeJsonAsAbstractList( json, - new TypeReference>() {} ); -} - -@Override -public void list(AriCallback> callback) { -buildList(); -httpActionAsync(callback, new TypeReference>() {}); -} - -/********************************************************** - * Device state - * - * Retrieve the current state of a device. - *********************************************************/ -private void buildGet(String deviceName) { -reset(); -url = "/deviceStates/" + deviceName + ""; -method = "GET"; -} - -@Override -public DeviceState get(String deviceName) throws RestException { -buildGet(deviceName); -String json = httpActionSync(); -return deserializeJson( json, DeviceState_impl_ari_2_0_0.class ); -} - -@Override -public void get(String deviceName, AriCallback callback) { -buildGet(deviceName); -httpActionAsync(callback, DeviceState_impl_ari_2_0_0.class); -} - -/********************************************************** - * Device state - * - * Change the state of a device controlled by ARI. (Note - implicitly creates the device state). - *********************************************************/ -private void buildUpdate(String deviceName, String deviceState) { -reset(); -url = "/deviceStates/" + deviceName + ""; -method = "PUT"; -lParamQuery.add( HttpParam.build( "deviceState", deviceState) ); -lE.add( HttpResponse.build( 404, "Device name is missing") ); -lE.add( HttpResponse.build( 409, "Uncontrolled device specified") ); -} - -@Override -public void update(String deviceName, String deviceState) throws RestException { -buildUpdate(deviceName, deviceState); -String json = httpActionSync(); -} - -@Override -public void update(String deviceName, String deviceState, AriCallback callback) { -buildUpdate(deviceName, deviceState); -httpActionAsync(callback); -} - -/********************************************************** - * Device state - * - * Destroy a device-state controlled by ARI. - *********************************************************/ -private void buildDelete(String deviceName) { -reset(); -url = "/deviceStates/" + deviceName + ""; -method = "DELETE"; -lE.add( HttpResponse.build( 404, "Device name is missing") ); -lE.add( HttpResponse.build( 409, "Uncontrolled device specified") ); -} - -@Override -public void delete(String deviceName) throws RestException { -buildDelete(deviceName); -String json = httpActionSync(); -} - -@Override -public void delete(String deviceName, AriCallback callback) { -buildDelete(deviceName); -httpActionAsync(callback); -} - -/** No missing signatures from interface */ -}; - diff --git a/classes/ch/loway/oss/ari4java/generated/ari_2_0_0/actions/ActionEndpoints_impl_ari_2_0_0.java b/classes/ch/loway/oss/ari4java/generated/ari_2_0_0/actions/ActionEndpoints_impl_ari_2_0_0.java deleted file mode 100644 index b719d980..00000000 --- a/classes/ch/loway/oss/ari4java/generated/ari_2_0_0/actions/ActionEndpoints_impl_ari_2_0_0.java +++ /dev/null @@ -1,165 +0,0 @@ -package ch.loway.oss.ari4java.generated.ari_2_0_0.actions; - -// ---------------------------------------------------- -// THIS CLASS WAS GENERATED AUTOMATICALLY -// PLEASE DO NOT EDIT -// Generated on: Tue Dec 19 09:55:49 CET 2017 -// ---------------------------------------------------- - -import ch.loway.oss.ari4java.generated.*; -import java.util.Date; -import java.util.List; -import java.util.Map; -import java.util.ArrayList; -import ch.loway.oss.ari4java.tools.BaseAriAction; -import ch.loway.oss.ari4java.tools.RestException; -import ch.loway.oss.ari4java.tools.AriCallback; -import ch.loway.oss.ari4java.tools.HttpParam; -import ch.loway.oss.ari4java.tools.HttpResponse; -import com.fasterxml.jackson.core.type.TypeReference; -import ch.loway.oss.ari4java.generated.ari_2_0_0.models.*; - -/********************************************************** - * - * Generated by: Apis - *********************************************************/ - - -public class ActionEndpoints_impl_ari_2_0_0 extends BaseAriAction implements ActionEndpoints { -/********************************************************** - * Asterisk endpoints - * - * List all endpoints. - *********************************************************/ -private void buildList() { -reset(); -url = "/endpoints"; -method = "GET"; -} - -@Override -public List list() throws RestException { -buildList(); -String json = httpActionSync(); -return deserializeJsonAsAbstractList( json, - new TypeReference>() {} ); -} - -@Override -public void list(AriCallback> callback) { -buildList(); -httpActionAsync(callback, new TypeReference>() {}); -} - -/********************************************************** - * Send a message to some technology URI or endpoint. - * - * Send a message to some technology URI or endpoint. - *********************************************************/ -private void buildSendMessage(String to, String from, String body, Map variables) { -reset(); -url = "/endpoints/sendMessage"; -method = "PUT"; -lParamQuery.add( HttpParam.build( "to", to) ); -lParamQuery.add( HttpParam.build( "from", from) ); -lParamQuery.add( HttpParam.build( "body", body) ); -lParamBody.addAll( HttpParam.build( "variables", variables) ); -lE.add( HttpResponse.build( 400, "Invalid parameters for sending a message.") ); -lE.add( HttpResponse.build( 404, "Endpoint not found") ); -} - -@Override -public void sendMessage(String to, String from, String body, Map variables) throws RestException { -buildSendMessage(to, from, body, variables); -String json = httpActionSync(); -} - -@Override -public void sendMessage(String to, String from, String body, Map variables, AriCallback callback) { -buildSendMessage(to, from, body, variables); -httpActionAsync(callback); -} - -/********************************************************** - * Asterisk endpoints - * - * List available endoints for a given endpoint technology. - *********************************************************/ -private void buildListByTech(String tech) { -reset(); -url = "/endpoints/" + tech + ""; -method = "GET"; -lE.add( HttpResponse.build( 404, "Endpoints not found") ); -} - -@Override -public List listByTech(String tech) throws RestException { -buildListByTech(tech); -String json = httpActionSync(); -return deserializeJsonAsAbstractList( json, - new TypeReference>() {} ); -} - -@Override -public void listByTech(String tech, AriCallback> callback) { -buildListByTech(tech); -httpActionAsync(callback, new TypeReference>() {}); -} - -/********************************************************** - * Single endpoint - * - * Details for an endpoint. - *********************************************************/ -private void buildGet(String tech, String resource) { -reset(); -url = "/endpoints/" + tech + "/" + resource + ""; -method = "GET"; -lE.add( HttpResponse.build( 400, "Invalid parameters for sending a message.") ); -lE.add( HttpResponse.build( 404, "Endpoints not found") ); -} - -@Override -public Endpoint get(String tech, String resource) throws RestException { -buildGet(tech, resource); -String json = httpActionSync(); -return deserializeJson( json, Endpoint_impl_ari_2_0_0.class ); -} - -@Override -public void get(String tech, String resource, AriCallback callback) { -buildGet(tech, resource); -httpActionAsync(callback, Endpoint_impl_ari_2_0_0.class); -} - -/********************************************************** - * Send a message to some endpoint in a technology. - * - * Send a message to some endpoint in a technology. - *********************************************************/ -private void buildSendMessageToEndpoint(String tech, String resource, String from, String body, Map variables) { -reset(); -url = "/endpoints/" + tech + "/" + resource + "/sendMessage"; -method = "PUT"; -lParamQuery.add( HttpParam.build( "from", from) ); -lParamQuery.add( HttpParam.build( "body", body) ); -lParamBody.addAll( HttpParam.build( "variables", variables) ); -lE.add( HttpResponse.build( 400, "Invalid parameters for sending a message.") ); -lE.add( HttpResponse.build( 404, "Endpoint not found") ); -} - -@Override -public void sendMessageToEndpoint(String tech, String resource, String from, String body, Map variables) throws RestException { -buildSendMessageToEndpoint(tech, resource, from, body, variables); -String json = httpActionSync(); -} - -@Override -public void sendMessageToEndpoint(String tech, String resource, String from, String body, Map variables, AriCallback callback) { -buildSendMessageToEndpoint(tech, resource, from, body, variables); -httpActionAsync(callback); -} - -/** No missing signatures from interface */ -}; - diff --git a/classes/ch/loway/oss/ari4java/generated/ari_2_0_0/actions/ActionEvents_impl_ari_2_0_0.java b/classes/ch/loway/oss/ari4java/generated/ari_2_0_0/actions/ActionEvents_impl_ari_2_0_0.java deleted file mode 100644 index 87a11775..00000000 --- a/classes/ch/loway/oss/ari4java/generated/ari_2_0_0/actions/ActionEvents_impl_ari_2_0_0.java +++ /dev/null @@ -1,103 +0,0 @@ -package ch.loway.oss.ari4java.generated.ari_2_0_0.actions; - -// ---------------------------------------------------- -// THIS CLASS WAS GENERATED AUTOMATICALLY -// PLEASE DO NOT EDIT -// Generated on: Tue Dec 19 09:55:49 CET 2017 -// ---------------------------------------------------- - -import ch.loway.oss.ari4java.generated.*; -import java.util.Date; -import java.util.List; -import java.util.Map; -import java.util.ArrayList; -import ch.loway.oss.ari4java.tools.BaseAriAction; -import ch.loway.oss.ari4java.tools.RestException; -import ch.loway.oss.ari4java.tools.AriCallback; -import ch.loway.oss.ari4java.tools.HttpParam; -import ch.loway.oss.ari4java.tools.HttpResponse; -import com.fasterxml.jackson.core.type.TypeReference; -import ch.loway.oss.ari4java.generated.ari_2_0_0.models.*; - -/********************************************************** - * - * Generated by: Apis - *********************************************************/ - - -public class ActionEvents_impl_ari_2_0_0 extends BaseAriAction implements ActionEvents { -/********************************************************** - * Events from Asterisk to applications - * - * WebSocket connection for events. - *********************************************************/ -private void buildEventWebsocket(String app, boolean subscribeAll) { -reset(); -url = "/events"; -method = "GET"; -lParamQuery.add( HttpParam.build( "app", app) ); -lParamQuery.add( HttpParam.build( "subscribeAll", subscribeAll) ); -wsUpgrade = true; -} - -@Override -public Message eventWebsocket(String app, boolean subscribeAll) throws RestException { -throw new RestException("No synchronous operation on WebSocket"); -} - -@Override -public void eventWebsocket(String app, boolean subscribeAll, AriCallback callback) { -buildEventWebsocket(app, subscribeAll); -httpActionAsync(callback, Message_impl_ari_2_0_0.class); -} - -/********************************************************** - * Stasis application user events - * - * Generate a user event. - *********************************************************/ -private void buildUserEvent(String eventName, String application, String source, Map variables) { -reset(); -url = "/events/user/" + eventName + ""; -method = "POST"; -lParamQuery.add( HttpParam.build( "application", application) ); -lParamQuery.add( HttpParam.build( "source", source) ); -lParamBody.addAll( HttpParam.build( "variables", variables) ); -lE.add( HttpResponse.build( 404, "Application does not exist.") ); -lE.add( HttpResponse.build( 422, "Event source not found.") ); -lE.add( HttpResponse.build( 400, "Invalid even tsource URI or userevent data.") ); -} - -@Override -public void userEvent(String eventName, String application, String source, Map variables) throws RestException { -buildUserEvent(eventName, application, source, variables); -String json = httpActionSync(); -} - -@Override -public void userEvent(String eventName, String application, String source, Map variables, AriCallback callback) { -buildUserEvent(eventName, application, source, variables); -httpActionAsync(callback); -} - -/********************************************************** - * WebSocket connection for events. - * - * - * @since ari_0_0_1 - *********************************************************/ -public Message eventWebsocket(String app) throws RestException{ - throw new UnsupportedOperationException("Method availble from ..."); -}; - -/********************************************************** - * - * - * @since ari_0_0_1 - *********************************************************/ -public void eventWebsocket(String app, AriCallback callback){ - throw new UnsupportedOperationException("Method availble from ..."); -}; - -}; - diff --git a/classes/ch/loway/oss/ari4java/generated/ari_2_0_0/actions/ActionPlaybacks_impl_ari_2_0_0.java b/classes/ch/loway/oss/ari4java/generated/ari_2_0_0/actions/ActionPlaybacks_impl_ari_2_0_0.java deleted file mode 100644 index cda36ca1..00000000 --- a/classes/ch/loway/oss/ari4java/generated/ari_2_0_0/actions/ActionPlaybacks_impl_ari_2_0_0.java +++ /dev/null @@ -1,107 +0,0 @@ -package ch.loway.oss.ari4java.generated.ari_2_0_0.actions; - -// ---------------------------------------------------- -// THIS CLASS WAS GENERATED AUTOMATICALLY -// PLEASE DO NOT EDIT -// Generated on: Tue Dec 19 09:55:49 CET 2017 -// ---------------------------------------------------- - -import ch.loway.oss.ari4java.generated.*; -import java.util.Date; -import java.util.List; -import java.util.Map; -import java.util.ArrayList; -import ch.loway.oss.ari4java.tools.BaseAriAction; -import ch.loway.oss.ari4java.tools.RestException; -import ch.loway.oss.ari4java.tools.AriCallback; -import ch.loway.oss.ari4java.tools.HttpParam; -import ch.loway.oss.ari4java.tools.HttpResponse; -import com.fasterxml.jackson.core.type.TypeReference; -import ch.loway.oss.ari4java.generated.ari_2_0_0.models.*; - -/********************************************************** - * - * Generated by: Apis - *********************************************************/ - - -public class ActionPlaybacks_impl_ari_2_0_0 extends BaseAriAction implements ActionPlaybacks { -/********************************************************** - * Control object for a playback operation. - * - * Get a playback's details. - *********************************************************/ -private void buildGet(String playbackId) { -reset(); -url = "/playbacks/" + playbackId + ""; -method = "GET"; -lE.add( HttpResponse.build( 404, "The playback cannot be found") ); -} - -@Override -public Playback get(String playbackId) throws RestException { -buildGet(playbackId); -String json = httpActionSync(); -return deserializeJson( json, Playback_impl_ari_2_0_0.class ); -} - -@Override -public void get(String playbackId, AriCallback callback) { -buildGet(playbackId); -httpActionAsync(callback, Playback_impl_ari_2_0_0.class); -} - -/********************************************************** - * Control object for a playback operation. - * - * Stop a playback. - *********************************************************/ -private void buildStop(String playbackId) { -reset(); -url = "/playbacks/" + playbackId + ""; -method = "DELETE"; -lE.add( HttpResponse.build( 404, "The playback cannot be found") ); -} - -@Override -public void stop(String playbackId) throws RestException { -buildStop(playbackId); -String json = httpActionSync(); -} - -@Override -public void stop(String playbackId, AriCallback callback) { -buildStop(playbackId); -httpActionAsync(callback); -} - -/********************************************************** - * Control object for a playback operation. - * - * Control a playback. - *********************************************************/ -private void buildControl(String playbackId, String operation) { -reset(); -url = "/playbacks/" + playbackId + "/control"; -method = "POST"; -lParamQuery.add( HttpParam.build( "operation", operation) ); -lE.add( HttpResponse.build( 400, "The provided operation parameter was invalid") ); -lE.add( HttpResponse.build( 404, "The playback cannot be found") ); -lE.add( HttpResponse.build( 409, "The operation cannot be performed in the playback's current state") ); -} - -@Override -public void control(String playbackId, String operation) throws RestException { -buildControl(playbackId, operation); -String json = httpActionSync(); -} - -@Override -public void control(String playbackId, String operation, AriCallback callback) { -buildControl(playbackId, operation); -httpActionAsync(callback); -} - -/** No missing signatures from interface */ -}; - diff --git a/classes/ch/loway/oss/ari4java/generated/ari_2_0_0/actions/ActionRecordings_impl_ari_2_0_0.java b/classes/ch/loway/oss/ari4java/generated/ari_2_0_0/actions/ActionRecordings_impl_ari_2_0_0.java deleted file mode 100644 index a1e631af..00000000 --- a/classes/ch/loway/oss/ari4java/generated/ari_2_0_0/actions/ActionRecordings_impl_ari_2_0_0.java +++ /dev/null @@ -1,333 +0,0 @@ -package ch.loway.oss.ari4java.generated.ari_2_0_0.actions; - -// ---------------------------------------------------- -// THIS CLASS WAS GENERATED AUTOMATICALLY -// PLEASE DO NOT EDIT -// Generated on: Tue Dec 19 09:55:49 CET 2017 -// ---------------------------------------------------- - -import ch.loway.oss.ari4java.generated.*; -import java.util.Date; -import java.util.List; -import java.util.Map; -import java.util.ArrayList; -import ch.loway.oss.ari4java.tools.BaseAriAction; -import ch.loway.oss.ari4java.tools.RestException; -import ch.loway.oss.ari4java.tools.AriCallback; -import ch.loway.oss.ari4java.tools.HttpParam; -import ch.loway.oss.ari4java.tools.HttpResponse; -import com.fasterxml.jackson.core.type.TypeReference; -import ch.loway.oss.ari4java.generated.ari_2_0_0.models.*; - -/********************************************************** - * - * Generated by: Apis - *********************************************************/ - - -public class ActionRecordings_impl_ari_2_0_0 extends BaseAriAction implements ActionRecordings { -/********************************************************** - * A recording that is in progress - * - * List live recordings. - *********************************************************/ -private void buildGetLive(String recordingName) { -reset(); -url = "/recordings/live/" + recordingName + ""; -method = "GET"; -lE.add( HttpResponse.build( 404, "Recording not found") ); -} - -@Override -public LiveRecording getLive(String recordingName) throws RestException { -buildGetLive(recordingName); -String json = httpActionSync(); -return deserializeJson( json, LiveRecording_impl_ari_2_0_0.class ); -} - -@Override -public void getLive(String recordingName, AriCallback callback) { -buildGetLive(recordingName); -httpActionAsync(callback, LiveRecording_impl_ari_2_0_0.class); -} - -/********************************************************** - * A recording that is in progress - * - * Stop a live recording and discard it. - *********************************************************/ -private void buildCancel(String recordingName) { -reset(); -url = "/recordings/live/" + recordingName + ""; -method = "DELETE"; -lE.add( HttpResponse.build( 404, "Recording not found") ); -} - -@Override -public void cancel(String recordingName) throws RestException { -buildCancel(recordingName); -String json = httpActionSync(); -} - -@Override -public void cancel(String recordingName, AriCallback callback) { -buildCancel(recordingName); -httpActionAsync(callback); -} - -/********************************************************** - * - * - * Mute a live recording. - * Muting a recording suspends silence detection, which will be restarted when the recording is unmuted. - *********************************************************/ -private void buildMute(String recordingName) { -reset(); -url = "/recordings/live/" + recordingName + "/mute"; -method = "POST"; -lE.add( HttpResponse.build( 404, "Recording not found") ); -lE.add( HttpResponse.build( 409, "Recording not in session") ); -} - -@Override -public void mute(String recordingName) throws RestException { -buildMute(recordingName); -String json = httpActionSync(); -} - -@Override -public void mute(String recordingName, AriCallback callback) { -buildMute(recordingName); -httpActionAsync(callback); -} - -/********************************************************** - * - * - * Unmute a live recording. - *********************************************************/ -private void buildUnmute(String recordingName) { -reset(); -url = "/recordings/live/" + recordingName + "/mute"; -method = "DELETE"; -lE.add( HttpResponse.build( 404, "Recording not found") ); -lE.add( HttpResponse.build( 409, "Recording not in session") ); -} - -@Override -public void unmute(String recordingName) throws RestException { -buildUnmute(recordingName); -String json = httpActionSync(); -} - -@Override -public void unmute(String recordingName, AriCallback callback) { -buildUnmute(recordingName); -httpActionAsync(callback); -} - -/********************************************************** - * - * - * Pause a live recording. - * Pausing a recording suspends silence detection, which will be restarted when the recording is unpaused. Paused time is not included in the accounting for maxDurationSeconds. - *********************************************************/ -private void buildPause(String recordingName) { -reset(); -url = "/recordings/live/" + recordingName + "/pause"; -method = "POST"; -lE.add( HttpResponse.build( 404, "Recording not found") ); -lE.add( HttpResponse.build( 409, "Recording not in session") ); -} - -@Override -public void pause(String recordingName) throws RestException { -buildPause(recordingName); -String json = httpActionSync(); -} - -@Override -public void pause(String recordingName, AriCallback callback) { -buildPause(recordingName); -httpActionAsync(callback); -} - -/********************************************************** - * - * - * Unpause a live recording. - *********************************************************/ -private void buildUnpause(String recordingName) { -reset(); -url = "/recordings/live/" + recordingName + "/pause"; -method = "DELETE"; -lE.add( HttpResponse.build( 404, "Recording not found") ); -lE.add( HttpResponse.build( 409, "Recording not in session") ); -} - -@Override -public void unpause(String recordingName) throws RestException { -buildUnpause(recordingName); -String json = httpActionSync(); -} - -@Override -public void unpause(String recordingName, AriCallback callback) { -buildUnpause(recordingName); -httpActionAsync(callback); -} - -/********************************************************** - * - * - * Stop a live recording and store it. - *********************************************************/ -private void buildStop(String recordingName) { -reset(); -url = "/recordings/live/" + recordingName + "/stop"; -method = "POST"; -lE.add( HttpResponse.build( 404, "Recording not found") ); -} - -@Override -public void stop(String recordingName) throws RestException { -buildStop(recordingName); -String json = httpActionSync(); -} - -@Override -public void stop(String recordingName, AriCallback callback) { -buildStop(recordingName); -httpActionAsync(callback); -} - -/********************************************************** - * Recordings - * - * List recordings that are complete. - *********************************************************/ -private void buildListStored() { -reset(); -url = "/recordings/stored"; -method = "GET"; -} - -@Override -public List listStored() throws RestException { -buildListStored(); -String json = httpActionSync(); -return deserializeJsonAsAbstractList( json, - new TypeReference>() {} ); -} - -@Override -public void listStored(AriCallback> callback) { -buildListStored(); -httpActionAsync(callback, new TypeReference>() {}); -} - -/********************************************************** - * Individual recording - * - * Get a stored recording's details. - *********************************************************/ -private void buildGetStored(String recordingName) { -reset(); -url = "/recordings/stored/" + recordingName + ""; -method = "GET"; -lE.add( HttpResponse.build( 404, "Recording not found") ); -} - -@Override -public StoredRecording getStored(String recordingName) throws RestException { -buildGetStored(recordingName); -String json = httpActionSync(); -return deserializeJson( json, StoredRecording_impl_ari_2_0_0.class ); -} - -@Override -public void getStored(String recordingName, AriCallback callback) { -buildGetStored(recordingName); -httpActionAsync(callback, StoredRecording_impl_ari_2_0_0.class); -} - -/********************************************************** - * Individual recording - * - * Delete a stored recording. - *********************************************************/ -private void buildDeleteStored(String recordingName) { -reset(); -url = "/recordings/stored/" + recordingName + ""; -method = "DELETE"; -lE.add( HttpResponse.build( 404, "Recording not found") ); -} - -@Override -public void deleteStored(String recordingName) throws RestException { -buildDeleteStored(recordingName); -String json = httpActionSync(); -} - -@Override -public void deleteStored(String recordingName, AriCallback callback) { -buildDeleteStored(recordingName); -httpActionAsync(callback); -} - -/********************************************************** - * Copy an individual recording - * - * Copy a stored recording. - *********************************************************/ -private void buildCopyStored(String recordingName, String destinationRecordingName) { -reset(); -url = "/recordings/stored/" + recordingName + "/copy"; -method = "POST"; -lParamQuery.add( HttpParam.build( "destinationRecordingName", destinationRecordingName) ); -lE.add( HttpResponse.build( 404, "Recording not found") ); -lE.add( HttpResponse.build( 409, "A recording with the same name already exists on the system") ); -} - -@Override -public StoredRecording copyStored(String recordingName, String destinationRecordingName) throws RestException { -buildCopyStored(recordingName, destinationRecordingName); -String json = httpActionSync(); -return deserializeJson( json, StoredRecording_impl_ari_2_0_0.class ); -} - -@Override -public void copyStored(String recordingName, String destinationRecordingName, AriCallback callback) { -buildCopyStored(recordingName, destinationRecordingName); -httpActionAsync(callback, StoredRecording_impl_ari_2_0_0.class); -} - -/********************************************************** - * The actual file associated with the stored recording - * - * Get the file associated with the stored recording. - *********************************************************/ -private void buildGetStoredFile(String recordingName) { -reset(); -url = "/recordings/stored/" + recordingName + "/file"; -method = "GET"; -lE.add( HttpResponse.build( 403, "The recording file could not be opened") ); -lE.add( HttpResponse.build( 404, "Recording not found") ); -} - -@Override -public byte[] getStoredFile(String recordingName) throws RestException { -buildGetStoredFile(recordingName); -String json = httpActionSync(); -return deserializeJson( json, byte[].class ); -} - -@Override -public void getStoredFile(String recordingName, AriCallback callback) { -buildGetStoredFile(recordingName); -httpActionAsync(callback, byte[].class); -} - -/** No missing signatures from interface */ -}; - diff --git a/classes/ch/loway/oss/ari4java/generated/ari_2_0_0/actions/ActionSounds_impl_ari_2_0_0.java b/classes/ch/loway/oss/ari4java/generated/ari_2_0_0/actions/ActionSounds_impl_ari_2_0_0.java deleted file mode 100644 index 8f1e5168..00000000 --- a/classes/ch/loway/oss/ari4java/generated/ari_2_0_0/actions/ActionSounds_impl_ari_2_0_0.java +++ /dev/null @@ -1,82 +0,0 @@ -package ch.loway.oss.ari4java.generated.ari_2_0_0.actions; - -// ---------------------------------------------------- -// THIS CLASS WAS GENERATED AUTOMATICALLY -// PLEASE DO NOT EDIT -// Generated on: Tue Dec 19 09:55:49 CET 2017 -// ---------------------------------------------------- - -import ch.loway.oss.ari4java.generated.*; -import java.util.Date; -import java.util.List; -import java.util.Map; -import java.util.ArrayList; -import ch.loway.oss.ari4java.tools.BaseAriAction; -import ch.loway.oss.ari4java.tools.RestException; -import ch.loway.oss.ari4java.tools.AriCallback; -import ch.loway.oss.ari4java.tools.HttpParam; -import ch.loway.oss.ari4java.tools.HttpResponse; -import com.fasterxml.jackson.core.type.TypeReference; -import ch.loway.oss.ari4java.generated.ari_2_0_0.models.*; - -/********************************************************** - * - * Generated by: Apis - *********************************************************/ - - -public class ActionSounds_impl_ari_2_0_0 extends BaseAriAction implements ActionSounds { -/********************************************************** - * Sounds - * - * List all sounds. - *********************************************************/ -private void buildList(String lang, String format) { -reset(); -url = "/sounds"; -method = "GET"; -lParamQuery.add( HttpParam.build( "lang", lang) ); -lParamQuery.add( HttpParam.build( "format", format) ); -} - -@Override -public List list(String lang, String format) throws RestException { -buildList(lang, format); -String json = httpActionSync(); -return deserializeJsonAsAbstractList( json, - new TypeReference>() {} ); -} - -@Override -public void list(String lang, String format, AriCallback> callback) { -buildList(lang, format); -httpActionAsync(callback, new TypeReference>() {}); -} - -/********************************************************** - * Individual sound - * - * Get a sound's details. - *********************************************************/ -private void buildGet(String soundId) { -reset(); -url = "/sounds/" + soundId + ""; -method = "GET"; -} - -@Override -public Sound get(String soundId) throws RestException { -buildGet(soundId); -String json = httpActionSync(); -return deserializeJson( json, Sound_impl_ari_2_0_0.class ); -} - -@Override -public void get(String soundId, AriCallback callback) { -buildGet(soundId); -httpActionAsync(callback, Sound_impl_ari_2_0_0.class); -} - -/** No missing signatures from interface */ -}; - diff --git a/classes/ch/loway/oss/ari4java/generated/ari_2_0_0/models/ApplicationReplaced_impl_ari_2_0_0.java b/classes/ch/loway/oss/ari4java/generated/ari_2_0_0/models/ApplicationReplaced_impl_ari_2_0_0.java deleted file mode 100644 index 5a96882b..00000000 --- a/classes/ch/loway/oss/ari4java/generated/ari_2_0_0/models/ApplicationReplaced_impl_ari_2_0_0.java +++ /dev/null @@ -1,28 +0,0 @@ -package ch.loway.oss.ari4java.generated.ari_2_0_0.models; - -// ---------------------------------------------------- -// THIS CLASS WAS GENERATED AUTOMATICALLY -// PLEASE DO NOT EDIT -// Generated on: Tue Dec 19 09:55:49 CET 2017 -// ---------------------------------------------------- - -import ch.loway.oss.ari4java.generated.*; -import com.fasterxml.jackson.databind.annotation.JsonDeserialize; -import java.util.Date; -import java.util.List; -import java.util.Map; - -/********************************************************** - * Notification that another WebSocket has taken over for an application. - * - * An application may only be subscribed to by a single WebSocket at a time. If multiple WebSockets attempt to subscribe to the same application, the newer WebSocket wins, and the older one receives this event. - * - * Defined in file: events.json - * Generated by: Model - *********************************************************/ - -public class ApplicationReplaced_impl_ari_2_0_0 extends Event_impl_ari_2_0_0 implements ApplicationReplaced, java.io.Serializable { -private static final long serialVersionUID = 1L; -/** No missing signatures from interface */ -} - diff --git a/classes/ch/loway/oss/ari4java/generated/ari_2_0_0/models/Application_impl_ari_2_0_0.java b/classes/ch/loway/oss/ari4java/generated/ari_2_0_0/models/Application_impl_ari_2_0_0.java deleted file mode 100644 index 00864a46..00000000 --- a/classes/ch/loway/oss/ari4java/generated/ari_2_0_0/models/Application_impl_ari_2_0_0.java +++ /dev/null @@ -1,81 +0,0 @@ -package ch.loway.oss.ari4java.generated.ari_2_0_0.models; - -// ---------------------------------------------------- -// THIS CLASS WAS GENERATED AUTOMATICALLY -// PLEASE DO NOT EDIT -// Generated on: Tue Dec 19 09:55:49 CET 2017 -// ---------------------------------------------------- - -import ch.loway.oss.ari4java.generated.*; -import com.fasterxml.jackson.databind.annotation.JsonDeserialize; -import java.util.Date; -import java.util.List; -import java.util.Map; - -/********************************************************** - * Details of a Stasis application - * - * Defined in file: applications.json - * Generated by: Model - *********************************************************/ - -public class Application_impl_ari_2_0_0 implements Application, java.io.Serializable { -private static final long serialVersionUID = 1L; - /** Id's for bridges subscribed to. */ - private List bridge_ids; - public List getBridge_ids() { - return bridge_ids; - } - - @JsonDeserialize( contentAs=String.class ) - public void setBridge_ids(List val ) { - bridge_ids = val; - } - - /** Id's for channels subscribed to. */ - private List channel_ids; - public List getChannel_ids() { - return channel_ids; - } - - @JsonDeserialize( contentAs=String.class ) - public void setChannel_ids(List val ) { - channel_ids = val; - } - - /** Names of the devices subscribed to. */ - private List device_names; - public List getDevice_names() { - return device_names; - } - - @JsonDeserialize( contentAs=String.class ) - public void setDevice_names(List val ) { - device_names = val; - } - - /** {tech}/{resource} for endpoints subscribed to. */ - private List endpoint_ids; - public List getEndpoint_ids() { - return endpoint_ids; - } - - @JsonDeserialize( contentAs=String.class ) - public void setEndpoint_ids(List val ) { - endpoint_ids = val; - } - - /** Name of this application */ - private String name; - public String getName() { - return name; - } - - @JsonDeserialize( as=String.class ) - public void setName(String val ) { - name = val; - } - -/** No missing signatures from interface */ -} - diff --git a/classes/ch/loway/oss/ari4java/generated/ari_2_0_0/models/AsteriskInfo_impl_ari_2_0_0.java b/classes/ch/loway/oss/ari4java/generated/ari_2_0_0/models/AsteriskInfo_impl_ari_2_0_0.java deleted file mode 100644 index f2da8b0a..00000000 --- a/classes/ch/loway/oss/ari4java/generated/ari_2_0_0/models/AsteriskInfo_impl_ari_2_0_0.java +++ /dev/null @@ -1,70 +0,0 @@ -package ch.loway.oss.ari4java.generated.ari_2_0_0.models; - -// ---------------------------------------------------- -// THIS CLASS WAS GENERATED AUTOMATICALLY -// PLEASE DO NOT EDIT -// Generated on: Tue Dec 19 09:55:49 CET 2017 -// ---------------------------------------------------- - -import ch.loway.oss.ari4java.generated.*; -import com.fasterxml.jackson.databind.annotation.JsonDeserialize; -import java.util.Date; -import java.util.List; -import java.util.Map; - -/********************************************************** - * Asterisk system information - * - * Defined in file: asterisk.json - * Generated by: Model - *********************************************************/ - -public class AsteriskInfo_impl_ari_2_0_0 implements AsteriskInfo, java.io.Serializable { -private static final long serialVersionUID = 1L; - /** Info about how Asterisk was built */ - private BuildInfo build; - public BuildInfo getBuild() { - return build; - } - - @JsonDeserialize( as=BuildInfo_impl_ari_2_0_0.class ) - public void setBuild(BuildInfo val ) { - build = val; - } - - /** Info about Asterisk configuration */ - private ConfigInfo config; - public ConfigInfo getConfig() { - return config; - } - - @JsonDeserialize( as=ConfigInfo_impl_ari_2_0_0.class ) - public void setConfig(ConfigInfo val ) { - config = val; - } - - /** Info about Asterisk status */ - private StatusInfo status; - public StatusInfo getStatus() { - return status; - } - - @JsonDeserialize( as=StatusInfo_impl_ari_2_0_0.class ) - public void setStatus(StatusInfo val ) { - status = val; - } - - /** Info about the system running Asterisk */ - private SystemInfo system; - public SystemInfo getSystem() { - return system; - } - - @JsonDeserialize( as=SystemInfo_impl_ari_2_0_0.class ) - public void setSystem(SystemInfo val ) { - system = val; - } - -/** No missing signatures from interface */ -} - diff --git a/classes/ch/loway/oss/ari4java/generated/ari_2_0_0/models/BridgeAttendedTransfer_impl_ari_2_0_0.java b/classes/ch/loway/oss/ari4java/generated/ari_2_0_0/models/BridgeAttendedTransfer_impl_ari_2_0_0.java deleted file mode 100644 index 94bf45f3..00000000 --- a/classes/ch/loway/oss/ari4java/generated/ari_2_0_0/models/BridgeAttendedTransfer_impl_ari_2_0_0.java +++ /dev/null @@ -1,202 +0,0 @@ -package ch.loway.oss.ari4java.generated.ari_2_0_0.models; - -// ---------------------------------------------------- -// THIS CLASS WAS GENERATED AUTOMATICALLY -// PLEASE DO NOT EDIT -// Generated on: Tue Dec 19 09:55:49 CET 2017 -// ---------------------------------------------------- - -import ch.loway.oss.ari4java.generated.*; -import com.fasterxml.jackson.databind.annotation.JsonDeserialize; -import java.util.Date; -import java.util.List; -import java.util.Map; - -/********************************************************** - * Notification that an attended transfer has occurred. - * - * Defined in file: events.json - * Generated by: Model - *********************************************************/ - -public class BridgeAttendedTransfer_impl_ari_2_0_0 extends Event_impl_ari_2_0_0 implements BridgeAttendedTransfer, java.io.Serializable { -private static final long serialVersionUID = 1L; - /** Application that has been transferred into */ - private String destination_application; - public String getDestination_application() { - return destination_application; - } - - @JsonDeserialize( as=String.class ) - public void setDestination_application(String val ) { - destination_application = val; - } - - /** Bridge that survived the merge result */ - private String destination_bridge; - public String getDestination_bridge() { - return destination_bridge; - } - - @JsonDeserialize( as=String.class ) - public void setDestination_bridge(String val ) { - destination_bridge = val; - } - - /** First leg of a link transfer result */ - private Channel destination_link_first_leg; - public Channel getDestination_link_first_leg() { - return destination_link_first_leg; - } - - @JsonDeserialize( as=Channel_impl_ari_2_0_0.class ) - public void setDestination_link_first_leg(Channel val ) { - destination_link_first_leg = val; - } - - /** Second leg of a link transfer result */ - private Channel destination_link_second_leg; - public Channel getDestination_link_second_leg() { - return destination_link_second_leg; - } - - @JsonDeserialize( as=Channel_impl_ari_2_0_0.class ) - public void setDestination_link_second_leg(Channel val ) { - destination_link_second_leg = val; - } - - /** Bridge that survived the threeway result */ - private Bridge destination_threeway_bridge; - public Bridge getDestination_threeway_bridge() { - return destination_threeway_bridge; - } - - @JsonDeserialize( as=Bridge_impl_ari_2_0_0.class ) - public void setDestination_threeway_bridge(Bridge val ) { - destination_threeway_bridge = val; - } - - /** Transferer channel that survived the threeway result */ - private Channel destination_threeway_channel; - public Channel getDestination_threeway_channel() { - return destination_threeway_channel; - } - - @JsonDeserialize( as=Channel_impl_ari_2_0_0.class ) - public void setDestination_threeway_channel(Channel val ) { - destination_threeway_channel = val; - } - - /** How the transfer was accomplished */ - private String destination_type; - public String getDestination_type() { - return destination_type; - } - - @JsonDeserialize( as=String.class ) - public void setDestination_type(String val ) { - destination_type = val; - } - - /** Whether the transfer was externally initiated or not */ - private boolean is_external; - public boolean getIs_external() { - return is_external; - } - - @JsonDeserialize( as=boolean.class ) - public void setIs_external(boolean val ) { - is_external = val; - } - - /** The channel that is replacing transferer_first_leg in the swap */ - private Channel replace_channel; - public Channel getReplace_channel() { - return replace_channel; - } - - @JsonDeserialize( as=Channel_impl_ari_2_0_0.class ) - public void setReplace_channel(Channel val ) { - replace_channel = val; - } - - /** The result of the transfer attempt */ - private String result; - public String getResult() { - return result; - } - - @JsonDeserialize( as=String.class ) - public void setResult(String val ) { - result = val; - } - - /** The channel that is being transferred to */ - private Channel transfer_target; - public Channel getTransfer_target() { - return transfer_target; - } - - @JsonDeserialize( as=Channel_impl_ari_2_0_0.class ) - public void setTransfer_target(Channel val ) { - transfer_target = val; - } - - /** The channel that is being transferred */ - private Channel transferee; - public Channel getTransferee() { - return transferee; - } - - @JsonDeserialize( as=Channel_impl_ari_2_0_0.class ) - public void setTransferee(Channel val ) { - transferee = val; - } - - /** First leg of the transferer */ - private Channel transferer_first_leg; - public Channel getTransferer_first_leg() { - return transferer_first_leg; - } - - @JsonDeserialize( as=Channel_impl_ari_2_0_0.class ) - public void setTransferer_first_leg(Channel val ) { - transferer_first_leg = val; - } - - /** Bridge the transferer first leg is in */ - private Bridge transferer_first_leg_bridge; - public Bridge getTransferer_first_leg_bridge() { - return transferer_first_leg_bridge; - } - - @JsonDeserialize( as=Bridge_impl_ari_2_0_0.class ) - public void setTransferer_first_leg_bridge(Bridge val ) { - transferer_first_leg_bridge = val; - } - - /** Second leg of the transferer */ - private Channel transferer_second_leg; - public Channel getTransferer_second_leg() { - return transferer_second_leg; - } - - @JsonDeserialize( as=Channel_impl_ari_2_0_0.class ) - public void setTransferer_second_leg(Channel val ) { - transferer_second_leg = val; - } - - /** Bridge the transferer second leg is in */ - private Bridge transferer_second_leg_bridge; - public Bridge getTransferer_second_leg_bridge() { - return transferer_second_leg_bridge; - } - - @JsonDeserialize( as=Bridge_impl_ari_2_0_0.class ) - public void setTransferer_second_leg_bridge(Bridge val ) { - transferer_second_leg_bridge = val; - } - -/** No missing signatures from interface */ -} - diff --git a/classes/ch/loway/oss/ari4java/generated/ari_2_0_0/models/BridgeBlindTransfer_impl_ari_2_0_0.java b/classes/ch/loway/oss/ari4java/generated/ari_2_0_0/models/BridgeBlindTransfer_impl_ari_2_0_0.java deleted file mode 100644 index 99b87e69..00000000 --- a/classes/ch/loway/oss/ari4java/generated/ari_2_0_0/models/BridgeBlindTransfer_impl_ari_2_0_0.java +++ /dev/null @@ -1,114 +0,0 @@ -package ch.loway.oss.ari4java.generated.ari_2_0_0.models; - -// ---------------------------------------------------- -// THIS CLASS WAS GENERATED AUTOMATICALLY -// PLEASE DO NOT EDIT -// Generated on: Tue Dec 19 09:55:49 CET 2017 -// ---------------------------------------------------- - -import ch.loway.oss.ari4java.generated.*; -import com.fasterxml.jackson.databind.annotation.JsonDeserialize; -import java.util.Date; -import java.util.List; -import java.util.Map; - -/********************************************************** - * Notification that a blind transfer has occurred. - * - * Defined in file: events.json - * Generated by: Model - *********************************************************/ - -public class BridgeBlindTransfer_impl_ari_2_0_0 extends Event_impl_ari_2_0_0 implements BridgeBlindTransfer, java.io.Serializable { -private static final long serialVersionUID = 1L; - /** The bridge being transferred */ - private Bridge bridge; - public Bridge getBridge() { - return bridge; - } - - @JsonDeserialize( as=Bridge_impl_ari_2_0_0.class ) - public void setBridge(Bridge val ) { - bridge = val; - } - - /** The channel performing the blind transfer */ - private Channel channel; - public Channel getChannel() { - return channel; - } - - @JsonDeserialize( as=Channel_impl_ari_2_0_0.class ) - public void setChannel(Channel val ) { - channel = val; - } - - /** The context transferred to */ - private String context; - public String getContext() { - return context; - } - - @JsonDeserialize( as=String.class ) - public void setContext(String val ) { - context = val; - } - - /** The extension transferred to */ - private String exten; - public String getExten() { - return exten; - } - - @JsonDeserialize( as=String.class ) - public void setExten(String val ) { - exten = val; - } - - /** Whether the transfer was externally initiated or not */ - private boolean is_external; - public boolean getIs_external() { - return is_external; - } - - @JsonDeserialize( as=boolean.class ) - public void setIs_external(boolean val ) { - is_external = val; - } - - /** The channel that is replacing transferer when the transferee(s) can not be transferred directly */ - private Channel replace_channel; - public Channel getReplace_channel() { - return replace_channel; - } - - @JsonDeserialize( as=Channel_impl_ari_2_0_0.class ) - public void setReplace_channel(Channel val ) { - replace_channel = val; - } - - /** The result of the transfer attempt */ - private String result; - public String getResult() { - return result; - } - - @JsonDeserialize( as=String.class ) - public void setResult(String val ) { - result = val; - } - - /** The channel that is being transferred */ - private Channel transferee; - public Channel getTransferee() { - return transferee; - } - - @JsonDeserialize( as=Channel_impl_ari_2_0_0.class ) - public void setTransferee(Channel val ) { - transferee = val; - } - -/** No missing signatures from interface */ -} - diff --git a/classes/ch/loway/oss/ari4java/generated/ari_2_0_0/models/BridgeCreated_impl_ari_2_0_0.java b/classes/ch/loway/oss/ari4java/generated/ari_2_0_0/models/BridgeCreated_impl_ari_2_0_0.java deleted file mode 100644 index f27cbfd6..00000000 --- a/classes/ch/loway/oss/ari4java/generated/ari_2_0_0/models/BridgeCreated_impl_ari_2_0_0.java +++ /dev/null @@ -1,37 +0,0 @@ -package ch.loway.oss.ari4java.generated.ari_2_0_0.models; - -// ---------------------------------------------------- -// THIS CLASS WAS GENERATED AUTOMATICALLY -// PLEASE DO NOT EDIT -// Generated on: Tue Dec 19 09:55:49 CET 2017 -// ---------------------------------------------------- - -import ch.loway.oss.ari4java.generated.*; -import com.fasterxml.jackson.databind.annotation.JsonDeserialize; -import java.util.Date; -import java.util.List; -import java.util.Map; - -/********************************************************** - * Notification that a bridge has been created. - * - * Defined in file: events.json - * Generated by: Model - *********************************************************/ - -public class BridgeCreated_impl_ari_2_0_0 extends Event_impl_ari_2_0_0 implements BridgeCreated, java.io.Serializable { -private static final long serialVersionUID = 1L; - /** */ - private Bridge bridge; - public Bridge getBridge() { - return bridge; - } - - @JsonDeserialize( as=Bridge_impl_ari_2_0_0.class ) - public void setBridge(Bridge val ) { - bridge = val; - } - -/** No missing signatures from interface */ -} - diff --git a/classes/ch/loway/oss/ari4java/generated/ari_2_0_0/models/BridgeDestroyed_impl_ari_2_0_0.java b/classes/ch/loway/oss/ari4java/generated/ari_2_0_0/models/BridgeDestroyed_impl_ari_2_0_0.java deleted file mode 100644 index 1f810898..00000000 --- a/classes/ch/loway/oss/ari4java/generated/ari_2_0_0/models/BridgeDestroyed_impl_ari_2_0_0.java +++ /dev/null @@ -1,37 +0,0 @@ -package ch.loway.oss.ari4java.generated.ari_2_0_0.models; - -// ---------------------------------------------------- -// THIS CLASS WAS GENERATED AUTOMATICALLY -// PLEASE DO NOT EDIT -// Generated on: Tue Dec 19 09:55:49 CET 2017 -// ---------------------------------------------------- - -import ch.loway.oss.ari4java.generated.*; -import com.fasterxml.jackson.databind.annotation.JsonDeserialize; -import java.util.Date; -import java.util.List; -import java.util.Map; - -/********************************************************** - * Notification that a bridge has been destroyed. - * - * Defined in file: events.json - * Generated by: Model - *********************************************************/ - -public class BridgeDestroyed_impl_ari_2_0_0 extends Event_impl_ari_2_0_0 implements BridgeDestroyed, java.io.Serializable { -private static final long serialVersionUID = 1L; - /** */ - private Bridge bridge; - public Bridge getBridge() { - return bridge; - } - - @JsonDeserialize( as=Bridge_impl_ari_2_0_0.class ) - public void setBridge(Bridge val ) { - bridge = val; - } - -/** No missing signatures from interface */ -} - diff --git a/classes/ch/loway/oss/ari4java/generated/ari_2_0_0/models/BridgeMerged_impl_ari_2_0_0.java b/classes/ch/loway/oss/ari4java/generated/ari_2_0_0/models/BridgeMerged_impl_ari_2_0_0.java deleted file mode 100644 index 6f246a6b..00000000 --- a/classes/ch/loway/oss/ari4java/generated/ari_2_0_0/models/BridgeMerged_impl_ari_2_0_0.java +++ /dev/null @@ -1,48 +0,0 @@ -package ch.loway.oss.ari4java.generated.ari_2_0_0.models; - -// ---------------------------------------------------- -// THIS CLASS WAS GENERATED AUTOMATICALLY -// PLEASE DO NOT EDIT -// Generated on: Tue Dec 19 09:55:49 CET 2017 -// ---------------------------------------------------- - -import ch.loway.oss.ari4java.generated.*; -import com.fasterxml.jackson.databind.annotation.JsonDeserialize; -import java.util.Date; -import java.util.List; -import java.util.Map; - -/********************************************************** - * Notification that one bridge has merged into another. - * - * Defined in file: events.json - * Generated by: Model - *********************************************************/ - -public class BridgeMerged_impl_ari_2_0_0 extends Event_impl_ari_2_0_0 implements BridgeMerged, java.io.Serializable { -private static final long serialVersionUID = 1L; - /** */ - private Bridge bridge; - public Bridge getBridge() { - return bridge; - } - - @JsonDeserialize( as=Bridge_impl_ari_2_0_0.class ) - public void setBridge(Bridge val ) { - bridge = val; - } - - /** */ - private Bridge bridge_from; - public Bridge getBridge_from() { - return bridge_from; - } - - @JsonDeserialize( as=Bridge_impl_ari_2_0_0.class ) - public void setBridge_from(Bridge val ) { - bridge_from = val; - } - -/** No missing signatures from interface */ -} - diff --git a/classes/ch/loway/oss/ari4java/generated/ari_2_0_0/models/BridgeVideoSourceChanged_impl_ari_2_0_0.java b/classes/ch/loway/oss/ari4java/generated/ari_2_0_0/models/BridgeVideoSourceChanged_impl_ari_2_0_0.java deleted file mode 100644 index 0e2cb824..00000000 --- a/classes/ch/loway/oss/ari4java/generated/ari_2_0_0/models/BridgeVideoSourceChanged_impl_ari_2_0_0.java +++ /dev/null @@ -1,48 +0,0 @@ -package ch.loway.oss.ari4java.generated.ari_2_0_0.models; - -// ---------------------------------------------------- -// THIS CLASS WAS GENERATED AUTOMATICALLY -// PLEASE DO NOT EDIT -// Generated on: Tue Dec 19 09:55:49 CET 2017 -// ---------------------------------------------------- - -import ch.loway.oss.ari4java.generated.*; -import com.fasterxml.jackson.databind.annotation.JsonDeserialize; -import java.util.Date; -import java.util.List; -import java.util.Map; - -/********************************************************** - * Notification that the source of video in a bridge has changed. - * - * Defined in file: events.json - * Generated by: Model - *********************************************************/ - -public class BridgeVideoSourceChanged_impl_ari_2_0_0 extends Event_impl_ari_2_0_0 implements BridgeVideoSourceChanged, java.io.Serializable { -private static final long serialVersionUID = 1L; - /** */ - private Bridge bridge; - public Bridge getBridge() { - return bridge; - } - - @JsonDeserialize( as=Bridge_impl_ari_2_0_0.class ) - public void setBridge(Bridge val ) { - bridge = val; - } - - /** */ - private String old_video_source_id; - public String getOld_video_source_id() { - return old_video_source_id; - } - - @JsonDeserialize( as=String.class ) - public void setOld_video_source_id(String val ) { - old_video_source_id = val; - } - -/** No missing signatures from interface */ -} - diff --git a/classes/ch/loway/oss/ari4java/generated/ari_2_0_0/models/Bridge_impl_ari_2_0_0.java b/classes/ch/loway/oss/ari4java/generated/ari_2_0_0/models/Bridge_impl_ari_2_0_0.java deleted file mode 100644 index f4a0ae98..00000000 --- a/classes/ch/loway/oss/ari4java/generated/ari_2_0_0/models/Bridge_impl_ari_2_0_0.java +++ /dev/null @@ -1,127 +0,0 @@ -package ch.loway.oss.ari4java.generated.ari_2_0_0.models; - -// ---------------------------------------------------- -// THIS CLASS WAS GENERATED AUTOMATICALLY -// PLEASE DO NOT EDIT -// Generated on: Tue Dec 19 09:55:49 CET 2017 -// ---------------------------------------------------- - -import ch.loway.oss.ari4java.generated.*; -import com.fasterxml.jackson.databind.annotation.JsonDeserialize; -import java.util.Date; -import java.util.List; -import java.util.Map; - -/********************************************************** - * The merging of media from one or more channels. - * - * Everyone on the bridge receives the same audio. - * - * Defined in file: bridges.json - * Generated by: Model - *********************************************************/ - -public class Bridge_impl_ari_2_0_0 implements Bridge, java.io.Serializable { -private static final long serialVersionUID = 1L; - /** Bridging class */ - private String bridge_class; - public String getBridge_class() { - return bridge_class; - } - - @JsonDeserialize( as=String.class ) - public void setBridge_class(String val ) { - bridge_class = val; - } - - /** Type of bridge technology */ - private String bridge_type; - public String getBridge_type() { - return bridge_type; - } - - @JsonDeserialize( as=String.class ) - public void setBridge_type(String val ) { - bridge_type = val; - } - - /** Ids of channels participating in this bridge */ - private List channels; - public List getChannels() { - return channels; - } - - @JsonDeserialize( contentAs=String.class ) - public void setChannels(List val ) { - channels = val; - } - - /** Entity that created the bridge */ - private String creator; - public String getCreator() { - return creator; - } - - @JsonDeserialize( as=String.class ) - public void setCreator(String val ) { - creator = val; - } - - /** Unique identifier for this bridge */ - private String id; - public String getId() { - return id; - } - - @JsonDeserialize( as=String.class ) - public void setId(String val ) { - id = val; - } - - /** Name the creator gave the bridge */ - private String name; - public String getName() { - return name; - } - - @JsonDeserialize( as=String.class ) - public void setName(String val ) { - name = val; - } - - /** Name of the current bridging technology */ - private String technology; - public String getTechnology() { - return technology; - } - - @JsonDeserialize( as=String.class ) - public void setTechnology(String val ) { - technology = val; - } - - /** The video mode the bridge is using. One of 'none', 'talker', or 'single'. */ - private String video_mode; - public String getVideo_mode() { - return video_mode; - } - - @JsonDeserialize( as=String.class ) - public void setVideo_mode(String val ) { - video_mode = val; - } - - /** The ID of the channel that is the source of video in this bridge, if one exists. */ - private String video_source_id; - public String getVideo_source_id() { - return video_source_id; - } - - @JsonDeserialize( as=String.class ) - public void setVideo_source_id(String val ) { - video_source_id = val; - } - -/** No missing signatures from interface */ -} - diff --git a/classes/ch/loway/oss/ari4java/generated/ari_2_0_0/models/BuildInfo_impl_ari_2_0_0.java b/classes/ch/loway/oss/ari4java/generated/ari_2_0_0/models/BuildInfo_impl_ari_2_0_0.java deleted file mode 100644 index 443316be..00000000 --- a/classes/ch/loway/oss/ari4java/generated/ari_2_0_0/models/BuildInfo_impl_ari_2_0_0.java +++ /dev/null @@ -1,92 +0,0 @@ -package ch.loway.oss.ari4java.generated.ari_2_0_0.models; - -// ---------------------------------------------------- -// THIS CLASS WAS GENERATED AUTOMATICALLY -// PLEASE DO NOT EDIT -// Generated on: Tue Dec 19 09:55:49 CET 2017 -// ---------------------------------------------------- - -import ch.loway.oss.ari4java.generated.*; -import com.fasterxml.jackson.databind.annotation.JsonDeserialize; -import java.util.Date; -import java.util.List; -import java.util.Map; - -/********************************************************** - * Info about how Asterisk was built - * - * Defined in file: asterisk.json - * Generated by: Model - *********************************************************/ - -public class BuildInfo_impl_ari_2_0_0 implements BuildInfo, java.io.Serializable { -private static final long serialVersionUID = 1L; - /** Date and time when Asterisk was built. */ - private String date; - public String getDate() { - return date; - } - - @JsonDeserialize( as=String.class ) - public void setDate(String val ) { - date = val; - } - - /** Kernel version Asterisk was built on. */ - private String kernel; - public String getKernel() { - return kernel; - } - - @JsonDeserialize( as=String.class ) - public void setKernel(String val ) { - kernel = val; - } - - /** Machine architecture (x86_64, i686, ppc, etc.) */ - private String machine; - public String getMachine() { - return machine; - } - - @JsonDeserialize( as=String.class ) - public void setMachine(String val ) { - machine = val; - } - - /** Compile time options, or empty string if default. */ - private String options; - public String getOptions() { - return options; - } - - @JsonDeserialize( as=String.class ) - public void setOptions(String val ) { - options = val; - } - - /** OS Asterisk was built on. */ - private String os; - public String getOs() { - return os; - } - - @JsonDeserialize( as=String.class ) - public void setOs(String val ) { - os = val; - } - - /** Username that build Asterisk */ - private String user; - public String getUser() { - return user; - } - - @JsonDeserialize( as=String.class ) - public void setUser(String val ) { - user = val; - } - -/** No missing signatures from interface */ -} - diff --git a/classes/ch/loway/oss/ari4java/generated/ari_2_0_0/models/CallerID_impl_ari_2_0_0.java b/classes/ch/loway/oss/ari4java/generated/ari_2_0_0/models/CallerID_impl_ari_2_0_0.java deleted file mode 100644 index 6c036e7e..00000000 --- a/classes/ch/loway/oss/ari4java/generated/ari_2_0_0/models/CallerID_impl_ari_2_0_0.java +++ /dev/null @@ -1,48 +0,0 @@ -package ch.loway.oss.ari4java.generated.ari_2_0_0.models; - -// ---------------------------------------------------- -// THIS CLASS WAS GENERATED AUTOMATICALLY -// PLEASE DO NOT EDIT -// Generated on: Tue Dec 19 09:55:49 CET 2017 -// ---------------------------------------------------- - -import ch.loway.oss.ari4java.generated.*; -import com.fasterxml.jackson.databind.annotation.JsonDeserialize; -import java.util.Date; -import java.util.List; -import java.util.Map; - -/********************************************************** - * Caller identification - * - * Defined in file: channels.json - * Generated by: Model - *********************************************************/ - -public class CallerID_impl_ari_2_0_0 implements CallerID, java.io.Serializable { -private static final long serialVersionUID = 1L; - /** */ - private String name; - public String getName() { - return name; - } - - @JsonDeserialize( as=String.class ) - public void setName(String val ) { - name = val; - } - - /** */ - private String number; - public String getNumber() { - return number; - } - - @JsonDeserialize( as=String.class ) - public void setNumber(String val ) { - number = val; - } - -/** No missing signatures from interface */ -} - diff --git a/classes/ch/loway/oss/ari4java/generated/ari_2_0_0/models/ChannelCallerId_impl_ari_2_0_0.java b/classes/ch/loway/oss/ari4java/generated/ari_2_0_0/models/ChannelCallerId_impl_ari_2_0_0.java deleted file mode 100644 index 983d587f..00000000 --- a/classes/ch/loway/oss/ari4java/generated/ari_2_0_0/models/ChannelCallerId_impl_ari_2_0_0.java +++ /dev/null @@ -1,59 +0,0 @@ -package ch.loway.oss.ari4java.generated.ari_2_0_0.models; - -// ---------------------------------------------------- -// THIS CLASS WAS GENERATED AUTOMATICALLY -// PLEASE DO NOT EDIT -// Generated on: Tue Dec 19 09:55:49 CET 2017 -// ---------------------------------------------------- - -import ch.loway.oss.ari4java.generated.*; -import com.fasterxml.jackson.databind.annotation.JsonDeserialize; -import java.util.Date; -import java.util.List; -import java.util.Map; - -/********************************************************** - * Channel changed Caller ID. - * - * Defined in file: events.json - * Generated by: Model - *********************************************************/ - -public class ChannelCallerId_impl_ari_2_0_0 extends Event_impl_ari_2_0_0 implements ChannelCallerId, java.io.Serializable { -private static final long serialVersionUID = 1L; - /** The integer representation of the Caller Presentation value. */ - private int caller_presentation; - public int getCaller_presentation() { - return caller_presentation; - } - - @JsonDeserialize( as=int.class ) - public void setCaller_presentation(int val ) { - caller_presentation = val; - } - - /** The text representation of the Caller Presentation value. */ - private String caller_presentation_txt; - public String getCaller_presentation_txt() { - return caller_presentation_txt; - } - - @JsonDeserialize( as=String.class ) - public void setCaller_presentation_txt(String val ) { - caller_presentation_txt = val; - } - - /** The channel that changed Caller ID. */ - private Channel channel; - public Channel getChannel() { - return channel; - } - - @JsonDeserialize( as=Channel_impl_ari_2_0_0.class ) - public void setChannel(Channel val ) { - channel = val; - } - -/** No missing signatures from interface */ -} - diff --git a/classes/ch/loway/oss/ari4java/generated/ari_2_0_0/models/ChannelConnectedLine_impl_ari_2_0_0.java b/classes/ch/loway/oss/ari4java/generated/ari_2_0_0/models/ChannelConnectedLine_impl_ari_2_0_0.java deleted file mode 100644 index 5293b551..00000000 --- a/classes/ch/loway/oss/ari4java/generated/ari_2_0_0/models/ChannelConnectedLine_impl_ari_2_0_0.java +++ /dev/null @@ -1,37 +0,0 @@ -package ch.loway.oss.ari4java.generated.ari_2_0_0.models; - -// ---------------------------------------------------- -// THIS CLASS WAS GENERATED AUTOMATICALLY -// PLEASE DO NOT EDIT -// Generated on: Tue Dec 19 09:55:49 CET 2017 -// ---------------------------------------------------- - -import ch.loway.oss.ari4java.generated.*; -import com.fasterxml.jackson.databind.annotation.JsonDeserialize; -import java.util.Date; -import java.util.List; -import java.util.Map; - -/********************************************************** - * Channel changed Connected Line. - * - * Defined in file: events.json - * Generated by: Model - *********************************************************/ - -public class ChannelConnectedLine_impl_ari_2_0_0 extends Event_impl_ari_2_0_0 implements ChannelConnectedLine, java.io.Serializable { -private static final long serialVersionUID = 1L; - /** The channel whose connected line has changed. */ - private Channel channel; - public Channel getChannel() { - return channel; - } - - @JsonDeserialize( as=Channel_impl_ari_2_0_0.class ) - public void setChannel(Channel val ) { - channel = val; - } - -/** No missing signatures from interface */ -} - diff --git a/classes/ch/loway/oss/ari4java/generated/ari_2_0_0/models/ChannelCreated_impl_ari_2_0_0.java b/classes/ch/loway/oss/ari4java/generated/ari_2_0_0/models/ChannelCreated_impl_ari_2_0_0.java deleted file mode 100644 index 1e5ea71d..00000000 --- a/classes/ch/loway/oss/ari4java/generated/ari_2_0_0/models/ChannelCreated_impl_ari_2_0_0.java +++ /dev/null @@ -1,37 +0,0 @@ -package ch.loway.oss.ari4java.generated.ari_2_0_0.models; - -// ---------------------------------------------------- -// THIS CLASS WAS GENERATED AUTOMATICALLY -// PLEASE DO NOT EDIT -// Generated on: Tue Dec 19 09:55:49 CET 2017 -// ---------------------------------------------------- - -import ch.loway.oss.ari4java.generated.*; -import com.fasterxml.jackson.databind.annotation.JsonDeserialize; -import java.util.Date; -import java.util.List; -import java.util.Map; - -/********************************************************** - * Notification that a channel has been created. - * - * Defined in file: events.json - * Generated by: Model - *********************************************************/ - -public class ChannelCreated_impl_ari_2_0_0 extends Event_impl_ari_2_0_0 implements ChannelCreated, java.io.Serializable { -private static final long serialVersionUID = 1L; - /** */ - private Channel channel; - public Channel getChannel() { - return channel; - } - - @JsonDeserialize( as=Channel_impl_ari_2_0_0.class ) - public void setChannel(Channel val ) { - channel = val; - } - -/** No missing signatures from interface */ -} - diff --git a/classes/ch/loway/oss/ari4java/generated/ari_2_0_0/models/ChannelDestroyed_impl_ari_2_0_0.java b/classes/ch/loway/oss/ari4java/generated/ari_2_0_0/models/ChannelDestroyed_impl_ari_2_0_0.java deleted file mode 100644 index 8dc8375e..00000000 --- a/classes/ch/loway/oss/ari4java/generated/ari_2_0_0/models/ChannelDestroyed_impl_ari_2_0_0.java +++ /dev/null @@ -1,59 +0,0 @@ -package ch.loway.oss.ari4java.generated.ari_2_0_0.models; - -// ---------------------------------------------------- -// THIS CLASS WAS GENERATED AUTOMATICALLY -// PLEASE DO NOT EDIT -// Generated on: Tue Dec 19 09:55:49 CET 2017 -// ---------------------------------------------------- - -import ch.loway.oss.ari4java.generated.*; -import com.fasterxml.jackson.databind.annotation.JsonDeserialize; -import java.util.Date; -import java.util.List; -import java.util.Map; - -/********************************************************** - * Notification that a channel has been destroyed. - * - * Defined in file: events.json - * Generated by: Model - *********************************************************/ - -public class ChannelDestroyed_impl_ari_2_0_0 extends Event_impl_ari_2_0_0 implements ChannelDestroyed, java.io.Serializable { -private static final long serialVersionUID = 1L; - /** Integer representation of the cause of the hangup */ - private int cause; - public int getCause() { - return cause; - } - - @JsonDeserialize( as=int.class ) - public void setCause(int val ) { - cause = val; - } - - /** Text representation of the cause of the hangup */ - private String cause_txt; - public String getCause_txt() { - return cause_txt; - } - - @JsonDeserialize( as=String.class ) - public void setCause_txt(String val ) { - cause_txt = val; - } - - /** */ - private Channel channel; - public Channel getChannel() { - return channel; - } - - @JsonDeserialize( as=Channel_impl_ari_2_0_0.class ) - public void setChannel(Channel val ) { - channel = val; - } - -/** No missing signatures from interface */ -} - diff --git a/classes/ch/loway/oss/ari4java/generated/ari_2_0_0/models/ChannelDialplan_impl_ari_2_0_0.java b/classes/ch/loway/oss/ari4java/generated/ari_2_0_0/models/ChannelDialplan_impl_ari_2_0_0.java deleted file mode 100644 index f1ad2380..00000000 --- a/classes/ch/loway/oss/ari4java/generated/ari_2_0_0/models/ChannelDialplan_impl_ari_2_0_0.java +++ /dev/null @@ -1,59 +0,0 @@ -package ch.loway.oss.ari4java.generated.ari_2_0_0.models; - -// ---------------------------------------------------- -// THIS CLASS WAS GENERATED AUTOMATICALLY -// PLEASE DO NOT EDIT -// Generated on: Tue Dec 19 09:55:49 CET 2017 -// ---------------------------------------------------- - -import ch.loway.oss.ari4java.generated.*; -import com.fasterxml.jackson.databind.annotation.JsonDeserialize; -import java.util.Date; -import java.util.List; -import java.util.Map; - -/********************************************************** - * Channel changed location in the dialplan. - * - * Defined in file: events.json - * Generated by: Model - *********************************************************/ - -public class ChannelDialplan_impl_ari_2_0_0 extends Event_impl_ari_2_0_0 implements ChannelDialplan, java.io.Serializable { -private static final long serialVersionUID = 1L; - /** The channel that changed dialplan location. */ - private Channel channel; - public Channel getChannel() { - return channel; - } - - @JsonDeserialize( as=Channel_impl_ari_2_0_0.class ) - public void setChannel(Channel val ) { - channel = val; - } - - /** The application about to be executed. */ - private String dialplan_app; - public String getDialplan_app() { - return dialplan_app; - } - - @JsonDeserialize( as=String.class ) - public void setDialplan_app(String val ) { - dialplan_app = val; - } - - /** The data to be passed to the application. */ - private String dialplan_app_data; - public String getDialplan_app_data() { - return dialplan_app_data; - } - - @JsonDeserialize( as=String.class ) - public void setDialplan_app_data(String val ) { - dialplan_app_data = val; - } - -/** No missing signatures from interface */ -} - diff --git a/classes/ch/loway/oss/ari4java/generated/ari_2_0_0/models/ChannelDtmfReceived_impl_ari_2_0_0.java b/classes/ch/loway/oss/ari4java/generated/ari_2_0_0/models/ChannelDtmfReceived_impl_ari_2_0_0.java deleted file mode 100644 index 27ae811f..00000000 --- a/classes/ch/loway/oss/ari4java/generated/ari_2_0_0/models/ChannelDtmfReceived_impl_ari_2_0_0.java +++ /dev/null @@ -1,61 +0,0 @@ -package ch.loway.oss.ari4java.generated.ari_2_0_0.models; - -// ---------------------------------------------------- -// THIS CLASS WAS GENERATED AUTOMATICALLY -// PLEASE DO NOT EDIT -// Generated on: Tue Dec 19 09:55:49 CET 2017 -// ---------------------------------------------------- - -import ch.loway.oss.ari4java.generated.*; -import com.fasterxml.jackson.databind.annotation.JsonDeserialize; -import java.util.Date; -import java.util.List; -import java.util.Map; - -/********************************************************** - * DTMF received on a channel. - * - * This event is sent when the DTMF ends. There is no notification about the start of DTMF - * - * Defined in file: events.json - * Generated by: Model - *********************************************************/ - -public class ChannelDtmfReceived_impl_ari_2_0_0 extends Event_impl_ari_2_0_0 implements ChannelDtmfReceived, java.io.Serializable { -private static final long serialVersionUID = 1L; - /** The channel on which DTMF was received */ - private Channel channel; - public Channel getChannel() { - return channel; - } - - @JsonDeserialize( as=Channel_impl_ari_2_0_0.class ) - public void setChannel(Channel val ) { - channel = val; - } - - /** DTMF digit received (0-9, A-E, # or *) */ - private String digit; - public String getDigit() { - return digit; - } - - @JsonDeserialize( as=String.class ) - public void setDigit(String val ) { - digit = val; - } - - /** Number of milliseconds DTMF was received */ - private int duration_ms; - public int getDuration_ms() { - return duration_ms; - } - - @JsonDeserialize( as=int.class ) - public void setDuration_ms(int val ) { - duration_ms = val; - } - -/** No missing signatures from interface */ -} - diff --git a/classes/ch/loway/oss/ari4java/generated/ari_2_0_0/models/ChannelEnteredBridge_impl_ari_2_0_0.java b/classes/ch/loway/oss/ari4java/generated/ari_2_0_0/models/ChannelEnteredBridge_impl_ari_2_0_0.java deleted file mode 100644 index 7814a0a2..00000000 --- a/classes/ch/loway/oss/ari4java/generated/ari_2_0_0/models/ChannelEnteredBridge_impl_ari_2_0_0.java +++ /dev/null @@ -1,48 +0,0 @@ -package ch.loway.oss.ari4java.generated.ari_2_0_0.models; - -// ---------------------------------------------------- -// THIS CLASS WAS GENERATED AUTOMATICALLY -// PLEASE DO NOT EDIT -// Generated on: Tue Dec 19 09:55:49 CET 2017 -// ---------------------------------------------------- - -import ch.loway.oss.ari4java.generated.*; -import com.fasterxml.jackson.databind.annotation.JsonDeserialize; -import java.util.Date; -import java.util.List; -import java.util.Map; - -/********************************************************** - * Notification that a channel has entered a bridge. - * - * Defined in file: events.json - * Generated by: Model - *********************************************************/ - -public class ChannelEnteredBridge_impl_ari_2_0_0 extends Event_impl_ari_2_0_0 implements ChannelEnteredBridge, java.io.Serializable { -private static final long serialVersionUID = 1L; - /** */ - private Bridge bridge; - public Bridge getBridge() { - return bridge; - } - - @JsonDeserialize( as=Bridge_impl_ari_2_0_0.class ) - public void setBridge(Bridge val ) { - bridge = val; - } - - /** */ - private Channel channel; - public Channel getChannel() { - return channel; - } - - @JsonDeserialize( as=Channel_impl_ari_2_0_0.class ) - public void setChannel(Channel val ) { - channel = val; - } - -/** No missing signatures from interface */ -} - diff --git a/classes/ch/loway/oss/ari4java/generated/ari_2_0_0/models/ChannelHangupRequest_impl_ari_2_0_0.java b/classes/ch/loway/oss/ari4java/generated/ari_2_0_0/models/ChannelHangupRequest_impl_ari_2_0_0.java deleted file mode 100644 index 451b080f..00000000 --- a/classes/ch/loway/oss/ari4java/generated/ari_2_0_0/models/ChannelHangupRequest_impl_ari_2_0_0.java +++ /dev/null @@ -1,59 +0,0 @@ -package ch.loway.oss.ari4java.generated.ari_2_0_0.models; - -// ---------------------------------------------------- -// THIS CLASS WAS GENERATED AUTOMATICALLY -// PLEASE DO NOT EDIT -// Generated on: Tue Dec 19 09:55:49 CET 2017 -// ---------------------------------------------------- - -import ch.loway.oss.ari4java.generated.*; -import com.fasterxml.jackson.databind.annotation.JsonDeserialize; -import java.util.Date; -import java.util.List; -import java.util.Map; - -/********************************************************** - * A hangup was requested on the channel. - * - * Defined in file: events.json - * Generated by: Model - *********************************************************/ - -public class ChannelHangupRequest_impl_ari_2_0_0 extends Event_impl_ari_2_0_0 implements ChannelHangupRequest, java.io.Serializable { -private static final long serialVersionUID = 1L; - /** Integer representation of the cause of the hangup. */ - private int cause; - public int getCause() { - return cause; - } - - @JsonDeserialize( as=int.class ) - public void setCause(int val ) { - cause = val; - } - - /** The channel on which the hangup was requested. */ - private Channel channel; - public Channel getChannel() { - return channel; - } - - @JsonDeserialize( as=Channel_impl_ari_2_0_0.class ) - public void setChannel(Channel val ) { - channel = val; - } - - /** Whether the hangup request was a soft hangup request. */ - private boolean soft; - public boolean getSoft() { - return soft; - } - - @JsonDeserialize( as=boolean.class ) - public void setSoft(boolean val ) { - soft = val; - } - -/** No missing signatures from interface */ -} - diff --git a/classes/ch/loway/oss/ari4java/generated/ari_2_0_0/models/ChannelHold_impl_ari_2_0_0.java b/classes/ch/loway/oss/ari4java/generated/ari_2_0_0/models/ChannelHold_impl_ari_2_0_0.java deleted file mode 100644 index afd6dff5..00000000 --- a/classes/ch/loway/oss/ari4java/generated/ari_2_0_0/models/ChannelHold_impl_ari_2_0_0.java +++ /dev/null @@ -1,48 +0,0 @@ -package ch.loway.oss.ari4java.generated.ari_2_0_0.models; - -// ---------------------------------------------------- -// THIS CLASS WAS GENERATED AUTOMATICALLY -// PLEASE DO NOT EDIT -// Generated on: Tue Dec 19 09:55:49 CET 2017 -// ---------------------------------------------------- - -import ch.loway.oss.ari4java.generated.*; -import com.fasterxml.jackson.databind.annotation.JsonDeserialize; -import java.util.Date; -import java.util.List; -import java.util.Map; - -/********************************************************** - * A channel initiated a media hold. - * - * Defined in file: events.json - * Generated by: Model - *********************************************************/ - -public class ChannelHold_impl_ari_2_0_0 extends Event_impl_ari_2_0_0 implements ChannelHold, java.io.Serializable { -private static final long serialVersionUID = 1L; - /** The channel that initiated the hold event. */ - private Channel channel; - public Channel getChannel() { - return channel; - } - - @JsonDeserialize( as=Channel_impl_ari_2_0_0.class ) - public void setChannel(Channel val ) { - channel = val; - } - - /** The music on hold class that the initiator requested. */ - private String musicclass; - public String getMusicclass() { - return musicclass; - } - - @JsonDeserialize( as=String.class ) - public void setMusicclass(String val ) { - musicclass = val; - } - -/** No missing signatures from interface */ -} - diff --git a/classes/ch/loway/oss/ari4java/generated/ari_2_0_0/models/ChannelLeftBridge_impl_ari_2_0_0.java b/classes/ch/loway/oss/ari4java/generated/ari_2_0_0/models/ChannelLeftBridge_impl_ari_2_0_0.java deleted file mode 100644 index 24412422..00000000 --- a/classes/ch/loway/oss/ari4java/generated/ari_2_0_0/models/ChannelLeftBridge_impl_ari_2_0_0.java +++ /dev/null @@ -1,48 +0,0 @@ -package ch.loway.oss.ari4java.generated.ari_2_0_0.models; - -// ---------------------------------------------------- -// THIS CLASS WAS GENERATED AUTOMATICALLY -// PLEASE DO NOT EDIT -// Generated on: Tue Dec 19 09:55:49 CET 2017 -// ---------------------------------------------------- - -import ch.loway.oss.ari4java.generated.*; -import com.fasterxml.jackson.databind.annotation.JsonDeserialize; -import java.util.Date; -import java.util.List; -import java.util.Map; - -/********************************************************** - * Notification that a channel has left a bridge. - * - * Defined in file: events.json - * Generated by: Model - *********************************************************/ - -public class ChannelLeftBridge_impl_ari_2_0_0 extends Event_impl_ari_2_0_0 implements ChannelLeftBridge, java.io.Serializable { -private static final long serialVersionUID = 1L; - /** */ - private Bridge bridge; - public Bridge getBridge() { - return bridge; - } - - @JsonDeserialize( as=Bridge_impl_ari_2_0_0.class ) - public void setBridge(Bridge val ) { - bridge = val; - } - - /** */ - private Channel channel; - public Channel getChannel() { - return channel; - } - - @JsonDeserialize( as=Channel_impl_ari_2_0_0.class ) - public void setChannel(Channel val ) { - channel = val; - } - -/** No missing signatures from interface */ -} - diff --git a/classes/ch/loway/oss/ari4java/generated/ari_2_0_0/models/ChannelStateChange_impl_ari_2_0_0.java b/classes/ch/loway/oss/ari4java/generated/ari_2_0_0/models/ChannelStateChange_impl_ari_2_0_0.java deleted file mode 100644 index 86acf945..00000000 --- a/classes/ch/loway/oss/ari4java/generated/ari_2_0_0/models/ChannelStateChange_impl_ari_2_0_0.java +++ /dev/null @@ -1,37 +0,0 @@ -package ch.loway.oss.ari4java.generated.ari_2_0_0.models; - -// ---------------------------------------------------- -// THIS CLASS WAS GENERATED AUTOMATICALLY -// PLEASE DO NOT EDIT -// Generated on: Tue Dec 19 09:55:49 CET 2017 -// ---------------------------------------------------- - -import ch.loway.oss.ari4java.generated.*; -import com.fasterxml.jackson.databind.annotation.JsonDeserialize; -import java.util.Date; -import java.util.List; -import java.util.Map; - -/********************************************************** - * Notification of a channel's state change. - * - * Defined in file: events.json - * Generated by: Model - *********************************************************/ - -public class ChannelStateChange_impl_ari_2_0_0 extends Event_impl_ari_2_0_0 implements ChannelStateChange, java.io.Serializable { -private static final long serialVersionUID = 1L; - /** */ - private Channel channel; - public Channel getChannel() { - return channel; - } - - @JsonDeserialize( as=Channel_impl_ari_2_0_0.class ) - public void setChannel(Channel val ) { - channel = val; - } - -/** No missing signatures from interface */ -} - diff --git a/classes/ch/loway/oss/ari4java/generated/ari_2_0_0/models/ChannelTalkingFinished_impl_ari_2_0_0.java b/classes/ch/loway/oss/ari4java/generated/ari_2_0_0/models/ChannelTalkingFinished_impl_ari_2_0_0.java deleted file mode 100644 index b55fb042..00000000 --- a/classes/ch/loway/oss/ari4java/generated/ari_2_0_0/models/ChannelTalkingFinished_impl_ari_2_0_0.java +++ /dev/null @@ -1,48 +0,0 @@ -package ch.loway.oss.ari4java.generated.ari_2_0_0.models; - -// ---------------------------------------------------- -// THIS CLASS WAS GENERATED AUTOMATICALLY -// PLEASE DO NOT EDIT -// Generated on: Tue Dec 19 09:55:49 CET 2017 -// ---------------------------------------------------- - -import ch.loway.oss.ari4java.generated.*; -import com.fasterxml.jackson.databind.annotation.JsonDeserialize; -import java.util.Date; -import java.util.List; -import java.util.Map; - -/********************************************************** - * Talking is no longer detected on the channel. - * - * Defined in file: events.json - * Generated by: Model - *********************************************************/ - -public class ChannelTalkingFinished_impl_ari_2_0_0 extends Event_impl_ari_2_0_0 implements ChannelTalkingFinished, java.io.Serializable { -private static final long serialVersionUID = 1L; - /** The channel on which talking completed. */ - private Channel channel; - public Channel getChannel() { - return channel; - } - - @JsonDeserialize( as=Channel_impl_ari_2_0_0.class ) - public void setChannel(Channel val ) { - channel = val; - } - - /** The length of time, in milliseconds, that talking was detected on the channel */ - private int duration; - public int getDuration() { - return duration; - } - - @JsonDeserialize( as=int.class ) - public void setDuration(int val ) { - duration = val; - } - -/** No missing signatures from interface */ -} - diff --git a/classes/ch/loway/oss/ari4java/generated/ari_2_0_0/models/ChannelTalkingStarted_impl_ari_2_0_0.java b/classes/ch/loway/oss/ari4java/generated/ari_2_0_0/models/ChannelTalkingStarted_impl_ari_2_0_0.java deleted file mode 100644 index 6b15b4cc..00000000 --- a/classes/ch/loway/oss/ari4java/generated/ari_2_0_0/models/ChannelTalkingStarted_impl_ari_2_0_0.java +++ /dev/null @@ -1,37 +0,0 @@ -package ch.loway.oss.ari4java.generated.ari_2_0_0.models; - -// ---------------------------------------------------- -// THIS CLASS WAS GENERATED AUTOMATICALLY -// PLEASE DO NOT EDIT -// Generated on: Tue Dec 19 09:55:49 CET 2017 -// ---------------------------------------------------- - -import ch.loway.oss.ari4java.generated.*; -import com.fasterxml.jackson.databind.annotation.JsonDeserialize; -import java.util.Date; -import java.util.List; -import java.util.Map; - -/********************************************************** - * Talking was detected on the channel. - * - * Defined in file: events.json - * Generated by: Model - *********************************************************/ - -public class ChannelTalkingStarted_impl_ari_2_0_0 extends Event_impl_ari_2_0_0 implements ChannelTalkingStarted, java.io.Serializable { -private static final long serialVersionUID = 1L; - /** The channel on which talking started. */ - private Channel channel; - public Channel getChannel() { - return channel; - } - - @JsonDeserialize( as=Channel_impl_ari_2_0_0.class ) - public void setChannel(Channel val ) { - channel = val; - } - -/** No missing signatures from interface */ -} - diff --git a/classes/ch/loway/oss/ari4java/generated/ari_2_0_0/models/ChannelUnhold_impl_ari_2_0_0.java b/classes/ch/loway/oss/ari4java/generated/ari_2_0_0/models/ChannelUnhold_impl_ari_2_0_0.java deleted file mode 100644 index 8997496a..00000000 --- a/classes/ch/loway/oss/ari4java/generated/ari_2_0_0/models/ChannelUnhold_impl_ari_2_0_0.java +++ /dev/null @@ -1,37 +0,0 @@ -package ch.loway.oss.ari4java.generated.ari_2_0_0.models; - -// ---------------------------------------------------- -// THIS CLASS WAS GENERATED AUTOMATICALLY -// PLEASE DO NOT EDIT -// Generated on: Tue Dec 19 09:55:49 CET 2017 -// ---------------------------------------------------- - -import ch.loway.oss.ari4java.generated.*; -import com.fasterxml.jackson.databind.annotation.JsonDeserialize; -import java.util.Date; -import java.util.List; -import java.util.Map; - -/********************************************************** - * A channel initiated a media unhold. - * - * Defined in file: events.json - * Generated by: Model - *********************************************************/ - -public class ChannelUnhold_impl_ari_2_0_0 extends Event_impl_ari_2_0_0 implements ChannelUnhold, java.io.Serializable { -private static final long serialVersionUID = 1L; - /** The channel that initiated the unhold event. */ - private Channel channel; - public Channel getChannel() { - return channel; - } - - @JsonDeserialize( as=Channel_impl_ari_2_0_0.class ) - public void setChannel(Channel val ) { - channel = val; - } - -/** No missing signatures from interface */ -} - diff --git a/classes/ch/loway/oss/ari4java/generated/ari_2_0_0/models/ChannelUserevent_impl_ari_2_0_0.java b/classes/ch/loway/oss/ari4java/generated/ari_2_0_0/models/ChannelUserevent_impl_ari_2_0_0.java deleted file mode 100644 index 9afc9e99..00000000 --- a/classes/ch/loway/oss/ari4java/generated/ari_2_0_0/models/ChannelUserevent_impl_ari_2_0_0.java +++ /dev/null @@ -1,81 +0,0 @@ -package ch.loway.oss.ari4java.generated.ari_2_0_0.models; - -// ---------------------------------------------------- -// THIS CLASS WAS GENERATED AUTOMATICALLY -// PLEASE DO NOT EDIT -// Generated on: Tue Dec 19 09:55:49 CET 2017 -// ---------------------------------------------------- - -import ch.loway.oss.ari4java.generated.*; -import com.fasterxml.jackson.databind.annotation.JsonDeserialize; -import java.util.Date; -import java.util.List; -import java.util.Map; - -/********************************************************** - * User-generated event with additional user-defined fields in the object. - * - * Defined in file: events.json - * Generated by: Model - *********************************************************/ - -public class ChannelUserevent_impl_ari_2_0_0 extends Event_impl_ari_2_0_0 implements ChannelUserevent, java.io.Serializable { -private static final long serialVersionUID = 1L; - /** A bridge that is signaled with the user event. */ - private Bridge bridge; - public Bridge getBridge() { - return bridge; - } - - @JsonDeserialize( as=Bridge_impl_ari_2_0_0.class ) - public void setBridge(Bridge val ) { - bridge = val; - } - - /** A channel that is signaled with the user event. */ - private Channel channel; - public Channel getChannel() { - return channel; - } - - @JsonDeserialize( as=Channel_impl_ari_2_0_0.class ) - public void setChannel(Channel val ) { - channel = val; - } - - /** A endpoint that is signaled with the user event. */ - private Endpoint endpoint; - public Endpoint getEndpoint() { - return endpoint; - } - - @JsonDeserialize( as=Endpoint_impl_ari_2_0_0.class ) - public void setEndpoint(Endpoint val ) { - endpoint = val; - } - - /** The name of the user event. */ - private String eventname; - public String getEventname() { - return eventname; - } - - @JsonDeserialize( as=String.class ) - public void setEventname(String val ) { - eventname = val; - } - - /** Custom Userevent data */ - private String userevent; - public String getUserevent() { - return userevent; - } - - @JsonDeserialize( as=String.class ) - public void setUserevent(String val ) { - userevent = val; - } - -/** No missing signatures from interface */ -} - diff --git a/classes/ch/loway/oss/ari4java/generated/ari_2_0_0/models/ChannelVarset_impl_ari_2_0_0.java b/classes/ch/loway/oss/ari4java/generated/ari_2_0_0/models/ChannelVarset_impl_ari_2_0_0.java deleted file mode 100644 index 2652ccfa..00000000 --- a/classes/ch/loway/oss/ari4java/generated/ari_2_0_0/models/ChannelVarset_impl_ari_2_0_0.java +++ /dev/null @@ -1,61 +0,0 @@ -package ch.loway.oss.ari4java.generated.ari_2_0_0.models; - -// ---------------------------------------------------- -// THIS CLASS WAS GENERATED AUTOMATICALLY -// PLEASE DO NOT EDIT -// Generated on: Tue Dec 19 09:55:49 CET 2017 -// ---------------------------------------------------- - -import ch.loway.oss.ari4java.generated.*; -import com.fasterxml.jackson.databind.annotation.JsonDeserialize; -import java.util.Date; -import java.util.List; -import java.util.Map; - -/********************************************************** - * Channel variable changed. - * - * Defined in file: events.json - * Generated by: Model - *********************************************************/ - -public class ChannelVarset_impl_ari_2_0_0 extends Event_impl_ari_2_0_0 implements ChannelVarset, java.io.Serializable { -private static final long serialVersionUID = 1L; - /** The channel on which the variable was set. - -If missing, the variable is a global variable. */ - private Channel channel; - public Channel getChannel() { - return channel; - } - - @JsonDeserialize( as=Channel_impl_ari_2_0_0.class ) - public void setChannel(Channel val ) { - channel = val; - } - - /** The new value of the variable. */ - private String value; - public String getValue() { - return value; - } - - @JsonDeserialize( as=String.class ) - public void setValue(String val ) { - value = val; - } - - /** The variable that changed. */ - private String variable; - public String getVariable() { - return variable; - } - - @JsonDeserialize( as=String.class ) - public void setVariable(String val ) { - variable = val; - } - -/** No missing signatures from interface */ -} - diff --git a/classes/ch/loway/oss/ari4java/generated/ari_2_0_0/models/Channel_impl_ari_2_0_0.java b/classes/ch/loway/oss/ari4java/generated/ari_2_0_0/models/Channel_impl_ari_2_0_0.java deleted file mode 100644 index 17acb081..00000000 --- a/classes/ch/loway/oss/ari4java/generated/ari_2_0_0/models/Channel_impl_ari_2_0_0.java +++ /dev/null @@ -1,138 +0,0 @@ -package ch.loway.oss.ari4java.generated.ari_2_0_0.models; - -// ---------------------------------------------------- -// THIS CLASS WAS GENERATED AUTOMATICALLY -// PLEASE DO NOT EDIT -// Generated on: Tue Dec 19 09:55:49 CET 2017 -// ---------------------------------------------------- - -import ch.loway.oss.ari4java.generated.*; -import com.fasterxml.jackson.databind.annotation.JsonDeserialize; -import java.util.Date; -import java.util.List; -import java.util.Map; - -/********************************************************** - * A specific communication connection between Asterisk and an Endpoint. - * - * Defined in file: channels.json - * Generated by: Model - *********************************************************/ - -public class Channel_impl_ari_2_0_0 implements Channel, java.io.Serializable { -private static final long serialVersionUID = 1L; - /** */ - private String accountcode; - public String getAccountcode() { - return accountcode; - } - - @JsonDeserialize( as=String.class ) - public void setAccountcode(String val ) { - accountcode = val; - } - - /** */ - private CallerID caller; - public CallerID getCaller() { - return caller; - } - - @JsonDeserialize( as=CallerID_impl_ari_2_0_0.class ) - public void setCaller(CallerID val ) { - caller = val; - } - - /** Channel variables */ - private String channelvars; - public String getChannelvars() { - return channelvars; - } - - @JsonDeserialize( as=String.class ) - public void setChannelvars(String val ) { - channelvars = val; - } - - /** */ - private CallerID connected; - public CallerID getConnected() { - return connected; - } - - @JsonDeserialize( as=CallerID_impl_ari_2_0_0.class ) - public void setConnected(CallerID val ) { - connected = val; - } - - /** Timestamp when channel was created */ - private Date creationtime; - public Date getCreationtime() { - return creationtime; - } - - @JsonDeserialize( as=Date.class ) - public void setCreationtime(Date val ) { - creationtime = val; - } - - /** Current location in the dialplan */ - private DialplanCEP dialplan; - public DialplanCEP getDialplan() { - return dialplan; - } - - @JsonDeserialize( as=DialplanCEP_impl_ari_2_0_0.class ) - public void setDialplan(DialplanCEP val ) { - dialplan = val; - } - - /** Unique identifier of the channel. - -This is the same as the Uniqueid field in AMI. */ - private String id; - public String getId() { - return id; - } - - @JsonDeserialize( as=String.class ) - public void setId(String val ) { - id = val; - } - - /** The default spoken language */ - private String language; - public String getLanguage() { - return language; - } - - @JsonDeserialize( as=String.class ) - public void setLanguage(String val ) { - language = val; - } - - /** Name of the channel (i.e. SIP/foo-0000a7e3) */ - private String name; - public String getName() { - return name; - } - - @JsonDeserialize( as=String.class ) - public void setName(String val ) { - name = val; - } - - /** */ - private String state; - public String getState() { - return state; - } - - @JsonDeserialize( as=String.class ) - public void setState(String val ) { - state = val; - } - -/** No missing signatures from interface */ -} - diff --git a/classes/ch/loway/oss/ari4java/generated/ari_2_0_0/models/ConfigInfo_impl_ari_2_0_0.java b/classes/ch/loway/oss/ari4java/generated/ari_2_0_0/models/ConfigInfo_impl_ari_2_0_0.java deleted file mode 100644 index 83eb401b..00000000 --- a/classes/ch/loway/oss/ari4java/generated/ari_2_0_0/models/ConfigInfo_impl_ari_2_0_0.java +++ /dev/null @@ -1,92 +0,0 @@ -package ch.loway.oss.ari4java.generated.ari_2_0_0.models; - -// ---------------------------------------------------- -// THIS CLASS WAS GENERATED AUTOMATICALLY -// PLEASE DO NOT EDIT -// Generated on: Tue Dec 19 09:55:49 CET 2017 -// ---------------------------------------------------- - -import ch.loway.oss.ari4java.generated.*; -import com.fasterxml.jackson.databind.annotation.JsonDeserialize; -import java.util.Date; -import java.util.List; -import java.util.Map; - -/********************************************************** - * Info about Asterisk configuration - * - * Defined in file: asterisk.json - * Generated by: Model - *********************************************************/ - -public class ConfigInfo_impl_ari_2_0_0 implements ConfigInfo, java.io.Serializable { -private static final long serialVersionUID = 1L; - /** Default language for media playback. */ - private String default_language; - public String getDefault_language() { - return default_language; - } - - @JsonDeserialize( as=String.class ) - public void setDefault_language(String val ) { - default_language = val; - } - - /** Maximum number of simultaneous channels. */ - private int max_channels; - public int getMax_channels() { - return max_channels; - } - - @JsonDeserialize( as=int.class ) - public void setMax_channels(int val ) { - max_channels = val; - } - - /** Maximum load avg on system. */ - private double max_load; - public double getMax_load() { - return max_load; - } - - @JsonDeserialize( as=double.class ) - public void setMax_load(double val ) { - max_load = val; - } - - /** Maximum number of open file handles (files, sockets). */ - private int max_open_files; - public int getMax_open_files() { - return max_open_files; - } - - @JsonDeserialize( as=int.class ) - public void setMax_open_files(int val ) { - max_open_files = val; - } - - /** Asterisk system name. */ - private String name; - public String getName() { - return name; - } - - @JsonDeserialize( as=String.class ) - public void setName(String val ) { - name = val; - } - - /** Effective user/group id for running Asterisk. */ - private SetId setid; - public SetId getSetid() { - return setid; - } - - @JsonDeserialize( as=SetId_impl_ari_2_0_0.class ) - public void setSetid(SetId val ) { - setid = val; - } - -/** No missing signatures from interface */ -} - diff --git a/classes/ch/loway/oss/ari4java/generated/ari_2_0_0/models/ConfigTuple_impl_ari_2_0_0.java b/classes/ch/loway/oss/ari4java/generated/ari_2_0_0/models/ConfigTuple_impl_ari_2_0_0.java deleted file mode 100644 index d8487c2b..00000000 --- a/classes/ch/loway/oss/ari4java/generated/ari_2_0_0/models/ConfigTuple_impl_ari_2_0_0.java +++ /dev/null @@ -1,48 +0,0 @@ -package ch.loway.oss.ari4java.generated.ari_2_0_0.models; - -// ---------------------------------------------------- -// THIS CLASS WAS GENERATED AUTOMATICALLY -// PLEASE DO NOT EDIT -// Generated on: Tue Dec 19 09:55:49 CET 2017 -// ---------------------------------------------------- - -import ch.loway.oss.ari4java.generated.*; -import com.fasterxml.jackson.databind.annotation.JsonDeserialize; -import java.util.Date; -import java.util.List; -import java.util.Map; - -/********************************************************** - * A key/value pair that makes up part of a configuration object. - * - * Defined in file: asterisk.json - * Generated by: Model - *********************************************************/ - -public class ConfigTuple_impl_ari_2_0_0 implements ConfigTuple, java.io.Serializable { -private static final long serialVersionUID = 1L; - /** A configuration object attribute. */ - private String attribute; - public String getAttribute() { - return attribute; - } - - @JsonDeserialize( as=String.class ) - public void setAttribute(String val ) { - attribute = val; - } - - /** The value for the attribute. */ - private String value; - public String getValue() { - return value; - } - - @JsonDeserialize( as=String.class ) - public void setValue(String val ) { - value = val; - } - -/** No missing signatures from interface */ -} - diff --git a/classes/ch/loway/oss/ari4java/generated/ari_2_0_0/models/ContactInfo_impl_ari_2_0_0.java b/classes/ch/loway/oss/ari4java/generated/ari_2_0_0/models/ContactInfo_impl_ari_2_0_0.java deleted file mode 100644 index ffb7fe1a..00000000 --- a/classes/ch/loway/oss/ari4java/generated/ari_2_0_0/models/ContactInfo_impl_ari_2_0_0.java +++ /dev/null @@ -1,70 +0,0 @@ -package ch.loway.oss.ari4java.generated.ari_2_0_0.models; - -// ---------------------------------------------------- -// THIS CLASS WAS GENERATED AUTOMATICALLY -// PLEASE DO NOT EDIT -// Generated on: Tue Dec 19 09:55:49 CET 2017 -// ---------------------------------------------------- - -import ch.loway.oss.ari4java.generated.*; -import com.fasterxml.jackson.databind.annotation.JsonDeserialize; -import java.util.Date; -import java.util.List; -import java.util.Map; - -/********************************************************** - * Detailed information about a contact on an endpoint. - * - * Defined in file: events.json - * Generated by: Model - *********************************************************/ - -public class ContactInfo_impl_ari_2_0_0 implements ContactInfo, java.io.Serializable { -private static final long serialVersionUID = 1L; - /** The Address of Record this contact belongs to. */ - private String aor; - public String getAor() { - return aor; - } - - @JsonDeserialize( as=String.class ) - public void setAor(String val ) { - aor = val; - } - - /** The current status of the contact. */ - private String contact_status; - public String getContact_status() { - return contact_status; - } - - @JsonDeserialize( as=String.class ) - public void setContact_status(String val ) { - contact_status = val; - } - - /** Current round trip time, in microseconds, for the contact. */ - private String roundtrip_usec; - public String getRoundtrip_usec() { - return roundtrip_usec; - } - - @JsonDeserialize( as=String.class ) - public void setRoundtrip_usec(String val ) { - roundtrip_usec = val; - } - - /** The location of the contact. */ - private String uri; - public String getUri() { - return uri; - } - - @JsonDeserialize( as=String.class ) - public void setUri(String val ) { - uri = val; - } - -/** No missing signatures from interface */ -} - diff --git a/classes/ch/loway/oss/ari4java/generated/ari_2_0_0/models/ContactStatusChange_impl_ari_2_0_0.java b/classes/ch/loway/oss/ari4java/generated/ari_2_0_0/models/ContactStatusChange_impl_ari_2_0_0.java deleted file mode 100644 index 3d02231f..00000000 --- a/classes/ch/loway/oss/ari4java/generated/ari_2_0_0/models/ContactStatusChange_impl_ari_2_0_0.java +++ /dev/null @@ -1,48 +0,0 @@ -package ch.loway.oss.ari4java.generated.ari_2_0_0.models; - -// ---------------------------------------------------- -// THIS CLASS WAS GENERATED AUTOMATICALLY -// PLEASE DO NOT EDIT -// Generated on: Tue Dec 19 09:55:49 CET 2017 -// ---------------------------------------------------- - -import ch.loway.oss.ari4java.generated.*; -import com.fasterxml.jackson.databind.annotation.JsonDeserialize; -import java.util.Date; -import java.util.List; -import java.util.Map; - -/********************************************************** - * The state of a contact on an endpoint has changed. - * - * Defined in file: events.json - * Generated by: Model - *********************************************************/ - -public class ContactStatusChange_impl_ari_2_0_0 extends Event_impl_ari_2_0_0 implements ContactStatusChange, java.io.Serializable { -private static final long serialVersionUID = 1L; - /** */ - private ContactInfo contact_info; - public ContactInfo getContact_info() { - return contact_info; - } - - @JsonDeserialize( as=ContactInfo_impl_ari_2_0_0.class ) - public void setContact_info(ContactInfo val ) { - contact_info = val; - } - - /** */ - private Endpoint endpoint; - public Endpoint getEndpoint() { - return endpoint; - } - - @JsonDeserialize( as=Endpoint_impl_ari_2_0_0.class ) - public void setEndpoint(Endpoint val ) { - endpoint = val; - } - -/** No missing signatures from interface */ -} - diff --git a/classes/ch/loway/oss/ari4java/generated/ari_2_0_0/models/DeviceStateChanged_impl_ari_2_0_0.java b/classes/ch/loway/oss/ari4java/generated/ari_2_0_0/models/DeviceStateChanged_impl_ari_2_0_0.java deleted file mode 100644 index b48c30fd..00000000 --- a/classes/ch/loway/oss/ari4java/generated/ari_2_0_0/models/DeviceStateChanged_impl_ari_2_0_0.java +++ /dev/null @@ -1,37 +0,0 @@ -package ch.loway.oss.ari4java.generated.ari_2_0_0.models; - -// ---------------------------------------------------- -// THIS CLASS WAS GENERATED AUTOMATICALLY -// PLEASE DO NOT EDIT -// Generated on: Tue Dec 19 09:55:49 CET 2017 -// ---------------------------------------------------- - -import ch.loway.oss.ari4java.generated.*; -import com.fasterxml.jackson.databind.annotation.JsonDeserialize; -import java.util.Date; -import java.util.List; -import java.util.Map; - -/********************************************************** - * Notification that a device state has changed. - * - * Defined in file: events.json - * Generated by: Model - *********************************************************/ - -public class DeviceStateChanged_impl_ari_2_0_0 extends Event_impl_ari_2_0_0 implements DeviceStateChanged, java.io.Serializable { -private static final long serialVersionUID = 1L; - /** Device state object */ - private DeviceState device_state; - public DeviceState getDevice_state() { - return device_state; - } - - @JsonDeserialize( as=DeviceState_impl_ari_2_0_0.class ) - public void setDevice_state(DeviceState val ) { - device_state = val; - } - -/** No missing signatures from interface */ -} - diff --git a/classes/ch/loway/oss/ari4java/generated/ari_2_0_0/models/DeviceState_impl_ari_2_0_0.java b/classes/ch/loway/oss/ari4java/generated/ari_2_0_0/models/DeviceState_impl_ari_2_0_0.java deleted file mode 100644 index 7f39a1be..00000000 --- a/classes/ch/loway/oss/ari4java/generated/ari_2_0_0/models/DeviceState_impl_ari_2_0_0.java +++ /dev/null @@ -1,48 +0,0 @@ -package ch.loway.oss.ari4java.generated.ari_2_0_0.models; - -// ---------------------------------------------------- -// THIS CLASS WAS GENERATED AUTOMATICALLY -// PLEASE DO NOT EDIT -// Generated on: Tue Dec 19 09:55:49 CET 2017 -// ---------------------------------------------------- - -import ch.loway.oss.ari4java.generated.*; -import com.fasterxml.jackson.databind.annotation.JsonDeserialize; -import java.util.Date; -import java.util.List; -import java.util.Map; - -/********************************************************** - * Represents the state of a device. - * - * Defined in file: deviceStates.json - * Generated by: Model - *********************************************************/ - -public class DeviceState_impl_ari_2_0_0 implements DeviceState, java.io.Serializable { -private static final long serialVersionUID = 1L; - /** Name of the device. */ - private String name; - public String getName() { - return name; - } - - @JsonDeserialize( as=String.class ) - public void setName(String val ) { - name = val; - } - - /** Device's state */ - private String state; - public String getState() { - return state; - } - - @JsonDeserialize( as=String.class ) - public void setState(String val ) { - state = val; - } - -/** No missing signatures from interface */ -} - diff --git a/classes/ch/loway/oss/ari4java/generated/ari_2_0_0/models/Dial_impl_ari_2_0_0.java b/classes/ch/loway/oss/ari4java/generated/ari_2_0_0/models/Dial_impl_ari_2_0_0.java deleted file mode 100644 index 8a4b8e3b..00000000 --- a/classes/ch/loway/oss/ari4java/generated/ari_2_0_0/models/Dial_impl_ari_2_0_0.java +++ /dev/null @@ -1,92 +0,0 @@ -package ch.loway.oss.ari4java.generated.ari_2_0_0.models; - -// ---------------------------------------------------- -// THIS CLASS WAS GENERATED AUTOMATICALLY -// PLEASE DO NOT EDIT -// Generated on: Tue Dec 19 09:55:49 CET 2017 -// ---------------------------------------------------- - -import ch.loway.oss.ari4java.generated.*; -import com.fasterxml.jackson.databind.annotation.JsonDeserialize; -import java.util.Date; -import java.util.List; -import java.util.Map; - -/********************************************************** - * Dialing state has changed. - * - * Defined in file: events.json - * Generated by: Model - *********************************************************/ - -public class Dial_impl_ari_2_0_0 extends Event_impl_ari_2_0_0 implements Dial, java.io.Serializable { -private static final long serialVersionUID = 1L; - /** The calling channel. */ - private Channel caller; - public Channel getCaller() { - return caller; - } - - @JsonDeserialize( as=Channel_impl_ari_2_0_0.class ) - public void setCaller(Channel val ) { - caller = val; - } - - /** Current status of the dialing attempt to the peer. */ - private String dialstatus; - public String getDialstatus() { - return dialstatus; - } - - @JsonDeserialize( as=String.class ) - public void setDialstatus(String val ) { - dialstatus = val; - } - - /** The dial string for calling the peer channel. */ - private String dialstring; - public String getDialstring() { - return dialstring; - } - - @JsonDeserialize( as=String.class ) - public void setDialstring(String val ) { - dialstring = val; - } - - /** Forwarding target requested by the original dialed channel. */ - private String forward; - public String getForward() { - return forward; - } - - @JsonDeserialize( as=String.class ) - public void setForward(String val ) { - forward = val; - } - - /** Channel that the caller has been forwarded to. */ - private Channel forwarded; - public Channel getForwarded() { - return forwarded; - } - - @JsonDeserialize( as=Channel_impl_ari_2_0_0.class ) - public void setForwarded(Channel val ) { - forwarded = val; - } - - /** The dialed channel. */ - private Channel peer; - public Channel getPeer() { - return peer; - } - - @JsonDeserialize( as=Channel_impl_ari_2_0_0.class ) - public void setPeer(Channel val ) { - peer = val; - } - -/** No missing signatures from interface */ -} - diff --git a/classes/ch/loway/oss/ari4java/generated/ari_2_0_0/models/Dialed_impl_ari_2_0_0.java b/classes/ch/loway/oss/ari4java/generated/ari_2_0_0/models/Dialed_impl_ari_2_0_0.java deleted file mode 100644 index 39ca64d5..00000000 --- a/classes/ch/loway/oss/ari4java/generated/ari_2_0_0/models/Dialed_impl_ari_2_0_0.java +++ /dev/null @@ -1,26 +0,0 @@ -package ch.loway.oss.ari4java.generated.ari_2_0_0.models; - -// ---------------------------------------------------- -// THIS CLASS WAS GENERATED AUTOMATICALLY -// PLEASE DO NOT EDIT -// Generated on: Tue Dec 19 09:55:49 CET 2017 -// ---------------------------------------------------- - -import ch.loway.oss.ari4java.generated.*; -import com.fasterxml.jackson.databind.annotation.JsonDeserialize; -import java.util.Date; -import java.util.List; -import java.util.Map; - -/********************************************************** - * Dialed channel information. - * - * Defined in file: channels.json - * Generated by: Model - *********************************************************/ - -public class Dialed_impl_ari_2_0_0 implements Dialed, java.io.Serializable { -private static final long serialVersionUID = 1L; -/** No missing signatures from interface */ -} - diff --git a/classes/ch/loway/oss/ari4java/generated/ari_2_0_0/models/DialplanCEP_impl_ari_2_0_0.java b/classes/ch/loway/oss/ari4java/generated/ari_2_0_0/models/DialplanCEP_impl_ari_2_0_0.java deleted file mode 100644 index 1d794d7c..00000000 --- a/classes/ch/loway/oss/ari4java/generated/ari_2_0_0/models/DialplanCEP_impl_ari_2_0_0.java +++ /dev/null @@ -1,59 +0,0 @@ -package ch.loway.oss.ari4java.generated.ari_2_0_0.models; - -// ---------------------------------------------------- -// THIS CLASS WAS GENERATED AUTOMATICALLY -// PLEASE DO NOT EDIT -// Generated on: Tue Dec 19 09:55:49 CET 2017 -// ---------------------------------------------------- - -import ch.loway.oss.ari4java.generated.*; -import com.fasterxml.jackson.databind.annotation.JsonDeserialize; -import java.util.Date; -import java.util.List; -import java.util.Map; - -/********************************************************** - * Dialplan location (context/extension/priority) - * - * Defined in file: channels.json - * Generated by: Model - *********************************************************/ - -public class DialplanCEP_impl_ari_2_0_0 implements DialplanCEP, java.io.Serializable { -private static final long serialVersionUID = 1L; - /** Context in the dialplan */ - private String context; - public String getContext() { - return context; - } - - @JsonDeserialize( as=String.class ) - public void setContext(String val ) { - context = val; - } - - /** Extension in the dialplan */ - private String exten; - public String getExten() { - return exten; - } - - @JsonDeserialize( as=String.class ) - public void setExten(String val ) { - exten = val; - } - - /** Priority in the dialplan */ - private long priority; - public long getPriority() { - return priority; - } - - @JsonDeserialize( as=long.class ) - public void setPriority(long val ) { - priority = val; - } - -/** No missing signatures from interface */ -} - diff --git a/classes/ch/loway/oss/ari4java/generated/ari_2_0_0/models/EndpointStateChange_impl_ari_2_0_0.java b/classes/ch/loway/oss/ari4java/generated/ari_2_0_0/models/EndpointStateChange_impl_ari_2_0_0.java deleted file mode 100644 index c230cacf..00000000 --- a/classes/ch/loway/oss/ari4java/generated/ari_2_0_0/models/EndpointStateChange_impl_ari_2_0_0.java +++ /dev/null @@ -1,37 +0,0 @@ -package ch.loway.oss.ari4java.generated.ari_2_0_0.models; - -// ---------------------------------------------------- -// THIS CLASS WAS GENERATED AUTOMATICALLY -// PLEASE DO NOT EDIT -// Generated on: Tue Dec 19 09:55:49 CET 2017 -// ---------------------------------------------------- - -import ch.loway.oss.ari4java.generated.*; -import com.fasterxml.jackson.databind.annotation.JsonDeserialize; -import java.util.Date; -import java.util.List; -import java.util.Map; - -/********************************************************** - * Endpoint state changed. - * - * Defined in file: events.json - * Generated by: Model - *********************************************************/ - -public class EndpointStateChange_impl_ari_2_0_0 extends Event_impl_ari_2_0_0 implements EndpointStateChange, java.io.Serializable { -private static final long serialVersionUID = 1L; - /** */ - private Endpoint endpoint; - public Endpoint getEndpoint() { - return endpoint; - } - - @JsonDeserialize( as=Endpoint_impl_ari_2_0_0.class ) - public void setEndpoint(Endpoint val ) { - endpoint = val; - } - -/** No missing signatures from interface */ -} - diff --git a/classes/ch/loway/oss/ari4java/generated/ari_2_0_0/models/Endpoint_impl_ari_2_0_0.java b/classes/ch/loway/oss/ari4java/generated/ari_2_0_0/models/Endpoint_impl_ari_2_0_0.java deleted file mode 100644 index c5d081da..00000000 --- a/classes/ch/loway/oss/ari4java/generated/ari_2_0_0/models/Endpoint_impl_ari_2_0_0.java +++ /dev/null @@ -1,72 +0,0 @@ -package ch.loway.oss.ari4java.generated.ari_2_0_0.models; - -// ---------------------------------------------------- -// THIS CLASS WAS GENERATED AUTOMATICALLY -// PLEASE DO NOT EDIT -// Generated on: Tue Dec 19 09:55:49 CET 2017 -// ---------------------------------------------------- - -import ch.loway.oss.ari4java.generated.*; -import com.fasterxml.jackson.databind.annotation.JsonDeserialize; -import java.util.Date; -import java.util.List; -import java.util.Map; - -/********************************************************** - * An external device that may offer/accept calls to/from Asterisk. - * - * Unlike most resources, which have a single unique identifier, an endpoint is uniquely identified by the technology/resource pair. - * - * Defined in file: endpoints.json - * Generated by: Model - *********************************************************/ - -public class Endpoint_impl_ari_2_0_0 implements Endpoint, java.io.Serializable { -private static final long serialVersionUID = 1L; - /** Id's of channels associated with this endpoint */ - private List channel_ids; - public List getChannel_ids() { - return channel_ids; - } - - @JsonDeserialize( contentAs=String.class ) - public void setChannel_ids(List val ) { - channel_ids = val; - } - - /** Identifier of the endpoint, specific to the given technology. */ - private String resource; - public String getResource() { - return resource; - } - - @JsonDeserialize( as=String.class ) - public void setResource(String val ) { - resource = val; - } - - /** Endpoint's state */ - private String state; - public String getState() { - return state; - } - - @JsonDeserialize( as=String.class ) - public void setState(String val ) { - state = val; - } - - /** Technology of the endpoint */ - private String technology; - public String getTechnology() { - return technology; - } - - @JsonDeserialize( as=String.class ) - public void setTechnology(String val ) { - technology = val; - } - -/** No missing signatures from interface */ -} - diff --git a/classes/ch/loway/oss/ari4java/generated/ari_2_0_0/models/Event_impl_ari_2_0_0.java b/classes/ch/loway/oss/ari4java/generated/ari_2_0_0/models/Event_impl_ari_2_0_0.java deleted file mode 100644 index ddc6bab5..00000000 --- a/classes/ch/loway/oss/ari4java/generated/ari_2_0_0/models/Event_impl_ari_2_0_0.java +++ /dev/null @@ -1,48 +0,0 @@ -package ch.loway.oss.ari4java.generated.ari_2_0_0.models; - -// ---------------------------------------------------- -// THIS CLASS WAS GENERATED AUTOMATICALLY -// PLEASE DO NOT EDIT -// Generated on: Tue Dec 19 09:55:49 CET 2017 -// ---------------------------------------------------- - -import ch.loway.oss.ari4java.generated.*; -import com.fasterxml.jackson.databind.annotation.JsonDeserialize; -import java.util.Date; -import java.util.List; -import java.util.Map; - -/********************************************************** - * Base type for asynchronous events from Asterisk. - * - * Defined in file: events.json - * Generated by: Model - *********************************************************/ - -public class Event_impl_ari_2_0_0 extends Message_impl_ari_2_0_0 implements Event, java.io.Serializable { -private static final long serialVersionUID = 1L; - /** Name of the application receiving the event. */ - private String application; - public String getApplication() { - return application; - } - - @JsonDeserialize( as=String.class ) - public void setApplication(String val ) { - application = val; - } - - /** Time at which this event was created. */ - private Date timestamp; - public Date getTimestamp() { - return timestamp; - } - - @JsonDeserialize( as=Date.class ) - public void setTimestamp(Date val ) { - timestamp = val; - } - -/** No missing signatures from interface */ -} - diff --git a/classes/ch/loway/oss/ari4java/generated/ari_2_0_0/models/FormatLangPair_impl_ari_2_0_0.java b/classes/ch/loway/oss/ari4java/generated/ari_2_0_0/models/FormatLangPair_impl_ari_2_0_0.java deleted file mode 100644 index 051b69df..00000000 --- a/classes/ch/loway/oss/ari4java/generated/ari_2_0_0/models/FormatLangPair_impl_ari_2_0_0.java +++ /dev/null @@ -1,48 +0,0 @@ -package ch.loway.oss.ari4java.generated.ari_2_0_0.models; - -// ---------------------------------------------------- -// THIS CLASS WAS GENERATED AUTOMATICALLY -// PLEASE DO NOT EDIT -// Generated on: Tue Dec 19 09:55:49 CET 2017 -// ---------------------------------------------------- - -import ch.loway.oss.ari4java.generated.*; -import com.fasterxml.jackson.databind.annotation.JsonDeserialize; -import java.util.Date; -import java.util.List; -import java.util.Map; - -/********************************************************** - * Identifies the format and language of a sound file - * - * Defined in file: sounds.json - * Generated by: Model - *********************************************************/ - -public class FormatLangPair_impl_ari_2_0_0 implements FormatLangPair, java.io.Serializable { -private static final long serialVersionUID = 1L; - /** */ - private String format; - public String getFormat() { - return format; - } - - @JsonDeserialize( as=String.class ) - public void setFormat(String val ) { - format = val; - } - - /** */ - private String language; - public String getLanguage() { - return language; - } - - @JsonDeserialize( as=String.class ) - public void setLanguage(String val ) { - language = val; - } - -/** No missing signatures from interface */ -} - diff --git a/classes/ch/loway/oss/ari4java/generated/ari_2_0_0/models/LiveRecording_impl_ari_2_0_0.java b/classes/ch/loway/oss/ari4java/generated/ari_2_0_0/models/LiveRecording_impl_ari_2_0_0.java deleted file mode 100644 index fd8711f4..00000000 --- a/classes/ch/loway/oss/ari4java/generated/ari_2_0_0/models/LiveRecording_impl_ari_2_0_0.java +++ /dev/null @@ -1,114 +0,0 @@ -package ch.loway.oss.ari4java.generated.ari_2_0_0.models; - -// ---------------------------------------------------- -// THIS CLASS WAS GENERATED AUTOMATICALLY -// PLEASE DO NOT EDIT -// Generated on: Tue Dec 19 09:55:49 CET 2017 -// ---------------------------------------------------- - -import ch.loway.oss.ari4java.generated.*; -import com.fasterxml.jackson.databind.annotation.JsonDeserialize; -import java.util.Date; -import java.util.List; -import java.util.Map; - -/********************************************************** - * A recording that is in progress - * - * Defined in file: recordings.json - * Generated by: Model - *********************************************************/ - -public class LiveRecording_impl_ari_2_0_0 implements LiveRecording, java.io.Serializable { -private static final long serialVersionUID = 1L; - /** Cause for recording failure if failed */ - private String cause; - public String getCause() { - return cause; - } - - @JsonDeserialize( as=String.class ) - public void setCause(String val ) { - cause = val; - } - - /** Duration in seconds of the recording */ - private int duration; - public int getDuration() { - return duration; - } - - @JsonDeserialize( as=int.class ) - public void setDuration(int val ) { - duration = val; - } - - /** Recording format (wav, gsm, etc.) */ - private String format; - public String getFormat() { - return format; - } - - @JsonDeserialize( as=String.class ) - public void setFormat(String val ) { - format = val; - } - - /** Base name for the recording */ - private String name; - public String getName() { - return name; - } - - @JsonDeserialize( as=String.class ) - public void setName(String val ) { - name = val; - } - - /** Duration of silence, in seconds, detected in the recording. This is only available if the recording was initiated with a non-zero maxSilenceSeconds. */ - private int silence_duration; - public int getSilence_duration() { - return silence_duration; - } - - @JsonDeserialize( as=int.class ) - public void setSilence_duration(int val ) { - silence_duration = val; - } - - /** */ - private String state; - public String getState() { - return state; - } - - @JsonDeserialize( as=String.class ) - public void setState(String val ) { - state = val; - } - - /** Duration of talking, in seconds, detected in the recording. This is only available if the recording was initiated with a non-zero maxSilenceSeconds. */ - private int talking_duration; - public int getTalking_duration() { - return talking_duration; - } - - @JsonDeserialize( as=int.class ) - public void setTalking_duration(int val ) { - talking_duration = val; - } - - /** URI for the channel or bridge being recorded */ - private String target_uri; - public String getTarget_uri() { - return target_uri; - } - - @JsonDeserialize( as=String.class ) - public void setTarget_uri(String val ) { - target_uri = val; - } - -/** No missing signatures from interface */ -} - diff --git a/classes/ch/loway/oss/ari4java/generated/ari_2_0_0/models/LogChannel_impl_ari_2_0_0.java b/classes/ch/loway/oss/ari4java/generated/ari_2_0_0/models/LogChannel_impl_ari_2_0_0.java deleted file mode 100644 index 0307c325..00000000 --- a/classes/ch/loway/oss/ari4java/generated/ari_2_0_0/models/LogChannel_impl_ari_2_0_0.java +++ /dev/null @@ -1,70 +0,0 @@ -package ch.loway.oss.ari4java.generated.ari_2_0_0.models; - -// ---------------------------------------------------- -// THIS CLASS WAS GENERATED AUTOMATICALLY -// PLEASE DO NOT EDIT -// Generated on: Tue Dec 19 09:55:49 CET 2017 -// ---------------------------------------------------- - -import ch.loway.oss.ari4java.generated.*; -import com.fasterxml.jackson.databind.annotation.JsonDeserialize; -import java.util.Date; -import java.util.List; -import java.util.Map; - -/********************************************************** - * Details of an Asterisk log channel - * - * Defined in file: asterisk.json - * Generated by: Model - *********************************************************/ - -public class LogChannel_impl_ari_2_0_0 implements LogChannel, java.io.Serializable { -private static final long serialVersionUID = 1L; - /** The log channel path */ - private String channel; - public String getChannel() { - return channel; - } - - @JsonDeserialize( as=String.class ) - public void setChannel(String val ) { - channel = val; - } - - /** The various log levels */ - private String configuration; - public String getConfiguration() { - return configuration; - } - - @JsonDeserialize( as=String.class ) - public void setConfiguration(String val ) { - configuration = val; - } - - /** Whether or not a log type is enabled */ - private String status; - public String getStatus() { - return status; - } - - @JsonDeserialize( as=String.class ) - public void setStatus(String val ) { - status = val; - } - - /** Types of logs for the log channel */ - private String type; - public String getType() { - return type; - } - - @JsonDeserialize( as=String.class ) - public void setType(String val ) { - type = val; - } - -/** No missing signatures from interface */ -} - diff --git a/classes/ch/loway/oss/ari4java/generated/ari_2_0_0/models/Message_impl_ari_2_0_0.java b/classes/ch/loway/oss/ari4java/generated/ari_2_0_0/models/Message_impl_ari_2_0_0.java deleted file mode 100644 index 6c4639f6..00000000 --- a/classes/ch/loway/oss/ari4java/generated/ari_2_0_0/models/Message_impl_ari_2_0_0.java +++ /dev/null @@ -1,95 +0,0 @@ -package ch.loway.oss.ari4java.generated.ari_2_0_0.models; - -// ---------------------------------------------------- -// THIS CLASS WAS GENERATED AUTOMATICALLY -// PLEASE DO NOT EDIT -// Generated on: Tue Dec 19 09:55:49 CET 2017 -// ---------------------------------------------------- - -import ch.loway.oss.ari4java.generated.*; -import com.fasterxml.jackson.annotation.JsonSubTypes; -import com.fasterxml.jackson.annotation.JsonSubTypes.Type; -import com.fasterxml.jackson.annotation.JsonTypeInfo; -import com.fasterxml.jackson.databind.annotation.JsonDeserialize; -import java.util.Date; -import java.util.List; -import java.util.Map; - -/********************************************************** - * Base type for errors and events - * - * Defined in file: events.json - * Generated by: Model - *********************************************************/ - @JsonTypeInfo( use = JsonTypeInfo.Id.NAME, include = JsonTypeInfo.As.PROPERTY, property = "type") - @JsonSubTypes({ @Type(value = MissingParams_impl_ari_2_0_0.class, name = "MissingParams") -, @Type(value = Event_impl_ari_2_0_0.class, name = "Event") -, @Type(value = ContactInfo_impl_ari_2_0_0.class, name = "ContactInfo") -, @Type(value = Peer_impl_ari_2_0_0.class, name = "Peer") -, @Type(value = DeviceStateChanged_impl_ari_2_0_0.class, name = "DeviceStateChanged") -, @Type(value = PlaybackStarted_impl_ari_2_0_0.class, name = "PlaybackStarted") -, @Type(value = PlaybackContinuing_impl_ari_2_0_0.class, name = "PlaybackContinuing") -, @Type(value = PlaybackFinished_impl_ari_2_0_0.class, name = "PlaybackFinished") -, @Type(value = RecordingStarted_impl_ari_2_0_0.class, name = "RecordingStarted") -, @Type(value = RecordingFinished_impl_ari_2_0_0.class, name = "RecordingFinished") -, @Type(value = RecordingFailed_impl_ari_2_0_0.class, name = "RecordingFailed") -, @Type(value = ApplicationReplaced_impl_ari_2_0_0.class, name = "ApplicationReplaced") -, @Type(value = BridgeCreated_impl_ari_2_0_0.class, name = "BridgeCreated") -, @Type(value = BridgeDestroyed_impl_ari_2_0_0.class, name = "BridgeDestroyed") -, @Type(value = BridgeMerged_impl_ari_2_0_0.class, name = "BridgeMerged") -, @Type(value = BridgeVideoSourceChanged_impl_ari_2_0_0.class, name = "BridgeVideoSourceChanged") -, @Type(value = BridgeBlindTransfer_impl_ari_2_0_0.class, name = "BridgeBlindTransfer") -, @Type(value = BridgeAttendedTransfer_impl_ari_2_0_0.class, name = "BridgeAttendedTransfer") -, @Type(value = ChannelCreated_impl_ari_2_0_0.class, name = "ChannelCreated") -, @Type(value = ChannelDestroyed_impl_ari_2_0_0.class, name = "ChannelDestroyed") -, @Type(value = ChannelEnteredBridge_impl_ari_2_0_0.class, name = "ChannelEnteredBridge") -, @Type(value = ChannelLeftBridge_impl_ari_2_0_0.class, name = "ChannelLeftBridge") -, @Type(value = ChannelStateChange_impl_ari_2_0_0.class, name = "ChannelStateChange") -, @Type(value = ChannelDtmfReceived_impl_ari_2_0_0.class, name = "ChannelDtmfReceived") -, @Type(value = ChannelDialplan_impl_ari_2_0_0.class, name = "ChannelDialplan") -, @Type(value = ChannelCallerId_impl_ari_2_0_0.class, name = "ChannelCallerId") -, @Type(value = ChannelUserevent_impl_ari_2_0_0.class, name = "ChannelUserevent") -, @Type(value = ChannelHangupRequest_impl_ari_2_0_0.class, name = "ChannelHangupRequest") -, @Type(value = ChannelVarset_impl_ari_2_0_0.class, name = "ChannelVarset") -, @Type(value = ChannelHold_impl_ari_2_0_0.class, name = "ChannelHold") -, @Type(value = ChannelUnhold_impl_ari_2_0_0.class, name = "ChannelUnhold") -, @Type(value = ChannelTalkingStarted_impl_ari_2_0_0.class, name = "ChannelTalkingStarted") -, @Type(value = ChannelTalkingFinished_impl_ari_2_0_0.class, name = "ChannelTalkingFinished") -, @Type(value = ContactStatusChange_impl_ari_2_0_0.class, name = "ContactStatusChange") -, @Type(value = PeerStatusChange_impl_ari_2_0_0.class, name = "PeerStatusChange") -, @Type(value = EndpointStateChange_impl_ari_2_0_0.class, name = "EndpointStateChange") -, @Type(value = Dial_impl_ari_2_0_0.class, name = "Dial") -, @Type(value = StasisEnd_impl_ari_2_0_0.class, name = "StasisEnd") -, @Type(value = StasisStart_impl_ari_2_0_0.class, name = "StasisStart") -, @Type(value = TextMessageReceived_impl_ari_2_0_0.class, name = "TextMessageReceived") -, @Type(value = ChannelConnectedLine_impl_ari_2_0_0.class, name = "ChannelConnectedLine") - }) - - -public class Message_impl_ari_2_0_0 implements Message, java.io.Serializable { -private static final long serialVersionUID = 1L; - /** The unique ID for the Asterisk instance that raised this event. */ - private String asterisk_id; - public String getAsterisk_id() { - return asterisk_id; - } - - @JsonDeserialize( as=String.class ) - public void setAsterisk_id(String val ) { - asterisk_id = val; - } - - /** Indicates the type of this message. */ - private String type; - public String getType() { - return type; - } - - @JsonDeserialize( as=String.class ) - public void setType(String val ) { - type = val; - } - -/** No missing signatures from interface */ -} - diff --git a/classes/ch/loway/oss/ari4java/generated/ari_2_0_0/models/MissingParams_impl_ari_2_0_0.java b/classes/ch/loway/oss/ari4java/generated/ari_2_0_0/models/MissingParams_impl_ari_2_0_0.java deleted file mode 100644 index 79ebbce9..00000000 --- a/classes/ch/loway/oss/ari4java/generated/ari_2_0_0/models/MissingParams_impl_ari_2_0_0.java +++ /dev/null @@ -1,37 +0,0 @@ -package ch.loway.oss.ari4java.generated.ari_2_0_0.models; - -// ---------------------------------------------------- -// THIS CLASS WAS GENERATED AUTOMATICALLY -// PLEASE DO NOT EDIT -// Generated on: Tue Dec 19 09:55:49 CET 2017 -// ---------------------------------------------------- - -import ch.loway.oss.ari4java.generated.*; -import com.fasterxml.jackson.databind.annotation.JsonDeserialize; -import java.util.Date; -import java.util.List; -import java.util.Map; - -/********************************************************** - * Error event sent when required params are missing. - * - * Defined in file: events.json - * Generated by: Model - *********************************************************/ - -public class MissingParams_impl_ari_2_0_0 extends Message_impl_ari_2_0_0 implements MissingParams, java.io.Serializable { -private static final long serialVersionUID = 1L; - /** A list of the missing parameters */ - private List params; - public List getParams() { - return params; - } - - @JsonDeserialize( contentAs=String.class ) - public void setParams(List val ) { - params = val; - } - -/** No missing signatures from interface */ -} - diff --git a/classes/ch/loway/oss/ari4java/generated/ari_2_0_0/models/Module_impl_ari_2_0_0.java b/classes/ch/loway/oss/ari4java/generated/ari_2_0_0/models/Module_impl_ari_2_0_0.java deleted file mode 100644 index b042405a..00000000 --- a/classes/ch/loway/oss/ari4java/generated/ari_2_0_0/models/Module_impl_ari_2_0_0.java +++ /dev/null @@ -1,81 +0,0 @@ -package ch.loway.oss.ari4java.generated.ari_2_0_0.models; - -// ---------------------------------------------------- -// THIS CLASS WAS GENERATED AUTOMATICALLY -// PLEASE DO NOT EDIT -// Generated on: Tue Dec 19 09:55:49 CET 2017 -// ---------------------------------------------------- - -import ch.loway.oss.ari4java.generated.*; -import com.fasterxml.jackson.databind.annotation.JsonDeserialize; -import java.util.Date; -import java.util.List; -import java.util.Map; - -/********************************************************** - * Details of an Asterisk module - * - * Defined in file: asterisk.json - * Generated by: Model - *********************************************************/ - -public class Module_impl_ari_2_0_0 implements Module, java.io.Serializable { -private static final long serialVersionUID = 1L; - /** The description of this module */ - private String description; - public String getDescription() { - return description; - } - - @JsonDeserialize( as=String.class ) - public void setDescription(String val ) { - description = val; - } - - /** The name of this module */ - private String name; - public String getName() { - return name; - } - - @JsonDeserialize( as=String.class ) - public void setName(String val ) { - name = val; - } - - /** The running status of this module */ - private String status; - public String getStatus() { - return status; - } - - @JsonDeserialize( as=String.class ) - public void setStatus(String val ) { - status = val; - } - - /** The support state of this module */ - private String support_level; - public String getSupport_level() { - return support_level; - } - - @JsonDeserialize( as=String.class ) - public void setSupport_level(String val ) { - support_level = val; - } - - /** The number of times this module is being used */ - private int use_count; - public int getUse_count() { - return use_count; - } - - @JsonDeserialize( as=int.class ) - public void setUse_count(int val ) { - use_count = val; - } - -/** No missing signatures from interface */ -} - diff --git a/classes/ch/loway/oss/ari4java/generated/ari_2_0_0/models/PeerStatusChange_impl_ari_2_0_0.java b/classes/ch/loway/oss/ari4java/generated/ari_2_0_0/models/PeerStatusChange_impl_ari_2_0_0.java deleted file mode 100644 index b9f0c5fe..00000000 --- a/classes/ch/loway/oss/ari4java/generated/ari_2_0_0/models/PeerStatusChange_impl_ari_2_0_0.java +++ /dev/null @@ -1,48 +0,0 @@ -package ch.loway.oss.ari4java.generated.ari_2_0_0.models; - -// ---------------------------------------------------- -// THIS CLASS WAS GENERATED AUTOMATICALLY -// PLEASE DO NOT EDIT -// Generated on: Tue Dec 19 09:55:49 CET 2017 -// ---------------------------------------------------- - -import ch.loway.oss.ari4java.generated.*; -import com.fasterxml.jackson.databind.annotation.JsonDeserialize; -import java.util.Date; -import java.util.List; -import java.util.Map; - -/********************************************************** - * The state of a peer associated with an endpoint has changed. - * - * Defined in file: events.json - * Generated by: Model - *********************************************************/ - -public class PeerStatusChange_impl_ari_2_0_0 extends Event_impl_ari_2_0_0 implements PeerStatusChange, java.io.Serializable { -private static final long serialVersionUID = 1L; - /** */ - private Endpoint endpoint; - public Endpoint getEndpoint() { - return endpoint; - } - - @JsonDeserialize( as=Endpoint_impl_ari_2_0_0.class ) - public void setEndpoint(Endpoint val ) { - endpoint = val; - } - - /** */ - private Peer peer; - public Peer getPeer() { - return peer; - } - - @JsonDeserialize( as=Peer_impl_ari_2_0_0.class ) - public void setPeer(Peer val ) { - peer = val; - } - -/** No missing signatures from interface */ -} - diff --git a/classes/ch/loway/oss/ari4java/generated/ari_2_0_0/models/Peer_impl_ari_2_0_0.java b/classes/ch/loway/oss/ari4java/generated/ari_2_0_0/models/Peer_impl_ari_2_0_0.java deleted file mode 100644 index ed36db31..00000000 --- a/classes/ch/loway/oss/ari4java/generated/ari_2_0_0/models/Peer_impl_ari_2_0_0.java +++ /dev/null @@ -1,81 +0,0 @@ -package ch.loway.oss.ari4java.generated.ari_2_0_0.models; - -// ---------------------------------------------------- -// THIS CLASS WAS GENERATED AUTOMATICALLY -// PLEASE DO NOT EDIT -// Generated on: Tue Dec 19 09:55:49 CET 2017 -// ---------------------------------------------------- - -import ch.loway.oss.ari4java.generated.*; -import com.fasterxml.jackson.databind.annotation.JsonDeserialize; -import java.util.Date; -import java.util.List; -import java.util.Map; - -/********************************************************** - * Detailed information about a remote peer that communicates with Asterisk. - * - * Defined in file: events.json - * Generated by: Model - *********************************************************/ - -public class Peer_impl_ari_2_0_0 implements Peer, java.io.Serializable { -private static final long serialVersionUID = 1L; - /** The IP address of the peer. */ - private String address; - public String getAddress() { - return address; - } - - @JsonDeserialize( as=String.class ) - public void setAddress(String val ) { - address = val; - } - - /** An optional reason associated with the change in peer_status. */ - private String cause; - public String getCause() { - return cause; - } - - @JsonDeserialize( as=String.class ) - public void setCause(String val ) { - cause = val; - } - - /** The current state of the peer. Note that the values of the status are dependent on the underlying peer technology. */ - private String peer_status; - public String getPeer_status() { - return peer_status; - } - - @JsonDeserialize( as=String.class ) - public void setPeer_status(String val ) { - peer_status = val; - } - - /** The port of the peer. */ - private String port; - public String getPort() { - return port; - } - - @JsonDeserialize( as=String.class ) - public void setPort(String val ) { - port = val; - } - - /** The last known time the peer was contacted. */ - private String time; - public String getTime() { - return time; - } - - @JsonDeserialize( as=String.class ) - public void setTime(String val ) { - time = val; - } - -/** No missing signatures from interface */ -} - diff --git a/classes/ch/loway/oss/ari4java/generated/ari_2_0_0/models/PlaybackContinuing_impl_ari_2_0_0.java b/classes/ch/loway/oss/ari4java/generated/ari_2_0_0/models/PlaybackContinuing_impl_ari_2_0_0.java deleted file mode 100644 index cf59df1c..00000000 --- a/classes/ch/loway/oss/ari4java/generated/ari_2_0_0/models/PlaybackContinuing_impl_ari_2_0_0.java +++ /dev/null @@ -1,37 +0,0 @@ -package ch.loway.oss.ari4java.generated.ari_2_0_0.models; - -// ---------------------------------------------------- -// THIS CLASS WAS GENERATED AUTOMATICALLY -// PLEASE DO NOT EDIT -// Generated on: Tue Dec 19 09:55:49 CET 2017 -// ---------------------------------------------------- - -import ch.loway.oss.ari4java.generated.*; -import com.fasterxml.jackson.databind.annotation.JsonDeserialize; -import java.util.Date; -import java.util.List; -import java.util.Map; - -/********************************************************** - * Event showing the continuation of a media playback operation from one media URI to the next in the list. - * - * Defined in file: events.json - * Generated by: Model - *********************************************************/ - -public class PlaybackContinuing_impl_ari_2_0_0 extends Event_impl_ari_2_0_0 implements PlaybackContinuing, java.io.Serializable { -private static final long serialVersionUID = 1L; - /** Playback control object */ - private Playback playback; - public Playback getPlayback() { - return playback; - } - - @JsonDeserialize( as=Playback_impl_ari_2_0_0.class ) - public void setPlayback(Playback val ) { - playback = val; - } - -/** No missing signatures from interface */ -} - diff --git a/classes/ch/loway/oss/ari4java/generated/ari_2_0_0/models/PlaybackFinished_impl_ari_2_0_0.java b/classes/ch/loway/oss/ari4java/generated/ari_2_0_0/models/PlaybackFinished_impl_ari_2_0_0.java deleted file mode 100644 index ea7c36df..00000000 --- a/classes/ch/loway/oss/ari4java/generated/ari_2_0_0/models/PlaybackFinished_impl_ari_2_0_0.java +++ /dev/null @@ -1,37 +0,0 @@ -package ch.loway.oss.ari4java.generated.ari_2_0_0.models; - -// ---------------------------------------------------- -// THIS CLASS WAS GENERATED AUTOMATICALLY -// PLEASE DO NOT EDIT -// Generated on: Tue Dec 19 09:55:49 CET 2017 -// ---------------------------------------------------- - -import ch.loway.oss.ari4java.generated.*; -import com.fasterxml.jackson.databind.annotation.JsonDeserialize; -import java.util.Date; -import java.util.List; -import java.util.Map; - -/********************************************************** - * Event showing the completion of a media playback operation. - * - * Defined in file: events.json - * Generated by: Model - *********************************************************/ - -public class PlaybackFinished_impl_ari_2_0_0 extends Event_impl_ari_2_0_0 implements PlaybackFinished, java.io.Serializable { -private static final long serialVersionUID = 1L; - /** Playback control object */ - private Playback playback; - public Playback getPlayback() { - return playback; - } - - @JsonDeserialize( as=Playback_impl_ari_2_0_0.class ) - public void setPlayback(Playback val ) { - playback = val; - } - -/** No missing signatures from interface */ -} - diff --git a/classes/ch/loway/oss/ari4java/generated/ari_2_0_0/models/PlaybackStarted_impl_ari_2_0_0.java b/classes/ch/loway/oss/ari4java/generated/ari_2_0_0/models/PlaybackStarted_impl_ari_2_0_0.java deleted file mode 100644 index 6c13f6f8..00000000 --- a/classes/ch/loway/oss/ari4java/generated/ari_2_0_0/models/PlaybackStarted_impl_ari_2_0_0.java +++ /dev/null @@ -1,37 +0,0 @@ -package ch.loway.oss.ari4java.generated.ari_2_0_0.models; - -// ---------------------------------------------------- -// THIS CLASS WAS GENERATED AUTOMATICALLY -// PLEASE DO NOT EDIT -// Generated on: Tue Dec 19 09:55:49 CET 2017 -// ---------------------------------------------------- - -import ch.loway.oss.ari4java.generated.*; -import com.fasterxml.jackson.databind.annotation.JsonDeserialize; -import java.util.Date; -import java.util.List; -import java.util.Map; - -/********************************************************** - * Event showing the start of a media playback operation. - * - * Defined in file: events.json - * Generated by: Model - *********************************************************/ - -public class PlaybackStarted_impl_ari_2_0_0 extends Event_impl_ari_2_0_0 implements PlaybackStarted, java.io.Serializable { -private static final long serialVersionUID = 1L; - /** Playback control object */ - private Playback playback; - public Playback getPlayback() { - return playback; - } - - @JsonDeserialize( as=Playback_impl_ari_2_0_0.class ) - public void setPlayback(Playback val ) { - playback = val; - } - -/** No missing signatures from interface */ -} - diff --git a/classes/ch/loway/oss/ari4java/generated/ari_2_0_0/models/Playback_impl_ari_2_0_0.java b/classes/ch/loway/oss/ari4java/generated/ari_2_0_0/models/Playback_impl_ari_2_0_0.java deleted file mode 100644 index 4a66d75a..00000000 --- a/classes/ch/loway/oss/ari4java/generated/ari_2_0_0/models/Playback_impl_ari_2_0_0.java +++ /dev/null @@ -1,92 +0,0 @@ -package ch.loway.oss.ari4java.generated.ari_2_0_0.models; - -// ---------------------------------------------------- -// THIS CLASS WAS GENERATED AUTOMATICALLY -// PLEASE DO NOT EDIT -// Generated on: Tue Dec 19 09:55:49 CET 2017 -// ---------------------------------------------------- - -import ch.loway.oss.ari4java.generated.*; -import com.fasterxml.jackson.databind.annotation.JsonDeserialize; -import java.util.Date; -import java.util.List; -import java.util.Map; - -/********************************************************** - * Object representing the playback of media to a channel - * - * Defined in file: playbacks.json - * Generated by: Model - *********************************************************/ - -public class Playback_impl_ari_2_0_0 implements Playback, java.io.Serializable { -private static final long serialVersionUID = 1L; - /** ID for this playback operation */ - private String id; - public String getId() { - return id; - } - - @JsonDeserialize( as=String.class ) - public void setId(String val ) { - id = val; - } - - /** For media types that support multiple languages, the language requested for playback. */ - private String language; - public String getLanguage() { - return language; - } - - @JsonDeserialize( as=String.class ) - public void setLanguage(String val ) { - language = val; - } - - /** The URI for the media currently being played back. */ - private String media_uri; - public String getMedia_uri() { - return media_uri; - } - - @JsonDeserialize( as=String.class ) - public void setMedia_uri(String val ) { - media_uri = val; - } - - /** If a list of URIs is being played, the next media URI to be played back. */ - private String next_media_uri; - public String getNext_media_uri() { - return next_media_uri; - } - - @JsonDeserialize( as=String.class ) - public void setNext_media_uri(String val ) { - next_media_uri = val; - } - - /** Current state of the playback operation. */ - private String state; - public String getState() { - return state; - } - - @JsonDeserialize( as=String.class ) - public void setState(String val ) { - state = val; - } - - /** URI for the channel or bridge to play the media on */ - private String target_uri; - public String getTarget_uri() { - return target_uri; - } - - @JsonDeserialize( as=String.class ) - public void setTarget_uri(String val ) { - target_uri = val; - } - -/** No missing signatures from interface */ -} - diff --git a/classes/ch/loway/oss/ari4java/generated/ari_2_0_0/models/RecordingFailed_impl_ari_2_0_0.java b/classes/ch/loway/oss/ari4java/generated/ari_2_0_0/models/RecordingFailed_impl_ari_2_0_0.java deleted file mode 100644 index b50333e7..00000000 --- a/classes/ch/loway/oss/ari4java/generated/ari_2_0_0/models/RecordingFailed_impl_ari_2_0_0.java +++ /dev/null @@ -1,37 +0,0 @@ -package ch.loway.oss.ari4java.generated.ari_2_0_0.models; - -// ---------------------------------------------------- -// THIS CLASS WAS GENERATED AUTOMATICALLY -// PLEASE DO NOT EDIT -// Generated on: Tue Dec 19 09:55:49 CET 2017 -// ---------------------------------------------------- - -import ch.loway.oss.ari4java.generated.*; -import com.fasterxml.jackson.databind.annotation.JsonDeserialize; -import java.util.Date; -import java.util.List; -import java.util.Map; - -/********************************************************** - * Event showing failure of a recording operation. - * - * Defined in file: events.json - * Generated by: Model - *********************************************************/ - -public class RecordingFailed_impl_ari_2_0_0 extends Event_impl_ari_2_0_0 implements RecordingFailed, java.io.Serializable { -private static final long serialVersionUID = 1L; - /** Recording control object */ - private LiveRecording recording; - public LiveRecording getRecording() { - return recording; - } - - @JsonDeserialize( as=LiveRecording_impl_ari_2_0_0.class ) - public void setRecording(LiveRecording val ) { - recording = val; - } - -/** No missing signatures from interface */ -} - diff --git a/classes/ch/loway/oss/ari4java/generated/ari_2_0_0/models/RecordingFinished_impl_ari_2_0_0.java b/classes/ch/loway/oss/ari4java/generated/ari_2_0_0/models/RecordingFinished_impl_ari_2_0_0.java deleted file mode 100644 index ce3c4696..00000000 --- a/classes/ch/loway/oss/ari4java/generated/ari_2_0_0/models/RecordingFinished_impl_ari_2_0_0.java +++ /dev/null @@ -1,37 +0,0 @@ -package ch.loway.oss.ari4java.generated.ari_2_0_0.models; - -// ---------------------------------------------------- -// THIS CLASS WAS GENERATED AUTOMATICALLY -// PLEASE DO NOT EDIT -// Generated on: Tue Dec 19 09:55:49 CET 2017 -// ---------------------------------------------------- - -import ch.loway.oss.ari4java.generated.*; -import com.fasterxml.jackson.databind.annotation.JsonDeserialize; -import java.util.Date; -import java.util.List; -import java.util.Map; - -/********************************************************** - * Event showing the completion of a recording operation. - * - * Defined in file: events.json - * Generated by: Model - *********************************************************/ - -public class RecordingFinished_impl_ari_2_0_0 extends Event_impl_ari_2_0_0 implements RecordingFinished, java.io.Serializable { -private static final long serialVersionUID = 1L; - /** Recording control object */ - private LiveRecording recording; - public LiveRecording getRecording() { - return recording; - } - - @JsonDeserialize( as=LiveRecording_impl_ari_2_0_0.class ) - public void setRecording(LiveRecording val ) { - recording = val; - } - -/** No missing signatures from interface */ -} - diff --git a/classes/ch/loway/oss/ari4java/generated/ari_2_0_0/models/RecordingStarted_impl_ari_2_0_0.java b/classes/ch/loway/oss/ari4java/generated/ari_2_0_0/models/RecordingStarted_impl_ari_2_0_0.java deleted file mode 100644 index 2647a3f1..00000000 --- a/classes/ch/loway/oss/ari4java/generated/ari_2_0_0/models/RecordingStarted_impl_ari_2_0_0.java +++ /dev/null @@ -1,37 +0,0 @@ -package ch.loway.oss.ari4java.generated.ari_2_0_0.models; - -// ---------------------------------------------------- -// THIS CLASS WAS GENERATED AUTOMATICALLY -// PLEASE DO NOT EDIT -// Generated on: Tue Dec 19 09:55:49 CET 2017 -// ---------------------------------------------------- - -import ch.loway.oss.ari4java.generated.*; -import com.fasterxml.jackson.databind.annotation.JsonDeserialize; -import java.util.Date; -import java.util.List; -import java.util.Map; - -/********************************************************** - * Event showing the start of a recording operation. - * - * Defined in file: events.json - * Generated by: Model - *********************************************************/ - -public class RecordingStarted_impl_ari_2_0_0 extends Event_impl_ari_2_0_0 implements RecordingStarted, java.io.Serializable { -private static final long serialVersionUID = 1L; - /** Recording control object */ - private LiveRecording recording; - public LiveRecording getRecording() { - return recording; - } - - @JsonDeserialize( as=LiveRecording_impl_ari_2_0_0.class ) - public void setRecording(LiveRecording val ) { - recording = val; - } - -/** No missing signatures from interface */ -} - diff --git a/classes/ch/loway/oss/ari4java/generated/ari_2_0_0/models/SetId_impl_ari_2_0_0.java b/classes/ch/loway/oss/ari4java/generated/ari_2_0_0/models/SetId_impl_ari_2_0_0.java deleted file mode 100644 index f3711763..00000000 --- a/classes/ch/loway/oss/ari4java/generated/ari_2_0_0/models/SetId_impl_ari_2_0_0.java +++ /dev/null @@ -1,48 +0,0 @@ -package ch.loway.oss.ari4java.generated.ari_2_0_0.models; - -// ---------------------------------------------------- -// THIS CLASS WAS GENERATED AUTOMATICALLY -// PLEASE DO NOT EDIT -// Generated on: Tue Dec 19 09:55:49 CET 2017 -// ---------------------------------------------------- - -import ch.loway.oss.ari4java.generated.*; -import com.fasterxml.jackson.databind.annotation.JsonDeserialize; -import java.util.Date; -import java.util.List; -import java.util.Map; - -/********************************************************** - * Effective user/group id - * - * Defined in file: asterisk.json - * Generated by: Model - *********************************************************/ - -public class SetId_impl_ari_2_0_0 implements SetId, java.io.Serializable { -private static final long serialVersionUID = 1L; - /** Effective group id. */ - private String group; - public String getGroup() { - return group; - } - - @JsonDeserialize( as=String.class ) - public void setGroup(String val ) { - group = val; - } - - /** Effective user id. */ - private String user; - public String getUser() { - return user; - } - - @JsonDeserialize( as=String.class ) - public void setUser(String val ) { - user = val; - } - -/** No missing signatures from interface */ -} - diff --git a/classes/ch/loway/oss/ari4java/generated/ari_2_0_0/models/Sound_impl_ari_2_0_0.java b/classes/ch/loway/oss/ari4java/generated/ari_2_0_0/models/Sound_impl_ari_2_0_0.java deleted file mode 100644 index 8c846a58..00000000 --- a/classes/ch/loway/oss/ari4java/generated/ari_2_0_0/models/Sound_impl_ari_2_0_0.java +++ /dev/null @@ -1,59 +0,0 @@ -package ch.loway.oss.ari4java.generated.ari_2_0_0.models; - -// ---------------------------------------------------- -// THIS CLASS WAS GENERATED AUTOMATICALLY -// PLEASE DO NOT EDIT -// Generated on: Tue Dec 19 09:55:49 CET 2017 -// ---------------------------------------------------- - -import ch.loway.oss.ari4java.generated.*; -import com.fasterxml.jackson.databind.annotation.JsonDeserialize; -import java.util.Date; -import java.util.List; -import java.util.Map; - -/********************************************************** - * A media file that may be played back. - * - * Defined in file: sounds.json - * Generated by: Model - *********************************************************/ - -public class Sound_impl_ari_2_0_0 implements Sound, java.io.Serializable { -private static final long serialVersionUID = 1L; - /** The formats and languages in which this sound is available. */ - private List formats; - public List getFormats() { - return formats; - } - - @JsonDeserialize( contentAs=FormatLangPair_impl_ari_2_0_0.class ) - public void setFormats(List val ) { - formats = val; - } - - /** Sound's identifier. */ - private String id; - public String getId() { - return id; - } - - @JsonDeserialize( as=String.class ) - public void setId(String val ) { - id = val; - } - - /** Text description of the sound, usually the words spoken. */ - private String text; - public String getText() { - return text; - } - - @JsonDeserialize( as=String.class ) - public void setText(String val ) { - text = val; - } - -/** No missing signatures from interface */ -} - diff --git a/classes/ch/loway/oss/ari4java/generated/ari_2_0_0/models/StasisEnd_impl_ari_2_0_0.java b/classes/ch/loway/oss/ari4java/generated/ari_2_0_0/models/StasisEnd_impl_ari_2_0_0.java deleted file mode 100644 index d5385b82..00000000 --- a/classes/ch/loway/oss/ari4java/generated/ari_2_0_0/models/StasisEnd_impl_ari_2_0_0.java +++ /dev/null @@ -1,37 +0,0 @@ -package ch.loway.oss.ari4java.generated.ari_2_0_0.models; - -// ---------------------------------------------------- -// THIS CLASS WAS GENERATED AUTOMATICALLY -// PLEASE DO NOT EDIT -// Generated on: Tue Dec 19 09:55:49 CET 2017 -// ---------------------------------------------------- - -import ch.loway.oss.ari4java.generated.*; -import com.fasterxml.jackson.databind.annotation.JsonDeserialize; -import java.util.Date; -import java.util.List; -import java.util.Map; - -/********************************************************** - * Notification that a channel has left a Stasis application. - * - * Defined in file: events.json - * Generated by: Model - *********************************************************/ - -public class StasisEnd_impl_ari_2_0_0 extends Event_impl_ari_2_0_0 implements StasisEnd, java.io.Serializable { -private static final long serialVersionUID = 1L; - /** */ - private Channel channel; - public Channel getChannel() { - return channel; - } - - @JsonDeserialize( as=Channel_impl_ari_2_0_0.class ) - public void setChannel(Channel val ) { - channel = val; - } - -/** No missing signatures from interface */ -} - diff --git a/classes/ch/loway/oss/ari4java/generated/ari_2_0_0/models/StasisStart_impl_ari_2_0_0.java b/classes/ch/loway/oss/ari4java/generated/ari_2_0_0/models/StasisStart_impl_ari_2_0_0.java deleted file mode 100644 index 484d6e4a..00000000 --- a/classes/ch/loway/oss/ari4java/generated/ari_2_0_0/models/StasisStart_impl_ari_2_0_0.java +++ /dev/null @@ -1,59 +0,0 @@ -package ch.loway.oss.ari4java.generated.ari_2_0_0.models; - -// ---------------------------------------------------- -// THIS CLASS WAS GENERATED AUTOMATICALLY -// PLEASE DO NOT EDIT -// Generated on: Tue Dec 19 09:55:49 CET 2017 -// ---------------------------------------------------- - -import ch.loway.oss.ari4java.generated.*; -import com.fasterxml.jackson.databind.annotation.JsonDeserialize; -import java.util.Date; -import java.util.List; -import java.util.Map; - -/********************************************************** - * Notification that a channel has entered a Stasis application. - * - * Defined in file: events.json - * Generated by: Model - *********************************************************/ - -public class StasisStart_impl_ari_2_0_0 extends Event_impl_ari_2_0_0 implements StasisStart, java.io.Serializable { -private static final long serialVersionUID = 1L; - /** Arguments to the application */ - private List args; - public List getArgs() { - return args; - } - - @JsonDeserialize( contentAs=String.class ) - public void setArgs(List val ) { - args = val; - } - - /** */ - private Channel channel; - public Channel getChannel() { - return channel; - } - - @JsonDeserialize( as=Channel_impl_ari_2_0_0.class ) - public void setChannel(Channel val ) { - channel = val; - } - - /** */ - private Channel replace_channel; - public Channel getReplace_channel() { - return replace_channel; - } - - @JsonDeserialize( as=Channel_impl_ari_2_0_0.class ) - public void setReplace_channel(Channel val ) { - replace_channel = val; - } - -/** No missing signatures from interface */ -} - diff --git a/classes/ch/loway/oss/ari4java/generated/ari_2_0_0/models/StatusInfo_impl_ari_2_0_0.java b/classes/ch/loway/oss/ari4java/generated/ari_2_0_0/models/StatusInfo_impl_ari_2_0_0.java deleted file mode 100644 index 91eb5a9d..00000000 --- a/classes/ch/loway/oss/ari4java/generated/ari_2_0_0/models/StatusInfo_impl_ari_2_0_0.java +++ /dev/null @@ -1,48 +0,0 @@ -package ch.loway.oss.ari4java.generated.ari_2_0_0.models; - -// ---------------------------------------------------- -// THIS CLASS WAS GENERATED AUTOMATICALLY -// PLEASE DO NOT EDIT -// Generated on: Tue Dec 19 09:55:49 CET 2017 -// ---------------------------------------------------- - -import ch.loway.oss.ari4java.generated.*; -import com.fasterxml.jackson.databind.annotation.JsonDeserialize; -import java.util.Date; -import java.util.List; -import java.util.Map; - -/********************************************************** - * Info about Asterisk status - * - * Defined in file: asterisk.json - * Generated by: Model - *********************************************************/ - -public class StatusInfo_impl_ari_2_0_0 implements StatusInfo, java.io.Serializable { -private static final long serialVersionUID = 1L; - /** Time when Asterisk was last reloaded. */ - private Date last_reload_time; - public Date getLast_reload_time() { - return last_reload_time; - } - - @JsonDeserialize( as=Date.class ) - public void setLast_reload_time(Date val ) { - last_reload_time = val; - } - - /** Time when Asterisk was started. */ - private Date startup_time; - public Date getStartup_time() { - return startup_time; - } - - @JsonDeserialize( as=Date.class ) - public void setStartup_time(Date val ) { - startup_time = val; - } - -/** No missing signatures from interface */ -} - diff --git a/classes/ch/loway/oss/ari4java/generated/ari_2_0_0/models/StoredRecording_impl_ari_2_0_0.java b/classes/ch/loway/oss/ari4java/generated/ari_2_0_0/models/StoredRecording_impl_ari_2_0_0.java deleted file mode 100644 index 4f0b68ce..00000000 --- a/classes/ch/loway/oss/ari4java/generated/ari_2_0_0/models/StoredRecording_impl_ari_2_0_0.java +++ /dev/null @@ -1,48 +0,0 @@ -package ch.loway.oss.ari4java.generated.ari_2_0_0.models; - -// ---------------------------------------------------- -// THIS CLASS WAS GENERATED AUTOMATICALLY -// PLEASE DO NOT EDIT -// Generated on: Tue Dec 19 09:55:49 CET 2017 -// ---------------------------------------------------- - -import ch.loway.oss.ari4java.generated.*; -import com.fasterxml.jackson.databind.annotation.JsonDeserialize; -import java.util.Date; -import java.util.List; -import java.util.Map; - -/********************************************************** - * A past recording that may be played back. - * - * Defined in file: recordings.json - * Generated by: Model - *********************************************************/ - -public class StoredRecording_impl_ari_2_0_0 implements StoredRecording, java.io.Serializable { -private static final long serialVersionUID = 1L; - /** */ - private String format; - public String getFormat() { - return format; - } - - @JsonDeserialize( as=String.class ) - public void setFormat(String val ) { - format = val; - } - - /** */ - private String name; - public String getName() { - return name; - } - - @JsonDeserialize( as=String.class ) - public void setName(String val ) { - name = val; - } - -/** No missing signatures from interface */ -} - diff --git a/classes/ch/loway/oss/ari4java/generated/ari_2_0_0/models/SystemInfo_impl_ari_2_0_0.java b/classes/ch/loway/oss/ari4java/generated/ari_2_0_0/models/SystemInfo_impl_ari_2_0_0.java deleted file mode 100644 index 6e096293..00000000 --- a/classes/ch/loway/oss/ari4java/generated/ari_2_0_0/models/SystemInfo_impl_ari_2_0_0.java +++ /dev/null @@ -1,48 +0,0 @@ -package ch.loway.oss.ari4java.generated.ari_2_0_0.models; - -// ---------------------------------------------------- -// THIS CLASS WAS GENERATED AUTOMATICALLY -// PLEASE DO NOT EDIT -// Generated on: Tue Dec 19 09:55:49 CET 2017 -// ---------------------------------------------------- - -import ch.loway.oss.ari4java.generated.*; -import com.fasterxml.jackson.databind.annotation.JsonDeserialize; -import java.util.Date; -import java.util.List; -import java.util.Map; - -/********************************************************** - * Info about Asterisk - * - * Defined in file: asterisk.json - * Generated by: Model - *********************************************************/ - -public class SystemInfo_impl_ari_2_0_0 implements SystemInfo, java.io.Serializable { -private static final long serialVersionUID = 1L; - /** */ - private String entity_id; - public String getEntity_id() { - return entity_id; - } - - @JsonDeserialize( as=String.class ) - public void setEntity_id(String val ) { - entity_id = val; - } - - /** Asterisk version. */ - private String version; - public String getVersion() { - return version; - } - - @JsonDeserialize( as=String.class ) - public void setVersion(String val ) { - version = val; - } - -/** No missing signatures from interface */ -} - diff --git a/classes/ch/loway/oss/ari4java/generated/ari_2_0_0/models/TextMessageReceived_impl_ari_2_0_0.java b/classes/ch/loway/oss/ari4java/generated/ari_2_0_0/models/TextMessageReceived_impl_ari_2_0_0.java deleted file mode 100644 index c2090ad6..00000000 --- a/classes/ch/loway/oss/ari4java/generated/ari_2_0_0/models/TextMessageReceived_impl_ari_2_0_0.java +++ /dev/null @@ -1,48 +0,0 @@ -package ch.loway.oss.ari4java.generated.ari_2_0_0.models; - -// ---------------------------------------------------- -// THIS CLASS WAS GENERATED AUTOMATICALLY -// PLEASE DO NOT EDIT -// Generated on: Tue Dec 19 09:55:49 CET 2017 -// ---------------------------------------------------- - -import ch.loway.oss.ari4java.generated.*; -import com.fasterxml.jackson.databind.annotation.JsonDeserialize; -import java.util.Date; -import java.util.List; -import java.util.Map; - -/********************************************************** - * A text message was received from an endpoint. - * - * Defined in file: events.json - * Generated by: Model - *********************************************************/ - -public class TextMessageReceived_impl_ari_2_0_0 extends Event_impl_ari_2_0_0 implements TextMessageReceived, java.io.Serializable { -private static final long serialVersionUID = 1L; - /** */ - private Endpoint endpoint; - public Endpoint getEndpoint() { - return endpoint; - } - - @JsonDeserialize( as=Endpoint_impl_ari_2_0_0.class ) - public void setEndpoint(Endpoint val ) { - endpoint = val; - } - - /** */ - private TextMessage message; - public TextMessage getMessage() { - return message; - } - - @JsonDeserialize( as=TextMessage_impl_ari_2_0_0.class ) - public void setMessage(TextMessage val ) { - message = val; - } - -/** No missing signatures from interface */ -} - diff --git a/classes/ch/loway/oss/ari4java/generated/ari_2_0_0/models/TextMessageVariable_impl_ari_2_0_0.java b/classes/ch/loway/oss/ari4java/generated/ari_2_0_0/models/TextMessageVariable_impl_ari_2_0_0.java deleted file mode 100644 index c59ad796..00000000 --- a/classes/ch/loway/oss/ari4java/generated/ari_2_0_0/models/TextMessageVariable_impl_ari_2_0_0.java +++ /dev/null @@ -1,48 +0,0 @@ -package ch.loway.oss.ari4java.generated.ari_2_0_0.models; - -// ---------------------------------------------------- -// THIS CLASS WAS GENERATED AUTOMATICALLY -// PLEASE DO NOT EDIT -// Generated on: Tue Dec 19 09:55:49 CET 2017 -// ---------------------------------------------------- - -import ch.loway.oss.ari4java.generated.*; -import com.fasterxml.jackson.databind.annotation.JsonDeserialize; -import java.util.Date; -import java.util.List; -import java.util.Map; - -/********************************************************** - * A key/value pair variable in a text message. - * - * Defined in file: endpoints.json - * Generated by: Model - *********************************************************/ - -public class TextMessageVariable_impl_ari_2_0_0 implements TextMessageVariable, java.io.Serializable { -private static final long serialVersionUID = 1L; - /** A unique key identifying the variable. */ - private String key; - public String getKey() { - return key; - } - - @JsonDeserialize( as=String.class ) - public void setKey(String val ) { - key = val; - } - - /** The value of the variable. */ - private String value; - public String getValue() { - return value; - } - - @JsonDeserialize( as=String.class ) - public void setValue(String val ) { - value = val; - } - -/** No missing signatures from interface */ -} - diff --git a/classes/ch/loway/oss/ari4java/generated/ari_2_0_0/models/TextMessage_impl_ari_2_0_0.java b/classes/ch/loway/oss/ari4java/generated/ari_2_0_0/models/TextMessage_impl_ari_2_0_0.java deleted file mode 100644 index cf0c8a0c..00000000 --- a/classes/ch/loway/oss/ari4java/generated/ari_2_0_0/models/TextMessage_impl_ari_2_0_0.java +++ /dev/null @@ -1,70 +0,0 @@ -package ch.loway.oss.ari4java.generated.ari_2_0_0.models; - -// ---------------------------------------------------- -// THIS CLASS WAS GENERATED AUTOMATICALLY -// PLEASE DO NOT EDIT -// Generated on: Tue Dec 19 09:55:49 CET 2017 -// ---------------------------------------------------- - -import ch.loway.oss.ari4java.generated.*; -import com.fasterxml.jackson.databind.annotation.JsonDeserialize; -import java.util.Date; -import java.util.List; -import java.util.Map; - -/********************************************************** - * A text message. - * - * Defined in file: endpoints.json - * Generated by: Model - *********************************************************/ - -public class TextMessage_impl_ari_2_0_0 implements TextMessage, java.io.Serializable { -private static final long serialVersionUID = 1L; - /** The text of the message. */ - private String body; - public String getBody() { - return body; - } - - @JsonDeserialize( as=String.class ) - public void setBody(String val ) { - body = val; - } - - /** A technology specific URI specifying the source of the message. For sip and pjsip technologies, any SIP URI can be specified. For xmpp, the URI must correspond to the client connection being used to send the message. */ - private String from; - public String getFrom() { - return from; - } - - @JsonDeserialize( as=String.class ) - public void setFrom(String val ) { - from = val; - } - - /** A technology specific URI specifying the destination of the message. Valid technologies include sip, pjsip, and xmp. The destination of a message should be an endpoint. */ - private String to; - public String getTo() { - return to; - } - - @JsonDeserialize( as=String.class ) - public void setTo(String val ) { - to = val; - } - - /** Technology specific key/value pairs associated with the message. */ - private List variables; - public List getVariables() { - return variables; - } - - @JsonDeserialize( contentAs=TextMessageVariable_impl_ari_2_0_0.class ) - public void setVariables(List val ) { - variables = val; - } - -/** No missing signatures from interface */ -} - diff --git a/classes/ch/loway/oss/ari4java/generated/ari_2_0_0/models/Variable_impl_ari_2_0_0.java b/classes/ch/loway/oss/ari4java/generated/ari_2_0_0/models/Variable_impl_ari_2_0_0.java deleted file mode 100644 index 13ee4d8a..00000000 --- a/classes/ch/loway/oss/ari4java/generated/ari_2_0_0/models/Variable_impl_ari_2_0_0.java +++ /dev/null @@ -1,37 +0,0 @@ -package ch.loway.oss.ari4java.generated.ari_2_0_0.models; - -// ---------------------------------------------------- -// THIS CLASS WAS GENERATED AUTOMATICALLY -// PLEASE DO NOT EDIT -// Generated on: Tue Dec 19 09:55:49 CET 2017 -// ---------------------------------------------------- - -import ch.loway.oss.ari4java.generated.*; -import com.fasterxml.jackson.databind.annotation.JsonDeserialize; -import java.util.Date; -import java.util.List; -import java.util.Map; - -/********************************************************** - * The value of a channel variable - * - * Defined in file: asterisk.json - * Generated by: Model - *********************************************************/ - -public class Variable_impl_ari_2_0_0 implements Variable, java.io.Serializable { -private static final long serialVersionUID = 1L; - /** The value of the variable requested */ - private String value; - public String getValue() { - return value; - } - - @JsonDeserialize( as=String.class ) - public void setValue(String val ) { - value = val; - } - -/** No missing signatures from interface */ -} - diff --git a/classes/ch/loway/oss/ari4java/generated/ari_3_0_0/AriBuilder_impl_ari_3_0_0.java b/classes/ch/loway/oss/ari4java/generated/ari_3_0_0/AriBuilder_impl_ari_3_0_0.java deleted file mode 100644 index 08e4fc2a..00000000 --- a/classes/ch/loway/oss/ari4java/generated/ari_3_0_0/AriBuilder_impl_ari_3_0_0.java +++ /dev/null @@ -1,328 +0,0 @@ -package ch.loway.oss.ari4java.generated.ari_3_0_0; - -// ---------------------------------------------------- -// THIS CLASS WAS GENERATED AUTOMATICALLY -// PLEASE DO NOT EDIT -// Generated on: Tue Dec 19 09:55:50 CET 2017 -// ---------------------------------------------------- - -import ch.loway.oss.ari4java.generated.ari_3_0_0.models.*; -import ch.loway.oss.ari4java.generated.ari_3_0_0.actions.*; -import ch.loway.oss.ari4java.generated.*; -import ch.loway.oss.ari4java.ARI; - -public class AriBuilder_impl_ari_3_0_0 implements AriBuilder { - -public ActionApplications actionApplications() { - return new ActionApplications_impl_ari_3_0_0(); - }; - -public ActionPlaybacks actionPlaybacks() { - return new ActionPlaybacks_impl_ari_3_0_0(); - }; - -public ActionEvents actionEvents() { - return new ActionEvents_impl_ari_3_0_0(); - }; - -public ActionRecordings actionRecordings() { - return new ActionRecordings_impl_ari_3_0_0(); - }; - -public ActionDeviceStates actionDeviceStates() { - return new ActionDeviceStates_impl_ari_3_0_0(); - }; - -public ActionChannels actionChannels() { - return new ActionChannels_impl_ari_3_0_0(); - }; - -public ActionBridges actionBridges() { - return new ActionBridges_impl_ari_3_0_0(); - }; - -public ActionEndpoints actionEndpoints() { - return new ActionEndpoints_impl_ari_3_0_0(); - }; - -public ActionSounds actionSounds() { - return new ActionSounds_impl_ari_3_0_0(); - }; - -public ActionAsterisk actionAsterisk() { - return new ActionAsterisk_impl_ari_3_0_0(); - }; - -public TextMessageVariable textMessageVariable() { - return new TextMessageVariable_impl_ari_3_0_0(); - }; - -public LiveRecording liveRecording() { - return new LiveRecording_impl_ari_3_0_0(); - }; - -public CallerID callerID() { - return new CallerID_impl_ari_3_0_0(); - }; - -public PeerStatusChange peerStatusChange() { - return new PeerStatusChange_impl_ari_3_0_0(); - }; - -public Playback playback() { - return new Playback_impl_ari_3_0_0(); - }; - -public RecordingStarted recordingStarted() { - return new RecordingStarted_impl_ari_3_0_0(); - }; - -public BridgeBlindTransfer bridgeBlindTransfer() { - return new BridgeBlindTransfer_impl_ari_3_0_0(); - }; - -public SetId setId() { - return new SetId_impl_ari_3_0_0(); - }; - -public Dialed dialed() { - return new Dialed_impl_ari_3_0_0(); - }; - -public Sound sound() { - return new Sound_impl_ari_3_0_0(); - }; - -public BridgeVideoSourceChanged bridgeVideoSourceChanged() { - return new BridgeVideoSourceChanged_impl_ari_3_0_0(); - }; - -public Peer peer() { - return new Peer_impl_ari_3_0_0(); - }; - -public ChannelEnteredBridge channelEnteredBridge() { - return new ChannelEnteredBridge_impl_ari_3_0_0(); - }; - -public PlaybackStarted playbackStarted() { - return new PlaybackStarted_impl_ari_3_0_0(); - }; - -public DialplanCEP dialplanCEP() { - return new DialplanCEP_impl_ari_3_0_0(); - }; - -public RecordingFailed recordingFailed() { - return new RecordingFailed_impl_ari_3_0_0(); - }; - -public ChannelLeftBridge channelLeftBridge() { - return new ChannelLeftBridge_impl_ari_3_0_0(); - }; - -public ChannelUserevent channelUserevent() { - return new ChannelUserevent_impl_ari_3_0_0(); - }; - -public PlaybackContinuing playbackContinuing() { - return new PlaybackContinuing_impl_ari_3_0_0(); - }; - -public EndpointStateChange endpointStateChange() { - return new EndpointStateChange_impl_ari_3_0_0(); - }; - -public ChannelStateChange channelStateChange() { - return new ChannelStateChange_impl_ari_3_0_0(); - }; - -public BridgeAttendedTransfer bridgeAttendedTransfer() { - return new BridgeAttendedTransfer_impl_ari_3_0_0(); - }; - -public Module module() { - return new Module_impl_ari_3_0_0(); - }; - -public BridgeCreated bridgeCreated() { - return new BridgeCreated_impl_ari_3_0_0(); - }; - -public ChannelDialplan channelDialplan() { - return new ChannelDialplan_impl_ari_3_0_0(); - }; - -public ChannelTalkingStarted channelTalkingStarted() { - return new ChannelTalkingStarted_impl_ari_3_0_0(); - }; - -public TextMessageReceived textMessageReceived() { - return new TextMessageReceived_impl_ari_3_0_0(); - }; - -public Dial dial() { - return new Dial_impl_ari_3_0_0(); - }; - -public StasisEnd stasisEnd() { - return new StasisEnd_impl_ari_3_0_0(); - }; - -public ChannelConnectedLine channelConnectedLine() { - return new ChannelConnectedLine_impl_ari_3_0_0(); - }; - -public BridgeDestroyed bridgeDestroyed() { - return new BridgeDestroyed_impl_ari_3_0_0(); - }; - -public ConfigTuple configTuple() { - return new ConfigTuple_impl_ari_3_0_0(); - }; - -public Message message() { - return new Message_impl_ari_3_0_0(); - }; - -public ChannelDestroyed channelDestroyed() { - return new ChannelDestroyed_impl_ari_3_0_0(); - }; - -public ContactInfo contactInfo() { - return new ContactInfo_impl_ari_3_0_0(); - }; - -public ChannelCreated channelCreated() { - return new ChannelCreated_impl_ari_3_0_0(); - }; - -public ChannelHold channelHold() { - return new ChannelHold_impl_ari_3_0_0(); - }; - -public ChannelDtmfReceived channelDtmfReceived() { - return new ChannelDtmfReceived_impl_ari_3_0_0(); - }; - -public ChannelVarset channelVarset() { - return new ChannelVarset_impl_ari_3_0_0(); - }; - -public SystemInfo systemInfo() { - return new SystemInfo_impl_ari_3_0_0(); - }; - -public ConfigInfo configInfo() { - return new ConfigInfo_impl_ari_3_0_0(); - }; - -public ChannelUnhold channelUnhold() { - return new ChannelUnhold_impl_ari_3_0_0(); - }; - -public StasisStart stasisStart() { - return new StasisStart_impl_ari_3_0_0(); - }; - -public Channel channel() { - return new Channel_impl_ari_3_0_0(); - }; - -public MissingParams missingParams() { - return new MissingParams_impl_ari_3_0_0(); - }; - -public Event event() { - return new Event_impl_ari_3_0_0(); - }; - -public LogChannel logChannel() { - return new LogChannel_impl_ari_3_0_0(); - }; - -public RecordingFinished recordingFinished() { - return new RecordingFinished_impl_ari_3_0_0(); - }; - -public ChannelTalkingFinished channelTalkingFinished() { - return new ChannelTalkingFinished_impl_ari_3_0_0(); - }; - -public BuildInfo buildInfo() { - return new BuildInfo_impl_ari_3_0_0(); - }; - -public FormatLangPair formatLangPair() { - return new FormatLangPair_impl_ari_3_0_0(); - }; - -public BridgeMerged bridgeMerged() { - return new BridgeMerged_impl_ari_3_0_0(); - }; - -public Application application() { - return new Application_impl_ari_3_0_0(); - }; - -public TextMessage textMessage() { - return new TextMessage_impl_ari_3_0_0(); - }; - -public ContactStatusChange contactStatusChange() { - return new ContactStatusChange_impl_ari_3_0_0(); - }; - -public DeviceState deviceState() { - return new DeviceState_impl_ari_3_0_0(); - }; - -public DeviceStateChanged deviceStateChanged() { - return new DeviceStateChanged_impl_ari_3_0_0(); - }; - -public ChannelHangupRequest channelHangupRequest() { - return new ChannelHangupRequest_impl_ari_3_0_0(); - }; - -public Endpoint endpoint() { - return new Endpoint_impl_ari_3_0_0(); - }; - -public AsteriskInfo asteriskInfo() { - return new AsteriskInfo_impl_ari_3_0_0(); - }; - -public StoredRecording storedRecording() { - return new StoredRecording_impl_ari_3_0_0(); - }; - -public PlaybackFinished playbackFinished() { - return new PlaybackFinished_impl_ari_3_0_0(); - }; - -public StatusInfo statusInfo() { - return new StatusInfo_impl_ari_3_0_0(); - }; - -public ApplicationReplaced applicationReplaced() { - return new ApplicationReplaced_impl_ari_3_0_0(); - }; - -public ChannelCallerId channelCallerId() { - return new ChannelCallerId_impl_ari_3_0_0(); - }; - -public Variable variable() { - return new Variable_impl_ari_3_0_0(); - }; - -public Bridge bridge() { - return new Bridge_impl_ari_3_0_0(); - }; - -public ARI.ClassFactory getClassFactory() { - return new ClassTranslator_impl_ari_3_0_0(); -}; - -}; diff --git a/classes/ch/loway/oss/ari4java/generated/ari_3_0_0/ClassTranslator_impl_ari_3_0_0.java b/classes/ch/loway/oss/ari4java/generated/ari_3_0_0/ClassTranslator_impl_ari_3_0_0.java deleted file mode 100644 index 8a825ffc..00000000 --- a/classes/ch/loway/oss/ari4java/generated/ari_3_0_0/ClassTranslator_impl_ari_3_0_0.java +++ /dev/null @@ -1,335 +0,0 @@ -package ch.loway.oss.ari4java.generated.ari_3_0_0; - -// ---------------------------------------------------- -// THIS CLASS WAS GENERATED AUTOMATICALLY -// PLEASE DO NOT EDIT -// Generated on: Tue Dec 19 09:55:50 CET 2017 -// ---------------------------------------------------- - -import ch.loway.oss.ari4java.ARI; -import ch.loway.oss.ari4java.generated.*; -import ch.loway.oss.ari4java.generated.ari_3_0_0.models.*; -import ch.loway.oss.ari4java.generated.ari_3_0_0.actions.*; - -/********************************************************** - * This is a class translator. - *********************************************************/ -public class ClassTranslator_impl_ari_3_0_0 implements ARI.ClassFactory { - - @Override - public Class getImplementationFor(Class interfaceClass) { - - if ( interfaceClass.equals(ActionApplications.class) ) { - return (ActionApplications_impl_ari_3_0_0.class); - } else - - if ( interfaceClass.equals(ActionAsterisk.class) ) { - return (ActionAsterisk_impl_ari_3_0_0.class); - } else - - if ( interfaceClass.equals(ActionBridges.class) ) { - return (ActionBridges_impl_ari_3_0_0.class); - } else - - if ( interfaceClass.equals(ActionChannels.class) ) { - return (ActionChannels_impl_ari_3_0_0.class); - } else - - if ( interfaceClass.equals(ActionDeviceStates.class) ) { - return (ActionDeviceStates_impl_ari_3_0_0.class); - } else - - if ( interfaceClass.equals(ActionEndpoints.class) ) { - return (ActionEndpoints_impl_ari_3_0_0.class); - } else - - if ( interfaceClass.equals(ActionEvents.class) ) { - return (ActionEvents_impl_ari_3_0_0.class); - } else - - if ( interfaceClass.equals(ActionPlaybacks.class) ) { - return (ActionPlaybacks_impl_ari_3_0_0.class); - } else - - if ( interfaceClass.equals(ActionRecordings.class) ) { - return (ActionRecordings_impl_ari_3_0_0.class); - } else - - if ( interfaceClass.equals(ActionSounds.class) ) { - return (ActionSounds_impl_ari_3_0_0.class); - } else - - if ( interfaceClass.equals(Application.class) ) { - return (Application_impl_ari_3_0_0.class); - } else - - if ( interfaceClass.equals(ApplicationReplaced.class) ) { - return (ApplicationReplaced_impl_ari_3_0_0.class); - } else - - if ( interfaceClass.equals(AsteriskInfo.class) ) { - return (AsteriskInfo_impl_ari_3_0_0.class); - } else - - if ( interfaceClass.equals(Bridge.class) ) { - return (Bridge_impl_ari_3_0_0.class); - } else - - if ( interfaceClass.equals(BridgeAttendedTransfer.class) ) { - return (BridgeAttendedTransfer_impl_ari_3_0_0.class); - } else - - if ( interfaceClass.equals(BridgeBlindTransfer.class) ) { - return (BridgeBlindTransfer_impl_ari_3_0_0.class); - } else - - if ( interfaceClass.equals(BridgeCreated.class) ) { - return (BridgeCreated_impl_ari_3_0_0.class); - } else - - if ( interfaceClass.equals(BridgeDestroyed.class) ) { - return (BridgeDestroyed_impl_ari_3_0_0.class); - } else - - if ( interfaceClass.equals(BridgeMerged.class) ) { - return (BridgeMerged_impl_ari_3_0_0.class); - } else - - if ( interfaceClass.equals(BridgeVideoSourceChanged.class) ) { - return (BridgeVideoSourceChanged_impl_ari_3_0_0.class); - } else - - if ( interfaceClass.equals(BuildInfo.class) ) { - return (BuildInfo_impl_ari_3_0_0.class); - } else - - if ( interfaceClass.equals(CallerID.class) ) { - return (CallerID_impl_ari_3_0_0.class); - } else - - if ( interfaceClass.equals(Channel.class) ) { - return (Channel_impl_ari_3_0_0.class); - } else - - if ( interfaceClass.equals(ChannelCallerId.class) ) { - return (ChannelCallerId_impl_ari_3_0_0.class); - } else - - if ( interfaceClass.equals(ChannelConnectedLine.class) ) { - return (ChannelConnectedLine_impl_ari_3_0_0.class); - } else - - if ( interfaceClass.equals(ChannelCreated.class) ) { - return (ChannelCreated_impl_ari_3_0_0.class); - } else - - if ( interfaceClass.equals(ChannelDestroyed.class) ) { - return (ChannelDestroyed_impl_ari_3_0_0.class); - } else - - if ( interfaceClass.equals(ChannelDialplan.class) ) { - return (ChannelDialplan_impl_ari_3_0_0.class); - } else - - if ( interfaceClass.equals(ChannelDtmfReceived.class) ) { - return (ChannelDtmfReceived_impl_ari_3_0_0.class); - } else - - if ( interfaceClass.equals(ChannelEnteredBridge.class) ) { - return (ChannelEnteredBridge_impl_ari_3_0_0.class); - } else - - if ( interfaceClass.equals(ChannelHangupRequest.class) ) { - return (ChannelHangupRequest_impl_ari_3_0_0.class); - } else - - if ( interfaceClass.equals(ChannelHold.class) ) { - return (ChannelHold_impl_ari_3_0_0.class); - } else - - if ( interfaceClass.equals(ChannelLeftBridge.class) ) { - return (ChannelLeftBridge_impl_ari_3_0_0.class); - } else - - if ( interfaceClass.equals(ChannelStateChange.class) ) { - return (ChannelStateChange_impl_ari_3_0_0.class); - } else - - if ( interfaceClass.equals(ChannelTalkingFinished.class) ) { - return (ChannelTalkingFinished_impl_ari_3_0_0.class); - } else - - if ( interfaceClass.equals(ChannelTalkingStarted.class) ) { - return (ChannelTalkingStarted_impl_ari_3_0_0.class); - } else - - if ( interfaceClass.equals(ChannelUnhold.class) ) { - return (ChannelUnhold_impl_ari_3_0_0.class); - } else - - if ( interfaceClass.equals(ChannelUserevent.class) ) { - return (ChannelUserevent_impl_ari_3_0_0.class); - } else - - if ( interfaceClass.equals(ChannelVarset.class) ) { - return (ChannelVarset_impl_ari_3_0_0.class); - } else - - if ( interfaceClass.equals(ConfigInfo.class) ) { - return (ConfigInfo_impl_ari_3_0_0.class); - } else - - if ( interfaceClass.equals(ConfigTuple.class) ) { - return (ConfigTuple_impl_ari_3_0_0.class); - } else - - if ( interfaceClass.equals(ContactInfo.class) ) { - return (ContactInfo_impl_ari_3_0_0.class); - } else - - if ( interfaceClass.equals(ContactStatusChange.class) ) { - return (ContactStatusChange_impl_ari_3_0_0.class); - } else - - if ( interfaceClass.equals(DeviceState.class) ) { - return (DeviceState_impl_ari_3_0_0.class); - } else - - if ( interfaceClass.equals(DeviceStateChanged.class) ) { - return (DeviceStateChanged_impl_ari_3_0_0.class); - } else - - if ( interfaceClass.equals(Dial.class) ) { - return (Dial_impl_ari_3_0_0.class); - } else - - if ( interfaceClass.equals(Dialed.class) ) { - return (Dialed_impl_ari_3_0_0.class); - } else - - if ( interfaceClass.equals(DialplanCEP.class) ) { - return (DialplanCEP_impl_ari_3_0_0.class); - } else - - if ( interfaceClass.equals(Endpoint.class) ) { - return (Endpoint_impl_ari_3_0_0.class); - } else - - if ( interfaceClass.equals(EndpointStateChange.class) ) { - return (EndpointStateChange_impl_ari_3_0_0.class); - } else - - if ( interfaceClass.equals(Event.class) ) { - return (Event_impl_ari_3_0_0.class); - } else - - if ( interfaceClass.equals(FormatLangPair.class) ) { - return (FormatLangPair_impl_ari_3_0_0.class); - } else - - if ( interfaceClass.equals(LiveRecording.class) ) { - return (LiveRecording_impl_ari_3_0_0.class); - } else - - if ( interfaceClass.equals(LogChannel.class) ) { - return (LogChannel_impl_ari_3_0_0.class); - } else - - if ( interfaceClass.equals(Message.class) ) { - return (Message_impl_ari_3_0_0.class); - } else - - if ( interfaceClass.equals(MissingParams.class) ) { - return (MissingParams_impl_ari_3_0_0.class); - } else - - if ( interfaceClass.equals(Module.class) ) { - return (Module_impl_ari_3_0_0.class); - } else - - if ( interfaceClass.equals(Peer.class) ) { - return (Peer_impl_ari_3_0_0.class); - } else - - if ( interfaceClass.equals(PeerStatusChange.class) ) { - return (PeerStatusChange_impl_ari_3_0_0.class); - } else - - if ( interfaceClass.equals(Playback.class) ) { - return (Playback_impl_ari_3_0_0.class); - } else - - if ( interfaceClass.equals(PlaybackContinuing.class) ) { - return (PlaybackContinuing_impl_ari_3_0_0.class); - } else - - if ( interfaceClass.equals(PlaybackFinished.class) ) { - return (PlaybackFinished_impl_ari_3_0_0.class); - } else - - if ( interfaceClass.equals(PlaybackStarted.class) ) { - return (PlaybackStarted_impl_ari_3_0_0.class); - } else - - if ( interfaceClass.equals(RecordingFailed.class) ) { - return (RecordingFailed_impl_ari_3_0_0.class); - } else - - if ( interfaceClass.equals(RecordingFinished.class) ) { - return (RecordingFinished_impl_ari_3_0_0.class); - } else - - if ( interfaceClass.equals(RecordingStarted.class) ) { - return (RecordingStarted_impl_ari_3_0_0.class); - } else - - if ( interfaceClass.equals(SetId.class) ) { - return (SetId_impl_ari_3_0_0.class); - } else - - if ( interfaceClass.equals(Sound.class) ) { - return (Sound_impl_ari_3_0_0.class); - } else - - if ( interfaceClass.equals(StasisEnd.class) ) { - return (StasisEnd_impl_ari_3_0_0.class); - } else - - if ( interfaceClass.equals(StasisStart.class) ) { - return (StasisStart_impl_ari_3_0_0.class); - } else - - if ( interfaceClass.equals(StatusInfo.class) ) { - return (StatusInfo_impl_ari_3_0_0.class); - } else - - if ( interfaceClass.equals(StoredRecording.class) ) { - return (StoredRecording_impl_ari_3_0_0.class); - } else - - if ( interfaceClass.equals(SystemInfo.class) ) { - return (SystemInfo_impl_ari_3_0_0.class); - } else - - if ( interfaceClass.equals(TextMessage.class) ) { - return (TextMessage_impl_ari_3_0_0.class); - } else - - if ( interfaceClass.equals(TextMessageReceived.class) ) { - return (TextMessageReceived_impl_ari_3_0_0.class); - } else - - if ( interfaceClass.equals(TextMessageVariable.class) ) { - return (TextMessageVariable_impl_ari_3_0_0.class); - } else - - if ( interfaceClass.equals(Variable.class) ) { - return (Variable_impl_ari_3_0_0.class); - } else - { - return null; - } - } -} - - diff --git a/classes/ch/loway/oss/ari4java/generated/ari_3_0_0/actions/ActionApplications_impl_ari_3_0_0.java b/classes/ch/loway/oss/ari4java/generated/ari_3_0_0/actions/ActionApplications_impl_ari_3_0_0.java deleted file mode 100644 index 738bc55c..00000000 --- a/classes/ch/loway/oss/ari4java/generated/ari_3_0_0/actions/ActionApplications_impl_ari_3_0_0.java +++ /dev/null @@ -1,140 +0,0 @@ -package ch.loway.oss.ari4java.generated.ari_3_0_0.actions; - -// ---------------------------------------------------- -// THIS CLASS WAS GENERATED AUTOMATICALLY -// PLEASE DO NOT EDIT -// Generated on: Tue Dec 19 09:55:49 CET 2017 -// ---------------------------------------------------- - -import ch.loway.oss.ari4java.generated.*; -import java.util.Date; -import java.util.List; -import java.util.Map; -import java.util.ArrayList; -import ch.loway.oss.ari4java.tools.BaseAriAction; -import ch.loway.oss.ari4java.tools.RestException; -import ch.loway.oss.ari4java.tools.AriCallback; -import ch.loway.oss.ari4java.tools.HttpParam; -import ch.loway.oss.ari4java.tools.HttpResponse; -import com.fasterxml.jackson.core.type.TypeReference; -import ch.loway.oss.ari4java.generated.ari_3_0_0.models.*; - -/********************************************************** - * - * Generated by: Apis - *********************************************************/ - - -public class ActionApplications_impl_ari_3_0_0 extends BaseAriAction implements ActionApplications { -/********************************************************** - * Stasis applications - * - * List all applications. - *********************************************************/ -private void buildList() { -reset(); -url = "/applications"; -method = "GET"; -} - -@Override -public List list() throws RestException { -buildList(); -String json = httpActionSync(); -return deserializeJsonAsAbstractList( json, - new TypeReference>() {} ); -} - -@Override -public void list(AriCallback> callback) { -buildList(); -httpActionAsync(callback, new TypeReference>() {}); -} - -/********************************************************** - * Stasis application - * - * Get details of an application. - *********************************************************/ -private void buildGet(String applicationName) { -reset(); -url = "/applications/" + applicationName + ""; -method = "GET"; -lE.add( HttpResponse.build( 404, "Application does not exist.") ); -} - -@Override -public Application get(String applicationName) throws RestException { -buildGet(applicationName); -String json = httpActionSync(); -return deserializeJson( json, Application_impl_ari_3_0_0.class ); -} - -@Override -public void get(String applicationName, AriCallback callback) { -buildGet(applicationName); -httpActionAsync(callback, Application_impl_ari_3_0_0.class); -} - -/********************************************************** - * Stasis application - * - * Subscribe an application to a event source. - * Returns the state of the application after the subscriptions have changed - *********************************************************/ -private void buildSubscribe(String applicationName, String eventSource) { -reset(); -url = "/applications/" + applicationName + "/subscription"; -method = "POST"; -lParamQuery.add( HttpParam.build( "eventSource", eventSource) ); -lE.add( HttpResponse.build( 400, "Missing parameter.") ); -lE.add( HttpResponse.build( 404, "Application does not exist.") ); -lE.add( HttpResponse.build( 422, "Event source does not exist.") ); -} - -@Override -public Application subscribe(String applicationName, String eventSource) throws RestException { -buildSubscribe(applicationName, eventSource); -String json = httpActionSync(); -return deserializeJson( json, Application_impl_ari_3_0_0.class ); -} - -@Override -public void subscribe(String applicationName, String eventSource, AriCallback callback) { -buildSubscribe(applicationName, eventSource); -httpActionAsync(callback, Application_impl_ari_3_0_0.class); -} - -/********************************************************** - * Stasis application - * - * Unsubscribe an application from an event source. - * Returns the state of the application after the subscriptions have changed - *********************************************************/ -private void buildUnsubscribe(String applicationName, String eventSource) { -reset(); -url = "/applications/" + applicationName + "/subscription"; -method = "DELETE"; -lParamQuery.add( HttpParam.build( "eventSource", eventSource) ); -lE.add( HttpResponse.build( 400, "Missing parameter; event source scheme not recognized.") ); -lE.add( HttpResponse.build( 404, "Application does not exist.") ); -lE.add( HttpResponse.build( 409, "Application not subscribed to event source.") ); -lE.add( HttpResponse.build( 422, "Event source does not exist.") ); -} - -@Override -public Application unsubscribe(String applicationName, String eventSource) throws RestException { -buildUnsubscribe(applicationName, eventSource); -String json = httpActionSync(); -return deserializeJson( json, Application_impl_ari_3_0_0.class ); -} - -@Override -public void unsubscribe(String applicationName, String eventSource, AriCallback callback) { -buildUnsubscribe(applicationName, eventSource); -httpActionAsync(callback, Application_impl_ari_3_0_0.class); -} - -/** No missing signatures from interface */ -}; - diff --git a/classes/ch/loway/oss/ari4java/generated/ari_3_0_0/actions/ActionAsterisk_impl_ari_3_0_0.java b/classes/ch/loway/oss/ari4java/generated/ari_3_0_0/actions/ActionAsterisk_impl_ari_3_0_0.java deleted file mode 100644 index 0d7cbe4a..00000000 --- a/classes/ch/loway/oss/ari4java/generated/ari_3_0_0/actions/ActionAsterisk_impl_ari_3_0_0.java +++ /dev/null @@ -1,412 +0,0 @@ -package ch.loway.oss.ari4java.generated.ari_3_0_0.actions; - -// ---------------------------------------------------- -// THIS CLASS WAS GENERATED AUTOMATICALLY -// PLEASE DO NOT EDIT -// Generated on: Tue Dec 19 09:55:49 CET 2017 -// ---------------------------------------------------- - -import ch.loway.oss.ari4java.generated.*; -import java.util.Date; -import java.util.List; -import java.util.Map; -import java.util.ArrayList; -import ch.loway.oss.ari4java.tools.BaseAriAction; -import ch.loway.oss.ari4java.tools.RestException; -import ch.loway.oss.ari4java.tools.AriCallback; -import ch.loway.oss.ari4java.tools.HttpParam; -import ch.loway.oss.ari4java.tools.HttpResponse; -import com.fasterxml.jackson.core.type.TypeReference; -import ch.loway.oss.ari4java.generated.ari_3_0_0.models.*; - -/********************************************************** - * - * Generated by: Apis - *********************************************************/ - - -public class ActionAsterisk_impl_ari_3_0_0 extends BaseAriAction implements ActionAsterisk { -/********************************************************** - * Asterisk dynamic configuration - * - * Retrieve a dynamic configuration object. - *********************************************************/ -private void buildGetObject(String configClass, String objectType, String id) { -reset(); -url = "/asterisk/config/dynamic/" + configClass + "/" + objectType + "/" + id + ""; -method = "GET"; -lE.add( HttpResponse.build( 404, "{configClass|objectType|id} not found") ); -} - -@Override -public List getObject(String configClass, String objectType, String id) throws RestException { -buildGetObject(configClass, objectType, id); -String json = httpActionSync(); -return deserializeJsonAsAbstractList( json, - new TypeReference>() {} ); -} - -@Override -public void getObject(String configClass, String objectType, String id, AriCallback> callback) { -buildGetObject(configClass, objectType, id); -httpActionAsync(callback, new TypeReference>() {}); -} - -/********************************************************** - * Asterisk dynamic configuration - * - * Create or update a dynamic configuration object. - *********************************************************/ -private void buildUpdateObject(String configClass, String objectType, String id, Map fields) { -reset(); -url = "/asterisk/config/dynamic/" + configClass + "/" + objectType + "/" + id + ""; -method = "PUT"; -lParamBody.addAll( HttpParam.build( "fields", fields) ); -lE.add( HttpResponse.build( 400, "Bad request body") ); -lE.add( HttpResponse.build( 403, "Could not create or update object") ); -lE.add( HttpResponse.build( 404, "{configClass|objectType} not found") ); -} - -@Override -public List updateObject(String configClass, String objectType, String id, Map fields) throws RestException { -buildUpdateObject(configClass, objectType, id, fields); -String json = httpActionSync(); -return deserializeJsonAsAbstractList( json, - new TypeReference>() {} ); -} - -@Override -public void updateObject(String configClass, String objectType, String id, Map fields, AriCallback> callback) { -buildUpdateObject(configClass, objectType, id, fields); -httpActionAsync(callback, new TypeReference>() {}); -} - -/********************************************************** - * Asterisk dynamic configuration - * - * Delete a dynamic configuration object. - *********************************************************/ -private void buildDeleteObject(String configClass, String objectType, String id) { -reset(); -url = "/asterisk/config/dynamic/" + configClass + "/" + objectType + "/" + id + ""; -method = "DELETE"; -lE.add( HttpResponse.build( 403, "Could not delete object") ); -lE.add( HttpResponse.build( 404, "{configClass|objectType|id} not found") ); -} - -@Override -public void deleteObject(String configClass, String objectType, String id) throws RestException { -buildDeleteObject(configClass, objectType, id); -String json = httpActionSync(); -} - -@Override -public void deleteObject(String configClass, String objectType, String id, AriCallback callback) { -buildDeleteObject(configClass, objectType, id); -httpActionAsync(callback); -} - -/********************************************************** - * Asterisk system information (similar to core show settings) - * - * Gets Asterisk system information. - *********************************************************/ -private void buildGetInfo(String only) { -reset(); -url = "/asterisk/info"; -method = "GET"; -lParamQuery.add( HttpParam.build( "only", only) ); -} - -@Override -public AsteriskInfo getInfo(String only) throws RestException { -buildGetInfo(only); -String json = httpActionSync(); -return deserializeJson( json, AsteriskInfo_impl_ari_3_0_0.class ); -} - -@Override -public void getInfo(String only, AriCallback callback) { -buildGetInfo(only); -httpActionAsync(callback, AsteriskInfo_impl_ari_3_0_0.class); -} - -/********************************************************** - * Asterisk log channels - * - * Gets Asterisk log channel information. - *********************************************************/ -private void buildListLogChannels() { -reset(); -url = "/asterisk/logging"; -method = "GET"; -} - -@Override -public List listLogChannels() throws RestException { -buildListLogChannels(); -String json = httpActionSync(); -return deserializeJsonAsAbstractList( json, - new TypeReference>() {} ); -} - -@Override -public void listLogChannels(AriCallback> callback) { -buildListLogChannels(); -httpActionAsync(callback, new TypeReference>() {}); -} - -/********************************************************** - * Asterisk log channel - * - * Adds a log channel. - *********************************************************/ -private void buildAddLog(String logChannelName, String configuration) { -reset(); -url = "/asterisk/logging/" + logChannelName + ""; -method = "POST"; -lParamQuery.add( HttpParam.build( "configuration", configuration) ); -lE.add( HttpResponse.build( 400, "Bad request body") ); -lE.add( HttpResponse.build( 409, "Log channel could not be created.") ); -} - -@Override -public void addLog(String logChannelName, String configuration) throws RestException { -buildAddLog(logChannelName, configuration); -String json = httpActionSync(); -} - -@Override -public void addLog(String logChannelName, String configuration, AriCallback callback) { -buildAddLog(logChannelName, configuration); -httpActionAsync(callback); -} - -/********************************************************** - * Asterisk log channel - * - * Deletes a log channel. - *********************************************************/ -private void buildDeleteLog(String logChannelName) { -reset(); -url = "/asterisk/logging/" + logChannelName + ""; -method = "DELETE"; -lE.add( HttpResponse.build( 404, "Log channel does not exist.") ); -} - -@Override -public void deleteLog(String logChannelName) throws RestException { -buildDeleteLog(logChannelName); -String json = httpActionSync(); -} - -@Override -public void deleteLog(String logChannelName, AriCallback callback) { -buildDeleteLog(logChannelName); -httpActionAsync(callback); -} - -/********************************************************** - * Asterisk log channel - * - * Rotates a log channel. - *********************************************************/ -private void buildRotateLog(String logChannelName) { -reset(); -url = "/asterisk/logging/" + logChannelName + "/rotate"; -method = "PUT"; -lE.add( HttpResponse.build( 404, "Log channel does not exist.") ); -} - -@Override -public void rotateLog(String logChannelName) throws RestException { -buildRotateLog(logChannelName); -String json = httpActionSync(); -} - -@Override -public void rotateLog(String logChannelName, AriCallback callback) { -buildRotateLog(logChannelName); -httpActionAsync(callback); -} - -/********************************************************** - * Asterisk modules - * - * List Asterisk modules. - *********************************************************/ -private void buildListModules() { -reset(); -url = "/asterisk/modules"; -method = "GET"; -} - -@Override -public List listModules() throws RestException { -buildListModules(); -String json = httpActionSync(); -return deserializeJsonAsAbstractList( json, - new TypeReference>() {} ); -} - -@Override -public void listModules(AriCallback> callback) { -buildListModules(); -httpActionAsync(callback, new TypeReference>() {}); -} - -/********************************************************** - * Asterisk module - * - * Get Asterisk module information. - *********************************************************/ -private void buildGetModule(String moduleName) { -reset(); -url = "/asterisk/modules/" + moduleName + ""; -method = "GET"; -lE.add( HttpResponse.build( 404, "Module could not be found in running modules.") ); -lE.add( HttpResponse.build( 409, "Module information could not be retrieved.") ); -} - -@Override -public Module getModule(String moduleName) throws RestException { -buildGetModule(moduleName); -String json = httpActionSync(); -return deserializeJson( json, Module_impl_ari_3_0_0.class ); -} - -@Override -public void getModule(String moduleName, AriCallback callback) { -buildGetModule(moduleName); -httpActionAsync(callback, Module_impl_ari_3_0_0.class); -} - -/********************************************************** - * Asterisk module - * - * Load an Asterisk module. - *********************************************************/ -private void buildLoadModule(String moduleName) { -reset(); -url = "/asterisk/modules/" + moduleName + ""; -method = "POST"; -lE.add( HttpResponse.build( 409, "Module could not be loaded.") ); -} - -@Override -public void loadModule(String moduleName) throws RestException { -buildLoadModule(moduleName); -String json = httpActionSync(); -} - -@Override -public void loadModule(String moduleName, AriCallback callback) { -buildLoadModule(moduleName); -httpActionAsync(callback); -} - -/********************************************************** - * Asterisk module - * - * Unload an Asterisk module. - *********************************************************/ -private void buildUnloadModule(String moduleName) { -reset(); -url = "/asterisk/modules/" + moduleName + ""; -method = "DELETE"; -lE.add( HttpResponse.build( 404, "Module not found in running modules.") ); -lE.add( HttpResponse.build( 409, "Module could not be unloaded.") ); -} - -@Override -public void unloadModule(String moduleName) throws RestException { -buildUnloadModule(moduleName); -String json = httpActionSync(); -} - -@Override -public void unloadModule(String moduleName, AriCallback callback) { -buildUnloadModule(moduleName); -httpActionAsync(callback); -} - -/********************************************************** - * Asterisk module - * - * Reload an Asterisk module. - *********************************************************/ -private void buildReloadModule(String moduleName) { -reset(); -url = "/asterisk/modules/" + moduleName + ""; -method = "PUT"; -lE.add( HttpResponse.build( 404, "Module not found in running modules.") ); -lE.add( HttpResponse.build( 409, "Module could not be reloaded.") ); -} - -@Override -public void reloadModule(String moduleName) throws RestException { -buildReloadModule(moduleName); -String json = httpActionSync(); -} - -@Override -public void reloadModule(String moduleName, AriCallback callback) { -buildReloadModule(moduleName); -httpActionAsync(callback); -} - -/********************************************************** - * Global variables - * - * Get the value of a global variable. - *********************************************************/ -private void buildGetGlobalVar(String variable) { -reset(); -url = "/asterisk/variable"; -method = "GET"; -lParamQuery.add( HttpParam.build( "variable", variable) ); -lE.add( HttpResponse.build( 400, "Missing variable parameter.") ); -} - -@Override -public Variable getGlobalVar(String variable) throws RestException { -buildGetGlobalVar(variable); -String json = httpActionSync(); -return deserializeJson( json, Variable_impl_ari_3_0_0.class ); -} - -@Override -public void getGlobalVar(String variable, AriCallback callback) { -buildGetGlobalVar(variable); -httpActionAsync(callback, Variable_impl_ari_3_0_0.class); -} - -/********************************************************** - * Global variables - * - * Set the value of a global variable. - *********************************************************/ -private void buildSetGlobalVar(String variable, String value) { -reset(); -url = "/asterisk/variable"; -method = "POST"; -lParamQuery.add( HttpParam.build( "variable", variable) ); -lParamQuery.add( HttpParam.build( "value", value) ); -lE.add( HttpResponse.build( 400, "Missing variable parameter.") ); -} - -@Override -public void setGlobalVar(String variable, String value) throws RestException { -buildSetGlobalVar(variable, value); -String json = httpActionSync(); -} - -@Override -public void setGlobalVar(String variable, String value, AriCallback callback) { -buildSetGlobalVar(variable, value); -httpActionAsync(callback); -} - -/** No missing signatures from interface */ -}; - diff --git a/classes/ch/loway/oss/ari4java/generated/ari_3_0_0/actions/ActionBridges_impl_ari_3_0_0.java b/classes/ch/loway/oss/ari4java/generated/ari_3_0_0/actions/ActionBridges_impl_ari_3_0_0.java deleted file mode 100644 index 731ff788..00000000 --- a/classes/ch/loway/oss/ari4java/generated/ari_3_0_0/actions/ActionBridges_impl_ari_3_0_0.java +++ /dev/null @@ -1,494 +0,0 @@ -package ch.loway.oss.ari4java.generated.ari_3_0_0.actions; - -// ---------------------------------------------------- -// THIS CLASS WAS GENERATED AUTOMATICALLY -// PLEASE DO NOT EDIT -// Generated on: Tue Dec 19 09:55:49 CET 2017 -// ---------------------------------------------------- - -import ch.loway.oss.ari4java.generated.*; -import java.util.Date; -import java.util.List; -import java.util.Map; -import java.util.ArrayList; -import ch.loway.oss.ari4java.tools.BaseAriAction; -import ch.loway.oss.ari4java.tools.RestException; -import ch.loway.oss.ari4java.tools.AriCallback; -import ch.loway.oss.ari4java.tools.HttpParam; -import ch.loway.oss.ari4java.tools.HttpResponse; -import com.fasterxml.jackson.core.type.TypeReference; -import ch.loway.oss.ari4java.generated.ari_3_0_0.models.*; - -/********************************************************** - * - * Generated by: Apis - *********************************************************/ - - -public class ActionBridges_impl_ari_3_0_0 extends BaseAriAction implements ActionBridges { -/********************************************************** - * Active bridges - * - * List all active bridges in Asterisk. - *********************************************************/ -private void buildList() { -reset(); -url = "/bridges"; -method = "GET"; -} - -@Override -public List list() throws RestException { -buildList(); -String json = httpActionSync(); -return deserializeJsonAsAbstractList( json, - new TypeReference>() {} ); -} - -@Override -public void list(AriCallback> callback) { -buildList(); -httpActionAsync(callback, new TypeReference>() {}); -} - -/********************************************************** - * Active bridges - * - * Create a new bridge. - * This bridge persists until it has been shut down, or Asterisk has been shut down. - *********************************************************/ -private void buildCreate(String type, String bridgeId, String name) { -reset(); -url = "/bridges"; -method = "POST"; -lParamQuery.add( HttpParam.build( "type", type) ); -lParamQuery.add( HttpParam.build( "bridgeId", bridgeId) ); -lParamQuery.add( HttpParam.build( "name", name) ); -} - -@Override -public Bridge create(String type, String bridgeId, String name) throws RestException { -buildCreate(type, bridgeId, name); -String json = httpActionSync(); -return deserializeJson( json, Bridge_impl_ari_3_0_0.class ); -} - -@Override -public void create(String type, String bridgeId, String name, AriCallback callback) { -buildCreate(type, bridgeId, name); -httpActionAsync(callback, Bridge_impl_ari_3_0_0.class); -} - -/********************************************************** - * Individual bridge - * - * Create a new bridge or updates an existing one. - * This bridge persists until it has been shut down, or Asterisk has been shut down. - *********************************************************/ -private void buildCreateWithId(String type, String bridgeId, String name) { -reset(); -url = "/bridges/" + bridgeId + ""; -method = "POST"; -lParamQuery.add( HttpParam.build( "type", type) ); -lParamQuery.add( HttpParam.build( "name", name) ); -} - -@Override -public Bridge createWithId(String type, String bridgeId, String name) throws RestException { -buildCreateWithId(type, bridgeId, name); -String json = httpActionSync(); -return deserializeJson( json, Bridge_impl_ari_3_0_0.class ); -} - -@Override -public void createWithId(String type, String bridgeId, String name, AriCallback callback) { -buildCreateWithId(type, bridgeId, name); -httpActionAsync(callback, Bridge_impl_ari_3_0_0.class); -} - -/********************************************************** - * Individual bridge - * - * Get bridge details. - *********************************************************/ -private void buildGet(String bridgeId) { -reset(); -url = "/bridges/" + bridgeId + ""; -method = "GET"; -lE.add( HttpResponse.build( 404, "Bridge not found") ); -} - -@Override -public Bridge get(String bridgeId) throws RestException { -buildGet(bridgeId); -String json = httpActionSync(); -return deserializeJson( json, Bridge_impl_ari_3_0_0.class ); -} - -@Override -public void get(String bridgeId, AriCallback callback) { -buildGet(bridgeId); -httpActionAsync(callback, Bridge_impl_ari_3_0_0.class); -} - -/********************************************************** - * Individual bridge - * - * Shut down a bridge. - * If any channels are in this bridge, they will be removed and resume whatever they were doing beforehand. - *********************************************************/ -private void buildDestroy(String bridgeId) { -reset(); -url = "/bridges/" + bridgeId + ""; -method = "DELETE"; -lE.add( HttpResponse.build( 404, "Bridge not found") ); -} - -@Override -public void destroy(String bridgeId) throws RestException { -buildDestroy(bridgeId); -String json = httpActionSync(); -} - -@Override -public void destroy(String bridgeId, AriCallback callback) { -buildDestroy(bridgeId); -httpActionAsync(callback); -} - -/********************************************************** - * Add a channel to a bridge - * - * Add a channel to a bridge. - *********************************************************/ -private void buildAddChannel(String bridgeId, String channel, String role) { -reset(); -url = "/bridges/" + bridgeId + "/addChannel"; -method = "POST"; -lParamQuery.add( HttpParam.build( "channel", channel) ); -lParamQuery.add( HttpParam.build( "role", role) ); -lE.add( HttpResponse.build( 400, "Channel not found") ); -lE.add( HttpResponse.build( 404, "Bridge not found") ); -lE.add( HttpResponse.build( 409, "Bridge not in Stasis application; Channel currently recording") ); -lE.add( HttpResponse.build( 422, "Channel not in Stasis application") ); -} - -@Override -public void addChannel(String bridgeId, String channel, String role) throws RestException { -buildAddChannel(bridgeId, channel, role); -String json = httpActionSync(); -} - -@Override -public void addChannel(String bridgeId, String channel, String role, AriCallback callback) { -buildAddChannel(bridgeId, channel, role); -httpActionAsync(callback); -} - -/********************************************************** - * Play music on hold to a bridge - * - * Play music on hold to a bridge or change the MOH class that is playing. - *********************************************************/ -private void buildStartMoh(String bridgeId, String mohClass) { -reset(); -url = "/bridges/" + bridgeId + "/moh"; -method = "POST"; -lParamQuery.add( HttpParam.build( "mohClass", mohClass) ); -lE.add( HttpResponse.build( 404, "Bridge not found") ); -lE.add( HttpResponse.build( 409, "Bridge not in Stasis application") ); -} - -@Override -public void startMoh(String bridgeId, String mohClass) throws RestException { -buildStartMoh(bridgeId, mohClass); -String json = httpActionSync(); -} - -@Override -public void startMoh(String bridgeId, String mohClass, AriCallback callback) { -buildStartMoh(bridgeId, mohClass); -httpActionAsync(callback); -} - -/********************************************************** - * Play music on hold to a bridge - * - * Stop playing music on hold to a bridge. - * This will only stop music on hold being played via POST bridges/{bridgeId}/moh. - *********************************************************/ -private void buildStopMoh(String bridgeId) { -reset(); -url = "/bridges/" + bridgeId + "/moh"; -method = "DELETE"; -lE.add( HttpResponse.build( 404, "Bridge not found") ); -lE.add( HttpResponse.build( 409, "Bridge not in Stasis application") ); -} - -@Override -public void stopMoh(String bridgeId) throws RestException { -buildStopMoh(bridgeId); -String json = httpActionSync(); -} - -@Override -public void stopMoh(String bridgeId, AriCallback callback) { -buildStopMoh(bridgeId); -httpActionAsync(callback); -} - -/********************************************************** - * Play media to the participants of a bridge - * - * Start playback of media on a bridge. - * The media URI may be any of a number of URI's. Currently sound:, recording:, number:, digits:, characters:, and tone: URI's are supported. This operation creates a playback resource that can be used to control the playback of media (pause, rewind, fast forward, etc.) - *********************************************************/ -private void buildPlay(String bridgeId, String media, String lang, int offsetms, int skipms, String playbackId) { -reset(); -url = "/bridges/" + bridgeId + "/play"; -method = "POST"; -lParamQuery.add( HttpParam.build( "media", media) ); -lParamQuery.add( HttpParam.build( "lang", lang) ); -lParamQuery.add( HttpParam.build( "offsetms", offsetms) ); -lParamQuery.add( HttpParam.build( "skipms", skipms) ); -lParamQuery.add( HttpParam.build( "playbackId", playbackId) ); -lE.add( HttpResponse.build( 404, "Bridge not found") ); -lE.add( HttpResponse.build( 409, "Bridge not in a Stasis application") ); -} - -@Override -public Playback play(String bridgeId, String media, String lang, int offsetms, int skipms, String playbackId) throws RestException { -buildPlay(bridgeId, media, lang, offsetms, skipms, playbackId); -String json = httpActionSync(); -return deserializeJson( json, Playback_impl_ari_3_0_0.class ); -} - -@Override -public void play(String bridgeId, String media, String lang, int offsetms, int skipms, String playbackId, AriCallback callback) { -buildPlay(bridgeId, media, lang, offsetms, skipms, playbackId); -httpActionAsync(callback, Playback_impl_ari_3_0_0.class); -} - -/********************************************************** - * Play media to a bridge - * - * Start playback of media on a bridge. - * The media URI may be any of a number of URI's. Currently sound:, recording:, number:, digits:, characters:, and tone: URI's are supported. This operation creates a playback resource that can be used to control the playback of media (pause, rewind, fast forward, etc.) - *********************************************************/ -private void buildPlayWithId(String bridgeId, String playbackId, String media, String lang, int offsetms, int skipms) { -reset(); -url = "/bridges/" + bridgeId + "/play/" + playbackId + ""; -method = "POST"; -lParamQuery.add( HttpParam.build( "media", media) ); -lParamQuery.add( HttpParam.build( "lang", lang) ); -lParamQuery.add( HttpParam.build( "offsetms", offsetms) ); -lParamQuery.add( HttpParam.build( "skipms", skipms) ); -lE.add( HttpResponse.build( 404, "Bridge not found") ); -lE.add( HttpResponse.build( 409, "Bridge not in a Stasis application") ); -} - -@Override -public Playback playWithId(String bridgeId, String playbackId, String media, String lang, int offsetms, int skipms) throws RestException { -buildPlayWithId(bridgeId, playbackId, media, lang, offsetms, skipms); -String json = httpActionSync(); -return deserializeJson( json, Playback_impl_ari_3_0_0.class ); -} - -@Override -public void playWithId(String bridgeId, String playbackId, String media, String lang, int offsetms, int skipms, AriCallback callback) { -buildPlayWithId(bridgeId, playbackId, media, lang, offsetms, skipms); -httpActionAsync(callback, Playback_impl_ari_3_0_0.class); -} - -/********************************************************** - * Record audio on a bridge - * - * Start a recording. - * This records the mixed audio from all channels participating in this bridge. - *********************************************************/ -private void buildRecord(String bridgeId, String name, String format, int maxDurationSeconds, int maxSilenceSeconds, String ifExists, boolean beep, String terminateOn) { -reset(); -url = "/bridges/" + bridgeId + "/record"; -method = "POST"; -lParamQuery.add( HttpParam.build( "name", name) ); -lParamQuery.add( HttpParam.build( "format", format) ); -lParamQuery.add( HttpParam.build( "maxDurationSeconds", maxDurationSeconds) ); -lParamQuery.add( HttpParam.build( "maxSilenceSeconds", maxSilenceSeconds) ); -lParamQuery.add( HttpParam.build( "ifExists", ifExists) ); -lParamQuery.add( HttpParam.build( "beep", beep) ); -lParamQuery.add( HttpParam.build( "terminateOn", terminateOn) ); -lE.add( HttpResponse.build( 400, "Invalid parameters") ); -lE.add( HttpResponse.build( 404, "Bridge not found") ); -lE.add( HttpResponse.build( 409, "Bridge is not in a Stasis application; A recording with the same name already exists on the system and can not be overwritten because it is in progress or ifExists=fail") ); -lE.add( HttpResponse.build( 422, "The format specified is unknown on this system") ); -} - -@Override -public LiveRecording record(String bridgeId, String name, String format, int maxDurationSeconds, int maxSilenceSeconds, String ifExists, boolean beep, String terminateOn) throws RestException { -buildRecord(bridgeId, name, format, maxDurationSeconds, maxSilenceSeconds, ifExists, beep, terminateOn); -String json = httpActionSync(); -return deserializeJson( json, LiveRecording_impl_ari_3_0_0.class ); -} - -@Override -public void record(String bridgeId, String name, String format, int maxDurationSeconds, int maxSilenceSeconds, String ifExists, boolean beep, String terminateOn, AriCallback callback) { -buildRecord(bridgeId, name, format, maxDurationSeconds, maxSilenceSeconds, ifExists, beep, terminateOn); -httpActionAsync(callback, LiveRecording_impl_ari_3_0_0.class); -} - -/********************************************************** - * Remove a channel from a bridge - * - * Remove a channel from a bridge. - *********************************************************/ -private void buildRemoveChannel(String bridgeId, String channel) { -reset(); -url = "/bridges/" + bridgeId + "/removeChannel"; -method = "POST"; -lParamQuery.add( HttpParam.build( "channel", channel) ); -lE.add( HttpResponse.build( 400, "Channel not found") ); -lE.add( HttpResponse.build( 404, "Bridge not found") ); -lE.add( HttpResponse.build( 409, "Bridge not in Stasis application") ); -lE.add( HttpResponse.build( 422, "Channel not in this bridge") ); -} - -@Override -public void removeChannel(String bridgeId, String channel) throws RestException { -buildRemoveChannel(bridgeId, channel); -String json = httpActionSync(); -} - -@Override -public void removeChannel(String bridgeId, String channel, AriCallback callback) { -buildRemoveChannel(bridgeId, channel); -httpActionAsync(callback); -} - -/********************************************************** - * Removes any explicit video source - * - * Removes any explicit video source in a multi-party mixing bridge. This operation has no effect on bridges with two or fewer participants. When no explicit video source is set, talk detection will be used to determine the active video stream. - *********************************************************/ -private void buildClearVideoSource(String bridgeId) { -reset(); -url = "/bridges/" + bridgeId + "/videoSource"; -method = "DELETE"; -lE.add( HttpResponse.build( 404, "Bridge not found") ); -} - -@Override -public void clearVideoSource(String bridgeId) throws RestException { -buildClearVideoSource(bridgeId); -String json = httpActionSync(); -} - -@Override -public void clearVideoSource(String bridgeId, AriCallback callback) { -buildClearVideoSource(bridgeId); -httpActionAsync(callback); -} - -/********************************************************** - * Set a channel as the video source in a multi-party bridge - * - * Set a channel as the video source in a multi-party mixing bridge. This operation has no effect on bridges with two or fewer participants. - *********************************************************/ -private void buildSetVideoSource(String bridgeId, String channelId) { -reset(); -url = "/bridges/" + bridgeId + "/videoSource/" + channelId + ""; -method = "POST"; -lE.add( HttpResponse.build( 404, "Bridge or Channel not found") ); -lE.add( HttpResponse.build( 409, "Channel not in Stasis application") ); -lE.add( HttpResponse.build( 422, "Channel not in this Bridge") ); -} - -@Override -public void setVideoSource(String bridgeId, String channelId) throws RestException { -buildSetVideoSource(bridgeId, channelId); -String json = httpActionSync(); -} - -@Override -public void setVideoSource(String bridgeId, String channelId, AriCallback callback) { -buildSetVideoSource(bridgeId, channelId); -httpActionAsync(callback); -} - -/********************************************************** - * Start playback of media on a bridge. - * The media URI may be any of a number of URI's. Currently sound: and recording: URI's are supported. This operation creates a playback resource that can be used to control the playback of media (pause, rewind, fast forward, etc.) - * - * @since ari_0_0_1 - *********************************************************/ -public Playback play(String bridgeId, String media, String lang, int offsetms, int skipms) throws RestException{ - throw new UnsupportedOperationException("Method availble from ..."); -}; - -/********************************************************** - * - * - * @since ari_0_0_1 - *********************************************************/ -public void play(String bridgeId, String media, String lang, int offsetms, int skipms, AriCallback callback){ - throw new UnsupportedOperationException("Method availble from ..."); -}; - -/********************************************************** - * Create a new bridge. - * This bridge persists until it has been shut down, or Asterisk has been shut down. - * - * @since ari_1_0_0 - *********************************************************/ -public Bridge create(String type, String name) throws RestException{ - throw new UnsupportedOperationException("Method availble from ..."); -}; - -/********************************************************** - * - * - * @since ari_1_5_0 - *********************************************************/ -public void create_or_update_with_id(String type, String bridgeId, String name, AriCallback callback){ - throw new UnsupportedOperationException("Method availble from ..."); -}; - -/********************************************************** - * Create a new bridge or updates an existing one. - * This bridge persists until it has been shut down, or Asterisk has been shut down. - * - * @since ari_1_5_0 - *********************************************************/ -public Bridge create_or_update_with_id(String type, String bridgeId, String name) throws RestException{ - throw new UnsupportedOperationException("Method availble from ..."); -}; - -/********************************************************** - * Create a new bridge. - * This bridge persists until it has been shut down, or Asterisk has been shut down. - * - * @since ari_0_0_1 - *********************************************************/ -public Bridge create(String type) throws RestException{ - throw new UnsupportedOperationException("Method availble from ..."); -}; - -/********************************************************** - * - * - * @since ari_0_0_1 - *********************************************************/ -public void create(String type, AriCallback callback){ - throw new UnsupportedOperationException("Method availble from ..."); -}; - -/********************************************************** - * - * - * @since ari_1_0_0 - *********************************************************/ -public void create(String type, String name, AriCallback callback){ - throw new UnsupportedOperationException("Method availble from ..."); -}; - -}; - diff --git a/classes/ch/loway/oss/ari4java/generated/ari_3_0_0/actions/ActionChannels_impl_ari_3_0_0.java b/classes/ch/loway/oss/ari4java/generated/ari_3_0_0/actions/ActionChannels_impl_ari_3_0_0.java deleted file mode 100644 index 730fa314..00000000 --- a/classes/ch/loway/oss/ari4java/generated/ari_3_0_0/actions/ActionChannels_impl_ari_3_0_0.java +++ /dev/null @@ -1,1002 +0,0 @@ -package ch.loway.oss.ari4java.generated.ari_3_0_0.actions; - -// ---------------------------------------------------- -// THIS CLASS WAS GENERATED AUTOMATICALLY -// PLEASE DO NOT EDIT -// Generated on: Tue Dec 19 09:55:49 CET 2017 -// ---------------------------------------------------- - -import ch.loway.oss.ari4java.generated.*; -import java.util.Date; -import java.util.List; -import java.util.Map; -import java.util.ArrayList; -import ch.loway.oss.ari4java.tools.BaseAriAction; -import ch.loway.oss.ari4java.tools.RestException; -import ch.loway.oss.ari4java.tools.AriCallback; -import ch.loway.oss.ari4java.tools.HttpParam; -import ch.loway.oss.ari4java.tools.HttpResponse; -import com.fasterxml.jackson.core.type.TypeReference; -import ch.loway.oss.ari4java.generated.ari_3_0_0.models.*; - -/********************************************************** - * - * Generated by: Apis - *********************************************************/ - - -public class ActionChannels_impl_ari_3_0_0 extends BaseAriAction implements ActionChannels { -/********************************************************** - * Active channels - * - * List all active channels in Asterisk. - *********************************************************/ -private void buildList() { -reset(); -url = "/channels"; -method = "GET"; -} - -@Override -public List list() throws RestException { -buildList(); -String json = httpActionSync(); -return deserializeJsonAsAbstractList( json, - new TypeReference>() {} ); -} - -@Override -public void list(AriCallback> callback) { -buildList(); -httpActionAsync(callback, new TypeReference>() {}); -} - -/********************************************************** - * Active channels - * - * Create a new channel (originate). - * The new channel is created immediately and a snapshot of it returned. If a Stasis application is provided it will be automatically subscribed to the originated channel for further events and updates. - *********************************************************/ -private void buildOriginate(String endpoint, String extension, String context, long priority, String label, String app, String appArgs, String callerId, int timeout, Map variables, String channelId, String otherChannelId, String originator, String formats) { -reset(); -url = "/channels"; -method = "POST"; -lParamQuery.add( HttpParam.build( "endpoint", endpoint) ); -lParamQuery.add( HttpParam.build( "extension", extension) ); -lParamQuery.add( HttpParam.build( "context", context) ); -lParamQuery.add( HttpParam.build( "priority", priority) ); -lParamQuery.add( HttpParam.build( "label", label) ); -lParamQuery.add( HttpParam.build( "app", app) ); -lParamQuery.add( HttpParam.build( "appArgs", appArgs) ); -lParamQuery.add( HttpParam.build( "callerId", callerId) ); -lParamQuery.add( HttpParam.build( "timeout", timeout) ); -lParamBody.addAll( HttpParam.build( "variables", variables) ); -lParamQuery.add( HttpParam.build( "channelId", channelId) ); -lParamQuery.add( HttpParam.build( "otherChannelId", otherChannelId) ); -lParamQuery.add( HttpParam.build( "originator", originator) ); -lParamQuery.add( HttpParam.build( "formats", formats) ); -lE.add( HttpResponse.build( 400, "Invalid parameters for originating a channel.") ); -lE.add( HttpResponse.build( 409, "Channel with given unique ID already exists.") ); -} - -@Override -public Channel originate(String endpoint, String extension, String context, long priority, String label, String app, String appArgs, String callerId, int timeout, Map variables, String channelId, String otherChannelId, String originator, String formats) throws RestException { -buildOriginate(endpoint, extension, context, priority, label, app, appArgs, callerId, timeout, variables, channelId, otherChannelId, originator, formats); -String json = httpActionSync(); -return deserializeJson( json, Channel_impl_ari_3_0_0.class ); -} - -@Override -public void originate(String endpoint, String extension, String context, long priority, String label, String app, String appArgs, String callerId, int timeout, Map variables, String channelId, String otherChannelId, String originator, String formats, AriCallback callback) { -buildOriginate(endpoint, extension, context, priority, label, app, appArgs, callerId, timeout, variables, channelId, otherChannelId, originator, formats); -httpActionAsync(callback, Channel_impl_ari_3_0_0.class); -} - -/********************************************************** - * Create a channel and place it in a Stasis app, but do not dial the channel yet. - * - * Create channel. - *********************************************************/ -private void buildCreate(String endpoint, String app, String appArgs, String channelId, String otherChannelId, String originator, String formats) { -reset(); -url = "/channels/create"; -method = "POST"; -lParamQuery.add( HttpParam.build( "endpoint", endpoint) ); -lParamQuery.add( HttpParam.build( "app", app) ); -lParamQuery.add( HttpParam.build( "appArgs", appArgs) ); -lParamQuery.add( HttpParam.build( "channelId", channelId) ); -lParamQuery.add( HttpParam.build( "otherChannelId", otherChannelId) ); -lParamQuery.add( HttpParam.build( "originator", originator) ); -lParamQuery.add( HttpParam.build( "formats", formats) ); -lE.add( HttpResponse.build( 409, "Channel with given unique ID already exists.") ); -} - -@Override -public Channel create(String endpoint, String app, String appArgs, String channelId, String otherChannelId, String originator, String formats) throws RestException { -buildCreate(endpoint, app, appArgs, channelId, otherChannelId, originator, formats); -String json = httpActionSync(); -return deserializeJson( json, Channel_impl_ari_3_0_0.class ); -} - -@Override -public void create(String endpoint, String app, String appArgs, String channelId, String otherChannelId, String originator, String formats, AriCallback callback) { -buildCreate(endpoint, app, appArgs, channelId, otherChannelId, originator, formats); -httpActionAsync(callback, Channel_impl_ari_3_0_0.class); -} - -/********************************************************** - * Active channel - * - * Channel details. - *********************************************************/ -private void buildGet(String channelId) { -reset(); -url = "/channels/" + channelId + ""; -method = "GET"; -lE.add( HttpResponse.build( 404, "Channel not found") ); -} - -@Override -public Channel get(String channelId) throws RestException { -buildGet(channelId); -String json = httpActionSync(); -return deserializeJson( json, Channel_impl_ari_3_0_0.class ); -} - -@Override -public void get(String channelId, AriCallback callback) { -buildGet(channelId); -httpActionAsync(callback, Channel_impl_ari_3_0_0.class); -} - -/********************************************************** - * Active channel - * - * Create a new channel (originate with id). - * The new channel is created immediately and a snapshot of it returned. If a Stasis application is provided it will be automatically subscribed to the originated channel for further events and updates. - *********************************************************/ -private void buildOriginateWithId(String channelId, String endpoint, String extension, String context, long priority, String label, String app, String appArgs, String callerId, int timeout, Map variables, String otherChannelId, String originator, String formats) { -reset(); -url = "/channels/" + channelId + ""; -method = "POST"; -lParamQuery.add( HttpParam.build( "endpoint", endpoint) ); -lParamQuery.add( HttpParam.build( "extension", extension) ); -lParamQuery.add( HttpParam.build( "context", context) ); -lParamQuery.add( HttpParam.build( "priority", priority) ); -lParamQuery.add( HttpParam.build( "label", label) ); -lParamQuery.add( HttpParam.build( "app", app) ); -lParamQuery.add( HttpParam.build( "appArgs", appArgs) ); -lParamQuery.add( HttpParam.build( "callerId", callerId) ); -lParamQuery.add( HttpParam.build( "timeout", timeout) ); -lParamBody.addAll( HttpParam.build( "variables", variables) ); -lParamQuery.add( HttpParam.build( "otherChannelId", otherChannelId) ); -lParamQuery.add( HttpParam.build( "originator", originator) ); -lParamQuery.add( HttpParam.build( "formats", formats) ); -lE.add( HttpResponse.build( 400, "Invalid parameters for originating a channel.") ); -lE.add( HttpResponse.build( 409, "Channel with given unique ID already exists.") ); -} - -@Override -public Channel originateWithId(String channelId, String endpoint, String extension, String context, long priority, String label, String app, String appArgs, String callerId, int timeout, Map variables, String otherChannelId, String originator, String formats) throws RestException { -buildOriginateWithId(channelId, endpoint, extension, context, priority, label, app, appArgs, callerId, timeout, variables, otherChannelId, originator, formats); -String json = httpActionSync(); -return deserializeJson( json, Channel_impl_ari_3_0_0.class ); -} - -@Override -public void originateWithId(String channelId, String endpoint, String extension, String context, long priority, String label, String app, String appArgs, String callerId, int timeout, Map variables, String otherChannelId, String originator, String formats, AriCallback callback) { -buildOriginateWithId(channelId, endpoint, extension, context, priority, label, app, appArgs, callerId, timeout, variables, otherChannelId, originator, formats); -httpActionAsync(callback, Channel_impl_ari_3_0_0.class); -} - -/********************************************************** - * Active channel - * - * Delete (i.e. hangup) a channel. - *********************************************************/ -private void buildHangup(String channelId, String reason) { -reset(); -url = "/channels/" + channelId + ""; -method = "DELETE"; -lParamQuery.add( HttpParam.build( "reason", reason) ); -lE.add( HttpResponse.build( 400, "Invalid reason for hangup provided") ); -lE.add( HttpResponse.build( 404, "Channel not found") ); -} - -@Override -public void hangup(String channelId, String reason) throws RestException { -buildHangup(channelId, reason); -String json = httpActionSync(); -} - -@Override -public void hangup(String channelId, String reason, AriCallback callback) { -buildHangup(channelId, reason); -httpActionAsync(callback); -} - -/********************************************************** - * Answer a channel - * - * Answer a channel. - *********************************************************/ -private void buildAnswer(String channelId) { -reset(); -url = "/channels/" + channelId + "/answer"; -method = "POST"; -lE.add( HttpResponse.build( 404, "Channel not found") ); -lE.add( HttpResponse.build( 409, "Channel not in a Stasis application") ); -lE.add( HttpResponse.build( 412, "Channel in invalid state") ); -} - -@Override -public void answer(String channelId) throws RestException { -buildAnswer(channelId); -String json = httpActionSync(); -} - -@Override -public void answer(String channelId, AriCallback callback) { -buildAnswer(channelId); -httpActionAsync(callback); -} - -/********************************************************** - * Exit application; continue execution in the dialplan - * - * Exit application; continue execution in the dialplan. - *********************************************************/ -private void buildContinueInDialplan(String channelId, String context, String extension, int priority, String label) { -reset(); -url = "/channels/" + channelId + "/continue"; -method = "POST"; -lParamQuery.add( HttpParam.build( "context", context) ); -lParamQuery.add( HttpParam.build( "extension", extension) ); -lParamQuery.add( HttpParam.build( "priority", priority) ); -lParamQuery.add( HttpParam.build( "label", label) ); -lE.add( HttpResponse.build( 404, "Channel not found") ); -lE.add( HttpResponse.build( 409, "Channel not in a Stasis application") ); -lE.add( HttpResponse.build( 412, "Channel in invalid state") ); -} - -@Override -public void continueInDialplan(String channelId, String context, String extension, int priority, String label) throws RestException { -buildContinueInDialplan(channelId, context, extension, priority, label); -String json = httpActionSync(); -} - -@Override -public void continueInDialplan(String channelId, String context, String extension, int priority, String label, AriCallback callback) { -buildContinueInDialplan(channelId, context, extension, priority, label); -httpActionAsync(callback); -} - -/********************************************************** - * Dial a channel - * - * Dial a created channel. - *********************************************************/ -private void buildDial(String channelId, String caller, int timeout) { -reset(); -url = "/channels/" + channelId + "/dial"; -method = "POST"; -lParamQuery.add( HttpParam.build( "caller", caller) ); -lParamQuery.add( HttpParam.build( "timeout", timeout) ); -lE.add( HttpResponse.build( 404, "Channel cannot be found.") ); -lE.add( HttpResponse.build( 409, "Channel cannot be dialed.") ); -} - -@Override -public void dial(String channelId, String caller, int timeout) throws RestException { -buildDial(channelId, caller, timeout); -String json = httpActionSync(); -} - -@Override -public void dial(String channelId, String caller, int timeout, AriCallback callback) { -buildDial(channelId, caller, timeout); -httpActionAsync(callback); -} - -/********************************************************** - * Send DTMF to a channel - * - * Send provided DTMF to a given channel. - *********************************************************/ -private void buildSendDTMF(String channelId, String dtmf, int before, int between, int duration, int after) { -reset(); -url = "/channels/" + channelId + "/dtmf"; -method = "POST"; -lParamQuery.add( HttpParam.build( "dtmf", dtmf) ); -lParamQuery.add( HttpParam.build( "before", before) ); -lParamQuery.add( HttpParam.build( "between", between) ); -lParamQuery.add( HttpParam.build( "duration", duration) ); -lParamQuery.add( HttpParam.build( "after", after) ); -lE.add( HttpResponse.build( 400, "DTMF is required") ); -lE.add( HttpResponse.build( 404, "Channel not found") ); -lE.add( HttpResponse.build( 409, "Channel not in a Stasis application") ); -lE.add( HttpResponse.build( 412, "Channel in invalid state") ); -} - -@Override -public void sendDTMF(String channelId, String dtmf, int before, int between, int duration, int after) throws RestException { -buildSendDTMF(channelId, dtmf, before, between, duration, after); -String json = httpActionSync(); -} - -@Override -public void sendDTMF(String channelId, String dtmf, int before, int between, int duration, int after, AriCallback callback) { -buildSendDTMF(channelId, dtmf, before, between, duration, after); -httpActionAsync(callback); -} - -/********************************************************** - * Put a channel on hold - * - * Hold a channel. - *********************************************************/ -private void buildHold(String channelId) { -reset(); -url = "/channels/" + channelId + "/hold"; -method = "POST"; -lE.add( HttpResponse.build( 404, "Channel not found") ); -lE.add( HttpResponse.build( 409, "Channel not in a Stasis application") ); -lE.add( HttpResponse.build( 412, "Channel in invalid state") ); -} - -@Override -public void hold(String channelId) throws RestException { -buildHold(channelId); -String json = httpActionSync(); -} - -@Override -public void hold(String channelId, AriCallback callback) { -buildHold(channelId); -httpActionAsync(callback); -} - -/********************************************************** - * Put a channel on hold - * - * Remove a channel from hold. - *********************************************************/ -private void buildUnhold(String channelId) { -reset(); -url = "/channels/" + channelId + "/hold"; -method = "DELETE"; -lE.add( HttpResponse.build( 404, "Channel not found") ); -lE.add( HttpResponse.build( 409, "Channel not in a Stasis application") ); -lE.add( HttpResponse.build( 412, "Channel in invalid state") ); -} - -@Override -public void unhold(String channelId) throws RestException { -buildUnhold(channelId); -String json = httpActionSync(); -} - -@Override -public void unhold(String channelId, AriCallback callback) { -buildUnhold(channelId); -httpActionAsync(callback); -} - -/********************************************************** - * Play music on hold to a channel - * - * Play music on hold to a channel. - * Using media operations such as /play on a channel playing MOH in this manner will suspend MOH without resuming automatically. If continuing music on hold is desired, the stasis application must reinitiate music on hold. - *********************************************************/ -private void buildStartMoh(String channelId, String mohClass) { -reset(); -url = "/channels/" + channelId + "/moh"; -method = "POST"; -lParamQuery.add( HttpParam.build( "mohClass", mohClass) ); -lE.add( HttpResponse.build( 404, "Channel not found") ); -lE.add( HttpResponse.build( 409, "Channel not in a Stasis application") ); -lE.add( HttpResponse.build( 412, "Channel in invalid state") ); -} - -@Override -public void startMoh(String channelId, String mohClass) throws RestException { -buildStartMoh(channelId, mohClass); -String json = httpActionSync(); -} - -@Override -public void startMoh(String channelId, String mohClass, AriCallback callback) { -buildStartMoh(channelId, mohClass); -httpActionAsync(callback); -} - -/********************************************************** - * Play music on hold to a channel - * - * Stop playing music on hold to a channel. - *********************************************************/ -private void buildStopMoh(String channelId) { -reset(); -url = "/channels/" + channelId + "/moh"; -method = "DELETE"; -lE.add( HttpResponse.build( 404, "Channel not found") ); -lE.add( HttpResponse.build( 409, "Channel not in a Stasis application") ); -lE.add( HttpResponse.build( 412, "Channel in invalid state") ); -} - -@Override -public void stopMoh(String channelId) throws RestException { -buildStopMoh(channelId); -String json = httpActionSync(); -} - -@Override -public void stopMoh(String channelId, AriCallback callback) { -buildStopMoh(channelId); -httpActionAsync(callback); -} - -/********************************************************** - * Mute a channel - * - * Mute a channel. - *********************************************************/ -private void buildMute(String channelId, String direction) { -reset(); -url = "/channels/" + channelId + "/mute"; -method = "POST"; -lParamQuery.add( HttpParam.build( "direction", direction) ); -lE.add( HttpResponse.build( 404, "Channel not found") ); -lE.add( HttpResponse.build( 409, "Channel not in a Stasis application") ); -lE.add( HttpResponse.build( 412, "Channel in invalid state") ); -} - -@Override -public void mute(String channelId, String direction) throws RestException { -buildMute(channelId, direction); -String json = httpActionSync(); -} - -@Override -public void mute(String channelId, String direction, AriCallback callback) { -buildMute(channelId, direction); -httpActionAsync(callback); -} - -/********************************************************** - * Mute a channel - * - * Unmute a channel. - *********************************************************/ -private void buildUnmute(String channelId, String direction) { -reset(); -url = "/channels/" + channelId + "/mute"; -method = "DELETE"; -lParamQuery.add( HttpParam.build( "direction", direction) ); -lE.add( HttpResponse.build( 404, "Channel not found") ); -lE.add( HttpResponse.build( 409, "Channel not in a Stasis application") ); -lE.add( HttpResponse.build( 412, "Channel in invalid state") ); -} - -@Override -public void unmute(String channelId, String direction) throws RestException { -buildUnmute(channelId, direction); -String json = httpActionSync(); -} - -@Override -public void unmute(String channelId, String direction, AriCallback callback) { -buildUnmute(channelId, direction); -httpActionAsync(callback); -} - -/********************************************************** - * Play media to a channel - * - * Start playback of media. - * The media URI may be any of a number of URI's. Currently sound:, recording:, number:, digits:, characters:, and tone: URI's are supported. This operation creates a playback resource that can be used to control the playback of media (pause, rewind, fast forward, etc.) - *********************************************************/ -private void buildPlay(String channelId, String media, String lang, int offsetms, int skipms, String playbackId) { -reset(); -url = "/channels/" + channelId + "/play"; -method = "POST"; -lParamQuery.add( HttpParam.build( "media", media) ); -lParamQuery.add( HttpParam.build( "lang", lang) ); -lParamQuery.add( HttpParam.build( "offsetms", offsetms) ); -lParamQuery.add( HttpParam.build( "skipms", skipms) ); -lParamQuery.add( HttpParam.build( "playbackId", playbackId) ); -lE.add( HttpResponse.build( 404, "Channel not found") ); -lE.add( HttpResponse.build( 409, "Channel not in a Stasis application") ); -lE.add( HttpResponse.build( 412, "Channel in invalid state") ); -} - -@Override -public Playback play(String channelId, String media, String lang, int offsetms, int skipms, String playbackId) throws RestException { -buildPlay(channelId, media, lang, offsetms, skipms, playbackId); -String json = httpActionSync(); -return deserializeJson( json, Playback_impl_ari_3_0_0.class ); -} - -@Override -public void play(String channelId, String media, String lang, int offsetms, int skipms, String playbackId, AriCallback callback) { -buildPlay(channelId, media, lang, offsetms, skipms, playbackId); -httpActionAsync(callback, Playback_impl_ari_3_0_0.class); -} - -/********************************************************** - * Play media to a channel - * - * Start playback of media and specify the playbackId. - * The media URI may be any of a number of URI's. Currently sound:, recording:, number:, digits:, characters:, and tone: URI's are supported. This operation creates a playback resource that can be used to control the playback of media (pause, rewind, fast forward, etc.) - *********************************************************/ -private void buildPlayWithId(String channelId, String playbackId, String media, String lang, int offsetms, int skipms) { -reset(); -url = "/channels/" + channelId + "/play/" + playbackId + ""; -method = "POST"; -lParamQuery.add( HttpParam.build( "media", media) ); -lParamQuery.add( HttpParam.build( "lang", lang) ); -lParamQuery.add( HttpParam.build( "offsetms", offsetms) ); -lParamQuery.add( HttpParam.build( "skipms", skipms) ); -lE.add( HttpResponse.build( 404, "Channel not found") ); -lE.add( HttpResponse.build( 409, "Channel not in a Stasis application") ); -lE.add( HttpResponse.build( 412, "Channel in invalid state") ); -} - -@Override -public Playback playWithId(String channelId, String playbackId, String media, String lang, int offsetms, int skipms) throws RestException { -buildPlayWithId(channelId, playbackId, media, lang, offsetms, skipms); -String json = httpActionSync(); -return deserializeJson( json, Playback_impl_ari_3_0_0.class ); -} - -@Override -public void playWithId(String channelId, String playbackId, String media, String lang, int offsetms, int skipms, AriCallback callback) { -buildPlayWithId(channelId, playbackId, media, lang, offsetms, skipms); -httpActionAsync(callback, Playback_impl_ari_3_0_0.class); -} - -/********************************************************** - * Record audio from a channel - * - * Start a recording. - * Record audio from a channel. Note that this will not capture audio sent to the channel. The bridge itself has a record feature if that's what you want. - *********************************************************/ -private void buildRecord(String channelId, String name, String format, int maxDurationSeconds, int maxSilenceSeconds, String ifExists, boolean beep, String terminateOn) { -reset(); -url = "/channels/" + channelId + "/record"; -method = "POST"; -lParamQuery.add( HttpParam.build( "name", name) ); -lParamQuery.add( HttpParam.build( "format", format) ); -lParamQuery.add( HttpParam.build( "maxDurationSeconds", maxDurationSeconds) ); -lParamQuery.add( HttpParam.build( "maxSilenceSeconds", maxSilenceSeconds) ); -lParamQuery.add( HttpParam.build( "ifExists", ifExists) ); -lParamQuery.add( HttpParam.build( "beep", beep) ); -lParamQuery.add( HttpParam.build( "terminateOn", terminateOn) ); -lE.add( HttpResponse.build( 400, "Invalid parameters") ); -lE.add( HttpResponse.build( 404, "Channel not found") ); -lE.add( HttpResponse.build( 409, "Channel is not in a Stasis application; the channel is currently bridged with other hcannels; A recording with the same name already exists on the system and can not be overwritten because it is in progress or ifExists=fail") ); -lE.add( HttpResponse.build( 422, "The format specified is unknown on this system") ); -} - -@Override -public LiveRecording record(String channelId, String name, String format, int maxDurationSeconds, int maxSilenceSeconds, String ifExists, boolean beep, String terminateOn) throws RestException { -buildRecord(channelId, name, format, maxDurationSeconds, maxSilenceSeconds, ifExists, beep, terminateOn); -String json = httpActionSync(); -return deserializeJson( json, LiveRecording_impl_ari_3_0_0.class ); -} - -@Override -public void record(String channelId, String name, String format, int maxDurationSeconds, int maxSilenceSeconds, String ifExists, boolean beep, String terminateOn, AriCallback callback) { -buildRecord(channelId, name, format, maxDurationSeconds, maxSilenceSeconds, ifExists, beep, terminateOn); -httpActionAsync(callback, LiveRecording_impl_ari_3_0_0.class); -} - -/********************************************************** - * Inform the channel that it should redirect itself to a different location. Note that this will almost certainly cause the channel to exit the application. - * - * Redirect the channel to a different location. - *********************************************************/ -private void buildRedirect(String channelId, String endpoint) { -reset(); -url = "/channels/" + channelId + "/redirect"; -method = "POST"; -lParamQuery.add( HttpParam.build( "endpoint", endpoint) ); -lE.add( HttpResponse.build( 400, "Endpoint parameter not provided") ); -lE.add( HttpResponse.build( 404, "Channel or endpoint not found") ); -lE.add( HttpResponse.build( 409, "Channel not in a Stasis application") ); -lE.add( HttpResponse.build( 422, "Endpoint is not the same type as the channel") ); -lE.add( HttpResponse.build( 412, "Channel in invalid state") ); -} - -@Override -public void redirect(String channelId, String endpoint) throws RestException { -buildRedirect(channelId, endpoint); -String json = httpActionSync(); -} - -@Override -public void redirect(String channelId, String endpoint, AriCallback callback) { -buildRedirect(channelId, endpoint); -httpActionAsync(callback); -} - -/********************************************************** - * Send a ringing indication to a channel - * - * Indicate ringing to a channel. - *********************************************************/ -private void buildRing(String channelId) { -reset(); -url = "/channels/" + channelId + "/ring"; -method = "POST"; -lE.add( HttpResponse.build( 404, "Channel not found") ); -lE.add( HttpResponse.build( 409, "Channel not in a Stasis application") ); -lE.add( HttpResponse.build( 412, "Channel in invalid state") ); -} - -@Override -public void ring(String channelId) throws RestException { -buildRing(channelId); -String json = httpActionSync(); -} - -@Override -public void ring(String channelId, AriCallback callback) { -buildRing(channelId); -httpActionAsync(callback); -} - -/********************************************************** - * Send a ringing indication to a channel - * - * Stop ringing indication on a channel if locally generated. - *********************************************************/ -private void buildRingStop(String channelId) { -reset(); -url = "/channels/" + channelId + "/ring"; -method = "DELETE"; -lE.add( HttpResponse.build( 404, "Channel not found") ); -lE.add( HttpResponse.build( 409, "Channel not in a Stasis application") ); -lE.add( HttpResponse.build( 412, "Channel in invalid state") ); -} - -@Override -public void ringStop(String channelId) throws RestException { -buildRingStop(channelId); -String json = httpActionSync(); -} - -@Override -public void ringStop(String channelId, AriCallback callback) { -buildRingStop(channelId); -httpActionAsync(callback); -} - -/********************************************************** - * Play silence to a channel - * - * Play silence to a channel. - * Using media operations such as /play on a channel playing silence in this manner will suspend silence without resuming automatically. - *********************************************************/ -private void buildStartSilence(String channelId) { -reset(); -url = "/channels/" + channelId + "/silence"; -method = "POST"; -lE.add( HttpResponse.build( 404, "Channel not found") ); -lE.add( HttpResponse.build( 409, "Channel not in a Stasis application") ); -lE.add( HttpResponse.build( 412, "Channel in invalid state") ); -} - -@Override -public void startSilence(String channelId) throws RestException { -buildStartSilence(channelId); -String json = httpActionSync(); -} - -@Override -public void startSilence(String channelId, AriCallback callback) { -buildStartSilence(channelId); -httpActionAsync(callback); -} - -/********************************************************** - * Play silence to a channel - * - * Stop playing silence to a channel. - *********************************************************/ -private void buildStopSilence(String channelId) { -reset(); -url = "/channels/" + channelId + "/silence"; -method = "DELETE"; -lE.add( HttpResponse.build( 404, "Channel not found") ); -lE.add( HttpResponse.build( 409, "Channel not in a Stasis application") ); -lE.add( HttpResponse.build( 412, "Channel in invalid state") ); -} - -@Override -public void stopSilence(String channelId) throws RestException { -buildStopSilence(channelId); -String json = httpActionSync(); -} - -@Override -public void stopSilence(String channelId, AriCallback callback) { -buildStopSilence(channelId); -httpActionAsync(callback); -} - -/********************************************************** - * Snoop (spy/whisper) on a channel - * - * Start snooping. - * Snoop (spy/whisper) on a specific channel. - *********************************************************/ -private void buildSnoopChannel(String channelId, String spy, String whisper, String app, String appArgs, String snoopId) { -reset(); -url = "/channels/" + channelId + "/snoop"; -method = "POST"; -lParamQuery.add( HttpParam.build( "spy", spy) ); -lParamQuery.add( HttpParam.build( "whisper", whisper) ); -lParamQuery.add( HttpParam.build( "app", app) ); -lParamQuery.add( HttpParam.build( "appArgs", appArgs) ); -lParamQuery.add( HttpParam.build( "snoopId", snoopId) ); -lE.add( HttpResponse.build( 400, "Invalid parameters") ); -lE.add( HttpResponse.build( 404, "Channel not found") ); -} - -@Override -public Channel snoopChannel(String channelId, String spy, String whisper, String app, String appArgs, String snoopId) throws RestException { -buildSnoopChannel(channelId, spy, whisper, app, appArgs, snoopId); -String json = httpActionSync(); -return deserializeJson( json, Channel_impl_ari_3_0_0.class ); -} - -@Override -public void snoopChannel(String channelId, String spy, String whisper, String app, String appArgs, String snoopId, AriCallback callback) { -buildSnoopChannel(channelId, spy, whisper, app, appArgs, snoopId); -httpActionAsync(callback, Channel_impl_ari_3_0_0.class); -} - -/********************************************************** - * Snoop (spy/whisper) on a channel - * - * Start snooping. - * Snoop (spy/whisper) on a specific channel. - *********************************************************/ -private void buildSnoopChannelWithId(String channelId, String snoopId, String spy, String whisper, String app, String appArgs) { -reset(); -url = "/channels/" + channelId + "/snoop/" + snoopId + ""; -method = "POST"; -lParamQuery.add( HttpParam.build( "spy", spy) ); -lParamQuery.add( HttpParam.build( "whisper", whisper) ); -lParamQuery.add( HttpParam.build( "app", app) ); -lParamQuery.add( HttpParam.build( "appArgs", appArgs) ); -lE.add( HttpResponse.build( 400, "Invalid parameters") ); -lE.add( HttpResponse.build( 404, "Channel not found") ); -} - -@Override -public Channel snoopChannelWithId(String channelId, String snoopId, String spy, String whisper, String app, String appArgs) throws RestException { -buildSnoopChannelWithId(channelId, snoopId, spy, whisper, app, appArgs); -String json = httpActionSync(); -return deserializeJson( json, Channel_impl_ari_3_0_0.class ); -} - -@Override -public void snoopChannelWithId(String channelId, String snoopId, String spy, String whisper, String app, String appArgs, AriCallback callback) { -buildSnoopChannelWithId(channelId, snoopId, spy, whisper, app, appArgs); -httpActionAsync(callback, Channel_impl_ari_3_0_0.class); -} - -/********************************************************** - * Variables on a channel - * - * Get the value of a channel variable or function. - *********************************************************/ -private void buildGetChannelVar(String channelId, String variable) { -reset(); -url = "/channels/" + channelId + "/variable"; -method = "GET"; -lParamQuery.add( HttpParam.build( "variable", variable) ); -lE.add( HttpResponse.build( 400, "Missing variable parameter.") ); -lE.add( HttpResponse.build( 404, "Channel or variable not found") ); -lE.add( HttpResponse.build( 409, "Channel not in a Stasis application") ); -} - -@Override -public Variable getChannelVar(String channelId, String variable) throws RestException { -buildGetChannelVar(channelId, variable); -String json = httpActionSync(); -return deserializeJson( json, Variable_impl_ari_3_0_0.class ); -} - -@Override -public void getChannelVar(String channelId, String variable, AriCallback callback) { -buildGetChannelVar(channelId, variable); -httpActionAsync(callback, Variable_impl_ari_3_0_0.class); -} - -/********************************************************** - * Variables on a channel - * - * Set the value of a channel variable or function. - *********************************************************/ -private void buildSetChannelVar(String channelId, String variable, String value) { -reset(); -url = "/channels/" + channelId + "/variable"; -method = "POST"; -lParamQuery.add( HttpParam.build( "variable", variable) ); -lParamQuery.add( HttpParam.build( "value", value) ); -lE.add( HttpResponse.build( 400, "Missing variable parameter.") ); -lE.add( HttpResponse.build( 404, "Channel not found") ); -lE.add( HttpResponse.build( 409, "Channel not in a Stasis application") ); -} - -@Override -public void setChannelVar(String channelId, String variable, String value) throws RestException { -buildSetChannelVar(channelId, variable, value); -String json = httpActionSync(); -} - -@Override -public void setChannelVar(String channelId, String variable, String value, AriCallback callback) { -buildSetChannelVar(channelId, variable, value); -httpActionAsync(callback); -} - -/********************************************************** - * - * - * @since ari_1_7_0 - *********************************************************/ -public void originate(String endpoint, String extension, String context, long priority, String label, String app, String appArgs, String callerId, int timeout, Map variables, String channelId, String otherChannelId, String originator, AriCallback callback){ - throw new UnsupportedOperationException("Method availble from ..."); -}; - -/********************************************************** - * Create a new channel (originate with id). - * The new channel is created immediately and a snapshot of it returned. If a Stasis application is provided it will be automatically subscribed to the originated channel for further events and updates. - * - * @since ari_1_5_0 - *********************************************************/ -public Channel originateWithId(String channelId, String endpoint, String extension, String context, long priority, String app, String appArgs, String callerId, int timeout, Map variables, String otherChannelId) throws RestException{ - throw new UnsupportedOperationException("Method availble from ..."); -}; - -/********************************************************** - * Start snooping. - * Snoop (spy/whisper) on a specific channel. - * - * @since ari_0_0_1 - *********************************************************/ -public Channel snoopChannel(String channelId, String spy, String whisper, String app, String appArgs) throws RestException{ - throw new UnsupportedOperationException("Method availble from ..."); -}; - -/********************************************************** - * - * - * @since ari_1_5_0 - *********************************************************/ -public void originate(String endpoint, String extension, String context, long priority, String app, String appArgs, String callerId, int timeout, Map variables, String channelId, String otherChannelId, AriCallback callback){ - throw new UnsupportedOperationException("Method availble from ..."); -}; - -/********************************************************** - * - * - * @since ari_0_0_1 - *********************************************************/ -public void continueInDialplan(String channelId, String context, String extension, int priority, AriCallback callback){ - throw new UnsupportedOperationException("Method availble from ..."); -}; - -/********************************************************** - * Start playback of media. - * The media URI may be any of a number of URI's. Currently sound: and recording: URI's are supported. This operation creates a playback resource that can be used to control the playback of media (pause, rewind, fast forward, etc.) - * - * @since ari_0_0_1 - *********************************************************/ -public Playback play(String channelId, String media, String lang, int offsetms, int skipms) throws RestException{ - throw new UnsupportedOperationException("Method availble from ..."); -}; - -/********************************************************** - * - * - * @since ari_0_0_1 - *********************************************************/ -public void play(String channelId, String media, String lang, int offsetms, int skipms, AriCallback callback){ - throw new UnsupportedOperationException("Method availble from ..."); -}; - -/********************************************************** - * - * - * @since ari_0_0_1 - *********************************************************/ -public void snoopChannel(String channelId, String spy, String whisper, String app, String appArgs, AriCallback callback){ - throw new UnsupportedOperationException("Method availble from ..."); -}; - -/********************************************************** - * Create a new channel (originate). - * The new channel is created immediately and a snapshot of it returned. If a Stasis application is provided it will be automatically subscribed to the originated channel for further events and updates. - * - * @since ari_1_7_0 - *********************************************************/ -public Channel originate(String endpoint, String extension, String context, long priority, String label, String app, String appArgs, String callerId, int timeout, Map variables, String channelId, String otherChannelId, String originator) throws RestException{ - throw new UnsupportedOperationException("Method availble from ..."); -}; - -/********************************************************** - * - * - * @since ari_1_5_0 - *********************************************************/ -public void originateWithId(String channelId, String endpoint, String extension, String context, long priority, String app, String appArgs, String callerId, int timeout, Map variables, String otherChannelId, AriCallback callback){ - throw new UnsupportedOperationException("Method availble from ..."); -}; - -/********************************************************** - * Create a new channel (originate with id). - * The new channel is created immediately and a snapshot of it returned. If a Stasis application is provided it will be automatically subscribed to the originated channel for further events and updates. - * - * @since ari_1_7_0 - *********************************************************/ -public Channel originateWithId(String channelId, String endpoint, String extension, String context, long priority, String label, String app, String appArgs, String callerId, int timeout, Map variables, String otherChannelId, String originator) throws RestException{ - throw new UnsupportedOperationException("Method availble from ..."); -}; - -/********************************************************** - * Create a new channel (originate). - * The new channel is created immediately and a snapshot of it returned. If a Stasis application is provided it will be automatically subscribed to the originated channel for further events and updates. - * - * @since ari_0_0_1 - *********************************************************/ -public Channel originate(String endpoint, String extension, String context, long priority, String app, String appArgs, String callerId, int timeout) throws RestException{ - throw new UnsupportedOperationException("Method availble from ..."); -}; - -/********************************************************** - * - * - * @since ari_1_7_0 - *********************************************************/ -public void originateWithId(String channelId, String endpoint, String extension, String context, long priority, String label, String app, String appArgs, String callerId, int timeout, Map variables, String otherChannelId, String originator, AriCallback callback){ - throw new UnsupportedOperationException("Method availble from ..."); -}; - -/********************************************************** - * Exit application{ - throw new UnsupportedOperationException("Method availble from ..."); -}; continue execution in the dialplan. - * - * - * @since ari_0_0_1 - *********************************************************/ -public void continueInDialplan(String channelId, String context, String extension, int priority) throws RestException{ - throw new UnsupportedOperationException("Method availble from ..."); -}; - -/********************************************************** - * Create a new channel (originate). - * The new channel is created immediately and a snapshot of it returned. If a Stasis application is provided it will be automatically subscribed to the originated channel for further events and updates. - * - * @since ari_1_5_0 - *********************************************************/ -public Channel originate(String endpoint, String extension, String context, long priority, String app, String appArgs, String callerId, int timeout, Map variables, String channelId, String otherChannelId) throws RestException{ - throw new UnsupportedOperationException("Method availble from ..."); -}; - -/********************************************************** - * - * - * @since ari_0_0_1 - *********************************************************/ -public void originate(String endpoint, String extension, String context, long priority, String app, String appArgs, String callerId, int timeout, AriCallback callback){ - throw new UnsupportedOperationException("Method availble from ..."); -}; - -}; - diff --git a/classes/ch/loway/oss/ari4java/generated/ari_3_0_0/actions/ActionDeviceStates_impl_ari_3_0_0.java b/classes/ch/loway/oss/ari4java/generated/ari_3_0_0/actions/ActionDeviceStates_impl_ari_3_0_0.java deleted file mode 100644 index f1cad0b0..00000000 --- a/classes/ch/loway/oss/ari4java/generated/ari_3_0_0/actions/ActionDeviceStates_impl_ari_3_0_0.java +++ /dev/null @@ -1,131 +0,0 @@ -package ch.loway.oss.ari4java.generated.ari_3_0_0.actions; - -// ---------------------------------------------------- -// THIS CLASS WAS GENERATED AUTOMATICALLY -// PLEASE DO NOT EDIT -// Generated on: Tue Dec 19 09:55:49 CET 2017 -// ---------------------------------------------------- - -import ch.loway.oss.ari4java.generated.*; -import java.util.Date; -import java.util.List; -import java.util.Map; -import java.util.ArrayList; -import ch.loway.oss.ari4java.tools.BaseAriAction; -import ch.loway.oss.ari4java.tools.RestException; -import ch.loway.oss.ari4java.tools.AriCallback; -import ch.loway.oss.ari4java.tools.HttpParam; -import ch.loway.oss.ari4java.tools.HttpResponse; -import com.fasterxml.jackson.core.type.TypeReference; -import ch.loway.oss.ari4java.generated.ari_3_0_0.models.*; - -/********************************************************** - * - * Generated by: Apis - *********************************************************/ - - -public class ActionDeviceStates_impl_ari_3_0_0 extends BaseAriAction implements ActionDeviceStates { -/********************************************************** - * Device states - * - * List all ARI controlled device states. - *********************************************************/ -private void buildList() { -reset(); -url = "/deviceStates"; -method = "GET"; -} - -@Override -public List list() throws RestException { -buildList(); -String json = httpActionSync(); -return deserializeJsonAsAbstractList( json, - new TypeReference>() {} ); -} - -@Override -public void list(AriCallback> callback) { -buildList(); -httpActionAsync(callback, new TypeReference>() {}); -} - -/********************************************************** - * Device state - * - * Retrieve the current state of a device. - *********************************************************/ -private void buildGet(String deviceName) { -reset(); -url = "/deviceStates/" + deviceName + ""; -method = "GET"; -} - -@Override -public DeviceState get(String deviceName) throws RestException { -buildGet(deviceName); -String json = httpActionSync(); -return deserializeJson( json, DeviceState_impl_ari_3_0_0.class ); -} - -@Override -public void get(String deviceName, AriCallback callback) { -buildGet(deviceName); -httpActionAsync(callback, DeviceState_impl_ari_3_0_0.class); -} - -/********************************************************** - * Device state - * - * Change the state of a device controlled by ARI. (Note - implicitly creates the device state). - *********************************************************/ -private void buildUpdate(String deviceName, String deviceState) { -reset(); -url = "/deviceStates/" + deviceName + ""; -method = "PUT"; -lParamQuery.add( HttpParam.build( "deviceState", deviceState) ); -lE.add( HttpResponse.build( 404, "Device name is missing") ); -lE.add( HttpResponse.build( 409, "Uncontrolled device specified") ); -} - -@Override -public void update(String deviceName, String deviceState) throws RestException { -buildUpdate(deviceName, deviceState); -String json = httpActionSync(); -} - -@Override -public void update(String deviceName, String deviceState, AriCallback callback) { -buildUpdate(deviceName, deviceState); -httpActionAsync(callback); -} - -/********************************************************** - * Device state - * - * Destroy a device-state controlled by ARI. - *********************************************************/ -private void buildDelete(String deviceName) { -reset(); -url = "/deviceStates/" + deviceName + ""; -method = "DELETE"; -lE.add( HttpResponse.build( 404, "Device name is missing") ); -lE.add( HttpResponse.build( 409, "Uncontrolled device specified") ); -} - -@Override -public void delete(String deviceName) throws RestException { -buildDelete(deviceName); -String json = httpActionSync(); -} - -@Override -public void delete(String deviceName, AriCallback callback) { -buildDelete(deviceName); -httpActionAsync(callback); -} - -/** No missing signatures from interface */ -}; - diff --git a/classes/ch/loway/oss/ari4java/generated/ari_3_0_0/actions/ActionEndpoints_impl_ari_3_0_0.java b/classes/ch/loway/oss/ari4java/generated/ari_3_0_0/actions/ActionEndpoints_impl_ari_3_0_0.java deleted file mode 100644 index 9d744740..00000000 --- a/classes/ch/loway/oss/ari4java/generated/ari_3_0_0/actions/ActionEndpoints_impl_ari_3_0_0.java +++ /dev/null @@ -1,165 +0,0 @@ -package ch.loway.oss.ari4java.generated.ari_3_0_0.actions; - -// ---------------------------------------------------- -// THIS CLASS WAS GENERATED AUTOMATICALLY -// PLEASE DO NOT EDIT -// Generated on: Tue Dec 19 09:55:49 CET 2017 -// ---------------------------------------------------- - -import ch.loway.oss.ari4java.generated.*; -import java.util.Date; -import java.util.List; -import java.util.Map; -import java.util.ArrayList; -import ch.loway.oss.ari4java.tools.BaseAriAction; -import ch.loway.oss.ari4java.tools.RestException; -import ch.loway.oss.ari4java.tools.AriCallback; -import ch.loway.oss.ari4java.tools.HttpParam; -import ch.loway.oss.ari4java.tools.HttpResponse; -import com.fasterxml.jackson.core.type.TypeReference; -import ch.loway.oss.ari4java.generated.ari_3_0_0.models.*; - -/********************************************************** - * - * Generated by: Apis - *********************************************************/ - - -public class ActionEndpoints_impl_ari_3_0_0 extends BaseAriAction implements ActionEndpoints { -/********************************************************** - * Asterisk endpoints - * - * List all endpoints. - *********************************************************/ -private void buildList() { -reset(); -url = "/endpoints"; -method = "GET"; -} - -@Override -public List list() throws RestException { -buildList(); -String json = httpActionSync(); -return deserializeJsonAsAbstractList( json, - new TypeReference>() {} ); -} - -@Override -public void list(AriCallback> callback) { -buildList(); -httpActionAsync(callback, new TypeReference>() {}); -} - -/********************************************************** - * Send a message to some technology URI or endpoint. - * - * Send a message to some technology URI or endpoint. - *********************************************************/ -private void buildSendMessage(String to, String from, String body, Map variables) { -reset(); -url = "/endpoints/sendMessage"; -method = "PUT"; -lParamQuery.add( HttpParam.build( "to", to) ); -lParamQuery.add( HttpParam.build( "from", from) ); -lParamQuery.add( HttpParam.build( "body", body) ); -lParamBody.addAll( HttpParam.build( "variables", variables) ); -lE.add( HttpResponse.build( 400, "Invalid parameters for sending a message.") ); -lE.add( HttpResponse.build( 404, "Endpoint not found") ); -} - -@Override -public void sendMessage(String to, String from, String body, Map variables) throws RestException { -buildSendMessage(to, from, body, variables); -String json = httpActionSync(); -} - -@Override -public void sendMessage(String to, String from, String body, Map variables, AriCallback callback) { -buildSendMessage(to, from, body, variables); -httpActionAsync(callback); -} - -/********************************************************** - * Asterisk endpoints - * - * List available endoints for a given endpoint technology. - *********************************************************/ -private void buildListByTech(String tech) { -reset(); -url = "/endpoints/" + tech + ""; -method = "GET"; -lE.add( HttpResponse.build( 404, "Endpoints not found") ); -} - -@Override -public List listByTech(String tech) throws RestException { -buildListByTech(tech); -String json = httpActionSync(); -return deserializeJsonAsAbstractList( json, - new TypeReference>() {} ); -} - -@Override -public void listByTech(String tech, AriCallback> callback) { -buildListByTech(tech); -httpActionAsync(callback, new TypeReference>() {}); -} - -/********************************************************** - * Single endpoint - * - * Details for an endpoint. - *********************************************************/ -private void buildGet(String tech, String resource) { -reset(); -url = "/endpoints/" + tech + "/" + resource + ""; -method = "GET"; -lE.add( HttpResponse.build( 400, "Invalid parameters for sending a message.") ); -lE.add( HttpResponse.build( 404, "Endpoints not found") ); -} - -@Override -public Endpoint get(String tech, String resource) throws RestException { -buildGet(tech, resource); -String json = httpActionSync(); -return deserializeJson( json, Endpoint_impl_ari_3_0_0.class ); -} - -@Override -public void get(String tech, String resource, AriCallback callback) { -buildGet(tech, resource); -httpActionAsync(callback, Endpoint_impl_ari_3_0_0.class); -} - -/********************************************************** - * Send a message to some endpoint in a technology. - * - * Send a message to some endpoint in a technology. - *********************************************************/ -private void buildSendMessageToEndpoint(String tech, String resource, String from, String body, Map variables) { -reset(); -url = "/endpoints/" + tech + "/" + resource + "/sendMessage"; -method = "PUT"; -lParamQuery.add( HttpParam.build( "from", from) ); -lParamQuery.add( HttpParam.build( "body", body) ); -lParamBody.addAll( HttpParam.build( "variables", variables) ); -lE.add( HttpResponse.build( 400, "Invalid parameters for sending a message.") ); -lE.add( HttpResponse.build( 404, "Endpoint not found") ); -} - -@Override -public void sendMessageToEndpoint(String tech, String resource, String from, String body, Map variables) throws RestException { -buildSendMessageToEndpoint(tech, resource, from, body, variables); -String json = httpActionSync(); -} - -@Override -public void sendMessageToEndpoint(String tech, String resource, String from, String body, Map variables, AriCallback callback) { -buildSendMessageToEndpoint(tech, resource, from, body, variables); -httpActionAsync(callback); -} - -/** No missing signatures from interface */ -}; - diff --git a/classes/ch/loway/oss/ari4java/generated/ari_3_0_0/actions/ActionEvents_impl_ari_3_0_0.java b/classes/ch/loway/oss/ari4java/generated/ari_3_0_0/actions/ActionEvents_impl_ari_3_0_0.java deleted file mode 100644 index 7dab01c5..00000000 --- a/classes/ch/loway/oss/ari4java/generated/ari_3_0_0/actions/ActionEvents_impl_ari_3_0_0.java +++ /dev/null @@ -1,103 +0,0 @@ -package ch.loway.oss.ari4java.generated.ari_3_0_0.actions; - -// ---------------------------------------------------- -// THIS CLASS WAS GENERATED AUTOMATICALLY -// PLEASE DO NOT EDIT -// Generated on: Tue Dec 19 09:55:49 CET 2017 -// ---------------------------------------------------- - -import ch.loway.oss.ari4java.generated.*; -import java.util.Date; -import java.util.List; -import java.util.Map; -import java.util.ArrayList; -import ch.loway.oss.ari4java.tools.BaseAriAction; -import ch.loway.oss.ari4java.tools.RestException; -import ch.loway.oss.ari4java.tools.AriCallback; -import ch.loway.oss.ari4java.tools.HttpParam; -import ch.loway.oss.ari4java.tools.HttpResponse; -import com.fasterxml.jackson.core.type.TypeReference; -import ch.loway.oss.ari4java.generated.ari_3_0_0.models.*; - -/********************************************************** - * - * Generated by: Apis - *********************************************************/ - - -public class ActionEvents_impl_ari_3_0_0 extends BaseAriAction implements ActionEvents { -/********************************************************** - * Events from Asterisk to applications - * - * WebSocket connection for events. - *********************************************************/ -private void buildEventWebsocket(String app, boolean subscribeAll) { -reset(); -url = "/events"; -method = "GET"; -lParamQuery.add( HttpParam.build( "app", app) ); -lParamQuery.add( HttpParam.build( "subscribeAll", subscribeAll) ); -wsUpgrade = true; -} - -@Override -public Message eventWebsocket(String app, boolean subscribeAll) throws RestException { -throw new RestException("No synchronous operation on WebSocket"); -} - -@Override -public void eventWebsocket(String app, boolean subscribeAll, AriCallback callback) { -buildEventWebsocket(app, subscribeAll); -httpActionAsync(callback, Message_impl_ari_3_0_0.class); -} - -/********************************************************** - * Stasis application user events - * - * Generate a user event. - *********************************************************/ -private void buildUserEvent(String eventName, String application, String source, Map variables) { -reset(); -url = "/events/user/" + eventName + ""; -method = "POST"; -lParamQuery.add( HttpParam.build( "application", application) ); -lParamQuery.add( HttpParam.build( "source", source) ); -lParamBody.addAll( HttpParam.build( "variables", variables) ); -lE.add( HttpResponse.build( 404, "Application does not exist.") ); -lE.add( HttpResponse.build( 422, "Event source not found.") ); -lE.add( HttpResponse.build( 400, "Invalid even tsource URI or userevent data.") ); -} - -@Override -public void userEvent(String eventName, String application, String source, Map variables) throws RestException { -buildUserEvent(eventName, application, source, variables); -String json = httpActionSync(); -} - -@Override -public void userEvent(String eventName, String application, String source, Map variables, AriCallback callback) { -buildUserEvent(eventName, application, source, variables); -httpActionAsync(callback); -} - -/********************************************************** - * WebSocket connection for events. - * - * - * @since ari_0_0_1 - *********************************************************/ -public Message eventWebsocket(String app) throws RestException{ - throw new UnsupportedOperationException("Method availble from ..."); -}; - -/********************************************************** - * - * - * @since ari_0_0_1 - *********************************************************/ -public void eventWebsocket(String app, AriCallback callback){ - throw new UnsupportedOperationException("Method availble from ..."); -}; - -}; - diff --git a/classes/ch/loway/oss/ari4java/generated/ari_3_0_0/actions/ActionPlaybacks_impl_ari_3_0_0.java b/classes/ch/loway/oss/ari4java/generated/ari_3_0_0/actions/ActionPlaybacks_impl_ari_3_0_0.java deleted file mode 100644 index be9cb045..00000000 --- a/classes/ch/loway/oss/ari4java/generated/ari_3_0_0/actions/ActionPlaybacks_impl_ari_3_0_0.java +++ /dev/null @@ -1,107 +0,0 @@ -package ch.loway.oss.ari4java.generated.ari_3_0_0.actions; - -// ---------------------------------------------------- -// THIS CLASS WAS GENERATED AUTOMATICALLY -// PLEASE DO NOT EDIT -// Generated on: Tue Dec 19 09:55:49 CET 2017 -// ---------------------------------------------------- - -import ch.loway.oss.ari4java.generated.*; -import java.util.Date; -import java.util.List; -import java.util.Map; -import java.util.ArrayList; -import ch.loway.oss.ari4java.tools.BaseAriAction; -import ch.loway.oss.ari4java.tools.RestException; -import ch.loway.oss.ari4java.tools.AriCallback; -import ch.loway.oss.ari4java.tools.HttpParam; -import ch.loway.oss.ari4java.tools.HttpResponse; -import com.fasterxml.jackson.core.type.TypeReference; -import ch.loway.oss.ari4java.generated.ari_3_0_0.models.*; - -/********************************************************** - * - * Generated by: Apis - *********************************************************/ - - -public class ActionPlaybacks_impl_ari_3_0_0 extends BaseAriAction implements ActionPlaybacks { -/********************************************************** - * Control object for a playback operation. - * - * Get a playback's details. - *********************************************************/ -private void buildGet(String playbackId) { -reset(); -url = "/playbacks/" + playbackId + ""; -method = "GET"; -lE.add( HttpResponse.build( 404, "The playback cannot be found") ); -} - -@Override -public Playback get(String playbackId) throws RestException { -buildGet(playbackId); -String json = httpActionSync(); -return deserializeJson( json, Playback_impl_ari_3_0_0.class ); -} - -@Override -public void get(String playbackId, AriCallback callback) { -buildGet(playbackId); -httpActionAsync(callback, Playback_impl_ari_3_0_0.class); -} - -/********************************************************** - * Control object for a playback operation. - * - * Stop a playback. - *********************************************************/ -private void buildStop(String playbackId) { -reset(); -url = "/playbacks/" + playbackId + ""; -method = "DELETE"; -lE.add( HttpResponse.build( 404, "The playback cannot be found") ); -} - -@Override -public void stop(String playbackId) throws RestException { -buildStop(playbackId); -String json = httpActionSync(); -} - -@Override -public void stop(String playbackId, AriCallback callback) { -buildStop(playbackId); -httpActionAsync(callback); -} - -/********************************************************** - * Control object for a playback operation. - * - * Control a playback. - *********************************************************/ -private void buildControl(String playbackId, String operation) { -reset(); -url = "/playbacks/" + playbackId + "/control"; -method = "POST"; -lParamQuery.add( HttpParam.build( "operation", operation) ); -lE.add( HttpResponse.build( 400, "The provided operation parameter was invalid") ); -lE.add( HttpResponse.build( 404, "The playback cannot be found") ); -lE.add( HttpResponse.build( 409, "The operation cannot be performed in the playback's current state") ); -} - -@Override -public void control(String playbackId, String operation) throws RestException { -buildControl(playbackId, operation); -String json = httpActionSync(); -} - -@Override -public void control(String playbackId, String operation, AriCallback callback) { -buildControl(playbackId, operation); -httpActionAsync(callback); -} - -/** No missing signatures from interface */ -}; - diff --git a/classes/ch/loway/oss/ari4java/generated/ari_3_0_0/actions/ActionRecordings_impl_ari_3_0_0.java b/classes/ch/loway/oss/ari4java/generated/ari_3_0_0/actions/ActionRecordings_impl_ari_3_0_0.java deleted file mode 100644 index 90fdb18a..00000000 --- a/classes/ch/loway/oss/ari4java/generated/ari_3_0_0/actions/ActionRecordings_impl_ari_3_0_0.java +++ /dev/null @@ -1,333 +0,0 @@ -package ch.loway.oss.ari4java.generated.ari_3_0_0.actions; - -// ---------------------------------------------------- -// THIS CLASS WAS GENERATED AUTOMATICALLY -// PLEASE DO NOT EDIT -// Generated on: Tue Dec 19 09:55:49 CET 2017 -// ---------------------------------------------------- - -import ch.loway.oss.ari4java.generated.*; -import java.util.Date; -import java.util.List; -import java.util.Map; -import java.util.ArrayList; -import ch.loway.oss.ari4java.tools.BaseAriAction; -import ch.loway.oss.ari4java.tools.RestException; -import ch.loway.oss.ari4java.tools.AriCallback; -import ch.loway.oss.ari4java.tools.HttpParam; -import ch.loway.oss.ari4java.tools.HttpResponse; -import com.fasterxml.jackson.core.type.TypeReference; -import ch.loway.oss.ari4java.generated.ari_3_0_0.models.*; - -/********************************************************** - * - * Generated by: Apis - *********************************************************/ - - -public class ActionRecordings_impl_ari_3_0_0 extends BaseAriAction implements ActionRecordings { -/********************************************************** - * A recording that is in progress - * - * List live recordings. - *********************************************************/ -private void buildGetLive(String recordingName) { -reset(); -url = "/recordings/live/" + recordingName + ""; -method = "GET"; -lE.add( HttpResponse.build( 404, "Recording not found") ); -} - -@Override -public LiveRecording getLive(String recordingName) throws RestException { -buildGetLive(recordingName); -String json = httpActionSync(); -return deserializeJson( json, LiveRecording_impl_ari_3_0_0.class ); -} - -@Override -public void getLive(String recordingName, AriCallback callback) { -buildGetLive(recordingName); -httpActionAsync(callback, LiveRecording_impl_ari_3_0_0.class); -} - -/********************************************************** - * A recording that is in progress - * - * Stop a live recording and discard it. - *********************************************************/ -private void buildCancel(String recordingName) { -reset(); -url = "/recordings/live/" + recordingName + ""; -method = "DELETE"; -lE.add( HttpResponse.build( 404, "Recording not found") ); -} - -@Override -public void cancel(String recordingName) throws RestException { -buildCancel(recordingName); -String json = httpActionSync(); -} - -@Override -public void cancel(String recordingName, AriCallback callback) { -buildCancel(recordingName); -httpActionAsync(callback); -} - -/********************************************************** - * - * - * Mute a live recording. - * Muting a recording suspends silence detection, which will be restarted when the recording is unmuted. - *********************************************************/ -private void buildMute(String recordingName) { -reset(); -url = "/recordings/live/" + recordingName + "/mute"; -method = "POST"; -lE.add( HttpResponse.build( 404, "Recording not found") ); -lE.add( HttpResponse.build( 409, "Recording not in session") ); -} - -@Override -public void mute(String recordingName) throws RestException { -buildMute(recordingName); -String json = httpActionSync(); -} - -@Override -public void mute(String recordingName, AriCallback callback) { -buildMute(recordingName); -httpActionAsync(callback); -} - -/********************************************************** - * - * - * Unmute a live recording. - *********************************************************/ -private void buildUnmute(String recordingName) { -reset(); -url = "/recordings/live/" + recordingName + "/mute"; -method = "DELETE"; -lE.add( HttpResponse.build( 404, "Recording not found") ); -lE.add( HttpResponse.build( 409, "Recording not in session") ); -} - -@Override -public void unmute(String recordingName) throws RestException { -buildUnmute(recordingName); -String json = httpActionSync(); -} - -@Override -public void unmute(String recordingName, AriCallback callback) { -buildUnmute(recordingName); -httpActionAsync(callback); -} - -/********************************************************** - * - * - * Pause a live recording. - * Pausing a recording suspends silence detection, which will be restarted when the recording is unpaused. Paused time is not included in the accounting for maxDurationSeconds. - *********************************************************/ -private void buildPause(String recordingName) { -reset(); -url = "/recordings/live/" + recordingName + "/pause"; -method = "POST"; -lE.add( HttpResponse.build( 404, "Recording not found") ); -lE.add( HttpResponse.build( 409, "Recording not in session") ); -} - -@Override -public void pause(String recordingName) throws RestException { -buildPause(recordingName); -String json = httpActionSync(); -} - -@Override -public void pause(String recordingName, AriCallback callback) { -buildPause(recordingName); -httpActionAsync(callback); -} - -/********************************************************** - * - * - * Unpause a live recording. - *********************************************************/ -private void buildUnpause(String recordingName) { -reset(); -url = "/recordings/live/" + recordingName + "/pause"; -method = "DELETE"; -lE.add( HttpResponse.build( 404, "Recording not found") ); -lE.add( HttpResponse.build( 409, "Recording not in session") ); -} - -@Override -public void unpause(String recordingName) throws RestException { -buildUnpause(recordingName); -String json = httpActionSync(); -} - -@Override -public void unpause(String recordingName, AriCallback callback) { -buildUnpause(recordingName); -httpActionAsync(callback); -} - -/********************************************************** - * - * - * Stop a live recording and store it. - *********************************************************/ -private void buildStop(String recordingName) { -reset(); -url = "/recordings/live/" + recordingName + "/stop"; -method = "POST"; -lE.add( HttpResponse.build( 404, "Recording not found") ); -} - -@Override -public void stop(String recordingName) throws RestException { -buildStop(recordingName); -String json = httpActionSync(); -} - -@Override -public void stop(String recordingName, AriCallback callback) { -buildStop(recordingName); -httpActionAsync(callback); -} - -/********************************************************** - * Recordings - * - * List recordings that are complete. - *********************************************************/ -private void buildListStored() { -reset(); -url = "/recordings/stored"; -method = "GET"; -} - -@Override -public List listStored() throws RestException { -buildListStored(); -String json = httpActionSync(); -return deserializeJsonAsAbstractList( json, - new TypeReference>() {} ); -} - -@Override -public void listStored(AriCallback> callback) { -buildListStored(); -httpActionAsync(callback, new TypeReference>() {}); -} - -/********************************************************** - * Individual recording - * - * Get a stored recording's details. - *********************************************************/ -private void buildGetStored(String recordingName) { -reset(); -url = "/recordings/stored/" + recordingName + ""; -method = "GET"; -lE.add( HttpResponse.build( 404, "Recording not found") ); -} - -@Override -public StoredRecording getStored(String recordingName) throws RestException { -buildGetStored(recordingName); -String json = httpActionSync(); -return deserializeJson( json, StoredRecording_impl_ari_3_0_0.class ); -} - -@Override -public void getStored(String recordingName, AriCallback callback) { -buildGetStored(recordingName); -httpActionAsync(callback, StoredRecording_impl_ari_3_0_0.class); -} - -/********************************************************** - * Individual recording - * - * Delete a stored recording. - *********************************************************/ -private void buildDeleteStored(String recordingName) { -reset(); -url = "/recordings/stored/" + recordingName + ""; -method = "DELETE"; -lE.add( HttpResponse.build( 404, "Recording not found") ); -} - -@Override -public void deleteStored(String recordingName) throws RestException { -buildDeleteStored(recordingName); -String json = httpActionSync(); -} - -@Override -public void deleteStored(String recordingName, AriCallback callback) { -buildDeleteStored(recordingName); -httpActionAsync(callback); -} - -/********************************************************** - * Copy an individual recording - * - * Copy a stored recording. - *********************************************************/ -private void buildCopyStored(String recordingName, String destinationRecordingName) { -reset(); -url = "/recordings/stored/" + recordingName + "/copy"; -method = "POST"; -lParamQuery.add( HttpParam.build( "destinationRecordingName", destinationRecordingName) ); -lE.add( HttpResponse.build( 404, "Recording not found") ); -lE.add( HttpResponse.build( 409, "A recording with the same name already exists on the system") ); -} - -@Override -public StoredRecording copyStored(String recordingName, String destinationRecordingName) throws RestException { -buildCopyStored(recordingName, destinationRecordingName); -String json = httpActionSync(); -return deserializeJson( json, StoredRecording_impl_ari_3_0_0.class ); -} - -@Override -public void copyStored(String recordingName, String destinationRecordingName, AriCallback callback) { -buildCopyStored(recordingName, destinationRecordingName); -httpActionAsync(callback, StoredRecording_impl_ari_3_0_0.class); -} - -/********************************************************** - * The actual file associated with the stored recording - * - * Get the file associated with the stored recording. - *********************************************************/ -private void buildGetStoredFile(String recordingName) { -reset(); -url = "/recordings/stored/" + recordingName + "/file"; -method = "GET"; -lE.add( HttpResponse.build( 403, "The recording file could not be opened") ); -lE.add( HttpResponse.build( 404, "Recording not found") ); -} - -@Override -public byte[] getStoredFile(String recordingName) throws RestException { -buildGetStoredFile(recordingName); -String json = httpActionSync(); -return deserializeJson( json, byte[].class ); -} - -@Override -public void getStoredFile(String recordingName, AriCallback callback) { -buildGetStoredFile(recordingName); -httpActionAsync(callback, byte[].class); -} - -/** No missing signatures from interface */ -}; - diff --git a/classes/ch/loway/oss/ari4java/generated/ari_3_0_0/actions/ActionSounds_impl_ari_3_0_0.java b/classes/ch/loway/oss/ari4java/generated/ari_3_0_0/actions/ActionSounds_impl_ari_3_0_0.java deleted file mode 100644 index 9476aeea..00000000 --- a/classes/ch/loway/oss/ari4java/generated/ari_3_0_0/actions/ActionSounds_impl_ari_3_0_0.java +++ /dev/null @@ -1,82 +0,0 @@ -package ch.loway.oss.ari4java.generated.ari_3_0_0.actions; - -// ---------------------------------------------------- -// THIS CLASS WAS GENERATED AUTOMATICALLY -// PLEASE DO NOT EDIT -// Generated on: Tue Dec 19 09:55:49 CET 2017 -// ---------------------------------------------------- - -import ch.loway.oss.ari4java.generated.*; -import java.util.Date; -import java.util.List; -import java.util.Map; -import java.util.ArrayList; -import ch.loway.oss.ari4java.tools.BaseAriAction; -import ch.loway.oss.ari4java.tools.RestException; -import ch.loway.oss.ari4java.tools.AriCallback; -import ch.loway.oss.ari4java.tools.HttpParam; -import ch.loway.oss.ari4java.tools.HttpResponse; -import com.fasterxml.jackson.core.type.TypeReference; -import ch.loway.oss.ari4java.generated.ari_3_0_0.models.*; - -/********************************************************** - * - * Generated by: Apis - *********************************************************/ - - -public class ActionSounds_impl_ari_3_0_0 extends BaseAriAction implements ActionSounds { -/********************************************************** - * Sounds - * - * List all sounds. - *********************************************************/ -private void buildList(String lang, String format) { -reset(); -url = "/sounds"; -method = "GET"; -lParamQuery.add( HttpParam.build( "lang", lang) ); -lParamQuery.add( HttpParam.build( "format", format) ); -} - -@Override -public List list(String lang, String format) throws RestException { -buildList(lang, format); -String json = httpActionSync(); -return deserializeJsonAsAbstractList( json, - new TypeReference>() {} ); -} - -@Override -public void list(String lang, String format, AriCallback> callback) { -buildList(lang, format); -httpActionAsync(callback, new TypeReference>() {}); -} - -/********************************************************** - * Individual sound - * - * Get a sound's details. - *********************************************************/ -private void buildGet(String soundId) { -reset(); -url = "/sounds/" + soundId + ""; -method = "GET"; -} - -@Override -public Sound get(String soundId) throws RestException { -buildGet(soundId); -String json = httpActionSync(); -return deserializeJson( json, Sound_impl_ari_3_0_0.class ); -} - -@Override -public void get(String soundId, AriCallback callback) { -buildGet(soundId); -httpActionAsync(callback, Sound_impl_ari_3_0_0.class); -} - -/** No missing signatures from interface */ -}; - diff --git a/classes/ch/loway/oss/ari4java/generated/ari_3_0_0/models/ApplicationReplaced_impl_ari_3_0_0.java b/classes/ch/loway/oss/ari4java/generated/ari_3_0_0/models/ApplicationReplaced_impl_ari_3_0_0.java deleted file mode 100644 index fa257066..00000000 --- a/classes/ch/loway/oss/ari4java/generated/ari_3_0_0/models/ApplicationReplaced_impl_ari_3_0_0.java +++ /dev/null @@ -1,28 +0,0 @@ -package ch.loway.oss.ari4java.generated.ari_3_0_0.models; - -// ---------------------------------------------------- -// THIS CLASS WAS GENERATED AUTOMATICALLY -// PLEASE DO NOT EDIT -// Generated on: Tue Dec 19 09:55:49 CET 2017 -// ---------------------------------------------------- - -import ch.loway.oss.ari4java.generated.*; -import com.fasterxml.jackson.databind.annotation.JsonDeserialize; -import java.util.Date; -import java.util.List; -import java.util.Map; - -/********************************************************** - * Notification that another WebSocket has taken over for an application. - * - * An application may only be subscribed to by a single WebSocket at a time. If multiple WebSockets attempt to subscribe to the same application, the newer WebSocket wins, and the older one receives this event. - * - * Defined in file: events.json - * Generated by: Model - *********************************************************/ - -public class ApplicationReplaced_impl_ari_3_0_0 extends Event_impl_ari_3_0_0 implements ApplicationReplaced, java.io.Serializable { -private static final long serialVersionUID = 1L; -/** No missing signatures from interface */ -} - diff --git a/classes/ch/loway/oss/ari4java/generated/ari_3_0_0/models/Application_impl_ari_3_0_0.java b/classes/ch/loway/oss/ari4java/generated/ari_3_0_0/models/Application_impl_ari_3_0_0.java deleted file mode 100644 index 98efa4e4..00000000 --- a/classes/ch/loway/oss/ari4java/generated/ari_3_0_0/models/Application_impl_ari_3_0_0.java +++ /dev/null @@ -1,81 +0,0 @@ -package ch.loway.oss.ari4java.generated.ari_3_0_0.models; - -// ---------------------------------------------------- -// THIS CLASS WAS GENERATED AUTOMATICALLY -// PLEASE DO NOT EDIT -// Generated on: Tue Dec 19 09:55:49 CET 2017 -// ---------------------------------------------------- - -import ch.loway.oss.ari4java.generated.*; -import com.fasterxml.jackson.databind.annotation.JsonDeserialize; -import java.util.Date; -import java.util.List; -import java.util.Map; - -/********************************************************** - * Details of a Stasis application - * - * Defined in file: applications.json - * Generated by: Model - *********************************************************/ - -public class Application_impl_ari_3_0_0 implements Application, java.io.Serializable { -private static final long serialVersionUID = 1L; - /** Id's for bridges subscribed to. */ - private List bridge_ids; - public List getBridge_ids() { - return bridge_ids; - } - - @JsonDeserialize( contentAs=String.class ) - public void setBridge_ids(List val ) { - bridge_ids = val; - } - - /** Id's for channels subscribed to. */ - private List channel_ids; - public List getChannel_ids() { - return channel_ids; - } - - @JsonDeserialize( contentAs=String.class ) - public void setChannel_ids(List val ) { - channel_ids = val; - } - - /** Names of the devices subscribed to. */ - private List device_names; - public List getDevice_names() { - return device_names; - } - - @JsonDeserialize( contentAs=String.class ) - public void setDevice_names(List val ) { - device_names = val; - } - - /** {tech}/{resource} for endpoints subscribed to. */ - private List endpoint_ids; - public List getEndpoint_ids() { - return endpoint_ids; - } - - @JsonDeserialize( contentAs=String.class ) - public void setEndpoint_ids(List val ) { - endpoint_ids = val; - } - - /** Name of this application */ - private String name; - public String getName() { - return name; - } - - @JsonDeserialize( as=String.class ) - public void setName(String val ) { - name = val; - } - -/** No missing signatures from interface */ -} - diff --git a/classes/ch/loway/oss/ari4java/generated/ari_3_0_0/models/AsteriskInfo_impl_ari_3_0_0.java b/classes/ch/loway/oss/ari4java/generated/ari_3_0_0/models/AsteriskInfo_impl_ari_3_0_0.java deleted file mode 100644 index 60d95389..00000000 --- a/classes/ch/loway/oss/ari4java/generated/ari_3_0_0/models/AsteriskInfo_impl_ari_3_0_0.java +++ /dev/null @@ -1,70 +0,0 @@ -package ch.loway.oss.ari4java.generated.ari_3_0_0.models; - -// ---------------------------------------------------- -// THIS CLASS WAS GENERATED AUTOMATICALLY -// PLEASE DO NOT EDIT -// Generated on: Tue Dec 19 09:55:49 CET 2017 -// ---------------------------------------------------- - -import ch.loway.oss.ari4java.generated.*; -import com.fasterxml.jackson.databind.annotation.JsonDeserialize; -import java.util.Date; -import java.util.List; -import java.util.Map; - -/********************************************************** - * Asterisk system information - * - * Defined in file: asterisk.json - * Generated by: Model - *********************************************************/ - -public class AsteriskInfo_impl_ari_3_0_0 implements AsteriskInfo, java.io.Serializable { -private static final long serialVersionUID = 1L; - /** Info about how Asterisk was built */ - private BuildInfo build; - public BuildInfo getBuild() { - return build; - } - - @JsonDeserialize( as=BuildInfo_impl_ari_3_0_0.class ) - public void setBuild(BuildInfo val ) { - build = val; - } - - /** Info about Asterisk configuration */ - private ConfigInfo config; - public ConfigInfo getConfig() { - return config; - } - - @JsonDeserialize( as=ConfigInfo_impl_ari_3_0_0.class ) - public void setConfig(ConfigInfo val ) { - config = val; - } - - /** Info about Asterisk status */ - private StatusInfo status; - public StatusInfo getStatus() { - return status; - } - - @JsonDeserialize( as=StatusInfo_impl_ari_3_0_0.class ) - public void setStatus(StatusInfo val ) { - status = val; - } - - /** Info about the system running Asterisk */ - private SystemInfo system; - public SystemInfo getSystem() { - return system; - } - - @JsonDeserialize( as=SystemInfo_impl_ari_3_0_0.class ) - public void setSystem(SystemInfo val ) { - system = val; - } - -/** No missing signatures from interface */ -} - diff --git a/classes/ch/loway/oss/ari4java/generated/ari_3_0_0/models/BridgeAttendedTransfer_impl_ari_3_0_0.java b/classes/ch/loway/oss/ari4java/generated/ari_3_0_0/models/BridgeAttendedTransfer_impl_ari_3_0_0.java deleted file mode 100644 index ed6688a3..00000000 --- a/classes/ch/loway/oss/ari4java/generated/ari_3_0_0/models/BridgeAttendedTransfer_impl_ari_3_0_0.java +++ /dev/null @@ -1,202 +0,0 @@ -package ch.loway.oss.ari4java.generated.ari_3_0_0.models; - -// ---------------------------------------------------- -// THIS CLASS WAS GENERATED AUTOMATICALLY -// PLEASE DO NOT EDIT -// Generated on: Tue Dec 19 09:55:49 CET 2017 -// ---------------------------------------------------- - -import ch.loway.oss.ari4java.generated.*; -import com.fasterxml.jackson.databind.annotation.JsonDeserialize; -import java.util.Date; -import java.util.List; -import java.util.Map; - -/********************************************************** - * Notification that an attended transfer has occurred. - * - * Defined in file: events.json - * Generated by: Model - *********************************************************/ - -public class BridgeAttendedTransfer_impl_ari_3_0_0 extends Event_impl_ari_3_0_0 implements BridgeAttendedTransfer, java.io.Serializable { -private static final long serialVersionUID = 1L; - /** Application that has been transferred into */ - private String destination_application; - public String getDestination_application() { - return destination_application; - } - - @JsonDeserialize( as=String.class ) - public void setDestination_application(String val ) { - destination_application = val; - } - - /** Bridge that survived the merge result */ - private String destination_bridge; - public String getDestination_bridge() { - return destination_bridge; - } - - @JsonDeserialize( as=String.class ) - public void setDestination_bridge(String val ) { - destination_bridge = val; - } - - /** First leg of a link transfer result */ - private Channel destination_link_first_leg; - public Channel getDestination_link_first_leg() { - return destination_link_first_leg; - } - - @JsonDeserialize( as=Channel_impl_ari_3_0_0.class ) - public void setDestination_link_first_leg(Channel val ) { - destination_link_first_leg = val; - } - - /** Second leg of a link transfer result */ - private Channel destination_link_second_leg; - public Channel getDestination_link_second_leg() { - return destination_link_second_leg; - } - - @JsonDeserialize( as=Channel_impl_ari_3_0_0.class ) - public void setDestination_link_second_leg(Channel val ) { - destination_link_second_leg = val; - } - - /** Bridge that survived the threeway result */ - private Bridge destination_threeway_bridge; - public Bridge getDestination_threeway_bridge() { - return destination_threeway_bridge; - } - - @JsonDeserialize( as=Bridge_impl_ari_3_0_0.class ) - public void setDestination_threeway_bridge(Bridge val ) { - destination_threeway_bridge = val; - } - - /** Transferer channel that survived the threeway result */ - private Channel destination_threeway_channel; - public Channel getDestination_threeway_channel() { - return destination_threeway_channel; - } - - @JsonDeserialize( as=Channel_impl_ari_3_0_0.class ) - public void setDestination_threeway_channel(Channel val ) { - destination_threeway_channel = val; - } - - /** How the transfer was accomplished */ - private String destination_type; - public String getDestination_type() { - return destination_type; - } - - @JsonDeserialize( as=String.class ) - public void setDestination_type(String val ) { - destination_type = val; - } - - /** Whether the transfer was externally initiated or not */ - private boolean is_external; - public boolean getIs_external() { - return is_external; - } - - @JsonDeserialize( as=boolean.class ) - public void setIs_external(boolean val ) { - is_external = val; - } - - /** The channel that is replacing transferer_first_leg in the swap */ - private Channel replace_channel; - public Channel getReplace_channel() { - return replace_channel; - } - - @JsonDeserialize( as=Channel_impl_ari_3_0_0.class ) - public void setReplace_channel(Channel val ) { - replace_channel = val; - } - - /** The result of the transfer attempt */ - private String result; - public String getResult() { - return result; - } - - @JsonDeserialize( as=String.class ) - public void setResult(String val ) { - result = val; - } - - /** The channel that is being transferred to */ - private Channel transfer_target; - public Channel getTransfer_target() { - return transfer_target; - } - - @JsonDeserialize( as=Channel_impl_ari_3_0_0.class ) - public void setTransfer_target(Channel val ) { - transfer_target = val; - } - - /** The channel that is being transferred */ - private Channel transferee; - public Channel getTransferee() { - return transferee; - } - - @JsonDeserialize( as=Channel_impl_ari_3_0_0.class ) - public void setTransferee(Channel val ) { - transferee = val; - } - - /** First leg of the transferer */ - private Channel transferer_first_leg; - public Channel getTransferer_first_leg() { - return transferer_first_leg; - } - - @JsonDeserialize( as=Channel_impl_ari_3_0_0.class ) - public void setTransferer_first_leg(Channel val ) { - transferer_first_leg = val; - } - - /** Bridge the transferer first leg is in */ - private Bridge transferer_first_leg_bridge; - public Bridge getTransferer_first_leg_bridge() { - return transferer_first_leg_bridge; - } - - @JsonDeserialize( as=Bridge_impl_ari_3_0_0.class ) - public void setTransferer_first_leg_bridge(Bridge val ) { - transferer_first_leg_bridge = val; - } - - /** Second leg of the transferer */ - private Channel transferer_second_leg; - public Channel getTransferer_second_leg() { - return transferer_second_leg; - } - - @JsonDeserialize( as=Channel_impl_ari_3_0_0.class ) - public void setTransferer_second_leg(Channel val ) { - transferer_second_leg = val; - } - - /** Bridge the transferer second leg is in */ - private Bridge transferer_second_leg_bridge; - public Bridge getTransferer_second_leg_bridge() { - return transferer_second_leg_bridge; - } - - @JsonDeserialize( as=Bridge_impl_ari_3_0_0.class ) - public void setTransferer_second_leg_bridge(Bridge val ) { - transferer_second_leg_bridge = val; - } - -/** No missing signatures from interface */ -} - diff --git a/classes/ch/loway/oss/ari4java/generated/ari_3_0_0/models/BridgeBlindTransfer_impl_ari_3_0_0.java b/classes/ch/loway/oss/ari4java/generated/ari_3_0_0/models/BridgeBlindTransfer_impl_ari_3_0_0.java deleted file mode 100644 index e5791816..00000000 --- a/classes/ch/loway/oss/ari4java/generated/ari_3_0_0/models/BridgeBlindTransfer_impl_ari_3_0_0.java +++ /dev/null @@ -1,114 +0,0 @@ -package ch.loway.oss.ari4java.generated.ari_3_0_0.models; - -// ---------------------------------------------------- -// THIS CLASS WAS GENERATED AUTOMATICALLY -// PLEASE DO NOT EDIT -// Generated on: Tue Dec 19 09:55:49 CET 2017 -// ---------------------------------------------------- - -import ch.loway.oss.ari4java.generated.*; -import com.fasterxml.jackson.databind.annotation.JsonDeserialize; -import java.util.Date; -import java.util.List; -import java.util.Map; - -/********************************************************** - * Notification that a blind transfer has occurred. - * - * Defined in file: events.json - * Generated by: Model - *********************************************************/ - -public class BridgeBlindTransfer_impl_ari_3_0_0 extends Event_impl_ari_3_0_0 implements BridgeBlindTransfer, java.io.Serializable { -private static final long serialVersionUID = 1L; - /** The bridge being transferred */ - private Bridge bridge; - public Bridge getBridge() { - return bridge; - } - - @JsonDeserialize( as=Bridge_impl_ari_3_0_0.class ) - public void setBridge(Bridge val ) { - bridge = val; - } - - /** The channel performing the blind transfer */ - private Channel channel; - public Channel getChannel() { - return channel; - } - - @JsonDeserialize( as=Channel_impl_ari_3_0_0.class ) - public void setChannel(Channel val ) { - channel = val; - } - - /** The context transferred to */ - private String context; - public String getContext() { - return context; - } - - @JsonDeserialize( as=String.class ) - public void setContext(String val ) { - context = val; - } - - /** The extension transferred to */ - private String exten; - public String getExten() { - return exten; - } - - @JsonDeserialize( as=String.class ) - public void setExten(String val ) { - exten = val; - } - - /** Whether the transfer was externally initiated or not */ - private boolean is_external; - public boolean getIs_external() { - return is_external; - } - - @JsonDeserialize( as=boolean.class ) - public void setIs_external(boolean val ) { - is_external = val; - } - - /** The channel that is replacing transferer when the transferee(s) can not be transferred directly */ - private Channel replace_channel; - public Channel getReplace_channel() { - return replace_channel; - } - - @JsonDeserialize( as=Channel_impl_ari_3_0_0.class ) - public void setReplace_channel(Channel val ) { - replace_channel = val; - } - - /** The result of the transfer attempt */ - private String result; - public String getResult() { - return result; - } - - @JsonDeserialize( as=String.class ) - public void setResult(String val ) { - result = val; - } - - /** The channel that is being transferred */ - private Channel transferee; - public Channel getTransferee() { - return transferee; - } - - @JsonDeserialize( as=Channel_impl_ari_3_0_0.class ) - public void setTransferee(Channel val ) { - transferee = val; - } - -/** No missing signatures from interface */ -} - diff --git a/classes/ch/loway/oss/ari4java/generated/ari_3_0_0/models/BridgeCreated_impl_ari_3_0_0.java b/classes/ch/loway/oss/ari4java/generated/ari_3_0_0/models/BridgeCreated_impl_ari_3_0_0.java deleted file mode 100644 index f3812097..00000000 --- a/classes/ch/loway/oss/ari4java/generated/ari_3_0_0/models/BridgeCreated_impl_ari_3_0_0.java +++ /dev/null @@ -1,37 +0,0 @@ -package ch.loway.oss.ari4java.generated.ari_3_0_0.models; - -// ---------------------------------------------------- -// THIS CLASS WAS GENERATED AUTOMATICALLY -// PLEASE DO NOT EDIT -// Generated on: Tue Dec 19 09:55:49 CET 2017 -// ---------------------------------------------------- - -import ch.loway.oss.ari4java.generated.*; -import com.fasterxml.jackson.databind.annotation.JsonDeserialize; -import java.util.Date; -import java.util.List; -import java.util.Map; - -/********************************************************** - * Notification that a bridge has been created. - * - * Defined in file: events.json - * Generated by: Model - *********************************************************/ - -public class BridgeCreated_impl_ari_3_0_0 extends Event_impl_ari_3_0_0 implements BridgeCreated, java.io.Serializable { -private static final long serialVersionUID = 1L; - /** */ - private Bridge bridge; - public Bridge getBridge() { - return bridge; - } - - @JsonDeserialize( as=Bridge_impl_ari_3_0_0.class ) - public void setBridge(Bridge val ) { - bridge = val; - } - -/** No missing signatures from interface */ -} - diff --git a/classes/ch/loway/oss/ari4java/generated/ari_3_0_0/models/BridgeDestroyed_impl_ari_3_0_0.java b/classes/ch/loway/oss/ari4java/generated/ari_3_0_0/models/BridgeDestroyed_impl_ari_3_0_0.java deleted file mode 100644 index eb06b33a..00000000 --- a/classes/ch/loway/oss/ari4java/generated/ari_3_0_0/models/BridgeDestroyed_impl_ari_3_0_0.java +++ /dev/null @@ -1,37 +0,0 @@ -package ch.loway.oss.ari4java.generated.ari_3_0_0.models; - -// ---------------------------------------------------- -// THIS CLASS WAS GENERATED AUTOMATICALLY -// PLEASE DO NOT EDIT -// Generated on: Tue Dec 19 09:55:49 CET 2017 -// ---------------------------------------------------- - -import ch.loway.oss.ari4java.generated.*; -import com.fasterxml.jackson.databind.annotation.JsonDeserialize; -import java.util.Date; -import java.util.List; -import java.util.Map; - -/********************************************************** - * Notification that a bridge has been destroyed. - * - * Defined in file: events.json - * Generated by: Model - *********************************************************/ - -public class BridgeDestroyed_impl_ari_3_0_0 extends Event_impl_ari_3_0_0 implements BridgeDestroyed, java.io.Serializable { -private static final long serialVersionUID = 1L; - /** */ - private Bridge bridge; - public Bridge getBridge() { - return bridge; - } - - @JsonDeserialize( as=Bridge_impl_ari_3_0_0.class ) - public void setBridge(Bridge val ) { - bridge = val; - } - -/** No missing signatures from interface */ -} - diff --git a/classes/ch/loway/oss/ari4java/generated/ari_3_0_0/models/BridgeMerged_impl_ari_3_0_0.java b/classes/ch/loway/oss/ari4java/generated/ari_3_0_0/models/BridgeMerged_impl_ari_3_0_0.java deleted file mode 100644 index 029e9649..00000000 --- a/classes/ch/loway/oss/ari4java/generated/ari_3_0_0/models/BridgeMerged_impl_ari_3_0_0.java +++ /dev/null @@ -1,48 +0,0 @@ -package ch.loway.oss.ari4java.generated.ari_3_0_0.models; - -// ---------------------------------------------------- -// THIS CLASS WAS GENERATED AUTOMATICALLY -// PLEASE DO NOT EDIT -// Generated on: Tue Dec 19 09:55:49 CET 2017 -// ---------------------------------------------------- - -import ch.loway.oss.ari4java.generated.*; -import com.fasterxml.jackson.databind.annotation.JsonDeserialize; -import java.util.Date; -import java.util.List; -import java.util.Map; - -/********************************************************** - * Notification that one bridge has merged into another. - * - * Defined in file: events.json - * Generated by: Model - *********************************************************/ - -public class BridgeMerged_impl_ari_3_0_0 extends Event_impl_ari_3_0_0 implements BridgeMerged, java.io.Serializable { -private static final long serialVersionUID = 1L; - /** */ - private Bridge bridge; - public Bridge getBridge() { - return bridge; - } - - @JsonDeserialize( as=Bridge_impl_ari_3_0_0.class ) - public void setBridge(Bridge val ) { - bridge = val; - } - - /** */ - private Bridge bridge_from; - public Bridge getBridge_from() { - return bridge_from; - } - - @JsonDeserialize( as=Bridge_impl_ari_3_0_0.class ) - public void setBridge_from(Bridge val ) { - bridge_from = val; - } - -/** No missing signatures from interface */ -} - diff --git a/classes/ch/loway/oss/ari4java/generated/ari_3_0_0/models/BridgeVideoSourceChanged_impl_ari_3_0_0.java b/classes/ch/loway/oss/ari4java/generated/ari_3_0_0/models/BridgeVideoSourceChanged_impl_ari_3_0_0.java deleted file mode 100644 index 49adcaca..00000000 --- a/classes/ch/loway/oss/ari4java/generated/ari_3_0_0/models/BridgeVideoSourceChanged_impl_ari_3_0_0.java +++ /dev/null @@ -1,48 +0,0 @@ -package ch.loway.oss.ari4java.generated.ari_3_0_0.models; - -// ---------------------------------------------------- -// THIS CLASS WAS GENERATED AUTOMATICALLY -// PLEASE DO NOT EDIT -// Generated on: Tue Dec 19 09:55:49 CET 2017 -// ---------------------------------------------------- - -import ch.loway.oss.ari4java.generated.*; -import com.fasterxml.jackson.databind.annotation.JsonDeserialize; -import java.util.Date; -import java.util.List; -import java.util.Map; - -/********************************************************** - * Notification that the source of video in a bridge has changed. - * - * Defined in file: events.json - * Generated by: Model - *********************************************************/ - -public class BridgeVideoSourceChanged_impl_ari_3_0_0 extends Event_impl_ari_3_0_0 implements BridgeVideoSourceChanged, java.io.Serializable { -private static final long serialVersionUID = 1L; - /** */ - private Bridge bridge; - public Bridge getBridge() { - return bridge; - } - - @JsonDeserialize( as=Bridge_impl_ari_3_0_0.class ) - public void setBridge(Bridge val ) { - bridge = val; - } - - /** */ - private String old_video_source_id; - public String getOld_video_source_id() { - return old_video_source_id; - } - - @JsonDeserialize( as=String.class ) - public void setOld_video_source_id(String val ) { - old_video_source_id = val; - } - -/** No missing signatures from interface */ -} - diff --git a/classes/ch/loway/oss/ari4java/generated/ari_3_0_0/models/Bridge_impl_ari_3_0_0.java b/classes/ch/loway/oss/ari4java/generated/ari_3_0_0/models/Bridge_impl_ari_3_0_0.java deleted file mode 100644 index 73a2903a..00000000 --- a/classes/ch/loway/oss/ari4java/generated/ari_3_0_0/models/Bridge_impl_ari_3_0_0.java +++ /dev/null @@ -1,127 +0,0 @@ -package ch.loway.oss.ari4java.generated.ari_3_0_0.models; - -// ---------------------------------------------------- -// THIS CLASS WAS GENERATED AUTOMATICALLY -// PLEASE DO NOT EDIT -// Generated on: Tue Dec 19 09:55:49 CET 2017 -// ---------------------------------------------------- - -import ch.loway.oss.ari4java.generated.*; -import com.fasterxml.jackson.databind.annotation.JsonDeserialize; -import java.util.Date; -import java.util.List; -import java.util.Map; - -/********************************************************** - * The merging of media from one or more channels. - * - * Everyone on the bridge receives the same audio. - * - * Defined in file: bridges.json - * Generated by: Model - *********************************************************/ - -public class Bridge_impl_ari_3_0_0 implements Bridge, java.io.Serializable { -private static final long serialVersionUID = 1L; - /** Bridging class */ - private String bridge_class; - public String getBridge_class() { - return bridge_class; - } - - @JsonDeserialize( as=String.class ) - public void setBridge_class(String val ) { - bridge_class = val; - } - - /** Type of bridge technology */ - private String bridge_type; - public String getBridge_type() { - return bridge_type; - } - - @JsonDeserialize( as=String.class ) - public void setBridge_type(String val ) { - bridge_type = val; - } - - /** Ids of channels participating in this bridge */ - private List channels; - public List getChannels() { - return channels; - } - - @JsonDeserialize( contentAs=String.class ) - public void setChannels(List val ) { - channels = val; - } - - /** Entity that created the bridge */ - private String creator; - public String getCreator() { - return creator; - } - - @JsonDeserialize( as=String.class ) - public void setCreator(String val ) { - creator = val; - } - - /** Unique identifier for this bridge */ - private String id; - public String getId() { - return id; - } - - @JsonDeserialize( as=String.class ) - public void setId(String val ) { - id = val; - } - - /** Name the creator gave the bridge */ - private String name; - public String getName() { - return name; - } - - @JsonDeserialize( as=String.class ) - public void setName(String val ) { - name = val; - } - - /** Name of the current bridging technology */ - private String technology; - public String getTechnology() { - return technology; - } - - @JsonDeserialize( as=String.class ) - public void setTechnology(String val ) { - technology = val; - } - - /** The video mode the bridge is using. One of 'none', 'talker', or 'single'. */ - private String video_mode; - public String getVideo_mode() { - return video_mode; - } - - @JsonDeserialize( as=String.class ) - public void setVideo_mode(String val ) { - video_mode = val; - } - - /** The ID of the channel that is the source of video in this bridge, if one exists. */ - private String video_source_id; - public String getVideo_source_id() { - return video_source_id; - } - - @JsonDeserialize( as=String.class ) - public void setVideo_source_id(String val ) { - video_source_id = val; - } - -/** No missing signatures from interface */ -} - diff --git a/classes/ch/loway/oss/ari4java/generated/ari_3_0_0/models/BuildInfo_impl_ari_3_0_0.java b/classes/ch/loway/oss/ari4java/generated/ari_3_0_0/models/BuildInfo_impl_ari_3_0_0.java deleted file mode 100644 index 4151ea7a..00000000 --- a/classes/ch/loway/oss/ari4java/generated/ari_3_0_0/models/BuildInfo_impl_ari_3_0_0.java +++ /dev/null @@ -1,92 +0,0 @@ -package ch.loway.oss.ari4java.generated.ari_3_0_0.models; - -// ---------------------------------------------------- -// THIS CLASS WAS GENERATED AUTOMATICALLY -// PLEASE DO NOT EDIT -// Generated on: Tue Dec 19 09:55:49 CET 2017 -// ---------------------------------------------------- - -import ch.loway.oss.ari4java.generated.*; -import com.fasterxml.jackson.databind.annotation.JsonDeserialize; -import java.util.Date; -import java.util.List; -import java.util.Map; - -/********************************************************** - * Info about how Asterisk was built - * - * Defined in file: asterisk.json - * Generated by: Model - *********************************************************/ - -public class BuildInfo_impl_ari_3_0_0 implements BuildInfo, java.io.Serializable { -private static final long serialVersionUID = 1L; - /** Date and time when Asterisk was built. */ - private String date; - public String getDate() { - return date; - } - - @JsonDeserialize( as=String.class ) - public void setDate(String val ) { - date = val; - } - - /** Kernel version Asterisk was built on. */ - private String kernel; - public String getKernel() { - return kernel; - } - - @JsonDeserialize( as=String.class ) - public void setKernel(String val ) { - kernel = val; - } - - /** Machine architecture (x86_64, i686, ppc, etc.) */ - private String machine; - public String getMachine() { - return machine; - } - - @JsonDeserialize( as=String.class ) - public void setMachine(String val ) { - machine = val; - } - - /** Compile time options, or empty string if default. */ - private String options; - public String getOptions() { - return options; - } - - @JsonDeserialize( as=String.class ) - public void setOptions(String val ) { - options = val; - } - - /** OS Asterisk was built on. */ - private String os; - public String getOs() { - return os; - } - - @JsonDeserialize( as=String.class ) - public void setOs(String val ) { - os = val; - } - - /** Username that build Asterisk */ - private String user; - public String getUser() { - return user; - } - - @JsonDeserialize( as=String.class ) - public void setUser(String val ) { - user = val; - } - -/** No missing signatures from interface */ -} - diff --git a/classes/ch/loway/oss/ari4java/generated/ari_3_0_0/models/CallerID_impl_ari_3_0_0.java b/classes/ch/loway/oss/ari4java/generated/ari_3_0_0/models/CallerID_impl_ari_3_0_0.java deleted file mode 100644 index c9678272..00000000 --- a/classes/ch/loway/oss/ari4java/generated/ari_3_0_0/models/CallerID_impl_ari_3_0_0.java +++ /dev/null @@ -1,48 +0,0 @@ -package ch.loway.oss.ari4java.generated.ari_3_0_0.models; - -// ---------------------------------------------------- -// THIS CLASS WAS GENERATED AUTOMATICALLY -// PLEASE DO NOT EDIT -// Generated on: Tue Dec 19 09:55:49 CET 2017 -// ---------------------------------------------------- - -import ch.loway.oss.ari4java.generated.*; -import com.fasterxml.jackson.databind.annotation.JsonDeserialize; -import java.util.Date; -import java.util.List; -import java.util.Map; - -/********************************************************** - * Caller identification - * - * Defined in file: channels.json - * Generated by: Model - *********************************************************/ - -public class CallerID_impl_ari_3_0_0 implements CallerID, java.io.Serializable { -private static final long serialVersionUID = 1L; - /** */ - private String name; - public String getName() { - return name; - } - - @JsonDeserialize( as=String.class ) - public void setName(String val ) { - name = val; - } - - /** */ - private String number; - public String getNumber() { - return number; - } - - @JsonDeserialize( as=String.class ) - public void setNumber(String val ) { - number = val; - } - -/** No missing signatures from interface */ -} - diff --git a/classes/ch/loway/oss/ari4java/generated/ari_3_0_0/models/ChannelCallerId_impl_ari_3_0_0.java b/classes/ch/loway/oss/ari4java/generated/ari_3_0_0/models/ChannelCallerId_impl_ari_3_0_0.java deleted file mode 100644 index e79e76a4..00000000 --- a/classes/ch/loway/oss/ari4java/generated/ari_3_0_0/models/ChannelCallerId_impl_ari_3_0_0.java +++ /dev/null @@ -1,59 +0,0 @@ -package ch.loway.oss.ari4java.generated.ari_3_0_0.models; - -// ---------------------------------------------------- -// THIS CLASS WAS GENERATED AUTOMATICALLY -// PLEASE DO NOT EDIT -// Generated on: Tue Dec 19 09:55:49 CET 2017 -// ---------------------------------------------------- - -import ch.loway.oss.ari4java.generated.*; -import com.fasterxml.jackson.databind.annotation.JsonDeserialize; -import java.util.Date; -import java.util.List; -import java.util.Map; - -/********************************************************** - * Channel changed Caller ID. - * - * Defined in file: events.json - * Generated by: Model - *********************************************************/ - -public class ChannelCallerId_impl_ari_3_0_0 extends Event_impl_ari_3_0_0 implements ChannelCallerId, java.io.Serializable { -private static final long serialVersionUID = 1L; - /** The integer representation of the Caller Presentation value. */ - private int caller_presentation; - public int getCaller_presentation() { - return caller_presentation; - } - - @JsonDeserialize( as=int.class ) - public void setCaller_presentation(int val ) { - caller_presentation = val; - } - - /** The text representation of the Caller Presentation value. */ - private String caller_presentation_txt; - public String getCaller_presentation_txt() { - return caller_presentation_txt; - } - - @JsonDeserialize( as=String.class ) - public void setCaller_presentation_txt(String val ) { - caller_presentation_txt = val; - } - - /** The channel that changed Caller ID. */ - private Channel channel; - public Channel getChannel() { - return channel; - } - - @JsonDeserialize( as=Channel_impl_ari_3_0_0.class ) - public void setChannel(Channel val ) { - channel = val; - } - -/** No missing signatures from interface */ -} - diff --git a/classes/ch/loway/oss/ari4java/generated/ari_3_0_0/models/ChannelConnectedLine_impl_ari_3_0_0.java b/classes/ch/loway/oss/ari4java/generated/ari_3_0_0/models/ChannelConnectedLine_impl_ari_3_0_0.java deleted file mode 100644 index de294561..00000000 --- a/classes/ch/loway/oss/ari4java/generated/ari_3_0_0/models/ChannelConnectedLine_impl_ari_3_0_0.java +++ /dev/null @@ -1,37 +0,0 @@ -package ch.loway.oss.ari4java.generated.ari_3_0_0.models; - -// ---------------------------------------------------- -// THIS CLASS WAS GENERATED AUTOMATICALLY -// PLEASE DO NOT EDIT -// Generated on: Tue Dec 19 09:55:49 CET 2017 -// ---------------------------------------------------- - -import ch.loway.oss.ari4java.generated.*; -import com.fasterxml.jackson.databind.annotation.JsonDeserialize; -import java.util.Date; -import java.util.List; -import java.util.Map; - -/********************************************************** - * Channel changed Connected Line. - * - * Defined in file: events.json - * Generated by: Model - *********************************************************/ - -public class ChannelConnectedLine_impl_ari_3_0_0 extends Event_impl_ari_3_0_0 implements ChannelConnectedLine, java.io.Serializable { -private static final long serialVersionUID = 1L; - /** The channel whose connected line has changed. */ - private Channel channel; - public Channel getChannel() { - return channel; - } - - @JsonDeserialize( as=Channel_impl_ari_3_0_0.class ) - public void setChannel(Channel val ) { - channel = val; - } - -/** No missing signatures from interface */ -} - diff --git a/classes/ch/loway/oss/ari4java/generated/ari_3_0_0/models/ChannelCreated_impl_ari_3_0_0.java b/classes/ch/loway/oss/ari4java/generated/ari_3_0_0/models/ChannelCreated_impl_ari_3_0_0.java deleted file mode 100644 index e4dce773..00000000 --- a/classes/ch/loway/oss/ari4java/generated/ari_3_0_0/models/ChannelCreated_impl_ari_3_0_0.java +++ /dev/null @@ -1,37 +0,0 @@ -package ch.loway.oss.ari4java.generated.ari_3_0_0.models; - -// ---------------------------------------------------- -// THIS CLASS WAS GENERATED AUTOMATICALLY -// PLEASE DO NOT EDIT -// Generated on: Tue Dec 19 09:55:49 CET 2017 -// ---------------------------------------------------- - -import ch.loway.oss.ari4java.generated.*; -import com.fasterxml.jackson.databind.annotation.JsonDeserialize; -import java.util.Date; -import java.util.List; -import java.util.Map; - -/********************************************************** - * Notification that a channel has been created. - * - * Defined in file: events.json - * Generated by: Model - *********************************************************/ - -public class ChannelCreated_impl_ari_3_0_0 extends Event_impl_ari_3_0_0 implements ChannelCreated, java.io.Serializable { -private static final long serialVersionUID = 1L; - /** */ - private Channel channel; - public Channel getChannel() { - return channel; - } - - @JsonDeserialize( as=Channel_impl_ari_3_0_0.class ) - public void setChannel(Channel val ) { - channel = val; - } - -/** No missing signatures from interface */ -} - diff --git a/classes/ch/loway/oss/ari4java/generated/ari_3_0_0/models/ChannelDestroyed_impl_ari_3_0_0.java b/classes/ch/loway/oss/ari4java/generated/ari_3_0_0/models/ChannelDestroyed_impl_ari_3_0_0.java deleted file mode 100644 index fc1489be..00000000 --- a/classes/ch/loway/oss/ari4java/generated/ari_3_0_0/models/ChannelDestroyed_impl_ari_3_0_0.java +++ /dev/null @@ -1,59 +0,0 @@ -package ch.loway.oss.ari4java.generated.ari_3_0_0.models; - -// ---------------------------------------------------- -// THIS CLASS WAS GENERATED AUTOMATICALLY -// PLEASE DO NOT EDIT -// Generated on: Tue Dec 19 09:55:49 CET 2017 -// ---------------------------------------------------- - -import ch.loway.oss.ari4java.generated.*; -import com.fasterxml.jackson.databind.annotation.JsonDeserialize; -import java.util.Date; -import java.util.List; -import java.util.Map; - -/********************************************************** - * Notification that a channel has been destroyed. - * - * Defined in file: events.json - * Generated by: Model - *********************************************************/ - -public class ChannelDestroyed_impl_ari_3_0_0 extends Event_impl_ari_3_0_0 implements ChannelDestroyed, java.io.Serializable { -private static final long serialVersionUID = 1L; - /** Integer representation of the cause of the hangup */ - private int cause; - public int getCause() { - return cause; - } - - @JsonDeserialize( as=int.class ) - public void setCause(int val ) { - cause = val; - } - - /** Text representation of the cause of the hangup */ - private String cause_txt; - public String getCause_txt() { - return cause_txt; - } - - @JsonDeserialize( as=String.class ) - public void setCause_txt(String val ) { - cause_txt = val; - } - - /** */ - private Channel channel; - public Channel getChannel() { - return channel; - } - - @JsonDeserialize( as=Channel_impl_ari_3_0_0.class ) - public void setChannel(Channel val ) { - channel = val; - } - -/** No missing signatures from interface */ -} - diff --git a/classes/ch/loway/oss/ari4java/generated/ari_3_0_0/models/ChannelDialplan_impl_ari_3_0_0.java b/classes/ch/loway/oss/ari4java/generated/ari_3_0_0/models/ChannelDialplan_impl_ari_3_0_0.java deleted file mode 100644 index d0ea24d8..00000000 --- a/classes/ch/loway/oss/ari4java/generated/ari_3_0_0/models/ChannelDialplan_impl_ari_3_0_0.java +++ /dev/null @@ -1,59 +0,0 @@ -package ch.loway.oss.ari4java.generated.ari_3_0_0.models; - -// ---------------------------------------------------- -// THIS CLASS WAS GENERATED AUTOMATICALLY -// PLEASE DO NOT EDIT -// Generated on: Tue Dec 19 09:55:49 CET 2017 -// ---------------------------------------------------- - -import ch.loway.oss.ari4java.generated.*; -import com.fasterxml.jackson.databind.annotation.JsonDeserialize; -import java.util.Date; -import java.util.List; -import java.util.Map; - -/********************************************************** - * Channel changed location in the dialplan. - * - * Defined in file: events.json - * Generated by: Model - *********************************************************/ - -public class ChannelDialplan_impl_ari_3_0_0 extends Event_impl_ari_3_0_0 implements ChannelDialplan, java.io.Serializable { -private static final long serialVersionUID = 1L; - /** The channel that changed dialplan location. */ - private Channel channel; - public Channel getChannel() { - return channel; - } - - @JsonDeserialize( as=Channel_impl_ari_3_0_0.class ) - public void setChannel(Channel val ) { - channel = val; - } - - /** The application about to be executed. */ - private String dialplan_app; - public String getDialplan_app() { - return dialplan_app; - } - - @JsonDeserialize( as=String.class ) - public void setDialplan_app(String val ) { - dialplan_app = val; - } - - /** The data to be passed to the application. */ - private String dialplan_app_data; - public String getDialplan_app_data() { - return dialplan_app_data; - } - - @JsonDeserialize( as=String.class ) - public void setDialplan_app_data(String val ) { - dialplan_app_data = val; - } - -/** No missing signatures from interface */ -} - diff --git a/classes/ch/loway/oss/ari4java/generated/ari_3_0_0/models/ChannelDtmfReceived_impl_ari_3_0_0.java b/classes/ch/loway/oss/ari4java/generated/ari_3_0_0/models/ChannelDtmfReceived_impl_ari_3_0_0.java deleted file mode 100644 index 70fac732..00000000 --- a/classes/ch/loway/oss/ari4java/generated/ari_3_0_0/models/ChannelDtmfReceived_impl_ari_3_0_0.java +++ /dev/null @@ -1,61 +0,0 @@ -package ch.loway.oss.ari4java.generated.ari_3_0_0.models; - -// ---------------------------------------------------- -// THIS CLASS WAS GENERATED AUTOMATICALLY -// PLEASE DO NOT EDIT -// Generated on: Tue Dec 19 09:55:49 CET 2017 -// ---------------------------------------------------- - -import ch.loway.oss.ari4java.generated.*; -import com.fasterxml.jackson.databind.annotation.JsonDeserialize; -import java.util.Date; -import java.util.List; -import java.util.Map; - -/********************************************************** - * DTMF received on a channel. - * - * This event is sent when the DTMF ends. There is no notification about the start of DTMF - * - * Defined in file: events.json - * Generated by: Model - *********************************************************/ - -public class ChannelDtmfReceived_impl_ari_3_0_0 extends Event_impl_ari_3_0_0 implements ChannelDtmfReceived, java.io.Serializable { -private static final long serialVersionUID = 1L; - /** The channel on which DTMF was received */ - private Channel channel; - public Channel getChannel() { - return channel; - } - - @JsonDeserialize( as=Channel_impl_ari_3_0_0.class ) - public void setChannel(Channel val ) { - channel = val; - } - - /** DTMF digit received (0-9, A-E, # or *) */ - private String digit; - public String getDigit() { - return digit; - } - - @JsonDeserialize( as=String.class ) - public void setDigit(String val ) { - digit = val; - } - - /** Number of milliseconds DTMF was received */ - private int duration_ms; - public int getDuration_ms() { - return duration_ms; - } - - @JsonDeserialize( as=int.class ) - public void setDuration_ms(int val ) { - duration_ms = val; - } - -/** No missing signatures from interface */ -} - diff --git a/classes/ch/loway/oss/ari4java/generated/ari_3_0_0/models/ChannelEnteredBridge_impl_ari_3_0_0.java b/classes/ch/loway/oss/ari4java/generated/ari_3_0_0/models/ChannelEnteredBridge_impl_ari_3_0_0.java deleted file mode 100644 index 3f5e5592..00000000 --- a/classes/ch/loway/oss/ari4java/generated/ari_3_0_0/models/ChannelEnteredBridge_impl_ari_3_0_0.java +++ /dev/null @@ -1,48 +0,0 @@ -package ch.loway.oss.ari4java.generated.ari_3_0_0.models; - -// ---------------------------------------------------- -// THIS CLASS WAS GENERATED AUTOMATICALLY -// PLEASE DO NOT EDIT -// Generated on: Tue Dec 19 09:55:49 CET 2017 -// ---------------------------------------------------- - -import ch.loway.oss.ari4java.generated.*; -import com.fasterxml.jackson.databind.annotation.JsonDeserialize; -import java.util.Date; -import java.util.List; -import java.util.Map; - -/********************************************************** - * Notification that a channel has entered a bridge. - * - * Defined in file: events.json - * Generated by: Model - *********************************************************/ - -public class ChannelEnteredBridge_impl_ari_3_0_0 extends Event_impl_ari_3_0_0 implements ChannelEnteredBridge, java.io.Serializable { -private static final long serialVersionUID = 1L; - /** */ - private Bridge bridge; - public Bridge getBridge() { - return bridge; - } - - @JsonDeserialize( as=Bridge_impl_ari_3_0_0.class ) - public void setBridge(Bridge val ) { - bridge = val; - } - - /** */ - private Channel channel; - public Channel getChannel() { - return channel; - } - - @JsonDeserialize( as=Channel_impl_ari_3_0_0.class ) - public void setChannel(Channel val ) { - channel = val; - } - -/** No missing signatures from interface */ -} - diff --git a/classes/ch/loway/oss/ari4java/generated/ari_3_0_0/models/ChannelHangupRequest_impl_ari_3_0_0.java b/classes/ch/loway/oss/ari4java/generated/ari_3_0_0/models/ChannelHangupRequest_impl_ari_3_0_0.java deleted file mode 100644 index c4ba0963..00000000 --- a/classes/ch/loway/oss/ari4java/generated/ari_3_0_0/models/ChannelHangupRequest_impl_ari_3_0_0.java +++ /dev/null @@ -1,59 +0,0 @@ -package ch.loway.oss.ari4java.generated.ari_3_0_0.models; - -// ---------------------------------------------------- -// THIS CLASS WAS GENERATED AUTOMATICALLY -// PLEASE DO NOT EDIT -// Generated on: Tue Dec 19 09:55:49 CET 2017 -// ---------------------------------------------------- - -import ch.loway.oss.ari4java.generated.*; -import com.fasterxml.jackson.databind.annotation.JsonDeserialize; -import java.util.Date; -import java.util.List; -import java.util.Map; - -/********************************************************** - * A hangup was requested on the channel. - * - * Defined in file: events.json - * Generated by: Model - *********************************************************/ - -public class ChannelHangupRequest_impl_ari_3_0_0 extends Event_impl_ari_3_0_0 implements ChannelHangupRequest, java.io.Serializable { -private static final long serialVersionUID = 1L; - /** Integer representation of the cause of the hangup. */ - private int cause; - public int getCause() { - return cause; - } - - @JsonDeserialize( as=int.class ) - public void setCause(int val ) { - cause = val; - } - - /** The channel on which the hangup was requested. */ - private Channel channel; - public Channel getChannel() { - return channel; - } - - @JsonDeserialize( as=Channel_impl_ari_3_0_0.class ) - public void setChannel(Channel val ) { - channel = val; - } - - /** Whether the hangup request was a soft hangup request. */ - private boolean soft; - public boolean getSoft() { - return soft; - } - - @JsonDeserialize( as=boolean.class ) - public void setSoft(boolean val ) { - soft = val; - } - -/** No missing signatures from interface */ -} - diff --git a/classes/ch/loway/oss/ari4java/generated/ari_3_0_0/models/ChannelHold_impl_ari_3_0_0.java b/classes/ch/loway/oss/ari4java/generated/ari_3_0_0/models/ChannelHold_impl_ari_3_0_0.java deleted file mode 100644 index 4f030d2e..00000000 --- a/classes/ch/loway/oss/ari4java/generated/ari_3_0_0/models/ChannelHold_impl_ari_3_0_0.java +++ /dev/null @@ -1,48 +0,0 @@ -package ch.loway.oss.ari4java.generated.ari_3_0_0.models; - -// ---------------------------------------------------- -// THIS CLASS WAS GENERATED AUTOMATICALLY -// PLEASE DO NOT EDIT -// Generated on: Tue Dec 19 09:55:49 CET 2017 -// ---------------------------------------------------- - -import ch.loway.oss.ari4java.generated.*; -import com.fasterxml.jackson.databind.annotation.JsonDeserialize; -import java.util.Date; -import java.util.List; -import java.util.Map; - -/********************************************************** - * A channel initiated a media hold. - * - * Defined in file: events.json - * Generated by: Model - *********************************************************/ - -public class ChannelHold_impl_ari_3_0_0 extends Event_impl_ari_3_0_0 implements ChannelHold, java.io.Serializable { -private static final long serialVersionUID = 1L; - /** The channel that initiated the hold event. */ - private Channel channel; - public Channel getChannel() { - return channel; - } - - @JsonDeserialize( as=Channel_impl_ari_3_0_0.class ) - public void setChannel(Channel val ) { - channel = val; - } - - /** The music on hold class that the initiator requested. */ - private String musicclass; - public String getMusicclass() { - return musicclass; - } - - @JsonDeserialize( as=String.class ) - public void setMusicclass(String val ) { - musicclass = val; - } - -/** No missing signatures from interface */ -} - diff --git a/classes/ch/loway/oss/ari4java/generated/ari_3_0_0/models/ChannelLeftBridge_impl_ari_3_0_0.java b/classes/ch/loway/oss/ari4java/generated/ari_3_0_0/models/ChannelLeftBridge_impl_ari_3_0_0.java deleted file mode 100644 index 9dd80552..00000000 --- a/classes/ch/loway/oss/ari4java/generated/ari_3_0_0/models/ChannelLeftBridge_impl_ari_3_0_0.java +++ /dev/null @@ -1,48 +0,0 @@ -package ch.loway.oss.ari4java.generated.ari_3_0_0.models; - -// ---------------------------------------------------- -// THIS CLASS WAS GENERATED AUTOMATICALLY -// PLEASE DO NOT EDIT -// Generated on: Tue Dec 19 09:55:49 CET 2017 -// ---------------------------------------------------- - -import ch.loway.oss.ari4java.generated.*; -import com.fasterxml.jackson.databind.annotation.JsonDeserialize; -import java.util.Date; -import java.util.List; -import java.util.Map; - -/********************************************************** - * Notification that a channel has left a bridge. - * - * Defined in file: events.json - * Generated by: Model - *********************************************************/ - -public class ChannelLeftBridge_impl_ari_3_0_0 extends Event_impl_ari_3_0_0 implements ChannelLeftBridge, java.io.Serializable { -private static final long serialVersionUID = 1L; - /** */ - private Bridge bridge; - public Bridge getBridge() { - return bridge; - } - - @JsonDeserialize( as=Bridge_impl_ari_3_0_0.class ) - public void setBridge(Bridge val ) { - bridge = val; - } - - /** */ - private Channel channel; - public Channel getChannel() { - return channel; - } - - @JsonDeserialize( as=Channel_impl_ari_3_0_0.class ) - public void setChannel(Channel val ) { - channel = val; - } - -/** No missing signatures from interface */ -} - diff --git a/classes/ch/loway/oss/ari4java/generated/ari_3_0_0/models/ChannelStateChange_impl_ari_3_0_0.java b/classes/ch/loway/oss/ari4java/generated/ari_3_0_0/models/ChannelStateChange_impl_ari_3_0_0.java deleted file mode 100644 index 443394fb..00000000 --- a/classes/ch/loway/oss/ari4java/generated/ari_3_0_0/models/ChannelStateChange_impl_ari_3_0_0.java +++ /dev/null @@ -1,37 +0,0 @@ -package ch.loway.oss.ari4java.generated.ari_3_0_0.models; - -// ---------------------------------------------------- -// THIS CLASS WAS GENERATED AUTOMATICALLY -// PLEASE DO NOT EDIT -// Generated on: Tue Dec 19 09:55:49 CET 2017 -// ---------------------------------------------------- - -import ch.loway.oss.ari4java.generated.*; -import com.fasterxml.jackson.databind.annotation.JsonDeserialize; -import java.util.Date; -import java.util.List; -import java.util.Map; - -/********************************************************** - * Notification of a channel's state change. - * - * Defined in file: events.json - * Generated by: Model - *********************************************************/ - -public class ChannelStateChange_impl_ari_3_0_0 extends Event_impl_ari_3_0_0 implements ChannelStateChange, java.io.Serializable { -private static final long serialVersionUID = 1L; - /** */ - private Channel channel; - public Channel getChannel() { - return channel; - } - - @JsonDeserialize( as=Channel_impl_ari_3_0_0.class ) - public void setChannel(Channel val ) { - channel = val; - } - -/** No missing signatures from interface */ -} - diff --git a/classes/ch/loway/oss/ari4java/generated/ari_3_0_0/models/ChannelTalkingFinished_impl_ari_3_0_0.java b/classes/ch/loway/oss/ari4java/generated/ari_3_0_0/models/ChannelTalkingFinished_impl_ari_3_0_0.java deleted file mode 100644 index 07d12383..00000000 --- a/classes/ch/loway/oss/ari4java/generated/ari_3_0_0/models/ChannelTalkingFinished_impl_ari_3_0_0.java +++ /dev/null @@ -1,48 +0,0 @@ -package ch.loway.oss.ari4java.generated.ari_3_0_0.models; - -// ---------------------------------------------------- -// THIS CLASS WAS GENERATED AUTOMATICALLY -// PLEASE DO NOT EDIT -// Generated on: Tue Dec 19 09:55:49 CET 2017 -// ---------------------------------------------------- - -import ch.loway.oss.ari4java.generated.*; -import com.fasterxml.jackson.databind.annotation.JsonDeserialize; -import java.util.Date; -import java.util.List; -import java.util.Map; - -/********************************************************** - * Talking is no longer detected on the channel. - * - * Defined in file: events.json - * Generated by: Model - *********************************************************/ - -public class ChannelTalkingFinished_impl_ari_3_0_0 extends Event_impl_ari_3_0_0 implements ChannelTalkingFinished, java.io.Serializable { -private static final long serialVersionUID = 1L; - /** The channel on which talking completed. */ - private Channel channel; - public Channel getChannel() { - return channel; - } - - @JsonDeserialize( as=Channel_impl_ari_3_0_0.class ) - public void setChannel(Channel val ) { - channel = val; - } - - /** The length of time, in milliseconds, that talking was detected on the channel */ - private int duration; - public int getDuration() { - return duration; - } - - @JsonDeserialize( as=int.class ) - public void setDuration(int val ) { - duration = val; - } - -/** No missing signatures from interface */ -} - diff --git a/classes/ch/loway/oss/ari4java/generated/ari_3_0_0/models/ChannelTalkingStarted_impl_ari_3_0_0.java b/classes/ch/loway/oss/ari4java/generated/ari_3_0_0/models/ChannelTalkingStarted_impl_ari_3_0_0.java deleted file mode 100644 index 2076a8b4..00000000 --- a/classes/ch/loway/oss/ari4java/generated/ari_3_0_0/models/ChannelTalkingStarted_impl_ari_3_0_0.java +++ /dev/null @@ -1,37 +0,0 @@ -package ch.loway.oss.ari4java.generated.ari_3_0_0.models; - -// ---------------------------------------------------- -// THIS CLASS WAS GENERATED AUTOMATICALLY -// PLEASE DO NOT EDIT -// Generated on: Tue Dec 19 09:55:49 CET 2017 -// ---------------------------------------------------- - -import ch.loway.oss.ari4java.generated.*; -import com.fasterxml.jackson.databind.annotation.JsonDeserialize; -import java.util.Date; -import java.util.List; -import java.util.Map; - -/********************************************************** - * Talking was detected on the channel. - * - * Defined in file: events.json - * Generated by: Model - *********************************************************/ - -public class ChannelTalkingStarted_impl_ari_3_0_0 extends Event_impl_ari_3_0_0 implements ChannelTalkingStarted, java.io.Serializable { -private static final long serialVersionUID = 1L; - /** The channel on which talking started. */ - private Channel channel; - public Channel getChannel() { - return channel; - } - - @JsonDeserialize( as=Channel_impl_ari_3_0_0.class ) - public void setChannel(Channel val ) { - channel = val; - } - -/** No missing signatures from interface */ -} - diff --git a/classes/ch/loway/oss/ari4java/generated/ari_3_0_0/models/ChannelUnhold_impl_ari_3_0_0.java b/classes/ch/loway/oss/ari4java/generated/ari_3_0_0/models/ChannelUnhold_impl_ari_3_0_0.java deleted file mode 100644 index ae28973b..00000000 --- a/classes/ch/loway/oss/ari4java/generated/ari_3_0_0/models/ChannelUnhold_impl_ari_3_0_0.java +++ /dev/null @@ -1,37 +0,0 @@ -package ch.loway.oss.ari4java.generated.ari_3_0_0.models; - -// ---------------------------------------------------- -// THIS CLASS WAS GENERATED AUTOMATICALLY -// PLEASE DO NOT EDIT -// Generated on: Tue Dec 19 09:55:49 CET 2017 -// ---------------------------------------------------- - -import ch.loway.oss.ari4java.generated.*; -import com.fasterxml.jackson.databind.annotation.JsonDeserialize; -import java.util.Date; -import java.util.List; -import java.util.Map; - -/********************************************************** - * A channel initiated a media unhold. - * - * Defined in file: events.json - * Generated by: Model - *********************************************************/ - -public class ChannelUnhold_impl_ari_3_0_0 extends Event_impl_ari_3_0_0 implements ChannelUnhold, java.io.Serializable { -private static final long serialVersionUID = 1L; - /** The channel that initiated the unhold event. */ - private Channel channel; - public Channel getChannel() { - return channel; - } - - @JsonDeserialize( as=Channel_impl_ari_3_0_0.class ) - public void setChannel(Channel val ) { - channel = val; - } - -/** No missing signatures from interface */ -} - diff --git a/classes/ch/loway/oss/ari4java/generated/ari_3_0_0/models/ChannelUserevent_impl_ari_3_0_0.java b/classes/ch/loway/oss/ari4java/generated/ari_3_0_0/models/ChannelUserevent_impl_ari_3_0_0.java deleted file mode 100644 index b80a6c71..00000000 --- a/classes/ch/loway/oss/ari4java/generated/ari_3_0_0/models/ChannelUserevent_impl_ari_3_0_0.java +++ /dev/null @@ -1,81 +0,0 @@ -package ch.loway.oss.ari4java.generated.ari_3_0_0.models; - -// ---------------------------------------------------- -// THIS CLASS WAS GENERATED AUTOMATICALLY -// PLEASE DO NOT EDIT -// Generated on: Tue Dec 19 09:55:49 CET 2017 -// ---------------------------------------------------- - -import ch.loway.oss.ari4java.generated.*; -import com.fasterxml.jackson.databind.annotation.JsonDeserialize; -import java.util.Date; -import java.util.List; -import java.util.Map; - -/********************************************************** - * User-generated event with additional user-defined fields in the object. - * - * Defined in file: events.json - * Generated by: Model - *********************************************************/ - -public class ChannelUserevent_impl_ari_3_0_0 extends Event_impl_ari_3_0_0 implements ChannelUserevent, java.io.Serializable { -private static final long serialVersionUID = 1L; - /** A bridge that is signaled with the user event. */ - private Bridge bridge; - public Bridge getBridge() { - return bridge; - } - - @JsonDeserialize( as=Bridge_impl_ari_3_0_0.class ) - public void setBridge(Bridge val ) { - bridge = val; - } - - /** A channel that is signaled with the user event. */ - private Channel channel; - public Channel getChannel() { - return channel; - } - - @JsonDeserialize( as=Channel_impl_ari_3_0_0.class ) - public void setChannel(Channel val ) { - channel = val; - } - - /** A endpoint that is signaled with the user event. */ - private Endpoint endpoint; - public Endpoint getEndpoint() { - return endpoint; - } - - @JsonDeserialize( as=Endpoint_impl_ari_3_0_0.class ) - public void setEndpoint(Endpoint val ) { - endpoint = val; - } - - /** The name of the user event. */ - private String eventname; - public String getEventname() { - return eventname; - } - - @JsonDeserialize( as=String.class ) - public void setEventname(String val ) { - eventname = val; - } - - /** Custom Userevent data */ - private String userevent; - public String getUserevent() { - return userevent; - } - - @JsonDeserialize( as=String.class ) - public void setUserevent(String val ) { - userevent = val; - } - -/** No missing signatures from interface */ -} - diff --git a/classes/ch/loway/oss/ari4java/generated/ari_3_0_0/models/ChannelVarset_impl_ari_3_0_0.java b/classes/ch/loway/oss/ari4java/generated/ari_3_0_0/models/ChannelVarset_impl_ari_3_0_0.java deleted file mode 100644 index 0abb8e33..00000000 --- a/classes/ch/loway/oss/ari4java/generated/ari_3_0_0/models/ChannelVarset_impl_ari_3_0_0.java +++ /dev/null @@ -1,61 +0,0 @@ -package ch.loway.oss.ari4java.generated.ari_3_0_0.models; - -// ---------------------------------------------------- -// THIS CLASS WAS GENERATED AUTOMATICALLY -// PLEASE DO NOT EDIT -// Generated on: Tue Dec 19 09:55:49 CET 2017 -// ---------------------------------------------------- - -import ch.loway.oss.ari4java.generated.*; -import com.fasterxml.jackson.databind.annotation.JsonDeserialize; -import java.util.Date; -import java.util.List; -import java.util.Map; - -/********************************************************** - * Channel variable changed. - * - * Defined in file: events.json - * Generated by: Model - *********************************************************/ - -public class ChannelVarset_impl_ari_3_0_0 extends Event_impl_ari_3_0_0 implements ChannelVarset, java.io.Serializable { -private static final long serialVersionUID = 1L; - /** The channel on which the variable was set. - -If missing, the variable is a global variable. */ - private Channel channel; - public Channel getChannel() { - return channel; - } - - @JsonDeserialize( as=Channel_impl_ari_3_0_0.class ) - public void setChannel(Channel val ) { - channel = val; - } - - /** The new value of the variable. */ - private String value; - public String getValue() { - return value; - } - - @JsonDeserialize( as=String.class ) - public void setValue(String val ) { - value = val; - } - - /** The variable that changed. */ - private String variable; - public String getVariable() { - return variable; - } - - @JsonDeserialize( as=String.class ) - public void setVariable(String val ) { - variable = val; - } - -/** No missing signatures from interface */ -} - diff --git a/classes/ch/loway/oss/ari4java/generated/ari_3_0_0/models/Channel_impl_ari_3_0_0.java b/classes/ch/loway/oss/ari4java/generated/ari_3_0_0/models/Channel_impl_ari_3_0_0.java deleted file mode 100644 index dd3eb764..00000000 --- a/classes/ch/loway/oss/ari4java/generated/ari_3_0_0/models/Channel_impl_ari_3_0_0.java +++ /dev/null @@ -1,138 +0,0 @@ -package ch.loway.oss.ari4java.generated.ari_3_0_0.models; - -// ---------------------------------------------------- -// THIS CLASS WAS GENERATED AUTOMATICALLY -// PLEASE DO NOT EDIT -// Generated on: Tue Dec 19 09:55:49 CET 2017 -// ---------------------------------------------------- - -import ch.loway.oss.ari4java.generated.*; -import com.fasterxml.jackson.databind.annotation.JsonDeserialize; -import java.util.Date; -import java.util.List; -import java.util.Map; - -/********************************************************** - * A specific communication connection between Asterisk and an Endpoint. - * - * Defined in file: channels.json - * Generated by: Model - *********************************************************/ - -public class Channel_impl_ari_3_0_0 implements Channel, java.io.Serializable { -private static final long serialVersionUID = 1L; - /** */ - private String accountcode; - public String getAccountcode() { - return accountcode; - } - - @JsonDeserialize( as=String.class ) - public void setAccountcode(String val ) { - accountcode = val; - } - - /** */ - private CallerID caller; - public CallerID getCaller() { - return caller; - } - - @JsonDeserialize( as=CallerID_impl_ari_3_0_0.class ) - public void setCaller(CallerID val ) { - caller = val; - } - - /** Channel variables */ - private String channelvars; - public String getChannelvars() { - return channelvars; - } - - @JsonDeserialize( as=String.class ) - public void setChannelvars(String val ) { - channelvars = val; - } - - /** */ - private CallerID connected; - public CallerID getConnected() { - return connected; - } - - @JsonDeserialize( as=CallerID_impl_ari_3_0_0.class ) - public void setConnected(CallerID val ) { - connected = val; - } - - /** Timestamp when channel was created */ - private Date creationtime; - public Date getCreationtime() { - return creationtime; - } - - @JsonDeserialize( as=Date.class ) - public void setCreationtime(Date val ) { - creationtime = val; - } - - /** Current location in the dialplan */ - private DialplanCEP dialplan; - public DialplanCEP getDialplan() { - return dialplan; - } - - @JsonDeserialize( as=DialplanCEP_impl_ari_3_0_0.class ) - public void setDialplan(DialplanCEP val ) { - dialplan = val; - } - - /** Unique identifier of the channel. - -This is the same as the Uniqueid field in AMI. */ - private String id; - public String getId() { - return id; - } - - @JsonDeserialize( as=String.class ) - public void setId(String val ) { - id = val; - } - - /** The default spoken language */ - private String language; - public String getLanguage() { - return language; - } - - @JsonDeserialize( as=String.class ) - public void setLanguage(String val ) { - language = val; - } - - /** Name of the channel (i.e. SIP/foo-0000a7e3) */ - private String name; - public String getName() { - return name; - } - - @JsonDeserialize( as=String.class ) - public void setName(String val ) { - name = val; - } - - /** */ - private String state; - public String getState() { - return state; - } - - @JsonDeserialize( as=String.class ) - public void setState(String val ) { - state = val; - } - -/** No missing signatures from interface */ -} - diff --git a/classes/ch/loway/oss/ari4java/generated/ari_3_0_0/models/ConfigInfo_impl_ari_3_0_0.java b/classes/ch/loway/oss/ari4java/generated/ari_3_0_0/models/ConfigInfo_impl_ari_3_0_0.java deleted file mode 100644 index 00034346..00000000 --- a/classes/ch/loway/oss/ari4java/generated/ari_3_0_0/models/ConfigInfo_impl_ari_3_0_0.java +++ /dev/null @@ -1,92 +0,0 @@ -package ch.loway.oss.ari4java.generated.ari_3_0_0.models; - -// ---------------------------------------------------- -// THIS CLASS WAS GENERATED AUTOMATICALLY -// PLEASE DO NOT EDIT -// Generated on: Tue Dec 19 09:55:49 CET 2017 -// ---------------------------------------------------- - -import ch.loway.oss.ari4java.generated.*; -import com.fasterxml.jackson.databind.annotation.JsonDeserialize; -import java.util.Date; -import java.util.List; -import java.util.Map; - -/********************************************************** - * Info about Asterisk configuration - * - * Defined in file: asterisk.json - * Generated by: Model - *********************************************************/ - -public class ConfigInfo_impl_ari_3_0_0 implements ConfigInfo, java.io.Serializable { -private static final long serialVersionUID = 1L; - /** Default language for media playback. */ - private String default_language; - public String getDefault_language() { - return default_language; - } - - @JsonDeserialize( as=String.class ) - public void setDefault_language(String val ) { - default_language = val; - } - - /** Maximum number of simultaneous channels. */ - private int max_channels; - public int getMax_channels() { - return max_channels; - } - - @JsonDeserialize( as=int.class ) - public void setMax_channels(int val ) { - max_channels = val; - } - - /** Maximum load avg on system. */ - private double max_load; - public double getMax_load() { - return max_load; - } - - @JsonDeserialize( as=double.class ) - public void setMax_load(double val ) { - max_load = val; - } - - /** Maximum number of open file handles (files, sockets). */ - private int max_open_files; - public int getMax_open_files() { - return max_open_files; - } - - @JsonDeserialize( as=int.class ) - public void setMax_open_files(int val ) { - max_open_files = val; - } - - /** Asterisk system name. */ - private String name; - public String getName() { - return name; - } - - @JsonDeserialize( as=String.class ) - public void setName(String val ) { - name = val; - } - - /** Effective user/group id for running Asterisk. */ - private SetId setid; - public SetId getSetid() { - return setid; - } - - @JsonDeserialize( as=SetId_impl_ari_3_0_0.class ) - public void setSetid(SetId val ) { - setid = val; - } - -/** No missing signatures from interface */ -} - diff --git a/classes/ch/loway/oss/ari4java/generated/ari_3_0_0/models/ConfigTuple_impl_ari_3_0_0.java b/classes/ch/loway/oss/ari4java/generated/ari_3_0_0/models/ConfigTuple_impl_ari_3_0_0.java deleted file mode 100644 index 06d5bfac..00000000 --- a/classes/ch/loway/oss/ari4java/generated/ari_3_0_0/models/ConfigTuple_impl_ari_3_0_0.java +++ /dev/null @@ -1,48 +0,0 @@ -package ch.loway.oss.ari4java.generated.ari_3_0_0.models; - -// ---------------------------------------------------- -// THIS CLASS WAS GENERATED AUTOMATICALLY -// PLEASE DO NOT EDIT -// Generated on: Tue Dec 19 09:55:49 CET 2017 -// ---------------------------------------------------- - -import ch.loway.oss.ari4java.generated.*; -import com.fasterxml.jackson.databind.annotation.JsonDeserialize; -import java.util.Date; -import java.util.List; -import java.util.Map; - -/********************************************************** - * A key/value pair that makes up part of a configuration object. - * - * Defined in file: asterisk.json - * Generated by: Model - *********************************************************/ - -public class ConfigTuple_impl_ari_3_0_0 implements ConfigTuple, java.io.Serializable { -private static final long serialVersionUID = 1L; - /** A configuration object attribute. */ - private String attribute; - public String getAttribute() { - return attribute; - } - - @JsonDeserialize( as=String.class ) - public void setAttribute(String val ) { - attribute = val; - } - - /** The value for the attribute. */ - private String value; - public String getValue() { - return value; - } - - @JsonDeserialize( as=String.class ) - public void setValue(String val ) { - value = val; - } - -/** No missing signatures from interface */ -} - diff --git a/classes/ch/loway/oss/ari4java/generated/ari_3_0_0/models/ContactInfo_impl_ari_3_0_0.java b/classes/ch/loway/oss/ari4java/generated/ari_3_0_0/models/ContactInfo_impl_ari_3_0_0.java deleted file mode 100644 index a09f037a..00000000 --- a/classes/ch/loway/oss/ari4java/generated/ari_3_0_0/models/ContactInfo_impl_ari_3_0_0.java +++ /dev/null @@ -1,70 +0,0 @@ -package ch.loway.oss.ari4java.generated.ari_3_0_0.models; - -// ---------------------------------------------------- -// THIS CLASS WAS GENERATED AUTOMATICALLY -// PLEASE DO NOT EDIT -// Generated on: Tue Dec 19 09:55:49 CET 2017 -// ---------------------------------------------------- - -import ch.loway.oss.ari4java.generated.*; -import com.fasterxml.jackson.databind.annotation.JsonDeserialize; -import java.util.Date; -import java.util.List; -import java.util.Map; - -/********************************************************** - * Detailed information about a contact on an endpoint. - * - * Defined in file: events.json - * Generated by: Model - *********************************************************/ - -public class ContactInfo_impl_ari_3_0_0 implements ContactInfo, java.io.Serializable { -private static final long serialVersionUID = 1L; - /** The Address of Record this contact belongs to. */ - private String aor; - public String getAor() { - return aor; - } - - @JsonDeserialize( as=String.class ) - public void setAor(String val ) { - aor = val; - } - - /** The current status of the contact. */ - private String contact_status; - public String getContact_status() { - return contact_status; - } - - @JsonDeserialize( as=String.class ) - public void setContact_status(String val ) { - contact_status = val; - } - - /** Current round trip time, in microseconds, for the contact. */ - private String roundtrip_usec; - public String getRoundtrip_usec() { - return roundtrip_usec; - } - - @JsonDeserialize( as=String.class ) - public void setRoundtrip_usec(String val ) { - roundtrip_usec = val; - } - - /** The location of the contact. */ - private String uri; - public String getUri() { - return uri; - } - - @JsonDeserialize( as=String.class ) - public void setUri(String val ) { - uri = val; - } - -/** No missing signatures from interface */ -} - diff --git a/classes/ch/loway/oss/ari4java/generated/ari_3_0_0/models/ContactStatusChange_impl_ari_3_0_0.java b/classes/ch/loway/oss/ari4java/generated/ari_3_0_0/models/ContactStatusChange_impl_ari_3_0_0.java deleted file mode 100644 index 058a740d..00000000 --- a/classes/ch/loway/oss/ari4java/generated/ari_3_0_0/models/ContactStatusChange_impl_ari_3_0_0.java +++ /dev/null @@ -1,48 +0,0 @@ -package ch.loway.oss.ari4java.generated.ari_3_0_0.models; - -// ---------------------------------------------------- -// THIS CLASS WAS GENERATED AUTOMATICALLY -// PLEASE DO NOT EDIT -// Generated on: Tue Dec 19 09:55:49 CET 2017 -// ---------------------------------------------------- - -import ch.loway.oss.ari4java.generated.*; -import com.fasterxml.jackson.databind.annotation.JsonDeserialize; -import java.util.Date; -import java.util.List; -import java.util.Map; - -/********************************************************** - * The state of a contact on an endpoint has changed. - * - * Defined in file: events.json - * Generated by: Model - *********************************************************/ - -public class ContactStatusChange_impl_ari_3_0_0 extends Event_impl_ari_3_0_0 implements ContactStatusChange, java.io.Serializable { -private static final long serialVersionUID = 1L; - /** */ - private ContactInfo contact_info; - public ContactInfo getContact_info() { - return contact_info; - } - - @JsonDeserialize( as=ContactInfo_impl_ari_3_0_0.class ) - public void setContact_info(ContactInfo val ) { - contact_info = val; - } - - /** */ - private Endpoint endpoint; - public Endpoint getEndpoint() { - return endpoint; - } - - @JsonDeserialize( as=Endpoint_impl_ari_3_0_0.class ) - public void setEndpoint(Endpoint val ) { - endpoint = val; - } - -/** No missing signatures from interface */ -} - diff --git a/classes/ch/loway/oss/ari4java/generated/ari_3_0_0/models/DeviceStateChanged_impl_ari_3_0_0.java b/classes/ch/loway/oss/ari4java/generated/ari_3_0_0/models/DeviceStateChanged_impl_ari_3_0_0.java deleted file mode 100644 index 13d5775b..00000000 --- a/classes/ch/loway/oss/ari4java/generated/ari_3_0_0/models/DeviceStateChanged_impl_ari_3_0_0.java +++ /dev/null @@ -1,37 +0,0 @@ -package ch.loway.oss.ari4java.generated.ari_3_0_0.models; - -// ---------------------------------------------------- -// THIS CLASS WAS GENERATED AUTOMATICALLY -// PLEASE DO NOT EDIT -// Generated on: Tue Dec 19 09:55:49 CET 2017 -// ---------------------------------------------------- - -import ch.loway.oss.ari4java.generated.*; -import com.fasterxml.jackson.databind.annotation.JsonDeserialize; -import java.util.Date; -import java.util.List; -import java.util.Map; - -/********************************************************** - * Notification that a device state has changed. - * - * Defined in file: events.json - * Generated by: Model - *********************************************************/ - -public class DeviceStateChanged_impl_ari_3_0_0 extends Event_impl_ari_3_0_0 implements DeviceStateChanged, java.io.Serializable { -private static final long serialVersionUID = 1L; - /** Device state object */ - private DeviceState device_state; - public DeviceState getDevice_state() { - return device_state; - } - - @JsonDeserialize( as=DeviceState_impl_ari_3_0_0.class ) - public void setDevice_state(DeviceState val ) { - device_state = val; - } - -/** No missing signatures from interface */ -} - diff --git a/classes/ch/loway/oss/ari4java/generated/ari_3_0_0/models/DeviceState_impl_ari_3_0_0.java b/classes/ch/loway/oss/ari4java/generated/ari_3_0_0/models/DeviceState_impl_ari_3_0_0.java deleted file mode 100644 index c6112375..00000000 --- a/classes/ch/loway/oss/ari4java/generated/ari_3_0_0/models/DeviceState_impl_ari_3_0_0.java +++ /dev/null @@ -1,48 +0,0 @@ -package ch.loway.oss.ari4java.generated.ari_3_0_0.models; - -// ---------------------------------------------------- -// THIS CLASS WAS GENERATED AUTOMATICALLY -// PLEASE DO NOT EDIT -// Generated on: Tue Dec 19 09:55:49 CET 2017 -// ---------------------------------------------------- - -import ch.loway.oss.ari4java.generated.*; -import com.fasterxml.jackson.databind.annotation.JsonDeserialize; -import java.util.Date; -import java.util.List; -import java.util.Map; - -/********************************************************** - * Represents the state of a device. - * - * Defined in file: deviceStates.json - * Generated by: Model - *********************************************************/ - -public class DeviceState_impl_ari_3_0_0 implements DeviceState, java.io.Serializable { -private static final long serialVersionUID = 1L; - /** Name of the device. */ - private String name; - public String getName() { - return name; - } - - @JsonDeserialize( as=String.class ) - public void setName(String val ) { - name = val; - } - - /** Device's state */ - private String state; - public String getState() { - return state; - } - - @JsonDeserialize( as=String.class ) - public void setState(String val ) { - state = val; - } - -/** No missing signatures from interface */ -} - diff --git a/classes/ch/loway/oss/ari4java/generated/ari_3_0_0/models/Dial_impl_ari_3_0_0.java b/classes/ch/loway/oss/ari4java/generated/ari_3_0_0/models/Dial_impl_ari_3_0_0.java deleted file mode 100644 index b2204fe1..00000000 --- a/classes/ch/loway/oss/ari4java/generated/ari_3_0_0/models/Dial_impl_ari_3_0_0.java +++ /dev/null @@ -1,92 +0,0 @@ -package ch.loway.oss.ari4java.generated.ari_3_0_0.models; - -// ---------------------------------------------------- -// THIS CLASS WAS GENERATED AUTOMATICALLY -// PLEASE DO NOT EDIT -// Generated on: Tue Dec 19 09:55:49 CET 2017 -// ---------------------------------------------------- - -import ch.loway.oss.ari4java.generated.*; -import com.fasterxml.jackson.databind.annotation.JsonDeserialize; -import java.util.Date; -import java.util.List; -import java.util.Map; - -/********************************************************** - * Dialing state has changed. - * - * Defined in file: events.json - * Generated by: Model - *********************************************************/ - -public class Dial_impl_ari_3_0_0 extends Event_impl_ari_3_0_0 implements Dial, java.io.Serializable { -private static final long serialVersionUID = 1L; - /** The calling channel. */ - private Channel caller; - public Channel getCaller() { - return caller; - } - - @JsonDeserialize( as=Channel_impl_ari_3_0_0.class ) - public void setCaller(Channel val ) { - caller = val; - } - - /** Current status of the dialing attempt to the peer. */ - private String dialstatus; - public String getDialstatus() { - return dialstatus; - } - - @JsonDeserialize( as=String.class ) - public void setDialstatus(String val ) { - dialstatus = val; - } - - /** The dial string for calling the peer channel. */ - private String dialstring; - public String getDialstring() { - return dialstring; - } - - @JsonDeserialize( as=String.class ) - public void setDialstring(String val ) { - dialstring = val; - } - - /** Forwarding target requested by the original dialed channel. */ - private String forward; - public String getForward() { - return forward; - } - - @JsonDeserialize( as=String.class ) - public void setForward(String val ) { - forward = val; - } - - /** Channel that the caller has been forwarded to. */ - private Channel forwarded; - public Channel getForwarded() { - return forwarded; - } - - @JsonDeserialize( as=Channel_impl_ari_3_0_0.class ) - public void setForwarded(Channel val ) { - forwarded = val; - } - - /** The dialed channel. */ - private Channel peer; - public Channel getPeer() { - return peer; - } - - @JsonDeserialize( as=Channel_impl_ari_3_0_0.class ) - public void setPeer(Channel val ) { - peer = val; - } - -/** No missing signatures from interface */ -} - diff --git a/classes/ch/loway/oss/ari4java/generated/ari_3_0_0/models/Dialed_impl_ari_3_0_0.java b/classes/ch/loway/oss/ari4java/generated/ari_3_0_0/models/Dialed_impl_ari_3_0_0.java deleted file mode 100644 index 16eff8db..00000000 --- a/classes/ch/loway/oss/ari4java/generated/ari_3_0_0/models/Dialed_impl_ari_3_0_0.java +++ /dev/null @@ -1,26 +0,0 @@ -package ch.loway.oss.ari4java.generated.ari_3_0_0.models; - -// ---------------------------------------------------- -// THIS CLASS WAS GENERATED AUTOMATICALLY -// PLEASE DO NOT EDIT -// Generated on: Tue Dec 19 09:55:49 CET 2017 -// ---------------------------------------------------- - -import ch.loway.oss.ari4java.generated.*; -import com.fasterxml.jackson.databind.annotation.JsonDeserialize; -import java.util.Date; -import java.util.List; -import java.util.Map; - -/********************************************************** - * Dialed channel information. - * - * Defined in file: channels.json - * Generated by: Model - *********************************************************/ - -public class Dialed_impl_ari_3_0_0 implements Dialed, java.io.Serializable { -private static final long serialVersionUID = 1L; -/** No missing signatures from interface */ -} - diff --git a/classes/ch/loway/oss/ari4java/generated/ari_3_0_0/models/DialplanCEP_impl_ari_3_0_0.java b/classes/ch/loway/oss/ari4java/generated/ari_3_0_0/models/DialplanCEP_impl_ari_3_0_0.java deleted file mode 100644 index c52534d4..00000000 --- a/classes/ch/loway/oss/ari4java/generated/ari_3_0_0/models/DialplanCEP_impl_ari_3_0_0.java +++ /dev/null @@ -1,59 +0,0 @@ -package ch.loway.oss.ari4java.generated.ari_3_0_0.models; - -// ---------------------------------------------------- -// THIS CLASS WAS GENERATED AUTOMATICALLY -// PLEASE DO NOT EDIT -// Generated on: Tue Dec 19 09:55:49 CET 2017 -// ---------------------------------------------------- - -import ch.loway.oss.ari4java.generated.*; -import com.fasterxml.jackson.databind.annotation.JsonDeserialize; -import java.util.Date; -import java.util.List; -import java.util.Map; - -/********************************************************** - * Dialplan location (context/extension/priority) - * - * Defined in file: channels.json - * Generated by: Model - *********************************************************/ - -public class DialplanCEP_impl_ari_3_0_0 implements DialplanCEP, java.io.Serializable { -private static final long serialVersionUID = 1L; - /** Context in the dialplan */ - private String context; - public String getContext() { - return context; - } - - @JsonDeserialize( as=String.class ) - public void setContext(String val ) { - context = val; - } - - /** Extension in the dialplan */ - private String exten; - public String getExten() { - return exten; - } - - @JsonDeserialize( as=String.class ) - public void setExten(String val ) { - exten = val; - } - - /** Priority in the dialplan */ - private long priority; - public long getPriority() { - return priority; - } - - @JsonDeserialize( as=long.class ) - public void setPriority(long val ) { - priority = val; - } - -/** No missing signatures from interface */ -} - diff --git a/classes/ch/loway/oss/ari4java/generated/ari_3_0_0/models/EndpointStateChange_impl_ari_3_0_0.java b/classes/ch/loway/oss/ari4java/generated/ari_3_0_0/models/EndpointStateChange_impl_ari_3_0_0.java deleted file mode 100644 index 86ecb778..00000000 --- a/classes/ch/loway/oss/ari4java/generated/ari_3_0_0/models/EndpointStateChange_impl_ari_3_0_0.java +++ /dev/null @@ -1,37 +0,0 @@ -package ch.loway.oss.ari4java.generated.ari_3_0_0.models; - -// ---------------------------------------------------- -// THIS CLASS WAS GENERATED AUTOMATICALLY -// PLEASE DO NOT EDIT -// Generated on: Tue Dec 19 09:55:49 CET 2017 -// ---------------------------------------------------- - -import ch.loway.oss.ari4java.generated.*; -import com.fasterxml.jackson.databind.annotation.JsonDeserialize; -import java.util.Date; -import java.util.List; -import java.util.Map; - -/********************************************************** - * Endpoint state changed. - * - * Defined in file: events.json - * Generated by: Model - *********************************************************/ - -public class EndpointStateChange_impl_ari_3_0_0 extends Event_impl_ari_3_0_0 implements EndpointStateChange, java.io.Serializable { -private static final long serialVersionUID = 1L; - /** */ - private Endpoint endpoint; - public Endpoint getEndpoint() { - return endpoint; - } - - @JsonDeserialize( as=Endpoint_impl_ari_3_0_0.class ) - public void setEndpoint(Endpoint val ) { - endpoint = val; - } - -/** No missing signatures from interface */ -} - diff --git a/classes/ch/loway/oss/ari4java/generated/ari_3_0_0/models/Endpoint_impl_ari_3_0_0.java b/classes/ch/loway/oss/ari4java/generated/ari_3_0_0/models/Endpoint_impl_ari_3_0_0.java deleted file mode 100644 index 943dfb83..00000000 --- a/classes/ch/loway/oss/ari4java/generated/ari_3_0_0/models/Endpoint_impl_ari_3_0_0.java +++ /dev/null @@ -1,72 +0,0 @@ -package ch.loway.oss.ari4java.generated.ari_3_0_0.models; - -// ---------------------------------------------------- -// THIS CLASS WAS GENERATED AUTOMATICALLY -// PLEASE DO NOT EDIT -// Generated on: Tue Dec 19 09:55:49 CET 2017 -// ---------------------------------------------------- - -import ch.loway.oss.ari4java.generated.*; -import com.fasterxml.jackson.databind.annotation.JsonDeserialize; -import java.util.Date; -import java.util.List; -import java.util.Map; - -/********************************************************** - * An external device that may offer/accept calls to/from Asterisk. - * - * Unlike most resources, which have a single unique identifier, an endpoint is uniquely identified by the technology/resource pair. - * - * Defined in file: endpoints.json - * Generated by: Model - *********************************************************/ - -public class Endpoint_impl_ari_3_0_0 implements Endpoint, java.io.Serializable { -private static final long serialVersionUID = 1L; - /** Id's of channels associated with this endpoint */ - private List channel_ids; - public List getChannel_ids() { - return channel_ids; - } - - @JsonDeserialize( contentAs=String.class ) - public void setChannel_ids(List val ) { - channel_ids = val; - } - - /** Identifier of the endpoint, specific to the given technology. */ - private String resource; - public String getResource() { - return resource; - } - - @JsonDeserialize( as=String.class ) - public void setResource(String val ) { - resource = val; - } - - /** Endpoint's state */ - private String state; - public String getState() { - return state; - } - - @JsonDeserialize( as=String.class ) - public void setState(String val ) { - state = val; - } - - /** Technology of the endpoint */ - private String technology; - public String getTechnology() { - return technology; - } - - @JsonDeserialize( as=String.class ) - public void setTechnology(String val ) { - technology = val; - } - -/** No missing signatures from interface */ -} - diff --git a/classes/ch/loway/oss/ari4java/generated/ari_3_0_0/models/Event_impl_ari_3_0_0.java b/classes/ch/loway/oss/ari4java/generated/ari_3_0_0/models/Event_impl_ari_3_0_0.java deleted file mode 100644 index 2847407e..00000000 --- a/classes/ch/loway/oss/ari4java/generated/ari_3_0_0/models/Event_impl_ari_3_0_0.java +++ /dev/null @@ -1,48 +0,0 @@ -package ch.loway.oss.ari4java.generated.ari_3_0_0.models; - -// ---------------------------------------------------- -// THIS CLASS WAS GENERATED AUTOMATICALLY -// PLEASE DO NOT EDIT -// Generated on: Tue Dec 19 09:55:49 CET 2017 -// ---------------------------------------------------- - -import ch.loway.oss.ari4java.generated.*; -import com.fasterxml.jackson.databind.annotation.JsonDeserialize; -import java.util.Date; -import java.util.List; -import java.util.Map; - -/********************************************************** - * Base type for asynchronous events from Asterisk. - * - * Defined in file: events.json - * Generated by: Model - *********************************************************/ - -public class Event_impl_ari_3_0_0 extends Message_impl_ari_3_0_0 implements Event, java.io.Serializable { -private static final long serialVersionUID = 1L; - /** Name of the application receiving the event. */ - private String application; - public String getApplication() { - return application; - } - - @JsonDeserialize( as=String.class ) - public void setApplication(String val ) { - application = val; - } - - /** Time at which this event was created. */ - private Date timestamp; - public Date getTimestamp() { - return timestamp; - } - - @JsonDeserialize( as=Date.class ) - public void setTimestamp(Date val ) { - timestamp = val; - } - -/** No missing signatures from interface */ -} - diff --git a/classes/ch/loway/oss/ari4java/generated/ari_3_0_0/models/FormatLangPair_impl_ari_3_0_0.java b/classes/ch/loway/oss/ari4java/generated/ari_3_0_0/models/FormatLangPair_impl_ari_3_0_0.java deleted file mode 100644 index e12d0fdb..00000000 --- a/classes/ch/loway/oss/ari4java/generated/ari_3_0_0/models/FormatLangPair_impl_ari_3_0_0.java +++ /dev/null @@ -1,48 +0,0 @@ -package ch.loway.oss.ari4java.generated.ari_3_0_0.models; - -// ---------------------------------------------------- -// THIS CLASS WAS GENERATED AUTOMATICALLY -// PLEASE DO NOT EDIT -// Generated on: Tue Dec 19 09:55:49 CET 2017 -// ---------------------------------------------------- - -import ch.loway.oss.ari4java.generated.*; -import com.fasterxml.jackson.databind.annotation.JsonDeserialize; -import java.util.Date; -import java.util.List; -import java.util.Map; - -/********************************************************** - * Identifies the format and language of a sound file - * - * Defined in file: sounds.json - * Generated by: Model - *********************************************************/ - -public class FormatLangPair_impl_ari_3_0_0 implements FormatLangPair, java.io.Serializable { -private static final long serialVersionUID = 1L; - /** */ - private String format; - public String getFormat() { - return format; - } - - @JsonDeserialize( as=String.class ) - public void setFormat(String val ) { - format = val; - } - - /** */ - private String language; - public String getLanguage() { - return language; - } - - @JsonDeserialize( as=String.class ) - public void setLanguage(String val ) { - language = val; - } - -/** No missing signatures from interface */ -} - diff --git a/classes/ch/loway/oss/ari4java/generated/ari_3_0_0/models/LiveRecording_impl_ari_3_0_0.java b/classes/ch/loway/oss/ari4java/generated/ari_3_0_0/models/LiveRecording_impl_ari_3_0_0.java deleted file mode 100644 index ef6c8d60..00000000 --- a/classes/ch/loway/oss/ari4java/generated/ari_3_0_0/models/LiveRecording_impl_ari_3_0_0.java +++ /dev/null @@ -1,114 +0,0 @@ -package ch.loway.oss.ari4java.generated.ari_3_0_0.models; - -// ---------------------------------------------------- -// THIS CLASS WAS GENERATED AUTOMATICALLY -// PLEASE DO NOT EDIT -// Generated on: Tue Dec 19 09:55:49 CET 2017 -// ---------------------------------------------------- - -import ch.loway.oss.ari4java.generated.*; -import com.fasterxml.jackson.databind.annotation.JsonDeserialize; -import java.util.Date; -import java.util.List; -import java.util.Map; - -/********************************************************** - * A recording that is in progress - * - * Defined in file: recordings.json - * Generated by: Model - *********************************************************/ - -public class LiveRecording_impl_ari_3_0_0 implements LiveRecording, java.io.Serializable { -private static final long serialVersionUID = 1L; - /** Cause for recording failure if failed */ - private String cause; - public String getCause() { - return cause; - } - - @JsonDeserialize( as=String.class ) - public void setCause(String val ) { - cause = val; - } - - /** Duration in seconds of the recording */ - private int duration; - public int getDuration() { - return duration; - } - - @JsonDeserialize( as=int.class ) - public void setDuration(int val ) { - duration = val; - } - - /** Recording format (wav, gsm, etc.) */ - private String format; - public String getFormat() { - return format; - } - - @JsonDeserialize( as=String.class ) - public void setFormat(String val ) { - format = val; - } - - /** Base name for the recording */ - private String name; - public String getName() { - return name; - } - - @JsonDeserialize( as=String.class ) - public void setName(String val ) { - name = val; - } - - /** Duration of silence, in seconds, detected in the recording. This is only available if the recording was initiated with a non-zero maxSilenceSeconds. */ - private int silence_duration; - public int getSilence_duration() { - return silence_duration; - } - - @JsonDeserialize( as=int.class ) - public void setSilence_duration(int val ) { - silence_duration = val; - } - - /** */ - private String state; - public String getState() { - return state; - } - - @JsonDeserialize( as=String.class ) - public void setState(String val ) { - state = val; - } - - /** Duration of talking, in seconds, detected in the recording. This is only available if the recording was initiated with a non-zero maxSilenceSeconds. */ - private int talking_duration; - public int getTalking_duration() { - return talking_duration; - } - - @JsonDeserialize( as=int.class ) - public void setTalking_duration(int val ) { - talking_duration = val; - } - - /** URI for the channel or bridge being recorded */ - private String target_uri; - public String getTarget_uri() { - return target_uri; - } - - @JsonDeserialize( as=String.class ) - public void setTarget_uri(String val ) { - target_uri = val; - } - -/** No missing signatures from interface */ -} - diff --git a/classes/ch/loway/oss/ari4java/generated/ari_3_0_0/models/LogChannel_impl_ari_3_0_0.java b/classes/ch/loway/oss/ari4java/generated/ari_3_0_0/models/LogChannel_impl_ari_3_0_0.java deleted file mode 100644 index 42338d13..00000000 --- a/classes/ch/loway/oss/ari4java/generated/ari_3_0_0/models/LogChannel_impl_ari_3_0_0.java +++ /dev/null @@ -1,70 +0,0 @@ -package ch.loway.oss.ari4java.generated.ari_3_0_0.models; - -// ---------------------------------------------------- -// THIS CLASS WAS GENERATED AUTOMATICALLY -// PLEASE DO NOT EDIT -// Generated on: Tue Dec 19 09:55:49 CET 2017 -// ---------------------------------------------------- - -import ch.loway.oss.ari4java.generated.*; -import com.fasterxml.jackson.databind.annotation.JsonDeserialize; -import java.util.Date; -import java.util.List; -import java.util.Map; - -/********************************************************** - * Details of an Asterisk log channel - * - * Defined in file: asterisk.json - * Generated by: Model - *********************************************************/ - -public class LogChannel_impl_ari_3_0_0 implements LogChannel, java.io.Serializable { -private static final long serialVersionUID = 1L; - /** The log channel path */ - private String channel; - public String getChannel() { - return channel; - } - - @JsonDeserialize( as=String.class ) - public void setChannel(String val ) { - channel = val; - } - - /** The various log levels */ - private String configuration; - public String getConfiguration() { - return configuration; - } - - @JsonDeserialize( as=String.class ) - public void setConfiguration(String val ) { - configuration = val; - } - - /** Whether or not a log type is enabled */ - private String status; - public String getStatus() { - return status; - } - - @JsonDeserialize( as=String.class ) - public void setStatus(String val ) { - status = val; - } - - /** Types of logs for the log channel */ - private String type; - public String getType() { - return type; - } - - @JsonDeserialize( as=String.class ) - public void setType(String val ) { - type = val; - } - -/** No missing signatures from interface */ -} - diff --git a/classes/ch/loway/oss/ari4java/generated/ari_3_0_0/models/Message_impl_ari_3_0_0.java b/classes/ch/loway/oss/ari4java/generated/ari_3_0_0/models/Message_impl_ari_3_0_0.java deleted file mode 100644 index 8ca81ac1..00000000 --- a/classes/ch/loway/oss/ari4java/generated/ari_3_0_0/models/Message_impl_ari_3_0_0.java +++ /dev/null @@ -1,95 +0,0 @@ -package ch.loway.oss.ari4java.generated.ari_3_0_0.models; - -// ---------------------------------------------------- -// THIS CLASS WAS GENERATED AUTOMATICALLY -// PLEASE DO NOT EDIT -// Generated on: Tue Dec 19 09:55:49 CET 2017 -// ---------------------------------------------------- - -import ch.loway.oss.ari4java.generated.*; -import com.fasterxml.jackson.annotation.JsonSubTypes; -import com.fasterxml.jackson.annotation.JsonSubTypes.Type; -import com.fasterxml.jackson.annotation.JsonTypeInfo; -import com.fasterxml.jackson.databind.annotation.JsonDeserialize; -import java.util.Date; -import java.util.List; -import java.util.Map; - -/********************************************************** - * Base type for errors and events - * - * Defined in file: events.json - * Generated by: Model - *********************************************************/ - @JsonTypeInfo( use = JsonTypeInfo.Id.NAME, include = JsonTypeInfo.As.PROPERTY, property = "type") - @JsonSubTypes({ @Type(value = MissingParams_impl_ari_3_0_0.class, name = "MissingParams") -, @Type(value = Event_impl_ari_3_0_0.class, name = "Event") -, @Type(value = ContactInfo_impl_ari_3_0_0.class, name = "ContactInfo") -, @Type(value = Peer_impl_ari_3_0_0.class, name = "Peer") -, @Type(value = DeviceStateChanged_impl_ari_3_0_0.class, name = "DeviceStateChanged") -, @Type(value = PlaybackStarted_impl_ari_3_0_0.class, name = "PlaybackStarted") -, @Type(value = PlaybackContinuing_impl_ari_3_0_0.class, name = "PlaybackContinuing") -, @Type(value = PlaybackFinished_impl_ari_3_0_0.class, name = "PlaybackFinished") -, @Type(value = RecordingStarted_impl_ari_3_0_0.class, name = "RecordingStarted") -, @Type(value = RecordingFinished_impl_ari_3_0_0.class, name = "RecordingFinished") -, @Type(value = RecordingFailed_impl_ari_3_0_0.class, name = "RecordingFailed") -, @Type(value = ApplicationReplaced_impl_ari_3_0_0.class, name = "ApplicationReplaced") -, @Type(value = BridgeCreated_impl_ari_3_0_0.class, name = "BridgeCreated") -, @Type(value = BridgeDestroyed_impl_ari_3_0_0.class, name = "BridgeDestroyed") -, @Type(value = BridgeMerged_impl_ari_3_0_0.class, name = "BridgeMerged") -, @Type(value = BridgeVideoSourceChanged_impl_ari_3_0_0.class, name = "BridgeVideoSourceChanged") -, @Type(value = BridgeBlindTransfer_impl_ari_3_0_0.class, name = "BridgeBlindTransfer") -, @Type(value = BridgeAttendedTransfer_impl_ari_3_0_0.class, name = "BridgeAttendedTransfer") -, @Type(value = ChannelCreated_impl_ari_3_0_0.class, name = "ChannelCreated") -, @Type(value = ChannelDestroyed_impl_ari_3_0_0.class, name = "ChannelDestroyed") -, @Type(value = ChannelEnteredBridge_impl_ari_3_0_0.class, name = "ChannelEnteredBridge") -, @Type(value = ChannelLeftBridge_impl_ari_3_0_0.class, name = "ChannelLeftBridge") -, @Type(value = ChannelStateChange_impl_ari_3_0_0.class, name = "ChannelStateChange") -, @Type(value = ChannelDtmfReceived_impl_ari_3_0_0.class, name = "ChannelDtmfReceived") -, @Type(value = ChannelDialplan_impl_ari_3_0_0.class, name = "ChannelDialplan") -, @Type(value = ChannelCallerId_impl_ari_3_0_0.class, name = "ChannelCallerId") -, @Type(value = ChannelUserevent_impl_ari_3_0_0.class, name = "ChannelUserevent") -, @Type(value = ChannelHangupRequest_impl_ari_3_0_0.class, name = "ChannelHangupRequest") -, @Type(value = ChannelVarset_impl_ari_3_0_0.class, name = "ChannelVarset") -, @Type(value = ChannelHold_impl_ari_3_0_0.class, name = "ChannelHold") -, @Type(value = ChannelUnhold_impl_ari_3_0_0.class, name = "ChannelUnhold") -, @Type(value = ChannelTalkingStarted_impl_ari_3_0_0.class, name = "ChannelTalkingStarted") -, @Type(value = ChannelTalkingFinished_impl_ari_3_0_0.class, name = "ChannelTalkingFinished") -, @Type(value = ContactStatusChange_impl_ari_3_0_0.class, name = "ContactStatusChange") -, @Type(value = PeerStatusChange_impl_ari_3_0_0.class, name = "PeerStatusChange") -, @Type(value = EndpointStateChange_impl_ari_3_0_0.class, name = "EndpointStateChange") -, @Type(value = Dial_impl_ari_3_0_0.class, name = "Dial") -, @Type(value = StasisEnd_impl_ari_3_0_0.class, name = "StasisEnd") -, @Type(value = StasisStart_impl_ari_3_0_0.class, name = "StasisStart") -, @Type(value = TextMessageReceived_impl_ari_3_0_0.class, name = "TextMessageReceived") -, @Type(value = ChannelConnectedLine_impl_ari_3_0_0.class, name = "ChannelConnectedLine") - }) - - -public class Message_impl_ari_3_0_0 implements Message, java.io.Serializable { -private static final long serialVersionUID = 1L; - /** The unique ID for the Asterisk instance that raised this event. */ - private String asterisk_id; - public String getAsterisk_id() { - return asterisk_id; - } - - @JsonDeserialize( as=String.class ) - public void setAsterisk_id(String val ) { - asterisk_id = val; - } - - /** Indicates the type of this message. */ - private String type; - public String getType() { - return type; - } - - @JsonDeserialize( as=String.class ) - public void setType(String val ) { - type = val; - } - -/** No missing signatures from interface */ -} - diff --git a/classes/ch/loway/oss/ari4java/generated/ari_3_0_0/models/MissingParams_impl_ari_3_0_0.java b/classes/ch/loway/oss/ari4java/generated/ari_3_0_0/models/MissingParams_impl_ari_3_0_0.java deleted file mode 100644 index bc02d853..00000000 --- a/classes/ch/loway/oss/ari4java/generated/ari_3_0_0/models/MissingParams_impl_ari_3_0_0.java +++ /dev/null @@ -1,37 +0,0 @@ -package ch.loway.oss.ari4java.generated.ari_3_0_0.models; - -// ---------------------------------------------------- -// THIS CLASS WAS GENERATED AUTOMATICALLY -// PLEASE DO NOT EDIT -// Generated on: Tue Dec 19 09:55:49 CET 2017 -// ---------------------------------------------------- - -import ch.loway.oss.ari4java.generated.*; -import com.fasterxml.jackson.databind.annotation.JsonDeserialize; -import java.util.Date; -import java.util.List; -import java.util.Map; - -/********************************************************** - * Error event sent when required params are missing. - * - * Defined in file: events.json - * Generated by: Model - *********************************************************/ - -public class MissingParams_impl_ari_3_0_0 extends Message_impl_ari_3_0_0 implements MissingParams, java.io.Serializable { -private static final long serialVersionUID = 1L; - /** A list of the missing parameters */ - private List params; - public List getParams() { - return params; - } - - @JsonDeserialize( contentAs=String.class ) - public void setParams(List val ) { - params = val; - } - -/** No missing signatures from interface */ -} - diff --git a/classes/ch/loway/oss/ari4java/generated/ari_3_0_0/models/Module_impl_ari_3_0_0.java b/classes/ch/loway/oss/ari4java/generated/ari_3_0_0/models/Module_impl_ari_3_0_0.java deleted file mode 100644 index 9a305665..00000000 --- a/classes/ch/loway/oss/ari4java/generated/ari_3_0_0/models/Module_impl_ari_3_0_0.java +++ /dev/null @@ -1,81 +0,0 @@ -package ch.loway.oss.ari4java.generated.ari_3_0_0.models; - -// ---------------------------------------------------- -// THIS CLASS WAS GENERATED AUTOMATICALLY -// PLEASE DO NOT EDIT -// Generated on: Tue Dec 19 09:55:49 CET 2017 -// ---------------------------------------------------- - -import ch.loway.oss.ari4java.generated.*; -import com.fasterxml.jackson.databind.annotation.JsonDeserialize; -import java.util.Date; -import java.util.List; -import java.util.Map; - -/********************************************************** - * Details of an Asterisk module - * - * Defined in file: asterisk.json - * Generated by: Model - *********************************************************/ - -public class Module_impl_ari_3_0_0 implements Module, java.io.Serializable { -private static final long serialVersionUID = 1L; - /** The description of this module */ - private String description; - public String getDescription() { - return description; - } - - @JsonDeserialize( as=String.class ) - public void setDescription(String val ) { - description = val; - } - - /** The name of this module */ - private String name; - public String getName() { - return name; - } - - @JsonDeserialize( as=String.class ) - public void setName(String val ) { - name = val; - } - - /** The running status of this module */ - private String status; - public String getStatus() { - return status; - } - - @JsonDeserialize( as=String.class ) - public void setStatus(String val ) { - status = val; - } - - /** The support state of this module */ - private String support_level; - public String getSupport_level() { - return support_level; - } - - @JsonDeserialize( as=String.class ) - public void setSupport_level(String val ) { - support_level = val; - } - - /** The number of times this module is being used */ - private int use_count; - public int getUse_count() { - return use_count; - } - - @JsonDeserialize( as=int.class ) - public void setUse_count(int val ) { - use_count = val; - } - -/** No missing signatures from interface */ -} - diff --git a/classes/ch/loway/oss/ari4java/generated/ari_3_0_0/models/PeerStatusChange_impl_ari_3_0_0.java b/classes/ch/loway/oss/ari4java/generated/ari_3_0_0/models/PeerStatusChange_impl_ari_3_0_0.java deleted file mode 100644 index 09baac8e..00000000 --- a/classes/ch/loway/oss/ari4java/generated/ari_3_0_0/models/PeerStatusChange_impl_ari_3_0_0.java +++ /dev/null @@ -1,48 +0,0 @@ -package ch.loway.oss.ari4java.generated.ari_3_0_0.models; - -// ---------------------------------------------------- -// THIS CLASS WAS GENERATED AUTOMATICALLY -// PLEASE DO NOT EDIT -// Generated on: Tue Dec 19 09:55:49 CET 2017 -// ---------------------------------------------------- - -import ch.loway.oss.ari4java.generated.*; -import com.fasterxml.jackson.databind.annotation.JsonDeserialize; -import java.util.Date; -import java.util.List; -import java.util.Map; - -/********************************************************** - * The state of a peer associated with an endpoint has changed. - * - * Defined in file: events.json - * Generated by: Model - *********************************************************/ - -public class PeerStatusChange_impl_ari_3_0_0 extends Event_impl_ari_3_0_0 implements PeerStatusChange, java.io.Serializable { -private static final long serialVersionUID = 1L; - /** */ - private Endpoint endpoint; - public Endpoint getEndpoint() { - return endpoint; - } - - @JsonDeserialize( as=Endpoint_impl_ari_3_0_0.class ) - public void setEndpoint(Endpoint val ) { - endpoint = val; - } - - /** */ - private Peer peer; - public Peer getPeer() { - return peer; - } - - @JsonDeserialize( as=Peer_impl_ari_3_0_0.class ) - public void setPeer(Peer val ) { - peer = val; - } - -/** No missing signatures from interface */ -} - diff --git a/classes/ch/loway/oss/ari4java/generated/ari_3_0_0/models/Peer_impl_ari_3_0_0.java b/classes/ch/loway/oss/ari4java/generated/ari_3_0_0/models/Peer_impl_ari_3_0_0.java deleted file mode 100644 index 1274f13e..00000000 --- a/classes/ch/loway/oss/ari4java/generated/ari_3_0_0/models/Peer_impl_ari_3_0_0.java +++ /dev/null @@ -1,81 +0,0 @@ -package ch.loway.oss.ari4java.generated.ari_3_0_0.models; - -// ---------------------------------------------------- -// THIS CLASS WAS GENERATED AUTOMATICALLY -// PLEASE DO NOT EDIT -// Generated on: Tue Dec 19 09:55:49 CET 2017 -// ---------------------------------------------------- - -import ch.loway.oss.ari4java.generated.*; -import com.fasterxml.jackson.databind.annotation.JsonDeserialize; -import java.util.Date; -import java.util.List; -import java.util.Map; - -/********************************************************** - * Detailed information about a remote peer that communicates with Asterisk. - * - * Defined in file: events.json - * Generated by: Model - *********************************************************/ - -public class Peer_impl_ari_3_0_0 implements Peer, java.io.Serializable { -private static final long serialVersionUID = 1L; - /** The IP address of the peer. */ - private String address; - public String getAddress() { - return address; - } - - @JsonDeserialize( as=String.class ) - public void setAddress(String val ) { - address = val; - } - - /** An optional reason associated with the change in peer_status. */ - private String cause; - public String getCause() { - return cause; - } - - @JsonDeserialize( as=String.class ) - public void setCause(String val ) { - cause = val; - } - - /** The current state of the peer. Note that the values of the status are dependent on the underlying peer technology. */ - private String peer_status; - public String getPeer_status() { - return peer_status; - } - - @JsonDeserialize( as=String.class ) - public void setPeer_status(String val ) { - peer_status = val; - } - - /** The port of the peer. */ - private String port; - public String getPort() { - return port; - } - - @JsonDeserialize( as=String.class ) - public void setPort(String val ) { - port = val; - } - - /** The last known time the peer was contacted. */ - private String time; - public String getTime() { - return time; - } - - @JsonDeserialize( as=String.class ) - public void setTime(String val ) { - time = val; - } - -/** No missing signatures from interface */ -} - diff --git a/classes/ch/loway/oss/ari4java/generated/ari_3_0_0/models/PlaybackContinuing_impl_ari_3_0_0.java b/classes/ch/loway/oss/ari4java/generated/ari_3_0_0/models/PlaybackContinuing_impl_ari_3_0_0.java deleted file mode 100644 index f40a3a97..00000000 --- a/classes/ch/loway/oss/ari4java/generated/ari_3_0_0/models/PlaybackContinuing_impl_ari_3_0_0.java +++ /dev/null @@ -1,37 +0,0 @@ -package ch.loway.oss.ari4java.generated.ari_3_0_0.models; - -// ---------------------------------------------------- -// THIS CLASS WAS GENERATED AUTOMATICALLY -// PLEASE DO NOT EDIT -// Generated on: Tue Dec 19 09:55:49 CET 2017 -// ---------------------------------------------------- - -import ch.loway.oss.ari4java.generated.*; -import com.fasterxml.jackson.databind.annotation.JsonDeserialize; -import java.util.Date; -import java.util.List; -import java.util.Map; - -/********************************************************** - * Event showing the continuation of a media playback operation from one media URI to the next in the list. - * - * Defined in file: events.json - * Generated by: Model - *********************************************************/ - -public class PlaybackContinuing_impl_ari_3_0_0 extends Event_impl_ari_3_0_0 implements PlaybackContinuing, java.io.Serializable { -private static final long serialVersionUID = 1L; - /** Playback control object */ - private Playback playback; - public Playback getPlayback() { - return playback; - } - - @JsonDeserialize( as=Playback_impl_ari_3_0_0.class ) - public void setPlayback(Playback val ) { - playback = val; - } - -/** No missing signatures from interface */ -} - diff --git a/classes/ch/loway/oss/ari4java/generated/ari_3_0_0/models/PlaybackFinished_impl_ari_3_0_0.java b/classes/ch/loway/oss/ari4java/generated/ari_3_0_0/models/PlaybackFinished_impl_ari_3_0_0.java deleted file mode 100644 index a42eef74..00000000 --- a/classes/ch/loway/oss/ari4java/generated/ari_3_0_0/models/PlaybackFinished_impl_ari_3_0_0.java +++ /dev/null @@ -1,37 +0,0 @@ -package ch.loway.oss.ari4java.generated.ari_3_0_0.models; - -// ---------------------------------------------------- -// THIS CLASS WAS GENERATED AUTOMATICALLY -// PLEASE DO NOT EDIT -// Generated on: Tue Dec 19 09:55:49 CET 2017 -// ---------------------------------------------------- - -import ch.loway.oss.ari4java.generated.*; -import com.fasterxml.jackson.databind.annotation.JsonDeserialize; -import java.util.Date; -import java.util.List; -import java.util.Map; - -/********************************************************** - * Event showing the completion of a media playback operation. - * - * Defined in file: events.json - * Generated by: Model - *********************************************************/ - -public class PlaybackFinished_impl_ari_3_0_0 extends Event_impl_ari_3_0_0 implements PlaybackFinished, java.io.Serializable { -private static final long serialVersionUID = 1L; - /** Playback control object */ - private Playback playback; - public Playback getPlayback() { - return playback; - } - - @JsonDeserialize( as=Playback_impl_ari_3_0_0.class ) - public void setPlayback(Playback val ) { - playback = val; - } - -/** No missing signatures from interface */ -} - diff --git a/classes/ch/loway/oss/ari4java/generated/ari_3_0_0/models/PlaybackStarted_impl_ari_3_0_0.java b/classes/ch/loway/oss/ari4java/generated/ari_3_0_0/models/PlaybackStarted_impl_ari_3_0_0.java deleted file mode 100644 index 86552fb1..00000000 --- a/classes/ch/loway/oss/ari4java/generated/ari_3_0_0/models/PlaybackStarted_impl_ari_3_0_0.java +++ /dev/null @@ -1,37 +0,0 @@ -package ch.loway.oss.ari4java.generated.ari_3_0_0.models; - -// ---------------------------------------------------- -// THIS CLASS WAS GENERATED AUTOMATICALLY -// PLEASE DO NOT EDIT -// Generated on: Tue Dec 19 09:55:49 CET 2017 -// ---------------------------------------------------- - -import ch.loway.oss.ari4java.generated.*; -import com.fasterxml.jackson.databind.annotation.JsonDeserialize; -import java.util.Date; -import java.util.List; -import java.util.Map; - -/********************************************************** - * Event showing the start of a media playback operation. - * - * Defined in file: events.json - * Generated by: Model - *********************************************************/ - -public class PlaybackStarted_impl_ari_3_0_0 extends Event_impl_ari_3_0_0 implements PlaybackStarted, java.io.Serializable { -private static final long serialVersionUID = 1L; - /** Playback control object */ - private Playback playback; - public Playback getPlayback() { - return playback; - } - - @JsonDeserialize( as=Playback_impl_ari_3_0_0.class ) - public void setPlayback(Playback val ) { - playback = val; - } - -/** No missing signatures from interface */ -} - diff --git a/classes/ch/loway/oss/ari4java/generated/ari_3_0_0/models/Playback_impl_ari_3_0_0.java b/classes/ch/loway/oss/ari4java/generated/ari_3_0_0/models/Playback_impl_ari_3_0_0.java deleted file mode 100644 index 7845396b..00000000 --- a/classes/ch/loway/oss/ari4java/generated/ari_3_0_0/models/Playback_impl_ari_3_0_0.java +++ /dev/null @@ -1,92 +0,0 @@ -package ch.loway.oss.ari4java.generated.ari_3_0_0.models; - -// ---------------------------------------------------- -// THIS CLASS WAS GENERATED AUTOMATICALLY -// PLEASE DO NOT EDIT -// Generated on: Tue Dec 19 09:55:49 CET 2017 -// ---------------------------------------------------- - -import ch.loway.oss.ari4java.generated.*; -import com.fasterxml.jackson.databind.annotation.JsonDeserialize; -import java.util.Date; -import java.util.List; -import java.util.Map; - -/********************************************************** - * Object representing the playback of media to a channel - * - * Defined in file: playbacks.json - * Generated by: Model - *********************************************************/ - -public class Playback_impl_ari_3_0_0 implements Playback, java.io.Serializable { -private static final long serialVersionUID = 1L; - /** ID for this playback operation */ - private String id; - public String getId() { - return id; - } - - @JsonDeserialize( as=String.class ) - public void setId(String val ) { - id = val; - } - - /** For media types that support multiple languages, the language requested for playback. */ - private String language; - public String getLanguage() { - return language; - } - - @JsonDeserialize( as=String.class ) - public void setLanguage(String val ) { - language = val; - } - - /** The URI for the media currently being played back. */ - private String media_uri; - public String getMedia_uri() { - return media_uri; - } - - @JsonDeserialize( as=String.class ) - public void setMedia_uri(String val ) { - media_uri = val; - } - - /** If a list of URIs is being played, the next media URI to be played back. */ - private String next_media_uri; - public String getNext_media_uri() { - return next_media_uri; - } - - @JsonDeserialize( as=String.class ) - public void setNext_media_uri(String val ) { - next_media_uri = val; - } - - /** Current state of the playback operation. */ - private String state; - public String getState() { - return state; - } - - @JsonDeserialize( as=String.class ) - public void setState(String val ) { - state = val; - } - - /** URI for the channel or bridge to play the media on */ - private String target_uri; - public String getTarget_uri() { - return target_uri; - } - - @JsonDeserialize( as=String.class ) - public void setTarget_uri(String val ) { - target_uri = val; - } - -/** No missing signatures from interface */ -} - diff --git a/classes/ch/loway/oss/ari4java/generated/ari_3_0_0/models/RecordingFailed_impl_ari_3_0_0.java b/classes/ch/loway/oss/ari4java/generated/ari_3_0_0/models/RecordingFailed_impl_ari_3_0_0.java deleted file mode 100644 index 535096ea..00000000 --- a/classes/ch/loway/oss/ari4java/generated/ari_3_0_0/models/RecordingFailed_impl_ari_3_0_0.java +++ /dev/null @@ -1,37 +0,0 @@ -package ch.loway.oss.ari4java.generated.ari_3_0_0.models; - -// ---------------------------------------------------- -// THIS CLASS WAS GENERATED AUTOMATICALLY -// PLEASE DO NOT EDIT -// Generated on: Tue Dec 19 09:55:49 CET 2017 -// ---------------------------------------------------- - -import ch.loway.oss.ari4java.generated.*; -import com.fasterxml.jackson.databind.annotation.JsonDeserialize; -import java.util.Date; -import java.util.List; -import java.util.Map; - -/********************************************************** - * Event showing failure of a recording operation. - * - * Defined in file: events.json - * Generated by: Model - *********************************************************/ - -public class RecordingFailed_impl_ari_3_0_0 extends Event_impl_ari_3_0_0 implements RecordingFailed, java.io.Serializable { -private static final long serialVersionUID = 1L; - /** Recording control object */ - private LiveRecording recording; - public LiveRecording getRecording() { - return recording; - } - - @JsonDeserialize( as=LiveRecording_impl_ari_3_0_0.class ) - public void setRecording(LiveRecording val ) { - recording = val; - } - -/** No missing signatures from interface */ -} - diff --git a/classes/ch/loway/oss/ari4java/generated/ari_3_0_0/models/RecordingFinished_impl_ari_3_0_0.java b/classes/ch/loway/oss/ari4java/generated/ari_3_0_0/models/RecordingFinished_impl_ari_3_0_0.java deleted file mode 100644 index 6d0d259a..00000000 --- a/classes/ch/loway/oss/ari4java/generated/ari_3_0_0/models/RecordingFinished_impl_ari_3_0_0.java +++ /dev/null @@ -1,37 +0,0 @@ -package ch.loway.oss.ari4java.generated.ari_3_0_0.models; - -// ---------------------------------------------------- -// THIS CLASS WAS GENERATED AUTOMATICALLY -// PLEASE DO NOT EDIT -// Generated on: Tue Dec 19 09:55:49 CET 2017 -// ---------------------------------------------------- - -import ch.loway.oss.ari4java.generated.*; -import com.fasterxml.jackson.databind.annotation.JsonDeserialize; -import java.util.Date; -import java.util.List; -import java.util.Map; - -/********************************************************** - * Event showing the completion of a recording operation. - * - * Defined in file: events.json - * Generated by: Model - *********************************************************/ - -public class RecordingFinished_impl_ari_3_0_0 extends Event_impl_ari_3_0_0 implements RecordingFinished, java.io.Serializable { -private static final long serialVersionUID = 1L; - /** Recording control object */ - private LiveRecording recording; - public LiveRecording getRecording() { - return recording; - } - - @JsonDeserialize( as=LiveRecording_impl_ari_3_0_0.class ) - public void setRecording(LiveRecording val ) { - recording = val; - } - -/** No missing signatures from interface */ -} - diff --git a/classes/ch/loway/oss/ari4java/generated/ari_3_0_0/models/RecordingStarted_impl_ari_3_0_0.java b/classes/ch/loway/oss/ari4java/generated/ari_3_0_0/models/RecordingStarted_impl_ari_3_0_0.java deleted file mode 100644 index 930c4a73..00000000 --- a/classes/ch/loway/oss/ari4java/generated/ari_3_0_0/models/RecordingStarted_impl_ari_3_0_0.java +++ /dev/null @@ -1,37 +0,0 @@ -package ch.loway.oss.ari4java.generated.ari_3_0_0.models; - -// ---------------------------------------------------- -// THIS CLASS WAS GENERATED AUTOMATICALLY -// PLEASE DO NOT EDIT -// Generated on: Tue Dec 19 09:55:49 CET 2017 -// ---------------------------------------------------- - -import ch.loway.oss.ari4java.generated.*; -import com.fasterxml.jackson.databind.annotation.JsonDeserialize; -import java.util.Date; -import java.util.List; -import java.util.Map; - -/********************************************************** - * Event showing the start of a recording operation. - * - * Defined in file: events.json - * Generated by: Model - *********************************************************/ - -public class RecordingStarted_impl_ari_3_0_0 extends Event_impl_ari_3_0_0 implements RecordingStarted, java.io.Serializable { -private static final long serialVersionUID = 1L; - /** Recording control object */ - private LiveRecording recording; - public LiveRecording getRecording() { - return recording; - } - - @JsonDeserialize( as=LiveRecording_impl_ari_3_0_0.class ) - public void setRecording(LiveRecording val ) { - recording = val; - } - -/** No missing signatures from interface */ -} - diff --git a/classes/ch/loway/oss/ari4java/generated/ari_3_0_0/models/SetId_impl_ari_3_0_0.java b/classes/ch/loway/oss/ari4java/generated/ari_3_0_0/models/SetId_impl_ari_3_0_0.java deleted file mode 100644 index c56d5bcd..00000000 --- a/classes/ch/loway/oss/ari4java/generated/ari_3_0_0/models/SetId_impl_ari_3_0_0.java +++ /dev/null @@ -1,48 +0,0 @@ -package ch.loway.oss.ari4java.generated.ari_3_0_0.models; - -// ---------------------------------------------------- -// THIS CLASS WAS GENERATED AUTOMATICALLY -// PLEASE DO NOT EDIT -// Generated on: Tue Dec 19 09:55:49 CET 2017 -// ---------------------------------------------------- - -import ch.loway.oss.ari4java.generated.*; -import com.fasterxml.jackson.databind.annotation.JsonDeserialize; -import java.util.Date; -import java.util.List; -import java.util.Map; - -/********************************************************** - * Effective user/group id - * - * Defined in file: asterisk.json - * Generated by: Model - *********************************************************/ - -public class SetId_impl_ari_3_0_0 implements SetId, java.io.Serializable { -private static final long serialVersionUID = 1L; - /** Effective group id. */ - private String group; - public String getGroup() { - return group; - } - - @JsonDeserialize( as=String.class ) - public void setGroup(String val ) { - group = val; - } - - /** Effective user id. */ - private String user; - public String getUser() { - return user; - } - - @JsonDeserialize( as=String.class ) - public void setUser(String val ) { - user = val; - } - -/** No missing signatures from interface */ -} - diff --git a/classes/ch/loway/oss/ari4java/generated/ari_3_0_0/models/Sound_impl_ari_3_0_0.java b/classes/ch/loway/oss/ari4java/generated/ari_3_0_0/models/Sound_impl_ari_3_0_0.java deleted file mode 100644 index 6ecb64c9..00000000 --- a/classes/ch/loway/oss/ari4java/generated/ari_3_0_0/models/Sound_impl_ari_3_0_0.java +++ /dev/null @@ -1,59 +0,0 @@ -package ch.loway.oss.ari4java.generated.ari_3_0_0.models; - -// ---------------------------------------------------- -// THIS CLASS WAS GENERATED AUTOMATICALLY -// PLEASE DO NOT EDIT -// Generated on: Tue Dec 19 09:55:49 CET 2017 -// ---------------------------------------------------- - -import ch.loway.oss.ari4java.generated.*; -import com.fasterxml.jackson.databind.annotation.JsonDeserialize; -import java.util.Date; -import java.util.List; -import java.util.Map; - -/********************************************************** - * A media file that may be played back. - * - * Defined in file: sounds.json - * Generated by: Model - *********************************************************/ - -public class Sound_impl_ari_3_0_0 implements Sound, java.io.Serializable { -private static final long serialVersionUID = 1L; - /** The formats and languages in which this sound is available. */ - private List formats; - public List getFormats() { - return formats; - } - - @JsonDeserialize( contentAs=FormatLangPair_impl_ari_3_0_0.class ) - public void setFormats(List val ) { - formats = val; - } - - /** Sound's identifier. */ - private String id; - public String getId() { - return id; - } - - @JsonDeserialize( as=String.class ) - public void setId(String val ) { - id = val; - } - - /** Text description of the sound, usually the words spoken. */ - private String text; - public String getText() { - return text; - } - - @JsonDeserialize( as=String.class ) - public void setText(String val ) { - text = val; - } - -/** No missing signatures from interface */ -} - diff --git a/classes/ch/loway/oss/ari4java/generated/ari_3_0_0/models/StasisEnd_impl_ari_3_0_0.java b/classes/ch/loway/oss/ari4java/generated/ari_3_0_0/models/StasisEnd_impl_ari_3_0_0.java deleted file mode 100644 index 081e3b33..00000000 --- a/classes/ch/loway/oss/ari4java/generated/ari_3_0_0/models/StasisEnd_impl_ari_3_0_0.java +++ /dev/null @@ -1,37 +0,0 @@ -package ch.loway.oss.ari4java.generated.ari_3_0_0.models; - -// ---------------------------------------------------- -// THIS CLASS WAS GENERATED AUTOMATICALLY -// PLEASE DO NOT EDIT -// Generated on: Tue Dec 19 09:55:49 CET 2017 -// ---------------------------------------------------- - -import ch.loway.oss.ari4java.generated.*; -import com.fasterxml.jackson.databind.annotation.JsonDeserialize; -import java.util.Date; -import java.util.List; -import java.util.Map; - -/********************************************************** - * Notification that a channel has left a Stasis application. - * - * Defined in file: events.json - * Generated by: Model - *********************************************************/ - -public class StasisEnd_impl_ari_3_0_0 extends Event_impl_ari_3_0_0 implements StasisEnd, java.io.Serializable { -private static final long serialVersionUID = 1L; - /** */ - private Channel channel; - public Channel getChannel() { - return channel; - } - - @JsonDeserialize( as=Channel_impl_ari_3_0_0.class ) - public void setChannel(Channel val ) { - channel = val; - } - -/** No missing signatures from interface */ -} - diff --git a/classes/ch/loway/oss/ari4java/generated/ari_3_0_0/models/StasisStart_impl_ari_3_0_0.java b/classes/ch/loway/oss/ari4java/generated/ari_3_0_0/models/StasisStart_impl_ari_3_0_0.java deleted file mode 100644 index 5ba2ed2b..00000000 --- a/classes/ch/loway/oss/ari4java/generated/ari_3_0_0/models/StasisStart_impl_ari_3_0_0.java +++ /dev/null @@ -1,59 +0,0 @@ -package ch.loway.oss.ari4java.generated.ari_3_0_0.models; - -// ---------------------------------------------------- -// THIS CLASS WAS GENERATED AUTOMATICALLY -// PLEASE DO NOT EDIT -// Generated on: Tue Dec 19 09:55:49 CET 2017 -// ---------------------------------------------------- - -import ch.loway.oss.ari4java.generated.*; -import com.fasterxml.jackson.databind.annotation.JsonDeserialize; -import java.util.Date; -import java.util.List; -import java.util.Map; - -/********************************************************** - * Notification that a channel has entered a Stasis application. - * - * Defined in file: events.json - * Generated by: Model - *********************************************************/ - -public class StasisStart_impl_ari_3_0_0 extends Event_impl_ari_3_0_0 implements StasisStart, java.io.Serializable { -private static final long serialVersionUID = 1L; - /** Arguments to the application */ - private List args; - public List getArgs() { - return args; - } - - @JsonDeserialize( contentAs=String.class ) - public void setArgs(List val ) { - args = val; - } - - /** */ - private Channel channel; - public Channel getChannel() { - return channel; - } - - @JsonDeserialize( as=Channel_impl_ari_3_0_0.class ) - public void setChannel(Channel val ) { - channel = val; - } - - /** */ - private Channel replace_channel; - public Channel getReplace_channel() { - return replace_channel; - } - - @JsonDeserialize( as=Channel_impl_ari_3_0_0.class ) - public void setReplace_channel(Channel val ) { - replace_channel = val; - } - -/** No missing signatures from interface */ -} - diff --git a/classes/ch/loway/oss/ari4java/generated/ari_3_0_0/models/StatusInfo_impl_ari_3_0_0.java b/classes/ch/loway/oss/ari4java/generated/ari_3_0_0/models/StatusInfo_impl_ari_3_0_0.java deleted file mode 100644 index 1f8ea65d..00000000 --- a/classes/ch/loway/oss/ari4java/generated/ari_3_0_0/models/StatusInfo_impl_ari_3_0_0.java +++ /dev/null @@ -1,48 +0,0 @@ -package ch.loway.oss.ari4java.generated.ari_3_0_0.models; - -// ---------------------------------------------------- -// THIS CLASS WAS GENERATED AUTOMATICALLY -// PLEASE DO NOT EDIT -// Generated on: Tue Dec 19 09:55:49 CET 2017 -// ---------------------------------------------------- - -import ch.loway.oss.ari4java.generated.*; -import com.fasterxml.jackson.databind.annotation.JsonDeserialize; -import java.util.Date; -import java.util.List; -import java.util.Map; - -/********************************************************** - * Info about Asterisk status - * - * Defined in file: asterisk.json - * Generated by: Model - *********************************************************/ - -public class StatusInfo_impl_ari_3_0_0 implements StatusInfo, java.io.Serializable { -private static final long serialVersionUID = 1L; - /** Time when Asterisk was last reloaded. */ - private Date last_reload_time; - public Date getLast_reload_time() { - return last_reload_time; - } - - @JsonDeserialize( as=Date.class ) - public void setLast_reload_time(Date val ) { - last_reload_time = val; - } - - /** Time when Asterisk was started. */ - private Date startup_time; - public Date getStartup_time() { - return startup_time; - } - - @JsonDeserialize( as=Date.class ) - public void setStartup_time(Date val ) { - startup_time = val; - } - -/** No missing signatures from interface */ -} - diff --git a/classes/ch/loway/oss/ari4java/generated/ari_3_0_0/models/StoredRecording_impl_ari_3_0_0.java b/classes/ch/loway/oss/ari4java/generated/ari_3_0_0/models/StoredRecording_impl_ari_3_0_0.java deleted file mode 100644 index acac8036..00000000 --- a/classes/ch/loway/oss/ari4java/generated/ari_3_0_0/models/StoredRecording_impl_ari_3_0_0.java +++ /dev/null @@ -1,48 +0,0 @@ -package ch.loway.oss.ari4java.generated.ari_3_0_0.models; - -// ---------------------------------------------------- -// THIS CLASS WAS GENERATED AUTOMATICALLY -// PLEASE DO NOT EDIT -// Generated on: Tue Dec 19 09:55:49 CET 2017 -// ---------------------------------------------------- - -import ch.loway.oss.ari4java.generated.*; -import com.fasterxml.jackson.databind.annotation.JsonDeserialize; -import java.util.Date; -import java.util.List; -import java.util.Map; - -/********************************************************** - * A past recording that may be played back. - * - * Defined in file: recordings.json - * Generated by: Model - *********************************************************/ - -public class StoredRecording_impl_ari_3_0_0 implements StoredRecording, java.io.Serializable { -private static final long serialVersionUID = 1L; - /** */ - private String format; - public String getFormat() { - return format; - } - - @JsonDeserialize( as=String.class ) - public void setFormat(String val ) { - format = val; - } - - /** */ - private String name; - public String getName() { - return name; - } - - @JsonDeserialize( as=String.class ) - public void setName(String val ) { - name = val; - } - -/** No missing signatures from interface */ -} - diff --git a/classes/ch/loway/oss/ari4java/generated/ari_3_0_0/models/SystemInfo_impl_ari_3_0_0.java b/classes/ch/loway/oss/ari4java/generated/ari_3_0_0/models/SystemInfo_impl_ari_3_0_0.java deleted file mode 100644 index 8c97aea0..00000000 --- a/classes/ch/loway/oss/ari4java/generated/ari_3_0_0/models/SystemInfo_impl_ari_3_0_0.java +++ /dev/null @@ -1,48 +0,0 @@ -package ch.loway.oss.ari4java.generated.ari_3_0_0.models; - -// ---------------------------------------------------- -// THIS CLASS WAS GENERATED AUTOMATICALLY -// PLEASE DO NOT EDIT -// Generated on: Tue Dec 19 09:55:49 CET 2017 -// ---------------------------------------------------- - -import ch.loway.oss.ari4java.generated.*; -import com.fasterxml.jackson.databind.annotation.JsonDeserialize; -import java.util.Date; -import java.util.List; -import java.util.Map; - -/********************************************************** - * Info about Asterisk - * - * Defined in file: asterisk.json - * Generated by: Model - *********************************************************/ - -public class SystemInfo_impl_ari_3_0_0 implements SystemInfo, java.io.Serializable { -private static final long serialVersionUID = 1L; - /** */ - private String entity_id; - public String getEntity_id() { - return entity_id; - } - - @JsonDeserialize( as=String.class ) - public void setEntity_id(String val ) { - entity_id = val; - } - - /** Asterisk version. */ - private String version; - public String getVersion() { - return version; - } - - @JsonDeserialize( as=String.class ) - public void setVersion(String val ) { - version = val; - } - -/** No missing signatures from interface */ -} - diff --git a/classes/ch/loway/oss/ari4java/generated/ari_3_0_0/models/TextMessageReceived_impl_ari_3_0_0.java b/classes/ch/loway/oss/ari4java/generated/ari_3_0_0/models/TextMessageReceived_impl_ari_3_0_0.java deleted file mode 100644 index 1f606582..00000000 --- a/classes/ch/loway/oss/ari4java/generated/ari_3_0_0/models/TextMessageReceived_impl_ari_3_0_0.java +++ /dev/null @@ -1,48 +0,0 @@ -package ch.loway.oss.ari4java.generated.ari_3_0_0.models; - -// ---------------------------------------------------- -// THIS CLASS WAS GENERATED AUTOMATICALLY -// PLEASE DO NOT EDIT -// Generated on: Tue Dec 19 09:55:49 CET 2017 -// ---------------------------------------------------- - -import ch.loway.oss.ari4java.generated.*; -import com.fasterxml.jackson.databind.annotation.JsonDeserialize; -import java.util.Date; -import java.util.List; -import java.util.Map; - -/********************************************************** - * A text message was received from an endpoint. - * - * Defined in file: events.json - * Generated by: Model - *********************************************************/ - -public class TextMessageReceived_impl_ari_3_0_0 extends Event_impl_ari_3_0_0 implements TextMessageReceived, java.io.Serializable { -private static final long serialVersionUID = 1L; - /** */ - private Endpoint endpoint; - public Endpoint getEndpoint() { - return endpoint; - } - - @JsonDeserialize( as=Endpoint_impl_ari_3_0_0.class ) - public void setEndpoint(Endpoint val ) { - endpoint = val; - } - - /** */ - private TextMessage message; - public TextMessage getMessage() { - return message; - } - - @JsonDeserialize( as=TextMessage_impl_ari_3_0_0.class ) - public void setMessage(TextMessage val ) { - message = val; - } - -/** No missing signatures from interface */ -} - diff --git a/classes/ch/loway/oss/ari4java/generated/ari_3_0_0/models/TextMessageVariable_impl_ari_3_0_0.java b/classes/ch/loway/oss/ari4java/generated/ari_3_0_0/models/TextMessageVariable_impl_ari_3_0_0.java deleted file mode 100644 index 51879983..00000000 --- a/classes/ch/loway/oss/ari4java/generated/ari_3_0_0/models/TextMessageVariable_impl_ari_3_0_0.java +++ /dev/null @@ -1,48 +0,0 @@ -package ch.loway.oss.ari4java.generated.ari_3_0_0.models; - -// ---------------------------------------------------- -// THIS CLASS WAS GENERATED AUTOMATICALLY -// PLEASE DO NOT EDIT -// Generated on: Tue Dec 19 09:55:49 CET 2017 -// ---------------------------------------------------- - -import ch.loway.oss.ari4java.generated.*; -import com.fasterxml.jackson.databind.annotation.JsonDeserialize; -import java.util.Date; -import java.util.List; -import java.util.Map; - -/********************************************************** - * A key/value pair variable in a text message. - * - * Defined in file: endpoints.json - * Generated by: Model - *********************************************************/ - -public class TextMessageVariable_impl_ari_3_0_0 implements TextMessageVariable, java.io.Serializable { -private static final long serialVersionUID = 1L; - /** A unique key identifying the variable. */ - private String key; - public String getKey() { - return key; - } - - @JsonDeserialize( as=String.class ) - public void setKey(String val ) { - key = val; - } - - /** The value of the variable. */ - private String value; - public String getValue() { - return value; - } - - @JsonDeserialize( as=String.class ) - public void setValue(String val ) { - value = val; - } - -/** No missing signatures from interface */ -} - diff --git a/classes/ch/loway/oss/ari4java/generated/ari_3_0_0/models/TextMessage_impl_ari_3_0_0.java b/classes/ch/loway/oss/ari4java/generated/ari_3_0_0/models/TextMessage_impl_ari_3_0_0.java deleted file mode 100644 index 5983ff28..00000000 --- a/classes/ch/loway/oss/ari4java/generated/ari_3_0_0/models/TextMessage_impl_ari_3_0_0.java +++ /dev/null @@ -1,70 +0,0 @@ -package ch.loway.oss.ari4java.generated.ari_3_0_0.models; - -// ---------------------------------------------------- -// THIS CLASS WAS GENERATED AUTOMATICALLY -// PLEASE DO NOT EDIT -// Generated on: Tue Dec 19 09:55:49 CET 2017 -// ---------------------------------------------------- - -import ch.loway.oss.ari4java.generated.*; -import com.fasterxml.jackson.databind.annotation.JsonDeserialize; -import java.util.Date; -import java.util.List; -import java.util.Map; - -/********************************************************** - * A text message. - * - * Defined in file: endpoints.json - * Generated by: Model - *********************************************************/ - -public class TextMessage_impl_ari_3_0_0 implements TextMessage, java.io.Serializable { -private static final long serialVersionUID = 1L; - /** The text of the message. */ - private String body; - public String getBody() { - return body; - } - - @JsonDeserialize( as=String.class ) - public void setBody(String val ) { - body = val; - } - - /** A technology specific URI specifying the source of the message. For sip and pjsip technologies, any SIP URI can be specified. For xmpp, the URI must correspond to the client connection being used to send the message. */ - private String from; - public String getFrom() { - return from; - } - - @JsonDeserialize( as=String.class ) - public void setFrom(String val ) { - from = val; - } - - /** A technology specific URI specifying the destination of the message. Valid technologies include sip, pjsip, and xmp. The destination of a message should be an endpoint. */ - private String to; - public String getTo() { - return to; - } - - @JsonDeserialize( as=String.class ) - public void setTo(String val ) { - to = val; - } - - /** Technology specific key/value pairs associated with the message. */ - private List variables; - public List getVariables() { - return variables; - } - - @JsonDeserialize( contentAs=TextMessageVariable_impl_ari_3_0_0.class ) - public void setVariables(List val ) { - variables = val; - } - -/** No missing signatures from interface */ -} - diff --git a/classes/ch/loway/oss/ari4java/generated/ari_3_0_0/models/Variable_impl_ari_3_0_0.java b/classes/ch/loway/oss/ari4java/generated/ari_3_0_0/models/Variable_impl_ari_3_0_0.java deleted file mode 100644 index fdd8b790..00000000 --- a/classes/ch/loway/oss/ari4java/generated/ari_3_0_0/models/Variable_impl_ari_3_0_0.java +++ /dev/null @@ -1,37 +0,0 @@ -package ch.loway.oss.ari4java.generated.ari_3_0_0.models; - -// ---------------------------------------------------- -// THIS CLASS WAS GENERATED AUTOMATICALLY -// PLEASE DO NOT EDIT -// Generated on: Tue Dec 19 09:55:49 CET 2017 -// ---------------------------------------------------- - -import ch.loway.oss.ari4java.generated.*; -import com.fasterxml.jackson.databind.annotation.JsonDeserialize; -import java.util.Date; -import java.util.List; -import java.util.Map; - -/********************************************************** - * The value of a channel variable - * - * Defined in file: asterisk.json - * Generated by: Model - *********************************************************/ - -public class Variable_impl_ari_3_0_0 implements Variable, java.io.Serializable { -private static final long serialVersionUID = 1L; - /** The value of the variable requested */ - private String value; - public String getValue() { - return value; - } - - @JsonDeserialize( as=String.class ) - public void setValue(String val ) { - value = val; - } - -/** No missing signatures from interface */ -} - From b2c582772feb94e7812285ff146e6a1834556331 Mon Sep 17 00:00:00 2001 From: Naama Gertel Date: Mon, 7 Jan 2019 17:10:25 +0200 Subject: [PATCH 037/220] need to unsubscribe for all event sources on a given application when calling ari.cleanup(), so that astersik will stop sending messages to an application that was unregistered (issue 59 in ari4java) --- classes/ch/loway/oss/ari4java/ARI.java | 33 +++++++++++++++++++------- 1 file changed, 25 insertions(+), 8 deletions(-) diff --git a/classes/ch/loway/oss/ari4java/ARI.java b/classes/ch/loway/oss/ari4java/ARI.java index 9679cf56..359107ae 100644 --- a/classes/ch/loway/oss/ari4java/ARI.java +++ b/classes/ch/loway/oss/ari4java/ARI.java @@ -368,7 +368,7 @@ private static String findVersionString(String response) throws ARIException { */ public void cleanup() throws ARIException { - + unsubscribeApplication(); for (BaseAriAction liveAction : liveActionList) { try { closeAction(liveAction); @@ -387,6 +387,30 @@ public void cleanup() throws ARIException { } /** + * unsubscribe from all resources of the stasis application + * @throws RestException + */ + private void unsubscribeApplication() throws RestException { + Application application = applications().get(appName); + // unsubscribe from all channels + for(int i = 0; i Date: Mon, 7 Jan 2019 19:00:56 +0200 Subject: [PATCH 038/220] update changes in readme, update jackson to a newer version and update project version --- README.md | 15 ++++----------- build.gradle | 8 ++++---- 2 files changed, 8 insertions(+), 15 deletions(-) diff --git a/README.md b/README.md index 2c9766a1..8c880a09 100644 --- a/README.md +++ b/README.md @@ -55,14 +55,6 @@ generated classes are under "ch.loway.oss.ari4vaja.generated". They should not b * "codegen/" contains the Java code that creates auto-generated classes. * "codegen-data/" contains Swagger models from different versions of the interface (copied from Asterisk). -Creating Java code out of Swagger definitions ---------------------------------------------- - -In order to run codegen (class ch.loway.oss.ari4java.codegen.run), you need the following libraries: - -- jackson-core-2.2.2 -- jackson-databind-2.2.2 -- jackson-annotations-2.2.2 Testing and packaging --------------------- @@ -79,14 +71,15 @@ Running The project requires: -- jackson-core-2.2.2 -- jackson-databind-2.2.2 -- jackson-annotations-2.2.2 +- jackson-core-2.9.6 +- jackson-databind-2.9.6 +- jackson-annotations-2.9.6 - netty-all-4.0.25-Final Status ------ +* 19.01.07 - Support java 9 (#108), code generation from gradle(#110), fixed unsubscribing from application correctly(#59), added event interface inheritance(#106) rel 0.5.0 * 17.12.19 - Added support for ARI 3.0.0 (#78) * 17.02.04 - Added support for ARI 2.0.0 (#62) and quicker deserialization (#63) * 16.11.30 - Fixes on Graham's AutoReconnect patch - #60 - rel 0.4.3 diff --git a/build.gradle b/build.gradle index fed41123..2c7eb476 100644 --- a/build.gradle +++ b/build.gradle @@ -9,7 +9,7 @@ def env = System.getenv() project.ext { webapp_name = 'ari4java' - app_version = '0.4.5' + app_version = '0.5.0' build_number = env["BUILD_NUMBER"] version_class = 'ch/loway/oss/ari4java/BUILD.java' build_time = "" + new Date() @@ -101,9 +101,9 @@ repositories { dependencies { compile 'ari4java:codegen' - compile 'com.fasterxml.jackson.core:jackson-core:2.2.2' - compile 'com.fasterxml.jackson.core:jackson-databind:2.2.2' - compile 'com.fasterxml.jackson.core:jackson-annotations:2.2.2' + compile 'com.fasterxml.jackson.core:jackson-core:2.9.6' + compile 'com.fasterxml.jackson.core:jackson-databind:2.9.6' + compile 'com.fasterxml.jackson.core:jackson-annotations:2.9.6' compile 'io.netty:netty-all:4.0.25.Final' compile 'javax.xml.bind:jaxb-api:2.1' From 21ca7ab277ed98e722b258938b8b8d6e32970bf5 Mon Sep 17 00:00:00 2001 From: lenz Date: Sat, 12 Jan 2019 12:32:56 +0100 Subject: [PATCH 039/220] Released 0.5.0 --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 8c880a09..f9bc1835 100644 --- a/README.md +++ b/README.md @@ -39,7 +39,7 @@ If you use Gradle (or any tool using Maven dependencies) you can simply declare dependencies { - compile 'ch.loway.oss.ari4java:ari4java:0.4.5' + compile 'ch.loway.oss.ari4java:ari4java:0.5.0' } This will download the package and all required dependencies. From dc4ac0901d678ce0ff92a5bf981475e663769a89 Mon Sep 17 00:00:00 2001 From: sere Date: Tue, 5 Feb 2019 14:54:05 +0100 Subject: [PATCH 040/220] ARI_4_0_0 --- classes/ch/loway/oss/ari4java/AriVersion.java | 8 +- codegen-data/ari_4_0_0/README.md | 1 + codegen-data/ari_4_0_0/applications.json | 172 ++ codegen-data/ari_4_0_0/asterisk.json | 692 +++++++ codegen-data/ari_4_0_0/bridges.json | 760 +++++++ codegen-data/ari_4_0_0/channels.json | 1779 +++++++++++++++++ codegen-data/ari_4_0_0/deviceStates.json | 154 ++ codegen-data/ari_4_0_0/endpoints.json | 279 +++ codegen-data/ari_4_0_0/events.json | 898 +++++++++ codegen-data/ari_4_0_0/mailboxes.json | 137 ++ codegen-data/ari_4_0_0/playbacks.json | 164 ++ codegen-data/ari_4_0_0/recordings.json | 413 ++++ codegen-data/ari_4_0_0/sounds.json | 99 + .../ch/loway/oss/ari4java/codegen/run.java | 3 +- 14 files changed, 5555 insertions(+), 4 deletions(-) create mode 100644 codegen-data/ari_4_0_0/README.md create mode 100644 codegen-data/ari_4_0_0/applications.json create mode 100644 codegen-data/ari_4_0_0/asterisk.json create mode 100644 codegen-data/ari_4_0_0/bridges.json create mode 100644 codegen-data/ari_4_0_0/channels.json create mode 100644 codegen-data/ari_4_0_0/deviceStates.json create mode 100644 codegen-data/ari_4_0_0/endpoints.json create mode 100644 codegen-data/ari_4_0_0/events.json create mode 100644 codegen-data/ari_4_0_0/mailboxes.json create mode 100644 codegen-data/ari_4_0_0/playbacks.json create mode 100644 codegen-data/ari_4_0_0/recordings.json create mode 100644 codegen-data/ari_4_0_0/sounds.json diff --git a/classes/ch/loway/oss/ari4java/AriVersion.java b/classes/ch/loway/oss/ari4java/AriVersion.java index d04f2618..6f6d5305 100644 --- a/classes/ch/loway/oss/ari4java/AriVersion.java +++ b/classes/ch/loway/oss/ari4java/AriVersion.java @@ -12,7 +12,7 @@ import ch.loway.oss.ari4java.generated.ari_1_9_0.AriBuilder_impl_ari_1_9_0; import ch.loway.oss.ari4java.generated.ari_2_0_0.AriBuilder_impl_ari_2_0_0; import ch.loway.oss.ari4java.generated.ari_3_0_0.AriBuilder_impl_ari_3_0_0; - +import ch.loway.oss.ari4java.generated.ari_4_0_0.AriBuilder_impl_ari_4_0_0; import ch.loway.oss.ari4java.tools.ARIException; /** @@ -42,8 +42,10 @@ public enum AriVersion { /** Asterisk 14.2.1 */ ARI_2_0_0 ( "2.0.0", new AriBuilder_impl_ari_2_0_0() ), /** Asterisk 15.1.4 */ - ARI_3_0_0 ( "3.0.0", new AriBuilder_impl_ari_3_0_0() ), /** Asterisk 15.1.4 */ - + ARI_3_0_0 ( "3.0.0", new AriBuilder_impl_ari_3_0_0() ), + /** Asterisk 16.1.1 */ + ARI_4_0_0 ( "4.0.0", new AriBuilder_impl_ari_4_0_0() ), + IM_FEELING_LUCKY ( "", null ); diff --git a/codegen-data/ari_4_0_0/README.md b/codegen-data/ari_4_0_0/README.md new file mode 100644 index 00000000..414a3b6f --- /dev/null +++ b/codegen-data/ari_4_0_0/README.md @@ -0,0 +1 @@ +Snapshot taken from Asterisk 16.1.1 diff --git a/codegen-data/ari_4_0_0/applications.json b/codegen-data/ari_4_0_0/applications.json new file mode 100644 index 00000000..cdd69c41 --- /dev/null +++ b/codegen-data/ari_4_0_0/applications.json @@ -0,0 +1,172 @@ +{ + "_copyright": "Copyright (C) 2013, Digium, Inc.", + "_author": "David M. Lee, II ", + "_svn_revision": "$Revision$", + "apiVersion": "2.0.0", + "swaggerVersion": "1.1", + "basePath": "http://localhost:8088/ari", + "resourcePath": "/api-docs/applications.{format}", + "apis": [ + { + "path": "/applications", + "description": "Stasis applications", + "operations": [ + { + "httpMethod": "GET", + "summary": "List all applications.", + "nickname": "list", + "responseClass": "List[Application]" + } + ] + }, + { + "path": "/applications/{applicationName}", + "description": "Stasis application", + "operations": [ + { + "httpMethod": "GET", + "summary": "Get details of an application.", + "nickname": "get", + "responseClass": "Application", + "parameters": [ + { + "name": "applicationName", + "description": "Application's name", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Application does not exist." + } + ] + } + ] + }, + { + "path": "/applications/{applicationName}/subscription", + "description": "Stasis application", + "operations": [ + { + "httpMethod": "POST", + "summary": "Subscribe an application to a event source.", + "notes": "Returns the state of the application after the subscriptions have changed", + "nickname": "subscribe", + "responseClass": "Application", + "parameters": [ + { + "name": "applicationName", + "description": "Application's name", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "eventSource", + "description": "URI for event source (channel:{channelId}, bridge:{bridgeId}, endpoint:{tech}[/{resource}], deviceState:{deviceName}", + "paramType": "query", + "required": true, + "allowMultiple": true, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 400, + "reason": "Missing parameter." + }, + { + "code": 404, + "reason": "Application does not exist." + }, + { + "code": 422, + "reason": "Event source does not exist." + } + ] + }, + { + "httpMethod": "DELETE", + "summary": "Unsubscribe an application from an event source.", + "notes": "Returns the state of the application after the subscriptions have changed", + "nickname": "unsubscribe", + "responseClass": "Application", + "parameters": [ + { + "name": "applicationName", + "description": "Application's name", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "eventSource", + "description": "URI for event source (channel:{channelId}, bridge:{bridgeId}, endpoint:{tech}[/{resource}], deviceState:{deviceName}", + "paramType": "query", + "required": true, + "allowMultiple": true, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 400, + "reason": "Missing parameter; event source scheme not recognized." + }, + { + "code": 404, + "reason": "Application does not exist." + }, + { + "code": 409, + "reason": "Application not subscribed to event source." + }, + { + "code": 422, + "reason": "Event source does not exist." + } + ] + } + ] + } + ], + "models": { + "Application": { + "id": "Application", + "description": "Details of a Stasis application", + "properties": { + "name": { + "type": "string", + "description": "Name of this application", + "required": true + }, + "channel_ids": { + "type": "List[string]", + "description": "Id's for channels subscribed to.", + "required": true + }, + "bridge_ids": { + "type": "List[string]", + "description": "Id's for bridges subscribed to.", + "required": true + }, + "endpoint_ids": { + "type": "List[string]", + "description": "{tech}/{resource} for endpoints subscribed to.", + "required": true + }, + "device_names": { + "type": "List[string]", + "description": "Names of the devices subscribed to.", + "required": true + } + } + } + } +} diff --git a/codegen-data/ari_4_0_0/asterisk.json b/codegen-data/ari_4_0_0/asterisk.json new file mode 100644 index 00000000..f40bf5c6 --- /dev/null +++ b/codegen-data/ari_4_0_0/asterisk.json @@ -0,0 +1,692 @@ +{ + "_copyright": "Copyright (C) 2012 - 2013, Digium, Inc.", + "_author": "David M. Lee, II ", + "_svn_revision": "$Revision$", + "apiVersion": "2.0.0", + "swaggerVersion": "1.1", + "basePath": "http://localhost:8088/ari", + "resourcePath": "/api-docs/asterisk.{format}", + "apis": [ + { + "path": "/asterisk/config/dynamic/{configClass}/{objectType}/{id}", + "description": "Asterisk dynamic configuration", + "operations": [ + { + "httpMethod": "GET", + "summary": "Retrieve a dynamic configuration object.", + "nickname": "getObject", + "responseClass": "List[ConfigTuple]", + "parameters": [ + { + "name": "configClass", + "description": "The configuration class containing dynamic configuration objects.", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "objectType", + "description": "The type of configuration object to retrieve.", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "id", + "description": "The unique identifier of the object to retrieve.", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "{configClass|objectType|id} not found" + } + ] + }, + { + "httpMethod": "PUT", + "summary": "Create or update a dynamic configuration object.", + "nickname": "updateObject", + "responseClass": "List[ConfigTuple]", + "parameters": [ + { + "name": "configClass", + "description": "The configuration class containing dynamic configuration objects.", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "objectType", + "description": "The type of configuration object to create or update.", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "id", + "description": "The unique identifier of the object to create or update.", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "fields", + "description": "The body object should have a value that is a list of ConfigTuples, which provide the fields to update. Ex. [ { \"attribute\": \"directmedia\", \"value\": \"false\" } ]", + "paramType": "body", + "required": false, + "dataType": "containers", + "allowMultiple": false + } + ], + "errorResponses": [ + { + "code": 400, + "reason": "Bad request body" + }, + { + "code": 403, + "reason": "Could not create or update object" + }, + { + "code": 404, + "reason": "{configClass|objectType} not found" + } + ] + }, + { + "httpMethod": "DELETE", + "summary": "Delete a dynamic configuration object.", + "nickname": "deleteObject", + "responseClass": "void", + "parameters": [ + { + "name": "configClass", + "description": "The configuration class containing dynamic configuration objects.", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "objectType", + "description": "The type of configuration object to delete.", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "id", + "description": "The unique identifier of the object to delete.", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 403, + "reason": "Could not delete object" + }, + { + "code": 404, + "reason": "{configClass|objectType|id} not found" + } + ] + } + ] + }, + { + "path": "/asterisk/info", + "description": "Asterisk system information (similar to core show settings)", + "operations": [ + { + "httpMethod": "GET", + "summary": "Gets Asterisk system information.", + "nickname": "getInfo", + "responseClass": "AsteriskInfo", + "parameters": [ + { + "name": "only", + "description": "Filter information returned", + "paramType": "query", + "required": false, + "allowMultiple": true, + "dataType": "string", + "allowableValues": { + "valueType": "LIST", + "values": [ + "build", + "system", + "config", + "status" + ] + } + } + ] + } + ] + }, + { + "path": "/asterisk/modules", + "description": "Asterisk modules", + "operations": [ + { + "httpMethod": "GET", + "summary": "List Asterisk modules.", + "nickname": "listModules", + "responseClass": "List[Module]" + } + ] + }, + { + "path": "/asterisk/modules/{moduleName}", + "description": "Asterisk module", + "operations": [ + { + "httpMethod": "GET", + "summary": "Get Asterisk module information.", + "nickname": "getModule", + "responseClass": "Module", + "parameters": [ + { + "name": "moduleName", + "description": "Module's name", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Module could not be found in running modules." + }, + { + "code": 409, + "reason": "Module information could not be retrieved." + } + ] + }, + { + "httpMethod": "POST", + "summary": "Load an Asterisk module.", + "nickname": "loadModule", + "responseClass": "void", + "parameters": [ + { + "name": "moduleName", + "description": "Module's name", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 409, + "reason": "Module could not be loaded." + } + ] + }, + { + "httpMethod": "DELETE", + "summary": "Unload an Asterisk module.", + "nickname": "unloadModule", + "responseClass": "void", + "parameters": [ + { + "name": "moduleName", + "description": "Module's name", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Module not found in running modules." + }, + { + "code": 409, + "reason": "Module could not be unloaded." + } + ] + }, + { + "httpMethod": "PUT", + "summary": "Reload an Asterisk module.", + "nickname": "reloadModule", + "responseClass": "void", + "parameters": [ + { + "name": "moduleName", + "description": "Module's name", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Module not found in running modules." + }, + { + "code": 409, + "reason": "Module could not be reloaded." + } + ] + } + ] + }, + { + "path": "/asterisk/logging", + "description": "Asterisk log channels", + "operations": [ + { + "httpMethod": "GET", + "summary": "Gets Asterisk log channel information.", + "nickname": "listLogChannels", + "responseClass": "List[LogChannel]" + } + ] + }, + { + "path": "/asterisk/logging/{logChannelName}", + "description": "Asterisk log channel", + "operations": [ + { + "httpMethod": "POST", + "summary": "Adds a log channel.", + "nickname": "addLog", + "responseClass": "void", + "parameters": [ + { + "name": "logChannelName", + "description": "The log channel to add", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "configuration", + "description": "levels of the log channel", + "paramType": "query", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 400, + "reason": "Bad request body" + }, + { + "code": 409, + "reason": "Log channel could not be created." + } + ] + }, + { + "httpMethod": "DELETE", + "summary": "Deletes a log channel.", + "nickname": "deleteLog", + "responseClass": "void", + "parameters": [ + { + "name": "logChannelName", + "description": "Log channels name", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Log channel does not exist." + } + ] + } + ] + }, + { + "path": "/asterisk/logging/{logChannelName}/rotate", + "description": "Asterisk log channel", + "operations": [ + { + "httpMethod": "PUT", + "summary": "Rotates a log channel.", + "nickname": "rotateLog", + "responseClass": "void", + "parameters": [ + { + "name": "logChannelName", + "description": "Log channel's name", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Log channel does not exist." + } + ] + } + ] + }, + { + "path": "/asterisk/variable", + "description": "Global variables", + "operations": [ + { + "httpMethod": "GET", + "summary": "Get the value of a global variable.", + "nickname": "getGlobalVar", + "responseClass": "Variable", + "parameters": [ + { + "name": "variable", + "description": "The variable to get", + "paramType": "query", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 400, + "reason": "Missing variable parameter." + } + ] + }, + { + "httpMethod": "POST", + "summary": "Set the value of a global variable.", + "nickname": "setGlobalVar", + "responseClass": "void", + "parameters": [ + { + "name": "variable", + "description": "The variable to set", + "paramType": "query", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "value", + "description": "The value to set the variable to", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 400, + "reason": "Missing variable parameter." + } + ] + } + ] + } + ], + "models": { + "BuildInfo": { + "id": "BuildInfo", + "description": "Info about how Asterisk was built", + "properties": { + "os": { + "required": true, + "type": "string", + "description": "OS Asterisk was built on." + }, + "kernel": { + "required": true, + "type": "string", + "description": "Kernel version Asterisk was built on." + }, + "options": { + "required": true, + "type": "string", + "description": "Compile time options, or empty string if default." + }, + "machine": { + "required": true, + "type": "string", + "description": "Machine architecture (x86_64, i686, ppc, etc.)" + }, + "date": { + "required": true, + "type": "string", + "description": "Date and time when Asterisk was built." + }, + "user": { + "required": true, + "type": "string", + "description": "Username that build Asterisk" + } + } + }, + "SystemInfo": { + "id": "SystemInfo", + "description": "Info about Asterisk", + "properties": { + "version": { + "required": true, + "type": "string", + "description": "Asterisk version." + }, + "entity_id": { + "required": true, + "type": "string", + "description": "" + } + } + }, + "SetId": { + "id": "SetId", + "description": "Effective user/group id", + "properties": { + "user": { + "required": true, + "type": "string", + "description": "Effective user id." + }, + "group": { + "required": true, + "type": "string", + "description": "Effective group id." + } + } + }, + "ConfigInfo": { + "id": "ConfigInfo", + "description": "Info about Asterisk configuration", + "properties": { + "name": { + "required": true, + "type": "string", + "description": "Asterisk system name." + }, + "default_language": { + "required": true, + "type": "string", + "description": "Default language for media playback." + }, + "max_channels": { + "required": false, + "type": "int", + "description": "Maximum number of simultaneous channels." + }, + "max_open_files": { + "required": false, + "type": "int", + "description": "Maximum number of open file handles (files, sockets)." + }, + "max_load": { + "required": false, + "type": "double", + "description": "Maximum load avg on system." + }, + "setid": { + "required": true, + "type": "SetId", + "description": "Effective user/group id for running Asterisk." + } + } + }, + "StatusInfo": { + "id": "StatusInfo", + "description": "Info about Asterisk status", + "properties": { + "startup_time": { + "required": true, + "type": "Date", + "description": "Time when Asterisk was started." + }, + "last_reload_time": { + "required": true, + "type": "Date", + "description": "Time when Asterisk was last reloaded." + } + } + }, + "AsteriskInfo": { + "id": "AsteriskInfo", + "description": "Asterisk system information", + "properties": { + "build": { + "required": false, + "type": "BuildInfo", + "description": "Info about how Asterisk was built" + }, + "system": { + "required": false, + "type": "SystemInfo", + "description": "Info about the system running Asterisk" + }, + "config": { + "required": false, + "type": "ConfigInfo", + "description": "Info about Asterisk configuration" + }, + "status": { + "required": false, + "type": "StatusInfo", + "description": "Info about Asterisk status" + } + } + }, + "Module": { + "id": "Module", + "description": "Details of an Asterisk module", + "properties": { + "name": { + "type": "string", + "description": "The name of this module", + "required": true + }, + "description": { + "type": "string", + "description": "The description of this module", + "required": true + }, + "use_count": { + "type": "int", + "description": "The number of times this module is being used", + "required": true + }, + "status": { + "type": "string", + "description": "The running status of this module", + "required": true + }, + "support_level": { + "type": "string", + "description": "The support state of this module", + "required": true + } + } + }, + "LogChannel": { + "id": "LogChannel", + "description": "Details of an Asterisk log channel", + "properties": { + "channel": { + "type": "string", + "description": "The log channel path", + "required": true + }, + "type": { + "type": "string", + "description": "Types of logs for the log channel", + "required": true + }, + "status": { + "type": "string", + "description": "Whether or not a log type is enabled", + "required": true + }, + "configuration": { + "type": "string", + "description": "The various log levels", + "required": true + } + } + }, + "Variable": { + "id": "Variable", + "description": "The value of a channel variable", + "properties": { + "value": { + "required": true, + "type": "string", + "description": "The value of the variable requested" + } + } + }, + "ConfigTuple": { + "id": "ConfigTuple", + "description": "A key/value pair that makes up part of a configuration object.", + "properties": { + "attribute": { + "required": true, + "type": "string", + "description": "A configuration object attribute." + }, + "value": { + "required": true, + "type": "string", + "description": "The value for the attribute." + } + } + } + } +} diff --git a/codegen-data/ari_4_0_0/bridges.json b/codegen-data/ari_4_0_0/bridges.json new file mode 100644 index 00000000..04416c12 --- /dev/null +++ b/codegen-data/ari_4_0_0/bridges.json @@ -0,0 +1,760 @@ +{ + "_copyright": "Copyright (C) 2012 - 2013, Digium, Inc.", + "_author": "David M. Lee, II ", + "_svn_revision": "$Revision$", + "apiVersion": "2.0.0", + "swaggerVersion": "1.1", + "basePath": "http://localhost:8088/ari", + "resourcePath": "/api-docs/bridges.{format}", + "requiresModules": [ + "res_stasis_recording", + "res_stasis_playback" + ], + "apis": [ + { + "path": "/bridges", + "description": "Active bridges", + "operations": [ + { + "httpMethod": "GET", + "summary": "List all active bridges in Asterisk.", + "nickname": "list", + "responseClass": "List[Bridge]" + }, + { + "httpMethod": "POST", + "summary": "Create a new bridge.", + "notes": "This bridge persists until it has been shut down, or Asterisk has been shut down.", + "nickname": "create", + "responseClass": "Bridge", + "parameters": [ + { + "name": "type", + "description": "Comma separated list of bridge type attributes (mixing, holding, dtmf_events, proxy_media, video_sfu).", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "bridgeId", + "description": "Unique ID to give to the bridge being created.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "name", + "description": "Name to give to the bridge being created.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + } + ] + } + ] + }, + { + "path": "/bridges/{bridgeId}", + "description": "Individual bridge", + "operations": [ + { + "httpMethod": "POST", + "summary": "Create a new bridge or updates an existing one.", + "notes": "This bridge persists until it has been shut down, or Asterisk has been shut down.", + "nickname": "createWithId", + "responseClass": "Bridge", + "parameters": [ + { + "name": "type", + "description": "Comma separated list of bridge type attributes (mixing, holding, dtmf_events, proxy_media, video_sfu) to set.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "bridgeId", + "description": "Unique ID to give to the bridge being created.", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "name", + "description": "Set the name of the bridge.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + } + ] + }, + { + "httpMethod": "GET", + "summary": "Get bridge details.", + "nickname": "get", + "responseClass": "Bridge", + "parameters": [ + { + "name": "bridgeId", + "description": "Bridge's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Bridge not found" + } + ] + }, + { + "httpMethod": "DELETE", + "summary": "Shut down a bridge.", + "notes": "If any channels are in this bridge, they will be removed and resume whatever they were doing beforehand.", + "nickname": "destroy", + "responseClass": "void", + "parameters": [ + { + "name": "bridgeId", + "description": "Bridge's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Bridge not found" + } + ] + } + ] + }, + { + "path": "/bridges/{bridgeId}/addChannel", + "description": "Add a channel to a bridge", + "operations": [ + { + "httpMethod": "POST", + "summary": "Add a channel to a bridge.", + "nickname": "addChannel", + "responseClass": "void", + "parameters": [ + { + "name": "bridgeId", + "description": "Bridge's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "channel", + "description": "Ids of channels to add to bridge", + "paramType": "query", + "required": true, + "allowMultiple": true, + "dataType": "string" + }, + { + "name": "role", + "description": "Channel's role in the bridge", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "absorbDTMF", + "description": "Absorb DTMF coming from this channel, preventing it to pass through to the bridge", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "boolean", + "defaultValue": false + }, + { + "name": "mute", + "description": "Mute audio from this channel, preventing it to pass through to the bridge", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "boolean", + "defaultValue": false + } + ], + "errorResponses": [ + { + "code": 400, + "reason": "Channel not found" + }, + { + "code": 404, + "reason": "Bridge not found" + }, + { + "code": 409, + "reason": "Bridge not in Stasis application; Channel currently recording" + }, + { + "code": 422, + "reason": "Channel not in Stasis application" + } + ] + } + ] + }, + { + "path": "/bridges/{bridgeId}/removeChannel", + "description": "Remove a channel from a bridge", + "operations": [ + { + "httpMethod": "POST", + "summary": "Remove a channel from a bridge.", + "nickname": "removeChannel", + "responseClass": "void", + "parameters": [ + { + "name": "bridgeId", + "description": "Bridge's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "channel", + "description": "Ids of channels to remove from bridge", + "paramType": "query", + "required": true, + "allowMultiple": true, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 400, + "reason": "Channel not found" + }, + { + "code": 404, + "reason": "Bridge not found" + }, + { + "code": 409, + "reason": "Bridge not in Stasis application" + }, + { + "code": 422, + "reason": "Channel not in this bridge" + } + ] + } + ] + }, + { + "path": "/bridges/{bridgeId}/videoSource/{channelId}", + "description": "Set a channel as the video source in a multi-party bridge", + "operations": [ + { + "httpMethod": "POST", + "summary": "Set a channel as the video source in a multi-party mixing bridge. This operation has no effect on bridges with two or fewer participants.", + "nickname": "setVideoSource", + "responseClass": "void", + "parameters": [ + { + "name": "bridgeId", + "description": "Bridge's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "channelId", + "description": "Channel's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Bridge or Channel not found" + }, + { + "code": 409, + "reason": "Channel not in Stasis application" + }, + { + "code": 422, + "reason": "Channel not in this Bridge" + } + ] + } + ] + }, + { + "path": "/bridges/{bridgeId}/videoSource", + "description": "Removes any explicit video source", + "operations": [ + { + "httpMethod": "DELETE", + "summary": "Removes any explicit video source in a multi-party mixing bridge. This operation has no effect on bridges with two or fewer participants. When no explicit video source is set, talk detection will be used to determine the active video stream.", + "nickname": "clearVideoSource", + "responseClass": "void", + "parameters": [ + { + "name": "bridgeId", + "description": "Bridge's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Bridge not found" + } + ] + } + ] + }, + { + "path": "/bridges/{bridgeId}/moh", + "description": "Play music on hold to a bridge", + "operations": [ + { + "httpMethod": "POST", + "summary": "Play music on hold to a bridge or change the MOH class that is playing.", + "nickname": "startMoh", + "responseClass": "void", + "parameters": [ + { + "name": "bridgeId", + "description": "Bridge's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "mohClass", + "description": "Channel's id", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Bridge not found" + }, + { + "code": 409, + "reason": "Bridge not in Stasis application" + } + ] + }, + { + "httpMethod": "DELETE", + "summary": "Stop playing music on hold to a bridge.", + "notes": "This will only stop music on hold being played via POST bridges/{bridgeId}/moh.", + "nickname": "stopMoh", + "responseClass": "void", + "parameters": [ + { + "name": "bridgeId", + "description": "Bridge's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Bridge not found" + }, + { + "code": 409, + "reason": "Bridge not in Stasis application" + } + ] + } + ] + }, + { + "path": "/bridges/{bridgeId}/play", + "description": "Play media to the participants of a bridge", + "operations": [ + { + "httpMethod": "POST", + "summary": "Start playback of media on a bridge.", + "notes": "The media URI may be any of a number of URI's. Currently sound:, recording:, number:, digits:, characters:, and tone: URI's are supported. This operation creates a playback resource that can be used to control the playback of media (pause, rewind, fast forward, etc.)", + "nickname": "play", + "responseClass": "Playback", + "parameters": [ + { + "name": "bridgeId", + "description": "Bridge's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "media", + "description": "Media URIs to play.", + "paramType": "query", + "required": true, + "allowMultiple": true, + "dataType": "string" + }, + { + "name": "lang", + "description": "For sounds, selects language for sound.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "offsetms", + "description": "Number of milliseconds to skip before playing. Only applies to the first URI if multiple media URIs are specified.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "int", + "defaultValue": 0, + "allowableValues": { + "valueType": "RANGE", + "min": 0 + } + + }, + { + "name": "skipms", + "description": "Number of milliseconds to skip for forward/reverse operations.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "int", + "defaultValue": 3000, + "allowableValues": { + "valueType": "RANGE", + "min": 0 + } + }, + { + "name": "playbackId", + "description": "Playback Id.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Bridge not found" + }, + { + "code": 409, + "reason": "Bridge not in a Stasis application" + } + ] + } + ] + }, + { + "path": "/bridges/{bridgeId}/play/{playbackId}", + "description": "Play media to a bridge", + "operations": [ + { + "httpMethod": "POST", + "summary": "Start playback of media on a bridge.", + "notes": "The media URI may be any of a number of URI's. Currently sound:, recording:, number:, digits:, characters:, and tone: URI's are supported. This operation creates a playback resource that can be used to control the playback of media (pause, rewind, fast forward, etc.)", + "nickname": "playWithId", + "responseClass": "Playback", + "parameters": [ + { + "name": "bridgeId", + "description": "Bridge's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "playbackId", + "description": "Playback ID.", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "media", + "description": "Media URIs to play.", + "paramType": "query", + "required": true, + "allowMultiple": true, + "dataType": "string" + }, + { + "name": "lang", + "description": "For sounds, selects language for sound.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "offsetms", + "description": "Number of milliseconds to skip before playing. Only applies to the first URI if multiple media URIs are specified.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "int", + "defaultValue": 0, + "allowableValues": { + "valueType": "RANGE", + "min": 0 + } + }, + { + "name": "skipms", + "description": "Number of milliseconds to skip for forward/reverse operations.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "int", + "defaultValue": 3000, + "allowableValues": { + "valueType": "RANGE", + "min": 0 + } + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Bridge not found" + }, + { + "code": 409, + "reason": "Bridge not in a Stasis application" + } + ] + + } + ] + }, + { + "path": "/bridges/{bridgeId}/record", + "description": "Record audio on a bridge", + "operations": [ + { + "httpMethod": "POST", + "summary": "Start a recording.", + "notes": "This records the mixed audio from all channels participating in this bridge.", + "nickname": "record", + "responseClass": "LiveRecording", + "parameters": [ + { + "name": "bridgeId", + "description": "Bridge's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "name", + "description": "Recording's filename", + "paramType": "query", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "format", + "description": "Format to encode audio in", + "paramType": "query", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "maxDurationSeconds", + "description": "Maximum duration of the recording, in seconds. 0 for no limit.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "int", + "defaultValue": 0, + "allowableValues": { + "valueType": "RANGE", + "min": 0 + } + }, + { + "name": "maxSilenceSeconds", + "description": "Maximum duration of silence, in seconds. 0 for no limit.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "int", + "defaultValue": 0, + "allowableValues": { + "valueType": "RANGE", + "min": 0 + } + }, + { + "name": "ifExists", + "description": "Action to take if a recording with the same name already exists.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string", + "defaultValue": "fail", + "allowableValues": { + "valueType": "LIST", + "values": [ + "fail", + "overwrite", + "append" + ] + } + }, + { + "name": "beep", + "description": "Play beep when recording begins", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "boolean", + "defaultValue": false + }, + { + "name": "terminateOn", + "description": "DTMF input to terminate recording.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string", + "defaultValue": "none", + "allowableValues": { + "valueType": "LIST", + "values": [ + "none", + "any", + "*", + "#" + ] + } + } + ], + "errorResponses": [ + { + "code": 400, + "reason": "Invalid parameters" + }, + { + "code": 404, + "reason": "Bridge not found" + }, + { + "code": 409, + "reason": "Bridge is not in a Stasis application; A recording with the same name already exists on the system and can not be overwritten because it is in progress or ifExists=fail" + }, + { + "code": 422, + "reason": "The format specified is unknown on this system" + } + ] + } + ] + } + ], + "models": { + "Bridge": { + "id": "Bridge", + "description": "The merging of media from one or more channels.\n\nEveryone on the bridge receives the same audio.", + "properties": { + "id": { + "type": "string", + "description": "Unique identifier for this bridge", + "required": true + }, + "technology": { + "type": "string", + "description": "Name of the current bridging technology", + "required": true + }, + "bridge_type": { + "type": "string", + "description": "Type of bridge technology", + "required": true, + "allowableValues": { + "valueType": "LIST", + "values": [ + "mixing", + "holding" + ] + } + }, + "bridge_class": { + "type": "string", + "description": "Bridging class", + "required": true + }, + "creator": { + "type": "string", + "description": "Entity that created the bridge", + "required": true + }, + "name": { + "type": "string", + "description": "Name the creator gave the bridge", + "required": true + }, + "channels": { + "type": "List[string]", + "description": "Ids of channels participating in this bridge", + "required": true + }, + "video_mode": { + "type": "string", + "description": "The video mode the bridge is using. One of 'none', 'talker', or 'single'.", + "required": false + }, + "video_source_id": { + "type": "string", + "description": "The ID of the channel that is the source of video in this bridge, if one exists.", + "required": false + } + } + } + } +} diff --git a/codegen-data/ari_4_0_0/channels.json b/codegen-data/ari_4_0_0/channels.json new file mode 100644 index 00000000..ec8bae23 --- /dev/null +++ b/codegen-data/ari_4_0_0/channels.json @@ -0,0 +1,1779 @@ +{ + "_copyright": "Copyright (C) 2012 - 2013, Digium, Inc.", + "_author": "David M. Lee, II ", + "_svn_revision": "$Revision$", + "apiVersion": "2.0.0", + "swaggerVersion": "1.1", + "basePath": "http://localhost:8088/ari", + "resourcePath": "/api-docs/channels.{format}", + "requiresModules": [ + "res_stasis_answer", + "res_stasis_playback", + "res_stasis_recording", + "res_stasis_snoop" + ], + "apis": [ + { + "path": "/channels", + "description": "Active channels", + "operations": [ + { + "httpMethod": "GET", + "summary": "List all active channels in Asterisk.", + "nickname": "list", + "responseClass": "List[Channel]" + }, + { + "httpMethod": "POST", + "summary": "Create a new channel (originate).", + "notes": "The new channel is created immediately and a snapshot of it returned. If a Stasis application is provided it will be automatically subscribed to the originated channel for further events and updates.", + "nickname": "originate", + "responseClass": "Channel", + "parameters": [ + { + "name": "endpoint", + "description": "Endpoint to call.", + "paramType": "query", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "extension", + "description": "The extension to dial after the endpoint answers. Mutually exclusive with 'app'.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "context", + "description": "The context to dial after the endpoint answers. If omitted, uses 'default'. Mutually exclusive with 'app'.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "priority", + "description": "The priority to dial after the endpoint answers. If omitted, uses 1. Mutually exclusive with 'app'.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "long" + }, + { + "name": "label", + "description": "The label to dial after the endpoint answers. Will supersede 'priority' if provided. Mutually exclusive with 'app'.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "app", + "description": "The application that is subscribed to the originated channel. When the channel is answered, it will be passed to this Stasis application. Mutually exclusive with 'context', 'extension', 'priority', and 'label'.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "appArgs", + "description": "The application arguments to pass to the Stasis application provided by 'app'. Mutually exclusive with 'context', 'extension', 'priority', and 'label'.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "callerId", + "description": "CallerID to use when dialing the endpoint or extension.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "timeout", + "description": "Timeout (in seconds) before giving up dialing, or -1 for no timeout.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "int", + "defaultValue": 30 + }, + { + "name": "variables", + "description": "The \"variables\" key in the body object holds variable key/value pairs to set on the channel on creation. Other keys in the body object are interpreted as query parameters. Ex. { \"endpoint\": \"SIP/Alice\", \"variables\": { \"CALLERID(name)\": \"Alice\" } }", + "paramType": "body", + "required": false, + "dataType": "containers", + "allowMultiple": false + }, + { + "name": "channelId", + "description": "The unique id to assign the channel on creation.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "otherChannelId", + "description": "The unique id to assign the second channel when using local channels.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "originator", + "description": "The unique id of the channel which is originating this one.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "formats", + "description": "The format name capability list to use if originator is not specified. Ex. \"ulaw,slin16\". Format names can be found with \"core show codecs\".", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 400, + "reason": "Invalid parameters for originating a channel." + }, + { + "code": 409, + "reason": "Channel with given unique ID already exists." + } + ] + } + ] + }, + { + "path": "/channels/create", + "description": "Create a channel and place it in a Stasis app, but do not dial the channel yet.", + "operations": [ + { + "httpMethod": "POST", + "summary": "Create channel.", + "nickname": "create", + "responseClass": "Channel", + "parameters": [ + { + "name": "endpoint", + "description": "Endpoint for channel communication", + "paramType": "query", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "app", + "description": "Stasis Application to place channel into", + "paramType": "query", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "appArgs", + "description": "The application arguments to pass to the Stasis application provided by 'app'. Mutually exclusive with 'context', 'extension', 'priority', and 'label'.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "channelId", + "description": "The unique id to assign the channel on creation.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "otherChannelId", + "description": "The unique id to assign the second channel when using local channels.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "originator", + "description": "Unique ID of the calling channel", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "formats", + "description": "The format name capability list to use if originator is not specified. Ex. \"ulaw,slin16\". Format names can be found with \"core show codecs\".", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 409, + "reason": "Channel with given unique ID already exists." + } + ] + } + ] + }, + { + "path": "/channels/{channelId}", + "description": "Active channel", + "operations": [ + { + "httpMethod": "GET", + "summary": "Channel details.", + "nickname": "get", + "responseClass": "Channel", + "parameters": [ + { + "name": "channelId", + "description": "Channel's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Channel not found" + } + ] + }, + { + "httpMethod": "POST", + "summary": "Create a new channel (originate with id).", + "notes": "The new channel is created immediately and a snapshot of it returned. If a Stasis application is provided it will be automatically subscribed to the originated channel for further events and updates.", + "nickname": "originateWithId", + "responseClass": "Channel", + "parameters": [ + { + "name": "channelId", + "description": "The unique id to assign the channel on creation.", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "endpoint", + "description": "Endpoint to call.", + "paramType": "query", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "extension", + "description": "The extension to dial after the endpoint answers. Mutually exclusive with 'app'.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "context", + "description": "The context to dial after the endpoint answers. If omitted, uses 'default'. Mutually exclusive with 'app'.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "priority", + "description": "The priority to dial after the endpoint answers. If omitted, uses 1. Mutually exclusive with 'app'.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "long" + }, + { + "name": "label", + "description": "The label to dial after the endpoint answers. Will supersede 'priority' if provided. Mutually exclusive with 'app'.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "app", + "description": "The application that is subscribed to the originated channel. When the channel is answered, it will be passed to this Stasis application. Mutually exclusive with 'context', 'extension', 'priority', and 'label'.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "appArgs", + "description": "The application arguments to pass to the Stasis application provided by 'app'. Mutually exclusive with 'context', 'extension', 'priority', and 'label'.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "callerId", + "description": "CallerID to use when dialing the endpoint or extension.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "timeout", + "description": "Timeout (in seconds) before giving up dialing, or -1 for no timeout.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "int", + "defaultValue": 30 + }, + { + "name": "variables", + "description": "The \"variables\" key in the body object holds variable key/value pairs to set on the channel on creation. Other keys in the body object are interpreted as query parameters. Ex. { \"endpoint\": \"SIP/Alice\", \"variables\": { \"CALLERID(name)\": \"Alice\" } }", + "paramType": "body", + "required": false, + "dataType": "containers", + "allowMultiple": false + }, + { + "name": "otherChannelId", + "description": "The unique id to assign the second channel when using local channels.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "originator", + "description": "The unique id of the channel which is originating this one.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "formats", + "description": "The format name capability list to use if originator is not specified. Ex. \"ulaw,slin16\". Format names can be found with \"core show codecs\".", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 400, + "reason": "Invalid parameters for originating a channel." + }, + { + "code": 409, + "reason": "Channel with given unique ID already exists." + } + ] + + }, + { + "httpMethod": "DELETE", + "summary": "Delete (i.e. hangup) a channel.", + "nickname": "hangup", + "responseClass": "void", + "parameters": [ + { + "name": "channelId", + "description": "Channel's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "reason", + "description": "Reason for hanging up the channel", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string", + "defalutValue": "normal", + "allowableValues": { + "valueType": "LIST", + "values": [ + "normal", + "busy", + "congestion", + "no_answer", + "answered_elsewhere" + ] + } + } + ], + "errorResponses": [ + { + "code": 400, + "reason": "Invalid reason for hangup provided" + }, + { + "code": 404, + "reason": "Channel not found" + } + ] + } + ] + }, + { + "path": "/channels/{channelId}/continue", + "description": "Exit application; continue execution in the dialplan", + "operations": [ + { + "httpMethod": "POST", + "summary": "Exit application; continue execution in the dialplan.", + "nickname": "continueInDialplan", + "responseClass": "void", + "parameters": [ + { + "name": "channelId", + "description": "Channel's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "context", + "description": "The context to continue to.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "extension", + "description": "The extension to continue to.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "priority", + "description": "The priority to continue to.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "int" + }, + { + "name": "label", + "description": "The label to continue to - will supersede 'priority' if both are provided.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Channel not found" + }, + { + "code": 409, + "reason": "Channel not in a Stasis application" + }, + { + "code": 412, + "reason": "Channel in invalid state" + } + ] + } + ] + }, + { + "path": "/channels/{channelId}/redirect", + "description": "Inform the channel that it should redirect itself to a different location. Note that this will almost certainly cause the channel to exit the application.", + "operations": [ + { + "httpMethod": "POST", + "summary": "Redirect the channel to a different location.", + "nickname": "redirect", + "responseClass": "void", + "parameters": [ + { + "name": "channelId", + "description": "Channel's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "endpoint", + "description": "The endpoint to redirect the channel to", + "paramType": "query", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 400, + "reason": "Endpoint parameter not provided" + }, + { + "code": 404, + "reason": "Channel or endpoint not found" + }, + { + "code": 409, + "reason": "Channel not in a Stasis application" + }, + { + "code": 422, + "reason": "Endpoint is not the same type as the channel" + }, + { + "code": 412, + "reason": "Channel in invalid state" + } + ] + } + ] + }, + { + "path": "/channels/{channelId}/answer", + "description": "Answer a channel", + "operations": [ + { + "httpMethod": "POST", + "summary": "Answer a channel.", + "nickname": "answer", + "responseClass": "void", + "parameters": [ + { + "name": "channelId", + "description": "Channel's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Channel not found" + }, + { + "code": 409, + "reason": "Channel not in a Stasis application" + }, + { + "code": 412, + "reason": "Channel in invalid state" + } + ] + } + ] + }, + { + "path": "/channels/{channelId}/ring", + "description": "Send a ringing indication to a channel", + "operations": [ + { + "httpMethod": "POST", + "summary": "Indicate ringing to a channel.", + "nickname": "ring", + "responseClass": "void", + "parameters": [ + { + "name": "channelId", + "description": "Channel's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Channel not found" + }, + { + "code": 409, + "reason": "Channel not in a Stasis application" + }, + { + "code": 412, + "reason": "Channel in invalid state" + } + ] + }, + { + "httpMethod": "DELETE", + "summary": "Stop ringing indication on a channel if locally generated.", + "nickname": "ringStop", + "responseClass": "void", + "parameters": [ + { + "name": "channelId", + "description": "Channel's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Channel not found" + }, + { + "code": 409, + "reason": "Channel not in a Stasis application" + }, + { + "code": 412, + "reason": "Channel in invalid state" + } + ] + } + ] + }, + { + "path": "/channels/{channelId}/dtmf", + "description": "Send DTMF to a channel", + "operations": [ + { + "httpMethod": "POST", + "summary": "Send provided DTMF to a given channel.", + "nickname": "sendDTMF", + "responseClass": "void", + "parameters": [ + { + "name": "channelId", + "description": "Channel's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "dtmf", + "description": "DTMF To send.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "before", + "description": "Amount of time to wait before DTMF digits (specified in milliseconds) start.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "int", + "defaultValue": 0 + }, + { + "name": "between", + "description": "Amount of time in between DTMF digits (specified in milliseconds).", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "int", + "defaultValue": 100 + }, + { + "name": "duration", + "description": "Length of each DTMF digit (specified in milliseconds).", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "int", + "defaultValue": 100 + }, + { + "name": "after", + "description": "Amount of time to wait after DTMF digits (specified in milliseconds) end.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "int", + "defaultValue": 0 + } + ], + "errorResponses": [ + { + "code": 400, + "reason": "DTMF is required" + }, + { + "code": 404, + "reason": "Channel not found" + }, + { + "code": 409, + "reason": "Channel not in a Stasis application" + }, + { + "code": 412, + "reason": "Channel in invalid state" + } + ] + } + ] + }, + { + "path": "/channels/{channelId}/mute", + "description": "Mute a channel", + "operations": [ + { + "httpMethod": "POST", + "summary": "Mute a channel.", + "nickname": "mute", + "responseClass": "void", + "parameters": [ + { + "name": "channelId", + "description": "Channel's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "direction", + "description": "Direction in which to mute audio", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string", + "defaultValue": "both", + "allowableValues": { + "valueType": "LIST", + "values": [ + "both", + "in", + "out" + ] + } + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Channel not found" + }, + { + "code": 409, + "reason": "Channel not in a Stasis application" + }, + { + "code": 412, + "reason": "Channel in invalid state" + } + ] + }, + { + "httpMethod": "DELETE", + "summary": "Unmute a channel.", + "nickname": "unmute", + "responseClass": "void", + "parameters": [ + { + "name": "channelId", + "description": "Channel's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "direction", + "description": "Direction in which to unmute audio", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string", + "defaultValue": "both", + "allowableValues": { + "valueType": "LIST", + "values": [ + "both", + "in", + "out" + ] + } + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Channel not found" + }, + { + "code": 409, + "reason": "Channel not in a Stasis application" + }, + { + "code": 412, + "reason": "Channel in invalid state" + } + ] + } + ] + }, + { + "path": "/channels/{channelId}/hold", + "description": "Put a channel on hold", + "operations": [ + { + "httpMethod": "POST", + "summary": "Hold a channel.", + "nickname": "hold", + "responseClass": "void", + "parameters": [ + { + "name": "channelId", + "description": "Channel's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Channel not found" + }, + { + "code": 409, + "reason": "Channel not in a Stasis application" + }, + { + "code": 412, + "reason": "Channel in invalid state" + } + ] + }, + { + "httpMethod": "DELETE", + "summary": "Remove a channel from hold.", + "nickname": "unhold", + "responseClass": "void", + "parameters": [ + { + "name": "channelId", + "description": "Channel's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Channel not found" + }, + { + "code": 409, + "reason": "Channel not in a Stasis application" + }, + { + "code": 412, + "reason": "Channel in invalid state" + } + ] + } + ] + }, + { + "path": "/channels/{channelId}/moh", + "description": "Play music on hold to a channel", + "operations": [ + { + "httpMethod": "POST", + "summary": "Play music on hold to a channel.", + "notes": "Using media operations such as /play on a channel playing MOH in this manner will suspend MOH without resuming automatically. If continuing music on hold is desired, the stasis application must reinitiate music on hold.", + "nickname": "startMoh", + "responseClass": "void", + "parameters": [ + { + "name": "channelId", + "description": "Channel's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "mohClass", + "description": "Music on hold class to use", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Channel not found" + }, + { + "code": 409, + "reason": "Channel not in a Stasis application" + }, + { + "code": 412, + "reason": "Channel in invalid state" + } + ] + }, + { + "httpMethod": "DELETE", + "summary": "Stop playing music on hold to a channel.", + "nickname": "stopMoh", + "responseClass": "void", + "parameters": [ + { + "name": "channelId", + "description": "Channel's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Channel not found" + }, + { + "code": 409, + "reason": "Channel not in a Stasis application" + }, + { + "code": 412, + "reason": "Channel in invalid state" + } + ] + } + ] + }, + { + "path": "/channels/{channelId}/silence", + "description": "Play silence to a channel", + "operations": [ + { + "httpMethod": "POST", + "summary": "Play silence to a channel.", + "notes": "Using media operations such as /play on a channel playing silence in this manner will suspend silence without resuming automatically.", + "nickname": "startSilence", + "responseClass": "void", + "parameters": [ + { + "name": "channelId", + "description": "Channel's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Channel not found" + }, + { + "code": 409, + "reason": "Channel not in a Stasis application" + }, + { + "code": 412, + "reason": "Channel in invalid state" + } + ] + }, + { + "httpMethod": "DELETE", + "summary": "Stop playing silence to a channel.", + "nickname": "stopSilence", + "responseClass": "void", + "parameters": [ + { + "name": "channelId", + "description": "Channel's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Channel not found" + }, + { + "code": 409, + "reason": "Channel not in a Stasis application" + }, + { + "code": 412, + "reason": "Channel in invalid state" + } + ] + } + ] + }, + { + "path": "/channels/{channelId}/play", + "description": "Play media to a channel", + "operations": [ + { + "httpMethod": "POST", + "summary": "Start playback of media.", + "notes": "The media URI may be any of a number of URI's. Currently sound:, recording:, number:, digits:, characters:, and tone: URI's are supported. This operation creates a playback resource that can be used to control the playback of media (pause, rewind, fast forward, etc.)", + "nickname": "play", + "responseClass": "Playback", + "parameters": [ + { + "name": "channelId", + "description": "Channel's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "media", + "description": "Media URIs to play.", + "paramType": "query", + "required": true, + "allowMultiple": true, + "dataType": "string" + }, + { + "name": "lang", + "description": "For sounds, selects language for sound.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "offsetms", + "description": "Number of milliseconds to skip before playing. Only applies to the first URI if multiple media URIs are specified.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "int" + }, + { + "name": "skipms", + "description": "Number of milliseconds to skip for forward/reverse operations.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "int", + "defaultValue": 3000 + }, + { + "name": "playbackId", + "description": "Playback ID.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Channel not found" + }, + { + "code": 409, + "reason": "Channel not in a Stasis application" + }, + { + "code": 412, + "reason": "Channel in invalid state" + } + ] + } + ] + }, + { + "path": "/channels/{channelId}/play/{playbackId}", + "description": "Play media to a channel", + "operations": [ + { + "httpMethod": "POST", + "summary": "Start playback of media and specify the playbackId.", + "notes": "The media URI may be any of a number of URI's. Currently sound:, recording:, number:, digits:, characters:, and tone: URI's are supported. This operation creates a playback resource that can be used to control the playback of media (pause, rewind, fast forward, etc.)", + "nickname": "playWithId", + "responseClass": "Playback", + "parameters": [ + { + "name": "channelId", + "description": "Channel's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "playbackId", + "description": "Playback ID.", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "media", + "description": "Media URIs to play.", + "paramType": "query", + "required": true, + "allowMultiple": true, + "dataType": "string" + }, + { + "name": "lang", + "description": "For sounds, selects language for sound.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "offsetms", + "description": "Number of milliseconds to skip before playing. Only applies to the first URI if multiple media URIs are specified.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "int" + }, + { + "name": "skipms", + "description": "Number of milliseconds to skip for forward/reverse operations.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "int", + "defaultValue": 3000 + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Channel not found" + }, + { + "code": 409, + "reason": "Channel not in a Stasis application" + }, + { + "code": 412, + "reason": "Channel in invalid state" + } + ] + } + ] + }, + { + "path": "/channels/{channelId}/record", + "description": "Record audio from a channel", + "operations": [ + { + "httpMethod": "POST", + "summary": "Start a recording.", + "notes": "Record audio from a channel. Note that this will not capture audio sent to the channel. The bridge itself has a record feature if that's what you want.", + "nickname": "record", + "responseClass": "LiveRecording", + "parameters": [ + { + "name": "channelId", + "description": "Channel's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "name", + "description": "Recording's filename", + "paramType": "query", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "format", + "description": "Format to encode audio in", + "paramType": "query", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "maxDurationSeconds", + "description": "Maximum duration of the recording, in seconds. 0 for no limit", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "int", + "defaultValue": 0, + "allowableValues": { + "valueType": "RANGE", + "min": 0 + } + }, + { + "name": "maxSilenceSeconds", + "description": "Maximum duration of silence, in seconds. 0 for no limit", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "int", + "defaultValue": 0, + "allowableValues": { + "valueType": "RANGE", + "min": 0 + } + }, + { + "name": "ifExists", + "description": "Action to take if a recording with the same name already exists.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string", + "defaultValue": "fail", + "allowableValues": { + "valueType": "LIST", + "values": [ + "fail", + "overwrite", + "append" + ] + } + }, + { + "name": "beep", + "description": "Play beep when recording begins", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "boolean", + "defaultValue": false + }, + { + "name": "terminateOn", + "description": "DTMF input to terminate recording", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string", + "defaultValue": "none", + "allowableValues": { + "valueType": "LIST", + "values": [ + "none", + "any", + "*", + "#" + ] + } + } + ], + "errorResponses": [ + { + "code": 400, + "reason": "Invalid parameters" + }, + { + "code": 404, + "reason": "Channel not found" + }, + { + "code": 409, + "reason": "Channel is not in a Stasis application; the channel is currently bridged with other hcannels; A recording with the same name already exists on the system and can not be overwritten because it is in progress or ifExists=fail" + }, + { + "code": 422, + "reason": "The format specified is unknown on this system" + } + ] + } + ] + }, + { + "path": "/channels/{channelId}/variable", + "description": "Variables on a channel", + "operations": [ + { + "httpMethod": "GET", + "summary": "Get the value of a channel variable or function.", + "nickname": "getChannelVar", + "responseClass": "Variable", + "parameters": [ + { + "name": "channelId", + "description": "Channel's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "variable", + "description": "The channel variable or function to get", + "paramType": "query", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 400, + "reason": "Missing variable parameter." + }, + { + "code": 404, + "reason": "Channel or variable not found" + }, + { + "code": 409, + "reason": "Channel not in a Stasis application" + } + ] + }, + { + "httpMethod": "POST", + "summary": "Set the value of a channel variable or function.", + "nickname": "setChannelVar", + "responseClass": "void", + "parameters": [ + { + "name": "channelId", + "description": "Channel's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "variable", + "description": "The channel variable or function to set", + "paramType": "query", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "value", + "description": "The value to set the variable to", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 400, + "reason": "Missing variable parameter." + }, + { + "code": 404, + "reason": "Channel not found" + }, + { + "code": 409, + "reason": "Channel not in a Stasis application" + } + ] + } + ] + }, + { + "path": "/channels/{channelId}/snoop", + "description": "Snoop (spy/whisper) on a channel", + "operations": [ + { + "httpMethod": "POST", + "summary": "Start snooping.", + "notes": "Snoop (spy/whisper) on a specific channel.", + "nickname": "snoopChannel", + "responseClass": "Channel", + "parameters": [ + { + "name": "channelId", + "description": "Channel's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "spy", + "description": "Direction of audio to spy on", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string", + "defaultValue": "none", + "allowableValues": { + "valueType": "LIST", + "values": [ + "none", + "both", + "out", + "in" + ] + } + }, + { + "name": "whisper", + "description": "Direction of audio to whisper into", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string", + "defaultValue": "none", + "allowableValues": { + "valueType": "LIST", + "values": [ + "none", + "both", + "out", + "in" + ] + } + }, + { + "name": "app", + "description": "Application the snooping channel is placed into", + "paramType": "query", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "appArgs", + "description": "The application arguments to pass to the Stasis application", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "snoopId", + "description": "Unique ID to assign to snooping channel", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 400, + "reason": "Invalid parameters" + }, + { + "code": 404, + "reason": "Channel not found" + } + ] + } + ] + }, + { + "path": "/channels/{channelId}/snoop/{snoopId}", + "description": "Snoop (spy/whisper) on a channel", + "operations": [ + { + "httpMethod": "POST", + "summary": "Start snooping.", + "notes": "Snoop (spy/whisper) on a specific channel.", + "nickname": "snoopChannelWithId", + "responseClass": "Channel", + "parameters": [ + { + "name": "channelId", + "description": "Channel's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "snoopId", + "description": "Unique ID to assign to snooping channel", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "spy", + "description": "Direction of audio to spy on", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string", + "defaultValue": "none", + "allowableValues": { + "valueType": "LIST", + "values": [ + "none", + "both", + "out", + "in" + ] + } + }, + { + "name": "whisper", + "description": "Direction of audio to whisper into", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string", + "defaultValue": "none", + "allowableValues": { + "valueType": "LIST", + "values": [ + "none", + "both", + "out", + "in" + ] + } + }, + { + "name": "app", + "description": "Application the snooping channel is placed into", + "paramType": "query", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "appArgs", + "description": "The application arguments to pass to the Stasis application", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 400, + "reason": "Invalid parameters" + }, + { + "code": 404, + "reason": "Channel not found" + } + ] + } + ] + }, + { + "path": "/channels/{channelId}/dial", + "description": "Dial a channel", + "operations": [ + { + "httpMethod": "POST", + "summary": "Dial a created channel.", + "nickname": "dial", + "responseClass": "void", + "parameters": [ + { + "name": "channelId", + "description": "Channel's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "caller", + "description": "Channel ID of caller", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "timeout", + "description": "Dial timeout", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "int", + "defaultValue": 0, + "allowableValues": { + "valueType": "RANGE", + "min": 0 + } + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Channel cannot be found." + }, + { + "code": 409, + "reason": "Channel cannot be dialed." + } + ] + } + ] + } + ], + "models": { + "Dialed": { + "id": "Dialed", + "description": "Dialed channel information.", + "properties": {} + }, + "DialplanCEP": { + "id": "DialplanCEP", + "description": "Dialplan location (context/extension/priority)", + "properties": { + "context": { + "required": true, + "type": "string", + "description": "Context in the dialplan" + }, + "exten": { + "required": true, + "type": "string", + "description": "Extension in the dialplan" + }, + "priority": { + "required": true, + "type": "long", + "description": "Priority in the dialplan" + } + } + }, + "CallerID": { + "id": "CallerID", + "description": "Caller identification", + "properties": { + "name": { + "required": true, + "type": "string" + }, + "number": { + "required": true, + "type": "string" + } + } + }, + "Channel": { + "id": "Channel", + "description": "A specific communication connection between Asterisk and an Endpoint.", + "properties": { + "id": { + "required": true, + "type": "string", + "description": "Unique identifier of the channel.\n\nThis is the same as the Uniqueid field in AMI." + }, + "name": { + "required": true, + "type": "string", + "description": "Name of the channel (i.e. SIP/foo-0000a7e3)" + }, + "state": { + "required": true, + "type": "string", + "allowableValues": { + "valueType": "LIST", + "values": [ + "Down", + "Rsrved", + "OffHook", + "Dialing", + "Ring", + "Ringing", + "Up", + "Busy", + "Dialing Offhook", + "Pre-ring", + "Unknown" + ] + } + }, + "caller": { + "required": true, + "type": "CallerID" + }, + "connected": { + "required": true, + "type": "CallerID" + }, + "accountcode": { + "required": true, + "type": "string" + }, + "dialplan": { + "required": true, + "type": "DialplanCEP", + "description": "Current location in the dialplan" + }, + "creationtime": { + "required": true, + "type": "Date", + "description": "Timestamp when channel was created" + }, + "language": { + "required": true, + "type": "string", + "description": "The default spoken language" + }, + "channelvars": { + "required": false, + "type": "object", + "description": "Channel variables" + } + } + } + } +} diff --git a/codegen-data/ari_4_0_0/deviceStates.json b/codegen-data/ari_4_0_0/deviceStates.json new file mode 100644 index 00000000..bd389355 --- /dev/null +++ b/codegen-data/ari_4_0_0/deviceStates.json @@ -0,0 +1,154 @@ +{ + "_copyright": "Copyright (C) 2012 - 2013, Digium, Inc.", + "_author": "Kevin Harwell ", + "_svn_revision": "$Revision$", + "apiVersion": "2.0.0", + "swaggerVersion": "1.1", + "basePath": "http://localhost:8088/ari", + "resourcePath": "/api-docs/deviceStates.{format}", + "requiresModules": [ + "res_stasis_device_state" + ], + "apis": [ + { + "path": "/deviceStates", + "description": "Device states", + "operations": [ + { + "httpMethod": "GET", + "summary": "List all ARI controlled device states.", + "nickname": "list", + "responseClass": "List[DeviceState]" + } + ] + }, + { + "path": "/deviceStates/{deviceName}", + "description": "Device state", + "operations": [ + { + "httpMethod": "GET", + "summary": "Retrieve the current state of a device.", + "nickname": "get", + "responseClass": "DeviceState", + "parameters": [ + { + "name": "deviceName", + "description": "Name of the device", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ] + }, + { + "httpMethod": "PUT", + "summary": "Change the state of a device controlled by ARI. (Note - implicitly creates the device state).", + "nickname": "update", + "responseClass": "void", + "parameters": [ + { + "name": "deviceName", + "description": "Name of the device", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "deviceState", + "description": "Device state value", + "paramType": "query", + "required": true, + "allowMultiple": false, + "dataType": "string", + "allowableValues": { + "valueType": "LIST", + "values": [ + "NOT_INUSE", + "INUSE", + "BUSY", + "INVALID", + "UNAVAILABLE", + "RINGING", + "RINGINUSE", + "ONHOLD" + ] + } + + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Device name is missing" + }, + { + "code": 409, + "reason": "Uncontrolled device specified" + } + ] + }, + { + "httpMethod": "DELETE", + "summary": "Destroy a device-state controlled by ARI.", + "nickname": "delete", + "responseClass": "void", + "parameters": [ + { + "name": "deviceName", + "description": "Name of the device", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Device name is missing" + }, + { + "code": 409, + "reason": "Uncontrolled device specified" + } + ] + } + ] + } + ], + "models": { + "DeviceState": { + "id": "DeviceState", + "description": "Represents the state of a device.", + "properties": { + "name": { + "type": "string", + "description": "Name of the device.", + "required": true + }, + "state": { + "type": "string", + "description": "Device's state", + "required": true, + "allowableValues": { + "valueType": "LIST", + "values": [ + "UNKNOWN", + "NOT_INUSE", + "INUSE", + "BUSY", + "INVALID", + "UNAVAILABLE", + "RINGING", + "RINGINUSE", + "ONHOLD" + ] + } + } + } + } + } +} diff --git a/codegen-data/ari_4_0_0/endpoints.json b/codegen-data/ari_4_0_0/endpoints.json new file mode 100644 index 00000000..264c0eb2 --- /dev/null +++ b/codegen-data/ari_4_0_0/endpoints.json @@ -0,0 +1,279 @@ +{ + "_copyright": "Copyright (C) 2012 - 2013, Digium, Inc.", + "_author": "David M. Lee, II ", + "_svn_revision": "$Revision$", + "apiVersion": "2.0.0", + "swaggerVersion": "1.1", + "basePath": "http://localhost:8088/ari", + "resourcePath": "/api-docs/endpoints.{format}", + "apis": [ + { + "path": "/endpoints", + "description": "Asterisk endpoints", + "operations": [ + { + "httpMethod": "GET", + "summary": "List all endpoints.", + "nickname": "list", + "responseClass": "List[Endpoint]" + } + ] + }, + { + "path": "/endpoints/sendMessage", + "description": "Send a message to some technology URI or endpoint.", + "operations": [ + { + "httpMethod": "PUT", + "summary": "Send a message to some technology URI or endpoint.", + "nickname": "sendMessage", + "responseClass": "void", + "parameters": [ + { + "name": "to", + "description": "The endpoint resource or technology specific URI to send the message to. Valid resources are sip, pjsip, and xmpp.", + "paramType": "query", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "from", + "description": "The endpoint resource or technology specific identity to send this message from. Valid resources are sip, pjsip, and xmpp.", + "paramType": "query", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "body", + "description": "The body of the message", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "variables", + "descriptioni": "The \"variables\" key in the body object holds technology specific key/value pairs to append to the message. These can be interpreted and used by the various resource types; for example, pjsip and sip resource types will add the key/value pairs as SIP headers,", + "paramType": "body", + "required": false, + "dataType": "containers", + "allowMultiple": false + } + ], + "errorResponses": [ + { + "code": 400, + "reason": "Invalid parameters for sending a message." + }, + { + "code": 404, + "reason": "Endpoint not found" + } + ] + } + ] + }, + { + "path": "/endpoints/{tech}", + "description": "Asterisk endpoints", + "operations": [ + { + "httpMethod": "GET", + "summary": "List available endoints for a given endpoint technology.", + "nickname": "listByTech", + "responseClass": "List[Endpoint]", + "parameters": [ + { + "name": "tech", + "description": "Technology of the endpoints (sip,iax2,...)", + "paramType": "path", + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Endpoints not found" + } + ] + } + ] + }, + { + "path": "/endpoints/{tech}/{resource}", + "description": "Single endpoint", + "operations": [ + { + "httpMethod": "GET", + "summary": "Details for an endpoint.", + "nickname": "get", + "responseClass": "Endpoint", + "parameters": [ + { + "name": "tech", + "description": "Technology of the endpoint", + "paramType": "path", + "dataType": "string" + }, + { + "name": "resource", + "description": "ID of the endpoint", + "paramType": "path", + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 400, + "reason": "Invalid parameters for sending a message." + }, + { + "code": 404, + "reason": "Endpoints not found" + } + ] + } + ] + }, + { + "path": "/endpoints/{tech}/{resource}/sendMessage", + "description": "Send a message to some endpoint in a technology.", + "operations": [ + { + "httpMethod": "PUT", + "summary": "Send a message to some endpoint in a technology.", + "nickname": "sendMessageToEndpoint", + "responseClass": "void", + "parameters": [ + { + "name": "tech", + "description": "Technology of the endpoint", + "paramType": "path", + "dataType": "string" + }, + { + "name": "resource", + "description": "ID of the endpoint", + "paramType": "path", + "dataType": "string" + }, + { + "name": "from", + "description": "The endpoint resource or technology specific identity to send this message from. Valid resources are sip, pjsip, and xmpp.", + "paramType": "query", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "body", + "description": "The body of the message", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "variables", + "descriptioni": "The \"variables\" key in the body object holds technology specific key/value pairs to append to the message. These can be interpreted and used by the various resource types; for example, pjsip and sip resource types will add the key/value pairs as SIP headers,", + "paramType": "body", + "required": false, + "dataType": "containers", + "allowMultiple": false + } + ], + "errorResponses": [ + { + "code": 400, + "reason": "Invalid parameters for sending a message." + }, + { + "code": 404, + "reason": "Endpoint not found" + } + ] + } + ] + } + ], + "models": { + "Endpoint": { + "id": "Endpoint", + "description": "An external device that may offer/accept calls to/from Asterisk.\n\nUnlike most resources, which have a single unique identifier, an endpoint is uniquely identified by the technology/resource pair.", + "properties": { + "technology": { + "type": "string", + "description": "Technology of the endpoint", + "required": true + }, + "resource": { + "type": "string", + "description": "Identifier of the endpoint, specific to the given technology.", + "required": true + }, + "state": { + "type": "string", + "description": "Endpoint's state", + "required": false, + "allowableValues": { + "valueType": "LIST", + "values": [ + "unknown", + "offline", + "online" + ] + } + }, + "channel_ids": { + "type": "List[string]", + "description": "Id's of channels associated with this endpoint", + "required": true + } + } + }, + "TextMessageVariable": { + "id": "TextMessageVariable", + "description": "A key/value pair variable in a text message.", + "properties": { + "key": { + "type": "string", + "description": "A unique key identifying the variable.", + "required": true + }, + "value": { + "type": "string", + "description": "The value of the variable.", + "required": true + } + } + }, + "TextMessage": { + "id": "TextMessage", + "description": "A text message.", + "properties": { + "from": { + "type": "string", + "description": "A technology specific URI specifying the source of the message. For sip and pjsip technologies, any SIP URI can be specified. For xmpp, the URI must correspond to the client connection being used to send the message.", + "required": true + }, + "to": { + "type": "string", + "description": "A technology specific URI specifying the destination of the message. Valid technologies include sip, pjsip, and xmp. The destination of a message should be an endpoint.", + "required": true + }, + "body": { + "type": "string", + "description": "The text of the message.", + "required": true + }, + "variables": { + "type": "List[TextMessageVariable]", + "description": "Technology specific key/value pairs associated with the message.", + "required": false + } + } + } + } +} diff --git a/codegen-data/ari_4_0_0/events.json b/codegen-data/ari_4_0_0/events.json new file mode 100644 index 00000000..d85d8d9f --- /dev/null +++ b/codegen-data/ari_4_0_0/events.json @@ -0,0 +1,898 @@ +{ + "_copyright": "Copyright (C) 2012 - 2013, Digium, Inc.", + "_author": "David M. Lee, II ", + "_svn_revision": "$Revision$", + "apiVersion": "2.0.0", + "swaggerVersion": "1.2", + "basePath": "http://localhost:8088/ari", + "resourcePath": "/api-docs/events.{format}", + "requiresModules": [ + "res_http_websocket" + ], + "apis": [ + { + "path": "/events", + "description": "Events from Asterisk to applications", + "operations": [ + { + "httpMethod": "GET", + "upgrade": "websocket", + "websocketProtocol": "ari", + "summary": "WebSocket connection for events.", + "nickname": "eventWebsocket", + "responseClass": "Message", + "parameters": [ + { + "name": "app", + "description": "Applications to subscribe to.", + "paramType": "query", + "required": true, + "allowMultiple": true, + "dataType": "string" + }, + { + "name": "subscribeAll", + "description": "Subscribe to all Asterisk events. If provided, the applications listed will be subscribed to all events, effectively disabling the application specific subscriptions. Default is 'false'.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "boolean" + } + ] + } + ] + }, + { + "path": "/events/user/{eventName}", + "description": "Stasis application user events", + "operations": [ + { + "httpMethod": "POST", + "summary": "Generate a user event.", + "nickname": "userEvent", + "responseClass": "void", + "parameters": [ + { + "name": "eventName", + "description": "Event name", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "application", + "description": "The name of the application that will receive this event", + "paramType": "query", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "source", + "description": "URI for event source (channel:{channelId}, bridge:{bridgeId}, endpoint:{tech}/{resource}, deviceState:{deviceName}", + "paramType": "query", + "required": false, + "allowMultiple": true, + "dataType": "string" + }, + { + "name": "variables", + "description": "The \"variables\" key in the body object holds custom key/value pairs to add to the user event. Ex. { \"variables\": { \"key\": \"value\" } }", + "paramType": "body", + "required": false, + "allowMultiple": false, + "dataType": "containers" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Application does not exist." + }, + { + "code": 422, + "reason": "Event source not found." + }, + { + "code": 400, + "reason": "Invalid even tsource URI or userevent data." + } + ] + } + ] + } + ], + "models": { + "Message": { + "id": "Message", + "description": "Base type for errors and events", + "discriminator": "type", + "properties": { + "type": { + "type": "string", + "required": true, + "description": "Indicates the type of this message." + }, + "asterisk_id": { + "type": "string", + "required": false, + "description": "The unique ID for the Asterisk instance that raised this event." + } + }, + "subTypes": [ + "MissingParams", + "Event" + ] + }, + "MissingParams": { + "id": "MissingParams", + "description": "Error event sent when required params are missing.", + "properties": { + "params": { + "required": true, + "type": "List[string]", + "description": "A list of the missing parameters" + } + } + }, + "Event": { + "id": "Event", + "description": "Base type for asynchronous events from Asterisk.", + "properties": { + "application": { + "type": "string", + "description": "Name of the application receiving the event.", + "required": true + }, + "timestamp": { + "type": "Date", + "description": "Time at which this event was created.", + "required": false + } + }, + "subTypes": [ + "DeviceStateChanged", + "PlaybackStarted", + "PlaybackContinuing", + "PlaybackFinished", + "RecordingStarted", + "RecordingFinished", + "RecordingFailed", + "ApplicationReplaced", + "BridgeCreated", + "BridgeDestroyed", + "BridgeMerged", + "BridgeBlindTransfer", + "BridgeAttendedTransfer", + "BridgeVideoSourceChanged", + "ChannelCreated", + "ChannelDestroyed", + "ChannelEnteredBridge", + "ChannelLeftBridge", + "ChannelStateChange", + "ChannelDtmfReceived", + "ChannelDialplan", + "ChannelCallerId", + "ChannelUserevent", + "ChannelHangupRequest", + "ChannelVarset", + "ChannelTalkingStarted", + "ChannelTalkingFinished", + "ChannelHold", + "ChannelUnhold", + "ContactStatusChange", + "EndpointStateChange", + "Dial", + "StasisEnd", + "StasisStart", + "TextMessageReceived", + "ChannelConnectedLine", + "PeerStatusChange" + ] + }, + "ContactInfo": { + "id": "ContactInfo", + "description": "Detailed information about a contact on an endpoint.", + "properties": { + "uri": { + "type": "string", + "description": "The location of the contact.", + "required": true + }, + "contact_status": { + "type": "string", + "description": "The current status of the contact.", + "required": true, + "allowableValues": { + "valueType": "LIST", + "values": [ + "Unreachable", + "Reachable", + "Unknown", + "NonQualified", + "Removed" + ] + } + }, + "aor": { + "type": "string", + "description": "The Address of Record this contact belongs to.", + "required": true + }, + "roundtrip_usec": { + "type": "string", + "description": "Current round trip time, in microseconds, for the contact.", + "required": false + } + } + }, + "Peer": { + "id": "Peer", + "description": "Detailed information about a remote peer that communicates with Asterisk.", + "properties": { + "peer_status": { + "type": "string", + "description": "The current state of the peer. Note that the values of the status are dependent on the underlying peer technology.", + "required": true + }, + "cause": { + "type": "string", + "description": "An optional reason associated with the change in peer_status.", + "required": false + }, + "address": { + "type": "string", + "description": "The IP address of the peer.", + "required": false + }, + "port": { + "type": "string", + "description": "The port of the peer.", + "required": false + }, + "time": { + "type": "string", + "description": "The last known time the peer was contacted.", + "required": false + } + } + }, + "DeviceStateChanged": { + "id": "DeviceStateChanged", + "description": "Notification that a device state has changed.", + "properties": { + "device_state": { + "type": "DeviceState", + "description": "Device state object", + "required": true + } + } + }, + "PlaybackStarted": { + "id": "PlaybackStarted", + "description": "Event showing the start of a media playback operation.", + "properties": { + "playback": { + "type": "Playback", + "description": "Playback control object", + "required": true + } + } + }, + "PlaybackContinuing": { + "id": "PlaybackContinuing", + "description": "Event showing the continuation of a media playback operation from one media URI to the next in the list.", + "properties": { + "playback": { + "type": "Playback", + "description": "Playback control object", + "required": true + } + } + }, + "PlaybackFinished": { + "id": "PlaybackFinished", + "description": "Event showing the completion of a media playback operation.", + "properties": { + "playback": { + "type": "Playback", + "description": "Playback control object", + "required": true + } + } + }, + "RecordingStarted": { + "id": "RecordingStarted", + "description": "Event showing the start of a recording operation.", + "properties": { + "recording": { + "type": "LiveRecording", + "description": "Recording control object", + "required": true + } + } + }, + "RecordingFinished": { + "id": "RecordingFinished", + "description": "Event showing the completion of a recording operation.", + "properties": { + "recording": { + "type": "LiveRecording", + "description": "Recording control object", + "required": true + } + } + }, + "RecordingFailed": { + "id": "RecordingFailed", + "description": "Event showing failure of a recording operation.", + "properties": { + "recording": { + "type": "LiveRecording", + "description": "Recording control object", + "required": true + } + } + }, + "ApplicationReplaced": { + "id": "ApplicationReplaced", + "description": "Notification that another WebSocket has taken over for an application.\n\nAn application may only be subscribed to by a single WebSocket at a time. If multiple WebSockets attempt to subscribe to the same application, the newer WebSocket wins, and the older one receives this event.", + "properties": {} + }, + "BridgeCreated": { + "id": "BridgeCreated", + "description": "Notification that a bridge has been created.", + "properties": { + "bridge": { + "required": true, + "type": "Bridge" + } + } + }, + "BridgeDestroyed": { + "id": "BridgeDestroyed", + "description": "Notification that a bridge has been destroyed.", + "properties": { + "bridge": { + "required": true, + "type": "Bridge" + } + } + }, + "BridgeMerged": { + "id": "BridgeMerged", + "description": "Notification that one bridge has merged into another.", + "properties": { + "bridge": { + "required": true, + "type": "Bridge" + }, + "bridge_from": { + "required": true, + "type": "Bridge" + } + } + }, + "BridgeVideoSourceChanged": { + "id": "BridgeVideoSourceChanged", + "description": "Notification that the source of video in a bridge has changed.", + "properties": { + "bridge": { + "required": true, + "type": "Bridge" + }, + "old_video_source_id": { + "required": false, + "type": "string" + } + } + }, + "BridgeBlindTransfer": { + "id": "BridgeBlindTransfer", + "description": "Notification that a blind transfer has occurred.", + "properties": { + "channel": { + "description": "The channel performing the blind transfer", + "required": true, + "type": "Channel" + }, + "replace_channel": { + "description": "The channel that is replacing transferer when the transferee(s) can not be transferred directly", + "required": false, + "type": "Channel" + }, + "transferee": { + "description": "The channel that is being transferred", + "required": false, + "type": "Channel" + }, + "exten": { + "description": "The extension transferred to", + "required": true, + "type": "string" + }, + "context": { + "description": "The context transferred to", + "required": true, + "type": "string" + }, + "result": { + "description": "The result of the transfer attempt", + "required": true, + "type": "string" + }, + "is_external": { + "description": "Whether the transfer was externally initiated or not", + "required": true, + "type": "boolean" + }, + "bridge": { + "description": "The bridge being transferred", + "type": "Bridge" + } + } + }, + "BridgeAttendedTransfer": { + "id": "BridgeAttendedTransfer", + "description": "Notification that an attended transfer has occurred.", + "properties": { + "transferer_first_leg": { + "description": "First leg of the transferer", + "required": true, + "type": "Channel" + }, + "transferer_second_leg": { + "description": "Second leg of the transferer", + "required": true, + "type": "Channel" + }, + "replace_channel": { + "description": "The channel that is replacing transferer_first_leg in the swap", + "required": false, + "type": "Channel" + }, + "transferee": { + "description": "The channel that is being transferred", + "required": false, + "type": "Channel" + }, + "transfer_target": { + "description": "The channel that is being transferred to", + "required": false, + "type": "Channel" + }, + "result": { + "description": "The result of the transfer attempt", + "required": true, + "type": "string" + }, + "is_external": { + "description": "Whether the transfer was externally initiated or not", + "required": true, + "type": "boolean" + }, + "transferer_first_leg_bridge": { + "description": "Bridge the transferer first leg is in", + "type": "Bridge" + }, + "transferer_second_leg_bridge": { + "description": "Bridge the transferer second leg is in", + "type": "Bridge" + }, + "destination_type": { + "description": "How the transfer was accomplished", + "required": true, + "type": "string" + }, + "destination_bridge": { + "description": "Bridge that survived the merge result", + "type": "string" + }, + "destination_application": { + "description": "Application that has been transferred into", + "type": "string" + }, + "destination_link_first_leg": { + "description": "First leg of a link transfer result", + "type": "Channel" + }, + "destination_link_second_leg": { + "description": "Second leg of a link transfer result", + "type": "Channel" + }, + "destination_threeway_channel": { + "description": "Transferer channel that survived the threeway result", + "type": "Channel" + }, + "destination_threeway_bridge": { + "description": "Bridge that survived the threeway result", + "type": "Bridge" + } + } + }, + "ChannelCreated": { + "id": "ChannelCreated", + "description": "Notification that a channel has been created.", + "properties": { + "channel": { + "required": true, + "type": "Channel" + } + } + }, + "ChannelDestroyed": { + "id": "ChannelDestroyed", + "description": "Notification that a channel has been destroyed.", + "properties": { + "cause": { + "required": true, + "description": "Integer representation of the cause of the hangup", + "type": "int" + }, + "cause_txt": { + "required": true, + "description": "Text representation of the cause of the hangup", + "type": "string" + }, + "channel": { + "required": true, + "type": "Channel" + } + } + }, + "ChannelEnteredBridge": { + "id": "ChannelEnteredBridge", + "description": "Notification that a channel has entered a bridge.", + "properties": { + "bridge": { + "required": true, + "type": "Bridge" + }, + "channel": { + "type": "Channel" + } + } + }, + "ChannelLeftBridge": { + "id": "ChannelLeftBridge", + "description": "Notification that a channel has left a bridge.", + "properties": { + "bridge": { + "required": true, + "type": "Bridge" + }, + "channel": { + "required": true, + "type": "Channel" + } + } + }, + "ChannelStateChange": { + "id": "ChannelStateChange", + "description": "Notification of a channel's state change.", + "properties": { + "channel": { + "required": true, + "type": "Channel" + } + } + }, + "ChannelDtmfReceived": { + "id": "ChannelDtmfReceived", + "description": "DTMF received on a channel.\n\nThis event is sent when the DTMF ends. There is no notification about the start of DTMF", + "properties": { + "digit": { + "required": true, + "type": "string", + "description": "DTMF digit received (0-9, A-E, # or *)" + }, + "duration_ms": { + "required": true, + "type": "int", + "description": "Number of milliseconds DTMF was received" + }, + "channel": { + "required": true, + "type": "Channel", + "description": "The channel on which DTMF was received" + } + } + }, + "ChannelDialplan": { + "id": "ChannelDialplan", + "description": "Channel changed location in the dialplan.", + "properties": { + "channel": { + "required": true, + "type": "Channel", + "description": "The channel that changed dialplan location." + }, + "dialplan_app": { + "required": true, + "type": "string", + "description": "The application about to be executed." + }, + "dialplan_app_data": { + "required": true, + "type": "string", + "description": "The data to be passed to the application." + } + } + }, + "ChannelCallerId": { + "id": "ChannelCallerId", + "description": "Channel changed Caller ID.", + "properties": { + "caller_presentation": { + "required": true, + "type": "int", + "description": "The integer representation of the Caller Presentation value." + }, + "caller_presentation_txt": { + "required": true, + "type": "string", + "description": "The text representation of the Caller Presentation value." + }, + "channel": { + "required": true, + "type": "Channel", + "description": "The channel that changed Caller ID." + } + } + }, + "ChannelUserevent": { + "id": "ChannelUserevent", + "description": "User-generated event with additional user-defined fields in the object.", + "properties": { + "eventname": { + "required": true, + "type": "string", + "description": "The name of the user event." + }, + "channel": { + "required": false, + "type": "Channel", + "description": "A channel that is signaled with the user event." + }, + "bridge": { + "required": false, + "type": "Bridge", + "description": "A bridge that is signaled with the user event." + }, + "endpoint": { + "required": false, + "type": "Endpoint", + "description": "A endpoint that is signaled with the user event." + }, + "userevent": { + "required": true, + "type": "object", + "description": "Custom Userevent data" + } + } + }, + "ChannelHangupRequest": { + "id": "ChannelHangupRequest", + "description": "A hangup was requested on the channel.", + "properties": { + "cause": { + "type": "int", + "description": "Integer representation of the cause of the hangup." + }, + "soft": { + "type": "boolean", + "description": "Whether the hangup request was a soft hangup request." + }, + "channel": { + "required": true, + "type": "Channel", + "description": "The channel on which the hangup was requested." + } + } + }, + "ChannelVarset": { + "id": "ChannelVarset", + "description": "Channel variable changed.", + "properties": { + "variable": { + "required": true, + "type": "string", + "description": "The variable that changed." + }, + "value": { + "required": true, + "type": "string", + "description": "The new value of the variable." + }, + "channel": { + "required": false, + "type": "Channel", + "description": "The channel on which the variable was set.\n\nIf missing, the variable is a global variable." + } + } + }, + "ChannelHold": { + "id": "ChannelHold", + "description": "A channel initiated a media hold.", + "properties": { + "channel": { + "required": true, + "type": "Channel", + "description": "The channel that initiated the hold event." + }, + "musicclass": { + "required": false, + "type": "string", + "description": "The music on hold class that the initiator requested." + } + } + }, + "ChannelUnhold": { + "id": "ChannelUnhold", + "description": "A channel initiated a media unhold.", + "properties": { + "channel": { + "required": true, + "type": "Channel", + "description": "The channel that initiated the unhold event." + } + } + }, + "ChannelTalkingStarted": { + "id": "ChannelTalkingStarted", + "description": "Talking was detected on the channel.", + "properties": { + "channel": { + "required": true, + "type": "Channel", + "description": "The channel on which talking started." + } + } + }, + "ChannelTalkingFinished": { + "id": "ChannelTalkingFinished", + "description": "Talking is no longer detected on the channel.", + "properties": { + "channel": { + "required": true, + "type": "Channel", + "description": "The channel on which talking completed." + }, + "duration": { + "required": true, + "type": "int", + "description": "The length of time, in milliseconds, that talking was detected on the channel" + } + } + }, + "ContactStatusChange": { + "id": "ContactStatusChange", + "description": "The state of a contact on an endpoint has changed.", + "properties": { + "endpoint": { + "required": true, + "type": "Endpoint" + }, + "contact_info": { + "required": true, + "type": "ContactInfo" + } + } + }, + "PeerStatusChange": { + "id": "PeerStatusChange", + "description": "The state of a peer associated with an endpoint has changed.", + "properties": { + "endpoint": { + "required": true, + "type": "Endpoint" + }, + "peer": { + "required": true, + "type": "Peer" + } + } + }, + "EndpointStateChange": { + "id": "EndpointStateChange", + "description": "Endpoint state changed.", + "properties": { + "endpoint": { + "required": true, + "type": "Endpoint" + } + } + }, + "Dial": { + "id": "Dial", + "description": "Dialing state has changed.", + "properties": { + "caller": { + "required": false, + "type": "Channel", + "description": "The calling channel." + }, + "peer": { + "required": true, + "type": "Channel", + "description": "The dialed channel." + }, + "forward": { + "required": false, + "type": "string", + "description": "Forwarding target requested by the original dialed channel." + }, + "forwarded": { + "required": false, + "type": "Channel", + "description": "Channel that the caller has been forwarded to." + }, + "dialstring": { + "required": false, + "type": "string", + "description": "The dial string for calling the peer channel." + }, + "dialstatus": { + "required": true, + "type": "string", + "description": "Current status of the dialing attempt to the peer." + } + } + }, + "StasisEnd": { + "id": "StasisEnd", + "description": "Notification that a channel has left a Stasis application.", + "properties": { + "channel": { + "required": true, + "type": "Channel" + } + } + }, + "StasisStart": { + "id": "StasisStart", + "description": "Notification that a channel has entered a Stasis application.", + "properties": { + "args": { + "required": true, + "type": "List[string]", + "description": "Arguments to the application" + }, + "channel": { + "required": true, + "type": "Channel" + }, + "replace_channel": { + "required": false, + "type": "Channel" + } + } + }, + "TextMessageReceived": { + "id": "TextMessageReceived", + "description": "A text message was received from an endpoint.", + "properties": { + "message": { + "required": true, + "type": "TextMessage" + }, + "endpoint": { + "required": false, + "type": "Endpoint" + } + } + }, + "ChannelConnectedLine": { + "id": "ChannelConnectedLine", + "description": "Channel changed Connected Line.", + "properties": { + "channel": { + "required": true, + "type": "Channel", + "description": "The channel whose connected line has changed." + } + } + } + } +} diff --git a/codegen-data/ari_4_0_0/mailboxes.json b/codegen-data/ari_4_0_0/mailboxes.json new file mode 100644 index 00000000..8f5941b8 --- /dev/null +++ b/codegen-data/ari_4_0_0/mailboxes.json @@ -0,0 +1,137 @@ +{ + "_copyright": "Copyright (C) 2013, Digium, Inc.", + "_author": "Jonathan Rose ", + "_svn_revision": "$Revision$", + "apiVersion": "2.0.0", + "swaggerVersion": "1.1", + "basePath": "http://localhost:8088/ari", + "resourcePath": "/api-docs/mailboxes.{format}", + "requiresModules": [ + "res_stasis_mailbox" + ], + "apis": [ + { + "path": "/mailboxes", + "description": "Mailboxes", + "operations": [ + { + "httpMethod": "GET", + "summary": "List all mailboxes.", + "nickname": "list", + "responseClass": "List[Mailbox]" + } + ] + }, + { + "path": "/mailboxes/{mailboxName}", + "description": "Mailbox state", + "operations": [ + { + "httpMethod": "GET", + "summary": "Retrieve the current state of a mailbox.", + "nickname": "get", + "responseClass": "Mailbox", + "parameters": [ + { + "name": "mailboxName", + "description": "Name of the mailbox", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Mailbox not found" + } + ] + }, + { + "httpMethod": "PUT", + "summary": "Change the state of a mailbox. (Note - implicitly creates the mailbox).", + "nickname": "update", + "responseClass": "void", + "parameters": [ + { + "name": "mailboxName", + "description": "Name of the mailbox", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "oldMessages", + "description": "Count of old messages in the mailbox", + "paramType": "query", + "required": true, + "allowMultiple": false, + "dataType": "int" + }, + { + "name": "newMessages", + "description": "Count of new messages in the mailbox", + "paramType": "query", + "required": true, + "allowMultiple": false, + "dataType": "int" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Mailbox not found" + } + ] + }, + { + "httpMethod": "DELETE", + "summary": "Destroy a mailbox.", + "nickname": "delete", + "responseClass": "void", + "parameters": [ + { + "name": "mailboxName", + "description": "Name of the mailbox", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Mailbox not found" + } + ] + } + ] + } + ], + "models": { + "Mailbox": { + "id": "Mailbox", + "description": "Represents the state of a mailbox.", + "properties": { + "name": { + "type": "string", + "description": "Name of the mailbox.", + "required": true + }, + "old_messages": { + "type": "int", + "description": "Count of old messages in the mailbox.", + "required": true + }, + "new_messages": { + "type": "int", + "description": "Count of new messages in the mailbox.", + "required": true + } + } + } + } +} diff --git a/codegen-data/ari_4_0_0/playbacks.json b/codegen-data/ari_4_0_0/playbacks.json new file mode 100644 index 00000000..a78dcae7 --- /dev/null +++ b/codegen-data/ari_4_0_0/playbacks.json @@ -0,0 +1,164 @@ +{ + "_copyright": "Copyright (C) 2012 - 2013, Digium, Inc.", + "_author": "David M. Lee, II ", + "_svn_revision": "$Revision$", + "apiVersion": "2.0.0", + "swaggerVersion": "1.1", + "basePath": "http://localhost:8088/ari", + "resourcePath": "/api-docs/playbacks.{format}", + "requiresModules": [ + "res_stasis_playback" + ], + "apis": [ + { + "path": "/playbacks/{playbackId}", + "description": "Control object for a playback operation.", + "operations": [ + { + "httpMethod": "GET", + "summary": "Get a playback's details.", + "nickname": "get", + "responseClass": "Playback", + "parameters": [ + { + "name": "playbackId", + "description": "Playback's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "The playback cannot be found" + } + ] + }, + { + "httpMethod": "DELETE", + "summary": "Stop a playback.", + "nickname": "stop", + "responseClass": "void", + "parameters": [ + { + "name": "playbackId", + "description": "Playback's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "The playback cannot be found" + } + ] + } + ] + }, + { + "path": "/playbacks/{playbackId}/control", + "description": "Control object for a playback operation.", + "operations": [ + { + "httpMethod": "POST", + "summary": "Control a playback.", + "nickname": "control", + "responseClass": "void", + "parameters": [ + { + "name": "playbackId", + "description": "Playback's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "operation", + "description": "Operation to perform on the playback.", + "paramType": "query", + "required": true, + "allowMultiple": false, + "dataType": "string", + "allowableValues": { + "valueType": "LIST", + "values": [ + "restart", + "pause", + "unpause", + "reverse", + "forward" + ] + } + } + ], + "errorResponses": [ + { + "code": 400, + "reason": "The provided operation parameter was invalid" + }, + { + "code": 404, + "reason": "The playback cannot be found" + }, + { + "code": 409, + "reason": "The operation cannot be performed in the playback's current state" + } +] + } + ] + } + ], + "models": { + "Playback": { + "id": "Playback", + "description": "Object representing the playback of media to a channel", + "properties": { + "id": { + "type": "string", + "description": "ID for this playback operation", + "required": true + }, + "media_uri": { + "type": "string", + "description": "The URI for the media currently being played back.", + "required": true + }, + "next_media_uri": { + "type": "string", + "description": "If a list of URIs is being played, the next media URI to be played back.", + "required": false + }, + "target_uri": { + "type": "string", + "description": "URI for the channel or bridge to play the media on", + "required": true + }, + "language": { + "type": "string", + "description": "For media types that support multiple languages, the language requested for playback." + }, + "state": { + "type": "string", + "description": "Current state of the playback operation.", + "required": true, + "allowableValues": { + "valueType": "LIST", + "values": [ + "queued", + "playing", + "continuing", + "done" + ] + } + } + } + } + } +} diff --git a/codegen-data/ari_4_0_0/recordings.json b/codegen-data/ari_4_0_0/recordings.json new file mode 100644 index 00000000..6ffd6d8e --- /dev/null +++ b/codegen-data/ari_4_0_0/recordings.json @@ -0,0 +1,413 @@ +{ + "_copyright": "Copyright (C) 2012 - 2013, Digium, Inc.", + "_author": "David M. Lee, II ", + "_svn_revision": "$Revision$", + "apiVersion": "2.0.0", + "swaggerVersion": "1.1", + "basePath": "http://localhost:8088/ari", + "resourcePath": "/api-docs/recordings.{format}", + "requiresModules": [ + "res_stasis_recording" + ], + "apis": [ + { + "path": "/recordings/stored", + "description": "Recordings", + "operations": [ + { + "httpMethod": "GET", + "summary": "List recordings that are complete.", + "nickname": "listStored", + "responseClass": "List[StoredRecording]" + } + ] + }, + { + "path": "/recordings/stored/{recordingName}", + "description": "Individual recording", + "operations": [ + { + "httpMethod": "GET", + "summary": "Get a stored recording's details.", + "nickname": "getStored", + "responseClass": "StoredRecording", + "parameters": [ + { + "name": "recordingName", + "description": "The name of the recording", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Recording not found" + } + ] + }, + { + "httpMethod": "DELETE", + "summary": "Delete a stored recording.", + "nickname": "deleteStored", + "responseClass": "void", + "parameters": [ + { + "name": "recordingName", + "description": "The name of the recording", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Recording not found" + } + ] + } + ] + }, + { + "path": "/recordings/stored/{recordingName}/file", + "description": "The actual file associated with the stored recording", + "operations": [ + { + "httpMethod": "GET", + "summary": "Get the file associated with the stored recording.", + "nickname": "getStoredFile", + "responseClass": "binary", + "parameters": [ + { + "name": "recordingName", + "description": "The name of the recording", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 403, + "reason": "The recording file could not be opened" + }, + { + "code": 404, + "reason": "Recording not found" + } + ] + } + ] + }, + { + "path": "/recordings/stored/{recordingName}/copy", + "description": "Copy an individual recording", + "operations": [ + { + "httpMethod": "POST", + "summary": "Copy a stored recording.", + "nickname": "copyStored", + "responseClass": "StoredRecording", + "parameters": [ + { + "name": "recordingName", + "description": "The name of the recording to copy", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "destinationRecordingName", + "description": "The destination name of the recording", + "paramType": "query", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Recording not found" + }, + { + "code": 409, + "reason": "A recording with the same name already exists on the system" + } + ] + } + ] + }, + { + "path": "/recordings/live/{recordingName}", + "description": "A recording that is in progress", + "operations": [ + { + "httpMethod": "GET", + "summary": "List live recordings.", + "nickname": "getLive", + "responseClass": "LiveRecording", + "parameters": [ + { + "name": "recordingName", + "description": "The name of the recording", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Recording not found" + } + ] + }, + { + "httpMethod": "DELETE", + "summary": "Stop a live recording and discard it.", + "nickname": "cancel", + "responseClass": "void", + "parameters": [ + { + "name": "recordingName", + "description": "The name of the recording", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Recording not found" + } + ] + } + ] + }, + { + "path": "/recordings/live/{recordingName}/stop", + "operations": [ + { + "httpMethod": "POST", + "summary": "Stop a live recording and store it.", + "nickname": "stop", + "responseClass": "void", + "parameters": [ + { + "name": "recordingName", + "description": "The name of the recording", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Recording not found" + } + ] + } + ] + }, + { + "path": "/recordings/live/{recordingName}/pause", + "operations": [ + { + "httpMethod": "POST", + "summary": "Pause a live recording.", + "notes": "Pausing a recording suspends silence detection, which will be restarted when the recording is unpaused. Paused time is not included in the accounting for maxDurationSeconds.", + "nickname": "pause", + "responseClass": "void", + "parameters": [ + { + "name": "recordingName", + "description": "The name of the recording", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Recording not found" + }, + { + "code": 409, + "reason": "Recording not in session" + } + ] + }, + { + "httpMethod": "DELETE", + "summary": "Unpause a live recording.", + "nickname": "unpause", + "responseClass": "void", + "parameters": [ + { + "name": "recordingName", + "description": "The name of the recording", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Recording not found" + }, + { + "code": 409, + "reason": "Recording not in session" + } + ] + } + ] + }, + { + "path": "/recordings/live/{recordingName}/mute", + "operations": [ + { + "httpMethod": "POST", + "summary": "Mute a live recording.", + "notes": "Muting a recording suspends silence detection, which will be restarted when the recording is unmuted.", + "nickname": "mute", + "responseClass": "void", + "parameters": [ + { + "name": "recordingName", + "description": "The name of the recording", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Recording not found" + }, + { + "code": 409, + "reason": "Recording not in session" + } + ] + }, + { + "httpMethod": "DELETE", + "summary": "Unmute a live recording.", + "nickname": "unmute", + "responseClass": "void", + "parameters": [ + { + "name": "recordingName", + "description": "The name of the recording", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Recording not found" + }, + { + "code": 409, + "reason": "Recording not in session" + } + ] + } + ] + } + ], + "models": { + "StoredRecording": { + "id": "StoredRecording", + "description": "A past recording that may be played back.", + "properties": { + "name": { + "required": true, + "type": "string" + }, + "format": { + "required": true, + "type": "string" + } + } + }, + "LiveRecording": { + "id": "LiveRecording", + "description": "A recording that is in progress", + "properties": { + "name": { + "required": true, + "type": "string", + "description": "Base name for the recording" + }, + "format": { + "required": true, + "type": "string", + "description": "Recording format (wav, gsm, etc.)" + }, + "target_uri": { + "required": true, + "type": "string", + "description": "URI for the channel or bridge being recorded" + }, + "state": { + "required": true, + "type": "string", + "allowableValues": { + "valueType": "LIST", + "values": [ + "queued", + "recording", + "paused", + "done", + "failed", + "canceled" + ] + } + }, + "duration": { + "required": false, + "type": "int", + "description": "Duration in seconds of the recording" + }, + "talking_duration": { + "required": false, + "type": "int", + "description": "Duration of talking, in seconds, detected in the recording. This is only available if the recording was initiated with a non-zero maxSilenceSeconds." + }, + "silence_duration": { + "required": false, + "type": "int", + "description": "Duration of silence, in seconds, detected in the recording. This is only available if the recording was initiated with a non-zero maxSilenceSeconds." + }, + "cause": { + "required": false, + "type": "string", + "description": "Cause for recording failure if failed" + } + } + } + } +} diff --git a/codegen-data/ari_4_0_0/sounds.json b/codegen-data/ari_4_0_0/sounds.json new file mode 100644 index 00000000..8fbe1c57 --- /dev/null +++ b/codegen-data/ari_4_0_0/sounds.json @@ -0,0 +1,99 @@ +{ + "_copyright": "Copyright (C) 2012 - 2013, Digium, Inc.", + "_author": "David M. Lee, II ", + "_svn_revision": "$Revision$", + "apiVersion": "2.0.0", + "swaggerVersion": "1.1", + "basePath": "http://localhost:8088/ari", + "resourcePath": "/api-docs/sounds.{format}", + "apis": [ + { + "path": "/sounds", + "description": "Sounds", + "operations": [ + { + "httpMethod": "GET", + "summary": "List all sounds.", + "nickname": "list", + "responseClass": "List[Sound]", + "parameters": [ + { + "name": "lang", + "description": "Lookup sound for a specific language.", + "paramType": "query", + "dataType": "string", + "required": false + }, + { + "name": "format", + "description": "Lookup sound in a specific format.", + "paramType": "query", + "dataType": "string", + "required": false, + "__note": "core show translation can show translation paths between formats, along with relative costs. so this could be just installed format, or we could follow that for transcoded formats." + } + ] + } + ] + }, + { + "path": "/sounds/{soundId}", + "description": "Individual sound", + "operations": [ + { + "httpMethod": "GET", + "summary": "Get a sound's details.", + "nickname": "get", + "responseClass": "Sound", + "parameters": [ + { + "name": "soundId", + "description": "Sound's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ] + } + ] + } + ], + "models": { + "FormatLangPair": { + "id": "FormatLangPair", + "description": "Identifies the format and language of a sound file", + "properties": { + "language": { + "required": true, + "type": "string" + }, + "format": { + "required": true, + "type": "string" + } + } + }, + "Sound": { + "id": "Sound", + "description": "A media file that may be played back.", + "properties": { + "id": { + "required": true, + "description": "Sound's identifier.", + "type": "string" + }, + "text": { + "required": false, + "description": "Text description of the sound, usually the words spoken.", + "type": "string" + }, + "formats": { + "required": true, + "description": "The formats and languages in which this sound is available.", + "type": "List[FormatLangPair]" + } + } + } + } +} diff --git a/codegen/ch/loway/oss/ari4java/codegen/run.java b/codegen/ch/loway/oss/ari4java/codegen/run.java index c5ef0f13..836bf050 100644 --- a/codegen/ch/loway/oss/ari4java/codegen/run.java +++ b/codegen/ch/loway/oss/ari4java/codegen/run.java @@ -39,7 +39,8 @@ public static void main( String [] argv ) throws IOException { loadAsteriskDefs( dm, "ari_1_10_0" ); loadAsteriskDefs( dm, "ari_2_0_0" ); loadAsteriskDefs( dm, "ari_3_0_0" ); - + loadAsteriskDefs( dm, "ari_4_0_0" ); + dm.generateAllClasses(); From 6a4c51865cec8185190468296a6d3ece8ffb7b6d Mon Sep 17 00:00:00 2001 From: Oded Arbel Date: Tue, 12 Feb 2019 19:21:34 +0200 Subject: [PATCH 041/220] unsubscribe may fail if the web socket is not connected in which case we should still destroy the clients and finish cleanup --- classes/ch/loway/oss/ari4java/ARI.java | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/classes/ch/loway/oss/ari4java/ARI.java b/classes/ch/loway/oss/ari4java/ARI.java index 359107ae..f9f3458a 100644 --- a/classes/ch/loway/oss/ari4java/ARI.java +++ b/classes/ch/loway/oss/ari4java/ARI.java @@ -368,7 +368,11 @@ private static String findVersionString(String response) throws ARIException { */ public void cleanup() throws ARIException { - unsubscribeApplication(); + try { + unsubscribeApplication(); + } catch (ARIException e) { + // ignore on cleanup... + } for (BaseAriAction liveAction : liveActionList) { try { closeAction(liveAction); From 66a1edf2a12381ef42f5b31badb43d10685512f6 Mon Sep 17 00:00:00 2001 From: lenz Date: Wed, 3 Apr 2019 19:48:55 +0200 Subject: [PATCH 042/220] REL 0.5.1 --- README.md | 5 ++--- build.gradle | 2 +- 2 files changed, 3 insertions(+), 4 deletions(-) diff --git a/README.md b/README.md index f9bc1835..2557e835 100644 --- a/README.md +++ b/README.md @@ -24,8 +24,6 @@ across different versions. yours from https://github.com/l3nz/whaleware/tree/master/examples/asterisk-load-test -**Tip:** join [our ari4java Google+ group](https://plus.google.com/u/0/communities/116130645492865479649) for news, help and plain bouncing of ideas around. - Using the library ================= @@ -39,7 +37,7 @@ If you use Gradle (or any tool using Maven dependencies) you can simply declare dependencies { - compile 'ch.loway.oss.ari4java:ari4java:0.5.0' + compile 'ch.loway.oss.ari4java:ari4java:0.5.1' } This will download the package and all required dependencies. @@ -79,6 +77,7 @@ The project requires: Status ------ +* 19.04.03 - Rel 0.5.1. Goodbye Naama! * 19.01.07 - Support java 9 (#108), code generation from gradle(#110), fixed unsubscribing from application correctly(#59), added event interface inheritance(#106) rel 0.5.0 * 17.12.19 - Added support for ARI 3.0.0 (#78) * 17.02.04 - Added support for ARI 2.0.0 (#62) and quicker deserialization (#63) diff --git a/build.gradle b/build.gradle index 2c7eb476..61e69318 100644 --- a/build.gradle +++ b/build.gradle @@ -9,7 +9,7 @@ def env = System.getenv() project.ext { webapp_name = 'ari4java' - app_version = '0.5.0' + app_version = '0.5.1' build_number = env["BUILD_NUMBER"] version_class = 'ch/loway/oss/ari4java/BUILD.java' build_time = "" + new Date() From 545fd0e460f495e4da52eb182ab331ae89051d45 Mon Sep 17 00:00:00 2001 From: lenz Date: Mon, 9 Sep 2019 10:13:07 +0200 Subject: [PATCH 043/220] Looking for New mainainer --- README.md | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/README.md b/README.md index 2557e835..3b820f2a 100644 --- a/README.md +++ b/README.md @@ -5,6 +5,16 @@ The Asterisk REST Interface (ARI) bindings for Java. [ ![Download](https://api.bintray.com/packages/lenz/maven/ari4java/images/download.png) ](https://bintray.com/lenz/maven/ari4java/_latestVersion) +Project status: Looking for a new maintainer +-------------------------------------------- + +I am looking for a new maintainer to take over this project, as I currently have no +time to handle it appropriately. +**Looking for someone who is using the library in production and whose business runs a product based on ari4java, so +they have a very good reason to keep it fit.** Any takers? + + + Description ----------- From 3f871089def05801380395b6eeb91ae503f41017 Mon Sep 17 00:00:00 2001 From: Graham Brown Date: Sun, 6 Oct 2019 18:08:26 +0200 Subject: [PATCH 044/220] Remove looking for new maintainer --- README.md | 10 ---------- 1 file changed, 10 deletions(-) diff --git a/README.md b/README.md index 3b820f2a..2557e835 100644 --- a/README.md +++ b/README.md @@ -5,16 +5,6 @@ The Asterisk REST Interface (ARI) bindings for Java. [ ![Download](https://api.bintray.com/packages/lenz/maven/ari4java/images/download.png) ](https://bintray.com/lenz/maven/ari4java/_latestVersion) -Project status: Looking for a new maintainer --------------------------------------------- - -I am looking for a new maintainer to take over this project, as I currently have no -time to handle it appropriately. -**Looking for someone who is using the library in production and whose business runs a product based on ari4java, so -they have a very good reason to keep it fit.** Any takers? - - - Description ----------- From 3d1ca8b08afb2d9fb3826cb3fda51970c9ad870c Mon Sep 17 00:00:00 2001 From: Graham Brown Date: Sun, 13 Oct 2019 00:02:08 +0200 Subject: [PATCH 045/220] major structure refactor to following gradle default folder structures added the gradle wrapper codegen now recursively builds all versions with less manual work required --- .gitignore | 13 +- README.md | 15 +- build.gradle | 179 ++----- classes/ch/loway/oss/ari4java/AriVersion.java | 99 ---- classes/ch/loway/oss/ari4java/BUILD.java | 15 - codegen/build.gradle | 23 +- .../oss/ari4java/codegen/genJava/JavaGen.java | 76 --- .../ch/loway/oss/ari4java/codegen/run.java | 75 --- .../loway/oss/ari4java/codegen/DefMapper.java | 444 +++++++++--------- .../loway/oss/ari4java/codegen/VERSION.java | 3 +- .../oss/ari4java/codegen/genJava/JavaGen.java | 80 ++++ .../codegen/genJava/JavaInterface.java | 0 .../ari4java/codegen/genJava/JavaPkgInfo.java | 0 .../oss/ari4java/codegen/models/Action.java | 0 .../oss/ari4java/codegen/models/Apis.java | 0 .../codegen/models/AriBuilderInterface.java | 0 .../codegen/models/ClassTranslator.java | 0 .../oss/ari4java/codegen/models/Model.java | 0 .../ari4java/codegen/models/ModelField.java | 0 .../ari4java/codegen/models/Operation.java | 0 .../ch/loway/oss/ari4java/codegen/run.java | 51 ++ .../resources/codegen-data}/COPYING.asterisk | 0 .../resources/codegen-data}/LICENSE.asterisk | 0 .../codegen-data}/ari_0_0_1/README.md | 0 .../codegen-data}/ari_0_0_1/applications.json | 0 .../codegen-data}/ari_0_0_1/asterisk.json | 0 .../codegen-data}/ari_0_0_1/bridges.json | 0 .../codegen-data}/ari_0_0_1/channels.json | 0 .../codegen-data}/ari_0_0_1/deviceStates.json | 0 .../codegen-data}/ari_0_0_1/endpoints.json | 0 .../codegen-data}/ari_0_0_1/events.json | 0 .../codegen-data}/ari_0_0_1/playbacks.json | 0 .../codegen-data}/ari_0_0_1/recordings.json | 0 .../codegen-data}/ari_0_0_1/sounds.json | 0 .../codegen-data}/ari_1_0_0/applications.json | 0 .../codegen-data}/ari_1_0_0/asterisk.json | 0 .../codegen-data}/ari_1_0_0/bridges.json | 0 .../codegen-data}/ari_1_0_0/channels.json | 0 .../codegen-data}/ari_1_0_0/deviceStates.json | 0 .../codegen-data}/ari_1_0_0/endpoints.json | 0 .../codegen-data}/ari_1_0_0/events.json | 0 .../codegen-data}/ari_1_0_0/playbacks.json | 0 .../codegen-data}/ari_1_0_0/recordings.json | 0 .../codegen-data}/ari_1_0_0/sounds.json | 0 .../ari_1_10_0/applications.json | 0 .../codegen-data}/ari_1_10_0/asterisk.json | 0 .../codegen-data}/ari_1_10_0/bridges.json | 0 .../codegen-data}/ari_1_10_0/channels.json | 0 .../ari_1_10_0/deviceStates.json | 0 .../codegen-data}/ari_1_10_0/endpoints.json | 0 .../codegen-data}/ari_1_10_0/events.json | 0 .../codegen-data}/ari_1_10_0/mailboxes.json | 0 .../codegen-data}/ari_1_10_0/playbacks.json | 0 .../codegen-data}/ari_1_10_0/recordings.json | 0 .../codegen-data}/ari_1_10_0/sounds.json | 0 .../codegen-data}/ari_1_5_0/applications.json | 0 .../codegen-data}/ari_1_5_0/asterisk.json | 0 .../codegen-data}/ari_1_5_0/bridges.json | 0 .../codegen-data}/ari_1_5_0/channels.json | 0 .../codegen-data}/ari_1_5_0/deviceStates.json | 0 .../codegen-data}/ari_1_5_0/endpoints.json | 0 .../codegen-data}/ari_1_5_0/events.json | 0 .../codegen-data}/ari_1_5_0/mailboxes.json | 0 .../codegen-data}/ari_1_5_0/playbacks.json | 0 .../codegen-data}/ari_1_5_0/recordings.json | 0 .../codegen-data}/ari_1_5_0/sounds.json | 0 .../codegen-data}/ari_1_6_0/applications.json | 0 .../codegen-data}/ari_1_6_0/asterisk.json | 0 .../codegen-data}/ari_1_6_0/bridges.json | 0 .../codegen-data}/ari_1_6_0/channels.json | 0 .../codegen-data}/ari_1_6_0/deviceStates.json | 0 .../codegen-data}/ari_1_6_0/endpoints.json | 0 .../codegen-data}/ari_1_6_0/events.json | 0 .../codegen-data}/ari_1_6_0/mailboxes.json | 0 .../codegen-data}/ari_1_6_0/playbacks.json | 0 .../codegen-data}/ari_1_6_0/recordings.json | 0 .../codegen-data}/ari_1_6_0/sounds.json | 0 .../codegen-data}/ari_1_7_0/applications.json | 0 .../codegen-data}/ari_1_7_0/asterisk.json | 0 .../codegen-data}/ari_1_7_0/bridges.json | 0 .../codegen-data}/ari_1_7_0/channels.json | 0 .../codegen-data}/ari_1_7_0/deviceStates.json | 0 .../codegen-data}/ari_1_7_0/endpoints.json | 0 .../codegen-data}/ari_1_7_0/events.json | 0 .../codegen-data}/ari_1_7_0/mailboxes.json | 0 .../codegen-data}/ari_1_7_0/playbacks.json | 0 .../codegen-data}/ari_1_7_0/recordings.json | 0 .../codegen-data}/ari_1_7_0/sounds.json | 0 .../codegen-data}/ari_1_8_0/applications.json | 0 .../codegen-data}/ari_1_8_0/asterisk.json | 0 .../codegen-data}/ari_1_8_0/bridges.json | 0 .../codegen-data}/ari_1_8_0/channels.json | 0 .../codegen-data}/ari_1_8_0/deviceStates.json | 0 .../codegen-data}/ari_1_8_0/endpoints.json | 0 .../codegen-data}/ari_1_8_0/events.json | 0 .../codegen-data}/ari_1_8_0/mailboxes.json | 0 .../codegen-data}/ari_1_8_0/playbacks.json | 0 .../codegen-data}/ari_1_8_0/recordings.json | 0 .../codegen-data}/ari_1_8_0/sounds.json | 0 .../codegen-data}/ari_1_9_0/applications.json | 0 .../codegen-data}/ari_1_9_0/asterisk.json | 0 .../codegen-data}/ari_1_9_0/bridges.json | 0 .../codegen-data}/ari_1_9_0/channels.json | 0 .../codegen-data}/ari_1_9_0/deviceStates.json | 0 .../codegen-data}/ari_1_9_0/endpoints.json | 0 .../codegen-data}/ari_1_9_0/events.json | 0 .../codegen-data}/ari_1_9_0/mailboxes.json | 0 .../codegen-data}/ari_1_9_0/playbacks.json | 0 .../codegen-data}/ari_1_9_0/recordings.json | 0 .../codegen-data}/ari_1_9_0/sounds.json | 0 .../codegen-data}/ari_2_0_0/README.md | 0 .../codegen-data}/ari_2_0_0/applications.json | 0 .../codegen-data}/ari_2_0_0/asterisk.json | 0 .../codegen-data}/ari_2_0_0/bridges.json | 0 .../codegen-data}/ari_2_0_0/channels.json | 0 .../codegen-data}/ari_2_0_0/deviceStates.json | 0 .../codegen-data}/ari_2_0_0/endpoints.json | 0 .../codegen-data}/ari_2_0_0/events.json | 0 .../codegen-data}/ari_2_0_0/mailboxes.json | 0 .../codegen-data}/ari_2_0_0/playbacks.json | 0 .../codegen-data}/ari_2_0_0/recordings.json | 0 .../codegen-data}/ari_2_0_0/sounds.json | 0 .../codegen-data}/ari_3_0_0/applications.json | 0 .../codegen-data}/ari_3_0_0/asterisk.json | 0 .../codegen-data}/ari_3_0_0/bridges.json | 0 .../codegen-data}/ari_3_0_0/channels.json | 0 .../codegen-data}/ari_3_0_0/deviceStates.json | 0 .../codegen-data}/ari_3_0_0/endpoints.json | 0 .../codegen-data}/ari_3_0_0/events.json | 0 .../codegen-data}/ari_3_0_0/mailboxes.json | 0 .../codegen-data}/ari_3_0_0/playbacks.json | 0 .../codegen-data}/ari_3_0_0/recordings.json | 0 .../codegen-data}/ari_3_0_0/sounds.json | 0 .../codegen-data}/ari_4_0_0/README.md | 0 .../codegen-data}/ari_4_0_0/applications.json | 0 .../codegen-data}/ari_4_0_0/asterisk.json | 0 .../codegen-data}/ari_4_0_0/bridges.json | 0 .../codegen-data}/ari_4_0_0/channels.json | 0 .../codegen-data}/ari_4_0_0/deviceStates.json | 0 .../codegen-data}/ari_4_0_0/endpoints.json | 0 .../codegen-data}/ari_4_0_0/events.json | 0 .../codegen-data}/ari_4_0_0/mailboxes.json | 0 .../codegen-data}/ari_4_0_0/playbacks.json | 0 .../codegen-data}/ari_4_0_0/recordings.json | 0 .../codegen-data}/ari_4_0_0/sounds.json | 0 gradle/wrapper/gradle-wrapper.jar | Bin 0 -> 55190 bytes gradle/wrapper/gradle-wrapper.properties | 5 + gradlew | 172 +++++++ gradlew.bat | 84 ++++ settings.gradle | 7 +- .../main/java}/ch/loway/oss/ari4java/ARI.java | 0 .../ch/loway/oss/ari4java/AriFactory.java | 0 .../ch/loway/oss/ari4java/AriSubscriber.java | 0 .../java/ch/loway/oss/ari4java/BUILD.java | 31 ++ .../oss/ari4java/tools/ARIException.java | 0 .../oss/ari4java/tools/AriAsyncHandler.java | 0 .../loway/oss/ari4java/tools/AriCallback.java | 0 .../oss/ari4java/tools/BaseAriAction.java | 0 .../loway/oss/ari4java/tools/HttpClient.java | 0 .../loway/oss/ari4java/tools/HttpParam.java | 0 .../oss/ari4java/tools/HttpResponse.java | 0 .../ari4java/tools/HttpResponseHandler.java | 0 .../oss/ari4java/tools/MessageQueue.java | 0 .../oss/ari4java/tools/RestException.java | 0 .../ch/loway/oss/ari4java/tools/WsClient.java | 0 .../ari4java/tools/WsClientAutoReconnect.java | 0 .../ari4java/tools/http/NettyHttpClient.java | 0 .../tools/http/NettyHttpClientHandler.java | 0 .../tools/http/NettyWSClientHandler.java | 0 .../oss/ari4java/tools/tags/EventSource.java | 0 .../java}/ch/loway/oss/ari4java/ARITest.java | 0 .../ari4java/generated/ActionSoundsTest.java | 0 .../ari4java/generated/ActonBridgesTest.java | 6 +- .../DeserializeToListOfInterfaceTest.java | 0 .../ari4java/generated/EventBuilderTest.java | 0 .../loway/oss/ari4java/sandbox/TestARI.java | 0 .../oss/ari4java/sandbox/TestNettyHttp.java | 0 .../oss/ari4java/sandbox/TestNettyWs.java | 0 .../ari4java/sandbox/deserializeJsonTest.java | 0 .../sandbox/sample/ConnectAndDial.java | 0 180 files changed, 693 insertions(+), 685 deletions(-) delete mode 100644 classes/ch/loway/oss/ari4java/AriVersion.java delete mode 100644 classes/ch/loway/oss/ari4java/BUILD.java delete mode 100644 codegen/ch/loway/oss/ari4java/codegen/genJava/JavaGen.java delete mode 100644 codegen/ch/loway/oss/ari4java/codegen/run.java rename codegen/{ => src/main/java}/ch/loway/oss/ari4java/codegen/DefMapper.java (50%) rename codegen/{ => src/main/java}/ch/loway/oss/ari4java/codegen/VERSION.java (66%) create mode 100644 codegen/src/main/java/ch/loway/oss/ari4java/codegen/genJava/JavaGen.java rename codegen/{ => src/main/java}/ch/loway/oss/ari4java/codegen/genJava/JavaInterface.java (100%) rename codegen/{ => src/main/java}/ch/loway/oss/ari4java/codegen/genJava/JavaPkgInfo.java (100%) rename codegen/{ => src/main/java}/ch/loway/oss/ari4java/codegen/models/Action.java (100%) rename codegen/{ => src/main/java}/ch/loway/oss/ari4java/codegen/models/Apis.java (100%) rename codegen/{ => src/main/java}/ch/loway/oss/ari4java/codegen/models/AriBuilderInterface.java (100%) rename codegen/{ => src/main/java}/ch/loway/oss/ari4java/codegen/models/ClassTranslator.java (100%) rename codegen/{ => src/main/java}/ch/loway/oss/ari4java/codegen/models/Model.java (100%) rename codegen/{ => src/main/java}/ch/loway/oss/ari4java/codegen/models/ModelField.java (100%) rename codegen/{ => src/main/java}/ch/loway/oss/ari4java/codegen/models/Operation.java (100%) create mode 100644 codegen/src/main/java/ch/loway/oss/ari4java/codegen/run.java rename {codegen-data => codegen/src/main/resources/codegen-data}/COPYING.asterisk (100%) rename {codegen-data => codegen/src/main/resources/codegen-data}/LICENSE.asterisk (100%) rename {codegen-data => codegen/src/main/resources/codegen-data}/ari_0_0_1/README.md (100%) rename {codegen-data => codegen/src/main/resources/codegen-data}/ari_0_0_1/applications.json (100%) rename {codegen-data => codegen/src/main/resources/codegen-data}/ari_0_0_1/asterisk.json (100%) rename {codegen-data => codegen/src/main/resources/codegen-data}/ari_0_0_1/bridges.json (100%) rename {codegen-data => codegen/src/main/resources/codegen-data}/ari_0_0_1/channels.json (100%) rename {codegen-data => codegen/src/main/resources/codegen-data}/ari_0_0_1/deviceStates.json (100%) rename {codegen-data => codegen/src/main/resources/codegen-data}/ari_0_0_1/endpoints.json (100%) rename {codegen-data => codegen/src/main/resources/codegen-data}/ari_0_0_1/events.json (100%) rename {codegen-data => codegen/src/main/resources/codegen-data}/ari_0_0_1/playbacks.json (100%) rename {codegen-data => codegen/src/main/resources/codegen-data}/ari_0_0_1/recordings.json (100%) rename {codegen-data => codegen/src/main/resources/codegen-data}/ari_0_0_1/sounds.json (100%) rename {codegen-data => codegen/src/main/resources/codegen-data}/ari_1_0_0/applications.json (100%) rename {codegen-data => codegen/src/main/resources/codegen-data}/ari_1_0_0/asterisk.json (100%) rename {codegen-data => codegen/src/main/resources/codegen-data}/ari_1_0_0/bridges.json (100%) rename {codegen-data => codegen/src/main/resources/codegen-data}/ari_1_0_0/channels.json (100%) rename {codegen-data => codegen/src/main/resources/codegen-data}/ari_1_0_0/deviceStates.json (100%) rename {codegen-data => codegen/src/main/resources/codegen-data}/ari_1_0_0/endpoints.json (100%) rename {codegen-data => codegen/src/main/resources/codegen-data}/ari_1_0_0/events.json (100%) rename {codegen-data => codegen/src/main/resources/codegen-data}/ari_1_0_0/playbacks.json (100%) rename {codegen-data => codegen/src/main/resources/codegen-data}/ari_1_0_0/recordings.json (100%) rename {codegen-data => codegen/src/main/resources/codegen-data}/ari_1_0_0/sounds.json (100%) rename {codegen-data => codegen/src/main/resources/codegen-data}/ari_1_10_0/applications.json (100%) rename {codegen-data => codegen/src/main/resources/codegen-data}/ari_1_10_0/asterisk.json (100%) rename {codegen-data => codegen/src/main/resources/codegen-data}/ari_1_10_0/bridges.json (100%) rename {codegen-data => codegen/src/main/resources/codegen-data}/ari_1_10_0/channels.json (100%) rename {codegen-data => codegen/src/main/resources/codegen-data}/ari_1_10_0/deviceStates.json (100%) rename {codegen-data => codegen/src/main/resources/codegen-data}/ari_1_10_0/endpoints.json (100%) rename {codegen-data => codegen/src/main/resources/codegen-data}/ari_1_10_0/events.json (100%) rename {codegen-data => codegen/src/main/resources/codegen-data}/ari_1_10_0/mailboxes.json (100%) rename {codegen-data => codegen/src/main/resources/codegen-data}/ari_1_10_0/playbacks.json (100%) rename {codegen-data => codegen/src/main/resources/codegen-data}/ari_1_10_0/recordings.json (100%) rename {codegen-data => codegen/src/main/resources/codegen-data}/ari_1_10_0/sounds.json (100%) rename {codegen-data => codegen/src/main/resources/codegen-data}/ari_1_5_0/applications.json (100%) rename {codegen-data => codegen/src/main/resources/codegen-data}/ari_1_5_0/asterisk.json (100%) rename {codegen-data => codegen/src/main/resources/codegen-data}/ari_1_5_0/bridges.json (100%) rename {codegen-data => codegen/src/main/resources/codegen-data}/ari_1_5_0/channels.json (100%) rename {codegen-data => codegen/src/main/resources/codegen-data}/ari_1_5_0/deviceStates.json (100%) rename {codegen-data => codegen/src/main/resources/codegen-data}/ari_1_5_0/endpoints.json (100%) rename {codegen-data => codegen/src/main/resources/codegen-data}/ari_1_5_0/events.json (100%) rename {codegen-data => codegen/src/main/resources/codegen-data}/ari_1_5_0/mailboxes.json (100%) rename {codegen-data => codegen/src/main/resources/codegen-data}/ari_1_5_0/playbacks.json (100%) rename {codegen-data => codegen/src/main/resources/codegen-data}/ari_1_5_0/recordings.json (100%) rename {codegen-data => codegen/src/main/resources/codegen-data}/ari_1_5_0/sounds.json (100%) rename {codegen-data => codegen/src/main/resources/codegen-data}/ari_1_6_0/applications.json (100%) rename {codegen-data => codegen/src/main/resources/codegen-data}/ari_1_6_0/asterisk.json (100%) rename {codegen-data => codegen/src/main/resources/codegen-data}/ari_1_6_0/bridges.json (100%) rename {codegen-data => codegen/src/main/resources/codegen-data}/ari_1_6_0/channels.json (100%) rename {codegen-data => codegen/src/main/resources/codegen-data}/ari_1_6_0/deviceStates.json (100%) rename {codegen-data => codegen/src/main/resources/codegen-data}/ari_1_6_0/endpoints.json (100%) rename {codegen-data => codegen/src/main/resources/codegen-data}/ari_1_6_0/events.json (100%) rename {codegen-data => codegen/src/main/resources/codegen-data}/ari_1_6_0/mailboxes.json (100%) rename {codegen-data => codegen/src/main/resources/codegen-data}/ari_1_6_0/playbacks.json (100%) rename {codegen-data => codegen/src/main/resources/codegen-data}/ari_1_6_0/recordings.json (100%) rename {codegen-data => codegen/src/main/resources/codegen-data}/ari_1_6_0/sounds.json (100%) rename {codegen-data => codegen/src/main/resources/codegen-data}/ari_1_7_0/applications.json (100%) rename {codegen-data => codegen/src/main/resources/codegen-data}/ari_1_7_0/asterisk.json (100%) rename {codegen-data => codegen/src/main/resources/codegen-data}/ari_1_7_0/bridges.json (100%) rename {codegen-data => codegen/src/main/resources/codegen-data}/ari_1_7_0/channels.json (100%) rename {codegen-data => codegen/src/main/resources/codegen-data}/ari_1_7_0/deviceStates.json (100%) rename {codegen-data => codegen/src/main/resources/codegen-data}/ari_1_7_0/endpoints.json (100%) rename {codegen-data => codegen/src/main/resources/codegen-data}/ari_1_7_0/events.json (100%) rename {codegen-data => codegen/src/main/resources/codegen-data}/ari_1_7_0/mailboxes.json (100%) rename {codegen-data => codegen/src/main/resources/codegen-data}/ari_1_7_0/playbacks.json (100%) rename {codegen-data => codegen/src/main/resources/codegen-data}/ari_1_7_0/recordings.json (100%) rename {codegen-data => codegen/src/main/resources/codegen-data}/ari_1_7_0/sounds.json (100%) rename {codegen-data => codegen/src/main/resources/codegen-data}/ari_1_8_0/applications.json (100%) rename {codegen-data => codegen/src/main/resources/codegen-data}/ari_1_8_0/asterisk.json (100%) rename {codegen-data => codegen/src/main/resources/codegen-data}/ari_1_8_0/bridges.json (100%) rename {codegen-data => codegen/src/main/resources/codegen-data}/ari_1_8_0/channels.json (100%) rename {codegen-data => codegen/src/main/resources/codegen-data}/ari_1_8_0/deviceStates.json (100%) rename {codegen-data => codegen/src/main/resources/codegen-data}/ari_1_8_0/endpoints.json (100%) rename {codegen-data => codegen/src/main/resources/codegen-data}/ari_1_8_0/events.json (100%) rename {codegen-data => codegen/src/main/resources/codegen-data}/ari_1_8_0/mailboxes.json (100%) rename {codegen-data => codegen/src/main/resources/codegen-data}/ari_1_8_0/playbacks.json (100%) rename {codegen-data => codegen/src/main/resources/codegen-data}/ari_1_8_0/recordings.json (100%) rename {codegen-data => codegen/src/main/resources/codegen-data}/ari_1_8_0/sounds.json (100%) rename {codegen-data => codegen/src/main/resources/codegen-data}/ari_1_9_0/applications.json (100%) rename {codegen-data => codegen/src/main/resources/codegen-data}/ari_1_9_0/asterisk.json (100%) rename {codegen-data => codegen/src/main/resources/codegen-data}/ari_1_9_0/bridges.json (100%) rename {codegen-data => codegen/src/main/resources/codegen-data}/ari_1_9_0/channels.json (100%) rename {codegen-data => codegen/src/main/resources/codegen-data}/ari_1_9_0/deviceStates.json (100%) rename {codegen-data => codegen/src/main/resources/codegen-data}/ari_1_9_0/endpoints.json (100%) rename {codegen-data => codegen/src/main/resources/codegen-data}/ari_1_9_0/events.json (100%) rename {codegen-data => codegen/src/main/resources/codegen-data}/ari_1_9_0/mailboxes.json (100%) rename {codegen-data => codegen/src/main/resources/codegen-data}/ari_1_9_0/playbacks.json (100%) rename {codegen-data => codegen/src/main/resources/codegen-data}/ari_1_9_0/recordings.json (100%) rename {codegen-data => codegen/src/main/resources/codegen-data}/ari_1_9_0/sounds.json (100%) rename {codegen-data => codegen/src/main/resources/codegen-data}/ari_2_0_0/README.md (100%) rename {codegen-data => codegen/src/main/resources/codegen-data}/ari_2_0_0/applications.json (100%) rename {codegen-data => codegen/src/main/resources/codegen-data}/ari_2_0_0/asterisk.json (100%) rename {codegen-data => codegen/src/main/resources/codegen-data}/ari_2_0_0/bridges.json (100%) rename {codegen-data => codegen/src/main/resources/codegen-data}/ari_2_0_0/channels.json (100%) rename {codegen-data => codegen/src/main/resources/codegen-data}/ari_2_0_0/deviceStates.json (100%) rename {codegen-data => codegen/src/main/resources/codegen-data}/ari_2_0_0/endpoints.json (100%) rename {codegen-data => codegen/src/main/resources/codegen-data}/ari_2_0_0/events.json (100%) rename {codegen-data => codegen/src/main/resources/codegen-data}/ari_2_0_0/mailboxes.json (100%) rename {codegen-data => codegen/src/main/resources/codegen-data}/ari_2_0_0/playbacks.json (100%) rename {codegen-data => codegen/src/main/resources/codegen-data}/ari_2_0_0/recordings.json (100%) rename {codegen-data => codegen/src/main/resources/codegen-data}/ari_2_0_0/sounds.json (100%) rename {codegen-data => codegen/src/main/resources/codegen-data}/ari_3_0_0/applications.json (100%) rename {codegen-data => codegen/src/main/resources/codegen-data}/ari_3_0_0/asterisk.json (100%) rename {codegen-data => codegen/src/main/resources/codegen-data}/ari_3_0_0/bridges.json (100%) rename {codegen-data => codegen/src/main/resources/codegen-data}/ari_3_0_0/channels.json (100%) rename {codegen-data => codegen/src/main/resources/codegen-data}/ari_3_0_0/deviceStates.json (100%) rename {codegen-data => codegen/src/main/resources/codegen-data}/ari_3_0_0/endpoints.json (100%) rename {codegen-data => codegen/src/main/resources/codegen-data}/ari_3_0_0/events.json (100%) rename {codegen-data => codegen/src/main/resources/codegen-data}/ari_3_0_0/mailboxes.json (100%) rename {codegen-data => codegen/src/main/resources/codegen-data}/ari_3_0_0/playbacks.json (100%) rename {codegen-data => codegen/src/main/resources/codegen-data}/ari_3_0_0/recordings.json (100%) rename {codegen-data => codegen/src/main/resources/codegen-data}/ari_3_0_0/sounds.json (100%) rename {codegen-data => codegen/src/main/resources/codegen-data}/ari_4_0_0/README.md (100%) rename {codegen-data => codegen/src/main/resources/codegen-data}/ari_4_0_0/applications.json (100%) rename {codegen-data => codegen/src/main/resources/codegen-data}/ari_4_0_0/asterisk.json (100%) rename {codegen-data => codegen/src/main/resources/codegen-data}/ari_4_0_0/bridges.json (100%) rename {codegen-data => codegen/src/main/resources/codegen-data}/ari_4_0_0/channels.json (100%) rename {codegen-data => codegen/src/main/resources/codegen-data}/ari_4_0_0/deviceStates.json (100%) rename {codegen-data => codegen/src/main/resources/codegen-data}/ari_4_0_0/endpoints.json (100%) rename {codegen-data => codegen/src/main/resources/codegen-data}/ari_4_0_0/events.json (100%) rename {codegen-data => codegen/src/main/resources/codegen-data}/ari_4_0_0/mailboxes.json (100%) rename {codegen-data => codegen/src/main/resources/codegen-data}/ari_4_0_0/playbacks.json (100%) rename {codegen-data => codegen/src/main/resources/codegen-data}/ari_4_0_0/recordings.json (100%) rename {codegen-data => codegen/src/main/resources/codegen-data}/ari_4_0_0/sounds.json (100%) create mode 100644 gradle/wrapper/gradle-wrapper.jar create mode 100644 gradle/wrapper/gradle-wrapper.properties create mode 100755 gradlew create mode 100644 gradlew.bat rename {classes => src/main/java}/ch/loway/oss/ari4java/ARI.java (100%) rename {classes => src/main/java}/ch/loway/oss/ari4java/AriFactory.java (100%) rename {classes => src/main/java}/ch/loway/oss/ari4java/AriSubscriber.java (100%) create mode 100644 src/main/java/ch/loway/oss/ari4java/BUILD.java rename {classes => src/main/java}/ch/loway/oss/ari4java/tools/ARIException.java (100%) rename {classes => src/main/java}/ch/loway/oss/ari4java/tools/AriAsyncHandler.java (100%) rename {classes => src/main/java}/ch/loway/oss/ari4java/tools/AriCallback.java (100%) rename {classes => src/main/java}/ch/loway/oss/ari4java/tools/BaseAriAction.java (100%) rename {classes => src/main/java}/ch/loway/oss/ari4java/tools/HttpClient.java (100%) rename {classes => src/main/java}/ch/loway/oss/ari4java/tools/HttpParam.java (100%) rename {classes => src/main/java}/ch/loway/oss/ari4java/tools/HttpResponse.java (100%) rename {classes => src/main/java}/ch/loway/oss/ari4java/tools/HttpResponseHandler.java (100%) rename {classes => src/main/java}/ch/loway/oss/ari4java/tools/MessageQueue.java (100%) rename {classes => src/main/java}/ch/loway/oss/ari4java/tools/RestException.java (100%) rename {classes => src/main/java}/ch/loway/oss/ari4java/tools/WsClient.java (100%) rename {classes => src/main/java}/ch/loway/oss/ari4java/tools/WsClientAutoReconnect.java (100%) rename {classes => src/main/java}/ch/loway/oss/ari4java/tools/http/NettyHttpClient.java (100%) rename {classes => src/main/java}/ch/loway/oss/ari4java/tools/http/NettyHttpClientHandler.java (100%) rename {classes => src/main/java}/ch/loway/oss/ari4java/tools/http/NettyWSClientHandler.java (100%) rename {classes => src/main/java}/ch/loway/oss/ari4java/tools/tags/EventSource.java (100%) rename {tests => src/test/java}/ch/loway/oss/ari4java/ARITest.java (100%) rename {tests => src/test/java}/ch/loway/oss/ari4java/generated/ActionSoundsTest.java (100%) rename {tests => src/test/java}/ch/loway/oss/ari4java/generated/ActonBridgesTest.java (96%) rename {tests => src/test/java}/ch/loway/oss/ari4java/generated/DeserializeToListOfInterfaceTest.java (100%) rename {tests => src/test/java}/ch/loway/oss/ari4java/generated/EventBuilderTest.java (100%) rename {tests => src/test/java}/ch/loway/oss/ari4java/sandbox/TestARI.java (100%) rename {tests => src/test/java}/ch/loway/oss/ari4java/sandbox/TestNettyHttp.java (100%) rename {tests => src/test/java}/ch/loway/oss/ari4java/sandbox/TestNettyWs.java (100%) rename {tests => src/test/java}/ch/loway/oss/ari4java/sandbox/deserializeJsonTest.java (100%) rename {tests => src/test/java}/ch/loway/oss/ari4java/sandbox/sample/ConnectAndDial.java (100%) diff --git a/.gitignore b/.gitignore index 9aebe6d0..a89b6779 100644 --- a/.gitignore +++ b/.gitignore @@ -1,10 +1,5 @@ *.class -# Package Files # -*.jar -*.war -*.ear - ari4java/* build/ bin/ @@ -21,12 +16,12 @@ build.xml .gradle/ /.nb-gradle /.directory +.idea/ # macbook .DS_Store -/bin/ -/build/ - # ignore generated code artifacts - they will be rebuilt by gradle as needed -classes/ch/loway/oss/ari4java/generated/ +src/main/generated/ +src/main/resources/build.properties + diff --git a/README.md b/README.md index 2557e835..0149ffa3 100644 --- a/README.md +++ b/README.md @@ -47,21 +47,20 @@ Building The code here is partially hand-written and partially generated out of Swagger definitions. -* "classes/" contains Java code to be released (manually and automatically generated). All automatically -generated classes are under "ch.loway.oss.ari4vaja.generated". They should not be hand-edited. -* "tests/" contains test cases for "classes/" -* "codegen/" contains the Java code that creates auto-generated classes. -* "codegen-data/" contains Swagger models from different versions of the interface (copied from Asterisk). +* "src/main/java" contains Java code to be released (manually and automatically generated). +* "src/main/generated" Are all automatically generated classes, they should not be hand-edited. +* "src/test/java/" contains test cases for "src/main/java" +* "codegen/" is a gradle sub-project that generates code in "src/main/generated" Testing and packaging --------------------- -The easiest way to build is simply using the Gradle script supplied. +The easiest way to build is simply using the Gradle Wrapper script supplied. - gradle clean build + ./gradlew clean build -This will compile, test and package the current version. It will not run the code generator (for the moment at least). +This will compile, test and package the current version. You'll find the resulting jar file under 'build/libs'. Running diff --git a/build.gradle b/build.gradle index 61e69318..ddbe4a11 100644 --- a/build.gradle +++ b/build.gradle @@ -1,171 +1,48 @@ -apply plugin: 'java' -apply plugin: 'findbugs' -apply plugin: 'maven' -def env = System.getenv() - -// -// I defaults valgono per HUDSON -// - -project.ext { - webapp_name = 'ari4java' - app_version = '0.5.1' - build_number = env["BUILD_NUMBER"] - version_class = 'ch/loway/oss/ari4java/BUILD.java' - build_time = "" + new Date() -} - -sourceSets { - - main { - java { - srcDirs "$buildDir/classes_subst" - } - } - - test { - java { - srcDirs "./tests" - } - } +plugins { + id 'java' + id 'maven' } -//artifacts { -// archives sourcesJar -// archives javadocJar -//} +group = 'ch.loway.oss.ari4java' +version = '0.5.1' -task writeNewPom << { - pom { - project { - groupId 'ch.loway.oss.ari4java' - version project.ext.app_version - inceptionYear '2013' - packaging 'jar' - name 'ari4java' - description 'Asterisk ARI interface bindings for Java' - licenses { - license { - name 'GNU LGPL v3' - } - } - scm { - url 'http://github.com/l3nz/ari4java' - connection 'http://github.com/l3nz/ari4java' - } - developers { - developer { - name 'lenz e.' - email 'nomail@home' - } - } +sourceSets { + main { + java { + srcDir 'src/main/generated' } - }.writeTo("$buildDir/libs/ari4java-" + project.ext.app_version + ".pom") -} - - - -task sourcesJar(type: Jar, dependsOn: classes) { - classifier = 'sources' - from "$buildDir/classes_subst" - archiveName project.ext.webapp_name + "-" + project.ext.app_version + "-sources.jar" -} - -task javadocJar(type: Jar, dependsOn: javadoc) { - classifier = 'javadoc' - from javadoc.destinationDir - archiveName project.ext.webapp_name + "-" + project.ext.app_version + "-javadoc.jar" -} - - - -jar { - manifest { - attributes("Implementation-Title": project.ext.webapp_name, - "Implementation-Version": project.ext.app_version) } - archiveName project.ext.webapp_name + "-" + project.ext.app_version + ".jar" - from( "$buildDir/classes_subst" ) } -jar.dependsOn writeNewPom -jar.dependsOn sourcesJar -jar.dependsOn javadocJar - - repositories { - mavenCentral() + mavenCentral() } - dependencies { - compile 'ari4java:codegen' - - compile 'com.fasterxml.jackson.core:jackson-core:2.9.6' - compile 'com.fasterxml.jackson.core:jackson-databind:2.9.6' - compile 'com.fasterxml.jackson.core:jackson-annotations:2.9.6' - compile 'io.netty:netty-all:4.0.25.Final' - compile 'javax.xml.bind:jaxb-api:2.1' + compile 'com.fasterxml.jackson.core:jackson-core:2.9.6' + compile 'com.fasterxml.jackson.core:jackson-databind:2.9.6' + compile 'com.fasterxml.jackson.core:jackson-annotations:2.9.6' + compile 'io.netty:netty-all:4.0.25.Final' + compile 'javax.xml.bind:jaxb-api:2.1' - testCompile 'junit:junit:4.10' + testCompile 'junit:junit:4.10' } -task buildCodegen { - dependsOn gradle.includedBuild('codegen').task(':build') -} +compileJava.dependsOn ':codegen:runCodegen' +compileJava.dependsOn 'buildProps' -task runCodegen(type:JavaExec) { - main = 'ch.loway.oss.ari4java.codegen.run' - classpath sourceSets.main.compileClasspath +def build_number = 'x' +if (System.getenv('BUILD_NUMBER') != null) { + build_number = System.getenv('BUILD_NUMBER') } - -task setVersionInSources() { - doLast { - def cjd = new File( "$buildDir/classes_subst" ) - cjd.mkdirs(); - - def FileTree tree = fileTree( dir: "./classes" ) - //tree.each { File file -> println file } - - copy { - from './classes' - into "$buildDir/classes_subst" - } - - ant.replace( file: "$buildDir/classes_subst/" + project.ext.version_class, - token: "VERSION", - value: "VERSION = \"" + project.ext.app_version + "\"; //" - ) - - ant.replace( file: "$buildDir/classes_subst/" + project.ext.version_class, - token: "BUILD_N", - value: "BUILD_N = \"" + project.ext.build_number + " - " + project.ext.build_time + "\"; //" - ) - } +task buildProps(type: WriteProperties) { + outputFile file('src/main/resources/build.properties') + property 'BUILD_NUMBER', build_number } -runCodegen.dependsOn buildCodegen -setVersionInSources.dependsOn runCodegen -compileJava.dependsOn setVersionInSources - -// decide what to see -only one can be enabled -// get the HTML report from build/reports/findbugs/main.html -tasks.withType(FindBugs) { - reports { - xml.enabled = false - html.enabled = true - } - ignoreFailures = true - } - - - - - -task downloadJars << { - copy { - from configurations.compile - into './libs' - include '**/*.jar' +jar { + manifest { + attributes 'Implementation-Title': project.name, + 'Implementation-Version': project.version } } diff --git a/classes/ch/loway/oss/ari4java/AriVersion.java b/classes/ch/loway/oss/ari4java/AriVersion.java deleted file mode 100644 index 6f6d5305..00000000 --- a/classes/ch/loway/oss/ari4java/AriVersion.java +++ /dev/null @@ -1,99 +0,0 @@ - -package ch.loway.oss.ari4java; - -import ch.loway.oss.ari4java.generated.AriBuilder; -import ch.loway.oss.ari4java.generated.ari_0_0_1.AriBuilder_impl_ari_0_0_1; -import ch.loway.oss.ari4java.generated.ari_1_0_0.AriBuilder_impl_ari_1_0_0; -import ch.loway.oss.ari4java.generated.ari_1_10_0.AriBuilder_impl_ari_1_10_0; -import ch.loway.oss.ari4java.generated.ari_1_5_0.AriBuilder_impl_ari_1_5_0; -import ch.loway.oss.ari4java.generated.ari_1_6_0.AriBuilder_impl_ari_1_6_0; -import ch.loway.oss.ari4java.generated.ari_1_7_0.AriBuilder_impl_ari_1_7_0; -import ch.loway.oss.ari4java.generated.ari_1_8_0.AriBuilder_impl_ari_1_8_0; -import ch.loway.oss.ari4java.generated.ari_1_9_0.AriBuilder_impl_ari_1_9_0; -import ch.loway.oss.ari4java.generated.ari_2_0_0.AriBuilder_impl_ari_2_0_0; -import ch.loway.oss.ari4java.generated.ari_3_0_0.AriBuilder_impl_ari_3_0_0; -import ch.loway.oss.ari4java.generated.ari_4_0_0.AriBuilder_impl_ari_4_0_0; -import ch.loway.oss.ari4java.tools.ARIException; - -/** - * The version of ARI to be used. - * - * @author lenz - */ -public enum AriVersion { - - - /** Asterisk 12 beta 1 */ - ARI_0_0_1 ( "0.0.1", new AriBuilder_impl_ari_0_0_1() ), - /** Asterisk 12 */ - ARI_1_0_0 ( "1.0.0", new AriBuilder_impl_ari_1_0_0() ), - /** Asterisk 13.0.0 */ - ARI_1_5_0 ( "1.5.0", new AriBuilder_impl_ari_1_5_0() ), - /** Asterisk 13.1.0 */ - ARI_1_6_0 ( "1.6.0", new AriBuilder_impl_ari_1_6_0() ), - /** Asterisk 13.2.0 */ - ARI_1_7_0 ( "1.7.0", new AriBuilder_impl_ari_1_7_0() ), - /** Asterisk 13.5.0 */ - ARI_1_8_0 ( "1.8.0", new AriBuilder_impl_ari_1_8_0() ), - /** Asterisk 13.7.0 */ - ARI_1_9_0 ( "1.9.0", new AriBuilder_impl_ari_1_9_0() ), - /** Asterisk 14.0.0 */ - ARI_1_10_0 ( "1.10.0", new AriBuilder_impl_ari_1_10_0() ), - /** Asterisk 14.2.1 */ - ARI_2_0_0 ( "2.0.0", new AriBuilder_impl_ari_2_0_0() ), - /** Asterisk 15.1.4 */ - ARI_3_0_0 ( "3.0.0", new AriBuilder_impl_ari_3_0_0() ), - /** Asterisk 16.1.1 */ - ARI_4_0_0 ( "4.0.0", new AriBuilder_impl_ari_4_0_0() ), - - - IM_FEELING_LUCKY ( "", null ); - - final AriBuilder builder; - final String versionString; - - private AriVersion( String myVersion, AriBuilder ab ) { - versionString = myVersion; - builder = ab; - } - - /** - * You cannot get a builder for IM_FEELING_LUCKY or similar. - * If you try to do this, it s a logical error and you get an exception. - * - * @return the builder object - * @throws IllegalArgumentException - */ - - public AriBuilder builder() { - if ( builder == null ) { - throw new IllegalArgumentException("This version has no builder. Library error for :" + this.name()); - } else { - return builder; - } - } - - /** - * Return the correct version object from the signature string. - * - * @param version - * @return the inferred version. - * @throws ARIException - */ - - public static AriVersion fromVersionString( String version ) throws ARIException { - - for ( AriVersion av: AriVersion.values() ) { - if ( av.builder != null ) { - if (av.versionString.equalsIgnoreCase(version) ) { - return av; - } - } - } - - throw new ARIException( "Unknown ARI Version object for " + version ); - } - - -} - diff --git a/classes/ch/loway/oss/ari4java/BUILD.java b/classes/ch/loway/oss/ari4java/BUILD.java deleted file mode 100644 index f108f76b..00000000 --- a/classes/ch/loway/oss/ari4java/BUILD.java +++ /dev/null @@ -1,15 +0,0 @@ - -package ch.loway.oss.ari4java; - -/** - * Do not hand-edit this file. - * The values below will be set by the Gradle build script. - * - * - * @author lenz - */ -public class BUILD { - public static final String VERSION = "x"; - public static final String BUILD_N = "x"; -} - diff --git a/codegen/build.gradle b/codegen/build.gradle index 1685127c..02f2d1d5 100644 --- a/codegen/build.gradle +++ b/codegen/build.gradle @@ -1,21 +1,18 @@ plugins { - id 'java' -} - -sourceSets { - main { - java { - srcDirs "." - } - } + id 'java' } repositories { - mavenCentral() + mavenCentral() } dependencies { - compile 'com.fasterxml.jackson.core:jackson-core:2.9.6' - compile 'com.fasterxml.jackson.core:jackson-databind:2.9.6' - compile 'com.fasterxml.jackson.core:jackson-annotations:2.9.6' + compile 'com.fasterxml.jackson.core:jackson-core:2.9.6' + compile 'com.fasterxml.jackson.core:jackson-databind:2.9.6' + compile 'com.fasterxml.jackson.core:jackson-annotations:2.9.6' +} + +task runCodegen(type: JavaExec) { + classpath = sourceSets.main.runtimeClasspath + main = 'ch.loway.oss.ari4java.codegen.run' } diff --git a/codegen/ch/loway/oss/ari4java/codegen/genJava/JavaGen.java b/codegen/ch/loway/oss/ari4java/codegen/genJava/JavaGen.java deleted file mode 100644 index ea48198c..00000000 --- a/codegen/ch/loway/oss/ari4java/codegen/genJava/JavaGen.java +++ /dev/null @@ -1,76 +0,0 @@ - -package ch.loway.oss.ari4java.codegen.genJava; - -import java.util.Date; -import java.util.List; - -/** - * A set of static methods to generate Java sources. - * - * @author lenz - */ -public class JavaGen { - - public static void importClasses( StringBuilder sb, String myPackage, List imports ) { - - sb.append( "package " ).append(myPackage).append( ";\n\n"); - - sb.append( "// ----------------------------------------------------\n") - .append( "// THIS CLASS WAS GENERATED AUTOMATICALLY \n") - .append( "// PLEASE DO NOT EDIT \n") - .append( "// Generated on: ").append( (new Date()).toString() ).append( "\n") - .append( "// ----------------------------------------------------\n\n"); - - - for ( String pkg: imports ) { - sb.append( "import " ).append( pkg ).append(";\n"); - } - sb.append( "\n" ); - - } - - public static void addBanner( StringBuilder sb, String multiLineBanner ) { - - String[] rows = multiLineBanner.split("\n"); - - sb.append( "/**********************************************************\n"); - - for (String row: rows ) { - sb.append( " * " ).append(row).append( "\n"); - } - sb.append( " *********************************************************/\n"); - - } - - public static void addBanner( StringBuilder sb, String multilineBanner, String sinceVersion ) { - multilineBanner += "\n\n@since " + sinceVersion; - addBanner(sb, multilineBanner); - } - - - public static String addPrefixAndCapitalize( String prefix, String field ) { - - return prefix + field.substring(0,1).toUpperCase() + field.substring(1); - - - } - - public static String addAsyncCallback(String response) { - return "AriCallback<"+response.replaceAll("^void$", "Void")+"> callback"; - } - - public static void emptyLines( StringBuilder sb, int nLines ) { - for ( int i =0; i< nLines; i++ ) { - sb.append( "\n" ); - } - } - - public static void emptyLine( StringBuilder sb ) { - emptyLines(sb, 1); - } - - -} - -// $Log$ -// diff --git a/codegen/ch/loway/oss/ari4java/codegen/run.java b/codegen/ch/loway/oss/ari4java/codegen/run.java deleted file mode 100644 index 836bf050..00000000 --- a/codegen/ch/loway/oss/ari4java/codegen/run.java +++ /dev/null @@ -1,75 +0,0 @@ - -package ch.loway.oss.ari4java.codegen; - -import java.io.File; -import java.io.IOException; - -/** - * - * - * $Id$ - * @author lenz - */ -public class run { - - //public static String SOURCES = "codegen-data/"; - - public static String PROJECT = "."; - - public static String SOURCES = PROJECT + "/codegen-data/"; - - - public static String SRC_001 = SOURCES + "ari_0_0_1/"; - // D:\git\ari4java\codegen-data\ari_0_0_1 - - - public static void main( String [] argv ) throws IOException { - System.out.println("This is ARI4JAVA Code Generator version " + VERSION.VER ); - - DefMapper dm = new DefMapper(); - dm.setProjectFolder(PROJECT); - - loadAsteriskDefs( dm, "ari_0_0_1" ); - loadAsteriskDefs( dm, "ari_1_0_0" ); - loadAsteriskDefs( dm, "ari_1_5_0" ); - loadAsteriskDefs( dm, "ari_1_6_0" ); - loadAsteriskDefs( dm, "ari_1_7_0" ); - loadAsteriskDefs( dm, "ari_1_8_0" ); - loadAsteriskDefs( dm, "ari_1_9_0" ); - loadAsteriskDefs( dm, "ari_1_10_0" ); - loadAsteriskDefs( dm, "ari_2_0_0" ); - loadAsteriskDefs( dm, "ari_3_0_0" ); - loadAsteriskDefs( dm, "ari_4_0_0" ); - - dm.generateAllClasses(); - - -// dm.writeProperties("ari_0_0_1"); - - } - - - private static void loadAsteriskDefs( DefMapper dm, String srcVer ) throws IOException { - - String srcDir = SOURCES + srcVer + "/"; - - dm.clean( srcVer ); - dm.parseJsonDefinition( new File(srcDir + "applications.json"), srcVer, false ); - dm.parseJsonDefinition( new File(srcDir + "asterisk.json"), srcVer, false ); - dm.parseJsonDefinition( new File(srcDir + "bridges.json"), srcVer, false ); - dm.parseJsonDefinition( new File(srcDir + "channels.json"), srcVer, false ); - dm.parseJsonDefinition( new File(srcDir + "endpoints.json"), srcVer, false ); - dm.parseJsonDefinition( new File(srcDir + "playbacks.json"), srcVer, false ); - dm.parseJsonDefinition( new File(srcDir + "recordings.json"), srcVer, false ); - dm.parseJsonDefinition( new File(srcDir + "sounds.json"), srcVer, false ); - dm.parseJsonDefinition( new File(srcDir + "deviceStates.json"), srcVer, false ); - dm.parseJsonDefinition( new File(srcDir + "events.json"), srcVer, true ); - - } - - - -} - -// $Log$ -// diff --git a/codegen/ch/loway/oss/ari4java/codegen/DefMapper.java b/codegen/src/main/java/ch/loway/oss/ari4java/codegen/DefMapper.java similarity index 50% rename from codegen/ch/loway/oss/ari4java/codegen/DefMapper.java rename to codegen/src/main/java/ch/loway/oss/ari4java/codegen/DefMapper.java index 574663f8..be393ec7 100644 --- a/codegen/ch/loway/oss/ari4java/codegen/DefMapper.java +++ b/codegen/src/main/java/ch/loway/oss/ari4java/codegen/DefMapper.java @@ -31,50 +31,50 @@ /** * The model mapper keeps a list of interfaces and actual implementations. - * + *

* $Id$ + * * @author lenz */ public class DefMapper { - List mymodels = new ArrayList(); - List knownModels = new ArrayList(); + private List vers = new ArrayList<>(); + private List mymodels = new ArrayList<>(); + private List myAPIs = new ArrayList<>(); + private Map interfaces = new HashMap<>(); + private String outputFolder; + private ObjectMapper om = new ObjectMapper(); - List myAPIs = new ArrayList(); - - Map interfaces = new HashMap(); - String myAbsoluteProjectFolder = "."; - - /** * Loads definitions from a module. * - * @param f The source .json file - * @param apiVersion The version of the API we are working with + * @param f The source .json file + * @param apiVersion The version of the API we are working with * @param modelHasEvents whether this file generates WS events * @throws IOException */ + public void parseJsonDefinition(File f, String apiVersion, boolean modelHasEvents) throws IOException { + System.out.println("Loading as: " + f.getAbsolutePath()); - public void parseJsonDefinition( File f, String apiVersion, boolean modelHasEvents ) throws IOException { - - ObjectMapper om = new ObjectMapper(); - System.out.println( "Loading as: " + f.getAbsolutePath() ); + if (!vers.contains(apiVersion)) { + vers.add(apiVersion); + } JsonNode rootNode = om.readTree(f); - List lModels = loadModels(rootNode.get("models"), f, apiVersion ); - Apis api1 = loadApis( rootNode.get("apis"), f, apiVersion ); + List lModels = loadModels(rootNode.get("models"), f, apiVersion); + Apis api1 = loadApis(rootNode.get("apis"), f, apiVersion); mymodels.addAll(lModels); myAPIs.add(api1); - if ( modelHasEvents ) { - + if (modelHasEvents) { + Model typeMessage = null; List otherModels = new ArrayList(); - for ( Model m: lModels ) { - if ( m.className.equalsIgnoreCase("Message") ) { + for (Model m : lModels) { + if (m.className.equalsIgnoreCase("Message")) { typeMessage = m; } else { otherModels.add(m); @@ -82,32 +82,32 @@ public void parseJsonDefinition( File f, String apiVersion, boolean modelHasEven } String defs = ""; - for ( Model m: otherModels ) { - if ( defs.length() > 0 ) { + for (Model m : otherModels) { + if (defs.length() > 0) { defs += ", "; } defs += "@Type(value = " + m.getImplName() + ".class, name = \"" + m.getInterfaceName() + "\")\n"; } typeMessage.additionalPreambleText = "" - + " @JsonTypeInfo( " - + " use = JsonTypeInfo.Id.NAME, " - + " include = JsonTypeInfo.As.PROPERTY, " - + " property = \"type\") \n " - + " @JsonSubTypes({ " - + defs - + " }) \n\n"; + + " @JsonTypeInfo( " + + " use = JsonTypeInfo.Id.NAME, " + + " include = JsonTypeInfo.As.PROPERTY, " + + " property = \"type\") \n " + + " @JsonSubTypes({ " + + defs + + " }) \n\n"; typeMessage.imports.add("com.fasterxml.jackson.annotation.JsonSubTypes"); typeMessage.imports.add("com.fasterxml.jackson.annotation.JsonSubTypes.Type"); typeMessage.imports.add("com.fasterxml.jackson.annotation.JsonTypeInfo"); - } + } // Now generate the interface - for ( Model m: mymodels ) { + for (Model m : mymodels) { JavaInterface j = interfaces.get(m.getInterfaceName()); - if ( j == null ) { + if (j == null) { j = new JavaInterface(); j.pkgName = "ch.loway.oss.ari4java.generated"; j.className = m.getInterfaceName(); @@ -118,68 +118,55 @@ public void parseJsonDefinition( File f, String apiVersion, boolean modelHasEven m.registerInterfaces(j, apiVersion); } - //for ( Apis api: myAPIs ) { - JavaInterface j = interfaces.get(api1.getInterfaceName()); - if ( j == null ) { - j = new JavaInterface(); - j.pkgName = "ch.loway.oss.ari4java.generated"; - j.className = api1.getInterfaceName(); - interfaces.put(api1.getInterfaceName(), j); - } - - api1.registerInterfaces(j, apiVersion); - //} - -// // -// for ( String ifName: interfaces.keySet() ) { -// JavaInterface ji = interfaces.get(ifName); -//// saveToDisk(ji); -// } + JavaInterface j = interfaces.get(api1.getInterfaceName()); + if (j == null) { + j = new JavaInterface(); + j.pkgName = "ch.loway.oss.ari4java.generated"; + j.className = api1.getInterfaceName(); + interfaces.put(api1.getInterfaceName(), j); + } + api1.registerInterfaces(j, apiVersion); } /** * Generate all files. * - * * @throws IOException */ - public void generateAllClasses() throws IOException { AriBuilderInterface abi = generateInterfaces(); generateModels(); generateApis(); - generateProperties( abi ); - generateImplementationClasses( abi ); + generateProperties(abi); + generateImplementationClasses(abi); } /** * Generate all interfaces. - * + * * @throws IOException */ - public AriBuilderInterface generateInterfaces() throws IOException { // AriBuilderInterface abi = new AriBuilderInterface(); - for ( String ifName: interfaces.keySet() ) { + for (String ifName : interfaces.keySet()) { JavaInterface ji = interfaces.get(ifName); abi.knownInterfaces.add(ifName); saveToDisk(ji); } // generate the AriBuilder class - saveToDisk( "classes/", "ch.loway.oss.ari4java.generated", "AriBuilder", abi.toString() ); + saveToDisk("ch.loway.oss.ari4java.generated", "AriBuilder", abi.toString()); return abi; } /** * Generates a model. * For each model. let's find out the minimal interface it should implement. - * + * * @throws IOException */ - public void generateModels() throws IOException { for (Model m : mymodels) { String minIf = m.getInterfaceName(); @@ -192,16 +179,15 @@ public void generateModels() throws IOException { /** * Save APIs to disk. - * + * * @throws IOException */ - public void generateApis() throws IOException { - for ( Apis api: myAPIs ) { + for (Apis api : myAPIs) { String minIf = api.getInterfaceName(); JavaInterface ji = interfaces.get(minIf); - api.setMinimalInterface(ji); + api.setMinimalInterface(ji); saveToDisk(api); } } @@ -211,86 +197,130 @@ public void generateApis() throws IOException { * * @throws IOException */ + public void generateProperties(AriBuilderInterface abi) throws IOException { - public void generateProperties( AriBuilderInterface abi ) throws IOException { + Map> mM = new HashMap>(); + Map> mA = new HashMap>(); - Map> mM = new HashMap>(); - Map> mA = new HashMap>(); - - for ( Apis api: myAPIs ) { + for (Apis api : myAPIs) { String ver = api.apiVersion; - if ( !mA.containsKey(ver) ) { - mA.put( ver, new HashSet() ); + if (!mA.containsKey(ver)) { + mA.put(ver, new HashSet()); } mA.get(ver).add(api); } - for ( Model mod: mymodels ) { + for (Model mod : mymodels) { String ver = mod.apiVersion; - if ( !mM.containsKey(ver) ) { - mM.put( ver, new HashSet() ); + if (!mM.containsKey(ver)) { + mM.put(ver, new HashSet()); } mM.get(ver).add(mod); } - for ( String ver: mM.keySet() ) { - //writeProperties(ver, mA.get(ver), mM.get(ver)); + StringBuilder sbVerEnums = new StringBuilder(); + StringBuilder sbVerEnum = new StringBuilder(); + JavaGen.addPackage(sbVerEnum, "ch.loway.oss.ari4java"); + sbVerEnum.append("import ch.loway.oss.ari4java.tools.ARIException;\n"); + sbVerEnum.append("import ch.loway.oss.ari4java.generated.AriBuilder;\n"); + + for (String ver : vers) { writeAriBuilder(ver, abi, mA.get(ver), mM.get(ver)); + builderEnum(sbVerEnums, ver); + sbVerEnum.append("import ch.loway.oss.ari4java.generated.").append(ver) + .append(".AriBuilder_impl_").append(ver).append(";\n"); } + sbVerEnums.append(" IM_FEELING_LUCKY(null, null);"); + sbVerEnum.append("\npublic enum AriVersion {\n\n"); + sbVerEnum.append(sbVerEnums); + sbVerEnum.append("\n\n"); + sbVerEnum.append(" final String versionString;\n"); + sbVerEnum.append(" final AriBuilder builder;\n"); + sbVerEnum.append("\n"); + sbVerEnum.append(" AriVersion(String versionString, AriBuilder builder) {\n"); + sbVerEnum.append(" this.versionString = versionString;\n"); + sbVerEnum.append(" this.builder = builder;\n"); + sbVerEnum.append(" }\n\n"); + sbVerEnum.append(" public AriBuilder builder() {\n"); + sbVerEnum.append(" if (builder == null) {\n"); + sbVerEnum.append(" throw new IllegalArgumentException(\"This version has no builder. Library error for \" + this.name());\n"); + sbVerEnum.append(" } else {\n"); + sbVerEnum.append(" return builder;\n"); + sbVerEnum.append(" }\n"); + sbVerEnum.append(" }\n\n"); + sbVerEnum.append(" public static AriVersion fromVersionString(String version) throws ARIException {\n"); + sbVerEnum.append(" for (AriVersion av: AriVersion.values()) {\n"); + sbVerEnum.append(" if (av.builder != null) {\n"); + sbVerEnum.append(" if (av.versionString.equalsIgnoreCase(version)) {\n"); + sbVerEnum.append(" return av;\n"); + sbVerEnum.append(" }\n"); + sbVerEnum.append(" }\n"); + sbVerEnum.append(" }\n"); + sbVerEnum.append(" throw new ARIException(\"Unknown ARI Version object for \" + version );\n"); + sbVerEnum.append(" }\n\n"); + sbVerEnum.append("}\n"); + saveToDisk("ch.loway.oss.ari4java", "AriVersion", sbVerEnum.toString()); + + } + + private void builderEnum(StringBuilder sbVerEnum, String ver) { + String verNum = ver.replace("ari_", "").replace("_", "."); + sbVerEnum.append(" ") + .append(ver.toUpperCase()) + .append("(") + .append("\"") + .append(verNum) + .append("\", new AriBuilder_impl_") + .append(ver) + .append("()),\n"); } /** * Generates the translators from the abstract class to the concrete one. - * + * * @param abi - * @throws IOException + * @throws IOException */ - - public void generateImplementationClasses( AriBuilderInterface abi ) throws IOException { + public void generateImplementationClasses(AriBuilderInterface abi) throws IOException { - Map mTranslators = new HashMap(); - - for ( Apis api: myAPIs ) { + Map mTranslators = new HashMap(); + + for (Apis api : myAPIs) { String ver = api.apiVersion; ClassTranslator ct = getClassTranslator(mTranslators, ver); - ct.setClass( api.className, api.className + "_impl_" + ver ); + ct.setClass(api.className, api.className + "_impl_" + ver); } - for ( Model mod: mymodels ) { + for (Model mod : mymodels) { String ver = mod.apiVersion; ClassTranslator ct = getClassTranslator(mTranslators, ver); - ct.setClass( mod.className, mod.className + "_impl_" + ver ); + ct.setClass(mod.className, mod.className + "_impl_" + ver); } - - for ( ClassTranslator ct: mTranslators.values() ) { - saveToDisk(ct); + + for (ClassTranslator ct : mTranslators.values()) { + saveToDisk(ct); } } - - - - private ClassTranslator getClassTranslator( Map mTranslators, String apiVer ) { - if ( !mTranslators.containsKey( apiVer ) ) { + + private ClassTranslator getClassTranslator(Map mTranslators, String apiVer) { + if (!mTranslators.containsKey(apiVer)) { ClassTranslator ct = new ClassTranslator(); ct.apiVersion = apiVer; - mTranslators.put( apiVer, ct ); + mTranslators.put(apiVer, ct); } - return mTranslators.get( apiVer); + return mTranslators.get(apiVer); } - /** - * * @param f * @return */ - private String genActionClassName(File f) { String fileName = f.getName().replace(".json", ""); - return JavaGen.addPrefixAndCapitalize( "Action", fileName ); + return JavaGen.addPrefixAndCapitalize("Action", fileName); } private List loadModels(JsonNode models, File f, String apiVersion) throws IOException { @@ -308,7 +338,6 @@ private List loadModels(JsonNode models, File f, String apiVersion) throw currentModel.comesFromFile = f.getName(); currentModel.extendsModel = extendsObject(modelName); currentModel.subTypes = subTypes(modelName); - knownModels.add(thisModel); JsonNode properties = modelName.get("properties"); Iterator propNames = properties.fieldNames(); @@ -329,7 +358,7 @@ private List loadModels(JsonNode models, File f, String apiVersion) throw } lModelsAdded.add(currentModel); - + } for (Model m : lModelsAdded) { if (m.subTypes != null) { @@ -344,12 +373,11 @@ private List loadModels(JsonNode models, File f, String apiVersion) throw return lModelsAdded; } - - private Apis loadApis(JsonNode apis, File f, String apiVersion ) throws IOException { + private Apis loadApis(JsonNode apis, File f, String apiVersion) throws IOException { Apis api = new Apis(); - api.setPackageInfo( genActionClassName(f), apiVersion); + api.setPackageInfo(genActionClassName(f), apiVersion); for (JsonNode apiEntry : apis) { @@ -364,12 +392,12 @@ private Apis loadApis(JsonNode apis, File f, String apiVersion ) throws IOExcept action.operations.add(op); op.method = txt(operation.get("httpMethod")); if ("websocket".equalsIgnoreCase(txt(operation.get("upgrade")))) { - op.wsUpgrade = true; + op.wsUpgrade = true; } - op.nickname = txt(operation.get("nickname")); + op.nickname = txt(operation.get("nickname")); op.responseInterface = remapAbstractType(txt(operation.get("responseClass"))); op.responseConcreteClass = remapConcreteType(txt(operation.get("responseClass")), apiVersion); - op.description = txt(operation.get("summary") ) + "\n" + txt(operation.get("notes") ); + op.description = txt(operation.get("summary")) + "\n" + txt(operation.get("notes")); JsonNode parameters = operation.get("parameters"); if (parameters != null) { @@ -378,7 +406,7 @@ private Apis loadApis(JsonNode apis, File f, String apiVersion ) throws IOExcept p.javaType = remapAbstractType(txt(parameter.get("dataType"))); p.name = txt(parameter.get("name")); p.required = txt(parameter.get("required")).equalsIgnoreCase("true"); - p.type = Operation.ParamType.build( txt(parameter.get("paramType"))); + p.type = Operation.ParamType.build(txt(parameter.get("paramType"))); op.parms.add(p); @@ -403,200 +431,158 @@ private Apis loadApis(JsonNode apis, File f, String apiVersion ) throws IOExcept } myAPIs.add(api); - + return api; } - public void saveToDisk( String baseJavaClasses, String pkgName, String className, String classText ) throws IOException { + public void saveToDisk(String pkgName, String className, String classText) throws IOException { - String fName = myAbsoluteProjectFolder + "/" - + baseJavaClasses - + pkgName.replace(".", "/" ) - + "/" - + className + ".java"; + String fName = outputFolder + + pkgName.replace(".", "/") + + "/" + + className + ".java"; - FileWriter outFile = new FileWriter( fName ); + FileWriter outFile = new FileWriter(fName); PrintWriter out = new PrintWriter(outFile); - out.println( classText ); + out.println(classText); out.close(); } - public void saveToDisk( Model model ) throws IOException { - saveToDisk( "classes/", model.getModelPackage(), model.getImplName(), model.toString() ); + public void saveToDisk(Model model) throws IOException { + saveToDisk(model.getModelPackage(), model.getImplName(), model.toString()); } - public void saveToDisk( Apis api ) throws IOException { - saveToDisk( "classes/", api.getActionsPackage(), api.getImplName(), api.toString() ); + public void saveToDisk(Apis api) throws IOException { + saveToDisk(api.getActionsPackage(), api.getImplName(), api.toString()); } - public void saveToDisk( JavaInterface ji ) throws IOException { - saveToDisk( "classes/", "ch.loway.oss.ari4java.generated", ji.className, ji.toString() ); + public void saveToDisk(JavaInterface ji) throws IOException { + saveToDisk("ch.loway.oss.ari4java.generated", ji.className, ji.toString()); } - public void saveToDisk( ClassTranslator ct ) throws IOException { - saveToDisk( "classes/", ct.getBaseApiPackage(), ct.getImplName(), ct.toString() ); + public void saveToDisk(ClassTranslator ct) throws IOException { + saveToDisk(ct.getBaseApiPackage(), ct.getImplName(), ct.toString()); } - public void clean(String apiVersion) throws IOException { - String base = "classes/ch/loway/oss/ari4java/generated"; - cleanPath(base+"/"+apiVersion+"/actions"); - cleanPath(base+"/"+apiVersion+"/models"); + String base = outputFolder + "ch/loway/oss/ari4java/generated"; + cleanPath(base + "/" + apiVersion + "/actions"); + cleanPath(base + "/" + apiVersion + "/models"); } - + private void cleanPath(String path) throws IOException { - System.out.println("clean: "+path); - File p = new File(path); - p.mkdirs(); - for (File f : p.listFiles()) { - if (f.isFile()) { - f.delete(); - } - } + System.out.println("clean: " + path); + File p = new File(path); + p.mkdirs(); + for (File f : p.listFiles()) { + if (f.isFile()) { + f.delete(); + } + } } - - private String txt( JsonNode n ) { - if ( n == null ) { + private String txt(JsonNode n) { + if (n == null) { return ""; } else { return n.asText(); } } - public String extendsObject( JsonNode model ) { - if ( model.get( "extends" ) != null ) { - return remapAbstractType( model.get("extends").asText() ); + public String extendsObject(JsonNode model) { + if (model.get("extends") != null) { + return remapAbstractType(model.get("extends").asText()); } return ""; } - - public Set subTypes( JsonNode model ) { - Set result = new HashSet(); - if (model.get("subTypes") != null) { - JsonNode st = model.get("subTypes"); - if (st instanceof ArrayNode) { - ArrayNode sta = (ArrayNode) st; - for (int i = 0; i < sta.size(); i++) { - result.add(sta.get(i).asText()); - } - } - } - return result; + + public Set subTypes(JsonNode model) { + Set result = new HashSet(); + if (model.get("subTypes") != null) { + JsonNode st = model.get("subTypes"); + if (st instanceof ArrayNode) { + ArrayNode sta = (ArrayNode) st; + for (int i = 0; i < sta.size(); i++) { + result.add(sta.get(i).asText()); + } + } + } + return result; } - public String remapAbstractType( String jsonType ) { + public String remapAbstractType(String jsonType) { return innerRemapType(jsonType, false, ""); } - public String remapConcreteType( String jsonType, String apiVersion ) { + public String remapConcreteType(String jsonType, String apiVersion) { return innerRemapType(jsonType, true, apiVersion); } - - public String innerRemapType( String jsonType, boolean concrete, String apiVersion ) { + public String innerRemapType(String jsonType, boolean concrete, String apiVersion) { String listAry = "List["; - if ( jsonType.startsWith( listAry ) ) { - return (concrete ? "List<" : "List<") + innerRemapType( jsonType.substring(listAry.length(), jsonType.length()-1 ), concrete, apiVersion ) + ">"; - } - else - if ( JavaPkgInfo.TypeMap.containsKey( jsonType.toLowerCase() ) ) { - return JavaPkgInfo.TypeMap.get( jsonType.toLowerCase() ); - } - else - { - return jsonType + ( concrete ? "_impl_" + apiVersion : "" ); + if (jsonType.startsWith(listAry)) { + return (concrete ? "List<" : "List<") + innerRemapType(jsonType.substring(listAry.length(), jsonType.length() - 1), concrete, apiVersion) + ">"; + } else if (JavaPkgInfo.TypeMap.containsKey(jsonType.toLowerCase())) { + return JavaPkgInfo.TypeMap.get(jsonType.toLowerCase()); + } else { + return jsonType + (concrete ? "_impl_" + apiVersion : ""); } } -// /** -// * Writes implemenattion mappings. -// * -// * -// * @param apiVersion -// * @throws IOException -// */ -// -// private void writeProperties( String apiVersion, Collection apis, Collection models ) throws IOException { -// String base = myAbsoluteProjectFolder -// + "/classes" -// + "/ch/loway/oss/ari4java/generated"; -// String fName = base + "/" + apiVersion + ".properties"; -// FileWriter outFile = new FileWriter(fName); -// PrintWriter out = new PrintWriter(outFile); -// out.println("# Implementation mapping for "+apiVersion); -// for (Apis api : apis) { -// String prop = "ch.loway.oss.ari4java.generated." -// + api.getInterfaceName() -// + " = " + api.getActionsPackage()+"."+api.getImplName(); -// out.println(prop); -// } -// for (Model m : models) { -// String prop = "ch.loway.oss.ari4java.generated." -// + m.getInterfaceName() -// + " = " + m.getModelPackage()+"."+m.getImplName(); -// out.println(prop); -// } -// out.close(); -// } - - - private void writeAriBuilder( String apiVersion, AriBuilderInterface abi, Collection apis, Collection models ) throws IOException { + private void writeAriBuilder(String apiVersion, AriBuilderInterface abi, Collection apis, Collection models) throws IOException { String thisClass = "AriBuilder_impl_" + apiVersion; - List ifToImplement = new ArrayList( abi.knownInterfaces ); + List ifToImplement = new ArrayList(abi.knownInterfaces); StringBuilder sb = new StringBuilder(); JavaGen.importClasses(sb, "ch.loway.oss.ari4java.generated." + apiVersion, - Arrays.asList( new String[] { - "ch.loway.oss.ari4java.generated." + apiVersion + ".models.*" , - "ch.loway.oss.ari4java.generated." + apiVersion + ".actions.*", - "ch.loway.oss.ari4java.generated.Module", - "ch.loway.oss.ari4java.generated.*", - "ch.loway.oss.ari4java.ARI" - })); + Arrays.asList(new String[]{ + "ch.loway.oss.ari4java.generated." + apiVersion + ".models.*", + "ch.loway.oss.ari4java.generated." + apiVersion + ".actions.*", + "ch.loway.oss.ari4java.generated.Module", + "ch.loway.oss.ari4java.generated.*", + "ch.loway.oss.ari4java.ARI" + })); - sb.append("public class ").append( thisClass ).append( " implements AriBuilder {\n\n"); + sb.append("public class ").append(thisClass).append(" implements AriBuilder {\n\n"); for (Apis api : apis) { String ifc = api.getInterfaceName(); ifToImplement.remove(ifc); - sb.append( AriBuilderInterface.getMethod( ifc, apiVersion) ); + sb.append(AriBuilderInterface.getMethod(ifc, apiVersion)); } for (Model m : models) { String ifc = m.getInterfaceName(); ifToImplement.remove(ifc); - sb.append( AriBuilderInterface.getMethod( ifc, apiVersion) ); + sb.append(AriBuilderInterface.getMethod(ifc, apiVersion)); } // do we have any unimplemented interface? - for ( String ifc: ifToImplement ) { - sb.append( AriBuilderInterface.getUnimplemented(ifc) ); + for (String ifc : ifToImplement) { + sb.append(AriBuilderInterface.getUnimplemented(ifc)); } - sb.append( "public ARI.ClassFactory getClassFactory() {\n" - + " return new ClassTranslator_impl_" + apiVersion + "();\n" - + "};\n\n" + sb.append("public ARI.ClassFactory getClassFactory() {\n" + + " return new ClassTranslator_impl_" + apiVersion + "();\n" + + "};\n\n" ); - - sb.append( "};"); - saveToDisk( "classes/", "ch.loway.oss.ari4java.generated." + apiVersion, thisClass, sb.toString() ); + sb.append("};"); + + saveToDisk("ch.loway.oss.ari4java.generated." + apiVersion, thisClass, sb.toString()); } /** - * Where the ari4java project resides. - * - * @param baseProjectFolder + * @param outputFolder */ - void setProjectFolder(String baseProjectFolder) { - myAbsoluteProjectFolder =baseProjectFolder; + void setOutputFolder(String outputFolder) { + this.outputFolder = outputFolder; } } diff --git a/codegen/ch/loway/oss/ari4java/codegen/VERSION.java b/codegen/src/main/java/ch/loway/oss/ari4java/codegen/VERSION.java similarity index 66% rename from codegen/ch/loway/oss/ari4java/codegen/VERSION.java rename to codegen/src/main/java/ch/loway/oss/ari4java/codegen/VERSION.java index 372f6dc1..c37d0d7d 100644 --- a/codegen/ch/loway/oss/ari4java/codegen/VERSION.java +++ b/codegen/src/main/java/ch/loway/oss/ari4java/codegen/VERSION.java @@ -2,11 +2,10 @@ package ch.loway.oss.ari4java.codegen; /** - * * * @author lenz */ public class VERSION { - public static final String VER = "0.2"; + public static final String VER = "0.3"; } diff --git a/codegen/src/main/java/ch/loway/oss/ari4java/codegen/genJava/JavaGen.java b/codegen/src/main/java/ch/loway/oss/ari4java/codegen/genJava/JavaGen.java new file mode 100644 index 00000000..2c9d3153 --- /dev/null +++ b/codegen/src/main/java/ch/loway/oss/ari4java/codegen/genJava/JavaGen.java @@ -0,0 +1,80 @@ + +package ch.loway.oss.ari4java.codegen.genJava; + +import java.util.Date; +import java.util.List; + +/** + * A set of static methods to generate Java sources. + * + * @author lenz + */ +public class JavaGen { + + public static void addPackage(StringBuilder sb, String myPackage) { + sb.append("package ").append(myPackage).append(";\n\n"); + + sb.append("// ----------------------------------------------------\n") + .append("// THIS CLASS WAS GENERATED AUTOMATICALLY \n") + .append("// PLEASE DO NOT EDIT \n") + .append("// Generated on: ").append((new Date()).toString()).append("\n") + .append("// ----------------------------------------------------\n\n"); + + } + + public static void importClasses(StringBuilder sb, String myPackage, List imports) { + + addPackage(sb, myPackage); + + for (String pkg : imports) { + sb.append("import ").append(pkg).append(";\n"); + } + sb.append("\n"); + + } + + public static void addBanner(StringBuilder sb, String multiLineBanner) { + + String[] rows = multiLineBanner.split("\n"); + + sb.append("/**********************************************************\n"); + + for (String row : rows) { + sb.append(" * ").append(row).append("\n"); + } + sb.append(" *********************************************************/\n"); + + } + + public static void addBanner(StringBuilder sb, String multilineBanner, String sinceVersion) { + multilineBanner += "\n\n@since " + sinceVersion; + addBanner(sb, multilineBanner); + } + + + public static String addPrefixAndCapitalize(String prefix, String field) { + + return prefix + field.substring(0, 1).toUpperCase() + field.substring(1); + + + } + + public static String addAsyncCallback(String response) { + return "AriCallback<" + response.replaceAll("^void$", "Void") + "> callback"; + } + + public static void emptyLines(StringBuilder sb, int nLines) { + for (int i = 0; i < nLines; i++) { + sb.append("\n"); + } + } + + public static void emptyLine(StringBuilder sb) { + emptyLines(sb, 1); + } + + +} + +// $Log$ +// diff --git a/codegen/ch/loway/oss/ari4java/codegen/genJava/JavaInterface.java b/codegen/src/main/java/ch/loway/oss/ari4java/codegen/genJava/JavaInterface.java similarity index 100% rename from codegen/ch/loway/oss/ari4java/codegen/genJava/JavaInterface.java rename to codegen/src/main/java/ch/loway/oss/ari4java/codegen/genJava/JavaInterface.java diff --git a/codegen/ch/loway/oss/ari4java/codegen/genJava/JavaPkgInfo.java b/codegen/src/main/java/ch/loway/oss/ari4java/codegen/genJava/JavaPkgInfo.java similarity index 100% rename from codegen/ch/loway/oss/ari4java/codegen/genJava/JavaPkgInfo.java rename to codegen/src/main/java/ch/loway/oss/ari4java/codegen/genJava/JavaPkgInfo.java diff --git a/codegen/ch/loway/oss/ari4java/codegen/models/Action.java b/codegen/src/main/java/ch/loway/oss/ari4java/codegen/models/Action.java similarity index 100% rename from codegen/ch/loway/oss/ari4java/codegen/models/Action.java rename to codegen/src/main/java/ch/loway/oss/ari4java/codegen/models/Action.java diff --git a/codegen/ch/loway/oss/ari4java/codegen/models/Apis.java b/codegen/src/main/java/ch/loway/oss/ari4java/codegen/models/Apis.java similarity index 100% rename from codegen/ch/loway/oss/ari4java/codegen/models/Apis.java rename to codegen/src/main/java/ch/loway/oss/ari4java/codegen/models/Apis.java diff --git a/codegen/ch/loway/oss/ari4java/codegen/models/AriBuilderInterface.java b/codegen/src/main/java/ch/loway/oss/ari4java/codegen/models/AriBuilderInterface.java similarity index 100% rename from codegen/ch/loway/oss/ari4java/codegen/models/AriBuilderInterface.java rename to codegen/src/main/java/ch/loway/oss/ari4java/codegen/models/AriBuilderInterface.java diff --git a/codegen/ch/loway/oss/ari4java/codegen/models/ClassTranslator.java b/codegen/src/main/java/ch/loway/oss/ari4java/codegen/models/ClassTranslator.java similarity index 100% rename from codegen/ch/loway/oss/ari4java/codegen/models/ClassTranslator.java rename to codegen/src/main/java/ch/loway/oss/ari4java/codegen/models/ClassTranslator.java diff --git a/codegen/ch/loway/oss/ari4java/codegen/models/Model.java b/codegen/src/main/java/ch/loway/oss/ari4java/codegen/models/Model.java similarity index 100% rename from codegen/ch/loway/oss/ari4java/codegen/models/Model.java rename to codegen/src/main/java/ch/loway/oss/ari4java/codegen/models/Model.java diff --git a/codegen/ch/loway/oss/ari4java/codegen/models/ModelField.java b/codegen/src/main/java/ch/loway/oss/ari4java/codegen/models/ModelField.java similarity index 100% rename from codegen/ch/loway/oss/ari4java/codegen/models/ModelField.java rename to codegen/src/main/java/ch/loway/oss/ari4java/codegen/models/ModelField.java diff --git a/codegen/ch/loway/oss/ari4java/codegen/models/Operation.java b/codegen/src/main/java/ch/loway/oss/ari4java/codegen/models/Operation.java similarity index 100% rename from codegen/ch/loway/oss/ari4java/codegen/models/Operation.java rename to codegen/src/main/java/ch/loway/oss/ari4java/codegen/models/Operation.java diff --git a/codegen/src/main/java/ch/loway/oss/ari4java/codegen/run.java b/codegen/src/main/java/ch/loway/oss/ari4java/codegen/run.java new file mode 100644 index 00000000..09e6e609 --- /dev/null +++ b/codegen/src/main/java/ch/loway/oss/ari4java/codegen/run.java @@ -0,0 +1,51 @@ + +package ch.loway.oss.ari4java.codegen; + +import java.io.File; +import java.io.IOException; +import java.nio.file.Files; +import java.nio.file.Paths; + +/** + * $Id$ + * + * @author lenz + */ +public class run { + + private static String SOURCES = "./src/main/resources/codegen-data/"; + private static String OUTPUT = "../src/main/generated/"; + + public static void main(String[] argv) throws IOException { + System.out.println("This is ARI4JAVA Code Generator version " + VERSION.VER); + + DefMapper dm = new DefMapper(); + dm.setOutputFolder(OUTPUT); + + Files.list(Paths.get(SOURCES)) + .filter(p -> p.toFile().isDirectory()) + .sorted() + .forEach(p -> loadAsteriskDefs(dm, p.toFile())); + + dm.generateAllClasses(); + + } + + private static void loadAsteriskDefs(DefMapper dm, File folder) { + try { + String srcVer = folder.getName(); + dm.clean(srcVer); + for (File definition : folder.listFiles()) { + if (definition.getName().endsWith(".json")) { + dm.parseJsonDefinition(definition, srcVer, "events.json".equals(definition.getName())); + } + } + } catch (Exception e) { + throw new RuntimeException(e.toString(), e); + } + } + +} + +// $Log$ +// diff --git a/codegen-data/COPYING.asterisk b/codegen/src/main/resources/codegen-data/COPYING.asterisk similarity index 100% rename from codegen-data/COPYING.asterisk rename to codegen/src/main/resources/codegen-data/COPYING.asterisk diff --git a/codegen-data/LICENSE.asterisk b/codegen/src/main/resources/codegen-data/LICENSE.asterisk similarity index 100% rename from codegen-data/LICENSE.asterisk rename to codegen/src/main/resources/codegen-data/LICENSE.asterisk diff --git a/codegen-data/ari_0_0_1/README.md b/codegen/src/main/resources/codegen-data/ari_0_0_1/README.md similarity index 100% rename from codegen-data/ari_0_0_1/README.md rename to codegen/src/main/resources/codegen-data/ari_0_0_1/README.md diff --git a/codegen-data/ari_0_0_1/applications.json b/codegen/src/main/resources/codegen-data/ari_0_0_1/applications.json similarity index 100% rename from codegen-data/ari_0_0_1/applications.json rename to codegen/src/main/resources/codegen-data/ari_0_0_1/applications.json diff --git a/codegen-data/ari_0_0_1/asterisk.json b/codegen/src/main/resources/codegen-data/ari_0_0_1/asterisk.json similarity index 100% rename from codegen-data/ari_0_0_1/asterisk.json rename to codegen/src/main/resources/codegen-data/ari_0_0_1/asterisk.json diff --git a/codegen-data/ari_0_0_1/bridges.json b/codegen/src/main/resources/codegen-data/ari_0_0_1/bridges.json similarity index 100% rename from codegen-data/ari_0_0_1/bridges.json rename to codegen/src/main/resources/codegen-data/ari_0_0_1/bridges.json diff --git a/codegen-data/ari_0_0_1/channels.json b/codegen/src/main/resources/codegen-data/ari_0_0_1/channels.json similarity index 100% rename from codegen-data/ari_0_0_1/channels.json rename to codegen/src/main/resources/codegen-data/ari_0_0_1/channels.json diff --git a/codegen-data/ari_0_0_1/deviceStates.json b/codegen/src/main/resources/codegen-data/ari_0_0_1/deviceStates.json similarity index 100% rename from codegen-data/ari_0_0_1/deviceStates.json rename to codegen/src/main/resources/codegen-data/ari_0_0_1/deviceStates.json diff --git a/codegen-data/ari_0_0_1/endpoints.json b/codegen/src/main/resources/codegen-data/ari_0_0_1/endpoints.json similarity index 100% rename from codegen-data/ari_0_0_1/endpoints.json rename to codegen/src/main/resources/codegen-data/ari_0_0_1/endpoints.json diff --git a/codegen-data/ari_0_0_1/events.json b/codegen/src/main/resources/codegen-data/ari_0_0_1/events.json similarity index 100% rename from codegen-data/ari_0_0_1/events.json rename to codegen/src/main/resources/codegen-data/ari_0_0_1/events.json diff --git a/codegen-data/ari_0_0_1/playbacks.json b/codegen/src/main/resources/codegen-data/ari_0_0_1/playbacks.json similarity index 100% rename from codegen-data/ari_0_0_1/playbacks.json rename to codegen/src/main/resources/codegen-data/ari_0_0_1/playbacks.json diff --git a/codegen-data/ari_0_0_1/recordings.json b/codegen/src/main/resources/codegen-data/ari_0_0_1/recordings.json similarity index 100% rename from codegen-data/ari_0_0_1/recordings.json rename to codegen/src/main/resources/codegen-data/ari_0_0_1/recordings.json diff --git a/codegen-data/ari_0_0_1/sounds.json b/codegen/src/main/resources/codegen-data/ari_0_0_1/sounds.json similarity index 100% rename from codegen-data/ari_0_0_1/sounds.json rename to codegen/src/main/resources/codegen-data/ari_0_0_1/sounds.json diff --git a/codegen-data/ari_1_0_0/applications.json b/codegen/src/main/resources/codegen-data/ari_1_0_0/applications.json similarity index 100% rename from codegen-data/ari_1_0_0/applications.json rename to codegen/src/main/resources/codegen-data/ari_1_0_0/applications.json diff --git a/codegen-data/ari_1_0_0/asterisk.json b/codegen/src/main/resources/codegen-data/ari_1_0_0/asterisk.json similarity index 100% rename from codegen-data/ari_1_0_0/asterisk.json rename to codegen/src/main/resources/codegen-data/ari_1_0_0/asterisk.json diff --git a/codegen-data/ari_1_0_0/bridges.json b/codegen/src/main/resources/codegen-data/ari_1_0_0/bridges.json similarity index 100% rename from codegen-data/ari_1_0_0/bridges.json rename to codegen/src/main/resources/codegen-data/ari_1_0_0/bridges.json diff --git a/codegen-data/ari_1_0_0/channels.json b/codegen/src/main/resources/codegen-data/ari_1_0_0/channels.json similarity index 100% rename from codegen-data/ari_1_0_0/channels.json rename to codegen/src/main/resources/codegen-data/ari_1_0_0/channels.json diff --git a/codegen-data/ari_1_0_0/deviceStates.json b/codegen/src/main/resources/codegen-data/ari_1_0_0/deviceStates.json similarity index 100% rename from codegen-data/ari_1_0_0/deviceStates.json rename to codegen/src/main/resources/codegen-data/ari_1_0_0/deviceStates.json diff --git a/codegen-data/ari_1_0_0/endpoints.json b/codegen/src/main/resources/codegen-data/ari_1_0_0/endpoints.json similarity index 100% rename from codegen-data/ari_1_0_0/endpoints.json rename to codegen/src/main/resources/codegen-data/ari_1_0_0/endpoints.json diff --git a/codegen-data/ari_1_0_0/events.json b/codegen/src/main/resources/codegen-data/ari_1_0_0/events.json similarity index 100% rename from codegen-data/ari_1_0_0/events.json rename to codegen/src/main/resources/codegen-data/ari_1_0_0/events.json diff --git a/codegen-data/ari_1_0_0/playbacks.json b/codegen/src/main/resources/codegen-data/ari_1_0_0/playbacks.json similarity index 100% rename from codegen-data/ari_1_0_0/playbacks.json rename to codegen/src/main/resources/codegen-data/ari_1_0_0/playbacks.json diff --git a/codegen-data/ari_1_0_0/recordings.json b/codegen/src/main/resources/codegen-data/ari_1_0_0/recordings.json similarity index 100% rename from codegen-data/ari_1_0_0/recordings.json rename to codegen/src/main/resources/codegen-data/ari_1_0_0/recordings.json diff --git a/codegen-data/ari_1_0_0/sounds.json b/codegen/src/main/resources/codegen-data/ari_1_0_0/sounds.json similarity index 100% rename from codegen-data/ari_1_0_0/sounds.json rename to codegen/src/main/resources/codegen-data/ari_1_0_0/sounds.json diff --git a/codegen-data/ari_1_10_0/applications.json b/codegen/src/main/resources/codegen-data/ari_1_10_0/applications.json similarity index 100% rename from codegen-data/ari_1_10_0/applications.json rename to codegen/src/main/resources/codegen-data/ari_1_10_0/applications.json diff --git a/codegen-data/ari_1_10_0/asterisk.json b/codegen/src/main/resources/codegen-data/ari_1_10_0/asterisk.json similarity index 100% rename from codegen-data/ari_1_10_0/asterisk.json rename to codegen/src/main/resources/codegen-data/ari_1_10_0/asterisk.json diff --git a/codegen-data/ari_1_10_0/bridges.json b/codegen/src/main/resources/codegen-data/ari_1_10_0/bridges.json similarity index 100% rename from codegen-data/ari_1_10_0/bridges.json rename to codegen/src/main/resources/codegen-data/ari_1_10_0/bridges.json diff --git a/codegen-data/ari_1_10_0/channels.json b/codegen/src/main/resources/codegen-data/ari_1_10_0/channels.json similarity index 100% rename from codegen-data/ari_1_10_0/channels.json rename to codegen/src/main/resources/codegen-data/ari_1_10_0/channels.json diff --git a/codegen-data/ari_1_10_0/deviceStates.json b/codegen/src/main/resources/codegen-data/ari_1_10_0/deviceStates.json similarity index 100% rename from codegen-data/ari_1_10_0/deviceStates.json rename to codegen/src/main/resources/codegen-data/ari_1_10_0/deviceStates.json diff --git a/codegen-data/ari_1_10_0/endpoints.json b/codegen/src/main/resources/codegen-data/ari_1_10_0/endpoints.json similarity index 100% rename from codegen-data/ari_1_10_0/endpoints.json rename to codegen/src/main/resources/codegen-data/ari_1_10_0/endpoints.json diff --git a/codegen-data/ari_1_10_0/events.json b/codegen/src/main/resources/codegen-data/ari_1_10_0/events.json similarity index 100% rename from codegen-data/ari_1_10_0/events.json rename to codegen/src/main/resources/codegen-data/ari_1_10_0/events.json diff --git a/codegen-data/ari_1_10_0/mailboxes.json b/codegen/src/main/resources/codegen-data/ari_1_10_0/mailboxes.json similarity index 100% rename from codegen-data/ari_1_10_0/mailboxes.json rename to codegen/src/main/resources/codegen-data/ari_1_10_0/mailboxes.json diff --git a/codegen-data/ari_1_10_0/playbacks.json b/codegen/src/main/resources/codegen-data/ari_1_10_0/playbacks.json similarity index 100% rename from codegen-data/ari_1_10_0/playbacks.json rename to codegen/src/main/resources/codegen-data/ari_1_10_0/playbacks.json diff --git a/codegen-data/ari_1_10_0/recordings.json b/codegen/src/main/resources/codegen-data/ari_1_10_0/recordings.json similarity index 100% rename from codegen-data/ari_1_10_0/recordings.json rename to codegen/src/main/resources/codegen-data/ari_1_10_0/recordings.json diff --git a/codegen-data/ari_1_10_0/sounds.json b/codegen/src/main/resources/codegen-data/ari_1_10_0/sounds.json similarity index 100% rename from codegen-data/ari_1_10_0/sounds.json rename to codegen/src/main/resources/codegen-data/ari_1_10_0/sounds.json diff --git a/codegen-data/ari_1_5_0/applications.json b/codegen/src/main/resources/codegen-data/ari_1_5_0/applications.json similarity index 100% rename from codegen-data/ari_1_5_0/applications.json rename to codegen/src/main/resources/codegen-data/ari_1_5_0/applications.json diff --git a/codegen-data/ari_1_5_0/asterisk.json b/codegen/src/main/resources/codegen-data/ari_1_5_0/asterisk.json similarity index 100% rename from codegen-data/ari_1_5_0/asterisk.json rename to codegen/src/main/resources/codegen-data/ari_1_5_0/asterisk.json diff --git a/codegen-data/ari_1_5_0/bridges.json b/codegen/src/main/resources/codegen-data/ari_1_5_0/bridges.json similarity index 100% rename from codegen-data/ari_1_5_0/bridges.json rename to codegen/src/main/resources/codegen-data/ari_1_5_0/bridges.json diff --git a/codegen-data/ari_1_5_0/channels.json b/codegen/src/main/resources/codegen-data/ari_1_5_0/channels.json similarity index 100% rename from codegen-data/ari_1_5_0/channels.json rename to codegen/src/main/resources/codegen-data/ari_1_5_0/channels.json diff --git a/codegen-data/ari_1_5_0/deviceStates.json b/codegen/src/main/resources/codegen-data/ari_1_5_0/deviceStates.json similarity index 100% rename from codegen-data/ari_1_5_0/deviceStates.json rename to codegen/src/main/resources/codegen-data/ari_1_5_0/deviceStates.json diff --git a/codegen-data/ari_1_5_0/endpoints.json b/codegen/src/main/resources/codegen-data/ari_1_5_0/endpoints.json similarity index 100% rename from codegen-data/ari_1_5_0/endpoints.json rename to codegen/src/main/resources/codegen-data/ari_1_5_0/endpoints.json diff --git a/codegen-data/ari_1_5_0/events.json b/codegen/src/main/resources/codegen-data/ari_1_5_0/events.json similarity index 100% rename from codegen-data/ari_1_5_0/events.json rename to codegen/src/main/resources/codegen-data/ari_1_5_0/events.json diff --git a/codegen-data/ari_1_5_0/mailboxes.json b/codegen/src/main/resources/codegen-data/ari_1_5_0/mailboxes.json similarity index 100% rename from codegen-data/ari_1_5_0/mailboxes.json rename to codegen/src/main/resources/codegen-data/ari_1_5_0/mailboxes.json diff --git a/codegen-data/ari_1_5_0/playbacks.json b/codegen/src/main/resources/codegen-data/ari_1_5_0/playbacks.json similarity index 100% rename from codegen-data/ari_1_5_0/playbacks.json rename to codegen/src/main/resources/codegen-data/ari_1_5_0/playbacks.json diff --git a/codegen-data/ari_1_5_0/recordings.json b/codegen/src/main/resources/codegen-data/ari_1_5_0/recordings.json similarity index 100% rename from codegen-data/ari_1_5_0/recordings.json rename to codegen/src/main/resources/codegen-data/ari_1_5_0/recordings.json diff --git a/codegen-data/ari_1_5_0/sounds.json b/codegen/src/main/resources/codegen-data/ari_1_5_0/sounds.json similarity index 100% rename from codegen-data/ari_1_5_0/sounds.json rename to codegen/src/main/resources/codegen-data/ari_1_5_0/sounds.json diff --git a/codegen-data/ari_1_6_0/applications.json b/codegen/src/main/resources/codegen-data/ari_1_6_0/applications.json similarity index 100% rename from codegen-data/ari_1_6_0/applications.json rename to codegen/src/main/resources/codegen-data/ari_1_6_0/applications.json diff --git a/codegen-data/ari_1_6_0/asterisk.json b/codegen/src/main/resources/codegen-data/ari_1_6_0/asterisk.json similarity index 100% rename from codegen-data/ari_1_6_0/asterisk.json rename to codegen/src/main/resources/codegen-data/ari_1_6_0/asterisk.json diff --git a/codegen-data/ari_1_6_0/bridges.json b/codegen/src/main/resources/codegen-data/ari_1_6_0/bridges.json similarity index 100% rename from codegen-data/ari_1_6_0/bridges.json rename to codegen/src/main/resources/codegen-data/ari_1_6_0/bridges.json diff --git a/codegen-data/ari_1_6_0/channels.json b/codegen/src/main/resources/codegen-data/ari_1_6_0/channels.json similarity index 100% rename from codegen-data/ari_1_6_0/channels.json rename to codegen/src/main/resources/codegen-data/ari_1_6_0/channels.json diff --git a/codegen-data/ari_1_6_0/deviceStates.json b/codegen/src/main/resources/codegen-data/ari_1_6_0/deviceStates.json similarity index 100% rename from codegen-data/ari_1_6_0/deviceStates.json rename to codegen/src/main/resources/codegen-data/ari_1_6_0/deviceStates.json diff --git a/codegen-data/ari_1_6_0/endpoints.json b/codegen/src/main/resources/codegen-data/ari_1_6_0/endpoints.json similarity index 100% rename from codegen-data/ari_1_6_0/endpoints.json rename to codegen/src/main/resources/codegen-data/ari_1_6_0/endpoints.json diff --git a/codegen-data/ari_1_6_0/events.json b/codegen/src/main/resources/codegen-data/ari_1_6_0/events.json similarity index 100% rename from codegen-data/ari_1_6_0/events.json rename to codegen/src/main/resources/codegen-data/ari_1_6_0/events.json diff --git a/codegen-data/ari_1_6_0/mailboxes.json b/codegen/src/main/resources/codegen-data/ari_1_6_0/mailboxes.json similarity index 100% rename from codegen-data/ari_1_6_0/mailboxes.json rename to codegen/src/main/resources/codegen-data/ari_1_6_0/mailboxes.json diff --git a/codegen-data/ari_1_6_0/playbacks.json b/codegen/src/main/resources/codegen-data/ari_1_6_0/playbacks.json similarity index 100% rename from codegen-data/ari_1_6_0/playbacks.json rename to codegen/src/main/resources/codegen-data/ari_1_6_0/playbacks.json diff --git a/codegen-data/ari_1_6_0/recordings.json b/codegen/src/main/resources/codegen-data/ari_1_6_0/recordings.json similarity index 100% rename from codegen-data/ari_1_6_0/recordings.json rename to codegen/src/main/resources/codegen-data/ari_1_6_0/recordings.json diff --git a/codegen-data/ari_1_6_0/sounds.json b/codegen/src/main/resources/codegen-data/ari_1_6_0/sounds.json similarity index 100% rename from codegen-data/ari_1_6_0/sounds.json rename to codegen/src/main/resources/codegen-data/ari_1_6_0/sounds.json diff --git a/codegen-data/ari_1_7_0/applications.json b/codegen/src/main/resources/codegen-data/ari_1_7_0/applications.json similarity index 100% rename from codegen-data/ari_1_7_0/applications.json rename to codegen/src/main/resources/codegen-data/ari_1_7_0/applications.json diff --git a/codegen-data/ari_1_7_0/asterisk.json b/codegen/src/main/resources/codegen-data/ari_1_7_0/asterisk.json similarity index 100% rename from codegen-data/ari_1_7_0/asterisk.json rename to codegen/src/main/resources/codegen-data/ari_1_7_0/asterisk.json diff --git a/codegen-data/ari_1_7_0/bridges.json b/codegen/src/main/resources/codegen-data/ari_1_7_0/bridges.json similarity index 100% rename from codegen-data/ari_1_7_0/bridges.json rename to codegen/src/main/resources/codegen-data/ari_1_7_0/bridges.json diff --git a/codegen-data/ari_1_7_0/channels.json b/codegen/src/main/resources/codegen-data/ari_1_7_0/channels.json similarity index 100% rename from codegen-data/ari_1_7_0/channels.json rename to codegen/src/main/resources/codegen-data/ari_1_7_0/channels.json diff --git a/codegen-data/ari_1_7_0/deviceStates.json b/codegen/src/main/resources/codegen-data/ari_1_7_0/deviceStates.json similarity index 100% rename from codegen-data/ari_1_7_0/deviceStates.json rename to codegen/src/main/resources/codegen-data/ari_1_7_0/deviceStates.json diff --git a/codegen-data/ari_1_7_0/endpoints.json b/codegen/src/main/resources/codegen-data/ari_1_7_0/endpoints.json similarity index 100% rename from codegen-data/ari_1_7_0/endpoints.json rename to codegen/src/main/resources/codegen-data/ari_1_7_0/endpoints.json diff --git a/codegen-data/ari_1_7_0/events.json b/codegen/src/main/resources/codegen-data/ari_1_7_0/events.json similarity index 100% rename from codegen-data/ari_1_7_0/events.json rename to codegen/src/main/resources/codegen-data/ari_1_7_0/events.json diff --git a/codegen-data/ari_1_7_0/mailboxes.json b/codegen/src/main/resources/codegen-data/ari_1_7_0/mailboxes.json similarity index 100% rename from codegen-data/ari_1_7_0/mailboxes.json rename to codegen/src/main/resources/codegen-data/ari_1_7_0/mailboxes.json diff --git a/codegen-data/ari_1_7_0/playbacks.json b/codegen/src/main/resources/codegen-data/ari_1_7_0/playbacks.json similarity index 100% rename from codegen-data/ari_1_7_0/playbacks.json rename to codegen/src/main/resources/codegen-data/ari_1_7_0/playbacks.json diff --git a/codegen-data/ari_1_7_0/recordings.json b/codegen/src/main/resources/codegen-data/ari_1_7_0/recordings.json similarity index 100% rename from codegen-data/ari_1_7_0/recordings.json rename to codegen/src/main/resources/codegen-data/ari_1_7_0/recordings.json diff --git a/codegen-data/ari_1_7_0/sounds.json b/codegen/src/main/resources/codegen-data/ari_1_7_0/sounds.json similarity index 100% rename from codegen-data/ari_1_7_0/sounds.json rename to codegen/src/main/resources/codegen-data/ari_1_7_0/sounds.json diff --git a/codegen-data/ari_1_8_0/applications.json b/codegen/src/main/resources/codegen-data/ari_1_8_0/applications.json similarity index 100% rename from codegen-data/ari_1_8_0/applications.json rename to codegen/src/main/resources/codegen-data/ari_1_8_0/applications.json diff --git a/codegen-data/ari_1_8_0/asterisk.json b/codegen/src/main/resources/codegen-data/ari_1_8_0/asterisk.json similarity index 100% rename from codegen-data/ari_1_8_0/asterisk.json rename to codegen/src/main/resources/codegen-data/ari_1_8_0/asterisk.json diff --git a/codegen-data/ari_1_8_0/bridges.json b/codegen/src/main/resources/codegen-data/ari_1_8_0/bridges.json similarity index 100% rename from codegen-data/ari_1_8_0/bridges.json rename to codegen/src/main/resources/codegen-data/ari_1_8_0/bridges.json diff --git a/codegen-data/ari_1_8_0/channels.json b/codegen/src/main/resources/codegen-data/ari_1_8_0/channels.json similarity index 100% rename from codegen-data/ari_1_8_0/channels.json rename to codegen/src/main/resources/codegen-data/ari_1_8_0/channels.json diff --git a/codegen-data/ari_1_8_0/deviceStates.json b/codegen/src/main/resources/codegen-data/ari_1_8_0/deviceStates.json similarity index 100% rename from codegen-data/ari_1_8_0/deviceStates.json rename to codegen/src/main/resources/codegen-data/ari_1_8_0/deviceStates.json diff --git a/codegen-data/ari_1_8_0/endpoints.json b/codegen/src/main/resources/codegen-data/ari_1_8_0/endpoints.json similarity index 100% rename from codegen-data/ari_1_8_0/endpoints.json rename to codegen/src/main/resources/codegen-data/ari_1_8_0/endpoints.json diff --git a/codegen-data/ari_1_8_0/events.json b/codegen/src/main/resources/codegen-data/ari_1_8_0/events.json similarity index 100% rename from codegen-data/ari_1_8_0/events.json rename to codegen/src/main/resources/codegen-data/ari_1_8_0/events.json diff --git a/codegen-data/ari_1_8_0/mailboxes.json b/codegen/src/main/resources/codegen-data/ari_1_8_0/mailboxes.json similarity index 100% rename from codegen-data/ari_1_8_0/mailboxes.json rename to codegen/src/main/resources/codegen-data/ari_1_8_0/mailboxes.json diff --git a/codegen-data/ari_1_8_0/playbacks.json b/codegen/src/main/resources/codegen-data/ari_1_8_0/playbacks.json similarity index 100% rename from codegen-data/ari_1_8_0/playbacks.json rename to codegen/src/main/resources/codegen-data/ari_1_8_0/playbacks.json diff --git a/codegen-data/ari_1_8_0/recordings.json b/codegen/src/main/resources/codegen-data/ari_1_8_0/recordings.json similarity index 100% rename from codegen-data/ari_1_8_0/recordings.json rename to codegen/src/main/resources/codegen-data/ari_1_8_0/recordings.json diff --git a/codegen-data/ari_1_8_0/sounds.json b/codegen/src/main/resources/codegen-data/ari_1_8_0/sounds.json similarity index 100% rename from codegen-data/ari_1_8_0/sounds.json rename to codegen/src/main/resources/codegen-data/ari_1_8_0/sounds.json diff --git a/codegen-data/ari_1_9_0/applications.json b/codegen/src/main/resources/codegen-data/ari_1_9_0/applications.json similarity index 100% rename from codegen-data/ari_1_9_0/applications.json rename to codegen/src/main/resources/codegen-data/ari_1_9_0/applications.json diff --git a/codegen-data/ari_1_9_0/asterisk.json b/codegen/src/main/resources/codegen-data/ari_1_9_0/asterisk.json similarity index 100% rename from codegen-data/ari_1_9_0/asterisk.json rename to codegen/src/main/resources/codegen-data/ari_1_9_0/asterisk.json diff --git a/codegen-data/ari_1_9_0/bridges.json b/codegen/src/main/resources/codegen-data/ari_1_9_0/bridges.json similarity index 100% rename from codegen-data/ari_1_9_0/bridges.json rename to codegen/src/main/resources/codegen-data/ari_1_9_0/bridges.json diff --git a/codegen-data/ari_1_9_0/channels.json b/codegen/src/main/resources/codegen-data/ari_1_9_0/channels.json similarity index 100% rename from codegen-data/ari_1_9_0/channels.json rename to codegen/src/main/resources/codegen-data/ari_1_9_0/channels.json diff --git a/codegen-data/ari_1_9_0/deviceStates.json b/codegen/src/main/resources/codegen-data/ari_1_9_0/deviceStates.json similarity index 100% rename from codegen-data/ari_1_9_0/deviceStates.json rename to codegen/src/main/resources/codegen-data/ari_1_9_0/deviceStates.json diff --git a/codegen-data/ari_1_9_0/endpoints.json b/codegen/src/main/resources/codegen-data/ari_1_9_0/endpoints.json similarity index 100% rename from codegen-data/ari_1_9_0/endpoints.json rename to codegen/src/main/resources/codegen-data/ari_1_9_0/endpoints.json diff --git a/codegen-data/ari_1_9_0/events.json b/codegen/src/main/resources/codegen-data/ari_1_9_0/events.json similarity index 100% rename from codegen-data/ari_1_9_0/events.json rename to codegen/src/main/resources/codegen-data/ari_1_9_0/events.json diff --git a/codegen-data/ari_1_9_0/mailboxes.json b/codegen/src/main/resources/codegen-data/ari_1_9_0/mailboxes.json similarity index 100% rename from codegen-data/ari_1_9_0/mailboxes.json rename to codegen/src/main/resources/codegen-data/ari_1_9_0/mailboxes.json diff --git a/codegen-data/ari_1_9_0/playbacks.json b/codegen/src/main/resources/codegen-data/ari_1_9_0/playbacks.json similarity index 100% rename from codegen-data/ari_1_9_0/playbacks.json rename to codegen/src/main/resources/codegen-data/ari_1_9_0/playbacks.json diff --git a/codegen-data/ari_1_9_0/recordings.json b/codegen/src/main/resources/codegen-data/ari_1_9_0/recordings.json similarity index 100% rename from codegen-data/ari_1_9_0/recordings.json rename to codegen/src/main/resources/codegen-data/ari_1_9_0/recordings.json diff --git a/codegen-data/ari_1_9_0/sounds.json b/codegen/src/main/resources/codegen-data/ari_1_9_0/sounds.json similarity index 100% rename from codegen-data/ari_1_9_0/sounds.json rename to codegen/src/main/resources/codegen-data/ari_1_9_0/sounds.json diff --git a/codegen-data/ari_2_0_0/README.md b/codegen/src/main/resources/codegen-data/ari_2_0_0/README.md similarity index 100% rename from codegen-data/ari_2_0_0/README.md rename to codegen/src/main/resources/codegen-data/ari_2_0_0/README.md diff --git a/codegen-data/ari_2_0_0/applications.json b/codegen/src/main/resources/codegen-data/ari_2_0_0/applications.json similarity index 100% rename from codegen-data/ari_2_0_0/applications.json rename to codegen/src/main/resources/codegen-data/ari_2_0_0/applications.json diff --git a/codegen-data/ari_2_0_0/asterisk.json b/codegen/src/main/resources/codegen-data/ari_2_0_0/asterisk.json similarity index 100% rename from codegen-data/ari_2_0_0/asterisk.json rename to codegen/src/main/resources/codegen-data/ari_2_0_0/asterisk.json diff --git a/codegen-data/ari_2_0_0/bridges.json b/codegen/src/main/resources/codegen-data/ari_2_0_0/bridges.json similarity index 100% rename from codegen-data/ari_2_0_0/bridges.json rename to codegen/src/main/resources/codegen-data/ari_2_0_0/bridges.json diff --git a/codegen-data/ari_2_0_0/channels.json b/codegen/src/main/resources/codegen-data/ari_2_0_0/channels.json similarity index 100% rename from codegen-data/ari_2_0_0/channels.json rename to codegen/src/main/resources/codegen-data/ari_2_0_0/channels.json diff --git a/codegen-data/ari_2_0_0/deviceStates.json b/codegen/src/main/resources/codegen-data/ari_2_0_0/deviceStates.json similarity index 100% rename from codegen-data/ari_2_0_0/deviceStates.json rename to codegen/src/main/resources/codegen-data/ari_2_0_0/deviceStates.json diff --git a/codegen-data/ari_2_0_0/endpoints.json b/codegen/src/main/resources/codegen-data/ari_2_0_0/endpoints.json similarity index 100% rename from codegen-data/ari_2_0_0/endpoints.json rename to codegen/src/main/resources/codegen-data/ari_2_0_0/endpoints.json diff --git a/codegen-data/ari_2_0_0/events.json b/codegen/src/main/resources/codegen-data/ari_2_0_0/events.json similarity index 100% rename from codegen-data/ari_2_0_0/events.json rename to codegen/src/main/resources/codegen-data/ari_2_0_0/events.json diff --git a/codegen-data/ari_2_0_0/mailboxes.json b/codegen/src/main/resources/codegen-data/ari_2_0_0/mailboxes.json similarity index 100% rename from codegen-data/ari_2_0_0/mailboxes.json rename to codegen/src/main/resources/codegen-data/ari_2_0_0/mailboxes.json diff --git a/codegen-data/ari_2_0_0/playbacks.json b/codegen/src/main/resources/codegen-data/ari_2_0_0/playbacks.json similarity index 100% rename from codegen-data/ari_2_0_0/playbacks.json rename to codegen/src/main/resources/codegen-data/ari_2_0_0/playbacks.json diff --git a/codegen-data/ari_2_0_0/recordings.json b/codegen/src/main/resources/codegen-data/ari_2_0_0/recordings.json similarity index 100% rename from codegen-data/ari_2_0_0/recordings.json rename to codegen/src/main/resources/codegen-data/ari_2_0_0/recordings.json diff --git a/codegen-data/ari_2_0_0/sounds.json b/codegen/src/main/resources/codegen-data/ari_2_0_0/sounds.json similarity index 100% rename from codegen-data/ari_2_0_0/sounds.json rename to codegen/src/main/resources/codegen-data/ari_2_0_0/sounds.json diff --git a/codegen-data/ari_3_0_0/applications.json b/codegen/src/main/resources/codegen-data/ari_3_0_0/applications.json similarity index 100% rename from codegen-data/ari_3_0_0/applications.json rename to codegen/src/main/resources/codegen-data/ari_3_0_0/applications.json diff --git a/codegen-data/ari_3_0_0/asterisk.json b/codegen/src/main/resources/codegen-data/ari_3_0_0/asterisk.json similarity index 100% rename from codegen-data/ari_3_0_0/asterisk.json rename to codegen/src/main/resources/codegen-data/ari_3_0_0/asterisk.json diff --git a/codegen-data/ari_3_0_0/bridges.json b/codegen/src/main/resources/codegen-data/ari_3_0_0/bridges.json similarity index 100% rename from codegen-data/ari_3_0_0/bridges.json rename to codegen/src/main/resources/codegen-data/ari_3_0_0/bridges.json diff --git a/codegen-data/ari_3_0_0/channels.json b/codegen/src/main/resources/codegen-data/ari_3_0_0/channels.json similarity index 100% rename from codegen-data/ari_3_0_0/channels.json rename to codegen/src/main/resources/codegen-data/ari_3_0_0/channels.json diff --git a/codegen-data/ari_3_0_0/deviceStates.json b/codegen/src/main/resources/codegen-data/ari_3_0_0/deviceStates.json similarity index 100% rename from codegen-data/ari_3_0_0/deviceStates.json rename to codegen/src/main/resources/codegen-data/ari_3_0_0/deviceStates.json diff --git a/codegen-data/ari_3_0_0/endpoints.json b/codegen/src/main/resources/codegen-data/ari_3_0_0/endpoints.json similarity index 100% rename from codegen-data/ari_3_0_0/endpoints.json rename to codegen/src/main/resources/codegen-data/ari_3_0_0/endpoints.json diff --git a/codegen-data/ari_3_0_0/events.json b/codegen/src/main/resources/codegen-data/ari_3_0_0/events.json similarity index 100% rename from codegen-data/ari_3_0_0/events.json rename to codegen/src/main/resources/codegen-data/ari_3_0_0/events.json diff --git a/codegen-data/ari_3_0_0/mailboxes.json b/codegen/src/main/resources/codegen-data/ari_3_0_0/mailboxes.json similarity index 100% rename from codegen-data/ari_3_0_0/mailboxes.json rename to codegen/src/main/resources/codegen-data/ari_3_0_0/mailboxes.json diff --git a/codegen-data/ari_3_0_0/playbacks.json b/codegen/src/main/resources/codegen-data/ari_3_0_0/playbacks.json similarity index 100% rename from codegen-data/ari_3_0_0/playbacks.json rename to codegen/src/main/resources/codegen-data/ari_3_0_0/playbacks.json diff --git a/codegen-data/ari_3_0_0/recordings.json b/codegen/src/main/resources/codegen-data/ari_3_0_0/recordings.json similarity index 100% rename from codegen-data/ari_3_0_0/recordings.json rename to codegen/src/main/resources/codegen-data/ari_3_0_0/recordings.json diff --git a/codegen-data/ari_3_0_0/sounds.json b/codegen/src/main/resources/codegen-data/ari_3_0_0/sounds.json similarity index 100% rename from codegen-data/ari_3_0_0/sounds.json rename to codegen/src/main/resources/codegen-data/ari_3_0_0/sounds.json diff --git a/codegen-data/ari_4_0_0/README.md b/codegen/src/main/resources/codegen-data/ari_4_0_0/README.md similarity index 100% rename from codegen-data/ari_4_0_0/README.md rename to codegen/src/main/resources/codegen-data/ari_4_0_0/README.md diff --git a/codegen-data/ari_4_0_0/applications.json b/codegen/src/main/resources/codegen-data/ari_4_0_0/applications.json similarity index 100% rename from codegen-data/ari_4_0_0/applications.json rename to codegen/src/main/resources/codegen-data/ari_4_0_0/applications.json diff --git a/codegen-data/ari_4_0_0/asterisk.json b/codegen/src/main/resources/codegen-data/ari_4_0_0/asterisk.json similarity index 100% rename from codegen-data/ari_4_0_0/asterisk.json rename to codegen/src/main/resources/codegen-data/ari_4_0_0/asterisk.json diff --git a/codegen-data/ari_4_0_0/bridges.json b/codegen/src/main/resources/codegen-data/ari_4_0_0/bridges.json similarity index 100% rename from codegen-data/ari_4_0_0/bridges.json rename to codegen/src/main/resources/codegen-data/ari_4_0_0/bridges.json diff --git a/codegen-data/ari_4_0_0/channels.json b/codegen/src/main/resources/codegen-data/ari_4_0_0/channels.json similarity index 100% rename from codegen-data/ari_4_0_0/channels.json rename to codegen/src/main/resources/codegen-data/ari_4_0_0/channels.json diff --git a/codegen-data/ari_4_0_0/deviceStates.json b/codegen/src/main/resources/codegen-data/ari_4_0_0/deviceStates.json similarity index 100% rename from codegen-data/ari_4_0_0/deviceStates.json rename to codegen/src/main/resources/codegen-data/ari_4_0_0/deviceStates.json diff --git a/codegen-data/ari_4_0_0/endpoints.json b/codegen/src/main/resources/codegen-data/ari_4_0_0/endpoints.json similarity index 100% rename from codegen-data/ari_4_0_0/endpoints.json rename to codegen/src/main/resources/codegen-data/ari_4_0_0/endpoints.json diff --git a/codegen-data/ari_4_0_0/events.json b/codegen/src/main/resources/codegen-data/ari_4_0_0/events.json similarity index 100% rename from codegen-data/ari_4_0_0/events.json rename to codegen/src/main/resources/codegen-data/ari_4_0_0/events.json diff --git a/codegen-data/ari_4_0_0/mailboxes.json b/codegen/src/main/resources/codegen-data/ari_4_0_0/mailboxes.json similarity index 100% rename from codegen-data/ari_4_0_0/mailboxes.json rename to codegen/src/main/resources/codegen-data/ari_4_0_0/mailboxes.json diff --git a/codegen-data/ari_4_0_0/playbacks.json b/codegen/src/main/resources/codegen-data/ari_4_0_0/playbacks.json similarity index 100% rename from codegen-data/ari_4_0_0/playbacks.json rename to codegen/src/main/resources/codegen-data/ari_4_0_0/playbacks.json diff --git a/codegen-data/ari_4_0_0/recordings.json b/codegen/src/main/resources/codegen-data/ari_4_0_0/recordings.json similarity index 100% rename from codegen-data/ari_4_0_0/recordings.json rename to codegen/src/main/resources/codegen-data/ari_4_0_0/recordings.json diff --git a/codegen-data/ari_4_0_0/sounds.json b/codegen/src/main/resources/codegen-data/ari_4_0_0/sounds.json similarity index 100% rename from codegen-data/ari_4_0_0/sounds.json rename to codegen/src/main/resources/codegen-data/ari_4_0_0/sounds.json diff --git a/gradle/wrapper/gradle-wrapper.jar b/gradle/wrapper/gradle-wrapper.jar new file mode 100644 index 0000000000000000000000000000000000000000..87b738cbd051603d91cc39de6cb000dd98fe6b02 GIT binary patch literal 55190 zcmafaW0WS*vSoFbZQHhO+s0S6%`V%vZQJa!ZQHKus_B{g-pt%P_q|ywBQt-*Stldc z$+IJ3?^KWm27v+sf`9-50uuadKtMnL*BJ;1^6ynvR7H?hQcjE>7)art9Bu0Pcm@7C z@c%WG|JzYkP)<@zR9S^iR_sA`azaL$mTnGKnwDyMa;8yL_0^>Ba^)phg0L5rOPTbm7g*YIRLg-2^{qe^`rb!2KqS zk~5wEJtTdD?)3+}=eby3x6%i)sb+m??NHC^u=tcG8p$TzB<;FL(WrZGV&cDQb?O0GMe6PBV=V z?tTO*5_HTW$xea!nkc~Cnx#cL_rrUGWPRa6l+A{aiMY=<0@8y5OC#UcGeE#I>nWh}`#M#kIn-$A;q@u-p71b#hcSItS!IPw?>8 zvzb|?@Ahb22L(O4#2Sre&l9H(@TGT>#Py)D&eW-LNb!=S;I`ZQ{w;MaHW z#to!~TVLgho_Pm%zq@o{K3Xq?I|MVuVSl^QHnT~sHlrVxgsqD-+YD?Nz9@HA<;x2AQjxP)r6Femg+LJ-*)k%EZ}TTRw->5xOY z9#zKJqjZgC47@AFdk1$W+KhTQJKn7e>A&?@-YOy!v_(}GyV@9G#I?bsuto4JEp;5|N{orxi_?vTI4UF0HYcA( zKyGZ4<7Fk?&LZMQb6k10N%E*$gr#T&HsY4SPQ?yerqRz5c?5P$@6dlD6UQwZJ*Je9 z7n-@7!(OVdU-mg@5$D+R%gt82Lt%&n6Yr4=|q>XT%&^z_D*f*ug8N6w$`woqeS-+#RAOfSY&Rz z?1qYa5xi(7eTCrzCFJfCxc%j{J}6#)3^*VRKF;w+`|1n;Xaojr2DI{!<3CaP`#tXs z*`pBQ5k@JLKuCmovFDqh_`Q;+^@t_;SDm29 zCNSdWXbV?9;D4VcoV`FZ9Ggrr$i<&#Dx3W=8>bSQIU_%vf)#(M2Kd3=rN@^d=QAtC zI-iQ;;GMk|&A++W5#hK28W(YqN%?!yuW8(|Cf`@FOW5QbX|`97fxmV;uXvPCqxBD zJ9iI37iV)5TW1R+fV16y;6}2tt~|0J3U4E=wQh@sx{c_eu)t=4Yoz|%Vp<#)Qlh1V z0@C2ZtlT>5gdB6W)_bhXtcZS)`9A!uIOa`K04$5>3&8An+i9BD&GvZZ=7#^r=BN=k za+=Go;qr(M)B~KYAz|<^O3LJON}$Q6Yuqn8qu~+UkUKK~&iM%pB!BO49L+?AL7N7o z(OpM(C-EY753=G=WwJHE`h*lNLMNP^c^bBk@5MyP5{v7x>GNWH>QSgTe5 z!*GPkQ(lcbEs~)4ovCu!Zt&$${9$u(<4@9%@{U<-ksAqB?6F`bQ;o-mvjr)Jn7F&j$@`il1Mf+-HdBs<-`1FahTxmPMMI)@OtI&^mtijW6zGZ67O$UOv1Jj z;a3gmw~t|LjPkW3!EZ=)lLUhFzvO;Yvj9g`8hm%6u`;cuek_b-c$wS_0M4-N<@3l|88 z@V{Sd|M;4+H6guqMm4|v=C6B7mlpP(+It%0E;W`dxMOf9!jYwWj3*MRk`KpS_jx4c z=hrKBkFK;gq@;wUV2eqE3R$M+iUc+UD0iEl#-rECK+XmH9hLKrC={j@uF=f3UiceB zU5l$FF7#RKjx+6!JHMG5-!@zI-eG=a-!Bs^AFKqN_M26%cIIcSs61R$yuq@5a3c3& z4%zLs!g}+C5%`ja?F`?5-og0lv-;(^e<`r~p$x%&*89_Aye1N)9LNVk?9BwY$Y$$F^!JQAjBJvywXAesj7lTZ)rXuxv(FFNZVknJha99lN=^h`J2> zl5=~(tKwvHHvh|9-41@OV`c;Ws--PE%{7d2sLNbDp;A6_Ka6epzOSFdqb zBa0m3j~bT*q1lslHsHqaHIP%DF&-XMpCRL(v;MV#*>mB^&)a=HfLI7efblG z(@hzN`|n+oH9;qBklb=d^S0joHCsArnR1-h{*dIUThik>ot^!6YCNjg;J_i3h6Rl0ji)* zo(tQ~>xB!rUJ(nZjCA^%X;)H{@>uhR5|xBDA=d21p@iJ!cH?+%U|VSh2S4@gv`^)^ zNKD6YlVo$%b4W^}Rw>P1YJ|fTb$_(7C;hH+ z1XAMPb6*p^h8)e5nNPKfeAO}Ik+ZN_`NrADeeJOq4Ak;sD~ zTe77no{Ztdox56Xi4UE6S7wRVxJzWxKj;B%v7|FZ3cV9MdfFp7lWCi+W{}UqekdpH zdO#eoOuB3Fu!DU`ErfeoZWJbWtRXUeBzi zBTF-AI7yMC^ntG+8%mn(I6Dw}3xK8v#Ly{3w3_E?J4(Q5JBq~I>u3!CNp~Ekk&YH` z#383VO4O42NNtcGkr*K<+wYZ>@|sP?`AQcs5oqX@-EIqgK@Pmp5~p6O6qy4ml~N{D z{=jQ7k(9!CM3N3Vt|u@%ssTw~r~Z(}QvlROAkQQ?r8OQ3F0D$aGLh zny+uGnH5muJ<67Z=8uilKvGuANrg@s3Vu_lU2ajb?rIhuOd^E@l!Kl0hYIxOP1B~Q zggUmXbh$bKL~YQ#!4fos9UUVG#}HN$lIkM<1OkU@r>$7DYYe37cXYwfK@vrHwm;pg zbh(hEU|8{*d$q7LUm+x&`S@VbW*&p-sWrplWnRM|I{P;I;%U`WmYUCeJhYc|>5?&& zj}@n}w~Oo=l}iwvi7K6)osqa;M8>fRe}>^;bLBrgA;r^ZGgY@IC^ioRmnE&H4)UV5 zO{7egQ7sBAdoqGsso5q4R(4$4Tjm&&C|7Huz&5B0wXoJzZzNc5Bt)=SOI|H}+fbit z-PiF5(NHSy>4HPMrNc@SuEMDuKYMQ--G+qeUPqO_9mOsg%1EHpqoX^yNd~~kbo`cH zlV0iAkBFTn;rVb>EK^V6?T~t~3vm;csx+lUh_%ROFPy0(omy7+_wYjN!VRDtwDu^h4n|xpAMsLepm% zggvs;v8+isCW`>BckRz1MQ=l>K6k^DdT`~sDXTWQ<~+JtY;I~I>8XsAq3yXgxe>`O zZdF*{9@Z|YtS$QrVaB!8&`&^W->_O&-JXn1n&~}o3Z7FL1QE5R*W2W@=u|w~7%EeC1aRfGtJWxImfY-D3t!!nBkWM> zafu>^Lz-ONgT6ExjV4WhN!v~u{lt2-QBN&UxwnvdH|I%LS|J-D;o>@@sA62@&yew0 z)58~JSZP!(lX;da!3`d)D1+;K9!lyNlkF|n(UduR-%g>#{`pvrD^ClddhJyfL7C-(x+J+9&7EsC~^O`&}V%)Ut8^O_7YAXPDpzv8ir4 zl`d)(;imc6r16k_d^)PJZ+QPxxVJS5e^4wX9D=V2zH&wW0-p&OJe=}rX`*->XT=;_qI&)=WHkYnZx6bLoUh_)n-A}SF_ z9z7agNTM5W6}}ui=&Qs@pO5$zHsOWIbd_&%j^Ok5PJ3yUWQw*i4*iKO)_er2CDUME ztt+{Egod~W-fn^aLe)aBz)MOc_?i-stTj}~iFk7u^-gGSbU;Iem06SDP=AEw9SzuF zeZ|hKCG3MV(z_PJg0(JbqTRf4T{NUt%kz&}4S`)0I%}ZrG!jgW2GwP=WTtkWS?DOs znI9LY!dK+1_H0h+i-_~URb^M;4&AMrEO_UlDV8o?E>^3x%ZJyh$JuDMrtYL8|G3If zPf2_Qb_W+V?$#O; zydKFv*%O;Y@o_T_UAYuaqx1isMKZ^32JtgeceA$0Z@Ck0;lHbS%N5)zzAW9iz; z8tTKeK7&qw!8XVz-+pz>z-BeIzr*#r0nB^cntjQ9@Y-N0=e&ZK72vlzX>f3RT@i7@ z=z`m7jNk!9%^xD0ug%ptZnM>F;Qu$rlwo}vRGBIymPL)L|x}nan3uFUw(&N z24gdkcb7!Q56{0<+zu zEtc5WzG2xf%1<@vo$ZsuOK{v9gx^0`gw>@h>ZMLy*h+6ueoie{D#}}` zK2@6Xxq(uZaLFC%M!2}FX}ab%GQ8A0QJ?&!vaI8Gv=vMhd);6kGguDmtuOElru()) zuRk&Z{?Vp!G~F<1#s&6io1`poBqpRHyM^p;7!+L??_DzJ8s9mYFMQ0^%_3ft7g{PD zZd}8E4EV}D!>F?bzcX=2hHR_P`Xy6?FOK)mCj)Ym4s2hh z0OlOdQa@I;^-3bhB6mpw*X5=0kJv8?#XP~9){G-+0ST@1Roz1qi8PhIXp1D$XNqVG zMl>WxwT+K`SdO1RCt4FWTNy3!i?N>*-lbnn#OxFJrswgD7HjuKpWh*o@QvgF&j+CT z{55~ZsUeR1aB}lv#s_7~+9dCix!5(KR#c?K?e2B%P$fvrsZxy@GP#R#jwL{y#Ld$} z7sF>QT6m|}?V;msb?Nlohj7a5W_D$y+4O6eI;Zt$jVGymlzLKscqer9#+p2$0It&u zWY!dCeM6^B^Z;ddEmhi?8`scl=Lhi7W%2|pT6X6^%-=q90DS(hQ-%c+E*ywPvmoF(KqDoW4!*gmQIklm zk#!GLqv|cs(JRF3G?=AYY19{w@~`G3pa z@xR9S-Hquh*&5Yas*VI};(%9%PADn`kzm zeWMJVW=>>wap*9|R7n#!&&J>gq04>DTCMtj{P^d12|2wXTEKvSf?$AvnE!peqV7i4 zE>0G%CSn%WCW1yre?yi9*aFP{GvZ|R4JT}M%x_%Hztz2qw?&28l&qW<6?c6ym{f$d z5YCF+k#yEbjCN|AGi~-NcCG8MCF1!MXBFL{#7q z)HO+WW173?kuI}^Xat;Q^gb4Hi0RGyB}%|~j8>`6X4CPo+|okMbKy9PHkr58V4bX6<&ERU)QlF8%%huUz&f+dwTN|tk+C&&o@Q1RtG`}6&6;ncQuAcfHoxd5AgD7`s zXynq41Y`zRSiOY@*;&1%1z>oNcWTV|)sjLg1X8ijg1Y zbIGL0X*Sd}EXSQ2BXCKbJmlckY(@EWn~Ut2lYeuw1wg?hhj@K?XB@V_ZP`fyL~Yd3n3SyHU-RwMBr6t-QWE5TinN9VD4XVPU; zonIIR!&pGqrLQK)=#kj40Im%V@ij0&Dh0*s!lnTw+D`Dt-xmk-jmpJv$1-E-vfYL4 zqKr#}Gm}~GPE+&$PI@4ag@=M}NYi7Y&HW82Q`@Y=W&PE31D110@yy(1vddLt`P%N^ z>Yz195A%tnt~tvsSR2{m!~7HUc@x<&`lGX1nYeQUE(%sphTi>JsVqSw8xql*Ys@9B z>RIOH*rFi*C`ohwXjyeRBDt8p)-u{O+KWP;$4gg||%*u{$~yEj+Al zE(hAQRQ1k7MkCq9s4^N3ep*$h^L%2Vq?f?{+cicpS8lo)$Cb69b98au+m2J_e7nYwID0@`M9XIo1H~|eZFc8Hl!qly612ADCVpU zY8^*RTMX(CgehD{9v|^9vZ6Rab`VeZ2m*gOR)Mw~73QEBiktViBhR!_&3l$|be|d6 zupC`{g89Y|V3uxl2!6CM(RNpdtynaiJ~*DqSTq9Mh`ohZnb%^3G{k;6%n18$4nAqR zjPOrP#-^Y9;iw{J@XH9=g5J+yEVh|e=4UeY<^65`%gWtdQ=-aqSgtywM(1nKXh`R4 zzPP&7r)kv_uC7X9n=h=!Zrf<>X=B5f<9~Q>h#jYRD#CT7D~@6@RGNyO-#0iq0uHV1 zPJr2O4d_xLmg2^TmG7|dpfJ?GGa`0|YE+`2Rata9!?$j#e9KfGYuLL(*^z z!SxFA`$qm)q-YKh)WRJZ@S+-sD_1E$V?;(?^+F3tVcK6 z2fE=8hV*2mgiAbefU^uvcM?&+Y&E}vG=Iz!%jBF7iv){lyC`)*yyS~D8k+Mx|N3bm zI~L~Z$=W9&`x)JnO;8c>3LSDw!fzN#X3qi|0`sXY4?cz{*#xz!kvZ9bO=K3XbN z5KrgN=&(JbXH{Wsu9EdmQ-W`i!JWEmfI;yVTT^a-8Ch#D8xf2dtyi?7p z%#)W3n*a#ndFpd{qN|+9Jz++AJQO#-Y7Z6%*%oyEP5zs}d&kKIr`FVEY z;S}@d?UU=tCdw~EJ{b}=9x}S2iv!!8<$?d7VKDA8h{oeD#S-$DV)-vPdGY@x08n)@ zag?yLF_E#evvRTj4^CcrLvBL=fft&@HOhZ6Ng4`8ijt&h2y}fOTC~7GfJi4vpomA5 zOcOM)o_I9BKz}I`q)fu+Qnfy*W`|mY%LO>eF^a z;$)?T4F-(X#Q-m}!-k8L_rNPf`Mr<9IWu)f&dvt=EL+ESYmCvErd@8B9hd)afc(ZL94S z?rp#h&{7Ah5IJftK4VjATklo7@hm?8BX*~oBiz)jyc9FuRw!-V;Uo>p!CWpLaIQyt zAs5WN)1CCeux-qiGdmbIk8LR`gM+Qg=&Ve}w?zA6+sTL)abU=-cvU`3E?p5$Hpkxw znu0N659qR=IKnde*AEz_7z2pdi_Bh-sb3b=PdGO1Pdf_q2;+*Cx9YN7p_>rl``knY zRn%aVkcv1(W;`Mtp_DNOIECtgq%ufk-mu_<+Fu3Q17Tq4Rr(oeq)Yqk_CHA7LR@7@ zIZIDxxhS&=F2IQfusQ+Nsr%*zFK7S4g!U0y@3H^Yln|i;0a5+?RPG;ZSp6Tul>ezM z`40+516&719qT)mW|ArDSENle5hE2e8qY+zfeZoy12u&xoMgcP)4=&P-1Ib*-bAy` zlT?>w&B|ei-rCXO;sxo7*G;!)_p#%PAM-?m$JP(R%x1Hfas@KeaG%LO?R=lmkXc_MKZW}3f%KZ*rAN?HYvbu2L$ zRt_uv7~-IejlD1x;_AhwGXjB94Q=%+PbxuYzta*jw?S&%|qb=(JfJ?&6P=R7X zV%HP_!@-zO*zS}46g=J}#AMJ}rtWBr21e6hOn&tEmaM%hALH7nlm2@LP4rZ>2 zebe5aH@k!e?ij4Zwak#30|}>;`bquDQK*xmR=zc6vj0yuyC6+U=LusGnO3ZKFRpen z#pwzh!<+WBVp-!$MAc<0i~I%fW=8IO6K}bJ<-Scq>e+)951R~HKB?Mx2H}pxPHE@} zvqpq5j81_jtb_WneAvp<5kgdPKm|u2BdQx9%EzcCN&U{l+kbkhmV<1}yCTDv%&K^> zg;KCjwh*R1f_`6`si$h6`jyIKT7rTv5#k~x$mUyIw)_>Vr)D4fwIs@}{FSX|5GB1l z4vv;@oS@>Bu7~{KgUa_8eg#Lk6IDT2IY$41$*06{>>V;Bwa(-@N;ex4;D`(QK*b}{ z{#4$Hmt)FLqERgKz=3zXiV<{YX6V)lvYBr3V>N6ajeI~~hGR5Oe>W9r@sg)Na(a4- zxm%|1OKPN6^%JaD^^O~HbLSu=f`1px>RawOxLr+1b2^28U*2#h*W^=lSpSY4(@*^l z{!@9RSLG8Me&RJYLi|?$c!B0fP=4xAM4rerxX{xy{&i6=AqXueQAIBqO+pmuxy8Ib z4X^}r!NN3-upC6B#lt7&x0J;)nb9O~xjJMemm$_fHuP{DgtlU3xiW0UesTzS30L+U zQzDI3p&3dpONhd5I8-fGk^}@unluzu%nJ$9pzoO~Kk!>dLxw@M)M9?pNH1CQhvA`z zV;uacUtnBTdvT`M$1cm9`JrT3BMW!MNVBy%?@ZX%;(%(vqQAz<7I!hlDe|J3cn9=} zF7B;V4xE{Ss76s$W~%*$JviK?w8^vqCp#_G^jN0j>~Xq#Zru26e#l3H^{GCLEXI#n z?n~F-Lv#hU(bZS`EI9(xGV*jT=8R?CaK)t8oHc9XJ;UPY0Hz$XWt#QyLBaaz5+}xM zXk(!L_*PTt7gwWH*HLWC$h3Ho!SQ-(I||nn_iEC{WT3S{3V{8IN6tZ1C+DiFM{xlI zeMMk{o5;I6UvaC)@WKp9D+o?2Vd@4)Ue-nYci()hCCsKR`VD;hr9=vA!cgGL%3k^b(jADGyPi2TKr(JNh8mzlIR>n(F_hgiV(3@Ds(tjbNM7GoZ;T|3 zWzs8S`5PrA!9){jBJuX4y`f<4;>9*&NY=2Sq2Bp`M2(fox7ZhIDe!BaQUb@P(ub9D zlP8!p(AN&CwW!V&>H?yPFMJ)d5x#HKfwx;nS{Rr@oHqpktOg)%F+%1#tsPtq7zI$r zBo-Kflhq-=7_eW9B2OQv=@?|y0CKN77)N;z@tcg;heyW{wlpJ1t`Ap!O0`Xz{YHqO zI1${8Hag^r!kA<2_~bYtM=<1YzQ#GGP+q?3T7zYbIjN6Ee^V^b&9en$8FI*NIFg9G zPG$OXjT0Ku?%L7fat8Mqbl1`azf1ltmKTa(HH$Dqlav|rU{zP;Tbnk-XkGFQ6d+gi z-PXh?_kEJl+K98&OrmzgPIijB4!Pozbxd0H1;Usy!;V>Yn6&pu*zW8aYx`SC!$*ti zSn+G9p=~w6V(fZZHc>m|PPfjK6IN4(o=IFu?pC?+`UZAUTw!e`052{P=8vqT^(VeG z=psASIhCv28Y(;7;TuYAe>}BPk5Qg=8$?wZj9lj>h2kwEfF_CpK=+O6Rq9pLn4W)# zeXCKCpi~jsfqw7Taa0;!B5_C;B}e56W1s8@p*)SPzA;Fd$Slsn^=!_&!mRHV*Lmt| zBGIDPuR>CgS4%cQ4wKdEyO&Z>2aHmja;Pz+n|7(#l%^2ZLCix%>@_mbnyPEbyrHaz z>j^4SIv;ZXF-Ftzz>*t4wyq)ng8%0d;(Z_ExZ-cxwei=8{(br-`JYO(f23Wae_MqE z3@{Mlf^%M5G1SIN&en1*| zH~ANY1h3&WNsBy$G9{T=`kcxI#-X|>zLX2r*^-FUF+m0{k)n#GTG_mhG&fJfLj~K& zU~~6othMlvMm9<*SUD2?RD+R17|Z4mgR$L*R3;nBbo&Vm@39&3xIg;^aSxHS>}gwR zmzs?h8oPnNVgET&dx5^7APYx6Vv6eou07Zveyd+^V6_LzI$>ic+pxD_8s~ zC<}ucul>UH<@$KM zT4oI=62M%7qQO{}re-jTFqo9Z;rJKD5!X5$iwUsh*+kcHVhID08MB5cQD4TBWB(rI zuWc%CA}}v|iH=9gQ?D$1#Gu!y3o~p7416n54&Hif`U-cV?VrUMJyEqo_NC4#{puzU zzXEE@UppeeRlS9W*^N$zS`SBBi<@tT+<%3l@KhOy^%MWB9(A#*J~DQ;+MK*$rxo6f zcx3$3mcx{tly!q(p2DQrxcih|)0do_ZY77pyHGE#Q(0k*t!HUmmMcYFq%l$-o6%lS zDb49W-E?rQ#Hl``C3YTEdGZjFi3R<>t)+NAda(r~f1cT5jY}s7-2^&Kvo&2DLTPYP zhVVo-HLwo*vl83mtQ9)PR#VBg)FN}+*8c-p8j`LnNUU*Olm1O1Qqe62D#$CF#?HrM zy(zkX|1oF}Z=T#3XMLWDrm(|m+{1&BMxHY7X@hM_+cV$5-t!8HT(dJi6m9{ja53Yw z3f^`yb6Q;(e|#JQIz~B*=!-GbQ4nNL-NL z@^NWF_#w-Cox@h62;r^;Y`NX8cs?l^LU;5IWE~yvU8TqIHij!X8ydbLlT0gwmzS9} z@5BccG?vO;rvCs$mse1*ANi-cYE6Iauz$Fbn3#|ToAt5v7IlYnt6RMQEYLldva{~s zvr>1L##zmeoYgvIXJ#>bbuCVuEv2ZvZ8I~PQUN3wjP0UC)!U+wn|&`V*8?)` zMSCuvnuGec>QL+i1nCPGDAm@XSMIo?A9~C?g2&G8aNKjWd2pDX{qZ?04+2 zeyLw}iEd4vkCAWwa$ zbrHlEf3hfN7^1g~aW^XwldSmx1v~1z(s=1az4-wl} z`mM+G95*N*&1EP#u3}*KwNrPIgw8Kpp((rdEOO;bT1;6ea~>>sK+?!;{hpJ3rR<6UJb`O8P4@{XGgV%63_fs%cG8L zk9Fszbdo4tS$g0IWP1>t@0)E%-&9yj%Q!fiL2vcuL;90fPm}M==<>}Q)&sp@STFCY z^p!RzmN+uXGdtPJj1Y-khNyCb6Y$Vs>eZyW zPaOV=HY_T@FwAlleZCFYl@5X<<7%5DoO(7S%Lbl55?{2vIr_;SXBCbPZ(up;pC6Wx={AZL?shYOuFxLx1*>62;2rP}g`UT5+BHg(ju z&7n5QSvSyXbioB9CJTB#x;pexicV|9oaOpiJ9VK6EvKhl4^Vsa(p6cIi$*Zr0UxQ z;$MPOZnNae2Duuce~7|2MCfhNg*hZ9{+8H3?ts9C8#xGaM&sN;2lriYkn9W>&Gry! z3b(Xx1x*FhQkD-~V+s~KBfr4M_#0{`=Yrh90yj}Ph~)Nx;1Y^8<418tu!$1<3?T*~ z7Dl0P3Uok-7w0MPFQexNG1P5;y~E8zEvE49>$(f|XWtkW2Mj`udPn)pb%} zrA%wRFp*xvDgC767w!9`0vx1=q!)w!G+9(-w&p*a@WXg{?T&%;qaVcHo>7ca%KX$B z^7|KBPo<2;kM{2mRnF8vKm`9qGV%|I{y!pKm8B(q^2V;;x2r!1VJ^Zz8bWa)!-7a8 zSRf@dqEPlsj!7}oNvFFAA)75})vTJUwQ03hD$I*j6_5xbtd_JkE2`IJD_fQ;a$EkO z{fQ{~e%PKgPJsD&PyEvDmg+Qf&p*-qu!#;1k2r_(H72{^(Z)htgh@F?VIgK#_&eS- z$~(qInec>)XIkv@+{o6^DJLpAb>!d}l1DK^(l%#OdD9tKK6#|_R?-%0V!`<9Hj z3w3chDwG*SFte@>Iqwq`J4M&{aHXzyigT620+Vf$X?3RFfeTcvx_e+(&Q*z)t>c0e zpZH$1Z3X%{^_vylHVOWT6tno=l&$3 z9^eQ@TwU#%WMQaFvaYp_we%_2-9=o{+ck zF{cKJCOjpW&qKQquyp2BXCAP920dcrZ}T1@piukx_NY;%2W>@Wca%=Ch~x5Oj58Hv z;D-_ALOZBF(Mqbcqjd}P3iDbek#Dwzu`WRs`;hRIr*n0PV7vT+%Io(t}8KZ zpp?uc2eW!v28ipep0XNDPZt7H2HJ6oey|J3z!ng#1H~x_k%35P+Cp%mqXJ~cV0xdd z^4m5^K_dQ^Sg?$P`))ccV=O>C{Ds(C2WxX$LMC5vy=*44pP&)X5DOPYfqE${)hDg< z3hcG%U%HZ39=`#Ko4Uctg&@PQLf>?0^D|4J(_1*TFMOMB!Vv1_mnOq$BzXQdOGqgy zOp#LBZ!c>bPjY1NTXksZmbAl0A^Y&(%a3W-k>bE&>K?px5Cm%AT2E<&)Y?O*?d80d zgI5l~&Mve;iXm88Q+Fw7{+`PtN4G7~mJWR^z7XmYQ>uoiV!{tL)hp|= zS(M)813PM`d<501>{NqaPo6BZ^T{KBaqEVH(2^Vjeq zgeMeMpd*1tE@@);hGjuoVzF>Cj;5dNNwh40CnU+0DSKb~GEMb_# zT8Z&gz%SkHq6!;_6dQFYE`+b`v4NT7&@P>cA1Z1xmXy<2htaDhm@XXMp!g($ zw(7iFoH2}WR`UjqjaqOQ$ecNt@c|K1H1kyBArTTjLp%-M`4nzOhkfE#}dOpcd;b#suq8cPJ&bf5`6Tq>ND(l zib{VrPZ>{KuaIg}Y$W>A+nrvMg+l4)-@2jpAQ5h(Tii%Ni^-UPVg{<1KGU2EIUNGaXcEkOedJOusFT9X3%Pz$R+-+W+LlRaY-a$5r?4V zbPzgQl22IPG+N*iBRDH%l{Zh$fv9$RN1sU@Hp3m=M}{rX%y#;4(x1KR2yCO7Pzo>rw(67E{^{yUR`91nX^&MxY@FwmJJbyPAoWZ9Z zcBS$r)&ogYBn{DOtD~tIVJUiq|1foX^*F~O4hlLp-g;Y2wKLLM=?(r3GDqsPmUo*? zwKMEi*%f)C_@?(&&hk>;m07F$X7&i?DEK|jdRK=CaaNu-)pX>n3}@%byPKVkpLzBq z{+Py&!`MZ^4@-;iY`I4#6G@aWMv{^2VTH7|WF^u?3vsB|jU3LgdX$}=v7#EHRN(im zI(3q-eU$s~r=S#EWqa_2!G?b~ z<&brq1vvUTJH380=gcNntZw%7UT8tLAr-W49;9y^=>TDaTC|cKA<(gah#2M|l~j)w zY8goo28gj$n&zcNgqX1Qn6=<8?R0`FVO)g4&QtJAbW3G#D)uNeac-7cH5W#6i!%BH z=}9}-f+FrtEkkrQ?nkoMQ1o-9_b+&=&C2^h!&mWFga#MCrm85hW;)1pDt;-uvQG^D zntSB?XA*0%TIhtWDS!KcI}kp3LT>!(Nlc(lQN?k^bS8Q^GGMfo}^|%7s;#r+pybl@?KA++|FJ zr%se9(B|g*ERQU96az%@4gYrxRRxaM2*b}jNsG|0dQi;Rw{0WM0E>rko!{QYAJJKY z)|sX0N$!8d9E|kND~v|f>3YE|uiAnqbkMn)hu$if4kUkzKqoNoh8v|S>VY1EKmgO} zR$0UU2o)4i4yc1inx3}brso+sio{)gfbLaEgLahj8(_Z#4R-v) zglqwI%`dsY+589a8$Mu7#7_%kN*ekHupQ#48DIN^uhDxblDg3R1yXMr^NmkR z7J_NWCY~fhg}h!_aXJ#?wsZF$q`JH>JWQ9`jbZzOBpS`}-A$Vgkq7+|=lPx9H7QZG z8i8guMN+yc4*H*ANr$Q-3I{FQ-^;8ezWS2b8rERp9TMOLBxiG9J*g5=?h)mIm3#CGi4JSq1ohFrcrxx@`**K5%T}qbaCGldV!t zVeM)!U3vbf5FOy;(h08JnhSGxm)8Kqxr9PsMeWi=b8b|m_&^@#A3lL;bVKTBx+0v8 zLZeWAxJ~N27lsOT2b|qyp$(CqzqgW@tyy?CgwOe~^i;ZH zlL``i4r!>i#EGBNxV_P@KpYFQLz4Bdq{#zA&sc)*@7Mxsh9u%e6Ke`?5Yz1jkTdND zR8!u_yw_$weBOU}24(&^Bm|(dSJ(v(cBct}87a^X(v>nVLIr%%D8r|&)mi+iBc;B;x;rKq zd8*X`r?SZsTNCPQqoFOrUz8nZO?225Z#z(B!4mEp#ZJBzwd7jW1!`sg*?hPMJ$o`T zR?KrN6OZA1H{9pA;p0cSSu;@6->8aJm1rrO-yDJ7)lxuk#npUk7WNER1Wwnpy%u zF=t6iHzWU(L&=vVSSc^&D_eYP3TM?HN!Tgq$SYC;pSIPWW;zeNm7Pgub#yZ@7WPw#f#Kl)W4%B>)+8%gpfoH1qZ;kZ*RqfXYeGXJ_ zk>2otbp+1By`x^1V!>6k5v8NAK@T;89$`hE0{Pc@Q$KhG0jOoKk--Qx!vS~lAiypV zCIJ&6B@24`!TxhJ4_QS*S5;;Pk#!f(qIR7*(c3dN*POKtQe)QvR{O2@QsM%ujEAWEm) z+PM=G9hSR>gQ`Bv2(k}RAv2+$7qq(mU`fQ+&}*i%-RtSUAha>70?G!>?w%F(b4k!$ zvm;E!)2`I?etmSUFW7WflJ@8Nx`m_vE2HF#)_BiD#FaNT|IY@!uUbd4v$wTglIbIX zblRy5=wp)VQzsn0_;KdM%g<8@>#;E?vypTf=F?3f@SSdZ;XpX~J@l1;p#}_veWHp>@Iq_T z@^7|h;EivPYv1&u0~l9(a~>dV9Uw10QqB6Dzu1G~-l{*7IktljpK<_L8m0|7VV_!S zRiE{u97(%R-<8oYJ{molUd>vlGaE-C|^<`hppdDz<7OS13$#J zZ+)(*rZIDSt^Q$}CRk0?pqT5PN5TT`Ya{q(BUg#&nAsg6apPMhLTno!SRq1e60fl6GvpnwDD4N> z9B=RrufY8+g3_`@PRg+(+gs2(bd;5#{uTZk96CWz#{=&h9+!{_m60xJxC%r&gd_N! z>h5UzVX%_7@CUeAA1XFg_AF%(uS&^1WD*VPS^jcC!M2v@RHZML;e(H-=(4(3O&bX- zI6>usJOS+?W&^S&DL{l|>51ZvCXUKlH2XKJPXnHjs*oMkNM#ZDLx!oaM5(%^)5XaP zk6&+P16sA>vyFe9v`Cp5qnbE#r#ltR5E+O3!WnKn`56Grs2;sqr3r# zp@Zp<^q`5iq8OqOlJ`pIuyK@3zPz&iJ0Jcc`hDQ1bqos2;}O|$i#}e@ua*x5VCSx zJAp}+?Hz++tm9dh3Fvm_bO6mQo38al#>^O0g)Lh^&l82+&x)*<n7^Sw-AJo9tEzZDwyJ7L^i7|BGqHu+ea6(&7jKpBq>~V z8CJxurD)WZ{5D0?s|KMi=e7A^JVNM6sdwg@1Eg_+Bw=9j&=+KO1PG|y(mP1@5~x>d z=@c{EWU_jTSjiJl)d(>`qEJ;@iOBm}alq8;OK;p(1AdH$)I9qHNmxxUArdzBW0t+Qeyl)m3?D09770g z)hzXEOy>2_{?o%2B%k%z4d23!pZcoxyW1Ik{|m7Q1>fm4`wsRrl)~h z_=Z*zYL+EG@DV1{6@5@(Ndu!Q$l_6Qlfoz@79q)Kmsf~J7t1)tl#`MD<;1&CAA zH8;i+oBm89dTTDl{aH`cmTPTt@^K-%*sV+t4X9q0Z{A~vEEa!&rRRr=0Rbz4NFCJr zLg2u=0QK@w9XGE=6(-JgeP}G#WG|R&tfHRA3a9*zh5wNTBAD;@YYGx%#E4{C#Wlfo z%-JuW9=FA_T6mR2-Vugk1uGZvJbFvVVWT@QOWz$;?u6+CbyQsbK$>O1APk|xgnh_8 zc)s@Mw7#0^wP6qTtyNq2G#s?5j~REyoU6^lT7dpX{T-rhZWHD%dik*=EA7bIJgOVf_Ga!yC8V^tkTOEHe+JK@Fh|$kfNxO^= z#lpV^(ZQ-3!^_BhV>aXY~GC9{8%1lOJ}6vzXDvPhC>JrtXwFBC+!3a*Z-%#9}i z#<5&0LLIa{q!rEIFSFc9)>{-_2^qbOg5;_A9 ztQ))C6#hxSA{f9R3Eh^`_f${pBJNe~pIQ`tZVR^wyp}=gLK}e5_vG@w+-mp#Fu>e| z*?qBp5CQ5zu+Fi}xAs)YY1;bKG!htqR~)DB$ILN6GaChoiy%Bq@i+1ZnANC0U&D z_4k$=YP47ng+0NhuEt}6C;9-JDd8i5S>`Ml==9wHDQFOsAlmtrVwurYDw_)Ihfk35 zJDBbe!*LUpg%4n>BExWz>KIQ9vexUu^d!7rc_kg#Bf= z7TLz|l*y*3d2vi@c|pX*@ybf!+Xk|2*z$@F4K#MT8Dt4zM_EcFmNp31#7qT6(@GG? zdd;sSY9HHuDb=w&|K%sm`bYX#%UHKY%R`3aLMO?{T#EI@FNNFNO>p@?W*i0z(g2dt z{=9Ofh80Oxv&)i35AQN>TPMjR^UID-T7H5A?GI{MD_VeXZ%;uo41dVm=uT&ne2h0i zv*xI%9vPtdEK@~1&V%p1sFc2AA`9?H)gPnRdlO~URx!fiSV)j?Tf5=5F>hnO=$d$x zzaIfr*wiIc!U1K*$JO@)gP4%xp!<*DvJSv7p}(uTLUb=MSb@7_yO+IsCj^`PsxEl& zIxsi}s3L?t+p+3FXYqujGhGwTx^WXgJ1}a@Yq5mwP0PvGEr*qu7@R$9j>@-q1rz5T zriz;B^(ex?=3Th6h;7U`8u2sDlfS{0YyydK=*>-(NOm9>S_{U|eg(J~C7O zIe{|LK=Y`hXiF_%jOM8Haw3UtaE{hWdzo3BbD6ud7br4cODBtN(~Hl+odP0SSWPw;I&^m)yLw+nd#}3#z}?UIcX3=SssI}`QwY=% zAEXTODk|MqTx}2DVG<|~(CxgLyi*A{m>M@1h^wiC)4Hy>1K7@|Z&_VPJsaQoS8=ex zDL&+AZdQa>ylxhT_Q$q=60D5&%pi6+qlY3$3c(~rsITX?>b;({FhU!7HOOhSP7>bmTkC8KM%!LRGI^~y3Ug+gh!QM=+NZXznM)?L3G=4=IMvFgX3BAlyJ z`~jjA;2z+65D$j5xbv9=IWQ^&-K3Yh`vC(1Qz2h2`o$>Cej@XRGff!it$n{@WEJ^N z41qk%Wm=}mA*iwCqU_6}Id!SQd13aFER3unXaJJXIsSnxvG2(hSCP{i&QH$tL&TPx zDYJsuk+%laN&OvKb-FHK$R4dy%M7hSB*yj#-nJy?S9tVoxAuDei{s}@+pNT!vLOIC z8g`-QQW8FKp3cPsX%{)0B+x+OhZ1=L7F-jizt|{+f1Ga7%+!BXqjCjH&x|3%?UbN# zh?$I1^YokvG$qFz5ySK+Ja5=mkR&p{F}ev**rWdKMko+Gj^?Or=UH?SCg#0F(&a_y zXOh}dPv0D9l0RVedq1~jCNV=8?vZfU-Xi|nkeE->;ohG3U7z+^0+HV17~-_Mv#mV` zzvwUJJ15v5wwKPv-)i@dsEo@#WEO9zie7mdRAbgL2kjbW4&lk$vxkbq=w5mGKZK6@ zjXWctDkCRx58NJD_Q7e}HX`SiV)TZMJ}~zY6P1(LWo`;yDynY_5_L?N-P`>ALfmyl z8C$a~FDkcwtzK9m$tof>(`Vu3#6r#+v8RGy#1D2)F;vnsiL&P-c^PO)^B-4VeJteLlT@25sPa z%W~q5>YMjj!mhN})p$47VA^v$Jo6_s{!y?}`+h+VM_SN`!11`|;C;B};B&Z<@%FOG z_YQVN+zFF|q5zKab&e4GH|B;sBbKimHt;K@tCH+S{7Ry~88`si7}S)1E{21nldiu5 z_4>;XTJa~Yd$m4A9{Qbd)KUAm7XNbZ4xHbg3a8-+1uf*$1PegabbmCzgC~1WB2F(W zYj5XhVos!X!QHuZXCatkRsdEsSCc+D2?*S7a+(v%toqyxhjz|`zdrUvsxQS{J>?c& zvx*rHw^8b|v^7wq8KWVofj&VUitbm*a&RU_ln#ZFA^3AKEf<#T%8I!Lg3XEsdH(A5 zlgh&M_XEoal)i#0tcq8c%Gs6`xu;vvP2u)D9p!&XNt z!TdF_H~;`g@fNXkO-*t<9~;iEv?)Nee%hVe!aW`N%$cFJ(Dy9+Xk*odyFj72T!(b%Vo5zvCGZ%3tkt$@Wcx8BWEkefI1-~C_3y*LjlQ5%WEz9WD8i^ z2MV$BHD$gdPJV4IaV)G9CIFwiV=ca0cfXdTdK7oRf@lgyPx;_7*RRFk=?@EOb9Gcz zg~VZrzo*Snp&EE{$CWr)JZW)Gr;{B2ka6B!&?aknM-FENcl%45#y?oq9QY z3^1Y5yn&^D67Da4lI}ljDcphaEZw2;tlYuzq?uB4b9Mt6!KTW&ptxd^vF;NbX=00T z@nE1lIBGgjqs?ES#P{ZfRb6f!At51vk%<0X%d_~NL5b8UyfQMPDtfU@>ijA0NP3UU zh{lCf`Wu7cX!go`kUG`1K=7NN@SRGjUKuo<^;@GS!%iDXbJs`o6e`v3O8-+7vRkFm z)nEa$sD#-v)*Jb>&Me+YIW3PsR1)h=-Su)))>-`aRcFJG-8icomO4J@60 zw10l}BYxi{eL+Uu0xJYk-Vc~BcR49Qyyq!7)PR27D`cqGrik=?k1Of>gY7q@&d&Ds zt7&WixP`9~jjHO`Cog~RA4Q%uMg+$z^Gt&vn+d3&>Ux{_c zm|bc;k|GKbhZLr-%p_f%dq$eiZ;n^NxoS-Nu*^Nx5vm46)*)=-Bf<;X#?`YC4tLK; z?;u?shFbXeks+dJ?^o$l#tg*1NA?(1iFff@I&j^<74S!o;SWR^Xi);DM%8XiWpLi0 zQE2dL9^a36|L5qC5+&Pf0%>l&qQ&)OU4vjd)%I6{|H+pw<0(a``9w(gKD&+o$8hOC zNAiShtc}e~ob2`gyVZx59y<6Fpl*$J41VJ-H*e-yECWaDMmPQi-N8XI3 z%iI@ljc+d}_okL1CGWffeaejlxWFVDWu%e=>H)XeZ|4{HlbgC-Uvof4ISYQzZ0Um> z#Ov{k1c*VoN^f(gfiueuag)`TbjL$XVq$)aCUBL_M`5>0>6Ska^*Knk__pw{0I>jA zzh}Kzg{@PNi)fcAk7jMAdi-_RO%x#LQszDMS@_>iFoB+zJ0Q#CQJzFGa8;pHFdi`^ zxnTC`G$7Rctm3G8t8!SY`GwFi4gF|+dAk7rh^rA{NXzc%39+xSYM~($L(pJ(8Zjs* zYdN_R^%~LiGHm9|ElV4kVZGA*T$o@YY4qpJOxGHlUi*S*A(MrgQ{&xoZQo+#PuYRs zv3a$*qoe9gBqbN|y|eaH=w^LE{>kpL!;$wRahY(hhzRY;d33W)m*dfem@)>pR54Qy z ze;^F?mwdU?K+=fBabokSls^6_6At#1Sh7W*y?r6Ss*dmZP{n;VB^LDxM1QWh;@H0J z!4S*_5j_;+@-NpO1KfQd&;C7T`9ak;X8DTRz$hDNcjG}xAfg%gwZSb^zhE~O);NMO zn2$fl7Evn%=Lk!*xsM#(y$mjukN?A&mzEw3W5>_o+6oh62kq=4-`e3B^$rG=XG}Kd zK$blh(%!9;@d@3& zGFO60j1Vf54S}+XD?%*uk7wW$f`4U3F*p7@I4Jg7f`Il}2H<{j5h?$DDe%wG7jZQL zI{mj?t?Hu>$|2UrPr5&QyK2l3mas?zzOk0DV30HgOQ|~xLXDQ8M3o#;CNKO8RK+M; zsOi%)js-MU>9H4%Q)#K_me}8OQC1u;f4!LO%|5toa1|u5Q@#mYy8nE9IXmR}b#sZK z3sD395q}*TDJJA9Er7N`y=w*S&tA;mv-)Sx4(k$fJBxXva0_;$G6!9bGBw13c_Uws zXks4u(8JA@0O9g5f?#V~qR5*u5aIe2HQO^)RW9TTcJk28l`Syl>Q#ZveEE4Em+{?%iz6=V3b>rCm9F zPQQm@-(hfNdo2%n?B)u_&Qh7^^@U>0qMBngH8}H|v+Ejg*Dd(Y#|jgJ-A zQ_bQscil%eY}8oN7ZL+2r|qv+iJY?*l)&3W_55T3GU;?@Om*(M`u0DXAsQ7HSl56> z4P!*(%&wRCb?a4HH&n;lAmr4rS=kMZb74Akha2U~Ktni>>cD$6jpugjULq)D?ea%b zk;UW0pAI~TH59P+o}*c5Ei5L-9OE;OIBt>^(;xw`>cN2`({Rzg71qrNaE=cAH^$wP zNrK9Glp^3a%m+ilQj0SnGq`okjzmE7<3I{JLD6Jn^+oas=h*4>Wvy=KXqVBa;K&ri z4(SVmMXPG}0-UTwa2-MJ=MTfM3K)b~DzSVq8+v-a0&Dsv>4B65{dBhD;(d44CaHSM zb!0ne(*<^Q%|nuaL`Gb3D4AvyO8wyygm=1;9#u5x*k0$UOwx?QxR*6Od8>+ujfyo0 zJ}>2FgW_iv(dBK2OWC-Y=Tw!UwIeOAOUUC;h95&S1hn$G#if+d;*dWL#j#YWswrz_ zMlV=z+zjZJ%SlDhxf)vv@`%~$Afd)T+MS1>ZE7V$Rj#;J*<9Ld=PrK0?qrazRJWx) z(BTLF@Wk279nh|G%ZY7_lK7=&j;x`bMND=zgh_>>-o@6%8_#Bz!FnF*onB@_k|YCF z?vu!s6#h9bL3@tPn$1;#k5=7#s*L;FLK#=M89K^|$3LICYWIbd^qguQp02w5>8p-H z+@J&+pP_^iF4Xu>`D>DcCnl8BUwwOlq6`XkjHNpi@B?OOd`4{dL?kH%lt78(-L}eah8?36zw9d-dI6D{$s{f=M7)1 zRH1M*-82}DoFF^Mi$r}bTB5r6y9>8hjL54%KfyHxn$LkW=AZ(WkHWR;tIWWr@+;^^ zVomjAWT)$+rn%g`LHB6ZSO@M3KBA? z+W7ThSBgpk`jZHZUrp`F;*%6M5kLWy6AW#T{jFHTiKXP9ITrMlEdti7@&AT_a-BA!jc(Kt zWk>IdY-2Zbz?U1)tk#n_Lsl?W;0q`;z|t9*g-xE!(}#$fScX2VkjSiboKWE~afu5d z2B@9mvT=o2fB_>Mnie=TDJB+l`GMKCy%2+NcFsbpv<9jS@$X37K_-Y!cvF5NEY`#p z3sWEc<7$E*X*fp+MqsOyMXO=<2>o8)E(T?#4KVQgt=qa%5FfUG_LE`n)PihCz2=iNUt7im)s@;mOc9SR&{`4s9Q6)U31mn?}Y?$k3kU z#h??JEgH-HGt`~%)1ZBhT9~uRi8br&;a5Y3K_Bl1G)-y(ytx?ok9S*Tz#5Vb=P~xH z^5*t_R2It95=!XDE6X{MjLYn4Eszj9Y91T2SFz@eYlx9Z9*hWaS$^5r7=W5|>sY8}mS(>e9Ez2qI1~wtlA$yv2e-Hjn&K*P z2zWSrC~_8Wrxxf#%QAL&f8iH2%R)E~IrQLgWFg8>`Vnyo?E=uiALoRP&qT{V2{$79 z%9R?*kW-7b#|}*~P#cA@q=V|+RC9=I;aK7Pju$K-n`EoGV^-8Mk=-?@$?O37evGKn z3NEgpo_4{s>=FB}sqx21d3*=gKq-Zk)U+bM%Q_}0`XGkYh*+jRaP+aDnRv#Zz*n$pGp zEU9omuYVXH{AEx>=kk}h2iKt!yqX=EHN)LF}z1j zJx((`CesN1HxTFZ7yrvA2jTPmKYVij>45{ZH2YtsHuGzIRotIFj?(8T@ZWUv{_%AI zgMZlB03C&FtgJqv9%(acqt9N)`4jy4PtYgnhqev!r$GTIOvLF5aZ{tW5MN@9BDGu* zBJzwW3sEJ~Oy8is`l6Ly3an7RPtRr^1Iu(D!B!0O241Xua>Jee;Rc7tWvj!%#yX#m z&pU*?=rTVD7pF6va1D@u@b#V@bShFr3 zMyMbNCZwT)E-%L-{%$3?n}>EN>ai7b$zR_>=l59mW;tfKj^oG)>_TGCJ#HbLBsNy$ zqAqPagZ3uQ(Gsv_-VrZmG&hHaOD#RB#6J8&sL=^iMFB=gH5AIJ+w@sTf7xa&Cnl}@ zxrtzoNq>t?=(+8bS)s2p3>jW}tye0z2aY_Dh@(18-vdfvn;D?sv<>UgL{Ti08$1Q+ zZI3q}yMA^LK=d?YVg({|v?d1|R?5 zL0S3fw)BZazRNNX|7P4rh7!+3tCG~O8l+m?H} z(CB>8(9LtKYIu3ohJ-9ecgk+L&!FX~Wuim&;v$>M4 zUfvn<=Eok(63Ubc>mZrd8d7(>8bG>J?PtOHih_xRYFu1Hg{t;%+hXu2#x%a%qzcab zv$X!ccoj)exoOnaco_jbGw7KryOtuf(SaR-VJ0nAe(1*AA}#QV1lMhGtzD>RoUZ;WA?~!K{8%chYn?ttlz17UpDLlhTkGcVfHY6R<2r4E{mU zq-}D?+*2gAkQYAKrk*rB%4WFC-B!eZZLg4(tR#@kUQHIzEqV48$9=Q(~J_0 zy1%LSCbkoOhRO!J+Oh#;bGuXe;~(bIE*!J@i<%_IcB7wjhB5iF#jBn5+u~fEECN2* z!QFh!m<(>%49H12Y33+?$JxKV3xW{xSs=gxkxW-@Xds^|O1`AmorDKrE8N2-@ospk z=Au%h=f!`_X|G^A;XWL}-_L@D6A~*4Yf!5RTTm$!t8y&fp5_oqvBjW{FufS`!)5m% z2g(=9Ap6Y2y(9OYOWuUVGp-K=6kqQ)kM0P^TQT{X{V$*sN$wbFb-DaUuJF*!?EJPl zJev!UsOB^UHZ2KppYTELh+kqDw+5dPFv&&;;C~=u$Mt+Ywga!8YkL2~@g67}3wAQP zrx^RaXb1(c7vwU8a2se75X(cX^$M{FH4AHS7d2}heqqg4F0!1|Na>UtAdT%3JnS!B)&zelTEj$^b0>Oyfw=P-y-Wd^#dEFRUN*C{!`aJIHi<_YA2?piC%^ zj!p}+ZnBrM?ErAM+D97B*7L8U$K zo(IR-&LF(85p+fuct9~VTSdRjs`d-m|6G;&PoWvC&s8z`TotPSoksp;RsL4VL@CHf z_3|Tn%`ObgRhLmr60<;ya-5wbh&t z#ycN_)3P_KZN5CRyG%LRO4`Ot)3vY#dNX9!f!`_>1%4Q`81E*2BRg~A-VcN7pcX#j zrbl@7`V%n z6J53(m?KRzKb)v?iCuYWbH*l6M77dY4keS!%>}*8n!@ROE4!|7mQ+YS4dff1JJC(t z6Fnuf^=dajqHpH1=|pb(po9Fr8it^;2dEk|Ro=$fxqK$^Yix{G($0m-{RCFQJ~LqUnO7jJcjr zl*N*!6WU;wtF=dLCWzD6kW;y)LEo=4wSXQDIcq5WttgE#%@*m><@H;~Q&GniA-$in z`sjWFLgychS1kIJmPtd-w6%iKkj&dGhtB%0)pyy0M<4HZ@ZY0PWLAd7FCrj&i|NRh?>hZj*&FYnyu%Ur`JdiTu&+n z78d3n)Rl6q&NwVj_jcr#s5G^d?VtV8bkkYco5lV0LiT+t8}98LW>d)|v|V3++zLbHC(NC@X#Hx?21J0M*gP2V`Yd^DYvVIr{C zSc4V)hZKf|OMSm%FVqSRC!phWSyuUAu%0fredf#TDR$|hMZihJ__F!)Nkh6z)d=NC z3q4V*K3JTetxCPgB2_)rhOSWhuXzu+%&>}*ARxUaDeRy{$xK(AC0I=9%X7dmc6?lZNqe-iM(`?Xn3x2Ov>sej6YVQJ9Q42>?4lil?X zew-S>tm{=@QC-zLtg*nh5mQojYnvVzf3!4TpXPuobW_*xYJs;9AokrXcs!Ay z;HK>#;G$*TPN2M!WxdH>oDY6k4A6S>BM0Nimf#LfboKxJXVBC=RBuO&g-=+@O-#0m zh*aPG16zY^tzQLNAF7L(IpGPa+mDsCeAK3k=IL6^LcE8l0o&)k@?dz!79yxUquQIe($zm5DG z5RdXTv)AjHaOPv6z%99mPsa#8OD@9=URvHoJ1hYnV2bG*2XYBgB!-GEoP&8fLmWGg z9NG^xl5D&3L^io&3iYweV*qhc=m+r7C#Jppo$Ygg;jO2yaFU8+F*RmPL` zYxfGKla_--I}YUT353k}nF1zt2NO?+kofR8Efl$Bb^&llgq+HV_UYJUH7M5IoN0sT z4;wDA0gs55ZI|FmJ0}^Pc}{Ji-|#jdR$`!s)Di4^g3b_Qr<*Qu2rz}R6!B^;`Lj3sKWzjMYjexX)-;f5Y+HfkctE{PstO-BZan0zdXPQ=V8 zS8cBhnQyy4oN?J~oK0zl!#S|v6h-nx5to7WkdEk0HKBm;?kcNO*A+u=%f~l&aY*+J z>%^Dz`EQ6!+SEX$>?d(~|MNWU-}JTrk}&`IR|Ske(G^iMdk04)Cxd@}{1=P0U*%L5 zMFH_$R+HUGGv|ju2Z>5x(-aIbVJLcH1S+(E#MNe9g;VZX{5f%_|Kv7|UY-CM(>vf= z!4m?QS+AL+rUyfGJ;~uJGp4{WhOOc%2ybVP68@QTwI(8kDuYf?#^xv zBmOHCZU8O(x)=GVFn%tg@TVW1)qJJ_bU}4e7i>&V?r zh-03>d3DFj&@}6t1y3*yOzllYQ++BO-q!)zsk`D(z||)y&}o%sZ-tUF>0KsiYKFg6 zTONq)P+uL5Vm0w{D5Gms^>H1qa&Z##*X31=58*r%Z@Ko=IMXX{;aiMUp-!$As3{sq z0EEk02MOsgGm7$}E%H1ys2$yftNbB%1rdo@?6~0!a8Ym*1f;jIgfcYEF(I_^+;Xdr z2a>&oc^dF3pm(UNpazXgVzuF<2|zdPGjrNUKpdb$HOgNp*V56XqH`~$c~oSiqx;8_ zEz3fHoU*aJUbFJ&?W)sZB3qOSS;OIZ=n-*#q{?PCXi?Mq4aY@=XvlNQdA;yVC0Vy+ z{Zk6OO!lMYWd`T#bS8FV(`%flEA9El;~WjZKU1YmZpG#49`ku`oV{Bdtvzyz3{k&7 zlG>ik>eL1P93F zd&!aXluU_qV1~sBQf$F%sM4kTfGx5MxO0zJy<#5Z&qzNfull=k1_CZivd-WAuIQf> zBT3&WR|VD|=nKelnp3Q@A~^d_jN3@$x2$f@E~e<$dk$L@06Paw$);l*ewndzL~LuU zq`>vfKb*+=uw`}NsM}~oY}gW%XFwy&A>bi{7s>@(cu4NM;!%ieP$8r6&6jfoq756W z$Y<`J*d7nK4`6t`sZ;l%Oen|+pk|Ry2`p9lri5VD!Gq`U#Ms}pgX3ylAFr8(?1#&dxrtJgB>VqrlWZf61(r`&zMXsV~l{UGjI7R@*NiMJLUoK*kY&gY9kC@^}Fj* zd^l6_t}%Ku<0PY71%zQL`@}L}48M!@=r)Q^Ie5AWhv%#l+Rhu6fRpvv$28TH;N7Cl z%I^4ffBqx@Pxpq|rTJV)$CnxUPOIn`u278s9#ukn>PL25VMv2mff)-RXV&r`Dwid7}TEZxXX1q(h{R6v6X z&x{S_tW%f)BHc!jHNbnrDRjGB@cam{i#zZK*_*xlW@-R3VDmp)<$}S%t*@VmYX;1h zFWmpXt@1xJlc15Yjs2&e%)d`fimRfi?+fS^BoTcrsew%e@T^}wyVv6NGDyMGHSKIQ zC>qFr4GY?#S#pq!%IM_AOf`#}tPoMn7JP8dHXm(v3UTq!aOfEXNRtEJ^4ED@jx%le zvUoUs-d|2(zBsrN0wE(Pj^g5wx{1YPg9FL1)V1JupsVaXNzq4fX+R!oVX+q3tG?L= z>=s38J_!$eSzy0m?om6Wv|ZCbYVHDH*J1_Ndajoh&?L7h&(CVii&rmLu+FcI;1qd_ zHDb3Vk=(`WV?Uq;<0NccEh0s`mBXcEtmwt6oN99RQt7MNER3`{snV$qBTp={Hn!zz z1gkYi#^;P8s!tQl(Y>|lvz{5$uiXsitTD^1YgCp+1%IMIRLiSP`sJru0oY-p!FPbI)!6{XM%)(_Dolh1;$HlghB-&e><;zU&pc=ujpa-(+S&Jj zX1n4T#DJDuG7NP;F5TkoG#qjjZ8NdXxF0l58RK?XO7?faM5*Z17stidTP|a%_N z^e$D?@~q#Pf+708cLSWCK|toT1YSHfXVIs9Dnh5R(}(I;7KhKB7RD>f%;H2X?Z9eR z{lUMuO~ffT!^ew= z7u13>STI4tZpCQ?yb9;tSM-(EGb?iW$a1eBy4-PVejgMXFIV_Ha^XB|F}zK_gzdhM z!)($XfrFHPf&uyFQf$EpcAfk83}91Y`JFJOiQ;v5ca?)a!IxOi36tGkPk4S6EW~eq z>WiK`Vu3D1DaZ}515nl6>;3#xo{GQp1(=uTXl1~ z4gdWxr-8a$L*_G^UVd&bqW_nzMM&SlNW$8|$lAfo@zb+P>2q?=+T^qNwblP*RsN?N zdZE%^Zs;yAwero1qaoqMp~|KL=&npffh981>2om!fseU(CtJ=bW7c6l{U5(07*e0~ zJRbid6?&psp)ilmYYR3ZIg;t;6?*>hoZ3uq7dvyyq-yq$zH$yyImjfhpQb@WKENSP zl;KPCE+KXzU5!)mu12~;2trrLfs&nlEVOndh9&!SAOdeYd}ugwpE-9OF|yQs(w@C9 zoXVX`LP~V>%$<(%~tE*bsq(EFm zU5z{H@Fs^>nm%m%wZs*hRl=KD%4W3|(@j!nJr{Mmkl`e_uR9fZ-E{JY7#s6i()WXB0g-b`R{2r@K{2h3T+a>82>722+$RM*?W5;Bmo6$X3+Ieg9&^TU(*F$Q3 zT572!;vJeBr-)x?cP;^w1zoAM`nWYVz^<6N>SkgG3s4MrNtzQO|A?odKurb6DGZffo>DP_)S0$#gGQ_vw@a9JDXs2}hV&c>$ zUT0;1@cY5kozKOcbN6)n5v)l#>nLFL_x?2NQgurQH(KH@gGe>F|$&@ zq@2A!EXcIsDdzf@cWqElI5~t z4cL9gg7{%~4@`ANXnVAi=JvSsj95-7V& zME3o-%9~2?cvlH#twW~99=-$C=+b5^Yv}Zh4;Mg-!LS zw>gqc=}CzS9>v5C?#re>JsRY!w|Mtv#%O3%Ydn=S9cQarqkZwaM4z(gL~1&oJZ;t; zA5+g3O6itCsu93!G1J_J%Icku>b3O6qBW$1Ej_oUWc@MI)| zQ~eyS-EAAnVZp}CQnvG0N>Kc$h^1DRJkE7xZqJ0>p<>9*apXgBMI-v87E0+PeJ-K& z#(8>P_W^h_kBkI;&e_{~!M+TXt@z8Po*!L^8XBn{of)knd-xp{heZh~@EunB2W)gd zAVTw6ZZasTi>((qpBFh(r4)k zz&@Mc@ZcI-4d639AfcOgHOU+YtpZ)rC%Bc5gw5o~+E-i+bMm(A6!uE>=>1M;V!Wl4 z<#~muol$FsY_qQC{JDc8b=$l6Y_@_!$av^08`czSm!Xan{l$@GO-zPq1s>WF)G=wv zDD8j~Ht1pFj)*-b7h>W)@O&m&VyYci&}K|0_Z*w`L>1jnGfCf@6p}Ef*?wdficVe_ zmPRUZ(C+YJU+hIj@_#IiM7+$4kH#VS5tM!Ksz01siPc-WUe9Y3|pb4u2qnn zRavJiRpa zq?tr&YV?yKt<@-kAFl3s&Kq#jag$hN+Y%%kX_ytvpCsElgFoN3SsZLC>0f|m#&Jhu zp7c1dV$55$+k78FI2q!FT}r|}cIV;zp~#6X2&}22$t6cHx_95FL~T~1XW21VFuatb zpM@6w>c^SJ>Pq6{L&f9()uy)TAWf;6LyHH3BUiJ8A4}od)9sriz~e7}l7Vr0e%(=>KG1Jay zW0azuWC`(|B?<6;R)2}aU`r@mt_#W2VrO{LcX$Hg9f4H#XpOsAOX02x^w9+xnLVAt z^~hv2guE-DElBG+`+`>PwXn5kuP_ZiOO3QuwoEr)ky;o$n7hFoh}Aq0@Ar<8`H!n} zspCC^EB=6>$q*gf&M2wj@zzfBl(w_@0;h^*fC#PW9!-kT-dt*e7^)OIU{Uw%U4d#g zL&o>6`hKQUps|G4F_5AuFU4wI)(%9(av7-u40(IaI|%ir@~w9-rLs&efOR@oQy)}{ z&T#Qf`!|52W0d+>G!h~5A}7VJky`C3^fkJzt3|M&xW~x-8rSi-uz=qBsgODqbl(W#f{Ew#ui(K)(Hr&xqZs` zfrK^2)tF#|U=K|_U@|r=M_Hb;qj1GJG=O=d`~#AFAccecIaq3U`(Ds1*f*TIs=IGL zp_vlaRUtFNK8(k;JEu&|i_m39c(HblQkF8g#l|?hPaUzH2kAAF1>>Yykva0;U@&oRV8w?5yEK??A0SBgh?@Pd zJg{O~4xURt7!a;$rz9%IMHQeEZHR8KgFQixarg+MfmM_OeX#~#&?mx44qe!wt`~dd zqyt^~ML>V>2Do$huU<7}EF2wy9^kJJSm6HoAD*sRz%a|aJWz_n6?bz99h)jNMp}3k ztPVbos1$lC1nX_OK0~h>=F&v^IfgBF{#BIi&HTL}O7H-t4+wwa)kf3AE2-Dx@#mTA z!0f`>vz+d3AF$NH_-JqkuK1C+5>yns0G;r5ApsU|a-w9^j4c+FS{#+7- zH%skr+TJ~W_8CK_j$T1b;$ql_+;q6W|D^BNK*A+W5XQBbJy|)(IDA=L9d>t1`KX2b zOX(Ffv*m?e>! zS3lc>XC@IqPf1g-%^4XyGl*1v0NWnwZTW?z4Y6sncXkaA{?NYna3(n@(+n+#sYm}A zGQS;*Li$4R(Ff{obl3#6pUsA0fKuWurQo$mWXMNPV5K66V!XYOyc})^>889Hg3I<{V^Lj9($B4Zu$xRr=89-lDz9x`+I8q(vEAimx1K{sTbs|5x7S zZ+7o$;9&9>@3K;5-DVzGw=kp7ez%1*kxhGytdLS>Q)=xUWv3k_x(IsS8we39Tijvr z`GKk>gkZTHSht;5q%fh9z?vk%sWO}KR04G9^jleJ^@ovWrob7{1xy7V=;S~dDVt%S za$Q#Th%6g1(hiP>hDe}7lcuI94K-2~Q0R3A1nsb7Y*Z!DtQ(Ic<0;TDKvc6%1kBdJ z$hF!{uALB0pa?B^TC}#N5gZ|CKjy|BnT$7eaKj;f>Alqdb_FA3yjZ4CCvm)D&ibL) zZRi91HC!TIAUl<|`rK_6avGh`!)TKk=j|8*W|!vb9>HLv^E%t$`@r@piI(6V8pqDG zBON7~=cf1ZWF6jc{qkKm;oYBtUpIdau6s+<-o^5qNi-p%L%xAtn9OktFd{@EjVAT% z#?-MJ5}Q9QiK_jYYWs+;I4&!N^(mb!%4zx7qO6oCEDn=8oL6#*9XIJ&iJ30O`0vsFy|fEVkw}*jd&B6!IYi+~Y)qv6QlM&V9g0 zh)@^BVDB|P&#X{31>G*nAT}Mz-j~zd>L{v{9AxrxKFw8j;ccQ$NE0PZCc(7fEt1xd z`(oR2!gX6}R+Z77VkDz^{I)@%&HQT5q+1xlf*3R^U8q%;IT8-B53&}dNA7GW`Ki&= z$lrdH zDCu;j$GxW<&v_4Te7=AE2J0u1NM_7Hl9$u{z(8#%8vvrx2P#R7AwnY|?#LbWmROa; zOJzU_*^+n(+k;Jd{e~So9>OF>fPx$Hb$?~K1ul2xr>>o@**n^6IMu8+o3rDp(X$cC z`wQt9qIS>yjA$K~bg{M%kJ00A)U4L+#*@$8UlS#lN3YA{R{7{-zu#n1>0@(#^eb_% zY|q}2)jOEM8t~9p$X5fpT7BZQ1bND#^Uyaa{mNcFWL|MoYb@>y`d{VwmsF&haoJuS2W7azZU0{tu#Jj_-^QRc35tjW~ae&zhKk!wD}#xR1WHu z_7Fys#bp&R?VXy$WYa$~!dMxt2@*(>@xS}5f-@6eoT%rwH zv_6}M?+piNE;BqaKzm1kK@?fTy$4k5cqYdN8x-<(o6KelwvkTqC3VW5HEnr+WGQlF zs`lcYEm=HPpmM4;Ich7A3a5Mb3YyQs7(Tuz-k4O0*-YGvl+2&V(B&L1F8qfR0@vQM-rF<2h-l9T12eL}3LnNAVyY_z51xVr$%@VQ-lS~wf3mnHc zoM({3Z<3+PpTFCRn_Y6cbxu9v>_>eTN0>hHPl_NQQuaK^Mhrv zX{q#80ot;ptt3#js3>kD&uNs{G0mQp>jyc0GG?=9wb33hm z`y2jL=J)T1JD7eX3xa4h$bG}2ev=?7f>-JmCj6){Upo&$k{2WA=%f;KB;X5e;JF3IjQBa4e-Gp~xv- z|In&Rad7LjJVz*q*+splCj|{7=kvQLw0F@$vPuw4m^z=B^7=A4asK_`%lEf_oIJ-O z{L)zi4bd#&g0w{p1$#I&@bz3QXu%Y)j46HAJKWVfRRB*oXo4lIy7BcVl4hRs<%&iQ zr|)Z^LUJ>qn>{6y`JdabfNNFPX7#3`x|uw+z@h<`x{J4&NlDjnknMf(VW_nKWT!Jh zo1iWBqT6^BR-{T=4Ybe+?6zxP_;A5Uo{}Xel%*=|zRGm1)pR43K39SZ=%{MDCS2d$~}PE-xPw4ZK6)H;Zc&0D5p!vjCn0wCe&rVIhchR9ql!p2`g0b@JsC^J#n_r*4lZ~u0UHKwo(HaHUJDHf^gdJhTdTW z3i7Zp_`xyKC&AI^#~JMVZj^9WsW}UR#nc#o+ifY<4`M+?Y9NTBT~p`ONtAFf8(ltr*ER-Ig!yRs2xke#NN zkyFcaQKYv>L8mQdrL+#rjgVY>Z2_$bIUz(kaqL}cYENh-2S6BQK-a(VNDa_UewSW` zMgHi<3`f!eHsyL6*^e^W7#l?V|42CfAjsgyiJsA`yNfAMB*lAsJj^K3EcCzm1KT zDU2+A5~X%ax-JJ@&7>m`T;;}(-e%gcYQtj}?ic<*gkv)X2-QJI5I0tA2`*zZRX(;6 zJ0dYfMbQ+{9Rn3T@Iu4+imx3Y%bcf2{uT4j-msZ~eO)5Z_T7NC|Nr3)|NWjomhv=E zXaVin)MY)`1QtDyO7mUCjG{5+o1jD_anyKn73uflH*ASA8rm+S=gIfgJ);>Zx*hNG z!)8DDCNOrbR#9M7Ud_1kf6BP)x^p(|_VWCJ+(WGDbYmnMLWc?O4zz#eiP3{NfP1UV z(n3vc-axE&vko^f+4nkF=XK-mnHHQ7>w05$Q}iv(kJc4O3TEvuIDM<=U9@`~WdKN* zp4e4R1ncR_kghW}>aE$@OOc~*aH5OOwB5U*Z)%{LRlhtHuigxH8KuDwvq5{3Zg{Vr zrd@)KPwVKFP2{rXho(>MTZZfkr$*alm_lltPob4N4MmhEkv`J(9NZFzA>q0Ch;!Ut zi@jS_=0%HAlN+$-IZGPi_6$)ap>Z{XQGt&@ZaJ(es!Po5*3}>R4x66WZNsjE4BVgn z>}xm=V?F#tx#e+pimNPH?Md5hV7>0pAg$K!?mpt@pXg6UW9c?gvzlNe0 z3QtIWmw$0raJkjQcbv-7Ri&eX6Ks@@EZ&53N|g7HU<;V1pkc&$3D#8k!coJ=^{=vf z-pCP;vr2#A+i#6VA?!hs6A4P@mN62XYY$#W9;MwNia~89i`=1GoFESI+%Mbrmwg*0 zbBq4^bA^XT#1MAOum)L&ARDXJ6S#G>&*72f50M1r5JAnM1p7GFIv$Kf9eVR(u$KLt z9&hQ{t^i16zL1c(tRa~?qr?lbSN;1k;%;p*#gw_BwHJRjcYPTj6>y-rw*dFTnEs95 z`%-AoPL!P16{=#RI0 zUb6#`KR|v^?6uNnY`zglZ#Wd|{*rZ(x&Hk8N6ob6mpX~e^qu5kxvh$2TLJA$M=rx zc!#ot+sS+-!O<0KR6+Lx&~zgEhCsbFY{i_DQCihspM?e z-V}HemMAvFzXR#fV~a=Xf-;tJ1edd}Mry@^=9BxON;dYr8vDEK<<{ zW~rg(ZspxuC&aJo$GTM!9_sXu(EaQJNkV9AC(ob#uA=b4*!Uf}B*@TK=*dBvKKPAF z%14J$S)s-ws9~qKsf>DseEW(ssVQ9__YNg}r9GGx3AJiZR@w_QBlGP>yYh0lQCBtf zx+G;mP+cMAg&b^7J!`SiBwC81M_r0X9kAr2y$0(Lf1gZK#>i!cbww(hn$;fLIxRf? z!AtkSZc-h76KGSGz%48Oe`8ZBHkSXeVb!TJt_VC>$m<#}(Z}!(3h631ltKb3CDMw^fTRy%Ia!b&at`^g7Ew-%WLT9(#V0OP9CE?uj62s>`GI3NA z!`$U+i<`;IQyNBkou4|-7^9^ylac-Xu!M+V5p5l0Ve?J0wTSV+$gYtoc=+Ve*OJUJ z$+uIGALW?}+M!J9+M&#bT=Hz@{R2o>NtNGu1yS({pyteyb>*sg4N`KAD?`u3F#C1y z2K4FKOAPASGZTep54PqyCG(h3?kqQQAxDSW@>T2d!n;9C8NGS;3A8YMRcL>b=<<%M zMiWf$jY;`Ojq5S{kA!?28o)v$;)5bTL<4eM-_^h4)F#eeC2Dj*S`$jl^yn#NjJOYT zx%yC5Ww@eX*zsM)P(5#wRd=0+3~&3pdIH7CxF_2iZSw@>kCyd z%M}$1p((Bidw4XNtk&`BTkU{-PG)SXIZ)yQ!Iol6u8l*SQ1^%zC72FP zLvG>_Z0SReMvB%)1@+et0S{<3hV@^SY3V~5IY(KUtTR{*^xJ^2NN{sIMD9Mr9$~(C$GLNlSpzS=fsbw-DtHb_T|{s z9OR|sx!{?F``H!gVUltY7l~dx^a(2;OUV^)7 z%@hg`8+r&xIxmzZ;Q&v0X%9P)U0SE@r@(lKP%TO(>6I_iF{?PX(bez6v8Gp!W_nd5 z<8)`1jcT)ImNZp-9rr4_1MQ|!?#8sJQx{`~7)QZ75I=DPAFD9Mt{zqFrcrXCU9MG8 zEuGcy;nZ?J#M3!3DWW?Zqv~dnN6ijlIjPfJx(#S0cs;Z=jDjKY|$w2s4*Xa1Iz953sN2Lt!Vmk|%ZwOOqj`sA--5Hiaq8!C%LV zvWZ=bxeRV(&%BffMJ_F~~*FdcjhRVNUXu)MS(S#67rDe%Ler=GS+WysC1I2=Bmbh3s6wdS}o$0 zz%H08#SPFY9JPdL6blGD$D-AaYi;X!#zqib`(XX*i<*eh+2UEPzU4}V4RlC3{<>-~ zadGA8lSm>b7Z!q;D_f9DT4i)Q_}ByElGl*Cy~zX%IzHp)@g-itZB6xM70psn z;AY8II99e6P2drgtTG5>`^|7qg`9MTp%T~|1N3tBqV}2zgow3TFAH{XPor0%=HrkXnKyxyozHlJ6 zd3}OWkl?H$l#yZqOzZbMI+lDLoH48;s10!m1!K87g;t}^+A3f3e&w{EYhVPR0Km*- zh5-ku$Z|Ss{2?4pGm(Rz!0OQb^_*N`)rW{z)^Cw_`a(_L9j=&HEJl(!4rQy1IS)>- zeTIr>hOii`gc(fgYF(cs$R8l@q{mJzpoB5`5r>|sG zBpsY}RkY(g5`bj~D>(;F8v*DyjX(#nVLSs>)XneWI&%Wo>a0u#4A?N<1SK4D}&V1oN)76 z%S>a2n3n>G`YY1>0Hvn&AMtMuI_?`5?4y3w2Hnq4Qa2YH5 zxKdfM;k467djL31Y$0kd9FCPbU=pHBp@zaIi`Xkd80;%&66zvSqsq6%aY)jZacfvw ztkWE{ZV6V2WL9e}Dvz|!d96KqVkJU@5ryp#rReeWu>mSrOJxY^tWC9wd0)$+lZc%{ zY=c4#%OSyQJvQUuy^u}s8DN8|8T%TajOuaY^)R-&8s@r9D`(Ic4NmEu)fg1f!u`xUb;9t#rM z>}cY=648@d5(9A;J)d{a^*ORdVtJrZ77!g~^lZ9@)|-ojvW#>)Jhe8$7W3mhmQh@S zU=CSO+1gSsQ+Tv=x-BD}*py_Ox@;%#hPb&tqXqyUW9jV+fonnuCyVw=?HR>dAB~Fg z^vl*~y*4|)WUW*9RC%~O1gHW~*tJb^a-j;ae2LRNo|0S2`RX>MYqGKB^_ng7YRc@! zFxg1X!VsvXkNuv^3mI`F2=x6$(pZdw=jfYt1ja3FY7a41T07FPdCqFhU6%o|Yb6Z4 zpBGa=(ao3vvhUv#*S{li|EyujXQPUV;0sa5!0Ut)>tPWyC9e0_9(=v*z`TV5OUCcx zT=w=^8#5u~7<}8Mepqln4lDv*-~g^VoV{(+*4w(q{At6d^E-Usa2`JXty++Oh~on^ z;;WHkJsk2jvh#N|?(2PLl+g!M0#z_A;(#Uy=TzL&{Ei5G9#V{JbhKV$Qmkm%5tn!CMA? z@hM=b@2DZWTQ6>&F6WCq6;~~WALiS#@{|I+ucCmD6|tBf&e;$_)%JL8$oIQ%!|Xih1v4A$=7xNO zZVz$G8;G5)rxyD+M0$20L$4yukA_D+)xmK3DMTH3Q+$N&L%qB)XwYx&s1gkh=%qGCCPwnwhbT4p%*3R)I}S#w7HK3W^E%4w z2+7ctHPx3Q97MFYB48HfD!xKKb(U^K_4)Bz(5dvwyl*R?)k;uHEYVi|{^rvh)w7}t z`tnH{v9nlVHj2ign|1an_wz0vO)*`3RaJc#;(W-Q6!P&>+@#fptCgtUSn4!@b7tW0&pE2Qj@7}f#ugu4*C)8_}AMRuz^WG zc)XDcOPQjRaGptRD^57B83B-2NKRo!j6TBAJntJPHNQG;^Oz}zt5F^kId~miK3J@l ztc-IKp6qL!?u~q?qfGP0I~$5gvq#-0;R(oLU@sYayr*QH95fnrYA*E|n%&FP@Cz`a zSdJ~(c@O^>qaO`m9IQ8sd8!L<+)GPJDrL7{4{ko2gWOZel^3!($Gjt|B&$4dtfTmBmC>V`R&&6$wpgvdmns zxcmfS%9_ZoN>F~azvLFtA(9Q5HYT#A(byGkESnt{$Tu<73$W~reB4&KF^JBsoqJ6b zS?$D7DoUgzLO-?P`V?5_ub$nf1p0mF?I)StvPomT{uYjy!w&z$t~j&en=F~hw|O(1 zlV9$arQmKTc$L)Kupwz_zA~deT+-0WX6NzFPh&d+ly*3$%#?Ca9Z9lOJsGVoQ&1HNg+)tJ_sw)%oo*DK)iU~n zvL``LqTe=r=7SwZ@LB)9|3QB5`0(B9r(iR}0nUwJss-v=dXnwMRQFYSRK1blS#^g(3@z{`=8_CGDm!LESTWig zzm1{?AG&7`uYJ;PoFO$o8RWuYsV26V{>D-iYTnvq7igWx9@w$EC*FV^vpvDl@i9yp zPIqiX@hEZF4VqzI3Y)CHhR`xKN8poL&~ak|wgbE4zR%Dm(a@?bw%(7(!^>CM!^4@J z6Z)KhoQP;WBq_Z_&<@i2t2&xq>N>b;Np2rX?yK|-!14iE2T}E|jC+=wYe~`y38g3J z8QGZquvqBaG!vw&VtdXWX5*i5*% zJP~7h{?&E|<#l{klGPaun`IgAJ4;RlbRqgJz5rmHF>MtJHbfqyyZi53?Lhj=(Ku#& z__ubmZIxzSq3F90Xur!1)Vqe6b@!ueHA!93H~jdHmaS5Q^CULso}^poy)0Op6!{^9 zWyCyyIrdBP4fkliZ%*g+J-A!6VFSRF6Liu6G^^=W>cn81>4&7(c7(6vCGSAJ zQZ|S3mb|^Wf=yJ(h~rq`iiW~|n#$+KcblIR<@|lDtm!&NBzSG-1;7#YaU+-@=xIm4 zE}edTYd~e&_%+`dIqqgFntL-FxL3!m4yTNt<(^Vt9c6F(`?9`u>$oNxoKB29<}9FE zgf)VK!*F}nW?}l95%RRk8N4^Rf8)Xf;drT4<|lUDLPj^NPMrBPL;MX&0oGCsS za3}vWcF(IPx&W6{s%zwX{UxHX2&xLGfT{d9bWP!g;Lg#etpuno$}tHoG<4Kd*=kpU z;4%y(<^yj(UlG%l-7E9z_Kh2KoQ19qT3CR@Ghr>BAgr3Vniz3LmpC4g=g|A3968yD2KD$P7v$ zx9Q8`2&qH3&y-iv0#0+jur@}k`6C%7fKbCr|tHX2&O%r?rBpg`YNy~2m+ z*L7dP$RANzVUsG_Lb>=__``6vA*xpUecuGsL+AW?BeSwyoQfDlXe8R1*R1M{0#M?M zF+m19`3<`gM{+GpgW^=UmuK*yMh3}x)7P738wL8r@(Na6%ULPgbPVTa6gh5Q(SR0f znr6kdRpe^(LVM;6Rt(Z@Lsz3EX*ry6(WZ?w>#ZRelx)N%sE+MN>5G|Z8{%@b&D+Ov zPU{shc9}%;G7l;qbonIb_1m^Qc8ez}gTC-k02G8Rl?7={9zBz8uRX2{XJQ{vZhs67avlRn| zgRtWl0Lhjet&!YC47GIm%1gdq%T24_^@!W3pCywc89X4I5pnBCZDn(%!$lOGvS*`0!AoMtqxNPFgaMR zwoW$p;8l6v%a)vaNsesED3f}$%(>zICnoE|5JwP&+0XI}JxPccd+D^gx`g`=GsUc0 z9Uad|C+_@_0%JmcObGnS@3+J^0P!tg+fUZ_w#4rk#TlJYPXJiO>SBxzs9(J;XV9d{ zmTQE1(K8EYaz9p^XLbdWudyIPJlGPo0U*)fAh-jnbfm@SYD_2+?|DJ-^P+ojG{2{6 z>HJtedEjO@j_tqZ4;Zq1t5*5cWm~W?HGP!@_f6m#btM@46cEMhhK{(yI&jG)fwL1W z^n_?o@G8a-jYt!}$H*;{0#z8lANlo!9b@!c5K8<(#lPlpE!z86Yq#>WT&2} z;;G1$pD%iNoj#Z=&kij5&V1KHIhN-h<;{HC5wD)PvkF>CzlQOEx_0;-TJ*!#&{Wzt zKcvq^SZIdop}y~iouNqtU7K7+?eIz-v_rfNM>t#i+dD$s_`M;sjGubTdP)WI*uL@xPOLHt#~T<@Yz>xt50ZoTw;a(a}lNiDN-J${gOdE zx?8LOA|tv{Mb}=TTR=LcqMqbCJkKj+@;4Mu)Cu0{`~ohix6E$g&tff)aHeUAQQ%M? zIN4uSUTzC1iMEWL*W-in1y)C`E+R8j?4_?X4&2Zv5?QdkNMz(k} zw##^Ikx`#_s>i&CO_mu@vJJ*|3ePRDl5pq$9V^>D;g0R%l>lw;ttyM6Sy`NBF{)Lr zSk)V>mZr96+aHY%vTLLt%vO-+juw6^SO_ zYGJaGeWX6W(TOQx=5oTGXOFqMMU*uZyt>MR-Y`vxW#^&)H zk0!F8f*@v6NO@Z*@Qo)+hlX40EWcj~j9dGrLaq%1;DE_%#lffXCcJ;!ZyyyZTz74Q zb2WSly6sX{`gQeToQsi1-()5EJ1nJ*kXGD`xpXr~?F#V^sxE3qSOwRSaC9x9oa~jJ zTG9`E|q zC5Qs1xh}jzb5UPYF`3N9YuMnI7xsZ41P;?@c|%w zl=OxLr6sMGR+`LStLvh)g?fA5p|xbUD;yFAMQg&!PEDYxVYDfA>oTY;CFt`cg?Li1 z0b})!9Rvw&j#*&+D2))kXLL z0+j=?7?#~_}N-qdEIP>DQaZh#F(#e0WNLzwUAj@r694VJ8?Dr5_io2X49XYsG^ zREt0$HiNI~6VV!ycvao+0v7uT$_ilKCvsC+VDNg7yG1X+eNe^3D^S==F3ByiW0T^F zH6EsH^}Uj^VPIE&m)xlmOScYR(w750>hclqH~~dM2+;%GDXT`u4zG!p((*`Hwx41M z4KB+`hfT(YA%W)Ve(n+Gu9kuXWKzxg{1ff^xNQw>w%L-)RySTk9kAS92(X0Shg^Q? zx1YXg_TLC^?h6!4mBqZ9pKhXByu|u~gF%`%`vdoaGBN3^j4l!4x?Bw4Jd)Z4^di}! zXlG1;hFvc>H?bmmu1E7Vx=%vahd!P1#ZGJOJYNbaek^$DHt`EOE|Hlij+hX>ocQFSLVu|wz`|KVl@Oa;m2k6b*mNK2Vo{~l9>Qa3@B7G7#k?)aLx;w6U ze8bBq%vF?5v>#TspEoaII!N}sRT~>bh-VWJ7Q*1qsz%|G)CFmnttbq$Ogb{~YK_=! z{{0vhlW@g!$>|}$&4E3@k`KPElW6x#tSX&dfle>o!irek$NAbDzdd2pVeNzk4&qgJ zXvNF0$R96~g0x+R1igR=Xu&X_Hc5;!Ze&C)eUTB$9wW&?$&o8Yxhm5s(S`;?{> z*F?9Gr0|!OiKA>Rq-ae=_okB6&yMR?!JDer{@iQgIn=cGxs-u^!8Q$+N&pfg2WM&Z zulHu=Uh~U>fS{=Nm0x>ACvG*4R`Dx^kJ65&Vvfj`rSCV$5>c04N26Rt2S?*kh3JKq z9(3}5T?*x*AP(X2Ukftym0XOvg~r6Ms$2x&R&#}Sz23aMGU&7sU-cFvE3Eq`NBJe84VoftWF#v7PDAp`@V zRFCS24_k~;@~R*L)eCx@Q9EYmM)Sn}HLbVMyxx%{XnMBDc-YZ<(DXDBYUt8$u5Zh} zBK~=M9cG$?_m_M61YG+#|9Vef7LfbH>(C21&aC)x$^Lg}fa#SF){RX|?-xZjSOrn# z2ZAwUF)$VB<&S;R3FhNSQOV~8w%A`V9dWyLiy zgt7G=Z4t|zU3!dh5|s(@XyS|waBr$>@=^Dspmem8)@L`Ns{xl%rGdX!R(BiC5C7Vo zXetb$oC_iXS}2x_Hy}T(hUUNbO47Q@+^4Q`h>(R-;OxCyW#eoOeC51jzxnM1yxBrp zz6}z`(=cngs6X05e79o_B7@3K|Qpe3n38Py_~ zpi?^rj!`pq!7PHGliC$`-8A^Ib?2qgJJCW+(&TfOnFGJ+@-<<~`7BR0f4oSINBq&R z2CM`0%WLg_Duw^1SPwj-{?BUl2Y=M4e+7yL1{C&&f&zjF06#xf>VdLozgNye(BNgSD`=fFbBy0HIosLl@JwCQl^s;eTnc( z3!r8G=K>zb`|bLLI0N|eFJk%s)B>oJ^M@AQzqR;HUjLsOqW<0v>1ksT_#24*U@R3HJu*A^#1o#P3%3_jq>icD@<`tqU6ICEgZrME(xX#?i^Z z%Id$_uyQGlFD-CcaiRtRdGn|K`Lq5L-rx7`vYYGH7I=eLfHRozPiUtSe~Tt;IN2^gCXmf2#D~g2@9bhzK}3nphhG%d?V7+Zq{I2?Gt*!NSn_r~dd$ zqkUOg{U=MI?Ehx@`(X%rQB?LP=CjJ*V!rec{#0W2WshH$X#9zep!K)tzZoge*LYd5 z@g?-j5_mtMp>_WW`p*UNUZTFN{_+#m*bJzt{hvAdkF{W40{#L3w6gzPztnsA_4?&0 z(+>pv!zB16rR-(nm(^c>Z(its{ny677vT8sF564^mlZvJ!h65}OW%Hn|2OXbOQM%b z{6C54Z2v;^hyMQ;UH+HwFD2!F!VlQ}6Z{L0_9g5~CH0@Mqz?ZC`^QkhOU#$Lx<4`B zyZsa9uPF!rZDo8ZVfzzR#raQ>5|)k~_Ef*wDqG^76o)j!C4 zykvT*o$!-MBko@?{b~*Zf2*YMlImrK`cEp|#D7f%Twm<|C|dWD \(.*\)$'` + if expr "$link" : '/.*' > /dev/null; then + PRG="$link" + else + PRG=`dirname "$PRG"`"/$link" + fi +done +SAVED="`pwd`" +cd "`dirname \"$PRG\"`/" >/dev/null +APP_HOME="`pwd -P`" +cd "$SAVED" >/dev/null + +APP_NAME="Gradle" +APP_BASE_NAME=`basename "$0"` + +# Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. +DEFAULT_JVM_OPTS='"-Xmx64m"' + +# Use the maximum available, or set MAX_FD != -1 to use that value. +MAX_FD="maximum" + +warn () { + echo "$*" +} + +die () { + echo + echo "$*" + echo + exit 1 +} + +# OS specific support (must be 'true' or 'false'). +cygwin=false +msys=false +darwin=false +nonstop=false +case "`uname`" in + CYGWIN* ) + cygwin=true + ;; + Darwin* ) + darwin=true + ;; + MINGW* ) + msys=true + ;; + NONSTOP* ) + nonstop=true + ;; +esac + +CLASSPATH=$APP_HOME/gradle/wrapper/gradle-wrapper.jar + +# Determine the Java command to use to start the JVM. +if [ -n "$JAVA_HOME" ] ; then + if [ -x "$JAVA_HOME/jre/sh/java" ] ; then + # IBM's JDK on AIX uses strange locations for the executables + JAVACMD="$JAVA_HOME/jre/sh/java" + else + JAVACMD="$JAVA_HOME/bin/java" + fi + if [ ! -x "$JAVACMD" ] ; then + die "ERROR: JAVA_HOME is set to an invalid directory: $JAVA_HOME + +Please set the JAVA_HOME variable in your environment to match the +location of your Java installation." + fi +else + JAVACMD="java" + which java >/dev/null 2>&1 || die "ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. + +Please set the JAVA_HOME variable in your environment to match the +location of your Java installation." +fi + +# Increase the maximum file descriptors if we can. +if [ "$cygwin" = "false" -a "$darwin" = "false" -a "$nonstop" = "false" ] ; then + MAX_FD_LIMIT=`ulimit -H -n` + if [ $? -eq 0 ] ; then + if [ "$MAX_FD" = "maximum" -o "$MAX_FD" = "max" ] ; then + MAX_FD="$MAX_FD_LIMIT" + fi + ulimit -n $MAX_FD + if [ $? -ne 0 ] ; then + warn "Could not set maximum file descriptor limit: $MAX_FD" + fi + else + warn "Could not query maximum file descriptor limit: $MAX_FD_LIMIT" + fi +fi + +# For Darwin, add options to specify how the application appears in the dock +if $darwin; then + GRADLE_OPTS="$GRADLE_OPTS \"-Xdock:name=$APP_NAME\" \"-Xdock:icon=$APP_HOME/media/gradle.icns\"" +fi + +# For Cygwin, switch paths to Windows format before running java +if $cygwin ; then + APP_HOME=`cygpath --path --mixed "$APP_HOME"` + CLASSPATH=`cygpath --path --mixed "$CLASSPATH"` + JAVACMD=`cygpath --unix "$JAVACMD"` + + # We build the pattern for arguments to be converted via cygpath + ROOTDIRSRAW=`find -L / -maxdepth 1 -mindepth 1 -type d 2>/dev/null` + SEP="" + for dir in $ROOTDIRSRAW ; do + ROOTDIRS="$ROOTDIRS$SEP$dir" + SEP="|" + done + OURCYGPATTERN="(^($ROOTDIRS))" + # Add a user-defined pattern to the cygpath arguments + if [ "$GRADLE_CYGPATTERN" != "" ] ; then + OURCYGPATTERN="$OURCYGPATTERN|($GRADLE_CYGPATTERN)" + fi + # Now convert the arguments - kludge to limit ourselves to /bin/sh + i=0 + for arg in "$@" ; do + CHECK=`echo "$arg"|egrep -c "$OURCYGPATTERN" -` + CHECK2=`echo "$arg"|egrep -c "^-"` ### Determine if an option + + if [ $CHECK -ne 0 ] && [ $CHECK2 -eq 0 ] ; then ### Added a condition + eval `echo args$i`=`cygpath --path --ignore --mixed "$arg"` + else + eval `echo args$i`="\"$arg\"" + fi + i=$((i+1)) + done + case $i in + (0) set -- ;; + (1) set -- "$args0" ;; + (2) set -- "$args0" "$args1" ;; + (3) set -- "$args0" "$args1" "$args2" ;; + (4) set -- "$args0" "$args1" "$args2" "$args3" ;; + (5) set -- "$args0" "$args1" "$args2" "$args3" "$args4" ;; + (6) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" ;; + (7) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" ;; + (8) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" ;; + (9) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" "$args8" ;; + esac +fi + +# Escape application args +save () { + for i do printf %s\\n "$i" | sed "s/'/'\\\\''/g;1s/^/'/;\$s/\$/' \\\\/" ; done + echo " " +} +APP_ARGS=$(save "$@") + +# Collect all arguments for the java command, following the shell quoting and substitution rules +eval set -- $DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS "\"-Dorg.gradle.appname=$APP_BASE_NAME\"" -classpath "\"$CLASSPATH\"" org.gradle.wrapper.GradleWrapperMain "$APP_ARGS" + +# by default we should be in the correct project dir, but when run from Finder on Mac, the cwd is wrong +if [ "$(uname)" = "Darwin" ] && [ "$HOME" = "$PWD" ]; then + cd "$(dirname "$0")" +fi + +exec "$JAVACMD" "$@" diff --git a/gradlew.bat b/gradlew.bat new file mode 100644 index 00000000..6d57edc7 --- /dev/null +++ b/gradlew.bat @@ -0,0 +1,84 @@ +@if "%DEBUG%" == "" @echo off +@rem ########################################################################## +@rem +@rem Gradle startup script for Windows +@rem +@rem ########################################################################## + +@rem Set local scope for the variables with windows NT shell +if "%OS%"=="Windows_NT" setlocal + +set DIRNAME=%~dp0 +if "%DIRNAME%" == "" set DIRNAME=. +set APP_BASE_NAME=%~n0 +set APP_HOME=%DIRNAME% + +@rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. +set DEFAULT_JVM_OPTS="-Xmx64m" + +@rem Find java.exe +if defined JAVA_HOME goto findJavaFromJavaHome + +set JAVA_EXE=java.exe +%JAVA_EXE% -version >NUL 2>&1 +if "%ERRORLEVEL%" == "0" goto init + +echo. +echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. +echo. +echo Please set the JAVA_HOME variable in your environment to match the +echo location of your Java installation. + +goto fail + +:findJavaFromJavaHome +set JAVA_HOME=%JAVA_HOME:"=% +set JAVA_EXE=%JAVA_HOME%/bin/java.exe + +if exist "%JAVA_EXE%" goto init + +echo. +echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME% +echo. +echo Please set the JAVA_HOME variable in your environment to match the +echo location of your Java installation. + +goto fail + +:init +@rem Get command-line arguments, handling Windows variants + +if not "%OS%" == "Windows_NT" goto win9xME_args + +:win9xME_args +@rem Slurp the command line arguments. +set CMD_LINE_ARGS= +set _SKIP=2 + +:win9xME_args_slurp +if "x%~1" == "x" goto execute + +set CMD_LINE_ARGS=%* + +:execute +@rem Setup the command line + +set CLASSPATH=%APP_HOME%\gradle\wrapper\gradle-wrapper.jar + +@rem Execute Gradle +"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %CMD_LINE_ARGS% + +:end +@rem End local scope for the variables with windows NT shell +if "%ERRORLEVEL%"=="0" goto mainEnd + +:fail +rem Set variable GRADLE_EXIT_CONSOLE if you need the _script_ return code instead of +rem the _cmd.exe /c_ return code! +if not "" == "%GRADLE_EXIT_CONSOLE%" exit 1 +exit /b 1 + +:mainEnd +if "%OS%"=="Windows_NT" endlocal + +:omega diff --git a/settings.gradle b/settings.gradle index 5a6bf691..1a40679a 100644 --- a/settings.gradle +++ b/settings.gradle @@ -1,5 +1,2 @@ -includeBuild('codegen') { - dependencySubstitution { - substitute module('ari4java:codegen') with project(':') - } -} +rootProject.name = 'ari4java' +include 'codegen' diff --git a/classes/ch/loway/oss/ari4java/ARI.java b/src/main/java/ch/loway/oss/ari4java/ARI.java similarity index 100% rename from classes/ch/loway/oss/ari4java/ARI.java rename to src/main/java/ch/loway/oss/ari4java/ARI.java diff --git a/classes/ch/loway/oss/ari4java/AriFactory.java b/src/main/java/ch/loway/oss/ari4java/AriFactory.java similarity index 100% rename from classes/ch/loway/oss/ari4java/AriFactory.java rename to src/main/java/ch/loway/oss/ari4java/AriFactory.java diff --git a/classes/ch/loway/oss/ari4java/AriSubscriber.java b/src/main/java/ch/loway/oss/ari4java/AriSubscriber.java similarity index 100% rename from classes/ch/loway/oss/ari4java/AriSubscriber.java rename to src/main/java/ch/loway/oss/ari4java/AriSubscriber.java diff --git a/src/main/java/ch/loway/oss/ari4java/BUILD.java b/src/main/java/ch/loway/oss/ari4java/BUILD.java new file mode 100644 index 00000000..d8580186 --- /dev/null +++ b/src/main/java/ch/loway/oss/ari4java/BUILD.java @@ -0,0 +1,31 @@ + +package ch.loway.oss.ari4java; + +import java.io.IOException; +import java.util.Properties; + +/** + * Do not hand-edit this file. + * The values below will be set by the Gradle build script. + * + * + * @author lenz + */ +public class BUILD { + + static { + String number = "x"; + try { + Properties p = new Properties(); + p.load(BUILD.class.getResourceAsStream("build.properties")); + number = p.getProperty("BUILD_NUMBER"); + } catch (IOException e) { + // oh well + } + BUILD_N = number; + } + + public static final String VERSION = BUILD.class.getPackage().getImplementationVersion(); + public static final String BUILD_N; +} + diff --git a/classes/ch/loway/oss/ari4java/tools/ARIException.java b/src/main/java/ch/loway/oss/ari4java/tools/ARIException.java similarity index 100% rename from classes/ch/loway/oss/ari4java/tools/ARIException.java rename to src/main/java/ch/loway/oss/ari4java/tools/ARIException.java diff --git a/classes/ch/loway/oss/ari4java/tools/AriAsyncHandler.java b/src/main/java/ch/loway/oss/ari4java/tools/AriAsyncHandler.java similarity index 100% rename from classes/ch/loway/oss/ari4java/tools/AriAsyncHandler.java rename to src/main/java/ch/loway/oss/ari4java/tools/AriAsyncHandler.java diff --git a/classes/ch/loway/oss/ari4java/tools/AriCallback.java b/src/main/java/ch/loway/oss/ari4java/tools/AriCallback.java similarity index 100% rename from classes/ch/loway/oss/ari4java/tools/AriCallback.java rename to src/main/java/ch/loway/oss/ari4java/tools/AriCallback.java diff --git a/classes/ch/loway/oss/ari4java/tools/BaseAriAction.java b/src/main/java/ch/loway/oss/ari4java/tools/BaseAriAction.java similarity index 100% rename from classes/ch/loway/oss/ari4java/tools/BaseAriAction.java rename to src/main/java/ch/loway/oss/ari4java/tools/BaseAriAction.java diff --git a/classes/ch/loway/oss/ari4java/tools/HttpClient.java b/src/main/java/ch/loway/oss/ari4java/tools/HttpClient.java similarity index 100% rename from classes/ch/loway/oss/ari4java/tools/HttpClient.java rename to src/main/java/ch/loway/oss/ari4java/tools/HttpClient.java diff --git a/classes/ch/loway/oss/ari4java/tools/HttpParam.java b/src/main/java/ch/loway/oss/ari4java/tools/HttpParam.java similarity index 100% rename from classes/ch/loway/oss/ari4java/tools/HttpParam.java rename to src/main/java/ch/loway/oss/ari4java/tools/HttpParam.java diff --git a/classes/ch/loway/oss/ari4java/tools/HttpResponse.java b/src/main/java/ch/loway/oss/ari4java/tools/HttpResponse.java similarity index 100% rename from classes/ch/loway/oss/ari4java/tools/HttpResponse.java rename to src/main/java/ch/loway/oss/ari4java/tools/HttpResponse.java diff --git a/classes/ch/loway/oss/ari4java/tools/HttpResponseHandler.java b/src/main/java/ch/loway/oss/ari4java/tools/HttpResponseHandler.java similarity index 100% rename from classes/ch/loway/oss/ari4java/tools/HttpResponseHandler.java rename to src/main/java/ch/loway/oss/ari4java/tools/HttpResponseHandler.java diff --git a/classes/ch/loway/oss/ari4java/tools/MessageQueue.java b/src/main/java/ch/loway/oss/ari4java/tools/MessageQueue.java similarity index 100% rename from classes/ch/loway/oss/ari4java/tools/MessageQueue.java rename to src/main/java/ch/loway/oss/ari4java/tools/MessageQueue.java diff --git a/classes/ch/loway/oss/ari4java/tools/RestException.java b/src/main/java/ch/loway/oss/ari4java/tools/RestException.java similarity index 100% rename from classes/ch/loway/oss/ari4java/tools/RestException.java rename to src/main/java/ch/loway/oss/ari4java/tools/RestException.java diff --git a/classes/ch/loway/oss/ari4java/tools/WsClient.java b/src/main/java/ch/loway/oss/ari4java/tools/WsClient.java similarity index 100% rename from classes/ch/loway/oss/ari4java/tools/WsClient.java rename to src/main/java/ch/loway/oss/ari4java/tools/WsClient.java diff --git a/classes/ch/loway/oss/ari4java/tools/WsClientAutoReconnect.java b/src/main/java/ch/loway/oss/ari4java/tools/WsClientAutoReconnect.java similarity index 100% rename from classes/ch/loway/oss/ari4java/tools/WsClientAutoReconnect.java rename to src/main/java/ch/loway/oss/ari4java/tools/WsClientAutoReconnect.java diff --git a/classes/ch/loway/oss/ari4java/tools/http/NettyHttpClient.java b/src/main/java/ch/loway/oss/ari4java/tools/http/NettyHttpClient.java similarity index 100% rename from classes/ch/loway/oss/ari4java/tools/http/NettyHttpClient.java rename to src/main/java/ch/loway/oss/ari4java/tools/http/NettyHttpClient.java diff --git a/classes/ch/loway/oss/ari4java/tools/http/NettyHttpClientHandler.java b/src/main/java/ch/loway/oss/ari4java/tools/http/NettyHttpClientHandler.java similarity index 100% rename from classes/ch/loway/oss/ari4java/tools/http/NettyHttpClientHandler.java rename to src/main/java/ch/loway/oss/ari4java/tools/http/NettyHttpClientHandler.java diff --git a/classes/ch/loway/oss/ari4java/tools/http/NettyWSClientHandler.java b/src/main/java/ch/loway/oss/ari4java/tools/http/NettyWSClientHandler.java similarity index 100% rename from classes/ch/loway/oss/ari4java/tools/http/NettyWSClientHandler.java rename to src/main/java/ch/loway/oss/ari4java/tools/http/NettyWSClientHandler.java diff --git a/classes/ch/loway/oss/ari4java/tools/tags/EventSource.java b/src/main/java/ch/loway/oss/ari4java/tools/tags/EventSource.java similarity index 100% rename from classes/ch/loway/oss/ari4java/tools/tags/EventSource.java rename to src/main/java/ch/loway/oss/ari4java/tools/tags/EventSource.java diff --git a/tests/ch/loway/oss/ari4java/ARITest.java b/src/test/java/ch/loway/oss/ari4java/ARITest.java similarity index 100% rename from tests/ch/loway/oss/ari4java/ARITest.java rename to src/test/java/ch/loway/oss/ari4java/ARITest.java diff --git a/tests/ch/loway/oss/ari4java/generated/ActionSoundsTest.java b/src/test/java/ch/loway/oss/ari4java/generated/ActionSoundsTest.java similarity index 100% rename from tests/ch/loway/oss/ari4java/generated/ActionSoundsTest.java rename to src/test/java/ch/loway/oss/ari4java/generated/ActionSoundsTest.java diff --git a/tests/ch/loway/oss/ari4java/generated/ActonBridgesTest.java b/src/test/java/ch/loway/oss/ari4java/generated/ActonBridgesTest.java similarity index 96% rename from tests/ch/loway/oss/ari4java/generated/ActonBridgesTest.java rename to src/test/java/ch/loway/oss/ari4java/generated/ActonBridgesTest.java index 13e3ad80..53a34b20 100644 --- a/tests/ch/loway/oss/ari4java/generated/ActonBridgesTest.java +++ b/src/test/java/ch/loway/oss/ari4java/generated/ActonBridgesTest.java @@ -86,8 +86,8 @@ public void generateABridge() throws RestException { /** * In this example we force the wrong result. - * The object caannot then be deserialized and we expect an exception to be thrown. - * + * The object cannot then be deserialized and we expect an exception to be thrown. + * * @throws RestException */ @@ -109,4 +109,4 @@ public void receiveWrongMessage() throws RestException { } -} \ No newline at end of file +} diff --git a/tests/ch/loway/oss/ari4java/generated/DeserializeToListOfInterfaceTest.java b/src/test/java/ch/loway/oss/ari4java/generated/DeserializeToListOfInterfaceTest.java similarity index 100% rename from tests/ch/loway/oss/ari4java/generated/DeserializeToListOfInterfaceTest.java rename to src/test/java/ch/loway/oss/ari4java/generated/DeserializeToListOfInterfaceTest.java diff --git a/tests/ch/loway/oss/ari4java/generated/EventBuilderTest.java b/src/test/java/ch/loway/oss/ari4java/generated/EventBuilderTest.java similarity index 100% rename from tests/ch/loway/oss/ari4java/generated/EventBuilderTest.java rename to src/test/java/ch/loway/oss/ari4java/generated/EventBuilderTest.java diff --git a/tests/ch/loway/oss/ari4java/sandbox/TestARI.java b/src/test/java/ch/loway/oss/ari4java/sandbox/TestARI.java similarity index 100% rename from tests/ch/loway/oss/ari4java/sandbox/TestARI.java rename to src/test/java/ch/loway/oss/ari4java/sandbox/TestARI.java diff --git a/tests/ch/loway/oss/ari4java/sandbox/TestNettyHttp.java b/src/test/java/ch/loway/oss/ari4java/sandbox/TestNettyHttp.java similarity index 100% rename from tests/ch/loway/oss/ari4java/sandbox/TestNettyHttp.java rename to src/test/java/ch/loway/oss/ari4java/sandbox/TestNettyHttp.java diff --git a/tests/ch/loway/oss/ari4java/sandbox/TestNettyWs.java b/src/test/java/ch/loway/oss/ari4java/sandbox/TestNettyWs.java similarity index 100% rename from tests/ch/loway/oss/ari4java/sandbox/TestNettyWs.java rename to src/test/java/ch/loway/oss/ari4java/sandbox/TestNettyWs.java diff --git a/tests/ch/loway/oss/ari4java/sandbox/deserializeJsonTest.java b/src/test/java/ch/loway/oss/ari4java/sandbox/deserializeJsonTest.java similarity index 100% rename from tests/ch/loway/oss/ari4java/sandbox/deserializeJsonTest.java rename to src/test/java/ch/loway/oss/ari4java/sandbox/deserializeJsonTest.java diff --git a/tests/ch/loway/oss/ari4java/sandbox/sample/ConnectAndDial.java b/src/test/java/ch/loway/oss/ari4java/sandbox/sample/ConnectAndDial.java similarity index 100% rename from tests/ch/loway/oss/ari4java/sandbox/sample/ConnectAndDial.java rename to src/test/java/ch/loway/oss/ari4java/sandbox/sample/ConnectAndDial.java From 254cdf70896f64db127aea8fa63c6cc2d8ef490b Mon Sep 17 00:00:00 2001 From: Graham Brown Date: Sun, 13 Oct 2019 11:59:03 +0200 Subject: [PATCH 046/220] javadoc changes to get rid of errors and warnings --- .../codegen/genJava/JavaInterface.java | 4 +- src/main/java/ch/loway/oss/ari4java/ARI.java | 275 ++++++++---------- .../ch/loway/oss/ari4java/AriFactory.java | 46 ++- .../ch/loway/oss/ari4java/AriSubscriber.java | 68 ++--- .../oss/ari4java/tools/ARIException.java | 21 +- .../oss/ari4java/tools/BaseAriAction.java | 32 +- .../ari4java/tools/HttpResponseHandler.java | 4 +- .../oss/ari4java/tools/MessageQueue.java | 18 +- .../oss/ari4java/tools/RestException.java | 4 + 9 files changed, 214 insertions(+), 258 deletions(-) diff --git a/codegen/src/main/java/ch/loway/oss/ari4java/codegen/genJava/JavaInterface.java b/codegen/src/main/java/ch/loway/oss/ari4java/codegen/genJava/JavaInterface.java index ea139670..f4ffecb8 100644 --- a/codegen/src/main/java/ch/loway/oss/ari4java/codegen/genJava/JavaInterface.java +++ b/codegen/src/main/java/ch/loway/oss/ari4java/codegen/genJava/JavaInterface.java @@ -32,7 +32,7 @@ public class JavaInterface { public void iKnow( String signature, String method, String comment, String sinceVersion ) { StringBuilder sb = new StringBuilder(); - JavaGen.addBanner(sb, comment, sinceVersion); + //JavaGen.addBanner(sb, comment, sinceVersion); sb.append( method ).append(";\n\n"); if ( !definitions.containsKey(signature) ) { @@ -119,7 +119,7 @@ public void removeSignature( String signature ) { public String getCodeToImplementMissingSignatures() { if ( definitions.isEmpty() ) { - return "/** No missing signatures from interface */\n"; + return "/* No missing signatures from interface */\n"; } else { StringBuilder sb = new StringBuilder(); diff --git a/src/main/java/ch/loway/oss/ari4java/ARI.java b/src/main/java/ch/loway/oss/ari4java/ARI.java index f9f3458a..c86d60b5 100644 --- a/src/main/java/ch/loway/oss/ari4java/ARI.java +++ b/src/main/java/ch/loway/oss/ari4java/ARI.java @@ -14,6 +14,7 @@ import ch.loway.oss.ari4java.generated.Application; import ch.loway.oss.ari4java.generated.Message; import ch.loway.oss.ari4java.tools.AriCallback; + import java.io.IOException; import java.net.URL; @@ -24,6 +25,7 @@ import ch.loway.oss.ari4java.tools.WsClient; import ch.loway.oss.ari4java.tools.http.NettyHttpClient; import ch.loway.oss.ari4java.tools.tags.EventSource; + import java.io.BufferedReader; import java.io.InputStream; import java.io.InputStreamReader; @@ -37,14 +39,14 @@ /** * ARI factory and helper class - * + * * @author lenz * @author mwalton */ public class ARI { private final static String ALLOWED_IN_UID = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ"; - + private String appName = ""; private String url = ""; private AriVersion version; @@ -62,40 +64,39 @@ public void setWsClient(WsClient wsClient) { this.wsClient = wsClient; } - public void setVersion(AriVersion version) { this.version = version; } - + public void setUrl(String url) { - this.url = url; + this.url = url; } - + /** * Returns the current ARI version. - * + * * @return the ARI version currently used. */ - public AriVersion getVersion() { return version; } - + /** * Returns the server and port the websocket is connected to. - * - * @return the server currently being used. - */ - public String getUrl() { - return url; - } + * + * @return the server currently being used. + */ + public String getUrl() { + return url; + } /** * Get the implementation for a given action interface - * - * @param klazz - the required action interface class + * + * @param klazz the required action interface class + * @param interface class * @return An implementation instance - * @throws ARIException + * @throws ARIException when error */ @SuppressWarnings("unchecked") public T getActionImpl(Class klazz) throws ARIException { @@ -111,28 +112,28 @@ public T getActionImpl(Class klazz) throws ARIException { action.setLiveActionList(this.liveActionList); return (T) action; } - + /** * Get the implementation for a given model interface - * - * @param klazz - the required model interface class + * + * @param klazz the required model interface class + * @param interface class * @return An implementation instance - * @throws ARIException + * @throws ARIException when error */ @SuppressWarnings("unchecked") public T getModelImpl(Class klazz) throws ARIException { return (T) buildConcreteImplementation(klazz); } - /** * Builds a concrete instance given an interface. * Note that we make no assumptions on the type of objects being built. - * @param klazz + * + * @param klazz the class * @return the concrete implementation for that interface under the ARI in use. - * @throws ARIException + * @throws ARIException when error */ - private Object buildConcreteImplementation(Class klazz) throws ARIException { if (version == null) { @@ -160,13 +161,11 @@ private Object buildConcreteImplementation(Class klazz) throws ARIException { ); } - - /** * Close an action object that is open for WebSocket interaction - * - * @param action - the action object - * @throws ARIException + * + * @param action the action object + * @throws ARIException when error */ public void closeAction(Object action) throws ARIException { if (!(action instanceof BaseAriAction)) { @@ -185,18 +184,18 @@ public void closeAction(Object action) throws ARIException { * If the version is set as IM_FEELING_LUCKY, then it will first try connecting, * will detect the current ARI version and will then connect to it. * This method uses Netty for both websocket and HTTP. - * + *

* As this sets everything up but does not do anything, we do not have any * information on whether this connection is valid or not. * - * @param url The URL of the Asterisk web server, e.g. http://10.10.5.8:8088/ - defined in http.conf - * @param user The user name (defined in ari.conf) - * @param pass The password - * @param version The reuired version + * @param url The URL of the Asterisk web server, e.g. http://10.10.5.8:8088/ - defined in http.conf + * @param app The app + * @param user The user name (defined in ari.conf) + * @param pass The password + * @param version The required version * @return a connection object * @throws ARIException If the url is invalid, or the version of ARI is not supported. */ - public static ARI build(String url, String app, String user, String pass, AriVersion version) throws ARIException { if (version == AriVersion.IM_FEELING_LUCKY) { @@ -214,7 +213,7 @@ public static ARI build(String url, String app, String user, String pass, AriVer hc.initialize(url, user, pass); ari.setHttpClient(hc); ari.setWsClient(hc); - ari.setVersion( version ); + ari.setVersion(version); ari.setUrl(url); return ari; @@ -227,56 +226,52 @@ public static ARI build(String url, String app, String user, String pass, AriVer /** * Sets the application name. - * - * @param s + * + * @param s app name */ - - public void setAppName( String s ) { + public void setAppName(String s) { this.appName = s; } - + /** * Return the current application name. - * + * * @return the appName */ - public String getAppName() { return this.appName; } - + /** * Connect and detect the current ARI version. * If the ARI version is not supported, * will raise an excepttion as we have no bindings for it. - * - * @param url - * @param user - * @param pass + * + * @param url url + * @param user user + * @param pass pass * @return the version of your server * @throws ARIException if the version is not supported */ + protected static AriVersion detectAriVersion(String url, String user, String pass) throws ARIException { - protected static AriVersion detectAriVersion( String url, String user, String pass ) throws ARIException { - - String response = doHttpGet( url + "ari/api-docs/resources.json", user, pass ); - String version = findVersionString( response ); + String response = doHttpGet(url + "ari/api-docs/resources.json", user, pass); + String version = findVersionString(response); return AriVersion.fromVersionString(version); } /** * Runs an HTTP GET and returns the text downloaded. - * + *

* \TODO does it really belong here? - * - * @param urlWithParms - * @param user - * @param pwd + * + * @param urlWithParms urlWithParms + * @param user user + * @param pwd pwd * @return The body of the HTTP request. - * @throws ARIException + * @throws ARIException when error */ - private static String doHttpGet(String urlWithParms, String user, String pwd) throws ARIException { URL url = null; final String UTF8 = "UTF-8"; @@ -308,7 +303,6 @@ private static String doHttpGet(String urlWithParms, String user, String pwd) th } - BufferedReader buffReader = new BufferedReader(new InputStreamReader(is, UTF8)); String line = null; @@ -341,35 +335,32 @@ private static String doHttpGet(String urlWithParms, String user, String pwd) th /** * Matches the version string out of the resources.json file. - * - * @param response + * + * @param response res * @return a String describing the version reported from Asterisk. - * @throws ARIException + * @throws ARIException when error */ - private static String findVersionString(String response) throws ARIException { - Pattern p = Pattern.compile(".apiVersion.:\\s*\"(.+?)\"", Pattern.MULTILINE + Pattern.CASE_INSENSITIVE ); + Pattern p = Pattern.compile(".apiVersion.:\\s*\"(.+?)\"", Pattern.MULTILINE + Pattern.CASE_INSENSITIVE); Matcher m = p.matcher(response); - if ( m.find() ) { + if (m.find()) { return m.group(1); } else { - throw new ARIException( "Cound not match apiVersion " ); + throw new ARIException("Cound not match apiVersion "); } } - /** * This operation is the opposite of a build() - to be called in the final * clause where the ARI object is built. - * + *

* In any case, it is good practice to have a way to deallocate stuff like * the websocket or any circular reference. */ - - public void cleanup() throws ARIException { + public void cleanup() { try { - unsubscribeApplication(); + unsubscribeApplication(); } catch (ARIException e) { // ignore on cleanup... } @@ -381,7 +372,7 @@ public void cleanup() throws ARIException { } } - destroy( wsClient ); + destroy(wsClient); if (wsClient != httpClient) { destroy(httpClient); } @@ -391,43 +382,43 @@ public void cleanup() throws ARIException { } /** - * unsubscribe from all resources of the stasis application - * @throws RestException + * unsubscribe from all resources of the stasis application + * + * @throws RestException when error */ private void unsubscribeApplication() throws RestException { - Application application = applications().get(appName); - // unsubscribe from all channels - for(int i = 0; i() { + events().eventWebsocket(appName, new AriCallback() { @Override - public void onSuccess(Message result) { - q.queue( result ); + public void onSuccess(Message result) { + q.queue(result); } @Override @@ -470,7 +459,7 @@ public void onFailure(RestException e) { /** * Gets us a ready to use object. - * + * * @return an Applications object. */ public ActionApplications applications() { @@ -559,22 +548,19 @@ public ActionSounds sounds() { return (ActionSounds) setupAction(version.builder().actionSounds()); } - - /** * This code REALLY smells bad. * Most likely we should either implement an interface, or push the clients * to the default builder. - * + *

* See the getActionImpl() method here. - * + *

* \TODO - * - * @param a - * @return an Action object on which we'll set the default clients. - * @throws IllegalArgumentException + * + * @param a the object + * @return an Action object on which we'll set the default clients. + * @throws IllegalArgumentException when error */ - public Object setupAction(Object a) throws IllegalArgumentException { if (a instanceof BaseAriAction) { BaseAriAction action = (BaseAriAction) a; @@ -589,21 +575,20 @@ public Object setupAction(Object a) throws IllegalArgumentException { /** * Wrapper of the Thread.sleep() to avoid exception. - * + * * @param ms how long is it going to sleep. */ - - public static void sleep( long ms ) { + public static void sleep(long ms) { try { Thread.sleep(ms); - } catch (InterruptedException e ) { - System.err.println( "Interrupted: " + e.getMessage() ); + } catch (InterruptedException e) { + System.err.println("Interrupted: " + e.getMessage()); } } /** * Generates a pseudo-random ID like "a4j.ZH6IA.IXEX0.TUIE8". - * + * * @return the UID */ public static String getUID() { @@ -621,45 +606,43 @@ public static String getUID() { return sb.toString(); } - + /** * Subscribes to an event source. - * - * @param m - * @return the Application object - * @throws RestException + * + * @param m event + * @return the Application object + * @throws RestException when error */ - - public Application subscribe( EventSource m ) throws RestException { + public Application subscribe(EventSource m) throws RestException { return subscriptions.subscribe(this, m); } - + /** * Unsubscribes from an event source. - * @param m - * @throws RestException + * + * @param m event + * @throws RestException when error */ - - public void unsubscribe( EventSource m ) throws RestException { + public void unsubscribe(EventSource m) throws RestException { subscriptions.unsubscribe(this, m); - + } - + /** * Unsubscribes from all known subscriptions. - * - * @throws RestException + * + * @throws RestException when error */ - public void unsubscribeAll() throws RestException { subscriptions.unsubscribeAll(this); } - + /** - * This interface is used to go from an interface to its concrete + * This interface is used to go from an interface to its concrete * implementation. */ public static interface ClassFactory { - public Class getImplementationFor( Class interfaceClass ); + public Class getImplementationFor(Class interfaceClass); } } diff --git a/src/main/java/ch/loway/oss/ari4java/AriFactory.java b/src/main/java/ch/loway/oss/ari4java/AriFactory.java index 042664fe..bbb6566e 100644 --- a/src/main/java/ch/loway/oss/ari4java/AriFactory.java +++ b/src/main/java/ch/loway/oss/ari4java/AriFactory.java @@ -1,50 +1,42 @@ -/* - * - */ package ch.loway.oss.ari4java; -import ch.loway.oss.ari4java.tools.ARIException; import ch.loway.oss.ari4java.tools.http.NettyHttpClient; + import java.net.URISyntaxException; /** * This class is a placeholder for convenience factory methods. - * + * * @author lenz */ public class AriFactory { /** * Your default HTTP connector through Netty (without app). - * - * @param uri - * @param login - * @param pass - * @param version + * + * @param uri uri + * @param login login + * @param pass pass + * @param version version * @return a ready-to-use connector. - * @throws ARIException - * @throws URISyntaxException + * @throws URISyntaxException when error */ - - - public static ARI nettyHttp(String uri, String login, String pass, AriVersion version) throws ARIException, URISyntaxException { + public static ARI nettyHttp(String uri, String login, String pass, AriVersion version) throws URISyntaxException { return nettyHttp(uri, login, pass, version, ""); } - + /** * This connects to an application. - * - * @param uri - * @param login - * @param pass - * @param version - * @param app + * + * @param uri uri + * @param login login + * @param pass pass + * @param version version + * @param app app * @return your ready-to-use connector. - * @throws ARIException - * @throws URISyntaxException + * @throws URISyntaxException when error */ - - public static ARI nettyHttp(String uri, String login, String pass, AriVersion version, String app) throws ARIException, URISyntaxException { + public static ARI nettyHttp(String uri, String login, String pass, AriVersion version, String app) throws URISyntaxException { ARI ari = new ARI(); ari.setAppName(app); NettyHttpClient hc = new NettyHttpClient(); @@ -57,5 +49,5 @@ public static ARI nettyHttp(String uri, String login, String pass, AriVersion ve hc.initialize(uri, login, pass); return ari; } - + } diff --git a/src/main/java/ch/loway/oss/ari4java/AriSubscriber.java b/src/main/java/ch/loway/oss/ari4java/AriSubscriber.java index a13367cb..798bd705 100644 --- a/src/main/java/ch/loway/oss/ari4java/AriSubscriber.java +++ b/src/main/java/ch/loway/oss/ari4java/AriSubscriber.java @@ -7,76 +7,68 @@ import ch.loway.oss.ari4java.generated.Endpoint; import ch.loway.oss.ari4java.tools.RestException; import ch.loway.oss.ari4java.tools.tags.EventSource; + import java.util.ArrayList; import java.util.List; /** - * * @author lenz */ public class AriSubscriber { List subscriptions = new ArrayList(); - - public Application subscribe( ARI ari, EventSource m ) throws RestException { - + + public Application subscribe(ARI ari, EventSource m) throws RestException { + String model = toModelName(m); - Application a = ari.applications().subscribe( ari.getAppName(), model ); + Application a = ari.applications().subscribe(ari.getAppName(), model); subscriptions.add(model); return a; } - - public void unsubscribe( ARI ari, EventSource m ) throws RestException { + + public void unsubscribe(ARI ari, EventSource m) throws RestException { String model = toModelName(m); - ari.applications().unsubscribe( ari.getAppName(), model); + ari.applications().unsubscribe(ari.getAppName(), model); subscriptions.remove(model); } - - public void unsubscribeAll( ARI ari) throws RestException { - for ( String model: subscriptions ) { - ari.applications().unsubscribe( ari.getAppName(), model); + + public void unsubscribeAll(ARI ari) throws RestException { + for (String model : subscriptions) { + ari.applications().unsubscribe(ari.getAppName(), model); } subscriptions.clear(); } - + /** * Return the correct string "modeltype:id". - * - * See - * channel:{channelId}, - * bridge:{bridgeId}, - * endpoint:{tech}[/{resource}, + *

+ * See + * channel:{channelId}, + * bridge:{bridgeId}, + * endpoint:{tech}[/{resource}, * deviceState:{deviceName} - * - * @param m + * + * @param m event * @return a string representation, e.g. "channel:1234" */ - - - public String toModelName( EventSource m ) { - - if ( m instanceof Bridge ) { + public String toModelName(EventSource m) { + + if (m instanceof Bridge) { Bridge b = (Bridge) m; return "bridge:" + b.getId(); - } else - if ( m instanceof Channel ) { + } else if (m instanceof Channel) { Channel b = (Channel) m; return "channel:" + b.getId(); - } else - if ( m instanceof Endpoint ) { + } else if (m instanceof Endpoint) { Endpoint b = (Endpoint) m; return "endpoint:" + b.getTechnology() + "/" + b.getResource(); - } else - if ( m instanceof DeviceState ) { + } else if (m instanceof DeviceState) { DeviceState b = (DeviceState) m; return "deviceState:" + b.getName(); - } else - - { - throw new IllegalArgumentException("Cannot subscribe model " + m.getClass().getName() ); + } else { + throw new IllegalArgumentException("Cannot subscribe model " + m.getClass().getName()); } - - + } - + } diff --git a/src/main/java/ch/loway/oss/ari4java/tools/ARIException.java b/src/main/java/ch/loway/oss/ari4java/tools/ARIException.java index f3b15019..420c9027 100644 --- a/src/main/java/ch/loway/oss/ari4java/tools/ARIException.java +++ b/src/main/java/ch/loway/oss/ari4java/tools/ARIException.java @@ -3,30 +3,17 @@ public class ARIException extends Exception { private static final long serialVersionUID = 1L; - private String message = ""; - private Throwable cause = null; public ARIException(String message) { - this.message = message; + super(message); } public ARIException(Throwable t) { - cause = t; + super(t.getMessage(), t); } - @Override - public String getMessage() { - if (cause != null) { - return cause.getMessage(); - } - return this.message; + public ARIException(String message, Throwable t) { + super(message, t); } - @Override - public synchronized Throwable getCause() { - if (cause != null) { - return cause; - } - return super.getCause(); - } } diff --git a/src/main/java/ch/loway/oss/ari4java/tools/BaseAriAction.java b/src/main/java/ch/loway/oss/ari4java/tools/BaseAriAction.java index 12585a41..7df220bd 100644 --- a/src/main/java/ch/loway/oss/ari4java/tools/BaseAriAction.java +++ b/src/main/java/ch/loway/oss/ari4java/tools/BaseAriAction.java @@ -58,7 +58,7 @@ public synchronized void forceResponse(String r) { * Initiate synchronous HTTP interaction with server * * @return Response from server - * @throws RestException + * @throws RestException when error */ protected synchronized String httpActionSync() throws RestException { if (forcedResponse != null) { @@ -124,9 +124,11 @@ protected void httpActionAsync( /** * Deserialize a type * - * @param json - * @param klazz + * @param json the json string + * @param klazz the class to deserialize to + * @param the class to deserialize to * @return Deserialized type + * @throws RestException when fail to deserialize */ public static T deserializeJson(String json, Class klazz) throws RestException { @@ -134,16 +136,18 @@ public static T deserializeJson(String json, Class klazz) throws RestExce return mapper.readValue(json, klazz); } catch (IOException e) { e.printStackTrace(System.err); - throw new RestException("Decoding JSON: " + e.getMessage()); + throw new RestException("Decoding JSON: " + e.getMessage(), e); } } /** * Deserialize a list * - * @param json - * @param klazzType - * @return Deserialized list + * @param json the json string + * @param klazzType the class to deserialize to + * @param the class to deserialize to + * @return The deserialized list + * @throws RestException when fail to deserialize */ public static T deserializeJson(String json, TypeReference klazzType) throws RestException { @@ -167,7 +171,7 @@ public static T deserializeJson(String json, TypeReference klazzType) thr * @param json Data in * @param refConcreteType The reference concrete type, should be a List<C> * @return a list of A's - * @throws RestException + * @throws RestException when fail to deserialize */ public static List deserializeJsonAsAbstractList(String json, TypeReference> refConcreteType) throws RestException { @@ -176,7 +180,7 @@ public static List deserializeJsonAsAbstractList(String json List lA = (List) lC; return lA; } catch (IOException e) { - throw new RestException("Decoding JSON list: " + e.toString()); + throw new RestException("Decoding JSON list: " + e.toString(), e); } } @@ -184,24 +188,24 @@ public static List deserializeJsonAsAbstractList(String json /** * Deserialize the event. * - * @param json - * @param klazz + * @param json the json string + * @param klazz the class to deserialize to * @return The event deserialized. - * @throws RestException + * @throws RestException when fail to deserialize */ public static Message deserializeEvent(String json, Class klazz) throws RestException { try { return (Message) mapper.readValue(json, klazz); } catch (IOException e) { e.printStackTrace(System.err); - throw new RestException("Decoding JSON event: " + e.toString()); + throw new RestException("Decoding JSON event: " + e.toString(), e); } } /** * Close the WebSocket connection * - * @throws RestException + * @throws RestException when fail */ public synchronized void disconnectWs() throws RestException { if (wsConnection != null) { diff --git a/src/main/java/ch/loway/oss/ari4java/tools/HttpResponseHandler.java b/src/main/java/ch/loway/oss/ari4java/tools/HttpResponseHandler.java index 3005de0a..1d25ec53 100644 --- a/src/main/java/ch/loway/oss/ari4java/tools/HttpResponseHandler.java +++ b/src/main/java/ch/loway/oss/ari4java/tools/HttpResponseHandler.java @@ -25,14 +25,14 @@ public interface HttpResponseHandler { /** * All went well. * - * @param response + * @param response res */ void onSuccess(String response); /** * Something bad happened. * - * @param e + * @param e exception */ void onFailure(Throwable e); diff --git a/src/main/java/ch/loway/oss/ari4java/tools/MessageQueue.java b/src/main/java/ch/loway/oss/ari4java/tools/MessageQueue.java index 5b249408..b6f3e832 100644 --- a/src/main/java/ch/loway/oss/ari4java/tools/MessageQueue.java +++ b/src/main/java/ch/loway/oss/ari4java/tools/MessageQueue.java @@ -19,9 +19,8 @@ public class MessageQueue { /** * Adds a message to the queue. * - * @param msg + * @param msg the message */ - public synchronized void queue( Message msg ) { lEvents.add(msg); } @@ -29,9 +28,8 @@ public synchronized void queue( Message msg ) { /** * Adds an error to the queue, using a specilized message pleceholder. * - * @param error + * @param error the error */ - public void queueError( String error ) { ErrorMessage err = new ErrorMessage(); err.setType(error); @@ -44,7 +42,6 @@ public void queueError( String error ) { * * @return the message just removed. */ - public synchronized Message dequeue() { if ( lEvents.isEmpty() ) { return null; @@ -60,11 +57,10 @@ public synchronized Message dequeue() { * a 'max' of ms polling every 'interval' ms. * This method in NOT synchronized - it only locks when calling dequeue(). * - * @param max - * @param interval + * @param max max + * @param interval interval * @return the message. */ - public Message dequeueMax( int max, int interval ) { long endAfter = System.currentTimeMillis() + max; while ( System.currentTimeMillis() < endAfter ) { @@ -79,10 +75,9 @@ public Message dequeueMax( int max, int interval ) { } - /* - * How many messages are queued? + /** + * @return How many messages are queued */ - public synchronized int size() { return lEvents.size(); } @@ -91,7 +86,6 @@ public synchronized int size() { * A placeholder for error messages. * */ - public static class ErrorMessage implements Message { String type = ""; diff --git a/src/main/java/ch/loway/oss/ari4java/tools/RestException.java b/src/main/java/ch/loway/oss/ari4java/tools/RestException.java index a2380319..46b2eaa1 100644 --- a/src/main/java/ch/loway/oss/ari4java/tools/RestException.java +++ b/src/main/java/ch/loway/oss/ari4java/tools/RestException.java @@ -17,4 +17,8 @@ public RestException(String s) { public RestException(Throwable cause) { super(cause); } + + public RestException(String s, Throwable cause) { + super(s, cause); + } } From 5e5940017090cd64beea44b18caa29e9b09d2a2f Mon Sep 17 00:00:00 2001 From: Graham Brown Date: Sun, 13 Oct 2019 11:59:53 +0200 Subject: [PATCH 047/220] add sources, javadoc and bintray publish --- build.gradle | 77 +++++++++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 76 insertions(+), 1 deletion(-) diff --git a/build.gradle b/build.gradle index ddbe4a11..11ba9371 100644 --- a/build.gradle +++ b/build.gradle @@ -1,6 +1,7 @@ plugins { id 'java' - id 'maven' + id 'maven-publish' + id 'com.jfrog.bintray' version '1.8.4' } group = 'ch.loway.oss.ari4java' @@ -46,3 +47,77 @@ jar { 'Implementation-Version': project.version } } + +task sourcesJar(type: Jar, dependsOn: classes) { + archiveClassifier.set('sources') + from sourceSets.main.allSource +} + +javadoc.failOnError = false +task javadocJar(type: Jar, dependsOn: javadoc) { + archiveClassifier.set('javadoc') + from javadoc.destinationDir +} + +artifacts { + archives sourcesJar + archives javadocJar +} + +def projectUrl = 'http://github.com/l3nz/ari4java' +def pomConfig = { + licenses { + license { + name 'LPGL-3.0' + } + } + developers { + developer { + name 'lenz e.' + email 'nomail@home' + } + } + scm { + url projectUrl + } +} + +publishing { + publications { + mavenPublication(MavenPublication) { + from components.java + artifact sourcesJar { + classifier "sources" + } + artifact javadocJar { + classifier "javadoc" + } + pom.withXml { + def root = asNode() + root.appendNode('description', 'Asterisk ARI interface bindings for Java') + root.appendNode('name', project.name) + root.appendNode('url', projectUrl) + root.children().last() + pomConfig + } + } + } +} + +bintray { + user = System.getenv('BINTRAY_USER') + key = System.getenv('BINTRAY_KEY') + publications = ['mavenPublication'] + publish = true + pkg { + repo = 'maven' + name = project.name + userOrg = System.getenv('BINTRAY_USER') + licenses = ['LGPL-3.0'] + vcsUrl = projectUrl + version { + name = project.version + desc = project.version + released = new Date() + } + } +} From 470d83c1c0a3339bcb1f2a826460e329d05a6acd Mon Sep 17 00:00:00 2001 From: Graham Brown Date: Sun, 13 Oct 2019 14:27:18 +0200 Subject: [PATCH 048/220] codegen tweaks --- .../loway/oss/ari4java/codegen/DefMapper.java | 24 +- .../oss/ari4java/codegen/genJava/JavaGen.java | 5 - .../codegen/genJava/JavaInterface.java | 4 +- .../ari4java/codegen/genJava/JavaPkgInfo.java | 43 ++- .../oss/ari4java/codegen/models/Action.java | 24 +- .../oss/ari4java/codegen/models/Apis.java | 68 ++--- .../codegen/models/AriBuilderInterface.java | 60 ++-- .../codegen/models/ClassTranslator.java | 106 +++---- .../oss/ari4java/codegen/models/Model.java | 74 +++-- .../ari4java/codegen/models/ModelField.java | 55 ++-- .../ari4java/codegen/models/Operation.java | 281 ++++++++---------- .../ch/loway/oss/ari4java/codegen/run.java | 1 + 12 files changed, 307 insertions(+), 438 deletions(-) diff --git a/codegen/src/main/java/ch/loway/oss/ari4java/codegen/DefMapper.java b/codegen/src/main/java/ch/loway/oss/ari4java/codegen/DefMapper.java index be393ec7..6909b81c 100644 --- a/codegen/src/main/java/ch/loway/oss/ari4java/codegen/DefMapper.java +++ b/codegen/src/main/java/ch/loway/oss/ari4java/codegen/DefMapper.java @@ -55,8 +55,6 @@ public class DefMapper { */ public void parseJsonDefinition(File f, String apiVersion, boolean modelHasEvents) throws IOException { - System.out.println("Loading as: " + f.getAbsolutePath()); - if (!vers.contains(apiVersion)) { vers.add(apiVersion); } @@ -81,22 +79,23 @@ public void parseJsonDefinition(File f, String apiVersion, boolean modelHasEvent } } - String defs = ""; + StringBuilder defs = new StringBuilder(); for (Model m : otherModels) { if (defs.length() > 0) { - defs += ", "; + defs.append(",\n"); } - defs += "@Type(value = " + m.getImplName() + ".class, name = \"" + m.getInterfaceName() + "\")\n"; + defs.append(" @Type(value = ") + .append(m.getImplName()) + .append(".class, name = \"") + .append(m.getInterfaceName()) + .append("\")"); } - typeMessage.additionalPreambleText = "" - + " @JsonTypeInfo( " - + " use = JsonTypeInfo.Id.NAME, " - + " include = JsonTypeInfo.As.PROPERTY, " - + " property = \"type\") \n " - + " @JsonSubTypes({ " + typeMessage.additionalPreambleText = " @JsonTypeInfo(use = JsonTypeInfo.Id.NAME," + + " property = \"type\", visible = true)\n " + + "@JsonSubTypes({\n" + defs - + " }) \n\n"; + + "\n})\n"; typeMessage.imports.add("com.fasterxml.jackson.annotation.JsonSubTypes"); typeMessage.imports.add("com.fasterxml.jackson.annotation.JsonSubTypes.Type"); @@ -473,7 +472,6 @@ public void clean(String apiVersion) throws IOException { } private void cleanPath(String path) throws IOException { - System.out.println("clean: " + path); File p = new File(path); p.mkdirs(); for (File f : p.listFiles()) { diff --git a/codegen/src/main/java/ch/loway/oss/ari4java/codegen/genJava/JavaGen.java b/codegen/src/main/java/ch/loway/oss/ari4java/codegen/genJava/JavaGen.java index 2c9d3153..7c612365 100644 --- a/codegen/src/main/java/ch/loway/oss/ari4java/codegen/genJava/JavaGen.java +++ b/codegen/src/main/java/ch/loway/oss/ari4java/codegen/genJava/JavaGen.java @@ -13,7 +13,6 @@ public class JavaGen { public static void addPackage(StringBuilder sb, String myPackage) { sb.append("package ").append(myPackage).append(";\n\n"); - sb.append("// ----------------------------------------------------\n") .append("// THIS CLASS WAS GENERATED AUTOMATICALLY \n") .append("// PLEASE DO NOT EDIT \n") @@ -25,7 +24,6 @@ public static void addPackage(StringBuilder sb, String myPackage) { public static void importClasses(StringBuilder sb, String myPackage, List imports) { addPackage(sb, myPackage); - for (String pkg : imports) { sb.append("import ").append(pkg).append(";\n"); } @@ -36,9 +34,7 @@ public static void importClasses(StringBuilder sb, String myPackage, List TypeMap; + public final static Map TypeMap; static { TypeMap = new HashMap(); - - TypeMap.put( "string", "String" ); - TypeMap.put( "long", "long" ); - TypeMap.put( "int", "int" ); - TypeMap.put( "double", "double" ); - TypeMap.put( "date", "Date" ); - TypeMap.put( "object", "String" ); - TypeMap.put( "boolean", "boolean" ); - TypeMap.put( "binary", "byte[]" ); - TypeMap.put( "containers", "Map" ); - - + TypeMap.put("string", "String"); + TypeMap.put("long", "long"); + TypeMap.put("int", "int"); + TypeMap.put("double", "double"); + TypeMap.put("date", "Date"); + TypeMap.put("object", "String"); + TypeMap.put("boolean", "boolean"); + TypeMap.put("binary", "byte[]"); + TypeMap.put("containers", "Map"); } String base = "ch.loway.oss.ari4java.generated"; - public String className = ""; public String apiVersion = ""; public JavaInterface minimalIf = null; - public void setPackageInfo( String classN, String apiV ) { + public void setPackageInfo(String classN, String apiV) { className = classN; apiVersion = apiV; } - public String getInterfacePackage() { return base + "." + className; } public String getBaseApiPackage() { return base + "." + apiVersion; - } - + } + public String getModelPackage() { return getBaseApiPackage() + "." + "models"; } @@ -58,7 +51,7 @@ public String getActionsPackage() { return getBaseApiPackage() + "." + "actions"; } - public String getInterfaceName() { + public String getInterfaceName() { String s = className.substring(0, 1).toUpperCase() + className.substring(1); return s; } @@ -72,20 +65,18 @@ public String getImplName() { * * @param i */ - - public void setMinimalInterface( JavaInterface i ) { + public void setMinimalInterface(JavaInterface i) { minimalIf = i; } /** * Gets a copy of the current base interface. * This is meant to have signatures removed as they are written. - * + * * @return */ - public JavaInterface getBaseInterface() { - if ( minimalIf == null ) { + if (minimalIf == null) { return new JavaInterface(); } else { return minimalIf.createScratchCopy(); diff --git a/codegen/src/main/java/ch/loway/oss/ari4java/codegen/models/Action.java b/codegen/src/main/java/ch/loway/oss/ari4java/codegen/models/Action.java index 0e01d339..cddd10c3 100644 --- a/codegen/src/main/java/ch/loway/oss/ari4java/codegen/models/Action.java +++ b/codegen/src/main/java/ch/loway/oss/ari4java/codegen/models/Action.java @@ -2,12 +2,11 @@ package ch.loway.oss.ari4java.codegen.models; import ch.loway.oss.ari4java.codegen.genJava.JavaInterface; + import java.util.ArrayList; import java.util.List; /** - * - * * @author lenz */ public class Action implements Comparable { @@ -22,8 +21,8 @@ public String toString() { StringBuilder sb = new StringBuilder(); - for ( Operation o: operations ) { - sb.append( o.toJava(this) ); + for (Operation o : operations) { + sb.append(o.toJava(this)); } return sb.toString(); @@ -31,31 +30,26 @@ public String toString() { } void registerInterfaces(JavaInterface j, String apiVersion) { - for ( Operation o: operations ) { + for (Operation o : operations) { String javaSignature = o.getSignature(); String definition = o.getDefinition(); - j.iKnow(javaSignature, definition, o.description, apiVersion ); + j.iKnow(javaSignature, definition, o.description, apiVersion); j.iKnow(o.getSignatureAsync(), o.getDefinitionAsync(), "", apiVersion); } } /** * Per ordine alfabetico. - * + * * @param o - * @return + * @return */ - + @Override public int compareTo(Action o) { - return path.compareToIgnoreCase( o.path ); + return path.compareToIgnoreCase(o.path); } - - - - - } diff --git a/codegen/src/main/java/ch/loway/oss/ari4java/codegen/models/Apis.java b/codegen/src/main/java/ch/loway/oss/ari4java/codegen/models/Apis.java index 45fffcc8..81caca25 100644 --- a/codegen/src/main/java/ch/loway/oss/ari4java/codegen/models/Apis.java +++ b/codegen/src/main/java/ch/loway/oss/ari4java/codegen/models/Apis.java @@ -4,18 +4,17 @@ import ch.loway.oss.ari4java.codegen.genJava.JavaGen; import ch.loway.oss.ari4java.codegen.genJava.JavaInterface; import ch.loway.oss.ari4java.codegen.genJava.JavaPkgInfo; + import java.util.ArrayList; import java.util.Arrays; import java.util.Collections; import java.util.List; /** - * - * * @author lenz */ public class Apis extends JavaPkgInfo { - + public List actions = new ArrayList(); @Override @@ -24,62 +23,59 @@ public String toString() { StringBuilder sb = new StringBuilder(); JavaInterface ji = getBaseInterface(); - JavaGen.importClasses(sb, getActionsPackage(), Arrays.asList( new String[] { - "ch.loway.oss.ari4java.generated.Module", - "ch.loway.oss.ari4java.generated.*", - "java.util.Date", - "java.util.List", - "java.util.Map", - "java.util.ArrayList", - "ch.loway.oss.ari4java.tools.BaseAriAction", - "ch.loway.oss.ari4java.tools.RestException", - "ch.loway.oss.ari4java.tools.AriCallback", - "ch.loway.oss.ari4java.tools.HttpParam", - "ch.loway.oss.ari4java.tools.HttpResponse", - "com.fasterxml.jackson.core.type.TypeReference", - getModelPackage() + ".*" - } )); + JavaGen.importClasses(sb, getActionsPackage(), Arrays.asList(new String[]{ + "ch.loway.oss.ari4java.generated.Module", + "ch.loway.oss.ari4java.generated.*", + "java.util.Date", + "java.util.List", + "java.util.Map", + "java.util.ArrayList", + "ch.loway.oss.ari4java.tools.BaseAriAction", + "ch.loway.oss.ari4java.tools.RestException", + "ch.loway.oss.ari4java.tools.AriCallback", + "ch.loway.oss.ari4java.tools.HttpParam", + "ch.loway.oss.ari4java.tools.HttpResponse", + "com.fasterxml.jackson.core.type.TypeReference", + getModelPackage() + ".*" + })); JavaGen.addBanner(sb, "\n" - + "Generated by: " + this.getClass().getSimpleName() + "\n" + + "Generated by: " + this.getClass().getSimpleName() + "\n" ); JavaGen.emptyLines(sb, 2); - sb.append( "public class " ).append( getImplName() ) + sb.append("public class ").append(getImplName()) .append(" extends BaseAriAction ") .append(" implements ") - .append( getInterfaceName() ) - .append( " {\n" ); - + .append(getInterfaceName()) + .append(" {\n"); + Collections.sort(actions); - - for ( Action a: actions ) { - for ( Operation o: a.operations ) { - ji.removeSignature( o.getSignature() ); - ji.removeSignature( o.getSignatureAsync() ); + for (Action a : actions) { + + for (Operation o : a.operations) { + ji.removeSignature(o.getSignature()); + ji.removeSignature(o.getSignatureAsync()); } - sb.append( a.toString() ); + sb.append(a.toString()); } - sb.append( ji.getCodeToImplementMissingSignatures() ); + sb.append(ji.getCodeToImplementMissingSignatures()); - sb.append( "};\n"); + sb.append("};\n"); return sb.toString(); } public void registerInterfaces(JavaInterface j, String interfaceVersion) { - for ( Action a: actions ) { - a.registerInterfaces( j, interfaceVersion ); + for (Action a : actions) { + a.registerInterfaces(j, interfaceVersion); } } - - - } // $Log$ diff --git a/codegen/src/main/java/ch/loway/oss/ari4java/codegen/models/AriBuilderInterface.java b/codegen/src/main/java/ch/loway/oss/ari4java/codegen/models/AriBuilderInterface.java index d93091ff..68c4c265 100644 --- a/codegen/src/main/java/ch/loway/oss/ari4java/codegen/models/AriBuilderInterface.java +++ b/codegen/src/main/java/ch/loway/oss/ari4java/codegen/models/AriBuilderInterface.java @@ -2,6 +2,7 @@ package ch.loway.oss.ari4java.codegen.models; import ch.loway.oss.ari4java.codegen.genJava.JavaGen; + import java.util.ArrayList; import java.util.Arrays; import java.util.Collections; @@ -16,72 +17,61 @@ public class AriBuilderInterface { public List knownInterfaces = new ArrayList(); - @Override public String toString() { StringBuilder sb = new StringBuilder(); - JavaGen.importClasses(sb, "ch.loway.oss.ari4java.generated", - Arrays.asList( new String[] { - "ch.loway.oss.ari4java.ARI" - } ) + JavaGen.importClasses(sb, "ch.loway.oss.ari4java.generated", + Arrays.asList(new String[]{ + "ch.loway.oss.ari4java.ARI" + }) ); - - sb.append( "public interface AriBuilder {\n" ); + sb.append("public interface AriBuilder {\n"); Collections.sort(knownInterfaces); - for ( String iface: knownInterfaces ) { - sb.append( " public abstract ").append( iface ) - .append( " " ).append( lcFirst(iface) ).append("();\n"); + for (String iface : knownInterfaces) { + sb.append(" public abstract ").append(iface) + .append(" ").append(lcFirst(iface)).append("();\n"); } - - sb.append( "\n\n" + sb.append("\n\n" + "\tpublic abstract ARI.ClassFactory getClassFactory();\n\n"); - - - sb.append( "\n}\n"); + + + sb.append("\n}\n"); return sb.toString(); } - /** * Rende minuscolo il primo carattere. - * + * * @param s * @return */ - - private static String lcFirst( String s ) { - if ( s.length() > 1 ) { - - String s1 = s.substring(0,1); + private static String lcFirst(String s) { + if (s.length() > 1) { + String s1 = s.substring(0, 1); String s2 = s.substring(1); - return s1.toLowerCase() + s2; - } else { return s; } } - public static String getMethod( String ifName, String apiVer ) { - - String s = "public " + ifName + " " + lcFirst(ifName) + "() {\n" - + " return new " + ifName + "_impl_" + apiVer + "();\n };\n\n"; - - return s; + public static String getMethod(String ifName, String apiVer) { + String s = "public " + ifName + " " + lcFirst(ifName) + "() {\n" + + " return new " + ifName + "_impl_" + apiVer + "();\n };\n\n"; + return s; } - public static String getUnimplemented( String ifName ) { - String s = "public " + ifName + " " + lcFirst(ifName) + "() {\n" - + " throw new UnsupportedOperationException();\n };\n\n"; - - return s; + public static String getUnimplemented(String ifName) { + String s = "public " + ifName + " " + lcFirst(ifName) + "() {\n" + + " throw new UnsupportedOperationException();\n };\n\n"; + return s; } } diff --git a/codegen/src/main/java/ch/loway/oss/ari4java/codegen/models/ClassTranslator.java b/codegen/src/main/java/ch/loway/oss/ari4java/codegen/models/ClassTranslator.java index 8fc31cd9..9c645e16 100644 --- a/codegen/src/main/java/ch/loway/oss/ari4java/codegen/models/ClassTranslator.java +++ b/codegen/src/main/java/ch/loway/oss/ari4java/codegen/models/ClassTranslator.java @@ -2,6 +2,7 @@ import ch.loway.oss.ari4java.codegen.genJava.JavaGen; import ch.loway.oss.ari4java.codegen.genJava.JavaPkgInfo; + import java.util.ArrayList; import java.util.Collections; import java.util.HashMap; @@ -10,95 +11,66 @@ /** * This class models a ClassTranslator. - * + * * @author lenz */ public class ClassTranslator extends JavaPkgInfo { - public Map mInterfaces; - public List imports; - + public Map mInterfaces; + public List imports; + public ClassTranslator() { super(); - mInterfaces = new HashMap(); + mInterfaces = new HashMap(); imports = new ArrayList(); className = "ClassTranslator"; - imports.add("ch.loway.oss.ari4java.ARI" ); + imports.add("ch.loway.oss.ari4java.ARI"); imports.add("ch.loway.oss.ari4java.generated.Module"); - imports.add( "ch.loway.oss.ari4java.generated.*" ); + imports.add("ch.loway.oss.ari4java.generated.*"); } - - - - public void setClass( String ifName, String implementation ) { + + public void setClass(String ifName, String implementation) { mInterfaces.put(ifName, implementation); } - - /** - * Writes an interface translator. - * - * public class SampleClassFactory implements ARI.ClassFactory { - * - * @Override - * public Class getImplementationFor(Class interfaceClass) { - * - * if ( interfaceClass.equals(ActionBridges.class) ) { - ** return ActionBridges_impl_ari_0_0_1.class; - * } else - * { - * return null; - * } - * } - * } - * - * - * @return - */ - + @Override public String toString() { - - imports.add("ch.loway.oss.ari4java.generated." + apiVersion +".models.*"); - imports.add("ch.loway.oss.ari4java.generated." + apiVersion +".actions.*"); - - StringBuilder sb = new StringBuilder(); + imports.add("ch.loway.oss.ari4java.generated." + apiVersion + ".models.*"); + imports.add("ch.loway.oss.ari4java.generated." + apiVersion + ".actions.*"); + StringBuilder sb = new StringBuilder(); JavaGen.importClasses(sb, getBaseApiPackage(), imports); + JavaGen.addBanner(sb, "This is a class translator." + "\n\n"); - JavaGen.addBanner(sb, "This is a class translator." + "\n\n" ); + List ifNames = new ArrayList(mInterfaces.keySet()); + Collections.sort(ifNames); - //sb.append(additionalPreambleText).append( "\n" ); + sb.append( + "public class " + getImplName() + " implements ARI.ClassFactory {\n" + + "\n" + + " @Override\n" + + " public Class getImplementationFor(Class interfaceClass) { \n"); - List ifNames = new ArrayList(mInterfaces.keySet()); - Collections.sort( ifNames ); - - sb.append( - "public class " + getImplName() + " implements ARI.ClassFactory {\n" + - "\n" + - " @Override\n" + - " public Class getImplementationFor(Class interfaceClass) { \n" ); - - for ( String ifName: ifNames ) { + for (String ifName : ifNames) { String impl = mInterfaces.get(ifName); - - sb.append( "\n" + + sb.append("\n" + "\tif ( interfaceClass.equals(") - .append( ifName ) - .append( ".class) ) {\n" - + "\t return (" ) - .append( impl ) - .append(".class);\n" - + "\t} else \n" ); + .append(ifName) + .append(".class) ) {\n" + + "\t return (") + .append(impl) + .append(".class);\n" + + "\t} else \n"); } - - sb.append( - " {\n" + - " return null;\n" + - " }\n" + - " }\n" + - "}\n\n" ); + + sb.append( + " {\n" + + " return null;\n" + + " }\n" + + " }\n" + + "}\n\n"); return sb.toString(); } - - + } diff --git a/codegen/src/main/java/ch/loway/oss/ari4java/codegen/models/Model.java b/codegen/src/main/java/ch/loway/oss/ari4java/codegen/models/Model.java index 274910db..ece8e96e 100644 --- a/codegen/src/main/java/ch/loway/oss/ari4java/codegen/models/Model.java +++ b/codegen/src/main/java/ch/loway/oss/ari4java/codegen/models/Model.java @@ -4,15 +4,15 @@ import ch.loway.oss.ari4java.codegen.genJava.JavaGen; import ch.loway.oss.ari4java.codegen.genJava.JavaInterface; import ch.loway.oss.ari4java.codegen.genJava.JavaPkgInfo; + import java.util.ArrayList; import java.util.Collections; import java.util.List; import java.util.Set; /** - * - * * $Id$ + * * @author lenz */ public class Model extends JavaPkgInfo { @@ -22,7 +22,7 @@ public class Model extends JavaPkgInfo { public Set subTypes; public String comesFromFile = ""; public List implementsInterafaces = new ArrayList(); - + public List imports = new ArrayList(); public List fields = new ArrayList(); @@ -30,22 +30,21 @@ public class Model extends JavaPkgInfo { public Model() { - imports.add( "java.util.Date" ); - imports.add( "java.util.List" ); - imports.add( "java.util.Map" ); - imports.add( "ch.loway.oss.ari4java.generated.Module"); - imports.add( "ch.loway.oss.ari4java.generated.*"); - imports.add( "com.fasterxml.jackson.databind.annotation.JsonDeserialize" ); + imports.add("java.util.Date"); + imports.add("java.util.List"); + imports.add("java.util.Map"); + imports.add("ch.loway.oss.ari4java.generated.Module"); + imports.add("ch.loway.oss.ari4java.generated.*"); + imports.add("com.fasterxml.jackson.databind.annotation.JsonDeserialize"); } - @Override public String toString() { Collections.sort(imports); - Collections.sort( fields ); - Collections.sort( implementsInterafaces ); + Collections.sort(fields); + Collections.sort(implementsInterafaces); JavaInterface ji = getBaseInterface(); @@ -53,54 +52,53 @@ public String toString() { JavaGen.importClasses(sb, getModelPackage(), imports); - JavaGen.addBanner(sb, description + "\n\n" + JavaGen.addBanner(sb, description + "\n\n" + "Defined in file: " + comesFromFile + "\n" + "Generated by: " + this.getClass().getSimpleName() ); - sb.append(additionalPreambleText).append( "\n" ); + sb.append(additionalPreambleText); - sb.append( "public class " ).append( getImplName() ); + sb.append("public class ").append(getImplName()); // concrete implementation for the model to be extended - if ( extendsModel.length() > 0 ) { + if (extendsModel.length() > 0) { JavaPkgInfo jpi = new JavaPkgInfo(); jpi.setPackageInfo(extendsModel, apiVersion); - sb.append( " extends " ).append( jpi.getImplName() ); + sb.append(" extends ").append(jpi.getImplName()); } - sb.append( " implements " ); + sb.append(" implements "); + - - for ( String inf: implementsInterafaces ) { - sb.append( inf ).append( ", " ); + for (String inf : implementsInterafaces) { + sb.append(inf).append(", "); } - sb.append( getInterfaceName() ).append( ", "); - sb.append( "java.io.Serializable {\n" ); - sb.append( "private static final long serialVersionUID = 1L;\n"); + sb.append(getInterfaceName()).append(", "); + sb.append("java.io.Serializable {\n"); + sb.append(" private static final long serialVersionUID = 1L;\n"); - for ( ModelField mf: fields) { - ji.removeSignature( mf.getSignatureGet() ); - ji.removeSignature( mf.getSignatureSet() ); - - sb.append( mf.toString() ); + for (ModelField mf : fields) { + ji.removeSignature(mf.getSignatureGet()); + ji.removeSignature(mf.getSignatureSet()); + + sb.append(mf.toString()); } - - sb.append( ji.getCodeToImplementMissingSignatures() ); - sb.append( "}\n" ); - return sb.toString(); + sb.append(ji.getCodeToImplementMissingSignatures()); + sb.append("}\n"); + return sb.toString(); } - public void registerInterfaces( JavaInterface j, String apiVersion ) { + public void registerInterfaces(JavaInterface j, String apiVersion) { - for ( ModelField mf: fields) { + for (ModelField mf : fields) { String signature = mf.getSignatureGet(); String declaration = mf.getDeclarationGet(); String comment = mf.comment; @@ -108,7 +106,7 @@ public void registerInterfaces( JavaInterface j, String apiVersion ) { j.iKnow(signature, declaration, comment, apiVersion); } - for ( ModelField mf: fields) { + for (ModelField mf : fields) { String signature = mf.getSignatureSet(); String declaration = mf.getDeclarationSet(); String comment = mf.comment; @@ -116,10 +114,6 @@ public void registerInterfaces( JavaInterface j, String apiVersion ) { j.iKnow(signature, declaration, comment, apiVersion); } - - - - } diff --git a/codegen/src/main/java/ch/loway/oss/ari4java/codegen/models/ModelField.java b/codegen/src/main/java/ch/loway/oss/ari4java/codegen/models/ModelField.java index 256516f1..5e854a48 100644 --- a/codegen/src/main/java/ch/loway/oss/ari4java/codegen/models/ModelField.java +++ b/codegen/src/main/java/ch/loway/oss/ari4java/codegen/models/ModelField.java @@ -4,9 +4,8 @@ import ch.loway.oss.ari4java.codegen.genJava.JavaGen; /** - * - * * $Id$ + * * @author lenz */ public class ModelField implements Comparable { @@ -14,51 +13,41 @@ public class ModelField implements Comparable { public String field = ""; public String typeInterface = ""; public String typeConcrete = ""; - public boolean required = false; + public boolean required = false; public String comment = ""; @Override public String toString() { StringBuilder sb = new StringBuilder(); - sb.append( " /** " ) - .append( comment ) - .append(" */\n"); - sb.append( " private ").append( typeInterface ).append( " ").append( field ).append( ";\n" ); + sb.append(" /** ") + .append(comment) + .append(" */\n"); + sb.append(" private ").append(typeInterface).append(" ").append(field).append(";\n"); - sb.append( getDeclarationGet() ).append(" {\n"); - sb.append( " return ").append(field).append(";\n }\n\n"); + sb.append(getDeclarationGet()).append(" {\n"); + sb.append(" return ").append(field).append(";\n }\n"); - if ( typeConcrete.startsWith("List") ) { - String innerType = typeConcrete.substring(5, typeConcrete.length()-1); - sb.append(" @JsonDeserialize( contentAs=").append(innerType).append(".class )\n"); + if (typeConcrete.startsWith("List")) { + String innerType = typeConcrete.substring(5, typeConcrete.length() - 1); + sb.append(" @JsonDeserialize( contentAs=").append(innerType).append(".class )\n"); } else { - sb.append(" @JsonDeserialize( as=").append(typeConcrete).append(".class )\n"); + sb.append(" @JsonDeserialize( as=").append(typeConcrete).append(".class )\n"); } - sb.append( getDeclarationSet() ).append( " {\n"); - sb.append( " ").append( field).append(" = val;\n }\n\n"); + sb.append(getDeclarationSet()).append(" {\n"); + sb.append(" ").append(field).append(" = val;\n }\n\n"); return sb.toString(); } - - - - - - private String getterName( String field ) { - return JavaGen.addPrefixAndCapitalize( "get", field ); + private String getterName(String field) { + return JavaGen.addPrefixAndCapitalize("get", field); } - private String setterName( String field ) { - return JavaGen.addPrefixAndCapitalize( "set", field ); + private String setterName(String field) { + return JavaGen.addPrefixAndCapitalize("set", field); } - - - - - public String getSignatureGet() { return typeInterface + " " + getterName(field); } @@ -69,23 +58,21 @@ public String getSignatureSet() { public String getDeclarationGet() { StringBuilder sb = new StringBuilder(); - sb.append( " public ").append(typeInterface).append(" ").append( getterName(field) ).append("()" ); + sb.append(" public ").append(typeInterface).append(" ").append(getterName(field)).append("()"); return sb.toString(); } public String getDeclarationSet() { StringBuilder sb = new StringBuilder(); - sb.append( " public void ").append( setterName(field) ).append("(") .append( typeInterface ).append(" val )" ); + sb.append(" public void ").append(setterName(field)).append("(").append(typeInterface).append(" val )"); return sb.toString(); } @Override public int compareTo(ModelField o) { ModelField mf2 = o; - return field.compareTo( mf2.field ); + return field.compareTo(mf2.field); } - - } diff --git a/codegen/src/main/java/ch/loway/oss/ari4java/codegen/models/Operation.java b/codegen/src/main/java/ch/loway/oss/ari4java/codegen/models/Operation.java index 7db4af3b..aef6aa92 100644 --- a/codegen/src/main/java/ch/loway/oss/ari4java/codegen/models/Operation.java +++ b/codegen/src/main/java/ch/loway/oss/ari4java/codegen/models/Operation.java @@ -2,13 +2,13 @@ package ch.loway.oss.ari4java.codegen.models; import ch.loway.oss.ari4java.codegen.genJava.JavaGen; + import java.util.ArrayList; import java.util.List; /** - * - * * $Id$ + * * @author lenz */ public class Operation { @@ -20,188 +20,144 @@ public class Operation { public String responseInterface = ""; public String description = ""; - + public List parms = new ArrayList(); public List errorCodes = new ArrayList(); - + private String toParmList(boolean withType) { StringBuilder sb = new StringBuilder(); boolean firstItem = true; - for ( Param p: parms ) { - if ( firstItem ) { + for (Param p : parms) { + if (firstItem) { firstItem = false; } else { - sb.append( ", "); + sb.append(", "); } - if (withType) - sb.append( p.javaType ).append( " " ); - sb.append( p.name ); + if (withType) + sb.append(p.javaType).append(" "); + sb.append(p.name); } return sb.toString(); } - - public String toJava( Action parent ) { + + public String toJava(Action parent) { StringBuilder sb = new StringBuilder(); - JavaGen.addBanner(sb, parent.description + "\n\n" + description ); + JavaGen.addBanner(sb, parent.description + "\n\n" + description); // search and replace URI parameters String stUri = parent.path; - for ( Param p: parms ) { - if ( p.type == ParamType.PATH ) { - stUri = stUri.replace("{" + p.name + "}", "\" + " + p.name + " + \"" ); + for (Param p : parms) { + if (p.type == ParamType.PATH) { + stUri = stUri.replace("{" + p.name + "}", "\" + " + p.name + " + \""); } } // 1. Private helper method String helperName = JavaGen.addPrefixAndCapitalize("build", nickname); - sb.append( "private void "); + sb.append("private void "); sb.append(helperName); - sb.append("("+toParmList(true)+") {\n"); - sb.append( "reset();\n"); - sb.append( "url = \"").append( stUri ).append( "\";\n"); - sb.append( "method = \"").append( method ).append( "\";\n"); - for ( Param p: parms ) { - if ( p.type == ParamType.QUERY ) { - sb.append( "lParamQuery.add( HttpParam.build( \"").append( p.name) - .append( "\", ").append( p.name ).append( ") );\n"); - } else if ( p.type == ParamType.FORM ) { - sb.append( "lParamForm.add( HttpParam.build( \"").append( p.name) - .append( "\", ").append( p.name ).append( ") );\n"); - } else if ( p.type == ParamType.BODY ) { - sb.append("lParamBody.addAll( HttpParam.build( \"").append( p.name) - .append( "\", ").append( p.name ).append( ") );\n"); - }; + sb.append("(" + toParmList(true) + ") {\n"); + sb.append("reset();\n"); + sb.append("url = \"").append(stUri).append("\";\n"); + sb.append("method = \"").append(method).append("\";\n"); + for (Param p : parms) { + if (p.type == ParamType.QUERY) { + sb.append("lParamQuery.add( HttpParam.build( \"").append(p.name) + .append("\", ").append(p.name).append(") );\n"); + } else if (p.type == ParamType.FORM) { + sb.append("lParamForm.add( HttpParam.build( \"").append(p.name) + .append("\", ").append(p.name).append(") );\n"); + } else if (p.type == ParamType.BODY) { + if (!"String".equals(p.javaType)) { + sb.append("lParamBody.addAll( HttpParam.build( \"").append(p.name) + .append("\", ").append(p.name).append(") );\n"); + } else { + sb.append("lParamBody.add( HttpParam.build( \"").append(p.name) + .append("\", ").append(p.name).append(") );\n"); + } + } } - for ( ErrorResp er: errorCodes ) { - sb.append( "lE.add( HttpResponse.build( ").append( er.code) - .append( ", \"").append( er.reason ).append( "\") );\n"); + for (ErrorResp er : errorCodes) { + sb.append("lE.add( HttpResponse.build( ").append(er.code) + .append(", \"").append(er.reason).append("\") );\n"); } if (wsUpgrade) { - sb.append( "wsUpgrade = true;\n"); + sb.append("wsUpgrade = true;\n"); } - sb.append( "}\n\n"); - + sb.append("}\n\n"); + + sb.append("@Override\n"); + sb.append(getDefinition()); + sb.append(" {\n"); if (!wsUpgrade) { - // 2. Synchronous method - sb.append( "@Override\n"); - sb.append( getDefinition() ); - sb.append( " {\n"); - // call helper - sb.append( helperName+"("+toParmList(false)+");\n"); - sb.append( "String json = httpActionSync();\n"); - if ( !responseInterface.equalsIgnoreCase("void")) { - - String deserializationType = responseConcreteClass + ".class"; - - if (responseConcreteClass.startsWith("List<") ) { - // (List) mapper.readValue( string, new TypeReference>() {}); - deserializationType = "new TypeReference<" + responseConcreteClass + ">() {}"; - sb.append( "return deserializeJsonAsAbstractList( json,\n ") - .append( deserializationType ) - .append(" ); \n"); - } else { - sb.append( "return deserializeJson( json, ") - .append( deserializationType ) - .append(" ); \n"); - } - - - - } - sb.append( "}\n\n"); + // 2. Synchronous method + sb.append(helperName + "(" + toParmList(false) + ");\n"); + sb.append("String json = httpActionSync();\n"); + if (!responseInterface.equalsIgnoreCase("void")) { + + String deserializationType = responseConcreteClass + ".class"; + + if (responseConcreteClass.startsWith("List<")) { + // (List) mapper.readValue( string, new TypeReference>() {}); + deserializationType = "new TypeReference<" + responseConcreteClass + ">() {}"; + sb.append("return deserializeJsonAsAbstractList( json,\n ") + .append(deserializationType) + .append(" ); \n"); + } else { + sb.append("return deserializeJson( json, ") + .append(deserializationType) + .append(" ); \n"); + } + } } else { - // Websocket dummy sync method - sb.append( "@Override\n"); - sb.append( getDefinition() ); - sb.append( " {\n"); - sb.append( "throw new RestException(\"No synchronous operation on WebSocket\");\n"); - sb.append( "}\n\n"); + // Websocket dummy sync method + sb.append("throw new RestException(\"No synchronous operation on WebSocket\");\n"); } - - if (!wsUpgrade) { - // 3. Asynchronous method - sb.append( "@Override\n"); - sb.append( getDefinitionAsync() ); - sb.append( " {\n"); - // call helper - sb.append( helperName+"("+toParmList(false)+");\n"); - sb.append( "httpActionAsync(callback"); - - if (responseInterface.equalsIgnoreCase("void")) { - - } else { - String deserializationType = responseConcreteClass + ".class"; - if (responseConcreteClass.startsWith("List<") ) { - // (List) mapper.readValue( string, new TypeReference>() {}); - deserializationType = "new TypeReference<" + responseConcreteClass + ">() {}"; - } - sb.append( ", "+deserializationType ); - } - sb.append( ");\n"); - } else { - // Websocket async method - sb.append( "@Override\n"); - sb.append( getDefinitionAsync() ); - sb.append( " {\n"); - // call helper - sb.append( helperName+"("+toParmList(false)+");\n"); - sb.append( "httpActionAsync(callback"); - - if (responseInterface.equalsIgnoreCase("void")) { - - } else { - String deserializationType = responseConcreteClass + ".class"; - if (responseConcreteClass.startsWith("List<") ) { - // (List) mapper.readValue( string, new TypeReference>() {}); - deserializationType = "new TypeReference<" + responseConcreteClass + ">() {}"; - } - sb.append( ", "+deserializationType ); - } - sb.append( ");\n"); + sb.append("}\n\n"); + + // 3. Asynchronous method + sb.append("@Override\n"); + sb.append(getDefinitionAsync()); + sb.append(" {\n"); + sb.append(helperName + "(" + toParmList(false) + ");\n"); + sb.append("httpActionAsync(callback"); + if (!responseInterface.equalsIgnoreCase("void")) { + String deserializationType = responseConcreteClass + ".class"; + if (responseConcreteClass.startsWith("List<")) { + // (List) mapper.readValue( string, new TypeReference>() {}); + deserializationType = "new TypeReference<" + responseConcreteClass + ">() {}"; + } + sb.append(", " + deserializationType); } - - // String url = "/aaa/" + bbb + "/ccc"; - // List lP = new ArrayList(); - // addParm( lP, "name", value ); - // List lErr = new ArrayList(); - // addParm( lErr, val, "attr"); - // String json = service.do( url, Service.POST, params, errors ); - // return (myName) jsonBuilder( json, myName.class ) - - - sb.append( "}\n\n"); + sb.append(");\n"); + sb.append("}\n\n"); return sb.toString(); } - - + + public String getSignature() { StringBuilder sb = new StringBuilder(); - sb.append( responseInterface ) - .append( " ") - .append( nickname ); + sb.append(responseInterface) + .append(" ") + .append(nickname); - for ( Param p: parms ) { - sb.append( " " ) - .append( p.javaType ); + for (Param p : parms) { + sb.append(" ").append(p.javaType); } - return sb.toString(); - } public String getSignatureAsync() { StringBuilder sb = new StringBuilder(); - sb.append("void ") - .append( nickname ); + sb.append("void ").append(nickname); - for ( Param p: parms ) { - sb.append( " " ) - .append( p.javaType ); + for (Param p : parms) { + sb.append(" ").append(p.javaType); } - - sb.append(" "+JavaGen.addAsyncCallback(responseInterface)); + + sb.append(" " + JavaGen.addAsyncCallback(responseInterface)); return sb.toString(); } @@ -209,42 +165,41 @@ public String getSignatureAsync() { public String getDefinition() { StringBuilder sb = new StringBuilder(); - sb.append( "public " ).append( responseInterface ) - .append( " " ).append( nickname ) - .append( "("); + sb.append("public ").append(responseInterface) + .append(" ").append(nickname) + .append("("); sb.append(toParmList(true)); - sb.append( ") throws RestException" ); + sb.append(") throws RestException"); return sb.toString(); } public String getDefinitionAsync() { StringBuilder sb = new StringBuilder(); - sb.append( "public void " ) - .append( nickname ) - .append( "(" ); + sb.append("public void ") + .append(nickname) + .append("("); boolean firstItem = true; - for ( Param p: parms ) { - if ( firstItem ) { + for (Param p : parms) { + if (firstItem) { firstItem = false; } else { - sb.append( ", "); + sb.append(", "); } - sb.append( p.javaType ).append( " " ).append( p.name ); + sb.append(p.javaType).append(" ").append(p.name); } if (!firstItem) - sb.append(", "); + sb.append(", "); sb.append(JavaGen.addAsyncCallback(responseInterface)); - sb.append( ")" ); + sb.append(")"); return sb.toString(); } - /** * A parameter as defined in Swagger */ @@ -253,7 +208,7 @@ public static class Param { public String name = ""; public ParamType type = ParamType.PATH; public String javaType = ""; - public boolean required = true; + public boolean required = true; } public static enum ParamType { @@ -263,20 +218,16 @@ public static enum ParamType { HEADER, FORM; - public static ParamType build( String s ) { - if ( s.equalsIgnoreCase("path") ) { + public static ParamType build(String s) { + if (s.equalsIgnoreCase("path")) { return PATH; - } else - if ( s.equalsIgnoreCase("query") ) { + } else if (s.equalsIgnoreCase("query")) { return QUERY; - } else - if ( s.equalsIgnoreCase("form") ) { + } else if (s.equalsIgnoreCase("form")) { return FORM; - } else - if ( s.equalsIgnoreCase("body") ) { + } else if (s.equalsIgnoreCase("body")) { return BODY; - } else - { + } else { throw new IllegalArgumentException("Would not know how to handle parameter of type " + s); } } diff --git a/codegen/src/main/java/ch/loway/oss/ari4java/codegen/run.java b/codegen/src/main/java/ch/loway/oss/ari4java/codegen/run.java index 09e6e609..0dd75618 100644 --- a/codegen/src/main/java/ch/loway/oss/ari4java/codegen/run.java +++ b/codegen/src/main/java/ch/loway/oss/ari4java/codegen/run.java @@ -34,6 +34,7 @@ public static void main(String[] argv) throws IOException { private static void loadAsteriskDefs(DefMapper dm, File folder) { try { String srcVer = folder.getName(); + System.out.println("Loading: " + folder.getAbsolutePath()); dm.clean(srcVer); for (File definition : folder.listFiles()) { if (definition.getName().endsWith(".json")) { From eedf7d8f974fb22f3b8f0b116f515caf07f80a6c Mon Sep 17 00:00:00 2001 From: Graham Brown Date: Sun, 13 Oct 2019 21:18:31 +0200 Subject: [PATCH 049/220] create a script to checkout and copy all previous versions of the rest-api/api-docs --- .gitignore | 2 +- codegen/getApis.sh | 28 ++++++++++++++++++++++++++++ 2 files changed, 29 insertions(+), 1 deletion(-) create mode 100755 codegen/getApis.sh diff --git a/.gitignore b/.gitignore index a89b6779..b7ed9a0f 100644 --- a/.gitignore +++ b/.gitignore @@ -24,4 +24,4 @@ build.xml # ignore generated code artifacts - they will be rebuilt by gradle as needed src/main/generated/ src/main/resources/build.properties - +codegen/tmp/ diff --git a/codegen/getApis.sh b/codegen/getApis.sh new file mode 100755 index 00000000..162b72c0 --- /dev/null +++ b/codegen/getApis.sh @@ -0,0 +1,28 @@ +#!/usr/bin/env bash + +START_DIR=`pwd` + +if [ ! -d "tmp/asterisk" ] +then + mkdir tmp + cd tmp + git clone "https://gerrit.asterisk.org/asterisk" + cd asterisk +else + cd tmp/asterisk + git pull +fi + +git log --reverse --pretty=oneline --all -- rest-api/resources.json | while read log +do + IFS=' ' read -r -a array <<< "$log" + git checkout ${array[0]} > /dev/null + VER=`cat rest-api/resources.json | jq -r '.apiVersion'` + FOLDER="${VER//./_}" + echo $FOLDER + rm -rf ${START_DIR}/src/main/resources/codegen-data/ari_${FOLDER} + mkdir -p ${START_DIR}/src/main/resources/codegen-data/ari_${FOLDER} + cp rest-api/api-docs/*.json ${START_DIR}/src/main/resources/codegen-data/ari_${FOLDER} +done + +cd ${START_DIR} From ce327633a6c27041894f758787c46e551b4ad8a7 Mon Sep 17 00:00:00 2001 From: Graham Brown Date: Sun, 13 Oct 2019 21:19:40 +0200 Subject: [PATCH 050/220] add all ARI versions --- .../codegen-data/ari_0_0_1/README.md | 1 - .../codegen-data/ari_0_0_1/applications.json | 2 +- .../codegen-data/ari_0_0_1/asterisk.json | 2 +- .../codegen-data/ari_0_0_1/bridges.json | 2 +- .../codegen-data/ari_0_0_1/channels.json | 2 +- .../codegen-data/ari_0_0_1/deviceStates.json | 2 +- .../codegen-data/ari_0_0_1/endpoints.json | 2 +- .../codegen-data/ari_0_0_1/events.json | 2 +- .../codegen-data/ari_0_0_1/playbacks.json | 2 +- .../codegen-data/ari_0_0_1/recordings.json | 2 +- .../codegen-data/ari_0_0_1/sounds.json | 2 +- .../codegen-data/ari_1_0_0/applications.json | 2 +- .../codegen-data/ari_1_0_0/asterisk.json | 2 +- .../codegen-data/ari_1_0_0/bridges.json | 2 +- .../codegen-data/ari_1_0_0/channels.json | 2 +- .../codegen-data/ari_1_0_0/deviceStates.json | 2 +- .../codegen-data/ari_1_0_0/endpoints.json | 2 +- .../codegen-data/ari_1_0_0/events.json | 2 +- .../codegen-data/ari_1_0_0/mailboxes.json | 134 ++ .../codegen-data/ari_1_0_0/playbacks.json | 2 +- .../codegen-data/ari_1_0_0/recordings.json | 2 +- .../codegen-data/ari_1_0_0/sounds.json | 2 +- .../codegen-data/ari_1_10_0/applications.json | 2 +- .../codegen-data/ari_1_10_0/asterisk.json | 2 +- .../codegen-data/ari_1_10_0/bridges.json | 96 +- .../codegen-data/ari_1_10_0/channels.json | 206 +- .../codegen-data/ari_1_10_0/deviceStates.json | 2 +- .../codegen-data/ari_1_10_0/endpoints.json | 2 +- .../codegen-data/ari_1_10_0/events.json | 34 +- .../codegen-data/ari_1_10_0/mailboxes.json | 2 +- .../codegen-data/ari_1_10_0/playbacks.json | 12 +- .../codegen-data/ari_1_10_0/recordings.json | 34 +- .../codegen-data/ari_1_10_0/sounds.json | 2 +- .../codegen-data/ari_1_10_1/applications.json | 223 ++ .../codegen-data/ari_1_10_1/asterisk.json | 725 ++++++ .../codegen-data/ari_1_10_1/bridges.json | 743 ++++++ .../codegen-data/ari_1_10_1/channels.json | 1621 +++++++++++++ .../codegen-data/ari_1_10_1/deviceStates.json | 151 ++ .../codegen-data/ari_1_10_1/endpoints.json | 279 +++ .../codegen-data/ari_1_10_1/events.json | 903 ++++++++ .../codegen-data/ari_1_10_1/mailboxes.json | 134 ++ .../codegen-data/ari_1_10_1/playbacks.json | 155 ++ .../codegen-data/ari_1_10_1/recordings.json | 378 +++ .../codegen-data/ari_1_10_1/sounds.json | 99 + .../codegen-data/ari_1_10_2/applications.json | 223 ++ .../codegen-data/ari_1_10_2/asterisk.json | 725 ++++++ .../codegen-data/ari_1_10_2/bridges.json | 743 ++++++ .../codegen-data/ari_1_10_2/channels.json | 1825 +++++++++++++++ .../codegen-data/ari_1_10_2/deviceStates.json | 151 ++ .../codegen-data/ari_1_10_2/endpoints.json | 279 +++ .../codegen-data/ari_1_10_2/events.json | 903 ++++++++ .../codegen-data/ari_1_10_2/mailboxes.json | 134 ++ .../codegen-data/ari_1_10_2/playbacks.json | 155 ++ .../codegen-data/ari_1_10_2/recordings.json | 378 +++ .../codegen-data/ari_1_10_2/sounds.json | 99 + .../codegen-data/ari_1_1_0/applications.json | 172 ++ .../codegen-data/ari_1_1_0/asterisk.json | 259 +++ .../codegen-data/ari_1_1_0/bridges.json | 531 +++++ .../codegen-data/ari_1_1_0/channels.json | 1152 ++++++++++ .../codegen-data/ari_1_1_0/deviceStates.json | 151 ++ .../codegen-data/ari_1_1_0/endpoints.json | 117 + .../codegen-data/ari_1_1_0/events.json | 577 +++++ .../codegen-data/ari_1_1_0/mailboxes.json | 134 ++ .../codegen-data/ari_1_1_0/playbacks.json | 155 ++ .../codegen-data/ari_1_1_0/recordings.json | 326 +++ .../codegen-data/ari_1_1_0/sounds.json | 99 + .../codegen-data/ari_1_2_0/applications.json | 172 ++ .../codegen-data/ari_1_2_0/asterisk.json | 259 +++ .../codegen-data/ari_1_2_0/bridges.json | 565 +++++ .../codegen-data/ari_1_2_0/channels.json | 1456 ++++++++++++ .../codegen-data/ari_1_2_0/deviceStates.json | 151 ++ .../codegen-data/ari_1_2_0/endpoints.json | 117 + .../codegen-data/ari_1_2_0/events.json | 577 +++++ .../codegen-data/ari_1_2_0/mailboxes.json | 134 ++ .../codegen-data/ari_1_2_0/playbacks.json | 155 ++ .../codegen-data/ari_1_2_0/recordings.json | 331 +++ .../codegen-data/ari_1_2_0/sounds.json | 99 + .../codegen-data/ari_1_3_0/applications.json | 172 ++ .../codegen-data/ari_1_3_0/asterisk.json | 259 +++ .../codegen-data/ari_1_3_0/bridges.json | 656 ++++++ .../codegen-data/ari_1_3_0/channels.json | 1456 ++++++++++++ .../codegen-data/ari_1_3_0/deviceStates.json | 151 ++ .../codegen-data/ari_1_3_0/endpoints.json | 117 + .../codegen-data/ari_1_3_0/events.json | 647 ++++++ .../codegen-data/ari_1_3_0/mailboxes.json | 134 ++ .../codegen-data/ari_1_3_0/playbacks.json | 155 ++ .../codegen-data/ari_1_3_0/recordings.json | 331 +++ .../codegen-data/ari_1_3_0/sounds.json | 99 + .../codegen-data/ari_1_4_0/applications.json | 172 ++ .../codegen-data/ari_1_4_0/asterisk.json | 259 +++ .../codegen-data/ari_1_4_0/bridges.json | 656 ++++++ .../codegen-data/ari_1_4_0/channels.json | 1456 ++++++++++++ .../codegen-data/ari_1_4_0/deviceStates.json | 151 ++ .../codegen-data/ari_1_4_0/endpoints.json | 117 + .../codegen-data/ari_1_4_0/events.json | 676 ++++++ .../codegen-data/ari_1_4_0/mailboxes.json | 134 ++ .../codegen-data/ari_1_4_0/playbacks.json | 155 ++ .../codegen-data/ari_1_4_0/recordings.json | 331 +++ .../codegen-data/ari_1_4_0/sounds.json | 99 + .../codegen-data/ari_1_5_0/applications.json | 4 +- .../codegen-data/ari_1_5_0/asterisk.json | 4 +- .../codegen-data/ari_1_5_0/bridges.json | 4 +- .../codegen-data/ari_1_5_0/channels.json | 4 +- .../codegen-data/ari_1_5_0/deviceStates.json | 4 +- .../codegen-data/ari_1_5_0/endpoints.json | 4 +- .../codegen-data/ari_1_5_0/events.json | 12 +- .../codegen-data/ari_1_5_0/mailboxes.json | 4 +- .../codegen-data/ari_1_5_0/playbacks.json | 4 +- .../codegen-data/ari_1_5_0/recordings.json | 4 +- .../codegen-data/ari_1_5_0/sounds.json | 4 +- .../codegen-data/ari_1_6_0/applications.json | 2 +- .../codegen-data/ari_1_6_0/asterisk.json | 2 +- .../codegen-data/ari_1_6_0/bridges.json | 2 +- .../codegen-data/ari_1_6_0/channels.json | 2 +- .../codegen-data/ari_1_6_0/deviceStates.json | 2 +- .../codegen-data/ari_1_6_0/endpoints.json | 2 +- .../codegen-data/ari_1_6_0/events.json | 2 +- .../codegen-data/ari_1_6_0/mailboxes.json | 2 +- .../codegen-data/ari_1_6_0/playbacks.json | 2 +- .../codegen-data/ari_1_6_0/recordings.json | 2 +- .../codegen-data/ari_1_6_0/sounds.json | 2 +- .../codegen-data/ari_1_7_0/applications.json | 2 +- .../codegen-data/ari_1_7_0/asterisk.json | 2 +- .../codegen-data/ari_1_7_0/bridges.json | 6 +- .../codegen-data/ari_1_7_0/channels.json | 28 +- .../codegen-data/ari_1_7_0/deviceStates.json | 2 +- .../codegen-data/ari_1_7_0/endpoints.json | 2 +- .../codegen-data/ari_1_7_0/events.json | 2 +- .../codegen-data/ari_1_7_0/mailboxes.json | 2 +- .../codegen-data/ari_1_7_0/playbacks.json | 2 +- .../codegen-data/ari_1_7_0/recordings.json | 2 +- .../codegen-data/ari_1_7_0/sounds.json | 2 +- .../codegen-data/ari_2_0_0/README.md | 2 - .../codegen-data/ari_2_0_0/channels.json | 3 +- .../codegen-data/ari_3_0_0/bridges.json | 4 +- .../codegen-data/ari_4_0_0/README.md | 1 - .../codegen-data/ari_4_0_1/applications.json | 223 ++ .../codegen-data/ari_4_0_1/asterisk.json | 725 ++++++ .../codegen-data/ari_4_0_1/bridges.json | 765 ++++++ .../codegen-data/ari_4_0_1/channels.json | 1835 +++++++++++++++ .../codegen-data/ari_4_0_1/deviceStates.json | 154 ++ .../codegen-data/ari_4_0_1/endpoints.json | 279 +++ .../codegen-data/ari_4_0_1/events.json | 918 ++++++++ .../codegen-data/ari_4_0_1/mailboxes.json | 137 ++ .../codegen-data/ari_4_0_1/playbacks.json | 164 ++ .../codegen-data/ari_4_0_1/recordings.json | 413 ++++ .../codegen-data/ari_4_0_1/sounds.json | 99 + .../codegen-data/ari_4_0_2/applications.json | 223 ++ .../codegen-data/ari_4_0_2/asterisk.json | 725 ++++++ .../codegen-data/ari_4_0_2/bridges.json | 765 ++++++ .../codegen-data/ari_4_0_2/channels.json | 2039 ++++++++++++++++ .../codegen-data/ari_4_0_2/deviceStates.json | 154 ++ .../codegen-data/ari_4_0_2/endpoints.json | 279 +++ .../codegen-data/ari_4_0_2/events.json | 918 ++++++++ .../codegen-data/ari_4_0_2/mailboxes.json | 137 ++ .../codegen-data/ari_4_0_2/playbacks.json | 164 ++ .../codegen-data/ari_4_0_2/recordings.json | 413 ++++ .../codegen-data/ari_4_0_2/sounds.json | 99 + .../codegen-data/ari_5_0_0/applications.json | 223 ++ .../codegen-data/ari_5_0_0/asterisk.json | 725 ++++++ .../codegen-data/ari_5_0_0/bridges.json | 765 ++++++ .../codegen-data/ari_5_0_0/channels.json | 2046 +++++++++++++++++ .../codegen-data/ari_5_0_0/deviceStates.json | 154 ++ .../codegen-data/ari_5_0_0/endpoints.json | 279 +++ .../codegen-data/ari_5_0_0/events.json | 918 ++++++++ .../codegen-data/ari_5_0_0/mailboxes.json | 137 ++ .../codegen-data/ari_5_0_0/playbacks.json | 164 ++ .../codegen-data/ari_5_0_0/recordings.json | 413 ++++ .../codegen-data/ari_5_0_0/sounds.json | 99 + .../codegen-data/ari_6_0_0/applications.json | 223 ++ .../codegen-data/ari_6_0_0/asterisk.json | 725 ++++++ .../codegen-data/ari_6_0_0/bridges.json | 765 ++++++ .../codegen-data/ari_6_0_0/channels.json | 2046 +++++++++++++++++ .../codegen-data/ari_6_0_0/deviceStates.json | 154 ++ .../codegen-data/ari_6_0_0/endpoints.json | 279 +++ .../codegen-data/ari_6_0_0/events.json | 918 ++++++++ .../codegen-data/ari_6_0_0/mailboxes.json | 137 ++ .../codegen-data/ari_6_0_0/playbacks.json | 164 ++ .../codegen-data/ari_6_0_0/recordings.json | 413 ++++ .../codegen-data/ari_6_0_0/sounds.json | 99 + 180 files changed, 50925 insertions(+), 352 deletions(-) delete mode 100644 codegen/src/main/resources/codegen-data/ari_0_0_1/README.md create mode 100644 codegen/src/main/resources/codegen-data/ari_1_0_0/mailboxes.json create mode 100644 codegen/src/main/resources/codegen-data/ari_1_10_1/applications.json create mode 100644 codegen/src/main/resources/codegen-data/ari_1_10_1/asterisk.json create mode 100644 codegen/src/main/resources/codegen-data/ari_1_10_1/bridges.json create mode 100644 codegen/src/main/resources/codegen-data/ari_1_10_1/channels.json create mode 100644 codegen/src/main/resources/codegen-data/ari_1_10_1/deviceStates.json create mode 100644 codegen/src/main/resources/codegen-data/ari_1_10_1/endpoints.json create mode 100644 codegen/src/main/resources/codegen-data/ari_1_10_1/events.json create mode 100644 codegen/src/main/resources/codegen-data/ari_1_10_1/mailboxes.json create mode 100644 codegen/src/main/resources/codegen-data/ari_1_10_1/playbacks.json create mode 100644 codegen/src/main/resources/codegen-data/ari_1_10_1/recordings.json create mode 100644 codegen/src/main/resources/codegen-data/ari_1_10_1/sounds.json create mode 100644 codegen/src/main/resources/codegen-data/ari_1_10_2/applications.json create mode 100644 codegen/src/main/resources/codegen-data/ari_1_10_2/asterisk.json create mode 100644 codegen/src/main/resources/codegen-data/ari_1_10_2/bridges.json create mode 100644 codegen/src/main/resources/codegen-data/ari_1_10_2/channels.json create mode 100644 codegen/src/main/resources/codegen-data/ari_1_10_2/deviceStates.json create mode 100644 codegen/src/main/resources/codegen-data/ari_1_10_2/endpoints.json create mode 100644 codegen/src/main/resources/codegen-data/ari_1_10_2/events.json create mode 100644 codegen/src/main/resources/codegen-data/ari_1_10_2/mailboxes.json create mode 100644 codegen/src/main/resources/codegen-data/ari_1_10_2/playbacks.json create mode 100644 codegen/src/main/resources/codegen-data/ari_1_10_2/recordings.json create mode 100644 codegen/src/main/resources/codegen-data/ari_1_10_2/sounds.json create mode 100644 codegen/src/main/resources/codegen-data/ari_1_1_0/applications.json create mode 100644 codegen/src/main/resources/codegen-data/ari_1_1_0/asterisk.json create mode 100644 codegen/src/main/resources/codegen-data/ari_1_1_0/bridges.json create mode 100644 codegen/src/main/resources/codegen-data/ari_1_1_0/channels.json create mode 100644 codegen/src/main/resources/codegen-data/ari_1_1_0/deviceStates.json create mode 100644 codegen/src/main/resources/codegen-data/ari_1_1_0/endpoints.json create mode 100644 codegen/src/main/resources/codegen-data/ari_1_1_0/events.json create mode 100644 codegen/src/main/resources/codegen-data/ari_1_1_0/mailboxes.json create mode 100644 codegen/src/main/resources/codegen-data/ari_1_1_0/playbacks.json create mode 100644 codegen/src/main/resources/codegen-data/ari_1_1_0/recordings.json create mode 100644 codegen/src/main/resources/codegen-data/ari_1_1_0/sounds.json create mode 100644 codegen/src/main/resources/codegen-data/ari_1_2_0/applications.json create mode 100644 codegen/src/main/resources/codegen-data/ari_1_2_0/asterisk.json create mode 100644 codegen/src/main/resources/codegen-data/ari_1_2_0/bridges.json create mode 100644 codegen/src/main/resources/codegen-data/ari_1_2_0/channels.json create mode 100644 codegen/src/main/resources/codegen-data/ari_1_2_0/deviceStates.json create mode 100644 codegen/src/main/resources/codegen-data/ari_1_2_0/endpoints.json create mode 100644 codegen/src/main/resources/codegen-data/ari_1_2_0/events.json create mode 100644 codegen/src/main/resources/codegen-data/ari_1_2_0/mailboxes.json create mode 100644 codegen/src/main/resources/codegen-data/ari_1_2_0/playbacks.json create mode 100644 codegen/src/main/resources/codegen-data/ari_1_2_0/recordings.json create mode 100644 codegen/src/main/resources/codegen-data/ari_1_2_0/sounds.json create mode 100644 codegen/src/main/resources/codegen-data/ari_1_3_0/applications.json create mode 100644 codegen/src/main/resources/codegen-data/ari_1_3_0/asterisk.json create mode 100644 codegen/src/main/resources/codegen-data/ari_1_3_0/bridges.json create mode 100644 codegen/src/main/resources/codegen-data/ari_1_3_0/channels.json create mode 100644 codegen/src/main/resources/codegen-data/ari_1_3_0/deviceStates.json create mode 100644 codegen/src/main/resources/codegen-data/ari_1_3_0/endpoints.json create mode 100644 codegen/src/main/resources/codegen-data/ari_1_3_0/events.json create mode 100644 codegen/src/main/resources/codegen-data/ari_1_3_0/mailboxes.json create mode 100644 codegen/src/main/resources/codegen-data/ari_1_3_0/playbacks.json create mode 100644 codegen/src/main/resources/codegen-data/ari_1_3_0/recordings.json create mode 100644 codegen/src/main/resources/codegen-data/ari_1_3_0/sounds.json create mode 100644 codegen/src/main/resources/codegen-data/ari_1_4_0/applications.json create mode 100644 codegen/src/main/resources/codegen-data/ari_1_4_0/asterisk.json create mode 100644 codegen/src/main/resources/codegen-data/ari_1_4_0/bridges.json create mode 100644 codegen/src/main/resources/codegen-data/ari_1_4_0/channels.json create mode 100644 codegen/src/main/resources/codegen-data/ari_1_4_0/deviceStates.json create mode 100644 codegen/src/main/resources/codegen-data/ari_1_4_0/endpoints.json create mode 100644 codegen/src/main/resources/codegen-data/ari_1_4_0/events.json create mode 100644 codegen/src/main/resources/codegen-data/ari_1_4_0/mailboxes.json create mode 100644 codegen/src/main/resources/codegen-data/ari_1_4_0/playbacks.json create mode 100644 codegen/src/main/resources/codegen-data/ari_1_4_0/recordings.json create mode 100644 codegen/src/main/resources/codegen-data/ari_1_4_0/sounds.json delete mode 100644 codegen/src/main/resources/codegen-data/ari_2_0_0/README.md delete mode 100644 codegen/src/main/resources/codegen-data/ari_4_0_0/README.md create mode 100644 codegen/src/main/resources/codegen-data/ari_4_0_1/applications.json create mode 100644 codegen/src/main/resources/codegen-data/ari_4_0_1/asterisk.json create mode 100644 codegen/src/main/resources/codegen-data/ari_4_0_1/bridges.json create mode 100644 codegen/src/main/resources/codegen-data/ari_4_0_1/channels.json create mode 100644 codegen/src/main/resources/codegen-data/ari_4_0_1/deviceStates.json create mode 100644 codegen/src/main/resources/codegen-data/ari_4_0_1/endpoints.json create mode 100644 codegen/src/main/resources/codegen-data/ari_4_0_1/events.json create mode 100644 codegen/src/main/resources/codegen-data/ari_4_0_1/mailboxes.json create mode 100644 codegen/src/main/resources/codegen-data/ari_4_0_1/playbacks.json create mode 100644 codegen/src/main/resources/codegen-data/ari_4_0_1/recordings.json create mode 100644 codegen/src/main/resources/codegen-data/ari_4_0_1/sounds.json create mode 100644 codegen/src/main/resources/codegen-data/ari_4_0_2/applications.json create mode 100644 codegen/src/main/resources/codegen-data/ari_4_0_2/asterisk.json create mode 100644 codegen/src/main/resources/codegen-data/ari_4_0_2/bridges.json create mode 100644 codegen/src/main/resources/codegen-data/ari_4_0_2/channels.json create mode 100644 codegen/src/main/resources/codegen-data/ari_4_0_2/deviceStates.json create mode 100644 codegen/src/main/resources/codegen-data/ari_4_0_2/endpoints.json create mode 100644 codegen/src/main/resources/codegen-data/ari_4_0_2/events.json create mode 100644 codegen/src/main/resources/codegen-data/ari_4_0_2/mailboxes.json create mode 100644 codegen/src/main/resources/codegen-data/ari_4_0_2/playbacks.json create mode 100644 codegen/src/main/resources/codegen-data/ari_4_0_2/recordings.json create mode 100644 codegen/src/main/resources/codegen-data/ari_4_0_2/sounds.json create mode 100644 codegen/src/main/resources/codegen-data/ari_5_0_0/applications.json create mode 100644 codegen/src/main/resources/codegen-data/ari_5_0_0/asterisk.json create mode 100644 codegen/src/main/resources/codegen-data/ari_5_0_0/bridges.json create mode 100644 codegen/src/main/resources/codegen-data/ari_5_0_0/channels.json create mode 100644 codegen/src/main/resources/codegen-data/ari_5_0_0/deviceStates.json create mode 100644 codegen/src/main/resources/codegen-data/ari_5_0_0/endpoints.json create mode 100644 codegen/src/main/resources/codegen-data/ari_5_0_0/events.json create mode 100644 codegen/src/main/resources/codegen-data/ari_5_0_0/mailboxes.json create mode 100644 codegen/src/main/resources/codegen-data/ari_5_0_0/playbacks.json create mode 100644 codegen/src/main/resources/codegen-data/ari_5_0_0/recordings.json create mode 100644 codegen/src/main/resources/codegen-data/ari_5_0_0/sounds.json create mode 100644 codegen/src/main/resources/codegen-data/ari_6_0_0/applications.json create mode 100644 codegen/src/main/resources/codegen-data/ari_6_0_0/asterisk.json create mode 100644 codegen/src/main/resources/codegen-data/ari_6_0_0/bridges.json create mode 100644 codegen/src/main/resources/codegen-data/ari_6_0_0/channels.json create mode 100644 codegen/src/main/resources/codegen-data/ari_6_0_0/deviceStates.json create mode 100644 codegen/src/main/resources/codegen-data/ari_6_0_0/endpoints.json create mode 100644 codegen/src/main/resources/codegen-data/ari_6_0_0/events.json create mode 100644 codegen/src/main/resources/codegen-data/ari_6_0_0/mailboxes.json create mode 100644 codegen/src/main/resources/codegen-data/ari_6_0_0/playbacks.json create mode 100644 codegen/src/main/resources/codegen-data/ari_6_0_0/recordings.json create mode 100644 codegen/src/main/resources/codegen-data/ari_6_0_0/sounds.json diff --git a/codegen/src/main/resources/codegen-data/ari_0_0_1/README.md b/codegen/src/main/resources/codegen-data/ari_0_0_1/README.md deleted file mode 100644 index bf909c7e..00000000 --- a/codegen/src/main/resources/codegen-data/ari_0_0_1/README.md +++ /dev/null @@ -1 +0,0 @@ -Snapshot taken from Asterisk 12 beta 2 - November 25, 2013 diff --git a/codegen/src/main/resources/codegen-data/ari_0_0_1/applications.json b/codegen/src/main/resources/codegen-data/ari_0_0_1/applications.json index 4eaec41a..cd27d586 100644 --- a/codegen/src/main/resources/codegen-data/ari_0_0_1/applications.json +++ b/codegen/src/main/resources/codegen-data/ari_0_0_1/applications.json @@ -1,7 +1,7 @@ { "_copyright": "Copyright (C) 2013, Digium, Inc.", "_author": "David M. Lee, II ", - "_svn_revision": "$Revision: 403134 $", + "_svn_revision": "$Revision$", "apiVersion": "0.0.1", "swaggerVersion": "1.1", "basePath": "http://localhost:8088/stasis", diff --git a/codegen/src/main/resources/codegen-data/ari_0_0_1/asterisk.json b/codegen/src/main/resources/codegen-data/ari_0_0_1/asterisk.json index 59e9ad76..8b448327 100644 --- a/codegen/src/main/resources/codegen-data/ari_0_0_1/asterisk.json +++ b/codegen/src/main/resources/codegen-data/ari_0_0_1/asterisk.json @@ -1,7 +1,7 @@ { "_copyright": "Copyright (C) 2012 - 2013, Digium, Inc.", "_author": "David M. Lee, II ", - "_svn_revision": "$Revision: 402528 $", + "_svn_revision": "$Revision$", "apiVersion": "0.0.1", "swaggerVersion": "1.1", "basePath": "http://localhost:8088/stasis", diff --git a/codegen/src/main/resources/codegen-data/ari_0_0_1/bridges.json b/codegen/src/main/resources/codegen-data/ari_0_0_1/bridges.json index 6636aa93..2339a967 100644 --- a/codegen/src/main/resources/codegen-data/ari_0_0_1/bridges.json +++ b/codegen/src/main/resources/codegen-data/ari_0_0_1/bridges.json @@ -1,7 +1,7 @@ { "_copyright": "Copyright (C) 2012 - 2013, Digium, Inc.", "_author": "David M. Lee, II ", - "_svn_revision": "$Revision: 402528 $", + "_svn_revision": "$Revision$", "apiVersion": "0.0.1", "swaggerVersion": "1.1", "basePath": "http://localhost:8088/stasis", diff --git a/codegen/src/main/resources/codegen-data/ari_0_0_1/channels.json b/codegen/src/main/resources/codegen-data/ari_0_0_1/channels.json index 97e6b103..39586689 100644 --- a/codegen/src/main/resources/codegen-data/ari_0_0_1/channels.json +++ b/codegen/src/main/resources/codegen-data/ari_0_0_1/channels.json @@ -1,7 +1,7 @@ { "_copyright": "Copyright (C) 2012 - 2013, Digium, Inc.", "_author": "David M. Lee, II ", - "_svn_revision": "$Revision: 403117 $", + "_svn_revision": "$Revision$", "apiVersion": "0.0.1", "swaggerVersion": "1.1", "basePath": "http://localhost:8088/stasis", diff --git a/codegen/src/main/resources/codegen-data/ari_0_0_1/deviceStates.json b/codegen/src/main/resources/codegen-data/ari_0_0_1/deviceStates.json index 5d88ebf2..529bc70d 100644 --- a/codegen/src/main/resources/codegen-data/ari_0_0_1/deviceStates.json +++ b/codegen/src/main/resources/codegen-data/ari_0_0_1/deviceStates.json @@ -1,7 +1,7 @@ { "_copyright": "Copyright (C) 2012 - 2013, Digium, Inc.", "_author": "Kevin Harwell ", - "_svn_revision": "$Revision: 403134 $", + "_svn_revision": "$Revision$", "apiVersion": "0.0.1", "swaggerVersion": "1.1", "basePath": "http://localhost:8088/stasis", diff --git a/codegen/src/main/resources/codegen-data/ari_0_0_1/endpoints.json b/codegen/src/main/resources/codegen-data/ari_0_0_1/endpoints.json index a5385276..fb66357a 100644 --- a/codegen/src/main/resources/codegen-data/ari_0_0_1/endpoints.json +++ b/codegen/src/main/resources/codegen-data/ari_0_0_1/endpoints.json @@ -1,7 +1,7 @@ { "_copyright": "Copyright (C) 2012 - 2013, Digium, Inc.", "_author": "David M. Lee, II ", - "_svn_revision": "$Revision: 402787 $", + "_svn_revision": "$Revision$", "apiVersion": "0.0.1", "swaggerVersion": "1.1", "basePath": "http://localhost:8088/stasis", diff --git a/codegen/src/main/resources/codegen-data/ari_0_0_1/events.json b/codegen/src/main/resources/codegen-data/ari_0_0_1/events.json index d92209d8..a342099a 100644 --- a/codegen/src/main/resources/codegen-data/ari_0_0_1/events.json +++ b/codegen/src/main/resources/codegen-data/ari_0_0_1/events.json @@ -1,7 +1,7 @@ { "_copyright": "Copyright (C) 2012 - 2013, Digium, Inc.", "_author": "David M. Lee, II ", - "_svn_revision": "$Revision: 403134 $", + "_svn_revision": "$Revision$", "apiVersion": "0.0.1", "swaggerVersion": "1.2", "basePath": "http://localhost:8088/stasis", diff --git a/codegen/src/main/resources/codegen-data/ari_0_0_1/playbacks.json b/codegen/src/main/resources/codegen-data/ari_0_0_1/playbacks.json index d5650943..2c621cf8 100644 --- a/codegen/src/main/resources/codegen-data/ari_0_0_1/playbacks.json +++ b/codegen/src/main/resources/codegen-data/ari_0_0_1/playbacks.json @@ -1,7 +1,7 @@ { "_copyright": "Copyright (C) 2012 - 2013, Digium, Inc.", "_author": "David M. Lee, II ", - "_svn_revision": "$Revision: 402560 $", + "_svn_revision": "$Revision$", "apiVersion": "0.0.1", "swaggerVersion": "1.1", "basePath": "http://localhost:8088/stasis", diff --git a/codegen/src/main/resources/codegen-data/ari_0_0_1/recordings.json b/codegen/src/main/resources/codegen-data/ari_0_0_1/recordings.json index 8e7c8df8..8e25da58 100644 --- a/codegen/src/main/resources/codegen-data/ari_0_0_1/recordings.json +++ b/codegen/src/main/resources/codegen-data/ari_0_0_1/recordings.json @@ -1,7 +1,7 @@ { "_copyright": "Copyright (C) 2012 - 2013, Digium, Inc.", "_author": "David M. Lee, II ", - "_svn_revision": "$Revision: 403119 $", + "_svn_revision": "$Revision$", "apiVersion": "0.0.1", "swaggerVersion": "1.1", "basePath": "http://localhost:8088/stasis", diff --git a/codegen/src/main/resources/codegen-data/ari_0_0_1/sounds.json b/codegen/src/main/resources/codegen-data/ari_0_0_1/sounds.json index 1a92ee02..1de71c3a 100644 --- a/codegen/src/main/resources/codegen-data/ari_0_0_1/sounds.json +++ b/codegen/src/main/resources/codegen-data/ari_0_0_1/sounds.json @@ -1,7 +1,7 @@ { "_copyright": "Copyright (C) 2012 - 2013, Digium, Inc.", "_author": "David M. Lee, II ", - "_svn_revision": "$Revision: 402528 $", + "_svn_revision": "$Revision$", "apiVersion": "0.0.1", "swaggerVersion": "1.1", "basePath": "http://localhost:8088/stasis", diff --git a/codegen/src/main/resources/codegen-data/ari_1_0_0/applications.json b/codegen/src/main/resources/codegen-data/ari_1_0_0/applications.json index 0ef07406..32ee3c45 100644 --- a/codegen/src/main/resources/codegen-data/ari_1_0_0/applications.json +++ b/codegen/src/main/resources/codegen-data/ari_1_0_0/applications.json @@ -1,7 +1,7 @@ { "_copyright": "Copyright (C) 2013, Digium, Inc.", "_author": "David M. Lee, II ", - "_svn_revision": "$Revision: 404509 $", + "_svn_revision": "$Revision$", "apiVersion": "1.0.0", "swaggerVersion": "1.1", "basePath": "http://localhost:8088/stasis", diff --git a/codegen/src/main/resources/codegen-data/ari_1_0_0/asterisk.json b/codegen/src/main/resources/codegen-data/ari_1_0_0/asterisk.json index 4c7da96e..2f1ca734 100644 --- a/codegen/src/main/resources/codegen-data/ari_1_0_0/asterisk.json +++ b/codegen/src/main/resources/codegen-data/ari_1_0_0/asterisk.json @@ -1,7 +1,7 @@ { "_copyright": "Copyright (C) 2012 - 2013, Digium, Inc.", "_author": "David M. Lee, II ", - "_svn_revision": "$Revision: 404184 $", + "_svn_revision": "$Revision$", "apiVersion": "1.0.0", "swaggerVersion": "1.1", "basePath": "http://localhost:8088/stasis", diff --git a/codegen/src/main/resources/codegen-data/ari_1_0_0/bridges.json b/codegen/src/main/resources/codegen-data/ari_1_0_0/bridges.json index 8c8007a4..025781c9 100644 --- a/codegen/src/main/resources/codegen-data/ari_1_0_0/bridges.json +++ b/codegen/src/main/resources/codegen-data/ari_1_0_0/bridges.json @@ -1,7 +1,7 @@ { "_copyright": "Copyright (C) 2012 - 2013, Digium, Inc.", "_author": "David M. Lee, II ", - "_svn_revision": "$Revision: 404184 $", + "_svn_revision": "$Revision$", "apiVersion": "1.0.0", "swaggerVersion": "1.1", "basePath": "http://localhost:8088/stasis", diff --git a/codegen/src/main/resources/codegen-data/ari_1_0_0/channels.json b/codegen/src/main/resources/codegen-data/ari_1_0_0/channels.json index 6122f6d9..3b14c8fb 100644 --- a/codegen/src/main/resources/codegen-data/ari_1_0_0/channels.json +++ b/codegen/src/main/resources/codegen-data/ari_1_0_0/channels.json @@ -1,7 +1,7 @@ { "_copyright": "Copyright (C) 2012 - 2013, Digium, Inc.", "_author": "David M. Lee, II ", - "_svn_revision": "$Revision: 404509 $", + "_svn_revision": "$Revision$", "apiVersion": "1.0.0", "swaggerVersion": "1.1", "basePath": "http://localhost:8088/stasis", diff --git a/codegen/src/main/resources/codegen-data/ari_1_0_0/deviceStates.json b/codegen/src/main/resources/codegen-data/ari_1_0_0/deviceStates.json index 9eedf7aa..1f18ac29 100644 --- a/codegen/src/main/resources/codegen-data/ari_1_0_0/deviceStates.json +++ b/codegen/src/main/resources/codegen-data/ari_1_0_0/deviceStates.json @@ -1,7 +1,7 @@ { "_copyright": "Copyright (C) 2012 - 2013, Digium, Inc.", "_author": "Kevin Harwell ", - "_svn_revision": "$Revision: 404184 $", + "_svn_revision": "$Revision$", "apiVersion": "1.0.0", "swaggerVersion": "1.1", "basePath": "http://localhost:8088/stasis", diff --git a/codegen/src/main/resources/codegen-data/ari_1_0_0/endpoints.json b/codegen/src/main/resources/codegen-data/ari_1_0_0/endpoints.json index d744d40b..d9021fb3 100644 --- a/codegen/src/main/resources/codegen-data/ari_1_0_0/endpoints.json +++ b/codegen/src/main/resources/codegen-data/ari_1_0_0/endpoints.json @@ -1,7 +1,7 @@ { "_copyright": "Copyright (C) 2012 - 2013, Digium, Inc.", "_author": "David M. Lee, II ", - "_svn_revision": "$Revision: 404184 $", + "_svn_revision": "$Revision$", "apiVersion": "1.0.0", "swaggerVersion": "1.1", "basePath": "http://localhost:8088/stasis", diff --git a/codegen/src/main/resources/codegen-data/ari_1_0_0/events.json b/codegen/src/main/resources/codegen-data/ari_1_0_0/events.json index 8584ec22..b841485b 100644 --- a/codegen/src/main/resources/codegen-data/ari_1_0_0/events.json +++ b/codegen/src/main/resources/codegen-data/ari_1_0_0/events.json @@ -1,7 +1,7 @@ { "_copyright": "Copyright (C) 2012 - 2013, Digium, Inc.", "_author": "David M. Lee, II ", - "_svn_revision": "$Revision: 404184 $", + "_svn_revision": "$Revision$", "apiVersion": "1.0.0", "swaggerVersion": "1.2", "basePath": "http://localhost:8088/stasis", diff --git a/codegen/src/main/resources/codegen-data/ari_1_0_0/mailboxes.json b/codegen/src/main/resources/codegen-data/ari_1_0_0/mailboxes.json new file mode 100644 index 00000000..40c83b0a --- /dev/null +++ b/codegen/src/main/resources/codegen-data/ari_1_0_0/mailboxes.json @@ -0,0 +1,134 @@ +{ + "_copyright": "Copyright (C) 2013, Digium, Inc.", + "_author": "Jonathan Rose ", + "_svn_revision": "$Revision$", + "apiVersion": "1.0.0", + "swaggerVersion": "1.1", + "basePath": "http://localhost:8088/stasis", + "resourcePath": "/api-docs/mailboxes.{format}", + "apis": [ + { + "path": "/mailboxes", + "description": "Mailboxes", + "operations": [ + { + "httpMethod": "GET", + "summary": "List all mailboxes.", + "nickname": "list", + "responseClass": "List[Mailbox]" + } + ] + }, + { + "path": "/mailboxes/{mailboxName}", + "description": "Mailbox state", + "operations": [ + { + "httpMethod": "GET", + "summary": "Retrieve the current state of a mailbox.", + "nickname": "get", + "responseClass": "Mailbox", + "parameters": [ + { + "name": "mailboxName", + "description": "Name of the mailbox", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Mailbox not found" + } + ] + }, + { + "httpMethod": "PUT", + "summary": "Change the state of a mailbox. (Note - implicitly creates the mailbox).", + "nickname": "update", + "responseClass": "void", + "parameters": [ + { + "name": "mailboxName", + "description": "Name of the mailbox", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "oldMessages", + "description": "Count of old messages in the mailbox", + "paramType": "query", + "required": true, + "allowMultiple": false, + "dataType": "int" + }, + { + "name": "newMessages", + "description": "Count of new messages in the mailbox", + "paramType": "query", + "required": true, + "allowMultiple": false, + "dataType": "int" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Mailbox not found" + } + ] + }, + { + "httpMethod": "DELETE", + "summary": "Destroy a mailbox.", + "nickname": "delete", + "responseClass": "void", + "parameters": [ + { + "name": "mailboxName", + "description": "Name of the mailbox", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Mailbox not found" + } + ] + } + ] + } + ], + "models": { + "Mailbox": { + "id": "Mailbox", + "description": "Represents the state of a mailbox.", + "properties": { + "name": { + "type": "string", + "description": "Name of the mailbox.", + "required": true + }, + "old_messages": { + "type": "int", + "description": "Count of old messages in the mailbox.", + "required": true + }, + "new_messages": { + "type": "int", + "description": "Count of new messages in the mailbox.", + "required": true + } + } + } + } +} diff --git a/codegen/src/main/resources/codegen-data/ari_1_0_0/playbacks.json b/codegen/src/main/resources/codegen-data/ari_1_0_0/playbacks.json index 1f7ea587..0b7146c8 100644 --- a/codegen/src/main/resources/codegen-data/ari_1_0_0/playbacks.json +++ b/codegen/src/main/resources/codegen-data/ari_1_0_0/playbacks.json @@ -1,7 +1,7 @@ { "_copyright": "Copyright (C) 2012 - 2013, Digium, Inc.", "_author": "David M. Lee, II ", - "_svn_revision": "$Revision: 404184 $", + "_svn_revision": "$Revision$", "apiVersion": "1.0.0", "swaggerVersion": "1.1", "basePath": "http://localhost:8088/stasis", diff --git a/codegen/src/main/resources/codegen-data/ari_1_0_0/recordings.json b/codegen/src/main/resources/codegen-data/ari_1_0_0/recordings.json index 5fd266e5..6a51753a 100644 --- a/codegen/src/main/resources/codegen-data/ari_1_0_0/recordings.json +++ b/codegen/src/main/resources/codegen-data/ari_1_0_0/recordings.json @@ -1,7 +1,7 @@ { "_copyright": "Copyright (C) 2012 - 2013, Digium, Inc.", "_author": "David M. Lee, II ", - "_svn_revision": "$Revision: 404184 $", + "_svn_revision": "$Revision$", "apiVersion": "1.0.0", "swaggerVersion": "1.1", "basePath": "http://localhost:8088/stasis", diff --git a/codegen/src/main/resources/codegen-data/ari_1_0_0/sounds.json b/codegen/src/main/resources/codegen-data/ari_1_0_0/sounds.json index 0825909d..f54ac042 100644 --- a/codegen/src/main/resources/codegen-data/ari_1_0_0/sounds.json +++ b/codegen/src/main/resources/codegen-data/ari_1_0_0/sounds.json @@ -1,7 +1,7 @@ { "_copyright": "Copyright (C) 2012 - 2013, Digium, Inc.", "_author": "David M. Lee, II ", - "_svn_revision": "$Revision: 404184 $", + "_svn_revision": "$Revision$", "apiVersion": "1.0.0", "swaggerVersion": "1.1", "basePath": "http://localhost:8088/stasis", diff --git a/codegen/src/main/resources/codegen-data/ari_1_10_0/applications.json b/codegen/src/main/resources/codegen-data/ari_1_10_0/applications.json index 6dcdb78b..5ed720dd 100644 --- a/codegen/src/main/resources/codegen-data/ari_1_10_0/applications.json +++ b/codegen/src/main/resources/codegen-data/ari_1_10_0/applications.json @@ -2,7 +2,7 @@ "_copyright": "Copyright (C) 2013, Digium, Inc.", "_author": "David M. Lee, II ", "_svn_revision": "$Revision$", - "apiVersion": "1.7.0", + "apiVersion": "1.10.0", "swaggerVersion": "1.1", "basePath": "http://localhost:8088/ari", "resourcePath": "/api-docs/applications.{format}", diff --git a/codegen/src/main/resources/codegen-data/ari_1_10_0/asterisk.json b/codegen/src/main/resources/codegen-data/ari_1_10_0/asterisk.json index 0db20622..9ae965d3 100644 --- a/codegen/src/main/resources/codegen-data/ari_1_10_0/asterisk.json +++ b/codegen/src/main/resources/codegen-data/ari_1_10_0/asterisk.json @@ -2,7 +2,7 @@ "_copyright": "Copyright (C) 2012 - 2013, Digium, Inc.", "_author": "David M. Lee, II ", "_svn_revision": "$Revision$", - "apiVersion": "1.7.0", + "apiVersion": "1.10.0", "swaggerVersion": "1.1", "basePath": "http://localhost:8088/ari", "resourcePath": "/api-docs/asterisk.{format}", diff --git a/codegen/src/main/resources/codegen-data/ari_1_10_0/bridges.json b/codegen/src/main/resources/codegen-data/ari_1_10_0/bridges.json index ab2c6c2d..3eefa16d 100644 --- a/codegen/src/main/resources/codegen-data/ari_1_10_0/bridges.json +++ b/codegen/src/main/resources/codegen-data/ari_1_10_0/bridges.json @@ -2,7 +2,7 @@ "_copyright": "Copyright (C) 2012 - 2013, Digium, Inc.", "_author": "David M. Lee, II ", "_svn_revision": "$Revision$", - "apiVersion": "1.7.0", + "apiVersion": "1.10.0", "swaggerVersion": "1.1", "basePath": "http://localhost:8088/ari", "resourcePath": "/api-docs/bridges.{format}", @@ -240,6 +240,78 @@ } ] }, + { + "path": "/bridges/{bridgeId}/videoSource/{channelId}", + "description": "Set a channel as the video source in a multi-party bridge", + "operations": [ + { + "httpMethod": "POST", + "summary": "Set a channel as the video source in a multi-party mixing bridge. This operation has no effect on bridges with two or fewer participants.", + "nickname": "setVideoSource", + "responseClass": "void", + "parameters": [ + { + "name": "bridgeId", + "description": "Bridge's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "channelId", + "description": "Channel's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Bridge or Channel not found" + }, + { + "code": 409, + "reason": "Channel not in Stasis application" + }, + { + "code": 422, + "reason": "Channel not in this Bridge" + } + ] + } + ] + }, + { + "path": "/bridges/{bridgeId}/videoSource", + "description": "Removes any explicit video source", + "operations": [ + { + "httpMethod": "DELETE", + "summary": "Removes any explicit video source in a multi-party mixing bridge. This operation has no effect on bridges with two or fewer participants. When no explicit video source is set, talk detection will be used to determine the active video stream.", + "nickname": "clearVideoSource", + "responseClass": "void", + "parameters": [ + { + "name": "bridgeId", + "description": "Bridge's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Bridge not found" + } + ] + } + ] + }, { "path": "/bridges/{bridgeId}/moh", "description": "Play music on hold to a bridge", @@ -328,10 +400,10 @@ }, { "name": "media", - "description": "Media URIs to play.", + "description": "Media's URI to play.", "paramType": "query", "required": true, - "allowMultiple": true, + "allowMultiple": false, "dataType": "string" }, { @@ -344,7 +416,7 @@ }, { "name": "offsetms", - "description": "Number of milliseconds to skip before playing. Only applies to the first URI if multiple media URIs are specified.", + "description": "Number of media to skip before playing.", "paramType": "query", "required": false, "allowMultiple": false, @@ -420,10 +492,10 @@ }, { "name": "media", - "description": "Media URIs to play.", + "description": "Media's URI to play.", "paramType": "query", "required": true, - "allowMultiple": true, + "allowMultiple": false, "dataType": "string" }, { @@ -436,7 +508,7 @@ }, { "name": "offsetms", - "description": "Number of milliseconds to skip before playing. Only applies to the first URI if multiple media URIs are specified.", + "description": "Number of media to skip before playing.", "paramType": "query", "required": false, "allowMultiple": false, @@ -649,6 +721,16 @@ "type": "List[string]", "description": "Ids of channels participating in this bridge", "required": true + }, + "video_mode": { + "type": "string", + "description": "The video mode the bridge is using. One of 'none', 'talker', or 'single'.", + "required": false + }, + "video_source_id": { + "type": "string", + "description": "The ID of the channel that is the source of video in this bridge, if one exists.", + "required": false } } } diff --git a/codegen/src/main/resources/codegen-data/ari_1_10_0/channels.json b/codegen/src/main/resources/codegen-data/ari_1_10_0/channels.json index 75feeb10..487db448 100644 --- a/codegen/src/main/resources/codegen-data/ari_1_10_0/channels.json +++ b/codegen/src/main/resources/codegen-data/ari_1_10_0/channels.json @@ -2,7 +2,7 @@ "_copyright": "Copyright (C) 2012 - 2013, Digium, Inc.", "_author": "David M. Lee, II ", "_svn_revision": "$Revision$", - "apiVersion": "1.7.0", + "apiVersion": "1.10.0", "swaggerVersion": "1.1", "basePath": "http://localhost:8088/ari", "resourcePath": "/api-docs/channels.{format}", @@ -142,76 +142,10 @@ { "code": 400, "reason": "Invalid parameters for originating a channel." - } - ] - } - ] - }, - { - "path": "/channels/create", - "description": "Create a channel and place it in a Stasis app, but do not dial the channel yet.", - "operations": [ - { - "httpMethod": "POST", - "summary": "Create channel.", - "nickname": "create", - "responseClass": "Channel", - "parameters": [ - { - "name": "endpoint", - "description": "Endpoint for channel communication", - "paramType": "query", - "required": true, - "allowMultiple": false, - "dataType": "string" - }, - { - "name": "app", - "description": "Stasis Application to place channel into", - "paramType": "query", - "required": true, - "allowMultiple": false, - "dataType": "string" - }, - { - "name": "appArgs", - "description": "The application arguments to pass to the Stasis application provided by 'app'. Mutually exclusive with 'context', 'extension', 'priority', and 'label'.", - "paramType": "query", - "required": false, - "allowMultiple": false, - "dataType": "string" - }, - { - "name": "channelId", - "description": "The unique id to assign the channel on creation.", - "paramType": "query", - "required": false, - "allowMultiple": false, - "dataType": "string" - }, - { - "name": "otherChannelId", - "description": "The unique id to assign the second channel when using local channels.", - "paramType": "query", - "required": false, - "allowMultiple": false, - "dataType": "string" - }, - { - "name": "originator", - "description": "Unique ID of the calling channel", - "paramType": "query", - "required": false, - "allowMultiple": false, - "dataType": "string" }, { - "name": "formats", - "description": "The format name capability list to use if originator is not specified. Ex. \"ulaw,slin16\". Format names can be found with \"core show codecs\".", - "paramType": "query", - "required": false, - "allowMultiple": false, - "dataType": "string" + "code": 409, + "reason": "Channel with given unique ID already exists." } ] } @@ -368,9 +302,12 @@ { "code": 400, "reason": "Invalid parameters for originating a channel." + }, + { + "code": 409, + "reason": "Channel with given unique ID already exists." } ] - }, { "httpMethod": "DELETE", @@ -477,10 +414,6 @@ { "code": 409, "reason": "Channel not in a Stasis application" - }, - { - "code": 412, - "reason": "Channel in invalid state" } ] } @@ -529,10 +462,6 @@ { "code": 422, "reason": "Endpoint is not the same type as the channel" - }, - { - "code": 412, - "reason": "Channel in invalid state" } ] } @@ -565,10 +494,6 @@ { "code": 409, "reason": "Channel not in a Stasis application" - }, - { - "code": 412, - "reason": "Channel in invalid state" } ] } @@ -601,10 +526,6 @@ { "code": 409, "reason": "Channel not in a Stasis application" - }, - { - "code": 412, - "reason": "Channel in invalid state" } ] }, @@ -631,10 +552,6 @@ { "code": 409, "reason": "Channel not in a Stasis application" - }, - { - "code": 412, - "reason": "Channel in invalid state" } ] } @@ -715,10 +632,6 @@ { "code": 409, "reason": "Channel not in a Stasis application" - }, - { - "code": 412, - "reason": "Channel in invalid state" } ] } @@ -768,10 +681,6 @@ { "code": 409, "reason": "Channel not in a Stasis application" - }, - { - "code": 412, - "reason": "Channel in invalid state" } ] }, @@ -815,10 +724,6 @@ { "code": 409, "reason": "Channel not in a Stasis application" - }, - { - "code": 412, - "reason": "Channel in invalid state" } ] } @@ -851,10 +756,6 @@ { "code": 409, "reason": "Channel not in a Stasis application" - }, - { - "code": 412, - "reason": "Channel in invalid state" } ] }, @@ -881,10 +782,6 @@ { "code": 409, "reason": "Channel not in a Stasis application" - }, - { - "code": 412, - "reason": "Channel in invalid state" } ] } @@ -926,10 +823,6 @@ { "code": 409, "reason": "Channel not in a Stasis application" - }, - { - "code": 412, - "reason": "Channel in invalid state" } ] }, @@ -956,10 +849,6 @@ { "code": 409, "reason": "Channel not in a Stasis application" - }, - { - "code": 412, - "reason": "Channel in invalid state" } ] } @@ -993,10 +882,6 @@ { "code": 409, "reason": "Channel not in a Stasis application" - }, - { - "code": 412, - "reason": "Channel in invalid state" } ] }, @@ -1023,10 +908,6 @@ { "code": 409, "reason": "Channel not in a Stasis application" - }, - { - "code": 412, - "reason": "Channel in invalid state" } ] } @@ -1053,10 +934,10 @@ }, { "name": "media", - "description": "Media URIs to play.", + "description": "Media's URI to play.", "paramType": "query", "required": true, - "allowMultiple": true, + "allowMultiple": false, "dataType": "string" }, { @@ -1069,7 +950,7 @@ }, { "name": "offsetms", - "description": "Number of milliseconds to skip before playing. Only applies to the first URI if multiple media URIs are specified.", + "description": "Number of media to skip before playing.", "paramType": "query", "required": false, "allowMultiple": false, @@ -1101,10 +982,6 @@ { "code": 409, "reason": "Channel not in a Stasis application" - }, - { - "code": 412, - "reason": "Channel in invalid state" } ] } @@ -1139,10 +1016,10 @@ }, { "name": "media", - "description": "Media URIs to play.", + "description": "Media's URI to play.", "paramType": "query", "required": true, - "allowMultiple": true, + "allowMultiple": false, "dataType": "string" }, { @@ -1155,7 +1032,7 @@ }, { "name": "offsetms", - "description": "Number of milliseconds to skip before playing. Only applies to the first URI if multiple media URIs are specified.", + "description": "Number of media to skip before playing.", "paramType": "query", "required": false, "allowMultiple": false, @@ -1179,10 +1056,6 @@ { "code": 409, "reason": "Channel not in a Stasis application" - }, - { - "code": 412, - "reason": "Channel in invalid state" } ] } @@ -1590,59 +1463,6 @@ ] } ] - }, - { - "path": "/channels/{channelId}/dial", - "description": "Dial a channel", - "operations": [ - { - "httpMethod": "POST", - "summary": "Dial a created channel.", - "nickname": "dial", - "responseClass": "void", - "parameters": [ - { - "name": "channelId", - "description": "Channel's id", - "paramType": "path", - "required": true, - "allowMultiple": false, - "dataType": "string" - }, - { - "name": "caller", - "description": "Channel ID of caller", - "paramType": "query", - "required": false, - "allowMultiple": false, - "dataType": "string" - }, - { - "name": "timeout", - "description": "Dial timeout", - "paramType": "query", - "required": false, - "allowMultiple": false, - "dataType": "int", - "defaultValue": 0, - "allowableValues": { - "valueType": "RANGE", - "min": 0 - } - } - ], - "errorResponses": [ - { - "code": 404, - "reason": "Channel cannot be found." - }, - { - "code": 409, - "reason": "Channel cannot be dialed." - } - ] - } - ] } ], "models": { diff --git a/codegen/src/main/resources/codegen-data/ari_1_10_0/deviceStates.json b/codegen/src/main/resources/codegen-data/ari_1_10_0/deviceStates.json index e2322739..16d3af75 100644 --- a/codegen/src/main/resources/codegen-data/ari_1_10_0/deviceStates.json +++ b/codegen/src/main/resources/codegen-data/ari_1_10_0/deviceStates.json @@ -2,7 +2,7 @@ "_copyright": "Copyright (C) 2012 - 2013, Digium, Inc.", "_author": "Kevin Harwell ", "_svn_revision": "$Revision$", - "apiVersion": "1.7.0", + "apiVersion": "1.10.0", "swaggerVersion": "1.1", "basePath": "http://localhost:8088/ari", "resourcePath": "/api-docs/deviceStates.{format}", diff --git a/codegen/src/main/resources/codegen-data/ari_1_10_0/endpoints.json b/codegen/src/main/resources/codegen-data/ari_1_10_0/endpoints.json index 4fd077c1..13a5beda 100644 --- a/codegen/src/main/resources/codegen-data/ari_1_10_0/endpoints.json +++ b/codegen/src/main/resources/codegen-data/ari_1_10_0/endpoints.json @@ -2,7 +2,7 @@ "_copyright": "Copyright (C) 2012 - 2013, Digium, Inc.", "_author": "David M. Lee, II ", "_svn_revision": "$Revision$", - "apiVersion": "1.7.0", + "apiVersion": "1.10.0", "swaggerVersion": "1.1", "basePath": "http://localhost:8088/ari", "resourcePath": "/api-docs/endpoints.{format}", diff --git a/codegen/src/main/resources/codegen-data/ari_1_10_0/events.json b/codegen/src/main/resources/codegen-data/ari_1_10_0/events.json index ca261610..2d174cff 100644 --- a/codegen/src/main/resources/codegen-data/ari_1_10_0/events.json +++ b/codegen/src/main/resources/codegen-data/ari_1_10_0/events.json @@ -2,7 +2,7 @@ "_copyright": "Copyright (C) 2012 - 2013, Digium, Inc.", "_author": "David M. Lee, II ", "_svn_revision": "$Revision$", - "apiVersion": "1.7.0", + "apiVersion": "1.10.0", "swaggerVersion": "1.2", "basePath": "http://localhost:8088/ari", "resourcePath": "/api-docs/events.{format}", @@ -110,6 +110,11 @@ "type": "string", "required": true, "description": "Indicates the type of this message." + }, + "asterisk_id": { + "type": "string", + "required": false, + "description": "The unique ID for the Asterisk instance that raised this event." } }, "subTypes": [ @@ -146,7 +151,6 @@ "subTypes": [ "DeviceStateChanged", "PlaybackStarted", - "PlaybackContinuing", "PlaybackFinished", "RecordingStarted", "RecordingFinished", @@ -157,6 +161,7 @@ "BridgeMerged", "BridgeBlindTransfer", "BridgeAttendedTransfer", + "BridgeVideoSourceChanged", "ChannelCreated", "ChannelDestroyed", "ChannelEnteredBridge", @@ -271,17 +276,6 @@ } } }, - "PlaybackContinuing": { - "id": "PlaybackContinuing", - "description": "Event showing the continuation of a media playback operation from one media URI to the next in the list.", - "properties": { - "playback": { - "type": "Playback", - "description": "Playback control object", - "required": true - } - } - }, "PlaybackFinished": { "id": "PlaybackFinished", "description": "Event showing the completion of a media playback operation.", @@ -365,6 +359,20 @@ } } }, + "BridgeVideoSourceChanged": { + "id": "BridgeVideoSourceChanged", + "description": "Notification that the source of video in a bridge has changed.", + "properties": { + "bridge": { + "required": true, + "type": "Bridge" + }, + "old_video_source_id": { + "required": false, + "type": "string" + } + } + }, "BridgeBlindTransfer": { "id": "BridgeBlindTransfer", "description": "Notification that a blind transfer has occurred.", diff --git a/codegen/src/main/resources/codegen-data/ari_1_10_0/mailboxes.json b/codegen/src/main/resources/codegen-data/ari_1_10_0/mailboxes.json index 324e3788..999cd8db 100644 --- a/codegen/src/main/resources/codegen-data/ari_1_10_0/mailboxes.json +++ b/codegen/src/main/resources/codegen-data/ari_1_10_0/mailboxes.json @@ -2,7 +2,7 @@ "_copyright": "Copyright (C) 2013, Digium, Inc.", "_author": "Jonathan Rose ", "_svn_revision": "$Revision$", - "apiVersion": "1.7.0", + "apiVersion": "1.10.0", "swaggerVersion": "1.1", "basePath": "http://localhost:8088/ari", "resourcePath": "/api-docs/mailboxes.{format}", diff --git a/codegen/src/main/resources/codegen-data/ari_1_10_0/playbacks.json b/codegen/src/main/resources/codegen-data/ari_1_10_0/playbacks.json index 9f900355..1a124325 100644 --- a/codegen/src/main/resources/codegen-data/ari_1_10_0/playbacks.json +++ b/codegen/src/main/resources/codegen-data/ari_1_10_0/playbacks.json @@ -2,7 +2,7 @@ "_copyright": "Copyright (C) 2012 - 2013, Digium, Inc.", "_author": "David M. Lee, II ", "_svn_revision": "$Revision$", - "apiVersion": "1.7.0", + "apiVersion": "1.10.0", "swaggerVersion": "1.1", "basePath": "http://localhost:8088/ari", "resourcePath": "/api-docs/playbacks.{format}", @@ -124,14 +124,9 @@ }, "media_uri": { "type": "string", - "description": "The URI for the media currently being played back.", + "description": "URI for the media to play back.", "required": true }, - "next_media_uri": { - "type": "string", - "description": "If a list of URIs is being played, the next media URI to be played back.", - "required": false - }, "target_uri": { "type": "string", "description": "URI for the channel or bridge to play the media on", @@ -150,8 +145,7 @@ "values": [ "queued", "playing", - "continuing", - "done" + "complete" ] } } diff --git a/codegen/src/main/resources/codegen-data/ari_1_10_0/recordings.json b/codegen/src/main/resources/codegen-data/ari_1_10_0/recordings.json index d173ac98..48499bfa 100644 --- a/codegen/src/main/resources/codegen-data/ari_1_10_0/recordings.json +++ b/codegen/src/main/resources/codegen-data/ari_1_10_0/recordings.json @@ -2,7 +2,7 @@ "_copyright": "Copyright (C) 2012 - 2013, Digium, Inc.", "_author": "David M. Lee, II ", "_svn_revision": "$Revision$", - "apiVersion": "1.7.0", + "apiVersion": "1.10.0", "swaggerVersion": "1.1", "basePath": "http://localhost:8088/ari", "resourcePath": "/api-docs/recordings.{format}", @@ -69,38 +69,6 @@ } ] }, - { - "path": "/recordings/stored/{recordingName}/file", - "description": "The actual file associated with the stored recording", - "operations": [ - { - "httpMethod": "GET", - "summary": "Get the file associated with the stored recording.", - "nickname": "getStoredFile", - "responseClass": "binary", - "parameters": [ - { - "name": "recordingName", - "description": "The name of the recording", - "paramType": "path", - "required": true, - "allowMultiple": false, - "dataType": "string" - } - ], - "errorResponses": [ - { - "code": 403, - "reason": "The recording file could not be opened" - }, - { - "code": 404, - "reason": "Recording not found" - } - ] - } - ] - }, { "path": "/recordings/stored/{recordingName}/copy", "description": "Copy an individual recording", diff --git a/codegen/src/main/resources/codegen-data/ari_1_10_0/sounds.json b/codegen/src/main/resources/codegen-data/ari_1_10_0/sounds.json index 628aa194..4a8eb2cc 100644 --- a/codegen/src/main/resources/codegen-data/ari_1_10_0/sounds.json +++ b/codegen/src/main/resources/codegen-data/ari_1_10_0/sounds.json @@ -2,7 +2,7 @@ "_copyright": "Copyright (C) 2012 - 2013, Digium, Inc.", "_author": "David M. Lee, II ", "_svn_revision": "$Revision$", - "apiVersion": "1.7.0", + "apiVersion": "1.10.0", "swaggerVersion": "1.1", "basePath": "http://localhost:8088/ari", "resourcePath": "/api-docs/sounds.{format}", diff --git a/codegen/src/main/resources/codegen-data/ari_1_10_1/applications.json b/codegen/src/main/resources/codegen-data/ari_1_10_1/applications.json new file mode 100644 index 00000000..ef61b821 --- /dev/null +++ b/codegen/src/main/resources/codegen-data/ari_1_10_1/applications.json @@ -0,0 +1,223 @@ +{ + "_copyright": "Copyright (C) 2013, Digium, Inc.", + "_author": "David M. Lee, II ", + "_svn_revision": "$Revision$", + "apiVersion": "1.10.0", + "swaggerVersion": "1.1", + "basePath": "http://localhost:8088/ari", + "resourcePath": "/api-docs/applications.{format}", + "apis": [ + { + "path": "/applications", + "description": "Stasis applications", + "operations": [ + { + "httpMethod": "GET", + "summary": "List all applications.", + "nickname": "list", + "responseClass": "List[Application]" + } + ] + }, + { + "path": "/applications/{applicationName}", + "description": "Stasis application", + "operations": [ + { + "httpMethod": "GET", + "summary": "Get details of an application.", + "nickname": "get", + "responseClass": "Application", + "parameters": [ + { + "name": "applicationName", + "description": "Application's name", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Application does not exist." + } + ] + } + ] + }, + { + "path": "/applications/{applicationName}/subscription", + "description": "Stasis application", + "operations": [ + { + "httpMethod": "POST", + "summary": "Subscribe an application to a event source.", + "notes": "Returns the state of the application after the subscriptions have changed", + "nickname": "subscribe", + "responseClass": "Application", + "parameters": [ + { + "name": "applicationName", + "description": "Application's name", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "eventSource", + "description": "URI for event source (channel:{channelId}, bridge:{bridgeId}, endpoint:{tech}[/{resource}], deviceState:{deviceName}", + "paramType": "query", + "required": true, + "allowMultiple": true, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 400, + "reason": "Missing parameter." + }, + { + "code": 404, + "reason": "Application does not exist." + }, + { + "code": 422, + "reason": "Event source does not exist." + } + ] + }, + { + "httpMethod": "DELETE", + "summary": "Unsubscribe an application from an event source.", + "notes": "Returns the state of the application after the subscriptions have changed", + "nickname": "unsubscribe", + "responseClass": "Application", + "parameters": [ + { + "name": "applicationName", + "description": "Application's name", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "eventSource", + "description": "URI for event source (channel:{channelId}, bridge:{bridgeId}, endpoint:{tech}[/{resource}], deviceState:{deviceName}", + "paramType": "query", + "required": true, + "allowMultiple": true, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 400, + "reason": "Missing parameter; event source scheme not recognized." + }, + { + "code": 404, + "reason": "Application does not exist." + }, + { + "code": 409, + "reason": "Application not subscribed to event source." + }, + { + "code": 422, + "reason": "Event source does not exist." + } + ] + } + ] + }, + { + "path": "/applications/{applicationName}/eventFilter", + "description": "Stasis application", + "operations": [ + { + "httpMethod": "PUT", + "summary": "Filter application events types.", + "notes": "Allowed and/or disallowed event type filtering can be done. The body (parameter) should specify a JSON key/value object that describes the type of event filtering needed. One, or both of the following keys can be designated:

\"allowed\" - Specifies an allowed list of event types
\"disallowed\" - Specifies a disallowed list of event types

Further, each of those key's value should be a JSON array that holds zero, or more JSON key/value objects. Each of these objects must contain the following key with an associated value:

\"type\" - The type name of the event to filter

The value must be the string name (case sensitive) of the event type that needs filtering. For example:

{ \"allowed\": [ { \"type\": \"StasisStart\" }, { \"type\": \"StasisEnd\" } ] }

As this specifies only an allowed list, then only those two event type messages are sent to the application. No other event messages are sent.

The following rules apply:

* If the body is empty, both the allowed and disallowed filters are set empty.
* If both list types are given then both are set to their respective values (note, specifying an empty array for a given type sets that type to empty).
* If only one list type is given then only that type is set. The other type is not updated.
* An empty \"allowed\" list means all events are allowed.
* An empty \"disallowed\" list means no events are disallowed.
* Disallowed events take precedence over allowed events if the event type is specified in both lists.", + "nickname": "filter", + "responseClass": "Application", + "parameters": [ + { + "name": "applicationName", + "description": "Application's name", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "filter", + "description": "Specify which event types to allow/disallow", + "paramType": "body", + "required": false, + "dataType": "object", + "allowMultiple": false + } + ], + "errorResponses": [ + { + "code": 400, + "reason": "Bad request." + }, + { + "code": 404, + "reason": "Application does not exist." + } + ] + } + ] + } + ], + "models": { + "Application": { + "id": "Application", + "description": "Details of a Stasis application", + "properties": { + "name": { + "type": "string", + "description": "Name of this application", + "required": true + }, + "channel_ids": { + "type": "List[string]", + "description": "Id's for channels subscribed to.", + "required": true + }, + "bridge_ids": { + "type": "List[string]", + "description": "Id's for bridges subscribed to.", + "required": true + }, + "endpoint_ids": { + "type": "List[string]", + "description": "{tech}/{resource} for endpoints subscribed to.", + "required": true + }, + "device_names": { + "type": "List[string]", + "description": "Names of the devices subscribed to.", + "required": true + }, + "events_allowed": { + "type": "List[object]", + "description": "Event types sent to the application.", + "required": true + }, + "events_disallowed": { + "type": "List[object]", + "description": "Event types not sent to the application.", + "required": true + } + } + } + } +} diff --git a/codegen/src/main/resources/codegen-data/ari_1_10_1/asterisk.json b/codegen/src/main/resources/codegen-data/ari_1_10_1/asterisk.json new file mode 100644 index 00000000..226c48e8 --- /dev/null +++ b/codegen/src/main/resources/codegen-data/ari_1_10_1/asterisk.json @@ -0,0 +1,725 @@ +{ + "_copyright": "Copyright (C) 2012 - 2013, Digium, Inc.", + "_author": "David M. Lee, II ", + "_svn_revision": "$Revision$", + "apiVersion": "1.10.0", + "swaggerVersion": "1.1", + "basePath": "http://localhost:8088/ari", + "resourcePath": "/api-docs/asterisk.{format}", + "apis": [ + { + "path": "/asterisk/config/dynamic/{configClass}/{objectType}/{id}", + "description": "Asterisk dynamic configuration", + "operations": [ + { + "httpMethod": "GET", + "summary": "Retrieve a dynamic configuration object.", + "nickname": "getObject", + "responseClass": "List[ConfigTuple]", + "parameters": [ + { + "name": "configClass", + "description": "The configuration class containing dynamic configuration objects.", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "objectType", + "description": "The type of configuration object to retrieve.", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "id", + "description": "The unique identifier of the object to retrieve.", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "{configClass|objectType|id} not found" + } + ] + }, + { + "httpMethod": "PUT", + "summary": "Create or update a dynamic configuration object.", + "nickname": "updateObject", + "responseClass": "List[ConfigTuple]", + "parameters": [ + { + "name": "configClass", + "description": "The configuration class containing dynamic configuration objects.", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "objectType", + "description": "The type of configuration object to create or update.", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "id", + "description": "The unique identifier of the object to create or update.", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "fields", + "description": "The body object should have a value that is a list of ConfigTuples, which provide the fields to update. Ex. [ { \"attribute\": \"directmedia\", \"value\": \"false\" } ]", + "paramType": "body", + "required": false, + "dataType": "containers", + "allowMultiple": false + } + ], + "errorResponses": [ + { + "code": 400, + "reason": "Bad request body" + }, + { + "code": 403, + "reason": "Could not create or update object" + }, + { + "code": 404, + "reason": "{configClass|objectType} not found" + } + ] + }, + { + "httpMethod": "DELETE", + "summary": "Delete a dynamic configuration object.", + "nickname": "deleteObject", + "responseClass": "void", + "parameters": [ + { + "name": "configClass", + "description": "The configuration class containing dynamic configuration objects.", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "objectType", + "description": "The type of configuration object to delete.", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "id", + "description": "The unique identifier of the object to delete.", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 403, + "reason": "Could not delete object" + }, + { + "code": 404, + "reason": "{configClass|objectType|id} not found" + } + ] + } + ] + }, + { + "path": "/asterisk/info", + "description": "Asterisk system information (similar to core show settings)", + "operations": [ + { + "httpMethod": "GET", + "summary": "Gets Asterisk system information.", + "nickname": "getInfo", + "responseClass": "AsteriskInfo", + "parameters": [ + { + "name": "only", + "description": "Filter information returned", + "paramType": "query", + "required": false, + "allowMultiple": true, + "dataType": "string", + "allowableValues": { + "valueType": "LIST", + "values": [ + "build", + "system", + "config", + "status" + ] + } + } + ] + } + ] + }, + { + "path": "/asterisk/ping", + "description": "Asterisk ping", + "operations": [ + { + "httpMethod": "GET", + "summary": "Response pong message.", + "nickname": "ping", + "responseClass": "AsteriskPing" + } + ] + }, + { + "path": "/asterisk/modules", + "description": "Asterisk modules", + "operations": [ + { + "httpMethod": "GET", + "summary": "List Asterisk modules.", + "nickname": "listModules", + "responseClass": "List[Module]" + } + ] + }, + { + "path": "/asterisk/modules/{moduleName}", + "description": "Asterisk module", + "operations": [ + { + "httpMethod": "GET", + "summary": "Get Asterisk module information.", + "nickname": "getModule", + "responseClass": "Module", + "parameters": [ + { + "name": "moduleName", + "description": "Module's name", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Module could not be found in running modules." + }, + { + "code": 409, + "reason": "Module information could not be retrieved." + } + ] + }, + { + "httpMethod": "POST", + "summary": "Load an Asterisk module.", + "nickname": "loadModule", + "responseClass": "void", + "parameters": [ + { + "name": "moduleName", + "description": "Module's name", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 409, + "reason": "Module could not be loaded." + } + ] + }, + { + "httpMethod": "DELETE", + "summary": "Unload an Asterisk module.", + "nickname": "unloadModule", + "responseClass": "void", + "parameters": [ + { + "name": "moduleName", + "description": "Module's name", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Module not found in running modules." + }, + { + "code": 409, + "reason": "Module could not be unloaded." + } + ] + }, + { + "httpMethod": "PUT", + "summary": "Reload an Asterisk module.", + "nickname": "reloadModule", + "responseClass": "void", + "parameters": [ + { + "name": "moduleName", + "description": "Module's name", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Module not found in running modules." + }, + { + "code": 409, + "reason": "Module could not be reloaded." + } + ] + } + ] + }, + { + "path": "/asterisk/logging", + "description": "Asterisk log channels", + "operations": [ + { + "httpMethod": "GET", + "summary": "Gets Asterisk log channel information.", + "nickname": "listLogChannels", + "responseClass": "List[LogChannel]" + } + ] + }, + { + "path": "/asterisk/logging/{logChannelName}", + "description": "Asterisk log channel", + "operations": [ + { + "httpMethod": "POST", + "summary": "Adds a log channel.", + "nickname": "addLog", + "responseClass": "void", + "parameters": [ + { + "name": "logChannelName", + "description": "The log channel to add", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "configuration", + "description": "levels of the log channel", + "paramType": "query", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 400, + "reason": "Bad request body" + }, + { + "code": 409, + "reason": "Log channel could not be created." + } + ] + }, + { + "httpMethod": "DELETE", + "summary": "Deletes a log channel.", + "nickname": "deleteLog", + "responseClass": "void", + "parameters": [ + { + "name": "logChannelName", + "description": "Log channels name", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Log channel does not exist." + } + ] + } + ] + }, + { + "path": "/asterisk/logging/{logChannelName}/rotate", + "description": "Asterisk log channel", + "operations": [ + { + "httpMethod": "PUT", + "summary": "Rotates a log channel.", + "nickname": "rotateLog", + "responseClass": "void", + "parameters": [ + { + "name": "logChannelName", + "description": "Log channel's name", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Log channel does not exist." + } + ] + } + ] + }, + { + "path": "/asterisk/variable", + "description": "Global variables", + "operations": [ + { + "httpMethod": "GET", + "summary": "Get the value of a global variable.", + "nickname": "getGlobalVar", + "responseClass": "Variable", + "parameters": [ + { + "name": "variable", + "description": "The variable to get", + "paramType": "query", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 400, + "reason": "Missing variable parameter." + } + ] + }, + { + "httpMethod": "POST", + "summary": "Set the value of a global variable.", + "nickname": "setGlobalVar", + "responseClass": "void", + "parameters": [ + { + "name": "variable", + "description": "The variable to set", + "paramType": "query", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "value", + "description": "The value to set the variable to", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 400, + "reason": "Missing variable parameter." + } + ] + } + ] + } + ], + "models": { + "BuildInfo": { + "id": "BuildInfo", + "description": "Info about how Asterisk was built", + "properties": { + "os": { + "required": true, + "type": "string", + "description": "OS Asterisk was built on." + }, + "kernel": { + "required": true, + "type": "string", + "description": "Kernel version Asterisk was built on." + }, + "options": { + "required": true, + "type": "string", + "description": "Compile time options, or empty string if default." + }, + "machine": { + "required": true, + "type": "string", + "description": "Machine architecture (x86_64, i686, ppc, etc.)" + }, + "date": { + "required": true, + "type": "string", + "description": "Date and time when Asterisk was built." + }, + "user": { + "required": true, + "type": "string", + "description": "Username that build Asterisk" + } + } + }, + "SystemInfo": { + "id": "SystemInfo", + "description": "Info about Asterisk", + "properties": { + "version": { + "required": true, + "type": "string", + "description": "Asterisk version." + }, + "entity_id": { + "required": true, + "type": "string", + "description": "" + } + } + }, + "SetId": { + "id": "SetId", + "description": "Effective user/group id", + "properties": { + "user": { + "required": true, + "type": "string", + "description": "Effective user id." + }, + "group": { + "required": true, + "type": "string", + "description": "Effective group id." + } + } + }, + "ConfigInfo": { + "id": "ConfigInfo", + "description": "Info about Asterisk configuration", + "properties": { + "name": { + "required": true, + "type": "string", + "description": "Asterisk system name." + }, + "default_language": { + "required": true, + "type": "string", + "description": "Default language for media playback." + }, + "max_channels": { + "required": false, + "type": "int", + "description": "Maximum number of simultaneous channels." + }, + "max_open_files": { + "required": false, + "type": "int", + "description": "Maximum number of open file handles (files, sockets)." + }, + "max_load": { + "required": false, + "type": "double", + "description": "Maximum load avg on system." + }, + "setid": { + "required": true, + "type": "SetId", + "description": "Effective user/group id for running Asterisk." + } + } + }, + "StatusInfo": { + "id": "StatusInfo", + "description": "Info about Asterisk status", + "properties": { + "startup_time": { + "required": true, + "type": "Date", + "description": "Time when Asterisk was started." + }, + "last_reload_time": { + "required": true, + "type": "Date", + "description": "Time when Asterisk was last reloaded." + } + } + }, + "AsteriskInfo": { + "id": "AsteriskInfo", + "description": "Asterisk system information", + "properties": { + "build": { + "required": false, + "type": "BuildInfo", + "description": "Info about how Asterisk was built" + }, + "system": { + "required": false, + "type": "SystemInfo", + "description": "Info about the system running Asterisk" + }, + "config": { + "required": false, + "type": "ConfigInfo", + "description": "Info about Asterisk configuration" + }, + "status": { + "required": false, + "type": "StatusInfo", + "description": "Info about Asterisk status" + } + } + }, + "AsteriskPing": { + "id": "AsteriskPing", + "description": "Asterisk ping information", + "properties": { + "asterisk_id": { + "required": true, + "type": "string", + "description": "Asterisk id info" + }, + "ping": { + "required": true, + "type": "string", + "description": "Always string value is pong" + }, + "timestamp": { + "required": true, + "type": "string", + "description": "The timestamp string of request received time" + } + } + }, + "Module": { + "id": "Module", + "description": "Details of an Asterisk module", + "properties": { + "name": { + "type": "string", + "description": "The name of this module", + "required": true + }, + "description": { + "type": "string", + "description": "The description of this module", + "required": true + }, + "use_count": { + "type": "int", + "description": "The number of times this module is being used", + "required": true + }, + "status": { + "type": "string", + "description": "The running status of this module", + "required": true + }, + "support_level": { + "type": "string", + "description": "The support state of this module", + "required": true + } + } + }, + "LogChannel": { + "id": "LogChannel", + "description": "Details of an Asterisk log channel", + "properties": { + "channel": { + "type": "string", + "description": "The log channel path", + "required": true + }, + "type": { + "type": "string", + "description": "Types of logs for the log channel", + "required": true + }, + "status": { + "type": "string", + "description": "Whether or not a log type is enabled", + "required": true + }, + "configuration": { + "type": "string", + "description": "The various log levels", + "required": true + } + } + }, + "Variable": { + "id": "Variable", + "description": "The value of a channel variable", + "properties": { + "value": { + "required": true, + "type": "string", + "description": "The value of the variable requested" + } + } + }, + "ConfigTuple": { + "id": "ConfigTuple", + "description": "A key/value pair that makes up part of a configuration object.", + "properties": { + "attribute": { + "required": true, + "type": "string", + "description": "A configuration object attribute." + }, + "value": { + "required": true, + "type": "string", + "description": "The value for the attribute." + } + } + } + } +} diff --git a/codegen/src/main/resources/codegen-data/ari_1_10_1/bridges.json b/codegen/src/main/resources/codegen-data/ari_1_10_1/bridges.json new file mode 100644 index 00000000..78bd3afa --- /dev/null +++ b/codegen/src/main/resources/codegen-data/ari_1_10_1/bridges.json @@ -0,0 +1,743 @@ +{ + "_copyright": "Copyright (C) 2012 - 2013, Digium, Inc.", + "_author": "David M. Lee, II ", + "_svn_revision": "$Revision$", + "apiVersion": "1.10.0", + "swaggerVersion": "1.1", + "basePath": "http://localhost:8088/ari", + "resourcePath": "/api-docs/bridges.{format}", + "apis": [ + { + "path": "/bridges", + "description": "Active bridges", + "operations": [ + { + "httpMethod": "GET", + "summary": "List all active bridges in Asterisk.", + "nickname": "list", + "responseClass": "List[Bridge]" + }, + { + "httpMethod": "POST", + "summary": "Create a new bridge.", + "notes": "This bridge persists until it has been shut down, or Asterisk has been shut down.", + "nickname": "create", + "responseClass": "Bridge", + "parameters": [ + { + "name": "type", + "description": "Comma separated list of bridge type attributes (mixing, holding, dtmf_events, proxy_media).", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "bridgeId", + "description": "Unique ID to give to the bridge being created.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "name", + "description": "Name to give to the bridge being created.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + } + ] + } + ] + }, + { + "path": "/bridges/{bridgeId}", + "description": "Individual bridge", + "operations": [ + { + "httpMethod": "POST", + "summary": "Create a new bridge or updates an existing one.", + "notes": "This bridge persists until it has been shut down, or Asterisk has been shut down.", + "nickname": "createWithId", + "responseClass": "Bridge", + "parameters": [ + { + "name": "type", + "description": "Comma separated list of bridge type attributes (mixing, holding, dtmf_events, proxy_media) to set.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "bridgeId", + "description": "Unique ID to give to the bridge being created.", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "name", + "description": "Set the name of the bridge.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + } + ] + }, + { + "httpMethod": "GET", + "summary": "Get bridge details.", + "nickname": "get", + "responseClass": "Bridge", + "parameters": [ + { + "name": "bridgeId", + "description": "Bridge's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Bridge not found" + } + ] + }, + { + "httpMethod": "DELETE", + "summary": "Shut down a bridge.", + "notes": "If any channels are in this bridge, they will be removed and resume whatever they were doing beforehand.", + "nickname": "destroy", + "responseClass": "void", + "parameters": [ + { + "name": "bridgeId", + "description": "Bridge's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Bridge not found" + } + ] + } + ] + }, + { + "path": "/bridges/{bridgeId}/addChannel", + "description": "Add a channel to a bridge", + "operations": [ + { + "httpMethod": "POST", + "summary": "Add a channel to a bridge.", + "nickname": "addChannel", + "responseClass": "void", + "parameters": [ + { + "name": "bridgeId", + "description": "Bridge's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "channel", + "description": "Ids of channels to add to bridge", + "paramType": "query", + "required": true, + "allowMultiple": true, + "dataType": "string" + }, + { + "name": "role", + "description": "Channel's role in the bridge", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 400, + "reason": "Channel not found" + }, + { + "code": 404, + "reason": "Bridge not found" + }, + { + "code": 409, + "reason": "Bridge not in Stasis application; Channel currently recording" + }, + { + "code": 422, + "reason": "Channel not in Stasis application" + } + ] + } + ] + }, + { + "path": "/bridges/{bridgeId}/removeChannel", + "description": "Remove a channel from a bridge", + "operations": [ + { + "httpMethod": "POST", + "summary": "Remove a channel from a bridge.", + "nickname": "removeChannel", + "responseClass": "void", + "parameters": [ + { + "name": "bridgeId", + "description": "Bridge's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "channel", + "description": "Ids of channels to remove from bridge", + "paramType": "query", + "required": true, + "allowMultiple": true, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 400, + "reason": "Channel not found" + }, + { + "code": 404, + "reason": "Bridge not found" + }, + { + "code": 409, + "reason": "Bridge not in Stasis application" + }, + { + "code": 422, + "reason": "Channel not in this bridge" + } + ] + } + ] + }, + { + "path": "/bridges/{bridgeId}/videoSource/{channelId}", + "description": "Set a channel as the video source in a multi-party bridge", + "operations": [ + { + "httpMethod": "POST", + "summary": "Set a channel as the video source in a multi-party mixing bridge. This operation has no effect on bridges with two or fewer participants.", + "nickname": "setVideoSource", + "responseClass": "void", + "parameters": [ + { + "name": "bridgeId", + "description": "Bridge's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "channelId", + "description": "Channel's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Bridge or Channel not found" + }, + { + "code": 409, + "reason": "Channel not in Stasis application" + }, + { + "code": 422, + "reason": "Channel not in this Bridge" + } + ] + } + ] + }, + { + "path": "/bridges/{bridgeId}/videoSource", + "description": "Removes any explicit video source", + "operations": [ + { + "httpMethod": "DELETE", + "summary": "Removes any explicit video source in a multi-party mixing bridge. This operation has no effect on bridges with two or fewer participants. When no explicit video source is set, talk detection will be used to determine the active video stream.", + "nickname": "clearVideoSource", + "responseClass": "void", + "parameters": [ + { + "name": "bridgeId", + "description": "Bridge's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Bridge not found" + } + ] + } + ] + }, + { + "path": "/bridges/{bridgeId}/moh", + "description": "Play music on hold to a bridge", + "operations": [ + { + "httpMethod": "POST", + "summary": "Play music on hold to a bridge or change the MOH class that is playing.", + "nickname": "startMoh", + "responseClass": "void", + "parameters": [ + { + "name": "bridgeId", + "description": "Bridge's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "mohClass", + "description": "Channel's id", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Bridge not found" + }, + { + "code": 409, + "reason": "Bridge not in Stasis application" + } + ] + }, + { + "httpMethod": "DELETE", + "summary": "Stop playing music on hold to a bridge.", + "notes": "This will only stop music on hold being played via POST bridges/{bridgeId}/moh.", + "nickname": "stopMoh", + "responseClass": "void", + "parameters": [ + { + "name": "bridgeId", + "description": "Bridge's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Bridge not found" + }, + { + "code": 409, + "reason": "Bridge not in Stasis application" + } + ] + } + ] + }, + { + "path": "/bridges/{bridgeId}/play", + "description": "Play media to the participants of a bridge", + "operations": [ + { + "httpMethod": "POST", + "summary": "Start playback of media on a bridge.", + "notes": "The media URI may be any of a number of URI's. Currently sound:, recording:, number:, digits:, characters:, and tone: URI's are supported. This operation creates a playback resource that can be used to control the playback of media (pause, rewind, fast forward, etc.)", + "nickname": "play", + "responseClass": "Playback", + "parameters": [ + { + "name": "bridgeId", + "description": "Bridge's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "media", + "description": "Media's URI to play.", + "paramType": "query", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "lang", + "description": "For sounds, selects language for sound.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "offsetms", + "description": "Number of media to skip before playing.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "int", + "defaultValue": 0, + "allowableValues": { + "valueType": "RANGE", + "min": 0 + } + + }, + { + "name": "skipms", + "description": "Number of milliseconds to skip for forward/reverse operations.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "int", + "defaultValue": 3000, + "allowableValues": { + "valueType": "RANGE", + "min": 0 + } + }, + { + "name": "playbackId", + "description": "Playback Id.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Bridge not found" + }, + { + "code": 409, + "reason": "Bridge not in a Stasis application" + } + ] + } + ] + }, + { + "path": "/bridges/{bridgeId}/play/{playbackId}", + "description": "Play media to a bridge", + "operations": [ + { + "httpMethod": "POST", + "summary": "Start playback of media on a bridge.", + "notes": "The media URI may be any of a number of URI's. Currently sound:, recording:, number:, digits:, characters:, and tone: URI's are supported. This operation creates a playback resource that can be used to control the playback of media (pause, rewind, fast forward, etc.)", + "nickname": "playWithId", + "responseClass": "Playback", + "parameters": [ + { + "name": "bridgeId", + "description": "Bridge's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "playbackId", + "description": "Playback ID.", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "media", + "description": "Media's URI to play.", + "paramType": "query", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "lang", + "description": "For sounds, selects language for sound.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "offsetms", + "description": "Number of media to skip before playing.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "int", + "defaultValue": 0, + "allowableValues": { + "valueType": "RANGE", + "min": 0 + } + }, + { + "name": "skipms", + "description": "Number of milliseconds to skip for forward/reverse operations.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "int", + "defaultValue": 3000, + "allowableValues": { + "valueType": "RANGE", + "min": 0 + } + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Bridge not found" + }, + { + "code": 409, + "reason": "Bridge not in a Stasis application" + } + ] + + } + ] + }, + { + "path": "/bridges/{bridgeId}/record", + "description": "Record audio on a bridge", + "operations": [ + { + "httpMethod": "POST", + "summary": "Start a recording.", + "notes": "This records the mixed audio from all channels participating in this bridge.", + "nickname": "record", + "responseClass": "LiveRecording", + "parameters": [ + { + "name": "bridgeId", + "description": "Bridge's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "name", + "description": "Recording's filename", + "paramType": "query", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "format", + "description": "Format to encode audio in", + "paramType": "query", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "maxDurationSeconds", + "description": "Maximum duration of the recording, in seconds. 0 for no limit.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "int", + "defaultValue": 0, + "allowableValues": { + "valueType": "RANGE", + "min": 0 + } + }, + { + "name": "maxSilenceSeconds", + "description": "Maximum duration of silence, in seconds. 0 for no limit.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "int", + "defaultValue": 0, + "allowableValues": { + "valueType": "RANGE", + "min": 0 + } + }, + { + "name": "ifExists", + "description": "Action to take if a recording with the same name already exists.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string", + "defaultValue": "fail", + "allowableValues": { + "valueType": "LIST", + "values": [ + "fail", + "overwrite", + "append" + ] + } + }, + { + "name": "beep", + "description": "Play beep when recording begins", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "boolean", + "defaultValue": false + }, + { + "name": "terminateOn", + "description": "DTMF input to terminate recording.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string", + "defaultValue": "none", + "allowableValues": { + "valueType": "LIST", + "values": [ + "none", + "any", + "*", + "#" + ] + } + } + ], + "errorResponses": [ + { + "code": 400, + "reason": "Invalid parameters" + }, + { + "code": 404, + "reason": "Bridge not found" + }, + { + "code": 409, + "reason": "Bridge is not in a Stasis application; A recording with the same name already exists on the system and can not be overwritten because it is in progress or ifExists=fail" + }, + { + "code": 422, + "reason": "The format specified is unknown on this system" + } + ] + } + ] + } + ], + "models": { + "Bridge": { + "id": "Bridge", + "description": "The merging of media from one or more channels.\n\nEveryone on the bridge receives the same audio.", + "properties": { + "id": { + "type": "string", + "description": "Unique identifier for this bridge", + "required": true + }, + "technology": { + "type": "string", + "description": "Name of the current bridging technology", + "required": true + }, + "bridge_type": { + "type": "string", + "description": "Type of bridge technology", + "required": true, + "allowableValues": { + "valueType": "LIST", + "values": [ + "mixing", + "holding" + ] + } + }, + "bridge_class": { + "type": "string", + "description": "Bridging class", + "required": true + }, + "creator": { + "type": "string", + "description": "Entity that created the bridge", + "required": true + }, + "name": { + "type": "string", + "description": "Name the creator gave the bridge", + "required": true + }, + "channels": { + "type": "List[string]", + "description": "Ids of channels participating in this bridge", + "required": true + }, + "video_mode": { + "type": "string", + "description": "The video mode the bridge is using. One of 'none', 'talker', or 'single'.", + "required": false + }, + "video_source_id": { + "type": "string", + "description": "The ID of the channel that is the source of video in this bridge, if one exists.", + "required": false + }, + "creationtime": { + "required": true, + "type": "Date", + "description": "Timestamp when bridge was created" + } + } + } + } +} diff --git a/codegen/src/main/resources/codegen-data/ari_1_10_1/channels.json b/codegen/src/main/resources/codegen-data/ari_1_10_1/channels.json new file mode 100644 index 00000000..afe95dc2 --- /dev/null +++ b/codegen/src/main/resources/codegen-data/ari_1_10_1/channels.json @@ -0,0 +1,1621 @@ +{ + "_copyright": "Copyright (C) 2012 - 2013, Digium, Inc.", + "_author": "David M. Lee, II ", + "_svn_revision": "$Revision$", + "apiVersion": "1.10.0", + "swaggerVersion": "1.1", + "basePath": "http://localhost:8088/ari", + "resourcePath": "/api-docs/channels.{format}", + "apis": [ + { + "path": "/channels", + "description": "Active channels", + "operations": [ + { + "httpMethod": "GET", + "summary": "List all active channels in Asterisk.", + "nickname": "list", + "responseClass": "List[Channel]" + }, + { + "httpMethod": "POST", + "summary": "Create a new channel (originate).", + "notes": "The new channel is created immediately and a snapshot of it returned. If a Stasis application is provided it will be automatically subscribed to the originated channel for further events and updates.", + "nickname": "originate", + "responseClass": "Channel", + "parameters": [ + { + "name": "endpoint", + "description": "Endpoint to call.", + "paramType": "query", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "extension", + "description": "The extension to dial after the endpoint answers. Mutually exclusive with 'app'.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "context", + "description": "The context to dial after the endpoint answers. If omitted, uses 'default'. Mutually exclusive with 'app'.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "priority", + "description": "The priority to dial after the endpoint answers. If omitted, uses 1. Mutually exclusive with 'app'.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "long" + }, + { + "name": "label", + "description": "The label to dial after the endpoint answers. Will supersede 'priority' if provided. Mutually exclusive with 'app'.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "app", + "description": "The application that is subscribed to the originated channel. When the channel is answered, it will be passed to this Stasis application. Mutually exclusive with 'context', 'extension', 'priority', and 'label'.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "appArgs", + "description": "The application arguments to pass to the Stasis application provided by 'app'. Mutually exclusive with 'context', 'extension', 'priority', and 'label'.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "callerId", + "description": "CallerID to use when dialing the endpoint or extension.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "timeout", + "description": "Timeout (in seconds) before giving up dialing, or -1 for no timeout.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "int", + "defaultValue": 30 + }, + { + "name": "variables", + "description": "The \"variables\" key in the body object holds variable key/value pairs to set on the channel on creation. Other keys in the body object are interpreted as query parameters. Ex. { \"endpoint\": \"SIP/Alice\", \"variables\": { \"CALLERID(name)\": \"Alice\" } }", + "paramType": "body", + "required": false, + "dataType": "containers", + "allowMultiple": false + }, + { + "name": "channelId", + "description": "The unique id to assign the channel on creation.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "otherChannelId", + "description": "The unique id to assign the second channel when using local channels.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "originator", + "description": "The unique id of the channel which is originating this one.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "formats", + "description": "The format name capability list to use if originator is not specified. Ex. \"ulaw,slin16\". Format names can be found with \"core show codecs\".", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 400, + "reason": "Invalid parameters for originating a channel." + }, + { + "code": 409, + "reason": "Channel with given unique ID already exists." + } + ] + } + ] + }, + { + "path": "/channels/{channelId}", + "description": "Active channel", + "operations": [ + { + "httpMethod": "GET", + "summary": "Channel details.", + "nickname": "get", + "responseClass": "Channel", + "parameters": [ + { + "name": "channelId", + "description": "Channel's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Channel not found" + } + ] + }, + { + "httpMethod": "POST", + "summary": "Create a new channel (originate with id).", + "notes": "The new channel is created immediately and a snapshot of it returned. If a Stasis application is provided it will be automatically subscribed to the originated channel for further events and updates.", + "nickname": "originateWithId", + "responseClass": "Channel", + "parameters": [ + { + "name": "channelId", + "description": "The unique id to assign the channel on creation.", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "endpoint", + "description": "Endpoint to call.", + "paramType": "query", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "extension", + "description": "The extension to dial after the endpoint answers. Mutually exclusive with 'app'.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "context", + "description": "The context to dial after the endpoint answers. If omitted, uses 'default'. Mutually exclusive with 'app'.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "priority", + "description": "The priority to dial after the endpoint answers. If omitted, uses 1. Mutually exclusive with 'app'.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "long" + }, + { + "name": "label", + "description": "The label to dial after the endpoint answers. Will supersede 'priority' if provided. Mutually exclusive with 'app'.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "app", + "description": "The application that is subscribed to the originated channel. When the channel is answered, it will be passed to this Stasis application. Mutually exclusive with 'context', 'extension', 'priority', and 'label'.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "appArgs", + "description": "The application arguments to pass to the Stasis application provided by 'app'. Mutually exclusive with 'context', 'extension', 'priority', and 'label'.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "callerId", + "description": "CallerID to use when dialing the endpoint or extension.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "timeout", + "description": "Timeout (in seconds) before giving up dialing, or -1 for no timeout.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "int", + "defaultValue": 30 + }, + { + "name": "variables", + "description": "The \"variables\" key in the body object holds variable key/value pairs to set on the channel on creation. Other keys in the body object are interpreted as query parameters. Ex. { \"endpoint\": \"SIP/Alice\", \"variables\": { \"CALLERID(name)\": \"Alice\" } }", + "paramType": "body", + "required": false, + "dataType": "containers", + "allowMultiple": false + }, + { + "name": "otherChannelId", + "description": "The unique id to assign the second channel when using local channels.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "originator", + "description": "The unique id of the channel which is originating this one.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "formats", + "description": "The format name capability list to use if originator is not specified. Ex. \"ulaw,slin16\". Format names can be found with \"core show codecs\".", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 400, + "reason": "Invalid parameters for originating a channel." + }, + { + "code": 409, + "reason": "Channel with given unique ID already exists." + } + ] + }, + { + "httpMethod": "DELETE", + "summary": "Delete (i.e. hangup) a channel.", + "nickname": "hangup", + "responseClass": "void", + "parameters": [ + { + "name": "channelId", + "description": "Channel's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "reason", + "description": "Reason for hanging up the channel", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string", + "defalutValue": "normal", + "allowableValues": { + "valueType": "LIST", + "values": [ + "normal", + "busy", + "congestion", + "no_answer" + ] + } + } + ], + "errorResponses": [ + { + "code": 400, + "reason": "Invalid reason for hangup provided" + }, + { + "code": 404, + "reason": "Channel not found" + } + ] + } + ] + }, + { + "path": "/channels/{channelId}/continue", + "description": "Exit application; continue execution in the dialplan", + "operations": [ + { + "httpMethod": "POST", + "summary": "Exit application; continue execution in the dialplan.", + "nickname": "continueInDialplan", + "responseClass": "void", + "parameters": [ + { + "name": "channelId", + "description": "Channel's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "context", + "description": "The context to continue to.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "extension", + "description": "The extension to continue to.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "priority", + "description": "The priority to continue to.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "int" + }, + { + "name": "label", + "description": "The label to continue to - will supersede 'priority' if both are provided.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Channel not found" + }, + { + "code": 409, + "reason": "Channel not in a Stasis application" + } + ] + } + ] + }, + { + "path": "/channels/{channelId}/move", + "description": "Move the channel from one Stasis application to another.", + "operations": [ + { + "httpMethod": "POST", + "summary": "Move the channel from one Stasis application to another.", + "nickname": "move", + "responseClass": "void", + "parameters": [ + { + "name": "channelId", + "description": "Channel's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "app", + "description": "The channel will be passed to this Stasis application.", + "paramType": "query", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "appArgs", + "description": "The application arguments to pass to the Stasis application provided by 'app'.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": "404", + "reason": "Channel not found" + }, + { + "code": "409", + "reason": "Channel not in a Stasis application" + } + ] + } + ] + }, + { + "path": "/channels/{channelId}/redirect", + "description": "Inform the channel that it should redirect itself to a different location. Note that this will almost certainly cause the channel to exit the application.", + "operations": [ + { + "httpMethod": "POST", + "summary": "Redirect the channel to a different location.", + "nickname": "redirect", + "responseClass": "void", + "parameters": [ + { + "name": "channelId", + "description": "Channel's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "endpoint", + "description": "The endpoint to redirect the channel to", + "paramType": "query", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 400, + "reason": "Endpoint parameter not provided" + }, + { + "code": 404, + "reason": "Channel or endpoint not found" + }, + { + "code": 409, + "reason": "Channel not in a Stasis application" + }, + { + "code": 422, + "reason": "Endpoint is not the same type as the channel" + } + ] + } + ] + }, + { + "path": "/channels/{channelId}/answer", + "description": "Answer a channel", + "operations": [ + { + "httpMethod": "POST", + "summary": "Answer a channel.", + "nickname": "answer", + "responseClass": "void", + "parameters": [ + { + "name": "channelId", + "description": "Channel's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Channel not found" + }, + { + "code": 409, + "reason": "Channel not in a Stasis application" + } + ] + } + ] + }, + { + "path": "/channels/{channelId}/ring", + "description": "Send a ringing indication to a channel", + "operations": [ + { + "httpMethod": "POST", + "summary": "Indicate ringing to a channel.", + "nickname": "ring", + "responseClass": "void", + "parameters": [ + { + "name": "channelId", + "description": "Channel's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Channel not found" + }, + { + "code": 409, + "reason": "Channel not in a Stasis application" + } + ] + }, + { + "httpMethod": "DELETE", + "summary": "Stop ringing indication on a channel if locally generated.", + "nickname": "ringStop", + "responseClass": "void", + "parameters": [ + { + "name": "channelId", + "description": "Channel's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Channel not found" + }, + { + "code": 409, + "reason": "Channel not in a Stasis application" + } + ] + } + ] + }, + { + "path": "/channels/{channelId}/dtmf", + "description": "Send DTMF to a channel", + "operations": [ + { + "httpMethod": "POST", + "summary": "Send provided DTMF to a given channel.", + "nickname": "sendDTMF", + "responseClass": "void", + "parameters": [ + { + "name": "channelId", + "description": "Channel's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "dtmf", + "description": "DTMF To send.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "before", + "description": "Amount of time to wait before DTMF digits (specified in milliseconds) start.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "int", + "defaultValue": 0 + }, + { + "name": "between", + "description": "Amount of time in between DTMF digits (specified in milliseconds).", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "int", + "defaultValue": 100 + }, + { + "name": "duration", + "description": "Length of each DTMF digit (specified in milliseconds).", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "int", + "defaultValue": 100 + }, + { + "name": "after", + "description": "Amount of time to wait after DTMF digits (specified in milliseconds) end.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "int", + "defaultValue": 0 + } + ], + "errorResponses": [ + { + "code": 400, + "reason": "DTMF is required" + }, + { + "code": 404, + "reason": "Channel not found" + }, + { + "code": 409, + "reason": "Channel not in a Stasis application" + } + ] + } + ] + }, + { + "path": "/channels/{channelId}/mute", + "description": "Mute a channel", + "operations": [ + { + "httpMethod": "POST", + "summary": "Mute a channel.", + "nickname": "mute", + "responseClass": "void", + "parameters": [ + { + "name": "channelId", + "description": "Channel's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "direction", + "description": "Direction in which to mute audio", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string", + "defaultValue": "both", + "allowableValues": { + "valueType": "LIST", + "values": [ + "both", + "in", + "out" + ] + } + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Channel not found" + }, + { + "code": 409, + "reason": "Channel not in a Stasis application" + } + ] + }, + { + "httpMethod": "DELETE", + "summary": "Unmute a channel.", + "nickname": "unmute", + "responseClass": "void", + "parameters": [ + { + "name": "channelId", + "description": "Channel's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "direction", + "description": "Direction in which to unmute audio", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string", + "defaultValue": "both", + "allowableValues": { + "valueType": "LIST", + "values": [ + "both", + "in", + "out" + ] + } + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Channel not found" + }, + { + "code": 409, + "reason": "Channel not in a Stasis application" + } + ] + } + ] + }, + { + "path": "/channels/{channelId}/hold", + "description": "Put a channel on hold", + "operations": [ + { + "httpMethod": "POST", + "summary": "Hold a channel.", + "nickname": "hold", + "responseClass": "void", + "parameters": [ + { + "name": "channelId", + "description": "Channel's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Channel not found" + }, + { + "code": 409, + "reason": "Channel not in a Stasis application" + } + ] + }, + { + "httpMethod": "DELETE", + "summary": "Remove a channel from hold.", + "nickname": "unhold", + "responseClass": "void", + "parameters": [ + { + "name": "channelId", + "description": "Channel's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Channel not found" + }, + { + "code": 409, + "reason": "Channel not in a Stasis application" + } + ] + } + ] + }, + { + "path": "/channels/{channelId}/moh", + "description": "Play music on hold to a channel", + "operations": [ + { + "httpMethod": "POST", + "summary": "Play music on hold to a channel.", + "notes": "Using media operations such as /play on a channel playing MOH in this manner will suspend MOH without resuming automatically. If continuing music on hold is desired, the stasis application must reinitiate music on hold.", + "nickname": "startMoh", + "responseClass": "void", + "parameters": [ + { + "name": "channelId", + "description": "Channel's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "mohClass", + "description": "Music on hold class to use", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Channel not found" + }, + { + "code": 409, + "reason": "Channel not in a Stasis application" + } + ] + }, + { + "httpMethod": "DELETE", + "summary": "Stop playing music on hold to a channel.", + "nickname": "stopMoh", + "responseClass": "void", + "parameters": [ + { + "name": "channelId", + "description": "Channel's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Channel not found" + }, + { + "code": 409, + "reason": "Channel not in a Stasis application" + } + ] + } + ] + }, + { + "path": "/channels/{channelId}/silence", + "description": "Play silence to a channel", + "operations": [ + { + "httpMethod": "POST", + "summary": "Play silence to a channel.", + "notes": "Using media operations such as /play on a channel playing silence in this manner will suspend silence without resuming automatically.", + "nickname": "startSilence", + "responseClass": "void", + "parameters": [ + { + "name": "channelId", + "description": "Channel's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Channel not found" + }, + { + "code": 409, + "reason": "Channel not in a Stasis application" + } + ] + }, + { + "httpMethod": "DELETE", + "summary": "Stop playing silence to a channel.", + "nickname": "stopSilence", + "responseClass": "void", + "parameters": [ + { + "name": "channelId", + "description": "Channel's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Channel not found" + }, + { + "code": 409, + "reason": "Channel not in a Stasis application" + } + ] + } + ] + }, + { + "path": "/channels/{channelId}/play", + "description": "Play media to a channel", + "operations": [ + { + "httpMethod": "POST", + "summary": "Start playback of media.", + "notes": "The media URI may be any of a number of URI's. Currently sound:, recording:, number:, digits:, characters:, and tone: URI's are supported. This operation creates a playback resource that can be used to control the playback of media (pause, rewind, fast forward, etc.)", + "nickname": "play", + "responseClass": "Playback", + "parameters": [ + { + "name": "channelId", + "description": "Channel's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "media", + "description": "Media's URI to play.", + "paramType": "query", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "lang", + "description": "For sounds, selects language for sound.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "offsetms", + "description": "Number of media to skip before playing.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "int" + }, + { + "name": "skipms", + "description": "Number of milliseconds to skip for forward/reverse operations.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "int", + "defaultValue": 3000 + }, + { + "name": "playbackId", + "description": "Playback ID.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Channel not found" + }, + { + "code": 409, + "reason": "Channel not in a Stasis application" + } + ] + } + ] + }, + { + "path": "/channels/{channelId}/play/{playbackId}", + "description": "Play media to a channel", + "operations": [ + { + "httpMethod": "POST", + "summary": "Start playback of media and specify the playbackId.", + "notes": "The media URI may be any of a number of URI's. Currently sound:, recording:, number:, digits:, characters:, and tone: URI's are supported. This operation creates a playback resource that can be used to control the playback of media (pause, rewind, fast forward, etc.)", + "nickname": "playWithId", + "responseClass": "Playback", + "parameters": [ + { + "name": "channelId", + "description": "Channel's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "playbackId", + "description": "Playback ID.", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "media", + "description": "Media's URI to play.", + "paramType": "query", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "lang", + "description": "For sounds, selects language for sound.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "offsetms", + "description": "Number of media to skip before playing.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "int" + }, + { + "name": "skipms", + "description": "Number of milliseconds to skip for forward/reverse operations.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "int", + "defaultValue": 3000 + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Channel not found" + }, + { + "code": 409, + "reason": "Channel not in a Stasis application" + } + ] + } + ] + }, + { + "path": "/channels/{channelId}/record", + "description": "Record audio from a channel", + "operations": [ + { + "httpMethod": "POST", + "summary": "Start a recording.", + "notes": "Record audio from a channel. Note that this will not capture audio sent to the channel. The bridge itself has a record feature if that's what you want.", + "nickname": "record", + "responseClass": "LiveRecording", + "parameters": [ + { + "name": "channelId", + "description": "Channel's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "name", + "description": "Recording's filename", + "paramType": "query", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "format", + "description": "Format to encode audio in", + "paramType": "query", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "maxDurationSeconds", + "description": "Maximum duration of the recording, in seconds. 0 for no limit", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "int", + "defaultValue": 0, + "allowableValues": { + "valueType": "RANGE", + "min": 0 + } + }, + { + "name": "maxSilenceSeconds", + "description": "Maximum duration of silence, in seconds. 0 for no limit", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "int", + "defaultValue": 0, + "allowableValues": { + "valueType": "RANGE", + "min": 0 + } + }, + { + "name": "ifExists", + "description": "Action to take if a recording with the same name already exists.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string", + "defaultValue": "fail", + "allowableValues": { + "valueType": "LIST", + "values": [ + "fail", + "overwrite", + "append" + ] + } + }, + { + "name": "beep", + "description": "Play beep when recording begins", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "boolean", + "defaultValue": false + }, + { + "name": "terminateOn", + "description": "DTMF input to terminate recording", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string", + "defaultValue": "none", + "allowableValues": { + "valueType": "LIST", + "values": [ + "none", + "any", + "*", + "#" + ] + } + } + ], + "errorResponses": [ + { + "code": 400, + "reason": "Invalid parameters" + }, + { + "code": 404, + "reason": "Channel not found" + }, + { + "code": 409, + "reason": "Channel is not in a Stasis application; the channel is currently bridged with other hcannels; A recording with the same name already exists on the system and can not be overwritten because it is in progress or ifExists=fail" + }, + { + "code": 422, + "reason": "The format specified is unknown on this system" + } + ] + } + ] + }, + { + "path": "/channels/{channelId}/variable", + "description": "Variables on a channel", + "operations": [ + { + "httpMethod": "GET", + "summary": "Get the value of a channel variable or function.", + "nickname": "getChannelVar", + "responseClass": "Variable", + "parameters": [ + { + "name": "channelId", + "description": "Channel's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "variable", + "description": "The channel variable or function to get", + "paramType": "query", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 400, + "reason": "Missing variable parameter." + }, + { + "code": 404, + "reason": "Channel or variable not found" + }, + { + "code": 409, + "reason": "Channel not in a Stasis application" + } + ] + }, + { + "httpMethod": "POST", + "summary": "Set the value of a channel variable or function.", + "nickname": "setChannelVar", + "responseClass": "void", + "parameters": [ + { + "name": "channelId", + "description": "Channel's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "variable", + "description": "The channel variable or function to set", + "paramType": "query", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "value", + "description": "The value to set the variable to", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 400, + "reason": "Missing variable parameter." + }, + { + "code": 404, + "reason": "Channel not found" + }, + { + "code": 409, + "reason": "Channel not in a Stasis application" + } + ] + } + ] + }, + { + "path": "/channels/{channelId}/snoop", + "description": "Snoop (spy/whisper) on a channel", + "operations": [ + { + "httpMethod": "POST", + "summary": "Start snooping.", + "notes": "Snoop (spy/whisper) on a specific channel.", + "nickname": "snoopChannel", + "responseClass": "Channel", + "parameters": [ + { + "name": "channelId", + "description": "Channel's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "spy", + "description": "Direction of audio to spy on", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string", + "defaultValue": "none", + "allowableValues": { + "valueType": "LIST", + "values": [ + "none", + "both", + "out", + "in" + ] + } + }, + { + "name": "whisper", + "description": "Direction of audio to whisper into", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string", + "defaultValue": "none", + "allowableValues": { + "valueType": "LIST", + "values": [ + "none", + "both", + "out", + "in" + ] + } + }, + { + "name": "app", + "description": "Application the snooping channel is placed into", + "paramType": "query", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "appArgs", + "description": "The application arguments to pass to the Stasis application", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "snoopId", + "description": "Unique ID to assign to snooping channel", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 400, + "reason": "Invalid parameters" + }, + { + "code": 404, + "reason": "Channel not found" + } + ] + } + ] + }, + { + "path": "/channels/{channelId}/snoop/{snoopId}", + "description": "Snoop (spy/whisper) on a channel", + "operations": [ + { + "httpMethod": "POST", + "summary": "Start snooping.", + "notes": "Snoop (spy/whisper) on a specific channel.", + "nickname": "snoopChannelWithId", + "responseClass": "Channel", + "parameters": [ + { + "name": "channelId", + "description": "Channel's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "snoopId", + "description": "Unique ID to assign to snooping channel", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "spy", + "description": "Direction of audio to spy on", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string", + "defaultValue": "none", + "allowableValues": { + "valueType": "LIST", + "values": [ + "none", + "both", + "out", + "in" + ] + } + }, + { + "name": "whisper", + "description": "Direction of audio to whisper into", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string", + "defaultValue": "none", + "allowableValues": { + "valueType": "LIST", + "values": [ + "none", + "both", + "out", + "in" + ] + } + }, + { + "name": "app", + "description": "Application the snooping channel is placed into", + "paramType": "query", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "appArgs", + "description": "The application arguments to pass to the Stasis application", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 400, + "reason": "Invalid parameters" + }, + { + "code": 404, + "reason": "Channel not found" + } + ] + } + ] + } + ], + "models": { + "Dialed": { + "id": "Dialed", + "description": "Dialed channel information.", + "properties": {} + }, + "DialplanCEP": { + "id": "DialplanCEP", + "description": "Dialplan location (context/extension/priority)", + "properties": { + "context": { + "required": true, + "type": "string", + "description": "Context in the dialplan" + }, + "exten": { + "required": true, + "type": "string", + "description": "Extension in the dialplan" + }, + "priority": { + "required": true, + "type": "long", + "description": "Priority in the dialplan" + } + } + }, + "CallerID": { + "id": "CallerID", + "description": "Caller identification", + "properties": { + "name": { + "required": true, + "type": "string" + }, + "number": { + "required": true, + "type": "string" + } + } + }, + "Channel": { + "id": "Channel", + "description": "A specific communication connection between Asterisk and an Endpoint.", + "properties": { + "id": { + "required": true, + "type": "string", + "description": "Unique identifier of the channel.\n\nThis is the same as the Uniqueid field in AMI." + }, + "name": { + "required": true, + "type": "string", + "description": "Name of the channel (i.e. SIP/foo-0000a7e3)" + }, + "state": { + "required": true, + "type": "string", + "allowableValues": { + "valueType": "LIST", + "values": [ + "Down", + "Rsrved", + "OffHook", + "Dialing", + "Ring", + "Ringing", + "Up", + "Busy", + "Dialing Offhook", + "Pre-ring", + "Unknown" + ] + } + }, + "caller": { + "required": true, + "type": "CallerID" + }, + "connected": { + "required": true, + "type": "CallerID" + }, + "accountcode": { + "required": true, + "type": "string" + }, + "dialplan": { + "required": true, + "type": "DialplanCEP", + "description": "Current location in the dialplan" + }, + "creationtime": { + "required": true, + "type": "Date", + "description": "Timestamp when channel was created" + }, + "language": { + "required": true, + "type": "string", + "description": "The default spoken language" + } + } + } + } +} diff --git a/codegen/src/main/resources/codegen-data/ari_1_10_1/deviceStates.json b/codegen/src/main/resources/codegen-data/ari_1_10_1/deviceStates.json new file mode 100644 index 00000000..16d3af75 --- /dev/null +++ b/codegen/src/main/resources/codegen-data/ari_1_10_1/deviceStates.json @@ -0,0 +1,151 @@ +{ + "_copyright": "Copyright (C) 2012 - 2013, Digium, Inc.", + "_author": "Kevin Harwell ", + "_svn_revision": "$Revision$", + "apiVersion": "1.10.0", + "swaggerVersion": "1.1", + "basePath": "http://localhost:8088/ari", + "resourcePath": "/api-docs/deviceStates.{format}", + "apis": [ + { + "path": "/deviceStates", + "description": "Device states", + "operations": [ + { + "httpMethod": "GET", + "summary": "List all ARI controlled device states.", + "nickname": "list", + "responseClass": "List[DeviceState]" + } + ] + }, + { + "path": "/deviceStates/{deviceName}", + "description": "Device state", + "operations": [ + { + "httpMethod": "GET", + "summary": "Retrieve the current state of a device.", + "nickname": "get", + "responseClass": "DeviceState", + "parameters": [ + { + "name": "deviceName", + "description": "Name of the device", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ] + }, + { + "httpMethod": "PUT", + "summary": "Change the state of a device controlled by ARI. (Note - implicitly creates the device state).", + "nickname": "update", + "responseClass": "void", + "parameters": [ + { + "name": "deviceName", + "description": "Name of the device", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "deviceState", + "description": "Device state value", + "paramType": "query", + "required": true, + "allowMultiple": false, + "dataType": "string", + "allowableValues": { + "valueType": "LIST", + "values": [ + "NOT_INUSE", + "INUSE", + "BUSY", + "INVALID", + "UNAVAILABLE", + "RINGING", + "RINGINUSE", + "ONHOLD" + ] + } + + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Device name is missing" + }, + { + "code": 409, + "reason": "Uncontrolled device specified" + } + ] + }, + { + "httpMethod": "DELETE", + "summary": "Destroy a device-state controlled by ARI.", + "nickname": "delete", + "responseClass": "void", + "parameters": [ + { + "name": "deviceName", + "description": "Name of the device", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Device name is missing" + }, + { + "code": 409, + "reason": "Uncontrolled device specified" + } + ] + } + ] + } + ], + "models": { + "DeviceState": { + "id": "DeviceState", + "description": "Represents the state of a device.", + "properties": { + "name": { + "type": "string", + "description": "Name of the device.", + "required": true + }, + "state": { + "type": "string", + "description": "Device's state", + "required": true, + "allowableValues": { + "valueType": "LIST", + "values": [ + "UNKNOWN", + "NOT_INUSE", + "INUSE", + "BUSY", + "INVALID", + "UNAVAILABLE", + "RINGING", + "RINGINUSE", + "ONHOLD" + ] + } + } + } + } + } +} diff --git a/codegen/src/main/resources/codegen-data/ari_1_10_1/endpoints.json b/codegen/src/main/resources/codegen-data/ari_1_10_1/endpoints.json new file mode 100644 index 00000000..13a5beda --- /dev/null +++ b/codegen/src/main/resources/codegen-data/ari_1_10_1/endpoints.json @@ -0,0 +1,279 @@ +{ + "_copyright": "Copyright (C) 2012 - 2013, Digium, Inc.", + "_author": "David M. Lee, II ", + "_svn_revision": "$Revision$", + "apiVersion": "1.10.0", + "swaggerVersion": "1.1", + "basePath": "http://localhost:8088/ari", + "resourcePath": "/api-docs/endpoints.{format}", + "apis": [ + { + "path": "/endpoints", + "description": "Asterisk endpoints", + "operations": [ + { + "httpMethod": "GET", + "summary": "List all endpoints.", + "nickname": "list", + "responseClass": "List[Endpoint]" + } + ] + }, + { + "path": "/endpoints/sendMessage", + "description": "Send a message to some technology URI or endpoint.", + "operations": [ + { + "httpMethod": "PUT", + "summary": "Send a message to some technology URI or endpoint.", + "nickname": "sendMessage", + "responseClass": "void", + "parameters": [ + { + "name": "to", + "description": "The endpoint resource or technology specific URI to send the message to. Valid resources are sip, pjsip, and xmpp.", + "paramType": "query", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "from", + "description": "The endpoint resource or technology specific identity to send this message from. Valid resources are sip, pjsip, and xmpp.", + "paramType": "query", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "body", + "description": "The body of the message", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "variables", + "descriptioni": "The \"variables\" key in the body object holds technology specific key/value pairs to append to the message. These can be interpreted and used by the various resource types; for example, pjsip and sip resource types will add the key/value pairs as SIP headers,", + "paramType": "body", + "required": false, + "dataType": "containers", + "allowMultiple": false + } + ], + "errorResponses": [ + { + "code": 400, + "reason": "Invalid parameters for sending a message." + }, + { + "code": 404, + "reason": "Endpoint not found" + } + ] + } + ] + }, + { + "path": "/endpoints/{tech}", + "description": "Asterisk endpoints", + "operations": [ + { + "httpMethod": "GET", + "summary": "List available endoints for a given endpoint technology.", + "nickname": "listByTech", + "responseClass": "List[Endpoint]", + "parameters": [ + { + "name": "tech", + "description": "Technology of the endpoints (sip,iax2,...)", + "paramType": "path", + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Endpoints not found" + } + ] + } + ] + }, + { + "path": "/endpoints/{tech}/{resource}", + "description": "Single endpoint", + "operations": [ + { + "httpMethod": "GET", + "summary": "Details for an endpoint.", + "nickname": "get", + "responseClass": "Endpoint", + "parameters": [ + { + "name": "tech", + "description": "Technology of the endpoint", + "paramType": "path", + "dataType": "string" + }, + { + "name": "resource", + "description": "ID of the endpoint", + "paramType": "path", + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 400, + "reason": "Invalid parameters for sending a message." + }, + { + "code": 404, + "reason": "Endpoints not found" + } + ] + } + ] + }, + { + "path": "/endpoints/{tech}/{resource}/sendMessage", + "description": "Send a message to some endpoint in a technology.", + "operations": [ + { + "httpMethod": "PUT", + "summary": "Send a message to some endpoint in a technology.", + "nickname": "sendMessageToEndpoint", + "responseClass": "void", + "parameters": [ + { + "name": "tech", + "description": "Technology of the endpoint", + "paramType": "path", + "dataType": "string" + }, + { + "name": "resource", + "description": "ID of the endpoint", + "paramType": "path", + "dataType": "string" + }, + { + "name": "from", + "description": "The endpoint resource or technology specific identity to send this message from. Valid resources are sip, pjsip, and xmpp.", + "paramType": "query", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "body", + "description": "The body of the message", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "variables", + "descriptioni": "The \"variables\" key in the body object holds technology specific key/value pairs to append to the message. These can be interpreted and used by the various resource types; for example, pjsip and sip resource types will add the key/value pairs as SIP headers,", + "paramType": "body", + "required": false, + "dataType": "containers", + "allowMultiple": false + } + ], + "errorResponses": [ + { + "code": 400, + "reason": "Invalid parameters for sending a message." + }, + { + "code": 404, + "reason": "Endpoint not found" + } + ] + } + ] + } + ], + "models": { + "Endpoint": { + "id": "Endpoint", + "description": "An external device that may offer/accept calls to/from Asterisk.\n\nUnlike most resources, which have a single unique identifier, an endpoint is uniquely identified by the technology/resource pair.", + "properties": { + "technology": { + "type": "string", + "description": "Technology of the endpoint", + "required": true + }, + "resource": { + "type": "string", + "description": "Identifier of the endpoint, specific to the given technology.", + "required": true + }, + "state": { + "type": "string", + "description": "Endpoint's state", + "required": false, + "allowableValues": { + "valueType": "LIST", + "values": [ + "unknown", + "offline", + "online" + ] + } + }, + "channel_ids": { + "type": "List[string]", + "description": "Id's of channels associated with this endpoint", + "required": true + } + } + }, + "TextMessageVariable": { + "id": "TextMessageVariable", + "description": "A key/value pair variable in a text message.", + "properties": { + "key": { + "type": "string", + "description": "A unique key identifying the variable.", + "required": true + }, + "value": { + "type": "string", + "description": "The value of the variable.", + "required": true + } + } + }, + "TextMessage": { + "id": "TextMessage", + "description": "A text message.", + "properties": { + "from": { + "type": "string", + "description": "A technology specific URI specifying the source of the message. For sip and pjsip technologies, any SIP URI can be specified. For xmpp, the URI must correspond to the client connection being used to send the message.", + "required": true + }, + "to": { + "type": "string", + "description": "A technology specific URI specifying the destination of the message. Valid technologies include sip, pjsip, and xmp. The destination of a message should be an endpoint.", + "required": true + }, + "body": { + "type": "string", + "description": "The text of the message.", + "required": true + }, + "variables": { + "type": "List[TextMessageVariable]", + "description": "Technology specific key/value pairs associated with the message.", + "required": false + } + } + } + } +} diff --git a/codegen/src/main/resources/codegen-data/ari_1_10_1/events.json b/codegen/src/main/resources/codegen-data/ari_1_10_1/events.json new file mode 100644 index 00000000..6a4fda8f --- /dev/null +++ b/codegen/src/main/resources/codegen-data/ari_1_10_1/events.json @@ -0,0 +1,903 @@ +{ + "_copyright": "Copyright (C) 2012 - 2013, Digium, Inc.", + "_author": "David M. Lee, II ", + "_svn_revision": "$Revision$", + "apiVersion": "1.10.0", + "swaggerVersion": "1.2", + "basePath": "http://localhost:8088/ari", + "resourcePath": "/api-docs/events.{format}", + "apis": [ + { + "path": "/events", + "description": "Events from Asterisk to applications", + "operations": [ + { + "httpMethod": "GET", + "upgrade": "websocket", + "websocketProtocol": "ari", + "summary": "WebSocket connection for events.", + "nickname": "eventWebsocket", + "responseClass": "Message", + "parameters": [ + { + "name": "app", + "description": "Applications to subscribe to.", + "paramType": "query", + "required": true, + "allowMultiple": true, + "dataType": "string" + }, + { + "name": "subscribeAll", + "description": "Subscribe to all Asterisk events. If provided, the applications listed will be subscribed to all events, effectively disabling the application specific subscriptions. Default is 'false'.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "boolean" + } + ] + } + ] + }, + { + "path": "/events/user/{eventName}", + "description": "Stasis application user events", + "operations": [ + { + "httpMethod": "POST", + "summary": "Generate a user event.", + "nickname": "userEvent", + "responseClass": "void", + "parameters": [ + { + "name": "eventName", + "description": "Event name", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "application", + "description": "The name of the application that will receive this event", + "paramType": "query", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "source", + "description": "URI for event source (channel:{channelId}, bridge:{bridgeId}, endpoint:{tech}/{resource}, deviceState:{deviceName}", + "paramType": "query", + "required": false, + "allowMultiple": true, + "dataType": "string" + }, + { + "name": "variables", + "description": "The \"variables\" key in the body object holds custom key/value pairs to add to the user event. Ex. { \"variables\": { \"key\": \"value\" } }", + "paramType": "body", + "required": false, + "allowMultiple": false, + "dataType": "containers" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Application does not exist." + }, + { + "code": 422, + "reason": "Event source not found." + }, + { + "code": 400, + "reason": "Invalid even tsource URI or userevent data." + } + ] + } + ] + } + ], + "models": { + "Message": { + "id": "Message", + "description": "Base type for errors and events", + "discriminator": "type", + "properties": { + "type": { + "type": "string", + "required": true, + "description": "Indicates the type of this message." + }, + "asterisk_id": { + "type": "string", + "required": false, + "description": "The unique ID for the Asterisk instance that raised this event." + } + }, + "subTypes": [ + "MissingParams", + "Event" + ] + }, + "MissingParams": { + "id": "MissingParams", + "description": "Error event sent when required params are missing.", + "properties": { + "params": { + "required": true, + "type": "List[string]", + "description": "A list of the missing parameters" + } + } + }, + "Event": { + "id": "Event", + "description": "Base type for asynchronous events from Asterisk.", + "properties": { + "application": { + "type": "string", + "description": "Name of the application receiving the event.", + "required": true + }, + "timestamp": { + "type": "Date", + "description": "Time at which this event was created.", + "required": false + } + }, + "subTypes": [ + "DeviceStateChanged", + "PlaybackStarted", + "PlaybackFinished", + "RecordingStarted", + "RecordingFinished", + "RecordingFailed", + "ApplicationMoveFailed", + "ApplicationReplaced", + "BridgeCreated", + "BridgeDestroyed", + "BridgeMerged", + "BridgeBlindTransfer", + "BridgeAttendedTransfer", + "BridgeVideoSourceChanged", + "ChannelCreated", + "ChannelDestroyed", + "ChannelEnteredBridge", + "ChannelLeftBridge", + "ChannelStateChange", + "ChannelDtmfReceived", + "ChannelDialplan", + "ChannelCallerId", + "ChannelUserevent", + "ChannelHangupRequest", + "ChannelVarset", + "ChannelTalkingStarted", + "ChannelTalkingFinished", + "ChannelHold", + "ChannelUnhold", + "ContactStatusChange", + "EndpointStateChange", + "Dial", + "StasisEnd", + "StasisStart", + "TextMessageReceived", + "ChannelConnectedLine", + "PeerStatusChange" + ] + }, + "ContactInfo": { + "id": "ContactInfo", + "description": "Detailed information about a contact on an endpoint.", + "properties": { + "uri": { + "type": "string", + "description": "The location of the contact.", + "required": true + }, + "contact_status": { + "type": "string", + "description": "The current status of the contact.", + "required": true, + "allowableValues": { + "valueType": "LIST", + "values": [ + "Unreachable", + "Reachable", + "Unknown", + "Created", + "Removed" + ] + } + }, + "aor": { + "type": "string", + "description": "The Address of Record this contact belongs to.", + "required": true + }, + "roundtrip_usec": { + "type": "string", + "description": "Current round trip time, in microseconds, for the contact.", + "required": false + } + } + }, + "Peer": { + "id": "Peer", + "description": "Detailed information about a remote peer that communicates with Asterisk.", + "properties": { + "peer_status": { + "type": "string", + "description": "The current state of the peer. Note that the values of the status are dependent on the underlying peer technology.", + "required": true + }, + "cause": { + "type": "string", + "description": "An optional reason associated with the change in peer_status.", + "required": false + }, + "address": { + "type": "string", + "description": "The IP address of the peer.", + "required": false + }, + "port": { + "type": "string", + "description": "The port of the peer.", + "required": false + }, + "time": { + "type": "string", + "description": "The last known time the peer was contacted.", + "required": false + } + } + }, + "DeviceStateChanged": { + "id": "DeviceStateChanged", + "description": "Notification that a device state has changed.", + "properties": { + "device_state": { + "type": "DeviceState", + "description": "Device state object", + "required": true + } + } + }, + "PlaybackStarted": { + "id": "PlaybackStarted", + "description": "Event showing the start of a media playback operation.", + "properties": { + "playback": { + "type": "Playback", + "description": "Playback control object", + "required": true + } + } + }, + "PlaybackFinished": { + "id": "PlaybackFinished", + "description": "Event showing the completion of a media playback operation.", + "properties": { + "playback": { + "type": "Playback", + "description": "Playback control object", + "required": true + } + } + }, + "RecordingStarted": { + "id": "RecordingStarted", + "description": "Event showing the start of a recording operation.", + "properties": { + "recording": { + "type": "LiveRecording", + "description": "Recording control object", + "required": true + } + } + }, + "RecordingFinished": { + "id": "RecordingFinished", + "description": "Event showing the completion of a recording operation.", + "properties": { + "recording": { + "type": "LiveRecording", + "description": "Recording control object", + "required": true + } + } + }, + "RecordingFailed": { + "id": "RecordingFailed", + "description": "Event showing failure of a recording operation.", + "properties": { + "recording": { + "type": "LiveRecording", + "description": "Recording control object", + "required": true + } + } + }, + "ApplicationMoveFailed": { + "id": "ApplicationMoveFailed", + "description": "Notification that trying to move a channel to another Stasis application failed.", + "properties": { + "channel": { + "required": true, + "type": "Channel" + }, + "destination": { + "required": true, + "type": "string" + }, + "args": { + "required": true, + "type": "List[string]", + "description": "Arguments to the application" + } + } + }, + "ApplicationReplaced": { + "id": "ApplicationReplaced", + "description": "Notification that another WebSocket has taken over for an application.\n\nAn application may only be subscribed to by a single WebSocket at a time. If multiple WebSockets attempt to subscribe to the same application, the newer WebSocket wins, and the older one receives this event.", + "properties": {} + }, + "BridgeCreated": { + "id": "BridgeCreated", + "description": "Notification that a bridge has been created.", + "properties": { + "bridge": { + "required": true, + "type": "Bridge" + } + } + }, + "BridgeDestroyed": { + "id": "BridgeDestroyed", + "description": "Notification that a bridge has been destroyed.", + "properties": { + "bridge": { + "required": true, + "type": "Bridge" + } + } + }, + "BridgeMerged": { + "id": "BridgeMerged", + "description": "Notification that one bridge has merged into another.", + "properties": { + "bridge": { + "required": true, + "type": "Bridge" + }, + "bridge_from": { + "required": true, + "type": "Bridge" + } + } + }, + "BridgeVideoSourceChanged": { + "id": "BridgeVideoSourceChanged", + "description": "Notification that the source of video in a bridge has changed.", + "properties": { + "bridge": { + "required": true, + "type": "Bridge" + }, + "old_video_source_id": { + "required": false, + "type": "string" + } + } + }, + "BridgeBlindTransfer": { + "id": "BridgeBlindTransfer", + "description": "Notification that a blind transfer has occurred.", + "properties": { + "channel": { + "description": "The channel performing the blind transfer", + "required": true, + "type": "Channel" + }, + "replace_channel": { + "description": "The channel that is replacing transferer when the transferee(s) can not be transferred directly", + "required": false, + "type": "Channel" + }, + "transferee": { + "description": "The channel that is being transferred", + "required": false, + "type": "Channel" + }, + "exten": { + "description": "The extension transferred to", + "required": true, + "type": "string" + }, + "context": { + "description": "The context transferred to", + "required": true, + "type": "string" + }, + "result": { + "description": "The result of the transfer attempt", + "required": true, + "type": "string" + }, + "is_external": { + "description": "Whether the transfer was externally initiated or not", + "required": true, + "type": "boolean" + }, + "bridge": { + "description": "The bridge being transferred", + "type": "Bridge" + } + } + }, + "BridgeAttendedTransfer": { + "id": "BridgeAttendedTransfer", + "description": "Notification that an attended transfer has occurred.", + "properties": { + "transferer_first_leg": { + "description": "First leg of the transferer", + "required": true, + "type": "Channel" + }, + "transferer_second_leg": { + "description": "Second leg of the transferer", + "required": true, + "type": "Channel" + }, + "replace_channel": { + "description": "The channel that is replacing transferer_first_leg in the swap", + "required": false, + "type": "Channel" + }, + "transferee": { + "description": "The channel that is being transferred", + "required": false, + "type": "Channel" + }, + "transfer_target": { + "description": "The channel that is being transferred to", + "required": false, + "type": "Channel" + }, + "result": { + "description": "The result of the transfer attempt", + "required": true, + "type": "string" + }, + "is_external": { + "description": "Whether the transfer was externally initiated or not", + "required": true, + "type": "boolean" + }, + "transferer_first_leg_bridge": { + "description": "Bridge the transferer first leg is in", + "type": "Bridge" + }, + "transferer_second_leg_bridge": { + "description": "Bridge the transferer second leg is in", + "type": "Bridge" + }, + "destination_type": { + "description": "How the transfer was accomplished", + "required": true, + "type": "string" + }, + "destination_bridge": { + "description": "Bridge that survived the merge result", + "type": "string" + }, + "destination_application": { + "description": "Application that has been transferred into", + "type": "string" + }, + "destination_link_first_leg": { + "description": "First leg of a link transfer result", + "type": "Channel" + }, + "destination_link_second_leg": { + "description": "Second leg of a link transfer result", + "type": "Channel" + }, + "destination_threeway_channel": { + "description": "Transferer channel that survived the threeway result", + "type": "Channel" + }, + "destination_threeway_bridge": { + "description": "Bridge that survived the threeway result", + "type": "Bridge" + } + } + }, + "ChannelCreated": { + "id": "ChannelCreated", + "description": "Notification that a channel has been created.", + "properties": { + "channel": { + "required": true, + "type": "Channel" + } + } + }, + "ChannelDestroyed": { + "id": "ChannelDestroyed", + "description": "Notification that a channel has been destroyed.", + "properties": { + "cause": { + "required": true, + "description": "Integer representation of the cause of the hangup", + "type": "int" + }, + "cause_txt": { + "required": true, + "description": "Text representation of the cause of the hangup", + "type": "string" + }, + "channel": { + "required": true, + "type": "Channel" + } + } + }, + "ChannelEnteredBridge": { + "id": "ChannelEnteredBridge", + "description": "Notification that a channel has entered a bridge.", + "properties": { + "bridge": { + "required": true, + "type": "Bridge" + }, + "channel": { + "type": "Channel" + } + } + }, + "ChannelLeftBridge": { + "id": "ChannelLeftBridge", + "description": "Notification that a channel has left a bridge.", + "properties": { + "bridge": { + "required": true, + "type": "Bridge" + }, + "channel": { + "required": true, + "type": "Channel" + } + } + }, + "ChannelStateChange": { + "id": "ChannelStateChange", + "description": "Notification of a channel's state change.", + "properties": { + "channel": { + "required": true, + "type": "Channel" + } + } + }, + "ChannelDtmfReceived": { + "id": "ChannelDtmfReceived", + "description": "DTMF received on a channel.\n\nThis event is sent when the DTMF ends. There is no notification about the start of DTMF", + "properties": { + "digit": { + "required": true, + "type": "string", + "description": "DTMF digit received (0-9, A-E, # or *)" + }, + "duration_ms": { + "required": true, + "type": "int", + "description": "Number of milliseconds DTMF was received" + }, + "channel": { + "required": true, + "type": "Channel", + "description": "The channel on which DTMF was received" + } + } + }, + "ChannelDialplan": { + "id": "ChannelDialplan", + "description": "Channel changed location in the dialplan.", + "properties": { + "channel": { + "required": true, + "type": "Channel", + "description": "The channel that changed dialplan location." + }, + "dialplan_app": { + "required": true, + "type": "string", + "description": "The application about to be executed." + }, + "dialplan_app_data": { + "required": true, + "type": "string", + "description": "The data to be passed to the application." + } + } + }, + "ChannelCallerId": { + "id": "ChannelCallerId", + "description": "Channel changed Caller ID.", + "properties": { + "caller_presentation": { + "required": true, + "type": "int", + "description": "The integer representation of the Caller Presentation value." + }, + "caller_presentation_txt": { + "required": true, + "type": "string", + "description": "The text representation of the Caller Presentation value." + }, + "channel": { + "required": true, + "type": "Channel", + "description": "The channel that changed Caller ID." + } + } + }, + "ChannelUserevent": { + "id": "ChannelUserevent", + "description": "User-generated event with additional user-defined fields in the object.", + "properties": { + "eventname": { + "required": true, + "type": "string", + "description": "The name of the user event." + }, + "channel": { + "required": false, + "type": "Channel", + "description": "A channel that is signaled with the user event." + }, + "bridge": { + "required": false, + "type": "Bridge", + "description": "A bridge that is signaled with the user event." + }, + "endpoint": { + "required": false, + "type": "Endpoint", + "description": "A endpoint that is signaled with the user event." + }, + "userevent": { + "required": true, + "type": "object", + "description": "Custom Userevent data" + } + } + }, + "ChannelHangupRequest": { + "id": "ChannelHangupRequest", + "description": "A hangup was requested on the channel.", + "properties": { + "cause": { + "type": "int", + "description": "Integer representation of the cause of the hangup." + }, + "soft": { + "type": "boolean", + "description": "Whether the hangup request was a soft hangup request." + }, + "channel": { + "required": true, + "type": "Channel", + "description": "The channel on which the hangup was requested." + } + } + }, + "ChannelVarset": { + "id": "ChannelVarset", + "description": "Channel variable changed.", + "properties": { + "variable": { + "required": true, + "type": "string", + "description": "The variable that changed." + }, + "value": { + "required": true, + "type": "string", + "description": "The new value of the variable." + }, + "channel": { + "required": false, + "type": "Channel", + "description": "The channel on which the variable was set.\n\nIf missing, the variable is a global variable." + } + } + }, + "ChannelHold": { + "id": "ChannelHold", + "description": "A channel initiated a media hold.", + "properties": { + "channel": { + "required": true, + "type": "Channel", + "description": "The channel that initiated the hold event." + }, + "musicclass": { + "required": false, + "type": "string", + "description": "The music on hold class that the initiator requested." + } + } + }, + "ChannelUnhold": { + "id": "ChannelUnhold", + "description": "A channel initiated a media unhold.", + "properties": { + "channel": { + "required": true, + "type": "Channel", + "description": "The channel that initiated the unhold event." + } + } + }, + "ChannelTalkingStarted": { + "id": "ChannelTalkingStarted", + "description": "Talking was detected on the channel.", + "properties": { + "channel": { + "required": true, + "type": "Channel", + "description": "The channel on which talking started." + } + } + }, + "ChannelTalkingFinished": { + "id": "ChannelTalkingFinished", + "description": "Talking is no longer detected on the channel.", + "properties": { + "channel": { + "required": true, + "type": "Channel", + "description": "The channel on which talking completed." + }, + "duration": { + "required": true, + "type": "int", + "description": "The length of time, in milliseconds, that talking was detected on the channel" + } + } + }, + "ContactStatusChange": { + "id": "ContactStatusChange", + "description": "The state of a contact on an endpoint has changed.", + "properties": { + "endpoint": { + "required": true, + "type": "Endpoint" + }, + "contact_info": { + "required": true, + "type": "ContactInfo" + } + } + }, + "PeerStatusChange": { + "id": "PeerStatusChange", + "description": "The state of a peer associated with an endpoint has changed.", + "properties": { + "endpoint": { + "required": true, + "type": "Endpoint" + }, + "peer": { + "required": true, + "type": "Peer" + } + } + }, + "EndpointStateChange": { + "id": "EndpointStateChange", + "description": "Endpoint state changed.", + "properties": { + "endpoint": { + "required": true, + "type": "Endpoint" + } + } + }, + "Dial": { + "id": "Dial", + "description": "Dialing state has changed.", + "properties": { + "caller": { + "required": false, + "type": "Channel", + "description": "The calling channel." + }, + "peer": { + "required": true, + "type": "Channel", + "description": "The dialed channel." + }, + "forward": { + "required": false, + "type": "string", + "description": "Forwarding target requested by the original dialed channel." + }, + "forwarded": { + "required": false, + "type": "Channel", + "description": "Channel that the caller has been forwarded to." + }, + "dialstring": { + "required": false, + "type": "string", + "description": "The dial string for calling the peer channel." + }, + "dialstatus": { + "required": true, + "type": "string", + "description": "Current status of the dialing attempt to the peer." + } + } + }, + "StasisEnd": { + "id": "StasisEnd", + "description": "Notification that a channel has left a Stasis application.", + "properties": { + "channel": { + "required": true, + "type": "Channel" + } + } + }, + "StasisStart": { + "id": "StasisStart", + "description": "Notification that a channel has entered a Stasis application.", + "properties": { + "args": { + "required": true, + "type": "List[string]", + "description": "Arguments to the application" + }, + "channel": { + "required": true, + "type": "Channel" + }, + "replace_channel": { + "required": false, + "type": "Channel" + } + } + }, + "TextMessageReceived": { + "id": "TextMessageReceived", + "description": "A text message was received from an endpoint.", + "properties": { + "message": { + "required": true, + "type": "TextMessage" + }, + "endpoint": { + "required": false, + "type": "Endpoint" + } + } + }, + "ChannelConnectedLine": { + "id": "ChannelConnectedLine", + "description": "Channel changed Connected Line.", + "properties": { + "channel": { + "required": true, + "type": "Channel", + "description": "The channel whose connected line has changed." + } + } + } + } +} diff --git a/codegen/src/main/resources/codegen-data/ari_1_10_1/mailboxes.json b/codegen/src/main/resources/codegen-data/ari_1_10_1/mailboxes.json new file mode 100644 index 00000000..999cd8db --- /dev/null +++ b/codegen/src/main/resources/codegen-data/ari_1_10_1/mailboxes.json @@ -0,0 +1,134 @@ +{ + "_copyright": "Copyright (C) 2013, Digium, Inc.", + "_author": "Jonathan Rose ", + "_svn_revision": "$Revision$", + "apiVersion": "1.10.0", + "swaggerVersion": "1.1", + "basePath": "http://localhost:8088/ari", + "resourcePath": "/api-docs/mailboxes.{format}", + "apis": [ + { + "path": "/mailboxes", + "description": "Mailboxes", + "operations": [ + { + "httpMethod": "GET", + "summary": "List all mailboxes.", + "nickname": "list", + "responseClass": "List[Mailbox]" + } + ] + }, + { + "path": "/mailboxes/{mailboxName}", + "description": "Mailbox state", + "operations": [ + { + "httpMethod": "GET", + "summary": "Retrieve the current state of a mailbox.", + "nickname": "get", + "responseClass": "Mailbox", + "parameters": [ + { + "name": "mailboxName", + "description": "Name of the mailbox", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Mailbox not found" + } + ] + }, + { + "httpMethod": "PUT", + "summary": "Change the state of a mailbox. (Note - implicitly creates the mailbox).", + "nickname": "update", + "responseClass": "void", + "parameters": [ + { + "name": "mailboxName", + "description": "Name of the mailbox", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "oldMessages", + "description": "Count of old messages in the mailbox", + "paramType": "query", + "required": true, + "allowMultiple": false, + "dataType": "int" + }, + { + "name": "newMessages", + "description": "Count of new messages in the mailbox", + "paramType": "query", + "required": true, + "allowMultiple": false, + "dataType": "int" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Mailbox not found" + } + ] + }, + { + "httpMethod": "DELETE", + "summary": "Destroy a mailbox.", + "nickname": "delete", + "responseClass": "void", + "parameters": [ + { + "name": "mailboxName", + "description": "Name of the mailbox", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Mailbox not found" + } + ] + } + ] + } + ], + "models": { + "Mailbox": { + "id": "Mailbox", + "description": "Represents the state of a mailbox.", + "properties": { + "name": { + "type": "string", + "description": "Name of the mailbox.", + "required": true + }, + "old_messages": { + "type": "int", + "description": "Count of old messages in the mailbox.", + "required": true + }, + "new_messages": { + "type": "int", + "description": "Count of new messages in the mailbox.", + "required": true + } + } + } + } +} diff --git a/codegen/src/main/resources/codegen-data/ari_1_10_1/playbacks.json b/codegen/src/main/resources/codegen-data/ari_1_10_1/playbacks.json new file mode 100644 index 00000000..1a124325 --- /dev/null +++ b/codegen/src/main/resources/codegen-data/ari_1_10_1/playbacks.json @@ -0,0 +1,155 @@ +{ + "_copyright": "Copyright (C) 2012 - 2013, Digium, Inc.", + "_author": "David M. Lee, II ", + "_svn_revision": "$Revision$", + "apiVersion": "1.10.0", + "swaggerVersion": "1.1", + "basePath": "http://localhost:8088/ari", + "resourcePath": "/api-docs/playbacks.{format}", + "apis": [ + { + "path": "/playbacks/{playbackId}", + "description": "Control object for a playback operation.", + "operations": [ + { + "httpMethod": "GET", + "summary": "Get a playback's details.", + "nickname": "get", + "responseClass": "Playback", + "parameters": [ + { + "name": "playbackId", + "description": "Playback's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "The playback cannot be found" + } + ] + }, + { + "httpMethod": "DELETE", + "summary": "Stop a playback.", + "nickname": "stop", + "responseClass": "void", + "parameters": [ + { + "name": "playbackId", + "description": "Playback's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "The playback cannot be found" + } + ] + } + ] + }, + { + "path": "/playbacks/{playbackId}/control", + "description": "Control object for a playback operation.", + "operations": [ + { + "httpMethod": "POST", + "summary": "Control a playback.", + "nickname": "control", + "responseClass": "void", + "parameters": [ + { + "name": "playbackId", + "description": "Playback's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "operation", + "description": "Operation to perform on the playback.", + "paramType": "query", + "required": true, + "allowMultiple": false, + "dataType": "string", + "allowableValues": { + "valueType": "LIST", + "values": [ + "restart", + "pause", + "unpause", + "reverse", + "forward" + ] + } + } + ], + "errorResponses": [ + { + "code": 400, + "reason": "The provided operation parameter was invalid" + }, + { + "code": 404, + "reason": "The playback cannot be found" + }, + { + "code": 409, + "reason": "The operation cannot be performed in the playback's current state" + } +] + } + ] + } + ], + "models": { + "Playback": { + "id": "Playback", + "description": "Object representing the playback of media to a channel", + "properties": { + "id": { + "type": "string", + "description": "ID for this playback operation", + "required": true + }, + "media_uri": { + "type": "string", + "description": "URI for the media to play back.", + "required": true + }, + "target_uri": { + "type": "string", + "description": "URI for the channel or bridge to play the media on", + "required": true + }, + "language": { + "type": "string", + "description": "For media types that support multiple languages, the language requested for playback." + }, + "state": { + "type": "string", + "description": "Current state of the playback operation.", + "required": true, + "allowableValues": { + "valueType": "LIST", + "values": [ + "queued", + "playing", + "complete" + ] + } + } + } + } + } +} diff --git a/codegen/src/main/resources/codegen-data/ari_1_10_1/recordings.json b/codegen/src/main/resources/codegen-data/ari_1_10_1/recordings.json new file mode 100644 index 00000000..48499bfa --- /dev/null +++ b/codegen/src/main/resources/codegen-data/ari_1_10_1/recordings.json @@ -0,0 +1,378 @@ +{ + "_copyright": "Copyright (C) 2012 - 2013, Digium, Inc.", + "_author": "David M. Lee, II ", + "_svn_revision": "$Revision$", + "apiVersion": "1.10.0", + "swaggerVersion": "1.1", + "basePath": "http://localhost:8088/ari", + "resourcePath": "/api-docs/recordings.{format}", + "apis": [ + { + "path": "/recordings/stored", + "description": "Recordings", + "operations": [ + { + "httpMethod": "GET", + "summary": "List recordings that are complete.", + "nickname": "listStored", + "responseClass": "List[StoredRecording]" + } + ] + }, + { + "path": "/recordings/stored/{recordingName}", + "description": "Individual recording", + "operations": [ + { + "httpMethod": "GET", + "summary": "Get a stored recording's details.", + "nickname": "getStored", + "responseClass": "StoredRecording", + "parameters": [ + { + "name": "recordingName", + "description": "The name of the recording", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Recording not found" + } + ] + }, + { + "httpMethod": "DELETE", + "summary": "Delete a stored recording.", + "nickname": "deleteStored", + "responseClass": "void", + "parameters": [ + { + "name": "recordingName", + "description": "The name of the recording", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Recording not found" + } + ] + } + ] + }, + { + "path": "/recordings/stored/{recordingName}/copy", + "description": "Copy an individual recording", + "operations": [ + { + "httpMethod": "POST", + "summary": "Copy a stored recording.", + "nickname": "copyStored", + "responseClass": "StoredRecording", + "parameters": [ + { + "name": "recordingName", + "description": "The name of the recording to copy", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "destinationRecordingName", + "description": "The destination name of the recording", + "paramType": "query", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Recording not found" + }, + { + "code": 409, + "reason": "A recording with the same name already exists on the system" + } + ] + } + ] + }, + { + "path": "/recordings/live/{recordingName}", + "description": "A recording that is in progress", + "operations": [ + { + "httpMethod": "GET", + "summary": "List live recordings.", + "nickname": "getLive", + "responseClass": "LiveRecording", + "parameters": [ + { + "name": "recordingName", + "description": "The name of the recording", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Recording not found" + } + ] + }, + { + "httpMethod": "DELETE", + "summary": "Stop a live recording and discard it.", + "nickname": "cancel", + "responseClass": "void", + "parameters": [ + { + "name": "recordingName", + "description": "The name of the recording", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Recording not found" + } + ] + } + ] + }, + { + "path": "/recordings/live/{recordingName}/stop", + "operations": [ + { + "httpMethod": "POST", + "summary": "Stop a live recording and store it.", + "nickname": "stop", + "responseClass": "void", + "parameters": [ + { + "name": "recordingName", + "description": "The name of the recording", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Recording not found" + } + ] + } + ] + }, + { + "path": "/recordings/live/{recordingName}/pause", + "operations": [ + { + "httpMethod": "POST", + "summary": "Pause a live recording.", + "notes": "Pausing a recording suspends silence detection, which will be restarted when the recording is unpaused. Paused time is not included in the accounting for maxDurationSeconds.", + "nickname": "pause", + "responseClass": "void", + "parameters": [ + { + "name": "recordingName", + "description": "The name of the recording", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Recording not found" + }, + { + "code": 409, + "reason": "Recording not in session" + } + ] + }, + { + "httpMethod": "DELETE", + "summary": "Unpause a live recording.", + "nickname": "unpause", + "responseClass": "void", + "parameters": [ + { + "name": "recordingName", + "description": "The name of the recording", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Recording not found" + }, + { + "code": 409, + "reason": "Recording not in session" + } + ] + } + ] + }, + { + "path": "/recordings/live/{recordingName}/mute", + "operations": [ + { + "httpMethod": "POST", + "summary": "Mute a live recording.", + "notes": "Muting a recording suspends silence detection, which will be restarted when the recording is unmuted.", + "nickname": "mute", + "responseClass": "void", + "parameters": [ + { + "name": "recordingName", + "description": "The name of the recording", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Recording not found" + }, + { + "code": 409, + "reason": "Recording not in session" + } + ] + }, + { + "httpMethod": "DELETE", + "summary": "Unmute a live recording.", + "nickname": "unmute", + "responseClass": "void", + "parameters": [ + { + "name": "recordingName", + "description": "The name of the recording", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Recording not found" + }, + { + "code": 409, + "reason": "Recording not in session" + } + ] + } + ] + } + ], + "models": { + "StoredRecording": { + "id": "StoredRecording", + "description": "A past recording that may be played back.", + "properties": { + "name": { + "required": true, + "type": "string" + }, + "format": { + "required": true, + "type": "string" + } + } + }, + "LiveRecording": { + "id": "LiveRecording", + "description": "A recording that is in progress", + "properties": { + "name": { + "required": true, + "type": "string", + "description": "Base name for the recording" + }, + "format": { + "required": true, + "type": "string", + "description": "Recording format (wav, gsm, etc.)" + }, + "target_uri": { + "required": true, + "type": "string", + "description": "URI for the channel or bridge being recorded" + }, + "state": { + "required": true, + "type": "string", + "allowableValues": { + "valueType": "LIST", + "values": [ + "queued", + "recording", + "paused", + "done", + "failed", + "canceled" + ] + } + }, + "duration": { + "required": false, + "type": "int", + "description": "Duration in seconds of the recording" + }, + "talking_duration": { + "required": false, + "type": "int", + "description": "Duration of talking, in seconds, detected in the recording. This is only available if the recording was initiated with a non-zero maxSilenceSeconds." + }, + "silence_duration": { + "required": false, + "type": "int", + "description": "Duration of silence, in seconds, detected in the recording. This is only available if the recording was initiated with a non-zero maxSilenceSeconds." + }, + "cause": { + "required": false, + "type": "string", + "description": "Cause for recording failure if failed" + } + } + } + } +} diff --git a/codegen/src/main/resources/codegen-data/ari_1_10_1/sounds.json b/codegen/src/main/resources/codegen-data/ari_1_10_1/sounds.json new file mode 100644 index 00000000..4a8eb2cc --- /dev/null +++ b/codegen/src/main/resources/codegen-data/ari_1_10_1/sounds.json @@ -0,0 +1,99 @@ +{ + "_copyright": "Copyright (C) 2012 - 2013, Digium, Inc.", + "_author": "David M. Lee, II ", + "_svn_revision": "$Revision$", + "apiVersion": "1.10.0", + "swaggerVersion": "1.1", + "basePath": "http://localhost:8088/ari", + "resourcePath": "/api-docs/sounds.{format}", + "apis": [ + { + "path": "/sounds", + "description": "Sounds", + "operations": [ + { + "httpMethod": "GET", + "summary": "List all sounds.", + "nickname": "list", + "responseClass": "List[Sound]", + "parameters": [ + { + "name": "lang", + "description": "Lookup sound for a specific language.", + "paramType": "query", + "dataType": "string", + "required": false + }, + { + "name": "format", + "description": "Lookup sound in a specific format.", + "paramType": "query", + "dataType": "string", + "required": false, + "__note": "core show translation can show translation paths between formats, along with relative costs. so this could be just installed format, or we could follow that for transcoded formats." + } + ] + } + ] + }, + { + "path": "/sounds/{soundId}", + "description": "Individual sound", + "operations": [ + { + "httpMethod": "GET", + "summary": "Get a sound's details.", + "nickname": "get", + "responseClass": "Sound", + "parameters": [ + { + "name": "soundId", + "description": "Sound's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ] + } + ] + } + ], + "models": { + "FormatLangPair": { + "id": "FormatLangPair", + "description": "Identifies the format and language of a sound file", + "properties": { + "language": { + "required": true, + "type": "string" + }, + "format": { + "required": true, + "type": "string" + } + } + }, + "Sound": { + "id": "Sound", + "description": "A media file that may be played back.", + "properties": { + "id": { + "required": true, + "description": "Sound's identifier.", + "type": "string" + }, + "text": { + "required": false, + "description": "Text description of the sound, usually the words spoken.", + "type": "string" + }, + "formats": { + "required": true, + "description": "The formats and languages in which this sound is available.", + "type": "List[FormatLangPair]" + } + } + } + } +} diff --git a/codegen/src/main/resources/codegen-data/ari_1_10_2/applications.json b/codegen/src/main/resources/codegen-data/ari_1_10_2/applications.json new file mode 100644 index 00000000..ef61b821 --- /dev/null +++ b/codegen/src/main/resources/codegen-data/ari_1_10_2/applications.json @@ -0,0 +1,223 @@ +{ + "_copyright": "Copyright (C) 2013, Digium, Inc.", + "_author": "David M. Lee, II ", + "_svn_revision": "$Revision$", + "apiVersion": "1.10.0", + "swaggerVersion": "1.1", + "basePath": "http://localhost:8088/ari", + "resourcePath": "/api-docs/applications.{format}", + "apis": [ + { + "path": "/applications", + "description": "Stasis applications", + "operations": [ + { + "httpMethod": "GET", + "summary": "List all applications.", + "nickname": "list", + "responseClass": "List[Application]" + } + ] + }, + { + "path": "/applications/{applicationName}", + "description": "Stasis application", + "operations": [ + { + "httpMethod": "GET", + "summary": "Get details of an application.", + "nickname": "get", + "responseClass": "Application", + "parameters": [ + { + "name": "applicationName", + "description": "Application's name", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Application does not exist." + } + ] + } + ] + }, + { + "path": "/applications/{applicationName}/subscription", + "description": "Stasis application", + "operations": [ + { + "httpMethod": "POST", + "summary": "Subscribe an application to a event source.", + "notes": "Returns the state of the application after the subscriptions have changed", + "nickname": "subscribe", + "responseClass": "Application", + "parameters": [ + { + "name": "applicationName", + "description": "Application's name", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "eventSource", + "description": "URI for event source (channel:{channelId}, bridge:{bridgeId}, endpoint:{tech}[/{resource}], deviceState:{deviceName}", + "paramType": "query", + "required": true, + "allowMultiple": true, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 400, + "reason": "Missing parameter." + }, + { + "code": 404, + "reason": "Application does not exist." + }, + { + "code": 422, + "reason": "Event source does not exist." + } + ] + }, + { + "httpMethod": "DELETE", + "summary": "Unsubscribe an application from an event source.", + "notes": "Returns the state of the application after the subscriptions have changed", + "nickname": "unsubscribe", + "responseClass": "Application", + "parameters": [ + { + "name": "applicationName", + "description": "Application's name", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "eventSource", + "description": "URI for event source (channel:{channelId}, bridge:{bridgeId}, endpoint:{tech}[/{resource}], deviceState:{deviceName}", + "paramType": "query", + "required": true, + "allowMultiple": true, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 400, + "reason": "Missing parameter; event source scheme not recognized." + }, + { + "code": 404, + "reason": "Application does not exist." + }, + { + "code": 409, + "reason": "Application not subscribed to event source." + }, + { + "code": 422, + "reason": "Event source does not exist." + } + ] + } + ] + }, + { + "path": "/applications/{applicationName}/eventFilter", + "description": "Stasis application", + "operations": [ + { + "httpMethod": "PUT", + "summary": "Filter application events types.", + "notes": "Allowed and/or disallowed event type filtering can be done. The body (parameter) should specify a JSON key/value object that describes the type of event filtering needed. One, or both of the following keys can be designated:

\"allowed\" - Specifies an allowed list of event types
\"disallowed\" - Specifies a disallowed list of event types

Further, each of those key's value should be a JSON array that holds zero, or more JSON key/value objects. Each of these objects must contain the following key with an associated value:

\"type\" - The type name of the event to filter

The value must be the string name (case sensitive) of the event type that needs filtering. For example:

{ \"allowed\": [ { \"type\": \"StasisStart\" }, { \"type\": \"StasisEnd\" } ] }

As this specifies only an allowed list, then only those two event type messages are sent to the application. No other event messages are sent.

The following rules apply:

* If the body is empty, both the allowed and disallowed filters are set empty.
* If both list types are given then both are set to their respective values (note, specifying an empty array for a given type sets that type to empty).
* If only one list type is given then only that type is set. The other type is not updated.
* An empty \"allowed\" list means all events are allowed.
* An empty \"disallowed\" list means no events are disallowed.
* Disallowed events take precedence over allowed events if the event type is specified in both lists.", + "nickname": "filter", + "responseClass": "Application", + "parameters": [ + { + "name": "applicationName", + "description": "Application's name", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "filter", + "description": "Specify which event types to allow/disallow", + "paramType": "body", + "required": false, + "dataType": "object", + "allowMultiple": false + } + ], + "errorResponses": [ + { + "code": 400, + "reason": "Bad request." + }, + { + "code": 404, + "reason": "Application does not exist." + } + ] + } + ] + } + ], + "models": { + "Application": { + "id": "Application", + "description": "Details of a Stasis application", + "properties": { + "name": { + "type": "string", + "description": "Name of this application", + "required": true + }, + "channel_ids": { + "type": "List[string]", + "description": "Id's for channels subscribed to.", + "required": true + }, + "bridge_ids": { + "type": "List[string]", + "description": "Id's for bridges subscribed to.", + "required": true + }, + "endpoint_ids": { + "type": "List[string]", + "description": "{tech}/{resource} for endpoints subscribed to.", + "required": true + }, + "device_names": { + "type": "List[string]", + "description": "Names of the devices subscribed to.", + "required": true + }, + "events_allowed": { + "type": "List[object]", + "description": "Event types sent to the application.", + "required": true + }, + "events_disallowed": { + "type": "List[object]", + "description": "Event types not sent to the application.", + "required": true + } + } + } + } +} diff --git a/codegen/src/main/resources/codegen-data/ari_1_10_2/asterisk.json b/codegen/src/main/resources/codegen-data/ari_1_10_2/asterisk.json new file mode 100644 index 00000000..226c48e8 --- /dev/null +++ b/codegen/src/main/resources/codegen-data/ari_1_10_2/asterisk.json @@ -0,0 +1,725 @@ +{ + "_copyright": "Copyright (C) 2012 - 2013, Digium, Inc.", + "_author": "David M. Lee, II ", + "_svn_revision": "$Revision$", + "apiVersion": "1.10.0", + "swaggerVersion": "1.1", + "basePath": "http://localhost:8088/ari", + "resourcePath": "/api-docs/asterisk.{format}", + "apis": [ + { + "path": "/asterisk/config/dynamic/{configClass}/{objectType}/{id}", + "description": "Asterisk dynamic configuration", + "operations": [ + { + "httpMethod": "GET", + "summary": "Retrieve a dynamic configuration object.", + "nickname": "getObject", + "responseClass": "List[ConfigTuple]", + "parameters": [ + { + "name": "configClass", + "description": "The configuration class containing dynamic configuration objects.", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "objectType", + "description": "The type of configuration object to retrieve.", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "id", + "description": "The unique identifier of the object to retrieve.", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "{configClass|objectType|id} not found" + } + ] + }, + { + "httpMethod": "PUT", + "summary": "Create or update a dynamic configuration object.", + "nickname": "updateObject", + "responseClass": "List[ConfigTuple]", + "parameters": [ + { + "name": "configClass", + "description": "The configuration class containing dynamic configuration objects.", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "objectType", + "description": "The type of configuration object to create or update.", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "id", + "description": "The unique identifier of the object to create or update.", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "fields", + "description": "The body object should have a value that is a list of ConfigTuples, which provide the fields to update. Ex. [ { \"attribute\": \"directmedia\", \"value\": \"false\" } ]", + "paramType": "body", + "required": false, + "dataType": "containers", + "allowMultiple": false + } + ], + "errorResponses": [ + { + "code": 400, + "reason": "Bad request body" + }, + { + "code": 403, + "reason": "Could not create or update object" + }, + { + "code": 404, + "reason": "{configClass|objectType} not found" + } + ] + }, + { + "httpMethod": "DELETE", + "summary": "Delete a dynamic configuration object.", + "nickname": "deleteObject", + "responseClass": "void", + "parameters": [ + { + "name": "configClass", + "description": "The configuration class containing dynamic configuration objects.", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "objectType", + "description": "The type of configuration object to delete.", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "id", + "description": "The unique identifier of the object to delete.", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 403, + "reason": "Could not delete object" + }, + { + "code": 404, + "reason": "{configClass|objectType|id} not found" + } + ] + } + ] + }, + { + "path": "/asterisk/info", + "description": "Asterisk system information (similar to core show settings)", + "operations": [ + { + "httpMethod": "GET", + "summary": "Gets Asterisk system information.", + "nickname": "getInfo", + "responseClass": "AsteriskInfo", + "parameters": [ + { + "name": "only", + "description": "Filter information returned", + "paramType": "query", + "required": false, + "allowMultiple": true, + "dataType": "string", + "allowableValues": { + "valueType": "LIST", + "values": [ + "build", + "system", + "config", + "status" + ] + } + } + ] + } + ] + }, + { + "path": "/asterisk/ping", + "description": "Asterisk ping", + "operations": [ + { + "httpMethod": "GET", + "summary": "Response pong message.", + "nickname": "ping", + "responseClass": "AsteriskPing" + } + ] + }, + { + "path": "/asterisk/modules", + "description": "Asterisk modules", + "operations": [ + { + "httpMethod": "GET", + "summary": "List Asterisk modules.", + "nickname": "listModules", + "responseClass": "List[Module]" + } + ] + }, + { + "path": "/asterisk/modules/{moduleName}", + "description": "Asterisk module", + "operations": [ + { + "httpMethod": "GET", + "summary": "Get Asterisk module information.", + "nickname": "getModule", + "responseClass": "Module", + "parameters": [ + { + "name": "moduleName", + "description": "Module's name", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Module could not be found in running modules." + }, + { + "code": 409, + "reason": "Module information could not be retrieved." + } + ] + }, + { + "httpMethod": "POST", + "summary": "Load an Asterisk module.", + "nickname": "loadModule", + "responseClass": "void", + "parameters": [ + { + "name": "moduleName", + "description": "Module's name", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 409, + "reason": "Module could not be loaded." + } + ] + }, + { + "httpMethod": "DELETE", + "summary": "Unload an Asterisk module.", + "nickname": "unloadModule", + "responseClass": "void", + "parameters": [ + { + "name": "moduleName", + "description": "Module's name", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Module not found in running modules." + }, + { + "code": 409, + "reason": "Module could not be unloaded." + } + ] + }, + { + "httpMethod": "PUT", + "summary": "Reload an Asterisk module.", + "nickname": "reloadModule", + "responseClass": "void", + "parameters": [ + { + "name": "moduleName", + "description": "Module's name", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Module not found in running modules." + }, + { + "code": 409, + "reason": "Module could not be reloaded." + } + ] + } + ] + }, + { + "path": "/asterisk/logging", + "description": "Asterisk log channels", + "operations": [ + { + "httpMethod": "GET", + "summary": "Gets Asterisk log channel information.", + "nickname": "listLogChannels", + "responseClass": "List[LogChannel]" + } + ] + }, + { + "path": "/asterisk/logging/{logChannelName}", + "description": "Asterisk log channel", + "operations": [ + { + "httpMethod": "POST", + "summary": "Adds a log channel.", + "nickname": "addLog", + "responseClass": "void", + "parameters": [ + { + "name": "logChannelName", + "description": "The log channel to add", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "configuration", + "description": "levels of the log channel", + "paramType": "query", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 400, + "reason": "Bad request body" + }, + { + "code": 409, + "reason": "Log channel could not be created." + } + ] + }, + { + "httpMethod": "DELETE", + "summary": "Deletes a log channel.", + "nickname": "deleteLog", + "responseClass": "void", + "parameters": [ + { + "name": "logChannelName", + "description": "Log channels name", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Log channel does not exist." + } + ] + } + ] + }, + { + "path": "/asterisk/logging/{logChannelName}/rotate", + "description": "Asterisk log channel", + "operations": [ + { + "httpMethod": "PUT", + "summary": "Rotates a log channel.", + "nickname": "rotateLog", + "responseClass": "void", + "parameters": [ + { + "name": "logChannelName", + "description": "Log channel's name", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Log channel does not exist." + } + ] + } + ] + }, + { + "path": "/asterisk/variable", + "description": "Global variables", + "operations": [ + { + "httpMethod": "GET", + "summary": "Get the value of a global variable.", + "nickname": "getGlobalVar", + "responseClass": "Variable", + "parameters": [ + { + "name": "variable", + "description": "The variable to get", + "paramType": "query", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 400, + "reason": "Missing variable parameter." + } + ] + }, + { + "httpMethod": "POST", + "summary": "Set the value of a global variable.", + "nickname": "setGlobalVar", + "responseClass": "void", + "parameters": [ + { + "name": "variable", + "description": "The variable to set", + "paramType": "query", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "value", + "description": "The value to set the variable to", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 400, + "reason": "Missing variable parameter." + } + ] + } + ] + } + ], + "models": { + "BuildInfo": { + "id": "BuildInfo", + "description": "Info about how Asterisk was built", + "properties": { + "os": { + "required": true, + "type": "string", + "description": "OS Asterisk was built on." + }, + "kernel": { + "required": true, + "type": "string", + "description": "Kernel version Asterisk was built on." + }, + "options": { + "required": true, + "type": "string", + "description": "Compile time options, or empty string if default." + }, + "machine": { + "required": true, + "type": "string", + "description": "Machine architecture (x86_64, i686, ppc, etc.)" + }, + "date": { + "required": true, + "type": "string", + "description": "Date and time when Asterisk was built." + }, + "user": { + "required": true, + "type": "string", + "description": "Username that build Asterisk" + } + } + }, + "SystemInfo": { + "id": "SystemInfo", + "description": "Info about Asterisk", + "properties": { + "version": { + "required": true, + "type": "string", + "description": "Asterisk version." + }, + "entity_id": { + "required": true, + "type": "string", + "description": "" + } + } + }, + "SetId": { + "id": "SetId", + "description": "Effective user/group id", + "properties": { + "user": { + "required": true, + "type": "string", + "description": "Effective user id." + }, + "group": { + "required": true, + "type": "string", + "description": "Effective group id." + } + } + }, + "ConfigInfo": { + "id": "ConfigInfo", + "description": "Info about Asterisk configuration", + "properties": { + "name": { + "required": true, + "type": "string", + "description": "Asterisk system name." + }, + "default_language": { + "required": true, + "type": "string", + "description": "Default language for media playback." + }, + "max_channels": { + "required": false, + "type": "int", + "description": "Maximum number of simultaneous channels." + }, + "max_open_files": { + "required": false, + "type": "int", + "description": "Maximum number of open file handles (files, sockets)." + }, + "max_load": { + "required": false, + "type": "double", + "description": "Maximum load avg on system." + }, + "setid": { + "required": true, + "type": "SetId", + "description": "Effective user/group id for running Asterisk." + } + } + }, + "StatusInfo": { + "id": "StatusInfo", + "description": "Info about Asterisk status", + "properties": { + "startup_time": { + "required": true, + "type": "Date", + "description": "Time when Asterisk was started." + }, + "last_reload_time": { + "required": true, + "type": "Date", + "description": "Time when Asterisk was last reloaded." + } + } + }, + "AsteriskInfo": { + "id": "AsteriskInfo", + "description": "Asterisk system information", + "properties": { + "build": { + "required": false, + "type": "BuildInfo", + "description": "Info about how Asterisk was built" + }, + "system": { + "required": false, + "type": "SystemInfo", + "description": "Info about the system running Asterisk" + }, + "config": { + "required": false, + "type": "ConfigInfo", + "description": "Info about Asterisk configuration" + }, + "status": { + "required": false, + "type": "StatusInfo", + "description": "Info about Asterisk status" + } + } + }, + "AsteriskPing": { + "id": "AsteriskPing", + "description": "Asterisk ping information", + "properties": { + "asterisk_id": { + "required": true, + "type": "string", + "description": "Asterisk id info" + }, + "ping": { + "required": true, + "type": "string", + "description": "Always string value is pong" + }, + "timestamp": { + "required": true, + "type": "string", + "description": "The timestamp string of request received time" + } + } + }, + "Module": { + "id": "Module", + "description": "Details of an Asterisk module", + "properties": { + "name": { + "type": "string", + "description": "The name of this module", + "required": true + }, + "description": { + "type": "string", + "description": "The description of this module", + "required": true + }, + "use_count": { + "type": "int", + "description": "The number of times this module is being used", + "required": true + }, + "status": { + "type": "string", + "description": "The running status of this module", + "required": true + }, + "support_level": { + "type": "string", + "description": "The support state of this module", + "required": true + } + } + }, + "LogChannel": { + "id": "LogChannel", + "description": "Details of an Asterisk log channel", + "properties": { + "channel": { + "type": "string", + "description": "The log channel path", + "required": true + }, + "type": { + "type": "string", + "description": "Types of logs for the log channel", + "required": true + }, + "status": { + "type": "string", + "description": "Whether or not a log type is enabled", + "required": true + }, + "configuration": { + "type": "string", + "description": "The various log levels", + "required": true + } + } + }, + "Variable": { + "id": "Variable", + "description": "The value of a channel variable", + "properties": { + "value": { + "required": true, + "type": "string", + "description": "The value of the variable requested" + } + } + }, + "ConfigTuple": { + "id": "ConfigTuple", + "description": "A key/value pair that makes up part of a configuration object.", + "properties": { + "attribute": { + "required": true, + "type": "string", + "description": "A configuration object attribute." + }, + "value": { + "required": true, + "type": "string", + "description": "The value for the attribute." + } + } + } + } +} diff --git a/codegen/src/main/resources/codegen-data/ari_1_10_2/bridges.json b/codegen/src/main/resources/codegen-data/ari_1_10_2/bridges.json new file mode 100644 index 00000000..78bd3afa --- /dev/null +++ b/codegen/src/main/resources/codegen-data/ari_1_10_2/bridges.json @@ -0,0 +1,743 @@ +{ + "_copyright": "Copyright (C) 2012 - 2013, Digium, Inc.", + "_author": "David M. Lee, II ", + "_svn_revision": "$Revision$", + "apiVersion": "1.10.0", + "swaggerVersion": "1.1", + "basePath": "http://localhost:8088/ari", + "resourcePath": "/api-docs/bridges.{format}", + "apis": [ + { + "path": "/bridges", + "description": "Active bridges", + "operations": [ + { + "httpMethod": "GET", + "summary": "List all active bridges in Asterisk.", + "nickname": "list", + "responseClass": "List[Bridge]" + }, + { + "httpMethod": "POST", + "summary": "Create a new bridge.", + "notes": "This bridge persists until it has been shut down, or Asterisk has been shut down.", + "nickname": "create", + "responseClass": "Bridge", + "parameters": [ + { + "name": "type", + "description": "Comma separated list of bridge type attributes (mixing, holding, dtmf_events, proxy_media).", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "bridgeId", + "description": "Unique ID to give to the bridge being created.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "name", + "description": "Name to give to the bridge being created.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + } + ] + } + ] + }, + { + "path": "/bridges/{bridgeId}", + "description": "Individual bridge", + "operations": [ + { + "httpMethod": "POST", + "summary": "Create a new bridge or updates an existing one.", + "notes": "This bridge persists until it has been shut down, or Asterisk has been shut down.", + "nickname": "createWithId", + "responseClass": "Bridge", + "parameters": [ + { + "name": "type", + "description": "Comma separated list of bridge type attributes (mixing, holding, dtmf_events, proxy_media) to set.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "bridgeId", + "description": "Unique ID to give to the bridge being created.", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "name", + "description": "Set the name of the bridge.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + } + ] + }, + { + "httpMethod": "GET", + "summary": "Get bridge details.", + "nickname": "get", + "responseClass": "Bridge", + "parameters": [ + { + "name": "bridgeId", + "description": "Bridge's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Bridge not found" + } + ] + }, + { + "httpMethod": "DELETE", + "summary": "Shut down a bridge.", + "notes": "If any channels are in this bridge, they will be removed and resume whatever they were doing beforehand.", + "nickname": "destroy", + "responseClass": "void", + "parameters": [ + { + "name": "bridgeId", + "description": "Bridge's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Bridge not found" + } + ] + } + ] + }, + { + "path": "/bridges/{bridgeId}/addChannel", + "description": "Add a channel to a bridge", + "operations": [ + { + "httpMethod": "POST", + "summary": "Add a channel to a bridge.", + "nickname": "addChannel", + "responseClass": "void", + "parameters": [ + { + "name": "bridgeId", + "description": "Bridge's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "channel", + "description": "Ids of channels to add to bridge", + "paramType": "query", + "required": true, + "allowMultiple": true, + "dataType": "string" + }, + { + "name": "role", + "description": "Channel's role in the bridge", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 400, + "reason": "Channel not found" + }, + { + "code": 404, + "reason": "Bridge not found" + }, + { + "code": 409, + "reason": "Bridge not in Stasis application; Channel currently recording" + }, + { + "code": 422, + "reason": "Channel not in Stasis application" + } + ] + } + ] + }, + { + "path": "/bridges/{bridgeId}/removeChannel", + "description": "Remove a channel from a bridge", + "operations": [ + { + "httpMethod": "POST", + "summary": "Remove a channel from a bridge.", + "nickname": "removeChannel", + "responseClass": "void", + "parameters": [ + { + "name": "bridgeId", + "description": "Bridge's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "channel", + "description": "Ids of channels to remove from bridge", + "paramType": "query", + "required": true, + "allowMultiple": true, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 400, + "reason": "Channel not found" + }, + { + "code": 404, + "reason": "Bridge not found" + }, + { + "code": 409, + "reason": "Bridge not in Stasis application" + }, + { + "code": 422, + "reason": "Channel not in this bridge" + } + ] + } + ] + }, + { + "path": "/bridges/{bridgeId}/videoSource/{channelId}", + "description": "Set a channel as the video source in a multi-party bridge", + "operations": [ + { + "httpMethod": "POST", + "summary": "Set a channel as the video source in a multi-party mixing bridge. This operation has no effect on bridges with two or fewer participants.", + "nickname": "setVideoSource", + "responseClass": "void", + "parameters": [ + { + "name": "bridgeId", + "description": "Bridge's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "channelId", + "description": "Channel's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Bridge or Channel not found" + }, + { + "code": 409, + "reason": "Channel not in Stasis application" + }, + { + "code": 422, + "reason": "Channel not in this Bridge" + } + ] + } + ] + }, + { + "path": "/bridges/{bridgeId}/videoSource", + "description": "Removes any explicit video source", + "operations": [ + { + "httpMethod": "DELETE", + "summary": "Removes any explicit video source in a multi-party mixing bridge. This operation has no effect on bridges with two or fewer participants. When no explicit video source is set, talk detection will be used to determine the active video stream.", + "nickname": "clearVideoSource", + "responseClass": "void", + "parameters": [ + { + "name": "bridgeId", + "description": "Bridge's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Bridge not found" + } + ] + } + ] + }, + { + "path": "/bridges/{bridgeId}/moh", + "description": "Play music on hold to a bridge", + "operations": [ + { + "httpMethod": "POST", + "summary": "Play music on hold to a bridge or change the MOH class that is playing.", + "nickname": "startMoh", + "responseClass": "void", + "parameters": [ + { + "name": "bridgeId", + "description": "Bridge's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "mohClass", + "description": "Channel's id", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Bridge not found" + }, + { + "code": 409, + "reason": "Bridge not in Stasis application" + } + ] + }, + { + "httpMethod": "DELETE", + "summary": "Stop playing music on hold to a bridge.", + "notes": "This will only stop music on hold being played via POST bridges/{bridgeId}/moh.", + "nickname": "stopMoh", + "responseClass": "void", + "parameters": [ + { + "name": "bridgeId", + "description": "Bridge's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Bridge not found" + }, + { + "code": 409, + "reason": "Bridge not in Stasis application" + } + ] + } + ] + }, + { + "path": "/bridges/{bridgeId}/play", + "description": "Play media to the participants of a bridge", + "operations": [ + { + "httpMethod": "POST", + "summary": "Start playback of media on a bridge.", + "notes": "The media URI may be any of a number of URI's. Currently sound:, recording:, number:, digits:, characters:, and tone: URI's are supported. This operation creates a playback resource that can be used to control the playback of media (pause, rewind, fast forward, etc.)", + "nickname": "play", + "responseClass": "Playback", + "parameters": [ + { + "name": "bridgeId", + "description": "Bridge's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "media", + "description": "Media's URI to play.", + "paramType": "query", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "lang", + "description": "For sounds, selects language for sound.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "offsetms", + "description": "Number of media to skip before playing.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "int", + "defaultValue": 0, + "allowableValues": { + "valueType": "RANGE", + "min": 0 + } + + }, + { + "name": "skipms", + "description": "Number of milliseconds to skip for forward/reverse operations.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "int", + "defaultValue": 3000, + "allowableValues": { + "valueType": "RANGE", + "min": 0 + } + }, + { + "name": "playbackId", + "description": "Playback Id.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Bridge not found" + }, + { + "code": 409, + "reason": "Bridge not in a Stasis application" + } + ] + } + ] + }, + { + "path": "/bridges/{bridgeId}/play/{playbackId}", + "description": "Play media to a bridge", + "operations": [ + { + "httpMethod": "POST", + "summary": "Start playback of media on a bridge.", + "notes": "The media URI may be any of a number of URI's. Currently sound:, recording:, number:, digits:, characters:, and tone: URI's are supported. This operation creates a playback resource that can be used to control the playback of media (pause, rewind, fast forward, etc.)", + "nickname": "playWithId", + "responseClass": "Playback", + "parameters": [ + { + "name": "bridgeId", + "description": "Bridge's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "playbackId", + "description": "Playback ID.", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "media", + "description": "Media's URI to play.", + "paramType": "query", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "lang", + "description": "For sounds, selects language for sound.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "offsetms", + "description": "Number of media to skip before playing.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "int", + "defaultValue": 0, + "allowableValues": { + "valueType": "RANGE", + "min": 0 + } + }, + { + "name": "skipms", + "description": "Number of milliseconds to skip for forward/reverse operations.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "int", + "defaultValue": 3000, + "allowableValues": { + "valueType": "RANGE", + "min": 0 + } + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Bridge not found" + }, + { + "code": 409, + "reason": "Bridge not in a Stasis application" + } + ] + + } + ] + }, + { + "path": "/bridges/{bridgeId}/record", + "description": "Record audio on a bridge", + "operations": [ + { + "httpMethod": "POST", + "summary": "Start a recording.", + "notes": "This records the mixed audio from all channels participating in this bridge.", + "nickname": "record", + "responseClass": "LiveRecording", + "parameters": [ + { + "name": "bridgeId", + "description": "Bridge's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "name", + "description": "Recording's filename", + "paramType": "query", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "format", + "description": "Format to encode audio in", + "paramType": "query", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "maxDurationSeconds", + "description": "Maximum duration of the recording, in seconds. 0 for no limit.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "int", + "defaultValue": 0, + "allowableValues": { + "valueType": "RANGE", + "min": 0 + } + }, + { + "name": "maxSilenceSeconds", + "description": "Maximum duration of silence, in seconds. 0 for no limit.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "int", + "defaultValue": 0, + "allowableValues": { + "valueType": "RANGE", + "min": 0 + } + }, + { + "name": "ifExists", + "description": "Action to take if a recording with the same name already exists.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string", + "defaultValue": "fail", + "allowableValues": { + "valueType": "LIST", + "values": [ + "fail", + "overwrite", + "append" + ] + } + }, + { + "name": "beep", + "description": "Play beep when recording begins", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "boolean", + "defaultValue": false + }, + { + "name": "terminateOn", + "description": "DTMF input to terminate recording.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string", + "defaultValue": "none", + "allowableValues": { + "valueType": "LIST", + "values": [ + "none", + "any", + "*", + "#" + ] + } + } + ], + "errorResponses": [ + { + "code": 400, + "reason": "Invalid parameters" + }, + { + "code": 404, + "reason": "Bridge not found" + }, + { + "code": 409, + "reason": "Bridge is not in a Stasis application; A recording with the same name already exists on the system and can not be overwritten because it is in progress or ifExists=fail" + }, + { + "code": 422, + "reason": "The format specified is unknown on this system" + } + ] + } + ] + } + ], + "models": { + "Bridge": { + "id": "Bridge", + "description": "The merging of media from one or more channels.\n\nEveryone on the bridge receives the same audio.", + "properties": { + "id": { + "type": "string", + "description": "Unique identifier for this bridge", + "required": true + }, + "technology": { + "type": "string", + "description": "Name of the current bridging technology", + "required": true + }, + "bridge_type": { + "type": "string", + "description": "Type of bridge technology", + "required": true, + "allowableValues": { + "valueType": "LIST", + "values": [ + "mixing", + "holding" + ] + } + }, + "bridge_class": { + "type": "string", + "description": "Bridging class", + "required": true + }, + "creator": { + "type": "string", + "description": "Entity that created the bridge", + "required": true + }, + "name": { + "type": "string", + "description": "Name the creator gave the bridge", + "required": true + }, + "channels": { + "type": "List[string]", + "description": "Ids of channels participating in this bridge", + "required": true + }, + "video_mode": { + "type": "string", + "description": "The video mode the bridge is using. One of 'none', 'talker', or 'single'.", + "required": false + }, + "video_source_id": { + "type": "string", + "description": "The ID of the channel that is the source of video in this bridge, if one exists.", + "required": false + }, + "creationtime": { + "required": true, + "type": "Date", + "description": "Timestamp when bridge was created" + } + } + } + } +} diff --git a/codegen/src/main/resources/codegen-data/ari_1_10_2/channels.json b/codegen/src/main/resources/codegen-data/ari_1_10_2/channels.json new file mode 100644 index 00000000..fdeb0b83 --- /dev/null +++ b/codegen/src/main/resources/codegen-data/ari_1_10_2/channels.json @@ -0,0 +1,1825 @@ +{ + "_copyright": "Copyright (C) 2012 - 2013, Digium, Inc.", + "_author": "David M. Lee, II ", + "_svn_revision": "$Revision$", + "apiVersion": "1.10.0", + "swaggerVersion": "1.1", + "basePath": "http://localhost:8088/ari", + "resourcePath": "/api-docs/channels.{format}", + "apis": [ + { + "path": "/channels", + "description": "Active channels", + "operations": [ + { + "httpMethod": "GET", + "summary": "List all active channels in Asterisk.", + "nickname": "list", + "responseClass": "List[Channel]" + }, + { + "httpMethod": "POST", + "summary": "Create a new channel (originate).", + "notes": "The new channel is created immediately and a snapshot of it returned. If a Stasis application is provided it will be automatically subscribed to the originated channel for further events and updates.", + "nickname": "originate", + "responseClass": "Channel", + "parameters": [ + { + "name": "endpoint", + "description": "Endpoint to call.", + "paramType": "query", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "extension", + "description": "The extension to dial after the endpoint answers. Mutually exclusive with 'app'.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "context", + "description": "The context to dial after the endpoint answers. If omitted, uses 'default'. Mutually exclusive with 'app'.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "priority", + "description": "The priority to dial after the endpoint answers. If omitted, uses 1. Mutually exclusive with 'app'.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "long" + }, + { + "name": "label", + "description": "The label to dial after the endpoint answers. Will supersede 'priority' if provided. Mutually exclusive with 'app'.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "app", + "description": "The application that is subscribed to the originated channel. When the channel is answered, it will be passed to this Stasis application. Mutually exclusive with 'context', 'extension', 'priority', and 'label'.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "appArgs", + "description": "The application arguments to pass to the Stasis application provided by 'app'. Mutually exclusive with 'context', 'extension', 'priority', and 'label'.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "callerId", + "description": "CallerID to use when dialing the endpoint or extension.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "timeout", + "description": "Timeout (in seconds) before giving up dialing, or -1 for no timeout.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "int", + "defaultValue": 30 + }, + { + "name": "variables", + "description": "The \"variables\" key in the body object holds variable key/value pairs to set on the channel on creation. Other keys in the body object are interpreted as query parameters. Ex. { \"endpoint\": \"SIP/Alice\", \"variables\": { \"CALLERID(name)\": \"Alice\" } }", + "paramType": "body", + "required": false, + "dataType": "containers", + "allowMultiple": false + }, + { + "name": "channelId", + "description": "The unique id to assign the channel on creation.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "otherChannelId", + "description": "The unique id to assign the second channel when using local channels.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "originator", + "description": "The unique id of the channel which is originating this one.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "formats", + "description": "The format name capability list to use if originator is not specified. Ex. \"ulaw,slin16\". Format names can be found with \"core show codecs\".", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 400, + "reason": "Invalid parameters for originating a channel." + }, + { + "code": 409, + "reason": "Channel with given unique ID already exists." + } + ] + } + ] + }, + { + "path": "/channels/{channelId}", + "description": "Active channel", + "operations": [ + { + "httpMethod": "GET", + "summary": "Channel details.", + "nickname": "get", + "responseClass": "Channel", + "parameters": [ + { + "name": "channelId", + "description": "Channel's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Channel not found" + } + ] + }, + { + "httpMethod": "POST", + "summary": "Create a new channel (originate with id).", + "notes": "The new channel is created immediately and a snapshot of it returned. If a Stasis application is provided it will be automatically subscribed to the originated channel for further events and updates.", + "nickname": "originateWithId", + "responseClass": "Channel", + "parameters": [ + { + "name": "channelId", + "description": "The unique id to assign the channel on creation.", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "endpoint", + "description": "Endpoint to call.", + "paramType": "query", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "extension", + "description": "The extension to dial after the endpoint answers. Mutually exclusive with 'app'.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "context", + "description": "The context to dial after the endpoint answers. If omitted, uses 'default'. Mutually exclusive with 'app'.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "priority", + "description": "The priority to dial after the endpoint answers. If omitted, uses 1. Mutually exclusive with 'app'.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "long" + }, + { + "name": "label", + "description": "The label to dial after the endpoint answers. Will supersede 'priority' if provided. Mutually exclusive with 'app'.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "app", + "description": "The application that is subscribed to the originated channel. When the channel is answered, it will be passed to this Stasis application. Mutually exclusive with 'context', 'extension', 'priority', and 'label'.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "appArgs", + "description": "The application arguments to pass to the Stasis application provided by 'app'. Mutually exclusive with 'context', 'extension', 'priority', and 'label'.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "callerId", + "description": "CallerID to use when dialing the endpoint or extension.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "timeout", + "description": "Timeout (in seconds) before giving up dialing, or -1 for no timeout.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "int", + "defaultValue": 30 + }, + { + "name": "variables", + "description": "The \"variables\" key in the body object holds variable key/value pairs to set on the channel on creation. Other keys in the body object are interpreted as query parameters. Ex. { \"endpoint\": \"SIP/Alice\", \"variables\": { \"CALLERID(name)\": \"Alice\" } }", + "paramType": "body", + "required": false, + "dataType": "containers", + "allowMultiple": false + }, + { + "name": "otherChannelId", + "description": "The unique id to assign the second channel when using local channels.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "originator", + "description": "The unique id of the channel which is originating this one.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "formats", + "description": "The format name capability list to use if originator is not specified. Ex. \"ulaw,slin16\". Format names can be found with \"core show codecs\".", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 400, + "reason": "Invalid parameters for originating a channel." + }, + { + "code": 409, + "reason": "Channel with given unique ID already exists." + } + ] + }, + { + "httpMethod": "DELETE", + "summary": "Delete (i.e. hangup) a channel.", + "nickname": "hangup", + "responseClass": "void", + "parameters": [ + { + "name": "channelId", + "description": "Channel's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "reason", + "description": "Reason for hanging up the channel", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string", + "defalutValue": "normal", + "allowableValues": { + "valueType": "LIST", + "values": [ + "normal", + "busy", + "congestion", + "no_answer" + ] + } + } + ], + "errorResponses": [ + { + "code": 400, + "reason": "Invalid reason for hangup provided" + }, + { + "code": 404, + "reason": "Channel not found" + } + ] + } + ] + }, + { + "path": "/channels/{channelId}/continue", + "description": "Exit application; continue execution in the dialplan", + "operations": [ + { + "httpMethod": "POST", + "summary": "Exit application; continue execution in the dialplan.", + "nickname": "continueInDialplan", + "responseClass": "void", + "parameters": [ + { + "name": "channelId", + "description": "Channel's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "context", + "description": "The context to continue to.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "extension", + "description": "The extension to continue to.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "priority", + "description": "The priority to continue to.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "int" + }, + { + "name": "label", + "description": "The label to continue to - will supersede 'priority' if both are provided.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Channel not found" + }, + { + "code": 409, + "reason": "Channel not in a Stasis application" + } + ] + } + ] + }, + { + "path": "/channels/{channelId}/move", + "description": "Move the channel from one Stasis application to another.", + "operations": [ + { + "httpMethod": "POST", + "summary": "Move the channel from one Stasis application to another.", + "nickname": "move", + "responseClass": "void", + "parameters": [ + { + "name": "channelId", + "description": "Channel's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "app", + "description": "The channel will be passed to this Stasis application.", + "paramType": "query", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "appArgs", + "description": "The application arguments to pass to the Stasis application provided by 'app'.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": "404", + "reason": "Channel not found" + }, + { + "code": "409", + "reason": "Channel not in a Stasis application" + } + ] + } + ] + }, + { + "path": "/channels/{channelId}/redirect", + "description": "Inform the channel that it should redirect itself to a different location. Note that this will almost certainly cause the channel to exit the application.", + "operations": [ + { + "httpMethod": "POST", + "summary": "Redirect the channel to a different location.", + "nickname": "redirect", + "responseClass": "void", + "parameters": [ + { + "name": "channelId", + "description": "Channel's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "endpoint", + "description": "The endpoint to redirect the channel to", + "paramType": "query", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 400, + "reason": "Endpoint parameter not provided" + }, + { + "code": 404, + "reason": "Channel or endpoint not found" + }, + { + "code": 409, + "reason": "Channel not in a Stasis application" + }, + { + "code": 422, + "reason": "Endpoint is not the same type as the channel" + } + ] + } + ] + }, + { + "path": "/channels/{channelId}/answer", + "description": "Answer a channel", + "operations": [ + { + "httpMethod": "POST", + "summary": "Answer a channel.", + "nickname": "answer", + "responseClass": "void", + "parameters": [ + { + "name": "channelId", + "description": "Channel's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Channel not found" + }, + { + "code": 409, + "reason": "Channel not in a Stasis application" + } + ] + } + ] + }, + { + "path": "/channels/{channelId}/ring", + "description": "Send a ringing indication to a channel", + "operations": [ + { + "httpMethod": "POST", + "summary": "Indicate ringing to a channel.", + "nickname": "ring", + "responseClass": "void", + "parameters": [ + { + "name": "channelId", + "description": "Channel's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Channel not found" + }, + { + "code": 409, + "reason": "Channel not in a Stasis application" + } + ] + }, + { + "httpMethod": "DELETE", + "summary": "Stop ringing indication on a channel if locally generated.", + "nickname": "ringStop", + "responseClass": "void", + "parameters": [ + { + "name": "channelId", + "description": "Channel's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Channel not found" + }, + { + "code": 409, + "reason": "Channel not in a Stasis application" + } + ] + } + ] + }, + { + "path": "/channels/{channelId}/dtmf", + "description": "Send DTMF to a channel", + "operations": [ + { + "httpMethod": "POST", + "summary": "Send provided DTMF to a given channel.", + "nickname": "sendDTMF", + "responseClass": "void", + "parameters": [ + { + "name": "channelId", + "description": "Channel's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "dtmf", + "description": "DTMF To send.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "before", + "description": "Amount of time to wait before DTMF digits (specified in milliseconds) start.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "int", + "defaultValue": 0 + }, + { + "name": "between", + "description": "Amount of time in between DTMF digits (specified in milliseconds).", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "int", + "defaultValue": 100 + }, + { + "name": "duration", + "description": "Length of each DTMF digit (specified in milliseconds).", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "int", + "defaultValue": 100 + }, + { + "name": "after", + "description": "Amount of time to wait after DTMF digits (specified in milliseconds) end.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "int", + "defaultValue": 0 + } + ], + "errorResponses": [ + { + "code": 400, + "reason": "DTMF is required" + }, + { + "code": 404, + "reason": "Channel not found" + }, + { + "code": 409, + "reason": "Channel not in a Stasis application" + } + ] + } + ] + }, + { + "path": "/channels/{channelId}/mute", + "description": "Mute a channel", + "operations": [ + { + "httpMethod": "POST", + "summary": "Mute a channel.", + "nickname": "mute", + "responseClass": "void", + "parameters": [ + { + "name": "channelId", + "description": "Channel's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "direction", + "description": "Direction in which to mute audio", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string", + "defaultValue": "both", + "allowableValues": { + "valueType": "LIST", + "values": [ + "both", + "in", + "out" + ] + } + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Channel not found" + }, + { + "code": 409, + "reason": "Channel not in a Stasis application" + } + ] + }, + { + "httpMethod": "DELETE", + "summary": "Unmute a channel.", + "nickname": "unmute", + "responseClass": "void", + "parameters": [ + { + "name": "channelId", + "description": "Channel's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "direction", + "description": "Direction in which to unmute audio", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string", + "defaultValue": "both", + "allowableValues": { + "valueType": "LIST", + "values": [ + "both", + "in", + "out" + ] + } + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Channel not found" + }, + { + "code": 409, + "reason": "Channel not in a Stasis application" + } + ] + } + ] + }, + { + "path": "/channels/{channelId}/hold", + "description": "Put a channel on hold", + "operations": [ + { + "httpMethod": "POST", + "summary": "Hold a channel.", + "nickname": "hold", + "responseClass": "void", + "parameters": [ + { + "name": "channelId", + "description": "Channel's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Channel not found" + }, + { + "code": 409, + "reason": "Channel not in a Stasis application" + } + ] + }, + { + "httpMethod": "DELETE", + "summary": "Remove a channel from hold.", + "nickname": "unhold", + "responseClass": "void", + "parameters": [ + { + "name": "channelId", + "description": "Channel's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Channel not found" + }, + { + "code": 409, + "reason": "Channel not in a Stasis application" + } + ] + } + ] + }, + { + "path": "/channels/{channelId}/moh", + "description": "Play music on hold to a channel", + "operations": [ + { + "httpMethod": "POST", + "summary": "Play music on hold to a channel.", + "notes": "Using media operations such as /play on a channel playing MOH in this manner will suspend MOH without resuming automatically. If continuing music on hold is desired, the stasis application must reinitiate music on hold.", + "nickname": "startMoh", + "responseClass": "void", + "parameters": [ + { + "name": "channelId", + "description": "Channel's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "mohClass", + "description": "Music on hold class to use", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Channel not found" + }, + { + "code": 409, + "reason": "Channel not in a Stasis application" + } + ] + }, + { + "httpMethod": "DELETE", + "summary": "Stop playing music on hold to a channel.", + "nickname": "stopMoh", + "responseClass": "void", + "parameters": [ + { + "name": "channelId", + "description": "Channel's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Channel not found" + }, + { + "code": 409, + "reason": "Channel not in a Stasis application" + } + ] + } + ] + }, + { + "path": "/channels/{channelId}/silence", + "description": "Play silence to a channel", + "operations": [ + { + "httpMethod": "POST", + "summary": "Play silence to a channel.", + "notes": "Using media operations such as /play on a channel playing silence in this manner will suspend silence without resuming automatically.", + "nickname": "startSilence", + "responseClass": "void", + "parameters": [ + { + "name": "channelId", + "description": "Channel's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Channel not found" + }, + { + "code": 409, + "reason": "Channel not in a Stasis application" + } + ] + }, + { + "httpMethod": "DELETE", + "summary": "Stop playing silence to a channel.", + "nickname": "stopSilence", + "responseClass": "void", + "parameters": [ + { + "name": "channelId", + "description": "Channel's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Channel not found" + }, + { + "code": 409, + "reason": "Channel not in a Stasis application" + } + ] + } + ] + }, + { + "path": "/channels/{channelId}/play", + "description": "Play media to a channel", + "operations": [ + { + "httpMethod": "POST", + "summary": "Start playback of media.", + "notes": "The media URI may be any of a number of URI's. Currently sound:, recording:, number:, digits:, characters:, and tone: URI's are supported. This operation creates a playback resource that can be used to control the playback of media (pause, rewind, fast forward, etc.)", + "nickname": "play", + "responseClass": "Playback", + "parameters": [ + { + "name": "channelId", + "description": "Channel's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "media", + "description": "Media's URI to play.", + "paramType": "query", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "lang", + "description": "For sounds, selects language for sound.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "offsetms", + "description": "Number of media to skip before playing.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "int" + }, + { + "name": "skipms", + "description": "Number of milliseconds to skip for forward/reverse operations.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "int", + "defaultValue": 3000 + }, + { + "name": "playbackId", + "description": "Playback ID.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Channel not found" + }, + { + "code": 409, + "reason": "Channel not in a Stasis application" + } + ] + } + ] + }, + { + "path": "/channels/{channelId}/play/{playbackId}", + "description": "Play media to a channel", + "operations": [ + { + "httpMethod": "POST", + "summary": "Start playback of media and specify the playbackId.", + "notes": "The media URI may be any of a number of URI's. Currently sound:, recording:, number:, digits:, characters:, and tone: URI's are supported. This operation creates a playback resource that can be used to control the playback of media (pause, rewind, fast forward, etc.)", + "nickname": "playWithId", + "responseClass": "Playback", + "parameters": [ + { + "name": "channelId", + "description": "Channel's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "playbackId", + "description": "Playback ID.", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "media", + "description": "Media's URI to play.", + "paramType": "query", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "lang", + "description": "For sounds, selects language for sound.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "offsetms", + "description": "Number of media to skip before playing.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "int" + }, + { + "name": "skipms", + "description": "Number of milliseconds to skip for forward/reverse operations.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "int", + "defaultValue": 3000 + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Channel not found" + }, + { + "code": 409, + "reason": "Channel not in a Stasis application" + } + ] + } + ] + }, + { + "path": "/channels/{channelId}/record", + "description": "Record audio from a channel", + "operations": [ + { + "httpMethod": "POST", + "summary": "Start a recording.", + "notes": "Record audio from a channel. Note that this will not capture audio sent to the channel. The bridge itself has a record feature if that's what you want.", + "nickname": "record", + "responseClass": "LiveRecording", + "parameters": [ + { + "name": "channelId", + "description": "Channel's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "name", + "description": "Recording's filename", + "paramType": "query", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "format", + "description": "Format to encode audio in", + "paramType": "query", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "maxDurationSeconds", + "description": "Maximum duration of the recording, in seconds. 0 for no limit", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "int", + "defaultValue": 0, + "allowableValues": { + "valueType": "RANGE", + "min": 0 + } + }, + { + "name": "maxSilenceSeconds", + "description": "Maximum duration of silence, in seconds. 0 for no limit", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "int", + "defaultValue": 0, + "allowableValues": { + "valueType": "RANGE", + "min": 0 + } + }, + { + "name": "ifExists", + "description": "Action to take if a recording with the same name already exists.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string", + "defaultValue": "fail", + "allowableValues": { + "valueType": "LIST", + "values": [ + "fail", + "overwrite", + "append" + ] + } + }, + { + "name": "beep", + "description": "Play beep when recording begins", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "boolean", + "defaultValue": false + }, + { + "name": "terminateOn", + "description": "DTMF input to terminate recording", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string", + "defaultValue": "none", + "allowableValues": { + "valueType": "LIST", + "values": [ + "none", + "any", + "*", + "#" + ] + } + } + ], + "errorResponses": [ + { + "code": 400, + "reason": "Invalid parameters" + }, + { + "code": 404, + "reason": "Channel not found" + }, + { + "code": 409, + "reason": "Channel is not in a Stasis application; the channel is currently bridged with other hcannels; A recording with the same name already exists on the system and can not be overwritten because it is in progress or ifExists=fail" + }, + { + "code": 422, + "reason": "The format specified is unknown on this system" + } + ] + } + ] + }, + { + "path": "/channels/{channelId}/variable", + "description": "Variables on a channel", + "operations": [ + { + "httpMethod": "GET", + "summary": "Get the value of a channel variable or function.", + "nickname": "getChannelVar", + "responseClass": "Variable", + "parameters": [ + { + "name": "channelId", + "description": "Channel's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "variable", + "description": "The channel variable or function to get", + "paramType": "query", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 400, + "reason": "Missing variable parameter." + }, + { + "code": 404, + "reason": "Channel or variable not found" + }, + { + "code": 409, + "reason": "Channel not in a Stasis application" + } + ] + }, + { + "httpMethod": "POST", + "summary": "Set the value of a channel variable or function.", + "nickname": "setChannelVar", + "responseClass": "void", + "parameters": [ + { + "name": "channelId", + "description": "Channel's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "variable", + "description": "The channel variable or function to set", + "paramType": "query", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "value", + "description": "The value to set the variable to", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 400, + "reason": "Missing variable parameter." + }, + { + "code": 404, + "reason": "Channel not found" + }, + { + "code": 409, + "reason": "Channel not in a Stasis application" + } + ] + } + ] + }, + { + "path": "/channels/{channelId}/snoop", + "description": "Snoop (spy/whisper) on a channel", + "operations": [ + { + "httpMethod": "POST", + "summary": "Start snooping.", + "notes": "Snoop (spy/whisper) on a specific channel.", + "nickname": "snoopChannel", + "responseClass": "Channel", + "parameters": [ + { + "name": "channelId", + "description": "Channel's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "spy", + "description": "Direction of audio to spy on", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string", + "defaultValue": "none", + "allowableValues": { + "valueType": "LIST", + "values": [ + "none", + "both", + "out", + "in" + ] + } + }, + { + "name": "whisper", + "description": "Direction of audio to whisper into", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string", + "defaultValue": "none", + "allowableValues": { + "valueType": "LIST", + "values": [ + "none", + "both", + "out", + "in" + ] + } + }, + { + "name": "app", + "description": "Application the snooping channel is placed into", + "paramType": "query", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "appArgs", + "description": "The application arguments to pass to the Stasis application", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "snoopId", + "description": "Unique ID to assign to snooping channel", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 400, + "reason": "Invalid parameters" + }, + { + "code": 404, + "reason": "Channel not found" + } + ] + } + ] + }, + { + "path": "/channels/{channelId}/snoop/{snoopId}", + "description": "Snoop (spy/whisper) on a channel", + "operations": [ + { + "httpMethod": "POST", + "summary": "Start snooping.", + "notes": "Snoop (spy/whisper) on a specific channel.", + "nickname": "snoopChannelWithId", + "responseClass": "Channel", + "parameters": [ + { + "name": "channelId", + "description": "Channel's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "snoopId", + "description": "Unique ID to assign to snooping channel", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "spy", + "description": "Direction of audio to spy on", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string", + "defaultValue": "none", + "allowableValues": { + "valueType": "LIST", + "values": [ + "none", + "both", + "out", + "in" + ] + } + }, + { + "name": "whisper", + "description": "Direction of audio to whisper into", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string", + "defaultValue": "none", + "allowableValues": { + "valueType": "LIST", + "values": [ + "none", + "both", + "out", + "in" + ] + } + }, + { + "name": "app", + "description": "Application the snooping channel is placed into", + "paramType": "query", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "appArgs", + "description": "The application arguments to pass to the Stasis application", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 400, + "reason": "Invalid parameters" + }, + { + "code": 404, + "reason": "Channel not found" + } + ] + } + ] + }, + { + "path": "/channels/{channelId}/rtp_statistics", + "description": "Get RTP statistics information for RTP on a channel", + "operations": [ + { + "httpMethod": "GET", + "summary": "RTP stats on a channel.", + "nickname": "rtpstatistics", + "responseClass": "RTPstat", + "parameters": [ + { + "name": "channelId", + "description": "Channel's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Channel cannot be found." + } + ] + } + ] + } + ], + "models": { + "Dialed": { + "id": "Dialed", + "description": "Dialed channel information.", + "properties": {} + }, + "DialplanCEP": { + "id": "DialplanCEP", + "description": "Dialplan location (context/extension/priority)", + "properties": { + "context": { + "required": true, + "type": "string", + "description": "Context in the dialplan" + }, + "exten": { + "required": true, + "type": "string", + "description": "Extension in the dialplan" + }, + "priority": { + "required": true, + "type": "long", + "description": "Priority in the dialplan" + }, + "app_name": { + "required": true, + "type": "string", + "description": "Name of current dialplan application" + }, + "app_data": { + "required": true, + "type": "string", + "description": "Parameter of current dialplan application" + } + } + }, + "CallerID": { + "id": "CallerID", + "description": "Caller identification", + "properties": { + "name": { + "required": true, + "type": "string" + }, + "number": { + "required": true, + "type": "string" + } + } + }, + "RTPstat": { + "id": "RTPstat", + "description": "A statistics of a RTP.", + "properties": { + "txcount": { + "required": true, + "type": "int", + "description": "Number of packets transmitted." + }, + "rxcount": { + "required": true, + "type": "int", + "description": "Number of packets received." + }, + "txjitter": { + "required": false, + "type": "double", + "description": "Jitter on transmitted packets." + }, + "rxjitter": { + "required": false, + "type": "double", + "description": "Jitter on received packets." + }, + "remote_maxjitter": { + "required": false, + "type": "double", + "description": "Maximum jitter on remote side." + }, + "remote_minjitter": { + "required": false, + "type": "double", + "description": "Minimum jitter on remote side." + }, + "remote_normdevjitter": { + "required": false, + "type": "double", + "description": "Average jitter on remote side." + }, + "remote_stdevjitter": { + "required": false, + "type": "double", + "description": "Standard deviation jitter on remote side." + }, + "local_maxjitter": { + "required": false, + "type": "double", + "description": "Maximum jitter on local side." + }, + "local_minjitter": { + "required": false, + "type": "double", + "description": "Minimum jitter on local side." + }, + "local_normdevjitter": { + "required": false, + "type": "double", + "description": "Average jitter on local side." + }, + "local_stdevjitter": { + "required": false, + "type": "double", + "description": "Standard deviation jitter on local side." + }, + "txploss": { + "required": true, + "type": "int", + "description": "Number of transmitted packets lost." + }, + "rxploss": { + "required": true, + "type": "int", + "description": "Number of received packets lost." + }, + "remote_maxrxploss": { + "required": false, + "type": "double", + "description": "Maximum number of packets lost on remote side." + }, + "remote_minrxploss": { + "required": false, + "type": "double", + "description": "Minimum number of packets lost on remote side." + }, + "remote_normdevrxploss": { + "required": false, + "type": "double", + "description": "Average number of packets lost on remote side." + }, + "remote_stdevrxploss": { + "required": false, + "type": "double", + "description": "Standard deviation packets lost on remote side." + }, + "local_maxrxploss": { + "required": false, + "type": "double", + "description": "Maximum number of packets lost on local side." + }, + "local_minrxploss": { + "required": false, + "type": "double", + "description": "Minimum number of packets lost on local side." + }, + "local_normdevrxploss": { + "required": false, + "type": "double", + "description": "Average number of packets lost on local side." + }, + "local_stdevrxploss": { + "required": false, + "type": "double", + "description": "Standard deviation packets lost on local side." + }, + "rtt": { + "required": false, + "type": "double", + "description": "Total round trip time." + }, + "maxrtt": { + "required": false, + "type": "double", + "description": "Maximum round trip time." + }, + "minrtt": { + "required": false, + "type": "double", + "description": "Minimum round trip time." + }, + "normdevrtt": { + "required": false, + "type": "double", + "description": "Average round trip time." + }, + "stdevrtt": { + "required": false, + "type": "double", + "description": "Standard deviation round trip time." + }, + "local_ssrc": { + "required": true, + "type": "int", + "description": "Our SSRC." + }, + "remote_ssrc": { + "required": true, + "type": "int", + "description": "Their SSRC." + }, + "txoctetcount": { + "required": true, + "type": "int", + "description": "Number of octets transmitted." + }, + "rxoctetcount": { + "required": true, + "type": "int", + "description": "Number of octets received." + }, + "channel_uniqueid": { + "required": true, + "type": "string", + "description": "The Asterisk channel's unique ID that owns this instance." + } + } + }, + "Channel": { + "id": "Channel", + "description": "A specific communication connection between Asterisk and an Endpoint.", + "properties": { + "id": { + "required": true, + "type": "string", + "description": "Unique identifier of the channel.\n\nThis is the same as the Uniqueid field in AMI." + }, + "name": { + "required": true, + "type": "string", + "description": "Name of the channel (i.e. SIP/foo-0000a7e3)" + }, + "state": { + "required": true, + "type": "string", + "allowableValues": { + "valueType": "LIST", + "values": [ + "Down", + "Rsrved", + "OffHook", + "Dialing", + "Ring", + "Ringing", + "Up", + "Busy", + "Dialing Offhook", + "Pre-ring", + "Unknown" + ] + } + }, + "caller": { + "required": true, + "type": "CallerID" + }, + "connected": { + "required": true, + "type": "CallerID" + }, + "accountcode": { + "required": true, + "type": "string" + }, + "dialplan": { + "required": true, + "type": "DialplanCEP", + "description": "Current location in the dialplan" + }, + "creationtime": { + "required": true, + "type": "Date", + "description": "Timestamp when channel was created" + }, + "language": { + "required": true, + "type": "string", + "description": "The default spoken language" + } + } + } + } +} diff --git a/codegen/src/main/resources/codegen-data/ari_1_10_2/deviceStates.json b/codegen/src/main/resources/codegen-data/ari_1_10_2/deviceStates.json new file mode 100644 index 00000000..16d3af75 --- /dev/null +++ b/codegen/src/main/resources/codegen-data/ari_1_10_2/deviceStates.json @@ -0,0 +1,151 @@ +{ + "_copyright": "Copyright (C) 2012 - 2013, Digium, Inc.", + "_author": "Kevin Harwell ", + "_svn_revision": "$Revision$", + "apiVersion": "1.10.0", + "swaggerVersion": "1.1", + "basePath": "http://localhost:8088/ari", + "resourcePath": "/api-docs/deviceStates.{format}", + "apis": [ + { + "path": "/deviceStates", + "description": "Device states", + "operations": [ + { + "httpMethod": "GET", + "summary": "List all ARI controlled device states.", + "nickname": "list", + "responseClass": "List[DeviceState]" + } + ] + }, + { + "path": "/deviceStates/{deviceName}", + "description": "Device state", + "operations": [ + { + "httpMethod": "GET", + "summary": "Retrieve the current state of a device.", + "nickname": "get", + "responseClass": "DeviceState", + "parameters": [ + { + "name": "deviceName", + "description": "Name of the device", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ] + }, + { + "httpMethod": "PUT", + "summary": "Change the state of a device controlled by ARI. (Note - implicitly creates the device state).", + "nickname": "update", + "responseClass": "void", + "parameters": [ + { + "name": "deviceName", + "description": "Name of the device", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "deviceState", + "description": "Device state value", + "paramType": "query", + "required": true, + "allowMultiple": false, + "dataType": "string", + "allowableValues": { + "valueType": "LIST", + "values": [ + "NOT_INUSE", + "INUSE", + "BUSY", + "INVALID", + "UNAVAILABLE", + "RINGING", + "RINGINUSE", + "ONHOLD" + ] + } + + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Device name is missing" + }, + { + "code": 409, + "reason": "Uncontrolled device specified" + } + ] + }, + { + "httpMethod": "DELETE", + "summary": "Destroy a device-state controlled by ARI.", + "nickname": "delete", + "responseClass": "void", + "parameters": [ + { + "name": "deviceName", + "description": "Name of the device", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Device name is missing" + }, + { + "code": 409, + "reason": "Uncontrolled device specified" + } + ] + } + ] + } + ], + "models": { + "DeviceState": { + "id": "DeviceState", + "description": "Represents the state of a device.", + "properties": { + "name": { + "type": "string", + "description": "Name of the device.", + "required": true + }, + "state": { + "type": "string", + "description": "Device's state", + "required": true, + "allowableValues": { + "valueType": "LIST", + "values": [ + "UNKNOWN", + "NOT_INUSE", + "INUSE", + "BUSY", + "INVALID", + "UNAVAILABLE", + "RINGING", + "RINGINUSE", + "ONHOLD" + ] + } + } + } + } + } +} diff --git a/codegen/src/main/resources/codegen-data/ari_1_10_2/endpoints.json b/codegen/src/main/resources/codegen-data/ari_1_10_2/endpoints.json new file mode 100644 index 00000000..13a5beda --- /dev/null +++ b/codegen/src/main/resources/codegen-data/ari_1_10_2/endpoints.json @@ -0,0 +1,279 @@ +{ + "_copyright": "Copyright (C) 2012 - 2013, Digium, Inc.", + "_author": "David M. Lee, II ", + "_svn_revision": "$Revision$", + "apiVersion": "1.10.0", + "swaggerVersion": "1.1", + "basePath": "http://localhost:8088/ari", + "resourcePath": "/api-docs/endpoints.{format}", + "apis": [ + { + "path": "/endpoints", + "description": "Asterisk endpoints", + "operations": [ + { + "httpMethod": "GET", + "summary": "List all endpoints.", + "nickname": "list", + "responseClass": "List[Endpoint]" + } + ] + }, + { + "path": "/endpoints/sendMessage", + "description": "Send a message to some technology URI or endpoint.", + "operations": [ + { + "httpMethod": "PUT", + "summary": "Send a message to some technology URI or endpoint.", + "nickname": "sendMessage", + "responseClass": "void", + "parameters": [ + { + "name": "to", + "description": "The endpoint resource or technology specific URI to send the message to. Valid resources are sip, pjsip, and xmpp.", + "paramType": "query", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "from", + "description": "The endpoint resource or technology specific identity to send this message from. Valid resources are sip, pjsip, and xmpp.", + "paramType": "query", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "body", + "description": "The body of the message", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "variables", + "descriptioni": "The \"variables\" key in the body object holds technology specific key/value pairs to append to the message. These can be interpreted and used by the various resource types; for example, pjsip and sip resource types will add the key/value pairs as SIP headers,", + "paramType": "body", + "required": false, + "dataType": "containers", + "allowMultiple": false + } + ], + "errorResponses": [ + { + "code": 400, + "reason": "Invalid parameters for sending a message." + }, + { + "code": 404, + "reason": "Endpoint not found" + } + ] + } + ] + }, + { + "path": "/endpoints/{tech}", + "description": "Asterisk endpoints", + "operations": [ + { + "httpMethod": "GET", + "summary": "List available endoints for a given endpoint technology.", + "nickname": "listByTech", + "responseClass": "List[Endpoint]", + "parameters": [ + { + "name": "tech", + "description": "Technology of the endpoints (sip,iax2,...)", + "paramType": "path", + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Endpoints not found" + } + ] + } + ] + }, + { + "path": "/endpoints/{tech}/{resource}", + "description": "Single endpoint", + "operations": [ + { + "httpMethod": "GET", + "summary": "Details for an endpoint.", + "nickname": "get", + "responseClass": "Endpoint", + "parameters": [ + { + "name": "tech", + "description": "Technology of the endpoint", + "paramType": "path", + "dataType": "string" + }, + { + "name": "resource", + "description": "ID of the endpoint", + "paramType": "path", + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 400, + "reason": "Invalid parameters for sending a message." + }, + { + "code": 404, + "reason": "Endpoints not found" + } + ] + } + ] + }, + { + "path": "/endpoints/{tech}/{resource}/sendMessage", + "description": "Send a message to some endpoint in a technology.", + "operations": [ + { + "httpMethod": "PUT", + "summary": "Send a message to some endpoint in a technology.", + "nickname": "sendMessageToEndpoint", + "responseClass": "void", + "parameters": [ + { + "name": "tech", + "description": "Technology of the endpoint", + "paramType": "path", + "dataType": "string" + }, + { + "name": "resource", + "description": "ID of the endpoint", + "paramType": "path", + "dataType": "string" + }, + { + "name": "from", + "description": "The endpoint resource or technology specific identity to send this message from. Valid resources are sip, pjsip, and xmpp.", + "paramType": "query", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "body", + "description": "The body of the message", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "variables", + "descriptioni": "The \"variables\" key in the body object holds technology specific key/value pairs to append to the message. These can be interpreted and used by the various resource types; for example, pjsip and sip resource types will add the key/value pairs as SIP headers,", + "paramType": "body", + "required": false, + "dataType": "containers", + "allowMultiple": false + } + ], + "errorResponses": [ + { + "code": 400, + "reason": "Invalid parameters for sending a message." + }, + { + "code": 404, + "reason": "Endpoint not found" + } + ] + } + ] + } + ], + "models": { + "Endpoint": { + "id": "Endpoint", + "description": "An external device that may offer/accept calls to/from Asterisk.\n\nUnlike most resources, which have a single unique identifier, an endpoint is uniquely identified by the technology/resource pair.", + "properties": { + "technology": { + "type": "string", + "description": "Technology of the endpoint", + "required": true + }, + "resource": { + "type": "string", + "description": "Identifier of the endpoint, specific to the given technology.", + "required": true + }, + "state": { + "type": "string", + "description": "Endpoint's state", + "required": false, + "allowableValues": { + "valueType": "LIST", + "values": [ + "unknown", + "offline", + "online" + ] + } + }, + "channel_ids": { + "type": "List[string]", + "description": "Id's of channels associated with this endpoint", + "required": true + } + } + }, + "TextMessageVariable": { + "id": "TextMessageVariable", + "description": "A key/value pair variable in a text message.", + "properties": { + "key": { + "type": "string", + "description": "A unique key identifying the variable.", + "required": true + }, + "value": { + "type": "string", + "description": "The value of the variable.", + "required": true + } + } + }, + "TextMessage": { + "id": "TextMessage", + "description": "A text message.", + "properties": { + "from": { + "type": "string", + "description": "A technology specific URI specifying the source of the message. For sip and pjsip technologies, any SIP URI can be specified. For xmpp, the URI must correspond to the client connection being used to send the message.", + "required": true + }, + "to": { + "type": "string", + "description": "A technology specific URI specifying the destination of the message. Valid technologies include sip, pjsip, and xmp. The destination of a message should be an endpoint.", + "required": true + }, + "body": { + "type": "string", + "description": "The text of the message.", + "required": true + }, + "variables": { + "type": "List[TextMessageVariable]", + "description": "Technology specific key/value pairs associated with the message.", + "required": false + } + } + } + } +} diff --git a/codegen/src/main/resources/codegen-data/ari_1_10_2/events.json b/codegen/src/main/resources/codegen-data/ari_1_10_2/events.json new file mode 100644 index 00000000..24d55130 --- /dev/null +++ b/codegen/src/main/resources/codegen-data/ari_1_10_2/events.json @@ -0,0 +1,903 @@ +{ + "_copyright": "Copyright (C) 2012 - 2013, Digium, Inc.", + "_author": "David M. Lee, II ", + "_svn_revision": "$Revision$", + "apiVersion": "1.10.0", + "swaggerVersion": "1.2", + "basePath": "http://localhost:8088/ari", + "resourcePath": "/api-docs/events.{format}", + "apis": [ + { + "path": "/events", + "description": "Events from Asterisk to applications", + "operations": [ + { + "httpMethod": "GET", + "upgrade": "websocket", + "websocketProtocol": "ari", + "summary": "WebSocket connection for events.", + "nickname": "eventWebsocket", + "responseClass": "Message", + "parameters": [ + { + "name": "app", + "description": "Applications to subscribe to.", + "paramType": "query", + "required": true, + "allowMultiple": true, + "dataType": "string" + }, + { + "name": "subscribeAll", + "description": "Subscribe to all Asterisk events. If provided, the applications listed will be subscribed to all events, effectively disabling the application specific subscriptions. Default is 'false'.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "boolean" + } + ] + } + ] + }, + { + "path": "/events/user/{eventName}", + "description": "Stasis application user events", + "operations": [ + { + "httpMethod": "POST", + "summary": "Generate a user event.", + "nickname": "userEvent", + "responseClass": "void", + "parameters": [ + { + "name": "eventName", + "description": "Event name", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "application", + "description": "The name of the application that will receive this event", + "paramType": "query", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "source", + "description": "URI for event source (channel:{channelId}, bridge:{bridgeId}, endpoint:{tech}/{resource}, deviceState:{deviceName}", + "paramType": "query", + "required": false, + "allowMultiple": true, + "dataType": "string" + }, + { + "name": "variables", + "description": "The \"variables\" key in the body object holds custom key/value pairs to add to the user event. Ex. { \"variables\": { \"key\": \"value\" } }", + "paramType": "body", + "required": false, + "allowMultiple": false, + "dataType": "containers" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Application does not exist." + }, + { + "code": 422, + "reason": "Event source not found." + }, + { + "code": 400, + "reason": "Invalid even tsource URI or userevent data." + } + ] + } + ] + } + ], + "models": { + "Message": { + "id": "Message", + "description": "Base type for errors and events", + "discriminator": "type", + "properties": { + "type": { + "type": "string", + "required": true, + "description": "Indicates the type of this message." + }, + "asterisk_id": { + "type": "string", + "required": false, + "description": "The unique ID for the Asterisk instance that raised this event." + } + }, + "subTypes": [ + "MissingParams", + "Event" + ] + }, + "MissingParams": { + "id": "MissingParams", + "description": "Error event sent when required params are missing.", + "properties": { + "params": { + "required": true, + "type": "List[string]", + "description": "A list of the missing parameters" + } + } + }, + "Event": { + "id": "Event", + "description": "Base type for asynchronous events from Asterisk.", + "properties": { + "application": { + "type": "string", + "description": "Name of the application receiving the event.", + "required": true + }, + "timestamp": { + "type": "Date", + "description": "Time at which this event was created.", + "required": true + } + }, + "subTypes": [ + "DeviceStateChanged", + "PlaybackStarted", + "PlaybackFinished", + "RecordingStarted", + "RecordingFinished", + "RecordingFailed", + "ApplicationMoveFailed", + "ApplicationReplaced", + "BridgeCreated", + "BridgeDestroyed", + "BridgeMerged", + "BridgeBlindTransfer", + "BridgeAttendedTransfer", + "BridgeVideoSourceChanged", + "ChannelCreated", + "ChannelDestroyed", + "ChannelEnteredBridge", + "ChannelLeftBridge", + "ChannelStateChange", + "ChannelDtmfReceived", + "ChannelDialplan", + "ChannelCallerId", + "ChannelUserevent", + "ChannelHangupRequest", + "ChannelVarset", + "ChannelTalkingStarted", + "ChannelTalkingFinished", + "ChannelHold", + "ChannelUnhold", + "ContactStatusChange", + "EndpointStateChange", + "Dial", + "StasisEnd", + "StasisStart", + "TextMessageReceived", + "ChannelConnectedLine", + "PeerStatusChange" + ] + }, + "ContactInfo": { + "id": "ContactInfo", + "description": "Detailed information about a contact on an endpoint.", + "properties": { + "uri": { + "type": "string", + "description": "The location of the contact.", + "required": true + }, + "contact_status": { + "type": "string", + "description": "The current status of the contact.", + "required": true, + "allowableValues": { + "valueType": "LIST", + "values": [ + "Unreachable", + "Reachable", + "Unknown", + "Created", + "Removed" + ] + } + }, + "aor": { + "type": "string", + "description": "The Address of Record this contact belongs to.", + "required": true + }, + "roundtrip_usec": { + "type": "string", + "description": "Current round trip time, in microseconds, for the contact.", + "required": false + } + } + }, + "Peer": { + "id": "Peer", + "description": "Detailed information about a remote peer that communicates with Asterisk.", + "properties": { + "peer_status": { + "type": "string", + "description": "The current state of the peer. Note that the values of the status are dependent on the underlying peer technology.", + "required": true + }, + "cause": { + "type": "string", + "description": "An optional reason associated with the change in peer_status.", + "required": false + }, + "address": { + "type": "string", + "description": "The IP address of the peer.", + "required": false + }, + "port": { + "type": "string", + "description": "The port of the peer.", + "required": false + }, + "time": { + "type": "string", + "description": "The last known time the peer was contacted.", + "required": false + } + } + }, + "DeviceStateChanged": { + "id": "DeviceStateChanged", + "description": "Notification that a device state has changed.", + "properties": { + "device_state": { + "type": "DeviceState", + "description": "Device state object", + "required": true + } + } + }, + "PlaybackStarted": { + "id": "PlaybackStarted", + "description": "Event showing the start of a media playback operation.", + "properties": { + "playback": { + "type": "Playback", + "description": "Playback control object", + "required": true + } + } + }, + "PlaybackFinished": { + "id": "PlaybackFinished", + "description": "Event showing the completion of a media playback operation.", + "properties": { + "playback": { + "type": "Playback", + "description": "Playback control object", + "required": true + } + } + }, + "RecordingStarted": { + "id": "RecordingStarted", + "description": "Event showing the start of a recording operation.", + "properties": { + "recording": { + "type": "LiveRecording", + "description": "Recording control object", + "required": true + } + } + }, + "RecordingFinished": { + "id": "RecordingFinished", + "description": "Event showing the completion of a recording operation.", + "properties": { + "recording": { + "type": "LiveRecording", + "description": "Recording control object", + "required": true + } + } + }, + "RecordingFailed": { + "id": "RecordingFailed", + "description": "Event showing failure of a recording operation.", + "properties": { + "recording": { + "type": "LiveRecording", + "description": "Recording control object", + "required": true + } + } + }, + "ApplicationMoveFailed": { + "id": "ApplicationMoveFailed", + "description": "Notification that trying to move a channel to another Stasis application failed.", + "properties": { + "channel": { + "required": true, + "type": "Channel" + }, + "destination": { + "required": true, + "type": "string" + }, + "args": { + "required": true, + "type": "List[string]", + "description": "Arguments to the application" + } + } + }, + "ApplicationReplaced": { + "id": "ApplicationReplaced", + "description": "Notification that another WebSocket has taken over for an application.\n\nAn application may only be subscribed to by a single WebSocket at a time. If multiple WebSockets attempt to subscribe to the same application, the newer WebSocket wins, and the older one receives this event.", + "properties": {} + }, + "BridgeCreated": { + "id": "BridgeCreated", + "description": "Notification that a bridge has been created.", + "properties": { + "bridge": { + "required": true, + "type": "Bridge" + } + } + }, + "BridgeDestroyed": { + "id": "BridgeDestroyed", + "description": "Notification that a bridge has been destroyed.", + "properties": { + "bridge": { + "required": true, + "type": "Bridge" + } + } + }, + "BridgeMerged": { + "id": "BridgeMerged", + "description": "Notification that one bridge has merged into another.", + "properties": { + "bridge": { + "required": true, + "type": "Bridge" + }, + "bridge_from": { + "required": true, + "type": "Bridge" + } + } + }, + "BridgeVideoSourceChanged": { + "id": "BridgeVideoSourceChanged", + "description": "Notification that the source of video in a bridge has changed.", + "properties": { + "bridge": { + "required": true, + "type": "Bridge" + }, + "old_video_source_id": { + "required": false, + "type": "string" + } + } + }, + "BridgeBlindTransfer": { + "id": "BridgeBlindTransfer", + "description": "Notification that a blind transfer has occurred.", + "properties": { + "channel": { + "description": "The channel performing the blind transfer", + "required": true, + "type": "Channel" + }, + "replace_channel": { + "description": "The channel that is replacing transferer when the transferee(s) can not be transferred directly", + "required": false, + "type": "Channel" + }, + "transferee": { + "description": "The channel that is being transferred", + "required": false, + "type": "Channel" + }, + "exten": { + "description": "The extension transferred to", + "required": true, + "type": "string" + }, + "context": { + "description": "The context transferred to", + "required": true, + "type": "string" + }, + "result": { + "description": "The result of the transfer attempt", + "required": true, + "type": "string" + }, + "is_external": { + "description": "Whether the transfer was externally initiated or not", + "required": true, + "type": "boolean" + }, + "bridge": { + "description": "The bridge being transferred", + "type": "Bridge" + } + } + }, + "BridgeAttendedTransfer": { + "id": "BridgeAttendedTransfer", + "description": "Notification that an attended transfer has occurred.", + "properties": { + "transferer_first_leg": { + "description": "First leg of the transferer", + "required": true, + "type": "Channel" + }, + "transferer_second_leg": { + "description": "Second leg of the transferer", + "required": true, + "type": "Channel" + }, + "replace_channel": { + "description": "The channel that is replacing transferer_first_leg in the swap", + "required": false, + "type": "Channel" + }, + "transferee": { + "description": "The channel that is being transferred", + "required": false, + "type": "Channel" + }, + "transfer_target": { + "description": "The channel that is being transferred to", + "required": false, + "type": "Channel" + }, + "result": { + "description": "The result of the transfer attempt", + "required": true, + "type": "string" + }, + "is_external": { + "description": "Whether the transfer was externally initiated or not", + "required": true, + "type": "boolean" + }, + "transferer_first_leg_bridge": { + "description": "Bridge the transferer first leg is in", + "type": "Bridge" + }, + "transferer_second_leg_bridge": { + "description": "Bridge the transferer second leg is in", + "type": "Bridge" + }, + "destination_type": { + "description": "How the transfer was accomplished", + "required": true, + "type": "string" + }, + "destination_bridge": { + "description": "Bridge that survived the merge result", + "type": "string" + }, + "destination_application": { + "description": "Application that has been transferred into", + "type": "string" + }, + "destination_link_first_leg": { + "description": "First leg of a link transfer result", + "type": "Channel" + }, + "destination_link_second_leg": { + "description": "Second leg of a link transfer result", + "type": "Channel" + }, + "destination_threeway_channel": { + "description": "Transferer channel that survived the threeway result", + "type": "Channel" + }, + "destination_threeway_bridge": { + "description": "Bridge that survived the threeway result", + "type": "Bridge" + } + } + }, + "ChannelCreated": { + "id": "ChannelCreated", + "description": "Notification that a channel has been created.", + "properties": { + "channel": { + "required": true, + "type": "Channel" + } + } + }, + "ChannelDestroyed": { + "id": "ChannelDestroyed", + "description": "Notification that a channel has been destroyed.", + "properties": { + "cause": { + "required": true, + "description": "Integer representation of the cause of the hangup", + "type": "int" + }, + "cause_txt": { + "required": true, + "description": "Text representation of the cause of the hangup", + "type": "string" + }, + "channel": { + "required": true, + "type": "Channel" + } + } + }, + "ChannelEnteredBridge": { + "id": "ChannelEnteredBridge", + "description": "Notification that a channel has entered a bridge.", + "properties": { + "bridge": { + "required": true, + "type": "Bridge" + }, + "channel": { + "type": "Channel" + } + } + }, + "ChannelLeftBridge": { + "id": "ChannelLeftBridge", + "description": "Notification that a channel has left a bridge.", + "properties": { + "bridge": { + "required": true, + "type": "Bridge" + }, + "channel": { + "required": true, + "type": "Channel" + } + } + }, + "ChannelStateChange": { + "id": "ChannelStateChange", + "description": "Notification of a channel's state change.", + "properties": { + "channel": { + "required": true, + "type": "Channel" + } + } + }, + "ChannelDtmfReceived": { + "id": "ChannelDtmfReceived", + "description": "DTMF received on a channel.\n\nThis event is sent when the DTMF ends. There is no notification about the start of DTMF", + "properties": { + "digit": { + "required": true, + "type": "string", + "description": "DTMF digit received (0-9, A-E, # or *)" + }, + "duration_ms": { + "required": true, + "type": "int", + "description": "Number of milliseconds DTMF was received" + }, + "channel": { + "required": true, + "type": "Channel", + "description": "The channel on which DTMF was received" + } + } + }, + "ChannelDialplan": { + "id": "ChannelDialplan", + "description": "Channel changed location in the dialplan.", + "properties": { + "channel": { + "required": true, + "type": "Channel", + "description": "The channel that changed dialplan location." + }, + "dialplan_app": { + "required": true, + "type": "string", + "description": "The application about to be executed." + }, + "dialplan_app_data": { + "required": true, + "type": "string", + "description": "The data to be passed to the application." + } + } + }, + "ChannelCallerId": { + "id": "ChannelCallerId", + "description": "Channel changed Caller ID.", + "properties": { + "caller_presentation": { + "required": true, + "type": "int", + "description": "The integer representation of the Caller Presentation value." + }, + "caller_presentation_txt": { + "required": true, + "type": "string", + "description": "The text representation of the Caller Presentation value." + }, + "channel": { + "required": true, + "type": "Channel", + "description": "The channel that changed Caller ID." + } + } + }, + "ChannelUserevent": { + "id": "ChannelUserevent", + "description": "User-generated event with additional user-defined fields in the object.", + "properties": { + "eventname": { + "required": true, + "type": "string", + "description": "The name of the user event." + }, + "channel": { + "required": false, + "type": "Channel", + "description": "A channel that is signaled with the user event." + }, + "bridge": { + "required": false, + "type": "Bridge", + "description": "A bridge that is signaled with the user event." + }, + "endpoint": { + "required": false, + "type": "Endpoint", + "description": "A endpoint that is signaled with the user event." + }, + "userevent": { + "required": true, + "type": "object", + "description": "Custom Userevent data" + } + } + }, + "ChannelHangupRequest": { + "id": "ChannelHangupRequest", + "description": "A hangup was requested on the channel.", + "properties": { + "cause": { + "type": "int", + "description": "Integer representation of the cause of the hangup." + }, + "soft": { + "type": "boolean", + "description": "Whether the hangup request was a soft hangup request." + }, + "channel": { + "required": true, + "type": "Channel", + "description": "The channel on which the hangup was requested." + } + } + }, + "ChannelVarset": { + "id": "ChannelVarset", + "description": "Channel variable changed.", + "properties": { + "variable": { + "required": true, + "type": "string", + "description": "The variable that changed." + }, + "value": { + "required": true, + "type": "string", + "description": "The new value of the variable." + }, + "channel": { + "required": false, + "type": "Channel", + "description": "The channel on which the variable was set.\n\nIf missing, the variable is a global variable." + } + } + }, + "ChannelHold": { + "id": "ChannelHold", + "description": "A channel initiated a media hold.", + "properties": { + "channel": { + "required": true, + "type": "Channel", + "description": "The channel that initiated the hold event." + }, + "musicclass": { + "required": false, + "type": "string", + "description": "The music on hold class that the initiator requested." + } + } + }, + "ChannelUnhold": { + "id": "ChannelUnhold", + "description": "A channel initiated a media unhold.", + "properties": { + "channel": { + "required": true, + "type": "Channel", + "description": "The channel that initiated the unhold event." + } + } + }, + "ChannelTalkingStarted": { + "id": "ChannelTalkingStarted", + "description": "Talking was detected on the channel.", + "properties": { + "channel": { + "required": true, + "type": "Channel", + "description": "The channel on which talking started." + } + } + }, + "ChannelTalkingFinished": { + "id": "ChannelTalkingFinished", + "description": "Talking is no longer detected on the channel.", + "properties": { + "channel": { + "required": true, + "type": "Channel", + "description": "The channel on which talking completed." + }, + "duration": { + "required": true, + "type": "int", + "description": "The length of time, in milliseconds, that talking was detected on the channel" + } + } + }, + "ContactStatusChange": { + "id": "ContactStatusChange", + "description": "The state of a contact on an endpoint has changed.", + "properties": { + "endpoint": { + "required": true, + "type": "Endpoint" + }, + "contact_info": { + "required": true, + "type": "ContactInfo" + } + } + }, + "PeerStatusChange": { + "id": "PeerStatusChange", + "description": "The state of a peer associated with an endpoint has changed.", + "properties": { + "endpoint": { + "required": true, + "type": "Endpoint" + }, + "peer": { + "required": true, + "type": "Peer" + } + } + }, + "EndpointStateChange": { + "id": "EndpointStateChange", + "description": "Endpoint state changed.", + "properties": { + "endpoint": { + "required": true, + "type": "Endpoint" + } + } + }, + "Dial": { + "id": "Dial", + "description": "Dialing state has changed.", + "properties": { + "caller": { + "required": false, + "type": "Channel", + "description": "The calling channel." + }, + "peer": { + "required": true, + "type": "Channel", + "description": "The dialed channel." + }, + "forward": { + "required": false, + "type": "string", + "description": "Forwarding target requested by the original dialed channel." + }, + "forwarded": { + "required": false, + "type": "Channel", + "description": "Channel that the caller has been forwarded to." + }, + "dialstring": { + "required": false, + "type": "string", + "description": "The dial string for calling the peer channel." + }, + "dialstatus": { + "required": true, + "type": "string", + "description": "Current status of the dialing attempt to the peer." + } + } + }, + "StasisEnd": { + "id": "StasisEnd", + "description": "Notification that a channel has left a Stasis application.", + "properties": { + "channel": { + "required": true, + "type": "Channel" + } + } + }, + "StasisStart": { + "id": "StasisStart", + "description": "Notification that a channel has entered a Stasis application.", + "properties": { + "args": { + "required": true, + "type": "List[string]", + "description": "Arguments to the application" + }, + "channel": { + "required": true, + "type": "Channel" + }, + "replace_channel": { + "required": false, + "type": "Channel" + } + } + }, + "TextMessageReceived": { + "id": "TextMessageReceived", + "description": "A text message was received from an endpoint.", + "properties": { + "message": { + "required": true, + "type": "TextMessage" + }, + "endpoint": { + "required": false, + "type": "Endpoint" + } + } + }, + "ChannelConnectedLine": { + "id": "ChannelConnectedLine", + "description": "Channel changed Connected Line.", + "properties": { + "channel": { + "required": true, + "type": "Channel", + "description": "The channel whose connected line has changed." + } + } + } + } +} diff --git a/codegen/src/main/resources/codegen-data/ari_1_10_2/mailboxes.json b/codegen/src/main/resources/codegen-data/ari_1_10_2/mailboxes.json new file mode 100644 index 00000000..999cd8db --- /dev/null +++ b/codegen/src/main/resources/codegen-data/ari_1_10_2/mailboxes.json @@ -0,0 +1,134 @@ +{ + "_copyright": "Copyright (C) 2013, Digium, Inc.", + "_author": "Jonathan Rose ", + "_svn_revision": "$Revision$", + "apiVersion": "1.10.0", + "swaggerVersion": "1.1", + "basePath": "http://localhost:8088/ari", + "resourcePath": "/api-docs/mailboxes.{format}", + "apis": [ + { + "path": "/mailboxes", + "description": "Mailboxes", + "operations": [ + { + "httpMethod": "GET", + "summary": "List all mailboxes.", + "nickname": "list", + "responseClass": "List[Mailbox]" + } + ] + }, + { + "path": "/mailboxes/{mailboxName}", + "description": "Mailbox state", + "operations": [ + { + "httpMethod": "GET", + "summary": "Retrieve the current state of a mailbox.", + "nickname": "get", + "responseClass": "Mailbox", + "parameters": [ + { + "name": "mailboxName", + "description": "Name of the mailbox", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Mailbox not found" + } + ] + }, + { + "httpMethod": "PUT", + "summary": "Change the state of a mailbox. (Note - implicitly creates the mailbox).", + "nickname": "update", + "responseClass": "void", + "parameters": [ + { + "name": "mailboxName", + "description": "Name of the mailbox", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "oldMessages", + "description": "Count of old messages in the mailbox", + "paramType": "query", + "required": true, + "allowMultiple": false, + "dataType": "int" + }, + { + "name": "newMessages", + "description": "Count of new messages in the mailbox", + "paramType": "query", + "required": true, + "allowMultiple": false, + "dataType": "int" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Mailbox not found" + } + ] + }, + { + "httpMethod": "DELETE", + "summary": "Destroy a mailbox.", + "nickname": "delete", + "responseClass": "void", + "parameters": [ + { + "name": "mailboxName", + "description": "Name of the mailbox", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Mailbox not found" + } + ] + } + ] + } + ], + "models": { + "Mailbox": { + "id": "Mailbox", + "description": "Represents the state of a mailbox.", + "properties": { + "name": { + "type": "string", + "description": "Name of the mailbox.", + "required": true + }, + "old_messages": { + "type": "int", + "description": "Count of old messages in the mailbox.", + "required": true + }, + "new_messages": { + "type": "int", + "description": "Count of new messages in the mailbox.", + "required": true + } + } + } + } +} diff --git a/codegen/src/main/resources/codegen-data/ari_1_10_2/playbacks.json b/codegen/src/main/resources/codegen-data/ari_1_10_2/playbacks.json new file mode 100644 index 00000000..1a124325 --- /dev/null +++ b/codegen/src/main/resources/codegen-data/ari_1_10_2/playbacks.json @@ -0,0 +1,155 @@ +{ + "_copyright": "Copyright (C) 2012 - 2013, Digium, Inc.", + "_author": "David M. Lee, II ", + "_svn_revision": "$Revision$", + "apiVersion": "1.10.0", + "swaggerVersion": "1.1", + "basePath": "http://localhost:8088/ari", + "resourcePath": "/api-docs/playbacks.{format}", + "apis": [ + { + "path": "/playbacks/{playbackId}", + "description": "Control object for a playback operation.", + "operations": [ + { + "httpMethod": "GET", + "summary": "Get a playback's details.", + "nickname": "get", + "responseClass": "Playback", + "parameters": [ + { + "name": "playbackId", + "description": "Playback's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "The playback cannot be found" + } + ] + }, + { + "httpMethod": "DELETE", + "summary": "Stop a playback.", + "nickname": "stop", + "responseClass": "void", + "parameters": [ + { + "name": "playbackId", + "description": "Playback's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "The playback cannot be found" + } + ] + } + ] + }, + { + "path": "/playbacks/{playbackId}/control", + "description": "Control object for a playback operation.", + "operations": [ + { + "httpMethod": "POST", + "summary": "Control a playback.", + "nickname": "control", + "responseClass": "void", + "parameters": [ + { + "name": "playbackId", + "description": "Playback's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "operation", + "description": "Operation to perform on the playback.", + "paramType": "query", + "required": true, + "allowMultiple": false, + "dataType": "string", + "allowableValues": { + "valueType": "LIST", + "values": [ + "restart", + "pause", + "unpause", + "reverse", + "forward" + ] + } + } + ], + "errorResponses": [ + { + "code": 400, + "reason": "The provided operation parameter was invalid" + }, + { + "code": 404, + "reason": "The playback cannot be found" + }, + { + "code": 409, + "reason": "The operation cannot be performed in the playback's current state" + } +] + } + ] + } + ], + "models": { + "Playback": { + "id": "Playback", + "description": "Object representing the playback of media to a channel", + "properties": { + "id": { + "type": "string", + "description": "ID for this playback operation", + "required": true + }, + "media_uri": { + "type": "string", + "description": "URI for the media to play back.", + "required": true + }, + "target_uri": { + "type": "string", + "description": "URI for the channel or bridge to play the media on", + "required": true + }, + "language": { + "type": "string", + "description": "For media types that support multiple languages, the language requested for playback." + }, + "state": { + "type": "string", + "description": "Current state of the playback operation.", + "required": true, + "allowableValues": { + "valueType": "LIST", + "values": [ + "queued", + "playing", + "complete" + ] + } + } + } + } + } +} diff --git a/codegen/src/main/resources/codegen-data/ari_1_10_2/recordings.json b/codegen/src/main/resources/codegen-data/ari_1_10_2/recordings.json new file mode 100644 index 00000000..48499bfa --- /dev/null +++ b/codegen/src/main/resources/codegen-data/ari_1_10_2/recordings.json @@ -0,0 +1,378 @@ +{ + "_copyright": "Copyright (C) 2012 - 2013, Digium, Inc.", + "_author": "David M. Lee, II ", + "_svn_revision": "$Revision$", + "apiVersion": "1.10.0", + "swaggerVersion": "1.1", + "basePath": "http://localhost:8088/ari", + "resourcePath": "/api-docs/recordings.{format}", + "apis": [ + { + "path": "/recordings/stored", + "description": "Recordings", + "operations": [ + { + "httpMethod": "GET", + "summary": "List recordings that are complete.", + "nickname": "listStored", + "responseClass": "List[StoredRecording]" + } + ] + }, + { + "path": "/recordings/stored/{recordingName}", + "description": "Individual recording", + "operations": [ + { + "httpMethod": "GET", + "summary": "Get a stored recording's details.", + "nickname": "getStored", + "responseClass": "StoredRecording", + "parameters": [ + { + "name": "recordingName", + "description": "The name of the recording", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Recording not found" + } + ] + }, + { + "httpMethod": "DELETE", + "summary": "Delete a stored recording.", + "nickname": "deleteStored", + "responseClass": "void", + "parameters": [ + { + "name": "recordingName", + "description": "The name of the recording", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Recording not found" + } + ] + } + ] + }, + { + "path": "/recordings/stored/{recordingName}/copy", + "description": "Copy an individual recording", + "operations": [ + { + "httpMethod": "POST", + "summary": "Copy a stored recording.", + "nickname": "copyStored", + "responseClass": "StoredRecording", + "parameters": [ + { + "name": "recordingName", + "description": "The name of the recording to copy", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "destinationRecordingName", + "description": "The destination name of the recording", + "paramType": "query", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Recording not found" + }, + { + "code": 409, + "reason": "A recording with the same name already exists on the system" + } + ] + } + ] + }, + { + "path": "/recordings/live/{recordingName}", + "description": "A recording that is in progress", + "operations": [ + { + "httpMethod": "GET", + "summary": "List live recordings.", + "nickname": "getLive", + "responseClass": "LiveRecording", + "parameters": [ + { + "name": "recordingName", + "description": "The name of the recording", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Recording not found" + } + ] + }, + { + "httpMethod": "DELETE", + "summary": "Stop a live recording and discard it.", + "nickname": "cancel", + "responseClass": "void", + "parameters": [ + { + "name": "recordingName", + "description": "The name of the recording", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Recording not found" + } + ] + } + ] + }, + { + "path": "/recordings/live/{recordingName}/stop", + "operations": [ + { + "httpMethod": "POST", + "summary": "Stop a live recording and store it.", + "nickname": "stop", + "responseClass": "void", + "parameters": [ + { + "name": "recordingName", + "description": "The name of the recording", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Recording not found" + } + ] + } + ] + }, + { + "path": "/recordings/live/{recordingName}/pause", + "operations": [ + { + "httpMethod": "POST", + "summary": "Pause a live recording.", + "notes": "Pausing a recording suspends silence detection, which will be restarted when the recording is unpaused. Paused time is not included in the accounting for maxDurationSeconds.", + "nickname": "pause", + "responseClass": "void", + "parameters": [ + { + "name": "recordingName", + "description": "The name of the recording", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Recording not found" + }, + { + "code": 409, + "reason": "Recording not in session" + } + ] + }, + { + "httpMethod": "DELETE", + "summary": "Unpause a live recording.", + "nickname": "unpause", + "responseClass": "void", + "parameters": [ + { + "name": "recordingName", + "description": "The name of the recording", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Recording not found" + }, + { + "code": 409, + "reason": "Recording not in session" + } + ] + } + ] + }, + { + "path": "/recordings/live/{recordingName}/mute", + "operations": [ + { + "httpMethod": "POST", + "summary": "Mute a live recording.", + "notes": "Muting a recording suspends silence detection, which will be restarted when the recording is unmuted.", + "nickname": "mute", + "responseClass": "void", + "parameters": [ + { + "name": "recordingName", + "description": "The name of the recording", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Recording not found" + }, + { + "code": 409, + "reason": "Recording not in session" + } + ] + }, + { + "httpMethod": "DELETE", + "summary": "Unmute a live recording.", + "nickname": "unmute", + "responseClass": "void", + "parameters": [ + { + "name": "recordingName", + "description": "The name of the recording", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Recording not found" + }, + { + "code": 409, + "reason": "Recording not in session" + } + ] + } + ] + } + ], + "models": { + "StoredRecording": { + "id": "StoredRecording", + "description": "A past recording that may be played back.", + "properties": { + "name": { + "required": true, + "type": "string" + }, + "format": { + "required": true, + "type": "string" + } + } + }, + "LiveRecording": { + "id": "LiveRecording", + "description": "A recording that is in progress", + "properties": { + "name": { + "required": true, + "type": "string", + "description": "Base name for the recording" + }, + "format": { + "required": true, + "type": "string", + "description": "Recording format (wav, gsm, etc.)" + }, + "target_uri": { + "required": true, + "type": "string", + "description": "URI for the channel or bridge being recorded" + }, + "state": { + "required": true, + "type": "string", + "allowableValues": { + "valueType": "LIST", + "values": [ + "queued", + "recording", + "paused", + "done", + "failed", + "canceled" + ] + } + }, + "duration": { + "required": false, + "type": "int", + "description": "Duration in seconds of the recording" + }, + "talking_duration": { + "required": false, + "type": "int", + "description": "Duration of talking, in seconds, detected in the recording. This is only available if the recording was initiated with a non-zero maxSilenceSeconds." + }, + "silence_duration": { + "required": false, + "type": "int", + "description": "Duration of silence, in seconds, detected in the recording. This is only available if the recording was initiated with a non-zero maxSilenceSeconds." + }, + "cause": { + "required": false, + "type": "string", + "description": "Cause for recording failure if failed" + } + } + } + } +} diff --git a/codegen/src/main/resources/codegen-data/ari_1_10_2/sounds.json b/codegen/src/main/resources/codegen-data/ari_1_10_2/sounds.json new file mode 100644 index 00000000..4a8eb2cc --- /dev/null +++ b/codegen/src/main/resources/codegen-data/ari_1_10_2/sounds.json @@ -0,0 +1,99 @@ +{ + "_copyright": "Copyright (C) 2012 - 2013, Digium, Inc.", + "_author": "David M. Lee, II ", + "_svn_revision": "$Revision$", + "apiVersion": "1.10.0", + "swaggerVersion": "1.1", + "basePath": "http://localhost:8088/ari", + "resourcePath": "/api-docs/sounds.{format}", + "apis": [ + { + "path": "/sounds", + "description": "Sounds", + "operations": [ + { + "httpMethod": "GET", + "summary": "List all sounds.", + "nickname": "list", + "responseClass": "List[Sound]", + "parameters": [ + { + "name": "lang", + "description": "Lookup sound for a specific language.", + "paramType": "query", + "dataType": "string", + "required": false + }, + { + "name": "format", + "description": "Lookup sound in a specific format.", + "paramType": "query", + "dataType": "string", + "required": false, + "__note": "core show translation can show translation paths between formats, along with relative costs. so this could be just installed format, or we could follow that for transcoded formats." + } + ] + } + ] + }, + { + "path": "/sounds/{soundId}", + "description": "Individual sound", + "operations": [ + { + "httpMethod": "GET", + "summary": "Get a sound's details.", + "nickname": "get", + "responseClass": "Sound", + "parameters": [ + { + "name": "soundId", + "description": "Sound's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ] + } + ] + } + ], + "models": { + "FormatLangPair": { + "id": "FormatLangPair", + "description": "Identifies the format and language of a sound file", + "properties": { + "language": { + "required": true, + "type": "string" + }, + "format": { + "required": true, + "type": "string" + } + } + }, + "Sound": { + "id": "Sound", + "description": "A media file that may be played back.", + "properties": { + "id": { + "required": true, + "description": "Sound's identifier.", + "type": "string" + }, + "text": { + "required": false, + "description": "Text description of the sound, usually the words spoken.", + "type": "string" + }, + "formats": { + "required": true, + "description": "The formats and languages in which this sound is available.", + "type": "List[FormatLangPair]" + } + } + } + } +} diff --git a/codegen/src/main/resources/codegen-data/ari_1_1_0/applications.json b/codegen/src/main/resources/codegen-data/ari_1_1_0/applications.json new file mode 100644 index 00000000..f976e554 --- /dev/null +++ b/codegen/src/main/resources/codegen-data/ari_1_1_0/applications.json @@ -0,0 +1,172 @@ +{ + "_copyright": "Copyright (C) 2013, Digium, Inc.", + "_author": "David M. Lee, II ", + "_svn_revision": "$Revision$", + "apiVersion": "1.1.0", + "swaggerVersion": "1.1", + "basePath": "http://localhost:8088/stasis", + "resourcePath": "/api-docs/applications.{format}", + "apis": [ + { + "path": "/applications", + "description": "Stasis applications", + "operations": [ + { + "httpMethod": "GET", + "summary": "List all applications.", + "nickname": "list", + "responseClass": "List[Application]" + } + ] + }, + { + "path": "/applications/{applicationName}", + "description": "Stasis application", + "operations": [ + { + "httpMethod": "GET", + "summary": "Get details of an application.", + "nickname": "get", + "responseClass": "Application", + "parameters": [ + { + "name": "applicationName", + "description": "Application's name", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Application does not exist." + } + ] + } + ] + }, + { + "path": "/applications/{applicationName}/subscription", + "description": "Stasis application", + "operations": [ + { + "httpMethod": "POST", + "summary": "Subscribe an application to a event source.", + "notes": "Returns the state of the application after the subscriptions have changed", + "nickname": "subscribe", + "responseClass": "Application", + "parameters": [ + { + "name": "applicationName", + "description": "Application's name", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "eventSource", + "description": "URI for event source (channel:{channelId}, bridge:{bridgeId}, endpoint:{tech}/{resource}, deviceState:{deviceName}", + "paramType": "query", + "required": true, + "allowMultiple": true, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 400, + "reason": "Missing parameter." + }, + { + "code": 404, + "reason": "Application does not exist." + }, + { + "code": 422, + "reason": "Event source does not exist." + } + ] + }, + { + "httpMethod": "DELETE", + "summary": "Unsubscribe an application from an event source.", + "notes": "Returns the state of the application after the subscriptions have changed", + "nickname": "unsubscribe", + "responseClass": "Application", + "parameters": [ + { + "name": "applicationName", + "description": "Application's name", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "eventSource", + "description": "URI for event source (channel:{channelId}, bridge:{bridgeId}, endpoint:{tech}/{resource}, deviceState:{deviceName}", + "paramType": "query", + "required": true, + "allowMultiple": true, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 400, + "reason": "Missing parameter; event source scheme not recognized." + }, + { + "code": 404, + "reason": "Application does not exist." + }, + { + "code": 409, + "reason": "Application not subscribed to event source." + }, + { + "code": 422, + "reason": "Event source does not exist." + } + ] + } + ] + } + ], + "models": { + "Application": { + "id": "Application", + "description": "Details of a Stasis application", + "properties": { + "name": { + "type": "string", + "description": "Name of this application", + "required": true + }, + "channel_ids": { + "type": "List[string]", + "description": "Id's for channels subscribed to.", + "required": true + }, + "bridge_ids": { + "type": "List[string]", + "description": "Id's for bridges subscribed to.", + "required": true + }, + "endpoint_ids": { + "type": "List[string]", + "description": "{tech}/{resource} for endpoints subscribed to.", + "required": true + }, + "device_names": { + "type": "List[string]", + "description": "Names of the devices subscribed to.", + "required": true + } + } + } + } +} diff --git a/codegen/src/main/resources/codegen-data/ari_1_1_0/asterisk.json b/codegen/src/main/resources/codegen-data/ari_1_1_0/asterisk.json new file mode 100644 index 00000000..9c54fc02 --- /dev/null +++ b/codegen/src/main/resources/codegen-data/ari_1_1_0/asterisk.json @@ -0,0 +1,259 @@ +{ + "_copyright": "Copyright (C) 2012 - 2013, Digium, Inc.", + "_author": "David M. Lee, II ", + "_svn_revision": "$Revision$", + "apiVersion": "1.1.0", + "swaggerVersion": "1.1", + "basePath": "http://localhost:8088/stasis", + "resourcePath": "/api-docs/asterisk.{format}", + "apis": [ + { + "path": "/asterisk/info", + "description": "Asterisk system information (similar to core show settings)", + "operations": [ + { + "httpMethod": "GET", + "summary": "Gets Asterisk system information.", + "nickname": "getInfo", + "responseClass": "AsteriskInfo", + "parameters": [ + { + "name": "only", + "description": "Filter information returned", + "paramType": "query", + "required": false, + "allowMultiple": true, + "dataType": "string", + "allowableValues": { + "valueType": "LIST", + "values": [ + "build", + "system", + "config", + "status" + ] + } + } + ] + } + ] + }, + { + "path": "/asterisk/variable", + "description": "Global variables", + "operations": [ + { + "httpMethod": "GET", + "summary": "Get the value of a global variable.", + "nickname": "getGlobalVar", + "responseClass": "Variable", + "parameters": [ + { + "name": "variable", + "description": "The variable to get", + "paramType": "query", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 400, + "reason": "Missing variable parameter." + } + ] + }, + { + "httpMethod": "POST", + "summary": "Set the value of a global variable.", + "nickname": "setGlobalVar", + "responseClass": "void", + "parameters": [ + { + "name": "variable", + "description": "The variable to set", + "paramType": "query", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "value", + "description": "The value to set the variable to", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 400, + "reason": "Missing variable parameter." + } + ] + } + ] + } + ], + "models": { + "BuildInfo": { + "id": "BuildInfo", + "description": "Info about how Asterisk was built", + "properties": { + "os": { + "required": true, + "type": "string", + "description": "OS Asterisk was built on." + }, + "kernel": { + "required": true, + "type": "string", + "description": "Kernel version Asterisk was built on." + }, + "options": { + "required": true, + "type": "string", + "description": "Compile time options, or empty string if default." + }, + "machine": { + "required": true, + "type": "string", + "description": "Machine architecture (x86_64, i686, ppc, etc.)" + }, + "date": { + "required": true, + "type": "string", + "description": "Date and time when Asterisk was built." + }, + "user": { + "required": true, + "type": "string", + "description": "Username that build Asterisk" + } + } + }, + "SystemInfo": { + "id": "SystemInfo", + "description": "Info about Asterisk", + "properties": { + "version": { + "required": true, + "type": "string", + "description": "Asterisk version." + }, + "entity_id": { + "required": true, + "type": "string", + "description": "" + } + } + }, + "SetId": { + "id": "SetId", + "description": "Effective user/group id", + "properties": { + "user": { + "required": true, + "type": "string", + "description": "Effective user id." + }, + "group": { + "required": true, + "type": "string", + "description": "Effective group id." + } + } + }, + "ConfigInfo": { + "id": "ConfigInfo", + "description": "Info about Asterisk configuration", + "properties": { + "name": { + "required": true, + "type": "string", + "description": "Asterisk system name." + }, + "default_language": { + "required": true, + "type": "string", + "description": "Default language for media playback." + }, + "max_channels": { + "required": false, + "type": "int", + "description": "Maximum number of simultaneous channels." + }, + "max_open_files": { + "required": false, + "type": "int", + "description": "Maximum number of open file handles (files, sockets)." + }, + "max_load": { + "required": false, + "type": "double", + "description": "Maximum load avg on system." + }, + "setid": { + "required": true, + "type": "SetId", + "description": "Effective user/group id for running Asterisk." + } + } + }, + "StatusInfo": { + "id": "StatusInfo", + "description": "Info about Asterisk status", + "properties": { + "startup_time": { + "required": true, + "type": "Date", + "description": "Time when Asterisk was started." + }, + "last_reload_time": { + "required": true, + "type": "Date", + "description": "Time when Asterisk was last reloaded." + } + } + }, + "AsteriskInfo": { + "id": "AsteriskInfo", + "description": "Asterisk system information", + "properties": { + "build": { + "required": false, + "type": "BuildInfo", + "description": "Info about how Asterisk was built" + }, + "system": { + "required": false, + "type": "SystemInfo", + "description": "Info about the system running Asterisk" + }, + "config": { + "required": false, + "type": "ConfigInfo", + "description": "Info about Asterisk configuration" + }, + "status": { + "required": false, + "type": "StatusInfo", + "description": "Info about Asterisk status" + } + } + }, + "Variable": { + "id": "Variable", + "description": "The value of a channel variable", + "properties": { + "value": { + "required": true, + "type": "string", + "description": "The value of the variable requested" + } + } + } + } +} diff --git a/codegen/src/main/resources/codegen-data/ari_1_1_0/bridges.json b/codegen/src/main/resources/codegen-data/ari_1_1_0/bridges.json new file mode 100644 index 00000000..b259ca8f --- /dev/null +++ b/codegen/src/main/resources/codegen-data/ari_1_1_0/bridges.json @@ -0,0 +1,531 @@ +{ + "_copyright": "Copyright (C) 2012 - 2013, Digium, Inc.", + "_author": "David M. Lee, II ", + "_svn_revision": "$Revision$", + "apiVersion": "1.1.0", + "swaggerVersion": "1.1", + "basePath": "http://localhost:8088/stasis", + "resourcePath": "/api-docs/bridges.{format}", + "apis": [ + { + "path": "/bridges", + "description": "Active bridges", + "operations": [ + { + "httpMethod": "GET", + "summary": "List all active bridges in Asterisk.", + "nickname": "list", + "responseClass": "List[Bridge]" + }, + { + "httpMethod": "POST", + "summary": "Create a new bridge.", + "notes": "This bridge persists until it has been shut down, or Asterisk has been shut down.", + "nickname": "create", + "responseClass": "Bridge", + "parameters": [ + { + "name": "type", + "description": "Type of bridge to create.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string", + "allowableValues": { + "valueType": "LIST", + "values": [ + "mixing", + "holding" + ] + } + }, + { + "name": "name", + "description": "Name to give to the bridge being created.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + } + ] + } + ] + }, + { + "path": "/bridges/{bridgeId}", + "description": "Individual bridge", + "operations": [ + { + "httpMethod": "GET", + "summary": "Get bridge details.", + "nickname": "get", + "responseClass": "Bridge", + "parameters": [ + { + "name": "bridgeId", + "description": "Bridge's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Bridge not found" + } + ] + }, + { + "httpMethod": "DELETE", + "summary": "Shut down a bridge.", + "notes": "If any channels are in this bridge, they will be removed and resume whatever they were doing beforehand.", + "nickname": "destroy", + "responseClass": "void", + "parameters": [ + { + "name": "bridgeId", + "description": "Bridge's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Bridge not found" + } + ] + } + ] + }, + { + "path": "/bridges/{bridgeId}/addChannel", + "description": "Add a channel to a bridge", + "operations": [ + { + "httpMethod": "POST", + "summary": "Add a channel to a bridge.", + "nickname": "addChannel", + "responseClass": "void", + "parameters": [ + { + "name": "bridgeId", + "description": "Bridge's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "channel", + "description": "Ids of channels to add to bridge", + "paramType": "query", + "required": true, + "allowMultiple": true, + "dataType": "string" + }, + { + "name": "role", + "description": "Channel's role in the bridge", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 400, + "reason": "Channel not found" + }, + { + "code": 404, + "reason": "Bridge not found" + }, + { + "code": 409, + "reason": "Bridge not in Stasis application; Channel currently recording" + }, + { + "code": 422, + "reason": "Channel not in Stasis application" + } + ] + } + ] + }, + { + "path": "/bridges/{bridgeId}/removeChannel", + "description": "Remove a channel from a bridge", + "operations": [ + { + "httpMethod": "POST", + "summary": "Remove a channel from a bridge.", + "nickname": "removeChannel", + "responseClass": "void", + "parameters": [ + { + "name": "bridgeId", + "description": "Bridge's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "channel", + "description": "Ids of channels to remove from bridge", + "paramType": "query", + "required": true, + "allowMultiple": true, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 400, + "reason": "Channel not found" + }, + { + "code": 404, + "reason": "Bridge not found" + }, + { + "code": 409, + "reason": "Bridge not in Stasis application" + }, + { + "code": 422, + "reason": "Channel not in this bridge" + } + ] + } + ] + }, + { + "path": "/bridges/{bridgeId}/moh", + "description": "Play music on hold to a bridge", + "operations": [ + { + "httpMethod": "POST", + "summary": "Play music on hold to a bridge or change the MOH class that is playing.", + "nickname": "startMoh", + "responseClass": "void", + "parameters": [ + { + "name": "bridgeId", + "description": "Bridge's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "mohClass", + "description": "Channel's id", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Bridge not found" + }, + { + "code": 409, + "reason": "Bridge not in Stasis application" + } + ] + }, + { + "httpMethod": "DELETE", + "summary": "Stop playing music on hold to a bridge.", + "notes": "This will only stop music on hold being played via POST bridges/{bridgeId}/moh.", + "nickname": "stopMoh", + "responseClass": "void", + "parameters": [ + { + "name": "bridgeId", + "description": "Bridge's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Bridge not found" + }, + { + "code": 409, + "reason": "Bridge not in Stasis application" + } + ] + } + ] + }, + { + "path": "/bridges/{bridgeId}/play", + "description": "Play media to the participants of a bridge", + "operations": [ + { + "httpMethod": "POST", + "summary": "Start playback of media on a bridge.", + "notes": "The media URI may be any of a number of URI's. Currently sound: and recording: URI's are supported. This operation creates a playback resource that can be used to control the playback of media (pause, rewind, fast forward, etc.)", + "nickname": "play", + "responseClass": "Playback", + "parameters": [ + { + "name": "bridgeId", + "description": "Bridge's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "media", + "description": "Media's URI to play.", + "paramType": "query", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "lang", + "description": "For sounds, selects language for sound.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "offsetms", + "description": "Number of media to skip before playing.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "int", + "defaultValue": 0, + "allowableValues": { + "valueType": "RANGE", + "min": 0 + } + + }, + { + "name": "skipms", + "description": "Number of milliseconds to skip for forward/reverse operations.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "int", + "defaultValue": 3000, + "allowableValues": { + "valueType": "RANGE", + "min": 0 + } + + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Bridge not found" + }, + { + "code": 409, + "reason": "Bridge not in a Stasis application" + } + ] + } + ] + }, + { + "path": "/bridges/{bridgeId}/record", + "description": "Record audio on a bridge", + "operations": [ + { + "httpMethod": "POST", + "summary": "Start a recording.", + "notes": "This records the mixed audio from all channels participating in this bridge.", + "nickname": "record", + "responseClass": "LiveRecording", + "parameters": [ + { + "name": "bridgeId", + "description": "Bridge's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "name", + "description": "Recording's filename", + "paramType": "query", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "format", + "description": "Format to encode audio in", + "paramType": "query", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "maxDurationSeconds", + "description": "Maximum duration of the recording, in seconds. 0 for no limit.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "int", + "defaultValue": 0, + "allowableValues": { + "valueType": "RANGE", + "min": 0 + } + }, + { + "name": "maxSilenceSeconds", + "description": "Maximum duration of silence, in seconds. 0 for no limit.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "int", + "defaultValue": 0, + "allowableValues": { + "valueType": "RANGE", + "min": 0 + } + }, + { + "name": "ifExists", + "description": "Action to take if a recording with the same name already exists.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string", + "defaultValue": "fail", + "allowableValues": { + "valueType": "LIST", + "values": [ + "fail", + "overwrite", + "append" + ] + } + }, + { + "name": "beep", + "description": "Play beep when recording begins", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "boolean", + "defaultValue": false + }, + { + "name": "terminateOn", + "description": "DTMF input to terminate recording.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string", + "defaultValue": "none", + "allowableValues": { + "valueType": "LIST", + "values": [ + "none", + "any", + "*", + "#" + ] + } + } + ], + "errorResponses": [ + { + "code": 400, + "reason": "Invalid parameters" + }, + { + "code": 404, + "reason": "Bridge not found" + }, + { + "code": 409, + "reason": "Bridge is not in a Stasis application; A recording with the same name already exists on the system and can not be overwritten because it is in progress or ifExists=fail" + }, + { + "code": 422, + "reason": "The format specified is unknown on this system" + } + ] + } + ] + } + ], + "models": { + "Bridge": { + "id": "Bridge", + "description": "The merging of media from one or more channels.\n\nEveryone on the bridge receives the same audio.", + "properties": { + "id": { + "type": "string", + "description": "Unique identifier for this bridge", + "required": true + }, + "technology": { + "type": "string", + "description": "Name of the current bridging technology", + "required": true + }, + "bridge_type": { + "type": "string", + "description": "Type of bridge technology", + "required": true, + "allowableValues": { + "valueType": "LIST", + "values": [ + "mixing", + "holding" + ] + } + }, + "bridge_class": { + "type": "string", + "description": "Bridging class", + "required": true + }, + "creator": { + "type": "string", + "description": "Entity that created the bridge", + "required": true + }, + "name": { + "type": "string", + "description": "Name the creator gave the bridge", + "required": true + }, + "channels": { + "type": "List[string]", + "description": "Ids of channels participating in this bridge", + "required": true + } + } + } + } +} diff --git a/codegen/src/main/resources/codegen-data/ari_1_1_0/channels.json b/codegen/src/main/resources/codegen-data/ari_1_1_0/channels.json new file mode 100644 index 00000000..0cfe90e5 --- /dev/null +++ b/codegen/src/main/resources/codegen-data/ari_1_1_0/channels.json @@ -0,0 +1,1152 @@ +{ + "_copyright": "Copyright (C) 2012 - 2013, Digium, Inc.", + "_author": "David M. Lee, II ", + "_svn_revision": "$Revision$", + "apiVersion": "1.1.0", + "swaggerVersion": "1.1", + "basePath": "http://localhost:8088/stasis", + "resourcePath": "/api-docs/channels.{format}", + "apis": [ + { + "path": "/channels", + "description": "Active channels", + "operations": [ + { + "httpMethod": "GET", + "summary": "List all active channels in Asterisk.", + "nickname": "list", + "responseClass": "List[Channel]" + }, + { + "httpMethod": "POST", + "summary": "Create a new channel (originate).", + "notes": "The new channel is created immediately and a snapshot of it returned. If a Stasis application is provided it will be automatically subscribed to the originated channel for further events and updates.", + "nickname": "originate", + "responseClass": "Channel", + "parameters": [ + { + "name": "endpoint", + "description": "Endpoint to call.", + "paramType": "query", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "extension", + "description": "The extension to dial after the endpoint answers", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "context", + "description": "The context to dial after the endpoint answers. If omitted, uses 'default'", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "priority", + "description": "The priority to dial after the endpoint answers. If omitted, uses 1", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "long" + }, + { + "name": "app", + "description": "The application that is subscribed to the originated channel, and passed to the Stasis application.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "appArgs", + "description": "The application arguments to pass to the Stasis application.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "callerId", + "description": "CallerID to use when dialing the endpoint or extension.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "timeout", + "description": "Timeout (in seconds) before giving up dialing, or -1 for no timeout.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "int", + "defaultValue": 30 + }, + { + "name": "variables", + "description": "The 'variables' key in the body object holds variable key/value pairs to set on the channel on creation. Other keys in the body object are interpreted as query parameters. Ex. { 'endpoint': 'SIP/Alice', 'variables': { 'CALLERID(name)': 'Alice' } }", + "paramType": "body", + "required": false, + "dataType": "containers", + "allowMultiple": false + } + ], + "errorResponses": [ + { + "code": 400, + "reason": "Invalid parameters for originating a channel." + } + ] + } + ] + }, + { + "path": "/channels/{channelId}", + "description": "Active channel", + "operations": [ + { + "httpMethod": "GET", + "summary": "Channel details.", + "nickname": "get", + "responseClass": "Channel", + "parameters": [ + { + "name": "channelId", + "description": "Channel's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Channel not found" + } + ] + }, + { + "httpMethod": "DELETE", + "summary": "Delete (i.e. hangup) a channel.", + "nickname": "hangup", + "responseClass": "void", + "parameters": [ + { + "name": "channelId", + "description": "Channel's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "reason", + "description": "Reason for hanging up the channel", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string", + "defalutValue": "normal", + "allowableValues": { + "valueType": "LIST", + "values": [ + "normal", + "busy", + "congestion" + ] + } + } + ], + "errorResponses": [ + { + "code": 400, + "reason": "Invalid reason for hangup provided" + }, + { + "code": 404, + "reason": "Channel not found" + } + ] + } + ] + }, + { + "path": "/channels/{channelId}/continue", + "description": "Exit application; continue execution in the dialplan", + "operations": [ + { + "httpMethod": "POST", + "summary": "Exit application; continue execution in the dialplan.", + "nickname": "continueInDialplan", + "responseClass": "void", + "parameters": [ + { + "name": "channelId", + "description": "Channel's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "context", + "description": "The context to continue to.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "extension", + "description": "The extension to continue to.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "priority", + "description": "The priority to continue to.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "int" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Channel not found" + }, + { + "code": 409, + "reason": "Channel not in a Stasis application" + } + ] + } + ] + }, + { + "path": "/channels/{channelId}/answer", + "description": "Answer a channel", + "operations": [ + { + "httpMethod": "POST", + "summary": "Answer a channel.", + "nickname": "answer", + "responseClass": "void", + "parameters": [ + { + "name": "channelId", + "description": "Channel's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Channel not found" + }, + { + "code": 409, + "reason": "Channel not in a Stasis application" + } + ] + } + ] + }, + { + "path": "/channels/{channelId}/ring", + "description": "Send a ringing indication to a channel", + "operations": [ + { + "httpMethod": "POST", + "summary": "Indicate ringing to a channel.", + "nickname": "ring", + "responseClass": "void", + "parameters": [ + { + "name": "channelId", + "description": "Channel's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Channel not found" + }, + { + "code": 409, + "reason": "Channel not in a Stasis application" + } + ] + }, + { + "httpMethod": "DELETE", + "summary": "Stop ringing indication on a channel if locally generated.", + "nickname": "ringStop", + "responseClass": "void", + "parameters": [ + { + "name": "channelId", + "description": "Channel's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Channel not found" + }, + { + "code": 409, + "reason": "Channel not in a Stasis application" + } + ] + } + ] + }, + { + "path": "/channels/{channelId}/dtmf", + "description": "Send DTMF to a channel", + "operations": [ + { + "httpMethod": "POST", + "summary": "Send provided DTMF to a given channel.", + "nickname": "sendDTMF", + "responseClass": "void", + "parameters": [ + { + "name": "channelId", + "description": "Channel's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "dtmf", + "description": "DTMF To send.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "before", + "description": "Amount of time to wait before DTMF digits (specified in milliseconds) start.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "int", + "defaultValue": 0 + }, + { + "name": "between", + "description": "Amount of time in between DTMF digits (specified in milliseconds).", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "int", + "defaultValue": 100 + }, + { + "name": "duration", + "description": "Length of each DTMF digit (specified in milliseconds).", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "int", + "defaultValue": 100 + }, + { + "name": "after", + "description": "Amount of time to wait after DTMF digits (specified in milliseconds) end.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "int", + "defaultValue": 0 + } + ], + "errorResponses": [ + { + "code": 400, + "reason": "DTMF is required" + }, + { + "code": 404, + "reason": "Channel not found" + }, + { + "code": 409, + "reason": "Channel not in a Stasis application" + } + ] + } + ] + }, + { + "path": "/channels/{channelId}/mute", + "description": "Mute a channel", + "operations": [ + { + "httpMethod": "POST", + "summary": "Mute a channel.", + "nickname": "mute", + "responseClass": "void", + "parameters": [ + { + "name": "channelId", + "description": "Channel's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "direction", + "description": "Direction in which to mute audio", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string", + "defaultValue": "both", + "allowableValues": { + "valueType": "LIST", + "values": [ + "both", + "in", + "out" + ] + } + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Channel not found" + }, + { + "code": 409, + "reason": "Channel not in a Stasis application" + } + ] + }, + { + "httpMethod": "DELETE", + "summary": "Unmute a channel.", + "nickname": "unmute", + "responseClass": "void", + "parameters": [ + { + "name": "channelId", + "description": "Channel's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "direction", + "description": "Direction in which to unmute audio", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string", + "defaultValue": "both", + "allowableValues": { + "valueType": "LIST", + "values": [ + "both", + "in", + "out" + ] + } + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Channel not found" + }, + { + "code": 409, + "reason": "Channel not in a Stasis application" + } + ] + } + ] + }, + { + "path": "/channels/{channelId}/hold", + "description": "Put a channel on hold", + "operations": [ + { + "httpMethod": "POST", + "summary": "Hold a channel.", + "nickname": "hold", + "responseClass": "void", + "parameters": [ + { + "name": "channelId", + "description": "Channel's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Channel not found" + }, + { + "code": 409, + "reason": "Channel not in a Stasis application" + } + ] + }, + { + "httpMethod": "DELETE", + "summary": "Remove a channel from hold.", + "nickname": "unhold", + "responseClass": "void", + "parameters": [ + { + "name": "channelId", + "description": "Channel's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Channel not found" + }, + { + "code": 409, + "reason": "Channel not in a Stasis application" + } + ] + } + ] + }, + { + "path": "/channels/{channelId}/moh", + "description": "Play music on hold to a channel", + "operations": [ + { + "httpMethod": "POST", + "summary": "Play music on hold to a channel.", + "notes": "Using media operations such as /play on a channel playing MOH in this manner will suspend MOH without resuming automatically. If continuing music on hold is desired, the stasis application must reinitiate music on hold.", + "nickname": "startMoh", + "responseClass": "void", + "parameters": [ + { + "name": "channelId", + "description": "Channel's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "mohClass", + "description": "Music on hold class to use", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Channel not found" + }, + { + "code": 409, + "reason": "Channel not in a Stasis application" + } + ] + }, + { + "httpMethod": "DELETE", + "summary": "Stop playing music on hold to a channel.", + "nickname": "stopMoh", + "responseClass": "void", + "parameters": [ + { + "name": "channelId", + "description": "Channel's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Channel not found" + }, + { + "code": 409, + "reason": "Channel not in a Stasis application" + } + ] + } + ] + }, + { + "path": "/channels/{channelId}/silence", + "description": "Play silence to a channel", + "operations": [ + { + "httpMethod": "POST", + "summary": "Play silence to a channel.", + "notes": "Using media operations such as /play on a channel playing silence in this manner will suspend silence without resuming automatically.", + "nickname": "startSilence", + "responseClass": "void", + "parameters": [ + { + "name": "channelId", + "description": "Channel's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Channel not found" + }, + { + "code": 409, + "reason": "Channel not in a Stasis application" + } + ] + }, + { + "httpMethod": "DELETE", + "summary": "Stop playing silence to a channel.", + "nickname": "stopSilence", + "responseClass": "void", + "parameters": [ + { + "name": "channelId", + "description": "Channel's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Channel not found" + }, + { + "code": 409, + "reason": "Channel not in a Stasis application" + } + ] + } + ] + }, + { + "path": "/channels/{channelId}/play", + "description": "Play media to a channel", + "operations": [ + { + "httpMethod": "POST", + "summary": "Start playback of media.", + "notes": "The media URI may be any of a number of URI's. Currently sound: and recording: URI's are supported. This operation creates a playback resource that can be used to control the playback of media (pause, rewind, fast forward, etc.)", + "nickname": "play", + "responseClass": "Playback", + "parameters": [ + { + "name": "channelId", + "description": "Channel's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "media", + "description": "Media's URI to play.", + "paramType": "query", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "lang", + "description": "For sounds, selects language for sound.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "offsetms", + "description": "Number of media to skip before playing.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "int" + }, + { + "name": "skipms", + "description": "Number of milliseconds to skip for forward/reverse operations.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "int", + "defaultValue": 3000 + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Channel not found" + }, + { + "code": 409, + "reason": "Channel not in a Stasis application" + } + ] + } + ] + }, + { + "path": "/channels/{channelId}/record", + "description": "Record audio from a channel", + "operations": [ + { + "httpMethod": "POST", + "summary": "Start a recording.", + "notes": "Record audio from a channel. Note that this will not capture audio sent to the channel. The bridge itself has a record feature if that's what you want.", + "nickname": "record", + "responseClass": "LiveRecording", + "parameters": [ + { + "name": "channelId", + "description": "Channel's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "name", + "description": "Recording's filename", + "paramType": "query", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "format", + "description": "Format to encode audio in", + "paramType": "query", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "maxDurationSeconds", + "description": "Maximum duration of the recording, in seconds. 0 for no limit", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "int", + "defaultValue": 0, + "allowableValues": { + "valueType": "RANGE", + "min": 0 + } + }, + { + "name": "maxSilenceSeconds", + "description": "Maximum duration of silence, in seconds. 0 for no limit", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "int", + "defaultValue": 0, + "allowableValues": { + "valueType": "RANGE", + "min": 0 + } + }, + { + "name": "ifExists", + "description": "Action to take if a recording with the same name already exists.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string", + "defaultValue": "fail", + "allowableValues": { + "valueType": "LIST", + "values": [ + "fail", + "overwrite", + "append" + ] + } + }, + { + "name": "beep", + "description": "Play beep when recording begins", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "boolean", + "defaultValue": false + }, + { + "name": "terminateOn", + "description": "DTMF input to terminate recording", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string", + "defaultValue": "none", + "allowableValues": { + "valueType": "LIST", + "values": [ + "none", + "any", + "*", + "#" + ] + } + } + ], + "errorResponses": [ + { + "code": 400, + "reason": "Invalid parameters" + }, + { + "code": 404, + "reason": "Channel not found" + }, + { + "code": 409, + "reason": "Channel is not in a Stasis application; the channel is currently bridged with other hcannels; A recording with the same name already exists on the system and can not be overwritten because it is in progress or ifExists=fail" + }, + { + "code": 422, + "reason": "The format specified is unknown on this system" + } + ] + } + ] + }, + { + "path": "/channels/{channelId}/variable", + "description": "Variables on a channel", + "operations": [ + { + "httpMethod": "GET", + "summary": "Get the value of a channel variable or function.", + "nickname": "getChannelVar", + "responseClass": "Variable", + "parameters": [ + { + "name": "channelId", + "description": "Channel's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "variable", + "description": "The channel variable or function to get", + "paramType": "query", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 400, + "reason": "Missing variable parameter." + }, + { + "code": 404, + "reason": "Channel not found" + }, + { + "code": 409, + "reason": "Channel not in a Stasis application" + } + ] + }, + { + "httpMethod": "POST", + "summary": "Set the value of a channel variable or function.", + "nickname": "setChannelVar", + "responseClass": "void", + "parameters": [ + { + "name": "channelId", + "description": "Channel's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "variable", + "description": "The channel variable or function to set", + "paramType": "query", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "value", + "description": "The value to set the variable to", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 400, + "reason": "Missing variable parameter." + }, + { + "code": 404, + "reason": "Channel not found" + }, + { + "code": 409, + "reason": "Channel not in a Stasis application" + } + ] + } + ] + }, + { + "path": "/channels/{channelId}/snoop", + "description": "Snoop (spy/whisper) on a channel", + "operations": [ + { + "httpMethod": "POST", + "summary": "Start snooping.", + "notes": "Snoop (spy/whisper) on a specific channel.", + "nickname": "snoopChannel", + "responseClass": "Channel", + "parameters": [ + { + "name": "channelId", + "description": "Channel's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "spy", + "description": "Direction of audio to spy on", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string", + "defaultValue": "none", + "allowableValues": { + "valueType": "LIST", + "values": [ + "none", + "both", + "out", + "in" + ] + } + }, + { + "name": "whisper", + "description": "Direction of audio to whisper into", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string", + "defaultValue": "none", + "allowableValues": { + "valueType": "LIST", + "values": [ + "none", + "both", + "out", + "in" + ] + } + }, + { + "name": "app", + "description": "Application the snooping channel is placed into", + "paramType": "query", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "appArgs", + "description": "The application arguments to pass to the Stasis application", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 400, + "reason": "Invalid parameters" + }, + { + "code": 404, + "reason": "Channel not found" + } + ] + } + ] + } + ], + "models": { + "Dialed": { + "id": "Dialed", + "description": "Dialed channel information.", + "properties": {} + }, + "DialplanCEP": { + "id": "DialplanCEP", + "description": "Dialplan location (context/extension/priority)", + "properties": { + "context": { + "required": true, + "type": "string", + "description": "Context in the dialplan" + }, + "exten": { + "required": true, + "type": "string", + "description": "Extension in the dialplan" + }, + "priority": { + "required": true, + "type": "long", + "description": "Priority in the dialplan" + } + } + }, + "CallerID": { + "id": "CallerID", + "description": "Caller identification", + "properties": { + "name": { + "required": true, + "type": "string" + }, + "number": { + "required": true, + "type": "string" + } + } + }, + "Channel": { + "id": "Channel", + "description": "A specific communication connection between Asterisk and an Endpoint.", + "properties": { + "id": { + "required": true, + "type": "string", + "description": "Unique identifier of the channel.\n\nThis is the same as the Uniqueid field in AMI." + }, + "name": { + "required": true, + "type": "string", + "description": "Name of the channel (i.e. SIP/foo-0000a7e3)" + }, + "state": { + "required": true, + "type": "string", + "allowableValues": { + "valueType": "LIST", + "values": [ + "Down", + "Rsrved", + "OffHook", + "Dialing", + "Ring", + "Ringing", + "Up", + "Busy", + "Dialing Offhook", + "Pre-ring", + "Unknown" + ] + } + }, + "caller": { + "required": true, + "type": "CallerID" + }, + "connected": { + "required": true, + "type": "CallerID" + }, + "accountcode": { + "required": true, + "type": "string" + }, + "dialplan": { + "required": true, + "type": "DialplanCEP", + "description": "Current location in the dialplan" + }, + "creationtime": { + "required": true, + "type": "Date", + "description": "Timestamp when channel was created" + } + } + } + } +} diff --git a/codegen/src/main/resources/codegen-data/ari_1_1_0/deviceStates.json b/codegen/src/main/resources/codegen-data/ari_1_1_0/deviceStates.json new file mode 100644 index 00000000..fa21ed57 --- /dev/null +++ b/codegen/src/main/resources/codegen-data/ari_1_1_0/deviceStates.json @@ -0,0 +1,151 @@ +{ + "_copyright": "Copyright (C) 2012 - 2013, Digium, Inc.", + "_author": "Kevin Harwell ", + "_svn_revision": "$Revision$", + "apiVersion": "1.1.0", + "swaggerVersion": "1.1", + "basePath": "http://localhost:8088/stasis", + "resourcePath": "/api-docs/deviceStates.{format}", + "apis": [ + { + "path": "/deviceStates", + "description": "Device states", + "operations": [ + { + "httpMethod": "GET", + "summary": "List all ARI controlled device states.", + "nickname": "list", + "responseClass": "List[DeviceState]" + } + ] + }, + { + "path": "/deviceStates/{deviceName}", + "description": "Device state", + "operations": [ + { + "httpMethod": "GET", + "summary": "Retrieve the current state of a device.", + "nickname": "get", + "responseClass": "DeviceState", + "parameters": [ + { + "name": "deviceName", + "description": "Name of the device", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ] + }, + { + "httpMethod": "PUT", + "summary": "Change the state of a device controlled by ARI. (Note - implicitly creates the device state).", + "nickname": "update", + "responseClass": "void", + "parameters": [ + { + "name": "deviceName", + "description": "Name of the device", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "deviceState", + "description": "Device state value", + "paramType": "query", + "required": true, + "allowMultiple": false, + "dataType": "string", + "allowableValues": { + "valueType": "LIST", + "values": [ + "NOT_INUSE", + "INUSE", + "BUSY", + "INVALID", + "UNAVAILABLE", + "RINGING", + "RINGINUSE", + "ONHOLD" + ] + } + + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Device name is missing" + }, + { + "code": 409, + "reason": "Uncontrolled device specified" + } + ] + }, + { + "httpMethod": "DELETE", + "summary": "Destroy a device-state controlled by ARI.", + "nickname": "delete", + "responseClass": "void", + "parameters": [ + { + "name": "deviceName", + "description": "Name of the device", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Device name is missing" + }, + { + "code": 409, + "reason": "Uncontrolled device specified" + } + ] + } + ] + } + ], + "models": { + "DeviceState": { + "id": "DeviceState", + "description": "Represents the state of a device.", + "properties": { + "name": { + "type": "string", + "description": "Name of the device.", + "required": true + }, + "state": { + "type": "string", + "description": "Device's state", + "required": true, + "allowableValues": { + "valueType": "LIST", + "values": [ + "UNKNOWN", + "NOT_INUSE", + "INUSE", + "BUSY", + "INVALID", + "UNAVAILABLE", + "RINGING", + "RINGINUSE", + "ONHOLD" + ] + } + } + } + } + } +} diff --git a/codegen/src/main/resources/codegen-data/ari_1_1_0/endpoints.json b/codegen/src/main/resources/codegen-data/ari_1_1_0/endpoints.json new file mode 100644 index 00000000..7c5447ad --- /dev/null +++ b/codegen/src/main/resources/codegen-data/ari_1_1_0/endpoints.json @@ -0,0 +1,117 @@ +{ + "_copyright": "Copyright (C) 2012 - 2013, Digium, Inc.", + "_author": "David M. Lee, II ", + "_svn_revision": "$Revision$", + "apiVersion": "1.1.0", + "swaggerVersion": "1.1", + "basePath": "http://localhost:8088/stasis", + "resourcePath": "/api-docs/endpoints.{format}", + "apis": [ + { + "path": "/endpoints", + "description": "Asterisk endpoints", + "operations": [ + { + "httpMethod": "GET", + "summary": "List all endpoints.", + "nickname": "list", + "responseClass": "List[Endpoint]" + } + ] + }, + { + "path": "/endpoints/{tech}", + "description": "Asterisk endpoints", + "operations": [ + { + "httpMethod": "GET", + "summary": "List available endoints for a given endpoint technology.", + "nickname": "listByTech", + "responseClass": "List[Endpoint]", + "parameters": [ + { + "name": "tech", + "description": "Technology of the endpoints (sip,iax2,...)", + "paramType": "path", + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Endpoints not found" + } + ] + } + ] + }, + { + "path": "/endpoints/{tech}/{resource}", + "description": "Single endpoint", + "operations": [ + { + "httpMethod": "GET", + "summary": "Details for an endpoint.", + "nickname": "get", + "responseClass": "Endpoint", + "parameters": [ + { + "name": "tech", + "description": "Technology of the endpoint", + "paramType": "path", + "dataType": "string" + }, + { + "name": "resource", + "description": "ID of the endpoint", + "paramType": "path", + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Endpoints not found" + } + ] + } + ] + } + ], + "models": { + "Endpoint": { + "id": "Endpoint", + "description": "An external device that may offer/accept calls to/from Asterisk.\n\nUnlike most resources, which have a single unique identifier, an endpoint is uniquely identified by the technology/resource pair.", + "properties": { + "technology": { + "type": "string", + "description": "Technology of the endpoint", + "required": true + }, + "resource": { + "type": "string", + "description": "Identifier of the endpoint, specific to the given technology.", + "required": true + }, + "state": { + "type": "string", + "description": "Endpoint's state", + "required": false, + "allowableValues": { + "valueType": "LIST", + "values": [ + "unknown", + "offline", + "online" + ] + } + }, + "channel_ids": { + "type": "List[string]", + "description": "Id's of channels associated with this endpoint", + "required": true + } + } + } + } +} diff --git a/codegen/src/main/resources/codegen-data/ari_1_1_0/events.json b/codegen/src/main/resources/codegen-data/ari_1_1_0/events.json new file mode 100644 index 00000000..a5c7a763 --- /dev/null +++ b/codegen/src/main/resources/codegen-data/ari_1_1_0/events.json @@ -0,0 +1,577 @@ +{ + "_copyright": "Copyright (C) 2012 - 2013, Digium, Inc.", + "_author": "David M. Lee, II ", + "_svn_revision": "$Revision$", + "apiVersion": "1.1.0", + "swaggerVersion": "1.2", + "basePath": "http://localhost:8088/stasis", + "resourcePath": "/api-docs/events.{format}", + "apis": [ + { + "path": "/events", + "description": "Events from Asterisk to applications", + "operations": [ + { + "httpMethod": "GET", + "upgrade": "websocket", + "websocketProtocol": "ari", + "summary": "WebSocket connection for events.", + "nickname": "eventWebsocket", + "responseClass": "Message", + "parameters": [ + { + "name": "app", + "description": "Applications to subscribe to.", + "paramType": "query", + "required": true, + "allowMultiple": true, + "dataType": "string" + } + ] + } + ] + } + ], + "models": { + "Message": { + "id": "Message", + "description": "Base type for errors and events", + "discriminator": "type", + "properties": { + "type": { + "type": "string", + "required": true, + "description": "Indicates the type of this message." + } + }, + "subTypes": [ + "MissingParams", + "Event" + ] + }, + "MissingParams": { + "id": "MissingParams", + "description": "Error event sent when required params are missing.", + "properties": { + "params": { + "required": true, + "type": "List[string]", + "description": "A list of the missing parameters" + } + } + }, + "Event": { + "id": "Event", + "description": "Base type for asynchronous events from Asterisk.", + "properties": { + "application": { + "type": "string", + "description": "Name of the application receiving the event.", + "required": true + }, + "timestamp": { + "type": "Date", + "description": "Time at which this event was created.", + "required": false + } + }, + "subTypes": [ + "DeviceStateChanged", + "PlaybackStarted", + "PlaybackFinished", + "RecordingStarted", + "RecordingFinished", + "RecordingFailed", + "ApplicationReplaced", + "BridgeCreated", + "BridgeDestroyed", + "BridgeMerged", + "BridgeBlindTransfer", + "BridgeAttendedTransfer", + "ChannelCreated", + "ChannelDestroyed", + "ChannelEnteredBridge", + "ChannelLeftBridge", + "ChannelStateChange", + "ChannelDtmfReceived", + "ChannelDialplan", + "ChannelCallerId", + "ChannelUserevent", + "ChannelHangupRequest", + "ChannelVarset", + "EndpointStateChange", + "Dial", + "StasisEnd", + "StasisStart" + ] + }, + "DeviceStateChanged": { + "id": "DeviceStateChanged", + "description": "Notification that a device state has changed.", + "properties": { + "device_state": { + "type": "DeviceState", + "description": "Device state object", + "required": true + } + } + }, + "PlaybackStarted": { + "id": "PlaybackStarted", + "description": "Event showing the start of a media playback operation.", + "properties": { + "playback": { + "type": "Playback", + "description": "Playback control object", + "required": true + } + } + }, + "PlaybackFinished": { + "id": "PlaybackFinished", + "description": "Event showing the completion of a media playback operation.", + "properties": { + "playback": { + "type": "Playback", + "description": "Playback control object", + "required": true + } + } + }, + "RecordingStarted": { + "id": "RecordingStarted", + "extends": "Event", + "description": "Event showing the start of a recording operation.", + "properties": { + "recording": { + "type": "LiveRecording", + "description": "Recording control object", + "required": true + } + } + }, + "RecordingFinished": { + "id": "RecordingFinished", + "extends": "Event", + "description": "Event showing the completion of a recording operation.", + "properties": { + "recording": { + "type": "LiveRecording", + "description": "Recording control object", + "required": true + } + } + }, + "RecordingFailed": { + "id": "RecordingFailed", + "extends": "Event", + "description": "Event showing failure of a recording operation.", + "properties": { + "recording": { + "type": "LiveRecording", + "description": "Recording control object", + "required": true + } + } + }, + "ApplicationReplaced": { + "id": "ApplicationReplaced", + "description": "Notification that another WebSocket has taken over for an application.\n\nAn application may only be subscribed to by a single WebSocket at a time. If multiple WebSockets attempt to subscribe to the same application, the newer WebSocket wins, and the older one receives this event.", + "properties": {} + }, + "BridgeCreated": { + "id": "BridgeCreated", + "description": "Notification that a bridge has been created.", + "properties": { + "bridge": { + "required": true, + "type": "Bridge" + } + } + }, + "BridgeDestroyed": { + "id": "BridgeDestroyed", + "description": "Notification that a bridge has been destroyed.", + "properties": { + "bridge": { + "required": true, + "type": "Bridge" + } + } + }, + "BridgeMerged": { + "id": "BridgeMerged", + "description": "Notification that one bridge has merged into another.", + "properties": { + "bridge": { + "required": true, + "type": "Bridge" + }, + "bridge_from": { + "required": true, + "type": "Bridge" + } + } + }, + "BridgeBlindTransfer": { + "id": "BridgeBlindTransfer", + "description": "Notification that a blind transfer has occurred.", + "properties": { + "channel": { + "description": "The channel performing the blind transfer", + "required": true, + "type": "Channel" + }, + "exten": { + "description": "The extension transferred to", + "required": true, + "type": "string" + }, + "context": { + "description": "The context transferred to", + "required": true, + "type": "string" + }, + "result": { + "description": "The result of the transfer attempt", + "required": true, + "type": "string" + }, + "is_external": { + "description": "Whether the transfer was externally initiated or not", + "required": true, + "type": "boolean" + }, + "bridge": { + "description": "The bridge being transferred", + "type": "Bridge" + } + } + }, + "BridgeAttendedTransfer": { + "id": "BridgeAttendedTransfer", + "description": "Notification that an attended transfer has occurred.", + "properties": { + "transferer_first_leg": { + "description": "First leg of the transferer", + "required": true, + "type": "Channel" + }, + "transferer_second_leg": { + "description": "Second leg of the transferer", + "required": true, + "type": "Channel" + }, + "result": { + "description": "The result of the transfer attempt", + "required": true, + "type": "string" + }, + "is_external": { + "description": "Whether the transfer was externally initiated or not", + "required": true, + "type": "boolean" + }, + "transferer_first_leg_bridge": { + "description": "Bridge the transferer first leg is in", + "type": "Bridge" + }, + "transferer_second_leg_bridge": { + "description": "Bridge the transferer second leg is in", + "type": "Bridge" + }, + "destination_type": { + "description": "How the transfer was accomplished", + "required": true, + "type": "string" + }, + "destination_bridge": { + "description": "Bridge that survived the merge result", + "type": "string" + }, + "destination_application": { + "description": "Application that has been transferred into", + "type": "string" + }, + "destination_link_first_leg": { + "description": "First leg of a link transfer result", + "type": "Channel" + }, + "destination_link_second_leg": { + "description": "Second leg of a link transfer result", + "type": "Channel" + }, + "destination_threeway_channel": { + "description": "Transferer channel that survived the threeway result", + "type": "Channel" + }, + "destination_threeway_bridge": { + "description": "Bridge that survived the threeway result", + "type": "Bridge" + } + } + }, + "ChannelCreated": { + "id": "ChannelCreated", + "description": "Notification that a channel has been created.", + "properties": { + "channel": { + "required": true, + "type": "Channel" + } + } + }, + "ChannelDestroyed": { + "id": "ChannelDestroyed", + "description": "Notification that a channel has been destroyed.", + "properties": { + "cause": { + "required": true, + "description": "Integer representation of the cause of the hangup", + "type": "int" + }, + "cause_txt": { + "required": true, + "description": "Text representation of the cause of the hangup", + "type": "string" + }, + "channel": { + "required": true, + "type": "Channel" + } + } + }, + "ChannelEnteredBridge": { + "id": "ChannelEnteredBridge", + "description": "Notification that a channel has entered a bridge.", + "properties": { + "bridge": { + "required": true, + "type": "Bridge" + }, + "channel": { + "type": "Channel" + } + } + }, + "ChannelLeftBridge": { + "id": "ChannelLeftBridge", + "description": "Notification that a channel has left a bridge.", + "properties": { + "bridge": { + "required": true, + "type": "Bridge" + }, + "channel": { + "required": true, + "type": "Channel" + } + } + }, + "ChannelStateChange": { + "id": "ChannelStateChange", + "description": "Notification of a channel's state change.", + "properties": { + "channel": { + "required": true, + "type": "Channel" + } + } + }, + "ChannelDtmfReceived": { + "id": "ChannelDtmfReceived", + "description": "DTMF received on a channel.\n\nThis event is sent when the DTMF ends. There is no notification about the start of DTMF", + "properties": { + "digit": { + "required": true, + "type": "string", + "description": "DTMF digit received (0-9, A-E, # or *)" + }, + "duration_ms": { + "required": true, + "type": "int", + "description": "Number of milliseconds DTMF was received" + }, + "channel": { + "required": true, + "type": "Channel", + "description": "The channel on which DTMF was received" + } + } + }, + "ChannelDialplan": { + "id": "ChannelDialplan", + "description": "Channel changed location in the dialplan.", + "properties": { + "channel": { + "required": true, + "type": "Channel", + "description": "The channel that changed dialplan location." + }, + "dialplan_app": { + "required": true, + "type": "string", + "description": "The application about to be executed." + }, + "dialplan_app_data": { + "required": true, + "type": "string", + "description": "The data to be passed to the application." + } + } + }, + "ChannelCallerId": { + "id": "ChannelCallerId", + "description": "Channel changed Caller ID.", + "properties": { + "caller_presentation": { + "required": true, + "type": "int", + "description": "The integer representation of the Caller Presentation value." + }, + "caller_presentation_txt": { + "required": true, + "type": "string", + "description": "The text representation of the Caller Presentation value." + }, + "channel": { + "required": true, + "type": "Channel", + "description": "The channel that changed Caller ID." + } + } + }, + "ChannelUserevent": { + "id": "ChannelUserevent", + "description": "User-generated event with additional user-defined fields in the object.", + "properties": { + "eventname": { + "required": true, + "type": "string", + "description": "The name of the user event." + }, + "channel": { + "required": true, + "type": "Channel", + "description": "The channel that signaled the user event." + }, + "userevent": { + "required": true, + "type": "object", + "description": "Custom Userevent data" + } + } + }, + "ChannelHangupRequest": { + "id": "ChannelHangupRequest", + "description": "A hangup was requested on the channel.", + "properties": { + "cause": { + "type": "int", + "description": "Integer representation of the cause of the hangup." + }, + "soft": { + "type": "boolean", + "description": "Whether the hangup request was a soft hangup request." + }, + "channel": { + "required": true, + "type": "Channel", + "description": "The channel on which the hangup was requested." + } + } + }, + "ChannelVarset": { + "id": "ChannelVarset", + "description": "Channel variable changed.", + "properties": { + "variable": { + "required": true, + "type": "string", + "description": "The variable that changed." + }, + "value": { + "required": true, + "type": "string", + "description": "The new value of the variable." + }, + "channel": { + "required": false, + "type": "Channel", + "description": "The channel on which the variable was set.\n\nIf missing, the variable is a global variable." + } + } + }, + "EndpointStateChange": { + "id": "EndpointStateChange", + "description": "Endpoint state changed.", + "properties": { + "endpoint": { + "required": true, + "type": "Endpoint" + } + } + }, + "Dial": { + "id": "Dial", + "description": "Dialing state has changed.", + "properties": { + "caller": { + "required": false, + "type": "Channel", + "description": "The calling channel." + }, + "peer": { + "required": true, + "type": "Channel", + "description": "The dialed channel." + }, + "forward": { + "required": false, + "type": "string", + "description": "Forwarding target requested by the original dialed channel." + }, + "forwarded": { + "required": false, + "type": "Channel", + "description": "Channel that the caller has been forwarded to." + }, + "dialstring": { + "required": false, + "type": "string", + "description": "The dial string for calling the peer channel." + }, + "dialstatus": { + "required": true, + "type": "string", + "description": "Current status of the dialing attempt to the peer." + } + } + }, + "StasisEnd": { + "id": "StasisEnd", + "description": "Notification that a channel has left a Stasis application.", + "properties": { + "channel": { + "required": true, + "type": "Channel" + } + } + }, + "StasisStart": { + "id": "StasisStart", + "description": "Notification that a channel has entered a Stasis application.", + "properties": { + "args": { + "required": true, + "type": "List[string]", + "description": "Arguments to the application" + }, + "channel": { + "required": true, + "type": "Channel" + } + } + } + } +} diff --git a/codegen/src/main/resources/codegen-data/ari_1_1_0/mailboxes.json b/codegen/src/main/resources/codegen-data/ari_1_1_0/mailboxes.json new file mode 100644 index 00000000..6824c4f3 --- /dev/null +++ b/codegen/src/main/resources/codegen-data/ari_1_1_0/mailboxes.json @@ -0,0 +1,134 @@ +{ + "_copyright": "Copyright (C) 2013, Digium, Inc.", + "_author": "Jonathan Rose ", + "_svn_revision": "$Revision$", + "apiVersion": "1.1.0", + "swaggerVersion": "1.1", + "basePath": "http://localhost:8088/stasis", + "resourcePath": "/api-docs/mailboxes.{format}", + "apis": [ + { + "path": "/mailboxes", + "description": "Mailboxes", + "operations": [ + { + "httpMethod": "GET", + "summary": "List all mailboxes.", + "nickname": "list", + "responseClass": "List[Mailbox]" + } + ] + }, + { + "path": "/mailboxes/{mailboxName}", + "description": "Mailbox state", + "operations": [ + { + "httpMethod": "GET", + "summary": "Retrieve the current state of a mailbox.", + "nickname": "get", + "responseClass": "Mailbox", + "parameters": [ + { + "name": "mailboxName", + "description": "Name of the mailbox", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Mailbox not found" + } + ] + }, + { + "httpMethod": "PUT", + "summary": "Change the state of a mailbox. (Note - implicitly creates the mailbox).", + "nickname": "update", + "responseClass": "void", + "parameters": [ + { + "name": "mailboxName", + "description": "Name of the mailbox", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "oldMessages", + "description": "Count of old messages in the mailbox", + "paramType": "query", + "required": true, + "allowMultiple": false, + "dataType": "int" + }, + { + "name": "newMessages", + "description": "Count of new messages in the mailbox", + "paramType": "query", + "required": true, + "allowMultiple": false, + "dataType": "int" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Mailbox not found" + } + ] + }, + { + "httpMethod": "DELETE", + "summary": "Destroy a mailbox.", + "nickname": "delete", + "responseClass": "void", + "parameters": [ + { + "name": "mailboxName", + "description": "Name of the mailbox", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Mailbox not found" + } + ] + } + ] + } + ], + "models": { + "Mailbox": { + "id": "Mailbox", + "description": "Represents the state of a mailbox.", + "properties": { + "name": { + "type": "string", + "description": "Name of the mailbox.", + "required": true + }, + "old_messages": { + "type": "int", + "description": "Count of old messages in the mailbox.", + "required": true + }, + "new_messages": { + "type": "int", + "description": "Count of new messages in the mailbox.", + "required": true + } + } + } + } +} diff --git a/codegen/src/main/resources/codegen-data/ari_1_1_0/playbacks.json b/codegen/src/main/resources/codegen-data/ari_1_1_0/playbacks.json new file mode 100644 index 00000000..848957dc --- /dev/null +++ b/codegen/src/main/resources/codegen-data/ari_1_1_0/playbacks.json @@ -0,0 +1,155 @@ +{ + "_copyright": "Copyright (C) 2012 - 2013, Digium, Inc.", + "_author": "David M. Lee, II ", + "_svn_revision": "$Revision$", + "apiVersion": "1.1.0", + "swaggerVersion": "1.1", + "basePath": "http://localhost:8088/stasis", + "resourcePath": "/api-docs/playbacks.{format}", + "apis": [ + { + "path": "/playbacks/{playbackId}", + "description": "Control object for a playback operation.", + "operations": [ + { + "httpMethod": "GET", + "summary": "Get a playback's details.", + "nickname": "get", + "responseClass": "Playback", + "parameters": [ + { + "name": "playbackId", + "description": "Playback's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "The playback cannot be found" + } + ] + }, + { + "httpMethod": "DELETE", + "summary": "Stop a playback.", + "nickname": "stop", + "responseClass": "void", + "parameters": [ + { + "name": "playbackId", + "description": "Playback's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "The playback cannot be found" + } + ] + } + ] + }, + { + "path": "/playbacks/{playbackId}/control", + "description": "Control object for a playback operation.", + "operations": [ + { + "httpMethod": "POST", + "summary": "Control a playback.", + "nickname": "control", + "responseClass": "void", + "parameters": [ + { + "name": "playbackId", + "description": "Playback's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "operation", + "description": "Operation to perform on the playback.", + "paramType": "query", + "required": true, + "allowMultiple": false, + "dataType": "string", + "allowableValues": { + "valueType": "LIST", + "values": [ + "restart", + "pause", + "unpause", + "reverse", + "forward" + ] + } + } + ], + "errorResponses": [ + { + "code": 400, + "reason": "The provided operation parameter was invalid" + }, + { + "code": 404, + "reason": "The playback cannot be found" + }, + { + "code": 409, + "reason": "The operation cannot be performed in the playback's current state" + } +] + } + ] + } + ], + "models": { + "Playback": { + "id": "Playback", + "description": "Object representing the playback of media to a channel", + "properties": { + "id": { + "type": "string", + "description": "ID for this playback operation", + "required": true + }, + "media_uri": { + "type": "string", + "description": "URI for the media to play back.", + "required": true + }, + "target_uri": { + "type": "string", + "description": "URI for the channel or bridge to play the media on", + "required": true + }, + "language": { + "type": "string", + "description": "For media types that support multiple languages, the language requested for playback." + }, + "state": { + "type": "string", + "description": "Current state of the playback operation.", + "required": true, + "allowableValues": { + "valueType": "LIST", + "values": [ + "queued", + "playing", + "complete" + ] + } + } + } + } + } +} diff --git a/codegen/src/main/resources/codegen-data/ari_1_1_0/recordings.json b/codegen/src/main/resources/codegen-data/ari_1_1_0/recordings.json new file mode 100644 index 00000000..665df4d0 --- /dev/null +++ b/codegen/src/main/resources/codegen-data/ari_1_1_0/recordings.json @@ -0,0 +1,326 @@ +{ + "_copyright": "Copyright (C) 2012 - 2013, Digium, Inc.", + "_author": "David M. Lee, II ", + "_svn_revision": "$Revision$", + "apiVersion": "1.1.0", + "swaggerVersion": "1.1", + "basePath": "http://localhost:8088/stasis", + "resourcePath": "/api-docs/recordings.{format}", + "apis": [ + { + "path": "/recordings/stored", + "description": "Recordings", + "operations": [ + { + "httpMethod": "GET", + "summary": "List recordings that are complete.", + "nickname": "listStored", + "responseClass": "List[StoredRecording]" + } + ] + }, + { + "path": "/recordings/stored/{recordingName}", + "description": "Individual recording", + "operations": [ + { + "httpMethod": "GET", + "summary": "Get a stored recording's details.", + "nickname": "getStored", + "responseClass": "StoredRecording", + "parameters": [ + { + "name": "recordingName", + "description": "The name of the recording", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Recording not found" + } + ] + }, + { + "httpMethod": "DELETE", + "summary": "Delete a stored recording.", + "nickname": "deleteStored", + "responseClass": "void", + "parameters": [ + { + "name": "recordingName", + "description": "The name of the recording", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Recording not found" + } + ] + } + ] + }, + { + "path": "/recordings/live/{recordingName}", + "description": "A recording that is in progress", + "operations": [ + { + "httpMethod": "GET", + "summary": "List live recordings.", + "nickname": "getLive", + "responseClass": "LiveRecording", + "parameters": [ + { + "name": "recordingName", + "description": "The name of the recording", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Recording not found" + } + ] + }, + { + "httpMethod": "DELETE", + "summary": "Stop a live recording and discard it.", + "nickname": "cancel", + "responseClass": "void", + "parameters": [ + { + "name": "recordingName", + "description": "The name of the recording", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Recording not found" + } + ] + } + ] + }, + { + "path": "/recordings/live/{recordingName}/stop", + "operations": [ + { + "httpMethod": "POST", + "summary": "Stop a live recording and store it.", + "nickname": "stop", + "responseClass": "void", + "parameters": [ + { + "name": "recordingName", + "description": "The name of the recording", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Recording not found" + } + ] + } + ] + }, + { + "path": "/recordings/live/{recordingName}/pause", + "operations": [ + { + "httpMethod": "POST", + "summary": "Pause a live recording.", + "notes": "Pausing a recording suspends silence detection, which will be restarted when the recording is unpaused. Paused time is not included in the accounting for maxDurationSeconds.", + "nickname": "pause", + "responseClass": "void", + "parameters": [ + { + "name": "recordingName", + "description": "The name of the recording", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Recording not found" + }, + { + "code": 409, + "reason": "Recording not in session" + } + ] + }, + { + "httpMethod": "DELETE", + "summary": "Unpause a live recording.", + "nickname": "unpause", + "responseClass": "void", + "parameters": [ + { + "name": "recordingName", + "description": "The name of the recording", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Recording not found" + }, + { + "code": 409, + "reason": "Recording not in session" + } + ] + } + ] + }, + { + "path": "/recordings/live/{recordingName}/mute", + "operations": [ + { + "httpMethod": "POST", + "summary": "Mute a live recording.", + "notes": "Muting a recording suspends silence detection, which will be restarted when the recording is unmuted.", + "nickname": "mute", + "responseClass": "void", + "parameters": [ + { + "name": "recordingName", + "description": "The name of the recording", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Recording not found" + }, + { + "code": 409, + "reason": "Recording not in session" + } + ] + }, + { + "httpMethod": "DELETE", + "summary": "Unmute a live recording.", + "nickname": "unmute", + "responseClass": "void", + "parameters": [ + { + "name": "recordingName", + "description": "The name of the recording", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Recording not found" + }, + { + "code": 409, + "reason": "Recording not in session" + } + ] + } + ] + } + ], + "models": { + "StoredRecording": { + "id": "StoredRecording", + "description": "A past recording that may be played back.", + "properties": { + "name": { + "required": true, + "type": "string" + }, + "format": { + "required": true, + "type": "string" + } + } + }, + "LiveRecording": { + "id": "LiveRecording", + "description": "A recording that is in progress", + "properties": { + "name": { + "required": true, + "type": "string", + "description": "Base name for the recording" + }, + "format": { + "required": true, + "type": "string", + "description": "Recording format (wav, gsm, etc.)" + }, + "state": { + "required": false, + "type": "string", + "allowableValues": { + "valueType": "LIST", + "values": [ + "queued", + "recording", + "paused", + "done", + "failed", + "canceled" + ] + } + }, + "cause": { + "required": false, + "type": "string", + "description": "Cause for recording failure if failed" + }, + "state": { + "required": true, + "type": "string" + }, + "format": { + "required": true, + "type": "string" + } + } + } + } +} diff --git a/codegen/src/main/resources/codegen-data/ari_1_1_0/sounds.json b/codegen/src/main/resources/codegen-data/ari_1_1_0/sounds.json new file mode 100644 index 00000000..8c57a31b --- /dev/null +++ b/codegen/src/main/resources/codegen-data/ari_1_1_0/sounds.json @@ -0,0 +1,99 @@ +{ + "_copyright": "Copyright (C) 2012 - 2013, Digium, Inc.", + "_author": "David M. Lee, II ", + "_svn_revision": "$Revision$", + "apiVersion": "1.1.0", + "swaggerVersion": "1.1", + "basePath": "http://localhost:8088/stasis", + "resourcePath": "/api-docs/sounds.{format}", + "apis": [ + { + "path": "/sounds", + "description": "Sounds", + "operations": [ + { + "httpMethod": "GET", + "summary": "List all sounds.", + "nickname": "list", + "responseClass": "List[Sound]", + "parameters": [ + { + "name": "lang", + "description": "Lookup sound for a specific language.", + "paramType": "query", + "dataType": "string", + "required": false + }, + { + "name": "format", + "description": "Lookup sound in a specific format.", + "paramType": "query", + "dataType": "string", + "required": false, + "__note": "core show translation can show translation paths between formats, along with relative costs. so this could be just installed format, or we could follow that for transcoded formats." + } + ] + } + ] + }, + { + "path": "/sounds/{soundId}", + "description": "Individual sound", + "operations": [ + { + "httpMethod": "GET", + "summary": "Get a sound's details.", + "nickname": "get", + "responseClass": "Sound", + "parameters": [ + { + "name": "soundId", + "description": "Sound's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ] + } + ] + } + ], + "models": { + "FormatLangPair": { + "id": "FormatLangPair", + "description": "Identifies the format and language of a sound file", + "properties": { + "language": { + "required": true, + "type": "string" + }, + "format": { + "required": true, + "type": "string" + } + } + }, + "Sound": { + "id": "Sound", + "description": "A media file that may be played back.", + "properties": { + "id": { + "required": true, + "description": "Sound's identifier.", + "type": "string" + }, + "text": { + "required": false, + "description": "Text description of the sound, usually the words spoken.", + "type": "string" + }, + "formats": { + "required": true, + "description": "The formats and languages in which this sound is available.", + "type": "List[FormatLangPair]" + } + } + } + } +} diff --git a/codegen/src/main/resources/codegen-data/ari_1_2_0/applications.json b/codegen/src/main/resources/codegen-data/ari_1_2_0/applications.json new file mode 100644 index 00000000..c75d0c61 --- /dev/null +++ b/codegen/src/main/resources/codegen-data/ari_1_2_0/applications.json @@ -0,0 +1,172 @@ +{ + "_copyright": "Copyright (C) 2013, Digium, Inc.", + "_author": "David M. Lee, II ", + "_svn_revision": "$Revision$", + "apiVersion": "1.2.0", + "swaggerVersion": "1.1", + "basePath": "http://localhost:8088/stasis", + "resourcePath": "/api-docs/applications.{format}", + "apis": [ + { + "path": "/applications", + "description": "Stasis applications", + "operations": [ + { + "httpMethod": "GET", + "summary": "List all applications.", + "nickname": "list", + "responseClass": "List[Application]" + } + ] + }, + { + "path": "/applications/{applicationName}", + "description": "Stasis application", + "operations": [ + { + "httpMethod": "GET", + "summary": "Get details of an application.", + "nickname": "get", + "responseClass": "Application", + "parameters": [ + { + "name": "applicationName", + "description": "Application's name", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Application does not exist." + } + ] + } + ] + }, + { + "path": "/applications/{applicationName}/subscription", + "description": "Stasis application", + "operations": [ + { + "httpMethod": "POST", + "summary": "Subscribe an application to a event source.", + "notes": "Returns the state of the application after the subscriptions have changed", + "nickname": "subscribe", + "responseClass": "Application", + "parameters": [ + { + "name": "applicationName", + "description": "Application's name", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "eventSource", + "description": "URI for event source (channel:{channelId}, bridge:{bridgeId}, endpoint:{tech}/{resource}, deviceState:{deviceName}", + "paramType": "query", + "required": true, + "allowMultiple": true, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 400, + "reason": "Missing parameter." + }, + { + "code": 404, + "reason": "Application does not exist." + }, + { + "code": 422, + "reason": "Event source does not exist." + } + ] + }, + { + "httpMethod": "DELETE", + "summary": "Unsubscribe an application from an event source.", + "notes": "Returns the state of the application after the subscriptions have changed", + "nickname": "unsubscribe", + "responseClass": "Application", + "parameters": [ + { + "name": "applicationName", + "description": "Application's name", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "eventSource", + "description": "URI for event source (channel:{channelId}, bridge:{bridgeId}, endpoint:{tech}/{resource}, deviceState:{deviceName}", + "paramType": "query", + "required": true, + "allowMultiple": true, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 400, + "reason": "Missing parameter; event source scheme not recognized." + }, + { + "code": 404, + "reason": "Application does not exist." + }, + { + "code": 409, + "reason": "Application not subscribed to event source." + }, + { + "code": 422, + "reason": "Event source does not exist." + } + ] + } + ] + } + ], + "models": { + "Application": { + "id": "Application", + "description": "Details of a Stasis application", + "properties": { + "name": { + "type": "string", + "description": "Name of this application", + "required": true + }, + "channel_ids": { + "type": "List[string]", + "description": "Id's for channels subscribed to.", + "required": true + }, + "bridge_ids": { + "type": "List[string]", + "description": "Id's for bridges subscribed to.", + "required": true + }, + "endpoint_ids": { + "type": "List[string]", + "description": "{tech}/{resource} for endpoints subscribed to.", + "required": true + }, + "device_names": { + "type": "List[string]", + "description": "Names of the devices subscribed to.", + "required": true + } + } + } + } +} diff --git a/codegen/src/main/resources/codegen-data/ari_1_2_0/asterisk.json b/codegen/src/main/resources/codegen-data/ari_1_2_0/asterisk.json new file mode 100644 index 00000000..b607d02a --- /dev/null +++ b/codegen/src/main/resources/codegen-data/ari_1_2_0/asterisk.json @@ -0,0 +1,259 @@ +{ + "_copyright": "Copyright (C) 2012 - 2013, Digium, Inc.", + "_author": "David M. Lee, II ", + "_svn_revision": "$Revision$", + "apiVersion": "1.2.0", + "swaggerVersion": "1.1", + "basePath": "http://localhost:8088/stasis", + "resourcePath": "/api-docs/asterisk.{format}", + "apis": [ + { + "path": "/asterisk/info", + "description": "Asterisk system information (similar to core show settings)", + "operations": [ + { + "httpMethod": "GET", + "summary": "Gets Asterisk system information.", + "nickname": "getInfo", + "responseClass": "AsteriskInfo", + "parameters": [ + { + "name": "only", + "description": "Filter information returned", + "paramType": "query", + "required": false, + "allowMultiple": true, + "dataType": "string", + "allowableValues": { + "valueType": "LIST", + "values": [ + "build", + "system", + "config", + "status" + ] + } + } + ] + } + ] + }, + { + "path": "/asterisk/variable", + "description": "Global variables", + "operations": [ + { + "httpMethod": "GET", + "summary": "Get the value of a global variable.", + "nickname": "getGlobalVar", + "responseClass": "Variable", + "parameters": [ + { + "name": "variable", + "description": "The variable to get", + "paramType": "query", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 400, + "reason": "Missing variable parameter." + } + ] + }, + { + "httpMethod": "POST", + "summary": "Set the value of a global variable.", + "nickname": "setGlobalVar", + "responseClass": "void", + "parameters": [ + { + "name": "variable", + "description": "The variable to set", + "paramType": "query", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "value", + "description": "The value to set the variable to", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 400, + "reason": "Missing variable parameter." + } + ] + } + ] + } + ], + "models": { + "BuildInfo": { + "id": "BuildInfo", + "description": "Info about how Asterisk was built", + "properties": { + "os": { + "required": true, + "type": "string", + "description": "OS Asterisk was built on." + }, + "kernel": { + "required": true, + "type": "string", + "description": "Kernel version Asterisk was built on." + }, + "options": { + "required": true, + "type": "string", + "description": "Compile time options, or empty string if default." + }, + "machine": { + "required": true, + "type": "string", + "description": "Machine architecture (x86_64, i686, ppc, etc.)" + }, + "date": { + "required": true, + "type": "string", + "description": "Date and time when Asterisk was built." + }, + "user": { + "required": true, + "type": "string", + "description": "Username that build Asterisk" + } + } + }, + "SystemInfo": { + "id": "SystemInfo", + "description": "Info about Asterisk", + "properties": { + "version": { + "required": true, + "type": "string", + "description": "Asterisk version." + }, + "entity_id": { + "required": true, + "type": "string", + "description": "" + } + } + }, + "SetId": { + "id": "SetId", + "description": "Effective user/group id", + "properties": { + "user": { + "required": true, + "type": "string", + "description": "Effective user id." + }, + "group": { + "required": true, + "type": "string", + "description": "Effective group id." + } + } + }, + "ConfigInfo": { + "id": "ConfigInfo", + "description": "Info about Asterisk configuration", + "properties": { + "name": { + "required": true, + "type": "string", + "description": "Asterisk system name." + }, + "default_language": { + "required": true, + "type": "string", + "description": "Default language for media playback." + }, + "max_channels": { + "required": false, + "type": "int", + "description": "Maximum number of simultaneous channels." + }, + "max_open_files": { + "required": false, + "type": "int", + "description": "Maximum number of open file handles (files, sockets)." + }, + "max_load": { + "required": false, + "type": "double", + "description": "Maximum load avg on system." + }, + "setid": { + "required": true, + "type": "SetId", + "description": "Effective user/group id for running Asterisk." + } + } + }, + "StatusInfo": { + "id": "StatusInfo", + "description": "Info about Asterisk status", + "properties": { + "startup_time": { + "required": true, + "type": "Date", + "description": "Time when Asterisk was started." + }, + "last_reload_time": { + "required": true, + "type": "Date", + "description": "Time when Asterisk was last reloaded." + } + } + }, + "AsteriskInfo": { + "id": "AsteriskInfo", + "description": "Asterisk system information", + "properties": { + "build": { + "required": false, + "type": "BuildInfo", + "description": "Info about how Asterisk was built" + }, + "system": { + "required": false, + "type": "SystemInfo", + "description": "Info about the system running Asterisk" + }, + "config": { + "required": false, + "type": "ConfigInfo", + "description": "Info about Asterisk configuration" + }, + "status": { + "required": false, + "type": "StatusInfo", + "description": "Info about Asterisk status" + } + } + }, + "Variable": { + "id": "Variable", + "description": "The value of a channel variable", + "properties": { + "value": { + "required": true, + "type": "string", + "description": "The value of the variable requested" + } + } + } + } +} diff --git a/codegen/src/main/resources/codegen-data/ari_1_2_0/bridges.json b/codegen/src/main/resources/codegen-data/ari_1_2_0/bridges.json new file mode 100644 index 00000000..56a7a941 --- /dev/null +++ b/codegen/src/main/resources/codegen-data/ari_1_2_0/bridges.json @@ -0,0 +1,565 @@ +{ + "_copyright": "Copyright (C) 2012 - 2013, Digium, Inc.", + "_author": "David M. Lee, II ", + "_svn_revision": "$Revision$", + "apiVersion": "1.2.0", + "swaggerVersion": "1.1", + "basePath": "http://localhost:8088/stasis", + "resourcePath": "/api-docs/bridges.{format}", + "apis": [ + { + "path": "/bridges", + "description": "Active bridges", + "operations": [ + { + "httpMethod": "GET", + "summary": "List all active bridges in Asterisk.", + "nickname": "list", + "responseClass": "List[Bridge]" + }, + { + "httpMethod": "POST", + "summary": "Create a new bridge.", + "notes": "This bridge persists until it has been shut down, or Asterisk has been shut down.", + "nickname": "create", + "responseClass": "Bridge", + "parameters": [ + { + "name": "type", + "description": "Comma separated list of bridge type attributes (mixing, holding, dtmf_events, proxy_media).", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "bridgeId", + "description": "Unique ID to give to the bridge being created.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "name", + "description": "Name to give to the bridge being created.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + } + ] + } + ] + }, + { + "path": "/bridges/{bridgeId}", + "description": "Individual bridge", + "operations": [ + { + "httpMethod": "POST", + "summary": "Create a new bridge or updates an existing one.", + "notes": "This bridge persists until it has been shut down, or Asterisk has been shut down.", + "nickname": "create_or_update_with_id", + "responseClass": "Bridge", + "parameters": [ + { + "name": "type", + "description": "Comma separated list of bridge type attributes (mixing, holding, dtmf_events, proxy_media) to set.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "bridgeId", + "description": "Unique ID to give to the bridge being created.", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "name", + "description": "Set the name of the bridge.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + } + ] + }, + { + "httpMethod": "GET", + "summary": "Get bridge details.", + "nickname": "get", + "responseClass": "Bridge", + "parameters": [ + { + "name": "bridgeId", + "description": "Bridge's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Bridge not found" + } + ] + }, + { + "httpMethod": "DELETE", + "summary": "Shut down a bridge.", + "notes": "If any channels are in this bridge, they will be removed and resume whatever they were doing beforehand.", + "nickname": "destroy", + "responseClass": "void", + "parameters": [ + { + "name": "bridgeId", + "description": "Bridge's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Bridge not found" + } + ] + } + ] + }, + { + "path": "/bridges/{bridgeId}/addChannel", + "description": "Add a channel to a bridge", + "operations": [ + { + "httpMethod": "POST", + "summary": "Add a channel to a bridge.", + "nickname": "addChannel", + "responseClass": "void", + "parameters": [ + { + "name": "bridgeId", + "description": "Bridge's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "channel", + "description": "Ids of channels to add to bridge", + "paramType": "query", + "required": true, + "allowMultiple": true, + "dataType": "string" + }, + { + "name": "role", + "description": "Channel's role in the bridge", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 400, + "reason": "Channel not found" + }, + { + "code": 404, + "reason": "Bridge not found" + }, + { + "code": 409, + "reason": "Bridge not in Stasis application; Channel currently recording" + }, + { + "code": 422, + "reason": "Channel not in Stasis application" + } + ] + } + ] + }, + { + "path": "/bridges/{bridgeId}/removeChannel", + "description": "Remove a channel from a bridge", + "operations": [ + { + "httpMethod": "POST", + "summary": "Remove a channel from a bridge.", + "nickname": "removeChannel", + "responseClass": "void", + "parameters": [ + { + "name": "bridgeId", + "description": "Bridge's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "channel", + "description": "Ids of channels to remove from bridge", + "paramType": "query", + "required": true, + "allowMultiple": true, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 400, + "reason": "Channel not found" + }, + { + "code": 404, + "reason": "Bridge not found" + }, + { + "code": 409, + "reason": "Bridge not in Stasis application" + }, + { + "code": 422, + "reason": "Channel not in this bridge" + } + ] + } + ] + }, + { + "path": "/bridges/{bridgeId}/moh", + "description": "Play music on hold to a bridge", + "operations": [ + { + "httpMethod": "POST", + "summary": "Play music on hold to a bridge or change the MOH class that is playing.", + "nickname": "startMoh", + "responseClass": "void", + "parameters": [ + { + "name": "bridgeId", + "description": "Bridge's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "mohClass", + "description": "Channel's id", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Bridge not found" + }, + { + "code": 409, + "reason": "Bridge not in Stasis application" + } + ] + }, + { + "httpMethod": "DELETE", + "summary": "Stop playing music on hold to a bridge.", + "notes": "This will only stop music on hold being played via POST bridges/{bridgeId}/moh.", + "nickname": "stopMoh", + "responseClass": "void", + "parameters": [ + { + "name": "bridgeId", + "description": "Bridge's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Bridge not found" + }, + { + "code": 409, + "reason": "Bridge not in Stasis application" + } + ] + } + ] + }, + { + "path": "/bridges/{bridgeId}/play", + "description": "Play media to the participants of a bridge", + "operations": [ + { + "httpMethod": "POST", + "summary": "Start playback of media on a bridge.", + "notes": "The media URI may be any of a number of URI's. Currently sound: and recording: URI's are supported. This operation creates a playback resource that can be used to control the playback of media (pause, rewind, fast forward, etc.)", + "nickname": "play", + "responseClass": "Playback", + "parameters": [ + { + "name": "bridgeId", + "description": "Bridge's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "media", + "description": "Media's URI to play.", + "paramType": "query", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "lang", + "description": "For sounds, selects language for sound.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "offsetms", + "description": "Number of media to skip before playing.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "int", + "defaultValue": 0, + "allowableValues": { + "valueType": "RANGE", + "min": 0 + } + + }, + { + "name": "skipms", + "description": "Number of milliseconds to skip for forward/reverse operations.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "int", + "defaultValue": 3000, + "allowableValues": { + "valueType": "RANGE", + "min": 0 + } + + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Bridge not found" + }, + { + "code": 409, + "reason": "Bridge not in a Stasis application" + } + ] + } + ] + }, + { + "path": "/bridges/{bridgeId}/record", + "description": "Record audio on a bridge", + "operations": [ + { + "httpMethod": "POST", + "summary": "Start a recording.", + "notes": "This records the mixed audio from all channels participating in this bridge.", + "nickname": "record", + "responseClass": "LiveRecording", + "parameters": [ + { + "name": "bridgeId", + "description": "Bridge's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "name", + "description": "Recording's filename", + "paramType": "query", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "format", + "description": "Format to encode audio in", + "paramType": "query", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "maxDurationSeconds", + "description": "Maximum duration of the recording, in seconds. 0 for no limit.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "int", + "defaultValue": 0, + "allowableValues": { + "valueType": "RANGE", + "min": 0 + } + }, + { + "name": "maxSilenceSeconds", + "description": "Maximum duration of silence, in seconds. 0 for no limit.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "int", + "defaultValue": 0, + "allowableValues": { + "valueType": "RANGE", + "min": 0 + } + }, + { + "name": "ifExists", + "description": "Action to take if a recording with the same name already exists.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string", + "defaultValue": "fail", + "allowableValues": { + "valueType": "LIST", + "values": [ + "fail", + "overwrite", + "append" + ] + } + }, + { + "name": "beep", + "description": "Play beep when recording begins", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "boolean", + "defaultValue": false + }, + { + "name": "terminateOn", + "description": "DTMF input to terminate recording.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string", + "defaultValue": "none", + "allowableValues": { + "valueType": "LIST", + "values": [ + "none", + "any", + "*", + "#" + ] + } + } + ], + "errorResponses": [ + { + "code": 400, + "reason": "Invalid parameters" + }, + { + "code": 404, + "reason": "Bridge not found" + }, + { + "code": 409, + "reason": "Bridge is not in a Stasis application; A recording with the same name already exists on the system and can not be overwritten because it is in progress or ifExists=fail" + }, + { + "code": 422, + "reason": "The format specified is unknown on this system" + } + ] + } + ] + } + ], + "models": { + "Bridge": { + "id": "Bridge", + "description": "The merging of media from one or more channels.\n\nEveryone on the bridge receives the same audio.", + "properties": { + "id": { + "type": "string", + "description": "Unique identifier for this bridge", + "required": true + }, + "technology": { + "type": "string", + "description": "Name of the current bridging technology", + "required": true + }, + "bridge_type": { + "type": "string", + "description": "Type of bridge technology", + "required": true, + "allowableValues": { + "valueType": "LIST", + "values": [ + "mixing", + "holding" + ] + } + }, + "bridge_class": { + "type": "string", + "description": "Bridging class", + "required": true + }, + "creator": { + "type": "string", + "description": "Entity that created the bridge", + "required": true + }, + "name": { + "type": "string", + "description": "Name the creator gave the bridge", + "required": true + }, + "channels": { + "type": "List[string]", + "description": "Ids of channels participating in this bridge", + "required": true + } + } + } + } +} diff --git a/codegen/src/main/resources/codegen-data/ari_1_2_0/channels.json b/codegen/src/main/resources/codegen-data/ari_1_2_0/channels.json new file mode 100644 index 00000000..d940f438 --- /dev/null +++ b/codegen/src/main/resources/codegen-data/ari_1_2_0/channels.json @@ -0,0 +1,1456 @@ +{ + "_copyright": "Copyright (C) 2012 - 2013, Digium, Inc.", + "_author": "David M. Lee, II ", + "_svn_revision": "$Revision$", + "apiVersion": "1.2.0", + "swaggerVersion": "1.1", + "basePath": "http://localhost:8088/stasis", + "resourcePath": "/api-docs/channels.{format}", + "apis": [ + { + "path": "/channels", + "description": "Active channels", + "operations": [ + { + "httpMethod": "GET", + "summary": "List all active channels in Asterisk.", + "nickname": "list", + "responseClass": "List[Channel]" + }, + { + "httpMethod": "POST", + "summary": "Create a new channel (originate).", + "notes": "The new channel is created immediately and a snapshot of it returned. If a Stasis application is provided it will be automatically subscribed to the originated channel for further events and updates.", + "nickname": "originate", + "responseClass": "Channel", + "parameters": [ + { + "name": "endpoint", + "description": "Endpoint to call.", + "paramType": "query", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "extension", + "description": "The extension to dial after the endpoint answers", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "context", + "description": "The context to dial after the endpoint answers. If omitted, uses 'default'", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "priority", + "description": "The priority to dial after the endpoint answers. If omitted, uses 1", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "long" + }, + { + "name": "app", + "description": "The application that is subscribed to the originated channel, and passed to the Stasis application.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "appArgs", + "description": "The application arguments to pass to the Stasis application.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "callerId", + "description": "CallerID to use when dialing the endpoint or extension.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "timeout", + "description": "Timeout (in seconds) before giving up dialing, or -1 for no timeout.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "int", + "defaultValue": 30 + }, + { + "name": "variables", + "description": "The 'variables' key in the body object holds variable key/value pairs to set on the channel on creation. Other keys in the body object are interpreted as query parameters. Ex. { 'endpoint': 'SIP/Alice', 'variables': { 'CALLERID(name)': 'Alice' } }", + "paramType": "body", + "required": false, + "dataType": "containers", + "allowMultiple": false + }, + { + "name": "channelId", + "description": "The unique id to assign the channel on creation.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "otherChannelId", + "description": "The unique id to assign the second channel when using local channels.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 400, + "reason": "Invalid parameters for originating a channel." + } + ] + } + ] + }, + { + "path": "/channels/{channelId}", + "description": "Active channel", + "operations": [ + { + "httpMethod": "GET", + "summary": "Channel details.", + "nickname": "get", + "responseClass": "Channel", + "parameters": [ + { + "name": "channelId", + "description": "Channel's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Channel not found" + } + ] + }, + { + "httpMethod": "POST", + "summary": "Create a new channel (originate with id).", + "notes": "The new channel is created immediately and a snapshot of it returned. If a Stasis application is provided it will be automatically subscribed to the originated channel for further events and updates.", + "nickname": "originateWithId", + "responseClass": "Channel", + "parameters": [ + { + "name": "channelId", + "description": "The unique id to assign the channel on creation.", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "endpoint", + "description": "Endpoint to call.", + "paramType": "query", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "extension", + "description": "The extension to dial after the endpoint answers", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "context", + "description": "The context to dial after the endpoint answers. If omitted, uses 'default'", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "priority", + "description": "The priority to dial after the endpoint answers. If omitted, uses 1", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "long" + }, + { + "name": "app", + "description": "The application that is subscribed to the originated channel, and passed to the Stasis application.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "appArgs", + "description": "The application arguments to pass to the Stasis application.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "callerId", + "description": "CallerID to use when dialing the endpoint or extension.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "timeout", + "description": "Timeout (in seconds) before giving up dialing, or -1 for no timeout.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "int", + "defaultValue": 30 + }, + { + "name": "variables", + "description": "The 'variables' key in the body object holds variable key/value pairs to set on the channel on creation. Other keys in the body object are interpreted as query parameters. Ex. { 'endpoint': 'SIP/Alice', 'variables': { 'CALLERID(name)': 'Alice' } }", + "paramType": "body", + "required": false, + "dataType": "containers", + "allowMultiple": false + }, + { + "name": "otherChannelId", + "description": "The unique id to assign the second channel when using local channels.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 400, + "reason": "Invalid parameters for originating a channel." + } + ] + + }, + { + "httpMethod": "DELETE", + "summary": "Delete (i.e. hangup) a channel.", + "nickname": "hangup", + "responseClass": "void", + "parameters": [ + { + "name": "channelId", + "description": "Channel's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "reason", + "description": "Reason for hanging up the channel", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string", + "defalutValue": "normal", + "allowableValues": { + "valueType": "LIST", + "values": [ + "normal", + "busy", + "congestion" + ] + } + } + ], + "errorResponses": [ + { + "code": 400, + "reason": "Invalid reason for hangup provided" + }, + { + "code": 404, + "reason": "Channel not found" + } + ] + } + ] + }, + { + "path": "/channels/{channelId}/continue", + "description": "Exit application; continue execution in the dialplan", + "operations": [ + { + "httpMethod": "POST", + "summary": "Exit application; continue execution in the dialplan.", + "nickname": "continueInDialplan", + "responseClass": "void", + "parameters": [ + { + "name": "channelId", + "description": "Channel's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "context", + "description": "The context to continue to.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "extension", + "description": "The extension to continue to.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "priority", + "description": "The priority to continue to.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "int" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Channel not found" + }, + { + "code": 409, + "reason": "Channel not in a Stasis application" + } + ] + } + ] + }, + { + "path": "/channels/{channelId}/answer", + "description": "Answer a channel", + "operations": [ + { + "httpMethod": "POST", + "summary": "Answer a channel.", + "nickname": "answer", + "responseClass": "void", + "parameters": [ + { + "name": "channelId", + "description": "Channel's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Channel not found" + }, + { + "code": 409, + "reason": "Channel not in a Stasis application" + } + ] + } + ] + }, + { + "path": "/channels/{channelId}/ring", + "description": "Send a ringing indication to a channel", + "operations": [ + { + "httpMethod": "POST", + "summary": "Indicate ringing to a channel.", + "nickname": "ring", + "responseClass": "void", + "parameters": [ + { + "name": "channelId", + "description": "Channel's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Channel not found" + }, + { + "code": 409, + "reason": "Channel not in a Stasis application" + } + ] + }, + { + "httpMethod": "DELETE", + "summary": "Stop ringing indication on a channel if locally generated.", + "nickname": "ringStop", + "responseClass": "void", + "parameters": [ + { + "name": "channelId", + "description": "Channel's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Channel not found" + }, + { + "code": 409, + "reason": "Channel not in a Stasis application" + } + ] + } + ] + }, + { + "path": "/channels/{channelId}/dtmf", + "description": "Send DTMF to a channel", + "operations": [ + { + "httpMethod": "POST", + "summary": "Send provided DTMF to a given channel.", + "nickname": "sendDTMF", + "responseClass": "void", + "parameters": [ + { + "name": "channelId", + "description": "Channel's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "dtmf", + "description": "DTMF To send.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "before", + "description": "Amount of time to wait before DTMF digits (specified in milliseconds) start.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "int", + "defaultValue": 0 + }, + { + "name": "between", + "description": "Amount of time in between DTMF digits (specified in milliseconds).", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "int", + "defaultValue": 100 + }, + { + "name": "duration", + "description": "Length of each DTMF digit (specified in milliseconds).", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "int", + "defaultValue": 100 + }, + { + "name": "after", + "description": "Amount of time to wait after DTMF digits (specified in milliseconds) end.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "int", + "defaultValue": 0 + } + ], + "errorResponses": [ + { + "code": 400, + "reason": "DTMF is required" + }, + { + "code": 404, + "reason": "Channel not found" + }, + { + "code": 409, + "reason": "Channel not in a Stasis application" + } + ] + } + ] + }, + { + "path": "/channels/{channelId}/mute", + "description": "Mute a channel", + "operations": [ + { + "httpMethod": "POST", + "summary": "Mute a channel.", + "nickname": "mute", + "responseClass": "void", + "parameters": [ + { + "name": "channelId", + "description": "Channel's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "direction", + "description": "Direction in which to mute audio", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string", + "defaultValue": "both", + "allowableValues": { + "valueType": "LIST", + "values": [ + "both", + "in", + "out" + ] + } + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Channel not found" + }, + { + "code": 409, + "reason": "Channel not in a Stasis application" + } + ] + }, + { + "httpMethod": "DELETE", + "summary": "Unmute a channel.", + "nickname": "unmute", + "responseClass": "void", + "parameters": [ + { + "name": "channelId", + "description": "Channel's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "direction", + "description": "Direction in which to unmute audio", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string", + "defaultValue": "both", + "allowableValues": { + "valueType": "LIST", + "values": [ + "both", + "in", + "out" + ] + } + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Channel not found" + }, + { + "code": 409, + "reason": "Channel not in a Stasis application" + } + ] + } + ] + }, + { + "path": "/channels/{channelId}/hold", + "description": "Put a channel on hold", + "operations": [ + { + "httpMethod": "POST", + "summary": "Hold a channel.", + "nickname": "hold", + "responseClass": "void", + "parameters": [ + { + "name": "channelId", + "description": "Channel's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Channel not found" + }, + { + "code": 409, + "reason": "Channel not in a Stasis application" + } + ] + }, + { + "httpMethod": "DELETE", + "summary": "Remove a channel from hold.", + "nickname": "unhold", + "responseClass": "void", + "parameters": [ + { + "name": "channelId", + "description": "Channel's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Channel not found" + }, + { + "code": 409, + "reason": "Channel not in a Stasis application" + } + ] + } + ] + }, + { + "path": "/channels/{channelId}/moh", + "description": "Play music on hold to a channel", + "operations": [ + { + "httpMethod": "POST", + "summary": "Play music on hold to a channel.", + "notes": "Using media operations such as /play on a channel playing MOH in this manner will suspend MOH without resuming automatically. If continuing music on hold is desired, the stasis application must reinitiate music on hold.", + "nickname": "startMoh", + "responseClass": "void", + "parameters": [ + { + "name": "channelId", + "description": "Channel's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "mohClass", + "description": "Music on hold class to use", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Channel not found" + }, + { + "code": 409, + "reason": "Channel not in a Stasis application" + } + ] + }, + { + "httpMethod": "DELETE", + "summary": "Stop playing music on hold to a channel.", + "nickname": "stopMoh", + "responseClass": "void", + "parameters": [ + { + "name": "channelId", + "description": "Channel's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Channel not found" + }, + { + "code": 409, + "reason": "Channel not in a Stasis application" + } + ] + } + ] + }, + { + "path": "/channels/{channelId}/silence", + "description": "Play silence to a channel", + "operations": [ + { + "httpMethod": "POST", + "summary": "Play silence to a channel.", + "notes": "Using media operations such as /play on a channel playing silence in this manner will suspend silence without resuming automatically.", + "nickname": "startSilence", + "responseClass": "void", + "parameters": [ + { + "name": "channelId", + "description": "Channel's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Channel not found" + }, + { + "code": 409, + "reason": "Channel not in a Stasis application" + } + ] + }, + { + "httpMethod": "DELETE", + "summary": "Stop playing silence to a channel.", + "nickname": "stopSilence", + "responseClass": "void", + "parameters": [ + { + "name": "channelId", + "description": "Channel's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Channel not found" + }, + { + "code": 409, + "reason": "Channel not in a Stasis application" + } + ] + } + ] + }, + { + "path": "/channels/{channelId}/play", + "description": "Play media to a channel", + "operations": [ + { + "httpMethod": "POST", + "summary": "Start playback of media.", + "notes": "The media URI may be any of a number of URI's. Currently sound: and recording: URI's are supported. This operation creates a playback resource that can be used to control the playback of media (pause, rewind, fast forward, etc.)", + "nickname": "play", + "responseClass": "Playback", + "parameters": [ + { + "name": "channelId", + "description": "Channel's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "media", + "description": "Media's URI to play.", + "paramType": "query", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "lang", + "description": "For sounds, selects language for sound.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "offsetms", + "description": "Number of media to skip before playing.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "int" + }, + { + "name": "skipms", + "description": "Number of milliseconds to skip for forward/reverse operations.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "int", + "defaultValue": 3000 + }, + { + "name": "playbackId", + "description": "Playback ID.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Channel not found" + }, + { + "code": 409, + "reason": "Channel not in a Stasis application" + } + ] + } + ] + }, + { + "path": "/channels/{channelId}/play/{playbackId}", + "description": "Play media to a channel", + "operations": [ + { + "httpMethod": "POST", + "summary": "Start playback of media and specify the playbackId.", + "notes": "The media URI may be any of a number of URI's. Currently sound: and recording: URI's are supported. This operation creates a playback resource that can be used to control the playback of media (pause, rewind, fast forward, etc.)", + "nickname": "playWithId", + "responseClass": "Playback", + "parameters": [ + { + "name": "channelId", + "description": "Channel's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "playbackId", + "description": "Playback ID.", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "media", + "description": "Media's URI to play.", + "paramType": "query", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "lang", + "description": "For sounds, selects language for sound.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "offsetms", + "description": "Number of media to skip before playing.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "int" + }, + { + "name": "skipms", + "description": "Number of milliseconds to skip for forward/reverse operations.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "int", + "defaultValue": 3000 + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Channel not found" + }, + { + "code": 409, + "reason": "Channel not in a Stasis application" + } + ] + } + ] + }, + { + "path": "/channels/{channelId}/record", + "description": "Record audio from a channel", + "operations": [ + { + "httpMethod": "POST", + "summary": "Start a recording.", + "notes": "Record audio from a channel. Note that this will not capture audio sent to the channel. The bridge itself has a record feature if that's what you want.", + "nickname": "record", + "responseClass": "LiveRecording", + "parameters": [ + { + "name": "channelId", + "description": "Channel's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "name", + "description": "Recording's filename", + "paramType": "query", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "format", + "description": "Format to encode audio in", + "paramType": "query", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "maxDurationSeconds", + "description": "Maximum duration of the recording, in seconds. 0 for no limit", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "int", + "defaultValue": 0, + "allowableValues": { + "valueType": "RANGE", + "min": 0 + } + }, + { + "name": "maxSilenceSeconds", + "description": "Maximum duration of silence, in seconds. 0 for no limit", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "int", + "defaultValue": 0, + "allowableValues": { + "valueType": "RANGE", + "min": 0 + } + }, + { + "name": "ifExists", + "description": "Action to take if a recording with the same name already exists.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string", + "defaultValue": "fail", + "allowableValues": { + "valueType": "LIST", + "values": [ + "fail", + "overwrite", + "append" + ] + } + }, + { + "name": "beep", + "description": "Play beep when recording begins", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "boolean", + "defaultValue": false + }, + { + "name": "terminateOn", + "description": "DTMF input to terminate recording", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string", + "defaultValue": "none", + "allowableValues": { + "valueType": "LIST", + "values": [ + "none", + "any", + "*", + "#" + ] + } + } + ], + "errorResponses": [ + { + "code": 400, + "reason": "Invalid parameters" + }, + { + "code": 404, + "reason": "Channel not found" + }, + { + "code": 409, + "reason": "Channel is not in a Stasis application; the channel is currently bridged with other hcannels; A recording with the same name already exists on the system and can not be overwritten because it is in progress or ifExists=fail" + }, + { + "code": 422, + "reason": "The format specified is unknown on this system" + } + ] + } + ] + }, + { + "path": "/channels/{channelId}/variable", + "description": "Variables on a channel", + "operations": [ + { + "httpMethod": "GET", + "summary": "Get the value of a channel variable or function.", + "nickname": "getChannelVar", + "responseClass": "Variable", + "parameters": [ + { + "name": "channelId", + "description": "Channel's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "variable", + "description": "The channel variable or function to get", + "paramType": "query", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 400, + "reason": "Missing variable parameter." + }, + { + "code": 404, + "reason": "Channel not found" + }, + { + "code": 409, + "reason": "Channel not in a Stasis application" + } + ] + }, + { + "httpMethod": "POST", + "summary": "Set the value of a channel variable or function.", + "nickname": "setChannelVar", + "responseClass": "void", + "parameters": [ + { + "name": "channelId", + "description": "Channel's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "variable", + "description": "The channel variable or function to set", + "paramType": "query", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "value", + "description": "The value to set the variable to", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 400, + "reason": "Missing variable parameter." + }, + { + "code": 404, + "reason": "Channel not found" + }, + { + "code": 409, + "reason": "Channel not in a Stasis application" + } + ] + } + ] + }, + { + "path": "/channels/{channelId}/snoop", + "description": "Snoop (spy/whisper) on a channel", + "operations": [ + { + "httpMethod": "POST", + "summary": "Start snooping.", + "notes": "Snoop (spy/whisper) on a specific channel.", + "nickname": "snoopChannel", + "responseClass": "Channel", + "parameters": [ + { + "name": "channelId", + "description": "Channel's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "spy", + "description": "Direction of audio to spy on", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string", + "defaultValue": "none", + "allowableValues": { + "valueType": "LIST", + "values": [ + "none", + "both", + "out", + "in" + ] + } + }, + { + "name": "whisper", + "description": "Direction of audio to whisper into", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string", + "defaultValue": "none", + "allowableValues": { + "valueType": "LIST", + "values": [ + "none", + "both", + "out", + "in" + ] + } + }, + { + "name": "app", + "description": "Application the snooping channel is placed into", + "paramType": "query", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "appArgs", + "description": "The application arguments to pass to the Stasis application", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "snoopId", + "description": "Unique ID to assign to snooping channel", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 400, + "reason": "Invalid parameters" + }, + { + "code": 404, + "reason": "Channel not found" + } + ] + } + ] + }, + { + "path": "/channels/{channelId}/snoop/{snoopId}", + "description": "Snoop (spy/whisper) on a channel", + "operations": [ + { + "httpMethod": "POST", + "summary": "Start snooping.", + "notes": "Snoop (spy/whisper) on a specific channel.", + "nickname": "snoopChannelWithId", + "responseClass": "Channel", + "parameters": [ + { + "name": "channelId", + "description": "Channel's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "snoopId", + "description": "Unique ID to assign to snooping channel", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "spy", + "description": "Direction of audio to spy on", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string", + "defaultValue": "none", + "allowableValues": { + "valueType": "LIST", + "values": [ + "none", + "both", + "out", + "in" + ] + } + }, + { + "name": "whisper", + "description": "Direction of audio to whisper into", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string", + "defaultValue": "none", + "allowableValues": { + "valueType": "LIST", + "values": [ + "none", + "both", + "out", + "in" + ] + } + }, + { + "name": "app", + "description": "Application the snooping channel is placed into", + "paramType": "query", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "appArgs", + "description": "The application arguments to pass to the Stasis application", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 400, + "reason": "Invalid parameters" + }, + { + "code": 404, + "reason": "Channel not found" + } + ] + } + ] + } + ], + "models": { + "Dialed": { + "id": "Dialed", + "description": "Dialed channel information.", + "properties": {} + }, + "DialplanCEP": { + "id": "DialplanCEP", + "description": "Dialplan location (context/extension/priority)", + "properties": { + "context": { + "required": true, + "type": "string", + "description": "Context in the dialplan" + }, + "exten": { + "required": true, + "type": "string", + "description": "Extension in the dialplan" + }, + "priority": { + "required": true, + "type": "long", + "description": "Priority in the dialplan" + } + } + }, + "CallerID": { + "id": "CallerID", + "description": "Caller identification", + "properties": { + "name": { + "required": true, + "type": "string" + }, + "number": { + "required": true, + "type": "string" + } + } + }, + "Channel": { + "id": "Channel", + "description": "A specific communication connection between Asterisk and an Endpoint.", + "properties": { + "id": { + "required": true, + "type": "string", + "description": "Unique identifier of the channel.\n\nThis is the same as the Uniqueid field in AMI." + }, + "name": { + "required": true, + "type": "string", + "description": "Name of the channel (i.e. SIP/foo-0000a7e3)" + }, + "state": { + "required": true, + "type": "string", + "allowableValues": { + "valueType": "LIST", + "values": [ + "Down", + "Rsrved", + "OffHook", + "Dialing", + "Ring", + "Ringing", + "Up", + "Busy", + "Dialing Offhook", + "Pre-ring", + "Unknown" + ] + } + }, + "caller": { + "required": true, + "type": "CallerID" + }, + "connected": { + "required": true, + "type": "CallerID" + }, + "accountcode": { + "required": true, + "type": "string" + }, + "dialplan": { + "required": true, + "type": "DialplanCEP", + "description": "Current location in the dialplan" + }, + "creationtime": { + "required": true, + "type": "Date", + "description": "Timestamp when channel was created" + } + } + } + } +} diff --git a/codegen/src/main/resources/codegen-data/ari_1_2_0/deviceStates.json b/codegen/src/main/resources/codegen-data/ari_1_2_0/deviceStates.json new file mode 100644 index 00000000..b58539ea --- /dev/null +++ b/codegen/src/main/resources/codegen-data/ari_1_2_0/deviceStates.json @@ -0,0 +1,151 @@ +{ + "_copyright": "Copyright (C) 2012 - 2013, Digium, Inc.", + "_author": "Kevin Harwell ", + "_svn_revision": "$Revision$", + "apiVersion": "1.2.0", + "swaggerVersion": "1.1", + "basePath": "http://localhost:8088/stasis", + "resourcePath": "/api-docs/deviceStates.{format}", + "apis": [ + { + "path": "/deviceStates", + "description": "Device states", + "operations": [ + { + "httpMethod": "GET", + "summary": "List all ARI controlled device states.", + "nickname": "list", + "responseClass": "List[DeviceState]" + } + ] + }, + { + "path": "/deviceStates/{deviceName}", + "description": "Device state", + "operations": [ + { + "httpMethod": "GET", + "summary": "Retrieve the current state of a device.", + "nickname": "get", + "responseClass": "DeviceState", + "parameters": [ + { + "name": "deviceName", + "description": "Name of the device", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ] + }, + { + "httpMethod": "PUT", + "summary": "Change the state of a device controlled by ARI. (Note - implicitly creates the device state).", + "nickname": "update", + "responseClass": "void", + "parameters": [ + { + "name": "deviceName", + "description": "Name of the device", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "deviceState", + "description": "Device state value", + "paramType": "query", + "required": true, + "allowMultiple": false, + "dataType": "string", + "allowableValues": { + "valueType": "LIST", + "values": [ + "NOT_INUSE", + "INUSE", + "BUSY", + "INVALID", + "UNAVAILABLE", + "RINGING", + "RINGINUSE", + "ONHOLD" + ] + } + + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Device name is missing" + }, + { + "code": 409, + "reason": "Uncontrolled device specified" + } + ] + }, + { + "httpMethod": "DELETE", + "summary": "Destroy a device-state controlled by ARI.", + "nickname": "delete", + "responseClass": "void", + "parameters": [ + { + "name": "deviceName", + "description": "Name of the device", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Device name is missing" + }, + { + "code": 409, + "reason": "Uncontrolled device specified" + } + ] + } + ] + } + ], + "models": { + "DeviceState": { + "id": "DeviceState", + "description": "Represents the state of a device.", + "properties": { + "name": { + "type": "string", + "description": "Name of the device.", + "required": true + }, + "state": { + "type": "string", + "description": "Device's state", + "required": true, + "allowableValues": { + "valueType": "LIST", + "values": [ + "UNKNOWN", + "NOT_INUSE", + "INUSE", + "BUSY", + "INVALID", + "UNAVAILABLE", + "RINGING", + "RINGINUSE", + "ONHOLD" + ] + } + } + } + } + } +} diff --git a/codegen/src/main/resources/codegen-data/ari_1_2_0/endpoints.json b/codegen/src/main/resources/codegen-data/ari_1_2_0/endpoints.json new file mode 100644 index 00000000..fbccd4d4 --- /dev/null +++ b/codegen/src/main/resources/codegen-data/ari_1_2_0/endpoints.json @@ -0,0 +1,117 @@ +{ + "_copyright": "Copyright (C) 2012 - 2013, Digium, Inc.", + "_author": "David M. Lee, II ", + "_svn_revision": "$Revision$", + "apiVersion": "1.2.0", + "swaggerVersion": "1.1", + "basePath": "http://localhost:8088/stasis", + "resourcePath": "/api-docs/endpoints.{format}", + "apis": [ + { + "path": "/endpoints", + "description": "Asterisk endpoints", + "operations": [ + { + "httpMethod": "GET", + "summary": "List all endpoints.", + "nickname": "list", + "responseClass": "List[Endpoint]" + } + ] + }, + { + "path": "/endpoints/{tech}", + "description": "Asterisk endpoints", + "operations": [ + { + "httpMethod": "GET", + "summary": "List available endoints for a given endpoint technology.", + "nickname": "listByTech", + "responseClass": "List[Endpoint]", + "parameters": [ + { + "name": "tech", + "description": "Technology of the endpoints (sip,iax2,...)", + "paramType": "path", + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Endpoints not found" + } + ] + } + ] + }, + { + "path": "/endpoints/{tech}/{resource}", + "description": "Single endpoint", + "operations": [ + { + "httpMethod": "GET", + "summary": "Details for an endpoint.", + "nickname": "get", + "responseClass": "Endpoint", + "parameters": [ + { + "name": "tech", + "description": "Technology of the endpoint", + "paramType": "path", + "dataType": "string" + }, + { + "name": "resource", + "description": "ID of the endpoint", + "paramType": "path", + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Endpoints not found" + } + ] + } + ] + } + ], + "models": { + "Endpoint": { + "id": "Endpoint", + "description": "An external device that may offer/accept calls to/from Asterisk.\n\nUnlike most resources, which have a single unique identifier, an endpoint is uniquely identified by the technology/resource pair.", + "properties": { + "technology": { + "type": "string", + "description": "Technology of the endpoint", + "required": true + }, + "resource": { + "type": "string", + "description": "Identifier of the endpoint, specific to the given technology.", + "required": true + }, + "state": { + "type": "string", + "description": "Endpoint's state", + "required": false, + "allowableValues": { + "valueType": "LIST", + "values": [ + "unknown", + "offline", + "online" + ] + } + }, + "channel_ids": { + "type": "List[string]", + "description": "Id's of channels associated with this endpoint", + "required": true + } + } + } + } +} diff --git a/codegen/src/main/resources/codegen-data/ari_1_2_0/events.json b/codegen/src/main/resources/codegen-data/ari_1_2_0/events.json new file mode 100644 index 00000000..20c8423b --- /dev/null +++ b/codegen/src/main/resources/codegen-data/ari_1_2_0/events.json @@ -0,0 +1,577 @@ +{ + "_copyright": "Copyright (C) 2012 - 2013, Digium, Inc.", + "_author": "David M. Lee, II ", + "_svn_revision": "$Revision$", + "apiVersion": "1.2.0", + "swaggerVersion": "1.2", + "basePath": "http://localhost:8088/stasis", + "resourcePath": "/api-docs/events.{format}", + "apis": [ + { + "path": "/events", + "description": "Events from Asterisk to applications", + "operations": [ + { + "httpMethod": "GET", + "upgrade": "websocket", + "websocketProtocol": "ari", + "summary": "WebSocket connection for events.", + "nickname": "eventWebsocket", + "responseClass": "Message", + "parameters": [ + { + "name": "app", + "description": "Applications to subscribe to.", + "paramType": "query", + "required": true, + "allowMultiple": true, + "dataType": "string" + } + ] + } + ] + } + ], + "models": { + "Message": { + "id": "Message", + "description": "Base type for errors and events", + "discriminator": "type", + "properties": { + "type": { + "type": "string", + "required": true, + "description": "Indicates the type of this message." + } + }, + "subTypes": [ + "MissingParams", + "Event" + ] + }, + "MissingParams": { + "id": "MissingParams", + "description": "Error event sent when required params are missing.", + "properties": { + "params": { + "required": true, + "type": "List[string]", + "description": "A list of the missing parameters" + } + } + }, + "Event": { + "id": "Event", + "description": "Base type for asynchronous events from Asterisk.", + "properties": { + "application": { + "type": "string", + "description": "Name of the application receiving the event.", + "required": true + }, + "timestamp": { + "type": "Date", + "description": "Time at which this event was created.", + "required": false + } + }, + "subTypes": [ + "DeviceStateChanged", + "PlaybackStarted", + "PlaybackFinished", + "RecordingStarted", + "RecordingFinished", + "RecordingFailed", + "ApplicationReplaced", + "BridgeCreated", + "BridgeDestroyed", + "BridgeMerged", + "BridgeBlindTransfer", + "BridgeAttendedTransfer", + "ChannelCreated", + "ChannelDestroyed", + "ChannelEnteredBridge", + "ChannelLeftBridge", + "ChannelStateChange", + "ChannelDtmfReceived", + "ChannelDialplan", + "ChannelCallerId", + "ChannelUserevent", + "ChannelHangupRequest", + "ChannelVarset", + "EndpointStateChange", + "Dial", + "StasisEnd", + "StasisStart" + ] + }, + "DeviceStateChanged": { + "id": "DeviceStateChanged", + "description": "Notification that a device state has changed.", + "properties": { + "device_state": { + "type": "DeviceState", + "description": "Device state object", + "required": true + } + } + }, + "PlaybackStarted": { + "id": "PlaybackStarted", + "description": "Event showing the start of a media playback operation.", + "properties": { + "playback": { + "type": "Playback", + "description": "Playback control object", + "required": true + } + } + }, + "PlaybackFinished": { + "id": "PlaybackFinished", + "description": "Event showing the completion of a media playback operation.", + "properties": { + "playback": { + "type": "Playback", + "description": "Playback control object", + "required": true + } + } + }, + "RecordingStarted": { + "id": "RecordingStarted", + "extends": "Event", + "description": "Event showing the start of a recording operation.", + "properties": { + "recording": { + "type": "LiveRecording", + "description": "Recording control object", + "required": true + } + } + }, + "RecordingFinished": { + "id": "RecordingFinished", + "extends": "Event", + "description": "Event showing the completion of a recording operation.", + "properties": { + "recording": { + "type": "LiveRecording", + "description": "Recording control object", + "required": true + } + } + }, + "RecordingFailed": { + "id": "RecordingFailed", + "extends": "Event", + "description": "Event showing failure of a recording operation.", + "properties": { + "recording": { + "type": "LiveRecording", + "description": "Recording control object", + "required": true + } + } + }, + "ApplicationReplaced": { + "id": "ApplicationReplaced", + "description": "Notification that another WebSocket has taken over for an application.\n\nAn application may only be subscribed to by a single WebSocket at a time. If multiple WebSockets attempt to subscribe to the same application, the newer WebSocket wins, and the older one receives this event.", + "properties": {} + }, + "BridgeCreated": { + "id": "BridgeCreated", + "description": "Notification that a bridge has been created.", + "properties": { + "bridge": { + "required": true, + "type": "Bridge" + } + } + }, + "BridgeDestroyed": { + "id": "BridgeDestroyed", + "description": "Notification that a bridge has been destroyed.", + "properties": { + "bridge": { + "required": true, + "type": "Bridge" + } + } + }, + "BridgeMerged": { + "id": "BridgeMerged", + "description": "Notification that one bridge has merged into another.", + "properties": { + "bridge": { + "required": true, + "type": "Bridge" + }, + "bridge_from": { + "required": true, + "type": "Bridge" + } + } + }, + "BridgeBlindTransfer": { + "id": "BridgeBlindTransfer", + "description": "Notification that a blind transfer has occurred.", + "properties": { + "channel": { + "description": "The channel performing the blind transfer", + "required": true, + "type": "Channel" + }, + "exten": { + "description": "The extension transferred to", + "required": true, + "type": "string" + }, + "context": { + "description": "The context transferred to", + "required": true, + "type": "string" + }, + "result": { + "description": "The result of the transfer attempt", + "required": true, + "type": "string" + }, + "is_external": { + "description": "Whether the transfer was externally initiated or not", + "required": true, + "type": "boolean" + }, + "bridge": { + "description": "The bridge being transferred", + "type": "Bridge" + } + } + }, + "BridgeAttendedTransfer": { + "id": "BridgeAttendedTransfer", + "description": "Notification that an attended transfer has occurred.", + "properties": { + "transferer_first_leg": { + "description": "First leg of the transferer", + "required": true, + "type": "Channel" + }, + "transferer_second_leg": { + "description": "Second leg of the transferer", + "required": true, + "type": "Channel" + }, + "result": { + "description": "The result of the transfer attempt", + "required": true, + "type": "string" + }, + "is_external": { + "description": "Whether the transfer was externally initiated or not", + "required": true, + "type": "boolean" + }, + "transferer_first_leg_bridge": { + "description": "Bridge the transferer first leg is in", + "type": "Bridge" + }, + "transferer_second_leg_bridge": { + "description": "Bridge the transferer second leg is in", + "type": "Bridge" + }, + "destination_type": { + "description": "How the transfer was accomplished", + "required": true, + "type": "string" + }, + "destination_bridge": { + "description": "Bridge that survived the merge result", + "type": "string" + }, + "destination_application": { + "description": "Application that has been transferred into", + "type": "string" + }, + "destination_link_first_leg": { + "description": "First leg of a link transfer result", + "type": "Channel" + }, + "destination_link_second_leg": { + "description": "Second leg of a link transfer result", + "type": "Channel" + }, + "destination_threeway_channel": { + "description": "Transferer channel that survived the threeway result", + "type": "Channel" + }, + "destination_threeway_bridge": { + "description": "Bridge that survived the threeway result", + "type": "Bridge" + } + } + }, + "ChannelCreated": { + "id": "ChannelCreated", + "description": "Notification that a channel has been created.", + "properties": { + "channel": { + "required": true, + "type": "Channel" + } + } + }, + "ChannelDestroyed": { + "id": "ChannelDestroyed", + "description": "Notification that a channel has been destroyed.", + "properties": { + "cause": { + "required": true, + "description": "Integer representation of the cause of the hangup", + "type": "int" + }, + "cause_txt": { + "required": true, + "description": "Text representation of the cause of the hangup", + "type": "string" + }, + "channel": { + "required": true, + "type": "Channel" + } + } + }, + "ChannelEnteredBridge": { + "id": "ChannelEnteredBridge", + "description": "Notification that a channel has entered a bridge.", + "properties": { + "bridge": { + "required": true, + "type": "Bridge" + }, + "channel": { + "type": "Channel" + } + } + }, + "ChannelLeftBridge": { + "id": "ChannelLeftBridge", + "description": "Notification that a channel has left a bridge.", + "properties": { + "bridge": { + "required": true, + "type": "Bridge" + }, + "channel": { + "required": true, + "type": "Channel" + } + } + }, + "ChannelStateChange": { + "id": "ChannelStateChange", + "description": "Notification of a channel's state change.", + "properties": { + "channel": { + "required": true, + "type": "Channel" + } + } + }, + "ChannelDtmfReceived": { + "id": "ChannelDtmfReceived", + "description": "DTMF received on a channel.\n\nThis event is sent when the DTMF ends. There is no notification about the start of DTMF", + "properties": { + "digit": { + "required": true, + "type": "string", + "description": "DTMF digit received (0-9, A-E, # or *)" + }, + "duration_ms": { + "required": true, + "type": "int", + "description": "Number of milliseconds DTMF was received" + }, + "channel": { + "required": true, + "type": "Channel", + "description": "The channel on which DTMF was received" + } + } + }, + "ChannelDialplan": { + "id": "ChannelDialplan", + "description": "Channel changed location in the dialplan.", + "properties": { + "channel": { + "required": true, + "type": "Channel", + "description": "The channel that changed dialplan location." + }, + "dialplan_app": { + "required": true, + "type": "string", + "description": "The application about to be executed." + }, + "dialplan_app_data": { + "required": true, + "type": "string", + "description": "The data to be passed to the application." + } + } + }, + "ChannelCallerId": { + "id": "ChannelCallerId", + "description": "Channel changed Caller ID.", + "properties": { + "caller_presentation": { + "required": true, + "type": "int", + "description": "The integer representation of the Caller Presentation value." + }, + "caller_presentation_txt": { + "required": true, + "type": "string", + "description": "The text representation of the Caller Presentation value." + }, + "channel": { + "required": true, + "type": "Channel", + "description": "The channel that changed Caller ID." + } + } + }, + "ChannelUserevent": { + "id": "ChannelUserevent", + "description": "User-generated event with additional user-defined fields in the object.", + "properties": { + "eventname": { + "required": true, + "type": "string", + "description": "The name of the user event." + }, + "channel": { + "required": true, + "type": "Channel", + "description": "The channel that signaled the user event." + }, + "userevent": { + "required": true, + "type": "object", + "description": "Custom Userevent data" + } + } + }, + "ChannelHangupRequest": { + "id": "ChannelHangupRequest", + "description": "A hangup was requested on the channel.", + "properties": { + "cause": { + "type": "int", + "description": "Integer representation of the cause of the hangup." + }, + "soft": { + "type": "boolean", + "description": "Whether the hangup request was a soft hangup request." + }, + "channel": { + "required": true, + "type": "Channel", + "description": "The channel on which the hangup was requested." + } + } + }, + "ChannelVarset": { + "id": "ChannelVarset", + "description": "Channel variable changed.", + "properties": { + "variable": { + "required": true, + "type": "string", + "description": "The variable that changed." + }, + "value": { + "required": true, + "type": "string", + "description": "The new value of the variable." + }, + "channel": { + "required": false, + "type": "Channel", + "description": "The channel on which the variable was set.\n\nIf missing, the variable is a global variable." + } + } + }, + "EndpointStateChange": { + "id": "EndpointStateChange", + "description": "Endpoint state changed.", + "properties": { + "endpoint": { + "required": true, + "type": "Endpoint" + } + } + }, + "Dial": { + "id": "Dial", + "description": "Dialing state has changed.", + "properties": { + "caller": { + "required": false, + "type": "Channel", + "description": "The calling channel." + }, + "peer": { + "required": true, + "type": "Channel", + "description": "The dialed channel." + }, + "forward": { + "required": false, + "type": "string", + "description": "Forwarding target requested by the original dialed channel." + }, + "forwarded": { + "required": false, + "type": "Channel", + "description": "Channel that the caller has been forwarded to." + }, + "dialstring": { + "required": false, + "type": "string", + "description": "The dial string for calling the peer channel." + }, + "dialstatus": { + "required": true, + "type": "string", + "description": "Current status of the dialing attempt to the peer." + } + } + }, + "StasisEnd": { + "id": "StasisEnd", + "description": "Notification that a channel has left a Stasis application.", + "properties": { + "channel": { + "required": true, + "type": "Channel" + } + } + }, + "StasisStart": { + "id": "StasisStart", + "description": "Notification that a channel has entered a Stasis application.", + "properties": { + "args": { + "required": true, + "type": "List[string]", + "description": "Arguments to the application" + }, + "channel": { + "required": true, + "type": "Channel" + } + } + } + } +} diff --git a/codegen/src/main/resources/codegen-data/ari_1_2_0/mailboxes.json b/codegen/src/main/resources/codegen-data/ari_1_2_0/mailboxes.json new file mode 100644 index 00000000..b225d166 --- /dev/null +++ b/codegen/src/main/resources/codegen-data/ari_1_2_0/mailboxes.json @@ -0,0 +1,134 @@ +{ + "_copyright": "Copyright (C) 2013, Digium, Inc.", + "_author": "Jonathan Rose ", + "_svn_revision": "$Revision$", + "apiVersion": "1.2.0", + "swaggerVersion": "1.1", + "basePath": "http://localhost:8088/stasis", + "resourcePath": "/api-docs/mailboxes.{format}", + "apis": [ + { + "path": "/mailboxes", + "description": "Mailboxes", + "operations": [ + { + "httpMethod": "GET", + "summary": "List all mailboxes.", + "nickname": "list", + "responseClass": "List[Mailbox]" + } + ] + }, + { + "path": "/mailboxes/{mailboxName}", + "description": "Mailbox state", + "operations": [ + { + "httpMethod": "GET", + "summary": "Retrieve the current state of a mailbox.", + "nickname": "get", + "responseClass": "Mailbox", + "parameters": [ + { + "name": "mailboxName", + "description": "Name of the mailbox", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Mailbox not found" + } + ] + }, + { + "httpMethod": "PUT", + "summary": "Change the state of a mailbox. (Note - implicitly creates the mailbox).", + "nickname": "update", + "responseClass": "void", + "parameters": [ + { + "name": "mailboxName", + "description": "Name of the mailbox", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "oldMessages", + "description": "Count of old messages in the mailbox", + "paramType": "query", + "required": true, + "allowMultiple": false, + "dataType": "int" + }, + { + "name": "newMessages", + "description": "Count of new messages in the mailbox", + "paramType": "query", + "required": true, + "allowMultiple": false, + "dataType": "int" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Mailbox not found" + } + ] + }, + { + "httpMethod": "DELETE", + "summary": "Destroy a mailbox.", + "nickname": "delete", + "responseClass": "void", + "parameters": [ + { + "name": "mailboxName", + "description": "Name of the mailbox", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Mailbox not found" + } + ] + } + ] + } + ], + "models": { + "Mailbox": { + "id": "Mailbox", + "description": "Represents the state of a mailbox.", + "properties": { + "name": { + "type": "string", + "description": "Name of the mailbox.", + "required": true + }, + "old_messages": { + "type": "int", + "description": "Count of old messages in the mailbox.", + "required": true + }, + "new_messages": { + "type": "int", + "description": "Count of new messages in the mailbox.", + "required": true + } + } + } + } +} diff --git a/codegen/src/main/resources/codegen-data/ari_1_2_0/playbacks.json b/codegen/src/main/resources/codegen-data/ari_1_2_0/playbacks.json new file mode 100644 index 00000000..60d9ba12 --- /dev/null +++ b/codegen/src/main/resources/codegen-data/ari_1_2_0/playbacks.json @@ -0,0 +1,155 @@ +{ + "_copyright": "Copyright (C) 2012 - 2013, Digium, Inc.", + "_author": "David M. Lee, II ", + "_svn_revision": "$Revision$", + "apiVersion": "1.2.0", + "swaggerVersion": "1.1", + "basePath": "http://localhost:8088/stasis", + "resourcePath": "/api-docs/playbacks.{format}", + "apis": [ + { + "path": "/playbacks/{playbackId}", + "description": "Control object for a playback operation.", + "operations": [ + { + "httpMethod": "GET", + "summary": "Get a playback's details.", + "nickname": "get", + "responseClass": "Playback", + "parameters": [ + { + "name": "playbackId", + "description": "Playback's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "The playback cannot be found" + } + ] + }, + { + "httpMethod": "DELETE", + "summary": "Stop a playback.", + "nickname": "stop", + "responseClass": "void", + "parameters": [ + { + "name": "playbackId", + "description": "Playback's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "The playback cannot be found" + } + ] + } + ] + }, + { + "path": "/playbacks/{playbackId}/control", + "description": "Control object for a playback operation.", + "operations": [ + { + "httpMethod": "POST", + "summary": "Control a playback.", + "nickname": "control", + "responseClass": "void", + "parameters": [ + { + "name": "playbackId", + "description": "Playback's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "operation", + "description": "Operation to perform on the playback.", + "paramType": "query", + "required": true, + "allowMultiple": false, + "dataType": "string", + "allowableValues": { + "valueType": "LIST", + "values": [ + "restart", + "pause", + "unpause", + "reverse", + "forward" + ] + } + } + ], + "errorResponses": [ + { + "code": 400, + "reason": "The provided operation parameter was invalid" + }, + { + "code": 404, + "reason": "The playback cannot be found" + }, + { + "code": 409, + "reason": "The operation cannot be performed in the playback's current state" + } +] + } + ] + } + ], + "models": { + "Playback": { + "id": "Playback", + "description": "Object representing the playback of media to a channel", + "properties": { + "id": { + "type": "string", + "description": "ID for this playback operation", + "required": true + }, + "media_uri": { + "type": "string", + "description": "URI for the media to play back.", + "required": true + }, + "target_uri": { + "type": "string", + "description": "URI for the channel or bridge to play the media on", + "required": true + }, + "language": { + "type": "string", + "description": "For media types that support multiple languages, the language requested for playback." + }, + "state": { + "type": "string", + "description": "Current state of the playback operation.", + "required": true, + "allowableValues": { + "valueType": "LIST", + "values": [ + "queued", + "playing", + "complete" + ] + } + } + } + } + } +} diff --git a/codegen/src/main/resources/codegen-data/ari_1_2_0/recordings.json b/codegen/src/main/resources/codegen-data/ari_1_2_0/recordings.json new file mode 100644 index 00000000..cbe68f32 --- /dev/null +++ b/codegen/src/main/resources/codegen-data/ari_1_2_0/recordings.json @@ -0,0 +1,331 @@ +{ + "_copyright": "Copyright (C) 2012 - 2013, Digium, Inc.", + "_author": "David M. Lee, II ", + "_svn_revision": "$Revision$", + "apiVersion": "1.2.0", + "swaggerVersion": "1.1", + "basePath": "http://localhost:8088/stasis", + "resourcePath": "/api-docs/recordings.{format}", + "apis": [ + { + "path": "/recordings/stored", + "description": "Recordings", + "operations": [ + { + "httpMethod": "GET", + "summary": "List recordings that are complete.", + "nickname": "listStored", + "responseClass": "List[StoredRecording]" + } + ] + }, + { + "path": "/recordings/stored/{recordingName}", + "description": "Individual recording", + "operations": [ + { + "httpMethod": "GET", + "summary": "Get a stored recording's details.", + "nickname": "getStored", + "responseClass": "StoredRecording", + "parameters": [ + { + "name": "recordingName", + "description": "The name of the recording", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Recording not found" + } + ] + }, + { + "httpMethod": "DELETE", + "summary": "Delete a stored recording.", + "nickname": "deleteStored", + "responseClass": "void", + "parameters": [ + { + "name": "recordingName", + "description": "The name of the recording", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Recording not found" + } + ] + } + ] + }, + { + "path": "/recordings/live/{recordingName}", + "description": "A recording that is in progress", + "operations": [ + { + "httpMethod": "GET", + "summary": "List live recordings.", + "nickname": "getLive", + "responseClass": "LiveRecording", + "parameters": [ + { + "name": "recordingName", + "description": "The name of the recording", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Recording not found" + } + ] + }, + { + "httpMethod": "DELETE", + "summary": "Stop a live recording and discard it.", + "nickname": "cancel", + "responseClass": "void", + "parameters": [ + { + "name": "recordingName", + "description": "The name of the recording", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Recording not found" + } + ] + } + ] + }, + { + "path": "/recordings/live/{recordingName}/stop", + "operations": [ + { + "httpMethod": "POST", + "summary": "Stop a live recording and store it.", + "nickname": "stop", + "responseClass": "void", + "parameters": [ + { + "name": "recordingName", + "description": "The name of the recording", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Recording not found" + } + ] + } + ] + }, + { + "path": "/recordings/live/{recordingName}/pause", + "operations": [ + { + "httpMethod": "POST", + "summary": "Pause a live recording.", + "notes": "Pausing a recording suspends silence detection, which will be restarted when the recording is unpaused. Paused time is not included in the accounting for maxDurationSeconds.", + "nickname": "pause", + "responseClass": "void", + "parameters": [ + { + "name": "recordingName", + "description": "The name of the recording", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Recording not found" + }, + { + "code": 409, + "reason": "Recording not in session" + } + ] + }, + { + "httpMethod": "DELETE", + "summary": "Unpause a live recording.", + "nickname": "unpause", + "responseClass": "void", + "parameters": [ + { + "name": "recordingName", + "description": "The name of the recording", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Recording not found" + }, + { + "code": 409, + "reason": "Recording not in session" + } + ] + } + ] + }, + { + "path": "/recordings/live/{recordingName}/mute", + "operations": [ + { + "httpMethod": "POST", + "summary": "Mute a live recording.", + "notes": "Muting a recording suspends silence detection, which will be restarted when the recording is unmuted.", + "nickname": "mute", + "responseClass": "void", + "parameters": [ + { + "name": "recordingName", + "description": "The name of the recording", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Recording not found" + }, + { + "code": 409, + "reason": "Recording not in session" + } + ] + }, + { + "httpMethod": "DELETE", + "summary": "Unmute a live recording.", + "nickname": "unmute", + "responseClass": "void", + "parameters": [ + { + "name": "recordingName", + "description": "The name of the recording", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Recording not found" + }, + { + "code": 409, + "reason": "Recording not in session" + } + ] + } + ] + } + ], + "models": { + "StoredRecording": { + "id": "StoredRecording", + "description": "A past recording that may be played back.", + "properties": { + "name": { + "required": true, + "type": "string" + }, + "format": { + "required": true, + "type": "string" + } + } + }, + "LiveRecording": { + "id": "LiveRecording", + "description": "A recording that is in progress", + "properties": { + "name": { + "required": true, + "type": "string", + "description": "Base name for the recording" + }, + "format": { + "required": true, + "type": "string", + "description": "Recording format (wav, gsm, etc.)" + }, + "target_uri": { + "required": true, + "type": "string", + "description": "URI for the channel or bridge being recorded" + }, + "state": { + "required": false, + "type": "string", + "allowableValues": { + "valueType": "LIST", + "values": [ + "queued", + "recording", + "paused", + "done", + "failed", + "canceled" + ] + } + }, + "cause": { + "required": false, + "type": "string", + "description": "Cause for recording failure if failed" + }, + "state": { + "required": true, + "type": "string" + }, + "format": { + "required": true, + "type": "string" + } + } + } + } +} diff --git a/codegen/src/main/resources/codegen-data/ari_1_2_0/sounds.json b/codegen/src/main/resources/codegen-data/ari_1_2_0/sounds.json new file mode 100644 index 00000000..78984396 --- /dev/null +++ b/codegen/src/main/resources/codegen-data/ari_1_2_0/sounds.json @@ -0,0 +1,99 @@ +{ + "_copyright": "Copyright (C) 2012 - 2013, Digium, Inc.", + "_author": "David M. Lee, II ", + "_svn_revision": "$Revision$", + "apiVersion": "1.2.0", + "swaggerVersion": "1.1", + "basePath": "http://localhost:8088/stasis", + "resourcePath": "/api-docs/sounds.{format}", + "apis": [ + { + "path": "/sounds", + "description": "Sounds", + "operations": [ + { + "httpMethod": "GET", + "summary": "List all sounds.", + "nickname": "list", + "responseClass": "List[Sound]", + "parameters": [ + { + "name": "lang", + "description": "Lookup sound for a specific language.", + "paramType": "query", + "dataType": "string", + "required": false + }, + { + "name": "format", + "description": "Lookup sound in a specific format.", + "paramType": "query", + "dataType": "string", + "required": false, + "__note": "core show translation can show translation paths between formats, along with relative costs. so this could be just installed format, or we could follow that for transcoded formats." + } + ] + } + ] + }, + { + "path": "/sounds/{soundId}", + "description": "Individual sound", + "operations": [ + { + "httpMethod": "GET", + "summary": "Get a sound's details.", + "nickname": "get", + "responseClass": "Sound", + "parameters": [ + { + "name": "soundId", + "description": "Sound's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ] + } + ] + } + ], + "models": { + "FormatLangPair": { + "id": "FormatLangPair", + "description": "Identifies the format and language of a sound file", + "properties": { + "language": { + "required": true, + "type": "string" + }, + "format": { + "required": true, + "type": "string" + } + } + }, + "Sound": { + "id": "Sound", + "description": "A media file that may be played back.", + "properties": { + "id": { + "required": true, + "description": "Sound's identifier.", + "type": "string" + }, + "text": { + "required": false, + "description": "Text description of the sound, usually the words spoken.", + "type": "string" + }, + "formats": { + "required": true, + "description": "The formats and languages in which this sound is available.", + "type": "List[FormatLangPair]" + } + } + } + } +} diff --git a/codegen/src/main/resources/codegen-data/ari_1_3_0/applications.json b/codegen/src/main/resources/codegen-data/ari_1_3_0/applications.json new file mode 100644 index 00000000..4b3da538 --- /dev/null +++ b/codegen/src/main/resources/codegen-data/ari_1_3_0/applications.json @@ -0,0 +1,172 @@ +{ + "_copyright": "Copyright (C) 2013, Digium, Inc.", + "_author": "David M. Lee, II ", + "_svn_revision": "$Revision$", + "apiVersion": "1.3.0", + "swaggerVersion": "1.1", + "basePath": "http://localhost:8088/stasis", + "resourcePath": "/api-docs/applications.{format}", + "apis": [ + { + "path": "/applications", + "description": "Stasis applications", + "operations": [ + { + "httpMethod": "GET", + "summary": "List all applications.", + "nickname": "list", + "responseClass": "List[Application]" + } + ] + }, + { + "path": "/applications/{applicationName}", + "description": "Stasis application", + "operations": [ + { + "httpMethod": "GET", + "summary": "Get details of an application.", + "nickname": "get", + "responseClass": "Application", + "parameters": [ + { + "name": "applicationName", + "description": "Application's name", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Application does not exist." + } + ] + } + ] + }, + { + "path": "/applications/{applicationName}/subscription", + "description": "Stasis application", + "operations": [ + { + "httpMethod": "POST", + "summary": "Subscribe an application to a event source.", + "notes": "Returns the state of the application after the subscriptions have changed", + "nickname": "subscribe", + "responseClass": "Application", + "parameters": [ + { + "name": "applicationName", + "description": "Application's name", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "eventSource", + "description": "URI for event source (channel:{channelId}, bridge:{bridgeId}, endpoint:{tech}/{resource}, deviceState:{deviceName}", + "paramType": "query", + "required": true, + "allowMultiple": true, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 400, + "reason": "Missing parameter." + }, + { + "code": 404, + "reason": "Application does not exist." + }, + { + "code": 422, + "reason": "Event source does not exist." + } + ] + }, + { + "httpMethod": "DELETE", + "summary": "Unsubscribe an application from an event source.", + "notes": "Returns the state of the application after the subscriptions have changed", + "nickname": "unsubscribe", + "responseClass": "Application", + "parameters": [ + { + "name": "applicationName", + "description": "Application's name", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "eventSource", + "description": "URI for event source (channel:{channelId}, bridge:{bridgeId}, endpoint:{tech}/{resource}, deviceState:{deviceName}", + "paramType": "query", + "required": true, + "allowMultiple": true, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 400, + "reason": "Missing parameter; event source scheme not recognized." + }, + { + "code": 404, + "reason": "Application does not exist." + }, + { + "code": 409, + "reason": "Application not subscribed to event source." + }, + { + "code": 422, + "reason": "Event source does not exist." + } + ] + } + ] + } + ], + "models": { + "Application": { + "id": "Application", + "description": "Details of a Stasis application", + "properties": { + "name": { + "type": "string", + "description": "Name of this application", + "required": true + }, + "channel_ids": { + "type": "List[string]", + "description": "Id's for channels subscribed to.", + "required": true + }, + "bridge_ids": { + "type": "List[string]", + "description": "Id's for bridges subscribed to.", + "required": true + }, + "endpoint_ids": { + "type": "List[string]", + "description": "{tech}/{resource} for endpoints subscribed to.", + "required": true + }, + "device_names": { + "type": "List[string]", + "description": "Names of the devices subscribed to.", + "required": true + } + } + } + } +} diff --git a/codegen/src/main/resources/codegen-data/ari_1_3_0/asterisk.json b/codegen/src/main/resources/codegen-data/ari_1_3_0/asterisk.json new file mode 100644 index 00000000..97228f38 --- /dev/null +++ b/codegen/src/main/resources/codegen-data/ari_1_3_0/asterisk.json @@ -0,0 +1,259 @@ +{ + "_copyright": "Copyright (C) 2012 - 2013, Digium, Inc.", + "_author": "David M. Lee, II ", + "_svn_revision": "$Revision$", + "apiVersion": "1.3.0", + "swaggerVersion": "1.1", + "basePath": "http://localhost:8088/stasis", + "resourcePath": "/api-docs/asterisk.{format}", + "apis": [ + { + "path": "/asterisk/info", + "description": "Asterisk system information (similar to core show settings)", + "operations": [ + { + "httpMethod": "GET", + "summary": "Gets Asterisk system information.", + "nickname": "getInfo", + "responseClass": "AsteriskInfo", + "parameters": [ + { + "name": "only", + "description": "Filter information returned", + "paramType": "query", + "required": false, + "allowMultiple": true, + "dataType": "string", + "allowableValues": { + "valueType": "LIST", + "values": [ + "build", + "system", + "config", + "status" + ] + } + } + ] + } + ] + }, + { + "path": "/asterisk/variable", + "description": "Global variables", + "operations": [ + { + "httpMethod": "GET", + "summary": "Get the value of a global variable.", + "nickname": "getGlobalVar", + "responseClass": "Variable", + "parameters": [ + { + "name": "variable", + "description": "The variable to get", + "paramType": "query", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 400, + "reason": "Missing variable parameter." + } + ] + }, + { + "httpMethod": "POST", + "summary": "Set the value of a global variable.", + "nickname": "setGlobalVar", + "responseClass": "void", + "parameters": [ + { + "name": "variable", + "description": "The variable to set", + "paramType": "query", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "value", + "description": "The value to set the variable to", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 400, + "reason": "Missing variable parameter." + } + ] + } + ] + } + ], + "models": { + "BuildInfo": { + "id": "BuildInfo", + "description": "Info about how Asterisk was built", + "properties": { + "os": { + "required": true, + "type": "string", + "description": "OS Asterisk was built on." + }, + "kernel": { + "required": true, + "type": "string", + "description": "Kernel version Asterisk was built on." + }, + "options": { + "required": true, + "type": "string", + "description": "Compile time options, or empty string if default." + }, + "machine": { + "required": true, + "type": "string", + "description": "Machine architecture (x86_64, i686, ppc, etc.)" + }, + "date": { + "required": true, + "type": "string", + "description": "Date and time when Asterisk was built." + }, + "user": { + "required": true, + "type": "string", + "description": "Username that build Asterisk" + } + } + }, + "SystemInfo": { + "id": "SystemInfo", + "description": "Info about Asterisk", + "properties": { + "version": { + "required": true, + "type": "string", + "description": "Asterisk version." + }, + "entity_id": { + "required": true, + "type": "string", + "description": "" + } + } + }, + "SetId": { + "id": "SetId", + "description": "Effective user/group id", + "properties": { + "user": { + "required": true, + "type": "string", + "description": "Effective user id." + }, + "group": { + "required": true, + "type": "string", + "description": "Effective group id." + } + } + }, + "ConfigInfo": { + "id": "ConfigInfo", + "description": "Info about Asterisk configuration", + "properties": { + "name": { + "required": true, + "type": "string", + "description": "Asterisk system name." + }, + "default_language": { + "required": true, + "type": "string", + "description": "Default language for media playback." + }, + "max_channels": { + "required": false, + "type": "int", + "description": "Maximum number of simultaneous channels." + }, + "max_open_files": { + "required": false, + "type": "int", + "description": "Maximum number of open file handles (files, sockets)." + }, + "max_load": { + "required": false, + "type": "double", + "description": "Maximum load avg on system." + }, + "setid": { + "required": true, + "type": "SetId", + "description": "Effective user/group id for running Asterisk." + } + } + }, + "StatusInfo": { + "id": "StatusInfo", + "description": "Info about Asterisk status", + "properties": { + "startup_time": { + "required": true, + "type": "Date", + "description": "Time when Asterisk was started." + }, + "last_reload_time": { + "required": true, + "type": "Date", + "description": "Time when Asterisk was last reloaded." + } + } + }, + "AsteriskInfo": { + "id": "AsteriskInfo", + "description": "Asterisk system information", + "properties": { + "build": { + "required": false, + "type": "BuildInfo", + "description": "Info about how Asterisk was built" + }, + "system": { + "required": false, + "type": "SystemInfo", + "description": "Info about the system running Asterisk" + }, + "config": { + "required": false, + "type": "ConfigInfo", + "description": "Info about Asterisk configuration" + }, + "status": { + "required": false, + "type": "StatusInfo", + "description": "Info about Asterisk status" + } + } + }, + "Variable": { + "id": "Variable", + "description": "The value of a channel variable", + "properties": { + "value": { + "required": true, + "type": "string", + "description": "The value of the variable requested" + } + } + } + } +} diff --git a/codegen/src/main/resources/codegen-data/ari_1_3_0/bridges.json b/codegen/src/main/resources/codegen-data/ari_1_3_0/bridges.json new file mode 100644 index 00000000..ccc64771 --- /dev/null +++ b/codegen/src/main/resources/codegen-data/ari_1_3_0/bridges.json @@ -0,0 +1,656 @@ +{ + "_copyright": "Copyright (C) 2012 - 2013, Digium, Inc.", + "_author": "David M. Lee, II ", + "_svn_revision": "$Revision$", + "apiVersion": "1.3.0", + "swaggerVersion": "1.1", + "basePath": "http://localhost:8088/stasis", + "resourcePath": "/api-docs/bridges.{format}", + "apis": [ + { + "path": "/bridges", + "description": "Active bridges", + "operations": [ + { + "httpMethod": "GET", + "summary": "List all active bridges in Asterisk.", + "nickname": "list", + "responseClass": "List[Bridge]" + }, + { + "httpMethod": "POST", + "summary": "Create a new bridge.", + "notes": "This bridge persists until it has been shut down, or Asterisk has been shut down.", + "nickname": "create", + "responseClass": "Bridge", + "parameters": [ + { + "name": "type", + "description": "Comma separated list of bridge type attributes (mixing, holding, dtmf_events, proxy_media).", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "bridgeId", + "description": "Unique ID to give to the bridge being created.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "name", + "description": "Name to give to the bridge being created.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + } + ] + } + ] + }, + { + "path": "/bridges/{bridgeId}", + "description": "Individual bridge", + "operations": [ + { + "httpMethod": "POST", + "summary": "Create a new bridge or updates an existing one.", + "notes": "This bridge persists until it has been shut down, or Asterisk has been shut down.", + "nickname": "create_or_update_with_id", + "responseClass": "Bridge", + "parameters": [ + { + "name": "type", + "description": "Comma separated list of bridge type attributes (mixing, holding, dtmf_events, proxy_media) to set.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "bridgeId", + "description": "Unique ID to give to the bridge being created.", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "name", + "description": "Set the name of the bridge.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + } + ] + }, + { + "httpMethod": "GET", + "summary": "Get bridge details.", + "nickname": "get", + "responseClass": "Bridge", + "parameters": [ + { + "name": "bridgeId", + "description": "Bridge's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Bridge not found" + } + ] + }, + { + "httpMethod": "DELETE", + "summary": "Shut down a bridge.", + "notes": "If any channels are in this bridge, they will be removed and resume whatever they were doing beforehand.", + "nickname": "destroy", + "responseClass": "void", + "parameters": [ + { + "name": "bridgeId", + "description": "Bridge's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Bridge not found" + } + ] + } + ] + }, + { + "path": "/bridges/{bridgeId}/addChannel", + "description": "Add a channel to a bridge", + "operations": [ + { + "httpMethod": "POST", + "summary": "Add a channel to a bridge.", + "nickname": "addChannel", + "responseClass": "void", + "parameters": [ + { + "name": "bridgeId", + "description": "Bridge's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "channel", + "description": "Ids of channels to add to bridge", + "paramType": "query", + "required": true, + "allowMultiple": true, + "dataType": "string" + }, + { + "name": "role", + "description": "Channel's role in the bridge", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 400, + "reason": "Channel not found" + }, + { + "code": 404, + "reason": "Bridge not found" + }, + { + "code": 409, + "reason": "Bridge not in Stasis application; Channel currently recording" + }, + { + "code": 422, + "reason": "Channel not in Stasis application" + } + ] + } + ] + }, + { + "path": "/bridges/{bridgeId}/removeChannel", + "description": "Remove a channel from a bridge", + "operations": [ + { + "httpMethod": "POST", + "summary": "Remove a channel from a bridge.", + "nickname": "removeChannel", + "responseClass": "void", + "parameters": [ + { + "name": "bridgeId", + "description": "Bridge's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "channel", + "description": "Ids of channels to remove from bridge", + "paramType": "query", + "required": true, + "allowMultiple": true, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 400, + "reason": "Channel not found" + }, + { + "code": 404, + "reason": "Bridge not found" + }, + { + "code": 409, + "reason": "Bridge not in Stasis application" + }, + { + "code": 422, + "reason": "Channel not in this bridge" + } + ] + } + ] + }, + { + "path": "/bridges/{bridgeId}/moh", + "description": "Play music on hold to a bridge", + "operations": [ + { + "httpMethod": "POST", + "summary": "Play music on hold to a bridge or change the MOH class that is playing.", + "nickname": "startMoh", + "responseClass": "void", + "parameters": [ + { + "name": "bridgeId", + "description": "Bridge's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "mohClass", + "description": "Channel's id", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Bridge not found" + }, + { + "code": 409, + "reason": "Bridge not in Stasis application" + } + ] + }, + { + "httpMethod": "DELETE", + "summary": "Stop playing music on hold to a bridge.", + "notes": "This will only stop music on hold being played via POST bridges/{bridgeId}/moh.", + "nickname": "stopMoh", + "responseClass": "void", + "parameters": [ + { + "name": "bridgeId", + "description": "Bridge's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Bridge not found" + }, + { + "code": 409, + "reason": "Bridge not in Stasis application" + } + ] + } + ] + }, + { + "path": "/bridges/{bridgeId}/play", + "description": "Play media to the participants of a bridge", + "operations": [ + { + "httpMethod": "POST", + "summary": "Start playback of media on a bridge.", + "notes": "The media URI may be any of a number of URI's. Currently sound:, recording:, number:, digits:, characters:, and tone: URI's are supported. This operation creates a playback resource that can be used to control the playback of media (pause, rewind, fast forward, etc.)", + "nickname": "play", + "responseClass": "Playback", + "parameters": [ + { + "name": "bridgeId", + "description": "Bridge's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "media", + "description": "Media's URI to play.", + "paramType": "query", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "lang", + "description": "For sounds, selects language for sound.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "offsetms", + "description": "Number of media to skip before playing.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "int", + "defaultValue": 0, + "allowableValues": { + "valueType": "RANGE", + "min": 0 + } + + }, + { + "name": "skipms", + "description": "Number of milliseconds to skip for forward/reverse operations.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "int", + "defaultValue": 3000, + "allowableValues": { + "valueType": "RANGE", + "min": 0 + } + }, + { + "name": "playbackId", + "description": "Playback Id.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Bridge not found" + }, + { + "code": 409, + "reason": "Bridge not in a Stasis application" + } + ] + } + ] + }, + { + "path": "/bridges/{bridgeId}/play/{playbackId}", + "description": "Play media to a bridge", + "operations": [ + { + "httpMethod": "POST", + "summary": "Start playback of media on a bridge.", + "notes": "The media URI may be any of a number of URI's. Currently sound: and recording: URI's are supported. This operation creates a playback resource that can be used to control the playback of media (pause, rewind, fast forward, etc.)", + "nickname": "playWithId", + "responseClass": "Playback", + "parameters": [ + { + "name": "bridgeId", + "description": "Bridge's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "playbackId", + "description": "Playback ID.", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "media", + "description": "Media's URI to play.", + "paramType": "query", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "lang", + "description": "For sounds, selects language for sound.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "offsetms", + "description": "Number of media to skip before playing.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "int", + "defaultValue": 0, + "allowableValues": { + "valueType": "RANGE", + "min": 0 + } + }, + { + "name": "skipms", + "description": "Number of milliseconds to skip for forward/reverse operations.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "int", + "defaultValue": 3000, + "allowableValues": { + "valueType": "RANGE", + "min": 0 + } + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Bridge not found" + }, + { + "code": 409, + "reason": "Bridge not in a Stasis application" + } + ] + + } + ] + }, + { + "path": "/bridges/{bridgeId}/record", + "description": "Record audio on a bridge", + "operations": [ + { + "httpMethod": "POST", + "summary": "Start a recording.", + "notes": "This records the mixed audio from all channels participating in this bridge.", + "nickname": "record", + "responseClass": "LiveRecording", + "parameters": [ + { + "name": "bridgeId", + "description": "Bridge's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "name", + "description": "Recording's filename", + "paramType": "query", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "format", + "description": "Format to encode audio in", + "paramType": "query", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "maxDurationSeconds", + "description": "Maximum duration of the recording, in seconds. 0 for no limit.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "int", + "defaultValue": 0, + "allowableValues": { + "valueType": "RANGE", + "min": 0 + } + }, + { + "name": "maxSilenceSeconds", + "description": "Maximum duration of silence, in seconds. 0 for no limit.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "int", + "defaultValue": 0, + "allowableValues": { + "valueType": "RANGE", + "min": 0 + } + }, + { + "name": "ifExists", + "description": "Action to take if a recording with the same name already exists.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string", + "defaultValue": "fail", + "allowableValues": { + "valueType": "LIST", + "values": [ + "fail", + "overwrite", + "append" + ] + } + }, + { + "name": "beep", + "description": "Play beep when recording begins", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "boolean", + "defaultValue": false + }, + { + "name": "terminateOn", + "description": "DTMF input to terminate recording.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string", + "defaultValue": "none", + "allowableValues": { + "valueType": "LIST", + "values": [ + "none", + "any", + "*", + "#" + ] + } + } + ], + "errorResponses": [ + { + "code": 400, + "reason": "Invalid parameters" + }, + { + "code": 404, + "reason": "Bridge not found" + }, + { + "code": 409, + "reason": "Bridge is not in a Stasis application; A recording with the same name already exists on the system and can not be overwritten because it is in progress or ifExists=fail" + }, + { + "code": 422, + "reason": "The format specified is unknown on this system" + } + ] + } + ] + } + ], + "models": { + "Bridge": { + "id": "Bridge", + "description": "The merging of media from one or more channels.\n\nEveryone on the bridge receives the same audio.", + "properties": { + "id": { + "type": "string", + "description": "Unique identifier for this bridge", + "required": true + }, + "technology": { + "type": "string", + "description": "Name of the current bridging technology", + "required": true + }, + "bridge_type": { + "type": "string", + "description": "Type of bridge technology", + "required": true, + "allowableValues": { + "valueType": "LIST", + "values": [ + "mixing", + "holding" + ] + } + }, + "bridge_class": { + "type": "string", + "description": "Bridging class", + "required": true + }, + "creator": { + "type": "string", + "description": "Entity that created the bridge", + "required": true + }, + "name": { + "type": "string", + "description": "Name the creator gave the bridge", + "required": true + }, + "channels": { + "type": "List[string]", + "description": "Ids of channels participating in this bridge", + "required": true + } + } + } + } +} diff --git a/codegen/src/main/resources/codegen-data/ari_1_3_0/channels.json b/codegen/src/main/resources/codegen-data/ari_1_3_0/channels.json new file mode 100644 index 00000000..997c3450 --- /dev/null +++ b/codegen/src/main/resources/codegen-data/ari_1_3_0/channels.json @@ -0,0 +1,1456 @@ +{ + "_copyright": "Copyright (C) 2012 - 2013, Digium, Inc.", + "_author": "David M. Lee, II ", + "_svn_revision": "$Revision$", + "apiVersion": "1.3.0", + "swaggerVersion": "1.1", + "basePath": "http://localhost:8088/stasis", + "resourcePath": "/api-docs/channels.{format}", + "apis": [ + { + "path": "/channels", + "description": "Active channels", + "operations": [ + { + "httpMethod": "GET", + "summary": "List all active channels in Asterisk.", + "nickname": "list", + "responseClass": "List[Channel]" + }, + { + "httpMethod": "POST", + "summary": "Create a new channel (originate).", + "notes": "The new channel is created immediately and a snapshot of it returned. If a Stasis application is provided it will be automatically subscribed to the originated channel for further events and updates.", + "nickname": "originate", + "responseClass": "Channel", + "parameters": [ + { + "name": "endpoint", + "description": "Endpoint to call.", + "paramType": "query", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "extension", + "description": "The extension to dial after the endpoint answers", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "context", + "description": "The context to dial after the endpoint answers. If omitted, uses 'default'", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "priority", + "description": "The priority to dial after the endpoint answers. If omitted, uses 1", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "long" + }, + { + "name": "app", + "description": "The application that is subscribed to the originated channel, and passed to the Stasis application.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "appArgs", + "description": "The application arguments to pass to the Stasis application.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "callerId", + "description": "CallerID to use when dialing the endpoint or extension.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "timeout", + "description": "Timeout (in seconds) before giving up dialing, or -1 for no timeout.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "int", + "defaultValue": 30 + }, + { + "name": "variables", + "description": "The 'variables' key in the body object holds variable key/value pairs to set on the channel on creation. Other keys in the body object are interpreted as query parameters. Ex. { 'endpoint': 'SIP/Alice', 'variables': { 'CALLERID(name)': 'Alice' } }", + "paramType": "body", + "required": false, + "dataType": "containers", + "allowMultiple": false + }, + { + "name": "channelId", + "description": "The unique id to assign the channel on creation.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "otherChannelId", + "description": "The unique id to assign the second channel when using local channels.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 400, + "reason": "Invalid parameters for originating a channel." + } + ] + } + ] + }, + { + "path": "/channels/{channelId}", + "description": "Active channel", + "operations": [ + { + "httpMethod": "GET", + "summary": "Channel details.", + "nickname": "get", + "responseClass": "Channel", + "parameters": [ + { + "name": "channelId", + "description": "Channel's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Channel not found" + } + ] + }, + { + "httpMethod": "POST", + "summary": "Create a new channel (originate with id).", + "notes": "The new channel is created immediately and a snapshot of it returned. If a Stasis application is provided it will be automatically subscribed to the originated channel for further events and updates.", + "nickname": "originateWithId", + "responseClass": "Channel", + "parameters": [ + { + "name": "channelId", + "description": "The unique id to assign the channel on creation.", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "endpoint", + "description": "Endpoint to call.", + "paramType": "query", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "extension", + "description": "The extension to dial after the endpoint answers", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "context", + "description": "The context to dial after the endpoint answers. If omitted, uses 'default'", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "priority", + "description": "The priority to dial after the endpoint answers. If omitted, uses 1", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "long" + }, + { + "name": "app", + "description": "The application that is subscribed to the originated channel, and passed to the Stasis application.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "appArgs", + "description": "The application arguments to pass to the Stasis application.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "callerId", + "description": "CallerID to use when dialing the endpoint or extension.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "timeout", + "description": "Timeout (in seconds) before giving up dialing, or -1 for no timeout.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "int", + "defaultValue": 30 + }, + { + "name": "variables", + "description": "The 'variables' key in the body object holds variable key/value pairs to set on the channel on creation. Other keys in the body object are interpreted as query parameters. Ex. { 'endpoint': 'SIP/Alice', 'variables': { 'CALLERID(name)': 'Alice' } }", + "paramType": "body", + "required": false, + "dataType": "containers", + "allowMultiple": false + }, + { + "name": "otherChannelId", + "description": "The unique id to assign the second channel when using local channels.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 400, + "reason": "Invalid parameters for originating a channel." + } + ] + + }, + { + "httpMethod": "DELETE", + "summary": "Delete (i.e. hangup) a channel.", + "nickname": "hangup", + "responseClass": "void", + "parameters": [ + { + "name": "channelId", + "description": "Channel's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "reason", + "description": "Reason for hanging up the channel", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string", + "defalutValue": "normal", + "allowableValues": { + "valueType": "LIST", + "values": [ + "normal", + "busy", + "congestion" + ] + } + } + ], + "errorResponses": [ + { + "code": 400, + "reason": "Invalid reason for hangup provided" + }, + { + "code": 404, + "reason": "Channel not found" + } + ] + } + ] + }, + { + "path": "/channels/{channelId}/continue", + "description": "Exit application; continue execution in the dialplan", + "operations": [ + { + "httpMethod": "POST", + "summary": "Exit application; continue execution in the dialplan.", + "nickname": "continueInDialplan", + "responseClass": "void", + "parameters": [ + { + "name": "channelId", + "description": "Channel's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "context", + "description": "The context to continue to.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "extension", + "description": "The extension to continue to.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "priority", + "description": "The priority to continue to.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "int" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Channel not found" + }, + { + "code": 409, + "reason": "Channel not in a Stasis application" + } + ] + } + ] + }, + { + "path": "/channels/{channelId}/answer", + "description": "Answer a channel", + "operations": [ + { + "httpMethod": "POST", + "summary": "Answer a channel.", + "nickname": "answer", + "responseClass": "void", + "parameters": [ + { + "name": "channelId", + "description": "Channel's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Channel not found" + }, + { + "code": 409, + "reason": "Channel not in a Stasis application" + } + ] + } + ] + }, + { + "path": "/channels/{channelId}/ring", + "description": "Send a ringing indication to a channel", + "operations": [ + { + "httpMethod": "POST", + "summary": "Indicate ringing to a channel.", + "nickname": "ring", + "responseClass": "void", + "parameters": [ + { + "name": "channelId", + "description": "Channel's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Channel not found" + }, + { + "code": 409, + "reason": "Channel not in a Stasis application" + } + ] + }, + { + "httpMethod": "DELETE", + "summary": "Stop ringing indication on a channel if locally generated.", + "nickname": "ringStop", + "responseClass": "void", + "parameters": [ + { + "name": "channelId", + "description": "Channel's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Channel not found" + }, + { + "code": 409, + "reason": "Channel not in a Stasis application" + } + ] + } + ] + }, + { + "path": "/channels/{channelId}/dtmf", + "description": "Send DTMF to a channel", + "operations": [ + { + "httpMethod": "POST", + "summary": "Send provided DTMF to a given channel.", + "nickname": "sendDTMF", + "responseClass": "void", + "parameters": [ + { + "name": "channelId", + "description": "Channel's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "dtmf", + "description": "DTMF To send.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "before", + "description": "Amount of time to wait before DTMF digits (specified in milliseconds) start.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "int", + "defaultValue": 0 + }, + { + "name": "between", + "description": "Amount of time in between DTMF digits (specified in milliseconds).", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "int", + "defaultValue": 100 + }, + { + "name": "duration", + "description": "Length of each DTMF digit (specified in milliseconds).", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "int", + "defaultValue": 100 + }, + { + "name": "after", + "description": "Amount of time to wait after DTMF digits (specified in milliseconds) end.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "int", + "defaultValue": 0 + } + ], + "errorResponses": [ + { + "code": 400, + "reason": "DTMF is required" + }, + { + "code": 404, + "reason": "Channel not found" + }, + { + "code": 409, + "reason": "Channel not in a Stasis application" + } + ] + } + ] + }, + { + "path": "/channels/{channelId}/mute", + "description": "Mute a channel", + "operations": [ + { + "httpMethod": "POST", + "summary": "Mute a channel.", + "nickname": "mute", + "responseClass": "void", + "parameters": [ + { + "name": "channelId", + "description": "Channel's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "direction", + "description": "Direction in which to mute audio", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string", + "defaultValue": "both", + "allowableValues": { + "valueType": "LIST", + "values": [ + "both", + "in", + "out" + ] + } + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Channel not found" + }, + { + "code": 409, + "reason": "Channel not in a Stasis application" + } + ] + }, + { + "httpMethod": "DELETE", + "summary": "Unmute a channel.", + "nickname": "unmute", + "responseClass": "void", + "parameters": [ + { + "name": "channelId", + "description": "Channel's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "direction", + "description": "Direction in which to unmute audio", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string", + "defaultValue": "both", + "allowableValues": { + "valueType": "LIST", + "values": [ + "both", + "in", + "out" + ] + } + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Channel not found" + }, + { + "code": 409, + "reason": "Channel not in a Stasis application" + } + ] + } + ] + }, + { + "path": "/channels/{channelId}/hold", + "description": "Put a channel on hold", + "operations": [ + { + "httpMethod": "POST", + "summary": "Hold a channel.", + "nickname": "hold", + "responseClass": "void", + "parameters": [ + { + "name": "channelId", + "description": "Channel's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Channel not found" + }, + { + "code": 409, + "reason": "Channel not in a Stasis application" + } + ] + }, + { + "httpMethod": "DELETE", + "summary": "Remove a channel from hold.", + "nickname": "unhold", + "responseClass": "void", + "parameters": [ + { + "name": "channelId", + "description": "Channel's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Channel not found" + }, + { + "code": 409, + "reason": "Channel not in a Stasis application" + } + ] + } + ] + }, + { + "path": "/channels/{channelId}/moh", + "description": "Play music on hold to a channel", + "operations": [ + { + "httpMethod": "POST", + "summary": "Play music on hold to a channel.", + "notes": "Using media operations such as /play on a channel playing MOH in this manner will suspend MOH without resuming automatically. If continuing music on hold is desired, the stasis application must reinitiate music on hold.", + "nickname": "startMoh", + "responseClass": "void", + "parameters": [ + { + "name": "channelId", + "description": "Channel's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "mohClass", + "description": "Music on hold class to use", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Channel not found" + }, + { + "code": 409, + "reason": "Channel not in a Stasis application" + } + ] + }, + { + "httpMethod": "DELETE", + "summary": "Stop playing music on hold to a channel.", + "nickname": "stopMoh", + "responseClass": "void", + "parameters": [ + { + "name": "channelId", + "description": "Channel's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Channel not found" + }, + { + "code": 409, + "reason": "Channel not in a Stasis application" + } + ] + } + ] + }, + { + "path": "/channels/{channelId}/silence", + "description": "Play silence to a channel", + "operations": [ + { + "httpMethod": "POST", + "summary": "Play silence to a channel.", + "notes": "Using media operations such as /play on a channel playing silence in this manner will suspend silence without resuming automatically.", + "nickname": "startSilence", + "responseClass": "void", + "parameters": [ + { + "name": "channelId", + "description": "Channel's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Channel not found" + }, + { + "code": 409, + "reason": "Channel not in a Stasis application" + } + ] + }, + { + "httpMethod": "DELETE", + "summary": "Stop playing silence to a channel.", + "nickname": "stopSilence", + "responseClass": "void", + "parameters": [ + { + "name": "channelId", + "description": "Channel's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Channel not found" + }, + { + "code": 409, + "reason": "Channel not in a Stasis application" + } + ] + } + ] + }, + { + "path": "/channels/{channelId}/play", + "description": "Play media to a channel", + "operations": [ + { + "httpMethod": "POST", + "summary": "Start playback of media.", + "notes": "The media URI may be any of a number of URI's. Currently sound:, recording:, number:, digits:, characters:, and tone: URI's are supported. This operation creates a playback resource that can be used to control the playback of media (pause, rewind, fast forward, etc.)", + "nickname": "play", + "responseClass": "Playback", + "parameters": [ + { + "name": "channelId", + "description": "Channel's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "media", + "description": "Media's URI to play.", + "paramType": "query", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "lang", + "description": "For sounds, selects language for sound.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "offsetms", + "description": "Number of media to skip before playing.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "int" + }, + { + "name": "skipms", + "description": "Number of milliseconds to skip for forward/reverse operations.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "int", + "defaultValue": 3000 + }, + { + "name": "playbackId", + "description": "Playback ID.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Channel not found" + }, + { + "code": 409, + "reason": "Channel not in a Stasis application" + } + ] + } + ] + }, + { + "path": "/channels/{channelId}/play/{playbackId}", + "description": "Play media to a channel", + "operations": [ + { + "httpMethod": "POST", + "summary": "Start playback of media and specify the playbackId.", + "notes": "The media URI may be any of a number of URI's. Currently sound: and recording: URI's are supported. This operation creates a playback resource that can be used to control the playback of media (pause, rewind, fast forward, etc.)", + "nickname": "playWithId", + "responseClass": "Playback", + "parameters": [ + { + "name": "channelId", + "description": "Channel's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "playbackId", + "description": "Playback ID.", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "media", + "description": "Media's URI to play.", + "paramType": "query", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "lang", + "description": "For sounds, selects language for sound.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "offsetms", + "description": "Number of media to skip before playing.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "int" + }, + { + "name": "skipms", + "description": "Number of milliseconds to skip for forward/reverse operations.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "int", + "defaultValue": 3000 + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Channel not found" + }, + { + "code": 409, + "reason": "Channel not in a Stasis application" + } + ] + } + ] + }, + { + "path": "/channels/{channelId}/record", + "description": "Record audio from a channel", + "operations": [ + { + "httpMethod": "POST", + "summary": "Start a recording.", + "notes": "Record audio from a channel. Note that this will not capture audio sent to the channel. The bridge itself has a record feature if that's what you want.", + "nickname": "record", + "responseClass": "LiveRecording", + "parameters": [ + { + "name": "channelId", + "description": "Channel's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "name", + "description": "Recording's filename", + "paramType": "query", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "format", + "description": "Format to encode audio in", + "paramType": "query", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "maxDurationSeconds", + "description": "Maximum duration of the recording, in seconds. 0 for no limit", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "int", + "defaultValue": 0, + "allowableValues": { + "valueType": "RANGE", + "min": 0 + } + }, + { + "name": "maxSilenceSeconds", + "description": "Maximum duration of silence, in seconds. 0 for no limit", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "int", + "defaultValue": 0, + "allowableValues": { + "valueType": "RANGE", + "min": 0 + } + }, + { + "name": "ifExists", + "description": "Action to take if a recording with the same name already exists.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string", + "defaultValue": "fail", + "allowableValues": { + "valueType": "LIST", + "values": [ + "fail", + "overwrite", + "append" + ] + } + }, + { + "name": "beep", + "description": "Play beep when recording begins", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "boolean", + "defaultValue": false + }, + { + "name": "terminateOn", + "description": "DTMF input to terminate recording", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string", + "defaultValue": "none", + "allowableValues": { + "valueType": "LIST", + "values": [ + "none", + "any", + "*", + "#" + ] + } + } + ], + "errorResponses": [ + { + "code": 400, + "reason": "Invalid parameters" + }, + { + "code": 404, + "reason": "Channel not found" + }, + { + "code": 409, + "reason": "Channel is not in a Stasis application; the channel is currently bridged with other hcannels; A recording with the same name already exists on the system and can not be overwritten because it is in progress or ifExists=fail" + }, + { + "code": 422, + "reason": "The format specified is unknown on this system" + } + ] + } + ] + }, + { + "path": "/channels/{channelId}/variable", + "description": "Variables on a channel", + "operations": [ + { + "httpMethod": "GET", + "summary": "Get the value of a channel variable or function.", + "nickname": "getChannelVar", + "responseClass": "Variable", + "parameters": [ + { + "name": "channelId", + "description": "Channel's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "variable", + "description": "The channel variable or function to get", + "paramType": "query", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 400, + "reason": "Missing variable parameter." + }, + { + "code": 404, + "reason": "Channel not found" + }, + { + "code": 409, + "reason": "Channel not in a Stasis application" + } + ] + }, + { + "httpMethod": "POST", + "summary": "Set the value of a channel variable or function.", + "nickname": "setChannelVar", + "responseClass": "void", + "parameters": [ + { + "name": "channelId", + "description": "Channel's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "variable", + "description": "The channel variable or function to set", + "paramType": "query", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "value", + "description": "The value to set the variable to", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 400, + "reason": "Missing variable parameter." + }, + { + "code": 404, + "reason": "Channel not found" + }, + { + "code": 409, + "reason": "Channel not in a Stasis application" + } + ] + } + ] + }, + { + "path": "/channels/{channelId}/snoop", + "description": "Snoop (spy/whisper) on a channel", + "operations": [ + { + "httpMethod": "POST", + "summary": "Start snooping.", + "notes": "Snoop (spy/whisper) on a specific channel.", + "nickname": "snoopChannel", + "responseClass": "Channel", + "parameters": [ + { + "name": "channelId", + "description": "Channel's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "spy", + "description": "Direction of audio to spy on", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string", + "defaultValue": "none", + "allowableValues": { + "valueType": "LIST", + "values": [ + "none", + "both", + "out", + "in" + ] + } + }, + { + "name": "whisper", + "description": "Direction of audio to whisper into", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string", + "defaultValue": "none", + "allowableValues": { + "valueType": "LIST", + "values": [ + "none", + "both", + "out", + "in" + ] + } + }, + { + "name": "app", + "description": "Application the snooping channel is placed into", + "paramType": "query", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "appArgs", + "description": "The application arguments to pass to the Stasis application", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "snoopId", + "description": "Unique ID to assign to snooping channel", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 400, + "reason": "Invalid parameters" + }, + { + "code": 404, + "reason": "Channel not found" + } + ] + } + ] + }, + { + "path": "/channels/{channelId}/snoop/{snoopId}", + "description": "Snoop (spy/whisper) on a channel", + "operations": [ + { + "httpMethod": "POST", + "summary": "Start snooping.", + "notes": "Snoop (spy/whisper) on a specific channel.", + "nickname": "snoopChannelWithId", + "responseClass": "Channel", + "parameters": [ + { + "name": "channelId", + "description": "Channel's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "snoopId", + "description": "Unique ID to assign to snooping channel", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "spy", + "description": "Direction of audio to spy on", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string", + "defaultValue": "none", + "allowableValues": { + "valueType": "LIST", + "values": [ + "none", + "both", + "out", + "in" + ] + } + }, + { + "name": "whisper", + "description": "Direction of audio to whisper into", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string", + "defaultValue": "none", + "allowableValues": { + "valueType": "LIST", + "values": [ + "none", + "both", + "out", + "in" + ] + } + }, + { + "name": "app", + "description": "Application the snooping channel is placed into", + "paramType": "query", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "appArgs", + "description": "The application arguments to pass to the Stasis application", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 400, + "reason": "Invalid parameters" + }, + { + "code": 404, + "reason": "Channel not found" + } + ] + } + ] + } + ], + "models": { + "Dialed": { + "id": "Dialed", + "description": "Dialed channel information.", + "properties": {} + }, + "DialplanCEP": { + "id": "DialplanCEP", + "description": "Dialplan location (context/extension/priority)", + "properties": { + "context": { + "required": true, + "type": "string", + "description": "Context in the dialplan" + }, + "exten": { + "required": true, + "type": "string", + "description": "Extension in the dialplan" + }, + "priority": { + "required": true, + "type": "long", + "description": "Priority in the dialplan" + } + } + }, + "CallerID": { + "id": "CallerID", + "description": "Caller identification", + "properties": { + "name": { + "required": true, + "type": "string" + }, + "number": { + "required": true, + "type": "string" + } + } + }, + "Channel": { + "id": "Channel", + "description": "A specific communication connection between Asterisk and an Endpoint.", + "properties": { + "id": { + "required": true, + "type": "string", + "description": "Unique identifier of the channel.\n\nThis is the same as the Uniqueid field in AMI." + }, + "name": { + "required": true, + "type": "string", + "description": "Name of the channel (i.e. SIP/foo-0000a7e3)" + }, + "state": { + "required": true, + "type": "string", + "allowableValues": { + "valueType": "LIST", + "values": [ + "Down", + "Rsrved", + "OffHook", + "Dialing", + "Ring", + "Ringing", + "Up", + "Busy", + "Dialing Offhook", + "Pre-ring", + "Unknown" + ] + } + }, + "caller": { + "required": true, + "type": "CallerID" + }, + "connected": { + "required": true, + "type": "CallerID" + }, + "accountcode": { + "required": true, + "type": "string" + }, + "dialplan": { + "required": true, + "type": "DialplanCEP", + "description": "Current location in the dialplan" + }, + "creationtime": { + "required": true, + "type": "Date", + "description": "Timestamp when channel was created" + } + } + } + } +} diff --git a/codegen/src/main/resources/codegen-data/ari_1_3_0/deviceStates.json b/codegen/src/main/resources/codegen-data/ari_1_3_0/deviceStates.json new file mode 100644 index 00000000..f4097a82 --- /dev/null +++ b/codegen/src/main/resources/codegen-data/ari_1_3_0/deviceStates.json @@ -0,0 +1,151 @@ +{ + "_copyright": "Copyright (C) 2012 - 2013, Digium, Inc.", + "_author": "Kevin Harwell ", + "_svn_revision": "$Revision$", + "apiVersion": "1.3.0", + "swaggerVersion": "1.1", + "basePath": "http://localhost:8088/stasis", + "resourcePath": "/api-docs/deviceStates.{format}", + "apis": [ + { + "path": "/deviceStates", + "description": "Device states", + "operations": [ + { + "httpMethod": "GET", + "summary": "List all ARI controlled device states.", + "nickname": "list", + "responseClass": "List[DeviceState]" + } + ] + }, + { + "path": "/deviceStates/{deviceName}", + "description": "Device state", + "operations": [ + { + "httpMethod": "GET", + "summary": "Retrieve the current state of a device.", + "nickname": "get", + "responseClass": "DeviceState", + "parameters": [ + { + "name": "deviceName", + "description": "Name of the device", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ] + }, + { + "httpMethod": "PUT", + "summary": "Change the state of a device controlled by ARI. (Note - implicitly creates the device state).", + "nickname": "update", + "responseClass": "void", + "parameters": [ + { + "name": "deviceName", + "description": "Name of the device", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "deviceState", + "description": "Device state value", + "paramType": "query", + "required": true, + "allowMultiple": false, + "dataType": "string", + "allowableValues": { + "valueType": "LIST", + "values": [ + "NOT_INUSE", + "INUSE", + "BUSY", + "INVALID", + "UNAVAILABLE", + "RINGING", + "RINGINUSE", + "ONHOLD" + ] + } + + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Device name is missing" + }, + { + "code": 409, + "reason": "Uncontrolled device specified" + } + ] + }, + { + "httpMethod": "DELETE", + "summary": "Destroy a device-state controlled by ARI.", + "nickname": "delete", + "responseClass": "void", + "parameters": [ + { + "name": "deviceName", + "description": "Name of the device", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Device name is missing" + }, + { + "code": 409, + "reason": "Uncontrolled device specified" + } + ] + } + ] + } + ], + "models": { + "DeviceState": { + "id": "DeviceState", + "description": "Represents the state of a device.", + "properties": { + "name": { + "type": "string", + "description": "Name of the device.", + "required": true + }, + "state": { + "type": "string", + "description": "Device's state", + "required": true, + "allowableValues": { + "valueType": "LIST", + "values": [ + "UNKNOWN", + "NOT_INUSE", + "INUSE", + "BUSY", + "INVALID", + "UNAVAILABLE", + "RINGING", + "RINGINUSE", + "ONHOLD" + ] + } + } + } + } + } +} diff --git a/codegen/src/main/resources/codegen-data/ari_1_3_0/endpoints.json b/codegen/src/main/resources/codegen-data/ari_1_3_0/endpoints.json new file mode 100644 index 00000000..948f03c7 --- /dev/null +++ b/codegen/src/main/resources/codegen-data/ari_1_3_0/endpoints.json @@ -0,0 +1,117 @@ +{ + "_copyright": "Copyright (C) 2012 - 2013, Digium, Inc.", + "_author": "David M. Lee, II ", + "_svn_revision": "$Revision$", + "apiVersion": "1.3.0", + "swaggerVersion": "1.1", + "basePath": "http://localhost:8088/stasis", + "resourcePath": "/api-docs/endpoints.{format}", + "apis": [ + { + "path": "/endpoints", + "description": "Asterisk endpoints", + "operations": [ + { + "httpMethod": "GET", + "summary": "List all endpoints.", + "nickname": "list", + "responseClass": "List[Endpoint]" + } + ] + }, + { + "path": "/endpoints/{tech}", + "description": "Asterisk endpoints", + "operations": [ + { + "httpMethod": "GET", + "summary": "List available endoints for a given endpoint technology.", + "nickname": "listByTech", + "responseClass": "List[Endpoint]", + "parameters": [ + { + "name": "tech", + "description": "Technology of the endpoints (sip,iax2,...)", + "paramType": "path", + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Endpoints not found" + } + ] + } + ] + }, + { + "path": "/endpoints/{tech}/{resource}", + "description": "Single endpoint", + "operations": [ + { + "httpMethod": "GET", + "summary": "Details for an endpoint.", + "nickname": "get", + "responseClass": "Endpoint", + "parameters": [ + { + "name": "tech", + "description": "Technology of the endpoint", + "paramType": "path", + "dataType": "string" + }, + { + "name": "resource", + "description": "ID of the endpoint", + "paramType": "path", + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Endpoints not found" + } + ] + } + ] + } + ], + "models": { + "Endpoint": { + "id": "Endpoint", + "description": "An external device that may offer/accept calls to/from Asterisk.\n\nUnlike most resources, which have a single unique identifier, an endpoint is uniquely identified by the technology/resource pair.", + "properties": { + "technology": { + "type": "string", + "description": "Technology of the endpoint", + "required": true + }, + "resource": { + "type": "string", + "description": "Identifier of the endpoint, specific to the given technology.", + "required": true + }, + "state": { + "type": "string", + "description": "Endpoint's state", + "required": false, + "allowableValues": { + "valueType": "LIST", + "values": [ + "unknown", + "offline", + "online" + ] + } + }, + "channel_ids": { + "type": "List[string]", + "description": "Id's of channels associated with this endpoint", + "required": true + } + } + } + } +} diff --git a/codegen/src/main/resources/codegen-data/ari_1_3_0/events.json b/codegen/src/main/resources/codegen-data/ari_1_3_0/events.json new file mode 100644 index 00000000..9ac948b4 --- /dev/null +++ b/codegen/src/main/resources/codegen-data/ari_1_3_0/events.json @@ -0,0 +1,647 @@ +{ + "_copyright": "Copyright (C) 2012 - 2013, Digium, Inc.", + "_author": "David M. Lee, II ", + "_svn_revision": "$Revision$", + "apiVersion": "1.3.0", + "swaggerVersion": "1.2", + "basePath": "http://localhost:8088/stasis", + "resourcePath": "/api-docs/events.{format}", + "apis": [ + { + "path": "/events", + "description": "Events from Asterisk to applications", + "operations": [ + { + "httpMethod": "GET", + "upgrade": "websocket", + "websocketProtocol": "ari", + "summary": "WebSocket connection for events.", + "nickname": "eventWebsocket", + "responseClass": "Message", + "parameters": [ + { + "name": "app", + "description": "Applications to subscribe to.", + "paramType": "query", + "required": true, + "allowMultiple": true, + "dataType": "string" + } + ] + } + ] + }, + { + "path": "/events/user/{eventName}", + "description": "Stasis application user events", + "operations": [ + { + "httpMethod": "POST", + "summary": "Generate a user event.", + "nickname": "userEvent", + "responseClass": "void", + "parameters": [ + { + "name": "eventName", + "description": "Event name", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "application", + "description": "The name of the application that will receive this event", + "paramType": "query", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "source", + "description": "URI for event source (channel:{channelId}, bridge:{bridgeId}, endpoint:{tech}/{resource}, deviceState:{deviceName}", + "paramType": "query", + "required": false, + "allowMultiple": true, + "dataType": "string" + }, + { + "name": "variables", + "description": "custom key/value pairs added to the user event", + "paramType": "body", + "required": false, + "allowMultiple": false, + "dataType": "containers" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Application does not exist." + }, + { + "code": 422, + "reason": "Event source not found." + }, + { + "code": 400, + "reason": "Invalid even tsource URI or userevent data." + } + ] + } + ] + } + ], + "models": { + "Message": { + "id": "Message", + "description": "Base type for errors and events", + "discriminator": "type", + "properties": { + "type": { + "type": "string", + "required": true, + "description": "Indicates the type of this message." + } + }, + "subTypes": [ + "MissingParams", + "Event" + ] + }, + "MissingParams": { + "id": "MissingParams", + "description": "Error event sent when required params are missing.", + "properties": { + "params": { + "required": true, + "type": "List[string]", + "description": "A list of the missing parameters" + } + } + }, + "Event": { + "id": "Event", + "description": "Base type for asynchronous events from Asterisk.", + "properties": { + "application": { + "type": "string", + "description": "Name of the application receiving the event.", + "required": true + }, + "timestamp": { + "type": "Date", + "description": "Time at which this event was created.", + "required": false + } + }, + "subTypes": [ + "DeviceStateChanged", + "PlaybackStarted", + "PlaybackFinished", + "RecordingStarted", + "RecordingFinished", + "RecordingFailed", + "ApplicationReplaced", + "BridgeCreated", + "BridgeDestroyed", + "BridgeMerged", + "BridgeBlindTransfer", + "BridgeAttendedTransfer", + "ChannelCreated", + "ChannelDestroyed", + "ChannelEnteredBridge", + "ChannelLeftBridge", + "ChannelStateChange", + "ChannelDtmfReceived", + "ChannelDialplan", + "ChannelCallerId", + "ChannelUserevent", + "ChannelHangupRequest", + "ChannelVarset", + "EndpointStateChange", + "Dial", + "StasisEnd", + "StasisStart" + ] + }, + "DeviceStateChanged": { + "id": "DeviceStateChanged", + "description": "Notification that a device state has changed.", + "properties": { + "device_state": { + "type": "DeviceState", + "description": "Device state object", + "required": true + } + } + }, + "PlaybackStarted": { + "id": "PlaybackStarted", + "description": "Event showing the start of a media playback operation.", + "properties": { + "playback": { + "type": "Playback", + "description": "Playback control object", + "required": true + } + } + }, + "PlaybackFinished": { + "id": "PlaybackFinished", + "description": "Event showing the completion of a media playback operation.", + "properties": { + "playback": { + "type": "Playback", + "description": "Playback control object", + "required": true + } + } + }, + "RecordingStarted": { + "id": "RecordingStarted", + "extends": "Event", + "description": "Event showing the start of a recording operation.", + "properties": { + "recording": { + "type": "LiveRecording", + "description": "Recording control object", + "required": true + } + } + }, + "RecordingFinished": { + "id": "RecordingFinished", + "extends": "Event", + "description": "Event showing the completion of a recording operation.", + "properties": { + "recording": { + "type": "LiveRecording", + "description": "Recording control object", + "required": true + } + } + }, + "RecordingFailed": { + "id": "RecordingFailed", + "extends": "Event", + "description": "Event showing failure of a recording operation.", + "properties": { + "recording": { + "type": "LiveRecording", + "description": "Recording control object", + "required": true + } + } + }, + "ApplicationReplaced": { + "id": "ApplicationReplaced", + "description": "Notification that another WebSocket has taken over for an application.\n\nAn application may only be subscribed to by a single WebSocket at a time. If multiple WebSockets attempt to subscribe to the same application, the newer WebSocket wins, and the older one receives this event.", + "properties": {} + }, + "BridgeCreated": { + "id": "BridgeCreated", + "description": "Notification that a bridge has been created.", + "properties": { + "bridge": { + "required": true, + "type": "Bridge" + } + } + }, + "BridgeDestroyed": { + "id": "BridgeDestroyed", + "description": "Notification that a bridge has been destroyed.", + "properties": { + "bridge": { + "required": true, + "type": "Bridge" + } + } + }, + "BridgeMerged": { + "id": "BridgeMerged", + "description": "Notification that one bridge has merged into another.", + "properties": { + "bridge": { + "required": true, + "type": "Bridge" + }, + "bridge_from": { + "required": true, + "type": "Bridge" + } + } + }, + "BridgeBlindTransfer": { + "id": "BridgeBlindTransfer", + "description": "Notification that a blind transfer has occurred.", + "properties": { + "channel": { + "description": "The channel performing the blind transfer", + "required": true, + "type": "Channel" + }, + "exten": { + "description": "The extension transferred to", + "required": true, + "type": "string" + }, + "context": { + "description": "The context transferred to", + "required": true, + "type": "string" + }, + "result": { + "description": "The result of the transfer attempt", + "required": true, + "type": "string" + }, + "is_external": { + "description": "Whether the transfer was externally initiated or not", + "required": true, + "type": "boolean" + }, + "bridge": { + "description": "The bridge being transferred", + "type": "Bridge" + } + } + }, + "BridgeAttendedTransfer": { + "id": "BridgeAttendedTransfer", + "description": "Notification that an attended transfer has occurred.", + "properties": { + "transferer_first_leg": { + "description": "First leg of the transferer", + "required": true, + "type": "Channel" + }, + "transferer_second_leg": { + "description": "Second leg of the transferer", + "required": true, + "type": "Channel" + }, + "result": { + "description": "The result of the transfer attempt", + "required": true, + "type": "string" + }, + "is_external": { + "description": "Whether the transfer was externally initiated or not", + "required": true, + "type": "boolean" + }, + "transferer_first_leg_bridge": { + "description": "Bridge the transferer first leg is in", + "type": "Bridge" + }, + "transferer_second_leg_bridge": { + "description": "Bridge the transferer second leg is in", + "type": "Bridge" + }, + "destination_type": { + "description": "How the transfer was accomplished", + "required": true, + "type": "string" + }, + "destination_bridge": { + "description": "Bridge that survived the merge result", + "type": "string" + }, + "destination_application": { + "description": "Application that has been transferred into", + "type": "string" + }, + "destination_link_first_leg": { + "description": "First leg of a link transfer result", + "type": "Channel" + }, + "destination_link_second_leg": { + "description": "Second leg of a link transfer result", + "type": "Channel" + }, + "destination_threeway_channel": { + "description": "Transferer channel that survived the threeway result", + "type": "Channel" + }, + "destination_threeway_bridge": { + "description": "Bridge that survived the threeway result", + "type": "Bridge" + } + } + }, + "ChannelCreated": { + "id": "ChannelCreated", + "description": "Notification that a channel has been created.", + "properties": { + "channel": { + "required": true, + "type": "Channel" + } + } + }, + "ChannelDestroyed": { + "id": "ChannelDestroyed", + "description": "Notification that a channel has been destroyed.", + "properties": { + "cause": { + "required": true, + "description": "Integer representation of the cause of the hangup", + "type": "int" + }, + "cause_txt": { + "required": true, + "description": "Text representation of the cause of the hangup", + "type": "string" + }, + "channel": { + "required": true, + "type": "Channel" + } + } + }, + "ChannelEnteredBridge": { + "id": "ChannelEnteredBridge", + "description": "Notification that a channel has entered a bridge.", + "properties": { + "bridge": { + "required": true, + "type": "Bridge" + }, + "channel": { + "type": "Channel" + } + } + }, + "ChannelLeftBridge": { + "id": "ChannelLeftBridge", + "description": "Notification that a channel has left a bridge.", + "properties": { + "bridge": { + "required": true, + "type": "Bridge" + }, + "channel": { + "required": true, + "type": "Channel" + } + } + }, + "ChannelStateChange": { + "id": "ChannelStateChange", + "description": "Notification of a channel's state change.", + "properties": { + "channel": { + "required": true, + "type": "Channel" + } + } + }, + "ChannelDtmfReceived": { + "id": "ChannelDtmfReceived", + "description": "DTMF received on a channel.\n\nThis event is sent when the DTMF ends. There is no notification about the start of DTMF", + "properties": { + "digit": { + "required": true, + "type": "string", + "description": "DTMF digit received (0-9, A-E, # or *)" + }, + "duration_ms": { + "required": true, + "type": "int", + "description": "Number of milliseconds DTMF was received" + }, + "channel": { + "required": true, + "type": "Channel", + "description": "The channel on which DTMF was received" + } + } + }, + "ChannelDialplan": { + "id": "ChannelDialplan", + "description": "Channel changed location in the dialplan.", + "properties": { + "channel": { + "required": true, + "type": "Channel", + "description": "The channel that changed dialplan location." + }, + "dialplan_app": { + "required": true, + "type": "string", + "description": "The application about to be executed." + }, + "dialplan_app_data": { + "required": true, + "type": "string", + "description": "The data to be passed to the application." + } + } + }, + "ChannelCallerId": { + "id": "ChannelCallerId", + "description": "Channel changed Caller ID.", + "properties": { + "caller_presentation": { + "required": true, + "type": "int", + "description": "The integer representation of the Caller Presentation value." + }, + "caller_presentation_txt": { + "required": true, + "type": "string", + "description": "The text representation of the Caller Presentation value." + }, + "channel": { + "required": true, + "type": "Channel", + "description": "The channel that changed Caller ID." + } + } + }, + "ChannelUserevent": { + "id": "ChannelUserevent", + "description": "User-generated event with additional user-defined fields in the object.", + "properties": { + "eventname": { + "required": true, + "type": "string", + "description": "The name of the user event." + }, + "channel": { + "required": false, + "type": "Channel", + "description": "A channel that is signaled with the user event." + }, + "bridge": { + "required": false, + "type": "Bridge", + "description": "A bridge that is signaled with the user event." + }, + "endpoint": { + "required": false, + "type": "Endpoint", + "description": "A endpoint that is signaled with the user event." + }, + "userevent": { + "required": true, + "type": "object", + "description": "Custom Userevent data" + } + } + }, + "ChannelHangupRequest": { + "id": "ChannelHangupRequest", + "description": "A hangup was requested on the channel.", + "properties": { + "cause": { + "type": "int", + "description": "Integer representation of the cause of the hangup." + }, + "soft": { + "type": "boolean", + "description": "Whether the hangup request was a soft hangup request." + }, + "channel": { + "required": true, + "type": "Channel", + "description": "The channel on which the hangup was requested." + } + } + }, + "ChannelVarset": { + "id": "ChannelVarset", + "description": "Channel variable changed.", + "properties": { + "variable": { + "required": true, + "type": "string", + "description": "The variable that changed." + }, + "value": { + "required": true, + "type": "string", + "description": "The new value of the variable." + }, + "channel": { + "required": false, + "type": "Channel", + "description": "The channel on which the variable was set.\n\nIf missing, the variable is a global variable." + } + } + }, + "EndpointStateChange": { + "id": "EndpointStateChange", + "description": "Endpoint state changed.", + "properties": { + "endpoint": { + "required": true, + "type": "Endpoint" + } + } + }, + "Dial": { + "id": "Dial", + "description": "Dialing state has changed.", + "properties": { + "caller": { + "required": false, + "type": "Channel", + "description": "The calling channel." + }, + "peer": { + "required": true, + "type": "Channel", + "description": "The dialed channel." + }, + "forward": { + "required": false, + "type": "string", + "description": "Forwarding target requested by the original dialed channel." + }, + "forwarded": { + "required": false, + "type": "Channel", + "description": "Channel that the caller has been forwarded to." + }, + "dialstring": { + "required": false, + "type": "string", + "description": "The dial string for calling the peer channel." + }, + "dialstatus": { + "required": true, + "type": "string", + "description": "Current status of the dialing attempt to the peer." + } + } + }, + "StasisEnd": { + "id": "StasisEnd", + "description": "Notification that a channel has left a Stasis application.", + "properties": { + "channel": { + "required": true, + "type": "Channel" + } + } + }, + "StasisStart": { + "id": "StasisStart", + "description": "Notification that a channel has entered a Stasis application.", + "properties": { + "args": { + "required": true, + "type": "List[string]", + "description": "Arguments to the application" + }, + "channel": { + "required": true, + "type": "Channel" + } + } + } + } +} diff --git a/codegen/src/main/resources/codegen-data/ari_1_3_0/mailboxes.json b/codegen/src/main/resources/codegen-data/ari_1_3_0/mailboxes.json new file mode 100644 index 00000000..8f5c2690 --- /dev/null +++ b/codegen/src/main/resources/codegen-data/ari_1_3_0/mailboxes.json @@ -0,0 +1,134 @@ +{ + "_copyright": "Copyright (C) 2013, Digium, Inc.", + "_author": "Jonathan Rose ", + "_svn_revision": "$Revision$", + "apiVersion": "1.3.0", + "swaggerVersion": "1.1", + "basePath": "http://localhost:8088/stasis", + "resourcePath": "/api-docs/mailboxes.{format}", + "apis": [ + { + "path": "/mailboxes", + "description": "Mailboxes", + "operations": [ + { + "httpMethod": "GET", + "summary": "List all mailboxes.", + "nickname": "list", + "responseClass": "List[Mailbox]" + } + ] + }, + { + "path": "/mailboxes/{mailboxName}", + "description": "Mailbox state", + "operations": [ + { + "httpMethod": "GET", + "summary": "Retrieve the current state of a mailbox.", + "nickname": "get", + "responseClass": "Mailbox", + "parameters": [ + { + "name": "mailboxName", + "description": "Name of the mailbox", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Mailbox not found" + } + ] + }, + { + "httpMethod": "PUT", + "summary": "Change the state of a mailbox. (Note - implicitly creates the mailbox).", + "nickname": "update", + "responseClass": "void", + "parameters": [ + { + "name": "mailboxName", + "description": "Name of the mailbox", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "oldMessages", + "description": "Count of old messages in the mailbox", + "paramType": "query", + "required": true, + "allowMultiple": false, + "dataType": "int" + }, + { + "name": "newMessages", + "description": "Count of new messages in the mailbox", + "paramType": "query", + "required": true, + "allowMultiple": false, + "dataType": "int" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Mailbox not found" + } + ] + }, + { + "httpMethod": "DELETE", + "summary": "Destroy a mailbox.", + "nickname": "delete", + "responseClass": "void", + "parameters": [ + { + "name": "mailboxName", + "description": "Name of the mailbox", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Mailbox not found" + } + ] + } + ] + } + ], + "models": { + "Mailbox": { + "id": "Mailbox", + "description": "Represents the state of a mailbox.", + "properties": { + "name": { + "type": "string", + "description": "Name of the mailbox.", + "required": true + }, + "old_messages": { + "type": "int", + "description": "Count of old messages in the mailbox.", + "required": true + }, + "new_messages": { + "type": "int", + "description": "Count of new messages in the mailbox.", + "required": true + } + } + } + } +} diff --git a/codegen/src/main/resources/codegen-data/ari_1_3_0/playbacks.json b/codegen/src/main/resources/codegen-data/ari_1_3_0/playbacks.json new file mode 100644 index 00000000..9e77605c --- /dev/null +++ b/codegen/src/main/resources/codegen-data/ari_1_3_0/playbacks.json @@ -0,0 +1,155 @@ +{ + "_copyright": "Copyright (C) 2012 - 2013, Digium, Inc.", + "_author": "David M. Lee, II ", + "_svn_revision": "$Revision$", + "apiVersion": "1.3.0", + "swaggerVersion": "1.1", + "basePath": "http://localhost:8088/stasis", + "resourcePath": "/api-docs/playbacks.{format}", + "apis": [ + { + "path": "/playbacks/{playbackId}", + "description": "Control object for a playback operation.", + "operations": [ + { + "httpMethod": "GET", + "summary": "Get a playback's details.", + "nickname": "get", + "responseClass": "Playback", + "parameters": [ + { + "name": "playbackId", + "description": "Playback's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "The playback cannot be found" + } + ] + }, + { + "httpMethod": "DELETE", + "summary": "Stop a playback.", + "nickname": "stop", + "responseClass": "void", + "parameters": [ + { + "name": "playbackId", + "description": "Playback's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "The playback cannot be found" + } + ] + } + ] + }, + { + "path": "/playbacks/{playbackId}/control", + "description": "Control object for a playback operation.", + "operations": [ + { + "httpMethod": "POST", + "summary": "Control a playback.", + "nickname": "control", + "responseClass": "void", + "parameters": [ + { + "name": "playbackId", + "description": "Playback's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "operation", + "description": "Operation to perform on the playback.", + "paramType": "query", + "required": true, + "allowMultiple": false, + "dataType": "string", + "allowableValues": { + "valueType": "LIST", + "values": [ + "restart", + "pause", + "unpause", + "reverse", + "forward" + ] + } + } + ], + "errorResponses": [ + { + "code": 400, + "reason": "The provided operation parameter was invalid" + }, + { + "code": 404, + "reason": "The playback cannot be found" + }, + { + "code": 409, + "reason": "The operation cannot be performed in the playback's current state" + } +] + } + ] + } + ], + "models": { + "Playback": { + "id": "Playback", + "description": "Object representing the playback of media to a channel", + "properties": { + "id": { + "type": "string", + "description": "ID for this playback operation", + "required": true + }, + "media_uri": { + "type": "string", + "description": "URI for the media to play back.", + "required": true + }, + "target_uri": { + "type": "string", + "description": "URI for the channel or bridge to play the media on", + "required": true + }, + "language": { + "type": "string", + "description": "For media types that support multiple languages, the language requested for playback." + }, + "state": { + "type": "string", + "description": "Current state of the playback operation.", + "required": true, + "allowableValues": { + "valueType": "LIST", + "values": [ + "queued", + "playing", + "complete" + ] + } + } + } + } + } +} diff --git a/codegen/src/main/resources/codegen-data/ari_1_3_0/recordings.json b/codegen/src/main/resources/codegen-data/ari_1_3_0/recordings.json new file mode 100644 index 00000000..886d5651 --- /dev/null +++ b/codegen/src/main/resources/codegen-data/ari_1_3_0/recordings.json @@ -0,0 +1,331 @@ +{ + "_copyright": "Copyright (C) 2012 - 2013, Digium, Inc.", + "_author": "David M. Lee, II ", + "_svn_revision": "$Revision$", + "apiVersion": "1.3.0", + "swaggerVersion": "1.1", + "basePath": "http://localhost:8088/stasis", + "resourcePath": "/api-docs/recordings.{format}", + "apis": [ + { + "path": "/recordings/stored", + "description": "Recordings", + "operations": [ + { + "httpMethod": "GET", + "summary": "List recordings that are complete.", + "nickname": "listStored", + "responseClass": "List[StoredRecording]" + } + ] + }, + { + "path": "/recordings/stored/{recordingName}", + "description": "Individual recording", + "operations": [ + { + "httpMethod": "GET", + "summary": "Get a stored recording's details.", + "nickname": "getStored", + "responseClass": "StoredRecording", + "parameters": [ + { + "name": "recordingName", + "description": "The name of the recording", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Recording not found" + } + ] + }, + { + "httpMethod": "DELETE", + "summary": "Delete a stored recording.", + "nickname": "deleteStored", + "responseClass": "void", + "parameters": [ + { + "name": "recordingName", + "description": "The name of the recording", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Recording not found" + } + ] + } + ] + }, + { + "path": "/recordings/live/{recordingName}", + "description": "A recording that is in progress", + "operations": [ + { + "httpMethod": "GET", + "summary": "List live recordings.", + "nickname": "getLive", + "responseClass": "LiveRecording", + "parameters": [ + { + "name": "recordingName", + "description": "The name of the recording", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Recording not found" + } + ] + }, + { + "httpMethod": "DELETE", + "summary": "Stop a live recording and discard it.", + "nickname": "cancel", + "responseClass": "void", + "parameters": [ + { + "name": "recordingName", + "description": "The name of the recording", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Recording not found" + } + ] + } + ] + }, + { + "path": "/recordings/live/{recordingName}/stop", + "operations": [ + { + "httpMethod": "POST", + "summary": "Stop a live recording and store it.", + "nickname": "stop", + "responseClass": "void", + "parameters": [ + { + "name": "recordingName", + "description": "The name of the recording", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Recording not found" + } + ] + } + ] + }, + { + "path": "/recordings/live/{recordingName}/pause", + "operations": [ + { + "httpMethod": "POST", + "summary": "Pause a live recording.", + "notes": "Pausing a recording suspends silence detection, which will be restarted when the recording is unpaused. Paused time is not included in the accounting for maxDurationSeconds.", + "nickname": "pause", + "responseClass": "void", + "parameters": [ + { + "name": "recordingName", + "description": "The name of the recording", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Recording not found" + }, + { + "code": 409, + "reason": "Recording not in session" + } + ] + }, + { + "httpMethod": "DELETE", + "summary": "Unpause a live recording.", + "nickname": "unpause", + "responseClass": "void", + "parameters": [ + { + "name": "recordingName", + "description": "The name of the recording", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Recording not found" + }, + { + "code": 409, + "reason": "Recording not in session" + } + ] + } + ] + }, + { + "path": "/recordings/live/{recordingName}/mute", + "operations": [ + { + "httpMethod": "POST", + "summary": "Mute a live recording.", + "notes": "Muting a recording suspends silence detection, which will be restarted when the recording is unmuted.", + "nickname": "mute", + "responseClass": "void", + "parameters": [ + { + "name": "recordingName", + "description": "The name of the recording", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Recording not found" + }, + { + "code": 409, + "reason": "Recording not in session" + } + ] + }, + { + "httpMethod": "DELETE", + "summary": "Unmute a live recording.", + "nickname": "unmute", + "responseClass": "void", + "parameters": [ + { + "name": "recordingName", + "description": "The name of the recording", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Recording not found" + }, + { + "code": 409, + "reason": "Recording not in session" + } + ] + } + ] + } + ], + "models": { + "StoredRecording": { + "id": "StoredRecording", + "description": "A past recording that may be played back.", + "properties": { + "name": { + "required": true, + "type": "string" + }, + "format": { + "required": true, + "type": "string" + } + } + }, + "LiveRecording": { + "id": "LiveRecording", + "description": "A recording that is in progress", + "properties": { + "name": { + "required": true, + "type": "string", + "description": "Base name for the recording" + }, + "format": { + "required": true, + "type": "string", + "description": "Recording format (wav, gsm, etc.)" + }, + "target_uri": { + "required": true, + "type": "string", + "description": "URI for the channel or bridge being recorded" + }, + "state": { + "required": false, + "type": "string", + "allowableValues": { + "valueType": "LIST", + "values": [ + "queued", + "recording", + "paused", + "done", + "failed", + "canceled" + ] + } + }, + "cause": { + "required": false, + "type": "string", + "description": "Cause for recording failure if failed" + }, + "state": { + "required": true, + "type": "string" + }, + "format": { + "required": true, + "type": "string" + } + } + } + } +} diff --git a/codegen/src/main/resources/codegen-data/ari_1_3_0/sounds.json b/codegen/src/main/resources/codegen-data/ari_1_3_0/sounds.json new file mode 100644 index 00000000..329a4298 --- /dev/null +++ b/codegen/src/main/resources/codegen-data/ari_1_3_0/sounds.json @@ -0,0 +1,99 @@ +{ + "_copyright": "Copyright (C) 2012 - 2013, Digium, Inc.", + "_author": "David M. Lee, II ", + "_svn_revision": "$Revision$", + "apiVersion": "1.3.0", + "swaggerVersion": "1.1", + "basePath": "http://localhost:8088/stasis", + "resourcePath": "/api-docs/sounds.{format}", + "apis": [ + { + "path": "/sounds", + "description": "Sounds", + "operations": [ + { + "httpMethod": "GET", + "summary": "List all sounds.", + "nickname": "list", + "responseClass": "List[Sound]", + "parameters": [ + { + "name": "lang", + "description": "Lookup sound for a specific language.", + "paramType": "query", + "dataType": "string", + "required": false + }, + { + "name": "format", + "description": "Lookup sound in a specific format.", + "paramType": "query", + "dataType": "string", + "required": false, + "__note": "core show translation can show translation paths between formats, along with relative costs. so this could be just installed format, or we could follow that for transcoded formats." + } + ] + } + ] + }, + { + "path": "/sounds/{soundId}", + "description": "Individual sound", + "operations": [ + { + "httpMethod": "GET", + "summary": "Get a sound's details.", + "nickname": "get", + "responseClass": "Sound", + "parameters": [ + { + "name": "soundId", + "description": "Sound's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ] + } + ] + } + ], + "models": { + "FormatLangPair": { + "id": "FormatLangPair", + "description": "Identifies the format and language of a sound file", + "properties": { + "language": { + "required": true, + "type": "string" + }, + "format": { + "required": true, + "type": "string" + } + } + }, + "Sound": { + "id": "Sound", + "description": "A media file that may be played back.", + "properties": { + "id": { + "required": true, + "description": "Sound's identifier.", + "type": "string" + }, + "text": { + "required": false, + "description": "Text description of the sound, usually the words spoken.", + "type": "string" + }, + "formats": { + "required": true, + "description": "The formats and languages in which this sound is available.", + "type": "List[FormatLangPair]" + } + } + } + } +} diff --git a/codegen/src/main/resources/codegen-data/ari_1_4_0/applications.json b/codegen/src/main/resources/codegen-data/ari_1_4_0/applications.json new file mode 100644 index 00000000..132dd641 --- /dev/null +++ b/codegen/src/main/resources/codegen-data/ari_1_4_0/applications.json @@ -0,0 +1,172 @@ +{ + "_copyright": "Copyright (C) 2013, Digium, Inc.", + "_author": "David M. Lee, II ", + "_svn_revision": "$Revision$", + "apiVersion": "1.4.0", + "swaggerVersion": "1.1", + "basePath": "http://localhost:8088/stasis", + "resourcePath": "/api-docs/applications.{format}", + "apis": [ + { + "path": "/applications", + "description": "Stasis applications", + "operations": [ + { + "httpMethod": "GET", + "summary": "List all applications.", + "nickname": "list", + "responseClass": "List[Application]" + } + ] + }, + { + "path": "/applications/{applicationName}", + "description": "Stasis application", + "operations": [ + { + "httpMethod": "GET", + "summary": "Get details of an application.", + "nickname": "get", + "responseClass": "Application", + "parameters": [ + { + "name": "applicationName", + "description": "Application's name", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Application does not exist." + } + ] + } + ] + }, + { + "path": "/applications/{applicationName}/subscription", + "description": "Stasis application", + "operations": [ + { + "httpMethod": "POST", + "summary": "Subscribe an application to a event source.", + "notes": "Returns the state of the application after the subscriptions have changed", + "nickname": "subscribe", + "responseClass": "Application", + "parameters": [ + { + "name": "applicationName", + "description": "Application's name", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "eventSource", + "description": "URI for event source (channel:{channelId}, bridge:{bridgeId}, endpoint:{tech}/{resource}, deviceState:{deviceName}", + "paramType": "query", + "required": true, + "allowMultiple": true, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 400, + "reason": "Missing parameter." + }, + { + "code": 404, + "reason": "Application does not exist." + }, + { + "code": 422, + "reason": "Event source does not exist." + } + ] + }, + { + "httpMethod": "DELETE", + "summary": "Unsubscribe an application from an event source.", + "notes": "Returns the state of the application after the subscriptions have changed", + "nickname": "unsubscribe", + "responseClass": "Application", + "parameters": [ + { + "name": "applicationName", + "description": "Application's name", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "eventSource", + "description": "URI for event source (channel:{channelId}, bridge:{bridgeId}, endpoint:{tech}/{resource}, deviceState:{deviceName}", + "paramType": "query", + "required": true, + "allowMultiple": true, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 400, + "reason": "Missing parameter; event source scheme not recognized." + }, + { + "code": 404, + "reason": "Application does not exist." + }, + { + "code": 409, + "reason": "Application not subscribed to event source." + }, + { + "code": 422, + "reason": "Event source does not exist." + } + ] + } + ] + } + ], + "models": { + "Application": { + "id": "Application", + "description": "Details of a Stasis application", + "properties": { + "name": { + "type": "string", + "description": "Name of this application", + "required": true + }, + "channel_ids": { + "type": "List[string]", + "description": "Id's for channels subscribed to.", + "required": true + }, + "bridge_ids": { + "type": "List[string]", + "description": "Id's for bridges subscribed to.", + "required": true + }, + "endpoint_ids": { + "type": "List[string]", + "description": "{tech}/{resource} for endpoints subscribed to.", + "required": true + }, + "device_names": { + "type": "List[string]", + "description": "Names of the devices subscribed to.", + "required": true + } + } + } + } +} diff --git a/codegen/src/main/resources/codegen-data/ari_1_4_0/asterisk.json b/codegen/src/main/resources/codegen-data/ari_1_4_0/asterisk.json new file mode 100644 index 00000000..75934a89 --- /dev/null +++ b/codegen/src/main/resources/codegen-data/ari_1_4_0/asterisk.json @@ -0,0 +1,259 @@ +{ + "_copyright": "Copyright (C) 2012 - 2013, Digium, Inc.", + "_author": "David M. Lee, II ", + "_svn_revision": "$Revision$", + "apiVersion": "1.4.0", + "swaggerVersion": "1.1", + "basePath": "http://localhost:8088/stasis", + "resourcePath": "/api-docs/asterisk.{format}", + "apis": [ + { + "path": "/asterisk/info", + "description": "Asterisk system information (similar to core show settings)", + "operations": [ + { + "httpMethod": "GET", + "summary": "Gets Asterisk system information.", + "nickname": "getInfo", + "responseClass": "AsteriskInfo", + "parameters": [ + { + "name": "only", + "description": "Filter information returned", + "paramType": "query", + "required": false, + "allowMultiple": true, + "dataType": "string", + "allowableValues": { + "valueType": "LIST", + "values": [ + "build", + "system", + "config", + "status" + ] + } + } + ] + } + ] + }, + { + "path": "/asterisk/variable", + "description": "Global variables", + "operations": [ + { + "httpMethod": "GET", + "summary": "Get the value of a global variable.", + "nickname": "getGlobalVar", + "responseClass": "Variable", + "parameters": [ + { + "name": "variable", + "description": "The variable to get", + "paramType": "query", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 400, + "reason": "Missing variable parameter." + } + ] + }, + { + "httpMethod": "POST", + "summary": "Set the value of a global variable.", + "nickname": "setGlobalVar", + "responseClass": "void", + "parameters": [ + { + "name": "variable", + "description": "The variable to set", + "paramType": "query", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "value", + "description": "The value to set the variable to", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 400, + "reason": "Missing variable parameter." + } + ] + } + ] + } + ], + "models": { + "BuildInfo": { + "id": "BuildInfo", + "description": "Info about how Asterisk was built", + "properties": { + "os": { + "required": true, + "type": "string", + "description": "OS Asterisk was built on." + }, + "kernel": { + "required": true, + "type": "string", + "description": "Kernel version Asterisk was built on." + }, + "options": { + "required": true, + "type": "string", + "description": "Compile time options, or empty string if default." + }, + "machine": { + "required": true, + "type": "string", + "description": "Machine architecture (x86_64, i686, ppc, etc.)" + }, + "date": { + "required": true, + "type": "string", + "description": "Date and time when Asterisk was built." + }, + "user": { + "required": true, + "type": "string", + "description": "Username that build Asterisk" + } + } + }, + "SystemInfo": { + "id": "SystemInfo", + "description": "Info about Asterisk", + "properties": { + "version": { + "required": true, + "type": "string", + "description": "Asterisk version." + }, + "entity_id": { + "required": true, + "type": "string", + "description": "" + } + } + }, + "SetId": { + "id": "SetId", + "description": "Effective user/group id", + "properties": { + "user": { + "required": true, + "type": "string", + "description": "Effective user id." + }, + "group": { + "required": true, + "type": "string", + "description": "Effective group id." + } + } + }, + "ConfigInfo": { + "id": "ConfigInfo", + "description": "Info about Asterisk configuration", + "properties": { + "name": { + "required": true, + "type": "string", + "description": "Asterisk system name." + }, + "default_language": { + "required": true, + "type": "string", + "description": "Default language for media playback." + }, + "max_channels": { + "required": false, + "type": "int", + "description": "Maximum number of simultaneous channels." + }, + "max_open_files": { + "required": false, + "type": "int", + "description": "Maximum number of open file handles (files, sockets)." + }, + "max_load": { + "required": false, + "type": "double", + "description": "Maximum load avg on system." + }, + "setid": { + "required": true, + "type": "SetId", + "description": "Effective user/group id for running Asterisk." + } + } + }, + "StatusInfo": { + "id": "StatusInfo", + "description": "Info about Asterisk status", + "properties": { + "startup_time": { + "required": true, + "type": "Date", + "description": "Time when Asterisk was started." + }, + "last_reload_time": { + "required": true, + "type": "Date", + "description": "Time when Asterisk was last reloaded." + } + } + }, + "AsteriskInfo": { + "id": "AsteriskInfo", + "description": "Asterisk system information", + "properties": { + "build": { + "required": false, + "type": "BuildInfo", + "description": "Info about how Asterisk was built" + }, + "system": { + "required": false, + "type": "SystemInfo", + "description": "Info about the system running Asterisk" + }, + "config": { + "required": false, + "type": "ConfigInfo", + "description": "Info about Asterisk configuration" + }, + "status": { + "required": false, + "type": "StatusInfo", + "description": "Info about Asterisk status" + } + } + }, + "Variable": { + "id": "Variable", + "description": "The value of a channel variable", + "properties": { + "value": { + "required": true, + "type": "string", + "description": "The value of the variable requested" + } + } + } + } +} diff --git a/codegen/src/main/resources/codegen-data/ari_1_4_0/bridges.json b/codegen/src/main/resources/codegen-data/ari_1_4_0/bridges.json new file mode 100644 index 00000000..8d2de704 --- /dev/null +++ b/codegen/src/main/resources/codegen-data/ari_1_4_0/bridges.json @@ -0,0 +1,656 @@ +{ + "_copyright": "Copyright (C) 2012 - 2013, Digium, Inc.", + "_author": "David M. Lee, II ", + "_svn_revision": "$Revision$", + "apiVersion": "1.4.0", + "swaggerVersion": "1.1", + "basePath": "http://localhost:8088/stasis", + "resourcePath": "/api-docs/bridges.{format}", + "apis": [ + { + "path": "/bridges", + "description": "Active bridges", + "operations": [ + { + "httpMethod": "GET", + "summary": "List all active bridges in Asterisk.", + "nickname": "list", + "responseClass": "List[Bridge]" + }, + { + "httpMethod": "POST", + "summary": "Create a new bridge.", + "notes": "This bridge persists until it has been shut down, or Asterisk has been shut down.", + "nickname": "create", + "responseClass": "Bridge", + "parameters": [ + { + "name": "type", + "description": "Comma separated list of bridge type attributes (mixing, holding, dtmf_events, proxy_media).", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "bridgeId", + "description": "Unique ID to give to the bridge being created.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "name", + "description": "Name to give to the bridge being created.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + } + ] + } + ] + }, + { + "path": "/bridges/{bridgeId}", + "description": "Individual bridge", + "operations": [ + { + "httpMethod": "POST", + "summary": "Create a new bridge or updates an existing one.", + "notes": "This bridge persists until it has been shut down, or Asterisk has been shut down.", + "nickname": "create_or_update_with_id", + "responseClass": "Bridge", + "parameters": [ + { + "name": "type", + "description": "Comma separated list of bridge type attributes (mixing, holding, dtmf_events, proxy_media) to set.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "bridgeId", + "description": "Unique ID to give to the bridge being created.", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "name", + "description": "Set the name of the bridge.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + } + ] + }, + { + "httpMethod": "GET", + "summary": "Get bridge details.", + "nickname": "get", + "responseClass": "Bridge", + "parameters": [ + { + "name": "bridgeId", + "description": "Bridge's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Bridge not found" + } + ] + }, + { + "httpMethod": "DELETE", + "summary": "Shut down a bridge.", + "notes": "If any channels are in this bridge, they will be removed and resume whatever they were doing beforehand.", + "nickname": "destroy", + "responseClass": "void", + "parameters": [ + { + "name": "bridgeId", + "description": "Bridge's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Bridge not found" + } + ] + } + ] + }, + { + "path": "/bridges/{bridgeId}/addChannel", + "description": "Add a channel to a bridge", + "operations": [ + { + "httpMethod": "POST", + "summary": "Add a channel to a bridge.", + "nickname": "addChannel", + "responseClass": "void", + "parameters": [ + { + "name": "bridgeId", + "description": "Bridge's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "channel", + "description": "Ids of channels to add to bridge", + "paramType": "query", + "required": true, + "allowMultiple": true, + "dataType": "string" + }, + { + "name": "role", + "description": "Channel's role in the bridge", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 400, + "reason": "Channel not found" + }, + { + "code": 404, + "reason": "Bridge not found" + }, + { + "code": 409, + "reason": "Bridge not in Stasis application; Channel currently recording" + }, + { + "code": 422, + "reason": "Channel not in Stasis application" + } + ] + } + ] + }, + { + "path": "/bridges/{bridgeId}/removeChannel", + "description": "Remove a channel from a bridge", + "operations": [ + { + "httpMethod": "POST", + "summary": "Remove a channel from a bridge.", + "nickname": "removeChannel", + "responseClass": "void", + "parameters": [ + { + "name": "bridgeId", + "description": "Bridge's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "channel", + "description": "Ids of channels to remove from bridge", + "paramType": "query", + "required": true, + "allowMultiple": true, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 400, + "reason": "Channel not found" + }, + { + "code": 404, + "reason": "Bridge not found" + }, + { + "code": 409, + "reason": "Bridge not in Stasis application" + }, + { + "code": 422, + "reason": "Channel not in this bridge" + } + ] + } + ] + }, + { + "path": "/bridges/{bridgeId}/moh", + "description": "Play music on hold to a bridge", + "operations": [ + { + "httpMethod": "POST", + "summary": "Play music on hold to a bridge or change the MOH class that is playing.", + "nickname": "startMoh", + "responseClass": "void", + "parameters": [ + { + "name": "bridgeId", + "description": "Bridge's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "mohClass", + "description": "Channel's id", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Bridge not found" + }, + { + "code": 409, + "reason": "Bridge not in Stasis application" + } + ] + }, + { + "httpMethod": "DELETE", + "summary": "Stop playing music on hold to a bridge.", + "notes": "This will only stop music on hold being played via POST bridges/{bridgeId}/moh.", + "nickname": "stopMoh", + "responseClass": "void", + "parameters": [ + { + "name": "bridgeId", + "description": "Bridge's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Bridge not found" + }, + { + "code": 409, + "reason": "Bridge not in Stasis application" + } + ] + } + ] + }, + { + "path": "/bridges/{bridgeId}/play", + "description": "Play media to the participants of a bridge", + "operations": [ + { + "httpMethod": "POST", + "summary": "Start playback of media on a bridge.", + "notes": "The media URI may be any of a number of URI's. Currently sound:, recording:, number:, digits:, characters:, and tone: URI's are supported. This operation creates a playback resource that can be used to control the playback of media (pause, rewind, fast forward, etc.)", + "nickname": "play", + "responseClass": "Playback", + "parameters": [ + { + "name": "bridgeId", + "description": "Bridge's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "media", + "description": "Media's URI to play.", + "paramType": "query", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "lang", + "description": "For sounds, selects language for sound.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "offsetms", + "description": "Number of media to skip before playing.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "int", + "defaultValue": 0, + "allowableValues": { + "valueType": "RANGE", + "min": 0 + } + + }, + { + "name": "skipms", + "description": "Number of milliseconds to skip for forward/reverse operations.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "int", + "defaultValue": 3000, + "allowableValues": { + "valueType": "RANGE", + "min": 0 + } + }, + { + "name": "playbackId", + "description": "Playback Id.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Bridge not found" + }, + { + "code": 409, + "reason": "Bridge not in a Stasis application" + } + ] + } + ] + }, + { + "path": "/bridges/{bridgeId}/play/{playbackId}", + "description": "Play media to a bridge", + "operations": [ + { + "httpMethod": "POST", + "summary": "Start playback of media on a bridge.", + "notes": "The media URI may be any of a number of URI's. Currently sound: and recording: URI's are supported. This operation creates a playback resource that can be used to control the playback of media (pause, rewind, fast forward, etc.)", + "nickname": "playWithId", + "responseClass": "Playback", + "parameters": [ + { + "name": "bridgeId", + "description": "Bridge's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "playbackId", + "description": "Playback ID.", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "media", + "description": "Media's URI to play.", + "paramType": "query", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "lang", + "description": "For sounds, selects language for sound.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "offsetms", + "description": "Number of media to skip before playing.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "int", + "defaultValue": 0, + "allowableValues": { + "valueType": "RANGE", + "min": 0 + } + }, + { + "name": "skipms", + "description": "Number of milliseconds to skip for forward/reverse operations.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "int", + "defaultValue": 3000, + "allowableValues": { + "valueType": "RANGE", + "min": 0 + } + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Bridge not found" + }, + { + "code": 409, + "reason": "Bridge not in a Stasis application" + } + ] + + } + ] + }, + { + "path": "/bridges/{bridgeId}/record", + "description": "Record audio on a bridge", + "operations": [ + { + "httpMethod": "POST", + "summary": "Start a recording.", + "notes": "This records the mixed audio from all channels participating in this bridge.", + "nickname": "record", + "responseClass": "LiveRecording", + "parameters": [ + { + "name": "bridgeId", + "description": "Bridge's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "name", + "description": "Recording's filename", + "paramType": "query", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "format", + "description": "Format to encode audio in", + "paramType": "query", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "maxDurationSeconds", + "description": "Maximum duration of the recording, in seconds. 0 for no limit.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "int", + "defaultValue": 0, + "allowableValues": { + "valueType": "RANGE", + "min": 0 + } + }, + { + "name": "maxSilenceSeconds", + "description": "Maximum duration of silence, in seconds. 0 for no limit.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "int", + "defaultValue": 0, + "allowableValues": { + "valueType": "RANGE", + "min": 0 + } + }, + { + "name": "ifExists", + "description": "Action to take if a recording with the same name already exists.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string", + "defaultValue": "fail", + "allowableValues": { + "valueType": "LIST", + "values": [ + "fail", + "overwrite", + "append" + ] + } + }, + { + "name": "beep", + "description": "Play beep when recording begins", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "boolean", + "defaultValue": false + }, + { + "name": "terminateOn", + "description": "DTMF input to terminate recording.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string", + "defaultValue": "none", + "allowableValues": { + "valueType": "LIST", + "values": [ + "none", + "any", + "*", + "#" + ] + } + } + ], + "errorResponses": [ + { + "code": 400, + "reason": "Invalid parameters" + }, + { + "code": 404, + "reason": "Bridge not found" + }, + { + "code": 409, + "reason": "Bridge is not in a Stasis application; A recording with the same name already exists on the system and can not be overwritten because it is in progress or ifExists=fail" + }, + { + "code": 422, + "reason": "The format specified is unknown on this system" + } + ] + } + ] + } + ], + "models": { + "Bridge": { + "id": "Bridge", + "description": "The merging of media from one or more channels.\n\nEveryone on the bridge receives the same audio.", + "properties": { + "id": { + "type": "string", + "description": "Unique identifier for this bridge", + "required": true + }, + "technology": { + "type": "string", + "description": "Name of the current bridging technology", + "required": true + }, + "bridge_type": { + "type": "string", + "description": "Type of bridge technology", + "required": true, + "allowableValues": { + "valueType": "LIST", + "values": [ + "mixing", + "holding" + ] + } + }, + "bridge_class": { + "type": "string", + "description": "Bridging class", + "required": true + }, + "creator": { + "type": "string", + "description": "Entity that created the bridge", + "required": true + }, + "name": { + "type": "string", + "description": "Name the creator gave the bridge", + "required": true + }, + "channels": { + "type": "List[string]", + "description": "Ids of channels participating in this bridge", + "required": true + } + } + } + } +} diff --git a/codegen/src/main/resources/codegen-data/ari_1_4_0/channels.json b/codegen/src/main/resources/codegen-data/ari_1_4_0/channels.json new file mode 100644 index 00000000..77ad3331 --- /dev/null +++ b/codegen/src/main/resources/codegen-data/ari_1_4_0/channels.json @@ -0,0 +1,1456 @@ +{ + "_copyright": "Copyright (C) 2012 - 2013, Digium, Inc.", + "_author": "David M. Lee, II ", + "_svn_revision": "$Revision$", + "apiVersion": "1.4.0", + "swaggerVersion": "1.1", + "basePath": "http://localhost:8088/stasis", + "resourcePath": "/api-docs/channels.{format}", + "apis": [ + { + "path": "/channels", + "description": "Active channels", + "operations": [ + { + "httpMethod": "GET", + "summary": "List all active channels in Asterisk.", + "nickname": "list", + "responseClass": "List[Channel]" + }, + { + "httpMethod": "POST", + "summary": "Create a new channel (originate).", + "notes": "The new channel is created immediately and a snapshot of it returned. If a Stasis application is provided it will be automatically subscribed to the originated channel for further events and updates.", + "nickname": "originate", + "responseClass": "Channel", + "parameters": [ + { + "name": "endpoint", + "description": "Endpoint to call.", + "paramType": "query", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "extension", + "description": "The extension to dial after the endpoint answers", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "context", + "description": "The context to dial after the endpoint answers. If omitted, uses 'default'", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "priority", + "description": "The priority to dial after the endpoint answers. If omitted, uses 1", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "long" + }, + { + "name": "app", + "description": "The application that is subscribed to the originated channel, and passed to the Stasis application.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "appArgs", + "description": "The application arguments to pass to the Stasis application.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "callerId", + "description": "CallerID to use when dialing the endpoint or extension.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "timeout", + "description": "Timeout (in seconds) before giving up dialing, or -1 for no timeout.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "int", + "defaultValue": 30 + }, + { + "name": "variables", + "description": "The \"variables\" key in the body object holds variable key/value pairs to set on the channel on creation. Other keys in the body object are interpreted as query parameters. Ex. { \"endpoint\": \"SIP/Alice\", \"variables\": { \"CALLERID(name)\": \"Alice\" } }", + "paramType": "body", + "required": false, + "dataType": "containers", + "allowMultiple": false + }, + { + "name": "channelId", + "description": "The unique id to assign the channel on creation.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "otherChannelId", + "description": "The unique id to assign the second channel when using local channels.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 400, + "reason": "Invalid parameters for originating a channel." + } + ] + } + ] + }, + { + "path": "/channels/{channelId}", + "description": "Active channel", + "operations": [ + { + "httpMethod": "GET", + "summary": "Channel details.", + "nickname": "get", + "responseClass": "Channel", + "parameters": [ + { + "name": "channelId", + "description": "Channel's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Channel not found" + } + ] + }, + { + "httpMethod": "POST", + "summary": "Create a new channel (originate with id).", + "notes": "The new channel is created immediately and a snapshot of it returned. If a Stasis application is provided it will be automatically subscribed to the originated channel for further events and updates.", + "nickname": "originateWithId", + "responseClass": "Channel", + "parameters": [ + { + "name": "channelId", + "description": "The unique id to assign the channel on creation.", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "endpoint", + "description": "Endpoint to call.", + "paramType": "query", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "extension", + "description": "The extension to dial after the endpoint answers", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "context", + "description": "The context to dial after the endpoint answers. If omitted, uses 'default'", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "priority", + "description": "The priority to dial after the endpoint answers. If omitted, uses 1", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "long" + }, + { + "name": "app", + "description": "The application that is subscribed to the originated channel, and passed to the Stasis application.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "appArgs", + "description": "The application arguments to pass to the Stasis application.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "callerId", + "description": "CallerID to use when dialing the endpoint or extension.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "timeout", + "description": "Timeout (in seconds) before giving up dialing, or -1 for no timeout.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "int", + "defaultValue": 30 + }, + { + "name": "variables", + "description": "The \"variables\" key in the body object holds variable key/value pairs to set on the channel on creation. Other keys in the body object are interpreted as query parameters. Ex. { \"endpoint\": \"SIP/Alice\", \"variables\": { \"CALLERID(name)\": \"Alice\" } }", + "paramType": "body", + "required": false, + "dataType": "containers", + "allowMultiple": false + }, + { + "name": "otherChannelId", + "description": "The unique id to assign the second channel when using local channels.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 400, + "reason": "Invalid parameters for originating a channel." + } + ] + + }, + { + "httpMethod": "DELETE", + "summary": "Delete (i.e. hangup) a channel.", + "nickname": "hangup", + "responseClass": "void", + "parameters": [ + { + "name": "channelId", + "description": "Channel's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "reason", + "description": "Reason for hanging up the channel", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string", + "defalutValue": "normal", + "allowableValues": { + "valueType": "LIST", + "values": [ + "normal", + "busy", + "congestion" + ] + } + } + ], + "errorResponses": [ + { + "code": 400, + "reason": "Invalid reason for hangup provided" + }, + { + "code": 404, + "reason": "Channel not found" + } + ] + } + ] + }, + { + "path": "/channels/{channelId}/continue", + "description": "Exit application; continue execution in the dialplan", + "operations": [ + { + "httpMethod": "POST", + "summary": "Exit application; continue execution in the dialplan.", + "nickname": "continueInDialplan", + "responseClass": "void", + "parameters": [ + { + "name": "channelId", + "description": "Channel's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "context", + "description": "The context to continue to.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "extension", + "description": "The extension to continue to.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "priority", + "description": "The priority to continue to.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "int" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Channel not found" + }, + { + "code": 409, + "reason": "Channel not in a Stasis application" + } + ] + } + ] + }, + { + "path": "/channels/{channelId}/answer", + "description": "Answer a channel", + "operations": [ + { + "httpMethod": "POST", + "summary": "Answer a channel.", + "nickname": "answer", + "responseClass": "void", + "parameters": [ + { + "name": "channelId", + "description": "Channel's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Channel not found" + }, + { + "code": 409, + "reason": "Channel not in a Stasis application" + } + ] + } + ] + }, + { + "path": "/channels/{channelId}/ring", + "description": "Send a ringing indication to a channel", + "operations": [ + { + "httpMethod": "POST", + "summary": "Indicate ringing to a channel.", + "nickname": "ring", + "responseClass": "void", + "parameters": [ + { + "name": "channelId", + "description": "Channel's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Channel not found" + }, + { + "code": 409, + "reason": "Channel not in a Stasis application" + } + ] + }, + { + "httpMethod": "DELETE", + "summary": "Stop ringing indication on a channel if locally generated.", + "nickname": "ringStop", + "responseClass": "void", + "parameters": [ + { + "name": "channelId", + "description": "Channel's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Channel not found" + }, + { + "code": 409, + "reason": "Channel not in a Stasis application" + } + ] + } + ] + }, + { + "path": "/channels/{channelId}/dtmf", + "description": "Send DTMF to a channel", + "operations": [ + { + "httpMethod": "POST", + "summary": "Send provided DTMF to a given channel.", + "nickname": "sendDTMF", + "responseClass": "void", + "parameters": [ + { + "name": "channelId", + "description": "Channel's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "dtmf", + "description": "DTMF To send.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "before", + "description": "Amount of time to wait before DTMF digits (specified in milliseconds) start.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "int", + "defaultValue": 0 + }, + { + "name": "between", + "description": "Amount of time in between DTMF digits (specified in milliseconds).", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "int", + "defaultValue": 100 + }, + { + "name": "duration", + "description": "Length of each DTMF digit (specified in milliseconds).", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "int", + "defaultValue": 100 + }, + { + "name": "after", + "description": "Amount of time to wait after DTMF digits (specified in milliseconds) end.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "int", + "defaultValue": 0 + } + ], + "errorResponses": [ + { + "code": 400, + "reason": "DTMF is required" + }, + { + "code": 404, + "reason": "Channel not found" + }, + { + "code": 409, + "reason": "Channel not in a Stasis application" + } + ] + } + ] + }, + { + "path": "/channels/{channelId}/mute", + "description": "Mute a channel", + "operations": [ + { + "httpMethod": "POST", + "summary": "Mute a channel.", + "nickname": "mute", + "responseClass": "void", + "parameters": [ + { + "name": "channelId", + "description": "Channel's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "direction", + "description": "Direction in which to mute audio", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string", + "defaultValue": "both", + "allowableValues": { + "valueType": "LIST", + "values": [ + "both", + "in", + "out" + ] + } + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Channel not found" + }, + { + "code": 409, + "reason": "Channel not in a Stasis application" + } + ] + }, + { + "httpMethod": "DELETE", + "summary": "Unmute a channel.", + "nickname": "unmute", + "responseClass": "void", + "parameters": [ + { + "name": "channelId", + "description": "Channel's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "direction", + "description": "Direction in which to unmute audio", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string", + "defaultValue": "both", + "allowableValues": { + "valueType": "LIST", + "values": [ + "both", + "in", + "out" + ] + } + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Channel not found" + }, + { + "code": 409, + "reason": "Channel not in a Stasis application" + } + ] + } + ] + }, + { + "path": "/channels/{channelId}/hold", + "description": "Put a channel on hold", + "operations": [ + { + "httpMethod": "POST", + "summary": "Hold a channel.", + "nickname": "hold", + "responseClass": "void", + "parameters": [ + { + "name": "channelId", + "description": "Channel's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Channel not found" + }, + { + "code": 409, + "reason": "Channel not in a Stasis application" + } + ] + }, + { + "httpMethod": "DELETE", + "summary": "Remove a channel from hold.", + "nickname": "unhold", + "responseClass": "void", + "parameters": [ + { + "name": "channelId", + "description": "Channel's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Channel not found" + }, + { + "code": 409, + "reason": "Channel not in a Stasis application" + } + ] + } + ] + }, + { + "path": "/channels/{channelId}/moh", + "description": "Play music on hold to a channel", + "operations": [ + { + "httpMethod": "POST", + "summary": "Play music on hold to a channel.", + "notes": "Using media operations such as /play on a channel playing MOH in this manner will suspend MOH without resuming automatically. If continuing music on hold is desired, the stasis application must reinitiate music on hold.", + "nickname": "startMoh", + "responseClass": "void", + "parameters": [ + { + "name": "channelId", + "description": "Channel's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "mohClass", + "description": "Music on hold class to use", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Channel not found" + }, + { + "code": 409, + "reason": "Channel not in a Stasis application" + } + ] + }, + { + "httpMethod": "DELETE", + "summary": "Stop playing music on hold to a channel.", + "nickname": "stopMoh", + "responseClass": "void", + "parameters": [ + { + "name": "channelId", + "description": "Channel's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Channel not found" + }, + { + "code": 409, + "reason": "Channel not in a Stasis application" + } + ] + } + ] + }, + { + "path": "/channels/{channelId}/silence", + "description": "Play silence to a channel", + "operations": [ + { + "httpMethod": "POST", + "summary": "Play silence to a channel.", + "notes": "Using media operations such as /play on a channel playing silence in this manner will suspend silence without resuming automatically.", + "nickname": "startSilence", + "responseClass": "void", + "parameters": [ + { + "name": "channelId", + "description": "Channel's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Channel not found" + }, + { + "code": 409, + "reason": "Channel not in a Stasis application" + } + ] + }, + { + "httpMethod": "DELETE", + "summary": "Stop playing silence to a channel.", + "nickname": "stopSilence", + "responseClass": "void", + "parameters": [ + { + "name": "channelId", + "description": "Channel's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Channel not found" + }, + { + "code": 409, + "reason": "Channel not in a Stasis application" + } + ] + } + ] + }, + { + "path": "/channels/{channelId}/play", + "description": "Play media to a channel", + "operations": [ + { + "httpMethod": "POST", + "summary": "Start playback of media.", + "notes": "The media URI may be any of a number of URI's. Currently sound:, recording:, number:, digits:, characters:, and tone: URI's are supported. This operation creates a playback resource that can be used to control the playback of media (pause, rewind, fast forward, etc.)", + "nickname": "play", + "responseClass": "Playback", + "parameters": [ + { + "name": "channelId", + "description": "Channel's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "media", + "description": "Media's URI to play.", + "paramType": "query", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "lang", + "description": "For sounds, selects language for sound.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "offsetms", + "description": "Number of media to skip before playing.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "int" + }, + { + "name": "skipms", + "description": "Number of milliseconds to skip for forward/reverse operations.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "int", + "defaultValue": 3000 + }, + { + "name": "playbackId", + "description": "Playback ID.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Channel not found" + }, + { + "code": 409, + "reason": "Channel not in a Stasis application" + } + ] + } + ] + }, + { + "path": "/channels/{channelId}/play/{playbackId}", + "description": "Play media to a channel", + "operations": [ + { + "httpMethod": "POST", + "summary": "Start playback of media and specify the playbackId.", + "notes": "The media URI may be any of a number of URI's. Currently sound: and recording: URI's are supported. This operation creates a playback resource that can be used to control the playback of media (pause, rewind, fast forward, etc.)", + "nickname": "playWithId", + "responseClass": "Playback", + "parameters": [ + { + "name": "channelId", + "description": "Channel's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "playbackId", + "description": "Playback ID.", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "media", + "description": "Media's URI to play.", + "paramType": "query", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "lang", + "description": "For sounds, selects language for sound.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "offsetms", + "description": "Number of media to skip before playing.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "int" + }, + { + "name": "skipms", + "description": "Number of milliseconds to skip for forward/reverse operations.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "int", + "defaultValue": 3000 + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Channel not found" + }, + { + "code": 409, + "reason": "Channel not in a Stasis application" + } + ] + } + ] + }, + { + "path": "/channels/{channelId}/record", + "description": "Record audio from a channel", + "operations": [ + { + "httpMethod": "POST", + "summary": "Start a recording.", + "notes": "Record audio from a channel. Note that this will not capture audio sent to the channel. The bridge itself has a record feature if that's what you want.", + "nickname": "record", + "responseClass": "LiveRecording", + "parameters": [ + { + "name": "channelId", + "description": "Channel's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "name", + "description": "Recording's filename", + "paramType": "query", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "format", + "description": "Format to encode audio in", + "paramType": "query", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "maxDurationSeconds", + "description": "Maximum duration of the recording, in seconds. 0 for no limit", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "int", + "defaultValue": 0, + "allowableValues": { + "valueType": "RANGE", + "min": 0 + } + }, + { + "name": "maxSilenceSeconds", + "description": "Maximum duration of silence, in seconds. 0 for no limit", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "int", + "defaultValue": 0, + "allowableValues": { + "valueType": "RANGE", + "min": 0 + } + }, + { + "name": "ifExists", + "description": "Action to take if a recording with the same name already exists.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string", + "defaultValue": "fail", + "allowableValues": { + "valueType": "LIST", + "values": [ + "fail", + "overwrite", + "append" + ] + } + }, + { + "name": "beep", + "description": "Play beep when recording begins", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "boolean", + "defaultValue": false + }, + { + "name": "terminateOn", + "description": "DTMF input to terminate recording", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string", + "defaultValue": "none", + "allowableValues": { + "valueType": "LIST", + "values": [ + "none", + "any", + "*", + "#" + ] + } + } + ], + "errorResponses": [ + { + "code": 400, + "reason": "Invalid parameters" + }, + { + "code": 404, + "reason": "Channel not found" + }, + { + "code": 409, + "reason": "Channel is not in a Stasis application; the channel is currently bridged with other hcannels; A recording with the same name already exists on the system and can not be overwritten because it is in progress or ifExists=fail" + }, + { + "code": 422, + "reason": "The format specified is unknown on this system" + } + ] + } + ] + }, + { + "path": "/channels/{channelId}/variable", + "description": "Variables on a channel", + "operations": [ + { + "httpMethod": "GET", + "summary": "Get the value of a channel variable or function.", + "nickname": "getChannelVar", + "responseClass": "Variable", + "parameters": [ + { + "name": "channelId", + "description": "Channel's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "variable", + "description": "The channel variable or function to get", + "paramType": "query", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 400, + "reason": "Missing variable parameter." + }, + { + "code": 404, + "reason": "Channel not found" + }, + { + "code": 409, + "reason": "Channel not in a Stasis application" + } + ] + }, + { + "httpMethod": "POST", + "summary": "Set the value of a channel variable or function.", + "nickname": "setChannelVar", + "responseClass": "void", + "parameters": [ + { + "name": "channelId", + "description": "Channel's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "variable", + "description": "The channel variable or function to set", + "paramType": "query", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "value", + "description": "The value to set the variable to", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 400, + "reason": "Missing variable parameter." + }, + { + "code": 404, + "reason": "Channel not found" + }, + { + "code": 409, + "reason": "Channel not in a Stasis application" + } + ] + } + ] + }, + { + "path": "/channels/{channelId}/snoop", + "description": "Snoop (spy/whisper) on a channel", + "operations": [ + { + "httpMethod": "POST", + "summary": "Start snooping.", + "notes": "Snoop (spy/whisper) on a specific channel.", + "nickname": "snoopChannel", + "responseClass": "Channel", + "parameters": [ + { + "name": "channelId", + "description": "Channel's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "spy", + "description": "Direction of audio to spy on", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string", + "defaultValue": "none", + "allowableValues": { + "valueType": "LIST", + "values": [ + "none", + "both", + "out", + "in" + ] + } + }, + { + "name": "whisper", + "description": "Direction of audio to whisper into", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string", + "defaultValue": "none", + "allowableValues": { + "valueType": "LIST", + "values": [ + "none", + "both", + "out", + "in" + ] + } + }, + { + "name": "app", + "description": "Application the snooping channel is placed into", + "paramType": "query", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "appArgs", + "description": "The application arguments to pass to the Stasis application", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "snoopId", + "description": "Unique ID to assign to snooping channel", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 400, + "reason": "Invalid parameters" + }, + { + "code": 404, + "reason": "Channel not found" + } + ] + } + ] + }, + { + "path": "/channels/{channelId}/snoop/{snoopId}", + "description": "Snoop (spy/whisper) on a channel", + "operations": [ + { + "httpMethod": "POST", + "summary": "Start snooping.", + "notes": "Snoop (spy/whisper) on a specific channel.", + "nickname": "snoopChannelWithId", + "responseClass": "Channel", + "parameters": [ + { + "name": "channelId", + "description": "Channel's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "snoopId", + "description": "Unique ID to assign to snooping channel", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "spy", + "description": "Direction of audio to spy on", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string", + "defaultValue": "none", + "allowableValues": { + "valueType": "LIST", + "values": [ + "none", + "both", + "out", + "in" + ] + } + }, + { + "name": "whisper", + "description": "Direction of audio to whisper into", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string", + "defaultValue": "none", + "allowableValues": { + "valueType": "LIST", + "values": [ + "none", + "both", + "out", + "in" + ] + } + }, + { + "name": "app", + "description": "Application the snooping channel is placed into", + "paramType": "query", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "appArgs", + "description": "The application arguments to pass to the Stasis application", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 400, + "reason": "Invalid parameters" + }, + { + "code": 404, + "reason": "Channel not found" + } + ] + } + ] + } + ], + "models": { + "Dialed": { + "id": "Dialed", + "description": "Dialed channel information.", + "properties": {} + }, + "DialplanCEP": { + "id": "DialplanCEP", + "description": "Dialplan location (context/extension/priority)", + "properties": { + "context": { + "required": true, + "type": "string", + "description": "Context in the dialplan" + }, + "exten": { + "required": true, + "type": "string", + "description": "Extension in the dialplan" + }, + "priority": { + "required": true, + "type": "long", + "description": "Priority in the dialplan" + } + } + }, + "CallerID": { + "id": "CallerID", + "description": "Caller identification", + "properties": { + "name": { + "required": true, + "type": "string" + }, + "number": { + "required": true, + "type": "string" + } + } + }, + "Channel": { + "id": "Channel", + "description": "A specific communication connection between Asterisk and an Endpoint.", + "properties": { + "id": { + "required": true, + "type": "string", + "description": "Unique identifier of the channel.\n\nThis is the same as the Uniqueid field in AMI." + }, + "name": { + "required": true, + "type": "string", + "description": "Name of the channel (i.e. SIP/foo-0000a7e3)" + }, + "state": { + "required": true, + "type": "string", + "allowableValues": { + "valueType": "LIST", + "values": [ + "Down", + "Rsrved", + "OffHook", + "Dialing", + "Ring", + "Ringing", + "Up", + "Busy", + "Dialing Offhook", + "Pre-ring", + "Unknown" + ] + } + }, + "caller": { + "required": true, + "type": "CallerID" + }, + "connected": { + "required": true, + "type": "CallerID" + }, + "accountcode": { + "required": true, + "type": "string" + }, + "dialplan": { + "required": true, + "type": "DialplanCEP", + "description": "Current location in the dialplan" + }, + "creationtime": { + "required": true, + "type": "Date", + "description": "Timestamp when channel was created" + } + } + } + } +} diff --git a/codegen/src/main/resources/codegen-data/ari_1_4_0/deviceStates.json b/codegen/src/main/resources/codegen-data/ari_1_4_0/deviceStates.json new file mode 100644 index 00000000..af03a8c8 --- /dev/null +++ b/codegen/src/main/resources/codegen-data/ari_1_4_0/deviceStates.json @@ -0,0 +1,151 @@ +{ + "_copyright": "Copyright (C) 2012 - 2013, Digium, Inc.", + "_author": "Kevin Harwell ", + "_svn_revision": "$Revision$", + "apiVersion": "1.4.0", + "swaggerVersion": "1.1", + "basePath": "http://localhost:8088/stasis", + "resourcePath": "/api-docs/deviceStates.{format}", + "apis": [ + { + "path": "/deviceStates", + "description": "Device states", + "operations": [ + { + "httpMethod": "GET", + "summary": "List all ARI controlled device states.", + "nickname": "list", + "responseClass": "List[DeviceState]" + } + ] + }, + { + "path": "/deviceStates/{deviceName}", + "description": "Device state", + "operations": [ + { + "httpMethod": "GET", + "summary": "Retrieve the current state of a device.", + "nickname": "get", + "responseClass": "DeviceState", + "parameters": [ + { + "name": "deviceName", + "description": "Name of the device", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ] + }, + { + "httpMethod": "PUT", + "summary": "Change the state of a device controlled by ARI. (Note - implicitly creates the device state).", + "nickname": "update", + "responseClass": "void", + "parameters": [ + { + "name": "deviceName", + "description": "Name of the device", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "deviceState", + "description": "Device state value", + "paramType": "query", + "required": true, + "allowMultiple": false, + "dataType": "string", + "allowableValues": { + "valueType": "LIST", + "values": [ + "NOT_INUSE", + "INUSE", + "BUSY", + "INVALID", + "UNAVAILABLE", + "RINGING", + "RINGINUSE", + "ONHOLD" + ] + } + + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Device name is missing" + }, + { + "code": 409, + "reason": "Uncontrolled device specified" + } + ] + }, + { + "httpMethod": "DELETE", + "summary": "Destroy a device-state controlled by ARI.", + "nickname": "delete", + "responseClass": "void", + "parameters": [ + { + "name": "deviceName", + "description": "Name of the device", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Device name is missing" + }, + { + "code": 409, + "reason": "Uncontrolled device specified" + } + ] + } + ] + } + ], + "models": { + "DeviceState": { + "id": "DeviceState", + "description": "Represents the state of a device.", + "properties": { + "name": { + "type": "string", + "description": "Name of the device.", + "required": true + }, + "state": { + "type": "string", + "description": "Device's state", + "required": true, + "allowableValues": { + "valueType": "LIST", + "values": [ + "UNKNOWN", + "NOT_INUSE", + "INUSE", + "BUSY", + "INVALID", + "UNAVAILABLE", + "RINGING", + "RINGINUSE", + "ONHOLD" + ] + } + } + } + } + } +} diff --git a/codegen/src/main/resources/codegen-data/ari_1_4_0/endpoints.json b/codegen/src/main/resources/codegen-data/ari_1_4_0/endpoints.json new file mode 100644 index 00000000..12b9f2e1 --- /dev/null +++ b/codegen/src/main/resources/codegen-data/ari_1_4_0/endpoints.json @@ -0,0 +1,117 @@ +{ + "_copyright": "Copyright (C) 2012 - 2013, Digium, Inc.", + "_author": "David M. Lee, II ", + "_svn_revision": "$Revision$", + "apiVersion": "1.4.0", + "swaggerVersion": "1.1", + "basePath": "http://localhost:8088/stasis", + "resourcePath": "/api-docs/endpoints.{format}", + "apis": [ + { + "path": "/endpoints", + "description": "Asterisk endpoints", + "operations": [ + { + "httpMethod": "GET", + "summary": "List all endpoints.", + "nickname": "list", + "responseClass": "List[Endpoint]" + } + ] + }, + { + "path": "/endpoints/{tech}", + "description": "Asterisk endpoints", + "operations": [ + { + "httpMethod": "GET", + "summary": "List available endoints for a given endpoint technology.", + "nickname": "listByTech", + "responseClass": "List[Endpoint]", + "parameters": [ + { + "name": "tech", + "description": "Technology of the endpoints (sip,iax2,...)", + "paramType": "path", + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Endpoints not found" + } + ] + } + ] + }, + { + "path": "/endpoints/{tech}/{resource}", + "description": "Single endpoint", + "operations": [ + { + "httpMethod": "GET", + "summary": "Details for an endpoint.", + "nickname": "get", + "responseClass": "Endpoint", + "parameters": [ + { + "name": "tech", + "description": "Technology of the endpoint", + "paramType": "path", + "dataType": "string" + }, + { + "name": "resource", + "description": "ID of the endpoint", + "paramType": "path", + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Endpoints not found" + } + ] + } + ] + } + ], + "models": { + "Endpoint": { + "id": "Endpoint", + "description": "An external device that may offer/accept calls to/from Asterisk.\n\nUnlike most resources, which have a single unique identifier, an endpoint is uniquely identified by the technology/resource pair.", + "properties": { + "technology": { + "type": "string", + "description": "Technology of the endpoint", + "required": true + }, + "resource": { + "type": "string", + "description": "Identifier of the endpoint, specific to the given technology.", + "required": true + }, + "state": { + "type": "string", + "description": "Endpoint's state", + "required": false, + "allowableValues": { + "valueType": "LIST", + "values": [ + "unknown", + "offline", + "online" + ] + } + }, + "channel_ids": { + "type": "List[string]", + "description": "Id's of channels associated with this endpoint", + "required": true + } + } + } + } +} diff --git a/codegen/src/main/resources/codegen-data/ari_1_4_0/events.json b/codegen/src/main/resources/codegen-data/ari_1_4_0/events.json new file mode 100644 index 00000000..cf93f4b0 --- /dev/null +++ b/codegen/src/main/resources/codegen-data/ari_1_4_0/events.json @@ -0,0 +1,676 @@ +{ + "_copyright": "Copyright (C) 2012 - 2013, Digium, Inc.", + "_author": "David M. Lee, II ", + "_svn_revision": "$Revision$", + "apiVersion": "1.4.0", + "swaggerVersion": "1.2", + "basePath": "http://localhost:8088/stasis", + "resourcePath": "/api-docs/events.{format}", + "apis": [ + { + "path": "/events", + "description": "Events from Asterisk to applications", + "operations": [ + { + "httpMethod": "GET", + "upgrade": "websocket", + "websocketProtocol": "ari", + "summary": "WebSocket connection for events.", + "nickname": "eventWebsocket", + "responseClass": "Message", + "parameters": [ + { + "name": "app", + "description": "Applications to subscribe to.", + "paramType": "query", + "required": true, + "allowMultiple": true, + "dataType": "string" + } + ] + } + ] + }, + { + "path": "/events/user/{eventName}", + "description": "Stasis application user events", + "operations": [ + { + "httpMethod": "POST", + "summary": "Generate a user event.", + "nickname": "userEvent", + "responseClass": "void", + "parameters": [ + { + "name": "eventName", + "description": "Event name", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "application", + "description": "The name of the application that will receive this event", + "paramType": "query", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "source", + "description": "URI for event source (channel:{channelId}, bridge:{bridgeId}, endpoint:{tech}/{resource}, deviceState:{deviceName}", + "paramType": "query", + "required": false, + "allowMultiple": true, + "dataType": "string" + }, + { + "name": "variables", + "description": "The \"variables\" key in the body object holds custom key/value pairs to add to the user event. Ex. { \"variables\": { \"key\": \"value\" } }", + "paramType": "body", + "required": false, + "allowMultiple": false, + "dataType": "containers" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Application does not exist." + }, + { + "code": 422, + "reason": "Event source not found." + }, + { + "code": 400, + "reason": "Invalid even tsource URI or userevent data." + } + ] + } + ] + } + ], + "models": { + "Message": { + "id": "Message", + "description": "Base type for errors and events", + "discriminator": "type", + "properties": { + "type": { + "type": "string", + "required": true, + "description": "Indicates the type of this message." + } + }, + "subTypes": [ + "MissingParams", + "Event" + ] + }, + "MissingParams": { + "id": "MissingParams", + "description": "Error event sent when required params are missing.", + "properties": { + "params": { + "required": true, + "type": "List[string]", + "description": "A list of the missing parameters" + } + } + }, + "Event": { + "id": "Event", + "description": "Base type for asynchronous events from Asterisk.", + "properties": { + "application": { + "type": "string", + "description": "Name of the application receiving the event.", + "required": true + }, + "timestamp": { + "type": "Date", + "description": "Time at which this event was created.", + "required": false + } + }, + "subTypes": [ + "DeviceStateChanged", + "PlaybackStarted", + "PlaybackFinished", + "RecordingStarted", + "RecordingFinished", + "RecordingFailed", + "ApplicationReplaced", + "BridgeCreated", + "BridgeDestroyed", + "BridgeMerged", + "BridgeBlindTransfer", + "BridgeAttendedTransfer", + "ChannelCreated", + "ChannelDestroyed", + "ChannelEnteredBridge", + "ChannelLeftBridge", + "ChannelStateChange", + "ChannelDtmfReceived", + "ChannelDialplan", + "ChannelCallerId", + "ChannelUserevent", + "ChannelHangupRequest", + "ChannelVarset", + "ChannelTalkingStarted", + "ChannelTalkingFinished", + "EndpointStateChange", + "Dial", + "StasisEnd", + "StasisStart" + ] + }, + "DeviceStateChanged": { + "id": "DeviceStateChanged", + "description": "Notification that a device state has changed.", + "properties": { + "device_state": { + "type": "DeviceState", + "description": "Device state object", + "required": true + } + } + }, + "PlaybackStarted": { + "id": "PlaybackStarted", + "description": "Event showing the start of a media playback operation.", + "properties": { + "playback": { + "type": "Playback", + "description": "Playback control object", + "required": true + } + } + }, + "PlaybackFinished": { + "id": "PlaybackFinished", + "description": "Event showing the completion of a media playback operation.", + "properties": { + "playback": { + "type": "Playback", + "description": "Playback control object", + "required": true + } + } + }, + "RecordingStarted": { + "id": "RecordingStarted", + "extends": "Event", + "description": "Event showing the start of a recording operation.", + "properties": { + "recording": { + "type": "LiveRecording", + "description": "Recording control object", + "required": true + } + } + }, + "RecordingFinished": { + "id": "RecordingFinished", + "extends": "Event", + "description": "Event showing the completion of a recording operation.", + "properties": { + "recording": { + "type": "LiveRecording", + "description": "Recording control object", + "required": true + } + } + }, + "RecordingFailed": { + "id": "RecordingFailed", + "extends": "Event", + "description": "Event showing failure of a recording operation.", + "properties": { + "recording": { + "type": "LiveRecording", + "description": "Recording control object", + "required": true + } + } + }, + "ApplicationReplaced": { + "id": "ApplicationReplaced", + "description": "Notification that another WebSocket has taken over for an application.\n\nAn application may only be subscribed to by a single WebSocket at a time. If multiple WebSockets attempt to subscribe to the same application, the newer WebSocket wins, and the older one receives this event.", + "properties": {} + }, + "BridgeCreated": { + "id": "BridgeCreated", + "description": "Notification that a bridge has been created.", + "properties": { + "bridge": { + "required": true, + "type": "Bridge" + } + } + }, + "BridgeDestroyed": { + "id": "BridgeDestroyed", + "description": "Notification that a bridge has been destroyed.", + "properties": { + "bridge": { + "required": true, + "type": "Bridge" + } + } + }, + "BridgeMerged": { + "id": "BridgeMerged", + "description": "Notification that one bridge has merged into another.", + "properties": { + "bridge": { + "required": true, + "type": "Bridge" + }, + "bridge_from": { + "required": true, + "type": "Bridge" + } + } + }, + "BridgeBlindTransfer": { + "id": "BridgeBlindTransfer", + "description": "Notification that a blind transfer has occurred.", + "properties": { + "channel": { + "description": "The channel performing the blind transfer", + "required": true, + "type": "Channel" + }, + "exten": { + "description": "The extension transferred to", + "required": true, + "type": "string" + }, + "context": { + "description": "The context transferred to", + "required": true, + "type": "string" + }, + "result": { + "description": "The result of the transfer attempt", + "required": true, + "type": "string" + }, + "is_external": { + "description": "Whether the transfer was externally initiated or not", + "required": true, + "type": "boolean" + }, + "bridge": { + "description": "The bridge being transferred", + "type": "Bridge" + } + } + }, + "BridgeAttendedTransfer": { + "id": "BridgeAttendedTransfer", + "description": "Notification that an attended transfer has occurred.", + "properties": { + "transferer_first_leg": { + "description": "First leg of the transferer", + "required": true, + "type": "Channel" + }, + "transferer_second_leg": { + "description": "Second leg of the transferer", + "required": true, + "type": "Channel" + }, + "result": { + "description": "The result of the transfer attempt", + "required": true, + "type": "string" + }, + "is_external": { + "description": "Whether the transfer was externally initiated or not", + "required": true, + "type": "boolean" + }, + "transferer_first_leg_bridge": { + "description": "Bridge the transferer first leg is in", + "type": "Bridge" + }, + "transferer_second_leg_bridge": { + "description": "Bridge the transferer second leg is in", + "type": "Bridge" + }, + "destination_type": { + "description": "How the transfer was accomplished", + "required": true, + "type": "string" + }, + "destination_bridge": { + "description": "Bridge that survived the merge result", + "type": "string" + }, + "destination_application": { + "description": "Application that has been transferred into", + "type": "string" + }, + "destination_link_first_leg": { + "description": "First leg of a link transfer result", + "type": "Channel" + }, + "destination_link_second_leg": { + "description": "Second leg of a link transfer result", + "type": "Channel" + }, + "destination_threeway_channel": { + "description": "Transferer channel that survived the threeway result", + "type": "Channel" + }, + "destination_threeway_bridge": { + "description": "Bridge that survived the threeway result", + "type": "Bridge" + } + } + }, + "ChannelCreated": { + "id": "ChannelCreated", + "description": "Notification that a channel has been created.", + "properties": { + "channel": { + "required": true, + "type": "Channel" + } + } + }, + "ChannelDestroyed": { + "id": "ChannelDestroyed", + "description": "Notification that a channel has been destroyed.", + "properties": { + "cause": { + "required": true, + "description": "Integer representation of the cause of the hangup", + "type": "int" + }, + "cause_txt": { + "required": true, + "description": "Text representation of the cause of the hangup", + "type": "string" + }, + "channel": { + "required": true, + "type": "Channel" + } + } + }, + "ChannelEnteredBridge": { + "id": "ChannelEnteredBridge", + "description": "Notification that a channel has entered a bridge.", + "properties": { + "bridge": { + "required": true, + "type": "Bridge" + }, + "channel": { + "type": "Channel" + } + } + }, + "ChannelLeftBridge": { + "id": "ChannelLeftBridge", + "description": "Notification that a channel has left a bridge.", + "properties": { + "bridge": { + "required": true, + "type": "Bridge" + }, + "channel": { + "required": true, + "type": "Channel" + } + } + }, + "ChannelStateChange": { + "id": "ChannelStateChange", + "description": "Notification of a channel's state change.", + "properties": { + "channel": { + "required": true, + "type": "Channel" + } + } + }, + "ChannelDtmfReceived": { + "id": "ChannelDtmfReceived", + "description": "DTMF received on a channel.\n\nThis event is sent when the DTMF ends. There is no notification about the start of DTMF", + "properties": { + "digit": { + "required": true, + "type": "string", + "description": "DTMF digit received (0-9, A-E, # or *)" + }, + "duration_ms": { + "required": true, + "type": "int", + "description": "Number of milliseconds DTMF was received" + }, + "channel": { + "required": true, + "type": "Channel", + "description": "The channel on which DTMF was received" + } + } + }, + "ChannelDialplan": { + "id": "ChannelDialplan", + "description": "Channel changed location in the dialplan.", + "properties": { + "channel": { + "required": true, + "type": "Channel", + "description": "The channel that changed dialplan location." + }, + "dialplan_app": { + "required": true, + "type": "string", + "description": "The application about to be executed." + }, + "dialplan_app_data": { + "required": true, + "type": "string", + "description": "The data to be passed to the application." + } + } + }, + "ChannelCallerId": { + "id": "ChannelCallerId", + "description": "Channel changed Caller ID.", + "properties": { + "caller_presentation": { + "required": true, + "type": "int", + "description": "The integer representation of the Caller Presentation value." + }, + "caller_presentation_txt": { + "required": true, + "type": "string", + "description": "The text representation of the Caller Presentation value." + }, + "channel": { + "required": true, + "type": "Channel", + "description": "The channel that changed Caller ID." + } + } + }, + "ChannelUserevent": { + "id": "ChannelUserevent", + "description": "User-generated event with additional user-defined fields in the object.", + "properties": { + "eventname": { + "required": true, + "type": "string", + "description": "The name of the user event." + }, + "channel": { + "required": false, + "type": "Channel", + "description": "A channel that is signaled with the user event." + }, + "bridge": { + "required": false, + "type": "Bridge", + "description": "A bridge that is signaled with the user event." + }, + "endpoint": { + "required": false, + "type": "Endpoint", + "description": "A endpoint that is signaled with the user event." + }, + "userevent": { + "required": true, + "type": "object", + "description": "Custom Userevent data" + } + } + }, + "ChannelHangupRequest": { + "id": "ChannelHangupRequest", + "description": "A hangup was requested on the channel.", + "properties": { + "cause": { + "type": "int", + "description": "Integer representation of the cause of the hangup." + }, + "soft": { + "type": "boolean", + "description": "Whether the hangup request was a soft hangup request." + }, + "channel": { + "required": true, + "type": "Channel", + "description": "The channel on which the hangup was requested." + } + } + }, + "ChannelVarset": { + "id": "ChannelVarset", + "description": "Channel variable changed.", + "properties": { + "variable": { + "required": true, + "type": "string", + "description": "The variable that changed." + }, + "value": { + "required": true, + "type": "string", + "description": "The new value of the variable." + }, + "channel": { + "required": false, + "type": "Channel", + "description": "The channel on which the variable was set.\n\nIf missing, the variable is a global variable." + } + } + }, + "ChannelTalkingStarted": { + "id": "ChannelTalkingStarted", + "description": "Talking was detected on the channel.", + "properties": { + "channel": { + "required": true, + "type": "Channel", + "description": "The channel on which talking started." + } + } + }, + "ChannelTalkingFinished": { + "id": "ChannelTalkingFinished", + "description": "Talking is no longer detected on the channel.", + "properties": { + "channel": { + "required": true, + "type": "Channel", + "description": "The channel on which talking completed." + }, + "duration": { + "required": true, + "type": "int", + "description": "The length of time, in milliseconds, that talking was detected on the channel" + } + } + }, + "EndpointStateChange": { + "id": "EndpointStateChange", + "description": "Endpoint state changed.", + "properties": { + "endpoint": { + "required": true, + "type": "Endpoint" + } + } + }, + "Dial": { + "id": "Dial", + "description": "Dialing state has changed.", + "properties": { + "caller": { + "required": false, + "type": "Channel", + "description": "The calling channel." + }, + "peer": { + "required": true, + "type": "Channel", + "description": "The dialed channel." + }, + "forward": { + "required": false, + "type": "string", + "description": "Forwarding target requested by the original dialed channel." + }, + "forwarded": { + "required": false, + "type": "Channel", + "description": "Channel that the caller has been forwarded to." + }, + "dialstring": { + "required": false, + "type": "string", + "description": "The dial string for calling the peer channel." + }, + "dialstatus": { + "required": true, + "type": "string", + "description": "Current status of the dialing attempt to the peer." + } + } + }, + "StasisEnd": { + "id": "StasisEnd", + "description": "Notification that a channel has left a Stasis application.", + "properties": { + "channel": { + "required": true, + "type": "Channel" + } + } + }, + "StasisStart": { + "id": "StasisStart", + "description": "Notification that a channel has entered a Stasis application.", + "properties": { + "args": { + "required": true, + "type": "List[string]", + "description": "Arguments to the application" + }, + "channel": { + "required": true, + "type": "Channel" + } + } + } + } +} diff --git a/codegen/src/main/resources/codegen-data/ari_1_4_0/mailboxes.json b/codegen/src/main/resources/codegen-data/ari_1_4_0/mailboxes.json new file mode 100644 index 00000000..63392c6f --- /dev/null +++ b/codegen/src/main/resources/codegen-data/ari_1_4_0/mailboxes.json @@ -0,0 +1,134 @@ +{ + "_copyright": "Copyright (C) 2013, Digium, Inc.", + "_author": "Jonathan Rose ", + "_svn_revision": "$Revision$", + "apiVersion": "1.4.0", + "swaggerVersion": "1.1", + "basePath": "http://localhost:8088/stasis", + "resourcePath": "/api-docs/mailboxes.{format}", + "apis": [ + { + "path": "/mailboxes", + "description": "Mailboxes", + "operations": [ + { + "httpMethod": "GET", + "summary": "List all mailboxes.", + "nickname": "list", + "responseClass": "List[Mailbox]" + } + ] + }, + { + "path": "/mailboxes/{mailboxName}", + "description": "Mailbox state", + "operations": [ + { + "httpMethod": "GET", + "summary": "Retrieve the current state of a mailbox.", + "nickname": "get", + "responseClass": "Mailbox", + "parameters": [ + { + "name": "mailboxName", + "description": "Name of the mailbox", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Mailbox not found" + } + ] + }, + { + "httpMethod": "PUT", + "summary": "Change the state of a mailbox. (Note - implicitly creates the mailbox).", + "nickname": "update", + "responseClass": "void", + "parameters": [ + { + "name": "mailboxName", + "description": "Name of the mailbox", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "oldMessages", + "description": "Count of old messages in the mailbox", + "paramType": "query", + "required": true, + "allowMultiple": false, + "dataType": "int" + }, + { + "name": "newMessages", + "description": "Count of new messages in the mailbox", + "paramType": "query", + "required": true, + "allowMultiple": false, + "dataType": "int" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Mailbox not found" + } + ] + }, + { + "httpMethod": "DELETE", + "summary": "Destroy a mailbox.", + "nickname": "delete", + "responseClass": "void", + "parameters": [ + { + "name": "mailboxName", + "description": "Name of the mailbox", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Mailbox not found" + } + ] + } + ] + } + ], + "models": { + "Mailbox": { + "id": "Mailbox", + "description": "Represents the state of a mailbox.", + "properties": { + "name": { + "type": "string", + "description": "Name of the mailbox.", + "required": true + }, + "old_messages": { + "type": "int", + "description": "Count of old messages in the mailbox.", + "required": true + }, + "new_messages": { + "type": "int", + "description": "Count of new messages in the mailbox.", + "required": true + } + } + } + } +} diff --git a/codegen/src/main/resources/codegen-data/ari_1_4_0/playbacks.json b/codegen/src/main/resources/codegen-data/ari_1_4_0/playbacks.json new file mode 100644 index 00000000..9c4029cf --- /dev/null +++ b/codegen/src/main/resources/codegen-data/ari_1_4_0/playbacks.json @@ -0,0 +1,155 @@ +{ + "_copyright": "Copyright (C) 2012 - 2013, Digium, Inc.", + "_author": "David M. Lee, II ", + "_svn_revision": "$Revision$", + "apiVersion": "1.4.0", + "swaggerVersion": "1.1", + "basePath": "http://localhost:8088/stasis", + "resourcePath": "/api-docs/playbacks.{format}", + "apis": [ + { + "path": "/playbacks/{playbackId}", + "description": "Control object for a playback operation.", + "operations": [ + { + "httpMethod": "GET", + "summary": "Get a playback's details.", + "nickname": "get", + "responseClass": "Playback", + "parameters": [ + { + "name": "playbackId", + "description": "Playback's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "The playback cannot be found" + } + ] + }, + { + "httpMethod": "DELETE", + "summary": "Stop a playback.", + "nickname": "stop", + "responseClass": "void", + "parameters": [ + { + "name": "playbackId", + "description": "Playback's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "The playback cannot be found" + } + ] + } + ] + }, + { + "path": "/playbacks/{playbackId}/control", + "description": "Control object for a playback operation.", + "operations": [ + { + "httpMethod": "POST", + "summary": "Control a playback.", + "nickname": "control", + "responseClass": "void", + "parameters": [ + { + "name": "playbackId", + "description": "Playback's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "operation", + "description": "Operation to perform on the playback.", + "paramType": "query", + "required": true, + "allowMultiple": false, + "dataType": "string", + "allowableValues": { + "valueType": "LIST", + "values": [ + "restart", + "pause", + "unpause", + "reverse", + "forward" + ] + } + } + ], + "errorResponses": [ + { + "code": 400, + "reason": "The provided operation parameter was invalid" + }, + { + "code": 404, + "reason": "The playback cannot be found" + }, + { + "code": 409, + "reason": "The operation cannot be performed in the playback's current state" + } +] + } + ] + } + ], + "models": { + "Playback": { + "id": "Playback", + "description": "Object representing the playback of media to a channel", + "properties": { + "id": { + "type": "string", + "description": "ID for this playback operation", + "required": true + }, + "media_uri": { + "type": "string", + "description": "URI for the media to play back.", + "required": true + }, + "target_uri": { + "type": "string", + "description": "URI for the channel or bridge to play the media on", + "required": true + }, + "language": { + "type": "string", + "description": "For media types that support multiple languages, the language requested for playback." + }, + "state": { + "type": "string", + "description": "Current state of the playback operation.", + "required": true, + "allowableValues": { + "valueType": "LIST", + "values": [ + "queued", + "playing", + "complete" + ] + } + } + } + } + } +} diff --git a/codegen/src/main/resources/codegen-data/ari_1_4_0/recordings.json b/codegen/src/main/resources/codegen-data/ari_1_4_0/recordings.json new file mode 100644 index 00000000..1f825a2b --- /dev/null +++ b/codegen/src/main/resources/codegen-data/ari_1_4_0/recordings.json @@ -0,0 +1,331 @@ +{ + "_copyright": "Copyright (C) 2012 - 2013, Digium, Inc.", + "_author": "David M. Lee, II ", + "_svn_revision": "$Revision$", + "apiVersion": "1.4.0", + "swaggerVersion": "1.1", + "basePath": "http://localhost:8088/stasis", + "resourcePath": "/api-docs/recordings.{format}", + "apis": [ + { + "path": "/recordings/stored", + "description": "Recordings", + "operations": [ + { + "httpMethod": "GET", + "summary": "List recordings that are complete.", + "nickname": "listStored", + "responseClass": "List[StoredRecording]" + } + ] + }, + { + "path": "/recordings/stored/{recordingName}", + "description": "Individual recording", + "operations": [ + { + "httpMethod": "GET", + "summary": "Get a stored recording's details.", + "nickname": "getStored", + "responseClass": "StoredRecording", + "parameters": [ + { + "name": "recordingName", + "description": "The name of the recording", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Recording not found" + } + ] + }, + { + "httpMethod": "DELETE", + "summary": "Delete a stored recording.", + "nickname": "deleteStored", + "responseClass": "void", + "parameters": [ + { + "name": "recordingName", + "description": "The name of the recording", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Recording not found" + } + ] + } + ] + }, + { + "path": "/recordings/live/{recordingName}", + "description": "A recording that is in progress", + "operations": [ + { + "httpMethod": "GET", + "summary": "List live recordings.", + "nickname": "getLive", + "responseClass": "LiveRecording", + "parameters": [ + { + "name": "recordingName", + "description": "The name of the recording", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Recording not found" + } + ] + }, + { + "httpMethod": "DELETE", + "summary": "Stop a live recording and discard it.", + "nickname": "cancel", + "responseClass": "void", + "parameters": [ + { + "name": "recordingName", + "description": "The name of the recording", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Recording not found" + } + ] + } + ] + }, + { + "path": "/recordings/live/{recordingName}/stop", + "operations": [ + { + "httpMethod": "POST", + "summary": "Stop a live recording and store it.", + "nickname": "stop", + "responseClass": "void", + "parameters": [ + { + "name": "recordingName", + "description": "The name of the recording", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Recording not found" + } + ] + } + ] + }, + { + "path": "/recordings/live/{recordingName}/pause", + "operations": [ + { + "httpMethod": "POST", + "summary": "Pause a live recording.", + "notes": "Pausing a recording suspends silence detection, which will be restarted when the recording is unpaused. Paused time is not included in the accounting for maxDurationSeconds.", + "nickname": "pause", + "responseClass": "void", + "parameters": [ + { + "name": "recordingName", + "description": "The name of the recording", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Recording not found" + }, + { + "code": 409, + "reason": "Recording not in session" + } + ] + }, + { + "httpMethod": "DELETE", + "summary": "Unpause a live recording.", + "nickname": "unpause", + "responseClass": "void", + "parameters": [ + { + "name": "recordingName", + "description": "The name of the recording", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Recording not found" + }, + { + "code": 409, + "reason": "Recording not in session" + } + ] + } + ] + }, + { + "path": "/recordings/live/{recordingName}/mute", + "operations": [ + { + "httpMethod": "POST", + "summary": "Mute a live recording.", + "notes": "Muting a recording suspends silence detection, which will be restarted when the recording is unmuted.", + "nickname": "mute", + "responseClass": "void", + "parameters": [ + { + "name": "recordingName", + "description": "The name of the recording", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Recording not found" + }, + { + "code": 409, + "reason": "Recording not in session" + } + ] + }, + { + "httpMethod": "DELETE", + "summary": "Unmute a live recording.", + "nickname": "unmute", + "responseClass": "void", + "parameters": [ + { + "name": "recordingName", + "description": "The name of the recording", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Recording not found" + }, + { + "code": 409, + "reason": "Recording not in session" + } + ] + } + ] + } + ], + "models": { + "StoredRecording": { + "id": "StoredRecording", + "description": "A past recording that may be played back.", + "properties": { + "name": { + "required": true, + "type": "string" + }, + "format": { + "required": true, + "type": "string" + } + } + }, + "LiveRecording": { + "id": "LiveRecording", + "description": "A recording that is in progress", + "properties": { + "name": { + "required": true, + "type": "string", + "description": "Base name for the recording" + }, + "format": { + "required": true, + "type": "string", + "description": "Recording format (wav, gsm, etc.)" + }, + "target_uri": { + "required": true, + "type": "string", + "description": "URI for the channel or bridge being recorded" + }, + "state": { + "required": false, + "type": "string", + "allowableValues": { + "valueType": "LIST", + "values": [ + "queued", + "recording", + "paused", + "done", + "failed", + "canceled" + ] + } + }, + "cause": { + "required": false, + "type": "string", + "description": "Cause for recording failure if failed" + }, + "state": { + "required": true, + "type": "string" + }, + "format": { + "required": true, + "type": "string" + } + } + } + } +} diff --git a/codegen/src/main/resources/codegen-data/ari_1_4_0/sounds.json b/codegen/src/main/resources/codegen-data/ari_1_4_0/sounds.json new file mode 100644 index 00000000..0678e40d --- /dev/null +++ b/codegen/src/main/resources/codegen-data/ari_1_4_0/sounds.json @@ -0,0 +1,99 @@ +{ + "_copyright": "Copyright (C) 2012 - 2013, Digium, Inc.", + "_author": "David M. Lee, II ", + "_svn_revision": "$Revision$", + "apiVersion": "1.4.0", + "swaggerVersion": "1.1", + "basePath": "http://localhost:8088/stasis", + "resourcePath": "/api-docs/sounds.{format}", + "apis": [ + { + "path": "/sounds", + "description": "Sounds", + "operations": [ + { + "httpMethod": "GET", + "summary": "List all sounds.", + "nickname": "list", + "responseClass": "List[Sound]", + "parameters": [ + { + "name": "lang", + "description": "Lookup sound for a specific language.", + "paramType": "query", + "dataType": "string", + "required": false + }, + { + "name": "format", + "description": "Lookup sound in a specific format.", + "paramType": "query", + "dataType": "string", + "required": false, + "__note": "core show translation can show translation paths between formats, along with relative costs. so this could be just installed format, or we could follow that for transcoded formats." + } + ] + } + ] + }, + { + "path": "/sounds/{soundId}", + "description": "Individual sound", + "operations": [ + { + "httpMethod": "GET", + "summary": "Get a sound's details.", + "nickname": "get", + "responseClass": "Sound", + "parameters": [ + { + "name": "soundId", + "description": "Sound's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ] + } + ] + } + ], + "models": { + "FormatLangPair": { + "id": "FormatLangPair", + "description": "Identifies the format and language of a sound file", + "properties": { + "language": { + "required": true, + "type": "string" + }, + "format": { + "required": true, + "type": "string" + } + } + }, + "Sound": { + "id": "Sound", + "description": "A media file that may be played back.", + "properties": { + "id": { + "required": true, + "description": "Sound's identifier.", + "type": "string" + }, + "text": { + "required": false, + "description": "Text description of the sound, usually the words spoken.", + "type": "string" + }, + "formats": { + "required": true, + "description": "The formats and languages in which this sound is available.", + "type": "List[FormatLangPair]" + } + } + } + } +} diff --git a/codegen/src/main/resources/codegen-data/ari_1_5_0/applications.json b/codegen/src/main/resources/codegen-data/ari_1_5_0/applications.json index 62f863b8..4234282c 100644 --- a/codegen/src/main/resources/codegen-data/ari_1_5_0/applications.json +++ b/codegen/src/main/resources/codegen-data/ari_1_5_0/applications.json @@ -1,10 +1,10 @@ { "_copyright": "Copyright (C) 2013, Digium, Inc.", "_author": "David M. Lee, II ", - "_svn_revision": "$Revision: 423618 $", + "_svn_revision": "$Revision$", "apiVersion": "1.5.0", "swaggerVersion": "1.1", - "basePath": "http://localhost:8088/ari", + "basePath": "http://localhost:8088/stasis", "resourcePath": "/api-docs/applications.{format}", "apis": [ { diff --git a/codegen/src/main/resources/codegen-data/ari_1_5_0/asterisk.json b/codegen/src/main/resources/codegen-data/ari_1_5_0/asterisk.json index 18ba2c6f..fd8f6d3d 100644 --- a/codegen/src/main/resources/codegen-data/ari_1_5_0/asterisk.json +++ b/codegen/src/main/resources/codegen-data/ari_1_5_0/asterisk.json @@ -1,10 +1,10 @@ { "_copyright": "Copyright (C) 2012 - 2013, Digium, Inc.", "_author": "David M. Lee, II ", - "_svn_revision": "$Revision: 423618 $", + "_svn_revision": "$Revision$", "apiVersion": "1.5.0", "swaggerVersion": "1.1", - "basePath": "http://localhost:8088/ari", + "basePath": "http://localhost:8088/stasis", "resourcePath": "/api-docs/asterisk.{format}", "apis": [ { diff --git a/codegen/src/main/resources/codegen-data/ari_1_5_0/bridges.json b/codegen/src/main/resources/codegen-data/ari_1_5_0/bridges.json index 57dad40a..cadf4ae0 100644 --- a/codegen/src/main/resources/codegen-data/ari_1_5_0/bridges.json +++ b/codegen/src/main/resources/codegen-data/ari_1_5_0/bridges.json @@ -1,10 +1,10 @@ { "_copyright": "Copyright (C) 2012 - 2013, Digium, Inc.", "_author": "David M. Lee, II ", - "_svn_revision": "$Revision: 423618 $", + "_svn_revision": "$Revision$", "apiVersion": "1.5.0", "swaggerVersion": "1.1", - "basePath": "http://localhost:8088/ari", + "basePath": "http://localhost:8088/stasis", "resourcePath": "/api-docs/bridges.{format}", "apis": [ { diff --git a/codegen/src/main/resources/codegen-data/ari_1_5_0/channels.json b/codegen/src/main/resources/codegen-data/ari_1_5_0/channels.json index 1cc28e79..945c333b 100644 --- a/codegen/src/main/resources/codegen-data/ari_1_5_0/channels.json +++ b/codegen/src/main/resources/codegen-data/ari_1_5_0/channels.json @@ -1,10 +1,10 @@ { "_copyright": "Copyright (C) 2012 - 2013, Digium, Inc.", "_author": "David M. Lee, II ", - "_svn_revision": "$Revision: 423618 $", + "_svn_revision": "$Revision$", "apiVersion": "1.5.0", "swaggerVersion": "1.1", - "basePath": "http://localhost:8088/ari", + "basePath": "http://localhost:8088/stasis", "resourcePath": "/api-docs/channels.{format}", "apis": [ { diff --git a/codegen/src/main/resources/codegen-data/ari_1_5_0/deviceStates.json b/codegen/src/main/resources/codegen-data/ari_1_5_0/deviceStates.json index 6fec33f4..95decd98 100644 --- a/codegen/src/main/resources/codegen-data/ari_1_5_0/deviceStates.json +++ b/codegen/src/main/resources/codegen-data/ari_1_5_0/deviceStates.json @@ -1,10 +1,10 @@ { "_copyright": "Copyright (C) 2012 - 2013, Digium, Inc.", "_author": "Kevin Harwell ", - "_svn_revision": "$Revision: 423618 $", + "_svn_revision": "$Revision$", "apiVersion": "1.5.0", "swaggerVersion": "1.1", - "basePath": "http://localhost:8088/ari", + "basePath": "http://localhost:8088/stasis", "resourcePath": "/api-docs/deviceStates.{format}", "apis": [ { diff --git a/codegen/src/main/resources/codegen-data/ari_1_5_0/endpoints.json b/codegen/src/main/resources/codegen-data/ari_1_5_0/endpoints.json index 8c59db0b..e8434ba9 100644 --- a/codegen/src/main/resources/codegen-data/ari_1_5_0/endpoints.json +++ b/codegen/src/main/resources/codegen-data/ari_1_5_0/endpoints.json @@ -1,10 +1,10 @@ { "_copyright": "Copyright (C) 2012 - 2013, Digium, Inc.", "_author": "David M. Lee, II ", - "_svn_revision": "$Revision: 423618 $", + "_svn_revision": "$Revision$", "apiVersion": "1.5.0", "swaggerVersion": "1.1", - "basePath": "http://localhost:8088/ari", + "basePath": "http://localhost:8088/stasis", "resourcePath": "/api-docs/endpoints.{format}", "apis": [ { diff --git a/codegen/src/main/resources/codegen-data/ari_1_5_0/events.json b/codegen/src/main/resources/codegen-data/ari_1_5_0/events.json index 9dd73874..9288ac05 100644 --- a/codegen/src/main/resources/codegen-data/ari_1_5_0/events.json +++ b/codegen/src/main/resources/codegen-data/ari_1_5_0/events.json @@ -1,10 +1,10 @@ { "_copyright": "Copyright (C) 2012 - 2013, Digium, Inc.", "_author": "David M. Lee, II ", - "_svn_revision": "$Revision: 423621 $", + "_svn_revision": "$Revision$", "apiVersion": "1.5.0", "swaggerVersion": "1.2", - "basePath": "http://localhost:8088/ari", + "basePath": "http://localhost:8088/stasis", "resourcePath": "/api-docs/events.{format}", "apis": [ { @@ -203,6 +203,7 @@ }, "RecordingStarted": { "id": "RecordingStarted", + "extends": "Event", "description": "Event showing the start of a recording operation.", "properties": { "recording": { @@ -214,6 +215,7 @@ }, "RecordingFinished": { "id": "RecordingFinished", + "extends": "Event", "description": "Event showing the completion of a recording operation.", "properties": { "recording": { @@ -225,6 +227,7 @@ }, "RecordingFailed": { "id": "RecordingFailed", + "extends": "Event", "description": "Event showing failure of a recording operation.", "properties": { "recording": { @@ -282,11 +285,6 @@ "required": true, "type": "Channel" }, - "replace_channel": { - "description": "The channel that is replacing transferer when the transferee(s) can not be transferred directly", - "required": false, - "type": "Channel" - }, "transferee": { "description": "The channel that is being transferred", "required": false, diff --git a/codegen/src/main/resources/codegen-data/ari_1_5_0/mailboxes.json b/codegen/src/main/resources/codegen-data/ari_1_5_0/mailboxes.json index 1254d53e..002c79bb 100644 --- a/codegen/src/main/resources/codegen-data/ari_1_5_0/mailboxes.json +++ b/codegen/src/main/resources/codegen-data/ari_1_5_0/mailboxes.json @@ -1,10 +1,10 @@ { "_copyright": "Copyright (C) 2013, Digium, Inc.", "_author": "Jonathan Rose ", - "_svn_revision": "$Revision: 423618 $", + "_svn_revision": "$Revision$", "apiVersion": "1.5.0", "swaggerVersion": "1.1", - "basePath": "http://localhost:8088/ari", + "basePath": "http://localhost:8088/stasis", "resourcePath": "/api-docs/mailboxes.{format}", "apis": [ { diff --git a/codegen/src/main/resources/codegen-data/ari_1_5_0/playbacks.json b/codegen/src/main/resources/codegen-data/ari_1_5_0/playbacks.json index 3c4290b5..79cedb7a 100644 --- a/codegen/src/main/resources/codegen-data/ari_1_5_0/playbacks.json +++ b/codegen/src/main/resources/codegen-data/ari_1_5_0/playbacks.json @@ -1,10 +1,10 @@ { "_copyright": "Copyright (C) 2012 - 2013, Digium, Inc.", "_author": "David M. Lee, II ", - "_svn_revision": "$Revision: 423618 $", + "_svn_revision": "$Revision$", "apiVersion": "1.5.0", "swaggerVersion": "1.1", - "basePath": "http://localhost:8088/ari", + "basePath": "http://localhost:8088/stasis", "resourcePath": "/api-docs/playbacks.{format}", "apis": [ { diff --git a/codegen/src/main/resources/codegen-data/ari_1_5_0/recordings.json b/codegen/src/main/resources/codegen-data/ari_1_5_0/recordings.json index 26bb2800..0e077e20 100644 --- a/codegen/src/main/resources/codegen-data/ari_1_5_0/recordings.json +++ b/codegen/src/main/resources/codegen-data/ari_1_5_0/recordings.json @@ -1,10 +1,10 @@ { "_copyright": "Copyright (C) 2012 - 2013, Digium, Inc.", "_author": "David M. Lee, II ", - "_svn_revision": "$Revision: 423618 $", + "_svn_revision": "$Revision$", "apiVersion": "1.5.0", "swaggerVersion": "1.1", - "basePath": "http://localhost:8088/ari", + "basePath": "http://localhost:8088/stasis", "resourcePath": "/api-docs/recordings.{format}", "apis": [ { diff --git a/codegen/src/main/resources/codegen-data/ari_1_5_0/sounds.json b/codegen/src/main/resources/codegen-data/ari_1_5_0/sounds.json index c46340c0..b97f725d 100644 --- a/codegen/src/main/resources/codegen-data/ari_1_5_0/sounds.json +++ b/codegen/src/main/resources/codegen-data/ari_1_5_0/sounds.json @@ -1,10 +1,10 @@ { "_copyright": "Copyright (C) 2012 - 2013, Digium, Inc.", "_author": "David M. Lee, II ", - "_svn_revision": "$Revision: 423618 $", + "_svn_revision": "$Revision$", "apiVersion": "1.5.0", "swaggerVersion": "1.1", - "basePath": "http://localhost:8088/ari", + "basePath": "http://localhost:8088/stasis", "resourcePath": "/api-docs/sounds.{format}", "apis": [ { diff --git a/codegen/src/main/resources/codegen-data/ari_1_6_0/applications.json b/codegen/src/main/resources/codegen-data/ari_1_6_0/applications.json index db5a9ee0..f6fe72ac 100644 --- a/codegen/src/main/resources/codegen-data/ari_1_6_0/applications.json +++ b/codegen/src/main/resources/codegen-data/ari_1_6_0/applications.json @@ -1,7 +1,7 @@ { "_copyright": "Copyright (C) 2013, Digium, Inc.", "_author": "David M. Lee, II ", - "_svn_revision": "$Revision: 429091 $", + "_svn_revision": "$Revision$", "apiVersion": "1.6.0", "swaggerVersion": "1.1", "basePath": "http://localhost:8088/ari", diff --git a/codegen/src/main/resources/codegen-data/ari_1_6_0/asterisk.json b/codegen/src/main/resources/codegen-data/ari_1_6_0/asterisk.json index 69cef054..f13b0493 100644 --- a/codegen/src/main/resources/codegen-data/ari_1_6_0/asterisk.json +++ b/codegen/src/main/resources/codegen-data/ari_1_6_0/asterisk.json @@ -1,7 +1,7 @@ { "_copyright": "Copyright (C) 2012 - 2013, Digium, Inc.", "_author": "David M. Lee, II ", - "_svn_revision": "$Revision: 429091 $", + "_svn_revision": "$Revision$", "apiVersion": "1.6.0", "swaggerVersion": "1.1", "basePath": "http://localhost:8088/ari", diff --git a/codegen/src/main/resources/codegen-data/ari_1_6_0/bridges.json b/codegen/src/main/resources/codegen-data/ari_1_6_0/bridges.json index 9545416d..21708c83 100644 --- a/codegen/src/main/resources/codegen-data/ari_1_6_0/bridges.json +++ b/codegen/src/main/resources/codegen-data/ari_1_6_0/bridges.json @@ -1,7 +1,7 @@ { "_copyright": "Copyright (C) 2012 - 2013, Digium, Inc.", "_author": "David M. Lee, II ", - "_svn_revision": "$Revision: 429091 $", + "_svn_revision": "$Revision$", "apiVersion": "1.6.0", "swaggerVersion": "1.1", "basePath": "http://localhost:8088/ari", diff --git a/codegen/src/main/resources/codegen-data/ari_1_6_0/channels.json b/codegen/src/main/resources/codegen-data/ari_1_6_0/channels.json index ac497e9e..67634740 100644 --- a/codegen/src/main/resources/codegen-data/ari_1_6_0/channels.json +++ b/codegen/src/main/resources/codegen-data/ari_1_6_0/channels.json @@ -1,7 +1,7 @@ { "_copyright": "Copyright (C) 2012 - 2013, Digium, Inc.", "_author": "David M. Lee, II ", - "_svn_revision": "$Revision: 429091 $", + "_svn_revision": "$Revision$", "apiVersion": "1.6.0", "swaggerVersion": "1.1", "basePath": "http://localhost:8088/ari", diff --git a/codegen/src/main/resources/codegen-data/ari_1_6_0/deviceStates.json b/codegen/src/main/resources/codegen-data/ari_1_6_0/deviceStates.json index 62ecb135..02d5d208 100644 --- a/codegen/src/main/resources/codegen-data/ari_1_6_0/deviceStates.json +++ b/codegen/src/main/resources/codegen-data/ari_1_6_0/deviceStates.json @@ -1,7 +1,7 @@ { "_copyright": "Copyright (C) 2012 - 2013, Digium, Inc.", "_author": "Kevin Harwell ", - "_svn_revision": "$Revision: 429091 $", + "_svn_revision": "$Revision$", "apiVersion": "1.6.0", "swaggerVersion": "1.1", "basePath": "http://localhost:8088/ari", diff --git a/codegen/src/main/resources/codegen-data/ari_1_6_0/endpoints.json b/codegen/src/main/resources/codegen-data/ari_1_6_0/endpoints.json index 8440d8b0..e7b4ba73 100644 --- a/codegen/src/main/resources/codegen-data/ari_1_6_0/endpoints.json +++ b/codegen/src/main/resources/codegen-data/ari_1_6_0/endpoints.json @@ -1,7 +1,7 @@ { "_copyright": "Copyright (C) 2012 - 2013, Digium, Inc.", "_author": "David M. Lee, II ", - "_svn_revision": "$Revision: 429091 $", + "_svn_revision": "$Revision$", "apiVersion": "1.6.0", "swaggerVersion": "1.1", "basePath": "http://localhost:8088/ari", diff --git a/codegen/src/main/resources/codegen-data/ari_1_6_0/events.json b/codegen/src/main/resources/codegen-data/ari_1_6_0/events.json index 9c24dbdc..1aceb71e 100644 --- a/codegen/src/main/resources/codegen-data/ari_1_6_0/events.json +++ b/codegen/src/main/resources/codegen-data/ari_1_6_0/events.json @@ -1,7 +1,7 @@ { "_copyright": "Copyright (C) 2012 - 2013, Digium, Inc.", "_author": "David M. Lee, II ", - "_svn_revision": "$Revision: 429091 $", + "_svn_revision": "$Revision$", "apiVersion": "1.6.0", "swaggerVersion": "1.2", "basePath": "http://localhost:8088/ari", diff --git a/codegen/src/main/resources/codegen-data/ari_1_6_0/mailboxes.json b/codegen/src/main/resources/codegen-data/ari_1_6_0/mailboxes.json index b348106e..87c6f034 100644 --- a/codegen/src/main/resources/codegen-data/ari_1_6_0/mailboxes.json +++ b/codegen/src/main/resources/codegen-data/ari_1_6_0/mailboxes.json @@ -1,7 +1,7 @@ { "_copyright": "Copyright (C) 2013, Digium, Inc.", "_author": "Jonathan Rose ", - "_svn_revision": "$Revision: 429091 $", + "_svn_revision": "$Revision$", "apiVersion": "1.6.0", "swaggerVersion": "1.1", "basePath": "http://localhost:8088/ari", diff --git a/codegen/src/main/resources/codegen-data/ari_1_6_0/playbacks.json b/codegen/src/main/resources/codegen-data/ari_1_6_0/playbacks.json index 98b511a0..65ef5245 100644 --- a/codegen/src/main/resources/codegen-data/ari_1_6_0/playbacks.json +++ b/codegen/src/main/resources/codegen-data/ari_1_6_0/playbacks.json @@ -1,7 +1,7 @@ { "_copyright": "Copyright (C) 2012 - 2013, Digium, Inc.", "_author": "David M. Lee, II ", - "_svn_revision": "$Revision: 429091 $", + "_svn_revision": "$Revision$", "apiVersion": "1.6.0", "swaggerVersion": "1.1", "basePath": "http://localhost:8088/ari", diff --git a/codegen/src/main/resources/codegen-data/ari_1_6_0/recordings.json b/codegen/src/main/resources/codegen-data/ari_1_6_0/recordings.json index a4a096f1..d96184bd 100644 --- a/codegen/src/main/resources/codegen-data/ari_1_6_0/recordings.json +++ b/codegen/src/main/resources/codegen-data/ari_1_6_0/recordings.json @@ -1,7 +1,7 @@ { "_copyright": "Copyright (C) 2012 - 2013, Digium, Inc.", "_author": "David M. Lee, II ", - "_svn_revision": "$Revision: 429091 $", + "_svn_revision": "$Revision$", "apiVersion": "1.6.0", "swaggerVersion": "1.1", "basePath": "http://localhost:8088/ari", diff --git a/codegen/src/main/resources/codegen-data/ari_1_6_0/sounds.json b/codegen/src/main/resources/codegen-data/ari_1_6_0/sounds.json index 5ed6de7a..906eb6bf 100644 --- a/codegen/src/main/resources/codegen-data/ari_1_6_0/sounds.json +++ b/codegen/src/main/resources/codegen-data/ari_1_6_0/sounds.json @@ -1,7 +1,7 @@ { "_copyright": "Copyright (C) 2012 - 2013, Digium, Inc.", "_author": "David M. Lee, II ", - "_svn_revision": "$Revision: 429091 $", + "_svn_revision": "$Revision$", "apiVersion": "1.6.0", "swaggerVersion": "1.1", "basePath": "http://localhost:8088/ari", diff --git a/codegen/src/main/resources/codegen-data/ari_1_7_0/applications.json b/codegen/src/main/resources/codegen-data/ari_1_7_0/applications.json index db5a9ee0..f6fe72ac 100644 --- a/codegen/src/main/resources/codegen-data/ari_1_7_0/applications.json +++ b/codegen/src/main/resources/codegen-data/ari_1_7_0/applications.json @@ -1,7 +1,7 @@ { "_copyright": "Copyright (C) 2013, Digium, Inc.", "_author": "David M. Lee, II ", - "_svn_revision": "$Revision: 429091 $", + "_svn_revision": "$Revision$", "apiVersion": "1.6.0", "swaggerVersion": "1.1", "basePath": "http://localhost:8088/ari", diff --git a/codegen/src/main/resources/codegen-data/ari_1_7_0/asterisk.json b/codegen/src/main/resources/codegen-data/ari_1_7_0/asterisk.json index 69cef054..f13b0493 100644 --- a/codegen/src/main/resources/codegen-data/ari_1_7_0/asterisk.json +++ b/codegen/src/main/resources/codegen-data/ari_1_7_0/asterisk.json @@ -1,7 +1,7 @@ { "_copyright": "Copyright (C) 2012 - 2013, Digium, Inc.", "_author": "David M. Lee, II ", - "_svn_revision": "$Revision: 429091 $", + "_svn_revision": "$Revision$", "apiVersion": "1.6.0", "swaggerVersion": "1.1", "basePath": "http://localhost:8088/ari", diff --git a/codegen/src/main/resources/codegen-data/ari_1_7_0/bridges.json b/codegen/src/main/resources/codegen-data/ari_1_7_0/bridges.json index 9ff8ed3c..21708c83 100644 --- a/codegen/src/main/resources/codegen-data/ari_1_7_0/bridges.json +++ b/codegen/src/main/resources/codegen-data/ari_1_7_0/bridges.json @@ -1,7 +1,7 @@ { "_copyright": "Copyright (C) 2012 - 2013, Digium, Inc.", "_author": "David M. Lee, II ", - "_svn_revision": "$Revision: 431145 $", + "_svn_revision": "$Revision$", "apiVersion": "1.6.0", "swaggerVersion": "1.1", "basePath": "http://localhost:8088/ari", @@ -60,7 +60,7 @@ "httpMethod": "POST", "summary": "Create a new bridge or updates an existing one.", "notes": "This bridge persists until it has been shut down, or Asterisk has been shut down.", - "nickname": "createWithId", + "nickname": "create_or_update_with_id", "responseClass": "Bridge", "parameters": [ { @@ -398,7 +398,7 @@ { "httpMethod": "POST", "summary": "Start playback of media on a bridge.", - "notes": "The media URI may be any of a number of URI's. Currently sound:, recording:, number:, digits:, characters:, and tone: URI's are supported. This operation creates a playback resource that can be used to control the playback of media (pause, rewind, fast forward, etc.)", + "notes": "The media URI may be any of a number of URI's. Currently sound: and recording: URI's are supported. This operation creates a playback resource that can be used to control the playback of media (pause, rewind, fast forward, etc.)", "nickname": "playWithId", "responseClass": "Playback", "parameters": [ diff --git a/codegen/src/main/resources/codegen-data/ari_1_7_0/channels.json b/codegen/src/main/resources/codegen-data/ari_1_7_0/channels.json index dd81a23e..87dee7c8 100644 --- a/codegen/src/main/resources/codegen-data/ari_1_7_0/channels.json +++ b/codegen/src/main/resources/codegen-data/ari_1_7_0/channels.json @@ -1,7 +1,7 @@ { "_copyright": "Copyright (C) 2012 - 2013, Digium, Inc.", "_author": "David M. Lee, II ", - "_svn_revision": "$Revision: 431145 $", + "_svn_revision": "$Revision$", "apiVersion": "1.6.0", "swaggerVersion": "1.1", "basePath": "http://localhost:8088/ari", @@ -34,7 +34,7 @@ }, { "name": "extension", - "description": "The extension to dial after the endpoint answers. Mutually exclusive with 'app'.", + "description": "The extension to dial after the endpoint answers", "paramType": "query", "required": false, "allowMultiple": false, @@ -42,7 +42,7 @@ }, { "name": "context", - "description": "The context to dial after the endpoint answers. If omitted, uses 'default'. Mutually exclusive with 'app'.", + "description": "The context to dial after the endpoint answers. If omitted, uses 'default'", "paramType": "query", "required": false, "allowMultiple": false, @@ -50,7 +50,7 @@ }, { "name": "priority", - "description": "The priority to dial after the endpoint answers. If omitted, uses 1. Mutually exclusive with 'app'.", + "description": "The priority to dial after the endpoint answers. If omitted, uses 1", "paramType": "query", "required": false, "allowMultiple": false, @@ -58,7 +58,7 @@ }, { "name": "label", - "description": "The label to dial after the endpoint answers. Will supersede 'priority' if provided. Mutually exclusive with 'app'.", + "description": "The label to dial after the endpoint answers. Will supersede 'priority' if provided.", "paramType": "query", "required": false, "allowMultiple": false, @@ -66,7 +66,7 @@ }, { "name": "app", - "description": "The application that is subscribed to the originated channel. When the channel is answered, it will be passed to this Stasis application. Mutually exclusive with 'context', 'extension', 'priority', and 'label'.", + "description": "The application that is subscribed to the originated channel, and passed to the Stasis application.", "paramType": "query", "required": false, "allowMultiple": false, @@ -74,7 +74,7 @@ }, { "name": "appArgs", - "description": "The application arguments to pass to the Stasis application provided by 'app'. Mutually exclusive with 'context', 'extension', 'priority', and 'label'.", + "description": "The application arguments to pass to the Stasis application.", "paramType": "query", "required": false, "allowMultiple": false, @@ -190,7 +190,7 @@ }, { "name": "extension", - "description": "The extension to dial after the endpoint answers. Mutually exclusive with 'app'.", + "description": "The extension to dial after the endpoint answers", "paramType": "query", "required": false, "allowMultiple": false, @@ -198,7 +198,7 @@ }, { "name": "context", - "description": "The context to dial after the endpoint answers. If omitted, uses 'default'. Mutually exclusive with 'app'.", + "description": "The context to dial after the endpoint answers. If omitted, uses 'default'", "paramType": "query", "required": false, "allowMultiple": false, @@ -206,7 +206,7 @@ }, { "name": "priority", - "description": "The priority to dial after the endpoint answers. If omitted, uses 1. Mutually exclusive with 'app'.", + "description": "The priority to dial after the endpoint answers. If omitted, uses 1", "paramType": "query", "required": false, "allowMultiple": false, @@ -214,7 +214,7 @@ }, { "name": "label", - "description": "The label to dial after the endpoint answers. Will supersede 'priority' if provided. Mutually exclusive with 'app'.", + "description": "The label to dial after the endpoint answers. Will supersede priority, if provided", "paramType": "query", "required": false, "allowMultiple": false, @@ -222,7 +222,7 @@ }, { "name": "app", - "description": "The application that is subscribed to the originated channel. When the channel is answered, it will be passed to this Stasis application. Mutually exclusive with 'context', 'extension', 'priority', and 'label'.", + "description": "The application that is subscribed to the originated channel, and passed to the Stasis application.", "paramType": "query", "required": false, "allowMultiple": false, @@ -230,7 +230,7 @@ }, { "name": "appArgs", - "description": "The application arguments to pass to the Stasis application provided by 'app'. Mutually exclusive with 'context', 'extension', 'priority', and 'label'.", + "description": "The application arguments to pass to the Stasis application.", "paramType": "query", "required": false, "allowMultiple": false, @@ -922,7 +922,7 @@ { "httpMethod": "POST", "summary": "Start playback of media and specify the playbackId.", - "notes": "The media URI may be any of a number of URI's. Currently sound:, recording:, number:, digits:, characters:, and tone: URI's are supported. This operation creates a playback resource that can be used to control the playback of media (pause, rewind, fast forward, etc.)", + "notes": "The media URI may be any of a number of URI's. Currently sound: and recording: URI's are supported. This operation creates a playback resource that can be used to control the playback of media (pause, rewind, fast forward, etc.)", "nickname": "playWithId", "responseClass": "Playback", "parameters": [ diff --git a/codegen/src/main/resources/codegen-data/ari_1_7_0/deviceStates.json b/codegen/src/main/resources/codegen-data/ari_1_7_0/deviceStates.json index 62ecb135..02d5d208 100644 --- a/codegen/src/main/resources/codegen-data/ari_1_7_0/deviceStates.json +++ b/codegen/src/main/resources/codegen-data/ari_1_7_0/deviceStates.json @@ -1,7 +1,7 @@ { "_copyright": "Copyright (C) 2012 - 2013, Digium, Inc.", "_author": "Kevin Harwell ", - "_svn_revision": "$Revision: 429091 $", + "_svn_revision": "$Revision$", "apiVersion": "1.6.0", "swaggerVersion": "1.1", "basePath": "http://localhost:8088/ari", diff --git a/codegen/src/main/resources/codegen-data/ari_1_7_0/endpoints.json b/codegen/src/main/resources/codegen-data/ari_1_7_0/endpoints.json index 8440d8b0..e7b4ba73 100644 --- a/codegen/src/main/resources/codegen-data/ari_1_7_0/endpoints.json +++ b/codegen/src/main/resources/codegen-data/ari_1_7_0/endpoints.json @@ -1,7 +1,7 @@ { "_copyright": "Copyright (C) 2012 - 2013, Digium, Inc.", "_author": "David M. Lee, II ", - "_svn_revision": "$Revision: 429091 $", + "_svn_revision": "$Revision$", "apiVersion": "1.6.0", "swaggerVersion": "1.1", "basePath": "http://localhost:8088/ari", diff --git a/codegen/src/main/resources/codegen-data/ari_1_7_0/events.json b/codegen/src/main/resources/codegen-data/ari_1_7_0/events.json index 9c24dbdc..1aceb71e 100644 --- a/codegen/src/main/resources/codegen-data/ari_1_7_0/events.json +++ b/codegen/src/main/resources/codegen-data/ari_1_7_0/events.json @@ -1,7 +1,7 @@ { "_copyright": "Copyright (C) 2012 - 2013, Digium, Inc.", "_author": "David M. Lee, II ", - "_svn_revision": "$Revision: 429091 $", + "_svn_revision": "$Revision$", "apiVersion": "1.6.0", "swaggerVersion": "1.2", "basePath": "http://localhost:8088/ari", diff --git a/codegen/src/main/resources/codegen-data/ari_1_7_0/mailboxes.json b/codegen/src/main/resources/codegen-data/ari_1_7_0/mailboxes.json index b348106e..87c6f034 100644 --- a/codegen/src/main/resources/codegen-data/ari_1_7_0/mailboxes.json +++ b/codegen/src/main/resources/codegen-data/ari_1_7_0/mailboxes.json @@ -1,7 +1,7 @@ { "_copyright": "Copyright (C) 2013, Digium, Inc.", "_author": "Jonathan Rose ", - "_svn_revision": "$Revision: 429091 $", + "_svn_revision": "$Revision$", "apiVersion": "1.6.0", "swaggerVersion": "1.1", "basePath": "http://localhost:8088/ari", diff --git a/codegen/src/main/resources/codegen-data/ari_1_7_0/playbacks.json b/codegen/src/main/resources/codegen-data/ari_1_7_0/playbacks.json index 98b511a0..65ef5245 100644 --- a/codegen/src/main/resources/codegen-data/ari_1_7_0/playbacks.json +++ b/codegen/src/main/resources/codegen-data/ari_1_7_0/playbacks.json @@ -1,7 +1,7 @@ { "_copyright": "Copyright (C) 2012 - 2013, Digium, Inc.", "_author": "David M. Lee, II ", - "_svn_revision": "$Revision: 429091 $", + "_svn_revision": "$Revision$", "apiVersion": "1.6.0", "swaggerVersion": "1.1", "basePath": "http://localhost:8088/ari", diff --git a/codegen/src/main/resources/codegen-data/ari_1_7_0/recordings.json b/codegen/src/main/resources/codegen-data/ari_1_7_0/recordings.json index a4a096f1..d96184bd 100644 --- a/codegen/src/main/resources/codegen-data/ari_1_7_0/recordings.json +++ b/codegen/src/main/resources/codegen-data/ari_1_7_0/recordings.json @@ -1,7 +1,7 @@ { "_copyright": "Copyright (C) 2012 - 2013, Digium, Inc.", "_author": "David M. Lee, II ", - "_svn_revision": "$Revision: 429091 $", + "_svn_revision": "$Revision$", "apiVersion": "1.6.0", "swaggerVersion": "1.1", "basePath": "http://localhost:8088/ari", diff --git a/codegen/src/main/resources/codegen-data/ari_1_7_0/sounds.json b/codegen/src/main/resources/codegen-data/ari_1_7_0/sounds.json index 5ed6de7a..906eb6bf 100644 --- a/codegen/src/main/resources/codegen-data/ari_1_7_0/sounds.json +++ b/codegen/src/main/resources/codegen-data/ari_1_7_0/sounds.json @@ -1,7 +1,7 @@ { "_copyright": "Copyright (C) 2012 - 2013, Digium, Inc.", "_author": "David M. Lee, II ", - "_svn_revision": "$Revision: 429091 $", + "_svn_revision": "$Revision$", "apiVersion": "1.6.0", "swaggerVersion": "1.1", "basePath": "http://localhost:8088/ari", diff --git a/codegen/src/main/resources/codegen-data/ari_2_0_0/README.md b/codegen/src/main/resources/codegen-data/ari_2_0_0/README.md deleted file mode 100644 index 5adc9c9b..00000000 --- a/codegen/src/main/resources/codegen-data/ari_2_0_0/README.md +++ /dev/null @@ -1,2 +0,0 @@ -Snapshot taken from Asterisk 14.2.1 - Feb 4, 2017 - diff --git a/codegen/src/main/resources/codegen-data/ari_2_0_0/channels.json b/codegen/src/main/resources/codegen-data/ari_2_0_0/channels.json index a254d565..602606cf 100644 --- a/codegen/src/main/resources/codegen-data/ari_2_0_0/channels.json +++ b/codegen/src/main/resources/codegen-data/ari_2_0_0/channels.json @@ -414,7 +414,8 @@ "normal", "busy", "congestion", - "no_answer" + "no_answer", + "answered_elsewhere" ] } } diff --git a/codegen/src/main/resources/codegen-data/ari_3_0_0/bridges.json b/codegen/src/main/resources/codegen-data/ari_3_0_0/bridges.json index 877fdf84..03a1e7a6 100644 --- a/codegen/src/main/resources/codegen-data/ari_3_0_0/bridges.json +++ b/codegen/src/main/resources/codegen-data/ari_3_0_0/bridges.json @@ -26,7 +26,7 @@ "parameters": [ { "name": "type", - "description": "Comma separated list of bridge type attributes (mixing, holding, dtmf_events, proxy_media, video_sfu).", + "description": "Comma separated list of bridge type attributes (mixing, holding, dtmf_events, proxy_media).", "paramType": "query", "required": false, "allowMultiple": false, @@ -65,7 +65,7 @@ "parameters": [ { "name": "type", - "description": "Comma separated list of bridge type attributes (mixing, holding, dtmf_events, proxy_media, video_sfu) to set.", + "description": "Comma separated list of bridge type attributes (mixing, holding, dtmf_events, proxy_media) to set.", "paramType": "query", "required": false, "allowMultiple": false, diff --git a/codegen/src/main/resources/codegen-data/ari_4_0_0/README.md b/codegen/src/main/resources/codegen-data/ari_4_0_0/README.md deleted file mode 100644 index 414a3b6f..00000000 --- a/codegen/src/main/resources/codegen-data/ari_4_0_0/README.md +++ /dev/null @@ -1 +0,0 @@ -Snapshot taken from Asterisk 16.1.1 diff --git a/codegen/src/main/resources/codegen-data/ari_4_0_1/applications.json b/codegen/src/main/resources/codegen-data/ari_4_0_1/applications.json new file mode 100644 index 00000000..09c5cd5c --- /dev/null +++ b/codegen/src/main/resources/codegen-data/ari_4_0_1/applications.json @@ -0,0 +1,223 @@ +{ + "_copyright": "Copyright (C) 2013, Digium, Inc.", + "_author": "David M. Lee, II ", + "_svn_revision": "$Revision$", + "apiVersion": "2.0.0", + "swaggerVersion": "1.1", + "basePath": "http://localhost:8088/ari", + "resourcePath": "/api-docs/applications.{format}", + "apis": [ + { + "path": "/applications", + "description": "Stasis applications", + "operations": [ + { + "httpMethod": "GET", + "summary": "List all applications.", + "nickname": "list", + "responseClass": "List[Application]" + } + ] + }, + { + "path": "/applications/{applicationName}", + "description": "Stasis application", + "operations": [ + { + "httpMethod": "GET", + "summary": "Get details of an application.", + "nickname": "get", + "responseClass": "Application", + "parameters": [ + { + "name": "applicationName", + "description": "Application's name", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Application does not exist." + } + ] + } + ] + }, + { + "path": "/applications/{applicationName}/subscription", + "description": "Stasis application", + "operations": [ + { + "httpMethod": "POST", + "summary": "Subscribe an application to a event source.", + "notes": "Returns the state of the application after the subscriptions have changed", + "nickname": "subscribe", + "responseClass": "Application", + "parameters": [ + { + "name": "applicationName", + "description": "Application's name", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "eventSource", + "description": "URI for event source (channel:{channelId}, bridge:{bridgeId}, endpoint:{tech}[/{resource}], deviceState:{deviceName}", + "paramType": "query", + "required": true, + "allowMultiple": true, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 400, + "reason": "Missing parameter." + }, + { + "code": 404, + "reason": "Application does not exist." + }, + { + "code": 422, + "reason": "Event source does not exist." + } + ] + }, + { + "httpMethod": "DELETE", + "summary": "Unsubscribe an application from an event source.", + "notes": "Returns the state of the application after the subscriptions have changed", + "nickname": "unsubscribe", + "responseClass": "Application", + "parameters": [ + { + "name": "applicationName", + "description": "Application's name", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "eventSource", + "description": "URI for event source (channel:{channelId}, bridge:{bridgeId}, endpoint:{tech}[/{resource}], deviceState:{deviceName}", + "paramType": "query", + "required": true, + "allowMultiple": true, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 400, + "reason": "Missing parameter; event source scheme not recognized." + }, + { + "code": 404, + "reason": "Application does not exist." + }, + { + "code": 409, + "reason": "Application not subscribed to event source." + }, + { + "code": 422, + "reason": "Event source does not exist." + } + ] + } + ] + }, + { + "path": "/applications/{applicationName}/eventFilter", + "description": "Stasis application", + "operations": [ + { + "httpMethod": "PUT", + "summary": "Filter application events types.", + "notes": "Allowed and/or disallowed event type filtering can be done. The body (parameter) should specify a JSON key/value object that describes the type of event filtering needed. One, or both of the following keys can be designated:

\"allowed\" - Specifies an allowed list of event types
\"disallowed\" - Specifies a disallowed list of event types

Further, each of those key's value should be a JSON array that holds zero, or more JSON key/value objects. Each of these objects must contain the following key with an associated value:

\"type\" - The type name of the event to filter

The value must be the string name (case sensitive) of the event type that needs filtering. For example:

{ \"allowed\": [ { \"type\": \"StasisStart\" }, { \"type\": \"StasisEnd\" } ] }

As this specifies only an allowed list, then only those two event type messages are sent to the application. No other event messages are sent.

The following rules apply:

* If the body is empty, both the allowed and disallowed filters are set empty.
* If both list types are given then both are set to their respective values (note, specifying an empty array for a given type sets that type to empty).
* If only one list type is given then only that type is set. The other type is not updated.
* An empty \"allowed\" list means all events are allowed.
* An empty \"disallowed\" list means no events are disallowed.
* Disallowed events take precedence over allowed events if the event type is specified in both lists.", + "nickname": "filter", + "responseClass": "Application", + "parameters": [ + { + "name": "applicationName", + "description": "Application's name", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "filter", + "description": "Specify which event types to allow/disallow", + "paramType": "body", + "required": false, + "dataType": "object", + "allowMultiple": false + } + ], + "errorResponses": [ + { + "code": 400, + "reason": "Bad request." + }, + { + "code": 404, + "reason": "Application does not exist." + } + ] + } + ] + } + ], + "models": { + "Application": { + "id": "Application", + "description": "Details of a Stasis application", + "properties": { + "name": { + "type": "string", + "description": "Name of this application", + "required": true + }, + "channel_ids": { + "type": "List[string]", + "description": "Id's for channels subscribed to.", + "required": true + }, + "bridge_ids": { + "type": "List[string]", + "description": "Id's for bridges subscribed to.", + "required": true + }, + "endpoint_ids": { + "type": "List[string]", + "description": "{tech}/{resource} for endpoints subscribed to.", + "required": true + }, + "device_names": { + "type": "List[string]", + "description": "Names of the devices subscribed to.", + "required": true + }, + "events_allowed": { + "type": "List[object]", + "description": "Event types sent to the application.", + "required": true + }, + "events_disallowed": { + "type": "List[object]", + "description": "Event types not sent to the application.", + "required": true + } + } + } + } +} diff --git a/codegen/src/main/resources/codegen-data/ari_4_0_1/asterisk.json b/codegen/src/main/resources/codegen-data/ari_4_0_1/asterisk.json new file mode 100644 index 00000000..841e6cd8 --- /dev/null +++ b/codegen/src/main/resources/codegen-data/ari_4_0_1/asterisk.json @@ -0,0 +1,725 @@ +{ + "_copyright": "Copyright (C) 2012 - 2013, Digium, Inc.", + "_author": "David M. Lee, II ", + "_svn_revision": "$Revision$", + "apiVersion": "2.0.0", + "swaggerVersion": "1.1", + "basePath": "http://localhost:8088/ari", + "resourcePath": "/api-docs/asterisk.{format}", + "apis": [ + { + "path": "/asterisk/config/dynamic/{configClass}/{objectType}/{id}", + "description": "Asterisk dynamic configuration", + "operations": [ + { + "httpMethod": "GET", + "summary": "Retrieve a dynamic configuration object.", + "nickname": "getObject", + "responseClass": "List[ConfigTuple]", + "parameters": [ + { + "name": "configClass", + "description": "The configuration class containing dynamic configuration objects.", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "objectType", + "description": "The type of configuration object to retrieve.", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "id", + "description": "The unique identifier of the object to retrieve.", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "{configClass|objectType|id} not found" + } + ] + }, + { + "httpMethod": "PUT", + "summary": "Create or update a dynamic configuration object.", + "nickname": "updateObject", + "responseClass": "List[ConfigTuple]", + "parameters": [ + { + "name": "configClass", + "description": "The configuration class containing dynamic configuration objects.", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "objectType", + "description": "The type of configuration object to create or update.", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "id", + "description": "The unique identifier of the object to create or update.", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "fields", + "description": "The body object should have a value that is a list of ConfigTuples, which provide the fields to update. Ex. [ { \"attribute\": \"directmedia\", \"value\": \"false\" } ]", + "paramType": "body", + "required": false, + "dataType": "containers", + "allowMultiple": false + } + ], + "errorResponses": [ + { + "code": 400, + "reason": "Bad request body" + }, + { + "code": 403, + "reason": "Could not create or update object" + }, + { + "code": 404, + "reason": "{configClass|objectType} not found" + } + ] + }, + { + "httpMethod": "DELETE", + "summary": "Delete a dynamic configuration object.", + "nickname": "deleteObject", + "responseClass": "void", + "parameters": [ + { + "name": "configClass", + "description": "The configuration class containing dynamic configuration objects.", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "objectType", + "description": "The type of configuration object to delete.", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "id", + "description": "The unique identifier of the object to delete.", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 403, + "reason": "Could not delete object" + }, + { + "code": 404, + "reason": "{configClass|objectType|id} not found" + } + ] + } + ] + }, + { + "path": "/asterisk/info", + "description": "Asterisk system information (similar to core show settings)", + "operations": [ + { + "httpMethod": "GET", + "summary": "Gets Asterisk system information.", + "nickname": "getInfo", + "responseClass": "AsteriskInfo", + "parameters": [ + { + "name": "only", + "description": "Filter information returned", + "paramType": "query", + "required": false, + "allowMultiple": true, + "dataType": "string", + "allowableValues": { + "valueType": "LIST", + "values": [ + "build", + "system", + "config", + "status" + ] + } + } + ] + } + ] + }, + { + "path": "/asterisk/ping", + "description": "Asterisk ping", + "operations": [ + { + "httpMethod": "GET", + "summary": "Response pong message.", + "nickname": "ping", + "responseClass": "AsteriskPing" + } + ] + }, + { + "path": "/asterisk/modules", + "description": "Asterisk modules", + "operations": [ + { + "httpMethod": "GET", + "summary": "List Asterisk modules.", + "nickname": "listModules", + "responseClass": "List[Module]" + } + ] + }, + { + "path": "/asterisk/modules/{moduleName}", + "description": "Asterisk module", + "operations": [ + { + "httpMethod": "GET", + "summary": "Get Asterisk module information.", + "nickname": "getModule", + "responseClass": "Module", + "parameters": [ + { + "name": "moduleName", + "description": "Module's name", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Module could not be found in running modules." + }, + { + "code": 409, + "reason": "Module information could not be retrieved." + } + ] + }, + { + "httpMethod": "POST", + "summary": "Load an Asterisk module.", + "nickname": "loadModule", + "responseClass": "void", + "parameters": [ + { + "name": "moduleName", + "description": "Module's name", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 409, + "reason": "Module could not be loaded." + } + ] + }, + { + "httpMethod": "DELETE", + "summary": "Unload an Asterisk module.", + "nickname": "unloadModule", + "responseClass": "void", + "parameters": [ + { + "name": "moduleName", + "description": "Module's name", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Module not found in running modules." + }, + { + "code": 409, + "reason": "Module could not be unloaded." + } + ] + }, + { + "httpMethod": "PUT", + "summary": "Reload an Asterisk module.", + "nickname": "reloadModule", + "responseClass": "void", + "parameters": [ + { + "name": "moduleName", + "description": "Module's name", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Module not found in running modules." + }, + { + "code": 409, + "reason": "Module could not be reloaded." + } + ] + } + ] + }, + { + "path": "/asterisk/logging", + "description": "Asterisk log channels", + "operations": [ + { + "httpMethod": "GET", + "summary": "Gets Asterisk log channel information.", + "nickname": "listLogChannels", + "responseClass": "List[LogChannel]" + } + ] + }, + { + "path": "/asterisk/logging/{logChannelName}", + "description": "Asterisk log channel", + "operations": [ + { + "httpMethod": "POST", + "summary": "Adds a log channel.", + "nickname": "addLog", + "responseClass": "void", + "parameters": [ + { + "name": "logChannelName", + "description": "The log channel to add", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "configuration", + "description": "levels of the log channel", + "paramType": "query", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 400, + "reason": "Bad request body" + }, + { + "code": 409, + "reason": "Log channel could not be created." + } + ] + }, + { + "httpMethod": "DELETE", + "summary": "Deletes a log channel.", + "nickname": "deleteLog", + "responseClass": "void", + "parameters": [ + { + "name": "logChannelName", + "description": "Log channels name", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Log channel does not exist." + } + ] + } + ] + }, + { + "path": "/asterisk/logging/{logChannelName}/rotate", + "description": "Asterisk log channel", + "operations": [ + { + "httpMethod": "PUT", + "summary": "Rotates a log channel.", + "nickname": "rotateLog", + "responseClass": "void", + "parameters": [ + { + "name": "logChannelName", + "description": "Log channel's name", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Log channel does not exist." + } + ] + } + ] + }, + { + "path": "/asterisk/variable", + "description": "Global variables", + "operations": [ + { + "httpMethod": "GET", + "summary": "Get the value of a global variable.", + "nickname": "getGlobalVar", + "responseClass": "Variable", + "parameters": [ + { + "name": "variable", + "description": "The variable to get", + "paramType": "query", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 400, + "reason": "Missing variable parameter." + } + ] + }, + { + "httpMethod": "POST", + "summary": "Set the value of a global variable.", + "nickname": "setGlobalVar", + "responseClass": "void", + "parameters": [ + { + "name": "variable", + "description": "The variable to set", + "paramType": "query", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "value", + "description": "The value to set the variable to", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 400, + "reason": "Missing variable parameter." + } + ] + } + ] + } + ], + "models": { + "BuildInfo": { + "id": "BuildInfo", + "description": "Info about how Asterisk was built", + "properties": { + "os": { + "required": true, + "type": "string", + "description": "OS Asterisk was built on." + }, + "kernel": { + "required": true, + "type": "string", + "description": "Kernel version Asterisk was built on." + }, + "options": { + "required": true, + "type": "string", + "description": "Compile time options, or empty string if default." + }, + "machine": { + "required": true, + "type": "string", + "description": "Machine architecture (x86_64, i686, ppc, etc.)" + }, + "date": { + "required": true, + "type": "string", + "description": "Date and time when Asterisk was built." + }, + "user": { + "required": true, + "type": "string", + "description": "Username that build Asterisk" + } + } + }, + "SystemInfo": { + "id": "SystemInfo", + "description": "Info about Asterisk", + "properties": { + "version": { + "required": true, + "type": "string", + "description": "Asterisk version." + }, + "entity_id": { + "required": true, + "type": "string", + "description": "" + } + } + }, + "SetId": { + "id": "SetId", + "description": "Effective user/group id", + "properties": { + "user": { + "required": true, + "type": "string", + "description": "Effective user id." + }, + "group": { + "required": true, + "type": "string", + "description": "Effective group id." + } + } + }, + "ConfigInfo": { + "id": "ConfigInfo", + "description": "Info about Asterisk configuration", + "properties": { + "name": { + "required": true, + "type": "string", + "description": "Asterisk system name." + }, + "default_language": { + "required": true, + "type": "string", + "description": "Default language for media playback." + }, + "max_channels": { + "required": false, + "type": "int", + "description": "Maximum number of simultaneous channels." + }, + "max_open_files": { + "required": false, + "type": "int", + "description": "Maximum number of open file handles (files, sockets)." + }, + "max_load": { + "required": false, + "type": "double", + "description": "Maximum load avg on system." + }, + "setid": { + "required": true, + "type": "SetId", + "description": "Effective user/group id for running Asterisk." + } + } + }, + "StatusInfo": { + "id": "StatusInfo", + "description": "Info about Asterisk status", + "properties": { + "startup_time": { + "required": true, + "type": "Date", + "description": "Time when Asterisk was started." + }, + "last_reload_time": { + "required": true, + "type": "Date", + "description": "Time when Asterisk was last reloaded." + } + } + }, + "AsteriskInfo": { + "id": "AsteriskInfo", + "description": "Asterisk system information", + "properties": { + "build": { + "required": false, + "type": "BuildInfo", + "description": "Info about how Asterisk was built" + }, + "system": { + "required": false, + "type": "SystemInfo", + "description": "Info about the system running Asterisk" + }, + "config": { + "required": false, + "type": "ConfigInfo", + "description": "Info about Asterisk configuration" + }, + "status": { + "required": false, + "type": "StatusInfo", + "description": "Info about Asterisk status" + } + } + }, + "AsteriskPing": { + "id": "AsteriskPing", + "description": "Asterisk ping information", + "properties": { + "asterisk_id": { + "required": true, + "type": "string", + "description": "Asterisk id info" + }, + "ping": { + "required": true, + "type": "string", + "description": "Always string value is pong" + }, + "timestamp": { + "required": true, + "type": "string", + "description": "The timestamp string of request received time" + } + } + }, + "Module": { + "id": "Module", + "description": "Details of an Asterisk module", + "properties": { + "name": { + "type": "string", + "description": "The name of this module", + "required": true + }, + "description": { + "type": "string", + "description": "The description of this module", + "required": true + }, + "use_count": { + "type": "int", + "description": "The number of times this module is being used", + "required": true + }, + "status": { + "type": "string", + "description": "The running status of this module", + "required": true + }, + "support_level": { + "type": "string", + "description": "The support state of this module", + "required": true + } + } + }, + "LogChannel": { + "id": "LogChannel", + "description": "Details of an Asterisk log channel", + "properties": { + "channel": { + "type": "string", + "description": "The log channel path", + "required": true + }, + "type": { + "type": "string", + "description": "Types of logs for the log channel", + "required": true + }, + "status": { + "type": "string", + "description": "Whether or not a log type is enabled", + "required": true + }, + "configuration": { + "type": "string", + "description": "The various log levels", + "required": true + } + } + }, + "Variable": { + "id": "Variable", + "description": "The value of a channel variable", + "properties": { + "value": { + "required": true, + "type": "string", + "description": "The value of the variable requested" + } + } + }, + "ConfigTuple": { + "id": "ConfigTuple", + "description": "A key/value pair that makes up part of a configuration object.", + "properties": { + "attribute": { + "required": true, + "type": "string", + "description": "A configuration object attribute." + }, + "value": { + "required": true, + "type": "string", + "description": "The value for the attribute." + } + } + } + } +} diff --git a/codegen/src/main/resources/codegen-data/ari_4_0_1/bridges.json b/codegen/src/main/resources/codegen-data/ari_4_0_1/bridges.json new file mode 100644 index 00000000..22743c3b --- /dev/null +++ b/codegen/src/main/resources/codegen-data/ari_4_0_1/bridges.json @@ -0,0 +1,765 @@ +{ + "_copyright": "Copyright (C) 2012 - 2013, Digium, Inc.", + "_author": "David M. Lee, II ", + "_svn_revision": "$Revision$", + "apiVersion": "2.0.0", + "swaggerVersion": "1.1", + "basePath": "http://localhost:8088/ari", + "resourcePath": "/api-docs/bridges.{format}", + "requiresModules": [ + "res_stasis_recording", + "res_stasis_playback" + ], + "apis": [ + { + "path": "/bridges", + "description": "Active bridges", + "operations": [ + { + "httpMethod": "GET", + "summary": "List all active bridges in Asterisk.", + "nickname": "list", + "responseClass": "List[Bridge]" + }, + { + "httpMethod": "POST", + "summary": "Create a new bridge.", + "notes": "This bridge persists until it has been shut down, or Asterisk has been shut down.", + "nickname": "create", + "responseClass": "Bridge", + "parameters": [ + { + "name": "type", + "description": "Comma separated list of bridge type attributes (mixing, holding, dtmf_events, proxy_media, video_sfu).", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "bridgeId", + "description": "Unique ID to give to the bridge being created.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "name", + "description": "Name to give to the bridge being created.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + } + ] + } + ] + }, + { + "path": "/bridges/{bridgeId}", + "description": "Individual bridge", + "operations": [ + { + "httpMethod": "POST", + "summary": "Create a new bridge or updates an existing one.", + "notes": "This bridge persists until it has been shut down, or Asterisk has been shut down.", + "nickname": "createWithId", + "responseClass": "Bridge", + "parameters": [ + { + "name": "type", + "description": "Comma separated list of bridge type attributes (mixing, holding, dtmf_events, proxy_media, video_sfu) to set.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "bridgeId", + "description": "Unique ID to give to the bridge being created.", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "name", + "description": "Set the name of the bridge.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + } + ] + }, + { + "httpMethod": "GET", + "summary": "Get bridge details.", + "nickname": "get", + "responseClass": "Bridge", + "parameters": [ + { + "name": "bridgeId", + "description": "Bridge's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Bridge not found" + } + ] + }, + { + "httpMethod": "DELETE", + "summary": "Shut down a bridge.", + "notes": "If any channels are in this bridge, they will be removed and resume whatever they were doing beforehand.", + "nickname": "destroy", + "responseClass": "void", + "parameters": [ + { + "name": "bridgeId", + "description": "Bridge's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Bridge not found" + } + ] + } + ] + }, + { + "path": "/bridges/{bridgeId}/addChannel", + "description": "Add a channel to a bridge", + "operations": [ + { + "httpMethod": "POST", + "summary": "Add a channel to a bridge.", + "nickname": "addChannel", + "responseClass": "void", + "parameters": [ + { + "name": "bridgeId", + "description": "Bridge's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "channel", + "description": "Ids of channels to add to bridge", + "paramType": "query", + "required": true, + "allowMultiple": true, + "dataType": "string" + }, + { + "name": "role", + "description": "Channel's role in the bridge", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "absorbDTMF", + "description": "Absorb DTMF coming from this channel, preventing it to pass through to the bridge", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "boolean", + "defaultValue": false + }, + { + "name": "mute", + "description": "Mute audio from this channel, preventing it to pass through to the bridge", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "boolean", + "defaultValue": false + } + ], + "errorResponses": [ + { + "code": 400, + "reason": "Channel not found" + }, + { + "code": 404, + "reason": "Bridge not found" + }, + { + "code": 409, + "reason": "Bridge not in Stasis application; Channel currently recording" + }, + { + "code": 422, + "reason": "Channel not in Stasis application" + } + ] + } + ] + }, + { + "path": "/bridges/{bridgeId}/removeChannel", + "description": "Remove a channel from a bridge", + "operations": [ + { + "httpMethod": "POST", + "summary": "Remove a channel from a bridge.", + "nickname": "removeChannel", + "responseClass": "void", + "parameters": [ + { + "name": "bridgeId", + "description": "Bridge's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "channel", + "description": "Ids of channels to remove from bridge", + "paramType": "query", + "required": true, + "allowMultiple": true, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 400, + "reason": "Channel not found" + }, + { + "code": 404, + "reason": "Bridge not found" + }, + { + "code": 409, + "reason": "Bridge not in Stasis application" + }, + { + "code": 422, + "reason": "Channel not in this bridge" + } + ] + } + ] + }, + { + "path": "/bridges/{bridgeId}/videoSource/{channelId}", + "description": "Set a channel as the video source in a multi-party bridge", + "operations": [ + { + "httpMethod": "POST", + "summary": "Set a channel as the video source in a multi-party mixing bridge. This operation has no effect on bridges with two or fewer participants.", + "nickname": "setVideoSource", + "responseClass": "void", + "parameters": [ + { + "name": "bridgeId", + "description": "Bridge's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "channelId", + "description": "Channel's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Bridge or Channel not found" + }, + { + "code": 409, + "reason": "Channel not in Stasis application" + }, + { + "code": 422, + "reason": "Channel not in this Bridge" + } + ] + } + ] + }, + { + "path": "/bridges/{bridgeId}/videoSource", + "description": "Removes any explicit video source", + "operations": [ + { + "httpMethod": "DELETE", + "summary": "Removes any explicit video source in a multi-party mixing bridge. This operation has no effect on bridges with two or fewer participants. When no explicit video source is set, talk detection will be used to determine the active video stream.", + "nickname": "clearVideoSource", + "responseClass": "void", + "parameters": [ + { + "name": "bridgeId", + "description": "Bridge's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Bridge not found" + } + ] + } + ] + }, + { + "path": "/bridges/{bridgeId}/moh", + "description": "Play music on hold to a bridge", + "operations": [ + { + "httpMethod": "POST", + "summary": "Play music on hold to a bridge or change the MOH class that is playing.", + "nickname": "startMoh", + "responseClass": "void", + "parameters": [ + { + "name": "bridgeId", + "description": "Bridge's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "mohClass", + "description": "Channel's id", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Bridge not found" + }, + { + "code": 409, + "reason": "Bridge not in Stasis application" + } + ] + }, + { + "httpMethod": "DELETE", + "summary": "Stop playing music on hold to a bridge.", + "notes": "This will only stop music on hold being played via POST bridges/{bridgeId}/moh.", + "nickname": "stopMoh", + "responseClass": "void", + "parameters": [ + { + "name": "bridgeId", + "description": "Bridge's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Bridge not found" + }, + { + "code": 409, + "reason": "Bridge not in Stasis application" + } + ] + } + ] + }, + { + "path": "/bridges/{bridgeId}/play", + "description": "Play media to the participants of a bridge", + "operations": [ + { + "httpMethod": "POST", + "summary": "Start playback of media on a bridge.", + "notes": "The media URI may be any of a number of URI's. Currently sound:, recording:, number:, digits:, characters:, and tone: URI's are supported. This operation creates a playback resource that can be used to control the playback of media (pause, rewind, fast forward, etc.)", + "nickname": "play", + "responseClass": "Playback", + "parameters": [ + { + "name": "bridgeId", + "description": "Bridge's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "media", + "description": "Media URIs to play.", + "paramType": "query", + "required": true, + "allowMultiple": true, + "dataType": "string" + }, + { + "name": "lang", + "description": "For sounds, selects language for sound.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "offsetms", + "description": "Number of milliseconds to skip before playing. Only applies to the first URI if multiple media URIs are specified.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "int", + "defaultValue": 0, + "allowableValues": { + "valueType": "RANGE", + "min": 0 + } + + }, + { + "name": "skipms", + "description": "Number of milliseconds to skip for forward/reverse operations.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "int", + "defaultValue": 3000, + "allowableValues": { + "valueType": "RANGE", + "min": 0 + } + }, + { + "name": "playbackId", + "description": "Playback Id.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Bridge not found" + }, + { + "code": 409, + "reason": "Bridge not in a Stasis application" + } + ] + } + ] + }, + { + "path": "/bridges/{bridgeId}/play/{playbackId}", + "description": "Play media to a bridge", + "operations": [ + { + "httpMethod": "POST", + "summary": "Start playback of media on a bridge.", + "notes": "The media URI may be any of a number of URI's. Currently sound:, recording:, number:, digits:, characters:, and tone: URI's are supported. This operation creates a playback resource that can be used to control the playback of media (pause, rewind, fast forward, etc.)", + "nickname": "playWithId", + "responseClass": "Playback", + "parameters": [ + { + "name": "bridgeId", + "description": "Bridge's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "playbackId", + "description": "Playback ID.", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "media", + "description": "Media URIs to play.", + "paramType": "query", + "required": true, + "allowMultiple": true, + "dataType": "string" + }, + { + "name": "lang", + "description": "For sounds, selects language for sound.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "offsetms", + "description": "Number of milliseconds to skip before playing. Only applies to the first URI if multiple media URIs are specified.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "int", + "defaultValue": 0, + "allowableValues": { + "valueType": "RANGE", + "min": 0 + } + }, + { + "name": "skipms", + "description": "Number of milliseconds to skip for forward/reverse operations.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "int", + "defaultValue": 3000, + "allowableValues": { + "valueType": "RANGE", + "min": 0 + } + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Bridge not found" + }, + { + "code": 409, + "reason": "Bridge not in a Stasis application" + } + ] + + } + ] + }, + { + "path": "/bridges/{bridgeId}/record", + "description": "Record audio on a bridge", + "operations": [ + { + "httpMethod": "POST", + "summary": "Start a recording.", + "notes": "This records the mixed audio from all channels participating in this bridge.", + "nickname": "record", + "responseClass": "LiveRecording", + "parameters": [ + { + "name": "bridgeId", + "description": "Bridge's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "name", + "description": "Recording's filename", + "paramType": "query", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "format", + "description": "Format to encode audio in", + "paramType": "query", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "maxDurationSeconds", + "description": "Maximum duration of the recording, in seconds. 0 for no limit.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "int", + "defaultValue": 0, + "allowableValues": { + "valueType": "RANGE", + "min": 0 + } + }, + { + "name": "maxSilenceSeconds", + "description": "Maximum duration of silence, in seconds. 0 for no limit.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "int", + "defaultValue": 0, + "allowableValues": { + "valueType": "RANGE", + "min": 0 + } + }, + { + "name": "ifExists", + "description": "Action to take if a recording with the same name already exists.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string", + "defaultValue": "fail", + "allowableValues": { + "valueType": "LIST", + "values": [ + "fail", + "overwrite", + "append" + ] + } + }, + { + "name": "beep", + "description": "Play beep when recording begins", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "boolean", + "defaultValue": false + }, + { + "name": "terminateOn", + "description": "DTMF input to terminate recording.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string", + "defaultValue": "none", + "allowableValues": { + "valueType": "LIST", + "values": [ + "none", + "any", + "*", + "#" + ] + } + } + ], + "errorResponses": [ + { + "code": 400, + "reason": "Invalid parameters" + }, + { + "code": 404, + "reason": "Bridge not found" + }, + { + "code": 409, + "reason": "Bridge is not in a Stasis application; A recording with the same name already exists on the system and can not be overwritten because it is in progress or ifExists=fail" + }, + { + "code": 422, + "reason": "The format specified is unknown on this system" + } + ] + } + ] + } + ], + "models": { + "Bridge": { + "id": "Bridge", + "description": "The merging of media from one or more channels.\n\nEveryone on the bridge receives the same audio.", + "properties": { + "id": { + "type": "string", + "description": "Unique identifier for this bridge", + "required": true + }, + "technology": { + "type": "string", + "description": "Name of the current bridging technology", + "required": true + }, + "bridge_type": { + "type": "string", + "description": "Type of bridge technology", + "required": true, + "allowableValues": { + "valueType": "LIST", + "values": [ + "mixing", + "holding" + ] + } + }, + "bridge_class": { + "type": "string", + "description": "Bridging class", + "required": true + }, + "creator": { + "type": "string", + "description": "Entity that created the bridge", + "required": true + }, + "name": { + "type": "string", + "description": "Name the creator gave the bridge", + "required": true + }, + "channels": { + "type": "List[string]", + "description": "Ids of channels participating in this bridge", + "required": true + }, + "video_mode": { + "type": "string", + "description": "The video mode the bridge is using. One of 'none', 'talker', or 'single'.", + "required": false + }, + "video_source_id": { + "type": "string", + "description": "The ID of the channel that is the source of video in this bridge, if one exists.", + "required": false + }, + "creationtime": { + "required": true, + "type": "Date", + "description": "Timestamp when bridge was created" + } + } + } + } +} diff --git a/codegen/src/main/resources/codegen-data/ari_4_0_1/channels.json b/codegen/src/main/resources/codegen-data/ari_4_0_1/channels.json new file mode 100644 index 00000000..61619342 --- /dev/null +++ b/codegen/src/main/resources/codegen-data/ari_4_0_1/channels.json @@ -0,0 +1,1835 @@ +{ + "_copyright": "Copyright (C) 2012 - 2013, Digium, Inc.", + "_author": "David M. Lee, II ", + "_svn_revision": "$Revision$", + "apiVersion": "2.0.0", + "swaggerVersion": "1.1", + "basePath": "http://localhost:8088/ari", + "resourcePath": "/api-docs/channels.{format}", + "requiresModules": [ + "res_stasis_answer", + "res_stasis_playback", + "res_stasis_recording", + "res_stasis_snoop" + ], + "apis": [ + { + "path": "/channels", + "description": "Active channels", + "operations": [ + { + "httpMethod": "GET", + "summary": "List all active channels in Asterisk.", + "nickname": "list", + "responseClass": "List[Channel]" + }, + { + "httpMethod": "POST", + "summary": "Create a new channel (originate).", + "notes": "The new channel is created immediately and a snapshot of it returned. If a Stasis application is provided it will be automatically subscribed to the originated channel for further events and updates.", + "nickname": "originate", + "responseClass": "Channel", + "parameters": [ + { + "name": "endpoint", + "description": "Endpoint to call.", + "paramType": "query", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "extension", + "description": "The extension to dial after the endpoint answers. Mutually exclusive with 'app'.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "context", + "description": "The context to dial after the endpoint answers. If omitted, uses 'default'. Mutually exclusive with 'app'.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "priority", + "description": "The priority to dial after the endpoint answers. If omitted, uses 1. Mutually exclusive with 'app'.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "long" + }, + { + "name": "label", + "description": "The label to dial after the endpoint answers. Will supersede 'priority' if provided. Mutually exclusive with 'app'.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "app", + "description": "The application that is subscribed to the originated channel. When the channel is answered, it will be passed to this Stasis application. Mutually exclusive with 'context', 'extension', 'priority', and 'label'.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "appArgs", + "description": "The application arguments to pass to the Stasis application provided by 'app'. Mutually exclusive with 'context', 'extension', 'priority', and 'label'.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "callerId", + "description": "CallerID to use when dialing the endpoint or extension.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "timeout", + "description": "Timeout (in seconds) before giving up dialing, or -1 for no timeout.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "int", + "defaultValue": 30 + }, + { + "name": "variables", + "description": "The \"variables\" key in the body object holds variable key/value pairs to set on the channel on creation. Other keys in the body object are interpreted as query parameters. Ex. { \"endpoint\": \"SIP/Alice\", \"variables\": { \"CALLERID(name)\": \"Alice\" } }", + "paramType": "body", + "required": false, + "dataType": "containers", + "allowMultiple": false + }, + { + "name": "channelId", + "description": "The unique id to assign the channel on creation.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "otherChannelId", + "description": "The unique id to assign the second channel when using local channels.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "originator", + "description": "The unique id of the channel which is originating this one.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "formats", + "description": "The format name capability list to use if originator is not specified. Ex. \"ulaw,slin16\". Format names can be found with \"core show codecs\".", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 400, + "reason": "Invalid parameters for originating a channel." + }, + { + "code": 409, + "reason": "Channel with given unique ID already exists." + } + ] + } + ] + }, + { + "path": "/channels/create", + "description": "Create a channel and place it in a Stasis app, but do not dial the channel yet.", + "operations": [ + { + "httpMethod": "POST", + "summary": "Create channel.", + "nickname": "create", + "responseClass": "Channel", + "parameters": [ + { + "name": "endpoint", + "description": "Endpoint for channel communication", + "paramType": "query", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "app", + "description": "Stasis Application to place channel into", + "paramType": "query", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "appArgs", + "description": "The application arguments to pass to the Stasis application provided by 'app'. Mutually exclusive with 'context', 'extension', 'priority', and 'label'.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "channelId", + "description": "The unique id to assign the channel on creation.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "otherChannelId", + "description": "The unique id to assign the second channel when using local channels.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "originator", + "description": "Unique ID of the calling channel", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "formats", + "description": "The format name capability list to use if originator is not specified. Ex. \"ulaw,slin16\". Format names can be found with \"core show codecs\".", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 409, + "reason": "Channel with given unique ID already exists." + } + ] + } + ] + }, + { + "path": "/channels/{channelId}", + "description": "Active channel", + "operations": [ + { + "httpMethod": "GET", + "summary": "Channel details.", + "nickname": "get", + "responseClass": "Channel", + "parameters": [ + { + "name": "channelId", + "description": "Channel's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Channel not found" + } + ] + }, + { + "httpMethod": "POST", + "summary": "Create a new channel (originate with id).", + "notes": "The new channel is created immediately and a snapshot of it returned. If a Stasis application is provided it will be automatically subscribed to the originated channel for further events and updates.", + "nickname": "originateWithId", + "responseClass": "Channel", + "parameters": [ + { + "name": "channelId", + "description": "The unique id to assign the channel on creation.", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "endpoint", + "description": "Endpoint to call.", + "paramType": "query", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "extension", + "description": "The extension to dial after the endpoint answers. Mutually exclusive with 'app'.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "context", + "description": "The context to dial after the endpoint answers. If omitted, uses 'default'. Mutually exclusive with 'app'.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "priority", + "description": "The priority to dial after the endpoint answers. If omitted, uses 1. Mutually exclusive with 'app'.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "long" + }, + { + "name": "label", + "description": "The label to dial after the endpoint answers. Will supersede 'priority' if provided. Mutually exclusive with 'app'.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "app", + "description": "The application that is subscribed to the originated channel. When the channel is answered, it will be passed to this Stasis application. Mutually exclusive with 'context', 'extension', 'priority', and 'label'.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "appArgs", + "description": "The application arguments to pass to the Stasis application provided by 'app'. Mutually exclusive with 'context', 'extension', 'priority', and 'label'.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "callerId", + "description": "CallerID to use when dialing the endpoint or extension.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "timeout", + "description": "Timeout (in seconds) before giving up dialing, or -1 for no timeout.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "int", + "defaultValue": 30 + }, + { + "name": "variables", + "description": "The \"variables\" key in the body object holds variable key/value pairs to set on the channel on creation. Other keys in the body object are interpreted as query parameters. Ex. { \"endpoint\": \"SIP/Alice\", \"variables\": { \"CALLERID(name)\": \"Alice\" } }", + "paramType": "body", + "required": false, + "dataType": "containers", + "allowMultiple": false + }, + { + "name": "otherChannelId", + "description": "The unique id to assign the second channel when using local channels.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "originator", + "description": "The unique id of the channel which is originating this one.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "formats", + "description": "The format name capability list to use if originator is not specified. Ex. \"ulaw,slin16\". Format names can be found with \"core show codecs\".", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 400, + "reason": "Invalid parameters for originating a channel." + }, + { + "code": 409, + "reason": "Channel with given unique ID already exists." + } + ] + + }, + { + "httpMethod": "DELETE", + "summary": "Delete (i.e. hangup) a channel.", + "nickname": "hangup", + "responseClass": "void", + "parameters": [ + { + "name": "channelId", + "description": "Channel's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "reason", + "description": "Reason for hanging up the channel", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string", + "defalutValue": "normal", + "allowableValues": { + "valueType": "LIST", + "values": [ + "normal", + "busy", + "congestion", + "no_answer", + "timeout", + "rejected", + "unallocated", + "normal_unspecified", + "number_incomplete", + "codec_mismatch", + "interworking", + "failure", + "answered_elsewhere" + ] + } + } + ], + "errorResponses": [ + { + "code": 400, + "reason": "Invalid reason for hangup provided" + }, + { + "code": 404, + "reason": "Channel not found" + } + ] + } + ] + }, + { + "path": "/channels/{channelId}/continue", + "description": "Exit application; continue execution in the dialplan", + "operations": [ + { + "httpMethod": "POST", + "summary": "Exit application; continue execution in the dialplan.", + "nickname": "continueInDialplan", + "responseClass": "void", + "parameters": [ + { + "name": "channelId", + "description": "Channel's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "context", + "description": "The context to continue to.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "extension", + "description": "The extension to continue to.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "priority", + "description": "The priority to continue to.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "int" + }, + { + "name": "label", + "description": "The label to continue to - will supersede 'priority' if both are provided.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Channel not found" + }, + { + "code": 409, + "reason": "Channel not in a Stasis application" + }, + { + "code": 412, + "reason": "Channel in invalid state" + } + ] + } + ] + }, + { + "path": "/channels/{channelId}/move", + "description": "Move the channel from one Stasis application to another.", + "operations": [ + { + "httpMethod": "POST", + "summary": "Move the channel from one Stasis application to another.", + "nickname": "move", + "responseClass": "void", + "parameters": [ + { + "name": "channelId", + "description": "Channel's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "app", + "description": "The channel will be passed to this Stasis application.", + "paramType": "query", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "appArgs", + "description": "The application arguments to pass to the Stasis application provided by 'app'.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": "404", + "reason": "Channel not found" + }, + { + "code": "409", + "reason": "Channel not in a Stasis application" + } + ] + } + ] + }, + { + "path": "/channels/{channelId}/redirect", + "description": "Inform the channel that it should redirect itself to a different location. Note that this will almost certainly cause the channel to exit the application.", + "operations": [ + { + "httpMethod": "POST", + "summary": "Redirect the channel to a different location.", + "nickname": "redirect", + "responseClass": "void", + "parameters": [ + { + "name": "channelId", + "description": "Channel's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "endpoint", + "description": "The endpoint to redirect the channel to", + "paramType": "query", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 400, + "reason": "Endpoint parameter not provided" + }, + { + "code": 404, + "reason": "Channel or endpoint not found" + }, + { + "code": 409, + "reason": "Channel not in a Stasis application" + }, + { + "code": 422, + "reason": "Endpoint is not the same type as the channel" + }, + { + "code": 412, + "reason": "Channel in invalid state" + } + ] + } + ] + }, + { + "path": "/channels/{channelId}/answer", + "description": "Answer a channel", + "operations": [ + { + "httpMethod": "POST", + "summary": "Answer a channel.", + "nickname": "answer", + "responseClass": "void", + "parameters": [ + { + "name": "channelId", + "description": "Channel's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Channel not found" + }, + { + "code": 409, + "reason": "Channel not in a Stasis application" + }, + { + "code": 412, + "reason": "Channel in invalid state" + } + ] + } + ] + }, + { + "path": "/channels/{channelId}/ring", + "description": "Send a ringing indication to a channel", + "operations": [ + { + "httpMethod": "POST", + "summary": "Indicate ringing to a channel.", + "nickname": "ring", + "responseClass": "void", + "parameters": [ + { + "name": "channelId", + "description": "Channel's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Channel not found" + }, + { + "code": 409, + "reason": "Channel not in a Stasis application" + }, + { + "code": 412, + "reason": "Channel in invalid state" + } + ] + }, + { + "httpMethod": "DELETE", + "summary": "Stop ringing indication on a channel if locally generated.", + "nickname": "ringStop", + "responseClass": "void", + "parameters": [ + { + "name": "channelId", + "description": "Channel's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Channel not found" + }, + { + "code": 409, + "reason": "Channel not in a Stasis application" + }, + { + "code": 412, + "reason": "Channel in invalid state" + } + ] + } + ] + }, + { + "path": "/channels/{channelId}/dtmf", + "description": "Send DTMF to a channel", + "operations": [ + { + "httpMethod": "POST", + "summary": "Send provided DTMF to a given channel.", + "nickname": "sendDTMF", + "responseClass": "void", + "parameters": [ + { + "name": "channelId", + "description": "Channel's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "dtmf", + "description": "DTMF To send.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "before", + "description": "Amount of time to wait before DTMF digits (specified in milliseconds) start.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "int", + "defaultValue": 0 + }, + { + "name": "between", + "description": "Amount of time in between DTMF digits (specified in milliseconds).", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "int", + "defaultValue": 100 + }, + { + "name": "duration", + "description": "Length of each DTMF digit (specified in milliseconds).", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "int", + "defaultValue": 100 + }, + { + "name": "after", + "description": "Amount of time to wait after DTMF digits (specified in milliseconds) end.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "int", + "defaultValue": 0 + } + ], + "errorResponses": [ + { + "code": 400, + "reason": "DTMF is required" + }, + { + "code": 404, + "reason": "Channel not found" + }, + { + "code": 409, + "reason": "Channel not in a Stasis application" + }, + { + "code": 412, + "reason": "Channel in invalid state" + } + ] + } + ] + }, + { + "path": "/channels/{channelId}/mute", + "description": "Mute a channel", + "operations": [ + { + "httpMethod": "POST", + "summary": "Mute a channel.", + "nickname": "mute", + "responseClass": "void", + "parameters": [ + { + "name": "channelId", + "description": "Channel's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "direction", + "description": "Direction in which to mute audio", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string", + "defaultValue": "both", + "allowableValues": { + "valueType": "LIST", + "values": [ + "both", + "in", + "out" + ] + } + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Channel not found" + }, + { + "code": 409, + "reason": "Channel not in a Stasis application" + }, + { + "code": 412, + "reason": "Channel in invalid state" + } + ] + }, + { + "httpMethod": "DELETE", + "summary": "Unmute a channel.", + "nickname": "unmute", + "responseClass": "void", + "parameters": [ + { + "name": "channelId", + "description": "Channel's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "direction", + "description": "Direction in which to unmute audio", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string", + "defaultValue": "both", + "allowableValues": { + "valueType": "LIST", + "values": [ + "both", + "in", + "out" + ] + } + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Channel not found" + }, + { + "code": 409, + "reason": "Channel not in a Stasis application" + }, + { + "code": 412, + "reason": "Channel in invalid state" + } + ] + } + ] + }, + { + "path": "/channels/{channelId}/hold", + "description": "Put a channel on hold", + "operations": [ + { + "httpMethod": "POST", + "summary": "Hold a channel.", + "nickname": "hold", + "responseClass": "void", + "parameters": [ + { + "name": "channelId", + "description": "Channel's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Channel not found" + }, + { + "code": 409, + "reason": "Channel not in a Stasis application" + }, + { + "code": 412, + "reason": "Channel in invalid state" + } + ] + }, + { + "httpMethod": "DELETE", + "summary": "Remove a channel from hold.", + "nickname": "unhold", + "responseClass": "void", + "parameters": [ + { + "name": "channelId", + "description": "Channel's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Channel not found" + }, + { + "code": 409, + "reason": "Channel not in a Stasis application" + }, + { + "code": 412, + "reason": "Channel in invalid state" + } + ] + } + ] + }, + { + "path": "/channels/{channelId}/moh", + "description": "Play music on hold to a channel", + "operations": [ + { + "httpMethod": "POST", + "summary": "Play music on hold to a channel.", + "notes": "Using media operations such as /play on a channel playing MOH in this manner will suspend MOH without resuming automatically. If continuing music on hold is desired, the stasis application must reinitiate music on hold.", + "nickname": "startMoh", + "responseClass": "void", + "parameters": [ + { + "name": "channelId", + "description": "Channel's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "mohClass", + "description": "Music on hold class to use", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Channel not found" + }, + { + "code": 409, + "reason": "Channel not in a Stasis application" + }, + { + "code": 412, + "reason": "Channel in invalid state" + } + ] + }, + { + "httpMethod": "DELETE", + "summary": "Stop playing music on hold to a channel.", + "nickname": "stopMoh", + "responseClass": "void", + "parameters": [ + { + "name": "channelId", + "description": "Channel's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Channel not found" + }, + { + "code": 409, + "reason": "Channel not in a Stasis application" + }, + { + "code": 412, + "reason": "Channel in invalid state" + } + ] + } + ] + }, + { + "path": "/channels/{channelId}/silence", + "description": "Play silence to a channel", + "operations": [ + { + "httpMethod": "POST", + "summary": "Play silence to a channel.", + "notes": "Using media operations such as /play on a channel playing silence in this manner will suspend silence without resuming automatically.", + "nickname": "startSilence", + "responseClass": "void", + "parameters": [ + { + "name": "channelId", + "description": "Channel's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Channel not found" + }, + { + "code": 409, + "reason": "Channel not in a Stasis application" + }, + { + "code": 412, + "reason": "Channel in invalid state" + } + ] + }, + { + "httpMethod": "DELETE", + "summary": "Stop playing silence to a channel.", + "nickname": "stopSilence", + "responseClass": "void", + "parameters": [ + { + "name": "channelId", + "description": "Channel's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Channel not found" + }, + { + "code": 409, + "reason": "Channel not in a Stasis application" + }, + { + "code": 412, + "reason": "Channel in invalid state" + } + ] + } + ] + }, + { + "path": "/channels/{channelId}/play", + "description": "Play media to a channel", + "operations": [ + { + "httpMethod": "POST", + "summary": "Start playback of media.", + "notes": "The media URI may be any of a number of URI's. Currently sound:, recording:, number:, digits:, characters:, and tone: URI's are supported. This operation creates a playback resource that can be used to control the playback of media (pause, rewind, fast forward, etc.)", + "nickname": "play", + "responseClass": "Playback", + "parameters": [ + { + "name": "channelId", + "description": "Channel's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "media", + "description": "Media URIs to play.", + "paramType": "query", + "required": true, + "allowMultiple": true, + "dataType": "string" + }, + { + "name": "lang", + "description": "For sounds, selects language for sound.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "offsetms", + "description": "Number of milliseconds to skip before playing. Only applies to the first URI if multiple media URIs are specified.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "int" + }, + { + "name": "skipms", + "description": "Number of milliseconds to skip for forward/reverse operations.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "int", + "defaultValue": 3000 + }, + { + "name": "playbackId", + "description": "Playback ID.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Channel not found" + }, + { + "code": 409, + "reason": "Channel not in a Stasis application" + }, + { + "code": 412, + "reason": "Channel in invalid state" + } + ] + } + ] + }, + { + "path": "/channels/{channelId}/play/{playbackId}", + "description": "Play media to a channel", + "operations": [ + { + "httpMethod": "POST", + "summary": "Start playback of media and specify the playbackId.", + "notes": "The media URI may be any of a number of URI's. Currently sound:, recording:, number:, digits:, characters:, and tone: URI's are supported. This operation creates a playback resource that can be used to control the playback of media (pause, rewind, fast forward, etc.)", + "nickname": "playWithId", + "responseClass": "Playback", + "parameters": [ + { + "name": "channelId", + "description": "Channel's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "playbackId", + "description": "Playback ID.", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "media", + "description": "Media URIs to play.", + "paramType": "query", + "required": true, + "allowMultiple": true, + "dataType": "string" + }, + { + "name": "lang", + "description": "For sounds, selects language for sound.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "offsetms", + "description": "Number of milliseconds to skip before playing. Only applies to the first URI if multiple media URIs are specified.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "int" + }, + { + "name": "skipms", + "description": "Number of milliseconds to skip for forward/reverse operations.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "int", + "defaultValue": 3000 + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Channel not found" + }, + { + "code": 409, + "reason": "Channel not in a Stasis application" + }, + { + "code": 412, + "reason": "Channel in invalid state" + } + ] + } + ] + }, + { + "path": "/channels/{channelId}/record", + "description": "Record audio from a channel", + "operations": [ + { + "httpMethod": "POST", + "summary": "Start a recording.", + "notes": "Record audio from a channel. Note that this will not capture audio sent to the channel. The bridge itself has a record feature if that's what you want.", + "nickname": "record", + "responseClass": "LiveRecording", + "parameters": [ + { + "name": "channelId", + "description": "Channel's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "name", + "description": "Recording's filename", + "paramType": "query", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "format", + "description": "Format to encode audio in", + "paramType": "query", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "maxDurationSeconds", + "description": "Maximum duration of the recording, in seconds. 0 for no limit", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "int", + "defaultValue": 0, + "allowableValues": { + "valueType": "RANGE", + "min": 0 + } + }, + { + "name": "maxSilenceSeconds", + "description": "Maximum duration of silence, in seconds. 0 for no limit", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "int", + "defaultValue": 0, + "allowableValues": { + "valueType": "RANGE", + "min": 0 + } + }, + { + "name": "ifExists", + "description": "Action to take if a recording with the same name already exists.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string", + "defaultValue": "fail", + "allowableValues": { + "valueType": "LIST", + "values": [ + "fail", + "overwrite", + "append" + ] + } + }, + { + "name": "beep", + "description": "Play beep when recording begins", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "boolean", + "defaultValue": false + }, + { + "name": "terminateOn", + "description": "DTMF input to terminate recording", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string", + "defaultValue": "none", + "allowableValues": { + "valueType": "LIST", + "values": [ + "none", + "any", + "*", + "#" + ] + } + } + ], + "errorResponses": [ + { + "code": 400, + "reason": "Invalid parameters" + }, + { + "code": 404, + "reason": "Channel not found" + }, + { + "code": 409, + "reason": "Channel is not in a Stasis application; the channel is currently bridged with other hcannels; A recording with the same name already exists on the system and can not be overwritten because it is in progress or ifExists=fail" + }, + { + "code": 422, + "reason": "The format specified is unknown on this system" + } + ] + } + ] + }, + { + "path": "/channels/{channelId}/variable", + "description": "Variables on a channel", + "operations": [ + { + "httpMethod": "GET", + "summary": "Get the value of a channel variable or function.", + "nickname": "getChannelVar", + "responseClass": "Variable", + "parameters": [ + { + "name": "channelId", + "description": "Channel's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "variable", + "description": "The channel variable or function to get", + "paramType": "query", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 400, + "reason": "Missing variable parameter." + }, + { + "code": 404, + "reason": "Channel or variable not found" + }, + { + "code": 409, + "reason": "Channel not in a Stasis application" + } + ] + }, + { + "httpMethod": "POST", + "summary": "Set the value of a channel variable or function.", + "nickname": "setChannelVar", + "responseClass": "void", + "parameters": [ + { + "name": "channelId", + "description": "Channel's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "variable", + "description": "The channel variable or function to set", + "paramType": "query", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "value", + "description": "The value to set the variable to", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 400, + "reason": "Missing variable parameter." + }, + { + "code": 404, + "reason": "Channel not found" + }, + { + "code": 409, + "reason": "Channel not in a Stasis application" + } + ] + } + ] + }, + { + "path": "/channels/{channelId}/snoop", + "description": "Snoop (spy/whisper) on a channel", + "operations": [ + { + "httpMethod": "POST", + "summary": "Start snooping.", + "notes": "Snoop (spy/whisper) on a specific channel.", + "nickname": "snoopChannel", + "responseClass": "Channel", + "parameters": [ + { + "name": "channelId", + "description": "Channel's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "spy", + "description": "Direction of audio to spy on", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string", + "defaultValue": "none", + "allowableValues": { + "valueType": "LIST", + "values": [ + "none", + "both", + "out", + "in" + ] + } + }, + { + "name": "whisper", + "description": "Direction of audio to whisper into", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string", + "defaultValue": "none", + "allowableValues": { + "valueType": "LIST", + "values": [ + "none", + "both", + "out", + "in" + ] + } + }, + { + "name": "app", + "description": "Application the snooping channel is placed into", + "paramType": "query", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "appArgs", + "description": "The application arguments to pass to the Stasis application", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "snoopId", + "description": "Unique ID to assign to snooping channel", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 400, + "reason": "Invalid parameters" + }, + { + "code": 404, + "reason": "Channel not found" + } + ] + } + ] + }, + { + "path": "/channels/{channelId}/snoop/{snoopId}", + "description": "Snoop (spy/whisper) on a channel", + "operations": [ + { + "httpMethod": "POST", + "summary": "Start snooping.", + "notes": "Snoop (spy/whisper) on a specific channel.", + "nickname": "snoopChannelWithId", + "responseClass": "Channel", + "parameters": [ + { + "name": "channelId", + "description": "Channel's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "snoopId", + "description": "Unique ID to assign to snooping channel", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "spy", + "description": "Direction of audio to spy on", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string", + "defaultValue": "none", + "allowableValues": { + "valueType": "LIST", + "values": [ + "none", + "both", + "out", + "in" + ] + } + }, + { + "name": "whisper", + "description": "Direction of audio to whisper into", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string", + "defaultValue": "none", + "allowableValues": { + "valueType": "LIST", + "values": [ + "none", + "both", + "out", + "in" + ] + } + }, + { + "name": "app", + "description": "Application the snooping channel is placed into", + "paramType": "query", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "appArgs", + "description": "The application arguments to pass to the Stasis application", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 400, + "reason": "Invalid parameters" + }, + { + "code": 404, + "reason": "Channel not found" + } + ] + } + ] + }, + { + "path": "/channels/{channelId}/dial", + "description": "Dial a channel", + "operations": [ + { + "httpMethod": "POST", + "summary": "Dial a created channel.", + "nickname": "dial", + "responseClass": "void", + "parameters": [ + { + "name": "channelId", + "description": "Channel's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "caller", + "description": "Channel ID of caller", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "timeout", + "description": "Dial timeout", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "int", + "defaultValue": 0, + "allowableValues": { + "valueType": "RANGE", + "min": 0 + } + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Channel cannot be found." + }, + { + "code": 409, + "reason": "Channel cannot be dialed." + } + ] + } + ] + } + ], + "models": { + "Dialed": { + "id": "Dialed", + "description": "Dialed channel information.", + "properties": {} + }, + "DialplanCEP": { + "id": "DialplanCEP", + "description": "Dialplan location (context/extension/priority)", + "properties": { + "context": { + "required": true, + "type": "string", + "description": "Context in the dialplan" + }, + "exten": { + "required": true, + "type": "string", + "description": "Extension in the dialplan" + }, + "priority": { + "required": true, + "type": "long", + "description": "Priority in the dialplan" + } + } + }, + "CallerID": { + "id": "CallerID", + "description": "Caller identification", + "properties": { + "name": { + "required": true, + "type": "string" + }, + "number": { + "required": true, + "type": "string" + } + } + }, + "Channel": { + "id": "Channel", + "description": "A specific communication connection between Asterisk and an Endpoint.", + "properties": { + "id": { + "required": true, + "type": "string", + "description": "Unique identifier of the channel.\n\nThis is the same as the Uniqueid field in AMI." + }, + "name": { + "required": true, + "type": "string", + "description": "Name of the channel (i.e. SIP/foo-0000a7e3)" + }, + "state": { + "required": true, + "type": "string", + "allowableValues": { + "valueType": "LIST", + "values": [ + "Down", + "Rsrved", + "OffHook", + "Dialing", + "Ring", + "Ringing", + "Up", + "Busy", + "Dialing Offhook", + "Pre-ring", + "Unknown" + ] + } + }, + "caller": { + "required": true, + "type": "CallerID" + }, + "connected": { + "required": true, + "type": "CallerID" + }, + "accountcode": { + "required": true, + "type": "string" + }, + "dialplan": { + "required": true, + "type": "DialplanCEP", + "description": "Current location in the dialplan" + }, + "creationtime": { + "required": true, + "type": "Date", + "description": "Timestamp when channel was created" + }, + "language": { + "required": true, + "type": "string", + "description": "The default spoken language" + }, + "channelvars": { + "required": false, + "type": "object", + "description": "Channel variables" + } + } + } + } +} diff --git a/codegen/src/main/resources/codegen-data/ari_4_0_1/deviceStates.json b/codegen/src/main/resources/codegen-data/ari_4_0_1/deviceStates.json new file mode 100644 index 00000000..bd389355 --- /dev/null +++ b/codegen/src/main/resources/codegen-data/ari_4_0_1/deviceStates.json @@ -0,0 +1,154 @@ +{ + "_copyright": "Copyright (C) 2012 - 2013, Digium, Inc.", + "_author": "Kevin Harwell ", + "_svn_revision": "$Revision$", + "apiVersion": "2.0.0", + "swaggerVersion": "1.1", + "basePath": "http://localhost:8088/ari", + "resourcePath": "/api-docs/deviceStates.{format}", + "requiresModules": [ + "res_stasis_device_state" + ], + "apis": [ + { + "path": "/deviceStates", + "description": "Device states", + "operations": [ + { + "httpMethod": "GET", + "summary": "List all ARI controlled device states.", + "nickname": "list", + "responseClass": "List[DeviceState]" + } + ] + }, + { + "path": "/deviceStates/{deviceName}", + "description": "Device state", + "operations": [ + { + "httpMethod": "GET", + "summary": "Retrieve the current state of a device.", + "nickname": "get", + "responseClass": "DeviceState", + "parameters": [ + { + "name": "deviceName", + "description": "Name of the device", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ] + }, + { + "httpMethod": "PUT", + "summary": "Change the state of a device controlled by ARI. (Note - implicitly creates the device state).", + "nickname": "update", + "responseClass": "void", + "parameters": [ + { + "name": "deviceName", + "description": "Name of the device", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "deviceState", + "description": "Device state value", + "paramType": "query", + "required": true, + "allowMultiple": false, + "dataType": "string", + "allowableValues": { + "valueType": "LIST", + "values": [ + "NOT_INUSE", + "INUSE", + "BUSY", + "INVALID", + "UNAVAILABLE", + "RINGING", + "RINGINUSE", + "ONHOLD" + ] + } + + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Device name is missing" + }, + { + "code": 409, + "reason": "Uncontrolled device specified" + } + ] + }, + { + "httpMethod": "DELETE", + "summary": "Destroy a device-state controlled by ARI.", + "nickname": "delete", + "responseClass": "void", + "parameters": [ + { + "name": "deviceName", + "description": "Name of the device", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Device name is missing" + }, + { + "code": 409, + "reason": "Uncontrolled device specified" + } + ] + } + ] + } + ], + "models": { + "DeviceState": { + "id": "DeviceState", + "description": "Represents the state of a device.", + "properties": { + "name": { + "type": "string", + "description": "Name of the device.", + "required": true + }, + "state": { + "type": "string", + "description": "Device's state", + "required": true, + "allowableValues": { + "valueType": "LIST", + "values": [ + "UNKNOWN", + "NOT_INUSE", + "INUSE", + "BUSY", + "INVALID", + "UNAVAILABLE", + "RINGING", + "RINGINUSE", + "ONHOLD" + ] + } + } + } + } + } +} diff --git a/codegen/src/main/resources/codegen-data/ari_4_0_1/endpoints.json b/codegen/src/main/resources/codegen-data/ari_4_0_1/endpoints.json new file mode 100644 index 00000000..264c0eb2 --- /dev/null +++ b/codegen/src/main/resources/codegen-data/ari_4_0_1/endpoints.json @@ -0,0 +1,279 @@ +{ + "_copyright": "Copyright (C) 2012 - 2013, Digium, Inc.", + "_author": "David M. Lee, II ", + "_svn_revision": "$Revision$", + "apiVersion": "2.0.0", + "swaggerVersion": "1.1", + "basePath": "http://localhost:8088/ari", + "resourcePath": "/api-docs/endpoints.{format}", + "apis": [ + { + "path": "/endpoints", + "description": "Asterisk endpoints", + "operations": [ + { + "httpMethod": "GET", + "summary": "List all endpoints.", + "nickname": "list", + "responseClass": "List[Endpoint]" + } + ] + }, + { + "path": "/endpoints/sendMessage", + "description": "Send a message to some technology URI or endpoint.", + "operations": [ + { + "httpMethod": "PUT", + "summary": "Send a message to some technology URI or endpoint.", + "nickname": "sendMessage", + "responseClass": "void", + "parameters": [ + { + "name": "to", + "description": "The endpoint resource or technology specific URI to send the message to. Valid resources are sip, pjsip, and xmpp.", + "paramType": "query", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "from", + "description": "The endpoint resource or technology specific identity to send this message from. Valid resources are sip, pjsip, and xmpp.", + "paramType": "query", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "body", + "description": "The body of the message", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "variables", + "descriptioni": "The \"variables\" key in the body object holds technology specific key/value pairs to append to the message. These can be interpreted and used by the various resource types; for example, pjsip and sip resource types will add the key/value pairs as SIP headers,", + "paramType": "body", + "required": false, + "dataType": "containers", + "allowMultiple": false + } + ], + "errorResponses": [ + { + "code": 400, + "reason": "Invalid parameters for sending a message." + }, + { + "code": 404, + "reason": "Endpoint not found" + } + ] + } + ] + }, + { + "path": "/endpoints/{tech}", + "description": "Asterisk endpoints", + "operations": [ + { + "httpMethod": "GET", + "summary": "List available endoints for a given endpoint technology.", + "nickname": "listByTech", + "responseClass": "List[Endpoint]", + "parameters": [ + { + "name": "tech", + "description": "Technology of the endpoints (sip,iax2,...)", + "paramType": "path", + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Endpoints not found" + } + ] + } + ] + }, + { + "path": "/endpoints/{tech}/{resource}", + "description": "Single endpoint", + "operations": [ + { + "httpMethod": "GET", + "summary": "Details for an endpoint.", + "nickname": "get", + "responseClass": "Endpoint", + "parameters": [ + { + "name": "tech", + "description": "Technology of the endpoint", + "paramType": "path", + "dataType": "string" + }, + { + "name": "resource", + "description": "ID of the endpoint", + "paramType": "path", + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 400, + "reason": "Invalid parameters for sending a message." + }, + { + "code": 404, + "reason": "Endpoints not found" + } + ] + } + ] + }, + { + "path": "/endpoints/{tech}/{resource}/sendMessage", + "description": "Send a message to some endpoint in a technology.", + "operations": [ + { + "httpMethod": "PUT", + "summary": "Send a message to some endpoint in a technology.", + "nickname": "sendMessageToEndpoint", + "responseClass": "void", + "parameters": [ + { + "name": "tech", + "description": "Technology of the endpoint", + "paramType": "path", + "dataType": "string" + }, + { + "name": "resource", + "description": "ID of the endpoint", + "paramType": "path", + "dataType": "string" + }, + { + "name": "from", + "description": "The endpoint resource or technology specific identity to send this message from. Valid resources are sip, pjsip, and xmpp.", + "paramType": "query", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "body", + "description": "The body of the message", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "variables", + "descriptioni": "The \"variables\" key in the body object holds technology specific key/value pairs to append to the message. These can be interpreted and used by the various resource types; for example, pjsip and sip resource types will add the key/value pairs as SIP headers,", + "paramType": "body", + "required": false, + "dataType": "containers", + "allowMultiple": false + } + ], + "errorResponses": [ + { + "code": 400, + "reason": "Invalid parameters for sending a message." + }, + { + "code": 404, + "reason": "Endpoint not found" + } + ] + } + ] + } + ], + "models": { + "Endpoint": { + "id": "Endpoint", + "description": "An external device that may offer/accept calls to/from Asterisk.\n\nUnlike most resources, which have a single unique identifier, an endpoint is uniquely identified by the technology/resource pair.", + "properties": { + "technology": { + "type": "string", + "description": "Technology of the endpoint", + "required": true + }, + "resource": { + "type": "string", + "description": "Identifier of the endpoint, specific to the given technology.", + "required": true + }, + "state": { + "type": "string", + "description": "Endpoint's state", + "required": false, + "allowableValues": { + "valueType": "LIST", + "values": [ + "unknown", + "offline", + "online" + ] + } + }, + "channel_ids": { + "type": "List[string]", + "description": "Id's of channels associated with this endpoint", + "required": true + } + } + }, + "TextMessageVariable": { + "id": "TextMessageVariable", + "description": "A key/value pair variable in a text message.", + "properties": { + "key": { + "type": "string", + "description": "A unique key identifying the variable.", + "required": true + }, + "value": { + "type": "string", + "description": "The value of the variable.", + "required": true + } + } + }, + "TextMessage": { + "id": "TextMessage", + "description": "A text message.", + "properties": { + "from": { + "type": "string", + "description": "A technology specific URI specifying the source of the message. For sip and pjsip technologies, any SIP URI can be specified. For xmpp, the URI must correspond to the client connection being used to send the message.", + "required": true + }, + "to": { + "type": "string", + "description": "A technology specific URI specifying the destination of the message. Valid technologies include sip, pjsip, and xmp. The destination of a message should be an endpoint.", + "required": true + }, + "body": { + "type": "string", + "description": "The text of the message.", + "required": true + }, + "variables": { + "type": "List[TextMessageVariable]", + "description": "Technology specific key/value pairs associated with the message.", + "required": false + } + } + } + } +} diff --git a/codegen/src/main/resources/codegen-data/ari_4_0_1/events.json b/codegen/src/main/resources/codegen-data/ari_4_0_1/events.json new file mode 100644 index 00000000..c9f4b6ae --- /dev/null +++ b/codegen/src/main/resources/codegen-data/ari_4_0_1/events.json @@ -0,0 +1,918 @@ +{ + "_copyright": "Copyright (C) 2012 - 2013, Digium, Inc.", + "_author": "David M. Lee, II ", + "_svn_revision": "$Revision$", + "apiVersion": "2.0.0", + "swaggerVersion": "1.2", + "basePath": "http://localhost:8088/ari", + "resourcePath": "/api-docs/events.{format}", + "requiresModules": [ + "res_http_websocket" + ], + "apis": [ + { + "path": "/events", + "description": "Events from Asterisk to applications", + "operations": [ + { + "httpMethod": "GET", + "upgrade": "websocket", + "websocketProtocol": "ari", + "summary": "WebSocket connection for events.", + "nickname": "eventWebsocket", + "responseClass": "Message", + "parameters": [ + { + "name": "app", + "description": "Applications to subscribe to.", + "paramType": "query", + "required": true, + "allowMultiple": true, + "dataType": "string" + }, + { + "name": "subscribeAll", + "description": "Subscribe to all Asterisk events. If provided, the applications listed will be subscribed to all events, effectively disabling the application specific subscriptions. Default is 'false'.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "boolean" + } + ] + } + ] + }, + { + "path": "/events/user/{eventName}", + "description": "Stasis application user events", + "operations": [ + { + "httpMethod": "POST", + "summary": "Generate a user event.", + "nickname": "userEvent", + "responseClass": "void", + "parameters": [ + { + "name": "eventName", + "description": "Event name", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "application", + "description": "The name of the application that will receive this event", + "paramType": "query", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "source", + "description": "URI for event source (channel:{channelId}, bridge:{bridgeId}, endpoint:{tech}/{resource}, deviceState:{deviceName}", + "paramType": "query", + "required": false, + "allowMultiple": true, + "dataType": "string" + }, + { + "name": "variables", + "description": "The \"variables\" key in the body object holds custom key/value pairs to add to the user event. Ex. { \"variables\": { \"key\": \"value\" } }", + "paramType": "body", + "required": false, + "allowMultiple": false, + "dataType": "containers" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Application does not exist." + }, + { + "code": 422, + "reason": "Event source not found." + }, + { + "code": 400, + "reason": "Invalid even tsource URI or userevent data." + } + ] + } + ] + } + ], + "models": { + "Message": { + "id": "Message", + "description": "Base type for errors and events", + "discriminator": "type", + "properties": { + "type": { + "type": "string", + "required": true, + "description": "Indicates the type of this message." + }, + "asterisk_id": { + "type": "string", + "required": false, + "description": "The unique ID for the Asterisk instance that raised this event." + } + }, + "subTypes": [ + "MissingParams", + "Event" + ] + }, + "MissingParams": { + "id": "MissingParams", + "description": "Error event sent when required params are missing.", + "properties": { + "params": { + "required": true, + "type": "List[string]", + "description": "A list of the missing parameters" + } + } + }, + "Event": { + "id": "Event", + "description": "Base type for asynchronous events from Asterisk.", + "properties": { + "application": { + "type": "string", + "description": "Name of the application receiving the event.", + "required": true + }, + "timestamp": { + "type": "Date", + "description": "Time at which this event was created.", + "required": false + } + }, + "subTypes": [ + "DeviceStateChanged", + "PlaybackStarted", + "PlaybackContinuing", + "PlaybackFinished", + "RecordingStarted", + "RecordingFinished", + "RecordingFailed", + "ApplicationMoveFailed", + "ApplicationReplaced", + "BridgeCreated", + "BridgeDestroyed", + "BridgeMerged", + "BridgeBlindTransfer", + "BridgeAttendedTransfer", + "BridgeVideoSourceChanged", + "ChannelCreated", + "ChannelDestroyed", + "ChannelEnteredBridge", + "ChannelLeftBridge", + "ChannelStateChange", + "ChannelDtmfReceived", + "ChannelDialplan", + "ChannelCallerId", + "ChannelUserevent", + "ChannelHangupRequest", + "ChannelVarset", + "ChannelTalkingStarted", + "ChannelTalkingFinished", + "ChannelHold", + "ChannelUnhold", + "ContactStatusChange", + "EndpointStateChange", + "Dial", + "StasisEnd", + "StasisStart", + "TextMessageReceived", + "ChannelConnectedLine", + "PeerStatusChange" + ] + }, + "ContactInfo": { + "id": "ContactInfo", + "description": "Detailed information about a contact on an endpoint.", + "properties": { + "uri": { + "type": "string", + "description": "The location of the contact.", + "required": true + }, + "contact_status": { + "type": "string", + "description": "The current status of the contact.", + "required": true, + "allowableValues": { + "valueType": "LIST", + "values": [ + "Unreachable", + "Reachable", + "Unknown", + "NonQualified", + "Removed" + ] + } + }, + "aor": { + "type": "string", + "description": "The Address of Record this contact belongs to.", + "required": true + }, + "roundtrip_usec": { + "type": "string", + "description": "Current round trip time, in microseconds, for the contact.", + "required": false + } + } + }, + "Peer": { + "id": "Peer", + "description": "Detailed information about a remote peer that communicates with Asterisk.", + "properties": { + "peer_status": { + "type": "string", + "description": "The current state of the peer. Note that the values of the status are dependent on the underlying peer technology.", + "required": true + }, + "cause": { + "type": "string", + "description": "An optional reason associated with the change in peer_status.", + "required": false + }, + "address": { + "type": "string", + "description": "The IP address of the peer.", + "required": false + }, + "port": { + "type": "string", + "description": "The port of the peer.", + "required": false + }, + "time": { + "type": "string", + "description": "The last known time the peer was contacted.", + "required": false + } + } + }, + "DeviceStateChanged": { + "id": "DeviceStateChanged", + "description": "Notification that a device state has changed.", + "properties": { + "device_state": { + "type": "DeviceState", + "description": "Device state object", + "required": true + } + } + }, + "PlaybackStarted": { + "id": "PlaybackStarted", + "description": "Event showing the start of a media playback operation.", + "properties": { + "playback": { + "type": "Playback", + "description": "Playback control object", + "required": true + } + } + }, + "PlaybackContinuing": { + "id": "PlaybackContinuing", + "description": "Event showing the continuation of a media playback operation from one media URI to the next in the list.", + "properties": { + "playback": { + "type": "Playback", + "description": "Playback control object", + "required": true + } + } + }, + "PlaybackFinished": { + "id": "PlaybackFinished", + "description": "Event showing the completion of a media playback operation.", + "properties": { + "playback": { + "type": "Playback", + "description": "Playback control object", + "required": true + } + } + }, + "RecordingStarted": { + "id": "RecordingStarted", + "description": "Event showing the start of a recording operation.", + "properties": { + "recording": { + "type": "LiveRecording", + "description": "Recording control object", + "required": true + } + } + }, + "RecordingFinished": { + "id": "RecordingFinished", + "description": "Event showing the completion of a recording operation.", + "properties": { + "recording": { + "type": "LiveRecording", + "description": "Recording control object", + "required": true + } + } + }, + "RecordingFailed": { + "id": "RecordingFailed", + "description": "Event showing failure of a recording operation.", + "properties": { + "recording": { + "type": "LiveRecording", + "description": "Recording control object", + "required": true + } + } + }, + "ApplicationMoveFailed": { + "id": "ApplicationMoveFailed", + "description": "Notification that trying to move a channel to another Stasis application failed.", + "properties": { + "channel": { + "required": true, + "type": "Channel" + }, + "destination": { + "required": true, + "type": "string" + }, + "args": { + "required": true, + "type": "List[string]", + "description": "Arguments to the application" + } + } + }, + "ApplicationReplaced": { + "id": "ApplicationReplaced", + "description": "Notification that another WebSocket has taken over for an application.\n\nAn application may only be subscribed to by a single WebSocket at a time. If multiple WebSockets attempt to subscribe to the same application, the newer WebSocket wins, and the older one receives this event.", + "properties": {} + }, + "BridgeCreated": { + "id": "BridgeCreated", + "description": "Notification that a bridge has been created.", + "properties": { + "bridge": { + "required": true, + "type": "Bridge" + } + } + }, + "BridgeDestroyed": { + "id": "BridgeDestroyed", + "description": "Notification that a bridge has been destroyed.", + "properties": { + "bridge": { + "required": true, + "type": "Bridge" + } + } + }, + "BridgeMerged": { + "id": "BridgeMerged", + "description": "Notification that one bridge has merged into another.", + "properties": { + "bridge": { + "required": true, + "type": "Bridge" + }, + "bridge_from": { + "required": true, + "type": "Bridge" + } + } + }, + "BridgeVideoSourceChanged": { + "id": "BridgeVideoSourceChanged", + "description": "Notification that the source of video in a bridge has changed.", + "properties": { + "bridge": { + "required": true, + "type": "Bridge" + }, + "old_video_source_id": { + "required": false, + "type": "string" + } + } + }, + "BridgeBlindTransfer": { + "id": "BridgeBlindTransfer", + "description": "Notification that a blind transfer has occurred.", + "properties": { + "channel": { + "description": "The channel performing the blind transfer", + "required": true, + "type": "Channel" + }, + "replace_channel": { + "description": "The channel that is replacing transferer when the transferee(s) can not be transferred directly", + "required": false, + "type": "Channel" + }, + "transferee": { + "description": "The channel that is being transferred", + "required": false, + "type": "Channel" + }, + "exten": { + "description": "The extension transferred to", + "required": true, + "type": "string" + }, + "context": { + "description": "The context transferred to", + "required": true, + "type": "string" + }, + "result": { + "description": "The result of the transfer attempt", + "required": true, + "type": "string" + }, + "is_external": { + "description": "Whether the transfer was externally initiated or not", + "required": true, + "type": "boolean" + }, + "bridge": { + "description": "The bridge being transferred", + "type": "Bridge" + } + } + }, + "BridgeAttendedTransfer": { + "id": "BridgeAttendedTransfer", + "description": "Notification that an attended transfer has occurred.", + "properties": { + "transferer_first_leg": { + "description": "First leg of the transferer", + "required": true, + "type": "Channel" + }, + "transferer_second_leg": { + "description": "Second leg of the transferer", + "required": true, + "type": "Channel" + }, + "replace_channel": { + "description": "The channel that is replacing transferer_first_leg in the swap", + "required": false, + "type": "Channel" + }, + "transferee": { + "description": "The channel that is being transferred", + "required": false, + "type": "Channel" + }, + "transfer_target": { + "description": "The channel that is being transferred to", + "required": false, + "type": "Channel" + }, + "result": { + "description": "The result of the transfer attempt", + "required": true, + "type": "string" + }, + "is_external": { + "description": "Whether the transfer was externally initiated or not", + "required": true, + "type": "boolean" + }, + "transferer_first_leg_bridge": { + "description": "Bridge the transferer first leg is in", + "type": "Bridge" + }, + "transferer_second_leg_bridge": { + "description": "Bridge the transferer second leg is in", + "type": "Bridge" + }, + "destination_type": { + "description": "How the transfer was accomplished", + "required": true, + "type": "string" + }, + "destination_bridge": { + "description": "Bridge that survived the merge result", + "type": "string" + }, + "destination_application": { + "description": "Application that has been transferred into", + "type": "string" + }, + "destination_link_first_leg": { + "description": "First leg of a link transfer result", + "type": "Channel" + }, + "destination_link_second_leg": { + "description": "Second leg of a link transfer result", + "type": "Channel" + }, + "destination_threeway_channel": { + "description": "Transferer channel that survived the threeway result", + "type": "Channel" + }, + "destination_threeway_bridge": { + "description": "Bridge that survived the threeway result", + "type": "Bridge" + } + } + }, + "ChannelCreated": { + "id": "ChannelCreated", + "description": "Notification that a channel has been created.", + "properties": { + "channel": { + "required": true, + "type": "Channel" + } + } + }, + "ChannelDestroyed": { + "id": "ChannelDestroyed", + "description": "Notification that a channel has been destroyed.", + "properties": { + "cause": { + "required": true, + "description": "Integer representation of the cause of the hangup", + "type": "int" + }, + "cause_txt": { + "required": true, + "description": "Text representation of the cause of the hangup", + "type": "string" + }, + "channel": { + "required": true, + "type": "Channel" + } + } + }, + "ChannelEnteredBridge": { + "id": "ChannelEnteredBridge", + "description": "Notification that a channel has entered a bridge.", + "properties": { + "bridge": { + "required": true, + "type": "Bridge" + }, + "channel": { + "type": "Channel" + } + } + }, + "ChannelLeftBridge": { + "id": "ChannelLeftBridge", + "description": "Notification that a channel has left a bridge.", + "properties": { + "bridge": { + "required": true, + "type": "Bridge" + }, + "channel": { + "required": true, + "type": "Channel" + } + } + }, + "ChannelStateChange": { + "id": "ChannelStateChange", + "description": "Notification of a channel's state change.", + "properties": { + "channel": { + "required": true, + "type": "Channel" + } + } + }, + "ChannelDtmfReceived": { + "id": "ChannelDtmfReceived", + "description": "DTMF received on a channel.\n\nThis event is sent when the DTMF ends. There is no notification about the start of DTMF", + "properties": { + "digit": { + "required": true, + "type": "string", + "description": "DTMF digit received (0-9, A-E, # or *)" + }, + "duration_ms": { + "required": true, + "type": "int", + "description": "Number of milliseconds DTMF was received" + }, + "channel": { + "required": true, + "type": "Channel", + "description": "The channel on which DTMF was received" + } + } + }, + "ChannelDialplan": { + "id": "ChannelDialplan", + "description": "Channel changed location in the dialplan.", + "properties": { + "channel": { + "required": true, + "type": "Channel", + "description": "The channel that changed dialplan location." + }, + "dialplan_app": { + "required": true, + "type": "string", + "description": "The application about to be executed." + }, + "dialplan_app_data": { + "required": true, + "type": "string", + "description": "The data to be passed to the application." + } + } + }, + "ChannelCallerId": { + "id": "ChannelCallerId", + "description": "Channel changed Caller ID.", + "properties": { + "caller_presentation": { + "required": true, + "type": "int", + "description": "The integer representation of the Caller Presentation value." + }, + "caller_presentation_txt": { + "required": true, + "type": "string", + "description": "The text representation of the Caller Presentation value." + }, + "channel": { + "required": true, + "type": "Channel", + "description": "The channel that changed Caller ID." + } + } + }, + "ChannelUserevent": { + "id": "ChannelUserevent", + "description": "User-generated event with additional user-defined fields in the object.", + "properties": { + "eventname": { + "required": true, + "type": "string", + "description": "The name of the user event." + }, + "channel": { + "required": false, + "type": "Channel", + "description": "A channel that is signaled with the user event." + }, + "bridge": { + "required": false, + "type": "Bridge", + "description": "A bridge that is signaled with the user event." + }, + "endpoint": { + "required": false, + "type": "Endpoint", + "description": "A endpoint that is signaled with the user event." + }, + "userevent": { + "required": true, + "type": "object", + "description": "Custom Userevent data" + } + } + }, + "ChannelHangupRequest": { + "id": "ChannelHangupRequest", + "description": "A hangup was requested on the channel.", + "properties": { + "cause": { + "type": "int", + "description": "Integer representation of the cause of the hangup." + }, + "soft": { + "type": "boolean", + "description": "Whether the hangup request was a soft hangup request." + }, + "channel": { + "required": true, + "type": "Channel", + "description": "The channel on which the hangup was requested." + } + } + }, + "ChannelVarset": { + "id": "ChannelVarset", + "description": "Channel variable changed.", + "properties": { + "variable": { + "required": true, + "type": "string", + "description": "The variable that changed." + }, + "value": { + "required": true, + "type": "string", + "description": "The new value of the variable." + }, + "channel": { + "required": false, + "type": "Channel", + "description": "The channel on which the variable was set.\n\nIf missing, the variable is a global variable." + } + } + }, + "ChannelHold": { + "id": "ChannelHold", + "description": "A channel initiated a media hold.", + "properties": { + "channel": { + "required": true, + "type": "Channel", + "description": "The channel that initiated the hold event." + }, + "musicclass": { + "required": false, + "type": "string", + "description": "The music on hold class that the initiator requested." + } + } + }, + "ChannelUnhold": { + "id": "ChannelUnhold", + "description": "A channel initiated a media unhold.", + "properties": { + "channel": { + "required": true, + "type": "Channel", + "description": "The channel that initiated the unhold event." + } + } + }, + "ChannelTalkingStarted": { + "id": "ChannelTalkingStarted", + "description": "Talking was detected on the channel.", + "properties": { + "channel": { + "required": true, + "type": "Channel", + "description": "The channel on which talking started." + } + } + }, + "ChannelTalkingFinished": { + "id": "ChannelTalkingFinished", + "description": "Talking is no longer detected on the channel.", + "properties": { + "channel": { + "required": true, + "type": "Channel", + "description": "The channel on which talking completed." + }, + "duration": { + "required": true, + "type": "int", + "description": "The length of time, in milliseconds, that talking was detected on the channel" + } + } + }, + "ContactStatusChange": { + "id": "ContactStatusChange", + "description": "The state of a contact on an endpoint has changed.", + "properties": { + "endpoint": { + "required": true, + "type": "Endpoint" + }, + "contact_info": { + "required": true, + "type": "ContactInfo" + } + } + }, + "PeerStatusChange": { + "id": "PeerStatusChange", + "description": "The state of a peer associated with an endpoint has changed.", + "properties": { + "endpoint": { + "required": true, + "type": "Endpoint" + }, + "peer": { + "required": true, + "type": "Peer" + } + } + }, + "EndpointStateChange": { + "id": "EndpointStateChange", + "description": "Endpoint state changed.", + "properties": { + "endpoint": { + "required": true, + "type": "Endpoint" + } + } + }, + "Dial": { + "id": "Dial", + "description": "Dialing state has changed.", + "properties": { + "caller": { + "required": false, + "type": "Channel", + "description": "The calling channel." + }, + "peer": { + "required": true, + "type": "Channel", + "description": "The dialed channel." + }, + "forward": { + "required": false, + "type": "string", + "description": "Forwarding target requested by the original dialed channel." + }, + "forwarded": { + "required": false, + "type": "Channel", + "description": "Channel that the caller has been forwarded to." + }, + "dialstring": { + "required": false, + "type": "string", + "description": "The dial string for calling the peer channel." + }, + "dialstatus": { + "required": true, + "type": "string", + "description": "Current status of the dialing attempt to the peer." + } + } + }, + "StasisEnd": { + "id": "StasisEnd", + "description": "Notification that a channel has left a Stasis application.", + "properties": { + "channel": { + "required": true, + "type": "Channel" + } + } + }, + "StasisStart": { + "id": "StasisStart", + "description": "Notification that a channel has entered a Stasis application.", + "properties": { + "args": { + "required": true, + "type": "List[string]", + "description": "Arguments to the application" + }, + "channel": { + "required": true, + "type": "Channel" + }, + "replace_channel": { + "required": false, + "type": "Channel" + } + } + }, + "TextMessageReceived": { + "id": "TextMessageReceived", + "description": "A text message was received from an endpoint.", + "properties": { + "message": { + "required": true, + "type": "TextMessage" + }, + "endpoint": { + "required": false, + "type": "Endpoint" + } + } + }, + "ChannelConnectedLine": { + "id": "ChannelConnectedLine", + "description": "Channel changed Connected Line.", + "properties": { + "channel": { + "required": true, + "type": "Channel", + "description": "The channel whose connected line has changed." + } + } + } + } +} diff --git a/codegen/src/main/resources/codegen-data/ari_4_0_1/mailboxes.json b/codegen/src/main/resources/codegen-data/ari_4_0_1/mailboxes.json new file mode 100644 index 00000000..8f5941b8 --- /dev/null +++ b/codegen/src/main/resources/codegen-data/ari_4_0_1/mailboxes.json @@ -0,0 +1,137 @@ +{ + "_copyright": "Copyright (C) 2013, Digium, Inc.", + "_author": "Jonathan Rose ", + "_svn_revision": "$Revision$", + "apiVersion": "2.0.0", + "swaggerVersion": "1.1", + "basePath": "http://localhost:8088/ari", + "resourcePath": "/api-docs/mailboxes.{format}", + "requiresModules": [ + "res_stasis_mailbox" + ], + "apis": [ + { + "path": "/mailboxes", + "description": "Mailboxes", + "operations": [ + { + "httpMethod": "GET", + "summary": "List all mailboxes.", + "nickname": "list", + "responseClass": "List[Mailbox]" + } + ] + }, + { + "path": "/mailboxes/{mailboxName}", + "description": "Mailbox state", + "operations": [ + { + "httpMethod": "GET", + "summary": "Retrieve the current state of a mailbox.", + "nickname": "get", + "responseClass": "Mailbox", + "parameters": [ + { + "name": "mailboxName", + "description": "Name of the mailbox", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Mailbox not found" + } + ] + }, + { + "httpMethod": "PUT", + "summary": "Change the state of a mailbox. (Note - implicitly creates the mailbox).", + "nickname": "update", + "responseClass": "void", + "parameters": [ + { + "name": "mailboxName", + "description": "Name of the mailbox", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "oldMessages", + "description": "Count of old messages in the mailbox", + "paramType": "query", + "required": true, + "allowMultiple": false, + "dataType": "int" + }, + { + "name": "newMessages", + "description": "Count of new messages in the mailbox", + "paramType": "query", + "required": true, + "allowMultiple": false, + "dataType": "int" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Mailbox not found" + } + ] + }, + { + "httpMethod": "DELETE", + "summary": "Destroy a mailbox.", + "nickname": "delete", + "responseClass": "void", + "parameters": [ + { + "name": "mailboxName", + "description": "Name of the mailbox", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Mailbox not found" + } + ] + } + ] + } + ], + "models": { + "Mailbox": { + "id": "Mailbox", + "description": "Represents the state of a mailbox.", + "properties": { + "name": { + "type": "string", + "description": "Name of the mailbox.", + "required": true + }, + "old_messages": { + "type": "int", + "description": "Count of old messages in the mailbox.", + "required": true + }, + "new_messages": { + "type": "int", + "description": "Count of new messages in the mailbox.", + "required": true + } + } + } + } +} diff --git a/codegen/src/main/resources/codegen-data/ari_4_0_1/playbacks.json b/codegen/src/main/resources/codegen-data/ari_4_0_1/playbacks.json new file mode 100644 index 00000000..a78dcae7 --- /dev/null +++ b/codegen/src/main/resources/codegen-data/ari_4_0_1/playbacks.json @@ -0,0 +1,164 @@ +{ + "_copyright": "Copyright (C) 2012 - 2013, Digium, Inc.", + "_author": "David M. Lee, II ", + "_svn_revision": "$Revision$", + "apiVersion": "2.0.0", + "swaggerVersion": "1.1", + "basePath": "http://localhost:8088/ari", + "resourcePath": "/api-docs/playbacks.{format}", + "requiresModules": [ + "res_stasis_playback" + ], + "apis": [ + { + "path": "/playbacks/{playbackId}", + "description": "Control object for a playback operation.", + "operations": [ + { + "httpMethod": "GET", + "summary": "Get a playback's details.", + "nickname": "get", + "responseClass": "Playback", + "parameters": [ + { + "name": "playbackId", + "description": "Playback's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "The playback cannot be found" + } + ] + }, + { + "httpMethod": "DELETE", + "summary": "Stop a playback.", + "nickname": "stop", + "responseClass": "void", + "parameters": [ + { + "name": "playbackId", + "description": "Playback's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "The playback cannot be found" + } + ] + } + ] + }, + { + "path": "/playbacks/{playbackId}/control", + "description": "Control object for a playback operation.", + "operations": [ + { + "httpMethod": "POST", + "summary": "Control a playback.", + "nickname": "control", + "responseClass": "void", + "parameters": [ + { + "name": "playbackId", + "description": "Playback's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "operation", + "description": "Operation to perform on the playback.", + "paramType": "query", + "required": true, + "allowMultiple": false, + "dataType": "string", + "allowableValues": { + "valueType": "LIST", + "values": [ + "restart", + "pause", + "unpause", + "reverse", + "forward" + ] + } + } + ], + "errorResponses": [ + { + "code": 400, + "reason": "The provided operation parameter was invalid" + }, + { + "code": 404, + "reason": "The playback cannot be found" + }, + { + "code": 409, + "reason": "The operation cannot be performed in the playback's current state" + } +] + } + ] + } + ], + "models": { + "Playback": { + "id": "Playback", + "description": "Object representing the playback of media to a channel", + "properties": { + "id": { + "type": "string", + "description": "ID for this playback operation", + "required": true + }, + "media_uri": { + "type": "string", + "description": "The URI for the media currently being played back.", + "required": true + }, + "next_media_uri": { + "type": "string", + "description": "If a list of URIs is being played, the next media URI to be played back.", + "required": false + }, + "target_uri": { + "type": "string", + "description": "URI for the channel or bridge to play the media on", + "required": true + }, + "language": { + "type": "string", + "description": "For media types that support multiple languages, the language requested for playback." + }, + "state": { + "type": "string", + "description": "Current state of the playback operation.", + "required": true, + "allowableValues": { + "valueType": "LIST", + "values": [ + "queued", + "playing", + "continuing", + "done" + ] + } + } + } + } + } +} diff --git a/codegen/src/main/resources/codegen-data/ari_4_0_1/recordings.json b/codegen/src/main/resources/codegen-data/ari_4_0_1/recordings.json new file mode 100644 index 00000000..6ffd6d8e --- /dev/null +++ b/codegen/src/main/resources/codegen-data/ari_4_0_1/recordings.json @@ -0,0 +1,413 @@ +{ + "_copyright": "Copyright (C) 2012 - 2013, Digium, Inc.", + "_author": "David M. Lee, II ", + "_svn_revision": "$Revision$", + "apiVersion": "2.0.0", + "swaggerVersion": "1.1", + "basePath": "http://localhost:8088/ari", + "resourcePath": "/api-docs/recordings.{format}", + "requiresModules": [ + "res_stasis_recording" + ], + "apis": [ + { + "path": "/recordings/stored", + "description": "Recordings", + "operations": [ + { + "httpMethod": "GET", + "summary": "List recordings that are complete.", + "nickname": "listStored", + "responseClass": "List[StoredRecording]" + } + ] + }, + { + "path": "/recordings/stored/{recordingName}", + "description": "Individual recording", + "operations": [ + { + "httpMethod": "GET", + "summary": "Get a stored recording's details.", + "nickname": "getStored", + "responseClass": "StoredRecording", + "parameters": [ + { + "name": "recordingName", + "description": "The name of the recording", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Recording not found" + } + ] + }, + { + "httpMethod": "DELETE", + "summary": "Delete a stored recording.", + "nickname": "deleteStored", + "responseClass": "void", + "parameters": [ + { + "name": "recordingName", + "description": "The name of the recording", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Recording not found" + } + ] + } + ] + }, + { + "path": "/recordings/stored/{recordingName}/file", + "description": "The actual file associated with the stored recording", + "operations": [ + { + "httpMethod": "GET", + "summary": "Get the file associated with the stored recording.", + "nickname": "getStoredFile", + "responseClass": "binary", + "parameters": [ + { + "name": "recordingName", + "description": "The name of the recording", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 403, + "reason": "The recording file could not be opened" + }, + { + "code": 404, + "reason": "Recording not found" + } + ] + } + ] + }, + { + "path": "/recordings/stored/{recordingName}/copy", + "description": "Copy an individual recording", + "operations": [ + { + "httpMethod": "POST", + "summary": "Copy a stored recording.", + "nickname": "copyStored", + "responseClass": "StoredRecording", + "parameters": [ + { + "name": "recordingName", + "description": "The name of the recording to copy", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "destinationRecordingName", + "description": "The destination name of the recording", + "paramType": "query", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Recording not found" + }, + { + "code": 409, + "reason": "A recording with the same name already exists on the system" + } + ] + } + ] + }, + { + "path": "/recordings/live/{recordingName}", + "description": "A recording that is in progress", + "operations": [ + { + "httpMethod": "GET", + "summary": "List live recordings.", + "nickname": "getLive", + "responseClass": "LiveRecording", + "parameters": [ + { + "name": "recordingName", + "description": "The name of the recording", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Recording not found" + } + ] + }, + { + "httpMethod": "DELETE", + "summary": "Stop a live recording and discard it.", + "nickname": "cancel", + "responseClass": "void", + "parameters": [ + { + "name": "recordingName", + "description": "The name of the recording", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Recording not found" + } + ] + } + ] + }, + { + "path": "/recordings/live/{recordingName}/stop", + "operations": [ + { + "httpMethod": "POST", + "summary": "Stop a live recording and store it.", + "nickname": "stop", + "responseClass": "void", + "parameters": [ + { + "name": "recordingName", + "description": "The name of the recording", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Recording not found" + } + ] + } + ] + }, + { + "path": "/recordings/live/{recordingName}/pause", + "operations": [ + { + "httpMethod": "POST", + "summary": "Pause a live recording.", + "notes": "Pausing a recording suspends silence detection, which will be restarted when the recording is unpaused. Paused time is not included in the accounting for maxDurationSeconds.", + "nickname": "pause", + "responseClass": "void", + "parameters": [ + { + "name": "recordingName", + "description": "The name of the recording", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Recording not found" + }, + { + "code": 409, + "reason": "Recording not in session" + } + ] + }, + { + "httpMethod": "DELETE", + "summary": "Unpause a live recording.", + "nickname": "unpause", + "responseClass": "void", + "parameters": [ + { + "name": "recordingName", + "description": "The name of the recording", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Recording not found" + }, + { + "code": 409, + "reason": "Recording not in session" + } + ] + } + ] + }, + { + "path": "/recordings/live/{recordingName}/mute", + "operations": [ + { + "httpMethod": "POST", + "summary": "Mute a live recording.", + "notes": "Muting a recording suspends silence detection, which will be restarted when the recording is unmuted.", + "nickname": "mute", + "responseClass": "void", + "parameters": [ + { + "name": "recordingName", + "description": "The name of the recording", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Recording not found" + }, + { + "code": 409, + "reason": "Recording not in session" + } + ] + }, + { + "httpMethod": "DELETE", + "summary": "Unmute a live recording.", + "nickname": "unmute", + "responseClass": "void", + "parameters": [ + { + "name": "recordingName", + "description": "The name of the recording", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Recording not found" + }, + { + "code": 409, + "reason": "Recording not in session" + } + ] + } + ] + } + ], + "models": { + "StoredRecording": { + "id": "StoredRecording", + "description": "A past recording that may be played back.", + "properties": { + "name": { + "required": true, + "type": "string" + }, + "format": { + "required": true, + "type": "string" + } + } + }, + "LiveRecording": { + "id": "LiveRecording", + "description": "A recording that is in progress", + "properties": { + "name": { + "required": true, + "type": "string", + "description": "Base name for the recording" + }, + "format": { + "required": true, + "type": "string", + "description": "Recording format (wav, gsm, etc.)" + }, + "target_uri": { + "required": true, + "type": "string", + "description": "URI for the channel or bridge being recorded" + }, + "state": { + "required": true, + "type": "string", + "allowableValues": { + "valueType": "LIST", + "values": [ + "queued", + "recording", + "paused", + "done", + "failed", + "canceled" + ] + } + }, + "duration": { + "required": false, + "type": "int", + "description": "Duration in seconds of the recording" + }, + "talking_duration": { + "required": false, + "type": "int", + "description": "Duration of talking, in seconds, detected in the recording. This is only available if the recording was initiated with a non-zero maxSilenceSeconds." + }, + "silence_duration": { + "required": false, + "type": "int", + "description": "Duration of silence, in seconds, detected in the recording. This is only available if the recording was initiated with a non-zero maxSilenceSeconds." + }, + "cause": { + "required": false, + "type": "string", + "description": "Cause for recording failure if failed" + } + } + } + } +} diff --git a/codegen/src/main/resources/codegen-data/ari_4_0_1/sounds.json b/codegen/src/main/resources/codegen-data/ari_4_0_1/sounds.json new file mode 100644 index 00000000..8fbe1c57 --- /dev/null +++ b/codegen/src/main/resources/codegen-data/ari_4_0_1/sounds.json @@ -0,0 +1,99 @@ +{ + "_copyright": "Copyright (C) 2012 - 2013, Digium, Inc.", + "_author": "David M. Lee, II ", + "_svn_revision": "$Revision$", + "apiVersion": "2.0.0", + "swaggerVersion": "1.1", + "basePath": "http://localhost:8088/ari", + "resourcePath": "/api-docs/sounds.{format}", + "apis": [ + { + "path": "/sounds", + "description": "Sounds", + "operations": [ + { + "httpMethod": "GET", + "summary": "List all sounds.", + "nickname": "list", + "responseClass": "List[Sound]", + "parameters": [ + { + "name": "lang", + "description": "Lookup sound for a specific language.", + "paramType": "query", + "dataType": "string", + "required": false + }, + { + "name": "format", + "description": "Lookup sound in a specific format.", + "paramType": "query", + "dataType": "string", + "required": false, + "__note": "core show translation can show translation paths between formats, along with relative costs. so this could be just installed format, or we could follow that for transcoded formats." + } + ] + } + ] + }, + { + "path": "/sounds/{soundId}", + "description": "Individual sound", + "operations": [ + { + "httpMethod": "GET", + "summary": "Get a sound's details.", + "nickname": "get", + "responseClass": "Sound", + "parameters": [ + { + "name": "soundId", + "description": "Sound's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ] + } + ] + } + ], + "models": { + "FormatLangPair": { + "id": "FormatLangPair", + "description": "Identifies the format and language of a sound file", + "properties": { + "language": { + "required": true, + "type": "string" + }, + "format": { + "required": true, + "type": "string" + } + } + }, + "Sound": { + "id": "Sound", + "description": "A media file that may be played back.", + "properties": { + "id": { + "required": true, + "description": "Sound's identifier.", + "type": "string" + }, + "text": { + "required": false, + "description": "Text description of the sound, usually the words spoken.", + "type": "string" + }, + "formats": { + "required": true, + "description": "The formats and languages in which this sound is available.", + "type": "List[FormatLangPair]" + } + } + } + } +} diff --git a/codegen/src/main/resources/codegen-data/ari_4_0_2/applications.json b/codegen/src/main/resources/codegen-data/ari_4_0_2/applications.json new file mode 100644 index 00000000..09c5cd5c --- /dev/null +++ b/codegen/src/main/resources/codegen-data/ari_4_0_2/applications.json @@ -0,0 +1,223 @@ +{ + "_copyright": "Copyright (C) 2013, Digium, Inc.", + "_author": "David M. Lee, II ", + "_svn_revision": "$Revision$", + "apiVersion": "2.0.0", + "swaggerVersion": "1.1", + "basePath": "http://localhost:8088/ari", + "resourcePath": "/api-docs/applications.{format}", + "apis": [ + { + "path": "/applications", + "description": "Stasis applications", + "operations": [ + { + "httpMethod": "GET", + "summary": "List all applications.", + "nickname": "list", + "responseClass": "List[Application]" + } + ] + }, + { + "path": "/applications/{applicationName}", + "description": "Stasis application", + "operations": [ + { + "httpMethod": "GET", + "summary": "Get details of an application.", + "nickname": "get", + "responseClass": "Application", + "parameters": [ + { + "name": "applicationName", + "description": "Application's name", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Application does not exist." + } + ] + } + ] + }, + { + "path": "/applications/{applicationName}/subscription", + "description": "Stasis application", + "operations": [ + { + "httpMethod": "POST", + "summary": "Subscribe an application to a event source.", + "notes": "Returns the state of the application after the subscriptions have changed", + "nickname": "subscribe", + "responseClass": "Application", + "parameters": [ + { + "name": "applicationName", + "description": "Application's name", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "eventSource", + "description": "URI for event source (channel:{channelId}, bridge:{bridgeId}, endpoint:{tech}[/{resource}], deviceState:{deviceName}", + "paramType": "query", + "required": true, + "allowMultiple": true, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 400, + "reason": "Missing parameter." + }, + { + "code": 404, + "reason": "Application does not exist." + }, + { + "code": 422, + "reason": "Event source does not exist." + } + ] + }, + { + "httpMethod": "DELETE", + "summary": "Unsubscribe an application from an event source.", + "notes": "Returns the state of the application after the subscriptions have changed", + "nickname": "unsubscribe", + "responseClass": "Application", + "parameters": [ + { + "name": "applicationName", + "description": "Application's name", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "eventSource", + "description": "URI for event source (channel:{channelId}, bridge:{bridgeId}, endpoint:{tech}[/{resource}], deviceState:{deviceName}", + "paramType": "query", + "required": true, + "allowMultiple": true, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 400, + "reason": "Missing parameter; event source scheme not recognized." + }, + { + "code": 404, + "reason": "Application does not exist." + }, + { + "code": 409, + "reason": "Application not subscribed to event source." + }, + { + "code": 422, + "reason": "Event source does not exist." + } + ] + } + ] + }, + { + "path": "/applications/{applicationName}/eventFilter", + "description": "Stasis application", + "operations": [ + { + "httpMethod": "PUT", + "summary": "Filter application events types.", + "notes": "Allowed and/or disallowed event type filtering can be done. The body (parameter) should specify a JSON key/value object that describes the type of event filtering needed. One, or both of the following keys can be designated:

\"allowed\" - Specifies an allowed list of event types
\"disallowed\" - Specifies a disallowed list of event types

Further, each of those key's value should be a JSON array that holds zero, or more JSON key/value objects. Each of these objects must contain the following key with an associated value:

\"type\" - The type name of the event to filter

The value must be the string name (case sensitive) of the event type that needs filtering. For example:

{ \"allowed\": [ { \"type\": \"StasisStart\" }, { \"type\": \"StasisEnd\" } ] }

As this specifies only an allowed list, then only those two event type messages are sent to the application. No other event messages are sent.

The following rules apply:

* If the body is empty, both the allowed and disallowed filters are set empty.
* If both list types are given then both are set to their respective values (note, specifying an empty array for a given type sets that type to empty).
* If only one list type is given then only that type is set. The other type is not updated.
* An empty \"allowed\" list means all events are allowed.
* An empty \"disallowed\" list means no events are disallowed.
* Disallowed events take precedence over allowed events if the event type is specified in both lists.", + "nickname": "filter", + "responseClass": "Application", + "parameters": [ + { + "name": "applicationName", + "description": "Application's name", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "filter", + "description": "Specify which event types to allow/disallow", + "paramType": "body", + "required": false, + "dataType": "object", + "allowMultiple": false + } + ], + "errorResponses": [ + { + "code": 400, + "reason": "Bad request." + }, + { + "code": 404, + "reason": "Application does not exist." + } + ] + } + ] + } + ], + "models": { + "Application": { + "id": "Application", + "description": "Details of a Stasis application", + "properties": { + "name": { + "type": "string", + "description": "Name of this application", + "required": true + }, + "channel_ids": { + "type": "List[string]", + "description": "Id's for channels subscribed to.", + "required": true + }, + "bridge_ids": { + "type": "List[string]", + "description": "Id's for bridges subscribed to.", + "required": true + }, + "endpoint_ids": { + "type": "List[string]", + "description": "{tech}/{resource} for endpoints subscribed to.", + "required": true + }, + "device_names": { + "type": "List[string]", + "description": "Names of the devices subscribed to.", + "required": true + }, + "events_allowed": { + "type": "List[object]", + "description": "Event types sent to the application.", + "required": true + }, + "events_disallowed": { + "type": "List[object]", + "description": "Event types not sent to the application.", + "required": true + } + } + } + } +} diff --git a/codegen/src/main/resources/codegen-data/ari_4_0_2/asterisk.json b/codegen/src/main/resources/codegen-data/ari_4_0_2/asterisk.json new file mode 100644 index 00000000..841e6cd8 --- /dev/null +++ b/codegen/src/main/resources/codegen-data/ari_4_0_2/asterisk.json @@ -0,0 +1,725 @@ +{ + "_copyright": "Copyright (C) 2012 - 2013, Digium, Inc.", + "_author": "David M. Lee, II ", + "_svn_revision": "$Revision$", + "apiVersion": "2.0.0", + "swaggerVersion": "1.1", + "basePath": "http://localhost:8088/ari", + "resourcePath": "/api-docs/asterisk.{format}", + "apis": [ + { + "path": "/asterisk/config/dynamic/{configClass}/{objectType}/{id}", + "description": "Asterisk dynamic configuration", + "operations": [ + { + "httpMethod": "GET", + "summary": "Retrieve a dynamic configuration object.", + "nickname": "getObject", + "responseClass": "List[ConfigTuple]", + "parameters": [ + { + "name": "configClass", + "description": "The configuration class containing dynamic configuration objects.", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "objectType", + "description": "The type of configuration object to retrieve.", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "id", + "description": "The unique identifier of the object to retrieve.", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "{configClass|objectType|id} not found" + } + ] + }, + { + "httpMethod": "PUT", + "summary": "Create or update a dynamic configuration object.", + "nickname": "updateObject", + "responseClass": "List[ConfigTuple]", + "parameters": [ + { + "name": "configClass", + "description": "The configuration class containing dynamic configuration objects.", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "objectType", + "description": "The type of configuration object to create or update.", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "id", + "description": "The unique identifier of the object to create or update.", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "fields", + "description": "The body object should have a value that is a list of ConfigTuples, which provide the fields to update. Ex. [ { \"attribute\": \"directmedia\", \"value\": \"false\" } ]", + "paramType": "body", + "required": false, + "dataType": "containers", + "allowMultiple": false + } + ], + "errorResponses": [ + { + "code": 400, + "reason": "Bad request body" + }, + { + "code": 403, + "reason": "Could not create or update object" + }, + { + "code": 404, + "reason": "{configClass|objectType} not found" + } + ] + }, + { + "httpMethod": "DELETE", + "summary": "Delete a dynamic configuration object.", + "nickname": "deleteObject", + "responseClass": "void", + "parameters": [ + { + "name": "configClass", + "description": "The configuration class containing dynamic configuration objects.", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "objectType", + "description": "The type of configuration object to delete.", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "id", + "description": "The unique identifier of the object to delete.", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 403, + "reason": "Could not delete object" + }, + { + "code": 404, + "reason": "{configClass|objectType|id} not found" + } + ] + } + ] + }, + { + "path": "/asterisk/info", + "description": "Asterisk system information (similar to core show settings)", + "operations": [ + { + "httpMethod": "GET", + "summary": "Gets Asterisk system information.", + "nickname": "getInfo", + "responseClass": "AsteriskInfo", + "parameters": [ + { + "name": "only", + "description": "Filter information returned", + "paramType": "query", + "required": false, + "allowMultiple": true, + "dataType": "string", + "allowableValues": { + "valueType": "LIST", + "values": [ + "build", + "system", + "config", + "status" + ] + } + } + ] + } + ] + }, + { + "path": "/asterisk/ping", + "description": "Asterisk ping", + "operations": [ + { + "httpMethod": "GET", + "summary": "Response pong message.", + "nickname": "ping", + "responseClass": "AsteriskPing" + } + ] + }, + { + "path": "/asterisk/modules", + "description": "Asterisk modules", + "operations": [ + { + "httpMethod": "GET", + "summary": "List Asterisk modules.", + "nickname": "listModules", + "responseClass": "List[Module]" + } + ] + }, + { + "path": "/asterisk/modules/{moduleName}", + "description": "Asterisk module", + "operations": [ + { + "httpMethod": "GET", + "summary": "Get Asterisk module information.", + "nickname": "getModule", + "responseClass": "Module", + "parameters": [ + { + "name": "moduleName", + "description": "Module's name", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Module could not be found in running modules." + }, + { + "code": 409, + "reason": "Module information could not be retrieved." + } + ] + }, + { + "httpMethod": "POST", + "summary": "Load an Asterisk module.", + "nickname": "loadModule", + "responseClass": "void", + "parameters": [ + { + "name": "moduleName", + "description": "Module's name", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 409, + "reason": "Module could not be loaded." + } + ] + }, + { + "httpMethod": "DELETE", + "summary": "Unload an Asterisk module.", + "nickname": "unloadModule", + "responseClass": "void", + "parameters": [ + { + "name": "moduleName", + "description": "Module's name", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Module not found in running modules." + }, + { + "code": 409, + "reason": "Module could not be unloaded." + } + ] + }, + { + "httpMethod": "PUT", + "summary": "Reload an Asterisk module.", + "nickname": "reloadModule", + "responseClass": "void", + "parameters": [ + { + "name": "moduleName", + "description": "Module's name", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Module not found in running modules." + }, + { + "code": 409, + "reason": "Module could not be reloaded." + } + ] + } + ] + }, + { + "path": "/asterisk/logging", + "description": "Asterisk log channels", + "operations": [ + { + "httpMethod": "GET", + "summary": "Gets Asterisk log channel information.", + "nickname": "listLogChannels", + "responseClass": "List[LogChannel]" + } + ] + }, + { + "path": "/asterisk/logging/{logChannelName}", + "description": "Asterisk log channel", + "operations": [ + { + "httpMethod": "POST", + "summary": "Adds a log channel.", + "nickname": "addLog", + "responseClass": "void", + "parameters": [ + { + "name": "logChannelName", + "description": "The log channel to add", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "configuration", + "description": "levels of the log channel", + "paramType": "query", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 400, + "reason": "Bad request body" + }, + { + "code": 409, + "reason": "Log channel could not be created." + } + ] + }, + { + "httpMethod": "DELETE", + "summary": "Deletes a log channel.", + "nickname": "deleteLog", + "responseClass": "void", + "parameters": [ + { + "name": "logChannelName", + "description": "Log channels name", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Log channel does not exist." + } + ] + } + ] + }, + { + "path": "/asterisk/logging/{logChannelName}/rotate", + "description": "Asterisk log channel", + "operations": [ + { + "httpMethod": "PUT", + "summary": "Rotates a log channel.", + "nickname": "rotateLog", + "responseClass": "void", + "parameters": [ + { + "name": "logChannelName", + "description": "Log channel's name", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Log channel does not exist." + } + ] + } + ] + }, + { + "path": "/asterisk/variable", + "description": "Global variables", + "operations": [ + { + "httpMethod": "GET", + "summary": "Get the value of a global variable.", + "nickname": "getGlobalVar", + "responseClass": "Variable", + "parameters": [ + { + "name": "variable", + "description": "The variable to get", + "paramType": "query", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 400, + "reason": "Missing variable parameter." + } + ] + }, + { + "httpMethod": "POST", + "summary": "Set the value of a global variable.", + "nickname": "setGlobalVar", + "responseClass": "void", + "parameters": [ + { + "name": "variable", + "description": "The variable to set", + "paramType": "query", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "value", + "description": "The value to set the variable to", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 400, + "reason": "Missing variable parameter." + } + ] + } + ] + } + ], + "models": { + "BuildInfo": { + "id": "BuildInfo", + "description": "Info about how Asterisk was built", + "properties": { + "os": { + "required": true, + "type": "string", + "description": "OS Asterisk was built on." + }, + "kernel": { + "required": true, + "type": "string", + "description": "Kernel version Asterisk was built on." + }, + "options": { + "required": true, + "type": "string", + "description": "Compile time options, or empty string if default." + }, + "machine": { + "required": true, + "type": "string", + "description": "Machine architecture (x86_64, i686, ppc, etc.)" + }, + "date": { + "required": true, + "type": "string", + "description": "Date and time when Asterisk was built." + }, + "user": { + "required": true, + "type": "string", + "description": "Username that build Asterisk" + } + } + }, + "SystemInfo": { + "id": "SystemInfo", + "description": "Info about Asterisk", + "properties": { + "version": { + "required": true, + "type": "string", + "description": "Asterisk version." + }, + "entity_id": { + "required": true, + "type": "string", + "description": "" + } + } + }, + "SetId": { + "id": "SetId", + "description": "Effective user/group id", + "properties": { + "user": { + "required": true, + "type": "string", + "description": "Effective user id." + }, + "group": { + "required": true, + "type": "string", + "description": "Effective group id." + } + } + }, + "ConfigInfo": { + "id": "ConfigInfo", + "description": "Info about Asterisk configuration", + "properties": { + "name": { + "required": true, + "type": "string", + "description": "Asterisk system name." + }, + "default_language": { + "required": true, + "type": "string", + "description": "Default language for media playback." + }, + "max_channels": { + "required": false, + "type": "int", + "description": "Maximum number of simultaneous channels." + }, + "max_open_files": { + "required": false, + "type": "int", + "description": "Maximum number of open file handles (files, sockets)." + }, + "max_load": { + "required": false, + "type": "double", + "description": "Maximum load avg on system." + }, + "setid": { + "required": true, + "type": "SetId", + "description": "Effective user/group id for running Asterisk." + } + } + }, + "StatusInfo": { + "id": "StatusInfo", + "description": "Info about Asterisk status", + "properties": { + "startup_time": { + "required": true, + "type": "Date", + "description": "Time when Asterisk was started." + }, + "last_reload_time": { + "required": true, + "type": "Date", + "description": "Time when Asterisk was last reloaded." + } + } + }, + "AsteriskInfo": { + "id": "AsteriskInfo", + "description": "Asterisk system information", + "properties": { + "build": { + "required": false, + "type": "BuildInfo", + "description": "Info about how Asterisk was built" + }, + "system": { + "required": false, + "type": "SystemInfo", + "description": "Info about the system running Asterisk" + }, + "config": { + "required": false, + "type": "ConfigInfo", + "description": "Info about Asterisk configuration" + }, + "status": { + "required": false, + "type": "StatusInfo", + "description": "Info about Asterisk status" + } + } + }, + "AsteriskPing": { + "id": "AsteriskPing", + "description": "Asterisk ping information", + "properties": { + "asterisk_id": { + "required": true, + "type": "string", + "description": "Asterisk id info" + }, + "ping": { + "required": true, + "type": "string", + "description": "Always string value is pong" + }, + "timestamp": { + "required": true, + "type": "string", + "description": "The timestamp string of request received time" + } + } + }, + "Module": { + "id": "Module", + "description": "Details of an Asterisk module", + "properties": { + "name": { + "type": "string", + "description": "The name of this module", + "required": true + }, + "description": { + "type": "string", + "description": "The description of this module", + "required": true + }, + "use_count": { + "type": "int", + "description": "The number of times this module is being used", + "required": true + }, + "status": { + "type": "string", + "description": "The running status of this module", + "required": true + }, + "support_level": { + "type": "string", + "description": "The support state of this module", + "required": true + } + } + }, + "LogChannel": { + "id": "LogChannel", + "description": "Details of an Asterisk log channel", + "properties": { + "channel": { + "type": "string", + "description": "The log channel path", + "required": true + }, + "type": { + "type": "string", + "description": "Types of logs for the log channel", + "required": true + }, + "status": { + "type": "string", + "description": "Whether or not a log type is enabled", + "required": true + }, + "configuration": { + "type": "string", + "description": "The various log levels", + "required": true + } + } + }, + "Variable": { + "id": "Variable", + "description": "The value of a channel variable", + "properties": { + "value": { + "required": true, + "type": "string", + "description": "The value of the variable requested" + } + } + }, + "ConfigTuple": { + "id": "ConfigTuple", + "description": "A key/value pair that makes up part of a configuration object.", + "properties": { + "attribute": { + "required": true, + "type": "string", + "description": "A configuration object attribute." + }, + "value": { + "required": true, + "type": "string", + "description": "The value for the attribute." + } + } + } + } +} diff --git a/codegen/src/main/resources/codegen-data/ari_4_0_2/bridges.json b/codegen/src/main/resources/codegen-data/ari_4_0_2/bridges.json new file mode 100644 index 00000000..22743c3b --- /dev/null +++ b/codegen/src/main/resources/codegen-data/ari_4_0_2/bridges.json @@ -0,0 +1,765 @@ +{ + "_copyright": "Copyright (C) 2012 - 2013, Digium, Inc.", + "_author": "David M. Lee, II ", + "_svn_revision": "$Revision$", + "apiVersion": "2.0.0", + "swaggerVersion": "1.1", + "basePath": "http://localhost:8088/ari", + "resourcePath": "/api-docs/bridges.{format}", + "requiresModules": [ + "res_stasis_recording", + "res_stasis_playback" + ], + "apis": [ + { + "path": "/bridges", + "description": "Active bridges", + "operations": [ + { + "httpMethod": "GET", + "summary": "List all active bridges in Asterisk.", + "nickname": "list", + "responseClass": "List[Bridge]" + }, + { + "httpMethod": "POST", + "summary": "Create a new bridge.", + "notes": "This bridge persists until it has been shut down, or Asterisk has been shut down.", + "nickname": "create", + "responseClass": "Bridge", + "parameters": [ + { + "name": "type", + "description": "Comma separated list of bridge type attributes (mixing, holding, dtmf_events, proxy_media, video_sfu).", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "bridgeId", + "description": "Unique ID to give to the bridge being created.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "name", + "description": "Name to give to the bridge being created.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + } + ] + } + ] + }, + { + "path": "/bridges/{bridgeId}", + "description": "Individual bridge", + "operations": [ + { + "httpMethod": "POST", + "summary": "Create a new bridge or updates an existing one.", + "notes": "This bridge persists until it has been shut down, or Asterisk has been shut down.", + "nickname": "createWithId", + "responseClass": "Bridge", + "parameters": [ + { + "name": "type", + "description": "Comma separated list of bridge type attributes (mixing, holding, dtmf_events, proxy_media, video_sfu) to set.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "bridgeId", + "description": "Unique ID to give to the bridge being created.", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "name", + "description": "Set the name of the bridge.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + } + ] + }, + { + "httpMethod": "GET", + "summary": "Get bridge details.", + "nickname": "get", + "responseClass": "Bridge", + "parameters": [ + { + "name": "bridgeId", + "description": "Bridge's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Bridge not found" + } + ] + }, + { + "httpMethod": "DELETE", + "summary": "Shut down a bridge.", + "notes": "If any channels are in this bridge, they will be removed and resume whatever they were doing beforehand.", + "nickname": "destroy", + "responseClass": "void", + "parameters": [ + { + "name": "bridgeId", + "description": "Bridge's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Bridge not found" + } + ] + } + ] + }, + { + "path": "/bridges/{bridgeId}/addChannel", + "description": "Add a channel to a bridge", + "operations": [ + { + "httpMethod": "POST", + "summary": "Add a channel to a bridge.", + "nickname": "addChannel", + "responseClass": "void", + "parameters": [ + { + "name": "bridgeId", + "description": "Bridge's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "channel", + "description": "Ids of channels to add to bridge", + "paramType": "query", + "required": true, + "allowMultiple": true, + "dataType": "string" + }, + { + "name": "role", + "description": "Channel's role in the bridge", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "absorbDTMF", + "description": "Absorb DTMF coming from this channel, preventing it to pass through to the bridge", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "boolean", + "defaultValue": false + }, + { + "name": "mute", + "description": "Mute audio from this channel, preventing it to pass through to the bridge", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "boolean", + "defaultValue": false + } + ], + "errorResponses": [ + { + "code": 400, + "reason": "Channel not found" + }, + { + "code": 404, + "reason": "Bridge not found" + }, + { + "code": 409, + "reason": "Bridge not in Stasis application; Channel currently recording" + }, + { + "code": 422, + "reason": "Channel not in Stasis application" + } + ] + } + ] + }, + { + "path": "/bridges/{bridgeId}/removeChannel", + "description": "Remove a channel from a bridge", + "operations": [ + { + "httpMethod": "POST", + "summary": "Remove a channel from a bridge.", + "nickname": "removeChannel", + "responseClass": "void", + "parameters": [ + { + "name": "bridgeId", + "description": "Bridge's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "channel", + "description": "Ids of channels to remove from bridge", + "paramType": "query", + "required": true, + "allowMultiple": true, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 400, + "reason": "Channel not found" + }, + { + "code": 404, + "reason": "Bridge not found" + }, + { + "code": 409, + "reason": "Bridge not in Stasis application" + }, + { + "code": 422, + "reason": "Channel not in this bridge" + } + ] + } + ] + }, + { + "path": "/bridges/{bridgeId}/videoSource/{channelId}", + "description": "Set a channel as the video source in a multi-party bridge", + "operations": [ + { + "httpMethod": "POST", + "summary": "Set a channel as the video source in a multi-party mixing bridge. This operation has no effect on bridges with two or fewer participants.", + "nickname": "setVideoSource", + "responseClass": "void", + "parameters": [ + { + "name": "bridgeId", + "description": "Bridge's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "channelId", + "description": "Channel's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Bridge or Channel not found" + }, + { + "code": 409, + "reason": "Channel not in Stasis application" + }, + { + "code": 422, + "reason": "Channel not in this Bridge" + } + ] + } + ] + }, + { + "path": "/bridges/{bridgeId}/videoSource", + "description": "Removes any explicit video source", + "operations": [ + { + "httpMethod": "DELETE", + "summary": "Removes any explicit video source in a multi-party mixing bridge. This operation has no effect on bridges with two or fewer participants. When no explicit video source is set, talk detection will be used to determine the active video stream.", + "nickname": "clearVideoSource", + "responseClass": "void", + "parameters": [ + { + "name": "bridgeId", + "description": "Bridge's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Bridge not found" + } + ] + } + ] + }, + { + "path": "/bridges/{bridgeId}/moh", + "description": "Play music on hold to a bridge", + "operations": [ + { + "httpMethod": "POST", + "summary": "Play music on hold to a bridge or change the MOH class that is playing.", + "nickname": "startMoh", + "responseClass": "void", + "parameters": [ + { + "name": "bridgeId", + "description": "Bridge's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "mohClass", + "description": "Channel's id", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Bridge not found" + }, + { + "code": 409, + "reason": "Bridge not in Stasis application" + } + ] + }, + { + "httpMethod": "DELETE", + "summary": "Stop playing music on hold to a bridge.", + "notes": "This will only stop music on hold being played via POST bridges/{bridgeId}/moh.", + "nickname": "stopMoh", + "responseClass": "void", + "parameters": [ + { + "name": "bridgeId", + "description": "Bridge's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Bridge not found" + }, + { + "code": 409, + "reason": "Bridge not in Stasis application" + } + ] + } + ] + }, + { + "path": "/bridges/{bridgeId}/play", + "description": "Play media to the participants of a bridge", + "operations": [ + { + "httpMethod": "POST", + "summary": "Start playback of media on a bridge.", + "notes": "The media URI may be any of a number of URI's. Currently sound:, recording:, number:, digits:, characters:, and tone: URI's are supported. This operation creates a playback resource that can be used to control the playback of media (pause, rewind, fast forward, etc.)", + "nickname": "play", + "responseClass": "Playback", + "parameters": [ + { + "name": "bridgeId", + "description": "Bridge's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "media", + "description": "Media URIs to play.", + "paramType": "query", + "required": true, + "allowMultiple": true, + "dataType": "string" + }, + { + "name": "lang", + "description": "For sounds, selects language for sound.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "offsetms", + "description": "Number of milliseconds to skip before playing. Only applies to the first URI if multiple media URIs are specified.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "int", + "defaultValue": 0, + "allowableValues": { + "valueType": "RANGE", + "min": 0 + } + + }, + { + "name": "skipms", + "description": "Number of milliseconds to skip for forward/reverse operations.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "int", + "defaultValue": 3000, + "allowableValues": { + "valueType": "RANGE", + "min": 0 + } + }, + { + "name": "playbackId", + "description": "Playback Id.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Bridge not found" + }, + { + "code": 409, + "reason": "Bridge not in a Stasis application" + } + ] + } + ] + }, + { + "path": "/bridges/{bridgeId}/play/{playbackId}", + "description": "Play media to a bridge", + "operations": [ + { + "httpMethod": "POST", + "summary": "Start playback of media on a bridge.", + "notes": "The media URI may be any of a number of URI's. Currently sound:, recording:, number:, digits:, characters:, and tone: URI's are supported. This operation creates a playback resource that can be used to control the playback of media (pause, rewind, fast forward, etc.)", + "nickname": "playWithId", + "responseClass": "Playback", + "parameters": [ + { + "name": "bridgeId", + "description": "Bridge's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "playbackId", + "description": "Playback ID.", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "media", + "description": "Media URIs to play.", + "paramType": "query", + "required": true, + "allowMultiple": true, + "dataType": "string" + }, + { + "name": "lang", + "description": "For sounds, selects language for sound.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "offsetms", + "description": "Number of milliseconds to skip before playing. Only applies to the first URI if multiple media URIs are specified.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "int", + "defaultValue": 0, + "allowableValues": { + "valueType": "RANGE", + "min": 0 + } + }, + { + "name": "skipms", + "description": "Number of milliseconds to skip for forward/reverse operations.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "int", + "defaultValue": 3000, + "allowableValues": { + "valueType": "RANGE", + "min": 0 + } + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Bridge not found" + }, + { + "code": 409, + "reason": "Bridge not in a Stasis application" + } + ] + + } + ] + }, + { + "path": "/bridges/{bridgeId}/record", + "description": "Record audio on a bridge", + "operations": [ + { + "httpMethod": "POST", + "summary": "Start a recording.", + "notes": "This records the mixed audio from all channels participating in this bridge.", + "nickname": "record", + "responseClass": "LiveRecording", + "parameters": [ + { + "name": "bridgeId", + "description": "Bridge's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "name", + "description": "Recording's filename", + "paramType": "query", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "format", + "description": "Format to encode audio in", + "paramType": "query", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "maxDurationSeconds", + "description": "Maximum duration of the recording, in seconds. 0 for no limit.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "int", + "defaultValue": 0, + "allowableValues": { + "valueType": "RANGE", + "min": 0 + } + }, + { + "name": "maxSilenceSeconds", + "description": "Maximum duration of silence, in seconds. 0 for no limit.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "int", + "defaultValue": 0, + "allowableValues": { + "valueType": "RANGE", + "min": 0 + } + }, + { + "name": "ifExists", + "description": "Action to take if a recording with the same name already exists.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string", + "defaultValue": "fail", + "allowableValues": { + "valueType": "LIST", + "values": [ + "fail", + "overwrite", + "append" + ] + } + }, + { + "name": "beep", + "description": "Play beep when recording begins", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "boolean", + "defaultValue": false + }, + { + "name": "terminateOn", + "description": "DTMF input to terminate recording.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string", + "defaultValue": "none", + "allowableValues": { + "valueType": "LIST", + "values": [ + "none", + "any", + "*", + "#" + ] + } + } + ], + "errorResponses": [ + { + "code": 400, + "reason": "Invalid parameters" + }, + { + "code": 404, + "reason": "Bridge not found" + }, + { + "code": 409, + "reason": "Bridge is not in a Stasis application; A recording with the same name already exists on the system and can not be overwritten because it is in progress or ifExists=fail" + }, + { + "code": 422, + "reason": "The format specified is unknown on this system" + } + ] + } + ] + } + ], + "models": { + "Bridge": { + "id": "Bridge", + "description": "The merging of media from one or more channels.\n\nEveryone on the bridge receives the same audio.", + "properties": { + "id": { + "type": "string", + "description": "Unique identifier for this bridge", + "required": true + }, + "technology": { + "type": "string", + "description": "Name of the current bridging technology", + "required": true + }, + "bridge_type": { + "type": "string", + "description": "Type of bridge technology", + "required": true, + "allowableValues": { + "valueType": "LIST", + "values": [ + "mixing", + "holding" + ] + } + }, + "bridge_class": { + "type": "string", + "description": "Bridging class", + "required": true + }, + "creator": { + "type": "string", + "description": "Entity that created the bridge", + "required": true + }, + "name": { + "type": "string", + "description": "Name the creator gave the bridge", + "required": true + }, + "channels": { + "type": "List[string]", + "description": "Ids of channels participating in this bridge", + "required": true + }, + "video_mode": { + "type": "string", + "description": "The video mode the bridge is using. One of 'none', 'talker', or 'single'.", + "required": false + }, + "video_source_id": { + "type": "string", + "description": "The ID of the channel that is the source of video in this bridge, if one exists.", + "required": false + }, + "creationtime": { + "required": true, + "type": "Date", + "description": "Timestamp when bridge was created" + } + } + } + } +} diff --git a/codegen/src/main/resources/codegen-data/ari_4_0_2/channels.json b/codegen/src/main/resources/codegen-data/ari_4_0_2/channels.json new file mode 100644 index 00000000..4ea5f564 --- /dev/null +++ b/codegen/src/main/resources/codegen-data/ari_4_0_2/channels.json @@ -0,0 +1,2039 @@ +{ + "_copyright": "Copyright (C) 2012 - 2013, Digium, Inc.", + "_author": "David M. Lee, II ", + "_svn_revision": "$Revision$", + "apiVersion": "2.0.0", + "swaggerVersion": "1.1", + "basePath": "http://localhost:8088/ari", + "resourcePath": "/api-docs/channels.{format}", + "requiresModules": [ + "res_stasis_answer", + "res_stasis_playback", + "res_stasis_recording", + "res_stasis_snoop" + ], + "apis": [ + { + "path": "/channels", + "description": "Active channels", + "operations": [ + { + "httpMethod": "GET", + "summary": "List all active channels in Asterisk.", + "nickname": "list", + "responseClass": "List[Channel]" + }, + { + "httpMethod": "POST", + "summary": "Create a new channel (originate).", + "notes": "The new channel is created immediately and a snapshot of it returned. If a Stasis application is provided it will be automatically subscribed to the originated channel for further events and updates.", + "nickname": "originate", + "responseClass": "Channel", + "parameters": [ + { + "name": "endpoint", + "description": "Endpoint to call.", + "paramType": "query", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "extension", + "description": "The extension to dial after the endpoint answers. Mutually exclusive with 'app'.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "context", + "description": "The context to dial after the endpoint answers. If omitted, uses 'default'. Mutually exclusive with 'app'.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "priority", + "description": "The priority to dial after the endpoint answers. If omitted, uses 1. Mutually exclusive with 'app'.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "long" + }, + { + "name": "label", + "description": "The label to dial after the endpoint answers. Will supersede 'priority' if provided. Mutually exclusive with 'app'.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "app", + "description": "The application that is subscribed to the originated channel. When the channel is answered, it will be passed to this Stasis application. Mutually exclusive with 'context', 'extension', 'priority', and 'label'.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "appArgs", + "description": "The application arguments to pass to the Stasis application provided by 'app'. Mutually exclusive with 'context', 'extension', 'priority', and 'label'.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "callerId", + "description": "CallerID to use when dialing the endpoint or extension.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "timeout", + "description": "Timeout (in seconds) before giving up dialing, or -1 for no timeout.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "int", + "defaultValue": 30 + }, + { + "name": "variables", + "description": "The \"variables\" key in the body object holds variable key/value pairs to set on the channel on creation. Other keys in the body object are interpreted as query parameters. Ex. { \"endpoint\": \"SIP/Alice\", \"variables\": { \"CALLERID(name)\": \"Alice\" } }", + "paramType": "body", + "required": false, + "dataType": "containers", + "allowMultiple": false + }, + { + "name": "channelId", + "description": "The unique id to assign the channel on creation.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "otherChannelId", + "description": "The unique id to assign the second channel when using local channels.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "originator", + "description": "The unique id of the channel which is originating this one.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "formats", + "description": "The format name capability list to use if originator is not specified. Ex. \"ulaw,slin16\". Format names can be found with \"core show codecs\".", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 400, + "reason": "Invalid parameters for originating a channel." + }, + { + "code": 409, + "reason": "Channel with given unique ID already exists." + } + ] + } + ] + }, + { + "path": "/channels/create", + "description": "Create a channel and place it in a Stasis app, but do not dial the channel yet.", + "operations": [ + { + "httpMethod": "POST", + "summary": "Create channel.", + "nickname": "create", + "responseClass": "Channel", + "parameters": [ + { + "name": "endpoint", + "description": "Endpoint for channel communication", + "paramType": "query", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "app", + "description": "Stasis Application to place channel into", + "paramType": "query", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "appArgs", + "description": "The application arguments to pass to the Stasis application provided by 'app'. Mutually exclusive with 'context', 'extension', 'priority', and 'label'.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "channelId", + "description": "The unique id to assign the channel on creation.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "otherChannelId", + "description": "The unique id to assign the second channel when using local channels.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "originator", + "description": "Unique ID of the calling channel", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "formats", + "description": "The format name capability list to use if originator is not specified. Ex. \"ulaw,slin16\". Format names can be found with \"core show codecs\".", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 409, + "reason": "Channel with given unique ID already exists." + } + ] + } + ] + }, + { + "path": "/channels/{channelId}", + "description": "Active channel", + "operations": [ + { + "httpMethod": "GET", + "summary": "Channel details.", + "nickname": "get", + "responseClass": "Channel", + "parameters": [ + { + "name": "channelId", + "description": "Channel's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Channel not found" + } + ] + }, + { + "httpMethod": "POST", + "summary": "Create a new channel (originate with id).", + "notes": "The new channel is created immediately and a snapshot of it returned. If a Stasis application is provided it will be automatically subscribed to the originated channel for further events and updates.", + "nickname": "originateWithId", + "responseClass": "Channel", + "parameters": [ + { + "name": "channelId", + "description": "The unique id to assign the channel on creation.", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "endpoint", + "description": "Endpoint to call.", + "paramType": "query", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "extension", + "description": "The extension to dial after the endpoint answers. Mutually exclusive with 'app'.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "context", + "description": "The context to dial after the endpoint answers. If omitted, uses 'default'. Mutually exclusive with 'app'.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "priority", + "description": "The priority to dial after the endpoint answers. If omitted, uses 1. Mutually exclusive with 'app'.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "long" + }, + { + "name": "label", + "description": "The label to dial after the endpoint answers. Will supersede 'priority' if provided. Mutually exclusive with 'app'.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "app", + "description": "The application that is subscribed to the originated channel. When the channel is answered, it will be passed to this Stasis application. Mutually exclusive with 'context', 'extension', 'priority', and 'label'.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "appArgs", + "description": "The application arguments to pass to the Stasis application provided by 'app'. Mutually exclusive with 'context', 'extension', 'priority', and 'label'.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "callerId", + "description": "CallerID to use when dialing the endpoint or extension.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "timeout", + "description": "Timeout (in seconds) before giving up dialing, or -1 for no timeout.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "int", + "defaultValue": 30 + }, + { + "name": "variables", + "description": "The \"variables\" key in the body object holds variable key/value pairs to set on the channel on creation. Other keys in the body object are interpreted as query parameters. Ex. { \"endpoint\": \"SIP/Alice\", \"variables\": { \"CALLERID(name)\": \"Alice\" } }", + "paramType": "body", + "required": false, + "dataType": "containers", + "allowMultiple": false + }, + { + "name": "otherChannelId", + "description": "The unique id to assign the second channel when using local channels.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "originator", + "description": "The unique id of the channel which is originating this one.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "formats", + "description": "The format name capability list to use if originator is not specified. Ex. \"ulaw,slin16\". Format names can be found with \"core show codecs\".", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 400, + "reason": "Invalid parameters for originating a channel." + }, + { + "code": 409, + "reason": "Channel with given unique ID already exists." + } + ] + + }, + { + "httpMethod": "DELETE", + "summary": "Delete (i.e. hangup) a channel.", + "nickname": "hangup", + "responseClass": "void", + "parameters": [ + { + "name": "channelId", + "description": "Channel's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "reason", + "description": "Reason for hanging up the channel", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string", + "defalutValue": "normal", + "allowableValues": { + "valueType": "LIST", + "values": [ + "normal", + "busy", + "congestion", + "no_answer", + "timeout", + "rejected", + "unallocated", + "normal_unspecified", + "number_incomplete", + "codec_mismatch", + "interworking", + "failure", + "answered_elsewhere" + ] + } + } + ], + "errorResponses": [ + { + "code": 400, + "reason": "Invalid reason for hangup provided" + }, + { + "code": 404, + "reason": "Channel not found" + } + ] + } + ] + }, + { + "path": "/channels/{channelId}/continue", + "description": "Exit application; continue execution in the dialplan", + "operations": [ + { + "httpMethod": "POST", + "summary": "Exit application; continue execution in the dialplan.", + "nickname": "continueInDialplan", + "responseClass": "void", + "parameters": [ + { + "name": "channelId", + "description": "Channel's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "context", + "description": "The context to continue to.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "extension", + "description": "The extension to continue to.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "priority", + "description": "The priority to continue to.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "int" + }, + { + "name": "label", + "description": "The label to continue to - will supersede 'priority' if both are provided.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Channel not found" + }, + { + "code": 409, + "reason": "Channel not in a Stasis application" + }, + { + "code": 412, + "reason": "Channel in invalid state" + } + ] + } + ] + }, + { + "path": "/channels/{channelId}/move", + "description": "Move the channel from one Stasis application to another.", + "operations": [ + { + "httpMethod": "POST", + "summary": "Move the channel from one Stasis application to another.", + "nickname": "move", + "responseClass": "void", + "parameters": [ + { + "name": "channelId", + "description": "Channel's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "app", + "description": "The channel will be passed to this Stasis application.", + "paramType": "query", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "appArgs", + "description": "The application arguments to pass to the Stasis application provided by 'app'.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": "404", + "reason": "Channel not found" + }, + { + "code": "409", + "reason": "Channel not in a Stasis application" + } + ] + } + ] + }, + { + "path": "/channels/{channelId}/redirect", + "description": "Inform the channel that it should redirect itself to a different location. Note that this will almost certainly cause the channel to exit the application.", + "operations": [ + { + "httpMethod": "POST", + "summary": "Redirect the channel to a different location.", + "nickname": "redirect", + "responseClass": "void", + "parameters": [ + { + "name": "channelId", + "description": "Channel's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "endpoint", + "description": "The endpoint to redirect the channel to", + "paramType": "query", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 400, + "reason": "Endpoint parameter not provided" + }, + { + "code": 404, + "reason": "Channel or endpoint not found" + }, + { + "code": 409, + "reason": "Channel not in a Stasis application" + }, + { + "code": 422, + "reason": "Endpoint is not the same type as the channel" + }, + { + "code": 412, + "reason": "Channel in invalid state" + } + ] + } + ] + }, + { + "path": "/channels/{channelId}/answer", + "description": "Answer a channel", + "operations": [ + { + "httpMethod": "POST", + "summary": "Answer a channel.", + "nickname": "answer", + "responseClass": "void", + "parameters": [ + { + "name": "channelId", + "description": "Channel's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Channel not found" + }, + { + "code": 409, + "reason": "Channel not in a Stasis application" + }, + { + "code": 412, + "reason": "Channel in invalid state" + } + ] + } + ] + }, + { + "path": "/channels/{channelId}/ring", + "description": "Send a ringing indication to a channel", + "operations": [ + { + "httpMethod": "POST", + "summary": "Indicate ringing to a channel.", + "nickname": "ring", + "responseClass": "void", + "parameters": [ + { + "name": "channelId", + "description": "Channel's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Channel not found" + }, + { + "code": 409, + "reason": "Channel not in a Stasis application" + }, + { + "code": 412, + "reason": "Channel in invalid state" + } + ] + }, + { + "httpMethod": "DELETE", + "summary": "Stop ringing indication on a channel if locally generated.", + "nickname": "ringStop", + "responseClass": "void", + "parameters": [ + { + "name": "channelId", + "description": "Channel's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Channel not found" + }, + { + "code": 409, + "reason": "Channel not in a Stasis application" + }, + { + "code": 412, + "reason": "Channel in invalid state" + } + ] + } + ] + }, + { + "path": "/channels/{channelId}/dtmf", + "description": "Send DTMF to a channel", + "operations": [ + { + "httpMethod": "POST", + "summary": "Send provided DTMF to a given channel.", + "nickname": "sendDTMF", + "responseClass": "void", + "parameters": [ + { + "name": "channelId", + "description": "Channel's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "dtmf", + "description": "DTMF To send.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "before", + "description": "Amount of time to wait before DTMF digits (specified in milliseconds) start.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "int", + "defaultValue": 0 + }, + { + "name": "between", + "description": "Amount of time in between DTMF digits (specified in milliseconds).", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "int", + "defaultValue": 100 + }, + { + "name": "duration", + "description": "Length of each DTMF digit (specified in milliseconds).", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "int", + "defaultValue": 100 + }, + { + "name": "after", + "description": "Amount of time to wait after DTMF digits (specified in milliseconds) end.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "int", + "defaultValue": 0 + } + ], + "errorResponses": [ + { + "code": 400, + "reason": "DTMF is required" + }, + { + "code": 404, + "reason": "Channel not found" + }, + { + "code": 409, + "reason": "Channel not in a Stasis application" + }, + { + "code": 412, + "reason": "Channel in invalid state" + } + ] + } + ] + }, + { + "path": "/channels/{channelId}/mute", + "description": "Mute a channel", + "operations": [ + { + "httpMethod": "POST", + "summary": "Mute a channel.", + "nickname": "mute", + "responseClass": "void", + "parameters": [ + { + "name": "channelId", + "description": "Channel's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "direction", + "description": "Direction in which to mute audio", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string", + "defaultValue": "both", + "allowableValues": { + "valueType": "LIST", + "values": [ + "both", + "in", + "out" + ] + } + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Channel not found" + }, + { + "code": 409, + "reason": "Channel not in a Stasis application" + }, + { + "code": 412, + "reason": "Channel in invalid state" + } + ] + }, + { + "httpMethod": "DELETE", + "summary": "Unmute a channel.", + "nickname": "unmute", + "responseClass": "void", + "parameters": [ + { + "name": "channelId", + "description": "Channel's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "direction", + "description": "Direction in which to unmute audio", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string", + "defaultValue": "both", + "allowableValues": { + "valueType": "LIST", + "values": [ + "both", + "in", + "out" + ] + } + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Channel not found" + }, + { + "code": 409, + "reason": "Channel not in a Stasis application" + }, + { + "code": 412, + "reason": "Channel in invalid state" + } + ] + } + ] + }, + { + "path": "/channels/{channelId}/hold", + "description": "Put a channel on hold", + "operations": [ + { + "httpMethod": "POST", + "summary": "Hold a channel.", + "nickname": "hold", + "responseClass": "void", + "parameters": [ + { + "name": "channelId", + "description": "Channel's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Channel not found" + }, + { + "code": 409, + "reason": "Channel not in a Stasis application" + }, + { + "code": 412, + "reason": "Channel in invalid state" + } + ] + }, + { + "httpMethod": "DELETE", + "summary": "Remove a channel from hold.", + "nickname": "unhold", + "responseClass": "void", + "parameters": [ + { + "name": "channelId", + "description": "Channel's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Channel not found" + }, + { + "code": 409, + "reason": "Channel not in a Stasis application" + }, + { + "code": 412, + "reason": "Channel in invalid state" + } + ] + } + ] + }, + { + "path": "/channels/{channelId}/moh", + "description": "Play music on hold to a channel", + "operations": [ + { + "httpMethod": "POST", + "summary": "Play music on hold to a channel.", + "notes": "Using media operations such as /play on a channel playing MOH in this manner will suspend MOH without resuming automatically. If continuing music on hold is desired, the stasis application must reinitiate music on hold.", + "nickname": "startMoh", + "responseClass": "void", + "parameters": [ + { + "name": "channelId", + "description": "Channel's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "mohClass", + "description": "Music on hold class to use", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Channel not found" + }, + { + "code": 409, + "reason": "Channel not in a Stasis application" + }, + { + "code": 412, + "reason": "Channel in invalid state" + } + ] + }, + { + "httpMethod": "DELETE", + "summary": "Stop playing music on hold to a channel.", + "nickname": "stopMoh", + "responseClass": "void", + "parameters": [ + { + "name": "channelId", + "description": "Channel's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Channel not found" + }, + { + "code": 409, + "reason": "Channel not in a Stasis application" + }, + { + "code": 412, + "reason": "Channel in invalid state" + } + ] + } + ] + }, + { + "path": "/channels/{channelId}/silence", + "description": "Play silence to a channel", + "operations": [ + { + "httpMethod": "POST", + "summary": "Play silence to a channel.", + "notes": "Using media operations such as /play on a channel playing silence in this manner will suspend silence without resuming automatically.", + "nickname": "startSilence", + "responseClass": "void", + "parameters": [ + { + "name": "channelId", + "description": "Channel's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Channel not found" + }, + { + "code": 409, + "reason": "Channel not in a Stasis application" + }, + { + "code": 412, + "reason": "Channel in invalid state" + } + ] + }, + { + "httpMethod": "DELETE", + "summary": "Stop playing silence to a channel.", + "nickname": "stopSilence", + "responseClass": "void", + "parameters": [ + { + "name": "channelId", + "description": "Channel's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Channel not found" + }, + { + "code": 409, + "reason": "Channel not in a Stasis application" + }, + { + "code": 412, + "reason": "Channel in invalid state" + } + ] + } + ] + }, + { + "path": "/channels/{channelId}/play", + "description": "Play media to a channel", + "operations": [ + { + "httpMethod": "POST", + "summary": "Start playback of media.", + "notes": "The media URI may be any of a number of URI's. Currently sound:, recording:, number:, digits:, characters:, and tone: URI's are supported. This operation creates a playback resource that can be used to control the playback of media (pause, rewind, fast forward, etc.)", + "nickname": "play", + "responseClass": "Playback", + "parameters": [ + { + "name": "channelId", + "description": "Channel's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "media", + "description": "Media URIs to play.", + "paramType": "query", + "required": true, + "allowMultiple": true, + "dataType": "string" + }, + { + "name": "lang", + "description": "For sounds, selects language for sound.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "offsetms", + "description": "Number of milliseconds to skip before playing. Only applies to the first URI if multiple media URIs are specified.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "int" + }, + { + "name": "skipms", + "description": "Number of milliseconds to skip for forward/reverse operations.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "int", + "defaultValue": 3000 + }, + { + "name": "playbackId", + "description": "Playback ID.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Channel not found" + }, + { + "code": 409, + "reason": "Channel not in a Stasis application" + }, + { + "code": 412, + "reason": "Channel in invalid state" + } + ] + } + ] + }, + { + "path": "/channels/{channelId}/play/{playbackId}", + "description": "Play media to a channel", + "operations": [ + { + "httpMethod": "POST", + "summary": "Start playback of media and specify the playbackId.", + "notes": "The media URI may be any of a number of URI's. Currently sound:, recording:, number:, digits:, characters:, and tone: URI's are supported. This operation creates a playback resource that can be used to control the playback of media (pause, rewind, fast forward, etc.)", + "nickname": "playWithId", + "responseClass": "Playback", + "parameters": [ + { + "name": "channelId", + "description": "Channel's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "playbackId", + "description": "Playback ID.", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "media", + "description": "Media URIs to play.", + "paramType": "query", + "required": true, + "allowMultiple": true, + "dataType": "string" + }, + { + "name": "lang", + "description": "For sounds, selects language for sound.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "offsetms", + "description": "Number of milliseconds to skip before playing. Only applies to the first URI if multiple media URIs are specified.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "int" + }, + { + "name": "skipms", + "description": "Number of milliseconds to skip for forward/reverse operations.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "int", + "defaultValue": 3000 + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Channel not found" + }, + { + "code": 409, + "reason": "Channel not in a Stasis application" + }, + { + "code": 412, + "reason": "Channel in invalid state" + } + ] + } + ] + }, + { + "path": "/channels/{channelId}/record", + "description": "Record audio from a channel", + "operations": [ + { + "httpMethod": "POST", + "summary": "Start a recording.", + "notes": "Record audio from a channel. Note that this will not capture audio sent to the channel. The bridge itself has a record feature if that's what you want.", + "nickname": "record", + "responseClass": "LiveRecording", + "parameters": [ + { + "name": "channelId", + "description": "Channel's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "name", + "description": "Recording's filename", + "paramType": "query", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "format", + "description": "Format to encode audio in", + "paramType": "query", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "maxDurationSeconds", + "description": "Maximum duration of the recording, in seconds. 0 for no limit", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "int", + "defaultValue": 0, + "allowableValues": { + "valueType": "RANGE", + "min": 0 + } + }, + { + "name": "maxSilenceSeconds", + "description": "Maximum duration of silence, in seconds. 0 for no limit", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "int", + "defaultValue": 0, + "allowableValues": { + "valueType": "RANGE", + "min": 0 + } + }, + { + "name": "ifExists", + "description": "Action to take if a recording with the same name already exists.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string", + "defaultValue": "fail", + "allowableValues": { + "valueType": "LIST", + "values": [ + "fail", + "overwrite", + "append" + ] + } + }, + { + "name": "beep", + "description": "Play beep when recording begins", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "boolean", + "defaultValue": false + }, + { + "name": "terminateOn", + "description": "DTMF input to terminate recording", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string", + "defaultValue": "none", + "allowableValues": { + "valueType": "LIST", + "values": [ + "none", + "any", + "*", + "#" + ] + } + } + ], + "errorResponses": [ + { + "code": 400, + "reason": "Invalid parameters" + }, + { + "code": 404, + "reason": "Channel not found" + }, + { + "code": 409, + "reason": "Channel is not in a Stasis application; the channel is currently bridged with other hcannels; A recording with the same name already exists on the system and can not be overwritten because it is in progress or ifExists=fail" + }, + { + "code": 422, + "reason": "The format specified is unknown on this system" + } + ] + } + ] + }, + { + "path": "/channels/{channelId}/variable", + "description": "Variables on a channel", + "operations": [ + { + "httpMethod": "GET", + "summary": "Get the value of a channel variable or function.", + "nickname": "getChannelVar", + "responseClass": "Variable", + "parameters": [ + { + "name": "channelId", + "description": "Channel's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "variable", + "description": "The channel variable or function to get", + "paramType": "query", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 400, + "reason": "Missing variable parameter." + }, + { + "code": 404, + "reason": "Channel or variable not found" + }, + { + "code": 409, + "reason": "Channel not in a Stasis application" + } + ] + }, + { + "httpMethod": "POST", + "summary": "Set the value of a channel variable or function.", + "nickname": "setChannelVar", + "responseClass": "void", + "parameters": [ + { + "name": "channelId", + "description": "Channel's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "variable", + "description": "The channel variable or function to set", + "paramType": "query", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "value", + "description": "The value to set the variable to", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 400, + "reason": "Missing variable parameter." + }, + { + "code": 404, + "reason": "Channel not found" + }, + { + "code": 409, + "reason": "Channel not in a Stasis application" + } + ] + } + ] + }, + { + "path": "/channels/{channelId}/snoop", + "description": "Snoop (spy/whisper) on a channel", + "operations": [ + { + "httpMethod": "POST", + "summary": "Start snooping.", + "notes": "Snoop (spy/whisper) on a specific channel.", + "nickname": "snoopChannel", + "responseClass": "Channel", + "parameters": [ + { + "name": "channelId", + "description": "Channel's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "spy", + "description": "Direction of audio to spy on", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string", + "defaultValue": "none", + "allowableValues": { + "valueType": "LIST", + "values": [ + "none", + "both", + "out", + "in" + ] + } + }, + { + "name": "whisper", + "description": "Direction of audio to whisper into", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string", + "defaultValue": "none", + "allowableValues": { + "valueType": "LIST", + "values": [ + "none", + "both", + "out", + "in" + ] + } + }, + { + "name": "app", + "description": "Application the snooping channel is placed into", + "paramType": "query", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "appArgs", + "description": "The application arguments to pass to the Stasis application", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "snoopId", + "description": "Unique ID to assign to snooping channel", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 400, + "reason": "Invalid parameters" + }, + { + "code": 404, + "reason": "Channel not found" + } + ] + } + ] + }, + { + "path": "/channels/{channelId}/snoop/{snoopId}", + "description": "Snoop (spy/whisper) on a channel", + "operations": [ + { + "httpMethod": "POST", + "summary": "Start snooping.", + "notes": "Snoop (spy/whisper) on a specific channel.", + "nickname": "snoopChannelWithId", + "responseClass": "Channel", + "parameters": [ + { + "name": "channelId", + "description": "Channel's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "snoopId", + "description": "Unique ID to assign to snooping channel", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "spy", + "description": "Direction of audio to spy on", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string", + "defaultValue": "none", + "allowableValues": { + "valueType": "LIST", + "values": [ + "none", + "both", + "out", + "in" + ] + } + }, + { + "name": "whisper", + "description": "Direction of audio to whisper into", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string", + "defaultValue": "none", + "allowableValues": { + "valueType": "LIST", + "values": [ + "none", + "both", + "out", + "in" + ] + } + }, + { + "name": "app", + "description": "Application the snooping channel is placed into", + "paramType": "query", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "appArgs", + "description": "The application arguments to pass to the Stasis application", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 400, + "reason": "Invalid parameters" + }, + { + "code": 404, + "reason": "Channel not found" + } + ] + } + ] + }, + { + "path": "/channels/{channelId}/dial", + "description": "Dial a channel", + "operations": [ + { + "httpMethod": "POST", + "summary": "Dial a created channel.", + "nickname": "dial", + "responseClass": "void", + "parameters": [ + { + "name": "channelId", + "description": "Channel's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "caller", + "description": "Channel ID of caller", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "timeout", + "description": "Dial timeout", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "int", + "defaultValue": 0, + "allowableValues": { + "valueType": "RANGE", + "min": 0 + } + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Channel cannot be found." + }, + { + "code": 409, + "reason": "Channel cannot be dialed." + } + ] + } + ] + }, + { + "path": "/channels/{channelId}/rtp_statistics", + "description": "Get RTP statistics information for RTP on a channel", + "operations": [ + { + "httpMethod": "GET", + "summary": "RTP stats on a channel.", + "nickname": "rtpstatistics", + "responseClass": "RTPstat", + "parameters": [ + { + "name": "channelId", + "description": "Channel's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Channel cannot be found." + } + ] + } + ] + } + ], + "models": { + "Dialed": { + "id": "Dialed", + "description": "Dialed channel information.", + "properties": {} + }, + "DialplanCEP": { + "id": "DialplanCEP", + "description": "Dialplan location (context/extension/priority)", + "properties": { + "context": { + "required": true, + "type": "string", + "description": "Context in the dialplan" + }, + "exten": { + "required": true, + "type": "string", + "description": "Extension in the dialplan" + }, + "priority": { + "required": true, + "type": "long", + "description": "Priority in the dialplan" + }, + "app_name": { + "required": true, + "type": "string", + "description": "Name of current dialplan application" + }, + "app_data": { + "required": true, + "type": "string", + "description": "Parameter of current dialplan application" + } + } + }, + "CallerID": { + "id": "CallerID", + "description": "Caller identification", + "properties": { + "name": { + "required": true, + "type": "string" + }, + "number": { + "required": true, + "type": "string" + } + } + }, + "RTPstat": { + "id": "RTPstat", + "description": "A statistics of a RTP.", + "properties": { + "txcount": { + "required": true, + "type": "int", + "description": "Number of packets transmitted." + }, + "rxcount": { + "required": true, + "type": "int", + "description": "Number of packets received." + }, + "txjitter": { + "required": false, + "type": "double", + "description": "Jitter on transmitted packets." + }, + "rxjitter": { + "required": false, + "type": "double", + "description": "Jitter on received packets." + }, + "remote_maxjitter": { + "required": false, + "type": "double", + "description": "Maximum jitter on remote side." + }, + "remote_minjitter": { + "required": false, + "type": "double", + "description": "Minimum jitter on remote side." + }, + "remote_normdevjitter": { + "required": false, + "type": "double", + "description": "Average jitter on remote side." + }, + "remote_stdevjitter": { + "required": false, + "type": "double", + "description": "Standard deviation jitter on remote side." + }, + "local_maxjitter": { + "required": false, + "type": "double", + "description": "Maximum jitter on local side." + }, + "local_minjitter": { + "required": false, + "type": "double", + "description": "Minimum jitter on local side." + }, + "local_normdevjitter": { + "required": false, + "type": "double", + "description": "Average jitter on local side." + }, + "local_stdevjitter": { + "required": false, + "type": "double", + "description": "Standard deviation jitter on local side." + }, + "txploss": { + "required": true, + "type": "int", + "description": "Number of transmitted packets lost." + }, + "rxploss": { + "required": true, + "type": "int", + "description": "Number of received packets lost." + }, + "remote_maxrxploss": { + "required": false, + "type": "double", + "description": "Maximum number of packets lost on remote side." + }, + "remote_minrxploss": { + "required": false, + "type": "double", + "description": "Minimum number of packets lost on remote side." + }, + "remote_normdevrxploss": { + "required": false, + "type": "double", + "description": "Average number of packets lost on remote side." + }, + "remote_stdevrxploss": { + "required": false, + "type": "double", + "description": "Standard deviation packets lost on remote side." + }, + "local_maxrxploss": { + "required": false, + "type": "double", + "description": "Maximum number of packets lost on local side." + }, + "local_minrxploss": { + "required": false, + "type": "double", + "description": "Minimum number of packets lost on local side." + }, + "local_normdevrxploss": { + "required": false, + "type": "double", + "description": "Average number of packets lost on local side." + }, + "local_stdevrxploss": { + "required": false, + "type": "double", + "description": "Standard deviation packets lost on local side." + }, + "rtt": { + "required": false, + "type": "double", + "description": "Total round trip time." + }, + "maxrtt": { + "required": false, + "type": "double", + "description": "Maximum round trip time." + }, + "minrtt": { + "required": false, + "type": "double", + "description": "Minimum round trip time." + }, + "normdevrtt": { + "required": false, + "type": "double", + "description": "Average round trip time." + }, + "stdevrtt": { + "required": false, + "type": "double", + "description": "Standard deviation round trip time." + }, + "local_ssrc": { + "required": true, + "type": "int", + "description": "Our SSRC." + }, + "remote_ssrc": { + "required": true, + "type": "int", + "description": "Their SSRC." + }, + "txoctetcount": { + "required": true, + "type": "int", + "description": "Number of octets transmitted." + }, + "rxoctetcount": { + "required": true, + "type": "int", + "description": "Number of octets received." + }, + "channel_uniqueid": { + "required": true, + "type": "string", + "description": "The Asterisk channel's unique ID that owns this instance." + } + } + }, + "Channel": { + "id": "Channel", + "description": "A specific communication connection between Asterisk and an Endpoint.", + "properties": { + "id": { + "required": true, + "type": "string", + "description": "Unique identifier of the channel.\n\nThis is the same as the Uniqueid field in AMI." + }, + "name": { + "required": true, + "type": "string", + "description": "Name of the channel (i.e. SIP/foo-0000a7e3)" + }, + "state": { + "required": true, + "type": "string", + "allowableValues": { + "valueType": "LIST", + "values": [ + "Down", + "Rsrved", + "OffHook", + "Dialing", + "Ring", + "Ringing", + "Up", + "Busy", + "Dialing Offhook", + "Pre-ring", + "Unknown" + ] + } + }, + "caller": { + "required": true, + "type": "CallerID" + }, + "connected": { + "required": true, + "type": "CallerID" + }, + "accountcode": { + "required": true, + "type": "string" + }, + "dialplan": { + "required": true, + "type": "DialplanCEP", + "description": "Current location in the dialplan" + }, + "creationtime": { + "required": true, + "type": "Date", + "description": "Timestamp when channel was created" + }, + "language": { + "required": true, + "type": "string", + "description": "The default spoken language" + }, + "channelvars": { + "required": false, + "type": "object", + "description": "Channel variables" + } + } + } + } +} diff --git a/codegen/src/main/resources/codegen-data/ari_4_0_2/deviceStates.json b/codegen/src/main/resources/codegen-data/ari_4_0_2/deviceStates.json new file mode 100644 index 00000000..bd389355 --- /dev/null +++ b/codegen/src/main/resources/codegen-data/ari_4_0_2/deviceStates.json @@ -0,0 +1,154 @@ +{ + "_copyright": "Copyright (C) 2012 - 2013, Digium, Inc.", + "_author": "Kevin Harwell ", + "_svn_revision": "$Revision$", + "apiVersion": "2.0.0", + "swaggerVersion": "1.1", + "basePath": "http://localhost:8088/ari", + "resourcePath": "/api-docs/deviceStates.{format}", + "requiresModules": [ + "res_stasis_device_state" + ], + "apis": [ + { + "path": "/deviceStates", + "description": "Device states", + "operations": [ + { + "httpMethod": "GET", + "summary": "List all ARI controlled device states.", + "nickname": "list", + "responseClass": "List[DeviceState]" + } + ] + }, + { + "path": "/deviceStates/{deviceName}", + "description": "Device state", + "operations": [ + { + "httpMethod": "GET", + "summary": "Retrieve the current state of a device.", + "nickname": "get", + "responseClass": "DeviceState", + "parameters": [ + { + "name": "deviceName", + "description": "Name of the device", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ] + }, + { + "httpMethod": "PUT", + "summary": "Change the state of a device controlled by ARI. (Note - implicitly creates the device state).", + "nickname": "update", + "responseClass": "void", + "parameters": [ + { + "name": "deviceName", + "description": "Name of the device", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "deviceState", + "description": "Device state value", + "paramType": "query", + "required": true, + "allowMultiple": false, + "dataType": "string", + "allowableValues": { + "valueType": "LIST", + "values": [ + "NOT_INUSE", + "INUSE", + "BUSY", + "INVALID", + "UNAVAILABLE", + "RINGING", + "RINGINUSE", + "ONHOLD" + ] + } + + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Device name is missing" + }, + { + "code": 409, + "reason": "Uncontrolled device specified" + } + ] + }, + { + "httpMethod": "DELETE", + "summary": "Destroy a device-state controlled by ARI.", + "nickname": "delete", + "responseClass": "void", + "parameters": [ + { + "name": "deviceName", + "description": "Name of the device", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Device name is missing" + }, + { + "code": 409, + "reason": "Uncontrolled device specified" + } + ] + } + ] + } + ], + "models": { + "DeviceState": { + "id": "DeviceState", + "description": "Represents the state of a device.", + "properties": { + "name": { + "type": "string", + "description": "Name of the device.", + "required": true + }, + "state": { + "type": "string", + "description": "Device's state", + "required": true, + "allowableValues": { + "valueType": "LIST", + "values": [ + "UNKNOWN", + "NOT_INUSE", + "INUSE", + "BUSY", + "INVALID", + "UNAVAILABLE", + "RINGING", + "RINGINUSE", + "ONHOLD" + ] + } + } + } + } + } +} diff --git a/codegen/src/main/resources/codegen-data/ari_4_0_2/endpoints.json b/codegen/src/main/resources/codegen-data/ari_4_0_2/endpoints.json new file mode 100644 index 00000000..264c0eb2 --- /dev/null +++ b/codegen/src/main/resources/codegen-data/ari_4_0_2/endpoints.json @@ -0,0 +1,279 @@ +{ + "_copyright": "Copyright (C) 2012 - 2013, Digium, Inc.", + "_author": "David M. Lee, II ", + "_svn_revision": "$Revision$", + "apiVersion": "2.0.0", + "swaggerVersion": "1.1", + "basePath": "http://localhost:8088/ari", + "resourcePath": "/api-docs/endpoints.{format}", + "apis": [ + { + "path": "/endpoints", + "description": "Asterisk endpoints", + "operations": [ + { + "httpMethod": "GET", + "summary": "List all endpoints.", + "nickname": "list", + "responseClass": "List[Endpoint]" + } + ] + }, + { + "path": "/endpoints/sendMessage", + "description": "Send a message to some technology URI or endpoint.", + "operations": [ + { + "httpMethod": "PUT", + "summary": "Send a message to some technology URI or endpoint.", + "nickname": "sendMessage", + "responseClass": "void", + "parameters": [ + { + "name": "to", + "description": "The endpoint resource or technology specific URI to send the message to. Valid resources are sip, pjsip, and xmpp.", + "paramType": "query", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "from", + "description": "The endpoint resource or technology specific identity to send this message from. Valid resources are sip, pjsip, and xmpp.", + "paramType": "query", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "body", + "description": "The body of the message", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "variables", + "descriptioni": "The \"variables\" key in the body object holds technology specific key/value pairs to append to the message. These can be interpreted and used by the various resource types; for example, pjsip and sip resource types will add the key/value pairs as SIP headers,", + "paramType": "body", + "required": false, + "dataType": "containers", + "allowMultiple": false + } + ], + "errorResponses": [ + { + "code": 400, + "reason": "Invalid parameters for sending a message." + }, + { + "code": 404, + "reason": "Endpoint not found" + } + ] + } + ] + }, + { + "path": "/endpoints/{tech}", + "description": "Asterisk endpoints", + "operations": [ + { + "httpMethod": "GET", + "summary": "List available endoints for a given endpoint technology.", + "nickname": "listByTech", + "responseClass": "List[Endpoint]", + "parameters": [ + { + "name": "tech", + "description": "Technology of the endpoints (sip,iax2,...)", + "paramType": "path", + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Endpoints not found" + } + ] + } + ] + }, + { + "path": "/endpoints/{tech}/{resource}", + "description": "Single endpoint", + "operations": [ + { + "httpMethod": "GET", + "summary": "Details for an endpoint.", + "nickname": "get", + "responseClass": "Endpoint", + "parameters": [ + { + "name": "tech", + "description": "Technology of the endpoint", + "paramType": "path", + "dataType": "string" + }, + { + "name": "resource", + "description": "ID of the endpoint", + "paramType": "path", + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 400, + "reason": "Invalid parameters for sending a message." + }, + { + "code": 404, + "reason": "Endpoints not found" + } + ] + } + ] + }, + { + "path": "/endpoints/{tech}/{resource}/sendMessage", + "description": "Send a message to some endpoint in a technology.", + "operations": [ + { + "httpMethod": "PUT", + "summary": "Send a message to some endpoint in a technology.", + "nickname": "sendMessageToEndpoint", + "responseClass": "void", + "parameters": [ + { + "name": "tech", + "description": "Technology of the endpoint", + "paramType": "path", + "dataType": "string" + }, + { + "name": "resource", + "description": "ID of the endpoint", + "paramType": "path", + "dataType": "string" + }, + { + "name": "from", + "description": "The endpoint resource or technology specific identity to send this message from. Valid resources are sip, pjsip, and xmpp.", + "paramType": "query", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "body", + "description": "The body of the message", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "variables", + "descriptioni": "The \"variables\" key in the body object holds technology specific key/value pairs to append to the message. These can be interpreted and used by the various resource types; for example, pjsip and sip resource types will add the key/value pairs as SIP headers,", + "paramType": "body", + "required": false, + "dataType": "containers", + "allowMultiple": false + } + ], + "errorResponses": [ + { + "code": 400, + "reason": "Invalid parameters for sending a message." + }, + { + "code": 404, + "reason": "Endpoint not found" + } + ] + } + ] + } + ], + "models": { + "Endpoint": { + "id": "Endpoint", + "description": "An external device that may offer/accept calls to/from Asterisk.\n\nUnlike most resources, which have a single unique identifier, an endpoint is uniquely identified by the technology/resource pair.", + "properties": { + "technology": { + "type": "string", + "description": "Technology of the endpoint", + "required": true + }, + "resource": { + "type": "string", + "description": "Identifier of the endpoint, specific to the given technology.", + "required": true + }, + "state": { + "type": "string", + "description": "Endpoint's state", + "required": false, + "allowableValues": { + "valueType": "LIST", + "values": [ + "unknown", + "offline", + "online" + ] + } + }, + "channel_ids": { + "type": "List[string]", + "description": "Id's of channels associated with this endpoint", + "required": true + } + } + }, + "TextMessageVariable": { + "id": "TextMessageVariable", + "description": "A key/value pair variable in a text message.", + "properties": { + "key": { + "type": "string", + "description": "A unique key identifying the variable.", + "required": true + }, + "value": { + "type": "string", + "description": "The value of the variable.", + "required": true + } + } + }, + "TextMessage": { + "id": "TextMessage", + "description": "A text message.", + "properties": { + "from": { + "type": "string", + "description": "A technology specific URI specifying the source of the message. For sip and pjsip technologies, any SIP URI can be specified. For xmpp, the URI must correspond to the client connection being used to send the message.", + "required": true + }, + "to": { + "type": "string", + "description": "A technology specific URI specifying the destination of the message. Valid technologies include sip, pjsip, and xmp. The destination of a message should be an endpoint.", + "required": true + }, + "body": { + "type": "string", + "description": "The text of the message.", + "required": true + }, + "variables": { + "type": "List[TextMessageVariable]", + "description": "Technology specific key/value pairs associated with the message.", + "required": false + } + } + } + } +} diff --git a/codegen/src/main/resources/codegen-data/ari_4_0_2/events.json b/codegen/src/main/resources/codegen-data/ari_4_0_2/events.json new file mode 100644 index 00000000..c9822f6c --- /dev/null +++ b/codegen/src/main/resources/codegen-data/ari_4_0_2/events.json @@ -0,0 +1,918 @@ +{ + "_copyright": "Copyright (C) 2012 - 2013, Digium, Inc.", + "_author": "David M. Lee, II ", + "_svn_revision": "$Revision$", + "apiVersion": "2.0.0", + "swaggerVersion": "1.2", + "basePath": "http://localhost:8088/ari", + "resourcePath": "/api-docs/events.{format}", + "requiresModules": [ + "res_http_websocket" + ], + "apis": [ + { + "path": "/events", + "description": "Events from Asterisk to applications", + "operations": [ + { + "httpMethod": "GET", + "upgrade": "websocket", + "websocketProtocol": "ari", + "summary": "WebSocket connection for events.", + "nickname": "eventWebsocket", + "responseClass": "Message", + "parameters": [ + { + "name": "app", + "description": "Applications to subscribe to.", + "paramType": "query", + "required": true, + "allowMultiple": true, + "dataType": "string" + }, + { + "name": "subscribeAll", + "description": "Subscribe to all Asterisk events. If provided, the applications listed will be subscribed to all events, effectively disabling the application specific subscriptions. Default is 'false'.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "boolean" + } + ] + } + ] + }, + { + "path": "/events/user/{eventName}", + "description": "Stasis application user events", + "operations": [ + { + "httpMethod": "POST", + "summary": "Generate a user event.", + "nickname": "userEvent", + "responseClass": "void", + "parameters": [ + { + "name": "eventName", + "description": "Event name", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "application", + "description": "The name of the application that will receive this event", + "paramType": "query", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "source", + "description": "URI for event source (channel:{channelId}, bridge:{bridgeId}, endpoint:{tech}/{resource}, deviceState:{deviceName}", + "paramType": "query", + "required": false, + "allowMultiple": true, + "dataType": "string" + }, + { + "name": "variables", + "description": "The \"variables\" key in the body object holds custom key/value pairs to add to the user event. Ex. { \"variables\": { \"key\": \"value\" } }", + "paramType": "body", + "required": false, + "allowMultiple": false, + "dataType": "containers" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Application does not exist." + }, + { + "code": 422, + "reason": "Event source not found." + }, + { + "code": 400, + "reason": "Invalid even tsource URI or userevent data." + } + ] + } + ] + } + ], + "models": { + "Message": { + "id": "Message", + "description": "Base type for errors and events", + "discriminator": "type", + "properties": { + "type": { + "type": "string", + "required": true, + "description": "Indicates the type of this message." + }, + "asterisk_id": { + "type": "string", + "required": false, + "description": "The unique ID for the Asterisk instance that raised this event." + } + }, + "subTypes": [ + "MissingParams", + "Event" + ] + }, + "MissingParams": { + "id": "MissingParams", + "description": "Error event sent when required params are missing.", + "properties": { + "params": { + "required": true, + "type": "List[string]", + "description": "A list of the missing parameters" + } + } + }, + "Event": { + "id": "Event", + "description": "Base type for asynchronous events from Asterisk.", + "properties": { + "application": { + "type": "string", + "description": "Name of the application receiving the event.", + "required": true + }, + "timestamp": { + "type": "Date", + "description": "Time at which this event was created.", + "required": true + } + }, + "subTypes": [ + "DeviceStateChanged", + "PlaybackStarted", + "PlaybackContinuing", + "PlaybackFinished", + "RecordingStarted", + "RecordingFinished", + "RecordingFailed", + "ApplicationMoveFailed", + "ApplicationReplaced", + "BridgeCreated", + "BridgeDestroyed", + "BridgeMerged", + "BridgeBlindTransfer", + "BridgeAttendedTransfer", + "BridgeVideoSourceChanged", + "ChannelCreated", + "ChannelDestroyed", + "ChannelEnteredBridge", + "ChannelLeftBridge", + "ChannelStateChange", + "ChannelDtmfReceived", + "ChannelDialplan", + "ChannelCallerId", + "ChannelUserevent", + "ChannelHangupRequest", + "ChannelVarset", + "ChannelTalkingStarted", + "ChannelTalkingFinished", + "ChannelHold", + "ChannelUnhold", + "ContactStatusChange", + "EndpointStateChange", + "Dial", + "StasisEnd", + "StasisStart", + "TextMessageReceived", + "ChannelConnectedLine", + "PeerStatusChange" + ] + }, + "ContactInfo": { + "id": "ContactInfo", + "description": "Detailed information about a contact on an endpoint.", + "properties": { + "uri": { + "type": "string", + "description": "The location of the contact.", + "required": true + }, + "contact_status": { + "type": "string", + "description": "The current status of the contact.", + "required": true, + "allowableValues": { + "valueType": "LIST", + "values": [ + "Unreachable", + "Reachable", + "Unknown", + "NonQualified", + "Removed" + ] + } + }, + "aor": { + "type": "string", + "description": "The Address of Record this contact belongs to.", + "required": true + }, + "roundtrip_usec": { + "type": "string", + "description": "Current round trip time, in microseconds, for the contact.", + "required": false + } + } + }, + "Peer": { + "id": "Peer", + "description": "Detailed information about a remote peer that communicates with Asterisk.", + "properties": { + "peer_status": { + "type": "string", + "description": "The current state of the peer. Note that the values of the status are dependent on the underlying peer technology.", + "required": true + }, + "cause": { + "type": "string", + "description": "An optional reason associated with the change in peer_status.", + "required": false + }, + "address": { + "type": "string", + "description": "The IP address of the peer.", + "required": false + }, + "port": { + "type": "string", + "description": "The port of the peer.", + "required": false + }, + "time": { + "type": "string", + "description": "The last known time the peer was contacted.", + "required": false + } + } + }, + "DeviceStateChanged": { + "id": "DeviceStateChanged", + "description": "Notification that a device state has changed.", + "properties": { + "device_state": { + "type": "DeviceState", + "description": "Device state object", + "required": true + } + } + }, + "PlaybackStarted": { + "id": "PlaybackStarted", + "description": "Event showing the start of a media playback operation.", + "properties": { + "playback": { + "type": "Playback", + "description": "Playback control object", + "required": true + } + } + }, + "PlaybackContinuing": { + "id": "PlaybackContinuing", + "description": "Event showing the continuation of a media playback operation from one media URI to the next in the list.", + "properties": { + "playback": { + "type": "Playback", + "description": "Playback control object", + "required": true + } + } + }, + "PlaybackFinished": { + "id": "PlaybackFinished", + "description": "Event showing the completion of a media playback operation.", + "properties": { + "playback": { + "type": "Playback", + "description": "Playback control object", + "required": true + } + } + }, + "RecordingStarted": { + "id": "RecordingStarted", + "description": "Event showing the start of a recording operation.", + "properties": { + "recording": { + "type": "LiveRecording", + "description": "Recording control object", + "required": true + } + } + }, + "RecordingFinished": { + "id": "RecordingFinished", + "description": "Event showing the completion of a recording operation.", + "properties": { + "recording": { + "type": "LiveRecording", + "description": "Recording control object", + "required": true + } + } + }, + "RecordingFailed": { + "id": "RecordingFailed", + "description": "Event showing failure of a recording operation.", + "properties": { + "recording": { + "type": "LiveRecording", + "description": "Recording control object", + "required": true + } + } + }, + "ApplicationMoveFailed": { + "id": "ApplicationMoveFailed", + "description": "Notification that trying to move a channel to another Stasis application failed.", + "properties": { + "channel": { + "required": true, + "type": "Channel" + }, + "destination": { + "required": true, + "type": "string" + }, + "args": { + "required": true, + "type": "List[string]", + "description": "Arguments to the application" + } + } + }, + "ApplicationReplaced": { + "id": "ApplicationReplaced", + "description": "Notification that another WebSocket has taken over for an application.\n\nAn application may only be subscribed to by a single WebSocket at a time. If multiple WebSockets attempt to subscribe to the same application, the newer WebSocket wins, and the older one receives this event.", + "properties": {} + }, + "BridgeCreated": { + "id": "BridgeCreated", + "description": "Notification that a bridge has been created.", + "properties": { + "bridge": { + "required": true, + "type": "Bridge" + } + } + }, + "BridgeDestroyed": { + "id": "BridgeDestroyed", + "description": "Notification that a bridge has been destroyed.", + "properties": { + "bridge": { + "required": true, + "type": "Bridge" + } + } + }, + "BridgeMerged": { + "id": "BridgeMerged", + "description": "Notification that one bridge has merged into another.", + "properties": { + "bridge": { + "required": true, + "type": "Bridge" + }, + "bridge_from": { + "required": true, + "type": "Bridge" + } + } + }, + "BridgeVideoSourceChanged": { + "id": "BridgeVideoSourceChanged", + "description": "Notification that the source of video in a bridge has changed.", + "properties": { + "bridge": { + "required": true, + "type": "Bridge" + }, + "old_video_source_id": { + "required": false, + "type": "string" + } + } + }, + "BridgeBlindTransfer": { + "id": "BridgeBlindTransfer", + "description": "Notification that a blind transfer has occurred.", + "properties": { + "channel": { + "description": "The channel performing the blind transfer", + "required": true, + "type": "Channel" + }, + "replace_channel": { + "description": "The channel that is replacing transferer when the transferee(s) can not be transferred directly", + "required": false, + "type": "Channel" + }, + "transferee": { + "description": "The channel that is being transferred", + "required": false, + "type": "Channel" + }, + "exten": { + "description": "The extension transferred to", + "required": true, + "type": "string" + }, + "context": { + "description": "The context transferred to", + "required": true, + "type": "string" + }, + "result": { + "description": "The result of the transfer attempt", + "required": true, + "type": "string" + }, + "is_external": { + "description": "Whether the transfer was externally initiated or not", + "required": true, + "type": "boolean" + }, + "bridge": { + "description": "The bridge being transferred", + "type": "Bridge" + } + } + }, + "BridgeAttendedTransfer": { + "id": "BridgeAttendedTransfer", + "description": "Notification that an attended transfer has occurred.", + "properties": { + "transferer_first_leg": { + "description": "First leg of the transferer", + "required": true, + "type": "Channel" + }, + "transferer_second_leg": { + "description": "Second leg of the transferer", + "required": true, + "type": "Channel" + }, + "replace_channel": { + "description": "The channel that is replacing transferer_first_leg in the swap", + "required": false, + "type": "Channel" + }, + "transferee": { + "description": "The channel that is being transferred", + "required": false, + "type": "Channel" + }, + "transfer_target": { + "description": "The channel that is being transferred to", + "required": false, + "type": "Channel" + }, + "result": { + "description": "The result of the transfer attempt", + "required": true, + "type": "string" + }, + "is_external": { + "description": "Whether the transfer was externally initiated or not", + "required": true, + "type": "boolean" + }, + "transferer_first_leg_bridge": { + "description": "Bridge the transferer first leg is in", + "type": "Bridge" + }, + "transferer_second_leg_bridge": { + "description": "Bridge the transferer second leg is in", + "type": "Bridge" + }, + "destination_type": { + "description": "How the transfer was accomplished", + "required": true, + "type": "string" + }, + "destination_bridge": { + "description": "Bridge that survived the merge result", + "type": "string" + }, + "destination_application": { + "description": "Application that has been transferred into", + "type": "string" + }, + "destination_link_first_leg": { + "description": "First leg of a link transfer result", + "type": "Channel" + }, + "destination_link_second_leg": { + "description": "Second leg of a link transfer result", + "type": "Channel" + }, + "destination_threeway_channel": { + "description": "Transferer channel that survived the threeway result", + "type": "Channel" + }, + "destination_threeway_bridge": { + "description": "Bridge that survived the threeway result", + "type": "Bridge" + } + } + }, + "ChannelCreated": { + "id": "ChannelCreated", + "description": "Notification that a channel has been created.", + "properties": { + "channel": { + "required": true, + "type": "Channel" + } + } + }, + "ChannelDestroyed": { + "id": "ChannelDestroyed", + "description": "Notification that a channel has been destroyed.", + "properties": { + "cause": { + "required": true, + "description": "Integer representation of the cause of the hangup", + "type": "int" + }, + "cause_txt": { + "required": true, + "description": "Text representation of the cause of the hangup", + "type": "string" + }, + "channel": { + "required": true, + "type": "Channel" + } + } + }, + "ChannelEnteredBridge": { + "id": "ChannelEnteredBridge", + "description": "Notification that a channel has entered a bridge.", + "properties": { + "bridge": { + "required": true, + "type": "Bridge" + }, + "channel": { + "type": "Channel" + } + } + }, + "ChannelLeftBridge": { + "id": "ChannelLeftBridge", + "description": "Notification that a channel has left a bridge.", + "properties": { + "bridge": { + "required": true, + "type": "Bridge" + }, + "channel": { + "required": true, + "type": "Channel" + } + } + }, + "ChannelStateChange": { + "id": "ChannelStateChange", + "description": "Notification of a channel's state change.", + "properties": { + "channel": { + "required": true, + "type": "Channel" + } + } + }, + "ChannelDtmfReceived": { + "id": "ChannelDtmfReceived", + "description": "DTMF received on a channel.\n\nThis event is sent when the DTMF ends. There is no notification about the start of DTMF", + "properties": { + "digit": { + "required": true, + "type": "string", + "description": "DTMF digit received (0-9, A-E, # or *)" + }, + "duration_ms": { + "required": true, + "type": "int", + "description": "Number of milliseconds DTMF was received" + }, + "channel": { + "required": true, + "type": "Channel", + "description": "The channel on which DTMF was received" + } + } + }, + "ChannelDialplan": { + "id": "ChannelDialplan", + "description": "Channel changed location in the dialplan.", + "properties": { + "channel": { + "required": true, + "type": "Channel", + "description": "The channel that changed dialplan location." + }, + "dialplan_app": { + "required": true, + "type": "string", + "description": "The application about to be executed." + }, + "dialplan_app_data": { + "required": true, + "type": "string", + "description": "The data to be passed to the application." + } + } + }, + "ChannelCallerId": { + "id": "ChannelCallerId", + "description": "Channel changed Caller ID.", + "properties": { + "caller_presentation": { + "required": true, + "type": "int", + "description": "The integer representation of the Caller Presentation value." + }, + "caller_presentation_txt": { + "required": true, + "type": "string", + "description": "The text representation of the Caller Presentation value." + }, + "channel": { + "required": true, + "type": "Channel", + "description": "The channel that changed Caller ID." + } + } + }, + "ChannelUserevent": { + "id": "ChannelUserevent", + "description": "User-generated event with additional user-defined fields in the object.", + "properties": { + "eventname": { + "required": true, + "type": "string", + "description": "The name of the user event." + }, + "channel": { + "required": false, + "type": "Channel", + "description": "A channel that is signaled with the user event." + }, + "bridge": { + "required": false, + "type": "Bridge", + "description": "A bridge that is signaled with the user event." + }, + "endpoint": { + "required": false, + "type": "Endpoint", + "description": "A endpoint that is signaled with the user event." + }, + "userevent": { + "required": true, + "type": "object", + "description": "Custom Userevent data" + } + } + }, + "ChannelHangupRequest": { + "id": "ChannelHangupRequest", + "description": "A hangup was requested on the channel.", + "properties": { + "cause": { + "type": "int", + "description": "Integer representation of the cause of the hangup." + }, + "soft": { + "type": "boolean", + "description": "Whether the hangup request was a soft hangup request." + }, + "channel": { + "required": true, + "type": "Channel", + "description": "The channel on which the hangup was requested." + } + } + }, + "ChannelVarset": { + "id": "ChannelVarset", + "description": "Channel variable changed.", + "properties": { + "variable": { + "required": true, + "type": "string", + "description": "The variable that changed." + }, + "value": { + "required": true, + "type": "string", + "description": "The new value of the variable." + }, + "channel": { + "required": false, + "type": "Channel", + "description": "The channel on which the variable was set.\n\nIf missing, the variable is a global variable." + } + } + }, + "ChannelHold": { + "id": "ChannelHold", + "description": "A channel initiated a media hold.", + "properties": { + "channel": { + "required": true, + "type": "Channel", + "description": "The channel that initiated the hold event." + }, + "musicclass": { + "required": false, + "type": "string", + "description": "The music on hold class that the initiator requested." + } + } + }, + "ChannelUnhold": { + "id": "ChannelUnhold", + "description": "A channel initiated a media unhold.", + "properties": { + "channel": { + "required": true, + "type": "Channel", + "description": "The channel that initiated the unhold event." + } + } + }, + "ChannelTalkingStarted": { + "id": "ChannelTalkingStarted", + "description": "Talking was detected on the channel.", + "properties": { + "channel": { + "required": true, + "type": "Channel", + "description": "The channel on which talking started." + } + } + }, + "ChannelTalkingFinished": { + "id": "ChannelTalkingFinished", + "description": "Talking is no longer detected on the channel.", + "properties": { + "channel": { + "required": true, + "type": "Channel", + "description": "The channel on which talking completed." + }, + "duration": { + "required": true, + "type": "int", + "description": "The length of time, in milliseconds, that talking was detected on the channel" + } + } + }, + "ContactStatusChange": { + "id": "ContactStatusChange", + "description": "The state of a contact on an endpoint has changed.", + "properties": { + "endpoint": { + "required": true, + "type": "Endpoint" + }, + "contact_info": { + "required": true, + "type": "ContactInfo" + } + } + }, + "PeerStatusChange": { + "id": "PeerStatusChange", + "description": "The state of a peer associated with an endpoint has changed.", + "properties": { + "endpoint": { + "required": true, + "type": "Endpoint" + }, + "peer": { + "required": true, + "type": "Peer" + } + } + }, + "EndpointStateChange": { + "id": "EndpointStateChange", + "description": "Endpoint state changed.", + "properties": { + "endpoint": { + "required": true, + "type": "Endpoint" + } + } + }, + "Dial": { + "id": "Dial", + "description": "Dialing state has changed.", + "properties": { + "caller": { + "required": false, + "type": "Channel", + "description": "The calling channel." + }, + "peer": { + "required": true, + "type": "Channel", + "description": "The dialed channel." + }, + "forward": { + "required": false, + "type": "string", + "description": "Forwarding target requested by the original dialed channel." + }, + "forwarded": { + "required": false, + "type": "Channel", + "description": "Channel that the caller has been forwarded to." + }, + "dialstring": { + "required": false, + "type": "string", + "description": "The dial string for calling the peer channel." + }, + "dialstatus": { + "required": true, + "type": "string", + "description": "Current status of the dialing attempt to the peer." + } + } + }, + "StasisEnd": { + "id": "StasisEnd", + "description": "Notification that a channel has left a Stasis application.", + "properties": { + "channel": { + "required": true, + "type": "Channel" + } + } + }, + "StasisStart": { + "id": "StasisStart", + "description": "Notification that a channel has entered a Stasis application.", + "properties": { + "args": { + "required": true, + "type": "List[string]", + "description": "Arguments to the application" + }, + "channel": { + "required": true, + "type": "Channel" + }, + "replace_channel": { + "required": false, + "type": "Channel" + } + } + }, + "TextMessageReceived": { + "id": "TextMessageReceived", + "description": "A text message was received from an endpoint.", + "properties": { + "message": { + "required": true, + "type": "TextMessage" + }, + "endpoint": { + "required": false, + "type": "Endpoint" + } + } + }, + "ChannelConnectedLine": { + "id": "ChannelConnectedLine", + "description": "Channel changed Connected Line.", + "properties": { + "channel": { + "required": true, + "type": "Channel", + "description": "The channel whose connected line has changed." + } + } + } + } +} diff --git a/codegen/src/main/resources/codegen-data/ari_4_0_2/mailboxes.json b/codegen/src/main/resources/codegen-data/ari_4_0_2/mailboxes.json new file mode 100644 index 00000000..8f5941b8 --- /dev/null +++ b/codegen/src/main/resources/codegen-data/ari_4_0_2/mailboxes.json @@ -0,0 +1,137 @@ +{ + "_copyright": "Copyright (C) 2013, Digium, Inc.", + "_author": "Jonathan Rose ", + "_svn_revision": "$Revision$", + "apiVersion": "2.0.0", + "swaggerVersion": "1.1", + "basePath": "http://localhost:8088/ari", + "resourcePath": "/api-docs/mailboxes.{format}", + "requiresModules": [ + "res_stasis_mailbox" + ], + "apis": [ + { + "path": "/mailboxes", + "description": "Mailboxes", + "operations": [ + { + "httpMethod": "GET", + "summary": "List all mailboxes.", + "nickname": "list", + "responseClass": "List[Mailbox]" + } + ] + }, + { + "path": "/mailboxes/{mailboxName}", + "description": "Mailbox state", + "operations": [ + { + "httpMethod": "GET", + "summary": "Retrieve the current state of a mailbox.", + "nickname": "get", + "responseClass": "Mailbox", + "parameters": [ + { + "name": "mailboxName", + "description": "Name of the mailbox", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Mailbox not found" + } + ] + }, + { + "httpMethod": "PUT", + "summary": "Change the state of a mailbox. (Note - implicitly creates the mailbox).", + "nickname": "update", + "responseClass": "void", + "parameters": [ + { + "name": "mailboxName", + "description": "Name of the mailbox", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "oldMessages", + "description": "Count of old messages in the mailbox", + "paramType": "query", + "required": true, + "allowMultiple": false, + "dataType": "int" + }, + { + "name": "newMessages", + "description": "Count of new messages in the mailbox", + "paramType": "query", + "required": true, + "allowMultiple": false, + "dataType": "int" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Mailbox not found" + } + ] + }, + { + "httpMethod": "DELETE", + "summary": "Destroy a mailbox.", + "nickname": "delete", + "responseClass": "void", + "parameters": [ + { + "name": "mailboxName", + "description": "Name of the mailbox", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Mailbox not found" + } + ] + } + ] + } + ], + "models": { + "Mailbox": { + "id": "Mailbox", + "description": "Represents the state of a mailbox.", + "properties": { + "name": { + "type": "string", + "description": "Name of the mailbox.", + "required": true + }, + "old_messages": { + "type": "int", + "description": "Count of old messages in the mailbox.", + "required": true + }, + "new_messages": { + "type": "int", + "description": "Count of new messages in the mailbox.", + "required": true + } + } + } + } +} diff --git a/codegen/src/main/resources/codegen-data/ari_4_0_2/playbacks.json b/codegen/src/main/resources/codegen-data/ari_4_0_2/playbacks.json new file mode 100644 index 00000000..a78dcae7 --- /dev/null +++ b/codegen/src/main/resources/codegen-data/ari_4_0_2/playbacks.json @@ -0,0 +1,164 @@ +{ + "_copyright": "Copyright (C) 2012 - 2013, Digium, Inc.", + "_author": "David M. Lee, II ", + "_svn_revision": "$Revision$", + "apiVersion": "2.0.0", + "swaggerVersion": "1.1", + "basePath": "http://localhost:8088/ari", + "resourcePath": "/api-docs/playbacks.{format}", + "requiresModules": [ + "res_stasis_playback" + ], + "apis": [ + { + "path": "/playbacks/{playbackId}", + "description": "Control object for a playback operation.", + "operations": [ + { + "httpMethod": "GET", + "summary": "Get a playback's details.", + "nickname": "get", + "responseClass": "Playback", + "parameters": [ + { + "name": "playbackId", + "description": "Playback's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "The playback cannot be found" + } + ] + }, + { + "httpMethod": "DELETE", + "summary": "Stop a playback.", + "nickname": "stop", + "responseClass": "void", + "parameters": [ + { + "name": "playbackId", + "description": "Playback's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "The playback cannot be found" + } + ] + } + ] + }, + { + "path": "/playbacks/{playbackId}/control", + "description": "Control object for a playback operation.", + "operations": [ + { + "httpMethod": "POST", + "summary": "Control a playback.", + "nickname": "control", + "responseClass": "void", + "parameters": [ + { + "name": "playbackId", + "description": "Playback's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "operation", + "description": "Operation to perform on the playback.", + "paramType": "query", + "required": true, + "allowMultiple": false, + "dataType": "string", + "allowableValues": { + "valueType": "LIST", + "values": [ + "restart", + "pause", + "unpause", + "reverse", + "forward" + ] + } + } + ], + "errorResponses": [ + { + "code": 400, + "reason": "The provided operation parameter was invalid" + }, + { + "code": 404, + "reason": "The playback cannot be found" + }, + { + "code": 409, + "reason": "The operation cannot be performed in the playback's current state" + } +] + } + ] + } + ], + "models": { + "Playback": { + "id": "Playback", + "description": "Object representing the playback of media to a channel", + "properties": { + "id": { + "type": "string", + "description": "ID for this playback operation", + "required": true + }, + "media_uri": { + "type": "string", + "description": "The URI for the media currently being played back.", + "required": true + }, + "next_media_uri": { + "type": "string", + "description": "If a list of URIs is being played, the next media URI to be played back.", + "required": false + }, + "target_uri": { + "type": "string", + "description": "URI for the channel or bridge to play the media on", + "required": true + }, + "language": { + "type": "string", + "description": "For media types that support multiple languages, the language requested for playback." + }, + "state": { + "type": "string", + "description": "Current state of the playback operation.", + "required": true, + "allowableValues": { + "valueType": "LIST", + "values": [ + "queued", + "playing", + "continuing", + "done" + ] + } + } + } + } + } +} diff --git a/codegen/src/main/resources/codegen-data/ari_4_0_2/recordings.json b/codegen/src/main/resources/codegen-data/ari_4_0_2/recordings.json new file mode 100644 index 00000000..6ffd6d8e --- /dev/null +++ b/codegen/src/main/resources/codegen-data/ari_4_0_2/recordings.json @@ -0,0 +1,413 @@ +{ + "_copyright": "Copyright (C) 2012 - 2013, Digium, Inc.", + "_author": "David M. Lee, II ", + "_svn_revision": "$Revision$", + "apiVersion": "2.0.0", + "swaggerVersion": "1.1", + "basePath": "http://localhost:8088/ari", + "resourcePath": "/api-docs/recordings.{format}", + "requiresModules": [ + "res_stasis_recording" + ], + "apis": [ + { + "path": "/recordings/stored", + "description": "Recordings", + "operations": [ + { + "httpMethod": "GET", + "summary": "List recordings that are complete.", + "nickname": "listStored", + "responseClass": "List[StoredRecording]" + } + ] + }, + { + "path": "/recordings/stored/{recordingName}", + "description": "Individual recording", + "operations": [ + { + "httpMethod": "GET", + "summary": "Get a stored recording's details.", + "nickname": "getStored", + "responseClass": "StoredRecording", + "parameters": [ + { + "name": "recordingName", + "description": "The name of the recording", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Recording not found" + } + ] + }, + { + "httpMethod": "DELETE", + "summary": "Delete a stored recording.", + "nickname": "deleteStored", + "responseClass": "void", + "parameters": [ + { + "name": "recordingName", + "description": "The name of the recording", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Recording not found" + } + ] + } + ] + }, + { + "path": "/recordings/stored/{recordingName}/file", + "description": "The actual file associated with the stored recording", + "operations": [ + { + "httpMethod": "GET", + "summary": "Get the file associated with the stored recording.", + "nickname": "getStoredFile", + "responseClass": "binary", + "parameters": [ + { + "name": "recordingName", + "description": "The name of the recording", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 403, + "reason": "The recording file could not be opened" + }, + { + "code": 404, + "reason": "Recording not found" + } + ] + } + ] + }, + { + "path": "/recordings/stored/{recordingName}/copy", + "description": "Copy an individual recording", + "operations": [ + { + "httpMethod": "POST", + "summary": "Copy a stored recording.", + "nickname": "copyStored", + "responseClass": "StoredRecording", + "parameters": [ + { + "name": "recordingName", + "description": "The name of the recording to copy", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "destinationRecordingName", + "description": "The destination name of the recording", + "paramType": "query", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Recording not found" + }, + { + "code": 409, + "reason": "A recording with the same name already exists on the system" + } + ] + } + ] + }, + { + "path": "/recordings/live/{recordingName}", + "description": "A recording that is in progress", + "operations": [ + { + "httpMethod": "GET", + "summary": "List live recordings.", + "nickname": "getLive", + "responseClass": "LiveRecording", + "parameters": [ + { + "name": "recordingName", + "description": "The name of the recording", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Recording not found" + } + ] + }, + { + "httpMethod": "DELETE", + "summary": "Stop a live recording and discard it.", + "nickname": "cancel", + "responseClass": "void", + "parameters": [ + { + "name": "recordingName", + "description": "The name of the recording", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Recording not found" + } + ] + } + ] + }, + { + "path": "/recordings/live/{recordingName}/stop", + "operations": [ + { + "httpMethod": "POST", + "summary": "Stop a live recording and store it.", + "nickname": "stop", + "responseClass": "void", + "parameters": [ + { + "name": "recordingName", + "description": "The name of the recording", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Recording not found" + } + ] + } + ] + }, + { + "path": "/recordings/live/{recordingName}/pause", + "operations": [ + { + "httpMethod": "POST", + "summary": "Pause a live recording.", + "notes": "Pausing a recording suspends silence detection, which will be restarted when the recording is unpaused. Paused time is not included in the accounting for maxDurationSeconds.", + "nickname": "pause", + "responseClass": "void", + "parameters": [ + { + "name": "recordingName", + "description": "The name of the recording", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Recording not found" + }, + { + "code": 409, + "reason": "Recording not in session" + } + ] + }, + { + "httpMethod": "DELETE", + "summary": "Unpause a live recording.", + "nickname": "unpause", + "responseClass": "void", + "parameters": [ + { + "name": "recordingName", + "description": "The name of the recording", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Recording not found" + }, + { + "code": 409, + "reason": "Recording not in session" + } + ] + } + ] + }, + { + "path": "/recordings/live/{recordingName}/mute", + "operations": [ + { + "httpMethod": "POST", + "summary": "Mute a live recording.", + "notes": "Muting a recording suspends silence detection, which will be restarted when the recording is unmuted.", + "nickname": "mute", + "responseClass": "void", + "parameters": [ + { + "name": "recordingName", + "description": "The name of the recording", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Recording not found" + }, + { + "code": 409, + "reason": "Recording not in session" + } + ] + }, + { + "httpMethod": "DELETE", + "summary": "Unmute a live recording.", + "nickname": "unmute", + "responseClass": "void", + "parameters": [ + { + "name": "recordingName", + "description": "The name of the recording", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Recording not found" + }, + { + "code": 409, + "reason": "Recording not in session" + } + ] + } + ] + } + ], + "models": { + "StoredRecording": { + "id": "StoredRecording", + "description": "A past recording that may be played back.", + "properties": { + "name": { + "required": true, + "type": "string" + }, + "format": { + "required": true, + "type": "string" + } + } + }, + "LiveRecording": { + "id": "LiveRecording", + "description": "A recording that is in progress", + "properties": { + "name": { + "required": true, + "type": "string", + "description": "Base name for the recording" + }, + "format": { + "required": true, + "type": "string", + "description": "Recording format (wav, gsm, etc.)" + }, + "target_uri": { + "required": true, + "type": "string", + "description": "URI for the channel or bridge being recorded" + }, + "state": { + "required": true, + "type": "string", + "allowableValues": { + "valueType": "LIST", + "values": [ + "queued", + "recording", + "paused", + "done", + "failed", + "canceled" + ] + } + }, + "duration": { + "required": false, + "type": "int", + "description": "Duration in seconds of the recording" + }, + "talking_duration": { + "required": false, + "type": "int", + "description": "Duration of talking, in seconds, detected in the recording. This is only available if the recording was initiated with a non-zero maxSilenceSeconds." + }, + "silence_duration": { + "required": false, + "type": "int", + "description": "Duration of silence, in seconds, detected in the recording. This is only available if the recording was initiated with a non-zero maxSilenceSeconds." + }, + "cause": { + "required": false, + "type": "string", + "description": "Cause for recording failure if failed" + } + } + } + } +} diff --git a/codegen/src/main/resources/codegen-data/ari_4_0_2/sounds.json b/codegen/src/main/resources/codegen-data/ari_4_0_2/sounds.json new file mode 100644 index 00000000..8fbe1c57 --- /dev/null +++ b/codegen/src/main/resources/codegen-data/ari_4_0_2/sounds.json @@ -0,0 +1,99 @@ +{ + "_copyright": "Copyright (C) 2012 - 2013, Digium, Inc.", + "_author": "David M. Lee, II ", + "_svn_revision": "$Revision$", + "apiVersion": "2.0.0", + "swaggerVersion": "1.1", + "basePath": "http://localhost:8088/ari", + "resourcePath": "/api-docs/sounds.{format}", + "apis": [ + { + "path": "/sounds", + "description": "Sounds", + "operations": [ + { + "httpMethod": "GET", + "summary": "List all sounds.", + "nickname": "list", + "responseClass": "List[Sound]", + "parameters": [ + { + "name": "lang", + "description": "Lookup sound for a specific language.", + "paramType": "query", + "dataType": "string", + "required": false + }, + { + "name": "format", + "description": "Lookup sound in a specific format.", + "paramType": "query", + "dataType": "string", + "required": false, + "__note": "core show translation can show translation paths between formats, along with relative costs. so this could be just installed format, or we could follow that for transcoded formats." + } + ] + } + ] + }, + { + "path": "/sounds/{soundId}", + "description": "Individual sound", + "operations": [ + { + "httpMethod": "GET", + "summary": "Get a sound's details.", + "nickname": "get", + "responseClass": "Sound", + "parameters": [ + { + "name": "soundId", + "description": "Sound's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ] + } + ] + } + ], + "models": { + "FormatLangPair": { + "id": "FormatLangPair", + "description": "Identifies the format and language of a sound file", + "properties": { + "language": { + "required": true, + "type": "string" + }, + "format": { + "required": true, + "type": "string" + } + } + }, + "Sound": { + "id": "Sound", + "description": "A media file that may be played back.", + "properties": { + "id": { + "required": true, + "description": "Sound's identifier.", + "type": "string" + }, + "text": { + "required": false, + "description": "Text description of the sound, usually the words spoken.", + "type": "string" + }, + "formats": { + "required": true, + "description": "The formats and languages in which this sound is available.", + "type": "List[FormatLangPair]" + } + } + } + } +} diff --git a/codegen/src/main/resources/codegen-data/ari_5_0_0/applications.json b/codegen/src/main/resources/codegen-data/ari_5_0_0/applications.json new file mode 100644 index 00000000..09c5cd5c --- /dev/null +++ b/codegen/src/main/resources/codegen-data/ari_5_0_0/applications.json @@ -0,0 +1,223 @@ +{ + "_copyright": "Copyright (C) 2013, Digium, Inc.", + "_author": "David M. Lee, II ", + "_svn_revision": "$Revision$", + "apiVersion": "2.0.0", + "swaggerVersion": "1.1", + "basePath": "http://localhost:8088/ari", + "resourcePath": "/api-docs/applications.{format}", + "apis": [ + { + "path": "/applications", + "description": "Stasis applications", + "operations": [ + { + "httpMethod": "GET", + "summary": "List all applications.", + "nickname": "list", + "responseClass": "List[Application]" + } + ] + }, + { + "path": "/applications/{applicationName}", + "description": "Stasis application", + "operations": [ + { + "httpMethod": "GET", + "summary": "Get details of an application.", + "nickname": "get", + "responseClass": "Application", + "parameters": [ + { + "name": "applicationName", + "description": "Application's name", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Application does not exist." + } + ] + } + ] + }, + { + "path": "/applications/{applicationName}/subscription", + "description": "Stasis application", + "operations": [ + { + "httpMethod": "POST", + "summary": "Subscribe an application to a event source.", + "notes": "Returns the state of the application after the subscriptions have changed", + "nickname": "subscribe", + "responseClass": "Application", + "parameters": [ + { + "name": "applicationName", + "description": "Application's name", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "eventSource", + "description": "URI for event source (channel:{channelId}, bridge:{bridgeId}, endpoint:{tech}[/{resource}], deviceState:{deviceName}", + "paramType": "query", + "required": true, + "allowMultiple": true, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 400, + "reason": "Missing parameter." + }, + { + "code": 404, + "reason": "Application does not exist." + }, + { + "code": 422, + "reason": "Event source does not exist." + } + ] + }, + { + "httpMethod": "DELETE", + "summary": "Unsubscribe an application from an event source.", + "notes": "Returns the state of the application after the subscriptions have changed", + "nickname": "unsubscribe", + "responseClass": "Application", + "parameters": [ + { + "name": "applicationName", + "description": "Application's name", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "eventSource", + "description": "URI for event source (channel:{channelId}, bridge:{bridgeId}, endpoint:{tech}[/{resource}], deviceState:{deviceName}", + "paramType": "query", + "required": true, + "allowMultiple": true, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 400, + "reason": "Missing parameter; event source scheme not recognized." + }, + { + "code": 404, + "reason": "Application does not exist." + }, + { + "code": 409, + "reason": "Application not subscribed to event source." + }, + { + "code": 422, + "reason": "Event source does not exist." + } + ] + } + ] + }, + { + "path": "/applications/{applicationName}/eventFilter", + "description": "Stasis application", + "operations": [ + { + "httpMethod": "PUT", + "summary": "Filter application events types.", + "notes": "Allowed and/or disallowed event type filtering can be done. The body (parameter) should specify a JSON key/value object that describes the type of event filtering needed. One, or both of the following keys can be designated:

\"allowed\" - Specifies an allowed list of event types
\"disallowed\" - Specifies a disallowed list of event types

Further, each of those key's value should be a JSON array that holds zero, or more JSON key/value objects. Each of these objects must contain the following key with an associated value:

\"type\" - The type name of the event to filter

The value must be the string name (case sensitive) of the event type that needs filtering. For example:

{ \"allowed\": [ { \"type\": \"StasisStart\" }, { \"type\": \"StasisEnd\" } ] }

As this specifies only an allowed list, then only those two event type messages are sent to the application. No other event messages are sent.

The following rules apply:

* If the body is empty, both the allowed and disallowed filters are set empty.
* If both list types are given then both are set to their respective values (note, specifying an empty array for a given type sets that type to empty).
* If only one list type is given then only that type is set. The other type is not updated.
* An empty \"allowed\" list means all events are allowed.
* An empty \"disallowed\" list means no events are disallowed.
* Disallowed events take precedence over allowed events if the event type is specified in both lists.", + "nickname": "filter", + "responseClass": "Application", + "parameters": [ + { + "name": "applicationName", + "description": "Application's name", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "filter", + "description": "Specify which event types to allow/disallow", + "paramType": "body", + "required": false, + "dataType": "object", + "allowMultiple": false + } + ], + "errorResponses": [ + { + "code": 400, + "reason": "Bad request." + }, + { + "code": 404, + "reason": "Application does not exist." + } + ] + } + ] + } + ], + "models": { + "Application": { + "id": "Application", + "description": "Details of a Stasis application", + "properties": { + "name": { + "type": "string", + "description": "Name of this application", + "required": true + }, + "channel_ids": { + "type": "List[string]", + "description": "Id's for channels subscribed to.", + "required": true + }, + "bridge_ids": { + "type": "List[string]", + "description": "Id's for bridges subscribed to.", + "required": true + }, + "endpoint_ids": { + "type": "List[string]", + "description": "{tech}/{resource} for endpoints subscribed to.", + "required": true + }, + "device_names": { + "type": "List[string]", + "description": "Names of the devices subscribed to.", + "required": true + }, + "events_allowed": { + "type": "List[object]", + "description": "Event types sent to the application.", + "required": true + }, + "events_disallowed": { + "type": "List[object]", + "description": "Event types not sent to the application.", + "required": true + } + } + } + } +} diff --git a/codegen/src/main/resources/codegen-data/ari_5_0_0/asterisk.json b/codegen/src/main/resources/codegen-data/ari_5_0_0/asterisk.json new file mode 100644 index 00000000..841e6cd8 --- /dev/null +++ b/codegen/src/main/resources/codegen-data/ari_5_0_0/asterisk.json @@ -0,0 +1,725 @@ +{ + "_copyright": "Copyright (C) 2012 - 2013, Digium, Inc.", + "_author": "David M. Lee, II ", + "_svn_revision": "$Revision$", + "apiVersion": "2.0.0", + "swaggerVersion": "1.1", + "basePath": "http://localhost:8088/ari", + "resourcePath": "/api-docs/asterisk.{format}", + "apis": [ + { + "path": "/asterisk/config/dynamic/{configClass}/{objectType}/{id}", + "description": "Asterisk dynamic configuration", + "operations": [ + { + "httpMethod": "GET", + "summary": "Retrieve a dynamic configuration object.", + "nickname": "getObject", + "responseClass": "List[ConfigTuple]", + "parameters": [ + { + "name": "configClass", + "description": "The configuration class containing dynamic configuration objects.", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "objectType", + "description": "The type of configuration object to retrieve.", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "id", + "description": "The unique identifier of the object to retrieve.", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "{configClass|objectType|id} not found" + } + ] + }, + { + "httpMethod": "PUT", + "summary": "Create or update a dynamic configuration object.", + "nickname": "updateObject", + "responseClass": "List[ConfigTuple]", + "parameters": [ + { + "name": "configClass", + "description": "The configuration class containing dynamic configuration objects.", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "objectType", + "description": "The type of configuration object to create or update.", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "id", + "description": "The unique identifier of the object to create or update.", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "fields", + "description": "The body object should have a value that is a list of ConfigTuples, which provide the fields to update. Ex. [ { \"attribute\": \"directmedia\", \"value\": \"false\" } ]", + "paramType": "body", + "required": false, + "dataType": "containers", + "allowMultiple": false + } + ], + "errorResponses": [ + { + "code": 400, + "reason": "Bad request body" + }, + { + "code": 403, + "reason": "Could not create or update object" + }, + { + "code": 404, + "reason": "{configClass|objectType} not found" + } + ] + }, + { + "httpMethod": "DELETE", + "summary": "Delete a dynamic configuration object.", + "nickname": "deleteObject", + "responseClass": "void", + "parameters": [ + { + "name": "configClass", + "description": "The configuration class containing dynamic configuration objects.", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "objectType", + "description": "The type of configuration object to delete.", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "id", + "description": "The unique identifier of the object to delete.", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 403, + "reason": "Could not delete object" + }, + { + "code": 404, + "reason": "{configClass|objectType|id} not found" + } + ] + } + ] + }, + { + "path": "/asterisk/info", + "description": "Asterisk system information (similar to core show settings)", + "operations": [ + { + "httpMethod": "GET", + "summary": "Gets Asterisk system information.", + "nickname": "getInfo", + "responseClass": "AsteriskInfo", + "parameters": [ + { + "name": "only", + "description": "Filter information returned", + "paramType": "query", + "required": false, + "allowMultiple": true, + "dataType": "string", + "allowableValues": { + "valueType": "LIST", + "values": [ + "build", + "system", + "config", + "status" + ] + } + } + ] + } + ] + }, + { + "path": "/asterisk/ping", + "description": "Asterisk ping", + "operations": [ + { + "httpMethod": "GET", + "summary": "Response pong message.", + "nickname": "ping", + "responseClass": "AsteriskPing" + } + ] + }, + { + "path": "/asterisk/modules", + "description": "Asterisk modules", + "operations": [ + { + "httpMethod": "GET", + "summary": "List Asterisk modules.", + "nickname": "listModules", + "responseClass": "List[Module]" + } + ] + }, + { + "path": "/asterisk/modules/{moduleName}", + "description": "Asterisk module", + "operations": [ + { + "httpMethod": "GET", + "summary": "Get Asterisk module information.", + "nickname": "getModule", + "responseClass": "Module", + "parameters": [ + { + "name": "moduleName", + "description": "Module's name", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Module could not be found in running modules." + }, + { + "code": 409, + "reason": "Module information could not be retrieved." + } + ] + }, + { + "httpMethod": "POST", + "summary": "Load an Asterisk module.", + "nickname": "loadModule", + "responseClass": "void", + "parameters": [ + { + "name": "moduleName", + "description": "Module's name", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 409, + "reason": "Module could not be loaded." + } + ] + }, + { + "httpMethod": "DELETE", + "summary": "Unload an Asterisk module.", + "nickname": "unloadModule", + "responseClass": "void", + "parameters": [ + { + "name": "moduleName", + "description": "Module's name", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Module not found in running modules." + }, + { + "code": 409, + "reason": "Module could not be unloaded." + } + ] + }, + { + "httpMethod": "PUT", + "summary": "Reload an Asterisk module.", + "nickname": "reloadModule", + "responseClass": "void", + "parameters": [ + { + "name": "moduleName", + "description": "Module's name", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Module not found in running modules." + }, + { + "code": 409, + "reason": "Module could not be reloaded." + } + ] + } + ] + }, + { + "path": "/asterisk/logging", + "description": "Asterisk log channels", + "operations": [ + { + "httpMethod": "GET", + "summary": "Gets Asterisk log channel information.", + "nickname": "listLogChannels", + "responseClass": "List[LogChannel]" + } + ] + }, + { + "path": "/asterisk/logging/{logChannelName}", + "description": "Asterisk log channel", + "operations": [ + { + "httpMethod": "POST", + "summary": "Adds a log channel.", + "nickname": "addLog", + "responseClass": "void", + "parameters": [ + { + "name": "logChannelName", + "description": "The log channel to add", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "configuration", + "description": "levels of the log channel", + "paramType": "query", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 400, + "reason": "Bad request body" + }, + { + "code": 409, + "reason": "Log channel could not be created." + } + ] + }, + { + "httpMethod": "DELETE", + "summary": "Deletes a log channel.", + "nickname": "deleteLog", + "responseClass": "void", + "parameters": [ + { + "name": "logChannelName", + "description": "Log channels name", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Log channel does not exist." + } + ] + } + ] + }, + { + "path": "/asterisk/logging/{logChannelName}/rotate", + "description": "Asterisk log channel", + "operations": [ + { + "httpMethod": "PUT", + "summary": "Rotates a log channel.", + "nickname": "rotateLog", + "responseClass": "void", + "parameters": [ + { + "name": "logChannelName", + "description": "Log channel's name", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Log channel does not exist." + } + ] + } + ] + }, + { + "path": "/asterisk/variable", + "description": "Global variables", + "operations": [ + { + "httpMethod": "GET", + "summary": "Get the value of a global variable.", + "nickname": "getGlobalVar", + "responseClass": "Variable", + "parameters": [ + { + "name": "variable", + "description": "The variable to get", + "paramType": "query", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 400, + "reason": "Missing variable parameter." + } + ] + }, + { + "httpMethod": "POST", + "summary": "Set the value of a global variable.", + "nickname": "setGlobalVar", + "responseClass": "void", + "parameters": [ + { + "name": "variable", + "description": "The variable to set", + "paramType": "query", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "value", + "description": "The value to set the variable to", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 400, + "reason": "Missing variable parameter." + } + ] + } + ] + } + ], + "models": { + "BuildInfo": { + "id": "BuildInfo", + "description": "Info about how Asterisk was built", + "properties": { + "os": { + "required": true, + "type": "string", + "description": "OS Asterisk was built on." + }, + "kernel": { + "required": true, + "type": "string", + "description": "Kernel version Asterisk was built on." + }, + "options": { + "required": true, + "type": "string", + "description": "Compile time options, or empty string if default." + }, + "machine": { + "required": true, + "type": "string", + "description": "Machine architecture (x86_64, i686, ppc, etc.)" + }, + "date": { + "required": true, + "type": "string", + "description": "Date and time when Asterisk was built." + }, + "user": { + "required": true, + "type": "string", + "description": "Username that build Asterisk" + } + } + }, + "SystemInfo": { + "id": "SystemInfo", + "description": "Info about Asterisk", + "properties": { + "version": { + "required": true, + "type": "string", + "description": "Asterisk version." + }, + "entity_id": { + "required": true, + "type": "string", + "description": "" + } + } + }, + "SetId": { + "id": "SetId", + "description": "Effective user/group id", + "properties": { + "user": { + "required": true, + "type": "string", + "description": "Effective user id." + }, + "group": { + "required": true, + "type": "string", + "description": "Effective group id." + } + } + }, + "ConfigInfo": { + "id": "ConfigInfo", + "description": "Info about Asterisk configuration", + "properties": { + "name": { + "required": true, + "type": "string", + "description": "Asterisk system name." + }, + "default_language": { + "required": true, + "type": "string", + "description": "Default language for media playback." + }, + "max_channels": { + "required": false, + "type": "int", + "description": "Maximum number of simultaneous channels." + }, + "max_open_files": { + "required": false, + "type": "int", + "description": "Maximum number of open file handles (files, sockets)." + }, + "max_load": { + "required": false, + "type": "double", + "description": "Maximum load avg on system." + }, + "setid": { + "required": true, + "type": "SetId", + "description": "Effective user/group id for running Asterisk." + } + } + }, + "StatusInfo": { + "id": "StatusInfo", + "description": "Info about Asterisk status", + "properties": { + "startup_time": { + "required": true, + "type": "Date", + "description": "Time when Asterisk was started." + }, + "last_reload_time": { + "required": true, + "type": "Date", + "description": "Time when Asterisk was last reloaded." + } + } + }, + "AsteriskInfo": { + "id": "AsteriskInfo", + "description": "Asterisk system information", + "properties": { + "build": { + "required": false, + "type": "BuildInfo", + "description": "Info about how Asterisk was built" + }, + "system": { + "required": false, + "type": "SystemInfo", + "description": "Info about the system running Asterisk" + }, + "config": { + "required": false, + "type": "ConfigInfo", + "description": "Info about Asterisk configuration" + }, + "status": { + "required": false, + "type": "StatusInfo", + "description": "Info about Asterisk status" + } + } + }, + "AsteriskPing": { + "id": "AsteriskPing", + "description": "Asterisk ping information", + "properties": { + "asterisk_id": { + "required": true, + "type": "string", + "description": "Asterisk id info" + }, + "ping": { + "required": true, + "type": "string", + "description": "Always string value is pong" + }, + "timestamp": { + "required": true, + "type": "string", + "description": "The timestamp string of request received time" + } + } + }, + "Module": { + "id": "Module", + "description": "Details of an Asterisk module", + "properties": { + "name": { + "type": "string", + "description": "The name of this module", + "required": true + }, + "description": { + "type": "string", + "description": "The description of this module", + "required": true + }, + "use_count": { + "type": "int", + "description": "The number of times this module is being used", + "required": true + }, + "status": { + "type": "string", + "description": "The running status of this module", + "required": true + }, + "support_level": { + "type": "string", + "description": "The support state of this module", + "required": true + } + } + }, + "LogChannel": { + "id": "LogChannel", + "description": "Details of an Asterisk log channel", + "properties": { + "channel": { + "type": "string", + "description": "The log channel path", + "required": true + }, + "type": { + "type": "string", + "description": "Types of logs for the log channel", + "required": true + }, + "status": { + "type": "string", + "description": "Whether or not a log type is enabled", + "required": true + }, + "configuration": { + "type": "string", + "description": "The various log levels", + "required": true + } + } + }, + "Variable": { + "id": "Variable", + "description": "The value of a channel variable", + "properties": { + "value": { + "required": true, + "type": "string", + "description": "The value of the variable requested" + } + } + }, + "ConfigTuple": { + "id": "ConfigTuple", + "description": "A key/value pair that makes up part of a configuration object.", + "properties": { + "attribute": { + "required": true, + "type": "string", + "description": "A configuration object attribute." + }, + "value": { + "required": true, + "type": "string", + "description": "The value for the attribute." + } + } + } + } +} diff --git a/codegen/src/main/resources/codegen-data/ari_5_0_0/bridges.json b/codegen/src/main/resources/codegen-data/ari_5_0_0/bridges.json new file mode 100644 index 00000000..22743c3b --- /dev/null +++ b/codegen/src/main/resources/codegen-data/ari_5_0_0/bridges.json @@ -0,0 +1,765 @@ +{ + "_copyright": "Copyright (C) 2012 - 2013, Digium, Inc.", + "_author": "David M. Lee, II ", + "_svn_revision": "$Revision$", + "apiVersion": "2.0.0", + "swaggerVersion": "1.1", + "basePath": "http://localhost:8088/ari", + "resourcePath": "/api-docs/bridges.{format}", + "requiresModules": [ + "res_stasis_recording", + "res_stasis_playback" + ], + "apis": [ + { + "path": "/bridges", + "description": "Active bridges", + "operations": [ + { + "httpMethod": "GET", + "summary": "List all active bridges in Asterisk.", + "nickname": "list", + "responseClass": "List[Bridge]" + }, + { + "httpMethod": "POST", + "summary": "Create a new bridge.", + "notes": "This bridge persists until it has been shut down, or Asterisk has been shut down.", + "nickname": "create", + "responseClass": "Bridge", + "parameters": [ + { + "name": "type", + "description": "Comma separated list of bridge type attributes (mixing, holding, dtmf_events, proxy_media, video_sfu).", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "bridgeId", + "description": "Unique ID to give to the bridge being created.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "name", + "description": "Name to give to the bridge being created.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + } + ] + } + ] + }, + { + "path": "/bridges/{bridgeId}", + "description": "Individual bridge", + "operations": [ + { + "httpMethod": "POST", + "summary": "Create a new bridge or updates an existing one.", + "notes": "This bridge persists until it has been shut down, or Asterisk has been shut down.", + "nickname": "createWithId", + "responseClass": "Bridge", + "parameters": [ + { + "name": "type", + "description": "Comma separated list of bridge type attributes (mixing, holding, dtmf_events, proxy_media, video_sfu) to set.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "bridgeId", + "description": "Unique ID to give to the bridge being created.", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "name", + "description": "Set the name of the bridge.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + } + ] + }, + { + "httpMethod": "GET", + "summary": "Get bridge details.", + "nickname": "get", + "responseClass": "Bridge", + "parameters": [ + { + "name": "bridgeId", + "description": "Bridge's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Bridge not found" + } + ] + }, + { + "httpMethod": "DELETE", + "summary": "Shut down a bridge.", + "notes": "If any channels are in this bridge, they will be removed and resume whatever they were doing beforehand.", + "nickname": "destroy", + "responseClass": "void", + "parameters": [ + { + "name": "bridgeId", + "description": "Bridge's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Bridge not found" + } + ] + } + ] + }, + { + "path": "/bridges/{bridgeId}/addChannel", + "description": "Add a channel to a bridge", + "operations": [ + { + "httpMethod": "POST", + "summary": "Add a channel to a bridge.", + "nickname": "addChannel", + "responseClass": "void", + "parameters": [ + { + "name": "bridgeId", + "description": "Bridge's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "channel", + "description": "Ids of channels to add to bridge", + "paramType": "query", + "required": true, + "allowMultiple": true, + "dataType": "string" + }, + { + "name": "role", + "description": "Channel's role in the bridge", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "absorbDTMF", + "description": "Absorb DTMF coming from this channel, preventing it to pass through to the bridge", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "boolean", + "defaultValue": false + }, + { + "name": "mute", + "description": "Mute audio from this channel, preventing it to pass through to the bridge", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "boolean", + "defaultValue": false + } + ], + "errorResponses": [ + { + "code": 400, + "reason": "Channel not found" + }, + { + "code": 404, + "reason": "Bridge not found" + }, + { + "code": 409, + "reason": "Bridge not in Stasis application; Channel currently recording" + }, + { + "code": 422, + "reason": "Channel not in Stasis application" + } + ] + } + ] + }, + { + "path": "/bridges/{bridgeId}/removeChannel", + "description": "Remove a channel from a bridge", + "operations": [ + { + "httpMethod": "POST", + "summary": "Remove a channel from a bridge.", + "nickname": "removeChannel", + "responseClass": "void", + "parameters": [ + { + "name": "bridgeId", + "description": "Bridge's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "channel", + "description": "Ids of channels to remove from bridge", + "paramType": "query", + "required": true, + "allowMultiple": true, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 400, + "reason": "Channel not found" + }, + { + "code": 404, + "reason": "Bridge not found" + }, + { + "code": 409, + "reason": "Bridge not in Stasis application" + }, + { + "code": 422, + "reason": "Channel not in this bridge" + } + ] + } + ] + }, + { + "path": "/bridges/{bridgeId}/videoSource/{channelId}", + "description": "Set a channel as the video source in a multi-party bridge", + "operations": [ + { + "httpMethod": "POST", + "summary": "Set a channel as the video source in a multi-party mixing bridge. This operation has no effect on bridges with two or fewer participants.", + "nickname": "setVideoSource", + "responseClass": "void", + "parameters": [ + { + "name": "bridgeId", + "description": "Bridge's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "channelId", + "description": "Channel's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Bridge or Channel not found" + }, + { + "code": 409, + "reason": "Channel not in Stasis application" + }, + { + "code": 422, + "reason": "Channel not in this Bridge" + } + ] + } + ] + }, + { + "path": "/bridges/{bridgeId}/videoSource", + "description": "Removes any explicit video source", + "operations": [ + { + "httpMethod": "DELETE", + "summary": "Removes any explicit video source in a multi-party mixing bridge. This operation has no effect on bridges with two or fewer participants. When no explicit video source is set, talk detection will be used to determine the active video stream.", + "nickname": "clearVideoSource", + "responseClass": "void", + "parameters": [ + { + "name": "bridgeId", + "description": "Bridge's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Bridge not found" + } + ] + } + ] + }, + { + "path": "/bridges/{bridgeId}/moh", + "description": "Play music on hold to a bridge", + "operations": [ + { + "httpMethod": "POST", + "summary": "Play music on hold to a bridge or change the MOH class that is playing.", + "nickname": "startMoh", + "responseClass": "void", + "parameters": [ + { + "name": "bridgeId", + "description": "Bridge's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "mohClass", + "description": "Channel's id", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Bridge not found" + }, + { + "code": 409, + "reason": "Bridge not in Stasis application" + } + ] + }, + { + "httpMethod": "DELETE", + "summary": "Stop playing music on hold to a bridge.", + "notes": "This will only stop music on hold being played via POST bridges/{bridgeId}/moh.", + "nickname": "stopMoh", + "responseClass": "void", + "parameters": [ + { + "name": "bridgeId", + "description": "Bridge's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Bridge not found" + }, + { + "code": 409, + "reason": "Bridge not in Stasis application" + } + ] + } + ] + }, + { + "path": "/bridges/{bridgeId}/play", + "description": "Play media to the participants of a bridge", + "operations": [ + { + "httpMethod": "POST", + "summary": "Start playback of media on a bridge.", + "notes": "The media URI may be any of a number of URI's. Currently sound:, recording:, number:, digits:, characters:, and tone: URI's are supported. This operation creates a playback resource that can be used to control the playback of media (pause, rewind, fast forward, etc.)", + "nickname": "play", + "responseClass": "Playback", + "parameters": [ + { + "name": "bridgeId", + "description": "Bridge's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "media", + "description": "Media URIs to play.", + "paramType": "query", + "required": true, + "allowMultiple": true, + "dataType": "string" + }, + { + "name": "lang", + "description": "For sounds, selects language for sound.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "offsetms", + "description": "Number of milliseconds to skip before playing. Only applies to the first URI if multiple media URIs are specified.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "int", + "defaultValue": 0, + "allowableValues": { + "valueType": "RANGE", + "min": 0 + } + + }, + { + "name": "skipms", + "description": "Number of milliseconds to skip for forward/reverse operations.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "int", + "defaultValue": 3000, + "allowableValues": { + "valueType": "RANGE", + "min": 0 + } + }, + { + "name": "playbackId", + "description": "Playback Id.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Bridge not found" + }, + { + "code": 409, + "reason": "Bridge not in a Stasis application" + } + ] + } + ] + }, + { + "path": "/bridges/{bridgeId}/play/{playbackId}", + "description": "Play media to a bridge", + "operations": [ + { + "httpMethod": "POST", + "summary": "Start playback of media on a bridge.", + "notes": "The media URI may be any of a number of URI's. Currently sound:, recording:, number:, digits:, characters:, and tone: URI's are supported. This operation creates a playback resource that can be used to control the playback of media (pause, rewind, fast forward, etc.)", + "nickname": "playWithId", + "responseClass": "Playback", + "parameters": [ + { + "name": "bridgeId", + "description": "Bridge's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "playbackId", + "description": "Playback ID.", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "media", + "description": "Media URIs to play.", + "paramType": "query", + "required": true, + "allowMultiple": true, + "dataType": "string" + }, + { + "name": "lang", + "description": "For sounds, selects language for sound.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "offsetms", + "description": "Number of milliseconds to skip before playing. Only applies to the first URI if multiple media URIs are specified.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "int", + "defaultValue": 0, + "allowableValues": { + "valueType": "RANGE", + "min": 0 + } + }, + { + "name": "skipms", + "description": "Number of milliseconds to skip for forward/reverse operations.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "int", + "defaultValue": 3000, + "allowableValues": { + "valueType": "RANGE", + "min": 0 + } + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Bridge not found" + }, + { + "code": 409, + "reason": "Bridge not in a Stasis application" + } + ] + + } + ] + }, + { + "path": "/bridges/{bridgeId}/record", + "description": "Record audio on a bridge", + "operations": [ + { + "httpMethod": "POST", + "summary": "Start a recording.", + "notes": "This records the mixed audio from all channels participating in this bridge.", + "nickname": "record", + "responseClass": "LiveRecording", + "parameters": [ + { + "name": "bridgeId", + "description": "Bridge's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "name", + "description": "Recording's filename", + "paramType": "query", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "format", + "description": "Format to encode audio in", + "paramType": "query", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "maxDurationSeconds", + "description": "Maximum duration of the recording, in seconds. 0 for no limit.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "int", + "defaultValue": 0, + "allowableValues": { + "valueType": "RANGE", + "min": 0 + } + }, + { + "name": "maxSilenceSeconds", + "description": "Maximum duration of silence, in seconds. 0 for no limit.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "int", + "defaultValue": 0, + "allowableValues": { + "valueType": "RANGE", + "min": 0 + } + }, + { + "name": "ifExists", + "description": "Action to take if a recording with the same name already exists.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string", + "defaultValue": "fail", + "allowableValues": { + "valueType": "LIST", + "values": [ + "fail", + "overwrite", + "append" + ] + } + }, + { + "name": "beep", + "description": "Play beep when recording begins", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "boolean", + "defaultValue": false + }, + { + "name": "terminateOn", + "description": "DTMF input to terminate recording.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string", + "defaultValue": "none", + "allowableValues": { + "valueType": "LIST", + "values": [ + "none", + "any", + "*", + "#" + ] + } + } + ], + "errorResponses": [ + { + "code": 400, + "reason": "Invalid parameters" + }, + { + "code": 404, + "reason": "Bridge not found" + }, + { + "code": 409, + "reason": "Bridge is not in a Stasis application; A recording with the same name already exists on the system and can not be overwritten because it is in progress or ifExists=fail" + }, + { + "code": 422, + "reason": "The format specified is unknown on this system" + } + ] + } + ] + } + ], + "models": { + "Bridge": { + "id": "Bridge", + "description": "The merging of media from one or more channels.\n\nEveryone on the bridge receives the same audio.", + "properties": { + "id": { + "type": "string", + "description": "Unique identifier for this bridge", + "required": true + }, + "technology": { + "type": "string", + "description": "Name of the current bridging technology", + "required": true + }, + "bridge_type": { + "type": "string", + "description": "Type of bridge technology", + "required": true, + "allowableValues": { + "valueType": "LIST", + "values": [ + "mixing", + "holding" + ] + } + }, + "bridge_class": { + "type": "string", + "description": "Bridging class", + "required": true + }, + "creator": { + "type": "string", + "description": "Entity that created the bridge", + "required": true + }, + "name": { + "type": "string", + "description": "Name the creator gave the bridge", + "required": true + }, + "channels": { + "type": "List[string]", + "description": "Ids of channels participating in this bridge", + "required": true + }, + "video_mode": { + "type": "string", + "description": "The video mode the bridge is using. One of 'none', 'talker', or 'single'.", + "required": false + }, + "video_source_id": { + "type": "string", + "description": "The ID of the channel that is the source of video in this bridge, if one exists.", + "required": false + }, + "creationtime": { + "required": true, + "type": "Date", + "description": "Timestamp when bridge was created" + } + } + } + } +} diff --git a/codegen/src/main/resources/codegen-data/ari_5_0_0/channels.json b/codegen/src/main/resources/codegen-data/ari_5_0_0/channels.json new file mode 100644 index 00000000..77412695 --- /dev/null +++ b/codegen/src/main/resources/codegen-data/ari_5_0_0/channels.json @@ -0,0 +1,2046 @@ +{ + "_copyright": "Copyright (C) 2012 - 2013, Digium, Inc.", + "_author": "David M. Lee, II ", + "_svn_revision": "$Revision$", + "apiVersion": "2.0.0", + "swaggerVersion": "1.1", + "basePath": "http://localhost:8088/ari", + "resourcePath": "/api-docs/channels.{format}", + "requiresModules": [ + "res_stasis_answer", + "res_stasis_playback", + "res_stasis_recording", + "res_stasis_snoop" + ], + "apis": [ + { + "path": "/channels", + "description": "Active channels", + "operations": [ + { + "httpMethod": "GET", + "summary": "List all active channels in Asterisk.", + "nickname": "list", + "responseClass": "List[Channel]" + }, + { + "httpMethod": "POST", + "summary": "Create a new channel (originate).", + "notes": "The new channel is created immediately and a snapshot of it returned. If a Stasis application is provided it will be automatically subscribed to the originated channel for further events and updates.", + "nickname": "originate", + "responseClass": "Channel", + "parameters": [ + { + "name": "endpoint", + "description": "Endpoint to call.", + "paramType": "query", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "extension", + "description": "The extension to dial after the endpoint answers. Mutually exclusive with 'app'.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "context", + "description": "The context to dial after the endpoint answers. If omitted, uses 'default'. Mutually exclusive with 'app'.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "priority", + "description": "The priority to dial after the endpoint answers. If omitted, uses 1. Mutually exclusive with 'app'.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "long" + }, + { + "name": "label", + "description": "The label to dial after the endpoint answers. Will supersede 'priority' if provided. Mutually exclusive with 'app'.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "app", + "description": "The application that is subscribed to the originated channel. When the channel is answered, it will be passed to this Stasis application. Mutually exclusive with 'context', 'extension', 'priority', and 'label'.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "appArgs", + "description": "The application arguments to pass to the Stasis application provided by 'app'. Mutually exclusive with 'context', 'extension', 'priority', and 'label'.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "callerId", + "description": "CallerID to use when dialing the endpoint or extension.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "timeout", + "description": "Timeout (in seconds) before giving up dialing, or -1 for no timeout.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "int", + "defaultValue": 30 + }, + { + "name": "variables", + "description": "The \"variables\" key in the body object holds variable key/value pairs to set on the channel on creation. Other keys in the body object are interpreted as query parameters. Ex. { \"endpoint\": \"SIP/Alice\", \"variables\": { \"CALLERID(name)\": \"Alice\" } }", + "paramType": "body", + "required": false, + "dataType": "containers", + "allowMultiple": false + }, + { + "name": "channelId", + "description": "The unique id to assign the channel on creation.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "otherChannelId", + "description": "The unique id to assign the second channel when using local channels.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "originator", + "description": "The unique id of the channel which is originating this one.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "formats", + "description": "The format name capability list to use if originator is not specified. Ex. \"ulaw,slin16\". Format names can be found with \"core show codecs\".", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 400, + "reason": "Invalid parameters for originating a channel." + }, + { + "code": 409, + "reason": "Channel with given unique ID already exists." + } + ] + } + ] + }, + { + "path": "/channels/create", + "description": "Create a channel and place it in a Stasis app, but do not dial the channel yet.", + "operations": [ + { + "httpMethod": "POST", + "summary": "Create channel.", + "nickname": "create", + "responseClass": "Channel", + "parameters": [ + { + "name": "endpoint", + "description": "Endpoint for channel communication", + "paramType": "query", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "app", + "description": "Stasis Application to place channel into", + "paramType": "query", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "appArgs", + "description": "The application arguments to pass to the Stasis application provided by 'app'. Mutually exclusive with 'context', 'extension', 'priority', and 'label'.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "channelId", + "description": "The unique id to assign the channel on creation.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "otherChannelId", + "description": "The unique id to assign the second channel when using local channels.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "originator", + "description": "Unique ID of the calling channel", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "formats", + "description": "The format name capability list to use if originator is not specified. Ex. \"ulaw,slin16\". Format names can be found with \"core show codecs\".", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 409, + "reason": "Channel with given unique ID already exists." + } + ] + } + ] + }, + { + "path": "/channels/{channelId}", + "description": "Active channel", + "operations": [ + { + "httpMethod": "GET", + "summary": "Channel details.", + "nickname": "get", + "responseClass": "Channel", + "parameters": [ + { + "name": "channelId", + "description": "Channel's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Channel not found" + } + ] + }, + { + "httpMethod": "POST", + "summary": "Create a new channel (originate with id).", + "notes": "The new channel is created immediately and a snapshot of it returned. If a Stasis application is provided it will be automatically subscribed to the originated channel for further events and updates.", + "nickname": "originateWithId", + "responseClass": "Channel", + "parameters": [ + { + "name": "channelId", + "description": "The unique id to assign the channel on creation.", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "endpoint", + "description": "Endpoint to call.", + "paramType": "query", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "extension", + "description": "The extension to dial after the endpoint answers. Mutually exclusive with 'app'.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "context", + "description": "The context to dial after the endpoint answers. If omitted, uses 'default'. Mutually exclusive with 'app'.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "priority", + "description": "The priority to dial after the endpoint answers. If omitted, uses 1. Mutually exclusive with 'app'.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "long" + }, + { + "name": "label", + "description": "The label to dial after the endpoint answers. Will supersede 'priority' if provided. Mutually exclusive with 'app'.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "app", + "description": "The application that is subscribed to the originated channel. When the channel is answered, it will be passed to this Stasis application. Mutually exclusive with 'context', 'extension', 'priority', and 'label'.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "appArgs", + "description": "The application arguments to pass to the Stasis application provided by 'app'. Mutually exclusive with 'context', 'extension', 'priority', and 'label'.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "callerId", + "description": "CallerID to use when dialing the endpoint or extension.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "timeout", + "description": "Timeout (in seconds) before giving up dialing, or -1 for no timeout.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "int", + "defaultValue": 30 + }, + { + "name": "variables", + "description": "The \"variables\" key in the body object holds variable key/value pairs to set on the channel on creation. Other keys in the body object are interpreted as query parameters. Ex. { \"endpoint\": \"SIP/Alice\", \"variables\": { \"CALLERID(name)\": \"Alice\" } }", + "paramType": "body", + "required": false, + "dataType": "containers", + "allowMultiple": false + }, + { + "name": "otherChannelId", + "description": "The unique id to assign the second channel when using local channels.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "originator", + "description": "The unique id of the channel which is originating this one.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "formats", + "description": "The format name capability list to use if originator is not specified. Ex. \"ulaw,slin16\". Format names can be found with \"core show codecs\".", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 400, + "reason": "Invalid parameters for originating a channel." + }, + { + "code": 409, + "reason": "Channel with given unique ID already exists." + } + ] + + }, + { + "httpMethod": "DELETE", + "summary": "Delete (i.e. hangup) a channel.", + "nickname": "hangup", + "responseClass": "void", + "parameters": [ + { + "name": "channelId", + "description": "Channel's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "reason_code", + "description": "The reason code for hanging up the channel for detail use. Mutually exclusive with 'reason'. See detail hangup codes at here. https://wiki.asterisk.org/wiki/display/AST/Hangup+Cause+Mappings", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "reason", + "description": "Reason for hanging up the channel for simple use. Mutually exclusive with 'reason_code'.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string", + "allowableValues": { + "valueType": "LIST", + "values": [ + "normal", + "busy", + "congestion", + "no_answer", + "timeout", + "rejected", + "unallocated", + "normal_unspecified", + "number_incomplete", + "codec_mismatch", + "interworking", + "failure", + "answered_elsewhere" + ] + } + } + ], + "errorResponses": [ + { + "code": 400, + "reason": "Invalid reason for hangup provided" + }, + { + "code": 404, + "reason": "Channel not found" + } + ] + } + ] + }, + { + "path": "/channels/{channelId}/continue", + "description": "Exit application; continue execution in the dialplan", + "operations": [ + { + "httpMethod": "POST", + "summary": "Exit application; continue execution in the dialplan.", + "nickname": "continueInDialplan", + "responseClass": "void", + "parameters": [ + { + "name": "channelId", + "description": "Channel's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "context", + "description": "The context to continue to.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "extension", + "description": "The extension to continue to.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "priority", + "description": "The priority to continue to.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "int" + }, + { + "name": "label", + "description": "The label to continue to - will supersede 'priority' if both are provided.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Channel not found" + }, + { + "code": 409, + "reason": "Channel not in a Stasis application" + }, + { + "code": 412, + "reason": "Channel in invalid state" + } + ] + } + ] + }, + { + "path": "/channels/{channelId}/move", + "description": "Move the channel from one Stasis application to another.", + "operations": [ + { + "httpMethod": "POST", + "summary": "Move the channel from one Stasis application to another.", + "nickname": "move", + "responseClass": "void", + "parameters": [ + { + "name": "channelId", + "description": "Channel's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "app", + "description": "The channel will be passed to this Stasis application.", + "paramType": "query", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "appArgs", + "description": "The application arguments to pass to the Stasis application provided by 'app'.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": "404", + "reason": "Channel not found" + }, + { + "code": "409", + "reason": "Channel not in a Stasis application" + } + ] + } + ] + }, + { + "path": "/channels/{channelId}/redirect", + "description": "Inform the channel that it should redirect itself to a different location. Note that this will almost certainly cause the channel to exit the application.", + "operations": [ + { + "httpMethod": "POST", + "summary": "Redirect the channel to a different location.", + "nickname": "redirect", + "responseClass": "void", + "parameters": [ + { + "name": "channelId", + "description": "Channel's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "endpoint", + "description": "The endpoint to redirect the channel to", + "paramType": "query", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 400, + "reason": "Endpoint parameter not provided" + }, + { + "code": 404, + "reason": "Channel or endpoint not found" + }, + { + "code": 409, + "reason": "Channel not in a Stasis application" + }, + { + "code": 422, + "reason": "Endpoint is not the same type as the channel" + }, + { + "code": 412, + "reason": "Channel in invalid state" + } + ] + } + ] + }, + { + "path": "/channels/{channelId}/answer", + "description": "Answer a channel", + "operations": [ + { + "httpMethod": "POST", + "summary": "Answer a channel.", + "nickname": "answer", + "responseClass": "void", + "parameters": [ + { + "name": "channelId", + "description": "Channel's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Channel not found" + }, + { + "code": 409, + "reason": "Channel not in a Stasis application" + }, + { + "code": 412, + "reason": "Channel in invalid state" + } + ] + } + ] + }, + { + "path": "/channels/{channelId}/ring", + "description": "Send a ringing indication to a channel", + "operations": [ + { + "httpMethod": "POST", + "summary": "Indicate ringing to a channel.", + "nickname": "ring", + "responseClass": "void", + "parameters": [ + { + "name": "channelId", + "description": "Channel's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Channel not found" + }, + { + "code": 409, + "reason": "Channel not in a Stasis application" + }, + { + "code": 412, + "reason": "Channel in invalid state" + } + ] + }, + { + "httpMethod": "DELETE", + "summary": "Stop ringing indication on a channel if locally generated.", + "nickname": "ringStop", + "responseClass": "void", + "parameters": [ + { + "name": "channelId", + "description": "Channel's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Channel not found" + }, + { + "code": 409, + "reason": "Channel not in a Stasis application" + }, + { + "code": 412, + "reason": "Channel in invalid state" + } + ] + } + ] + }, + { + "path": "/channels/{channelId}/dtmf", + "description": "Send DTMF to a channel", + "operations": [ + { + "httpMethod": "POST", + "summary": "Send provided DTMF to a given channel.", + "nickname": "sendDTMF", + "responseClass": "void", + "parameters": [ + { + "name": "channelId", + "description": "Channel's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "dtmf", + "description": "DTMF To send.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "before", + "description": "Amount of time to wait before DTMF digits (specified in milliseconds) start.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "int", + "defaultValue": 0 + }, + { + "name": "between", + "description": "Amount of time in between DTMF digits (specified in milliseconds).", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "int", + "defaultValue": 100 + }, + { + "name": "duration", + "description": "Length of each DTMF digit (specified in milliseconds).", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "int", + "defaultValue": 100 + }, + { + "name": "after", + "description": "Amount of time to wait after DTMF digits (specified in milliseconds) end.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "int", + "defaultValue": 0 + } + ], + "errorResponses": [ + { + "code": 400, + "reason": "DTMF is required" + }, + { + "code": 404, + "reason": "Channel not found" + }, + { + "code": 409, + "reason": "Channel not in a Stasis application" + }, + { + "code": 412, + "reason": "Channel in invalid state" + } + ] + } + ] + }, + { + "path": "/channels/{channelId}/mute", + "description": "Mute a channel", + "operations": [ + { + "httpMethod": "POST", + "summary": "Mute a channel.", + "nickname": "mute", + "responseClass": "void", + "parameters": [ + { + "name": "channelId", + "description": "Channel's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "direction", + "description": "Direction in which to mute audio", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string", + "defaultValue": "both", + "allowableValues": { + "valueType": "LIST", + "values": [ + "both", + "in", + "out" + ] + } + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Channel not found" + }, + { + "code": 409, + "reason": "Channel not in a Stasis application" + }, + { + "code": 412, + "reason": "Channel in invalid state" + } + ] + }, + { + "httpMethod": "DELETE", + "summary": "Unmute a channel.", + "nickname": "unmute", + "responseClass": "void", + "parameters": [ + { + "name": "channelId", + "description": "Channel's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "direction", + "description": "Direction in which to unmute audio", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string", + "defaultValue": "both", + "allowableValues": { + "valueType": "LIST", + "values": [ + "both", + "in", + "out" + ] + } + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Channel not found" + }, + { + "code": 409, + "reason": "Channel not in a Stasis application" + }, + { + "code": 412, + "reason": "Channel in invalid state" + } + ] + } + ] + }, + { + "path": "/channels/{channelId}/hold", + "description": "Put a channel on hold", + "operations": [ + { + "httpMethod": "POST", + "summary": "Hold a channel.", + "nickname": "hold", + "responseClass": "void", + "parameters": [ + { + "name": "channelId", + "description": "Channel's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Channel not found" + }, + { + "code": 409, + "reason": "Channel not in a Stasis application" + }, + { + "code": 412, + "reason": "Channel in invalid state" + } + ] + }, + { + "httpMethod": "DELETE", + "summary": "Remove a channel from hold.", + "nickname": "unhold", + "responseClass": "void", + "parameters": [ + { + "name": "channelId", + "description": "Channel's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Channel not found" + }, + { + "code": 409, + "reason": "Channel not in a Stasis application" + }, + { + "code": 412, + "reason": "Channel in invalid state" + } + ] + } + ] + }, + { + "path": "/channels/{channelId}/moh", + "description": "Play music on hold to a channel", + "operations": [ + { + "httpMethod": "POST", + "summary": "Play music on hold to a channel.", + "notes": "Using media operations such as /play on a channel playing MOH in this manner will suspend MOH without resuming automatically. If continuing music on hold is desired, the stasis application must reinitiate music on hold.", + "nickname": "startMoh", + "responseClass": "void", + "parameters": [ + { + "name": "channelId", + "description": "Channel's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "mohClass", + "description": "Music on hold class to use", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Channel not found" + }, + { + "code": 409, + "reason": "Channel not in a Stasis application" + }, + { + "code": 412, + "reason": "Channel in invalid state" + } + ] + }, + { + "httpMethod": "DELETE", + "summary": "Stop playing music on hold to a channel.", + "nickname": "stopMoh", + "responseClass": "void", + "parameters": [ + { + "name": "channelId", + "description": "Channel's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Channel not found" + }, + { + "code": 409, + "reason": "Channel not in a Stasis application" + }, + { + "code": 412, + "reason": "Channel in invalid state" + } + ] + } + ] + }, + { + "path": "/channels/{channelId}/silence", + "description": "Play silence to a channel", + "operations": [ + { + "httpMethod": "POST", + "summary": "Play silence to a channel.", + "notes": "Using media operations such as /play on a channel playing silence in this manner will suspend silence without resuming automatically.", + "nickname": "startSilence", + "responseClass": "void", + "parameters": [ + { + "name": "channelId", + "description": "Channel's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Channel not found" + }, + { + "code": 409, + "reason": "Channel not in a Stasis application" + }, + { + "code": 412, + "reason": "Channel in invalid state" + } + ] + }, + { + "httpMethod": "DELETE", + "summary": "Stop playing silence to a channel.", + "nickname": "stopSilence", + "responseClass": "void", + "parameters": [ + { + "name": "channelId", + "description": "Channel's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Channel not found" + }, + { + "code": 409, + "reason": "Channel not in a Stasis application" + }, + { + "code": 412, + "reason": "Channel in invalid state" + } + ] + } + ] + }, + { + "path": "/channels/{channelId}/play", + "description": "Play media to a channel", + "operations": [ + { + "httpMethod": "POST", + "summary": "Start playback of media.", + "notes": "The media URI may be any of a number of URI's. Currently sound:, recording:, number:, digits:, characters:, and tone: URI's are supported. This operation creates a playback resource that can be used to control the playback of media (pause, rewind, fast forward, etc.)", + "nickname": "play", + "responseClass": "Playback", + "parameters": [ + { + "name": "channelId", + "description": "Channel's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "media", + "description": "Media URIs to play.", + "paramType": "query", + "required": true, + "allowMultiple": true, + "dataType": "string" + }, + { + "name": "lang", + "description": "For sounds, selects language for sound.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "offsetms", + "description": "Number of milliseconds to skip before playing. Only applies to the first URI if multiple media URIs are specified.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "int" + }, + { + "name": "skipms", + "description": "Number of milliseconds to skip for forward/reverse operations.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "int", + "defaultValue": 3000 + }, + { + "name": "playbackId", + "description": "Playback ID.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Channel not found" + }, + { + "code": 409, + "reason": "Channel not in a Stasis application" + }, + { + "code": 412, + "reason": "Channel in invalid state" + } + ] + } + ] + }, + { + "path": "/channels/{channelId}/play/{playbackId}", + "description": "Play media to a channel", + "operations": [ + { + "httpMethod": "POST", + "summary": "Start playback of media and specify the playbackId.", + "notes": "The media URI may be any of a number of URI's. Currently sound:, recording:, number:, digits:, characters:, and tone: URI's are supported. This operation creates a playback resource that can be used to control the playback of media (pause, rewind, fast forward, etc.)", + "nickname": "playWithId", + "responseClass": "Playback", + "parameters": [ + { + "name": "channelId", + "description": "Channel's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "playbackId", + "description": "Playback ID.", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "media", + "description": "Media URIs to play.", + "paramType": "query", + "required": true, + "allowMultiple": true, + "dataType": "string" + }, + { + "name": "lang", + "description": "For sounds, selects language for sound.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "offsetms", + "description": "Number of milliseconds to skip before playing. Only applies to the first URI if multiple media URIs are specified.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "int" + }, + { + "name": "skipms", + "description": "Number of milliseconds to skip for forward/reverse operations.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "int", + "defaultValue": 3000 + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Channel not found" + }, + { + "code": 409, + "reason": "Channel not in a Stasis application" + }, + { + "code": 412, + "reason": "Channel in invalid state" + } + ] + } + ] + }, + { + "path": "/channels/{channelId}/record", + "description": "Record audio from a channel", + "operations": [ + { + "httpMethod": "POST", + "summary": "Start a recording.", + "notes": "Record audio from a channel. Note that this will not capture audio sent to the channel. The bridge itself has a record feature if that's what you want.", + "nickname": "record", + "responseClass": "LiveRecording", + "parameters": [ + { + "name": "channelId", + "description": "Channel's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "name", + "description": "Recording's filename", + "paramType": "query", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "format", + "description": "Format to encode audio in", + "paramType": "query", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "maxDurationSeconds", + "description": "Maximum duration of the recording, in seconds. 0 for no limit", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "int", + "defaultValue": 0, + "allowableValues": { + "valueType": "RANGE", + "min": 0 + } + }, + { + "name": "maxSilenceSeconds", + "description": "Maximum duration of silence, in seconds. 0 for no limit", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "int", + "defaultValue": 0, + "allowableValues": { + "valueType": "RANGE", + "min": 0 + } + }, + { + "name": "ifExists", + "description": "Action to take if a recording with the same name already exists.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string", + "defaultValue": "fail", + "allowableValues": { + "valueType": "LIST", + "values": [ + "fail", + "overwrite", + "append" + ] + } + }, + { + "name": "beep", + "description": "Play beep when recording begins", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "boolean", + "defaultValue": false + }, + { + "name": "terminateOn", + "description": "DTMF input to terminate recording", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string", + "defaultValue": "none", + "allowableValues": { + "valueType": "LIST", + "values": [ + "none", + "any", + "*", + "#" + ] + } + } + ], + "errorResponses": [ + { + "code": 400, + "reason": "Invalid parameters" + }, + { + "code": 404, + "reason": "Channel not found" + }, + { + "code": 409, + "reason": "Channel is not in a Stasis application; the channel is currently bridged with other hcannels; A recording with the same name already exists on the system and can not be overwritten because it is in progress or ifExists=fail" + }, + { + "code": 422, + "reason": "The format specified is unknown on this system" + } + ] + } + ] + }, + { + "path": "/channels/{channelId}/variable", + "description": "Variables on a channel", + "operations": [ + { + "httpMethod": "GET", + "summary": "Get the value of a channel variable or function.", + "nickname": "getChannelVar", + "responseClass": "Variable", + "parameters": [ + { + "name": "channelId", + "description": "Channel's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "variable", + "description": "The channel variable or function to get", + "paramType": "query", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 400, + "reason": "Missing variable parameter." + }, + { + "code": 404, + "reason": "Channel or variable not found" + }, + { + "code": 409, + "reason": "Channel not in a Stasis application" + } + ] + }, + { + "httpMethod": "POST", + "summary": "Set the value of a channel variable or function.", + "nickname": "setChannelVar", + "responseClass": "void", + "parameters": [ + { + "name": "channelId", + "description": "Channel's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "variable", + "description": "The channel variable or function to set", + "paramType": "query", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "value", + "description": "The value to set the variable to", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 400, + "reason": "Missing variable parameter." + }, + { + "code": 404, + "reason": "Channel not found" + }, + { + "code": 409, + "reason": "Channel not in a Stasis application" + } + ] + } + ] + }, + { + "path": "/channels/{channelId}/snoop", + "description": "Snoop (spy/whisper) on a channel", + "operations": [ + { + "httpMethod": "POST", + "summary": "Start snooping.", + "notes": "Snoop (spy/whisper) on a specific channel.", + "nickname": "snoopChannel", + "responseClass": "Channel", + "parameters": [ + { + "name": "channelId", + "description": "Channel's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "spy", + "description": "Direction of audio to spy on", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string", + "defaultValue": "none", + "allowableValues": { + "valueType": "LIST", + "values": [ + "none", + "both", + "out", + "in" + ] + } + }, + { + "name": "whisper", + "description": "Direction of audio to whisper into", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string", + "defaultValue": "none", + "allowableValues": { + "valueType": "LIST", + "values": [ + "none", + "both", + "out", + "in" + ] + } + }, + { + "name": "app", + "description": "Application the snooping channel is placed into", + "paramType": "query", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "appArgs", + "description": "The application arguments to pass to the Stasis application", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "snoopId", + "description": "Unique ID to assign to snooping channel", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 400, + "reason": "Invalid parameters" + }, + { + "code": 404, + "reason": "Channel not found" + } + ] + } + ] + }, + { + "path": "/channels/{channelId}/snoop/{snoopId}", + "description": "Snoop (spy/whisper) on a channel", + "operations": [ + { + "httpMethod": "POST", + "summary": "Start snooping.", + "notes": "Snoop (spy/whisper) on a specific channel.", + "nickname": "snoopChannelWithId", + "responseClass": "Channel", + "parameters": [ + { + "name": "channelId", + "description": "Channel's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "snoopId", + "description": "Unique ID to assign to snooping channel", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "spy", + "description": "Direction of audio to spy on", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string", + "defaultValue": "none", + "allowableValues": { + "valueType": "LIST", + "values": [ + "none", + "both", + "out", + "in" + ] + } + }, + { + "name": "whisper", + "description": "Direction of audio to whisper into", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string", + "defaultValue": "none", + "allowableValues": { + "valueType": "LIST", + "values": [ + "none", + "both", + "out", + "in" + ] + } + }, + { + "name": "app", + "description": "Application the snooping channel is placed into", + "paramType": "query", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "appArgs", + "description": "The application arguments to pass to the Stasis application", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 400, + "reason": "Invalid parameters" + }, + { + "code": 404, + "reason": "Channel not found" + } + ] + } + ] + }, + { + "path": "/channels/{channelId}/dial", + "description": "Dial a channel", + "operations": [ + { + "httpMethod": "POST", + "summary": "Dial a created channel.", + "nickname": "dial", + "responseClass": "void", + "parameters": [ + { + "name": "channelId", + "description": "Channel's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "caller", + "description": "Channel ID of caller", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "timeout", + "description": "Dial timeout", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "int", + "defaultValue": 0, + "allowableValues": { + "valueType": "RANGE", + "min": 0 + } + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Channel cannot be found." + }, + { + "code": 409, + "reason": "Channel cannot be dialed." + } + ] + } + ] + }, + { + "path": "/channels/{channelId}/rtp_statistics", + "description": "Get RTP statistics information for RTP on a channel", + "operations": [ + { + "httpMethod": "GET", + "summary": "RTP stats on a channel.", + "nickname": "rtpstatistics", + "responseClass": "RTPstat", + "parameters": [ + { + "name": "channelId", + "description": "Channel's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Channel cannot be found." + } + ] + } + ] + } + ], + "models": { + "Dialed": { + "id": "Dialed", + "description": "Dialed channel information.", + "properties": {} + }, + "DialplanCEP": { + "id": "DialplanCEP", + "description": "Dialplan location (context/extension/priority)", + "properties": { + "context": { + "required": true, + "type": "string", + "description": "Context in the dialplan" + }, + "exten": { + "required": true, + "type": "string", + "description": "Extension in the dialplan" + }, + "priority": { + "required": true, + "type": "long", + "description": "Priority in the dialplan" + }, + "app_name": { + "required": true, + "type": "string", + "description": "Name of current dialplan application" + }, + "app_data": { + "required": true, + "type": "string", + "description": "Parameter of current dialplan application" + } + } + }, + "CallerID": { + "id": "CallerID", + "description": "Caller identification", + "properties": { + "name": { + "required": true, + "type": "string" + }, + "number": { + "required": true, + "type": "string" + } + } + }, + "RTPstat": { + "id": "RTPstat", + "description": "A statistics of a RTP.", + "properties": { + "txcount": { + "required": true, + "type": "int", + "description": "Number of packets transmitted." + }, + "rxcount": { + "required": true, + "type": "int", + "description": "Number of packets received." + }, + "txjitter": { + "required": false, + "type": "double", + "description": "Jitter on transmitted packets." + }, + "rxjitter": { + "required": false, + "type": "double", + "description": "Jitter on received packets." + }, + "remote_maxjitter": { + "required": false, + "type": "double", + "description": "Maximum jitter on remote side." + }, + "remote_minjitter": { + "required": false, + "type": "double", + "description": "Minimum jitter on remote side." + }, + "remote_normdevjitter": { + "required": false, + "type": "double", + "description": "Average jitter on remote side." + }, + "remote_stdevjitter": { + "required": false, + "type": "double", + "description": "Standard deviation jitter on remote side." + }, + "local_maxjitter": { + "required": false, + "type": "double", + "description": "Maximum jitter on local side." + }, + "local_minjitter": { + "required": false, + "type": "double", + "description": "Minimum jitter on local side." + }, + "local_normdevjitter": { + "required": false, + "type": "double", + "description": "Average jitter on local side." + }, + "local_stdevjitter": { + "required": false, + "type": "double", + "description": "Standard deviation jitter on local side." + }, + "txploss": { + "required": true, + "type": "int", + "description": "Number of transmitted packets lost." + }, + "rxploss": { + "required": true, + "type": "int", + "description": "Number of received packets lost." + }, + "remote_maxrxploss": { + "required": false, + "type": "double", + "description": "Maximum number of packets lost on remote side." + }, + "remote_minrxploss": { + "required": false, + "type": "double", + "description": "Minimum number of packets lost on remote side." + }, + "remote_normdevrxploss": { + "required": false, + "type": "double", + "description": "Average number of packets lost on remote side." + }, + "remote_stdevrxploss": { + "required": false, + "type": "double", + "description": "Standard deviation packets lost on remote side." + }, + "local_maxrxploss": { + "required": false, + "type": "double", + "description": "Maximum number of packets lost on local side." + }, + "local_minrxploss": { + "required": false, + "type": "double", + "description": "Minimum number of packets lost on local side." + }, + "local_normdevrxploss": { + "required": false, + "type": "double", + "description": "Average number of packets lost on local side." + }, + "local_stdevrxploss": { + "required": false, + "type": "double", + "description": "Standard deviation packets lost on local side." + }, + "rtt": { + "required": false, + "type": "double", + "description": "Total round trip time." + }, + "maxrtt": { + "required": false, + "type": "double", + "description": "Maximum round trip time." + }, + "minrtt": { + "required": false, + "type": "double", + "description": "Minimum round trip time." + }, + "normdevrtt": { + "required": false, + "type": "double", + "description": "Average round trip time." + }, + "stdevrtt": { + "required": false, + "type": "double", + "description": "Standard deviation round trip time." + }, + "local_ssrc": { + "required": true, + "type": "int", + "description": "Our SSRC." + }, + "remote_ssrc": { + "required": true, + "type": "int", + "description": "Their SSRC." + }, + "txoctetcount": { + "required": true, + "type": "int", + "description": "Number of octets transmitted." + }, + "rxoctetcount": { + "required": true, + "type": "int", + "description": "Number of octets received." + }, + "channel_uniqueid": { + "required": true, + "type": "string", + "description": "The Asterisk channel's unique ID that owns this instance." + } + } + }, + "Channel": { + "id": "Channel", + "description": "A specific communication connection between Asterisk and an Endpoint.", + "properties": { + "id": { + "required": true, + "type": "string", + "description": "Unique identifier of the channel.\n\nThis is the same as the Uniqueid field in AMI." + }, + "name": { + "required": true, + "type": "string", + "description": "Name of the channel (i.e. SIP/foo-0000a7e3)" + }, + "state": { + "required": true, + "type": "string", + "allowableValues": { + "valueType": "LIST", + "values": [ + "Down", + "Rsrved", + "OffHook", + "Dialing", + "Ring", + "Ringing", + "Up", + "Busy", + "Dialing Offhook", + "Pre-ring", + "Unknown" + ] + } + }, + "caller": { + "required": true, + "type": "CallerID" + }, + "connected": { + "required": true, + "type": "CallerID" + }, + "accountcode": { + "required": true, + "type": "string" + }, + "dialplan": { + "required": true, + "type": "DialplanCEP", + "description": "Current location in the dialplan" + }, + "creationtime": { + "required": true, + "type": "Date", + "description": "Timestamp when channel was created" + }, + "language": { + "required": true, + "type": "string", + "description": "The default spoken language" + }, + "channelvars": { + "required": false, + "type": "object", + "description": "Channel variables" + } + } + } + } +} diff --git a/codegen/src/main/resources/codegen-data/ari_5_0_0/deviceStates.json b/codegen/src/main/resources/codegen-data/ari_5_0_0/deviceStates.json new file mode 100644 index 00000000..bd389355 --- /dev/null +++ b/codegen/src/main/resources/codegen-data/ari_5_0_0/deviceStates.json @@ -0,0 +1,154 @@ +{ + "_copyright": "Copyright (C) 2012 - 2013, Digium, Inc.", + "_author": "Kevin Harwell ", + "_svn_revision": "$Revision$", + "apiVersion": "2.0.0", + "swaggerVersion": "1.1", + "basePath": "http://localhost:8088/ari", + "resourcePath": "/api-docs/deviceStates.{format}", + "requiresModules": [ + "res_stasis_device_state" + ], + "apis": [ + { + "path": "/deviceStates", + "description": "Device states", + "operations": [ + { + "httpMethod": "GET", + "summary": "List all ARI controlled device states.", + "nickname": "list", + "responseClass": "List[DeviceState]" + } + ] + }, + { + "path": "/deviceStates/{deviceName}", + "description": "Device state", + "operations": [ + { + "httpMethod": "GET", + "summary": "Retrieve the current state of a device.", + "nickname": "get", + "responseClass": "DeviceState", + "parameters": [ + { + "name": "deviceName", + "description": "Name of the device", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ] + }, + { + "httpMethod": "PUT", + "summary": "Change the state of a device controlled by ARI. (Note - implicitly creates the device state).", + "nickname": "update", + "responseClass": "void", + "parameters": [ + { + "name": "deviceName", + "description": "Name of the device", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "deviceState", + "description": "Device state value", + "paramType": "query", + "required": true, + "allowMultiple": false, + "dataType": "string", + "allowableValues": { + "valueType": "LIST", + "values": [ + "NOT_INUSE", + "INUSE", + "BUSY", + "INVALID", + "UNAVAILABLE", + "RINGING", + "RINGINUSE", + "ONHOLD" + ] + } + + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Device name is missing" + }, + { + "code": 409, + "reason": "Uncontrolled device specified" + } + ] + }, + { + "httpMethod": "DELETE", + "summary": "Destroy a device-state controlled by ARI.", + "nickname": "delete", + "responseClass": "void", + "parameters": [ + { + "name": "deviceName", + "description": "Name of the device", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Device name is missing" + }, + { + "code": 409, + "reason": "Uncontrolled device specified" + } + ] + } + ] + } + ], + "models": { + "DeviceState": { + "id": "DeviceState", + "description": "Represents the state of a device.", + "properties": { + "name": { + "type": "string", + "description": "Name of the device.", + "required": true + }, + "state": { + "type": "string", + "description": "Device's state", + "required": true, + "allowableValues": { + "valueType": "LIST", + "values": [ + "UNKNOWN", + "NOT_INUSE", + "INUSE", + "BUSY", + "INVALID", + "UNAVAILABLE", + "RINGING", + "RINGINUSE", + "ONHOLD" + ] + } + } + } + } + } +} diff --git a/codegen/src/main/resources/codegen-data/ari_5_0_0/endpoints.json b/codegen/src/main/resources/codegen-data/ari_5_0_0/endpoints.json new file mode 100644 index 00000000..264c0eb2 --- /dev/null +++ b/codegen/src/main/resources/codegen-data/ari_5_0_0/endpoints.json @@ -0,0 +1,279 @@ +{ + "_copyright": "Copyright (C) 2012 - 2013, Digium, Inc.", + "_author": "David M. Lee, II ", + "_svn_revision": "$Revision$", + "apiVersion": "2.0.0", + "swaggerVersion": "1.1", + "basePath": "http://localhost:8088/ari", + "resourcePath": "/api-docs/endpoints.{format}", + "apis": [ + { + "path": "/endpoints", + "description": "Asterisk endpoints", + "operations": [ + { + "httpMethod": "GET", + "summary": "List all endpoints.", + "nickname": "list", + "responseClass": "List[Endpoint]" + } + ] + }, + { + "path": "/endpoints/sendMessage", + "description": "Send a message to some technology URI or endpoint.", + "operations": [ + { + "httpMethod": "PUT", + "summary": "Send a message to some technology URI or endpoint.", + "nickname": "sendMessage", + "responseClass": "void", + "parameters": [ + { + "name": "to", + "description": "The endpoint resource or technology specific URI to send the message to. Valid resources are sip, pjsip, and xmpp.", + "paramType": "query", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "from", + "description": "The endpoint resource or technology specific identity to send this message from. Valid resources are sip, pjsip, and xmpp.", + "paramType": "query", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "body", + "description": "The body of the message", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "variables", + "descriptioni": "The \"variables\" key in the body object holds technology specific key/value pairs to append to the message. These can be interpreted and used by the various resource types; for example, pjsip and sip resource types will add the key/value pairs as SIP headers,", + "paramType": "body", + "required": false, + "dataType": "containers", + "allowMultiple": false + } + ], + "errorResponses": [ + { + "code": 400, + "reason": "Invalid parameters for sending a message." + }, + { + "code": 404, + "reason": "Endpoint not found" + } + ] + } + ] + }, + { + "path": "/endpoints/{tech}", + "description": "Asterisk endpoints", + "operations": [ + { + "httpMethod": "GET", + "summary": "List available endoints for a given endpoint technology.", + "nickname": "listByTech", + "responseClass": "List[Endpoint]", + "parameters": [ + { + "name": "tech", + "description": "Technology of the endpoints (sip,iax2,...)", + "paramType": "path", + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Endpoints not found" + } + ] + } + ] + }, + { + "path": "/endpoints/{tech}/{resource}", + "description": "Single endpoint", + "operations": [ + { + "httpMethod": "GET", + "summary": "Details for an endpoint.", + "nickname": "get", + "responseClass": "Endpoint", + "parameters": [ + { + "name": "tech", + "description": "Technology of the endpoint", + "paramType": "path", + "dataType": "string" + }, + { + "name": "resource", + "description": "ID of the endpoint", + "paramType": "path", + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 400, + "reason": "Invalid parameters for sending a message." + }, + { + "code": 404, + "reason": "Endpoints not found" + } + ] + } + ] + }, + { + "path": "/endpoints/{tech}/{resource}/sendMessage", + "description": "Send a message to some endpoint in a technology.", + "operations": [ + { + "httpMethod": "PUT", + "summary": "Send a message to some endpoint in a technology.", + "nickname": "sendMessageToEndpoint", + "responseClass": "void", + "parameters": [ + { + "name": "tech", + "description": "Technology of the endpoint", + "paramType": "path", + "dataType": "string" + }, + { + "name": "resource", + "description": "ID of the endpoint", + "paramType": "path", + "dataType": "string" + }, + { + "name": "from", + "description": "The endpoint resource or technology specific identity to send this message from. Valid resources are sip, pjsip, and xmpp.", + "paramType": "query", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "body", + "description": "The body of the message", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "variables", + "descriptioni": "The \"variables\" key in the body object holds technology specific key/value pairs to append to the message. These can be interpreted and used by the various resource types; for example, pjsip and sip resource types will add the key/value pairs as SIP headers,", + "paramType": "body", + "required": false, + "dataType": "containers", + "allowMultiple": false + } + ], + "errorResponses": [ + { + "code": 400, + "reason": "Invalid parameters for sending a message." + }, + { + "code": 404, + "reason": "Endpoint not found" + } + ] + } + ] + } + ], + "models": { + "Endpoint": { + "id": "Endpoint", + "description": "An external device that may offer/accept calls to/from Asterisk.\n\nUnlike most resources, which have a single unique identifier, an endpoint is uniquely identified by the technology/resource pair.", + "properties": { + "technology": { + "type": "string", + "description": "Technology of the endpoint", + "required": true + }, + "resource": { + "type": "string", + "description": "Identifier of the endpoint, specific to the given technology.", + "required": true + }, + "state": { + "type": "string", + "description": "Endpoint's state", + "required": false, + "allowableValues": { + "valueType": "LIST", + "values": [ + "unknown", + "offline", + "online" + ] + } + }, + "channel_ids": { + "type": "List[string]", + "description": "Id's of channels associated with this endpoint", + "required": true + } + } + }, + "TextMessageVariable": { + "id": "TextMessageVariable", + "description": "A key/value pair variable in a text message.", + "properties": { + "key": { + "type": "string", + "description": "A unique key identifying the variable.", + "required": true + }, + "value": { + "type": "string", + "description": "The value of the variable.", + "required": true + } + } + }, + "TextMessage": { + "id": "TextMessage", + "description": "A text message.", + "properties": { + "from": { + "type": "string", + "description": "A technology specific URI specifying the source of the message. For sip and pjsip technologies, any SIP URI can be specified. For xmpp, the URI must correspond to the client connection being used to send the message.", + "required": true + }, + "to": { + "type": "string", + "description": "A technology specific URI specifying the destination of the message. Valid technologies include sip, pjsip, and xmp. The destination of a message should be an endpoint.", + "required": true + }, + "body": { + "type": "string", + "description": "The text of the message.", + "required": true + }, + "variables": { + "type": "List[TextMessageVariable]", + "description": "Technology specific key/value pairs associated with the message.", + "required": false + } + } + } + } +} diff --git a/codegen/src/main/resources/codegen-data/ari_5_0_0/events.json b/codegen/src/main/resources/codegen-data/ari_5_0_0/events.json new file mode 100644 index 00000000..c9822f6c --- /dev/null +++ b/codegen/src/main/resources/codegen-data/ari_5_0_0/events.json @@ -0,0 +1,918 @@ +{ + "_copyright": "Copyright (C) 2012 - 2013, Digium, Inc.", + "_author": "David M. Lee, II ", + "_svn_revision": "$Revision$", + "apiVersion": "2.0.0", + "swaggerVersion": "1.2", + "basePath": "http://localhost:8088/ari", + "resourcePath": "/api-docs/events.{format}", + "requiresModules": [ + "res_http_websocket" + ], + "apis": [ + { + "path": "/events", + "description": "Events from Asterisk to applications", + "operations": [ + { + "httpMethod": "GET", + "upgrade": "websocket", + "websocketProtocol": "ari", + "summary": "WebSocket connection for events.", + "nickname": "eventWebsocket", + "responseClass": "Message", + "parameters": [ + { + "name": "app", + "description": "Applications to subscribe to.", + "paramType": "query", + "required": true, + "allowMultiple": true, + "dataType": "string" + }, + { + "name": "subscribeAll", + "description": "Subscribe to all Asterisk events. If provided, the applications listed will be subscribed to all events, effectively disabling the application specific subscriptions. Default is 'false'.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "boolean" + } + ] + } + ] + }, + { + "path": "/events/user/{eventName}", + "description": "Stasis application user events", + "operations": [ + { + "httpMethod": "POST", + "summary": "Generate a user event.", + "nickname": "userEvent", + "responseClass": "void", + "parameters": [ + { + "name": "eventName", + "description": "Event name", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "application", + "description": "The name of the application that will receive this event", + "paramType": "query", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "source", + "description": "URI for event source (channel:{channelId}, bridge:{bridgeId}, endpoint:{tech}/{resource}, deviceState:{deviceName}", + "paramType": "query", + "required": false, + "allowMultiple": true, + "dataType": "string" + }, + { + "name": "variables", + "description": "The \"variables\" key in the body object holds custom key/value pairs to add to the user event. Ex. { \"variables\": { \"key\": \"value\" } }", + "paramType": "body", + "required": false, + "allowMultiple": false, + "dataType": "containers" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Application does not exist." + }, + { + "code": 422, + "reason": "Event source not found." + }, + { + "code": 400, + "reason": "Invalid even tsource URI or userevent data." + } + ] + } + ] + } + ], + "models": { + "Message": { + "id": "Message", + "description": "Base type for errors and events", + "discriminator": "type", + "properties": { + "type": { + "type": "string", + "required": true, + "description": "Indicates the type of this message." + }, + "asterisk_id": { + "type": "string", + "required": false, + "description": "The unique ID for the Asterisk instance that raised this event." + } + }, + "subTypes": [ + "MissingParams", + "Event" + ] + }, + "MissingParams": { + "id": "MissingParams", + "description": "Error event sent when required params are missing.", + "properties": { + "params": { + "required": true, + "type": "List[string]", + "description": "A list of the missing parameters" + } + } + }, + "Event": { + "id": "Event", + "description": "Base type for asynchronous events from Asterisk.", + "properties": { + "application": { + "type": "string", + "description": "Name of the application receiving the event.", + "required": true + }, + "timestamp": { + "type": "Date", + "description": "Time at which this event was created.", + "required": true + } + }, + "subTypes": [ + "DeviceStateChanged", + "PlaybackStarted", + "PlaybackContinuing", + "PlaybackFinished", + "RecordingStarted", + "RecordingFinished", + "RecordingFailed", + "ApplicationMoveFailed", + "ApplicationReplaced", + "BridgeCreated", + "BridgeDestroyed", + "BridgeMerged", + "BridgeBlindTransfer", + "BridgeAttendedTransfer", + "BridgeVideoSourceChanged", + "ChannelCreated", + "ChannelDestroyed", + "ChannelEnteredBridge", + "ChannelLeftBridge", + "ChannelStateChange", + "ChannelDtmfReceived", + "ChannelDialplan", + "ChannelCallerId", + "ChannelUserevent", + "ChannelHangupRequest", + "ChannelVarset", + "ChannelTalkingStarted", + "ChannelTalkingFinished", + "ChannelHold", + "ChannelUnhold", + "ContactStatusChange", + "EndpointStateChange", + "Dial", + "StasisEnd", + "StasisStart", + "TextMessageReceived", + "ChannelConnectedLine", + "PeerStatusChange" + ] + }, + "ContactInfo": { + "id": "ContactInfo", + "description": "Detailed information about a contact on an endpoint.", + "properties": { + "uri": { + "type": "string", + "description": "The location of the contact.", + "required": true + }, + "contact_status": { + "type": "string", + "description": "The current status of the contact.", + "required": true, + "allowableValues": { + "valueType": "LIST", + "values": [ + "Unreachable", + "Reachable", + "Unknown", + "NonQualified", + "Removed" + ] + } + }, + "aor": { + "type": "string", + "description": "The Address of Record this contact belongs to.", + "required": true + }, + "roundtrip_usec": { + "type": "string", + "description": "Current round trip time, in microseconds, for the contact.", + "required": false + } + } + }, + "Peer": { + "id": "Peer", + "description": "Detailed information about a remote peer that communicates with Asterisk.", + "properties": { + "peer_status": { + "type": "string", + "description": "The current state of the peer. Note that the values of the status are dependent on the underlying peer technology.", + "required": true + }, + "cause": { + "type": "string", + "description": "An optional reason associated with the change in peer_status.", + "required": false + }, + "address": { + "type": "string", + "description": "The IP address of the peer.", + "required": false + }, + "port": { + "type": "string", + "description": "The port of the peer.", + "required": false + }, + "time": { + "type": "string", + "description": "The last known time the peer was contacted.", + "required": false + } + } + }, + "DeviceStateChanged": { + "id": "DeviceStateChanged", + "description": "Notification that a device state has changed.", + "properties": { + "device_state": { + "type": "DeviceState", + "description": "Device state object", + "required": true + } + } + }, + "PlaybackStarted": { + "id": "PlaybackStarted", + "description": "Event showing the start of a media playback operation.", + "properties": { + "playback": { + "type": "Playback", + "description": "Playback control object", + "required": true + } + } + }, + "PlaybackContinuing": { + "id": "PlaybackContinuing", + "description": "Event showing the continuation of a media playback operation from one media URI to the next in the list.", + "properties": { + "playback": { + "type": "Playback", + "description": "Playback control object", + "required": true + } + } + }, + "PlaybackFinished": { + "id": "PlaybackFinished", + "description": "Event showing the completion of a media playback operation.", + "properties": { + "playback": { + "type": "Playback", + "description": "Playback control object", + "required": true + } + } + }, + "RecordingStarted": { + "id": "RecordingStarted", + "description": "Event showing the start of a recording operation.", + "properties": { + "recording": { + "type": "LiveRecording", + "description": "Recording control object", + "required": true + } + } + }, + "RecordingFinished": { + "id": "RecordingFinished", + "description": "Event showing the completion of a recording operation.", + "properties": { + "recording": { + "type": "LiveRecording", + "description": "Recording control object", + "required": true + } + } + }, + "RecordingFailed": { + "id": "RecordingFailed", + "description": "Event showing failure of a recording operation.", + "properties": { + "recording": { + "type": "LiveRecording", + "description": "Recording control object", + "required": true + } + } + }, + "ApplicationMoveFailed": { + "id": "ApplicationMoveFailed", + "description": "Notification that trying to move a channel to another Stasis application failed.", + "properties": { + "channel": { + "required": true, + "type": "Channel" + }, + "destination": { + "required": true, + "type": "string" + }, + "args": { + "required": true, + "type": "List[string]", + "description": "Arguments to the application" + } + } + }, + "ApplicationReplaced": { + "id": "ApplicationReplaced", + "description": "Notification that another WebSocket has taken over for an application.\n\nAn application may only be subscribed to by a single WebSocket at a time. If multiple WebSockets attempt to subscribe to the same application, the newer WebSocket wins, and the older one receives this event.", + "properties": {} + }, + "BridgeCreated": { + "id": "BridgeCreated", + "description": "Notification that a bridge has been created.", + "properties": { + "bridge": { + "required": true, + "type": "Bridge" + } + } + }, + "BridgeDestroyed": { + "id": "BridgeDestroyed", + "description": "Notification that a bridge has been destroyed.", + "properties": { + "bridge": { + "required": true, + "type": "Bridge" + } + } + }, + "BridgeMerged": { + "id": "BridgeMerged", + "description": "Notification that one bridge has merged into another.", + "properties": { + "bridge": { + "required": true, + "type": "Bridge" + }, + "bridge_from": { + "required": true, + "type": "Bridge" + } + } + }, + "BridgeVideoSourceChanged": { + "id": "BridgeVideoSourceChanged", + "description": "Notification that the source of video in a bridge has changed.", + "properties": { + "bridge": { + "required": true, + "type": "Bridge" + }, + "old_video_source_id": { + "required": false, + "type": "string" + } + } + }, + "BridgeBlindTransfer": { + "id": "BridgeBlindTransfer", + "description": "Notification that a blind transfer has occurred.", + "properties": { + "channel": { + "description": "The channel performing the blind transfer", + "required": true, + "type": "Channel" + }, + "replace_channel": { + "description": "The channel that is replacing transferer when the transferee(s) can not be transferred directly", + "required": false, + "type": "Channel" + }, + "transferee": { + "description": "The channel that is being transferred", + "required": false, + "type": "Channel" + }, + "exten": { + "description": "The extension transferred to", + "required": true, + "type": "string" + }, + "context": { + "description": "The context transferred to", + "required": true, + "type": "string" + }, + "result": { + "description": "The result of the transfer attempt", + "required": true, + "type": "string" + }, + "is_external": { + "description": "Whether the transfer was externally initiated or not", + "required": true, + "type": "boolean" + }, + "bridge": { + "description": "The bridge being transferred", + "type": "Bridge" + } + } + }, + "BridgeAttendedTransfer": { + "id": "BridgeAttendedTransfer", + "description": "Notification that an attended transfer has occurred.", + "properties": { + "transferer_first_leg": { + "description": "First leg of the transferer", + "required": true, + "type": "Channel" + }, + "transferer_second_leg": { + "description": "Second leg of the transferer", + "required": true, + "type": "Channel" + }, + "replace_channel": { + "description": "The channel that is replacing transferer_first_leg in the swap", + "required": false, + "type": "Channel" + }, + "transferee": { + "description": "The channel that is being transferred", + "required": false, + "type": "Channel" + }, + "transfer_target": { + "description": "The channel that is being transferred to", + "required": false, + "type": "Channel" + }, + "result": { + "description": "The result of the transfer attempt", + "required": true, + "type": "string" + }, + "is_external": { + "description": "Whether the transfer was externally initiated or not", + "required": true, + "type": "boolean" + }, + "transferer_first_leg_bridge": { + "description": "Bridge the transferer first leg is in", + "type": "Bridge" + }, + "transferer_second_leg_bridge": { + "description": "Bridge the transferer second leg is in", + "type": "Bridge" + }, + "destination_type": { + "description": "How the transfer was accomplished", + "required": true, + "type": "string" + }, + "destination_bridge": { + "description": "Bridge that survived the merge result", + "type": "string" + }, + "destination_application": { + "description": "Application that has been transferred into", + "type": "string" + }, + "destination_link_first_leg": { + "description": "First leg of a link transfer result", + "type": "Channel" + }, + "destination_link_second_leg": { + "description": "Second leg of a link transfer result", + "type": "Channel" + }, + "destination_threeway_channel": { + "description": "Transferer channel that survived the threeway result", + "type": "Channel" + }, + "destination_threeway_bridge": { + "description": "Bridge that survived the threeway result", + "type": "Bridge" + } + } + }, + "ChannelCreated": { + "id": "ChannelCreated", + "description": "Notification that a channel has been created.", + "properties": { + "channel": { + "required": true, + "type": "Channel" + } + } + }, + "ChannelDestroyed": { + "id": "ChannelDestroyed", + "description": "Notification that a channel has been destroyed.", + "properties": { + "cause": { + "required": true, + "description": "Integer representation of the cause of the hangup", + "type": "int" + }, + "cause_txt": { + "required": true, + "description": "Text representation of the cause of the hangup", + "type": "string" + }, + "channel": { + "required": true, + "type": "Channel" + } + } + }, + "ChannelEnteredBridge": { + "id": "ChannelEnteredBridge", + "description": "Notification that a channel has entered a bridge.", + "properties": { + "bridge": { + "required": true, + "type": "Bridge" + }, + "channel": { + "type": "Channel" + } + } + }, + "ChannelLeftBridge": { + "id": "ChannelLeftBridge", + "description": "Notification that a channel has left a bridge.", + "properties": { + "bridge": { + "required": true, + "type": "Bridge" + }, + "channel": { + "required": true, + "type": "Channel" + } + } + }, + "ChannelStateChange": { + "id": "ChannelStateChange", + "description": "Notification of a channel's state change.", + "properties": { + "channel": { + "required": true, + "type": "Channel" + } + } + }, + "ChannelDtmfReceived": { + "id": "ChannelDtmfReceived", + "description": "DTMF received on a channel.\n\nThis event is sent when the DTMF ends. There is no notification about the start of DTMF", + "properties": { + "digit": { + "required": true, + "type": "string", + "description": "DTMF digit received (0-9, A-E, # or *)" + }, + "duration_ms": { + "required": true, + "type": "int", + "description": "Number of milliseconds DTMF was received" + }, + "channel": { + "required": true, + "type": "Channel", + "description": "The channel on which DTMF was received" + } + } + }, + "ChannelDialplan": { + "id": "ChannelDialplan", + "description": "Channel changed location in the dialplan.", + "properties": { + "channel": { + "required": true, + "type": "Channel", + "description": "The channel that changed dialplan location." + }, + "dialplan_app": { + "required": true, + "type": "string", + "description": "The application about to be executed." + }, + "dialplan_app_data": { + "required": true, + "type": "string", + "description": "The data to be passed to the application." + } + } + }, + "ChannelCallerId": { + "id": "ChannelCallerId", + "description": "Channel changed Caller ID.", + "properties": { + "caller_presentation": { + "required": true, + "type": "int", + "description": "The integer representation of the Caller Presentation value." + }, + "caller_presentation_txt": { + "required": true, + "type": "string", + "description": "The text representation of the Caller Presentation value." + }, + "channel": { + "required": true, + "type": "Channel", + "description": "The channel that changed Caller ID." + } + } + }, + "ChannelUserevent": { + "id": "ChannelUserevent", + "description": "User-generated event with additional user-defined fields in the object.", + "properties": { + "eventname": { + "required": true, + "type": "string", + "description": "The name of the user event." + }, + "channel": { + "required": false, + "type": "Channel", + "description": "A channel that is signaled with the user event." + }, + "bridge": { + "required": false, + "type": "Bridge", + "description": "A bridge that is signaled with the user event." + }, + "endpoint": { + "required": false, + "type": "Endpoint", + "description": "A endpoint that is signaled with the user event." + }, + "userevent": { + "required": true, + "type": "object", + "description": "Custom Userevent data" + } + } + }, + "ChannelHangupRequest": { + "id": "ChannelHangupRequest", + "description": "A hangup was requested on the channel.", + "properties": { + "cause": { + "type": "int", + "description": "Integer representation of the cause of the hangup." + }, + "soft": { + "type": "boolean", + "description": "Whether the hangup request was a soft hangup request." + }, + "channel": { + "required": true, + "type": "Channel", + "description": "The channel on which the hangup was requested." + } + } + }, + "ChannelVarset": { + "id": "ChannelVarset", + "description": "Channel variable changed.", + "properties": { + "variable": { + "required": true, + "type": "string", + "description": "The variable that changed." + }, + "value": { + "required": true, + "type": "string", + "description": "The new value of the variable." + }, + "channel": { + "required": false, + "type": "Channel", + "description": "The channel on which the variable was set.\n\nIf missing, the variable is a global variable." + } + } + }, + "ChannelHold": { + "id": "ChannelHold", + "description": "A channel initiated a media hold.", + "properties": { + "channel": { + "required": true, + "type": "Channel", + "description": "The channel that initiated the hold event." + }, + "musicclass": { + "required": false, + "type": "string", + "description": "The music on hold class that the initiator requested." + } + } + }, + "ChannelUnhold": { + "id": "ChannelUnhold", + "description": "A channel initiated a media unhold.", + "properties": { + "channel": { + "required": true, + "type": "Channel", + "description": "The channel that initiated the unhold event." + } + } + }, + "ChannelTalkingStarted": { + "id": "ChannelTalkingStarted", + "description": "Talking was detected on the channel.", + "properties": { + "channel": { + "required": true, + "type": "Channel", + "description": "The channel on which talking started." + } + } + }, + "ChannelTalkingFinished": { + "id": "ChannelTalkingFinished", + "description": "Talking is no longer detected on the channel.", + "properties": { + "channel": { + "required": true, + "type": "Channel", + "description": "The channel on which talking completed." + }, + "duration": { + "required": true, + "type": "int", + "description": "The length of time, in milliseconds, that talking was detected on the channel" + } + } + }, + "ContactStatusChange": { + "id": "ContactStatusChange", + "description": "The state of a contact on an endpoint has changed.", + "properties": { + "endpoint": { + "required": true, + "type": "Endpoint" + }, + "contact_info": { + "required": true, + "type": "ContactInfo" + } + } + }, + "PeerStatusChange": { + "id": "PeerStatusChange", + "description": "The state of a peer associated with an endpoint has changed.", + "properties": { + "endpoint": { + "required": true, + "type": "Endpoint" + }, + "peer": { + "required": true, + "type": "Peer" + } + } + }, + "EndpointStateChange": { + "id": "EndpointStateChange", + "description": "Endpoint state changed.", + "properties": { + "endpoint": { + "required": true, + "type": "Endpoint" + } + } + }, + "Dial": { + "id": "Dial", + "description": "Dialing state has changed.", + "properties": { + "caller": { + "required": false, + "type": "Channel", + "description": "The calling channel." + }, + "peer": { + "required": true, + "type": "Channel", + "description": "The dialed channel." + }, + "forward": { + "required": false, + "type": "string", + "description": "Forwarding target requested by the original dialed channel." + }, + "forwarded": { + "required": false, + "type": "Channel", + "description": "Channel that the caller has been forwarded to." + }, + "dialstring": { + "required": false, + "type": "string", + "description": "The dial string for calling the peer channel." + }, + "dialstatus": { + "required": true, + "type": "string", + "description": "Current status of the dialing attempt to the peer." + } + } + }, + "StasisEnd": { + "id": "StasisEnd", + "description": "Notification that a channel has left a Stasis application.", + "properties": { + "channel": { + "required": true, + "type": "Channel" + } + } + }, + "StasisStart": { + "id": "StasisStart", + "description": "Notification that a channel has entered a Stasis application.", + "properties": { + "args": { + "required": true, + "type": "List[string]", + "description": "Arguments to the application" + }, + "channel": { + "required": true, + "type": "Channel" + }, + "replace_channel": { + "required": false, + "type": "Channel" + } + } + }, + "TextMessageReceived": { + "id": "TextMessageReceived", + "description": "A text message was received from an endpoint.", + "properties": { + "message": { + "required": true, + "type": "TextMessage" + }, + "endpoint": { + "required": false, + "type": "Endpoint" + } + } + }, + "ChannelConnectedLine": { + "id": "ChannelConnectedLine", + "description": "Channel changed Connected Line.", + "properties": { + "channel": { + "required": true, + "type": "Channel", + "description": "The channel whose connected line has changed." + } + } + } + } +} diff --git a/codegen/src/main/resources/codegen-data/ari_5_0_0/mailboxes.json b/codegen/src/main/resources/codegen-data/ari_5_0_0/mailboxes.json new file mode 100644 index 00000000..8f5941b8 --- /dev/null +++ b/codegen/src/main/resources/codegen-data/ari_5_0_0/mailboxes.json @@ -0,0 +1,137 @@ +{ + "_copyright": "Copyright (C) 2013, Digium, Inc.", + "_author": "Jonathan Rose ", + "_svn_revision": "$Revision$", + "apiVersion": "2.0.0", + "swaggerVersion": "1.1", + "basePath": "http://localhost:8088/ari", + "resourcePath": "/api-docs/mailboxes.{format}", + "requiresModules": [ + "res_stasis_mailbox" + ], + "apis": [ + { + "path": "/mailboxes", + "description": "Mailboxes", + "operations": [ + { + "httpMethod": "GET", + "summary": "List all mailboxes.", + "nickname": "list", + "responseClass": "List[Mailbox]" + } + ] + }, + { + "path": "/mailboxes/{mailboxName}", + "description": "Mailbox state", + "operations": [ + { + "httpMethod": "GET", + "summary": "Retrieve the current state of a mailbox.", + "nickname": "get", + "responseClass": "Mailbox", + "parameters": [ + { + "name": "mailboxName", + "description": "Name of the mailbox", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Mailbox not found" + } + ] + }, + { + "httpMethod": "PUT", + "summary": "Change the state of a mailbox. (Note - implicitly creates the mailbox).", + "nickname": "update", + "responseClass": "void", + "parameters": [ + { + "name": "mailboxName", + "description": "Name of the mailbox", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "oldMessages", + "description": "Count of old messages in the mailbox", + "paramType": "query", + "required": true, + "allowMultiple": false, + "dataType": "int" + }, + { + "name": "newMessages", + "description": "Count of new messages in the mailbox", + "paramType": "query", + "required": true, + "allowMultiple": false, + "dataType": "int" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Mailbox not found" + } + ] + }, + { + "httpMethod": "DELETE", + "summary": "Destroy a mailbox.", + "nickname": "delete", + "responseClass": "void", + "parameters": [ + { + "name": "mailboxName", + "description": "Name of the mailbox", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Mailbox not found" + } + ] + } + ] + } + ], + "models": { + "Mailbox": { + "id": "Mailbox", + "description": "Represents the state of a mailbox.", + "properties": { + "name": { + "type": "string", + "description": "Name of the mailbox.", + "required": true + }, + "old_messages": { + "type": "int", + "description": "Count of old messages in the mailbox.", + "required": true + }, + "new_messages": { + "type": "int", + "description": "Count of new messages in the mailbox.", + "required": true + } + } + } + } +} diff --git a/codegen/src/main/resources/codegen-data/ari_5_0_0/playbacks.json b/codegen/src/main/resources/codegen-data/ari_5_0_0/playbacks.json new file mode 100644 index 00000000..a78dcae7 --- /dev/null +++ b/codegen/src/main/resources/codegen-data/ari_5_0_0/playbacks.json @@ -0,0 +1,164 @@ +{ + "_copyright": "Copyright (C) 2012 - 2013, Digium, Inc.", + "_author": "David M. Lee, II ", + "_svn_revision": "$Revision$", + "apiVersion": "2.0.0", + "swaggerVersion": "1.1", + "basePath": "http://localhost:8088/ari", + "resourcePath": "/api-docs/playbacks.{format}", + "requiresModules": [ + "res_stasis_playback" + ], + "apis": [ + { + "path": "/playbacks/{playbackId}", + "description": "Control object for a playback operation.", + "operations": [ + { + "httpMethod": "GET", + "summary": "Get a playback's details.", + "nickname": "get", + "responseClass": "Playback", + "parameters": [ + { + "name": "playbackId", + "description": "Playback's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "The playback cannot be found" + } + ] + }, + { + "httpMethod": "DELETE", + "summary": "Stop a playback.", + "nickname": "stop", + "responseClass": "void", + "parameters": [ + { + "name": "playbackId", + "description": "Playback's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "The playback cannot be found" + } + ] + } + ] + }, + { + "path": "/playbacks/{playbackId}/control", + "description": "Control object for a playback operation.", + "operations": [ + { + "httpMethod": "POST", + "summary": "Control a playback.", + "nickname": "control", + "responseClass": "void", + "parameters": [ + { + "name": "playbackId", + "description": "Playback's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "operation", + "description": "Operation to perform on the playback.", + "paramType": "query", + "required": true, + "allowMultiple": false, + "dataType": "string", + "allowableValues": { + "valueType": "LIST", + "values": [ + "restart", + "pause", + "unpause", + "reverse", + "forward" + ] + } + } + ], + "errorResponses": [ + { + "code": 400, + "reason": "The provided operation parameter was invalid" + }, + { + "code": 404, + "reason": "The playback cannot be found" + }, + { + "code": 409, + "reason": "The operation cannot be performed in the playback's current state" + } +] + } + ] + } + ], + "models": { + "Playback": { + "id": "Playback", + "description": "Object representing the playback of media to a channel", + "properties": { + "id": { + "type": "string", + "description": "ID for this playback operation", + "required": true + }, + "media_uri": { + "type": "string", + "description": "The URI for the media currently being played back.", + "required": true + }, + "next_media_uri": { + "type": "string", + "description": "If a list of URIs is being played, the next media URI to be played back.", + "required": false + }, + "target_uri": { + "type": "string", + "description": "URI for the channel or bridge to play the media on", + "required": true + }, + "language": { + "type": "string", + "description": "For media types that support multiple languages, the language requested for playback." + }, + "state": { + "type": "string", + "description": "Current state of the playback operation.", + "required": true, + "allowableValues": { + "valueType": "LIST", + "values": [ + "queued", + "playing", + "continuing", + "done" + ] + } + } + } + } + } +} diff --git a/codegen/src/main/resources/codegen-data/ari_5_0_0/recordings.json b/codegen/src/main/resources/codegen-data/ari_5_0_0/recordings.json new file mode 100644 index 00000000..6ffd6d8e --- /dev/null +++ b/codegen/src/main/resources/codegen-data/ari_5_0_0/recordings.json @@ -0,0 +1,413 @@ +{ + "_copyright": "Copyright (C) 2012 - 2013, Digium, Inc.", + "_author": "David M. Lee, II ", + "_svn_revision": "$Revision$", + "apiVersion": "2.0.0", + "swaggerVersion": "1.1", + "basePath": "http://localhost:8088/ari", + "resourcePath": "/api-docs/recordings.{format}", + "requiresModules": [ + "res_stasis_recording" + ], + "apis": [ + { + "path": "/recordings/stored", + "description": "Recordings", + "operations": [ + { + "httpMethod": "GET", + "summary": "List recordings that are complete.", + "nickname": "listStored", + "responseClass": "List[StoredRecording]" + } + ] + }, + { + "path": "/recordings/stored/{recordingName}", + "description": "Individual recording", + "operations": [ + { + "httpMethod": "GET", + "summary": "Get a stored recording's details.", + "nickname": "getStored", + "responseClass": "StoredRecording", + "parameters": [ + { + "name": "recordingName", + "description": "The name of the recording", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Recording not found" + } + ] + }, + { + "httpMethod": "DELETE", + "summary": "Delete a stored recording.", + "nickname": "deleteStored", + "responseClass": "void", + "parameters": [ + { + "name": "recordingName", + "description": "The name of the recording", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Recording not found" + } + ] + } + ] + }, + { + "path": "/recordings/stored/{recordingName}/file", + "description": "The actual file associated with the stored recording", + "operations": [ + { + "httpMethod": "GET", + "summary": "Get the file associated with the stored recording.", + "nickname": "getStoredFile", + "responseClass": "binary", + "parameters": [ + { + "name": "recordingName", + "description": "The name of the recording", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 403, + "reason": "The recording file could not be opened" + }, + { + "code": 404, + "reason": "Recording not found" + } + ] + } + ] + }, + { + "path": "/recordings/stored/{recordingName}/copy", + "description": "Copy an individual recording", + "operations": [ + { + "httpMethod": "POST", + "summary": "Copy a stored recording.", + "nickname": "copyStored", + "responseClass": "StoredRecording", + "parameters": [ + { + "name": "recordingName", + "description": "The name of the recording to copy", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "destinationRecordingName", + "description": "The destination name of the recording", + "paramType": "query", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Recording not found" + }, + { + "code": 409, + "reason": "A recording with the same name already exists on the system" + } + ] + } + ] + }, + { + "path": "/recordings/live/{recordingName}", + "description": "A recording that is in progress", + "operations": [ + { + "httpMethod": "GET", + "summary": "List live recordings.", + "nickname": "getLive", + "responseClass": "LiveRecording", + "parameters": [ + { + "name": "recordingName", + "description": "The name of the recording", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Recording not found" + } + ] + }, + { + "httpMethod": "DELETE", + "summary": "Stop a live recording and discard it.", + "nickname": "cancel", + "responseClass": "void", + "parameters": [ + { + "name": "recordingName", + "description": "The name of the recording", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Recording not found" + } + ] + } + ] + }, + { + "path": "/recordings/live/{recordingName}/stop", + "operations": [ + { + "httpMethod": "POST", + "summary": "Stop a live recording and store it.", + "nickname": "stop", + "responseClass": "void", + "parameters": [ + { + "name": "recordingName", + "description": "The name of the recording", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Recording not found" + } + ] + } + ] + }, + { + "path": "/recordings/live/{recordingName}/pause", + "operations": [ + { + "httpMethod": "POST", + "summary": "Pause a live recording.", + "notes": "Pausing a recording suspends silence detection, which will be restarted when the recording is unpaused. Paused time is not included in the accounting for maxDurationSeconds.", + "nickname": "pause", + "responseClass": "void", + "parameters": [ + { + "name": "recordingName", + "description": "The name of the recording", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Recording not found" + }, + { + "code": 409, + "reason": "Recording not in session" + } + ] + }, + { + "httpMethod": "DELETE", + "summary": "Unpause a live recording.", + "nickname": "unpause", + "responseClass": "void", + "parameters": [ + { + "name": "recordingName", + "description": "The name of the recording", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Recording not found" + }, + { + "code": 409, + "reason": "Recording not in session" + } + ] + } + ] + }, + { + "path": "/recordings/live/{recordingName}/mute", + "operations": [ + { + "httpMethod": "POST", + "summary": "Mute a live recording.", + "notes": "Muting a recording suspends silence detection, which will be restarted when the recording is unmuted.", + "nickname": "mute", + "responseClass": "void", + "parameters": [ + { + "name": "recordingName", + "description": "The name of the recording", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Recording not found" + }, + { + "code": 409, + "reason": "Recording not in session" + } + ] + }, + { + "httpMethod": "DELETE", + "summary": "Unmute a live recording.", + "nickname": "unmute", + "responseClass": "void", + "parameters": [ + { + "name": "recordingName", + "description": "The name of the recording", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Recording not found" + }, + { + "code": 409, + "reason": "Recording not in session" + } + ] + } + ] + } + ], + "models": { + "StoredRecording": { + "id": "StoredRecording", + "description": "A past recording that may be played back.", + "properties": { + "name": { + "required": true, + "type": "string" + }, + "format": { + "required": true, + "type": "string" + } + } + }, + "LiveRecording": { + "id": "LiveRecording", + "description": "A recording that is in progress", + "properties": { + "name": { + "required": true, + "type": "string", + "description": "Base name for the recording" + }, + "format": { + "required": true, + "type": "string", + "description": "Recording format (wav, gsm, etc.)" + }, + "target_uri": { + "required": true, + "type": "string", + "description": "URI for the channel or bridge being recorded" + }, + "state": { + "required": true, + "type": "string", + "allowableValues": { + "valueType": "LIST", + "values": [ + "queued", + "recording", + "paused", + "done", + "failed", + "canceled" + ] + } + }, + "duration": { + "required": false, + "type": "int", + "description": "Duration in seconds of the recording" + }, + "talking_duration": { + "required": false, + "type": "int", + "description": "Duration of talking, in seconds, detected in the recording. This is only available if the recording was initiated with a non-zero maxSilenceSeconds." + }, + "silence_duration": { + "required": false, + "type": "int", + "description": "Duration of silence, in seconds, detected in the recording. This is only available if the recording was initiated with a non-zero maxSilenceSeconds." + }, + "cause": { + "required": false, + "type": "string", + "description": "Cause for recording failure if failed" + } + } + } + } +} diff --git a/codegen/src/main/resources/codegen-data/ari_5_0_0/sounds.json b/codegen/src/main/resources/codegen-data/ari_5_0_0/sounds.json new file mode 100644 index 00000000..8fbe1c57 --- /dev/null +++ b/codegen/src/main/resources/codegen-data/ari_5_0_0/sounds.json @@ -0,0 +1,99 @@ +{ + "_copyright": "Copyright (C) 2012 - 2013, Digium, Inc.", + "_author": "David M. Lee, II ", + "_svn_revision": "$Revision$", + "apiVersion": "2.0.0", + "swaggerVersion": "1.1", + "basePath": "http://localhost:8088/ari", + "resourcePath": "/api-docs/sounds.{format}", + "apis": [ + { + "path": "/sounds", + "description": "Sounds", + "operations": [ + { + "httpMethod": "GET", + "summary": "List all sounds.", + "nickname": "list", + "responseClass": "List[Sound]", + "parameters": [ + { + "name": "lang", + "description": "Lookup sound for a specific language.", + "paramType": "query", + "dataType": "string", + "required": false + }, + { + "name": "format", + "description": "Lookup sound in a specific format.", + "paramType": "query", + "dataType": "string", + "required": false, + "__note": "core show translation can show translation paths between formats, along with relative costs. so this could be just installed format, or we could follow that for transcoded formats." + } + ] + } + ] + }, + { + "path": "/sounds/{soundId}", + "description": "Individual sound", + "operations": [ + { + "httpMethod": "GET", + "summary": "Get a sound's details.", + "nickname": "get", + "responseClass": "Sound", + "parameters": [ + { + "name": "soundId", + "description": "Sound's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ] + } + ] + } + ], + "models": { + "FormatLangPair": { + "id": "FormatLangPair", + "description": "Identifies the format and language of a sound file", + "properties": { + "language": { + "required": true, + "type": "string" + }, + "format": { + "required": true, + "type": "string" + } + } + }, + "Sound": { + "id": "Sound", + "description": "A media file that may be played back.", + "properties": { + "id": { + "required": true, + "description": "Sound's identifier.", + "type": "string" + }, + "text": { + "required": false, + "description": "Text description of the sound, usually the words spoken.", + "type": "string" + }, + "formats": { + "required": true, + "description": "The formats and languages in which this sound is available.", + "type": "List[FormatLangPair]" + } + } + } + } +} diff --git a/codegen/src/main/resources/codegen-data/ari_6_0_0/applications.json b/codegen/src/main/resources/codegen-data/ari_6_0_0/applications.json new file mode 100644 index 00000000..09c5cd5c --- /dev/null +++ b/codegen/src/main/resources/codegen-data/ari_6_0_0/applications.json @@ -0,0 +1,223 @@ +{ + "_copyright": "Copyright (C) 2013, Digium, Inc.", + "_author": "David M. Lee, II ", + "_svn_revision": "$Revision$", + "apiVersion": "2.0.0", + "swaggerVersion": "1.1", + "basePath": "http://localhost:8088/ari", + "resourcePath": "/api-docs/applications.{format}", + "apis": [ + { + "path": "/applications", + "description": "Stasis applications", + "operations": [ + { + "httpMethod": "GET", + "summary": "List all applications.", + "nickname": "list", + "responseClass": "List[Application]" + } + ] + }, + { + "path": "/applications/{applicationName}", + "description": "Stasis application", + "operations": [ + { + "httpMethod": "GET", + "summary": "Get details of an application.", + "nickname": "get", + "responseClass": "Application", + "parameters": [ + { + "name": "applicationName", + "description": "Application's name", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Application does not exist." + } + ] + } + ] + }, + { + "path": "/applications/{applicationName}/subscription", + "description": "Stasis application", + "operations": [ + { + "httpMethod": "POST", + "summary": "Subscribe an application to a event source.", + "notes": "Returns the state of the application after the subscriptions have changed", + "nickname": "subscribe", + "responseClass": "Application", + "parameters": [ + { + "name": "applicationName", + "description": "Application's name", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "eventSource", + "description": "URI for event source (channel:{channelId}, bridge:{bridgeId}, endpoint:{tech}[/{resource}], deviceState:{deviceName}", + "paramType": "query", + "required": true, + "allowMultiple": true, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 400, + "reason": "Missing parameter." + }, + { + "code": 404, + "reason": "Application does not exist." + }, + { + "code": 422, + "reason": "Event source does not exist." + } + ] + }, + { + "httpMethod": "DELETE", + "summary": "Unsubscribe an application from an event source.", + "notes": "Returns the state of the application after the subscriptions have changed", + "nickname": "unsubscribe", + "responseClass": "Application", + "parameters": [ + { + "name": "applicationName", + "description": "Application's name", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "eventSource", + "description": "URI for event source (channel:{channelId}, bridge:{bridgeId}, endpoint:{tech}[/{resource}], deviceState:{deviceName}", + "paramType": "query", + "required": true, + "allowMultiple": true, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 400, + "reason": "Missing parameter; event source scheme not recognized." + }, + { + "code": 404, + "reason": "Application does not exist." + }, + { + "code": 409, + "reason": "Application not subscribed to event source." + }, + { + "code": 422, + "reason": "Event source does not exist." + } + ] + } + ] + }, + { + "path": "/applications/{applicationName}/eventFilter", + "description": "Stasis application", + "operations": [ + { + "httpMethod": "PUT", + "summary": "Filter application events types.", + "notes": "Allowed and/or disallowed event type filtering can be done. The body (parameter) should specify a JSON key/value object that describes the type of event filtering needed. One, or both of the following keys can be designated:

\"allowed\" - Specifies an allowed list of event types
\"disallowed\" - Specifies a disallowed list of event types

Further, each of those key's value should be a JSON array that holds zero, or more JSON key/value objects. Each of these objects must contain the following key with an associated value:

\"type\" - The type name of the event to filter

The value must be the string name (case sensitive) of the event type that needs filtering. For example:

{ \"allowed\": [ { \"type\": \"StasisStart\" }, { \"type\": \"StasisEnd\" } ] }

As this specifies only an allowed list, then only those two event type messages are sent to the application. No other event messages are sent.

The following rules apply:

* If the body is empty, both the allowed and disallowed filters are set empty.
* If both list types are given then both are set to their respective values (note, specifying an empty array for a given type sets that type to empty).
* If only one list type is given then only that type is set. The other type is not updated.
* An empty \"allowed\" list means all events are allowed.
* An empty \"disallowed\" list means no events are disallowed.
* Disallowed events take precedence over allowed events if the event type is specified in both lists.", + "nickname": "filter", + "responseClass": "Application", + "parameters": [ + { + "name": "applicationName", + "description": "Application's name", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "filter", + "description": "Specify which event types to allow/disallow", + "paramType": "body", + "required": false, + "dataType": "object", + "allowMultiple": false + } + ], + "errorResponses": [ + { + "code": 400, + "reason": "Bad request." + }, + { + "code": 404, + "reason": "Application does not exist." + } + ] + } + ] + } + ], + "models": { + "Application": { + "id": "Application", + "description": "Details of a Stasis application", + "properties": { + "name": { + "type": "string", + "description": "Name of this application", + "required": true + }, + "channel_ids": { + "type": "List[string]", + "description": "Id's for channels subscribed to.", + "required": true + }, + "bridge_ids": { + "type": "List[string]", + "description": "Id's for bridges subscribed to.", + "required": true + }, + "endpoint_ids": { + "type": "List[string]", + "description": "{tech}/{resource} for endpoints subscribed to.", + "required": true + }, + "device_names": { + "type": "List[string]", + "description": "Names of the devices subscribed to.", + "required": true + }, + "events_allowed": { + "type": "List[object]", + "description": "Event types sent to the application.", + "required": true + }, + "events_disallowed": { + "type": "List[object]", + "description": "Event types not sent to the application.", + "required": true + } + } + } + } +} diff --git a/codegen/src/main/resources/codegen-data/ari_6_0_0/asterisk.json b/codegen/src/main/resources/codegen-data/ari_6_0_0/asterisk.json new file mode 100644 index 00000000..841e6cd8 --- /dev/null +++ b/codegen/src/main/resources/codegen-data/ari_6_0_0/asterisk.json @@ -0,0 +1,725 @@ +{ + "_copyright": "Copyright (C) 2012 - 2013, Digium, Inc.", + "_author": "David M. Lee, II ", + "_svn_revision": "$Revision$", + "apiVersion": "2.0.0", + "swaggerVersion": "1.1", + "basePath": "http://localhost:8088/ari", + "resourcePath": "/api-docs/asterisk.{format}", + "apis": [ + { + "path": "/asterisk/config/dynamic/{configClass}/{objectType}/{id}", + "description": "Asterisk dynamic configuration", + "operations": [ + { + "httpMethod": "GET", + "summary": "Retrieve a dynamic configuration object.", + "nickname": "getObject", + "responseClass": "List[ConfigTuple]", + "parameters": [ + { + "name": "configClass", + "description": "The configuration class containing dynamic configuration objects.", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "objectType", + "description": "The type of configuration object to retrieve.", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "id", + "description": "The unique identifier of the object to retrieve.", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "{configClass|objectType|id} not found" + } + ] + }, + { + "httpMethod": "PUT", + "summary": "Create or update a dynamic configuration object.", + "nickname": "updateObject", + "responseClass": "List[ConfigTuple]", + "parameters": [ + { + "name": "configClass", + "description": "The configuration class containing dynamic configuration objects.", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "objectType", + "description": "The type of configuration object to create or update.", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "id", + "description": "The unique identifier of the object to create or update.", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "fields", + "description": "The body object should have a value that is a list of ConfigTuples, which provide the fields to update. Ex. [ { \"attribute\": \"directmedia\", \"value\": \"false\" } ]", + "paramType": "body", + "required": false, + "dataType": "containers", + "allowMultiple": false + } + ], + "errorResponses": [ + { + "code": 400, + "reason": "Bad request body" + }, + { + "code": 403, + "reason": "Could not create or update object" + }, + { + "code": 404, + "reason": "{configClass|objectType} not found" + } + ] + }, + { + "httpMethod": "DELETE", + "summary": "Delete a dynamic configuration object.", + "nickname": "deleteObject", + "responseClass": "void", + "parameters": [ + { + "name": "configClass", + "description": "The configuration class containing dynamic configuration objects.", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "objectType", + "description": "The type of configuration object to delete.", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "id", + "description": "The unique identifier of the object to delete.", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 403, + "reason": "Could not delete object" + }, + { + "code": 404, + "reason": "{configClass|objectType|id} not found" + } + ] + } + ] + }, + { + "path": "/asterisk/info", + "description": "Asterisk system information (similar to core show settings)", + "operations": [ + { + "httpMethod": "GET", + "summary": "Gets Asterisk system information.", + "nickname": "getInfo", + "responseClass": "AsteriskInfo", + "parameters": [ + { + "name": "only", + "description": "Filter information returned", + "paramType": "query", + "required": false, + "allowMultiple": true, + "dataType": "string", + "allowableValues": { + "valueType": "LIST", + "values": [ + "build", + "system", + "config", + "status" + ] + } + } + ] + } + ] + }, + { + "path": "/asterisk/ping", + "description": "Asterisk ping", + "operations": [ + { + "httpMethod": "GET", + "summary": "Response pong message.", + "nickname": "ping", + "responseClass": "AsteriskPing" + } + ] + }, + { + "path": "/asterisk/modules", + "description": "Asterisk modules", + "operations": [ + { + "httpMethod": "GET", + "summary": "List Asterisk modules.", + "nickname": "listModules", + "responseClass": "List[Module]" + } + ] + }, + { + "path": "/asterisk/modules/{moduleName}", + "description": "Asterisk module", + "operations": [ + { + "httpMethod": "GET", + "summary": "Get Asterisk module information.", + "nickname": "getModule", + "responseClass": "Module", + "parameters": [ + { + "name": "moduleName", + "description": "Module's name", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Module could not be found in running modules." + }, + { + "code": 409, + "reason": "Module information could not be retrieved." + } + ] + }, + { + "httpMethod": "POST", + "summary": "Load an Asterisk module.", + "nickname": "loadModule", + "responseClass": "void", + "parameters": [ + { + "name": "moduleName", + "description": "Module's name", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 409, + "reason": "Module could not be loaded." + } + ] + }, + { + "httpMethod": "DELETE", + "summary": "Unload an Asterisk module.", + "nickname": "unloadModule", + "responseClass": "void", + "parameters": [ + { + "name": "moduleName", + "description": "Module's name", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Module not found in running modules." + }, + { + "code": 409, + "reason": "Module could not be unloaded." + } + ] + }, + { + "httpMethod": "PUT", + "summary": "Reload an Asterisk module.", + "nickname": "reloadModule", + "responseClass": "void", + "parameters": [ + { + "name": "moduleName", + "description": "Module's name", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Module not found in running modules." + }, + { + "code": 409, + "reason": "Module could not be reloaded." + } + ] + } + ] + }, + { + "path": "/asterisk/logging", + "description": "Asterisk log channels", + "operations": [ + { + "httpMethod": "GET", + "summary": "Gets Asterisk log channel information.", + "nickname": "listLogChannels", + "responseClass": "List[LogChannel]" + } + ] + }, + { + "path": "/asterisk/logging/{logChannelName}", + "description": "Asterisk log channel", + "operations": [ + { + "httpMethod": "POST", + "summary": "Adds a log channel.", + "nickname": "addLog", + "responseClass": "void", + "parameters": [ + { + "name": "logChannelName", + "description": "The log channel to add", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "configuration", + "description": "levels of the log channel", + "paramType": "query", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 400, + "reason": "Bad request body" + }, + { + "code": 409, + "reason": "Log channel could not be created." + } + ] + }, + { + "httpMethod": "DELETE", + "summary": "Deletes a log channel.", + "nickname": "deleteLog", + "responseClass": "void", + "parameters": [ + { + "name": "logChannelName", + "description": "Log channels name", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Log channel does not exist." + } + ] + } + ] + }, + { + "path": "/asterisk/logging/{logChannelName}/rotate", + "description": "Asterisk log channel", + "operations": [ + { + "httpMethod": "PUT", + "summary": "Rotates a log channel.", + "nickname": "rotateLog", + "responseClass": "void", + "parameters": [ + { + "name": "logChannelName", + "description": "Log channel's name", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Log channel does not exist." + } + ] + } + ] + }, + { + "path": "/asterisk/variable", + "description": "Global variables", + "operations": [ + { + "httpMethod": "GET", + "summary": "Get the value of a global variable.", + "nickname": "getGlobalVar", + "responseClass": "Variable", + "parameters": [ + { + "name": "variable", + "description": "The variable to get", + "paramType": "query", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 400, + "reason": "Missing variable parameter." + } + ] + }, + { + "httpMethod": "POST", + "summary": "Set the value of a global variable.", + "nickname": "setGlobalVar", + "responseClass": "void", + "parameters": [ + { + "name": "variable", + "description": "The variable to set", + "paramType": "query", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "value", + "description": "The value to set the variable to", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 400, + "reason": "Missing variable parameter." + } + ] + } + ] + } + ], + "models": { + "BuildInfo": { + "id": "BuildInfo", + "description": "Info about how Asterisk was built", + "properties": { + "os": { + "required": true, + "type": "string", + "description": "OS Asterisk was built on." + }, + "kernel": { + "required": true, + "type": "string", + "description": "Kernel version Asterisk was built on." + }, + "options": { + "required": true, + "type": "string", + "description": "Compile time options, or empty string if default." + }, + "machine": { + "required": true, + "type": "string", + "description": "Machine architecture (x86_64, i686, ppc, etc.)" + }, + "date": { + "required": true, + "type": "string", + "description": "Date and time when Asterisk was built." + }, + "user": { + "required": true, + "type": "string", + "description": "Username that build Asterisk" + } + } + }, + "SystemInfo": { + "id": "SystemInfo", + "description": "Info about Asterisk", + "properties": { + "version": { + "required": true, + "type": "string", + "description": "Asterisk version." + }, + "entity_id": { + "required": true, + "type": "string", + "description": "" + } + } + }, + "SetId": { + "id": "SetId", + "description": "Effective user/group id", + "properties": { + "user": { + "required": true, + "type": "string", + "description": "Effective user id." + }, + "group": { + "required": true, + "type": "string", + "description": "Effective group id." + } + } + }, + "ConfigInfo": { + "id": "ConfigInfo", + "description": "Info about Asterisk configuration", + "properties": { + "name": { + "required": true, + "type": "string", + "description": "Asterisk system name." + }, + "default_language": { + "required": true, + "type": "string", + "description": "Default language for media playback." + }, + "max_channels": { + "required": false, + "type": "int", + "description": "Maximum number of simultaneous channels." + }, + "max_open_files": { + "required": false, + "type": "int", + "description": "Maximum number of open file handles (files, sockets)." + }, + "max_load": { + "required": false, + "type": "double", + "description": "Maximum load avg on system." + }, + "setid": { + "required": true, + "type": "SetId", + "description": "Effective user/group id for running Asterisk." + } + } + }, + "StatusInfo": { + "id": "StatusInfo", + "description": "Info about Asterisk status", + "properties": { + "startup_time": { + "required": true, + "type": "Date", + "description": "Time when Asterisk was started." + }, + "last_reload_time": { + "required": true, + "type": "Date", + "description": "Time when Asterisk was last reloaded." + } + } + }, + "AsteriskInfo": { + "id": "AsteriskInfo", + "description": "Asterisk system information", + "properties": { + "build": { + "required": false, + "type": "BuildInfo", + "description": "Info about how Asterisk was built" + }, + "system": { + "required": false, + "type": "SystemInfo", + "description": "Info about the system running Asterisk" + }, + "config": { + "required": false, + "type": "ConfigInfo", + "description": "Info about Asterisk configuration" + }, + "status": { + "required": false, + "type": "StatusInfo", + "description": "Info about Asterisk status" + } + } + }, + "AsteriskPing": { + "id": "AsteriskPing", + "description": "Asterisk ping information", + "properties": { + "asterisk_id": { + "required": true, + "type": "string", + "description": "Asterisk id info" + }, + "ping": { + "required": true, + "type": "string", + "description": "Always string value is pong" + }, + "timestamp": { + "required": true, + "type": "string", + "description": "The timestamp string of request received time" + } + } + }, + "Module": { + "id": "Module", + "description": "Details of an Asterisk module", + "properties": { + "name": { + "type": "string", + "description": "The name of this module", + "required": true + }, + "description": { + "type": "string", + "description": "The description of this module", + "required": true + }, + "use_count": { + "type": "int", + "description": "The number of times this module is being used", + "required": true + }, + "status": { + "type": "string", + "description": "The running status of this module", + "required": true + }, + "support_level": { + "type": "string", + "description": "The support state of this module", + "required": true + } + } + }, + "LogChannel": { + "id": "LogChannel", + "description": "Details of an Asterisk log channel", + "properties": { + "channel": { + "type": "string", + "description": "The log channel path", + "required": true + }, + "type": { + "type": "string", + "description": "Types of logs for the log channel", + "required": true + }, + "status": { + "type": "string", + "description": "Whether or not a log type is enabled", + "required": true + }, + "configuration": { + "type": "string", + "description": "The various log levels", + "required": true + } + } + }, + "Variable": { + "id": "Variable", + "description": "The value of a channel variable", + "properties": { + "value": { + "required": true, + "type": "string", + "description": "The value of the variable requested" + } + } + }, + "ConfigTuple": { + "id": "ConfigTuple", + "description": "A key/value pair that makes up part of a configuration object.", + "properties": { + "attribute": { + "required": true, + "type": "string", + "description": "A configuration object attribute." + }, + "value": { + "required": true, + "type": "string", + "description": "The value for the attribute." + } + } + } + } +} diff --git a/codegen/src/main/resources/codegen-data/ari_6_0_0/bridges.json b/codegen/src/main/resources/codegen-data/ari_6_0_0/bridges.json new file mode 100644 index 00000000..22743c3b --- /dev/null +++ b/codegen/src/main/resources/codegen-data/ari_6_0_0/bridges.json @@ -0,0 +1,765 @@ +{ + "_copyright": "Copyright (C) 2012 - 2013, Digium, Inc.", + "_author": "David M. Lee, II ", + "_svn_revision": "$Revision$", + "apiVersion": "2.0.0", + "swaggerVersion": "1.1", + "basePath": "http://localhost:8088/ari", + "resourcePath": "/api-docs/bridges.{format}", + "requiresModules": [ + "res_stasis_recording", + "res_stasis_playback" + ], + "apis": [ + { + "path": "/bridges", + "description": "Active bridges", + "operations": [ + { + "httpMethod": "GET", + "summary": "List all active bridges in Asterisk.", + "nickname": "list", + "responseClass": "List[Bridge]" + }, + { + "httpMethod": "POST", + "summary": "Create a new bridge.", + "notes": "This bridge persists until it has been shut down, or Asterisk has been shut down.", + "nickname": "create", + "responseClass": "Bridge", + "parameters": [ + { + "name": "type", + "description": "Comma separated list of bridge type attributes (mixing, holding, dtmf_events, proxy_media, video_sfu).", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "bridgeId", + "description": "Unique ID to give to the bridge being created.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "name", + "description": "Name to give to the bridge being created.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + } + ] + } + ] + }, + { + "path": "/bridges/{bridgeId}", + "description": "Individual bridge", + "operations": [ + { + "httpMethod": "POST", + "summary": "Create a new bridge or updates an existing one.", + "notes": "This bridge persists until it has been shut down, or Asterisk has been shut down.", + "nickname": "createWithId", + "responseClass": "Bridge", + "parameters": [ + { + "name": "type", + "description": "Comma separated list of bridge type attributes (mixing, holding, dtmf_events, proxy_media, video_sfu) to set.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "bridgeId", + "description": "Unique ID to give to the bridge being created.", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "name", + "description": "Set the name of the bridge.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + } + ] + }, + { + "httpMethod": "GET", + "summary": "Get bridge details.", + "nickname": "get", + "responseClass": "Bridge", + "parameters": [ + { + "name": "bridgeId", + "description": "Bridge's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Bridge not found" + } + ] + }, + { + "httpMethod": "DELETE", + "summary": "Shut down a bridge.", + "notes": "If any channels are in this bridge, they will be removed and resume whatever they were doing beforehand.", + "nickname": "destroy", + "responseClass": "void", + "parameters": [ + { + "name": "bridgeId", + "description": "Bridge's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Bridge not found" + } + ] + } + ] + }, + { + "path": "/bridges/{bridgeId}/addChannel", + "description": "Add a channel to a bridge", + "operations": [ + { + "httpMethod": "POST", + "summary": "Add a channel to a bridge.", + "nickname": "addChannel", + "responseClass": "void", + "parameters": [ + { + "name": "bridgeId", + "description": "Bridge's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "channel", + "description": "Ids of channels to add to bridge", + "paramType": "query", + "required": true, + "allowMultiple": true, + "dataType": "string" + }, + { + "name": "role", + "description": "Channel's role in the bridge", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "absorbDTMF", + "description": "Absorb DTMF coming from this channel, preventing it to pass through to the bridge", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "boolean", + "defaultValue": false + }, + { + "name": "mute", + "description": "Mute audio from this channel, preventing it to pass through to the bridge", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "boolean", + "defaultValue": false + } + ], + "errorResponses": [ + { + "code": 400, + "reason": "Channel not found" + }, + { + "code": 404, + "reason": "Bridge not found" + }, + { + "code": 409, + "reason": "Bridge not in Stasis application; Channel currently recording" + }, + { + "code": 422, + "reason": "Channel not in Stasis application" + } + ] + } + ] + }, + { + "path": "/bridges/{bridgeId}/removeChannel", + "description": "Remove a channel from a bridge", + "operations": [ + { + "httpMethod": "POST", + "summary": "Remove a channel from a bridge.", + "nickname": "removeChannel", + "responseClass": "void", + "parameters": [ + { + "name": "bridgeId", + "description": "Bridge's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "channel", + "description": "Ids of channels to remove from bridge", + "paramType": "query", + "required": true, + "allowMultiple": true, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 400, + "reason": "Channel not found" + }, + { + "code": 404, + "reason": "Bridge not found" + }, + { + "code": 409, + "reason": "Bridge not in Stasis application" + }, + { + "code": 422, + "reason": "Channel not in this bridge" + } + ] + } + ] + }, + { + "path": "/bridges/{bridgeId}/videoSource/{channelId}", + "description": "Set a channel as the video source in a multi-party bridge", + "operations": [ + { + "httpMethod": "POST", + "summary": "Set a channel as the video source in a multi-party mixing bridge. This operation has no effect on bridges with two or fewer participants.", + "nickname": "setVideoSource", + "responseClass": "void", + "parameters": [ + { + "name": "bridgeId", + "description": "Bridge's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "channelId", + "description": "Channel's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Bridge or Channel not found" + }, + { + "code": 409, + "reason": "Channel not in Stasis application" + }, + { + "code": 422, + "reason": "Channel not in this Bridge" + } + ] + } + ] + }, + { + "path": "/bridges/{bridgeId}/videoSource", + "description": "Removes any explicit video source", + "operations": [ + { + "httpMethod": "DELETE", + "summary": "Removes any explicit video source in a multi-party mixing bridge. This operation has no effect on bridges with two or fewer participants. When no explicit video source is set, talk detection will be used to determine the active video stream.", + "nickname": "clearVideoSource", + "responseClass": "void", + "parameters": [ + { + "name": "bridgeId", + "description": "Bridge's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Bridge not found" + } + ] + } + ] + }, + { + "path": "/bridges/{bridgeId}/moh", + "description": "Play music on hold to a bridge", + "operations": [ + { + "httpMethod": "POST", + "summary": "Play music on hold to a bridge or change the MOH class that is playing.", + "nickname": "startMoh", + "responseClass": "void", + "parameters": [ + { + "name": "bridgeId", + "description": "Bridge's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "mohClass", + "description": "Channel's id", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Bridge not found" + }, + { + "code": 409, + "reason": "Bridge not in Stasis application" + } + ] + }, + { + "httpMethod": "DELETE", + "summary": "Stop playing music on hold to a bridge.", + "notes": "This will only stop music on hold being played via POST bridges/{bridgeId}/moh.", + "nickname": "stopMoh", + "responseClass": "void", + "parameters": [ + { + "name": "bridgeId", + "description": "Bridge's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Bridge not found" + }, + { + "code": 409, + "reason": "Bridge not in Stasis application" + } + ] + } + ] + }, + { + "path": "/bridges/{bridgeId}/play", + "description": "Play media to the participants of a bridge", + "operations": [ + { + "httpMethod": "POST", + "summary": "Start playback of media on a bridge.", + "notes": "The media URI may be any of a number of URI's. Currently sound:, recording:, number:, digits:, characters:, and tone: URI's are supported. This operation creates a playback resource that can be used to control the playback of media (pause, rewind, fast forward, etc.)", + "nickname": "play", + "responseClass": "Playback", + "parameters": [ + { + "name": "bridgeId", + "description": "Bridge's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "media", + "description": "Media URIs to play.", + "paramType": "query", + "required": true, + "allowMultiple": true, + "dataType": "string" + }, + { + "name": "lang", + "description": "For sounds, selects language for sound.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "offsetms", + "description": "Number of milliseconds to skip before playing. Only applies to the first URI if multiple media URIs are specified.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "int", + "defaultValue": 0, + "allowableValues": { + "valueType": "RANGE", + "min": 0 + } + + }, + { + "name": "skipms", + "description": "Number of milliseconds to skip for forward/reverse operations.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "int", + "defaultValue": 3000, + "allowableValues": { + "valueType": "RANGE", + "min": 0 + } + }, + { + "name": "playbackId", + "description": "Playback Id.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Bridge not found" + }, + { + "code": 409, + "reason": "Bridge not in a Stasis application" + } + ] + } + ] + }, + { + "path": "/bridges/{bridgeId}/play/{playbackId}", + "description": "Play media to a bridge", + "operations": [ + { + "httpMethod": "POST", + "summary": "Start playback of media on a bridge.", + "notes": "The media URI may be any of a number of URI's. Currently sound:, recording:, number:, digits:, characters:, and tone: URI's are supported. This operation creates a playback resource that can be used to control the playback of media (pause, rewind, fast forward, etc.)", + "nickname": "playWithId", + "responseClass": "Playback", + "parameters": [ + { + "name": "bridgeId", + "description": "Bridge's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "playbackId", + "description": "Playback ID.", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "media", + "description": "Media URIs to play.", + "paramType": "query", + "required": true, + "allowMultiple": true, + "dataType": "string" + }, + { + "name": "lang", + "description": "For sounds, selects language for sound.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "offsetms", + "description": "Number of milliseconds to skip before playing. Only applies to the first URI if multiple media URIs are specified.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "int", + "defaultValue": 0, + "allowableValues": { + "valueType": "RANGE", + "min": 0 + } + }, + { + "name": "skipms", + "description": "Number of milliseconds to skip for forward/reverse operations.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "int", + "defaultValue": 3000, + "allowableValues": { + "valueType": "RANGE", + "min": 0 + } + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Bridge not found" + }, + { + "code": 409, + "reason": "Bridge not in a Stasis application" + } + ] + + } + ] + }, + { + "path": "/bridges/{bridgeId}/record", + "description": "Record audio on a bridge", + "operations": [ + { + "httpMethod": "POST", + "summary": "Start a recording.", + "notes": "This records the mixed audio from all channels participating in this bridge.", + "nickname": "record", + "responseClass": "LiveRecording", + "parameters": [ + { + "name": "bridgeId", + "description": "Bridge's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "name", + "description": "Recording's filename", + "paramType": "query", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "format", + "description": "Format to encode audio in", + "paramType": "query", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "maxDurationSeconds", + "description": "Maximum duration of the recording, in seconds. 0 for no limit.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "int", + "defaultValue": 0, + "allowableValues": { + "valueType": "RANGE", + "min": 0 + } + }, + { + "name": "maxSilenceSeconds", + "description": "Maximum duration of silence, in seconds. 0 for no limit.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "int", + "defaultValue": 0, + "allowableValues": { + "valueType": "RANGE", + "min": 0 + } + }, + { + "name": "ifExists", + "description": "Action to take if a recording with the same name already exists.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string", + "defaultValue": "fail", + "allowableValues": { + "valueType": "LIST", + "values": [ + "fail", + "overwrite", + "append" + ] + } + }, + { + "name": "beep", + "description": "Play beep when recording begins", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "boolean", + "defaultValue": false + }, + { + "name": "terminateOn", + "description": "DTMF input to terminate recording.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string", + "defaultValue": "none", + "allowableValues": { + "valueType": "LIST", + "values": [ + "none", + "any", + "*", + "#" + ] + } + } + ], + "errorResponses": [ + { + "code": 400, + "reason": "Invalid parameters" + }, + { + "code": 404, + "reason": "Bridge not found" + }, + { + "code": 409, + "reason": "Bridge is not in a Stasis application; A recording with the same name already exists on the system and can not be overwritten because it is in progress or ifExists=fail" + }, + { + "code": 422, + "reason": "The format specified is unknown on this system" + } + ] + } + ] + } + ], + "models": { + "Bridge": { + "id": "Bridge", + "description": "The merging of media from one or more channels.\n\nEveryone on the bridge receives the same audio.", + "properties": { + "id": { + "type": "string", + "description": "Unique identifier for this bridge", + "required": true + }, + "technology": { + "type": "string", + "description": "Name of the current bridging technology", + "required": true + }, + "bridge_type": { + "type": "string", + "description": "Type of bridge technology", + "required": true, + "allowableValues": { + "valueType": "LIST", + "values": [ + "mixing", + "holding" + ] + } + }, + "bridge_class": { + "type": "string", + "description": "Bridging class", + "required": true + }, + "creator": { + "type": "string", + "description": "Entity that created the bridge", + "required": true + }, + "name": { + "type": "string", + "description": "Name the creator gave the bridge", + "required": true + }, + "channels": { + "type": "List[string]", + "description": "Ids of channels participating in this bridge", + "required": true + }, + "video_mode": { + "type": "string", + "description": "The video mode the bridge is using. One of 'none', 'talker', or 'single'.", + "required": false + }, + "video_source_id": { + "type": "string", + "description": "The ID of the channel that is the source of video in this bridge, if one exists.", + "required": false + }, + "creationtime": { + "required": true, + "type": "Date", + "description": "Timestamp when bridge was created" + } + } + } + } +} diff --git a/codegen/src/main/resources/codegen-data/ari_6_0_0/channels.json b/codegen/src/main/resources/codegen-data/ari_6_0_0/channels.json new file mode 100644 index 00000000..77412695 --- /dev/null +++ b/codegen/src/main/resources/codegen-data/ari_6_0_0/channels.json @@ -0,0 +1,2046 @@ +{ + "_copyright": "Copyright (C) 2012 - 2013, Digium, Inc.", + "_author": "David M. Lee, II ", + "_svn_revision": "$Revision$", + "apiVersion": "2.0.0", + "swaggerVersion": "1.1", + "basePath": "http://localhost:8088/ari", + "resourcePath": "/api-docs/channels.{format}", + "requiresModules": [ + "res_stasis_answer", + "res_stasis_playback", + "res_stasis_recording", + "res_stasis_snoop" + ], + "apis": [ + { + "path": "/channels", + "description": "Active channels", + "operations": [ + { + "httpMethod": "GET", + "summary": "List all active channels in Asterisk.", + "nickname": "list", + "responseClass": "List[Channel]" + }, + { + "httpMethod": "POST", + "summary": "Create a new channel (originate).", + "notes": "The new channel is created immediately and a snapshot of it returned. If a Stasis application is provided it will be automatically subscribed to the originated channel for further events and updates.", + "nickname": "originate", + "responseClass": "Channel", + "parameters": [ + { + "name": "endpoint", + "description": "Endpoint to call.", + "paramType": "query", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "extension", + "description": "The extension to dial after the endpoint answers. Mutually exclusive with 'app'.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "context", + "description": "The context to dial after the endpoint answers. If omitted, uses 'default'. Mutually exclusive with 'app'.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "priority", + "description": "The priority to dial after the endpoint answers. If omitted, uses 1. Mutually exclusive with 'app'.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "long" + }, + { + "name": "label", + "description": "The label to dial after the endpoint answers. Will supersede 'priority' if provided. Mutually exclusive with 'app'.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "app", + "description": "The application that is subscribed to the originated channel. When the channel is answered, it will be passed to this Stasis application. Mutually exclusive with 'context', 'extension', 'priority', and 'label'.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "appArgs", + "description": "The application arguments to pass to the Stasis application provided by 'app'. Mutually exclusive with 'context', 'extension', 'priority', and 'label'.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "callerId", + "description": "CallerID to use when dialing the endpoint or extension.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "timeout", + "description": "Timeout (in seconds) before giving up dialing, or -1 for no timeout.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "int", + "defaultValue": 30 + }, + { + "name": "variables", + "description": "The \"variables\" key in the body object holds variable key/value pairs to set on the channel on creation. Other keys in the body object are interpreted as query parameters. Ex. { \"endpoint\": \"SIP/Alice\", \"variables\": { \"CALLERID(name)\": \"Alice\" } }", + "paramType": "body", + "required": false, + "dataType": "containers", + "allowMultiple": false + }, + { + "name": "channelId", + "description": "The unique id to assign the channel on creation.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "otherChannelId", + "description": "The unique id to assign the second channel when using local channels.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "originator", + "description": "The unique id of the channel which is originating this one.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "formats", + "description": "The format name capability list to use if originator is not specified. Ex. \"ulaw,slin16\". Format names can be found with \"core show codecs\".", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 400, + "reason": "Invalid parameters for originating a channel." + }, + { + "code": 409, + "reason": "Channel with given unique ID already exists." + } + ] + } + ] + }, + { + "path": "/channels/create", + "description": "Create a channel and place it in a Stasis app, but do not dial the channel yet.", + "operations": [ + { + "httpMethod": "POST", + "summary": "Create channel.", + "nickname": "create", + "responseClass": "Channel", + "parameters": [ + { + "name": "endpoint", + "description": "Endpoint for channel communication", + "paramType": "query", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "app", + "description": "Stasis Application to place channel into", + "paramType": "query", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "appArgs", + "description": "The application arguments to pass to the Stasis application provided by 'app'. Mutually exclusive with 'context', 'extension', 'priority', and 'label'.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "channelId", + "description": "The unique id to assign the channel on creation.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "otherChannelId", + "description": "The unique id to assign the second channel when using local channels.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "originator", + "description": "Unique ID of the calling channel", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "formats", + "description": "The format name capability list to use if originator is not specified. Ex. \"ulaw,slin16\". Format names can be found with \"core show codecs\".", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 409, + "reason": "Channel with given unique ID already exists." + } + ] + } + ] + }, + { + "path": "/channels/{channelId}", + "description": "Active channel", + "operations": [ + { + "httpMethod": "GET", + "summary": "Channel details.", + "nickname": "get", + "responseClass": "Channel", + "parameters": [ + { + "name": "channelId", + "description": "Channel's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Channel not found" + } + ] + }, + { + "httpMethod": "POST", + "summary": "Create a new channel (originate with id).", + "notes": "The new channel is created immediately and a snapshot of it returned. If a Stasis application is provided it will be automatically subscribed to the originated channel for further events and updates.", + "nickname": "originateWithId", + "responseClass": "Channel", + "parameters": [ + { + "name": "channelId", + "description": "The unique id to assign the channel on creation.", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "endpoint", + "description": "Endpoint to call.", + "paramType": "query", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "extension", + "description": "The extension to dial after the endpoint answers. Mutually exclusive with 'app'.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "context", + "description": "The context to dial after the endpoint answers. If omitted, uses 'default'. Mutually exclusive with 'app'.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "priority", + "description": "The priority to dial after the endpoint answers. If omitted, uses 1. Mutually exclusive with 'app'.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "long" + }, + { + "name": "label", + "description": "The label to dial after the endpoint answers. Will supersede 'priority' if provided. Mutually exclusive with 'app'.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "app", + "description": "The application that is subscribed to the originated channel. When the channel is answered, it will be passed to this Stasis application. Mutually exclusive with 'context', 'extension', 'priority', and 'label'.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "appArgs", + "description": "The application arguments to pass to the Stasis application provided by 'app'. Mutually exclusive with 'context', 'extension', 'priority', and 'label'.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "callerId", + "description": "CallerID to use when dialing the endpoint or extension.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "timeout", + "description": "Timeout (in seconds) before giving up dialing, or -1 for no timeout.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "int", + "defaultValue": 30 + }, + { + "name": "variables", + "description": "The \"variables\" key in the body object holds variable key/value pairs to set on the channel on creation. Other keys in the body object are interpreted as query parameters. Ex. { \"endpoint\": \"SIP/Alice\", \"variables\": { \"CALLERID(name)\": \"Alice\" } }", + "paramType": "body", + "required": false, + "dataType": "containers", + "allowMultiple": false + }, + { + "name": "otherChannelId", + "description": "The unique id to assign the second channel when using local channels.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "originator", + "description": "The unique id of the channel which is originating this one.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "formats", + "description": "The format name capability list to use if originator is not specified. Ex. \"ulaw,slin16\". Format names can be found with \"core show codecs\".", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 400, + "reason": "Invalid parameters for originating a channel." + }, + { + "code": 409, + "reason": "Channel with given unique ID already exists." + } + ] + + }, + { + "httpMethod": "DELETE", + "summary": "Delete (i.e. hangup) a channel.", + "nickname": "hangup", + "responseClass": "void", + "parameters": [ + { + "name": "channelId", + "description": "Channel's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "reason_code", + "description": "The reason code for hanging up the channel for detail use. Mutually exclusive with 'reason'. See detail hangup codes at here. https://wiki.asterisk.org/wiki/display/AST/Hangup+Cause+Mappings", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "reason", + "description": "Reason for hanging up the channel for simple use. Mutually exclusive with 'reason_code'.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string", + "allowableValues": { + "valueType": "LIST", + "values": [ + "normal", + "busy", + "congestion", + "no_answer", + "timeout", + "rejected", + "unallocated", + "normal_unspecified", + "number_incomplete", + "codec_mismatch", + "interworking", + "failure", + "answered_elsewhere" + ] + } + } + ], + "errorResponses": [ + { + "code": 400, + "reason": "Invalid reason for hangup provided" + }, + { + "code": 404, + "reason": "Channel not found" + } + ] + } + ] + }, + { + "path": "/channels/{channelId}/continue", + "description": "Exit application; continue execution in the dialplan", + "operations": [ + { + "httpMethod": "POST", + "summary": "Exit application; continue execution in the dialplan.", + "nickname": "continueInDialplan", + "responseClass": "void", + "parameters": [ + { + "name": "channelId", + "description": "Channel's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "context", + "description": "The context to continue to.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "extension", + "description": "The extension to continue to.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "priority", + "description": "The priority to continue to.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "int" + }, + { + "name": "label", + "description": "The label to continue to - will supersede 'priority' if both are provided.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Channel not found" + }, + { + "code": 409, + "reason": "Channel not in a Stasis application" + }, + { + "code": 412, + "reason": "Channel in invalid state" + } + ] + } + ] + }, + { + "path": "/channels/{channelId}/move", + "description": "Move the channel from one Stasis application to another.", + "operations": [ + { + "httpMethod": "POST", + "summary": "Move the channel from one Stasis application to another.", + "nickname": "move", + "responseClass": "void", + "parameters": [ + { + "name": "channelId", + "description": "Channel's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "app", + "description": "The channel will be passed to this Stasis application.", + "paramType": "query", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "appArgs", + "description": "The application arguments to pass to the Stasis application provided by 'app'.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": "404", + "reason": "Channel not found" + }, + { + "code": "409", + "reason": "Channel not in a Stasis application" + } + ] + } + ] + }, + { + "path": "/channels/{channelId}/redirect", + "description": "Inform the channel that it should redirect itself to a different location. Note that this will almost certainly cause the channel to exit the application.", + "operations": [ + { + "httpMethod": "POST", + "summary": "Redirect the channel to a different location.", + "nickname": "redirect", + "responseClass": "void", + "parameters": [ + { + "name": "channelId", + "description": "Channel's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "endpoint", + "description": "The endpoint to redirect the channel to", + "paramType": "query", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 400, + "reason": "Endpoint parameter not provided" + }, + { + "code": 404, + "reason": "Channel or endpoint not found" + }, + { + "code": 409, + "reason": "Channel not in a Stasis application" + }, + { + "code": 422, + "reason": "Endpoint is not the same type as the channel" + }, + { + "code": 412, + "reason": "Channel in invalid state" + } + ] + } + ] + }, + { + "path": "/channels/{channelId}/answer", + "description": "Answer a channel", + "operations": [ + { + "httpMethod": "POST", + "summary": "Answer a channel.", + "nickname": "answer", + "responseClass": "void", + "parameters": [ + { + "name": "channelId", + "description": "Channel's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Channel not found" + }, + { + "code": 409, + "reason": "Channel not in a Stasis application" + }, + { + "code": 412, + "reason": "Channel in invalid state" + } + ] + } + ] + }, + { + "path": "/channels/{channelId}/ring", + "description": "Send a ringing indication to a channel", + "operations": [ + { + "httpMethod": "POST", + "summary": "Indicate ringing to a channel.", + "nickname": "ring", + "responseClass": "void", + "parameters": [ + { + "name": "channelId", + "description": "Channel's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Channel not found" + }, + { + "code": 409, + "reason": "Channel not in a Stasis application" + }, + { + "code": 412, + "reason": "Channel in invalid state" + } + ] + }, + { + "httpMethod": "DELETE", + "summary": "Stop ringing indication on a channel if locally generated.", + "nickname": "ringStop", + "responseClass": "void", + "parameters": [ + { + "name": "channelId", + "description": "Channel's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Channel not found" + }, + { + "code": 409, + "reason": "Channel not in a Stasis application" + }, + { + "code": 412, + "reason": "Channel in invalid state" + } + ] + } + ] + }, + { + "path": "/channels/{channelId}/dtmf", + "description": "Send DTMF to a channel", + "operations": [ + { + "httpMethod": "POST", + "summary": "Send provided DTMF to a given channel.", + "nickname": "sendDTMF", + "responseClass": "void", + "parameters": [ + { + "name": "channelId", + "description": "Channel's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "dtmf", + "description": "DTMF To send.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "before", + "description": "Amount of time to wait before DTMF digits (specified in milliseconds) start.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "int", + "defaultValue": 0 + }, + { + "name": "between", + "description": "Amount of time in between DTMF digits (specified in milliseconds).", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "int", + "defaultValue": 100 + }, + { + "name": "duration", + "description": "Length of each DTMF digit (specified in milliseconds).", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "int", + "defaultValue": 100 + }, + { + "name": "after", + "description": "Amount of time to wait after DTMF digits (specified in milliseconds) end.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "int", + "defaultValue": 0 + } + ], + "errorResponses": [ + { + "code": 400, + "reason": "DTMF is required" + }, + { + "code": 404, + "reason": "Channel not found" + }, + { + "code": 409, + "reason": "Channel not in a Stasis application" + }, + { + "code": 412, + "reason": "Channel in invalid state" + } + ] + } + ] + }, + { + "path": "/channels/{channelId}/mute", + "description": "Mute a channel", + "operations": [ + { + "httpMethod": "POST", + "summary": "Mute a channel.", + "nickname": "mute", + "responseClass": "void", + "parameters": [ + { + "name": "channelId", + "description": "Channel's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "direction", + "description": "Direction in which to mute audio", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string", + "defaultValue": "both", + "allowableValues": { + "valueType": "LIST", + "values": [ + "both", + "in", + "out" + ] + } + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Channel not found" + }, + { + "code": 409, + "reason": "Channel not in a Stasis application" + }, + { + "code": 412, + "reason": "Channel in invalid state" + } + ] + }, + { + "httpMethod": "DELETE", + "summary": "Unmute a channel.", + "nickname": "unmute", + "responseClass": "void", + "parameters": [ + { + "name": "channelId", + "description": "Channel's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "direction", + "description": "Direction in which to unmute audio", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string", + "defaultValue": "both", + "allowableValues": { + "valueType": "LIST", + "values": [ + "both", + "in", + "out" + ] + } + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Channel not found" + }, + { + "code": 409, + "reason": "Channel not in a Stasis application" + }, + { + "code": 412, + "reason": "Channel in invalid state" + } + ] + } + ] + }, + { + "path": "/channels/{channelId}/hold", + "description": "Put a channel on hold", + "operations": [ + { + "httpMethod": "POST", + "summary": "Hold a channel.", + "nickname": "hold", + "responseClass": "void", + "parameters": [ + { + "name": "channelId", + "description": "Channel's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Channel not found" + }, + { + "code": 409, + "reason": "Channel not in a Stasis application" + }, + { + "code": 412, + "reason": "Channel in invalid state" + } + ] + }, + { + "httpMethod": "DELETE", + "summary": "Remove a channel from hold.", + "nickname": "unhold", + "responseClass": "void", + "parameters": [ + { + "name": "channelId", + "description": "Channel's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Channel not found" + }, + { + "code": 409, + "reason": "Channel not in a Stasis application" + }, + { + "code": 412, + "reason": "Channel in invalid state" + } + ] + } + ] + }, + { + "path": "/channels/{channelId}/moh", + "description": "Play music on hold to a channel", + "operations": [ + { + "httpMethod": "POST", + "summary": "Play music on hold to a channel.", + "notes": "Using media operations such as /play on a channel playing MOH in this manner will suspend MOH without resuming automatically. If continuing music on hold is desired, the stasis application must reinitiate music on hold.", + "nickname": "startMoh", + "responseClass": "void", + "parameters": [ + { + "name": "channelId", + "description": "Channel's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "mohClass", + "description": "Music on hold class to use", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Channel not found" + }, + { + "code": 409, + "reason": "Channel not in a Stasis application" + }, + { + "code": 412, + "reason": "Channel in invalid state" + } + ] + }, + { + "httpMethod": "DELETE", + "summary": "Stop playing music on hold to a channel.", + "nickname": "stopMoh", + "responseClass": "void", + "parameters": [ + { + "name": "channelId", + "description": "Channel's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Channel not found" + }, + { + "code": 409, + "reason": "Channel not in a Stasis application" + }, + { + "code": 412, + "reason": "Channel in invalid state" + } + ] + } + ] + }, + { + "path": "/channels/{channelId}/silence", + "description": "Play silence to a channel", + "operations": [ + { + "httpMethod": "POST", + "summary": "Play silence to a channel.", + "notes": "Using media operations such as /play on a channel playing silence in this manner will suspend silence without resuming automatically.", + "nickname": "startSilence", + "responseClass": "void", + "parameters": [ + { + "name": "channelId", + "description": "Channel's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Channel not found" + }, + { + "code": 409, + "reason": "Channel not in a Stasis application" + }, + { + "code": 412, + "reason": "Channel in invalid state" + } + ] + }, + { + "httpMethod": "DELETE", + "summary": "Stop playing silence to a channel.", + "nickname": "stopSilence", + "responseClass": "void", + "parameters": [ + { + "name": "channelId", + "description": "Channel's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Channel not found" + }, + { + "code": 409, + "reason": "Channel not in a Stasis application" + }, + { + "code": 412, + "reason": "Channel in invalid state" + } + ] + } + ] + }, + { + "path": "/channels/{channelId}/play", + "description": "Play media to a channel", + "operations": [ + { + "httpMethod": "POST", + "summary": "Start playback of media.", + "notes": "The media URI may be any of a number of URI's. Currently sound:, recording:, number:, digits:, characters:, and tone: URI's are supported. This operation creates a playback resource that can be used to control the playback of media (pause, rewind, fast forward, etc.)", + "nickname": "play", + "responseClass": "Playback", + "parameters": [ + { + "name": "channelId", + "description": "Channel's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "media", + "description": "Media URIs to play.", + "paramType": "query", + "required": true, + "allowMultiple": true, + "dataType": "string" + }, + { + "name": "lang", + "description": "For sounds, selects language for sound.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "offsetms", + "description": "Number of milliseconds to skip before playing. Only applies to the first URI if multiple media URIs are specified.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "int" + }, + { + "name": "skipms", + "description": "Number of milliseconds to skip for forward/reverse operations.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "int", + "defaultValue": 3000 + }, + { + "name": "playbackId", + "description": "Playback ID.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Channel not found" + }, + { + "code": 409, + "reason": "Channel not in a Stasis application" + }, + { + "code": 412, + "reason": "Channel in invalid state" + } + ] + } + ] + }, + { + "path": "/channels/{channelId}/play/{playbackId}", + "description": "Play media to a channel", + "operations": [ + { + "httpMethod": "POST", + "summary": "Start playback of media and specify the playbackId.", + "notes": "The media URI may be any of a number of URI's. Currently sound:, recording:, number:, digits:, characters:, and tone: URI's are supported. This operation creates a playback resource that can be used to control the playback of media (pause, rewind, fast forward, etc.)", + "nickname": "playWithId", + "responseClass": "Playback", + "parameters": [ + { + "name": "channelId", + "description": "Channel's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "playbackId", + "description": "Playback ID.", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "media", + "description": "Media URIs to play.", + "paramType": "query", + "required": true, + "allowMultiple": true, + "dataType": "string" + }, + { + "name": "lang", + "description": "For sounds, selects language for sound.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "offsetms", + "description": "Number of milliseconds to skip before playing. Only applies to the first URI if multiple media URIs are specified.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "int" + }, + { + "name": "skipms", + "description": "Number of milliseconds to skip for forward/reverse operations.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "int", + "defaultValue": 3000 + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Channel not found" + }, + { + "code": 409, + "reason": "Channel not in a Stasis application" + }, + { + "code": 412, + "reason": "Channel in invalid state" + } + ] + } + ] + }, + { + "path": "/channels/{channelId}/record", + "description": "Record audio from a channel", + "operations": [ + { + "httpMethod": "POST", + "summary": "Start a recording.", + "notes": "Record audio from a channel. Note that this will not capture audio sent to the channel. The bridge itself has a record feature if that's what you want.", + "nickname": "record", + "responseClass": "LiveRecording", + "parameters": [ + { + "name": "channelId", + "description": "Channel's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "name", + "description": "Recording's filename", + "paramType": "query", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "format", + "description": "Format to encode audio in", + "paramType": "query", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "maxDurationSeconds", + "description": "Maximum duration of the recording, in seconds. 0 for no limit", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "int", + "defaultValue": 0, + "allowableValues": { + "valueType": "RANGE", + "min": 0 + } + }, + { + "name": "maxSilenceSeconds", + "description": "Maximum duration of silence, in seconds. 0 for no limit", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "int", + "defaultValue": 0, + "allowableValues": { + "valueType": "RANGE", + "min": 0 + } + }, + { + "name": "ifExists", + "description": "Action to take if a recording with the same name already exists.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string", + "defaultValue": "fail", + "allowableValues": { + "valueType": "LIST", + "values": [ + "fail", + "overwrite", + "append" + ] + } + }, + { + "name": "beep", + "description": "Play beep when recording begins", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "boolean", + "defaultValue": false + }, + { + "name": "terminateOn", + "description": "DTMF input to terminate recording", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string", + "defaultValue": "none", + "allowableValues": { + "valueType": "LIST", + "values": [ + "none", + "any", + "*", + "#" + ] + } + } + ], + "errorResponses": [ + { + "code": 400, + "reason": "Invalid parameters" + }, + { + "code": 404, + "reason": "Channel not found" + }, + { + "code": 409, + "reason": "Channel is not in a Stasis application; the channel is currently bridged with other hcannels; A recording with the same name already exists on the system and can not be overwritten because it is in progress or ifExists=fail" + }, + { + "code": 422, + "reason": "The format specified is unknown on this system" + } + ] + } + ] + }, + { + "path": "/channels/{channelId}/variable", + "description": "Variables on a channel", + "operations": [ + { + "httpMethod": "GET", + "summary": "Get the value of a channel variable or function.", + "nickname": "getChannelVar", + "responseClass": "Variable", + "parameters": [ + { + "name": "channelId", + "description": "Channel's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "variable", + "description": "The channel variable or function to get", + "paramType": "query", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 400, + "reason": "Missing variable parameter." + }, + { + "code": 404, + "reason": "Channel or variable not found" + }, + { + "code": 409, + "reason": "Channel not in a Stasis application" + } + ] + }, + { + "httpMethod": "POST", + "summary": "Set the value of a channel variable or function.", + "nickname": "setChannelVar", + "responseClass": "void", + "parameters": [ + { + "name": "channelId", + "description": "Channel's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "variable", + "description": "The channel variable or function to set", + "paramType": "query", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "value", + "description": "The value to set the variable to", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 400, + "reason": "Missing variable parameter." + }, + { + "code": 404, + "reason": "Channel not found" + }, + { + "code": 409, + "reason": "Channel not in a Stasis application" + } + ] + } + ] + }, + { + "path": "/channels/{channelId}/snoop", + "description": "Snoop (spy/whisper) on a channel", + "operations": [ + { + "httpMethod": "POST", + "summary": "Start snooping.", + "notes": "Snoop (spy/whisper) on a specific channel.", + "nickname": "snoopChannel", + "responseClass": "Channel", + "parameters": [ + { + "name": "channelId", + "description": "Channel's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "spy", + "description": "Direction of audio to spy on", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string", + "defaultValue": "none", + "allowableValues": { + "valueType": "LIST", + "values": [ + "none", + "both", + "out", + "in" + ] + } + }, + { + "name": "whisper", + "description": "Direction of audio to whisper into", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string", + "defaultValue": "none", + "allowableValues": { + "valueType": "LIST", + "values": [ + "none", + "both", + "out", + "in" + ] + } + }, + { + "name": "app", + "description": "Application the snooping channel is placed into", + "paramType": "query", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "appArgs", + "description": "The application arguments to pass to the Stasis application", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "snoopId", + "description": "Unique ID to assign to snooping channel", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 400, + "reason": "Invalid parameters" + }, + { + "code": 404, + "reason": "Channel not found" + } + ] + } + ] + }, + { + "path": "/channels/{channelId}/snoop/{snoopId}", + "description": "Snoop (spy/whisper) on a channel", + "operations": [ + { + "httpMethod": "POST", + "summary": "Start snooping.", + "notes": "Snoop (spy/whisper) on a specific channel.", + "nickname": "snoopChannelWithId", + "responseClass": "Channel", + "parameters": [ + { + "name": "channelId", + "description": "Channel's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "snoopId", + "description": "Unique ID to assign to snooping channel", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "spy", + "description": "Direction of audio to spy on", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string", + "defaultValue": "none", + "allowableValues": { + "valueType": "LIST", + "values": [ + "none", + "both", + "out", + "in" + ] + } + }, + { + "name": "whisper", + "description": "Direction of audio to whisper into", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string", + "defaultValue": "none", + "allowableValues": { + "valueType": "LIST", + "values": [ + "none", + "both", + "out", + "in" + ] + } + }, + { + "name": "app", + "description": "Application the snooping channel is placed into", + "paramType": "query", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "appArgs", + "description": "The application arguments to pass to the Stasis application", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 400, + "reason": "Invalid parameters" + }, + { + "code": 404, + "reason": "Channel not found" + } + ] + } + ] + }, + { + "path": "/channels/{channelId}/dial", + "description": "Dial a channel", + "operations": [ + { + "httpMethod": "POST", + "summary": "Dial a created channel.", + "nickname": "dial", + "responseClass": "void", + "parameters": [ + { + "name": "channelId", + "description": "Channel's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "caller", + "description": "Channel ID of caller", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "timeout", + "description": "Dial timeout", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "int", + "defaultValue": 0, + "allowableValues": { + "valueType": "RANGE", + "min": 0 + } + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Channel cannot be found." + }, + { + "code": 409, + "reason": "Channel cannot be dialed." + } + ] + } + ] + }, + { + "path": "/channels/{channelId}/rtp_statistics", + "description": "Get RTP statistics information for RTP on a channel", + "operations": [ + { + "httpMethod": "GET", + "summary": "RTP stats on a channel.", + "nickname": "rtpstatistics", + "responseClass": "RTPstat", + "parameters": [ + { + "name": "channelId", + "description": "Channel's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Channel cannot be found." + } + ] + } + ] + } + ], + "models": { + "Dialed": { + "id": "Dialed", + "description": "Dialed channel information.", + "properties": {} + }, + "DialplanCEP": { + "id": "DialplanCEP", + "description": "Dialplan location (context/extension/priority)", + "properties": { + "context": { + "required": true, + "type": "string", + "description": "Context in the dialplan" + }, + "exten": { + "required": true, + "type": "string", + "description": "Extension in the dialplan" + }, + "priority": { + "required": true, + "type": "long", + "description": "Priority in the dialplan" + }, + "app_name": { + "required": true, + "type": "string", + "description": "Name of current dialplan application" + }, + "app_data": { + "required": true, + "type": "string", + "description": "Parameter of current dialplan application" + } + } + }, + "CallerID": { + "id": "CallerID", + "description": "Caller identification", + "properties": { + "name": { + "required": true, + "type": "string" + }, + "number": { + "required": true, + "type": "string" + } + } + }, + "RTPstat": { + "id": "RTPstat", + "description": "A statistics of a RTP.", + "properties": { + "txcount": { + "required": true, + "type": "int", + "description": "Number of packets transmitted." + }, + "rxcount": { + "required": true, + "type": "int", + "description": "Number of packets received." + }, + "txjitter": { + "required": false, + "type": "double", + "description": "Jitter on transmitted packets." + }, + "rxjitter": { + "required": false, + "type": "double", + "description": "Jitter on received packets." + }, + "remote_maxjitter": { + "required": false, + "type": "double", + "description": "Maximum jitter on remote side." + }, + "remote_minjitter": { + "required": false, + "type": "double", + "description": "Minimum jitter on remote side." + }, + "remote_normdevjitter": { + "required": false, + "type": "double", + "description": "Average jitter on remote side." + }, + "remote_stdevjitter": { + "required": false, + "type": "double", + "description": "Standard deviation jitter on remote side." + }, + "local_maxjitter": { + "required": false, + "type": "double", + "description": "Maximum jitter on local side." + }, + "local_minjitter": { + "required": false, + "type": "double", + "description": "Minimum jitter on local side." + }, + "local_normdevjitter": { + "required": false, + "type": "double", + "description": "Average jitter on local side." + }, + "local_stdevjitter": { + "required": false, + "type": "double", + "description": "Standard deviation jitter on local side." + }, + "txploss": { + "required": true, + "type": "int", + "description": "Number of transmitted packets lost." + }, + "rxploss": { + "required": true, + "type": "int", + "description": "Number of received packets lost." + }, + "remote_maxrxploss": { + "required": false, + "type": "double", + "description": "Maximum number of packets lost on remote side." + }, + "remote_minrxploss": { + "required": false, + "type": "double", + "description": "Minimum number of packets lost on remote side." + }, + "remote_normdevrxploss": { + "required": false, + "type": "double", + "description": "Average number of packets lost on remote side." + }, + "remote_stdevrxploss": { + "required": false, + "type": "double", + "description": "Standard deviation packets lost on remote side." + }, + "local_maxrxploss": { + "required": false, + "type": "double", + "description": "Maximum number of packets lost on local side." + }, + "local_minrxploss": { + "required": false, + "type": "double", + "description": "Minimum number of packets lost on local side." + }, + "local_normdevrxploss": { + "required": false, + "type": "double", + "description": "Average number of packets lost on local side." + }, + "local_stdevrxploss": { + "required": false, + "type": "double", + "description": "Standard deviation packets lost on local side." + }, + "rtt": { + "required": false, + "type": "double", + "description": "Total round trip time." + }, + "maxrtt": { + "required": false, + "type": "double", + "description": "Maximum round trip time." + }, + "minrtt": { + "required": false, + "type": "double", + "description": "Minimum round trip time." + }, + "normdevrtt": { + "required": false, + "type": "double", + "description": "Average round trip time." + }, + "stdevrtt": { + "required": false, + "type": "double", + "description": "Standard deviation round trip time." + }, + "local_ssrc": { + "required": true, + "type": "int", + "description": "Our SSRC." + }, + "remote_ssrc": { + "required": true, + "type": "int", + "description": "Their SSRC." + }, + "txoctetcount": { + "required": true, + "type": "int", + "description": "Number of octets transmitted." + }, + "rxoctetcount": { + "required": true, + "type": "int", + "description": "Number of octets received." + }, + "channel_uniqueid": { + "required": true, + "type": "string", + "description": "The Asterisk channel's unique ID that owns this instance." + } + } + }, + "Channel": { + "id": "Channel", + "description": "A specific communication connection between Asterisk and an Endpoint.", + "properties": { + "id": { + "required": true, + "type": "string", + "description": "Unique identifier of the channel.\n\nThis is the same as the Uniqueid field in AMI." + }, + "name": { + "required": true, + "type": "string", + "description": "Name of the channel (i.e. SIP/foo-0000a7e3)" + }, + "state": { + "required": true, + "type": "string", + "allowableValues": { + "valueType": "LIST", + "values": [ + "Down", + "Rsrved", + "OffHook", + "Dialing", + "Ring", + "Ringing", + "Up", + "Busy", + "Dialing Offhook", + "Pre-ring", + "Unknown" + ] + } + }, + "caller": { + "required": true, + "type": "CallerID" + }, + "connected": { + "required": true, + "type": "CallerID" + }, + "accountcode": { + "required": true, + "type": "string" + }, + "dialplan": { + "required": true, + "type": "DialplanCEP", + "description": "Current location in the dialplan" + }, + "creationtime": { + "required": true, + "type": "Date", + "description": "Timestamp when channel was created" + }, + "language": { + "required": true, + "type": "string", + "description": "The default spoken language" + }, + "channelvars": { + "required": false, + "type": "object", + "description": "Channel variables" + } + } + } + } +} diff --git a/codegen/src/main/resources/codegen-data/ari_6_0_0/deviceStates.json b/codegen/src/main/resources/codegen-data/ari_6_0_0/deviceStates.json new file mode 100644 index 00000000..bd389355 --- /dev/null +++ b/codegen/src/main/resources/codegen-data/ari_6_0_0/deviceStates.json @@ -0,0 +1,154 @@ +{ + "_copyright": "Copyright (C) 2012 - 2013, Digium, Inc.", + "_author": "Kevin Harwell ", + "_svn_revision": "$Revision$", + "apiVersion": "2.0.0", + "swaggerVersion": "1.1", + "basePath": "http://localhost:8088/ari", + "resourcePath": "/api-docs/deviceStates.{format}", + "requiresModules": [ + "res_stasis_device_state" + ], + "apis": [ + { + "path": "/deviceStates", + "description": "Device states", + "operations": [ + { + "httpMethod": "GET", + "summary": "List all ARI controlled device states.", + "nickname": "list", + "responseClass": "List[DeviceState]" + } + ] + }, + { + "path": "/deviceStates/{deviceName}", + "description": "Device state", + "operations": [ + { + "httpMethod": "GET", + "summary": "Retrieve the current state of a device.", + "nickname": "get", + "responseClass": "DeviceState", + "parameters": [ + { + "name": "deviceName", + "description": "Name of the device", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ] + }, + { + "httpMethod": "PUT", + "summary": "Change the state of a device controlled by ARI. (Note - implicitly creates the device state).", + "nickname": "update", + "responseClass": "void", + "parameters": [ + { + "name": "deviceName", + "description": "Name of the device", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "deviceState", + "description": "Device state value", + "paramType": "query", + "required": true, + "allowMultiple": false, + "dataType": "string", + "allowableValues": { + "valueType": "LIST", + "values": [ + "NOT_INUSE", + "INUSE", + "BUSY", + "INVALID", + "UNAVAILABLE", + "RINGING", + "RINGINUSE", + "ONHOLD" + ] + } + + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Device name is missing" + }, + { + "code": 409, + "reason": "Uncontrolled device specified" + } + ] + }, + { + "httpMethod": "DELETE", + "summary": "Destroy a device-state controlled by ARI.", + "nickname": "delete", + "responseClass": "void", + "parameters": [ + { + "name": "deviceName", + "description": "Name of the device", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Device name is missing" + }, + { + "code": 409, + "reason": "Uncontrolled device specified" + } + ] + } + ] + } + ], + "models": { + "DeviceState": { + "id": "DeviceState", + "description": "Represents the state of a device.", + "properties": { + "name": { + "type": "string", + "description": "Name of the device.", + "required": true + }, + "state": { + "type": "string", + "description": "Device's state", + "required": true, + "allowableValues": { + "valueType": "LIST", + "values": [ + "UNKNOWN", + "NOT_INUSE", + "INUSE", + "BUSY", + "INVALID", + "UNAVAILABLE", + "RINGING", + "RINGINUSE", + "ONHOLD" + ] + } + } + } + } + } +} diff --git a/codegen/src/main/resources/codegen-data/ari_6_0_0/endpoints.json b/codegen/src/main/resources/codegen-data/ari_6_0_0/endpoints.json new file mode 100644 index 00000000..264c0eb2 --- /dev/null +++ b/codegen/src/main/resources/codegen-data/ari_6_0_0/endpoints.json @@ -0,0 +1,279 @@ +{ + "_copyright": "Copyright (C) 2012 - 2013, Digium, Inc.", + "_author": "David M. Lee, II ", + "_svn_revision": "$Revision$", + "apiVersion": "2.0.0", + "swaggerVersion": "1.1", + "basePath": "http://localhost:8088/ari", + "resourcePath": "/api-docs/endpoints.{format}", + "apis": [ + { + "path": "/endpoints", + "description": "Asterisk endpoints", + "operations": [ + { + "httpMethod": "GET", + "summary": "List all endpoints.", + "nickname": "list", + "responseClass": "List[Endpoint]" + } + ] + }, + { + "path": "/endpoints/sendMessage", + "description": "Send a message to some technology URI or endpoint.", + "operations": [ + { + "httpMethod": "PUT", + "summary": "Send a message to some technology URI or endpoint.", + "nickname": "sendMessage", + "responseClass": "void", + "parameters": [ + { + "name": "to", + "description": "The endpoint resource or technology specific URI to send the message to. Valid resources are sip, pjsip, and xmpp.", + "paramType": "query", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "from", + "description": "The endpoint resource or technology specific identity to send this message from. Valid resources are sip, pjsip, and xmpp.", + "paramType": "query", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "body", + "description": "The body of the message", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "variables", + "descriptioni": "The \"variables\" key in the body object holds technology specific key/value pairs to append to the message. These can be interpreted and used by the various resource types; for example, pjsip and sip resource types will add the key/value pairs as SIP headers,", + "paramType": "body", + "required": false, + "dataType": "containers", + "allowMultiple": false + } + ], + "errorResponses": [ + { + "code": 400, + "reason": "Invalid parameters for sending a message." + }, + { + "code": 404, + "reason": "Endpoint not found" + } + ] + } + ] + }, + { + "path": "/endpoints/{tech}", + "description": "Asterisk endpoints", + "operations": [ + { + "httpMethod": "GET", + "summary": "List available endoints for a given endpoint technology.", + "nickname": "listByTech", + "responseClass": "List[Endpoint]", + "parameters": [ + { + "name": "tech", + "description": "Technology of the endpoints (sip,iax2,...)", + "paramType": "path", + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Endpoints not found" + } + ] + } + ] + }, + { + "path": "/endpoints/{tech}/{resource}", + "description": "Single endpoint", + "operations": [ + { + "httpMethod": "GET", + "summary": "Details for an endpoint.", + "nickname": "get", + "responseClass": "Endpoint", + "parameters": [ + { + "name": "tech", + "description": "Technology of the endpoint", + "paramType": "path", + "dataType": "string" + }, + { + "name": "resource", + "description": "ID of the endpoint", + "paramType": "path", + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 400, + "reason": "Invalid parameters for sending a message." + }, + { + "code": 404, + "reason": "Endpoints not found" + } + ] + } + ] + }, + { + "path": "/endpoints/{tech}/{resource}/sendMessage", + "description": "Send a message to some endpoint in a technology.", + "operations": [ + { + "httpMethod": "PUT", + "summary": "Send a message to some endpoint in a technology.", + "nickname": "sendMessageToEndpoint", + "responseClass": "void", + "parameters": [ + { + "name": "tech", + "description": "Technology of the endpoint", + "paramType": "path", + "dataType": "string" + }, + { + "name": "resource", + "description": "ID of the endpoint", + "paramType": "path", + "dataType": "string" + }, + { + "name": "from", + "description": "The endpoint resource or technology specific identity to send this message from. Valid resources are sip, pjsip, and xmpp.", + "paramType": "query", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "body", + "description": "The body of the message", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "variables", + "descriptioni": "The \"variables\" key in the body object holds technology specific key/value pairs to append to the message. These can be interpreted and used by the various resource types; for example, pjsip and sip resource types will add the key/value pairs as SIP headers,", + "paramType": "body", + "required": false, + "dataType": "containers", + "allowMultiple": false + } + ], + "errorResponses": [ + { + "code": 400, + "reason": "Invalid parameters for sending a message." + }, + { + "code": 404, + "reason": "Endpoint not found" + } + ] + } + ] + } + ], + "models": { + "Endpoint": { + "id": "Endpoint", + "description": "An external device that may offer/accept calls to/from Asterisk.\n\nUnlike most resources, which have a single unique identifier, an endpoint is uniquely identified by the technology/resource pair.", + "properties": { + "technology": { + "type": "string", + "description": "Technology of the endpoint", + "required": true + }, + "resource": { + "type": "string", + "description": "Identifier of the endpoint, specific to the given technology.", + "required": true + }, + "state": { + "type": "string", + "description": "Endpoint's state", + "required": false, + "allowableValues": { + "valueType": "LIST", + "values": [ + "unknown", + "offline", + "online" + ] + } + }, + "channel_ids": { + "type": "List[string]", + "description": "Id's of channels associated with this endpoint", + "required": true + } + } + }, + "TextMessageVariable": { + "id": "TextMessageVariable", + "description": "A key/value pair variable in a text message.", + "properties": { + "key": { + "type": "string", + "description": "A unique key identifying the variable.", + "required": true + }, + "value": { + "type": "string", + "description": "The value of the variable.", + "required": true + } + } + }, + "TextMessage": { + "id": "TextMessage", + "description": "A text message.", + "properties": { + "from": { + "type": "string", + "description": "A technology specific URI specifying the source of the message. For sip and pjsip technologies, any SIP URI can be specified. For xmpp, the URI must correspond to the client connection being used to send the message.", + "required": true + }, + "to": { + "type": "string", + "description": "A technology specific URI specifying the destination of the message. Valid technologies include sip, pjsip, and xmp. The destination of a message should be an endpoint.", + "required": true + }, + "body": { + "type": "string", + "description": "The text of the message.", + "required": true + }, + "variables": { + "type": "List[TextMessageVariable]", + "description": "Technology specific key/value pairs associated with the message.", + "required": false + } + } + } + } +} diff --git a/codegen/src/main/resources/codegen-data/ari_6_0_0/events.json b/codegen/src/main/resources/codegen-data/ari_6_0_0/events.json new file mode 100644 index 00000000..c9822f6c --- /dev/null +++ b/codegen/src/main/resources/codegen-data/ari_6_0_0/events.json @@ -0,0 +1,918 @@ +{ + "_copyright": "Copyright (C) 2012 - 2013, Digium, Inc.", + "_author": "David M. Lee, II ", + "_svn_revision": "$Revision$", + "apiVersion": "2.0.0", + "swaggerVersion": "1.2", + "basePath": "http://localhost:8088/ari", + "resourcePath": "/api-docs/events.{format}", + "requiresModules": [ + "res_http_websocket" + ], + "apis": [ + { + "path": "/events", + "description": "Events from Asterisk to applications", + "operations": [ + { + "httpMethod": "GET", + "upgrade": "websocket", + "websocketProtocol": "ari", + "summary": "WebSocket connection for events.", + "nickname": "eventWebsocket", + "responseClass": "Message", + "parameters": [ + { + "name": "app", + "description": "Applications to subscribe to.", + "paramType": "query", + "required": true, + "allowMultiple": true, + "dataType": "string" + }, + { + "name": "subscribeAll", + "description": "Subscribe to all Asterisk events. If provided, the applications listed will be subscribed to all events, effectively disabling the application specific subscriptions. Default is 'false'.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "boolean" + } + ] + } + ] + }, + { + "path": "/events/user/{eventName}", + "description": "Stasis application user events", + "operations": [ + { + "httpMethod": "POST", + "summary": "Generate a user event.", + "nickname": "userEvent", + "responseClass": "void", + "parameters": [ + { + "name": "eventName", + "description": "Event name", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "application", + "description": "The name of the application that will receive this event", + "paramType": "query", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "source", + "description": "URI for event source (channel:{channelId}, bridge:{bridgeId}, endpoint:{tech}/{resource}, deviceState:{deviceName}", + "paramType": "query", + "required": false, + "allowMultiple": true, + "dataType": "string" + }, + { + "name": "variables", + "description": "The \"variables\" key in the body object holds custom key/value pairs to add to the user event. Ex. { \"variables\": { \"key\": \"value\" } }", + "paramType": "body", + "required": false, + "allowMultiple": false, + "dataType": "containers" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Application does not exist." + }, + { + "code": 422, + "reason": "Event source not found." + }, + { + "code": 400, + "reason": "Invalid even tsource URI or userevent data." + } + ] + } + ] + } + ], + "models": { + "Message": { + "id": "Message", + "description": "Base type for errors and events", + "discriminator": "type", + "properties": { + "type": { + "type": "string", + "required": true, + "description": "Indicates the type of this message." + }, + "asterisk_id": { + "type": "string", + "required": false, + "description": "The unique ID for the Asterisk instance that raised this event." + } + }, + "subTypes": [ + "MissingParams", + "Event" + ] + }, + "MissingParams": { + "id": "MissingParams", + "description": "Error event sent when required params are missing.", + "properties": { + "params": { + "required": true, + "type": "List[string]", + "description": "A list of the missing parameters" + } + } + }, + "Event": { + "id": "Event", + "description": "Base type for asynchronous events from Asterisk.", + "properties": { + "application": { + "type": "string", + "description": "Name of the application receiving the event.", + "required": true + }, + "timestamp": { + "type": "Date", + "description": "Time at which this event was created.", + "required": true + } + }, + "subTypes": [ + "DeviceStateChanged", + "PlaybackStarted", + "PlaybackContinuing", + "PlaybackFinished", + "RecordingStarted", + "RecordingFinished", + "RecordingFailed", + "ApplicationMoveFailed", + "ApplicationReplaced", + "BridgeCreated", + "BridgeDestroyed", + "BridgeMerged", + "BridgeBlindTransfer", + "BridgeAttendedTransfer", + "BridgeVideoSourceChanged", + "ChannelCreated", + "ChannelDestroyed", + "ChannelEnteredBridge", + "ChannelLeftBridge", + "ChannelStateChange", + "ChannelDtmfReceived", + "ChannelDialplan", + "ChannelCallerId", + "ChannelUserevent", + "ChannelHangupRequest", + "ChannelVarset", + "ChannelTalkingStarted", + "ChannelTalkingFinished", + "ChannelHold", + "ChannelUnhold", + "ContactStatusChange", + "EndpointStateChange", + "Dial", + "StasisEnd", + "StasisStart", + "TextMessageReceived", + "ChannelConnectedLine", + "PeerStatusChange" + ] + }, + "ContactInfo": { + "id": "ContactInfo", + "description": "Detailed information about a contact on an endpoint.", + "properties": { + "uri": { + "type": "string", + "description": "The location of the contact.", + "required": true + }, + "contact_status": { + "type": "string", + "description": "The current status of the contact.", + "required": true, + "allowableValues": { + "valueType": "LIST", + "values": [ + "Unreachable", + "Reachable", + "Unknown", + "NonQualified", + "Removed" + ] + } + }, + "aor": { + "type": "string", + "description": "The Address of Record this contact belongs to.", + "required": true + }, + "roundtrip_usec": { + "type": "string", + "description": "Current round trip time, in microseconds, for the contact.", + "required": false + } + } + }, + "Peer": { + "id": "Peer", + "description": "Detailed information about a remote peer that communicates with Asterisk.", + "properties": { + "peer_status": { + "type": "string", + "description": "The current state of the peer. Note that the values of the status are dependent on the underlying peer technology.", + "required": true + }, + "cause": { + "type": "string", + "description": "An optional reason associated with the change in peer_status.", + "required": false + }, + "address": { + "type": "string", + "description": "The IP address of the peer.", + "required": false + }, + "port": { + "type": "string", + "description": "The port of the peer.", + "required": false + }, + "time": { + "type": "string", + "description": "The last known time the peer was contacted.", + "required": false + } + } + }, + "DeviceStateChanged": { + "id": "DeviceStateChanged", + "description": "Notification that a device state has changed.", + "properties": { + "device_state": { + "type": "DeviceState", + "description": "Device state object", + "required": true + } + } + }, + "PlaybackStarted": { + "id": "PlaybackStarted", + "description": "Event showing the start of a media playback operation.", + "properties": { + "playback": { + "type": "Playback", + "description": "Playback control object", + "required": true + } + } + }, + "PlaybackContinuing": { + "id": "PlaybackContinuing", + "description": "Event showing the continuation of a media playback operation from one media URI to the next in the list.", + "properties": { + "playback": { + "type": "Playback", + "description": "Playback control object", + "required": true + } + } + }, + "PlaybackFinished": { + "id": "PlaybackFinished", + "description": "Event showing the completion of a media playback operation.", + "properties": { + "playback": { + "type": "Playback", + "description": "Playback control object", + "required": true + } + } + }, + "RecordingStarted": { + "id": "RecordingStarted", + "description": "Event showing the start of a recording operation.", + "properties": { + "recording": { + "type": "LiveRecording", + "description": "Recording control object", + "required": true + } + } + }, + "RecordingFinished": { + "id": "RecordingFinished", + "description": "Event showing the completion of a recording operation.", + "properties": { + "recording": { + "type": "LiveRecording", + "description": "Recording control object", + "required": true + } + } + }, + "RecordingFailed": { + "id": "RecordingFailed", + "description": "Event showing failure of a recording operation.", + "properties": { + "recording": { + "type": "LiveRecording", + "description": "Recording control object", + "required": true + } + } + }, + "ApplicationMoveFailed": { + "id": "ApplicationMoveFailed", + "description": "Notification that trying to move a channel to another Stasis application failed.", + "properties": { + "channel": { + "required": true, + "type": "Channel" + }, + "destination": { + "required": true, + "type": "string" + }, + "args": { + "required": true, + "type": "List[string]", + "description": "Arguments to the application" + } + } + }, + "ApplicationReplaced": { + "id": "ApplicationReplaced", + "description": "Notification that another WebSocket has taken over for an application.\n\nAn application may only be subscribed to by a single WebSocket at a time. If multiple WebSockets attempt to subscribe to the same application, the newer WebSocket wins, and the older one receives this event.", + "properties": {} + }, + "BridgeCreated": { + "id": "BridgeCreated", + "description": "Notification that a bridge has been created.", + "properties": { + "bridge": { + "required": true, + "type": "Bridge" + } + } + }, + "BridgeDestroyed": { + "id": "BridgeDestroyed", + "description": "Notification that a bridge has been destroyed.", + "properties": { + "bridge": { + "required": true, + "type": "Bridge" + } + } + }, + "BridgeMerged": { + "id": "BridgeMerged", + "description": "Notification that one bridge has merged into another.", + "properties": { + "bridge": { + "required": true, + "type": "Bridge" + }, + "bridge_from": { + "required": true, + "type": "Bridge" + } + } + }, + "BridgeVideoSourceChanged": { + "id": "BridgeVideoSourceChanged", + "description": "Notification that the source of video in a bridge has changed.", + "properties": { + "bridge": { + "required": true, + "type": "Bridge" + }, + "old_video_source_id": { + "required": false, + "type": "string" + } + } + }, + "BridgeBlindTransfer": { + "id": "BridgeBlindTransfer", + "description": "Notification that a blind transfer has occurred.", + "properties": { + "channel": { + "description": "The channel performing the blind transfer", + "required": true, + "type": "Channel" + }, + "replace_channel": { + "description": "The channel that is replacing transferer when the transferee(s) can not be transferred directly", + "required": false, + "type": "Channel" + }, + "transferee": { + "description": "The channel that is being transferred", + "required": false, + "type": "Channel" + }, + "exten": { + "description": "The extension transferred to", + "required": true, + "type": "string" + }, + "context": { + "description": "The context transferred to", + "required": true, + "type": "string" + }, + "result": { + "description": "The result of the transfer attempt", + "required": true, + "type": "string" + }, + "is_external": { + "description": "Whether the transfer was externally initiated or not", + "required": true, + "type": "boolean" + }, + "bridge": { + "description": "The bridge being transferred", + "type": "Bridge" + } + } + }, + "BridgeAttendedTransfer": { + "id": "BridgeAttendedTransfer", + "description": "Notification that an attended transfer has occurred.", + "properties": { + "transferer_first_leg": { + "description": "First leg of the transferer", + "required": true, + "type": "Channel" + }, + "transferer_second_leg": { + "description": "Second leg of the transferer", + "required": true, + "type": "Channel" + }, + "replace_channel": { + "description": "The channel that is replacing transferer_first_leg in the swap", + "required": false, + "type": "Channel" + }, + "transferee": { + "description": "The channel that is being transferred", + "required": false, + "type": "Channel" + }, + "transfer_target": { + "description": "The channel that is being transferred to", + "required": false, + "type": "Channel" + }, + "result": { + "description": "The result of the transfer attempt", + "required": true, + "type": "string" + }, + "is_external": { + "description": "Whether the transfer was externally initiated or not", + "required": true, + "type": "boolean" + }, + "transferer_first_leg_bridge": { + "description": "Bridge the transferer first leg is in", + "type": "Bridge" + }, + "transferer_second_leg_bridge": { + "description": "Bridge the transferer second leg is in", + "type": "Bridge" + }, + "destination_type": { + "description": "How the transfer was accomplished", + "required": true, + "type": "string" + }, + "destination_bridge": { + "description": "Bridge that survived the merge result", + "type": "string" + }, + "destination_application": { + "description": "Application that has been transferred into", + "type": "string" + }, + "destination_link_first_leg": { + "description": "First leg of a link transfer result", + "type": "Channel" + }, + "destination_link_second_leg": { + "description": "Second leg of a link transfer result", + "type": "Channel" + }, + "destination_threeway_channel": { + "description": "Transferer channel that survived the threeway result", + "type": "Channel" + }, + "destination_threeway_bridge": { + "description": "Bridge that survived the threeway result", + "type": "Bridge" + } + } + }, + "ChannelCreated": { + "id": "ChannelCreated", + "description": "Notification that a channel has been created.", + "properties": { + "channel": { + "required": true, + "type": "Channel" + } + } + }, + "ChannelDestroyed": { + "id": "ChannelDestroyed", + "description": "Notification that a channel has been destroyed.", + "properties": { + "cause": { + "required": true, + "description": "Integer representation of the cause of the hangup", + "type": "int" + }, + "cause_txt": { + "required": true, + "description": "Text representation of the cause of the hangup", + "type": "string" + }, + "channel": { + "required": true, + "type": "Channel" + } + } + }, + "ChannelEnteredBridge": { + "id": "ChannelEnteredBridge", + "description": "Notification that a channel has entered a bridge.", + "properties": { + "bridge": { + "required": true, + "type": "Bridge" + }, + "channel": { + "type": "Channel" + } + } + }, + "ChannelLeftBridge": { + "id": "ChannelLeftBridge", + "description": "Notification that a channel has left a bridge.", + "properties": { + "bridge": { + "required": true, + "type": "Bridge" + }, + "channel": { + "required": true, + "type": "Channel" + } + } + }, + "ChannelStateChange": { + "id": "ChannelStateChange", + "description": "Notification of a channel's state change.", + "properties": { + "channel": { + "required": true, + "type": "Channel" + } + } + }, + "ChannelDtmfReceived": { + "id": "ChannelDtmfReceived", + "description": "DTMF received on a channel.\n\nThis event is sent when the DTMF ends. There is no notification about the start of DTMF", + "properties": { + "digit": { + "required": true, + "type": "string", + "description": "DTMF digit received (0-9, A-E, # or *)" + }, + "duration_ms": { + "required": true, + "type": "int", + "description": "Number of milliseconds DTMF was received" + }, + "channel": { + "required": true, + "type": "Channel", + "description": "The channel on which DTMF was received" + } + } + }, + "ChannelDialplan": { + "id": "ChannelDialplan", + "description": "Channel changed location in the dialplan.", + "properties": { + "channel": { + "required": true, + "type": "Channel", + "description": "The channel that changed dialplan location." + }, + "dialplan_app": { + "required": true, + "type": "string", + "description": "The application about to be executed." + }, + "dialplan_app_data": { + "required": true, + "type": "string", + "description": "The data to be passed to the application." + } + } + }, + "ChannelCallerId": { + "id": "ChannelCallerId", + "description": "Channel changed Caller ID.", + "properties": { + "caller_presentation": { + "required": true, + "type": "int", + "description": "The integer representation of the Caller Presentation value." + }, + "caller_presentation_txt": { + "required": true, + "type": "string", + "description": "The text representation of the Caller Presentation value." + }, + "channel": { + "required": true, + "type": "Channel", + "description": "The channel that changed Caller ID." + } + } + }, + "ChannelUserevent": { + "id": "ChannelUserevent", + "description": "User-generated event with additional user-defined fields in the object.", + "properties": { + "eventname": { + "required": true, + "type": "string", + "description": "The name of the user event." + }, + "channel": { + "required": false, + "type": "Channel", + "description": "A channel that is signaled with the user event." + }, + "bridge": { + "required": false, + "type": "Bridge", + "description": "A bridge that is signaled with the user event." + }, + "endpoint": { + "required": false, + "type": "Endpoint", + "description": "A endpoint that is signaled with the user event." + }, + "userevent": { + "required": true, + "type": "object", + "description": "Custom Userevent data" + } + } + }, + "ChannelHangupRequest": { + "id": "ChannelHangupRequest", + "description": "A hangup was requested on the channel.", + "properties": { + "cause": { + "type": "int", + "description": "Integer representation of the cause of the hangup." + }, + "soft": { + "type": "boolean", + "description": "Whether the hangup request was a soft hangup request." + }, + "channel": { + "required": true, + "type": "Channel", + "description": "The channel on which the hangup was requested." + } + } + }, + "ChannelVarset": { + "id": "ChannelVarset", + "description": "Channel variable changed.", + "properties": { + "variable": { + "required": true, + "type": "string", + "description": "The variable that changed." + }, + "value": { + "required": true, + "type": "string", + "description": "The new value of the variable." + }, + "channel": { + "required": false, + "type": "Channel", + "description": "The channel on which the variable was set.\n\nIf missing, the variable is a global variable." + } + } + }, + "ChannelHold": { + "id": "ChannelHold", + "description": "A channel initiated a media hold.", + "properties": { + "channel": { + "required": true, + "type": "Channel", + "description": "The channel that initiated the hold event." + }, + "musicclass": { + "required": false, + "type": "string", + "description": "The music on hold class that the initiator requested." + } + } + }, + "ChannelUnhold": { + "id": "ChannelUnhold", + "description": "A channel initiated a media unhold.", + "properties": { + "channel": { + "required": true, + "type": "Channel", + "description": "The channel that initiated the unhold event." + } + } + }, + "ChannelTalkingStarted": { + "id": "ChannelTalkingStarted", + "description": "Talking was detected on the channel.", + "properties": { + "channel": { + "required": true, + "type": "Channel", + "description": "The channel on which talking started." + } + } + }, + "ChannelTalkingFinished": { + "id": "ChannelTalkingFinished", + "description": "Talking is no longer detected on the channel.", + "properties": { + "channel": { + "required": true, + "type": "Channel", + "description": "The channel on which talking completed." + }, + "duration": { + "required": true, + "type": "int", + "description": "The length of time, in milliseconds, that talking was detected on the channel" + } + } + }, + "ContactStatusChange": { + "id": "ContactStatusChange", + "description": "The state of a contact on an endpoint has changed.", + "properties": { + "endpoint": { + "required": true, + "type": "Endpoint" + }, + "contact_info": { + "required": true, + "type": "ContactInfo" + } + } + }, + "PeerStatusChange": { + "id": "PeerStatusChange", + "description": "The state of a peer associated with an endpoint has changed.", + "properties": { + "endpoint": { + "required": true, + "type": "Endpoint" + }, + "peer": { + "required": true, + "type": "Peer" + } + } + }, + "EndpointStateChange": { + "id": "EndpointStateChange", + "description": "Endpoint state changed.", + "properties": { + "endpoint": { + "required": true, + "type": "Endpoint" + } + } + }, + "Dial": { + "id": "Dial", + "description": "Dialing state has changed.", + "properties": { + "caller": { + "required": false, + "type": "Channel", + "description": "The calling channel." + }, + "peer": { + "required": true, + "type": "Channel", + "description": "The dialed channel." + }, + "forward": { + "required": false, + "type": "string", + "description": "Forwarding target requested by the original dialed channel." + }, + "forwarded": { + "required": false, + "type": "Channel", + "description": "Channel that the caller has been forwarded to." + }, + "dialstring": { + "required": false, + "type": "string", + "description": "The dial string for calling the peer channel." + }, + "dialstatus": { + "required": true, + "type": "string", + "description": "Current status of the dialing attempt to the peer." + } + } + }, + "StasisEnd": { + "id": "StasisEnd", + "description": "Notification that a channel has left a Stasis application.", + "properties": { + "channel": { + "required": true, + "type": "Channel" + } + } + }, + "StasisStart": { + "id": "StasisStart", + "description": "Notification that a channel has entered a Stasis application.", + "properties": { + "args": { + "required": true, + "type": "List[string]", + "description": "Arguments to the application" + }, + "channel": { + "required": true, + "type": "Channel" + }, + "replace_channel": { + "required": false, + "type": "Channel" + } + } + }, + "TextMessageReceived": { + "id": "TextMessageReceived", + "description": "A text message was received from an endpoint.", + "properties": { + "message": { + "required": true, + "type": "TextMessage" + }, + "endpoint": { + "required": false, + "type": "Endpoint" + } + } + }, + "ChannelConnectedLine": { + "id": "ChannelConnectedLine", + "description": "Channel changed Connected Line.", + "properties": { + "channel": { + "required": true, + "type": "Channel", + "description": "The channel whose connected line has changed." + } + } + } + } +} diff --git a/codegen/src/main/resources/codegen-data/ari_6_0_0/mailboxes.json b/codegen/src/main/resources/codegen-data/ari_6_0_0/mailboxes.json new file mode 100644 index 00000000..8f5941b8 --- /dev/null +++ b/codegen/src/main/resources/codegen-data/ari_6_0_0/mailboxes.json @@ -0,0 +1,137 @@ +{ + "_copyright": "Copyright (C) 2013, Digium, Inc.", + "_author": "Jonathan Rose ", + "_svn_revision": "$Revision$", + "apiVersion": "2.0.0", + "swaggerVersion": "1.1", + "basePath": "http://localhost:8088/ari", + "resourcePath": "/api-docs/mailboxes.{format}", + "requiresModules": [ + "res_stasis_mailbox" + ], + "apis": [ + { + "path": "/mailboxes", + "description": "Mailboxes", + "operations": [ + { + "httpMethod": "GET", + "summary": "List all mailboxes.", + "nickname": "list", + "responseClass": "List[Mailbox]" + } + ] + }, + { + "path": "/mailboxes/{mailboxName}", + "description": "Mailbox state", + "operations": [ + { + "httpMethod": "GET", + "summary": "Retrieve the current state of a mailbox.", + "nickname": "get", + "responseClass": "Mailbox", + "parameters": [ + { + "name": "mailboxName", + "description": "Name of the mailbox", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Mailbox not found" + } + ] + }, + { + "httpMethod": "PUT", + "summary": "Change the state of a mailbox. (Note - implicitly creates the mailbox).", + "nickname": "update", + "responseClass": "void", + "parameters": [ + { + "name": "mailboxName", + "description": "Name of the mailbox", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "oldMessages", + "description": "Count of old messages in the mailbox", + "paramType": "query", + "required": true, + "allowMultiple": false, + "dataType": "int" + }, + { + "name": "newMessages", + "description": "Count of new messages in the mailbox", + "paramType": "query", + "required": true, + "allowMultiple": false, + "dataType": "int" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Mailbox not found" + } + ] + }, + { + "httpMethod": "DELETE", + "summary": "Destroy a mailbox.", + "nickname": "delete", + "responseClass": "void", + "parameters": [ + { + "name": "mailboxName", + "description": "Name of the mailbox", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Mailbox not found" + } + ] + } + ] + } + ], + "models": { + "Mailbox": { + "id": "Mailbox", + "description": "Represents the state of a mailbox.", + "properties": { + "name": { + "type": "string", + "description": "Name of the mailbox.", + "required": true + }, + "old_messages": { + "type": "int", + "description": "Count of old messages in the mailbox.", + "required": true + }, + "new_messages": { + "type": "int", + "description": "Count of new messages in the mailbox.", + "required": true + } + } + } + } +} diff --git a/codegen/src/main/resources/codegen-data/ari_6_0_0/playbacks.json b/codegen/src/main/resources/codegen-data/ari_6_0_0/playbacks.json new file mode 100644 index 00000000..a78dcae7 --- /dev/null +++ b/codegen/src/main/resources/codegen-data/ari_6_0_0/playbacks.json @@ -0,0 +1,164 @@ +{ + "_copyright": "Copyright (C) 2012 - 2013, Digium, Inc.", + "_author": "David M. Lee, II ", + "_svn_revision": "$Revision$", + "apiVersion": "2.0.0", + "swaggerVersion": "1.1", + "basePath": "http://localhost:8088/ari", + "resourcePath": "/api-docs/playbacks.{format}", + "requiresModules": [ + "res_stasis_playback" + ], + "apis": [ + { + "path": "/playbacks/{playbackId}", + "description": "Control object for a playback operation.", + "operations": [ + { + "httpMethod": "GET", + "summary": "Get a playback's details.", + "nickname": "get", + "responseClass": "Playback", + "parameters": [ + { + "name": "playbackId", + "description": "Playback's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "The playback cannot be found" + } + ] + }, + { + "httpMethod": "DELETE", + "summary": "Stop a playback.", + "nickname": "stop", + "responseClass": "void", + "parameters": [ + { + "name": "playbackId", + "description": "Playback's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "The playback cannot be found" + } + ] + } + ] + }, + { + "path": "/playbacks/{playbackId}/control", + "description": "Control object for a playback operation.", + "operations": [ + { + "httpMethod": "POST", + "summary": "Control a playback.", + "nickname": "control", + "responseClass": "void", + "parameters": [ + { + "name": "playbackId", + "description": "Playback's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "operation", + "description": "Operation to perform on the playback.", + "paramType": "query", + "required": true, + "allowMultiple": false, + "dataType": "string", + "allowableValues": { + "valueType": "LIST", + "values": [ + "restart", + "pause", + "unpause", + "reverse", + "forward" + ] + } + } + ], + "errorResponses": [ + { + "code": 400, + "reason": "The provided operation parameter was invalid" + }, + { + "code": 404, + "reason": "The playback cannot be found" + }, + { + "code": 409, + "reason": "The operation cannot be performed in the playback's current state" + } +] + } + ] + } + ], + "models": { + "Playback": { + "id": "Playback", + "description": "Object representing the playback of media to a channel", + "properties": { + "id": { + "type": "string", + "description": "ID for this playback operation", + "required": true + }, + "media_uri": { + "type": "string", + "description": "The URI for the media currently being played back.", + "required": true + }, + "next_media_uri": { + "type": "string", + "description": "If a list of URIs is being played, the next media URI to be played back.", + "required": false + }, + "target_uri": { + "type": "string", + "description": "URI for the channel or bridge to play the media on", + "required": true + }, + "language": { + "type": "string", + "description": "For media types that support multiple languages, the language requested for playback." + }, + "state": { + "type": "string", + "description": "Current state of the playback operation.", + "required": true, + "allowableValues": { + "valueType": "LIST", + "values": [ + "queued", + "playing", + "continuing", + "done" + ] + } + } + } + } + } +} diff --git a/codegen/src/main/resources/codegen-data/ari_6_0_0/recordings.json b/codegen/src/main/resources/codegen-data/ari_6_0_0/recordings.json new file mode 100644 index 00000000..6ffd6d8e --- /dev/null +++ b/codegen/src/main/resources/codegen-data/ari_6_0_0/recordings.json @@ -0,0 +1,413 @@ +{ + "_copyright": "Copyright (C) 2012 - 2013, Digium, Inc.", + "_author": "David M. Lee, II ", + "_svn_revision": "$Revision$", + "apiVersion": "2.0.0", + "swaggerVersion": "1.1", + "basePath": "http://localhost:8088/ari", + "resourcePath": "/api-docs/recordings.{format}", + "requiresModules": [ + "res_stasis_recording" + ], + "apis": [ + { + "path": "/recordings/stored", + "description": "Recordings", + "operations": [ + { + "httpMethod": "GET", + "summary": "List recordings that are complete.", + "nickname": "listStored", + "responseClass": "List[StoredRecording]" + } + ] + }, + { + "path": "/recordings/stored/{recordingName}", + "description": "Individual recording", + "operations": [ + { + "httpMethod": "GET", + "summary": "Get a stored recording's details.", + "nickname": "getStored", + "responseClass": "StoredRecording", + "parameters": [ + { + "name": "recordingName", + "description": "The name of the recording", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Recording not found" + } + ] + }, + { + "httpMethod": "DELETE", + "summary": "Delete a stored recording.", + "nickname": "deleteStored", + "responseClass": "void", + "parameters": [ + { + "name": "recordingName", + "description": "The name of the recording", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Recording not found" + } + ] + } + ] + }, + { + "path": "/recordings/stored/{recordingName}/file", + "description": "The actual file associated with the stored recording", + "operations": [ + { + "httpMethod": "GET", + "summary": "Get the file associated with the stored recording.", + "nickname": "getStoredFile", + "responseClass": "binary", + "parameters": [ + { + "name": "recordingName", + "description": "The name of the recording", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 403, + "reason": "The recording file could not be opened" + }, + { + "code": 404, + "reason": "Recording not found" + } + ] + } + ] + }, + { + "path": "/recordings/stored/{recordingName}/copy", + "description": "Copy an individual recording", + "operations": [ + { + "httpMethod": "POST", + "summary": "Copy a stored recording.", + "nickname": "copyStored", + "responseClass": "StoredRecording", + "parameters": [ + { + "name": "recordingName", + "description": "The name of the recording to copy", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "destinationRecordingName", + "description": "The destination name of the recording", + "paramType": "query", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Recording not found" + }, + { + "code": 409, + "reason": "A recording with the same name already exists on the system" + } + ] + } + ] + }, + { + "path": "/recordings/live/{recordingName}", + "description": "A recording that is in progress", + "operations": [ + { + "httpMethod": "GET", + "summary": "List live recordings.", + "nickname": "getLive", + "responseClass": "LiveRecording", + "parameters": [ + { + "name": "recordingName", + "description": "The name of the recording", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Recording not found" + } + ] + }, + { + "httpMethod": "DELETE", + "summary": "Stop a live recording and discard it.", + "nickname": "cancel", + "responseClass": "void", + "parameters": [ + { + "name": "recordingName", + "description": "The name of the recording", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Recording not found" + } + ] + } + ] + }, + { + "path": "/recordings/live/{recordingName}/stop", + "operations": [ + { + "httpMethod": "POST", + "summary": "Stop a live recording and store it.", + "nickname": "stop", + "responseClass": "void", + "parameters": [ + { + "name": "recordingName", + "description": "The name of the recording", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Recording not found" + } + ] + } + ] + }, + { + "path": "/recordings/live/{recordingName}/pause", + "operations": [ + { + "httpMethod": "POST", + "summary": "Pause a live recording.", + "notes": "Pausing a recording suspends silence detection, which will be restarted when the recording is unpaused. Paused time is not included in the accounting for maxDurationSeconds.", + "nickname": "pause", + "responseClass": "void", + "parameters": [ + { + "name": "recordingName", + "description": "The name of the recording", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Recording not found" + }, + { + "code": 409, + "reason": "Recording not in session" + } + ] + }, + { + "httpMethod": "DELETE", + "summary": "Unpause a live recording.", + "nickname": "unpause", + "responseClass": "void", + "parameters": [ + { + "name": "recordingName", + "description": "The name of the recording", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Recording not found" + }, + { + "code": 409, + "reason": "Recording not in session" + } + ] + } + ] + }, + { + "path": "/recordings/live/{recordingName}/mute", + "operations": [ + { + "httpMethod": "POST", + "summary": "Mute a live recording.", + "notes": "Muting a recording suspends silence detection, which will be restarted when the recording is unmuted.", + "nickname": "mute", + "responseClass": "void", + "parameters": [ + { + "name": "recordingName", + "description": "The name of the recording", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Recording not found" + }, + { + "code": 409, + "reason": "Recording not in session" + } + ] + }, + { + "httpMethod": "DELETE", + "summary": "Unmute a live recording.", + "nickname": "unmute", + "responseClass": "void", + "parameters": [ + { + "name": "recordingName", + "description": "The name of the recording", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Recording not found" + }, + { + "code": 409, + "reason": "Recording not in session" + } + ] + } + ] + } + ], + "models": { + "StoredRecording": { + "id": "StoredRecording", + "description": "A past recording that may be played back.", + "properties": { + "name": { + "required": true, + "type": "string" + }, + "format": { + "required": true, + "type": "string" + } + } + }, + "LiveRecording": { + "id": "LiveRecording", + "description": "A recording that is in progress", + "properties": { + "name": { + "required": true, + "type": "string", + "description": "Base name for the recording" + }, + "format": { + "required": true, + "type": "string", + "description": "Recording format (wav, gsm, etc.)" + }, + "target_uri": { + "required": true, + "type": "string", + "description": "URI for the channel or bridge being recorded" + }, + "state": { + "required": true, + "type": "string", + "allowableValues": { + "valueType": "LIST", + "values": [ + "queued", + "recording", + "paused", + "done", + "failed", + "canceled" + ] + } + }, + "duration": { + "required": false, + "type": "int", + "description": "Duration in seconds of the recording" + }, + "talking_duration": { + "required": false, + "type": "int", + "description": "Duration of talking, in seconds, detected in the recording. This is only available if the recording was initiated with a non-zero maxSilenceSeconds." + }, + "silence_duration": { + "required": false, + "type": "int", + "description": "Duration of silence, in seconds, detected in the recording. This is only available if the recording was initiated with a non-zero maxSilenceSeconds." + }, + "cause": { + "required": false, + "type": "string", + "description": "Cause for recording failure if failed" + } + } + } + } +} diff --git a/codegen/src/main/resources/codegen-data/ari_6_0_0/sounds.json b/codegen/src/main/resources/codegen-data/ari_6_0_0/sounds.json new file mode 100644 index 00000000..8fbe1c57 --- /dev/null +++ b/codegen/src/main/resources/codegen-data/ari_6_0_0/sounds.json @@ -0,0 +1,99 @@ +{ + "_copyright": "Copyright (C) 2012 - 2013, Digium, Inc.", + "_author": "David M. Lee, II ", + "_svn_revision": "$Revision$", + "apiVersion": "2.0.0", + "swaggerVersion": "1.1", + "basePath": "http://localhost:8088/ari", + "resourcePath": "/api-docs/sounds.{format}", + "apis": [ + { + "path": "/sounds", + "description": "Sounds", + "operations": [ + { + "httpMethod": "GET", + "summary": "List all sounds.", + "nickname": "list", + "responseClass": "List[Sound]", + "parameters": [ + { + "name": "lang", + "description": "Lookup sound for a specific language.", + "paramType": "query", + "dataType": "string", + "required": false + }, + { + "name": "format", + "description": "Lookup sound in a specific format.", + "paramType": "query", + "dataType": "string", + "required": false, + "__note": "core show translation can show translation paths between formats, along with relative costs. so this could be just installed format, or we could follow that for transcoded formats." + } + ] + } + ] + }, + { + "path": "/sounds/{soundId}", + "description": "Individual sound", + "operations": [ + { + "httpMethod": "GET", + "summary": "Get a sound's details.", + "nickname": "get", + "responseClass": "Sound", + "parameters": [ + { + "name": "soundId", + "description": "Sound's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ] + } + ] + } + ], + "models": { + "FormatLangPair": { + "id": "FormatLangPair", + "description": "Identifies the format and language of a sound file", + "properties": { + "language": { + "required": true, + "type": "string" + }, + "format": { + "required": true, + "type": "string" + } + } + }, + "Sound": { + "id": "Sound", + "description": "A media file that may be played back.", + "properties": { + "id": { + "required": true, + "description": "Sound's identifier.", + "type": "string" + }, + "text": { + "required": false, + "description": "Text description of the sound, usually the words spoken.", + "type": "string" + }, + "formats": { + "required": true, + "description": "The formats and languages in which this sound is available.", + "type": "List[FormatLangPair]" + } + } + } + } +} From 7ae2e4f73447f2746bf580d0d2545e39827fda03 Mon Sep 17 00:00:00 2001 From: Graham Brown Date: Sun, 13 Oct 2019 21:32:25 +0200 Subject: [PATCH 051/220] prepare 0.6.0 & tidy up readme --- README.md | 98 +++++++++++++++++++++++++--------------------------- build.gradle | 4 +-- 2 files changed, 49 insertions(+), 53 deletions(-) diff --git a/README.md b/README.md index 0149ffa3..468b0d38 100644 --- a/README.md +++ b/README.md @@ -3,12 +3,12 @@ ari4java The Asterisk REST Interface (ARI) bindings for Java. - [ ![Download](https://api.bintray.com/packages/lenz/maven/ari4java/images/download.png) ](https://bintray.com/lenz/maven/ari4java/_latestVersion) +[![Download](https://api.bintray.com/packages/ari4java/maven/ari4java/images/download.png)](https://bintray.com/ari4java/maven/ari4java/_latestVersion) Description ----------- -ARI is an interface available on Asterisk 12/13/14/15 that lets you write applications +ARI is an interface available on Asterisk 11+ that lets you write applications that run externally and control call flow through REST calls while receiving events on a websocket. @@ -29,16 +29,14 @@ Using the library If you use Gradle (or any tool using Maven dependencies) you can simply declare the lib as: - - repositories { + repositories { mavenCentral() jcenter() - } - - - dependencies { - compile 'ch.loway.oss.ari4java:ari4java:0.5.1' - } + } + + dependencies { + compile 'ch.loway.oss.ari4java:ari4java:0.6.0' + } This will download the package and all required dependencies. @@ -58,7 +56,7 @@ Testing and packaging The easiest way to build is simply using the Gradle Wrapper script supplied. - ./gradlew clean build + ./gradlew clean build This will compile, test and package the current version. You'll find the resulting jar file under 'build/libs'. @@ -76,6 +74,7 @@ The project requires: Status ------ +* 19.10.13 - Rel 0.6.0. Project restructure and include all past and present versions of ARI * 19.04.03 - Rel 0.5.1. Goodbye Naama! * 19.01.07 - Support java 9 (#108), code generation from gradle(#110), fixed unsubscribing from application correctly(#59), added event interface inheritance(#106) rel 0.5.0 * 17.12.19 - Added support for ARI 3.0.0 (#78) @@ -107,50 +106,50 @@ To use the Netty.io HTTP+WS implementation, include netty-all-4.0.12.Final.jar o To initialize: - ARI ari = new ARI(); - NettyHttpClient hc = new NettyHttpClient(); - hc.initialize("http://my-pbx-ip:8088/", "admin", "admin"); - ari.setHttpClient(hc); - ari.setWsClient(hc); - ari.setVersion(AriVersion.ARI_0_0_1); + ARI ari = new ARI(); + NettyHttpClient hc = new NettyHttpClient(); + hc.initialize("http://my-pbx-ip:8088/", "admin", "admin"); + ari.setHttpClient(hc); + ari.setWsClient(hc); + ari.setVersion(AriVersion.ARI_0_0_1); or make your life easier by using the convenience method supplied in AriFactory. - + Sample synchronous call: - ActionApplications ac = ari.getActionImpl(ActionApplications.class); - List alist = ac.list(); + ActionApplications ac = ari.getActionImpl(ActionApplications.class); + List alist = ac.list(); Sample asynchronous call: - ActionAsterisk aa = ari.getActionImpl(ActionAsterisk.class); - aa.getGlobalVar("AMPMGRPASS", new AriCallback() { - @Override - public void onSuccess(Variable result) { - // Let's do something with the returned value - } - @Override - public void onFailure(RestException e) { - e.printStackTrace(); - } - }); - + ActionAsterisk aa = ari.getActionImpl(ActionAsterisk.class); + aa.getGlobalVar("AMPMGRPASS", new AriCallback() { + @Override + public void onSuccess(Variable result) { + // Let's do something with the returned value + } + @Override + public void onFailure(RestException e) { + e.printStackTrace(); + } + }); + Sample WebSocket connection, waiting for events on hello and goodbye apps: - ActionEvents ae = ari.getActionImpl(ActionEvents.class); - ae.eventWebsocket("hello,goodbye", new AriCallback() { - @Override - public void onSuccess(Message result) { - // Let's do something with the event - } - @Override - public void onFailure(RestException e) { - e.printStackTrace(); - } - }); - Thread.sleep(5000); // Wait 5 seconds for events - ari.closeAction(ae); // Now close the websocket - + ActionEvents ae = ari.getActionImpl(ActionEvents.class); + ae.eventWebsocket("hello,goodbye", new AriCallback() { + @Override + public void onSuccess(Message result) { + // Let's do something with the event + } + @Override + public void onFailure(RestException e) { + e.printStackTrace(); + } + }); + Thread.sleep(5000); // Wait 5 seconds for events + ari.closeAction(ae); // Now close the websocket + The Message object in the code above will be one of the message subtypes, you will have to introspect to find out which. @@ -166,11 +165,8 @@ To be done Useful links ------------ -* Asterisk 13 docs: https://wiki.asterisk.org/wiki/display/AST/Asterisk+13+Documentation -* Asterisk 13 ARI docs: https://wiki.asterisk.org/wiki/display/AST/Asterisk+13+ARI -* Asterisk 12 docs: https://wiki.asterisk.org/wiki/display/AST/Asterisk+12+Documentation -* Official ARI docs for Asterisk 12: https://wiki.asterisk.org/wiki/display/AST/Asterisk+12+ARI -* ari4java community on Google+: https://plus.google.com/u/0/communities/116130645492865479649 +* Asterisk REST Interface wiki: https://wiki.asterisk.org/wiki/pages/viewpage.action?pageId=29395573 +* Asterisk 16 ARI docs: https://wiki.asterisk.org/wiki/display/AST/Asterisk+16+ARI * Asterisk-app-dev archives: http://lists.digium.com/pipermail/asterisk-app-dev/ diff --git a/build.gradle b/build.gradle index 11ba9371..e7d654ea 100644 --- a/build.gradle +++ b/build.gradle @@ -5,7 +5,7 @@ plugins { } group = 'ch.loway.oss.ari4java' -version = '0.5.1' +version = '0.6.0' sourceSets { main { @@ -111,7 +111,7 @@ bintray { pkg { repo = 'maven' name = project.name - userOrg = System.getenv('BINTRAY_USER') + userOrg = 'ari4java' licenses = ['LGPL-3.0'] vcsUrl = projectUrl version { From ea18843a1a914c1e36d289858afe5180d76e0ec4 Mon Sep 17 00:00:00 2001 From: Graham Brown Date: Mon, 14 Oct 2019 17:47:12 +0200 Subject: [PATCH 052/220] map object to object (addresses issues #12 and #93) --- .../java/ch/loway/oss/ari4java/codegen/genJava/JavaPkgInfo.java | 2 +- .../java/ch/loway/oss/ari4java/codegen/models/ModelField.java | 2 ++ 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/codegen/src/main/java/ch/loway/oss/ari4java/codegen/genJava/JavaPkgInfo.java b/codegen/src/main/java/ch/loway/oss/ari4java/codegen/genJava/JavaPkgInfo.java index f704813f..d773c1f4 100644 --- a/codegen/src/main/java/ch/loway/oss/ari4java/codegen/genJava/JavaPkgInfo.java +++ b/codegen/src/main/java/ch/loway/oss/ari4java/codegen/genJava/JavaPkgInfo.java @@ -18,7 +18,7 @@ public class JavaPkgInfo { TypeMap.put("int", "int"); TypeMap.put("double", "double"); TypeMap.put("date", "Date"); - TypeMap.put("object", "String"); + TypeMap.put("object", "Object"); TypeMap.put("boolean", "boolean"); TypeMap.put("binary", "byte[]"); TypeMap.put("containers", "Map"); diff --git a/codegen/src/main/java/ch/loway/oss/ari4java/codegen/models/ModelField.java b/codegen/src/main/java/ch/loway/oss/ari4java/codegen/models/ModelField.java index 5e854a48..0d2a430b 100644 --- a/codegen/src/main/java/ch/loway/oss/ari4java/codegen/models/ModelField.java +++ b/codegen/src/main/java/ch/loway/oss/ari4java/codegen/models/ModelField.java @@ -31,6 +31,8 @@ public String toString() { if (typeConcrete.startsWith("List")) { String innerType = typeConcrete.substring(5, typeConcrete.length() - 1); sb.append(" @JsonDeserialize( contentAs=").append(innerType).append(".class )\n"); + } else if ("Object".equals(typeConcrete)) { + sb.append(" @JsonDeserialize( using=com.fasterxml.jackson.databind.deser.std.UntypedObjectDeserializer.class").append(" )\n"); } else { sb.append(" @JsonDeserialize( as=").append(typeConcrete).append(".class )\n"); } From ad981fb7029b157382077807f6b281113ba01014 Mon Sep 17 00:00:00 2001 From: Graham Brown Date: Mon, 14 Oct 2019 18:18:34 +0200 Subject: [PATCH 053/220] optional turn on don't fail unknown properties #72 --- src/main/java/ch/loway/oss/ari4java/tools/BaseAriAction.java | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/src/main/java/ch/loway/oss/ari4java/tools/BaseAriAction.java b/src/main/java/ch/loway/oss/ari4java/tools/BaseAriAction.java index 7df220bd..ebc1abc6 100644 --- a/src/main/java/ch/loway/oss/ari4java/tools/BaseAriAction.java +++ b/src/main/java/ch/loway/oss/ari4java/tools/BaseAriAction.java @@ -4,6 +4,7 @@ import ch.loway.oss.ari4java.tools.WsClient.WsClientConnection; import com.fasterxml.jackson.core.type.TypeReference; +import com.fasterxml.jackson.databind.DeserializationFeature; import com.fasterxml.jackson.databind.ObjectMapper; import java.io.IOException; import java.util.ArrayList; @@ -226,6 +227,10 @@ public synchronized void setWsClient(WsClient wsClient) { public synchronized void setLiveActionList(List liveActionList) { this.liveActionList = liveActionList; } + + public static void setObjectMapperLessStrict() { + mapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false); + } } // From 73e90ebf28c06335dcfde03c32322c21d786d96a Mon Sep 17 00:00:00 2001 From: Graham Brown Date: Tue, 15 Oct 2019 08:49:31 +0200 Subject: [PATCH 054/220] change less strict to use a handler so we can log issues (once there's a logger) --- .../oss/ari4java/tools/BaseAriAction.java | 18 ++++++++++++++++-- 1 file changed, 16 insertions(+), 2 deletions(-) diff --git a/src/main/java/ch/loway/oss/ari4java/tools/BaseAriAction.java b/src/main/java/ch/loway/oss/ari4java/tools/BaseAriAction.java index ebc1abc6..d54ebb91 100644 --- a/src/main/java/ch/loway/oss/ari4java/tools/BaseAriAction.java +++ b/src/main/java/ch/loway/oss/ari4java/tools/BaseAriAction.java @@ -3,11 +3,17 @@ import ch.loway.oss.ari4java.generated.Message; import ch.loway.oss.ari4java.tools.WsClient.WsClientConnection; +import com.fasterxml.jackson.core.JsonParser; import com.fasterxml.jackson.core.type.TypeReference; -import com.fasterxml.jackson.databind.DeserializationFeature; +import com.fasterxml.jackson.databind.DeserializationContext; +import com.fasterxml.jackson.databind.JsonDeserializer; import com.fasterxml.jackson.databind.ObjectMapper; +import com.fasterxml.jackson.databind.deser.DeserializationProblemHandler; +import com.fasterxml.jackson.databind.exc.UnrecognizedPropertyException; + import java.io.IOException; import java.util.ArrayList; +import java.util.Collection; import java.util.List; /** @@ -229,7 +235,15 @@ public synchronized void setLiveActionList(List liveActionList) { } public static void setObjectMapperLessStrict() { - mapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false); + mapper.addHandler(new DeserializationProblemHandler() { + @Override + public boolean handleUnknownProperty(DeserializationContext ctxt, JsonParser p, JsonDeserializer deserializer, Object beanOrClass, String propertyName) throws IOException { + Collection propIds = (deserializer == null) ? null : deserializer.getKnownPropertyNames(); + UnrecognizedPropertyException e = UnrecognizedPropertyException.from(p, beanOrClass, propertyName, propIds); + // TODO log a warning, once there is a logger... + return e.toString().length() > 0; + } + }); } } From 6885e29ab8e9b551cffe8656dade1557fc778227 Mon Sep 17 00:00:00 2001 From: Graham Brown Date: Thu, 7 Nov 2019 19:28:01 +0200 Subject: [PATCH 055/220] fix object mapping when body has an object parameter --- .../oss/ari4java/codegen/models/Operation.java | 5 ++++- .../ch/loway/oss/ari4java/tools/BaseAriAction.java | 14 ++++++++++++++ 2 files changed, 18 insertions(+), 1 deletion(-) diff --git a/codegen/src/main/java/ch/loway/oss/ari4java/codegen/models/Operation.java b/codegen/src/main/java/ch/loway/oss/ari4java/codegen/models/Operation.java index aef6aa92..b4aa16cb 100644 --- a/codegen/src/main/java/ch/loway/oss/ari4java/codegen/models/Operation.java +++ b/codegen/src/main/java/ch/loway/oss/ari4java/codegen/models/Operation.java @@ -69,9 +69,12 @@ public String toJava(Action parent) { sb.append("lParamForm.add( HttpParam.build( \"").append(p.name) .append("\", ").append(p.name).append(") );\n"); } else if (p.type == ParamType.BODY) { - if (!"String".equals(p.javaType)) { + if ("Map".equals(p.javaType)) { sb.append("lParamBody.addAll( HttpParam.build( \"").append(p.name) .append("\", ").append(p.name).append(") );\n"); + } else if ("Object".equals(p.javaType)) { + sb.append("lParamBody.add( HttpParam.build( \"").append(p.name) + .append("\", serializeToJson( ").append(p.name).append(" ) ) );\n"); } else { sb.append("lParamBody.add( HttpParam.build( \"").append(p.name) .append("\", ").append(p.name).append(") );\n"); diff --git a/src/main/java/ch/loway/oss/ari4java/tools/BaseAriAction.java b/src/main/java/ch/loway/oss/ari4java/tools/BaseAriAction.java index d54ebb91..51a7c936 100644 --- a/src/main/java/ch/loway/oss/ari4java/tools/BaseAriAction.java +++ b/src/main/java/ch/loway/oss/ari4java/tools/BaseAriAction.java @@ -128,6 +128,20 @@ protected void httpActionAsync( httpActionAsync(new AriAsyncHandler(callback, klazzType)); } + /** + * Serialize an object to json + * + * @param obj the Object + * @return String + */ + public static String serializeToJson(Object obj) { + try { + return mapper.writeValueAsString(obj); + } catch (IOException e) { + throw new RuntimeException("Encoding JSON: " + e.getMessage(), e); + } + } + /** * Deserialize a type * From d604d302df57559fe5ed42317133fda4790dde25 Mon Sep 17 00:00:00 2001 From: Graham Brown Date: Thu, 7 Nov 2019 19:28:37 +0200 Subject: [PATCH 056/220] 0.6.1 --- README.md | 1 + build.gradle | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index 468b0d38..ed2a7818 100644 --- a/README.md +++ b/README.md @@ -74,6 +74,7 @@ The project requires: Status ------ +* 19.11.07 - Rel 0.6.1. Codegen bug fixes for object and rebuild with latest ARI api docs * 19.10.13 - Rel 0.6.0. Project restructure and include all past and present versions of ARI * 19.04.03 - Rel 0.5.1. Goodbye Naama! * 19.01.07 - Support java 9 (#108), code generation from gradle(#110), fixed unsubscribing from application correctly(#59), added event interface inheritance(#106) rel 0.5.0 diff --git a/build.gradle b/build.gradle index e7d654ea..7427239e 100644 --- a/build.gradle +++ b/build.gradle @@ -5,7 +5,7 @@ plugins { } group = 'ch.loway.oss.ari4java' -version = '0.6.0' +version = '0.6.1' sourceSets { main { From 1418fff6bac82210c9f2f2d071673f6a918f46c7 Mon Sep 17 00:00:00 2001 From: Graham Brown Date: Thu, 7 Nov 2019 21:24:44 +0200 Subject: [PATCH 057/220] add repo to new organisation and bump version --- README.md | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index ed2a7818..50a9cdd8 100644 --- a/README.md +++ b/README.md @@ -30,15 +30,19 @@ Using the library If you use Gradle (or any tool using Maven dependencies) you can simply declare the lib as: repositories { + maven { + url "https://dl.bintray.com/ari4java/maven" + } mavenCentral() jcenter() } dependencies { - compile 'ch.loway.oss.ari4java:ari4java:0.6.0' + compile 'ch.loway.oss.ari4java:ari4java:0.6.1' } This will download the package and all required dependencies. +*The 1st repo declaration is temporary as we sort out moving from a private repo to an organization* Building ======== From d30ca3853480234bc05c092432f0c5224b425e16 Mon Sep 17 00:00:00 2001 From: lenz Date: Mon, 11 Nov 2019 09:18:51 +0100 Subject: [PATCH 058/220] Publishing of new version --- .java-version | 1 - NEWVERSION.md | 14 ++++++++++++++ build.gradle | 8 +++++--- 3 files changed, 19 insertions(+), 4 deletions(-) delete mode 100644 .java-version diff --git a/.java-version b/.java-version deleted file mode 100644 index d3bdbdf1..00000000 --- a/.java-version +++ /dev/null @@ -1 +0,0 @@ -1.7 diff --git a/NEWVERSION.md b/NEWVERSION.md index 8aff44ca..15ee0343 100644 --- a/NEWVERSION.md +++ b/NEWVERSION.md @@ -17,3 +17,17 @@ In the main source tree: - in ARI.java, edit the build() function to get you the correct objects + + + +## Deployment + +When a release is ready: + + + export BINTRAY_KEY={bintray.txt} + + ./gradlew clean test jar + ./gradlew bintrayUpload + + diff --git a/build.gradle b/build.gradle index 7427239e..ce725210 100644 --- a/build.gradle +++ b/build.gradle @@ -86,6 +86,7 @@ publishing { publications { mavenPublication(MavenPublication) { from components.java + groupId = "ch.loway.oss.ari4java" artifact sourcesJar { classifier "sources" } @@ -104,14 +105,15 @@ publishing { } bintray { - user = System.getenv('BINTRAY_USER') - key = System.getenv('BINTRAY_KEY') + user = "lenz" // System.getenv('BINTRAY_USER') + key = System.getenv('BINTRAY_KEY') publications = ['mavenPublication'] publish = true pkg { repo = 'maven' name = project.name - userOrg = 'ari4java' + group = "ch.loway.oss.ari4java" + //userOrg = 'ari4java' licenses = ['LGPL-3.0'] vcsUrl = projectUrl version { From a580a7742aadbbd89ec211c817ea288a48b68116 Mon Sep 17 00:00:00 2001 From: VP Date: Tue, 10 Dec 2019 18:03:08 +0300 Subject: [PATCH 059/220] 1 Changing JSON body shaping to fix object addition error --- .../ari4java/tools/http/NettyHttpClient.java | 24 ++++++++++++++----- 1 file changed, 18 insertions(+), 6 deletions(-) diff --git a/src/main/java/ch/loway/oss/ari4java/tools/http/NettyHttpClient.java b/src/main/java/ch/loway/oss/ari4java/tools/http/NettyHttpClient.java index 9146b6c9..7c6a807a 100644 --- a/src/main/java/ch/loway/oss/ari4java/tools/http/NettyHttpClient.java +++ b/src/main/java/ch/loway/oss/ari4java/tools/http/NettyHttpClient.java @@ -177,20 +177,32 @@ private HttpRequest buildRequest(String path, String method, List par request.headers().set(HttpHeaders.Names.CONNECTION, HttpHeaders.Values.CLOSE); return request; } - + private String makeBodyVariables(List variables) { StringBuilder varBuilder = new StringBuilder(); - varBuilder.append("{").append("\"variables\": {"); + varBuilder.append("{").append("\"fields\": ["); Iterator entryIterator = variables.iterator(); - while(entryIterator.hasNext()) { + while (entryIterator.hasNext()) { HttpParam param = entryIterator.next(); - varBuilder.append("\"").append(param.name).append("\"").append(": ").append("\"").append(param.value).append("\""); + varBuilder.append("{\"") + .append("attribute") + .append("\"") + .append(": ") + .append("\"") + .append(param.name) + .append("\",") + .append("\"") + .append("value") + .append("\"") + .append(": ") + .append("\"") + .append(param.value) + .append("\"}"); if (entryIterator.hasNext()) { varBuilder.append(","); } } - varBuilder.append("}}"); - + varBuilder.append("]}"); return varBuilder.toString(); } From b363f7aaf69b938367ca4dc8a24a06499123f4e4 Mon Sep 17 00:00:00 2001 From: jeff Date: Sun, 15 Dec 2019 10:19:29 -0500 Subject: [PATCH 060/220] add mailboxes() to ari --- src/main/java/ch/loway/oss/ari4java/ARI.java | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/src/main/java/ch/loway/oss/ari4java/ARI.java b/src/main/java/ch/loway/oss/ari4java/ARI.java index c86d60b5..3ba256f7 100644 --- a/src/main/java/ch/loway/oss/ari4java/ARI.java +++ b/src/main/java/ch/loway/oss/ari4java/ARI.java @@ -8,6 +8,7 @@ import ch.loway.oss.ari4java.generated.ActionDeviceStates; import ch.loway.oss.ari4java.generated.ActionEndpoints; import ch.loway.oss.ari4java.generated.ActionEvents; +import ch.loway.oss.ari4java.generated.ActionMailboxes; import ch.loway.oss.ari4java.generated.ActionPlaybacks; import ch.loway.oss.ari4java.generated.ActionRecordings; import ch.loway.oss.ari4java.generated.ActionSounds; @@ -493,6 +494,12 @@ public ActionChannels channels() { return (ActionChannels) setupAction(version.builder().actionChannels()); } + + public ActionMailboxes mailboxes() { + return (ActionMailboxes) setupAction(version.builder().actionMailboxes()); + } + + /** * Gets us a ready to use object. * From ce44bad22615dcb5ea0ef119c478319c5bc619b9 Mon Sep 17 00:00:00 2001 From: VP Date: Thu, 19 Dec 2019 18:27:47 +0300 Subject: [PATCH 061/220] 2. Changing the json type and header. --- .../loway/oss/ari4java/tools/HttpParam.java | 1 + .../ari4java/tools/http/NettyHttpClient.java | 41 ++++++++++++------- 2 files changed, 27 insertions(+), 15 deletions(-) diff --git a/src/main/java/ch/loway/oss/ari4java/tools/HttpParam.java b/src/main/java/ch/loway/oss/ari4java/tools/HttpParam.java index a39862a9..095e9238 100644 --- a/src/main/java/ch/loway/oss/ari4java/tools/HttpParam.java +++ b/src/main/java/ch/loway/oss/ari4java/tools/HttpParam.java @@ -23,6 +23,7 @@ public static HttpParam build(String n, String v) { public static List build(String key, Map variables) { ArrayList vars = new ArrayList<>(); if (variables != null) { + vars.add(build("jsonHeader", key)); for (Map.Entry entry : variables.entrySet()) { vars.add(build(entry.getKey(), entry.getValue())); } diff --git a/src/main/java/ch/loway/oss/ari4java/tools/http/NettyHttpClient.java b/src/main/java/ch/loway/oss/ari4java/tools/http/NettyHttpClient.java index 7c6a807a..7f543118 100644 --- a/src/main/java/ch/loway/oss/ari4java/tools/http/NettyHttpClient.java +++ b/src/main/java/ch/loway/oss/ari4java/tools/http/NettyHttpClient.java @@ -27,6 +27,7 @@ import java.nio.charset.StandardCharsets; import java.util.Iterator; import java.util.List; +import java.util.Objects; import java.util.concurrent.TimeUnit; /** @@ -166,7 +167,7 @@ private HttpRequest buildRequest(String path, String method, List par HttpVersion.HTTP_1_1, HttpMethod.valueOf(method), url); //System.out.println(request.getUri()); if (parametersBody != null && !parametersBody.isEmpty()) { - String vars = makeBodyVariables(parametersBody); + String vars = makeJson(parametersBody); ByteBuf bbuf = Unpooled.copiedBuffer(vars, StandardCharsets.UTF_8); request.headers().add(HttpHeaders.Names.CONTENT_TYPE, "application/json"); @@ -178,26 +179,36 @@ private HttpRequest buildRequest(String path, String method, List par return request; } + private String makeJson(List variables) { + String jsonHeader = variables.remove(0).value; + return Objects.equals(jsonHeader, "fields") ? makeBodyFields(variables) : makeBodyVariables(variables); + } + private String makeBodyVariables(List variables) { + StringBuilder varBuilder = new StringBuilder(); + varBuilder.append("{").append("\"variables\": {"); + Iterator entryIterator = variables.iterator(); + while(entryIterator.hasNext()) { + HttpParam param = entryIterator.next(); + varBuilder.append("\"").append(param.name).append("\"").append(": ").append("\"").append(param.value).append("\""); + if (entryIterator.hasNext()) { + varBuilder.append(","); + } + } + varBuilder.append("}}"); + return varBuilder.toString(); + } + + private String makeBodyFields(List variables) { StringBuilder varBuilder = new StringBuilder(); varBuilder.append("{").append("\"fields\": ["); Iterator entryIterator = variables.iterator(); while (entryIterator.hasNext()) { HttpParam param = entryIterator.next(); - varBuilder.append("{\"") - .append("attribute") - .append("\"") - .append(": ") - .append("\"") - .append(param.name) - .append("\",") - .append("\"") - .append("value") - .append("\"") - .append(": ") - .append("\"") - .append(param.value) - .append("\"}"); + varBuilder.append("{") + .append("\"").append("attribute").append("\"").append(": ").append("\"").append(param.name).append("\",") + .append("\"").append("value").append("\"").append(": ").append("\"").append(param.value).append("\"") + .append("}"); if (entryIterator.hasNext()) { varBuilder.append(","); } From eec6e3c6f5c784383e2e2937c959f55d2b389c89 Mon Sep 17 00:00:00 2001 From: VP Date: Fri, 20 Dec 2019 08:47:01 +0300 Subject: [PATCH 062/220] 2. Changing the json type and header. --- src/main/java/ch/loway/oss/ari4java/tools/HttpParam.java | 2 +- .../ch/loway/oss/ari4java/tools/http/NettyHttpClient.java | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/main/java/ch/loway/oss/ari4java/tools/HttpParam.java b/src/main/java/ch/loway/oss/ari4java/tools/HttpParam.java index 095e9238..726c9e92 100644 --- a/src/main/java/ch/loway/oss/ari4java/tools/HttpParam.java +++ b/src/main/java/ch/loway/oss/ari4java/tools/HttpParam.java @@ -23,7 +23,7 @@ public static HttpParam build(String n, String v) { public static List build(String key, Map variables) { ArrayList vars = new ArrayList<>(); if (variables != null) { - vars.add(build("jsonHeader", key)); + vars.add(build("key", key)); for (Map.Entry entry : variables.entrySet()) { vars.add(build(entry.getKey(), entry.getValue())); } diff --git a/src/main/java/ch/loway/oss/ari4java/tools/http/NettyHttpClient.java b/src/main/java/ch/loway/oss/ari4java/tools/http/NettyHttpClient.java index 7f543118..91e05556 100644 --- a/src/main/java/ch/loway/oss/ari4java/tools/http/NettyHttpClient.java +++ b/src/main/java/ch/loway/oss/ari4java/tools/http/NettyHttpClient.java @@ -180,8 +180,8 @@ private HttpRequest buildRequest(String path, String method, List par } private String makeJson(List variables) { - String jsonHeader = variables.remove(0).value; - return Objects.equals(jsonHeader, "fields") ? makeBodyFields(variables) : makeBodyVariables(variables); + String key = variables.remove(0).value; + return Objects.equals(key, "fields") ? makeBodyFields(variables) : makeBodyVariables(variables); } private String makeBodyVariables(List variables) { From fd2b7b7c7160bcbb3e4cf69b398832dc4c495d88 Mon Sep 17 00:00:00 2001 From: VP Date: Fri, 20 Dec 2019 08:54:04 +0300 Subject: [PATCH 063/220] 2. Changing the json type and header. --- src/main/java/ch/loway/oss/ari4java/tools/HttpParam.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/java/ch/loway/oss/ari4java/tools/HttpParam.java b/src/main/java/ch/loway/oss/ari4java/tools/HttpParam.java index 726c9e92..90a6986d 100644 --- a/src/main/java/ch/loway/oss/ari4java/tools/HttpParam.java +++ b/src/main/java/ch/loway/oss/ari4java/tools/HttpParam.java @@ -22,8 +22,8 @@ public static HttpParam build(String n, String v) { public static List build(String key, Map variables) { ArrayList vars = new ArrayList<>(); + vars.add(build("key", key)); if (variables != null) { - vars.add(build("key", key)); for (Map.Entry entry : variables.entrySet()) { vars.add(build(entry.getKey(), entry.getValue())); } From 6a057508c1691bff12fd9494238083bdd0e08fe1 Mon Sep 17 00:00:00 2001 From: VP Date: Thu, 19 Dec 2019 18:27:47 +0300 Subject: [PATCH 064/220] 2. Changing the json type and header. --- .../loway/oss/ari4java/tools/HttpParam.java | 1 + .../ari4java/tools/http/NettyHttpClient.java | 41 ++++++++++++------- 2 files changed, 27 insertions(+), 15 deletions(-) diff --git a/src/main/java/ch/loway/oss/ari4java/tools/HttpParam.java b/src/main/java/ch/loway/oss/ari4java/tools/HttpParam.java index a39862a9..90a6986d 100644 --- a/src/main/java/ch/loway/oss/ari4java/tools/HttpParam.java +++ b/src/main/java/ch/loway/oss/ari4java/tools/HttpParam.java @@ -22,6 +22,7 @@ public static HttpParam build(String n, String v) { public static List build(String key, Map variables) { ArrayList vars = new ArrayList<>(); + vars.add(build("key", key)); if (variables != null) { for (Map.Entry entry : variables.entrySet()) { vars.add(build(entry.getKey(), entry.getValue())); diff --git a/src/main/java/ch/loway/oss/ari4java/tools/http/NettyHttpClient.java b/src/main/java/ch/loway/oss/ari4java/tools/http/NettyHttpClient.java index 7c6a807a..91e05556 100644 --- a/src/main/java/ch/loway/oss/ari4java/tools/http/NettyHttpClient.java +++ b/src/main/java/ch/loway/oss/ari4java/tools/http/NettyHttpClient.java @@ -27,6 +27,7 @@ import java.nio.charset.StandardCharsets; import java.util.Iterator; import java.util.List; +import java.util.Objects; import java.util.concurrent.TimeUnit; /** @@ -166,7 +167,7 @@ private HttpRequest buildRequest(String path, String method, List par HttpVersion.HTTP_1_1, HttpMethod.valueOf(method), url); //System.out.println(request.getUri()); if (parametersBody != null && !parametersBody.isEmpty()) { - String vars = makeBodyVariables(parametersBody); + String vars = makeJson(parametersBody); ByteBuf bbuf = Unpooled.copiedBuffer(vars, StandardCharsets.UTF_8); request.headers().add(HttpHeaders.Names.CONTENT_TYPE, "application/json"); @@ -178,26 +179,36 @@ private HttpRequest buildRequest(String path, String method, List par return request; } + private String makeJson(List variables) { + String key = variables.remove(0).value; + return Objects.equals(key, "fields") ? makeBodyFields(variables) : makeBodyVariables(variables); + } + private String makeBodyVariables(List variables) { + StringBuilder varBuilder = new StringBuilder(); + varBuilder.append("{").append("\"variables\": {"); + Iterator entryIterator = variables.iterator(); + while(entryIterator.hasNext()) { + HttpParam param = entryIterator.next(); + varBuilder.append("\"").append(param.name).append("\"").append(": ").append("\"").append(param.value).append("\""); + if (entryIterator.hasNext()) { + varBuilder.append(","); + } + } + varBuilder.append("}}"); + return varBuilder.toString(); + } + + private String makeBodyFields(List variables) { StringBuilder varBuilder = new StringBuilder(); varBuilder.append("{").append("\"fields\": ["); Iterator entryIterator = variables.iterator(); while (entryIterator.hasNext()) { HttpParam param = entryIterator.next(); - varBuilder.append("{\"") - .append("attribute") - .append("\"") - .append(": ") - .append("\"") - .append(param.name) - .append("\",") - .append("\"") - .append("value") - .append("\"") - .append(": ") - .append("\"") - .append(param.value) - .append("\"}"); + varBuilder.append("{") + .append("\"").append("attribute").append("\"").append(": ").append("\"").append(param.name).append("\",") + .append("\"").append("value").append("\"").append(": ").append("\"").append(param.value).append("\"") + .append("}"); if (entryIterator.hasNext()) { varBuilder.append(","); } From 4e3c6d82c3620a49814659b191eeb489b1da3ed4 Mon Sep 17 00:00:00 2001 From: Graham Brown Date: Sat, 21 Dec 2019 17:18:52 +0200 Subject: [PATCH 065/220] move mailbox method and add docblock --- src/main/java/ch/loway/oss/ari4java/ARI.java | 17 ++++++++++------- 1 file changed, 10 insertions(+), 7 deletions(-) diff --git a/src/main/java/ch/loway/oss/ari4java/ARI.java b/src/main/java/ch/loway/oss/ari4java/ARI.java index 3ba256f7..1eae55a5 100644 --- a/src/main/java/ch/loway/oss/ari4java/ARI.java +++ b/src/main/java/ch/loway/oss/ari4java/ARI.java @@ -494,16 +494,10 @@ public ActionChannels channels() { return (ActionChannels) setupAction(version.builder().actionChannels()); } - - public ActionMailboxes mailboxes() { - return (ActionMailboxes) setupAction(version.builder().actionMailboxes()); - } - - /** * Gets us a ready to use object. * - * @return a deviceSTates object. + * @return a DeviceStates object. */ public ActionDeviceStates deviceStates() { return (ActionDeviceStates) setupAction(version.builder().actionDeviceStates()); @@ -528,6 +522,15 @@ public ActionEvents events() { return liveActionEvent; } + /** + * Gets us a ready to use object. + * + * @return a Mailboxes object. + */ + public ActionMailboxes mailboxes() { + return (ActionMailboxes) setupAction(version.builder().actionMailboxes()); + } + /** * Gets us a ready to use object. * From d8c3bdc7a64ebd5a6faf521b04ac0048c01a142e Mon Sep 17 00:00:00 2001 From: Graham Brown Date: Sun, 22 Dec 2019 15:25:35 +0200 Subject: [PATCH 066/220] add method to get version string --- .../src/main/java/ch/loway/oss/ari4java/codegen/DefMapper.java | 3 +++ 1 file changed, 3 insertions(+) diff --git a/codegen/src/main/java/ch/loway/oss/ari4java/codegen/DefMapper.java b/codegen/src/main/java/ch/loway/oss/ari4java/codegen/DefMapper.java index 6909b81c..333cdc62 100644 --- a/codegen/src/main/java/ch/loway/oss/ari4java/codegen/DefMapper.java +++ b/codegen/src/main/java/ch/loway/oss/ari4java/codegen/DefMapper.java @@ -250,6 +250,9 @@ public void generateProperties(AriBuilderInterface abi) throws IOException { sbVerEnum.append(" return builder;\n"); sbVerEnum.append(" }\n"); sbVerEnum.append(" }\n\n"); + sbVerEnum.append(" public String version() {\n"); + sbVerEnum.append(" return versionString;\n"); + sbVerEnum.append(" }\n\n"); sbVerEnum.append(" public static AriVersion fromVersionString(String version) throws ARIException {\n"); sbVerEnum.append(" for (AriVersion av: AriVersion.values()) {\n"); sbVerEnum.append(" if (av.builder != null) {\n"); From b7c9e124c99246e2278b001dfc3d61122f437b14 Mon Sep 17 00:00:00 2001 From: Graham Brown Date: Sun, 22 Dec 2019 15:25:52 +0200 Subject: [PATCH 067/220] fix spello --- src/main/java/ch/loway/oss/ari4java/ARI.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/java/ch/loway/oss/ari4java/ARI.java b/src/main/java/ch/loway/oss/ari4java/ARI.java index 1eae55a5..d49dc430 100644 --- a/src/main/java/ch/loway/oss/ari4java/ARI.java +++ b/src/main/java/ch/loway/oss/ari4java/ARI.java @@ -348,7 +348,7 @@ private static String findVersionString(String response) throws ARIException { if (m.find()) { return m.group(1); } else { - throw new ARIException("Cound not match apiVersion "); + throw new ARIException("Could not match apiVersion "); } } From eda76cec080d3cd6af604ad6989729c1e03ec566 Mon Sep 17 00:00:00 2001 From: Graham Brown Date: Sun, 22 Dec 2019 15:28:41 +0200 Subject: [PATCH 068/220] fixed #50 - for `getStoredFile` to work we need to get response from HTTP as bytes then convert to String if JSON else return the bytes --- .../ari4java/codegen/models/Operation.java | 33 ++++++++++--------- .../oss/ari4java/tools/AriAsyncHandler.java | 9 +++++ .../oss/ari4java/tools/BaseAriAction.java | 19 +++++++++-- .../loway/oss/ari4java/tools/HttpClient.java | 4 ++- .../ari4java/tools/HttpResponseHandler.java | 14 ++++++++ .../ari4java/tools/http/NettyHttpClient.java | 25 +++++++++++--- .../tools/http/NettyHttpClientHandler.java | 25 ++++++++------ .../tools/http/NettyWSClientHandler.java | 4 ++- 8 files changed, 99 insertions(+), 34 deletions(-) diff --git a/codegen/src/main/java/ch/loway/oss/ari4java/codegen/models/Operation.java b/codegen/src/main/java/ch/loway/oss/ari4java/codegen/models/Operation.java index b4aa16cb..8a2bde51 100644 --- a/codegen/src/main/java/ch/loway/oss/ari4java/codegen/models/Operation.java +++ b/codegen/src/main/java/ch/loway/oss/ari4java/codegen/models/Operation.java @@ -96,21 +96,23 @@ public String toJava(Action parent) { if (!wsUpgrade) { // 2. Synchronous method sb.append(helperName + "(" + toParmList(false) + ");\n"); - sb.append("String json = httpActionSync();\n"); - if (!responseInterface.equalsIgnoreCase("void")) { - - String deserializationType = responseConcreteClass + ".class"; - - if (responseConcreteClass.startsWith("List<")) { - // (List) mapper.readValue( string, new TypeReference>() {}); - deserializationType = "new TypeReference<" + responseConcreteClass + ">() {}"; - sb.append("return deserializeJsonAsAbstractList( json,\n ") - .append(deserializationType) - .append(" ); \n"); - } else { - sb.append("return deserializeJson( json, ") - .append(deserializationType) - .append(" ); \n"); + if (responseInterface.equalsIgnoreCase("byte[]")) { + sb.append("return httpActionSyncAsBytes();\n"); + } else { + sb.append("String json = httpActionSync();\n"); + + if (!responseInterface.equalsIgnoreCase("void")) { + String deserializationType = responseConcreteClass + ".class"; + if (responseConcreteClass.startsWith("List<")) { + deserializationType = "new TypeReference<" + responseConcreteClass + ">() {}"; + sb.append("return deserializeJsonAsAbstractList( json,\n ") + .append(deserializationType) + .append(" ); \n"); + } else { + sb.append("return deserializeJson( json, ") + .append(deserializationType) + .append(" ); \n"); + } } } } else { @@ -128,7 +130,6 @@ public String toJava(Action parent) { if (!responseInterface.equalsIgnoreCase("void")) { String deserializationType = responseConcreteClass + ".class"; if (responseConcreteClass.startsWith("List<")) { - // (List) mapper.readValue( string, new TypeReference>() {}); deserializationType = "new TypeReference<" + responseConcreteClass + ">() {}"; } sb.append(", " + deserializationType); diff --git a/src/main/java/ch/loway/oss/ari4java/tools/AriAsyncHandler.java b/src/main/java/ch/loway/oss/ari4java/tools/AriAsyncHandler.java index 0d0e265d..ba716e6e 100644 --- a/src/main/java/ch/loway/oss/ari4java/tools/AriAsyncHandler.java +++ b/src/main/java/ch/loway/oss/ari4java/tools/AriAsyncHandler.java @@ -65,6 +65,11 @@ public void onSuccess(String response) { handleResponse(response); } + @Override + public void onSuccess(byte[] response) { + this.callback.onSuccess((T) response); + } + @Override public void onFailure(Throwable e) { this.callback.onFailure(new RestException(e)); @@ -75,6 +80,10 @@ public long getLastResponseTime() { return lastResponseTime; } + @Override + public Class getType() { + return klazz; + } } // $Log$ diff --git a/src/main/java/ch/loway/oss/ari4java/tools/BaseAriAction.java b/src/main/java/ch/loway/oss/ari4java/tools/BaseAriAction.java index 51a7c936..ebc2b6a9 100644 --- a/src/main/java/ch/loway/oss/ari4java/tools/BaseAriAction.java +++ b/src/main/java/ch/loway/oss/ari4java/tools/BaseAriAction.java @@ -79,6 +79,20 @@ protected synchronized String httpActionSync() throws RestException { } } + /** + * Initiate synchronous HTTP interaction with server + * + * @return Response from server + * @throws RestException when error + */ + protected synchronized byte[] httpActionSyncAsBytes() throws RestException { + if (httpClient == null) { + throw new RestException("HTTP client implementation not set"); + } else { + return httpClient.httpActionSyncAsBytes(this.url, this.method, this.lParamQuery, this.lParamForm, this.lParamBody, this.lE); + } + } + /** * Initiate asynchronous HTTP or WebSocket interaction with server * @@ -107,7 +121,8 @@ private synchronized void httpActionAsync(AriAsyncHandler asyncHandler) { asyncHandler.getCallback().onFailure(new RestException("HTTP client implementation not set")); } else { try { - httpClient.httpActionAsync(this.url, this.method, this.lParamQuery, this.lParamForm, this.lParamBody, this.lE, asyncHandler); + boolean binary = byte[].class.equals(asyncHandler.getType()); + httpClient.httpActionAsync(this.url, this.method, this.lParamQuery, this.lParamForm, this.lParamBody, this.lE, asyncHandler, binary); } catch (RestException e) { asyncHandler.getCallback().onFailure(e); } @@ -156,7 +171,7 @@ public static T deserializeJson(String json, Class klazz) throws RestExce try { return mapper.readValue(json, klazz); } catch (IOException e) { - e.printStackTrace(System.err); + //e.printStackTrace(System.err); throw new RestException("Decoding JSON: " + e.getMessage(), e); } } diff --git a/src/main/java/ch/loway/oss/ari4java/tools/HttpClient.java b/src/main/java/ch/loway/oss/ari4java/tools/HttpClient.java index 33fc0f96..78e3dea8 100644 --- a/src/main/java/ch/loway/oss/ari4java/tools/HttpClient.java +++ b/src/main/java/ch/loway/oss/ari4java/tools/HttpClient.java @@ -12,5 +12,7 @@ public interface HttpClient { String httpActionSync(String uri, String method, List parametersQuery, List parametersForm, List parametersBody,List errors) throws RestException; - void httpActionAsync(String uri, String method, List parametersQuery, List parametersForm, List parametersBody, List errors, HttpResponseHandler responseHandler) throws RestException; + byte[] httpActionSyncAsBytes(String uri, String method, List parametersQuery, List parametersForm, List parametersBody,List errors) throws RestException; + + void httpActionAsync(String uri, String method, List parametersQuery, List parametersForm, List parametersBody, List errors, HttpResponseHandler responseHandler, boolean binary) throws RestException; } diff --git a/src/main/java/ch/loway/oss/ari4java/tools/HttpResponseHandler.java b/src/main/java/ch/loway/oss/ari4java/tools/HttpResponseHandler.java index 1d25ec53..5dff11c0 100644 --- a/src/main/java/ch/loway/oss/ari4java/tools/HttpResponseHandler.java +++ b/src/main/java/ch/loway/oss/ari4java/tools/HttpResponseHandler.java @@ -29,6 +29,13 @@ public interface HttpResponseHandler { */ void onSuccess(String response); + /** + * All went well. + * + * @param response res + */ + void onSuccess(byte[] response); + /** * Something bad happened. * @@ -42,4 +49,11 @@ public interface HttpResponseHandler { * @return epoch */ long getLastResponseTime(); + + /** + * To determine if String or Binary response + * + * @return the class + */ + Class getType(); } diff --git a/src/main/java/ch/loway/oss/ari4java/tools/http/NettyHttpClient.java b/src/main/java/ch/loway/oss/ari4java/tools/http/NettyHttpClient.java index 9146b6c9..c0d5b591 100644 --- a/src/main/java/ch/loway/oss/ari4java/tools/http/NettyHttpClient.java +++ b/src/main/java/ch/loway/oss/ari4java/tools/http/NettyHttpClient.java @@ -212,16 +212,29 @@ private RestException makeException(HttpResponseStatus status, String response, @Override public String httpActionSync(String uri, String method, List parametersQuery, List parametersForm, List parametersBody, List errors) throws RestException { + NettyHttpClientHandler handler = httpActionSyncHandler(uri, method, parametersQuery, parametersForm, parametersBody, errors); + return handler.getResponseText(); + } + + // Synchronous HTTP action + @Override + public byte[] httpActionSyncAsBytes(String uri, String method, List parametersQuery, List parametersForm, List parametersBody, + List errors) throws RestException { + NettyHttpClientHandler handler = httpActionSyncHandler(uri, method, parametersQuery, parametersForm, parametersBody, errors); + return handler.getResponseBytes(); + } + + private NettyHttpClientHandler httpActionSyncHandler(String uri, String method, List parametersQuery, List parametersForm, List parametersBody, + List errors) throws RestException { Channel ch; try { HttpRequest request = buildRequest(uri, method, parametersQuery, parametersForm, parametersBody); - //handler.reset(); ch = bootStrap.connect(baseUri.getHost(), baseUri.getPort()).sync().channel(); NettyHttpClientHandler handler = (NettyHttpClientHandler) ch.pipeline().get("http-handler"); ch.writeAndFlush(request); ch.closeFuture().sync(); if ( httpResponseOkay(handler.getResponseStatus())) { - return handler.getResponseText(); + return handler; } else { throw makeException(handler.getResponseStatus(), handler.getResponseText(), errors); } @@ -235,7 +248,7 @@ public String httpActionSync(String uri, String method, List paramete // Asynchronous HTTP action, response is passed to HttpResponseHandler @Override public void httpActionAsync(String uri, String method, List parametersQuery, List parametersForm, List parametersBody, - final List errors, final HttpResponseHandler responseHandler) + final List errors, final HttpResponseHandler responseHandler, boolean binary) throws RestException { try { final HttpRequest request = buildRequest(uri, method, parametersQuery, parametersForm, parametersBody); @@ -259,7 +272,11 @@ public void operationComplete(ChannelFuture future) throws Exception { HttpResponseStatus rStatus = handler.getResponseStatus(); if ( httpResponseOkay(rStatus)) { - responseHandler.onSuccess(handler.getResponseText()); + if (binary) { + responseHandler.onSuccess(handler.getResponseBytes()); + } else { + responseHandler.onSuccess(handler.getResponseText()); + } } else { responseHandler.onFailure(makeException(handler.getResponseStatus(), handler.getResponseText(), errors)); } diff --git a/src/main/java/ch/loway/oss/ari4java/tools/http/NettyHttpClientHandler.java b/src/main/java/ch/loway/oss/ari4java/tools/http/NettyHttpClientHandler.java index 7fb2a4e8..52f5536b 100644 --- a/src/main/java/ch/loway/oss/ari4java/tools/http/NettyHttpClientHandler.java +++ b/src/main/java/ch/loway/oss/ari4java/tools/http/NettyHttpClientHandler.java @@ -5,6 +5,7 @@ import io.netty.channel.SimpleChannelInboundHandler; import io.netty.handler.codec.http.FullHttpResponse; import io.netty.handler.codec.http.HttpResponseStatus; + import java.nio.charset.Charset; /** @@ -17,34 +18,38 @@ @ChannelHandler.Sharable public class NettyHttpClientHandler extends SimpleChannelInboundHandler { - protected String responseText; + protected byte[] responseBytes; protected HttpResponseStatus responseStatus; public void reset() { - responseText = null; + responseBytes = null; responseStatus = null; } @Override protected void channelRead0(ChannelHandlerContext ctx, Object msg) throws Exception { - //Channel ch = ctx.channel(); if (msg instanceof FullHttpResponse) { FullHttpResponse response = (FullHttpResponse) msg; - responseText = response.content().toString(Charset.defaultCharset()); + responseBytes = new byte[response.content().readableBytes()]; + response.content().readBytes(responseBytes); responseStatus = response.getStatus(); - - //System.out.println( "S:" + responseStatus + " T:" + responseText); - } else { // TODO: what? - if ( msg != null ) { - System.out.println( "Unknown object:" + msg); + if (msg != null) { + System.out.println("Unknown object:" + msg); } } } public String getResponseText() { - return responseText; + if (responseBytes == null || responseBytes.length == 0) { + return null; + } + return new String(responseBytes, Charset.defaultCharset()); + } + + public byte[] getResponseBytes() { + return responseBytes; } public HttpResponseStatus getResponseStatus() { diff --git a/src/main/java/ch/loway/oss/ari4java/tools/http/NettyWSClientHandler.java b/src/main/java/ch/loway/oss/ari4java/tools/http/NettyWSClientHandler.java index 52f7fe06..81cc19f6 100644 --- a/src/main/java/ch/loway/oss/ari4java/tools/http/NettyWSClientHandler.java +++ b/src/main/java/ch/loway/oss/ari4java/tools/http/NettyWSClientHandler.java @@ -11,6 +11,8 @@ import io.netty.handler.codec.http.websocketx.*; import io.netty.util.CharsetUtil; +import java.nio.charset.Charset; + /** * NettyWSClientHandler handles the transactions with the remote * WebSocket, forwarding to the client HttpResponseHandler interface. @@ -85,7 +87,7 @@ protected void channelRead0(ChannelHandlerContext ctx, Object msg) throws Except WebSocketFrame frame = (WebSocketFrame) msg; if (frame instanceof TextWebSocketFrame) { TextWebSocketFrame textFrame = (TextWebSocketFrame) frame; - responseText = textFrame.text(); + responseBytes = textFrame.text().getBytes(Charset.defaultCharset()); wsCallback.onSuccess(textFrame.text()); } else if (frame instanceof CloseWebSocketFrame) { ch.close(); From 5ce7e7421a849a9e92e2c0d6f9b618ac217c1507 Mon Sep 17 00:00:00 2001 From: Graham Brown Date: Sun, 22 Dec 2019 15:51:50 +0200 Subject: [PATCH 069/220] prepare 0.7.0 --- README.md | 3 ++- build.gradle | 2 +- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 50a9cdd8..6247bd96 100644 --- a/README.md +++ b/README.md @@ -38,7 +38,7 @@ If you use Gradle (or any tool using Maven dependencies) you can simply declare } dependencies { - compile 'ch.loway.oss.ari4java:ari4java:0.6.1' + compile 'ch.loway.oss.ari4java:ari4java:0.7.0' } This will download the package and all required dependencies. @@ -78,6 +78,7 @@ The project requires: Status ------ +* 19.12.22 - Rel 0.7.0. Treat `fields` as `fields` not `variables` in body parameters; fix `ActionRecordings.getStoredFile()` for `byte[]` & add `ARI.mailboxes()` * 19.11.07 - Rel 0.6.1. Codegen bug fixes for object and rebuild with latest ARI api docs * 19.10.13 - Rel 0.6.0. Project restructure and include all past and present versions of ARI * 19.04.03 - Rel 0.5.1. Goodbye Naama! diff --git a/build.gradle b/build.gradle index ce725210..0dbcf4e5 100644 --- a/build.gradle +++ b/build.gradle @@ -5,7 +5,7 @@ plugins { } group = 'ch.loway.oss.ari4java' -version = '0.6.1' +version = '0.7.0' sourceSets { main { From c83201c412ed94d4fe3adf18820534699711ddbf Mon Sep 17 00:00:00 2001 From: Graham Brown Date: Sun, 22 Dec 2019 16:12:29 +0200 Subject: [PATCH 070/220] change for ari4java org --- build.gradle | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/build.gradle b/build.gradle index 0dbcf4e5..c07d10fe 100644 --- a/build.gradle +++ b/build.gradle @@ -105,7 +105,7 @@ publishing { } bintray { - user = "lenz" // System.getenv('BINTRAY_USER') + user = System.getenv('BINTRAY_USER') key = System.getenv('BINTRAY_KEY') publications = ['mavenPublication'] publish = true @@ -113,7 +113,7 @@ bintray { repo = 'maven' name = project.name group = "ch.loway.oss.ari4java" - //userOrg = 'ari4java' + userOrg = 'ari4java' licenses = ['LGPL-3.0'] vcsUrl = projectUrl version { From 62d0fd6a67af32ce30769315ea845726f7a32a04 Mon Sep 17 00:00:00 2001 From: Graham Brown Date: Sun, 22 Dec 2019 17:00:16 +0200 Subject: [PATCH 071/220] Fixed #54 encoding standardisation --- src/main/java/ch/loway/oss/ari4java/ARI.java | 57 +++++++++---------- .../ari4java/tools/http/NettyHttpClient.java | 11 ++-- .../tools/http/NettyHttpClientHandler.java | 3 +- .../tools/http/NettyWSClientHandler.java | 5 +- .../oss/ari4java/sandbox/TestNettyHttp.java | 56 +++++++++--------- .../oss/ari4java/sandbox/TestNettyWs.java | 3 +- 6 files changed, 70 insertions(+), 65 deletions(-) diff --git a/src/main/java/ch/loway/oss/ari4java/ARI.java b/src/main/java/ch/loway/oss/ari4java/ARI.java index d49dc430..d5716d4a 100644 --- a/src/main/java/ch/loway/oss/ari4java/ARI.java +++ b/src/main/java/ch/loway/oss/ari4java/ARI.java @@ -26,6 +26,7 @@ import ch.loway.oss.ari4java.tools.WsClient; import ch.loway.oss.ari4java.tools.http.NettyHttpClient; import ch.loway.oss.ari4java.tools.tags.EventSource; +import io.netty.util.CharsetUtil; import java.io.BufferedReader; import java.io.InputStream; @@ -34,6 +35,8 @@ import java.net.MalformedURLException; import java.net.URISyntaxException; import java.net.URLConnection; +import java.nio.charset.Charset; +import java.nio.charset.StandardCharsets; import java.util.concurrent.CopyOnWriteArrayList; import java.util.regex.Matcher; import java.util.regex.Pattern; @@ -46,6 +49,7 @@ */ public class ARI { + public final static Charset ENCODING = StandardCharsets.UTF_8; private final static String ALLOWED_IN_UID = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ"; private String appName = ""; @@ -275,7 +279,6 @@ protected static AriVersion detectAriVersion(String url, String user, String pas */ private static String doHttpGet(String urlWithParms, String user, String pwd) throws ARIException { URL url = null; - final String UTF8 = "UTF-8"; try { url = new URL(urlWithParms); } catch (MalformedURLException e) { @@ -291,43 +294,39 @@ private static String doHttpGet(String urlWithParms, String user, String pwd) th StringBuilder response = new StringBuilder(); - try { - String userpass = user + ":" + pwd; - String basicAuth = "Basic " + javax.xml.bind.DatatypeConverter.printBase64Binary(userpass.getBytes(UTF8)); + String userpass = user + ":" + pwd; + String basicAuth = "Basic " + javax.xml.bind.DatatypeConverter.printBase64Binary(userpass.getBytes(ARI.ENCODING)); - uc.setRequestProperty("Authorization", basicAuth); - InputStream is = null; - try { - is = uc.getInputStream(); - } catch (IOException e) { - throw new ARIException("Cannot connect: " + e.getMessage()); - } + uc.setRequestProperty("Authorization", basicAuth); + InputStream is = null; + try { + is = uc.getInputStream(); + } catch (IOException e) { + throw new ARIException("Cannot connect: " + e.getMessage()); + } - BufferedReader buffReader = new BufferedReader(new InputStreamReader(is, UTF8)); + BufferedReader buffReader = new BufferedReader(new InputStreamReader(is, ARI.ENCODING)); - String line = null; + String line = null; + try { + line = buffReader.readLine(); + } catch (IOException e) { + throw new ARIException("IOException: " + e.getMessage()); + } + while (line != null) { + response.append(line); + response.append('\n'); try { line = buffReader.readLine(); } catch (IOException e) { throw new ARIException("IOException: " + e.getMessage()); } - while (line != null) { - response.append(line); - response.append('\n'); - try { - line = buffReader.readLine(); - } catch (IOException e) { - throw new ARIException("IOException: " + e.getMessage()); - } - } - try { - buffReader.close(); - } catch (IOException e) { - throw new ARIException("IOException: " + e.getMessage()); - } - } catch (UnsupportedEncodingException e) { - throw new ARIException("Nobody is going to believe this: missing encoding UTF8 " + e.getMessage()); + } + try { + buffReader.close(); + } catch (IOException e) { + throw new ARIException("IOException: " + e.getMessage()); } //System.out.println("Response: " + response.toString()); diff --git a/src/main/java/ch/loway/oss/ari4java/tools/http/NettyHttpClient.java b/src/main/java/ch/loway/oss/ari4java/tools/http/NettyHttpClient.java index 58616def..a345d393 100644 --- a/src/main/java/ch/loway/oss/ari4java/tools/http/NettyHttpClient.java +++ b/src/main/java/ch/loway/oss/ari4java/tools/http/NettyHttpClient.java @@ -1,5 +1,6 @@ package ch.loway.oss.ari4java.tools.http; +import ch.loway.oss.ari4java.ARI; import ch.loway.oss.ari4java.tools.*; import ch.loway.oss.ari4java.tools.HttpResponse; import io.netty.bootstrap.Bootstrap; @@ -127,16 +128,16 @@ private String buildURL(String path, List parametersQuery, boolean wi uriBuilder.append("ari"); uriBuilder.append(path); uriBuilder.append("?api_key="); - uriBuilder.append(URLEncoder.encode(username, "UTF-8")); + uriBuilder.append(URLEncoder.encode(username, ARI.ENCODING)); uriBuilder.append(":"); - uriBuilder.append(URLEncoder.encode(password, "UTF-8")); + uriBuilder.append(URLEncoder.encode(password, ARI.ENCODING)); if (parametersQuery != null) { for (HttpParam hp : parametersQuery) { if (hp.value != null && !hp.value.isEmpty()) { uriBuilder.append("&"); uriBuilder.append(hp.name); uriBuilder.append("="); - uriBuilder.append(URLEncoder.encode(hp.value, "UTF-8")); + uriBuilder.append(URLEncoder.encode(hp.value, ARI.ENCODING)); } } } @@ -168,7 +169,7 @@ private HttpRequest buildRequest(String path, String method, List par //System.out.println(request.getUri()); if (parametersBody != null && !parametersBody.isEmpty()) { String vars = makeJson(parametersBody); - ByteBuf bbuf = Unpooled.copiedBuffer(vars, StandardCharsets.UTF_8); + ByteBuf bbuf = Unpooled.copiedBuffer(vars, ARI.ENCODING); request.headers().add(HttpHeaders.Names.CONTENT_TYPE, "application/json"); request.headers().set(HttpHeaders.Names.CONTENT_LENGTH, bbuf.readableBytes()); @@ -383,7 +384,7 @@ private void startPing() { public void run() { if (System.currentTimeMillis() - wsCallback.getLastResponseTime() > 15000) { if (!wsChannelFuture.isCancelled() && wsChannelFuture.channel() != null) { - WebSocketFrame frame = new PingWebSocketFrame(Unpooled.wrappedBuffer("ari4j".getBytes( StandardCharsets.UTF_8 ))); + WebSocketFrame frame = new PingWebSocketFrame(Unpooled.wrappedBuffer("ari4j".getBytes( ARI.ENCODING ))); wsChannelFuture.channel().writeAndFlush(frame); } } diff --git a/src/main/java/ch/loway/oss/ari4java/tools/http/NettyHttpClientHandler.java b/src/main/java/ch/loway/oss/ari4java/tools/http/NettyHttpClientHandler.java index 52f5536b..b0a89c95 100644 --- a/src/main/java/ch/loway/oss/ari4java/tools/http/NettyHttpClientHandler.java +++ b/src/main/java/ch/loway/oss/ari4java/tools/http/NettyHttpClientHandler.java @@ -1,5 +1,6 @@ package ch.loway.oss.ari4java.tools.http; +import ch.loway.oss.ari4java.ARI; import io.netty.channel.ChannelHandler; import io.netty.channel.ChannelHandlerContext; import io.netty.channel.SimpleChannelInboundHandler; @@ -45,7 +46,7 @@ public String getResponseText() { if (responseBytes == null || responseBytes.length == 0) { return null; } - return new String(responseBytes, Charset.defaultCharset()); + return new String(responseBytes, ARI.ENCODING); } public byte[] getResponseBytes() { diff --git a/src/main/java/ch/loway/oss/ari4java/tools/http/NettyWSClientHandler.java b/src/main/java/ch/loway/oss/ari4java/tools/http/NettyWSClientHandler.java index 81cc19f6..59d6c9bd 100644 --- a/src/main/java/ch/loway/oss/ari4java/tools/http/NettyWSClientHandler.java +++ b/src/main/java/ch/loway/oss/ari4java/tools/http/NettyWSClientHandler.java @@ -1,5 +1,6 @@ package ch.loway.oss.ari4java.tools.http; +import ch.loway.oss.ari4java.ARI; import ch.loway.oss.ari4java.tools.HttpResponseHandler; import ch.loway.oss.ari4java.tools.WsClientAutoReconnect; import io.netty.channel.Channel; @@ -76,7 +77,7 @@ protected void channelRead0(ChannelHandlerContext ctx, Object msg) throws Except if (msg instanceof FullHttpResponse) { FullHttpResponse response = (FullHttpResponse) msg; - String error = "Unexpected FullHttpResponse (getStatus=" + response.getStatus() + ", content=" + response.content().toString(CharsetUtil.UTF_8) + ')'; + String error = "Unexpected FullHttpResponse (getStatus=" + response.getStatus() + ", content=" + response.content().toString(ARI.ENCODING) + ')'; System.err.println(error); throw new Exception(error); } @@ -87,7 +88,7 @@ protected void channelRead0(ChannelHandlerContext ctx, Object msg) throws Except WebSocketFrame frame = (WebSocketFrame) msg; if (frame instanceof TextWebSocketFrame) { TextWebSocketFrame textFrame = (TextWebSocketFrame) frame; - responseBytes = textFrame.text().getBytes(Charset.defaultCharset()); + responseBytes = textFrame.text().getBytes(ARI.ENCODING); wsCallback.onSuccess(textFrame.text()); } else if (frame instanceof CloseWebSocketFrame) { ch.close(); diff --git a/src/test/java/ch/loway/oss/ari4java/sandbox/TestNettyHttp.java b/src/test/java/ch/loway/oss/ari4java/sandbox/TestNettyHttp.java index 8ee07eec..1d6b0a84 100644 --- a/src/test/java/ch/loway/oss/ari4java/sandbox/TestNettyHttp.java +++ b/src/test/java/ch/loway/oss/ari4java/sandbox/TestNettyHttp.java @@ -1,5 +1,6 @@ package ch.loway.oss.ari4java.sandbox; +import ch.loway.oss.ari4java.ARI; import io.netty.bootstrap.Bootstrap; import io.netty.channel.Channel; import io.netty.channel.ChannelFuture; @@ -57,20 +58,20 @@ public void channelActive(ChannelHandlerContext ctx) throws Exception { public void channelInactive(ChannelHandlerContext ctx) throws Exception { } - @Override - protected void channelRead0(ChannelHandlerContext ctx, Object msg) - throws Exception { + @Override + protected void channelRead0(ChannelHandlerContext ctx, Object msg) + throws Exception { Channel ch = ctx.channel(); if (msg instanceof FullHttpResponse) { FullHttpResponse response = (FullHttpResponse) msg; - System.out.println("msg="+response); + System.out.println("msg=" + response); BaseAriAction ba = new BaseAriAction(); try { - AsteriskInfo m = ba.deserializeJson(response.content().toString(Charset.defaultCharset()), AsteriskInfo_impl_ari_0_0_1.class); - System.out.println(m); + AsteriskInfo m = ba.deserializeJson(response.content().toString(ARI.ENCODING), AsteriskInfo_impl_ari_0_0_1.class); + System.out.println(m); } catch (RestException e) { - e.printStackTrace(); + e.printStackTrace(); } } else { } @@ -85,10 +86,11 @@ public void exceptionCaught(ChannelHandlerContext ctx, Throwable cause) throws E } } - public static void main(String[] args) { - EventLoopGroup group = new NioEventLoopGroup(); - try { - URI uri = new URI("http://192.168.0.194:8088/"); + + public static void main(String[] args) { + EventLoopGroup group = new NioEventLoopGroup(); + try { + URI uri = new URI("http://192.168.0.194:8088/"); Bootstrap b = new Bootstrap(); String protocol = uri.getScheme(); if (!"http".equals(protocol)) { @@ -96,16 +98,16 @@ public static void main(String[] args) { } final HttpClientHandler handler = new HttpClientHandler(); b.group(group) - .channel(NioSocketChannel.class) - .handler(new ChannelInitializer() { - @Override - public void initChannel(SocketChannel ch) throws Exception { - ChannelPipeline pipeline = ch.pipeline(); - pipeline.addLast("http-codec", new HttpClientCodec()); - pipeline.addLast("aggregator", new HttpObjectAggregator(8192)); - pipeline.addLast("http-handler", handler); - } - }); + .channel(NioSocketChannel.class) + .handler(new ChannelInitializer() { + @Override + public void initChannel(SocketChannel ch) throws Exception { + ChannelPipeline pipeline = ch.pipeline(); + pipeline.addLast("http-codec", new HttpClientCodec()); + pipeline.addLast("aggregator", new HttpObjectAggregator(8192)); + pipeline.addLast("http-handler", handler); + } + }); System.out.println("HTTP Client connecting"); Channel ch = b.connect(uri.getHost(), uri.getPort()).sync().channel(); @@ -117,11 +119,11 @@ public void initChannel(SocketChannel ch) throws Exception { ch.writeAndFlush(request); ch.closeFuture().sync(); - - } catch (Exception e) { - e.printStackTrace(); - } finally { + + } catch (Exception e) { + e.printStackTrace(); + } finally { group.shutdownGracefully(); - } - } + } + } } diff --git a/src/test/java/ch/loway/oss/ari4java/sandbox/TestNettyWs.java b/src/test/java/ch/loway/oss/ari4java/sandbox/TestNettyWs.java index 7e4bb6ab..0bf1f0d3 100644 --- a/src/test/java/ch/loway/oss/ari4java/sandbox/TestNettyWs.java +++ b/src/test/java/ch/loway/oss/ari4java/sandbox/TestNettyWs.java @@ -1,5 +1,6 @@ package ch.loway.oss.ari4java.sandbox; +import ch.loway.oss.ari4java.ARI; import io.netty.bootstrap.Bootstrap; import io.netty.buffer.Unpooled; import io.netty.channel.Channel; @@ -82,7 +83,7 @@ protected void channelRead0(ChannelHandlerContext ctx, Object msg) if (msg instanceof FullHttpResponse) { FullHttpResponse response = (FullHttpResponse) msg; throw new Exception("Unexpected FullHttpResponse (getStatus=" + response.getStatus() + ", content=" - + response.content().toString(CharsetUtil.UTF_8) + ')'); + + response.content().toString(ARI.ENCODING) + ')'); } WebSocketFrame frame = (WebSocketFrame) msg; From ce71cb9e1efaf7ab2f0d659f86ced73075925f5b Mon Sep 17 00:00:00 2001 From: Graham Brown Date: Sun, 22 Dec 2019 20:23:37 +0200 Subject: [PATCH 072/220] Fixed #6 - Implementing better rest exceptions --- .../oss/ari4java/tools/RestException.java | 74 +++++++++++++++++++ .../ari4java/tools/http/NettyHttpClient.java | 52 ++++++------- 2 files changed, 100 insertions(+), 26 deletions(-) diff --git a/src/main/java/ch/loway/oss/ari4java/tools/RestException.java b/src/main/java/ch/loway/oss/ari4java/tools/RestException.java index 46b2eaa1..86b3259d 100644 --- a/src/main/java/ch/loway/oss/ari4java/tools/RestException.java +++ b/src/main/java/ch/loway/oss/ari4java/tools/RestException.java @@ -1,5 +1,9 @@ package ch.loway.oss.ari4java.tools; +import com.fasterxml.jackson.core.JsonProcessingException; +import com.fasterxml.jackson.databind.JsonNode; +import com.fasterxml.jackson.databind.ObjectMapper; + /** * A REST error. * Made it inherit from ARIException so that you can trap ony one exception. @@ -8,10 +12,29 @@ */ public class RestException extends ARIException { + private static final ObjectMapper mapper = new ObjectMapper(); private static final long serialVersionUID = 1L; + private int code = 0; + private String message; + private String response; public RestException(String s) { super(s); + message = s; + } + + public RestException(String s, int code) { + super(s); + message = extractError(s); + this.code = code; + } + + public RestException(String s, String r, int code) { + this(s, code); + String msg = extractError(r); + if (!msg.equals(r)) { + message = msg; + } } public RestException(Throwable cause) { @@ -20,5 +43,56 @@ public RestException(Throwable cause) { public RestException(String s, Throwable cause) { super(s, cause); + message = extractError(s); + } + + /** + * parse the response and extract the "message" or "error" property + * @param s + * @return + */ + private String extractError(String s) { + if (s != null && s.indexOf("{") == 0) { + response = s; + try { + JsonNode jsonNode = mapper.readTree(s); + if (jsonNode.has("message")) { + return jsonNode.get("message").asText(); + } else if (jsonNode.has("error")) { + return jsonNode.get("error").asText(); + } + } catch (JsonProcessingException e) { + // ignoring + } + } + return s; + } + + @Override + public String getMessage() { + return message; + } + + public int getCode() { + return code; + } + + public String getResponse() { + return response; + } + + @Override + public String toString() { + String s = getClass().getName(); + if (code != 0) { + s += ": (HTTP " + code + " Error)"; + } + if (message != null) { + if (code == 0) { + s += ":"; + } + s += " " + message; + } + return s; } } diff --git a/src/main/java/ch/loway/oss/ari4java/tools/http/NettyHttpClient.java b/src/main/java/ch/loway/oss/ari4java/tools/http/NettyHttpClient.java index a345d393..bb3564b7 100644 --- a/src/main/java/ch/loway/oss/ari4java/tools/http/NettyHttpClient.java +++ b/src/main/java/ch/loway/oss/ari4java/tools/http/NettyHttpClient.java @@ -33,19 +33,18 @@ /** * HTTP and WebSocket client implementation based on netty.io. - * + *

* Threading is handled by NioEventLoopGroup, which selects on multiple * sockets and provides threads to handle the events on the sockets. - * + *

* Requires netty-all-4.0.12.Final.jar - * - * @author mwalton * + * @author mwalton */ public class NettyHttpClient implements HttpClient, WsClient, WsClientAutoReconnect { public static final int MAX_HTTP_REQUEST_KB = 16 * 1024; - + private Bootstrap bootStrap; private URI baseUri; private EventLoopGroup group; @@ -86,7 +85,7 @@ public void initialize(String baseUrl, String username, String password) throws public void initChannel(SocketChannel ch) throws Exception { ChannelPipeline pipeline = ch.pipeline(); pipeline.addLast("http-codec", new HttpClientCodec()); - pipeline.addLast("aggregator", new HttpObjectAggregator( MAX_HTTP_REQUEST_KB * 1024)); + pipeline.addLast("aggregator", new HttpObjectAggregator(MAX_HTTP_REQUEST_KB * 1024)); pipeline.addLast("http-handler", new NettyHttpClientHandler()); } }); @@ -179,17 +178,17 @@ private HttpRequest buildRequest(String path, String method, List par request.headers().set(HttpHeaders.Names.CONNECTION, HttpHeaders.Values.CLOSE); return request; } - + private String makeJson(List variables) { String key = variables.remove(0).value; return Objects.equals(key, "fields") ? makeBodyFields(variables) : makeBodyVariables(variables); } - + private String makeBodyVariables(List variables) { StringBuilder varBuilder = new StringBuilder(); varBuilder.append("{").append("\"variables\": {"); Iterator entryIterator = variables.iterator(); - while(entryIterator.hasNext()) { + while (entryIterator.hasNext()) { HttpParam param = entryIterator.next(); varBuilder.append("\"").append(param.name).append("\"").append(": ").append("\"").append(param.value).append("\""); if (entryIterator.hasNext()) { @@ -199,7 +198,7 @@ private String makeBodyVariables(List variables) { varBuilder.append("}}"); return varBuilder.toString(); } - + private String makeBodyFields(List variables) { StringBuilder varBuilder = new StringBuilder(); varBuilder.append("{").append("\"fields\": ["); @@ -207,9 +206,9 @@ private String makeBodyFields(List variables) { while (entryIterator.hasNext()) { HttpParam param = entryIterator.next(); varBuilder.append("{") - .append("\"").append("attribute").append("\"").append(": ").append("\"").append(param.name).append("\",") - .append("\"").append("value").append("\"").append(": ").append("\"").append(param.value).append("\"") - .append("}"); + .append("\"").append("attribute").append("\"").append(": ").append("\"").append(param.name).append("\",") + .append("\"").append("value").append("\"").append(": ").append("\"").append(param.value).append("\"") + .append("}"); if (entryIterator.hasNext()) { varBuilder.append(","); } @@ -219,23 +218,24 @@ private String makeBodyFields(List variables) { } private RestException makeException(HttpResponseStatus status, String response, List errors) { - - if (status == null ) { + + if (status == null) { return new RestException("Shutdown: " + response); } for (HttpResponse hr : errors) { if (hr.code == status.code()) { - return new RestException(hr.description); + return new RestException(hr.description, response, status.code()); } } - return new RestException(response); + + return new RestException(response, status.code()); } // Synchronous HTTP action @Override public String httpActionSync(String uri, String method, List parametersQuery, List parametersForm, List parametersBody, - List errors) throws RestException { + List errors) throws RestException { NettyHttpClientHandler handler = httpActionSyncHandler(uri, method, parametersQuery, parametersForm, parametersBody, errors); return handler.getResponseText(); } @@ -243,13 +243,13 @@ public String httpActionSync(String uri, String method, List paramete // Synchronous HTTP action @Override public byte[] httpActionSyncAsBytes(String uri, String method, List parametersQuery, List parametersForm, List parametersBody, - List errors) throws RestException { + List errors) throws RestException { NettyHttpClientHandler handler = httpActionSyncHandler(uri, method, parametersQuery, parametersForm, parametersBody, errors); return handler.getResponseBytes(); } private NettyHttpClientHandler httpActionSyncHandler(String uri, String method, List parametersQuery, List parametersForm, List parametersBody, - List errors) throws RestException { + List errors) throws RestException { Channel ch; try { HttpRequest request = buildRequest(uri, method, parametersQuery, parametersForm, parametersBody); @@ -257,7 +257,7 @@ private NettyHttpClientHandler httpActionSyncHandler(String uri, String method, NettyHttpClientHandler handler = (NettyHttpClientHandler) ch.pipeline().get("http-handler"); ch.writeAndFlush(request); ch.closeFuture().sync(); - if ( httpResponseOkay(handler.getResponseStatus())) { + if (httpResponseOkay(handler.getResponseStatus())) { return handler; } else { throw makeException(handler.getResponseStatus(), handler.getResponseText(), errors); @@ -272,7 +272,7 @@ private NettyHttpClientHandler httpActionSyncHandler(String uri, String method, // Asynchronous HTTP action, response is passed to HttpResponseHandler @Override public void httpActionAsync(String uri, String method, List parametersQuery, List parametersForm, List parametersBody, - final List errors, final HttpResponseHandler responseHandler, boolean binary) + final List errors, final HttpResponseHandler responseHandler, boolean binary) throws RestException { try { final HttpRequest request = buildRequest(uri, method, parametersQuery, parametersForm, parametersBody); @@ -295,7 +295,7 @@ public void operationComplete(ChannelFuture future) throws Exception { NettyHttpClientHandler handler = (NettyHttpClientHandler) future.channel().pipeline().get("http-handler"); HttpResponseStatus rStatus = handler.getResponseStatus(); - if ( httpResponseOkay(rStatus)) { + if (httpResponseOkay(rStatus)) { if (binary) { responseHandler.onSuccess(handler.getResponseBytes()); } else { @@ -384,7 +384,7 @@ private void startPing() { public void run() { if (System.currentTimeMillis() - wsCallback.getLastResponseTime() > 15000) { if (!wsChannelFuture.isCancelled() && wsChannelFuture.channel() != null) { - WebSocketFrame frame = new PingWebSocketFrame(Unpooled.wrappedBuffer("ari4j".getBytes( ARI.ENCODING ))); + WebSocketFrame frame = new PingWebSocketFrame(Unpooled.wrappedBuffer("ari4j".getBytes(ARI.ENCODING))); wsChannelFuture.channel().writeAndFlush(frame); } } @@ -414,11 +414,11 @@ public void disconnect() throws RestException { } return this.wsClientConnection; } - + /** * Checks if a response is okay. * All 2XX responses are supposed to be okay. - * + * * @param status * @return whether it is a 2XX code or not (error!) */ From cadc141e6b737eba5b5d80f7dab4ea08817ae8c5 Mon Sep 17 00:00:00 2001 From: Graham Brown Date: Sun, 22 Dec 2019 20:27:44 +0200 Subject: [PATCH 073/220] Fixed #100 - Work around if call to eventWebsocket throws UnsupportedOperationException try without the subscribeAll param --- src/main/java/ch/loway/oss/ari4java/ARI.java | 16 +++++++++++++--- 1 file changed, 13 insertions(+), 3 deletions(-) diff --git a/src/main/java/ch/loway/oss/ari4java/ARI.java b/src/main/java/ch/loway/oss/ari4java/ARI.java index d5716d4a..6d523c54 100644 --- a/src/main/java/ch/loway/oss/ari4java/ARI.java +++ b/src/main/java/ch/loway/oss/ari4java/ARI.java @@ -423,6 +423,10 @@ private void destroy(Object client) { } } + public MessageQueue getWebsocketQueue() throws ARIException { + return getWebsocketQueue(false); + } + /** * In order to avoid multi-threading for users, you can get a * MessageQueue object and poll on it for new messages. @@ -432,7 +436,7 @@ private void destroy(Object client) { * @return The MQ connected to your websocket. * @throws ARIException when error */ - public MessageQueue getWebsocketQueue() throws ARIException { + public MessageQueue getWebsocketQueue(boolean subscribeAll) throws ARIException { if (liveActionEvent != null) { throw new ARIException("Websocket already present"); @@ -440,7 +444,7 @@ public MessageQueue getWebsocketQueue() throws ARIException { final MessageQueue q = new MessageQueue(); - events().eventWebsocket(appName, new AriCallback() { + AriCallback callback = new AriCallback() { @Override public void onSuccess(Message result) { @@ -451,7 +455,13 @@ public void onSuccess(Message result) { public void onFailure(RestException e) { q.queueError("Err:" + e.getMessage()); } - }); + }; + + try { + events().eventWebsocket(appName, subscribeAll, callback); + } catch (UnsupportedOperationException e) { + events().eventWebsocket(appName, callback); + } return q; From e8d7df24be7ef4040b4bfd055052d444dc37578b Mon Sep 17 00:00:00 2001 From: Graham Brown Date: Sun, 22 Dec 2019 21:44:21 +0200 Subject: [PATCH 074/220] url encode path params and some encoding cleanup --- .../ch/loway/oss/ari4java/codegen/models/Apis.java | 2 ++ .../loway/oss/ari4java/codegen/models/Operation.java | 4 ++-- src/main/java/ch/loway/oss/ari4java/ARI.java | 2 -- .../oss/ari4java/tools/http/NettyHttpClient.java | 3 +-- .../ari4java/tools/http/NettyHttpClientHandler.java | 2 -- .../oss/ari4java/tools/http/NettyWSClientHandler.java | 2 -- .../ch/loway/oss/ari4java/sandbox/TestNettyHttp.java | 11 ----------- .../ch/loway/oss/ari4java/sandbox/TestNettyWs.java | 3 --- 8 files changed, 5 insertions(+), 24 deletions(-) diff --git a/codegen/src/main/java/ch/loway/oss/ari4java/codegen/models/Apis.java b/codegen/src/main/java/ch/loway/oss/ari4java/codegen/models/Apis.java index 81caca25..69ae1331 100644 --- a/codegen/src/main/java/ch/loway/oss/ari4java/codegen/models/Apis.java +++ b/codegen/src/main/java/ch/loway/oss/ari4java/codegen/models/Apis.java @@ -30,6 +30,8 @@ public String toString() { "java.util.List", "java.util.Map", "java.util.ArrayList", + "java.net.URLEncoder", + "ch.loway.oss.ari4java.ARI", "ch.loway.oss.ari4java.tools.BaseAriAction", "ch.loway.oss.ari4java.tools.RestException", "ch.loway.oss.ari4java.tools.AriCallback", diff --git a/codegen/src/main/java/ch/loway/oss/ari4java/codegen/models/Operation.java b/codegen/src/main/java/ch/loway/oss/ari4java/codegen/models/Operation.java index 8a2bde51..942d26c3 100644 --- a/codegen/src/main/java/ch/loway/oss/ari4java/codegen/models/Operation.java +++ b/codegen/src/main/java/ch/loway/oss/ari4java/codegen/models/Operation.java @@ -50,14 +50,14 @@ public String toJava(Action parent) { String stUri = parent.path; for (Param p : parms) { if (p.type == ParamType.PATH) { - stUri = stUri.replace("{" + p.name + "}", "\" + " + p.name + " + \""); + stUri = stUri.replace("{" + p.name + "}", "\" + URLEncoder.encode(" + p.name + ", ARI.ENCODING) + \""); } } // 1. Private helper method String helperName = JavaGen.addPrefixAndCapitalize("build", nickname); sb.append("private void "); sb.append(helperName); - sb.append("(" + toParmList(true) + ") {\n"); + sb.append("(").append(toParmList(true)).append(") {\n"); sb.append("reset();\n"); sb.append("url = \"").append(stUri).append("\";\n"); sb.append("method = \"").append(method).append("\";\n"); diff --git a/src/main/java/ch/loway/oss/ari4java/ARI.java b/src/main/java/ch/loway/oss/ari4java/ARI.java index 6d523c54..33a316a0 100644 --- a/src/main/java/ch/loway/oss/ari4java/ARI.java +++ b/src/main/java/ch/loway/oss/ari4java/ARI.java @@ -26,12 +26,10 @@ import ch.loway.oss.ari4java.tools.WsClient; import ch.loway.oss.ari4java.tools.http.NettyHttpClient; import ch.loway.oss.ari4java.tools.tags.EventSource; -import io.netty.util.CharsetUtil; import java.io.BufferedReader; import java.io.InputStream; import java.io.InputStreamReader; -import java.io.UnsupportedEncodingException; import java.net.MalformedURLException; import java.net.URISyntaxException; import java.net.URLConnection; diff --git a/src/main/java/ch/loway/oss/ari4java/tools/http/NettyHttpClient.java b/src/main/java/ch/loway/oss/ari4java/tools/http/NettyHttpClient.java index bb3564b7..276492d3 100644 --- a/src/main/java/ch/loway/oss/ari4java/tools/http/NettyHttpClient.java +++ b/src/main/java/ch/loway/oss/ari4java/tools/http/NettyHttpClient.java @@ -25,7 +25,6 @@ import java.net.URI; import java.net.URISyntaxException; import java.net.URLEncoder; -import java.nio.charset.StandardCharsets; import java.util.Iterator; import java.util.List; import java.util.Objects; @@ -117,7 +116,7 @@ public void operationComplete(Future future) throws Exception { }, 250L, TimeUnit.MILLISECONDS); } - private String buildURL(String path, List parametersQuery, boolean withAddress) throws UnsupportedEncodingException { + private String buildURL(String path, List parametersQuery, boolean withAddress) { StringBuilder uriBuilder = new StringBuilder(); if (withAddress) { uriBuilder.append(baseUri); diff --git a/src/main/java/ch/loway/oss/ari4java/tools/http/NettyHttpClientHandler.java b/src/main/java/ch/loway/oss/ari4java/tools/http/NettyHttpClientHandler.java index b0a89c95..38aeafe4 100644 --- a/src/main/java/ch/loway/oss/ari4java/tools/http/NettyHttpClientHandler.java +++ b/src/main/java/ch/loway/oss/ari4java/tools/http/NettyHttpClientHandler.java @@ -7,8 +7,6 @@ import io.netty.handler.codec.http.FullHttpResponse; import io.netty.handler.codec.http.HttpResponseStatus; -import java.nio.charset.Charset; - /** * HttpClientHandler handles the asynchronous response from the remote * HTTP server. diff --git a/src/main/java/ch/loway/oss/ari4java/tools/http/NettyWSClientHandler.java b/src/main/java/ch/loway/oss/ari4java/tools/http/NettyWSClientHandler.java index 59d6c9bd..7e7e05bd 100644 --- a/src/main/java/ch/loway/oss/ari4java/tools/http/NettyWSClientHandler.java +++ b/src/main/java/ch/loway/oss/ari4java/tools/http/NettyWSClientHandler.java @@ -10,9 +10,7 @@ import io.netty.channel.ChannelPromise; import io.netty.handler.codec.http.FullHttpResponse; import io.netty.handler.codec.http.websocketx.*; -import io.netty.util.CharsetUtil; -import java.nio.charset.Charset; /** * NettyWSClientHandler handles the transactions with the remote diff --git a/src/test/java/ch/loway/oss/ari4java/sandbox/TestNettyHttp.java b/src/test/java/ch/loway/oss/ari4java/sandbox/TestNettyHttp.java index 1d6b0a84..807a2ab4 100644 --- a/src/test/java/ch/loway/oss/ari4java/sandbox/TestNettyHttp.java +++ b/src/test/java/ch/loway/oss/ari4java/sandbox/TestNettyHttp.java @@ -3,11 +3,9 @@ import ch.loway.oss.ari4java.ARI; import io.netty.bootstrap.Bootstrap; import io.netty.channel.Channel; -import io.netty.channel.ChannelFuture; import io.netty.channel.ChannelHandlerContext; import io.netty.channel.ChannelInitializer; import io.netty.channel.ChannelPipeline; -import io.netty.channel.ChannelPromise; import io.netty.channel.EventLoopGroup; import io.netty.channel.SimpleChannelInboundHandler; import io.netty.channel.nio.NioEventLoopGroup; @@ -21,20 +19,11 @@ import io.netty.handler.codec.http.HttpObjectAggregator; import io.netty.handler.codec.http.HttpRequest; import io.netty.handler.codec.http.HttpVersion; -import io.netty.handler.codec.http.websocketx.CloseWebSocketFrame; -import io.netty.handler.codec.http.websocketx.PongWebSocketFrame; -import io.netty.handler.codec.http.websocketx.TextWebSocketFrame; -import io.netty.handler.codec.http.websocketx.WebSocketClientHandshaker; -import io.netty.handler.codec.http.websocketx.WebSocketFrame; -import io.netty.util.CharsetUtil; import java.net.URI; -import java.nio.charset.Charset; import ch.loway.oss.ari4java.generated.AsteriskInfo; -import ch.loway.oss.ari4java.generated.Message; import ch.loway.oss.ari4java.generated.ari_0_0_1.models.AsteriskInfo_impl_ari_0_0_1; -import ch.loway.oss.ari4java.generated.ari_0_0_1.models.Message_impl_ari_0_0_1; import ch.loway.oss.ari4java.tools.BaseAriAction; import ch.loway.oss.ari4java.tools.RestException; diff --git a/src/test/java/ch/loway/oss/ari4java/sandbox/TestNettyWs.java b/src/test/java/ch/loway/oss/ari4java/sandbox/TestNettyWs.java index 0bf1f0d3..99fa20b8 100644 --- a/src/test/java/ch/loway/oss/ari4java/sandbox/TestNettyWs.java +++ b/src/test/java/ch/loway/oss/ari4java/sandbox/TestNettyWs.java @@ -27,16 +27,13 @@ import io.netty.handler.codec.http.websocketx.WebSocketClientHandshakerFactory; import io.netty.handler.codec.http.websocketx.WebSocketFrame; import io.netty.handler.codec.http.websocketx.WebSocketVersion; -import io.netty.util.CharsetUtil; import java.net.URI; -import java.util.concurrent.CountDownLatch; import ch.loway.oss.ari4java.generated.Message; import ch.loway.oss.ari4java.generated.ari_0_0_1.models.Message_impl_ari_0_0_1; import ch.loway.oss.ari4java.tools.BaseAriAction; import ch.loway.oss.ari4java.tools.RestException; -//import ch.loway.oss.ari4java.generated.Channel; public class TestNettyWs { From bb52a84755b16207cccd0908eef949d2203708da Mon Sep 17 00:00:00 2001 From: Graham Brown Date: Sun, 22 Dec 2019 22:33:55 +0200 Subject: [PATCH 075/220] update dependencies versions (Fixes #91) --- build.gradle | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/build.gradle b/build.gradle index c07d10fe..63ad2582 100644 --- a/build.gradle +++ b/build.gradle @@ -20,11 +20,11 @@ repositories { } dependencies { - compile 'com.fasterxml.jackson.core:jackson-core:2.9.6' - compile 'com.fasterxml.jackson.core:jackson-databind:2.9.6' - compile 'com.fasterxml.jackson.core:jackson-annotations:2.9.6' - compile 'io.netty:netty-all:4.0.25.Final' - compile 'javax.xml.bind:jaxb-api:2.1' + compile 'com.fasterxml.jackson.core:jackson-core:2.10.1' + compile 'com.fasterxml.jackson.core:jackson-databind:2.10.1' + compile 'com.fasterxml.jackson.core:jackson-annotations:2.10.1' + compile 'io.netty:netty-all:4.1.44.Final' + compile 'javax.xml.bind:jaxb-api:2.3.1' testCompile 'junit:junit:4.10' } From 88070700c735a0f55f87c587e5aa4851206d3f68 Mon Sep 17 00:00:00 2001 From: Graham Brown Date: Mon, 23 Dec 2019 22:02:55 +0200 Subject: [PATCH 076/220] CodeGen refactoring and documentation/example --- NEWVERSION.md | 24 +- build.gradle | 2 +- .../loway/oss/ari4java/codegen/DefMapper.java | 149 +++++---- .../loway/oss/ari4java/codegen/VERSION.java | 2 +- .../oss/ari4java/codegen/genJava/JavaGen.java | 12 +- .../codegen/genJava/JavaInterface.java | 101 +++---- .../oss/ari4java/codegen/models/Action.java | 5 +- .../oss/ari4java/codegen/models/Apis.java | 20 +- .../codegen/models/AriBuilderInterface.java | 7 +- .../codegen/models/ClassTranslator.java | 21 +- .../oss/ari4java/codegen/models/Model.java | 4 +- .../ari4java/codegen/models/Operation.java | 284 ++++++++++++------ .../ch/loway/oss/ari4java/codegen/run.java | 23 +- docs/HELLOWORLD.md | 122 ++++---- docs/USAGE.md | 106 +++++++ src/main/java/ch/loway/oss/ari4java/ARI.java | 50 +-- .../ch/loway/oss/ari4java/AriFactory.java | 6 +- .../ch/loway/oss/ari4java/AriSubscriber.java | 8 +- .../oss/ari4java/tools/BaseAriAction.java | 115 ++++--- .../loway/oss/ari4java/tools/HttpParam.java | 5 - .../oss/ari4java/tools/MessageQueue.java | 2 +- .../java/ch/loway/oss/ari4java/ARITest.java | 61 ++-- .../ari4java/generated/ActionSoundsTest.java | 75 +++-- .../ari4java/generated/ActonBridgesTest.java | 8 +- .../DeserializeToListOfInterfaceTest.java | 6 +- .../ari4java/generated/EventBuilderTest.java | 4 +- .../loway/oss/ari4java/sandbox/TestARI.java | 28 +- .../oss/ari4java/sandbox/TestNettyHttp.java | 2 +- .../oss/ari4java/sandbox/TestNettyWs.java | 2 +- .../sandbox/sample/ConnectAndDial.java | 29 +- .../oss/ari4java/sandbox/sample/Weasels.java | 114 +++++++ 31 files changed, 859 insertions(+), 538 deletions(-) create mode 100644 docs/USAGE.md create mode 100644 src/test/java/ch/loway/oss/ari4java/sandbox/sample/Weasels.java diff --git a/NEWVERSION.md b/NEWVERSION.md index 15ee0343..81d0c894 100644 --- a/NEWVERSION.md +++ b/NEWVERSION.md @@ -1,30 +1,16 @@ -When adding a new version of the ARI: - -- Copy the files from "Asterisk/rest-api/api-docs" to the right folder under "codegen_data" -- Add the ARI version in run.java under the code generator -- Create folders like "generated.ARI_1_2_3", "generated.ARI_1_2_3.actions" and "generated.ARI_1_2_3.models" - or the code generator will fail -- Run the code generator - -In the main source tree: - -- create the version to be used in AriVersion.java - - - -(Obsolete) - -- in ARI.java, edit the build() function to get you the correct objects - - +## ARI Versions +In the `codegen` folder there is a bash script: `getApis.sh` +that will get and recurse the Asterisk source generating the data required for the APIs +Commit the changes as the Gradle build script always builds from those files ## Deployment When a release is ready: + export BINTRAY_USER= export BINTRAY_KEY={bintray.txt} ./gradlew clean test jar diff --git a/build.gradle b/build.gradle index 63ad2582..cd7ec9fa 100644 --- a/build.gradle +++ b/build.gradle @@ -5,7 +5,7 @@ plugins { } group = 'ch.loway.oss.ari4java' -version = '0.7.0' +version = '0.8.0' sourceSets { main { diff --git a/codegen/src/main/java/ch/loway/oss/ari4java/codegen/DefMapper.java b/codegen/src/main/java/ch/loway/oss/ari4java/codegen/DefMapper.java index 333cdc62..ae9bb9b0 100644 --- a/codegen/src/main/java/ch/loway/oss/ari4java/codegen/DefMapper.java +++ b/codegen/src/main/java/ch/loway/oss/ari4java/codegen/DefMapper.java @@ -48,12 +48,11 @@ public class DefMapper { /** * Loads definitions from a module. * - * @param f The source .json file - * @param apiVersion The version of the API we are working with - * @param modelHasEvents whether this file generates WS events + * @param f The source .json file + * @param apiVersion The version of the API we are working with * @throws IOException */ - public void parseJsonDefinition(File f, String apiVersion, boolean modelHasEvents) throws IOException { + public void parseJsonDefinition(File f, String apiVersion) throws IOException { if (!vers.contains(apiVersion)) { vers.add(apiVersion); @@ -66,7 +65,7 @@ public void parseJsonDefinition(File f, String apiVersion, boolean modelHasEvent mymodels.addAll(lModels); myAPIs.add(api1); - if (modelHasEvents) { + if ("events.json".equals(f.getName())) { Model typeMessage = null; List otherModels = new ArrayList(); @@ -105,27 +104,39 @@ public void parseJsonDefinition(File f, String apiVersion, boolean modelHasEvent // Now generate the interface for (Model m : mymodels) { - JavaInterface j = interfaces.get(m.getInterfaceName()); - if (j == null) { - j = new JavaInterface(); - j.pkgName = "ch.loway.oss.ari4java.generated"; - j.className = m.getInterfaceName(); - j.parent = m.extendsModel; - interfaces.put(m.getInterfaceName(), j); + JavaInterface jim = interfaces.get(m.getInterfaceName()); + if (jim == null) { + jim = new JavaInterface(); + jim.pkgName = "ch.loway.oss.ari4java.generated.models"; + jim.className = m.getInterfaceName(); + jim.parent = m.extendsModel; + interfaces.put(m.getInterfaceName(), jim); } - - m.registerInterfaces(j, apiVersion); + m.registerInterfaces(jim, apiVersion); } - JavaInterface j = interfaces.get(api1.getInterfaceName()); - if (j == null) { - j = new JavaInterface(); - j.pkgName = "ch.loway.oss.ari4java.generated"; - j.className = api1.getInterfaceName(); - interfaces.put(api1.getInterfaceName(), j); + JavaInterface jia = interfaces.get(api1.getInterfaceName()); + if (jia == null) { + jia = new JavaInterface(); + jia.pkgName = "ch.loway.oss.ari4java.generated.actions"; + jia.className = api1.getInterfaceName(); + interfaces.put(api1.getInterfaceName(), jia); + } + api1.registerInterfaces(jia, apiVersion); + + for (Action a : api1.actions) { + for (Operation o : a.operations) { + JavaInterface jio = interfaces.get(o.getInterfaceName()); + if (jio == null) { + jio = new JavaInterface(); + jio.pkgName = "ch.loway.oss.ari4java.generated.actions.requests"; + jio.className = o.getInterfaceName(); + interfaces.put(o.getInterfaceName(), jio); + } + o.registerInterfaces(jio, apiVersion); + } } - api1.registerInterfaces(j, apiVersion); } /** @@ -147,11 +158,14 @@ public void generateAllClasses() throws IOException { * @throws IOException */ public AriBuilderInterface generateInterfaces() throws IOException { - // +// System.out.println("generateInterfaces"); + AriBuilderInterface abi = new AriBuilderInterface(); for (String ifName : interfaces.keySet()) { JavaInterface ji = interfaces.get(ifName); - abi.knownInterfaces.add(ifName); + if (ifName.startsWith("Action")) { + abi.knownInterfaces.add(ifName); + } saveToDisk(ji); } @@ -167,6 +181,7 @@ public AriBuilderInterface generateInterfaces() throws IOException { * @throws IOException */ public void generateModels() throws IOException { +// System.out.println("generateModels"); for (Model m : mymodels) { String minIf = m.getInterfaceName(); JavaInterface ji = interfaces.get(minIf); @@ -182,12 +197,17 @@ public void generateModels() throws IOException { * @throws IOException */ public void generateApis() throws IOException { +// System.out.println("generateApis"); for (Apis api : myAPIs) { String minIf = api.getInterfaceName(); JavaInterface ji = interfaces.get(minIf); - api.setMinimalInterface(ji); saveToDisk(api); + for (Action a : api.actions) { + for (Operation o : a.operations) { + saveToDisk(o); + } + } } } @@ -197,6 +217,7 @@ public void generateApis() throws IOException { * @throws IOException */ public void generateProperties(AriBuilderInterface abi) throws IOException { +// System.out.println("generateProperties"); Map> mM = new HashMap>(); Map> mA = new HashMap>(); @@ -287,33 +308,36 @@ private void builderEnum(StringBuilder sbVerEnum, String ver) { * @throws IOException */ public void generateImplementationClasses(AriBuilderInterface abi) throws IOException { +// System.out.println("generateImplementationClasses"); - Map mTranslators = new HashMap(); + List lTranslators = new ArrayList(); for (Apis api : myAPIs) { String ver = api.apiVersion; - ClassTranslator ct = getClassTranslator(mTranslators, ver); + ClassTranslator ct = getClassTranslator(lTranslators, ver); ct.setClass(api.className, api.className + "_impl_" + ver); } for (Model mod : mymodels) { String ver = mod.apiVersion; - ClassTranslator ct = getClassTranslator(mTranslators, ver); + ClassTranslator ct = getClassTranslator(lTranslators, ver); ct.setClass(mod.className, mod.className + "_impl_" + ver); } - for (ClassTranslator ct : mTranslators.values()) { + for (ClassTranslator ct : lTranslators) { saveToDisk(ct); } } - private ClassTranslator getClassTranslator(Map mTranslators, String apiVer) { - if (!mTranslators.containsKey(apiVer)) { - ClassTranslator ct = new ClassTranslator(); - ct.apiVersion = apiVer; - mTranslators.put(apiVer, ct); + private ClassTranslator getClassTranslator(List lTranslators, String apiVer) { + int idx = lTranslators.indexOf(new ClassTranslator(apiVer)); + if (idx != -1) { + return lTranslators.get(idx); } - return mTranslators.get(apiVer); + ClassTranslator ct = new ClassTranslator(apiVer); + ct.apiVersion = apiVer; + lTranslators.add(ct); + return ct; } /** @@ -388,10 +412,12 @@ private Apis loadApis(JsonNode apis, File f, String apiVersion) throws IOExcepti action.path = txt(apiEntry.get("path")); action.description = txt(apiEntry.get("description")); action.javaFile = f.getName(); + action.api = api; for (JsonNode operation : apiEntry.get("operations")) { Operation op = new Operation(); action.operations.add(op); + op.action = action; op.method = txt(operation.get("httpMethod")); if ("websocket".equalsIgnoreCase(txt(operation.get("upgrade")))) { op.wsUpgrade = true; @@ -400,6 +426,7 @@ private Apis loadApis(JsonNode apis, File f, String apiVersion) throws IOExcepti op.responseInterface = remapAbstractType(txt(operation.get("responseClass"))); op.responseConcreteClass = remapConcreteType(txt(operation.get("responseClass")), apiVersion); op.description = txt(operation.get("summary")) + "\n" + txt(operation.get("notes")); + op.apiVersion = apiVersion; JsonNode parameters = operation.get("parameters"); if (parameters != null) { @@ -409,9 +436,7 @@ private Apis loadApis(JsonNode apis, File f, String apiVersion) throws IOExcepti p.name = txt(parameter.get("name")); p.required = txt(parameter.get("required")).equalsIgnoreCase("true"); p.type = Operation.ParamType.build(txt(parameter.get("paramType"))); - - op.parms.add(p); - + op.params.add(p); } } @@ -425,10 +450,8 @@ private Apis loadApis(JsonNode apis, File f, String apiVersion) throws IOExcepti } } - } - //System.out.println( action.toString() ); api.actions.add(action); } @@ -439,17 +462,18 @@ private Apis loadApis(JsonNode apis, File f, String apiVersion) throws IOExcepti } public void saveToDisk(String pkgName, String className, String classText) throws IOException { - String fName = outputFolder + pkgName.replace(".", "/") + "/" + className + ".java"; - FileWriter outFile = new FileWriter(fName); + File f = new File(fName); + f.getParentFile().mkdirs(); +// System.out.println("Saving: " + f.getAbsolutePath()); + FileWriter outFile = new FileWriter(f); PrintWriter out = new PrintWriter(outFile); out.println(classText); out.close(); - } public void saveToDisk(Model model) throws IOException { @@ -460,28 +484,34 @@ public void saveToDisk(Apis api) throws IOException { saveToDisk(api.getActionsPackage(), api.getImplName(), api.toString()); } + public void saveToDisk(Operation operation) throws IOException { + saveToDisk(operation.getPackage(), operation.getImplName(), operation.toString()); + } + public void saveToDisk(JavaInterface ji) throws IOException { - saveToDisk("ch.loway.oss.ari4java.generated", ji.className, ji.toString()); + saveToDisk(ji.pkgName, ji.className, ji.toString()); } public void saveToDisk(ClassTranslator ct) throws IOException { saveToDisk(ct.getBaseApiPackage(), ct.getImplName(), ct.toString()); } - public void clean(String apiVersion) throws IOException { - String base = outputFolder + "ch/loway/oss/ari4java/generated"; - cleanPath(base + "/" + apiVersion + "/actions"); - cleanPath(base + "/" + apiVersion + "/models"); + public void clean() { + deleteFolder(new File(outputFolder)); } - private void cleanPath(String path) throws IOException { - File p = new File(path); - p.mkdirs(); - for (File f : p.listFiles()) { - if (f.isFile()) { - f.delete(); + private void deleteFolder(File folder) { + File[] files = folder.listFiles(); + if(files != null) { + for(File f: files) { + if(f.isDirectory()) { + deleteFolder(f); + } else { + f.delete(); + } } } + folder.delete(); } private String txt(JsonNode n) { @@ -542,11 +572,10 @@ private void writeAriBuilder(String apiVersion, AriBuilderInterface abi, Collect StringBuilder sb = new StringBuilder(); JavaGen.importClasses(sb, "ch.loway.oss.ari4java.generated." + apiVersion, Arrays.asList(new String[]{ - "ch.loway.oss.ari4java.generated." + apiVersion + ".models.*", + "ch.loway.oss.ari4java.ARI", + "ch.loway.oss.ari4java.generated.AriBuilder", + "ch.loway.oss.ari4java.generated.actions.*", "ch.loway.oss.ari4java.generated." + apiVersion + ".actions.*", - "ch.loway.oss.ari4java.generated.Module", - "ch.loway.oss.ari4java.generated.*", - "ch.loway.oss.ari4java.ARI" })); sb.append("public class ").append(thisClass).append(" implements AriBuilder {\n\n"); @@ -557,12 +586,6 @@ private void writeAriBuilder(String apiVersion, AriBuilderInterface abi, Collect sb.append(AriBuilderInterface.getMethod(ifc, apiVersion)); } - for (Model m : models) { - String ifc = m.getInterfaceName(); - ifToImplement.remove(ifc); - sb.append(AriBuilderInterface.getMethod(ifc, apiVersion)); - } - // do we have any unimplemented interface? for (String ifc : ifToImplement) { sb.append(AriBuilderInterface.getUnimplemented(ifc)); diff --git a/codegen/src/main/java/ch/loway/oss/ari4java/codegen/VERSION.java b/codegen/src/main/java/ch/loway/oss/ari4java/codegen/VERSION.java index c37d0d7d..5e3650ca 100644 --- a/codegen/src/main/java/ch/loway/oss/ari4java/codegen/VERSION.java +++ b/codegen/src/main/java/ch/loway/oss/ari4java/codegen/VERSION.java @@ -6,6 +6,6 @@ * @author lenz */ public class VERSION { - public static final String VER = "0.3"; + public static final String VER = "0.4"; } diff --git a/codegen/src/main/java/ch/loway/oss/ari4java/codegen/genJava/JavaGen.java b/codegen/src/main/java/ch/loway/oss/ari4java/codegen/genJava/JavaGen.java index 7c612365..d2374cb6 100644 --- a/codegen/src/main/java/ch/loway/oss/ari4java/codegen/genJava/JavaGen.java +++ b/codegen/src/main/java/ch/loway/oss/ari4java/codegen/genJava/JavaGen.java @@ -34,16 +34,20 @@ public static void importClasses(StringBuilder sb, String myPackage, List
", "\n * "); + row = row.replaceAll("
", "\n * "); + sb.append(" * ").append(row).append("\n"); + } } - sb.append(" *********************************************************/\n"); + sb.append(" */\n"); } public static void addBanner(StringBuilder sb, String multilineBanner, String sinceVersion) { - multilineBanner += "\n\n@since " + sinceVersion; + multilineBanner += "\n@since " + sinceVersion; addBanner(sb, multilineBanner); } diff --git a/codegen/src/main/java/ch/loway/oss/ari4java/codegen/genJava/JavaInterface.java b/codegen/src/main/java/ch/loway/oss/ari4java/codegen/genJava/JavaInterface.java index f07af4ef..2a2d45ae 100644 --- a/codegen/src/main/java/ch/loway/oss/ari4java/codegen/genJava/JavaInterface.java +++ b/codegen/src/main/java/ch/loway/oss/ari4java/codegen/genJava/JavaInterface.java @@ -7,36 +7,33 @@ import java.util.Map; /** - * - * * @author lenz */ public class JavaInterface { - public final List eventSources = Arrays.asList( new String[] { - "Bridge", - "Channel", - "Endpoint", - "DeviceState" + public final List eventSources = Arrays.asList(new String[]{ + "Bridge", + "Channel", + "Endpoint", + "DeviceState" }); - - - + + public String pkgName = ""; public String className = ""; public String since = ""; public String parent = ""; - Map definitions = new HashMap(); + Map definitions = new HashMap(); - public void iKnow( String signature, String method, String comment, String sinceVersion ) { + public void iKnow(String signature, String method, String comment, String sinceVersion) { StringBuilder sb = new StringBuilder(); - //JavaGen.addBanner(sb, comment, sinceVersion); - sb.append( method ).append(";\n\n"); + JavaGen.addBanner(sb, comment, sinceVersion); + sb.append(method).append(";"); - if ( !definitions.containsKey(signature) ) { - definitions.put( signature, sb.toString() ); + if (!definitions.containsKey(signature)) { + definitions.put(signature, sb.toString()); } } @@ -50,53 +47,45 @@ public JavaInterface createScratchCopy() { return ji; } - - - - @Override public String toString() { StringBuilder sb = new StringBuilder(); - JavaGen.importClasses(sb, pkgName, Arrays.asList( new String[] { - "java.util.Date", - "java.util.List", - "java.util.Map", - "java.util.ArrayList", - "ch.loway.oss.ari4java.tools.RestException", - "ch.loway.oss.ari4java.tools.AriCallback", - "ch.loway.oss.ari4java.tools.tags.*", - "ch.loway.oss.ari4java.generated.Module" + JavaGen.importClasses(sb, pkgName, Arrays.asList(new String[]{ + "java.util.Date", + "java.util.List", + "java.util.Map", + "java.util.ArrayList", + "ch.loway.oss.ari4java.tools.*", + "ch.loway.oss.ari4java.tools.tags.EventSource", + "ch.loway.oss.ari4java.generated.actions.requests.*", + "ch.loway.oss.ari4java.generated.models.Module", + "ch.loway.oss.ari4java.generated.models.*" })); - JavaGen.addBanner(sb, "\n" - + "Generated by: " + this.getClass().getSimpleName() + "\n" + + "Generated by: " + this.getClass().getSimpleName() + "\n" ); JavaGen.emptyLines(sb, 2); - - sb.append( "public interface ").append(className); - - if ( eventSources.contains( className )) { - sb.append( " extends EventSource " ); + sb.append("public interface ").append(className); + + if (eventSources.contains(className)) { + sb.append(" extends EventSource "); } else if (!parent.isEmpty()) { - sb.append( " extends " + parent + " " ); + sb.append(" extends ").append(parent).append(" "); } - - + sb.append(" {\n"); - for ( String signature: definitions.keySet() ) { - sb.append( "\n// ").append( signature ).append("\n"); - sb.append( definitions.get( signature) ); - sb.append( "\n" ); + for (String signature : definitions.keySet()) { + sb.append("\n// ").append(signature).append("\n"); + sb.append(definitions.get(signature)).append("\n"); } - - sb.append( "}\n;"); + sb.append("}\n"); return sb.toString(); } @@ -108,38 +97,38 @@ public String toString() { * @param signature */ - public void removeSignature( String signature ) { - if ( definitions.containsKey(signature) ) { + public void removeSignature(String signature) { + if (definitions.containsKey(signature)) { definitions.remove(signature); } else { - throw new IllegalArgumentException( "Signature not found: " + signature ); + throw new IllegalArgumentException("Signature not found: " + signature); } } - + public String getCodeToImplementMissingSignatures() { - if ( definitions.isEmpty() ) { + if (definitions.isEmpty()) { return " /* No missing signatures from interface */\n"; } else { StringBuilder sb = new StringBuilder(); // generate empty methods that just throw an UnsupportedOperationException - for ( String s: definitions.values() ) { + for (String s : definitions.values()) { - String replaceTo = "{\n" - + " throw new UnsupportedOperationException(\"Method available from ...\");\n" - + "};"; + String replaceTo = " {\n" + + " throw new UnsupportedOperationException(\"Method available from ...\");\n" + + " }\n\n"; s = s.replace(";", replaceTo); - sb.append( s ); + sb.append(s); } return sb.toString(); } } - + } diff --git a/codegen/src/main/java/ch/loway/oss/ari4java/codegen/models/Action.java b/codegen/src/main/java/ch/loway/oss/ari4java/codegen/models/Action.java index cddd10c3..b276ecb3 100644 --- a/codegen/src/main/java/ch/loway/oss/ari4java/codegen/models/Action.java +++ b/codegen/src/main/java/ch/loway/oss/ari4java/codegen/models/Action.java @@ -15,6 +15,7 @@ public class Action implements Comparable { public String description = ""; public List operations = new ArrayList(); public String javaFile = ""; + public Apis api; @Override public String toString() { @@ -22,7 +23,7 @@ public String toString() { StringBuilder sb = new StringBuilder(); for (Operation o : operations) { - sb.append(o.toJava(this)); + sb.append(o.toJava()); } return sb.toString(); @@ -33,9 +34,7 @@ void registerInterfaces(JavaInterface j, String apiVersion) { for (Operation o : operations) { String javaSignature = o.getSignature(); String definition = o.getDefinition(); - j.iKnow(javaSignature, definition, o.description, apiVersion); - j.iKnow(o.getSignatureAsync(), o.getDefinitionAsync(), "", apiVersion); } } diff --git a/codegen/src/main/java/ch/loway/oss/ari4java/codegen/models/Apis.java b/codegen/src/main/java/ch/loway/oss/ari4java/codegen/models/Apis.java index 69ae1331..3d6a52fd 100644 --- a/codegen/src/main/java/ch/loway/oss/ari4java/codegen/models/Apis.java +++ b/codegen/src/main/java/ch/loway/oss/ari4java/codegen/models/Apis.java @@ -24,21 +24,20 @@ public String toString() { JavaInterface ji = getBaseInterface(); JavaGen.importClasses(sb, getActionsPackage(), Arrays.asList(new String[]{ - "ch.loway.oss.ari4java.generated.Module", - "ch.loway.oss.ari4java.generated.*", "java.util.Date", "java.util.List", "java.util.Map", "java.util.ArrayList", "java.net.URLEncoder", "ch.loway.oss.ari4java.ARI", - "ch.loway.oss.ari4java.tools.BaseAriAction", - "ch.loway.oss.ari4java.tools.RestException", - "ch.loway.oss.ari4java.tools.AriCallback", - "ch.loway.oss.ari4java.tools.HttpParam", - "ch.loway.oss.ari4java.tools.HttpResponse", - "com.fasterxml.jackson.core.type.TypeReference", - getModelPackage() + ".*" + "ch.loway.oss.ari4java.tools.*", + "ch.loway.oss.ari4java.generated.actions.*", + "ch.loway.oss.ari4java.generated.actions.requests.*", + "ch.loway.oss.ari4java.generated.models.Module", + "ch.loway.oss.ari4java.generated.models.*", + getActionsPackage() + ".requests.*", + getModelPackage() + ".*", + "com.fasterxml.jackson.core.type.TypeReference" })); JavaGen.addBanner(sb, "\n" @@ -59,7 +58,6 @@ public String toString() { for (Operation o : a.operations) { ji.removeSignature(o.getSignature()); - ji.removeSignature(o.getSignatureAsync()); } sb.append(a.toString()); @@ -67,7 +65,7 @@ public String toString() { sb.append(ji.getCodeToImplementMissingSignatures()); - sb.append("};\n"); + sb.append("}\n"); return sb.toString(); } diff --git a/codegen/src/main/java/ch/loway/oss/ari4java/codegen/models/AriBuilderInterface.java b/codegen/src/main/java/ch/loway/oss/ari4java/codegen/models/AriBuilderInterface.java index 68c4c265..9c95ff4a 100644 --- a/codegen/src/main/java/ch/loway/oss/ari4java/codegen/models/AriBuilderInterface.java +++ b/codegen/src/main/java/ch/loway/oss/ari4java/codegen/models/AriBuilderInterface.java @@ -23,7 +23,8 @@ public String toString() { StringBuilder sb = new StringBuilder(); JavaGen.importClasses(sb, "ch.loway.oss.ari4java.generated", Arrays.asList(new String[]{ - "ch.loway.oss.ari4java.ARI" + "ch.loway.oss.ari4java.ARI", + "ch.loway.oss.ari4java.generated.actions.*" }) ); @@ -32,12 +33,12 @@ public String toString() { Collections.sort(knownInterfaces); for (String iface : knownInterfaces) { - sb.append(" public abstract ").append(iface) + sb.append(" public abstract ").append(iface) .append(" ").append(lcFirst(iface)).append("();\n"); } sb.append("\n\n" - + "\tpublic abstract ARI.ClassFactory getClassFactory();\n\n"); + + " public abstract ARI.ClassFactory getClassFactory();\n\n"); sb.append("\n}\n"); diff --git a/codegen/src/main/java/ch/loway/oss/ari4java/codegen/models/ClassTranslator.java b/codegen/src/main/java/ch/loway/oss/ari4java/codegen/models/ClassTranslator.java index 9c645e16..8a432f37 100644 --- a/codegen/src/main/java/ch/loway/oss/ari4java/codegen/models/ClassTranslator.java +++ b/codegen/src/main/java/ch/loway/oss/ari4java/codegen/models/ClassTranslator.java @@ -19,14 +19,18 @@ public class ClassTranslator extends JavaPkgInfo { public Map mInterfaces; public List imports; - public ClassTranslator() { + public ClassTranslator(String version) { super(); + apiVersion = version; mInterfaces = new HashMap(); imports = new ArrayList(); className = "ClassTranslator"; imports.add("ch.loway.oss.ari4java.ARI"); - imports.add("ch.loway.oss.ari4java.generated.Module"); - imports.add("ch.loway.oss.ari4java.generated.*"); + imports.add("ch.loway.oss.ari4java.generated.actions.*"); + imports.add("ch.loway.oss.ari4java.generated.models.Module"); + imports.add("ch.loway.oss.ari4java.generated.models.*"); + imports.add("ch.loway.oss.ari4java.generated." + apiVersion + ".actions.*"); + imports.add("ch.loway.oss.ari4java.generated." + apiVersion + ".models.*"); } public void setClass(String ifName, String implementation) { @@ -36,8 +40,6 @@ public void setClass(String ifName, String implementation) { @Override public String toString() { - imports.add("ch.loway.oss.ari4java.generated." + apiVersion + ".models.*"); - imports.add("ch.loway.oss.ari4java.generated." + apiVersion + ".actions.*"); StringBuilder sb = new StringBuilder(); JavaGen.importClasses(sb, getBaseApiPackage(), imports); JavaGen.addBanner(sb, "This is a class translator." + "\n\n"); @@ -73,4 +75,13 @@ public String toString() { return sb.toString(); } + @Override + public boolean equals(Object obj) { + if (obj instanceof String) { + return this.apiVersion.equals(obj); + } else if (obj instanceof ClassTranslator) { + return this.apiVersion.equals(((ClassTranslator) obj).apiVersion); + } + return super.equals(obj); + } } diff --git a/codegen/src/main/java/ch/loway/oss/ari4java/codegen/models/Model.java b/codegen/src/main/java/ch/loway/oss/ari4java/codegen/models/Model.java index ece8e96e..9015cf86 100644 --- a/codegen/src/main/java/ch/loway/oss/ari4java/codegen/models/Model.java +++ b/codegen/src/main/java/ch/loway/oss/ari4java/codegen/models/Model.java @@ -33,8 +33,8 @@ public Model() { imports.add("java.util.Date"); imports.add("java.util.List"); imports.add("java.util.Map"); - imports.add("ch.loway.oss.ari4java.generated.Module"); - imports.add("ch.loway.oss.ari4java.generated.*"); + imports.add("ch.loway.oss.ari4java.generated.models.Module"); + imports.add("ch.loway.oss.ari4java.generated.models.*"); imports.add("com.fasterxml.jackson.databind.annotation.JsonDeserialize"); } diff --git a/codegen/src/main/java/ch/loway/oss/ari4java/codegen/models/Operation.java b/codegen/src/main/java/ch/loway/oss/ari4java/codegen/models/Operation.java index 942d26c3..9dd3864a 100644 --- a/codegen/src/main/java/ch/loway/oss/ari4java/codegen/models/Operation.java +++ b/codegen/src/main/java/ch/loway/oss/ari4java/codegen/models/Operation.java @@ -2,8 +2,10 @@ package ch.loway.oss.ari4java.codegen.models; import ch.loway.oss.ari4java.codegen.genJava.JavaGen; +import ch.loway.oss.ari4java.codegen.genJava.JavaInterface; import java.util.ArrayList; +import java.util.Arrays; import java.util.List; /** @@ -18,16 +20,20 @@ public class Operation { public String nickname = ""; public String responseConcreteClass = ""; public String responseInterface = ""; - public String description = ""; - - public List parms = new ArrayList(); + public List params = new ArrayList(); public List errorCodes = new ArrayList(); + public String apiVersion; + public Action action; + private JavaInterface ji; - private String toParmList(boolean withType) { + private String toParmList(boolean withType, boolean onlyRequired) { StringBuilder sb = new StringBuilder(); boolean firstItem = true; - for (Param p : parms) { + for (Param p : params) { + if (onlyRequired && !p.required) { + continue; + } if (firstItem) { firstItem = false; } else { @@ -40,93 +46,124 @@ private String toParmList(boolean withType) { return sb.toString(); } - public String toJava(Action parent) { - + public String toString() { StringBuilder sb = new StringBuilder(); - JavaGen.addBanner(sb, parent.description + "\n\n" + description); + JavaGen.importClasses(sb, getPackage(), Arrays.asList(new String[]{ + "java.util.Date", + "java.util.List", + "java.util.Map", + "java.util.ArrayList", + "java.net.URLEncoder", + "ch.loway.oss.ari4java.ARI", + "ch.loway.oss.ari4java.tools.*", + "com.fasterxml.jackson.core.type.TypeReference", + "ch.loway.oss.ari4java.generated.*", + "ch.loway.oss.ari4java.generated.actions.*", + "ch.loway.oss.ari4java.generated.actions.requests.*", + "ch.loway.oss.ari4java.generated.models.Module", + "ch.loway.oss.ari4java.generated.models.*", + "ch.loway.oss.ari4java.generated." + apiVersion + ".actions.*", + "ch.loway.oss.ari4java.generated." + apiVersion + ".actions.requests.*", + "ch.loway.oss.ari4java.generated." + apiVersion + ".models.*" + })); + + JavaGen.emptyLines(sb, 2); + + JavaInterface interfaces = ji.createScratchCopy(); + + sb.append("public class ").append(getImplName()) + .append(" extends BaseAriAction ") + .append(" implements ").append(getInterfaceName()).append(" {\n"); + for (Param p : params) { + sb.append(" private ").append(p.javaType).append(" ").append(p.name).append(";\n"); + } + sb.append("\n ").append(getConstructorDefinition()).append(" {\n"); + for (Param p : params) { + if (p.required) { + sb.append(" this.").append(p.name).append(" = ").append(p.name).append(";\n"); + } + } + sb.append(" }\n\n"); + for (Param p : params) { + sb.append(p.getDefinition(getInterfaceName())).append(" {\n") + .append(" this.").append(p.name).append(" = ").append(p.name).append(";\n") + .append(" return this;\n") + .append(" }\n\n"); + interfaces.removeSignature(p.getSignature(getInterfaceName())); + } + // 1. Private build method // search and replace URI parameters - String stUri = parent.path; - for (Param p : parms) { + String stUri = action.path; + for (Param p : params) { if (p.type == ParamType.PATH) { stUri = stUri.replace("{" + p.name + "}", "\" + URLEncoder.encode(" + p.name + ", ARI.ENCODING) + \""); } } - // 1. Private helper method - String helperName = JavaGen.addPrefixAndCapitalize("build", nickname); - sb.append("private void "); - sb.append(helperName); - sb.append("(").append(toParmList(true)).append(") {\n"); - sb.append("reset();\n"); - sb.append("url = \"").append(stUri).append("\";\n"); - sb.append("method = \"").append(method).append("\";\n"); - for (Param p : parms) { + sb.append(" private AriRequest build() {\n"); + sb.append(" AriRequest ariRequest = new AriRequest(\"").append(stUri).append("\", \"").append(method).append("\");\n"); + for (Param p : params) { if (p.type == ParamType.QUERY) { - sb.append("lParamQuery.add( HttpParam.build( \"").append(p.name) - .append("\", ").append(p.name).append(") );\n"); + sb.append(" ariRequest.addParamQuery(HttpParam.build( \"").append(p.name) + .append("\", ").append(p.name).append("));\n"); } else if (p.type == ParamType.FORM) { - sb.append("lParamForm.add( HttpParam.build( \"").append(p.name) - .append("\", ").append(p.name).append(") );\n"); + sb.append(" ariRequest.addParamForm(HttpParam.build( \"").append(p.name) + .append("\", ").append(p.name).append("));\n"); } else if (p.type == ParamType.BODY) { if ("Map".equals(p.javaType)) { - sb.append("lParamBody.addAll( HttpParam.build( \"").append(p.name) - .append("\", ").append(p.name).append(") );\n"); + sb.append(" ariRequest.addParamBody(HttpParam.build( \"").append(p.name) + .append("\", ").append(p.name).append("));\n"); } else if ("Object".equals(p.javaType)) { - sb.append("lParamBody.add( HttpParam.build( \"").append(p.name) - .append("\", serializeToJson( ").append(p.name).append(" ) ) );\n"); + sb.append(" ariRequest.addParamBody(HttpParam.build(\"").append(p.name) + .append("\", serializeToJson( ").append(p.name).append(")));\n"); } else { - sb.append("lParamBody.add( HttpParam.build( \"").append(p.name) - .append("\", ").append(p.name).append(") );\n"); + sb.append(" ariRequest.addParamBody(HttpParam.build( \"").append(p.name) + .append("\", ").append(p.name).append("));\n"); } } } for (ErrorResp er : errorCodes) { - sb.append("lE.add( HttpResponse.build( ").append(er.code) - .append(", \"").append(er.reason).append("\") );\n"); + sb.append(" ariRequest.addErrorResponse(HttpResponse.build(").append(er.code) + .append(", \"").append(er.reason).append("\"));\n"); } if (wsUpgrade) { - sb.append("wsUpgrade = true;\n"); + sb.append(" ariRequest.setWsUpgrade(true);\n"); } - sb.append("}\n\n"); + sb.append(" return ariRequest;\n"); + sb.append(" }\n\n"); - sb.append("@Override\n"); - sb.append(getDefinition()); - sb.append(" {\n"); - if (!wsUpgrade) { - // 2. Synchronous method - sb.append(helperName + "(" + toParmList(false) + ");\n"); + // 2. Synchronous execute method + sb.append(" ").append(getSyncExecuteDefinition()).append(" {\n"); + if (wsUpgrade) { + // Websocket dummy sync method + sb.append(" throw new RestException(\"No synchronous operation on WebSocket\");\n"); + } else { if (responseInterface.equalsIgnoreCase("byte[]")) { - sb.append("return httpActionSyncAsBytes();\n"); + sb.append(" return httpActionSyncAsBytes(build());\n"); } else { - sb.append("String json = httpActionSync();\n"); - + sb.append(" String json = httpActionSync(build());\n"); if (!responseInterface.equalsIgnoreCase("void")) { String deserializationType = responseConcreteClass + ".class"; if (responseConcreteClass.startsWith("List<")) { deserializationType = "new TypeReference<" + responseConcreteClass + ">() {}"; - sb.append("return deserializeJsonAsAbstractList( json,\n ") + sb.append(" return deserializeJsonAsAbstractList(json, ") .append(deserializationType) - .append(" ); \n"); + .append(");\n"); } else { - sb.append("return deserializeJson( json, ") + sb.append(" return deserializeJson(json, ") .append(deserializationType) - .append(" ); \n"); + .append(");\n"); } } } - } else { - // Websocket dummy sync method - sb.append("throw new RestException(\"No synchronous operation on WebSocket\");\n"); } - sb.append("}\n\n"); + sb.append(" }\n\n"); + interfaces.removeSignature(getSyncExecuteSignature()); - // 3. Asynchronous method - sb.append("@Override\n"); - sb.append(getDefinitionAsync()); - sb.append(" {\n"); - sb.append(helperName + "(" + toParmList(false) + ");\n"); - sb.append("httpActionAsync(callback"); + // 3. Asynchronous execute method + sb.append(" ").append(getAsyncExecuteDefinition()).append(" {\n"); + sb.append(" httpActionAsync(build(), callback"); if (!responseInterface.equalsIgnoreCase("void")) { String deserializationType = responseConcreteClass + ".class"; if (responseConcreteClass.startsWith("List<")) { @@ -135,84 +172,146 @@ public String toJava(Action parent) { sb.append(", " + deserializationType); } sb.append(");\n"); - sb.append("}\n\n"); + sb.append(" }\n\n"); + interfaces.removeSignature(getAsyncExecuteSignature()); + + sb.append(interfaces.getCodeToImplementMissingSignatures()); + + sb.append("}\n"); + return sb.toString(); + + } + + private String getSyncExecuteSignature() { + StringBuilder sb = new StringBuilder(); + sb.append(responseInterface).append(" execute"); + return sb.toString(); + } + private String getSyncExecuteDefinition() { + StringBuilder sb = new StringBuilder(); + sb.append("public ").append(responseInterface).append(" execute() throws RestException"); return sb.toString(); } + private String getAsyncExecuteSignature() { + StringBuilder sb = new StringBuilder(); + sb.append("void execute ").append(JavaGen.addAsyncCallback(responseInterface)); + return sb.toString(); + } + + private String getAsyncExecuteDefinition() { + StringBuilder sb = new StringBuilder(); + sb.append("public void execute(").append(JavaGen.addAsyncCallback(responseInterface)).append(")"); + return sb.toString(); + } + + public String getPackage() { + return "ch.loway.oss.ari4java.generated." + apiVersion + ".actions.requests"; + } + + public String toJava() { + + StringBuilder sb = new StringBuilder(); + JavaGen.addBanner(sb, action.description + "\n" + description); + + sb.append("@Override\n"); + sb.append(getDefinition()); + sb.append(" {\n "); + sb.append(getImplName()).append(" request = new ").append(getImplName()).append("("); + sb.append(toParmList(false, true)).append(");\n"); + sb.append(" request.setHttpClient(this.getHttpClient());\n"); + sb.append(" request.setWsClient(this.getWsClient());\n"); + sb.append(" request.setLiveActionList(this.getLiveActionList());\n"); + sb.append(" request.setForcedResponse(this.getForcedResponse());\n"); + sb.append(" return request;\n"); + sb.append("}\n\n"); + + return sb.toString(); + } public String getSignature() { StringBuilder sb = new StringBuilder(); - sb.append(responseInterface) + sb.append(getInterfaceName()) .append(" ") .append(nickname); - for (Param p : parms) { - sb.append(" ").append(p.javaType); + for (Param p : params) { + if (p.required) { + sb.append(" ").append(p.javaType); + } } return sb.toString(); } - public String getSignatureAsync() { + public String getConstructorDefinition() { StringBuilder sb = new StringBuilder(); - sb.append("void ").append(nickname); - - for (Param p : parms) { - sb.append(" ").append(p.javaType); - } - - sb.append(" " + JavaGen.addAsyncCallback(responseInterface)); - + sb.append("public ").append(getImplName()).append("(") + .append(toParmList(true, true)).append(")"); return sb.toString(); } public String getDefinition() { StringBuilder sb = new StringBuilder(); - sb.append("public ").append(responseInterface) + sb.append("public ").append(getInterfaceName()) .append(" ").append(nickname) .append("("); - sb.append(toParmList(true)); + sb.append(toParmList(true, true)); sb.append(") throws RestException"); return sb.toString(); } - public String getDefinitionAsync() { - StringBuilder sb = new StringBuilder(); - - sb.append("public void ") - .append(nickname) - .append("("); - - boolean firstItem = true; - for (Param p : parms) { - if (firstItem) { - firstItem = false; - } else { - sb.append(", "); - } - sb.append(p.javaType).append(" ").append(p.name); + public String getInterfaceName() { + String s = action.api.getInterfaceName().substring(6); + s += nickname.substring(0, 1).toUpperCase() + nickname.substring(1); + if (!nickname.equalsIgnoreCase(method)) { + s += method.substring(0, 1).toUpperCase() + method.substring(1).toLowerCase(); } - if (!firstItem) - sb.append(", "); - sb.append(JavaGen.addAsyncCallback(responseInterface)); + s += "Request"; + return s; + } - sb.append(")"); - return sb.toString(); + public String getImplName() { + return getInterfaceName() + "_impl_" + apiVersion; } + public void registerInterfaces(JavaInterface j, String apiVersion) { + ji = j; + for (Param p : params) { + String javaSignature = p.getSignature(getInterfaceName()); + String definition = p.getDefinition(getInterfaceName()); + j.iKnow(javaSignature, definition, "", apiVersion); + } + j.iKnow(getSyncExecuteSignature(), getSyncExecuteDefinition(), "", apiVersion); + j.iKnow(getAsyncExecuteSignature(), getAsyncExecuteDefinition(), "", apiVersion); + } /** * A parameter as defined in Swagger */ - public static class Param { public String name = ""; public ParamType type = ParamType.PATH; public String javaType = ""; public boolean required = true; + + public String getSignature(String returnType) { + StringBuilder sb = new StringBuilder(); + sb.append(returnType).append(" ").append(JavaGen.addPrefixAndCapitalize("set", name)); + sb.append(" ").append(javaType); + return sb.toString(); + } + + public String getDefinition(String returnType) { + StringBuilder sb = new StringBuilder(); + sb.append(" public ").append(returnType).append(" ").append(JavaGen.addPrefixAndCapitalize("set", name)) + .append("(").append(javaType).append(" ").append(name).append(")"); + return sb.toString(); + } + } public static enum ParamType { @@ -238,7 +337,6 @@ public static ParamType build(String s) { } - public static class ErrorResp { public int code = 0; public String reason = ""; diff --git a/codegen/src/main/java/ch/loway/oss/ari4java/codegen/run.java b/codegen/src/main/java/ch/loway/oss/ari4java/codegen/run.java index 0dd75618..9a88f2ab 100644 --- a/codegen/src/main/java/ch/loway/oss/ari4java/codegen/run.java +++ b/codegen/src/main/java/ch/loway/oss/ari4java/codegen/run.java @@ -21,24 +21,39 @@ public static void main(String[] argv) throws IOException { DefMapper dm = new DefMapper(); dm.setOutputFolder(OUTPUT); + dm.clean(); Files.list(Paths.get(SOURCES)) .filter(p -> p.toFile().isDirectory()) - .sorted() + .sorted((p1, p2) -> { + // break up folder into version parts and sort as numbers + String[] items1 = p1.getFileName().toString().split("_"); + String[] items2 = p2.getFileName().toString().split("_"); + if (items1.length == 4 && items2.length == 4) { + if (items1[1].equals(items2[1])) { + if (items1[2].equals(items2[2])) { + return Integer.valueOf(items1[3]).compareTo(Integer.valueOf(items2[3])); + } + return Integer.valueOf(items1[2]).compareTo(Integer.valueOf(items2[2])); + } + return Integer.valueOf(items1[1]).compareTo(Integer.valueOf(items2[1])); + } + return p1.compareTo(p2); + }) .forEach(p -> loadAsteriskDefs(dm, p.toFile())); dm.generateAllClasses(); +// System.out.println("Finished Generating"); } private static void loadAsteriskDefs(DefMapper dm, File folder) { try { String srcVer = folder.getName(); - System.out.println("Loading: " + folder.getAbsolutePath()); - dm.clean(srcVer); +// System.out.println("Loading: " + folder.getAbsolutePath()); for (File definition : folder.listFiles()) { if (definition.getName().endsWith(".json")) { - dm.parseJsonDefinition(definition, srcVer, "events.json".equals(definition.getName())); + dm.parseJsonDefinition(definition, srcVer); } } } catch (Exception e) { diff --git a/docs/HELLOWORLD.md b/docs/HELLOWORLD.md index a82f40a8..1fe1ec4c 100644 --- a/docs/HELLOWORLD.md +++ b/docs/HELLOWORLD.md @@ -1,5 +1,4 @@ -Hello ARI World with ari4java -============================= +# Hello ARI World with ari4java This tutorial aims at showing a number of things: @@ -8,76 +7,67 @@ This tutorial aims at showing a number of things: * Running a simple call * Showing how you could make it all non-blocking -Enought to get us started! - - -Create an ARI account on Asterisk ---------------------------------- - - -Edit /etc/asterisk/ari.conf and create a user "ari4java" that we will use for connecting. - - [general] - enabled = yes - - [ari4java] - type = user - read_only = no - password = yothere - password_format = plain - -Edit /etc/asterisk/http.conf and turn on the embedded HTTP server. - - [general] - enabled=yes - bindaddr=0.0.0.0 - bindport=8088 - +Enough to get us started! + +## Asterisk Setup +Edit `/etc/asterisk/ari.conf` and create a user `ari4java` that we will use for connecting. +``` +[general] +enabled = yes + +[ari4java] +type = user +read_only = no +password = yothere +password_format = plain +``` +Edit `/etc/asterisk/http.conf` and turn on the embedded HTTP server. +``` +[general] +enabled=yes +bindaddr=0.0.0.0 +bindport=8088 +``` Reload Asterisk and connect to its CLI; if all goes well you should see: - - localhost*CLI> ari show users - r/o? Username - ---- -------- - No ari4java - - -Hello ARI World ---------------- - -In order to get started quickly with the ari4java library, we suggest -downloading all libs to a "libs" folder to be added to your local project: - - gradle downloadJars - -Now create a Java class. The plainest thing we can do is getting a list of -all active channels on the server. This is simple to do and only requires -an HTTP round-trip, that for simplicty's sake will happen synchronously. - -So we first create an ARI object that acts as your master connector. -You are going to use this to call each and every action. - - ARI ari = AriFactory.nettyHttp("http://10.10.5.41:8088/", "ari4java", "yothere", - AriVersion.ARI_1_5_0); - -The easiest thing we can do now is to query the list of active channels. -In order to do this we call the list() method on the Channels action. -All commands we can send are organized into a set of Actions. - - List channels = ari.channels().list(); - +``` +localhost*CLI> ari show users +r/o? Username +---- -------- +No ari4java +``` + +## Java Code + +In order to get started quickly with the ari4java library we suggest using gradle, +check the **Using the library** section in the [README](https://github.com/l3nz/ari4java/blob/master/README.md) + +First create an ARI object that acts as your master connector. +```java +ARI ari = ARI.build("http://10.10.5.41:8088/", "test-app", "ari4java", "yothere", AriVersion.IM_FEELING_LUCKY); +``` + +The easiest thing we can do is a synchronous query to list active channels. +```java +List channels = ari.channels().list().execute(); +``` Please note that what we get back is Java objects, not just JSON blobs. Everything is strongly typed. -A second thing to note is that this could be done in a non-blocking way as well, -just by calling the method - - list(AriCallback> callback); - -instead of the plain list() method. +A non-blocking way is also available by supplying a callback to the execute. +```java +ari.channels().list().execute(new AriCallback>() { + @Override + public void onSuccess(List result) { + // code to handle the result ... + } + @Override + public void onFailure(RestException e) { + e.printStackTrace(); + } +}); +``` A working example can be found under the examples tree, as in https://github.com/l3nz/ari4java/blob/master/examples/helloworld/HelloAriWorld.java Happy hacking! - - diff --git a/docs/USAGE.md b/docs/USAGE.md new file mode 100644 index 00000000..4f145cd9 --- /dev/null +++ b/docs/USAGE.md @@ -0,0 +1,106 @@ +# Using ari4java + +To initialize: +```java +ARI ari = ARI.build("http://my-pbx-ip:8088/", "app-name", "user", "pass", AriVersion.ARI_x_x_x); +``` +`ARI_x_x_x` must be replaced with a valid version from `AriVersion` or you can use `AriVersion.IM_FEELING_LUCKY` +which tries to identify the version from the server. + +There are 1 of 2 ways to get an API: + +- Using the convenience methods in ARI (action) +```java +ActionApplications ac = ari.applications(); +``` +- or asking ARI to get an (action) implementation +```java +ActionApplications ac = ari.getActionImpl(ActionApplications.class); +``` + +There are also 1 of 2 ways for invoking an operation: + +- Using synchronous execution +```java +AsteriskInfo info = ari.asterisk().getInfo().execute(); +``` + +- or asynchronous execution +```java +AsteriskInfo info = ari.asterisk().getInfo().execute(new AriCallback() { + @Override + public void onSuccess(AsteriskInfo result) { + // handle result + } + @Override + public void onFailure(RestException e) { + e.printStackTrace(); + } +}); +``` + +An ARI application is pretty much useless unless you subscribe to and handle the events, +so you need to create the websocket and choose to subscribe to all events or only events for actions made by your app. +This must use the asynchronous execution as the events are asynchronous. +```java +AriCallback callback = new AriCallback() { + @Override + public void onSuccess(Message message) { + // code to handle the events ... + } + @Override + public void onFailure(RestException e) { + e.printStackTrace(); + } +}; +ari.events().eventWebsocket("app-name").execute(callback); +// or subscribe to all events +// ari.events().eventWebsocket("app-name").setSubscribeAll(true).execute(callback); +``` +The Message object will be one of many subtypes, you'll have to introspect to find out which. +```java +public void onSuccess(Message message) { + if (message instanceof StasisStart) { + // handle the start (from dialplan or channels.originate API) + } else if (message instanceof StasisEnd) { + // handle the end - good bye + } +} +``` + +Most likely ARI applications are going to be long running applications, +so the above will be a common, however for convenience you can get a `MessageQueue` from ARI. +Which utilises a polling strategy which is not great in this event based world... +```java +MessageQueue queue = ari.getWebsocketQueue(); +// perform some actions... +Message message = queue.dequeueMax(10, 250); +if (message != null) { + // handle event +} +``` + +When you're done or you're quitting the application make sure to cleanup. +```java +ARI ari = ARI.build(...); +try { + // your logic +} finally { + ari.cleanup(); +} +``` + +If you want to be more multi-threaded it would be a good idea to implement a thread pool +and handle each event in a separate thread. +[Here](https://github.com/l3nz/ari4java/blob/master/src/test/java/ch/loway/oss/ari4java/sandbox/sample/Weasels.java) +is example with a fixed pool of 10 threads that handle each event. The thread will play the 'weasels-eaten-phonesys' +sound on when someone dials in and will hangup when playback is complete. +(assuming the dial plan executes `Stasis` and you have that sound) + +Dial plan (`/etc/asterisk/extensions.conf`): +``` +[default] +exten => _X.,1,NoOp(Incoming to ${EXTEN} send to Stasis}) +same => Answer() +same => Stasis(weasels-app) +``` diff --git a/src/main/java/ch/loway/oss/ari4java/ARI.java b/src/main/java/ch/loway/oss/ari4java/ARI.java index 33a316a0..34bcc859 100644 --- a/src/main/java/ch/loway/oss/ari4java/ARI.java +++ b/src/main/java/ch/loway/oss/ari4java/ARI.java @@ -1,19 +1,9 @@ package ch.loway.oss.ari4java; +import ch.loway.oss.ari4java.generated.actions.requests.EventsEventWebsocketGetRequest; import ch.loway.oss.ari4java.tools.ARIException; -import ch.loway.oss.ari4java.generated.ActionApplications; -import ch.loway.oss.ari4java.generated.ActionAsterisk; -import ch.loway.oss.ari4java.generated.ActionBridges; -import ch.loway.oss.ari4java.generated.ActionChannels; -import ch.loway.oss.ari4java.generated.ActionDeviceStates; -import ch.loway.oss.ari4java.generated.ActionEndpoints; -import ch.loway.oss.ari4java.generated.ActionEvents; -import ch.loway.oss.ari4java.generated.ActionMailboxes; -import ch.loway.oss.ari4java.generated.ActionPlaybacks; -import ch.loway.oss.ari4java.generated.ActionRecordings; -import ch.loway.oss.ari4java.generated.ActionSounds; -import ch.loway.oss.ari4java.generated.Application; -import ch.loway.oss.ari4java.generated.Message; +import ch.loway.oss.ari4java.generated.actions.*; +import ch.loway.oss.ari4java.generated.models.*; import ch.loway.oss.ari4java.tools.AriCallback; import java.io.IOException; @@ -200,27 +190,12 @@ public void closeAction(Object action) throws ARIException { * @throws ARIException If the url is invalid, or the version of ARI is not supported. */ public static ARI build(String url, String app, String user, String pass, AriVersion version) throws ARIException { - if (version == AriVersion.IM_FEELING_LUCKY) { - AriVersion currentVersion = detectAriVersion(url, user, pass); return build(url, app, user, pass, currentVersion); - } else { - try { - - ARI ari = new ARI(); - ari.appName = app; - NettyHttpClient hc = new NettyHttpClient(); - hc.initialize(url, user, pass); - ari.setHttpClient(hc); - ari.setWsClient(hc); - ari.setVersion(version); - ari.setUrl(url); - - return ari; - + return AriFactory.nettyHttp(url, user, pass, version, app); } catch (URISyntaxException e) { throw new ARIException("Wrong URI format: " + url); } @@ -385,22 +360,22 @@ public void cleanup() { * @throws RestException when error */ private void unsubscribeApplication() throws RestException { - Application application = applications().get(appName); + Application application = applications().get(appName).execute(); // unsubscribe from all channels for (int i = 0; i < application.getChannel_ids().size(); i++) { - applications().unsubscribe(appName, "channel:" + application.getChannel_ids().get(i)); + applications().unsubscribe(appName, "channel:" + application.getChannel_ids().get(i)).execute(); } // unsubscribe from all bridges for (int i = 0; i < application.getBridge_ids().size(); i++) { - applications().unsubscribe(appName, "bridge:" + application.getBridge_ids().get(i)); + applications().unsubscribe(appName, "bridge:" + application.getBridge_ids().get(i)).execute(); } // unsubscribe from all endpoints for (int i = 0; i < application.getEndpoint_ids().size(); i++) { - applications().unsubscribe(appName, "endpoint:" + application.getEndpoint_ids().get(i)); + applications().unsubscribe(appName, "endpoint:" + application.getEndpoint_ids().get(i)).execute(); } // unsubscribe from all deviceState for (int i = 0; i < application.getDevice_names().size(); i++) { - applications().unsubscribe(appName, "deviceState:" + application.getDevice_names().get(i)); + applications().unsubscribe(appName, "deviceState:" + application.getDevice_names().get(i)).execute(); } } @@ -431,6 +406,7 @@ public MessageQueue getWebsocketQueue() throws ARIException { * This makes sure you don't really need to synchonize or be worried by * threading issues * + * @param subscribeAll subscribe to all events * @return The MQ connected to your websocket. * @throws ARIException when error */ @@ -455,11 +431,13 @@ public void onFailure(RestException e) { } }; + EventsEventWebsocketGetRequest eventsRequest = events().eventWebsocket(appName); try { - events().eventWebsocket(appName, subscribeAll, callback); + eventsRequest.setSubscribeAll(subscribeAll); } catch (UnsupportedOperationException e) { - events().eventWebsocket(appName, callback); + // ignore } + eventsRequest.execute(callback); return q; diff --git a/src/main/java/ch/loway/oss/ari4java/AriFactory.java b/src/main/java/ch/loway/oss/ari4java/AriFactory.java index bbb6566e..1eaf9620 100644 --- a/src/main/java/ch/loway/oss/ari4java/AriFactory.java +++ b/src/main/java/ch/loway/oss/ari4java/AriFactory.java @@ -37,15 +37,15 @@ public static ARI nettyHttp(String uri, String login, String pass, AriVersion ve * @throws URISyntaxException when error */ public static ARI nettyHttp(String uri, String login, String pass, AriVersion version, String app) throws URISyntaxException { + if (AriVersion.IM_FEELING_LUCKY.equals(version)) { + throw new UnsupportedOperationException("IM_FEELING_LUCKY not a valid option here"); + } ARI ari = new ARI(); ari.setAppName(app); NettyHttpClient hc = new NettyHttpClient(); - ari.setHttpClient(hc); ari.setWsClient(hc); - ari.setVersion(version); - hc.initialize(uri, login, pass); return ari; } diff --git a/src/main/java/ch/loway/oss/ari4java/AriSubscriber.java b/src/main/java/ch/loway/oss/ari4java/AriSubscriber.java index 798bd705..ca4a35f9 100644 --- a/src/main/java/ch/loway/oss/ari4java/AriSubscriber.java +++ b/src/main/java/ch/loway/oss/ari4java/AriSubscriber.java @@ -1,10 +1,6 @@ package ch.loway.oss.ari4java; -import ch.loway.oss.ari4java.generated.Application; -import ch.loway.oss.ari4java.generated.Bridge; -import ch.loway.oss.ari4java.generated.Channel; -import ch.loway.oss.ari4java.generated.DeviceState; -import ch.loway.oss.ari4java.generated.Endpoint; +import ch.loway.oss.ari4java.generated.models.*; import ch.loway.oss.ari4java.tools.RestException; import ch.loway.oss.ari4java.tools.tags.EventSource; @@ -21,7 +17,7 @@ public class AriSubscriber { public Application subscribe(ARI ari, EventSource m) throws RestException { String model = toModelName(m); - Application a = ari.applications().subscribe(ari.getAppName(), model); + Application a = ari.applications().subscribe(ari.getAppName(), model).execute(); subscriptions.add(model); return a; } diff --git a/src/main/java/ch/loway/oss/ari4java/tools/BaseAriAction.java b/src/main/java/ch/loway/oss/ari4java/tools/BaseAriAction.java index ebc2b6a9..dcd9f40f 100644 --- a/src/main/java/ch/loway/oss/ari4java/tools/BaseAriAction.java +++ b/src/main/java/ch/loway/oss/ari4java/tools/BaseAriAction.java @@ -1,6 +1,6 @@ package ch.loway.oss.ari4java.tools; -import ch.loway.oss.ari4java.generated.Message; +import ch.loway.oss.ari4java.generated.models.Message; import ch.loway.oss.ari4java.tools.WsClient.WsClientConnection; import com.fasterxml.jackson.core.JsonParser; @@ -29,79 +29,92 @@ */ public class BaseAriAction { + public class AriRequest { + private List lParamQuery = new ArrayList(); + private List lParamForm = new ArrayList(); + private List lParamBody = new ArrayList(); + private List lE = new ArrayList(); + private String url; + private String method; + private boolean wsUpgrade = false; + + public AriRequest(String url, String method) { + this.url = url; + this.method = method; + } + + public void addParamQuery(HttpParam param) { + lParamQuery.add(param); + } + + public void addParamBody(HttpParam param) { + lParamBody.add(param); + } + + public void addParamBody(List params) { + lParamBody.addAll(params); + } + + public void addErrorResponse(HttpResponse res) { + lE.add(res); + } + + public void setWsUpgrade(boolean wsUpgrade) { + this.wsUpgrade = wsUpgrade; + } + } + // Shared ObjectMapper private static final ObjectMapper mapper = new ObjectMapper(); private String forcedResponse = null; private HttpClient httpClient; private WsClient wsClient; - protected List lParamQuery; - protected List lParamForm; - protected List lParamBody; - protected List lE; - protected String url; - protected String method; - protected boolean wsUpgrade = false; protected WsClientConnection wsConnection; private List liveActionList; - /** - * Reset contents in preparation for new RPC - */ - protected synchronized void reset() { - lParamQuery = new ArrayList(); - lParamForm = new ArrayList(); - lParamBody = new ArrayList(); - lE = new ArrayList(); - url = null; - wsUpgrade = false; - } - - public synchronized void forceResponse(String r) { - forcedResponse = r; - } - /** * Initiate synchronous HTTP interaction with server - * + * @param request the request object * @return Response from server * @throws RestException when error */ - protected synchronized String httpActionSync() throws RestException { + protected synchronized String httpActionSync(AriRequest request) throws RestException { if (forcedResponse != null) { return forcedResponse; } else { if (httpClient == null) { throw new RestException("HTTP client implementation not set"); } else { - return httpClient.httpActionSync(this.url, this.method, this.lParamQuery, this.lParamForm, this.lParamBody, this.lE); + return httpClient.httpActionSync(request.url, request.method, request.lParamQuery, request.lParamForm, request.lParamBody, request.lE); } } } /** * Initiate synchronous HTTP interaction with server - * + * @param request the request object * @return Response from server * @throws RestException when error */ - protected synchronized byte[] httpActionSyncAsBytes() throws RestException { + protected synchronized byte[] httpActionSyncAsBytes(AriRequest request) throws RestException { if (httpClient == null) { throw new RestException("HTTP client implementation not set"); } else { - return httpClient.httpActionSyncAsBytes(this.url, this.method, this.lParamQuery, this.lParamForm, this.lParamBody, this.lE); + return httpClient.httpActionSyncAsBytes(request.url, request.method, request.lParamQuery, request.lParamForm, request.lParamBody, request.lE); } } /** * Initiate asynchronous HTTP or WebSocket interaction with server * - * @param asyncHandler + * @param request the request object + * @param asyncHandler the handler */ - private synchronized void httpActionAsync(AriAsyncHandler asyncHandler) { + private synchronized void httpActionAsync(AriRequest request, AriAsyncHandler asyncHandler) { if (forcedResponse != null) { asyncHandler.handleResponse(forcedResponse); - } else if (wsUpgrade) { + } else if (request.wsUpgrade) { // Websocket connection if (wsClient == null) { asyncHandler.getCallback().onFailure(new RestException("WebSocket client implementation not set")); @@ -112,7 +125,7 @@ private synchronized void httpActionAsync(AriAsyncHandler asyncHandler) { return; } try { - wsConnection = wsClient.connect(asyncHandler, this.url, this.lParamQuery); + wsConnection = wsClient.connect(asyncHandler, request.url, request.lParamQuery); liveActionList.add(this); } catch (RestException e) { asyncHandler.getCallback().onFailure(e); @@ -122,7 +135,7 @@ private synchronized void httpActionAsync(AriAsyncHandler asyncHandler) { } else { try { boolean binary = byte[].class.equals(asyncHandler.getType()); - httpClient.httpActionAsync(this.url, this.method, this.lParamQuery, this.lParamForm, this.lParamBody, this.lE, asyncHandler, binary); + httpClient.httpActionAsync(request.url, request.method, request.lParamQuery, request.lParamForm, request.lParamBody, request.lE, asyncHandler, binary); } catch (RestException e) { asyncHandler.getCallback().onFailure(e); } @@ -130,17 +143,17 @@ private synchronized void httpActionAsync(AriAsyncHandler asyncHandler) { } // Different styled asynchronous methods - protected void httpActionAsync(AriCallback callback) { - httpActionAsync(new AriAsyncHandler(callback, Void.class)); + protected void httpActionAsync(AriRequest request, AriCallback callback) { + httpActionAsync(request, new AriAsyncHandler(callback, Void.class)); } - protected void httpActionAsync(AriCallback callback, Class klazz) { - httpActionAsync(new AriAsyncHandler(callback, klazz)); + protected void httpActionAsync(AriRequest request, AriCallback callback, Class klazz) { + httpActionAsync(request, new AriAsyncHandler(callback, klazz)); } protected void httpActionAsync( - AriCallback> callback, TypeReference> klazzType) { - httpActionAsync(new AriAsyncHandler(callback, klazzType)); + AriRequest request, AriCallback> callback, TypeReference> klazzType) { + httpActionAsync(request, new AriAsyncHandler(callback, klazzType)); } /** @@ -255,14 +268,34 @@ public synchronized void setHttpClient(HttpClient httpClient) { this.httpClient = httpClient; } + public synchronized HttpClient getHttpClient() { + return this.httpClient; + } + public synchronized void setWsClient(WsClient wsClient) { this.wsClient = wsClient; } + public synchronized WsClient getWsClient() { + return this.wsClient; + } + public synchronized void setLiveActionList(List liveActionList) { this.liveActionList = liveActionList; } + public synchronized List getLiveActionList() { + return this.liveActionList; + } + + public synchronized void setForcedResponse(String forcedResponse) { + this.forcedResponse = forcedResponse; + } + + public String getForcedResponse() { + return this.forcedResponse; + } + public static void setObjectMapperLessStrict() { mapper.addHandler(new DeserializationProblemHandler() { @Override diff --git a/src/main/java/ch/loway/oss/ari4java/tools/HttpParam.java b/src/main/java/ch/loway/oss/ari4java/tools/HttpParam.java index 90a6986d..a56e930b 100644 --- a/src/main/java/ch/loway/oss/ari4java/tools/HttpParam.java +++ b/src/main/java/ch/loway/oss/ari4java/tools/HttpParam.java @@ -44,11 +44,6 @@ public static HttpParam build(String n, boolean v) { } } -// public AriConnector daddy = null; -// -// public void configure(AriConnector connector) { -// daddy = connector; -// } // $Log$ // diff --git a/src/main/java/ch/loway/oss/ari4java/tools/MessageQueue.java b/src/main/java/ch/loway/oss/ari4java/tools/MessageQueue.java index b6f3e832..56207eb5 100644 --- a/src/main/java/ch/loway/oss/ari4java/tools/MessageQueue.java +++ b/src/main/java/ch/loway/oss/ari4java/tools/MessageQueue.java @@ -2,7 +2,7 @@ package ch.loway.oss.ari4java.tools; import ch.loway.oss.ari4java.ARI; -import ch.loway.oss.ari4java.generated.Message; +import ch.loway.oss.ari4java.generated.models.Message; import java.util.LinkedList; import java.util.List; diff --git a/src/test/java/ch/loway/oss/ari4java/ARITest.java b/src/test/java/ch/loway/oss/ari4java/ARITest.java index 537020b2..44941e0d 100644 --- a/src/test/java/ch/loway/oss/ari4java/ARITest.java +++ b/src/test/java/ch/loway/oss/ari4java/ARITest.java @@ -5,98 +5,85 @@ */ package ch.loway.oss.ari4java; -import ch.loway.oss.ari4java.generated.ActionApplications; -import ch.loway.oss.ari4java.generated.ActionAsterisk; -import ch.loway.oss.ari4java.generated.ActionBridges; -import ch.loway.oss.ari4java.generated.ActionChannels; -import ch.loway.oss.ari4java.generated.ActionDeviceStates; -import ch.loway.oss.ari4java.generated.ActionEndpoints; -import ch.loway.oss.ari4java.generated.ActionEvents; -import ch.loway.oss.ari4java.generated.ActionPlaybacks; -import ch.loway.oss.ari4java.generated.ActionRecordings; -import ch.loway.oss.ari4java.generated.ActionSounds; +import ch.loway.oss.ari4java.generated.actions.ActionAsterisk; +import ch.loway.oss.ari4java.generated.actions.ActionBridges; import ch.loway.oss.ari4java.generated.ari_0_0_1.actions.ActionAsterisk_impl_ari_0_0_1; import ch.loway.oss.ari4java.generated.ari_0_0_1.actions.ActionBridges_impl_ari_0_0_1; import ch.loway.oss.ari4java.tools.ARIException; -import ch.loway.oss.ari4java.tools.HttpClient; -import ch.loway.oss.ari4java.tools.MessageQueue; -import ch.loway.oss.ari4java.tools.WsClient; import org.junit.After; import org.junit.AfterClass; import org.junit.Before; import org.junit.BeforeClass; import org.junit.Test; + import static org.junit.Assert.*; /** - * * @author lenz */ public class ARITest { - + public ARITest() { } - + @BeforeClass public static void setUpClass() { } - + @AfterClass public static void tearDownClass() { } - + @Before public void setUp() { } - + @After public void tearDown() { } - + /** * An example abstract to concrete builder. */ - + public static class SampleClassFactory implements ARI.ClassFactory { @Override public Class getImplementationFor(Class interfaceClass) { - - if ( interfaceClass.equals(ActionBridges.class) ) { + + if (interfaceClass.equals(ActionBridges.class)) { return ActionBridges_impl_ari_0_0_1.class; - } else - - { + } else { return null; } - } + } } - + @Test public void testImplementationFactory() { ARI.ClassFactory factory = new SampleClassFactory(); - + assertEquals("ActionBridges", ActionBridges_impl_ari_0_0_1.class, factory.getImplementationFor(ActionBridges.class)); assertEquals("Not found", null, factory.getImplementationFor(String.class)); } - + @Test public void testBuildAction() throws ARIException { ARI ari = new ARI(); ari.setVersion(AriVersion.ARI_0_0_1); - + ActionAsterisk asterisk = ari.asterisk(); - assertTrue( "Correct type", asterisk instanceof ActionAsterisk_impl_ari_0_0_1 ); + assertTrue("Correct type", asterisk instanceof ActionAsterisk_impl_ari_0_0_1); } - + @Test public void testCreateUid() throws ARIException { ARI ari = new ARI(); String v = ari.getUID(); - System.out.println("UID: "+v); - assertTrue( "UID created", v.length() > 0); + System.out.println("UID: " + v); + assertTrue("UID created", v.length() > 0); } - - + + } diff --git a/src/test/java/ch/loway/oss/ari4java/generated/ActionSoundsTest.java b/src/test/java/ch/loway/oss/ari4java/generated/ActionSoundsTest.java index b14fad3d..26c718b6 100644 --- a/src/test/java/ch/loway/oss/ari4java/generated/ActionSoundsTest.java +++ b/src/test/java/ch/loway/oss/ari4java/generated/ActionSoundsTest.java @@ -1,6 +1,8 @@ package ch.loway.oss.ari4java.generated; +import ch.loway.oss.ari4java.generated.actions.ActionSounds; import ch.loway.oss.ari4java.generated.ari_0_0_1.actions.ActionSounds_impl_ari_0_0_1; +import ch.loway.oss.ari4java.generated.models.*; import ch.loway.oss.ari4java.tools.AriCallback; import ch.loway.oss.ari4java.tools.RestException; import org.junit.After; @@ -8,24 +10,24 @@ import org.junit.Before; import org.junit.BeforeClass; import org.junit.Test; + import static org.junit.Assert.*; /** - * * @author lenz */ public class ActionSoundsTest { - static final String jsonSounds = requoteString( "" - + " { " - + " 'id': 'abcde', " - + " 'text': 'some text', " - + " 'formats': [ " - + " { 'language': 'en', 'format': 'wav' }, " - + " { 'language': 'es', 'format': 'wav' }, " - + " { 'language': 'es', 'format': 'gsm' } " - + " ] " - + " } " ); + static final String jsonSounds = requoteString("" + + " { " + + " 'id': 'abcde', " + + " 'text': 'some text', " + + " 'formats': [ " + + " { 'language': 'en', 'format': 'wav' }, " + + " { 'language': 'es', 'format': 'wav' }, " + + " { 'language': 'es', 'format': 'gsm' } " + + " ] " + + " } "); public ActionSoundsTest() { } @@ -50,19 +52,19 @@ public void tearDown() { * Strings in a JSON object need the double quotes. * Unfortunately using double quotes in Java is a PITA. * So... - * + * * @param s * @return Translating 's to "s */ - public static String requoteString( String s ) { + public static String requoteString(String s) { return s.replace("'", "\""); } - private ActionSounds createWForcedResponse( String response ) { + private ActionSounds createWForcedResponse(String response) { ActionSounds_impl_ari_0_0_1 a = new ActionSounds_impl_ari_0_0_1(); - a.forceResponse( response ); + a.setForcedResponse(response); ActionSounds aa = (ActionSounds) a; return aa; @@ -71,37 +73,34 @@ private ActionSounds createWForcedResponse( String response ) { /** * Tries generating a bridge. - * */ @Test public void generateSound() throws RestException { ActionSounds aa = createWForcedResponse(jsonSounds); - Sound s = aa.get("abcde"); - - assertEquals("Id", "abcde", s.getId() ); - assertEquals("Formats", 3, s.getFormats().size() ); - assertEquals("Language of format #2", "es", s.getFormats().get(1).getLanguage() ); - - aa.get("abcde", new AriCallback() { - - @Override - public void onSuccess(Sound result) { - assertEquals("Id", "abcde", result.getId() ); - assertEquals("Formats", 3, result.getFormats().size() ); - assertEquals("Language of format #2", "es", result.getFormats().get(1).getLanguage() ); - } - - @Override - public void onFailure(RestException e) { - e.printStackTrace(); - } - }); + Sound s = aa.get("abcde").execute(); - } + assertEquals("Id", "abcde", s.getId()); + assertEquals("Formats", 3, s.getFormats().size()); + assertEquals("Language of format #2", "es", s.getFormats().get(1).getLanguage()); + aa.get("abcde").execute(new AriCallback() { + @Override + public void onSuccess(Sound result) { + assertEquals("Id", "abcde", result.getId()); + assertEquals("Formats", 3, result.getFormats().size()); + assertEquals("Language of format #2", "es", result.getFormats().get(1).getLanguage()); + } + + @Override + public void onFailure(RestException e) { + e.printStackTrace(); + } + }); + + } -} \ No newline at end of file +} diff --git a/src/test/java/ch/loway/oss/ari4java/generated/ActonBridgesTest.java b/src/test/java/ch/loway/oss/ari4java/generated/ActonBridgesTest.java index 53a34b20..2f38e444 100644 --- a/src/test/java/ch/loway/oss/ari4java/generated/ActonBridgesTest.java +++ b/src/test/java/ch/loway/oss/ari4java/generated/ActonBridgesTest.java @@ -1,6 +1,8 @@ package ch.loway.oss.ari4java.generated; +import ch.loway.oss.ari4java.generated.actions.ActionBridges; import ch.loway.oss.ari4java.generated.ari_0_0_1.actions.ActionBridges_impl_ari_0_0_1; +import ch.loway.oss.ari4java.generated.models.*; import ch.loway.oss.ari4java.tools.RestException; import org.junit.After; import org.junit.AfterClass; @@ -60,7 +62,7 @@ public static String requoteString( String s ) { private ActionBridges createWForcedResponse( String response ) { ActionBridges_impl_ari_0_0_1 a = new ActionBridges_impl_ari_0_0_1(); - a.forceResponse( response ); + a.setForcedResponse( response ); ActionBridges aa = (ActionBridges) a; return aa; @@ -76,7 +78,7 @@ private ActionBridges createWForcedResponse( String response ) { public void generateABridge() throws RestException { ActionBridges aa = createWForcedResponse(jsonBridge); - Bridge b = aa.get("abcd"); + Bridge b = aa.get("abcd").execute(); assertEquals("Id", "aaa", b.getId() ); assertEquals("N channels", 3, b.getChannels().size() ); @@ -99,7 +101,7 @@ public void receiveWrongMessage() throws RestException { boolean exceptionRaised = false; try { - Playback pb = aa.play("aaa", "sss", "en", 0, 0); + Playback pb = aa.play("aaa", "sss").execute(); } catch ( RestException e ) { exceptionRaised = true; } diff --git a/src/test/java/ch/loway/oss/ari4java/generated/DeserializeToListOfInterfaceTest.java b/src/test/java/ch/loway/oss/ari4java/generated/DeserializeToListOfInterfaceTest.java index ca6d871d..80dcd99d 100644 --- a/src/test/java/ch/loway/oss/ari4java/generated/DeserializeToListOfInterfaceTest.java +++ b/src/test/java/ch/loway/oss/ari4java/generated/DeserializeToListOfInterfaceTest.java @@ -51,9 +51,7 @@ public void testDeserializeConcrete() throws RestException { List l = BaseAriAction.deserializeJson( STR_TUPLE, new TypeReference>() {} ); - - List x2 = (List) l; - + assertEquals( "Size", 2, l.size() ); assertEquals( "El 1 A", "x1", l.get(0).getA() ); assertEquals( "El 2 B", "y2", l.get(1).getB() ); @@ -140,4 +138,4 @@ public void setB(String b) { } -} \ No newline at end of file +} diff --git a/src/test/java/ch/loway/oss/ari4java/generated/EventBuilderTest.java b/src/test/java/ch/loway/oss/ari4java/generated/EventBuilderTest.java index 4a0e394a..d640c3a2 100644 --- a/src/test/java/ch/loway/oss/ari4java/generated/EventBuilderTest.java +++ b/src/test/java/ch/loway/oss/ari4java/generated/EventBuilderTest.java @@ -1,6 +1,8 @@ package ch.loway.oss.ari4java.generated; +import ch.loway.oss.ari4java.generated.models.Message; +import ch.loway.oss.ari4java.generated.models.StasisStart; import ch.loway.oss.ari4java.generated.ari_0_0_1.models.Message_impl_ari_0_0_1; import ch.loway.oss.ari4java.tools.BaseAriAction; import ch.loway.oss.ari4java.tools.RestException; @@ -103,4 +105,4 @@ public void generateStatsiStartOutOfData() throws RestException { -} \ No newline at end of file +} diff --git a/src/test/java/ch/loway/oss/ari4java/sandbox/TestARI.java b/src/test/java/ch/loway/oss/ari4java/sandbox/TestARI.java index dbfdc4f3..2f5657ff 100644 --- a/src/test/java/ch/loway/oss/ari4java/sandbox/TestARI.java +++ b/src/test/java/ch/loway/oss/ari4java/sandbox/TestARI.java @@ -4,13 +4,13 @@ import ch.loway.oss.ari4java.ARI; import ch.loway.oss.ari4java.AriVersion; -import ch.loway.oss.ari4java.generated.ActionApplications; -import ch.loway.oss.ari4java.generated.ActionAsterisk; -import ch.loway.oss.ari4java.generated.ActionEvents; -import ch.loway.oss.ari4java.generated.Application; -import ch.loway.oss.ari4java.generated.AsteriskInfo; -import ch.loway.oss.ari4java.generated.Message; -import ch.loway.oss.ari4java.generated.Variable; +import ch.loway.oss.ari4java.generated.actions.ActionApplications; +import ch.loway.oss.ari4java.generated.actions.ActionAsterisk; +import ch.loway.oss.ari4java.generated.actions.ActionEvents; +import ch.loway.oss.ari4java.generated.models.Application; +import ch.loway.oss.ari4java.generated.models.AsteriskInfo; +import ch.loway.oss.ari4java.generated.models.Message; +import ch.loway.oss.ari4java.generated.models.Variable; import ch.loway.oss.ari4java.tools.AriCallback; import ch.loway.oss.ari4java.tools.RestException; import ch.loway.oss.ari4java.tools.http.NettyHttpClient; @@ -26,15 +26,15 @@ public static void main(String[] args) { ari.setWsClient(hc); ari.setVersion(AriVersion.ARI_0_0_1); ActionApplications ac = ari.getActionImpl(ActionApplications.class); - List alist = ac.list(); + List alist = ac.list().execute(); for (Application app : alist) { System.out.println(app.getName()); } ActionAsterisk aa = ari.getActionImpl(ActionAsterisk.class); - AsteriskInfo ai = aa.getInfo(""); + AsteriskInfo ai = aa.getInfo().execute(); System.out.println(ai.getSystem().getEntity_id()); // Let's try async - aa.getInfo("", new AriCallback() { + aa.getInfo().execute(new AriCallback() { @Override public void onSuccess(AsteriskInfo result) { System.out.println(result.getSystem().getEntity_id()); @@ -44,7 +44,7 @@ public void onFailure(RestException e) { e.printStackTrace(); } }); - aa.getGlobalVar("AMPMGRPASS", new AriCallback() { + aa.getGlobalVar("AMPMGRPASS").execute(new AriCallback() { @Override public void onSuccess(Variable result) { System.out.println(result.getValue()); @@ -54,7 +54,7 @@ public void onFailure(RestException e) { e.printStackTrace(); } }); - aa.setGlobalVar("WHATUP", "Hoo", new AriCallback() { + aa.setGlobalVar("WHATUP").setValue("Hoo").execute(new AriCallback() { @Override public void onSuccess(Void result) { System.out.println("Done"); @@ -64,7 +64,7 @@ public void onFailure(RestException e) { e.printStackTrace(); } }); - aa.getGlobalVar("WHATUP", new AriCallback() { + aa.getGlobalVar("WHATUP").execute(new AriCallback() { @Override public void onSuccess(Variable result) { System.out.println(result.getValue()); @@ -76,7 +76,7 @@ public void onFailure(RestException e) { }); System.out.println("Waiting for response..."); ActionEvents ae = ari.getActionImpl(ActionEvents.class); - ae.eventWebsocket("hello,goodbye", new AriCallback() { + ae.eventWebsocket("hello,goodbye").execute(new AriCallback() { @Override public void onSuccess(Message result) { System.out.println("ws="+result); diff --git a/src/test/java/ch/loway/oss/ari4java/sandbox/TestNettyHttp.java b/src/test/java/ch/loway/oss/ari4java/sandbox/TestNettyHttp.java index 807a2ab4..6b9dc217 100644 --- a/src/test/java/ch/loway/oss/ari4java/sandbox/TestNettyHttp.java +++ b/src/test/java/ch/loway/oss/ari4java/sandbox/TestNettyHttp.java @@ -22,7 +22,7 @@ import java.net.URI; -import ch.loway.oss.ari4java.generated.AsteriskInfo; +import ch.loway.oss.ari4java.generated.models.AsteriskInfo; import ch.loway.oss.ari4java.generated.ari_0_0_1.models.AsteriskInfo_impl_ari_0_0_1; import ch.loway.oss.ari4java.tools.BaseAriAction; import ch.loway.oss.ari4java.tools.RestException; diff --git a/src/test/java/ch/loway/oss/ari4java/sandbox/TestNettyWs.java b/src/test/java/ch/loway/oss/ari4java/sandbox/TestNettyWs.java index 99fa20b8..0fe558a8 100644 --- a/src/test/java/ch/loway/oss/ari4java/sandbox/TestNettyWs.java +++ b/src/test/java/ch/loway/oss/ari4java/sandbox/TestNettyWs.java @@ -30,7 +30,7 @@ import java.net.URI; -import ch.loway.oss.ari4java.generated.Message; +import ch.loway.oss.ari4java.generated.models.Message; import ch.loway.oss.ari4java.generated.ari_0_0_1.models.Message_impl_ari_0_0_1; import ch.loway.oss.ari4java.tools.BaseAriAction; import ch.loway.oss.ari4java.tools.RestException; diff --git a/src/test/java/ch/loway/oss/ari4java/sandbox/sample/ConnectAndDial.java b/src/test/java/ch/loway/oss/ari4java/sandbox/sample/ConnectAndDial.java index 1cbe608c..1ff2f135 100644 --- a/src/test/java/ch/loway/oss/ari4java/sandbox/sample/ConnectAndDial.java +++ b/src/test/java/ch/loway/oss/ari4java/sandbox/sample/ConnectAndDial.java @@ -3,17 +3,15 @@ import ch.loway.oss.ari4java.ARI; import ch.loway.oss.ari4java.tools.ARIException; import ch.loway.oss.ari4java.AriVersion; -import ch.loway.oss.ari4java.generated.AsteriskInfo; -import ch.loway.oss.ari4java.generated.Bridge; -import ch.loway.oss.ari4java.generated.Channel; -import ch.loway.oss.ari4java.generated.Message; -import ch.loway.oss.ari4java.generated.StasisStart; +import ch.loway.oss.ari4java.generated.models.AsteriskInfo; +import ch.loway.oss.ari4java.generated.models.Bridge; +import ch.loway.oss.ari4java.generated.models.Channel; +import ch.loway.oss.ari4java.generated.models.Message; +import ch.loway.oss.ari4java.generated.models.StasisStart; import ch.loway.oss.ari4java.tools.AriCallback; import ch.loway.oss.ari4java.tools.MessageQueue; import ch.loway.oss.ari4java.tools.RestException; -import java.util.Collections; import java.util.List; -import java.util.Map; /** * This class opens up an ARI application that creates a bridge with MOH. @@ -80,7 +78,7 @@ public void connect() throws ARIException { System.out.println("Connected through ARI: " + ari.getVersion()); // let's raise an exeption if the connection is not valid - AsteriskInfo ai = ari.asterisk().getInfo(""); + AsteriskInfo ai = ari.asterisk().getInfo().execute(); System.out.println("Hey! We're connected! Asterisk Version: " + ai.getSystem().getVersion()); } @@ -90,16 +88,16 @@ public void createBridge() throws ARIException { // create a bridge and start playing MOH on it // UGLY: we should have a constant for the allowed bridge types System.out.println( "Creating a bridge"); - b = ari.bridges().create("", "a4j-bridge1", "myBridge"); + b = ari.bridges().create().setType("a4j-bridge1").setName("myBridge").execute(); System.out.println("Bridge ID:" + b.getId() + " Name:" + b.getName() + " Tech:" + b.getTechnology() + " Creator:" + b.getCreator()); // start MOH on the bridge System.out.println( "Starting MOH on bridge"); - ari.bridges().startMoh(b.getId(), ""); + ari.bridges().startMoh(b.getId()).execute(); // check which bridges are available System.out.println( "Listing bridges"); - List bridges = ari.bridges().list(); + List bridges = ari.bridges().list().execute(); for (Bridge bb : bridges) { printBridge(bb); @@ -121,9 +119,8 @@ public void processEvents() throws ARIException { long start = System.currentTimeMillis(); - String dummy = ""; - - Channel chan = ari.channels().originate("Local/100@wdep", "100", "wdep", 1, dummy, dummy, dummy, dummy, 10000, Collections.EMPTY_MAP, dummy, dummy, dummy); + Channel chan = ari.channels().originate("Local/100@wdep") + .setExtension("100").setContext("wdep").setPriority(1).setTimeout(10000).execute(); System.out.println( "Channel:" + chan.getId() + " in state " + chan.getState() ); while ((System.currentTimeMillis() - start) < 10 * 1000L) { @@ -138,7 +135,7 @@ public void processEvents() throws ARIException { StasisStart event = (StasisStart) m; System.out.println("Channel found: " + event.getChannel().getId() + " State:" + event.getChannel().getState()); - ari.bridges().addChannel(b.getId(), event.getChannel().getId(), ""); + ari.bridges().addChannel(b.getId(), event.getChannel().getId()).execute(); } } } @@ -151,7 +148,7 @@ public void removeBridge() throws ARIException { System.out.println( threadName() + "Removing bridge...." ); - ari.bridges().destroy(b.getId(), new AriCallback() { + ari.bridges().destroy(b.getId()).execute(new AriCallback() { @Override public void onSuccess(Void result) { diff --git a/src/test/java/ch/loway/oss/ari4java/sandbox/sample/Weasels.java b/src/test/java/ch/loway/oss/ari4java/sandbox/sample/Weasels.java new file mode 100644 index 00000000..051d2aca --- /dev/null +++ b/src/test/java/ch/loway/oss/ari4java/sandbox/sample/Weasels.java @@ -0,0 +1,114 @@ +package ch.loway.oss.ari4java.sandbox.sample; + +import ch.loway.oss.ari4java.ARI; +import ch.loway.oss.ari4java.AriVersion; +import ch.loway.oss.ari4java.generated.models.*; +import ch.loway.oss.ari4java.tools.AriCallback; +import ch.loway.oss.ari4java.tools.RestException; + +import java.time.LocalDateTime; +import java.util.concurrent.ExecutorService; +import java.util.concurrent.Executors; +import java.util.concurrent.TimeUnit; + +public class Weasels { + + private static final String ARI_URL = "http://192.168.56.44:8088/"; // "http://192.168.99.100:18088/"; + private static final String ARI_USER = "asterisk"; //""ari4java"; + private static final String ARI_PASS = "asterisk"; //""yothere"; + private static final String ARI_APP = "dl-dialer"; //"weasels-app"; + + private ARI ari; + + public static void main(String[] args) { + new Weasels().start(); + } + + private void start() { + log("THE START"); + boolean connected = connect(); + if (connected) { + try { + weasels(); + } catch (Throwable t) { + log("Error: " + t.getMessage()); + t.printStackTrace(); + } finally { + log("ARI cleanup"); + ari.cleanup(); + } + } + log("THE END"); + } + + private void log(String message) { + String time = LocalDateTime.now().toString(); + String thread = Thread.currentThread().getName(); + System.out.println(time + " - [" + thread + "] - " + message); + } + + private boolean connect() { + try { + ari = ARI.build(ARI_URL, ARI_APP, ARI_USER, ARI_PASS, AriVersion.IM_FEELING_LUCKY); + log("Detect Server ARI Version: " + ari.getVersion().version()); + AsteriskInfo info = ari.asterisk().getInfo().execute(); + log("System up since " + info.getStatus().getStartup_time()); + return true; + } catch (Throwable t) { + log("Error: " + t.getMessage()); + t.printStackTrace(); + } + return false; + } + + private void weasels() throws InterruptedException, RestException { + final ExecutorService threadPool = Executors.newFixedThreadPool(10); + ari.events().eventWebsocket(ARI_APP).execute(new AriCallback() { + @Override + public void onSuccess(Message message) { + threadPool.execute(() -> { + try { + if (message instanceof StasisStart) { + handleStart((StasisStart) message); + } else if (message instanceof PlaybackFinished) { + handlePlaybackFinished((PlaybackFinished) message); + } else { + log("Unhandled Event - " + message.getType()); + } + } catch (Throwable e) { + log("Error: " + e.getMessage()); + e.printStackTrace(); + } + }); + } + @Override + public void onFailure(RestException e) { + log("Error: " + e.getMessage()); + e.printStackTrace(); + } + }); + // usually we would not terminate and run indefinitely + // waiting for 5 minutes before shutting down... + threadPool.awaitTermination(5, TimeUnit.MINUTES); + } + + private void handleStart(StasisStart start) throws RestException { + log("Stasis Start Channel: " + start.getChannel().getId()); + ARI.sleep(300); // a slight pause before we start the playback ... + ari.channels().play(start.getChannel().getId(), "sound:weasels-eaten-phonesys").execute(); + } + + private void handlePlaybackFinished(PlaybackFinished playback) throws RestException { + log("PlaybackFinished - " + playback.getPlayback().getTarget_uri()); + if (playback.getPlayback().getTarget_uri().indexOf("channel:") == 0) { + String chanId = playback.getPlayback().getTarget_uri().split(":")[1]; + log("Hangup Channel: " + chanId); + ARI.sleep(300); // a slight pause before we hangup ... + ari.channels().hangup(chanId).execute(); + } else { + log("Error: Cannot handle URI - " + playback.getPlayback().getTarget_uri()); + } + } + +} + From 7b1a60dd45b24894ee3214629dd619992b4fbaf8 Mon Sep 17 00:00:00 2001 From: Graham Brown Date: Mon, 23 Dec 2019 22:15:18 +0200 Subject: [PATCH 077/220] update readme - restructure and new release --- README.md | 164 +++++++++++++----------------------------------------- 1 file changed, 39 insertions(+), 125 deletions(-) diff --git a/README.md b/README.md index 6247bd96..0d9ca774 100644 --- a/README.md +++ b/README.md @@ -1,12 +1,10 @@ -ari4java -======== +# ari4java The Asterisk REST Interface (ARI) bindings for Java. [![Download](https://api.bintray.com/packages/ari4java/maven/ari4java/images/download.png)](https://bintray.com/ari4java/maven/ari4java/_latestVersion) -Description ------------ +## Description ARI is an interface available on Asterisk 11+ that lets you write applications that run externally and control call flow through REST calls while receiving @@ -16,68 +14,53 @@ In order to support different versions of the API, what we do is we maintain con for each version of the API, but we also have general interfaces that are used to work with objects across different versions. -**Getting started?** - -* Start from the "Hello ARI World" tutorial at https://github.com/l3nz/ari4java/blob/master/docs/HELLOWORLD.md -* Read our FAQs at https://github.com/l3nz/ari4java/blob/master/docs/FAQ.md -* Want to run a ready-made Asterisk image? This will make your life easier when developing! get - yours from https://github.com/l3nz/whaleware/tree/master/examples/asterisk-load-test - - -Using the library -================= +## Using the library If you use Gradle (or any tool using Maven dependencies) you can simply declare the lib as: - - repositories { - maven { - url "https://dl.bintray.com/ari4java/maven" - } - mavenCentral() - jcenter() +``` +repositories { + maven { + url "https://dl.bintray.com/ari4java/maven" } - - dependencies { - compile 'ch.loway.oss.ari4java:ari4java:0.7.0' - } - + mavenCentral() + jcenter() +} + +dependencies { + compile 'ch.loway.oss.ari4java:ari4java:0.8.0' +} +``` This will download the package and all required dependencies. *The 1st repo declaration is temporary as we sort out moving from a private repo to an organization* -Building -======== - -The code here is partially hand-written and partially generated out of Swagger definitions. +### Getting started? -* "src/main/java" contains Java code to be released (manually and automatically generated). -* "src/main/generated" Are all automatically generated classes, they should not be hand-edited. -* "src/test/java/" contains test cases for "src/main/java" -* "codegen/" is a gradle sub-project that generates code in "src/main/generated" +- Start from the ["Hello ARI World"](https://github.com/l3nz/ari4java/blob/master/docs/HELLOWORLD.md) tutorial at +- Read our [FAQs](https://github.com/l3nz/ari4java/blob/master/docs/FAQ.md) +- Check out more detailed [USAGE](https://github.com/l3nz/ari4java/blob/master/docs/USAGE.md) +- Want to run a ready-made Asterisk image? This will make your life easier when developing! get + yours from https://github.com/l3nz/whaleware/tree/master/examples/asterisk-load-test +## Building +The code here is partially hand-written and partially generated out of Swagger definitions. -Testing and packaging ---------------------- +### Folders: +- "src/main/java" contains Java code to be released (manually and automatically generated). +- "src/main/generated" Are all automatically generated classes, they should not be hand-edited. +- "src/test/java/" contains test cases for "src/main/java" +- "codegen/" is a gradle sub-project that generates code in "src/main/generated" +### Build and test The easiest way to build is simply using the Gradle Wrapper script supplied. +``` +./gradlew clean build +``` +This will generate, compile, test and package the current version. +You'll find the resulting jar file under the `build/libs` folder. - ./gradlew clean build - -This will compile, test and package the current version. -You'll find the resulting jar file under 'build/libs'. - -Running -------- - -The project requires: - -- jackson-core-2.9.6 -- jackson-databind-2.9.6 -- jackson-annotations-2.9.6 -- netty-all-4.0.25-Final - -Status ------- +## Status +* 19.12.23 - Rel 0.8.0. :exclamation: **!! BREAKING CHANGES !!** API Actions signatures only contain manditory params and returns a Request object which follows the builder/factory pattern * 19.12.22 - Rel 0.7.0. Treat `fields` as `fields` not `variables` in body parameters; fix `ActionRecordings.getStoredFile()` for `byte[]` & add `ARI.mailboxes()` * 19.11.07 - Rel 0.6.1. Codegen bug fixes for object and rebuild with latest ARI api docs * 19.10.13 - Rel 0.6.0. Project restructure and include all past and present versions of ARI @@ -105,80 +88,13 @@ Status * 13.10.18 - Auto-generates all classes and compiles them. -Using ------ - -To use the Netty.io HTTP+WS implementation, include netty-all-4.0.12.Final.jar or newer in your classpath. - -To initialize: - - ARI ari = new ARI(); - NettyHttpClient hc = new NettyHttpClient(); - hc.initialize("http://my-pbx-ip:8088/", "admin", "admin"); - ari.setHttpClient(hc); - ari.setWsClient(hc); - ari.setVersion(AriVersion.ARI_0_0_1); - -or make your life easier by using the convenience method supplied in AriFactory. - -Sample synchronous call: - - ActionApplications ac = ari.getActionImpl(ActionApplications.class); - List alist = ac.list(); - -Sample asynchronous call: - - ActionAsterisk aa = ari.getActionImpl(ActionAsterisk.class); - aa.getGlobalVar("AMPMGRPASS", new AriCallback() { - @Override - public void onSuccess(Variable result) { - // Let's do something with the returned value - } - @Override - public void onFailure(RestException e) { - e.printStackTrace(); - } - }); - -Sample WebSocket connection, waiting for events on hello and goodbye apps: - - ActionEvents ae = ari.getActionImpl(ActionEvents.class); - ae.eventWebsocket("hello,goodbye", new AriCallback() { - @Override - public void onSuccess(Message result) { - // Let's do something with the event - } - @Override - public void onFailure(RestException e) { - e.printStackTrace(); - } - }); - Thread.sleep(5000); // Wait 5 seconds for events - ari.closeAction(ae); // Now close the websocket - -The Message object in the code above will be one of the message subtypes, -you will have to introspect to find out which. - -To be done ----------- - -* Parameters that could be multiple are handled as only one item. I would like to have - both ways, so that you do not have to create a List in the very common case that - you need to pass only one parameter - see https://github.com/l3nz/ari4java/issues/10 -* Misc open bugs here: https://github.com/l3nz/ari4java/issues?q=is%3Aopen - - -Useful links ------------- - +## Useful links * Asterisk REST Interface wiki: https://wiki.asterisk.org/wiki/pages/viewpage.action?pageId=29395573 * Asterisk 16 ARI docs: https://wiki.asterisk.org/wiki/display/AST/Asterisk+16+ARI * Asterisk-app-dev archives: http://lists.digium.com/pipermail/asterisk-app-dev/ -Similar & Interesting projects ------------------------------- - +## Similar & Interesting projects * AstAryPy - a Python library - https://github.com/asterisk/ast-ari-py * AsterNET.ARI - C# / .NET - https://github.com/skrusty/AsterNET.ARI * node-ari-client - JavaScript (node) - https://github.com/asterisk/node-ari-client @@ -186,9 +102,7 @@ Similar & Interesting projects * asterisk-ari-client - Ruby - https://github.com/svoboda-jan/asterisk-ari -Licensing ---------- - +## Licensing The library is released under the GNU LGPL (see LICENSE file). Files under codegen-data come from the Asterisk project and are licensed under the GPLv2 (see LICENSE.asterisk file therein). They are only used to build the classes and are not distribuited in any form with Ari4Java. From 5fde7b69c0289879662e14739c85b7ea46e5cf5f Mon Sep 17 00:00:00 2001 From: Graham Brown Date: Mon, 23 Dec 2019 22:23:15 +0200 Subject: [PATCH 078/220] update consts --- .../ch/loway/oss/ari4java/sandbox/sample/Weasels.java | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/test/java/ch/loway/oss/ari4java/sandbox/sample/Weasels.java b/src/test/java/ch/loway/oss/ari4java/sandbox/sample/Weasels.java index 051d2aca..81b237de 100644 --- a/src/test/java/ch/loway/oss/ari4java/sandbox/sample/Weasels.java +++ b/src/test/java/ch/loway/oss/ari4java/sandbox/sample/Weasels.java @@ -13,10 +13,10 @@ public class Weasels { - private static final String ARI_URL = "http://192.168.56.44:8088/"; // "http://192.168.99.100:18088/"; - private static final String ARI_USER = "asterisk"; //""ari4java"; - private static final String ARI_PASS = "asterisk"; //""yothere"; - private static final String ARI_APP = "dl-dialer"; //"weasels-app"; + private static final String ARI_URL = "http://192.168.99.100:18088/"; + private static final String ARI_USER = "ari4java"; + private static final String ARI_PASS = "yothere"; + private static final String ARI_APP = "weasels-app"; private ARI ari; From 0c43492f2e7a7f13736cc0dd061d2db33e09ff3c Mon Sep 17 00:00:00 2001 From: Graham Brown Date: Mon, 23 Dec 2019 23:04:40 +0200 Subject: [PATCH 079/220] add @JsonIgnore for UnsupportedOperationException methods --- .../oss/ari4java/codegen/genJava/JavaInterface.java | 9 ++++++++- .../java/ch/loway/oss/ari4java/codegen/models/Model.java | 3 ++- 2 files changed, 10 insertions(+), 2 deletions(-) diff --git a/codegen/src/main/java/ch/loway/oss/ari4java/codegen/genJava/JavaInterface.java b/codegen/src/main/java/ch/loway/oss/ari4java/codegen/genJava/JavaInterface.java index 2a2d45ae..1dbbc3df 100644 --- a/codegen/src/main/java/ch/loway/oss/ari4java/codegen/genJava/JavaInterface.java +++ b/codegen/src/main/java/ch/loway/oss/ari4java/codegen/genJava/JavaInterface.java @@ -105,8 +105,11 @@ public void removeSignature(String signature) { } } - public String getCodeToImplementMissingSignatures() { + return getCodeToImplementMissingSignatures(false); + } + + public String getCodeToImplementMissingSignatures(boolean addJsonIgnore) { if (definitions.isEmpty()) { return " /* No missing signatures from interface */\n"; } else { @@ -122,6 +125,10 @@ public String getCodeToImplementMissingSignatures() { s = s.replace(";", replaceTo); + if (addJsonIgnore) { + s = s.replace("public", "@JsonIgnore public"); + } + sb.append(s); } diff --git a/codegen/src/main/java/ch/loway/oss/ari4java/codegen/models/Model.java b/codegen/src/main/java/ch/loway/oss/ari4java/codegen/models/Model.java index 9015cf86..dc14676e 100644 --- a/codegen/src/main/java/ch/loway/oss/ari4java/codegen/models/Model.java +++ b/codegen/src/main/java/ch/loway/oss/ari4java/codegen/models/Model.java @@ -36,6 +36,7 @@ public Model() { imports.add("ch.loway.oss.ari4java.generated.models.Module"); imports.add("ch.loway.oss.ari4java.generated.models.*"); imports.add("com.fasterxml.jackson.databind.annotation.JsonDeserialize"); + imports.add("com.fasterxml.jackson.annotation.JsonIgnore"); } @@ -88,7 +89,7 @@ public String toString() { sb.append(mf.toString()); } - sb.append(ji.getCodeToImplementMissingSignatures()); + sb.append(ji.getCodeToImplementMissingSignatures(true)); sb.append("}\n"); return sb.toString(); From 218e671174e85ba12584c1504a89416065ae5181 Mon Sep 17 00:00:00 2001 From: Oded Arbel Date: Fri, 19 Apr 2019 00:12:23 +0300 Subject: [PATCH 080/220] Don't send 0 for numeric parmeters that have not been specified (or false for boolean). Parameters should be boxed (object type) in internal storage, so if the user did not specify the parameter, we will not assume the value is 0 - as in ARI not specifying an optional param often has more meaning than "zero". For example, in `POST /channels` ("channel originate"), not setting the priority means "1" and not "0". --- .../ch/loway/oss/ari4java/codegen/DefMapper.java | 2 ++ .../ari4java/codegen/genJava/JavaPkgInfo.java | 16 +++++++++++----- .../oss/ari4java/codegen/models/Operation.java | 3 ++- .../ch/loway/oss/ari4java/tools/HttpParam.java | 12 +++++++++--- 4 files changed, 24 insertions(+), 9 deletions(-) diff --git a/codegen/src/main/java/ch/loway/oss/ari4java/codegen/DefMapper.java b/codegen/src/main/java/ch/loway/oss/ari4java/codegen/DefMapper.java index ae9bb9b0..4f964e7c 100644 --- a/codegen/src/main/java/ch/loway/oss/ari4java/codegen/DefMapper.java +++ b/codegen/src/main/java/ch/loway/oss/ari4java/codegen/DefMapper.java @@ -433,6 +433,8 @@ private Apis loadApis(JsonNode apis, File f, String apiVersion) throws IOExcepti for (JsonNode parameter : parameters) { Operation.Param p = new Operation.Param(); p.javaType = remapAbstractType(txt(parameter.get("dataType"))); + p.methodArgumentType = JavaPkgInfo.primitiveSignature.containsKey(p.javaType) ? + JavaPkgInfo.primitiveSignature.get(p.javaType) : p.javaType; p.name = txt(parameter.get("name")); p.required = txt(parameter.get("required")).equalsIgnoreCase("true"); p.type = Operation.ParamType.build(txt(parameter.get("paramType"))); diff --git a/codegen/src/main/java/ch/loway/oss/ari4java/codegen/genJava/JavaPkgInfo.java b/codegen/src/main/java/ch/loway/oss/ari4java/codegen/genJava/JavaPkgInfo.java index d773c1f4..2b64694f 100644 --- a/codegen/src/main/java/ch/loway/oss/ari4java/codegen/genJava/JavaPkgInfo.java +++ b/codegen/src/main/java/ch/loway/oss/ari4java/codegen/genJava/JavaPkgInfo.java @@ -10,21 +10,27 @@ public class JavaPkgInfo { public final static Map TypeMap; + public final static Map primitiveSignature; static { TypeMap = new HashMap(); TypeMap.put("string", "String"); - TypeMap.put("long", "long"); - TypeMap.put("int", "int"); - TypeMap.put("double", "double"); + TypeMap.put("long", "Long"); + TypeMap.put("int", "Integer"); + TypeMap.put("double", "Double"); TypeMap.put("date", "Date"); TypeMap.put("object", "Object"); - TypeMap.put("boolean", "boolean"); + TypeMap.put("boolean", "Boolean"); TypeMap.put("binary", "byte[]"); TypeMap.put("containers", "Map"); + + primitiveSignature = new HashMap(); + primitiveSignature.put("Boolean", "boolean"); + primitiveSignature.put("Integer", "int"); + primitiveSignature.put("Long", "long"); + primitiveSignature.put("Double", "double"); } - String base = "ch.loway.oss.ari4java.generated"; public String className = ""; public String apiVersion = ""; diff --git a/codegen/src/main/java/ch/loway/oss/ari4java/codegen/models/Operation.java b/codegen/src/main/java/ch/loway/oss/ari4java/codegen/models/Operation.java index 9dd3864a..950fbdf8 100644 --- a/codegen/src/main/java/ch/loway/oss/ari4java/codegen/models/Operation.java +++ b/codegen/src/main/java/ch/loway/oss/ari4java/codegen/models/Operation.java @@ -296,6 +296,7 @@ public static class Param { public String name = ""; public ParamType type = ParamType.PATH; public String javaType = ""; + public String methodArgumentType = ""; public boolean required = true; public String getSignature(String returnType) { @@ -308,7 +309,7 @@ public String getSignature(String returnType) { public String getDefinition(String returnType) { StringBuilder sb = new StringBuilder(); sb.append(" public ").append(returnType).append(" ").append(JavaGen.addPrefixAndCapitalize("set", name)) - .append("(").append(javaType).append(" ").append(name).append(")"); + .append("(").append(methodArgumentType).append(" ").append(name).append(")"); return sb.toString(); } diff --git a/src/main/java/ch/loway/oss/ari4java/tools/HttpParam.java b/src/main/java/ch/loway/oss/ari4java/tools/HttpParam.java index a56e930b..bbc300e6 100644 --- a/src/main/java/ch/loway/oss/ari4java/tools/HttpParam.java +++ b/src/main/java/ch/loway/oss/ari4java/tools/HttpParam.java @@ -31,15 +31,21 @@ public static List build(String key, Map< return vars; } - public static HttpParam build(String n, int v) { + public static HttpParam build(String n, Integer v) { + if (null == v) + return build(n, (String)null); return build(n, Integer.toString(v)); } - public static HttpParam build(String n, long v) { + public static HttpParam build(String n, Long v) { + if (null == v) + return build(n, (String)null); return build(n, Long.toString(v)); } - public static HttpParam build(String n, boolean v) { + public static HttpParam build(String n, Boolean v) { + if (null == v) + return build(n, (String)null); return build(n, v ? "true" : "false"); } From d95a9c9989f625baa9f81a0f6eb4f4a64957a26a Mon Sep 17 00:00:00 2001 From: Graham Brown Date: Wed, 15 Jan 2020 19:27:32 +0200 Subject: [PATCH 081/220] check that msg is not null to avoid NPE --- src/main/java/ch/loway/oss/ari4java/tools/RestException.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/java/ch/loway/oss/ari4java/tools/RestException.java b/src/main/java/ch/loway/oss/ari4java/tools/RestException.java index 86b3259d..81921da6 100644 --- a/src/main/java/ch/loway/oss/ari4java/tools/RestException.java +++ b/src/main/java/ch/loway/oss/ari4java/tools/RestException.java @@ -32,7 +32,7 @@ public RestException(String s, int code) { public RestException(String s, String r, int code) { this(s, code); String msg = extractError(r); - if (!msg.equals(r)) { + if (msg != null && !msg.equals(r)) { message = msg; } } From 676e4c81e08b71e802cddc77af37b8a099f977b6 Mon Sep 17 00:00:00 2001 From: Graham Brown Date: Thu, 16 Jan 2020 09:40:22 +0200 Subject: [PATCH 082/220] changes to RestException to avoid no message --- .../java/ch/loway/oss/ari4java/tools/BaseAriAction.java | 8 +++----- .../java/ch/loway/oss/ari4java/tools/RestException.java | 3 ++- 2 files changed, 5 insertions(+), 6 deletions(-) diff --git a/src/main/java/ch/loway/oss/ari4java/tools/BaseAriAction.java b/src/main/java/ch/loway/oss/ari4java/tools/BaseAriAction.java index dcd9f40f..c50a99ef 100644 --- a/src/main/java/ch/loway/oss/ari4java/tools/BaseAriAction.java +++ b/src/main/java/ch/loway/oss/ari4java/tools/BaseAriAction.java @@ -184,7 +184,6 @@ public static T deserializeJson(String json, Class klazz) throws RestExce try { return mapper.readValue(json, klazz); } catch (IOException e) { - //e.printStackTrace(System.err); throw new RestException("Decoding JSON: " + e.getMessage(), e); } } @@ -203,7 +202,7 @@ public static T deserializeJson(String json, TypeReference klazzType) thr try { return mapper.readValue(json, klazzType); } catch (IOException e) { - throw new RestException("Decoding JSON list: " + e.toString()); + throw new RestException("Decoding JSON list: " + e.getMessage(), e); } } @@ -229,7 +228,7 @@ public static List deserializeJsonAsAbstractList(String json List lA = (List) lC; return lA; } catch (IOException e) { - throw new RestException("Decoding JSON list: " + e.toString(), e); + throw new RestException("Decoding JSON list: " + e.getMessage(), e); } } @@ -246,8 +245,7 @@ public static Message deserializeEvent(String json, Class klazz) throws RestE try { return (Message) mapper.readValue(json, klazz); } catch (IOException e) { - e.printStackTrace(System.err); - throw new RestException("Decoding JSON event: " + e.toString(), e); + throw new RestException("Decoding JSON event: " + e.getMessage(), e); } } diff --git a/src/main/java/ch/loway/oss/ari4java/tools/RestException.java b/src/main/java/ch/loway/oss/ari4java/tools/RestException.java index 81921da6..61474951 100644 --- a/src/main/java/ch/loway/oss/ari4java/tools/RestException.java +++ b/src/main/java/ch/loway/oss/ari4java/tools/RestException.java @@ -39,11 +39,12 @@ public RestException(String s, String r, int code) { public RestException(Throwable cause) { super(cause); + message = cause.toString(); } public RestException(String s, Throwable cause) { super(s, cause); - message = extractError(s); + message = s; } /** From 95ed6052cdeab803d8eca6ec08d8621222f30b67 Mon Sep 17 00:00:00 2001 From: Graham Brown Date: Wed, 22 Jan 2020 21:20:40 +0200 Subject: [PATCH 083/220] Addresses Java 8 API (Fixes #142) --- .../oss/ari4java/codegen/models/Operation.java | 2 +- .../oss/ari4java/tools/BaseAriAction.java | 18 ++++++++++++++++++ 2 files changed, 19 insertions(+), 1 deletion(-) diff --git a/codegen/src/main/java/ch/loway/oss/ari4java/codegen/models/Operation.java b/codegen/src/main/java/ch/loway/oss/ari4java/codegen/models/Operation.java index 950fbdf8..fb3b485f 100644 --- a/codegen/src/main/java/ch/loway/oss/ari4java/codegen/models/Operation.java +++ b/codegen/src/main/java/ch/loway/oss/ari4java/codegen/models/Operation.java @@ -98,7 +98,7 @@ public String toString() { String stUri = action.path; for (Param p : params) { if (p.type == ParamType.PATH) { - stUri = stUri.replace("{" + p.name + "}", "\" + URLEncoder.encode(" + p.name + ", ARI.ENCODING) + \""); + stUri = stUri.replace("{" + p.name + "}", "\" + encodeUrlPart(" + p.name + ") + \""); } } sb.append(" private AriRequest build() {\n"); diff --git a/src/main/java/ch/loway/oss/ari4java/tools/BaseAriAction.java b/src/main/java/ch/loway/oss/ari4java/tools/BaseAriAction.java index c50a99ef..405d277d 100644 --- a/src/main/java/ch/loway/oss/ari4java/tools/BaseAriAction.java +++ b/src/main/java/ch/loway/oss/ari4java/tools/BaseAriAction.java @@ -1,5 +1,6 @@ package ch.loway.oss.ari4java.tools; +import ch.loway.oss.ari4java.ARI; import ch.loway.oss.ari4java.generated.models.Message; import ch.loway.oss.ari4java.tools.WsClient.WsClientConnection; @@ -12,6 +13,8 @@ import com.fasterxml.jackson.databind.exc.UnrecognizedPropertyException; import java.io.IOException; +import java.io.UnsupportedEncodingException; +import java.net.URLEncoder; import java.util.ArrayList; import java.util.Collection; import java.util.List; @@ -73,6 +76,21 @@ public void setWsUpgrade(boolean wsUpgrade) { protected WsClientConnection wsConnection; private List liveActionList; + /** + * Exception safe way to encode url parts + * @param urlPart the part to encode + * @return a encoded string + * @see ARI#ENCODING + */ + protected String encodeUrlPart(String urlPart) { + try { + return URLEncoder.encode(urlPart, ARI.ENCODING.name()); + } catch (UnsupportedEncodingException e) { + // this should happen, but if so return the input + return urlPart; + } + } + /** * Initiate synchronous HTTP interaction with server * @param request the request object From 3707893c0b8dc76c0deffbb9e85deb9acc83da7a Mon Sep 17 00:00:00 2001 From: Graham Brown Date: Sat, 25 Jan 2020 20:06:37 +0200 Subject: [PATCH 084/220] better exception message --- .../ch/loway/oss/ari4java/tools/http/NettyHttpClient.java | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/src/main/java/ch/loway/oss/ari4java/tools/http/NettyHttpClient.java b/src/main/java/ch/loway/oss/ari4java/tools/http/NettyHttpClient.java index 276492d3..cef70e7b 100644 --- a/src/main/java/ch/loway/oss/ari4java/tools/http/NettyHttpClient.java +++ b/src/main/java/ch/loway/oss/ari4java/tools/http/NettyHttpClient.java @@ -218,8 +218,10 @@ private String makeBodyFields(List variables) { private RestException makeException(HttpResponseStatus status, String response, List errors) { - if (status == null) { - return new RestException("Shutdown: " + response); + if (status == null && response == null) { + return new RestException("Client Shutdown"); + } else if (status == null) { + return new RestException("Client Shutdown: " + response); } for (HttpResponse hr : errors) { From 22dbafe2b5a858dbeee6080bc46471b63e53a55f Mon Sep 17 00:00:00 2001 From: Graham Brown Date: Sat, 25 Jan 2020 20:08:55 +0200 Subject: [PATCH 085/220] prepare 0.8.1 --- README.md | 3 ++- build.gradle | 7 ++++++- 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 0d9ca774..d235b09d 100644 --- a/README.md +++ b/README.md @@ -27,7 +27,7 @@ repositories { } dependencies { - compile 'ch.loway.oss.ari4java:ari4java:0.8.0' + compile 'ch.loway.oss.ari4java:ari4java:0.8.1' } ``` This will download the package and all required dependencies. @@ -60,6 +60,7 @@ You'll find the resulting jar file under the `build/libs` folder. ## Status +* 20.01.25 - Rel 0.8.1. Java 8 Compatibility, better exception messages * 19.12.23 - Rel 0.8.0. :exclamation: **!! BREAKING CHANGES !!** API Actions signatures only contain manditory params and returns a Request object which follows the builder/factory pattern * 19.12.22 - Rel 0.7.0. Treat `fields` as `fields` not `variables` in body parameters; fix `ActionRecordings.getStoredFile()` for `byte[]` & add `ARI.mailboxes()` * 19.11.07 - Rel 0.6.1. Codegen bug fixes for object and rebuild with latest ARI api docs diff --git a/build.gradle b/build.gradle index cd7ec9fa..939e812a 100644 --- a/build.gradle +++ b/build.gradle @@ -5,7 +5,12 @@ plugins { } group = 'ch.loway.oss.ari4java' -version = '0.8.0' +version = '0.8.1' + +java { + sourceCompatibility = JavaVersion.VERSION_1_8 + targetCompatibility = JavaVersion.VERSION_1_8 +} sourceSets { main { From 71d45abaed74945976c2f7546ed88e9c3f8ebc8e Mon Sep 17 00:00:00 2001 From: Graham Brown Date: Sat, 1 Feb 2020 18:38:15 +0200 Subject: [PATCH 086/220] Add SpotBugs (the new FindBugs) gradle plugin to perform code analysis --- build.gradle | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/build.gradle b/build.gradle index 939e812a..da9110c9 100644 --- a/build.gradle +++ b/build.gradle @@ -2,6 +2,7 @@ plugins { id 'java' id 'maven-publish' id 'com.jfrog.bintray' version '1.8.4' + id 'com.github.spotbugs' version '3.0.0' } group = 'ch.loway.oss.ari4java' @@ -128,3 +129,9 @@ bintray { } } } + +// To generate an HTML report instead of XML +tasks.withType(com.github.spotbugs.SpotBugsTask) { + reports.xml.enabled = false + reports.html.enabled = true +} From a2a12eff4f2fa565bb48314a08c3d1ba2fda2f03 Mon Sep 17 00:00:00 2001 From: Graham Brown Date: Sat, 1 Feb 2020 18:38:57 +0200 Subject: [PATCH 087/220] Fix problems identified by SpotBugs fixes #5 --- .../oss/ari4java/codegen/models/ModelField.java | 16 ++++++++++++++-- .../oss/ari4java/codegen/models/Operation.java | 6 ++++-- src/main/java/ch/loway/oss/ari4java/BUILD.java | 10 +++++++++- .../loway/oss/ari4java/tools/BaseAriAction.java | 4 ++-- .../tools/http/NettyHttpClientHandler.java | 7 ++++++- 5 files changed, 35 insertions(+), 8 deletions(-) diff --git a/codegen/src/main/java/ch/loway/oss/ari4java/codegen/models/ModelField.java b/codegen/src/main/java/ch/loway/oss/ari4java/codegen/models/ModelField.java index 0d2a430b..b985d989 100644 --- a/codegen/src/main/java/ch/loway/oss/ari4java/codegen/models/ModelField.java +++ b/codegen/src/main/java/ch/loway/oss/ari4java/codegen/models/ModelField.java @@ -26,7 +26,13 @@ public String toString() { sb.append(" private ").append(typeInterface).append(" ").append(field).append(";\n"); sb.append(getDeclarationGet()).append(" {\n"); - sb.append(" return ").append(field).append(";\n }\n"); + sb.append(" return "); + if ("Date".equals(typeConcrete)) { + sb.append("new Date(").append(field).append(".getTime())"); + } else { + sb.append(field); + } + sb.append(";\n }\n"); if (typeConcrete.startsWith("List")) { String innerType = typeConcrete.substring(5, typeConcrete.length() - 1); @@ -37,7 +43,13 @@ public String toString() { sb.append(" @JsonDeserialize( as=").append(typeConcrete).append(".class )\n"); } sb.append(getDeclarationSet()).append(" {\n"); - sb.append(" ").append(field).append(" = val;\n }\n\n"); + sb.append(" ").append(field); + if ("Date".equals(typeConcrete)) { + sb.append(" = new Date(val.getTime())"); + } else { + sb.append(" = val"); + } + sb.append(";\n }\n\n"); return sb.toString(); } diff --git a/codegen/src/main/java/ch/loway/oss/ari4java/codegen/models/Operation.java b/codegen/src/main/java/ch/loway/oss/ari4java/codegen/models/Operation.java index fb3b485f..ae1790ce 100644 --- a/codegen/src/main/java/ch/loway/oss/ari4java/codegen/models/Operation.java +++ b/codegen/src/main/java/ch/loway/oss/ari4java/codegen/models/Operation.java @@ -142,8 +142,10 @@ public String toString() { if (responseInterface.equalsIgnoreCase("byte[]")) { sb.append(" return httpActionSyncAsBytes(build());\n"); } else { - sb.append(" String json = httpActionSync(build());\n"); - if (!responseInterface.equalsIgnoreCase("void")) { + if (responseInterface.equalsIgnoreCase("void")) { + sb.append(" httpActionSync(build());\n"); + } else { + sb.append(" String json = httpActionSync(build());\n"); String deserializationType = responseConcreteClass + ".class"; if (responseConcreteClass.startsWith("List<")) { deserializationType = "new TypeReference<" + responseConcreteClass + ">() {}"; diff --git a/src/main/java/ch/loway/oss/ari4java/BUILD.java b/src/main/java/ch/loway/oss/ari4java/BUILD.java index d8580186..5b554dd7 100644 --- a/src/main/java/ch/loway/oss/ari4java/BUILD.java +++ b/src/main/java/ch/loway/oss/ari4java/BUILD.java @@ -2,6 +2,7 @@ package ch.loway.oss.ari4java; import java.io.IOException; +import java.io.InputStream; import java.util.Properties; /** @@ -15,12 +16,19 @@ public class BUILD { static { String number = "x"; + InputStream stream = BUILD.class.getResourceAsStream("build.properties"); try { Properties p = new Properties(); - p.load(BUILD.class.getResourceAsStream("build.properties")); + p.load(stream); number = p.getProperty("BUILD_NUMBER"); } catch (IOException e) { // oh well + } finally { + try { + stream.close(); + } catch (IOException e) { + // oh well + } } BUILD_N = number; } diff --git a/src/main/java/ch/loway/oss/ari4java/tools/BaseAriAction.java b/src/main/java/ch/loway/oss/ari4java/tools/BaseAriAction.java index 405d277d..91abff16 100644 --- a/src/main/java/ch/loway/oss/ari4java/tools/BaseAriAction.java +++ b/src/main/java/ch/loway/oss/ari4java/tools/BaseAriAction.java @@ -32,7 +32,7 @@ */ public class BaseAriAction { - public class AriRequest { + public static class AriRequest { private List lParamQuery = new ArrayList(); private List lParamForm = new ArrayList(); private List lParamBody = new ArrayList(); @@ -308,7 +308,7 @@ public synchronized void setForcedResponse(String forcedResponse) { this.forcedResponse = forcedResponse; } - public String getForcedResponse() { + public synchronized String getForcedResponse() { return this.forcedResponse; } diff --git a/src/main/java/ch/loway/oss/ari4java/tools/http/NettyHttpClientHandler.java b/src/main/java/ch/loway/oss/ari4java/tools/http/NettyHttpClientHandler.java index 38aeafe4..a749e19c 100644 --- a/src/main/java/ch/loway/oss/ari4java/tools/http/NettyHttpClientHandler.java +++ b/src/main/java/ch/loway/oss/ari4java/tools/http/NettyHttpClientHandler.java @@ -7,6 +7,8 @@ import io.netty.handler.codec.http.FullHttpResponse; import io.netty.handler.codec.http.HttpResponseStatus; +import java.util.Arrays; + /** * HttpClientHandler handles the asynchronous response from the remote * HTTP server. @@ -48,7 +50,10 @@ public String getResponseText() { } public byte[] getResponseBytes() { - return responseBytes; + if (responseBytes == null || responseBytes.length == 0) { + return null; + } + return Arrays.copyOf(responseBytes, responseBytes.length); } public HttpResponseStatus getResponseStatus() { From 3a9995492805a977731fb4987ecb2d4f8f15f78f Mon Sep 17 00:00:00 2001 From: Graham Brown Date: Sat, 1 Feb 2020 22:04:45 +0200 Subject: [PATCH 088/220] refactor encoding into util class --- src/main/java/ch/loway/oss/ari4java/ARI.java | 15 ++-------- .../loway/oss/ari4java/tools/ARIEncoder.java | 29 +++++++++++++++++++ .../oss/ari4java/tools/BaseAriAction.java | 12 ++------ .../ari4java/tools/http/NettyHttpClient.java | 13 ++++----- .../tools/http/NettyHttpClientHandler.java | 4 +-- .../tools/http/NettyWSClientHandler.java | 6 ++-- .../oss/ari4java/sandbox/TestNettyHttp.java | 4 +-- .../oss/ari4java/sandbox/TestNettyWs.java | 4 +-- 8 files changed, 49 insertions(+), 38 deletions(-) create mode 100644 src/main/java/ch/loway/oss/ari4java/tools/ARIEncoder.java diff --git a/src/main/java/ch/loway/oss/ari4java/ARI.java b/src/main/java/ch/loway/oss/ari4java/ARI.java index 34bcc859..3ef3af1a 100644 --- a/src/main/java/ch/loway/oss/ari4java/ARI.java +++ b/src/main/java/ch/loway/oss/ari4java/ARI.java @@ -1,19 +1,13 @@ package ch.loway.oss.ari4java; import ch.loway.oss.ari4java.generated.actions.requests.EventsEventWebsocketGetRequest; -import ch.loway.oss.ari4java.tools.ARIException; +import ch.loway.oss.ari4java.tools.*; import ch.loway.oss.ari4java.generated.actions.*; import ch.loway.oss.ari4java.generated.models.*; -import ch.loway.oss.ari4java.tools.AriCallback; import java.io.IOException; import java.net.URL; -import ch.loway.oss.ari4java.tools.BaseAriAction; -import ch.loway.oss.ari4java.tools.MessageQueue; -import ch.loway.oss.ari4java.tools.HttpClient; -import ch.loway.oss.ari4java.tools.RestException; -import ch.loway.oss.ari4java.tools.WsClient; import ch.loway.oss.ari4java.tools.http.NettyHttpClient; import ch.loway.oss.ari4java.tools.tags.EventSource; @@ -23,8 +17,6 @@ import java.net.MalformedURLException; import java.net.URISyntaxException; import java.net.URLConnection; -import java.nio.charset.Charset; -import java.nio.charset.StandardCharsets; import java.util.concurrent.CopyOnWriteArrayList; import java.util.regex.Matcher; import java.util.regex.Pattern; @@ -37,7 +29,6 @@ */ public class ARI { - public final static Charset ENCODING = StandardCharsets.UTF_8; private final static String ALLOWED_IN_UID = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ"; private String appName = ""; @@ -268,7 +259,7 @@ private static String doHttpGet(String urlWithParms, String user, String pwd) th StringBuilder response = new StringBuilder(); String userpass = user + ":" + pwd; - String basicAuth = "Basic " + javax.xml.bind.DatatypeConverter.printBase64Binary(userpass.getBytes(ARI.ENCODING)); + String basicAuth = "Basic " + javax.xml.bind.DatatypeConverter.printBase64Binary(userpass.getBytes(ARIEncoder.ENCODING)); uc.setRequestProperty("Authorization", basicAuth); InputStream is = null; @@ -279,7 +270,7 @@ private static String doHttpGet(String urlWithParms, String user, String pwd) th } - BufferedReader buffReader = new BufferedReader(new InputStreamReader(is, ARI.ENCODING)); + BufferedReader buffReader = new BufferedReader(new InputStreamReader(is, ARIEncoder.ENCODING)); String line = null; try { diff --git a/src/main/java/ch/loway/oss/ari4java/tools/ARIEncoder.java b/src/main/java/ch/loway/oss/ari4java/tools/ARIEncoder.java new file mode 100644 index 00000000..4af771ec --- /dev/null +++ b/src/main/java/ch/loway/oss/ari4java/tools/ARIEncoder.java @@ -0,0 +1,29 @@ +package ch.loway.oss.ari4java.tools; + +import ch.loway.oss.ari4java.ARI; + +import java.io.UnsupportedEncodingException; +import java.net.URLEncoder; +import java.nio.charset.Charset; +import java.nio.charset.StandardCharsets; + +public class ARIEncoder { + + public final static Charset ENCODING = StandardCharsets.UTF_8; + + /** + * Exception safe way to encode url parts + * @param url the part to encode + * @return a encoded string + */ + public static String encodeUrl(String url) { + try { + return URLEncoder.encode(url, ARIEncoder.ENCODING.name()); + } catch (UnsupportedEncodingException e) { + // this should happen, but if so return the input + return url; + } + } + + +} diff --git a/src/main/java/ch/loway/oss/ari4java/tools/BaseAriAction.java b/src/main/java/ch/loway/oss/ari4java/tools/BaseAriAction.java index 91abff16..9492e632 100644 --- a/src/main/java/ch/loway/oss/ari4java/tools/BaseAriAction.java +++ b/src/main/java/ch/loway/oss/ari4java/tools/BaseAriAction.java @@ -1,6 +1,5 @@ package ch.loway.oss.ari4java.tools; -import ch.loway.oss.ari4java.ARI; import ch.loway.oss.ari4java.generated.models.Message; import ch.loway.oss.ari4java.tools.WsClient.WsClientConnection; @@ -13,8 +12,6 @@ import com.fasterxml.jackson.databind.exc.UnrecognizedPropertyException; import java.io.IOException; -import java.io.UnsupportedEncodingException; -import java.net.URLEncoder; import java.util.ArrayList; import java.util.Collection; import java.util.List; @@ -80,15 +77,10 @@ public void setWsUpgrade(boolean wsUpgrade) { * Exception safe way to encode url parts * @param urlPart the part to encode * @return a encoded string - * @see ARI#ENCODING + * @see ARIEncoder#ENCODING */ protected String encodeUrlPart(String urlPart) { - try { - return URLEncoder.encode(urlPart, ARI.ENCODING.name()); - } catch (UnsupportedEncodingException e) { - // this should happen, but if so return the input - return urlPart; - } + return ARIEncoder.encodeUrl(urlPart); } /** diff --git a/src/main/java/ch/loway/oss/ari4java/tools/http/NettyHttpClient.java b/src/main/java/ch/loway/oss/ari4java/tools/http/NettyHttpClient.java index cef70e7b..d6d63ad3 100644 --- a/src/main/java/ch/loway/oss/ari4java/tools/http/NettyHttpClient.java +++ b/src/main/java/ch/loway/oss/ari4java/tools/http/NettyHttpClient.java @@ -1,6 +1,5 @@ package ch.loway.oss.ari4java.tools.http; -import ch.loway.oss.ari4java.ARI; import ch.loway.oss.ari4java.tools.*; import ch.loway.oss.ari4java.tools.HttpResponse; import io.netty.bootstrap.Bootstrap; @@ -17,6 +16,7 @@ import io.netty.channel.socket.nio.NioSocketChannel; import io.netty.handler.codec.http.*; import io.netty.handler.codec.http.websocketx.*; +import io.netty.handler.timeout.ReadTimeoutHandler; import io.netty.util.concurrent.Future; import io.netty.util.concurrent.GenericFutureListener; import io.netty.util.concurrent.ScheduledFuture; @@ -24,7 +24,6 @@ import java.io.UnsupportedEncodingException; import java.net.URI; import java.net.URISyntaxException; -import java.net.URLEncoder; import java.util.Iterator; import java.util.List; import java.util.Objects; @@ -126,16 +125,16 @@ private String buildURL(String path, List parametersQuery, boolean wi uriBuilder.append("ari"); uriBuilder.append(path); uriBuilder.append("?api_key="); - uriBuilder.append(URLEncoder.encode(username, ARI.ENCODING)); + uriBuilder.append(ARIEncoder.encodeUrl(username)); uriBuilder.append(":"); - uriBuilder.append(URLEncoder.encode(password, ARI.ENCODING)); + uriBuilder.append(ARIEncoder.encodeUrl(password)); if (parametersQuery != null) { for (HttpParam hp : parametersQuery) { if (hp.value != null && !hp.value.isEmpty()) { uriBuilder.append("&"); uriBuilder.append(hp.name); uriBuilder.append("="); - uriBuilder.append(URLEncoder.encode(hp.value, ARI.ENCODING)); + uriBuilder.append(ARIEncoder.encodeUrl(hp.value)); } } } @@ -167,7 +166,7 @@ private HttpRequest buildRequest(String path, String method, List par //System.out.println(request.getUri()); if (parametersBody != null && !parametersBody.isEmpty()) { String vars = makeJson(parametersBody); - ByteBuf bbuf = Unpooled.copiedBuffer(vars, ARI.ENCODING); + ByteBuf bbuf = Unpooled.copiedBuffer(vars, ARIEncoder.ENCODING); request.headers().add(HttpHeaders.Names.CONTENT_TYPE, "application/json"); request.headers().set(HttpHeaders.Names.CONTENT_LENGTH, bbuf.readableBytes()); @@ -385,7 +384,7 @@ private void startPing() { public void run() { if (System.currentTimeMillis() - wsCallback.getLastResponseTime() > 15000) { if (!wsChannelFuture.isCancelled() && wsChannelFuture.channel() != null) { - WebSocketFrame frame = new PingWebSocketFrame(Unpooled.wrappedBuffer("ari4j".getBytes(ARI.ENCODING))); + WebSocketFrame frame = new PingWebSocketFrame(Unpooled.wrappedBuffer("ari4j".getBytes(ARIEncoder.ENCODING))); wsChannelFuture.channel().writeAndFlush(frame); } } diff --git a/src/main/java/ch/loway/oss/ari4java/tools/http/NettyHttpClientHandler.java b/src/main/java/ch/loway/oss/ari4java/tools/http/NettyHttpClientHandler.java index a749e19c..cad4799c 100644 --- a/src/main/java/ch/loway/oss/ari4java/tools/http/NettyHttpClientHandler.java +++ b/src/main/java/ch/loway/oss/ari4java/tools/http/NettyHttpClientHandler.java @@ -1,6 +1,6 @@ package ch.loway.oss.ari4java.tools.http; -import ch.loway.oss.ari4java.ARI; +import ch.loway.oss.ari4java.tools.ARIEncoder; import io.netty.channel.ChannelHandler; import io.netty.channel.ChannelHandlerContext; import io.netty.channel.SimpleChannelInboundHandler; @@ -46,7 +46,7 @@ public String getResponseText() { if (responseBytes == null || responseBytes.length == 0) { return null; } - return new String(responseBytes, ARI.ENCODING); + return new String(responseBytes, ARIEncoder.ENCODING); } public byte[] getResponseBytes() { diff --git a/src/main/java/ch/loway/oss/ari4java/tools/http/NettyWSClientHandler.java b/src/main/java/ch/loway/oss/ari4java/tools/http/NettyWSClientHandler.java index 7e7e05bd..49a9f6ab 100644 --- a/src/main/java/ch/loway/oss/ari4java/tools/http/NettyWSClientHandler.java +++ b/src/main/java/ch/loway/oss/ari4java/tools/http/NettyWSClientHandler.java @@ -1,6 +1,6 @@ package ch.loway.oss.ari4java.tools.http; -import ch.loway.oss.ari4java.ARI; +import ch.loway.oss.ari4java.tools.ARIEncoder; import ch.loway.oss.ari4java.tools.HttpResponseHandler; import ch.loway.oss.ari4java.tools.WsClientAutoReconnect; import io.netty.channel.Channel; @@ -75,7 +75,7 @@ protected void channelRead0(ChannelHandlerContext ctx, Object msg) throws Except if (msg instanceof FullHttpResponse) { FullHttpResponse response = (FullHttpResponse) msg; - String error = "Unexpected FullHttpResponse (getStatus=" + response.getStatus() + ", content=" + response.content().toString(ARI.ENCODING) + ')'; + String error = "Unexpected FullHttpResponse (getStatus=" + response.getStatus() + ", content=" + response.content().toString(ARIEncoder.ENCODING) + ')'; System.err.println(error); throw new Exception(error); } @@ -86,7 +86,7 @@ protected void channelRead0(ChannelHandlerContext ctx, Object msg) throws Except WebSocketFrame frame = (WebSocketFrame) msg; if (frame instanceof TextWebSocketFrame) { TextWebSocketFrame textFrame = (TextWebSocketFrame) frame; - responseBytes = textFrame.text().getBytes(ARI.ENCODING); + responseBytes = textFrame.text().getBytes(ARIEncoder.ENCODING); wsCallback.onSuccess(textFrame.text()); } else if (frame instanceof CloseWebSocketFrame) { ch.close(); diff --git a/src/test/java/ch/loway/oss/ari4java/sandbox/TestNettyHttp.java b/src/test/java/ch/loway/oss/ari4java/sandbox/TestNettyHttp.java index 6b9dc217..85ec2079 100644 --- a/src/test/java/ch/loway/oss/ari4java/sandbox/TestNettyHttp.java +++ b/src/test/java/ch/loway/oss/ari4java/sandbox/TestNettyHttp.java @@ -1,6 +1,6 @@ package ch.loway.oss.ari4java.sandbox; -import ch.loway.oss.ari4java.ARI; +import ch.loway.oss.ari4java.tools.ARIEncoder; import io.netty.bootstrap.Bootstrap; import io.netty.channel.Channel; import io.netty.channel.ChannelHandlerContext; @@ -57,7 +57,7 @@ protected void channelRead0(ChannelHandlerContext ctx, Object msg) System.out.println("msg=" + response); BaseAriAction ba = new BaseAriAction(); try { - AsteriskInfo m = ba.deserializeJson(response.content().toString(ARI.ENCODING), AsteriskInfo_impl_ari_0_0_1.class); + AsteriskInfo m = ba.deserializeJson(response.content().toString(ARIEncoder.ENCODING), AsteriskInfo_impl_ari_0_0_1.class); System.out.println(m); } catch (RestException e) { e.printStackTrace(); diff --git a/src/test/java/ch/loway/oss/ari4java/sandbox/TestNettyWs.java b/src/test/java/ch/loway/oss/ari4java/sandbox/TestNettyWs.java index 0fe558a8..d460f618 100644 --- a/src/test/java/ch/loway/oss/ari4java/sandbox/TestNettyWs.java +++ b/src/test/java/ch/loway/oss/ari4java/sandbox/TestNettyWs.java @@ -1,6 +1,6 @@ package ch.loway.oss.ari4java.sandbox; -import ch.loway.oss.ari4java.ARI; +import ch.loway.oss.ari4java.tools.ARIEncoder; import io.netty.bootstrap.Bootstrap; import io.netty.buffer.Unpooled; import io.netty.channel.Channel; @@ -80,7 +80,7 @@ protected void channelRead0(ChannelHandlerContext ctx, Object msg) if (msg instanceof FullHttpResponse) { FullHttpResponse response = (FullHttpResponse) msg; throw new Exception("Unexpected FullHttpResponse (getStatus=" + response.getStatus() + ", content=" - + response.content().toString(ARI.ENCODING) + ')'); + + response.content().toString(ARIEncoder.ENCODING) + ')'); } WebSocketFrame frame = (WebSocketFrame) msg; From 3192a20fbaa65a05d8c3b68f2338a50c23647a67 Mon Sep 17 00:00:00 2001 From: Graham Brown Date: Sun, 2 Feb 2020 22:00:14 +0200 Subject: [PATCH 089/220] implement timeouts --- src/main/java/ch/loway/oss/ari4java/ARI.java | 79 +++---------------- .../ari4java/tools/WsClientAutoReconnect.java | 3 +- .../ari4java/tools/http/NettyHttpClient.java | 70 +++++++++++++--- .../tools/http/NettyHttpClientHandler.java | 12 ++- .../tools/http/NettyWSClientHandler.java | 8 ++ 5 files changed, 91 insertions(+), 81 deletions(-) diff --git a/src/main/java/ch/loway/oss/ari4java/ARI.java b/src/main/java/ch/loway/oss/ari4java/ARI.java index 3ef3af1a..52544516 100644 --- a/src/main/java/ch/loway/oss/ari4java/ARI.java +++ b/src/main/java/ch/loway/oss/ari4java/ARI.java @@ -223,78 +223,19 @@ public String getAppName() { * @throws ARIException if the version is not supported */ protected static AriVersion detectAriVersion(String url, String user, String pass) throws ARIException { - - String response = doHttpGet(url + "ari/api-docs/resources.json", user, pass); - String version = findVersionString(response); - return AriVersion.fromVersionString(version); - - } - - /** - * Runs an HTTP GET and returns the text downloaded. - *

- * \TODO does it really belong here? - * - * @param urlWithParms urlWithParms - * @param user user - * @param pwd pwd - * @return The body of the HTTP request. - * @throws ARIException when error - */ - private static String doHttpGet(String urlWithParms, String user, String pwd) throws ARIException { - URL url = null; try { - url = new URL(urlWithParms); - } catch (MalformedURLException e) { - throw new ARIException("MalformedUrlException: " + e.getMessage()); - } - - URLConnection uc = null; - try { - uc = url.openConnection(); - } catch (IOException e) { - throw new ARIException("IOException: " + e.getMessage()); - } - - StringBuilder response = new StringBuilder(); - - String userpass = user + ":" + pwd; - String basicAuth = "Basic " + javax.xml.bind.DatatypeConverter.printBase64Binary(userpass.getBytes(ARIEncoder.ENCODING)); - - uc.setRequestProperty("Authorization", basicAuth); - InputStream is = null; - try { - is = uc.getInputStream(); - } catch (IOException e) { - throw new ARIException("Cannot connect: " + e.getMessage()); - } - - - BufferedReader buffReader = new BufferedReader(new InputStreamReader(is, ARIEncoder.ENCODING)); - - String line = null; - try { - line = buffReader.readLine(); - } catch (IOException e) { - throw new ARIException("IOException: " + e.getMessage()); - } - while (line != null) { - response.append(line); - response.append('\n'); - try { - line = buffReader.readLine(); - } catch (IOException e) { - throw new ARIException("IOException: " + e.getMessage()); + NettyHttpClient hc = new NettyHttpClient(); + hc.initialize(url, user, pass); + String response = hc.httpActionSync("/api-docs/resources.json", "GET", null, null, null, null); + hc.destroy(); + String version = findVersionString(response); + return AriVersion.fromVersionString(version); + } catch (Exception e) { + if (e instanceof ARIException) { + throw (ARIException) e; } + throw new ARIException(e.getMessage(), e); } - try { - buffReader.close(); - } catch (IOException e) { - throw new ARIException("IOException: " + e.getMessage()); - } - - //System.out.println("Response: " + response.toString()); - return response.toString(); } /** diff --git a/src/main/java/ch/loway/oss/ari4java/tools/WsClientAutoReconnect.java b/src/main/java/ch/loway/oss/ari4java/tools/WsClientAutoReconnect.java index a9bc1858..1489bad7 100644 --- a/src/main/java/ch/loway/oss/ari4java/tools/WsClientAutoReconnect.java +++ b/src/main/java/ch/loway/oss/ari4java/tools/WsClientAutoReconnect.java @@ -8,4 +8,5 @@ */ public interface WsClientAutoReconnect { void reconnectWs(Throwable cause); -} \ No newline at end of file + void pong(); +} diff --git a/src/main/java/ch/loway/oss/ari4java/tools/http/NettyHttpClient.java b/src/main/java/ch/loway/oss/ari4java/tools/http/NettyHttpClient.java index d6d63ad3..9e52d01d 100644 --- a/src/main/java/ch/loway/oss/ari4java/tools/http/NettyHttpClient.java +++ b/src/main/java/ch/loway/oss/ari4java/tools/http/NettyHttpClient.java @@ -41,6 +41,8 @@ */ public class NettyHttpClient implements HttpClient, WsClient, WsClientAutoReconnect { + public static final int CONNECTION_TIMEOUT_SEC = 10; + public static final int READ_TIMEOUT_SEC = 30; public static final int MAX_HTTP_REQUEST_KB = 16 * 1024; private Bootstrap bootStrap; @@ -60,6 +62,10 @@ public class NettyHttpClient implements HttpClient, WsClient, WsClientAutoReconn private NettyWSClientHandler wsHandler; private ChannelFutureListener wsFuture; + private int pongFailureCount = 0; + private long lastPong = 0; + private static boolean autoReconnect = true; + public NettyHttpClient() { group = new NioEventLoopGroup(); shutDownGroup = new NioEventLoopGroup(); @@ -82,6 +88,8 @@ public void initialize(String baseUrl, String username, String password) throws @Override public void initChannel(SocketChannel ch) throws Exception { ChannelPipeline pipeline = ch.pipeline(); + ch.config().setConnectTimeoutMillis(CONNECTION_TIMEOUT_SEC * 1000); + pipeline.addLast("read-timeout", new ReadTimeoutHandler(READ_TIMEOUT_SEC)); pipeline.addLast("http-codec", new HttpClientCodec()); pipeline.addLast("aggregator", new HttpObjectAggregator(MAX_HTTP_REQUEST_KB * 1024)); pipeline.addLast("http-handler", new NettyHttpClientHandler()); @@ -218,7 +226,7 @@ private String makeBodyFields(List variables) { private RestException makeException(HttpResponseStatus status, String response, List errors) { if (status == null && response == null) { - return new RestException("Client Shutdown"); + return new RestException("Client Shutdown"); } else if (status == null) { return new RestException("Client Shutdown: " + response); } @@ -257,14 +265,17 @@ private NettyHttpClientHandler httpActionSyncHandler(String uri, String method, NettyHttpClientHandler handler = (NettyHttpClientHandler) ch.pipeline().get("http-handler"); ch.writeAndFlush(request); ch.closeFuture().sync(); - if (httpResponseOkay(handler.getResponseStatus())) { + if (handler.getException() != null) { + throw new RestException(handler.getException()); + } else if (httpResponseOkay(handler.getResponseStatus())) { return handler; } else { throw makeException(handler.getResponseStatus(), handler.getResponseText(), errors); } - } catch (UnsupportedEncodingException e) { - throw new RestException(e); - } catch (InterruptedException e) { + } catch (Exception e) { + if (e instanceof RestException) { + throw (RestException) e; + } throw new RestException(e); } } @@ -340,6 +351,7 @@ public WsClientConnection connect(final HttpResponseHandler callback, final Stri @Override public void initChannel(SocketChannel ch) throws Exception { ChannelPipeline pipeline = ch.pipeline(); + ch.config().setConnectTimeoutMillis(CONNECTION_TIMEOUT_SEC * 1000); pipeline.addLast("http-codec", new HttpClientCodec()); pipeline.addLast("aggregator", new HttpObjectAggregator(MAX_HTTP_REQUEST_KB * 1024)); pipeline.addLast("ws-handler", wsHandler); @@ -379,17 +391,42 @@ public void operationComplete(ChannelFuture future) throws Exception { private void startPing() { if (wsPingTimer == null) { + pongFailureCount = 0; wsPingTimer = group.scheduleAtFixedRate(new Runnable() { @Override public void run() { - if (System.currentTimeMillis() - wsCallback.getLastResponseTime() > 15000) { + if ((System.currentTimeMillis() - wsCallback.getLastResponseTime()) > 15000) { if (!wsChannelFuture.isCancelled() && wsChannelFuture.channel() != null) { WebSocketFrame frame = new PingWebSocketFrame(Unpooled.wrappedBuffer("ari4j".getBytes(ARIEncoder.ENCODING))); +// System.out.println("Send Ping at " + System.currentTimeMillis()); wsChannelFuture.channel().writeAndFlush(frame); + boolean noPong = true; + for (int i = 0; i < 10; i++) { + try { + Thread.sleep(1000); + } catch (InterruptedException e) { + // probably from the reconnect, so stop running... + return; + } + if ((System.currentTimeMillis() - lastPong) < 10000) { +// System.out.println("Pong at " + lastPong); + pongFailureCount = 0; + noPong = false; + break; + } else { +// System.out.println("No Pong at " + System.currentTimeMillis()); + } + } + if (noPong) { + pongFailureCount++; + if (pongFailureCount > 1) { + reconnectWs(new RestException("No Ping response from server")); + } + } } } } - }, 5, 5, TimeUnit.MINUTES); + }, 1, 5, TimeUnit.MINUTES); } } @@ -435,16 +472,15 @@ private boolean httpResponseOkay(HttpResponseStatus status) { } - @Override public void reconnectWs(Throwable cause) { // cancel the ping timer if (wsPingTimer != null) { - wsPingTimer.cancel(false); + wsPingTimer.cancel(true); wsPingTimer = null; } - if (reconnectCount >= 10) { + if (!autoReconnect || reconnectCount >= 10) { wsCallback.onFailure(cause); return; } @@ -471,4 +507,18 @@ public void run() { }, timeout, TimeUnit.SECONDS); } } + + @Override + public void pong() { + lastPong = System.currentTimeMillis(); + } + + /** + * The ability to turn on/off the websocket auto reconnect, defaulted to on + * @param val auto reconnect + */ + public static void setAutoReconnect(boolean val) { + NettyHttpClient.autoReconnect = val; + } + } diff --git a/src/main/java/ch/loway/oss/ari4java/tools/http/NettyHttpClientHandler.java b/src/main/java/ch/loway/oss/ari4java/tools/http/NettyHttpClientHandler.java index cad4799c..16b0c93c 100644 --- a/src/main/java/ch/loway/oss/ari4java/tools/http/NettyHttpClientHandler.java +++ b/src/main/java/ch/loway/oss/ari4java/tools/http/NettyHttpClientHandler.java @@ -6,6 +6,7 @@ import io.netty.channel.SimpleChannelInboundHandler; import io.netty.handler.codec.http.FullHttpResponse; import io.netty.handler.codec.http.HttpResponseStatus; +import io.netty.handler.timeout.ReadTimeoutException; import java.util.Arrays; @@ -21,6 +22,7 @@ public class NettyHttpClientHandler extends SimpleChannelInboundHandler { protected byte[] responseBytes; protected HttpResponseStatus responseStatus; + private Throwable exception; public void reset() { responseBytes = null; @@ -60,9 +62,17 @@ public HttpResponseStatus getResponseStatus() { return responseStatus; } + public Throwable getException() { + return exception; + } + @Override public void exceptionCaught(ChannelHandlerContext ctx, Throwable cause) throws Exception { - cause.printStackTrace(); + this.exception = cause; + if (!(cause instanceof ReadTimeoutException)) { + cause.printStackTrace(); + } + ctx.fireExceptionCaught(cause); ctx.close(); } diff --git a/src/main/java/ch/loway/oss/ari4java/tools/http/NettyWSClientHandler.java b/src/main/java/ch/loway/oss/ari4java/tools/http/NettyWSClientHandler.java index 49a9f6ab..755a422a 100644 --- a/src/main/java/ch/loway/oss/ari4java/tools/http/NettyWSClientHandler.java +++ b/src/main/java/ch/loway/oss/ari4java/tools/http/NettyWSClientHandler.java @@ -97,6 +97,13 @@ protected void channelRead0(ChannelHandlerContext ctx, Object msg) throws Except wsCallback.onDisconnect(); } } + } else if (frame instanceof PongWebSocketFrame) { + wsClient.pong(); + // TODO log +// System.out.println("PongWebSocketFrame at " + System.currentTimeMillis()); + } else { + // TODO log unhandled frame... +// System.out.println("Unhandled WebSocketFrame: " + frame.getClass().toString()); } } @@ -109,6 +116,7 @@ public void exceptionCaught(ChannelHandlerContext ctx, Throwable cause) throws E if (!handshakeFuture.isDone()) { handshakeFuture.setFailure(cause); } + ctx.fireExceptionCaught(cause); ctx.close(); wsCallback.onFailure(cause); } From 81e6803428ff33247244d95b403aa3cfc4ebfe34 Mon Sep 17 00:00:00 2001 From: Graham Brown Date: Mon, 17 Feb 2020 21:49:51 +0200 Subject: [PATCH 090/220] unit test cleanup --- .../java/ch/loway/oss/ari4java/ARITest.java | 79 ++------ .../ari4java/generated/ActionSoundsTest.java | 31 +-- .../ari4java/generated/ActonBridgesTest.java | 67 ++----- .../DeserializeToListOfInterfaceTest.java | 99 ++++------ .../ari4java/generated/EventBuilderTest.java | 105 ++++------ .../loway/oss/ari4java/sandbox/TestARI.java | 99 ---------- .../oss/ari4java/sandbox/TestNettyHttp.java | 118 ----------- .../oss/ari4java/sandbox/TestNettyWs.java | 186 ------------------ .../ari4java/sandbox/deserializeJsonTest.java | 184 ----------------- 9 files changed, 117 insertions(+), 851 deletions(-) delete mode 100644 src/test/java/ch/loway/oss/ari4java/sandbox/TestARI.java delete mode 100644 src/test/java/ch/loway/oss/ari4java/sandbox/TestNettyHttp.java delete mode 100644 src/test/java/ch/loway/oss/ari4java/sandbox/TestNettyWs.java delete mode 100644 src/test/java/ch/loway/oss/ari4java/sandbox/deserializeJsonTest.java diff --git a/src/test/java/ch/loway/oss/ari4java/ARITest.java b/src/test/java/ch/loway/oss/ari4java/ARITest.java index 44941e0d..55951d6b 100644 --- a/src/test/java/ch/loway/oss/ari4java/ARITest.java +++ b/src/test/java/ch/loway/oss/ari4java/ARITest.java @@ -1,19 +1,10 @@ -/* - * To change this license header, choose License Headers in Project Properties. - * To change this template file, choose Tools | Templates - * and open the template in the editor. - */ package ch.loway.oss.ari4java; import ch.loway.oss.ari4java.generated.actions.ActionAsterisk; import ch.loway.oss.ari4java.generated.actions.ActionBridges; import ch.loway.oss.ari4java.generated.ari_0_0_1.actions.ActionAsterisk_impl_ari_0_0_1; import ch.loway.oss.ari4java.generated.ari_0_0_1.actions.ActionBridges_impl_ari_0_0_1; -import ch.loway.oss.ari4java.tools.ARIException; -import org.junit.After; -import org.junit.AfterClass; -import org.junit.Before; -import org.junit.BeforeClass; +import ch.loway.oss.ari4java.generated.ari_1_0_0.actions.ActionAsterisk_impl_ari_1_0_0; import org.junit.Test; import static org.junit.Assert.*; @@ -23,67 +14,39 @@ */ public class ARITest { - public ARITest() { - } - - @BeforeClass - public static void setUpClass() { - } - - @AfterClass - public static void tearDownClass() { - } - - @Before - public void setUp() { - } - - @After - public void tearDown() { - } - - - /** - * An example abstract to concrete builder. - */ - - public static class SampleClassFactory implements ARI.ClassFactory { - - @Override - public Class getImplementationFor(Class interfaceClass) { - - if (interfaceClass.equals(ActionBridges.class)) { - return ActionBridges_impl_ari_0_0_1.class; - } else { - return null; - } - } - } - @Test public void testImplementationFactory() { - ARI.ClassFactory factory = new SampleClassFactory(); - - assertEquals("ActionBridges", ActionBridges_impl_ari_0_0_1.class, factory.getImplementationFor(ActionBridges.class)); - assertEquals("Not found", null, factory.getImplementationFor(String.class)); + ARI.ClassFactory factory = new ARI.ClassFactory() { + @Override + public Class getImplementationFor(Class interfaceClass) { + if (interfaceClass.equals(ActionBridges.class)) { + return ActionBridges_impl_ari_0_0_1.class; + } else { + return null; + } + } + }; + assertEquals(ActionBridges_impl_ari_0_0_1.class, factory.getImplementationFor(ActionBridges.class)); + assertNull(factory.getImplementationFor(String.class)); } @Test - public void testBuildAction() throws ARIException { + public void testBuildAction() { ARI ari = new ARI(); ari.setVersion(AriVersion.ARI_0_0_1); ActionAsterisk asterisk = ari.asterisk(); - assertTrue("Correct type", asterisk instanceof ActionAsterisk_impl_ari_0_0_1); + assertEquals(ActionAsterisk_impl_ari_0_0_1.class.toString(), asterisk.getClass().toString()); + + ari.setVersion(AriVersion.ARI_1_0_0); + asterisk = ari.asterisk(); + assertEquals(ActionAsterisk_impl_ari_1_0_0.class.toString(), asterisk.getClass().toString()); } @Test - public void testCreateUid() throws ARIException { - ARI ari = new ARI(); - String v = ari.getUID(); - System.out.println("UID: " + v); + public void testCreateUid() { + String v = ARI.getUID(); assertTrue("UID created", v.length() > 0); } - } diff --git a/src/test/java/ch/loway/oss/ari4java/generated/ActionSoundsTest.java b/src/test/java/ch/loway/oss/ari4java/generated/ActionSoundsTest.java index 26c718b6..3b916565 100644 --- a/src/test/java/ch/loway/oss/ari4java/generated/ActionSoundsTest.java +++ b/src/test/java/ch/loway/oss/ari4java/generated/ActionSoundsTest.java @@ -2,16 +2,12 @@ import ch.loway.oss.ari4java.generated.actions.ActionSounds; import ch.loway.oss.ari4java.generated.ari_0_0_1.actions.ActionSounds_impl_ari_0_0_1; -import ch.loway.oss.ari4java.generated.models.*; +import ch.loway.oss.ari4java.generated.models.Sound; import ch.loway.oss.ari4java.tools.AriCallback; import ch.loway.oss.ari4java.tools.RestException; -import org.junit.After; -import org.junit.AfterClass; -import org.junit.Before; -import org.junit.BeforeClass; import org.junit.Test; -import static org.junit.Assert.*; +import static org.junit.Assert.assertEquals; /** * @author lenz @@ -29,25 +25,6 @@ public class ActionSoundsTest { + " ] " + " } "); - public ActionSoundsTest() { - } - - @BeforeClass - public static void setUpClass() throws Exception { - } - - @AfterClass - public static void tearDownClass() throws Exception { - } - - @Before - public void setUp() { - } - - @After - public void tearDown() { - } - /** * Strings in a JSON object need the double quotes. * Unfortunately using double quotes in Java is a PITA. @@ -56,12 +33,10 @@ public void tearDown() { * @param s * @return Translating 's to "s */ - public static String requoteString(String s) { return s.replace("'", "\""); } - private ActionSounds createWForcedResponse(String response) { ActionSounds_impl_ari_0_0_1 a = new ActionSounds_impl_ari_0_0_1(); a.setForcedResponse(response); @@ -74,7 +49,6 @@ private ActionSounds createWForcedResponse(String response) { /** * Tries generating a bridge. */ - @Test public void generateSound() throws RestException { ActionSounds aa = createWForcedResponse(jsonSounds); @@ -102,5 +76,4 @@ public void onFailure(RestException e) { } - } diff --git a/src/test/java/ch/loway/oss/ari4java/generated/ActonBridgesTest.java b/src/test/java/ch/loway/oss/ari4java/generated/ActonBridgesTest.java index 2f38e444..190c3b1d 100644 --- a/src/test/java/ch/loway/oss/ari4java/generated/ActonBridgesTest.java +++ b/src/test/java/ch/loway/oss/ari4java/generated/ActonBridgesTest.java @@ -2,67 +2,44 @@ import ch.loway.oss.ari4java.generated.actions.ActionBridges; import ch.loway.oss.ari4java.generated.ari_0_0_1.actions.ActionBridges_impl_ari_0_0_1; -import ch.loway.oss.ari4java.generated.models.*; +import ch.loway.oss.ari4java.generated.models.Bridge; +import ch.loway.oss.ari4java.generated.models.Playback; import ch.loway.oss.ari4java.tools.RestException; -import org.junit.After; -import org.junit.AfterClass; -import org.junit.Before; -import org.junit.BeforeClass; import org.junit.Test; -import static org.junit.Assert.*; + +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertTrue; /** - * * @author lenz */ public class ActonBridgesTest { - static final String jsonBridge = requoteString( "" - + " { " - + " 'id': 'aaa', " - + " 'technology': 'xxx', " - + " 'bridge_type': 'mixing', " - + " 'bridge_class': 'aaa', " - + " 'channels': ['a', 'b', 'c' ] " - + " } " ); - - - public ActonBridgesTest() { - } - - @BeforeClass - public static void setUpClass() throws Exception { - } - - @AfterClass - public static void tearDownClass() throws Exception { - } - - @Before - public void setUp() { - } + static final String jsonBridge = requoteString("" + + " { " + + " 'id': 'aaa', " + + " 'technology': 'xxx', " + + " 'bridge_type': 'mixing', " + + " 'bridge_class': 'aaa', " + + " 'channels': ['a', 'b', 'c' ] " + + " } "); - @After - public void tearDown() { - } /** * Strings in a JSON object need the double quotes. * Unfortunately using double quotes in Java is a PITA. * So... - * + * * @param s * @return Translating 's to "s */ - - public static String requoteString( String s ) { + public static String requoteString(String s) { return s.replace("'", "\""); } - - private ActionBridges createWForcedResponse( String response ) { + private ActionBridges createWForcedResponse(String response) { ActionBridges_impl_ari_0_0_1 a = new ActionBridges_impl_ari_0_0_1(); - a.setForcedResponse( response ); + a.setForcedResponse(response); ActionBridges aa = (ActionBridges) a; return aa; @@ -71,17 +48,15 @@ private ActionBridges createWForcedResponse( String response ) { /** * Tries generating a bridge. - * */ - @Test public void generateABridge() throws RestException { ActionBridges aa = createWForcedResponse(jsonBridge); Bridge b = aa.get("abcd").execute(); - assertEquals("Id", "aaa", b.getId() ); - assertEquals("N channels", 3, b.getChannels().size() ); + assertEquals("Id", "aaa", b.getId()); + assertEquals("N channels", 3, b.getChannels().size()); } @@ -92,7 +67,6 @@ public void generateABridge() throws RestException { * * @throws RestException */ - @Test public void receiveWrongMessage() throws RestException { @@ -102,7 +76,7 @@ public void receiveWrongMessage() throws RestException { try { Playback pb = aa.play("aaa", "sss").execute(); - } catch ( RestException e ) { + } catch (RestException e) { exceptionRaised = true; } @@ -110,5 +84,4 @@ public void receiveWrongMessage() throws RestException { } - } diff --git a/src/test/java/ch/loway/oss/ari4java/generated/DeserializeToListOfInterfaceTest.java b/src/test/java/ch/loway/oss/ari4java/generated/DeserializeToListOfInterfaceTest.java index 80dcd99d..12345aab 100644 --- a/src/test/java/ch/loway/oss/ari4java/generated/DeserializeToListOfInterfaceTest.java +++ b/src/test/java/ch/loway/oss/ari4java/generated/DeserializeToListOfInterfaceTest.java @@ -3,103 +3,76 @@ import ch.loway.oss.ari4java.tools.BaseAriAction; import ch.loway.oss.ari4java.tools.RestException; import com.fasterxml.jackson.core.type.TypeReference; -import java.util.List; -import org.junit.After; -import org.junit.AfterClass; -import org.junit.Before; -import org.junit.BeforeClass; import org.junit.Test; -import static org.junit.Assert.*; + +import java.util.List; + +import static org.junit.Assert.assertEquals; /** * Test how we can deserialize a Json blob to a List of Interface. - * To make our life easier, we create a custom interface and a + * To make our life easier, we create a custom interface and a * matching object. - * + * * @author lenz */ public class DeserializeToListOfInterfaceTest { - public DeserializeToListOfInterfaceTest() { - } - - @BeforeClass - public static void setUpClass() throws Exception { - } - - @AfterClass - public static void tearDownClass() throws Exception { - } - - @Before - public void setUp() { - } - - @After - public void tearDown() { - } - - - /** * Test if all the machinery is correct. - * */ - @Test public void testDeserializeConcrete() throws RestException { - - List l = BaseAriAction.deserializeJson( STR_TUPLE, - new TypeReference>() {} ); - assertEquals( "Size", 2, l.size() ); - assertEquals( "El 1 A", "x1", l.get(0).getA() ); - assertEquals( "El 2 B", "y2", l.get(1).getB() ); + List l = BaseAriAction.deserializeJson(STR_TUPLE, + new TypeReference>() { + }); + + assertEquals("Size", 2, l.size()); + assertEquals("El 1 A", "x1", l.get(0).getA()); + assertEquals("El 2 B", "y2", l.get(1).getB()); } /** * Now this gets us what we need. - * - * @throws RestException + * + * @throws RestException */ - @Test public void testDeserializeAbstract() throws RestException { - - List l = BaseAriAction.deserializeJsonAsAbstractList(STR_TUPLE, - new TypeReference>() {} - ); - - assertEquals( "Size", 2, l.size() ); - assertEquals( "El 1 A", "x1", l.get(0).getA() ); - assertEquals( "El 2 B", "y2", l.get(1).getB() ); - System.out.println( l.get(0) ); + + List l = BaseAriAction.deserializeJsonAsAbstractList(STR_TUPLE, + new TypeReference>() { + } + ); + + assertEquals("Size", 2, l.size()); + assertEquals("El 1 A", "x1", l.get(0).getA()); + assertEquals("El 2 B", "y2", l.get(1).getB()); } - - - - + public static String STR_TUPLE = "[\n" + - " {\"a\": \"x1\", \"b\": \"x2\" },\n" + - " {\"a\": \"y1\", \"b\": \"y2\" }\n" + - "]"; - + " {\"a\": \"x1\", \"b\": \"x2\" },\n" + + " {\"a\": \"y1\", \"b\": \"y2\" }\n" + + "]"; + /** * My interface */ - - private static interface Tuple_if { + private interface Tuple_if { public String getA(); + public String getB(); - public void setA( String v ); - public void setB( String v ); + + public void setA(String v); + + public void setB(String v); } /** * My physical class */ - private static class Tuple_impl implements Tuple_if { private String a; private String b; @@ -135,7 +108,7 @@ public String getB() { public void setB(String b) { this.b = b; } - + } } diff --git a/src/test/java/ch/loway/oss/ari4java/generated/EventBuilderTest.java b/src/test/java/ch/loway/oss/ari4java/generated/EventBuilderTest.java index d640c3a2..4e3a6b1c 100644 --- a/src/test/java/ch/loway/oss/ari4java/generated/EventBuilderTest.java +++ b/src/test/java/ch/loway/oss/ari4java/generated/EventBuilderTest.java @@ -1,108 +1,79 @@ package ch.loway.oss.ari4java.generated; - +import ch.loway.oss.ari4java.generated.ari_0_0_1.models.Message_impl_ari_0_0_1; import ch.loway.oss.ari4java.generated.models.Message; import ch.loway.oss.ari4java.generated.models.StasisStart; -import ch.loway.oss.ari4java.generated.ari_0_0_1.models.Message_impl_ari_0_0_1; import ch.loway.oss.ari4java.tools.BaseAriAction; import ch.loway.oss.ari4java.tools.RestException; -import org.junit.After; -import org.junit.AfterClass; -import org.junit.Before; -import org.junit.BeforeClass; import org.junit.Test; -import static org.junit.Assert.*; + +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertTrue; /** - * * @author lenz */ public class EventBuilderTest { - static final String jsonStasisStartEvent = requoteString( "" -+ " { " -+ " 'application': 'hello', " -+ " 'args': [ " -+ " 'world' " -+ " ], " -+ " 'channel': { " -+ " 'accountcode': '', " -+ " 'caller': { " -+ " 'name': 'blink', " -+ " 'number': 'blink' " -+ " }, " -+ " 'connected': { " -+ " 'name': '', " -+ " 'number': '' " -+ " }, " -+ " 'creationtime': '2013-10-15T15:54:12.625-0500', " -+ " 'dialplan': { " -+ " 'context': 'default', " -+ " 'exten': '7000', " -+ " 'priority': 2 " -+ " }, " -+ " 'id': '1381870452.0', " -+ " 'name': 'SIP/blink-00000000', " -+ " 'state': 'Ring' " -+ " }, " -+ " 'timestamp': '2013-10-15T15:54:12.626-0500', " -+ " 'type': 'StasisStart' " -+ " } " ); - - public EventBuilderTest() { - } + static final String jsonStasisStartEvent = requoteString("" + + " { " + + " 'application': 'hello', " + + " 'args': [ " + + " 'world' " + + " ], " + + " 'channel': { " + + " 'accountcode': '', " + + " 'caller': { " + + " 'name': 'blink', " + + " 'number': 'blink' " + + " }, " + + " 'connected': { " + + " 'name': '', " + + " 'number': '' " + + " }, " + + " 'creationtime': '2013-10-15T15:54:12.625-0500', " + + " 'dialplan': { " + + " 'context': 'default', " + + " 'exten': '7000', " + + " 'priority': 2 " + + " }, " + + " 'id': '1381870452.0', " + + " 'name': 'SIP/blink-00000000', " + + " 'state': 'Ring' " + + " }, " + + " 'timestamp': '2013-10-15T15:54:12.626-0500', " + + " 'type': 'StasisStart' " + + " } "); - @BeforeClass - public static void setUpClass() throws Exception { - } - - @AfterClass - public static void tearDownClass() throws Exception { - } - - @Before - public void setUp() { - } - - @After - public void tearDown() { - } /** * Strings in a JSON object need the double quotes. * Unfortunately using double quotes in Java is a PITA. * So... - * + * * @param s * @return Translating 's to "s */ - - public static String requoteString( String s ) { + public static String requoteString(String s) { return s.replace("'", "\""); } - /** * Tries creating an event out of the response. - * */ - @Test public void generateStatsiStartOutOfData() throws RestException { BaseAriAction action = new BaseAriAction(); - Message msg = action.deserializeEvent(jsonStasisStartEvent, Message_impl_ari_0_0_1.class ); + Message msg = action.deserializeEvent(jsonStasisStartEvent, Message_impl_ari_0_0_1.class); - assertTrue("Type: StasisStart", msg instanceof StasisStart ); + assertTrue("Type: StasisStart", msg instanceof StasisStart); StasisStart ss = (StasisStart) msg; - assertEquals( "Caller ID", "blink", ss.getChannel().getCaller().getName() ); + assertEquals("Caller ID", "blink", ss.getChannel().getCaller().getName()); } - - - } diff --git a/src/test/java/ch/loway/oss/ari4java/sandbox/TestARI.java b/src/test/java/ch/loway/oss/ari4java/sandbox/TestARI.java deleted file mode 100644 index 2f5657ff..00000000 --- a/src/test/java/ch/loway/oss/ari4java/sandbox/TestARI.java +++ /dev/null @@ -1,99 +0,0 @@ -package ch.loway.oss.ari4java.sandbox; - -import java.util.List; - -import ch.loway.oss.ari4java.ARI; -import ch.loway.oss.ari4java.AriVersion; -import ch.loway.oss.ari4java.generated.actions.ActionApplications; -import ch.loway.oss.ari4java.generated.actions.ActionAsterisk; -import ch.loway.oss.ari4java.generated.actions.ActionEvents; -import ch.loway.oss.ari4java.generated.models.Application; -import ch.loway.oss.ari4java.generated.models.AsteriskInfo; -import ch.loway.oss.ari4java.generated.models.Message; -import ch.loway.oss.ari4java.generated.models.Variable; -import ch.loway.oss.ari4java.tools.AriCallback; -import ch.loway.oss.ari4java.tools.RestException; -import ch.loway.oss.ari4java.tools.http.NettyHttpClient; - -public class TestARI { - - public static void main(String[] args) { - ARI ari = new ARI(); - NettyHttpClient hc = new NettyHttpClient(); - try { - hc.initialize("http://192.168.0.194:8088/", "admin", "admin"); - ari.setHttpClient(hc); - ari.setWsClient(hc); - ari.setVersion(AriVersion.ARI_0_0_1); - ActionApplications ac = ari.getActionImpl(ActionApplications.class); - List alist = ac.list().execute(); - for (Application app : alist) { - System.out.println(app.getName()); - } - ActionAsterisk aa = ari.getActionImpl(ActionAsterisk.class); - AsteriskInfo ai = aa.getInfo().execute(); - System.out.println(ai.getSystem().getEntity_id()); - // Let's try async - aa.getInfo().execute(new AriCallback() { - @Override - public void onSuccess(AsteriskInfo result) { - System.out.println(result.getSystem().getEntity_id()); - } - @Override - public void onFailure(RestException e) { - e.printStackTrace(); - } - }); - aa.getGlobalVar("AMPMGRPASS").execute(new AriCallback() { - @Override - public void onSuccess(Variable result) { - System.out.println(result.getValue()); - } - @Override - public void onFailure(RestException e) { - e.printStackTrace(); - } - }); - aa.setGlobalVar("WHATUP").setValue("Hoo").execute(new AriCallback() { - @Override - public void onSuccess(Void result) { - System.out.println("Done"); - } - @Override - public void onFailure(RestException e) { - e.printStackTrace(); - } - }); - aa.getGlobalVar("WHATUP").execute(new AriCallback() { - @Override - public void onSuccess(Variable result) { - System.out.println(result.getValue()); - } - @Override - public void onFailure(RestException e) { - e.printStackTrace(); - } - }); - System.out.println("Waiting for response..."); - ActionEvents ae = ari.getActionImpl(ActionEvents.class); - ae.eventWebsocket("hello,goodbye").execute(new AriCallback() { - @Override - public void onSuccess(Message result) { - System.out.println("ws="+result); - } - - @Override - public void onFailure(RestException e) { - e.printStackTrace(); - } - }); - Thread.sleep(5000); // Allow wheels to turn before applying brakes - ari.closeAction(ae); - Thread.sleep(5000); - hc.destroy(); - } catch (Exception e) { - e.printStackTrace(); - } - } - -} diff --git a/src/test/java/ch/loway/oss/ari4java/sandbox/TestNettyHttp.java b/src/test/java/ch/loway/oss/ari4java/sandbox/TestNettyHttp.java deleted file mode 100644 index 85ec2079..00000000 --- a/src/test/java/ch/loway/oss/ari4java/sandbox/TestNettyHttp.java +++ /dev/null @@ -1,118 +0,0 @@ -package ch.loway.oss.ari4java.sandbox; - -import ch.loway.oss.ari4java.tools.ARIEncoder; -import io.netty.bootstrap.Bootstrap; -import io.netty.channel.Channel; -import io.netty.channel.ChannelHandlerContext; -import io.netty.channel.ChannelInitializer; -import io.netty.channel.ChannelPipeline; -import io.netty.channel.EventLoopGroup; -import io.netty.channel.SimpleChannelInboundHandler; -import io.netty.channel.nio.NioEventLoopGroup; -import io.netty.channel.socket.SocketChannel; -import io.netty.channel.socket.nio.NioSocketChannel; -import io.netty.handler.codec.http.DefaultHttpRequest; -import io.netty.handler.codec.http.FullHttpResponse; -import io.netty.handler.codec.http.HttpClientCodec; -import io.netty.handler.codec.http.HttpHeaders; -import io.netty.handler.codec.http.HttpMethod; -import io.netty.handler.codec.http.HttpObjectAggregator; -import io.netty.handler.codec.http.HttpRequest; -import io.netty.handler.codec.http.HttpVersion; - -import java.net.URI; - -import ch.loway.oss.ari4java.generated.models.AsteriskInfo; -import ch.loway.oss.ari4java.generated.ari_0_0_1.models.AsteriskInfo_impl_ari_0_0_1; -import ch.loway.oss.ari4java.tools.BaseAriAction; -import ch.loway.oss.ari4java.tools.RestException; - -public class TestNettyHttp { - - public static class HttpClientHandler extends SimpleChannelInboundHandler { - - public HttpClientHandler() { - } - - - @Override - public void handlerAdded(ChannelHandlerContext ctx) throws Exception { - } - - @Override - public void channelActive(ChannelHandlerContext ctx) throws Exception { - } - - @Override - public void channelInactive(ChannelHandlerContext ctx) throws Exception { - } - - @Override - protected void channelRead0(ChannelHandlerContext ctx, Object msg) - throws Exception { - Channel ch = ctx.channel(); - - if (msg instanceof FullHttpResponse) { - FullHttpResponse response = (FullHttpResponse) msg; - System.out.println("msg=" + response); - BaseAriAction ba = new BaseAriAction(); - try { - AsteriskInfo m = ba.deserializeJson(response.content().toString(ARIEncoder.ENCODING), AsteriskInfo_impl_ari_0_0_1.class); - System.out.println(m); - } catch (RestException e) { - e.printStackTrace(); - } - } else { - } - - } - - @Override - public void exceptionCaught(ChannelHandlerContext ctx, Throwable cause) throws Exception { - cause.printStackTrace(); - - ctx.close(); - } - - } - - public static void main(String[] args) { - EventLoopGroup group = new NioEventLoopGroup(); - try { - URI uri = new URI("http://192.168.0.194:8088/"); - Bootstrap b = new Bootstrap(); - String protocol = uri.getScheme(); - if (!"http".equals(protocol)) { - throw new IllegalArgumentException("Unsupported protocol: " + protocol); - } - final HttpClientHandler handler = new HttpClientHandler(); - b.group(group) - .channel(NioSocketChannel.class) - .handler(new ChannelInitializer() { - @Override - public void initChannel(SocketChannel ch) throws Exception { - ChannelPipeline pipeline = ch.pipeline(); - pipeline.addLast("http-codec", new HttpClientCodec()); - pipeline.addLast("aggregator", new HttpObjectAggregator(8192)); - pipeline.addLast("http-handler", handler); - } - }); - - System.out.println("HTTP Client connecting"); - Channel ch = b.connect(uri.getHost(), uri.getPort()).sync().channel(); - - HttpRequest request = new DefaultHttpRequest( - HttpVersion.HTTP_1_1, HttpMethod.GET, "/ari/asterisk/info?api_key=admin:admin"); - request.headers().set(HttpHeaders.Names.HOST, "localhost"); - request.headers().set(HttpHeaders.Names.CONNECTION, HttpHeaders.Values.CLOSE); - ch.writeAndFlush(request); - ch.closeFuture().sync(); - - - } catch (Exception e) { - e.printStackTrace(); - } finally { - group.shutdownGracefully(); - } - } -} diff --git a/src/test/java/ch/loway/oss/ari4java/sandbox/TestNettyWs.java b/src/test/java/ch/loway/oss/ari4java/sandbox/TestNettyWs.java deleted file mode 100644 index d460f618..00000000 --- a/src/test/java/ch/loway/oss/ari4java/sandbox/TestNettyWs.java +++ /dev/null @@ -1,186 +0,0 @@ -package ch.loway.oss.ari4java.sandbox; - -import ch.loway.oss.ari4java.tools.ARIEncoder; -import io.netty.bootstrap.Bootstrap; -import io.netty.buffer.Unpooled; -import io.netty.channel.Channel; -import io.netty.channel.ChannelFuture; -import io.netty.channel.ChannelHandlerContext; -import io.netty.channel.ChannelInitializer; -import io.netty.channel.ChannelPipeline; -import io.netty.channel.ChannelPromise; -import io.netty.channel.EventLoopGroup; -import io.netty.channel.SimpleChannelInboundHandler; -import io.netty.channel.nio.NioEventLoopGroup; -import io.netty.channel.socket.SocketChannel; -import io.netty.channel.socket.nio.NioSocketChannel; -import io.netty.handler.codec.http.DefaultHttpHeaders; -import io.netty.handler.codec.http.FullHttpResponse; -import io.netty.handler.codec.http.HttpClientCodec; -import io.netty.handler.codec.http.HttpHeaders; -import io.netty.handler.codec.http.HttpObjectAggregator; -import io.netty.handler.codec.http.websocketx.CloseWebSocketFrame; -import io.netty.handler.codec.http.websocketx.PingWebSocketFrame; -import io.netty.handler.codec.http.websocketx.PongWebSocketFrame; -import io.netty.handler.codec.http.websocketx.TextWebSocketFrame; -import io.netty.handler.codec.http.websocketx.WebSocketClientHandshaker; -import io.netty.handler.codec.http.websocketx.WebSocketClientHandshakerFactory; -import io.netty.handler.codec.http.websocketx.WebSocketFrame; -import io.netty.handler.codec.http.websocketx.WebSocketVersion; - -import java.net.URI; - -import ch.loway.oss.ari4java.generated.models.Message; -import ch.loway.oss.ari4java.generated.ari_0_0_1.models.Message_impl_ari_0_0_1; -import ch.loway.oss.ari4java.tools.BaseAriAction; -import ch.loway.oss.ari4java.tools.RestException; - -public class TestNettyWs { - - public static class WebSocketClientHandler extends SimpleChannelInboundHandler { - - private final WebSocketClientHandshaker handshaker; - private ChannelPromise handshakeFuture; - - public WebSocketClientHandler(WebSocketClientHandshaker handshaker) { - this.handshaker = handshaker; - } - - public ChannelFuture handshakeFuture() { - return handshakeFuture; - } - - @Override - public void handlerAdded(ChannelHandlerContext ctx) throws Exception { - handshakeFuture = ctx.newPromise(); - } - - @Override - public void channelActive(ChannelHandlerContext ctx) throws Exception { - handshaker.handshake(ctx.channel()); - } - - @Override - public void channelInactive(ChannelHandlerContext ctx) throws Exception { - System.out.println("WebSocket Client disconnected!"); - } - - @Override - //public void messageReceived(ChannelHandlerContext ctx, Object msg) throws Exception { - protected void channelRead0(ChannelHandlerContext ctx, Object msg) - throws Exception { - Channel ch = ctx.channel(); - if (!handshaker.isHandshakeComplete()) { - handshaker.finishHandshake(ch, (FullHttpResponse) msg); - System.out.println("WebSocket Client connected!"); - handshakeFuture.setSuccess(); - return; - } - - if (msg instanceof FullHttpResponse) { - FullHttpResponse response = (FullHttpResponse) msg; - throw new Exception("Unexpected FullHttpResponse (getStatus=" + response.getStatus() + ", content=" - + response.content().toString(ARIEncoder.ENCODING) + ')'); - } - - WebSocketFrame frame = (WebSocketFrame) msg; - if (frame instanceof TextWebSocketFrame) { - TextWebSocketFrame textFrame = (TextWebSocketFrame) frame; - System.out.println("WebSocket Client received message: " + textFrame.text()); - //Channel_impl_ari_0_0_1 c = new Channel_impl_ari_0_0_1(); - BaseAriAction ba = new BaseAriAction(); - try { - Message m = ba.deserializeEvent(textFrame.text(), Message_impl_ari_0_0_1.class); - //Channel c = (Channel) ba.deserializeJson(message, Channel_impl_ari_0_0_1.class); - System.out.println(m); - } catch (RestException e) { - e.printStackTrace(); - } - } else if (frame instanceof PongWebSocketFrame) { - System.out.println("WebSocket Client received pong"); - } else if (frame instanceof CloseWebSocketFrame) { - System.out.println("WebSocket Client received closing"); - ch.close(); - } - } - - @Override - public void exceptionCaught(ChannelHandlerContext ctx, Throwable cause) throws Exception { - cause.printStackTrace(); - - if (!handshakeFuture.isDone()) { - handshakeFuture.setFailure(cause); - } - - ctx.close(); - } - - } - - public static void main(String [] args) { - EventLoopGroup group = new NioEventLoopGroup(); - try { - URI uri = new URI("ws://192.168.0.194:8088/ari/events?app=hello&api_key=admin:admin"); - Bootstrap b = new Bootstrap(); - String protocol = uri.getScheme(); - if (!"ws".equals(protocol)) { - throw new IllegalArgumentException("Unsupported protocol: " + protocol); - } - - HttpHeaders customHeaders = new DefaultHttpHeaders(); - customHeaders.add("MyHeader", "MyValue"); - - // Connect with V13 (RFC 6455 aka HyBi-17). You can change it to V08 or V00. - // If you change it to V00, ping is not supported and remember to change - // HttpResponseDecoder to WebSocketHttpResponseDecoder in the pipeline. - final WebSocketClientHandler handler = - new WebSocketClientHandler( - WebSocketClientHandshakerFactory.newHandshaker( - uri, WebSocketVersion.V13, null, false, customHeaders)); - - b.group(group) - .channel(NioSocketChannel.class) - .handler(new ChannelInitializer() { - @Override - public void initChannel(SocketChannel ch) throws Exception { - ChannelPipeline pipeline = ch.pipeline(); - pipeline.addLast("http-codec", new HttpClientCodec()); - pipeline.addLast("aggregator", new HttpObjectAggregator(8192)); - pipeline.addLast("ws-handler", handler); - } - }); - - System.out.println("WebSocket Client connecting"); - Channel ch = b.connect(uri.getHost(), uri.getPort()).sync().channel(); - handler.handshakeFuture().sync(); - - // Send 10 messages and wait for responses - /*System.out.println("WebSocket Client sending message"); - for (int i = 0; i < 10; i++) { - ch.writeAndFlush(new TextWebSocketFrame("Message #" + i)); - }*/ - - // Ping - System.out.println("WebSocket Client sending ping"); - ch.writeAndFlush(new PingWebSocketFrame(Unpooled.copiedBuffer(new byte[]{1, 2, 3, 4, 5, 6}))); - - // Wait some time - for (int i = 0; i < 30; i++) { - Thread.sleep(1000); - } - - // Close - System.out.println("WebSocket Client sending close"); - ch.writeAndFlush(new CloseWebSocketFrame()); - - // WebSocketClientHandler will disconnectWs the connection when the server - // responds to the CloseWebSocketFrame. - ch.closeFuture().sync(); - } catch (Exception e) { - e.printStackTrace(); - } finally { - group.shutdownGracefully(); - } - - } -} diff --git a/src/test/java/ch/loway/oss/ari4java/sandbox/deserializeJsonTest.java b/src/test/java/ch/loway/oss/ari4java/sandbox/deserializeJsonTest.java deleted file mode 100644 index d7a9ce4e..00000000 --- a/src/test/java/ch/loway/oss/ari4java/sandbox/deserializeJsonTest.java +++ /dev/null @@ -1,184 +0,0 @@ -/* - * - */ - -package ch.loway.oss.ari4java.sandbox; - -import com.fasterxml.jackson.core.type.TypeReference; -import com.fasterxml.jackson.databind.ObjectMapper; -import java.io.IOException; -import java.util.List; -import org.junit.After; -import org.junit.AfterClass; -import org.junit.Assert; -import org.junit.Before; -import org.junit.BeforeClass; -import org.junit.Test; - -/** - * These are a couple of tests written to learn how to use Jackson. - * - * @author lenz - */ -public class deserializeJsonTest { - - public deserializeJsonTest() { - } - - @BeforeClass - public static void setUpClass() throws Exception { - } - - @AfterClass - public static void tearDownClass() throws Exception { - } - - @Before - public void setUp() { - } - - @After - public void tearDown() { - } - - - public static String JSON_XXX = ""; - - - - // TODO add test methods here. - // The methods must be annotated with annotation @Test. For example: - // - - /** - * Lessons learned: - * - use public methods - * - * @throws IOException - */ - - @Test - public void testJacksonSimple() throws IOException { - - ObjectMapper mapper = new ObjectMapper(); - MyValue mx = (MyValue) mapper.readValue("{\"name\":\"Bob\", \"age\":13}", MyValue.class); - - Assert.assertEquals( "name", "Bob", mx.name ); - Assert.assertEquals( "age", 13, mx.age ); - - } - - /** - * Lessons learned: - * - Used TypeReference - * - * @throws IOException - */ - - @Test - public void testJacksonListOfStuff() throws IOException { - - ObjectMapper mapper = new ObjectMapper(); - List lVals = mapper.readValue("[ {\"name\":\"Leo\", \"age\":5}, {\"name\":\"Leda Sofia\", \"age\":3} ]", - new TypeReference>() {}); - - Assert.assertEquals( "N items", 2, lVals.size() ); - - Assert.assertEquals( "name 1", "Leo", lVals.get(0).name ); - Assert.assertEquals( "age 1", 5, lVals.get(0).age ); - - Assert.assertEquals( "name 2", "Leda Sofia", lVals.get(1).name ); - Assert.assertEquals( "age 2", 3, lVals.get(1).age ); - } - - - /** - * Lessons learned: - * - for setters in inner onjects, you set the congrete class - * but have a getter for the interface. Our clients will always use - * the custom interface. - * - * @throws IOException - */ - - @Test - public void createHierarchy() throws IOException { - - ObjectMapper mapper = new ObjectMapper(); - - String json = " { \"name\": \"Leo\", " - + " \"ageObj\": " - + " { \"age\": 5 } " - + " } "; - - InterfaceA obj = mapper.readValue( json, ImplementationA.class ); - - Assert.assertEquals( "name", "Leo", obj.getName() ); - Assert.assertEquals( "age", 5, obj.getAgeObj().getAge() ); - - } - - /** - * Simple object - * - */ - - public static class MyValue { - public String name= ""; - public int age = 0; - } - - - /** - * Multiple objects with multiple interfaces. - * - */ - - public static interface InterfaceA { - public String getName(); - public InterfaceB getAgeObj(); - } - - public static interface InterfaceB { - public int getAge(); - } - - public static class ImplementationA implements InterfaceA { - - private String name = ""; - private ImplementationB obB = null; - - public InterfaceB getAgeObj() { - return obB; - } - - public void setAgeObj( ImplementationB b ) { - obB = (ImplementationB) b; - } - - public String getName() { - return name; - } - - public void setName( String n ) { - name = n; - } - - } - - public static class ImplementationB implements InterfaceB { - - private int age; - - public int getAge() { - return age; - } - - public void setAge( int a) { - age = a; - } - - } - - -} \ No newline at end of file From c23f8f90f60055ffe1209017f060ab064b61311f Mon Sep 17 00:00:00 2001 From: Graham Brown Date: Mon, 17 Feb 2020 21:50:27 +0200 Subject: [PATCH 091/220] add logging and some refactoring for unit tests --- build.gradle | 8 +- .../ari4java/tools/http/NettyHttpClient.java | 164 +++++++++++------- .../tools/http/NettyHttpClientHandler.java | 2 +- .../tools/http/NettyWSClientHandler.java | 14 +- 4 files changed, 118 insertions(+), 70 deletions(-) diff --git a/build.gradle b/build.gradle index da9110c9..09dee46c 100644 --- a/build.gradle +++ b/build.gradle @@ -31,12 +31,16 @@ dependencies { compile 'com.fasterxml.jackson.core:jackson-annotations:2.10.1' compile 'io.netty:netty-all:4.1.44.Final' compile 'javax.xml.bind:jaxb-api:2.3.1' + compile 'org.slf4j:slf4j-api:1.7.30' + compile 'org.apache.logging.log4j:log4j-slf4j-impl:2.13.0' testCompile 'junit:junit:4.10' + testImplementation 'org.mockito:mockito-core:2.28.2' + } -compileJava.dependsOn ':codegen:runCodegen' -compileJava.dependsOn 'buildProps' +//compileJava.dependsOn ':codegen:runCodegen' +//compileJava.dependsOn 'buildProps' def build_number = 'x' if (System.getenv('BUILD_NUMBER') != null) { diff --git a/src/main/java/ch/loway/oss/ari4java/tools/http/NettyHttpClient.java b/src/main/java/ch/loway/oss/ari4java/tools/http/NettyHttpClient.java index 9e52d01d..e8eca1ef 100644 --- a/src/main/java/ch/loway/oss/ari4java/tools/http/NettyHttpClient.java +++ b/src/main/java/ch/loway/oss/ari4java/tools/http/NettyHttpClient.java @@ -20,6 +20,8 @@ import io.netty.util.concurrent.Future; import io.netty.util.concurrent.GenericFutureListener; import io.netty.util.concurrent.ScheduledFuture; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; import java.io.UnsupportedEncodingException; import java.net.URI; @@ -45,6 +47,8 @@ public class NettyHttpClient implements HttpClient, WsClient, WsClientAutoReconn public static final int READ_TIMEOUT_SEC = 30; public static final int MAX_HTTP_REQUEST_KB = 16 * 1024; + private Logger logger = LoggerFactory.getLogger(NettyHttpClient.class); + private Bootstrap bootStrap; private URI baseUri; private EventLoopGroup group; @@ -72,14 +76,27 @@ public NettyHttpClient() { } public void initialize(String baseUrl, String username, String password) throws URISyntaxException { + logger.debug("initialize url: {}, user: {}", baseUrl, username); this.username = username; this.password = password; baseUri = new URI(baseUrl); String protocol = baseUri.getScheme(); if (!"http".equals(protocol)) { + logger.warn("Not http, protocol: {}", protocol); throw new IllegalArgumentException("Unsupported protocol: " + protocol); } + bootstrap(); + } + + protected void bootstrap() { // Bootstrap is the factory for HTTP connections + logger.debug("Bootstrap with\n" + + " connection timeout: {},\n" + + " read timeout: {},\n" + + " aggregator max-length: {}\n ", + (CONNECTION_TIMEOUT_SEC * 1000), + READ_TIMEOUT_SEC, + (MAX_HTTP_REQUEST_KB * 1024)); bootStrap = new Bootstrap(); bootStrap.group(group); bootStrap.channel(NioSocketChannel.class); @@ -97,19 +114,33 @@ public void initChannel(SocketChannel ch) throws Exception { }); } + protected ChannelFuture httpConnect() { + logger.debug("HTTP Connect uri: {}", baseUri.toString()); + return bootStrap.connect(baseUri.getHost(), baseUri.getPort()); + } + public void destroy() { + logger.debug("destroy..."); // use a different event group to execute the shutdown to avoid deadlocks shutDownGroup.schedule(new Runnable() { @Override public void run() { + if (wsPingTimer != null) { + logger.debug("cancel ping..."); + wsPingTimer.cancel(true); + wsPingTimer = null; + } if (wsClientConnection != null) { try { + logger.debug("there is a web socket, disconnect..."); wsClientConnection.disconnect(); + wsClientConnection = null; } catch (RestException e) { // not bubbling exception up, just ignoring } } if (group != null && !group.isShuttingDown()) { + logger.debug("shutdownGracefully"); group.shutdownGracefully(5, 10, TimeUnit.SECONDS).addListener(new GenericFutureListener() { @Override public void operationComplete(Future future) throws Exception { @@ -118,12 +149,13 @@ public void operationComplete(Future future) throws Exception { } }).syncUninterruptibly(); group = null; + logger.debug("shutdown complete"); } } }, 250L, TimeUnit.MILLISECONDS); } - private String buildURL(String path, List parametersQuery, boolean withAddress) { + protected String buildURL(String path, List parametersQuery, boolean withAddress) { StringBuilder uriBuilder = new StringBuilder(); if (withAddress) { uriBuilder.append(baseUri); @@ -150,7 +182,7 @@ private String buildURL(String path, List parametersQuery, boolean wi } // Factory for WS handshakes - private WebSocketClientHandshaker getWsHandshake(String path, List parametersQuery) throws UnsupportedEncodingException { + private WebSocketClientHandshaker getWsHandshake(String path, List parametersQuery) { String url = buildURL(path, parametersQuery, true); try { if (url.regionMatches(true, 0, "http", 0, 4)) { @@ -161,27 +193,27 @@ private WebSocketClientHandshaker getWsHandshake(String path, List pa return WebSocketClientHandshakerFactory.newHandshaker( uri, WebSocketVersion.V13, null, false, null); } catch (URISyntaxException e) { - e.printStackTrace(); + logger.warn("WSHandshake error, returning null", e); return null; } } // Build the HTTP request based on the given parameters - private HttpRequest buildRequest(String path, String method, List parametersQuery, List parametersForm, List parametersBody) throws UnsupportedEncodingException { + private HttpRequest buildRequest(String path, String method, List parametersQuery, + List parametersForm, List parametersBody) { String url = buildURL(path, parametersQuery, false); FullHttpRequest request = new DefaultFullHttpRequest( HttpVersion.HTTP_1_1, HttpMethod.valueOf(method), url); - //System.out.println(request.getUri()); if (parametersBody != null && !parametersBody.isEmpty()) { String vars = makeJson(parametersBody); ByteBuf bbuf = Unpooled.copiedBuffer(vars, ARIEncoder.ENCODING); - request.headers().add(HttpHeaders.Names.CONTENT_TYPE, "application/json"); - request.headers().set(HttpHeaders.Names.CONTENT_LENGTH, bbuf.readableBytes()); + request.headers().add(HttpHeaderNames.CONTENT_TYPE, HttpHeaderValues.APPLICATION_JSON); + request.headers().set(HttpHeaderNames.CONTENT_LENGTH, bbuf.readableBytes()); request.content().clear().writeBytes(bbuf); } - request.headers().set(HttpHeaders.Names.HOST, "localhost"); - request.headers().set(HttpHeaders.Names.CONNECTION, HttpHeaders.Values.CLOSE); + request.headers().set(HttpHeaderNames.HOST, "localhost"); + request.headers().set(HttpHeaderNames.CONNECTION, HttpHeaderValues.CLOSE); return request; } @@ -242,7 +274,8 @@ private RestException makeException(HttpResponseStatus status, String response, // Synchronous HTTP action @Override - public String httpActionSync(String uri, String method, List parametersQuery, List parametersForm, List parametersBody, + public String httpActionSync(String uri, String method, List parametersQuery, + List parametersForm, List parametersBody, List errors) throws RestException { NettyHttpClientHandler handler = httpActionSyncHandler(uri, method, parametersQuery, parametersForm, parametersBody, errors); return handler.getResponseText(); @@ -250,18 +283,22 @@ public String httpActionSync(String uri, String method, List paramete // Synchronous HTTP action @Override - public byte[] httpActionSyncAsBytes(String uri, String method, List parametersQuery, List parametersForm, List parametersBody, + public byte[] httpActionSyncAsBytes(String uri, String method, List parametersQuery, + List parametersForm, List parametersBody, List errors) throws RestException { NettyHttpClientHandler handler = httpActionSyncHandler(uri, method, parametersQuery, parametersForm, parametersBody, errors); return handler.getResponseBytes(); } - private NettyHttpClientHandler httpActionSyncHandler(String uri, String method, List parametersQuery, List parametersForm, List parametersBody, + private NettyHttpClientHandler httpActionSyncHandler(String uri, String method, List parametersQuery, + List parametersForm, List parametersBody, List errors) throws RestException { Channel ch; try { + logger.debug("Sync Action, uri: {}, method: {}", uri, method); HttpRequest request = buildRequest(uri, method, parametersQuery, parametersForm, parametersBody); - ch = bootStrap.connect(baseUri.getHost(), baseUri.getPort()).sync().channel(); + + ch = httpConnect().sync().channel(); NettyHttpClientHandler handler = (NettyHttpClientHandler) ch.pipeline().get("http-handler"); ch.writeAndFlush(request); ch.closeFuture().sync(); @@ -282,66 +319,62 @@ private NettyHttpClientHandler httpActionSyncHandler(String uri, String method, // Asynchronous HTTP action, response is passed to HttpResponseHandler @Override - public void httpActionAsync(String uri, String method, List parametersQuery, List parametersForm, List parametersBody, - final List errors, final HttpResponseHandler responseHandler, boolean binary) - throws RestException { - try { - final HttpRequest request = buildRequest(uri, method, parametersQuery, parametersForm, parametersBody); - // Get future channel - ChannelFuture cf = bootStrap.connect(baseUri.getHost(), baseUri.getPort()); - cf.addListener(new ChannelFutureListener() { + public void httpActionAsync(String uri, String method, List parametersQuery, List parametersForm, + List parametersBody, final List errors, + final HttpResponseHandler responseHandler, boolean binary) { - @Override - public void operationComplete(ChannelFuture future) throws Exception { - if (future.isSuccess()) { - Channel ch = future.channel(); - responseHandler.onChReadyToWrite(); - ch.writeAndFlush(request); - ch.closeFuture().addListener(new ChannelFutureListener() { - - @Override - public void operationComplete(ChannelFuture future) throws Exception { - responseHandler.onResponseReceived(); - if (future.isSuccess()) { - NettyHttpClientHandler handler = (NettyHttpClientHandler) future.channel().pipeline().get("http-handler"); - HttpResponseStatus rStatus = handler.getResponseStatus(); - - if (httpResponseOkay(rStatus)) { - if (binary) { - responseHandler.onSuccess(handler.getResponseBytes()); - } else { - responseHandler.onSuccess(handler.getResponseText()); - } + logger.debug("Async Action, uri: {}, method: {}", uri, method); + final HttpRequest request = buildRequest(uri, method, parametersQuery, parametersForm, parametersBody); + // Get future channel + ChannelFuture cf = httpConnect(); + cf.addListener(new ChannelFutureListener() { + + @Override + public void operationComplete(ChannelFuture future) throws Exception { + if (future.isSuccess()) { + Channel ch = future.channel(); + responseHandler.onChReadyToWrite(); + ch.writeAndFlush(request); + ch.closeFuture().addListener(new ChannelFutureListener() { + + @Override + public void operationComplete(ChannelFuture future) throws Exception { + responseHandler.onResponseReceived(); + if (future.isSuccess()) { + NettyHttpClientHandler handler = (NettyHttpClientHandler) future.channel().pipeline().get("http-handler"); + HttpResponseStatus rStatus = handler.getResponseStatus(); + + if (httpResponseOkay(rStatus)) { + if (binary) { + responseHandler.onSuccess(handler.getResponseBytes()); } else { - responseHandler.onFailure(makeException(handler.getResponseStatus(), handler.getResponseText(), errors)); + responseHandler.onSuccess(handler.getResponseText()); } } else { - responseHandler.onFailure(future.cause()); + responseHandler.onFailure(makeException(handler.getResponseStatus(), handler.getResponseText(), errors)); } + } else { + responseHandler.onFailure(future.cause()); } - }); - } else { - responseHandler.onFailure(future.cause()); - } + } + }); + } else { + responseHandler.onFailure(future.cause()); } - }); - } catch (UnsupportedEncodingException e) { - throw new RestException(e); - } + } + }); } // WsClient implementation - connect to WebSocket server @Override - public WsClientConnection connect(final HttpResponseHandler callback, final String url, final List lParamQuery) throws RestException { + public WsClientConnection connect(final HttpResponseHandler callback, final String url, final List lParamQuery) { + WebSocketClientHandshaker handshake = getWsHandshake(url, lParamQuery); + logger.debug("WS Connect uri: {}, ver: {}", handshake.uri().toString(), handshake.version().toString()); + this.wsHandler = new NettyWSClientHandler(handshake, callback, this); this.wsCallback = callback; this.wsEventsUrl = url; this.wsEventsParamQuery = lParamQuery; - try { - this.wsHandler = new NettyWSClientHandler(getWsHandshake(url, lParamQuery), callback, this); - } catch (UnsupportedEncodingException e) { - throw new RestException(e); - } Bootstrap wsBootStrap = new Bootstrap(); wsBootStrap.group(group); @@ -367,6 +400,7 @@ public void operationComplete(ChannelFuture future) throws Exception { @Override public void operationComplete(ChannelFuture future) throws Exception { if (future.isSuccess()) { + logger.debug("WS connected..."); callback.onChReadyToWrite(); // reset the reconnect counter on successful connect reconnectCount = 0; @@ -398,7 +432,7 @@ public void run() { if ((System.currentTimeMillis() - wsCallback.getLastResponseTime()) > 15000) { if (!wsChannelFuture.isCancelled() && wsChannelFuture.channel() != null) { WebSocketFrame frame = new PingWebSocketFrame(Unpooled.wrappedBuffer("ari4j".getBytes(ARIEncoder.ENCODING))); -// System.out.println("Send Ping at " + System.currentTimeMillis()); + logger.debug("Send Ping at {}", System.currentTimeMillis()); wsChannelFuture.channel().writeAndFlush(frame); boolean noPong = true; for (int i = 0; i < 10; i++) { @@ -409,17 +443,18 @@ public void run() { return; } if ((System.currentTimeMillis() - lastPong) < 10000) { -// System.out.println("Pong at " + lastPong); + logger.debug("Pong at {}", lastPong); pongFailureCount = 0; noPong = false; break; } else { -// System.out.println("No Pong at " + System.currentTimeMillis()); + logger.warn("No Pong at {}", System.currentTimeMillis()); } } if (noPong) { pongFailureCount++; if (pongFailureCount > 1) { + logger.warn("No Ping response from server, reconnect..."); reconnectWs(new RestException("No Ping response from server")); } } @@ -481,6 +516,11 @@ public void reconnectWs(Throwable cause) { } if (!autoReconnect || reconnectCount >= 10) { + if (!autoReconnect) { + logger.error("Tried reconnecting 10 times, executing failure callback"); + } else { + logger.warn("autoReconnect set, executing failure callback"); + } wsCallback.onFailure(cause); return; } @@ -491,13 +531,13 @@ public void reconnectWs(Throwable cause) { long[] timeouts = {2L, 5L, 10L}; long timeout = reconnectCount >= timeouts.length ? timeouts[timeouts.length - 1] : timeouts[reconnectCount]; reconnectCount++; + logger.error("WS Connect Error: {}, reconnecting in {} seconds... try: {}", cause.getMessage(), timeout, reconnectCount); shutDownGroup.schedule(new Runnable() { @Override public void run() { try { // 1st close up wsClientConnection.disconnect(); - System.err.println(System.currentTimeMillis() + " ** connecting... try:" + reconnectCount + " ++"); // then connect again connect(wsCallback, wsEventsUrl, wsEventsParamQuery); } catch (RestException e) { diff --git a/src/main/java/ch/loway/oss/ari4java/tools/http/NettyHttpClientHandler.java b/src/main/java/ch/loway/oss/ari4java/tools/http/NettyHttpClientHandler.java index 16b0c93c..3909ef3e 100644 --- a/src/main/java/ch/loway/oss/ari4java/tools/http/NettyHttpClientHandler.java +++ b/src/main/java/ch/loway/oss/ari4java/tools/http/NettyHttpClientHandler.java @@ -35,7 +35,7 @@ protected void channelRead0(ChannelHandlerContext ctx, Object msg) throws Except FullHttpResponse response = (FullHttpResponse) msg; responseBytes = new byte[response.content().readableBytes()]; response.content().readBytes(responseBytes); - responseStatus = response.getStatus(); + responseStatus = response.status(); } else { // TODO: what? if (msg != null) { diff --git a/src/main/java/ch/loway/oss/ari4java/tools/http/NettyWSClientHandler.java b/src/main/java/ch/loway/oss/ari4java/tools/http/NettyWSClientHandler.java index 755a422a..0c62f95c 100644 --- a/src/main/java/ch/loway/oss/ari4java/tools/http/NettyWSClientHandler.java +++ b/src/main/java/ch/loway/oss/ari4java/tools/http/NettyWSClientHandler.java @@ -2,6 +2,7 @@ import ch.loway.oss.ari4java.tools.ARIEncoder; import ch.loway.oss.ari4java.tools.HttpResponseHandler; +import ch.loway.oss.ari4java.tools.RestException; import ch.loway.oss.ari4java.tools.WsClientAutoReconnect; import io.netty.channel.Channel; import io.netty.channel.ChannelFuture; @@ -10,6 +11,8 @@ import io.netty.channel.ChannelPromise; import io.netty.handler.codec.http.FullHttpResponse; import io.netty.handler.codec.http.websocketx.*; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; /** @@ -27,6 +30,7 @@ public class NettyWSClientHandler extends NettyHttpClientHandler { final HttpResponseHandler wsCallback; private WsClientAutoReconnect wsClient = null; private boolean shuttingDown = false; + private Logger logger = LoggerFactory.getLogger(NettyWSClientHandler.class); public NettyWSClientHandler(WebSocketClientHandshaker handshaker, HttpResponseHandler wsCallback, WsClientAutoReconnect wsClient) { this(handshaker, wsCallback); @@ -56,7 +60,8 @@ public void channelActive(ChannelHandlerContext ctx) throws Exception { public void channelInactive(ChannelHandlerContext ctx) throws Exception { if (!shuttingDown) { if (this.wsClient != null) { - wsClient.reconnectWs(null); + logger.debug("WS channel inactive - {}", ctx.toString()); + wsClient.reconnectWs(new RestException("WS channel inactive")); } else { wsCallback.onDisconnect(); } @@ -84,6 +89,8 @@ protected void channelRead0(ChannelHandlerContext ctx, Object msg) throws Except wsCallback.onResponseReceived(); WebSocketFrame frame = (WebSocketFrame) msg; + logger.debug("Received WebSocketFrame - {}", frame.getClass().getSimpleName()); + if (frame instanceof TextWebSocketFrame) { TextWebSocketFrame textFrame = (TextWebSocketFrame) frame; responseBytes = textFrame.text().getBytes(ARIEncoder.ENCODING); @@ -99,11 +106,8 @@ protected void channelRead0(ChannelHandlerContext ctx, Object msg) throws Except } } else if (frame instanceof PongWebSocketFrame) { wsClient.pong(); - // TODO log -// System.out.println("PongWebSocketFrame at " + System.currentTimeMillis()); } else { - // TODO log unhandled frame... -// System.out.println("Unhandled WebSocketFrame: " + frame.getClass().toString()); + logger.warn("Unhandled WebSocketFrame: {}", frame.getClass().toString()); } } From cb2753d0060ab91e0fd1c08fe529d422e5c33b7b Mon Sep 17 00:00:00 2001 From: Graham Brown Date: Mon, 17 Feb 2020 21:51:10 +0200 Subject: [PATCH 092/220] netty unit tests and log4j settings --- .../sandbox/sample/ConnectAndDial.java | 57 +++--- .../oss/ari4java/sandbox/sample/Weasels.java | 19 +- .../http/NettyHttpClientHandlerTest.java | 24 +++ .../tools/http/NettyHttpClientTest.java | 168 ++++++++++++++++++ src/test/resources/log4j2.properties | 15 ++ 5 files changed, 246 insertions(+), 37 deletions(-) create mode 100644 src/test/java/ch/loway/oss/ari4java/tools/http/NettyHttpClientHandlerTest.java create mode 100644 src/test/java/ch/loway/oss/ari4java/tools/http/NettyHttpClientTest.java create mode 100644 src/test/resources/log4j2.properties diff --git a/src/test/java/ch/loway/oss/ari4java/sandbox/sample/ConnectAndDial.java b/src/test/java/ch/loway/oss/ari4java/sandbox/sample/ConnectAndDial.java index 1ff2f135..8da9d21c 100644 --- a/src/test/java/ch/loway/oss/ari4java/sandbox/sample/ConnectAndDial.java +++ b/src/test/java/ch/loway/oss/ari4java/sandbox/sample/ConnectAndDial.java @@ -11,6 +11,7 @@ import ch.loway.oss.ari4java.tools.AriCallback; import ch.loway.oss.ari4java.tools.MessageQueue; import ch.loway.oss.ari4java.tools.RestException; + import java.util.List; /** @@ -23,9 +24,9 @@ public class ConnectAndDial { public static final String ASTERISK_ADDRESS = "http://192.168.99.100:18088/"; - public static final String ASTERISK_USER = "ari4java"; - public static final String ASTERISK_PASS = "yothere"; - + public static final String ASTERISK_USER = "ari4java"; + public static final String ASTERISK_PASS = "yothere"; + ARI ari = null; Bridge b = null; @@ -39,7 +40,6 @@ public static void main(String[] args) { /** * This is the app... - * */ public void start() { @@ -68,15 +68,15 @@ public void start() { public void connect() throws ARIException { - System.out.println("Connecting to: " + ASTERISK_ADDRESS + System.out.println("Connecting to: " + ASTERISK_ADDRESS + " as " + ASTERISK_USER + ":" + ASTERISK_PASS); - - ari = ARI.build( ASTERISK_ADDRESS, "myapp", - ASTERISK_USER, ASTERISK_PASS, + + ari = ARI.build(ASTERISK_ADDRESS, "myapp", + ASTERISK_USER, ASTERISK_PASS, AriVersion.IM_FEELING_LUCKY); System.out.println("Connected through ARI: " + ari.getVersion()); - + // let's raise an exeption if the connection is not valid AsteriskInfo ai = ari.asterisk().getInfo().execute(); System.out.println("Hey! We're connected! Asterisk Version: " + ai.getSystem().getVersion()); @@ -87,16 +87,16 @@ public void createBridge() throws ARIException { // create a bridge and start playing MOH on it // UGLY: we should have a constant for the allowed bridge types - System.out.println( "Creating a bridge"); + System.out.println("Creating a bridge"); b = ari.bridges().create().setType("a4j-bridge1").setName("myBridge").execute(); System.out.println("Bridge ID:" + b.getId() + " Name:" + b.getName() + " Tech:" + b.getTechnology() + " Creator:" + b.getCreator()); - + // start MOH on the bridge - System.out.println( "Starting MOH on bridge"); + System.out.println("Starting MOH on bridge"); ari.bridges().startMoh(b.getId()).execute(); // check which bridges are available - System.out.println( "Listing bridges"); + System.out.println("Listing bridges"); List bridges = ari.bridges().list().execute(); for (Bridge bb : bridges) { @@ -111,21 +111,20 @@ public void createBridge() throws ARIException { * * @throws ARIException */ - public void processEvents() throws ARIException { - System.out.println( "Starting events... " ); + System.out.println("Starting events... "); MessageQueue mq = ari.getWebsocketQueue(); long start = System.currentTimeMillis(); Channel chan = ari.channels().originate("Local/100@wdep") .setExtension("100").setContext("wdep").setPriority(1).setTimeout(10000).execute(); - System.out.println( "Channel:" + chan.getId() + " in state " + chan.getState() ); - + System.out.println("Channel:" + chan.getId() + " in state " + chan.getState()); + while ((System.currentTimeMillis() - start) < 10 * 1000L) { - - Message m = mq.dequeueMax( 100, 20 ); + + Message m = mq.dequeueMax(100, 20); if (m != null) { long now = System.currentTimeMillis() - start; @@ -137,28 +136,28 @@ public void processEvents() throws ARIException { ari.bridges().addChannel(b.getId(), event.getChannel().getId()).execute(); } - } + } } - System.out.println( "No more events... " ); + System.out.println("No more events... "); } public void removeBridge() throws ARIException { - System.out.println( threadName() + "Removing bridge...." ); + System.out.println(threadName() + "Removing bridge...."); ari.bridges().destroy(b.getId()).execute(new AriCallback() { @Override public void onSuccess(Void result) { // Let's do something with the returned value - System.out.println( threadName() + "Bridge destroyed " ); + System.out.println(threadName() + "Bridge destroyed "); } @Override public void onFailure(RestException e) { - System.out.println( threadName() + "Failure in removeBridge() " ); + System.out.println(threadName() + "Failure in removeBridge() "); e.printStackTrace(); } }); @@ -167,8 +166,8 @@ public void onFailure(RestException e) { /** * Dumps a bridge to string. * Should we have a default toString that makes more sense? - * - * @param b + * + * @param b the bridge */ private void printBridge(Bridge b) { System.out.println(". BridgeID:" + b.getId() @@ -182,12 +181,10 @@ private void printBridge(Bridge b) { System.out.println(" - ChannelID: " + s); } } - + /** - * The name of the current thread. - * @return + * @return the name of the current thread */ - private String threadName() { return "[Thread:" + Thread.currentThread().getName() + "] "; } diff --git a/src/test/java/ch/loway/oss/ari4java/sandbox/sample/Weasels.java b/src/test/java/ch/loway/oss/ari4java/sandbox/sample/Weasels.java index 81b237de..4cb443df 100644 --- a/src/test/java/ch/loway/oss/ari4java/sandbox/sample/Weasels.java +++ b/src/test/java/ch/loway/oss/ari4java/sandbox/sample/Weasels.java @@ -13,9 +13,13 @@ public class Weasels { - private static final String ARI_URL = "http://192.168.99.100:18088/"; - private static final String ARI_USER = "ari4java"; - private static final String ARI_PASS = "yothere"; +// private static final String ARI_URL = "http://192.168.99.100:18088/"; +// private static final String ARI_USER = "ari4java"; +// private static final String ARI_PASS = "yothere"; + private static final String ARI_URL = "http://asterisk1.local:8088/"; +// private static final String ARI_URL = "http://localhost:8088/"; + private static final String ARI_USER = "asterisk"; + private static final String ARI_PASS = "asterisk"; private static final String ARI_APP = "weasels-app"; private ARI ari; @@ -49,10 +53,11 @@ private void log(String message) { private boolean connect() { try { - ari = ARI.build(ARI_URL, ARI_APP, ARI_USER, ARI_PASS, AriVersion.IM_FEELING_LUCKY); +// ari = ARI.build(ARI_URL, ARI_APP, ARI_USER, ARI_PASS, AriVersion.IM_FEELING_LUCKY); + ari = ARI.build(ARI_URL, ARI_APP, ARI_USER, ARI_PASS, AriVersion.ARI_5_0_0); log("Detect Server ARI Version: " + ari.getVersion().version()); - AsteriskInfo info = ari.asterisk().getInfo().execute(); - log("System up since " + info.getStatus().getStartup_time()); +// AsteriskInfo info = ari.asterisk().getInfo().execute(); +// log("System up since " + info.getStatus().getStartup_time()); return true; } catch (Throwable t) { log("Error: " + t.getMessage()); @@ -89,7 +94,7 @@ public void onFailure(RestException e) { }); // usually we would not terminate and run indefinitely // waiting for 5 minutes before shutting down... - threadPool.awaitTermination(5, TimeUnit.MINUTES); + threadPool.awaitTermination(2, TimeUnit.MINUTES); } private void handleStart(StasisStart start) throws RestException { diff --git a/src/test/java/ch/loway/oss/ari4java/tools/http/NettyHttpClientHandlerTest.java b/src/test/java/ch/loway/oss/ari4java/tools/http/NettyHttpClientHandlerTest.java new file mode 100644 index 00000000..6e2cfb2f --- /dev/null +++ b/src/test/java/ch/loway/oss/ari4java/tools/http/NettyHttpClientHandlerTest.java @@ -0,0 +1,24 @@ +package ch.loway.oss.ari4java.tools.http; + +import ch.loway.oss.ari4java.tools.ARIEncoder; +import io.netty.buffer.Unpooled; +import io.netty.channel.embedded.EmbeddedChannel; +import io.netty.handler.codec.http.*; +import org.junit.Test; + +import static org.junit.Assert.*; + +public class NettyHttpClientHandlerTest { + + @Test + public void testResponse() { + NettyHttpClientHandler h = new NettyHttpClientHandler(); + EmbeddedChannel channel = new EmbeddedChannel(); + channel.pipeline().addLast("http-codec", new HttpClientCodec()); + channel.pipeline().addLast("aggregator", new HttpObjectAggregator(NettyHttpClient.MAX_HTTP_REQUEST_KB * 1024)); + channel.pipeline().addLast("http-handler", h); + channel.writeInbound(new DefaultFullHttpResponse(HttpVersion.HTTP_1_1, HttpResponseStatus.OK, Unpooled.copiedBuffer("test", ARIEncoder.ENCODING))); + assertEquals("test", h.getResponseText()); + } + +} diff --git a/src/test/java/ch/loway/oss/ari4java/tools/http/NettyHttpClientTest.java b/src/test/java/ch/loway/oss/ari4java/tools/http/NettyHttpClientTest.java new file mode 100644 index 00000000..f0545e50 --- /dev/null +++ b/src/test/java/ch/loway/oss/ari4java/tools/http/NettyHttpClientTest.java @@ -0,0 +1,168 @@ +package ch.loway.oss.ari4java.tools.http; + +import ch.loway.oss.ari4java.generated.actions.requests.AsteriskPingGetRequest; +import ch.loway.oss.ari4java.generated.ari_6_0_0.actions.requests.ApplicationsGetRequest_impl_ari_6_0_0; +import ch.loway.oss.ari4java.generated.ari_6_0_0.actions.requests.AsteriskPingGetRequest_impl_ari_6_0_0; +import ch.loway.oss.ari4java.generated.models.AsteriskPing; +import ch.loway.oss.ari4java.tools.ARIEncoder; +import ch.loway.oss.ari4java.tools.AriCallback; +import ch.loway.oss.ari4java.tools.HttpParam; +import ch.loway.oss.ari4java.tools.RestException; +import io.netty.buffer.ByteBuf; +import io.netty.buffer.Unpooled; +import io.netty.channel.Channel; +import io.netty.channel.ChannelFuture; +import io.netty.channel.ChannelPipeline; +import io.netty.channel.DefaultChannelPromise; +import io.netty.channel.embedded.EmbeddedChannel; +import io.netty.handler.codec.http.*; +import org.junit.Before; +import org.junit.Test; + +import java.net.URISyntaxException; +import java.util.ArrayList; +import java.util.List; + +import static org.junit.Assert.*; +import static org.mockito.Mockito.*; + +public class NettyHttpClientTest { + + private NettyHttpClient client; + private ChannelFuture cf; + + @Before + public void setUp() throws URISyntaxException { + client = new NettyHttpClient() { + protected void bootstrap() { + // for testing skip the bootstrapping + } + + protected ChannelFuture httpConnect() { + return cf; + } + }; + client.initialize("http://localhost:8088/", "user", "p@ss"); + } + + @Test(expected = URISyntaxException.class) + public void testInitializeBadURL() throws URISyntaxException { + client.initialize(":", "", ""); + } + + @Test(expected = IllegalArgumentException.class) + public void testInitializeInvalidURL() throws URISyntaxException { + client.initialize("ws://localhost:8088/", "", ""); + } + + @Test + public void testBuildURL() { + List queryParams = new ArrayList<>(); + queryParams.add(HttpParam.build("a", "b/c")); + String url = client.buildURL("/channels", queryParams, false); + assertEquals("/ari/channels?api_key=user:p%40ss&a=b%2Fc", url); + } + + private void setupSync(NettyHttpClientHandler h) throws Exception { + cf = mock(ChannelFuture.class); + when(cf.sync()).thenReturn(cf); + Channel ch = mock(Channel.class); + when(ch.closeFuture()).thenReturn(cf); + when(cf.channel()).thenReturn(ch); + ChannelPipeline p = mock(ChannelPipeline.class); + when(p.get("http-handler")).thenReturn(h); + when(ch.pipeline()).thenReturn(p); + } + + @Test + public void testHttpActionSync() throws Exception { + NettyHttpClientHandler h = new NettyHttpClientHandler(); + setupSync(h); + h.responseStatus = HttpResponseStatus.OK; + h.responseBytes = "testing".getBytes(ARIEncoder.ENCODING); + String res = client.httpActionSync("", "GET", new ArrayList<>(), new ArrayList<>(), new ArrayList<>(), new ArrayList<>()); + assertEquals("testing", res); + } + + private EmbeddedChannel createTestChannel() { + EmbeddedChannel channel = new EmbeddedChannel(); + channel.pipeline().addLast("http-codec", new HttpClientCodec()); + channel.pipeline().addLast("aggregator", new HttpObjectAggregator(NettyHttpClient.MAX_HTTP_REQUEST_KB * 1024)); + channel.pipeline().addLast("http-handler", new NettyHttpClientHandler()); + cf = channel.closeFuture(); + ((DefaultChannelPromise) cf).setSuccess(null); + return channel; + } + + private AsteriskPingGetRequest pingSetup(EmbeddedChannel channel) { + channel.writeInbound(new DefaultFullHttpResponse(HttpVersion.HTTP_1_1, HttpResponseStatus.OK, + Unpooled.copiedBuffer("{\"ping\":\"pong\",\"timestamp\":\"2020-01-01T00:00:00.000+0000\",\"asterisk_id\":\"test_asterisk\"}", ARIEncoder.ENCODING))); + AsteriskPingGetRequest_impl_ari_6_0_0 req = new AsteriskPingGetRequest_impl_ari_6_0_0(); + req.setHttpClient(client); + return req; + } + + private void pingValidate(EmbeddedChannel channel, AsteriskPing res) { + String data = ((ByteBuf) channel.readOutbound()).toString(ARIEncoder.ENCODING); + String expecting = "GET /ari/asterisk/ping?api_key=user:p%40ss HTTP/1.1"; + assertTrue("HTTP Request Data does not start with " + expecting, data.startsWith(expecting)); + assertEquals("pong", res.getPing()); + assertEquals("test_asterisk", res.getAsterisk_id()); + } + + @Test + public void testHttpActionSyncPing() throws Exception { + System.out.println("TEST: testHttpActionSyncPing"); + EmbeddedChannel channel = createTestChannel(); + AsteriskPingGetRequest req = pingSetup(channel); + AsteriskPing res = req.execute(); + pingValidate(channel, res); + } + + @Test + public void testHttpActionAsyncPing() { + EmbeddedChannel channel = createTestChannel(); + AsteriskPingGetRequest req = pingSetup(channel); + req.execute(new AriCallback() { + @Override + public void onSuccess(AsteriskPing res) { + pingValidate(channel, res); + } + + @Override + public void onFailure(RestException e) { + fail(e.toString()); + } + }); + } + + @Test + public void testHttpActionException() { + EmbeddedChannel channel = createTestChannel(); + ApplicationsGetRequest_impl_ari_6_0_0 req = new ApplicationsGetRequest_impl_ari_6_0_0("test"); + req.setHttpClient(client); + // when the response is JSON error then return the error from the server + channel.writeInbound(new DefaultFullHttpResponse(HttpVersion.HTTP_1_1, HttpResponseStatus.NOT_FOUND, + Unpooled.copiedBuffer("{\"message\":\"a test error\"}", ARIEncoder.ENCODING))); + boolean exception = false; + try { + req.execute(); + } catch (RestException e) { + assertEquals("a test error", e.getMessage()); + exception = true; + } + assertTrue("Expecting an exception", exception); + // when the response is not JSON and there is an error definition from the API then return API definition + channel.writeInbound(new DefaultFullHttpResponse(HttpVersion.HTTP_1_1, HttpResponseStatus.NOT_FOUND, + Unpooled.copiedBuffer("Not found", ARIEncoder.ENCODING))); + exception = false; + try { + req.execute(); + } catch (RestException e) { + assertEquals("Application does not exist.", e.getMessage()); + exception = true; + } + assertTrue("Expecting an exception", exception); + } + +} diff --git a/src/test/resources/log4j2.properties b/src/test/resources/log4j2.properties new file mode 100644 index 00000000..266d123e --- /dev/null +++ b/src/test/resources/log4j2.properties @@ -0,0 +1,15 @@ +status = error +name = PropertiesConfig +filters = threshold +filter.threshold.type = ThresholdFilter +filter.threshold.level = debug +appenders = console +appender.console.type = Console +appender.console.name = STDOUT +appender.console.layout.type = PatternLayout +appender.console.layout.pattern = %d{yyyy-MM-dd HH:mm:ss} %-5p %c:%L - %m%n +rootLogger.level = debug +rootLogger.appenderRefs = stdout +rootLogger.appenderRef.stdout.ref = STDOUT +logger.netty.name = io.netty +logger.netty.level = error From 9e5e3205bdce4c357bd722f45d3bb2dd61c6f6a5 Mon Sep 17 00:00:00 2001 From: Graham Brown Date: Mon, 17 Feb 2020 23:58:11 +0200 Subject: [PATCH 093/220] move log lib to test --- build.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.gradle b/build.gradle index 09dee46c..6f6f925f 100644 --- a/build.gradle +++ b/build.gradle @@ -32,10 +32,10 @@ dependencies { compile 'io.netty:netty-all:4.1.44.Final' compile 'javax.xml.bind:jaxb-api:2.3.1' compile 'org.slf4j:slf4j-api:1.7.30' - compile 'org.apache.logging.log4j:log4j-slf4j-impl:2.13.0' testCompile 'junit:junit:4.10' testImplementation 'org.mockito:mockito-core:2.28.2' + testImplementation 'org.apache.logging.log4j:log4j-slf4j-impl:2.13.0' } From 7efa57d6a60151cac67e676c41a6acb3e51178e0 Mon Sep 17 00:00:00 2001 From: Graham Brown Date: Tue, 18 Feb 2020 00:00:28 +0200 Subject: [PATCH 094/220] remove body form - nothing used it... change auth to use header, not url param --- src/main/java/ch/loway/oss/ari4java/ARI.java | 2 +- .../oss/ari4java/tools/BaseAriAction.java | 7 +- .../loway/oss/ari4java/tools/HttpClient.java | 6 +- .../ari4java/tools/http/NettyHttpClient.java | 104 +++++++++--------- .../tools/http/NettyHttpClientTest.java | 17 ++- 5 files changed, 68 insertions(+), 68 deletions(-) diff --git a/src/main/java/ch/loway/oss/ari4java/ARI.java b/src/main/java/ch/loway/oss/ari4java/ARI.java index 52544516..4de81710 100644 --- a/src/main/java/ch/loway/oss/ari4java/ARI.java +++ b/src/main/java/ch/loway/oss/ari4java/ARI.java @@ -226,7 +226,7 @@ protected static AriVersion detectAriVersion(String url, String user, String pas try { NettyHttpClient hc = new NettyHttpClient(); hc.initialize(url, user, pass); - String response = hc.httpActionSync("/api-docs/resources.json", "GET", null, null, null, null); + String response = hc.httpActionSync("/api-docs/resources.json", "GET", null, null, null); hc.destroy(); String version = findVersionString(response); return AriVersion.fromVersionString(version); diff --git a/src/main/java/ch/loway/oss/ari4java/tools/BaseAriAction.java b/src/main/java/ch/loway/oss/ari4java/tools/BaseAriAction.java index 9492e632..a7716b90 100644 --- a/src/main/java/ch/loway/oss/ari4java/tools/BaseAriAction.java +++ b/src/main/java/ch/loway/oss/ari4java/tools/BaseAriAction.java @@ -31,7 +31,6 @@ public class BaseAriAction { public static class AriRequest { private List lParamQuery = new ArrayList(); - private List lParamForm = new ArrayList(); private List lParamBody = new ArrayList(); private List lE = new ArrayList(); private String url; @@ -96,7 +95,7 @@ protected synchronized String httpActionSync(AriRequest request) throws RestExce if (httpClient == null) { throw new RestException("HTTP client implementation not set"); } else { - return httpClient.httpActionSync(request.url, request.method, request.lParamQuery, request.lParamForm, request.lParamBody, request.lE); + return httpClient.httpActionSync(request.url, request.method, request.lParamQuery, request.lParamBody, request.lE); } } } @@ -111,7 +110,7 @@ protected synchronized byte[] httpActionSyncAsBytes(AriRequest request) throws R if (httpClient == null) { throw new RestException("HTTP client implementation not set"); } else { - return httpClient.httpActionSyncAsBytes(request.url, request.method, request.lParamQuery, request.lParamForm, request.lParamBody, request.lE); + return httpClient.httpActionSyncAsBytes(request.url, request.method, request.lParamQuery, request.lParamBody, request.lE); } } @@ -145,7 +144,7 @@ private synchronized void httpActionAsync(AriRequest request, AriAsyncHandler } else { try { boolean binary = byte[].class.equals(asyncHandler.getType()); - httpClient.httpActionAsync(request.url, request.method, request.lParamQuery, request.lParamForm, request.lParamBody, request.lE, asyncHandler, binary); + httpClient.httpActionAsync(request.url, request.method, request.lParamQuery, request.lParamBody, request.lE, asyncHandler, binary); } catch (RestException e) { asyncHandler.getCallback().onFailure(e); } diff --git a/src/main/java/ch/loway/oss/ari4java/tools/HttpClient.java b/src/main/java/ch/loway/oss/ari4java/tools/HttpClient.java index 78e3dea8..1ee165b9 100644 --- a/src/main/java/ch/loway/oss/ari4java/tools/HttpClient.java +++ b/src/main/java/ch/loway/oss/ari4java/tools/HttpClient.java @@ -10,9 +10,9 @@ */ public interface HttpClient { - String httpActionSync(String uri, String method, List parametersQuery, List parametersForm, List parametersBody,List errors) throws RestException; + String httpActionSync(String uri, String method, List parametersQuery, List parametersBody,List errors) throws RestException; - byte[] httpActionSyncAsBytes(String uri, String method, List parametersQuery, List parametersForm, List parametersBody,List errors) throws RestException; + byte[] httpActionSyncAsBytes(String uri, String method, List parametersQuery, List parametersBody,List errors) throws RestException; - void httpActionAsync(String uri, String method, List parametersQuery, List parametersForm, List parametersBody, List errors, HttpResponseHandler responseHandler, boolean binary) throws RestException; + void httpActionAsync(String uri, String method, List parametersQuery, List parametersBody, List errors, HttpResponseHandler responseHandler, boolean binary) throws RestException; } diff --git a/src/main/java/ch/loway/oss/ari4java/tools/http/NettyHttpClient.java b/src/main/java/ch/loway/oss/ari4java/tools/http/NettyHttpClient.java index e8eca1ef..2800e764 100644 --- a/src/main/java/ch/loway/oss/ari4java/tools/http/NettyHttpClient.java +++ b/src/main/java/ch/loway/oss/ari4java/tools/http/NettyHttpClient.java @@ -1,19 +1,15 @@ package ch.loway.oss.ari4java.tools.http; -import ch.loway.oss.ari4java.tools.*; import ch.loway.oss.ari4java.tools.HttpResponse; +import ch.loway.oss.ari4java.tools.*; import io.netty.bootstrap.Bootstrap; import io.netty.buffer.ByteBuf; import io.netty.buffer.Unpooled; -import io.netty.channel.Channel; -import io.netty.channel.ChannelFuture; -import io.netty.channel.ChannelFutureListener; -import io.netty.channel.ChannelInitializer; -import io.netty.channel.ChannelPipeline; -import io.netty.channel.EventLoopGroup; +import io.netty.channel.*; import io.netty.channel.nio.NioEventLoopGroup; import io.netty.channel.socket.SocketChannel; import io.netty.channel.socket.nio.NioSocketChannel; +import io.netty.handler.codec.base64.Base64; import io.netty.handler.codec.http.*; import io.netty.handler.codec.http.websocketx.*; import io.netty.handler.timeout.ReadTimeoutHandler; @@ -23,7 +19,6 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; -import java.io.UnsupportedEncodingException; import java.net.URI; import java.net.URISyntaxException; import java.util.Iterator; @@ -53,8 +48,7 @@ public class NettyHttpClient implements HttpClient, WsClient, WsClientAutoReconn private URI baseUri; private EventLoopGroup group; private EventLoopGroup shutDownGroup; - private String username; - private String password; + private String auth; private HttpResponseHandler wsCallback; private String wsEventsUrl; @@ -77,14 +71,13 @@ public NettyHttpClient() { public void initialize(String baseUrl, String username, String password) throws URISyntaxException { logger.debug("initialize url: {}, user: {}", baseUrl, username); - this.username = username; - this.password = password; baseUri = new URI(baseUrl); String protocol = baseUri.getScheme(); if (!"http".equals(protocol)) { logger.warn("Not http, protocol: {}", protocol); throw new IllegalArgumentException("Unsupported protocol: " + protocol); } + this.auth = "Basic " + Base64.encode(Unpooled.copiedBuffer((username + ":" + password), ARIEncoder.ENCODING)).toString(ARIEncoder.ENCODING); bootstrap(); } @@ -164,14 +157,16 @@ protected String buildURL(String path, List parametersQuery, boolean } uriBuilder.append("ari"); uriBuilder.append(path); - uriBuilder.append("?api_key="); - uriBuilder.append(ARIEncoder.encodeUrl(username)); - uriBuilder.append(":"); - uriBuilder.append(ARIEncoder.encodeUrl(password)); + boolean first = true; if (parametersQuery != null) { for (HttpParam hp : parametersQuery) { if (hp.value != null && !hp.value.isEmpty()) { - uriBuilder.append("&"); + if (first) { + uriBuilder.append("?"); + first = false; + } else { + uriBuilder.append("&"); + } uriBuilder.append(hp.name); uriBuilder.append("="); uriBuilder.append(ARIEncoder.encodeUrl(hp.value)); @@ -190,8 +185,10 @@ private WebSocketClientHandshaker getWsHandshake(String path, List pa url = "ws" + url.substring(4); } URI uri = new URI(url); + HttpHeaders headers = new DefaultHttpHeaders(); + headers.set(HttpHeaderNames.AUTHORIZATION, this.auth); return WebSocketClientHandshakerFactory.newHandshaker( - uri, WebSocketVersion.V13, null, false, null); + uri, WebSocketVersion.V13, null, false, headers); } catch (URISyntaxException e) { logger.warn("WSHandshake error, returning null", e); return null; @@ -199,21 +196,19 @@ private WebSocketClientHandshaker getWsHandshake(String path, List pa } // Build the HTTP request based on the given parameters - private HttpRequest buildRequest(String path, String method, List parametersQuery, - List parametersForm, List parametersBody) { + private HttpRequest buildRequest(String path, String method, List parametersQuery, List parametersBody) { String url = buildURL(path, parametersQuery, false); - FullHttpRequest request = new DefaultFullHttpRequest( - HttpVersion.HTTP_1_1, HttpMethod.valueOf(method), url); + FullHttpRequest request = new DefaultFullHttpRequest(HttpVersion.HTTP_1_1, HttpMethod.valueOf(method), url); if (parametersBody != null && !parametersBody.isEmpty()) { String vars = makeJson(parametersBody); ByteBuf bbuf = Unpooled.copiedBuffer(vars, ARIEncoder.ENCODING); - request.headers().add(HttpHeaderNames.CONTENT_TYPE, HttpHeaderValues.APPLICATION_JSON); request.headers().set(HttpHeaderNames.CONTENT_LENGTH, bbuf.readableBytes()); request.content().clear().writeBytes(bbuf); } - request.headers().set(HttpHeaderNames.HOST, "localhost"); + request.headers().set(HttpHeaderNames.HOST, baseUri.getHost()); request.headers().set(HttpHeaderNames.CONNECTION, HttpHeaderValues.CLOSE); + request.headers().set(HttpHeaderNames.AUTHORIZATION, this.auth); return request; } @@ -275,56 +270,53 @@ private RestException makeException(HttpResponseStatus status, String response, // Synchronous HTTP action @Override public String httpActionSync(String uri, String method, List parametersQuery, - List parametersForm, List parametersBody, - List errors) throws RestException { - NettyHttpClientHandler handler = httpActionSyncHandler(uri, method, parametersQuery, parametersForm, parametersBody, errors); + List parametersBody, List errors) throws RestException { + NettyHttpClientHandler handler = httpActionSyncHandler(uri, method, parametersQuery, parametersBody, errors); return handler.getResponseText(); } // Synchronous HTTP action @Override public byte[] httpActionSyncAsBytes(String uri, String method, List parametersQuery, - List parametersForm, List parametersBody, - List errors) throws RestException { - NettyHttpClientHandler handler = httpActionSyncHandler(uri, method, parametersQuery, parametersForm, parametersBody, errors); + List parametersBody, List errors) throws RestException { + NettyHttpClientHandler handler = httpActionSyncHandler(uri, method, parametersQuery, parametersBody, errors); return handler.getResponseBytes(); } private NettyHttpClientHandler httpActionSyncHandler(String uri, String method, List parametersQuery, - List parametersForm, List parametersBody, - List errors) throws RestException { - Channel ch; - try { - logger.debug("Sync Action, uri: {}, method: {}", uri, method); - HttpRequest request = buildRequest(uri, method, parametersQuery, parametersForm, parametersBody); - - ch = httpConnect().sync().channel(); - NettyHttpClientHandler handler = (NettyHttpClientHandler) ch.pipeline().get("http-handler"); - ch.writeAndFlush(request); - ch.closeFuture().sync(); - if (handler.getException() != null) { - throw new RestException(handler.getException()); - } else if (httpResponseOkay(handler.getResponseStatus())) { - return handler; - } else { - throw makeException(handler.getResponseStatus(), handler.getResponseText(), errors); - } - } catch (Exception e) { - if (e instanceof RestException) { - throw (RestException) e; + List parametersBody, List errors) throws RestException { + logger.debug("Sync Action, uri: {}, method: {}", uri, method); + HttpRequest request = buildRequest(uri, method, parametersQuery, parametersBody); + Channel ch = httpConnect().addListener(new ChannelFutureListener() { + @Override + public void operationComplete(ChannelFuture future) throws Exception { + if (future.isSuccess()) { + logger.debug("HTTP connected"); + } else { + logger.warn("HTTP Connection Error - {}", future.cause().getMessage()); + } } - throw new RestException(e); + }).syncUninterruptibly().channel(); + NettyHttpClientHandler handler = (NettyHttpClientHandler) ch.pipeline().get("http-handler"); + ch.writeAndFlush(request); + ch.closeFuture().syncUninterruptibly(); + if (handler.getException() != null) { + throw new RestException(handler.getException()); + } else if (httpResponseOkay(handler.getResponseStatus())) { + return handler; + } else { + throw makeException(handler.getResponseStatus(), handler.getResponseText(), errors); } } // Asynchronous HTTP action, response is passed to HttpResponseHandler @Override - public void httpActionAsync(String uri, String method, List parametersQuery, List parametersForm, + public void httpActionAsync(String uri, String method, List parametersQuery, List parametersBody, final List errors, final HttpResponseHandler responseHandler, boolean binary) { logger.debug("Async Action, uri: {}, method: {}", uri, method); - final HttpRequest request = buildRequest(uri, method, parametersQuery, parametersForm, parametersBody); + final HttpRequest request = buildRequest(uri, method, parametersQuery, parametersBody); // Get future channel ChannelFuture cf = httpConnect(); cf.addListener(new ChannelFutureListener() { @@ -332,6 +324,7 @@ public void httpActionAsync(String uri, String method, List parameter @Override public void operationComplete(ChannelFuture future) throws Exception { if (future.isSuccess()) { + logger.debug("HTTP connected"); Channel ch = future.channel(); responseHandler.onChReadyToWrite(); ch.writeAndFlush(request); @@ -369,7 +362,7 @@ public void operationComplete(ChannelFuture future) throws Exception { @Override public WsClientConnection connect(final HttpResponseHandler callback, final String url, final List lParamQuery) { - WebSocketClientHandshaker handshake = getWsHandshake(url, lParamQuery); + WebSocketClientHandshaker handshake = getWsHandshake(url, lParamQuery); logger.debug("WS Connect uri: {}, ver: {}", handshake.uri().toString(), handshake.version().toString()); this.wsHandler = new NettyWSClientHandler(handshake, callback, this); this.wsCallback = callback; @@ -476,6 +469,7 @@ public void disconnect() throws RestException { if (ch != null) { // NettyWSClientHandler will close the connection when the server // responds to the CloseWebSocketFrame. + logger.debug("Send CloseWebSocketFrame ..."); ch.writeAndFlush(new CloseWebSocketFrame()); // if the server is no longer there then close any way ch.close(); diff --git a/src/test/java/ch/loway/oss/ari4java/tools/http/NettyHttpClientTest.java b/src/test/java/ch/loway/oss/ari4java/tools/http/NettyHttpClientTest.java index f0545e50..2f7354a3 100644 --- a/src/test/java/ch/loway/oss/ari4java/tools/http/NettyHttpClientTest.java +++ b/src/test/java/ch/loway/oss/ari4java/tools/http/NettyHttpClientTest.java @@ -59,13 +59,15 @@ public void testInitializeInvalidURL() throws URISyntaxException { public void testBuildURL() { List queryParams = new ArrayList<>(); queryParams.add(HttpParam.build("a", "b/c")); + queryParams.add(HttpParam.build("d", "e")); String url = client.buildURL("/channels", queryParams, false); - assertEquals("/ari/channels?api_key=user:p%40ss&a=b%2Fc", url); + assertEquals("/ari/channels?a=b%2Fc&d=e", url); } private void setupSync(NettyHttpClientHandler h) throws Exception { cf = mock(ChannelFuture.class); - when(cf.sync()).thenReturn(cf); + when(cf.addListener(any())).thenReturn(cf); + when(cf.syncUninterruptibly()).thenReturn(cf); Channel ch = mock(Channel.class); when(ch.closeFuture()).thenReturn(cf); when(cf.channel()).thenReturn(ch); @@ -80,7 +82,7 @@ public void testHttpActionSync() throws Exception { setupSync(h); h.responseStatus = HttpResponseStatus.OK; h.responseBytes = "testing".getBytes(ARIEncoder.ENCODING); - String res = client.httpActionSync("", "GET", new ArrayList<>(), new ArrayList<>(), new ArrayList<>(), new ArrayList<>()); + String res = client.httpActionSync("", "GET", null, null, null); assertEquals("testing", res); } @@ -104,8 +106,9 @@ private AsteriskPingGetRequest pingSetup(EmbeddedChannel channel) { private void pingValidate(EmbeddedChannel channel, AsteriskPing res) { String data = ((ByteBuf) channel.readOutbound()).toString(ARIEncoder.ENCODING); - String expecting = "GET /ari/asterisk/ping?api_key=user:p%40ss HTTP/1.1"; + String expecting = "GET /ari/asterisk/ping HTTP/1.1"; assertTrue("HTTP Request Data does not start with " + expecting, data.startsWith(expecting)); + assertTrue("Expected HTTP Auth Header", data.contains("authorization: Basic dXNlcjpwQHNz")); assertEquals("pong", res.getPing()); assertEquals("test_asterisk", res.getAsterisk_id()); } @@ -120,13 +123,15 @@ public void testHttpActionSyncPing() throws Exception { } @Test - public void testHttpActionAsyncPing() { + public void testHttpActionAsyncPing() throws InterruptedException { EmbeddedChannel channel = createTestChannel(); AsteriskPingGetRequest req = pingSetup(channel); + final boolean[] callback = {false}; req.execute(new AriCallback() { @Override public void onSuccess(AsteriskPing res) { pingValidate(channel, res); + callback[0] = true; } @Override @@ -134,6 +139,8 @@ public void onFailure(RestException e) { fail(e.toString()); } }); + channel.runPendingTasks(); + assertTrue("No onSuccess Callback", callback[0]); } @Test From bdbb149c7dbb85721d2c8308732ca2e6965887a6 Mon Sep 17 00:00:00 2001 From: Graham Brown Date: Wed, 19 Feb 2020 08:18:39 +0200 Subject: [PATCH 095/220] add logger and check content length --- .../tools/http/NettyHttpClientHandler.java | 23 +++++++++++++++---- 1 file changed, 18 insertions(+), 5 deletions(-) diff --git a/src/main/java/ch/loway/oss/ari4java/tools/http/NettyHttpClientHandler.java b/src/main/java/ch/loway/oss/ari4java/tools/http/NettyHttpClientHandler.java index 3909ef3e..784ce50b 100644 --- a/src/main/java/ch/loway/oss/ari4java/tools/http/NettyHttpClientHandler.java +++ b/src/main/java/ch/loway/oss/ari4java/tools/http/NettyHttpClientHandler.java @@ -1,12 +1,16 @@ package ch.loway.oss.ari4java.tools.http; import ch.loway.oss.ari4java.tools.ARIEncoder; +import ch.loway.oss.ari4java.tools.RestException; import io.netty.channel.ChannelHandler; import io.netty.channel.ChannelHandlerContext; import io.netty.channel.SimpleChannelInboundHandler; import io.netty.handler.codec.http.FullHttpResponse; +import io.netty.handler.codec.http.HttpHeaderNames; import io.netty.handler.codec.http.HttpResponseStatus; import io.netty.handler.timeout.ReadTimeoutException; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; import java.util.Arrays; @@ -24,6 +28,8 @@ public class NettyHttpClientHandler extends SimpleChannelInboundHandler protected HttpResponseStatus responseStatus; private Throwable exception; + private Logger logger = LoggerFactory.getLogger(NettyHttpClientHandler.class); + public void reset() { responseBytes = null; responseStatus = null; @@ -33,14 +39,21 @@ public void reset() { protected void channelRead0(ChannelHandlerContext ctx, Object msg) throws Exception { if (msg instanceof FullHttpResponse) { FullHttpResponse response = (FullHttpResponse) msg; + if (logger.isTraceEnabled()) { + logger.trace("Headers: {}", response.headers().toString()); + } responseBytes = new byte[response.content().readableBytes()]; response.content().readBytes(responseBytes); responseStatus = response.status(); - } else { - // TODO: what? - if (msg != null) { - System.out.println("Unknown object:" + msg); + if (response.headers().get(HttpHeaderNames.CONTENT_LENGTH) != null) { + if (responseBytes.length != response.headers().getInt(HttpHeaderNames.CONTENT_LENGTH)) { + logger.error("HTTP Content-Length: {}, but body read: {}", + response.headers().getInt(HttpHeaderNames.CONTENT_LENGTH), responseBytes.length); + } } + } else if (msg != null) { + logger.warn("Unexpected: {}", msg.toString()); + throw new RestException("Unknown object: " + msg.getClass().getSimpleName() + ", expecting FullHttpResponse"); } } @@ -70,7 +83,7 @@ public Throwable getException() { public void exceptionCaught(ChannelHandlerContext ctx, Throwable cause) throws Exception { this.exception = cause; if (!(cause instanceof ReadTimeoutException)) { - cause.printStackTrace(); + logger.error("Not a read timeout", cause); } ctx.fireExceptionCaught(cause); ctx.close(); From ce17b6db41d045e0b75f9bd285f30b890ee9c392 Mon Sep 17 00:00:00 2001 From: Graham Brown Date: Wed, 19 Feb 2020 08:19:14 +0200 Subject: [PATCH 096/220] allow trace level for ari4java --- src/test/resources/log4j2.properties | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/src/test/resources/log4j2.properties b/src/test/resources/log4j2.properties index 266d123e..6f6701a0 100644 --- a/src/test/resources/log4j2.properties +++ b/src/test/resources/log4j2.properties @@ -2,14 +2,16 @@ status = error name = PropertiesConfig filters = threshold filter.threshold.type = ThresholdFilter -filter.threshold.level = debug +filter.threshold.level = trace appenders = console appender.console.type = Console appender.console.name = STDOUT appender.console.layout.type = PatternLayout -appender.console.layout.pattern = %d{yyyy-MM-dd HH:mm:ss} %-5p %c:%L - %m%n -rootLogger.level = debug +appender.console.layout.pattern = %d{yyyy-MM-dd HH:mm:ss} %-5p [%.15t] %c{1.}:%L - %m%n +rootLogger.level = DEBUG rootLogger.appenderRefs = stdout rootLogger.appenderRef.stdout.ref = STDOUT +logger.ari4java.name = ch.loway.oss.ari4java +logger.ari4java.level = trace logger.netty.name = io.netty logger.netty.level = error From 4e03eeeb44a8a68d30d14d17c7e39e1cf50ba3cd Mon Sep 17 00:00:00 2001 From: Graham Brown Date: Wed, 19 Feb 2020 08:22:42 +0200 Subject: [PATCH 097/220] netty bootstrap options and allow SSL (insecure trust by default) and dont auto reconnect on the 1st connection --- .../ari4java/tools/http/NettyHttpClient.java | 111 ++++++++++++------ 1 file changed, 78 insertions(+), 33 deletions(-) diff --git a/src/main/java/ch/loway/oss/ari4java/tools/http/NettyHttpClient.java b/src/main/java/ch/loway/oss/ari4java/tools/http/NettyHttpClient.java index 2800e764..db9eb9d3 100644 --- a/src/main/java/ch/loway/oss/ari4java/tools/http/NettyHttpClient.java +++ b/src/main/java/ch/loway/oss/ari4java/tools/http/NettyHttpClient.java @@ -4,6 +4,7 @@ import ch.loway.oss.ari4java.tools.*; import io.netty.bootstrap.Bootstrap; import io.netty.buffer.ByteBuf; +import io.netty.buffer.PooledByteBufAllocator; import io.netty.buffer.Unpooled; import io.netty.channel.*; import io.netty.channel.nio.NioEventLoopGroup; @@ -12,6 +13,9 @@ import io.netty.handler.codec.base64.Base64; import io.netty.handler.codec.http.*; import io.netty.handler.codec.http.websocketx.*; +import io.netty.handler.ssl.SslContext; +import io.netty.handler.ssl.SslContextBuilder; +import io.netty.handler.ssl.util.InsecureTrustManagerFactory; import io.netty.handler.timeout.ReadTimeoutHandler; import io.netty.util.concurrent.Future; import io.netty.util.concurrent.GenericFutureListener; @@ -19,6 +23,7 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; +import javax.net.ssl.SSLException; import java.net.URI; import java.net.URISyntaxException; import java.util.Iterator; @@ -54,11 +59,12 @@ public class NettyHttpClient implements HttpClient, WsClient, WsClientAutoReconn private String wsEventsUrl; private List wsEventsParamQuery; private WsClientConnection wsClientConnection; - private int reconnectCount = 0; + private int reconnectCount = -1; private ChannelFuture wsChannelFuture; private ScheduledFuture wsPingTimer = null; private NettyWSClientHandler wsHandler; private ChannelFutureListener wsFuture; + private static SslContext sslContext; private int pongFailureCount = 0; private long lastPong = 0; @@ -73,8 +79,8 @@ public void initialize(String baseUrl, String username, String password) throws logger.debug("initialize url: {}, user: {}", baseUrl, username); baseUri = new URI(baseUrl); String protocol = baseUri.getScheme(); - if (!"http".equals(protocol)) { - logger.warn("Not http, protocol: {}", protocol); + if (!"http".equalsIgnoreCase(protocol) && !"https".equalsIgnoreCase(protocol)) { + logger.warn("Not http(s), protocol: {}", protocol); throw new IllegalArgumentException("Unsupported protocol: " + protocol); } this.auth = "Basic " + Base64.encode(Unpooled.copiedBuffer((username + ":" + password), ARIEncoder.ENCODING)).toString(ARIEncoder.ENCODING); @@ -84,32 +90,60 @@ public void initialize(String baseUrl, String username, String password) throws protected void bootstrap() { // Bootstrap is the factory for HTTP connections logger.debug("Bootstrap with\n" + - " connection timeout: {},\n" + - " read timeout: {},\n" + - " aggregator max-length: {}\n ", - (CONNECTION_TIMEOUT_SEC * 1000), + " connection timeout: {},\n" + + " read timeout: {},\n" + + " aggregator max-length: {}", + CONNECTION_TIMEOUT_SEC, READ_TIMEOUT_SEC, (MAX_HTTP_REQUEST_KB * 1024)); bootStrap = new Bootstrap(); - bootStrap.group(group); - bootStrap.channel(NioSocketChannel.class); + bootstrapOptions(bootStrap); bootStrap.handler(new ChannelInitializer() { - @Override public void initChannel(SocketChannel ch) throws Exception { ChannelPipeline pipeline = ch.pipeline(); - ch.config().setConnectTimeoutMillis(CONNECTION_TIMEOUT_SEC * 1000); + addSSLIfRequired(pipeline); pipeline.addLast("read-timeout", new ReadTimeoutHandler(READ_TIMEOUT_SEC)); pipeline.addLast("http-codec", new HttpClientCodec()); - pipeline.addLast("aggregator", new HttpObjectAggregator(MAX_HTTP_REQUEST_KB * 1024)); + pipeline.addLast("http-aggregator", new HttpObjectAggregator(MAX_HTTP_REQUEST_KB * 1024)); pipeline.addLast("http-handler", new NettyHttpClientHandler()); } }); } + private void bootstrapOptions(Bootstrap bootStrap) { + bootStrap.group(group); + bootStrap.channel(NioSocketChannel.class); + bootStrap.option(ChannelOption.TCP_NODELAY, true); + bootStrap.option(ChannelOption.ALLOCATOR, PooledByteBufAllocator.DEFAULT); + bootStrap.option(ChannelOption.SO_REUSEADDR, false); + bootStrap.option(ChannelOption.CONNECT_TIMEOUT_MILLIS, CONNECTION_TIMEOUT_SEC * 1000); + } + + private void addSSLIfRequired(ChannelPipeline pipeline) throws SSLException { + if ("https".equalsIgnoreCase(baseUri.getScheme())) { + if (sslContext == null) { + sslContext = SslContextBuilder.forClient().trustManager(InsecureTrustManagerFactory.INSTANCE).build(); + } + pipeline.addLast("ssl", sslContext.newHandler(pipeline.channel().alloc())); + } + } + + private int getPort() { + int port = baseUri.getPort(); + if (port == -1) { + if ("http".equalsIgnoreCase(baseUri.getScheme())) { + port = 80; + } else if ("https".equalsIgnoreCase(baseUri.getScheme())) { + port = 443; + } + } + return port; + } + protected ChannelFuture httpConnect() { logger.debug("HTTP Connect uri: {}", baseUri.toString()); - return bootStrap.connect(baseUri.getHost(), baseUri.getPort()); + return bootStrap.connect(baseUri.getHost(), getPort()); } public void destroy() { @@ -118,6 +152,7 @@ public void destroy() { shutDownGroup.schedule(new Runnable() { @Override public void run() { + logger.debug("running shutdown..."); if (wsPingTimer != null) { logger.debug("cancel ping..."); wsPingTimer.cancel(true); @@ -137,6 +172,7 @@ public void run() { group.shutdownGracefully(5, 10, TimeUnit.SECONDS).addListener(new GenericFutureListener() { @Override public void operationComplete(Future future) throws Exception { + logger.debug("group shutdown complete"); shutDownGroup.shutdownGracefully(5, 10, TimeUnit.SECONDS); shutDownGroup = null; } @@ -253,7 +289,7 @@ private String makeBodyFields(List variables) { private RestException makeException(HttpResponseStatus status, String response, List errors) { if (status == null && response == null) { - return new RestException("Client Shutdown"); + return new RestException("Client Shutdown"); } else if (status == null) { return new RestException("Client Shutdown: " + response); } @@ -285,15 +321,17 @@ public byte[] httpActionSyncAsBytes(String uri, String method, List p private NettyHttpClientHandler httpActionSyncHandler(String uri, String method, List parametersQuery, List parametersBody, List errors) throws RestException { - logger.debug("Sync Action, uri: {}, method: {}", uri, method); + logger.debug("Sync Action, uri: {}, method: {}", uri, method); HttpRequest request = buildRequest(uri, method, parametersQuery, parametersBody); Channel ch = httpConnect().addListener(new ChannelFutureListener() { @Override public void operationComplete(ChannelFuture future) throws Exception { if (future.isSuccess()) { logger.debug("HTTP connected"); + } else if (future.cause() != null) { + logger.error("HTTP Connection Error - {}", future.cause().getMessage(), future.cause()); } else { - logger.warn("HTTP Connection Error - {}", future.cause().getMessage()); + logger.error("HTTP Connection Error - Unknown"); } } }).syncUninterruptibly().channel(); @@ -315,7 +353,7 @@ public void httpActionAsync(String uri, String method, List parameter List parametersBody, final List errors, final HttpResponseHandler responseHandler, boolean binary) { - logger.debug("Async Action, uri: {}, method: {}", uri, method); + logger.debug("Async Action, uri: {}, method: {}", uri, method); final HttpRequest request = buildRequest(uri, method, parametersQuery, parametersBody); // Get future channel ChannelFuture cf = httpConnect(); @@ -362,7 +400,7 @@ public void operationComplete(ChannelFuture future) throws Exception { @Override public WsClientConnection connect(final HttpResponseHandler callback, final String url, final List lParamQuery) { - WebSocketClientHandshaker handshake = getWsHandshake(url, lParamQuery); + WebSocketClientHandshaker handshake = getWsHandshake(url, lParamQuery); logger.debug("WS Connect uri: {}, ver: {}", handshake.uri().toString(), handshake.version().toString()); this.wsHandler = new NettyWSClientHandler(handshake, callback, this); this.wsCallback = callback; @@ -370,21 +408,19 @@ public WsClientConnection connect(final HttpResponseHandler callback, final Stri this.wsEventsParamQuery = lParamQuery; Bootstrap wsBootStrap = new Bootstrap(); - wsBootStrap.group(group); - wsBootStrap.channel(NioSocketChannel.class); + bootstrapOptions(wsBootStrap); wsBootStrap.handler(new ChannelInitializer() { - @Override public void initChannel(SocketChannel ch) throws Exception { ChannelPipeline pipeline = ch.pipeline(); - ch.config().setConnectTimeoutMillis(CONNECTION_TIMEOUT_SEC * 1000); + addSSLIfRequired(pipeline); pipeline.addLast("http-codec", new HttpClientCodec()); pipeline.addLast("aggregator", new HttpObjectAggregator(MAX_HTTP_REQUEST_KB * 1024)); pipeline.addLast("ws-handler", wsHandler); } }); - wsChannelFuture = wsBootStrap.connect(baseUri.getHost(), baseUri.getPort()); + wsChannelFuture = wsBootStrap.connect(baseUri.getHost(), getPort()); wsFuture = new ChannelFutureListener() { @Override public void operationComplete(ChannelFuture future) throws Exception { @@ -467,10 +503,13 @@ public void disconnect() throws RestException { wsHandler.setShuttingDown(true); Channel ch = wsChannelFuture.channel(); if (ch != null) { - // NettyWSClientHandler will close the connection when the server - // responds to the CloseWebSocketFrame. - logger.debug("Send CloseWebSocketFrame ..."); - ch.writeAndFlush(new CloseWebSocketFrame()); + // if connected send CloseWebSocketFrame as NettyWSClientHandler will close the connection when the server responds to it + if (reconnectCount == 0) { + logger.debug("Send CloseWebSocketFrame ..."); + // set to -1 so we don't try send another close frame + reconnectCount = -1; + ch.writeAndFlush(new CloseWebSocketFrame()); + } // if the server is no longer there then close any way ch.close(); } @@ -509,12 +548,8 @@ public void reconnectWs(Throwable cause) { wsPingTimer = null; } - if (!autoReconnect || reconnectCount >= 10) { - if (!autoReconnect) { - logger.error("Tried reconnecting 10 times, executing failure callback"); - } else { - logger.warn("autoReconnect set, executing failure callback"); - } + if (!autoReconnect || reconnectCount == -1 || reconnectCount >= 10) { + logger.warn("Cannot connect: {} - executing failure callback", cause.getMessage()); wsCallback.onFailure(cause); return; } @@ -549,10 +584,20 @@ public void pong() { /** * The ability to turn on/off the websocket auto reconnect, defaulted to on + * * @param val auto reconnect */ public static void setAutoReconnect(boolean val) { NettyHttpClient.autoReconnect = val; } + /** + * The ability to provide a custom SSL Contect for + * + * @param sslContext the ssl context + */ + public static void setSslContext(SslContext sslContext) { + NettyHttpClient.sslContext = sslContext; + } + } From 80587cce785c29f7a22ae44816b79caaccdde6f9 Mon Sep 17 00:00:00 2001 From: Graham Brown Date: Thu, 20 Feb 2020 00:02:39 +0200 Subject: [PATCH 098/220] change body params to a map add convenience method for variables & fields that initialises the map --- .../loway/oss/ari4java/codegen/VERSION.java | 2 +- .../ari4java/codegen/models/Operation.java | 46 +++++++++++++------ 2 files changed, 33 insertions(+), 15 deletions(-) diff --git a/codegen/src/main/java/ch/loway/oss/ari4java/codegen/VERSION.java b/codegen/src/main/java/ch/loway/oss/ari4java/codegen/VERSION.java index 5e3650ca..9dbc90d3 100644 --- a/codegen/src/main/java/ch/loway/oss/ari4java/codegen/VERSION.java +++ b/codegen/src/main/java/ch/loway/oss/ari4java/codegen/VERSION.java @@ -6,6 +6,6 @@ * @author lenz */ public class VERSION { - public static final String VER = "0.4"; + public static final String VER = "0.5"; } diff --git a/codegen/src/main/java/ch/loway/oss/ari4java/codegen/models/Operation.java b/codegen/src/main/java/ch/loway/oss/ari4java/codegen/models/Operation.java index ae1790ce..0efe7546 100644 --- a/codegen/src/main/java/ch/loway/oss/ari4java/codegen/models/Operation.java +++ b/codegen/src/main/java/ch/loway/oss/ari4java/codegen/models/Operation.java @@ -53,6 +53,7 @@ public String toString() { "java.util.Date", "java.util.List", "java.util.Map", + "java.util.HashMap", "java.util.ArrayList", "java.net.URLEncoder", "ch.loway.oss.ari4java.ARI", @@ -91,6 +92,16 @@ public String toString() { .append(" return this;\n") .append(" }\n\n"); interfaces.removeSignature(p.getSignature(getInterfaceName())); + if (p.javaType.equals("Map")) { + sb.append(p.getDefinitionForAddToMap(getInterfaceName())).append(" {\n") + .append(" if (this.").append(p.name).append(" == null) {\n") + .append(" this.").append(p.name).append(" = new HashMap<>();\n") + .append(" }\n") + .append(" this.").append(p.name).append(".put(key, value);\n") + .append(" return this;\n") + .append(" }\n\n"); + interfaces.removeSignature(p.getSignatureForAddToMap(getInterfaceName())); + } } // 1. Private build method @@ -107,20 +118,9 @@ public String toString() { if (p.type == ParamType.QUERY) { sb.append(" ariRequest.addParamQuery(HttpParam.build( \"").append(p.name) .append("\", ").append(p.name).append("));\n"); - } else if (p.type == ParamType.FORM) { - sb.append(" ariRequest.addParamForm(HttpParam.build( \"").append(p.name) - .append("\", ").append(p.name).append("));\n"); } else if (p.type == ParamType.BODY) { - if ("Map".equals(p.javaType)) { - sb.append(" ariRequest.addParamBody(HttpParam.build( \"").append(p.name) - .append("\", ").append(p.name).append("));\n"); - } else if ("Object".equals(p.javaType)) { - sb.append(" ariRequest.addParamBody(HttpParam.build(\"").append(p.name) - .append("\", serializeToJson( ").append(p.name).append(")));\n"); - } else { - sb.append(" ariRequest.addParamBody(HttpParam.build( \"").append(p.name) - .append("\", ").append(p.name).append("));\n"); - } + sb.append(" ariRequest.setBodyField(\"").append(p.name) + .append("\", ").append(p.name).append(");\n"); } } for (ErrorResp er : errorCodes) { @@ -286,6 +286,11 @@ public void registerInterfaces(JavaInterface j, String apiVersion) { String javaSignature = p.getSignature(getInterfaceName()); String definition = p.getDefinition(getInterfaceName()); j.iKnow(javaSignature, definition, "", apiVersion); + if (p.javaType.equals("Map")) { + javaSignature = p.getSignatureForAddToMap(getInterfaceName()); + definition = p.getDefinitionForAddToMap(getInterfaceName()); + j.iKnow(javaSignature, definition, "", apiVersion); + } } j.iKnow(getSyncExecuteSignature(), getSyncExecuteDefinition(), "", apiVersion); j.iKnow(getAsyncExecuteSignature(), getAsyncExecuteDefinition(), "", apiVersion); @@ -314,7 +319,20 @@ public String getDefinition(String returnType) { .append("(").append(methodArgumentType).append(" ").append(name).append(")"); return sb.toString(); } - + + public String getSignatureForAddToMap(String returnType) { + StringBuilder sb = new StringBuilder(); + sb.append(returnType).append(" ").append(JavaGen.addPrefixAndCapitalize("add", name)); + sb.append(" ").append(javaType); + return sb.toString(); + } + + public String getDefinitionForAddToMap(String returnType) { + StringBuilder sb = new StringBuilder(); + sb.append(" public ").append(returnType).append(" ").append(JavaGen.addPrefixAndCapitalize("add", name)) + .append("(String key, String value)"); + return sb.toString(); + } } public static enum ParamType { From 0ce36aaae701859ed68545dd60133ac3831597e4 Mon Sep 17 00:00:00 2001 From: Graham Brown Date: Thu, 20 Feb 2020 00:15:26 +0200 Subject: [PATCH 099/220] HTTP Trace Logging Change body handling Add WS Connection events WS Connect timeout 150MB binary response limit (not 16MB for text) --- .../oss/ari4java/tools/AriAsyncHandler.java | 16 ++- .../ari4java/tools/AriConnectionEvent.java | 6 + .../oss/ari4java/tools/AriWSCallback.java | 10 ++ .../oss/ari4java/tools/BaseAriAction.java | 85 ++++++++------ .../loway/oss/ari4java/tools/HttpClient.java | 8 +- .../oss/ari4java/tools/http/HTTPLogger.java | 88 ++++++++++++++ .../ari4java/tools/http/NettyHttpClient.java | 111 +++++++----------- .../tools/http/NettyHttpClientHandler.java | 5 +- .../tools/http/NettyWSClientHandler.java | 49 ++++---- 9 files changed, 242 insertions(+), 136 deletions(-) create mode 100644 src/main/java/ch/loway/oss/ari4java/tools/AriConnectionEvent.java create mode 100644 src/main/java/ch/loway/oss/ari4java/tools/AriWSCallback.java create mode 100644 src/main/java/ch/loway/oss/ari4java/tools/http/HTTPLogger.java diff --git a/src/main/java/ch/loway/oss/ari4java/tools/AriAsyncHandler.java b/src/main/java/ch/loway/oss/ari4java/tools/AriAsyncHandler.java index ba716e6e..1fa049ed 100644 --- a/src/main/java/ch/loway/oss/ari4java/tools/AriAsyncHandler.java +++ b/src/main/java/ch/loway/oss/ari4java/tools/AriAsyncHandler.java @@ -47,6 +47,13 @@ void handleResponse(String json) { @Override public void onChReadyToWrite() { lastResponseTime = System.currentTimeMillis(); + connectionEvent(AriConnectionEvent.WS_CONNECTED); + } + + private void connectionEvent(AriConnectionEvent event) { + if (this.callback instanceof AriWSCallback) { + ((AriWSCallback) this.callback).onConnectionEvent(event); + } } @Override @@ -56,8 +63,7 @@ public void onResponseReceived() { @Override public void onDisconnect() { - // this is from channelInactive on the websocket raise an error so the client can reconnect if need be - this.callback.onFailure(new RestException("Asterisk WS is disconnected. Please retry.")); + connectionEvent(AriConnectionEvent.WS_DISCONNECTED); } @Override @@ -72,7 +78,11 @@ public void onSuccess(byte[] response) { @Override public void onFailure(Throwable e) { - this.callback.onFailure(new RestException(e)); + if (e instanceof RestException) { + this.callback.onFailure((RestException) e); + } else { + this.callback.onFailure(new RestException(e)); + } } @Override diff --git a/src/main/java/ch/loway/oss/ari4java/tools/AriConnectionEvent.java b/src/main/java/ch/loway/oss/ari4java/tools/AriConnectionEvent.java new file mode 100644 index 00000000..50bf5248 --- /dev/null +++ b/src/main/java/ch/loway/oss/ari4java/tools/AriConnectionEvent.java @@ -0,0 +1,6 @@ +package ch.loway.oss.ari4java.tools; + +public enum AriConnectionEvent { + WS_CONNECTED, + WS_DISCONNECTED; +} diff --git a/src/main/java/ch/loway/oss/ari4java/tools/AriWSCallback.java b/src/main/java/ch/loway/oss/ari4java/tools/AriWSCallback.java new file mode 100644 index 00000000..c3360535 --- /dev/null +++ b/src/main/java/ch/loway/oss/ari4java/tools/AriWSCallback.java @@ -0,0 +1,10 @@ +package ch.loway.oss.ari4java.tools; + +/** + * Callback interface for WS ARI operations + * + * @param The type of result returned in callback + */ +public interface AriWSCallback extends AriCallback { + void onConnectionEvent(AriConnectionEvent event); +} diff --git a/src/main/java/ch/loway/oss/ari4java/tools/BaseAriAction.java b/src/main/java/ch/loway/oss/ari4java/tools/BaseAriAction.java index a7716b90..64bbffef 100644 --- a/src/main/java/ch/loway/oss/ari4java/tools/BaseAriAction.java +++ b/src/main/java/ch/loway/oss/ari4java/tools/BaseAriAction.java @@ -10,18 +10,18 @@ import com.fasterxml.jackson.databind.ObjectMapper; import com.fasterxml.jackson.databind.deser.DeserializationProblemHandler; import com.fasterxml.jackson.databind.exc.UnrecognizedPropertyException; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; import java.io.IOException; -import java.util.ArrayList; -import java.util.Collection; -import java.util.List; +import java.util.*; /** * Base functionality for ARI actions - * + *

* Provides asynchronous and synchronous methods for forwarding requests to the * HTTP or WebSocket server. - * + *

* Provides serialize/deserialize interface for JSON encoded objects * * @author lenz @@ -29,10 +29,12 @@ */ public class BaseAriAction { + private static Logger logger = LoggerFactory.getLogger(BaseAriAction.class); + public static class AriRequest { - private List lParamQuery = new ArrayList(); - private List lParamBody = new ArrayList(); - private List lE = new ArrayList(); + private List queryParams = new ArrayList<>(); + private Map bodyFields = new HashMap<>(); + private List lE = new ArrayList<>(); private String url; private String method; private boolean wsUpgrade = false; @@ -43,15 +45,24 @@ public AriRequest(String url, String method) { } public void addParamQuery(HttpParam param) { - lParamQuery.add(param); - } - - public void addParamBody(HttpParam param) { - lParamBody.add(param); + queryParams.add(param); } - public void addParamBody(List params) { - lParamBody.addAll(params); + public void setBodyField(String field, Object value) { + if ("fields".equals(field) && value instanceof Map) { + ArrayList> list = new ArrayList<>(); + Iterator> entryIterator = ((Map) value).entrySet().iterator(); + while (entryIterator.hasNext()) { + Map.Entry item = entryIterator.next(); + Map f = new HashMap<>(); + f.put("attribute", item.getKey()); + f.put("value", item.getValue()); + list.add(f); + } + bodyFields.put(field, list); + } else { + bodyFields.put(field, value); + } } public void addErrorResponse(HttpResponse res) { @@ -74,6 +85,7 @@ public void setWsUpgrade(boolean wsUpgrade) { /** * Exception safe way to encode url parts + * * @param urlPart the part to encode * @return a encoded string * @see ARIEncoder#ENCODING @@ -84,6 +96,7 @@ protected String encodeUrlPart(String urlPart) { /** * Initiate synchronous HTTP interaction with server + * * @param request the request object * @return Response from server * @throws RestException when error @@ -95,13 +108,14 @@ protected synchronized String httpActionSync(AriRequest request) throws RestExce if (httpClient == null) { throw new RestException("HTTP client implementation not set"); } else { - return httpClient.httpActionSync(request.url, request.method, request.lParamQuery, request.lParamBody, request.lE); + return httpClient.httpActionSync(request.url, request.method, request.queryParams, serializeToJson(request.bodyFields), request.lE); } } } /** * Initiate synchronous HTTP interaction with server + * * @param request the request object * @return Response from server * @throws RestException when error @@ -110,14 +124,14 @@ protected synchronized byte[] httpActionSyncAsBytes(AriRequest request) throws R if (httpClient == null) { throw new RestException("HTTP client implementation not set"); } else { - return httpClient.httpActionSyncAsBytes(request.url, request.method, request.lParamQuery, request.lParamBody, request.lE); + return httpClient.httpActionSyncAsBytes(request.url, request.method, request.queryParams, serializeToJson(request.bodyFields), request.lE); } } /** * Initiate asynchronous HTTP or WebSocket interaction with server * - * @param request the request object + * @param request the request object * @param asyncHandler the handler */ private synchronized void httpActionAsync(AriRequest request, AriAsyncHandler asyncHandler) { @@ -134,7 +148,7 @@ private synchronized void httpActionAsync(AriRequest request, AriAsyncHandler return; } try { - wsConnection = wsClient.connect(asyncHandler, request.url, request.lParamQuery); + wsConnection = wsClient.connect(asyncHandler, request.url, request.queryParams); liveActionList.add(this); } catch (RestException e) { asyncHandler.getCallback().onFailure(e); @@ -144,7 +158,7 @@ private synchronized void httpActionAsync(AriRequest request, AriAsyncHandler } else { try { boolean binary = byte[].class.equals(asyncHandler.getType()); - httpClient.httpActionAsync(request.url, request.method, request.lParamQuery, request.lParamBody, request.lE, asyncHandler, binary); + httpClient.httpActionAsync(request.url, request.method, request.queryParams, serializeToJson(request.bodyFields), request.lE, asyncHandler, binary); } catch (RestException e) { asyncHandler.getCallback().onFailure(e); } @@ -172,6 +186,12 @@ protected void httpActionAsync( * @return String */ public static String serializeToJson(Object obj) { + if (obj == null) { + return null; + } + if (obj instanceof Map && ((Map) obj).size() == 0) { + return null; + } try { return mapper.writeValueAsString(obj); } catch (IOException e) { @@ -182,14 +202,13 @@ public static String serializeToJson(Object obj) { /** * Deserialize a type * - * @param json the json string + * @param json the json string * @param klazz the class to deserialize to - * @param the class to deserialize to + * @param the class to deserialize to * @return Deserialized type * @throws RestException when fail to deserialize */ public static T deserializeJson(String json, Class klazz) throws RestException { - try { return mapper.readValue(json, klazz); } catch (IOException e) { @@ -200,38 +219,35 @@ public static T deserializeJson(String json, Class klazz) throws RestExce /** * Deserialize a list * - * @param json the json string + * @param json the json string * @param klazzType the class to deserialize to - * @param the class to deserialize to + * @param the class to deserialize to * @return The deserialized list * @throws RestException when fail to deserialize */ public static T deserializeJson(String json, TypeReference klazzType) throws RestException { - try { return mapper.readValue(json, klazzType); } catch (IOException e) { throw new RestException("Decoding JSON list: " + e.getMessage(), e); } - } /** * Deserialize an object as a list of interface. Class erasure in Java plain * sucks, I tell ya. - * + *

* In theory we should be safe given the condition that A extends C. I hope * at least. This is bug #17 - Avoid Lists of ? extends something * - * @param The abstract type for members of the list. - * @param The concrete type for members of the list. - * @param json Data in + * @param The abstract type for members of the list. + * @param The concrete type for members of the list. + * @param json Data in * @param refConcreteType The reference concrete type, should be a List<C> * @return a list of A's * @throws RestException when fail to deserialize */ public static List deserializeJsonAsAbstractList(String json, TypeReference> refConcreteType) throws RestException { - try { List lC = mapper.readValue(json, refConcreteType); List lA = (List) lC; @@ -239,13 +255,12 @@ public static List deserializeJsonAsAbstractList(String json } catch (IOException e) { throw new RestException("Decoding JSON list: " + e.getMessage(), e); } - } /** * Deserialize the event. * - * @param json the json string + * @param json the json string * @param klazz the class to deserialize to * @return The event deserialized. * @throws RestException when fail to deserialize @@ -309,7 +324,7 @@ public static void setObjectMapperLessStrict() { public boolean handleUnknownProperty(DeserializationContext ctxt, JsonParser p, JsonDeserializer deserializer, Object beanOrClass, String propertyName) throws IOException { Collection propIds = (deserializer == null) ? null : deserializer.getKnownPropertyNames(); UnrecognizedPropertyException e = UnrecognizedPropertyException.from(p, beanOrClass, propertyName, propIds); - // TODO log a warning, once there is a logger... + logger.warn(e.toString()); return e.toString().length() > 0; } }); diff --git a/src/main/java/ch/loway/oss/ari4java/tools/HttpClient.java b/src/main/java/ch/loway/oss/ari4java/tools/HttpClient.java index 1ee165b9..d051a722 100644 --- a/src/main/java/ch/loway/oss/ari4java/tools/HttpClient.java +++ b/src/main/java/ch/loway/oss/ari4java/tools/HttpClient.java @@ -6,13 +6,13 @@ * Interface to pluggable HTTP client implementation * * @author mwalton - * */ public interface HttpClient { - String httpActionSync(String uri, String method, List parametersQuery, List parametersBody,List errors) throws RestException; + String httpActionSync(String uri, String method, List parametersQuery, String body, List errors) throws RestException; + + byte[] httpActionSyncAsBytes(String uri, String method, List parametersQuery, String body, List errors) throws RestException; - byte[] httpActionSyncAsBytes(String uri, String method, List parametersQuery, List parametersBody,List errors) throws RestException; + void httpActionAsync(String uri, String method, List parametersQuery, String body, List errors, HttpResponseHandler responseHandler, boolean binary) throws RestException; - void httpActionAsync(String uri, String method, List parametersQuery, List parametersBody, List errors, HttpResponseHandler responseHandler, boolean binary) throws RestException; } diff --git a/src/main/java/ch/loway/oss/ari4java/tools/http/HTTPLogger.java b/src/main/java/ch/loway/oss/ari4java/tools/http/HTTPLogger.java new file mode 100644 index 00000000..1acc9a57 --- /dev/null +++ b/src/main/java/ch/loway/oss/ari4java/tools/http/HTTPLogger.java @@ -0,0 +1,88 @@ +package ch.loway.oss.ari4java.tools.http; + +import ch.loway.oss.ari4java.tools.ARIEncoder; +import io.netty.handler.codec.http.FullHttpRequest; +import io.netty.handler.codec.http.FullHttpResponse; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +import java.util.Arrays; +import java.util.Map; + +public class HTTPLogger { + + private static Logger logger = LoggerFactory.getLogger(HTTPLogger.class); + + private static final int maxLen = 1000; + + public static void traceRequest(FullHttpRequest request, String body) { + if (logger.isTraceEnabled()) { + StringBuilder data = new StringBuilder(); + data.append(request.method()); + data.append(" "); + data.append(request.uri()); + data.append(" "); + data.append(request.protocolVersion()); + data.append("\n"); + for (Map.Entry e: request.headers()) { + data.append(e.getKey()); + data.append(": "); + // replace authorization password + if ("authorization".equalsIgnoreCase(e.getKey())) { + data.append("*****"); + } else { + data.append(e.getValue()); + } + data.append("\n"); + } + if (body != null) { + data.append("\n"); + data.append(body); + } + logger.trace("HTTP Request:\n{}", data.toString().trim()); + } + } + + public static void traceResponse(FullHttpResponse response, byte[] responseBytes) { + if (logger.isTraceEnabled()) { + StringBuilder data = new StringBuilder(); + data.append(response.protocolVersion()); + data.append(" "); + data.append(response.status().toString()); + data.append("\n"); + for (Map.Entry e: response.headers()) { + data.append(e.getKey()); + data.append(": "); + data.append(e.getValue()); + data.append("\n"); + } + if (responseBytes != null) { + data.append("\n"); + if ("audio/wav".equals(response.headers().get("Content-Type"))) { + data.append("[binary data...]"); + } else { + int len = responseBytes.length; + if (len > maxLen) { + len = maxLen; + } + data.append(new String(Arrays.copyOf(responseBytes, len), ARIEncoder.ENCODING)); + if (responseBytes.length > maxLen) { + data.append("[truncated...]"); + } + } + } + logger.trace("HTTP Response:\n{}", data.toString().trim()); + } + } + + public static void traceWebSocketFrame(String text) { + if (logger.isTraceEnabled()) { + if (text.length() > maxLen) { + logger.trace("WS Frame:\n{}", text.substring(0, maxLen)); + } else { + logger.trace("WS Frame:\n{}", text); + } + } + } + +} diff --git a/src/main/java/ch/loway/oss/ari4java/tools/http/NettyHttpClient.java b/src/main/java/ch/loway/oss/ari4java/tools/http/NettyHttpClient.java index db9eb9d3..5b4d514a 100644 --- a/src/main/java/ch/loway/oss/ari4java/tools/http/NettyHttpClient.java +++ b/src/main/java/ch/loway/oss/ari4java/tools/http/NettyHttpClient.java @@ -26,9 +26,7 @@ import javax.net.ssl.SSLException; import java.net.URI; import java.net.URISyntaxException; -import java.util.Iterator; import java.util.List; -import java.util.Objects; import java.util.concurrent.TimeUnit; /** @@ -45,7 +43,8 @@ public class NettyHttpClient implements HttpClient, WsClient, WsClientAutoReconn public static final int CONNECTION_TIMEOUT_SEC = 10; public static final int READ_TIMEOUT_SEC = 30; - public static final int MAX_HTTP_REQUEST_KB = 16 * 1024; + public static final int MAX_HTTP_REQUEST = 16 * 1024 * 1024; // 16MB + public static final int MAX_HTTP_BIN_REQUEST = 150 * 1024 * 1024; // 150MB private Logger logger = LoggerFactory.getLogger(NettyHttpClient.class); @@ -95,7 +94,7 @@ protected void bootstrap() { " aggregator max-length: {}", CONNECTION_TIMEOUT_SEC, READ_TIMEOUT_SEC, - (MAX_HTTP_REQUEST_KB * 1024)); + MAX_HTTP_REQUEST); bootStrap = new Bootstrap(); bootstrapOptions(bootStrap); bootStrap.handler(new ChannelInitializer() { @@ -105,7 +104,7 @@ public void initChannel(SocketChannel ch) throws Exception { addSSLIfRequired(pipeline); pipeline.addLast("read-timeout", new ReadTimeoutHandler(READ_TIMEOUT_SEC)); pipeline.addLast("http-codec", new HttpClientCodec()); - pipeline.addLast("http-aggregator", new HttpObjectAggregator(MAX_HTTP_REQUEST_KB * 1024)); + pipeline.addLast("http-aggregator", new HttpObjectAggregator(MAX_HTTP_REQUEST)); pipeline.addLast("http-handler", new NettyHttpClientHandler()); } }); @@ -232,12 +231,11 @@ private WebSocketClientHandshaker getWsHandshake(String path, List pa } // Build the HTTP request based on the given parameters - private HttpRequest buildRequest(String path, String method, List parametersQuery, List parametersBody) { + private HttpRequest buildRequest(String path, String method, List parametersQuery, String body) { String url = buildURL(path, parametersQuery, false); FullHttpRequest request = new DefaultFullHttpRequest(HttpVersion.HTTP_1_1, HttpMethod.valueOf(method), url); - if (parametersBody != null && !parametersBody.isEmpty()) { - String vars = makeJson(parametersBody); - ByteBuf bbuf = Unpooled.copiedBuffer(vars, ARIEncoder.ENCODING); + if (body != null && !body.isEmpty()) { + ByteBuf bbuf = Unpooled.copiedBuffer(body, ARIEncoder.ENCODING); request.headers().add(HttpHeaderNames.CONTENT_TYPE, HttpHeaderValues.APPLICATION_JSON); request.headers().set(HttpHeaderNames.CONTENT_LENGTH, bbuf.readableBytes()); request.content().clear().writeBytes(bbuf); @@ -245,47 +243,10 @@ private HttpRequest buildRequest(String path, String method, List par request.headers().set(HttpHeaderNames.HOST, baseUri.getHost()); request.headers().set(HttpHeaderNames.CONNECTION, HttpHeaderValues.CLOSE); request.headers().set(HttpHeaderNames.AUTHORIZATION, this.auth); + HTTPLogger.traceRequest(request, body); return request; } - private String makeJson(List variables) { - String key = variables.remove(0).value; - return Objects.equals(key, "fields") ? makeBodyFields(variables) : makeBodyVariables(variables); - } - - private String makeBodyVariables(List variables) { - StringBuilder varBuilder = new StringBuilder(); - varBuilder.append("{").append("\"variables\": {"); - Iterator entryIterator = variables.iterator(); - while (entryIterator.hasNext()) { - HttpParam param = entryIterator.next(); - varBuilder.append("\"").append(param.name).append("\"").append(": ").append("\"").append(param.value).append("\""); - if (entryIterator.hasNext()) { - varBuilder.append(","); - } - } - varBuilder.append("}}"); - return varBuilder.toString(); - } - - private String makeBodyFields(List variables) { - StringBuilder varBuilder = new StringBuilder(); - varBuilder.append("{").append("\"fields\": ["); - Iterator entryIterator = variables.iterator(); - while (entryIterator.hasNext()) { - HttpParam param = entryIterator.next(); - varBuilder.append("{") - .append("\"").append("attribute").append("\"").append(": ").append("\"").append(param.name).append("\",") - .append("\"").append("value").append("\"").append(": ").append("\"").append(param.value).append("\"") - .append("}"); - if (entryIterator.hasNext()) { - varBuilder.append(","); - } - } - varBuilder.append("]}"); - return varBuilder.toString(); - } - private RestException makeException(HttpResponseStatus status, String response, List errors) { if (status == null && response == null) { @@ -306,28 +267,38 @@ private RestException makeException(HttpResponseStatus status, String response, // Synchronous HTTP action @Override public String httpActionSync(String uri, String method, List parametersQuery, - List parametersBody, List errors) throws RestException { - NettyHttpClientHandler handler = httpActionSyncHandler(uri, method, parametersQuery, parametersBody, errors); + String body, List errors) throws RestException { + NettyHttpClientHandler handler = httpActionSyncHandler(uri, method, parametersQuery, body, errors); return handler.getResponseText(); } // Synchronous HTTP action @Override public byte[] httpActionSyncAsBytes(String uri, String method, List parametersQuery, - List parametersBody, List errors) throws RestException { - NettyHttpClientHandler handler = httpActionSyncHandler(uri, method, parametersQuery, parametersBody, errors); + String body, List errors) throws RestException { + NettyHttpClientHandler handler = httpActionSyncHandler(uri, method, parametersQuery, body, errors, true); return handler.getResponseBytes(); } private NettyHttpClientHandler httpActionSyncHandler(String uri, String method, List parametersQuery, - List parametersBody, List errors) throws RestException { + String body, List errors) throws RestException { + return httpActionSyncHandler(uri, method, parametersQuery, body, errors, false); + } + + private NettyHttpClientHandler httpActionSyncHandler(String uri, String method, List parametersQuery, + String body, List errors, boolean binary) throws RestException { logger.debug("Sync Action, uri: {}, method: {}", uri, method); - HttpRequest request = buildRequest(uri, method, parametersQuery, parametersBody); + HttpRequest request = buildRequest(uri, method, parametersQuery, body); Channel ch = httpConnect().addListener(new ChannelFutureListener() { @Override public void operationComplete(ChannelFuture future) throws Exception { if (future.isSuccess()) { logger.debug("HTTP connected"); + if (binary) { + logger.debug("Is Binary, replace http-aggregator ..."); + future.channel().pipeline().replace( + "http-aggregator", "http-aggregator", new HttpObjectAggregator(MAX_HTTP_BIN_REQUEST)); + } } else if (future.cause() != null) { logger.error("HTTP Connection Error - {}", future.cause().getMessage(), future.cause()); } else { @@ -350,11 +321,11 @@ public void operationComplete(ChannelFuture future) throws Exception { // Asynchronous HTTP action, response is passed to HttpResponseHandler @Override public void httpActionAsync(String uri, String method, List parametersQuery, - List parametersBody, final List errors, + String body, final List errors, final HttpResponseHandler responseHandler, boolean binary) { logger.debug("Async Action, uri: {}, method: {}", uri, method); - final HttpRequest request = buildRequest(uri, method, parametersQuery, parametersBody); + final HttpRequest request = buildRequest(uri, method, parametersQuery, body); // Get future channel ChannelFuture cf = httpConnect(); cf.addListener(new ChannelFutureListener() { @@ -364,18 +335,22 @@ public void operationComplete(ChannelFuture future) throws Exception { if (future.isSuccess()) { logger.debug("HTTP connected"); Channel ch = future.channel(); + if (binary) { + logger.debug("Is Binary, replace http-aggregator ..."); + future.channel().pipeline().replace( + "http-aggregator", "http-aggregator", new HttpObjectAggregator(MAX_HTTP_BIN_REQUEST)); + } responseHandler.onChReadyToWrite(); ch.writeAndFlush(request); ch.closeFuture().addListener(new ChannelFutureListener() { - @Override public void operationComplete(ChannelFuture future) throws Exception { responseHandler.onResponseReceived(); if (future.isSuccess()) { NettyHttpClientHandler handler = (NettyHttpClientHandler) future.channel().pipeline().get("http-handler"); - HttpResponseStatus rStatus = handler.getResponseStatus(); - - if (httpResponseOkay(rStatus)) { + if (handler.getException() != null) { + responseHandler.onFailure(new RestException(handler.getException())); + } else if (httpResponseOkay(handler.getResponseStatus())) { if (binary) { responseHandler.onSuccess(handler.getResponseBytes()); } else { @@ -415,11 +390,16 @@ public void initChannel(SocketChannel ch) throws Exception { ChannelPipeline pipeline = ch.pipeline(); addSSLIfRequired(pipeline); pipeline.addLast("http-codec", new HttpClientCodec()); - pipeline.addLast("aggregator", new HttpObjectAggregator(MAX_HTTP_REQUEST_KB * 1024)); pipeline.addLast("ws-handler", wsHandler); } }); + final ScheduledFuture connectionTimeout = group.schedule(new Runnable() { + @Override + public void run() { + reconnectWs(new RestException("WS Connect Timeout")); + } + }, CONNECTION_TIMEOUT_SEC, TimeUnit.SECONDS); wsChannelFuture = wsBootStrap.connect(baseUri.getHost(), getPort()); wsFuture = new ChannelFutureListener() { @Override @@ -430,9 +410,11 @@ public void operationComplete(ChannelFuture future) throws Exception { public void operationComplete(ChannelFuture future) throws Exception { if (future.isSuccess()) { logger.debug("WS connected..."); - callback.onChReadyToWrite(); - // reset the reconnect counter on successful connect + // cancel the connection timeout, start a ping and reset reconnect counter + connectionTimeout.cancel(true); + startPing(); reconnectCount = 0; + callback.onChReadyToWrite(); } else { reconnectWs(future.cause()); } @@ -445,9 +427,6 @@ public void operationComplete(ChannelFuture future) throws Exception { }; wsChannelFuture.addListener(wsFuture); - // start a ws ping schedule - startPing(); - // Provide disconnection handle to client return createWsClientConnection(); } @@ -482,7 +461,7 @@ public void run() { } if (noPong) { pongFailureCount++; - if (pongFailureCount > 1) { + if (pongFailureCount >= 1) { logger.warn("No Ping response from server, reconnect..."); reconnectWs(new RestException("No Ping response from server")); } diff --git a/src/main/java/ch/loway/oss/ari4java/tools/http/NettyHttpClientHandler.java b/src/main/java/ch/loway/oss/ari4java/tools/http/NettyHttpClientHandler.java index 784ce50b..a37e3799 100644 --- a/src/main/java/ch/loway/oss/ari4java/tools/http/NettyHttpClientHandler.java +++ b/src/main/java/ch/loway/oss/ari4java/tools/http/NettyHttpClientHandler.java @@ -19,7 +19,6 @@ * HTTP server. * * @author mwalton - * */ @ChannelHandler.Sharable @@ -39,12 +38,10 @@ public void reset() { protected void channelRead0(ChannelHandlerContext ctx, Object msg) throws Exception { if (msg instanceof FullHttpResponse) { FullHttpResponse response = (FullHttpResponse) msg; - if (logger.isTraceEnabled()) { - logger.trace("Headers: {}", response.headers().toString()); - } responseBytes = new byte[response.content().readableBytes()]; response.content().readBytes(responseBytes); responseStatus = response.status(); + HTTPLogger.traceResponse(response, responseBytes); if (response.headers().get(HttpHeaderNames.CONTENT_LENGTH) != null) { if (responseBytes.length != response.headers().getInt(HttpHeaderNames.CONTENT_LENGTH)) { logger.error("HTTP Content-Length: {}, but body read: {}", diff --git a/src/main/java/ch/loway/oss/ari4java/tools/http/NettyWSClientHandler.java b/src/main/java/ch/loway/oss/ari4java/tools/http/NettyWSClientHandler.java index 0c62f95c..a35a1995 100644 --- a/src/main/java/ch/loway/oss/ari4java/tools/http/NettyWSClientHandler.java +++ b/src/main/java/ch/loway/oss/ari4java/tools/http/NettyWSClientHandler.java @@ -61,41 +61,43 @@ public void channelInactive(ChannelHandlerContext ctx) throws Exception { if (!shuttingDown) { if (this.wsClient != null) { logger.debug("WS channel inactive - {}", ctx.toString()); - wsClient.reconnectWs(new RestException("WS channel inactive")); - } else { wsCallback.onDisconnect(); + wsClient.reconnectWs(new RestException("WS channel inactive")); } } } @Override protected void channelRead0(ChannelHandlerContext ctx, Object msg) throws Exception { + logger.debug("Received Message - {}", msg.getClass().getSimpleName()); Channel ch = ctx.channel(); - - if (!handshaker.isHandshakeComplete()) { - handshaker.finishHandshake(ch, (FullHttpResponse) msg); - handshakeFuture.setSuccess(); - return; - } - + if (msg instanceof FullHttpResponse) { FullHttpResponse response = (FullHttpResponse) msg; - String error = "Unexpected FullHttpResponse (getStatus=" + response.getStatus() + ", content=" + response.content().toString(ARIEncoder.ENCODING) + ')'; - System.err.println(error); + responseBytes = new byte[response.content().readableBytes()]; + response.content().readBytes(responseBytes); + HTTPLogger.traceResponse(response, responseBytes); + if (!handshaker.isHandshakeComplete()) { + logger.debug("Finish WS Handshake..."); + handshaker.finishHandshake(ch, response); + handshakeFuture.setSuccess(); + return; + } + String error = "Unexpected FullHttpResponse (getStatus=" + response.status().toString() + ", content=" + getResponseText() + ')'; + logger.error(error); throw new Exception(error); } // call this so we can set the last received time wsCallback.onResponseReceived(); - - WebSocketFrame frame = (WebSocketFrame) msg; - logger.debug("Received WebSocketFrame - {}", frame.getClass().getSimpleName()); - - if (frame instanceof TextWebSocketFrame) { - TextWebSocketFrame textFrame = (TextWebSocketFrame) frame; - responseBytes = textFrame.text().getBytes(ARIEncoder.ENCODING); - wsCallback.onSuccess(textFrame.text()); - } else if (frame instanceof CloseWebSocketFrame) { + + if (msg instanceof TextWebSocketFrame) { + TextWebSocketFrame textFrame = (TextWebSocketFrame) msg; + String text = textFrame.content().toString(ARIEncoder.ENCODING); + HTTPLogger.traceWebSocketFrame(text); + responseBytes = text.getBytes(ARIEncoder.ENCODING); + wsCallback.onSuccess(text); + } else if (msg instanceof CloseWebSocketFrame) { ch.close(); if (!shuttingDown) { if (this.wsClient != null) { @@ -104,19 +106,18 @@ protected void channelRead0(ChannelHandlerContext ctx, Object msg) throws Except wsCallback.onDisconnect(); } } - } else if (frame instanceof PongWebSocketFrame) { + } else if (msg instanceof PongWebSocketFrame) { wsClient.pong(); } else { - logger.warn("Unhandled WebSocketFrame: {}", frame.getClass().toString()); + logger.warn("Unhandled WebSocketFrame: {}", msg.getClass().toString()); } - } @Override public void exceptionCaught(ChannelHandlerContext ctx, Throwable cause) throws Exception { if (!shuttingDown) return; - cause.printStackTrace(); + logger.error("exceptionCaught: {}", cause.getMessage(), cause); if (!handshakeFuture.isDone()) { handshakeFuture.setFailure(cause); } From 37ad238c88854b1e0a53bb52d5d88511f5241219 Mon Sep 17 00:00:00 2001 From: Graham Brown Date: Thu, 20 Feb 2020 00:17:19 +0200 Subject: [PATCH 100/220] test cleanup --- .../ari4java/generated/ActonBridgesTest.java | 2 +- .../DeserializeToListOfInterfaceTest.java | 3 +- .../oss/ari4java/sandbox/sample/Weasels.java | 85 +++++++++---------- .../http/NettyHttpClientHandlerTest.java | 2 +- .../tools/http/NettyHttpClientTest.java | 68 +++++++++++++-- 5 files changed, 108 insertions(+), 52 deletions(-) diff --git a/src/test/java/ch/loway/oss/ari4java/generated/ActonBridgesTest.java b/src/test/java/ch/loway/oss/ari4java/generated/ActonBridgesTest.java index 190c3b1d..c71a5f6b 100644 --- a/src/test/java/ch/loway/oss/ari4java/generated/ActonBridgesTest.java +++ b/src/test/java/ch/loway/oss/ari4java/generated/ActonBridgesTest.java @@ -75,7 +75,7 @@ public void receiveWrongMessage() throws RestException { boolean exceptionRaised = false; try { - Playback pb = aa.play("aaa", "sss").execute(); + aa.play("aaa", "sss").execute(); } catch (RestException e) { exceptionRaised = true; } diff --git a/src/test/java/ch/loway/oss/ari4java/generated/DeserializeToListOfInterfaceTest.java b/src/test/java/ch/loway/oss/ari4java/generated/DeserializeToListOfInterfaceTest.java index 12345aab..20115292 100644 --- a/src/test/java/ch/loway/oss/ari4java/generated/DeserializeToListOfInterfaceTest.java +++ b/src/test/java/ch/loway/oss/ari4java/generated/DeserializeToListOfInterfaceTest.java @@ -51,8 +51,7 @@ public void testDeserializeAbstract() throws RestException { assertEquals("El 2 B", "y2", l.get(1).getB()); } - - public static String STR_TUPLE = "[\n" + + public static final String STR_TUPLE = "[\n" + " {\"a\": \"x1\", \"b\": \"x2\" },\n" + " {\"a\": \"y1\", \"b\": \"y2\" }\n" + "]"; diff --git a/src/test/java/ch/loway/oss/ari4java/sandbox/sample/Weasels.java b/src/test/java/ch/loway/oss/ari4java/sandbox/sample/Weasels.java index 4cb443df..5da04a75 100644 --- a/src/test/java/ch/loway/oss/ari4java/sandbox/sample/Weasels.java +++ b/src/test/java/ch/loway/oss/ari4java/sandbox/sample/Weasels.java @@ -2,73 +2,67 @@ import ch.loway.oss.ari4java.ARI; import ch.loway.oss.ari4java.AriVersion; -import ch.loway.oss.ari4java.generated.models.*; -import ch.loway.oss.ari4java.tools.AriCallback; +import ch.loway.oss.ari4java.generated.models.AsteriskInfo; +import ch.loway.oss.ari4java.generated.models.Message; +import ch.loway.oss.ari4java.generated.models.PlaybackFinished; +import ch.loway.oss.ari4java.generated.models.StasisStart; +import ch.loway.oss.ari4java.tools.AriConnectionEvent; +import ch.loway.oss.ari4java.tools.AriWSCallback; import ch.loway.oss.ari4java.tools.RestException; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; -import java.time.LocalDateTime; import java.util.concurrent.ExecutorService; import java.util.concurrent.Executors; import java.util.concurrent.TimeUnit; public class Weasels { -// private static final String ARI_URL = "http://192.168.99.100:18088/"; -// private static final String ARI_USER = "ari4java"; -// private static final String ARI_PASS = "yothere"; - private static final String ARI_URL = "http://asterisk1.local:8088/"; -// private static final String ARI_URL = "http://localhost:8088/"; - private static final String ARI_USER = "asterisk"; - private static final String ARI_PASS = "asterisk"; private static final String ARI_APP = "weasels-app"; private ARI ari; + private Logger logger = LoggerFactory.getLogger(Weasels.class); public static void main(String[] args) { - new Weasels().start(); + if (args.length != 3) { + System.out.println("Expecting 3 arguments: url user pass"); + System.exit(1); + } + new Weasels().start(args[0], args[1], args[2]); } - private void start() { - log("THE START"); - boolean connected = connect(); + private void start(String url, String user, String pass) { + logger.info("THE START"); + boolean connected = connect(url, user, pass); if (connected) { try { weasels(); } catch (Throwable t) { - log("Error: " + t.getMessage()); - t.printStackTrace(); + logger.error("Error: {}", t.getMessage(), t); } finally { - log("ARI cleanup"); + logger.info("ARI cleanup"); ari.cleanup(); } } - log("THE END"); - } - - private void log(String message) { - String time = LocalDateTime.now().toString(); - String thread = Thread.currentThread().getName(); - System.out.println(time + " - [" + thread + "] - " + message); + logger.info("THE END"); } - private boolean connect() { + private boolean connect(String url, String user, String pass) { try { -// ari = ARI.build(ARI_URL, ARI_APP, ARI_USER, ARI_PASS, AriVersion.IM_FEELING_LUCKY); - ari = ARI.build(ARI_URL, ARI_APP, ARI_USER, ARI_PASS, AriVersion.ARI_5_0_0); - log("Detect Server ARI Version: " + ari.getVersion().version()); -// AsteriskInfo info = ari.asterisk().getInfo().execute(); -// log("System up since " + info.getStatus().getStartup_time()); + ari = ARI.build(url, ARI_APP, user, pass, AriVersion.IM_FEELING_LUCKY); + logger.info("ARI Version: {}", ari.getVersion().version()); + AsteriskInfo info = ari.asterisk().getInfo().execute(); + logger.info("AsteriskInfo up since {}", info.getStatus().getStartup_time()); return true; } catch (Throwable t) { - log("Error: " + t.getMessage()); - t.printStackTrace(); + logger.error("Error: {}", t.getMessage(), t); } return false; } private void weasels() throws InterruptedException, RestException { final ExecutorService threadPool = Executors.newFixedThreadPool(10); - ari.events().eventWebsocket(ARI_APP).execute(new AriCallback() { + ari.events().eventWebsocket(ARI_APP).execute(new AriWSCallback() { @Override public void onSuccess(Message message) { threadPool.execute(() -> { @@ -78,40 +72,45 @@ public void onSuccess(Message message) { } else if (message instanceof PlaybackFinished) { handlePlaybackFinished((PlaybackFinished) message); } else { - log("Unhandled Event - " + message.getType()); + logger.info("Unhandled Event - {}", message.getType()); } } catch (Throwable e) { - log("Error: " + e.getMessage()); - e.printStackTrace(); + logger.error("Error: {}", e.getMessage(), e); } }); } + @Override public void onFailure(RestException e) { - log("Error: " + e.getMessage()); - e.printStackTrace(); + logger.error("Error: {}", e.getMessage(), e); + threadPool.shutdown(); + } + + @Override + public void onConnectionEvent(AriConnectionEvent event) { + logger.debug(event.name()); } }); // usually we would not terminate and run indefinitely // waiting for 5 minutes before shutting down... - threadPool.awaitTermination(2, TimeUnit.MINUTES); + threadPool.awaitTermination(5, TimeUnit.MINUTES); } private void handleStart(StasisStart start) throws RestException { - log("Stasis Start Channel: " + start.getChannel().getId()); + logger.info("Stasis Start Channel: {}", start.getChannel().getId()); ARI.sleep(300); // a slight pause before we start the playback ... ari.channels().play(start.getChannel().getId(), "sound:weasels-eaten-phonesys").execute(); } private void handlePlaybackFinished(PlaybackFinished playback) throws RestException { - log("PlaybackFinished - " + playback.getPlayback().getTarget_uri()); + logger.info("PlaybackFinished - {}", playback.getPlayback().getTarget_uri()); if (playback.getPlayback().getTarget_uri().indexOf("channel:") == 0) { String chanId = playback.getPlayback().getTarget_uri().split(":")[1]; - log("Hangup Channel: " + chanId); + logger.info("Hangup Channel: {}", chanId); ARI.sleep(300); // a slight pause before we hangup ... ari.channels().hangup(chanId).execute(); } else { - log("Error: Cannot handle URI - " + playback.getPlayback().getTarget_uri()); + logger.error("Cannot handle URI - {}", playback.getPlayback().getTarget_uri()); } } diff --git a/src/test/java/ch/loway/oss/ari4java/tools/http/NettyHttpClientHandlerTest.java b/src/test/java/ch/loway/oss/ari4java/tools/http/NettyHttpClientHandlerTest.java index 6e2cfb2f..d30a9507 100644 --- a/src/test/java/ch/loway/oss/ari4java/tools/http/NettyHttpClientHandlerTest.java +++ b/src/test/java/ch/loway/oss/ari4java/tools/http/NettyHttpClientHandlerTest.java @@ -15,7 +15,7 @@ public void testResponse() { NettyHttpClientHandler h = new NettyHttpClientHandler(); EmbeddedChannel channel = new EmbeddedChannel(); channel.pipeline().addLast("http-codec", new HttpClientCodec()); - channel.pipeline().addLast("aggregator", new HttpObjectAggregator(NettyHttpClient.MAX_HTTP_REQUEST_KB * 1024)); + channel.pipeline().addLast("http-aggregator", new HttpObjectAggregator(NettyHttpClient.MAX_HTTP_REQUEST)); channel.pipeline().addLast("http-handler", h); channel.writeInbound(new DefaultFullHttpResponse(HttpVersion.HTTP_1_1, HttpResponseStatus.OK, Unpooled.copiedBuffer("test", ARIEncoder.ENCODING))); assertEquals("test", h.getResponseText()); diff --git a/src/test/java/ch/loway/oss/ari4java/tools/http/NettyHttpClientTest.java b/src/test/java/ch/loway/oss/ari4java/tools/http/NettyHttpClientTest.java index 2f7354a3..3d901913 100644 --- a/src/test/java/ch/loway/oss/ari4java/tools/http/NettyHttpClientTest.java +++ b/src/test/java/ch/loway/oss/ari4java/tools/http/NettyHttpClientTest.java @@ -1,8 +1,7 @@ package ch.loway.oss.ari4java.tools.http; import ch.loway.oss.ari4java.generated.actions.requests.AsteriskPingGetRequest; -import ch.loway.oss.ari4java.generated.ari_6_0_0.actions.requests.ApplicationsGetRequest_impl_ari_6_0_0; -import ch.loway.oss.ari4java.generated.ari_6_0_0.actions.requests.AsteriskPingGetRequest_impl_ari_6_0_0; +import ch.loway.oss.ari4java.generated.ari_6_0_0.actions.requests.*; import ch.loway.oss.ari4java.generated.models.AsteriskPing; import ch.loway.oss.ari4java.tools.ARIEncoder; import ch.loway.oss.ari4java.tools.AriCallback; @@ -21,7 +20,9 @@ import java.net.URISyntaxException; import java.util.ArrayList; +import java.util.HashMap; import java.util.List; +import java.util.Map; import static org.junit.Assert.*; import static org.mockito.Mockito.*; @@ -89,7 +90,7 @@ public void testHttpActionSync() throws Exception { private EmbeddedChannel createTestChannel() { EmbeddedChannel channel = new EmbeddedChannel(); channel.pipeline().addLast("http-codec", new HttpClientCodec()); - channel.pipeline().addLast("aggregator", new HttpObjectAggregator(NettyHttpClient.MAX_HTTP_REQUEST_KB * 1024)); + channel.pipeline().addLast("http-aggregator", new HttpObjectAggregator(NettyHttpClient.MAX_HTTP_REQUEST)); channel.pipeline().addLast("http-handler", new NettyHttpClientHandler()); cf = channel.closeFuture(); ((DefaultChannelPromise) cf).setSuccess(null); @@ -98,7 +99,9 @@ private EmbeddedChannel createTestChannel() { private AsteriskPingGetRequest pingSetup(EmbeddedChannel channel) { channel.writeInbound(new DefaultFullHttpResponse(HttpVersion.HTTP_1_1, HttpResponseStatus.OK, - Unpooled.copiedBuffer("{\"ping\":\"pong\",\"timestamp\":\"2020-01-01T00:00:00.000+0000\",\"asterisk_id\":\"test_asterisk\"}", ARIEncoder.ENCODING))); + Unpooled.copiedBuffer( + "{\"ping\":\"pong\",\"timestamp\":\"2020-01-01T00:00:00.000+0000\",\"asterisk_id\":\"test_asterisk\"}", + ARIEncoder.ENCODING))); AsteriskPingGetRequest_impl_ari_6_0_0 req = new AsteriskPingGetRequest_impl_ari_6_0_0(); req.setHttpClient(client); return req; @@ -115,7 +118,6 @@ private void pingValidate(EmbeddedChannel channel, AsteriskPing res) { @Test public void testHttpActionSyncPing() throws Exception { - System.out.println("TEST: testHttpActionSyncPing"); EmbeddedChannel channel = createTestChannel(); AsteriskPingGetRequest req = pingSetup(channel); AsteriskPing res = req.execute(); @@ -172,4 +174,60 @@ public void testHttpActionException() { assertTrue("Expecting an exception", exception); } + @Test + public void testBodyFieldSerialisation() throws RestException { + EmbeddedChannel channel = createTestChannel(); + channel.writeInbound(new DefaultFullHttpResponse( + HttpVersion.HTTP_1_1, HttpResponseStatus.OK, Unpooled.copiedBuffer("[]", ARIEncoder.ENCODING))); + AsteriskUpdateObjectPutRequest_impl_ari_6_0_0 req = new AsteriskUpdateObjectPutRequest_impl_ari_6_0_0( + "cc", "ot", "id"); + req.setHttpClient(client); + req.addFields("key1", "val1").addFields("key2", "val2").execute(); + validateBody(channel, "fields"); + } + + @Test + public void testBodyVariableSerialisation() throws RestException { + EmbeddedChannel channel = createTestChannel(); + channel.writeInbound(new DefaultFullHttpResponse( + HttpVersion.HTTP_1_1, HttpResponseStatus.OK, Unpooled.copiedBuffer("{}", ARIEncoder.ENCODING))); + + EndpointsSendMessagePutRequest_impl_ari_6_0_0 req = new EndpointsSendMessagePutRequest_impl_ari_6_0_0("to", "from"); + req.setHttpClient(client); + req.addVariables("key1", "val1").addVariables("key2", "val2").execute(); + validateBody(channel, "variables"); + } + + @Test + public void testBodyObjectSerialisation() throws RestException { + EmbeddedChannel channel = createTestChannel(); + channel.writeInbound(new DefaultFullHttpResponse( + HttpVersion.HTTP_1_1, HttpResponseStatus.OK, Unpooled.copiedBuffer("{}", ARIEncoder.ENCODING))); + + Map map = new HashMap<>(); + map.put("key1", "val1"); + map.put("key2", "val2"); + ApplicationsFilterPutRequest_impl_ari_6_0_0 req = new ApplicationsFilterPutRequest_impl_ari_6_0_0("app"); + req.setHttpClient(client); + req.setFilter(map).execute(); + validateBody(channel, "filter"); + } + + private void validateBody(EmbeddedChannel channel, String field) { + String expected = "{\"" + field + "\":{\"key1\":\"val1\",\"key2\":\"val2\"}}"; + if ("fields".equals(field)) { + expected = "{\"fields\":[{\"attribute\":\"key1\",\"value\":\"val1\"},{\"attribute\":\"key2\",\"value\":\"val2\"}]}"; + } + StringBuffer buffer = new StringBuffer(); + ByteBuf data = channel.readOutbound(); + while (data != null) { + if (data.readableBytes() > 0) { + buffer.append(data.toString(ARIEncoder.ENCODING)); + } + data = channel.readOutbound(); + } + String[] lines = buffer.toString().split("\n"); + assertEquals(expected, lines[lines.length - 1].trim()); + } + } From 98d3d2ec9f5abd1a2669457a5ba935c106716581 Mon Sep 17 00:00:00 2001 From: Graham Brown Date: Thu, 20 Feb 2020 00:39:56 +0200 Subject: [PATCH 101/220] 0.9.0 --- NEWVERSION.md | 3 +-- README.md | 1 + build.gradle | 5 +---- docs/USAGE.md | 6 +++++- 4 files changed, 8 insertions(+), 7 deletions(-) diff --git a/NEWVERSION.md b/NEWVERSION.md index 81d0c894..cb43f9a2 100644 --- a/NEWVERSION.md +++ b/NEWVERSION.md @@ -13,7 +13,6 @@ When a release is ready: export BINTRAY_USER= export BINTRAY_KEY={bintray.txt} - ./gradlew clean test jar - ./gradlew bintrayUpload + ./gradlew clean :codegen:runCodegen buildProps build bintrayUpload diff --git a/README.md b/README.md index d235b09d..8cf63e05 100644 --- a/README.md +++ b/README.md @@ -60,6 +60,7 @@ You'll find the resulting jar file under the `build/libs` folder. ## Status +* 20.02.20 - Rel 0.9.0. Added SLF4J Logger, Connection timeouts, Body JSON using Jackson, WebSocket Connection Events, Support SSL, 150MB limit for `ActionRecordings.getStoredFile()`, * 20.01.25 - Rel 0.8.1. Java 8 Compatibility, better exception messages * 19.12.23 - Rel 0.8.0. :exclamation: **!! BREAKING CHANGES !!** API Actions signatures only contain manditory params and returns a Request object which follows the builder/factory pattern * 19.12.22 - Rel 0.7.0. Treat `fields` as `fields` not `variables` in body parameters; fix `ActionRecordings.getStoredFile()` for `byte[]` & add `ARI.mailboxes()` diff --git a/build.gradle b/build.gradle index 6f6f925f..9a7afd00 100644 --- a/build.gradle +++ b/build.gradle @@ -6,7 +6,7 @@ plugins { } group = 'ch.loway.oss.ari4java' -version = '0.8.1' +version = '0.9.0' java { sourceCompatibility = JavaVersion.VERSION_1_8 @@ -39,9 +39,6 @@ dependencies { } -//compileJava.dependsOn ':codegen:runCodegen' -//compileJava.dependsOn 'buildProps' - def build_number = 'x' if (System.getenv('BUILD_NUMBER') != null) { build_number = System.getenv('BUILD_NUMBER') diff --git a/docs/USAGE.md b/docs/USAGE.md index 4f145cd9..a5dbe140 100644 --- a/docs/USAGE.md +++ b/docs/USAGE.md @@ -43,7 +43,7 @@ An ARI application is pretty much useless unless you subscribe to and handle the so you need to create the websocket and choose to subscribe to all events or only events for actions made by your app. This must use the asynchronous execution as the events are asynchronous. ```java -AriCallback callback = new AriCallback() { +AriCallback callback = new AriWSCallback() { @Override public void onSuccess(Message message) { // code to handle the events ... @@ -52,6 +52,10 @@ AriCallback callback = new AriCallback() { public void onFailure(RestException e) { e.printStackTrace(); } + @Override + public void onConnectionEvent(AriConnectionEvent event) { + // FYI + } }; ari.events().eventWebsocket("app-name").execute(callback); // or subscribe to all events From 328848db6f9ab8341fa73c7553fe8d6ee442b072 Mon Sep 17 00:00:00 2001 From: Graham Brown Date: Thu, 20 Feb 2020 17:23:33 +0200 Subject: [PATCH 102/220] adding action to build project --- .github/workflows/gradle.yml | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) create mode 100644 .github/workflows/gradle.yml diff --git a/.github/workflows/gradle.yml b/.github/workflows/gradle.yml new file mode 100644 index 00000000..41df54c6 --- /dev/null +++ b/.github/workflows/gradle.yml @@ -0,0 +1,26 @@ +name: ARI4Java Build + +on: + push: + branches: + - master + - gb-wip + pull_request: + branches: + - master + +jobs: + build: + + runs-on: ubuntu-18.04 + + steps: + - uses: actions/checkout@v2 + - name: Set up JDK 1.8 + uses: actions/setup-java@v1 + with: + java-version: 1.8 + - name: Grant execute permission for gradlew + run: chmod +x gradlew + - name: Build with Gradle + run: ./gradlew :codegen:runCodegen build From 3974fabd14de5ac686ecd1bb09e495bf1b7cffc3 Mon Sep 17 00:00:00 2001 From: Graham Brown Date: Thu, 20 Feb 2020 17:48:41 +0200 Subject: [PATCH 103/220] archive reports --- .github/workflows/gradle.yml | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/.github/workflows/gradle.yml b/.github/workflows/gradle.yml index 41df54c6..f3522d31 100644 --- a/.github/workflows/gradle.yml +++ b/.github/workflows/gradle.yml @@ -24,3 +24,9 @@ jobs: run: chmod +x gradlew - name: Build with Gradle run: ./gradlew :codegen:runCodegen build + + - name: Archive Reports + uses: actions/upload-artifact@v1 + with: + name: report-folder + path: build/reports From e898e8bae15bbf5e5e8562233fcad95231985b62 Mon Sep 17 00:00:00 2001 From: Graham Brown Date: Thu, 20 Feb 2020 18:11:05 +0200 Subject: [PATCH 104/220] remove empty line --- .github/workflows/gradle.yml | 2 -- 1 file changed, 2 deletions(-) diff --git a/.github/workflows/gradle.yml b/.github/workflows/gradle.yml index f3522d31..0aa80a24 100644 --- a/.github/workflows/gradle.yml +++ b/.github/workflows/gradle.yml @@ -11,7 +11,6 @@ on: jobs: build: - runs-on: ubuntu-18.04 steps: @@ -24,7 +23,6 @@ jobs: run: chmod +x gradlew - name: Build with Gradle run: ./gradlew :codegen:runCodegen build - - name: Archive Reports uses: actions/upload-artifact@v1 with: From 118ac08d9de2856c6909b236274720a47349fd9c Mon Sep 17 00:00:00 2001 From: Graham Brown Date: Thu, 20 Feb 2020 20:58:53 +0200 Subject: [PATCH 105/220] add automated release build and publish --- .github/workflows/gradle.yml | 18 +++++++++++++++++- 1 file changed, 17 insertions(+), 1 deletion(-) diff --git a/.github/workflows/gradle.yml b/.github/workflows/gradle.yml index 0aa80a24..ebb6ee8e 100644 --- a/.github/workflows/gradle.yml +++ b/.github/workflows/gradle.yml @@ -8,6 +8,8 @@ on: pull_request: branches: - master + release: + types: [published] jobs: build: @@ -15,6 +17,12 @@ jobs: steps: - uses: actions/checkout@v2 + - uses: actions/cache@v1 + with: + path: ~/.gradle/caches + key: ${{ runner.os }}-gradle-${{ hashFiles('**/*.gradle') }} + restore-keys: | + ${{ runner.os }}-gradle- - name: Set up JDK 1.8 uses: actions/setup-java@v1 with: @@ -22,7 +30,15 @@ jobs: - name: Grant execute permission for gradlew run: chmod +x gradlew - name: Build with Gradle - run: ./gradlew :codegen:runCodegen build + run: ./gradlew clean :codegen:runCodegen build + if: github.event_name != 'release' + - name: Build & Publish with Gradle + env: + BUILD_NUMBER: ${{ GITHUB_RUN_NUMBER }} + BINTRAY_USER: ${{ secrets.BINTRAY_USER }} + BINTRAY_KEY: ${{ secrets.BINTRAY_KEY }} + run: ./gradlew clean :codegen:runCodegen buildProps build bintrayUpload + if: github.event_name == 'release' - name: Archive Reports uses: actions/upload-artifact@v1 with: From 17a30a4ff7d0f6f5fb312f89db67c242555f0b53 Mon Sep 17 00:00:00 2001 From: Graham Brown Date: Thu, 20 Feb 2020 21:03:45 +0200 Subject: [PATCH 106/220] fix env name --- .github/workflows/gradle.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/gradle.yml b/.github/workflows/gradle.yml index ebb6ee8e..7d26468c 100644 --- a/.github/workflows/gradle.yml +++ b/.github/workflows/gradle.yml @@ -34,7 +34,7 @@ jobs: if: github.event_name != 'release' - name: Build & Publish with Gradle env: - BUILD_NUMBER: ${{ GITHUB_RUN_NUMBER }} + BUILD_NUMBER: ${{ env.GITHUB_RUN_NUMBER }} BINTRAY_USER: ${{ secrets.BINTRAY_USER }} BINTRAY_KEY: ${{ secrets.BINTRAY_KEY }} run: ./gradlew clean :codegen:runCodegen buildProps build bintrayUpload From 99cbce50cc0b1edc553b280b48e89e67cbb61850 Mon Sep 17 00:00:00 2001 From: Graham Brown Date: Fri, 21 Feb 2020 23:47:50 +0200 Subject: [PATCH 107/220] Remove versions from README and migrate to CHANGELOG.md --- CHANGELOG.md | 128 +++++++++++++++++++++++++++++++++++++++++++++++++++ README.md | 92 ++++++------------------------------ 2 files changed, 141 insertions(+), 79 deletions(-) create mode 100644 CHANGELOG.md diff --git a/CHANGELOG.md b/CHANGELOG.md new file mode 100644 index 00000000..2687c6a2 --- /dev/null +++ b/CHANGELOG.md @@ -0,0 +1,128 @@ +# ARI4Java Changelog + +## [Unreleased] +[Unreleased]: https://github.com/l3nz/ari4java/compare/REL-0.9.0...HEAD + +## [0.9.0] - 2020-02-20 +[0.9.0]: https://github.com/l3nz/ari4java/compare/REL-0.8.1...REL-0.9.0 +### Added +- SLF4J Logger +- Connection timeouts #85 #86 +- Body JSON using Jackson #135 +- WebSocket Connection Events #103 +- Support SSL, 150MB limit for `ActionRecordings.getStoredFile()` + +## [0.8.1] - 2020-01-25 +[0.8.1]: https://github.com/l3nz/ari4java/compare/REL-0.8.0...REL-0.8.1 +### Changed +- Exception messages #6 +### Fixed +- Java 8 Compatibility #142 + +## [0.8.0] - 2019-12-23 +[0.8.0]: https://github.com/l3nz/ari4java/compare/REL-070...REL-0.8.0 +### :exclamation: **!! BREAKING CHANGES !!** +- API Actions signatures only contain manditory params and returns a Request object which follows the builder/factory pattern + +## [0.7.0] - 2019-12-22 +[0.7.0]: https://github.com/l3nz/ari4java/compare/REL-061...REL-070 +### Fixed +- Treat `fields` as `fields` not `variables` in body parameters +- fix `ActionRecordings.getStoredFile()` for `byte[]` & add `ARI.mailboxes()` + +## [0.6.1] - 2019-11-07 +[0.6.1]: https://github.com/l3nz/ari4java/compare/REL-060...REL-061 +### Fixed +- Codegen bug fixes for object + +## [0.6.0] - 2019-10-15 +[0.6.0]: https://github.com/l3nz/ari4java/compare/REL-051...REL-060 +### Change +- Project restructure +- Script to include all past and present versions of ARI + +## [0.5.1] - 2019-10-15 +[0.5.1]: https://github.com/l3nz/ari4java/compare/REL-050...REL-051 +### Fixes +- Various fixes (Goodbye Naama!) + +## [0.5.0] - 2019-01-07 +[0.5.0]: https://github.com/l3nz/ari4java/compare/REL-045...REL-050 +### Added +- Support java 9 (#108) +- code generation from gradle(#110) +- event interface inheritance(#106) +### Fixed +- unsubscribing from application correctly(#59) + +## [0.4.5] - 2017-12-19 +[0.4.5]: https://github.com/l3nz/ari4java/compare/REL-044...REL-045 +### Added +- ARI 3.0.0 (#78) + +## [0.4.4] - 2017-02-04 +[0.4.4]: https://github.com/l3nz/ari4java/compare/REL-043...REL-044 +### Added +- ARI 2.0.0 (#62) +### Changed +- quicker deserialization (#63) + +## [0.4.3] - 2016-11-30 +[0.4.3]: https://github.com/l3nz/ari4java/compare/REL-042...REL-043 +### Fixed +- Graham's AutoReconnect patch - #60 + +## [0.4.2] - 2016-10-21 +[0.4.2]: https://github.com/l3nz/ari4java/compare/REL-041...REL-042 +### Fixing + - URL Prefix regression #57 + - Findbugs string concatenation #55 + +## [0.4.1] - 2016-10-17 +[0.4.1]: https://github.com/l3nz/ari4java/compare/REL-040...REL-041 +### Added +- Graham's AutoReconnect patch #52 + +## [0.4.0] - 2016-08-31 +[0.4.0]: https://github.com/l3nz/ari4java/compare/REL-034...REL-040 +### Added +- ARI 1.10.0 (Asterisk 14) +### Fixed +- some bugs + +## [0.3.4] - 2016-01-30 +[0.3.4]: https://github.com/l3nz/ari4java/compare/REL-033...REL-034 +### Added +- ARI 1.9.0 + +## [0.3.3] - 2015-09-23 +[0.3.3]: https://github.com/l3nz/ari4java/compare/REL-022...REL-032 +### Added +- 201 statuses (bug #33) + +## 0.3.2 - 2015-09-23 +### Added +- ARI 1.8.0 (bug #32) + +## 0.3.1 - 2015-03-20 +### Fixed +- Disconnected ARI WS now throws an exception (bug #28) + +## 0.3.0 - 2015-03-11 +### Added +- ARI 1.7.0 (bug #28) + +## [0.2.2] - 2014-11-09 +[0.2.2]: https://github.com/l3nz/ari4java/compare/v011...REL-022 +### Added +- ARI bindings for 1.5.0 as coming from the official Asterisk 13.0.0 release +- Added a minimal application under tests/ class ch.loway.oss.ari4java.sandbox.sample to be used as a style laboratory + +## [0.1.1] - 2013-12-31 +[0.1.1]: https://github.com/l3nz/ari4java/commits/v011 +### Added +- Netty.io based HTTP and WebSocket implementation, factory, sync and async methods +- Imported the definitions for Asterisk 12.0.0 - ARI 1.0.0 +- All objects are deserializable right out of JSON automatically +- Auto-generates all classes and compiles them +- Gradle build script diff --git a/README.md b/README.md index 8cf63e05..1dd9bba4 100644 --- a/README.md +++ b/README.md @@ -1,8 +1,9 @@ -# ari4java +# ARI4Java The Asterisk REST Interface (ARI) bindings for Java. [![Download](https://api.bintray.com/packages/ari4java/maven/ari4java/images/download.png)](https://bintray.com/ari4java/maven/ari4java/_latestVersion) +[![Build](https://github.com/l3nz/ari4java/workflows/ARI4Java%20Build/badge.svg)](https://github.com/l3nz/ari4java/workflows/ARI4Java%20Build/badge.svg) ## Description @@ -14,98 +15,31 @@ In order to support different versions of the API, what we do is we maintain con for each version of the API, but we also have general interfaces that are used to work with objects across different versions. -## Using the library +### Getting started -If you use Gradle (or any tool using Maven dependencies) you can simply declare the lib as: +Simply add the library and an SLF4J implementation to your package config, here is an example using Gradle ``` repositories { maven { url "https://dl.bintray.com/ari4java/maven" } - mavenCentral() jcenter() } dependencies { - compile 'ch.loway.oss.ari4java:ari4java:0.8.1' + compile 'ch.loway.oss.ari4java:ari4java:+' + compile 'org.apache.logging.log4j:log4j-slf4j-impl:2.13.0' } ``` -This will download the package and all required dependencies. *The 1st repo declaration is temporary as we sort out moving from a private repo to an organization* -### Getting started? - -- Start from the ["Hello ARI World"](https://github.com/l3nz/ari4java/blob/master/docs/HELLOWORLD.md) tutorial at -- Read our [FAQs](https://github.com/l3nz/ari4java/blob/master/docs/FAQ.md) -- Check out more detailed [USAGE](https://github.com/l3nz/ari4java/blob/master/docs/USAGE.md) -- Want to run a ready-made Asterisk image? This will make your life easier when developing! get - yours from https://github.com/l3nz/whaleware/tree/master/examples/asterisk-load-test - -## Building -The code here is partially hand-written and partially generated out of Swagger definitions. - -### Folders: -- "src/main/java" contains Java code to be released (manually and automatically generated). -- "src/main/generated" Are all automatically generated classes, they should not be hand-edited. -- "src/test/java/" contains test cases for "src/main/java" -- "codegen/" is a gradle sub-project that generates code in "src/main/generated" - -### Build and test -The easiest way to build is simply using the Gradle Wrapper script supplied. -``` -./gradlew clean build -``` -This will generate, compile, test and package the current version. -You'll find the resulting jar file under the `build/libs` folder. - -## Status - -* 20.02.20 - Rel 0.9.0. Added SLF4J Logger, Connection timeouts, Body JSON using Jackson, WebSocket Connection Events, Support SSL, 150MB limit for `ActionRecordings.getStoredFile()`, -* 20.01.25 - Rel 0.8.1. Java 8 Compatibility, better exception messages -* 19.12.23 - Rel 0.8.0. :exclamation: **!! BREAKING CHANGES !!** API Actions signatures only contain manditory params and returns a Request object which follows the builder/factory pattern -* 19.12.22 - Rel 0.7.0. Treat `fields` as `fields` not `variables` in body parameters; fix `ActionRecordings.getStoredFile()` for `byte[]` & add `ARI.mailboxes()` -* 19.11.07 - Rel 0.6.1. Codegen bug fixes for object and rebuild with latest ARI api docs -* 19.10.13 - Rel 0.6.0. Project restructure and include all past and present versions of ARI -* 19.04.03 - Rel 0.5.1. Goodbye Naama! -* 19.01.07 - Support java 9 (#108), code generation from gradle(#110), fixed unsubscribing from application correctly(#59), added event interface inheritance(#106) rel 0.5.0 -* 17.12.19 - Added support for ARI 3.0.0 (#78) -* 17.02.04 - Added support for ARI 2.0.0 (#62) and quicker deserialization (#63) -* 16.11.30 - Fixes on Graham's AutoReconnect patch - #60 - rel 0.4.3 -* 16.10.21 - Fixing #55 and #57 - rel 0.4.2 -* 16.10.17 - Graham's AutoReconnect patch #52 - rel 0.4.1 -* 16.08.31 - Added support for ARI 1.10.0 (Asterisk 14) and some bug fixes - release 0.4.0 -* 16.01.30 - Added support for ARI 1.9.0 - release 0.3.4 -* 15.09.23 - Fixed issue with 201 statuses (bug #33) - release 0.3.3 -* 15.09.19 - Added support for ARI 1.8.0 (bug #32) - release 0.3.2 -* 15.03.20 - Disconnected ARI WS now throws an exception - se bug #28 - release 0.3.1 -* 15.03.11 - Added support for ARI 1.7.0 (bug #28) - release 0.3.0 -* 15.01.17 - Added support for ARI 1.6.0 (bug #24) - release 0.2.3 - compiles with Netty 4.0.25 -* 14.11.01 - Added support for ARI 1.5 (bug #9) -* 14.10.30 - Added ARI bindings for 1.5.0 as coming from the official Asterisk 13.0.0 release -* 14.01.01 - Added a minimal application under tests/ class ch.loway.oss.ari4java.sandbox.sample to be used as a style laboratory. Look for UGLY tags. Rel 0.1.2. -* 13.12.30 - Added AriBuilder interfaces -* 13.12.29 - Imported the definitions for Asterisk 12.0.0 - ARI 1.0.0 - a bit of code changes in the code generator - Added the Gradle build script. -* 13.11.26 - Netty.io based HTTP and WebSocket implementation, factory, sync and async methods -* 13.10.21 - All objects are deserializable right out of JSON. Mesages can be deserialized automatically. -* 13.10.18 - Auto-generates all classes and compiles them. - - -## Useful links -* Asterisk REST Interface wiki: https://wiki.asterisk.org/wiki/pages/viewpage.action?pageId=29395573 -* Asterisk 16 ARI docs: https://wiki.asterisk.org/wiki/display/AST/Asterisk+16+ARI -* Asterisk-app-dev archives: http://lists.digium.com/pipermail/asterisk-app-dev/ - - -## Similar & Interesting projects -* AstAryPy - a Python library - https://github.com/asterisk/ast-ari-py -* AsterNET.ARI - C# / .NET - https://github.com/skrusty/AsterNET.ARI -* node-ari-client - JavaScript (node) - https://github.com/asterisk/node-ari-client -* phpari - PHP - http://www.phpari.org/ -* asterisk-ari-client - Ruby - https://github.com/svoboda-jan/asterisk-ari - +# Documentation +- [Releases](https://github.com/l3nz/ari4java/releases) and the [CHANGELOG](https://github.com/l3nz/ari4java/blob/master/CHANGELOG.md) +- The [Wiki](https://github.com/l3nz/ari4java/wiki) has some more info on how to use the project + - [Examples]() + - [Build]() ## Licensing -The library is released under the GNU LGPL (see LICENSE file). +The library is released under the GNU LGPL (see [LICENSE](https://github.com/l3nz/ari4java/blob/master/LICENSE) file). Files under codegen-data come from the Asterisk project and are licensed under the GPLv2 (see LICENSE.asterisk file therein). -They are only used to build the classes and are not distribuited in any form with Ari4Java. - +They are only used to build the classes and are not distributed in any form with ARI4Java. From b1fcb3d36fd2af04fe01d8d95a677f4d6852f664 Mon Sep 17 00:00:00 2001 From: Graham Brown Date: Fri, 21 Feb 2020 23:51:31 +0200 Subject: [PATCH 108/220] Fixes #19 --- src/main/java/ch/loway/oss/ari4java/ARI.java | 33 ++++++++++++++----- .../ch/loway/oss/ari4java/AriFactory.java | 26 +++++++++++++++ 2 files changed, 50 insertions(+), 9 deletions(-) diff --git a/src/main/java/ch/loway/oss/ari4java/ARI.java b/src/main/java/ch/loway/oss/ari4java/ARI.java index 4de81710..bcf9613e 100644 --- a/src/main/java/ch/loway/oss/ari4java/ARI.java +++ b/src/main/java/ch/loway/oss/ari4java/ARI.java @@ -163,6 +163,20 @@ public void closeAction(Object action) throws ARIException { } } + /** + * @see ARI#build(String, String, String, String, AriVersion, boolean) + * @param url url + * @param app app + * @param user user + * @param pass The password + * @param version The required version + * @return instance + * @throws ARIException exception + */ + public static ARI build(String url, String app, String user, String pass, AriVersion version) throws ARIException { + return build(url, app, user, pass, version, true); + } + /** * Builds a connector object for the specified ARI version. * If the version is set as IM_FEELING_LUCKY, then it will first try connecting, @@ -172,21 +186,22 @@ public void closeAction(Object action) throws ARIException { * As this sets everything up but does not do anything, we do not have any * information on whether this connection is valid or not. * - * @param url The URL of the Asterisk web server, e.g. http://10.10.5.8:8088/ - defined in http.conf - * @param app The app - * @param user The user name (defined in ari.conf) - * @param pass The password - * @param version The required version - * @return a connection object + * @param url The URL of the Asterisk web server, e.g. http://10.10.5.8:8088/ - defined in http.conf + * @param app The app + * @param user The user name (defined in ari.conf) + * @param pass The password + * @param version The required version + * @param testConnection Test the connection details by executing the ping operation + * @return an instance * @throws ARIException If the url is invalid, or the version of ARI is not supported. */ - public static ARI build(String url, String app, String user, String pass, AriVersion version) throws ARIException { + public static ARI build(String url, String app, String user, String pass, AriVersion version, boolean testConnection) throws ARIException { if (version == AriVersion.IM_FEELING_LUCKY) { AriVersion currentVersion = detectAriVersion(url, user, pass); - return build(url, app, user, pass, currentVersion); + return build(url, app, user, pass, currentVersion, testConnection); } else { try { - return AriFactory.nettyHttp(url, user, pass, version, app); + return AriFactory.nettyHttp(url, user, pass, version, app, testConnection); } catch (URISyntaxException e) { throw new ARIException("Wrong URI format: " + url); } diff --git a/src/main/java/ch/loway/oss/ari4java/AriFactory.java b/src/main/java/ch/loway/oss/ari4java/AriFactory.java index 1eaf9620..6aef6fd3 100644 --- a/src/main/java/ch/loway/oss/ari4java/AriFactory.java +++ b/src/main/java/ch/loway/oss/ari4java/AriFactory.java @@ -1,5 +1,6 @@ package ch.loway.oss.ari4java; +import ch.loway.oss.ari4java.tools.RestException; import ch.loway.oss.ari4java.tools.http.NettyHttpClient; import java.net.URISyntaxException; @@ -37,6 +38,22 @@ public static ARI nettyHttp(String uri, String login, String pass, AriVersion ve * @throws URISyntaxException when error */ public static ARI nettyHttp(String uri, String login, String pass, AriVersion version, String app) throws URISyntaxException { + return nettyHttp(uri, login, pass, version, "", true); + } + + /** + * This connects to an application. + * + * @param uri uri + * @param login login + * @param pass pass + * @param version version + * @param app app + * @param testConnection testConnection + * @return your ready-to-use connector. + * @throws URISyntaxException when error + */ + public static ARI nettyHttp(String uri, String login, String pass, AriVersion version, String app, boolean testConnection) throws URISyntaxException { if (AriVersion.IM_FEELING_LUCKY.equals(version)) { throw new UnsupportedOperationException("IM_FEELING_LUCKY not a valid option here"); } @@ -47,6 +64,15 @@ public static ARI nettyHttp(String uri, String login, String pass, AriVersion ve ari.setWsClient(hc); ari.setVersion(version); hc.initialize(uri, login, pass); + // ping was added in version 5 (Asterisk 16) and back ported to some... I'm only including 1.10.2 (Asterisk 13) from the back port... + int majorVer = Integer.parseInt(version.version().split("\\.")[0]); + if (testConnection && (majorVer >= 5 || AriVersion.ARI_1_10_2.equals(version))) { + try { + ari.asterisk().ping(); + } catch (RestException e) { + throw new RuntimeException("Failed to test connection: " + e.getMessage(), e); + } + } return ari; } From 4ec04e1674bfd2b85010c3c2322c37d6e94e446e Mon Sep 17 00:00:00 2001 From: Graham Brown Date: Sat, 22 Feb 2020 23:41:06 +0200 Subject: [PATCH 109/220] logging and supply exception to avoid NPE --- .../loway/oss/ari4java/tools/http/NettyWSClientHandler.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/main/java/ch/loway/oss/ari4java/tools/http/NettyWSClientHandler.java b/src/main/java/ch/loway/oss/ari4java/tools/http/NettyWSClientHandler.java index a35a1995..66b8107a 100644 --- a/src/main/java/ch/loway/oss/ari4java/tools/http/NettyWSClientHandler.java +++ b/src/main/java/ch/loway/oss/ari4java/tools/http/NettyWSClientHandler.java @@ -101,7 +101,7 @@ protected void channelRead0(ChannelHandlerContext ctx, Object msg) throws Except ch.close(); if (!shuttingDown) { if (this.wsClient != null) { - wsClient.reconnectWs(null); + wsClient.reconnectWs(new RestException("CloseWebSocketFrame received")); } else { wsCallback.onDisconnect(); } @@ -109,7 +109,7 @@ protected void channelRead0(ChannelHandlerContext ctx, Object msg) throws Except } else if (msg instanceof PongWebSocketFrame) { wsClient.pong(); } else { - logger.warn("Unhandled WebSocketFrame: {}", msg.getClass().toString()); + logger.warn("Unhandled: {}", msg.getClass().toString()); } } From 13b470839037737225ad39fb4b1464994e36955a Mon Sep 17 00:00:00 2001 From: Graham Brown Date: Sat, 22 Feb 2020 23:41:21 +0200 Subject: [PATCH 110/220] fix aggregator issue --- .../ari4java/tools/http/NettyHttpClient.java | 23 ++++++++++--------- 1 file changed, 12 insertions(+), 11 deletions(-) diff --git a/src/main/java/ch/loway/oss/ari4java/tools/http/NettyHttpClient.java b/src/main/java/ch/loway/oss/ari4java/tools/http/NettyHttpClient.java index 5b4d514a..bbe3a878 100644 --- a/src/main/java/ch/loway/oss/ari4java/tools/http/NettyHttpClient.java +++ b/src/main/java/ch/loway/oss/ari4java/tools/http/NettyHttpClient.java @@ -294,11 +294,7 @@ private NettyHttpClientHandler httpActionSyncHandler(String uri, String method, public void operationComplete(ChannelFuture future) throws Exception { if (future.isSuccess()) { logger.debug("HTTP connected"); - if (binary) { - logger.debug("Is Binary, replace http-aggregator ..."); - future.channel().pipeline().replace( - "http-aggregator", "http-aggregator", new HttpObjectAggregator(MAX_HTTP_BIN_REQUEST)); - } + replaceAggregator(binary, future.channel()); } else if (future.cause() != null) { logger.error("HTTP Connection Error - {}", future.cause().getMessage(), future.cause()); } else { @@ -318,6 +314,14 @@ public void operationComplete(ChannelFuture future) throws Exception { } } + private void replaceAggregator(boolean binary, Channel ch) { + if (binary) { + logger.debug("Is Binary, replace http-aggregator ..."); + ch.pipeline().replace( + "http-aggregator", "http-aggregator", new HttpObjectAggregator(MAX_HTTP_BIN_REQUEST)); + } + } + // Asynchronous HTTP action, response is passed to HttpResponseHandler @Override public void httpActionAsync(String uri, String method, List parametersQuery, @@ -335,11 +339,7 @@ public void operationComplete(ChannelFuture future) throws Exception { if (future.isSuccess()) { logger.debug("HTTP connected"); Channel ch = future.channel(); - if (binary) { - logger.debug("Is Binary, replace http-aggregator ..."); - future.channel().pipeline().replace( - "http-aggregator", "http-aggregator", new HttpObjectAggregator(MAX_HTTP_BIN_REQUEST)); - } + replaceAggregator(binary, ch); responseHandler.onChReadyToWrite(); ch.writeAndFlush(request); ch.closeFuture().addListener(new ChannelFutureListener() { @@ -376,7 +376,7 @@ public void operationComplete(ChannelFuture future) throws Exception { public WsClientConnection connect(final HttpResponseHandler callback, final String url, final List lParamQuery) { WebSocketClientHandshaker handshake = getWsHandshake(url, lParamQuery); - logger.debug("WS Connect uri: {}, ver: {}", handshake.uri().toString(), handshake.version().toString()); + logger.debug("WS Connect uri: {}", handshake.uri().toString()); this.wsHandler = new NettyWSClientHandler(handshake, callback, this); this.wsCallback = callback; this.wsEventsUrl = url; @@ -390,6 +390,7 @@ public void initChannel(SocketChannel ch) throws Exception { ChannelPipeline pipeline = ch.pipeline(); addSSLIfRequired(pipeline); pipeline.addLast("http-codec", new HttpClientCodec()); + pipeline.addLast("http-aggregator", new HttpObjectAggregator(MAX_HTTP_REQUEST)); pipeline.addLast("ws-handler", wsHandler); } }); From 6fad154e653fb60b4971e37c00c317c6bb194fba Mon Sep 17 00:00:00 2001 From: Graham Brown Date: Sun, 23 Feb 2020 12:54:48 +0200 Subject: [PATCH 111/220] error handling logging and fixes --- .../ari4java/tools/http/NettyHttpClient.java | 25 +++++++++++++++---- .../tools/http/NettyWSClientHandler.java | 5 +++- 2 files changed, 24 insertions(+), 6 deletions(-) diff --git a/src/main/java/ch/loway/oss/ari4java/tools/http/NettyHttpClient.java b/src/main/java/ch/loway/oss/ari4java/tools/http/NettyHttpClient.java index bbe3a878..0f3b4b46 100644 --- a/src/main/java/ch/loway/oss/ari4java/tools/http/NettyHttpClient.java +++ b/src/main/java/ch/loway/oss/ari4java/tools/http/NettyHttpClient.java @@ -255,9 +255,11 @@ private RestException makeException(HttpResponseStatus status, String response, return new RestException("Client Shutdown: " + response); } - for (HttpResponse hr : errors) { - if (hr.code == status.code()) { - return new RestException(hr.description, response, status.code()); + if (errors != null) { + for (HttpResponse hr : errors) { + if (hr.code == status.code()) { + return new RestException(hr.description, response, status.code()); + } } } @@ -406,6 +408,7 @@ public void run() { @Override public void operationComplete(ChannelFuture future) throws Exception { if (future.isSuccess()) { + logger.debug("HTTP connected, waiting for WS Upgrade..."); wsHandler.handshakeFuture().addListener(new ChannelFutureListener() { @Override public void operationComplete(ChannelFuture future) throws Exception { @@ -417,12 +420,24 @@ public void operationComplete(ChannelFuture future) throws Exception { reconnectCount = 0; callback.onChReadyToWrite(); } else { - reconnectWs(future.cause()); + if (future.cause() != null) { + logger.error("WS Upgrade Error - {}", future.cause().getMessage(), future.cause()); + reconnectWs(future.cause()); + } else { + logger.error("WS Upgrade Error - Unknown"); + reconnectWs(new RestException("WS Upgrade Error - Unknown")); + } } } }); } else { - reconnectWs(future.cause()); + if (future.cause() != null) { + logger.error("WS/HTTP Connection Error - {}", future.cause().getMessage(), future.cause()); + reconnectWs(future.cause()); + } else { + logger.error("WS/HTTP Connection Error - Unknown"); + reconnectWs(new RestException("WS/HTTP Connection Error - Unknown")); + } } } }; diff --git a/src/main/java/ch/loway/oss/ari4java/tools/http/NettyWSClientHandler.java b/src/main/java/ch/loway/oss/ari4java/tools/http/NettyWSClientHandler.java index 66b8107a..3bf7024c 100644 --- a/src/main/java/ch/loway/oss/ari4java/tools/http/NettyWSClientHandler.java +++ b/src/main/java/ch/loway/oss/ari4java/tools/http/NettyWSClientHandler.java @@ -109,7 +109,10 @@ protected void channelRead0(ChannelHandlerContext ctx, Object msg) throws Except } else if (msg instanceof PongWebSocketFrame) { wsClient.pong(); } else { - logger.warn("Unhandled: {}", msg.getClass().toString()); + HTTPLogger.traceWebSocketFrame(msg.toString()); + String error = "Not expecting: " + msg.getClass().getSimpleName(); + logger.error(error); + throw new Exception(error); } } From a8ed8b7bed5a8a294c48f5b1ab9903436b4d583b Mon Sep 17 00:00:00 2001 From: Graham Brown Date: Sun, 23 Feb 2020 13:50:09 +0200 Subject: [PATCH 112/220] refactor changes into CHANGELOG.md and tidy up README.md --- CHANGELOG.md | 4 ++++ README.md | 6 +++--- 2 files changed, 7 insertions(+), 3 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 2687c6a2..e8de3894 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,6 +2,10 @@ ## [Unreleased] [Unreleased]: https://github.com/l3nz/ari4java/compare/REL-0.9.0...HEAD +### Added +- Test connection when creating ARI #19 +### Fixed +- Mistakenly removed the http aggregator ## [0.9.0] - 2020-02-20 [0.9.0]: https://github.com/l3nz/ari4java/compare/REL-0.8.1...REL-0.9.0 diff --git a/README.md b/README.md index 1dd9bba4..55868bd6 100644 --- a/README.md +++ b/README.md @@ -34,10 +34,10 @@ dependencies { *The 1st repo declaration is temporary as we sort out moving from a private repo to an organization* # Documentation -- [Releases](https://github.com/l3nz/ari4java/releases) and the [CHANGELOG](https://github.com/l3nz/ari4java/blob/master/CHANGELOG.md) +- The [CHANGELOG](https://github.com/l3nz/ari4java/blob/master/CHANGELOG.md) - The [Wiki](https://github.com/l3nz/ari4java/wiki) has some more info on how to use the project - - [Examples]() - - [Build]() + - [Getting Started](https://github.com/l3nz/ari4java/wiki/Getting-Started) + - [Examples](https://github.com/l3nz/ari4java/wiki/Examples) ## Licensing The library is released under the GNU LGPL (see [LICENSE](https://github.com/l3nz/ari4java/blob/master/LICENSE) file). From c03c41145b956aba95d9bf8bd0e96edc69fd3759 Mon Sep 17 00:00:00 2001 From: Graham Brown Date: Sun, 23 Feb 2020 13:51:47 +0200 Subject: [PATCH 113/220] Move examples from tests to examples folder and make a gradle project so it's a fully fledged example --- .gitignore | 2 + build.gradle | 2 +- examples/build.gradle | 20 ++ examples/gradle/wrapper/gradle-wrapper.jar | Bin 0 -> 55190 bytes .../gradle/wrapper/gradle-wrapper.properties | 5 + examples/gradlew | 172 ++++++++++++++++++ examples/gradlew.bat | 84 +++++++++ examples/settings.gradle | 7 + .../ari4java/examples}/ConnectAndDial.java | 2 +- .../loway/oss/ari4java/examples}/Weasels.java | 22 ++- .../main/java}/helloworld/HelloAriWorld.java | 9 +- examples/src/main/resources/log4j2.properties | 17 ++ 12 files changed, 327 insertions(+), 15 deletions(-) create mode 100644 examples/build.gradle create mode 100644 examples/gradle/wrapper/gradle-wrapper.jar create mode 100644 examples/gradle/wrapper/gradle-wrapper.properties create mode 100755 examples/gradlew create mode 100644 examples/gradlew.bat create mode 100644 examples/settings.gradle rename {src/test/java/ch/loway/oss/ari4java/sandbox/sample => examples/src/main/java/ch/loway/oss/ari4java/examples}/ConnectAndDial.java (99%) rename {src/test/java/ch/loway/oss/ari4java/sandbox/sample => examples/src/main/java/ch/loway/oss/ari4java/examples}/Weasels.java (86%) rename examples/{ => src/main/java}/helloworld/HelloAriWorld.java (79%) create mode 100644 examples/src/main/resources/log4j2.properties diff --git a/.gitignore b/.gitignore index b7ed9a0f..8bae480b 100644 --- a/.gitignore +++ b/.gitignore @@ -25,3 +25,5 @@ build.xml src/main/generated/ src/main/resources/build.properties codegen/tmp/ + +.build-local diff --git a/build.gradle b/build.gradle index 9a7afd00..ad5ed881 100644 --- a/build.gradle +++ b/build.gradle @@ -22,7 +22,7 @@ sourceSets { } repositories { - mavenCentral() + jcenter() } dependencies { diff --git a/examples/build.gradle b/examples/build.gradle new file mode 100644 index 00000000..2a08f7e1 --- /dev/null +++ b/examples/build.gradle @@ -0,0 +1,20 @@ +plugins { + id 'java' +} + +repositories { + maven { + url "https://dl.bintray.com/ari4java/maven" + } + jcenter() +} + +dependencies { + compile 'ch.loway.oss.ari4java:ari4java:+' + compile 'org.apache.logging.log4j:log4j-slf4j-impl:2.13.0' +} + +//task runWeaselsExample(type: JavaExec) { +// classpath = sourceSets.main.runtimeClasspath +// main = 'ch.loway.oss.ari4java.examples.Weasels' +//} diff --git a/examples/gradle/wrapper/gradle-wrapper.jar b/examples/gradle/wrapper/gradle-wrapper.jar new file mode 100644 index 0000000000000000000000000000000000000000..87b738cbd051603d91cc39de6cb000dd98fe6b02 GIT binary patch literal 55190 zcmafaW0WS*vSoFbZQHhO+s0S6%`V%vZQJa!ZQHKus_B{g-pt%P_q|ywBQt-*Stldc z$+IJ3?^KWm27v+sf`9-50uuadKtMnL*BJ;1^6ynvR7H?hQcjE>7)art9Bu0Pcm@7C z@c%WG|JzYkP)<@zR9S^iR_sA`azaL$mTnGKnwDyMa;8yL_0^>Ba^)phg0L5rOPTbm7g*YIRLg-2^{qe^`rb!2KqS zk~5wEJtTdD?)3+}=eby3x6%i)sb+m??NHC^u=tcG8p$TzB<;FL(WrZGV&cDQb?O0GMe6PBV=V z?tTO*5_HTW$xea!nkc~Cnx#cL_rrUGWPRa6l+A{aiMY=<0@8y5OC#UcGeE#I>nWh}`#M#kIn-$A;q@u-p71b#hcSItS!IPw?>8 zvzb|?@Ahb22L(O4#2Sre&l9H(@TGT>#Py)D&eW-LNb!=S;I`ZQ{w;MaHW z#to!~TVLgho_Pm%zq@o{K3Xq?I|MVuVSl^QHnT~sHlrVxgsqD-+YD?Nz9@HA<;x2AQjxP)r6Femg+LJ-*)k%EZ}TTRw->5xOY z9#zKJqjZgC47@AFdk1$W+KhTQJKn7e>A&?@-YOy!v_(}GyV@9G#I?bsuto4JEp;5|N{orxi_?vTI4UF0HYcA( zKyGZ4<7Fk?&LZMQb6k10N%E*$gr#T&HsY4SPQ?yerqRz5c?5P$@6dlD6UQwZJ*Je9 z7n-@7!(OVdU-mg@5$D+R%gt82Lt%&n6Yr4=|q>XT%&^z_D*f*ug8N6w$`woqeS-+#RAOfSY&Rz z?1qYa5xi(7eTCrzCFJfCxc%j{J}6#)3^*VRKF;w+`|1n;Xaojr2DI{!<3CaP`#tXs z*`pBQ5k@JLKuCmovFDqh_`Q;+^@t_;SDm29 zCNSdWXbV?9;D4VcoV`FZ9Ggrr$i<&#Dx3W=8>bSQIU_%vf)#(M2Kd3=rN@^d=QAtC zI-iQ;;GMk|&A++W5#hK28W(YqN%?!yuW8(|Cf`@FOW5QbX|`97fxmV;uXvPCqxBD zJ9iI37iV)5TW1R+fV16y;6}2tt~|0J3U4E=wQh@sx{c_eu)t=4Yoz|%Vp<#)Qlh1V z0@C2ZtlT>5gdB6W)_bhXtcZS)`9A!uIOa`K04$5>3&8An+i9BD&GvZZ=7#^r=BN=k za+=Go;qr(M)B~KYAz|<^O3LJON}$Q6Yuqn8qu~+UkUKK~&iM%pB!BO49L+?AL7N7o z(OpM(C-EY753=G=WwJHE`h*lNLMNP^c^bBk@5MyP5{v7x>GNWH>QSgTe5 z!*GPkQ(lcbEs~)4ovCu!Zt&$${9$u(<4@9%@{U<-ksAqB?6F`bQ;o-mvjr)Jn7F&j$@`il1Mf+-HdBs<-`1FahTxmPMMI)@OtI&^mtijW6zGZ67O$UOv1Jj z;a3gmw~t|LjPkW3!EZ=)lLUhFzvO;Yvj9g`8hm%6u`;cuek_b-c$wS_0M4-N<@3l|88 z@V{Sd|M;4+H6guqMm4|v=C6B7mlpP(+It%0E;W`dxMOf9!jYwWj3*MRk`KpS_jx4c z=hrKBkFK;gq@;wUV2eqE3R$M+iUc+UD0iEl#-rECK+XmH9hLKrC={j@uF=f3UiceB zU5l$FF7#RKjx+6!JHMG5-!@zI-eG=a-!Bs^AFKqN_M26%cIIcSs61R$yuq@5a3c3& z4%zLs!g}+C5%`ja?F`?5-og0lv-;(^e<`r~p$x%&*89_Aye1N)9LNVk?9BwY$Y$$F^!JQAjBJvywXAesj7lTZ)rXuxv(FFNZVknJha99lN=^h`J2> zl5=~(tKwvHHvh|9-41@OV`c;Ws--PE%{7d2sLNbDp;A6_Ka6epzOSFdqb zBa0m3j~bT*q1lslHsHqaHIP%DF&-XMpCRL(v;MV#*>mB^&)a=HfLI7efblG z(@hzN`|n+oH9;qBklb=d^S0joHCsArnR1-h{*dIUThik>ot^!6YCNjg;J_i3h6Rl0ji)* zo(tQ~>xB!rUJ(nZjCA^%X;)H{@>uhR5|xBDA=d21p@iJ!cH?+%U|VSh2S4@gv`^)^ zNKD6YlVo$%b4W^}Rw>P1YJ|fTb$_(7C;hH+ z1XAMPb6*p^h8)e5nNPKfeAO}Ik+ZN_`NrADeeJOq4Ak;sD~ zTe77no{Ztdox56Xi4UE6S7wRVxJzWxKj;B%v7|FZ3cV9MdfFp7lWCi+W{}UqekdpH zdO#eoOuB3Fu!DU`ErfeoZWJbWtRXUeBzi zBTF-AI7yMC^ntG+8%mn(I6Dw}3xK8v#Ly{3w3_E?J4(Q5JBq~I>u3!CNp~Ekk&YH` z#383VO4O42NNtcGkr*K<+wYZ>@|sP?`AQcs5oqX@-EIqgK@Pmp5~p6O6qy4ml~N{D z{=jQ7k(9!CM3N3Vt|u@%ssTw~r~Z(}QvlROAkQQ?r8OQ3F0D$aGLh zny+uGnH5muJ<67Z=8uilKvGuANrg@s3Vu_lU2ajb?rIhuOd^E@l!Kl0hYIxOP1B~Q zggUmXbh$bKL~YQ#!4fos9UUVG#}HN$lIkM<1OkU@r>$7DYYe37cXYwfK@vrHwm;pg zbh(hEU|8{*d$q7LUm+x&`S@VbW*&p-sWrplWnRM|I{P;I;%U`WmYUCeJhYc|>5?&& zj}@n}w~Oo=l}iwvi7K6)osqa;M8>fRe}>^;bLBrgA;r^ZGgY@IC^ioRmnE&H4)UV5 zO{7egQ7sBAdoqGsso5q4R(4$4Tjm&&C|7Huz&5B0wXoJzZzNc5Bt)=SOI|H}+fbit z-PiF5(NHSy>4HPMrNc@SuEMDuKYMQ--G+qeUPqO_9mOsg%1EHpqoX^yNd~~kbo`cH zlV0iAkBFTn;rVb>EK^V6?T~t~3vm;csx+lUh_%ROFPy0(omy7+_wYjN!VRDtwDu^h4n|xpAMsLepm% zggvs;v8+isCW`>BckRz1MQ=l>K6k^DdT`~sDXTWQ<~+JtY;I~I>8XsAq3yXgxe>`O zZdF*{9@Z|YtS$QrVaB!8&`&^W->_O&-JXn1n&~}o3Z7FL1QE5R*W2W@=u|w~7%EeC1aRfGtJWxImfY-D3t!!nBkWM> zafu>^Lz-ONgT6ExjV4WhN!v~u{lt2-QBN&UxwnvdH|I%LS|J-D;o>@@sA62@&yew0 z)58~JSZP!(lX;da!3`d)D1+;K9!lyNlkF|n(UduR-%g>#{`pvrD^ClddhJyfL7C-(x+J+9&7EsC~^O`&}V%)Ut8^O_7YAXPDpzv8ir4 zl`d)(;imc6r16k_d^)PJZ+QPxxVJS5e^4wX9D=V2zH&wW0-p&OJe=}rX`*->XT=;_qI&)=WHkYnZx6bLoUh_)n-A}SF_ z9z7agNTM5W6}}ui=&Qs@pO5$zHsOWIbd_&%j^Ok5PJ3yUWQw*i4*iKO)_er2CDUME ztt+{Egod~W-fn^aLe)aBz)MOc_?i-stTj}~iFk7u^-gGSbU;Iem06SDP=AEw9SzuF zeZ|hKCG3MV(z_PJg0(JbqTRf4T{NUt%kz&}4S`)0I%}ZrG!jgW2GwP=WTtkWS?DOs znI9LY!dK+1_H0h+i-_~URb^M;4&AMrEO_UlDV8o?E>^3x%ZJyh$JuDMrtYL8|G3If zPf2_Qb_W+V?$#O; zydKFv*%O;Y@o_T_UAYuaqx1isMKZ^32JtgeceA$0Z@Ck0;lHbS%N5)zzAW9iz; z8tTKeK7&qw!8XVz-+pz>z-BeIzr*#r0nB^cntjQ9@Y-N0=e&ZK72vlzX>f3RT@i7@ z=z`m7jNk!9%^xD0ug%ptZnM>F;Qu$rlwo}vRGBIymPL)L|x}nan3uFUw(&N z24gdkcb7!Q56{0<+zu zEtc5WzG2xf%1<@vo$ZsuOK{v9gx^0`gw>@h>ZMLy*h+6ueoie{D#}}` zK2@6Xxq(uZaLFC%M!2}FX}ab%GQ8A0QJ?&!vaI8Gv=vMhd);6kGguDmtuOElru()) zuRk&Z{?Vp!G~F<1#s&6io1`poBqpRHyM^p;7!+L??_DzJ8s9mYFMQ0^%_3ft7g{PD zZd}8E4EV}D!>F?bzcX=2hHR_P`Xy6?FOK)mCj)Ym4s2hh z0OlOdQa@I;^-3bhB6mpw*X5=0kJv8?#XP~9){G-+0ST@1Roz1qi8PhIXp1D$XNqVG zMl>WxwT+K`SdO1RCt4FWTNy3!i?N>*-lbnn#OxFJrswgD7HjuKpWh*o@QvgF&j+CT z{55~ZsUeR1aB}lv#s_7~+9dCix!5(KR#c?K?e2B%P$fvrsZxy@GP#R#jwL{y#Ld$} z7sF>QT6m|}?V;msb?Nlohj7a5W_D$y+4O6eI;Zt$jVGymlzLKscqer9#+p2$0It&u zWY!dCeM6^B^Z;ddEmhi?8`scl=Lhi7W%2|pT6X6^%-=q90DS(hQ-%c+E*ywPvmoF(KqDoW4!*gmQIklm zk#!GLqv|cs(JRF3G?=AYY19{w@~`G3pa z@xR9S-Hquh*&5Yas*VI};(%9%PADn`kzm zeWMJVW=>>wap*9|R7n#!&&J>gq04>DTCMtj{P^d12|2wXTEKvSf?$AvnE!peqV7i4 zE>0G%CSn%WCW1yre?yi9*aFP{GvZ|R4JT}M%x_%Hztz2qw?&28l&qW<6?c6ym{f$d z5YCF+k#yEbjCN|AGi~-NcCG8MCF1!MXBFL{#7q z)HO+WW173?kuI}^Xat;Q^gb4Hi0RGyB}%|~j8>`6X4CPo+|okMbKy9PHkr58V4bX6<&ERU)QlF8%%huUz&f+dwTN|tk+C&&o@Q1RtG`}6&6;ncQuAcfHoxd5AgD7`s zXynq41Y`zRSiOY@*;&1%1z>oNcWTV|)sjLg1X8ijg1Y zbIGL0X*Sd}EXSQ2BXCKbJmlckY(@EWn~Ut2lYeuw1wg?hhj@K?XB@V_ZP`fyL~Yd3n3SyHU-RwMBr6t-QWE5TinN9VD4XVPU; zonIIR!&pGqrLQK)=#kj40Im%V@ij0&Dh0*s!lnTw+D`Dt-xmk-jmpJv$1-E-vfYL4 zqKr#}Gm}~GPE+&$PI@4ag@=M}NYi7Y&HW82Q`@Y=W&PE31D110@yy(1vddLt`P%N^ z>Yz195A%tnt~tvsSR2{m!~7HUc@x<&`lGX1nYeQUE(%sphTi>JsVqSw8xql*Ys@9B z>RIOH*rFi*C`ohwXjyeRBDt8p)-u{O+KWP;$4gg||%*u{$~yEj+Al zE(hAQRQ1k7MkCq9s4^N3ep*$h^L%2Vq?f?{+cicpS8lo)$Cb69b98au+m2J_e7nYwID0@`M9XIo1H~|eZFc8Hl!qly612ADCVpU zY8^*RTMX(CgehD{9v|^9vZ6Rab`VeZ2m*gOR)Mw~73QEBiktViBhR!_&3l$|be|d6 zupC`{g89Y|V3uxl2!6CM(RNpdtynaiJ~*DqSTq9Mh`ohZnb%^3G{k;6%n18$4nAqR zjPOrP#-^Y9;iw{J@XH9=g5J+yEVh|e=4UeY<^65`%gWtdQ=-aqSgtywM(1nKXh`R4 zzPP&7r)kv_uC7X9n=h=!Zrf<>X=B5f<9~Q>h#jYRD#CT7D~@6@RGNyO-#0iq0uHV1 zPJr2O4d_xLmg2^TmG7|dpfJ?GGa`0|YE+`2Rata9!?$j#e9KfGYuLL(*^z z!SxFA`$qm)q-YKh)WRJZ@S+-sD_1E$V?;(?^+F3tVcK6 z2fE=8hV*2mgiAbefU^uvcM?&+Y&E}vG=Iz!%jBF7iv){lyC`)*yyS~D8k+Mx|N3bm zI~L~Z$=W9&`x)JnO;8c>3LSDw!fzN#X3qi|0`sXY4?cz{*#xz!kvZ9bO=K3XbN z5KrgN=&(JbXH{Wsu9EdmQ-W`i!JWEmfI;yVTT^a-8Ch#D8xf2dtyi?7p z%#)W3n*a#ndFpd{qN|+9Jz++AJQO#-Y7Z6%*%oyEP5zs}d&kKIr`FVEY z;S}@d?UU=tCdw~EJ{b}=9x}S2iv!!8<$?d7VKDA8h{oeD#S-$DV)-vPdGY@x08n)@ zag?yLF_E#evvRTj4^CcrLvBL=fft&@HOhZ6Ng4`8ijt&h2y}fOTC~7GfJi4vpomA5 zOcOM)o_I9BKz}I`q)fu+Qnfy*W`|mY%LO>eF^a z;$)?T4F-(X#Q-m}!-k8L_rNPf`Mr<9IWu)f&dvt=EL+ESYmCvErd@8B9hd)afc(ZL94S z?rp#h&{7Ah5IJftK4VjATklo7@hm?8BX*~oBiz)jyc9FuRw!-V;Uo>p!CWpLaIQyt zAs5WN)1CCeux-qiGdmbIk8LR`gM+Qg=&Ve}w?zA6+sTL)abU=-cvU`3E?p5$Hpkxw znu0N659qR=IKnde*AEz_7z2pdi_Bh-sb3b=PdGO1Pdf_q2;+*Cx9YN7p_>rl``knY zRn%aVkcv1(W;`Mtp_DNOIECtgq%ufk-mu_<+Fu3Q17Tq4Rr(oeq)Yqk_CHA7LR@7@ zIZIDxxhS&=F2IQfusQ+Nsr%*zFK7S4g!U0y@3H^Yln|i;0a5+?RPG;ZSp6Tul>ezM z`40+516&719qT)mW|ArDSENle5hE2e8qY+zfeZoy12u&xoMgcP)4=&P-1Ib*-bAy` zlT?>w&B|ei-rCXO;sxo7*G;!)_p#%PAM-?m$JP(R%x1Hfas@KeaG%LO?R=lmkXc_MKZW}3f%KZ*rAN?HYvbu2L$ zRt_uv7~-IejlD1x;_AhwGXjB94Q=%+PbxuYzta*jw?S&%|qb=(JfJ?&6P=R7X zV%HP_!@-zO*zS}46g=J}#AMJ}rtWBr21e6hOn&tEmaM%hALH7nlm2@LP4rZ>2 zebe5aH@k!e?ij4Zwak#30|}>;`bquDQK*xmR=zc6vj0yuyC6+U=LusGnO3ZKFRpen z#pwzh!<+WBVp-!$MAc<0i~I%fW=8IO6K}bJ<-Scq>e+)951R~HKB?Mx2H}pxPHE@} zvqpq5j81_jtb_WneAvp<5kgdPKm|u2BdQx9%EzcCN&U{l+kbkhmV<1}yCTDv%&K^> zg;KCjwh*R1f_`6`si$h6`jyIKT7rTv5#k~x$mUyIw)_>Vr)D4fwIs@}{FSX|5GB1l z4vv;@oS@>Bu7~{KgUa_8eg#Lk6IDT2IY$41$*06{>>V;Bwa(-@N;ex4;D`(QK*b}{ z{#4$Hmt)FLqERgKz=3zXiV<{YX6V)lvYBr3V>N6ajeI~~hGR5Oe>W9r@sg)Na(a4- zxm%|1OKPN6^%JaD^^O~HbLSu=f`1px>RawOxLr+1b2^28U*2#h*W^=lSpSY4(@*^l z{!@9RSLG8Me&RJYLi|?$c!B0fP=4xAM4rerxX{xy{&i6=AqXueQAIBqO+pmuxy8Ib z4X^}r!NN3-upC6B#lt7&x0J;)nb9O~xjJMemm$_fHuP{DgtlU3xiW0UesTzS30L+U zQzDI3p&3dpONhd5I8-fGk^}@unluzu%nJ$9pzoO~Kk!>dLxw@M)M9?pNH1CQhvA`z zV;uacUtnBTdvT`M$1cm9`JrT3BMW!MNVBy%?@ZX%;(%(vqQAz<7I!hlDe|J3cn9=} zF7B;V4xE{Ss76s$W~%*$JviK?w8^vqCp#_G^jN0j>~Xq#Zru26e#l3H^{GCLEXI#n z?n~F-Lv#hU(bZS`EI9(xGV*jT=8R?CaK)t8oHc9XJ;UPY0Hz$XWt#QyLBaaz5+}xM zXk(!L_*PTt7gwWH*HLWC$h3Ho!SQ-(I||nn_iEC{WT3S{3V{8IN6tZ1C+DiFM{xlI zeMMk{o5;I6UvaC)@WKp9D+o?2Vd@4)Ue-nYci()hCCsKR`VD;hr9=vA!cgGL%3k^b(jADGyPi2TKr(JNh8mzlIR>n(F_hgiV(3@Ds(tjbNM7GoZ;T|3 zWzs8S`5PrA!9){jBJuX4y`f<4;>9*&NY=2Sq2Bp`M2(fox7ZhIDe!BaQUb@P(ub9D zlP8!p(AN&CwW!V&>H?yPFMJ)d5x#HKfwx;nS{Rr@oHqpktOg)%F+%1#tsPtq7zI$r zBo-Kflhq-=7_eW9B2OQv=@?|y0CKN77)N;z@tcg;heyW{wlpJ1t`Ap!O0`Xz{YHqO zI1${8Hag^r!kA<2_~bYtM=<1YzQ#GGP+q?3T7zYbIjN6Ee^V^b&9en$8FI*NIFg9G zPG$OXjT0Ku?%L7fat8Mqbl1`azf1ltmKTa(HH$Dqlav|rU{zP;Tbnk-XkGFQ6d+gi z-PXh?_kEJl+K98&OrmzgPIijB4!Pozbxd0H1;Usy!;V>Yn6&pu*zW8aYx`SC!$*ti zSn+G9p=~w6V(fZZHc>m|PPfjK6IN4(o=IFu?pC?+`UZAUTw!e`052{P=8vqT^(VeG z=psASIhCv28Y(;7;TuYAe>}BPk5Qg=8$?wZj9lj>h2kwEfF_CpK=+O6Rq9pLn4W)# zeXCKCpi~jsfqw7Taa0;!B5_C;B}e56W1s8@p*)SPzA;Fd$Slsn^=!_&!mRHV*Lmt| zBGIDPuR>CgS4%cQ4wKdEyO&Z>2aHmja;Pz+n|7(#l%^2ZLCix%>@_mbnyPEbyrHaz z>j^4SIv;ZXF-Ftzz>*t4wyq)ng8%0d;(Z_ExZ-cxwei=8{(br-`JYO(f23Wae_MqE z3@{Mlf^%M5G1SIN&en1*| zH~ANY1h3&WNsBy$G9{T=`kcxI#-X|>zLX2r*^-FUF+m0{k)n#GTG_mhG&fJfLj~K& zU~~6othMlvMm9<*SUD2?RD+R17|Z4mgR$L*R3;nBbo&Vm@39&3xIg;^aSxHS>}gwR zmzs?h8oPnNVgET&dx5^7APYx6Vv6eou07Zveyd+^V6_LzI$>ic+pxD_8s~ zC<}ucul>UH<@$KM zT4oI=62M%7qQO{}re-jTFqo9Z;rJKD5!X5$iwUsh*+kcHVhID08MB5cQD4TBWB(rI zuWc%CA}}v|iH=9gQ?D$1#Gu!y3o~p7416n54&Hif`U-cV?VrUMJyEqo_NC4#{puzU zzXEE@UppeeRlS9W*^N$zS`SBBi<@tT+<%3l@KhOy^%MWB9(A#*J~DQ;+MK*$rxo6f zcx3$3mcx{tly!q(p2DQrxcih|)0do_ZY77pyHGE#Q(0k*t!HUmmMcYFq%l$-o6%lS zDb49W-E?rQ#Hl``C3YTEdGZjFi3R<>t)+NAda(r~f1cT5jY}s7-2^&Kvo&2DLTPYP zhVVo-HLwo*vl83mtQ9)PR#VBg)FN}+*8c-p8j`LnNUU*Olm1O1Qqe62D#$CF#?HrM zy(zkX|1oF}Z=T#3XMLWDrm(|m+{1&BMxHY7X@hM_+cV$5-t!8HT(dJi6m9{ja53Yw z3f^`yb6Q;(e|#JQIz~B*=!-GbQ4nNL-NL z@^NWF_#w-Cox@h62;r^;Y`NX8cs?l^LU;5IWE~yvU8TqIHij!X8ydbLlT0gwmzS9} z@5BccG?vO;rvCs$mse1*ANi-cYE6Iauz$Fbn3#|ToAt5v7IlYnt6RMQEYLldva{~s zvr>1L##zmeoYgvIXJ#>bbuCVuEv2ZvZ8I~PQUN3wjP0UC)!U+wn|&`V*8?)` zMSCuvnuGec>QL+i1nCPGDAm@XSMIo?A9~C?g2&G8aNKjWd2pDX{qZ?04+2 zeyLw}iEd4vkCAWwa$ zbrHlEf3hfN7^1g~aW^XwldSmx1v~1z(s=1az4-wl} z`mM+G95*N*&1EP#u3}*KwNrPIgw8Kpp((rdEOO;bT1;6ea~>>sK+?!;{hpJ3rR<6UJb`O8P4@{XGgV%63_fs%cG8L zk9Fszbdo4tS$g0IWP1>t@0)E%-&9yj%Q!fiL2vcuL;90fPm}M==<>}Q)&sp@STFCY z^p!RzmN+uXGdtPJj1Y-khNyCb6Y$Vs>eZyW zPaOV=HY_T@FwAlleZCFYl@5X<<7%5DoO(7S%Lbl55?{2vIr_;SXBCbPZ(up;pC6Wx={AZL?shYOuFxLx1*>62;2rP}g`UT5+BHg(ju z&7n5QSvSyXbioB9CJTB#x;pexicV|9oaOpiJ9VK6EvKhl4^Vsa(p6cIi$*Zr0UxQ z;$MPOZnNae2Duuce~7|2MCfhNg*hZ9{+8H3?ts9C8#xGaM&sN;2lriYkn9W>&Gry! z3b(Xx1x*FhQkD-~V+s~KBfr4M_#0{`=Yrh90yj}Ph~)Nx;1Y^8<418tu!$1<3?T*~ z7Dl0P3Uok-7w0MPFQexNG1P5;y~E8zEvE49>$(f|XWtkW2Mj`udPn)pb%} zrA%wRFp*xvDgC767w!9`0vx1=q!)w!G+9(-w&p*a@WXg{?T&%;qaVcHo>7ca%KX$B z^7|KBPo<2;kM{2mRnF8vKm`9qGV%|I{y!pKm8B(q^2V;;x2r!1VJ^Zz8bWa)!-7a8 zSRf@dqEPlsj!7}oNvFFAA)75})vTJUwQ03hD$I*j6_5xbtd_JkE2`IJD_fQ;a$EkO z{fQ{~e%PKgPJsD&PyEvDmg+Qf&p*-qu!#;1k2r_(H72{^(Z)htgh@F?VIgK#_&eS- z$~(qInec>)XIkv@+{o6^DJLpAb>!d}l1DK^(l%#OdD9tKK6#|_R?-%0V!`<9Hj z3w3chDwG*SFte@>Iqwq`J4M&{aHXzyigT620+Vf$X?3RFfeTcvx_e+(&Q*z)t>c0e zpZH$1Z3X%{^_vylHVOWT6tno=l&$3 z9^eQ@TwU#%WMQaFvaYp_we%_2-9=o{+ck zF{cKJCOjpW&qKQquyp2BXCAP920dcrZ}T1@piukx_NY;%2W>@Wca%=Ch~x5Oj58Hv z;D-_ALOZBF(Mqbcqjd}P3iDbek#Dwzu`WRs`;hRIr*n0PV7vT+%Io(t}8KZ zpp?uc2eW!v28ipep0XNDPZt7H2HJ6oey|J3z!ng#1H~x_k%35P+Cp%mqXJ~cV0xdd z^4m5^K_dQ^Sg?$P`))ccV=O>C{Ds(C2WxX$LMC5vy=*44pP&)X5DOPYfqE${)hDg< z3hcG%U%HZ39=`#Ko4Uctg&@PQLf>?0^D|4J(_1*TFMOMB!Vv1_mnOq$BzXQdOGqgy zOp#LBZ!c>bPjY1NTXksZmbAl0A^Y&(%a3W-k>bE&>K?px5Cm%AT2E<&)Y?O*?d80d zgI5l~&Mve;iXm88Q+Fw7{+`PtN4G7~mJWR^z7XmYQ>uoiV!{tL)hp|= zS(M)813PM`d<501>{NqaPo6BZ^T{KBaqEVH(2^Vjeq zgeMeMpd*1tE@@);hGjuoVzF>Cj;5dNNwh40CnU+0DSKb~GEMb_# zT8Z&gz%SkHq6!;_6dQFYE`+b`v4NT7&@P>cA1Z1xmXy<2htaDhm@XXMp!g($ zw(7iFoH2}WR`UjqjaqOQ$ecNt@c|K1H1kyBArTTjLp%-M`4nzOhkfE#}dOpcd;b#suq8cPJ&bf5`6Tq>ND(l zib{VrPZ>{KuaIg}Y$W>A+nrvMg+l4)-@2jpAQ5h(Tii%Ni^-UPVg{<1KGU2EIUNGaXcEkOedJOusFT9X3%Pz$R+-+W+LlRaY-a$5r?4V zbPzgQl22IPG+N*iBRDH%l{Zh$fv9$RN1sU@Hp3m=M}{rX%y#;4(x1KR2yCO7Pzo>rw(67E{^{yUR`91nX^&MxY@FwmJJbyPAoWZ9Z zcBS$r)&ogYBn{DOtD~tIVJUiq|1foX^*F~O4hlLp-g;Y2wKLLM=?(r3GDqsPmUo*? zwKMEi*%f)C_@?(&&hk>;m07F$X7&i?DEK|jdRK=CaaNu-)pX>n3}@%byPKVkpLzBq z{+Py&!`MZ^4@-;iY`I4#6G@aWMv{^2VTH7|WF^u?3vsB|jU3LgdX$}=v7#EHRN(im zI(3q-eU$s~r=S#EWqa_2!G?b~ z<&brq1vvUTJH380=gcNntZw%7UT8tLAr-W49;9y^=>TDaTC|cKA<(gah#2M|l~j)w zY8goo28gj$n&zcNgqX1Qn6=<8?R0`FVO)g4&QtJAbW3G#D)uNeac-7cH5W#6i!%BH z=}9}-f+FrtEkkrQ?nkoMQ1o-9_b+&=&C2^h!&mWFga#MCrm85hW;)1pDt;-uvQG^D zntSB?XA*0%TIhtWDS!KcI}kp3LT>!(Nlc(lQN?k^bS8Q^GGMfo}^|%7s;#r+pybl@?KA++|FJ zr%se9(B|g*ERQU96az%@4gYrxRRxaM2*b}jNsG|0dQi;Rw{0WM0E>rko!{QYAJJKY z)|sX0N$!8d9E|kND~v|f>3YE|uiAnqbkMn)hu$if4kUkzKqoNoh8v|S>VY1EKmgO} zR$0UU2o)4i4yc1inx3}brso+sio{)gfbLaEgLahj8(_Z#4R-v) zglqwI%`dsY+589a8$Mu7#7_%kN*ekHupQ#48DIN^uhDxblDg3R1yXMr^NmkR z7J_NWCY~fhg}h!_aXJ#?wsZF$q`JH>JWQ9`jbZzOBpS`}-A$Vgkq7+|=lPx9H7QZG z8i8guMN+yc4*H*ANr$Q-3I{FQ-^;8ezWS2b8rERp9TMOLBxiG9J*g5=?h)mIm3#CGi4JSq1ohFrcrxx@`**K5%T}qbaCGldV!t zVeM)!U3vbf5FOy;(h08JnhSGxm)8Kqxr9PsMeWi=b8b|m_&^@#A3lL;bVKTBx+0v8 zLZeWAxJ~N27lsOT2b|qyp$(CqzqgW@tyy?CgwOe~^i;ZH zlL``i4r!>i#EGBNxV_P@KpYFQLz4Bdq{#zA&sc)*@7Mxsh9u%e6Ke`?5Yz1jkTdND zR8!u_yw_$weBOU}24(&^Bm|(dSJ(v(cBct}87a^X(v>nVLIr%%D8r|&)mi+iBc;B;x;rKq zd8*X`r?SZsTNCPQqoFOrUz8nZO?225Z#z(B!4mEp#ZJBzwd7jW1!`sg*?hPMJ$o`T zR?KrN6OZA1H{9pA;p0cSSu;@6->8aJm1rrO-yDJ7)lxuk#npUk7WNER1Wwnpy%u zF=t6iHzWU(L&=vVSSc^&D_eYP3TM?HN!Tgq$SYC;pSIPWW;zeNm7Pgub#yZ@7WPw#f#Kl)W4%B>)+8%gpfoH1qZ;kZ*RqfXYeGXJ_ zk>2otbp+1By`x^1V!>6k5v8NAK@T;89$`hE0{Pc@Q$KhG0jOoKk--Qx!vS~lAiypV zCIJ&6B@24`!TxhJ4_QS*S5;;Pk#!f(qIR7*(c3dN*POKtQe)QvR{O2@QsM%ujEAWEm) z+PM=G9hSR>gQ`Bv2(k}RAv2+$7qq(mU`fQ+&}*i%-RtSUAha>70?G!>?w%F(b4k!$ zvm;E!)2`I?etmSUFW7WflJ@8Nx`m_vE2HF#)_BiD#FaNT|IY@!uUbd4v$wTglIbIX zblRy5=wp)VQzsn0_;KdM%g<8@>#;E?vypTf=F?3f@SSdZ;XpX~J@l1;p#}_veWHp>@Iq_T z@^7|h;EivPYv1&u0~l9(a~>dV9Uw10QqB6Dzu1G~-l{*7IktljpK<_L8m0|7VV_!S zRiE{u97(%R-<8oYJ{molUd>vlGaE-C|^<`hppdDz<7OS13$#J zZ+)(*rZIDSt^Q$}CRk0?pqT5PN5TT`Ya{q(BUg#&nAsg6apPMhLTno!SRq1e60fl6GvpnwDD4N> z9B=RrufY8+g3_`@PRg+(+gs2(bd;5#{uTZk96CWz#{=&h9+!{_m60xJxC%r&gd_N! z>h5UzVX%_7@CUeAA1XFg_AF%(uS&^1WD*VPS^jcC!M2v@RHZML;e(H-=(4(3O&bX- zI6>usJOS+?W&^S&DL{l|>51ZvCXUKlH2XKJPXnHjs*oMkNM#ZDLx!oaM5(%^)5XaP zk6&+P16sA>vyFe9v`Cp5qnbE#r#ltR5E+O3!WnKn`56Grs2;sqr3r# zp@Zp<^q`5iq8OqOlJ`pIuyK@3zPz&iJ0Jcc`hDQ1bqos2;}O|$i#}e@ua*x5VCSx zJAp}+?Hz++tm9dh3Fvm_bO6mQo38al#>^O0g)Lh^&l82+&x)*<n7^Sw-AJo9tEzZDwyJ7L^i7|BGqHu+ea6(&7jKpBq>~V z8CJxurD)WZ{5D0?s|KMi=e7A^JVNM6sdwg@1Eg_+Bw=9j&=+KO1PG|y(mP1@5~x>d z=@c{EWU_jTSjiJl)d(>`qEJ;@iOBm}alq8;OK;p(1AdH$)I9qHNmxxUArdzBW0t+Qeyl)m3?D09770g z)hzXEOy>2_{?o%2B%k%z4d23!pZcoxyW1Ik{|m7Q1>fm4`wsRrl)~h z_=Z*zYL+EG@DV1{6@5@(Ndu!Q$l_6Qlfoz@79q)Kmsf~J7t1)tl#`MD<;1&CAA zH8;i+oBm89dTTDl{aH`cmTPTt@^K-%*sV+t4X9q0Z{A~vEEa!&rRRr=0Rbz4NFCJr zLg2u=0QK@w9XGE=6(-JgeP}G#WG|R&tfHRA3a9*zh5wNTBAD;@YYGx%#E4{C#Wlfo z%-JuW9=FA_T6mR2-Vugk1uGZvJbFvVVWT@QOWz$;?u6+CbyQsbK$>O1APk|xgnh_8 zc)s@Mw7#0^wP6qTtyNq2G#s?5j~REyoU6^lT7dpX{T-rhZWHD%dik*=EA7bIJgOVf_Ga!yC8V^tkTOEHe+JK@Fh|$kfNxO^= z#lpV^(ZQ-3!^_BhV>aXY~GC9{8%1lOJ}6vzXDvPhC>JrtXwFBC+!3a*Z-%#9}i z#<5&0LLIa{q!rEIFSFc9)>{-_2^qbOg5;_A9 ztQ))C6#hxSA{f9R3Eh^`_f${pBJNe~pIQ`tZVR^wyp}=gLK}e5_vG@w+-mp#Fu>e| z*?qBp5CQ5zu+Fi}xAs)YY1;bKG!htqR~)DB$ILN6GaChoiy%Bq@i+1ZnANC0U&D z_4k$=YP47ng+0NhuEt}6C;9-JDd8i5S>`Ml==9wHDQFOsAlmtrVwurYDw_)Ihfk35 zJDBbe!*LUpg%4n>BExWz>KIQ9vexUu^d!7rc_kg#Bf= z7TLz|l*y*3d2vi@c|pX*@ybf!+Xk|2*z$@F4K#MT8Dt4zM_EcFmNp31#7qT6(@GG? zdd;sSY9HHuDb=w&|K%sm`bYX#%UHKY%R`3aLMO?{T#EI@FNNFNO>p@?W*i0z(g2dt z{=9Ofh80Oxv&)i35AQN>TPMjR^UID-T7H5A?GI{MD_VeXZ%;uo41dVm=uT&ne2h0i zv*xI%9vPtdEK@~1&V%p1sFc2AA`9?H)gPnRdlO~URx!fiSV)j?Tf5=5F>hnO=$d$x zzaIfr*wiIc!U1K*$JO@)gP4%xp!<*DvJSv7p}(uTLUb=MSb@7_yO+IsCj^`PsxEl& zIxsi}s3L?t+p+3FXYqujGhGwTx^WXgJ1}a@Yq5mwP0PvGEr*qu7@R$9j>@-q1rz5T zriz;B^(ex?=3Th6h;7U`8u2sDlfS{0YyydK=*>-(NOm9>S_{U|eg(J~C7O zIe{|LK=Y`hXiF_%jOM8Haw3UtaE{hWdzo3BbD6ud7br4cODBtN(~Hl+odP0SSWPw;I&^m)yLw+nd#}3#z}?UIcX3=SssI}`QwY=% zAEXTODk|MqTx}2DVG<|~(CxgLyi*A{m>M@1h^wiC)4Hy>1K7@|Z&_VPJsaQoS8=ex zDL&+AZdQa>ylxhT_Q$q=60D5&%pi6+qlY3$3c(~rsITX?>b;({FhU!7HOOhSP7>bmTkC8KM%!LRGI^~y3Ug+gh!QM=+NZXznM)?L3G=4=IMvFgX3BAlyJ z`~jjA;2z+65D$j5xbv9=IWQ^&-K3Yh`vC(1Qz2h2`o$>Cej@XRGff!it$n{@WEJ^N z41qk%Wm=}mA*iwCqU_6}Id!SQd13aFER3unXaJJXIsSnxvG2(hSCP{i&QH$tL&TPx zDYJsuk+%laN&OvKb-FHK$R4dy%M7hSB*yj#-nJy?S9tVoxAuDei{s}@+pNT!vLOIC z8g`-QQW8FKp3cPsX%{)0B+x+OhZ1=L7F-jizt|{+f1Ga7%+!BXqjCjH&x|3%?UbN# zh?$I1^YokvG$qFz5ySK+Ja5=mkR&p{F}ev**rWdKMko+Gj^?Or=UH?SCg#0F(&a_y zXOh}dPv0D9l0RVedq1~jCNV=8?vZfU-Xi|nkeE->;ohG3U7z+^0+HV17~-_Mv#mV` zzvwUJJ15v5wwKPv-)i@dsEo@#WEO9zie7mdRAbgL2kjbW4&lk$vxkbq=w5mGKZK6@ zjXWctDkCRx58NJD_Q7e}HX`SiV)TZMJ}~zY6P1(LWo`;yDynY_5_L?N-P`>ALfmyl z8C$a~FDkcwtzK9m$tof>(`Vu3#6r#+v8RGy#1D2)F;vnsiL&P-c^PO)^B-4VeJteLlT@25sPa z%W~q5>YMjj!mhN})p$47VA^v$Jo6_s{!y?}`+h+VM_SN`!11`|;C;B};B&Z<@%FOG z_YQVN+zFF|q5zKab&e4GH|B;sBbKimHt;K@tCH+S{7Ry~88`si7}S)1E{21nldiu5 z_4>;XTJa~Yd$m4A9{Qbd)KUAm7XNbZ4xHbg3a8-+1uf*$1PegabbmCzgC~1WB2F(W zYj5XhVos!X!QHuZXCatkRsdEsSCc+D2?*S7a+(v%toqyxhjz|`zdrUvsxQS{J>?c& zvx*rHw^8b|v^7wq8KWVofj&VUitbm*a&RU_ln#ZFA^3AKEf<#T%8I!Lg3XEsdH(A5 zlgh&M_XEoal)i#0tcq8c%Gs6`xu;vvP2u)D9p!&XNt z!TdF_H~;`g@fNXkO-*t<9~;iEv?)Nee%hVe!aW`N%$cFJ(Dy9+Xk*odyFj72T!(b%Vo5zvCGZ%3tkt$@Wcx8BWEkefI1-~C_3y*LjlQ5%WEz9WD8i^ z2MV$BHD$gdPJV4IaV)G9CIFwiV=ca0cfXdTdK7oRf@lgyPx;_7*RRFk=?@EOb9Gcz zg~VZrzo*Snp&EE{$CWr)JZW)Gr;{B2ka6B!&?aknM-FENcl%45#y?oq9QY z3^1Y5yn&^D67Da4lI}ljDcphaEZw2;tlYuzq?uB4b9Mt6!KTW&ptxd^vF;NbX=00T z@nE1lIBGgjqs?ES#P{ZfRb6f!At51vk%<0X%d_~NL5b8UyfQMPDtfU@>ijA0NP3UU zh{lCf`Wu7cX!go`kUG`1K=7NN@SRGjUKuo<^;@GS!%iDXbJs`o6e`v3O8-+7vRkFm z)nEa$sD#-v)*Jb>&Me+YIW3PsR1)h=-Su)))>-`aRcFJG-8icomO4J@60 zw10l}BYxi{eL+Uu0xJYk-Vc~BcR49Qyyq!7)PR27D`cqGrik=?k1Of>gY7q@&d&Ds zt7&WixP`9~jjHO`Cog~RA4Q%uMg+$z^Gt&vn+d3&>Ux{_c zm|bc;k|GKbhZLr-%p_f%dq$eiZ;n^NxoS-Nu*^Nx5vm46)*)=-Bf<;X#?`YC4tLK; z?;u?shFbXeks+dJ?^o$l#tg*1NA?(1iFff@I&j^<74S!o;SWR^Xi);DM%8XiWpLi0 zQE2dL9^a36|L5qC5+&Pf0%>l&qQ&)OU4vjd)%I6{|H+pw<0(a``9w(gKD&+o$8hOC zNAiShtc}e~ob2`gyVZx59y<6Fpl*$J41VJ-H*e-yECWaDMmPQi-N8XI3 z%iI@ljc+d}_okL1CGWffeaejlxWFVDWu%e=>H)XeZ|4{HlbgC-Uvof4ISYQzZ0Um> z#Ov{k1c*VoN^f(gfiueuag)`TbjL$XVq$)aCUBL_M`5>0>6Ska^*Knk__pw{0I>jA zzh}Kzg{@PNi)fcAk7jMAdi-_RO%x#LQszDMS@_>iFoB+zJ0Q#CQJzFGa8;pHFdi`^ zxnTC`G$7Rctm3G8t8!SY`GwFi4gF|+dAk7rh^rA{NXzc%39+xSYM~($L(pJ(8Zjs* zYdN_R^%~LiGHm9|ElV4kVZGA*T$o@YY4qpJOxGHlUi*S*A(MrgQ{&xoZQo+#PuYRs zv3a$*qoe9gBqbN|y|eaH=w^LE{>kpL!;$wRahY(hhzRY;d33W)m*dfem@)>pR54Qy z ze;^F?mwdU?K+=fBabokSls^6_6At#1Sh7W*y?r6Ss*dmZP{n;VB^LDxM1QWh;@H0J z!4S*_5j_;+@-NpO1KfQd&;C7T`9ak;X8DTRz$hDNcjG}xAfg%gwZSb^zhE~O);NMO zn2$fl7Evn%=Lk!*xsM#(y$mjukN?A&mzEw3W5>_o+6oh62kq=4-`e3B^$rG=XG}Kd zK$blh(%!9;@d@3& zGFO60j1Vf54S}+XD?%*uk7wW$f`4U3F*p7@I4Jg7f`Il}2H<{j5h?$DDe%wG7jZQL zI{mj?t?Hu>$|2UrPr5&QyK2l3mas?zzOk0DV30HgOQ|~xLXDQ8M3o#;CNKO8RK+M; zsOi%)js-MU>9H4%Q)#K_me}8OQC1u;f4!LO%|5toa1|u5Q@#mYy8nE9IXmR}b#sZK z3sD395q}*TDJJA9Er7N`y=w*S&tA;mv-)Sx4(k$fJBxXva0_;$G6!9bGBw13c_Uws zXks4u(8JA@0O9g5f?#V~qR5*u5aIe2HQO^)RW9TTcJk28l`Syl>Q#ZveEE4Em+{?%iz6=V3b>rCm9F zPQQm@-(hfNdo2%n?B)u_&Qh7^^@U>0qMBngH8}H|v+Ejg*Dd(Y#|jgJ-A zQ_bQscil%eY}8oN7ZL+2r|qv+iJY?*l)&3W_55T3GU;?@Om*(M`u0DXAsQ7HSl56> z4P!*(%&wRCb?a4HH&n;lAmr4rS=kMZb74Akha2U~Ktni>>cD$6jpugjULq)D?ea%b zk;UW0pAI~TH59P+o}*c5Ei5L-9OE;OIBt>^(;xw`>cN2`({Rzg71qrNaE=cAH^$wP zNrK9Glp^3a%m+ilQj0SnGq`okjzmE7<3I{JLD6Jn^+oas=h*4>Wvy=KXqVBa;K&ri z4(SVmMXPG}0-UTwa2-MJ=MTfM3K)b~DzSVq8+v-a0&Dsv>4B65{dBhD;(d44CaHSM zb!0ne(*<^Q%|nuaL`Gb3D4AvyO8wyygm=1;9#u5x*k0$UOwx?QxR*6Od8>+ujfyo0 zJ}>2FgW_iv(dBK2OWC-Y=Tw!UwIeOAOUUC;h95&S1hn$G#if+d;*dWL#j#YWswrz_ zMlV=z+zjZJ%SlDhxf)vv@`%~$Afd)T+MS1>ZE7V$Rj#;J*<9Ld=PrK0?qrazRJWx) z(BTLF@Wk279nh|G%ZY7_lK7=&j;x`bMND=zgh_>>-o@6%8_#Bz!FnF*onB@_k|YCF z?vu!s6#h9bL3@tPn$1;#k5=7#s*L;FLK#=M89K^|$3LICYWIbd^qguQp02w5>8p-H z+@J&+pP_^iF4Xu>`D>DcCnl8BUwwOlq6`XkjHNpi@B?OOd`4{dL?kH%lt78(-L}eah8?36zw9d-dI6D{$s{f=M7)1 zRH1M*-82}DoFF^Mi$r}bTB5r6y9>8hjL54%KfyHxn$LkW=AZ(WkHWR;tIWWr@+;^^ zVomjAWT)$+rn%g`LHB6ZSO@M3KBA? z+W7ThSBgpk`jZHZUrp`F;*%6M5kLWy6AW#T{jFHTiKXP9ITrMlEdti7@&AT_a-BA!jc(Kt zWk>IdY-2Zbz?U1)tk#n_Lsl?W;0q`;z|t9*g-xE!(}#$fScX2VkjSiboKWE~afu5d z2B@9mvT=o2fB_>Mnie=TDJB+l`GMKCy%2+NcFsbpv<9jS@$X37K_-Y!cvF5NEY`#p z3sWEc<7$E*X*fp+MqsOyMXO=<2>o8)E(T?#4KVQgt=qa%5FfUG_LE`n)PihCz2=iNUt7im)s@;mOc9SR&{`4s9Q6)U31mn?}Y?$k3kU z#h??JEgH-HGt`~%)1ZBhT9~uRi8br&;a5Y3K_Bl1G)-y(ytx?ok9S*Tz#5Vb=P~xH z^5*t_R2It95=!XDE6X{MjLYn4Eszj9Y91T2SFz@eYlx9Z9*hWaS$^5r7=W5|>sY8}mS(>e9Ez2qI1~wtlA$yv2e-Hjn&K*P z2zWSrC~_8Wrxxf#%QAL&f8iH2%R)E~IrQLgWFg8>`Vnyo?E=uiALoRP&qT{V2{$79 z%9R?*kW-7b#|}*~P#cA@q=V|+RC9=I;aK7Pju$K-n`EoGV^-8Mk=-?@$?O37evGKn z3NEgpo_4{s>=FB}sqx21d3*=gKq-Zk)U+bM%Q_}0`XGkYh*+jRaP+aDnRv#Zz*n$pGp zEU9omuYVXH{AEx>=kk}h2iKt!yqX=EHN)LF}z1j zJx((`CesN1HxTFZ7yrvA2jTPmKYVij>45{ZH2YtsHuGzIRotIFj?(8T@ZWUv{_%AI zgMZlB03C&FtgJqv9%(acqt9N)`4jy4PtYgnhqev!r$GTIOvLF5aZ{tW5MN@9BDGu* zBJzwW3sEJ~Oy8is`l6Ly3an7RPtRr^1Iu(D!B!0O241Xua>Jee;Rc7tWvj!%#yX#m z&pU*?=rTVD7pF6va1D@u@b#V@bShFr3 zMyMbNCZwT)E-%L-{%$3?n}>EN>ai7b$zR_>=l59mW;tfKj^oG)>_TGCJ#HbLBsNy$ zqAqPagZ3uQ(Gsv_-VrZmG&hHaOD#RB#6J8&sL=^iMFB=gH5AIJ+w@sTf7xa&Cnl}@ zxrtzoNq>t?=(+8bS)s2p3>jW}tye0z2aY_Dh@(18-vdfvn;D?sv<>UgL{Ti08$1Q+ zZI3q}yMA^LK=d?YVg({|v?d1|R?5 zL0S3fw)BZazRNNX|7P4rh7!+3tCG~O8l+m?H} z(CB>8(9LtKYIu3ohJ-9ecgk+L&!FX~Wuim&;v$>M4 zUfvn<=Eok(63Ubc>mZrd8d7(>8bG>J?PtOHih_xRYFu1Hg{t;%+hXu2#x%a%qzcab zv$X!ccoj)exoOnaco_jbGw7KryOtuf(SaR-VJ0nAe(1*AA}#QV1lMhGtzD>RoUZ;WA?~!K{8%chYn?ttlz17UpDLlhTkGcVfHY6R<2r4E{mU zq-}D?+*2gAkQYAKrk*rB%4WFC-B!eZZLg4(tR#@kUQHIzEqV48$9=Q(~J_0 zy1%LSCbkoOhRO!J+Oh#;bGuXe;~(bIE*!J@i<%_IcB7wjhB5iF#jBn5+u~fEECN2* z!QFh!m<(>%49H12Y33+?$JxKV3xW{xSs=gxkxW-@Xds^|O1`AmorDKrE8N2-@ospk z=Au%h=f!`_X|G^A;XWL}-_L@D6A~*4Yf!5RTTm$!t8y&fp5_oqvBjW{FufS`!)5m% z2g(=9Ap6Y2y(9OYOWuUVGp-K=6kqQ)kM0P^TQT{X{V$*sN$wbFb-DaUuJF*!?EJPl zJev!UsOB^UHZ2KppYTELh+kqDw+5dPFv&&;;C~=u$Mt+Ywga!8YkL2~@g67}3wAQP zrx^RaXb1(c7vwU8a2se75X(cX^$M{FH4AHS7d2}heqqg4F0!1|Na>UtAdT%3JnS!B)&zelTEj$^b0>Oyfw=P-y-Wd^#dEFRUN*C{!`aJIHi<_YA2?piC%^ zj!p}+ZnBrM?ErAM+D97B*7L8U$K zo(IR-&LF(85p+fuct9~VTSdRjs`d-m|6G;&PoWvC&s8z`TotPSoksp;RsL4VL@CHf z_3|Tn%`ObgRhLmr60<;ya-5wbh&t z#ycN_)3P_KZN5CRyG%LRO4`Ot)3vY#dNX9!f!`_>1%4Q`81E*2BRg~A-VcN7pcX#j zrbl@7`V%n z6J53(m?KRzKb)v?iCuYWbH*l6M77dY4keS!%>}*8n!@ROE4!|7mQ+YS4dff1JJC(t z6Fnuf^=dajqHpH1=|pb(po9Fr8it^;2dEk|Ro=$fxqK$^Yix{G($0m-{RCFQJ~LqUnO7jJcjr zl*N*!6WU;wtF=dLCWzD6kW;y)LEo=4wSXQDIcq5WttgE#%@*m><@H;~Q&GniA-$in z`sjWFLgychS1kIJmPtd-w6%iKkj&dGhtB%0)pyy0M<4HZ@ZY0PWLAd7FCrj&i|NRh?>hZj*&FYnyu%Ur`JdiTu&+n z78d3n)Rl6q&NwVj_jcr#s5G^d?VtV8bkkYco5lV0LiT+t8}98LW>d)|v|V3++zLbHC(NC@X#Hx?21J0M*gP2V`Yd^DYvVIr{C zSc4V)hZKf|OMSm%FVqSRC!phWSyuUAu%0fredf#TDR$|hMZihJ__F!)Nkh6z)d=NC z3q4V*K3JTetxCPgB2_)rhOSWhuXzu+%&>}*ARxUaDeRy{$xK(AC0I=9%X7dmc6?lZNqe-iM(`?Xn3x2Ov>sej6YVQJ9Q42>?4lil?X zew-S>tm{=@QC-zLtg*nh5mQojYnvVzf3!4TpXPuobW_*xYJs;9AokrXcs!Ay z;HK>#;G$*TPN2M!WxdH>oDY6k4A6S>BM0Nimf#LfboKxJXVBC=RBuO&g-=+@O-#0m zh*aPG16zY^tzQLNAF7L(IpGPa+mDsCeAK3k=IL6^LcE8l0o&)k@?dz!79yxUquQIe($zm5DG z5RdXTv)AjHaOPv6z%99mPsa#8OD@9=URvHoJ1hYnV2bG*2XYBgB!-GEoP&8fLmWGg z9NG^xl5D&3L^io&3iYweV*qhc=m+r7C#Jppo$Ygg;jO2yaFU8+F*RmPL` zYxfGKla_--I}YUT353k}nF1zt2NO?+kofR8Efl$Bb^&llgq+HV_UYJUH7M5IoN0sT z4;wDA0gs55ZI|FmJ0}^Pc}{Ji-|#jdR$`!s)Di4^g3b_Qr<*Qu2rz}R6!B^;`Lj3sKWzjMYjexX)-;f5Y+HfkctE{PstO-BZan0zdXPQ=V8 zS8cBhnQyy4oN?J~oK0zl!#S|v6h-nx5to7WkdEk0HKBm;?kcNO*A+u=%f~l&aY*+J z>%^Dz`EQ6!+SEX$>?d(~|MNWU-}JTrk}&`IR|Ske(G^iMdk04)Cxd@}{1=P0U*%L5 zMFH_$R+HUGGv|ju2Z>5x(-aIbVJLcH1S+(E#MNe9g;VZX{5f%_|Kv7|UY-CM(>vf= z!4m?QS+AL+rUyfGJ;~uJGp4{WhOOc%2ybVP68@QTwI(8kDuYf?#^xv zBmOHCZU8O(x)=GVFn%tg@TVW1)qJJ_bU}4e7i>&V?r zh-03>d3DFj&@}6t1y3*yOzllYQ++BO-q!)zsk`D(z||)y&}o%sZ-tUF>0KsiYKFg6 zTONq)P+uL5Vm0w{D5Gms^>H1qa&Z##*X31=58*r%Z@Ko=IMXX{;aiMUp-!$As3{sq z0EEk02MOsgGm7$}E%H1ys2$yftNbB%1rdo@?6~0!a8Ym*1f;jIgfcYEF(I_^+;Xdr z2a>&oc^dF3pm(UNpazXgVzuF<2|zdPGjrNUKpdb$HOgNp*V56XqH`~$c~oSiqx;8_ zEz3fHoU*aJUbFJ&?W)sZB3qOSS;OIZ=n-*#q{?PCXi?Mq4aY@=XvlNQdA;yVC0Vy+ z{Zk6OO!lMYWd`T#bS8FV(`%flEA9El;~WjZKU1YmZpG#49`ku`oV{Bdtvzyz3{k&7 zlG>ik>eL1P93F zd&!aXluU_qV1~sBQf$F%sM4kTfGx5MxO0zJy<#5Z&qzNfull=k1_CZivd-WAuIQf> zBT3&WR|VD|=nKelnp3Q@A~^d_jN3@$x2$f@E~e<$dk$L@06Paw$);l*ewndzL~LuU zq`>vfKb*+=uw`}NsM}~oY}gW%XFwy&A>bi{7s>@(cu4NM;!%ieP$8r6&6jfoq756W z$Y<`J*d7nK4`6t`sZ;l%Oen|+pk|Ry2`p9lri5VD!Gq`U#Ms}pgX3ylAFr8(?1#&dxrtJgB>VqrlWZf61(r`&zMXsV~l{UGjI7R@*NiMJLUoK*kY&gY9kC@^}Fj* zd^l6_t}%Ku<0PY71%zQL`@}L}48M!@=r)Q^Ie5AWhv%#l+Rhu6fRpvv$28TH;N7Cl z%I^4ffBqx@Pxpq|rTJV)$CnxUPOIn`u278s9#ukn>PL25VMv2mff)-RXV&r`Dwid7}TEZxXX1q(h{R6v6X z&x{S_tW%f)BHc!jHNbnrDRjGB@cam{i#zZK*_*xlW@-R3VDmp)<$}S%t*@VmYX;1h zFWmpXt@1xJlc15Yjs2&e%)d`fimRfi?+fS^BoTcrsew%e@T^}wyVv6NGDyMGHSKIQ zC>qFr4GY?#S#pq!%IM_AOf`#}tPoMn7JP8dHXm(v3UTq!aOfEXNRtEJ^4ED@jx%le zvUoUs-d|2(zBsrN0wE(Pj^g5wx{1YPg9FL1)V1JupsVaXNzq4fX+R!oVX+q3tG?L= z>=s38J_!$eSzy0m?om6Wv|ZCbYVHDH*J1_Ndajoh&?L7h&(CVii&rmLu+FcI;1qd_ zHDb3Vk=(`WV?Uq;<0NccEh0s`mBXcEtmwt6oN99RQt7MNER3`{snV$qBTp={Hn!zz z1gkYi#^;P8s!tQl(Y>|lvz{5$uiXsitTD^1YgCp+1%IMIRLiSP`sJru0oY-p!FPbI)!6{XM%)(_Dolh1;$HlghB-&e><;zU&pc=ujpa-(+S&Jj zX1n4T#DJDuG7NP;F5TkoG#qjjZ8NdXxF0l58RK?XO7?faM5*Z17stidTP|a%_N z^e$D?@~q#Pf+708cLSWCK|toT1YSHfXVIs9Dnh5R(}(I;7KhKB7RD>f%;H2X?Z9eR z{lUMuO~ffT!^ew= z7u13>STI4tZpCQ?yb9;tSM-(EGb?iW$a1eBy4-PVejgMXFIV_Ha^XB|F}zK_gzdhM z!)($XfrFHPf&uyFQf$EpcAfk83}91Y`JFJOiQ;v5ca?)a!IxOi36tGkPk4S6EW~eq z>WiK`Vu3D1DaZ}515nl6>;3#xo{GQp1(=uTXl1~ z4gdWxr-8a$L*_G^UVd&bqW_nzMM&SlNW$8|$lAfo@zb+P>2q?=+T^qNwblP*RsN?N zdZE%^Zs;yAwero1qaoqMp~|KL=&npffh981>2om!fseU(CtJ=bW7c6l{U5(07*e0~ zJRbid6?&psp)ilmYYR3ZIg;t;6?*>hoZ3uq7dvyyq-yq$zH$yyImjfhpQb@WKENSP zl;KPCE+KXzU5!)mu12~;2trrLfs&nlEVOndh9&!SAOdeYd}ugwpE-9OF|yQs(w@C9 zoXVX`LP~V>%$<(%~tE*bsq(EFm zU5z{H@Fs^>nm%m%wZs*hRl=KD%4W3|(@j!nJr{Mmkl`e_uR9fZ-E{JY7#s6i()WXB0g-b`R{2r@K{2h3T+a>82>722+$RM*?W5;Bmo6$X3+Ieg9&^TU(*F$Q3 zT572!;vJeBr-)x?cP;^w1zoAM`nWYVz^<6N>SkgG3s4MrNtzQO|A?odKurb6DGZffo>DP_)S0$#gGQ_vw@a9JDXs2}hV&c>$ zUT0;1@cY5kozKOcbN6)n5v)l#>nLFL_x?2NQgurQH(KH@gGe>F|$&@ zq@2A!EXcIsDdzf@cWqElI5~t z4cL9gg7{%~4@`ANXnVAi=JvSsj95-7V& zME3o-%9~2?cvlH#twW~99=-$C=+b5^Yv}Zh4;Mg-!LS zw>gqc=}CzS9>v5C?#re>JsRY!w|Mtv#%O3%Ydn=S9cQarqkZwaM4z(gL~1&oJZ;t; zA5+g3O6itCsu93!G1J_J%Icku>b3O6qBW$1Ej_oUWc@MI)| zQ~eyS-EAAnVZp}CQnvG0N>Kc$h^1DRJkE7xZqJ0>p<>9*apXgBMI-v87E0+PeJ-K& z#(8>P_W^h_kBkI;&e_{~!M+TXt@z8Po*!L^8XBn{of)knd-xp{heZh~@EunB2W)gd zAVTw6ZZasTi>((qpBFh(r4)k zz&@Mc@ZcI-4d639AfcOgHOU+YtpZ)rC%Bc5gw5o~+E-i+bMm(A6!uE>=>1M;V!Wl4 z<#~muol$FsY_qQC{JDc8b=$l6Y_@_!$av^08`czSm!Xan{l$@GO-zPq1s>WF)G=wv zDD8j~Ht1pFj)*-b7h>W)@O&m&VyYci&}K|0_Z*w`L>1jnGfCf@6p}Ef*?wdficVe_ zmPRUZ(C+YJU+hIj@_#IiM7+$4kH#VS5tM!Ksz01siPc-WUe9Y3|pb4u2qnn zRavJiRpa zq?tr&YV?yKt<@-kAFl3s&Kq#jag$hN+Y%%kX_ytvpCsElgFoN3SsZLC>0f|m#&Jhu zp7c1dV$55$+k78FI2q!FT}r|}cIV;zp~#6X2&}22$t6cHx_95FL~T~1XW21VFuatb zpM@6w>c^SJ>Pq6{L&f9()uy)TAWf;6LyHH3BUiJ8A4}od)9sriz~e7}l7Vr0e%(=>KG1Jay zW0azuWC`(|B?<6;R)2}aU`r@mt_#W2VrO{LcX$Hg9f4H#XpOsAOX02x^w9+xnLVAt z^~hv2guE-DElBG+`+`>PwXn5kuP_ZiOO3QuwoEr)ky;o$n7hFoh}Aq0@Ar<8`H!n} zspCC^EB=6>$q*gf&M2wj@zzfBl(w_@0;h^*fC#PW9!-kT-dt*e7^)OIU{Uw%U4d#g zL&o>6`hKQUps|G4F_5AuFU4wI)(%9(av7-u40(IaI|%ir@~w9-rLs&efOR@oQy)}{ z&T#Qf`!|52W0d+>G!h~5A}7VJky`C3^fkJzt3|M&xW~x-8rSi-uz=qBsgODqbl(W#f{Ew#ui(K)(Hr&xqZs` zfrK^2)tF#|U=K|_U@|r=M_Hb;qj1GJG=O=d`~#AFAccecIaq3U`(Ds1*f*TIs=IGL zp_vlaRUtFNK8(k;JEu&|i_m39c(HblQkF8g#l|?hPaUzH2kAAF1>>Yykva0;U@&oRV8w?5yEK??A0SBgh?@Pd zJg{O~4xURt7!a;$rz9%IMHQeEZHR8KgFQixarg+MfmM_OeX#~#&?mx44qe!wt`~dd zqyt^~ML>V>2Do$huU<7}EF2wy9^kJJSm6HoAD*sRz%a|aJWz_n6?bz99h)jNMp}3k ztPVbos1$lC1nX_OK0~h>=F&v^IfgBF{#BIi&HTL}O7H-t4+wwa)kf3AE2-Dx@#mTA z!0f`>vz+d3AF$NH_-JqkuK1C+5>yns0G;r5ApsU|a-w9^j4c+FS{#+7- zH%skr+TJ~W_8CK_j$T1b;$ql_+;q6W|D^BNK*A+W5XQBbJy|)(IDA=L9d>t1`KX2b zOX(Ffv*m?e>! zS3lc>XC@IqPf1g-%^4XyGl*1v0NWnwZTW?z4Y6sncXkaA{?NYna3(n@(+n+#sYm}A zGQS;*Li$4R(Ff{obl3#6pUsA0fKuWurQo$mWXMNPV5K66V!XYOyc})^>889Hg3I<{V^Lj9($B4Zu$xRr=89-lDz9x`+I8q(vEAimx1K{sTbs|5x7S zZ+7o$;9&9>@3K;5-DVzGw=kp7ez%1*kxhGytdLS>Q)=xUWv3k_x(IsS8we39Tijvr z`GKk>gkZTHSht;5q%fh9z?vk%sWO}KR04G9^jleJ^@ovWrob7{1xy7V=;S~dDVt%S za$Q#Th%6g1(hiP>hDe}7lcuI94K-2~Q0R3A1nsb7Y*Z!DtQ(Ic<0;TDKvc6%1kBdJ z$hF!{uALB0pa?B^TC}#N5gZ|CKjy|BnT$7eaKj;f>Alqdb_FA3yjZ4CCvm)D&ibL) zZRi91HC!TIAUl<|`rK_6avGh`!)TKk=j|8*W|!vb9>HLv^E%t$`@r@piI(6V8pqDG zBON7~=cf1ZWF6jc{qkKm;oYBtUpIdau6s+<-o^5qNi-p%L%xAtn9OktFd{@EjVAT% z#?-MJ5}Q9QiK_jYYWs+;I4&!N^(mb!%4zx7qO6oCEDn=8oL6#*9XIJ&iJ30O`0vsFy|fEVkw}*jd&B6!IYi+~Y)qv6QlM&V9g0 zh)@^BVDB|P&#X{31>G*nAT}Mz-j~zd>L{v{9AxrxKFw8j;ccQ$NE0PZCc(7fEt1xd z`(oR2!gX6}R+Z77VkDz^{I)@%&HQT5q+1xlf*3R^U8q%;IT8-B53&}dNA7GW`Ki&= z$lrdH zDCu;j$GxW<&v_4Te7=AE2J0u1NM_7Hl9$u{z(8#%8vvrx2P#R7AwnY|?#LbWmROa; zOJzU_*^+n(+k;Jd{e~So9>OF>fPx$Hb$?~K1ul2xr>>o@**n^6IMu8+o3rDp(X$cC z`wQt9qIS>yjA$K~bg{M%kJ00A)U4L+#*@$8UlS#lN3YA{R{7{-zu#n1>0@(#^eb_% zY|q}2)jOEM8t~9p$X5fpT7BZQ1bND#^Uyaa{mNcFWL|MoYb@>y`d{VwmsF&haoJuS2W7azZU0{tu#Jj_-^QRc35tjW~ae&zhKk!wD}#xR1WHu z_7Fys#bp&R?VXy$WYa$~!dMxt2@*(>@xS}5f-@6eoT%rwH zv_6}M?+piNE;BqaKzm1kK@?fTy$4k5cqYdN8x-<(o6KelwvkTqC3VW5HEnr+WGQlF zs`lcYEm=HPpmM4;Ich7A3a5Mb3YyQs7(Tuz-k4O0*-YGvl+2&V(B&L1F8qfR0@vQM-rF<2h-l9T12eL}3LnNAVyY_z51xVr$%@VQ-lS~wf3mnHc zoM({3Z<3+PpTFCRn_Y6cbxu9v>_>eTN0>hHPl_NQQuaK^Mhrv zX{q#80ot;ptt3#js3>kD&uNs{G0mQp>jyc0GG?=9wb33hm z`y2jL=J)T1JD7eX3xa4h$bG}2ev=?7f>-JmCj6){Upo&$k{2WA=%f;KB;X5e;JF3IjQBa4e-Gp~xv- z|In&Rad7LjJVz*q*+splCj|{7=kvQLw0F@$vPuw4m^z=B^7=A4asK_`%lEf_oIJ-O z{L)zi4bd#&g0w{p1$#I&@bz3QXu%Y)j46HAJKWVfRRB*oXo4lIy7BcVl4hRs<%&iQ zr|)Z^LUJ>qn>{6y`JdabfNNFPX7#3`x|uw+z@h<`x{J4&NlDjnknMf(VW_nKWT!Jh zo1iWBqT6^BR-{T=4Ybe+?6zxP_;A5Uo{}Xel%*=|zRGm1)pR43K39SZ=%{MDCS2d$~}PE-xPw4ZK6)H;Zc&0D5p!vjCn0wCe&rVIhchR9ql!p2`g0b@JsC^J#n_r*4lZ~u0UHKwo(HaHUJDHf^gdJhTdTW z3i7Zp_`xyKC&AI^#~JMVZj^9WsW}UR#nc#o+ifY<4`M+?Y9NTBT~p`ONtAFf8(ltr*ER-Ig!yRs2xke#NN zkyFcaQKYv>L8mQdrL+#rjgVY>Z2_$bIUz(kaqL}cYENh-2S6BQK-a(VNDa_UewSW` zMgHi<3`f!eHsyL6*^e^W7#l?V|42CfAjsgyiJsA`yNfAMB*lAsJj^K3EcCzm1KT zDU2+A5~X%ax-JJ@&7>m`T;;}(-e%gcYQtj}?ic<*gkv)X2-QJI5I0tA2`*zZRX(;6 zJ0dYfMbQ+{9Rn3T@Iu4+imx3Y%bcf2{uT4j-msZ~eO)5Z_T7NC|Nr3)|NWjomhv=E zXaVin)MY)`1QtDyO7mUCjG{5+o1jD_anyKn73uflH*ASA8rm+S=gIfgJ);>Zx*hNG z!)8DDCNOrbR#9M7Ud_1kf6BP)x^p(|_VWCJ+(WGDbYmnMLWc?O4zz#eiP3{NfP1UV z(n3vc-axE&vko^f+4nkF=XK-mnHHQ7>w05$Q}iv(kJc4O3TEvuIDM<=U9@`~WdKN* zp4e4R1ncR_kghW}>aE$@OOc~*aH5OOwB5U*Z)%{LRlhtHuigxH8KuDwvq5{3Zg{Vr zrd@)KPwVKFP2{rXho(>MTZZfkr$*alm_lltPob4N4MmhEkv`J(9NZFzA>q0Ch;!Ut zi@jS_=0%HAlN+$-IZGPi_6$)ap>Z{XQGt&@ZaJ(es!Po5*3}>R4x66WZNsjE4BVgn z>}xm=V?F#tx#e+pimNPH?Md5hV7>0pAg$K!?mpt@pXg6UW9c?gvzlNe0 z3QtIWmw$0raJkjQcbv-7Ri&eX6Ks@@EZ&53N|g7HU<;V1pkc&$3D#8k!coJ=^{=vf z-pCP;vr2#A+i#6VA?!hs6A4P@mN62XYY$#W9;MwNia~89i`=1GoFESI+%Mbrmwg*0 zbBq4^bA^XT#1MAOum)L&ARDXJ6S#G>&*72f50M1r5JAnM1p7GFIv$Kf9eVR(u$KLt z9&hQ{t^i16zL1c(tRa~?qr?lbSN;1k;%;p*#gw_BwHJRjcYPTj6>y-rw*dFTnEs95 z`%-AoPL!P16{=#RI0 zUb6#`KR|v^?6uNnY`zglZ#Wd|{*rZ(x&Hk8N6ob6mpX~e^qu5kxvh$2TLJA$M=rx zc!#ot+sS+-!O<0KR6+Lx&~zgEhCsbFY{i_DQCihspM?e z-V}HemMAvFzXR#fV~a=Xf-;tJ1edd}Mry@^=9BxON;dYr8vDEK<<{ zW~rg(ZspxuC&aJo$GTM!9_sXu(EaQJNkV9AC(ob#uA=b4*!Uf}B*@TK=*dBvKKPAF z%14J$S)s-ws9~qKsf>DseEW(ssVQ9__YNg}r9GGx3AJiZR@w_QBlGP>yYh0lQCBtf zx+G;mP+cMAg&b^7J!`SiBwC81M_r0X9kAr2y$0(Lf1gZK#>i!cbww(hn$;fLIxRf? z!AtkSZc-h76KGSGz%48Oe`8ZBHkSXeVb!TJt_VC>$m<#}(Z}!(3h631ltKb3CDMw^fTRy%Ia!b&at`^g7Ew-%WLT9(#V0OP9CE?uj62s>`GI3NA z!`$U+i<`;IQyNBkou4|-7^9^ylac-Xu!M+V5p5l0Ve?J0wTSV+$gYtoc=+Ve*OJUJ z$+uIGALW?}+M!J9+M&#bT=Hz@{R2o>NtNGu1yS({pyteyb>*sg4N`KAD?`u3F#C1y z2K4FKOAPASGZTep54PqyCG(h3?kqQQAxDSW@>T2d!n;9C8NGS;3A8YMRcL>b=<<%M zMiWf$jY;`Ojq5S{kA!?28o)v$;)5bTL<4eM-_^h4)F#eeC2Dj*S`$jl^yn#NjJOYT zx%yC5Ww@eX*zsM)P(5#wRd=0+3~&3pdIH7CxF_2iZSw@>kCyd z%M}$1p((Bidw4XNtk&`BTkU{-PG)SXIZ)yQ!Iol6u8l*SQ1^%zC72FP zLvG>_Z0SReMvB%)1@+et0S{<3hV@^SY3V~5IY(KUtTR{*^xJ^2NN{sIMD9Mr9$~(C$GLNlSpzS=fsbw-DtHb_T|{s z9OR|sx!{?F``H!gVUltY7l~dx^a(2;OUV^)7 z%@hg`8+r&xIxmzZ;Q&v0X%9P)U0SE@r@(lKP%TO(>6I_iF{?PX(bez6v8Gp!W_nd5 z<8)`1jcT)ImNZp-9rr4_1MQ|!?#8sJQx{`~7)QZ75I=DPAFD9Mt{zqFrcrXCU9MG8 zEuGcy;nZ?J#M3!3DWW?Zqv~dnN6ijlIjPfJx(#S0cs;Z=jDjKY|$w2s4*Xa1Iz953sN2Lt!Vmk|%ZwOOqj`sA--5Hiaq8!C%LV zvWZ=bxeRV(&%BffMJ_F~~*FdcjhRVNUXu)MS(S#67rDe%Ler=GS+WysC1I2=Bmbh3s6wdS}o$0 zz%H08#SPFY9JPdL6blGD$D-AaYi;X!#zqib`(XX*i<*eh+2UEPzU4}V4RlC3{<>-~ zadGA8lSm>b7Z!q;D_f9DT4i)Q_}ByElGl*Cy~zX%IzHp)@g-itZB6xM70psn z;AY8II99e6P2drgtTG5>`^|7qg`9MTp%T~|1N3tBqV}2zgow3TFAH{XPor0%=HrkXnKyxyozHlJ6 zd3}OWkl?H$l#yZqOzZbMI+lDLoH48;s10!m1!K87g;t}^+A3f3e&w{EYhVPR0Km*- zh5-ku$Z|Ss{2?4pGm(Rz!0OQb^_*N`)rW{z)^Cw_`a(_L9j=&HEJl(!4rQy1IS)>- zeTIr>hOii`gc(fgYF(cs$R8l@q{mJzpoB5`5r>|sG zBpsY}RkY(g5`bj~D>(;F8v*DyjX(#nVLSs>)XneWI&%Wo>a0u#4A?N<1SK4D}&V1oN)76 z%S>a2n3n>G`YY1>0Hvn&AMtMuI_?`5?4y3w2Hnq4Qa2YH5 zxKdfM;k467djL31Y$0kd9FCPbU=pHBp@zaIi`Xkd80;%&66zvSqsq6%aY)jZacfvw ztkWE{ZV6V2WL9e}Dvz|!d96KqVkJU@5ryp#rReeWu>mSrOJxY^tWC9wd0)$+lZc%{ zY=c4#%OSyQJvQUuy^u}s8DN8|8T%TajOuaY^)R-&8s@r9D`(Ic4NmEu)fg1f!u`xUb;9t#rM z>}cY=648@d5(9A;J)d{a^*ORdVtJrZ77!g~^lZ9@)|-ojvW#>)Jhe8$7W3mhmQh@S zU=CSO+1gSsQ+Tv=x-BD}*py_Ox@;%#hPb&tqXqyUW9jV+fonnuCyVw=?HR>dAB~Fg z^vl*~y*4|)WUW*9RC%~O1gHW~*tJb^a-j;ae2LRNo|0S2`RX>MYqGKB^_ng7YRc@! zFxg1X!VsvXkNuv^3mI`F2=x6$(pZdw=jfYt1ja3FY7a41T07FPdCqFhU6%o|Yb6Z4 zpBGa=(ao3vvhUv#*S{li|EyujXQPUV;0sa5!0Ut)>tPWyC9e0_9(=v*z`TV5OUCcx zT=w=^8#5u~7<}8Mepqln4lDv*-~g^VoV{(+*4w(q{At6d^E-Usa2`JXty++Oh~on^ z;;WHkJsk2jvh#N|?(2PLl+g!M0#z_A;(#Uy=TzL&{Ei5G9#V{JbhKV$Qmkm%5tn!CMA? z@hM=b@2DZWTQ6>&F6WCq6;~~WALiS#@{|I+ucCmD6|tBf&e;$_)%JL8$oIQ%!|Xih1v4A$=7xNO zZVz$G8;G5)rxyD+M0$20L$4yukA_D+)xmK3DMTH3Q+$N&L%qB)XwYx&s1gkh=%qGCCPwnwhbT4p%*3R)I}S#w7HK3W^E%4w z2+7ctHPx3Q97MFYB48HfD!xKKb(U^K_4)Bz(5dvwyl*R?)k;uHEYVi|{^rvh)w7}t z`tnH{v9nlVHj2ign|1an_wz0vO)*`3RaJc#;(W-Q6!P&>+@#fptCgtUSn4!@b7tW0&pE2Qj@7}f#ugu4*C)8_}AMRuz^WG zc)XDcOPQjRaGptRD^57B83B-2NKRo!j6TBAJntJPHNQG;^Oz}zt5F^kId~miK3J@l ztc-IKp6qL!?u~q?qfGP0I~$5gvq#-0;R(oLU@sYayr*QH95fnrYA*E|n%&FP@Cz`a zSdJ~(c@O^>qaO`m9IQ8sd8!L<+)GPJDrL7{4{ko2gWOZel^3!($Gjt|B&$4dtfTmBmC>V`R&&6$wpgvdmns zxcmfS%9_ZoN>F~azvLFtA(9Q5HYT#A(byGkESnt{$Tu<73$W~reB4&KF^JBsoqJ6b zS?$D7DoUgzLO-?P`V?5_ub$nf1p0mF?I)StvPomT{uYjy!w&z$t~j&en=F~hw|O(1 zlV9$arQmKTc$L)Kupwz_zA~deT+-0WX6NzFPh&d+ly*3$%#?Ca9Z9lOJsGVoQ&1HNg+)tJ_sw)%oo*DK)iU~n zvL``LqTe=r=7SwZ@LB)9|3QB5`0(B9r(iR}0nUwJss-v=dXnwMRQFYSRK1blS#^g(3@z{`=8_CGDm!LESTWig zzm1{?AG&7`uYJ;PoFO$o8RWuYsV26V{>D-iYTnvq7igWx9@w$EC*FV^vpvDl@i9yp zPIqiX@hEZF4VqzI3Y)CHhR`xKN8poL&~ak|wgbE4zR%Dm(a@?bw%(7(!^>CM!^4@J z6Z)KhoQP;WBq_Z_&<@i2t2&xq>N>b;Np2rX?yK|-!14iE2T}E|jC+=wYe~`y38g3J z8QGZquvqBaG!vw&VtdXWX5*i5*% zJP~7h{?&E|<#l{klGPaun`IgAJ4;RlbRqgJz5rmHF>MtJHbfqyyZi53?Lhj=(Ku#& z__ubmZIxzSq3F90Xur!1)Vqe6b@!ueHA!93H~jdHmaS5Q^CULso}^poy)0Op6!{^9 zWyCyyIrdBP4fkliZ%*g+J-A!6VFSRF6Liu6G^^=W>cn81>4&7(c7(6vCGSAJ zQZ|S3mb|^Wf=yJ(h~rq`iiW~|n#$+KcblIR<@|lDtm!&NBzSG-1;7#YaU+-@=xIm4 zE}edTYd~e&_%+`dIqqgFntL-FxL3!m4yTNt<(^Vt9c6F(`?9`u>$oNxoKB29<}9FE zgf)VK!*F}nW?}l95%RRk8N4^Rf8)Xf;drT4<|lUDLPj^NPMrBPL;MX&0oGCsS za3}vWcF(IPx&W6{s%zwX{UxHX2&xLGfT{d9bWP!g;Lg#etpuno$}tHoG<4Kd*=kpU z;4%y(<^yj(UlG%l-7E9z_Kh2KoQ19qT3CR@Ghr>BAgr3Vniz3LmpC4g=g|A3968yD2KD$P7v$ zx9Q8`2&qH3&y-iv0#0+jur@}k`6C%7fKbCr|tHX2&O%r?rBpg`YNy~2m+ z*L7dP$RANzVUsG_Lb>=__``6vA*xpUecuGsL+AW?BeSwyoQfDlXe8R1*R1M{0#M?M zF+m19`3<`gM{+GpgW^=UmuK*yMh3}x)7P738wL8r@(Na6%ULPgbPVTa6gh5Q(SR0f znr6kdRpe^(LVM;6Rt(Z@Lsz3EX*ry6(WZ?w>#ZRelx)N%sE+MN>5G|Z8{%@b&D+Ov zPU{shc9}%;G7l;qbonIb_1m^Qc8ez}gTC-k02G8Rl?7={9zBz8uRX2{XJQ{vZhs67avlRn| zgRtWl0Lhjet&!YC47GIm%1gdq%T24_^@!W3pCywc89X4I5pnBCZDn(%!$lOGvS*`0!AoMtqxNPFgaMR zwoW$p;8l6v%a)vaNsesED3f}$%(>zICnoE|5JwP&+0XI}JxPccd+D^gx`g`=GsUc0 z9Uad|C+_@_0%JmcObGnS@3+J^0P!tg+fUZ_w#4rk#TlJYPXJiO>SBxzs9(J;XV9d{ zmTQE1(K8EYaz9p^XLbdWudyIPJlGPo0U*)fAh-jnbfm@SYD_2+?|DJ-^P+ojG{2{6 z>HJtedEjO@j_tqZ4;Zq1t5*5cWm~W?HGP!@_f6m#btM@46cEMhhK{(yI&jG)fwL1W z^n_?o@G8a-jYt!}$H*;{0#z8lANlo!9b@!c5K8<(#lPlpE!z86Yq#>WT&2} z;;G1$pD%iNoj#Z=&kij5&V1KHIhN-h<;{HC5wD)PvkF>CzlQOEx_0;-TJ*!#&{Wzt zKcvq^SZIdop}y~iouNqtU7K7+?eIz-v_rfNM>t#i+dD$s_`M;sjGubTdP)WI*uL@xPOLHt#~T<@Yz>xt50ZoTw;a(a}lNiDN-J${gOdE zx?8LOA|tv{Mb}=TTR=LcqMqbCJkKj+@;4Mu)Cu0{`~ohix6E$g&tff)aHeUAQQ%M? zIN4uSUTzC1iMEWL*W-in1y)C`E+R8j?4_?X4&2Zv5?QdkNMz(k} zw##^Ikx`#_s>i&CO_mu@vJJ*|3ePRDl5pq$9V^>D;g0R%l>lw;ttyM6Sy`NBF{)Lr zSk)V>mZr96+aHY%vTLLt%vO-+juw6^SO_ zYGJaGeWX6W(TOQx=5oTGXOFqMMU*uZyt>MR-Y`vxW#^&)H zk0!F8f*@v6NO@Z*@Qo)+hlX40EWcj~j9dGrLaq%1;DE_%#lffXCcJ;!ZyyyZTz74Q zb2WSly6sX{`gQeToQsi1-()5EJ1nJ*kXGD`xpXr~?F#V^sxE3qSOwRSaC9x9oa~jJ zTG9`E|q zC5Qs1xh}jzb5UPYF`3N9YuMnI7xsZ41P;?@c|%w zl=OxLr6sMGR+`LStLvh)g?fA5p|xbUD;yFAMQg&!PEDYxVYDfA>oTY;CFt`cg?Li1 z0b})!9Rvw&j#*&+D2))kXLL z0+j=?7?#~_}N-qdEIP>DQaZh#F(#e0WNLzwUAj@r694VJ8?Dr5_io2X49XYsG^ zREt0$HiNI~6VV!ycvao+0v7uT$_ilKCvsC+VDNg7yG1X+eNe^3D^S==F3ByiW0T^F zH6EsH^}Uj^VPIE&m)xlmOScYR(w750>hclqH~~dM2+;%GDXT`u4zG!p((*`Hwx41M z4KB+`hfT(YA%W)Ve(n+Gu9kuXWKzxg{1ff^xNQw>w%L-)RySTk9kAS92(X0Shg^Q? zx1YXg_TLC^?h6!4mBqZ9pKhXByu|u~gF%`%`vdoaGBN3^j4l!4x?Bw4Jd)Z4^di}! zXlG1;hFvc>H?bmmu1E7Vx=%vahd!P1#ZGJOJYNbaek^$DHt`EOE|Hlij+hX>ocQFSLVu|wz`|KVl@Oa;m2k6b*mNK2Vo{~l9>Qa3@B7G7#k?)aLx;w6U ze8bBq%vF?5v>#TspEoaII!N}sRT~>bh-VWJ7Q*1qsz%|G)CFmnttbq$Ogb{~YK_=! z{{0vhlW@g!$>|}$&4E3@k`KPElW6x#tSX&dfle>o!irek$NAbDzdd2pVeNzk4&qgJ zXvNF0$R96~g0x+R1igR=Xu&X_Hc5;!Ze&C)eUTB$9wW&?$&o8Yxhm5s(S`;?{> z*F?9Gr0|!OiKA>Rq-ae=_okB6&yMR?!JDer{@iQgIn=cGxs-u^!8Q$+N&pfg2WM&Z zulHu=Uh~U>fS{=Nm0x>ACvG*4R`Dx^kJ65&Vvfj`rSCV$5>c04N26Rt2S?*kh3JKq z9(3}5T?*x*AP(X2Ukftym0XOvg~r6Ms$2x&R&#}Sz23aMGU&7sU-cFvE3Eq`NBJe84VoftWF#v7PDAp`@V zRFCS24_k~;@~R*L)eCx@Q9EYmM)Sn}HLbVMyxx%{XnMBDc-YZ<(DXDBYUt8$u5Zh} zBK~=M9cG$?_m_M61YG+#|9Vef7LfbH>(C21&aC)x$^Lg}fa#SF){RX|?-xZjSOrn# z2ZAwUF)$VB<&S;R3FhNSQOV~8w%A`V9dWyLiy zgt7G=Z4t|zU3!dh5|s(@XyS|waBr$>@=^Dspmem8)@L`Ns{xl%rGdX!R(BiC5C7Vo zXetb$oC_iXS}2x_Hy}T(hUUNbO47Q@+^4Q`h>(R-;OxCyW#eoOeC51jzxnM1yxBrp zz6}z`(=cngs6X05e79o_B7@3K|Qpe3n38Py_~ zpi?^rj!`pq!7PHGliC$`-8A^Ib?2qgJJCW+(&TfOnFGJ+@-<<~`7BR0f4oSINBq&R z2CM`0%WLg_Duw^1SPwj-{?BUl2Y=M4e+7yL1{C&&f&zjF06#xf>VdLozgNye(BNgSD`=fFbBy0HIosLl@JwCQl^s;eTnc( z3!r8G=K>zb`|bLLI0N|eFJk%s)B>oJ^M@AQzqR;HUjLsOqW<0v>1ksT_#24*U@R3HJu*A^#1o#P3%3_jq>icD@<`tqU6ICEgZrME(xX#?i^Z z%Id$_uyQGlFD-CcaiRtRdGn|K`Lq5L-rx7`vYYGH7I=eLfHRozPiUtSe~Tt;IN2^gCXmf2#D~g2@9bhzK}3nphhG%d?V7+Zq{I2?Gt*!NSn_r~dd$ zqkUOg{U=MI?Ehx@`(X%rQB?LP=CjJ*V!rec{#0W2WshH$X#9zep!K)tzZoge*LYd5 z@g?-j5_mtMp>_WW`p*UNUZTFN{_+#m*bJzt{hvAdkF{W40{#L3w6gzPztnsA_4?&0 z(+>pv!zB16rR-(nm(^c>Z(its{ny677vT8sF564^mlZvJ!h65}OW%Hn|2OXbOQM%b z{6C54Z2v;^hyMQ;UH+HwFD2!F!VlQ}6Z{L0_9g5~CH0@Mqz?ZC`^QkhOU#$Lx<4`B zyZsa9uPF!rZDo8ZVfzzR#raQ>5|)k~_Ef*wDqG^76o)j!C4 zykvT*o$!-MBko@?{b~*Zf2*YMlImrK`cEp|#D7f%Twm<|C|dWD \(.*\)$'` + if expr "$link" : '/.*' > /dev/null; then + PRG="$link" + else + PRG=`dirname "$PRG"`"/$link" + fi +done +SAVED="`pwd`" +cd "`dirname \"$PRG\"`/" >/dev/null +APP_HOME="`pwd -P`" +cd "$SAVED" >/dev/null + +APP_NAME="Gradle" +APP_BASE_NAME=`basename "$0"` + +# Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. +DEFAULT_JVM_OPTS='"-Xmx64m"' + +# Use the maximum available, or set MAX_FD != -1 to use that value. +MAX_FD="maximum" + +warn () { + echo "$*" +} + +die () { + echo + echo "$*" + echo + exit 1 +} + +# OS specific support (must be 'true' or 'false'). +cygwin=false +msys=false +darwin=false +nonstop=false +case "`uname`" in + CYGWIN* ) + cygwin=true + ;; + Darwin* ) + darwin=true + ;; + MINGW* ) + msys=true + ;; + NONSTOP* ) + nonstop=true + ;; +esac + +CLASSPATH=$APP_HOME/gradle/wrapper/gradle-wrapper.jar + +# Determine the Java command to use to start the JVM. +if [ -n "$JAVA_HOME" ] ; then + if [ -x "$JAVA_HOME/jre/sh/java" ] ; then + # IBM's JDK on AIX uses strange locations for the executables + JAVACMD="$JAVA_HOME/jre/sh/java" + else + JAVACMD="$JAVA_HOME/bin/java" + fi + if [ ! -x "$JAVACMD" ] ; then + die "ERROR: JAVA_HOME is set to an invalid directory: $JAVA_HOME + +Please set the JAVA_HOME variable in your environment to match the +location of your Java installation." + fi +else + JAVACMD="java" + which java >/dev/null 2>&1 || die "ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. + +Please set the JAVA_HOME variable in your environment to match the +location of your Java installation." +fi + +# Increase the maximum file descriptors if we can. +if [ "$cygwin" = "false" -a "$darwin" = "false" -a "$nonstop" = "false" ] ; then + MAX_FD_LIMIT=`ulimit -H -n` + if [ $? -eq 0 ] ; then + if [ "$MAX_FD" = "maximum" -o "$MAX_FD" = "max" ] ; then + MAX_FD="$MAX_FD_LIMIT" + fi + ulimit -n $MAX_FD + if [ $? -ne 0 ] ; then + warn "Could not set maximum file descriptor limit: $MAX_FD" + fi + else + warn "Could not query maximum file descriptor limit: $MAX_FD_LIMIT" + fi +fi + +# For Darwin, add options to specify how the application appears in the dock +if $darwin; then + GRADLE_OPTS="$GRADLE_OPTS \"-Xdock:name=$APP_NAME\" \"-Xdock:icon=$APP_HOME/media/gradle.icns\"" +fi + +# For Cygwin, switch paths to Windows format before running java +if $cygwin ; then + APP_HOME=`cygpath --path --mixed "$APP_HOME"` + CLASSPATH=`cygpath --path --mixed "$CLASSPATH"` + JAVACMD=`cygpath --unix "$JAVACMD"` + + # We build the pattern for arguments to be converted via cygpath + ROOTDIRSRAW=`find -L / -maxdepth 1 -mindepth 1 -type d 2>/dev/null` + SEP="" + for dir in $ROOTDIRSRAW ; do + ROOTDIRS="$ROOTDIRS$SEP$dir" + SEP="|" + done + OURCYGPATTERN="(^($ROOTDIRS))" + # Add a user-defined pattern to the cygpath arguments + if [ "$GRADLE_CYGPATTERN" != "" ] ; then + OURCYGPATTERN="$OURCYGPATTERN|($GRADLE_CYGPATTERN)" + fi + # Now convert the arguments - kludge to limit ourselves to /bin/sh + i=0 + for arg in "$@" ; do + CHECK=`echo "$arg"|egrep -c "$OURCYGPATTERN" -` + CHECK2=`echo "$arg"|egrep -c "^-"` ### Determine if an option + + if [ $CHECK -ne 0 ] && [ $CHECK2 -eq 0 ] ; then ### Added a condition + eval `echo args$i`=`cygpath --path --ignore --mixed "$arg"` + else + eval `echo args$i`="\"$arg\"" + fi + i=$((i+1)) + done + case $i in + (0) set -- ;; + (1) set -- "$args0" ;; + (2) set -- "$args0" "$args1" ;; + (3) set -- "$args0" "$args1" "$args2" ;; + (4) set -- "$args0" "$args1" "$args2" "$args3" ;; + (5) set -- "$args0" "$args1" "$args2" "$args3" "$args4" ;; + (6) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" ;; + (7) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" ;; + (8) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" ;; + (9) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" "$args8" ;; + esac +fi + +# Escape application args +save () { + for i do printf %s\\n "$i" | sed "s/'/'\\\\''/g;1s/^/'/;\$s/\$/' \\\\/" ; done + echo " " +} +APP_ARGS=$(save "$@") + +# Collect all arguments for the java command, following the shell quoting and substitution rules +eval set -- $DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS "\"-Dorg.gradle.appname=$APP_BASE_NAME\"" -classpath "\"$CLASSPATH\"" org.gradle.wrapper.GradleWrapperMain "$APP_ARGS" + +# by default we should be in the correct project dir, but when run from Finder on Mac, the cwd is wrong +if [ "$(uname)" = "Darwin" ] && [ "$HOME" = "$PWD" ]; then + cd "$(dirname "$0")" +fi + +exec "$JAVACMD" "$@" diff --git a/examples/gradlew.bat b/examples/gradlew.bat new file mode 100644 index 00000000..6d57edc7 --- /dev/null +++ b/examples/gradlew.bat @@ -0,0 +1,84 @@ +@if "%DEBUG%" == "" @echo off +@rem ########################################################################## +@rem +@rem Gradle startup script for Windows +@rem +@rem ########################################################################## + +@rem Set local scope for the variables with windows NT shell +if "%OS%"=="Windows_NT" setlocal + +set DIRNAME=%~dp0 +if "%DIRNAME%" == "" set DIRNAME=. +set APP_BASE_NAME=%~n0 +set APP_HOME=%DIRNAME% + +@rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. +set DEFAULT_JVM_OPTS="-Xmx64m" + +@rem Find java.exe +if defined JAVA_HOME goto findJavaFromJavaHome + +set JAVA_EXE=java.exe +%JAVA_EXE% -version >NUL 2>&1 +if "%ERRORLEVEL%" == "0" goto init + +echo. +echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. +echo. +echo Please set the JAVA_HOME variable in your environment to match the +echo location of your Java installation. + +goto fail + +:findJavaFromJavaHome +set JAVA_HOME=%JAVA_HOME:"=% +set JAVA_EXE=%JAVA_HOME%/bin/java.exe + +if exist "%JAVA_EXE%" goto init + +echo. +echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME% +echo. +echo Please set the JAVA_HOME variable in your environment to match the +echo location of your Java installation. + +goto fail + +:init +@rem Get command-line arguments, handling Windows variants + +if not "%OS%" == "Windows_NT" goto win9xME_args + +:win9xME_args +@rem Slurp the command line arguments. +set CMD_LINE_ARGS= +set _SKIP=2 + +:win9xME_args_slurp +if "x%~1" == "x" goto execute + +set CMD_LINE_ARGS=%* + +:execute +@rem Setup the command line + +set CLASSPATH=%APP_HOME%\gradle\wrapper\gradle-wrapper.jar + +@rem Execute Gradle +"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %CMD_LINE_ARGS% + +:end +@rem End local scope for the variables with windows NT shell +if "%ERRORLEVEL%"=="0" goto mainEnd + +:fail +rem Set variable GRADLE_EXIT_CONSOLE if you need the _script_ return code instead of +rem the _cmd.exe /c_ return code! +if not "" == "%GRADLE_EXIT_CONSOLE%" exit 1 +exit /b 1 + +:mainEnd +if "%OS%"=="Windows_NT" endlocal + +:omega diff --git a/examples/settings.gradle b/examples/settings.gradle new file mode 100644 index 00000000..26f065f1 --- /dev/null +++ b/examples/settings.gradle @@ -0,0 +1,7 @@ +if (file(".build-local").exists()) { + includeBuild("../") { + dependencySubstitution { + substitute(module("ch.loway.oss.ari4java:ari4java")).with(project(":")) + } + } +} diff --git a/src/test/java/ch/loway/oss/ari4java/sandbox/sample/ConnectAndDial.java b/examples/src/main/java/ch/loway/oss/ari4java/examples/ConnectAndDial.java similarity index 99% rename from src/test/java/ch/loway/oss/ari4java/sandbox/sample/ConnectAndDial.java rename to examples/src/main/java/ch/loway/oss/ari4java/examples/ConnectAndDial.java index 8da9d21c..30f47e57 100644 --- a/src/test/java/ch/loway/oss/ari4java/sandbox/sample/ConnectAndDial.java +++ b/examples/src/main/java/ch/loway/oss/ari4java/examples/ConnectAndDial.java @@ -1,4 +1,4 @@ -package ch.loway.oss.ari4java.sandbox.sample; +package ch.loway.oss.ari4java.examples; import ch.loway.oss.ari4java.ARI; import ch.loway.oss.ari4java.tools.ARIException; diff --git a/src/test/java/ch/loway/oss/ari4java/sandbox/sample/Weasels.java b/examples/src/main/java/ch/loway/oss/ari4java/examples/Weasels.java similarity index 86% rename from src/test/java/ch/loway/oss/ari4java/sandbox/sample/Weasels.java rename to examples/src/main/java/ch/loway/oss/ari4java/examples/Weasels.java index 5da04a75..1f6252ac 100644 --- a/src/test/java/ch/loway/oss/ari4java/sandbox/sample/Weasels.java +++ b/examples/src/main/java/ch/loway/oss/ari4java/examples/Weasels.java @@ -1,4 +1,4 @@ -package ch.loway.oss.ari4java.sandbox.sample; +package ch.loway.oss.ari4java.examples; import ch.loway.oss.ari4java.ARI; import ch.loway.oss.ari4java.AriVersion; @@ -23,17 +23,21 @@ public class Weasels { private ARI ari; private Logger logger = LoggerFactory.getLogger(Weasels.class); - public static void main(String[] args) { - if (args.length != 3) { - System.out.println("Expecting 3 arguments: url user pass"); + public static void main(String[] args) throws Exception { + if (args.length < 3) { + System.err.println("** Expecting at least 3 arguments:\n url user pass [ariversion]"); System.exit(1); } - new Weasels().start(args[0], args[1], args[2]); + AriVersion ver = AriVersion.IM_FEELING_LUCKY; + if (args.length == 4) { + ver = AriVersion.fromVersionString(args[3]); + } + new Weasels().start(args[0], args[1], args[2], ver); } - private void start(String url, String user, String pass) { + private void start(String url, String user, String pass, AriVersion ver) { logger.info("THE START"); - boolean connected = connect(url, user, pass); + boolean connected = connect(url, user, pass, ver); if (connected) { try { weasels(); @@ -47,9 +51,9 @@ private void start(String url, String user, String pass) { logger.info("THE END"); } - private boolean connect(String url, String user, String pass) { + private boolean connect(String url, String user, String pass, AriVersion ver) { try { - ari = ARI.build(url, ARI_APP, user, pass, AriVersion.IM_FEELING_LUCKY); + ari = ARI.build(url, ARI_APP, user, pass, ver); logger.info("ARI Version: {}", ari.getVersion().version()); AsteriskInfo info = ari.asterisk().getInfo().execute(); logger.info("AsteriskInfo up since {}", info.getStatus().getStartup_time()); diff --git a/examples/helloworld/HelloAriWorld.java b/examples/src/main/java/helloworld/HelloAriWorld.java similarity index 79% rename from examples/helloworld/HelloAriWorld.java rename to examples/src/main/java/helloworld/HelloAriWorld.java index 5c3f33c9..7b11d304 100644 --- a/examples/helloworld/HelloAriWorld.java +++ b/examples/src/main/java/helloworld/HelloAriWorld.java @@ -6,8 +6,9 @@ import ch.loway.oss.ari4java.ARI; import ch.loway.oss.ari4java.AriFactory; import ch.loway.oss.ari4java.AriVersion; -import ch.loway.oss.ari4java.generated.AsteriskInfo; -import ch.loway.oss.ari4java.generated.Channel; +import ch.loway.oss.ari4java.generated.models.AsteriskInfo; +import ch.loway.oss.ari4java.generated.models.Channel; + import java.util.List; /** @@ -31,8 +32,8 @@ public static void main(String[] args) { "ari4java", "yothere", AriVersion.ARI_1_5_0); - AsteriskInfo info = ari.asterisk().getInfo(""); - List channels = ari.channels().list(); + AsteriskInfo info = ari.asterisk().getInfo().execute(); + List channels = ari.channels().list().execute(); System.out.println("There are " + channels.size() + " active channels now."); System.out.println( "System up since " + info.getStatus().getStartup_time() ); diff --git a/examples/src/main/resources/log4j2.properties b/examples/src/main/resources/log4j2.properties new file mode 100644 index 00000000..6f6701a0 --- /dev/null +++ b/examples/src/main/resources/log4j2.properties @@ -0,0 +1,17 @@ +status = error +name = PropertiesConfig +filters = threshold +filter.threshold.type = ThresholdFilter +filter.threshold.level = trace +appenders = console +appender.console.type = Console +appender.console.name = STDOUT +appender.console.layout.type = PatternLayout +appender.console.layout.pattern = %d{yyyy-MM-dd HH:mm:ss} %-5p [%.15t] %c{1.}:%L - %m%n +rootLogger.level = DEBUG +rootLogger.appenderRefs = stdout +rootLogger.appenderRef.stdout.ref = STDOUT +logger.ari4java.name = ch.loway.oss.ari4java +logger.ari4java.level = trace +logger.netty.name = io.netty +logger.netty.level = error From ea7fc0c71bec2d261a5f6624d8749aa9772a7e56 Mon Sep 17 00:00:00 2001 From: Graham Brown Date: Sun, 23 Feb 2020 18:47:47 +0200 Subject: [PATCH 114/220] change doc header down 1 point --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 55868bd6..bf277567 100644 --- a/README.md +++ b/README.md @@ -33,7 +33,7 @@ dependencies { ``` *The 1st repo declaration is temporary as we sort out moving from a private repo to an organization* -# Documentation +## Documentation - The [CHANGELOG](https://github.com/l3nz/ari4java/blob/master/CHANGELOG.md) - The [Wiki](https://github.com/l3nz/ari4java/wiki) has some more info on how to use the project - [Getting Started](https://github.com/l3nz/ari4java/wiki/Getting-Started) From 807b94aa9a08ad7feb0cf4929ac09e31d3ea39d2 Mon Sep 17 00:00:00 2001 From: Graham Brown Date: Sun, 23 Feb 2020 19:25:34 +0200 Subject: [PATCH 115/220] bump ver 0.9.1 --- build.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.gradle b/build.gradle index ad5ed881..3b557e4a 100644 --- a/build.gradle +++ b/build.gradle @@ -6,7 +6,7 @@ plugins { } group = 'ch.loway.oss.ari4java' -version = '0.9.0' +version = '0.9.1' java { sourceCompatibility = JavaVersion.VERSION_1_8 From 631f90fd54c366ad9f598215ef6ab4ee53073fbe Mon Sep 17 00:00:00 2001 From: Graham Brown Date: Sun, 23 Feb 2020 19:26:58 +0200 Subject: [PATCH 116/220] doc cleanup - all in the project Wiki now --- GETTING_STARTED.md | 32 ------------- NEWVERSION.md | 18 -------- docs/FAQ.md | 15 ------- docs/HELLOWORLD.md | 73 ------------------------------ docs/USAGE.md | 110 --------------------------------------------- 5 files changed, 248 deletions(-) delete mode 100644 GETTING_STARTED.md delete mode 100644 NEWVERSION.md delete mode 100644 docs/FAQ.md delete mode 100644 docs/HELLOWORLD.md delete mode 100644 docs/USAGE.md diff --git a/GETTING_STARTED.md b/GETTING_STARTED.md deleted file mode 100644 index 65d80d89..00000000 --- a/GETTING_STARTED.md +++ /dev/null @@ -1,32 +0,0 @@ -Getting started with ari4java (and ARI in general) is not that easy. This is because there are many moving parts involved: - -* An Asterisk server -* A specific configuration for Asterisk -* ari4java itself - -In order to reduce the cost of getting up and running, we thought of providing a pre-configured Docker image that runs Asterisk, -and an example that you can run yourself though an IDE. - -## Getting the Docker image - -This is quite easy - first you will have to install Docker; when it's up, you can then do a: - - docker run -p 18088:8088 -P -d lenz/asterisk-load-test-13 - -to run a Docker image with Asterisk 13 and bind its ARI port to local port 18088. - - -## Running your first ari4java program - -We have a very simple stub that: - -* Creates a a bridge -* Originates a call -* Monitor events for 20 seconds -* Destroys the bridge - -and that shows what it is doing on stdout. In order to run it, you just have to edit the credentials in ConnectAndDial.java. - - - - diff --git a/NEWVERSION.md b/NEWVERSION.md deleted file mode 100644 index cb43f9a2..00000000 --- a/NEWVERSION.md +++ /dev/null @@ -1,18 +0,0 @@ -## ARI Versions - -In the `codegen` folder there is a bash script: `getApis.sh` -that will get and recurse the Asterisk source generating the data required for the APIs - -Commit the changes as the Gradle build script always builds from those files - -## Deployment - -When a release is ready: - - - export BINTRAY_USER= - export BINTRAY_KEY={bintray.txt} - - ./gradlew clean :codegen:runCodegen buildProps build bintrayUpload - - diff --git a/docs/FAQ.md b/docs/FAQ.md deleted file mode 100644 index 40fa17f2..00000000 --- a/docs/FAQ.md +++ /dev/null @@ -1,15 +0,0 @@ -The ari4java Frequently Asked Questions (FAQs) -============================================== - -I get an error java.lang.UnsupportedOperationException: Method availble from ..." when calling a method -------------------------------------------------------------------------------------------------------- - -Most likely you are not binding to the correct version of Asterisk ARI for your Asterisk version. -While the API exposed is an union of all possible API's, different versions of ARI will implement -a subset of possible methods. So they exist in Java code, but they might not be callable on your very API. - -A common cause for this issue is using IM_FEELING_LUCKY as the ARI version, as version autodetection does not -really work now - see [Issue #18](https://github.com/l3nz/ari4java/issues/18). - - - diff --git a/docs/HELLOWORLD.md b/docs/HELLOWORLD.md deleted file mode 100644 index 1fe1ec4c..00000000 --- a/docs/HELLOWORLD.md +++ /dev/null @@ -1,73 +0,0 @@ -# Hello ARI World with ari4java - -This tutorial aims at showing a number of things: - -* Setting up Asterisk for working with ARI -* Connecting to ARI -* Running a simple call -* Showing how you could make it all non-blocking - -Enough to get us started! - -## Asterisk Setup -Edit `/etc/asterisk/ari.conf` and create a user `ari4java` that we will use for connecting. -``` -[general] -enabled = yes - -[ari4java] -type = user -read_only = no -password = yothere -password_format = plain -``` -Edit `/etc/asterisk/http.conf` and turn on the embedded HTTP server. -``` -[general] -enabled=yes -bindaddr=0.0.0.0 -bindport=8088 -``` -Reload Asterisk and connect to its CLI; if all goes well you should see: -``` -localhost*CLI> ari show users -r/o? Username ----- -------- -No ari4java -``` - -## Java Code - -In order to get started quickly with the ari4java library we suggest using gradle, -check the **Using the library** section in the [README](https://github.com/l3nz/ari4java/blob/master/README.md) - -First create an ARI object that acts as your master connector. -```java -ARI ari = ARI.build("http://10.10.5.41:8088/", "test-app", "ari4java", "yothere", AriVersion.IM_FEELING_LUCKY); -``` - -The easiest thing we can do is a synchronous query to list active channels. -```java -List channels = ari.channels().list().execute(); -``` -Please note that what we get back is Java objects, not just JSON blobs. -Everything is strongly typed. - -A non-blocking way is also available by supplying a callback to the execute. -```java -ari.channels().list().execute(new AriCallback>() { - @Override - public void onSuccess(List result) { - // code to handle the result ... - } - @Override - public void onFailure(RestException e) { - e.printStackTrace(); - } -}); -``` - -A working example can be found under the examples tree, as -in https://github.com/l3nz/ari4java/blob/master/examples/helloworld/HelloAriWorld.java - -Happy hacking! diff --git a/docs/USAGE.md b/docs/USAGE.md deleted file mode 100644 index a5dbe140..00000000 --- a/docs/USAGE.md +++ /dev/null @@ -1,110 +0,0 @@ -# Using ari4java - -To initialize: -```java -ARI ari = ARI.build("http://my-pbx-ip:8088/", "app-name", "user", "pass", AriVersion.ARI_x_x_x); -``` -`ARI_x_x_x` must be replaced with a valid version from `AriVersion` or you can use `AriVersion.IM_FEELING_LUCKY` -which tries to identify the version from the server. - -There are 1 of 2 ways to get an API: - -- Using the convenience methods in ARI (action) -```java -ActionApplications ac = ari.applications(); -``` -- or asking ARI to get an (action) implementation -```java -ActionApplications ac = ari.getActionImpl(ActionApplications.class); -``` - -There are also 1 of 2 ways for invoking an operation: - -- Using synchronous execution -```java -AsteriskInfo info = ari.asterisk().getInfo().execute(); -``` - -- or asynchronous execution -```java -AsteriskInfo info = ari.asterisk().getInfo().execute(new AriCallback() { - @Override - public void onSuccess(AsteriskInfo result) { - // handle result - } - @Override - public void onFailure(RestException e) { - e.printStackTrace(); - } -}); -``` - -An ARI application is pretty much useless unless you subscribe to and handle the events, -so you need to create the websocket and choose to subscribe to all events or only events for actions made by your app. -This must use the asynchronous execution as the events are asynchronous. -```java -AriCallback callback = new AriWSCallback() { - @Override - public void onSuccess(Message message) { - // code to handle the events ... - } - @Override - public void onFailure(RestException e) { - e.printStackTrace(); - } - @Override - public void onConnectionEvent(AriConnectionEvent event) { - // FYI - } -}; -ari.events().eventWebsocket("app-name").execute(callback); -// or subscribe to all events -// ari.events().eventWebsocket("app-name").setSubscribeAll(true).execute(callback); -``` -The Message object will be one of many subtypes, you'll have to introspect to find out which. -```java -public void onSuccess(Message message) { - if (message instanceof StasisStart) { - // handle the start (from dialplan or channels.originate API) - } else if (message instanceof StasisEnd) { - // handle the end - good bye - } -} -``` - -Most likely ARI applications are going to be long running applications, -so the above will be a common, however for convenience you can get a `MessageQueue` from ARI. -Which utilises a polling strategy which is not great in this event based world... -```java -MessageQueue queue = ari.getWebsocketQueue(); -// perform some actions... -Message message = queue.dequeueMax(10, 250); -if (message != null) { - // handle event -} -``` - -When you're done or you're quitting the application make sure to cleanup. -```java -ARI ari = ARI.build(...); -try { - // your logic -} finally { - ari.cleanup(); -} -``` - -If you want to be more multi-threaded it would be a good idea to implement a thread pool -and handle each event in a separate thread. -[Here](https://github.com/l3nz/ari4java/blob/master/src/test/java/ch/loway/oss/ari4java/sandbox/sample/Weasels.java) -is example with a fixed pool of 10 threads that handle each event. The thread will play the 'weasels-eaten-phonesys' -sound on when someone dials in and will hangup when playback is complete. -(assuming the dial plan executes `Stasis` and you have that sound) - -Dial plan (`/etc/asterisk/extensions.conf`): -``` -[default] -exten => _X.,1,NoOp(Incoming to ${EXTEN} send to Stasis}) -same => Answer() -same => Stasis(weasels-app) -``` From 8a505214b873311120be980f896dae777f8ec420 Mon Sep 17 00:00:00 2001 From: Graham Brown Date: Sun, 23 Feb 2020 23:06:26 +0200 Subject: [PATCH 117/220] 0.9.1 --- CHANGELOG.md | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index e8de3894..e9fe16c5 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,7 +1,10 @@ # ARI4Java Changelog ## [Unreleased] -[Unreleased]: https://github.com/l3nz/ari4java/compare/REL-0.9.0...HEAD +[Unreleased]: https://github.com/l3nz/ari4java/compare/REL-0.9.1...HEAD + +## [0.9.1] - 2020-02-23 +[0.9.0]: https://github.com/l3nz/ari4java/compare/REL-0.9.0...REL-0.9.1 ### Added - Test connection when creating ARI #19 ### Fixed From c5c7b30ee6e23f9c2e7460932ee64e5431b00abb Mon Sep 17 00:00:00 2001 From: Graham Brown Date: Sun, 23 Feb 2020 23:07:06 +0200 Subject: [PATCH 118/220] correct 0.9.1 link --- CHANGELOG.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index e9fe16c5..c8679aee 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -4,7 +4,7 @@ [Unreleased]: https://github.com/l3nz/ari4java/compare/REL-0.9.1...HEAD ## [0.9.1] - 2020-02-23 -[0.9.0]: https://github.com/l3nz/ari4java/compare/REL-0.9.0...REL-0.9.1 +[0.9.1]: https://github.com/l3nz/ari4java/compare/REL-0.9.0...REL-0.9.1 ### Added - Test connection when creating ARI #19 ### Fixed From a556f1680b91f376b12b87d4ec033363ddc0b044 Mon Sep 17 00:00:00 2001 From: Graham Brown Date: Mon, 24 Feb 2020 18:06:51 +0200 Subject: [PATCH 119/220] check swagger version to make sure no funnies in future if Asterisk change version --- .../main/java/ch/loway/oss/ari4java/codegen/DefMapper.java | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/codegen/src/main/java/ch/loway/oss/ari4java/codegen/DefMapper.java b/codegen/src/main/java/ch/loway/oss/ari4java/codegen/DefMapper.java index 4f964e7c..f2d93a11 100644 --- a/codegen/src/main/java/ch/loway/oss/ari4java/codegen/DefMapper.java +++ b/codegen/src/main/java/ch/loway/oss/ari4java/codegen/DefMapper.java @@ -59,6 +59,13 @@ public void parseJsonDefinition(File f, String apiVersion) throws IOException { } JsonNode rootNode = om.readTree(f); + + // check swagger version as the parser, Asterisk is currently using 1.1 + String currentVer = rootNode.get("swaggerVersion").asText(); + if (!"1.1".equalsIgnoreCase(currentVer) && !"1.2".equalsIgnoreCase(currentVer)) { + throw new RuntimeException("Unsupported Swagger Version: " + rootNode.get("swaggerVersion").asText() + " for file " + f.getAbsolutePath()); + } + List lModels = loadModels(rootNode.get("models"), f, apiVersion); Apis api1 = loadApis(rootNode.get("apis"), f, apiVersion); From bd28e95204281f207bdd1dd1d287d521b7fc2772 Mon Sep 17 00:00:00 2001 From: Graham Brown Date: Mon, 24 Feb 2020 21:26:55 +0200 Subject: [PATCH 120/220] Javadoc, toString and exceptions: Fixes #15 #20 & #149 --- .../loway/oss/ari4java/codegen/DefMapper.java | 1 + .../loway/oss/ari4java/codegen/VERSION.java | 2 +- .../oss/ari4java/codegen/genJava/JavaGen.java | 3 +- .../codegen/genJava/JavaInterface.java | 28 ++++++++-- .../oss/ari4java/codegen/models/Action.java | 2 +- .../oss/ari4java/codegen/models/Model.java | 37 ++++++++++---- .../ari4java/codegen/models/ModelField.java | 10 ++-- .../ari4java/codegen/models/Operation.java | 51 +++++++++++++++---- 8 files changed, 103 insertions(+), 31 deletions(-) diff --git a/codegen/src/main/java/ch/loway/oss/ari4java/codegen/DefMapper.java b/codegen/src/main/java/ch/loway/oss/ari4java/codegen/DefMapper.java index f2d93a11..e1ca8be2 100644 --- a/codegen/src/main/java/ch/loway/oss/ari4java/codegen/DefMapper.java +++ b/codegen/src/main/java/ch/loway/oss/ari4java/codegen/DefMapper.java @@ -443,6 +443,7 @@ private Apis loadApis(JsonNode apis, File f, String apiVersion) throws IOExcepti p.methodArgumentType = JavaPkgInfo.primitiveSignature.containsKey(p.javaType) ? JavaPkgInfo.primitiveSignature.get(p.javaType) : p.javaType; p.name = txt(parameter.get("name")); + p.description = txt(parameter.get("description")); p.required = txt(parameter.get("required")).equalsIgnoreCase("true"); p.type = Operation.ParamType.build(txt(parameter.get("paramType"))); op.params.add(p); diff --git a/codegen/src/main/java/ch/loway/oss/ari4java/codegen/VERSION.java b/codegen/src/main/java/ch/loway/oss/ari4java/codegen/VERSION.java index 9dbc90d3..d1bf6234 100644 --- a/codegen/src/main/java/ch/loway/oss/ari4java/codegen/VERSION.java +++ b/codegen/src/main/java/ch/loway/oss/ari4java/codegen/VERSION.java @@ -6,6 +6,6 @@ * @author lenz */ public class VERSION { - public static final String VER = "0.5"; + public static final String VER = "0.6"; } diff --git a/codegen/src/main/java/ch/loway/oss/ari4java/codegen/genJava/JavaGen.java b/codegen/src/main/java/ch/loway/oss/ari4java/codegen/genJava/JavaGen.java index d2374cb6..8697e2ad 100644 --- a/codegen/src/main/java/ch/loway/oss/ari4java/codegen/genJava/JavaGen.java +++ b/codegen/src/main/java/ch/loway/oss/ari4java/codegen/genJava/JavaGen.java @@ -39,6 +39,7 @@ public static void addBanner(StringBuilder sb, String multiLineBanner) { if (!row.isEmpty()) { row = row.replaceAll("

", "\n * "); row = row.replaceAll("
", "\n * "); + row = row.replaceAll("<", ">").replaceAll(">", "<"); sb.append(" * ").append(row).append("\n"); } } @@ -47,7 +48,7 @@ public static void addBanner(StringBuilder sb, String multiLineBanner) { } public static void addBanner(StringBuilder sb, String multilineBanner, String sinceVersion) { - multilineBanner += "\n@since " + sinceVersion; + multilineBanner += "\n@since " + sinceVersion.toUpperCase(); addBanner(sb, multilineBanner); } diff --git a/codegen/src/main/java/ch/loway/oss/ari4java/codegen/genJava/JavaInterface.java b/codegen/src/main/java/ch/loway/oss/ari4java/codegen/genJava/JavaInterface.java index 1dbbc3df..5f855bc7 100644 --- a/codegen/src/main/java/ch/loway/oss/ari4java/codegen/genJava/JavaInterface.java +++ b/codegen/src/main/java/ch/loway/oss/ari4java/codegen/genJava/JavaInterface.java @@ -111,19 +111,27 @@ public String getCodeToImplementMissingSignatures() { public String getCodeToImplementMissingSignatures(boolean addJsonIgnore) { if (definitions.isEmpty()) { - return " /* No missing signatures from interface */\n"; + return " /* No missing signatures from interface */\n\n"; } else { StringBuilder sb = new StringBuilder(); // generate empty methods that just throw an UnsupportedOperationException for (String s : definitions.values()) { - - String replaceTo = " {\n" - + " throw new UnsupportedOperationException(\"Method available from ...\");\n" + String ver = extractSinceVersion(s); + String error = "Method not available in this version"; + if (ver != null) { + error = "Method available from " + ver; + } + String replaceEnd = ")"; + if (s.endsWith("throws RestException;")) { + replaceEnd = ") throws RestException"; + } + String replaceTo = replaceEnd + " {\n" + + " throw new UnsupportedOperationException(\"" + error + "\");\n" + " }\n\n"; - s = s.replace(";", replaceTo); + s = s.replace((replaceEnd + ";"), replaceTo); if (addJsonIgnore) { s = s.replace("public", "@JsonIgnore public"); @@ -137,5 +145,15 @@ public String getCodeToImplementMissingSignatures(boolean addJsonIgnore) { } } + private String extractSinceVersion(String input) { + String[] lines = input.trim().split("\n"); + for (String line: lines) { + if (line.startsWith(" * @since ")) { + return line.substring(10); + } + } + return null; + } + } diff --git a/codegen/src/main/java/ch/loway/oss/ari4java/codegen/models/Action.java b/codegen/src/main/java/ch/loway/oss/ari4java/codegen/models/Action.java index b276ecb3..5cfdbaa2 100644 --- a/codegen/src/main/java/ch/loway/oss/ari4java/codegen/models/Action.java +++ b/codegen/src/main/java/ch/loway/oss/ari4java/codegen/models/Action.java @@ -34,7 +34,7 @@ void registerInterfaces(JavaInterface j, String apiVersion) { for (Operation o : operations) { String javaSignature = o.getSignature(); String definition = o.getDefinition(); - j.iKnow(javaSignature, definition, o.description, apiVersion); + j.iKnow(javaSignature, definition, o.getComment(), apiVersion); } } diff --git a/codegen/src/main/java/ch/loway/oss/ari4java/codegen/models/Model.java b/codegen/src/main/java/ch/loway/oss/ari4java/codegen/models/Model.java index dc14676e..d9aa2174 100644 --- a/codegen/src/main/java/ch/loway/oss/ari4java/codegen/models/Model.java +++ b/codegen/src/main/java/ch/loway/oss/ari4java/codegen/models/Model.java @@ -21,14 +21,13 @@ public class Model extends JavaPkgInfo { public String extendsModel = ""; public Set subTypes; public String comesFromFile = ""; - public List implementsInterafaces = new ArrayList(); + public List implementsInterfaces = new ArrayList(); public List imports = new ArrayList(); public List fields = new ArrayList(); public String additionalPreambleText = ""; - public Model() { imports.add("java.util.Date"); imports.add("java.util.List"); @@ -45,7 +44,7 @@ public String toString() { Collections.sort(imports); Collections.sort(fields); - Collections.sort(implementsInterafaces); + Collections.sort(implementsInterfaces); JavaInterface ji = getBaseInterface(); @@ -74,7 +73,7 @@ public String toString() { sb.append(" implements "); - for (String inf : implementsInterafaces) { + for (String inf : implementsInterfaces) { sb.append(inf).append(", "); } @@ -82,15 +81,37 @@ public String toString() { sb.append("java.io.Serializable {\n"); sb.append(" private static final long serialVersionUID = 1L;\n"); + boolean hasId = false; + boolean hasName = false; for (ModelField mf : fields) { ji.removeSignature(mf.getSignatureGet()); ji.removeSignature(mf.getSignatureSet()); - sb.append(mf.toString()); + if ("id".equalsIgnoreCase(mf.field)) { + hasId = true; + } else if ("name".equalsIgnoreCase(mf.field)) { + hasName = true; + } } sb.append(ji.getCodeToImplementMissingSignatures(true)); + if (hasId || hasName) { + sb.append(" public String toString() {\n return "); + sb.append("\"").append(getInterfaceName()).append("["); + if (hasId) { + sb.append("id=\" + id + \""); + } + if (hasId && hasName) { + sb.append(", "); + } + if (hasName) { + sb.append("name=\" + name + \""); + } + sb.append("]\""); + sb.append(";\n }\n\n"); + } + sb.append("}\n"); return sb.toString(); @@ -102,16 +123,14 @@ public void registerInterfaces(JavaInterface j, String apiVersion) { for (ModelField mf : fields) { String signature = mf.getSignatureGet(); String declaration = mf.getDeclarationGet(); - String comment = mf.comment; - + String comment = mf.comment + "\n@return " + mf.typeInterface; j.iKnow(signature, declaration, comment, apiVersion); } for (ModelField mf : fields) { String signature = mf.getSignatureSet(); String declaration = mf.getDeclarationSet(); - String comment = mf.comment; - + String comment = "@param val " + (mf.comment.trim().isEmpty() ? "the value" : mf.comment); j.iKnow(signature, declaration, comment, apiVersion); } diff --git a/codegen/src/main/java/ch/loway/oss/ari4java/codegen/models/ModelField.java b/codegen/src/main/java/ch/loway/oss/ari4java/codegen/models/ModelField.java index b985d989..88934e23 100644 --- a/codegen/src/main/java/ch/loway/oss/ari4java/codegen/models/ModelField.java +++ b/codegen/src/main/java/ch/loway/oss/ari4java/codegen/models/ModelField.java @@ -20,11 +20,9 @@ public class ModelField implements Comparable { public String toString() { StringBuilder sb = new StringBuilder(); - sb.append(" /** ") - .append(comment) - .append(" */\n"); sb.append(" private ").append(typeInterface).append(" ").append(field).append(";\n"); + JavaGen.addBanner(sb, comment + "\n@return " + typeInterface); sb.append(getDeclarationGet()).append(" {\n"); sb.append(" return "); if ("Date".equals(typeConcrete)) { @@ -32,7 +30,9 @@ public String toString() { } else { sb.append(field); } - sb.append(";\n }\n"); + sb.append(";\n }\n\n"); + + JavaGen.addBanner(sb, "@param val " + (comment.trim().isEmpty() ? " the value" : comment)); if (typeConcrete.startsWith("List")) { String innerType = typeConcrete.substring(5, typeConcrete.length() - 1); @@ -78,7 +78,7 @@ public String getDeclarationGet() { public String getDeclarationSet() { StringBuilder sb = new StringBuilder(); - sb.append(" public void ").append(setterName(field)).append("(").append(typeInterface).append(" val )"); + sb.append(" public void ").append(setterName(field)).append("(").append(typeInterface).append(" val)"); return sb.toString(); } diff --git a/codegen/src/main/java/ch/loway/oss/ari4java/codegen/models/Operation.java b/codegen/src/main/java/ch/loway/oss/ari4java/codegen/models/Operation.java index 0efe7546..84f3652c 100644 --- a/codegen/src/main/java/ch/loway/oss/ari4java/codegen/models/Operation.java +++ b/codegen/src/main/java/ch/loway/oss/ari4java/codegen/models/Operation.java @@ -27,11 +27,15 @@ public class Operation { public Action action; private JavaInterface ji; - private String toParmList(boolean withType, boolean onlyRequired) { + private String toParmList(boolean withType, boolean forComment) { StringBuilder sb = new StringBuilder(); boolean firstItem = true; for (Param p : params) { - if (onlyRequired && !p.required) { + if (!p.required) { + continue; + } + if (forComment) { + sb.append(p.getParamComment(null)); continue; } if (firstItem) { @@ -43,6 +47,9 @@ private String toParmList(boolean withType, boolean onlyRequired) { sb.append(p.javaType).append(" "); sb.append(p.name); } + if (forComment) { + sb.append("@return ").append(getInterfaceName()).append("\n"); + } return sb.toString(); } @@ -221,7 +228,7 @@ public String toJava() { sb.append(getDefinition()); sb.append(" {\n "); sb.append(getImplName()).append(" request = new ").append(getImplName()).append("("); - sb.append(toParmList(false, true)).append(");\n"); + sb.append(toParmList(false, false)).append(");\n"); sb.append(" request.setHttpClient(this.getHttpClient());\n"); sb.append(" request.setWsClient(this.getWsClient());\n"); sb.append(" request.setLiveActionList(this.getLiveActionList());\n"); @@ -249,7 +256,7 @@ public String getSignature() { public String getConstructorDefinition() { StringBuilder sb = new StringBuilder(); sb.append("public ").append(getImplName()).append("(") - .append(toParmList(true, true)).append(")"); + .append(toParmList(true, false)).append(")"); return sb.toString(); } @@ -260,7 +267,7 @@ public String getDefinition() { .append(" ").append(nickname) .append("("); - sb.append(toParmList(true, true)); + sb.append(toParmList(true, false)); sb.append(") throws RestException"); return sb.toString(); @@ -285,15 +292,25 @@ public void registerInterfaces(JavaInterface j, String apiVersion) { for (Param p : params) { String javaSignature = p.getSignature(getInterfaceName()); String definition = p.getDefinition(getInterfaceName()); - j.iKnow(javaSignature, definition, "", apiVersion); + j.iKnow(javaSignature, definition,p.getParamComment(getInterfaceName()), apiVersion); if (p.javaType.equals("Map")) { javaSignature = p.getSignatureForAddToMap(getInterfaceName()); definition = p.getDefinitionForAddToMap(getInterfaceName()); - j.iKnow(javaSignature, definition, "", apiVersion); + j.iKnow(javaSignature, definition, "@param key the attribute name\n" + + "@param value the attribute value\n" + + "@return " + getInterfaceName() + "\n", apiVersion); } } - j.iKnow(getSyncExecuteSignature(), getSyncExecuteDefinition(), "", apiVersion); - j.iKnow(getAsyncExecuteSignature(), getAsyncExecuteDefinition(), "", apiVersion); + String returnComment = "\n@return " + responseInterface; + if ("void".equalsIgnoreCase(responseInterface)) { + returnComment = ""; + } + j.iKnow(getSyncExecuteSignature(), getSyncExecuteDefinition(), "@throws RestException an error" + returnComment, apiVersion); + j.iKnow(getAsyncExecuteSignature(), getAsyncExecuteDefinition(), "@param callback AriCallback>" + responseInterface.replaceAll("^void$", "Void") + "<", apiVersion); + } + + public String getComment() { + return description + "\n" + toParmList(false, true) + "\n@throws RestException an error"; } /** @@ -301,6 +318,7 @@ public void registerInterfaces(JavaInterface j, String apiVersion) { */ public static class Param { public String name = ""; + public String description = ""; public ParamType type = ParamType.PATH; public String javaType = ""; public String methodArgumentType = ""; @@ -333,6 +351,21 @@ public String getDefinitionForAddToMap(String returnType) { .append("(String key, String value)"); return sb.toString(); } + + public String getParamComment(String returnType) { + StringBuilder sb = new StringBuilder(); + sb.append("@param ").append(name).append(" "); + if (description == null || description.trim().isEmpty()) { + sb.append(name); + } else { + sb.append(description); + } + sb.append("\n"); + if (returnType != null) { + sb.append("@return ").append(returnType).append("\n"); + } + return sb.toString(); + } } public static enum ParamType { From 09bf557174429fe3146fc4d39cdf6e51d18d9716 Mon Sep 17 00:00:00 2001 From: Graham Brown Date: Mon, 24 Feb 2020 21:29:28 +0200 Subject: [PATCH 121/220] update cl --- CHANGELOG.md | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index c8679aee..9836010b 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,6 +2,11 @@ ## [Unreleased] [Unreleased]: https://github.com/l3nz/ari4java/compare/REL-0.9.1...HEAD +### Fixed +- UnsupportedOperationException #15 +- Javadoc warnings #149 +### Added +- toString for generated model if there is an `id` or `name` field ## [0.9.1] - 2020-02-23 [0.9.1]: https://github.com/l3nz/ari4java/compare/REL-0.9.0...REL-0.9.1 From ca1ee7dc87accde32ec28ffec856d18d713f1657 Mon Sep 17 00:00:00 2001 From: Graham Brown Date: Tue, 25 Feb 2020 15:52:56 +0200 Subject: [PATCH 122/220] If Url doesn't end with a slash add one (Fixes #150) --- CHANGELOG.md | 1 + .../ch/loway/oss/ari4java/tools/http/NettyHttpClient.java | 7 +++++-- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 9836010b..774054d8 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -5,6 +5,7 @@ ### Fixed - UnsupportedOperationException #15 - Javadoc warnings #149 +- If Url doesn't end with a slash add one #150 ### Added - toString for generated model if there is an `id` or `name` field diff --git a/src/main/java/ch/loway/oss/ari4java/tools/http/NettyHttpClient.java b/src/main/java/ch/loway/oss/ari4java/tools/http/NettyHttpClient.java index 0f3b4b46..ed39a1f3 100644 --- a/src/main/java/ch/loway/oss/ari4java/tools/http/NettyHttpClient.java +++ b/src/main/java/ch/loway/oss/ari4java/tools/http/NettyHttpClient.java @@ -75,6 +75,9 @@ public NettyHttpClient() { } public void initialize(String baseUrl, String username, String password) throws URISyntaxException { + if (!baseUrl.endsWith("/")) { + baseUrl = baseUrl + "/"; + } logger.debug("initialize url: {}, user: {}", baseUrl, username); baseUri = new URI(baseUrl); String protocol = baseUri.getScheme(); @@ -289,8 +292,8 @@ private NettyHttpClientHandler httpActionSyncHandler(String uri, String method, private NettyHttpClientHandler httpActionSyncHandler(String uri, String method, List parametersQuery, String body, List errors, boolean binary) throws RestException { - logger.debug("Sync Action, uri: {}, method: {}", uri, method); HttpRequest request = buildRequest(uri, method, parametersQuery, body); + logger.debug("Sync Action - {} to {}", request.method().toString(), request.uri()); Channel ch = httpConnect().addListener(new ChannelFutureListener() { @Override public void operationComplete(ChannelFuture future) throws Exception { @@ -330,8 +333,8 @@ public void httpActionAsync(String uri, String method, List parameter String body, final List errors, final HttpResponseHandler responseHandler, boolean binary) { - logger.debug("Async Action, uri: {}, method: {}", uri, method); final HttpRequest request = buildRequest(uri, method, parametersQuery, body); + logger.debug("Async Action - {} to {}", request.method().toString(), request.uri()); // Get future channel ChannelFuture cf = httpConnect(); cf.addListener(new ChannelFutureListener() { From 42223f443fd12d34019a9fbf697f4ab14edb22f1 Mon Sep 17 00:00:00 2001 From: Graham Brown Date: Tue, 25 Feb 2020 22:49:56 +0200 Subject: [PATCH 123/220] git helper scripts to get ARI versions --- .gitignore | 1 + codegen/getApis.sh | 5 +++-- codegen/getVersions.sh | 28 ++++++++++++++++++++++++++++ 3 files changed, 32 insertions(+), 2 deletions(-) create mode 100755 codegen/getVersions.sh diff --git a/.gitignore b/.gitignore index 8bae480b..2385928f 100644 --- a/.gitignore +++ b/.gitignore @@ -25,5 +25,6 @@ build.xml src/main/generated/ src/main/resources/build.properties codegen/tmp/ +codegen/versions.md .build-local diff --git a/codegen/getApis.sh b/codegen/getApis.sh index 162b72c0..14b11471 100755 --- a/codegen/getApis.sh +++ b/codegen/getApis.sh @@ -10,13 +10,14 @@ then cd asterisk else cd tmp/asterisk - git pull + git checkout master --force + git pull origin master fi git log --reverse --pretty=oneline --all -- rest-api/resources.json | while read log do IFS=' ' read -r -a array <<< "$log" - git checkout ${array[0]} > /dev/null + git checkout ${array[0]} --force > /dev/null VER=`cat rest-api/resources.json | jq -r '.apiVersion'` FOLDER="${VER//./_}" echo $FOLDER diff --git a/codegen/getVersions.sh b/codegen/getVersions.sh new file mode 100755 index 00000000..5d06d191 --- /dev/null +++ b/codegen/getVersions.sh @@ -0,0 +1,28 @@ +#!/usr/bin/env bash + +START_DIR=`pwd` + +cd tmp/asterisk + +echo "| Asterisk | ARI |" > ${START_DIR}/versions.md +echo "| :-- | :-- |" >> ${START_DIR}/versions.md + +git show-ref --tags | while read tags +do + IFS=' ' read -r -a array <<< "$tags" + # skip 0.x 1.x, 10.x and 11.x + if [ "${array[1]:0:12}" = "refs/tags/0." ] || [ "${array[1]:0:12}" = "refs/tags/1." ] || \ + [ "${array[1]:0:13}" = "refs/tags/10." ] || [ "${array[1]:0:13}" = "refs/tags/11." ] || \ + [ "${array[1]:0:22}" = "refs/tags/certified/1." ] || [ "${array[1]:0:23}" = "refs/tags/certified/11." ]; then + continue + fi + git checkout ${array[0]} --force > /dev/null 2>&1 + echo ${array[1]} + if [ -f "rest-api/resources.json" ]; then + VER=`cat rest-api/resources.json | jq -r '.apiVersion'` + echo ${VER} + echo "| ${array[1]:10} | ${VER} |" >> ${START_DIR}/versions.md + fi +done + +cd ${START_DIR} From e4f05b4af546be1980b7e89cd4b22e3f438825d1 Mon Sep 17 00:00:00 2001 From: Graham Brown Date: Wed, 26 Feb 2020 10:00:50 +0200 Subject: [PATCH 124/220] change the build badge --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index bf277567..6b2ad868 100644 --- a/README.md +++ b/README.md @@ -3,7 +3,7 @@ The Asterisk REST Interface (ARI) bindings for Java. [![Download](https://api.bintray.com/packages/ari4java/maven/ari4java/images/download.png)](https://bintray.com/ari4java/maven/ari4java/_latestVersion) -[![Build](https://github.com/l3nz/ari4java/workflows/ARI4Java%20Build/badge.svg)](https://github.com/l3nz/ari4java/workflows/ARI4Java%20Build/badge.svg) +[![Build](https://github.com/l3nz/ari4java/workflows/ARI4Java%20Build/badge.svg?branch=master&event=push)](https://github.com/l3nz/ari4java/actions?query=workflow%3A%22ARI4Java+Build%22) ## Description From 0a26151665f1d99aa315abf8e59ca6554df91d98 Mon Sep 17 00:00:00 2001 From: Graham Brown Date: Sat, 29 Feb 2020 23:22:20 +0200 Subject: [PATCH 125/220] remove JavaDoc on implementation classes, tweak to unsupported method generation and added Google Code Formatter to format the code before writing to disk --- codegen/build.gradle | 1 + .../loway/oss/ari4java/codegen/DefMapper.java | 160 ++++++++---------- .../loway/oss/ari4java/codegen/VERSION.java | 2 +- .../oss/ari4java/codegen/genJava/JavaGen.java | 20 +-- .../codegen/genJava/JavaInterface.java | 103 ++++------- .../ari4java/codegen/genJava/JavaPkgInfo.java | 17 +- .../oss/ari4java/codegen/models/Action.java | 13 +- .../oss/ari4java/codegen/models/Apis.java | 23 +-- .../codegen/models/AriBuilderInterface.java | 32 +--- .../codegen/models/ClassTranslator.java | 29 ++-- .../oss/ari4java/codegen/models/Model.java | 36 +--- .../ari4java/codegen/models/ModelField.java | 23 +-- .../ari4java/codegen/models/Operation.java | 73 +++----- .../ch/loway/oss/ari4java/codegen/run.java | 26 ++- 14 files changed, 176 insertions(+), 382 deletions(-) diff --git a/codegen/build.gradle b/codegen/build.gradle index 02f2d1d5..c4bbfe2e 100644 --- a/codegen/build.gradle +++ b/codegen/build.gradle @@ -10,6 +10,7 @@ dependencies { compile 'com.fasterxml.jackson.core:jackson-core:2.9.6' compile 'com.fasterxml.jackson.core:jackson-databind:2.9.6' compile 'com.fasterxml.jackson.core:jackson-annotations:2.9.6' + compile 'com.google.googlejavaformat:google-java-format:1.7' } task runCodegen(type: JavaExec) { diff --git a/codegen/src/main/java/ch/loway/oss/ari4java/codegen/DefMapper.java b/codegen/src/main/java/ch/loway/oss/ari4java/codegen/DefMapper.java index e1ca8be2..3d04f8c4 100644 --- a/codegen/src/main/java/ch/loway/oss/ari4java/codegen/DefMapper.java +++ b/codegen/src/main/java/ch/loway/oss/ari4java/codegen/DefMapper.java @@ -14,10 +14,10 @@ import com.fasterxml.jackson.databind.JsonNode; import com.fasterxml.jackson.databind.ObjectMapper; import com.fasterxml.jackson.databind.node.ArrayNode; +import com.google.googlejavaformat.java.Formatter; import java.io.File; import java.io.FileWriter; -import java.io.IOException; import java.io.PrintWriter; import java.util.ArrayList; import java.util.Arrays; @@ -39,20 +39,21 @@ public class DefMapper { private List vers = new ArrayList<>(); - private List mymodels = new ArrayList<>(); + private List myModels = new ArrayList<>(); private List myAPIs = new ArrayList<>(); private Map interfaces = new HashMap<>(); private String outputFolder; private ObjectMapper om = new ObjectMapper(); + private Formatter codeFormatter = new Formatter(); /** * Loads definitions from a module. * * @param f The source .json file * @param apiVersion The version of the API we are working with - * @throws IOException + * @throws Exception when error */ - public void parseJsonDefinition(File f, String apiVersion) throws IOException { + public void parseJsonDefinition(File f, String apiVersion) throws Exception { if (!vers.contains(apiVersion)) { vers.add(apiVersion); @@ -63,19 +64,20 @@ public void parseJsonDefinition(File f, String apiVersion) throws IOException { // check swagger version as the parser, Asterisk is currently using 1.1 String currentVer = rootNode.get("swaggerVersion").asText(); if (!"1.1".equalsIgnoreCase(currentVer) && !"1.2".equalsIgnoreCase(currentVer)) { - throw new RuntimeException("Unsupported Swagger Version: " + rootNode.get("swaggerVersion").asText() + " for file " + f.getAbsolutePath()); + throw new RuntimeException("Unsupported Swagger Version: " + rootNode.get("swaggerVersion").asText() + + " for file " + f.getAbsolutePath()); } List lModels = loadModels(rootNode.get("models"), f, apiVersion); Apis api1 = loadApis(rootNode.get("apis"), f, apiVersion); - mymodels.addAll(lModels); + myModels.addAll(lModels); myAPIs.add(api1); if ("events.json".equals(f.getName())) { Model typeMessage = null; - List otherModels = new ArrayList(); + List otherModels = new ArrayList<>(); for (Model m : lModels) { if (m.className.equalsIgnoreCase("Message")) { @@ -97,20 +99,21 @@ public void parseJsonDefinition(File f, String apiVersion) throws IOException { .append("\")"); } - typeMessage.additionalPreambleText = " @JsonTypeInfo(use = JsonTypeInfo.Id.NAME," - + " property = \"type\", visible = true)\n " - + "@JsonSubTypes({\n" - + defs - + "\n})\n"; - - typeMessage.imports.add("com.fasterxml.jackson.annotation.JsonSubTypes"); - typeMessage.imports.add("com.fasterxml.jackson.annotation.JsonSubTypes.Type"); - typeMessage.imports.add("com.fasterxml.jackson.annotation.JsonTypeInfo"); + if (typeMessage != null) { + typeMessage.additionalPreambleText = " @JsonTypeInfo(use = JsonTypeInfo.Id.NAME," + + " property = \"type\", visible = true)\n " + + "@JsonSubTypes({\n" + + defs + + "\n})\n"; + typeMessage.imports.add("com.fasterxml.jackson.annotation.JsonSubTypes"); + typeMessage.imports.add("com.fasterxml.jackson.annotation.JsonSubTypes.Type"); + typeMessage.imports.add("com.fasterxml.jackson.annotation.JsonTypeInfo"); + } } // Now generate the interface - for (Model m : mymodels) { + for (Model m : myModels) { JavaInterface jim = interfaces.get(m.getInterfaceName()); if (jim == null) { jim = new JavaInterface(); @@ -148,25 +151,22 @@ public void parseJsonDefinition(File f, String apiVersion) throws IOException { /** * Generate all files. - * - * @throws IOException + * @throws Exception when error */ - public void generateAllClasses() throws IOException { + public void generateAllClasses() throws Exception { AriBuilderInterface abi = generateInterfaces(); generateModels(); generateApis(); generateProperties(abi); - generateImplementationClasses(abi); + generateImplementationClasses(); } /** * Generate all interfaces. - * - * @throws IOException + * @return AriBuilderInterface + * @throws Exception when error */ - public AriBuilderInterface generateInterfaces() throws IOException { -// System.out.println("generateInterfaces"); - + public AriBuilderInterface generateInterfaces() throws Exception { AriBuilderInterface abi = new AriBuilderInterface(); for (String ifName : interfaces.keySet()) { JavaInterface ji = interfaces.get(ifName); @@ -184,12 +184,11 @@ public AriBuilderInterface generateInterfaces() throws IOException { /** * Generates a model. * For each model. let's find out the minimal interface it should implement. - * - * @throws IOException + * @throws Exception when error */ - public void generateModels() throws IOException { + public void generateModels() throws Exception { // System.out.println("generateModels"); - for (Model m : mymodels) { + for (Model m : myModels) { String minIf = m.getInterfaceName(); JavaInterface ji = interfaces.get(minIf); @@ -200,11 +199,9 @@ public void generateModels() throws IOException { /** * Save APIs to disk. - * - * @throws IOException + * @throws Exception when error */ - public void generateApis() throws IOException { -// System.out.println("generateApis"); + public void generateApis() throws Exception { for (Apis api : myAPIs) { String minIf = api.getInterfaceName(); JavaInterface ji = interfaces.get(minIf); @@ -220,30 +217,26 @@ public void generateApis() throws IOException { /** * Write a properties file for each API version. - * - * @throws IOException + * @param abi the builder interface + * @throws Exception when error */ - public void generateProperties(AriBuilderInterface abi) throws IOException { -// System.out.println("generateProperties"); - - Map> mM = new HashMap>(); - Map> mA = new HashMap>(); + public void generateProperties(AriBuilderInterface abi) throws Exception { + Map> mM = new HashMap<>(); + Map> mA = new HashMap<>(); for (Apis api : myAPIs) { String ver = api.apiVersion; if (!mA.containsKey(ver)) { - mA.put(ver, new HashSet()); + mA.put(ver, new HashSet<>()); } - mA.get(ver).add(api); } - for (Model mod : mymodels) { + for (Model mod : myModels) { String ver = mod.apiVersion; if (!mM.containsKey(ver)) { - mM.put(ver, new HashSet()); + mM.put(ver, new HashSet<>()); } - mM.get(ver).add(mod); } @@ -254,7 +247,7 @@ public void generateProperties(AriBuilderInterface abi) throws IOException { sbVerEnum.append("import ch.loway.oss.ari4java.generated.AriBuilder;\n"); for (String ver : vers) { - writeAriBuilder(ver, abi, mA.get(ver), mM.get(ver)); + writeAriBuilder(ver, abi, mA.get(ver)); builderEnum(sbVerEnums, ver); sbVerEnum.append("import ch.loway.oss.ari4java.generated.").append(ver) .append(".AriBuilder_impl_").append(ver).append(";\n"); @@ -273,7 +266,8 @@ public void generateProperties(AriBuilderInterface abi) throws IOException { sbVerEnum.append(" }\n\n"); sbVerEnum.append(" public AriBuilder builder() {\n"); sbVerEnum.append(" if (builder == null) {\n"); - sbVerEnum.append(" throw new IllegalArgumentException(\"This version has no builder. Library error for \" + this.name());\n"); + sbVerEnum.append(" throw new IllegalArgumentException(\"This version has no builder. "); + sbVerEnum.append("Library error for \" + this.name());\n"); sbVerEnum.append(" } else {\n"); sbVerEnum.append(" return builder;\n"); sbVerEnum.append(" }\n"); @@ -310,14 +304,10 @@ private void builderEnum(StringBuilder sbVerEnum, String ver) { /** * Generates the translators from the abstract class to the concrete one. - * - * @param abi - * @throws IOException + * @throws Exception when error */ - public void generateImplementationClasses(AriBuilderInterface abi) throws IOException { -// System.out.println("generateImplementationClasses"); - - List lTranslators = new ArrayList(); + public void generateImplementationClasses() throws Exception { + List lTranslators = new ArrayList<>(); for (Apis api : myAPIs) { String ver = api.apiVersion; @@ -325,7 +315,7 @@ public void generateImplementationClasses(AriBuilderInterface abi) throws IOExce ct.setClass(api.className, api.className + "_impl_" + ver); } - for (Model mod : mymodels) { + for (Model mod : myModels) { String ver = mod.apiVersion; ClassTranslator ct = getClassTranslator(lTranslators, ver); ct.setClass(mod.className, mod.className + "_impl_" + ver); @@ -348,17 +338,17 @@ private ClassTranslator getClassTranslator(List lTranslators, S } /** - * @param f - * @return + * @param f the file + * @return an action class name */ private String genActionClassName(File f) { String fileName = f.getName().replace(".json", ""); return JavaGen.addPrefixAndCapitalize("Action", fileName); } - private List loadModels(JsonNode models, File f, String apiVersion) throws IOException { + private List loadModels(JsonNode models, File f, String apiVersion) { - List lModelsAdded = new ArrayList(); + List lModelsAdded = new ArrayList<>(); for (JsonNode modelName : models) { // Creazione di un modello @@ -406,13 +396,10 @@ private List loadModels(JsonNode models, File f, String apiVersion) throw return lModelsAdded; } - private Apis loadApis(JsonNode apis, File f, String apiVersion) throws IOException { - + private Apis loadApis(JsonNode apis, File f, String apiVersion) { Apis api = new Apis(); - api.setPackageInfo(genActionClassName(f), apiVersion); - for (JsonNode apiEntry : apis) { Action action = new Action(); @@ -471,38 +458,38 @@ private Apis loadApis(JsonNode apis, File f, String apiVersion) throws IOExcepti } - public void saveToDisk(String pkgName, String className, String classText) throws IOException { + public void saveToDisk(String pkgName, String className, String classText) throws Exception { String fName = outputFolder + pkgName.replace(".", "/") + "/" + className + ".java"; File f = new File(fName); + //noinspection ResultOfMethodCallIgnored f.getParentFile().mkdirs(); -// System.out.println("Saving: " + f.getAbsolutePath()); FileWriter outFile = new FileWriter(f); PrintWriter out = new PrintWriter(outFile); - out.println(classText); + out.println(codeFormatter.formatSource(classText)); out.close(); } - public void saveToDisk(Model model) throws IOException { + public void saveToDisk(Model model) throws Exception { saveToDisk(model.getModelPackage(), model.getImplName(), model.toString()); } - public void saveToDisk(Apis api) throws IOException { + public void saveToDisk(Apis api) throws Exception { saveToDisk(api.getActionsPackage(), api.getImplName(), api.toString()); } - public void saveToDisk(Operation operation) throws IOException { + public void saveToDisk(Operation operation) throws Exception { saveToDisk(operation.getPackage(), operation.getImplName(), operation.toString()); } - public void saveToDisk(JavaInterface ji) throws IOException { + public void saveToDisk(JavaInterface ji) throws Exception { saveToDisk(ji.pkgName, ji.className, ji.toString()); } - public void saveToDisk(ClassTranslator ct) throws IOException { + public void saveToDisk(ClassTranslator ct) throws Exception { saveToDisk(ct.getBaseApiPackage(), ct.getImplName(), ct.toString()); } @@ -517,10 +504,12 @@ private void deleteFolder(File folder) { if(f.isDirectory()) { deleteFolder(f); } else { + //noinspection ResultOfMethodCallIgnored f.delete(); } } } + //noinspection ResultOfMethodCallIgnored folder.delete(); } @@ -540,7 +529,7 @@ public String extendsObject(JsonNode model) { } public Set subTypes(JsonNode model) { - Set result = new HashSet(); + Set result = new HashSet<>(); if (model.get("subTypes") != null) { JsonNode st = model.get("subTypes"); if (st instanceof ArrayNode) { @@ -566,7 +555,8 @@ public String innerRemapType(String jsonType, boolean concrete, String apiVersio String listAry = "List["; if (jsonType.startsWith(listAry)) { - return (concrete ? "List<" : "List<") + innerRemapType(jsonType.substring(listAry.length(), jsonType.length() - 1), concrete, apiVersion) + ">"; + return (concrete ? "List<" : "List<") + innerRemapType(jsonType.substring(listAry.length(), + jsonType.length() - 1), concrete, apiVersion) + ">"; } else if (JavaPkgInfo.TypeMap.containsKey(jsonType.toLowerCase())) { return JavaPkgInfo.TypeMap.get(jsonType.toLowerCase()); } else { @@ -574,20 +564,17 @@ public String innerRemapType(String jsonType, boolean concrete, String apiVersio } } - private void writeAriBuilder(String apiVersion, AriBuilderInterface abi, Collection apis, Collection models) throws IOException { + private void writeAriBuilder(String apiVersion, AriBuilderInterface abi, Collection apis) throws Exception { String thisClass = "AriBuilder_impl_" + apiVersion; - List ifToImplement = new ArrayList(abi.knownInterfaces); + List ifToImplement = new ArrayList<>(abi.knownInterfaces); StringBuilder sb = new StringBuilder(); JavaGen.importClasses(sb, "ch.loway.oss.ari4java.generated." + apiVersion, - Arrays.asList(new String[]{ - "ch.loway.oss.ari4java.ARI", + Arrays.asList("ch.loway.oss.ari4java.ARI", "ch.loway.oss.ari4java.generated.AriBuilder", "ch.loway.oss.ari4java.generated.actions.*", - "ch.loway.oss.ari4java.generated." + apiVersion + ".actions.*", - })); - + "ch.loway.oss.ari4java.generated." + apiVersion + ".actions.*")); sb.append("public class ").append(thisClass).append(" implements AriBuilder {\n\n"); for (Apis api : apis) { @@ -601,19 +588,16 @@ private void writeAriBuilder(String apiVersion, AriBuilderInterface abi, Collect sb.append(AriBuilderInterface.getUnimplemented(ifc)); } - sb.append("public ARI.ClassFactory getClassFactory() {\n" - + " return new ClassTranslator_impl_" + apiVersion + "();\n" - + "};\n\n" - ); - - sb.append("};"); + sb.append("public ARI.ClassFactory getClassFactory() {\n return new ClassTranslator_impl_"); + sb.append(apiVersion); + sb.append("();\n};\n\n};"); saveToDisk("ch.loway.oss.ari4java.generated." + apiVersion, thisClass, sb.toString()); } /** - * @param outputFolder + * @param outputFolder the folder */ void setOutputFolder(String outputFolder) { this.outputFolder = outputFolder; diff --git a/codegen/src/main/java/ch/loway/oss/ari4java/codegen/VERSION.java b/codegen/src/main/java/ch/loway/oss/ari4java/codegen/VERSION.java index d1bf6234..e3e267f5 100644 --- a/codegen/src/main/java/ch/loway/oss/ari4java/codegen/VERSION.java +++ b/codegen/src/main/java/ch/loway/oss/ari4java/codegen/VERSION.java @@ -6,6 +6,6 @@ * @author lenz */ public class VERSION { - public static final String VER = "0.6"; + public static final String VER = "0.7"; } diff --git a/codegen/src/main/java/ch/loway/oss/ari4java/codegen/genJava/JavaGen.java b/codegen/src/main/java/ch/loway/oss/ari4java/codegen/genJava/JavaGen.java index 8697e2ad..6e35454e 100644 --- a/codegen/src/main/java/ch/loway/oss/ari4java/codegen/genJava/JavaGen.java +++ b/codegen/src/main/java/ch/loway/oss/ari4java/codegen/genJava/JavaGen.java @@ -18,21 +18,17 @@ public static void addPackage(StringBuilder sb, String myPackage) { .append("// PLEASE DO NOT EDIT \n") .append("// Generated on: ").append((new Date()).toString()).append("\n") .append("// ----------------------------------------------------\n\n"); - } public static void importClasses(StringBuilder sb, String myPackage, List imports) { - addPackage(sb, myPackage); for (String pkg : imports) { sb.append("import ").append(pkg).append(";\n"); } sb.append("\n"); - } public static void addBanner(StringBuilder sb, String multiLineBanner) { - String[] rows = multiLineBanner.split("\n"); sb.append("/**\n"); for (String row : rows) { @@ -44,7 +40,6 @@ public static void addBanner(StringBuilder sb, String multiLineBanner) { } } sb.append(" */\n"); - } public static void addBanner(StringBuilder sb, String multilineBanner, String sinceVersion) { @@ -53,10 +48,7 @@ public static void addBanner(StringBuilder sb, String multilineBanner, String si } public static String addPrefixAndCapitalize(String prefix, String field) { - return prefix + field.substring(0, 1).toUpperCase() + field.substring(1); - - } public static String addAsyncCallback(String response) { @@ -64,17 +56,7 @@ public static String addAsyncCallback(String response) { } public static void emptyLines(StringBuilder sb, int nLines) { - for (int i = 0; i < nLines; i++) { - sb.append("\n"); - } - } - - public static void emptyLine(StringBuilder sb) { - emptyLines(sb, 1); + sb.append("\n".repeat(Math.max(0, nLines))); } - } - -// $Log$ -// diff --git a/codegen/src/main/java/ch/loway/oss/ari4java/codegen/genJava/JavaInterface.java b/codegen/src/main/java/ch/loway/oss/ari4java/codegen/genJava/JavaInterface.java index 5f855bc7..abd0ebf0 100644 --- a/codegen/src/main/java/ch/loway/oss/ari4java/codegen/genJava/JavaInterface.java +++ b/codegen/src/main/java/ch/loway/oss/ari4java/codegen/genJava/JavaInterface.java @@ -11,49 +11,61 @@ */ public class JavaInterface { - public final List eventSources = Arrays.asList(new String[]{ - "Bridge", + public final List eventSources = Arrays.asList("Bridge", "Channel", "Endpoint", - "DeviceState" - }); - + "DeviceState"); public String pkgName = ""; public String className = ""; public String since = ""; public String parent = ""; - Map definitions = new HashMap(); + private static class Definition { + String method; + String comment; + String sinceVersion; + public Definition(String method, String comment, String sinceVersion) { + this.method = method; + this.comment = comment; + this.sinceVersion = sinceVersion; + } - public void iKnow(String signature, String method, String comment, String sinceVersion) { + public String toInterfaceString() { + StringBuilder sb = new StringBuilder(); + JavaGen.addBanner(sb, comment, sinceVersion); + sb.append(method).append(";"); + return sb.toString(); + } - StringBuilder sb = new StringBuilder(); - JavaGen.addBanner(sb, comment, sinceVersion); - sb.append(method).append(";"); + public String toUnsupportedString(boolean addJsonIgnore) { + return (addJsonIgnore ? " @JsonIgnore\n " : " ") + method + "{\n" + + " throw new UnsupportedOperationException(\"Method available from " + sinceVersion + "\");\n" + + " }\n\n"; + } + } + + private Map definitions = new HashMap<>(); + public void iKnow(String signature, String method, String comment, String sinceVersion) { if (!definitions.containsKey(signature)) { - definitions.put(signature, sb.toString()); + definitions.put(signature, new Definition(method, comment, sinceVersion)); } } - public JavaInterface createScratchCopy() { JavaInterface ji = new JavaInterface(); ji.pkgName = pkgName; ji.className = className; ji.since = since; - ji.definitions = new HashMap(definitions); + ji.definitions = new HashMap<>(definitions); return ji; } @Override public String toString() { - StringBuilder sb = new StringBuilder(); - - JavaGen.importClasses(sb, pkgName, Arrays.asList(new String[]{ - "java.util.Date", + JavaGen.importClasses(sb, pkgName, Arrays.asList("java.util.Date", "java.util.List", "java.util.Map", "java.util.ArrayList", @@ -61,42 +73,30 @@ public String toString() { "ch.loway.oss.ari4java.tools.tags.EventSource", "ch.loway.oss.ari4java.generated.actions.requests.*", "ch.loway.oss.ari4java.generated.models.Module", - "ch.loway.oss.ari4java.generated.models.*" - })); - + "ch.loway.oss.ari4java.generated.models.*")); JavaGen.addBanner(sb, "\n" + "Generated by: " + this.getClass().getSimpleName() + "\n" ); - JavaGen.emptyLines(sb, 2); - sb.append("public interface ").append(className); - if (eventSources.contains(className)) { sb.append(" extends EventSource "); } else if (!parent.isEmpty()) { sb.append(" extends ").append(parent).append(" "); } - sb.append(" {\n"); - for (String signature : definitions.keySet()) { - sb.append("\n// ").append(signature).append("\n"); - sb.append(definitions.get(signature)).append("\n"); + sb.append(definitions.get(signature).toInterfaceString()).append("\n"); } - sb.append("}\n"); return sb.toString(); - } /** * Removes a signature. * When you serialize an object, you remove all required signatures. - * - * @param signature + * @param signature the method signature */ - public void removeSignature(String signature) { if (definitions.containsKey(signature)) { definitions.remove(signature); @@ -113,46 +113,13 @@ public String getCodeToImplementMissingSignatures(boolean addJsonIgnore) { if (definitions.isEmpty()) { return " /* No missing signatures from interface */\n\n"; } else { - StringBuilder sb = new StringBuilder(); - - // generate empty methods that just throw an UnsupportedOperationException - for (String s : definitions.values()) { - String ver = extractSinceVersion(s); - String error = "Method not available in this version"; - if (ver != null) { - error = "Method available from " + ver; - } - String replaceEnd = ")"; - if (s.endsWith("throws RestException;")) { - replaceEnd = ") throws RestException"; - } - String replaceTo = replaceEnd + " {\n" - + " throw new UnsupportedOperationException(\"" + error + "\");\n" - + " }\n\n"; - - s = s.replace((replaceEnd + ";"), replaceTo); - - if (addJsonIgnore) { - s = s.replace("public", "@JsonIgnore public"); - } - - sb.append(s); + // generate empty methods that throw an UnsupportedOperationException + for (Definition d : definitions.values()) { + sb.append(d.toUnsupportedString(addJsonIgnore)); } - return sb.toString(); - - } - } - - private String extractSinceVersion(String input) { - String[] lines = input.trim().split("\n"); - for (String line: lines) { - if (line.startsWith(" * @since ")) { - return line.substring(10); - } } - return null; } } diff --git a/codegen/src/main/java/ch/loway/oss/ari4java/codegen/genJava/JavaPkgInfo.java b/codegen/src/main/java/ch/loway/oss/ari4java/codegen/genJava/JavaPkgInfo.java index 2b64694f..3d02c262 100644 --- a/codegen/src/main/java/ch/loway/oss/ari4java/codegen/genJava/JavaPkgInfo.java +++ b/codegen/src/main/java/ch/loway/oss/ari4java/codegen/genJava/JavaPkgInfo.java @@ -13,7 +13,7 @@ public class JavaPkgInfo { public final static Map primitiveSignature; static { - TypeMap = new HashMap(); + TypeMap = new HashMap<>(); TypeMap.put("string", "String"); TypeMap.put("long", "Long"); TypeMap.put("int", "Integer"); @@ -24,7 +24,7 @@ public class JavaPkgInfo { TypeMap.put("binary", "byte[]"); TypeMap.put("containers", "Map"); - primitiveSignature = new HashMap(); + primitiveSignature = new HashMap<>(); primitiveSignature.put("Boolean", "boolean"); primitiveSignature.put("Integer", "int"); primitiveSignature.put("Long", "long"); @@ -41,10 +41,6 @@ public void setPackageInfo(String classN, String apiV) { apiVersion = apiV; } - public String getInterfacePackage() { - return base + "." + className; - } - public String getBaseApiPackage() { return base + "." + apiVersion; } @@ -58,8 +54,7 @@ public String getActionsPackage() { } public String getInterfaceName() { - String s = className.substring(0, 1).toUpperCase() + className.substring(1); - return s; + return className.substring(0, 1).toUpperCase() + className.substring(1); } public String getImplName() { @@ -68,8 +63,7 @@ public String getImplName() { /** * This is a "minimal" interface that has to be implemented at all costs. - * - * @param i + * @param i interface */ public void setMinimalInterface(JavaInterface i) { minimalIf = i; @@ -78,8 +72,7 @@ public void setMinimalInterface(JavaInterface i) { /** * Gets a copy of the current base interface. * This is meant to have signatures removed as they are written. - * - * @return + * @return JavaInterface */ public JavaInterface getBaseInterface() { if (minimalIf == null) { diff --git a/codegen/src/main/java/ch/loway/oss/ari4java/codegen/models/Action.java b/codegen/src/main/java/ch/loway/oss/ari4java/codegen/models/Action.java index 5cfdbaa2..10b245ba 100644 --- a/codegen/src/main/java/ch/loway/oss/ari4java/codegen/models/Action.java +++ b/codegen/src/main/java/ch/loway/oss/ari4java/codegen/models/Action.java @@ -13,21 +13,17 @@ public class Action implements Comparable { public String path = ""; public String description = ""; - public List operations = new ArrayList(); + public List operations = new ArrayList<>(); public String javaFile = ""; public Apis api; @Override public String toString() { - StringBuilder sb = new StringBuilder(); - for (Operation o : operations) { sb.append(o.toJava()); } - return sb.toString(); - } void registerInterfaces(JavaInterface j, String apiVersion) { @@ -38,13 +34,6 @@ void registerInterfaces(JavaInterface j, String apiVersion) { } } - /** - * Per ordine alfabetico. - * - * @param o - * @return - */ - @Override public int compareTo(Action o) { return path.compareToIgnoreCase(o.path); diff --git a/codegen/src/main/java/ch/loway/oss/ari4java/codegen/models/Apis.java b/codegen/src/main/java/ch/loway/oss/ari4java/codegen/models/Apis.java index 3d6a52fd..16923030 100644 --- a/codegen/src/main/java/ch/loway/oss/ari4java/codegen/models/Apis.java +++ b/codegen/src/main/java/ch/loway/oss/ari4java/codegen/models/Apis.java @@ -15,16 +15,13 @@ */ public class Apis extends JavaPkgInfo { - public List actions = new ArrayList(); + public List actions = new ArrayList<>(); @Override public String toString() { - StringBuilder sb = new StringBuilder(); JavaInterface ji = getBaseInterface(); - - JavaGen.importClasses(sb, getActionsPackage(), Arrays.asList(new String[]{ - "java.util.Date", + JavaGen.importClasses(sb, getActionsPackage(), Arrays.asList("java.util.Date", "java.util.List", "java.util.Map", "java.util.ArrayList", @@ -37,37 +34,26 @@ public String toString() { "ch.loway.oss.ari4java.generated.models.*", getActionsPackage() + ".requests.*", getModelPackage() + ".*", - "com.fasterxml.jackson.core.type.TypeReference" - })); - + "com.fasterxml.jackson.core.type.TypeReference")); JavaGen.addBanner(sb, "\n" + "Generated by: " + this.getClass().getSimpleName() + "\n" ); - JavaGen.emptyLines(sb, 2); - sb.append("public class ").append(getImplName()) .append(" extends BaseAriAction ") .append(" implements ") .append(getInterfaceName()) .append(" {\n"); - Collections.sort(actions); - for (Action a : actions) { - for (Operation o : a.operations) { ji.removeSignature(o.getSignature()); } - sb.append(a.toString()); } - sb.append(ji.getCodeToImplementMissingSignatures()); - sb.append("}\n"); return sb.toString(); - } public void registerInterfaces(JavaInterface j, String interfaceVersion) { @@ -77,6 +63,3 @@ public void registerInterfaces(JavaInterface j, String interfaceVersion) { } } - -// $Log$ -// diff --git a/codegen/src/main/java/ch/loway/oss/ari4java/codegen/models/AriBuilderInterface.java b/codegen/src/main/java/ch/loway/oss/ari4java/codegen/models/AriBuilderInterface.java index 9c95ff4a..10edb230 100644 --- a/codegen/src/main/java/ch/loway/oss/ari4java/codegen/models/AriBuilderInterface.java +++ b/codegen/src/main/java/ch/loway/oss/ari4java/codegen/models/AriBuilderInterface.java @@ -15,44 +15,27 @@ */ public class AriBuilderInterface { - public List knownInterfaces = new ArrayList(); + public List knownInterfaces = new ArrayList<>(); @Override public String toString() { - StringBuilder sb = new StringBuilder(); JavaGen.importClasses(sb, "ch.loway.oss.ari4java.generated", - Arrays.asList(new String[]{ - "ch.loway.oss.ari4java.ARI", - "ch.loway.oss.ari4java.generated.actions.*" - }) + Arrays.asList("ch.loway.oss.ari4java.ARI", + "ch.loway.oss.ari4java.generated.actions.*") ); - sb.append("public interface AriBuilder {\n"); - Collections.sort(knownInterfaces); - for (String iface : knownInterfaces) { sb.append(" public abstract ").append(iface) .append(" ").append(lcFirst(iface)).append("();\n"); } - sb.append("\n\n" + " public abstract ARI.ClassFactory getClassFactory();\n\n"); - - sb.append("\n}\n"); - return sb.toString(); - } - /** - * Rende minuscolo il primo carattere. - * - * @param s - * @return - */ private static String lcFirst(String s) { if (s.length() > 1) { String s1 = s.substring(0, 1); @@ -64,18 +47,13 @@ private static String lcFirst(String s) { } public static String getMethod(String ifName, String apiVer) { - String s = "public " + ifName + " " + lcFirst(ifName) + "() {\n" + return "public " + ifName + " " + lcFirst(ifName) + "() {\n" + " return new " + ifName + "_impl_" + apiVer + "();\n };\n\n"; - return s; } public static String getUnimplemented(String ifName) { - String s = "public " + ifName + " " + lcFirst(ifName) + "() {\n" + return "public " + ifName + " " + lcFirst(ifName) + "() {\n" + " throw new UnsupportedOperationException();\n };\n\n"; - return s; } } - -// $Log$ -// diff --git a/codegen/src/main/java/ch/loway/oss/ari4java/codegen/models/ClassTranslator.java b/codegen/src/main/java/ch/loway/oss/ari4java/codegen/models/ClassTranslator.java index 8a432f37..eecadf80 100644 --- a/codegen/src/main/java/ch/loway/oss/ari4java/codegen/models/ClassTranslator.java +++ b/codegen/src/main/java/ch/loway/oss/ari4java/codegen/models/ClassTranslator.java @@ -22,8 +22,8 @@ public class ClassTranslator extends JavaPkgInfo { public ClassTranslator(String version) { super(); apiVersion = version; - mInterfaces = new HashMap(); - imports = new ArrayList(); + mInterfaces = new HashMap<>(); + imports = new ArrayList<>(); className = "ClassTranslator"; imports.add("ch.loway.oss.ari4java.ARI"); imports.add("ch.loway.oss.ari4java.generated.actions.*"); @@ -44,14 +44,12 @@ public String toString() { JavaGen.importClasses(sb, getBaseApiPackage(), imports); JavaGen.addBanner(sb, "This is a class translator." + "\n\n"); - List ifNames = new ArrayList(mInterfaces.keySet()); + List ifNames = new ArrayList<>(mInterfaces.keySet()); Collections.sort(ifNames); - sb.append( - "public class " + getImplName() + " implements ARI.ClassFactory {\n" + - "\n" + - " @Override\n" + - " public Class getImplementationFor(Class interfaceClass) { \n"); + sb.append("public class ").append(getImplName()).append(" implements ARI.ClassFactory {\n\n"); + sb.append(" @Override\n" + + " public Class getImplementationFor(Class interfaceClass) {\n"); for (String ifName : ifNames) { String impl = mInterfaces.get(ifName); @@ -60,18 +58,17 @@ public String toString() { + "\tif ( interfaceClass.equals(") .append(ifName) .append(".class) ) {\n" - + "\t return (") + + " return (") .append(impl) .append(".class);\n" - + "\t} else \n"); + + " } else \n"); } - sb.append( - " {\n" + - " return null;\n" + - " }\n" + - " }\n" + - "}\n\n"); + sb.append(" {\n" + + " return null;\n" + + " }\n" + + " }\n" + + "}\n\n"); return sb.toString(); } diff --git a/codegen/src/main/java/ch/loway/oss/ari4java/codegen/models/Model.java b/codegen/src/main/java/ch/loway/oss/ari4java/codegen/models/Model.java index d9aa2174..b410c502 100644 --- a/codegen/src/main/java/ch/loway/oss/ari4java/codegen/models/Model.java +++ b/codegen/src/main/java/ch/loway/oss/ari4java/codegen/models/Model.java @@ -21,11 +21,9 @@ public class Model extends JavaPkgInfo { public String extendsModel = ""; public Set subTypes; public String comesFromFile = ""; - public List implementsInterfaces = new ArrayList(); - - public List imports = new ArrayList(); - public List fields = new ArrayList(); - + public List implementsInterfaces = new ArrayList<>(); + public List imports = new ArrayList<>(); + public List fields = new ArrayList<>(); public String additionalPreambleText = ""; public Model() { @@ -38,49 +36,33 @@ public Model() { imports.add("com.fasterxml.jackson.annotation.JsonIgnore"); } - @Override public String toString() { - Collections.sort(imports); Collections.sort(fields); Collections.sort(implementsInterfaces); - JavaInterface ji = getBaseInterface(); - StringBuilder sb = new StringBuilder(); - JavaGen.importClasses(sb, getModelPackage(), imports); - JavaGen.addBanner(sb, description + "\n\n" + "Defined in file: " + comesFromFile + "\n" + "Generated by: " + this.getClass().getSimpleName() ); - sb.append(additionalPreambleText); - sb.append("public class ").append(getImplName()); - // concrete implementation for the model to be extended if (extendsModel.length() > 0) { - JavaPkgInfo jpi = new JavaPkgInfo(); jpi.setPackageInfo(extendsModel, apiVersion); - sb.append(" extends ").append(jpi.getImplName()); } - sb.append(" implements "); - - for (String inf : implementsInterfaces) { sb.append(inf).append(", "); } - sb.append(getInterfaceName()).append(", "); sb.append("java.io.Serializable {\n"); sb.append(" private static final long serialVersionUID = 1L;\n"); - boolean hasId = false; boolean hasName = false; for (ModelField mf : fields) { @@ -93,9 +75,7 @@ public String toString() { hasName = true; } } - sb.append(ji.getCodeToImplementMissingSignatures(true)); - if (hasId || hasName) { sb.append(" public String toString() {\n return "); sb.append("\"").append(getInterfaceName()).append("["); @@ -111,33 +91,23 @@ public String toString() { sb.append("]\""); sb.append(";\n }\n\n"); } - sb.append("}\n"); return sb.toString(); - } - public void registerInterfaces(JavaInterface j, String apiVersion) { - for (ModelField mf : fields) { String signature = mf.getSignatureGet(); String declaration = mf.getDeclarationGet(); String comment = mf.comment + "\n@return " + mf.typeInterface; j.iKnow(signature, declaration, comment, apiVersion); } - for (ModelField mf : fields) { String signature = mf.getSignatureSet(); String declaration = mf.getDeclarationSet(); String comment = "@param val " + (mf.comment.trim().isEmpty() ? "the value" : mf.comment); j.iKnow(signature, declaration, comment, apiVersion); } - } - } - -// $Log$ -// diff --git a/codegen/src/main/java/ch/loway/oss/ari4java/codegen/models/ModelField.java b/codegen/src/main/java/ch/loway/oss/ari4java/codegen/models/ModelField.java index 88934e23..10a991f0 100644 --- a/codegen/src/main/java/ch/loway/oss/ari4java/codegen/models/ModelField.java +++ b/codegen/src/main/java/ch/loway/oss/ari4java/codegen/models/ModelField.java @@ -19,11 +19,8 @@ public class ModelField implements Comparable { @Override public String toString() { StringBuilder sb = new StringBuilder(); - sb.append(" private ").append(typeInterface).append(" ").append(field).append(";\n"); - - JavaGen.addBanner(sb, comment + "\n@return " + typeInterface); - sb.append(getDeclarationGet()).append(" {\n"); + sb.append(" ").append(getDeclarationGet()).append(" {\n"); sb.append(" return "); if ("Date".equals(typeConcrete)) { sb.append("new Date(").append(field).append(".getTime())"); @@ -31,9 +28,6 @@ public String toString() { sb.append(field); } sb.append(";\n }\n\n"); - - JavaGen.addBanner(sb, "@param val " + (comment.trim().isEmpty() ? " the value" : comment)); - if (typeConcrete.startsWith("List")) { String innerType = typeConcrete.substring(5, typeConcrete.length() - 1); sb.append(" @JsonDeserialize( contentAs=").append(innerType).append(".class )\n"); @@ -42,7 +36,7 @@ public String toString() { } else { sb.append(" @JsonDeserialize( as=").append(typeConcrete).append(".class )\n"); } - sb.append(getDeclarationSet()).append(" {\n"); + sb.append(" ").append(getDeclarationSet()).append(" {\n"); sb.append(" ").append(field); if ("Date".equals(typeConcrete)) { sb.append(" = new Date(val.getTime())"); @@ -50,7 +44,6 @@ public String toString() { sb.append(" = val"); } sb.append(";\n }\n\n"); - return sb.toString(); } @@ -71,22 +64,16 @@ public String getSignatureSet() { } public String getDeclarationGet() { - StringBuilder sb = new StringBuilder(); - sb.append(" public ").append(typeInterface).append(" ").append(getterName(field)).append("()"); - return sb.toString(); + return "public " + typeInterface + " " + getterName(field) + "()"; } public String getDeclarationSet() { - StringBuilder sb = new StringBuilder(); - sb.append(" public void ").append(setterName(field)).append("(").append(typeInterface).append(" val)"); - return sb.toString(); + return "public void " + setterName(field) + "(" + typeInterface + " val)"; } @Override public int compareTo(ModelField o) { - ModelField mf2 = o; - return field.compareTo(mf2.field); + return field.compareTo(o.field); } } - diff --git a/codegen/src/main/java/ch/loway/oss/ari4java/codegen/models/Operation.java b/codegen/src/main/java/ch/loway/oss/ari4java/codegen/models/Operation.java index 84f3652c..4d78250f 100644 --- a/codegen/src/main/java/ch/loway/oss/ari4java/codegen/models/Operation.java +++ b/codegen/src/main/java/ch/loway/oss/ari4java/codegen/models/Operation.java @@ -21,8 +21,8 @@ public class Operation { public String responseConcreteClass = ""; public String responseInterface = ""; public String description = ""; - public List params = new ArrayList(); - public List errorCodes = new ArrayList(); + public List params = new ArrayList<>(); + public List errorCodes = new ArrayList<>(); public String apiVersion; public Action action; private JavaInterface ji; @@ -56,8 +56,7 @@ private String toParmList(boolean withType, boolean forComment) { public String toString() { StringBuilder sb = new StringBuilder(); - JavaGen.importClasses(sb, getPackage(), Arrays.asList(new String[]{ - "java.util.Date", + JavaGen.importClasses(sb, getPackage(), Arrays.asList("java.util.Date", "java.util.List", "java.util.Map", "java.util.HashMap", @@ -73,8 +72,7 @@ public String toString() { "ch.loway.oss.ari4java.generated.models.*", "ch.loway.oss.ari4java.generated." + apiVersion + ".actions.*", "ch.loway.oss.ari4java.generated." + apiVersion + ".actions.requests.*", - "ch.loway.oss.ari4java.generated." + apiVersion + ".models.*" - })); + "ch.loway.oss.ari4java.generated." + apiVersion + ".models.*")); JavaGen.emptyLines(sb, 2); @@ -178,7 +176,8 @@ public String toString() { if (responseConcreteClass.startsWith("List<")) { deserializationType = "new TypeReference<" + responseConcreteClass + ">() {}"; } - sb.append(", " + deserializationType); + sb.append(", "); + sb.append(deserializationType); } sb.append(");\n"); sb.append(" }\n\n"); @@ -192,27 +191,19 @@ public String toString() { } private String getSyncExecuteSignature() { - StringBuilder sb = new StringBuilder(); - sb.append(responseInterface).append(" execute"); - return sb.toString(); + return responseInterface + " execute"; } private String getSyncExecuteDefinition() { - StringBuilder sb = new StringBuilder(); - sb.append("public ").append(responseInterface).append(" execute() throws RestException"); - return sb.toString(); + return "public " + responseInterface + " execute() throws RestException"; } private String getAsyncExecuteSignature() { - StringBuilder sb = new StringBuilder(); - sb.append("void execute ").append(JavaGen.addAsyncCallback(responseInterface)); - return sb.toString(); + return "void execute " + JavaGen.addAsyncCallback(responseInterface); } private String getAsyncExecuteDefinition() { - StringBuilder sb = new StringBuilder(); - sb.append("public void execute(").append(JavaGen.addAsyncCallback(responseInterface)).append(")"); - return sb.toString(); + return "public void execute(" + JavaGen.addAsyncCallback(responseInterface) + ")"; } public String getPackage() { @@ -254,23 +245,12 @@ public String getSignature() { } public String getConstructorDefinition() { - StringBuilder sb = new StringBuilder(); - sb.append("public ").append(getImplName()).append("(") - .append(toParmList(true, false)).append(")"); - return sb.toString(); + return "public " + getImplName() + "(" + toParmList(true, false) + ")"; } public String getDefinition() { - StringBuilder sb = new StringBuilder(); - - sb.append("public ").append(getInterfaceName()) - .append(" ").append(nickname) - .append("("); - - sb.append(toParmList(true, false)); - - sb.append(") throws RestException"); - return sb.toString(); + return "public " + getInterfaceName() + " " + nickname + "(" + toParmList(true, false) + + ") throws RestException"; } public String getInterfaceName() { @@ -325,31 +305,21 @@ public static class Param { public boolean required = true; public String getSignature(String returnType) { - StringBuilder sb = new StringBuilder(); - sb.append(returnType).append(" ").append(JavaGen.addPrefixAndCapitalize("set", name)); - sb.append(" ").append(javaType); - return sb.toString(); + return returnType + " " + JavaGen.addPrefixAndCapitalize("set", name) + " " + javaType; } public String getDefinition(String returnType) { - StringBuilder sb = new StringBuilder(); - sb.append(" public ").append(returnType).append(" ").append(JavaGen.addPrefixAndCapitalize("set", name)) - .append("(").append(methodArgumentType).append(" ").append(name).append(")"); - return sb.toString(); + return " public " + returnType + " " + JavaGen.addPrefixAndCapitalize("set", name) + + "(" + methodArgumentType + " " + name + ")"; } public String getSignatureForAddToMap(String returnType) { - StringBuilder sb = new StringBuilder(); - sb.append(returnType).append(" ").append(JavaGen.addPrefixAndCapitalize("add", name)); - sb.append(" ").append(javaType); - return sb.toString(); + return returnType + " " + JavaGen.addPrefixAndCapitalize("add", name) + " " + javaType; } public String getDefinitionForAddToMap(String returnType) { - StringBuilder sb = new StringBuilder(); - sb.append(" public ").append(returnType).append(" ").append(JavaGen.addPrefixAndCapitalize("add", name)) - .append("(String key, String value)"); - return sb.toString(); + return " public " + returnType + " " + JavaGen.addPrefixAndCapitalize("add", name) + + "(String key, String value)"; } public String getParamComment(String returnType) { @@ -368,7 +338,7 @@ public String getParamComment(String returnType) { } } - public static enum ParamType { + public enum ParamType { PATH, QUERY, BODY, @@ -397,6 +367,3 @@ public static class ErrorResp { } } - -// $Log$ -// diff --git a/codegen/src/main/java/ch/loway/oss/ari4java/codegen/run.java b/codegen/src/main/java/ch/loway/oss/ari4java/codegen/run.java index 9a88f2ab..a5deed91 100644 --- a/codegen/src/main/java/ch/loway/oss/ari4java/codegen/run.java +++ b/codegen/src/main/java/ch/loway/oss/ari4java/codegen/run.java @@ -2,7 +2,6 @@ package ch.loway.oss.ari4java.codegen; import java.io.File; -import java.io.IOException; import java.nio.file.Files; import java.nio.file.Paths; @@ -13,17 +12,16 @@ */ public class run { - private static String SOURCES = "./src/main/resources/codegen-data/"; - private static String OUTPUT = "../src/main/generated/"; - - public static void main(String[] argv) throws IOException { + public static void main(String[] argv) throws Exception { System.out.println("This is ARI4JAVA Code Generator version " + VERSION.VER); + String sourceFolder = "./src/main/resources/codegen-data/"; + String outputFolder = "../src/main/generated/"; DefMapper dm = new DefMapper(); - dm.setOutputFolder(OUTPUT); + dm.setOutputFolder(outputFolder); dm.clean(); - Files.list(Paths.get(SOURCES)) + Files.list(Paths.get(sourceFolder)) .filter(p -> p.toFile().isDirectory()) .sorted((p1, p2) -> { // break up folder into version parts and sort as numbers @@ -43,17 +41,17 @@ public static void main(String[] argv) throws IOException { .forEach(p -> loadAsteriskDefs(dm, p.toFile())); dm.generateAllClasses(); -// System.out.println("Finished Generating"); - } private static void loadAsteriskDefs(DefMapper dm, File folder) { try { String srcVer = folder.getName(); -// System.out.println("Loading: " + folder.getAbsolutePath()); - for (File definition : folder.listFiles()) { - if (definition.getName().endsWith(".json")) { - dm.parseJsonDefinition(definition, srcVer); + File[] files = folder.listFiles(); + if (files != null) { + for (File definition : files) { + if (definition.getName().endsWith(".json")) { + dm.parseJsonDefinition(definition, srcVer); + } } } } catch (Exception e) { @@ -63,5 +61,3 @@ private static void loadAsteriskDefs(DefMapper dm, File folder) { } -// $Log$ -// From b4a80da858a72379623f48f178fd3a659e325fe1 Mon Sep 17 00:00:00 2001 From: Graham Brown Date: Sat, 29 Feb 2020 23:24:14 +0200 Subject: [PATCH 126/220] some code & javadoc cleanup, don't generate javadoc for generated implementations --- build.gradle | 11 ++ src/main/java/ch/loway/oss/ari4java/ARI.java | 186 ++++++++---------- .../ch/loway/oss/ari4java/AriFactory.java | 2 +- .../ch/loway/oss/ari4java/AriSubscriber.java | 2 +- .../java/ch/loway/oss/ari4java/ARITest.java | 37 ++-- 5 files changed, 114 insertions(+), 124 deletions(-) diff --git a/build.gradle b/build.gradle index 3b557e4a..b238d574 100644 --- a/build.gradle +++ b/build.gradle @@ -55,6 +55,17 @@ jar { } } +javadoc { + def inc = [ + 'ch/loway/oss/ari4java/generated/AriVersion.java', + 'ch/loway/oss/ari4java/generated/actions/*', + 'ch/loway/oss/ari4java/generated/models/*', + 'ch/loway/oss/ari4java/*', + 'ch/loway/oss/ari4java/tools/*' + ] + includes = inc.toSet() +} + task sourcesJar(type: Jar, dependsOn: classes) { archiveClassifier.set('sources') from sourceSets.main.allSource diff --git a/src/main/java/ch/loway/oss/ari4java/ARI.java b/src/main/java/ch/loway/oss/ari4java/ARI.java index bcf9613e..cdefe8ea 100644 --- a/src/main/java/ch/loway/oss/ari4java/ARI.java +++ b/src/main/java/ch/loway/oss/ari4java/ARI.java @@ -1,22 +1,14 @@ package ch.loway.oss.ari4java; +import ch.loway.oss.ari4java.generated.actions.*; import ch.loway.oss.ari4java.generated.actions.requests.EventsEventWebsocketGetRequest; +import ch.loway.oss.ari4java.generated.models.Application; +import ch.loway.oss.ari4java.generated.models.Message; import ch.loway.oss.ari4java.tools.*; -import ch.loway.oss.ari4java.generated.actions.*; -import ch.loway.oss.ari4java.generated.models.*; - -import java.io.IOException; -import java.net.URL; - import ch.loway.oss.ari4java.tools.http.NettyHttpClient; import ch.loway.oss.ari4java.tools.tags.EventSource; -import java.io.BufferedReader; -import java.io.InputStream; -import java.io.InputStreamReader; -import java.net.MalformedURLException; import java.net.URISyntaxException; -import java.net.URLConnection; import java.util.concurrent.CopyOnWriteArrayList; import java.util.regex.Matcher; import java.util.regex.Pattern; @@ -32,7 +24,6 @@ public class ARI { private final static String ALLOWED_IN_UID = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ"; private String appName = ""; - private String url = ""; private AriVersion version; private HttpClient httpClient; private WsClient wsClient; @@ -40,40 +31,42 @@ public class ARI { private AriSubscriber subscriptions = new AriSubscriber(); private final CopyOnWriteArrayList liveActionList = new CopyOnWriteArrayList<>(); + /** + * Sets the client + * + * @param httpClient the http client + */ public void setHttpClient(HttpClient httpClient) { this.httpClient = httpClient; } + /** + * Sets the client + * + * @param wsClient the ws client + */ public void setWsClient(WsClient wsClient) { this.wsClient = wsClient; } + /** + * Sets the Version + * + * @param version the version + */ public void setVersion(AriVersion version) { this.version = version; } - public void setUrl(String url) { - this.url = url; - } - /** - * Returns the current ARI version. + * Returns the current ARI version * - * @return the ARI version currently used. + * @return the version */ public AriVersion getVersion() { return version; } - /** - * Returns the server and port the websocket is connected to. - * - * @return the server currently being used. - */ - public String getUrl() { - return url; - } - /** * Get the implementation for a given action interface * @@ -84,16 +77,14 @@ public String getUrl() { */ @SuppressWarnings("unchecked") public T getActionImpl(Class klazz) throws ARIException { - - // use the events method as we ref it for cleanup + if (!klazz.getName().startsWith("ch.loway.oss.ari4java.generated.actions.Action")) { + throw new ARIException("Invalid Class for action " + klazz); + } + Object action = buildConcreteImplementation(klazz); + setupAction(action); if (klazz == ActionEvents.class) { - return (T) events(); + liveActionEvent = (ActionEvents) action; } - - BaseAriAction action = (BaseAriAction) buildConcreteImplementation(klazz); - action.setHttpClient(this.httpClient); - action.setWsClient(this.wsClient); - action.setLiveActionList(this.liveActionList); return (T) action; } @@ -118,31 +109,20 @@ public T getModelImpl(Class klazz) throws ARIException { * @return the concrete implementation for that interface under the ARI in use. * @throws ARIException when error */ - private Object buildConcreteImplementation(Class klazz) throws ARIException { - + private Object buildConcreteImplementation(Class klazz) throws ARIException { if (version == null) { - throw new ARIException("API version not set"); + throw new ARIException("AriVersion not set"); } - - Class concrete = version.builder.getClassFactory().getImplementationFor(klazz); + Class concrete = version.builder.getClassFactory().getImplementationFor(klazz); if (concrete == null) { throw new ARIException("No concrete implementation in " + version.name() + " for " + klazz); } - try { - return concrete.newInstance(); - } catch (IllegalAccessException e) { - e.printStackTrace(); - } catch (InstantiationException e) { - e.printStackTrace(); - } catch (NullPointerException e) { - // Do nothing - e.printStackTrace(); + return concrete.getDeclaredConstructor().newInstance(); + } catch (Exception e) { + throw new ARIException("Unable to build concrete implementation for " + + klazz.getName() + " in " + version.name(), e); } - throw new ARIException("Unable to build concrete implementation " - + "for " + klazz.getName() - + " in " + version.name() - ); } /** @@ -164,7 +144,8 @@ public void closeAction(Object action) throws ARIException { } /** - * @see ARI#build(String, String, String, String, AriVersion, boolean) + * Minimal helper to build an instance of ARI + * * @param url url * @param app app * @param user user @@ -172,24 +153,21 @@ public void closeAction(Object action) throws ARIException { * @param version The required version * @return instance * @throws ARIException exception + * @see ARI#build(String, String, String, String, AriVersion, boolean) */ public static ARI build(String url, String app, String user, String pass, AriVersion version) throws ARIException { return build(url, app, user, pass, version, true); } /** - * Builds a connector object for the specified ARI version. - * If the version is set as IM_FEELING_LUCKY, then it will first try connecting, - * will detect the current ARI version and will then connect to it. - * This method uses Netty for both websocket and HTTP. - *

- * As this sets everything up but does not do anything, we do not have any - * information on whether this connection is valid or not. + * Helper to build an instance of ARI. + * If the version is set as IM_FEELING_LUCKY the ARI version will be determined by 1st connecting + * to the server and requesting the resources.json to extract the version number. * - * @param url The URL of the Asterisk web server, e.g. http://10.10.5.8:8088/ - defined in http.conf + * @param url The URL of the Asterisk web server, e.g. http://10.10.5.8:8088/ (defined in http.conf) * @param app The app * @param user The user name (defined in ari.conf) - * @param pass The password + * @param pass The password (defined in ari.conf) * @param version The required version * @param testConnection Test the connection details by executing the ping operation * @return an instance @@ -229,7 +207,7 @@ public String getAppName() { /** * Connect and detect the current ARI version. * If the ARI version is not supported, - * will raise an excepttion as we have no bindings for it. + * will raise an exception as we have no bindings for it. * * @param url url * @param user user @@ -262,12 +240,11 @@ protected static AriVersion detectAriVersion(String url, String user, String pas */ private static String findVersionString(String response) throws ARIException { Pattern p = Pattern.compile(".apiVersion.:\\s*\"(.+?)\"", Pattern.MULTILINE + Pattern.CASE_INSENSITIVE); - Matcher m = p.matcher(response); if (m.find()) { return m.group(1); } else { - throw new ARIException("Could not match apiVersion "); + throw new ARIException("Could find apiVersion"); } } @@ -343,6 +320,12 @@ private void destroy(Object client) { } } + /** + * Gets an instance of a message queue + * + * @return MessageQueue + * @throws ARIException when error + */ public MessageQueue getWebsocketQueue() throws ARIException { return getWebsocketQueue(false); } @@ -358,15 +341,11 @@ public MessageQueue getWebsocketQueue() throws ARIException { * @throws ARIException when error */ public MessageQueue getWebsocketQueue(boolean subscribeAll) throws ARIException { - if (liveActionEvent != null) { throw new ARIException("Websocket already present"); } - final MessageQueue q = new MessageQueue(); - - AriCallback callback = new AriCallback() { - + AriCallback callback = new AriCallback() { @Override public void onSuccess(Message result) { q.queue(result); @@ -377,7 +356,6 @@ public void onFailure(RestException e) { q.queueError("Err:" + e.getMessage()); } }; - EventsEventWebsocketGetRequest eventsRequest = events().eventWebsocket(appName); try { eventsRequest.setSubscribeAll(subscribeAll); @@ -385,31 +363,29 @@ public void onFailure(RestException e) { // ignore } eventsRequest.execute(callback); - return q; - } /** - * Gets us a ready to use object. + * Gets a ready to use Applications Action. * - * @return an Applications object. + * @return ActionApplications */ public ActionApplications applications() { return (ActionApplications) setupAction(version.builder().actionApplications()); } /** - * Gets us a ready to use object. + * Gets a ready to use Asterisk Action. * - * @return an Asterisk object. + * @return ActionAsterisk */ public ActionAsterisk asterisk() { return (ActionAsterisk) setupAction(version.builder().actionAsterisk()); } /** - * Gets us a ready to use object. + * Gets a ready to use Bridges Action. * * @return a Bridges object. */ @@ -418,36 +394,36 @@ public ActionBridges bridges() { } /** - * Gets us a ready to use object. + * Gets a ready to use Channels Action. * - * @return a Channels object. + * @return ActionChannels */ public ActionChannels channels() { return (ActionChannels) setupAction(version.builder().actionChannels()); } /** - * Gets us a ready to use object. + * Gets a ready to use Device States Action. * - * @return a DeviceStates object. + * @return ActionDeviceStates */ public ActionDeviceStates deviceStates() { return (ActionDeviceStates) setupAction(version.builder().actionDeviceStates()); } /** - * Gets us a ready to use object. + * Gets a ready to use Endpoints Action. * - * @return an Endpoints object. + * @return ActionEndpoints */ public ActionEndpoints endpoints() { return (ActionEndpoints) setupAction(version.builder().actionEndpoints()); } /** - * Gets us a ready to use object. + * Gets a ready to use Events Action. * - * @return an Events object. + * @return ActionEvents */ public ActionEvents events() { liveActionEvent = (ActionEvents) setupAction(version.builder().actionEvents()); @@ -455,55 +431,49 @@ public ActionEvents events() { } /** - * Gets us a ready to use object. + * Gets a ready to use Mailboxes Action. * - * @return a Mailboxes object. + * @return ActionMailboxes */ public ActionMailboxes mailboxes() { return (ActionMailboxes) setupAction(version.builder().actionMailboxes()); } /** - * Gets us a ready to use object. + * Gets a ready to use Playbacks Action. * - * @return a Playbacks object. + * @return ActionPlaybacks */ public ActionPlaybacks playbacks() { return (ActionPlaybacks) setupAction(version.builder().actionPlaybacks()); } /** - * Gets us a ready to use object. + * Gets a ready to use Recordings Action. * - * @return a Recordings object. + * @return ActionRecordings */ public ActionRecordings recordings() { return (ActionRecordings) setupAction(version.builder().actionRecordings()); } /** - * Gets us a ready to use object. + * Gets a ready to use Sounds Action. * - * @return a Sounds object. + * @return ActionSounds */ public ActionSounds sounds() { return (ActionSounds) setupAction(version.builder().actionSounds()); } /** - * This code REALLY smells bad. - * Most likely we should either implement an interface, or push the clients - * to the default builder. - *

- * See the getActionImpl() method here. - *

- * \TODO + * Checks if a BaseAriAction and sets the base properties * - * @param a the object + * @param a the action object * @return an Action object on which we'll set the default clients. * @throws IllegalArgumentException when error */ - public Object setupAction(Object a) throws IllegalArgumentException { + private Object setupAction(Object a) throws IllegalArgumentException { if (a instanceof BaseAriAction) { BaseAriAction action = (BaseAriAction) a; action.setHttpClient(this.httpClient); @@ -568,7 +538,6 @@ public Application subscribe(EventSource m) throws RestException { */ public void unsubscribe(EventSource m) throws RestException { subscriptions.unsubscribe(this, m); - } /** @@ -581,10 +550,9 @@ public void unsubscribeAll() throws RestException { } /** - * This interface is used to go from an interface to its concrete - * implementation. + * This interface is used to go from an interface to its concrete implementation. */ - public static interface ClassFactory { - public Class getImplementationFor(Class interfaceClass); + public interface ClassFactory { + public Class getImplementationFor(Class interfaceClass); } } diff --git a/src/main/java/ch/loway/oss/ari4java/AriFactory.java b/src/main/java/ch/loway/oss/ari4java/AriFactory.java index 6aef6fd3..9e8710b3 100644 --- a/src/main/java/ch/loway/oss/ari4java/AriFactory.java +++ b/src/main/java/ch/loway/oss/ari4java/AriFactory.java @@ -38,7 +38,7 @@ public static ARI nettyHttp(String uri, String login, String pass, AriVersion ve * @throws URISyntaxException when error */ public static ARI nettyHttp(String uri, String login, String pass, AriVersion version, String app) throws URISyntaxException { - return nettyHttp(uri, login, pass, version, "", true); + return nettyHttp(uri, login, pass, version, app, true); } /** diff --git a/src/main/java/ch/loway/oss/ari4java/AriSubscriber.java b/src/main/java/ch/loway/oss/ari4java/AriSubscriber.java index ca4a35f9..b5c92189 100644 --- a/src/main/java/ch/loway/oss/ari4java/AriSubscriber.java +++ b/src/main/java/ch/loway/oss/ari4java/AriSubscriber.java @@ -12,7 +12,7 @@ */ public class AriSubscriber { - List subscriptions = new ArrayList(); + List subscriptions = new ArrayList<>(); public Application subscribe(ARI ari, EventSource m) throws RestException { diff --git a/src/test/java/ch/loway/oss/ari4java/ARITest.java b/src/test/java/ch/loway/oss/ari4java/ARITest.java index 55951d6b..19689b14 100644 --- a/src/test/java/ch/loway/oss/ari4java/ARITest.java +++ b/src/test/java/ch/loway/oss/ari4java/ARITest.java @@ -5,7 +5,10 @@ import ch.loway.oss.ari4java.generated.ari_0_0_1.actions.ActionAsterisk_impl_ari_0_0_1; import ch.loway.oss.ari4java.generated.ari_0_0_1.actions.ActionBridges_impl_ari_0_0_1; import ch.loway.oss.ari4java.generated.ari_1_0_0.actions.ActionAsterisk_impl_ari_1_0_0; +import ch.loway.oss.ari4java.tools.ARIException; +import ch.loway.oss.ari4java.tools.HttpClient; import org.junit.Test; +import org.mockito.Mockito; import static org.junit.Assert.*; @@ -15,25 +18,32 @@ public class ARITest { @Test - public void testImplementationFactory() { - ARI.ClassFactory factory = new ARI.ClassFactory() { - @Override - public Class getImplementationFor(Class interfaceClass) { - if (interfaceClass.equals(ActionBridges.class)) { - return ActionBridges_impl_ari_0_0_1.class; - } else { - return null; - } - } - }; - assertEquals(ActionBridges_impl_ari_0_0_1.class, factory.getImplementationFor(ActionBridges.class)); - assertNull(factory.getImplementationFor(String.class)); + public void testImplementationFactory() throws Exception { + ARI ari = new ARI(); + ari.setVersion(AriVersion.ARI_0_0_1); + assertEquals(ActionBridges_impl_ari_0_0_1.class, ari.getModelImpl(ActionBridges.class).getClass()); + boolean exception = false; + try { + ari.getModelImpl(String.class); + } catch (ARIException e) { + exception = e.getMessage().contains("No concrete implementation"); + } + assertTrue("Expected 'No concrete implementation' exception for getModelImpl(String.class)", exception); + exception = false; + try { + ari.getActionImpl(String.class); + } catch (ARIException e) { + exception = e.getMessage().contains("Invalid Class"); + } + assertTrue("Expected 'Invalid Class' exception for getModelImpl(String.class)", exception); + assertNotNull("Expected Action", ari.getActionImpl(ActionAsterisk.class)); } @Test public void testBuildAction() { ARI ari = new ARI(); ari.setVersion(AriVersion.ARI_0_0_1); + ari.setHttpClient(Mockito.mock(HttpClient.class)); ActionAsterisk asterisk = ari.asterisk(); assertEquals(ActionAsterisk_impl_ari_0_0_1.class.toString(), asterisk.getClass().toString()); @@ -41,6 +51,7 @@ public void testBuildAction() { ari.setVersion(AriVersion.ARI_1_0_0); asterisk = ari.asterisk(); assertEquals(ActionAsterisk_impl_ari_1_0_0.class.toString(), asterisk.getClass().toString()); + assertNotNull("Expecting HttpClient to be set", ((ActionAsterisk_impl_ari_1_0_0)asterisk).getHttpClient()); } @Test From b640b33f20798b7080c8bdae51b7a447c7af3ce7 Mon Sep 17 00:00:00 2001 From: Graham Brown Date: Sat, 29 Feb 2020 23:34:02 +0200 Subject: [PATCH 127/220] set java to 1.8 --- codegen/build.gradle | 5 +++++ examples/build.gradle | 5 +++++ 2 files changed, 10 insertions(+) diff --git a/codegen/build.gradle b/codegen/build.gradle index c4bbfe2e..c82fd8e5 100644 --- a/codegen/build.gradle +++ b/codegen/build.gradle @@ -13,6 +13,11 @@ dependencies { compile 'com.google.googlejavaformat:google-java-format:1.7' } +java { + sourceCompatibility = JavaVersion.VERSION_1_8 + targetCompatibility = JavaVersion.VERSION_1_8 +} + task runCodegen(type: JavaExec) { classpath = sourceSets.main.runtimeClasspath main = 'ch.loway.oss.ari4java.codegen.run' diff --git a/examples/build.gradle b/examples/build.gradle index 2a08f7e1..5c92d0e2 100644 --- a/examples/build.gradle +++ b/examples/build.gradle @@ -14,6 +14,11 @@ dependencies { compile 'org.apache.logging.log4j:log4j-slf4j-impl:2.13.0' } +java { + sourceCompatibility = JavaVersion.VERSION_1_8 + targetCompatibility = JavaVersion.VERSION_1_8 +} + //task runWeaselsExample(type: JavaExec) { // classpath = sourceSets.main.runtimeClasspath // main = 'ch.loway.oss.ari4java.examples.Weasels' From 27af617adafae48f73267bbd059bf5219e259eae Mon Sep 17 00:00:00 2001 From: Graham Brown Date: Sat, 29 Feb 2020 23:34:37 +0200 Subject: [PATCH 128/220] revert repeat to a for loop --- .../java/ch/loway/oss/ari4java/codegen/genJava/JavaGen.java | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/codegen/src/main/java/ch/loway/oss/ari4java/codegen/genJava/JavaGen.java b/codegen/src/main/java/ch/loway/oss/ari4java/codegen/genJava/JavaGen.java index 6e35454e..4c12b95f 100644 --- a/codegen/src/main/java/ch/loway/oss/ari4java/codegen/genJava/JavaGen.java +++ b/codegen/src/main/java/ch/loway/oss/ari4java/codegen/genJava/JavaGen.java @@ -56,7 +56,9 @@ public static String addAsyncCallback(String response) { } public static void emptyLines(StringBuilder sb, int nLines) { - sb.append("\n".repeat(Math.max(0, nLines))); + for (int i = 0; i < nLines; i++) { + sb.append("\n"); + } } } From abdaf1bf13e13465845bbbe2903e8b027ca54ac8 Mon Sep 17 00:00:00 2001 From: Graham Brown Date: Sun, 1 Mar 2020 12:39:00 +0200 Subject: [PATCH 129/220] skip the release trigger for now --- .github/workflows/gradle.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/gradle.yml b/.github/workflows/gradle.yml index 7d26468c..c8a07fd6 100644 --- a/.github/workflows/gradle.yml +++ b/.github/workflows/gradle.yml @@ -8,8 +8,8 @@ on: pull_request: branches: - master - release: - types: [published] +# release: +# types: [published] jobs: build: From 02b6643129b7d09de905ebf1002468376088f36e Mon Sep 17 00:00:00 2001 From: Graham Brown Date: Sun, 1 Mar 2020 14:47:18 +0200 Subject: [PATCH 130/220] create a webservice callback helper (Fixes #23) --- .../loway/oss/ari4java/codegen/DefMapper.java | 65 +++++++++++++++---- .../loway/oss/ari4java/examples/Weasels.java | 49 +++++++------- 2 files changed, 78 insertions(+), 36 deletions(-) diff --git a/codegen/src/main/java/ch/loway/oss/ari4java/codegen/DefMapper.java b/codegen/src/main/java/ch/loway/oss/ari4java/codegen/DefMapper.java index 3d04f8c4..403f70fa 100644 --- a/codegen/src/main/java/ch/loway/oss/ari4java/codegen/DefMapper.java +++ b/codegen/src/main/java/ch/loway/oss/ari4java/codegen/DefMapper.java @@ -28,6 +28,7 @@ import java.util.List; import java.util.Map; import java.util.Set; +import java.util.concurrent.atomic.AtomicBoolean; /** * The model mapper keeps a list of interfaces and actual implementations. @@ -45,6 +46,7 @@ public class DefMapper { private String outputFolder; private ObjectMapper om = new ObjectMapper(); private Formatter codeFormatter = new Formatter(); + private Set messageInterfaces = new HashSet<>(); /** * Loads definitions from a module. @@ -70,7 +72,6 @@ public void parseJsonDefinition(File f, String apiVersion) throws Exception { List lModels = loadModels(rootNode.get("models"), f, apiVersion); Apis api1 = loadApis(rootNode.get("apis"), f, apiVersion); - myModels.addAll(lModels); myAPIs.add(api1); @@ -87,19 +88,21 @@ public void parseJsonDefinition(File f, String apiVersion) throws Exception { } } - StringBuilder defs = new StringBuilder(); - for (Model m : otherModels) { - if (defs.length() > 0) { - defs.append(",\n"); + if (typeMessage != null) { + + StringBuilder defs = new StringBuilder(); + for (Model m : otherModels) { + if (defs.length() > 0) { + defs.append(",\n"); + } + defs.append(" @Type(value = ") + .append(m.getImplName()) + .append(".class, name = \"") + .append(m.getInterfaceName()) + .append("\")"); + messageInterfaces.add(m.getInterfaceName()); } - defs.append(" @Type(value = ") - .append(m.getImplName()) - .append(".class, name = \"") - .append(m.getInterfaceName()) - .append("\")"); - } - if (typeMessage != null) { typeMessage.additionalPreambleText = " @JsonTypeInfo(use = JsonTypeInfo.Id.NAME," + " property = \"type\", visible = true)\n " + "@JsonSubTypes({\n" @@ -159,6 +162,7 @@ public void generateAllClasses() throws Exception { generateApis(); generateProperties(abi); generateImplementationClasses(); + generateAriWSCallback(); } /** @@ -187,7 +191,6 @@ public AriBuilderInterface generateInterfaces() throws Exception { * @throws Exception when error */ public void generateModels() throws Exception { -// System.out.println("generateModels"); for (Model m : myModels) { String minIf = m.getInterfaceName(); JavaInterface ji = interfaces.get(minIf); @@ -596,6 +599,42 @@ private void writeAriBuilder(String apiVersion, AriBuilderInterface abi, Collect } + private void generateAriWSCallback() throws Exception { + StringBuilder sb = new StringBuilder(); + StringBuilder methods = new StringBuilder(); + JavaGen.importClasses(sb, "ch.loway.oss.ari4java.generated", + Arrays.asList( + "ch.loway.oss.ari4java.tools.AriConnectionEvent", + "ch.loway.oss.ari4java.tools.AriWSCallback", + "ch.loway.oss.ari4java.generated.models.*", + "ch.loway.oss.ari4java.tools.RestException", + "org.slf4j.Logger", + "org.slf4j.LoggerFactory")); + sb.append("public abstract class AriWSHelper implements AriWSCallback {\n\n"); + sb.append("private Logger logger = LoggerFactory.getLogger(AriWSHelper.class);\n\n"); + sb.append("@Override\npublic void onSuccess(Message message) {\n"); + AtomicBoolean first = new AtomicBoolean(true); + messageInterfaces.forEach(i -> { + if (!i.equals("Event")) { + if (first.get()) { + first.set(false); + } else { + sb.append(" else "); + } + sb.append("if (message instanceof ").append(i).append(") {\non").append(i).append("((").append(i).append(") message);\n}"); + methods.append("protected void on").append(i).append("(final ").append(i).append(" message) {\n"); + methods.append("logger.warn(\"Event ").append(i).append(" Unhandled\");\n"); + methods.append("}\n\n"); + } + }); + sb.append(" else {\nlogger.error(\"Unknown Event - \" + message.getClass());\n}\n}\n\n"); + sb.append("@Override\npublic void onFailure(RestException e) {\nlogger.error(\"Error: {}\", e.getMessage(), e);\n}\n\n"); + sb.append("@Override\npublic void onConnectionEvent(AriConnectionEvent event) {\nlogger.debug(event.name());\n}\n\n"); + sb.append(methods); + sb.append("\n}"); + saveToDisk("ch.loway.oss.ari4java.generated", "AriWSHelper", sb.toString()); + } + /** * @param outputFolder the folder */ diff --git a/examples/src/main/java/ch/loway/oss/ari4java/examples/Weasels.java b/examples/src/main/java/ch/loway/oss/ari4java/examples/Weasels.java index 1f6252ac..afa910a0 100644 --- a/examples/src/main/java/ch/loway/oss/ari4java/examples/Weasels.java +++ b/examples/src/main/java/ch/loway/oss/ari4java/examples/Weasels.java @@ -2,6 +2,7 @@ import ch.loway.oss.ari4java.ARI; import ch.loway.oss.ari4java.AriVersion; +import ch.loway.oss.ari4java.generated.AriWSHelper; import ch.loway.oss.ari4java.generated.models.AsteriskInfo; import ch.loway.oss.ari4java.generated.models.Message; import ch.loway.oss.ari4java.generated.models.PlaybackFinished; @@ -66,22 +67,10 @@ private boolean connect(String url, String user, String pass, AriVersion ver) { private void weasels() throws InterruptedException, RestException { final ExecutorService threadPool = Executors.newFixedThreadPool(10); - ari.events().eventWebsocket(ARI_APP).execute(new AriWSCallback() { + ari.events().eventWebsocket(ARI_APP).execute(new AriWSHelper() { @Override public void onSuccess(Message message) { - threadPool.execute(() -> { - try { - if (message instanceof StasisStart) { - handleStart((StasisStart) message); - } else if (message instanceof PlaybackFinished) { - handlePlaybackFinished((PlaybackFinished) message); - } else { - logger.info("Unhandled Event - {}", message.getType()); - } - } catch (Throwable e) { - logger.error("Error: {}", e.getMessage(), e); - } - }); + threadPool.execute(() -> super.onSuccess(message)); } @Override @@ -91,28 +80,42 @@ public void onFailure(RestException e) { } @Override - public void onConnectionEvent(AriConnectionEvent event) { - logger.debug(event.name()); + protected void onStasisStart(StasisStart message) { + handleStart(message); } + + @Override + protected void onPlaybackFinished(PlaybackFinished message) { + handlePlaybackFinished(message); + } + }); // usually we would not terminate and run indefinitely // waiting for 5 minutes before shutting down... threadPool.awaitTermination(5, TimeUnit.MINUTES); } - private void handleStart(StasisStart start) throws RestException { + private void handleStart(StasisStart start) { logger.info("Stasis Start Channel: {}", start.getChannel().getId()); ARI.sleep(300); // a slight pause before we start the playback ... - ari.channels().play(start.getChannel().getId(), "sound:weasels-eaten-phonesys").execute(); + try { + ari.channels().play(start.getChannel().getId(), "sound:weasels-eaten-phonesys").execute(); + } catch (Throwable e) { + logger.error("Error: {}", e.getMessage(), e); + } } - private void handlePlaybackFinished(PlaybackFinished playback) throws RestException { + private void handlePlaybackFinished(PlaybackFinished playback) { logger.info("PlaybackFinished - {}", playback.getPlayback().getTarget_uri()); if (playback.getPlayback().getTarget_uri().indexOf("channel:") == 0) { - String chanId = playback.getPlayback().getTarget_uri().split(":")[1]; - logger.info("Hangup Channel: {}", chanId); - ARI.sleep(300); // a slight pause before we hangup ... - ari.channels().hangup(chanId).execute(); + try { + String chanId = playback.getPlayback().getTarget_uri().split(":")[1]; + logger.info("Hangup Channel: {}", chanId); + ARI.sleep(300); // a slight pause before we hangup ... + ari.channels().hangup(chanId).execute(); + } catch (Throwable e) { + logger.error("Error: {}", e.getMessage(), e); + } } else { logger.error("Cannot handle URI - {}", playback.getPlayback().getTarget_uri()); } From 220d289d084adbd84bcad7d29ec974d81ac41cba Mon Sep 17 00:00:00 2001 From: Graham Brown Date: Sun, 1 Mar 2020 15:00:21 +0200 Subject: [PATCH 131/220] update cl and prepare 0.10.0 --- CHANGELOG.md | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 774054d8..2e2af5e9 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,16 +1,22 @@ # ARI4Java Changelog ## [Unreleased] -[Unreleased]: https://github.com/l3nz/ari4java/compare/REL-0.9.1...HEAD +[Unreleased]: https://github.com/l3nz/ari4java/compare/v0.10.0...HEAD + +## [0.10.0] +[0.10.0]: https://github.com/l3nz/ari4java/compare/v0.9.1...v0.10.0 ### Fixed - UnsupportedOperationException #15 - Javadoc warnings #149 - If Url doesn't end with a slash add one #150 +- Set `codegen` and `examples` to Java8 compatibility ### Added - toString for generated model if there is an `id` or `name` field +- `AriWSHelper` class for convenient `onMessage` methods for each type #23 +- Script to map Asterisk versions to ARI version ## [0.9.1] - 2020-02-23 -[0.9.1]: https://github.com/l3nz/ari4java/compare/REL-0.9.0...REL-0.9.1 +[0.9.1]: https://github.com/l3nz/ari4java/compare/REL-0.9.0...v0.9.1 ### Added - Test connection when creating ARI #19 ### Fixed From dd56f6e0c3da5f27229611695994d8f9660e73a9 Mon Sep 17 00:00:00 2001 From: Graham Brown Date: Sun, 1 Mar 2020 15:07:58 +0200 Subject: [PATCH 132/220] bump ver to 0.10.0 --- build.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.gradle b/build.gradle index b238d574..306ef0e8 100644 --- a/build.gradle +++ b/build.gradle @@ -6,7 +6,7 @@ plugins { } group = 'ch.loway.oss.ari4java' -version = '0.9.1' +version = '0.10.0' java { sourceCompatibility = JavaVersion.VERSION_1_8 From d24264b139733cb1def60eba49fc1fd1f089eeb4 Mon Sep 17 00:00:00 2001 From: Graham Brown Date: Sun, 1 Mar 2020 15:40:31 +0200 Subject: [PATCH 133/220] add runWeaselsExample back --- examples/build.gradle | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/examples/build.gradle b/examples/build.gradle index 5c92d0e2..6f0f0e04 100644 --- a/examples/build.gradle +++ b/examples/build.gradle @@ -19,7 +19,7 @@ java { targetCompatibility = JavaVersion.VERSION_1_8 } -//task runWeaselsExample(type: JavaExec) { -// classpath = sourceSets.main.runtimeClasspath -// main = 'ch.loway.oss.ari4java.examples.Weasels' -//} +task runWeaselsExample(type: JavaExec) { + classpath = sourceSets.main.runtimeClasspath + main = 'ch.loway.oss.ari4java.examples.Weasels' +} From 1872a04b27ded60a77bddd1b91fd72603b48ceb7 Mon Sep 17 00:00:00 2001 From: Graham Brown Date: Wed, 4 Mar 2020 18:15:24 +0200 Subject: [PATCH 134/220] add overview to JavaDocs and javadoc.io badge --- README.md | 1 + build.gradle | 4 +++- src/overview.html | 27 +++++++++++++++++++++++++++ 3 files changed, 31 insertions(+), 1 deletion(-) create mode 100644 src/overview.html diff --git a/README.md b/README.md index 6b2ad868..7d0bfaee 100644 --- a/README.md +++ b/README.md @@ -3,6 +3,7 @@ The Asterisk REST Interface (ARI) bindings for Java. [![Download](https://api.bintray.com/packages/ari4java/maven/ari4java/images/download.png)](https://bintray.com/ari4java/maven/ari4java/_latestVersion) +[![javadoc](https://javadoc.io/badge2/ch.loway.oss.ari4java/ari4java/javadoc.svg)](https://javadoc.io/doc/ch.loway.oss.ari4java/ari4java) [![Build](https://github.com/l3nz/ari4java/workflows/ARI4Java%20Build/badge.svg?branch=master&event=push)](https://github.com/l3nz/ari4java/actions?query=workflow%3A%22ARI4Java+Build%22) ## Description diff --git a/build.gradle b/build.gradle index 306ef0e8..91ac7be0 100644 --- a/build.gradle +++ b/build.gradle @@ -61,9 +61,11 @@ javadoc { 'ch/loway/oss/ari4java/generated/actions/*', 'ch/loway/oss/ari4java/generated/models/*', 'ch/loway/oss/ari4java/*', - 'ch/loway/oss/ari4java/tools/*' + 'ch/loway/oss/ari4java/tools/*', + 'ch/loway/oss/ari4java/tools/*/*' ] includes = inc.toSet() + options.overview = "src/overview.html" } task sourcesJar(type: Jar, dependsOn: classes) { diff --git a/src/overview.html b/src/overview.html new file mode 100644 index 00000000..a7810d77 --- /dev/null +++ b/src/overview.html @@ -0,0 +1,27 @@ + + +A full getting started guide can be found on the ARI4Java Wiki +

+    // create instance
+    ARI ari = ARI.build("http://192.168.56.44:8088/", "test-app", "ari4java", "yothere", AriVersion.IM_FEELING_LUCKY);
+    // get info
+    AsteriskInfo info = ari.asterisk().getInfo().execute();
+    // get event websocket
+    ari.events().eventWebsocket("test-app").execute(new AriWSCallback<Message<() {new AriWSCallback<List<Channel>>() {
+        @Override
+        public void onSuccess(List<Channel> result) {
+            // code to handle the result ...
+        }
+        @Override
+        public void onFailure(RestException e) {
+            e.printStackTrace();
+        }
+        @Override
+        public void onConnectionEvent(AriConnectionEvent event) {
+            // if you wish to know the status (connected/disconnected) of the WS connection
+        }
+    });
+
+See ch.loway.oss.ari4java.ARI Methods + + From c6000cd7ae58d85bdb0e96da3013f80d6bc8ecca Mon Sep 17 00:00:00 2001 From: Graham Brown Date: Sat, 21 Mar 2020 20:47:57 +0200 Subject: [PATCH 135/220] fixed issues highlighted by SonarQube --- .../loway/oss/ari4java/codegen/DefMapper.java | 17 +++++---- .../codegen/models/ClassTranslator.java | 11 +++--- .../ch/loway/oss/ari4java/codegen/run.java | 37 +++++++++---------- 3 files changed, 33 insertions(+), 32 deletions(-) diff --git a/codegen/src/main/java/ch/loway/oss/ari4java/codegen/DefMapper.java b/codegen/src/main/java/ch/loway/oss/ari4java/codegen/DefMapper.java index 403f70fa..a2277143 100644 --- a/codegen/src/main/java/ch/loway/oss/ari4java/codegen/DefMapper.java +++ b/codegen/src/main/java/ch/loway/oss/ari4java/codegen/DefMapper.java @@ -469,11 +469,14 @@ public void saveToDisk(String pkgName, String className, String classText) throw File f = new File(fName); //noinspection ResultOfMethodCallIgnored - f.getParentFile().mkdirs(); + f.getParentFile().mkdirs(); //NOSONAR FileWriter outFile = new FileWriter(f); PrintWriter out = new PrintWriter(outFile); - out.println(codeFormatter.formatSource(classText)); - out.close(); + try { + out.println(codeFormatter.formatSource(classText)); + } finally { + out.close(); + } } public void saveToDisk(Model model) throws Exception { @@ -508,12 +511,12 @@ private void deleteFolder(File folder) { deleteFolder(f); } else { //noinspection ResultOfMethodCallIgnored - f.delete(); + f.delete(); //NOSONAR } } } //noinspection ResultOfMethodCallIgnored - folder.delete(); + folder.delete(); //NOSONAR } private String txt(JsonNode n) { @@ -554,11 +557,9 @@ public String remapConcreteType(String jsonType, String apiVersion) { } public String innerRemapType(String jsonType, boolean concrete, String apiVersion) { - String listAry = "List["; - if (jsonType.startsWith(listAry)) { - return (concrete ? "List<" : "List<") + innerRemapType(jsonType.substring(listAry.length(), + return "List<" + innerRemapType(jsonType.substring(listAry.length(), jsonType.length() - 1), concrete, apiVersion) + ">"; } else if (JavaPkgInfo.TypeMap.containsKey(jsonType.toLowerCase())) { return JavaPkgInfo.TypeMap.get(jsonType.toLowerCase()); diff --git a/codegen/src/main/java/ch/loway/oss/ari4java/codegen/models/ClassTranslator.java b/codegen/src/main/java/ch/loway/oss/ari4java/codegen/models/ClassTranslator.java index eecadf80..8b3d8e88 100644 --- a/codegen/src/main/java/ch/loway/oss/ari4java/codegen/models/ClassTranslator.java +++ b/codegen/src/main/java/ch/loway/oss/ari4java/codegen/models/ClassTranslator.java @@ -3,11 +3,7 @@ import ch.loway.oss.ari4java.codegen.genJava.JavaGen; import ch.loway.oss.ari4java.codegen.genJava.JavaPkgInfo; -import java.util.ArrayList; -import java.util.Collections; -import java.util.HashMap; -import java.util.List; -import java.util.Map; +import java.util.*; /** * This class models a ClassTranslator. @@ -81,4 +77,9 @@ public boolean equals(Object obj) { } return super.equals(obj); } + + @Override + public int hashCode() { + return this.apiVersion.hashCode(); + } } diff --git a/codegen/src/main/java/ch/loway/oss/ari4java/codegen/run.java b/codegen/src/main/java/ch/loway/oss/ari4java/codegen/run.java index a5deed91..6e9d376c 100644 --- a/codegen/src/main/java/ch/loway/oss/ari4java/codegen/run.java +++ b/codegen/src/main/java/ch/loway/oss/ari4java/codegen/run.java @@ -3,7 +3,9 @@ import java.io.File; import java.nio.file.Files; +import java.nio.file.Path; import java.nio.file.Paths; +import java.util.stream.Stream; /** * $Id$ @@ -16,30 +18,27 @@ public static void main(String[] argv) throws Exception { System.out.println("This is ARI4JAVA Code Generator version " + VERSION.VER); String sourceFolder = "./src/main/resources/codegen-data/"; String outputFolder = "../src/main/generated/"; - DefMapper dm = new DefMapper(); dm.setOutputFolder(outputFolder); dm.clean(); - - Files.list(Paths.get(sourceFolder)) - .filter(p -> p.toFile().isDirectory()) - .sorted((p1, p2) -> { - // break up folder into version parts and sort as numbers - String[] items1 = p1.getFileName().toString().split("_"); - String[] items2 = p2.getFileName().toString().split("_"); - if (items1.length == 4 && items2.length == 4) { - if (items1[1].equals(items2[1])) { - if (items1[2].equals(items2[2])) { - return Integer.valueOf(items1[3]).compareTo(Integer.valueOf(items2[3])); - } - return Integer.valueOf(items1[2]).compareTo(Integer.valueOf(items2[2])); + Files.list(Paths.get(sourceFolder)); + try (Stream list = Files.list(Paths.get(sourceFolder))) { + list.filter(p -> p.toFile().isDirectory()).sorted((p1, p2) -> { + // break up folder into version parts and sort as numbers + String[] items1 = p1.getFileName().toString().split("_"); + String[] items2 = p2.getFileName().toString().split("_"); + if (items1.length == 4 && items2.length == 4) { + if (items1[1].equals(items2[1])) { + if (items1[2].equals(items2[2])) { + return Integer.valueOf(items1[3]).compareTo(Integer.valueOf(items2[3])); } - return Integer.valueOf(items1[1]).compareTo(Integer.valueOf(items2[1])); + return Integer.valueOf(items1[2]).compareTo(Integer.valueOf(items2[2])); } - return p1.compareTo(p2); - }) - .forEach(p -> loadAsteriskDefs(dm, p.toFile())); - + return Integer.valueOf(items1[1]).compareTo(Integer.valueOf(items2[1])); + } + return p1.compareTo(p2); + }).forEach(p -> loadAsteriskDefs(dm, p.toFile())); + } dm.generateAllClasses(); } From 6fb9327ebd5865586e9651181b07af0e28e686e6 Mon Sep 17 00:00:00 2001 From: Graham Brown Date: Sat, 21 Mar 2020 20:48:20 +0200 Subject: [PATCH 136/220] pull all, not just master branch --- codegen/getApis.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/codegen/getApis.sh b/codegen/getApis.sh index 14b11471..a1ff5cc9 100755 --- a/codegen/getApis.sh +++ b/codegen/getApis.sh @@ -11,7 +11,7 @@ then else cd tmp/asterisk git checkout master --force - git pull origin master + git pull origin fi git log --reverse --pretty=oneline --all -- rest-api/resources.json | while read log From 283d6b9a51681e1f0cf3438b0d4d59e4671a39b9 Mon Sep 17 00:00:00 2001 From: Graham Brown Date: Sat, 21 Mar 2020 20:55:11 +0200 Subject: [PATCH 137/220] #11 Refactoring for tests and some other tweaks --- build.gradle | 140 +++++++---- .../gradle/wrapper/gradle-wrapper.properties | 5 +- .../oss/ari4java/examples/ConnectAndDial.java | 5 +- .../loway/oss/ari4java/examples/Weasels.java | 5 +- settings.gradle | 4 +- src/main/java/ch/loway/oss/ari4java/ARI.java | 231 +++++++++--------- .../ch/loway/oss/ari4java/AriFactory.java | 64 +++-- .../ch/loway/oss/ari4java/AriSubscriber.java | 2 - .../java/ch/loway/oss/ari4java/BUILD.java | 39 --- .../loway/oss/ari4java/tools/HttpClient.java | 2 + .../loway/oss/ari4java/tools/HttpParam.java | 23 +- .../oss/ari4java/tools/HttpResponse.java | 23 +- .../oss/ari4java/tools/MessageQueue.java | 2 +- .../ch/loway/oss/ari4java/tools/WsClient.java | 25 +- .../ari4java/tools/http/NettyHttpClient.java | 150 ++++++------ .../java/ch/loway/oss/ari4java/ARITest.java | 128 +++++++++- .../ch/loway/oss/ari4java/AriFactoryTest.java | 50 ++++ .../ch/loway/oss/ari4java/AriVersionTest.java | 36 +++ .../tools/http/NettyHttpClientTest.java | 140 +++++++++-- 19 files changed, 725 insertions(+), 349 deletions(-) delete mode 100644 src/main/java/ch/loway/oss/ari4java/BUILD.java create mode 100644 src/test/java/ch/loway/oss/ari4java/AriFactoryTest.java create mode 100644 src/test/java/ch/loway/oss/ari4java/AriVersionTest.java diff --git a/build.gradle b/build.gradle index 91ac7be0..099a81f1 100644 --- a/build.gradle +++ b/build.gradle @@ -1,12 +1,14 @@ plugins { - id 'java' - id 'maven-publish' - id 'com.jfrog.bintray' version '1.8.4' - id 'com.github.spotbugs' version '3.0.0' + id "java" + id "jacoco" + id "maven-publish" + id "com.jfrog.bintray" version "1.8.4" + id "com.github.spotbugs" version "3.0.0" + id "org.sonarqube" version "2.7.1" } -group = 'ch.loway.oss.ari4java' -version = '0.10.0' +group = "ch.loway.oss.ari4java" +version = "0.10.1" java { sourceCompatibility = JavaVersion.VERSION_1_8 @@ -16,7 +18,7 @@ java { sourceSets { main { java { - srcDir 'src/main/generated' + srcDir "src/main/generated" } } } @@ -26,56 +28,56 @@ repositories { } dependencies { - compile 'com.fasterxml.jackson.core:jackson-core:2.10.1' - compile 'com.fasterxml.jackson.core:jackson-databind:2.10.1' - compile 'com.fasterxml.jackson.core:jackson-annotations:2.10.1' - compile 'io.netty:netty-all:4.1.44.Final' - compile 'javax.xml.bind:jaxb-api:2.3.1' - compile 'org.slf4j:slf4j-api:1.7.30' + compile "com.fasterxml.jackson.core:jackson-core:2.10.1" + compile "com.fasterxml.jackson.core:jackson-databind:2.10.1" + compile "com.fasterxml.jackson.core:jackson-annotations:2.10.1" + compile "io.netty:netty-all:4.1.44.Final" + compile "javax.xml.bind:jaxb-api:2.3.1" + compile "org.slf4j:slf4j-api:1.7.30" - testCompile 'junit:junit:4.10' - testImplementation 'org.mockito:mockito-core:2.28.2' - testImplementation 'org.apache.logging.log4j:log4j-slf4j-impl:2.13.0' + testCompile "junit:junit:4.10" + testImplementation "org.mockito:mockito-core:2.28.2" + testImplementation "org.apache.logging.log4j:log4j-slf4j-impl:2.13.0" } -def build_number = 'x' -if (System.getenv('BUILD_NUMBER') != null) { - build_number = System.getenv('BUILD_NUMBER') +def build_number = "x" +if (System.getenv("BUILD_NUMBER") != null) { + build_number = System.getenv("BUILD_NUMBER") } task buildProps(type: WriteProperties) { - outputFile file('src/main/resources/build.properties') - property 'BUILD_NUMBER', build_number + outputFile file("src/main/resources/build.properties") + property "BUILD_NUMBER", build_number } jar { manifest { - attributes 'Implementation-Title': project.name, - 'Implementation-Version': project.version + attributes "Implementation-Title": project.name, + "Implementation-Version": project.version } } javadoc { def inc = [ - 'ch/loway/oss/ari4java/generated/AriVersion.java', - 'ch/loway/oss/ari4java/generated/actions/*', - 'ch/loway/oss/ari4java/generated/models/*', - 'ch/loway/oss/ari4java/*', - 'ch/loway/oss/ari4java/tools/*', - 'ch/loway/oss/ari4java/tools/*/*' + "ch/loway/oss/ari4java/generated/AriVersion.java", + "ch/loway/oss/ari4java/generated/actions/*", + "ch/loway/oss/ari4java/generated/models/*", + "ch/loway/oss/ari4java/*", + "ch/loway/oss/ari4java/tools/*", + "ch/loway/oss/ari4java/tools/*/*" ] includes = inc.toSet() options.overview = "src/overview.html" } task sourcesJar(type: Jar, dependsOn: classes) { - archiveClassifier.set('sources') + archiveClassifier.set("sources") from sourceSets.main.allSource } javadoc.failOnError = false task javadocJar(type: Jar, dependsOn: javadoc) { - archiveClassifier.set('javadoc') + archiveClassifier.set("javadoc") from javadoc.destinationDir } @@ -84,17 +86,67 @@ artifacts { archives javadocJar } -def projectUrl = 'http://github.com/l3nz/ari4java' +test { + jacoco { + excludes = ["**/generated/**"] + } +} + +jacocoTestReport { + reports { + xml.enabled true + csv.enabled false + html.enabled true + xml.destination = file("${buildDir}/reports/jacocoTestReport.xml") + html.destination = file("${buildDir}/reports/jacocoTestReport/html") + } + afterEvaluate { + classDirectories.setFrom(files(classDirectories.files.collect { + fileTree(dir: it, exclude: "**/generated/**") + })) + } +} + +jacocoTestCoverageVerification { + violationRules { + rule { + limit { + minimum = 0.3 + } + } + } + afterEvaluate { + classDirectories.setFrom(files(classDirectories.files.collect { + fileTree(dir: it, exclude: "**/generated/**") + })) + } +} + +sonarqube { + properties { + property "sonar.projectKey", "ari4java" + property "sonar.organization", "ari4java" + property "sonar.host.url", "https://sonarcloud.io" + property "sonar.login", System.getenv("SONAR_LOGIN") + property "sonar.java.coveragePlugin", "jacoco" + property "sonar.coverage.jacoco.xmlReportPaths", "${buildDir}/reports/jacocoTestReport.xml" + } +} + +test.finalizedBy jacocoTestReport +check.dependsOn jacocoTestCoverageVerification + +def projectUrl = "http://github.com/l3nz/ari4java" def pomConfig = { licenses { license { - name 'LPGL-3.0' + name "LPGL-3.0" } } developers { developer { - name 'lenz e.' - email 'nomail@home' + name "lenz e." + email "nomail@home" } } scm { @@ -115,9 +167,9 @@ publishing { } pom.withXml { def root = asNode() - root.appendNode('description', 'Asterisk ARI interface bindings for Java') - root.appendNode('name', project.name) - root.appendNode('url', projectUrl) + root.appendNode("description", "Asterisk ARI interface bindings for Java") + root.appendNode("name", project.name) + root.appendNode("url", projectUrl) root.children().last() + pomConfig } } @@ -125,16 +177,16 @@ publishing { } bintray { - user = System.getenv('BINTRAY_USER') - key = System.getenv('BINTRAY_KEY') - publications = ['mavenPublication'] + user = System.getenv("BINTRAY_USER") + key = System.getenv("BINTRAY_KEY") + publications = ["mavenPublication"] publish = true pkg { - repo = 'maven' + repo = "maven" name = project.name group = "ch.loway.oss.ari4java" - userOrg = 'ari4java' - licenses = ['LGPL-3.0'] + userOrg = "ari4java" + licenses = ["LGPL-3.0"] vcsUrl = projectUrl version { name = project.version diff --git a/examples/gradle/wrapper/gradle-wrapper.properties b/examples/gradle/wrapper/gradle-wrapper.properties index 44e7c4d1..778e15c7 100644 --- a/examples/gradle/wrapper/gradle-wrapper.properties +++ b/examples/gradle/wrapper/gradle-wrapper.properties @@ -1,5 +1,6 @@ +#Sun Mar 08 12:20:19 SAST 2020 +distributionUrl=https\://services.gradle.org/distributions/gradle-5.2.1-all.zip distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-5.2.1-bin.zip -zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists +zipStoreBase=GRADLE_USER_HOME diff --git a/examples/src/main/java/ch/loway/oss/ari4java/examples/ConnectAndDial.java b/examples/src/main/java/ch/loway/oss/ari4java/examples/ConnectAndDial.java index 30f47e57..53d11a1d 100644 --- a/examples/src/main/java/ch/loway/oss/ari4java/examples/ConnectAndDial.java +++ b/examples/src/main/java/ch/loway/oss/ari4java/examples/ConnectAndDial.java @@ -26,6 +26,7 @@ public class ConnectAndDial { public static final String ASTERISK_ADDRESS = "http://192.168.99.100:18088/"; public static final String ASTERISK_USER = "ari4java"; public static final String ASTERISK_PASS = "yothere"; + public static final String APP_NAME = "myapp"; ARI ari = null; Bridge b = null; @@ -71,7 +72,7 @@ public void connect() throws ARIException { System.out.println("Connecting to: " + ASTERISK_ADDRESS + " as " + ASTERISK_USER + ":" + ASTERISK_PASS); - ari = ARI.build(ASTERISK_ADDRESS, "myapp", + ari = ARI.build(ASTERISK_ADDRESS, APP_NAME, ASTERISK_USER, ASTERISK_PASS, AriVersion.IM_FEELING_LUCKY); @@ -118,7 +119,7 @@ public void processEvents() throws ARIException { long start = System.currentTimeMillis(); - Channel chan = ari.channels().originate("Local/100@wdep") + Channel chan = ari.channels().originate("Local/100@wdep").setApp(APP_NAME) .setExtension("100").setContext("wdep").setPriority(1).setTimeout(10000).execute(); System.out.println("Channel:" + chan.getId() + " in state " + chan.getState()); diff --git a/examples/src/main/java/ch/loway/oss/ari4java/examples/Weasels.java b/examples/src/main/java/ch/loway/oss/ari4java/examples/Weasels.java index afa910a0..ce561c91 100644 --- a/examples/src/main/java/ch/loway/oss/ari4java/examples/Weasels.java +++ b/examples/src/main/java/ch/loway/oss/ari4java/examples/Weasels.java @@ -7,6 +7,7 @@ import ch.loway.oss.ari4java.generated.models.Message; import ch.loway.oss.ari4java.generated.models.PlaybackFinished; import ch.loway.oss.ari4java.generated.models.StasisStart; +import ch.loway.oss.ari4java.tools.ARIException; import ch.loway.oss.ari4java.tools.AriConnectionEvent; import ch.loway.oss.ari4java.tools.AriWSCallback; import ch.loway.oss.ari4java.tools.RestException; @@ -65,9 +66,9 @@ private boolean connect(String url, String user, String pass, AriVersion ver) { return false; } - private void weasels() throws InterruptedException, RestException { + private void weasels() throws InterruptedException, ARIException { final ExecutorService threadPool = Executors.newFixedThreadPool(10); - ari.events().eventWebsocket(ARI_APP).execute(new AriWSHelper() { + ari.eventsCallback(new AriWSHelper() { @Override public void onSuccess(Message message) { threadPool.execute(() -> super.onSuccess(message)); diff --git a/settings.gradle b/settings.gradle index 1a40679a..8fe455cd 100644 --- a/settings.gradle +++ b/settings.gradle @@ -1,2 +1,2 @@ -rootProject.name = 'ari4java' -include 'codegen' +rootProject.name = "ari4java" +include "codegen" diff --git a/src/main/java/ch/loway/oss/ari4java/ARI.java b/src/main/java/ch/loway/oss/ari4java/ARI.java index cdefe8ea..e34056a0 100644 --- a/src/main/java/ch/loway/oss/ari4java/ARI.java +++ b/src/main/java/ch/loway/oss/ari4java/ARI.java @@ -5,13 +5,15 @@ import ch.loway.oss.ari4java.generated.models.Application; import ch.loway.oss.ari4java.generated.models.Message; import ch.loway.oss.ari4java.tools.*; -import ch.loway.oss.ari4java.tools.http.NettyHttpClient; import ch.loway.oss.ari4java.tools.tags.EventSource; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; -import java.net.URISyntaxException; +import java.io.IOException; +import java.io.InputStream; +import java.security.SecureRandom; +import java.util.Properties; import java.util.concurrent.CopyOnWriteArrayList; -import java.util.regex.Matcher; -import java.util.regex.Pattern; /** * ARI factory and helper class @@ -30,6 +32,7 @@ public class ARI { private ActionEvents liveActionEvent = null; private AriSubscriber subscriptions = new AriSubscriber(); private final CopyOnWriteArrayList liveActionList = new CopyOnWriteArrayList<>(); + private static Logger logger = LoggerFactory.getLogger(ARI.class); /** * Sets the client @@ -62,8 +65,12 @@ public void setVersion(AriVersion version) { * Returns the current ARI version * * @return the version + * @throws RuntimeException when version null */ public AriVersion getVersion() { + if (version == null) { + throw new RuntimeException("AriVersion not set"); + } return version; } @@ -98,6 +105,9 @@ public T getActionImpl(Class klazz) throws ARIException { */ @SuppressWarnings("unchecked") public T getModelImpl(Class klazz) throws ARIException { + if (!klazz.getName().startsWith("ch.loway.oss.ari4java.generated.models.")) { + throw new ARIException("Invalid Class for model " + klazz); + } return (T) buildConcreteImplementation(klazz); } @@ -110,18 +120,15 @@ public T getModelImpl(Class klazz) throws ARIException { * @throws ARIException when error */ private Object buildConcreteImplementation(Class klazz) throws ARIException { - if (version == null) { - throw new ARIException("AriVersion not set"); - } - Class concrete = version.builder.getClassFactory().getImplementationFor(klazz); + Class concrete = getVersion().builder().getClassFactory().getImplementationFor(klazz); if (concrete == null) { - throw new ARIException("No concrete implementation in " + version.name() + " for " + klazz); + throw new ARIException("No concrete implementation in " + getVersion().name() + " for " + klazz); } try { return concrete.getDeclaredConstructor().newInstance(); } catch (Exception e) { throw new ARIException("Unable to build concrete implementation for " - + klazz.getName() + " in " + version.name(), e); + + klazz.getName() + " in " + getVersion().name(), e); } } @@ -136,11 +143,7 @@ public void closeAction(Object action) throws ARIException { throw new ARIException("Class " + action.getClass().getName() + " is not an Action implementation"); } BaseAriAction ba = (BaseAriAction) action; - try { - ba.disconnectWs(); - } catch (RestException e) { - throw new ARIException(e.getMessage()); - } + ba.disconnectWs(); } /** @@ -161,7 +164,7 @@ public static ARI build(String url, String app, String user, String pass, AriVer /** * Helper to build an instance of ARI. - * If the version is set as IM_FEELING_LUCKY the ARI version will be determined by 1st connecting + * If the version is set as IM_FEELING_LUCKY the AriFactory will determine the version by 1st connecting * to the server and requesting the resources.json to extract the version number. * * @param url The URL of the Asterisk web server, e.g. http://10.10.5.8:8088/ (defined in http.conf) @@ -174,15 +177,10 @@ public static ARI build(String url, String app, String user, String pass, AriVer * @throws ARIException If the url is invalid, or the version of ARI is not supported. */ public static ARI build(String url, String app, String user, String pass, AriVersion version, boolean testConnection) throws ARIException { - if (version == AriVersion.IM_FEELING_LUCKY) { - AriVersion currentVersion = detectAriVersion(url, user, pass); - return build(url, app, user, pass, currentVersion, testConnection); - } else { - try { - return AriFactory.nettyHttp(url, user, pass, version, app, testConnection); - } catch (URISyntaxException e) { - throw new ARIException("Wrong URI format: " + url); - } + try { + return AriFactory.nettyHttp(url, user, pass, version, app, testConnection); + } catch (Exception e) { + throw new ARIException(e.getMessage(), e); } } @@ -204,50 +202,6 @@ public String getAppName() { return this.appName; } - /** - * Connect and detect the current ARI version. - * If the ARI version is not supported, - * will raise an exception as we have no bindings for it. - * - * @param url url - * @param user user - * @param pass pass - * @return the version of your server - * @throws ARIException if the version is not supported - */ - protected static AriVersion detectAriVersion(String url, String user, String pass) throws ARIException { - try { - NettyHttpClient hc = new NettyHttpClient(); - hc.initialize(url, user, pass); - String response = hc.httpActionSync("/api-docs/resources.json", "GET", null, null, null); - hc.destroy(); - String version = findVersionString(response); - return AriVersion.fromVersionString(version); - } catch (Exception e) { - if (e instanceof ARIException) { - throw (ARIException) e; - } - throw new ARIException(e.getMessage(), e); - } - } - - /** - * Matches the version string out of the resources.json file. - * - * @param response res - * @return a String describing the version reported from Asterisk. - * @throws ARIException when error - */ - private static String findVersionString(String response) throws ARIException { - Pattern p = Pattern.compile(".apiVersion.:\\s*\"(.+?)\"", Pattern.MULTILINE + Pattern.CASE_INSENSITIVE); - Matcher m = p.matcher(response); - if (m.find()) { - return m.group(1); - } else { - throw new ARIException("Could find apiVersion"); - } - } - /** * This operation is the opposite of a build() - to be called in the final * clause where the ARI object is built. @@ -268,22 +222,23 @@ public void cleanup() { // ignore on cleanup... } } - - destroy(wsClient); - if (wsClient != httpClient) { - destroy(httpClient); + if (wsClient != null) { + wsClient.destroy(); + } + if (httpClient != null && !httpClient.equals(wsClient)) { + httpClient.destroy(); } - wsClient = null; httpClient = null; + liveActionEvent = null; } /** * unsubscribe from all resources of the stasis application * - * @throws RestException when error + * @throws ARIException when error */ - private void unsubscribeApplication() throws RestException { + private void unsubscribeApplication() throws ARIException { Application application = applications().get(appName).execute(); // unsubscribe from all channels for (int i = 0; i < application.getChannel_ids().size(); i++) { @@ -304,22 +259,33 @@ private void unsubscribeApplication() throws RestException { } /** - * Does the destruction of a client. In a sense, it is a reverse factory. + * Create the events Websocket with the provided callback * - * @param client the client object - * @throws IllegalArgumentException All clients should be of a known type. Let's play it safe. + * @throws ARIException when error */ - private void destroy(Object client) { - if (client != null) { - if (client instanceof NettyHttpClient) { - NettyHttpClient nhc = (NettyHttpClient) client; - nhc.destroy(); - } else { - throw new IllegalArgumentException("Unknown client object " + client); - } + public void eventsCallback(AriCallback callback) throws ARIException { + eventsCallback(callback, false); + } + + /** + * Create the events Websocket with the provided callback + * + * @throws ARIException when error + */ + public void eventsCallback(AriCallback callback, boolean subscribeAll) throws ARIException { + if (liveActionEvent != null) { + throw new ARIException("Websocket already present"); + } + EventsEventWebsocketGetRequest eventsRequest = events().eventWebsocket(appName); + try { + eventsRequest.setSubscribeAll(subscribeAll); + } catch (UnsupportedOperationException e) { + logger.warn(e.getMessage(), e); } + eventsRequest.execute(callback); } + /** * Gets an instance of a message queue * @@ -341,9 +307,6 @@ public MessageQueue getWebsocketQueue() throws ARIException { * @throws ARIException when error */ public MessageQueue getWebsocketQueue(boolean subscribeAll) throws ARIException { - if (liveActionEvent != null) { - throw new ARIException("Websocket already present"); - } final MessageQueue q = new MessageQueue(); AriCallback callback = new AriCallback() { @Override @@ -356,13 +319,7 @@ public void onFailure(RestException e) { q.queueError("Err:" + e.getMessage()); } }; - EventsEventWebsocketGetRequest eventsRequest = events().eventWebsocket(appName); - try { - eventsRequest.setSubscribeAll(subscribeAll); - } catch (UnsupportedOperationException e) { - // ignore - } - eventsRequest.execute(callback); + eventsCallback(callback, subscribeAll); return q; } @@ -372,7 +329,7 @@ public void onFailure(RestException e) { * @return ActionApplications */ public ActionApplications applications() { - return (ActionApplications) setupAction(version.builder().actionApplications()); + return (ActionApplications) setupAction(getVersion().builder().actionApplications()); } /** @@ -381,16 +338,16 @@ public ActionApplications applications() { * @return ActionAsterisk */ public ActionAsterisk asterisk() { - return (ActionAsterisk) setupAction(version.builder().actionAsterisk()); + return (ActionAsterisk) setupAction(getVersion().builder().actionAsterisk()); } /** * Gets a ready to use Bridges Action. * - * @return a Bridges object. + * @return ActionBridges */ public ActionBridges bridges() { - return (ActionBridges) setupAction(version.builder().actionBridges()); + return (ActionBridges) setupAction(getVersion().builder().actionBridges()); } /** @@ -399,7 +356,7 @@ public ActionBridges bridges() { * @return ActionChannels */ public ActionChannels channels() { - return (ActionChannels) setupAction(version.builder().actionChannels()); + return (ActionChannels) setupAction(getVersion().builder().actionChannels()); } /** @@ -408,7 +365,7 @@ public ActionChannels channels() { * @return ActionDeviceStates */ public ActionDeviceStates deviceStates() { - return (ActionDeviceStates) setupAction(version.builder().actionDeviceStates()); + return (ActionDeviceStates) setupAction(getVersion().builder().actionDeviceStates()); } /** @@ -417,7 +374,7 @@ public ActionDeviceStates deviceStates() { * @return ActionEndpoints */ public ActionEndpoints endpoints() { - return (ActionEndpoints) setupAction(version.builder().actionEndpoints()); + return (ActionEndpoints) setupAction(getVersion().builder().actionEndpoints()); } /** @@ -426,7 +383,7 @@ public ActionEndpoints endpoints() { * @return ActionEvents */ public ActionEvents events() { - liveActionEvent = (ActionEvents) setupAction(version.builder().actionEvents()); + liveActionEvent = (ActionEvents) setupAction(getVersion().builder().actionEvents()); return liveActionEvent; } @@ -436,7 +393,7 @@ public ActionEvents events() { * @return ActionMailboxes */ public ActionMailboxes mailboxes() { - return (ActionMailboxes) setupAction(version.builder().actionMailboxes()); + return (ActionMailboxes) setupAction(getVersion().builder().actionMailboxes()); } /** @@ -445,7 +402,7 @@ public ActionMailboxes mailboxes() { * @return ActionPlaybacks */ public ActionPlaybacks playbacks() { - return (ActionPlaybacks) setupAction(version.builder().actionPlaybacks()); + return (ActionPlaybacks) setupAction(getVersion().builder().actionPlaybacks()); } /** @@ -454,7 +411,7 @@ public ActionPlaybacks playbacks() { * @return ActionRecordings */ public ActionRecordings recordings() { - return (ActionRecordings) setupAction(version.builder().actionRecordings()); + return (ActionRecordings) setupAction(getVersion().builder().actionRecordings()); } /** @@ -463,7 +420,7 @@ public ActionRecordings recordings() { * @return ActionSounds */ public ActionSounds sounds() { - return (ActionSounds) setupAction(version.builder().actionSounds()); + return (ActionSounds) setupAction(getVersion().builder().actionSounds()); } /** @@ -476,9 +433,12 @@ public ActionSounds sounds() { private Object setupAction(Object a) throws IllegalArgumentException { if (a instanceof BaseAriAction) { BaseAriAction action = (BaseAriAction) a; - action.setHttpClient(this.httpClient); - action.setWsClient(this.wsClient); - action.setLiveActionList(this.liveActionList); + if (httpClient == null || wsClient == null) { + throw new IllegalArgumentException("ARI possibly shutdown or not setup"); + } + action.setHttpClient(httpClient); + action.setWsClient(wsClient); + action.setLiveActionList(liveActionList); } else { throw new IllegalArgumentException("Object does not seem to be an Action implementation " + a.toString()); } @@ -494,7 +454,7 @@ public static void sleep(long ms) { try { Thread.sleep(ms); } catch (InterruptedException e) { - System.err.println("Interrupted: " + e.getMessage()); + logger.warn("Interrupted: " + e.getMessage(), e); //NOSONAR } } @@ -505,18 +465,16 @@ public static void sleep(long ms) { */ public static String getUID() { StringBuilder sb = new StringBuilder(20); - sb.append("a4j"); - + SecureRandom random = new SecureRandom(); for (int n = 0; n < 15; n++) { if ((n % 5) == 0) { sb.append("."); } - int pos = (int) (Math.random() * ALLOWED_IN_UID.length()); + int pos = (int) (random.nextDouble() * ALLOWED_IN_UID.length()); sb.append(ALLOWED_IN_UID.charAt(pos)); } return sb.toString(); - } /** @@ -549,6 +507,45 @@ public void unsubscribeAll() throws RestException { subscriptions.unsubscribeAll(this); } + /** + * Gets the package information an + * + * @return String + */ + public String getBuildVersion() { + String version = "x"; + try { + if (getClass().getPackage().getImplementationVersion() != null) { + version = getClass().getPackage().getImplementationVersion(); + } + } catch (Exception e) { + // oh well + } + InputStream stream = null; + try { + stream = getClass().getClassLoader().getResourceAsStream("build.properties"); + if (stream != null) { + Properties p = new Properties(); + p.load(stream); + if (p.containsKey("BUILD_NUMBER") && p.getProperty("BUILD_NUMBER") != null && + !"x".equalsIgnoreCase(p.getProperty("BUILD_NUMBER"))) { + version += " (Build: " + p.getProperty("BUILD_NUMBER") + ")"; + } + } + } catch (IOException e) { + // oh well + } finally { + if (stream != null) { + try { + stream.close(); + } catch (IOException e) { + // oh well + } + } + } + return version; + } + /** * This interface is used to go from an interface to its concrete implementation. */ diff --git a/src/main/java/ch/loway/oss/ari4java/AriFactory.java b/src/main/java/ch/loway/oss/ari4java/AriFactory.java index 9e8710b3..266de57f 100644 --- a/src/main/java/ch/loway/oss/ari4java/AriFactory.java +++ b/src/main/java/ch/loway/oss/ari4java/AriFactory.java @@ -1,7 +1,8 @@ package ch.loway.oss.ari4java; -import ch.loway.oss.ari4java.tools.RestException; import ch.loway.oss.ari4java.tools.http.NettyHttpClient; +import com.fasterxml.jackson.databind.JsonNode; +import com.fasterxml.jackson.databind.ObjectMapper; import java.net.URISyntaxException; @@ -12,6 +13,8 @@ */ public class AriFactory { + static NettyHttpClient nettyHttpClient = null; + /** * Your default HTTP connector through Netty (without app). * @@ -43,6 +46,8 @@ public static ARI nettyHttp(String uri, String login, String pass, AriVersion ve /** * This connects to an application. + * If the version is set as IM_FEELING_LUCKY the AriFactory will determine the version by 1st connecting + * to the server and requesting the resources.json to extract the version number. * * @param uri uri * @param login login @@ -54,26 +59,57 @@ public static ARI nettyHttp(String uri, String login, String pass, AriVersion ve * @throws URISyntaxException when error */ public static ARI nettyHttp(String uri, String login, String pass, AriVersion version, String app, boolean testConnection) throws URISyntaxException { - if (AriVersion.IM_FEELING_LUCKY.equals(version)) { - throw new UnsupportedOperationException("IM_FEELING_LUCKY not a valid option here"); + NettyHttpClient client; + if (nettyHttpClient != null) { + client = nettyHttpClient; + } else { + client = new NettyHttpClient(); + client.initialize(uri, login, pass); } ARI ari = new ARI(); ari.setAppName(app); - NettyHttpClient hc = new NettyHttpClient(); - ari.setHttpClient(hc); - ari.setWsClient(hc); - ari.setVersion(version); - hc.initialize(uri, login, pass); - // ping was added in version 5 (Asterisk 16) and back ported to some... I'm only including 1.10.2 (Asterisk 13) from the back port... - int majorVer = Integer.parseInt(version.version().split("\\.")[0]); - if (testConnection && (majorVer >= 5 || AriVersion.ARI_1_10_2.equals(version))) { - try { + ari.setHttpClient(client); + ari.setWsClient(client); + if (AriVersion.IM_FEELING_LUCKY.equals(version)) { + ari.setVersion(detectAriVersion(client)); + } else { + ari.setVersion(version); + } + try { + int majorVer = Integer.parseInt(ari.getVersion().version().split("\\.")[0]); + // ping was added in version 5 (Asterisk 16) and back ported to some... I'm only including 1.10.2 (Asterisk 13) from the back port... + if (testConnection && (majorVer >= 5 || AriVersion.ARI_1_10_2.equals(version))) { ari.asterisk().ping(); - } catch (RestException e) { - throw new RuntimeException("Failed to test connection: " + e.getMessage(), e); } + } catch (Exception e) { + throw new RuntimeException("Failed to test connection: " + e.getMessage(), e); } return ari; } + /** + * Connect and detect the current ARI version. + * If the ARI version is not supported, + * will raise an exception as we have no bindings for it. + * + * @param client an instance of the NettyHttpClient + * @return the version of your server + * @throws RuntimeException if the version is not supported + */ + protected static AriVersion detectAriVersion(NettyHttpClient client) { + try { + String response = client.httpActionSync("/api-docs/resources.json", "GET", null, null, null); + if (response != null && !response.isEmpty()) { + ObjectMapper mapper = new ObjectMapper(); + JsonNode jsonNode = mapper.reader().readTree(response); + if (jsonNode.has("apiVersion")) { + return AriVersion.fromVersionString(jsonNode.get("apiVersion").asText()); + } + } + throw new RuntimeException("Could find apiVersion"); + } catch (Exception e) { + throw new RuntimeException(e.getMessage(), e); + } + } + } diff --git a/src/main/java/ch/loway/oss/ari4java/AriSubscriber.java b/src/main/java/ch/loway/oss/ari4java/AriSubscriber.java index b5c92189..765359e8 100644 --- a/src/main/java/ch/loway/oss/ari4java/AriSubscriber.java +++ b/src/main/java/ch/loway/oss/ari4java/AriSubscriber.java @@ -48,7 +48,6 @@ public void unsubscribeAll(ARI ari) throws RestException { * @return a string representation, e.g. "channel:1234" */ public String toModelName(EventSource m) { - if (m instanceof Bridge) { Bridge b = (Bridge) m; return "bridge:" + b.getId(); @@ -64,7 +63,6 @@ public String toModelName(EventSource m) { } else { throw new IllegalArgumentException("Cannot subscribe model " + m.getClass().getName()); } - } } diff --git a/src/main/java/ch/loway/oss/ari4java/BUILD.java b/src/main/java/ch/loway/oss/ari4java/BUILD.java deleted file mode 100644 index 5b554dd7..00000000 --- a/src/main/java/ch/loway/oss/ari4java/BUILD.java +++ /dev/null @@ -1,39 +0,0 @@ - -package ch.loway.oss.ari4java; - -import java.io.IOException; -import java.io.InputStream; -import java.util.Properties; - -/** - * Do not hand-edit this file. - * The values below will be set by the Gradle build script. - * - * - * @author lenz - */ -public class BUILD { - - static { - String number = "x"; - InputStream stream = BUILD.class.getResourceAsStream("build.properties"); - try { - Properties p = new Properties(); - p.load(stream); - number = p.getProperty("BUILD_NUMBER"); - } catch (IOException e) { - // oh well - } finally { - try { - stream.close(); - } catch (IOException e) { - // oh well - } - } - BUILD_N = number; - } - - public static final String VERSION = BUILD.class.getPackage().getImplementationVersion(); - public static final String BUILD_N; -} - diff --git a/src/main/java/ch/loway/oss/ari4java/tools/HttpClient.java b/src/main/java/ch/loway/oss/ari4java/tools/HttpClient.java index d051a722..44401a8a 100644 --- a/src/main/java/ch/loway/oss/ari4java/tools/HttpClient.java +++ b/src/main/java/ch/loway/oss/ari4java/tools/HttpClient.java @@ -15,4 +15,6 @@ public interface HttpClient { void httpActionAsync(String uri, String method, List parametersQuery, String body, List errors, HttpResponseHandler responseHandler, boolean binary) throws RestException; + void destroy(); + } diff --git a/src/main/java/ch/loway/oss/ari4java/tools/HttpParam.java b/src/main/java/ch/loway/oss/ari4java/tools/HttpParam.java index bbc300e6..fe822529 100644 --- a/src/main/java/ch/loway/oss/ari4java/tools/HttpParam.java +++ b/src/main/java/ch/loway/oss/ari4java/tools/HttpParam.java @@ -10,13 +10,13 @@ * @author lenz */ public class HttpParam { - public String name = ""; - public String value = ""; + private String name; + private String value; public static HttpParam build(String n, String v) { HttpParam p = new HttpParam(); - p.name = n; - p.value = v; + p.setName(n); + p.setValue(v); return p; } @@ -49,6 +49,21 @@ public static HttpParam build(String n, Boolean v) { return build(n, v ? "true" : "false"); } + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public String getValue() { + return value; + } + + public void setValue(String value) { + this.value = value; + } } // $Log$ diff --git a/src/main/java/ch/loway/oss/ari4java/tools/HttpResponse.java b/src/main/java/ch/loway/oss/ari4java/tools/HttpResponse.java index 1692674a..41a5b1a1 100644 --- a/src/main/java/ch/loway/oss/ari4java/tools/HttpResponse.java +++ b/src/main/java/ch/loway/oss/ari4java/tools/HttpResponse.java @@ -6,15 +6,30 @@ * @author lenz */ public class HttpResponse { - public int code = 0; - public String description = ""; + private int code = 0; + private String description = ""; public static HttpResponse build(int code, String descr) { HttpResponse r = new HttpResponse(); - r.code = code; - r.description = descr; + r.setCode(code); + r.setDescription(descr); return r; } + public int getCode() { + return code; + } + + public void setCode(int code) { + this.code = code; + } + + public String getDescription() { + return description; + } + + public void setDescription(String description) { + this.description = description; + } } diff --git a/src/main/java/ch/loway/oss/ari4java/tools/MessageQueue.java b/src/main/java/ch/loway/oss/ari4java/tools/MessageQueue.java index 56207eb5..6e88fe16 100644 --- a/src/main/java/ch/loway/oss/ari4java/tools/MessageQueue.java +++ b/src/main/java/ch/loway/oss/ari4java/tools/MessageQueue.java @@ -14,7 +14,7 @@ */ public class MessageQueue { - public List lEvents = new LinkedList(); + private final List lEvents = new LinkedList(); /** * Adds a message to the queue. diff --git a/src/main/java/ch/loway/oss/ari4java/tools/WsClient.java b/src/main/java/ch/loway/oss/ari4java/tools/WsClient.java index cb2296fe..f4c39acb 100644 --- a/src/main/java/ch/loway/oss/ari4java/tools/WsClient.java +++ b/src/main/java/ch/loway/oss/ari4java/tools/WsClient.java @@ -1,21 +1,22 @@ package ch.loway.oss.ari4java.tools; import java.util.List; -import ch.loway.oss.ari4java.tools.HttpParam; /** * Interface to pluggable WebSocket client implementation - * - * @author mwalton * + * @author mwalton */ public interface WsClient { - public interface WsClientConnection { - void disconnect() throws RestException; - } - - WsClientConnection connect(HttpResponseHandler callback, - String url, - List lParamQuery) throws RestException; - -} \ No newline at end of file + + public interface WsClientConnection { + void disconnect() throws RestException; + } + + WsClientConnection connect(HttpResponseHandler callback, + String url, + List lParamQuery) throws RestException; + + void destroy(); + +} diff --git a/src/main/java/ch/loway/oss/ari4java/tools/http/NettyHttpClient.java b/src/main/java/ch/loway/oss/ari4java/tools/http/NettyHttpClient.java index ed39a1f3..8e6a6cf7 100644 --- a/src/main/java/ch/loway/oss/ari4java/tools/http/NettyHttpClient.java +++ b/src/main/java/ch/loway/oss/ari4java/tools/http/NettyHttpClient.java @@ -17,8 +17,6 @@ import io.netty.handler.ssl.SslContextBuilder; import io.netty.handler.ssl.util.InsecureTrustManagerFactory; import io.netty.handler.timeout.ReadTimeoutHandler; -import io.netty.util.concurrent.Future; -import io.netty.util.concurrent.GenericFutureListener; import io.netty.util.concurrent.ScheduledFuture; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -48,11 +46,11 @@ public class NettyHttpClient implements HttpClient, WsClient, WsClientAutoReconn private Logger logger = LoggerFactory.getLogger(NettyHttpClient.class); - private Bootstrap bootStrap; - private URI baseUri; + protected Bootstrap bootStrap; + protected URI baseUri; private EventLoopGroup group; private EventLoopGroup shutDownGroup; - private String auth; + protected String auth; private HttpResponseHandler wsCallback; private String wsEventsUrl; @@ -61,13 +59,16 @@ public class NettyHttpClient implements HttpClient, WsClient, WsClientAutoReconn private int reconnectCount = -1; private ChannelFuture wsChannelFuture; private ScheduledFuture wsPingTimer = null; - private NettyWSClientHandler wsHandler; - private ChannelFutureListener wsFuture; + private ScheduledFuture wsConnectionTimeout = null; + protected NettyWSClientHandler wsHandler; + protected ChannelFutureListener wsFuture; private static SslContext sslContext; private int pongFailureCount = 0; private long lastPong = 0; private static boolean autoReconnect = true; + protected int pingPeriod = 5; + protected TimeUnit pingTimeUnit = TimeUnit.MINUTES; public NettyHttpClient() { group = new NioEventLoopGroup(); @@ -90,27 +91,29 @@ public void initialize(String baseUrl, String username, String password) throws } protected void bootstrap() { - // Bootstrap is the factory for HTTP connections - logger.debug("Bootstrap with\n" + - " connection timeout: {},\n" + - " read timeout: {},\n" + - " aggregator max-length: {}", - CONNECTION_TIMEOUT_SEC, - READ_TIMEOUT_SEC, - MAX_HTTP_REQUEST); - bootStrap = new Bootstrap(); - bootstrapOptions(bootStrap); - bootStrap.handler(new ChannelInitializer() { - @Override - public void initChannel(SocketChannel ch) throws Exception { - ChannelPipeline pipeline = ch.pipeline(); - addSSLIfRequired(pipeline); - pipeline.addLast("read-timeout", new ReadTimeoutHandler(READ_TIMEOUT_SEC)); - pipeline.addLast("http-codec", new HttpClientCodec()); - pipeline.addLast("http-aggregator", new HttpObjectAggregator(MAX_HTTP_REQUEST)); - pipeline.addLast("http-handler", new NettyHttpClientHandler()); - } - }); + if (bootStrap == null) { + // Bootstrap is the factory for HTTP connections + logger.debug("Bootstrap with\n" + + " connection timeout: {},\n" + + " read timeout: {},\n" + + " aggregator max-length: {}", + CONNECTION_TIMEOUT_SEC, + READ_TIMEOUT_SEC, + MAX_HTTP_REQUEST); + bootStrap = new Bootstrap(); + bootstrapOptions(bootStrap); + bootStrap.handler(new ChannelInitializer() { + @Override + public void initChannel(SocketChannel ch) throws Exception { + ChannelPipeline pipeline = ch.pipeline(); + addSSLIfRequired(pipeline); + pipeline.addLast("read-timeout", new ReadTimeoutHandler(READ_TIMEOUT_SEC)); + pipeline.addLast("http-codec", new HttpClientCodec()); + pipeline.addLast("http-aggregator", new HttpObjectAggregator(MAX_HTTP_REQUEST)); + pipeline.addLast("http-handler", new NettyHttpClientHandler()); + } + }); + } } private void bootstrapOptions(Bootstrap bootStrap) { @@ -160,6 +163,11 @@ public void run() { wsPingTimer.cancel(true); wsPingTimer = null; } + if (wsClientConnection != null) { + logger.debug("cancel wsClientConnection..."); + wsConnectionTimeout.cancel(true); + wsClientConnection = null; + } if (wsClientConnection != null) { try { logger.debug("there is a web socket, disconnect..."); @@ -170,20 +178,16 @@ public void run() { } } if (group != null && !group.isShuttingDown()) { - logger.debug("shutdownGracefully"); - group.shutdownGracefully(5, 10, TimeUnit.SECONDS).addListener(new GenericFutureListener() { - @Override - public void operationComplete(Future future) throws Exception { - logger.debug("group shutdown complete"); - shutDownGroup.shutdownGracefully(5, 10, TimeUnit.SECONDS); - shutDownGroup = null; - } - }).syncUninterruptibly(); + logger.debug("group shutdownGracefully"); + group.shutdownGracefully(0, 1, TimeUnit.SECONDS).syncUninterruptibly(); group = null; - logger.debug("shutdown complete"); + logger.debug("group shutdown complete"); } } }, 250L, TimeUnit.MILLISECONDS); + shutDownGroup.shutdownGracefully(0, 5, TimeUnit.SECONDS).syncUninterruptibly(); + shutDownGroup = null; + logger.debug("... destroyed"); } protected String buildURL(String path, List parametersQuery, boolean withAddress) { @@ -198,16 +202,16 @@ protected String buildURL(String path, List parametersQuery, boolean boolean first = true; if (parametersQuery != null) { for (HttpParam hp : parametersQuery) { - if (hp.value != null && !hp.value.isEmpty()) { + if (hp.getValue() != null && !hp.getValue().isEmpty()) { if (first) { uriBuilder.append("?"); first = false; } else { uriBuilder.append("&"); } - uriBuilder.append(hp.name); + uriBuilder.append(hp.getName()); uriBuilder.append("="); - uriBuilder.append(ARIEncoder.encodeUrl(hp.value)); + uriBuilder.append(ARIEncoder.encodeUrl(hp.getValue())); } } } @@ -215,22 +219,17 @@ protected String buildURL(String path, List parametersQuery, boolean } // Factory for WS handshakes - private WebSocketClientHandshaker getWsHandshake(String path, List parametersQuery) { + protected WebSocketClientHandshaker getWsHandshake(String path, List parametersQuery) throws URISyntaxException { String url = buildURL(path, parametersQuery, true); - try { - if (url.regionMatches(true, 0, "http", 0, 4)) { - // http(s):// -> ws(s):// - url = "ws" + url.substring(4); - } - URI uri = new URI(url); - HttpHeaders headers = new DefaultHttpHeaders(); - headers.set(HttpHeaderNames.AUTHORIZATION, this.auth); - return WebSocketClientHandshakerFactory.newHandshaker( - uri, WebSocketVersion.V13, null, false, headers); - } catch (URISyntaxException e) { - logger.warn("WSHandshake error, returning null", e); - return null; + if (url.regionMatches(true, 0, "http", 0, 4)) { + // http(s):// -> ws(s):// + url = "ws" + url.substring(4); } + URI uri = new URI(url); + HttpHeaders headers = new DefaultHttpHeaders(); + headers.set(HttpHeaderNames.AUTHORIZATION, this.auth); + return WebSocketClientHandshakerFactory.newHandshaker( + uri, WebSocketVersion.V13, null, false, headers); } // Build the HTTP request based on the given parameters @@ -260,8 +259,8 @@ private RestException makeException(HttpResponseStatus status, String response, if (errors != null) { for (HttpResponse hr : errors) { - if (hr.code == status.code()) { - return new RestException(hr.description, response, status.code()); + if (hr.getCode() == status.code()) { + return new RestException(hr.getDescription(), response, status.code()); } } } @@ -378,16 +377,21 @@ public void operationComplete(ChannelFuture future) throws Exception { // WsClient implementation - connect to WebSocket server @Override - public WsClientConnection connect(final HttpResponseHandler callback, final String url, final List lParamQuery) { - - WebSocketClientHandshaker handshake = getWsHandshake(url, lParamQuery); - logger.debug("WS Connect uri: {}", handshake.uri().toString()); - this.wsHandler = new NettyWSClientHandler(handshake, callback, this); - this.wsCallback = callback; - this.wsEventsUrl = url; - this.wsEventsParamQuery = lParamQuery; + public WsClientConnection connect(final HttpResponseHandler callback, final String url, final List lParamQuery) throws RestException { + try { + WebSocketClientHandshaker handshake = getWsHandshake(url, lParamQuery); + logger.debug("WS Connect uri: {}", handshake.uri().toString()); + this.wsEventsUrl = url; + this.wsEventsParamQuery = lParamQuery; + this.wsHandler = new NettyWSClientHandler(handshake, callback, this); + this.wsCallback = callback; + return connect(new Bootstrap(), callback); + } catch (Exception e) { + throw new RestException("WS Connection Error - " + e.getMessage(), e); + } + } - Bootstrap wsBootStrap = new Bootstrap(); + protected WsClientConnection connect(Bootstrap wsBootStrap, final HttpResponseHandler callback) { bootstrapOptions(wsBootStrap); wsBootStrap.handler(new ChannelInitializer() { @Override @@ -399,8 +403,7 @@ public void initChannel(SocketChannel ch) throws Exception { pipeline.addLast("ws-handler", wsHandler); } }); - - final ScheduledFuture connectionTimeout = group.schedule(new Runnable() { + wsConnectionTimeout = group.schedule(new Runnable() { @Override public void run() { reconnectWs(new RestException("WS Connect Timeout")); @@ -417,8 +420,11 @@ public void operationComplete(ChannelFuture future) throws Exception { public void operationComplete(ChannelFuture future) throws Exception { if (future.isSuccess()) { logger.debug("WS connected..."); - // cancel the connection timeout, start a ping and reset reconnect counter - connectionTimeout.cancel(true); + if (wsClientConnection != null) { + // cancel the connection timeout, start a ping and reset reconnect counter + wsConnectionTimeout.cancel(true); + wsConnectionTimeout = null; + } startPing(); reconnectCount = 0; callback.onChReadyToWrite(); @@ -467,7 +473,7 @@ public void run() { Thread.sleep(1000); } catch (InterruptedException e) { // probably from the reconnect, so stop running... - return; + return; //NOSONAR } if ((System.currentTimeMillis() - lastPong) < 10000) { logger.debug("Pong at {}", lastPong); @@ -488,7 +494,7 @@ public void run() { } } } - }, 1, 5, TimeUnit.MINUTES); + }, 1, pingPeriod, pingTimeUnit); } } diff --git a/src/test/java/ch/loway/oss/ari4java/ARITest.java b/src/test/java/ch/loway/oss/ari4java/ARITest.java index 19689b14..05c87c8b 100644 --- a/src/test/java/ch/loway/oss/ari4java/ARITest.java +++ b/src/test/java/ch/loway/oss/ari4java/ARITest.java @@ -2,48 +2,87 @@ import ch.loway.oss.ari4java.generated.actions.ActionAsterisk; import ch.loway.oss.ari4java.generated.actions.ActionBridges; +import ch.loway.oss.ari4java.generated.actions.ActionEvents; import ch.loway.oss.ari4java.generated.ari_0_0_1.actions.ActionAsterisk_impl_ari_0_0_1; import ch.loway.oss.ari4java.generated.ari_0_0_1.actions.ActionBridges_impl_ari_0_0_1; -import ch.loway.oss.ari4java.generated.ari_1_0_0.actions.ActionAsterisk_impl_ari_1_0_0; -import ch.loway.oss.ari4java.tools.ARIException; -import ch.loway.oss.ari4java.tools.HttpClient; +import ch.loway.oss.ari4java.generated.ari_0_0_1.models.Bridge_impl_ari_0_0_1; +import ch.loway.oss.ari4java.generated.ari_1_0_0.actions.*; +import ch.loway.oss.ari4java.generated.models.Bridge; +import ch.loway.oss.ari4java.generated.models.Mailbox; +import ch.loway.oss.ari4java.tools.*; +import ch.loway.oss.ari4java.tools.http.NettyHttpClient; +import org.junit.AfterClass; +import org.junit.BeforeClass; import org.junit.Test; -import org.mockito.Mockito; + +import java.util.concurrent.atomic.AtomicBoolean; import static org.junit.Assert.*; +import static org.mockito.Mockito.*; /** * @author lenz */ public class ARITest { + static NettyHttpClient client; + + @BeforeClass + public static void start() { + client = mock(NettyHttpClient.class); + AriFactory.nettyHttpClient = client; + } + @Test public void testImplementationFactory() throws Exception { ARI ari = new ARI(); + ari.setHttpClient(mock(HttpClient.class)); + ari.setWsClient(mock(WsClient.class)); + try { + ari.getActionImpl(ActionAsterisk.class); + fail("Expecting an exception"); + } catch (Exception e) { + assertEquals("AriVersion not set", e.getMessage()); + } ari.setVersion(AriVersion.ARI_0_0_1); - assertEquals(ActionBridges_impl_ari_0_0_1.class, ari.getModelImpl(ActionBridges.class).getClass()); + assertEquals(AriVersion.ARI_0_0_1, ari.getVersion()); + assertEquals(ActionBridges_impl_ari_0_0_1.class, ari.getActionImpl(ActionBridges.class).getClass()); + assertEquals(Bridge_impl_ari_0_0_1.class, ari.getModelImpl(Bridge.class).getClass()); boolean exception = false; try { - ari.getModelImpl(String.class); + ari.getModelImpl(Mailbox.class); } catch (ARIException e) { exception = e.getMessage().contains("No concrete implementation"); } assertTrue("Expected 'No concrete implementation' exception for getModelImpl(String.class)", exception); exception = false; try { - ari.getActionImpl(String.class); + ari.getModelImpl(String.class); } catch (ARIException e) { exception = e.getMessage().contains("Invalid Class"); } assertTrue("Expected 'Invalid Class' exception for getModelImpl(String.class)", exception); - assertNotNull("Expected Action", ari.getActionImpl(ActionAsterisk.class)); + assertNotNull("Expected Action", ari.getActionImpl(ActionEvents.class)); + try { + ari.getActionImpl(String.class); + fail("Expected exception"); + } catch (Exception e) { + assertEquals("Invalid Class for action class java.lang.String", e.getMessage()); + } } @Test - public void testBuildAction() { + public void testBuildAction() throws Exception { ARI ari = new ARI(); + try { + ari.asterisk(); + fail("Expecting an exception"); + } catch (Exception e) { + assertEquals("AriVersion not set", e.getMessage()); + } ari.setVersion(AriVersion.ARI_0_0_1); - ari.setHttpClient(Mockito.mock(HttpClient.class)); + ari.setHttpClient(mock(HttpClient.class)); + ari.setWsClient(mock(WsClient.class)); ActionAsterisk asterisk = ari.asterisk(); assertEquals(ActionAsterisk_impl_ari_0_0_1.class.toString(), asterisk.getClass().toString()); @@ -52,6 +91,23 @@ public void testBuildAction() { asterisk = ari.asterisk(); assertEquals(ActionAsterisk_impl_ari_1_0_0.class.toString(), asterisk.getClass().toString()); assertNotNull("Expecting HttpClient to be set", ((ActionAsterisk_impl_ari_1_0_0)asterisk).getHttpClient()); + assertNotNull("Expecting WsClient to be set", ((ActionAsterisk_impl_ari_1_0_0)asterisk).getWsClient()); + + asterisk = ari.getActionImpl(ActionAsterisk.class); + assertEquals(ActionAsterisk_impl_ari_1_0_0.class.toString(), asterisk.getClass().toString()); + assertNotNull("Expecting HttpClient to be set", ((ActionAsterisk_impl_ari_1_0_0)asterisk).getHttpClient()); + assertNotNull("Expecting WsClient to be set", ((ActionAsterisk_impl_ari_1_0_0)asterisk).getWsClient()); + + assertEquals(ActionApplications_impl_ari_1_0_0.class.toString(), ari.applications().getClass().toString()); + assertEquals(ActionBridges_impl_ari_1_0_0.class.toString(), ari.bridges().getClass().toString()); + assertEquals(ActionChannels_impl_ari_1_0_0.class.toString(), ari.channels().getClass().toString()); + assertEquals(ActionDeviceStates_impl_ari_1_0_0.class.toString(), ari.deviceStates().getClass().toString()); + assertEquals(ActionEndpoints_impl_ari_1_0_0.class.toString(), ari.endpoints().getClass().toString()); + assertEquals(ActionEvents_impl_ari_1_0_0.class.toString(), ari.events().getClass().toString()); + assertEquals(ActionMailboxes_impl_ari_1_0_0.class.toString(), ari.mailboxes().getClass().toString()); + assertEquals(ActionPlaybacks_impl_ari_1_0_0.class.toString(), ari.playbacks().getClass().toString()); + assertEquals(ActionRecordings_impl_ari_1_0_0.class.toString(), ari.recordings().getClass().toString()); + assertEquals(ActionSounds_impl_ari_1_0_0.class.toString(), ari.sounds().getClass().toString()); } @Test @@ -60,4 +116,56 @@ public void testCreateUid() { assertTrue("UID created", v.length() > 0); } + @Test + public void testBuildVersion() { + String v = new ARI().getBuildVersion(); + assertNotNull("Build Version cannot be null", v); + } + + @Test + public void testBuild() throws Exception { + when(client.httpActionSync(eq("/applications/test"), eq("GET"), any(), any(), any())).thenReturn( + "{\"channel_ids\": [], \"bridge_ids\": [], \"endpoint_ids\": [], \"device_names\": []}" + ); + ARI ari = ARI.build("http://local:8088/ari/", "test", "test", "test", AriVersion.ARI_0_0_1); + assertEquals("test", ari.getAppName()); + assertEquals(AriVersion.ARI_0_0_1, ari.getVersion()); + MessageQueue queue = ari.getWebsocketQueue(); + assertEquals(0, queue.size()); + try { + ari.getWebsocketQueue(); + fail("Expected an exception"); + } catch (Exception e) { + assertEquals("Websocket already present", e.getMessage()); + } + ari.cleanup(); + ari.setHttpClient(client); + ari.setWsClient(mock(WsClient.class)); // must be a different ref so we can get the code coverage... + ari.cleanup(); + } + + @Test + public void testCloseAction() throws Exception { + ARI ari = new ARI(); + try { + ari.closeAction(new Object()); + fail("Expecting exception"); + } catch (ARIException e) { + assertTrue("Expecting an implementation error", e.getMessage().contains("is not an Action implementation")); + } + AtomicBoolean disconnected = new AtomicBoolean(false); + ari.closeAction(new BaseAriAction() { + @Override + public synchronized void disconnectWs() throws RestException { + disconnected.set(true); + } + }); + assertTrue("Expected disconnectWs to be called", disconnected.get()); + } + + @AfterClass + public static void end() { + AriFactory.nettyHttpClient = null; + } + } diff --git a/src/test/java/ch/loway/oss/ari4java/AriFactoryTest.java b/src/test/java/ch/loway/oss/ari4java/AriFactoryTest.java new file mode 100644 index 00000000..4ae246d4 --- /dev/null +++ b/src/test/java/ch/loway/oss/ari4java/AriFactoryTest.java @@ -0,0 +1,50 @@ +package ch.loway.oss.ari4java; + +import ch.loway.oss.ari4java.tools.http.NettyHttpClient; +import org.junit.AfterClass; +import org.junit.Test; + +import static org.junit.Assert.*; +import static org.mockito.ArgumentMatchers.eq; +import static org.mockito.Mockito.*; + +public class AriFactoryTest { + + static NettyHttpClient httpClient = mock(NettyHttpClient.class); + + private static void setHttpClient() { + AriFactory.nettyHttpClient = httpClient; + } + + @Test + public void testDetectAriVersion() throws Exception { + try { + AriFactory.nettyHttp("test://local:8088/", "", "", AriVersion.IM_FEELING_LUCKY); + fail("Expected an exception"); + } catch (Exception e) { + assertEquals("Unsupported protocol: test", e.getMessage()); + } + setHttpClient(); + when(httpClient.httpActionSync( + eq("/api-docs/resources.json"), eq("GET"), + eq(null), eq(null), eq(null))).thenReturn("{}"); + try { + AriFactory.nettyHttp("http://localhost", "", "", AriVersion.IM_FEELING_LUCKY); + fail("Expected exception"); + } catch (Exception e) { + assertEquals("Could find apiVersion", e.getMessage()); + } + reset(httpClient); + when(httpClient.httpActionSync( + eq("/api-docs/resources.json"), eq("GET"), + eq(null), eq(null), eq(null))).thenReturn("{\"apiVersion\": \"0.0.1\"}"); + AriVersion ver = AriFactory.nettyHttp("http://localhost", "", "", AriVersion.IM_FEELING_LUCKY).getVersion(); + assertEquals(AriVersion.ARI_0_0_1, ver); + } + + @AfterClass + public static void end() { + AriFactory.nettyHttpClient = null; + } + +} diff --git a/src/test/java/ch/loway/oss/ari4java/AriVersionTest.java b/src/test/java/ch/loway/oss/ari4java/AriVersionTest.java new file mode 100644 index 00000000..13506391 --- /dev/null +++ b/src/test/java/ch/loway/oss/ari4java/AriVersionTest.java @@ -0,0 +1,36 @@ +package ch.loway.oss.ari4java; + +import ch.loway.oss.ari4java.generated.ari_0_0_1.AriBuilder_impl_ari_0_0_1; +import org.junit.Test; + +import static org.junit.Assert.*; + +public class AriVersionTest { + + @Test + public void builder() { + try { + AriVersion.IM_FEELING_LUCKY.builder(); + fail("Expecting an exception"); + } catch (Exception e) { + assertEquals("This version has no builder. Library error for IM_FEELING_LUCKY", e.getMessage()); + } + assertEquals(AriBuilder_impl_ari_0_0_1.class.toString(), AriVersion.ARI_0_0_1.builder().getClass().toString()); + } + + @Test + public void version() { + assertEquals("0.0.1", AriVersion.ARI_0_0_1.version()); + } + + @Test + public void fromVersionString() throws Exception { + assertEquals(AriVersion.ARI_0_0_1, AriVersion.fromVersionString("0.0.1")); + try { + AriVersion.fromVersionString("0"); + fail("Expecting an exception"); + } catch (Exception e) { + assertEquals("Unknown ARI Version object for 0", e.getMessage()); + } + } +} diff --git a/src/test/java/ch/loway/oss/ari4java/tools/http/NettyHttpClientTest.java b/src/test/java/ch/loway/oss/ari4java/tools/http/NettyHttpClientTest.java index 3d901913..a11cdb02 100644 --- a/src/test/java/ch/loway/oss/ari4java/tools/http/NettyHttpClientTest.java +++ b/src/test/java/ch/loway/oss/ari4java/tools/http/NettyHttpClientTest.java @@ -3,26 +3,27 @@ import ch.loway.oss.ari4java.generated.actions.requests.AsteriskPingGetRequest; import ch.loway.oss.ari4java.generated.ari_6_0_0.actions.requests.*; import ch.loway.oss.ari4java.generated.models.AsteriskPing; -import ch.loway.oss.ari4java.tools.ARIEncoder; -import ch.loway.oss.ari4java.tools.AriCallback; -import ch.loway.oss.ari4java.tools.HttpParam; -import ch.loway.oss.ari4java.tools.RestException; +import ch.loway.oss.ari4java.tools.*; +import io.netty.bootstrap.Bootstrap; import io.netty.buffer.ByteBuf; import io.netty.buffer.Unpooled; -import io.netty.channel.Channel; -import io.netty.channel.ChannelFuture; -import io.netty.channel.ChannelPipeline; -import io.netty.channel.DefaultChannelPromise; +import io.netty.channel.*; import io.netty.channel.embedded.EmbeddedChannel; +import io.netty.channel.socket.SocketChannel; import io.netty.handler.codec.http.*; -import org.junit.Before; +import io.netty.handler.codec.http.websocketx.WebSocketVersion; +import io.netty.util.concurrent.EventExecutor; +import org.junit.After; import org.junit.Test; +import org.mockito.ArgumentCaptor; +import java.net.URI; import java.net.URISyntaxException; import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; +import java.util.concurrent.TimeUnit; import static org.junit.Assert.*; import static org.mockito.Mockito.*; @@ -32,8 +33,7 @@ public class NettyHttpClientTest { private NettyHttpClient client; private ChannelFuture cf; - @Before - public void setUp() throws URISyntaxException { + private void initTestClient() throws URISyntaxException { client = new NettyHttpClient() { protected void bootstrap() { // for testing skip the bootstrapping @@ -46,18 +46,28 @@ protected ChannelFuture httpConnect() { client.initialize("http://localhost:8088/", "user", "p@ss"); } + @After + public void tearDown() { + if (client != null) { + client.destroy(); + } + } + @Test(expected = URISyntaxException.class) public void testInitializeBadURL() throws URISyntaxException { + initTestClient(); client.initialize(":", "", ""); } @Test(expected = IllegalArgumentException.class) public void testInitializeInvalidURL() throws URISyntaxException { + initTestClient(); client.initialize("ws://localhost:8088/", "", ""); } @Test - public void testBuildURL() { + public void testBuildURL() throws Exception { + initTestClient(); List queryParams = new ArrayList<>(); queryParams.add(HttpParam.build("a", "b/c")); queryParams.add(HttpParam.build("d", "e")); @@ -65,7 +75,81 @@ public void testBuildURL() { assertEquals("/ari/channels?a=b%2Fc&d=e", url); } - private void setupSync(NettyHttpClientHandler h) throws Exception { + @Test + public void testInitialize() throws Exception { + NettyHttpClient client = new NettyHttpClient(); + client.initialize("http://localhost:8088/", "user", "p@ss"); + client.destroy(); + } + + @Test + public void testHttpConnect() { + Bootstrap bootstrap = mock(Bootstrap.class); + NettyHttpClient client = new NettyHttpClient() { + { + bootstrap(); + } + @Override + protected void bootstrap() { + bootStrap = bootstrap; + try { + baseUri = new URI("http://localhost:8088/"); + } catch (URISyntaxException e) { + // oh well + } + } + }; + when(bootstrap.connect(eq("localhost"), eq(8088))).thenReturn(mock(ChannelFuture.class)); + ChannelFuture future = client.httpConnect(); + assertNotNull("Expected ChannelFuture", future); + verify(bootstrap, times(1)).connect(anyString(), anyInt()); + client.destroy(); + } + + @Test + public void testWsConnect() throws Exception { + Bootstrap bootstrap = mock(Bootstrap.class); + NettyWSClientHandler testHandler = mock(NettyWSClientHandler.class); + EmbeddedChannel channel = createTestChannel("ws-handler", testHandler); + + FullHttpRequest req = new DefaultFullHttpRequest(HttpVersion.HTTP_1_1, HttpMethod.GET, "/events"); + HttpHeaders headers = req.headers(); + headers.set(HttpHeaderNames.UPGRADE, HttpHeaderValues.WEBSOCKET); + headers.set(HttpHeaderNames.SEC_WEBSOCKET_KEY, "dGhlIHNhbXBsZSBub25jZQ=="); + headers.set(HttpHeaderNames.SEC_WEBSOCKET_VERSION, WebSocketVersion.V13); + cf = channel.closeFuture(); + when(bootstrap.connect(eq("localhost"), eq(443))).thenReturn(cf); + ((DefaultChannelPromise) cf).setSuccess(null); + + class TestNettyHttpClient extends NettyHttpClient { + @Override + public WsClientConnection connect(final HttpResponseHandler callback, final String url, + final List lParamQuery) throws RestException { + try { + baseUri = new URI("https://localhost/"); + this.auth = "123"; + getWsHandshake(url, lParamQuery); // here so the code is run for code coverage + } catch (URISyntaxException e) { + // oh well + } + pingPeriod = 1; + pingTimeUnit = TimeUnit.SECONDS; + return connect(bootstrap, callback); + } + public void testWsFutureOperationComplete(ChannelFuture future) throws Exception { + this.wsHandler = testHandler; + wsFuture.operationComplete(future); + } + } + TestNettyHttpClient client = new TestNettyHttpClient(); + WsClient.WsClientConnection connection = client.connect(mock(HttpResponseHandler.class), "/events", null); + assertNotNull("Expected WsClientConnection", connection); + channel.writeInbound(req); + Thread.sleep(10000); + client.destroy(); + } + + private void setupSync(NettyHttpClientHandler h) { cf = mock(ChannelFuture.class); when(cf.addListener(any())).thenReturn(cf); when(cf.syncUninterruptibly()).thenReturn(cf); @@ -79,6 +163,7 @@ private void setupSync(NettyHttpClientHandler h) throws Exception { @Test public void testHttpActionSync() throws Exception { + initTestClient(); NettyHttpClientHandler h = new NettyHttpClientHandler(); setupSync(h); h.responseStatus = HttpResponseStatus.OK; @@ -88,12 +173,17 @@ public void testHttpActionSync() throws Exception { } private EmbeddedChannel createTestChannel() { + EmbeddedChannel channel = createTestChannel("http-handler", new NettyHttpClientHandler()); + cf = channel.closeFuture(); + ((DefaultChannelPromise) cf).setSuccess(null); + return channel; + } + + private EmbeddedChannel createTestChannel(String name, ChannelHandler handler) { EmbeddedChannel channel = new EmbeddedChannel(); channel.pipeline().addLast("http-codec", new HttpClientCodec()); channel.pipeline().addLast("http-aggregator", new HttpObjectAggregator(NettyHttpClient.MAX_HTTP_REQUEST)); - channel.pipeline().addLast("http-handler", new NettyHttpClientHandler()); - cf = channel.closeFuture(); - ((DefaultChannelPromise) cf).setSuccess(null); + channel.pipeline().addLast(name, handler); return channel; } @@ -118,6 +208,7 @@ private void pingValidate(EmbeddedChannel channel, AsteriskPing res) { @Test public void testHttpActionSyncPing() throws Exception { + initTestClient(); EmbeddedChannel channel = createTestChannel(); AsteriskPingGetRequest req = pingSetup(channel); AsteriskPing res = req.execute(); @@ -125,7 +216,8 @@ public void testHttpActionSyncPing() throws Exception { } @Test - public void testHttpActionAsyncPing() throws InterruptedException { + public void testHttpActionAsyncPing() throws Exception { + initTestClient(); EmbeddedChannel channel = createTestChannel(); AsteriskPingGetRequest req = pingSetup(channel); final boolean[] callback = {false}; @@ -146,7 +238,8 @@ public void onFailure(RestException e) { } @Test - public void testHttpActionException() { + public void testHttpActionException() throws Exception { + initTestClient(); EmbeddedChannel channel = createTestChannel(); ApplicationsGetRequest_impl_ari_6_0_0 req = new ApplicationsGetRequest_impl_ari_6_0_0("test"); req.setHttpClient(client); @@ -175,7 +268,8 @@ public void testHttpActionException() { } @Test - public void testBodyFieldSerialisation() throws RestException { + public void testBodyFieldSerialisation() throws Exception { + initTestClient(); EmbeddedChannel channel = createTestChannel(); channel.writeInbound(new DefaultFullHttpResponse( HttpVersion.HTTP_1_1, HttpResponseStatus.OK, Unpooled.copiedBuffer("[]", ARIEncoder.ENCODING))); @@ -187,7 +281,8 @@ public void testBodyFieldSerialisation() throws RestException { } @Test - public void testBodyVariableSerialisation() throws RestException { + public void testBodyVariableSerialisation() throws Exception { + initTestClient(); EmbeddedChannel channel = createTestChannel(); channel.writeInbound(new DefaultFullHttpResponse( HttpVersion.HTTP_1_1, HttpResponseStatus.OK, Unpooled.copiedBuffer("{}", ARIEncoder.ENCODING))); @@ -199,7 +294,8 @@ public void testBodyVariableSerialisation() throws RestException { } @Test - public void testBodyObjectSerialisation() throws RestException { + public void testBodyObjectSerialisation() throws Exception { + initTestClient(); EmbeddedChannel channel = createTestChannel(); channel.writeInbound(new DefaultFullHttpResponse( HttpVersion.HTTP_1_1, HttpResponseStatus.OK, Unpooled.copiedBuffer("{}", ARIEncoder.ENCODING))); @@ -218,7 +314,7 @@ private void validateBody(EmbeddedChannel channel, String field) { if ("fields".equals(field)) { expected = "{\"fields\":[{\"attribute\":\"key1\",\"value\":\"val1\"},{\"attribute\":\"key2\",\"value\":\"val2\"}]}"; } - StringBuffer buffer = new StringBuffer(); + StringBuilder buffer = new StringBuilder(); ByteBuf data = channel.readOutbound(); while (data != null) { if (data.readableBytes() > 0) { From c5a965a8d702e6b659cecd67dd37b6428e078f4e Mon Sep 17 00:00:00 2001 From: Graham Brown Date: Sat, 21 Mar 2020 20:55:49 +0200 Subject: [PATCH 138/220] New Asterisk dropped with new ARI versions --- .../codegen-data/ari_1_11_2/applications.json | 223 ++ .../codegen-data/ari_1_11_2/asterisk.json | 725 ++++++ .../codegen-data/ari_1_11_2/bridges.json | 743 ++++++ .../codegen-data/ari_1_11_2/channels.json | 1825 ++++++++++++++ .../codegen-data/ari_1_11_2/deviceStates.json | 151 ++ .../codegen-data/ari_1_11_2/endpoints.json | 263 ++ .../codegen-data/ari_1_11_2/events.json | 903 +++++++ .../codegen-data/ari_1_11_2/mailboxes.json | 134 + .../codegen-data/ari_1_11_2/playbacks.json | 155 ++ .../codegen-data/ari_1_11_2/recordings.json | 378 +++ .../codegen-data/ari_1_11_2/sounds.json | 99 + .../codegen-data/ari_4_1_2/applications.json | 223 ++ .../codegen-data/ari_4_1_2/asterisk.json | 725 ++++++ .../codegen-data/ari_4_1_2/bridges.json | 765 ++++++ .../codegen-data/ari_4_1_2/channels.json | 2164 ++++++++++++++++ .../codegen-data/ari_4_1_2/deviceStates.json | 154 ++ .../codegen-data/ari_4_1_2/endpoints.json | 263 ++ .../codegen-data/ari_4_1_2/events.json | 918 +++++++ .../codegen-data/ari_4_1_2/mailboxes.json | 137 ++ .../codegen-data/ari_4_1_2/playbacks.json | 164 ++ .../codegen-data/ari_4_1_2/recordings.json | 413 ++++ .../codegen-data/ari_4_1_2/sounds.json | 99 + .../codegen-data/ari_5_1_0/applications.json | 223 ++ .../codegen-data/ari_5_1_0/asterisk.json | 725 ++++++ .../codegen-data/ari_5_1_0/bridges.json | 765 ++++++ .../codegen-data/ari_5_1_0/channels.json | 2171 +++++++++++++++++ .../codegen-data/ari_5_1_0/deviceStates.json | 154 ++ .../codegen-data/ari_5_1_0/endpoints.json | 263 ++ .../codegen-data/ari_5_1_0/events.json | 918 +++++++ .../codegen-data/ari_5_1_0/mailboxes.json | 137 ++ .../codegen-data/ari_5_1_0/playbacks.json | 164 ++ .../codegen-data/ari_5_1_0/recordings.json | 413 ++++ .../codegen-data/ari_5_1_0/sounds.json | 99 + 33 files changed, 17656 insertions(+) create mode 100644 codegen/src/main/resources/codegen-data/ari_1_11_2/applications.json create mode 100644 codegen/src/main/resources/codegen-data/ari_1_11_2/asterisk.json create mode 100644 codegen/src/main/resources/codegen-data/ari_1_11_2/bridges.json create mode 100644 codegen/src/main/resources/codegen-data/ari_1_11_2/channels.json create mode 100644 codegen/src/main/resources/codegen-data/ari_1_11_2/deviceStates.json create mode 100644 codegen/src/main/resources/codegen-data/ari_1_11_2/endpoints.json create mode 100644 codegen/src/main/resources/codegen-data/ari_1_11_2/events.json create mode 100644 codegen/src/main/resources/codegen-data/ari_1_11_2/mailboxes.json create mode 100644 codegen/src/main/resources/codegen-data/ari_1_11_2/playbacks.json create mode 100644 codegen/src/main/resources/codegen-data/ari_1_11_2/recordings.json create mode 100644 codegen/src/main/resources/codegen-data/ari_1_11_2/sounds.json create mode 100644 codegen/src/main/resources/codegen-data/ari_4_1_2/applications.json create mode 100644 codegen/src/main/resources/codegen-data/ari_4_1_2/asterisk.json create mode 100644 codegen/src/main/resources/codegen-data/ari_4_1_2/bridges.json create mode 100644 codegen/src/main/resources/codegen-data/ari_4_1_2/channels.json create mode 100644 codegen/src/main/resources/codegen-data/ari_4_1_2/deviceStates.json create mode 100644 codegen/src/main/resources/codegen-data/ari_4_1_2/endpoints.json create mode 100644 codegen/src/main/resources/codegen-data/ari_4_1_2/events.json create mode 100644 codegen/src/main/resources/codegen-data/ari_4_1_2/mailboxes.json create mode 100644 codegen/src/main/resources/codegen-data/ari_4_1_2/playbacks.json create mode 100644 codegen/src/main/resources/codegen-data/ari_4_1_2/recordings.json create mode 100644 codegen/src/main/resources/codegen-data/ari_4_1_2/sounds.json create mode 100644 codegen/src/main/resources/codegen-data/ari_5_1_0/applications.json create mode 100644 codegen/src/main/resources/codegen-data/ari_5_1_0/asterisk.json create mode 100644 codegen/src/main/resources/codegen-data/ari_5_1_0/bridges.json create mode 100644 codegen/src/main/resources/codegen-data/ari_5_1_0/channels.json create mode 100644 codegen/src/main/resources/codegen-data/ari_5_1_0/deviceStates.json create mode 100644 codegen/src/main/resources/codegen-data/ari_5_1_0/endpoints.json create mode 100644 codegen/src/main/resources/codegen-data/ari_5_1_0/events.json create mode 100644 codegen/src/main/resources/codegen-data/ari_5_1_0/mailboxes.json create mode 100644 codegen/src/main/resources/codegen-data/ari_5_1_0/playbacks.json create mode 100644 codegen/src/main/resources/codegen-data/ari_5_1_0/recordings.json create mode 100644 codegen/src/main/resources/codegen-data/ari_5_1_0/sounds.json diff --git a/codegen/src/main/resources/codegen-data/ari_1_11_2/applications.json b/codegen/src/main/resources/codegen-data/ari_1_11_2/applications.json new file mode 100644 index 00000000..ef61b821 --- /dev/null +++ b/codegen/src/main/resources/codegen-data/ari_1_11_2/applications.json @@ -0,0 +1,223 @@ +{ + "_copyright": "Copyright (C) 2013, Digium, Inc.", + "_author": "David M. Lee, II ", + "_svn_revision": "$Revision$", + "apiVersion": "1.10.0", + "swaggerVersion": "1.1", + "basePath": "http://localhost:8088/ari", + "resourcePath": "/api-docs/applications.{format}", + "apis": [ + { + "path": "/applications", + "description": "Stasis applications", + "operations": [ + { + "httpMethod": "GET", + "summary": "List all applications.", + "nickname": "list", + "responseClass": "List[Application]" + } + ] + }, + { + "path": "/applications/{applicationName}", + "description": "Stasis application", + "operations": [ + { + "httpMethod": "GET", + "summary": "Get details of an application.", + "nickname": "get", + "responseClass": "Application", + "parameters": [ + { + "name": "applicationName", + "description": "Application's name", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Application does not exist." + } + ] + } + ] + }, + { + "path": "/applications/{applicationName}/subscription", + "description": "Stasis application", + "operations": [ + { + "httpMethod": "POST", + "summary": "Subscribe an application to a event source.", + "notes": "Returns the state of the application after the subscriptions have changed", + "nickname": "subscribe", + "responseClass": "Application", + "parameters": [ + { + "name": "applicationName", + "description": "Application's name", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "eventSource", + "description": "URI for event source (channel:{channelId}, bridge:{bridgeId}, endpoint:{tech}[/{resource}], deviceState:{deviceName}", + "paramType": "query", + "required": true, + "allowMultiple": true, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 400, + "reason": "Missing parameter." + }, + { + "code": 404, + "reason": "Application does not exist." + }, + { + "code": 422, + "reason": "Event source does not exist." + } + ] + }, + { + "httpMethod": "DELETE", + "summary": "Unsubscribe an application from an event source.", + "notes": "Returns the state of the application after the subscriptions have changed", + "nickname": "unsubscribe", + "responseClass": "Application", + "parameters": [ + { + "name": "applicationName", + "description": "Application's name", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "eventSource", + "description": "URI for event source (channel:{channelId}, bridge:{bridgeId}, endpoint:{tech}[/{resource}], deviceState:{deviceName}", + "paramType": "query", + "required": true, + "allowMultiple": true, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 400, + "reason": "Missing parameter; event source scheme not recognized." + }, + { + "code": 404, + "reason": "Application does not exist." + }, + { + "code": 409, + "reason": "Application not subscribed to event source." + }, + { + "code": 422, + "reason": "Event source does not exist." + } + ] + } + ] + }, + { + "path": "/applications/{applicationName}/eventFilter", + "description": "Stasis application", + "operations": [ + { + "httpMethod": "PUT", + "summary": "Filter application events types.", + "notes": "Allowed and/or disallowed event type filtering can be done. The body (parameter) should specify a JSON key/value object that describes the type of event filtering needed. One, or both of the following keys can be designated:

\"allowed\" - Specifies an allowed list of event types
\"disallowed\" - Specifies a disallowed list of event types

Further, each of those key's value should be a JSON array that holds zero, or more JSON key/value objects. Each of these objects must contain the following key with an associated value:

\"type\" - The type name of the event to filter

The value must be the string name (case sensitive) of the event type that needs filtering. For example:

{ \"allowed\": [ { \"type\": \"StasisStart\" }, { \"type\": \"StasisEnd\" } ] }

As this specifies only an allowed list, then only those two event type messages are sent to the application. No other event messages are sent.

The following rules apply:

* If the body is empty, both the allowed and disallowed filters are set empty.
* If both list types are given then both are set to their respective values (note, specifying an empty array for a given type sets that type to empty).
* If only one list type is given then only that type is set. The other type is not updated.
* An empty \"allowed\" list means all events are allowed.
* An empty \"disallowed\" list means no events are disallowed.
* Disallowed events take precedence over allowed events if the event type is specified in both lists.", + "nickname": "filter", + "responseClass": "Application", + "parameters": [ + { + "name": "applicationName", + "description": "Application's name", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "filter", + "description": "Specify which event types to allow/disallow", + "paramType": "body", + "required": false, + "dataType": "object", + "allowMultiple": false + } + ], + "errorResponses": [ + { + "code": 400, + "reason": "Bad request." + }, + { + "code": 404, + "reason": "Application does not exist." + } + ] + } + ] + } + ], + "models": { + "Application": { + "id": "Application", + "description": "Details of a Stasis application", + "properties": { + "name": { + "type": "string", + "description": "Name of this application", + "required": true + }, + "channel_ids": { + "type": "List[string]", + "description": "Id's for channels subscribed to.", + "required": true + }, + "bridge_ids": { + "type": "List[string]", + "description": "Id's for bridges subscribed to.", + "required": true + }, + "endpoint_ids": { + "type": "List[string]", + "description": "{tech}/{resource} for endpoints subscribed to.", + "required": true + }, + "device_names": { + "type": "List[string]", + "description": "Names of the devices subscribed to.", + "required": true + }, + "events_allowed": { + "type": "List[object]", + "description": "Event types sent to the application.", + "required": true + }, + "events_disallowed": { + "type": "List[object]", + "description": "Event types not sent to the application.", + "required": true + } + } + } + } +} diff --git a/codegen/src/main/resources/codegen-data/ari_1_11_2/asterisk.json b/codegen/src/main/resources/codegen-data/ari_1_11_2/asterisk.json new file mode 100644 index 00000000..226c48e8 --- /dev/null +++ b/codegen/src/main/resources/codegen-data/ari_1_11_2/asterisk.json @@ -0,0 +1,725 @@ +{ + "_copyright": "Copyright (C) 2012 - 2013, Digium, Inc.", + "_author": "David M. Lee, II ", + "_svn_revision": "$Revision$", + "apiVersion": "1.10.0", + "swaggerVersion": "1.1", + "basePath": "http://localhost:8088/ari", + "resourcePath": "/api-docs/asterisk.{format}", + "apis": [ + { + "path": "/asterisk/config/dynamic/{configClass}/{objectType}/{id}", + "description": "Asterisk dynamic configuration", + "operations": [ + { + "httpMethod": "GET", + "summary": "Retrieve a dynamic configuration object.", + "nickname": "getObject", + "responseClass": "List[ConfigTuple]", + "parameters": [ + { + "name": "configClass", + "description": "The configuration class containing dynamic configuration objects.", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "objectType", + "description": "The type of configuration object to retrieve.", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "id", + "description": "The unique identifier of the object to retrieve.", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "{configClass|objectType|id} not found" + } + ] + }, + { + "httpMethod": "PUT", + "summary": "Create or update a dynamic configuration object.", + "nickname": "updateObject", + "responseClass": "List[ConfigTuple]", + "parameters": [ + { + "name": "configClass", + "description": "The configuration class containing dynamic configuration objects.", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "objectType", + "description": "The type of configuration object to create or update.", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "id", + "description": "The unique identifier of the object to create or update.", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "fields", + "description": "The body object should have a value that is a list of ConfigTuples, which provide the fields to update. Ex. [ { \"attribute\": \"directmedia\", \"value\": \"false\" } ]", + "paramType": "body", + "required": false, + "dataType": "containers", + "allowMultiple": false + } + ], + "errorResponses": [ + { + "code": 400, + "reason": "Bad request body" + }, + { + "code": 403, + "reason": "Could not create or update object" + }, + { + "code": 404, + "reason": "{configClass|objectType} not found" + } + ] + }, + { + "httpMethod": "DELETE", + "summary": "Delete a dynamic configuration object.", + "nickname": "deleteObject", + "responseClass": "void", + "parameters": [ + { + "name": "configClass", + "description": "The configuration class containing dynamic configuration objects.", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "objectType", + "description": "The type of configuration object to delete.", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "id", + "description": "The unique identifier of the object to delete.", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 403, + "reason": "Could not delete object" + }, + { + "code": 404, + "reason": "{configClass|objectType|id} not found" + } + ] + } + ] + }, + { + "path": "/asterisk/info", + "description": "Asterisk system information (similar to core show settings)", + "operations": [ + { + "httpMethod": "GET", + "summary": "Gets Asterisk system information.", + "nickname": "getInfo", + "responseClass": "AsteriskInfo", + "parameters": [ + { + "name": "only", + "description": "Filter information returned", + "paramType": "query", + "required": false, + "allowMultiple": true, + "dataType": "string", + "allowableValues": { + "valueType": "LIST", + "values": [ + "build", + "system", + "config", + "status" + ] + } + } + ] + } + ] + }, + { + "path": "/asterisk/ping", + "description": "Asterisk ping", + "operations": [ + { + "httpMethod": "GET", + "summary": "Response pong message.", + "nickname": "ping", + "responseClass": "AsteriskPing" + } + ] + }, + { + "path": "/asterisk/modules", + "description": "Asterisk modules", + "operations": [ + { + "httpMethod": "GET", + "summary": "List Asterisk modules.", + "nickname": "listModules", + "responseClass": "List[Module]" + } + ] + }, + { + "path": "/asterisk/modules/{moduleName}", + "description": "Asterisk module", + "operations": [ + { + "httpMethod": "GET", + "summary": "Get Asterisk module information.", + "nickname": "getModule", + "responseClass": "Module", + "parameters": [ + { + "name": "moduleName", + "description": "Module's name", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Module could not be found in running modules." + }, + { + "code": 409, + "reason": "Module information could not be retrieved." + } + ] + }, + { + "httpMethod": "POST", + "summary": "Load an Asterisk module.", + "nickname": "loadModule", + "responseClass": "void", + "parameters": [ + { + "name": "moduleName", + "description": "Module's name", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 409, + "reason": "Module could not be loaded." + } + ] + }, + { + "httpMethod": "DELETE", + "summary": "Unload an Asterisk module.", + "nickname": "unloadModule", + "responseClass": "void", + "parameters": [ + { + "name": "moduleName", + "description": "Module's name", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Module not found in running modules." + }, + { + "code": 409, + "reason": "Module could not be unloaded." + } + ] + }, + { + "httpMethod": "PUT", + "summary": "Reload an Asterisk module.", + "nickname": "reloadModule", + "responseClass": "void", + "parameters": [ + { + "name": "moduleName", + "description": "Module's name", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Module not found in running modules." + }, + { + "code": 409, + "reason": "Module could not be reloaded." + } + ] + } + ] + }, + { + "path": "/asterisk/logging", + "description": "Asterisk log channels", + "operations": [ + { + "httpMethod": "GET", + "summary": "Gets Asterisk log channel information.", + "nickname": "listLogChannels", + "responseClass": "List[LogChannel]" + } + ] + }, + { + "path": "/asterisk/logging/{logChannelName}", + "description": "Asterisk log channel", + "operations": [ + { + "httpMethod": "POST", + "summary": "Adds a log channel.", + "nickname": "addLog", + "responseClass": "void", + "parameters": [ + { + "name": "logChannelName", + "description": "The log channel to add", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "configuration", + "description": "levels of the log channel", + "paramType": "query", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 400, + "reason": "Bad request body" + }, + { + "code": 409, + "reason": "Log channel could not be created." + } + ] + }, + { + "httpMethod": "DELETE", + "summary": "Deletes a log channel.", + "nickname": "deleteLog", + "responseClass": "void", + "parameters": [ + { + "name": "logChannelName", + "description": "Log channels name", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Log channel does not exist." + } + ] + } + ] + }, + { + "path": "/asterisk/logging/{logChannelName}/rotate", + "description": "Asterisk log channel", + "operations": [ + { + "httpMethod": "PUT", + "summary": "Rotates a log channel.", + "nickname": "rotateLog", + "responseClass": "void", + "parameters": [ + { + "name": "logChannelName", + "description": "Log channel's name", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Log channel does not exist." + } + ] + } + ] + }, + { + "path": "/asterisk/variable", + "description": "Global variables", + "operations": [ + { + "httpMethod": "GET", + "summary": "Get the value of a global variable.", + "nickname": "getGlobalVar", + "responseClass": "Variable", + "parameters": [ + { + "name": "variable", + "description": "The variable to get", + "paramType": "query", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 400, + "reason": "Missing variable parameter." + } + ] + }, + { + "httpMethod": "POST", + "summary": "Set the value of a global variable.", + "nickname": "setGlobalVar", + "responseClass": "void", + "parameters": [ + { + "name": "variable", + "description": "The variable to set", + "paramType": "query", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "value", + "description": "The value to set the variable to", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 400, + "reason": "Missing variable parameter." + } + ] + } + ] + } + ], + "models": { + "BuildInfo": { + "id": "BuildInfo", + "description": "Info about how Asterisk was built", + "properties": { + "os": { + "required": true, + "type": "string", + "description": "OS Asterisk was built on." + }, + "kernel": { + "required": true, + "type": "string", + "description": "Kernel version Asterisk was built on." + }, + "options": { + "required": true, + "type": "string", + "description": "Compile time options, or empty string if default." + }, + "machine": { + "required": true, + "type": "string", + "description": "Machine architecture (x86_64, i686, ppc, etc.)" + }, + "date": { + "required": true, + "type": "string", + "description": "Date and time when Asterisk was built." + }, + "user": { + "required": true, + "type": "string", + "description": "Username that build Asterisk" + } + } + }, + "SystemInfo": { + "id": "SystemInfo", + "description": "Info about Asterisk", + "properties": { + "version": { + "required": true, + "type": "string", + "description": "Asterisk version." + }, + "entity_id": { + "required": true, + "type": "string", + "description": "" + } + } + }, + "SetId": { + "id": "SetId", + "description": "Effective user/group id", + "properties": { + "user": { + "required": true, + "type": "string", + "description": "Effective user id." + }, + "group": { + "required": true, + "type": "string", + "description": "Effective group id." + } + } + }, + "ConfigInfo": { + "id": "ConfigInfo", + "description": "Info about Asterisk configuration", + "properties": { + "name": { + "required": true, + "type": "string", + "description": "Asterisk system name." + }, + "default_language": { + "required": true, + "type": "string", + "description": "Default language for media playback." + }, + "max_channels": { + "required": false, + "type": "int", + "description": "Maximum number of simultaneous channels." + }, + "max_open_files": { + "required": false, + "type": "int", + "description": "Maximum number of open file handles (files, sockets)." + }, + "max_load": { + "required": false, + "type": "double", + "description": "Maximum load avg on system." + }, + "setid": { + "required": true, + "type": "SetId", + "description": "Effective user/group id for running Asterisk." + } + } + }, + "StatusInfo": { + "id": "StatusInfo", + "description": "Info about Asterisk status", + "properties": { + "startup_time": { + "required": true, + "type": "Date", + "description": "Time when Asterisk was started." + }, + "last_reload_time": { + "required": true, + "type": "Date", + "description": "Time when Asterisk was last reloaded." + } + } + }, + "AsteriskInfo": { + "id": "AsteriskInfo", + "description": "Asterisk system information", + "properties": { + "build": { + "required": false, + "type": "BuildInfo", + "description": "Info about how Asterisk was built" + }, + "system": { + "required": false, + "type": "SystemInfo", + "description": "Info about the system running Asterisk" + }, + "config": { + "required": false, + "type": "ConfigInfo", + "description": "Info about Asterisk configuration" + }, + "status": { + "required": false, + "type": "StatusInfo", + "description": "Info about Asterisk status" + } + } + }, + "AsteriskPing": { + "id": "AsteriskPing", + "description": "Asterisk ping information", + "properties": { + "asterisk_id": { + "required": true, + "type": "string", + "description": "Asterisk id info" + }, + "ping": { + "required": true, + "type": "string", + "description": "Always string value is pong" + }, + "timestamp": { + "required": true, + "type": "string", + "description": "The timestamp string of request received time" + } + } + }, + "Module": { + "id": "Module", + "description": "Details of an Asterisk module", + "properties": { + "name": { + "type": "string", + "description": "The name of this module", + "required": true + }, + "description": { + "type": "string", + "description": "The description of this module", + "required": true + }, + "use_count": { + "type": "int", + "description": "The number of times this module is being used", + "required": true + }, + "status": { + "type": "string", + "description": "The running status of this module", + "required": true + }, + "support_level": { + "type": "string", + "description": "The support state of this module", + "required": true + } + } + }, + "LogChannel": { + "id": "LogChannel", + "description": "Details of an Asterisk log channel", + "properties": { + "channel": { + "type": "string", + "description": "The log channel path", + "required": true + }, + "type": { + "type": "string", + "description": "Types of logs for the log channel", + "required": true + }, + "status": { + "type": "string", + "description": "Whether or not a log type is enabled", + "required": true + }, + "configuration": { + "type": "string", + "description": "The various log levels", + "required": true + } + } + }, + "Variable": { + "id": "Variable", + "description": "The value of a channel variable", + "properties": { + "value": { + "required": true, + "type": "string", + "description": "The value of the variable requested" + } + } + }, + "ConfigTuple": { + "id": "ConfigTuple", + "description": "A key/value pair that makes up part of a configuration object.", + "properties": { + "attribute": { + "required": true, + "type": "string", + "description": "A configuration object attribute." + }, + "value": { + "required": true, + "type": "string", + "description": "The value for the attribute." + } + } + } + } +} diff --git a/codegen/src/main/resources/codegen-data/ari_1_11_2/bridges.json b/codegen/src/main/resources/codegen-data/ari_1_11_2/bridges.json new file mode 100644 index 00000000..78bd3afa --- /dev/null +++ b/codegen/src/main/resources/codegen-data/ari_1_11_2/bridges.json @@ -0,0 +1,743 @@ +{ + "_copyright": "Copyright (C) 2012 - 2013, Digium, Inc.", + "_author": "David M. Lee, II ", + "_svn_revision": "$Revision$", + "apiVersion": "1.10.0", + "swaggerVersion": "1.1", + "basePath": "http://localhost:8088/ari", + "resourcePath": "/api-docs/bridges.{format}", + "apis": [ + { + "path": "/bridges", + "description": "Active bridges", + "operations": [ + { + "httpMethod": "GET", + "summary": "List all active bridges in Asterisk.", + "nickname": "list", + "responseClass": "List[Bridge]" + }, + { + "httpMethod": "POST", + "summary": "Create a new bridge.", + "notes": "This bridge persists until it has been shut down, or Asterisk has been shut down.", + "nickname": "create", + "responseClass": "Bridge", + "parameters": [ + { + "name": "type", + "description": "Comma separated list of bridge type attributes (mixing, holding, dtmf_events, proxy_media).", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "bridgeId", + "description": "Unique ID to give to the bridge being created.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "name", + "description": "Name to give to the bridge being created.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + } + ] + } + ] + }, + { + "path": "/bridges/{bridgeId}", + "description": "Individual bridge", + "operations": [ + { + "httpMethod": "POST", + "summary": "Create a new bridge or updates an existing one.", + "notes": "This bridge persists until it has been shut down, or Asterisk has been shut down.", + "nickname": "createWithId", + "responseClass": "Bridge", + "parameters": [ + { + "name": "type", + "description": "Comma separated list of bridge type attributes (mixing, holding, dtmf_events, proxy_media) to set.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "bridgeId", + "description": "Unique ID to give to the bridge being created.", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "name", + "description": "Set the name of the bridge.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + } + ] + }, + { + "httpMethod": "GET", + "summary": "Get bridge details.", + "nickname": "get", + "responseClass": "Bridge", + "parameters": [ + { + "name": "bridgeId", + "description": "Bridge's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Bridge not found" + } + ] + }, + { + "httpMethod": "DELETE", + "summary": "Shut down a bridge.", + "notes": "If any channels are in this bridge, they will be removed and resume whatever they were doing beforehand.", + "nickname": "destroy", + "responseClass": "void", + "parameters": [ + { + "name": "bridgeId", + "description": "Bridge's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Bridge not found" + } + ] + } + ] + }, + { + "path": "/bridges/{bridgeId}/addChannel", + "description": "Add a channel to a bridge", + "operations": [ + { + "httpMethod": "POST", + "summary": "Add a channel to a bridge.", + "nickname": "addChannel", + "responseClass": "void", + "parameters": [ + { + "name": "bridgeId", + "description": "Bridge's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "channel", + "description": "Ids of channels to add to bridge", + "paramType": "query", + "required": true, + "allowMultiple": true, + "dataType": "string" + }, + { + "name": "role", + "description": "Channel's role in the bridge", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 400, + "reason": "Channel not found" + }, + { + "code": 404, + "reason": "Bridge not found" + }, + { + "code": 409, + "reason": "Bridge not in Stasis application; Channel currently recording" + }, + { + "code": 422, + "reason": "Channel not in Stasis application" + } + ] + } + ] + }, + { + "path": "/bridges/{bridgeId}/removeChannel", + "description": "Remove a channel from a bridge", + "operations": [ + { + "httpMethod": "POST", + "summary": "Remove a channel from a bridge.", + "nickname": "removeChannel", + "responseClass": "void", + "parameters": [ + { + "name": "bridgeId", + "description": "Bridge's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "channel", + "description": "Ids of channels to remove from bridge", + "paramType": "query", + "required": true, + "allowMultiple": true, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 400, + "reason": "Channel not found" + }, + { + "code": 404, + "reason": "Bridge not found" + }, + { + "code": 409, + "reason": "Bridge not in Stasis application" + }, + { + "code": 422, + "reason": "Channel not in this bridge" + } + ] + } + ] + }, + { + "path": "/bridges/{bridgeId}/videoSource/{channelId}", + "description": "Set a channel as the video source in a multi-party bridge", + "operations": [ + { + "httpMethod": "POST", + "summary": "Set a channel as the video source in a multi-party mixing bridge. This operation has no effect on bridges with two or fewer participants.", + "nickname": "setVideoSource", + "responseClass": "void", + "parameters": [ + { + "name": "bridgeId", + "description": "Bridge's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "channelId", + "description": "Channel's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Bridge or Channel not found" + }, + { + "code": 409, + "reason": "Channel not in Stasis application" + }, + { + "code": 422, + "reason": "Channel not in this Bridge" + } + ] + } + ] + }, + { + "path": "/bridges/{bridgeId}/videoSource", + "description": "Removes any explicit video source", + "operations": [ + { + "httpMethod": "DELETE", + "summary": "Removes any explicit video source in a multi-party mixing bridge. This operation has no effect on bridges with two or fewer participants. When no explicit video source is set, talk detection will be used to determine the active video stream.", + "nickname": "clearVideoSource", + "responseClass": "void", + "parameters": [ + { + "name": "bridgeId", + "description": "Bridge's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Bridge not found" + } + ] + } + ] + }, + { + "path": "/bridges/{bridgeId}/moh", + "description": "Play music on hold to a bridge", + "operations": [ + { + "httpMethod": "POST", + "summary": "Play music on hold to a bridge or change the MOH class that is playing.", + "nickname": "startMoh", + "responseClass": "void", + "parameters": [ + { + "name": "bridgeId", + "description": "Bridge's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "mohClass", + "description": "Channel's id", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Bridge not found" + }, + { + "code": 409, + "reason": "Bridge not in Stasis application" + } + ] + }, + { + "httpMethod": "DELETE", + "summary": "Stop playing music on hold to a bridge.", + "notes": "This will only stop music on hold being played via POST bridges/{bridgeId}/moh.", + "nickname": "stopMoh", + "responseClass": "void", + "parameters": [ + { + "name": "bridgeId", + "description": "Bridge's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Bridge not found" + }, + { + "code": 409, + "reason": "Bridge not in Stasis application" + } + ] + } + ] + }, + { + "path": "/bridges/{bridgeId}/play", + "description": "Play media to the participants of a bridge", + "operations": [ + { + "httpMethod": "POST", + "summary": "Start playback of media on a bridge.", + "notes": "The media URI may be any of a number of URI's. Currently sound:, recording:, number:, digits:, characters:, and tone: URI's are supported. This operation creates a playback resource that can be used to control the playback of media (pause, rewind, fast forward, etc.)", + "nickname": "play", + "responseClass": "Playback", + "parameters": [ + { + "name": "bridgeId", + "description": "Bridge's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "media", + "description": "Media's URI to play.", + "paramType": "query", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "lang", + "description": "For sounds, selects language for sound.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "offsetms", + "description": "Number of media to skip before playing.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "int", + "defaultValue": 0, + "allowableValues": { + "valueType": "RANGE", + "min": 0 + } + + }, + { + "name": "skipms", + "description": "Number of milliseconds to skip for forward/reverse operations.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "int", + "defaultValue": 3000, + "allowableValues": { + "valueType": "RANGE", + "min": 0 + } + }, + { + "name": "playbackId", + "description": "Playback Id.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Bridge not found" + }, + { + "code": 409, + "reason": "Bridge not in a Stasis application" + } + ] + } + ] + }, + { + "path": "/bridges/{bridgeId}/play/{playbackId}", + "description": "Play media to a bridge", + "operations": [ + { + "httpMethod": "POST", + "summary": "Start playback of media on a bridge.", + "notes": "The media URI may be any of a number of URI's. Currently sound:, recording:, number:, digits:, characters:, and tone: URI's are supported. This operation creates a playback resource that can be used to control the playback of media (pause, rewind, fast forward, etc.)", + "nickname": "playWithId", + "responseClass": "Playback", + "parameters": [ + { + "name": "bridgeId", + "description": "Bridge's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "playbackId", + "description": "Playback ID.", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "media", + "description": "Media's URI to play.", + "paramType": "query", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "lang", + "description": "For sounds, selects language for sound.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "offsetms", + "description": "Number of media to skip before playing.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "int", + "defaultValue": 0, + "allowableValues": { + "valueType": "RANGE", + "min": 0 + } + }, + { + "name": "skipms", + "description": "Number of milliseconds to skip for forward/reverse operations.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "int", + "defaultValue": 3000, + "allowableValues": { + "valueType": "RANGE", + "min": 0 + } + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Bridge not found" + }, + { + "code": 409, + "reason": "Bridge not in a Stasis application" + } + ] + + } + ] + }, + { + "path": "/bridges/{bridgeId}/record", + "description": "Record audio on a bridge", + "operations": [ + { + "httpMethod": "POST", + "summary": "Start a recording.", + "notes": "This records the mixed audio from all channels participating in this bridge.", + "nickname": "record", + "responseClass": "LiveRecording", + "parameters": [ + { + "name": "bridgeId", + "description": "Bridge's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "name", + "description": "Recording's filename", + "paramType": "query", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "format", + "description": "Format to encode audio in", + "paramType": "query", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "maxDurationSeconds", + "description": "Maximum duration of the recording, in seconds. 0 for no limit.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "int", + "defaultValue": 0, + "allowableValues": { + "valueType": "RANGE", + "min": 0 + } + }, + { + "name": "maxSilenceSeconds", + "description": "Maximum duration of silence, in seconds. 0 for no limit.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "int", + "defaultValue": 0, + "allowableValues": { + "valueType": "RANGE", + "min": 0 + } + }, + { + "name": "ifExists", + "description": "Action to take if a recording with the same name already exists.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string", + "defaultValue": "fail", + "allowableValues": { + "valueType": "LIST", + "values": [ + "fail", + "overwrite", + "append" + ] + } + }, + { + "name": "beep", + "description": "Play beep when recording begins", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "boolean", + "defaultValue": false + }, + { + "name": "terminateOn", + "description": "DTMF input to terminate recording.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string", + "defaultValue": "none", + "allowableValues": { + "valueType": "LIST", + "values": [ + "none", + "any", + "*", + "#" + ] + } + } + ], + "errorResponses": [ + { + "code": 400, + "reason": "Invalid parameters" + }, + { + "code": 404, + "reason": "Bridge not found" + }, + { + "code": 409, + "reason": "Bridge is not in a Stasis application; A recording with the same name already exists on the system and can not be overwritten because it is in progress or ifExists=fail" + }, + { + "code": 422, + "reason": "The format specified is unknown on this system" + } + ] + } + ] + } + ], + "models": { + "Bridge": { + "id": "Bridge", + "description": "The merging of media from one or more channels.\n\nEveryone on the bridge receives the same audio.", + "properties": { + "id": { + "type": "string", + "description": "Unique identifier for this bridge", + "required": true + }, + "technology": { + "type": "string", + "description": "Name of the current bridging technology", + "required": true + }, + "bridge_type": { + "type": "string", + "description": "Type of bridge technology", + "required": true, + "allowableValues": { + "valueType": "LIST", + "values": [ + "mixing", + "holding" + ] + } + }, + "bridge_class": { + "type": "string", + "description": "Bridging class", + "required": true + }, + "creator": { + "type": "string", + "description": "Entity that created the bridge", + "required": true + }, + "name": { + "type": "string", + "description": "Name the creator gave the bridge", + "required": true + }, + "channels": { + "type": "List[string]", + "description": "Ids of channels participating in this bridge", + "required": true + }, + "video_mode": { + "type": "string", + "description": "The video mode the bridge is using. One of 'none', 'talker', or 'single'.", + "required": false + }, + "video_source_id": { + "type": "string", + "description": "The ID of the channel that is the source of video in this bridge, if one exists.", + "required": false + }, + "creationtime": { + "required": true, + "type": "Date", + "description": "Timestamp when bridge was created" + } + } + } + } +} diff --git a/codegen/src/main/resources/codegen-data/ari_1_11_2/channels.json b/codegen/src/main/resources/codegen-data/ari_1_11_2/channels.json new file mode 100644 index 00000000..fdeb0b83 --- /dev/null +++ b/codegen/src/main/resources/codegen-data/ari_1_11_2/channels.json @@ -0,0 +1,1825 @@ +{ + "_copyright": "Copyright (C) 2012 - 2013, Digium, Inc.", + "_author": "David M. Lee, II ", + "_svn_revision": "$Revision$", + "apiVersion": "1.10.0", + "swaggerVersion": "1.1", + "basePath": "http://localhost:8088/ari", + "resourcePath": "/api-docs/channels.{format}", + "apis": [ + { + "path": "/channels", + "description": "Active channels", + "operations": [ + { + "httpMethod": "GET", + "summary": "List all active channels in Asterisk.", + "nickname": "list", + "responseClass": "List[Channel]" + }, + { + "httpMethod": "POST", + "summary": "Create a new channel (originate).", + "notes": "The new channel is created immediately and a snapshot of it returned. If a Stasis application is provided it will be automatically subscribed to the originated channel for further events and updates.", + "nickname": "originate", + "responseClass": "Channel", + "parameters": [ + { + "name": "endpoint", + "description": "Endpoint to call.", + "paramType": "query", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "extension", + "description": "The extension to dial after the endpoint answers. Mutually exclusive with 'app'.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "context", + "description": "The context to dial after the endpoint answers. If omitted, uses 'default'. Mutually exclusive with 'app'.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "priority", + "description": "The priority to dial after the endpoint answers. If omitted, uses 1. Mutually exclusive with 'app'.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "long" + }, + { + "name": "label", + "description": "The label to dial after the endpoint answers. Will supersede 'priority' if provided. Mutually exclusive with 'app'.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "app", + "description": "The application that is subscribed to the originated channel. When the channel is answered, it will be passed to this Stasis application. Mutually exclusive with 'context', 'extension', 'priority', and 'label'.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "appArgs", + "description": "The application arguments to pass to the Stasis application provided by 'app'. Mutually exclusive with 'context', 'extension', 'priority', and 'label'.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "callerId", + "description": "CallerID to use when dialing the endpoint or extension.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "timeout", + "description": "Timeout (in seconds) before giving up dialing, or -1 for no timeout.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "int", + "defaultValue": 30 + }, + { + "name": "variables", + "description": "The \"variables\" key in the body object holds variable key/value pairs to set on the channel on creation. Other keys in the body object are interpreted as query parameters. Ex. { \"endpoint\": \"SIP/Alice\", \"variables\": { \"CALLERID(name)\": \"Alice\" } }", + "paramType": "body", + "required": false, + "dataType": "containers", + "allowMultiple": false + }, + { + "name": "channelId", + "description": "The unique id to assign the channel on creation.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "otherChannelId", + "description": "The unique id to assign the second channel when using local channels.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "originator", + "description": "The unique id of the channel which is originating this one.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "formats", + "description": "The format name capability list to use if originator is not specified. Ex. \"ulaw,slin16\". Format names can be found with \"core show codecs\".", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 400, + "reason": "Invalid parameters for originating a channel." + }, + { + "code": 409, + "reason": "Channel with given unique ID already exists." + } + ] + } + ] + }, + { + "path": "/channels/{channelId}", + "description": "Active channel", + "operations": [ + { + "httpMethod": "GET", + "summary": "Channel details.", + "nickname": "get", + "responseClass": "Channel", + "parameters": [ + { + "name": "channelId", + "description": "Channel's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Channel not found" + } + ] + }, + { + "httpMethod": "POST", + "summary": "Create a new channel (originate with id).", + "notes": "The new channel is created immediately and a snapshot of it returned. If a Stasis application is provided it will be automatically subscribed to the originated channel for further events and updates.", + "nickname": "originateWithId", + "responseClass": "Channel", + "parameters": [ + { + "name": "channelId", + "description": "The unique id to assign the channel on creation.", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "endpoint", + "description": "Endpoint to call.", + "paramType": "query", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "extension", + "description": "The extension to dial after the endpoint answers. Mutually exclusive with 'app'.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "context", + "description": "The context to dial after the endpoint answers. If omitted, uses 'default'. Mutually exclusive with 'app'.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "priority", + "description": "The priority to dial after the endpoint answers. If omitted, uses 1. Mutually exclusive with 'app'.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "long" + }, + { + "name": "label", + "description": "The label to dial after the endpoint answers. Will supersede 'priority' if provided. Mutually exclusive with 'app'.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "app", + "description": "The application that is subscribed to the originated channel. When the channel is answered, it will be passed to this Stasis application. Mutually exclusive with 'context', 'extension', 'priority', and 'label'.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "appArgs", + "description": "The application arguments to pass to the Stasis application provided by 'app'. Mutually exclusive with 'context', 'extension', 'priority', and 'label'.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "callerId", + "description": "CallerID to use when dialing the endpoint or extension.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "timeout", + "description": "Timeout (in seconds) before giving up dialing, or -1 for no timeout.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "int", + "defaultValue": 30 + }, + { + "name": "variables", + "description": "The \"variables\" key in the body object holds variable key/value pairs to set on the channel on creation. Other keys in the body object are interpreted as query parameters. Ex. { \"endpoint\": \"SIP/Alice\", \"variables\": { \"CALLERID(name)\": \"Alice\" } }", + "paramType": "body", + "required": false, + "dataType": "containers", + "allowMultiple": false + }, + { + "name": "otherChannelId", + "description": "The unique id to assign the second channel when using local channels.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "originator", + "description": "The unique id of the channel which is originating this one.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "formats", + "description": "The format name capability list to use if originator is not specified. Ex. \"ulaw,slin16\". Format names can be found with \"core show codecs\".", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 400, + "reason": "Invalid parameters for originating a channel." + }, + { + "code": 409, + "reason": "Channel with given unique ID already exists." + } + ] + }, + { + "httpMethod": "DELETE", + "summary": "Delete (i.e. hangup) a channel.", + "nickname": "hangup", + "responseClass": "void", + "parameters": [ + { + "name": "channelId", + "description": "Channel's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "reason", + "description": "Reason for hanging up the channel", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string", + "defalutValue": "normal", + "allowableValues": { + "valueType": "LIST", + "values": [ + "normal", + "busy", + "congestion", + "no_answer" + ] + } + } + ], + "errorResponses": [ + { + "code": 400, + "reason": "Invalid reason for hangup provided" + }, + { + "code": 404, + "reason": "Channel not found" + } + ] + } + ] + }, + { + "path": "/channels/{channelId}/continue", + "description": "Exit application; continue execution in the dialplan", + "operations": [ + { + "httpMethod": "POST", + "summary": "Exit application; continue execution in the dialplan.", + "nickname": "continueInDialplan", + "responseClass": "void", + "parameters": [ + { + "name": "channelId", + "description": "Channel's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "context", + "description": "The context to continue to.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "extension", + "description": "The extension to continue to.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "priority", + "description": "The priority to continue to.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "int" + }, + { + "name": "label", + "description": "The label to continue to - will supersede 'priority' if both are provided.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Channel not found" + }, + { + "code": 409, + "reason": "Channel not in a Stasis application" + } + ] + } + ] + }, + { + "path": "/channels/{channelId}/move", + "description": "Move the channel from one Stasis application to another.", + "operations": [ + { + "httpMethod": "POST", + "summary": "Move the channel from one Stasis application to another.", + "nickname": "move", + "responseClass": "void", + "parameters": [ + { + "name": "channelId", + "description": "Channel's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "app", + "description": "The channel will be passed to this Stasis application.", + "paramType": "query", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "appArgs", + "description": "The application arguments to pass to the Stasis application provided by 'app'.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": "404", + "reason": "Channel not found" + }, + { + "code": "409", + "reason": "Channel not in a Stasis application" + } + ] + } + ] + }, + { + "path": "/channels/{channelId}/redirect", + "description": "Inform the channel that it should redirect itself to a different location. Note that this will almost certainly cause the channel to exit the application.", + "operations": [ + { + "httpMethod": "POST", + "summary": "Redirect the channel to a different location.", + "nickname": "redirect", + "responseClass": "void", + "parameters": [ + { + "name": "channelId", + "description": "Channel's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "endpoint", + "description": "The endpoint to redirect the channel to", + "paramType": "query", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 400, + "reason": "Endpoint parameter not provided" + }, + { + "code": 404, + "reason": "Channel or endpoint not found" + }, + { + "code": 409, + "reason": "Channel not in a Stasis application" + }, + { + "code": 422, + "reason": "Endpoint is not the same type as the channel" + } + ] + } + ] + }, + { + "path": "/channels/{channelId}/answer", + "description": "Answer a channel", + "operations": [ + { + "httpMethod": "POST", + "summary": "Answer a channel.", + "nickname": "answer", + "responseClass": "void", + "parameters": [ + { + "name": "channelId", + "description": "Channel's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Channel not found" + }, + { + "code": 409, + "reason": "Channel not in a Stasis application" + } + ] + } + ] + }, + { + "path": "/channels/{channelId}/ring", + "description": "Send a ringing indication to a channel", + "operations": [ + { + "httpMethod": "POST", + "summary": "Indicate ringing to a channel.", + "nickname": "ring", + "responseClass": "void", + "parameters": [ + { + "name": "channelId", + "description": "Channel's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Channel not found" + }, + { + "code": 409, + "reason": "Channel not in a Stasis application" + } + ] + }, + { + "httpMethod": "DELETE", + "summary": "Stop ringing indication on a channel if locally generated.", + "nickname": "ringStop", + "responseClass": "void", + "parameters": [ + { + "name": "channelId", + "description": "Channel's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Channel not found" + }, + { + "code": 409, + "reason": "Channel not in a Stasis application" + } + ] + } + ] + }, + { + "path": "/channels/{channelId}/dtmf", + "description": "Send DTMF to a channel", + "operations": [ + { + "httpMethod": "POST", + "summary": "Send provided DTMF to a given channel.", + "nickname": "sendDTMF", + "responseClass": "void", + "parameters": [ + { + "name": "channelId", + "description": "Channel's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "dtmf", + "description": "DTMF To send.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "before", + "description": "Amount of time to wait before DTMF digits (specified in milliseconds) start.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "int", + "defaultValue": 0 + }, + { + "name": "between", + "description": "Amount of time in between DTMF digits (specified in milliseconds).", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "int", + "defaultValue": 100 + }, + { + "name": "duration", + "description": "Length of each DTMF digit (specified in milliseconds).", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "int", + "defaultValue": 100 + }, + { + "name": "after", + "description": "Amount of time to wait after DTMF digits (specified in milliseconds) end.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "int", + "defaultValue": 0 + } + ], + "errorResponses": [ + { + "code": 400, + "reason": "DTMF is required" + }, + { + "code": 404, + "reason": "Channel not found" + }, + { + "code": 409, + "reason": "Channel not in a Stasis application" + } + ] + } + ] + }, + { + "path": "/channels/{channelId}/mute", + "description": "Mute a channel", + "operations": [ + { + "httpMethod": "POST", + "summary": "Mute a channel.", + "nickname": "mute", + "responseClass": "void", + "parameters": [ + { + "name": "channelId", + "description": "Channel's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "direction", + "description": "Direction in which to mute audio", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string", + "defaultValue": "both", + "allowableValues": { + "valueType": "LIST", + "values": [ + "both", + "in", + "out" + ] + } + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Channel not found" + }, + { + "code": 409, + "reason": "Channel not in a Stasis application" + } + ] + }, + { + "httpMethod": "DELETE", + "summary": "Unmute a channel.", + "nickname": "unmute", + "responseClass": "void", + "parameters": [ + { + "name": "channelId", + "description": "Channel's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "direction", + "description": "Direction in which to unmute audio", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string", + "defaultValue": "both", + "allowableValues": { + "valueType": "LIST", + "values": [ + "both", + "in", + "out" + ] + } + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Channel not found" + }, + { + "code": 409, + "reason": "Channel not in a Stasis application" + } + ] + } + ] + }, + { + "path": "/channels/{channelId}/hold", + "description": "Put a channel on hold", + "operations": [ + { + "httpMethod": "POST", + "summary": "Hold a channel.", + "nickname": "hold", + "responseClass": "void", + "parameters": [ + { + "name": "channelId", + "description": "Channel's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Channel not found" + }, + { + "code": 409, + "reason": "Channel not in a Stasis application" + } + ] + }, + { + "httpMethod": "DELETE", + "summary": "Remove a channel from hold.", + "nickname": "unhold", + "responseClass": "void", + "parameters": [ + { + "name": "channelId", + "description": "Channel's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Channel not found" + }, + { + "code": 409, + "reason": "Channel not in a Stasis application" + } + ] + } + ] + }, + { + "path": "/channels/{channelId}/moh", + "description": "Play music on hold to a channel", + "operations": [ + { + "httpMethod": "POST", + "summary": "Play music on hold to a channel.", + "notes": "Using media operations such as /play on a channel playing MOH in this manner will suspend MOH without resuming automatically. If continuing music on hold is desired, the stasis application must reinitiate music on hold.", + "nickname": "startMoh", + "responseClass": "void", + "parameters": [ + { + "name": "channelId", + "description": "Channel's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "mohClass", + "description": "Music on hold class to use", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Channel not found" + }, + { + "code": 409, + "reason": "Channel not in a Stasis application" + } + ] + }, + { + "httpMethod": "DELETE", + "summary": "Stop playing music on hold to a channel.", + "nickname": "stopMoh", + "responseClass": "void", + "parameters": [ + { + "name": "channelId", + "description": "Channel's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Channel not found" + }, + { + "code": 409, + "reason": "Channel not in a Stasis application" + } + ] + } + ] + }, + { + "path": "/channels/{channelId}/silence", + "description": "Play silence to a channel", + "operations": [ + { + "httpMethod": "POST", + "summary": "Play silence to a channel.", + "notes": "Using media operations such as /play on a channel playing silence in this manner will suspend silence without resuming automatically.", + "nickname": "startSilence", + "responseClass": "void", + "parameters": [ + { + "name": "channelId", + "description": "Channel's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Channel not found" + }, + { + "code": 409, + "reason": "Channel not in a Stasis application" + } + ] + }, + { + "httpMethod": "DELETE", + "summary": "Stop playing silence to a channel.", + "nickname": "stopSilence", + "responseClass": "void", + "parameters": [ + { + "name": "channelId", + "description": "Channel's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Channel not found" + }, + { + "code": 409, + "reason": "Channel not in a Stasis application" + } + ] + } + ] + }, + { + "path": "/channels/{channelId}/play", + "description": "Play media to a channel", + "operations": [ + { + "httpMethod": "POST", + "summary": "Start playback of media.", + "notes": "The media URI may be any of a number of URI's. Currently sound:, recording:, number:, digits:, characters:, and tone: URI's are supported. This operation creates a playback resource that can be used to control the playback of media (pause, rewind, fast forward, etc.)", + "nickname": "play", + "responseClass": "Playback", + "parameters": [ + { + "name": "channelId", + "description": "Channel's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "media", + "description": "Media's URI to play.", + "paramType": "query", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "lang", + "description": "For sounds, selects language for sound.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "offsetms", + "description": "Number of media to skip before playing.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "int" + }, + { + "name": "skipms", + "description": "Number of milliseconds to skip for forward/reverse operations.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "int", + "defaultValue": 3000 + }, + { + "name": "playbackId", + "description": "Playback ID.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Channel not found" + }, + { + "code": 409, + "reason": "Channel not in a Stasis application" + } + ] + } + ] + }, + { + "path": "/channels/{channelId}/play/{playbackId}", + "description": "Play media to a channel", + "operations": [ + { + "httpMethod": "POST", + "summary": "Start playback of media and specify the playbackId.", + "notes": "The media URI may be any of a number of URI's. Currently sound:, recording:, number:, digits:, characters:, and tone: URI's are supported. This operation creates a playback resource that can be used to control the playback of media (pause, rewind, fast forward, etc.)", + "nickname": "playWithId", + "responseClass": "Playback", + "parameters": [ + { + "name": "channelId", + "description": "Channel's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "playbackId", + "description": "Playback ID.", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "media", + "description": "Media's URI to play.", + "paramType": "query", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "lang", + "description": "For sounds, selects language for sound.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "offsetms", + "description": "Number of media to skip before playing.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "int" + }, + { + "name": "skipms", + "description": "Number of milliseconds to skip for forward/reverse operations.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "int", + "defaultValue": 3000 + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Channel not found" + }, + { + "code": 409, + "reason": "Channel not in a Stasis application" + } + ] + } + ] + }, + { + "path": "/channels/{channelId}/record", + "description": "Record audio from a channel", + "operations": [ + { + "httpMethod": "POST", + "summary": "Start a recording.", + "notes": "Record audio from a channel. Note that this will not capture audio sent to the channel. The bridge itself has a record feature if that's what you want.", + "nickname": "record", + "responseClass": "LiveRecording", + "parameters": [ + { + "name": "channelId", + "description": "Channel's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "name", + "description": "Recording's filename", + "paramType": "query", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "format", + "description": "Format to encode audio in", + "paramType": "query", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "maxDurationSeconds", + "description": "Maximum duration of the recording, in seconds. 0 for no limit", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "int", + "defaultValue": 0, + "allowableValues": { + "valueType": "RANGE", + "min": 0 + } + }, + { + "name": "maxSilenceSeconds", + "description": "Maximum duration of silence, in seconds. 0 for no limit", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "int", + "defaultValue": 0, + "allowableValues": { + "valueType": "RANGE", + "min": 0 + } + }, + { + "name": "ifExists", + "description": "Action to take if a recording with the same name already exists.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string", + "defaultValue": "fail", + "allowableValues": { + "valueType": "LIST", + "values": [ + "fail", + "overwrite", + "append" + ] + } + }, + { + "name": "beep", + "description": "Play beep when recording begins", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "boolean", + "defaultValue": false + }, + { + "name": "terminateOn", + "description": "DTMF input to terminate recording", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string", + "defaultValue": "none", + "allowableValues": { + "valueType": "LIST", + "values": [ + "none", + "any", + "*", + "#" + ] + } + } + ], + "errorResponses": [ + { + "code": 400, + "reason": "Invalid parameters" + }, + { + "code": 404, + "reason": "Channel not found" + }, + { + "code": 409, + "reason": "Channel is not in a Stasis application; the channel is currently bridged with other hcannels; A recording with the same name already exists on the system and can not be overwritten because it is in progress or ifExists=fail" + }, + { + "code": 422, + "reason": "The format specified is unknown on this system" + } + ] + } + ] + }, + { + "path": "/channels/{channelId}/variable", + "description": "Variables on a channel", + "operations": [ + { + "httpMethod": "GET", + "summary": "Get the value of a channel variable or function.", + "nickname": "getChannelVar", + "responseClass": "Variable", + "parameters": [ + { + "name": "channelId", + "description": "Channel's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "variable", + "description": "The channel variable or function to get", + "paramType": "query", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 400, + "reason": "Missing variable parameter." + }, + { + "code": 404, + "reason": "Channel or variable not found" + }, + { + "code": 409, + "reason": "Channel not in a Stasis application" + } + ] + }, + { + "httpMethod": "POST", + "summary": "Set the value of a channel variable or function.", + "nickname": "setChannelVar", + "responseClass": "void", + "parameters": [ + { + "name": "channelId", + "description": "Channel's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "variable", + "description": "The channel variable or function to set", + "paramType": "query", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "value", + "description": "The value to set the variable to", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 400, + "reason": "Missing variable parameter." + }, + { + "code": 404, + "reason": "Channel not found" + }, + { + "code": 409, + "reason": "Channel not in a Stasis application" + } + ] + } + ] + }, + { + "path": "/channels/{channelId}/snoop", + "description": "Snoop (spy/whisper) on a channel", + "operations": [ + { + "httpMethod": "POST", + "summary": "Start snooping.", + "notes": "Snoop (spy/whisper) on a specific channel.", + "nickname": "snoopChannel", + "responseClass": "Channel", + "parameters": [ + { + "name": "channelId", + "description": "Channel's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "spy", + "description": "Direction of audio to spy on", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string", + "defaultValue": "none", + "allowableValues": { + "valueType": "LIST", + "values": [ + "none", + "both", + "out", + "in" + ] + } + }, + { + "name": "whisper", + "description": "Direction of audio to whisper into", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string", + "defaultValue": "none", + "allowableValues": { + "valueType": "LIST", + "values": [ + "none", + "both", + "out", + "in" + ] + } + }, + { + "name": "app", + "description": "Application the snooping channel is placed into", + "paramType": "query", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "appArgs", + "description": "The application arguments to pass to the Stasis application", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "snoopId", + "description": "Unique ID to assign to snooping channel", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 400, + "reason": "Invalid parameters" + }, + { + "code": 404, + "reason": "Channel not found" + } + ] + } + ] + }, + { + "path": "/channels/{channelId}/snoop/{snoopId}", + "description": "Snoop (spy/whisper) on a channel", + "operations": [ + { + "httpMethod": "POST", + "summary": "Start snooping.", + "notes": "Snoop (spy/whisper) on a specific channel.", + "nickname": "snoopChannelWithId", + "responseClass": "Channel", + "parameters": [ + { + "name": "channelId", + "description": "Channel's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "snoopId", + "description": "Unique ID to assign to snooping channel", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "spy", + "description": "Direction of audio to spy on", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string", + "defaultValue": "none", + "allowableValues": { + "valueType": "LIST", + "values": [ + "none", + "both", + "out", + "in" + ] + } + }, + { + "name": "whisper", + "description": "Direction of audio to whisper into", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string", + "defaultValue": "none", + "allowableValues": { + "valueType": "LIST", + "values": [ + "none", + "both", + "out", + "in" + ] + } + }, + { + "name": "app", + "description": "Application the snooping channel is placed into", + "paramType": "query", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "appArgs", + "description": "The application arguments to pass to the Stasis application", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 400, + "reason": "Invalid parameters" + }, + { + "code": 404, + "reason": "Channel not found" + } + ] + } + ] + }, + { + "path": "/channels/{channelId}/rtp_statistics", + "description": "Get RTP statistics information for RTP on a channel", + "operations": [ + { + "httpMethod": "GET", + "summary": "RTP stats on a channel.", + "nickname": "rtpstatistics", + "responseClass": "RTPstat", + "parameters": [ + { + "name": "channelId", + "description": "Channel's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Channel cannot be found." + } + ] + } + ] + } + ], + "models": { + "Dialed": { + "id": "Dialed", + "description": "Dialed channel information.", + "properties": {} + }, + "DialplanCEP": { + "id": "DialplanCEP", + "description": "Dialplan location (context/extension/priority)", + "properties": { + "context": { + "required": true, + "type": "string", + "description": "Context in the dialplan" + }, + "exten": { + "required": true, + "type": "string", + "description": "Extension in the dialplan" + }, + "priority": { + "required": true, + "type": "long", + "description": "Priority in the dialplan" + }, + "app_name": { + "required": true, + "type": "string", + "description": "Name of current dialplan application" + }, + "app_data": { + "required": true, + "type": "string", + "description": "Parameter of current dialplan application" + } + } + }, + "CallerID": { + "id": "CallerID", + "description": "Caller identification", + "properties": { + "name": { + "required": true, + "type": "string" + }, + "number": { + "required": true, + "type": "string" + } + } + }, + "RTPstat": { + "id": "RTPstat", + "description": "A statistics of a RTP.", + "properties": { + "txcount": { + "required": true, + "type": "int", + "description": "Number of packets transmitted." + }, + "rxcount": { + "required": true, + "type": "int", + "description": "Number of packets received." + }, + "txjitter": { + "required": false, + "type": "double", + "description": "Jitter on transmitted packets." + }, + "rxjitter": { + "required": false, + "type": "double", + "description": "Jitter on received packets." + }, + "remote_maxjitter": { + "required": false, + "type": "double", + "description": "Maximum jitter on remote side." + }, + "remote_minjitter": { + "required": false, + "type": "double", + "description": "Minimum jitter on remote side." + }, + "remote_normdevjitter": { + "required": false, + "type": "double", + "description": "Average jitter on remote side." + }, + "remote_stdevjitter": { + "required": false, + "type": "double", + "description": "Standard deviation jitter on remote side." + }, + "local_maxjitter": { + "required": false, + "type": "double", + "description": "Maximum jitter on local side." + }, + "local_minjitter": { + "required": false, + "type": "double", + "description": "Minimum jitter on local side." + }, + "local_normdevjitter": { + "required": false, + "type": "double", + "description": "Average jitter on local side." + }, + "local_stdevjitter": { + "required": false, + "type": "double", + "description": "Standard deviation jitter on local side." + }, + "txploss": { + "required": true, + "type": "int", + "description": "Number of transmitted packets lost." + }, + "rxploss": { + "required": true, + "type": "int", + "description": "Number of received packets lost." + }, + "remote_maxrxploss": { + "required": false, + "type": "double", + "description": "Maximum number of packets lost on remote side." + }, + "remote_minrxploss": { + "required": false, + "type": "double", + "description": "Minimum number of packets lost on remote side." + }, + "remote_normdevrxploss": { + "required": false, + "type": "double", + "description": "Average number of packets lost on remote side." + }, + "remote_stdevrxploss": { + "required": false, + "type": "double", + "description": "Standard deviation packets lost on remote side." + }, + "local_maxrxploss": { + "required": false, + "type": "double", + "description": "Maximum number of packets lost on local side." + }, + "local_minrxploss": { + "required": false, + "type": "double", + "description": "Minimum number of packets lost on local side." + }, + "local_normdevrxploss": { + "required": false, + "type": "double", + "description": "Average number of packets lost on local side." + }, + "local_stdevrxploss": { + "required": false, + "type": "double", + "description": "Standard deviation packets lost on local side." + }, + "rtt": { + "required": false, + "type": "double", + "description": "Total round trip time." + }, + "maxrtt": { + "required": false, + "type": "double", + "description": "Maximum round trip time." + }, + "minrtt": { + "required": false, + "type": "double", + "description": "Minimum round trip time." + }, + "normdevrtt": { + "required": false, + "type": "double", + "description": "Average round trip time." + }, + "stdevrtt": { + "required": false, + "type": "double", + "description": "Standard deviation round trip time." + }, + "local_ssrc": { + "required": true, + "type": "int", + "description": "Our SSRC." + }, + "remote_ssrc": { + "required": true, + "type": "int", + "description": "Their SSRC." + }, + "txoctetcount": { + "required": true, + "type": "int", + "description": "Number of octets transmitted." + }, + "rxoctetcount": { + "required": true, + "type": "int", + "description": "Number of octets received." + }, + "channel_uniqueid": { + "required": true, + "type": "string", + "description": "The Asterisk channel's unique ID that owns this instance." + } + } + }, + "Channel": { + "id": "Channel", + "description": "A specific communication connection between Asterisk and an Endpoint.", + "properties": { + "id": { + "required": true, + "type": "string", + "description": "Unique identifier of the channel.\n\nThis is the same as the Uniqueid field in AMI." + }, + "name": { + "required": true, + "type": "string", + "description": "Name of the channel (i.e. SIP/foo-0000a7e3)" + }, + "state": { + "required": true, + "type": "string", + "allowableValues": { + "valueType": "LIST", + "values": [ + "Down", + "Rsrved", + "OffHook", + "Dialing", + "Ring", + "Ringing", + "Up", + "Busy", + "Dialing Offhook", + "Pre-ring", + "Unknown" + ] + } + }, + "caller": { + "required": true, + "type": "CallerID" + }, + "connected": { + "required": true, + "type": "CallerID" + }, + "accountcode": { + "required": true, + "type": "string" + }, + "dialplan": { + "required": true, + "type": "DialplanCEP", + "description": "Current location in the dialplan" + }, + "creationtime": { + "required": true, + "type": "Date", + "description": "Timestamp when channel was created" + }, + "language": { + "required": true, + "type": "string", + "description": "The default spoken language" + } + } + } + } +} diff --git a/codegen/src/main/resources/codegen-data/ari_1_11_2/deviceStates.json b/codegen/src/main/resources/codegen-data/ari_1_11_2/deviceStates.json new file mode 100644 index 00000000..16d3af75 --- /dev/null +++ b/codegen/src/main/resources/codegen-data/ari_1_11_2/deviceStates.json @@ -0,0 +1,151 @@ +{ + "_copyright": "Copyright (C) 2012 - 2013, Digium, Inc.", + "_author": "Kevin Harwell ", + "_svn_revision": "$Revision$", + "apiVersion": "1.10.0", + "swaggerVersion": "1.1", + "basePath": "http://localhost:8088/ari", + "resourcePath": "/api-docs/deviceStates.{format}", + "apis": [ + { + "path": "/deviceStates", + "description": "Device states", + "operations": [ + { + "httpMethod": "GET", + "summary": "List all ARI controlled device states.", + "nickname": "list", + "responseClass": "List[DeviceState]" + } + ] + }, + { + "path": "/deviceStates/{deviceName}", + "description": "Device state", + "operations": [ + { + "httpMethod": "GET", + "summary": "Retrieve the current state of a device.", + "nickname": "get", + "responseClass": "DeviceState", + "parameters": [ + { + "name": "deviceName", + "description": "Name of the device", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ] + }, + { + "httpMethod": "PUT", + "summary": "Change the state of a device controlled by ARI. (Note - implicitly creates the device state).", + "nickname": "update", + "responseClass": "void", + "parameters": [ + { + "name": "deviceName", + "description": "Name of the device", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "deviceState", + "description": "Device state value", + "paramType": "query", + "required": true, + "allowMultiple": false, + "dataType": "string", + "allowableValues": { + "valueType": "LIST", + "values": [ + "NOT_INUSE", + "INUSE", + "BUSY", + "INVALID", + "UNAVAILABLE", + "RINGING", + "RINGINUSE", + "ONHOLD" + ] + } + + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Device name is missing" + }, + { + "code": 409, + "reason": "Uncontrolled device specified" + } + ] + }, + { + "httpMethod": "DELETE", + "summary": "Destroy a device-state controlled by ARI.", + "nickname": "delete", + "responseClass": "void", + "parameters": [ + { + "name": "deviceName", + "description": "Name of the device", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Device name is missing" + }, + { + "code": 409, + "reason": "Uncontrolled device specified" + } + ] + } + ] + } + ], + "models": { + "DeviceState": { + "id": "DeviceState", + "description": "Represents the state of a device.", + "properties": { + "name": { + "type": "string", + "description": "Name of the device.", + "required": true + }, + "state": { + "type": "string", + "description": "Device's state", + "required": true, + "allowableValues": { + "valueType": "LIST", + "values": [ + "UNKNOWN", + "NOT_INUSE", + "INUSE", + "BUSY", + "INVALID", + "UNAVAILABLE", + "RINGING", + "RINGINUSE", + "ONHOLD" + ] + } + } + } + } + } +} diff --git a/codegen/src/main/resources/codegen-data/ari_1_11_2/endpoints.json b/codegen/src/main/resources/codegen-data/ari_1_11_2/endpoints.json new file mode 100644 index 00000000..65152950 --- /dev/null +++ b/codegen/src/main/resources/codegen-data/ari_1_11_2/endpoints.json @@ -0,0 +1,263 @@ +{ + "_copyright": "Copyright (C) 2012 - 2013, Digium, Inc.", + "_author": "David M. Lee, II ", + "_svn_revision": "$Revision$", + "apiVersion": "1.10.0", + "swaggerVersion": "1.1", + "basePath": "http://localhost:8088/ari", + "resourcePath": "/api-docs/endpoints.{format}", + "apis": [ + { + "path": "/endpoints", + "description": "Asterisk endpoints", + "operations": [ + { + "httpMethod": "GET", + "summary": "List all endpoints.", + "nickname": "list", + "responseClass": "List[Endpoint]" + } + ] + }, + { + "path": "/endpoints/sendMessage", + "description": "Send a message to some technology URI or endpoint.", + "operations": [ + { + "httpMethod": "PUT", + "summary": "Send a message to some technology URI or endpoint.", + "nickname": "sendMessage", + "responseClass": "void", + "parameters": [ + { + "name": "to", + "description": "The endpoint resource or technology specific URI to send the message to. Valid resources are sip, pjsip, and xmpp.", + "paramType": "query", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "from", + "description": "The endpoint resource or technology specific identity to send this message from. Valid resources are sip, pjsip, and xmpp.", + "paramType": "query", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "body", + "description": "The body of the message", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "variables", + "descriptioni": "The \"variables\" key in the body object holds technology specific key/value pairs to append to the message. These can be interpreted and used by the various resource types; for example, pjsip and sip resource types will add the key/value pairs as SIP headers,", + "paramType": "body", + "required": false, + "dataType": "containers", + "allowMultiple": false + } + ], + "errorResponses": [ + { + "code": 400, + "reason": "Invalid parameters for sending a message." + }, + { + "code": 404, + "reason": "Endpoint not found" + } + ] + } + ] + }, + { + "path": "/endpoints/{tech}", + "description": "Asterisk endpoints", + "operations": [ + { + "httpMethod": "GET", + "summary": "List available endoints for a given endpoint technology.", + "nickname": "listByTech", + "responseClass": "List[Endpoint]", + "parameters": [ + { + "name": "tech", + "description": "Technology of the endpoints (sip,iax2,...)", + "paramType": "path", + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Endpoints not found" + } + ] + } + ] + }, + { + "path": "/endpoints/{tech}/{resource}", + "description": "Single endpoint", + "operations": [ + { + "httpMethod": "GET", + "summary": "Details for an endpoint.", + "nickname": "get", + "responseClass": "Endpoint", + "parameters": [ + { + "name": "tech", + "description": "Technology of the endpoint", + "paramType": "path", + "dataType": "string" + }, + { + "name": "resource", + "description": "ID of the endpoint", + "paramType": "path", + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 400, + "reason": "Invalid parameters for sending a message." + }, + { + "code": 404, + "reason": "Endpoints not found" + } + ] + } + ] + }, + { + "path": "/endpoints/{tech}/{resource}/sendMessage", + "description": "Send a message to some endpoint in a technology.", + "operations": [ + { + "httpMethod": "PUT", + "summary": "Send a message to some endpoint in a technology.", + "nickname": "sendMessageToEndpoint", + "responseClass": "void", + "parameters": [ + { + "name": "tech", + "description": "Technology of the endpoint", + "paramType": "path", + "dataType": "string" + }, + { + "name": "resource", + "description": "ID of the endpoint", + "paramType": "path", + "dataType": "string" + }, + { + "name": "from", + "description": "The endpoint resource or technology specific identity to send this message from. Valid resources are sip, pjsip, and xmpp.", + "paramType": "query", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "body", + "description": "The body of the message", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "variables", + "descriptioni": "The \"variables\" key in the body object holds technology specific key/value pairs to append to the message. These can be interpreted and used by the various resource types; for example, pjsip and sip resource types will add the key/value pairs as SIP headers,", + "paramType": "body", + "required": false, + "dataType": "containers", + "allowMultiple": false + } + ], + "errorResponses": [ + { + "code": 400, + "reason": "Invalid parameters for sending a message." + }, + { + "code": 404, + "reason": "Endpoint not found" + } + ] + } + ] + } + ], + "models": { + "Endpoint": { + "id": "Endpoint", + "description": "An external device that may offer/accept calls to/from Asterisk.\n\nUnlike most resources, which have a single unique identifier, an endpoint is uniquely identified by the technology/resource pair.", + "properties": { + "technology": { + "type": "string", + "description": "Technology of the endpoint", + "required": true + }, + "resource": { + "type": "string", + "description": "Identifier of the endpoint, specific to the given technology.", + "required": true + }, + "state": { + "type": "string", + "description": "Endpoint's state", + "required": false, + "allowableValues": { + "valueType": "LIST", + "values": [ + "unknown", + "offline", + "online" + ] + } + }, + "channel_ids": { + "type": "List[string]", + "description": "Id's of channels associated with this endpoint", + "required": true + } + } + }, + "TextMessage": { + "id": "TextMessage", + "description": "A text message.", + "properties": { + "from": { + "type": "string", + "description": "A technology specific URI specifying the source of the message. For sip and pjsip technologies, any SIP URI can be specified. For xmpp, the URI must correspond to the client connection being used to send the message.", + "required": true + }, + "to": { + "type": "string", + "description": "A technology specific URI specifying the destination of the message. Valid technologies include sip, pjsip, and xmp. The destination of a message should be an endpoint.", + "required": true + }, + "body": { + "type": "string", + "description": "The text of the message.", + "required": true + }, + "variables": { + "type": "object", + "description": "Technology specific key/value pairs (JSON object) associated with the message.", + "required": false + } + } + } + } +} diff --git a/codegen/src/main/resources/codegen-data/ari_1_11_2/events.json b/codegen/src/main/resources/codegen-data/ari_1_11_2/events.json new file mode 100644 index 00000000..24d55130 --- /dev/null +++ b/codegen/src/main/resources/codegen-data/ari_1_11_2/events.json @@ -0,0 +1,903 @@ +{ + "_copyright": "Copyright (C) 2012 - 2013, Digium, Inc.", + "_author": "David M. Lee, II ", + "_svn_revision": "$Revision$", + "apiVersion": "1.10.0", + "swaggerVersion": "1.2", + "basePath": "http://localhost:8088/ari", + "resourcePath": "/api-docs/events.{format}", + "apis": [ + { + "path": "/events", + "description": "Events from Asterisk to applications", + "operations": [ + { + "httpMethod": "GET", + "upgrade": "websocket", + "websocketProtocol": "ari", + "summary": "WebSocket connection for events.", + "nickname": "eventWebsocket", + "responseClass": "Message", + "parameters": [ + { + "name": "app", + "description": "Applications to subscribe to.", + "paramType": "query", + "required": true, + "allowMultiple": true, + "dataType": "string" + }, + { + "name": "subscribeAll", + "description": "Subscribe to all Asterisk events. If provided, the applications listed will be subscribed to all events, effectively disabling the application specific subscriptions. Default is 'false'.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "boolean" + } + ] + } + ] + }, + { + "path": "/events/user/{eventName}", + "description": "Stasis application user events", + "operations": [ + { + "httpMethod": "POST", + "summary": "Generate a user event.", + "nickname": "userEvent", + "responseClass": "void", + "parameters": [ + { + "name": "eventName", + "description": "Event name", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "application", + "description": "The name of the application that will receive this event", + "paramType": "query", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "source", + "description": "URI for event source (channel:{channelId}, bridge:{bridgeId}, endpoint:{tech}/{resource}, deviceState:{deviceName}", + "paramType": "query", + "required": false, + "allowMultiple": true, + "dataType": "string" + }, + { + "name": "variables", + "description": "The \"variables\" key in the body object holds custom key/value pairs to add to the user event. Ex. { \"variables\": { \"key\": \"value\" } }", + "paramType": "body", + "required": false, + "allowMultiple": false, + "dataType": "containers" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Application does not exist." + }, + { + "code": 422, + "reason": "Event source not found." + }, + { + "code": 400, + "reason": "Invalid even tsource URI or userevent data." + } + ] + } + ] + } + ], + "models": { + "Message": { + "id": "Message", + "description": "Base type for errors and events", + "discriminator": "type", + "properties": { + "type": { + "type": "string", + "required": true, + "description": "Indicates the type of this message." + }, + "asterisk_id": { + "type": "string", + "required": false, + "description": "The unique ID for the Asterisk instance that raised this event." + } + }, + "subTypes": [ + "MissingParams", + "Event" + ] + }, + "MissingParams": { + "id": "MissingParams", + "description": "Error event sent when required params are missing.", + "properties": { + "params": { + "required": true, + "type": "List[string]", + "description": "A list of the missing parameters" + } + } + }, + "Event": { + "id": "Event", + "description": "Base type for asynchronous events from Asterisk.", + "properties": { + "application": { + "type": "string", + "description": "Name of the application receiving the event.", + "required": true + }, + "timestamp": { + "type": "Date", + "description": "Time at which this event was created.", + "required": true + } + }, + "subTypes": [ + "DeviceStateChanged", + "PlaybackStarted", + "PlaybackFinished", + "RecordingStarted", + "RecordingFinished", + "RecordingFailed", + "ApplicationMoveFailed", + "ApplicationReplaced", + "BridgeCreated", + "BridgeDestroyed", + "BridgeMerged", + "BridgeBlindTransfer", + "BridgeAttendedTransfer", + "BridgeVideoSourceChanged", + "ChannelCreated", + "ChannelDestroyed", + "ChannelEnteredBridge", + "ChannelLeftBridge", + "ChannelStateChange", + "ChannelDtmfReceived", + "ChannelDialplan", + "ChannelCallerId", + "ChannelUserevent", + "ChannelHangupRequest", + "ChannelVarset", + "ChannelTalkingStarted", + "ChannelTalkingFinished", + "ChannelHold", + "ChannelUnhold", + "ContactStatusChange", + "EndpointStateChange", + "Dial", + "StasisEnd", + "StasisStart", + "TextMessageReceived", + "ChannelConnectedLine", + "PeerStatusChange" + ] + }, + "ContactInfo": { + "id": "ContactInfo", + "description": "Detailed information about a contact on an endpoint.", + "properties": { + "uri": { + "type": "string", + "description": "The location of the contact.", + "required": true + }, + "contact_status": { + "type": "string", + "description": "The current status of the contact.", + "required": true, + "allowableValues": { + "valueType": "LIST", + "values": [ + "Unreachable", + "Reachable", + "Unknown", + "Created", + "Removed" + ] + } + }, + "aor": { + "type": "string", + "description": "The Address of Record this contact belongs to.", + "required": true + }, + "roundtrip_usec": { + "type": "string", + "description": "Current round trip time, in microseconds, for the contact.", + "required": false + } + } + }, + "Peer": { + "id": "Peer", + "description": "Detailed information about a remote peer that communicates with Asterisk.", + "properties": { + "peer_status": { + "type": "string", + "description": "The current state of the peer. Note that the values of the status are dependent on the underlying peer technology.", + "required": true + }, + "cause": { + "type": "string", + "description": "An optional reason associated with the change in peer_status.", + "required": false + }, + "address": { + "type": "string", + "description": "The IP address of the peer.", + "required": false + }, + "port": { + "type": "string", + "description": "The port of the peer.", + "required": false + }, + "time": { + "type": "string", + "description": "The last known time the peer was contacted.", + "required": false + } + } + }, + "DeviceStateChanged": { + "id": "DeviceStateChanged", + "description": "Notification that a device state has changed.", + "properties": { + "device_state": { + "type": "DeviceState", + "description": "Device state object", + "required": true + } + } + }, + "PlaybackStarted": { + "id": "PlaybackStarted", + "description": "Event showing the start of a media playback operation.", + "properties": { + "playback": { + "type": "Playback", + "description": "Playback control object", + "required": true + } + } + }, + "PlaybackFinished": { + "id": "PlaybackFinished", + "description": "Event showing the completion of a media playback operation.", + "properties": { + "playback": { + "type": "Playback", + "description": "Playback control object", + "required": true + } + } + }, + "RecordingStarted": { + "id": "RecordingStarted", + "description": "Event showing the start of a recording operation.", + "properties": { + "recording": { + "type": "LiveRecording", + "description": "Recording control object", + "required": true + } + } + }, + "RecordingFinished": { + "id": "RecordingFinished", + "description": "Event showing the completion of a recording operation.", + "properties": { + "recording": { + "type": "LiveRecording", + "description": "Recording control object", + "required": true + } + } + }, + "RecordingFailed": { + "id": "RecordingFailed", + "description": "Event showing failure of a recording operation.", + "properties": { + "recording": { + "type": "LiveRecording", + "description": "Recording control object", + "required": true + } + } + }, + "ApplicationMoveFailed": { + "id": "ApplicationMoveFailed", + "description": "Notification that trying to move a channel to another Stasis application failed.", + "properties": { + "channel": { + "required": true, + "type": "Channel" + }, + "destination": { + "required": true, + "type": "string" + }, + "args": { + "required": true, + "type": "List[string]", + "description": "Arguments to the application" + } + } + }, + "ApplicationReplaced": { + "id": "ApplicationReplaced", + "description": "Notification that another WebSocket has taken over for an application.\n\nAn application may only be subscribed to by a single WebSocket at a time. If multiple WebSockets attempt to subscribe to the same application, the newer WebSocket wins, and the older one receives this event.", + "properties": {} + }, + "BridgeCreated": { + "id": "BridgeCreated", + "description": "Notification that a bridge has been created.", + "properties": { + "bridge": { + "required": true, + "type": "Bridge" + } + } + }, + "BridgeDestroyed": { + "id": "BridgeDestroyed", + "description": "Notification that a bridge has been destroyed.", + "properties": { + "bridge": { + "required": true, + "type": "Bridge" + } + } + }, + "BridgeMerged": { + "id": "BridgeMerged", + "description": "Notification that one bridge has merged into another.", + "properties": { + "bridge": { + "required": true, + "type": "Bridge" + }, + "bridge_from": { + "required": true, + "type": "Bridge" + } + } + }, + "BridgeVideoSourceChanged": { + "id": "BridgeVideoSourceChanged", + "description": "Notification that the source of video in a bridge has changed.", + "properties": { + "bridge": { + "required": true, + "type": "Bridge" + }, + "old_video_source_id": { + "required": false, + "type": "string" + } + } + }, + "BridgeBlindTransfer": { + "id": "BridgeBlindTransfer", + "description": "Notification that a blind transfer has occurred.", + "properties": { + "channel": { + "description": "The channel performing the blind transfer", + "required": true, + "type": "Channel" + }, + "replace_channel": { + "description": "The channel that is replacing transferer when the transferee(s) can not be transferred directly", + "required": false, + "type": "Channel" + }, + "transferee": { + "description": "The channel that is being transferred", + "required": false, + "type": "Channel" + }, + "exten": { + "description": "The extension transferred to", + "required": true, + "type": "string" + }, + "context": { + "description": "The context transferred to", + "required": true, + "type": "string" + }, + "result": { + "description": "The result of the transfer attempt", + "required": true, + "type": "string" + }, + "is_external": { + "description": "Whether the transfer was externally initiated or not", + "required": true, + "type": "boolean" + }, + "bridge": { + "description": "The bridge being transferred", + "type": "Bridge" + } + } + }, + "BridgeAttendedTransfer": { + "id": "BridgeAttendedTransfer", + "description": "Notification that an attended transfer has occurred.", + "properties": { + "transferer_first_leg": { + "description": "First leg of the transferer", + "required": true, + "type": "Channel" + }, + "transferer_second_leg": { + "description": "Second leg of the transferer", + "required": true, + "type": "Channel" + }, + "replace_channel": { + "description": "The channel that is replacing transferer_first_leg in the swap", + "required": false, + "type": "Channel" + }, + "transferee": { + "description": "The channel that is being transferred", + "required": false, + "type": "Channel" + }, + "transfer_target": { + "description": "The channel that is being transferred to", + "required": false, + "type": "Channel" + }, + "result": { + "description": "The result of the transfer attempt", + "required": true, + "type": "string" + }, + "is_external": { + "description": "Whether the transfer was externally initiated or not", + "required": true, + "type": "boolean" + }, + "transferer_first_leg_bridge": { + "description": "Bridge the transferer first leg is in", + "type": "Bridge" + }, + "transferer_second_leg_bridge": { + "description": "Bridge the transferer second leg is in", + "type": "Bridge" + }, + "destination_type": { + "description": "How the transfer was accomplished", + "required": true, + "type": "string" + }, + "destination_bridge": { + "description": "Bridge that survived the merge result", + "type": "string" + }, + "destination_application": { + "description": "Application that has been transferred into", + "type": "string" + }, + "destination_link_first_leg": { + "description": "First leg of a link transfer result", + "type": "Channel" + }, + "destination_link_second_leg": { + "description": "Second leg of a link transfer result", + "type": "Channel" + }, + "destination_threeway_channel": { + "description": "Transferer channel that survived the threeway result", + "type": "Channel" + }, + "destination_threeway_bridge": { + "description": "Bridge that survived the threeway result", + "type": "Bridge" + } + } + }, + "ChannelCreated": { + "id": "ChannelCreated", + "description": "Notification that a channel has been created.", + "properties": { + "channel": { + "required": true, + "type": "Channel" + } + } + }, + "ChannelDestroyed": { + "id": "ChannelDestroyed", + "description": "Notification that a channel has been destroyed.", + "properties": { + "cause": { + "required": true, + "description": "Integer representation of the cause of the hangup", + "type": "int" + }, + "cause_txt": { + "required": true, + "description": "Text representation of the cause of the hangup", + "type": "string" + }, + "channel": { + "required": true, + "type": "Channel" + } + } + }, + "ChannelEnteredBridge": { + "id": "ChannelEnteredBridge", + "description": "Notification that a channel has entered a bridge.", + "properties": { + "bridge": { + "required": true, + "type": "Bridge" + }, + "channel": { + "type": "Channel" + } + } + }, + "ChannelLeftBridge": { + "id": "ChannelLeftBridge", + "description": "Notification that a channel has left a bridge.", + "properties": { + "bridge": { + "required": true, + "type": "Bridge" + }, + "channel": { + "required": true, + "type": "Channel" + } + } + }, + "ChannelStateChange": { + "id": "ChannelStateChange", + "description": "Notification of a channel's state change.", + "properties": { + "channel": { + "required": true, + "type": "Channel" + } + } + }, + "ChannelDtmfReceived": { + "id": "ChannelDtmfReceived", + "description": "DTMF received on a channel.\n\nThis event is sent when the DTMF ends. There is no notification about the start of DTMF", + "properties": { + "digit": { + "required": true, + "type": "string", + "description": "DTMF digit received (0-9, A-E, # or *)" + }, + "duration_ms": { + "required": true, + "type": "int", + "description": "Number of milliseconds DTMF was received" + }, + "channel": { + "required": true, + "type": "Channel", + "description": "The channel on which DTMF was received" + } + } + }, + "ChannelDialplan": { + "id": "ChannelDialplan", + "description": "Channel changed location in the dialplan.", + "properties": { + "channel": { + "required": true, + "type": "Channel", + "description": "The channel that changed dialplan location." + }, + "dialplan_app": { + "required": true, + "type": "string", + "description": "The application about to be executed." + }, + "dialplan_app_data": { + "required": true, + "type": "string", + "description": "The data to be passed to the application." + } + } + }, + "ChannelCallerId": { + "id": "ChannelCallerId", + "description": "Channel changed Caller ID.", + "properties": { + "caller_presentation": { + "required": true, + "type": "int", + "description": "The integer representation of the Caller Presentation value." + }, + "caller_presentation_txt": { + "required": true, + "type": "string", + "description": "The text representation of the Caller Presentation value." + }, + "channel": { + "required": true, + "type": "Channel", + "description": "The channel that changed Caller ID." + } + } + }, + "ChannelUserevent": { + "id": "ChannelUserevent", + "description": "User-generated event with additional user-defined fields in the object.", + "properties": { + "eventname": { + "required": true, + "type": "string", + "description": "The name of the user event." + }, + "channel": { + "required": false, + "type": "Channel", + "description": "A channel that is signaled with the user event." + }, + "bridge": { + "required": false, + "type": "Bridge", + "description": "A bridge that is signaled with the user event." + }, + "endpoint": { + "required": false, + "type": "Endpoint", + "description": "A endpoint that is signaled with the user event." + }, + "userevent": { + "required": true, + "type": "object", + "description": "Custom Userevent data" + } + } + }, + "ChannelHangupRequest": { + "id": "ChannelHangupRequest", + "description": "A hangup was requested on the channel.", + "properties": { + "cause": { + "type": "int", + "description": "Integer representation of the cause of the hangup." + }, + "soft": { + "type": "boolean", + "description": "Whether the hangup request was a soft hangup request." + }, + "channel": { + "required": true, + "type": "Channel", + "description": "The channel on which the hangup was requested." + } + } + }, + "ChannelVarset": { + "id": "ChannelVarset", + "description": "Channel variable changed.", + "properties": { + "variable": { + "required": true, + "type": "string", + "description": "The variable that changed." + }, + "value": { + "required": true, + "type": "string", + "description": "The new value of the variable." + }, + "channel": { + "required": false, + "type": "Channel", + "description": "The channel on which the variable was set.\n\nIf missing, the variable is a global variable." + } + } + }, + "ChannelHold": { + "id": "ChannelHold", + "description": "A channel initiated a media hold.", + "properties": { + "channel": { + "required": true, + "type": "Channel", + "description": "The channel that initiated the hold event." + }, + "musicclass": { + "required": false, + "type": "string", + "description": "The music on hold class that the initiator requested." + } + } + }, + "ChannelUnhold": { + "id": "ChannelUnhold", + "description": "A channel initiated a media unhold.", + "properties": { + "channel": { + "required": true, + "type": "Channel", + "description": "The channel that initiated the unhold event." + } + } + }, + "ChannelTalkingStarted": { + "id": "ChannelTalkingStarted", + "description": "Talking was detected on the channel.", + "properties": { + "channel": { + "required": true, + "type": "Channel", + "description": "The channel on which talking started." + } + } + }, + "ChannelTalkingFinished": { + "id": "ChannelTalkingFinished", + "description": "Talking is no longer detected on the channel.", + "properties": { + "channel": { + "required": true, + "type": "Channel", + "description": "The channel on which talking completed." + }, + "duration": { + "required": true, + "type": "int", + "description": "The length of time, in milliseconds, that talking was detected on the channel" + } + } + }, + "ContactStatusChange": { + "id": "ContactStatusChange", + "description": "The state of a contact on an endpoint has changed.", + "properties": { + "endpoint": { + "required": true, + "type": "Endpoint" + }, + "contact_info": { + "required": true, + "type": "ContactInfo" + } + } + }, + "PeerStatusChange": { + "id": "PeerStatusChange", + "description": "The state of a peer associated with an endpoint has changed.", + "properties": { + "endpoint": { + "required": true, + "type": "Endpoint" + }, + "peer": { + "required": true, + "type": "Peer" + } + } + }, + "EndpointStateChange": { + "id": "EndpointStateChange", + "description": "Endpoint state changed.", + "properties": { + "endpoint": { + "required": true, + "type": "Endpoint" + } + } + }, + "Dial": { + "id": "Dial", + "description": "Dialing state has changed.", + "properties": { + "caller": { + "required": false, + "type": "Channel", + "description": "The calling channel." + }, + "peer": { + "required": true, + "type": "Channel", + "description": "The dialed channel." + }, + "forward": { + "required": false, + "type": "string", + "description": "Forwarding target requested by the original dialed channel." + }, + "forwarded": { + "required": false, + "type": "Channel", + "description": "Channel that the caller has been forwarded to." + }, + "dialstring": { + "required": false, + "type": "string", + "description": "The dial string for calling the peer channel." + }, + "dialstatus": { + "required": true, + "type": "string", + "description": "Current status of the dialing attempt to the peer." + } + } + }, + "StasisEnd": { + "id": "StasisEnd", + "description": "Notification that a channel has left a Stasis application.", + "properties": { + "channel": { + "required": true, + "type": "Channel" + } + } + }, + "StasisStart": { + "id": "StasisStart", + "description": "Notification that a channel has entered a Stasis application.", + "properties": { + "args": { + "required": true, + "type": "List[string]", + "description": "Arguments to the application" + }, + "channel": { + "required": true, + "type": "Channel" + }, + "replace_channel": { + "required": false, + "type": "Channel" + } + } + }, + "TextMessageReceived": { + "id": "TextMessageReceived", + "description": "A text message was received from an endpoint.", + "properties": { + "message": { + "required": true, + "type": "TextMessage" + }, + "endpoint": { + "required": false, + "type": "Endpoint" + } + } + }, + "ChannelConnectedLine": { + "id": "ChannelConnectedLine", + "description": "Channel changed Connected Line.", + "properties": { + "channel": { + "required": true, + "type": "Channel", + "description": "The channel whose connected line has changed." + } + } + } + } +} diff --git a/codegen/src/main/resources/codegen-data/ari_1_11_2/mailboxes.json b/codegen/src/main/resources/codegen-data/ari_1_11_2/mailboxes.json new file mode 100644 index 00000000..999cd8db --- /dev/null +++ b/codegen/src/main/resources/codegen-data/ari_1_11_2/mailboxes.json @@ -0,0 +1,134 @@ +{ + "_copyright": "Copyright (C) 2013, Digium, Inc.", + "_author": "Jonathan Rose ", + "_svn_revision": "$Revision$", + "apiVersion": "1.10.0", + "swaggerVersion": "1.1", + "basePath": "http://localhost:8088/ari", + "resourcePath": "/api-docs/mailboxes.{format}", + "apis": [ + { + "path": "/mailboxes", + "description": "Mailboxes", + "operations": [ + { + "httpMethod": "GET", + "summary": "List all mailboxes.", + "nickname": "list", + "responseClass": "List[Mailbox]" + } + ] + }, + { + "path": "/mailboxes/{mailboxName}", + "description": "Mailbox state", + "operations": [ + { + "httpMethod": "GET", + "summary": "Retrieve the current state of a mailbox.", + "nickname": "get", + "responseClass": "Mailbox", + "parameters": [ + { + "name": "mailboxName", + "description": "Name of the mailbox", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Mailbox not found" + } + ] + }, + { + "httpMethod": "PUT", + "summary": "Change the state of a mailbox. (Note - implicitly creates the mailbox).", + "nickname": "update", + "responseClass": "void", + "parameters": [ + { + "name": "mailboxName", + "description": "Name of the mailbox", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "oldMessages", + "description": "Count of old messages in the mailbox", + "paramType": "query", + "required": true, + "allowMultiple": false, + "dataType": "int" + }, + { + "name": "newMessages", + "description": "Count of new messages in the mailbox", + "paramType": "query", + "required": true, + "allowMultiple": false, + "dataType": "int" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Mailbox not found" + } + ] + }, + { + "httpMethod": "DELETE", + "summary": "Destroy a mailbox.", + "nickname": "delete", + "responseClass": "void", + "parameters": [ + { + "name": "mailboxName", + "description": "Name of the mailbox", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Mailbox not found" + } + ] + } + ] + } + ], + "models": { + "Mailbox": { + "id": "Mailbox", + "description": "Represents the state of a mailbox.", + "properties": { + "name": { + "type": "string", + "description": "Name of the mailbox.", + "required": true + }, + "old_messages": { + "type": "int", + "description": "Count of old messages in the mailbox.", + "required": true + }, + "new_messages": { + "type": "int", + "description": "Count of new messages in the mailbox.", + "required": true + } + } + } + } +} diff --git a/codegen/src/main/resources/codegen-data/ari_1_11_2/playbacks.json b/codegen/src/main/resources/codegen-data/ari_1_11_2/playbacks.json new file mode 100644 index 00000000..1a124325 --- /dev/null +++ b/codegen/src/main/resources/codegen-data/ari_1_11_2/playbacks.json @@ -0,0 +1,155 @@ +{ + "_copyright": "Copyright (C) 2012 - 2013, Digium, Inc.", + "_author": "David M. Lee, II ", + "_svn_revision": "$Revision$", + "apiVersion": "1.10.0", + "swaggerVersion": "1.1", + "basePath": "http://localhost:8088/ari", + "resourcePath": "/api-docs/playbacks.{format}", + "apis": [ + { + "path": "/playbacks/{playbackId}", + "description": "Control object for a playback operation.", + "operations": [ + { + "httpMethod": "GET", + "summary": "Get a playback's details.", + "nickname": "get", + "responseClass": "Playback", + "parameters": [ + { + "name": "playbackId", + "description": "Playback's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "The playback cannot be found" + } + ] + }, + { + "httpMethod": "DELETE", + "summary": "Stop a playback.", + "nickname": "stop", + "responseClass": "void", + "parameters": [ + { + "name": "playbackId", + "description": "Playback's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "The playback cannot be found" + } + ] + } + ] + }, + { + "path": "/playbacks/{playbackId}/control", + "description": "Control object for a playback operation.", + "operations": [ + { + "httpMethod": "POST", + "summary": "Control a playback.", + "nickname": "control", + "responseClass": "void", + "parameters": [ + { + "name": "playbackId", + "description": "Playback's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "operation", + "description": "Operation to perform on the playback.", + "paramType": "query", + "required": true, + "allowMultiple": false, + "dataType": "string", + "allowableValues": { + "valueType": "LIST", + "values": [ + "restart", + "pause", + "unpause", + "reverse", + "forward" + ] + } + } + ], + "errorResponses": [ + { + "code": 400, + "reason": "The provided operation parameter was invalid" + }, + { + "code": 404, + "reason": "The playback cannot be found" + }, + { + "code": 409, + "reason": "The operation cannot be performed in the playback's current state" + } +] + } + ] + } + ], + "models": { + "Playback": { + "id": "Playback", + "description": "Object representing the playback of media to a channel", + "properties": { + "id": { + "type": "string", + "description": "ID for this playback operation", + "required": true + }, + "media_uri": { + "type": "string", + "description": "URI for the media to play back.", + "required": true + }, + "target_uri": { + "type": "string", + "description": "URI for the channel or bridge to play the media on", + "required": true + }, + "language": { + "type": "string", + "description": "For media types that support multiple languages, the language requested for playback." + }, + "state": { + "type": "string", + "description": "Current state of the playback operation.", + "required": true, + "allowableValues": { + "valueType": "LIST", + "values": [ + "queued", + "playing", + "complete" + ] + } + } + } + } + } +} diff --git a/codegen/src/main/resources/codegen-data/ari_1_11_2/recordings.json b/codegen/src/main/resources/codegen-data/ari_1_11_2/recordings.json new file mode 100644 index 00000000..48499bfa --- /dev/null +++ b/codegen/src/main/resources/codegen-data/ari_1_11_2/recordings.json @@ -0,0 +1,378 @@ +{ + "_copyright": "Copyright (C) 2012 - 2013, Digium, Inc.", + "_author": "David M. Lee, II ", + "_svn_revision": "$Revision$", + "apiVersion": "1.10.0", + "swaggerVersion": "1.1", + "basePath": "http://localhost:8088/ari", + "resourcePath": "/api-docs/recordings.{format}", + "apis": [ + { + "path": "/recordings/stored", + "description": "Recordings", + "operations": [ + { + "httpMethod": "GET", + "summary": "List recordings that are complete.", + "nickname": "listStored", + "responseClass": "List[StoredRecording]" + } + ] + }, + { + "path": "/recordings/stored/{recordingName}", + "description": "Individual recording", + "operations": [ + { + "httpMethod": "GET", + "summary": "Get a stored recording's details.", + "nickname": "getStored", + "responseClass": "StoredRecording", + "parameters": [ + { + "name": "recordingName", + "description": "The name of the recording", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Recording not found" + } + ] + }, + { + "httpMethod": "DELETE", + "summary": "Delete a stored recording.", + "nickname": "deleteStored", + "responseClass": "void", + "parameters": [ + { + "name": "recordingName", + "description": "The name of the recording", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Recording not found" + } + ] + } + ] + }, + { + "path": "/recordings/stored/{recordingName}/copy", + "description": "Copy an individual recording", + "operations": [ + { + "httpMethod": "POST", + "summary": "Copy a stored recording.", + "nickname": "copyStored", + "responseClass": "StoredRecording", + "parameters": [ + { + "name": "recordingName", + "description": "The name of the recording to copy", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "destinationRecordingName", + "description": "The destination name of the recording", + "paramType": "query", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Recording not found" + }, + { + "code": 409, + "reason": "A recording with the same name already exists on the system" + } + ] + } + ] + }, + { + "path": "/recordings/live/{recordingName}", + "description": "A recording that is in progress", + "operations": [ + { + "httpMethod": "GET", + "summary": "List live recordings.", + "nickname": "getLive", + "responseClass": "LiveRecording", + "parameters": [ + { + "name": "recordingName", + "description": "The name of the recording", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Recording not found" + } + ] + }, + { + "httpMethod": "DELETE", + "summary": "Stop a live recording and discard it.", + "nickname": "cancel", + "responseClass": "void", + "parameters": [ + { + "name": "recordingName", + "description": "The name of the recording", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Recording not found" + } + ] + } + ] + }, + { + "path": "/recordings/live/{recordingName}/stop", + "operations": [ + { + "httpMethod": "POST", + "summary": "Stop a live recording and store it.", + "nickname": "stop", + "responseClass": "void", + "parameters": [ + { + "name": "recordingName", + "description": "The name of the recording", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Recording not found" + } + ] + } + ] + }, + { + "path": "/recordings/live/{recordingName}/pause", + "operations": [ + { + "httpMethod": "POST", + "summary": "Pause a live recording.", + "notes": "Pausing a recording suspends silence detection, which will be restarted when the recording is unpaused. Paused time is not included in the accounting for maxDurationSeconds.", + "nickname": "pause", + "responseClass": "void", + "parameters": [ + { + "name": "recordingName", + "description": "The name of the recording", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Recording not found" + }, + { + "code": 409, + "reason": "Recording not in session" + } + ] + }, + { + "httpMethod": "DELETE", + "summary": "Unpause a live recording.", + "nickname": "unpause", + "responseClass": "void", + "parameters": [ + { + "name": "recordingName", + "description": "The name of the recording", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Recording not found" + }, + { + "code": 409, + "reason": "Recording not in session" + } + ] + } + ] + }, + { + "path": "/recordings/live/{recordingName}/mute", + "operations": [ + { + "httpMethod": "POST", + "summary": "Mute a live recording.", + "notes": "Muting a recording suspends silence detection, which will be restarted when the recording is unmuted.", + "nickname": "mute", + "responseClass": "void", + "parameters": [ + { + "name": "recordingName", + "description": "The name of the recording", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Recording not found" + }, + { + "code": 409, + "reason": "Recording not in session" + } + ] + }, + { + "httpMethod": "DELETE", + "summary": "Unmute a live recording.", + "nickname": "unmute", + "responseClass": "void", + "parameters": [ + { + "name": "recordingName", + "description": "The name of the recording", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Recording not found" + }, + { + "code": 409, + "reason": "Recording not in session" + } + ] + } + ] + } + ], + "models": { + "StoredRecording": { + "id": "StoredRecording", + "description": "A past recording that may be played back.", + "properties": { + "name": { + "required": true, + "type": "string" + }, + "format": { + "required": true, + "type": "string" + } + } + }, + "LiveRecording": { + "id": "LiveRecording", + "description": "A recording that is in progress", + "properties": { + "name": { + "required": true, + "type": "string", + "description": "Base name for the recording" + }, + "format": { + "required": true, + "type": "string", + "description": "Recording format (wav, gsm, etc.)" + }, + "target_uri": { + "required": true, + "type": "string", + "description": "URI for the channel or bridge being recorded" + }, + "state": { + "required": true, + "type": "string", + "allowableValues": { + "valueType": "LIST", + "values": [ + "queued", + "recording", + "paused", + "done", + "failed", + "canceled" + ] + } + }, + "duration": { + "required": false, + "type": "int", + "description": "Duration in seconds of the recording" + }, + "talking_duration": { + "required": false, + "type": "int", + "description": "Duration of talking, in seconds, detected in the recording. This is only available if the recording was initiated with a non-zero maxSilenceSeconds." + }, + "silence_duration": { + "required": false, + "type": "int", + "description": "Duration of silence, in seconds, detected in the recording. This is only available if the recording was initiated with a non-zero maxSilenceSeconds." + }, + "cause": { + "required": false, + "type": "string", + "description": "Cause for recording failure if failed" + } + } + } + } +} diff --git a/codegen/src/main/resources/codegen-data/ari_1_11_2/sounds.json b/codegen/src/main/resources/codegen-data/ari_1_11_2/sounds.json new file mode 100644 index 00000000..4a8eb2cc --- /dev/null +++ b/codegen/src/main/resources/codegen-data/ari_1_11_2/sounds.json @@ -0,0 +1,99 @@ +{ + "_copyright": "Copyright (C) 2012 - 2013, Digium, Inc.", + "_author": "David M. Lee, II ", + "_svn_revision": "$Revision$", + "apiVersion": "1.10.0", + "swaggerVersion": "1.1", + "basePath": "http://localhost:8088/ari", + "resourcePath": "/api-docs/sounds.{format}", + "apis": [ + { + "path": "/sounds", + "description": "Sounds", + "operations": [ + { + "httpMethod": "GET", + "summary": "List all sounds.", + "nickname": "list", + "responseClass": "List[Sound]", + "parameters": [ + { + "name": "lang", + "description": "Lookup sound for a specific language.", + "paramType": "query", + "dataType": "string", + "required": false + }, + { + "name": "format", + "description": "Lookup sound in a specific format.", + "paramType": "query", + "dataType": "string", + "required": false, + "__note": "core show translation can show translation paths between formats, along with relative costs. so this could be just installed format, or we could follow that for transcoded formats." + } + ] + } + ] + }, + { + "path": "/sounds/{soundId}", + "description": "Individual sound", + "operations": [ + { + "httpMethod": "GET", + "summary": "Get a sound's details.", + "nickname": "get", + "responseClass": "Sound", + "parameters": [ + { + "name": "soundId", + "description": "Sound's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ] + } + ] + } + ], + "models": { + "FormatLangPair": { + "id": "FormatLangPair", + "description": "Identifies the format and language of a sound file", + "properties": { + "language": { + "required": true, + "type": "string" + }, + "format": { + "required": true, + "type": "string" + } + } + }, + "Sound": { + "id": "Sound", + "description": "A media file that may be played back.", + "properties": { + "id": { + "required": true, + "description": "Sound's identifier.", + "type": "string" + }, + "text": { + "required": false, + "description": "Text description of the sound, usually the words spoken.", + "type": "string" + }, + "formats": { + "required": true, + "description": "The formats and languages in which this sound is available.", + "type": "List[FormatLangPair]" + } + } + } + } +} diff --git a/codegen/src/main/resources/codegen-data/ari_4_1_2/applications.json b/codegen/src/main/resources/codegen-data/ari_4_1_2/applications.json new file mode 100644 index 00000000..09c5cd5c --- /dev/null +++ b/codegen/src/main/resources/codegen-data/ari_4_1_2/applications.json @@ -0,0 +1,223 @@ +{ + "_copyright": "Copyright (C) 2013, Digium, Inc.", + "_author": "David M. Lee, II ", + "_svn_revision": "$Revision$", + "apiVersion": "2.0.0", + "swaggerVersion": "1.1", + "basePath": "http://localhost:8088/ari", + "resourcePath": "/api-docs/applications.{format}", + "apis": [ + { + "path": "/applications", + "description": "Stasis applications", + "operations": [ + { + "httpMethod": "GET", + "summary": "List all applications.", + "nickname": "list", + "responseClass": "List[Application]" + } + ] + }, + { + "path": "/applications/{applicationName}", + "description": "Stasis application", + "operations": [ + { + "httpMethod": "GET", + "summary": "Get details of an application.", + "nickname": "get", + "responseClass": "Application", + "parameters": [ + { + "name": "applicationName", + "description": "Application's name", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Application does not exist." + } + ] + } + ] + }, + { + "path": "/applications/{applicationName}/subscription", + "description": "Stasis application", + "operations": [ + { + "httpMethod": "POST", + "summary": "Subscribe an application to a event source.", + "notes": "Returns the state of the application after the subscriptions have changed", + "nickname": "subscribe", + "responseClass": "Application", + "parameters": [ + { + "name": "applicationName", + "description": "Application's name", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "eventSource", + "description": "URI for event source (channel:{channelId}, bridge:{bridgeId}, endpoint:{tech}[/{resource}], deviceState:{deviceName}", + "paramType": "query", + "required": true, + "allowMultiple": true, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 400, + "reason": "Missing parameter." + }, + { + "code": 404, + "reason": "Application does not exist." + }, + { + "code": 422, + "reason": "Event source does not exist." + } + ] + }, + { + "httpMethod": "DELETE", + "summary": "Unsubscribe an application from an event source.", + "notes": "Returns the state of the application after the subscriptions have changed", + "nickname": "unsubscribe", + "responseClass": "Application", + "parameters": [ + { + "name": "applicationName", + "description": "Application's name", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "eventSource", + "description": "URI for event source (channel:{channelId}, bridge:{bridgeId}, endpoint:{tech}[/{resource}], deviceState:{deviceName}", + "paramType": "query", + "required": true, + "allowMultiple": true, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 400, + "reason": "Missing parameter; event source scheme not recognized." + }, + { + "code": 404, + "reason": "Application does not exist." + }, + { + "code": 409, + "reason": "Application not subscribed to event source." + }, + { + "code": 422, + "reason": "Event source does not exist." + } + ] + } + ] + }, + { + "path": "/applications/{applicationName}/eventFilter", + "description": "Stasis application", + "operations": [ + { + "httpMethod": "PUT", + "summary": "Filter application events types.", + "notes": "Allowed and/or disallowed event type filtering can be done. The body (parameter) should specify a JSON key/value object that describes the type of event filtering needed. One, or both of the following keys can be designated:

\"allowed\" - Specifies an allowed list of event types
\"disallowed\" - Specifies a disallowed list of event types

Further, each of those key's value should be a JSON array that holds zero, or more JSON key/value objects. Each of these objects must contain the following key with an associated value:

\"type\" - The type name of the event to filter

The value must be the string name (case sensitive) of the event type that needs filtering. For example:

{ \"allowed\": [ { \"type\": \"StasisStart\" }, { \"type\": \"StasisEnd\" } ] }

As this specifies only an allowed list, then only those two event type messages are sent to the application. No other event messages are sent.

The following rules apply:

* If the body is empty, both the allowed and disallowed filters are set empty.
* If both list types are given then both are set to their respective values (note, specifying an empty array for a given type sets that type to empty).
* If only one list type is given then only that type is set. The other type is not updated.
* An empty \"allowed\" list means all events are allowed.
* An empty \"disallowed\" list means no events are disallowed.
* Disallowed events take precedence over allowed events if the event type is specified in both lists.", + "nickname": "filter", + "responseClass": "Application", + "parameters": [ + { + "name": "applicationName", + "description": "Application's name", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "filter", + "description": "Specify which event types to allow/disallow", + "paramType": "body", + "required": false, + "dataType": "object", + "allowMultiple": false + } + ], + "errorResponses": [ + { + "code": 400, + "reason": "Bad request." + }, + { + "code": 404, + "reason": "Application does not exist." + } + ] + } + ] + } + ], + "models": { + "Application": { + "id": "Application", + "description": "Details of a Stasis application", + "properties": { + "name": { + "type": "string", + "description": "Name of this application", + "required": true + }, + "channel_ids": { + "type": "List[string]", + "description": "Id's for channels subscribed to.", + "required": true + }, + "bridge_ids": { + "type": "List[string]", + "description": "Id's for bridges subscribed to.", + "required": true + }, + "endpoint_ids": { + "type": "List[string]", + "description": "{tech}/{resource} for endpoints subscribed to.", + "required": true + }, + "device_names": { + "type": "List[string]", + "description": "Names of the devices subscribed to.", + "required": true + }, + "events_allowed": { + "type": "List[object]", + "description": "Event types sent to the application.", + "required": true + }, + "events_disallowed": { + "type": "List[object]", + "description": "Event types not sent to the application.", + "required": true + } + } + } + } +} diff --git a/codegen/src/main/resources/codegen-data/ari_4_1_2/asterisk.json b/codegen/src/main/resources/codegen-data/ari_4_1_2/asterisk.json new file mode 100644 index 00000000..841e6cd8 --- /dev/null +++ b/codegen/src/main/resources/codegen-data/ari_4_1_2/asterisk.json @@ -0,0 +1,725 @@ +{ + "_copyright": "Copyright (C) 2012 - 2013, Digium, Inc.", + "_author": "David M. Lee, II ", + "_svn_revision": "$Revision$", + "apiVersion": "2.0.0", + "swaggerVersion": "1.1", + "basePath": "http://localhost:8088/ari", + "resourcePath": "/api-docs/asterisk.{format}", + "apis": [ + { + "path": "/asterisk/config/dynamic/{configClass}/{objectType}/{id}", + "description": "Asterisk dynamic configuration", + "operations": [ + { + "httpMethod": "GET", + "summary": "Retrieve a dynamic configuration object.", + "nickname": "getObject", + "responseClass": "List[ConfigTuple]", + "parameters": [ + { + "name": "configClass", + "description": "The configuration class containing dynamic configuration objects.", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "objectType", + "description": "The type of configuration object to retrieve.", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "id", + "description": "The unique identifier of the object to retrieve.", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "{configClass|objectType|id} not found" + } + ] + }, + { + "httpMethod": "PUT", + "summary": "Create or update a dynamic configuration object.", + "nickname": "updateObject", + "responseClass": "List[ConfigTuple]", + "parameters": [ + { + "name": "configClass", + "description": "The configuration class containing dynamic configuration objects.", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "objectType", + "description": "The type of configuration object to create or update.", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "id", + "description": "The unique identifier of the object to create or update.", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "fields", + "description": "The body object should have a value that is a list of ConfigTuples, which provide the fields to update. Ex. [ { \"attribute\": \"directmedia\", \"value\": \"false\" } ]", + "paramType": "body", + "required": false, + "dataType": "containers", + "allowMultiple": false + } + ], + "errorResponses": [ + { + "code": 400, + "reason": "Bad request body" + }, + { + "code": 403, + "reason": "Could not create or update object" + }, + { + "code": 404, + "reason": "{configClass|objectType} not found" + } + ] + }, + { + "httpMethod": "DELETE", + "summary": "Delete a dynamic configuration object.", + "nickname": "deleteObject", + "responseClass": "void", + "parameters": [ + { + "name": "configClass", + "description": "The configuration class containing dynamic configuration objects.", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "objectType", + "description": "The type of configuration object to delete.", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "id", + "description": "The unique identifier of the object to delete.", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 403, + "reason": "Could not delete object" + }, + { + "code": 404, + "reason": "{configClass|objectType|id} not found" + } + ] + } + ] + }, + { + "path": "/asterisk/info", + "description": "Asterisk system information (similar to core show settings)", + "operations": [ + { + "httpMethod": "GET", + "summary": "Gets Asterisk system information.", + "nickname": "getInfo", + "responseClass": "AsteriskInfo", + "parameters": [ + { + "name": "only", + "description": "Filter information returned", + "paramType": "query", + "required": false, + "allowMultiple": true, + "dataType": "string", + "allowableValues": { + "valueType": "LIST", + "values": [ + "build", + "system", + "config", + "status" + ] + } + } + ] + } + ] + }, + { + "path": "/asterisk/ping", + "description": "Asterisk ping", + "operations": [ + { + "httpMethod": "GET", + "summary": "Response pong message.", + "nickname": "ping", + "responseClass": "AsteriskPing" + } + ] + }, + { + "path": "/asterisk/modules", + "description": "Asterisk modules", + "operations": [ + { + "httpMethod": "GET", + "summary": "List Asterisk modules.", + "nickname": "listModules", + "responseClass": "List[Module]" + } + ] + }, + { + "path": "/asterisk/modules/{moduleName}", + "description": "Asterisk module", + "operations": [ + { + "httpMethod": "GET", + "summary": "Get Asterisk module information.", + "nickname": "getModule", + "responseClass": "Module", + "parameters": [ + { + "name": "moduleName", + "description": "Module's name", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Module could not be found in running modules." + }, + { + "code": 409, + "reason": "Module information could not be retrieved." + } + ] + }, + { + "httpMethod": "POST", + "summary": "Load an Asterisk module.", + "nickname": "loadModule", + "responseClass": "void", + "parameters": [ + { + "name": "moduleName", + "description": "Module's name", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 409, + "reason": "Module could not be loaded." + } + ] + }, + { + "httpMethod": "DELETE", + "summary": "Unload an Asterisk module.", + "nickname": "unloadModule", + "responseClass": "void", + "parameters": [ + { + "name": "moduleName", + "description": "Module's name", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Module not found in running modules." + }, + { + "code": 409, + "reason": "Module could not be unloaded." + } + ] + }, + { + "httpMethod": "PUT", + "summary": "Reload an Asterisk module.", + "nickname": "reloadModule", + "responseClass": "void", + "parameters": [ + { + "name": "moduleName", + "description": "Module's name", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Module not found in running modules." + }, + { + "code": 409, + "reason": "Module could not be reloaded." + } + ] + } + ] + }, + { + "path": "/asterisk/logging", + "description": "Asterisk log channels", + "operations": [ + { + "httpMethod": "GET", + "summary": "Gets Asterisk log channel information.", + "nickname": "listLogChannels", + "responseClass": "List[LogChannel]" + } + ] + }, + { + "path": "/asterisk/logging/{logChannelName}", + "description": "Asterisk log channel", + "operations": [ + { + "httpMethod": "POST", + "summary": "Adds a log channel.", + "nickname": "addLog", + "responseClass": "void", + "parameters": [ + { + "name": "logChannelName", + "description": "The log channel to add", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "configuration", + "description": "levels of the log channel", + "paramType": "query", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 400, + "reason": "Bad request body" + }, + { + "code": 409, + "reason": "Log channel could not be created." + } + ] + }, + { + "httpMethod": "DELETE", + "summary": "Deletes a log channel.", + "nickname": "deleteLog", + "responseClass": "void", + "parameters": [ + { + "name": "logChannelName", + "description": "Log channels name", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Log channel does not exist." + } + ] + } + ] + }, + { + "path": "/asterisk/logging/{logChannelName}/rotate", + "description": "Asterisk log channel", + "operations": [ + { + "httpMethod": "PUT", + "summary": "Rotates a log channel.", + "nickname": "rotateLog", + "responseClass": "void", + "parameters": [ + { + "name": "logChannelName", + "description": "Log channel's name", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Log channel does not exist." + } + ] + } + ] + }, + { + "path": "/asterisk/variable", + "description": "Global variables", + "operations": [ + { + "httpMethod": "GET", + "summary": "Get the value of a global variable.", + "nickname": "getGlobalVar", + "responseClass": "Variable", + "parameters": [ + { + "name": "variable", + "description": "The variable to get", + "paramType": "query", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 400, + "reason": "Missing variable parameter." + } + ] + }, + { + "httpMethod": "POST", + "summary": "Set the value of a global variable.", + "nickname": "setGlobalVar", + "responseClass": "void", + "parameters": [ + { + "name": "variable", + "description": "The variable to set", + "paramType": "query", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "value", + "description": "The value to set the variable to", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 400, + "reason": "Missing variable parameter." + } + ] + } + ] + } + ], + "models": { + "BuildInfo": { + "id": "BuildInfo", + "description": "Info about how Asterisk was built", + "properties": { + "os": { + "required": true, + "type": "string", + "description": "OS Asterisk was built on." + }, + "kernel": { + "required": true, + "type": "string", + "description": "Kernel version Asterisk was built on." + }, + "options": { + "required": true, + "type": "string", + "description": "Compile time options, or empty string if default." + }, + "machine": { + "required": true, + "type": "string", + "description": "Machine architecture (x86_64, i686, ppc, etc.)" + }, + "date": { + "required": true, + "type": "string", + "description": "Date and time when Asterisk was built." + }, + "user": { + "required": true, + "type": "string", + "description": "Username that build Asterisk" + } + } + }, + "SystemInfo": { + "id": "SystemInfo", + "description": "Info about Asterisk", + "properties": { + "version": { + "required": true, + "type": "string", + "description": "Asterisk version." + }, + "entity_id": { + "required": true, + "type": "string", + "description": "" + } + } + }, + "SetId": { + "id": "SetId", + "description": "Effective user/group id", + "properties": { + "user": { + "required": true, + "type": "string", + "description": "Effective user id." + }, + "group": { + "required": true, + "type": "string", + "description": "Effective group id." + } + } + }, + "ConfigInfo": { + "id": "ConfigInfo", + "description": "Info about Asterisk configuration", + "properties": { + "name": { + "required": true, + "type": "string", + "description": "Asterisk system name." + }, + "default_language": { + "required": true, + "type": "string", + "description": "Default language for media playback." + }, + "max_channels": { + "required": false, + "type": "int", + "description": "Maximum number of simultaneous channels." + }, + "max_open_files": { + "required": false, + "type": "int", + "description": "Maximum number of open file handles (files, sockets)." + }, + "max_load": { + "required": false, + "type": "double", + "description": "Maximum load avg on system." + }, + "setid": { + "required": true, + "type": "SetId", + "description": "Effective user/group id for running Asterisk." + } + } + }, + "StatusInfo": { + "id": "StatusInfo", + "description": "Info about Asterisk status", + "properties": { + "startup_time": { + "required": true, + "type": "Date", + "description": "Time when Asterisk was started." + }, + "last_reload_time": { + "required": true, + "type": "Date", + "description": "Time when Asterisk was last reloaded." + } + } + }, + "AsteriskInfo": { + "id": "AsteriskInfo", + "description": "Asterisk system information", + "properties": { + "build": { + "required": false, + "type": "BuildInfo", + "description": "Info about how Asterisk was built" + }, + "system": { + "required": false, + "type": "SystemInfo", + "description": "Info about the system running Asterisk" + }, + "config": { + "required": false, + "type": "ConfigInfo", + "description": "Info about Asterisk configuration" + }, + "status": { + "required": false, + "type": "StatusInfo", + "description": "Info about Asterisk status" + } + } + }, + "AsteriskPing": { + "id": "AsteriskPing", + "description": "Asterisk ping information", + "properties": { + "asterisk_id": { + "required": true, + "type": "string", + "description": "Asterisk id info" + }, + "ping": { + "required": true, + "type": "string", + "description": "Always string value is pong" + }, + "timestamp": { + "required": true, + "type": "string", + "description": "The timestamp string of request received time" + } + } + }, + "Module": { + "id": "Module", + "description": "Details of an Asterisk module", + "properties": { + "name": { + "type": "string", + "description": "The name of this module", + "required": true + }, + "description": { + "type": "string", + "description": "The description of this module", + "required": true + }, + "use_count": { + "type": "int", + "description": "The number of times this module is being used", + "required": true + }, + "status": { + "type": "string", + "description": "The running status of this module", + "required": true + }, + "support_level": { + "type": "string", + "description": "The support state of this module", + "required": true + } + } + }, + "LogChannel": { + "id": "LogChannel", + "description": "Details of an Asterisk log channel", + "properties": { + "channel": { + "type": "string", + "description": "The log channel path", + "required": true + }, + "type": { + "type": "string", + "description": "Types of logs for the log channel", + "required": true + }, + "status": { + "type": "string", + "description": "Whether or not a log type is enabled", + "required": true + }, + "configuration": { + "type": "string", + "description": "The various log levels", + "required": true + } + } + }, + "Variable": { + "id": "Variable", + "description": "The value of a channel variable", + "properties": { + "value": { + "required": true, + "type": "string", + "description": "The value of the variable requested" + } + } + }, + "ConfigTuple": { + "id": "ConfigTuple", + "description": "A key/value pair that makes up part of a configuration object.", + "properties": { + "attribute": { + "required": true, + "type": "string", + "description": "A configuration object attribute." + }, + "value": { + "required": true, + "type": "string", + "description": "The value for the attribute." + } + } + } + } +} diff --git a/codegen/src/main/resources/codegen-data/ari_4_1_2/bridges.json b/codegen/src/main/resources/codegen-data/ari_4_1_2/bridges.json new file mode 100644 index 00000000..22743c3b --- /dev/null +++ b/codegen/src/main/resources/codegen-data/ari_4_1_2/bridges.json @@ -0,0 +1,765 @@ +{ + "_copyright": "Copyright (C) 2012 - 2013, Digium, Inc.", + "_author": "David M. Lee, II ", + "_svn_revision": "$Revision$", + "apiVersion": "2.0.0", + "swaggerVersion": "1.1", + "basePath": "http://localhost:8088/ari", + "resourcePath": "/api-docs/bridges.{format}", + "requiresModules": [ + "res_stasis_recording", + "res_stasis_playback" + ], + "apis": [ + { + "path": "/bridges", + "description": "Active bridges", + "operations": [ + { + "httpMethod": "GET", + "summary": "List all active bridges in Asterisk.", + "nickname": "list", + "responseClass": "List[Bridge]" + }, + { + "httpMethod": "POST", + "summary": "Create a new bridge.", + "notes": "This bridge persists until it has been shut down, or Asterisk has been shut down.", + "nickname": "create", + "responseClass": "Bridge", + "parameters": [ + { + "name": "type", + "description": "Comma separated list of bridge type attributes (mixing, holding, dtmf_events, proxy_media, video_sfu).", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "bridgeId", + "description": "Unique ID to give to the bridge being created.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "name", + "description": "Name to give to the bridge being created.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + } + ] + } + ] + }, + { + "path": "/bridges/{bridgeId}", + "description": "Individual bridge", + "operations": [ + { + "httpMethod": "POST", + "summary": "Create a new bridge or updates an existing one.", + "notes": "This bridge persists until it has been shut down, or Asterisk has been shut down.", + "nickname": "createWithId", + "responseClass": "Bridge", + "parameters": [ + { + "name": "type", + "description": "Comma separated list of bridge type attributes (mixing, holding, dtmf_events, proxy_media, video_sfu) to set.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "bridgeId", + "description": "Unique ID to give to the bridge being created.", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "name", + "description": "Set the name of the bridge.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + } + ] + }, + { + "httpMethod": "GET", + "summary": "Get bridge details.", + "nickname": "get", + "responseClass": "Bridge", + "parameters": [ + { + "name": "bridgeId", + "description": "Bridge's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Bridge not found" + } + ] + }, + { + "httpMethod": "DELETE", + "summary": "Shut down a bridge.", + "notes": "If any channels are in this bridge, they will be removed and resume whatever they were doing beforehand.", + "nickname": "destroy", + "responseClass": "void", + "parameters": [ + { + "name": "bridgeId", + "description": "Bridge's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Bridge not found" + } + ] + } + ] + }, + { + "path": "/bridges/{bridgeId}/addChannel", + "description": "Add a channel to a bridge", + "operations": [ + { + "httpMethod": "POST", + "summary": "Add a channel to a bridge.", + "nickname": "addChannel", + "responseClass": "void", + "parameters": [ + { + "name": "bridgeId", + "description": "Bridge's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "channel", + "description": "Ids of channels to add to bridge", + "paramType": "query", + "required": true, + "allowMultiple": true, + "dataType": "string" + }, + { + "name": "role", + "description": "Channel's role in the bridge", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "absorbDTMF", + "description": "Absorb DTMF coming from this channel, preventing it to pass through to the bridge", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "boolean", + "defaultValue": false + }, + { + "name": "mute", + "description": "Mute audio from this channel, preventing it to pass through to the bridge", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "boolean", + "defaultValue": false + } + ], + "errorResponses": [ + { + "code": 400, + "reason": "Channel not found" + }, + { + "code": 404, + "reason": "Bridge not found" + }, + { + "code": 409, + "reason": "Bridge not in Stasis application; Channel currently recording" + }, + { + "code": 422, + "reason": "Channel not in Stasis application" + } + ] + } + ] + }, + { + "path": "/bridges/{bridgeId}/removeChannel", + "description": "Remove a channel from a bridge", + "operations": [ + { + "httpMethod": "POST", + "summary": "Remove a channel from a bridge.", + "nickname": "removeChannel", + "responseClass": "void", + "parameters": [ + { + "name": "bridgeId", + "description": "Bridge's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "channel", + "description": "Ids of channels to remove from bridge", + "paramType": "query", + "required": true, + "allowMultiple": true, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 400, + "reason": "Channel not found" + }, + { + "code": 404, + "reason": "Bridge not found" + }, + { + "code": 409, + "reason": "Bridge not in Stasis application" + }, + { + "code": 422, + "reason": "Channel not in this bridge" + } + ] + } + ] + }, + { + "path": "/bridges/{bridgeId}/videoSource/{channelId}", + "description": "Set a channel as the video source in a multi-party bridge", + "operations": [ + { + "httpMethod": "POST", + "summary": "Set a channel as the video source in a multi-party mixing bridge. This operation has no effect on bridges with two or fewer participants.", + "nickname": "setVideoSource", + "responseClass": "void", + "parameters": [ + { + "name": "bridgeId", + "description": "Bridge's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "channelId", + "description": "Channel's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Bridge or Channel not found" + }, + { + "code": 409, + "reason": "Channel not in Stasis application" + }, + { + "code": 422, + "reason": "Channel not in this Bridge" + } + ] + } + ] + }, + { + "path": "/bridges/{bridgeId}/videoSource", + "description": "Removes any explicit video source", + "operations": [ + { + "httpMethod": "DELETE", + "summary": "Removes any explicit video source in a multi-party mixing bridge. This operation has no effect on bridges with two or fewer participants. When no explicit video source is set, talk detection will be used to determine the active video stream.", + "nickname": "clearVideoSource", + "responseClass": "void", + "parameters": [ + { + "name": "bridgeId", + "description": "Bridge's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Bridge not found" + } + ] + } + ] + }, + { + "path": "/bridges/{bridgeId}/moh", + "description": "Play music on hold to a bridge", + "operations": [ + { + "httpMethod": "POST", + "summary": "Play music on hold to a bridge or change the MOH class that is playing.", + "nickname": "startMoh", + "responseClass": "void", + "parameters": [ + { + "name": "bridgeId", + "description": "Bridge's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "mohClass", + "description": "Channel's id", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Bridge not found" + }, + { + "code": 409, + "reason": "Bridge not in Stasis application" + } + ] + }, + { + "httpMethod": "DELETE", + "summary": "Stop playing music on hold to a bridge.", + "notes": "This will only stop music on hold being played via POST bridges/{bridgeId}/moh.", + "nickname": "stopMoh", + "responseClass": "void", + "parameters": [ + { + "name": "bridgeId", + "description": "Bridge's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Bridge not found" + }, + { + "code": 409, + "reason": "Bridge not in Stasis application" + } + ] + } + ] + }, + { + "path": "/bridges/{bridgeId}/play", + "description": "Play media to the participants of a bridge", + "operations": [ + { + "httpMethod": "POST", + "summary": "Start playback of media on a bridge.", + "notes": "The media URI may be any of a number of URI's. Currently sound:, recording:, number:, digits:, characters:, and tone: URI's are supported. This operation creates a playback resource that can be used to control the playback of media (pause, rewind, fast forward, etc.)", + "nickname": "play", + "responseClass": "Playback", + "parameters": [ + { + "name": "bridgeId", + "description": "Bridge's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "media", + "description": "Media URIs to play.", + "paramType": "query", + "required": true, + "allowMultiple": true, + "dataType": "string" + }, + { + "name": "lang", + "description": "For sounds, selects language for sound.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "offsetms", + "description": "Number of milliseconds to skip before playing. Only applies to the first URI if multiple media URIs are specified.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "int", + "defaultValue": 0, + "allowableValues": { + "valueType": "RANGE", + "min": 0 + } + + }, + { + "name": "skipms", + "description": "Number of milliseconds to skip for forward/reverse operations.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "int", + "defaultValue": 3000, + "allowableValues": { + "valueType": "RANGE", + "min": 0 + } + }, + { + "name": "playbackId", + "description": "Playback Id.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Bridge not found" + }, + { + "code": 409, + "reason": "Bridge not in a Stasis application" + } + ] + } + ] + }, + { + "path": "/bridges/{bridgeId}/play/{playbackId}", + "description": "Play media to a bridge", + "operations": [ + { + "httpMethod": "POST", + "summary": "Start playback of media on a bridge.", + "notes": "The media URI may be any of a number of URI's. Currently sound:, recording:, number:, digits:, characters:, and tone: URI's are supported. This operation creates a playback resource that can be used to control the playback of media (pause, rewind, fast forward, etc.)", + "nickname": "playWithId", + "responseClass": "Playback", + "parameters": [ + { + "name": "bridgeId", + "description": "Bridge's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "playbackId", + "description": "Playback ID.", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "media", + "description": "Media URIs to play.", + "paramType": "query", + "required": true, + "allowMultiple": true, + "dataType": "string" + }, + { + "name": "lang", + "description": "For sounds, selects language for sound.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "offsetms", + "description": "Number of milliseconds to skip before playing. Only applies to the first URI if multiple media URIs are specified.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "int", + "defaultValue": 0, + "allowableValues": { + "valueType": "RANGE", + "min": 0 + } + }, + { + "name": "skipms", + "description": "Number of milliseconds to skip for forward/reverse operations.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "int", + "defaultValue": 3000, + "allowableValues": { + "valueType": "RANGE", + "min": 0 + } + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Bridge not found" + }, + { + "code": 409, + "reason": "Bridge not in a Stasis application" + } + ] + + } + ] + }, + { + "path": "/bridges/{bridgeId}/record", + "description": "Record audio on a bridge", + "operations": [ + { + "httpMethod": "POST", + "summary": "Start a recording.", + "notes": "This records the mixed audio from all channels participating in this bridge.", + "nickname": "record", + "responseClass": "LiveRecording", + "parameters": [ + { + "name": "bridgeId", + "description": "Bridge's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "name", + "description": "Recording's filename", + "paramType": "query", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "format", + "description": "Format to encode audio in", + "paramType": "query", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "maxDurationSeconds", + "description": "Maximum duration of the recording, in seconds. 0 for no limit.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "int", + "defaultValue": 0, + "allowableValues": { + "valueType": "RANGE", + "min": 0 + } + }, + { + "name": "maxSilenceSeconds", + "description": "Maximum duration of silence, in seconds. 0 for no limit.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "int", + "defaultValue": 0, + "allowableValues": { + "valueType": "RANGE", + "min": 0 + } + }, + { + "name": "ifExists", + "description": "Action to take if a recording with the same name already exists.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string", + "defaultValue": "fail", + "allowableValues": { + "valueType": "LIST", + "values": [ + "fail", + "overwrite", + "append" + ] + } + }, + { + "name": "beep", + "description": "Play beep when recording begins", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "boolean", + "defaultValue": false + }, + { + "name": "terminateOn", + "description": "DTMF input to terminate recording.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string", + "defaultValue": "none", + "allowableValues": { + "valueType": "LIST", + "values": [ + "none", + "any", + "*", + "#" + ] + } + } + ], + "errorResponses": [ + { + "code": 400, + "reason": "Invalid parameters" + }, + { + "code": 404, + "reason": "Bridge not found" + }, + { + "code": 409, + "reason": "Bridge is not in a Stasis application; A recording with the same name already exists on the system and can not be overwritten because it is in progress or ifExists=fail" + }, + { + "code": 422, + "reason": "The format specified is unknown on this system" + } + ] + } + ] + } + ], + "models": { + "Bridge": { + "id": "Bridge", + "description": "The merging of media from one or more channels.\n\nEveryone on the bridge receives the same audio.", + "properties": { + "id": { + "type": "string", + "description": "Unique identifier for this bridge", + "required": true + }, + "technology": { + "type": "string", + "description": "Name of the current bridging technology", + "required": true + }, + "bridge_type": { + "type": "string", + "description": "Type of bridge technology", + "required": true, + "allowableValues": { + "valueType": "LIST", + "values": [ + "mixing", + "holding" + ] + } + }, + "bridge_class": { + "type": "string", + "description": "Bridging class", + "required": true + }, + "creator": { + "type": "string", + "description": "Entity that created the bridge", + "required": true + }, + "name": { + "type": "string", + "description": "Name the creator gave the bridge", + "required": true + }, + "channels": { + "type": "List[string]", + "description": "Ids of channels participating in this bridge", + "required": true + }, + "video_mode": { + "type": "string", + "description": "The video mode the bridge is using. One of 'none', 'talker', or 'single'.", + "required": false + }, + "video_source_id": { + "type": "string", + "description": "The ID of the channel that is the source of video in this bridge, if one exists.", + "required": false + }, + "creationtime": { + "required": true, + "type": "Date", + "description": "Timestamp when bridge was created" + } + } + } + } +} diff --git a/codegen/src/main/resources/codegen-data/ari_4_1_2/channels.json b/codegen/src/main/resources/codegen-data/ari_4_1_2/channels.json new file mode 100644 index 00000000..366fec8e --- /dev/null +++ b/codegen/src/main/resources/codegen-data/ari_4_1_2/channels.json @@ -0,0 +1,2164 @@ +{ + "_copyright": "Copyright (C) 2012 - 2013, Digium, Inc.", + "_author": "David M. Lee, II ", + "_svn_revision": "$Revision$", + "apiVersion": "2.0.0", + "swaggerVersion": "1.1", + "basePath": "http://localhost:8088/ari", + "resourcePath": "/api-docs/channels.{format}", + "requiresModules": [ + "res_stasis_answer", + "res_stasis_playback", + "res_stasis_recording", + "res_stasis_snoop" + ], + "apis": [ + { + "path": "/channels", + "description": "Active channels", + "operations": [ + { + "httpMethod": "GET", + "summary": "List all active channels in Asterisk.", + "nickname": "list", + "responseClass": "List[Channel]" + }, + { + "httpMethod": "POST", + "summary": "Create a new channel (originate).", + "notes": "The new channel is created immediately and a snapshot of it returned. If a Stasis application is provided it will be automatically subscribed to the originated channel for further events and updates.", + "nickname": "originate", + "responseClass": "Channel", + "parameters": [ + { + "name": "endpoint", + "description": "Endpoint to call.", + "paramType": "query", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "extension", + "description": "The extension to dial after the endpoint answers. Mutually exclusive with 'app'.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "context", + "description": "The context to dial after the endpoint answers. If omitted, uses 'default'. Mutually exclusive with 'app'.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "priority", + "description": "The priority to dial after the endpoint answers. If omitted, uses 1. Mutually exclusive with 'app'.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "long" + }, + { + "name": "label", + "description": "The label to dial after the endpoint answers. Will supersede 'priority' if provided. Mutually exclusive with 'app'.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "app", + "description": "The application that is subscribed to the originated channel. When the channel is answered, it will be passed to this Stasis application. Mutually exclusive with 'context', 'extension', 'priority', and 'label'.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "appArgs", + "description": "The application arguments to pass to the Stasis application provided by 'app'. Mutually exclusive with 'context', 'extension', 'priority', and 'label'.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "callerId", + "description": "CallerID to use when dialing the endpoint or extension.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "timeout", + "description": "Timeout (in seconds) before giving up dialing, or -1 for no timeout.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "int", + "defaultValue": 30 + }, + { + "name": "variables", + "description": "The \"variables\" key in the body object holds variable key/value pairs to set on the channel on creation. Other keys in the body object are interpreted as query parameters. Ex. { \"endpoint\": \"SIP/Alice\", \"variables\": { \"CALLERID(name)\": \"Alice\" } }", + "paramType": "body", + "required": false, + "dataType": "containers", + "allowMultiple": false + }, + { + "name": "channelId", + "description": "The unique id to assign the channel on creation.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "otherChannelId", + "description": "The unique id to assign the second channel when using local channels.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "originator", + "description": "The unique id of the channel which is originating this one.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "formats", + "description": "The format name capability list to use if originator is not specified. Ex. \"ulaw,slin16\". Format names can be found with \"core show codecs\".", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 400, + "reason": "Invalid parameters for originating a channel." + }, + { + "code": 409, + "reason": "Channel with given unique ID already exists." + } + ] + } + ] + }, + { + "path": "/channels/create", + "description": "Create a channel and place it in a Stasis app, but do not dial the channel yet.", + "operations": [ + { + "httpMethod": "POST", + "summary": "Create channel.", + "nickname": "create", + "responseClass": "Channel", + "parameters": [ + { + "name": "endpoint", + "description": "Endpoint for channel communication", + "paramType": "query", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "app", + "description": "Stasis Application to place channel into", + "paramType": "query", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "appArgs", + "description": "The application arguments to pass to the Stasis application provided by 'app'. Mutually exclusive with 'context', 'extension', 'priority', and 'label'.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "channelId", + "description": "The unique id to assign the channel on creation.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "otherChannelId", + "description": "The unique id to assign the second channel when using local channels.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "originator", + "description": "Unique ID of the calling channel", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "formats", + "description": "The format name capability list to use if originator is not specified. Ex. \"ulaw,slin16\". Format names can be found with \"core show codecs\".", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 409, + "reason": "Channel with given unique ID already exists." + } + ] + } + ] + }, + { + "path": "/channels/{channelId}", + "description": "Active channel", + "operations": [ + { + "httpMethod": "GET", + "summary": "Channel details.", + "nickname": "get", + "responseClass": "Channel", + "parameters": [ + { + "name": "channelId", + "description": "Channel's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Channel not found" + } + ] + }, + { + "httpMethod": "POST", + "summary": "Create a new channel (originate with id).", + "notes": "The new channel is created immediately and a snapshot of it returned. If a Stasis application is provided it will be automatically subscribed to the originated channel for further events and updates.", + "nickname": "originateWithId", + "responseClass": "Channel", + "parameters": [ + { + "name": "channelId", + "description": "The unique id to assign the channel on creation.", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "endpoint", + "description": "Endpoint to call.", + "paramType": "query", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "extension", + "description": "The extension to dial after the endpoint answers. Mutually exclusive with 'app'.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "context", + "description": "The context to dial after the endpoint answers. If omitted, uses 'default'. Mutually exclusive with 'app'.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "priority", + "description": "The priority to dial after the endpoint answers. If omitted, uses 1. Mutually exclusive with 'app'.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "long" + }, + { + "name": "label", + "description": "The label to dial after the endpoint answers. Will supersede 'priority' if provided. Mutually exclusive with 'app'.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "app", + "description": "The application that is subscribed to the originated channel. When the channel is answered, it will be passed to this Stasis application. Mutually exclusive with 'context', 'extension', 'priority', and 'label'.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "appArgs", + "description": "The application arguments to pass to the Stasis application provided by 'app'. Mutually exclusive with 'context', 'extension', 'priority', and 'label'.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "callerId", + "description": "CallerID to use when dialing the endpoint or extension.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "timeout", + "description": "Timeout (in seconds) before giving up dialing, or -1 for no timeout.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "int", + "defaultValue": 30 + }, + { + "name": "variables", + "description": "The \"variables\" key in the body object holds variable key/value pairs to set on the channel on creation. Other keys in the body object are interpreted as query parameters. Ex. { \"endpoint\": \"SIP/Alice\", \"variables\": { \"CALLERID(name)\": \"Alice\" } }", + "paramType": "body", + "required": false, + "dataType": "containers", + "allowMultiple": false + }, + { + "name": "otherChannelId", + "description": "The unique id to assign the second channel when using local channels.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "originator", + "description": "The unique id of the channel which is originating this one.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "formats", + "description": "The format name capability list to use if originator is not specified. Ex. \"ulaw,slin16\". Format names can be found with \"core show codecs\".", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 400, + "reason": "Invalid parameters for originating a channel." + }, + { + "code": 409, + "reason": "Channel with given unique ID already exists." + } + ] + + }, + { + "httpMethod": "DELETE", + "summary": "Delete (i.e. hangup) a channel.", + "nickname": "hangup", + "responseClass": "void", + "parameters": [ + { + "name": "channelId", + "description": "Channel's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "reason", + "description": "Reason for hanging up the channel", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string", + "defalutValue": "normal", + "allowableValues": { + "valueType": "LIST", + "values": [ + "normal", + "busy", + "congestion", + "no_answer", + "timeout", + "rejected", + "unallocated", + "normal_unspecified", + "number_incomplete", + "codec_mismatch", + "interworking", + "failure", + "answered_elsewhere" + ] + } + } + ], + "errorResponses": [ + { + "code": 400, + "reason": "Invalid reason for hangup provided" + }, + { + "code": 404, + "reason": "Channel not found" + } + ] + } + ] + }, + { + "path": "/channels/{channelId}/continue", + "description": "Exit application; continue execution in the dialplan", + "operations": [ + { + "httpMethod": "POST", + "summary": "Exit application; continue execution in the dialplan.", + "nickname": "continueInDialplan", + "responseClass": "void", + "parameters": [ + { + "name": "channelId", + "description": "Channel's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "context", + "description": "The context to continue to.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "extension", + "description": "The extension to continue to.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "priority", + "description": "The priority to continue to.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "int" + }, + { + "name": "label", + "description": "The label to continue to - will supersede 'priority' if both are provided.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Channel not found" + }, + { + "code": 409, + "reason": "Channel not in a Stasis application" + }, + { + "code": 412, + "reason": "Channel in invalid state" + } + ] + } + ] + }, + { + "path": "/channels/{channelId}/move", + "description": "Move the channel from one Stasis application to another.", + "operations": [ + { + "httpMethod": "POST", + "summary": "Move the channel from one Stasis application to another.", + "nickname": "move", + "responseClass": "void", + "parameters": [ + { + "name": "channelId", + "description": "Channel's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "app", + "description": "The channel will be passed to this Stasis application.", + "paramType": "query", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "appArgs", + "description": "The application arguments to pass to the Stasis application provided by 'app'.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": "404", + "reason": "Channel not found" + }, + { + "code": "409", + "reason": "Channel not in a Stasis application" + } + ] + } + ] + }, + { + "path": "/channels/{channelId}/redirect", + "description": "Inform the channel that it should redirect itself to a different location. Note that this will almost certainly cause the channel to exit the application.", + "operations": [ + { + "httpMethod": "POST", + "summary": "Redirect the channel to a different location.", + "nickname": "redirect", + "responseClass": "void", + "parameters": [ + { + "name": "channelId", + "description": "Channel's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "endpoint", + "description": "The endpoint to redirect the channel to", + "paramType": "query", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 400, + "reason": "Endpoint parameter not provided" + }, + { + "code": 404, + "reason": "Channel or endpoint not found" + }, + { + "code": 409, + "reason": "Channel not in a Stasis application" + }, + { + "code": 422, + "reason": "Endpoint is not the same type as the channel" + }, + { + "code": 412, + "reason": "Channel in invalid state" + } + ] + } + ] + }, + { + "path": "/channels/{channelId}/answer", + "description": "Answer a channel", + "operations": [ + { + "httpMethod": "POST", + "summary": "Answer a channel.", + "nickname": "answer", + "responseClass": "void", + "parameters": [ + { + "name": "channelId", + "description": "Channel's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Channel not found" + }, + { + "code": 409, + "reason": "Channel not in a Stasis application" + }, + { + "code": 412, + "reason": "Channel in invalid state" + } + ] + } + ] + }, + { + "path": "/channels/{channelId}/ring", + "description": "Send a ringing indication to a channel", + "operations": [ + { + "httpMethod": "POST", + "summary": "Indicate ringing to a channel.", + "nickname": "ring", + "responseClass": "void", + "parameters": [ + { + "name": "channelId", + "description": "Channel's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Channel not found" + }, + { + "code": 409, + "reason": "Channel not in a Stasis application" + }, + { + "code": 412, + "reason": "Channel in invalid state" + } + ] + }, + { + "httpMethod": "DELETE", + "summary": "Stop ringing indication on a channel if locally generated.", + "nickname": "ringStop", + "responseClass": "void", + "parameters": [ + { + "name": "channelId", + "description": "Channel's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Channel not found" + }, + { + "code": 409, + "reason": "Channel not in a Stasis application" + }, + { + "code": 412, + "reason": "Channel in invalid state" + } + ] + } + ] + }, + { + "path": "/channels/{channelId}/dtmf", + "description": "Send DTMF to a channel", + "operations": [ + { + "httpMethod": "POST", + "summary": "Send provided DTMF to a given channel.", + "nickname": "sendDTMF", + "responseClass": "void", + "parameters": [ + { + "name": "channelId", + "description": "Channel's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "dtmf", + "description": "DTMF To send.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "before", + "description": "Amount of time to wait before DTMF digits (specified in milliseconds) start.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "int", + "defaultValue": 0 + }, + { + "name": "between", + "description": "Amount of time in between DTMF digits (specified in milliseconds).", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "int", + "defaultValue": 100 + }, + { + "name": "duration", + "description": "Length of each DTMF digit (specified in milliseconds).", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "int", + "defaultValue": 100 + }, + { + "name": "after", + "description": "Amount of time to wait after DTMF digits (specified in milliseconds) end.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "int", + "defaultValue": 0 + } + ], + "errorResponses": [ + { + "code": 400, + "reason": "DTMF is required" + }, + { + "code": 404, + "reason": "Channel not found" + }, + { + "code": 409, + "reason": "Channel not in a Stasis application" + }, + { + "code": 412, + "reason": "Channel in invalid state" + } + ] + } + ] + }, + { + "path": "/channels/{channelId}/mute", + "description": "Mute a channel", + "operations": [ + { + "httpMethod": "POST", + "summary": "Mute a channel.", + "nickname": "mute", + "responseClass": "void", + "parameters": [ + { + "name": "channelId", + "description": "Channel's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "direction", + "description": "Direction in which to mute audio", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string", + "defaultValue": "both", + "allowableValues": { + "valueType": "LIST", + "values": [ + "both", + "in", + "out" + ] + } + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Channel not found" + }, + { + "code": 409, + "reason": "Channel not in a Stasis application" + }, + { + "code": 412, + "reason": "Channel in invalid state" + } + ] + }, + { + "httpMethod": "DELETE", + "summary": "Unmute a channel.", + "nickname": "unmute", + "responseClass": "void", + "parameters": [ + { + "name": "channelId", + "description": "Channel's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "direction", + "description": "Direction in which to unmute audio", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string", + "defaultValue": "both", + "allowableValues": { + "valueType": "LIST", + "values": [ + "both", + "in", + "out" + ] + } + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Channel not found" + }, + { + "code": 409, + "reason": "Channel not in a Stasis application" + }, + { + "code": 412, + "reason": "Channel in invalid state" + } + ] + } + ] + }, + { + "path": "/channels/{channelId}/hold", + "description": "Put a channel on hold", + "operations": [ + { + "httpMethod": "POST", + "summary": "Hold a channel.", + "nickname": "hold", + "responseClass": "void", + "parameters": [ + { + "name": "channelId", + "description": "Channel's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Channel not found" + }, + { + "code": 409, + "reason": "Channel not in a Stasis application" + }, + { + "code": 412, + "reason": "Channel in invalid state" + } + ] + }, + { + "httpMethod": "DELETE", + "summary": "Remove a channel from hold.", + "nickname": "unhold", + "responseClass": "void", + "parameters": [ + { + "name": "channelId", + "description": "Channel's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Channel not found" + }, + { + "code": 409, + "reason": "Channel not in a Stasis application" + }, + { + "code": 412, + "reason": "Channel in invalid state" + } + ] + } + ] + }, + { + "path": "/channels/{channelId}/moh", + "description": "Play music on hold to a channel", + "operations": [ + { + "httpMethod": "POST", + "summary": "Play music on hold to a channel.", + "notes": "Using media operations such as /play on a channel playing MOH in this manner will suspend MOH without resuming automatically. If continuing music on hold is desired, the stasis application must reinitiate music on hold.", + "nickname": "startMoh", + "responseClass": "void", + "parameters": [ + { + "name": "channelId", + "description": "Channel's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "mohClass", + "description": "Music on hold class to use", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Channel not found" + }, + { + "code": 409, + "reason": "Channel not in a Stasis application" + }, + { + "code": 412, + "reason": "Channel in invalid state" + } + ] + }, + { + "httpMethod": "DELETE", + "summary": "Stop playing music on hold to a channel.", + "nickname": "stopMoh", + "responseClass": "void", + "parameters": [ + { + "name": "channelId", + "description": "Channel's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Channel not found" + }, + { + "code": 409, + "reason": "Channel not in a Stasis application" + }, + { + "code": 412, + "reason": "Channel in invalid state" + } + ] + } + ] + }, + { + "path": "/channels/{channelId}/silence", + "description": "Play silence to a channel", + "operations": [ + { + "httpMethod": "POST", + "summary": "Play silence to a channel.", + "notes": "Using media operations such as /play on a channel playing silence in this manner will suspend silence without resuming automatically.", + "nickname": "startSilence", + "responseClass": "void", + "parameters": [ + { + "name": "channelId", + "description": "Channel's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Channel not found" + }, + { + "code": 409, + "reason": "Channel not in a Stasis application" + }, + { + "code": 412, + "reason": "Channel in invalid state" + } + ] + }, + { + "httpMethod": "DELETE", + "summary": "Stop playing silence to a channel.", + "nickname": "stopSilence", + "responseClass": "void", + "parameters": [ + { + "name": "channelId", + "description": "Channel's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Channel not found" + }, + { + "code": 409, + "reason": "Channel not in a Stasis application" + }, + { + "code": 412, + "reason": "Channel in invalid state" + } + ] + } + ] + }, + { + "path": "/channels/{channelId}/play", + "description": "Play media to a channel", + "operations": [ + { + "httpMethod": "POST", + "summary": "Start playback of media.", + "notes": "The media URI may be any of a number of URI's. Currently sound:, recording:, number:, digits:, characters:, and tone: URI's are supported. This operation creates a playback resource that can be used to control the playback of media (pause, rewind, fast forward, etc.)", + "nickname": "play", + "responseClass": "Playback", + "parameters": [ + { + "name": "channelId", + "description": "Channel's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "media", + "description": "Media URIs to play.", + "paramType": "query", + "required": true, + "allowMultiple": true, + "dataType": "string" + }, + { + "name": "lang", + "description": "For sounds, selects language for sound.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "offsetms", + "description": "Number of milliseconds to skip before playing. Only applies to the first URI if multiple media URIs are specified.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "int" + }, + { + "name": "skipms", + "description": "Number of milliseconds to skip for forward/reverse operations.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "int", + "defaultValue": 3000 + }, + { + "name": "playbackId", + "description": "Playback ID.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Channel not found" + }, + { + "code": 409, + "reason": "Channel not in a Stasis application" + }, + { + "code": 412, + "reason": "Channel in invalid state" + } + ] + } + ] + }, + { + "path": "/channels/{channelId}/play/{playbackId}", + "description": "Play media to a channel", + "operations": [ + { + "httpMethod": "POST", + "summary": "Start playback of media and specify the playbackId.", + "notes": "The media URI may be any of a number of URI's. Currently sound:, recording:, number:, digits:, characters:, and tone: URI's are supported. This operation creates a playback resource that can be used to control the playback of media (pause, rewind, fast forward, etc.)", + "nickname": "playWithId", + "responseClass": "Playback", + "parameters": [ + { + "name": "channelId", + "description": "Channel's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "playbackId", + "description": "Playback ID.", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "media", + "description": "Media URIs to play.", + "paramType": "query", + "required": true, + "allowMultiple": true, + "dataType": "string" + }, + { + "name": "lang", + "description": "For sounds, selects language for sound.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "offsetms", + "description": "Number of milliseconds to skip before playing. Only applies to the first URI if multiple media URIs are specified.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "int" + }, + { + "name": "skipms", + "description": "Number of milliseconds to skip for forward/reverse operations.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "int", + "defaultValue": 3000 + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Channel not found" + }, + { + "code": 409, + "reason": "Channel not in a Stasis application" + }, + { + "code": 412, + "reason": "Channel in invalid state" + } + ] + } + ] + }, + { + "path": "/channels/{channelId}/record", + "description": "Record audio from a channel", + "operations": [ + { + "httpMethod": "POST", + "summary": "Start a recording.", + "notes": "Record audio from a channel. Note that this will not capture audio sent to the channel. The bridge itself has a record feature if that's what you want.", + "nickname": "record", + "responseClass": "LiveRecording", + "parameters": [ + { + "name": "channelId", + "description": "Channel's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "name", + "description": "Recording's filename", + "paramType": "query", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "format", + "description": "Format to encode audio in", + "paramType": "query", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "maxDurationSeconds", + "description": "Maximum duration of the recording, in seconds. 0 for no limit", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "int", + "defaultValue": 0, + "allowableValues": { + "valueType": "RANGE", + "min": 0 + } + }, + { + "name": "maxSilenceSeconds", + "description": "Maximum duration of silence, in seconds. 0 for no limit", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "int", + "defaultValue": 0, + "allowableValues": { + "valueType": "RANGE", + "min": 0 + } + }, + { + "name": "ifExists", + "description": "Action to take if a recording with the same name already exists.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string", + "defaultValue": "fail", + "allowableValues": { + "valueType": "LIST", + "values": [ + "fail", + "overwrite", + "append" + ] + } + }, + { + "name": "beep", + "description": "Play beep when recording begins", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "boolean", + "defaultValue": false + }, + { + "name": "terminateOn", + "description": "DTMF input to terminate recording", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string", + "defaultValue": "none", + "allowableValues": { + "valueType": "LIST", + "values": [ + "none", + "any", + "*", + "#" + ] + } + } + ], + "errorResponses": [ + { + "code": 400, + "reason": "Invalid parameters" + }, + { + "code": 404, + "reason": "Channel not found" + }, + { + "code": 409, + "reason": "Channel is not in a Stasis application; the channel is currently bridged with other hcannels; A recording with the same name already exists on the system and can not be overwritten because it is in progress or ifExists=fail" + }, + { + "code": 422, + "reason": "The format specified is unknown on this system" + } + ] + } + ] + }, + { + "path": "/channels/{channelId}/variable", + "description": "Variables on a channel", + "operations": [ + { + "httpMethod": "GET", + "summary": "Get the value of a channel variable or function.", + "nickname": "getChannelVar", + "responseClass": "Variable", + "parameters": [ + { + "name": "channelId", + "description": "Channel's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "variable", + "description": "The channel variable or function to get", + "paramType": "query", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 400, + "reason": "Missing variable parameter." + }, + { + "code": 404, + "reason": "Channel or variable not found" + }, + { + "code": 409, + "reason": "Channel not in a Stasis application" + } + ] + }, + { + "httpMethod": "POST", + "summary": "Set the value of a channel variable or function.", + "nickname": "setChannelVar", + "responseClass": "void", + "parameters": [ + { + "name": "channelId", + "description": "Channel's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "variable", + "description": "The channel variable or function to set", + "paramType": "query", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "value", + "description": "The value to set the variable to", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 400, + "reason": "Missing variable parameter." + }, + { + "code": 404, + "reason": "Channel not found" + }, + { + "code": 409, + "reason": "Channel not in a Stasis application" + } + ] + } + ] + }, + { + "path": "/channels/{channelId}/snoop", + "description": "Snoop (spy/whisper) on a channel", + "operations": [ + { + "httpMethod": "POST", + "summary": "Start snooping.", + "notes": "Snoop (spy/whisper) on a specific channel.", + "nickname": "snoopChannel", + "responseClass": "Channel", + "parameters": [ + { + "name": "channelId", + "description": "Channel's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "spy", + "description": "Direction of audio to spy on", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string", + "defaultValue": "none", + "allowableValues": { + "valueType": "LIST", + "values": [ + "none", + "both", + "out", + "in" + ] + } + }, + { + "name": "whisper", + "description": "Direction of audio to whisper into", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string", + "defaultValue": "none", + "allowableValues": { + "valueType": "LIST", + "values": [ + "none", + "both", + "out", + "in" + ] + } + }, + { + "name": "app", + "description": "Application the snooping channel is placed into", + "paramType": "query", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "appArgs", + "description": "The application arguments to pass to the Stasis application", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "snoopId", + "description": "Unique ID to assign to snooping channel", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 400, + "reason": "Invalid parameters" + }, + { + "code": 404, + "reason": "Channel not found" + } + ] + } + ] + }, + { + "path": "/channels/{channelId}/snoop/{snoopId}", + "description": "Snoop (spy/whisper) on a channel", + "operations": [ + { + "httpMethod": "POST", + "summary": "Start snooping.", + "notes": "Snoop (spy/whisper) on a specific channel.", + "nickname": "snoopChannelWithId", + "responseClass": "Channel", + "parameters": [ + { + "name": "channelId", + "description": "Channel's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "snoopId", + "description": "Unique ID to assign to snooping channel", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "spy", + "description": "Direction of audio to spy on", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string", + "defaultValue": "none", + "allowableValues": { + "valueType": "LIST", + "values": [ + "none", + "both", + "out", + "in" + ] + } + }, + { + "name": "whisper", + "description": "Direction of audio to whisper into", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string", + "defaultValue": "none", + "allowableValues": { + "valueType": "LIST", + "values": [ + "none", + "both", + "out", + "in" + ] + } + }, + { + "name": "app", + "description": "Application the snooping channel is placed into", + "paramType": "query", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "appArgs", + "description": "The application arguments to pass to the Stasis application", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 400, + "reason": "Invalid parameters" + }, + { + "code": 404, + "reason": "Channel not found" + } + ] + } + ] + }, + { + "path": "/channels/{channelId}/dial", + "description": "Dial a channel", + "operations": [ + { + "httpMethod": "POST", + "summary": "Dial a created channel.", + "nickname": "dial", + "responseClass": "void", + "parameters": [ + { + "name": "channelId", + "description": "Channel's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "caller", + "description": "Channel ID of caller", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "timeout", + "description": "Dial timeout", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "int", + "defaultValue": 0, + "allowableValues": { + "valueType": "RANGE", + "min": 0 + } + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Channel cannot be found." + }, + { + "code": 409, + "reason": "Channel cannot be dialed." + } + ] + } + ] + }, + { + "path": "/channels/{channelId}/rtp_statistics", + "description": "Get RTP statistics information for RTP on a channel", + "operations": [ + { + "httpMethod": "GET", + "summary": "RTP stats on a channel.", + "nickname": "rtpstatistics", + "responseClass": "RTPstat", + "parameters": [ + { + "name": "channelId", + "description": "Channel's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Channel cannot be found." + } + ] + } + ] + }, + { + "path": "/channels/externalMedia", + "description": "Create a channel to an External Media source/sink.", + "operations": [ + { + "httpMethod": "POST", + "summary": "Start an External Media session.", + "notes": "Create a channel to an External Media source/sink.", + "nickname": "externalMedia", + "responseClass": "Channel", + "parameters": [ + { + "name": "channelId", + "description": "The unique id to assign the channel on creation.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "app", + "description": "Stasis Application to place channel into", + "paramType": "query", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "variables", + "description": "The \"variables\" key in the body object holds variable key/value pairs to set on the channel on creation. Other keys in the body object are interpreted as query parameters. Ex. { \"endpoint\": \"SIP/Alice\", \"variables\": { \"CALLERID(name)\": \"Alice\" } }", + "paramType": "body", + "required": false, + "dataType": "containers", + "allowMultiple": false + }, + { + "name": "external_host", + "description": "Hostname/ip:port of external host", + "paramType": "query", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "encapsulation", + "description": "Payload encapsulation protocol", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string", + "defaultValue": "rtp", + "allowableValues": { + "valueType": "LIST", + "values": [ + "rtp" + ] + } + }, + { + "name": "transport", + "description": "Transport protocol", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string", + "defaultValue": "udp", + "allowableValues": { + "valueType": "LIST", + "values": [ + "udp" + ] + } + }, + { + "name": "connection_type", + "description": "Connection type (client/server)", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string", + "defaultValue": "client", + "allowableValues": { + "valueType": "LIST", + "values": [ + "client" + ] + } + }, + { + "name": "format", + "description": "Format to encode audio in", + "paramType": "query", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "direction", + "description": "External media direction", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string", + "defaultValue": "both", + "allowableValues": { + "valueType": "LIST", + "values": [ + "both" + ] + } + } + ], + "errorResponses": [ + { + "code": 400, + "reason": "Invalid parameters" + }, + { + "code": 409, + "reason": "Channel is not in a Stasis application; Channel is already bridged" + } + ] + } + ] + } + ], + "models": { + "Dialed": { + "id": "Dialed", + "description": "Dialed channel information.", + "properties": {} + }, + "DialplanCEP": { + "id": "DialplanCEP", + "description": "Dialplan location (context/extension/priority)", + "properties": { + "context": { + "required": true, + "type": "string", + "description": "Context in the dialplan" + }, + "exten": { + "required": true, + "type": "string", + "description": "Extension in the dialplan" + }, + "priority": { + "required": true, + "type": "long", + "description": "Priority in the dialplan" + }, + "app_name": { + "required": true, + "type": "string", + "description": "Name of current dialplan application" + }, + "app_data": { + "required": true, + "type": "string", + "description": "Parameter of current dialplan application" + } + } + }, + "CallerID": { + "id": "CallerID", + "description": "Caller identification", + "properties": { + "name": { + "required": true, + "type": "string" + }, + "number": { + "required": true, + "type": "string" + } + } + }, + "RTPstat": { + "id": "RTPstat", + "description": "A statistics of a RTP.", + "properties": { + "txcount": { + "required": true, + "type": "int", + "description": "Number of packets transmitted." + }, + "rxcount": { + "required": true, + "type": "int", + "description": "Number of packets received." + }, + "txjitter": { + "required": false, + "type": "double", + "description": "Jitter on transmitted packets." + }, + "rxjitter": { + "required": false, + "type": "double", + "description": "Jitter on received packets." + }, + "remote_maxjitter": { + "required": false, + "type": "double", + "description": "Maximum jitter on remote side." + }, + "remote_minjitter": { + "required": false, + "type": "double", + "description": "Minimum jitter on remote side." + }, + "remote_normdevjitter": { + "required": false, + "type": "double", + "description": "Average jitter on remote side." + }, + "remote_stdevjitter": { + "required": false, + "type": "double", + "description": "Standard deviation jitter on remote side." + }, + "local_maxjitter": { + "required": false, + "type": "double", + "description": "Maximum jitter on local side." + }, + "local_minjitter": { + "required": false, + "type": "double", + "description": "Minimum jitter on local side." + }, + "local_normdevjitter": { + "required": false, + "type": "double", + "description": "Average jitter on local side." + }, + "local_stdevjitter": { + "required": false, + "type": "double", + "description": "Standard deviation jitter on local side." + }, + "txploss": { + "required": true, + "type": "int", + "description": "Number of transmitted packets lost." + }, + "rxploss": { + "required": true, + "type": "int", + "description": "Number of received packets lost." + }, + "remote_maxrxploss": { + "required": false, + "type": "double", + "description": "Maximum number of packets lost on remote side." + }, + "remote_minrxploss": { + "required": false, + "type": "double", + "description": "Minimum number of packets lost on remote side." + }, + "remote_normdevrxploss": { + "required": false, + "type": "double", + "description": "Average number of packets lost on remote side." + }, + "remote_stdevrxploss": { + "required": false, + "type": "double", + "description": "Standard deviation packets lost on remote side." + }, + "local_maxrxploss": { + "required": false, + "type": "double", + "description": "Maximum number of packets lost on local side." + }, + "local_minrxploss": { + "required": false, + "type": "double", + "description": "Minimum number of packets lost on local side." + }, + "local_normdevrxploss": { + "required": false, + "type": "double", + "description": "Average number of packets lost on local side." + }, + "local_stdevrxploss": { + "required": false, + "type": "double", + "description": "Standard deviation packets lost on local side." + }, + "rtt": { + "required": false, + "type": "double", + "description": "Total round trip time." + }, + "maxrtt": { + "required": false, + "type": "double", + "description": "Maximum round trip time." + }, + "minrtt": { + "required": false, + "type": "double", + "description": "Minimum round trip time." + }, + "normdevrtt": { + "required": false, + "type": "double", + "description": "Average round trip time." + }, + "stdevrtt": { + "required": false, + "type": "double", + "description": "Standard deviation round trip time." + }, + "local_ssrc": { + "required": true, + "type": "int", + "description": "Our SSRC." + }, + "remote_ssrc": { + "required": true, + "type": "int", + "description": "Their SSRC." + }, + "txoctetcount": { + "required": true, + "type": "int", + "description": "Number of octets transmitted." + }, + "rxoctetcount": { + "required": true, + "type": "int", + "description": "Number of octets received." + }, + "channel_uniqueid": { + "required": true, + "type": "string", + "description": "The Asterisk channel's unique ID that owns this instance." + } + } + }, + "Channel": { + "id": "Channel", + "description": "A specific communication connection between Asterisk and an Endpoint.", + "properties": { + "id": { + "required": true, + "type": "string", + "description": "Unique identifier of the channel.\n\nThis is the same as the Uniqueid field in AMI." + }, + "name": { + "required": true, + "type": "string", + "description": "Name of the channel (i.e. SIP/foo-0000a7e3)" + }, + "state": { + "required": true, + "type": "string", + "allowableValues": { + "valueType": "LIST", + "values": [ + "Down", + "Rsrved", + "OffHook", + "Dialing", + "Ring", + "Ringing", + "Up", + "Busy", + "Dialing Offhook", + "Pre-ring", + "Unknown" + ] + } + }, + "caller": { + "required": true, + "type": "CallerID" + }, + "connected": { + "required": true, + "type": "CallerID" + }, + "accountcode": { + "required": true, + "type": "string" + }, + "dialplan": { + "required": true, + "type": "DialplanCEP", + "description": "Current location in the dialplan" + }, + "creationtime": { + "required": true, + "type": "Date", + "description": "Timestamp when channel was created" + }, + "language": { + "required": true, + "type": "string", + "description": "The default spoken language" + }, + "channelvars": { + "required": false, + "type": "object", + "description": "Channel variables" + } + } + } + } +} diff --git a/codegen/src/main/resources/codegen-data/ari_4_1_2/deviceStates.json b/codegen/src/main/resources/codegen-data/ari_4_1_2/deviceStates.json new file mode 100644 index 00000000..bd389355 --- /dev/null +++ b/codegen/src/main/resources/codegen-data/ari_4_1_2/deviceStates.json @@ -0,0 +1,154 @@ +{ + "_copyright": "Copyright (C) 2012 - 2013, Digium, Inc.", + "_author": "Kevin Harwell ", + "_svn_revision": "$Revision$", + "apiVersion": "2.0.0", + "swaggerVersion": "1.1", + "basePath": "http://localhost:8088/ari", + "resourcePath": "/api-docs/deviceStates.{format}", + "requiresModules": [ + "res_stasis_device_state" + ], + "apis": [ + { + "path": "/deviceStates", + "description": "Device states", + "operations": [ + { + "httpMethod": "GET", + "summary": "List all ARI controlled device states.", + "nickname": "list", + "responseClass": "List[DeviceState]" + } + ] + }, + { + "path": "/deviceStates/{deviceName}", + "description": "Device state", + "operations": [ + { + "httpMethod": "GET", + "summary": "Retrieve the current state of a device.", + "nickname": "get", + "responseClass": "DeviceState", + "parameters": [ + { + "name": "deviceName", + "description": "Name of the device", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ] + }, + { + "httpMethod": "PUT", + "summary": "Change the state of a device controlled by ARI. (Note - implicitly creates the device state).", + "nickname": "update", + "responseClass": "void", + "parameters": [ + { + "name": "deviceName", + "description": "Name of the device", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "deviceState", + "description": "Device state value", + "paramType": "query", + "required": true, + "allowMultiple": false, + "dataType": "string", + "allowableValues": { + "valueType": "LIST", + "values": [ + "NOT_INUSE", + "INUSE", + "BUSY", + "INVALID", + "UNAVAILABLE", + "RINGING", + "RINGINUSE", + "ONHOLD" + ] + } + + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Device name is missing" + }, + { + "code": 409, + "reason": "Uncontrolled device specified" + } + ] + }, + { + "httpMethod": "DELETE", + "summary": "Destroy a device-state controlled by ARI.", + "nickname": "delete", + "responseClass": "void", + "parameters": [ + { + "name": "deviceName", + "description": "Name of the device", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Device name is missing" + }, + { + "code": 409, + "reason": "Uncontrolled device specified" + } + ] + } + ] + } + ], + "models": { + "DeviceState": { + "id": "DeviceState", + "description": "Represents the state of a device.", + "properties": { + "name": { + "type": "string", + "description": "Name of the device.", + "required": true + }, + "state": { + "type": "string", + "description": "Device's state", + "required": true, + "allowableValues": { + "valueType": "LIST", + "values": [ + "UNKNOWN", + "NOT_INUSE", + "INUSE", + "BUSY", + "INVALID", + "UNAVAILABLE", + "RINGING", + "RINGINUSE", + "ONHOLD" + ] + } + } + } + } + } +} diff --git a/codegen/src/main/resources/codegen-data/ari_4_1_2/endpoints.json b/codegen/src/main/resources/codegen-data/ari_4_1_2/endpoints.json new file mode 100644 index 00000000..1f77d370 --- /dev/null +++ b/codegen/src/main/resources/codegen-data/ari_4_1_2/endpoints.json @@ -0,0 +1,263 @@ +{ + "_copyright": "Copyright (C) 2012 - 2013, Digium, Inc.", + "_author": "David M. Lee, II ", + "_svn_revision": "$Revision$", + "apiVersion": "2.0.0", + "swaggerVersion": "1.1", + "basePath": "http://localhost:8088/ari", + "resourcePath": "/api-docs/endpoints.{format}", + "apis": [ + { + "path": "/endpoints", + "description": "Asterisk endpoints", + "operations": [ + { + "httpMethod": "GET", + "summary": "List all endpoints.", + "nickname": "list", + "responseClass": "List[Endpoint]" + } + ] + }, + { + "path": "/endpoints/sendMessage", + "description": "Send a message to some technology URI or endpoint.", + "operations": [ + { + "httpMethod": "PUT", + "summary": "Send a message to some technology URI or endpoint.", + "nickname": "sendMessage", + "responseClass": "void", + "parameters": [ + { + "name": "to", + "description": "The endpoint resource or technology specific URI to send the message to. Valid resources are sip, pjsip, and xmpp.", + "paramType": "query", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "from", + "description": "The endpoint resource or technology specific identity to send this message from. Valid resources are sip, pjsip, and xmpp.", + "paramType": "query", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "body", + "description": "The body of the message", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "variables", + "descriptioni": "The \"variables\" key in the body object holds technology specific key/value pairs to append to the message. These can be interpreted and used by the various resource types; for example, pjsip and sip resource types will add the key/value pairs as SIP headers,", + "paramType": "body", + "required": false, + "dataType": "containers", + "allowMultiple": false + } + ], + "errorResponses": [ + { + "code": 400, + "reason": "Invalid parameters for sending a message." + }, + { + "code": 404, + "reason": "Endpoint not found" + } + ] + } + ] + }, + { + "path": "/endpoints/{tech}", + "description": "Asterisk endpoints", + "operations": [ + { + "httpMethod": "GET", + "summary": "List available endoints for a given endpoint technology.", + "nickname": "listByTech", + "responseClass": "List[Endpoint]", + "parameters": [ + { + "name": "tech", + "description": "Technology of the endpoints (sip,iax2,...)", + "paramType": "path", + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Endpoints not found" + } + ] + } + ] + }, + { + "path": "/endpoints/{tech}/{resource}", + "description": "Single endpoint", + "operations": [ + { + "httpMethod": "GET", + "summary": "Details for an endpoint.", + "nickname": "get", + "responseClass": "Endpoint", + "parameters": [ + { + "name": "tech", + "description": "Technology of the endpoint", + "paramType": "path", + "dataType": "string" + }, + { + "name": "resource", + "description": "ID of the endpoint", + "paramType": "path", + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 400, + "reason": "Invalid parameters for sending a message." + }, + { + "code": 404, + "reason": "Endpoints not found" + } + ] + } + ] + }, + { + "path": "/endpoints/{tech}/{resource}/sendMessage", + "description": "Send a message to some endpoint in a technology.", + "operations": [ + { + "httpMethod": "PUT", + "summary": "Send a message to some endpoint in a technology.", + "nickname": "sendMessageToEndpoint", + "responseClass": "void", + "parameters": [ + { + "name": "tech", + "description": "Technology of the endpoint", + "paramType": "path", + "dataType": "string" + }, + { + "name": "resource", + "description": "ID of the endpoint", + "paramType": "path", + "dataType": "string" + }, + { + "name": "from", + "description": "The endpoint resource or technology specific identity to send this message from. Valid resources are sip, pjsip, and xmpp.", + "paramType": "query", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "body", + "description": "The body of the message", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "variables", + "descriptioni": "The \"variables\" key in the body object holds technology specific key/value pairs to append to the message. These can be interpreted and used by the various resource types; for example, pjsip and sip resource types will add the key/value pairs as SIP headers,", + "paramType": "body", + "required": false, + "dataType": "containers", + "allowMultiple": false + } + ], + "errorResponses": [ + { + "code": 400, + "reason": "Invalid parameters for sending a message." + }, + { + "code": 404, + "reason": "Endpoint not found" + } + ] + } + ] + } + ], + "models": { + "Endpoint": { + "id": "Endpoint", + "description": "An external device that may offer/accept calls to/from Asterisk.\n\nUnlike most resources, which have a single unique identifier, an endpoint is uniquely identified by the technology/resource pair.", + "properties": { + "technology": { + "type": "string", + "description": "Technology of the endpoint", + "required": true + }, + "resource": { + "type": "string", + "description": "Identifier of the endpoint, specific to the given technology.", + "required": true + }, + "state": { + "type": "string", + "description": "Endpoint's state", + "required": false, + "allowableValues": { + "valueType": "LIST", + "values": [ + "unknown", + "offline", + "online" + ] + } + }, + "channel_ids": { + "type": "List[string]", + "description": "Id's of channels associated with this endpoint", + "required": true + } + } + }, + "TextMessage": { + "id": "TextMessage", + "description": "A text message.", + "properties": { + "from": { + "type": "string", + "description": "A technology specific URI specifying the source of the message. For sip and pjsip technologies, any SIP URI can be specified. For xmpp, the URI must correspond to the client connection being used to send the message.", + "required": true + }, + "to": { + "type": "string", + "description": "A technology specific URI specifying the destination of the message. Valid technologies include sip, pjsip, and xmp. The destination of a message should be an endpoint.", + "required": true + }, + "body": { + "type": "string", + "description": "The text of the message.", + "required": true + }, + "variables": { + "type": "object", + "description": "Technology specific key/value pairs (JSON object) associated with the message.", + "required": false + } + } + } + } +} diff --git a/codegen/src/main/resources/codegen-data/ari_4_1_2/events.json b/codegen/src/main/resources/codegen-data/ari_4_1_2/events.json new file mode 100644 index 00000000..c9822f6c --- /dev/null +++ b/codegen/src/main/resources/codegen-data/ari_4_1_2/events.json @@ -0,0 +1,918 @@ +{ + "_copyright": "Copyright (C) 2012 - 2013, Digium, Inc.", + "_author": "David M. Lee, II ", + "_svn_revision": "$Revision$", + "apiVersion": "2.0.0", + "swaggerVersion": "1.2", + "basePath": "http://localhost:8088/ari", + "resourcePath": "/api-docs/events.{format}", + "requiresModules": [ + "res_http_websocket" + ], + "apis": [ + { + "path": "/events", + "description": "Events from Asterisk to applications", + "operations": [ + { + "httpMethod": "GET", + "upgrade": "websocket", + "websocketProtocol": "ari", + "summary": "WebSocket connection for events.", + "nickname": "eventWebsocket", + "responseClass": "Message", + "parameters": [ + { + "name": "app", + "description": "Applications to subscribe to.", + "paramType": "query", + "required": true, + "allowMultiple": true, + "dataType": "string" + }, + { + "name": "subscribeAll", + "description": "Subscribe to all Asterisk events. If provided, the applications listed will be subscribed to all events, effectively disabling the application specific subscriptions. Default is 'false'.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "boolean" + } + ] + } + ] + }, + { + "path": "/events/user/{eventName}", + "description": "Stasis application user events", + "operations": [ + { + "httpMethod": "POST", + "summary": "Generate a user event.", + "nickname": "userEvent", + "responseClass": "void", + "parameters": [ + { + "name": "eventName", + "description": "Event name", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "application", + "description": "The name of the application that will receive this event", + "paramType": "query", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "source", + "description": "URI for event source (channel:{channelId}, bridge:{bridgeId}, endpoint:{tech}/{resource}, deviceState:{deviceName}", + "paramType": "query", + "required": false, + "allowMultiple": true, + "dataType": "string" + }, + { + "name": "variables", + "description": "The \"variables\" key in the body object holds custom key/value pairs to add to the user event. Ex. { \"variables\": { \"key\": \"value\" } }", + "paramType": "body", + "required": false, + "allowMultiple": false, + "dataType": "containers" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Application does not exist." + }, + { + "code": 422, + "reason": "Event source not found." + }, + { + "code": 400, + "reason": "Invalid even tsource URI or userevent data." + } + ] + } + ] + } + ], + "models": { + "Message": { + "id": "Message", + "description": "Base type for errors and events", + "discriminator": "type", + "properties": { + "type": { + "type": "string", + "required": true, + "description": "Indicates the type of this message." + }, + "asterisk_id": { + "type": "string", + "required": false, + "description": "The unique ID for the Asterisk instance that raised this event." + } + }, + "subTypes": [ + "MissingParams", + "Event" + ] + }, + "MissingParams": { + "id": "MissingParams", + "description": "Error event sent when required params are missing.", + "properties": { + "params": { + "required": true, + "type": "List[string]", + "description": "A list of the missing parameters" + } + } + }, + "Event": { + "id": "Event", + "description": "Base type for asynchronous events from Asterisk.", + "properties": { + "application": { + "type": "string", + "description": "Name of the application receiving the event.", + "required": true + }, + "timestamp": { + "type": "Date", + "description": "Time at which this event was created.", + "required": true + } + }, + "subTypes": [ + "DeviceStateChanged", + "PlaybackStarted", + "PlaybackContinuing", + "PlaybackFinished", + "RecordingStarted", + "RecordingFinished", + "RecordingFailed", + "ApplicationMoveFailed", + "ApplicationReplaced", + "BridgeCreated", + "BridgeDestroyed", + "BridgeMerged", + "BridgeBlindTransfer", + "BridgeAttendedTransfer", + "BridgeVideoSourceChanged", + "ChannelCreated", + "ChannelDestroyed", + "ChannelEnteredBridge", + "ChannelLeftBridge", + "ChannelStateChange", + "ChannelDtmfReceived", + "ChannelDialplan", + "ChannelCallerId", + "ChannelUserevent", + "ChannelHangupRequest", + "ChannelVarset", + "ChannelTalkingStarted", + "ChannelTalkingFinished", + "ChannelHold", + "ChannelUnhold", + "ContactStatusChange", + "EndpointStateChange", + "Dial", + "StasisEnd", + "StasisStart", + "TextMessageReceived", + "ChannelConnectedLine", + "PeerStatusChange" + ] + }, + "ContactInfo": { + "id": "ContactInfo", + "description": "Detailed information about a contact on an endpoint.", + "properties": { + "uri": { + "type": "string", + "description": "The location of the contact.", + "required": true + }, + "contact_status": { + "type": "string", + "description": "The current status of the contact.", + "required": true, + "allowableValues": { + "valueType": "LIST", + "values": [ + "Unreachable", + "Reachable", + "Unknown", + "NonQualified", + "Removed" + ] + } + }, + "aor": { + "type": "string", + "description": "The Address of Record this contact belongs to.", + "required": true + }, + "roundtrip_usec": { + "type": "string", + "description": "Current round trip time, in microseconds, for the contact.", + "required": false + } + } + }, + "Peer": { + "id": "Peer", + "description": "Detailed information about a remote peer that communicates with Asterisk.", + "properties": { + "peer_status": { + "type": "string", + "description": "The current state of the peer. Note that the values of the status are dependent on the underlying peer technology.", + "required": true + }, + "cause": { + "type": "string", + "description": "An optional reason associated with the change in peer_status.", + "required": false + }, + "address": { + "type": "string", + "description": "The IP address of the peer.", + "required": false + }, + "port": { + "type": "string", + "description": "The port of the peer.", + "required": false + }, + "time": { + "type": "string", + "description": "The last known time the peer was contacted.", + "required": false + } + } + }, + "DeviceStateChanged": { + "id": "DeviceStateChanged", + "description": "Notification that a device state has changed.", + "properties": { + "device_state": { + "type": "DeviceState", + "description": "Device state object", + "required": true + } + } + }, + "PlaybackStarted": { + "id": "PlaybackStarted", + "description": "Event showing the start of a media playback operation.", + "properties": { + "playback": { + "type": "Playback", + "description": "Playback control object", + "required": true + } + } + }, + "PlaybackContinuing": { + "id": "PlaybackContinuing", + "description": "Event showing the continuation of a media playback operation from one media URI to the next in the list.", + "properties": { + "playback": { + "type": "Playback", + "description": "Playback control object", + "required": true + } + } + }, + "PlaybackFinished": { + "id": "PlaybackFinished", + "description": "Event showing the completion of a media playback operation.", + "properties": { + "playback": { + "type": "Playback", + "description": "Playback control object", + "required": true + } + } + }, + "RecordingStarted": { + "id": "RecordingStarted", + "description": "Event showing the start of a recording operation.", + "properties": { + "recording": { + "type": "LiveRecording", + "description": "Recording control object", + "required": true + } + } + }, + "RecordingFinished": { + "id": "RecordingFinished", + "description": "Event showing the completion of a recording operation.", + "properties": { + "recording": { + "type": "LiveRecording", + "description": "Recording control object", + "required": true + } + } + }, + "RecordingFailed": { + "id": "RecordingFailed", + "description": "Event showing failure of a recording operation.", + "properties": { + "recording": { + "type": "LiveRecording", + "description": "Recording control object", + "required": true + } + } + }, + "ApplicationMoveFailed": { + "id": "ApplicationMoveFailed", + "description": "Notification that trying to move a channel to another Stasis application failed.", + "properties": { + "channel": { + "required": true, + "type": "Channel" + }, + "destination": { + "required": true, + "type": "string" + }, + "args": { + "required": true, + "type": "List[string]", + "description": "Arguments to the application" + } + } + }, + "ApplicationReplaced": { + "id": "ApplicationReplaced", + "description": "Notification that another WebSocket has taken over for an application.\n\nAn application may only be subscribed to by a single WebSocket at a time. If multiple WebSockets attempt to subscribe to the same application, the newer WebSocket wins, and the older one receives this event.", + "properties": {} + }, + "BridgeCreated": { + "id": "BridgeCreated", + "description": "Notification that a bridge has been created.", + "properties": { + "bridge": { + "required": true, + "type": "Bridge" + } + } + }, + "BridgeDestroyed": { + "id": "BridgeDestroyed", + "description": "Notification that a bridge has been destroyed.", + "properties": { + "bridge": { + "required": true, + "type": "Bridge" + } + } + }, + "BridgeMerged": { + "id": "BridgeMerged", + "description": "Notification that one bridge has merged into another.", + "properties": { + "bridge": { + "required": true, + "type": "Bridge" + }, + "bridge_from": { + "required": true, + "type": "Bridge" + } + } + }, + "BridgeVideoSourceChanged": { + "id": "BridgeVideoSourceChanged", + "description": "Notification that the source of video in a bridge has changed.", + "properties": { + "bridge": { + "required": true, + "type": "Bridge" + }, + "old_video_source_id": { + "required": false, + "type": "string" + } + } + }, + "BridgeBlindTransfer": { + "id": "BridgeBlindTransfer", + "description": "Notification that a blind transfer has occurred.", + "properties": { + "channel": { + "description": "The channel performing the blind transfer", + "required": true, + "type": "Channel" + }, + "replace_channel": { + "description": "The channel that is replacing transferer when the transferee(s) can not be transferred directly", + "required": false, + "type": "Channel" + }, + "transferee": { + "description": "The channel that is being transferred", + "required": false, + "type": "Channel" + }, + "exten": { + "description": "The extension transferred to", + "required": true, + "type": "string" + }, + "context": { + "description": "The context transferred to", + "required": true, + "type": "string" + }, + "result": { + "description": "The result of the transfer attempt", + "required": true, + "type": "string" + }, + "is_external": { + "description": "Whether the transfer was externally initiated or not", + "required": true, + "type": "boolean" + }, + "bridge": { + "description": "The bridge being transferred", + "type": "Bridge" + } + } + }, + "BridgeAttendedTransfer": { + "id": "BridgeAttendedTransfer", + "description": "Notification that an attended transfer has occurred.", + "properties": { + "transferer_first_leg": { + "description": "First leg of the transferer", + "required": true, + "type": "Channel" + }, + "transferer_second_leg": { + "description": "Second leg of the transferer", + "required": true, + "type": "Channel" + }, + "replace_channel": { + "description": "The channel that is replacing transferer_first_leg in the swap", + "required": false, + "type": "Channel" + }, + "transferee": { + "description": "The channel that is being transferred", + "required": false, + "type": "Channel" + }, + "transfer_target": { + "description": "The channel that is being transferred to", + "required": false, + "type": "Channel" + }, + "result": { + "description": "The result of the transfer attempt", + "required": true, + "type": "string" + }, + "is_external": { + "description": "Whether the transfer was externally initiated or not", + "required": true, + "type": "boolean" + }, + "transferer_first_leg_bridge": { + "description": "Bridge the transferer first leg is in", + "type": "Bridge" + }, + "transferer_second_leg_bridge": { + "description": "Bridge the transferer second leg is in", + "type": "Bridge" + }, + "destination_type": { + "description": "How the transfer was accomplished", + "required": true, + "type": "string" + }, + "destination_bridge": { + "description": "Bridge that survived the merge result", + "type": "string" + }, + "destination_application": { + "description": "Application that has been transferred into", + "type": "string" + }, + "destination_link_first_leg": { + "description": "First leg of a link transfer result", + "type": "Channel" + }, + "destination_link_second_leg": { + "description": "Second leg of a link transfer result", + "type": "Channel" + }, + "destination_threeway_channel": { + "description": "Transferer channel that survived the threeway result", + "type": "Channel" + }, + "destination_threeway_bridge": { + "description": "Bridge that survived the threeway result", + "type": "Bridge" + } + } + }, + "ChannelCreated": { + "id": "ChannelCreated", + "description": "Notification that a channel has been created.", + "properties": { + "channel": { + "required": true, + "type": "Channel" + } + } + }, + "ChannelDestroyed": { + "id": "ChannelDestroyed", + "description": "Notification that a channel has been destroyed.", + "properties": { + "cause": { + "required": true, + "description": "Integer representation of the cause of the hangup", + "type": "int" + }, + "cause_txt": { + "required": true, + "description": "Text representation of the cause of the hangup", + "type": "string" + }, + "channel": { + "required": true, + "type": "Channel" + } + } + }, + "ChannelEnteredBridge": { + "id": "ChannelEnteredBridge", + "description": "Notification that a channel has entered a bridge.", + "properties": { + "bridge": { + "required": true, + "type": "Bridge" + }, + "channel": { + "type": "Channel" + } + } + }, + "ChannelLeftBridge": { + "id": "ChannelLeftBridge", + "description": "Notification that a channel has left a bridge.", + "properties": { + "bridge": { + "required": true, + "type": "Bridge" + }, + "channel": { + "required": true, + "type": "Channel" + } + } + }, + "ChannelStateChange": { + "id": "ChannelStateChange", + "description": "Notification of a channel's state change.", + "properties": { + "channel": { + "required": true, + "type": "Channel" + } + } + }, + "ChannelDtmfReceived": { + "id": "ChannelDtmfReceived", + "description": "DTMF received on a channel.\n\nThis event is sent when the DTMF ends. There is no notification about the start of DTMF", + "properties": { + "digit": { + "required": true, + "type": "string", + "description": "DTMF digit received (0-9, A-E, # or *)" + }, + "duration_ms": { + "required": true, + "type": "int", + "description": "Number of milliseconds DTMF was received" + }, + "channel": { + "required": true, + "type": "Channel", + "description": "The channel on which DTMF was received" + } + } + }, + "ChannelDialplan": { + "id": "ChannelDialplan", + "description": "Channel changed location in the dialplan.", + "properties": { + "channel": { + "required": true, + "type": "Channel", + "description": "The channel that changed dialplan location." + }, + "dialplan_app": { + "required": true, + "type": "string", + "description": "The application about to be executed." + }, + "dialplan_app_data": { + "required": true, + "type": "string", + "description": "The data to be passed to the application." + } + } + }, + "ChannelCallerId": { + "id": "ChannelCallerId", + "description": "Channel changed Caller ID.", + "properties": { + "caller_presentation": { + "required": true, + "type": "int", + "description": "The integer representation of the Caller Presentation value." + }, + "caller_presentation_txt": { + "required": true, + "type": "string", + "description": "The text representation of the Caller Presentation value." + }, + "channel": { + "required": true, + "type": "Channel", + "description": "The channel that changed Caller ID." + } + } + }, + "ChannelUserevent": { + "id": "ChannelUserevent", + "description": "User-generated event with additional user-defined fields in the object.", + "properties": { + "eventname": { + "required": true, + "type": "string", + "description": "The name of the user event." + }, + "channel": { + "required": false, + "type": "Channel", + "description": "A channel that is signaled with the user event." + }, + "bridge": { + "required": false, + "type": "Bridge", + "description": "A bridge that is signaled with the user event." + }, + "endpoint": { + "required": false, + "type": "Endpoint", + "description": "A endpoint that is signaled with the user event." + }, + "userevent": { + "required": true, + "type": "object", + "description": "Custom Userevent data" + } + } + }, + "ChannelHangupRequest": { + "id": "ChannelHangupRequest", + "description": "A hangup was requested on the channel.", + "properties": { + "cause": { + "type": "int", + "description": "Integer representation of the cause of the hangup." + }, + "soft": { + "type": "boolean", + "description": "Whether the hangup request was a soft hangup request." + }, + "channel": { + "required": true, + "type": "Channel", + "description": "The channel on which the hangup was requested." + } + } + }, + "ChannelVarset": { + "id": "ChannelVarset", + "description": "Channel variable changed.", + "properties": { + "variable": { + "required": true, + "type": "string", + "description": "The variable that changed." + }, + "value": { + "required": true, + "type": "string", + "description": "The new value of the variable." + }, + "channel": { + "required": false, + "type": "Channel", + "description": "The channel on which the variable was set.\n\nIf missing, the variable is a global variable." + } + } + }, + "ChannelHold": { + "id": "ChannelHold", + "description": "A channel initiated a media hold.", + "properties": { + "channel": { + "required": true, + "type": "Channel", + "description": "The channel that initiated the hold event." + }, + "musicclass": { + "required": false, + "type": "string", + "description": "The music on hold class that the initiator requested." + } + } + }, + "ChannelUnhold": { + "id": "ChannelUnhold", + "description": "A channel initiated a media unhold.", + "properties": { + "channel": { + "required": true, + "type": "Channel", + "description": "The channel that initiated the unhold event." + } + } + }, + "ChannelTalkingStarted": { + "id": "ChannelTalkingStarted", + "description": "Talking was detected on the channel.", + "properties": { + "channel": { + "required": true, + "type": "Channel", + "description": "The channel on which talking started." + } + } + }, + "ChannelTalkingFinished": { + "id": "ChannelTalkingFinished", + "description": "Talking is no longer detected on the channel.", + "properties": { + "channel": { + "required": true, + "type": "Channel", + "description": "The channel on which talking completed." + }, + "duration": { + "required": true, + "type": "int", + "description": "The length of time, in milliseconds, that talking was detected on the channel" + } + } + }, + "ContactStatusChange": { + "id": "ContactStatusChange", + "description": "The state of a contact on an endpoint has changed.", + "properties": { + "endpoint": { + "required": true, + "type": "Endpoint" + }, + "contact_info": { + "required": true, + "type": "ContactInfo" + } + } + }, + "PeerStatusChange": { + "id": "PeerStatusChange", + "description": "The state of a peer associated with an endpoint has changed.", + "properties": { + "endpoint": { + "required": true, + "type": "Endpoint" + }, + "peer": { + "required": true, + "type": "Peer" + } + } + }, + "EndpointStateChange": { + "id": "EndpointStateChange", + "description": "Endpoint state changed.", + "properties": { + "endpoint": { + "required": true, + "type": "Endpoint" + } + } + }, + "Dial": { + "id": "Dial", + "description": "Dialing state has changed.", + "properties": { + "caller": { + "required": false, + "type": "Channel", + "description": "The calling channel." + }, + "peer": { + "required": true, + "type": "Channel", + "description": "The dialed channel." + }, + "forward": { + "required": false, + "type": "string", + "description": "Forwarding target requested by the original dialed channel." + }, + "forwarded": { + "required": false, + "type": "Channel", + "description": "Channel that the caller has been forwarded to." + }, + "dialstring": { + "required": false, + "type": "string", + "description": "The dial string for calling the peer channel." + }, + "dialstatus": { + "required": true, + "type": "string", + "description": "Current status of the dialing attempt to the peer." + } + } + }, + "StasisEnd": { + "id": "StasisEnd", + "description": "Notification that a channel has left a Stasis application.", + "properties": { + "channel": { + "required": true, + "type": "Channel" + } + } + }, + "StasisStart": { + "id": "StasisStart", + "description": "Notification that a channel has entered a Stasis application.", + "properties": { + "args": { + "required": true, + "type": "List[string]", + "description": "Arguments to the application" + }, + "channel": { + "required": true, + "type": "Channel" + }, + "replace_channel": { + "required": false, + "type": "Channel" + } + } + }, + "TextMessageReceived": { + "id": "TextMessageReceived", + "description": "A text message was received from an endpoint.", + "properties": { + "message": { + "required": true, + "type": "TextMessage" + }, + "endpoint": { + "required": false, + "type": "Endpoint" + } + } + }, + "ChannelConnectedLine": { + "id": "ChannelConnectedLine", + "description": "Channel changed Connected Line.", + "properties": { + "channel": { + "required": true, + "type": "Channel", + "description": "The channel whose connected line has changed." + } + } + } + } +} diff --git a/codegen/src/main/resources/codegen-data/ari_4_1_2/mailboxes.json b/codegen/src/main/resources/codegen-data/ari_4_1_2/mailboxes.json new file mode 100644 index 00000000..8f5941b8 --- /dev/null +++ b/codegen/src/main/resources/codegen-data/ari_4_1_2/mailboxes.json @@ -0,0 +1,137 @@ +{ + "_copyright": "Copyright (C) 2013, Digium, Inc.", + "_author": "Jonathan Rose ", + "_svn_revision": "$Revision$", + "apiVersion": "2.0.0", + "swaggerVersion": "1.1", + "basePath": "http://localhost:8088/ari", + "resourcePath": "/api-docs/mailboxes.{format}", + "requiresModules": [ + "res_stasis_mailbox" + ], + "apis": [ + { + "path": "/mailboxes", + "description": "Mailboxes", + "operations": [ + { + "httpMethod": "GET", + "summary": "List all mailboxes.", + "nickname": "list", + "responseClass": "List[Mailbox]" + } + ] + }, + { + "path": "/mailboxes/{mailboxName}", + "description": "Mailbox state", + "operations": [ + { + "httpMethod": "GET", + "summary": "Retrieve the current state of a mailbox.", + "nickname": "get", + "responseClass": "Mailbox", + "parameters": [ + { + "name": "mailboxName", + "description": "Name of the mailbox", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Mailbox not found" + } + ] + }, + { + "httpMethod": "PUT", + "summary": "Change the state of a mailbox. (Note - implicitly creates the mailbox).", + "nickname": "update", + "responseClass": "void", + "parameters": [ + { + "name": "mailboxName", + "description": "Name of the mailbox", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "oldMessages", + "description": "Count of old messages in the mailbox", + "paramType": "query", + "required": true, + "allowMultiple": false, + "dataType": "int" + }, + { + "name": "newMessages", + "description": "Count of new messages in the mailbox", + "paramType": "query", + "required": true, + "allowMultiple": false, + "dataType": "int" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Mailbox not found" + } + ] + }, + { + "httpMethod": "DELETE", + "summary": "Destroy a mailbox.", + "nickname": "delete", + "responseClass": "void", + "parameters": [ + { + "name": "mailboxName", + "description": "Name of the mailbox", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Mailbox not found" + } + ] + } + ] + } + ], + "models": { + "Mailbox": { + "id": "Mailbox", + "description": "Represents the state of a mailbox.", + "properties": { + "name": { + "type": "string", + "description": "Name of the mailbox.", + "required": true + }, + "old_messages": { + "type": "int", + "description": "Count of old messages in the mailbox.", + "required": true + }, + "new_messages": { + "type": "int", + "description": "Count of new messages in the mailbox.", + "required": true + } + } + } + } +} diff --git a/codegen/src/main/resources/codegen-data/ari_4_1_2/playbacks.json b/codegen/src/main/resources/codegen-data/ari_4_1_2/playbacks.json new file mode 100644 index 00000000..a78dcae7 --- /dev/null +++ b/codegen/src/main/resources/codegen-data/ari_4_1_2/playbacks.json @@ -0,0 +1,164 @@ +{ + "_copyright": "Copyright (C) 2012 - 2013, Digium, Inc.", + "_author": "David M. Lee, II ", + "_svn_revision": "$Revision$", + "apiVersion": "2.0.0", + "swaggerVersion": "1.1", + "basePath": "http://localhost:8088/ari", + "resourcePath": "/api-docs/playbacks.{format}", + "requiresModules": [ + "res_stasis_playback" + ], + "apis": [ + { + "path": "/playbacks/{playbackId}", + "description": "Control object for a playback operation.", + "operations": [ + { + "httpMethod": "GET", + "summary": "Get a playback's details.", + "nickname": "get", + "responseClass": "Playback", + "parameters": [ + { + "name": "playbackId", + "description": "Playback's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "The playback cannot be found" + } + ] + }, + { + "httpMethod": "DELETE", + "summary": "Stop a playback.", + "nickname": "stop", + "responseClass": "void", + "parameters": [ + { + "name": "playbackId", + "description": "Playback's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "The playback cannot be found" + } + ] + } + ] + }, + { + "path": "/playbacks/{playbackId}/control", + "description": "Control object for a playback operation.", + "operations": [ + { + "httpMethod": "POST", + "summary": "Control a playback.", + "nickname": "control", + "responseClass": "void", + "parameters": [ + { + "name": "playbackId", + "description": "Playback's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "operation", + "description": "Operation to perform on the playback.", + "paramType": "query", + "required": true, + "allowMultiple": false, + "dataType": "string", + "allowableValues": { + "valueType": "LIST", + "values": [ + "restart", + "pause", + "unpause", + "reverse", + "forward" + ] + } + } + ], + "errorResponses": [ + { + "code": 400, + "reason": "The provided operation parameter was invalid" + }, + { + "code": 404, + "reason": "The playback cannot be found" + }, + { + "code": 409, + "reason": "The operation cannot be performed in the playback's current state" + } +] + } + ] + } + ], + "models": { + "Playback": { + "id": "Playback", + "description": "Object representing the playback of media to a channel", + "properties": { + "id": { + "type": "string", + "description": "ID for this playback operation", + "required": true + }, + "media_uri": { + "type": "string", + "description": "The URI for the media currently being played back.", + "required": true + }, + "next_media_uri": { + "type": "string", + "description": "If a list of URIs is being played, the next media URI to be played back.", + "required": false + }, + "target_uri": { + "type": "string", + "description": "URI for the channel or bridge to play the media on", + "required": true + }, + "language": { + "type": "string", + "description": "For media types that support multiple languages, the language requested for playback." + }, + "state": { + "type": "string", + "description": "Current state of the playback operation.", + "required": true, + "allowableValues": { + "valueType": "LIST", + "values": [ + "queued", + "playing", + "continuing", + "done" + ] + } + } + } + } + } +} diff --git a/codegen/src/main/resources/codegen-data/ari_4_1_2/recordings.json b/codegen/src/main/resources/codegen-data/ari_4_1_2/recordings.json new file mode 100644 index 00000000..6ffd6d8e --- /dev/null +++ b/codegen/src/main/resources/codegen-data/ari_4_1_2/recordings.json @@ -0,0 +1,413 @@ +{ + "_copyright": "Copyright (C) 2012 - 2013, Digium, Inc.", + "_author": "David M. Lee, II ", + "_svn_revision": "$Revision$", + "apiVersion": "2.0.0", + "swaggerVersion": "1.1", + "basePath": "http://localhost:8088/ari", + "resourcePath": "/api-docs/recordings.{format}", + "requiresModules": [ + "res_stasis_recording" + ], + "apis": [ + { + "path": "/recordings/stored", + "description": "Recordings", + "operations": [ + { + "httpMethod": "GET", + "summary": "List recordings that are complete.", + "nickname": "listStored", + "responseClass": "List[StoredRecording]" + } + ] + }, + { + "path": "/recordings/stored/{recordingName}", + "description": "Individual recording", + "operations": [ + { + "httpMethod": "GET", + "summary": "Get a stored recording's details.", + "nickname": "getStored", + "responseClass": "StoredRecording", + "parameters": [ + { + "name": "recordingName", + "description": "The name of the recording", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Recording not found" + } + ] + }, + { + "httpMethod": "DELETE", + "summary": "Delete a stored recording.", + "nickname": "deleteStored", + "responseClass": "void", + "parameters": [ + { + "name": "recordingName", + "description": "The name of the recording", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Recording not found" + } + ] + } + ] + }, + { + "path": "/recordings/stored/{recordingName}/file", + "description": "The actual file associated with the stored recording", + "operations": [ + { + "httpMethod": "GET", + "summary": "Get the file associated with the stored recording.", + "nickname": "getStoredFile", + "responseClass": "binary", + "parameters": [ + { + "name": "recordingName", + "description": "The name of the recording", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 403, + "reason": "The recording file could not be opened" + }, + { + "code": 404, + "reason": "Recording not found" + } + ] + } + ] + }, + { + "path": "/recordings/stored/{recordingName}/copy", + "description": "Copy an individual recording", + "operations": [ + { + "httpMethod": "POST", + "summary": "Copy a stored recording.", + "nickname": "copyStored", + "responseClass": "StoredRecording", + "parameters": [ + { + "name": "recordingName", + "description": "The name of the recording to copy", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "destinationRecordingName", + "description": "The destination name of the recording", + "paramType": "query", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Recording not found" + }, + { + "code": 409, + "reason": "A recording with the same name already exists on the system" + } + ] + } + ] + }, + { + "path": "/recordings/live/{recordingName}", + "description": "A recording that is in progress", + "operations": [ + { + "httpMethod": "GET", + "summary": "List live recordings.", + "nickname": "getLive", + "responseClass": "LiveRecording", + "parameters": [ + { + "name": "recordingName", + "description": "The name of the recording", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Recording not found" + } + ] + }, + { + "httpMethod": "DELETE", + "summary": "Stop a live recording and discard it.", + "nickname": "cancel", + "responseClass": "void", + "parameters": [ + { + "name": "recordingName", + "description": "The name of the recording", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Recording not found" + } + ] + } + ] + }, + { + "path": "/recordings/live/{recordingName}/stop", + "operations": [ + { + "httpMethod": "POST", + "summary": "Stop a live recording and store it.", + "nickname": "stop", + "responseClass": "void", + "parameters": [ + { + "name": "recordingName", + "description": "The name of the recording", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Recording not found" + } + ] + } + ] + }, + { + "path": "/recordings/live/{recordingName}/pause", + "operations": [ + { + "httpMethod": "POST", + "summary": "Pause a live recording.", + "notes": "Pausing a recording suspends silence detection, which will be restarted when the recording is unpaused. Paused time is not included in the accounting for maxDurationSeconds.", + "nickname": "pause", + "responseClass": "void", + "parameters": [ + { + "name": "recordingName", + "description": "The name of the recording", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Recording not found" + }, + { + "code": 409, + "reason": "Recording not in session" + } + ] + }, + { + "httpMethod": "DELETE", + "summary": "Unpause a live recording.", + "nickname": "unpause", + "responseClass": "void", + "parameters": [ + { + "name": "recordingName", + "description": "The name of the recording", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Recording not found" + }, + { + "code": 409, + "reason": "Recording not in session" + } + ] + } + ] + }, + { + "path": "/recordings/live/{recordingName}/mute", + "operations": [ + { + "httpMethod": "POST", + "summary": "Mute a live recording.", + "notes": "Muting a recording suspends silence detection, which will be restarted when the recording is unmuted.", + "nickname": "mute", + "responseClass": "void", + "parameters": [ + { + "name": "recordingName", + "description": "The name of the recording", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Recording not found" + }, + { + "code": 409, + "reason": "Recording not in session" + } + ] + }, + { + "httpMethod": "DELETE", + "summary": "Unmute a live recording.", + "nickname": "unmute", + "responseClass": "void", + "parameters": [ + { + "name": "recordingName", + "description": "The name of the recording", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Recording not found" + }, + { + "code": 409, + "reason": "Recording not in session" + } + ] + } + ] + } + ], + "models": { + "StoredRecording": { + "id": "StoredRecording", + "description": "A past recording that may be played back.", + "properties": { + "name": { + "required": true, + "type": "string" + }, + "format": { + "required": true, + "type": "string" + } + } + }, + "LiveRecording": { + "id": "LiveRecording", + "description": "A recording that is in progress", + "properties": { + "name": { + "required": true, + "type": "string", + "description": "Base name for the recording" + }, + "format": { + "required": true, + "type": "string", + "description": "Recording format (wav, gsm, etc.)" + }, + "target_uri": { + "required": true, + "type": "string", + "description": "URI for the channel or bridge being recorded" + }, + "state": { + "required": true, + "type": "string", + "allowableValues": { + "valueType": "LIST", + "values": [ + "queued", + "recording", + "paused", + "done", + "failed", + "canceled" + ] + } + }, + "duration": { + "required": false, + "type": "int", + "description": "Duration in seconds of the recording" + }, + "talking_duration": { + "required": false, + "type": "int", + "description": "Duration of talking, in seconds, detected in the recording. This is only available if the recording was initiated with a non-zero maxSilenceSeconds." + }, + "silence_duration": { + "required": false, + "type": "int", + "description": "Duration of silence, in seconds, detected in the recording. This is only available if the recording was initiated with a non-zero maxSilenceSeconds." + }, + "cause": { + "required": false, + "type": "string", + "description": "Cause for recording failure if failed" + } + } + } + } +} diff --git a/codegen/src/main/resources/codegen-data/ari_4_1_2/sounds.json b/codegen/src/main/resources/codegen-data/ari_4_1_2/sounds.json new file mode 100644 index 00000000..8fbe1c57 --- /dev/null +++ b/codegen/src/main/resources/codegen-data/ari_4_1_2/sounds.json @@ -0,0 +1,99 @@ +{ + "_copyright": "Copyright (C) 2012 - 2013, Digium, Inc.", + "_author": "David M. Lee, II ", + "_svn_revision": "$Revision$", + "apiVersion": "2.0.0", + "swaggerVersion": "1.1", + "basePath": "http://localhost:8088/ari", + "resourcePath": "/api-docs/sounds.{format}", + "apis": [ + { + "path": "/sounds", + "description": "Sounds", + "operations": [ + { + "httpMethod": "GET", + "summary": "List all sounds.", + "nickname": "list", + "responseClass": "List[Sound]", + "parameters": [ + { + "name": "lang", + "description": "Lookup sound for a specific language.", + "paramType": "query", + "dataType": "string", + "required": false + }, + { + "name": "format", + "description": "Lookup sound in a specific format.", + "paramType": "query", + "dataType": "string", + "required": false, + "__note": "core show translation can show translation paths between formats, along with relative costs. so this could be just installed format, or we could follow that for transcoded formats." + } + ] + } + ] + }, + { + "path": "/sounds/{soundId}", + "description": "Individual sound", + "operations": [ + { + "httpMethod": "GET", + "summary": "Get a sound's details.", + "nickname": "get", + "responseClass": "Sound", + "parameters": [ + { + "name": "soundId", + "description": "Sound's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ] + } + ] + } + ], + "models": { + "FormatLangPair": { + "id": "FormatLangPair", + "description": "Identifies the format and language of a sound file", + "properties": { + "language": { + "required": true, + "type": "string" + }, + "format": { + "required": true, + "type": "string" + } + } + }, + "Sound": { + "id": "Sound", + "description": "A media file that may be played back.", + "properties": { + "id": { + "required": true, + "description": "Sound's identifier.", + "type": "string" + }, + "text": { + "required": false, + "description": "Text description of the sound, usually the words spoken.", + "type": "string" + }, + "formats": { + "required": true, + "description": "The formats and languages in which this sound is available.", + "type": "List[FormatLangPair]" + } + } + } + } +} diff --git a/codegen/src/main/resources/codegen-data/ari_5_1_0/applications.json b/codegen/src/main/resources/codegen-data/ari_5_1_0/applications.json new file mode 100644 index 00000000..09c5cd5c --- /dev/null +++ b/codegen/src/main/resources/codegen-data/ari_5_1_0/applications.json @@ -0,0 +1,223 @@ +{ + "_copyright": "Copyright (C) 2013, Digium, Inc.", + "_author": "David M. Lee, II ", + "_svn_revision": "$Revision$", + "apiVersion": "2.0.0", + "swaggerVersion": "1.1", + "basePath": "http://localhost:8088/ari", + "resourcePath": "/api-docs/applications.{format}", + "apis": [ + { + "path": "/applications", + "description": "Stasis applications", + "operations": [ + { + "httpMethod": "GET", + "summary": "List all applications.", + "nickname": "list", + "responseClass": "List[Application]" + } + ] + }, + { + "path": "/applications/{applicationName}", + "description": "Stasis application", + "operations": [ + { + "httpMethod": "GET", + "summary": "Get details of an application.", + "nickname": "get", + "responseClass": "Application", + "parameters": [ + { + "name": "applicationName", + "description": "Application's name", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Application does not exist." + } + ] + } + ] + }, + { + "path": "/applications/{applicationName}/subscription", + "description": "Stasis application", + "operations": [ + { + "httpMethod": "POST", + "summary": "Subscribe an application to a event source.", + "notes": "Returns the state of the application after the subscriptions have changed", + "nickname": "subscribe", + "responseClass": "Application", + "parameters": [ + { + "name": "applicationName", + "description": "Application's name", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "eventSource", + "description": "URI for event source (channel:{channelId}, bridge:{bridgeId}, endpoint:{tech}[/{resource}], deviceState:{deviceName}", + "paramType": "query", + "required": true, + "allowMultiple": true, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 400, + "reason": "Missing parameter." + }, + { + "code": 404, + "reason": "Application does not exist." + }, + { + "code": 422, + "reason": "Event source does not exist." + } + ] + }, + { + "httpMethod": "DELETE", + "summary": "Unsubscribe an application from an event source.", + "notes": "Returns the state of the application after the subscriptions have changed", + "nickname": "unsubscribe", + "responseClass": "Application", + "parameters": [ + { + "name": "applicationName", + "description": "Application's name", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "eventSource", + "description": "URI for event source (channel:{channelId}, bridge:{bridgeId}, endpoint:{tech}[/{resource}], deviceState:{deviceName}", + "paramType": "query", + "required": true, + "allowMultiple": true, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 400, + "reason": "Missing parameter; event source scheme not recognized." + }, + { + "code": 404, + "reason": "Application does not exist." + }, + { + "code": 409, + "reason": "Application not subscribed to event source." + }, + { + "code": 422, + "reason": "Event source does not exist." + } + ] + } + ] + }, + { + "path": "/applications/{applicationName}/eventFilter", + "description": "Stasis application", + "operations": [ + { + "httpMethod": "PUT", + "summary": "Filter application events types.", + "notes": "Allowed and/or disallowed event type filtering can be done. The body (parameter) should specify a JSON key/value object that describes the type of event filtering needed. One, or both of the following keys can be designated:

\"allowed\" - Specifies an allowed list of event types
\"disallowed\" - Specifies a disallowed list of event types

Further, each of those key's value should be a JSON array that holds zero, or more JSON key/value objects. Each of these objects must contain the following key with an associated value:

\"type\" - The type name of the event to filter

The value must be the string name (case sensitive) of the event type that needs filtering. For example:

{ \"allowed\": [ { \"type\": \"StasisStart\" }, { \"type\": \"StasisEnd\" } ] }

As this specifies only an allowed list, then only those two event type messages are sent to the application. No other event messages are sent.

The following rules apply:

* If the body is empty, both the allowed and disallowed filters are set empty.
* If both list types are given then both are set to their respective values (note, specifying an empty array for a given type sets that type to empty).
* If only one list type is given then only that type is set. The other type is not updated.
* An empty \"allowed\" list means all events are allowed.
* An empty \"disallowed\" list means no events are disallowed.
* Disallowed events take precedence over allowed events if the event type is specified in both lists.", + "nickname": "filter", + "responseClass": "Application", + "parameters": [ + { + "name": "applicationName", + "description": "Application's name", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "filter", + "description": "Specify which event types to allow/disallow", + "paramType": "body", + "required": false, + "dataType": "object", + "allowMultiple": false + } + ], + "errorResponses": [ + { + "code": 400, + "reason": "Bad request." + }, + { + "code": 404, + "reason": "Application does not exist." + } + ] + } + ] + } + ], + "models": { + "Application": { + "id": "Application", + "description": "Details of a Stasis application", + "properties": { + "name": { + "type": "string", + "description": "Name of this application", + "required": true + }, + "channel_ids": { + "type": "List[string]", + "description": "Id's for channels subscribed to.", + "required": true + }, + "bridge_ids": { + "type": "List[string]", + "description": "Id's for bridges subscribed to.", + "required": true + }, + "endpoint_ids": { + "type": "List[string]", + "description": "{tech}/{resource} for endpoints subscribed to.", + "required": true + }, + "device_names": { + "type": "List[string]", + "description": "Names of the devices subscribed to.", + "required": true + }, + "events_allowed": { + "type": "List[object]", + "description": "Event types sent to the application.", + "required": true + }, + "events_disallowed": { + "type": "List[object]", + "description": "Event types not sent to the application.", + "required": true + } + } + } + } +} diff --git a/codegen/src/main/resources/codegen-data/ari_5_1_0/asterisk.json b/codegen/src/main/resources/codegen-data/ari_5_1_0/asterisk.json new file mode 100644 index 00000000..841e6cd8 --- /dev/null +++ b/codegen/src/main/resources/codegen-data/ari_5_1_0/asterisk.json @@ -0,0 +1,725 @@ +{ + "_copyright": "Copyright (C) 2012 - 2013, Digium, Inc.", + "_author": "David M. Lee, II ", + "_svn_revision": "$Revision$", + "apiVersion": "2.0.0", + "swaggerVersion": "1.1", + "basePath": "http://localhost:8088/ari", + "resourcePath": "/api-docs/asterisk.{format}", + "apis": [ + { + "path": "/asterisk/config/dynamic/{configClass}/{objectType}/{id}", + "description": "Asterisk dynamic configuration", + "operations": [ + { + "httpMethod": "GET", + "summary": "Retrieve a dynamic configuration object.", + "nickname": "getObject", + "responseClass": "List[ConfigTuple]", + "parameters": [ + { + "name": "configClass", + "description": "The configuration class containing dynamic configuration objects.", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "objectType", + "description": "The type of configuration object to retrieve.", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "id", + "description": "The unique identifier of the object to retrieve.", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "{configClass|objectType|id} not found" + } + ] + }, + { + "httpMethod": "PUT", + "summary": "Create or update a dynamic configuration object.", + "nickname": "updateObject", + "responseClass": "List[ConfigTuple]", + "parameters": [ + { + "name": "configClass", + "description": "The configuration class containing dynamic configuration objects.", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "objectType", + "description": "The type of configuration object to create or update.", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "id", + "description": "The unique identifier of the object to create or update.", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "fields", + "description": "The body object should have a value that is a list of ConfigTuples, which provide the fields to update. Ex. [ { \"attribute\": \"directmedia\", \"value\": \"false\" } ]", + "paramType": "body", + "required": false, + "dataType": "containers", + "allowMultiple": false + } + ], + "errorResponses": [ + { + "code": 400, + "reason": "Bad request body" + }, + { + "code": 403, + "reason": "Could not create or update object" + }, + { + "code": 404, + "reason": "{configClass|objectType} not found" + } + ] + }, + { + "httpMethod": "DELETE", + "summary": "Delete a dynamic configuration object.", + "nickname": "deleteObject", + "responseClass": "void", + "parameters": [ + { + "name": "configClass", + "description": "The configuration class containing dynamic configuration objects.", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "objectType", + "description": "The type of configuration object to delete.", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "id", + "description": "The unique identifier of the object to delete.", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 403, + "reason": "Could not delete object" + }, + { + "code": 404, + "reason": "{configClass|objectType|id} not found" + } + ] + } + ] + }, + { + "path": "/asterisk/info", + "description": "Asterisk system information (similar to core show settings)", + "operations": [ + { + "httpMethod": "GET", + "summary": "Gets Asterisk system information.", + "nickname": "getInfo", + "responseClass": "AsteriskInfo", + "parameters": [ + { + "name": "only", + "description": "Filter information returned", + "paramType": "query", + "required": false, + "allowMultiple": true, + "dataType": "string", + "allowableValues": { + "valueType": "LIST", + "values": [ + "build", + "system", + "config", + "status" + ] + } + } + ] + } + ] + }, + { + "path": "/asterisk/ping", + "description": "Asterisk ping", + "operations": [ + { + "httpMethod": "GET", + "summary": "Response pong message.", + "nickname": "ping", + "responseClass": "AsteriskPing" + } + ] + }, + { + "path": "/asterisk/modules", + "description": "Asterisk modules", + "operations": [ + { + "httpMethod": "GET", + "summary": "List Asterisk modules.", + "nickname": "listModules", + "responseClass": "List[Module]" + } + ] + }, + { + "path": "/asterisk/modules/{moduleName}", + "description": "Asterisk module", + "operations": [ + { + "httpMethod": "GET", + "summary": "Get Asterisk module information.", + "nickname": "getModule", + "responseClass": "Module", + "parameters": [ + { + "name": "moduleName", + "description": "Module's name", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Module could not be found in running modules." + }, + { + "code": 409, + "reason": "Module information could not be retrieved." + } + ] + }, + { + "httpMethod": "POST", + "summary": "Load an Asterisk module.", + "nickname": "loadModule", + "responseClass": "void", + "parameters": [ + { + "name": "moduleName", + "description": "Module's name", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 409, + "reason": "Module could not be loaded." + } + ] + }, + { + "httpMethod": "DELETE", + "summary": "Unload an Asterisk module.", + "nickname": "unloadModule", + "responseClass": "void", + "parameters": [ + { + "name": "moduleName", + "description": "Module's name", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Module not found in running modules." + }, + { + "code": 409, + "reason": "Module could not be unloaded." + } + ] + }, + { + "httpMethod": "PUT", + "summary": "Reload an Asterisk module.", + "nickname": "reloadModule", + "responseClass": "void", + "parameters": [ + { + "name": "moduleName", + "description": "Module's name", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Module not found in running modules." + }, + { + "code": 409, + "reason": "Module could not be reloaded." + } + ] + } + ] + }, + { + "path": "/asterisk/logging", + "description": "Asterisk log channels", + "operations": [ + { + "httpMethod": "GET", + "summary": "Gets Asterisk log channel information.", + "nickname": "listLogChannels", + "responseClass": "List[LogChannel]" + } + ] + }, + { + "path": "/asterisk/logging/{logChannelName}", + "description": "Asterisk log channel", + "operations": [ + { + "httpMethod": "POST", + "summary": "Adds a log channel.", + "nickname": "addLog", + "responseClass": "void", + "parameters": [ + { + "name": "logChannelName", + "description": "The log channel to add", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "configuration", + "description": "levels of the log channel", + "paramType": "query", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 400, + "reason": "Bad request body" + }, + { + "code": 409, + "reason": "Log channel could not be created." + } + ] + }, + { + "httpMethod": "DELETE", + "summary": "Deletes a log channel.", + "nickname": "deleteLog", + "responseClass": "void", + "parameters": [ + { + "name": "logChannelName", + "description": "Log channels name", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Log channel does not exist." + } + ] + } + ] + }, + { + "path": "/asterisk/logging/{logChannelName}/rotate", + "description": "Asterisk log channel", + "operations": [ + { + "httpMethod": "PUT", + "summary": "Rotates a log channel.", + "nickname": "rotateLog", + "responseClass": "void", + "parameters": [ + { + "name": "logChannelName", + "description": "Log channel's name", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Log channel does not exist." + } + ] + } + ] + }, + { + "path": "/asterisk/variable", + "description": "Global variables", + "operations": [ + { + "httpMethod": "GET", + "summary": "Get the value of a global variable.", + "nickname": "getGlobalVar", + "responseClass": "Variable", + "parameters": [ + { + "name": "variable", + "description": "The variable to get", + "paramType": "query", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 400, + "reason": "Missing variable parameter." + } + ] + }, + { + "httpMethod": "POST", + "summary": "Set the value of a global variable.", + "nickname": "setGlobalVar", + "responseClass": "void", + "parameters": [ + { + "name": "variable", + "description": "The variable to set", + "paramType": "query", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "value", + "description": "The value to set the variable to", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 400, + "reason": "Missing variable parameter." + } + ] + } + ] + } + ], + "models": { + "BuildInfo": { + "id": "BuildInfo", + "description": "Info about how Asterisk was built", + "properties": { + "os": { + "required": true, + "type": "string", + "description": "OS Asterisk was built on." + }, + "kernel": { + "required": true, + "type": "string", + "description": "Kernel version Asterisk was built on." + }, + "options": { + "required": true, + "type": "string", + "description": "Compile time options, or empty string if default." + }, + "machine": { + "required": true, + "type": "string", + "description": "Machine architecture (x86_64, i686, ppc, etc.)" + }, + "date": { + "required": true, + "type": "string", + "description": "Date and time when Asterisk was built." + }, + "user": { + "required": true, + "type": "string", + "description": "Username that build Asterisk" + } + } + }, + "SystemInfo": { + "id": "SystemInfo", + "description": "Info about Asterisk", + "properties": { + "version": { + "required": true, + "type": "string", + "description": "Asterisk version." + }, + "entity_id": { + "required": true, + "type": "string", + "description": "" + } + } + }, + "SetId": { + "id": "SetId", + "description": "Effective user/group id", + "properties": { + "user": { + "required": true, + "type": "string", + "description": "Effective user id." + }, + "group": { + "required": true, + "type": "string", + "description": "Effective group id." + } + } + }, + "ConfigInfo": { + "id": "ConfigInfo", + "description": "Info about Asterisk configuration", + "properties": { + "name": { + "required": true, + "type": "string", + "description": "Asterisk system name." + }, + "default_language": { + "required": true, + "type": "string", + "description": "Default language for media playback." + }, + "max_channels": { + "required": false, + "type": "int", + "description": "Maximum number of simultaneous channels." + }, + "max_open_files": { + "required": false, + "type": "int", + "description": "Maximum number of open file handles (files, sockets)." + }, + "max_load": { + "required": false, + "type": "double", + "description": "Maximum load avg on system." + }, + "setid": { + "required": true, + "type": "SetId", + "description": "Effective user/group id for running Asterisk." + } + } + }, + "StatusInfo": { + "id": "StatusInfo", + "description": "Info about Asterisk status", + "properties": { + "startup_time": { + "required": true, + "type": "Date", + "description": "Time when Asterisk was started." + }, + "last_reload_time": { + "required": true, + "type": "Date", + "description": "Time when Asterisk was last reloaded." + } + } + }, + "AsteriskInfo": { + "id": "AsteriskInfo", + "description": "Asterisk system information", + "properties": { + "build": { + "required": false, + "type": "BuildInfo", + "description": "Info about how Asterisk was built" + }, + "system": { + "required": false, + "type": "SystemInfo", + "description": "Info about the system running Asterisk" + }, + "config": { + "required": false, + "type": "ConfigInfo", + "description": "Info about Asterisk configuration" + }, + "status": { + "required": false, + "type": "StatusInfo", + "description": "Info about Asterisk status" + } + } + }, + "AsteriskPing": { + "id": "AsteriskPing", + "description": "Asterisk ping information", + "properties": { + "asterisk_id": { + "required": true, + "type": "string", + "description": "Asterisk id info" + }, + "ping": { + "required": true, + "type": "string", + "description": "Always string value is pong" + }, + "timestamp": { + "required": true, + "type": "string", + "description": "The timestamp string of request received time" + } + } + }, + "Module": { + "id": "Module", + "description": "Details of an Asterisk module", + "properties": { + "name": { + "type": "string", + "description": "The name of this module", + "required": true + }, + "description": { + "type": "string", + "description": "The description of this module", + "required": true + }, + "use_count": { + "type": "int", + "description": "The number of times this module is being used", + "required": true + }, + "status": { + "type": "string", + "description": "The running status of this module", + "required": true + }, + "support_level": { + "type": "string", + "description": "The support state of this module", + "required": true + } + } + }, + "LogChannel": { + "id": "LogChannel", + "description": "Details of an Asterisk log channel", + "properties": { + "channel": { + "type": "string", + "description": "The log channel path", + "required": true + }, + "type": { + "type": "string", + "description": "Types of logs for the log channel", + "required": true + }, + "status": { + "type": "string", + "description": "Whether or not a log type is enabled", + "required": true + }, + "configuration": { + "type": "string", + "description": "The various log levels", + "required": true + } + } + }, + "Variable": { + "id": "Variable", + "description": "The value of a channel variable", + "properties": { + "value": { + "required": true, + "type": "string", + "description": "The value of the variable requested" + } + } + }, + "ConfigTuple": { + "id": "ConfigTuple", + "description": "A key/value pair that makes up part of a configuration object.", + "properties": { + "attribute": { + "required": true, + "type": "string", + "description": "A configuration object attribute." + }, + "value": { + "required": true, + "type": "string", + "description": "The value for the attribute." + } + } + } + } +} diff --git a/codegen/src/main/resources/codegen-data/ari_5_1_0/bridges.json b/codegen/src/main/resources/codegen-data/ari_5_1_0/bridges.json new file mode 100644 index 00000000..22743c3b --- /dev/null +++ b/codegen/src/main/resources/codegen-data/ari_5_1_0/bridges.json @@ -0,0 +1,765 @@ +{ + "_copyright": "Copyright (C) 2012 - 2013, Digium, Inc.", + "_author": "David M. Lee, II ", + "_svn_revision": "$Revision$", + "apiVersion": "2.0.0", + "swaggerVersion": "1.1", + "basePath": "http://localhost:8088/ari", + "resourcePath": "/api-docs/bridges.{format}", + "requiresModules": [ + "res_stasis_recording", + "res_stasis_playback" + ], + "apis": [ + { + "path": "/bridges", + "description": "Active bridges", + "operations": [ + { + "httpMethod": "GET", + "summary": "List all active bridges in Asterisk.", + "nickname": "list", + "responseClass": "List[Bridge]" + }, + { + "httpMethod": "POST", + "summary": "Create a new bridge.", + "notes": "This bridge persists until it has been shut down, or Asterisk has been shut down.", + "nickname": "create", + "responseClass": "Bridge", + "parameters": [ + { + "name": "type", + "description": "Comma separated list of bridge type attributes (mixing, holding, dtmf_events, proxy_media, video_sfu).", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "bridgeId", + "description": "Unique ID to give to the bridge being created.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "name", + "description": "Name to give to the bridge being created.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + } + ] + } + ] + }, + { + "path": "/bridges/{bridgeId}", + "description": "Individual bridge", + "operations": [ + { + "httpMethod": "POST", + "summary": "Create a new bridge or updates an existing one.", + "notes": "This bridge persists until it has been shut down, or Asterisk has been shut down.", + "nickname": "createWithId", + "responseClass": "Bridge", + "parameters": [ + { + "name": "type", + "description": "Comma separated list of bridge type attributes (mixing, holding, dtmf_events, proxy_media, video_sfu) to set.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "bridgeId", + "description": "Unique ID to give to the bridge being created.", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "name", + "description": "Set the name of the bridge.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + } + ] + }, + { + "httpMethod": "GET", + "summary": "Get bridge details.", + "nickname": "get", + "responseClass": "Bridge", + "parameters": [ + { + "name": "bridgeId", + "description": "Bridge's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Bridge not found" + } + ] + }, + { + "httpMethod": "DELETE", + "summary": "Shut down a bridge.", + "notes": "If any channels are in this bridge, they will be removed and resume whatever they were doing beforehand.", + "nickname": "destroy", + "responseClass": "void", + "parameters": [ + { + "name": "bridgeId", + "description": "Bridge's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Bridge not found" + } + ] + } + ] + }, + { + "path": "/bridges/{bridgeId}/addChannel", + "description": "Add a channel to a bridge", + "operations": [ + { + "httpMethod": "POST", + "summary": "Add a channel to a bridge.", + "nickname": "addChannel", + "responseClass": "void", + "parameters": [ + { + "name": "bridgeId", + "description": "Bridge's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "channel", + "description": "Ids of channels to add to bridge", + "paramType": "query", + "required": true, + "allowMultiple": true, + "dataType": "string" + }, + { + "name": "role", + "description": "Channel's role in the bridge", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "absorbDTMF", + "description": "Absorb DTMF coming from this channel, preventing it to pass through to the bridge", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "boolean", + "defaultValue": false + }, + { + "name": "mute", + "description": "Mute audio from this channel, preventing it to pass through to the bridge", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "boolean", + "defaultValue": false + } + ], + "errorResponses": [ + { + "code": 400, + "reason": "Channel not found" + }, + { + "code": 404, + "reason": "Bridge not found" + }, + { + "code": 409, + "reason": "Bridge not in Stasis application; Channel currently recording" + }, + { + "code": 422, + "reason": "Channel not in Stasis application" + } + ] + } + ] + }, + { + "path": "/bridges/{bridgeId}/removeChannel", + "description": "Remove a channel from a bridge", + "operations": [ + { + "httpMethod": "POST", + "summary": "Remove a channel from a bridge.", + "nickname": "removeChannel", + "responseClass": "void", + "parameters": [ + { + "name": "bridgeId", + "description": "Bridge's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "channel", + "description": "Ids of channels to remove from bridge", + "paramType": "query", + "required": true, + "allowMultiple": true, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 400, + "reason": "Channel not found" + }, + { + "code": 404, + "reason": "Bridge not found" + }, + { + "code": 409, + "reason": "Bridge not in Stasis application" + }, + { + "code": 422, + "reason": "Channel not in this bridge" + } + ] + } + ] + }, + { + "path": "/bridges/{bridgeId}/videoSource/{channelId}", + "description": "Set a channel as the video source in a multi-party bridge", + "operations": [ + { + "httpMethod": "POST", + "summary": "Set a channel as the video source in a multi-party mixing bridge. This operation has no effect on bridges with two or fewer participants.", + "nickname": "setVideoSource", + "responseClass": "void", + "parameters": [ + { + "name": "bridgeId", + "description": "Bridge's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "channelId", + "description": "Channel's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Bridge or Channel not found" + }, + { + "code": 409, + "reason": "Channel not in Stasis application" + }, + { + "code": 422, + "reason": "Channel not in this Bridge" + } + ] + } + ] + }, + { + "path": "/bridges/{bridgeId}/videoSource", + "description": "Removes any explicit video source", + "operations": [ + { + "httpMethod": "DELETE", + "summary": "Removes any explicit video source in a multi-party mixing bridge. This operation has no effect on bridges with two or fewer participants. When no explicit video source is set, talk detection will be used to determine the active video stream.", + "nickname": "clearVideoSource", + "responseClass": "void", + "parameters": [ + { + "name": "bridgeId", + "description": "Bridge's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Bridge not found" + } + ] + } + ] + }, + { + "path": "/bridges/{bridgeId}/moh", + "description": "Play music on hold to a bridge", + "operations": [ + { + "httpMethod": "POST", + "summary": "Play music on hold to a bridge or change the MOH class that is playing.", + "nickname": "startMoh", + "responseClass": "void", + "parameters": [ + { + "name": "bridgeId", + "description": "Bridge's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "mohClass", + "description": "Channel's id", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Bridge not found" + }, + { + "code": 409, + "reason": "Bridge not in Stasis application" + } + ] + }, + { + "httpMethod": "DELETE", + "summary": "Stop playing music on hold to a bridge.", + "notes": "This will only stop music on hold being played via POST bridges/{bridgeId}/moh.", + "nickname": "stopMoh", + "responseClass": "void", + "parameters": [ + { + "name": "bridgeId", + "description": "Bridge's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Bridge not found" + }, + { + "code": 409, + "reason": "Bridge not in Stasis application" + } + ] + } + ] + }, + { + "path": "/bridges/{bridgeId}/play", + "description": "Play media to the participants of a bridge", + "operations": [ + { + "httpMethod": "POST", + "summary": "Start playback of media on a bridge.", + "notes": "The media URI may be any of a number of URI's. Currently sound:, recording:, number:, digits:, characters:, and tone: URI's are supported. This operation creates a playback resource that can be used to control the playback of media (pause, rewind, fast forward, etc.)", + "nickname": "play", + "responseClass": "Playback", + "parameters": [ + { + "name": "bridgeId", + "description": "Bridge's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "media", + "description": "Media URIs to play.", + "paramType": "query", + "required": true, + "allowMultiple": true, + "dataType": "string" + }, + { + "name": "lang", + "description": "For sounds, selects language for sound.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "offsetms", + "description": "Number of milliseconds to skip before playing. Only applies to the first URI if multiple media URIs are specified.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "int", + "defaultValue": 0, + "allowableValues": { + "valueType": "RANGE", + "min": 0 + } + + }, + { + "name": "skipms", + "description": "Number of milliseconds to skip for forward/reverse operations.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "int", + "defaultValue": 3000, + "allowableValues": { + "valueType": "RANGE", + "min": 0 + } + }, + { + "name": "playbackId", + "description": "Playback Id.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Bridge not found" + }, + { + "code": 409, + "reason": "Bridge not in a Stasis application" + } + ] + } + ] + }, + { + "path": "/bridges/{bridgeId}/play/{playbackId}", + "description": "Play media to a bridge", + "operations": [ + { + "httpMethod": "POST", + "summary": "Start playback of media on a bridge.", + "notes": "The media URI may be any of a number of URI's. Currently sound:, recording:, number:, digits:, characters:, and tone: URI's are supported. This operation creates a playback resource that can be used to control the playback of media (pause, rewind, fast forward, etc.)", + "nickname": "playWithId", + "responseClass": "Playback", + "parameters": [ + { + "name": "bridgeId", + "description": "Bridge's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "playbackId", + "description": "Playback ID.", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "media", + "description": "Media URIs to play.", + "paramType": "query", + "required": true, + "allowMultiple": true, + "dataType": "string" + }, + { + "name": "lang", + "description": "For sounds, selects language for sound.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "offsetms", + "description": "Number of milliseconds to skip before playing. Only applies to the first URI if multiple media URIs are specified.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "int", + "defaultValue": 0, + "allowableValues": { + "valueType": "RANGE", + "min": 0 + } + }, + { + "name": "skipms", + "description": "Number of milliseconds to skip for forward/reverse operations.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "int", + "defaultValue": 3000, + "allowableValues": { + "valueType": "RANGE", + "min": 0 + } + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Bridge not found" + }, + { + "code": 409, + "reason": "Bridge not in a Stasis application" + } + ] + + } + ] + }, + { + "path": "/bridges/{bridgeId}/record", + "description": "Record audio on a bridge", + "operations": [ + { + "httpMethod": "POST", + "summary": "Start a recording.", + "notes": "This records the mixed audio from all channels participating in this bridge.", + "nickname": "record", + "responseClass": "LiveRecording", + "parameters": [ + { + "name": "bridgeId", + "description": "Bridge's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "name", + "description": "Recording's filename", + "paramType": "query", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "format", + "description": "Format to encode audio in", + "paramType": "query", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "maxDurationSeconds", + "description": "Maximum duration of the recording, in seconds. 0 for no limit.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "int", + "defaultValue": 0, + "allowableValues": { + "valueType": "RANGE", + "min": 0 + } + }, + { + "name": "maxSilenceSeconds", + "description": "Maximum duration of silence, in seconds. 0 for no limit.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "int", + "defaultValue": 0, + "allowableValues": { + "valueType": "RANGE", + "min": 0 + } + }, + { + "name": "ifExists", + "description": "Action to take if a recording with the same name already exists.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string", + "defaultValue": "fail", + "allowableValues": { + "valueType": "LIST", + "values": [ + "fail", + "overwrite", + "append" + ] + } + }, + { + "name": "beep", + "description": "Play beep when recording begins", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "boolean", + "defaultValue": false + }, + { + "name": "terminateOn", + "description": "DTMF input to terminate recording.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string", + "defaultValue": "none", + "allowableValues": { + "valueType": "LIST", + "values": [ + "none", + "any", + "*", + "#" + ] + } + } + ], + "errorResponses": [ + { + "code": 400, + "reason": "Invalid parameters" + }, + { + "code": 404, + "reason": "Bridge not found" + }, + { + "code": 409, + "reason": "Bridge is not in a Stasis application; A recording with the same name already exists on the system and can not be overwritten because it is in progress or ifExists=fail" + }, + { + "code": 422, + "reason": "The format specified is unknown on this system" + } + ] + } + ] + } + ], + "models": { + "Bridge": { + "id": "Bridge", + "description": "The merging of media from one or more channels.\n\nEveryone on the bridge receives the same audio.", + "properties": { + "id": { + "type": "string", + "description": "Unique identifier for this bridge", + "required": true + }, + "technology": { + "type": "string", + "description": "Name of the current bridging technology", + "required": true + }, + "bridge_type": { + "type": "string", + "description": "Type of bridge technology", + "required": true, + "allowableValues": { + "valueType": "LIST", + "values": [ + "mixing", + "holding" + ] + } + }, + "bridge_class": { + "type": "string", + "description": "Bridging class", + "required": true + }, + "creator": { + "type": "string", + "description": "Entity that created the bridge", + "required": true + }, + "name": { + "type": "string", + "description": "Name the creator gave the bridge", + "required": true + }, + "channels": { + "type": "List[string]", + "description": "Ids of channels participating in this bridge", + "required": true + }, + "video_mode": { + "type": "string", + "description": "The video mode the bridge is using. One of 'none', 'talker', or 'single'.", + "required": false + }, + "video_source_id": { + "type": "string", + "description": "The ID of the channel that is the source of video in this bridge, if one exists.", + "required": false + }, + "creationtime": { + "required": true, + "type": "Date", + "description": "Timestamp when bridge was created" + } + } + } + } +} diff --git a/codegen/src/main/resources/codegen-data/ari_5_1_0/channels.json b/codegen/src/main/resources/codegen-data/ari_5_1_0/channels.json new file mode 100644 index 00000000..94afb277 --- /dev/null +++ b/codegen/src/main/resources/codegen-data/ari_5_1_0/channels.json @@ -0,0 +1,2171 @@ +{ + "_copyright": "Copyright (C) 2012 - 2013, Digium, Inc.", + "_author": "David M. Lee, II ", + "_svn_revision": "$Revision$", + "apiVersion": "2.0.0", + "swaggerVersion": "1.1", + "basePath": "http://localhost:8088/ari", + "resourcePath": "/api-docs/channels.{format}", + "requiresModules": [ + "res_stasis_answer", + "res_stasis_playback", + "res_stasis_recording", + "res_stasis_snoop" + ], + "apis": [ + { + "path": "/channels", + "description": "Active channels", + "operations": [ + { + "httpMethod": "GET", + "summary": "List all active channels in Asterisk.", + "nickname": "list", + "responseClass": "List[Channel]" + }, + { + "httpMethod": "POST", + "summary": "Create a new channel (originate).", + "notes": "The new channel is created immediately and a snapshot of it returned. If a Stasis application is provided it will be automatically subscribed to the originated channel for further events and updates.", + "nickname": "originate", + "responseClass": "Channel", + "parameters": [ + { + "name": "endpoint", + "description": "Endpoint to call.", + "paramType": "query", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "extension", + "description": "The extension to dial after the endpoint answers. Mutually exclusive with 'app'.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "context", + "description": "The context to dial after the endpoint answers. If omitted, uses 'default'. Mutually exclusive with 'app'.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "priority", + "description": "The priority to dial after the endpoint answers. If omitted, uses 1. Mutually exclusive with 'app'.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "long" + }, + { + "name": "label", + "description": "The label to dial after the endpoint answers. Will supersede 'priority' if provided. Mutually exclusive with 'app'.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "app", + "description": "The application that is subscribed to the originated channel. When the channel is answered, it will be passed to this Stasis application. Mutually exclusive with 'context', 'extension', 'priority', and 'label'.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "appArgs", + "description": "The application arguments to pass to the Stasis application provided by 'app'. Mutually exclusive with 'context', 'extension', 'priority', and 'label'.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "callerId", + "description": "CallerID to use when dialing the endpoint or extension.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "timeout", + "description": "Timeout (in seconds) before giving up dialing, or -1 for no timeout.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "int", + "defaultValue": 30 + }, + { + "name": "variables", + "description": "The \"variables\" key in the body object holds variable key/value pairs to set on the channel on creation. Other keys in the body object are interpreted as query parameters. Ex. { \"endpoint\": \"SIP/Alice\", \"variables\": { \"CALLERID(name)\": \"Alice\" } }", + "paramType": "body", + "required": false, + "dataType": "containers", + "allowMultiple": false + }, + { + "name": "channelId", + "description": "The unique id to assign the channel on creation.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "otherChannelId", + "description": "The unique id to assign the second channel when using local channels.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "originator", + "description": "The unique id of the channel which is originating this one.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "formats", + "description": "The format name capability list to use if originator is not specified. Ex. \"ulaw,slin16\". Format names can be found with \"core show codecs\".", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 400, + "reason": "Invalid parameters for originating a channel." + }, + { + "code": 409, + "reason": "Channel with given unique ID already exists." + } + ] + } + ] + }, + { + "path": "/channels/create", + "description": "Create a channel and place it in a Stasis app, but do not dial the channel yet.", + "operations": [ + { + "httpMethod": "POST", + "summary": "Create channel.", + "nickname": "create", + "responseClass": "Channel", + "parameters": [ + { + "name": "endpoint", + "description": "Endpoint for channel communication", + "paramType": "query", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "app", + "description": "Stasis Application to place channel into", + "paramType": "query", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "appArgs", + "description": "The application arguments to pass to the Stasis application provided by 'app'. Mutually exclusive with 'context', 'extension', 'priority', and 'label'.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "channelId", + "description": "The unique id to assign the channel on creation.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "otherChannelId", + "description": "The unique id to assign the second channel when using local channels.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "originator", + "description": "Unique ID of the calling channel", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "formats", + "description": "The format name capability list to use if originator is not specified. Ex. \"ulaw,slin16\". Format names can be found with \"core show codecs\".", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 409, + "reason": "Channel with given unique ID already exists." + } + ] + } + ] + }, + { + "path": "/channels/{channelId}", + "description": "Active channel", + "operations": [ + { + "httpMethod": "GET", + "summary": "Channel details.", + "nickname": "get", + "responseClass": "Channel", + "parameters": [ + { + "name": "channelId", + "description": "Channel's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Channel not found" + } + ] + }, + { + "httpMethod": "POST", + "summary": "Create a new channel (originate with id).", + "notes": "The new channel is created immediately and a snapshot of it returned. If a Stasis application is provided it will be automatically subscribed to the originated channel for further events and updates.", + "nickname": "originateWithId", + "responseClass": "Channel", + "parameters": [ + { + "name": "channelId", + "description": "The unique id to assign the channel on creation.", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "endpoint", + "description": "Endpoint to call.", + "paramType": "query", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "extension", + "description": "The extension to dial after the endpoint answers. Mutually exclusive with 'app'.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "context", + "description": "The context to dial after the endpoint answers. If omitted, uses 'default'. Mutually exclusive with 'app'.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "priority", + "description": "The priority to dial after the endpoint answers. If omitted, uses 1. Mutually exclusive with 'app'.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "long" + }, + { + "name": "label", + "description": "The label to dial after the endpoint answers. Will supersede 'priority' if provided. Mutually exclusive with 'app'.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "app", + "description": "The application that is subscribed to the originated channel. When the channel is answered, it will be passed to this Stasis application. Mutually exclusive with 'context', 'extension', 'priority', and 'label'.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "appArgs", + "description": "The application arguments to pass to the Stasis application provided by 'app'. Mutually exclusive with 'context', 'extension', 'priority', and 'label'.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "callerId", + "description": "CallerID to use when dialing the endpoint or extension.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "timeout", + "description": "Timeout (in seconds) before giving up dialing, or -1 for no timeout.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "int", + "defaultValue": 30 + }, + { + "name": "variables", + "description": "The \"variables\" key in the body object holds variable key/value pairs to set on the channel on creation. Other keys in the body object are interpreted as query parameters. Ex. { \"endpoint\": \"SIP/Alice\", \"variables\": { \"CALLERID(name)\": \"Alice\" } }", + "paramType": "body", + "required": false, + "dataType": "containers", + "allowMultiple": false + }, + { + "name": "otherChannelId", + "description": "The unique id to assign the second channel when using local channels.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "originator", + "description": "The unique id of the channel which is originating this one.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "formats", + "description": "The format name capability list to use if originator is not specified. Ex. \"ulaw,slin16\". Format names can be found with \"core show codecs\".", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 400, + "reason": "Invalid parameters for originating a channel." + }, + { + "code": 409, + "reason": "Channel with given unique ID already exists." + } + ] + + }, + { + "httpMethod": "DELETE", + "summary": "Delete (i.e. hangup) a channel.", + "nickname": "hangup", + "responseClass": "void", + "parameters": [ + { + "name": "channelId", + "description": "Channel's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "reason_code", + "description": "The reason code for hanging up the channel for detail use. Mutually exclusive with 'reason'. See detail hangup codes at here. https://wiki.asterisk.org/wiki/display/AST/Hangup+Cause+Mappings", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "reason", + "description": "Reason for hanging up the channel for simple use. Mutually exclusive with 'reason_code'.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string", + "allowableValues": { + "valueType": "LIST", + "values": [ + "normal", + "busy", + "congestion", + "no_answer", + "timeout", + "rejected", + "unallocated", + "normal_unspecified", + "number_incomplete", + "codec_mismatch", + "interworking", + "failure", + "answered_elsewhere" + ] + } + } + ], + "errorResponses": [ + { + "code": 400, + "reason": "Invalid reason for hangup provided" + }, + { + "code": 404, + "reason": "Channel not found" + } + ] + } + ] + }, + { + "path": "/channels/{channelId}/continue", + "description": "Exit application; continue execution in the dialplan", + "operations": [ + { + "httpMethod": "POST", + "summary": "Exit application; continue execution in the dialplan.", + "nickname": "continueInDialplan", + "responseClass": "void", + "parameters": [ + { + "name": "channelId", + "description": "Channel's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "context", + "description": "The context to continue to.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "extension", + "description": "The extension to continue to.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "priority", + "description": "The priority to continue to.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "int" + }, + { + "name": "label", + "description": "The label to continue to - will supersede 'priority' if both are provided.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Channel not found" + }, + { + "code": 409, + "reason": "Channel not in a Stasis application" + }, + { + "code": 412, + "reason": "Channel in invalid state" + } + ] + } + ] + }, + { + "path": "/channels/{channelId}/move", + "description": "Move the channel from one Stasis application to another.", + "operations": [ + { + "httpMethod": "POST", + "summary": "Move the channel from one Stasis application to another.", + "nickname": "move", + "responseClass": "void", + "parameters": [ + { + "name": "channelId", + "description": "Channel's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "app", + "description": "The channel will be passed to this Stasis application.", + "paramType": "query", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "appArgs", + "description": "The application arguments to pass to the Stasis application provided by 'app'.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": "404", + "reason": "Channel not found" + }, + { + "code": "409", + "reason": "Channel not in a Stasis application" + } + ] + } + ] + }, + { + "path": "/channels/{channelId}/redirect", + "description": "Inform the channel that it should redirect itself to a different location. Note that this will almost certainly cause the channel to exit the application.", + "operations": [ + { + "httpMethod": "POST", + "summary": "Redirect the channel to a different location.", + "nickname": "redirect", + "responseClass": "void", + "parameters": [ + { + "name": "channelId", + "description": "Channel's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "endpoint", + "description": "The endpoint to redirect the channel to", + "paramType": "query", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 400, + "reason": "Endpoint parameter not provided" + }, + { + "code": 404, + "reason": "Channel or endpoint not found" + }, + { + "code": 409, + "reason": "Channel not in a Stasis application" + }, + { + "code": 422, + "reason": "Endpoint is not the same type as the channel" + }, + { + "code": 412, + "reason": "Channel in invalid state" + } + ] + } + ] + }, + { + "path": "/channels/{channelId}/answer", + "description": "Answer a channel", + "operations": [ + { + "httpMethod": "POST", + "summary": "Answer a channel.", + "nickname": "answer", + "responseClass": "void", + "parameters": [ + { + "name": "channelId", + "description": "Channel's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Channel not found" + }, + { + "code": 409, + "reason": "Channel not in a Stasis application" + }, + { + "code": 412, + "reason": "Channel in invalid state" + } + ] + } + ] + }, + { + "path": "/channels/{channelId}/ring", + "description": "Send a ringing indication to a channel", + "operations": [ + { + "httpMethod": "POST", + "summary": "Indicate ringing to a channel.", + "nickname": "ring", + "responseClass": "void", + "parameters": [ + { + "name": "channelId", + "description": "Channel's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Channel not found" + }, + { + "code": 409, + "reason": "Channel not in a Stasis application" + }, + { + "code": 412, + "reason": "Channel in invalid state" + } + ] + }, + { + "httpMethod": "DELETE", + "summary": "Stop ringing indication on a channel if locally generated.", + "nickname": "ringStop", + "responseClass": "void", + "parameters": [ + { + "name": "channelId", + "description": "Channel's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Channel not found" + }, + { + "code": 409, + "reason": "Channel not in a Stasis application" + }, + { + "code": 412, + "reason": "Channel in invalid state" + } + ] + } + ] + }, + { + "path": "/channels/{channelId}/dtmf", + "description": "Send DTMF to a channel", + "operations": [ + { + "httpMethod": "POST", + "summary": "Send provided DTMF to a given channel.", + "nickname": "sendDTMF", + "responseClass": "void", + "parameters": [ + { + "name": "channelId", + "description": "Channel's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "dtmf", + "description": "DTMF To send.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "before", + "description": "Amount of time to wait before DTMF digits (specified in milliseconds) start.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "int", + "defaultValue": 0 + }, + { + "name": "between", + "description": "Amount of time in between DTMF digits (specified in milliseconds).", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "int", + "defaultValue": 100 + }, + { + "name": "duration", + "description": "Length of each DTMF digit (specified in milliseconds).", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "int", + "defaultValue": 100 + }, + { + "name": "after", + "description": "Amount of time to wait after DTMF digits (specified in milliseconds) end.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "int", + "defaultValue": 0 + } + ], + "errorResponses": [ + { + "code": 400, + "reason": "DTMF is required" + }, + { + "code": 404, + "reason": "Channel not found" + }, + { + "code": 409, + "reason": "Channel not in a Stasis application" + }, + { + "code": 412, + "reason": "Channel in invalid state" + } + ] + } + ] + }, + { + "path": "/channels/{channelId}/mute", + "description": "Mute a channel", + "operations": [ + { + "httpMethod": "POST", + "summary": "Mute a channel.", + "nickname": "mute", + "responseClass": "void", + "parameters": [ + { + "name": "channelId", + "description": "Channel's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "direction", + "description": "Direction in which to mute audio", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string", + "defaultValue": "both", + "allowableValues": { + "valueType": "LIST", + "values": [ + "both", + "in", + "out" + ] + } + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Channel not found" + }, + { + "code": 409, + "reason": "Channel not in a Stasis application" + }, + { + "code": 412, + "reason": "Channel in invalid state" + } + ] + }, + { + "httpMethod": "DELETE", + "summary": "Unmute a channel.", + "nickname": "unmute", + "responseClass": "void", + "parameters": [ + { + "name": "channelId", + "description": "Channel's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "direction", + "description": "Direction in which to unmute audio", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string", + "defaultValue": "both", + "allowableValues": { + "valueType": "LIST", + "values": [ + "both", + "in", + "out" + ] + } + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Channel not found" + }, + { + "code": 409, + "reason": "Channel not in a Stasis application" + }, + { + "code": 412, + "reason": "Channel in invalid state" + } + ] + } + ] + }, + { + "path": "/channels/{channelId}/hold", + "description": "Put a channel on hold", + "operations": [ + { + "httpMethod": "POST", + "summary": "Hold a channel.", + "nickname": "hold", + "responseClass": "void", + "parameters": [ + { + "name": "channelId", + "description": "Channel's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Channel not found" + }, + { + "code": 409, + "reason": "Channel not in a Stasis application" + }, + { + "code": 412, + "reason": "Channel in invalid state" + } + ] + }, + { + "httpMethod": "DELETE", + "summary": "Remove a channel from hold.", + "nickname": "unhold", + "responseClass": "void", + "parameters": [ + { + "name": "channelId", + "description": "Channel's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Channel not found" + }, + { + "code": 409, + "reason": "Channel not in a Stasis application" + }, + { + "code": 412, + "reason": "Channel in invalid state" + } + ] + } + ] + }, + { + "path": "/channels/{channelId}/moh", + "description": "Play music on hold to a channel", + "operations": [ + { + "httpMethod": "POST", + "summary": "Play music on hold to a channel.", + "notes": "Using media operations such as /play on a channel playing MOH in this manner will suspend MOH without resuming automatically. If continuing music on hold is desired, the stasis application must reinitiate music on hold.", + "nickname": "startMoh", + "responseClass": "void", + "parameters": [ + { + "name": "channelId", + "description": "Channel's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "mohClass", + "description": "Music on hold class to use", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Channel not found" + }, + { + "code": 409, + "reason": "Channel not in a Stasis application" + }, + { + "code": 412, + "reason": "Channel in invalid state" + } + ] + }, + { + "httpMethod": "DELETE", + "summary": "Stop playing music on hold to a channel.", + "nickname": "stopMoh", + "responseClass": "void", + "parameters": [ + { + "name": "channelId", + "description": "Channel's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Channel not found" + }, + { + "code": 409, + "reason": "Channel not in a Stasis application" + }, + { + "code": 412, + "reason": "Channel in invalid state" + } + ] + } + ] + }, + { + "path": "/channels/{channelId}/silence", + "description": "Play silence to a channel", + "operations": [ + { + "httpMethod": "POST", + "summary": "Play silence to a channel.", + "notes": "Using media operations such as /play on a channel playing silence in this manner will suspend silence without resuming automatically.", + "nickname": "startSilence", + "responseClass": "void", + "parameters": [ + { + "name": "channelId", + "description": "Channel's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Channel not found" + }, + { + "code": 409, + "reason": "Channel not in a Stasis application" + }, + { + "code": 412, + "reason": "Channel in invalid state" + } + ] + }, + { + "httpMethod": "DELETE", + "summary": "Stop playing silence to a channel.", + "nickname": "stopSilence", + "responseClass": "void", + "parameters": [ + { + "name": "channelId", + "description": "Channel's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Channel not found" + }, + { + "code": 409, + "reason": "Channel not in a Stasis application" + }, + { + "code": 412, + "reason": "Channel in invalid state" + } + ] + } + ] + }, + { + "path": "/channels/{channelId}/play", + "description": "Play media to a channel", + "operations": [ + { + "httpMethod": "POST", + "summary": "Start playback of media.", + "notes": "The media URI may be any of a number of URI's. Currently sound:, recording:, number:, digits:, characters:, and tone: URI's are supported. This operation creates a playback resource that can be used to control the playback of media (pause, rewind, fast forward, etc.)", + "nickname": "play", + "responseClass": "Playback", + "parameters": [ + { + "name": "channelId", + "description": "Channel's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "media", + "description": "Media URIs to play.", + "paramType": "query", + "required": true, + "allowMultiple": true, + "dataType": "string" + }, + { + "name": "lang", + "description": "For sounds, selects language for sound.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "offsetms", + "description": "Number of milliseconds to skip before playing. Only applies to the first URI if multiple media URIs are specified.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "int" + }, + { + "name": "skipms", + "description": "Number of milliseconds to skip for forward/reverse operations.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "int", + "defaultValue": 3000 + }, + { + "name": "playbackId", + "description": "Playback ID.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Channel not found" + }, + { + "code": 409, + "reason": "Channel not in a Stasis application" + }, + { + "code": 412, + "reason": "Channel in invalid state" + } + ] + } + ] + }, + { + "path": "/channels/{channelId}/play/{playbackId}", + "description": "Play media to a channel", + "operations": [ + { + "httpMethod": "POST", + "summary": "Start playback of media and specify the playbackId.", + "notes": "The media URI may be any of a number of URI's. Currently sound:, recording:, number:, digits:, characters:, and tone: URI's are supported. This operation creates a playback resource that can be used to control the playback of media (pause, rewind, fast forward, etc.)", + "nickname": "playWithId", + "responseClass": "Playback", + "parameters": [ + { + "name": "channelId", + "description": "Channel's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "playbackId", + "description": "Playback ID.", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "media", + "description": "Media URIs to play.", + "paramType": "query", + "required": true, + "allowMultiple": true, + "dataType": "string" + }, + { + "name": "lang", + "description": "For sounds, selects language for sound.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "offsetms", + "description": "Number of milliseconds to skip before playing. Only applies to the first URI if multiple media URIs are specified.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "int" + }, + { + "name": "skipms", + "description": "Number of milliseconds to skip for forward/reverse operations.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "int", + "defaultValue": 3000 + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Channel not found" + }, + { + "code": 409, + "reason": "Channel not in a Stasis application" + }, + { + "code": 412, + "reason": "Channel in invalid state" + } + ] + } + ] + }, + { + "path": "/channels/{channelId}/record", + "description": "Record audio from a channel", + "operations": [ + { + "httpMethod": "POST", + "summary": "Start a recording.", + "notes": "Record audio from a channel. Note that this will not capture audio sent to the channel. The bridge itself has a record feature if that's what you want.", + "nickname": "record", + "responseClass": "LiveRecording", + "parameters": [ + { + "name": "channelId", + "description": "Channel's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "name", + "description": "Recording's filename", + "paramType": "query", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "format", + "description": "Format to encode audio in", + "paramType": "query", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "maxDurationSeconds", + "description": "Maximum duration of the recording, in seconds. 0 for no limit", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "int", + "defaultValue": 0, + "allowableValues": { + "valueType": "RANGE", + "min": 0 + } + }, + { + "name": "maxSilenceSeconds", + "description": "Maximum duration of silence, in seconds. 0 for no limit", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "int", + "defaultValue": 0, + "allowableValues": { + "valueType": "RANGE", + "min": 0 + } + }, + { + "name": "ifExists", + "description": "Action to take if a recording with the same name already exists.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string", + "defaultValue": "fail", + "allowableValues": { + "valueType": "LIST", + "values": [ + "fail", + "overwrite", + "append" + ] + } + }, + { + "name": "beep", + "description": "Play beep when recording begins", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "boolean", + "defaultValue": false + }, + { + "name": "terminateOn", + "description": "DTMF input to terminate recording", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string", + "defaultValue": "none", + "allowableValues": { + "valueType": "LIST", + "values": [ + "none", + "any", + "*", + "#" + ] + } + } + ], + "errorResponses": [ + { + "code": 400, + "reason": "Invalid parameters" + }, + { + "code": 404, + "reason": "Channel not found" + }, + { + "code": 409, + "reason": "Channel is not in a Stasis application; the channel is currently bridged with other hcannels; A recording with the same name already exists on the system and can not be overwritten because it is in progress or ifExists=fail" + }, + { + "code": 422, + "reason": "The format specified is unknown on this system" + } + ] + } + ] + }, + { + "path": "/channels/{channelId}/variable", + "description": "Variables on a channel", + "operations": [ + { + "httpMethod": "GET", + "summary": "Get the value of a channel variable or function.", + "nickname": "getChannelVar", + "responseClass": "Variable", + "parameters": [ + { + "name": "channelId", + "description": "Channel's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "variable", + "description": "The channel variable or function to get", + "paramType": "query", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 400, + "reason": "Missing variable parameter." + }, + { + "code": 404, + "reason": "Channel or variable not found" + }, + { + "code": 409, + "reason": "Channel not in a Stasis application" + } + ] + }, + { + "httpMethod": "POST", + "summary": "Set the value of a channel variable or function.", + "nickname": "setChannelVar", + "responseClass": "void", + "parameters": [ + { + "name": "channelId", + "description": "Channel's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "variable", + "description": "The channel variable or function to set", + "paramType": "query", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "value", + "description": "The value to set the variable to", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 400, + "reason": "Missing variable parameter." + }, + { + "code": 404, + "reason": "Channel not found" + }, + { + "code": 409, + "reason": "Channel not in a Stasis application" + } + ] + } + ] + }, + { + "path": "/channels/{channelId}/snoop", + "description": "Snoop (spy/whisper) on a channel", + "operations": [ + { + "httpMethod": "POST", + "summary": "Start snooping.", + "notes": "Snoop (spy/whisper) on a specific channel.", + "nickname": "snoopChannel", + "responseClass": "Channel", + "parameters": [ + { + "name": "channelId", + "description": "Channel's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "spy", + "description": "Direction of audio to spy on", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string", + "defaultValue": "none", + "allowableValues": { + "valueType": "LIST", + "values": [ + "none", + "both", + "out", + "in" + ] + } + }, + { + "name": "whisper", + "description": "Direction of audio to whisper into", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string", + "defaultValue": "none", + "allowableValues": { + "valueType": "LIST", + "values": [ + "none", + "both", + "out", + "in" + ] + } + }, + { + "name": "app", + "description": "Application the snooping channel is placed into", + "paramType": "query", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "appArgs", + "description": "The application arguments to pass to the Stasis application", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "snoopId", + "description": "Unique ID to assign to snooping channel", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 400, + "reason": "Invalid parameters" + }, + { + "code": 404, + "reason": "Channel not found" + } + ] + } + ] + }, + { + "path": "/channels/{channelId}/snoop/{snoopId}", + "description": "Snoop (spy/whisper) on a channel", + "operations": [ + { + "httpMethod": "POST", + "summary": "Start snooping.", + "notes": "Snoop (spy/whisper) on a specific channel.", + "nickname": "snoopChannelWithId", + "responseClass": "Channel", + "parameters": [ + { + "name": "channelId", + "description": "Channel's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "snoopId", + "description": "Unique ID to assign to snooping channel", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "spy", + "description": "Direction of audio to spy on", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string", + "defaultValue": "none", + "allowableValues": { + "valueType": "LIST", + "values": [ + "none", + "both", + "out", + "in" + ] + } + }, + { + "name": "whisper", + "description": "Direction of audio to whisper into", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string", + "defaultValue": "none", + "allowableValues": { + "valueType": "LIST", + "values": [ + "none", + "both", + "out", + "in" + ] + } + }, + { + "name": "app", + "description": "Application the snooping channel is placed into", + "paramType": "query", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "appArgs", + "description": "The application arguments to pass to the Stasis application", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 400, + "reason": "Invalid parameters" + }, + { + "code": 404, + "reason": "Channel not found" + } + ] + } + ] + }, + { + "path": "/channels/{channelId}/dial", + "description": "Dial a channel", + "operations": [ + { + "httpMethod": "POST", + "summary": "Dial a created channel.", + "nickname": "dial", + "responseClass": "void", + "parameters": [ + { + "name": "channelId", + "description": "Channel's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "caller", + "description": "Channel ID of caller", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "timeout", + "description": "Dial timeout", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "int", + "defaultValue": 0, + "allowableValues": { + "valueType": "RANGE", + "min": 0 + } + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Channel cannot be found." + }, + { + "code": 409, + "reason": "Channel cannot be dialed." + } + ] + } + ] + }, + { + "path": "/channels/{channelId}/rtp_statistics", + "description": "Get RTP statistics information for RTP on a channel", + "operations": [ + { + "httpMethod": "GET", + "summary": "RTP stats on a channel.", + "nickname": "rtpstatistics", + "responseClass": "RTPstat", + "parameters": [ + { + "name": "channelId", + "description": "Channel's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Channel cannot be found." + } + ] + } + ] + }, + { + "path": "/channels/externalMedia", + "description": "Create a channel to an External Media source/sink.", + "operations": [ + { + "httpMethod": "POST", + "summary": "Start an External Media session.", + "notes": "Create a channel to an External Media source/sink.", + "nickname": "externalMedia", + "responseClass": "Channel", + "parameters": [ + { + "name": "channelId", + "description": "The unique id to assign the channel on creation.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "app", + "description": "Stasis Application to place channel into", + "paramType": "query", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "variables", + "description": "The \"variables\" key in the body object holds variable key/value pairs to set on the channel on creation. Other keys in the body object are interpreted as query parameters. Ex. { \"endpoint\": \"SIP/Alice\", \"variables\": { \"CALLERID(name)\": \"Alice\" } }", + "paramType": "body", + "required": false, + "dataType": "containers", + "allowMultiple": false + }, + { + "name": "external_host", + "description": "Hostname/ip:port of external host", + "paramType": "query", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "encapsulation", + "description": "Payload encapsulation protocol", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string", + "defaultValue": "rtp", + "allowableValues": { + "valueType": "LIST", + "values": [ + "rtp" + ] + } + }, + { + "name": "transport", + "description": "Transport protocol", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string", + "defaultValue": "udp", + "allowableValues": { + "valueType": "LIST", + "values": [ + "udp" + ] + } + }, + { + "name": "connection_type", + "description": "Connection type (client/server)", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string", + "defaultValue": "client", + "allowableValues": { + "valueType": "LIST", + "values": [ + "client" + ] + } + }, + { + "name": "format", + "description": "Format to encode audio in", + "paramType": "query", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "direction", + "description": "External media direction", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string", + "defaultValue": "both", + "allowableValues": { + "valueType": "LIST", + "values": [ + "both" + ] + } + } + ], + "errorResponses": [ + { + "code": 400, + "reason": "Invalid parameters" + }, + { + "code": 409, + "reason": "Channel is not in a Stasis application; Channel is already bridged" + } + ] + } + ] + } + ], + "models": { + "Dialed": { + "id": "Dialed", + "description": "Dialed channel information.", + "properties": {} + }, + "DialplanCEP": { + "id": "DialplanCEP", + "description": "Dialplan location (context/extension/priority)", + "properties": { + "context": { + "required": true, + "type": "string", + "description": "Context in the dialplan" + }, + "exten": { + "required": true, + "type": "string", + "description": "Extension in the dialplan" + }, + "priority": { + "required": true, + "type": "long", + "description": "Priority in the dialplan" + }, + "app_name": { + "required": true, + "type": "string", + "description": "Name of current dialplan application" + }, + "app_data": { + "required": true, + "type": "string", + "description": "Parameter of current dialplan application" + } + } + }, + "CallerID": { + "id": "CallerID", + "description": "Caller identification", + "properties": { + "name": { + "required": true, + "type": "string" + }, + "number": { + "required": true, + "type": "string" + } + } + }, + "RTPstat": { + "id": "RTPstat", + "description": "A statistics of a RTP.", + "properties": { + "txcount": { + "required": true, + "type": "int", + "description": "Number of packets transmitted." + }, + "rxcount": { + "required": true, + "type": "int", + "description": "Number of packets received." + }, + "txjitter": { + "required": false, + "type": "double", + "description": "Jitter on transmitted packets." + }, + "rxjitter": { + "required": false, + "type": "double", + "description": "Jitter on received packets." + }, + "remote_maxjitter": { + "required": false, + "type": "double", + "description": "Maximum jitter on remote side." + }, + "remote_minjitter": { + "required": false, + "type": "double", + "description": "Minimum jitter on remote side." + }, + "remote_normdevjitter": { + "required": false, + "type": "double", + "description": "Average jitter on remote side." + }, + "remote_stdevjitter": { + "required": false, + "type": "double", + "description": "Standard deviation jitter on remote side." + }, + "local_maxjitter": { + "required": false, + "type": "double", + "description": "Maximum jitter on local side." + }, + "local_minjitter": { + "required": false, + "type": "double", + "description": "Minimum jitter on local side." + }, + "local_normdevjitter": { + "required": false, + "type": "double", + "description": "Average jitter on local side." + }, + "local_stdevjitter": { + "required": false, + "type": "double", + "description": "Standard deviation jitter on local side." + }, + "txploss": { + "required": true, + "type": "int", + "description": "Number of transmitted packets lost." + }, + "rxploss": { + "required": true, + "type": "int", + "description": "Number of received packets lost." + }, + "remote_maxrxploss": { + "required": false, + "type": "double", + "description": "Maximum number of packets lost on remote side." + }, + "remote_minrxploss": { + "required": false, + "type": "double", + "description": "Minimum number of packets lost on remote side." + }, + "remote_normdevrxploss": { + "required": false, + "type": "double", + "description": "Average number of packets lost on remote side." + }, + "remote_stdevrxploss": { + "required": false, + "type": "double", + "description": "Standard deviation packets lost on remote side." + }, + "local_maxrxploss": { + "required": false, + "type": "double", + "description": "Maximum number of packets lost on local side." + }, + "local_minrxploss": { + "required": false, + "type": "double", + "description": "Minimum number of packets lost on local side." + }, + "local_normdevrxploss": { + "required": false, + "type": "double", + "description": "Average number of packets lost on local side." + }, + "local_stdevrxploss": { + "required": false, + "type": "double", + "description": "Standard deviation packets lost on local side." + }, + "rtt": { + "required": false, + "type": "double", + "description": "Total round trip time." + }, + "maxrtt": { + "required": false, + "type": "double", + "description": "Maximum round trip time." + }, + "minrtt": { + "required": false, + "type": "double", + "description": "Minimum round trip time." + }, + "normdevrtt": { + "required": false, + "type": "double", + "description": "Average round trip time." + }, + "stdevrtt": { + "required": false, + "type": "double", + "description": "Standard deviation round trip time." + }, + "local_ssrc": { + "required": true, + "type": "int", + "description": "Our SSRC." + }, + "remote_ssrc": { + "required": true, + "type": "int", + "description": "Their SSRC." + }, + "txoctetcount": { + "required": true, + "type": "int", + "description": "Number of octets transmitted." + }, + "rxoctetcount": { + "required": true, + "type": "int", + "description": "Number of octets received." + }, + "channel_uniqueid": { + "required": true, + "type": "string", + "description": "The Asterisk channel's unique ID that owns this instance." + } + } + }, + "Channel": { + "id": "Channel", + "description": "A specific communication connection between Asterisk and an Endpoint.", + "properties": { + "id": { + "required": true, + "type": "string", + "description": "Unique identifier of the channel.\n\nThis is the same as the Uniqueid field in AMI." + }, + "name": { + "required": true, + "type": "string", + "description": "Name of the channel (i.e. SIP/foo-0000a7e3)" + }, + "state": { + "required": true, + "type": "string", + "allowableValues": { + "valueType": "LIST", + "values": [ + "Down", + "Rsrved", + "OffHook", + "Dialing", + "Ring", + "Ringing", + "Up", + "Busy", + "Dialing Offhook", + "Pre-ring", + "Unknown" + ] + } + }, + "caller": { + "required": true, + "type": "CallerID" + }, + "connected": { + "required": true, + "type": "CallerID" + }, + "accountcode": { + "required": true, + "type": "string" + }, + "dialplan": { + "required": true, + "type": "DialplanCEP", + "description": "Current location in the dialplan" + }, + "creationtime": { + "required": true, + "type": "Date", + "description": "Timestamp when channel was created" + }, + "language": { + "required": true, + "type": "string", + "description": "The default spoken language" + }, + "channelvars": { + "required": false, + "type": "object", + "description": "Channel variables" + } + } + } + } +} diff --git a/codegen/src/main/resources/codegen-data/ari_5_1_0/deviceStates.json b/codegen/src/main/resources/codegen-data/ari_5_1_0/deviceStates.json new file mode 100644 index 00000000..bd389355 --- /dev/null +++ b/codegen/src/main/resources/codegen-data/ari_5_1_0/deviceStates.json @@ -0,0 +1,154 @@ +{ + "_copyright": "Copyright (C) 2012 - 2013, Digium, Inc.", + "_author": "Kevin Harwell ", + "_svn_revision": "$Revision$", + "apiVersion": "2.0.0", + "swaggerVersion": "1.1", + "basePath": "http://localhost:8088/ari", + "resourcePath": "/api-docs/deviceStates.{format}", + "requiresModules": [ + "res_stasis_device_state" + ], + "apis": [ + { + "path": "/deviceStates", + "description": "Device states", + "operations": [ + { + "httpMethod": "GET", + "summary": "List all ARI controlled device states.", + "nickname": "list", + "responseClass": "List[DeviceState]" + } + ] + }, + { + "path": "/deviceStates/{deviceName}", + "description": "Device state", + "operations": [ + { + "httpMethod": "GET", + "summary": "Retrieve the current state of a device.", + "nickname": "get", + "responseClass": "DeviceState", + "parameters": [ + { + "name": "deviceName", + "description": "Name of the device", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ] + }, + { + "httpMethod": "PUT", + "summary": "Change the state of a device controlled by ARI. (Note - implicitly creates the device state).", + "nickname": "update", + "responseClass": "void", + "parameters": [ + { + "name": "deviceName", + "description": "Name of the device", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "deviceState", + "description": "Device state value", + "paramType": "query", + "required": true, + "allowMultiple": false, + "dataType": "string", + "allowableValues": { + "valueType": "LIST", + "values": [ + "NOT_INUSE", + "INUSE", + "BUSY", + "INVALID", + "UNAVAILABLE", + "RINGING", + "RINGINUSE", + "ONHOLD" + ] + } + + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Device name is missing" + }, + { + "code": 409, + "reason": "Uncontrolled device specified" + } + ] + }, + { + "httpMethod": "DELETE", + "summary": "Destroy a device-state controlled by ARI.", + "nickname": "delete", + "responseClass": "void", + "parameters": [ + { + "name": "deviceName", + "description": "Name of the device", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Device name is missing" + }, + { + "code": 409, + "reason": "Uncontrolled device specified" + } + ] + } + ] + } + ], + "models": { + "DeviceState": { + "id": "DeviceState", + "description": "Represents the state of a device.", + "properties": { + "name": { + "type": "string", + "description": "Name of the device.", + "required": true + }, + "state": { + "type": "string", + "description": "Device's state", + "required": true, + "allowableValues": { + "valueType": "LIST", + "values": [ + "UNKNOWN", + "NOT_INUSE", + "INUSE", + "BUSY", + "INVALID", + "UNAVAILABLE", + "RINGING", + "RINGINUSE", + "ONHOLD" + ] + } + } + } + } + } +} diff --git a/codegen/src/main/resources/codegen-data/ari_5_1_0/endpoints.json b/codegen/src/main/resources/codegen-data/ari_5_1_0/endpoints.json new file mode 100644 index 00000000..1f77d370 --- /dev/null +++ b/codegen/src/main/resources/codegen-data/ari_5_1_0/endpoints.json @@ -0,0 +1,263 @@ +{ + "_copyright": "Copyright (C) 2012 - 2013, Digium, Inc.", + "_author": "David M. Lee, II ", + "_svn_revision": "$Revision$", + "apiVersion": "2.0.0", + "swaggerVersion": "1.1", + "basePath": "http://localhost:8088/ari", + "resourcePath": "/api-docs/endpoints.{format}", + "apis": [ + { + "path": "/endpoints", + "description": "Asterisk endpoints", + "operations": [ + { + "httpMethod": "GET", + "summary": "List all endpoints.", + "nickname": "list", + "responseClass": "List[Endpoint]" + } + ] + }, + { + "path": "/endpoints/sendMessage", + "description": "Send a message to some technology URI or endpoint.", + "operations": [ + { + "httpMethod": "PUT", + "summary": "Send a message to some technology URI or endpoint.", + "nickname": "sendMessage", + "responseClass": "void", + "parameters": [ + { + "name": "to", + "description": "The endpoint resource or technology specific URI to send the message to. Valid resources are sip, pjsip, and xmpp.", + "paramType": "query", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "from", + "description": "The endpoint resource or technology specific identity to send this message from. Valid resources are sip, pjsip, and xmpp.", + "paramType": "query", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "body", + "description": "The body of the message", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "variables", + "descriptioni": "The \"variables\" key in the body object holds technology specific key/value pairs to append to the message. These can be interpreted and used by the various resource types; for example, pjsip and sip resource types will add the key/value pairs as SIP headers,", + "paramType": "body", + "required": false, + "dataType": "containers", + "allowMultiple": false + } + ], + "errorResponses": [ + { + "code": 400, + "reason": "Invalid parameters for sending a message." + }, + { + "code": 404, + "reason": "Endpoint not found" + } + ] + } + ] + }, + { + "path": "/endpoints/{tech}", + "description": "Asterisk endpoints", + "operations": [ + { + "httpMethod": "GET", + "summary": "List available endoints for a given endpoint technology.", + "nickname": "listByTech", + "responseClass": "List[Endpoint]", + "parameters": [ + { + "name": "tech", + "description": "Technology of the endpoints (sip,iax2,...)", + "paramType": "path", + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Endpoints not found" + } + ] + } + ] + }, + { + "path": "/endpoints/{tech}/{resource}", + "description": "Single endpoint", + "operations": [ + { + "httpMethod": "GET", + "summary": "Details for an endpoint.", + "nickname": "get", + "responseClass": "Endpoint", + "parameters": [ + { + "name": "tech", + "description": "Technology of the endpoint", + "paramType": "path", + "dataType": "string" + }, + { + "name": "resource", + "description": "ID of the endpoint", + "paramType": "path", + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 400, + "reason": "Invalid parameters for sending a message." + }, + { + "code": 404, + "reason": "Endpoints not found" + } + ] + } + ] + }, + { + "path": "/endpoints/{tech}/{resource}/sendMessage", + "description": "Send a message to some endpoint in a technology.", + "operations": [ + { + "httpMethod": "PUT", + "summary": "Send a message to some endpoint in a technology.", + "nickname": "sendMessageToEndpoint", + "responseClass": "void", + "parameters": [ + { + "name": "tech", + "description": "Technology of the endpoint", + "paramType": "path", + "dataType": "string" + }, + { + "name": "resource", + "description": "ID of the endpoint", + "paramType": "path", + "dataType": "string" + }, + { + "name": "from", + "description": "The endpoint resource or technology specific identity to send this message from. Valid resources are sip, pjsip, and xmpp.", + "paramType": "query", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "body", + "description": "The body of the message", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "variables", + "descriptioni": "The \"variables\" key in the body object holds technology specific key/value pairs to append to the message. These can be interpreted and used by the various resource types; for example, pjsip and sip resource types will add the key/value pairs as SIP headers,", + "paramType": "body", + "required": false, + "dataType": "containers", + "allowMultiple": false + } + ], + "errorResponses": [ + { + "code": 400, + "reason": "Invalid parameters for sending a message." + }, + { + "code": 404, + "reason": "Endpoint not found" + } + ] + } + ] + } + ], + "models": { + "Endpoint": { + "id": "Endpoint", + "description": "An external device that may offer/accept calls to/from Asterisk.\n\nUnlike most resources, which have a single unique identifier, an endpoint is uniquely identified by the technology/resource pair.", + "properties": { + "technology": { + "type": "string", + "description": "Technology of the endpoint", + "required": true + }, + "resource": { + "type": "string", + "description": "Identifier of the endpoint, specific to the given technology.", + "required": true + }, + "state": { + "type": "string", + "description": "Endpoint's state", + "required": false, + "allowableValues": { + "valueType": "LIST", + "values": [ + "unknown", + "offline", + "online" + ] + } + }, + "channel_ids": { + "type": "List[string]", + "description": "Id's of channels associated with this endpoint", + "required": true + } + } + }, + "TextMessage": { + "id": "TextMessage", + "description": "A text message.", + "properties": { + "from": { + "type": "string", + "description": "A technology specific URI specifying the source of the message. For sip and pjsip technologies, any SIP URI can be specified. For xmpp, the URI must correspond to the client connection being used to send the message.", + "required": true + }, + "to": { + "type": "string", + "description": "A technology specific URI specifying the destination of the message. Valid technologies include sip, pjsip, and xmp. The destination of a message should be an endpoint.", + "required": true + }, + "body": { + "type": "string", + "description": "The text of the message.", + "required": true + }, + "variables": { + "type": "object", + "description": "Technology specific key/value pairs (JSON object) associated with the message.", + "required": false + } + } + } + } +} diff --git a/codegen/src/main/resources/codegen-data/ari_5_1_0/events.json b/codegen/src/main/resources/codegen-data/ari_5_1_0/events.json new file mode 100644 index 00000000..c9822f6c --- /dev/null +++ b/codegen/src/main/resources/codegen-data/ari_5_1_0/events.json @@ -0,0 +1,918 @@ +{ + "_copyright": "Copyright (C) 2012 - 2013, Digium, Inc.", + "_author": "David M. Lee, II ", + "_svn_revision": "$Revision$", + "apiVersion": "2.0.0", + "swaggerVersion": "1.2", + "basePath": "http://localhost:8088/ari", + "resourcePath": "/api-docs/events.{format}", + "requiresModules": [ + "res_http_websocket" + ], + "apis": [ + { + "path": "/events", + "description": "Events from Asterisk to applications", + "operations": [ + { + "httpMethod": "GET", + "upgrade": "websocket", + "websocketProtocol": "ari", + "summary": "WebSocket connection for events.", + "nickname": "eventWebsocket", + "responseClass": "Message", + "parameters": [ + { + "name": "app", + "description": "Applications to subscribe to.", + "paramType": "query", + "required": true, + "allowMultiple": true, + "dataType": "string" + }, + { + "name": "subscribeAll", + "description": "Subscribe to all Asterisk events. If provided, the applications listed will be subscribed to all events, effectively disabling the application specific subscriptions. Default is 'false'.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "boolean" + } + ] + } + ] + }, + { + "path": "/events/user/{eventName}", + "description": "Stasis application user events", + "operations": [ + { + "httpMethod": "POST", + "summary": "Generate a user event.", + "nickname": "userEvent", + "responseClass": "void", + "parameters": [ + { + "name": "eventName", + "description": "Event name", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "application", + "description": "The name of the application that will receive this event", + "paramType": "query", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "source", + "description": "URI for event source (channel:{channelId}, bridge:{bridgeId}, endpoint:{tech}/{resource}, deviceState:{deviceName}", + "paramType": "query", + "required": false, + "allowMultiple": true, + "dataType": "string" + }, + { + "name": "variables", + "description": "The \"variables\" key in the body object holds custom key/value pairs to add to the user event. Ex. { \"variables\": { \"key\": \"value\" } }", + "paramType": "body", + "required": false, + "allowMultiple": false, + "dataType": "containers" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Application does not exist." + }, + { + "code": 422, + "reason": "Event source not found." + }, + { + "code": 400, + "reason": "Invalid even tsource URI or userevent data." + } + ] + } + ] + } + ], + "models": { + "Message": { + "id": "Message", + "description": "Base type for errors and events", + "discriminator": "type", + "properties": { + "type": { + "type": "string", + "required": true, + "description": "Indicates the type of this message." + }, + "asterisk_id": { + "type": "string", + "required": false, + "description": "The unique ID for the Asterisk instance that raised this event." + } + }, + "subTypes": [ + "MissingParams", + "Event" + ] + }, + "MissingParams": { + "id": "MissingParams", + "description": "Error event sent when required params are missing.", + "properties": { + "params": { + "required": true, + "type": "List[string]", + "description": "A list of the missing parameters" + } + } + }, + "Event": { + "id": "Event", + "description": "Base type for asynchronous events from Asterisk.", + "properties": { + "application": { + "type": "string", + "description": "Name of the application receiving the event.", + "required": true + }, + "timestamp": { + "type": "Date", + "description": "Time at which this event was created.", + "required": true + } + }, + "subTypes": [ + "DeviceStateChanged", + "PlaybackStarted", + "PlaybackContinuing", + "PlaybackFinished", + "RecordingStarted", + "RecordingFinished", + "RecordingFailed", + "ApplicationMoveFailed", + "ApplicationReplaced", + "BridgeCreated", + "BridgeDestroyed", + "BridgeMerged", + "BridgeBlindTransfer", + "BridgeAttendedTransfer", + "BridgeVideoSourceChanged", + "ChannelCreated", + "ChannelDestroyed", + "ChannelEnteredBridge", + "ChannelLeftBridge", + "ChannelStateChange", + "ChannelDtmfReceived", + "ChannelDialplan", + "ChannelCallerId", + "ChannelUserevent", + "ChannelHangupRequest", + "ChannelVarset", + "ChannelTalkingStarted", + "ChannelTalkingFinished", + "ChannelHold", + "ChannelUnhold", + "ContactStatusChange", + "EndpointStateChange", + "Dial", + "StasisEnd", + "StasisStart", + "TextMessageReceived", + "ChannelConnectedLine", + "PeerStatusChange" + ] + }, + "ContactInfo": { + "id": "ContactInfo", + "description": "Detailed information about a contact on an endpoint.", + "properties": { + "uri": { + "type": "string", + "description": "The location of the contact.", + "required": true + }, + "contact_status": { + "type": "string", + "description": "The current status of the contact.", + "required": true, + "allowableValues": { + "valueType": "LIST", + "values": [ + "Unreachable", + "Reachable", + "Unknown", + "NonQualified", + "Removed" + ] + } + }, + "aor": { + "type": "string", + "description": "The Address of Record this contact belongs to.", + "required": true + }, + "roundtrip_usec": { + "type": "string", + "description": "Current round trip time, in microseconds, for the contact.", + "required": false + } + } + }, + "Peer": { + "id": "Peer", + "description": "Detailed information about a remote peer that communicates with Asterisk.", + "properties": { + "peer_status": { + "type": "string", + "description": "The current state of the peer. Note that the values of the status are dependent on the underlying peer technology.", + "required": true + }, + "cause": { + "type": "string", + "description": "An optional reason associated with the change in peer_status.", + "required": false + }, + "address": { + "type": "string", + "description": "The IP address of the peer.", + "required": false + }, + "port": { + "type": "string", + "description": "The port of the peer.", + "required": false + }, + "time": { + "type": "string", + "description": "The last known time the peer was contacted.", + "required": false + } + } + }, + "DeviceStateChanged": { + "id": "DeviceStateChanged", + "description": "Notification that a device state has changed.", + "properties": { + "device_state": { + "type": "DeviceState", + "description": "Device state object", + "required": true + } + } + }, + "PlaybackStarted": { + "id": "PlaybackStarted", + "description": "Event showing the start of a media playback operation.", + "properties": { + "playback": { + "type": "Playback", + "description": "Playback control object", + "required": true + } + } + }, + "PlaybackContinuing": { + "id": "PlaybackContinuing", + "description": "Event showing the continuation of a media playback operation from one media URI to the next in the list.", + "properties": { + "playback": { + "type": "Playback", + "description": "Playback control object", + "required": true + } + } + }, + "PlaybackFinished": { + "id": "PlaybackFinished", + "description": "Event showing the completion of a media playback operation.", + "properties": { + "playback": { + "type": "Playback", + "description": "Playback control object", + "required": true + } + } + }, + "RecordingStarted": { + "id": "RecordingStarted", + "description": "Event showing the start of a recording operation.", + "properties": { + "recording": { + "type": "LiveRecording", + "description": "Recording control object", + "required": true + } + } + }, + "RecordingFinished": { + "id": "RecordingFinished", + "description": "Event showing the completion of a recording operation.", + "properties": { + "recording": { + "type": "LiveRecording", + "description": "Recording control object", + "required": true + } + } + }, + "RecordingFailed": { + "id": "RecordingFailed", + "description": "Event showing failure of a recording operation.", + "properties": { + "recording": { + "type": "LiveRecording", + "description": "Recording control object", + "required": true + } + } + }, + "ApplicationMoveFailed": { + "id": "ApplicationMoveFailed", + "description": "Notification that trying to move a channel to another Stasis application failed.", + "properties": { + "channel": { + "required": true, + "type": "Channel" + }, + "destination": { + "required": true, + "type": "string" + }, + "args": { + "required": true, + "type": "List[string]", + "description": "Arguments to the application" + } + } + }, + "ApplicationReplaced": { + "id": "ApplicationReplaced", + "description": "Notification that another WebSocket has taken over for an application.\n\nAn application may only be subscribed to by a single WebSocket at a time. If multiple WebSockets attempt to subscribe to the same application, the newer WebSocket wins, and the older one receives this event.", + "properties": {} + }, + "BridgeCreated": { + "id": "BridgeCreated", + "description": "Notification that a bridge has been created.", + "properties": { + "bridge": { + "required": true, + "type": "Bridge" + } + } + }, + "BridgeDestroyed": { + "id": "BridgeDestroyed", + "description": "Notification that a bridge has been destroyed.", + "properties": { + "bridge": { + "required": true, + "type": "Bridge" + } + } + }, + "BridgeMerged": { + "id": "BridgeMerged", + "description": "Notification that one bridge has merged into another.", + "properties": { + "bridge": { + "required": true, + "type": "Bridge" + }, + "bridge_from": { + "required": true, + "type": "Bridge" + } + } + }, + "BridgeVideoSourceChanged": { + "id": "BridgeVideoSourceChanged", + "description": "Notification that the source of video in a bridge has changed.", + "properties": { + "bridge": { + "required": true, + "type": "Bridge" + }, + "old_video_source_id": { + "required": false, + "type": "string" + } + } + }, + "BridgeBlindTransfer": { + "id": "BridgeBlindTransfer", + "description": "Notification that a blind transfer has occurred.", + "properties": { + "channel": { + "description": "The channel performing the blind transfer", + "required": true, + "type": "Channel" + }, + "replace_channel": { + "description": "The channel that is replacing transferer when the transferee(s) can not be transferred directly", + "required": false, + "type": "Channel" + }, + "transferee": { + "description": "The channel that is being transferred", + "required": false, + "type": "Channel" + }, + "exten": { + "description": "The extension transferred to", + "required": true, + "type": "string" + }, + "context": { + "description": "The context transferred to", + "required": true, + "type": "string" + }, + "result": { + "description": "The result of the transfer attempt", + "required": true, + "type": "string" + }, + "is_external": { + "description": "Whether the transfer was externally initiated or not", + "required": true, + "type": "boolean" + }, + "bridge": { + "description": "The bridge being transferred", + "type": "Bridge" + } + } + }, + "BridgeAttendedTransfer": { + "id": "BridgeAttendedTransfer", + "description": "Notification that an attended transfer has occurred.", + "properties": { + "transferer_first_leg": { + "description": "First leg of the transferer", + "required": true, + "type": "Channel" + }, + "transferer_second_leg": { + "description": "Second leg of the transferer", + "required": true, + "type": "Channel" + }, + "replace_channel": { + "description": "The channel that is replacing transferer_first_leg in the swap", + "required": false, + "type": "Channel" + }, + "transferee": { + "description": "The channel that is being transferred", + "required": false, + "type": "Channel" + }, + "transfer_target": { + "description": "The channel that is being transferred to", + "required": false, + "type": "Channel" + }, + "result": { + "description": "The result of the transfer attempt", + "required": true, + "type": "string" + }, + "is_external": { + "description": "Whether the transfer was externally initiated or not", + "required": true, + "type": "boolean" + }, + "transferer_first_leg_bridge": { + "description": "Bridge the transferer first leg is in", + "type": "Bridge" + }, + "transferer_second_leg_bridge": { + "description": "Bridge the transferer second leg is in", + "type": "Bridge" + }, + "destination_type": { + "description": "How the transfer was accomplished", + "required": true, + "type": "string" + }, + "destination_bridge": { + "description": "Bridge that survived the merge result", + "type": "string" + }, + "destination_application": { + "description": "Application that has been transferred into", + "type": "string" + }, + "destination_link_first_leg": { + "description": "First leg of a link transfer result", + "type": "Channel" + }, + "destination_link_second_leg": { + "description": "Second leg of a link transfer result", + "type": "Channel" + }, + "destination_threeway_channel": { + "description": "Transferer channel that survived the threeway result", + "type": "Channel" + }, + "destination_threeway_bridge": { + "description": "Bridge that survived the threeway result", + "type": "Bridge" + } + } + }, + "ChannelCreated": { + "id": "ChannelCreated", + "description": "Notification that a channel has been created.", + "properties": { + "channel": { + "required": true, + "type": "Channel" + } + } + }, + "ChannelDestroyed": { + "id": "ChannelDestroyed", + "description": "Notification that a channel has been destroyed.", + "properties": { + "cause": { + "required": true, + "description": "Integer representation of the cause of the hangup", + "type": "int" + }, + "cause_txt": { + "required": true, + "description": "Text representation of the cause of the hangup", + "type": "string" + }, + "channel": { + "required": true, + "type": "Channel" + } + } + }, + "ChannelEnteredBridge": { + "id": "ChannelEnteredBridge", + "description": "Notification that a channel has entered a bridge.", + "properties": { + "bridge": { + "required": true, + "type": "Bridge" + }, + "channel": { + "type": "Channel" + } + } + }, + "ChannelLeftBridge": { + "id": "ChannelLeftBridge", + "description": "Notification that a channel has left a bridge.", + "properties": { + "bridge": { + "required": true, + "type": "Bridge" + }, + "channel": { + "required": true, + "type": "Channel" + } + } + }, + "ChannelStateChange": { + "id": "ChannelStateChange", + "description": "Notification of a channel's state change.", + "properties": { + "channel": { + "required": true, + "type": "Channel" + } + } + }, + "ChannelDtmfReceived": { + "id": "ChannelDtmfReceived", + "description": "DTMF received on a channel.\n\nThis event is sent when the DTMF ends. There is no notification about the start of DTMF", + "properties": { + "digit": { + "required": true, + "type": "string", + "description": "DTMF digit received (0-9, A-E, # or *)" + }, + "duration_ms": { + "required": true, + "type": "int", + "description": "Number of milliseconds DTMF was received" + }, + "channel": { + "required": true, + "type": "Channel", + "description": "The channel on which DTMF was received" + } + } + }, + "ChannelDialplan": { + "id": "ChannelDialplan", + "description": "Channel changed location in the dialplan.", + "properties": { + "channel": { + "required": true, + "type": "Channel", + "description": "The channel that changed dialplan location." + }, + "dialplan_app": { + "required": true, + "type": "string", + "description": "The application about to be executed." + }, + "dialplan_app_data": { + "required": true, + "type": "string", + "description": "The data to be passed to the application." + } + } + }, + "ChannelCallerId": { + "id": "ChannelCallerId", + "description": "Channel changed Caller ID.", + "properties": { + "caller_presentation": { + "required": true, + "type": "int", + "description": "The integer representation of the Caller Presentation value." + }, + "caller_presentation_txt": { + "required": true, + "type": "string", + "description": "The text representation of the Caller Presentation value." + }, + "channel": { + "required": true, + "type": "Channel", + "description": "The channel that changed Caller ID." + } + } + }, + "ChannelUserevent": { + "id": "ChannelUserevent", + "description": "User-generated event with additional user-defined fields in the object.", + "properties": { + "eventname": { + "required": true, + "type": "string", + "description": "The name of the user event." + }, + "channel": { + "required": false, + "type": "Channel", + "description": "A channel that is signaled with the user event." + }, + "bridge": { + "required": false, + "type": "Bridge", + "description": "A bridge that is signaled with the user event." + }, + "endpoint": { + "required": false, + "type": "Endpoint", + "description": "A endpoint that is signaled with the user event." + }, + "userevent": { + "required": true, + "type": "object", + "description": "Custom Userevent data" + } + } + }, + "ChannelHangupRequest": { + "id": "ChannelHangupRequest", + "description": "A hangup was requested on the channel.", + "properties": { + "cause": { + "type": "int", + "description": "Integer representation of the cause of the hangup." + }, + "soft": { + "type": "boolean", + "description": "Whether the hangup request was a soft hangup request." + }, + "channel": { + "required": true, + "type": "Channel", + "description": "The channel on which the hangup was requested." + } + } + }, + "ChannelVarset": { + "id": "ChannelVarset", + "description": "Channel variable changed.", + "properties": { + "variable": { + "required": true, + "type": "string", + "description": "The variable that changed." + }, + "value": { + "required": true, + "type": "string", + "description": "The new value of the variable." + }, + "channel": { + "required": false, + "type": "Channel", + "description": "The channel on which the variable was set.\n\nIf missing, the variable is a global variable." + } + } + }, + "ChannelHold": { + "id": "ChannelHold", + "description": "A channel initiated a media hold.", + "properties": { + "channel": { + "required": true, + "type": "Channel", + "description": "The channel that initiated the hold event." + }, + "musicclass": { + "required": false, + "type": "string", + "description": "The music on hold class that the initiator requested." + } + } + }, + "ChannelUnhold": { + "id": "ChannelUnhold", + "description": "A channel initiated a media unhold.", + "properties": { + "channel": { + "required": true, + "type": "Channel", + "description": "The channel that initiated the unhold event." + } + } + }, + "ChannelTalkingStarted": { + "id": "ChannelTalkingStarted", + "description": "Talking was detected on the channel.", + "properties": { + "channel": { + "required": true, + "type": "Channel", + "description": "The channel on which talking started." + } + } + }, + "ChannelTalkingFinished": { + "id": "ChannelTalkingFinished", + "description": "Talking is no longer detected on the channel.", + "properties": { + "channel": { + "required": true, + "type": "Channel", + "description": "The channel on which talking completed." + }, + "duration": { + "required": true, + "type": "int", + "description": "The length of time, in milliseconds, that talking was detected on the channel" + } + } + }, + "ContactStatusChange": { + "id": "ContactStatusChange", + "description": "The state of a contact on an endpoint has changed.", + "properties": { + "endpoint": { + "required": true, + "type": "Endpoint" + }, + "contact_info": { + "required": true, + "type": "ContactInfo" + } + } + }, + "PeerStatusChange": { + "id": "PeerStatusChange", + "description": "The state of a peer associated with an endpoint has changed.", + "properties": { + "endpoint": { + "required": true, + "type": "Endpoint" + }, + "peer": { + "required": true, + "type": "Peer" + } + } + }, + "EndpointStateChange": { + "id": "EndpointStateChange", + "description": "Endpoint state changed.", + "properties": { + "endpoint": { + "required": true, + "type": "Endpoint" + } + } + }, + "Dial": { + "id": "Dial", + "description": "Dialing state has changed.", + "properties": { + "caller": { + "required": false, + "type": "Channel", + "description": "The calling channel." + }, + "peer": { + "required": true, + "type": "Channel", + "description": "The dialed channel." + }, + "forward": { + "required": false, + "type": "string", + "description": "Forwarding target requested by the original dialed channel." + }, + "forwarded": { + "required": false, + "type": "Channel", + "description": "Channel that the caller has been forwarded to." + }, + "dialstring": { + "required": false, + "type": "string", + "description": "The dial string for calling the peer channel." + }, + "dialstatus": { + "required": true, + "type": "string", + "description": "Current status of the dialing attempt to the peer." + } + } + }, + "StasisEnd": { + "id": "StasisEnd", + "description": "Notification that a channel has left a Stasis application.", + "properties": { + "channel": { + "required": true, + "type": "Channel" + } + } + }, + "StasisStart": { + "id": "StasisStart", + "description": "Notification that a channel has entered a Stasis application.", + "properties": { + "args": { + "required": true, + "type": "List[string]", + "description": "Arguments to the application" + }, + "channel": { + "required": true, + "type": "Channel" + }, + "replace_channel": { + "required": false, + "type": "Channel" + } + } + }, + "TextMessageReceived": { + "id": "TextMessageReceived", + "description": "A text message was received from an endpoint.", + "properties": { + "message": { + "required": true, + "type": "TextMessage" + }, + "endpoint": { + "required": false, + "type": "Endpoint" + } + } + }, + "ChannelConnectedLine": { + "id": "ChannelConnectedLine", + "description": "Channel changed Connected Line.", + "properties": { + "channel": { + "required": true, + "type": "Channel", + "description": "The channel whose connected line has changed." + } + } + } + } +} diff --git a/codegen/src/main/resources/codegen-data/ari_5_1_0/mailboxes.json b/codegen/src/main/resources/codegen-data/ari_5_1_0/mailboxes.json new file mode 100644 index 00000000..8f5941b8 --- /dev/null +++ b/codegen/src/main/resources/codegen-data/ari_5_1_0/mailboxes.json @@ -0,0 +1,137 @@ +{ + "_copyright": "Copyright (C) 2013, Digium, Inc.", + "_author": "Jonathan Rose ", + "_svn_revision": "$Revision$", + "apiVersion": "2.0.0", + "swaggerVersion": "1.1", + "basePath": "http://localhost:8088/ari", + "resourcePath": "/api-docs/mailboxes.{format}", + "requiresModules": [ + "res_stasis_mailbox" + ], + "apis": [ + { + "path": "/mailboxes", + "description": "Mailboxes", + "operations": [ + { + "httpMethod": "GET", + "summary": "List all mailboxes.", + "nickname": "list", + "responseClass": "List[Mailbox]" + } + ] + }, + { + "path": "/mailboxes/{mailboxName}", + "description": "Mailbox state", + "operations": [ + { + "httpMethod": "GET", + "summary": "Retrieve the current state of a mailbox.", + "nickname": "get", + "responseClass": "Mailbox", + "parameters": [ + { + "name": "mailboxName", + "description": "Name of the mailbox", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Mailbox not found" + } + ] + }, + { + "httpMethod": "PUT", + "summary": "Change the state of a mailbox. (Note - implicitly creates the mailbox).", + "nickname": "update", + "responseClass": "void", + "parameters": [ + { + "name": "mailboxName", + "description": "Name of the mailbox", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "oldMessages", + "description": "Count of old messages in the mailbox", + "paramType": "query", + "required": true, + "allowMultiple": false, + "dataType": "int" + }, + { + "name": "newMessages", + "description": "Count of new messages in the mailbox", + "paramType": "query", + "required": true, + "allowMultiple": false, + "dataType": "int" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Mailbox not found" + } + ] + }, + { + "httpMethod": "DELETE", + "summary": "Destroy a mailbox.", + "nickname": "delete", + "responseClass": "void", + "parameters": [ + { + "name": "mailboxName", + "description": "Name of the mailbox", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Mailbox not found" + } + ] + } + ] + } + ], + "models": { + "Mailbox": { + "id": "Mailbox", + "description": "Represents the state of a mailbox.", + "properties": { + "name": { + "type": "string", + "description": "Name of the mailbox.", + "required": true + }, + "old_messages": { + "type": "int", + "description": "Count of old messages in the mailbox.", + "required": true + }, + "new_messages": { + "type": "int", + "description": "Count of new messages in the mailbox.", + "required": true + } + } + } + } +} diff --git a/codegen/src/main/resources/codegen-data/ari_5_1_0/playbacks.json b/codegen/src/main/resources/codegen-data/ari_5_1_0/playbacks.json new file mode 100644 index 00000000..a78dcae7 --- /dev/null +++ b/codegen/src/main/resources/codegen-data/ari_5_1_0/playbacks.json @@ -0,0 +1,164 @@ +{ + "_copyright": "Copyright (C) 2012 - 2013, Digium, Inc.", + "_author": "David M. Lee, II ", + "_svn_revision": "$Revision$", + "apiVersion": "2.0.0", + "swaggerVersion": "1.1", + "basePath": "http://localhost:8088/ari", + "resourcePath": "/api-docs/playbacks.{format}", + "requiresModules": [ + "res_stasis_playback" + ], + "apis": [ + { + "path": "/playbacks/{playbackId}", + "description": "Control object for a playback operation.", + "operations": [ + { + "httpMethod": "GET", + "summary": "Get a playback's details.", + "nickname": "get", + "responseClass": "Playback", + "parameters": [ + { + "name": "playbackId", + "description": "Playback's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "The playback cannot be found" + } + ] + }, + { + "httpMethod": "DELETE", + "summary": "Stop a playback.", + "nickname": "stop", + "responseClass": "void", + "parameters": [ + { + "name": "playbackId", + "description": "Playback's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "The playback cannot be found" + } + ] + } + ] + }, + { + "path": "/playbacks/{playbackId}/control", + "description": "Control object for a playback operation.", + "operations": [ + { + "httpMethod": "POST", + "summary": "Control a playback.", + "nickname": "control", + "responseClass": "void", + "parameters": [ + { + "name": "playbackId", + "description": "Playback's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "operation", + "description": "Operation to perform on the playback.", + "paramType": "query", + "required": true, + "allowMultiple": false, + "dataType": "string", + "allowableValues": { + "valueType": "LIST", + "values": [ + "restart", + "pause", + "unpause", + "reverse", + "forward" + ] + } + } + ], + "errorResponses": [ + { + "code": 400, + "reason": "The provided operation parameter was invalid" + }, + { + "code": 404, + "reason": "The playback cannot be found" + }, + { + "code": 409, + "reason": "The operation cannot be performed in the playback's current state" + } +] + } + ] + } + ], + "models": { + "Playback": { + "id": "Playback", + "description": "Object representing the playback of media to a channel", + "properties": { + "id": { + "type": "string", + "description": "ID for this playback operation", + "required": true + }, + "media_uri": { + "type": "string", + "description": "The URI for the media currently being played back.", + "required": true + }, + "next_media_uri": { + "type": "string", + "description": "If a list of URIs is being played, the next media URI to be played back.", + "required": false + }, + "target_uri": { + "type": "string", + "description": "URI for the channel or bridge to play the media on", + "required": true + }, + "language": { + "type": "string", + "description": "For media types that support multiple languages, the language requested for playback." + }, + "state": { + "type": "string", + "description": "Current state of the playback operation.", + "required": true, + "allowableValues": { + "valueType": "LIST", + "values": [ + "queued", + "playing", + "continuing", + "done" + ] + } + } + } + } + } +} diff --git a/codegen/src/main/resources/codegen-data/ari_5_1_0/recordings.json b/codegen/src/main/resources/codegen-data/ari_5_1_0/recordings.json new file mode 100644 index 00000000..6ffd6d8e --- /dev/null +++ b/codegen/src/main/resources/codegen-data/ari_5_1_0/recordings.json @@ -0,0 +1,413 @@ +{ + "_copyright": "Copyright (C) 2012 - 2013, Digium, Inc.", + "_author": "David M. Lee, II ", + "_svn_revision": "$Revision$", + "apiVersion": "2.0.0", + "swaggerVersion": "1.1", + "basePath": "http://localhost:8088/ari", + "resourcePath": "/api-docs/recordings.{format}", + "requiresModules": [ + "res_stasis_recording" + ], + "apis": [ + { + "path": "/recordings/stored", + "description": "Recordings", + "operations": [ + { + "httpMethod": "GET", + "summary": "List recordings that are complete.", + "nickname": "listStored", + "responseClass": "List[StoredRecording]" + } + ] + }, + { + "path": "/recordings/stored/{recordingName}", + "description": "Individual recording", + "operations": [ + { + "httpMethod": "GET", + "summary": "Get a stored recording's details.", + "nickname": "getStored", + "responseClass": "StoredRecording", + "parameters": [ + { + "name": "recordingName", + "description": "The name of the recording", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Recording not found" + } + ] + }, + { + "httpMethod": "DELETE", + "summary": "Delete a stored recording.", + "nickname": "deleteStored", + "responseClass": "void", + "parameters": [ + { + "name": "recordingName", + "description": "The name of the recording", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Recording not found" + } + ] + } + ] + }, + { + "path": "/recordings/stored/{recordingName}/file", + "description": "The actual file associated with the stored recording", + "operations": [ + { + "httpMethod": "GET", + "summary": "Get the file associated with the stored recording.", + "nickname": "getStoredFile", + "responseClass": "binary", + "parameters": [ + { + "name": "recordingName", + "description": "The name of the recording", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 403, + "reason": "The recording file could not be opened" + }, + { + "code": 404, + "reason": "Recording not found" + } + ] + } + ] + }, + { + "path": "/recordings/stored/{recordingName}/copy", + "description": "Copy an individual recording", + "operations": [ + { + "httpMethod": "POST", + "summary": "Copy a stored recording.", + "nickname": "copyStored", + "responseClass": "StoredRecording", + "parameters": [ + { + "name": "recordingName", + "description": "The name of the recording to copy", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "destinationRecordingName", + "description": "The destination name of the recording", + "paramType": "query", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Recording not found" + }, + { + "code": 409, + "reason": "A recording with the same name already exists on the system" + } + ] + } + ] + }, + { + "path": "/recordings/live/{recordingName}", + "description": "A recording that is in progress", + "operations": [ + { + "httpMethod": "GET", + "summary": "List live recordings.", + "nickname": "getLive", + "responseClass": "LiveRecording", + "parameters": [ + { + "name": "recordingName", + "description": "The name of the recording", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Recording not found" + } + ] + }, + { + "httpMethod": "DELETE", + "summary": "Stop a live recording and discard it.", + "nickname": "cancel", + "responseClass": "void", + "parameters": [ + { + "name": "recordingName", + "description": "The name of the recording", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Recording not found" + } + ] + } + ] + }, + { + "path": "/recordings/live/{recordingName}/stop", + "operations": [ + { + "httpMethod": "POST", + "summary": "Stop a live recording and store it.", + "nickname": "stop", + "responseClass": "void", + "parameters": [ + { + "name": "recordingName", + "description": "The name of the recording", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Recording not found" + } + ] + } + ] + }, + { + "path": "/recordings/live/{recordingName}/pause", + "operations": [ + { + "httpMethod": "POST", + "summary": "Pause a live recording.", + "notes": "Pausing a recording suspends silence detection, which will be restarted when the recording is unpaused. Paused time is not included in the accounting for maxDurationSeconds.", + "nickname": "pause", + "responseClass": "void", + "parameters": [ + { + "name": "recordingName", + "description": "The name of the recording", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Recording not found" + }, + { + "code": 409, + "reason": "Recording not in session" + } + ] + }, + { + "httpMethod": "DELETE", + "summary": "Unpause a live recording.", + "nickname": "unpause", + "responseClass": "void", + "parameters": [ + { + "name": "recordingName", + "description": "The name of the recording", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Recording not found" + }, + { + "code": 409, + "reason": "Recording not in session" + } + ] + } + ] + }, + { + "path": "/recordings/live/{recordingName}/mute", + "operations": [ + { + "httpMethod": "POST", + "summary": "Mute a live recording.", + "notes": "Muting a recording suspends silence detection, which will be restarted when the recording is unmuted.", + "nickname": "mute", + "responseClass": "void", + "parameters": [ + { + "name": "recordingName", + "description": "The name of the recording", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Recording not found" + }, + { + "code": 409, + "reason": "Recording not in session" + } + ] + }, + { + "httpMethod": "DELETE", + "summary": "Unmute a live recording.", + "nickname": "unmute", + "responseClass": "void", + "parameters": [ + { + "name": "recordingName", + "description": "The name of the recording", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Recording not found" + }, + { + "code": 409, + "reason": "Recording not in session" + } + ] + } + ] + } + ], + "models": { + "StoredRecording": { + "id": "StoredRecording", + "description": "A past recording that may be played back.", + "properties": { + "name": { + "required": true, + "type": "string" + }, + "format": { + "required": true, + "type": "string" + } + } + }, + "LiveRecording": { + "id": "LiveRecording", + "description": "A recording that is in progress", + "properties": { + "name": { + "required": true, + "type": "string", + "description": "Base name for the recording" + }, + "format": { + "required": true, + "type": "string", + "description": "Recording format (wav, gsm, etc.)" + }, + "target_uri": { + "required": true, + "type": "string", + "description": "URI for the channel or bridge being recorded" + }, + "state": { + "required": true, + "type": "string", + "allowableValues": { + "valueType": "LIST", + "values": [ + "queued", + "recording", + "paused", + "done", + "failed", + "canceled" + ] + } + }, + "duration": { + "required": false, + "type": "int", + "description": "Duration in seconds of the recording" + }, + "talking_duration": { + "required": false, + "type": "int", + "description": "Duration of talking, in seconds, detected in the recording. This is only available if the recording was initiated with a non-zero maxSilenceSeconds." + }, + "silence_duration": { + "required": false, + "type": "int", + "description": "Duration of silence, in seconds, detected in the recording. This is only available if the recording was initiated with a non-zero maxSilenceSeconds." + }, + "cause": { + "required": false, + "type": "string", + "description": "Cause for recording failure if failed" + } + } + } + } +} diff --git a/codegen/src/main/resources/codegen-data/ari_5_1_0/sounds.json b/codegen/src/main/resources/codegen-data/ari_5_1_0/sounds.json new file mode 100644 index 00000000..8fbe1c57 --- /dev/null +++ b/codegen/src/main/resources/codegen-data/ari_5_1_0/sounds.json @@ -0,0 +1,99 @@ +{ + "_copyright": "Copyright (C) 2012 - 2013, Digium, Inc.", + "_author": "David M. Lee, II ", + "_svn_revision": "$Revision$", + "apiVersion": "2.0.0", + "swaggerVersion": "1.1", + "basePath": "http://localhost:8088/ari", + "resourcePath": "/api-docs/sounds.{format}", + "apis": [ + { + "path": "/sounds", + "description": "Sounds", + "operations": [ + { + "httpMethod": "GET", + "summary": "List all sounds.", + "nickname": "list", + "responseClass": "List[Sound]", + "parameters": [ + { + "name": "lang", + "description": "Lookup sound for a specific language.", + "paramType": "query", + "dataType": "string", + "required": false + }, + { + "name": "format", + "description": "Lookup sound in a specific format.", + "paramType": "query", + "dataType": "string", + "required": false, + "__note": "core show translation can show translation paths between formats, along with relative costs. so this could be just installed format, or we could follow that for transcoded formats." + } + ] + } + ] + }, + { + "path": "/sounds/{soundId}", + "description": "Individual sound", + "operations": [ + { + "httpMethod": "GET", + "summary": "Get a sound's details.", + "nickname": "get", + "responseClass": "Sound", + "parameters": [ + { + "name": "soundId", + "description": "Sound's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ] + } + ] + } + ], + "models": { + "FormatLangPair": { + "id": "FormatLangPair", + "description": "Identifies the format and language of a sound file", + "properties": { + "language": { + "required": true, + "type": "string" + }, + "format": { + "required": true, + "type": "string" + } + } + }, + "Sound": { + "id": "Sound", + "description": "A media file that may be played back.", + "properties": { + "id": { + "required": true, + "description": "Sound's identifier.", + "type": "string" + }, + "text": { + "required": false, + "description": "Text description of the sound, usually the words spoken.", + "type": "string" + }, + "formats": { + "required": true, + "description": "The formats and languages in which this sound is available.", + "type": "List[FormatLangPair]" + } + } + } + } +} From e748832c7aae25779314889f4365b41a187793a8 Mon Sep 17 00:00:00 2001 From: Graham Brown Date: Sat, 21 Mar 2020 20:59:40 +0200 Subject: [PATCH 139/220] make it 0.11.0 --- build.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.gradle b/build.gradle index 099a81f1..ca25250f 100644 --- a/build.gradle +++ b/build.gradle @@ -8,7 +8,7 @@ plugins { } group = "ch.loway.oss.ari4java" -version = "0.10.1" +version = "0.11.0" java { sourceCompatibility = JavaVersion.VERSION_1_8 From 4f2a706a285422933f3a927c3af4e5d383c0a694 Mon Sep 17 00:00:00 2001 From: Graham Brown Date: Sat, 21 Mar 2020 21:49:45 +0200 Subject: [PATCH 140/220] add @param javadocs --- src/main/java/ch/loway/oss/ari4java/ARI.java | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/main/java/ch/loway/oss/ari4java/ARI.java b/src/main/java/ch/loway/oss/ari4java/ARI.java index e34056a0..a38ba68c 100644 --- a/src/main/java/ch/loway/oss/ari4java/ARI.java +++ b/src/main/java/ch/loway/oss/ari4java/ARI.java @@ -261,6 +261,7 @@ private void unsubscribeApplication() throws ARIException { /** * Create the events Websocket with the provided callback * + * @param callback AriCallback * @throws ARIException when error */ public void eventsCallback(AriCallback callback) throws ARIException { @@ -270,6 +271,8 @@ public void eventsCallback(AriCallback callback) throws ARIException { /** * Create the events Websocket with the provided callback * + * @param callback AriCallback + * @param subscribeAll subscribe to all * @throws ARIException when error */ public void eventsCallback(AriCallback callback, boolean subscribeAll) throws ARIException { From 97553ea2df32dde5df768b175a217a6736eabedd Mon Sep 17 00:00:00 2001 From: Graham Brown Date: Sat, 21 Mar 2020 21:50:17 +0200 Subject: [PATCH 141/220] remove for spotbugs, still need it to get more test coverage... --- .../oss/ari4java/tools/http/NettyHttpClientTest.java | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/test/java/ch/loway/oss/ari4java/tools/http/NettyHttpClientTest.java b/src/test/java/ch/loway/oss/ari4java/tools/http/NettyHttpClientTest.java index a11cdb02..779e4c2c 100644 --- a/src/test/java/ch/loway/oss/ari4java/tools/http/NettyHttpClientTest.java +++ b/src/test/java/ch/loway/oss/ari4java/tools/http/NettyHttpClientTest.java @@ -136,10 +136,10 @@ public WsClientConnection connect(final HttpResponseHandler callback, final Stri pingTimeUnit = TimeUnit.SECONDS; return connect(bootstrap, callback); } - public void testWsFutureOperationComplete(ChannelFuture future) throws Exception { - this.wsHandler = testHandler; - wsFuture.operationComplete(future); - } +// public void testWsFutureOperationComplete(ChannelFuture future) throws Exception { +// this.wsHandler = testHandler; +// wsFuture.operationComplete(future); +// } } TestNettyHttpClient client = new TestNettyHttpClient(); WsClient.WsClientConnection connection = client.connect(mock(HttpResponseHandler.class), "/events", null); From c85fb97e6c339a0e7fdeccc95937fa95323ee28d Mon Sep 17 00:00:00 2001 From: Graham Brown Date: Sat, 21 Mar 2020 21:50:33 +0200 Subject: [PATCH 142/220] use 1 loop --- .../ch/loway/oss/ari4java/codegen/models/Model.java | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/codegen/src/main/java/ch/loway/oss/ari4java/codegen/models/Model.java b/codegen/src/main/java/ch/loway/oss/ari4java/codegen/models/Model.java index b410c502..615b09b8 100644 --- a/codegen/src/main/java/ch/loway/oss/ari4java/codegen/models/Model.java +++ b/codegen/src/main/java/ch/loway/oss/ari4java/codegen/models/Model.java @@ -97,15 +97,15 @@ public String toString() { public void registerInterfaces(JavaInterface j, String apiVersion) { for (ModelField mf : fields) { + // getter String signature = mf.getSignatureGet(); String declaration = mf.getDeclarationGet(); String comment = mf.comment + "\n@return " + mf.typeInterface; j.iKnow(signature, declaration, comment, apiVersion); - } - for (ModelField mf : fields) { - String signature = mf.getSignatureSet(); - String declaration = mf.getDeclarationSet(); - String comment = "@param val " + (mf.comment.trim().isEmpty() ? "the value" : mf.comment); + // setter + signature = mf.getSignatureSet(); + declaration = mf.getDeclarationSet(); + comment = "@param val " + (mf.comment.trim().isEmpty() ? "the value" : mf.comment); j.iKnow(signature, declaration, comment, apiVersion); } } From d363412b1b19ac1443bb04ab2a4ce862b4b25397 Mon Sep 17 00:00:00 2001 From: Graham Brown Date: Sat, 21 Mar 2020 21:50:52 +0200 Subject: [PATCH 143/220] don't build on gb-wip branch --- .github/workflows/gradle.yml | 1 - 1 file changed, 1 deletion(-) diff --git a/.github/workflows/gradle.yml b/.github/workflows/gradle.yml index c8a07fd6..607faa4e 100644 --- a/.github/workflows/gradle.yml +++ b/.github/workflows/gradle.yml @@ -4,7 +4,6 @@ on: push: branches: - master - - gb-wip pull_request: branches: - master From 12981e6c119a25706ae9dfc6ccdf4714dd3aa670 Mon Sep 17 00:00:00 2001 From: Graham Brown Date: Sat, 21 Mar 2020 21:51:16 +0200 Subject: [PATCH 144/220] add work around for data type change --- .../main/java/ch/loway/oss/ari4java/codegen/DefMapper.java | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/codegen/src/main/java/ch/loway/oss/ari4java/codegen/DefMapper.java b/codegen/src/main/java/ch/loway/oss/ari4java/codegen/DefMapper.java index a2277143..bc528173 100644 --- a/codegen/src/main/java/ch/loway/oss/ari4java/codegen/DefMapper.java +++ b/codegen/src/main/java/ch/loway/oss/ari4java/codegen/DefMapper.java @@ -380,6 +380,11 @@ private List loadModels(JsonNode models, File f, String apiVersion) { mf.typeInterface = javaType; mf.typeConcrete = javaConcreteType; mf.comment = comment; + // the API for TextMessage changed from returning an object to a list + if ("endpoints.json".equals(currentModel.comesFromFile) && "TextMessage".equals(thisModel) && + "variables".equals(field) && javaType.startsWith("List")) { + mf.field = field + "List"; + } currentModel.fields.add(mf); } From deac1c67fd323cd88859e7efc05661b38c86cbbe Mon Sep 17 00:00:00 2001 From: Graham Brown Date: Sat, 21 Mar 2020 22:05:26 +0200 Subject: [PATCH 145/220] release 0.11.0 --- CHANGELOG.md | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 2e2af5e9..d0414b50 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,7 +1,13 @@ # ARI4Java Changelog ## [Unreleased] -[Unreleased]: https://github.com/l3nz/ari4java/compare/v0.10.0...HEAD +[Unreleased]: https://github.com/l3nz/ari4java/compare/v0.11.0...HEAD + +## [0.11.0] +[0.11.0]: https://github.com/l3nz/ari4java/compare/v0.10.0...v0.11.0 +### Added +- Unit tests to increase coverage #11 +- New ARI binding ## [0.10.0] [0.10.0]: https://github.com/l3nz/ari4java/compare/v0.9.1...v0.10.0 From c1bc47e39d03841cf72def833ef7acc9aa059f6e Mon Sep 17 00:00:00 2001 From: Graham Brown Date: Sat, 21 Mar 2020 22:27:09 +0200 Subject: [PATCH 146/220] fix copy paste error - check the correct variable --- .../ch/loway/oss/ari4java/tools/http/NettyHttpClient.java | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/main/java/ch/loway/oss/ari4java/tools/http/NettyHttpClient.java b/src/main/java/ch/loway/oss/ari4java/tools/http/NettyHttpClient.java index 8e6a6cf7..b2752c97 100644 --- a/src/main/java/ch/loway/oss/ari4java/tools/http/NettyHttpClient.java +++ b/src/main/java/ch/loway/oss/ari4java/tools/http/NettyHttpClient.java @@ -163,10 +163,10 @@ public void run() { wsPingTimer.cancel(true); wsPingTimer = null; } - if (wsClientConnection != null) { - logger.debug("cancel wsClientConnection..."); + if (wsConnectionTimeout != null) { + logger.debug("cancel wsConnectionTimeout..."); wsConnectionTimeout.cancel(true); - wsClientConnection = null; + wsConnectionTimeout = null; } if (wsClientConnection != null) { try { From 2c78a403e93c75ebba7872c8147b884fa0a27463 Mon Sep 17 00:00:00 2001 From: Graham Brown Date: Sat, 21 Mar 2020 22:27:42 +0200 Subject: [PATCH 147/220] 0.10.0 was tagged as v.0.10.0 fix compare links --- CHANGELOG.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index d0414b50..a9e8ba45 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -4,13 +4,13 @@ [Unreleased]: https://github.com/l3nz/ari4java/compare/v0.11.0...HEAD ## [0.11.0] -[0.11.0]: https://github.com/l3nz/ari4java/compare/v0.10.0...v0.11.0 +[0.11.0]: https://github.com/l3nz/ari4java/compare/v.0.10.0...v0.11.0 ### Added - Unit tests to increase coverage #11 - New ARI binding ## [0.10.0] -[0.10.0]: https://github.com/l3nz/ari4java/compare/v0.9.1...v0.10.0 +[0.10.0]: https://github.com/l3nz/ari4java/compare/v0.9.1...v.0.10.0 ### Fixed - UnsupportedOperationException #15 - Javadoc warnings #149 From 1505de7d08c8f69998b1bab4cdd4a92eb0faa8ab Mon Sep 17 00:00:00 2001 From: Graham Brown Date: Sun, 22 Mar 2020 14:56:17 +0200 Subject: [PATCH 148/220] addressing some issues identified on SonarQube --- src/main/java/ch/loway/oss/ari4java/ARI.java | 27 ++++----- .../oss/ari4java/ARIRuntimeException.java | 19 ++++++ .../ari4java/tools/http/NettyHttpClient.java | 58 ++++++++++--------- .../java/ch/loway/oss/ari4java/ARITest.java | 1 + .../tools/http/NettyHttpClientTest.java | 12 ++-- 5 files changed, 71 insertions(+), 46 deletions(-) create mode 100644 src/main/java/ch/loway/oss/ari4java/ARIRuntimeException.java diff --git a/src/main/java/ch/loway/oss/ari4java/ARI.java b/src/main/java/ch/loway/oss/ari4java/ARI.java index a38ba68c..10e3f9cb 100644 --- a/src/main/java/ch/loway/oss/ari4java/ARI.java +++ b/src/main/java/ch/loway/oss/ari4java/ARI.java @@ -23,7 +23,7 @@ */ public class ARI { - private final static String ALLOWED_IN_UID = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ"; + private static final String ALLOWED_IN_UID = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ"; private String appName = ""; private AriVersion version; @@ -65,11 +65,11 @@ public void setVersion(AriVersion version) { * Returns the current ARI version * * @return the version - * @throws RuntimeException when version null + * @throws ARIRuntimeException when version null */ public AriVersion getVersion() { if (version == null) { - throw new RuntimeException("AriVersion not set"); + throw new ARIRuntimeException("AriVersion not set"); } return version; } @@ -433,7 +433,7 @@ public ActionSounds sounds() { * @return an Action object on which we'll set the default clients. * @throws IllegalArgumentException when error */ - private Object setupAction(Object a) throws IllegalArgumentException { + private Object setupAction(Object a) { if (a instanceof BaseAriAction) { BaseAriAction action = (BaseAriAction) a; if (httpClient == null || wsClient == null) { @@ -456,8 +456,8 @@ private Object setupAction(Object a) throws IllegalArgumentException { public static void sleep(long ms) { try { Thread.sleep(ms); - } catch (InterruptedException e) { - logger.warn("Interrupted: " + e.getMessage(), e); //NOSONAR + } catch (InterruptedException e) {//NOSONAR + logger.warn("Interrupted: {}", e.getMessage(), e); } } @@ -474,7 +474,7 @@ public static String getUID() { if ((n % 5) == 0) { sb.append("."); } - int pos = (int) (random.nextDouble() * ALLOWED_IN_UID.length()); + int pos = random.nextInt(ALLOWED_IN_UID.length()); sb.append(ALLOWED_IN_UID.charAt(pos)); } return sb.toString(); @@ -516,10 +516,10 @@ public void unsubscribeAll() throws RestException { * @return String */ public String getBuildVersion() { - String version = "x"; + String buildVersion = "x"; try { if (getClass().getPackage().getImplementationVersion() != null) { - version = getClass().getPackage().getImplementationVersion(); + buildVersion = getClass().getPackage().getImplementationVersion(); } } catch (Exception e) { // oh well @@ -530,9 +530,10 @@ public String getBuildVersion() { if (stream != null) { Properties p = new Properties(); p.load(stream); - if (p.containsKey("BUILD_NUMBER") && p.getProperty("BUILD_NUMBER") != null && - !"x".equalsIgnoreCase(p.getProperty("BUILD_NUMBER"))) { - version += " (Build: " + p.getProperty("BUILD_NUMBER") + ")"; + final String prop = "BUILD_NUMBER"; + if (p.containsKey(prop) && p.getProperty(prop) != null && + !"x".equalsIgnoreCase(p.getProperty(prop))) { + buildVersion += " (Build: " + p.getProperty(prop) + ")"; } } } catch (IOException e) { @@ -546,7 +547,7 @@ public String getBuildVersion() { } } } - return version; + return buildVersion; } /** diff --git a/src/main/java/ch/loway/oss/ari4java/ARIRuntimeException.java b/src/main/java/ch/loway/oss/ari4java/ARIRuntimeException.java new file mode 100644 index 00000000..09ed6843 --- /dev/null +++ b/src/main/java/ch/loway/oss/ari4java/ARIRuntimeException.java @@ -0,0 +1,19 @@ +package ch.loway.oss.ari4java; + +public class ARIRuntimeException extends RuntimeException { + + private static final long serialVersionUID = 1L; + + public ARIRuntimeException(String message) { + super(message); + } + + public ARIRuntimeException(Throwable t) { + super(t.getMessage(), t); + } + + public ARIRuntimeException(String message, Throwable t) { + super(message, t); + } + +} diff --git a/src/main/java/ch/loway/oss/ari4java/tools/http/NettyHttpClient.java b/src/main/java/ch/loway/oss/ari4java/tools/http/NettyHttpClient.java index b2752c97..1bc2cf64 100644 --- a/src/main/java/ch/loway/oss/ari4java/tools/http/NettyHttpClient.java +++ b/src/main/java/ch/loway/oss/ari4java/tools/http/NettyHttpClient.java @@ -44,9 +44,15 @@ public class NettyHttpClient implements HttpClient, WsClient, WsClientAutoReconn public static final int MAX_HTTP_REQUEST = 16 * 1024 * 1024; // 16MB public static final int MAX_HTTP_BIN_REQUEST = 150 * 1024 * 1024; // 150MB + private static final String HTTP = "http"; + private static final String HTTPS = "https"; + private static final String HTTP_CODEC = "http-codec"; + private static final String HTTP_AGGREGATOR = "http-aggregator"; + private static final String HTTP_HANDLER = "http-handler"; + private Logger logger = LoggerFactory.getLogger(NettyHttpClient.class); - protected Bootstrap bootStrap; + protected Bootstrap httpBootstrap; protected URI baseUri; private EventLoopGroup group; private EventLoopGroup shutDownGroup; @@ -82,16 +88,16 @@ public void initialize(String baseUrl, String username, String password) throws logger.debug("initialize url: {}, user: {}", baseUrl, username); baseUri = new URI(baseUrl); String protocol = baseUri.getScheme(); - if (!"http".equalsIgnoreCase(protocol) && !"https".equalsIgnoreCase(protocol)) { + if (!HTTP.equalsIgnoreCase(protocol) && !HTTPS.equalsIgnoreCase(protocol)) { logger.warn("Not http(s), protocol: {}", protocol); throw new IllegalArgumentException("Unsupported protocol: " + protocol); } this.auth = "Basic " + Base64.encode(Unpooled.copiedBuffer((username + ":" + password), ARIEncoder.ENCODING)).toString(ARIEncoder.ENCODING); - bootstrap(); + initHttpBootstrap(); } - protected void bootstrap() { - if (bootStrap == null) { + protected void initHttpBootstrap() { + if (httpBootstrap == null) { // Bootstrap is the factory for HTTP connections logger.debug("Bootstrap with\n" + " connection timeout: {},\n" + @@ -100,17 +106,17 @@ protected void bootstrap() { CONNECTION_TIMEOUT_SEC, READ_TIMEOUT_SEC, MAX_HTTP_REQUEST); - bootStrap = new Bootstrap(); - bootstrapOptions(bootStrap); - bootStrap.handler(new ChannelInitializer() { + httpBootstrap = new Bootstrap(); + bootstrapOptions(httpBootstrap); + httpBootstrap.handler(new ChannelInitializer() { @Override public void initChannel(SocketChannel ch) throws Exception { ChannelPipeline pipeline = ch.pipeline(); - addSSLIfRequired(pipeline); + addSSLIfRequired(pipeline, baseUri); pipeline.addLast("read-timeout", new ReadTimeoutHandler(READ_TIMEOUT_SEC)); - pipeline.addLast("http-codec", new HttpClientCodec()); - pipeline.addLast("http-aggregator", new HttpObjectAggregator(MAX_HTTP_REQUEST)); - pipeline.addLast("http-handler", new NettyHttpClientHandler()); + pipeline.addLast(HTTP_CODEC, new HttpClientCodec()); + pipeline.addLast(HTTP_AGGREGATOR, new HttpObjectAggregator(MAX_HTTP_REQUEST)); + pipeline.addLast(HTTP_HANDLER, new NettyHttpClientHandler()); } }); } @@ -125,8 +131,8 @@ private void bootstrapOptions(Bootstrap bootStrap) { bootStrap.option(ChannelOption.CONNECT_TIMEOUT_MILLIS, CONNECTION_TIMEOUT_SEC * 1000); } - private void addSSLIfRequired(ChannelPipeline pipeline) throws SSLException { - if ("https".equalsIgnoreCase(baseUri.getScheme())) { + private synchronized static void addSSLIfRequired(ChannelPipeline pipeline, URI baseUri) throws SSLException { + if (HTTPS.equalsIgnoreCase(baseUri.getScheme())) { if (sslContext == null) { sslContext = SslContextBuilder.forClient().trustManager(InsecureTrustManagerFactory.INSTANCE).build(); } @@ -137,9 +143,9 @@ private void addSSLIfRequired(ChannelPipeline pipeline) throws SSLException { private int getPort() { int port = baseUri.getPort(); if (port == -1) { - if ("http".equalsIgnoreCase(baseUri.getScheme())) { + if (HTTP.equalsIgnoreCase(baseUri.getScheme())) { port = 80; - } else if ("https".equalsIgnoreCase(baseUri.getScheme())) { + } else if (HTTPS.equalsIgnoreCase(baseUri.getScheme())) { port = 443; } } @@ -148,7 +154,7 @@ private int getPort() { protected ChannelFuture httpConnect() { logger.debug("HTTP Connect uri: {}", baseUri.toString()); - return bootStrap.connect(baseUri.getHost(), getPort()); + return httpBootstrap.connect(baseUri.getHost(), getPort()); } public void destroy() { @@ -221,7 +227,7 @@ protected String buildURL(String path, List parametersQuery, boolean // Factory for WS handshakes protected WebSocketClientHandshaker getWsHandshake(String path, List parametersQuery) throws URISyntaxException { String url = buildURL(path, parametersQuery, true); - if (url.regionMatches(true, 0, "http", 0, 4)) { + if (url.regionMatches(true, 0, HTTP, 0, 4)) { // http(s):// -> ws(s):// url = "ws" + url.substring(4); } @@ -306,7 +312,7 @@ public void operationComplete(ChannelFuture future) throws Exception { } } }).syncUninterruptibly().channel(); - NettyHttpClientHandler handler = (NettyHttpClientHandler) ch.pipeline().get("http-handler"); + NettyHttpClientHandler handler = (NettyHttpClientHandler) ch.pipeline().get(HTTP_HANDLER); ch.writeAndFlush(request); ch.closeFuture().syncUninterruptibly(); if (handler.getException() != null) { @@ -322,7 +328,7 @@ private void replaceAggregator(boolean binary, Channel ch) { if (binary) { logger.debug("Is Binary, replace http-aggregator ..."); ch.pipeline().replace( - "http-aggregator", "http-aggregator", new HttpObjectAggregator(MAX_HTTP_BIN_REQUEST)); + HTTP_AGGREGATOR, HTTP_AGGREGATOR, new HttpObjectAggregator(MAX_HTTP_BIN_REQUEST)); } } @@ -351,7 +357,7 @@ public void operationComplete(ChannelFuture future) throws Exception { public void operationComplete(ChannelFuture future) throws Exception { responseHandler.onResponseReceived(); if (future.isSuccess()) { - NettyHttpClientHandler handler = (NettyHttpClientHandler) future.channel().pipeline().get("http-handler"); + NettyHttpClientHandler handler = (NettyHttpClientHandler) future.channel().pipeline().get(HTTP_HANDLER); if (handler.getException() != null) { responseHandler.onFailure(new RestException(handler.getException())); } else if (httpResponseOkay(handler.getResponseStatus())) { @@ -397,9 +403,9 @@ protected WsClientConnection connect(Bootstrap wsBootStrap, final HttpResponseHa @Override public void initChannel(SocketChannel ch) throws Exception { ChannelPipeline pipeline = ch.pipeline(); - addSSLIfRequired(pipeline); - pipeline.addLast("http-codec", new HttpClientCodec()); - pipeline.addLast("http-aggregator", new HttpObjectAggregator(MAX_HTTP_REQUEST)); + addSSLIfRequired(pipeline, baseUri); + pipeline.addLast(HTTP_CODEC, new HttpClientCodec()); + pipeline.addLast(HTTP_AGGREGATOR, new HttpObjectAggregator(MAX_HTTP_REQUEST)); pipeline.addLast("ws-handler", wsHandler); } }); @@ -471,9 +477,9 @@ public void run() { for (int i = 0; i < 10; i++) { try { Thread.sleep(1000); - } catch (InterruptedException e) { + } catch (InterruptedException e) {//NOSONAR // probably from the reconnect, so stop running... - return; //NOSONAR + return; } if ((System.currentTimeMillis() - lastPong) < 10000) { logger.debug("Pong at {}", lastPong); diff --git a/src/test/java/ch/loway/oss/ari4java/ARITest.java b/src/test/java/ch/loway/oss/ari4java/ARITest.java index 05c87c8b..26856780 100644 --- a/src/test/java/ch/loway/oss/ari4java/ARITest.java +++ b/src/test/java/ch/loway/oss/ari4java/ARITest.java @@ -114,6 +114,7 @@ public void testBuildAction() throws Exception { public void testCreateUid() { String v = ARI.getUID(); assertTrue("UID created", v.length() > 0); + assertNotSame("new UID the same as previous", v, ARI.getUID()); } @Test diff --git a/src/test/java/ch/loway/oss/ari4java/tools/http/NettyHttpClientTest.java b/src/test/java/ch/loway/oss/ari4java/tools/http/NettyHttpClientTest.java index 779e4c2c..8bce2c4b 100644 --- a/src/test/java/ch/loway/oss/ari4java/tools/http/NettyHttpClientTest.java +++ b/src/test/java/ch/loway/oss/ari4java/tools/http/NettyHttpClientTest.java @@ -9,13 +9,10 @@ import io.netty.buffer.Unpooled; import io.netty.channel.*; import io.netty.channel.embedded.EmbeddedChannel; -import io.netty.channel.socket.SocketChannel; import io.netty.handler.codec.http.*; import io.netty.handler.codec.http.websocketx.WebSocketVersion; -import io.netty.util.concurrent.EventExecutor; import org.junit.After; import org.junit.Test; -import org.mockito.ArgumentCaptor; import java.net.URI; import java.net.URISyntaxException; @@ -35,7 +32,7 @@ public class NettyHttpClientTest { private void initTestClient() throws URISyntaxException { client = new NettyHttpClient() { - protected void bootstrap() { + protected void initHttpBootstrap() { // for testing skip the bootstrapping } @@ -80,6 +77,7 @@ public void testInitialize() throws Exception { NettyHttpClient client = new NettyHttpClient(); client.initialize("http://localhost:8088/", "user", "p@ss"); client.destroy(); + assertNotNull(client.baseUri); } @Test @@ -87,11 +85,11 @@ public void testHttpConnect() { Bootstrap bootstrap = mock(Bootstrap.class); NettyHttpClient client = new NettyHttpClient() { { - bootstrap(); + initHttpBootstrap(); } @Override - protected void bootstrap() { - bootStrap = bootstrap; + protected void initHttpBootstrap() { + httpBootstrap = bootstrap; try { baseUri = new URI("http://localhost:8088/"); } catch (URISyntaxException e) { From 9cfebaaaf877f63fd283bbfbc96b151a1185700e Mon Sep 17 00:00:00 2001 From: modrljin Date: Fri, 3 Apr 2020 19:00:11 +0200 Subject: [PATCH 149/220] added max reconnect count, check for WS connection into NettyHttpClient - infinite reconnection when max reconnect count = -1 - TODO: improve reconnect timing --- .../ari4java/tools/http/NettyHttpClient.java | 24 +++++++++++++++++-- 1 file changed, 22 insertions(+), 2 deletions(-) diff --git a/src/main/java/ch/loway/oss/ari4java/tools/http/NettyHttpClient.java b/src/main/java/ch/loway/oss/ari4java/tools/http/NettyHttpClient.java index 8e6a6cf7..3cd48628 100644 --- a/src/main/java/ch/loway/oss/ari4java/tools/http/NettyHttpClient.java +++ b/src/main/java/ch/loway/oss/ari4java/tools/http/NettyHttpClient.java @@ -57,6 +57,7 @@ public class NettyHttpClient implements HttpClient, WsClient, WsClientAutoReconn private List wsEventsParamQuery; private WsClientConnection wsClientConnection; private int reconnectCount = -1; + private int maxReconnectCount = 10; // -1 = infinite reconnect attempts private ChannelFuture wsChannelFuture; private ScheduledFuture wsPingTimer = null; private ScheduledFuture wsConnectionTimeout = null; @@ -151,7 +152,8 @@ protected ChannelFuture httpConnect() { return bootStrap.connect(baseUri.getHost(), getPort()); } - public void destroy() { + @Override + public void destroy() { logger.debug("destroy..."); // use a different event group to execute the shutdown to avoid deadlocks shutDownGroup.schedule(new Runnable() { @@ -552,7 +554,7 @@ public void reconnectWs(Throwable cause) { wsPingTimer = null; } - if (!autoReconnect || reconnectCount == -1 || reconnectCount >= 10) { + if (!autoReconnect || (maxReconnectCount > -1 && reconnectCount >= maxReconnectCount)) { logger.warn("Cannot connect: {} - executing failure callback", cause.getMessage()); wsCallback.onFailure(cause); return; @@ -604,4 +606,22 @@ public static void setSslContext(SslContext sslContext) { NettyHttpClient.sslContext = sslContext; } + /** + * Checks if websocket is connected + * + * @return true when connected, false otherwise + */ + public boolean isWsConnected() { + return wsClientConnection != null && wsChannelFuture != null && + !wsChannelFuture.isCancelled() && wsChannelFuture.channel() != null && wsChannelFuture.channel().isActive(); + } + + /** + * Sets maximal reconnect count + * + * @param count max number of reconnect attempts, -1 for infinite reconnecting + */ + public void setMaxReconnectCount(int count) { + maxReconnectCount = count; + } } From b5a66e4536d8995e76b3ee9a02c7092cd81e212f Mon Sep 17 00:00:00 2001 From: Graham Brown Date: Sat, 4 Apr 2020 16:00:44 +0200 Subject: [PATCH 150/220] fixes #156 connection check timout executed along with future cause --- .../oss/ari4java/tools/http/NettyHttpClient.java | 16 +++++++++++----- 1 file changed, 11 insertions(+), 5 deletions(-) diff --git a/src/main/java/ch/loway/oss/ari4java/tools/http/NettyHttpClient.java b/src/main/java/ch/loway/oss/ari4java/tools/http/NettyHttpClient.java index 1bc2cf64..3cd96e16 100644 --- a/src/main/java/ch/loway/oss/ari4java/tools/http/NettyHttpClient.java +++ b/src/main/java/ch/loway/oss/ari4java/tools/http/NettyHttpClient.java @@ -424,13 +424,11 @@ public void operationComplete(ChannelFuture future) throws Exception { wsHandler.handshakeFuture().addListener(new ChannelFutureListener() { @Override public void operationComplete(ChannelFuture future) throws Exception { + // cancel the connection timeout + cancelWsConnectionTimeout(); if (future.isSuccess()) { logger.debug("WS connected..."); - if (wsClientConnection != null) { - // cancel the connection timeout, start a ping and reset reconnect counter - wsConnectionTimeout.cancel(true); - wsConnectionTimeout = null; - } + // start a ping and reset reconnect counter startPing(); reconnectCount = 0; callback.onChReadyToWrite(); @@ -446,6 +444,7 @@ public void operationComplete(ChannelFuture future) throws Exception { } }); } else { + cancelWsConnectionTimeout(); if (future.cause() != null) { logger.error("WS/HTTP Connection Error - {}", future.cause().getMessage(), future.cause()); reconnectWs(future.cause()); @@ -462,6 +461,13 @@ public void operationComplete(ChannelFuture future) throws Exception { return createWsClientConnection(); } + private void cancelWsConnectionTimeout() { + if (wsConnectionTimeout != null) { + wsConnectionTimeout.cancel(true); + wsConnectionTimeout = null; + } + } + private void startPing() { if (wsPingTimer == null) { pongFailureCount = 0; From dd4ba39fdab453dcac5366d8caee5e81ce02acb8 Mon Sep 17 00:00:00 2001 From: Graham Brown Date: Sat, 4 Apr 2020 16:05:37 +0200 Subject: [PATCH 151/220] update cl --- CHANGELOG.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index a9e8ba45..ab243761 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,6 +2,8 @@ ## [Unreleased] [Unreleased]: https://github.com/l3nz/ari4java/compare/v0.11.0...HEAD +### Fixes +- #156 ## [0.11.0] [0.11.0]: https://github.com/l3nz/ari4java/compare/v.0.10.0...v0.11.0 From 06baf3a1b205ce05fc956901f125957a5fda895b Mon Sep 17 00:00:00 2001 From: Graham Brown Date: Sat, 11 Apr 2020 14:03:48 +0200 Subject: [PATCH 152/220] update cl --- CHANGELOG.md | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index ab243761..8302d64d 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -3,7 +3,10 @@ ## [Unreleased] [Unreleased]: https://github.com/l3nz/ari4java/compare/v0.11.0...HEAD ### Fixes -- #156 +- onFailure long after WS Connect error #156 + +### Added +- WS reconnect count #158 ## [0.11.0] [0.11.0]: https://github.com/l3nz/ari4java/compare/v.0.10.0...v0.11.0 From 1407eea44f78cab7bb7acabb86666c1d20aab7e6 Mon Sep 17 00:00:00 2001 From: Graham Brown Date: Sat, 11 Apr 2020 14:52:48 +0200 Subject: [PATCH 153/220] attempt to fix #159 ping timer executes when socket shutdown also check that only 1 ws connection --- .../ari4java/tools/http/NettyHttpClient.java | 75 ++++++++++--------- 1 file changed, 40 insertions(+), 35 deletions(-) diff --git a/src/main/java/ch/loway/oss/ari4java/tools/http/NettyHttpClient.java b/src/main/java/ch/loway/oss/ari4java/tools/http/NettyHttpClient.java index 3b5153b6..38f6717b 100644 --- a/src/main/java/ch/loway/oss/ari4java/tools/http/NettyHttpClient.java +++ b/src/main/java/ch/loway/oss/ari4java/tools/http/NettyHttpClient.java @@ -159,7 +159,7 @@ protected ChannelFuture httpConnect() { } @Override - public void destroy() { + public void destroy() { logger.debug("destroy..."); // use a different event group to execute the shutdown to avoid deadlocks shutDownGroup.schedule(new Runnable() { @@ -386,6 +386,9 @@ public void operationComplete(ChannelFuture future) throws Exception { @Override public WsClientConnection connect(final HttpResponseHandler callback, final String url, final List lParamQuery) throws RestException { + if (isWsConnected()) { + return wsClientConnection; + } try { WebSocketClientHandshaker handshake = getWsHandshake(url, lParamQuery); logger.debug("WS Connect uri: {}", handshake.uri().toString()); @@ -476,34 +479,35 @@ private void startPing() { wsPingTimer = group.scheduleAtFixedRate(new Runnable() { @Override public void run() { - if ((System.currentTimeMillis() - wsCallback.getLastResponseTime()) > 15000) { - if (!wsChannelFuture.isCancelled() && wsChannelFuture.channel() != null) { - WebSocketFrame frame = new PingWebSocketFrame(Unpooled.wrappedBuffer("ari4j".getBytes(ARIEncoder.ENCODING))); - logger.debug("Send Ping at {}", System.currentTimeMillis()); - wsChannelFuture.channel().writeAndFlush(frame); - boolean noPong = true; - for (int i = 0; i < 10; i++) { - try { - Thread.sleep(1000); - } catch (InterruptedException e) {//NOSONAR - // probably from the reconnect, so stop running... - return; - } - if ((System.currentTimeMillis() - lastPong) < 10000) { - logger.debug("Pong at {}", lastPong); - pongFailureCount = 0; - noPong = false; - break; - } else { - logger.warn("No Pong at {}", System.currentTimeMillis()); - } + if (isWsConnected() && (System.currentTimeMillis() - wsCallback.getLastResponseTime()) > 15000) { + WebSocketFrame frame = new PingWebSocketFrame(Unpooled.wrappedBuffer("ari4j".getBytes(ARIEncoder.ENCODING))); + logger.debug("Send Ping at {}", System.currentTimeMillis()); + wsChannelFuture.channel().writeAndFlush(frame); + boolean noPong = true; + for (int i = 0; i < 10; i++) { + if (wsHandler != null && wsHandler.isShuttingDown()) { + break; } - if (noPong) { - pongFailureCount++; - if (pongFailureCount >= 1) { - logger.warn("No Ping response from server, reconnect..."); - reconnectWs(new RestException("No Ping response from server")); - } + try { + Thread.sleep(1000); + } catch (InterruptedException e) {//NOSONAR + // probably from the reconnect, so stop running... + return; + } + if ((System.currentTimeMillis() - lastPong) < 10000) { + logger.debug("Pong at {}", lastPong); + pongFailureCount = 0; + noPong = false; + break; + } else { + logger.warn("No Pong at {}", System.currentTimeMillis()); + } + } + if (noPong && wsHandler != null && !wsHandler.isShuttingDown()) { + pongFailureCount++; + if (pongFailureCount >= 1) { + logger.warn("No Ping response from server, reconnect..."); + reconnectWs(new RestException("No Ping response from server")); } } } @@ -532,6 +536,7 @@ public void disconnect() throws RestException { ch.close(); } wsChannelFuture.removeListener(wsFuture); + wsChannelFuture.cancel(true); } }; } @@ -620,20 +625,20 @@ public static void setSslContext(SslContext sslContext) { /** * Checks if websocket is connected - * + * * @return true when connected, false otherwise */ public boolean isWsConnected() { - return wsClientConnection != null && wsChannelFuture != null && - !wsChannelFuture.isCancelled() && wsChannelFuture.channel() != null && wsChannelFuture.channel().isActive(); + return wsClientConnection != null && wsHandler != null && !wsHandler.isShuttingDown() && wsChannelFuture != null && + !wsChannelFuture.isCancelled() && wsChannelFuture.channel() != null && wsChannelFuture.channel().isActive(); } /** * Sets maximal reconnect count - * + * * @param count max number of reconnect attempts, -1 for infinite reconnecting */ - public void setMaxReconnectCount(int count) { - maxReconnectCount = count; - } + public void setMaxReconnectCount(int count) { + maxReconnectCount = count; + } } From 3e111fddf4d148e56bd37584dc9f48077af13be8 Mon Sep 17 00:00:00 2001 From: Graham Brown Date: Sat, 11 Apr 2020 14:56:20 +0200 Subject: [PATCH 154/220] expose the isWsConnected to ARI --- src/main/java/ch/loway/oss/ari4java/ARI.java | 11 +++++++++++ .../java/ch/loway/oss/ari4java/tools/WsClient.java | 2 ++ 2 files changed, 13 insertions(+) diff --git a/src/main/java/ch/loway/oss/ari4java/ARI.java b/src/main/java/ch/loway/oss/ari4java/ARI.java index 10e3f9cb..319b369c 100644 --- a/src/main/java/ch/loway/oss/ari4java/ARI.java +++ b/src/main/java/ch/loway/oss/ari4java/ARI.java @@ -556,4 +556,15 @@ public String getBuildVersion() { public interface ClassFactory { public Class getImplementationFor(Class interfaceClass); } + + /** + * Is the Websocket is connected + * @return true if connected + */ + public boolean isWsConnected() { + if (wsClient != null) { + return wsClient.isWsConnected(); + } + return false; + } } diff --git a/src/main/java/ch/loway/oss/ari4java/tools/WsClient.java b/src/main/java/ch/loway/oss/ari4java/tools/WsClient.java index f4c39acb..acec7d2a 100644 --- a/src/main/java/ch/loway/oss/ari4java/tools/WsClient.java +++ b/src/main/java/ch/loway/oss/ari4java/tools/WsClient.java @@ -19,4 +19,6 @@ WsClientConnection connect(HttpResponseHandler callback, void destroy(); + boolean isWsConnected(); + } From 27d94dcea99849604a0c51bd9a3b23b9a4dbab55 Mon Sep 17 00:00:00 2001 From: Graham Brown Date: Wed, 24 Jun 2020 16:47:29 +0200 Subject: [PATCH 155/220] add cleanup --- .../src/main/java/ch/loway/oss/ari4java/examples/Weasels.java | 2 ++ 1 file changed, 2 insertions(+) diff --git a/examples/src/main/java/ch/loway/oss/ari4java/examples/Weasels.java b/examples/src/main/java/ch/loway/oss/ari4java/examples/Weasels.java index ce561c91..dda17e04 100644 --- a/examples/src/main/java/ch/loway/oss/ari4java/examples/Weasels.java +++ b/examples/src/main/java/ch/loway/oss/ari4java/examples/Weasels.java @@ -94,6 +94,8 @@ protected void onPlaybackFinished(PlaybackFinished message) { // usually we would not terminate and run indefinitely // waiting for 5 minutes before shutting down... threadPool.awaitTermination(5, TimeUnit.MINUTES); + ari.cleanup(); + System.exit(0); } private void handleStart(StasisStart start) { From b2379abaeb24fdab6e08a55aa92f4a193071cde1 Mon Sep 17 00:00:00 2001 From: Graham Brown Date: Wed, 24 Jun 2020 16:49:00 +0200 Subject: [PATCH 156/220] fixes #159 execute the shutdown immediately --- .../ch/loway/oss/ari4java/tools/http/NettyHttpClient.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/main/java/ch/loway/oss/ari4java/tools/http/NettyHttpClient.java b/src/main/java/ch/loway/oss/ari4java/tools/http/NettyHttpClient.java index 38f6717b..aeabadc0 100644 --- a/src/main/java/ch/loway/oss/ari4java/tools/http/NettyHttpClient.java +++ b/src/main/java/ch/loway/oss/ari4java/tools/http/NettyHttpClient.java @@ -162,7 +162,7 @@ protected ChannelFuture httpConnect() { public void destroy() { logger.debug("destroy..."); // use a different event group to execute the shutdown to avoid deadlocks - shutDownGroup.schedule(new Runnable() { + shutDownGroup.execute(new Runnable() { @Override public void run() { logger.debug("running shutdown..."); @@ -192,7 +192,7 @@ public void run() { logger.debug("group shutdown complete"); } } - }, 250L, TimeUnit.MILLISECONDS); + }); shutDownGroup.shutdownGracefully(0, 5, TimeUnit.SECONDS).syncUninterruptibly(); shutDownGroup = null; logger.debug("... destroyed"); From fa6f4b5ac4f4c088b274957d834ab0f66bf092cc Mon Sep 17 00:00:00 2001 From: Graham Brown Date: Wed, 24 Jun 2020 16:54:21 +0200 Subject: [PATCH 157/220] prepare 0.12.0 --- CHANGELOG.md | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 8302d64d..be927636 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,9 +1,13 @@ # ARI4Java Changelog ## [Unreleased] -[Unreleased]: https://github.com/l3nz/ari4java/compare/v0.11.0...HEAD +[Unreleased]: https://github.com/l3nz/ari4java/compare/v0.12.0...HEAD + +## [0.12.0] +[0.12.0]: https://github.com/l3nz/ari4java/compare/v0.11.0...v0.12.0 ### Fixes - onFailure long after WS Connect error #156 +- execute shutdown immediately #159 ### Added - WS reconnect count #158 From 571a82fea56d411e291ed05cc067dc4632748265 Mon Sep 17 00:00:00 2001 From: Graham Brown Date: Wed, 24 Jun 2020 17:26:18 +0200 Subject: [PATCH 158/220] 0.12.0 --- build.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.gradle b/build.gradle index ca25250f..28d36e0a 100644 --- a/build.gradle +++ b/build.gradle @@ -8,7 +8,7 @@ plugins { } group = "ch.loway.oss.ari4java" -version = "0.11.0" +version = "0.12.0" java { sourceCompatibility = JavaVersion.VERSION_1_8 From 3f1d976758f2d8b556197c42a9125640844c6b35 Mon Sep 17 00:00:00 2001 From: modrljin Date: Tue, 22 Sep 2020 14:32:58 +0200 Subject: [PATCH 159/220] Added resources for ARI version 4.1.3 (from Asterisk 16.11.0) --- .../codegen-data/ari_4_1_3/applications.json | 223 ++ .../codegen-data/ari_4_1_3/asterisk.json | 725 ++++++ .../codegen-data/ari_4_1_3/bridges.json | 765 ++++++ .../codegen-data/ari_4_1_3/channels.json | 2172 +++++++++++++++++ .../codegen-data/ari_4_1_3/deviceStates.json | 154 ++ .../codegen-data/ari_4_1_3/endpoints.json | 263 ++ .../codegen-data/ari_4_1_3/events.json | 918 +++++++ .../codegen-data/ari_4_1_3/mailboxes.json | 137 ++ .../codegen-data/ari_4_1_3/playbacks.json | 164 ++ .../codegen-data/ari_4_1_3/recordings.json | 413 ++++ .../codegen-data/ari_4_1_3/sounds.json | 99 + 11 files changed, 6033 insertions(+) create mode 100644 codegen/src/main/resources/codegen-data/ari_4_1_3/applications.json create mode 100644 codegen/src/main/resources/codegen-data/ari_4_1_3/asterisk.json create mode 100644 codegen/src/main/resources/codegen-data/ari_4_1_3/bridges.json create mode 100644 codegen/src/main/resources/codegen-data/ari_4_1_3/channels.json create mode 100644 codegen/src/main/resources/codegen-data/ari_4_1_3/deviceStates.json create mode 100644 codegen/src/main/resources/codegen-data/ari_4_1_3/endpoints.json create mode 100644 codegen/src/main/resources/codegen-data/ari_4_1_3/events.json create mode 100644 codegen/src/main/resources/codegen-data/ari_4_1_3/mailboxes.json create mode 100644 codegen/src/main/resources/codegen-data/ari_4_1_3/playbacks.json create mode 100644 codegen/src/main/resources/codegen-data/ari_4_1_3/recordings.json create mode 100644 codegen/src/main/resources/codegen-data/ari_4_1_3/sounds.json diff --git a/codegen/src/main/resources/codegen-data/ari_4_1_3/applications.json b/codegen/src/main/resources/codegen-data/ari_4_1_3/applications.json new file mode 100644 index 00000000..09c5cd5c --- /dev/null +++ b/codegen/src/main/resources/codegen-data/ari_4_1_3/applications.json @@ -0,0 +1,223 @@ +{ + "_copyright": "Copyright (C) 2013, Digium, Inc.", + "_author": "David M. Lee, II ", + "_svn_revision": "$Revision$", + "apiVersion": "2.0.0", + "swaggerVersion": "1.1", + "basePath": "http://localhost:8088/ari", + "resourcePath": "/api-docs/applications.{format}", + "apis": [ + { + "path": "/applications", + "description": "Stasis applications", + "operations": [ + { + "httpMethod": "GET", + "summary": "List all applications.", + "nickname": "list", + "responseClass": "List[Application]" + } + ] + }, + { + "path": "/applications/{applicationName}", + "description": "Stasis application", + "operations": [ + { + "httpMethod": "GET", + "summary": "Get details of an application.", + "nickname": "get", + "responseClass": "Application", + "parameters": [ + { + "name": "applicationName", + "description": "Application's name", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Application does not exist." + } + ] + } + ] + }, + { + "path": "/applications/{applicationName}/subscription", + "description": "Stasis application", + "operations": [ + { + "httpMethod": "POST", + "summary": "Subscribe an application to a event source.", + "notes": "Returns the state of the application after the subscriptions have changed", + "nickname": "subscribe", + "responseClass": "Application", + "parameters": [ + { + "name": "applicationName", + "description": "Application's name", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "eventSource", + "description": "URI for event source (channel:{channelId}, bridge:{bridgeId}, endpoint:{tech}[/{resource}], deviceState:{deviceName}", + "paramType": "query", + "required": true, + "allowMultiple": true, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 400, + "reason": "Missing parameter." + }, + { + "code": 404, + "reason": "Application does not exist." + }, + { + "code": 422, + "reason": "Event source does not exist." + } + ] + }, + { + "httpMethod": "DELETE", + "summary": "Unsubscribe an application from an event source.", + "notes": "Returns the state of the application after the subscriptions have changed", + "nickname": "unsubscribe", + "responseClass": "Application", + "parameters": [ + { + "name": "applicationName", + "description": "Application's name", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "eventSource", + "description": "URI for event source (channel:{channelId}, bridge:{bridgeId}, endpoint:{tech}[/{resource}], deviceState:{deviceName}", + "paramType": "query", + "required": true, + "allowMultiple": true, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 400, + "reason": "Missing parameter; event source scheme not recognized." + }, + { + "code": 404, + "reason": "Application does not exist." + }, + { + "code": 409, + "reason": "Application not subscribed to event source." + }, + { + "code": 422, + "reason": "Event source does not exist." + } + ] + } + ] + }, + { + "path": "/applications/{applicationName}/eventFilter", + "description": "Stasis application", + "operations": [ + { + "httpMethod": "PUT", + "summary": "Filter application events types.", + "notes": "Allowed and/or disallowed event type filtering can be done. The body (parameter) should specify a JSON key/value object that describes the type of event filtering needed. One, or both of the following keys can be designated:

\"allowed\" - Specifies an allowed list of event types
\"disallowed\" - Specifies a disallowed list of event types

Further, each of those key's value should be a JSON array that holds zero, or more JSON key/value objects. Each of these objects must contain the following key with an associated value:

\"type\" - The type name of the event to filter

The value must be the string name (case sensitive) of the event type that needs filtering. For example:

{ \"allowed\": [ { \"type\": \"StasisStart\" }, { \"type\": \"StasisEnd\" } ] }

As this specifies only an allowed list, then only those two event type messages are sent to the application. No other event messages are sent.

The following rules apply:

* If the body is empty, both the allowed and disallowed filters are set empty.
* If both list types are given then both are set to their respective values (note, specifying an empty array for a given type sets that type to empty).
* If only one list type is given then only that type is set. The other type is not updated.
* An empty \"allowed\" list means all events are allowed.
* An empty \"disallowed\" list means no events are disallowed.
* Disallowed events take precedence over allowed events if the event type is specified in both lists.", + "nickname": "filter", + "responseClass": "Application", + "parameters": [ + { + "name": "applicationName", + "description": "Application's name", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "filter", + "description": "Specify which event types to allow/disallow", + "paramType": "body", + "required": false, + "dataType": "object", + "allowMultiple": false + } + ], + "errorResponses": [ + { + "code": 400, + "reason": "Bad request." + }, + { + "code": 404, + "reason": "Application does not exist." + } + ] + } + ] + } + ], + "models": { + "Application": { + "id": "Application", + "description": "Details of a Stasis application", + "properties": { + "name": { + "type": "string", + "description": "Name of this application", + "required": true + }, + "channel_ids": { + "type": "List[string]", + "description": "Id's for channels subscribed to.", + "required": true + }, + "bridge_ids": { + "type": "List[string]", + "description": "Id's for bridges subscribed to.", + "required": true + }, + "endpoint_ids": { + "type": "List[string]", + "description": "{tech}/{resource} for endpoints subscribed to.", + "required": true + }, + "device_names": { + "type": "List[string]", + "description": "Names of the devices subscribed to.", + "required": true + }, + "events_allowed": { + "type": "List[object]", + "description": "Event types sent to the application.", + "required": true + }, + "events_disallowed": { + "type": "List[object]", + "description": "Event types not sent to the application.", + "required": true + } + } + } + } +} diff --git a/codegen/src/main/resources/codegen-data/ari_4_1_3/asterisk.json b/codegen/src/main/resources/codegen-data/ari_4_1_3/asterisk.json new file mode 100644 index 00000000..841e6cd8 --- /dev/null +++ b/codegen/src/main/resources/codegen-data/ari_4_1_3/asterisk.json @@ -0,0 +1,725 @@ +{ + "_copyright": "Copyright (C) 2012 - 2013, Digium, Inc.", + "_author": "David M. Lee, II ", + "_svn_revision": "$Revision$", + "apiVersion": "2.0.0", + "swaggerVersion": "1.1", + "basePath": "http://localhost:8088/ari", + "resourcePath": "/api-docs/asterisk.{format}", + "apis": [ + { + "path": "/asterisk/config/dynamic/{configClass}/{objectType}/{id}", + "description": "Asterisk dynamic configuration", + "operations": [ + { + "httpMethod": "GET", + "summary": "Retrieve a dynamic configuration object.", + "nickname": "getObject", + "responseClass": "List[ConfigTuple]", + "parameters": [ + { + "name": "configClass", + "description": "The configuration class containing dynamic configuration objects.", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "objectType", + "description": "The type of configuration object to retrieve.", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "id", + "description": "The unique identifier of the object to retrieve.", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "{configClass|objectType|id} not found" + } + ] + }, + { + "httpMethod": "PUT", + "summary": "Create or update a dynamic configuration object.", + "nickname": "updateObject", + "responseClass": "List[ConfigTuple]", + "parameters": [ + { + "name": "configClass", + "description": "The configuration class containing dynamic configuration objects.", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "objectType", + "description": "The type of configuration object to create or update.", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "id", + "description": "The unique identifier of the object to create or update.", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "fields", + "description": "The body object should have a value that is a list of ConfigTuples, which provide the fields to update. Ex. [ { \"attribute\": \"directmedia\", \"value\": \"false\" } ]", + "paramType": "body", + "required": false, + "dataType": "containers", + "allowMultiple": false + } + ], + "errorResponses": [ + { + "code": 400, + "reason": "Bad request body" + }, + { + "code": 403, + "reason": "Could not create or update object" + }, + { + "code": 404, + "reason": "{configClass|objectType} not found" + } + ] + }, + { + "httpMethod": "DELETE", + "summary": "Delete a dynamic configuration object.", + "nickname": "deleteObject", + "responseClass": "void", + "parameters": [ + { + "name": "configClass", + "description": "The configuration class containing dynamic configuration objects.", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "objectType", + "description": "The type of configuration object to delete.", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "id", + "description": "The unique identifier of the object to delete.", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 403, + "reason": "Could not delete object" + }, + { + "code": 404, + "reason": "{configClass|objectType|id} not found" + } + ] + } + ] + }, + { + "path": "/asterisk/info", + "description": "Asterisk system information (similar to core show settings)", + "operations": [ + { + "httpMethod": "GET", + "summary": "Gets Asterisk system information.", + "nickname": "getInfo", + "responseClass": "AsteriskInfo", + "parameters": [ + { + "name": "only", + "description": "Filter information returned", + "paramType": "query", + "required": false, + "allowMultiple": true, + "dataType": "string", + "allowableValues": { + "valueType": "LIST", + "values": [ + "build", + "system", + "config", + "status" + ] + } + } + ] + } + ] + }, + { + "path": "/asterisk/ping", + "description": "Asterisk ping", + "operations": [ + { + "httpMethod": "GET", + "summary": "Response pong message.", + "nickname": "ping", + "responseClass": "AsteriskPing" + } + ] + }, + { + "path": "/asterisk/modules", + "description": "Asterisk modules", + "operations": [ + { + "httpMethod": "GET", + "summary": "List Asterisk modules.", + "nickname": "listModules", + "responseClass": "List[Module]" + } + ] + }, + { + "path": "/asterisk/modules/{moduleName}", + "description": "Asterisk module", + "operations": [ + { + "httpMethod": "GET", + "summary": "Get Asterisk module information.", + "nickname": "getModule", + "responseClass": "Module", + "parameters": [ + { + "name": "moduleName", + "description": "Module's name", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Module could not be found in running modules." + }, + { + "code": 409, + "reason": "Module information could not be retrieved." + } + ] + }, + { + "httpMethod": "POST", + "summary": "Load an Asterisk module.", + "nickname": "loadModule", + "responseClass": "void", + "parameters": [ + { + "name": "moduleName", + "description": "Module's name", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 409, + "reason": "Module could not be loaded." + } + ] + }, + { + "httpMethod": "DELETE", + "summary": "Unload an Asterisk module.", + "nickname": "unloadModule", + "responseClass": "void", + "parameters": [ + { + "name": "moduleName", + "description": "Module's name", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Module not found in running modules." + }, + { + "code": 409, + "reason": "Module could not be unloaded." + } + ] + }, + { + "httpMethod": "PUT", + "summary": "Reload an Asterisk module.", + "nickname": "reloadModule", + "responseClass": "void", + "parameters": [ + { + "name": "moduleName", + "description": "Module's name", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Module not found in running modules." + }, + { + "code": 409, + "reason": "Module could not be reloaded." + } + ] + } + ] + }, + { + "path": "/asterisk/logging", + "description": "Asterisk log channels", + "operations": [ + { + "httpMethod": "GET", + "summary": "Gets Asterisk log channel information.", + "nickname": "listLogChannels", + "responseClass": "List[LogChannel]" + } + ] + }, + { + "path": "/asterisk/logging/{logChannelName}", + "description": "Asterisk log channel", + "operations": [ + { + "httpMethod": "POST", + "summary": "Adds a log channel.", + "nickname": "addLog", + "responseClass": "void", + "parameters": [ + { + "name": "logChannelName", + "description": "The log channel to add", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "configuration", + "description": "levels of the log channel", + "paramType": "query", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 400, + "reason": "Bad request body" + }, + { + "code": 409, + "reason": "Log channel could not be created." + } + ] + }, + { + "httpMethod": "DELETE", + "summary": "Deletes a log channel.", + "nickname": "deleteLog", + "responseClass": "void", + "parameters": [ + { + "name": "logChannelName", + "description": "Log channels name", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Log channel does not exist." + } + ] + } + ] + }, + { + "path": "/asterisk/logging/{logChannelName}/rotate", + "description": "Asterisk log channel", + "operations": [ + { + "httpMethod": "PUT", + "summary": "Rotates a log channel.", + "nickname": "rotateLog", + "responseClass": "void", + "parameters": [ + { + "name": "logChannelName", + "description": "Log channel's name", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Log channel does not exist." + } + ] + } + ] + }, + { + "path": "/asterisk/variable", + "description": "Global variables", + "operations": [ + { + "httpMethod": "GET", + "summary": "Get the value of a global variable.", + "nickname": "getGlobalVar", + "responseClass": "Variable", + "parameters": [ + { + "name": "variable", + "description": "The variable to get", + "paramType": "query", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 400, + "reason": "Missing variable parameter." + } + ] + }, + { + "httpMethod": "POST", + "summary": "Set the value of a global variable.", + "nickname": "setGlobalVar", + "responseClass": "void", + "parameters": [ + { + "name": "variable", + "description": "The variable to set", + "paramType": "query", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "value", + "description": "The value to set the variable to", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 400, + "reason": "Missing variable parameter." + } + ] + } + ] + } + ], + "models": { + "BuildInfo": { + "id": "BuildInfo", + "description": "Info about how Asterisk was built", + "properties": { + "os": { + "required": true, + "type": "string", + "description": "OS Asterisk was built on." + }, + "kernel": { + "required": true, + "type": "string", + "description": "Kernel version Asterisk was built on." + }, + "options": { + "required": true, + "type": "string", + "description": "Compile time options, or empty string if default." + }, + "machine": { + "required": true, + "type": "string", + "description": "Machine architecture (x86_64, i686, ppc, etc.)" + }, + "date": { + "required": true, + "type": "string", + "description": "Date and time when Asterisk was built." + }, + "user": { + "required": true, + "type": "string", + "description": "Username that build Asterisk" + } + } + }, + "SystemInfo": { + "id": "SystemInfo", + "description": "Info about Asterisk", + "properties": { + "version": { + "required": true, + "type": "string", + "description": "Asterisk version." + }, + "entity_id": { + "required": true, + "type": "string", + "description": "" + } + } + }, + "SetId": { + "id": "SetId", + "description": "Effective user/group id", + "properties": { + "user": { + "required": true, + "type": "string", + "description": "Effective user id." + }, + "group": { + "required": true, + "type": "string", + "description": "Effective group id." + } + } + }, + "ConfigInfo": { + "id": "ConfigInfo", + "description": "Info about Asterisk configuration", + "properties": { + "name": { + "required": true, + "type": "string", + "description": "Asterisk system name." + }, + "default_language": { + "required": true, + "type": "string", + "description": "Default language for media playback." + }, + "max_channels": { + "required": false, + "type": "int", + "description": "Maximum number of simultaneous channels." + }, + "max_open_files": { + "required": false, + "type": "int", + "description": "Maximum number of open file handles (files, sockets)." + }, + "max_load": { + "required": false, + "type": "double", + "description": "Maximum load avg on system." + }, + "setid": { + "required": true, + "type": "SetId", + "description": "Effective user/group id for running Asterisk." + } + } + }, + "StatusInfo": { + "id": "StatusInfo", + "description": "Info about Asterisk status", + "properties": { + "startup_time": { + "required": true, + "type": "Date", + "description": "Time when Asterisk was started." + }, + "last_reload_time": { + "required": true, + "type": "Date", + "description": "Time when Asterisk was last reloaded." + } + } + }, + "AsteriskInfo": { + "id": "AsteriskInfo", + "description": "Asterisk system information", + "properties": { + "build": { + "required": false, + "type": "BuildInfo", + "description": "Info about how Asterisk was built" + }, + "system": { + "required": false, + "type": "SystemInfo", + "description": "Info about the system running Asterisk" + }, + "config": { + "required": false, + "type": "ConfigInfo", + "description": "Info about Asterisk configuration" + }, + "status": { + "required": false, + "type": "StatusInfo", + "description": "Info about Asterisk status" + } + } + }, + "AsteriskPing": { + "id": "AsteriskPing", + "description": "Asterisk ping information", + "properties": { + "asterisk_id": { + "required": true, + "type": "string", + "description": "Asterisk id info" + }, + "ping": { + "required": true, + "type": "string", + "description": "Always string value is pong" + }, + "timestamp": { + "required": true, + "type": "string", + "description": "The timestamp string of request received time" + } + } + }, + "Module": { + "id": "Module", + "description": "Details of an Asterisk module", + "properties": { + "name": { + "type": "string", + "description": "The name of this module", + "required": true + }, + "description": { + "type": "string", + "description": "The description of this module", + "required": true + }, + "use_count": { + "type": "int", + "description": "The number of times this module is being used", + "required": true + }, + "status": { + "type": "string", + "description": "The running status of this module", + "required": true + }, + "support_level": { + "type": "string", + "description": "The support state of this module", + "required": true + } + } + }, + "LogChannel": { + "id": "LogChannel", + "description": "Details of an Asterisk log channel", + "properties": { + "channel": { + "type": "string", + "description": "The log channel path", + "required": true + }, + "type": { + "type": "string", + "description": "Types of logs for the log channel", + "required": true + }, + "status": { + "type": "string", + "description": "Whether or not a log type is enabled", + "required": true + }, + "configuration": { + "type": "string", + "description": "The various log levels", + "required": true + } + } + }, + "Variable": { + "id": "Variable", + "description": "The value of a channel variable", + "properties": { + "value": { + "required": true, + "type": "string", + "description": "The value of the variable requested" + } + } + }, + "ConfigTuple": { + "id": "ConfigTuple", + "description": "A key/value pair that makes up part of a configuration object.", + "properties": { + "attribute": { + "required": true, + "type": "string", + "description": "A configuration object attribute." + }, + "value": { + "required": true, + "type": "string", + "description": "The value for the attribute." + } + } + } + } +} diff --git a/codegen/src/main/resources/codegen-data/ari_4_1_3/bridges.json b/codegen/src/main/resources/codegen-data/ari_4_1_3/bridges.json new file mode 100644 index 00000000..22743c3b --- /dev/null +++ b/codegen/src/main/resources/codegen-data/ari_4_1_3/bridges.json @@ -0,0 +1,765 @@ +{ + "_copyright": "Copyright (C) 2012 - 2013, Digium, Inc.", + "_author": "David M. Lee, II ", + "_svn_revision": "$Revision$", + "apiVersion": "2.0.0", + "swaggerVersion": "1.1", + "basePath": "http://localhost:8088/ari", + "resourcePath": "/api-docs/bridges.{format}", + "requiresModules": [ + "res_stasis_recording", + "res_stasis_playback" + ], + "apis": [ + { + "path": "/bridges", + "description": "Active bridges", + "operations": [ + { + "httpMethod": "GET", + "summary": "List all active bridges in Asterisk.", + "nickname": "list", + "responseClass": "List[Bridge]" + }, + { + "httpMethod": "POST", + "summary": "Create a new bridge.", + "notes": "This bridge persists until it has been shut down, or Asterisk has been shut down.", + "nickname": "create", + "responseClass": "Bridge", + "parameters": [ + { + "name": "type", + "description": "Comma separated list of bridge type attributes (mixing, holding, dtmf_events, proxy_media, video_sfu).", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "bridgeId", + "description": "Unique ID to give to the bridge being created.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "name", + "description": "Name to give to the bridge being created.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + } + ] + } + ] + }, + { + "path": "/bridges/{bridgeId}", + "description": "Individual bridge", + "operations": [ + { + "httpMethod": "POST", + "summary": "Create a new bridge or updates an existing one.", + "notes": "This bridge persists until it has been shut down, or Asterisk has been shut down.", + "nickname": "createWithId", + "responseClass": "Bridge", + "parameters": [ + { + "name": "type", + "description": "Comma separated list of bridge type attributes (mixing, holding, dtmf_events, proxy_media, video_sfu) to set.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "bridgeId", + "description": "Unique ID to give to the bridge being created.", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "name", + "description": "Set the name of the bridge.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + } + ] + }, + { + "httpMethod": "GET", + "summary": "Get bridge details.", + "nickname": "get", + "responseClass": "Bridge", + "parameters": [ + { + "name": "bridgeId", + "description": "Bridge's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Bridge not found" + } + ] + }, + { + "httpMethod": "DELETE", + "summary": "Shut down a bridge.", + "notes": "If any channels are in this bridge, they will be removed and resume whatever they were doing beforehand.", + "nickname": "destroy", + "responseClass": "void", + "parameters": [ + { + "name": "bridgeId", + "description": "Bridge's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Bridge not found" + } + ] + } + ] + }, + { + "path": "/bridges/{bridgeId}/addChannel", + "description": "Add a channel to a bridge", + "operations": [ + { + "httpMethod": "POST", + "summary": "Add a channel to a bridge.", + "nickname": "addChannel", + "responseClass": "void", + "parameters": [ + { + "name": "bridgeId", + "description": "Bridge's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "channel", + "description": "Ids of channels to add to bridge", + "paramType": "query", + "required": true, + "allowMultiple": true, + "dataType": "string" + }, + { + "name": "role", + "description": "Channel's role in the bridge", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "absorbDTMF", + "description": "Absorb DTMF coming from this channel, preventing it to pass through to the bridge", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "boolean", + "defaultValue": false + }, + { + "name": "mute", + "description": "Mute audio from this channel, preventing it to pass through to the bridge", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "boolean", + "defaultValue": false + } + ], + "errorResponses": [ + { + "code": 400, + "reason": "Channel not found" + }, + { + "code": 404, + "reason": "Bridge not found" + }, + { + "code": 409, + "reason": "Bridge not in Stasis application; Channel currently recording" + }, + { + "code": 422, + "reason": "Channel not in Stasis application" + } + ] + } + ] + }, + { + "path": "/bridges/{bridgeId}/removeChannel", + "description": "Remove a channel from a bridge", + "operations": [ + { + "httpMethod": "POST", + "summary": "Remove a channel from a bridge.", + "nickname": "removeChannel", + "responseClass": "void", + "parameters": [ + { + "name": "bridgeId", + "description": "Bridge's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "channel", + "description": "Ids of channels to remove from bridge", + "paramType": "query", + "required": true, + "allowMultiple": true, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 400, + "reason": "Channel not found" + }, + { + "code": 404, + "reason": "Bridge not found" + }, + { + "code": 409, + "reason": "Bridge not in Stasis application" + }, + { + "code": 422, + "reason": "Channel not in this bridge" + } + ] + } + ] + }, + { + "path": "/bridges/{bridgeId}/videoSource/{channelId}", + "description": "Set a channel as the video source in a multi-party bridge", + "operations": [ + { + "httpMethod": "POST", + "summary": "Set a channel as the video source in a multi-party mixing bridge. This operation has no effect on bridges with two or fewer participants.", + "nickname": "setVideoSource", + "responseClass": "void", + "parameters": [ + { + "name": "bridgeId", + "description": "Bridge's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "channelId", + "description": "Channel's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Bridge or Channel not found" + }, + { + "code": 409, + "reason": "Channel not in Stasis application" + }, + { + "code": 422, + "reason": "Channel not in this Bridge" + } + ] + } + ] + }, + { + "path": "/bridges/{bridgeId}/videoSource", + "description": "Removes any explicit video source", + "operations": [ + { + "httpMethod": "DELETE", + "summary": "Removes any explicit video source in a multi-party mixing bridge. This operation has no effect on bridges with two or fewer participants. When no explicit video source is set, talk detection will be used to determine the active video stream.", + "nickname": "clearVideoSource", + "responseClass": "void", + "parameters": [ + { + "name": "bridgeId", + "description": "Bridge's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Bridge not found" + } + ] + } + ] + }, + { + "path": "/bridges/{bridgeId}/moh", + "description": "Play music on hold to a bridge", + "operations": [ + { + "httpMethod": "POST", + "summary": "Play music on hold to a bridge or change the MOH class that is playing.", + "nickname": "startMoh", + "responseClass": "void", + "parameters": [ + { + "name": "bridgeId", + "description": "Bridge's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "mohClass", + "description": "Channel's id", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Bridge not found" + }, + { + "code": 409, + "reason": "Bridge not in Stasis application" + } + ] + }, + { + "httpMethod": "DELETE", + "summary": "Stop playing music on hold to a bridge.", + "notes": "This will only stop music on hold being played via POST bridges/{bridgeId}/moh.", + "nickname": "stopMoh", + "responseClass": "void", + "parameters": [ + { + "name": "bridgeId", + "description": "Bridge's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Bridge not found" + }, + { + "code": 409, + "reason": "Bridge not in Stasis application" + } + ] + } + ] + }, + { + "path": "/bridges/{bridgeId}/play", + "description": "Play media to the participants of a bridge", + "operations": [ + { + "httpMethod": "POST", + "summary": "Start playback of media on a bridge.", + "notes": "The media URI may be any of a number of URI's. Currently sound:, recording:, number:, digits:, characters:, and tone: URI's are supported. This operation creates a playback resource that can be used to control the playback of media (pause, rewind, fast forward, etc.)", + "nickname": "play", + "responseClass": "Playback", + "parameters": [ + { + "name": "bridgeId", + "description": "Bridge's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "media", + "description": "Media URIs to play.", + "paramType": "query", + "required": true, + "allowMultiple": true, + "dataType": "string" + }, + { + "name": "lang", + "description": "For sounds, selects language for sound.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "offsetms", + "description": "Number of milliseconds to skip before playing. Only applies to the first URI if multiple media URIs are specified.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "int", + "defaultValue": 0, + "allowableValues": { + "valueType": "RANGE", + "min": 0 + } + + }, + { + "name": "skipms", + "description": "Number of milliseconds to skip for forward/reverse operations.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "int", + "defaultValue": 3000, + "allowableValues": { + "valueType": "RANGE", + "min": 0 + } + }, + { + "name": "playbackId", + "description": "Playback Id.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Bridge not found" + }, + { + "code": 409, + "reason": "Bridge not in a Stasis application" + } + ] + } + ] + }, + { + "path": "/bridges/{bridgeId}/play/{playbackId}", + "description": "Play media to a bridge", + "operations": [ + { + "httpMethod": "POST", + "summary": "Start playback of media on a bridge.", + "notes": "The media URI may be any of a number of URI's. Currently sound:, recording:, number:, digits:, characters:, and tone: URI's are supported. This operation creates a playback resource that can be used to control the playback of media (pause, rewind, fast forward, etc.)", + "nickname": "playWithId", + "responseClass": "Playback", + "parameters": [ + { + "name": "bridgeId", + "description": "Bridge's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "playbackId", + "description": "Playback ID.", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "media", + "description": "Media URIs to play.", + "paramType": "query", + "required": true, + "allowMultiple": true, + "dataType": "string" + }, + { + "name": "lang", + "description": "For sounds, selects language for sound.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "offsetms", + "description": "Number of milliseconds to skip before playing. Only applies to the first URI if multiple media URIs are specified.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "int", + "defaultValue": 0, + "allowableValues": { + "valueType": "RANGE", + "min": 0 + } + }, + { + "name": "skipms", + "description": "Number of milliseconds to skip for forward/reverse operations.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "int", + "defaultValue": 3000, + "allowableValues": { + "valueType": "RANGE", + "min": 0 + } + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Bridge not found" + }, + { + "code": 409, + "reason": "Bridge not in a Stasis application" + } + ] + + } + ] + }, + { + "path": "/bridges/{bridgeId}/record", + "description": "Record audio on a bridge", + "operations": [ + { + "httpMethod": "POST", + "summary": "Start a recording.", + "notes": "This records the mixed audio from all channels participating in this bridge.", + "nickname": "record", + "responseClass": "LiveRecording", + "parameters": [ + { + "name": "bridgeId", + "description": "Bridge's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "name", + "description": "Recording's filename", + "paramType": "query", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "format", + "description": "Format to encode audio in", + "paramType": "query", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "maxDurationSeconds", + "description": "Maximum duration of the recording, in seconds. 0 for no limit.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "int", + "defaultValue": 0, + "allowableValues": { + "valueType": "RANGE", + "min": 0 + } + }, + { + "name": "maxSilenceSeconds", + "description": "Maximum duration of silence, in seconds. 0 for no limit.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "int", + "defaultValue": 0, + "allowableValues": { + "valueType": "RANGE", + "min": 0 + } + }, + { + "name": "ifExists", + "description": "Action to take if a recording with the same name already exists.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string", + "defaultValue": "fail", + "allowableValues": { + "valueType": "LIST", + "values": [ + "fail", + "overwrite", + "append" + ] + } + }, + { + "name": "beep", + "description": "Play beep when recording begins", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "boolean", + "defaultValue": false + }, + { + "name": "terminateOn", + "description": "DTMF input to terminate recording.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string", + "defaultValue": "none", + "allowableValues": { + "valueType": "LIST", + "values": [ + "none", + "any", + "*", + "#" + ] + } + } + ], + "errorResponses": [ + { + "code": 400, + "reason": "Invalid parameters" + }, + { + "code": 404, + "reason": "Bridge not found" + }, + { + "code": 409, + "reason": "Bridge is not in a Stasis application; A recording with the same name already exists on the system and can not be overwritten because it is in progress or ifExists=fail" + }, + { + "code": 422, + "reason": "The format specified is unknown on this system" + } + ] + } + ] + } + ], + "models": { + "Bridge": { + "id": "Bridge", + "description": "The merging of media from one or more channels.\n\nEveryone on the bridge receives the same audio.", + "properties": { + "id": { + "type": "string", + "description": "Unique identifier for this bridge", + "required": true + }, + "technology": { + "type": "string", + "description": "Name of the current bridging technology", + "required": true + }, + "bridge_type": { + "type": "string", + "description": "Type of bridge technology", + "required": true, + "allowableValues": { + "valueType": "LIST", + "values": [ + "mixing", + "holding" + ] + } + }, + "bridge_class": { + "type": "string", + "description": "Bridging class", + "required": true + }, + "creator": { + "type": "string", + "description": "Entity that created the bridge", + "required": true + }, + "name": { + "type": "string", + "description": "Name the creator gave the bridge", + "required": true + }, + "channels": { + "type": "List[string]", + "description": "Ids of channels participating in this bridge", + "required": true + }, + "video_mode": { + "type": "string", + "description": "The video mode the bridge is using. One of 'none', 'talker', or 'single'.", + "required": false + }, + "video_source_id": { + "type": "string", + "description": "The ID of the channel that is the source of video in this bridge, if one exists.", + "required": false + }, + "creationtime": { + "required": true, + "type": "Date", + "description": "Timestamp when bridge was created" + } + } + } + } +} diff --git a/codegen/src/main/resources/codegen-data/ari_4_1_3/channels.json b/codegen/src/main/resources/codegen-data/ari_4_1_3/channels.json new file mode 100644 index 00000000..20dd4e9a --- /dev/null +++ b/codegen/src/main/resources/codegen-data/ari_4_1_3/channels.json @@ -0,0 +1,2172 @@ +{ + "_copyright": "Copyright (C) 2012 - 2013, Digium, Inc.", + "_author": "David M. Lee, II ", + "_svn_revision": "$Revision$", + "apiVersion": "2.0.0", + "swaggerVersion": "1.1", + "basePath": "http://localhost:8088/ari", + "resourcePath": "/api-docs/channels.{format}", + "requiresModules": [ + "res_stasis_answer", + "res_stasis_playback", + "res_stasis_recording", + "res_stasis_snoop" + ], + "apis": [ + { + "path": "/channels", + "description": "Active channels", + "operations": [ + { + "httpMethod": "GET", + "summary": "List all active channels in Asterisk.", + "nickname": "list", + "responseClass": "List[Channel]" + }, + { + "httpMethod": "POST", + "summary": "Create a new channel (originate).", + "notes": "The new channel is created immediately and a snapshot of it returned. If a Stasis application is provided it will be automatically subscribed to the originated channel for further events and updates.", + "nickname": "originate", + "responseClass": "Channel", + "parameters": [ + { + "name": "endpoint", + "description": "Endpoint to call.", + "paramType": "query", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "extension", + "description": "The extension to dial after the endpoint answers. Mutually exclusive with 'app'.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "context", + "description": "The context to dial after the endpoint answers. If omitted, uses 'default'. Mutually exclusive with 'app'.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "priority", + "description": "The priority to dial after the endpoint answers. If omitted, uses 1. Mutually exclusive with 'app'.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "long" + }, + { + "name": "label", + "description": "The label to dial after the endpoint answers. Will supersede 'priority' if provided. Mutually exclusive with 'app'.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "app", + "description": "The application that is subscribed to the originated channel. When the channel is answered, it will be passed to this Stasis application. Mutually exclusive with 'context', 'extension', 'priority', and 'label'.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "appArgs", + "description": "The application arguments to pass to the Stasis application provided by 'app'. Mutually exclusive with 'context', 'extension', 'priority', and 'label'.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "callerId", + "description": "CallerID to use when dialing the endpoint or extension.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "timeout", + "description": "Timeout (in seconds) before giving up dialing, or -1 for no timeout.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "int", + "defaultValue": 30 + }, + { + "name": "variables", + "description": "The \"variables\" key in the body object holds variable key/value pairs to set on the channel on creation. Other keys in the body object are interpreted as query parameters. Ex. { \"endpoint\": \"SIP/Alice\", \"variables\": { \"CALLERID(name)\": \"Alice\" } }", + "paramType": "body", + "required": false, + "dataType": "containers", + "allowMultiple": false + }, + { + "name": "channelId", + "description": "The unique id to assign the channel on creation.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "otherChannelId", + "description": "The unique id to assign the second channel when using local channels.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "originator", + "description": "The unique id of the channel which is originating this one.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "formats", + "description": "The format name capability list to use if originator is not specified. Ex. \"ulaw,slin16\". Format names can be found with \"core show codecs\".", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 400, + "reason": "Invalid parameters for originating a channel." + }, + { + "code": 409, + "reason": "Channel with given unique ID already exists." + } + ] + } + ] + }, + { + "path": "/channels/create", + "description": "Create a channel and place it in a Stasis app, but do not dial the channel yet.", + "operations": [ + { + "httpMethod": "POST", + "summary": "Create channel.", + "nickname": "create", + "responseClass": "Channel", + "parameters": [ + { + "name": "endpoint", + "description": "Endpoint for channel communication", + "paramType": "query", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "app", + "description": "Stasis Application to place channel into", + "paramType": "query", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "appArgs", + "description": "The application arguments to pass to the Stasis application provided by 'app'. Mutually exclusive with 'context', 'extension', 'priority', and 'label'.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "channelId", + "description": "The unique id to assign the channel on creation.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "otherChannelId", + "description": "The unique id to assign the second channel when using local channels.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "originator", + "description": "Unique ID of the calling channel", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "formats", + "description": "The format name capability list to use if originator is not specified. Ex. \"ulaw,slin16\". Format names can be found with \"core show codecs\".", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "variables", + "description": "The \"variables\" key in the body object holds variable key/value pairs to set on the channel on creation. Other keys in the body object are interpreted as query parameters. Ex. { \"endpoint\": \"SIP/Alice\", \"variables\": { \"CALLERID(name)\": \"Alice\" } }", + "paramType": "body", + "required": false, + "dataType": "containers", + "allowMultiple": false + } + ], + "errorResponses": [ + { + "code": 409, + "reason": "Channel with given unique ID already exists." + } + ] + } + ] + }, + { + "path": "/channels/{channelId}", + "description": "Active channel", + "operations": [ + { + "httpMethod": "GET", + "summary": "Channel details.", + "nickname": "get", + "responseClass": "Channel", + "parameters": [ + { + "name": "channelId", + "description": "Channel's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Channel not found" + } + ] + }, + { + "httpMethod": "POST", + "summary": "Create a new channel (originate with id).", + "notes": "The new channel is created immediately and a snapshot of it returned. If a Stasis application is provided it will be automatically subscribed to the originated channel for further events and updates.", + "nickname": "originateWithId", + "responseClass": "Channel", + "parameters": [ + { + "name": "channelId", + "description": "The unique id to assign the channel on creation.", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "endpoint", + "description": "Endpoint to call.", + "paramType": "query", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "extension", + "description": "The extension to dial after the endpoint answers. Mutually exclusive with 'app'.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "context", + "description": "The context to dial after the endpoint answers. If omitted, uses 'default'. Mutually exclusive with 'app'.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "priority", + "description": "The priority to dial after the endpoint answers. If omitted, uses 1. Mutually exclusive with 'app'.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "long" + }, + { + "name": "label", + "description": "The label to dial after the endpoint answers. Will supersede 'priority' if provided. Mutually exclusive with 'app'.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "app", + "description": "The application that is subscribed to the originated channel. When the channel is answered, it will be passed to this Stasis application. Mutually exclusive with 'context', 'extension', 'priority', and 'label'.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "appArgs", + "description": "The application arguments to pass to the Stasis application provided by 'app'. Mutually exclusive with 'context', 'extension', 'priority', and 'label'.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "callerId", + "description": "CallerID to use when dialing the endpoint or extension.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "timeout", + "description": "Timeout (in seconds) before giving up dialing, or -1 for no timeout.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "int", + "defaultValue": 30 + }, + { + "name": "variables", + "description": "The \"variables\" key in the body object holds variable key/value pairs to set on the channel on creation. Other keys in the body object are interpreted as query parameters. Ex. { \"endpoint\": \"SIP/Alice\", \"variables\": { \"CALLERID(name)\": \"Alice\" } }", + "paramType": "body", + "required": false, + "dataType": "containers", + "allowMultiple": false + }, + { + "name": "otherChannelId", + "description": "The unique id to assign the second channel when using local channels.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "originator", + "description": "The unique id of the channel which is originating this one.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "formats", + "description": "The format name capability list to use if originator is not specified. Ex. \"ulaw,slin16\". Format names can be found with \"core show codecs\".", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 400, + "reason": "Invalid parameters for originating a channel." + }, + { + "code": 409, + "reason": "Channel with given unique ID already exists." + } + ] + + }, + { + "httpMethod": "DELETE", + "summary": "Delete (i.e. hangup) a channel.", + "nickname": "hangup", + "responseClass": "void", + "parameters": [ + { + "name": "channelId", + "description": "Channel's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "reason", + "description": "Reason for hanging up the channel", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string", + "defalutValue": "normal", + "allowableValues": { + "valueType": "LIST", + "values": [ + "normal", + "busy", + "congestion", + "no_answer", + "timeout", + "rejected", + "unallocated", + "normal_unspecified", + "number_incomplete", + "codec_mismatch", + "interworking", + "failure", + "answered_elsewhere" + ] + } + } + ], + "errorResponses": [ + { + "code": 400, + "reason": "Invalid reason for hangup provided" + }, + { + "code": 404, + "reason": "Channel not found" + } + ] + } + ] + }, + { + "path": "/channels/{channelId}/continue", + "description": "Exit application; continue execution in the dialplan", + "operations": [ + { + "httpMethod": "POST", + "summary": "Exit application; continue execution in the dialplan.", + "nickname": "continueInDialplan", + "responseClass": "void", + "parameters": [ + { + "name": "channelId", + "description": "Channel's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "context", + "description": "The context to continue to.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "extension", + "description": "The extension to continue to.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "priority", + "description": "The priority to continue to.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "int" + }, + { + "name": "label", + "description": "The label to continue to - will supersede 'priority' if both are provided.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Channel not found" + }, + { + "code": 409, + "reason": "Channel not in a Stasis application" + }, + { + "code": 412, + "reason": "Channel in invalid state" + } + ] + } + ] + }, + { + "path": "/channels/{channelId}/move", + "description": "Move the channel from one Stasis application to another.", + "operations": [ + { + "httpMethod": "POST", + "summary": "Move the channel from one Stasis application to another.", + "nickname": "move", + "responseClass": "void", + "parameters": [ + { + "name": "channelId", + "description": "Channel's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "app", + "description": "The channel will be passed to this Stasis application.", + "paramType": "query", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "appArgs", + "description": "The application arguments to pass to the Stasis application provided by 'app'.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": "404", + "reason": "Channel not found" + }, + { + "code": "409", + "reason": "Channel not in a Stasis application" + } + ] + } + ] + }, + { + "path": "/channels/{channelId}/redirect", + "description": "Inform the channel that it should redirect itself to a different location. Note that this will almost certainly cause the channel to exit the application.", + "operations": [ + { + "httpMethod": "POST", + "summary": "Redirect the channel to a different location.", + "nickname": "redirect", + "responseClass": "void", + "parameters": [ + { + "name": "channelId", + "description": "Channel's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "endpoint", + "description": "The endpoint to redirect the channel to", + "paramType": "query", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 400, + "reason": "Endpoint parameter not provided" + }, + { + "code": 404, + "reason": "Channel or endpoint not found" + }, + { + "code": 409, + "reason": "Channel not in a Stasis application" + }, + { + "code": 422, + "reason": "Endpoint is not the same type as the channel" + }, + { + "code": 412, + "reason": "Channel in invalid state" + } + ] + } + ] + }, + { + "path": "/channels/{channelId}/answer", + "description": "Answer a channel", + "operations": [ + { + "httpMethod": "POST", + "summary": "Answer a channel.", + "nickname": "answer", + "responseClass": "void", + "parameters": [ + { + "name": "channelId", + "description": "Channel's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Channel not found" + }, + { + "code": 409, + "reason": "Channel not in a Stasis application" + }, + { + "code": 412, + "reason": "Channel in invalid state" + } + ] + } + ] + }, + { + "path": "/channels/{channelId}/ring", + "description": "Send a ringing indication to a channel", + "operations": [ + { + "httpMethod": "POST", + "summary": "Indicate ringing to a channel.", + "nickname": "ring", + "responseClass": "void", + "parameters": [ + { + "name": "channelId", + "description": "Channel's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Channel not found" + }, + { + "code": 409, + "reason": "Channel not in a Stasis application" + }, + { + "code": 412, + "reason": "Channel in invalid state" + } + ] + }, + { + "httpMethod": "DELETE", + "summary": "Stop ringing indication on a channel if locally generated.", + "nickname": "ringStop", + "responseClass": "void", + "parameters": [ + { + "name": "channelId", + "description": "Channel's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Channel not found" + }, + { + "code": 409, + "reason": "Channel not in a Stasis application" + }, + { + "code": 412, + "reason": "Channel in invalid state" + } + ] + } + ] + }, + { + "path": "/channels/{channelId}/dtmf", + "description": "Send DTMF to a channel", + "operations": [ + { + "httpMethod": "POST", + "summary": "Send provided DTMF to a given channel.", + "nickname": "sendDTMF", + "responseClass": "void", + "parameters": [ + { + "name": "channelId", + "description": "Channel's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "dtmf", + "description": "DTMF To send.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "before", + "description": "Amount of time to wait before DTMF digits (specified in milliseconds) start.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "int", + "defaultValue": 0 + }, + { + "name": "between", + "description": "Amount of time in between DTMF digits (specified in milliseconds).", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "int", + "defaultValue": 100 + }, + { + "name": "duration", + "description": "Length of each DTMF digit (specified in milliseconds).", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "int", + "defaultValue": 100 + }, + { + "name": "after", + "description": "Amount of time to wait after DTMF digits (specified in milliseconds) end.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "int", + "defaultValue": 0 + } + ], + "errorResponses": [ + { + "code": 400, + "reason": "DTMF is required" + }, + { + "code": 404, + "reason": "Channel not found" + }, + { + "code": 409, + "reason": "Channel not in a Stasis application" + }, + { + "code": 412, + "reason": "Channel in invalid state" + } + ] + } + ] + }, + { + "path": "/channels/{channelId}/mute", + "description": "Mute a channel", + "operations": [ + { + "httpMethod": "POST", + "summary": "Mute a channel.", + "nickname": "mute", + "responseClass": "void", + "parameters": [ + { + "name": "channelId", + "description": "Channel's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "direction", + "description": "Direction in which to mute audio", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string", + "defaultValue": "both", + "allowableValues": { + "valueType": "LIST", + "values": [ + "both", + "in", + "out" + ] + } + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Channel not found" + }, + { + "code": 409, + "reason": "Channel not in a Stasis application" + }, + { + "code": 412, + "reason": "Channel in invalid state" + } + ] + }, + { + "httpMethod": "DELETE", + "summary": "Unmute a channel.", + "nickname": "unmute", + "responseClass": "void", + "parameters": [ + { + "name": "channelId", + "description": "Channel's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "direction", + "description": "Direction in which to unmute audio", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string", + "defaultValue": "both", + "allowableValues": { + "valueType": "LIST", + "values": [ + "both", + "in", + "out" + ] + } + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Channel not found" + }, + { + "code": 409, + "reason": "Channel not in a Stasis application" + }, + { + "code": 412, + "reason": "Channel in invalid state" + } + ] + } + ] + }, + { + "path": "/channels/{channelId}/hold", + "description": "Put a channel on hold", + "operations": [ + { + "httpMethod": "POST", + "summary": "Hold a channel.", + "nickname": "hold", + "responseClass": "void", + "parameters": [ + { + "name": "channelId", + "description": "Channel's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Channel not found" + }, + { + "code": 409, + "reason": "Channel not in a Stasis application" + }, + { + "code": 412, + "reason": "Channel in invalid state" + } + ] + }, + { + "httpMethod": "DELETE", + "summary": "Remove a channel from hold.", + "nickname": "unhold", + "responseClass": "void", + "parameters": [ + { + "name": "channelId", + "description": "Channel's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Channel not found" + }, + { + "code": 409, + "reason": "Channel not in a Stasis application" + }, + { + "code": 412, + "reason": "Channel in invalid state" + } + ] + } + ] + }, + { + "path": "/channels/{channelId}/moh", + "description": "Play music on hold to a channel", + "operations": [ + { + "httpMethod": "POST", + "summary": "Play music on hold to a channel.", + "notes": "Using media operations such as /play on a channel playing MOH in this manner will suspend MOH without resuming automatically. If continuing music on hold is desired, the stasis application must reinitiate music on hold.", + "nickname": "startMoh", + "responseClass": "void", + "parameters": [ + { + "name": "channelId", + "description": "Channel's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "mohClass", + "description": "Music on hold class to use", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Channel not found" + }, + { + "code": 409, + "reason": "Channel not in a Stasis application" + }, + { + "code": 412, + "reason": "Channel in invalid state" + } + ] + }, + { + "httpMethod": "DELETE", + "summary": "Stop playing music on hold to a channel.", + "nickname": "stopMoh", + "responseClass": "void", + "parameters": [ + { + "name": "channelId", + "description": "Channel's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Channel not found" + }, + { + "code": 409, + "reason": "Channel not in a Stasis application" + }, + { + "code": 412, + "reason": "Channel in invalid state" + } + ] + } + ] + }, + { + "path": "/channels/{channelId}/silence", + "description": "Play silence to a channel", + "operations": [ + { + "httpMethod": "POST", + "summary": "Play silence to a channel.", + "notes": "Using media operations such as /play on a channel playing silence in this manner will suspend silence without resuming automatically.", + "nickname": "startSilence", + "responseClass": "void", + "parameters": [ + { + "name": "channelId", + "description": "Channel's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Channel not found" + }, + { + "code": 409, + "reason": "Channel not in a Stasis application" + }, + { + "code": 412, + "reason": "Channel in invalid state" + } + ] + }, + { + "httpMethod": "DELETE", + "summary": "Stop playing silence to a channel.", + "nickname": "stopSilence", + "responseClass": "void", + "parameters": [ + { + "name": "channelId", + "description": "Channel's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Channel not found" + }, + { + "code": 409, + "reason": "Channel not in a Stasis application" + }, + { + "code": 412, + "reason": "Channel in invalid state" + } + ] + } + ] + }, + { + "path": "/channels/{channelId}/play", + "description": "Play media to a channel", + "operations": [ + { + "httpMethod": "POST", + "summary": "Start playback of media.", + "notes": "The media URI may be any of a number of URI's. Currently sound:, recording:, number:, digits:, characters:, and tone: URI's are supported. This operation creates a playback resource that can be used to control the playback of media (pause, rewind, fast forward, etc.)", + "nickname": "play", + "responseClass": "Playback", + "parameters": [ + { + "name": "channelId", + "description": "Channel's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "media", + "description": "Media URIs to play.", + "paramType": "query", + "required": true, + "allowMultiple": true, + "dataType": "string" + }, + { + "name": "lang", + "description": "For sounds, selects language for sound.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "offsetms", + "description": "Number of milliseconds to skip before playing. Only applies to the first URI if multiple media URIs are specified.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "int" + }, + { + "name": "skipms", + "description": "Number of milliseconds to skip for forward/reverse operations.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "int", + "defaultValue": 3000 + }, + { + "name": "playbackId", + "description": "Playback ID.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Channel not found" + }, + { + "code": 409, + "reason": "Channel not in a Stasis application" + }, + { + "code": 412, + "reason": "Channel in invalid state" + } + ] + } + ] + }, + { + "path": "/channels/{channelId}/play/{playbackId}", + "description": "Play media to a channel", + "operations": [ + { + "httpMethod": "POST", + "summary": "Start playback of media and specify the playbackId.", + "notes": "The media URI may be any of a number of URI's. Currently sound:, recording:, number:, digits:, characters:, and tone: URI's are supported. This operation creates a playback resource that can be used to control the playback of media (pause, rewind, fast forward, etc.)", + "nickname": "playWithId", + "responseClass": "Playback", + "parameters": [ + { + "name": "channelId", + "description": "Channel's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "playbackId", + "description": "Playback ID.", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "media", + "description": "Media URIs to play.", + "paramType": "query", + "required": true, + "allowMultiple": true, + "dataType": "string" + }, + { + "name": "lang", + "description": "For sounds, selects language for sound.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "offsetms", + "description": "Number of milliseconds to skip before playing. Only applies to the first URI if multiple media URIs are specified.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "int" + }, + { + "name": "skipms", + "description": "Number of milliseconds to skip for forward/reverse operations.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "int", + "defaultValue": 3000 + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Channel not found" + }, + { + "code": 409, + "reason": "Channel not in a Stasis application" + }, + { + "code": 412, + "reason": "Channel in invalid state" + } + ] + } + ] + }, + { + "path": "/channels/{channelId}/record", + "description": "Record audio from a channel", + "operations": [ + { + "httpMethod": "POST", + "summary": "Start a recording.", + "notes": "Record audio from a channel. Note that this will not capture audio sent to the channel. The bridge itself has a record feature if that's what you want.", + "nickname": "record", + "responseClass": "LiveRecording", + "parameters": [ + { + "name": "channelId", + "description": "Channel's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "name", + "description": "Recording's filename", + "paramType": "query", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "format", + "description": "Format to encode audio in", + "paramType": "query", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "maxDurationSeconds", + "description": "Maximum duration of the recording, in seconds. 0 for no limit", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "int", + "defaultValue": 0, + "allowableValues": { + "valueType": "RANGE", + "min": 0 + } + }, + { + "name": "maxSilenceSeconds", + "description": "Maximum duration of silence, in seconds. 0 for no limit", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "int", + "defaultValue": 0, + "allowableValues": { + "valueType": "RANGE", + "min": 0 + } + }, + { + "name": "ifExists", + "description": "Action to take if a recording with the same name already exists.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string", + "defaultValue": "fail", + "allowableValues": { + "valueType": "LIST", + "values": [ + "fail", + "overwrite", + "append" + ] + } + }, + { + "name": "beep", + "description": "Play beep when recording begins", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "boolean", + "defaultValue": false + }, + { + "name": "terminateOn", + "description": "DTMF input to terminate recording", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string", + "defaultValue": "none", + "allowableValues": { + "valueType": "LIST", + "values": [ + "none", + "any", + "*", + "#" + ] + } + } + ], + "errorResponses": [ + { + "code": 400, + "reason": "Invalid parameters" + }, + { + "code": 404, + "reason": "Channel not found" + }, + { + "code": 409, + "reason": "Channel is not in a Stasis application; the channel is currently bridged with other hcannels; A recording with the same name already exists on the system and can not be overwritten because it is in progress or ifExists=fail" + }, + { + "code": 422, + "reason": "The format specified is unknown on this system" + } + ] + } + ] + }, + { + "path": "/channels/{channelId}/variable", + "description": "Variables on a channel", + "operations": [ + { + "httpMethod": "GET", + "summary": "Get the value of a channel variable or function.", + "nickname": "getChannelVar", + "responseClass": "Variable", + "parameters": [ + { + "name": "channelId", + "description": "Channel's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "variable", + "description": "The channel variable or function to get", + "paramType": "query", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 400, + "reason": "Missing variable parameter." + }, + { + "code": 404, + "reason": "Channel or variable not found" + }, + { + "code": 409, + "reason": "Channel not in a Stasis application" + } + ] + }, + { + "httpMethod": "POST", + "summary": "Set the value of a channel variable or function.", + "nickname": "setChannelVar", + "responseClass": "void", + "parameters": [ + { + "name": "channelId", + "description": "Channel's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "variable", + "description": "The channel variable or function to set", + "paramType": "query", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "value", + "description": "The value to set the variable to", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 400, + "reason": "Missing variable parameter." + }, + { + "code": 404, + "reason": "Channel not found" + }, + { + "code": 409, + "reason": "Channel not in a Stasis application" + } + ] + } + ] + }, + { + "path": "/channels/{channelId}/snoop", + "description": "Snoop (spy/whisper) on a channel", + "operations": [ + { + "httpMethod": "POST", + "summary": "Start snooping.", + "notes": "Snoop (spy/whisper) on a specific channel.", + "nickname": "snoopChannel", + "responseClass": "Channel", + "parameters": [ + { + "name": "channelId", + "description": "Channel's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "spy", + "description": "Direction of audio to spy on", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string", + "defaultValue": "none", + "allowableValues": { + "valueType": "LIST", + "values": [ + "none", + "both", + "out", + "in" + ] + } + }, + { + "name": "whisper", + "description": "Direction of audio to whisper into", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string", + "defaultValue": "none", + "allowableValues": { + "valueType": "LIST", + "values": [ + "none", + "both", + "out", + "in" + ] + } + }, + { + "name": "app", + "description": "Application the snooping channel is placed into", + "paramType": "query", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "appArgs", + "description": "The application arguments to pass to the Stasis application", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "snoopId", + "description": "Unique ID to assign to snooping channel", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 400, + "reason": "Invalid parameters" + }, + { + "code": 404, + "reason": "Channel not found" + } + ] + } + ] + }, + { + "path": "/channels/{channelId}/snoop/{snoopId}", + "description": "Snoop (spy/whisper) on a channel", + "operations": [ + { + "httpMethod": "POST", + "summary": "Start snooping.", + "notes": "Snoop (spy/whisper) on a specific channel.", + "nickname": "snoopChannelWithId", + "responseClass": "Channel", + "parameters": [ + { + "name": "channelId", + "description": "Channel's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "snoopId", + "description": "Unique ID to assign to snooping channel", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "spy", + "description": "Direction of audio to spy on", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string", + "defaultValue": "none", + "allowableValues": { + "valueType": "LIST", + "values": [ + "none", + "both", + "out", + "in" + ] + } + }, + { + "name": "whisper", + "description": "Direction of audio to whisper into", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string", + "defaultValue": "none", + "allowableValues": { + "valueType": "LIST", + "values": [ + "none", + "both", + "out", + "in" + ] + } + }, + { + "name": "app", + "description": "Application the snooping channel is placed into", + "paramType": "query", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "appArgs", + "description": "The application arguments to pass to the Stasis application", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 400, + "reason": "Invalid parameters" + }, + { + "code": 404, + "reason": "Channel not found" + } + ] + } + ] + }, + { + "path": "/channels/{channelId}/dial", + "description": "Dial a channel", + "operations": [ + { + "httpMethod": "POST", + "summary": "Dial a created channel.", + "nickname": "dial", + "responseClass": "void", + "parameters": [ + { + "name": "channelId", + "description": "Channel's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "caller", + "description": "Channel ID of caller", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "timeout", + "description": "Dial timeout", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "int", + "defaultValue": 0, + "allowableValues": { + "valueType": "RANGE", + "min": 0 + } + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Channel cannot be found." + }, + { + "code": 409, + "reason": "Channel cannot be dialed." + } + ] + } + ] + }, + { + "path": "/channels/{channelId}/rtp_statistics", + "description": "Get RTP statistics information for RTP on a channel", + "operations": [ + { + "httpMethod": "GET", + "summary": "RTP stats on a channel.", + "nickname": "rtpstatistics", + "responseClass": "RTPstat", + "parameters": [ + { + "name": "channelId", + "description": "Channel's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Channel cannot be found." + } + ] + } + ] + }, + { + "path": "/channels/externalMedia", + "description": "Create a channel to an External Media source/sink.", + "operations": [ + { + "httpMethod": "POST", + "summary": "Start an External Media session.", + "notes": "Create a channel to an External Media source/sink.", + "nickname": "externalMedia", + "responseClass": "Channel", + "parameters": [ + { + "name": "channelId", + "description": "The unique id to assign the channel on creation.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "app", + "description": "Stasis Application to place channel into", + "paramType": "query", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "variables", + "description": "The \"variables\" key in the body object holds variable key/value pairs to set on the channel on creation. Other keys in the body object are interpreted as query parameters. Ex. { \"endpoint\": \"SIP/Alice\", \"variables\": { \"CALLERID(name)\": \"Alice\" } }", + "paramType": "body", + "required": false, + "dataType": "containers", + "allowMultiple": false + }, + { + "name": "external_host", + "description": "Hostname/ip:port of external host", + "paramType": "query", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "encapsulation", + "description": "Payload encapsulation protocol", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string", + "defaultValue": "rtp", + "allowableValues": { + "valueType": "LIST", + "values": [ + "rtp" + ] + } + }, + { + "name": "transport", + "description": "Transport protocol", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string", + "defaultValue": "udp", + "allowableValues": { + "valueType": "LIST", + "values": [ + "udp" + ] + } + }, + { + "name": "connection_type", + "description": "Connection type (client/server)", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string", + "defaultValue": "client", + "allowableValues": { + "valueType": "LIST", + "values": [ + "client" + ] + } + }, + { + "name": "format", + "description": "Format to encode audio in", + "paramType": "query", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "direction", + "description": "External media direction", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string", + "defaultValue": "both", + "allowableValues": { + "valueType": "LIST", + "values": [ + "both" + ] + } + } + ], + "errorResponses": [ + { + "code": 400, + "reason": "Invalid parameters" + }, + { + "code": 409, + "reason": "Channel is not in a Stasis application; Channel is already bridged" + } + ] + } + ] + } + ], + "models": { + "Dialed": { + "id": "Dialed", + "description": "Dialed channel information.", + "properties": {} + }, + "DialplanCEP": { + "id": "DialplanCEP", + "description": "Dialplan location (context/extension/priority)", + "properties": { + "context": { + "required": true, + "type": "string", + "description": "Context in the dialplan" + }, + "exten": { + "required": true, + "type": "string", + "description": "Extension in the dialplan" + }, + "priority": { + "required": true, + "type": "long", + "description": "Priority in the dialplan" + }, + "app_name": { + "required": true, + "type": "string", + "description": "Name of current dialplan application" + }, + "app_data": { + "required": true, + "type": "string", + "description": "Parameter of current dialplan application" + } + } + }, + "CallerID": { + "id": "CallerID", + "description": "Caller identification", + "properties": { + "name": { + "required": true, + "type": "string" + }, + "number": { + "required": true, + "type": "string" + } + } + }, + "RTPstat": { + "id": "RTPstat", + "description": "A statistics of a RTP.", + "properties": { + "txcount": { + "required": true, + "type": "int", + "description": "Number of packets transmitted." + }, + "rxcount": { + "required": true, + "type": "int", + "description": "Number of packets received." + }, + "txjitter": { + "required": false, + "type": "double", + "description": "Jitter on transmitted packets." + }, + "rxjitter": { + "required": false, + "type": "double", + "description": "Jitter on received packets." + }, + "remote_maxjitter": { + "required": false, + "type": "double", + "description": "Maximum jitter on remote side." + }, + "remote_minjitter": { + "required": false, + "type": "double", + "description": "Minimum jitter on remote side." + }, + "remote_normdevjitter": { + "required": false, + "type": "double", + "description": "Average jitter on remote side." + }, + "remote_stdevjitter": { + "required": false, + "type": "double", + "description": "Standard deviation jitter on remote side." + }, + "local_maxjitter": { + "required": false, + "type": "double", + "description": "Maximum jitter on local side." + }, + "local_minjitter": { + "required": false, + "type": "double", + "description": "Minimum jitter on local side." + }, + "local_normdevjitter": { + "required": false, + "type": "double", + "description": "Average jitter on local side." + }, + "local_stdevjitter": { + "required": false, + "type": "double", + "description": "Standard deviation jitter on local side." + }, + "txploss": { + "required": true, + "type": "int", + "description": "Number of transmitted packets lost." + }, + "rxploss": { + "required": true, + "type": "int", + "description": "Number of received packets lost." + }, + "remote_maxrxploss": { + "required": false, + "type": "double", + "description": "Maximum number of packets lost on remote side." + }, + "remote_minrxploss": { + "required": false, + "type": "double", + "description": "Minimum number of packets lost on remote side." + }, + "remote_normdevrxploss": { + "required": false, + "type": "double", + "description": "Average number of packets lost on remote side." + }, + "remote_stdevrxploss": { + "required": false, + "type": "double", + "description": "Standard deviation packets lost on remote side." + }, + "local_maxrxploss": { + "required": false, + "type": "double", + "description": "Maximum number of packets lost on local side." + }, + "local_minrxploss": { + "required": false, + "type": "double", + "description": "Minimum number of packets lost on local side." + }, + "local_normdevrxploss": { + "required": false, + "type": "double", + "description": "Average number of packets lost on local side." + }, + "local_stdevrxploss": { + "required": false, + "type": "double", + "description": "Standard deviation packets lost on local side." + }, + "rtt": { + "required": false, + "type": "double", + "description": "Total round trip time." + }, + "maxrtt": { + "required": false, + "type": "double", + "description": "Maximum round trip time." + }, + "minrtt": { + "required": false, + "type": "double", + "description": "Minimum round trip time." + }, + "normdevrtt": { + "required": false, + "type": "double", + "description": "Average round trip time." + }, + "stdevrtt": { + "required": false, + "type": "double", + "description": "Standard deviation round trip time." + }, + "local_ssrc": { + "required": true, + "type": "int", + "description": "Our SSRC." + }, + "remote_ssrc": { + "required": true, + "type": "int", + "description": "Their SSRC." + }, + "txoctetcount": { + "required": true, + "type": "int", + "description": "Number of octets transmitted." + }, + "rxoctetcount": { + "required": true, + "type": "int", + "description": "Number of octets received." + }, + "channel_uniqueid": { + "required": true, + "type": "string", + "description": "The Asterisk channel's unique ID that owns this instance." + } + } + }, + "Channel": { + "id": "Channel", + "description": "A specific communication connection between Asterisk and an Endpoint.", + "properties": { + "id": { + "required": true, + "type": "string", + "description": "Unique identifier of the channel.\n\nThis is the same as the Uniqueid field in AMI." + }, + "name": { + "required": true, + "type": "string", + "description": "Name of the channel (i.e. SIP/foo-0000a7e3)" + }, + "state": { + "required": true, + "type": "string", + "allowableValues": { + "valueType": "LIST", + "values": [ + "Down", + "Rsrved", + "OffHook", + "Dialing", + "Ring", + "Ringing", + "Up", + "Busy", + "Dialing Offhook", + "Pre-ring", + "Unknown" + ] + } + }, + "caller": { + "required": true, + "type": "CallerID" + }, + "connected": { + "required": true, + "type": "CallerID" + }, + "accountcode": { + "required": true, + "type": "string" + }, + "dialplan": { + "required": true, + "type": "DialplanCEP", + "description": "Current location in the dialplan" + }, + "creationtime": { + "required": true, + "type": "Date", + "description": "Timestamp when channel was created" + }, + "language": { + "required": true, + "type": "string", + "description": "The default spoken language" + }, + "channelvars": { + "required": false, + "type": "object", + "description": "Channel variables" + } + } + } + } +} diff --git a/codegen/src/main/resources/codegen-data/ari_4_1_3/deviceStates.json b/codegen/src/main/resources/codegen-data/ari_4_1_3/deviceStates.json new file mode 100644 index 00000000..bd389355 --- /dev/null +++ b/codegen/src/main/resources/codegen-data/ari_4_1_3/deviceStates.json @@ -0,0 +1,154 @@ +{ + "_copyright": "Copyright (C) 2012 - 2013, Digium, Inc.", + "_author": "Kevin Harwell ", + "_svn_revision": "$Revision$", + "apiVersion": "2.0.0", + "swaggerVersion": "1.1", + "basePath": "http://localhost:8088/ari", + "resourcePath": "/api-docs/deviceStates.{format}", + "requiresModules": [ + "res_stasis_device_state" + ], + "apis": [ + { + "path": "/deviceStates", + "description": "Device states", + "operations": [ + { + "httpMethod": "GET", + "summary": "List all ARI controlled device states.", + "nickname": "list", + "responseClass": "List[DeviceState]" + } + ] + }, + { + "path": "/deviceStates/{deviceName}", + "description": "Device state", + "operations": [ + { + "httpMethod": "GET", + "summary": "Retrieve the current state of a device.", + "nickname": "get", + "responseClass": "DeviceState", + "parameters": [ + { + "name": "deviceName", + "description": "Name of the device", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ] + }, + { + "httpMethod": "PUT", + "summary": "Change the state of a device controlled by ARI. (Note - implicitly creates the device state).", + "nickname": "update", + "responseClass": "void", + "parameters": [ + { + "name": "deviceName", + "description": "Name of the device", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "deviceState", + "description": "Device state value", + "paramType": "query", + "required": true, + "allowMultiple": false, + "dataType": "string", + "allowableValues": { + "valueType": "LIST", + "values": [ + "NOT_INUSE", + "INUSE", + "BUSY", + "INVALID", + "UNAVAILABLE", + "RINGING", + "RINGINUSE", + "ONHOLD" + ] + } + + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Device name is missing" + }, + { + "code": 409, + "reason": "Uncontrolled device specified" + } + ] + }, + { + "httpMethod": "DELETE", + "summary": "Destroy a device-state controlled by ARI.", + "nickname": "delete", + "responseClass": "void", + "parameters": [ + { + "name": "deviceName", + "description": "Name of the device", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Device name is missing" + }, + { + "code": 409, + "reason": "Uncontrolled device specified" + } + ] + } + ] + } + ], + "models": { + "DeviceState": { + "id": "DeviceState", + "description": "Represents the state of a device.", + "properties": { + "name": { + "type": "string", + "description": "Name of the device.", + "required": true + }, + "state": { + "type": "string", + "description": "Device's state", + "required": true, + "allowableValues": { + "valueType": "LIST", + "values": [ + "UNKNOWN", + "NOT_INUSE", + "INUSE", + "BUSY", + "INVALID", + "UNAVAILABLE", + "RINGING", + "RINGINUSE", + "ONHOLD" + ] + } + } + } + } + } +} diff --git a/codegen/src/main/resources/codegen-data/ari_4_1_3/endpoints.json b/codegen/src/main/resources/codegen-data/ari_4_1_3/endpoints.json new file mode 100644 index 00000000..1f77d370 --- /dev/null +++ b/codegen/src/main/resources/codegen-data/ari_4_1_3/endpoints.json @@ -0,0 +1,263 @@ +{ + "_copyright": "Copyright (C) 2012 - 2013, Digium, Inc.", + "_author": "David M. Lee, II ", + "_svn_revision": "$Revision$", + "apiVersion": "2.0.0", + "swaggerVersion": "1.1", + "basePath": "http://localhost:8088/ari", + "resourcePath": "/api-docs/endpoints.{format}", + "apis": [ + { + "path": "/endpoints", + "description": "Asterisk endpoints", + "operations": [ + { + "httpMethod": "GET", + "summary": "List all endpoints.", + "nickname": "list", + "responseClass": "List[Endpoint]" + } + ] + }, + { + "path": "/endpoints/sendMessage", + "description": "Send a message to some technology URI or endpoint.", + "operations": [ + { + "httpMethod": "PUT", + "summary": "Send a message to some technology URI or endpoint.", + "nickname": "sendMessage", + "responseClass": "void", + "parameters": [ + { + "name": "to", + "description": "The endpoint resource or technology specific URI to send the message to. Valid resources are sip, pjsip, and xmpp.", + "paramType": "query", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "from", + "description": "The endpoint resource or technology specific identity to send this message from. Valid resources are sip, pjsip, and xmpp.", + "paramType": "query", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "body", + "description": "The body of the message", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "variables", + "descriptioni": "The \"variables\" key in the body object holds technology specific key/value pairs to append to the message. These can be interpreted and used by the various resource types; for example, pjsip and sip resource types will add the key/value pairs as SIP headers,", + "paramType": "body", + "required": false, + "dataType": "containers", + "allowMultiple": false + } + ], + "errorResponses": [ + { + "code": 400, + "reason": "Invalid parameters for sending a message." + }, + { + "code": 404, + "reason": "Endpoint not found" + } + ] + } + ] + }, + { + "path": "/endpoints/{tech}", + "description": "Asterisk endpoints", + "operations": [ + { + "httpMethod": "GET", + "summary": "List available endoints for a given endpoint technology.", + "nickname": "listByTech", + "responseClass": "List[Endpoint]", + "parameters": [ + { + "name": "tech", + "description": "Technology of the endpoints (sip,iax2,...)", + "paramType": "path", + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Endpoints not found" + } + ] + } + ] + }, + { + "path": "/endpoints/{tech}/{resource}", + "description": "Single endpoint", + "operations": [ + { + "httpMethod": "GET", + "summary": "Details for an endpoint.", + "nickname": "get", + "responseClass": "Endpoint", + "parameters": [ + { + "name": "tech", + "description": "Technology of the endpoint", + "paramType": "path", + "dataType": "string" + }, + { + "name": "resource", + "description": "ID of the endpoint", + "paramType": "path", + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 400, + "reason": "Invalid parameters for sending a message." + }, + { + "code": 404, + "reason": "Endpoints not found" + } + ] + } + ] + }, + { + "path": "/endpoints/{tech}/{resource}/sendMessage", + "description": "Send a message to some endpoint in a technology.", + "operations": [ + { + "httpMethod": "PUT", + "summary": "Send a message to some endpoint in a technology.", + "nickname": "sendMessageToEndpoint", + "responseClass": "void", + "parameters": [ + { + "name": "tech", + "description": "Technology of the endpoint", + "paramType": "path", + "dataType": "string" + }, + { + "name": "resource", + "description": "ID of the endpoint", + "paramType": "path", + "dataType": "string" + }, + { + "name": "from", + "description": "The endpoint resource or technology specific identity to send this message from. Valid resources are sip, pjsip, and xmpp.", + "paramType": "query", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "body", + "description": "The body of the message", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "variables", + "descriptioni": "The \"variables\" key in the body object holds technology specific key/value pairs to append to the message. These can be interpreted and used by the various resource types; for example, pjsip and sip resource types will add the key/value pairs as SIP headers,", + "paramType": "body", + "required": false, + "dataType": "containers", + "allowMultiple": false + } + ], + "errorResponses": [ + { + "code": 400, + "reason": "Invalid parameters for sending a message." + }, + { + "code": 404, + "reason": "Endpoint not found" + } + ] + } + ] + } + ], + "models": { + "Endpoint": { + "id": "Endpoint", + "description": "An external device that may offer/accept calls to/from Asterisk.\n\nUnlike most resources, which have a single unique identifier, an endpoint is uniquely identified by the technology/resource pair.", + "properties": { + "technology": { + "type": "string", + "description": "Technology of the endpoint", + "required": true + }, + "resource": { + "type": "string", + "description": "Identifier of the endpoint, specific to the given technology.", + "required": true + }, + "state": { + "type": "string", + "description": "Endpoint's state", + "required": false, + "allowableValues": { + "valueType": "LIST", + "values": [ + "unknown", + "offline", + "online" + ] + } + }, + "channel_ids": { + "type": "List[string]", + "description": "Id's of channels associated with this endpoint", + "required": true + } + } + }, + "TextMessage": { + "id": "TextMessage", + "description": "A text message.", + "properties": { + "from": { + "type": "string", + "description": "A technology specific URI specifying the source of the message. For sip and pjsip technologies, any SIP URI can be specified. For xmpp, the URI must correspond to the client connection being used to send the message.", + "required": true + }, + "to": { + "type": "string", + "description": "A technology specific URI specifying the destination of the message. Valid technologies include sip, pjsip, and xmp. The destination of a message should be an endpoint.", + "required": true + }, + "body": { + "type": "string", + "description": "The text of the message.", + "required": true + }, + "variables": { + "type": "object", + "description": "Technology specific key/value pairs (JSON object) associated with the message.", + "required": false + } + } + } + } +} diff --git a/codegen/src/main/resources/codegen-data/ari_4_1_3/events.json b/codegen/src/main/resources/codegen-data/ari_4_1_3/events.json new file mode 100644 index 00000000..c9822f6c --- /dev/null +++ b/codegen/src/main/resources/codegen-data/ari_4_1_3/events.json @@ -0,0 +1,918 @@ +{ + "_copyright": "Copyright (C) 2012 - 2013, Digium, Inc.", + "_author": "David M. Lee, II ", + "_svn_revision": "$Revision$", + "apiVersion": "2.0.0", + "swaggerVersion": "1.2", + "basePath": "http://localhost:8088/ari", + "resourcePath": "/api-docs/events.{format}", + "requiresModules": [ + "res_http_websocket" + ], + "apis": [ + { + "path": "/events", + "description": "Events from Asterisk to applications", + "operations": [ + { + "httpMethod": "GET", + "upgrade": "websocket", + "websocketProtocol": "ari", + "summary": "WebSocket connection for events.", + "nickname": "eventWebsocket", + "responseClass": "Message", + "parameters": [ + { + "name": "app", + "description": "Applications to subscribe to.", + "paramType": "query", + "required": true, + "allowMultiple": true, + "dataType": "string" + }, + { + "name": "subscribeAll", + "description": "Subscribe to all Asterisk events. If provided, the applications listed will be subscribed to all events, effectively disabling the application specific subscriptions. Default is 'false'.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "boolean" + } + ] + } + ] + }, + { + "path": "/events/user/{eventName}", + "description": "Stasis application user events", + "operations": [ + { + "httpMethod": "POST", + "summary": "Generate a user event.", + "nickname": "userEvent", + "responseClass": "void", + "parameters": [ + { + "name": "eventName", + "description": "Event name", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "application", + "description": "The name of the application that will receive this event", + "paramType": "query", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "source", + "description": "URI for event source (channel:{channelId}, bridge:{bridgeId}, endpoint:{tech}/{resource}, deviceState:{deviceName}", + "paramType": "query", + "required": false, + "allowMultiple": true, + "dataType": "string" + }, + { + "name": "variables", + "description": "The \"variables\" key in the body object holds custom key/value pairs to add to the user event. Ex. { \"variables\": { \"key\": \"value\" } }", + "paramType": "body", + "required": false, + "allowMultiple": false, + "dataType": "containers" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Application does not exist." + }, + { + "code": 422, + "reason": "Event source not found." + }, + { + "code": 400, + "reason": "Invalid even tsource URI or userevent data." + } + ] + } + ] + } + ], + "models": { + "Message": { + "id": "Message", + "description": "Base type for errors and events", + "discriminator": "type", + "properties": { + "type": { + "type": "string", + "required": true, + "description": "Indicates the type of this message." + }, + "asterisk_id": { + "type": "string", + "required": false, + "description": "The unique ID for the Asterisk instance that raised this event." + } + }, + "subTypes": [ + "MissingParams", + "Event" + ] + }, + "MissingParams": { + "id": "MissingParams", + "description": "Error event sent when required params are missing.", + "properties": { + "params": { + "required": true, + "type": "List[string]", + "description": "A list of the missing parameters" + } + } + }, + "Event": { + "id": "Event", + "description": "Base type for asynchronous events from Asterisk.", + "properties": { + "application": { + "type": "string", + "description": "Name of the application receiving the event.", + "required": true + }, + "timestamp": { + "type": "Date", + "description": "Time at which this event was created.", + "required": true + } + }, + "subTypes": [ + "DeviceStateChanged", + "PlaybackStarted", + "PlaybackContinuing", + "PlaybackFinished", + "RecordingStarted", + "RecordingFinished", + "RecordingFailed", + "ApplicationMoveFailed", + "ApplicationReplaced", + "BridgeCreated", + "BridgeDestroyed", + "BridgeMerged", + "BridgeBlindTransfer", + "BridgeAttendedTransfer", + "BridgeVideoSourceChanged", + "ChannelCreated", + "ChannelDestroyed", + "ChannelEnteredBridge", + "ChannelLeftBridge", + "ChannelStateChange", + "ChannelDtmfReceived", + "ChannelDialplan", + "ChannelCallerId", + "ChannelUserevent", + "ChannelHangupRequest", + "ChannelVarset", + "ChannelTalkingStarted", + "ChannelTalkingFinished", + "ChannelHold", + "ChannelUnhold", + "ContactStatusChange", + "EndpointStateChange", + "Dial", + "StasisEnd", + "StasisStart", + "TextMessageReceived", + "ChannelConnectedLine", + "PeerStatusChange" + ] + }, + "ContactInfo": { + "id": "ContactInfo", + "description": "Detailed information about a contact on an endpoint.", + "properties": { + "uri": { + "type": "string", + "description": "The location of the contact.", + "required": true + }, + "contact_status": { + "type": "string", + "description": "The current status of the contact.", + "required": true, + "allowableValues": { + "valueType": "LIST", + "values": [ + "Unreachable", + "Reachable", + "Unknown", + "NonQualified", + "Removed" + ] + } + }, + "aor": { + "type": "string", + "description": "The Address of Record this contact belongs to.", + "required": true + }, + "roundtrip_usec": { + "type": "string", + "description": "Current round trip time, in microseconds, for the contact.", + "required": false + } + } + }, + "Peer": { + "id": "Peer", + "description": "Detailed information about a remote peer that communicates with Asterisk.", + "properties": { + "peer_status": { + "type": "string", + "description": "The current state of the peer. Note that the values of the status are dependent on the underlying peer technology.", + "required": true + }, + "cause": { + "type": "string", + "description": "An optional reason associated with the change in peer_status.", + "required": false + }, + "address": { + "type": "string", + "description": "The IP address of the peer.", + "required": false + }, + "port": { + "type": "string", + "description": "The port of the peer.", + "required": false + }, + "time": { + "type": "string", + "description": "The last known time the peer was contacted.", + "required": false + } + } + }, + "DeviceStateChanged": { + "id": "DeviceStateChanged", + "description": "Notification that a device state has changed.", + "properties": { + "device_state": { + "type": "DeviceState", + "description": "Device state object", + "required": true + } + } + }, + "PlaybackStarted": { + "id": "PlaybackStarted", + "description": "Event showing the start of a media playback operation.", + "properties": { + "playback": { + "type": "Playback", + "description": "Playback control object", + "required": true + } + } + }, + "PlaybackContinuing": { + "id": "PlaybackContinuing", + "description": "Event showing the continuation of a media playback operation from one media URI to the next in the list.", + "properties": { + "playback": { + "type": "Playback", + "description": "Playback control object", + "required": true + } + } + }, + "PlaybackFinished": { + "id": "PlaybackFinished", + "description": "Event showing the completion of a media playback operation.", + "properties": { + "playback": { + "type": "Playback", + "description": "Playback control object", + "required": true + } + } + }, + "RecordingStarted": { + "id": "RecordingStarted", + "description": "Event showing the start of a recording operation.", + "properties": { + "recording": { + "type": "LiveRecording", + "description": "Recording control object", + "required": true + } + } + }, + "RecordingFinished": { + "id": "RecordingFinished", + "description": "Event showing the completion of a recording operation.", + "properties": { + "recording": { + "type": "LiveRecording", + "description": "Recording control object", + "required": true + } + } + }, + "RecordingFailed": { + "id": "RecordingFailed", + "description": "Event showing failure of a recording operation.", + "properties": { + "recording": { + "type": "LiveRecording", + "description": "Recording control object", + "required": true + } + } + }, + "ApplicationMoveFailed": { + "id": "ApplicationMoveFailed", + "description": "Notification that trying to move a channel to another Stasis application failed.", + "properties": { + "channel": { + "required": true, + "type": "Channel" + }, + "destination": { + "required": true, + "type": "string" + }, + "args": { + "required": true, + "type": "List[string]", + "description": "Arguments to the application" + } + } + }, + "ApplicationReplaced": { + "id": "ApplicationReplaced", + "description": "Notification that another WebSocket has taken over for an application.\n\nAn application may only be subscribed to by a single WebSocket at a time. If multiple WebSockets attempt to subscribe to the same application, the newer WebSocket wins, and the older one receives this event.", + "properties": {} + }, + "BridgeCreated": { + "id": "BridgeCreated", + "description": "Notification that a bridge has been created.", + "properties": { + "bridge": { + "required": true, + "type": "Bridge" + } + } + }, + "BridgeDestroyed": { + "id": "BridgeDestroyed", + "description": "Notification that a bridge has been destroyed.", + "properties": { + "bridge": { + "required": true, + "type": "Bridge" + } + } + }, + "BridgeMerged": { + "id": "BridgeMerged", + "description": "Notification that one bridge has merged into another.", + "properties": { + "bridge": { + "required": true, + "type": "Bridge" + }, + "bridge_from": { + "required": true, + "type": "Bridge" + } + } + }, + "BridgeVideoSourceChanged": { + "id": "BridgeVideoSourceChanged", + "description": "Notification that the source of video in a bridge has changed.", + "properties": { + "bridge": { + "required": true, + "type": "Bridge" + }, + "old_video_source_id": { + "required": false, + "type": "string" + } + } + }, + "BridgeBlindTransfer": { + "id": "BridgeBlindTransfer", + "description": "Notification that a blind transfer has occurred.", + "properties": { + "channel": { + "description": "The channel performing the blind transfer", + "required": true, + "type": "Channel" + }, + "replace_channel": { + "description": "The channel that is replacing transferer when the transferee(s) can not be transferred directly", + "required": false, + "type": "Channel" + }, + "transferee": { + "description": "The channel that is being transferred", + "required": false, + "type": "Channel" + }, + "exten": { + "description": "The extension transferred to", + "required": true, + "type": "string" + }, + "context": { + "description": "The context transferred to", + "required": true, + "type": "string" + }, + "result": { + "description": "The result of the transfer attempt", + "required": true, + "type": "string" + }, + "is_external": { + "description": "Whether the transfer was externally initiated or not", + "required": true, + "type": "boolean" + }, + "bridge": { + "description": "The bridge being transferred", + "type": "Bridge" + } + } + }, + "BridgeAttendedTransfer": { + "id": "BridgeAttendedTransfer", + "description": "Notification that an attended transfer has occurred.", + "properties": { + "transferer_first_leg": { + "description": "First leg of the transferer", + "required": true, + "type": "Channel" + }, + "transferer_second_leg": { + "description": "Second leg of the transferer", + "required": true, + "type": "Channel" + }, + "replace_channel": { + "description": "The channel that is replacing transferer_first_leg in the swap", + "required": false, + "type": "Channel" + }, + "transferee": { + "description": "The channel that is being transferred", + "required": false, + "type": "Channel" + }, + "transfer_target": { + "description": "The channel that is being transferred to", + "required": false, + "type": "Channel" + }, + "result": { + "description": "The result of the transfer attempt", + "required": true, + "type": "string" + }, + "is_external": { + "description": "Whether the transfer was externally initiated or not", + "required": true, + "type": "boolean" + }, + "transferer_first_leg_bridge": { + "description": "Bridge the transferer first leg is in", + "type": "Bridge" + }, + "transferer_second_leg_bridge": { + "description": "Bridge the transferer second leg is in", + "type": "Bridge" + }, + "destination_type": { + "description": "How the transfer was accomplished", + "required": true, + "type": "string" + }, + "destination_bridge": { + "description": "Bridge that survived the merge result", + "type": "string" + }, + "destination_application": { + "description": "Application that has been transferred into", + "type": "string" + }, + "destination_link_first_leg": { + "description": "First leg of a link transfer result", + "type": "Channel" + }, + "destination_link_second_leg": { + "description": "Second leg of a link transfer result", + "type": "Channel" + }, + "destination_threeway_channel": { + "description": "Transferer channel that survived the threeway result", + "type": "Channel" + }, + "destination_threeway_bridge": { + "description": "Bridge that survived the threeway result", + "type": "Bridge" + } + } + }, + "ChannelCreated": { + "id": "ChannelCreated", + "description": "Notification that a channel has been created.", + "properties": { + "channel": { + "required": true, + "type": "Channel" + } + } + }, + "ChannelDestroyed": { + "id": "ChannelDestroyed", + "description": "Notification that a channel has been destroyed.", + "properties": { + "cause": { + "required": true, + "description": "Integer representation of the cause of the hangup", + "type": "int" + }, + "cause_txt": { + "required": true, + "description": "Text representation of the cause of the hangup", + "type": "string" + }, + "channel": { + "required": true, + "type": "Channel" + } + } + }, + "ChannelEnteredBridge": { + "id": "ChannelEnteredBridge", + "description": "Notification that a channel has entered a bridge.", + "properties": { + "bridge": { + "required": true, + "type": "Bridge" + }, + "channel": { + "type": "Channel" + } + } + }, + "ChannelLeftBridge": { + "id": "ChannelLeftBridge", + "description": "Notification that a channel has left a bridge.", + "properties": { + "bridge": { + "required": true, + "type": "Bridge" + }, + "channel": { + "required": true, + "type": "Channel" + } + } + }, + "ChannelStateChange": { + "id": "ChannelStateChange", + "description": "Notification of a channel's state change.", + "properties": { + "channel": { + "required": true, + "type": "Channel" + } + } + }, + "ChannelDtmfReceived": { + "id": "ChannelDtmfReceived", + "description": "DTMF received on a channel.\n\nThis event is sent when the DTMF ends. There is no notification about the start of DTMF", + "properties": { + "digit": { + "required": true, + "type": "string", + "description": "DTMF digit received (0-9, A-E, # or *)" + }, + "duration_ms": { + "required": true, + "type": "int", + "description": "Number of milliseconds DTMF was received" + }, + "channel": { + "required": true, + "type": "Channel", + "description": "The channel on which DTMF was received" + } + } + }, + "ChannelDialplan": { + "id": "ChannelDialplan", + "description": "Channel changed location in the dialplan.", + "properties": { + "channel": { + "required": true, + "type": "Channel", + "description": "The channel that changed dialplan location." + }, + "dialplan_app": { + "required": true, + "type": "string", + "description": "The application about to be executed." + }, + "dialplan_app_data": { + "required": true, + "type": "string", + "description": "The data to be passed to the application." + } + } + }, + "ChannelCallerId": { + "id": "ChannelCallerId", + "description": "Channel changed Caller ID.", + "properties": { + "caller_presentation": { + "required": true, + "type": "int", + "description": "The integer representation of the Caller Presentation value." + }, + "caller_presentation_txt": { + "required": true, + "type": "string", + "description": "The text representation of the Caller Presentation value." + }, + "channel": { + "required": true, + "type": "Channel", + "description": "The channel that changed Caller ID." + } + } + }, + "ChannelUserevent": { + "id": "ChannelUserevent", + "description": "User-generated event with additional user-defined fields in the object.", + "properties": { + "eventname": { + "required": true, + "type": "string", + "description": "The name of the user event." + }, + "channel": { + "required": false, + "type": "Channel", + "description": "A channel that is signaled with the user event." + }, + "bridge": { + "required": false, + "type": "Bridge", + "description": "A bridge that is signaled with the user event." + }, + "endpoint": { + "required": false, + "type": "Endpoint", + "description": "A endpoint that is signaled with the user event." + }, + "userevent": { + "required": true, + "type": "object", + "description": "Custom Userevent data" + } + } + }, + "ChannelHangupRequest": { + "id": "ChannelHangupRequest", + "description": "A hangup was requested on the channel.", + "properties": { + "cause": { + "type": "int", + "description": "Integer representation of the cause of the hangup." + }, + "soft": { + "type": "boolean", + "description": "Whether the hangup request was a soft hangup request." + }, + "channel": { + "required": true, + "type": "Channel", + "description": "The channel on which the hangup was requested." + } + } + }, + "ChannelVarset": { + "id": "ChannelVarset", + "description": "Channel variable changed.", + "properties": { + "variable": { + "required": true, + "type": "string", + "description": "The variable that changed." + }, + "value": { + "required": true, + "type": "string", + "description": "The new value of the variable." + }, + "channel": { + "required": false, + "type": "Channel", + "description": "The channel on which the variable was set.\n\nIf missing, the variable is a global variable." + } + } + }, + "ChannelHold": { + "id": "ChannelHold", + "description": "A channel initiated a media hold.", + "properties": { + "channel": { + "required": true, + "type": "Channel", + "description": "The channel that initiated the hold event." + }, + "musicclass": { + "required": false, + "type": "string", + "description": "The music on hold class that the initiator requested." + } + } + }, + "ChannelUnhold": { + "id": "ChannelUnhold", + "description": "A channel initiated a media unhold.", + "properties": { + "channel": { + "required": true, + "type": "Channel", + "description": "The channel that initiated the unhold event." + } + } + }, + "ChannelTalkingStarted": { + "id": "ChannelTalkingStarted", + "description": "Talking was detected on the channel.", + "properties": { + "channel": { + "required": true, + "type": "Channel", + "description": "The channel on which talking started." + } + } + }, + "ChannelTalkingFinished": { + "id": "ChannelTalkingFinished", + "description": "Talking is no longer detected on the channel.", + "properties": { + "channel": { + "required": true, + "type": "Channel", + "description": "The channel on which talking completed." + }, + "duration": { + "required": true, + "type": "int", + "description": "The length of time, in milliseconds, that talking was detected on the channel" + } + } + }, + "ContactStatusChange": { + "id": "ContactStatusChange", + "description": "The state of a contact on an endpoint has changed.", + "properties": { + "endpoint": { + "required": true, + "type": "Endpoint" + }, + "contact_info": { + "required": true, + "type": "ContactInfo" + } + } + }, + "PeerStatusChange": { + "id": "PeerStatusChange", + "description": "The state of a peer associated with an endpoint has changed.", + "properties": { + "endpoint": { + "required": true, + "type": "Endpoint" + }, + "peer": { + "required": true, + "type": "Peer" + } + } + }, + "EndpointStateChange": { + "id": "EndpointStateChange", + "description": "Endpoint state changed.", + "properties": { + "endpoint": { + "required": true, + "type": "Endpoint" + } + } + }, + "Dial": { + "id": "Dial", + "description": "Dialing state has changed.", + "properties": { + "caller": { + "required": false, + "type": "Channel", + "description": "The calling channel." + }, + "peer": { + "required": true, + "type": "Channel", + "description": "The dialed channel." + }, + "forward": { + "required": false, + "type": "string", + "description": "Forwarding target requested by the original dialed channel." + }, + "forwarded": { + "required": false, + "type": "Channel", + "description": "Channel that the caller has been forwarded to." + }, + "dialstring": { + "required": false, + "type": "string", + "description": "The dial string for calling the peer channel." + }, + "dialstatus": { + "required": true, + "type": "string", + "description": "Current status of the dialing attempt to the peer." + } + } + }, + "StasisEnd": { + "id": "StasisEnd", + "description": "Notification that a channel has left a Stasis application.", + "properties": { + "channel": { + "required": true, + "type": "Channel" + } + } + }, + "StasisStart": { + "id": "StasisStart", + "description": "Notification that a channel has entered a Stasis application.", + "properties": { + "args": { + "required": true, + "type": "List[string]", + "description": "Arguments to the application" + }, + "channel": { + "required": true, + "type": "Channel" + }, + "replace_channel": { + "required": false, + "type": "Channel" + } + } + }, + "TextMessageReceived": { + "id": "TextMessageReceived", + "description": "A text message was received from an endpoint.", + "properties": { + "message": { + "required": true, + "type": "TextMessage" + }, + "endpoint": { + "required": false, + "type": "Endpoint" + } + } + }, + "ChannelConnectedLine": { + "id": "ChannelConnectedLine", + "description": "Channel changed Connected Line.", + "properties": { + "channel": { + "required": true, + "type": "Channel", + "description": "The channel whose connected line has changed." + } + } + } + } +} diff --git a/codegen/src/main/resources/codegen-data/ari_4_1_3/mailboxes.json b/codegen/src/main/resources/codegen-data/ari_4_1_3/mailboxes.json new file mode 100644 index 00000000..8f5941b8 --- /dev/null +++ b/codegen/src/main/resources/codegen-data/ari_4_1_3/mailboxes.json @@ -0,0 +1,137 @@ +{ + "_copyright": "Copyright (C) 2013, Digium, Inc.", + "_author": "Jonathan Rose ", + "_svn_revision": "$Revision$", + "apiVersion": "2.0.0", + "swaggerVersion": "1.1", + "basePath": "http://localhost:8088/ari", + "resourcePath": "/api-docs/mailboxes.{format}", + "requiresModules": [ + "res_stasis_mailbox" + ], + "apis": [ + { + "path": "/mailboxes", + "description": "Mailboxes", + "operations": [ + { + "httpMethod": "GET", + "summary": "List all mailboxes.", + "nickname": "list", + "responseClass": "List[Mailbox]" + } + ] + }, + { + "path": "/mailboxes/{mailboxName}", + "description": "Mailbox state", + "operations": [ + { + "httpMethod": "GET", + "summary": "Retrieve the current state of a mailbox.", + "nickname": "get", + "responseClass": "Mailbox", + "parameters": [ + { + "name": "mailboxName", + "description": "Name of the mailbox", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Mailbox not found" + } + ] + }, + { + "httpMethod": "PUT", + "summary": "Change the state of a mailbox. (Note - implicitly creates the mailbox).", + "nickname": "update", + "responseClass": "void", + "parameters": [ + { + "name": "mailboxName", + "description": "Name of the mailbox", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "oldMessages", + "description": "Count of old messages in the mailbox", + "paramType": "query", + "required": true, + "allowMultiple": false, + "dataType": "int" + }, + { + "name": "newMessages", + "description": "Count of new messages in the mailbox", + "paramType": "query", + "required": true, + "allowMultiple": false, + "dataType": "int" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Mailbox not found" + } + ] + }, + { + "httpMethod": "DELETE", + "summary": "Destroy a mailbox.", + "nickname": "delete", + "responseClass": "void", + "parameters": [ + { + "name": "mailboxName", + "description": "Name of the mailbox", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Mailbox not found" + } + ] + } + ] + } + ], + "models": { + "Mailbox": { + "id": "Mailbox", + "description": "Represents the state of a mailbox.", + "properties": { + "name": { + "type": "string", + "description": "Name of the mailbox.", + "required": true + }, + "old_messages": { + "type": "int", + "description": "Count of old messages in the mailbox.", + "required": true + }, + "new_messages": { + "type": "int", + "description": "Count of new messages in the mailbox.", + "required": true + } + } + } + } +} diff --git a/codegen/src/main/resources/codegen-data/ari_4_1_3/playbacks.json b/codegen/src/main/resources/codegen-data/ari_4_1_3/playbacks.json new file mode 100644 index 00000000..a78dcae7 --- /dev/null +++ b/codegen/src/main/resources/codegen-data/ari_4_1_3/playbacks.json @@ -0,0 +1,164 @@ +{ + "_copyright": "Copyright (C) 2012 - 2013, Digium, Inc.", + "_author": "David M. Lee, II ", + "_svn_revision": "$Revision$", + "apiVersion": "2.0.0", + "swaggerVersion": "1.1", + "basePath": "http://localhost:8088/ari", + "resourcePath": "/api-docs/playbacks.{format}", + "requiresModules": [ + "res_stasis_playback" + ], + "apis": [ + { + "path": "/playbacks/{playbackId}", + "description": "Control object for a playback operation.", + "operations": [ + { + "httpMethod": "GET", + "summary": "Get a playback's details.", + "nickname": "get", + "responseClass": "Playback", + "parameters": [ + { + "name": "playbackId", + "description": "Playback's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "The playback cannot be found" + } + ] + }, + { + "httpMethod": "DELETE", + "summary": "Stop a playback.", + "nickname": "stop", + "responseClass": "void", + "parameters": [ + { + "name": "playbackId", + "description": "Playback's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "The playback cannot be found" + } + ] + } + ] + }, + { + "path": "/playbacks/{playbackId}/control", + "description": "Control object for a playback operation.", + "operations": [ + { + "httpMethod": "POST", + "summary": "Control a playback.", + "nickname": "control", + "responseClass": "void", + "parameters": [ + { + "name": "playbackId", + "description": "Playback's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "operation", + "description": "Operation to perform on the playback.", + "paramType": "query", + "required": true, + "allowMultiple": false, + "dataType": "string", + "allowableValues": { + "valueType": "LIST", + "values": [ + "restart", + "pause", + "unpause", + "reverse", + "forward" + ] + } + } + ], + "errorResponses": [ + { + "code": 400, + "reason": "The provided operation parameter was invalid" + }, + { + "code": 404, + "reason": "The playback cannot be found" + }, + { + "code": 409, + "reason": "The operation cannot be performed in the playback's current state" + } +] + } + ] + } + ], + "models": { + "Playback": { + "id": "Playback", + "description": "Object representing the playback of media to a channel", + "properties": { + "id": { + "type": "string", + "description": "ID for this playback operation", + "required": true + }, + "media_uri": { + "type": "string", + "description": "The URI for the media currently being played back.", + "required": true + }, + "next_media_uri": { + "type": "string", + "description": "If a list of URIs is being played, the next media URI to be played back.", + "required": false + }, + "target_uri": { + "type": "string", + "description": "URI for the channel or bridge to play the media on", + "required": true + }, + "language": { + "type": "string", + "description": "For media types that support multiple languages, the language requested for playback." + }, + "state": { + "type": "string", + "description": "Current state of the playback operation.", + "required": true, + "allowableValues": { + "valueType": "LIST", + "values": [ + "queued", + "playing", + "continuing", + "done" + ] + } + } + } + } + } +} diff --git a/codegen/src/main/resources/codegen-data/ari_4_1_3/recordings.json b/codegen/src/main/resources/codegen-data/ari_4_1_3/recordings.json new file mode 100644 index 00000000..6ffd6d8e --- /dev/null +++ b/codegen/src/main/resources/codegen-data/ari_4_1_3/recordings.json @@ -0,0 +1,413 @@ +{ + "_copyright": "Copyright (C) 2012 - 2013, Digium, Inc.", + "_author": "David M. Lee, II ", + "_svn_revision": "$Revision$", + "apiVersion": "2.0.0", + "swaggerVersion": "1.1", + "basePath": "http://localhost:8088/ari", + "resourcePath": "/api-docs/recordings.{format}", + "requiresModules": [ + "res_stasis_recording" + ], + "apis": [ + { + "path": "/recordings/stored", + "description": "Recordings", + "operations": [ + { + "httpMethod": "GET", + "summary": "List recordings that are complete.", + "nickname": "listStored", + "responseClass": "List[StoredRecording]" + } + ] + }, + { + "path": "/recordings/stored/{recordingName}", + "description": "Individual recording", + "operations": [ + { + "httpMethod": "GET", + "summary": "Get a stored recording's details.", + "nickname": "getStored", + "responseClass": "StoredRecording", + "parameters": [ + { + "name": "recordingName", + "description": "The name of the recording", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Recording not found" + } + ] + }, + { + "httpMethod": "DELETE", + "summary": "Delete a stored recording.", + "nickname": "deleteStored", + "responseClass": "void", + "parameters": [ + { + "name": "recordingName", + "description": "The name of the recording", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Recording not found" + } + ] + } + ] + }, + { + "path": "/recordings/stored/{recordingName}/file", + "description": "The actual file associated with the stored recording", + "operations": [ + { + "httpMethod": "GET", + "summary": "Get the file associated with the stored recording.", + "nickname": "getStoredFile", + "responseClass": "binary", + "parameters": [ + { + "name": "recordingName", + "description": "The name of the recording", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 403, + "reason": "The recording file could not be opened" + }, + { + "code": 404, + "reason": "Recording not found" + } + ] + } + ] + }, + { + "path": "/recordings/stored/{recordingName}/copy", + "description": "Copy an individual recording", + "operations": [ + { + "httpMethod": "POST", + "summary": "Copy a stored recording.", + "nickname": "copyStored", + "responseClass": "StoredRecording", + "parameters": [ + { + "name": "recordingName", + "description": "The name of the recording to copy", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "destinationRecordingName", + "description": "The destination name of the recording", + "paramType": "query", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Recording not found" + }, + { + "code": 409, + "reason": "A recording with the same name already exists on the system" + } + ] + } + ] + }, + { + "path": "/recordings/live/{recordingName}", + "description": "A recording that is in progress", + "operations": [ + { + "httpMethod": "GET", + "summary": "List live recordings.", + "nickname": "getLive", + "responseClass": "LiveRecording", + "parameters": [ + { + "name": "recordingName", + "description": "The name of the recording", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Recording not found" + } + ] + }, + { + "httpMethod": "DELETE", + "summary": "Stop a live recording and discard it.", + "nickname": "cancel", + "responseClass": "void", + "parameters": [ + { + "name": "recordingName", + "description": "The name of the recording", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Recording not found" + } + ] + } + ] + }, + { + "path": "/recordings/live/{recordingName}/stop", + "operations": [ + { + "httpMethod": "POST", + "summary": "Stop a live recording and store it.", + "nickname": "stop", + "responseClass": "void", + "parameters": [ + { + "name": "recordingName", + "description": "The name of the recording", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Recording not found" + } + ] + } + ] + }, + { + "path": "/recordings/live/{recordingName}/pause", + "operations": [ + { + "httpMethod": "POST", + "summary": "Pause a live recording.", + "notes": "Pausing a recording suspends silence detection, which will be restarted when the recording is unpaused. Paused time is not included in the accounting for maxDurationSeconds.", + "nickname": "pause", + "responseClass": "void", + "parameters": [ + { + "name": "recordingName", + "description": "The name of the recording", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Recording not found" + }, + { + "code": 409, + "reason": "Recording not in session" + } + ] + }, + { + "httpMethod": "DELETE", + "summary": "Unpause a live recording.", + "nickname": "unpause", + "responseClass": "void", + "parameters": [ + { + "name": "recordingName", + "description": "The name of the recording", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Recording not found" + }, + { + "code": 409, + "reason": "Recording not in session" + } + ] + } + ] + }, + { + "path": "/recordings/live/{recordingName}/mute", + "operations": [ + { + "httpMethod": "POST", + "summary": "Mute a live recording.", + "notes": "Muting a recording suspends silence detection, which will be restarted when the recording is unmuted.", + "nickname": "mute", + "responseClass": "void", + "parameters": [ + { + "name": "recordingName", + "description": "The name of the recording", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Recording not found" + }, + { + "code": 409, + "reason": "Recording not in session" + } + ] + }, + { + "httpMethod": "DELETE", + "summary": "Unmute a live recording.", + "nickname": "unmute", + "responseClass": "void", + "parameters": [ + { + "name": "recordingName", + "description": "The name of the recording", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Recording not found" + }, + { + "code": 409, + "reason": "Recording not in session" + } + ] + } + ] + } + ], + "models": { + "StoredRecording": { + "id": "StoredRecording", + "description": "A past recording that may be played back.", + "properties": { + "name": { + "required": true, + "type": "string" + }, + "format": { + "required": true, + "type": "string" + } + } + }, + "LiveRecording": { + "id": "LiveRecording", + "description": "A recording that is in progress", + "properties": { + "name": { + "required": true, + "type": "string", + "description": "Base name for the recording" + }, + "format": { + "required": true, + "type": "string", + "description": "Recording format (wav, gsm, etc.)" + }, + "target_uri": { + "required": true, + "type": "string", + "description": "URI for the channel or bridge being recorded" + }, + "state": { + "required": true, + "type": "string", + "allowableValues": { + "valueType": "LIST", + "values": [ + "queued", + "recording", + "paused", + "done", + "failed", + "canceled" + ] + } + }, + "duration": { + "required": false, + "type": "int", + "description": "Duration in seconds of the recording" + }, + "talking_duration": { + "required": false, + "type": "int", + "description": "Duration of talking, in seconds, detected in the recording. This is only available if the recording was initiated with a non-zero maxSilenceSeconds." + }, + "silence_duration": { + "required": false, + "type": "int", + "description": "Duration of silence, in seconds, detected in the recording. This is only available if the recording was initiated with a non-zero maxSilenceSeconds." + }, + "cause": { + "required": false, + "type": "string", + "description": "Cause for recording failure if failed" + } + } + } + } +} diff --git a/codegen/src/main/resources/codegen-data/ari_4_1_3/sounds.json b/codegen/src/main/resources/codegen-data/ari_4_1_3/sounds.json new file mode 100644 index 00000000..8fbe1c57 --- /dev/null +++ b/codegen/src/main/resources/codegen-data/ari_4_1_3/sounds.json @@ -0,0 +1,99 @@ +{ + "_copyright": "Copyright (C) 2012 - 2013, Digium, Inc.", + "_author": "David M. Lee, II ", + "_svn_revision": "$Revision$", + "apiVersion": "2.0.0", + "swaggerVersion": "1.1", + "basePath": "http://localhost:8088/ari", + "resourcePath": "/api-docs/sounds.{format}", + "apis": [ + { + "path": "/sounds", + "description": "Sounds", + "operations": [ + { + "httpMethod": "GET", + "summary": "List all sounds.", + "nickname": "list", + "responseClass": "List[Sound]", + "parameters": [ + { + "name": "lang", + "description": "Lookup sound for a specific language.", + "paramType": "query", + "dataType": "string", + "required": false + }, + { + "name": "format", + "description": "Lookup sound in a specific format.", + "paramType": "query", + "dataType": "string", + "required": false, + "__note": "core show translation can show translation paths between formats, along with relative costs. so this could be just installed format, or we could follow that for transcoded formats." + } + ] + } + ] + }, + { + "path": "/sounds/{soundId}", + "description": "Individual sound", + "operations": [ + { + "httpMethod": "GET", + "summary": "Get a sound's details.", + "nickname": "get", + "responseClass": "Sound", + "parameters": [ + { + "name": "soundId", + "description": "Sound's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ] + } + ] + } + ], + "models": { + "FormatLangPair": { + "id": "FormatLangPair", + "description": "Identifies the format and language of a sound file", + "properties": { + "language": { + "required": true, + "type": "string" + }, + "format": { + "required": true, + "type": "string" + } + } + }, + "Sound": { + "id": "Sound", + "description": "A media file that may be played back.", + "properties": { + "id": { + "required": true, + "description": "Sound's identifier.", + "type": "string" + }, + "text": { + "required": false, + "description": "Text description of the sound, usually the words spoken.", + "type": "string" + }, + "formats": { + "required": true, + "description": "The formats and languages in which this sound is available.", + "type": "List[FormatLangPair]" + } + } + } + } +} From fcdeb11c0e145172f96d58d5eec9983eb5837dee Mon Sep 17 00:00:00 2001 From: Graham Brown Date: Wed, 23 Sep 2020 15:02:06 +0200 Subject: [PATCH 160/220] add 5.1.1 --- .../codegen-data/ari_5_1_1/applications.json | 223 ++ .../codegen-data/ari_5_1_1/asterisk.json | 725 ++++++ .../codegen-data/ari_5_1_1/bridges.json | 765 ++++++ .../codegen-data/ari_5_1_1/channels.json | 2179 +++++++++++++++++ .../codegen-data/ari_5_1_1/deviceStates.json | 154 ++ .../codegen-data/ari_5_1_1/endpoints.json | 263 ++ .../codegen-data/ari_5_1_1/events.json | 918 +++++++ .../codegen-data/ari_5_1_1/mailboxes.json | 137 ++ .../codegen-data/ari_5_1_1/playbacks.json | 164 ++ .../codegen-data/ari_5_1_1/recordings.json | 413 ++++ .../codegen-data/ari_5_1_1/sounds.json | 99 + 11 files changed, 6040 insertions(+) create mode 100644 codegen/src/main/resources/codegen-data/ari_5_1_1/applications.json create mode 100644 codegen/src/main/resources/codegen-data/ari_5_1_1/asterisk.json create mode 100644 codegen/src/main/resources/codegen-data/ari_5_1_1/bridges.json create mode 100644 codegen/src/main/resources/codegen-data/ari_5_1_1/channels.json create mode 100644 codegen/src/main/resources/codegen-data/ari_5_1_1/deviceStates.json create mode 100644 codegen/src/main/resources/codegen-data/ari_5_1_1/endpoints.json create mode 100644 codegen/src/main/resources/codegen-data/ari_5_1_1/events.json create mode 100644 codegen/src/main/resources/codegen-data/ari_5_1_1/mailboxes.json create mode 100644 codegen/src/main/resources/codegen-data/ari_5_1_1/playbacks.json create mode 100644 codegen/src/main/resources/codegen-data/ari_5_1_1/recordings.json create mode 100644 codegen/src/main/resources/codegen-data/ari_5_1_1/sounds.json diff --git a/codegen/src/main/resources/codegen-data/ari_5_1_1/applications.json b/codegen/src/main/resources/codegen-data/ari_5_1_1/applications.json new file mode 100644 index 00000000..09c5cd5c --- /dev/null +++ b/codegen/src/main/resources/codegen-data/ari_5_1_1/applications.json @@ -0,0 +1,223 @@ +{ + "_copyright": "Copyright (C) 2013, Digium, Inc.", + "_author": "David M. Lee, II ", + "_svn_revision": "$Revision$", + "apiVersion": "2.0.0", + "swaggerVersion": "1.1", + "basePath": "http://localhost:8088/ari", + "resourcePath": "/api-docs/applications.{format}", + "apis": [ + { + "path": "/applications", + "description": "Stasis applications", + "operations": [ + { + "httpMethod": "GET", + "summary": "List all applications.", + "nickname": "list", + "responseClass": "List[Application]" + } + ] + }, + { + "path": "/applications/{applicationName}", + "description": "Stasis application", + "operations": [ + { + "httpMethod": "GET", + "summary": "Get details of an application.", + "nickname": "get", + "responseClass": "Application", + "parameters": [ + { + "name": "applicationName", + "description": "Application's name", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Application does not exist." + } + ] + } + ] + }, + { + "path": "/applications/{applicationName}/subscription", + "description": "Stasis application", + "operations": [ + { + "httpMethod": "POST", + "summary": "Subscribe an application to a event source.", + "notes": "Returns the state of the application after the subscriptions have changed", + "nickname": "subscribe", + "responseClass": "Application", + "parameters": [ + { + "name": "applicationName", + "description": "Application's name", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "eventSource", + "description": "URI for event source (channel:{channelId}, bridge:{bridgeId}, endpoint:{tech}[/{resource}], deviceState:{deviceName}", + "paramType": "query", + "required": true, + "allowMultiple": true, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 400, + "reason": "Missing parameter." + }, + { + "code": 404, + "reason": "Application does not exist." + }, + { + "code": 422, + "reason": "Event source does not exist." + } + ] + }, + { + "httpMethod": "DELETE", + "summary": "Unsubscribe an application from an event source.", + "notes": "Returns the state of the application after the subscriptions have changed", + "nickname": "unsubscribe", + "responseClass": "Application", + "parameters": [ + { + "name": "applicationName", + "description": "Application's name", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "eventSource", + "description": "URI for event source (channel:{channelId}, bridge:{bridgeId}, endpoint:{tech}[/{resource}], deviceState:{deviceName}", + "paramType": "query", + "required": true, + "allowMultiple": true, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 400, + "reason": "Missing parameter; event source scheme not recognized." + }, + { + "code": 404, + "reason": "Application does not exist." + }, + { + "code": 409, + "reason": "Application not subscribed to event source." + }, + { + "code": 422, + "reason": "Event source does not exist." + } + ] + } + ] + }, + { + "path": "/applications/{applicationName}/eventFilter", + "description": "Stasis application", + "operations": [ + { + "httpMethod": "PUT", + "summary": "Filter application events types.", + "notes": "Allowed and/or disallowed event type filtering can be done. The body (parameter) should specify a JSON key/value object that describes the type of event filtering needed. One, or both of the following keys can be designated:

\"allowed\" - Specifies an allowed list of event types
\"disallowed\" - Specifies a disallowed list of event types

Further, each of those key's value should be a JSON array that holds zero, or more JSON key/value objects. Each of these objects must contain the following key with an associated value:

\"type\" - The type name of the event to filter

The value must be the string name (case sensitive) of the event type that needs filtering. For example:

{ \"allowed\": [ { \"type\": \"StasisStart\" }, { \"type\": \"StasisEnd\" } ] }

As this specifies only an allowed list, then only those two event type messages are sent to the application. No other event messages are sent.

The following rules apply:

* If the body is empty, both the allowed and disallowed filters are set empty.
* If both list types are given then both are set to their respective values (note, specifying an empty array for a given type sets that type to empty).
* If only one list type is given then only that type is set. The other type is not updated.
* An empty \"allowed\" list means all events are allowed.
* An empty \"disallowed\" list means no events are disallowed.
* Disallowed events take precedence over allowed events if the event type is specified in both lists.", + "nickname": "filter", + "responseClass": "Application", + "parameters": [ + { + "name": "applicationName", + "description": "Application's name", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "filter", + "description": "Specify which event types to allow/disallow", + "paramType": "body", + "required": false, + "dataType": "object", + "allowMultiple": false + } + ], + "errorResponses": [ + { + "code": 400, + "reason": "Bad request." + }, + { + "code": 404, + "reason": "Application does not exist." + } + ] + } + ] + } + ], + "models": { + "Application": { + "id": "Application", + "description": "Details of a Stasis application", + "properties": { + "name": { + "type": "string", + "description": "Name of this application", + "required": true + }, + "channel_ids": { + "type": "List[string]", + "description": "Id's for channels subscribed to.", + "required": true + }, + "bridge_ids": { + "type": "List[string]", + "description": "Id's for bridges subscribed to.", + "required": true + }, + "endpoint_ids": { + "type": "List[string]", + "description": "{tech}/{resource} for endpoints subscribed to.", + "required": true + }, + "device_names": { + "type": "List[string]", + "description": "Names of the devices subscribed to.", + "required": true + }, + "events_allowed": { + "type": "List[object]", + "description": "Event types sent to the application.", + "required": true + }, + "events_disallowed": { + "type": "List[object]", + "description": "Event types not sent to the application.", + "required": true + } + } + } + } +} diff --git a/codegen/src/main/resources/codegen-data/ari_5_1_1/asterisk.json b/codegen/src/main/resources/codegen-data/ari_5_1_1/asterisk.json new file mode 100644 index 00000000..841e6cd8 --- /dev/null +++ b/codegen/src/main/resources/codegen-data/ari_5_1_1/asterisk.json @@ -0,0 +1,725 @@ +{ + "_copyright": "Copyright (C) 2012 - 2013, Digium, Inc.", + "_author": "David M. Lee, II ", + "_svn_revision": "$Revision$", + "apiVersion": "2.0.0", + "swaggerVersion": "1.1", + "basePath": "http://localhost:8088/ari", + "resourcePath": "/api-docs/asterisk.{format}", + "apis": [ + { + "path": "/asterisk/config/dynamic/{configClass}/{objectType}/{id}", + "description": "Asterisk dynamic configuration", + "operations": [ + { + "httpMethod": "GET", + "summary": "Retrieve a dynamic configuration object.", + "nickname": "getObject", + "responseClass": "List[ConfigTuple]", + "parameters": [ + { + "name": "configClass", + "description": "The configuration class containing dynamic configuration objects.", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "objectType", + "description": "The type of configuration object to retrieve.", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "id", + "description": "The unique identifier of the object to retrieve.", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "{configClass|objectType|id} not found" + } + ] + }, + { + "httpMethod": "PUT", + "summary": "Create or update a dynamic configuration object.", + "nickname": "updateObject", + "responseClass": "List[ConfigTuple]", + "parameters": [ + { + "name": "configClass", + "description": "The configuration class containing dynamic configuration objects.", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "objectType", + "description": "The type of configuration object to create or update.", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "id", + "description": "The unique identifier of the object to create or update.", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "fields", + "description": "The body object should have a value that is a list of ConfigTuples, which provide the fields to update. Ex. [ { \"attribute\": \"directmedia\", \"value\": \"false\" } ]", + "paramType": "body", + "required": false, + "dataType": "containers", + "allowMultiple": false + } + ], + "errorResponses": [ + { + "code": 400, + "reason": "Bad request body" + }, + { + "code": 403, + "reason": "Could not create or update object" + }, + { + "code": 404, + "reason": "{configClass|objectType} not found" + } + ] + }, + { + "httpMethod": "DELETE", + "summary": "Delete a dynamic configuration object.", + "nickname": "deleteObject", + "responseClass": "void", + "parameters": [ + { + "name": "configClass", + "description": "The configuration class containing dynamic configuration objects.", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "objectType", + "description": "The type of configuration object to delete.", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "id", + "description": "The unique identifier of the object to delete.", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 403, + "reason": "Could not delete object" + }, + { + "code": 404, + "reason": "{configClass|objectType|id} not found" + } + ] + } + ] + }, + { + "path": "/asterisk/info", + "description": "Asterisk system information (similar to core show settings)", + "operations": [ + { + "httpMethod": "GET", + "summary": "Gets Asterisk system information.", + "nickname": "getInfo", + "responseClass": "AsteriskInfo", + "parameters": [ + { + "name": "only", + "description": "Filter information returned", + "paramType": "query", + "required": false, + "allowMultiple": true, + "dataType": "string", + "allowableValues": { + "valueType": "LIST", + "values": [ + "build", + "system", + "config", + "status" + ] + } + } + ] + } + ] + }, + { + "path": "/asterisk/ping", + "description": "Asterisk ping", + "operations": [ + { + "httpMethod": "GET", + "summary": "Response pong message.", + "nickname": "ping", + "responseClass": "AsteriskPing" + } + ] + }, + { + "path": "/asterisk/modules", + "description": "Asterisk modules", + "operations": [ + { + "httpMethod": "GET", + "summary": "List Asterisk modules.", + "nickname": "listModules", + "responseClass": "List[Module]" + } + ] + }, + { + "path": "/asterisk/modules/{moduleName}", + "description": "Asterisk module", + "operations": [ + { + "httpMethod": "GET", + "summary": "Get Asterisk module information.", + "nickname": "getModule", + "responseClass": "Module", + "parameters": [ + { + "name": "moduleName", + "description": "Module's name", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Module could not be found in running modules." + }, + { + "code": 409, + "reason": "Module information could not be retrieved." + } + ] + }, + { + "httpMethod": "POST", + "summary": "Load an Asterisk module.", + "nickname": "loadModule", + "responseClass": "void", + "parameters": [ + { + "name": "moduleName", + "description": "Module's name", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 409, + "reason": "Module could not be loaded." + } + ] + }, + { + "httpMethod": "DELETE", + "summary": "Unload an Asterisk module.", + "nickname": "unloadModule", + "responseClass": "void", + "parameters": [ + { + "name": "moduleName", + "description": "Module's name", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Module not found in running modules." + }, + { + "code": 409, + "reason": "Module could not be unloaded." + } + ] + }, + { + "httpMethod": "PUT", + "summary": "Reload an Asterisk module.", + "nickname": "reloadModule", + "responseClass": "void", + "parameters": [ + { + "name": "moduleName", + "description": "Module's name", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Module not found in running modules." + }, + { + "code": 409, + "reason": "Module could not be reloaded." + } + ] + } + ] + }, + { + "path": "/asterisk/logging", + "description": "Asterisk log channels", + "operations": [ + { + "httpMethod": "GET", + "summary": "Gets Asterisk log channel information.", + "nickname": "listLogChannels", + "responseClass": "List[LogChannel]" + } + ] + }, + { + "path": "/asterisk/logging/{logChannelName}", + "description": "Asterisk log channel", + "operations": [ + { + "httpMethod": "POST", + "summary": "Adds a log channel.", + "nickname": "addLog", + "responseClass": "void", + "parameters": [ + { + "name": "logChannelName", + "description": "The log channel to add", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "configuration", + "description": "levels of the log channel", + "paramType": "query", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 400, + "reason": "Bad request body" + }, + { + "code": 409, + "reason": "Log channel could not be created." + } + ] + }, + { + "httpMethod": "DELETE", + "summary": "Deletes a log channel.", + "nickname": "deleteLog", + "responseClass": "void", + "parameters": [ + { + "name": "logChannelName", + "description": "Log channels name", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Log channel does not exist." + } + ] + } + ] + }, + { + "path": "/asterisk/logging/{logChannelName}/rotate", + "description": "Asterisk log channel", + "operations": [ + { + "httpMethod": "PUT", + "summary": "Rotates a log channel.", + "nickname": "rotateLog", + "responseClass": "void", + "parameters": [ + { + "name": "logChannelName", + "description": "Log channel's name", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Log channel does not exist." + } + ] + } + ] + }, + { + "path": "/asterisk/variable", + "description": "Global variables", + "operations": [ + { + "httpMethod": "GET", + "summary": "Get the value of a global variable.", + "nickname": "getGlobalVar", + "responseClass": "Variable", + "parameters": [ + { + "name": "variable", + "description": "The variable to get", + "paramType": "query", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 400, + "reason": "Missing variable parameter." + } + ] + }, + { + "httpMethod": "POST", + "summary": "Set the value of a global variable.", + "nickname": "setGlobalVar", + "responseClass": "void", + "parameters": [ + { + "name": "variable", + "description": "The variable to set", + "paramType": "query", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "value", + "description": "The value to set the variable to", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 400, + "reason": "Missing variable parameter." + } + ] + } + ] + } + ], + "models": { + "BuildInfo": { + "id": "BuildInfo", + "description": "Info about how Asterisk was built", + "properties": { + "os": { + "required": true, + "type": "string", + "description": "OS Asterisk was built on." + }, + "kernel": { + "required": true, + "type": "string", + "description": "Kernel version Asterisk was built on." + }, + "options": { + "required": true, + "type": "string", + "description": "Compile time options, or empty string if default." + }, + "machine": { + "required": true, + "type": "string", + "description": "Machine architecture (x86_64, i686, ppc, etc.)" + }, + "date": { + "required": true, + "type": "string", + "description": "Date and time when Asterisk was built." + }, + "user": { + "required": true, + "type": "string", + "description": "Username that build Asterisk" + } + } + }, + "SystemInfo": { + "id": "SystemInfo", + "description": "Info about Asterisk", + "properties": { + "version": { + "required": true, + "type": "string", + "description": "Asterisk version." + }, + "entity_id": { + "required": true, + "type": "string", + "description": "" + } + } + }, + "SetId": { + "id": "SetId", + "description": "Effective user/group id", + "properties": { + "user": { + "required": true, + "type": "string", + "description": "Effective user id." + }, + "group": { + "required": true, + "type": "string", + "description": "Effective group id." + } + } + }, + "ConfigInfo": { + "id": "ConfigInfo", + "description": "Info about Asterisk configuration", + "properties": { + "name": { + "required": true, + "type": "string", + "description": "Asterisk system name." + }, + "default_language": { + "required": true, + "type": "string", + "description": "Default language for media playback." + }, + "max_channels": { + "required": false, + "type": "int", + "description": "Maximum number of simultaneous channels." + }, + "max_open_files": { + "required": false, + "type": "int", + "description": "Maximum number of open file handles (files, sockets)." + }, + "max_load": { + "required": false, + "type": "double", + "description": "Maximum load avg on system." + }, + "setid": { + "required": true, + "type": "SetId", + "description": "Effective user/group id for running Asterisk." + } + } + }, + "StatusInfo": { + "id": "StatusInfo", + "description": "Info about Asterisk status", + "properties": { + "startup_time": { + "required": true, + "type": "Date", + "description": "Time when Asterisk was started." + }, + "last_reload_time": { + "required": true, + "type": "Date", + "description": "Time when Asterisk was last reloaded." + } + } + }, + "AsteriskInfo": { + "id": "AsteriskInfo", + "description": "Asterisk system information", + "properties": { + "build": { + "required": false, + "type": "BuildInfo", + "description": "Info about how Asterisk was built" + }, + "system": { + "required": false, + "type": "SystemInfo", + "description": "Info about the system running Asterisk" + }, + "config": { + "required": false, + "type": "ConfigInfo", + "description": "Info about Asterisk configuration" + }, + "status": { + "required": false, + "type": "StatusInfo", + "description": "Info about Asterisk status" + } + } + }, + "AsteriskPing": { + "id": "AsteriskPing", + "description": "Asterisk ping information", + "properties": { + "asterisk_id": { + "required": true, + "type": "string", + "description": "Asterisk id info" + }, + "ping": { + "required": true, + "type": "string", + "description": "Always string value is pong" + }, + "timestamp": { + "required": true, + "type": "string", + "description": "The timestamp string of request received time" + } + } + }, + "Module": { + "id": "Module", + "description": "Details of an Asterisk module", + "properties": { + "name": { + "type": "string", + "description": "The name of this module", + "required": true + }, + "description": { + "type": "string", + "description": "The description of this module", + "required": true + }, + "use_count": { + "type": "int", + "description": "The number of times this module is being used", + "required": true + }, + "status": { + "type": "string", + "description": "The running status of this module", + "required": true + }, + "support_level": { + "type": "string", + "description": "The support state of this module", + "required": true + } + } + }, + "LogChannel": { + "id": "LogChannel", + "description": "Details of an Asterisk log channel", + "properties": { + "channel": { + "type": "string", + "description": "The log channel path", + "required": true + }, + "type": { + "type": "string", + "description": "Types of logs for the log channel", + "required": true + }, + "status": { + "type": "string", + "description": "Whether or not a log type is enabled", + "required": true + }, + "configuration": { + "type": "string", + "description": "The various log levels", + "required": true + } + } + }, + "Variable": { + "id": "Variable", + "description": "The value of a channel variable", + "properties": { + "value": { + "required": true, + "type": "string", + "description": "The value of the variable requested" + } + } + }, + "ConfigTuple": { + "id": "ConfigTuple", + "description": "A key/value pair that makes up part of a configuration object.", + "properties": { + "attribute": { + "required": true, + "type": "string", + "description": "A configuration object attribute." + }, + "value": { + "required": true, + "type": "string", + "description": "The value for the attribute." + } + } + } + } +} diff --git a/codegen/src/main/resources/codegen-data/ari_5_1_1/bridges.json b/codegen/src/main/resources/codegen-data/ari_5_1_1/bridges.json new file mode 100644 index 00000000..22743c3b --- /dev/null +++ b/codegen/src/main/resources/codegen-data/ari_5_1_1/bridges.json @@ -0,0 +1,765 @@ +{ + "_copyright": "Copyright (C) 2012 - 2013, Digium, Inc.", + "_author": "David M. Lee, II ", + "_svn_revision": "$Revision$", + "apiVersion": "2.0.0", + "swaggerVersion": "1.1", + "basePath": "http://localhost:8088/ari", + "resourcePath": "/api-docs/bridges.{format}", + "requiresModules": [ + "res_stasis_recording", + "res_stasis_playback" + ], + "apis": [ + { + "path": "/bridges", + "description": "Active bridges", + "operations": [ + { + "httpMethod": "GET", + "summary": "List all active bridges in Asterisk.", + "nickname": "list", + "responseClass": "List[Bridge]" + }, + { + "httpMethod": "POST", + "summary": "Create a new bridge.", + "notes": "This bridge persists until it has been shut down, or Asterisk has been shut down.", + "nickname": "create", + "responseClass": "Bridge", + "parameters": [ + { + "name": "type", + "description": "Comma separated list of bridge type attributes (mixing, holding, dtmf_events, proxy_media, video_sfu).", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "bridgeId", + "description": "Unique ID to give to the bridge being created.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "name", + "description": "Name to give to the bridge being created.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + } + ] + } + ] + }, + { + "path": "/bridges/{bridgeId}", + "description": "Individual bridge", + "operations": [ + { + "httpMethod": "POST", + "summary": "Create a new bridge or updates an existing one.", + "notes": "This bridge persists until it has been shut down, or Asterisk has been shut down.", + "nickname": "createWithId", + "responseClass": "Bridge", + "parameters": [ + { + "name": "type", + "description": "Comma separated list of bridge type attributes (mixing, holding, dtmf_events, proxy_media, video_sfu) to set.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "bridgeId", + "description": "Unique ID to give to the bridge being created.", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "name", + "description": "Set the name of the bridge.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + } + ] + }, + { + "httpMethod": "GET", + "summary": "Get bridge details.", + "nickname": "get", + "responseClass": "Bridge", + "parameters": [ + { + "name": "bridgeId", + "description": "Bridge's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Bridge not found" + } + ] + }, + { + "httpMethod": "DELETE", + "summary": "Shut down a bridge.", + "notes": "If any channels are in this bridge, they will be removed and resume whatever they were doing beforehand.", + "nickname": "destroy", + "responseClass": "void", + "parameters": [ + { + "name": "bridgeId", + "description": "Bridge's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Bridge not found" + } + ] + } + ] + }, + { + "path": "/bridges/{bridgeId}/addChannel", + "description": "Add a channel to a bridge", + "operations": [ + { + "httpMethod": "POST", + "summary": "Add a channel to a bridge.", + "nickname": "addChannel", + "responseClass": "void", + "parameters": [ + { + "name": "bridgeId", + "description": "Bridge's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "channel", + "description": "Ids of channels to add to bridge", + "paramType": "query", + "required": true, + "allowMultiple": true, + "dataType": "string" + }, + { + "name": "role", + "description": "Channel's role in the bridge", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "absorbDTMF", + "description": "Absorb DTMF coming from this channel, preventing it to pass through to the bridge", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "boolean", + "defaultValue": false + }, + { + "name": "mute", + "description": "Mute audio from this channel, preventing it to pass through to the bridge", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "boolean", + "defaultValue": false + } + ], + "errorResponses": [ + { + "code": 400, + "reason": "Channel not found" + }, + { + "code": 404, + "reason": "Bridge not found" + }, + { + "code": 409, + "reason": "Bridge not in Stasis application; Channel currently recording" + }, + { + "code": 422, + "reason": "Channel not in Stasis application" + } + ] + } + ] + }, + { + "path": "/bridges/{bridgeId}/removeChannel", + "description": "Remove a channel from a bridge", + "operations": [ + { + "httpMethod": "POST", + "summary": "Remove a channel from a bridge.", + "nickname": "removeChannel", + "responseClass": "void", + "parameters": [ + { + "name": "bridgeId", + "description": "Bridge's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "channel", + "description": "Ids of channels to remove from bridge", + "paramType": "query", + "required": true, + "allowMultiple": true, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 400, + "reason": "Channel not found" + }, + { + "code": 404, + "reason": "Bridge not found" + }, + { + "code": 409, + "reason": "Bridge not in Stasis application" + }, + { + "code": 422, + "reason": "Channel not in this bridge" + } + ] + } + ] + }, + { + "path": "/bridges/{bridgeId}/videoSource/{channelId}", + "description": "Set a channel as the video source in a multi-party bridge", + "operations": [ + { + "httpMethod": "POST", + "summary": "Set a channel as the video source in a multi-party mixing bridge. This operation has no effect on bridges with two or fewer participants.", + "nickname": "setVideoSource", + "responseClass": "void", + "parameters": [ + { + "name": "bridgeId", + "description": "Bridge's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "channelId", + "description": "Channel's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Bridge or Channel not found" + }, + { + "code": 409, + "reason": "Channel not in Stasis application" + }, + { + "code": 422, + "reason": "Channel not in this Bridge" + } + ] + } + ] + }, + { + "path": "/bridges/{bridgeId}/videoSource", + "description": "Removes any explicit video source", + "operations": [ + { + "httpMethod": "DELETE", + "summary": "Removes any explicit video source in a multi-party mixing bridge. This operation has no effect on bridges with two or fewer participants. When no explicit video source is set, talk detection will be used to determine the active video stream.", + "nickname": "clearVideoSource", + "responseClass": "void", + "parameters": [ + { + "name": "bridgeId", + "description": "Bridge's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Bridge not found" + } + ] + } + ] + }, + { + "path": "/bridges/{bridgeId}/moh", + "description": "Play music on hold to a bridge", + "operations": [ + { + "httpMethod": "POST", + "summary": "Play music on hold to a bridge or change the MOH class that is playing.", + "nickname": "startMoh", + "responseClass": "void", + "parameters": [ + { + "name": "bridgeId", + "description": "Bridge's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "mohClass", + "description": "Channel's id", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Bridge not found" + }, + { + "code": 409, + "reason": "Bridge not in Stasis application" + } + ] + }, + { + "httpMethod": "DELETE", + "summary": "Stop playing music on hold to a bridge.", + "notes": "This will only stop music on hold being played via POST bridges/{bridgeId}/moh.", + "nickname": "stopMoh", + "responseClass": "void", + "parameters": [ + { + "name": "bridgeId", + "description": "Bridge's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Bridge not found" + }, + { + "code": 409, + "reason": "Bridge not in Stasis application" + } + ] + } + ] + }, + { + "path": "/bridges/{bridgeId}/play", + "description": "Play media to the participants of a bridge", + "operations": [ + { + "httpMethod": "POST", + "summary": "Start playback of media on a bridge.", + "notes": "The media URI may be any of a number of URI's. Currently sound:, recording:, number:, digits:, characters:, and tone: URI's are supported. This operation creates a playback resource that can be used to control the playback of media (pause, rewind, fast forward, etc.)", + "nickname": "play", + "responseClass": "Playback", + "parameters": [ + { + "name": "bridgeId", + "description": "Bridge's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "media", + "description": "Media URIs to play.", + "paramType": "query", + "required": true, + "allowMultiple": true, + "dataType": "string" + }, + { + "name": "lang", + "description": "For sounds, selects language for sound.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "offsetms", + "description": "Number of milliseconds to skip before playing. Only applies to the first URI if multiple media URIs are specified.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "int", + "defaultValue": 0, + "allowableValues": { + "valueType": "RANGE", + "min": 0 + } + + }, + { + "name": "skipms", + "description": "Number of milliseconds to skip for forward/reverse operations.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "int", + "defaultValue": 3000, + "allowableValues": { + "valueType": "RANGE", + "min": 0 + } + }, + { + "name": "playbackId", + "description": "Playback Id.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Bridge not found" + }, + { + "code": 409, + "reason": "Bridge not in a Stasis application" + } + ] + } + ] + }, + { + "path": "/bridges/{bridgeId}/play/{playbackId}", + "description": "Play media to a bridge", + "operations": [ + { + "httpMethod": "POST", + "summary": "Start playback of media on a bridge.", + "notes": "The media URI may be any of a number of URI's. Currently sound:, recording:, number:, digits:, characters:, and tone: URI's are supported. This operation creates a playback resource that can be used to control the playback of media (pause, rewind, fast forward, etc.)", + "nickname": "playWithId", + "responseClass": "Playback", + "parameters": [ + { + "name": "bridgeId", + "description": "Bridge's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "playbackId", + "description": "Playback ID.", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "media", + "description": "Media URIs to play.", + "paramType": "query", + "required": true, + "allowMultiple": true, + "dataType": "string" + }, + { + "name": "lang", + "description": "For sounds, selects language for sound.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "offsetms", + "description": "Number of milliseconds to skip before playing. Only applies to the first URI if multiple media URIs are specified.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "int", + "defaultValue": 0, + "allowableValues": { + "valueType": "RANGE", + "min": 0 + } + }, + { + "name": "skipms", + "description": "Number of milliseconds to skip for forward/reverse operations.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "int", + "defaultValue": 3000, + "allowableValues": { + "valueType": "RANGE", + "min": 0 + } + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Bridge not found" + }, + { + "code": 409, + "reason": "Bridge not in a Stasis application" + } + ] + + } + ] + }, + { + "path": "/bridges/{bridgeId}/record", + "description": "Record audio on a bridge", + "operations": [ + { + "httpMethod": "POST", + "summary": "Start a recording.", + "notes": "This records the mixed audio from all channels participating in this bridge.", + "nickname": "record", + "responseClass": "LiveRecording", + "parameters": [ + { + "name": "bridgeId", + "description": "Bridge's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "name", + "description": "Recording's filename", + "paramType": "query", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "format", + "description": "Format to encode audio in", + "paramType": "query", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "maxDurationSeconds", + "description": "Maximum duration of the recording, in seconds. 0 for no limit.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "int", + "defaultValue": 0, + "allowableValues": { + "valueType": "RANGE", + "min": 0 + } + }, + { + "name": "maxSilenceSeconds", + "description": "Maximum duration of silence, in seconds. 0 for no limit.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "int", + "defaultValue": 0, + "allowableValues": { + "valueType": "RANGE", + "min": 0 + } + }, + { + "name": "ifExists", + "description": "Action to take if a recording with the same name already exists.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string", + "defaultValue": "fail", + "allowableValues": { + "valueType": "LIST", + "values": [ + "fail", + "overwrite", + "append" + ] + } + }, + { + "name": "beep", + "description": "Play beep when recording begins", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "boolean", + "defaultValue": false + }, + { + "name": "terminateOn", + "description": "DTMF input to terminate recording.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string", + "defaultValue": "none", + "allowableValues": { + "valueType": "LIST", + "values": [ + "none", + "any", + "*", + "#" + ] + } + } + ], + "errorResponses": [ + { + "code": 400, + "reason": "Invalid parameters" + }, + { + "code": 404, + "reason": "Bridge not found" + }, + { + "code": 409, + "reason": "Bridge is not in a Stasis application; A recording with the same name already exists on the system and can not be overwritten because it is in progress or ifExists=fail" + }, + { + "code": 422, + "reason": "The format specified is unknown on this system" + } + ] + } + ] + } + ], + "models": { + "Bridge": { + "id": "Bridge", + "description": "The merging of media from one or more channels.\n\nEveryone on the bridge receives the same audio.", + "properties": { + "id": { + "type": "string", + "description": "Unique identifier for this bridge", + "required": true + }, + "technology": { + "type": "string", + "description": "Name of the current bridging technology", + "required": true + }, + "bridge_type": { + "type": "string", + "description": "Type of bridge technology", + "required": true, + "allowableValues": { + "valueType": "LIST", + "values": [ + "mixing", + "holding" + ] + } + }, + "bridge_class": { + "type": "string", + "description": "Bridging class", + "required": true + }, + "creator": { + "type": "string", + "description": "Entity that created the bridge", + "required": true + }, + "name": { + "type": "string", + "description": "Name the creator gave the bridge", + "required": true + }, + "channels": { + "type": "List[string]", + "description": "Ids of channels participating in this bridge", + "required": true + }, + "video_mode": { + "type": "string", + "description": "The video mode the bridge is using. One of 'none', 'talker', or 'single'.", + "required": false + }, + "video_source_id": { + "type": "string", + "description": "The ID of the channel that is the source of video in this bridge, if one exists.", + "required": false + }, + "creationtime": { + "required": true, + "type": "Date", + "description": "Timestamp when bridge was created" + } + } + } + } +} diff --git a/codegen/src/main/resources/codegen-data/ari_5_1_1/channels.json b/codegen/src/main/resources/codegen-data/ari_5_1_1/channels.json new file mode 100644 index 00000000..2e015232 --- /dev/null +++ b/codegen/src/main/resources/codegen-data/ari_5_1_1/channels.json @@ -0,0 +1,2179 @@ +{ + "_copyright": "Copyright (C) 2012 - 2013, Digium, Inc.", + "_author": "David M. Lee, II ", + "_svn_revision": "$Revision$", + "apiVersion": "2.0.0", + "swaggerVersion": "1.1", + "basePath": "http://localhost:8088/ari", + "resourcePath": "/api-docs/channels.{format}", + "requiresModules": [ + "res_stasis_answer", + "res_stasis_playback", + "res_stasis_recording", + "res_stasis_snoop" + ], + "apis": [ + { + "path": "/channels", + "description": "Active channels", + "operations": [ + { + "httpMethod": "GET", + "summary": "List all active channels in Asterisk.", + "nickname": "list", + "responseClass": "List[Channel]" + }, + { + "httpMethod": "POST", + "summary": "Create a new channel (originate).", + "notes": "The new channel is created immediately and a snapshot of it returned. If a Stasis application is provided it will be automatically subscribed to the originated channel for further events and updates.", + "nickname": "originate", + "responseClass": "Channel", + "parameters": [ + { + "name": "endpoint", + "description": "Endpoint to call.", + "paramType": "query", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "extension", + "description": "The extension to dial after the endpoint answers. Mutually exclusive with 'app'.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "context", + "description": "The context to dial after the endpoint answers. If omitted, uses 'default'. Mutually exclusive with 'app'.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "priority", + "description": "The priority to dial after the endpoint answers. If omitted, uses 1. Mutually exclusive with 'app'.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "long" + }, + { + "name": "label", + "description": "The label to dial after the endpoint answers. Will supersede 'priority' if provided. Mutually exclusive with 'app'.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "app", + "description": "The application that is subscribed to the originated channel. When the channel is answered, it will be passed to this Stasis application. Mutually exclusive with 'context', 'extension', 'priority', and 'label'.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "appArgs", + "description": "The application arguments to pass to the Stasis application provided by 'app'. Mutually exclusive with 'context', 'extension', 'priority', and 'label'.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "callerId", + "description": "CallerID to use when dialing the endpoint or extension.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "timeout", + "description": "Timeout (in seconds) before giving up dialing, or -1 for no timeout.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "int", + "defaultValue": 30 + }, + { + "name": "variables", + "description": "The \"variables\" key in the body object holds variable key/value pairs to set on the channel on creation. Other keys in the body object are interpreted as query parameters. Ex. { \"endpoint\": \"SIP/Alice\", \"variables\": { \"CALLERID(name)\": \"Alice\" } }", + "paramType": "body", + "required": false, + "dataType": "containers", + "allowMultiple": false + }, + { + "name": "channelId", + "description": "The unique id to assign the channel on creation.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "otherChannelId", + "description": "The unique id to assign the second channel when using local channels.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "originator", + "description": "The unique id of the channel which is originating this one.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "formats", + "description": "The format name capability list to use if originator is not specified. Ex. \"ulaw,slin16\". Format names can be found with \"core show codecs\".", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 400, + "reason": "Invalid parameters for originating a channel." + }, + { + "code": 409, + "reason": "Channel with given unique ID already exists." + } + ] + } + ] + }, + { + "path": "/channels/create", + "description": "Create a channel and place it in a Stasis app, but do not dial the channel yet.", + "operations": [ + { + "httpMethod": "POST", + "summary": "Create channel.", + "nickname": "create", + "responseClass": "Channel", + "parameters": [ + { + "name": "endpoint", + "description": "Endpoint for channel communication", + "paramType": "query", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "app", + "description": "Stasis Application to place channel into", + "paramType": "query", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "appArgs", + "description": "The application arguments to pass to the Stasis application provided by 'app'. Mutually exclusive with 'context', 'extension', 'priority', and 'label'.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "channelId", + "description": "The unique id to assign the channel on creation.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "otherChannelId", + "description": "The unique id to assign the second channel when using local channels.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "originator", + "description": "Unique ID of the calling channel", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "formats", + "description": "The format name capability list to use if originator is not specified. Ex. \"ulaw,slin16\". Format names can be found with \"core show codecs\".", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "variables", + "description": "The \"variables\" key in the body object holds variable key/value pairs to set on the channel on creation. Other keys in the body object are interpreted as query parameters. Ex. { \"endpoint\": \"SIP/Alice\", \"variables\": { \"CALLERID(name)\": \"Alice\" } }", + "paramType": "body", + "required": false, + "dataType": "containers", + "allowMultiple": false + } + ], + "errorResponses": [ + { + "code": 409, + "reason": "Channel with given unique ID already exists." + } + ] + } + ] + }, + { + "path": "/channels/{channelId}", + "description": "Active channel", + "operations": [ + { + "httpMethod": "GET", + "summary": "Channel details.", + "nickname": "get", + "responseClass": "Channel", + "parameters": [ + { + "name": "channelId", + "description": "Channel's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Channel not found" + } + ] + }, + { + "httpMethod": "POST", + "summary": "Create a new channel (originate with id).", + "notes": "The new channel is created immediately and a snapshot of it returned. If a Stasis application is provided it will be automatically subscribed to the originated channel for further events and updates.", + "nickname": "originateWithId", + "responseClass": "Channel", + "parameters": [ + { + "name": "channelId", + "description": "The unique id to assign the channel on creation.", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "endpoint", + "description": "Endpoint to call.", + "paramType": "query", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "extension", + "description": "The extension to dial after the endpoint answers. Mutually exclusive with 'app'.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "context", + "description": "The context to dial after the endpoint answers. If omitted, uses 'default'. Mutually exclusive with 'app'.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "priority", + "description": "The priority to dial after the endpoint answers. If omitted, uses 1. Mutually exclusive with 'app'.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "long" + }, + { + "name": "label", + "description": "The label to dial after the endpoint answers. Will supersede 'priority' if provided. Mutually exclusive with 'app'.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "app", + "description": "The application that is subscribed to the originated channel. When the channel is answered, it will be passed to this Stasis application. Mutually exclusive with 'context', 'extension', 'priority', and 'label'.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "appArgs", + "description": "The application arguments to pass to the Stasis application provided by 'app'. Mutually exclusive with 'context', 'extension', 'priority', and 'label'.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "callerId", + "description": "CallerID to use when dialing the endpoint or extension.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "timeout", + "description": "Timeout (in seconds) before giving up dialing, or -1 for no timeout.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "int", + "defaultValue": 30 + }, + { + "name": "variables", + "description": "The \"variables\" key in the body object holds variable key/value pairs to set on the channel on creation. Other keys in the body object are interpreted as query parameters. Ex. { \"endpoint\": \"SIP/Alice\", \"variables\": { \"CALLERID(name)\": \"Alice\" } }", + "paramType": "body", + "required": false, + "dataType": "containers", + "allowMultiple": false + }, + { + "name": "otherChannelId", + "description": "The unique id to assign the second channel when using local channels.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "originator", + "description": "The unique id of the channel which is originating this one.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "formats", + "description": "The format name capability list to use if originator is not specified. Ex. \"ulaw,slin16\". Format names can be found with \"core show codecs\".", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 400, + "reason": "Invalid parameters for originating a channel." + }, + { + "code": 409, + "reason": "Channel with given unique ID already exists." + } + ] + + }, + { + "httpMethod": "DELETE", + "summary": "Delete (i.e. hangup) a channel.", + "nickname": "hangup", + "responseClass": "void", + "parameters": [ + { + "name": "channelId", + "description": "Channel's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "reason_code", + "description": "The reason code for hanging up the channel for detail use. Mutually exclusive with 'reason'. See detail hangup codes at here. https://wiki.asterisk.org/wiki/display/AST/Hangup+Cause+Mappings", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "reason", + "description": "Reason for hanging up the channel for simple use. Mutually exclusive with 'reason_code'.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string", + "allowableValues": { + "valueType": "LIST", + "values": [ + "normal", + "busy", + "congestion", + "no_answer", + "timeout", + "rejected", + "unallocated", + "normal_unspecified", + "number_incomplete", + "codec_mismatch", + "interworking", + "failure", + "answered_elsewhere" + ] + } + } + ], + "errorResponses": [ + { + "code": 400, + "reason": "Invalid reason for hangup provided" + }, + { + "code": 404, + "reason": "Channel not found" + } + ] + } + ] + }, + { + "path": "/channels/{channelId}/continue", + "description": "Exit application; continue execution in the dialplan", + "operations": [ + { + "httpMethod": "POST", + "summary": "Exit application; continue execution in the dialplan.", + "nickname": "continueInDialplan", + "responseClass": "void", + "parameters": [ + { + "name": "channelId", + "description": "Channel's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "context", + "description": "The context to continue to.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "extension", + "description": "The extension to continue to.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "priority", + "description": "The priority to continue to.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "int" + }, + { + "name": "label", + "description": "The label to continue to - will supersede 'priority' if both are provided.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Channel not found" + }, + { + "code": 409, + "reason": "Channel not in a Stasis application" + }, + { + "code": 412, + "reason": "Channel in invalid state" + } + ] + } + ] + }, + { + "path": "/channels/{channelId}/move", + "description": "Move the channel from one Stasis application to another.", + "operations": [ + { + "httpMethod": "POST", + "summary": "Move the channel from one Stasis application to another.", + "nickname": "move", + "responseClass": "void", + "parameters": [ + { + "name": "channelId", + "description": "Channel's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "app", + "description": "The channel will be passed to this Stasis application.", + "paramType": "query", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "appArgs", + "description": "The application arguments to pass to the Stasis application provided by 'app'.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": "404", + "reason": "Channel not found" + }, + { + "code": "409", + "reason": "Channel not in a Stasis application" + } + ] + } + ] + }, + { + "path": "/channels/{channelId}/redirect", + "description": "Inform the channel that it should redirect itself to a different location. Note that this will almost certainly cause the channel to exit the application.", + "operations": [ + { + "httpMethod": "POST", + "summary": "Redirect the channel to a different location.", + "nickname": "redirect", + "responseClass": "void", + "parameters": [ + { + "name": "channelId", + "description": "Channel's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "endpoint", + "description": "The endpoint to redirect the channel to", + "paramType": "query", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 400, + "reason": "Endpoint parameter not provided" + }, + { + "code": 404, + "reason": "Channel or endpoint not found" + }, + { + "code": 409, + "reason": "Channel not in a Stasis application" + }, + { + "code": 422, + "reason": "Endpoint is not the same type as the channel" + }, + { + "code": 412, + "reason": "Channel in invalid state" + } + ] + } + ] + }, + { + "path": "/channels/{channelId}/answer", + "description": "Answer a channel", + "operations": [ + { + "httpMethod": "POST", + "summary": "Answer a channel.", + "nickname": "answer", + "responseClass": "void", + "parameters": [ + { + "name": "channelId", + "description": "Channel's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Channel not found" + }, + { + "code": 409, + "reason": "Channel not in a Stasis application" + }, + { + "code": 412, + "reason": "Channel in invalid state" + } + ] + } + ] + }, + { + "path": "/channels/{channelId}/ring", + "description": "Send a ringing indication to a channel", + "operations": [ + { + "httpMethod": "POST", + "summary": "Indicate ringing to a channel.", + "nickname": "ring", + "responseClass": "void", + "parameters": [ + { + "name": "channelId", + "description": "Channel's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Channel not found" + }, + { + "code": 409, + "reason": "Channel not in a Stasis application" + }, + { + "code": 412, + "reason": "Channel in invalid state" + } + ] + }, + { + "httpMethod": "DELETE", + "summary": "Stop ringing indication on a channel if locally generated.", + "nickname": "ringStop", + "responseClass": "void", + "parameters": [ + { + "name": "channelId", + "description": "Channel's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Channel not found" + }, + { + "code": 409, + "reason": "Channel not in a Stasis application" + }, + { + "code": 412, + "reason": "Channel in invalid state" + } + ] + } + ] + }, + { + "path": "/channels/{channelId}/dtmf", + "description": "Send DTMF to a channel", + "operations": [ + { + "httpMethod": "POST", + "summary": "Send provided DTMF to a given channel.", + "nickname": "sendDTMF", + "responseClass": "void", + "parameters": [ + { + "name": "channelId", + "description": "Channel's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "dtmf", + "description": "DTMF To send.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "before", + "description": "Amount of time to wait before DTMF digits (specified in milliseconds) start.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "int", + "defaultValue": 0 + }, + { + "name": "between", + "description": "Amount of time in between DTMF digits (specified in milliseconds).", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "int", + "defaultValue": 100 + }, + { + "name": "duration", + "description": "Length of each DTMF digit (specified in milliseconds).", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "int", + "defaultValue": 100 + }, + { + "name": "after", + "description": "Amount of time to wait after DTMF digits (specified in milliseconds) end.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "int", + "defaultValue": 0 + } + ], + "errorResponses": [ + { + "code": 400, + "reason": "DTMF is required" + }, + { + "code": 404, + "reason": "Channel not found" + }, + { + "code": 409, + "reason": "Channel not in a Stasis application" + }, + { + "code": 412, + "reason": "Channel in invalid state" + } + ] + } + ] + }, + { + "path": "/channels/{channelId}/mute", + "description": "Mute a channel", + "operations": [ + { + "httpMethod": "POST", + "summary": "Mute a channel.", + "nickname": "mute", + "responseClass": "void", + "parameters": [ + { + "name": "channelId", + "description": "Channel's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "direction", + "description": "Direction in which to mute audio", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string", + "defaultValue": "both", + "allowableValues": { + "valueType": "LIST", + "values": [ + "both", + "in", + "out" + ] + } + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Channel not found" + }, + { + "code": 409, + "reason": "Channel not in a Stasis application" + }, + { + "code": 412, + "reason": "Channel in invalid state" + } + ] + }, + { + "httpMethod": "DELETE", + "summary": "Unmute a channel.", + "nickname": "unmute", + "responseClass": "void", + "parameters": [ + { + "name": "channelId", + "description": "Channel's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "direction", + "description": "Direction in which to unmute audio", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string", + "defaultValue": "both", + "allowableValues": { + "valueType": "LIST", + "values": [ + "both", + "in", + "out" + ] + } + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Channel not found" + }, + { + "code": 409, + "reason": "Channel not in a Stasis application" + }, + { + "code": 412, + "reason": "Channel in invalid state" + } + ] + } + ] + }, + { + "path": "/channels/{channelId}/hold", + "description": "Put a channel on hold", + "operations": [ + { + "httpMethod": "POST", + "summary": "Hold a channel.", + "nickname": "hold", + "responseClass": "void", + "parameters": [ + { + "name": "channelId", + "description": "Channel's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Channel not found" + }, + { + "code": 409, + "reason": "Channel not in a Stasis application" + }, + { + "code": 412, + "reason": "Channel in invalid state" + } + ] + }, + { + "httpMethod": "DELETE", + "summary": "Remove a channel from hold.", + "nickname": "unhold", + "responseClass": "void", + "parameters": [ + { + "name": "channelId", + "description": "Channel's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Channel not found" + }, + { + "code": 409, + "reason": "Channel not in a Stasis application" + }, + { + "code": 412, + "reason": "Channel in invalid state" + } + ] + } + ] + }, + { + "path": "/channels/{channelId}/moh", + "description": "Play music on hold to a channel", + "operations": [ + { + "httpMethod": "POST", + "summary": "Play music on hold to a channel.", + "notes": "Using media operations such as /play on a channel playing MOH in this manner will suspend MOH without resuming automatically. If continuing music on hold is desired, the stasis application must reinitiate music on hold.", + "nickname": "startMoh", + "responseClass": "void", + "parameters": [ + { + "name": "channelId", + "description": "Channel's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "mohClass", + "description": "Music on hold class to use", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Channel not found" + }, + { + "code": 409, + "reason": "Channel not in a Stasis application" + }, + { + "code": 412, + "reason": "Channel in invalid state" + } + ] + }, + { + "httpMethod": "DELETE", + "summary": "Stop playing music on hold to a channel.", + "nickname": "stopMoh", + "responseClass": "void", + "parameters": [ + { + "name": "channelId", + "description": "Channel's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Channel not found" + }, + { + "code": 409, + "reason": "Channel not in a Stasis application" + }, + { + "code": 412, + "reason": "Channel in invalid state" + } + ] + } + ] + }, + { + "path": "/channels/{channelId}/silence", + "description": "Play silence to a channel", + "operations": [ + { + "httpMethod": "POST", + "summary": "Play silence to a channel.", + "notes": "Using media operations such as /play on a channel playing silence in this manner will suspend silence without resuming automatically.", + "nickname": "startSilence", + "responseClass": "void", + "parameters": [ + { + "name": "channelId", + "description": "Channel's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Channel not found" + }, + { + "code": 409, + "reason": "Channel not in a Stasis application" + }, + { + "code": 412, + "reason": "Channel in invalid state" + } + ] + }, + { + "httpMethod": "DELETE", + "summary": "Stop playing silence to a channel.", + "nickname": "stopSilence", + "responseClass": "void", + "parameters": [ + { + "name": "channelId", + "description": "Channel's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Channel not found" + }, + { + "code": 409, + "reason": "Channel not in a Stasis application" + }, + { + "code": 412, + "reason": "Channel in invalid state" + } + ] + } + ] + }, + { + "path": "/channels/{channelId}/play", + "description": "Play media to a channel", + "operations": [ + { + "httpMethod": "POST", + "summary": "Start playback of media.", + "notes": "The media URI may be any of a number of URI's. Currently sound:, recording:, number:, digits:, characters:, and tone: URI's are supported. This operation creates a playback resource that can be used to control the playback of media (pause, rewind, fast forward, etc.)", + "nickname": "play", + "responseClass": "Playback", + "parameters": [ + { + "name": "channelId", + "description": "Channel's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "media", + "description": "Media URIs to play.", + "paramType": "query", + "required": true, + "allowMultiple": true, + "dataType": "string" + }, + { + "name": "lang", + "description": "For sounds, selects language for sound.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "offsetms", + "description": "Number of milliseconds to skip before playing. Only applies to the first URI if multiple media URIs are specified.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "int" + }, + { + "name": "skipms", + "description": "Number of milliseconds to skip for forward/reverse operations.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "int", + "defaultValue": 3000 + }, + { + "name": "playbackId", + "description": "Playback ID.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Channel not found" + }, + { + "code": 409, + "reason": "Channel not in a Stasis application" + }, + { + "code": 412, + "reason": "Channel in invalid state" + } + ] + } + ] + }, + { + "path": "/channels/{channelId}/play/{playbackId}", + "description": "Play media to a channel", + "operations": [ + { + "httpMethod": "POST", + "summary": "Start playback of media and specify the playbackId.", + "notes": "The media URI may be any of a number of URI's. Currently sound:, recording:, number:, digits:, characters:, and tone: URI's are supported. This operation creates a playback resource that can be used to control the playback of media (pause, rewind, fast forward, etc.)", + "nickname": "playWithId", + "responseClass": "Playback", + "parameters": [ + { + "name": "channelId", + "description": "Channel's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "playbackId", + "description": "Playback ID.", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "media", + "description": "Media URIs to play.", + "paramType": "query", + "required": true, + "allowMultiple": true, + "dataType": "string" + }, + { + "name": "lang", + "description": "For sounds, selects language for sound.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "offsetms", + "description": "Number of milliseconds to skip before playing. Only applies to the first URI if multiple media URIs are specified.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "int" + }, + { + "name": "skipms", + "description": "Number of milliseconds to skip for forward/reverse operations.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "int", + "defaultValue": 3000 + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Channel not found" + }, + { + "code": 409, + "reason": "Channel not in a Stasis application" + }, + { + "code": 412, + "reason": "Channel in invalid state" + } + ] + } + ] + }, + { + "path": "/channels/{channelId}/record", + "description": "Record audio from a channel", + "operations": [ + { + "httpMethod": "POST", + "summary": "Start a recording.", + "notes": "Record audio from a channel. Note that this will not capture audio sent to the channel. The bridge itself has a record feature if that's what you want.", + "nickname": "record", + "responseClass": "LiveRecording", + "parameters": [ + { + "name": "channelId", + "description": "Channel's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "name", + "description": "Recording's filename", + "paramType": "query", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "format", + "description": "Format to encode audio in", + "paramType": "query", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "maxDurationSeconds", + "description": "Maximum duration of the recording, in seconds. 0 for no limit", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "int", + "defaultValue": 0, + "allowableValues": { + "valueType": "RANGE", + "min": 0 + } + }, + { + "name": "maxSilenceSeconds", + "description": "Maximum duration of silence, in seconds. 0 for no limit", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "int", + "defaultValue": 0, + "allowableValues": { + "valueType": "RANGE", + "min": 0 + } + }, + { + "name": "ifExists", + "description": "Action to take if a recording with the same name already exists.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string", + "defaultValue": "fail", + "allowableValues": { + "valueType": "LIST", + "values": [ + "fail", + "overwrite", + "append" + ] + } + }, + { + "name": "beep", + "description": "Play beep when recording begins", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "boolean", + "defaultValue": false + }, + { + "name": "terminateOn", + "description": "DTMF input to terminate recording", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string", + "defaultValue": "none", + "allowableValues": { + "valueType": "LIST", + "values": [ + "none", + "any", + "*", + "#" + ] + } + } + ], + "errorResponses": [ + { + "code": 400, + "reason": "Invalid parameters" + }, + { + "code": 404, + "reason": "Channel not found" + }, + { + "code": 409, + "reason": "Channel is not in a Stasis application; the channel is currently bridged with other hcannels; A recording with the same name already exists on the system and can not be overwritten because it is in progress or ifExists=fail" + }, + { + "code": 422, + "reason": "The format specified is unknown on this system" + } + ] + } + ] + }, + { + "path": "/channels/{channelId}/variable", + "description": "Variables on a channel", + "operations": [ + { + "httpMethod": "GET", + "summary": "Get the value of a channel variable or function.", + "nickname": "getChannelVar", + "responseClass": "Variable", + "parameters": [ + { + "name": "channelId", + "description": "Channel's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "variable", + "description": "The channel variable or function to get", + "paramType": "query", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 400, + "reason": "Missing variable parameter." + }, + { + "code": 404, + "reason": "Channel or variable not found" + }, + { + "code": 409, + "reason": "Channel not in a Stasis application" + } + ] + }, + { + "httpMethod": "POST", + "summary": "Set the value of a channel variable or function.", + "nickname": "setChannelVar", + "responseClass": "void", + "parameters": [ + { + "name": "channelId", + "description": "Channel's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "variable", + "description": "The channel variable or function to set", + "paramType": "query", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "value", + "description": "The value to set the variable to", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 400, + "reason": "Missing variable parameter." + }, + { + "code": 404, + "reason": "Channel not found" + }, + { + "code": 409, + "reason": "Channel not in a Stasis application" + } + ] + } + ] + }, + { + "path": "/channels/{channelId}/snoop", + "description": "Snoop (spy/whisper) on a channel", + "operations": [ + { + "httpMethod": "POST", + "summary": "Start snooping.", + "notes": "Snoop (spy/whisper) on a specific channel.", + "nickname": "snoopChannel", + "responseClass": "Channel", + "parameters": [ + { + "name": "channelId", + "description": "Channel's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "spy", + "description": "Direction of audio to spy on", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string", + "defaultValue": "none", + "allowableValues": { + "valueType": "LIST", + "values": [ + "none", + "both", + "out", + "in" + ] + } + }, + { + "name": "whisper", + "description": "Direction of audio to whisper into", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string", + "defaultValue": "none", + "allowableValues": { + "valueType": "LIST", + "values": [ + "none", + "both", + "out", + "in" + ] + } + }, + { + "name": "app", + "description": "Application the snooping channel is placed into", + "paramType": "query", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "appArgs", + "description": "The application arguments to pass to the Stasis application", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "snoopId", + "description": "Unique ID to assign to snooping channel", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 400, + "reason": "Invalid parameters" + }, + { + "code": 404, + "reason": "Channel not found" + } + ] + } + ] + }, + { + "path": "/channels/{channelId}/snoop/{snoopId}", + "description": "Snoop (spy/whisper) on a channel", + "operations": [ + { + "httpMethod": "POST", + "summary": "Start snooping.", + "notes": "Snoop (spy/whisper) on a specific channel.", + "nickname": "snoopChannelWithId", + "responseClass": "Channel", + "parameters": [ + { + "name": "channelId", + "description": "Channel's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "snoopId", + "description": "Unique ID to assign to snooping channel", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "spy", + "description": "Direction of audio to spy on", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string", + "defaultValue": "none", + "allowableValues": { + "valueType": "LIST", + "values": [ + "none", + "both", + "out", + "in" + ] + } + }, + { + "name": "whisper", + "description": "Direction of audio to whisper into", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string", + "defaultValue": "none", + "allowableValues": { + "valueType": "LIST", + "values": [ + "none", + "both", + "out", + "in" + ] + } + }, + { + "name": "app", + "description": "Application the snooping channel is placed into", + "paramType": "query", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "appArgs", + "description": "The application arguments to pass to the Stasis application", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 400, + "reason": "Invalid parameters" + }, + { + "code": 404, + "reason": "Channel not found" + } + ] + } + ] + }, + { + "path": "/channels/{channelId}/dial", + "description": "Dial a channel", + "operations": [ + { + "httpMethod": "POST", + "summary": "Dial a created channel.", + "nickname": "dial", + "responseClass": "void", + "parameters": [ + { + "name": "channelId", + "description": "Channel's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "caller", + "description": "Channel ID of caller", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "timeout", + "description": "Dial timeout", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "int", + "defaultValue": 0, + "allowableValues": { + "valueType": "RANGE", + "min": 0 + } + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Channel cannot be found." + }, + { + "code": 409, + "reason": "Channel cannot be dialed." + } + ] + } + ] + }, + { + "path": "/channels/{channelId}/rtp_statistics", + "description": "Get RTP statistics information for RTP on a channel", + "operations": [ + { + "httpMethod": "GET", + "summary": "RTP stats on a channel.", + "nickname": "rtpstatistics", + "responseClass": "RTPstat", + "parameters": [ + { + "name": "channelId", + "description": "Channel's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Channel cannot be found." + } + ] + } + ] + }, + { + "path": "/channels/externalMedia", + "description": "Create a channel to an External Media source/sink.", + "operations": [ + { + "httpMethod": "POST", + "summary": "Start an External Media session.", + "notes": "Create a channel to an External Media source/sink.", + "nickname": "externalMedia", + "responseClass": "Channel", + "parameters": [ + { + "name": "channelId", + "description": "The unique id to assign the channel on creation.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "app", + "description": "Stasis Application to place channel into", + "paramType": "query", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "variables", + "description": "The \"variables\" key in the body object holds variable key/value pairs to set on the channel on creation. Other keys in the body object are interpreted as query parameters. Ex. { \"endpoint\": \"SIP/Alice\", \"variables\": { \"CALLERID(name)\": \"Alice\" } }", + "paramType": "body", + "required": false, + "dataType": "containers", + "allowMultiple": false + }, + { + "name": "external_host", + "description": "Hostname/ip:port of external host", + "paramType": "query", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "encapsulation", + "description": "Payload encapsulation protocol", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string", + "defaultValue": "rtp", + "allowableValues": { + "valueType": "LIST", + "values": [ + "rtp" + ] + } + }, + { + "name": "transport", + "description": "Transport protocol", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string", + "defaultValue": "udp", + "allowableValues": { + "valueType": "LIST", + "values": [ + "udp" + ] + } + }, + { + "name": "connection_type", + "description": "Connection type (client/server)", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string", + "defaultValue": "client", + "allowableValues": { + "valueType": "LIST", + "values": [ + "client" + ] + } + }, + { + "name": "format", + "description": "Format to encode audio in", + "paramType": "query", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "direction", + "description": "External media direction", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string", + "defaultValue": "both", + "allowableValues": { + "valueType": "LIST", + "values": [ + "both" + ] + } + } + ], + "errorResponses": [ + { + "code": 400, + "reason": "Invalid parameters" + }, + { + "code": 409, + "reason": "Channel is not in a Stasis application; Channel is already bridged" + } + ] + } + ] + } + ], + "models": { + "Dialed": { + "id": "Dialed", + "description": "Dialed channel information.", + "properties": {} + }, + "DialplanCEP": { + "id": "DialplanCEP", + "description": "Dialplan location (context/extension/priority)", + "properties": { + "context": { + "required": true, + "type": "string", + "description": "Context in the dialplan" + }, + "exten": { + "required": true, + "type": "string", + "description": "Extension in the dialplan" + }, + "priority": { + "required": true, + "type": "long", + "description": "Priority in the dialplan" + }, + "app_name": { + "required": true, + "type": "string", + "description": "Name of current dialplan application" + }, + "app_data": { + "required": true, + "type": "string", + "description": "Parameter of current dialplan application" + } + } + }, + "CallerID": { + "id": "CallerID", + "description": "Caller identification", + "properties": { + "name": { + "required": true, + "type": "string" + }, + "number": { + "required": true, + "type": "string" + } + } + }, + "RTPstat": { + "id": "RTPstat", + "description": "A statistics of a RTP.", + "properties": { + "txcount": { + "required": true, + "type": "int", + "description": "Number of packets transmitted." + }, + "rxcount": { + "required": true, + "type": "int", + "description": "Number of packets received." + }, + "txjitter": { + "required": false, + "type": "double", + "description": "Jitter on transmitted packets." + }, + "rxjitter": { + "required": false, + "type": "double", + "description": "Jitter on received packets." + }, + "remote_maxjitter": { + "required": false, + "type": "double", + "description": "Maximum jitter on remote side." + }, + "remote_minjitter": { + "required": false, + "type": "double", + "description": "Minimum jitter on remote side." + }, + "remote_normdevjitter": { + "required": false, + "type": "double", + "description": "Average jitter on remote side." + }, + "remote_stdevjitter": { + "required": false, + "type": "double", + "description": "Standard deviation jitter on remote side." + }, + "local_maxjitter": { + "required": false, + "type": "double", + "description": "Maximum jitter on local side." + }, + "local_minjitter": { + "required": false, + "type": "double", + "description": "Minimum jitter on local side." + }, + "local_normdevjitter": { + "required": false, + "type": "double", + "description": "Average jitter on local side." + }, + "local_stdevjitter": { + "required": false, + "type": "double", + "description": "Standard deviation jitter on local side." + }, + "txploss": { + "required": true, + "type": "int", + "description": "Number of transmitted packets lost." + }, + "rxploss": { + "required": true, + "type": "int", + "description": "Number of received packets lost." + }, + "remote_maxrxploss": { + "required": false, + "type": "double", + "description": "Maximum number of packets lost on remote side." + }, + "remote_minrxploss": { + "required": false, + "type": "double", + "description": "Minimum number of packets lost on remote side." + }, + "remote_normdevrxploss": { + "required": false, + "type": "double", + "description": "Average number of packets lost on remote side." + }, + "remote_stdevrxploss": { + "required": false, + "type": "double", + "description": "Standard deviation packets lost on remote side." + }, + "local_maxrxploss": { + "required": false, + "type": "double", + "description": "Maximum number of packets lost on local side." + }, + "local_minrxploss": { + "required": false, + "type": "double", + "description": "Minimum number of packets lost on local side." + }, + "local_normdevrxploss": { + "required": false, + "type": "double", + "description": "Average number of packets lost on local side." + }, + "local_stdevrxploss": { + "required": false, + "type": "double", + "description": "Standard deviation packets lost on local side." + }, + "rtt": { + "required": false, + "type": "double", + "description": "Total round trip time." + }, + "maxrtt": { + "required": false, + "type": "double", + "description": "Maximum round trip time." + }, + "minrtt": { + "required": false, + "type": "double", + "description": "Minimum round trip time." + }, + "normdevrtt": { + "required": false, + "type": "double", + "description": "Average round trip time." + }, + "stdevrtt": { + "required": false, + "type": "double", + "description": "Standard deviation round trip time." + }, + "local_ssrc": { + "required": true, + "type": "int", + "description": "Our SSRC." + }, + "remote_ssrc": { + "required": true, + "type": "int", + "description": "Their SSRC." + }, + "txoctetcount": { + "required": true, + "type": "int", + "description": "Number of octets transmitted." + }, + "rxoctetcount": { + "required": true, + "type": "int", + "description": "Number of octets received." + }, + "channel_uniqueid": { + "required": true, + "type": "string", + "description": "The Asterisk channel's unique ID that owns this instance." + } + } + }, + "Channel": { + "id": "Channel", + "description": "A specific communication connection between Asterisk and an Endpoint.", + "properties": { + "id": { + "required": true, + "type": "string", + "description": "Unique identifier of the channel.\n\nThis is the same as the Uniqueid field in AMI." + }, + "name": { + "required": true, + "type": "string", + "description": "Name of the channel (i.e. SIP/foo-0000a7e3)" + }, + "state": { + "required": true, + "type": "string", + "allowableValues": { + "valueType": "LIST", + "values": [ + "Down", + "Rsrved", + "OffHook", + "Dialing", + "Ring", + "Ringing", + "Up", + "Busy", + "Dialing Offhook", + "Pre-ring", + "Unknown" + ] + } + }, + "caller": { + "required": true, + "type": "CallerID" + }, + "connected": { + "required": true, + "type": "CallerID" + }, + "accountcode": { + "required": true, + "type": "string" + }, + "dialplan": { + "required": true, + "type": "DialplanCEP", + "description": "Current location in the dialplan" + }, + "creationtime": { + "required": true, + "type": "Date", + "description": "Timestamp when channel was created" + }, + "language": { + "required": true, + "type": "string", + "description": "The default spoken language" + }, + "channelvars": { + "required": false, + "type": "object", + "description": "Channel variables" + } + } + } + } +} diff --git a/codegen/src/main/resources/codegen-data/ari_5_1_1/deviceStates.json b/codegen/src/main/resources/codegen-data/ari_5_1_1/deviceStates.json new file mode 100644 index 00000000..bd389355 --- /dev/null +++ b/codegen/src/main/resources/codegen-data/ari_5_1_1/deviceStates.json @@ -0,0 +1,154 @@ +{ + "_copyright": "Copyright (C) 2012 - 2013, Digium, Inc.", + "_author": "Kevin Harwell ", + "_svn_revision": "$Revision$", + "apiVersion": "2.0.0", + "swaggerVersion": "1.1", + "basePath": "http://localhost:8088/ari", + "resourcePath": "/api-docs/deviceStates.{format}", + "requiresModules": [ + "res_stasis_device_state" + ], + "apis": [ + { + "path": "/deviceStates", + "description": "Device states", + "operations": [ + { + "httpMethod": "GET", + "summary": "List all ARI controlled device states.", + "nickname": "list", + "responseClass": "List[DeviceState]" + } + ] + }, + { + "path": "/deviceStates/{deviceName}", + "description": "Device state", + "operations": [ + { + "httpMethod": "GET", + "summary": "Retrieve the current state of a device.", + "nickname": "get", + "responseClass": "DeviceState", + "parameters": [ + { + "name": "deviceName", + "description": "Name of the device", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ] + }, + { + "httpMethod": "PUT", + "summary": "Change the state of a device controlled by ARI. (Note - implicitly creates the device state).", + "nickname": "update", + "responseClass": "void", + "parameters": [ + { + "name": "deviceName", + "description": "Name of the device", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "deviceState", + "description": "Device state value", + "paramType": "query", + "required": true, + "allowMultiple": false, + "dataType": "string", + "allowableValues": { + "valueType": "LIST", + "values": [ + "NOT_INUSE", + "INUSE", + "BUSY", + "INVALID", + "UNAVAILABLE", + "RINGING", + "RINGINUSE", + "ONHOLD" + ] + } + + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Device name is missing" + }, + { + "code": 409, + "reason": "Uncontrolled device specified" + } + ] + }, + { + "httpMethod": "DELETE", + "summary": "Destroy a device-state controlled by ARI.", + "nickname": "delete", + "responseClass": "void", + "parameters": [ + { + "name": "deviceName", + "description": "Name of the device", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Device name is missing" + }, + { + "code": 409, + "reason": "Uncontrolled device specified" + } + ] + } + ] + } + ], + "models": { + "DeviceState": { + "id": "DeviceState", + "description": "Represents the state of a device.", + "properties": { + "name": { + "type": "string", + "description": "Name of the device.", + "required": true + }, + "state": { + "type": "string", + "description": "Device's state", + "required": true, + "allowableValues": { + "valueType": "LIST", + "values": [ + "UNKNOWN", + "NOT_INUSE", + "INUSE", + "BUSY", + "INVALID", + "UNAVAILABLE", + "RINGING", + "RINGINUSE", + "ONHOLD" + ] + } + } + } + } + } +} diff --git a/codegen/src/main/resources/codegen-data/ari_5_1_1/endpoints.json b/codegen/src/main/resources/codegen-data/ari_5_1_1/endpoints.json new file mode 100644 index 00000000..1f77d370 --- /dev/null +++ b/codegen/src/main/resources/codegen-data/ari_5_1_1/endpoints.json @@ -0,0 +1,263 @@ +{ + "_copyright": "Copyright (C) 2012 - 2013, Digium, Inc.", + "_author": "David M. Lee, II ", + "_svn_revision": "$Revision$", + "apiVersion": "2.0.0", + "swaggerVersion": "1.1", + "basePath": "http://localhost:8088/ari", + "resourcePath": "/api-docs/endpoints.{format}", + "apis": [ + { + "path": "/endpoints", + "description": "Asterisk endpoints", + "operations": [ + { + "httpMethod": "GET", + "summary": "List all endpoints.", + "nickname": "list", + "responseClass": "List[Endpoint]" + } + ] + }, + { + "path": "/endpoints/sendMessage", + "description": "Send a message to some technology URI or endpoint.", + "operations": [ + { + "httpMethod": "PUT", + "summary": "Send a message to some technology URI or endpoint.", + "nickname": "sendMessage", + "responseClass": "void", + "parameters": [ + { + "name": "to", + "description": "The endpoint resource or technology specific URI to send the message to. Valid resources are sip, pjsip, and xmpp.", + "paramType": "query", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "from", + "description": "The endpoint resource or technology specific identity to send this message from. Valid resources are sip, pjsip, and xmpp.", + "paramType": "query", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "body", + "description": "The body of the message", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "variables", + "descriptioni": "The \"variables\" key in the body object holds technology specific key/value pairs to append to the message. These can be interpreted and used by the various resource types; for example, pjsip and sip resource types will add the key/value pairs as SIP headers,", + "paramType": "body", + "required": false, + "dataType": "containers", + "allowMultiple": false + } + ], + "errorResponses": [ + { + "code": 400, + "reason": "Invalid parameters for sending a message." + }, + { + "code": 404, + "reason": "Endpoint not found" + } + ] + } + ] + }, + { + "path": "/endpoints/{tech}", + "description": "Asterisk endpoints", + "operations": [ + { + "httpMethod": "GET", + "summary": "List available endoints for a given endpoint technology.", + "nickname": "listByTech", + "responseClass": "List[Endpoint]", + "parameters": [ + { + "name": "tech", + "description": "Technology of the endpoints (sip,iax2,...)", + "paramType": "path", + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Endpoints not found" + } + ] + } + ] + }, + { + "path": "/endpoints/{tech}/{resource}", + "description": "Single endpoint", + "operations": [ + { + "httpMethod": "GET", + "summary": "Details for an endpoint.", + "nickname": "get", + "responseClass": "Endpoint", + "parameters": [ + { + "name": "tech", + "description": "Technology of the endpoint", + "paramType": "path", + "dataType": "string" + }, + { + "name": "resource", + "description": "ID of the endpoint", + "paramType": "path", + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 400, + "reason": "Invalid parameters for sending a message." + }, + { + "code": 404, + "reason": "Endpoints not found" + } + ] + } + ] + }, + { + "path": "/endpoints/{tech}/{resource}/sendMessage", + "description": "Send a message to some endpoint in a technology.", + "operations": [ + { + "httpMethod": "PUT", + "summary": "Send a message to some endpoint in a technology.", + "nickname": "sendMessageToEndpoint", + "responseClass": "void", + "parameters": [ + { + "name": "tech", + "description": "Technology of the endpoint", + "paramType": "path", + "dataType": "string" + }, + { + "name": "resource", + "description": "ID of the endpoint", + "paramType": "path", + "dataType": "string" + }, + { + "name": "from", + "description": "The endpoint resource or technology specific identity to send this message from. Valid resources are sip, pjsip, and xmpp.", + "paramType": "query", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "body", + "description": "The body of the message", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "variables", + "descriptioni": "The \"variables\" key in the body object holds technology specific key/value pairs to append to the message. These can be interpreted and used by the various resource types; for example, pjsip and sip resource types will add the key/value pairs as SIP headers,", + "paramType": "body", + "required": false, + "dataType": "containers", + "allowMultiple": false + } + ], + "errorResponses": [ + { + "code": 400, + "reason": "Invalid parameters for sending a message." + }, + { + "code": 404, + "reason": "Endpoint not found" + } + ] + } + ] + } + ], + "models": { + "Endpoint": { + "id": "Endpoint", + "description": "An external device that may offer/accept calls to/from Asterisk.\n\nUnlike most resources, which have a single unique identifier, an endpoint is uniquely identified by the technology/resource pair.", + "properties": { + "technology": { + "type": "string", + "description": "Technology of the endpoint", + "required": true + }, + "resource": { + "type": "string", + "description": "Identifier of the endpoint, specific to the given technology.", + "required": true + }, + "state": { + "type": "string", + "description": "Endpoint's state", + "required": false, + "allowableValues": { + "valueType": "LIST", + "values": [ + "unknown", + "offline", + "online" + ] + } + }, + "channel_ids": { + "type": "List[string]", + "description": "Id's of channels associated with this endpoint", + "required": true + } + } + }, + "TextMessage": { + "id": "TextMessage", + "description": "A text message.", + "properties": { + "from": { + "type": "string", + "description": "A technology specific URI specifying the source of the message. For sip and pjsip technologies, any SIP URI can be specified. For xmpp, the URI must correspond to the client connection being used to send the message.", + "required": true + }, + "to": { + "type": "string", + "description": "A technology specific URI specifying the destination of the message. Valid technologies include sip, pjsip, and xmp. The destination of a message should be an endpoint.", + "required": true + }, + "body": { + "type": "string", + "description": "The text of the message.", + "required": true + }, + "variables": { + "type": "object", + "description": "Technology specific key/value pairs (JSON object) associated with the message.", + "required": false + } + } + } + } +} diff --git a/codegen/src/main/resources/codegen-data/ari_5_1_1/events.json b/codegen/src/main/resources/codegen-data/ari_5_1_1/events.json new file mode 100644 index 00000000..c9822f6c --- /dev/null +++ b/codegen/src/main/resources/codegen-data/ari_5_1_1/events.json @@ -0,0 +1,918 @@ +{ + "_copyright": "Copyright (C) 2012 - 2013, Digium, Inc.", + "_author": "David M. Lee, II ", + "_svn_revision": "$Revision$", + "apiVersion": "2.0.0", + "swaggerVersion": "1.2", + "basePath": "http://localhost:8088/ari", + "resourcePath": "/api-docs/events.{format}", + "requiresModules": [ + "res_http_websocket" + ], + "apis": [ + { + "path": "/events", + "description": "Events from Asterisk to applications", + "operations": [ + { + "httpMethod": "GET", + "upgrade": "websocket", + "websocketProtocol": "ari", + "summary": "WebSocket connection for events.", + "nickname": "eventWebsocket", + "responseClass": "Message", + "parameters": [ + { + "name": "app", + "description": "Applications to subscribe to.", + "paramType": "query", + "required": true, + "allowMultiple": true, + "dataType": "string" + }, + { + "name": "subscribeAll", + "description": "Subscribe to all Asterisk events. If provided, the applications listed will be subscribed to all events, effectively disabling the application specific subscriptions. Default is 'false'.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "boolean" + } + ] + } + ] + }, + { + "path": "/events/user/{eventName}", + "description": "Stasis application user events", + "operations": [ + { + "httpMethod": "POST", + "summary": "Generate a user event.", + "nickname": "userEvent", + "responseClass": "void", + "parameters": [ + { + "name": "eventName", + "description": "Event name", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "application", + "description": "The name of the application that will receive this event", + "paramType": "query", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "source", + "description": "URI for event source (channel:{channelId}, bridge:{bridgeId}, endpoint:{tech}/{resource}, deviceState:{deviceName}", + "paramType": "query", + "required": false, + "allowMultiple": true, + "dataType": "string" + }, + { + "name": "variables", + "description": "The \"variables\" key in the body object holds custom key/value pairs to add to the user event. Ex. { \"variables\": { \"key\": \"value\" } }", + "paramType": "body", + "required": false, + "allowMultiple": false, + "dataType": "containers" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Application does not exist." + }, + { + "code": 422, + "reason": "Event source not found." + }, + { + "code": 400, + "reason": "Invalid even tsource URI or userevent data." + } + ] + } + ] + } + ], + "models": { + "Message": { + "id": "Message", + "description": "Base type for errors and events", + "discriminator": "type", + "properties": { + "type": { + "type": "string", + "required": true, + "description": "Indicates the type of this message." + }, + "asterisk_id": { + "type": "string", + "required": false, + "description": "The unique ID for the Asterisk instance that raised this event." + } + }, + "subTypes": [ + "MissingParams", + "Event" + ] + }, + "MissingParams": { + "id": "MissingParams", + "description": "Error event sent when required params are missing.", + "properties": { + "params": { + "required": true, + "type": "List[string]", + "description": "A list of the missing parameters" + } + } + }, + "Event": { + "id": "Event", + "description": "Base type for asynchronous events from Asterisk.", + "properties": { + "application": { + "type": "string", + "description": "Name of the application receiving the event.", + "required": true + }, + "timestamp": { + "type": "Date", + "description": "Time at which this event was created.", + "required": true + } + }, + "subTypes": [ + "DeviceStateChanged", + "PlaybackStarted", + "PlaybackContinuing", + "PlaybackFinished", + "RecordingStarted", + "RecordingFinished", + "RecordingFailed", + "ApplicationMoveFailed", + "ApplicationReplaced", + "BridgeCreated", + "BridgeDestroyed", + "BridgeMerged", + "BridgeBlindTransfer", + "BridgeAttendedTransfer", + "BridgeVideoSourceChanged", + "ChannelCreated", + "ChannelDestroyed", + "ChannelEnteredBridge", + "ChannelLeftBridge", + "ChannelStateChange", + "ChannelDtmfReceived", + "ChannelDialplan", + "ChannelCallerId", + "ChannelUserevent", + "ChannelHangupRequest", + "ChannelVarset", + "ChannelTalkingStarted", + "ChannelTalkingFinished", + "ChannelHold", + "ChannelUnhold", + "ContactStatusChange", + "EndpointStateChange", + "Dial", + "StasisEnd", + "StasisStart", + "TextMessageReceived", + "ChannelConnectedLine", + "PeerStatusChange" + ] + }, + "ContactInfo": { + "id": "ContactInfo", + "description": "Detailed information about a contact on an endpoint.", + "properties": { + "uri": { + "type": "string", + "description": "The location of the contact.", + "required": true + }, + "contact_status": { + "type": "string", + "description": "The current status of the contact.", + "required": true, + "allowableValues": { + "valueType": "LIST", + "values": [ + "Unreachable", + "Reachable", + "Unknown", + "NonQualified", + "Removed" + ] + } + }, + "aor": { + "type": "string", + "description": "The Address of Record this contact belongs to.", + "required": true + }, + "roundtrip_usec": { + "type": "string", + "description": "Current round trip time, in microseconds, for the contact.", + "required": false + } + } + }, + "Peer": { + "id": "Peer", + "description": "Detailed information about a remote peer that communicates with Asterisk.", + "properties": { + "peer_status": { + "type": "string", + "description": "The current state of the peer. Note that the values of the status are dependent on the underlying peer technology.", + "required": true + }, + "cause": { + "type": "string", + "description": "An optional reason associated with the change in peer_status.", + "required": false + }, + "address": { + "type": "string", + "description": "The IP address of the peer.", + "required": false + }, + "port": { + "type": "string", + "description": "The port of the peer.", + "required": false + }, + "time": { + "type": "string", + "description": "The last known time the peer was contacted.", + "required": false + } + } + }, + "DeviceStateChanged": { + "id": "DeviceStateChanged", + "description": "Notification that a device state has changed.", + "properties": { + "device_state": { + "type": "DeviceState", + "description": "Device state object", + "required": true + } + } + }, + "PlaybackStarted": { + "id": "PlaybackStarted", + "description": "Event showing the start of a media playback operation.", + "properties": { + "playback": { + "type": "Playback", + "description": "Playback control object", + "required": true + } + } + }, + "PlaybackContinuing": { + "id": "PlaybackContinuing", + "description": "Event showing the continuation of a media playback operation from one media URI to the next in the list.", + "properties": { + "playback": { + "type": "Playback", + "description": "Playback control object", + "required": true + } + } + }, + "PlaybackFinished": { + "id": "PlaybackFinished", + "description": "Event showing the completion of a media playback operation.", + "properties": { + "playback": { + "type": "Playback", + "description": "Playback control object", + "required": true + } + } + }, + "RecordingStarted": { + "id": "RecordingStarted", + "description": "Event showing the start of a recording operation.", + "properties": { + "recording": { + "type": "LiveRecording", + "description": "Recording control object", + "required": true + } + } + }, + "RecordingFinished": { + "id": "RecordingFinished", + "description": "Event showing the completion of a recording operation.", + "properties": { + "recording": { + "type": "LiveRecording", + "description": "Recording control object", + "required": true + } + } + }, + "RecordingFailed": { + "id": "RecordingFailed", + "description": "Event showing failure of a recording operation.", + "properties": { + "recording": { + "type": "LiveRecording", + "description": "Recording control object", + "required": true + } + } + }, + "ApplicationMoveFailed": { + "id": "ApplicationMoveFailed", + "description": "Notification that trying to move a channel to another Stasis application failed.", + "properties": { + "channel": { + "required": true, + "type": "Channel" + }, + "destination": { + "required": true, + "type": "string" + }, + "args": { + "required": true, + "type": "List[string]", + "description": "Arguments to the application" + } + } + }, + "ApplicationReplaced": { + "id": "ApplicationReplaced", + "description": "Notification that another WebSocket has taken over for an application.\n\nAn application may only be subscribed to by a single WebSocket at a time. If multiple WebSockets attempt to subscribe to the same application, the newer WebSocket wins, and the older one receives this event.", + "properties": {} + }, + "BridgeCreated": { + "id": "BridgeCreated", + "description": "Notification that a bridge has been created.", + "properties": { + "bridge": { + "required": true, + "type": "Bridge" + } + } + }, + "BridgeDestroyed": { + "id": "BridgeDestroyed", + "description": "Notification that a bridge has been destroyed.", + "properties": { + "bridge": { + "required": true, + "type": "Bridge" + } + } + }, + "BridgeMerged": { + "id": "BridgeMerged", + "description": "Notification that one bridge has merged into another.", + "properties": { + "bridge": { + "required": true, + "type": "Bridge" + }, + "bridge_from": { + "required": true, + "type": "Bridge" + } + } + }, + "BridgeVideoSourceChanged": { + "id": "BridgeVideoSourceChanged", + "description": "Notification that the source of video in a bridge has changed.", + "properties": { + "bridge": { + "required": true, + "type": "Bridge" + }, + "old_video_source_id": { + "required": false, + "type": "string" + } + } + }, + "BridgeBlindTransfer": { + "id": "BridgeBlindTransfer", + "description": "Notification that a blind transfer has occurred.", + "properties": { + "channel": { + "description": "The channel performing the blind transfer", + "required": true, + "type": "Channel" + }, + "replace_channel": { + "description": "The channel that is replacing transferer when the transferee(s) can not be transferred directly", + "required": false, + "type": "Channel" + }, + "transferee": { + "description": "The channel that is being transferred", + "required": false, + "type": "Channel" + }, + "exten": { + "description": "The extension transferred to", + "required": true, + "type": "string" + }, + "context": { + "description": "The context transferred to", + "required": true, + "type": "string" + }, + "result": { + "description": "The result of the transfer attempt", + "required": true, + "type": "string" + }, + "is_external": { + "description": "Whether the transfer was externally initiated or not", + "required": true, + "type": "boolean" + }, + "bridge": { + "description": "The bridge being transferred", + "type": "Bridge" + } + } + }, + "BridgeAttendedTransfer": { + "id": "BridgeAttendedTransfer", + "description": "Notification that an attended transfer has occurred.", + "properties": { + "transferer_first_leg": { + "description": "First leg of the transferer", + "required": true, + "type": "Channel" + }, + "transferer_second_leg": { + "description": "Second leg of the transferer", + "required": true, + "type": "Channel" + }, + "replace_channel": { + "description": "The channel that is replacing transferer_first_leg in the swap", + "required": false, + "type": "Channel" + }, + "transferee": { + "description": "The channel that is being transferred", + "required": false, + "type": "Channel" + }, + "transfer_target": { + "description": "The channel that is being transferred to", + "required": false, + "type": "Channel" + }, + "result": { + "description": "The result of the transfer attempt", + "required": true, + "type": "string" + }, + "is_external": { + "description": "Whether the transfer was externally initiated or not", + "required": true, + "type": "boolean" + }, + "transferer_first_leg_bridge": { + "description": "Bridge the transferer first leg is in", + "type": "Bridge" + }, + "transferer_second_leg_bridge": { + "description": "Bridge the transferer second leg is in", + "type": "Bridge" + }, + "destination_type": { + "description": "How the transfer was accomplished", + "required": true, + "type": "string" + }, + "destination_bridge": { + "description": "Bridge that survived the merge result", + "type": "string" + }, + "destination_application": { + "description": "Application that has been transferred into", + "type": "string" + }, + "destination_link_first_leg": { + "description": "First leg of a link transfer result", + "type": "Channel" + }, + "destination_link_second_leg": { + "description": "Second leg of a link transfer result", + "type": "Channel" + }, + "destination_threeway_channel": { + "description": "Transferer channel that survived the threeway result", + "type": "Channel" + }, + "destination_threeway_bridge": { + "description": "Bridge that survived the threeway result", + "type": "Bridge" + } + } + }, + "ChannelCreated": { + "id": "ChannelCreated", + "description": "Notification that a channel has been created.", + "properties": { + "channel": { + "required": true, + "type": "Channel" + } + } + }, + "ChannelDestroyed": { + "id": "ChannelDestroyed", + "description": "Notification that a channel has been destroyed.", + "properties": { + "cause": { + "required": true, + "description": "Integer representation of the cause of the hangup", + "type": "int" + }, + "cause_txt": { + "required": true, + "description": "Text representation of the cause of the hangup", + "type": "string" + }, + "channel": { + "required": true, + "type": "Channel" + } + } + }, + "ChannelEnteredBridge": { + "id": "ChannelEnteredBridge", + "description": "Notification that a channel has entered a bridge.", + "properties": { + "bridge": { + "required": true, + "type": "Bridge" + }, + "channel": { + "type": "Channel" + } + } + }, + "ChannelLeftBridge": { + "id": "ChannelLeftBridge", + "description": "Notification that a channel has left a bridge.", + "properties": { + "bridge": { + "required": true, + "type": "Bridge" + }, + "channel": { + "required": true, + "type": "Channel" + } + } + }, + "ChannelStateChange": { + "id": "ChannelStateChange", + "description": "Notification of a channel's state change.", + "properties": { + "channel": { + "required": true, + "type": "Channel" + } + } + }, + "ChannelDtmfReceived": { + "id": "ChannelDtmfReceived", + "description": "DTMF received on a channel.\n\nThis event is sent when the DTMF ends. There is no notification about the start of DTMF", + "properties": { + "digit": { + "required": true, + "type": "string", + "description": "DTMF digit received (0-9, A-E, # or *)" + }, + "duration_ms": { + "required": true, + "type": "int", + "description": "Number of milliseconds DTMF was received" + }, + "channel": { + "required": true, + "type": "Channel", + "description": "The channel on which DTMF was received" + } + } + }, + "ChannelDialplan": { + "id": "ChannelDialplan", + "description": "Channel changed location in the dialplan.", + "properties": { + "channel": { + "required": true, + "type": "Channel", + "description": "The channel that changed dialplan location." + }, + "dialplan_app": { + "required": true, + "type": "string", + "description": "The application about to be executed." + }, + "dialplan_app_data": { + "required": true, + "type": "string", + "description": "The data to be passed to the application." + } + } + }, + "ChannelCallerId": { + "id": "ChannelCallerId", + "description": "Channel changed Caller ID.", + "properties": { + "caller_presentation": { + "required": true, + "type": "int", + "description": "The integer representation of the Caller Presentation value." + }, + "caller_presentation_txt": { + "required": true, + "type": "string", + "description": "The text representation of the Caller Presentation value." + }, + "channel": { + "required": true, + "type": "Channel", + "description": "The channel that changed Caller ID." + } + } + }, + "ChannelUserevent": { + "id": "ChannelUserevent", + "description": "User-generated event with additional user-defined fields in the object.", + "properties": { + "eventname": { + "required": true, + "type": "string", + "description": "The name of the user event." + }, + "channel": { + "required": false, + "type": "Channel", + "description": "A channel that is signaled with the user event." + }, + "bridge": { + "required": false, + "type": "Bridge", + "description": "A bridge that is signaled with the user event." + }, + "endpoint": { + "required": false, + "type": "Endpoint", + "description": "A endpoint that is signaled with the user event." + }, + "userevent": { + "required": true, + "type": "object", + "description": "Custom Userevent data" + } + } + }, + "ChannelHangupRequest": { + "id": "ChannelHangupRequest", + "description": "A hangup was requested on the channel.", + "properties": { + "cause": { + "type": "int", + "description": "Integer representation of the cause of the hangup." + }, + "soft": { + "type": "boolean", + "description": "Whether the hangup request was a soft hangup request." + }, + "channel": { + "required": true, + "type": "Channel", + "description": "The channel on which the hangup was requested." + } + } + }, + "ChannelVarset": { + "id": "ChannelVarset", + "description": "Channel variable changed.", + "properties": { + "variable": { + "required": true, + "type": "string", + "description": "The variable that changed." + }, + "value": { + "required": true, + "type": "string", + "description": "The new value of the variable." + }, + "channel": { + "required": false, + "type": "Channel", + "description": "The channel on which the variable was set.\n\nIf missing, the variable is a global variable." + } + } + }, + "ChannelHold": { + "id": "ChannelHold", + "description": "A channel initiated a media hold.", + "properties": { + "channel": { + "required": true, + "type": "Channel", + "description": "The channel that initiated the hold event." + }, + "musicclass": { + "required": false, + "type": "string", + "description": "The music on hold class that the initiator requested." + } + } + }, + "ChannelUnhold": { + "id": "ChannelUnhold", + "description": "A channel initiated a media unhold.", + "properties": { + "channel": { + "required": true, + "type": "Channel", + "description": "The channel that initiated the unhold event." + } + } + }, + "ChannelTalkingStarted": { + "id": "ChannelTalkingStarted", + "description": "Talking was detected on the channel.", + "properties": { + "channel": { + "required": true, + "type": "Channel", + "description": "The channel on which talking started." + } + } + }, + "ChannelTalkingFinished": { + "id": "ChannelTalkingFinished", + "description": "Talking is no longer detected on the channel.", + "properties": { + "channel": { + "required": true, + "type": "Channel", + "description": "The channel on which talking completed." + }, + "duration": { + "required": true, + "type": "int", + "description": "The length of time, in milliseconds, that talking was detected on the channel" + } + } + }, + "ContactStatusChange": { + "id": "ContactStatusChange", + "description": "The state of a contact on an endpoint has changed.", + "properties": { + "endpoint": { + "required": true, + "type": "Endpoint" + }, + "contact_info": { + "required": true, + "type": "ContactInfo" + } + } + }, + "PeerStatusChange": { + "id": "PeerStatusChange", + "description": "The state of a peer associated with an endpoint has changed.", + "properties": { + "endpoint": { + "required": true, + "type": "Endpoint" + }, + "peer": { + "required": true, + "type": "Peer" + } + } + }, + "EndpointStateChange": { + "id": "EndpointStateChange", + "description": "Endpoint state changed.", + "properties": { + "endpoint": { + "required": true, + "type": "Endpoint" + } + } + }, + "Dial": { + "id": "Dial", + "description": "Dialing state has changed.", + "properties": { + "caller": { + "required": false, + "type": "Channel", + "description": "The calling channel." + }, + "peer": { + "required": true, + "type": "Channel", + "description": "The dialed channel." + }, + "forward": { + "required": false, + "type": "string", + "description": "Forwarding target requested by the original dialed channel." + }, + "forwarded": { + "required": false, + "type": "Channel", + "description": "Channel that the caller has been forwarded to." + }, + "dialstring": { + "required": false, + "type": "string", + "description": "The dial string for calling the peer channel." + }, + "dialstatus": { + "required": true, + "type": "string", + "description": "Current status of the dialing attempt to the peer." + } + } + }, + "StasisEnd": { + "id": "StasisEnd", + "description": "Notification that a channel has left a Stasis application.", + "properties": { + "channel": { + "required": true, + "type": "Channel" + } + } + }, + "StasisStart": { + "id": "StasisStart", + "description": "Notification that a channel has entered a Stasis application.", + "properties": { + "args": { + "required": true, + "type": "List[string]", + "description": "Arguments to the application" + }, + "channel": { + "required": true, + "type": "Channel" + }, + "replace_channel": { + "required": false, + "type": "Channel" + } + } + }, + "TextMessageReceived": { + "id": "TextMessageReceived", + "description": "A text message was received from an endpoint.", + "properties": { + "message": { + "required": true, + "type": "TextMessage" + }, + "endpoint": { + "required": false, + "type": "Endpoint" + } + } + }, + "ChannelConnectedLine": { + "id": "ChannelConnectedLine", + "description": "Channel changed Connected Line.", + "properties": { + "channel": { + "required": true, + "type": "Channel", + "description": "The channel whose connected line has changed." + } + } + } + } +} diff --git a/codegen/src/main/resources/codegen-data/ari_5_1_1/mailboxes.json b/codegen/src/main/resources/codegen-data/ari_5_1_1/mailboxes.json new file mode 100644 index 00000000..8f5941b8 --- /dev/null +++ b/codegen/src/main/resources/codegen-data/ari_5_1_1/mailboxes.json @@ -0,0 +1,137 @@ +{ + "_copyright": "Copyright (C) 2013, Digium, Inc.", + "_author": "Jonathan Rose ", + "_svn_revision": "$Revision$", + "apiVersion": "2.0.0", + "swaggerVersion": "1.1", + "basePath": "http://localhost:8088/ari", + "resourcePath": "/api-docs/mailboxes.{format}", + "requiresModules": [ + "res_stasis_mailbox" + ], + "apis": [ + { + "path": "/mailboxes", + "description": "Mailboxes", + "operations": [ + { + "httpMethod": "GET", + "summary": "List all mailboxes.", + "nickname": "list", + "responseClass": "List[Mailbox]" + } + ] + }, + { + "path": "/mailboxes/{mailboxName}", + "description": "Mailbox state", + "operations": [ + { + "httpMethod": "GET", + "summary": "Retrieve the current state of a mailbox.", + "nickname": "get", + "responseClass": "Mailbox", + "parameters": [ + { + "name": "mailboxName", + "description": "Name of the mailbox", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Mailbox not found" + } + ] + }, + { + "httpMethod": "PUT", + "summary": "Change the state of a mailbox. (Note - implicitly creates the mailbox).", + "nickname": "update", + "responseClass": "void", + "parameters": [ + { + "name": "mailboxName", + "description": "Name of the mailbox", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "oldMessages", + "description": "Count of old messages in the mailbox", + "paramType": "query", + "required": true, + "allowMultiple": false, + "dataType": "int" + }, + { + "name": "newMessages", + "description": "Count of new messages in the mailbox", + "paramType": "query", + "required": true, + "allowMultiple": false, + "dataType": "int" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Mailbox not found" + } + ] + }, + { + "httpMethod": "DELETE", + "summary": "Destroy a mailbox.", + "nickname": "delete", + "responseClass": "void", + "parameters": [ + { + "name": "mailboxName", + "description": "Name of the mailbox", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Mailbox not found" + } + ] + } + ] + } + ], + "models": { + "Mailbox": { + "id": "Mailbox", + "description": "Represents the state of a mailbox.", + "properties": { + "name": { + "type": "string", + "description": "Name of the mailbox.", + "required": true + }, + "old_messages": { + "type": "int", + "description": "Count of old messages in the mailbox.", + "required": true + }, + "new_messages": { + "type": "int", + "description": "Count of new messages in the mailbox.", + "required": true + } + } + } + } +} diff --git a/codegen/src/main/resources/codegen-data/ari_5_1_1/playbacks.json b/codegen/src/main/resources/codegen-data/ari_5_1_1/playbacks.json new file mode 100644 index 00000000..a78dcae7 --- /dev/null +++ b/codegen/src/main/resources/codegen-data/ari_5_1_1/playbacks.json @@ -0,0 +1,164 @@ +{ + "_copyright": "Copyright (C) 2012 - 2013, Digium, Inc.", + "_author": "David M. Lee, II ", + "_svn_revision": "$Revision$", + "apiVersion": "2.0.0", + "swaggerVersion": "1.1", + "basePath": "http://localhost:8088/ari", + "resourcePath": "/api-docs/playbacks.{format}", + "requiresModules": [ + "res_stasis_playback" + ], + "apis": [ + { + "path": "/playbacks/{playbackId}", + "description": "Control object for a playback operation.", + "operations": [ + { + "httpMethod": "GET", + "summary": "Get a playback's details.", + "nickname": "get", + "responseClass": "Playback", + "parameters": [ + { + "name": "playbackId", + "description": "Playback's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "The playback cannot be found" + } + ] + }, + { + "httpMethod": "DELETE", + "summary": "Stop a playback.", + "nickname": "stop", + "responseClass": "void", + "parameters": [ + { + "name": "playbackId", + "description": "Playback's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "The playback cannot be found" + } + ] + } + ] + }, + { + "path": "/playbacks/{playbackId}/control", + "description": "Control object for a playback operation.", + "operations": [ + { + "httpMethod": "POST", + "summary": "Control a playback.", + "nickname": "control", + "responseClass": "void", + "parameters": [ + { + "name": "playbackId", + "description": "Playback's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "operation", + "description": "Operation to perform on the playback.", + "paramType": "query", + "required": true, + "allowMultiple": false, + "dataType": "string", + "allowableValues": { + "valueType": "LIST", + "values": [ + "restart", + "pause", + "unpause", + "reverse", + "forward" + ] + } + } + ], + "errorResponses": [ + { + "code": 400, + "reason": "The provided operation parameter was invalid" + }, + { + "code": 404, + "reason": "The playback cannot be found" + }, + { + "code": 409, + "reason": "The operation cannot be performed in the playback's current state" + } +] + } + ] + } + ], + "models": { + "Playback": { + "id": "Playback", + "description": "Object representing the playback of media to a channel", + "properties": { + "id": { + "type": "string", + "description": "ID for this playback operation", + "required": true + }, + "media_uri": { + "type": "string", + "description": "The URI for the media currently being played back.", + "required": true + }, + "next_media_uri": { + "type": "string", + "description": "If a list of URIs is being played, the next media URI to be played back.", + "required": false + }, + "target_uri": { + "type": "string", + "description": "URI for the channel or bridge to play the media on", + "required": true + }, + "language": { + "type": "string", + "description": "For media types that support multiple languages, the language requested for playback." + }, + "state": { + "type": "string", + "description": "Current state of the playback operation.", + "required": true, + "allowableValues": { + "valueType": "LIST", + "values": [ + "queued", + "playing", + "continuing", + "done" + ] + } + } + } + } + } +} diff --git a/codegen/src/main/resources/codegen-data/ari_5_1_1/recordings.json b/codegen/src/main/resources/codegen-data/ari_5_1_1/recordings.json new file mode 100644 index 00000000..6ffd6d8e --- /dev/null +++ b/codegen/src/main/resources/codegen-data/ari_5_1_1/recordings.json @@ -0,0 +1,413 @@ +{ + "_copyright": "Copyright (C) 2012 - 2013, Digium, Inc.", + "_author": "David M. Lee, II ", + "_svn_revision": "$Revision$", + "apiVersion": "2.0.0", + "swaggerVersion": "1.1", + "basePath": "http://localhost:8088/ari", + "resourcePath": "/api-docs/recordings.{format}", + "requiresModules": [ + "res_stasis_recording" + ], + "apis": [ + { + "path": "/recordings/stored", + "description": "Recordings", + "operations": [ + { + "httpMethod": "GET", + "summary": "List recordings that are complete.", + "nickname": "listStored", + "responseClass": "List[StoredRecording]" + } + ] + }, + { + "path": "/recordings/stored/{recordingName}", + "description": "Individual recording", + "operations": [ + { + "httpMethod": "GET", + "summary": "Get a stored recording's details.", + "nickname": "getStored", + "responseClass": "StoredRecording", + "parameters": [ + { + "name": "recordingName", + "description": "The name of the recording", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Recording not found" + } + ] + }, + { + "httpMethod": "DELETE", + "summary": "Delete a stored recording.", + "nickname": "deleteStored", + "responseClass": "void", + "parameters": [ + { + "name": "recordingName", + "description": "The name of the recording", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Recording not found" + } + ] + } + ] + }, + { + "path": "/recordings/stored/{recordingName}/file", + "description": "The actual file associated with the stored recording", + "operations": [ + { + "httpMethod": "GET", + "summary": "Get the file associated with the stored recording.", + "nickname": "getStoredFile", + "responseClass": "binary", + "parameters": [ + { + "name": "recordingName", + "description": "The name of the recording", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 403, + "reason": "The recording file could not be opened" + }, + { + "code": 404, + "reason": "Recording not found" + } + ] + } + ] + }, + { + "path": "/recordings/stored/{recordingName}/copy", + "description": "Copy an individual recording", + "operations": [ + { + "httpMethod": "POST", + "summary": "Copy a stored recording.", + "nickname": "copyStored", + "responseClass": "StoredRecording", + "parameters": [ + { + "name": "recordingName", + "description": "The name of the recording to copy", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "destinationRecordingName", + "description": "The destination name of the recording", + "paramType": "query", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Recording not found" + }, + { + "code": 409, + "reason": "A recording with the same name already exists on the system" + } + ] + } + ] + }, + { + "path": "/recordings/live/{recordingName}", + "description": "A recording that is in progress", + "operations": [ + { + "httpMethod": "GET", + "summary": "List live recordings.", + "nickname": "getLive", + "responseClass": "LiveRecording", + "parameters": [ + { + "name": "recordingName", + "description": "The name of the recording", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Recording not found" + } + ] + }, + { + "httpMethod": "DELETE", + "summary": "Stop a live recording and discard it.", + "nickname": "cancel", + "responseClass": "void", + "parameters": [ + { + "name": "recordingName", + "description": "The name of the recording", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Recording not found" + } + ] + } + ] + }, + { + "path": "/recordings/live/{recordingName}/stop", + "operations": [ + { + "httpMethod": "POST", + "summary": "Stop a live recording and store it.", + "nickname": "stop", + "responseClass": "void", + "parameters": [ + { + "name": "recordingName", + "description": "The name of the recording", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Recording not found" + } + ] + } + ] + }, + { + "path": "/recordings/live/{recordingName}/pause", + "operations": [ + { + "httpMethod": "POST", + "summary": "Pause a live recording.", + "notes": "Pausing a recording suspends silence detection, which will be restarted when the recording is unpaused. Paused time is not included in the accounting for maxDurationSeconds.", + "nickname": "pause", + "responseClass": "void", + "parameters": [ + { + "name": "recordingName", + "description": "The name of the recording", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Recording not found" + }, + { + "code": 409, + "reason": "Recording not in session" + } + ] + }, + { + "httpMethod": "DELETE", + "summary": "Unpause a live recording.", + "nickname": "unpause", + "responseClass": "void", + "parameters": [ + { + "name": "recordingName", + "description": "The name of the recording", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Recording not found" + }, + { + "code": 409, + "reason": "Recording not in session" + } + ] + } + ] + }, + { + "path": "/recordings/live/{recordingName}/mute", + "operations": [ + { + "httpMethod": "POST", + "summary": "Mute a live recording.", + "notes": "Muting a recording suspends silence detection, which will be restarted when the recording is unmuted.", + "nickname": "mute", + "responseClass": "void", + "parameters": [ + { + "name": "recordingName", + "description": "The name of the recording", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Recording not found" + }, + { + "code": 409, + "reason": "Recording not in session" + } + ] + }, + { + "httpMethod": "DELETE", + "summary": "Unmute a live recording.", + "nickname": "unmute", + "responseClass": "void", + "parameters": [ + { + "name": "recordingName", + "description": "The name of the recording", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Recording not found" + }, + { + "code": 409, + "reason": "Recording not in session" + } + ] + } + ] + } + ], + "models": { + "StoredRecording": { + "id": "StoredRecording", + "description": "A past recording that may be played back.", + "properties": { + "name": { + "required": true, + "type": "string" + }, + "format": { + "required": true, + "type": "string" + } + } + }, + "LiveRecording": { + "id": "LiveRecording", + "description": "A recording that is in progress", + "properties": { + "name": { + "required": true, + "type": "string", + "description": "Base name for the recording" + }, + "format": { + "required": true, + "type": "string", + "description": "Recording format (wav, gsm, etc.)" + }, + "target_uri": { + "required": true, + "type": "string", + "description": "URI for the channel or bridge being recorded" + }, + "state": { + "required": true, + "type": "string", + "allowableValues": { + "valueType": "LIST", + "values": [ + "queued", + "recording", + "paused", + "done", + "failed", + "canceled" + ] + } + }, + "duration": { + "required": false, + "type": "int", + "description": "Duration in seconds of the recording" + }, + "talking_duration": { + "required": false, + "type": "int", + "description": "Duration of talking, in seconds, detected in the recording. This is only available if the recording was initiated with a non-zero maxSilenceSeconds." + }, + "silence_duration": { + "required": false, + "type": "int", + "description": "Duration of silence, in seconds, detected in the recording. This is only available if the recording was initiated with a non-zero maxSilenceSeconds." + }, + "cause": { + "required": false, + "type": "string", + "description": "Cause for recording failure if failed" + } + } + } + } +} diff --git a/codegen/src/main/resources/codegen-data/ari_5_1_1/sounds.json b/codegen/src/main/resources/codegen-data/ari_5_1_1/sounds.json new file mode 100644 index 00000000..8fbe1c57 --- /dev/null +++ b/codegen/src/main/resources/codegen-data/ari_5_1_1/sounds.json @@ -0,0 +1,99 @@ +{ + "_copyright": "Copyright (C) 2012 - 2013, Digium, Inc.", + "_author": "David M. Lee, II ", + "_svn_revision": "$Revision$", + "apiVersion": "2.0.0", + "swaggerVersion": "1.1", + "basePath": "http://localhost:8088/ari", + "resourcePath": "/api-docs/sounds.{format}", + "apis": [ + { + "path": "/sounds", + "description": "Sounds", + "operations": [ + { + "httpMethod": "GET", + "summary": "List all sounds.", + "nickname": "list", + "responseClass": "List[Sound]", + "parameters": [ + { + "name": "lang", + "description": "Lookup sound for a specific language.", + "paramType": "query", + "dataType": "string", + "required": false + }, + { + "name": "format", + "description": "Lookup sound in a specific format.", + "paramType": "query", + "dataType": "string", + "required": false, + "__note": "core show translation can show translation paths between formats, along with relative costs. so this could be just installed format, or we could follow that for transcoded formats." + } + ] + } + ] + }, + { + "path": "/sounds/{soundId}", + "description": "Individual sound", + "operations": [ + { + "httpMethod": "GET", + "summary": "Get a sound's details.", + "nickname": "get", + "responseClass": "Sound", + "parameters": [ + { + "name": "soundId", + "description": "Sound's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ] + } + ] + } + ], + "models": { + "FormatLangPair": { + "id": "FormatLangPair", + "description": "Identifies the format and language of a sound file", + "properties": { + "language": { + "required": true, + "type": "string" + }, + "format": { + "required": true, + "type": "string" + } + } + }, + "Sound": { + "id": "Sound", + "description": "A media file that may be played back.", + "properties": { + "id": { + "required": true, + "description": "Sound's identifier.", + "type": "string" + }, + "text": { + "required": false, + "description": "Text description of the sound, usually the words spoken.", + "type": "string" + }, + "formats": { + "required": true, + "description": "The formats and languages in which this sound is available.", + "type": "List[FormatLangPair]" + } + } + } + } +} From 7e2136baf55940bed3815bb2d3e37211e607e371 Mon Sep 17 00:00:00 2001 From: Graham Brown Date: Wed, 23 Sep 2020 15:02:16 +0200 Subject: [PATCH 161/220] add 7.0.0 --- .../codegen-data/ari_7_0_0/applications.json | 223 ++ .../codegen-data/ari_7_0_0/asterisk.json | 725 ++++++ .../codegen-data/ari_7_0_0/bridges.json | 774 ++++++ .../codegen-data/ari_7_0_0/channels.json | 2189 +++++++++++++++++ .../codegen-data/ari_7_0_0/deviceStates.json | 154 ++ .../codegen-data/ari_7_0_0/endpoints.json | 263 ++ .../codegen-data/ari_7_0_0/events.json | 918 +++++++ .../codegen-data/ari_7_0_0/mailboxes.json | 137 ++ .../codegen-data/ari_7_0_0/playbacks.json | 164 ++ .../codegen-data/ari_7_0_0/recordings.json | 413 ++++ .../codegen-data/ari_7_0_0/sounds.json | 99 + 11 files changed, 6059 insertions(+) create mode 100644 codegen/src/main/resources/codegen-data/ari_7_0_0/applications.json create mode 100644 codegen/src/main/resources/codegen-data/ari_7_0_0/asterisk.json create mode 100644 codegen/src/main/resources/codegen-data/ari_7_0_0/bridges.json create mode 100644 codegen/src/main/resources/codegen-data/ari_7_0_0/channels.json create mode 100644 codegen/src/main/resources/codegen-data/ari_7_0_0/deviceStates.json create mode 100644 codegen/src/main/resources/codegen-data/ari_7_0_0/endpoints.json create mode 100644 codegen/src/main/resources/codegen-data/ari_7_0_0/events.json create mode 100644 codegen/src/main/resources/codegen-data/ari_7_0_0/mailboxes.json create mode 100644 codegen/src/main/resources/codegen-data/ari_7_0_0/playbacks.json create mode 100644 codegen/src/main/resources/codegen-data/ari_7_0_0/recordings.json create mode 100644 codegen/src/main/resources/codegen-data/ari_7_0_0/sounds.json diff --git a/codegen/src/main/resources/codegen-data/ari_7_0_0/applications.json b/codegen/src/main/resources/codegen-data/ari_7_0_0/applications.json new file mode 100644 index 00000000..09c5cd5c --- /dev/null +++ b/codegen/src/main/resources/codegen-data/ari_7_0_0/applications.json @@ -0,0 +1,223 @@ +{ + "_copyright": "Copyright (C) 2013, Digium, Inc.", + "_author": "David M. Lee, II ", + "_svn_revision": "$Revision$", + "apiVersion": "2.0.0", + "swaggerVersion": "1.1", + "basePath": "http://localhost:8088/ari", + "resourcePath": "/api-docs/applications.{format}", + "apis": [ + { + "path": "/applications", + "description": "Stasis applications", + "operations": [ + { + "httpMethod": "GET", + "summary": "List all applications.", + "nickname": "list", + "responseClass": "List[Application]" + } + ] + }, + { + "path": "/applications/{applicationName}", + "description": "Stasis application", + "operations": [ + { + "httpMethod": "GET", + "summary": "Get details of an application.", + "nickname": "get", + "responseClass": "Application", + "parameters": [ + { + "name": "applicationName", + "description": "Application's name", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Application does not exist." + } + ] + } + ] + }, + { + "path": "/applications/{applicationName}/subscription", + "description": "Stasis application", + "operations": [ + { + "httpMethod": "POST", + "summary": "Subscribe an application to a event source.", + "notes": "Returns the state of the application after the subscriptions have changed", + "nickname": "subscribe", + "responseClass": "Application", + "parameters": [ + { + "name": "applicationName", + "description": "Application's name", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "eventSource", + "description": "URI for event source (channel:{channelId}, bridge:{bridgeId}, endpoint:{tech}[/{resource}], deviceState:{deviceName}", + "paramType": "query", + "required": true, + "allowMultiple": true, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 400, + "reason": "Missing parameter." + }, + { + "code": 404, + "reason": "Application does not exist." + }, + { + "code": 422, + "reason": "Event source does not exist." + } + ] + }, + { + "httpMethod": "DELETE", + "summary": "Unsubscribe an application from an event source.", + "notes": "Returns the state of the application after the subscriptions have changed", + "nickname": "unsubscribe", + "responseClass": "Application", + "parameters": [ + { + "name": "applicationName", + "description": "Application's name", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "eventSource", + "description": "URI for event source (channel:{channelId}, bridge:{bridgeId}, endpoint:{tech}[/{resource}], deviceState:{deviceName}", + "paramType": "query", + "required": true, + "allowMultiple": true, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 400, + "reason": "Missing parameter; event source scheme not recognized." + }, + { + "code": 404, + "reason": "Application does not exist." + }, + { + "code": 409, + "reason": "Application not subscribed to event source." + }, + { + "code": 422, + "reason": "Event source does not exist." + } + ] + } + ] + }, + { + "path": "/applications/{applicationName}/eventFilter", + "description": "Stasis application", + "operations": [ + { + "httpMethod": "PUT", + "summary": "Filter application events types.", + "notes": "Allowed and/or disallowed event type filtering can be done. The body (parameter) should specify a JSON key/value object that describes the type of event filtering needed. One, or both of the following keys can be designated:

\"allowed\" - Specifies an allowed list of event types
\"disallowed\" - Specifies a disallowed list of event types

Further, each of those key's value should be a JSON array that holds zero, or more JSON key/value objects. Each of these objects must contain the following key with an associated value:

\"type\" - The type name of the event to filter

The value must be the string name (case sensitive) of the event type that needs filtering. For example:

{ \"allowed\": [ { \"type\": \"StasisStart\" }, { \"type\": \"StasisEnd\" } ] }

As this specifies only an allowed list, then only those two event type messages are sent to the application. No other event messages are sent.

The following rules apply:

* If the body is empty, both the allowed and disallowed filters are set empty.
* If both list types are given then both are set to their respective values (note, specifying an empty array for a given type sets that type to empty).
* If only one list type is given then only that type is set. The other type is not updated.
* An empty \"allowed\" list means all events are allowed.
* An empty \"disallowed\" list means no events are disallowed.
* Disallowed events take precedence over allowed events if the event type is specified in both lists.", + "nickname": "filter", + "responseClass": "Application", + "parameters": [ + { + "name": "applicationName", + "description": "Application's name", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "filter", + "description": "Specify which event types to allow/disallow", + "paramType": "body", + "required": false, + "dataType": "object", + "allowMultiple": false + } + ], + "errorResponses": [ + { + "code": 400, + "reason": "Bad request." + }, + { + "code": 404, + "reason": "Application does not exist." + } + ] + } + ] + } + ], + "models": { + "Application": { + "id": "Application", + "description": "Details of a Stasis application", + "properties": { + "name": { + "type": "string", + "description": "Name of this application", + "required": true + }, + "channel_ids": { + "type": "List[string]", + "description": "Id's for channels subscribed to.", + "required": true + }, + "bridge_ids": { + "type": "List[string]", + "description": "Id's for bridges subscribed to.", + "required": true + }, + "endpoint_ids": { + "type": "List[string]", + "description": "{tech}/{resource} for endpoints subscribed to.", + "required": true + }, + "device_names": { + "type": "List[string]", + "description": "Names of the devices subscribed to.", + "required": true + }, + "events_allowed": { + "type": "List[object]", + "description": "Event types sent to the application.", + "required": true + }, + "events_disallowed": { + "type": "List[object]", + "description": "Event types not sent to the application.", + "required": true + } + } + } + } +} diff --git a/codegen/src/main/resources/codegen-data/ari_7_0_0/asterisk.json b/codegen/src/main/resources/codegen-data/ari_7_0_0/asterisk.json new file mode 100644 index 00000000..841e6cd8 --- /dev/null +++ b/codegen/src/main/resources/codegen-data/ari_7_0_0/asterisk.json @@ -0,0 +1,725 @@ +{ + "_copyright": "Copyright (C) 2012 - 2013, Digium, Inc.", + "_author": "David M. Lee, II ", + "_svn_revision": "$Revision$", + "apiVersion": "2.0.0", + "swaggerVersion": "1.1", + "basePath": "http://localhost:8088/ari", + "resourcePath": "/api-docs/asterisk.{format}", + "apis": [ + { + "path": "/asterisk/config/dynamic/{configClass}/{objectType}/{id}", + "description": "Asterisk dynamic configuration", + "operations": [ + { + "httpMethod": "GET", + "summary": "Retrieve a dynamic configuration object.", + "nickname": "getObject", + "responseClass": "List[ConfigTuple]", + "parameters": [ + { + "name": "configClass", + "description": "The configuration class containing dynamic configuration objects.", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "objectType", + "description": "The type of configuration object to retrieve.", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "id", + "description": "The unique identifier of the object to retrieve.", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "{configClass|objectType|id} not found" + } + ] + }, + { + "httpMethod": "PUT", + "summary": "Create or update a dynamic configuration object.", + "nickname": "updateObject", + "responseClass": "List[ConfigTuple]", + "parameters": [ + { + "name": "configClass", + "description": "The configuration class containing dynamic configuration objects.", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "objectType", + "description": "The type of configuration object to create or update.", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "id", + "description": "The unique identifier of the object to create or update.", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "fields", + "description": "The body object should have a value that is a list of ConfigTuples, which provide the fields to update. Ex. [ { \"attribute\": \"directmedia\", \"value\": \"false\" } ]", + "paramType": "body", + "required": false, + "dataType": "containers", + "allowMultiple": false + } + ], + "errorResponses": [ + { + "code": 400, + "reason": "Bad request body" + }, + { + "code": 403, + "reason": "Could not create or update object" + }, + { + "code": 404, + "reason": "{configClass|objectType} not found" + } + ] + }, + { + "httpMethod": "DELETE", + "summary": "Delete a dynamic configuration object.", + "nickname": "deleteObject", + "responseClass": "void", + "parameters": [ + { + "name": "configClass", + "description": "The configuration class containing dynamic configuration objects.", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "objectType", + "description": "The type of configuration object to delete.", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "id", + "description": "The unique identifier of the object to delete.", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 403, + "reason": "Could not delete object" + }, + { + "code": 404, + "reason": "{configClass|objectType|id} not found" + } + ] + } + ] + }, + { + "path": "/asterisk/info", + "description": "Asterisk system information (similar to core show settings)", + "operations": [ + { + "httpMethod": "GET", + "summary": "Gets Asterisk system information.", + "nickname": "getInfo", + "responseClass": "AsteriskInfo", + "parameters": [ + { + "name": "only", + "description": "Filter information returned", + "paramType": "query", + "required": false, + "allowMultiple": true, + "dataType": "string", + "allowableValues": { + "valueType": "LIST", + "values": [ + "build", + "system", + "config", + "status" + ] + } + } + ] + } + ] + }, + { + "path": "/asterisk/ping", + "description": "Asterisk ping", + "operations": [ + { + "httpMethod": "GET", + "summary": "Response pong message.", + "nickname": "ping", + "responseClass": "AsteriskPing" + } + ] + }, + { + "path": "/asterisk/modules", + "description": "Asterisk modules", + "operations": [ + { + "httpMethod": "GET", + "summary": "List Asterisk modules.", + "nickname": "listModules", + "responseClass": "List[Module]" + } + ] + }, + { + "path": "/asterisk/modules/{moduleName}", + "description": "Asterisk module", + "operations": [ + { + "httpMethod": "GET", + "summary": "Get Asterisk module information.", + "nickname": "getModule", + "responseClass": "Module", + "parameters": [ + { + "name": "moduleName", + "description": "Module's name", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Module could not be found in running modules." + }, + { + "code": 409, + "reason": "Module information could not be retrieved." + } + ] + }, + { + "httpMethod": "POST", + "summary": "Load an Asterisk module.", + "nickname": "loadModule", + "responseClass": "void", + "parameters": [ + { + "name": "moduleName", + "description": "Module's name", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 409, + "reason": "Module could not be loaded." + } + ] + }, + { + "httpMethod": "DELETE", + "summary": "Unload an Asterisk module.", + "nickname": "unloadModule", + "responseClass": "void", + "parameters": [ + { + "name": "moduleName", + "description": "Module's name", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Module not found in running modules." + }, + { + "code": 409, + "reason": "Module could not be unloaded." + } + ] + }, + { + "httpMethod": "PUT", + "summary": "Reload an Asterisk module.", + "nickname": "reloadModule", + "responseClass": "void", + "parameters": [ + { + "name": "moduleName", + "description": "Module's name", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Module not found in running modules." + }, + { + "code": 409, + "reason": "Module could not be reloaded." + } + ] + } + ] + }, + { + "path": "/asterisk/logging", + "description": "Asterisk log channels", + "operations": [ + { + "httpMethod": "GET", + "summary": "Gets Asterisk log channel information.", + "nickname": "listLogChannels", + "responseClass": "List[LogChannel]" + } + ] + }, + { + "path": "/asterisk/logging/{logChannelName}", + "description": "Asterisk log channel", + "operations": [ + { + "httpMethod": "POST", + "summary": "Adds a log channel.", + "nickname": "addLog", + "responseClass": "void", + "parameters": [ + { + "name": "logChannelName", + "description": "The log channel to add", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "configuration", + "description": "levels of the log channel", + "paramType": "query", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 400, + "reason": "Bad request body" + }, + { + "code": 409, + "reason": "Log channel could not be created." + } + ] + }, + { + "httpMethod": "DELETE", + "summary": "Deletes a log channel.", + "nickname": "deleteLog", + "responseClass": "void", + "parameters": [ + { + "name": "logChannelName", + "description": "Log channels name", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Log channel does not exist." + } + ] + } + ] + }, + { + "path": "/asterisk/logging/{logChannelName}/rotate", + "description": "Asterisk log channel", + "operations": [ + { + "httpMethod": "PUT", + "summary": "Rotates a log channel.", + "nickname": "rotateLog", + "responseClass": "void", + "parameters": [ + { + "name": "logChannelName", + "description": "Log channel's name", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Log channel does not exist." + } + ] + } + ] + }, + { + "path": "/asterisk/variable", + "description": "Global variables", + "operations": [ + { + "httpMethod": "GET", + "summary": "Get the value of a global variable.", + "nickname": "getGlobalVar", + "responseClass": "Variable", + "parameters": [ + { + "name": "variable", + "description": "The variable to get", + "paramType": "query", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 400, + "reason": "Missing variable parameter." + } + ] + }, + { + "httpMethod": "POST", + "summary": "Set the value of a global variable.", + "nickname": "setGlobalVar", + "responseClass": "void", + "parameters": [ + { + "name": "variable", + "description": "The variable to set", + "paramType": "query", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "value", + "description": "The value to set the variable to", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 400, + "reason": "Missing variable parameter." + } + ] + } + ] + } + ], + "models": { + "BuildInfo": { + "id": "BuildInfo", + "description": "Info about how Asterisk was built", + "properties": { + "os": { + "required": true, + "type": "string", + "description": "OS Asterisk was built on." + }, + "kernel": { + "required": true, + "type": "string", + "description": "Kernel version Asterisk was built on." + }, + "options": { + "required": true, + "type": "string", + "description": "Compile time options, or empty string if default." + }, + "machine": { + "required": true, + "type": "string", + "description": "Machine architecture (x86_64, i686, ppc, etc.)" + }, + "date": { + "required": true, + "type": "string", + "description": "Date and time when Asterisk was built." + }, + "user": { + "required": true, + "type": "string", + "description": "Username that build Asterisk" + } + } + }, + "SystemInfo": { + "id": "SystemInfo", + "description": "Info about Asterisk", + "properties": { + "version": { + "required": true, + "type": "string", + "description": "Asterisk version." + }, + "entity_id": { + "required": true, + "type": "string", + "description": "" + } + } + }, + "SetId": { + "id": "SetId", + "description": "Effective user/group id", + "properties": { + "user": { + "required": true, + "type": "string", + "description": "Effective user id." + }, + "group": { + "required": true, + "type": "string", + "description": "Effective group id." + } + } + }, + "ConfigInfo": { + "id": "ConfigInfo", + "description": "Info about Asterisk configuration", + "properties": { + "name": { + "required": true, + "type": "string", + "description": "Asterisk system name." + }, + "default_language": { + "required": true, + "type": "string", + "description": "Default language for media playback." + }, + "max_channels": { + "required": false, + "type": "int", + "description": "Maximum number of simultaneous channels." + }, + "max_open_files": { + "required": false, + "type": "int", + "description": "Maximum number of open file handles (files, sockets)." + }, + "max_load": { + "required": false, + "type": "double", + "description": "Maximum load avg on system." + }, + "setid": { + "required": true, + "type": "SetId", + "description": "Effective user/group id for running Asterisk." + } + } + }, + "StatusInfo": { + "id": "StatusInfo", + "description": "Info about Asterisk status", + "properties": { + "startup_time": { + "required": true, + "type": "Date", + "description": "Time when Asterisk was started." + }, + "last_reload_time": { + "required": true, + "type": "Date", + "description": "Time when Asterisk was last reloaded." + } + } + }, + "AsteriskInfo": { + "id": "AsteriskInfo", + "description": "Asterisk system information", + "properties": { + "build": { + "required": false, + "type": "BuildInfo", + "description": "Info about how Asterisk was built" + }, + "system": { + "required": false, + "type": "SystemInfo", + "description": "Info about the system running Asterisk" + }, + "config": { + "required": false, + "type": "ConfigInfo", + "description": "Info about Asterisk configuration" + }, + "status": { + "required": false, + "type": "StatusInfo", + "description": "Info about Asterisk status" + } + } + }, + "AsteriskPing": { + "id": "AsteriskPing", + "description": "Asterisk ping information", + "properties": { + "asterisk_id": { + "required": true, + "type": "string", + "description": "Asterisk id info" + }, + "ping": { + "required": true, + "type": "string", + "description": "Always string value is pong" + }, + "timestamp": { + "required": true, + "type": "string", + "description": "The timestamp string of request received time" + } + } + }, + "Module": { + "id": "Module", + "description": "Details of an Asterisk module", + "properties": { + "name": { + "type": "string", + "description": "The name of this module", + "required": true + }, + "description": { + "type": "string", + "description": "The description of this module", + "required": true + }, + "use_count": { + "type": "int", + "description": "The number of times this module is being used", + "required": true + }, + "status": { + "type": "string", + "description": "The running status of this module", + "required": true + }, + "support_level": { + "type": "string", + "description": "The support state of this module", + "required": true + } + } + }, + "LogChannel": { + "id": "LogChannel", + "description": "Details of an Asterisk log channel", + "properties": { + "channel": { + "type": "string", + "description": "The log channel path", + "required": true + }, + "type": { + "type": "string", + "description": "Types of logs for the log channel", + "required": true + }, + "status": { + "type": "string", + "description": "Whether or not a log type is enabled", + "required": true + }, + "configuration": { + "type": "string", + "description": "The various log levels", + "required": true + } + } + }, + "Variable": { + "id": "Variable", + "description": "The value of a channel variable", + "properties": { + "value": { + "required": true, + "type": "string", + "description": "The value of the variable requested" + } + } + }, + "ConfigTuple": { + "id": "ConfigTuple", + "description": "A key/value pair that makes up part of a configuration object.", + "properties": { + "attribute": { + "required": true, + "type": "string", + "description": "A configuration object attribute." + }, + "value": { + "required": true, + "type": "string", + "description": "The value for the attribute." + } + } + } + } +} diff --git a/codegen/src/main/resources/codegen-data/ari_7_0_0/bridges.json b/codegen/src/main/resources/codegen-data/ari_7_0_0/bridges.json new file mode 100644 index 00000000..a4651379 --- /dev/null +++ b/codegen/src/main/resources/codegen-data/ari_7_0_0/bridges.json @@ -0,0 +1,774 @@ +{ + "_copyright": "Copyright (C) 2012 - 2013, Digium, Inc.", + "_author": "David M. Lee, II ", + "_svn_revision": "$Revision$", + "apiVersion": "2.0.0", + "swaggerVersion": "1.1", + "basePath": "http://localhost:8088/ari", + "resourcePath": "/api-docs/bridges.{format}", + "requiresModules": [ + "res_stasis_recording", + "res_stasis_playback" + ], + "apis": [ + { + "path": "/bridges", + "description": "Active bridges", + "operations": [ + { + "httpMethod": "GET", + "summary": "List all active bridges in Asterisk.", + "nickname": "list", + "responseClass": "List[Bridge]" + }, + { + "httpMethod": "POST", + "summary": "Create a new bridge.", + "notes": "This bridge persists until it has been shut down, or Asterisk has been shut down.", + "nickname": "create", + "responseClass": "Bridge", + "parameters": [ + { + "name": "type", + "description": "Comma separated list of bridge type attributes (mixing, holding, dtmf_events, proxy_media, video_sfu).", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "bridgeId", + "description": "Unique ID to give to the bridge being created.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "name", + "description": "Name to give to the bridge being created.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + } + ] + } + ] + }, + { + "path": "/bridges/{bridgeId}", + "description": "Individual bridge", + "operations": [ + { + "httpMethod": "POST", + "summary": "Create a new bridge or updates an existing one.", + "notes": "This bridge persists until it has been shut down, or Asterisk has been shut down.", + "nickname": "createWithId", + "responseClass": "Bridge", + "parameters": [ + { + "name": "type", + "description": "Comma separated list of bridge type attributes (mixing, holding, dtmf_events, proxy_media, video_sfu) to set.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "bridgeId", + "description": "Unique ID to give to the bridge being created.", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "name", + "description": "Set the name of the bridge.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + } + ] + }, + { + "httpMethod": "GET", + "summary": "Get bridge details.", + "nickname": "get", + "responseClass": "Bridge", + "parameters": [ + { + "name": "bridgeId", + "description": "Bridge's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Bridge not found" + } + ] + }, + { + "httpMethod": "DELETE", + "summary": "Shut down a bridge.", + "notes": "If any channels are in this bridge, they will be removed and resume whatever they were doing beforehand.", + "nickname": "destroy", + "responseClass": "void", + "parameters": [ + { + "name": "bridgeId", + "description": "Bridge's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Bridge not found" + } + ] + } + ] + }, + { + "path": "/bridges/{bridgeId}/addChannel", + "description": "Add a channel to a bridge", + "operations": [ + { + "httpMethod": "POST", + "summary": "Add a channel to a bridge.", + "nickname": "addChannel", + "responseClass": "void", + "parameters": [ + { + "name": "bridgeId", + "description": "Bridge's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "channel", + "description": "Ids of channels to add to bridge", + "paramType": "query", + "required": true, + "allowMultiple": true, + "dataType": "string" + }, + { + "name": "role", + "description": "Channel's role in the bridge", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "absorbDTMF", + "description": "Absorb DTMF coming from this channel, preventing it to pass through to the bridge", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "boolean", + "defaultValue": false + }, + { + "name": "mute", + "description": "Mute audio from this channel, preventing it to pass through to the bridge", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "boolean", + "defaultValue": false + }, + { + "name": "inhibitConnectedLineUpdates", + "description": "Do not present the identity of the newly connected channel to other bridge members", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "boolean", + "defaultValue": false + } + ], + "errorResponses": [ + { + "code": 400, + "reason": "Channel not found" + }, + { + "code": 404, + "reason": "Bridge not found" + }, + { + "code": 409, + "reason": "Bridge not in Stasis application; Channel currently recording" + }, + { + "code": 422, + "reason": "Channel not in Stasis application" + } + ] + } + ] + }, + { + "path": "/bridges/{bridgeId}/removeChannel", + "description": "Remove a channel from a bridge", + "operations": [ + { + "httpMethod": "POST", + "summary": "Remove a channel from a bridge.", + "nickname": "removeChannel", + "responseClass": "void", + "parameters": [ + { + "name": "bridgeId", + "description": "Bridge's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "channel", + "description": "Ids of channels to remove from bridge", + "paramType": "query", + "required": true, + "allowMultiple": true, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 400, + "reason": "Channel not found" + }, + { + "code": 404, + "reason": "Bridge not found" + }, + { + "code": 409, + "reason": "Bridge not in Stasis application" + }, + { + "code": 422, + "reason": "Channel not in this bridge" + } + ] + } + ] + }, + { + "path": "/bridges/{bridgeId}/videoSource/{channelId}", + "description": "Set a channel as the video source in a multi-party bridge", + "operations": [ + { + "httpMethod": "POST", + "summary": "Set a channel as the video source in a multi-party mixing bridge. This operation has no effect on bridges with two or fewer participants.", + "nickname": "setVideoSource", + "responseClass": "void", + "parameters": [ + { + "name": "bridgeId", + "description": "Bridge's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "channelId", + "description": "Channel's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Bridge or Channel not found" + }, + { + "code": 409, + "reason": "Channel not in Stasis application" + }, + { + "code": 422, + "reason": "Channel not in this Bridge" + } + ] + } + ] + }, + { + "path": "/bridges/{bridgeId}/videoSource", + "description": "Removes any explicit video source", + "operations": [ + { + "httpMethod": "DELETE", + "summary": "Removes any explicit video source in a multi-party mixing bridge. This operation has no effect on bridges with two or fewer participants. When no explicit video source is set, talk detection will be used to determine the active video stream.", + "nickname": "clearVideoSource", + "responseClass": "void", + "parameters": [ + { + "name": "bridgeId", + "description": "Bridge's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Bridge not found" + } + ] + } + ] + }, + { + "path": "/bridges/{bridgeId}/moh", + "description": "Play music on hold to a bridge", + "operations": [ + { + "httpMethod": "POST", + "summary": "Play music on hold to a bridge or change the MOH class that is playing.", + "nickname": "startMoh", + "responseClass": "void", + "parameters": [ + { + "name": "bridgeId", + "description": "Bridge's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "mohClass", + "description": "Channel's id", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Bridge not found" + }, + { + "code": 409, + "reason": "Bridge not in Stasis application" + } + ] + }, + { + "httpMethod": "DELETE", + "summary": "Stop playing music on hold to a bridge.", + "notes": "This will only stop music on hold being played via POST bridges/{bridgeId}/moh.", + "nickname": "stopMoh", + "responseClass": "void", + "parameters": [ + { + "name": "bridgeId", + "description": "Bridge's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Bridge not found" + }, + { + "code": 409, + "reason": "Bridge not in Stasis application" + } + ] + } + ] + }, + { + "path": "/bridges/{bridgeId}/play", + "description": "Play media to the participants of a bridge", + "operations": [ + { + "httpMethod": "POST", + "summary": "Start playback of media on a bridge.", + "notes": "The media URI may be any of a number of URI's. Currently sound:, recording:, number:, digits:, characters:, and tone: URI's are supported. This operation creates a playback resource that can be used to control the playback of media (pause, rewind, fast forward, etc.)", + "nickname": "play", + "responseClass": "Playback", + "parameters": [ + { + "name": "bridgeId", + "description": "Bridge's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "media", + "description": "Media URIs to play.", + "paramType": "query", + "required": true, + "allowMultiple": true, + "dataType": "string" + }, + { + "name": "lang", + "description": "For sounds, selects language for sound.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "offsetms", + "description": "Number of milliseconds to skip before playing. Only applies to the first URI if multiple media URIs are specified.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "int", + "defaultValue": 0, + "allowableValues": { + "valueType": "RANGE", + "min": 0 + } + + }, + { + "name": "skipms", + "description": "Number of milliseconds to skip for forward/reverse operations.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "int", + "defaultValue": 3000, + "allowableValues": { + "valueType": "RANGE", + "min": 0 + } + }, + { + "name": "playbackId", + "description": "Playback Id.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Bridge not found" + }, + { + "code": 409, + "reason": "Bridge not in a Stasis application" + } + ] + } + ] + }, + { + "path": "/bridges/{bridgeId}/play/{playbackId}", + "description": "Play media to a bridge", + "operations": [ + { + "httpMethod": "POST", + "summary": "Start playback of media on a bridge.", + "notes": "The media URI may be any of a number of URI's. Currently sound:, recording:, number:, digits:, characters:, and tone: URI's are supported. This operation creates a playback resource that can be used to control the playback of media (pause, rewind, fast forward, etc.)", + "nickname": "playWithId", + "responseClass": "Playback", + "parameters": [ + { + "name": "bridgeId", + "description": "Bridge's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "playbackId", + "description": "Playback ID.", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "media", + "description": "Media URIs to play.", + "paramType": "query", + "required": true, + "allowMultiple": true, + "dataType": "string" + }, + { + "name": "lang", + "description": "For sounds, selects language for sound.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "offsetms", + "description": "Number of milliseconds to skip before playing. Only applies to the first URI if multiple media URIs are specified.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "int", + "defaultValue": 0, + "allowableValues": { + "valueType": "RANGE", + "min": 0 + } + }, + { + "name": "skipms", + "description": "Number of milliseconds to skip for forward/reverse operations.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "int", + "defaultValue": 3000, + "allowableValues": { + "valueType": "RANGE", + "min": 0 + } + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Bridge not found" + }, + { + "code": 409, + "reason": "Bridge not in a Stasis application" + } + ] + + } + ] + }, + { + "path": "/bridges/{bridgeId}/record", + "description": "Record audio on a bridge", + "operations": [ + { + "httpMethod": "POST", + "summary": "Start a recording.", + "notes": "This records the mixed audio from all channels participating in this bridge.", + "nickname": "record", + "responseClass": "LiveRecording", + "parameters": [ + { + "name": "bridgeId", + "description": "Bridge's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "name", + "description": "Recording's filename", + "paramType": "query", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "format", + "description": "Format to encode audio in", + "paramType": "query", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "maxDurationSeconds", + "description": "Maximum duration of the recording, in seconds. 0 for no limit.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "int", + "defaultValue": 0, + "allowableValues": { + "valueType": "RANGE", + "min": 0 + } + }, + { + "name": "maxSilenceSeconds", + "description": "Maximum duration of silence, in seconds. 0 for no limit.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "int", + "defaultValue": 0, + "allowableValues": { + "valueType": "RANGE", + "min": 0 + } + }, + { + "name": "ifExists", + "description": "Action to take if a recording with the same name already exists.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string", + "defaultValue": "fail", + "allowableValues": { + "valueType": "LIST", + "values": [ + "fail", + "overwrite", + "append" + ] + } + }, + { + "name": "beep", + "description": "Play beep when recording begins", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "boolean", + "defaultValue": false + }, + { + "name": "terminateOn", + "description": "DTMF input to terminate recording.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string", + "defaultValue": "none", + "allowableValues": { + "valueType": "LIST", + "values": [ + "none", + "any", + "*", + "#" + ] + } + } + ], + "errorResponses": [ + { + "code": 400, + "reason": "Invalid parameters" + }, + { + "code": 404, + "reason": "Bridge not found" + }, + { + "code": 409, + "reason": "Bridge is not in a Stasis application; A recording with the same name already exists on the system and can not be overwritten because it is in progress or ifExists=fail" + }, + { + "code": 422, + "reason": "The format specified is unknown on this system" + } + ] + } + ] + } + ], + "models": { + "Bridge": { + "id": "Bridge", + "description": "The merging of media from one or more channels.\n\nEveryone on the bridge receives the same audio.", + "properties": { + "id": { + "type": "string", + "description": "Unique identifier for this bridge", + "required": true + }, + "technology": { + "type": "string", + "description": "Name of the current bridging technology", + "required": true + }, + "bridge_type": { + "type": "string", + "description": "Type of bridge technology", + "required": true, + "allowableValues": { + "valueType": "LIST", + "values": [ + "mixing", + "holding" + ] + } + }, + "bridge_class": { + "type": "string", + "description": "Bridging class", + "required": true + }, + "creator": { + "type": "string", + "description": "Entity that created the bridge", + "required": true + }, + "name": { + "type": "string", + "description": "Name the creator gave the bridge", + "required": true + }, + "channels": { + "type": "List[string]", + "description": "Ids of channels participating in this bridge", + "required": true + }, + "video_mode": { + "type": "string", + "description": "The video mode the bridge is using. One of 'none', 'talker', or 'single'.", + "required": false + }, + "video_source_id": { + "type": "string", + "description": "The ID of the channel that is the source of video in this bridge, if one exists.", + "required": false + }, + "creationtime": { + "required": true, + "type": "Date", + "description": "Timestamp when bridge was created" + } + } + } + } +} diff --git a/codegen/src/main/resources/codegen-data/ari_7_0_0/channels.json b/codegen/src/main/resources/codegen-data/ari_7_0_0/channels.json new file mode 100644 index 00000000..04d15773 --- /dev/null +++ b/codegen/src/main/resources/codegen-data/ari_7_0_0/channels.json @@ -0,0 +1,2189 @@ +{ + "_copyright": "Copyright (C) 2012 - 2013, Digium, Inc.", + "_author": "David M. Lee, II ", + "_svn_revision": "$Revision$", + "apiVersion": "2.0.0", + "swaggerVersion": "1.1", + "basePath": "http://localhost:8088/ari", + "resourcePath": "/api-docs/channels.{format}", + "requiresModules": [ + "res_stasis_answer", + "res_stasis_playback", + "res_stasis_recording", + "res_stasis_snoop" + ], + "apis": [ + { + "path": "/channels", + "description": "Active channels", + "operations": [ + { + "httpMethod": "GET", + "summary": "List all active channels in Asterisk.", + "nickname": "list", + "responseClass": "List[Channel]" + }, + { + "httpMethod": "POST", + "summary": "Create a new channel (originate).", + "notes": "The new channel is created immediately and a snapshot of it returned. If a Stasis application is provided it will be automatically subscribed to the originated channel for further events and updates.", + "nickname": "originate", + "responseClass": "Channel", + "parameters": [ + { + "name": "endpoint", + "description": "Endpoint to call.", + "paramType": "query", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "extension", + "description": "The extension to dial after the endpoint answers. Mutually exclusive with 'app'.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "context", + "description": "The context to dial after the endpoint answers. If omitted, uses 'default'. Mutually exclusive with 'app'.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "priority", + "description": "The priority to dial after the endpoint answers. If omitted, uses 1. Mutually exclusive with 'app'.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "long" + }, + { + "name": "label", + "description": "The label to dial after the endpoint answers. Will supersede 'priority' if provided. Mutually exclusive with 'app'.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "app", + "description": "The application that is subscribed to the originated channel. When the channel is answered, it will be passed to this Stasis application. Mutually exclusive with 'context', 'extension', 'priority', and 'label'.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "appArgs", + "description": "The application arguments to pass to the Stasis application provided by 'app'. Mutually exclusive with 'context', 'extension', 'priority', and 'label'.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "callerId", + "description": "CallerID to use when dialing the endpoint or extension.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "timeout", + "description": "Timeout (in seconds) before giving up dialing, or -1 for no timeout.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "int", + "defaultValue": 30 + }, + { + "name": "variables", + "description": "The \"variables\" key in the body object holds variable key/value pairs to set on the channel on creation. Other keys in the body object are interpreted as query parameters. Ex. { \"endpoint\": \"SIP/Alice\", \"variables\": { \"CALLERID(name)\": \"Alice\" } }", + "paramType": "body", + "required": false, + "dataType": "containers", + "allowMultiple": false + }, + { + "name": "channelId", + "description": "The unique id to assign the channel on creation.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "otherChannelId", + "description": "The unique id to assign the second channel when using local channels.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "originator", + "description": "The unique id of the channel which is originating this one.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "formats", + "description": "The format name capability list to use if originator is not specified. Ex. \"ulaw,slin16\". Format names can be found with \"core show codecs\".", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 400, + "reason": "Invalid parameters for originating a channel." + }, + { + "code": 409, + "reason": "Channel with given unique ID already exists." + } + ] + } + ] + }, + { + "path": "/channels/create", + "description": "Create a channel and place it in a Stasis app, but do not dial the channel yet.", + "operations": [ + { + "httpMethod": "POST", + "summary": "Create channel.", + "nickname": "create", + "responseClass": "Channel", + "parameters": [ + { + "name": "endpoint", + "description": "Endpoint for channel communication", + "paramType": "query", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "app", + "description": "Stasis Application to place channel into", + "paramType": "query", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "appArgs", + "description": "The application arguments to pass to the Stasis application provided by 'app'. Mutually exclusive with 'context', 'extension', 'priority', and 'label'.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "channelId", + "description": "The unique id to assign the channel on creation.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "otherChannelId", + "description": "The unique id to assign the second channel when using local channels.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "originator", + "description": "Unique ID of the calling channel", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "formats", + "description": "The format name capability list to use if originator is not specified. Ex. \"ulaw,slin16\". Format names can be found with \"core show codecs\".", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "variables", + "description": "The \"variables\" key in the body object holds variable key/value pairs to set on the channel on creation. Other keys in the body object are interpreted as query parameters. Ex. { \"endpoint\": \"SIP/Alice\", \"variables\": { \"CALLERID(name)\": \"Alice\" } }", + "paramType": "body", + "required": false, + "dataType": "containers", + "allowMultiple": false + } + ], + "errorResponses": [ + { + "code": 409, + "reason": "Channel with given unique ID already exists." + } + ] + } + ] + }, + { + "path": "/channels/{channelId}", + "description": "Active channel", + "operations": [ + { + "httpMethod": "GET", + "summary": "Channel details.", + "nickname": "get", + "responseClass": "Channel", + "parameters": [ + { + "name": "channelId", + "description": "Channel's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Channel not found" + } + ] + }, + { + "httpMethod": "POST", + "summary": "Create a new channel (originate with id).", + "notes": "The new channel is created immediately and a snapshot of it returned. If a Stasis application is provided it will be automatically subscribed to the originated channel for further events and updates.", + "nickname": "originateWithId", + "responseClass": "Channel", + "parameters": [ + { + "name": "channelId", + "description": "The unique id to assign the channel on creation.", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "endpoint", + "description": "Endpoint to call.", + "paramType": "query", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "extension", + "description": "The extension to dial after the endpoint answers. Mutually exclusive with 'app'.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "context", + "description": "The context to dial after the endpoint answers. If omitted, uses 'default'. Mutually exclusive with 'app'.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "priority", + "description": "The priority to dial after the endpoint answers. If omitted, uses 1. Mutually exclusive with 'app'.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "long" + }, + { + "name": "label", + "description": "The label to dial after the endpoint answers. Will supersede 'priority' if provided. Mutually exclusive with 'app'.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "app", + "description": "The application that is subscribed to the originated channel. When the channel is answered, it will be passed to this Stasis application. Mutually exclusive with 'context', 'extension', 'priority', and 'label'.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "appArgs", + "description": "The application arguments to pass to the Stasis application provided by 'app'. Mutually exclusive with 'context', 'extension', 'priority', and 'label'.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "callerId", + "description": "CallerID to use when dialing the endpoint or extension.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "timeout", + "description": "Timeout (in seconds) before giving up dialing, or -1 for no timeout.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "int", + "defaultValue": 30 + }, + { + "name": "variables", + "description": "The \"variables\" key in the body object holds variable key/value pairs to set on the channel on creation. Other keys in the body object are interpreted as query parameters. Ex. { \"endpoint\": \"SIP/Alice\", \"variables\": { \"CALLERID(name)\": \"Alice\" } }", + "paramType": "body", + "required": false, + "dataType": "containers", + "allowMultiple": false + }, + { + "name": "otherChannelId", + "description": "The unique id to assign the second channel when using local channels.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "originator", + "description": "The unique id of the channel which is originating this one.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "formats", + "description": "The format name capability list to use if originator is not specified. Ex. \"ulaw,slin16\". Format names can be found with \"core show codecs\".", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 400, + "reason": "Invalid parameters for originating a channel." + }, + { + "code": 409, + "reason": "Channel with given unique ID already exists." + } + ] + + }, + { + "httpMethod": "DELETE", + "summary": "Delete (i.e. hangup) a channel.", + "nickname": "hangup", + "responseClass": "void", + "parameters": [ + { + "name": "channelId", + "description": "Channel's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "reason_code", + "description": "The reason code for hanging up the channel for detail use. Mutually exclusive with 'reason'. See detail hangup codes at here. https://wiki.asterisk.org/wiki/display/AST/Hangup+Cause+Mappings", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "reason", + "description": "Reason for hanging up the channel for simple use. Mutually exclusive with 'reason_code'.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string", + "allowableValues": { + "valueType": "LIST", + "values": [ + "normal", + "busy", + "congestion", + "no_answer", + "timeout", + "rejected", + "unallocated", + "normal_unspecified", + "number_incomplete", + "codec_mismatch", + "interworking", + "failure", + "answered_elsewhere" + ] + } + } + ], + "errorResponses": [ + { + "code": 400, + "reason": "Invalid reason for hangup provided" + }, + { + "code": 404, + "reason": "Channel not found" + } + ] + } + ] + }, + { + "path": "/channels/{channelId}/continue", + "description": "Exit application; continue execution in the dialplan", + "operations": [ + { + "httpMethod": "POST", + "summary": "Exit application; continue execution in the dialplan.", + "nickname": "continueInDialplan", + "responseClass": "void", + "parameters": [ + { + "name": "channelId", + "description": "Channel's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "context", + "description": "The context to continue to.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "extension", + "description": "The extension to continue to.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "priority", + "description": "The priority to continue to.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "int" + }, + { + "name": "label", + "description": "The label to continue to - will supersede 'priority' if both are provided.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Channel not found" + }, + { + "code": 409, + "reason": "Channel not in a Stasis application" + }, + { + "code": 412, + "reason": "Channel in invalid state" + } + ] + } + ] + }, + { + "path": "/channels/{channelId}/move", + "description": "Move the channel from one Stasis application to another.", + "operations": [ + { + "httpMethod": "POST", + "summary": "Move the channel from one Stasis application to another.", + "nickname": "move", + "responseClass": "void", + "parameters": [ + { + "name": "channelId", + "description": "Channel's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "app", + "description": "The channel will be passed to this Stasis application.", + "paramType": "query", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "appArgs", + "description": "The application arguments to pass to the Stasis application provided by 'app'.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": "404", + "reason": "Channel not found" + }, + { + "code": "409", + "reason": "Channel not in a Stasis application" + } + ] + } + ] + }, + { + "path": "/channels/{channelId}/redirect", + "description": "Inform the channel that it should redirect itself to a different location. Note that this will almost certainly cause the channel to exit the application.", + "operations": [ + { + "httpMethod": "POST", + "summary": "Redirect the channel to a different location.", + "nickname": "redirect", + "responseClass": "void", + "parameters": [ + { + "name": "channelId", + "description": "Channel's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "endpoint", + "description": "The endpoint to redirect the channel to", + "paramType": "query", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 400, + "reason": "Endpoint parameter not provided" + }, + { + "code": 404, + "reason": "Channel or endpoint not found" + }, + { + "code": 409, + "reason": "Channel not in a Stasis application" + }, + { + "code": 422, + "reason": "Endpoint is not the same type as the channel" + }, + { + "code": 412, + "reason": "Channel in invalid state" + } + ] + } + ] + }, + { + "path": "/channels/{channelId}/answer", + "description": "Answer a channel", + "operations": [ + { + "httpMethod": "POST", + "summary": "Answer a channel.", + "nickname": "answer", + "responseClass": "void", + "parameters": [ + { + "name": "channelId", + "description": "Channel's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Channel not found" + }, + { + "code": 409, + "reason": "Channel not in a Stasis application" + }, + { + "code": 412, + "reason": "Channel in invalid state" + } + ] + } + ] + }, + { + "path": "/channels/{channelId}/ring", + "description": "Send a ringing indication to a channel", + "operations": [ + { + "httpMethod": "POST", + "summary": "Indicate ringing to a channel.", + "nickname": "ring", + "responseClass": "void", + "parameters": [ + { + "name": "channelId", + "description": "Channel's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Channel not found" + }, + { + "code": 409, + "reason": "Channel not in a Stasis application" + }, + { + "code": 412, + "reason": "Channel in invalid state" + } + ] + }, + { + "httpMethod": "DELETE", + "summary": "Stop ringing indication on a channel if locally generated.", + "nickname": "ringStop", + "responseClass": "void", + "parameters": [ + { + "name": "channelId", + "description": "Channel's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Channel not found" + }, + { + "code": 409, + "reason": "Channel not in a Stasis application" + }, + { + "code": 412, + "reason": "Channel in invalid state" + } + ] + } + ] + }, + { + "path": "/channels/{channelId}/dtmf", + "description": "Send DTMF to a channel", + "operations": [ + { + "httpMethod": "POST", + "summary": "Send provided DTMF to a given channel.", + "nickname": "sendDTMF", + "responseClass": "void", + "parameters": [ + { + "name": "channelId", + "description": "Channel's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "dtmf", + "description": "DTMF To send.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "before", + "description": "Amount of time to wait before DTMF digits (specified in milliseconds) start.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "int", + "defaultValue": 0 + }, + { + "name": "between", + "description": "Amount of time in between DTMF digits (specified in milliseconds).", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "int", + "defaultValue": 100 + }, + { + "name": "duration", + "description": "Length of each DTMF digit (specified in milliseconds).", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "int", + "defaultValue": 100 + }, + { + "name": "after", + "description": "Amount of time to wait after DTMF digits (specified in milliseconds) end.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "int", + "defaultValue": 0 + } + ], + "errorResponses": [ + { + "code": 400, + "reason": "DTMF is required" + }, + { + "code": 404, + "reason": "Channel not found" + }, + { + "code": 409, + "reason": "Channel not in a Stasis application" + }, + { + "code": 412, + "reason": "Channel in invalid state" + } + ] + } + ] + }, + { + "path": "/channels/{channelId}/mute", + "description": "Mute a channel", + "operations": [ + { + "httpMethod": "POST", + "summary": "Mute a channel.", + "nickname": "mute", + "responseClass": "void", + "parameters": [ + { + "name": "channelId", + "description": "Channel's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "direction", + "description": "Direction in which to mute audio", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string", + "defaultValue": "both", + "allowableValues": { + "valueType": "LIST", + "values": [ + "both", + "in", + "out" + ] + } + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Channel not found" + }, + { + "code": 409, + "reason": "Channel not in a Stasis application" + }, + { + "code": 412, + "reason": "Channel in invalid state" + } + ] + }, + { + "httpMethod": "DELETE", + "summary": "Unmute a channel.", + "nickname": "unmute", + "responseClass": "void", + "parameters": [ + { + "name": "channelId", + "description": "Channel's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "direction", + "description": "Direction in which to unmute audio", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string", + "defaultValue": "both", + "allowableValues": { + "valueType": "LIST", + "values": [ + "both", + "in", + "out" + ] + } + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Channel not found" + }, + { + "code": 409, + "reason": "Channel not in a Stasis application" + }, + { + "code": 412, + "reason": "Channel in invalid state" + } + ] + } + ] + }, + { + "path": "/channels/{channelId}/hold", + "description": "Put a channel on hold", + "operations": [ + { + "httpMethod": "POST", + "summary": "Hold a channel.", + "nickname": "hold", + "responseClass": "void", + "parameters": [ + { + "name": "channelId", + "description": "Channel's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Channel not found" + }, + { + "code": 409, + "reason": "Channel not in a Stasis application" + }, + { + "code": 412, + "reason": "Channel in invalid state" + } + ] + }, + { + "httpMethod": "DELETE", + "summary": "Remove a channel from hold.", + "nickname": "unhold", + "responseClass": "void", + "parameters": [ + { + "name": "channelId", + "description": "Channel's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Channel not found" + }, + { + "code": 409, + "reason": "Channel not in a Stasis application" + }, + { + "code": 412, + "reason": "Channel in invalid state" + } + ] + } + ] + }, + { + "path": "/channels/{channelId}/moh", + "description": "Play music on hold to a channel", + "operations": [ + { + "httpMethod": "POST", + "summary": "Play music on hold to a channel.", + "notes": "Using media operations such as /play on a channel playing MOH in this manner will suspend MOH without resuming automatically. If continuing music on hold is desired, the stasis application must reinitiate music on hold.", + "nickname": "startMoh", + "responseClass": "void", + "parameters": [ + { + "name": "channelId", + "description": "Channel's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "mohClass", + "description": "Music on hold class to use", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Channel not found" + }, + { + "code": 409, + "reason": "Channel not in a Stasis application" + }, + { + "code": 412, + "reason": "Channel in invalid state" + } + ] + }, + { + "httpMethod": "DELETE", + "summary": "Stop playing music on hold to a channel.", + "nickname": "stopMoh", + "responseClass": "void", + "parameters": [ + { + "name": "channelId", + "description": "Channel's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Channel not found" + }, + { + "code": 409, + "reason": "Channel not in a Stasis application" + }, + { + "code": 412, + "reason": "Channel in invalid state" + } + ] + } + ] + }, + { + "path": "/channels/{channelId}/silence", + "description": "Play silence to a channel", + "operations": [ + { + "httpMethod": "POST", + "summary": "Play silence to a channel.", + "notes": "Using media operations such as /play on a channel playing silence in this manner will suspend silence without resuming automatically.", + "nickname": "startSilence", + "responseClass": "void", + "parameters": [ + { + "name": "channelId", + "description": "Channel's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Channel not found" + }, + { + "code": 409, + "reason": "Channel not in a Stasis application" + }, + { + "code": 412, + "reason": "Channel in invalid state" + } + ] + }, + { + "httpMethod": "DELETE", + "summary": "Stop playing silence to a channel.", + "nickname": "stopSilence", + "responseClass": "void", + "parameters": [ + { + "name": "channelId", + "description": "Channel's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Channel not found" + }, + { + "code": 409, + "reason": "Channel not in a Stasis application" + }, + { + "code": 412, + "reason": "Channel in invalid state" + } + ] + } + ] + }, + { + "path": "/channels/{channelId}/play", + "description": "Play media to a channel", + "operations": [ + { + "httpMethod": "POST", + "summary": "Start playback of media.", + "notes": "The media URI may be any of a number of URI's. Currently sound:, recording:, number:, digits:, characters:, and tone: URI's are supported. This operation creates a playback resource that can be used to control the playback of media (pause, rewind, fast forward, etc.)", + "nickname": "play", + "responseClass": "Playback", + "parameters": [ + { + "name": "channelId", + "description": "Channel's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "media", + "description": "Media URIs to play.", + "paramType": "query", + "required": true, + "allowMultiple": true, + "dataType": "string" + }, + { + "name": "lang", + "description": "For sounds, selects language for sound.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "offsetms", + "description": "Number of milliseconds to skip before playing. Only applies to the first URI if multiple media URIs are specified.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "int" + }, + { + "name": "skipms", + "description": "Number of milliseconds to skip for forward/reverse operations.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "int", + "defaultValue": 3000 + }, + { + "name": "playbackId", + "description": "Playback ID.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Channel not found" + }, + { + "code": 409, + "reason": "Channel not in a Stasis application" + }, + { + "code": 412, + "reason": "Channel in invalid state" + } + ] + } + ] + }, + { + "path": "/channels/{channelId}/play/{playbackId}", + "description": "Play media to a channel", + "operations": [ + { + "httpMethod": "POST", + "summary": "Start playback of media and specify the playbackId.", + "notes": "The media URI may be any of a number of URI's. Currently sound:, recording:, number:, digits:, characters:, and tone: URI's are supported. This operation creates a playback resource that can be used to control the playback of media (pause, rewind, fast forward, etc.)", + "nickname": "playWithId", + "responseClass": "Playback", + "parameters": [ + { + "name": "channelId", + "description": "Channel's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "playbackId", + "description": "Playback ID.", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "media", + "description": "Media URIs to play.", + "paramType": "query", + "required": true, + "allowMultiple": true, + "dataType": "string" + }, + { + "name": "lang", + "description": "For sounds, selects language for sound.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "offsetms", + "description": "Number of milliseconds to skip before playing. Only applies to the first URI if multiple media URIs are specified.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "int" + }, + { + "name": "skipms", + "description": "Number of milliseconds to skip for forward/reverse operations.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "int", + "defaultValue": 3000 + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Channel not found" + }, + { + "code": 409, + "reason": "Channel not in a Stasis application" + }, + { + "code": 412, + "reason": "Channel in invalid state" + } + ] + } + ] + }, + { + "path": "/channels/{channelId}/record", + "description": "Record audio from a channel", + "operations": [ + { + "httpMethod": "POST", + "summary": "Start a recording.", + "notes": "Record audio from a channel. Note that this will not capture audio sent to the channel. The bridge itself has a record feature if that's what you want.", + "nickname": "record", + "responseClass": "LiveRecording", + "parameters": [ + { + "name": "channelId", + "description": "Channel's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "name", + "description": "Recording's filename", + "paramType": "query", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "format", + "description": "Format to encode audio in", + "paramType": "query", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "maxDurationSeconds", + "description": "Maximum duration of the recording, in seconds. 0 for no limit", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "int", + "defaultValue": 0, + "allowableValues": { + "valueType": "RANGE", + "min": 0 + } + }, + { + "name": "maxSilenceSeconds", + "description": "Maximum duration of silence, in seconds. 0 for no limit", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "int", + "defaultValue": 0, + "allowableValues": { + "valueType": "RANGE", + "min": 0 + } + }, + { + "name": "ifExists", + "description": "Action to take if a recording with the same name already exists.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string", + "defaultValue": "fail", + "allowableValues": { + "valueType": "LIST", + "values": [ + "fail", + "overwrite", + "append" + ] + } + }, + { + "name": "beep", + "description": "Play beep when recording begins", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "boolean", + "defaultValue": false + }, + { + "name": "terminateOn", + "description": "DTMF input to terminate recording", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string", + "defaultValue": "none", + "allowableValues": { + "valueType": "LIST", + "values": [ + "none", + "any", + "*", + "#" + ] + } + } + ], + "errorResponses": [ + { + "code": 400, + "reason": "Invalid parameters" + }, + { + "code": 404, + "reason": "Channel not found" + }, + { + "code": 409, + "reason": "Channel is not in a Stasis application; the channel is currently bridged with other hcannels; A recording with the same name already exists on the system and can not be overwritten because it is in progress or ifExists=fail" + }, + { + "code": 422, + "reason": "The format specified is unknown on this system" + } + ] + } + ] + }, + { + "path": "/channels/{channelId}/variable", + "description": "Variables on a channel", + "operations": [ + { + "httpMethod": "GET", + "summary": "Get the value of a channel variable or function.", + "nickname": "getChannelVar", + "responseClass": "Variable", + "parameters": [ + { + "name": "channelId", + "description": "Channel's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "variable", + "description": "The channel variable or function to get", + "paramType": "query", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 400, + "reason": "Missing variable parameter." + }, + { + "code": 404, + "reason": "Channel or variable not found" + }, + { + "code": 409, + "reason": "Channel not in a Stasis application" + } + ] + }, + { + "httpMethod": "POST", + "summary": "Set the value of a channel variable or function.", + "nickname": "setChannelVar", + "responseClass": "void", + "parameters": [ + { + "name": "channelId", + "description": "Channel's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "variable", + "description": "The channel variable or function to set", + "paramType": "query", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "value", + "description": "The value to set the variable to", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 400, + "reason": "Missing variable parameter." + }, + { + "code": 404, + "reason": "Channel not found" + }, + { + "code": 409, + "reason": "Channel not in a Stasis application" + } + ] + } + ] + }, + { + "path": "/channels/{channelId}/snoop", + "description": "Snoop (spy/whisper) on a channel", + "operations": [ + { + "httpMethod": "POST", + "summary": "Start snooping.", + "notes": "Snoop (spy/whisper) on a specific channel.", + "nickname": "snoopChannel", + "responseClass": "Channel", + "parameters": [ + { + "name": "channelId", + "description": "Channel's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "spy", + "description": "Direction of audio to spy on", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string", + "defaultValue": "none", + "allowableValues": { + "valueType": "LIST", + "values": [ + "none", + "both", + "out", + "in" + ] + } + }, + { + "name": "whisper", + "description": "Direction of audio to whisper into", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string", + "defaultValue": "none", + "allowableValues": { + "valueType": "LIST", + "values": [ + "none", + "both", + "out", + "in" + ] + } + }, + { + "name": "app", + "description": "Application the snooping channel is placed into", + "paramType": "query", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "appArgs", + "description": "The application arguments to pass to the Stasis application", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "snoopId", + "description": "Unique ID to assign to snooping channel", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 400, + "reason": "Invalid parameters" + }, + { + "code": 404, + "reason": "Channel not found" + } + ] + } + ] + }, + { + "path": "/channels/{channelId}/snoop/{snoopId}", + "description": "Snoop (spy/whisper) on a channel", + "operations": [ + { + "httpMethod": "POST", + "summary": "Start snooping.", + "notes": "Snoop (spy/whisper) on a specific channel.", + "nickname": "snoopChannelWithId", + "responseClass": "Channel", + "parameters": [ + { + "name": "channelId", + "description": "Channel's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "snoopId", + "description": "Unique ID to assign to snooping channel", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "spy", + "description": "Direction of audio to spy on", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string", + "defaultValue": "none", + "allowableValues": { + "valueType": "LIST", + "values": [ + "none", + "both", + "out", + "in" + ] + } + }, + { + "name": "whisper", + "description": "Direction of audio to whisper into", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string", + "defaultValue": "none", + "allowableValues": { + "valueType": "LIST", + "values": [ + "none", + "both", + "out", + "in" + ] + } + }, + { + "name": "app", + "description": "Application the snooping channel is placed into", + "paramType": "query", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "appArgs", + "description": "The application arguments to pass to the Stasis application", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 400, + "reason": "Invalid parameters" + }, + { + "code": 404, + "reason": "Channel not found" + } + ] + } + ] + }, + { + "path": "/channels/{channelId}/dial", + "description": "Dial a channel", + "operations": [ + { + "httpMethod": "POST", + "summary": "Dial a created channel.", + "nickname": "dial", + "responseClass": "void", + "parameters": [ + { + "name": "channelId", + "description": "Channel's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "caller", + "description": "Channel ID of caller", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "timeout", + "description": "Dial timeout", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "int", + "defaultValue": 0, + "allowableValues": { + "valueType": "RANGE", + "min": 0 + } + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Channel cannot be found." + }, + { + "code": 409, + "reason": "Channel cannot be dialed." + } + ] + } + ] + }, + { + "path": "/channels/{channelId}/rtp_statistics", + "description": "Get RTP statistics information for RTP on a channel", + "operations": [ + { + "httpMethod": "GET", + "summary": "RTP stats on a channel.", + "nickname": "rtpstatistics", + "responseClass": "RTPstat", + "parameters": [ + { + "name": "channelId", + "description": "Channel's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Channel cannot be found." + } + ] + } + ] + }, + { + "path": "/channels/externalMedia", + "description": "Create a channel to an External Media source/sink.", + "operations": [ + { + "httpMethod": "POST", + "summary": "Start an External Media session.", + "notes": "Create a channel to an External Media source/sink.", + "nickname": "externalMedia", + "responseClass": "Channel", + "parameters": [ + { + "name": "channelId", + "description": "The unique id to assign the channel on creation.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "app", + "description": "Stasis Application to place channel into", + "paramType": "query", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "variables", + "description": "The \"variables\" key in the body object holds variable key/value pairs to set on the channel on creation. Other keys in the body object are interpreted as query parameters. Ex. { \"endpoint\": \"SIP/Alice\", \"variables\": { \"CALLERID(name)\": \"Alice\" } }", + "paramType": "body", + "required": false, + "dataType": "containers", + "allowMultiple": false + }, + { + "name": "external_host", + "description": "Hostname/ip:port of external host", + "paramType": "query", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "encapsulation", + "description": "Payload encapsulation protocol", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string", + "defaultValue": "rtp", + "allowableValues": { + "valueType": "LIST", + "values": [ + "rtp", + "audiosocket" + ] + } + }, + { + "name": "transport", + "description": "Transport protocol", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string", + "defaultValue": "udp", + "allowableValues": { + "valueType": "LIST", + "values": [ + "udp", + "tcp" + ] + } + }, + { + "name": "connection_type", + "description": "Connection type (client/server)", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string", + "defaultValue": "client", + "allowableValues": { + "valueType": "LIST", + "values": [ + "client" + ] + } + }, + { + "name": "format", + "description": "Format to encode audio in", + "paramType": "query", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "direction", + "description": "External media direction", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string", + "defaultValue": "both", + "allowableValues": { + "valueType": "LIST", + "values": [ + "both" + ] + } + }, + { + "name": "data", + "description": "An arbitrary data field", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 400, + "reason": "Invalid parameters" + }, + { + "code": 409, + "reason": "Channel is not in a Stasis application; Channel is already bridged" + } + ] + } + ] + } + ], + "models": { + "Dialed": { + "id": "Dialed", + "description": "Dialed channel information.", + "properties": {} + }, + "DialplanCEP": { + "id": "DialplanCEP", + "description": "Dialplan location (context/extension/priority)", + "properties": { + "context": { + "required": true, + "type": "string", + "description": "Context in the dialplan" + }, + "exten": { + "required": true, + "type": "string", + "description": "Extension in the dialplan" + }, + "priority": { + "required": true, + "type": "long", + "description": "Priority in the dialplan" + }, + "app_name": { + "required": true, + "type": "string", + "description": "Name of current dialplan application" + }, + "app_data": { + "required": true, + "type": "string", + "description": "Parameter of current dialplan application" + } + } + }, + "CallerID": { + "id": "CallerID", + "description": "Caller identification", + "properties": { + "name": { + "required": true, + "type": "string" + }, + "number": { + "required": true, + "type": "string" + } + } + }, + "RTPstat": { + "id": "RTPstat", + "description": "A statistics of a RTP.", + "properties": { + "txcount": { + "required": true, + "type": "int", + "description": "Number of packets transmitted." + }, + "rxcount": { + "required": true, + "type": "int", + "description": "Number of packets received." + }, + "txjitter": { + "required": false, + "type": "double", + "description": "Jitter on transmitted packets." + }, + "rxjitter": { + "required": false, + "type": "double", + "description": "Jitter on received packets." + }, + "remote_maxjitter": { + "required": false, + "type": "double", + "description": "Maximum jitter on remote side." + }, + "remote_minjitter": { + "required": false, + "type": "double", + "description": "Minimum jitter on remote side." + }, + "remote_normdevjitter": { + "required": false, + "type": "double", + "description": "Average jitter on remote side." + }, + "remote_stdevjitter": { + "required": false, + "type": "double", + "description": "Standard deviation jitter on remote side." + }, + "local_maxjitter": { + "required": false, + "type": "double", + "description": "Maximum jitter on local side." + }, + "local_minjitter": { + "required": false, + "type": "double", + "description": "Minimum jitter on local side." + }, + "local_normdevjitter": { + "required": false, + "type": "double", + "description": "Average jitter on local side." + }, + "local_stdevjitter": { + "required": false, + "type": "double", + "description": "Standard deviation jitter on local side." + }, + "txploss": { + "required": true, + "type": "int", + "description": "Number of transmitted packets lost." + }, + "rxploss": { + "required": true, + "type": "int", + "description": "Number of received packets lost." + }, + "remote_maxrxploss": { + "required": false, + "type": "double", + "description": "Maximum number of packets lost on remote side." + }, + "remote_minrxploss": { + "required": false, + "type": "double", + "description": "Minimum number of packets lost on remote side." + }, + "remote_normdevrxploss": { + "required": false, + "type": "double", + "description": "Average number of packets lost on remote side." + }, + "remote_stdevrxploss": { + "required": false, + "type": "double", + "description": "Standard deviation packets lost on remote side." + }, + "local_maxrxploss": { + "required": false, + "type": "double", + "description": "Maximum number of packets lost on local side." + }, + "local_minrxploss": { + "required": false, + "type": "double", + "description": "Minimum number of packets lost on local side." + }, + "local_normdevrxploss": { + "required": false, + "type": "double", + "description": "Average number of packets lost on local side." + }, + "local_stdevrxploss": { + "required": false, + "type": "double", + "description": "Standard deviation packets lost on local side." + }, + "rtt": { + "required": false, + "type": "double", + "description": "Total round trip time." + }, + "maxrtt": { + "required": false, + "type": "double", + "description": "Maximum round trip time." + }, + "minrtt": { + "required": false, + "type": "double", + "description": "Minimum round trip time." + }, + "normdevrtt": { + "required": false, + "type": "double", + "description": "Average round trip time." + }, + "stdevrtt": { + "required": false, + "type": "double", + "description": "Standard deviation round trip time." + }, + "local_ssrc": { + "required": true, + "type": "int", + "description": "Our SSRC." + }, + "remote_ssrc": { + "required": true, + "type": "int", + "description": "Their SSRC." + }, + "txoctetcount": { + "required": true, + "type": "int", + "description": "Number of octets transmitted." + }, + "rxoctetcount": { + "required": true, + "type": "int", + "description": "Number of octets received." + }, + "channel_uniqueid": { + "required": true, + "type": "string", + "description": "The Asterisk channel's unique ID that owns this instance." + } + } + }, + "Channel": { + "id": "Channel", + "description": "A specific communication connection between Asterisk and an Endpoint.", + "properties": { + "id": { + "required": true, + "type": "string", + "description": "Unique identifier of the channel.\n\nThis is the same as the Uniqueid field in AMI." + }, + "name": { + "required": true, + "type": "string", + "description": "Name of the channel (i.e. SIP/foo-0000a7e3)" + }, + "state": { + "required": true, + "type": "string", + "allowableValues": { + "valueType": "LIST", + "values": [ + "Down", + "Rsrved", + "OffHook", + "Dialing", + "Ring", + "Ringing", + "Up", + "Busy", + "Dialing Offhook", + "Pre-ring", + "Unknown" + ] + } + }, + "caller": { + "required": true, + "type": "CallerID" + }, + "connected": { + "required": true, + "type": "CallerID" + }, + "accountcode": { + "required": true, + "type": "string" + }, + "dialplan": { + "required": true, + "type": "DialplanCEP", + "description": "Current location in the dialplan" + }, + "creationtime": { + "required": true, + "type": "Date", + "description": "Timestamp when channel was created" + }, + "language": { + "required": true, + "type": "string", + "description": "The default spoken language" + }, + "channelvars": { + "required": false, + "type": "object", + "description": "Channel variables" + } + } + } + } +} diff --git a/codegen/src/main/resources/codegen-data/ari_7_0_0/deviceStates.json b/codegen/src/main/resources/codegen-data/ari_7_0_0/deviceStates.json new file mode 100644 index 00000000..bd389355 --- /dev/null +++ b/codegen/src/main/resources/codegen-data/ari_7_0_0/deviceStates.json @@ -0,0 +1,154 @@ +{ + "_copyright": "Copyright (C) 2012 - 2013, Digium, Inc.", + "_author": "Kevin Harwell ", + "_svn_revision": "$Revision$", + "apiVersion": "2.0.0", + "swaggerVersion": "1.1", + "basePath": "http://localhost:8088/ari", + "resourcePath": "/api-docs/deviceStates.{format}", + "requiresModules": [ + "res_stasis_device_state" + ], + "apis": [ + { + "path": "/deviceStates", + "description": "Device states", + "operations": [ + { + "httpMethod": "GET", + "summary": "List all ARI controlled device states.", + "nickname": "list", + "responseClass": "List[DeviceState]" + } + ] + }, + { + "path": "/deviceStates/{deviceName}", + "description": "Device state", + "operations": [ + { + "httpMethod": "GET", + "summary": "Retrieve the current state of a device.", + "nickname": "get", + "responseClass": "DeviceState", + "parameters": [ + { + "name": "deviceName", + "description": "Name of the device", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ] + }, + { + "httpMethod": "PUT", + "summary": "Change the state of a device controlled by ARI. (Note - implicitly creates the device state).", + "nickname": "update", + "responseClass": "void", + "parameters": [ + { + "name": "deviceName", + "description": "Name of the device", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "deviceState", + "description": "Device state value", + "paramType": "query", + "required": true, + "allowMultiple": false, + "dataType": "string", + "allowableValues": { + "valueType": "LIST", + "values": [ + "NOT_INUSE", + "INUSE", + "BUSY", + "INVALID", + "UNAVAILABLE", + "RINGING", + "RINGINUSE", + "ONHOLD" + ] + } + + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Device name is missing" + }, + { + "code": 409, + "reason": "Uncontrolled device specified" + } + ] + }, + { + "httpMethod": "DELETE", + "summary": "Destroy a device-state controlled by ARI.", + "nickname": "delete", + "responseClass": "void", + "parameters": [ + { + "name": "deviceName", + "description": "Name of the device", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Device name is missing" + }, + { + "code": 409, + "reason": "Uncontrolled device specified" + } + ] + } + ] + } + ], + "models": { + "DeviceState": { + "id": "DeviceState", + "description": "Represents the state of a device.", + "properties": { + "name": { + "type": "string", + "description": "Name of the device.", + "required": true + }, + "state": { + "type": "string", + "description": "Device's state", + "required": true, + "allowableValues": { + "valueType": "LIST", + "values": [ + "UNKNOWN", + "NOT_INUSE", + "INUSE", + "BUSY", + "INVALID", + "UNAVAILABLE", + "RINGING", + "RINGINUSE", + "ONHOLD" + ] + } + } + } + } + } +} diff --git a/codegen/src/main/resources/codegen-data/ari_7_0_0/endpoints.json b/codegen/src/main/resources/codegen-data/ari_7_0_0/endpoints.json new file mode 100644 index 00000000..1f77d370 --- /dev/null +++ b/codegen/src/main/resources/codegen-data/ari_7_0_0/endpoints.json @@ -0,0 +1,263 @@ +{ + "_copyright": "Copyright (C) 2012 - 2013, Digium, Inc.", + "_author": "David M. Lee, II ", + "_svn_revision": "$Revision$", + "apiVersion": "2.0.0", + "swaggerVersion": "1.1", + "basePath": "http://localhost:8088/ari", + "resourcePath": "/api-docs/endpoints.{format}", + "apis": [ + { + "path": "/endpoints", + "description": "Asterisk endpoints", + "operations": [ + { + "httpMethod": "GET", + "summary": "List all endpoints.", + "nickname": "list", + "responseClass": "List[Endpoint]" + } + ] + }, + { + "path": "/endpoints/sendMessage", + "description": "Send a message to some technology URI or endpoint.", + "operations": [ + { + "httpMethod": "PUT", + "summary": "Send a message to some technology URI or endpoint.", + "nickname": "sendMessage", + "responseClass": "void", + "parameters": [ + { + "name": "to", + "description": "The endpoint resource or technology specific URI to send the message to. Valid resources are sip, pjsip, and xmpp.", + "paramType": "query", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "from", + "description": "The endpoint resource or technology specific identity to send this message from. Valid resources are sip, pjsip, and xmpp.", + "paramType": "query", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "body", + "description": "The body of the message", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "variables", + "descriptioni": "The \"variables\" key in the body object holds technology specific key/value pairs to append to the message. These can be interpreted and used by the various resource types; for example, pjsip and sip resource types will add the key/value pairs as SIP headers,", + "paramType": "body", + "required": false, + "dataType": "containers", + "allowMultiple": false + } + ], + "errorResponses": [ + { + "code": 400, + "reason": "Invalid parameters for sending a message." + }, + { + "code": 404, + "reason": "Endpoint not found" + } + ] + } + ] + }, + { + "path": "/endpoints/{tech}", + "description": "Asterisk endpoints", + "operations": [ + { + "httpMethod": "GET", + "summary": "List available endoints for a given endpoint technology.", + "nickname": "listByTech", + "responseClass": "List[Endpoint]", + "parameters": [ + { + "name": "tech", + "description": "Technology of the endpoints (sip,iax2,...)", + "paramType": "path", + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Endpoints not found" + } + ] + } + ] + }, + { + "path": "/endpoints/{tech}/{resource}", + "description": "Single endpoint", + "operations": [ + { + "httpMethod": "GET", + "summary": "Details for an endpoint.", + "nickname": "get", + "responseClass": "Endpoint", + "parameters": [ + { + "name": "tech", + "description": "Technology of the endpoint", + "paramType": "path", + "dataType": "string" + }, + { + "name": "resource", + "description": "ID of the endpoint", + "paramType": "path", + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 400, + "reason": "Invalid parameters for sending a message." + }, + { + "code": 404, + "reason": "Endpoints not found" + } + ] + } + ] + }, + { + "path": "/endpoints/{tech}/{resource}/sendMessage", + "description": "Send a message to some endpoint in a technology.", + "operations": [ + { + "httpMethod": "PUT", + "summary": "Send a message to some endpoint in a technology.", + "nickname": "sendMessageToEndpoint", + "responseClass": "void", + "parameters": [ + { + "name": "tech", + "description": "Technology of the endpoint", + "paramType": "path", + "dataType": "string" + }, + { + "name": "resource", + "description": "ID of the endpoint", + "paramType": "path", + "dataType": "string" + }, + { + "name": "from", + "description": "The endpoint resource or technology specific identity to send this message from. Valid resources are sip, pjsip, and xmpp.", + "paramType": "query", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "body", + "description": "The body of the message", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "variables", + "descriptioni": "The \"variables\" key in the body object holds technology specific key/value pairs to append to the message. These can be interpreted and used by the various resource types; for example, pjsip and sip resource types will add the key/value pairs as SIP headers,", + "paramType": "body", + "required": false, + "dataType": "containers", + "allowMultiple": false + } + ], + "errorResponses": [ + { + "code": 400, + "reason": "Invalid parameters for sending a message." + }, + { + "code": 404, + "reason": "Endpoint not found" + } + ] + } + ] + } + ], + "models": { + "Endpoint": { + "id": "Endpoint", + "description": "An external device that may offer/accept calls to/from Asterisk.\n\nUnlike most resources, which have a single unique identifier, an endpoint is uniquely identified by the technology/resource pair.", + "properties": { + "technology": { + "type": "string", + "description": "Technology of the endpoint", + "required": true + }, + "resource": { + "type": "string", + "description": "Identifier of the endpoint, specific to the given technology.", + "required": true + }, + "state": { + "type": "string", + "description": "Endpoint's state", + "required": false, + "allowableValues": { + "valueType": "LIST", + "values": [ + "unknown", + "offline", + "online" + ] + } + }, + "channel_ids": { + "type": "List[string]", + "description": "Id's of channels associated with this endpoint", + "required": true + } + } + }, + "TextMessage": { + "id": "TextMessage", + "description": "A text message.", + "properties": { + "from": { + "type": "string", + "description": "A technology specific URI specifying the source of the message. For sip and pjsip technologies, any SIP URI can be specified. For xmpp, the URI must correspond to the client connection being used to send the message.", + "required": true + }, + "to": { + "type": "string", + "description": "A technology specific URI specifying the destination of the message. Valid technologies include sip, pjsip, and xmp. The destination of a message should be an endpoint.", + "required": true + }, + "body": { + "type": "string", + "description": "The text of the message.", + "required": true + }, + "variables": { + "type": "object", + "description": "Technology specific key/value pairs (JSON object) associated with the message.", + "required": false + } + } + } + } +} diff --git a/codegen/src/main/resources/codegen-data/ari_7_0_0/events.json b/codegen/src/main/resources/codegen-data/ari_7_0_0/events.json new file mode 100644 index 00000000..c9822f6c --- /dev/null +++ b/codegen/src/main/resources/codegen-data/ari_7_0_0/events.json @@ -0,0 +1,918 @@ +{ + "_copyright": "Copyright (C) 2012 - 2013, Digium, Inc.", + "_author": "David M. Lee, II ", + "_svn_revision": "$Revision$", + "apiVersion": "2.0.0", + "swaggerVersion": "1.2", + "basePath": "http://localhost:8088/ari", + "resourcePath": "/api-docs/events.{format}", + "requiresModules": [ + "res_http_websocket" + ], + "apis": [ + { + "path": "/events", + "description": "Events from Asterisk to applications", + "operations": [ + { + "httpMethod": "GET", + "upgrade": "websocket", + "websocketProtocol": "ari", + "summary": "WebSocket connection for events.", + "nickname": "eventWebsocket", + "responseClass": "Message", + "parameters": [ + { + "name": "app", + "description": "Applications to subscribe to.", + "paramType": "query", + "required": true, + "allowMultiple": true, + "dataType": "string" + }, + { + "name": "subscribeAll", + "description": "Subscribe to all Asterisk events. If provided, the applications listed will be subscribed to all events, effectively disabling the application specific subscriptions. Default is 'false'.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "boolean" + } + ] + } + ] + }, + { + "path": "/events/user/{eventName}", + "description": "Stasis application user events", + "operations": [ + { + "httpMethod": "POST", + "summary": "Generate a user event.", + "nickname": "userEvent", + "responseClass": "void", + "parameters": [ + { + "name": "eventName", + "description": "Event name", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "application", + "description": "The name of the application that will receive this event", + "paramType": "query", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "source", + "description": "URI for event source (channel:{channelId}, bridge:{bridgeId}, endpoint:{tech}/{resource}, deviceState:{deviceName}", + "paramType": "query", + "required": false, + "allowMultiple": true, + "dataType": "string" + }, + { + "name": "variables", + "description": "The \"variables\" key in the body object holds custom key/value pairs to add to the user event. Ex. { \"variables\": { \"key\": \"value\" } }", + "paramType": "body", + "required": false, + "allowMultiple": false, + "dataType": "containers" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Application does not exist." + }, + { + "code": 422, + "reason": "Event source not found." + }, + { + "code": 400, + "reason": "Invalid even tsource URI or userevent data." + } + ] + } + ] + } + ], + "models": { + "Message": { + "id": "Message", + "description": "Base type for errors and events", + "discriminator": "type", + "properties": { + "type": { + "type": "string", + "required": true, + "description": "Indicates the type of this message." + }, + "asterisk_id": { + "type": "string", + "required": false, + "description": "The unique ID for the Asterisk instance that raised this event." + } + }, + "subTypes": [ + "MissingParams", + "Event" + ] + }, + "MissingParams": { + "id": "MissingParams", + "description": "Error event sent when required params are missing.", + "properties": { + "params": { + "required": true, + "type": "List[string]", + "description": "A list of the missing parameters" + } + } + }, + "Event": { + "id": "Event", + "description": "Base type for asynchronous events from Asterisk.", + "properties": { + "application": { + "type": "string", + "description": "Name of the application receiving the event.", + "required": true + }, + "timestamp": { + "type": "Date", + "description": "Time at which this event was created.", + "required": true + } + }, + "subTypes": [ + "DeviceStateChanged", + "PlaybackStarted", + "PlaybackContinuing", + "PlaybackFinished", + "RecordingStarted", + "RecordingFinished", + "RecordingFailed", + "ApplicationMoveFailed", + "ApplicationReplaced", + "BridgeCreated", + "BridgeDestroyed", + "BridgeMerged", + "BridgeBlindTransfer", + "BridgeAttendedTransfer", + "BridgeVideoSourceChanged", + "ChannelCreated", + "ChannelDestroyed", + "ChannelEnteredBridge", + "ChannelLeftBridge", + "ChannelStateChange", + "ChannelDtmfReceived", + "ChannelDialplan", + "ChannelCallerId", + "ChannelUserevent", + "ChannelHangupRequest", + "ChannelVarset", + "ChannelTalkingStarted", + "ChannelTalkingFinished", + "ChannelHold", + "ChannelUnhold", + "ContactStatusChange", + "EndpointStateChange", + "Dial", + "StasisEnd", + "StasisStart", + "TextMessageReceived", + "ChannelConnectedLine", + "PeerStatusChange" + ] + }, + "ContactInfo": { + "id": "ContactInfo", + "description": "Detailed information about a contact on an endpoint.", + "properties": { + "uri": { + "type": "string", + "description": "The location of the contact.", + "required": true + }, + "contact_status": { + "type": "string", + "description": "The current status of the contact.", + "required": true, + "allowableValues": { + "valueType": "LIST", + "values": [ + "Unreachable", + "Reachable", + "Unknown", + "NonQualified", + "Removed" + ] + } + }, + "aor": { + "type": "string", + "description": "The Address of Record this contact belongs to.", + "required": true + }, + "roundtrip_usec": { + "type": "string", + "description": "Current round trip time, in microseconds, for the contact.", + "required": false + } + } + }, + "Peer": { + "id": "Peer", + "description": "Detailed information about a remote peer that communicates with Asterisk.", + "properties": { + "peer_status": { + "type": "string", + "description": "The current state of the peer. Note that the values of the status are dependent on the underlying peer technology.", + "required": true + }, + "cause": { + "type": "string", + "description": "An optional reason associated with the change in peer_status.", + "required": false + }, + "address": { + "type": "string", + "description": "The IP address of the peer.", + "required": false + }, + "port": { + "type": "string", + "description": "The port of the peer.", + "required": false + }, + "time": { + "type": "string", + "description": "The last known time the peer was contacted.", + "required": false + } + } + }, + "DeviceStateChanged": { + "id": "DeviceStateChanged", + "description": "Notification that a device state has changed.", + "properties": { + "device_state": { + "type": "DeviceState", + "description": "Device state object", + "required": true + } + } + }, + "PlaybackStarted": { + "id": "PlaybackStarted", + "description": "Event showing the start of a media playback operation.", + "properties": { + "playback": { + "type": "Playback", + "description": "Playback control object", + "required": true + } + } + }, + "PlaybackContinuing": { + "id": "PlaybackContinuing", + "description": "Event showing the continuation of a media playback operation from one media URI to the next in the list.", + "properties": { + "playback": { + "type": "Playback", + "description": "Playback control object", + "required": true + } + } + }, + "PlaybackFinished": { + "id": "PlaybackFinished", + "description": "Event showing the completion of a media playback operation.", + "properties": { + "playback": { + "type": "Playback", + "description": "Playback control object", + "required": true + } + } + }, + "RecordingStarted": { + "id": "RecordingStarted", + "description": "Event showing the start of a recording operation.", + "properties": { + "recording": { + "type": "LiveRecording", + "description": "Recording control object", + "required": true + } + } + }, + "RecordingFinished": { + "id": "RecordingFinished", + "description": "Event showing the completion of a recording operation.", + "properties": { + "recording": { + "type": "LiveRecording", + "description": "Recording control object", + "required": true + } + } + }, + "RecordingFailed": { + "id": "RecordingFailed", + "description": "Event showing failure of a recording operation.", + "properties": { + "recording": { + "type": "LiveRecording", + "description": "Recording control object", + "required": true + } + } + }, + "ApplicationMoveFailed": { + "id": "ApplicationMoveFailed", + "description": "Notification that trying to move a channel to another Stasis application failed.", + "properties": { + "channel": { + "required": true, + "type": "Channel" + }, + "destination": { + "required": true, + "type": "string" + }, + "args": { + "required": true, + "type": "List[string]", + "description": "Arguments to the application" + } + } + }, + "ApplicationReplaced": { + "id": "ApplicationReplaced", + "description": "Notification that another WebSocket has taken over for an application.\n\nAn application may only be subscribed to by a single WebSocket at a time. If multiple WebSockets attempt to subscribe to the same application, the newer WebSocket wins, and the older one receives this event.", + "properties": {} + }, + "BridgeCreated": { + "id": "BridgeCreated", + "description": "Notification that a bridge has been created.", + "properties": { + "bridge": { + "required": true, + "type": "Bridge" + } + } + }, + "BridgeDestroyed": { + "id": "BridgeDestroyed", + "description": "Notification that a bridge has been destroyed.", + "properties": { + "bridge": { + "required": true, + "type": "Bridge" + } + } + }, + "BridgeMerged": { + "id": "BridgeMerged", + "description": "Notification that one bridge has merged into another.", + "properties": { + "bridge": { + "required": true, + "type": "Bridge" + }, + "bridge_from": { + "required": true, + "type": "Bridge" + } + } + }, + "BridgeVideoSourceChanged": { + "id": "BridgeVideoSourceChanged", + "description": "Notification that the source of video in a bridge has changed.", + "properties": { + "bridge": { + "required": true, + "type": "Bridge" + }, + "old_video_source_id": { + "required": false, + "type": "string" + } + } + }, + "BridgeBlindTransfer": { + "id": "BridgeBlindTransfer", + "description": "Notification that a blind transfer has occurred.", + "properties": { + "channel": { + "description": "The channel performing the blind transfer", + "required": true, + "type": "Channel" + }, + "replace_channel": { + "description": "The channel that is replacing transferer when the transferee(s) can not be transferred directly", + "required": false, + "type": "Channel" + }, + "transferee": { + "description": "The channel that is being transferred", + "required": false, + "type": "Channel" + }, + "exten": { + "description": "The extension transferred to", + "required": true, + "type": "string" + }, + "context": { + "description": "The context transferred to", + "required": true, + "type": "string" + }, + "result": { + "description": "The result of the transfer attempt", + "required": true, + "type": "string" + }, + "is_external": { + "description": "Whether the transfer was externally initiated or not", + "required": true, + "type": "boolean" + }, + "bridge": { + "description": "The bridge being transferred", + "type": "Bridge" + } + } + }, + "BridgeAttendedTransfer": { + "id": "BridgeAttendedTransfer", + "description": "Notification that an attended transfer has occurred.", + "properties": { + "transferer_first_leg": { + "description": "First leg of the transferer", + "required": true, + "type": "Channel" + }, + "transferer_second_leg": { + "description": "Second leg of the transferer", + "required": true, + "type": "Channel" + }, + "replace_channel": { + "description": "The channel that is replacing transferer_first_leg in the swap", + "required": false, + "type": "Channel" + }, + "transferee": { + "description": "The channel that is being transferred", + "required": false, + "type": "Channel" + }, + "transfer_target": { + "description": "The channel that is being transferred to", + "required": false, + "type": "Channel" + }, + "result": { + "description": "The result of the transfer attempt", + "required": true, + "type": "string" + }, + "is_external": { + "description": "Whether the transfer was externally initiated or not", + "required": true, + "type": "boolean" + }, + "transferer_first_leg_bridge": { + "description": "Bridge the transferer first leg is in", + "type": "Bridge" + }, + "transferer_second_leg_bridge": { + "description": "Bridge the transferer second leg is in", + "type": "Bridge" + }, + "destination_type": { + "description": "How the transfer was accomplished", + "required": true, + "type": "string" + }, + "destination_bridge": { + "description": "Bridge that survived the merge result", + "type": "string" + }, + "destination_application": { + "description": "Application that has been transferred into", + "type": "string" + }, + "destination_link_first_leg": { + "description": "First leg of a link transfer result", + "type": "Channel" + }, + "destination_link_second_leg": { + "description": "Second leg of a link transfer result", + "type": "Channel" + }, + "destination_threeway_channel": { + "description": "Transferer channel that survived the threeway result", + "type": "Channel" + }, + "destination_threeway_bridge": { + "description": "Bridge that survived the threeway result", + "type": "Bridge" + } + } + }, + "ChannelCreated": { + "id": "ChannelCreated", + "description": "Notification that a channel has been created.", + "properties": { + "channel": { + "required": true, + "type": "Channel" + } + } + }, + "ChannelDestroyed": { + "id": "ChannelDestroyed", + "description": "Notification that a channel has been destroyed.", + "properties": { + "cause": { + "required": true, + "description": "Integer representation of the cause of the hangup", + "type": "int" + }, + "cause_txt": { + "required": true, + "description": "Text representation of the cause of the hangup", + "type": "string" + }, + "channel": { + "required": true, + "type": "Channel" + } + } + }, + "ChannelEnteredBridge": { + "id": "ChannelEnteredBridge", + "description": "Notification that a channel has entered a bridge.", + "properties": { + "bridge": { + "required": true, + "type": "Bridge" + }, + "channel": { + "type": "Channel" + } + } + }, + "ChannelLeftBridge": { + "id": "ChannelLeftBridge", + "description": "Notification that a channel has left a bridge.", + "properties": { + "bridge": { + "required": true, + "type": "Bridge" + }, + "channel": { + "required": true, + "type": "Channel" + } + } + }, + "ChannelStateChange": { + "id": "ChannelStateChange", + "description": "Notification of a channel's state change.", + "properties": { + "channel": { + "required": true, + "type": "Channel" + } + } + }, + "ChannelDtmfReceived": { + "id": "ChannelDtmfReceived", + "description": "DTMF received on a channel.\n\nThis event is sent when the DTMF ends. There is no notification about the start of DTMF", + "properties": { + "digit": { + "required": true, + "type": "string", + "description": "DTMF digit received (0-9, A-E, # or *)" + }, + "duration_ms": { + "required": true, + "type": "int", + "description": "Number of milliseconds DTMF was received" + }, + "channel": { + "required": true, + "type": "Channel", + "description": "The channel on which DTMF was received" + } + } + }, + "ChannelDialplan": { + "id": "ChannelDialplan", + "description": "Channel changed location in the dialplan.", + "properties": { + "channel": { + "required": true, + "type": "Channel", + "description": "The channel that changed dialplan location." + }, + "dialplan_app": { + "required": true, + "type": "string", + "description": "The application about to be executed." + }, + "dialplan_app_data": { + "required": true, + "type": "string", + "description": "The data to be passed to the application." + } + } + }, + "ChannelCallerId": { + "id": "ChannelCallerId", + "description": "Channel changed Caller ID.", + "properties": { + "caller_presentation": { + "required": true, + "type": "int", + "description": "The integer representation of the Caller Presentation value." + }, + "caller_presentation_txt": { + "required": true, + "type": "string", + "description": "The text representation of the Caller Presentation value." + }, + "channel": { + "required": true, + "type": "Channel", + "description": "The channel that changed Caller ID." + } + } + }, + "ChannelUserevent": { + "id": "ChannelUserevent", + "description": "User-generated event with additional user-defined fields in the object.", + "properties": { + "eventname": { + "required": true, + "type": "string", + "description": "The name of the user event." + }, + "channel": { + "required": false, + "type": "Channel", + "description": "A channel that is signaled with the user event." + }, + "bridge": { + "required": false, + "type": "Bridge", + "description": "A bridge that is signaled with the user event." + }, + "endpoint": { + "required": false, + "type": "Endpoint", + "description": "A endpoint that is signaled with the user event." + }, + "userevent": { + "required": true, + "type": "object", + "description": "Custom Userevent data" + } + } + }, + "ChannelHangupRequest": { + "id": "ChannelHangupRequest", + "description": "A hangup was requested on the channel.", + "properties": { + "cause": { + "type": "int", + "description": "Integer representation of the cause of the hangup." + }, + "soft": { + "type": "boolean", + "description": "Whether the hangup request was a soft hangup request." + }, + "channel": { + "required": true, + "type": "Channel", + "description": "The channel on which the hangup was requested." + } + } + }, + "ChannelVarset": { + "id": "ChannelVarset", + "description": "Channel variable changed.", + "properties": { + "variable": { + "required": true, + "type": "string", + "description": "The variable that changed." + }, + "value": { + "required": true, + "type": "string", + "description": "The new value of the variable." + }, + "channel": { + "required": false, + "type": "Channel", + "description": "The channel on which the variable was set.\n\nIf missing, the variable is a global variable." + } + } + }, + "ChannelHold": { + "id": "ChannelHold", + "description": "A channel initiated a media hold.", + "properties": { + "channel": { + "required": true, + "type": "Channel", + "description": "The channel that initiated the hold event." + }, + "musicclass": { + "required": false, + "type": "string", + "description": "The music on hold class that the initiator requested." + } + } + }, + "ChannelUnhold": { + "id": "ChannelUnhold", + "description": "A channel initiated a media unhold.", + "properties": { + "channel": { + "required": true, + "type": "Channel", + "description": "The channel that initiated the unhold event." + } + } + }, + "ChannelTalkingStarted": { + "id": "ChannelTalkingStarted", + "description": "Talking was detected on the channel.", + "properties": { + "channel": { + "required": true, + "type": "Channel", + "description": "The channel on which talking started." + } + } + }, + "ChannelTalkingFinished": { + "id": "ChannelTalkingFinished", + "description": "Talking is no longer detected on the channel.", + "properties": { + "channel": { + "required": true, + "type": "Channel", + "description": "The channel on which talking completed." + }, + "duration": { + "required": true, + "type": "int", + "description": "The length of time, in milliseconds, that talking was detected on the channel" + } + } + }, + "ContactStatusChange": { + "id": "ContactStatusChange", + "description": "The state of a contact on an endpoint has changed.", + "properties": { + "endpoint": { + "required": true, + "type": "Endpoint" + }, + "contact_info": { + "required": true, + "type": "ContactInfo" + } + } + }, + "PeerStatusChange": { + "id": "PeerStatusChange", + "description": "The state of a peer associated with an endpoint has changed.", + "properties": { + "endpoint": { + "required": true, + "type": "Endpoint" + }, + "peer": { + "required": true, + "type": "Peer" + } + } + }, + "EndpointStateChange": { + "id": "EndpointStateChange", + "description": "Endpoint state changed.", + "properties": { + "endpoint": { + "required": true, + "type": "Endpoint" + } + } + }, + "Dial": { + "id": "Dial", + "description": "Dialing state has changed.", + "properties": { + "caller": { + "required": false, + "type": "Channel", + "description": "The calling channel." + }, + "peer": { + "required": true, + "type": "Channel", + "description": "The dialed channel." + }, + "forward": { + "required": false, + "type": "string", + "description": "Forwarding target requested by the original dialed channel." + }, + "forwarded": { + "required": false, + "type": "Channel", + "description": "Channel that the caller has been forwarded to." + }, + "dialstring": { + "required": false, + "type": "string", + "description": "The dial string for calling the peer channel." + }, + "dialstatus": { + "required": true, + "type": "string", + "description": "Current status of the dialing attempt to the peer." + } + } + }, + "StasisEnd": { + "id": "StasisEnd", + "description": "Notification that a channel has left a Stasis application.", + "properties": { + "channel": { + "required": true, + "type": "Channel" + } + } + }, + "StasisStart": { + "id": "StasisStart", + "description": "Notification that a channel has entered a Stasis application.", + "properties": { + "args": { + "required": true, + "type": "List[string]", + "description": "Arguments to the application" + }, + "channel": { + "required": true, + "type": "Channel" + }, + "replace_channel": { + "required": false, + "type": "Channel" + } + } + }, + "TextMessageReceived": { + "id": "TextMessageReceived", + "description": "A text message was received from an endpoint.", + "properties": { + "message": { + "required": true, + "type": "TextMessage" + }, + "endpoint": { + "required": false, + "type": "Endpoint" + } + } + }, + "ChannelConnectedLine": { + "id": "ChannelConnectedLine", + "description": "Channel changed Connected Line.", + "properties": { + "channel": { + "required": true, + "type": "Channel", + "description": "The channel whose connected line has changed." + } + } + } + } +} diff --git a/codegen/src/main/resources/codegen-data/ari_7_0_0/mailboxes.json b/codegen/src/main/resources/codegen-data/ari_7_0_0/mailboxes.json new file mode 100644 index 00000000..8f5941b8 --- /dev/null +++ b/codegen/src/main/resources/codegen-data/ari_7_0_0/mailboxes.json @@ -0,0 +1,137 @@ +{ + "_copyright": "Copyright (C) 2013, Digium, Inc.", + "_author": "Jonathan Rose ", + "_svn_revision": "$Revision$", + "apiVersion": "2.0.0", + "swaggerVersion": "1.1", + "basePath": "http://localhost:8088/ari", + "resourcePath": "/api-docs/mailboxes.{format}", + "requiresModules": [ + "res_stasis_mailbox" + ], + "apis": [ + { + "path": "/mailboxes", + "description": "Mailboxes", + "operations": [ + { + "httpMethod": "GET", + "summary": "List all mailboxes.", + "nickname": "list", + "responseClass": "List[Mailbox]" + } + ] + }, + { + "path": "/mailboxes/{mailboxName}", + "description": "Mailbox state", + "operations": [ + { + "httpMethod": "GET", + "summary": "Retrieve the current state of a mailbox.", + "nickname": "get", + "responseClass": "Mailbox", + "parameters": [ + { + "name": "mailboxName", + "description": "Name of the mailbox", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Mailbox not found" + } + ] + }, + { + "httpMethod": "PUT", + "summary": "Change the state of a mailbox. (Note - implicitly creates the mailbox).", + "nickname": "update", + "responseClass": "void", + "parameters": [ + { + "name": "mailboxName", + "description": "Name of the mailbox", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "oldMessages", + "description": "Count of old messages in the mailbox", + "paramType": "query", + "required": true, + "allowMultiple": false, + "dataType": "int" + }, + { + "name": "newMessages", + "description": "Count of new messages in the mailbox", + "paramType": "query", + "required": true, + "allowMultiple": false, + "dataType": "int" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Mailbox not found" + } + ] + }, + { + "httpMethod": "DELETE", + "summary": "Destroy a mailbox.", + "nickname": "delete", + "responseClass": "void", + "parameters": [ + { + "name": "mailboxName", + "description": "Name of the mailbox", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Mailbox not found" + } + ] + } + ] + } + ], + "models": { + "Mailbox": { + "id": "Mailbox", + "description": "Represents the state of a mailbox.", + "properties": { + "name": { + "type": "string", + "description": "Name of the mailbox.", + "required": true + }, + "old_messages": { + "type": "int", + "description": "Count of old messages in the mailbox.", + "required": true + }, + "new_messages": { + "type": "int", + "description": "Count of new messages in the mailbox.", + "required": true + } + } + } + } +} diff --git a/codegen/src/main/resources/codegen-data/ari_7_0_0/playbacks.json b/codegen/src/main/resources/codegen-data/ari_7_0_0/playbacks.json new file mode 100644 index 00000000..a78dcae7 --- /dev/null +++ b/codegen/src/main/resources/codegen-data/ari_7_0_0/playbacks.json @@ -0,0 +1,164 @@ +{ + "_copyright": "Copyright (C) 2012 - 2013, Digium, Inc.", + "_author": "David M. Lee, II ", + "_svn_revision": "$Revision$", + "apiVersion": "2.0.0", + "swaggerVersion": "1.1", + "basePath": "http://localhost:8088/ari", + "resourcePath": "/api-docs/playbacks.{format}", + "requiresModules": [ + "res_stasis_playback" + ], + "apis": [ + { + "path": "/playbacks/{playbackId}", + "description": "Control object for a playback operation.", + "operations": [ + { + "httpMethod": "GET", + "summary": "Get a playback's details.", + "nickname": "get", + "responseClass": "Playback", + "parameters": [ + { + "name": "playbackId", + "description": "Playback's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "The playback cannot be found" + } + ] + }, + { + "httpMethod": "DELETE", + "summary": "Stop a playback.", + "nickname": "stop", + "responseClass": "void", + "parameters": [ + { + "name": "playbackId", + "description": "Playback's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "The playback cannot be found" + } + ] + } + ] + }, + { + "path": "/playbacks/{playbackId}/control", + "description": "Control object for a playback operation.", + "operations": [ + { + "httpMethod": "POST", + "summary": "Control a playback.", + "nickname": "control", + "responseClass": "void", + "parameters": [ + { + "name": "playbackId", + "description": "Playback's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "operation", + "description": "Operation to perform on the playback.", + "paramType": "query", + "required": true, + "allowMultiple": false, + "dataType": "string", + "allowableValues": { + "valueType": "LIST", + "values": [ + "restart", + "pause", + "unpause", + "reverse", + "forward" + ] + } + } + ], + "errorResponses": [ + { + "code": 400, + "reason": "The provided operation parameter was invalid" + }, + { + "code": 404, + "reason": "The playback cannot be found" + }, + { + "code": 409, + "reason": "The operation cannot be performed in the playback's current state" + } +] + } + ] + } + ], + "models": { + "Playback": { + "id": "Playback", + "description": "Object representing the playback of media to a channel", + "properties": { + "id": { + "type": "string", + "description": "ID for this playback operation", + "required": true + }, + "media_uri": { + "type": "string", + "description": "The URI for the media currently being played back.", + "required": true + }, + "next_media_uri": { + "type": "string", + "description": "If a list of URIs is being played, the next media URI to be played back.", + "required": false + }, + "target_uri": { + "type": "string", + "description": "URI for the channel or bridge to play the media on", + "required": true + }, + "language": { + "type": "string", + "description": "For media types that support multiple languages, the language requested for playback." + }, + "state": { + "type": "string", + "description": "Current state of the playback operation.", + "required": true, + "allowableValues": { + "valueType": "LIST", + "values": [ + "queued", + "playing", + "continuing", + "done" + ] + } + } + } + } + } +} diff --git a/codegen/src/main/resources/codegen-data/ari_7_0_0/recordings.json b/codegen/src/main/resources/codegen-data/ari_7_0_0/recordings.json new file mode 100644 index 00000000..6ffd6d8e --- /dev/null +++ b/codegen/src/main/resources/codegen-data/ari_7_0_0/recordings.json @@ -0,0 +1,413 @@ +{ + "_copyright": "Copyright (C) 2012 - 2013, Digium, Inc.", + "_author": "David M. Lee, II ", + "_svn_revision": "$Revision$", + "apiVersion": "2.0.0", + "swaggerVersion": "1.1", + "basePath": "http://localhost:8088/ari", + "resourcePath": "/api-docs/recordings.{format}", + "requiresModules": [ + "res_stasis_recording" + ], + "apis": [ + { + "path": "/recordings/stored", + "description": "Recordings", + "operations": [ + { + "httpMethod": "GET", + "summary": "List recordings that are complete.", + "nickname": "listStored", + "responseClass": "List[StoredRecording]" + } + ] + }, + { + "path": "/recordings/stored/{recordingName}", + "description": "Individual recording", + "operations": [ + { + "httpMethod": "GET", + "summary": "Get a stored recording's details.", + "nickname": "getStored", + "responseClass": "StoredRecording", + "parameters": [ + { + "name": "recordingName", + "description": "The name of the recording", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Recording not found" + } + ] + }, + { + "httpMethod": "DELETE", + "summary": "Delete a stored recording.", + "nickname": "deleteStored", + "responseClass": "void", + "parameters": [ + { + "name": "recordingName", + "description": "The name of the recording", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Recording not found" + } + ] + } + ] + }, + { + "path": "/recordings/stored/{recordingName}/file", + "description": "The actual file associated with the stored recording", + "operations": [ + { + "httpMethod": "GET", + "summary": "Get the file associated with the stored recording.", + "nickname": "getStoredFile", + "responseClass": "binary", + "parameters": [ + { + "name": "recordingName", + "description": "The name of the recording", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 403, + "reason": "The recording file could not be opened" + }, + { + "code": 404, + "reason": "Recording not found" + } + ] + } + ] + }, + { + "path": "/recordings/stored/{recordingName}/copy", + "description": "Copy an individual recording", + "operations": [ + { + "httpMethod": "POST", + "summary": "Copy a stored recording.", + "nickname": "copyStored", + "responseClass": "StoredRecording", + "parameters": [ + { + "name": "recordingName", + "description": "The name of the recording to copy", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "destinationRecordingName", + "description": "The destination name of the recording", + "paramType": "query", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Recording not found" + }, + { + "code": 409, + "reason": "A recording with the same name already exists on the system" + } + ] + } + ] + }, + { + "path": "/recordings/live/{recordingName}", + "description": "A recording that is in progress", + "operations": [ + { + "httpMethod": "GET", + "summary": "List live recordings.", + "nickname": "getLive", + "responseClass": "LiveRecording", + "parameters": [ + { + "name": "recordingName", + "description": "The name of the recording", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Recording not found" + } + ] + }, + { + "httpMethod": "DELETE", + "summary": "Stop a live recording and discard it.", + "nickname": "cancel", + "responseClass": "void", + "parameters": [ + { + "name": "recordingName", + "description": "The name of the recording", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Recording not found" + } + ] + } + ] + }, + { + "path": "/recordings/live/{recordingName}/stop", + "operations": [ + { + "httpMethod": "POST", + "summary": "Stop a live recording and store it.", + "nickname": "stop", + "responseClass": "void", + "parameters": [ + { + "name": "recordingName", + "description": "The name of the recording", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Recording not found" + } + ] + } + ] + }, + { + "path": "/recordings/live/{recordingName}/pause", + "operations": [ + { + "httpMethod": "POST", + "summary": "Pause a live recording.", + "notes": "Pausing a recording suspends silence detection, which will be restarted when the recording is unpaused. Paused time is not included in the accounting for maxDurationSeconds.", + "nickname": "pause", + "responseClass": "void", + "parameters": [ + { + "name": "recordingName", + "description": "The name of the recording", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Recording not found" + }, + { + "code": 409, + "reason": "Recording not in session" + } + ] + }, + { + "httpMethod": "DELETE", + "summary": "Unpause a live recording.", + "nickname": "unpause", + "responseClass": "void", + "parameters": [ + { + "name": "recordingName", + "description": "The name of the recording", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Recording not found" + }, + { + "code": 409, + "reason": "Recording not in session" + } + ] + } + ] + }, + { + "path": "/recordings/live/{recordingName}/mute", + "operations": [ + { + "httpMethod": "POST", + "summary": "Mute a live recording.", + "notes": "Muting a recording suspends silence detection, which will be restarted when the recording is unmuted.", + "nickname": "mute", + "responseClass": "void", + "parameters": [ + { + "name": "recordingName", + "description": "The name of the recording", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Recording not found" + }, + { + "code": 409, + "reason": "Recording not in session" + } + ] + }, + { + "httpMethod": "DELETE", + "summary": "Unmute a live recording.", + "nickname": "unmute", + "responseClass": "void", + "parameters": [ + { + "name": "recordingName", + "description": "The name of the recording", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Recording not found" + }, + { + "code": 409, + "reason": "Recording not in session" + } + ] + } + ] + } + ], + "models": { + "StoredRecording": { + "id": "StoredRecording", + "description": "A past recording that may be played back.", + "properties": { + "name": { + "required": true, + "type": "string" + }, + "format": { + "required": true, + "type": "string" + } + } + }, + "LiveRecording": { + "id": "LiveRecording", + "description": "A recording that is in progress", + "properties": { + "name": { + "required": true, + "type": "string", + "description": "Base name for the recording" + }, + "format": { + "required": true, + "type": "string", + "description": "Recording format (wav, gsm, etc.)" + }, + "target_uri": { + "required": true, + "type": "string", + "description": "URI for the channel or bridge being recorded" + }, + "state": { + "required": true, + "type": "string", + "allowableValues": { + "valueType": "LIST", + "values": [ + "queued", + "recording", + "paused", + "done", + "failed", + "canceled" + ] + } + }, + "duration": { + "required": false, + "type": "int", + "description": "Duration in seconds of the recording" + }, + "talking_duration": { + "required": false, + "type": "int", + "description": "Duration of talking, in seconds, detected in the recording. This is only available if the recording was initiated with a non-zero maxSilenceSeconds." + }, + "silence_duration": { + "required": false, + "type": "int", + "description": "Duration of silence, in seconds, detected in the recording. This is only available if the recording was initiated with a non-zero maxSilenceSeconds." + }, + "cause": { + "required": false, + "type": "string", + "description": "Cause for recording failure if failed" + } + } + } + } +} diff --git a/codegen/src/main/resources/codegen-data/ari_7_0_0/sounds.json b/codegen/src/main/resources/codegen-data/ari_7_0_0/sounds.json new file mode 100644 index 00000000..8fbe1c57 --- /dev/null +++ b/codegen/src/main/resources/codegen-data/ari_7_0_0/sounds.json @@ -0,0 +1,99 @@ +{ + "_copyright": "Copyright (C) 2012 - 2013, Digium, Inc.", + "_author": "David M. Lee, II ", + "_svn_revision": "$Revision$", + "apiVersion": "2.0.0", + "swaggerVersion": "1.1", + "basePath": "http://localhost:8088/ari", + "resourcePath": "/api-docs/sounds.{format}", + "apis": [ + { + "path": "/sounds", + "description": "Sounds", + "operations": [ + { + "httpMethod": "GET", + "summary": "List all sounds.", + "nickname": "list", + "responseClass": "List[Sound]", + "parameters": [ + { + "name": "lang", + "description": "Lookup sound for a specific language.", + "paramType": "query", + "dataType": "string", + "required": false + }, + { + "name": "format", + "description": "Lookup sound in a specific format.", + "paramType": "query", + "dataType": "string", + "required": false, + "__note": "core show translation can show translation paths between formats, along with relative costs. so this could be just installed format, or we could follow that for transcoded formats." + } + ] + } + ] + }, + { + "path": "/sounds/{soundId}", + "description": "Individual sound", + "operations": [ + { + "httpMethod": "GET", + "summary": "Get a sound's details.", + "nickname": "get", + "responseClass": "Sound", + "parameters": [ + { + "name": "soundId", + "description": "Sound's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ] + } + ] + } + ], + "models": { + "FormatLangPair": { + "id": "FormatLangPair", + "description": "Identifies the format and language of a sound file", + "properties": { + "language": { + "required": true, + "type": "string" + }, + "format": { + "required": true, + "type": "string" + } + } + }, + "Sound": { + "id": "Sound", + "description": "A media file that may be played back.", + "properties": { + "id": { + "required": true, + "description": "Sound's identifier.", + "type": "string" + }, + "text": { + "required": false, + "description": "Text description of the sound, usually the words spoken.", + "type": "string" + }, + "formats": { + "required": true, + "description": "The formats and languages in which this sound is available.", + "type": "List[FormatLangPair]" + } + } + } + } +} From 5446c57154db13f2bcd570772ca6880c1c3f76dd Mon Sep 17 00:00:00 2001 From: Graham Brown Date: Wed, 23 Sep 2020 15:15:38 +0200 Subject: [PATCH 162/220] release 0.12.1 --- CHANGELOG.md | 7 ++++++- build.gradle | 2 +- 2 files changed, 7 insertions(+), 2 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index be927636..01cd4f21 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,7 +1,12 @@ # ARI4Java Changelog ## [Unreleased] -[Unreleased]: https://github.com/l3nz/ari4java/compare/v0.12.0...HEAD +[Unreleased]: https://github.com/l3nz/ari4java/compare/v0.12.1...HEAD + +## [0.12.1] +[0.12.1]: https://github.com/l3nz/ari4java/compare/v0.12.0...v0.12.1 +### Added +- ARI 4.1.3, 5.1.1 & 7.0.0 ## [0.12.0] [0.12.0]: https://github.com/l3nz/ari4java/compare/v0.11.0...v0.12.0 diff --git a/build.gradle b/build.gradle index 28d36e0a..4c48c60b 100644 --- a/build.gradle +++ b/build.gradle @@ -8,7 +8,7 @@ plugins { } group = "ch.loway.oss.ari4java" -version = "0.12.0" +version = "0.12.1" java { sourceCompatibility = JavaVersion.VERSION_1_8 From 2685e32b217c838c63a110c8a1e2377790313dc3 Mon Sep 17 00:00:00 2001 From: Graham Brown Date: Tue, 6 Oct 2020 00:09:32 +0200 Subject: [PATCH 163/220] fixing some `Code Smells` identified by SonarQube --- .../loway/oss/ari4java/codegen/DefMapper.java | 364 ++++++++++-------- .../loway/oss/ari4java/codegen/VERSION.java | 5 + .../codegen/{genJava => gen}/JavaGen.java | 13 +- .../{genJava => gen}/JavaInterface.java | 16 +- .../codegen/{genJava => gen}/JavaPkgInfo.java | 14 +- .../oss/ari4java/codegen/models/Action.java | 20 +- .../oss/ari4java/codegen/models/Apis.java | 18 +- .../codegen/models/AriBuilderInterface.java | 7 +- .../codegen/models/ClassTranslator.java | 16 +- .../oss/ari4java/codegen/models/Model.java | 10 +- .../ari4java/codegen/models/ModelField.java | 21 +- .../ari4java/codegen/models/Operation.java | 194 +++++----- .../loway/oss/ari4java/tools/HttpParam.java | 2 +- .../oss/ari4java/tools/http/HTTPLogger.java | 16 +- .../ari4java/tools/http/NettyHttpClient.java | 198 +++++----- .../tools/http/NettyHttpClientHandler.java | 11 +- .../tools/http/NettyWSClientHandler.java | 19 +- 17 files changed, 512 insertions(+), 432 deletions(-) rename codegen/src/main/java/ch/loway/oss/ari4java/codegen/{genJava => gen}/JavaGen.java (85%) rename codegen/src/main/java/ch/loway/oss/ari4java/codegen/{genJava => gen}/JavaInterface.java (88%) rename codegen/src/main/java/ch/loway/oss/ari4java/codegen/{genJava => gen}/JavaPkgInfo.java (80%) diff --git a/codegen/src/main/java/ch/loway/oss/ari4java/codegen/DefMapper.java b/codegen/src/main/java/ch/loway/oss/ari4java/codegen/DefMapper.java index bc528173..350babf3 100644 --- a/codegen/src/main/java/ch/loway/oss/ari4java/codegen/DefMapper.java +++ b/codegen/src/main/java/ch/loway/oss/ari4java/codegen/DefMapper.java @@ -1,9 +1,9 @@ package ch.loway.oss.ari4java.codegen; -import ch.loway.oss.ari4java.codegen.genJava.JavaGen; -import ch.loway.oss.ari4java.codegen.genJava.JavaInterface; -import ch.loway.oss.ari4java.codegen.genJava.JavaPkgInfo; +import ch.loway.oss.ari4java.codegen.gen.JavaGen; +import ch.loway.oss.ari4java.codegen.gen.JavaInterface; +import ch.loway.oss.ari4java.codegen.gen.JavaPkgInfo; import ch.loway.oss.ari4java.codegen.models.Action; import ch.loway.oss.ari4java.codegen.models.Apis; import ch.loway.oss.ari4java.codegen.models.AriBuilderInterface; @@ -15,9 +15,11 @@ import com.fasterxml.jackson.databind.ObjectMapper; import com.fasterxml.jackson.databind.node.ArrayNode; import com.google.googlejavaformat.java.Formatter; +import com.google.googlejavaformat.java.FormatterException; import java.io.File; import java.io.FileWriter; +import java.io.IOException; import java.io.PrintWriter; import java.util.ArrayList; import java.util.Arrays; @@ -39,23 +41,23 @@ */ public class DefMapper { - private List vers = new ArrayList<>(); - private List myModels = new ArrayList<>(); - private List myAPIs = new ArrayList<>(); - private Map interfaces = new HashMap<>(); + private final List vers = new ArrayList<>(); + private final List myModels = new ArrayList<>(); + private final List myAPIs = new ArrayList<>(); + private final Map interfaces = new HashMap<>(); + private final ObjectMapper om = new ObjectMapper(); + private final Formatter codeFormatter = new Formatter(); + private final Set messageInterfaces = new HashSet<>(); private String outputFolder; - private ObjectMapper om = new ObjectMapper(); - private Formatter codeFormatter = new Formatter(); - private Set messageInterfaces = new HashSet<>(); /** * Loads definitions from a module. * * @param f The source .json file * @param apiVersion The version of the API we are working with - * @throws Exception when error + * @throws IOException when parse error */ - public void parseJsonDefinition(File f, String apiVersion) throws Exception { + public void parseJsonDefinition(File f, String apiVersion) throws IOException { if (!vers.contains(apiVersion)) { vers.add(apiVersion); @@ -76,87 +78,98 @@ public void parseJsonDefinition(File f, String apiVersion) throws Exception { myAPIs.add(api1); if ("events.json".equals(f.getName())) { + extractEvents(lModels); + } + extractModels(apiVersion); + extractActions(apiVersion, api1); + extractActionOperations(apiVersion, api1); - Model typeMessage = null; - List otherModels = new ArrayList<>(); - - for (Model m : lModels) { - if (m.className.equalsIgnoreCase("Message")) { - typeMessage = m; - } else { - otherModels.add(m); - } - } - - if (typeMessage != null) { + } - StringBuilder defs = new StringBuilder(); - for (Model m : otherModels) { - if (defs.length() > 0) { - defs.append(",\n"); - } - defs.append(" @Type(value = ") - .append(m.getImplName()) - .append(".class, name = \"") - .append(m.getInterfaceName()) - .append("\")"); - messageInterfaces.add(m.getInterfaceName()); + private void extractActionOperations(String apiVersion, Apis api1) { + for (Action a : api1.actions) { + for (Operation o : a.operations) { + JavaInterface jio = interfaces.get(o.getInterfaceName()); + if (jio == null) { + jio = new JavaInterface(); + jio.pkgName = JavaPkgInfo.GENERATED_PKG_NAME + ".actions.requests"; + jio.className = o.getInterfaceName(); + interfaces.put(o.getInterfaceName(), jio); } - - typeMessage.additionalPreambleText = " @JsonTypeInfo(use = JsonTypeInfo.Id.NAME," - + " property = \"type\", visible = true)\n " - + "@JsonSubTypes({\n" - + defs - + "\n})\n"; - typeMessage.imports.add("com.fasterxml.jackson.annotation.JsonSubTypes"); - typeMessage.imports.add("com.fasterxml.jackson.annotation.JsonSubTypes.Type"); - typeMessage.imports.add("com.fasterxml.jackson.annotation.JsonTypeInfo"); + o.registerInterfaces(jio, apiVersion); } + } + } + private void extractActions(String apiVersion, Apis api1) { + JavaInterface jia = interfaces.get(api1.getInterfaceName()); + if (jia == null) { + jia = new JavaInterface(); + jia.pkgName = JavaPkgInfo.GENERATED_PKG_NAME + ".actions"; + jia.className = api1.getInterfaceName(); + interfaces.put(api1.getInterfaceName(), jia); } + api1.registerInterfaces(jia, apiVersion); + } - // Now generate the interface + private void extractModels(String apiVersion) { for (Model m : myModels) { JavaInterface jim = interfaces.get(m.getInterfaceName()); if (jim == null) { jim = new JavaInterface(); - jim.pkgName = "ch.loway.oss.ari4java.generated.models"; + jim.pkgName = JavaPkgInfo.GENERATED_PKG_NAME + ".models"; jim.className = m.getInterfaceName(); jim.parent = m.extendsModel; interfaces.put(m.getInterfaceName(), jim); } m.registerInterfaces(jim, apiVersion); } + } - JavaInterface jia = interfaces.get(api1.getInterfaceName()); - if (jia == null) { - jia = new JavaInterface(); - jia.pkgName = "ch.loway.oss.ari4java.generated.actions"; - jia.className = api1.getInterfaceName(); - interfaces.put(api1.getInterfaceName(), jia); + private void extractEvents(List lModels) { + Model typeMessage = null; + List otherModels = new ArrayList<>(); + + for (Model m : lModels) { + if (m.className.equalsIgnoreCase("Message")) { + typeMessage = m; + } else { + otherModels.add(m); + } } - api1.registerInterfaces(jia, apiVersion); - for (Action a : api1.actions) { - for (Operation o : a.operations) { - JavaInterface jio = interfaces.get(o.getInterfaceName()); - if (jio == null) { - jio = new JavaInterface(); - jio.pkgName = "ch.loway.oss.ari4java.generated.actions.requests"; - jio.className = o.getInterfaceName(); - interfaces.put(o.getInterfaceName(), jio); + if (typeMessage != null) { + + StringBuilder defs = new StringBuilder(); + for (Model m : otherModels) { + if (defs.length() > 0) { + defs.append(",\n"); } - o.registerInterfaces(jio, apiVersion); + defs.append(" @Type(value = ") + .append(m.getImplName()) + .append(".class, name = \"") + .append(m.getInterfaceName()) + .append("\")"); + messageInterfaces.add(m.getInterfaceName()); } - } + typeMessage.additionalPreambleText = " @JsonTypeInfo(use = JsonTypeInfo.Id.NAME," + + " property = \"type\", visible = true)\n " + + "@JsonSubTypes({\n" + + defs + + "\n})\n"; + typeMessage.imports.add("com.fasterxml.jackson.annotation.JsonSubTypes"); + typeMessage.imports.add("com.fasterxml.jackson.annotation.JsonSubTypes.Type"); + typeMessage.imports.add("com.fasterxml.jackson.annotation.JsonTypeInfo"); + } } /** * Generate all files. - * @throws Exception when error + * @throws IOException when error saving + * @throws FormatterException when error formatting */ - public void generateAllClasses() throws Exception { + public void generateAllClasses() throws IOException, FormatterException { AriBuilderInterface abi = generateInterfaces(); generateModels(); generateApis(); @@ -168,29 +181,30 @@ public void generateAllClasses() throws Exception { /** * Generate all interfaces. * @return AriBuilderInterface - * @throws Exception when error + * @throws IOException when error saving + * @throws FormatterException when error formatting */ - public AriBuilderInterface generateInterfaces() throws Exception { + public AriBuilderInterface generateInterfaces() throws IOException, FormatterException { AriBuilderInterface abi = new AriBuilderInterface(); - for (String ifName : interfaces.keySet()) { - JavaInterface ji = interfaces.get(ifName); - if (ifName.startsWith("Action")) { - abi.knownInterfaces.add(ifName); + for (Map.Entry entry : interfaces.entrySet()) { + if (entry.getKey().startsWith("Action")) { + abi.knownInterfaces.add(entry.getKey()); } - saveToDisk(ji); + saveToDisk(entry.getValue()); } // generate the AriBuilder class - saveToDisk("ch.loway.oss.ari4java.generated", "AriBuilder", abi.toString()); + saveToDisk(JavaPkgInfo.GENERATED_PKG_NAME, "AriBuilder", abi.toString()); return abi; } /** * Generates a model. * For each model. let's find out the minimal interface it should implement. - * @throws Exception when error + * @throws IOException when error saving + * @throws FormatterException when error formatting */ - public void generateModels() throws Exception { + public void generateModels() throws IOException, FormatterException { for (Model m : myModels) { String minIf = m.getInterfaceName(); JavaInterface ji = interfaces.get(minIf); @@ -202,9 +216,10 @@ public void generateModels() throws Exception { /** * Save APIs to disk. - * @throws Exception when error + * @throws IOException when error saving + * @throws FormatterException when error formatting */ - public void generateApis() throws Exception { + public void generateApis() throws IOException, FormatterException { for (Apis api : myAPIs) { String minIf = api.getInterfaceName(); JavaInterface ji = interfaces.get(minIf); @@ -221,9 +236,10 @@ public void generateApis() throws Exception { /** * Write a properties file for each API version. * @param abi the builder interface - * @throws Exception when error + * @throws IOException when error saving + * @throws FormatterException when error formatting */ - public void generateProperties(AriBuilderInterface abi) throws Exception { + public void generateProperties(AriBuilderInterface abi) throws IOException, FormatterException { Map> mM = new HashMap<>(); Map> mA = new HashMap<>(); @@ -245,28 +261,31 @@ public void generateProperties(AriBuilderInterface abi) throws Exception { StringBuilder sbVerEnums = new StringBuilder(); StringBuilder sbVerEnum = new StringBuilder(); - JavaGen.addPackage(sbVerEnum, "ch.loway.oss.ari4java"); - sbVerEnum.append("import ch.loway.oss.ari4java.tools.ARIException;\n"); - sbVerEnum.append("import ch.loway.oss.ari4java.generated.AriBuilder;\n"); + JavaGen.addPackage(sbVerEnum, JavaPkgInfo.BASE_PKG_NAME); + sbVerEnum.append("import ").append(JavaPkgInfo.BASE_PKG_NAME).append(".tools.ARIException;\n"); + sbVerEnum.append("import ").append(JavaPkgInfo.GENERATED_PKG_NAME).append(".AriBuilder;\n"); for (String ver : vers) { writeAriBuilder(ver, abi, mA.get(ver)); builderEnum(sbVerEnums, ver); - sbVerEnum.append("import ch.loway.oss.ari4java.generated.").append(ver) - .append(".AriBuilder_impl_").append(ver).append(";\n"); + sbVerEnum.append("import ").append(JavaPkgInfo.GENERATED_PKG_NAME).append(".").append(ver) + .append(".AriBuilder").append(JavaPkgInfo.CLAZZ_IMPL_STRING).append(ver).append(";\n"); } + String doubleNewLine = "\n\n"; sbVerEnums.append(" IM_FEELING_LUCKY(null, null);"); - sbVerEnum.append("\npublic enum AriVersion {\n\n"); + sbVerEnum.append("\npublic enum AriVersion {"); + sbVerEnum.append(doubleNewLine); sbVerEnum.append(sbVerEnums); - sbVerEnum.append("\n\n"); + sbVerEnum.append(doubleNewLine); sbVerEnum.append(" final String versionString;\n"); - sbVerEnum.append(" final AriBuilder builder;\n"); - sbVerEnum.append("\n"); + sbVerEnum.append(" final AriBuilder builder;"); + sbVerEnum.append(doubleNewLine); sbVerEnum.append(" AriVersion(String versionString, AriBuilder builder) {\n"); sbVerEnum.append(" this.versionString = versionString;\n"); sbVerEnum.append(" this.builder = builder;\n"); - sbVerEnum.append(" }\n\n"); + sbVerEnum.append(" }"); + sbVerEnum.append(doubleNewLine); sbVerEnum.append(" public AriBuilder builder() {\n"); sbVerEnum.append(" if (builder == null) {\n"); sbVerEnum.append(" throw new IllegalArgumentException(\"This version has no builder. "); @@ -274,10 +293,12 @@ public void generateProperties(AriBuilderInterface abi) throws Exception { sbVerEnum.append(" } else {\n"); sbVerEnum.append(" return builder;\n"); sbVerEnum.append(" }\n"); - sbVerEnum.append(" }\n\n"); + sbVerEnum.append(" }"); + sbVerEnum.append(doubleNewLine); sbVerEnum.append(" public String version() {\n"); sbVerEnum.append(" return versionString;\n"); - sbVerEnum.append(" }\n\n"); + sbVerEnum.append(" }"); + sbVerEnum.append(doubleNewLine); sbVerEnum.append(" public static AriVersion fromVersionString(String version) throws ARIException {\n"); sbVerEnum.append(" for (AriVersion av: AriVersion.values()) {\n"); sbVerEnum.append(" if (av.builder != null) {\n"); @@ -287,9 +308,11 @@ public void generateProperties(AriBuilderInterface abi) throws Exception { sbVerEnum.append(" }\n"); sbVerEnum.append(" }\n"); sbVerEnum.append(" throw new ARIException(\"Unknown ARI Version object for \" + version );\n"); - sbVerEnum.append(" }\n\n"); + sbVerEnum.append(" }"); + sbVerEnum.append(doubleNewLine); sbVerEnum.append("}\n"); - saveToDisk("ch.loway.oss.ari4java", "AriVersion", sbVerEnum.toString()); + + saveToDisk(JavaPkgInfo.BASE_PKG_NAME, "AriVersion", sbVerEnum.toString()); } @@ -300,28 +323,30 @@ private void builderEnum(StringBuilder sbVerEnum, String ver) { .append("(") .append("\"") .append(verNum) - .append("\", new AriBuilder_impl_") + .append("\", new AriBuilder") + .append(JavaPkgInfo.CLAZZ_IMPL_STRING) .append(ver) .append("()),\n"); } /** * Generates the translators from the abstract class to the concrete one. - * @throws Exception when error + * @throws IOException when error saving + * @throws FormatterException when error formatting */ - public void generateImplementationClasses() throws Exception { + public void generateImplementationClasses() throws IOException, FormatterException { List lTranslators = new ArrayList<>(); for (Apis api : myAPIs) { String ver = api.apiVersion; ClassTranslator ct = getClassTranslator(lTranslators, ver); - ct.setClass(api.className, api.className + "_impl_" + ver); + ct.setClass(api.className, api.className + JavaPkgInfo.CLAZZ_IMPL_STRING + ver); } for (Model mod : myModels) { String ver = mod.apiVersion; ClassTranslator ct = getClassTranslator(lTranslators, ver); - ct.setClass(mod.className, mod.className + "_impl_" + ver); + ct.setClass(mod.className, mod.className + JavaPkgInfo.CLAZZ_IMPL_STRING + ver); } for (ClassTranslator ct : lTranslators) { @@ -416,46 +441,7 @@ private Apis loadApis(JsonNode apis, File f, String apiVersion) { action.javaFile = f.getName(); action.api = api; - for (JsonNode operation : apiEntry.get("operations")) { - Operation op = new Operation(); - action.operations.add(op); - op.action = action; - op.method = txt(operation.get("httpMethod")); - if ("websocket".equalsIgnoreCase(txt(operation.get("upgrade")))) { - op.wsUpgrade = true; - } - op.nickname = txt(operation.get("nickname")); - op.responseInterface = remapAbstractType(txt(operation.get("responseClass"))); - op.responseConcreteClass = remapConcreteType(txt(operation.get("responseClass")), apiVersion); - op.description = txt(operation.get("summary")) + "\n" + txt(operation.get("notes")); - op.apiVersion = apiVersion; - - JsonNode parameters = operation.get("parameters"); - if (parameters != null) { - for (JsonNode parameter : parameters) { - Operation.Param p = new Operation.Param(); - p.javaType = remapAbstractType(txt(parameter.get("dataType"))); - p.methodArgumentType = JavaPkgInfo.primitiveSignature.containsKey(p.javaType) ? - JavaPkgInfo.primitiveSignature.get(p.javaType) : p.javaType; - p.name = txt(parameter.get("name")); - p.description = txt(parameter.get("description")); - p.required = txt(parameter.get("required")).equalsIgnoreCase("true"); - p.type = Operation.ParamType.build(txt(parameter.get("paramType"))); - op.params.add(p); - } - } - - JsonNode errorResponses = operation.get("errorResponses"); - if (errorResponses != null) { - for (JsonNode errorResponse : errorResponses) { - Operation.ErrorResp err = new Operation.ErrorResp(); - err.code = errorResponse.get("code").asInt(); - err.reason = errorResponse.get("reason").asText(); - op.errorCodes.add(err); - } - } - - } + loadApiOperations(apiVersion, apiEntry, action); api.actions.add(action); } @@ -466,7 +452,57 @@ private Apis loadApis(JsonNode apis, File f, String apiVersion) { } - public void saveToDisk(String pkgName, String className, String classText) throws Exception { + private void loadApiOperations(String apiVersion, JsonNode apiEntry, Action action) { + for (JsonNode operation : apiEntry.get("operations")) { + Operation op = new Operation(); + action.operations.add(op); + op.action = action; + op.method = txt(operation.get("httpMethod")); + if ("websocket".equalsIgnoreCase(txt(operation.get("upgrade")))) { + op.wsUpgrade = true; + } + op.nickname = txt(operation.get("nickname")); + op.responseInterface = remapAbstractType(txt(operation.get("responseClass"))); + op.responseConcreteClass = remapConcreteType(txt(operation.get("responseClass")), apiVersion); + op.description = txt(operation.get("summary")) + "\n" + txt(operation.get("notes")); + op.apiVersion = apiVersion; + + loadApiOperationParams(operation, op); + loadApiOperationErrors(operation, op); + + } + } + + private void loadApiOperationErrors(JsonNode operation, Operation op) { + JsonNode errorResponses = operation.get("errorResponses"); + if (errorResponses != null) { + for (JsonNode errorResponse : errorResponses) { + Operation.ErrorResp err = new Operation.ErrorResp(); + err.code = errorResponse.get("code").asInt(); + err.reason = errorResponse.get("reason").asText(); + op.errorCodes.add(err); + } + } + } + + private void loadApiOperationParams(JsonNode operation, Operation op) { + JsonNode parameters = operation.get("parameters"); + if (parameters != null) { + for (JsonNode parameter : parameters) { + Operation.Param p = new Operation.Param(); + p.javaType = remapAbstractType(txt(parameter.get("dataType"))); + p.methodArgumentType = JavaPkgInfo.primitiveSignature.containsKey(p.javaType) ? + JavaPkgInfo.primitiveSignature.get(p.javaType) : p.javaType; + p.name = txt(parameter.get("name")); + p.description = txt(parameter.get("description")); + p.required = txt(parameter.get("required")).equalsIgnoreCase("true"); + p.type = Operation.ParamType.build(txt(parameter.get("paramType"))); + op.params.add(p); + } + } + } + + public void saveToDisk(String pkgName, String className, String classText) throws IOException, FormatterException { String fName = outputFolder + pkgName.replace(".", "/") + "/" @@ -476,31 +512,28 @@ public void saveToDisk(String pkgName, String className, String classText) throw //noinspection ResultOfMethodCallIgnored f.getParentFile().mkdirs(); //NOSONAR FileWriter outFile = new FileWriter(f); - PrintWriter out = new PrintWriter(outFile); - try { + try (PrintWriter out = new PrintWriter(outFile)) { out.println(codeFormatter.formatSource(classText)); - } finally { - out.close(); } } - public void saveToDisk(Model model) throws Exception { + public void saveToDisk(Model model) throws IOException, FormatterException { saveToDisk(model.getModelPackage(), model.getImplName(), model.toString()); } - public void saveToDisk(Apis api) throws Exception { + public void saveToDisk(Apis api) throws IOException, FormatterException { saveToDisk(api.getActionsPackage(), api.getImplName(), api.toString()); } - public void saveToDisk(Operation operation) throws Exception { + public void saveToDisk(Operation operation) throws IOException, FormatterException { saveToDisk(operation.getPackage(), operation.getImplName(), operation.toString()); } - public void saveToDisk(JavaInterface ji) throws Exception { + public void saveToDisk(JavaInterface ji) throws IOException, FormatterException { saveToDisk(ji.pkgName, ji.className, ji.toString()); } - public void saveToDisk(ClassTranslator ct) throws Exception { + public void saveToDisk(ClassTranslator ct) throws IOException, FormatterException { saveToDisk(ct.getBaseApiPackage(), ct.getImplName(), ct.toString()); } @@ -569,21 +602,21 @@ public String innerRemapType(String jsonType, boolean concrete, String apiVersio } else if (JavaPkgInfo.TypeMap.containsKey(jsonType.toLowerCase())) { return JavaPkgInfo.TypeMap.get(jsonType.toLowerCase()); } else { - return jsonType + (concrete ? "_impl_" + apiVersion : ""); + return jsonType + (concrete ? JavaPkgInfo.CLAZZ_IMPL_STRING + apiVersion : ""); } } - private void writeAriBuilder(String apiVersion, AriBuilderInterface abi, Collection apis) throws Exception { + private void writeAriBuilder(String apiVersion, AriBuilderInterface abi, Collection apis) throws IOException, FormatterException { - String thisClass = "AriBuilder_impl_" + apiVersion; + String thisClass = "AriBuilder" + JavaPkgInfo.CLAZZ_IMPL_STRING + apiVersion; List ifToImplement = new ArrayList<>(abi.knownInterfaces); StringBuilder sb = new StringBuilder(); - JavaGen.importClasses(sb, "ch.loway.oss.ari4java.generated." + apiVersion, - Arrays.asList("ch.loway.oss.ari4java.ARI", - "ch.loway.oss.ari4java.generated.AriBuilder", - "ch.loway.oss.ari4java.generated.actions.*", - "ch.loway.oss.ari4java.generated." + apiVersion + ".actions.*")); + JavaGen.importClasses(sb, JavaPkgInfo.GENERATED_PKG_NAME + "." + apiVersion, + Arrays.asList(JavaPkgInfo.BASE_PKG_NAME + ".ARI", + JavaPkgInfo.GENERATED_PKG_NAME + ".AriBuilder", + JavaPkgInfo.GENERATED_PKG_NAME + ".actions.*", + JavaPkgInfo.GENERATED_PKG_NAME + "." + apiVersion + ".actions.*")); sb.append("public class ").append(thisClass).append(" implements AriBuilder {\n\n"); for (Apis api : apis) { @@ -597,23 +630,23 @@ private void writeAriBuilder(String apiVersion, AriBuilderInterface abi, Collect sb.append(AriBuilderInterface.getUnimplemented(ifc)); } - sb.append("public ARI.ClassFactory getClassFactory() {\n return new ClassTranslator_impl_"); + sb.append("public ARI.ClassFactory getClassFactory() {\n return new ClassTranslator" + JavaPkgInfo.CLAZZ_IMPL_STRING); sb.append(apiVersion); sb.append("();\n};\n\n};"); - saveToDisk("ch.loway.oss.ari4java.generated." + apiVersion, thisClass, sb.toString()); + saveToDisk(JavaPkgInfo.GENERATED_PKG_NAME + "." + apiVersion, thisClass, sb.toString()); } - private void generateAriWSCallback() throws Exception { + private void generateAriWSCallback() throws IOException, FormatterException { StringBuilder sb = new StringBuilder(); StringBuilder methods = new StringBuilder(); - JavaGen.importClasses(sb, "ch.loway.oss.ari4java.generated", + JavaGen.importClasses(sb, JavaPkgInfo.GENERATED_PKG_NAME, Arrays.asList( - "ch.loway.oss.ari4java.tools.AriConnectionEvent", - "ch.loway.oss.ari4java.tools.AriWSCallback", - "ch.loway.oss.ari4java.generated.models.*", - "ch.loway.oss.ari4java.tools.RestException", + JavaPkgInfo.BASE_PKG_NAME + ".tools.AriConnectionEvent", + JavaPkgInfo.BASE_PKG_NAME + ".tools.AriWSCallback", + JavaPkgInfo.BASE_PKG_NAME + ".tools.RestException", + JavaPkgInfo.GENERATED_PKG_NAME + ".models.*", "org.slf4j.Logger", "org.slf4j.LoggerFactory")); sb.append("public abstract class AriWSHelper implements AriWSCallback {\n\n"); @@ -638,7 +671,8 @@ private void generateAriWSCallback() throws Exception { sb.append("@Override\npublic void onConnectionEvent(AriConnectionEvent event) {\nlogger.debug(event.name());\n}\n\n"); sb.append(methods); sb.append("\n}"); - saveToDisk("ch.loway.oss.ari4java.generated", "AriWSHelper", sb.toString()); + + saveToDisk(JavaPkgInfo.GENERATED_PKG_NAME, "AriWSHelper", sb.toString()); } /** diff --git a/codegen/src/main/java/ch/loway/oss/ari4java/codegen/VERSION.java b/codegen/src/main/java/ch/loway/oss/ari4java/codegen/VERSION.java index e3e267f5..e5cdba51 100644 --- a/codegen/src/main/java/ch/loway/oss/ari4java/codegen/VERSION.java +++ b/codegen/src/main/java/ch/loway/oss/ari4java/codegen/VERSION.java @@ -6,6 +6,11 @@ * @author lenz */ public class VERSION { + + private VERSION() { + throw new IllegalStateException("Utility class"); + } + public static final String VER = "0.7"; } diff --git a/codegen/src/main/java/ch/loway/oss/ari4java/codegen/genJava/JavaGen.java b/codegen/src/main/java/ch/loway/oss/ari4java/codegen/gen/JavaGen.java similarity index 85% rename from codegen/src/main/java/ch/loway/oss/ari4java/codegen/genJava/JavaGen.java rename to codegen/src/main/java/ch/loway/oss/ari4java/codegen/gen/JavaGen.java index 4c12b95f..10a61310 100644 --- a/codegen/src/main/java/ch/loway/oss/ari4java/codegen/genJava/JavaGen.java +++ b/codegen/src/main/java/ch/loway/oss/ari4java/codegen/gen/JavaGen.java @@ -1,5 +1,5 @@ -package ch.loway.oss.ari4java.codegen.genJava; +package ch.loway.oss.ari4java.codegen.gen; import java.util.Date; import java.util.List; @@ -11,6 +11,10 @@ */ public class JavaGen { + private JavaGen() { + throw new IllegalStateException("Utility class"); + } + public static void addPackage(StringBuilder sb, String myPackage) { sb.append("package ").append(myPackage).append(";\n\n"); sb.append("// ----------------------------------------------------\n") @@ -33,9 +37,10 @@ public static void addBanner(StringBuilder sb, String multiLineBanner) { sb.append("/**\n"); for (String row : rows) { if (!row.isEmpty()) { - row = row.replaceAll("

", "\n * "); - row = row.replaceAll("
", "\n * "); - row = row.replaceAll("<", ">").replaceAll(">", "<"); + row = row.replace("

", "\n * "); + row = row.replace("
", "\n * "); + row = row.replace("<", ">"); + row = row.replace(">", "<"); sb.append(" * ").append(row).append("\n"); } } diff --git a/codegen/src/main/java/ch/loway/oss/ari4java/codegen/genJava/JavaInterface.java b/codegen/src/main/java/ch/loway/oss/ari4java/codegen/gen/JavaInterface.java similarity index 88% rename from codegen/src/main/java/ch/loway/oss/ari4java/codegen/genJava/JavaInterface.java rename to codegen/src/main/java/ch/loway/oss/ari4java/codegen/gen/JavaInterface.java index abd0ebf0..7251421d 100644 --- a/codegen/src/main/java/ch/loway/oss/ari4java/codegen/genJava/JavaInterface.java +++ b/codegen/src/main/java/ch/loway/oss/ari4java/codegen/gen/JavaInterface.java @@ -1,5 +1,5 @@ -package ch.loway.oss.ari4java.codegen.genJava; +package ch.loway.oss.ari4java.codegen.gen; import java.util.Arrays; import java.util.HashMap; @@ -69,11 +69,11 @@ public String toString() { "java.util.List", "java.util.Map", "java.util.ArrayList", - "ch.loway.oss.ari4java.tools.*", - "ch.loway.oss.ari4java.tools.tags.EventSource", - "ch.loway.oss.ari4java.generated.actions.requests.*", - "ch.loway.oss.ari4java.generated.models.Module", - "ch.loway.oss.ari4java.generated.models.*")); + JavaPkgInfo.BASE_PKG_NAME + ".tools.*", + JavaPkgInfo.BASE_PKG_NAME + ".tools.tags.EventSource", + JavaPkgInfo.GENERATED_PKG_NAME + ".actions.requests.*", + JavaPkgInfo.GENERATED_PKG_NAME + ".models.Module", + JavaPkgInfo.GENERATED_PKG_NAME + ".models.*")); JavaGen.addBanner(sb, "\n" + "Generated by: " + this.getClass().getSimpleName() + "\n" ); @@ -85,8 +85,8 @@ public String toString() { sb.append(" extends ").append(parent).append(" "); } sb.append(" {\n"); - for (String signature : definitions.keySet()) { - sb.append(definitions.get(signature).toInterfaceString()).append("\n"); + for (Definition definition : definitions.values()) { + sb.append(definition.toInterfaceString()).append("\n"); } sb.append("}\n"); return sb.toString(); diff --git a/codegen/src/main/java/ch/loway/oss/ari4java/codegen/genJava/JavaPkgInfo.java b/codegen/src/main/java/ch/loway/oss/ari4java/codegen/gen/JavaPkgInfo.java similarity index 80% rename from codegen/src/main/java/ch/loway/oss/ari4java/codegen/genJava/JavaPkgInfo.java rename to codegen/src/main/java/ch/loway/oss/ari4java/codegen/gen/JavaPkgInfo.java index 3d02c262..26f81bd2 100644 --- a/codegen/src/main/java/ch/loway/oss/ari4java/codegen/genJava/JavaPkgInfo.java +++ b/codegen/src/main/java/ch/loway/oss/ari4java/codegen/gen/JavaPkgInfo.java @@ -1,5 +1,5 @@ -package ch.loway.oss.ari4java.codegen.genJava; +package ch.loway.oss.ari4java.codegen.gen; import java.util.HashMap; import java.util.Map; @@ -9,8 +9,11 @@ */ public class JavaPkgInfo { - public final static Map TypeMap; - public final static Map primitiveSignature; + public static final Map TypeMap; + public static final Map primitiveSignature; + public static final String BASE_PKG_NAME = "ch.loway.oss.ari4java"; + public static final String GENERATED_PKG_NAME = BASE_PKG_NAME + ".generated"; + public static final String CLAZZ_IMPL_STRING = "_impl_"; static { TypeMap = new HashMap<>(); @@ -31,7 +34,6 @@ public class JavaPkgInfo { primitiveSignature.put("Double", "double"); } - String base = "ch.loway.oss.ari4java.generated"; public String className = ""; public String apiVersion = ""; public JavaInterface minimalIf = null; @@ -42,7 +44,7 @@ public void setPackageInfo(String classN, String apiV) { } public String getBaseApiPackage() { - return base + "." + apiVersion; + return GENERATED_PKG_NAME + "." + apiVersion; } public String getModelPackage() { @@ -58,7 +60,7 @@ public String getInterfaceName() { } public String getImplName() { - return className + "_impl_" + apiVersion; + return className + CLAZZ_IMPL_STRING + apiVersion; } /** diff --git a/codegen/src/main/java/ch/loway/oss/ari4java/codegen/models/Action.java b/codegen/src/main/java/ch/loway/oss/ari4java/codegen/models/Action.java index 10b245ba..84364d9d 100644 --- a/codegen/src/main/java/ch/loway/oss/ari4java/codegen/models/Action.java +++ b/codegen/src/main/java/ch/loway/oss/ari4java/codegen/models/Action.java @@ -1,10 +1,11 @@ package ch.loway.oss.ari4java.codegen.models; -import ch.loway.oss.ari4java.codegen.genJava.JavaInterface; +import ch.loway.oss.ari4java.codegen.gen.JavaInterface; import java.util.ArrayList; import java.util.List; +import java.util.Objects; /** * @author lenz @@ -39,5 +40,22 @@ public int compareTo(Action o) { return path.compareToIgnoreCase(o.path); } + @Override + public boolean equals(Object o) { + if (this == o) return true; + if (o == null || getClass() != o.getClass()) return false; + Action action = (Action) o; + return Objects.equals(path, action.path) && + Objects.equals(description, action.description) && + Objects.equals(operations, action.operations) && + Objects.equals(javaFile, action.javaFile) && + Objects.equals(api, action.api); + } + + @Override + public int hashCode() { + return Objects.hash(path, description, operations, javaFile, api); + } + } diff --git a/codegen/src/main/java/ch/loway/oss/ari4java/codegen/models/Apis.java b/codegen/src/main/java/ch/loway/oss/ari4java/codegen/models/Apis.java index 16923030..2c40cd54 100644 --- a/codegen/src/main/java/ch/loway/oss/ari4java/codegen/models/Apis.java +++ b/codegen/src/main/java/ch/loway/oss/ari4java/codegen/models/Apis.java @@ -1,9 +1,9 @@ package ch.loway.oss.ari4java.codegen.models; -import ch.loway.oss.ari4java.codegen.genJava.JavaGen; -import ch.loway.oss.ari4java.codegen.genJava.JavaInterface; -import ch.loway.oss.ari4java.codegen.genJava.JavaPkgInfo; +import ch.loway.oss.ari4java.codegen.gen.JavaGen; +import ch.loway.oss.ari4java.codegen.gen.JavaInterface; +import ch.loway.oss.ari4java.codegen.gen.JavaPkgInfo; import java.util.ArrayList; import java.util.Arrays; @@ -26,12 +26,12 @@ public String toString() { "java.util.Map", "java.util.ArrayList", "java.net.URLEncoder", - "ch.loway.oss.ari4java.ARI", - "ch.loway.oss.ari4java.tools.*", - "ch.loway.oss.ari4java.generated.actions.*", - "ch.loway.oss.ari4java.generated.actions.requests.*", - "ch.loway.oss.ari4java.generated.models.Module", - "ch.loway.oss.ari4java.generated.models.*", + JavaPkgInfo.BASE_PKG_NAME + ".ARI", + JavaPkgInfo.BASE_PKG_NAME + ".tools.*", + JavaPkgInfo.GENERATED_PKG_NAME + ".actions.*", + JavaPkgInfo.GENERATED_PKG_NAME + ".actions.requests.*", + JavaPkgInfo.GENERATED_PKG_NAME + ".models.Module", + JavaPkgInfo.GENERATED_PKG_NAME + ".models.*", getActionsPackage() + ".requests.*", getModelPackage() + ".*", "com.fasterxml.jackson.core.type.TypeReference")); diff --git a/codegen/src/main/java/ch/loway/oss/ari4java/codegen/models/AriBuilderInterface.java b/codegen/src/main/java/ch/loway/oss/ari4java/codegen/models/AriBuilderInterface.java index 10edb230..f06e54a2 100644 --- a/codegen/src/main/java/ch/loway/oss/ari4java/codegen/models/AriBuilderInterface.java +++ b/codegen/src/main/java/ch/loway/oss/ari4java/codegen/models/AriBuilderInterface.java @@ -1,7 +1,8 @@ package ch.loway.oss.ari4java.codegen.models; -import ch.loway.oss.ari4java.codegen.genJava.JavaGen; +import ch.loway.oss.ari4java.codegen.gen.JavaGen; +import ch.loway.oss.ari4java.codegen.gen.JavaPkgInfo; import java.util.ArrayList; import java.util.Arrays; @@ -21,8 +22,8 @@ public class AriBuilderInterface { public String toString() { StringBuilder sb = new StringBuilder(); JavaGen.importClasses(sb, "ch.loway.oss.ari4java.generated", - Arrays.asList("ch.loway.oss.ari4java.ARI", - "ch.loway.oss.ari4java.generated.actions.*") + Arrays.asList(JavaPkgInfo.BASE_PKG_NAME + ".ARI", + JavaPkgInfo.GENERATED_PKG_NAME + ".actions.*") ); sb.append("public interface AriBuilder {\n"); Collections.sort(knownInterfaces); diff --git a/codegen/src/main/java/ch/loway/oss/ari4java/codegen/models/ClassTranslator.java b/codegen/src/main/java/ch/loway/oss/ari4java/codegen/models/ClassTranslator.java index 8b3d8e88..1aa1c9b4 100644 --- a/codegen/src/main/java/ch/loway/oss/ari4java/codegen/models/ClassTranslator.java +++ b/codegen/src/main/java/ch/loway/oss/ari4java/codegen/models/ClassTranslator.java @@ -1,7 +1,7 @@ package ch.loway.oss.ari4java.codegen.models; -import ch.loway.oss.ari4java.codegen.genJava.JavaGen; -import ch.loway.oss.ari4java.codegen.genJava.JavaPkgInfo; +import ch.loway.oss.ari4java.codegen.gen.JavaGen; +import ch.loway.oss.ari4java.codegen.gen.JavaPkgInfo; import java.util.*; @@ -21,12 +21,12 @@ public ClassTranslator(String version) { mInterfaces = new HashMap<>(); imports = new ArrayList<>(); className = "ClassTranslator"; - imports.add("ch.loway.oss.ari4java.ARI"); - imports.add("ch.loway.oss.ari4java.generated.actions.*"); - imports.add("ch.loway.oss.ari4java.generated.models.Module"); - imports.add("ch.loway.oss.ari4java.generated.models.*"); - imports.add("ch.loway.oss.ari4java.generated." + apiVersion + ".actions.*"); - imports.add("ch.loway.oss.ari4java.generated." + apiVersion + ".models.*"); + imports.add(JavaPkgInfo.BASE_PKG_NAME + ".ARI"); + imports.add(JavaPkgInfo.GENERATED_PKG_NAME + ".actions.*"); + imports.add(JavaPkgInfo.GENERATED_PKG_NAME + ".models.Module"); + imports.add(JavaPkgInfo.GENERATED_PKG_NAME + ".models.*"); + imports.add(JavaPkgInfo.GENERATED_PKG_NAME + "." + apiVersion + ".actions.*"); + imports.add(JavaPkgInfo.GENERATED_PKG_NAME + "." + apiVersion + ".models.*"); } public void setClass(String ifName, String implementation) { diff --git a/codegen/src/main/java/ch/loway/oss/ari4java/codegen/models/Model.java b/codegen/src/main/java/ch/loway/oss/ari4java/codegen/models/Model.java index 615b09b8..4e8c710d 100644 --- a/codegen/src/main/java/ch/loway/oss/ari4java/codegen/models/Model.java +++ b/codegen/src/main/java/ch/loway/oss/ari4java/codegen/models/Model.java @@ -1,9 +1,9 @@ package ch.loway.oss.ari4java.codegen.models; -import ch.loway.oss.ari4java.codegen.genJava.JavaGen; -import ch.loway.oss.ari4java.codegen.genJava.JavaInterface; -import ch.loway.oss.ari4java.codegen.genJava.JavaPkgInfo; +import ch.loway.oss.ari4java.codegen.gen.JavaGen; +import ch.loway.oss.ari4java.codegen.gen.JavaInterface; +import ch.loway.oss.ari4java.codegen.gen.JavaPkgInfo; import java.util.ArrayList; import java.util.Collections; @@ -30,8 +30,8 @@ public Model() { imports.add("java.util.Date"); imports.add("java.util.List"); imports.add("java.util.Map"); - imports.add("ch.loway.oss.ari4java.generated.models.Module"); - imports.add("ch.loway.oss.ari4java.generated.models.*"); + imports.add(JavaPkgInfo.GENERATED_PKG_NAME + ".models.Module"); + imports.add(JavaPkgInfo.GENERATED_PKG_NAME + ".models.*"); imports.add("com.fasterxml.jackson.databind.annotation.JsonDeserialize"); imports.add("com.fasterxml.jackson.annotation.JsonIgnore"); } diff --git a/codegen/src/main/java/ch/loway/oss/ari4java/codegen/models/ModelField.java b/codegen/src/main/java/ch/loway/oss/ari4java/codegen/models/ModelField.java index 10a991f0..4e077c95 100644 --- a/codegen/src/main/java/ch/loway/oss/ari4java/codegen/models/ModelField.java +++ b/codegen/src/main/java/ch/loway/oss/ari4java/codegen/models/ModelField.java @@ -1,7 +1,9 @@ package ch.loway.oss.ari4java.codegen.models; -import ch.loway.oss.ari4java.codegen.genJava.JavaGen; +import ch.loway.oss.ari4java.codegen.gen.JavaGen; + +import java.util.Objects; /** * $Id$ @@ -76,4 +78,21 @@ public int compareTo(ModelField o) { return field.compareTo(o.field); } + @Override + public boolean equals(Object o) { + if (this == o) return true; + if (o == null || getClass() != o.getClass()) return false; + ModelField that = (ModelField) o; + return required == that.required && + Objects.equals(field, that.field) && + Objects.equals(typeInterface, that.typeInterface) && + Objects.equals(typeConcrete, that.typeConcrete) && + Objects.equals(comment, that.comment); + } + + @Override + public int hashCode() { + return Objects.hash(field, typeInterface, typeConcrete, required, comment); + } + } diff --git a/codegen/src/main/java/ch/loway/oss/ari4java/codegen/models/Operation.java b/codegen/src/main/java/ch/loway/oss/ari4java/codegen/models/Operation.java index 4d78250f..60e358fb 100644 --- a/codegen/src/main/java/ch/loway/oss/ari4java/codegen/models/Operation.java +++ b/codegen/src/main/java/ch/loway/oss/ari4java/codegen/models/Operation.java @@ -1,8 +1,9 @@ package ch.loway.oss.ari4java.codegen.models; -import ch.loway.oss.ari4java.codegen.genJava.JavaGen; -import ch.loway.oss.ari4java.codegen.genJava.JavaInterface; +import ch.loway.oss.ari4java.codegen.gen.JavaGen; +import ch.loway.oss.ari4java.codegen.gen.JavaInterface; +import ch.loway.oss.ari4java.codegen.gen.JavaPkgInfo; import java.util.ArrayList; import java.util.Arrays; @@ -31,21 +32,20 @@ private String toParmList(boolean withType, boolean forComment) { StringBuilder sb = new StringBuilder(); boolean firstItem = true; for (Param p : params) { - if (!p.required) { - continue; - } - if (forComment) { - sb.append(p.getParamComment(null)); - continue; - } - if (firstItem) { - firstItem = false; - } else { - sb.append(", "); + if (p.required) { + if (forComment) { + sb.append(p.getParamComment(null)); + } else { + if (firstItem) { + firstItem = false; + } else { + sb.append(", "); + } + if (withType) + sb.append(p.javaType).append(" "); + sb.append(p.name); + } } - if (withType) - sb.append(p.javaType).append(" "); - sb.append(p.name); } if (forComment) { sb.append("@return ").append(getInterfaceName()).append("\n"); @@ -62,17 +62,17 @@ public String toString() { "java.util.HashMap", "java.util.ArrayList", "java.net.URLEncoder", - "ch.loway.oss.ari4java.ARI", - "ch.loway.oss.ari4java.tools.*", "com.fasterxml.jackson.core.type.TypeReference", - "ch.loway.oss.ari4java.generated.*", - "ch.loway.oss.ari4java.generated.actions.*", - "ch.loway.oss.ari4java.generated.actions.requests.*", - "ch.loway.oss.ari4java.generated.models.Module", - "ch.loway.oss.ari4java.generated.models.*", - "ch.loway.oss.ari4java.generated." + apiVersion + ".actions.*", - "ch.loway.oss.ari4java.generated." + apiVersion + ".actions.requests.*", - "ch.loway.oss.ari4java.generated." + apiVersion + ".models.*")); + JavaPkgInfo.BASE_PKG_NAME + ".ARI", + JavaPkgInfo.BASE_PKG_NAME + ".tools.*", + JavaPkgInfo.GENERATED_PKG_NAME + ".*", + JavaPkgInfo.GENERATED_PKG_NAME + ".actions.*", + JavaPkgInfo.GENERATED_PKG_NAME + ".actions.requests.*", + JavaPkgInfo.GENERATED_PKG_NAME + ".models.Module", + JavaPkgInfo.GENERATED_PKG_NAME + ".models.*", + JavaPkgInfo.GENERATED_PKG_NAME + "." + apiVersion + ".actions.*", + JavaPkgInfo.GENERATED_PKG_NAME + "." + apiVersion + ".actions.requests.*", + JavaPkgInfo.GENERATED_PKG_NAME + "." + apiVersion + ".models.*")); JavaGen.emptyLines(sb, 2); @@ -84,32 +84,67 @@ public String toString() { for (Param p : params) { sb.append(" private ").append(p.javaType).append(" ").append(p.name).append(";\n"); } - sb.append("\n ").append(getConstructorDefinition()).append(" {\n"); - for (Param p : params) { - if (p.required) { - sb.append(" this.").append(p.name).append(" = ").append(p.name).append(";\n"); + generateConstructor(sb); + generateParams(sb, interfaces); + + // 1. Private build method + generateBuildMethod(sb); + // 2. Synchronous execute method + generateActionSync(sb, interfaces); + // 3. Asynchronous execute method + generateActionAsync(sb, interfaces); + // 4. Missing methods + sb.append(interfaces.getCodeToImplementMissingSignatures()); + + sb.append("}\n"); + return sb.toString(); + + } + + private void generateActionAsync(StringBuilder sb, JavaInterface interfaces) { + sb.append(" ").append(getAsyncExecuteDefinition()).append(" {\n"); + sb.append(" httpActionAsync(build(), callback"); + if (!responseInterface.equalsIgnoreCase("void")) { + String deserializationType = responseConcreteClass + ".class"; + if (responseConcreteClass.startsWith("List<")) { + deserializationType = "new TypeReference<" + responseConcreteClass + ">() {}"; } + sb.append(", "); + sb.append(deserializationType); } + sb.append(");\n"); sb.append(" }\n\n"); - for (Param p : params) { - sb.append(p.getDefinition(getInterfaceName())).append(" {\n") - .append(" this.").append(p.name).append(" = ").append(p.name).append(";\n") - .append(" return this;\n") - .append(" }\n\n"); - interfaces.removeSignature(p.getSignature(getInterfaceName())); - if (p.javaType.equals("Map")) { - sb.append(p.getDefinitionForAddToMap(getInterfaceName())).append(" {\n") - .append(" if (this.").append(p.name).append(" == null) {\n") - .append(" this.").append(p.name).append(" = new HashMap<>();\n") - .append(" }\n") - .append(" this.").append(p.name).append(".put(key, value);\n") - .append(" return this;\n") - .append(" }\n\n"); - interfaces.removeSignature(p.getSignatureForAddToMap(getInterfaceName())); + interfaces.removeSignature(getAsyncExecuteSignature()); + } + + private void generateActionSync(StringBuilder sb, JavaInterface interfaces) { + sb.append(" ").append(getSyncExecuteDefinition()).append(" {\n"); + if (wsUpgrade) { + // Websocket dummy sync method + sb.append(" throw new RestException(\"No synchronous operation on WebSocket\");\n"); + } else if (responseInterface.equalsIgnoreCase("byte[]")) { + sb.append(" return httpActionSyncAsBytes(build());\n"); + } else if (responseInterface.equalsIgnoreCase("void")) { + sb.append(" httpActionSync(build());\n"); + } else { + sb.append(" String json = httpActionSync(build());\n"); + String deserializationType = responseConcreteClass + ".class"; + if (responseConcreteClass.startsWith("List<")) { + deserializationType = "new TypeReference<" + responseConcreteClass + ">() {}"; + sb.append(" return deserializeJsonAsAbstractList(json, ") + .append(deserializationType) + .append(");\n"); + } else { + sb.append(" return deserializeJson(json, ") + .append(deserializationType) + .append(");\n"); } } + sb.append(" }\n\n"); + interfaces.removeSignature(getSyncExecuteSignature()); + } - // 1. Private build method + private void generateBuildMethod(StringBuilder sb) { // search and replace URI parameters String stUri = action.path; for (Param p : params) { @@ -137,57 +172,36 @@ public String toString() { } sb.append(" return ariRequest;\n"); sb.append(" }\n\n"); + } - // 2. Synchronous execute method - sb.append(" ").append(getSyncExecuteDefinition()).append(" {\n"); - if (wsUpgrade) { - // Websocket dummy sync method - sb.append(" throw new RestException(\"No synchronous operation on WebSocket\");\n"); - } else { - if (responseInterface.equalsIgnoreCase("byte[]")) { - sb.append(" return httpActionSyncAsBytes(build());\n"); - } else { - if (responseInterface.equalsIgnoreCase("void")) { - sb.append(" httpActionSync(build());\n"); - } else { - sb.append(" String json = httpActionSync(build());\n"); - String deserializationType = responseConcreteClass + ".class"; - if (responseConcreteClass.startsWith("List<")) { - deserializationType = "new TypeReference<" + responseConcreteClass + ">() {}"; - sb.append(" return deserializeJsonAsAbstractList(json, ") - .append(deserializationType) - .append(");\n"); - } else { - sb.append(" return deserializeJson(json, ") - .append(deserializationType) - .append(");\n"); - } - } + private void generateParams(StringBuilder sb, JavaInterface interfaces) { + for (Param p : params) { + sb.append(p.getDefinition(getInterfaceName())).append(" {\n") + .append(" this.").append(p.name).append(" = ").append(p.name).append(";\n") + .append(" return this;\n") + .append(" }\n\n"); + interfaces.removeSignature(p.getSignature(getInterfaceName())); + if (p.javaType.equals("Map")) { + sb.append(p.getDefinitionForAddToMap(getInterfaceName())).append(" {\n") + .append(" if (this.").append(p.name).append(" == null) {\n") + .append(" this.").append(p.name).append(" = new HashMap<>();\n") + .append(" }\n") + .append(" this.").append(p.name).append(".put(key, value);\n") + .append(" return this;\n") + .append(" }\n\n"); + interfaces.removeSignature(p.getSignatureForAddToMap(getInterfaceName())); } } - sb.append(" }\n\n"); - interfaces.removeSignature(getSyncExecuteSignature()); + } - // 3. Asynchronous execute method - sb.append(" ").append(getAsyncExecuteDefinition()).append(" {\n"); - sb.append(" httpActionAsync(build(), callback"); - if (!responseInterface.equalsIgnoreCase("void")) { - String deserializationType = responseConcreteClass + ".class"; - if (responseConcreteClass.startsWith("List<")) { - deserializationType = "new TypeReference<" + responseConcreteClass + ">() {}"; + private void generateConstructor(StringBuilder sb) { + sb.append("\n ").append(getConstructorDefinition()).append(" {\n"); + for (Param p : params) { + if (p.required) { + sb.append(" this.").append(p.name).append(" = ").append(p.name).append(";\n"); } - sb.append(", "); - sb.append(deserializationType); } - sb.append(");\n"); sb.append(" }\n\n"); - interfaces.removeSignature(getAsyncExecuteSignature()); - - sb.append(interfaces.getCodeToImplementMissingSignatures()); - - sb.append("}\n"); - return sb.toString(); - } private String getSyncExecuteSignature() { diff --git a/src/main/java/ch/loway/oss/ari4java/tools/HttpParam.java b/src/main/java/ch/loway/oss/ari4java/tools/HttpParam.java index fe822529..364c0a03 100644 --- a/src/main/java/ch/loway/oss/ari4java/tools/HttpParam.java +++ b/src/main/java/ch/loway/oss/ari4java/tools/HttpParam.java @@ -46,7 +46,7 @@ public static HttpParam build(String n, Long v) { public static HttpParam build(String n, Boolean v) { if (null == v) return build(n, (String)null); - return build(n, v ? "true" : "false"); + return build(n, Boolean.TRUE.equals(v) ? "true" : "false"); } public String getName() { diff --git a/src/main/java/ch/loway/oss/ari4java/tools/http/HTTPLogger.java b/src/main/java/ch/loway/oss/ari4java/tools/http/HTTPLogger.java index 1acc9a57..2210ad31 100644 --- a/src/main/java/ch/loway/oss/ari4java/tools/http/HTTPLogger.java +++ b/src/main/java/ch/loway/oss/ari4java/tools/http/HTTPLogger.java @@ -11,9 +11,13 @@ public class HTTPLogger { + private HTTPLogger() { + throw new IllegalStateException("Utility class"); + } + private static Logger logger = LoggerFactory.getLogger(HTTPLogger.class); - private static final int maxLen = 1000; + private static final int MAX_LEN = 1000; public static void traceRequest(FullHttpRequest request, String body) { if (logger.isTraceEnabled()) { @@ -62,11 +66,11 @@ public static void traceResponse(FullHttpResponse response, byte[] responseBytes data.append("[binary data...]"); } else { int len = responseBytes.length; - if (len > maxLen) { - len = maxLen; + if (len > MAX_LEN) { + len = MAX_LEN; } data.append(new String(Arrays.copyOf(responseBytes, len), ARIEncoder.ENCODING)); - if (responseBytes.length > maxLen) { + if (responseBytes.length > MAX_LEN) { data.append("[truncated...]"); } } @@ -77,8 +81,8 @@ public static void traceResponse(FullHttpResponse response, byte[] responseBytes public static void traceWebSocketFrame(String text) { if (logger.isTraceEnabled()) { - if (text.length() > maxLen) { - logger.trace("WS Frame:\n{}", text.substring(0, maxLen)); + if (text.length() > MAX_LEN) { + logger.trace("WS Frame:\n{}", text.substring(0, MAX_LEN)); } else { logger.trace("WS Frame:\n{}", text); } diff --git a/src/main/java/ch/loway/oss/ari4java/tools/http/NettyHttpClient.java b/src/main/java/ch/loway/oss/ari4java/tools/http/NettyHttpClient.java index aeabadc0..4a86f647 100644 --- a/src/main/java/ch/loway/oss/ari4java/tools/http/NettyHttpClient.java +++ b/src/main/java/ch/loway/oss/ari4java/tools/http/NettyHttpClient.java @@ -132,7 +132,7 @@ private void bootstrapOptions(Bootstrap bootStrap) { bootStrap.option(ChannelOption.CONNECT_TIMEOUT_MILLIS, CONNECTION_TIMEOUT_SEC * 1000); } - private synchronized static void addSSLIfRequired(ChannelPipeline pipeline, URI baseUri) throws SSLException { + private static synchronized void addSSLIfRequired(ChannelPipeline pipeline, URI baseUri) throws SSLException { if (HTTPS.equalsIgnoreCase(baseUri.getScheme())) { if (sslContext == null) { sslContext = SslContextBuilder.forClient().trustManager(InsecureTrustManagerFactory.INSTANCE).build(); @@ -162,36 +162,33 @@ protected ChannelFuture httpConnect() { public void destroy() { logger.debug("destroy..."); // use a different event group to execute the shutdown to avoid deadlocks - shutDownGroup.execute(new Runnable() { - @Override - public void run() { - logger.debug("running shutdown..."); - if (wsPingTimer != null) { - logger.debug("cancel ping..."); - wsPingTimer.cancel(true); - wsPingTimer = null; - } - if (wsConnectionTimeout != null) { - logger.debug("cancel wsConnectionTimeout..."); - wsConnectionTimeout.cancel(true); - wsConnectionTimeout = null; - } - if (wsClientConnection != null) { - try { - logger.debug("there is a web socket, disconnect..."); - wsClientConnection.disconnect(); - wsClientConnection = null; - } catch (RestException e) { - // not bubbling exception up, just ignoring - } - } - if (group != null && !group.isShuttingDown()) { - logger.debug("group shutdownGracefully"); - group.shutdownGracefully(0, 1, TimeUnit.SECONDS).syncUninterruptibly(); - group = null; - logger.debug("group shutdown complete"); + shutDownGroup.execute(() -> { + logger.debug("running shutdown..."); + if (wsPingTimer != null) { + logger.debug("cancel ping..."); + wsPingTimer.cancel(true); + wsPingTimer = null; + } + if (wsConnectionTimeout != null) { + logger.debug("cancel wsConnectionTimeout..."); + wsConnectionTimeout.cancel(true); + wsConnectionTimeout = null; + } + if (wsClientConnection != null) { + try { + logger.debug("there is a web socket, disconnect..."); + wsClientConnection.disconnect(); + wsClientConnection = null; + } catch (RestException e) { + // not bubbling exception up, just ignoring } } + if (group != null && !group.isShuttingDown()) { + logger.debug("group shutdownGracefully"); + group.shutdownGracefully(0, 1, TimeUnit.SECONDS).syncUninterruptibly(); + group = null; + logger.debug("group shutdown complete"); + } }); shutDownGroup.shutdownGracefully(0, 5, TimeUnit.SECONDS).syncUninterruptibly(); shutDownGroup = null; @@ -300,18 +297,15 @@ private NettyHttpClientHandler httpActionSyncHandler(String uri, String method, private NettyHttpClientHandler httpActionSyncHandler(String uri, String method, List parametersQuery, String body, List errors, boolean binary) throws RestException { HttpRequest request = buildRequest(uri, method, parametersQuery, body); - logger.debug("Sync Action - {} to {}", request.method().toString(), request.uri()); - Channel ch = httpConnect().addListener(new ChannelFutureListener() { - @Override - public void operationComplete(ChannelFuture future) throws Exception { - if (future.isSuccess()) { - logger.debug("HTTP connected"); - replaceAggregator(binary, future.channel()); - } else if (future.cause() != null) { - logger.error("HTTP Connection Error - {}", future.cause().getMessage(), future.cause()); - } else { - logger.error("HTTP Connection Error - Unknown"); - } + logger.debug("Sync Action - {} to {}", request.method(), request.uri()); + Channel ch = httpConnect().addListener((ChannelFutureListener) future -> { + if (future.isSuccess()) { + logger.debug("HTTP connected"); + replaceAggregator(binary, future.channel()); + } else if (future.cause() != null) { + logger.error("HTTP Connection Error - {}", future.cause().getMessage(), future.cause()); + } else { + logger.error("HTTP Connection Error - Unknown"); } }).syncUninterruptibly().channel(); NettyHttpClientHandler handler = (NettyHttpClientHandler) ch.pipeline().get(HTTP_HANDLER); @@ -341,44 +335,37 @@ public void httpActionAsync(String uri, String method, List parameter final HttpResponseHandler responseHandler, boolean binary) { final HttpRequest request = buildRequest(uri, method, parametersQuery, body); - logger.debug("Async Action - {} to {}", request.method().toString(), request.uri()); + logger.debug("Async Action - {} to {}", request.method(), request.uri()); // Get future channel ChannelFuture cf = httpConnect(); - cf.addListener(new ChannelFutureListener() { - - @Override - public void operationComplete(ChannelFuture future) throws Exception { - if (future.isSuccess()) { - logger.debug("HTTP connected"); - Channel ch = future.channel(); - replaceAggregator(binary, ch); - responseHandler.onChReadyToWrite(); - ch.writeAndFlush(request); - ch.closeFuture().addListener(new ChannelFutureListener() { - @Override - public void operationComplete(ChannelFuture future) throws Exception { - responseHandler.onResponseReceived(); - if (future.isSuccess()) { - NettyHttpClientHandler handler = (NettyHttpClientHandler) future.channel().pipeline().get(HTTP_HANDLER); - if (handler.getException() != null) { - responseHandler.onFailure(new RestException(handler.getException())); - } else if (httpResponseOkay(handler.getResponseStatus())) { - if (binary) { - responseHandler.onSuccess(handler.getResponseBytes()); - } else { - responseHandler.onSuccess(handler.getResponseText()); - } - } else { - responseHandler.onFailure(makeException(handler.getResponseStatus(), handler.getResponseText(), errors)); - } + cf.addListener((ChannelFutureListener) future1 -> { + if (future1.isSuccess()) { + logger.debug("HTTP connected"); + Channel ch = future1.channel(); + replaceAggregator(binary, ch); + responseHandler.onChReadyToWrite(); + ch.writeAndFlush(request); + ch.closeFuture().addListener((ChannelFutureListener) future2 -> { + responseHandler.onResponseReceived(); + if (future2.isSuccess()) { + NettyHttpClientHandler handler = (NettyHttpClientHandler) future2.channel().pipeline().get(HTTP_HANDLER); + if (handler.getException() != null) { + responseHandler.onFailure(new RestException(handler.getException())); + } else if (httpResponseOkay(handler.getResponseStatus())) { + if (binary) { + responseHandler.onSuccess(handler.getResponseBytes()); } else { - responseHandler.onFailure(future.cause()); + responseHandler.onSuccess(handler.getResponseText()); } + } else { + responseHandler.onFailure(makeException(handler.getResponseStatus(), handler.getResponseText(), errors)); } - }); - } else { - responseHandler.onFailure(future.cause()); - } + } else { + responseHandler.onFailure(future2.cause()); + } + }); + } else { + responseHandler.onFailure(future1.cause()); } }); } @@ -391,7 +378,7 @@ public WsClientConnection connect(final HttpResponseHandler callback, final Stri } try { WebSocketClientHandshaker handshake = getWsHandshake(url, lParamQuery); - logger.debug("WS Connect uri: {}", handshake.uri().toString()); + logger.debug("WS Connect uri: {}", handshake.uri()); this.wsEventsUrl = url; this.wsEventsParamQuery = lParamQuery; this.wsHandler = new NettyWSClientHandler(handshake, callback, this); @@ -476,39 +463,36 @@ private void cancelWsConnectionTimeout() { private void startPing() { if (wsPingTimer == null) { pongFailureCount = 0; - wsPingTimer = group.scheduleAtFixedRate(new Runnable() { - @Override - public void run() { - if (isWsConnected() && (System.currentTimeMillis() - wsCallback.getLastResponseTime()) > 15000) { - WebSocketFrame frame = new PingWebSocketFrame(Unpooled.wrappedBuffer("ari4j".getBytes(ARIEncoder.ENCODING))); - logger.debug("Send Ping at {}", System.currentTimeMillis()); - wsChannelFuture.channel().writeAndFlush(frame); - boolean noPong = true; - for (int i = 0; i < 10; i++) { - if (wsHandler != null && wsHandler.isShuttingDown()) { - break; - } - try { - Thread.sleep(1000); - } catch (InterruptedException e) {//NOSONAR - // probably from the reconnect, so stop running... - return; - } - if ((System.currentTimeMillis() - lastPong) < 10000) { - logger.debug("Pong at {}", lastPong); - pongFailureCount = 0; - noPong = false; - break; - } else { - logger.warn("No Pong at {}", System.currentTimeMillis()); - } + wsPingTimer = group.scheduleAtFixedRate(() -> { + if (isWsConnected() && (System.currentTimeMillis() - wsCallback.getLastResponseTime()) > 15000) { + WebSocketFrame frame = new PingWebSocketFrame(Unpooled.wrappedBuffer("ari4j".getBytes(ARIEncoder.ENCODING))); + logger.debug("Send Ping at {}", System.currentTimeMillis()); + wsChannelFuture.channel().writeAndFlush(frame); + boolean noPong = true; + for (int i = 0; i < 10; i++) { + if (wsHandler != null && wsHandler.isShuttingDown()) { + break; } - if (noPong && wsHandler != null && !wsHandler.isShuttingDown()) { - pongFailureCount++; - if (pongFailureCount >= 1) { - logger.warn("No Ping response from server, reconnect..."); - reconnectWs(new RestException("No Ping response from server")); - } + try { + Thread.sleep(1000); + } catch (InterruptedException e) {//NOSONAR + // probably from the reconnect, so stop running... + return; + } + if ((System.currentTimeMillis() - lastPong) < 10000) { + logger.debug("Pong at {}", lastPong); + pongFailureCount = 0; + noPong = false; + break; + } else { + logger.warn("No Pong at {}", System.currentTimeMillis()); + } + } + if (noPong && wsHandler != null && !wsHandler.isShuttingDown()) { + pongFailureCount++; + if (pongFailureCount >= 1) { + logger.warn("No Ping response from server, reconnect..."); + reconnectWs(new RestException("No Ping response from server")); } } } diff --git a/src/main/java/ch/loway/oss/ari4java/tools/http/NettyHttpClientHandler.java b/src/main/java/ch/loway/oss/ari4java/tools/http/NettyHttpClientHandler.java index a37e3799..b6a6b866 100644 --- a/src/main/java/ch/loway/oss/ari4java/tools/http/NettyHttpClientHandler.java +++ b/src/main/java/ch/loway/oss/ari4java/tools/http/NettyHttpClientHandler.java @@ -42,14 +42,13 @@ protected void channelRead0(ChannelHandlerContext ctx, Object msg) throws Except response.content().readBytes(responseBytes); responseStatus = response.status(); HTTPLogger.traceResponse(response, responseBytes); - if (response.headers().get(HttpHeaderNames.CONTENT_LENGTH) != null) { - if (responseBytes.length != response.headers().getInt(HttpHeaderNames.CONTENT_LENGTH)) { - logger.error("HTTP Content-Length: {}, but body read: {}", - response.headers().getInt(HttpHeaderNames.CONTENT_LENGTH), responseBytes.length); - } + if (response.headers().get(HttpHeaderNames.CONTENT_LENGTH) != null && + responseBytes.length != response.headers().getInt(HttpHeaderNames.CONTENT_LENGTH)) { + logger.error("HTTP Content-Length: {}, but body read: {}", + response.headers().getInt(HttpHeaderNames.CONTENT_LENGTH), responseBytes.length); } } else if (msg != null) { - logger.warn("Unexpected: {}", msg.toString()); + logger.warn("Unexpected: {}", msg); throw new RestException("Unknown object: " + msg.getClass().getSimpleName() + ", expecting FullHttpResponse"); } } diff --git a/src/main/java/ch/loway/oss/ari4java/tools/http/NettyWSClientHandler.java b/src/main/java/ch/loway/oss/ari4java/tools/http/NettyWSClientHandler.java index 3bf7024c..608a9a94 100644 --- a/src/main/java/ch/loway/oss/ari4java/tools/http/NettyWSClientHandler.java +++ b/src/main/java/ch/loway/oss/ari4java/tools/http/NettyWSClientHandler.java @@ -1,9 +1,6 @@ package ch.loway.oss.ari4java.tools.http; -import ch.loway.oss.ari4java.tools.ARIEncoder; -import ch.loway.oss.ari4java.tools.HttpResponseHandler; -import ch.loway.oss.ari4java.tools.RestException; -import ch.loway.oss.ari4java.tools.WsClientAutoReconnect; +import ch.loway.oss.ari4java.tools.*; import io.netty.channel.Channel; import io.netty.channel.ChannelFuture; import io.netty.channel.ChannelHandler; @@ -58,12 +55,10 @@ public void channelActive(ChannelHandlerContext ctx) throws Exception { @Override public void channelInactive(ChannelHandlerContext ctx) throws Exception { - if (!shuttingDown) { - if (this.wsClient != null) { - logger.debug("WS channel inactive - {}", ctx.toString()); - wsCallback.onDisconnect(); - wsClient.reconnectWs(new RestException("WS channel inactive")); - } + if (!shuttingDown && this.wsClient != null) { + logger.debug("WS channel inactive - {}", ctx); + wsCallback.onDisconnect(); + wsClient.reconnectWs(new RestException("WS channel inactive")); } } @@ -85,7 +80,7 @@ protected void channelRead0(ChannelHandlerContext ctx, Object msg) throws Except } String error = "Unexpected FullHttpResponse (getStatus=" + response.status().toString() + ", content=" + getResponseText() + ')'; logger.error(error); - throw new Exception(error); + throw new ARIException(error); } // call this so we can set the last received time @@ -112,7 +107,7 @@ protected void channelRead0(ChannelHandlerContext ctx, Object msg) throws Except HTTPLogger.traceWebSocketFrame(msg.toString()); String error = "Not expecting: " + msg.getClass().getSimpleName(); logger.error(error); - throw new Exception(error); + throw new ARIException(error); } } From 1c7711b2929e9823ac4a81226d2f7d0135154a7a Mon Sep 17 00:00:00 2001 From: Graham Brown Date: Tue, 6 Oct 2020 15:01:37 +0200 Subject: [PATCH 164/220] fixing some more `Code Smells` identified by SonarQube --- .../oss/ari4java/tools/RestException.java | 20 +++++++--- .../ari4java/tools/http/NettyHttpClient.java | 39 +++++++------------ 2 files changed, 28 insertions(+), 31 deletions(-) diff --git a/src/main/java/ch/loway/oss/ari4java/tools/RestException.java b/src/main/java/ch/loway/oss/ari4java/tools/RestException.java index 61474951..48e5df25 100644 --- a/src/main/java/ch/loway/oss/ari4java/tools/RestException.java +++ b/src/main/java/ch/loway/oss/ari4java/tools/RestException.java @@ -14,37 +14,48 @@ public class RestException extends ARIException { private static final ObjectMapper mapper = new ObjectMapper(); private static final long serialVersionUID = 1L; - private int code = 0; - private String message; - private String response; + private final int code; + private final String message; + private final String response; public RestException(String s) { super(s); message = s; + response = ""; + code = 0; } public RestException(String s, int code) { super(s); + response = s; message = extractError(s); this.code = code; } public RestException(String s, String r, int code) { - this(s, code); + super(s); + this.code = code; + response = r; String msg = extractError(r); if (msg != null && !msg.equals(r)) { message = msg; + } else { + message = extractError(s); } } public RestException(Throwable cause) { super(cause); message = cause.toString(); + response = ""; + code = 0; } public RestException(String s, Throwable cause) { super(s, cause); message = s; + response = ""; + code = 0; } /** @@ -54,7 +65,6 @@ public RestException(String s, Throwable cause) { */ private String extractError(String s) { if (s != null && s.indexOf("{") == 0) { - response = s; try { JsonNode jsonNode = mapper.readTree(s); if (jsonNode.has("message")) { diff --git a/src/main/java/ch/loway/oss/ari4java/tools/http/NettyHttpClient.java b/src/main/java/ch/loway/oss/ari4java/tools/http/NettyHttpClient.java index 4a86f647..55048fa1 100644 --- a/src/main/java/ch/loway/oss/ari4java/tools/http/NettyHttpClient.java +++ b/src/main/java/ch/loway/oss/ari4java/tools/http/NettyHttpClient.java @@ -154,7 +154,7 @@ private int getPort() { } protected ChannelFuture httpConnect() { - logger.debug("HTTP Connect uri: {}", baseUri.toString()); + logger.debug("HTTP Connect uri: {}", baseUri); return httpBootstrap.connect(baseUri.getHost(), getPort()); } @@ -401,12 +401,8 @@ public void initChannel(SocketChannel ch) throws Exception { pipeline.addLast("ws-handler", wsHandler); } }); - wsConnectionTimeout = group.schedule(new Runnable() { - @Override - public void run() { - reconnectWs(new RestException("WS Connect Timeout")); - } - }, CONNECTION_TIMEOUT_SEC, TimeUnit.SECONDS); + wsConnectionTimeout = group.schedule( + () -> reconnectWs(new RestException("WS Connect Timeout")), CONNECTION_TIMEOUT_SEC, TimeUnit.SECONDS); wsChannelFuture = wsBootStrap.connect(baseUri.getHost(), getPort()); wsFuture = new ChannelFutureListener() { @Override @@ -535,16 +531,10 @@ public void disconnect() throws RestException { * @return whether it is a 2XX code or not (error!) */ private boolean httpResponseOkay(HttpResponseStatus status) { - - if (HttpResponseStatus.OK.equals(status) + return HttpResponseStatus.OK.equals(status) || HttpResponseStatus.NO_CONTENT.equals(status) || HttpResponseStatus.ACCEPTED.equals(status) - || HttpResponseStatus.CREATED.equals(status)) { - return true; - } else { - return false; - } - + || HttpResponseStatus.CREATED.equals(status); } @Override @@ -568,17 +558,14 @@ public void reconnectWs(Throwable cause) { long timeout = reconnectCount >= timeouts.length ? timeouts[timeouts.length - 1] : timeouts[reconnectCount]; reconnectCount++; logger.error("WS Connect Error: {}, reconnecting in {} seconds... try: {}", cause.getMessage(), timeout, reconnectCount); - shutDownGroup.schedule(new Runnable() { - @Override - public void run() { - try { - // 1st close up - wsClientConnection.disconnect(); - // then connect again - connect(wsCallback, wsEventsUrl, wsEventsParamQuery); - } catch (RestException e) { - wsCallback.onFailure(e); - } + shutDownGroup.schedule(() -> { + try { + // 1st close up + wsClientConnection.disconnect(); + // then connect again + connect(wsCallback, wsEventsUrl, wsEventsParamQuery); + } catch (RestException e) { + wsCallback.onFailure(e); } }, timeout, TimeUnit.SECONDS); } From 6cc53875b5d65959f73e09b0ee73329f9ca3ac8a Mon Sep 17 00:00:00 2001 From: Graham Brown Date: Sat, 7 Nov 2020 13:57:36 +0200 Subject: [PATCH 165/220] update all urls as the repo has moved to a new org --- README.md | 16 ++++++---------- build.gradle | 6 +++++- 2 files changed, 11 insertions(+), 11 deletions(-) diff --git a/README.md b/README.md index 7d0bfaee..01de766c 100644 --- a/README.md +++ b/README.md @@ -4,7 +4,7 @@ The Asterisk REST Interface (ARI) bindings for Java. [![Download](https://api.bintray.com/packages/ari4java/maven/ari4java/images/download.png)](https://bintray.com/ari4java/maven/ari4java/_latestVersion) [![javadoc](https://javadoc.io/badge2/ch.loway.oss.ari4java/ari4java/javadoc.svg)](https://javadoc.io/doc/ch.loway.oss.ari4java/ari4java) -[![Build](https://github.com/l3nz/ari4java/workflows/ARI4Java%20Build/badge.svg?branch=master&event=push)](https://github.com/l3nz/ari4java/actions?query=workflow%3A%22ARI4Java+Build%22) +[![Build](https://github.com/ari4java/ari4java/workflows/ARI4Java%20Build/badge.svg?branch=master&event=push)](https://github.com/ari4java/ari4java/actions?query=workflow%3A%22ARI4Java+Build%22) ## Description @@ -21,9 +21,6 @@ across different versions. Simply add the library and an SLF4J implementation to your package config, here is an example using Gradle ``` repositories { - maven { - url "https://dl.bintray.com/ari4java/maven" - } jcenter() } @@ -32,15 +29,14 @@ dependencies { compile 'org.apache.logging.log4j:log4j-slf4j-impl:2.13.0' } ``` -*The 1st repo declaration is temporary as we sort out moving from a private repo to an organization* ## Documentation -- The [CHANGELOG](https://github.com/l3nz/ari4java/blob/master/CHANGELOG.md) -- The [Wiki](https://github.com/l3nz/ari4java/wiki) has some more info on how to use the project - - [Getting Started](https://github.com/l3nz/ari4java/wiki/Getting-Started) - - [Examples](https://github.com/l3nz/ari4java/wiki/Examples) +- The [CHANGELOG](https://github.com/ari4java/ari4java/blob/master/CHANGELOG.md) +- The [Wiki](https://github.com/ari4java/ari4java/wiki) has some more info on how to use the project + - [Getting Started](https://github.com/ari4java/ari4java/wiki/Getting-Started) + - [Examples](https://github.com/ari4java/ari4java/wiki/Examples) ## Licensing -The library is released under the GNU LGPL (see [LICENSE](https://github.com/l3nz/ari4java/blob/master/LICENSE) file). +The library is released under the GNU LGPL (see [LICENSE](https://github.com/ari4java/ari4java/blob/master/LICENSE) file). Files under codegen-data come from the Asterisk project and are licensed under the GPLv2 (see LICENSE.asterisk file therein). They are only used to build the classes and are not distributed in any form with ARI4Java. diff --git a/build.gradle b/build.gradle index 4c48c60b..0bfc99bb 100644 --- a/build.gradle +++ b/build.gradle @@ -136,7 +136,7 @@ sonarqube { test.finalizedBy jacocoTestReport check.dependsOn jacocoTestCoverageVerification -def projectUrl = "http://github.com/l3nz/ari4java" +def projectUrl = "http://github.com/ari4java/ari4java" def pomConfig = { licenses { license { @@ -144,6 +144,10 @@ def pomConfig = { } } developers { + developer { + name "Graham Brown" + email "grahambrown11@gmail.com" + } developer { name "lenz e." email "nomail@home" From 10ccc006d8fa6edc5240f3020be5d8e74231c94a Mon Sep 17 00:00:00 2001 From: Graham Brown Date: Sat, 7 Nov 2020 14:40:18 +0200 Subject: [PATCH 166/220] add ARI API action --- .github/workflows/ari-apis.yml | 33 +++++++++++++++++++++++++++++++++ 1 file changed, 33 insertions(+) create mode 100644 .github/workflows/ari-apis.yml diff --git a/.github/workflows/ari-apis.yml b/.github/workflows/ari-apis.yml new file mode 100644 index 00000000..c43718d5 --- /dev/null +++ b/.github/workflows/ari-apis.yml @@ -0,0 +1,33 @@ +name: ARI4Java ARI APIs + +on: + schedule: + - cron: '0 10 * * SAT' + +jobs: + getApis: + runs-on: ubuntu-18.04 + + steps: + - uses: actions/checkout@v2 + + - name: Grant execute permission for getApis + run: chmod +x codegen/getApis.sh + + - name: Execute getApis + run: codegen/getApis.sh + + - name: Create Pull Request + id: cpr + uses: peter-evans/create-pull-request@v3 + with: + commit-message: ARI API Updates + branch: apis + delete-branch: true + title: ARI API Updates + body: New APIs + + - name: Check outputs + run: | + echo "Pull Request Number - ${{ steps.cpr.outputs.pull-request-number }}" + echo "Pull Request URL - ${{ steps.cpr.outputs.pull-request-url }}" From 368683656f687fe808599eec7109a9591a064eb6 Mon Sep 17 00:00:00 2001 From: Graham Brown Date: Sat, 7 Nov 2020 15:03:12 +0200 Subject: [PATCH 167/220] allow manual dispatch --- .github/workflows/ari-apis.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/ari-apis.yml b/.github/workflows/ari-apis.yml index c43718d5..8a931c77 100644 --- a/.github/workflows/ari-apis.yml +++ b/.github/workflows/ari-apis.yml @@ -3,6 +3,7 @@ name: ARI4Java ARI APIs on: schedule: - cron: '0 10 * * SAT' + workflow_dispatch: jobs: getApis: From 450f91625cbcdfba64f5772e765eb49c9f234934 Mon Sep 17 00:00:00 2001 From: Graham Brown Date: Sat, 7 Nov 2020 15:17:09 +0200 Subject: [PATCH 168/220] change to the codegen folder --- .github/workflows/ari-apis.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/ari-apis.yml b/.github/workflows/ari-apis.yml index 8a931c77..ab63a309 100644 --- a/.github/workflows/ari-apis.yml +++ b/.github/workflows/ari-apis.yml @@ -16,7 +16,7 @@ jobs: run: chmod +x codegen/getApis.sh - name: Execute getApis - run: codegen/getApis.sh + run: cd codegen && ./getApis.sh - name: Create Pull Request id: cpr From c7f3dad663dd21d6e32439bdb50db120f2ab7484 Mon Sep 17 00:00:00 2001 From: Graham Brown Date: Thu, 25 Mar 2021 20:00:56 +0200 Subject: [PATCH 169/220] update Gradle to 6.8.3 and changes to get the project uploaded to oss.sonatype.org so it appears on MavenCentral --- .gitignore | 1 + CHANGELOG.md | 8 +- build.gradle | 168 +++++++++--------- codegen/build.gradle | 8 +- examples/build.gradle | 3 - gradle/wrapper/gradle-wrapper.jar | Bin 55190 -> 59203 bytes gradle/wrapper/gradle-wrapper.properties | 2 +- gradlew | 53 +++--- gradlew.bat | 43 +++-- .../ari4java/generated/EventBuilderTest.java | 6 +- 10 files changed, 153 insertions(+), 139 deletions(-) diff --git a/.gitignore b/.gitignore index 2385928f..59fbe040 100644 --- a/.gitignore +++ b/.gitignore @@ -28,3 +28,4 @@ codegen/tmp/ codegen/versions.md .build-local +oss.yaml diff --git a/CHANGELOG.md b/CHANGELOG.md index 01cd4f21..e80fd646 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,8 +1,14 @@ # ARI4Java Changelog ## [Unreleased] -[Unreleased]: https://github.com/l3nz/ari4java/compare/v0.12.1...HEAD +[Unreleased]: https://github.com/l3nz/ari4java/compare/v0.12.2...HEAD +## [0.12.2] +[0.12.2]: https://github.com/l3nz/ari4java/compare/v0.12.1...v0.12.2 +### Changed +- groupId changed from `ch.loway.oss.ari4java` to `io.github.ari4java` + +### Added ## [0.12.1] [0.12.1]: https://github.com/l3nz/ari4java/compare/v0.12.0...v0.12.1 ### Added diff --git a/build.gradle b/build.gradle index 0bfc99bb..146c629f 100644 --- a/build.gradle +++ b/build.gradle @@ -2,17 +2,25 @@ plugins { id "java" id "jacoco" id "maven-publish" - id "com.jfrog.bintray" version "1.8.4" - id "com.github.spotbugs" version "3.0.0" + id "signing" + id "com.github.spotbugs" version "4.7.0" id "org.sonarqube" version "2.7.1" } -group = "ch.loway.oss.ari4java" -version = "0.12.1" +group = "io.github.ari4java" +version = "0.12.2" + +def projectUrl = "http://github.com/ari4java/ari4java" +def build_number = "x" +if (System.getenv("BUILD_NUMBER") != null) { + build_number = System.getenv("BUILD_NUMBER") +} java { sourceCompatibility = JavaVersion.VERSION_1_8 targetCompatibility = JavaVersion.VERSION_1_8 + withJavadocJar() + withSourcesJar() } sourceSets { @@ -24,27 +32,23 @@ sourceSets { } repositories { - jcenter() + mavenCentral() } dependencies { - compile "com.fasterxml.jackson.core:jackson-core:2.10.1" - compile "com.fasterxml.jackson.core:jackson-databind:2.10.1" - compile "com.fasterxml.jackson.core:jackson-annotations:2.10.1" - compile "io.netty:netty-all:4.1.44.Final" - compile "javax.xml.bind:jaxb-api:2.3.1" - compile "org.slf4j:slf4j-api:1.7.30" - - testCompile "junit:junit:4.10" + implementation "com.fasterxml.jackson.core:jackson-core:2.10.1" + implementation "com.fasterxml.jackson.core:jackson-databind:2.10.1" + implementation "com.fasterxml.jackson.core:jackson-annotations:2.10.1" + implementation "io.netty:netty-all:4.1.44.Final" + implementation "javax.xml.bind:jaxb-api:2.3.1" + implementation "org.slf4j:slf4j-api:1.7.30" + + testImplementation "junit:junit:4.10" testImplementation "org.mockito:mockito-core:2.28.2" testImplementation "org.apache.logging.log4j:log4j-slf4j-impl:2.13.0" } -def build_number = "x" -if (System.getenv("BUILD_NUMBER") != null) { - build_number = System.getenv("BUILD_NUMBER") -} task buildProps(type: WriteProperties) { outputFile file("src/main/resources/build.properties") property "BUILD_NUMBER", build_number @@ -68,22 +72,7 @@ javadoc { ] includes = inc.toSet() options.overview = "src/overview.html" -} - -task sourcesJar(type: Jar, dependsOn: classes) { - archiveClassifier.set("sources") - from sourceSets.main.allSource -} - -javadoc.failOnError = false -task javadocJar(type: Jar, dependsOn: javadoc) { - archiveClassifier.set("javadoc") - from javadoc.destinationDir -} - -artifacts { - archives sourcesJar - archives javadocJar + failOnError = false } test { @@ -136,72 +125,75 @@ sonarqube { test.finalizedBy jacocoTestReport check.dependsOn jacocoTestCoverageVerification -def projectUrl = "http://github.com/ari4java/ari4java" -def pomConfig = { - licenses { - license { - name "LPGL-3.0" - } - } - developers { - developer { - name "Graham Brown" - email "grahambrown11@gmail.com" - } - developer { - name "lenz e." - email "nomail@home" - } - } - scm { - url projectUrl - } -} - publishing { publications { - mavenPublication(MavenPublication) { + maven(MavenPublication) { from components.java - groupId = "ch.loway.oss.ari4java" - artifact sourcesJar { - classifier "sources" - } - artifact javadocJar { - classifier "javadoc" + pom { + name = project.name + description = "Asterisk ARI interface bindings for Java" + url = projectUrl + licenses { + license { + name = "LPGL-3.0" + } + } + developers { + developer { + name = "Graham Brown" + email = "grahambrown11@gmail.com" + } + developer { + name = "lenz e." + email = "nomail@home" + } + } + scm { + url = projectUrl + } } - pom.withXml { - def root = asNode() - root.appendNode("description", "Asterisk ARI interface bindings for Java") - root.appendNode("name", project.name) - root.appendNode("url", projectUrl) - root.children().last() + pomConfig + } + } + repositories { + maven { + name = "sonatype" + url = "https://s01.oss.sonatype.org/service/local/staging/deploy/maven2/" + credentials { + username = System.getenv("SONATYPE_USER") + password = System.getenv("SONATYPE_PASS") } } } + +} + +signing { + def signingKeyId = System.getenv("PGP_ID") + def signingKey = System.getenv("PGP_KEY") + def signingPassword = System.getenv("PGP_PASS") + useInMemoryPgpKeys(signingKeyId, signingKey, signingPassword) + sign publishing.publications } -bintray { - user = System.getenv("BINTRAY_USER") - key = System.getenv("BINTRAY_KEY") - publications = ["mavenPublication"] - publish = true - pkg { - repo = "maven" - name = project.name - group = "ch.loway.oss.ari4java" - userOrg = "ari4java" - licenses = ["LGPL-3.0"] - vcsUrl = projectUrl - version { - name = project.version - desc = project.version - released = new Date() +spotbugsMain { + reports { + html { + enabled = true + } + xml { + enabled = false } } } -// To generate an HTML report instead of XML -tasks.withType(com.github.spotbugs.SpotBugsTask) { - reports.xml.enabled = false - reports.html.enabled = true +spotbugsTest { + ignoreFailures = true + reports { + html { + enabled = true + } + xml { + enabled = false + } + } } diff --git a/codegen/build.gradle b/codegen/build.gradle index c82fd8e5..fcddd813 100644 --- a/codegen/build.gradle +++ b/codegen/build.gradle @@ -7,10 +7,10 @@ repositories { } dependencies { - compile 'com.fasterxml.jackson.core:jackson-core:2.9.6' - compile 'com.fasterxml.jackson.core:jackson-databind:2.9.6' - compile 'com.fasterxml.jackson.core:jackson-annotations:2.9.6' - compile 'com.google.googlejavaformat:google-java-format:1.7' + implementation 'com.fasterxml.jackson.core:jackson-core:2.9.6' + implementation 'com.fasterxml.jackson.core:jackson-databind:2.9.6' + implementation 'com.fasterxml.jackson.core:jackson-annotations:2.9.6' + implementation 'com.google.googlejavaformat:google-java-format:1.7' } java { diff --git a/examples/build.gradle b/examples/build.gradle index 6f0f0e04..f794d2f1 100644 --- a/examples/build.gradle +++ b/examples/build.gradle @@ -3,9 +3,6 @@ plugins { } repositories { - maven { - url "https://dl.bintray.com/ari4java/maven" - } jcenter() } diff --git a/gradle/wrapper/gradle-wrapper.jar b/gradle/wrapper/gradle-wrapper.jar index 87b738cbd051603d91cc39de6cb000dd98fe6b02..e708b1c023ec8b20f512888fe07c5bd3ff77bb8f 100644 GIT binary patch delta 26193 zcmZ6yQ+S|Vu&o>0wrv|7+qP{xU&pp>+fK)}ZKK1EI!T}Z?6uCtKF>3+>b7Q$8a3;k z=?&n+bKs5iponRd%jI35ARxHlARx>siR4%*il7((1uK)8y@{J!oa(gW@(&EbVLvhOxk#E0z~5*_n$Tfk4BT1W zh~4H^yI$w!jrIW$@8~{|r_Pqh9?;*1{Rs-h$o?FVSot<3yKX_cH33Wqgy&Ugow#-- zd$AFKpvAm7vspRndDP5Y*{X$rg0EvCe9(Ow>lBeyGY!V@xQpXomHjCWwMA-rDRPSv zY@gq7;|J=t%N|R7799odG(V`K@OXpjH2q11r=-spt+w zmng+yzxXW&2lk&G)N z-h)16N@V9eFCNeZrbSiuE44@1#kS@h5wqX)wgpxfDiThLBx=5wyP_q&uT8OO)g!i} z`ony65!)LBh`yjIhNFW{%5vZka3CNsFd!fxA|N)P3^l}%ARrX~g&6-g&ji4>8oCzF zKSH<7MutdMx~SkLQ5g_)<~Gen%{ZC`NJdbH)-9$<(ppE)OUsf4+q=3xf!CmpZ`c>g z4Ys!B49{{P<@lMuM@Gi9cVK3-W&h8s0rx+luP@f0C2um4An0s{!;rApVwtHdlxBE$ zQ}-fiEaWDdk_Z{*`eS})9~03LOH#dsT^&c)G^Img%Th&3)4?O4Wq0Y&WfVC|VC zaAQwCL*mCoU593J>8NRWao@R|t#I*_etEAkj;Pnx3Px?Zvdq$zVwkChuPxdoUTJ_f z91pe6B-4rYiTj&D4-yF14*5BofspUDM3g|`#ZB$#P?p~-U9+h+Tp`mRxh*=&=&T*z2q>oXsGC%dWpshF`TNHT@_F>BTVa9G zFHYaGE;{c#SSHF=YdV#s&=@2HPVty?i1KRKnHMZOfiniPe%}^B8HFW z*bJMvi!j9I(^KSPI$-KTx8V>{A^SDH?XXHk2r zl3KMvKg}3t6q5GEn_a9c#&WLtG*Z+HlGMW<(x+DV$pO_9MbEmMd(|gjX$n1RcRRtv zDT~=Ns?nTUr{?a8bL%J`yhpBI_HJ=#J82CYL&{%*ODAh3aQ7C!&9@kuw2vTv^C5Jv zw{IBtth8_1lePLj%=eb2<|{r*Tr*eZc-3zAmND82-Y2(LCRJAYureb+>#gbkwS;}t z*dnlaO#wXPiqx378QPITyhU~VJF;i9bY&O>9`a<{Z=?tck-b5V=Ao(5iSinj^|JG0 z^Mei%8;vfT5yjl03`{X#`7o70WDu59Odv`qB&Kd4C_bQnCkPF-Z;JgZ^g{2~-?;k+ z9+d0E@fT(gQ5tY0OC?v8n)9lJ>xx!1rO|MACzpKq&HkF1K{ zFMRybn|7SN@1S0)$Tgnp%zhGmU0>jDj(qPx9cd6`;(p;9lq7up`hoX{FkphHyA0DN z5*0_8Cr`bKX4N+FM+NK)D;S+PQe|0pN`4GS%9VQJ!F@1AmvLj;s* z?5g2wVEo&)=YpSxQkAAjZU5QM2_ajp*;-oX5M*sllctPP$Cq)!W#4miWC{L-|8byZ z^iiy&Xyktx3$vQ_qG0ub{r0Drov-9Lg!p(omOcL5a7e1+=Q3+nuHS2}-`t&-(97AN zF!4V4J;ELv>Nxx#>p@srsIrMn3PoV;Fg0q~y9pFFHz~V?YR;q*bQp&>(1D%FPs zC*IM^c|*^YFd>8K!*CNjO?IyyVo0Oj58J=V+HZAg4EGQ_44PdzlAt7maXilOhlg5a01 zY;8K$cR z`?@05v}ykdXcpLFzwCu_^1Ix5oA^_#4P!q~iRGZaX}VfO>ocM-TIR_OVK|WIk=>*a zeNESLpfO2pCzrnXhvy4zVJJ|)bs@SBYiq&LgqV+kKtj0biu*n~3>Ls(AQ(f9*~_s) zl-KPHr3GJJdZbJ9z~4gno4QuCR6$+sXgnW-SR$UwdY>J(?y@VzOw-!z29BZMAa@*>cOMvu0j;NRm&a zA?dwChkQuKL|!${FHs;*>8zcvo{*&C&2uo)%+*>dx4mwK>fGN+2G`s+E+?FoDMB>o zeEk&R)YUb-)hB0btx0ZnL88NiU<4a4`*dXC&pJay_*!BvzV5L3egZfJ^3pQHC8zFj z6=tLQ9h+!XzlAle1MVUJR85LGy?b&&${lv)c!u?eR_HV5VGs~FMZC*XTEE>nWMNC4 zB-UE7S$o)*022^2SpSi8XR351W?e8S@6i^nRhZK21FxbQo=r|Xn3;a2gqkA9jC)ti z1U4zFR*N)5@{VZmvX8drmAd;H`V9VYPp)`CJ<24J3+oWFOOh|D+JrBTtRrT-UNiS+ z(J%rlp)E0cuK~b2h31^v%*?vFF%$`yaX*844h@8tiqzpL`V|45>?UdyCevybaaT+l zdZ{j2LANKlT=)%J%zpa;hj+KHasV#AP+j%_aV7mNFYy(I_e39m$ld%;hB{CR3NVHM zs?_7ryClg9%EdjJGu)cCVf%af}^xD1`=ey;xTSwvKswhL}f-h0rN zx$a-|8ICEr+~Tj|Q4jJ&D%Al!W{4)^8UYCecR(m4n1Xox7yTqZ!IweY}ynJI3 zMz}L%pqst|R9anw=H*@%l{5QYAlsH-?qK4IOT|U_%?X}+&3)yyoEsv22Yx~r!!S#D zFHjffGZQ^)k^dxFhZ09Hl^#$)1$%|>4LpawxEh+VJLRz_6n%#;LPdOiZ?-?QopPOR@$pf0U=M zotnQ+LX;pV(2mBcz5(Tq6mtI6^{nnb0ZCeqdc2jimiO)`7S5L5d*s~AL(wwRx^y_) zh#GRJ6CxyPN*6Zaw(!3)H6nkpJ5EKdx44c~YYcFRRlLrSK}q>QJLrKU+@6Erj&$a; zqseNY2DlS-f#nv2LUG7?M@oSa$z=|r!z!Vove26#Jt4%MY5?-5EAFbS6yguDs?gCE z(vc>HKlF#duyAd`Ef7JyP%dBGd}$B5LM>{YZJ8-rOT-4~#18)T(~5~bG7eBFL@D*sXp~E2b)#Kj-6#_;rKFTcZ5;~q>XBa%9qtn zh|*NK&npj)_X0e@`Q)Duq;*G(ix)9}{FJ(tBr%|Zl{%`3vm<3;ZTao!@JCy!w$Hd$ zeTsHc-QO?{AjJ$$xyVeeiaa(mIS{g>H~RWDd^7NrcuhG+n6;;IOM;Pnv9AXK%*F>l zh;aH=_~cR-sWJe&{k3#sLEJ9Q;xpFrzQ!1IA($)K6A(HHJ78{YNzs2fS9t(^@rq2; z%#zYDCmxz&BIxr`?~%}btlSLY*nUOqSIu}@IIZ6m+uae;rw{n@(ccR5i+I!DYr1e1 za(MOzHzGaa-+2Qi4lE{yhB?MQdUJSqM$cf$?F?6pb~QsYC}kb`SX9W4V`o%%*{zQJ z64`;gk{^o`6(Of^2y<*)?pbt(p*cCs&QLrs354H|(M+Bl84yFLM>{4$a^t<&uOd2( zDhK}WqM`tq3_L~#0nsJ_0U`b0qJjbbXWp&Th4scC_XtdYXp(dG5kaH82(=)@Kwe1p zNKUs;DyER`6;Dj1)k)SGNDhTGJscIq$m5B>ort=n@wBIQ$t`!x`S0)~<-(*&Y|AE0 z)a`OzqP|LRKT9XHDk!b@B{%*6j6c1Qx`5psOT1Mo>jGwg; zn#*@S7dQbm1brRiPk)Qw!Na~6#2i1!S>M_ZKFrd-N5lZxeU;03j1M7M?Pf4N8dDV?~ChR zl~dm^ZdlcjsW>`r+GpIb96^EutTZQ7HZJ;Ji9;!9fm+SDzseGRa8}V!>`vLfEA5< z^)ZQgMs(z0cl=&{{#-n$H4i7s&F>pR0-jaEn=80*K7h4_Idl}?F4O-j&+iq}!q|0u zW>KXn0n?zIbBoRPGAVPB&EzsF)TGUQQbxPlc&8)*U!LeW9DyE}^H`oU%IDjfiRxVP zcZm6`!=m@f-tdayub+@lecT1jHj$I7CX&YH9$FlZ&!uBZ_-j7{`7B}n<(LR^mFlUm zdPXw&F#ypd4Z0KNnbu6!n+YwuuibHJChS6JgbF%iJ2%OW%yroEX{36{1($2+bB-&K zC0J1^1xfhaH|c}lg(Z}>?KcTy2vs7B`wT%jT2_Co)Dt-(~ z$*7abZzyD0vyDjXlMsm7MuDfEld>A6c;^VEn_#?$SSettv}`*0^ICen24YL)KM7sp>Adr36Z)i zLZ)C~O4l-Gf7j-`wbz!yKgf7>5oT>A5&2stuDEVk(Mb*S$E|S5S*`6RXM&8_DcsVv zCK2jHYi|StkgaGR5AN&9NqFZaeIZ_hgv4iEeNG!)WAE2;tZty`kUh#rx0T{i<$L(pl}iOmk&Jn&`s#jtF66@s#y-I zrs`Ym7<%r)TW;h`wil?x%EZp6y^@4kv#)JSw#ajW_F1RVu}r@b$DP>2UqH&8hkfa) zgPn~tP`HoQzMD8L-$()v073u!X)Q$4`&f7(NRb`EPA>$p&-63+XPOTAUl+O`CVMBv zUrQ*z96r#y(>OjwsSPUDv!=|yZT$0zP51zJCqSw3{3pOd>*?-nTsY6nx@rVd9r#ph z^8SY>H;-e8C;6+TlQz|S9$*y4dPkmczn4KLYdPZkMB5YQKCyx1k zJU4XSsE4Vem=3%L+>&Z1KHvXd;|(^h;3Q!f2m$|_<7NAaA#5;^0T^^w!jQ4QL;le} z*zsm?=EF;Xc)4tMRH8y4kh-rGShhn)F}9Mo8($sHHs?z!aFY1UepV8{ZGt?)QusJ7 zzf~$ngGIL`3tXTAjsF%C+r97MR_g|>aA)^c*OI<*yVs|9XU79XL4qJI26Uk7Ijv3x zoINaggyd9a%t_q%0Ph8Ql54a^ty-n_TBVQcb?WVteFYzbIN`|xuv|=$?1TOt2d7n0 zl5X7BBE4qHiyuUa#im|F_P^ddNQq;Qd~V)7b~RAGgIK3?C-mhqFa+JRkpBJJtsb?Y z62_+%!ETHm0%1mb%*fmFd z-(YSD22!E5B|nk@2o@GOO91cOjR9JiitxXy-!;sEW|(do8;%0P&eP`;44pK7O*MhX zdlfBHfc!vIi~q{+{~Yhf~URiRcY@Pkc?o3SCkQQg}E+y{>J{{cN^5EY^KdbZj0eL(u#c~39>G3r3`=a|y(g9VG ze}!4C?0rHYoy*G-LX{VUGPp;XC>s6yOH$*fi2M)v$zDQ~Z-5?Et!K&4XKhzSA@f~# z2D4gmA=DNBUoxh8%ui`)gXJ{mzO;`Ka7Yro`3THr#>S{ih`Fm&Af_p<$IpA2`> zcde1;fXK1=Y%7#s1`@e0{)Ze>eOIs%ZAx25fAtKS2&3m==&$*)WJQuNTkc$bqb}pE z-|}i=Zhj)B^u#$9ue!%(%F|I3Z>Ea=V?a$?fMBd} ze1q9wcHuXQpXD!fBk-UaRsr3cun@5r2vH(J2asdupCZQXtO!W>%S8LAv!xe0kfu2n zjW5_uuq+)vtGwrR=+l{QqF2kBE78!W(J}GR<%hyOSa^#KW2A9#7?v-EpG}|G-ghyn z=?rspMd0U@OLxiB;Y?ZmX`qtu$BtOjBlV)!Sme@`-#+XmY|ZzS&1tu!IJe(QY_SR1 z0UV=l1SuTQ1Woeb)q8dM)^=&@D0MIY=odw=R}Ix1`s7uYSGi_ZR9?Ypz~{)8DQKuF z;;$|^>WXy8;kVBCj)zk}goNWAo+T`+Eu^`)Rq5;Orj}=OtP(k(_`S?Ia*=lu&i(!Y z6ky!UGfXJmharkF3Z=N zw|spi95hC)Z#|XXFr~?^gLGr^%K#mG*CRRdI!@8olzM+?;<` zmMBkcY<*15Y~<5?on)3RjW#`011xN|mi+U4bC%t&;oTcGP~j?Uw(l_ls= z>}ftPt(>WqU$ooRt&WD#h(kUpTahm$0)a5J z-Z=WZ(i=h)mcpDWFgE-@IdH`}B3S$|R`_jjI00_L3YJ|7a(6Hf0Ikg*&c>H}i8a<* z^1^4vKTOgld+Y*{4;&xunXo&fUk)n(nZ7>(A~0v{k}!HW8=|4a&j(!xARx)

$|c zhPVR@j{Nk&@@WnWOc#pdglpYbnqRa^G=aT%gEf}qea-{5y=4?s%BNYdE!7oVS$dS-jq9^$`zdUjKX!{5-+8{58s{P6Lviq5&f zzQ9h(E0*q;!DLs~tXi-I!aV7pA;bDB7h>Q7WQv&S-Bq<`n10M5tTIoGCSRX*XE}4X-yKG@ z*&4QX9KS>Qd^uW=HyX#d?b+Z|_#4p&jaPATz^QW2$6y|u52x5h~<_a*4PTBwZbROhRfpidY0V55XOH=QZt*L z?wXbvb}pSCneNmv;npvM38FTjLG&fWle~TLgc1+1AD2J@-r>rMbWHR(3+UZ0jQw8 z5ZgwgvjLFKKD^9oT<5j>3@y0WOxmAzkAX#?$$^3yw3s8prBpU|GV=W*PJEt$__E@r z`Stz2}qfA&J!S5F1Wi7fUqy*vAkIja!>mdAZeJkLWFEIi5V(C}TMXN&@V zj#{qpaJwA^>(sLa%xI%rHzgljPs6aV0K4sn;+ABIp zuQB63*`WGhyF+hsmojX3a<7Z|dh7vbcsGv!>0JUB#7*nn5*_9p6AkHI6Wmdy%>ep) z92}15`S_M@$U7q1>&W2ode_xEfne`?Ttb+ss&eG-$>$fH5bzVZdcs(H6oyFkfkhJ2 zUwY62^V&sX)S&ZfJmNGw;q5^Mk~pP+I3uP&`9a3N8m?f>3PXU5SD2nu=9@r>IfA+J zjjX@)X!vzOM-bidc2qIeh#Q>abJC@x<${icn`KprM)xE;qpkSS z|JucpB7kj2oOa8B-r7Ruh=d?*aqcTYdc@#rq>#Q8xE5LNkn$PR`-Y6+D$~(X5QkUK z3)eq)aPjpu>WI=wtB;d7loeZdCF`1Is64W#Ofa`qEBek>9wxW(>0(*7!kB?7Gwit4 z(Gg=8?0SZc;x|X>@MS+o^cebx=8&<8x2{&j1suO|vFF`5buf&7R|&Qg33jOwySf?< zazki_QODaxRqIi;T}qOw`^~gsa_&6m>$vu7N(aezO#KJ>Q~BF13Rr) z0$7K!w7&oXenjB`WX?|*Va$7e`O34 zLtF`Fb~J02*(;X*%5<(50Y(ZST0aGf0h!-(n8&AzL*F`sMjW4*!1BEp?hbH}9S$7f zO%LbIz}qGL&=^by4)9Dd=%7S6^z|#^5wHVEB6bNV8dB3(#{y+03YSOj$ z1(#|0&|-U;@#j?3YNOn0BbCI6-El=66+Lt{i8c(al1Q8EO3eS}T^m!rrCJVdp@Zzq zAiL(E_PK2Ojap$H%gcM8Dvq220xmznRkY$W41^Al2d-gwOQ{Sffi;Tw#nfQ z!8Ky6Fnp@zRJs|43%>a^AMi-vw|-SlWCSf+Wrc2Sko%DI7J60saN5_Sw>^miD=&7& zN~fxsIWvtH-=lfmgMF6IcJ9%DsG#x2`>pAVb`On1v26P|ynUXy#+;Z5sh_4inhVcjhBn8vLv@?^c7~MeNp3Oc8s!_1aYTuu4%I2R7#UhE zeC1~&Ugb+8uBy5n-UPduT4!hS-A&I-y_EFkn`P7d>6W-+E(UwpwHWW~5!9Fl%rhU8 z4rN-lV^xZE9tstUT+j$FGG_R`{nZSVEdIRh#XZ{{CF~w9=z~HC3Za?3cVIqLV7t-KNDDA(PuVk1EQP z<;!`;CMg(tjBc_oR_9o}$LsR%*(lK3;qJ$NpY> zz2Q%SK2J9HPdVIxM|@u?$Ai{=N3RQx8WS(WUmi`K5tJ9V6@4gz0rWS$C?Nt0Z0;Dp zN_9*dEh%Lz9X_yqMWoXnNtH!zgtATSXNv=2l;<=fNed&L!s?27>;+%8%xsZAJYAB> z6*7-ODl4v5g{=50{n>@`0v& zL!{*eD0MShOB38PGu}00NWP}zz23BV?b-8LU7Sutt0p2PG4|hMlDSr~Ovdo_g{v;R ziPuB~LwSn8jpVxkpS+hQSqS-OwkT{yq&tp9>Jy1O0r@%+1*(LwL13yrR6IKYRG!dJ z5t>vF=!WguGx>zusRaBza|PX_wgeTrm#&$9@d6;7K*6 z3e6;^pCyeEsw#~Bbf^@APG9i1S&_$v!%F-4drg!~g!lGP{ z?>(t@{R9);;EhaY*k_PBL`Z*fk|?BYWDC)YXsX7k=SOzbM2c@%WY{Tj&s*u?F0^dq z3*p4AojqtLL^ifH$GHBRj&%G|gRw}kkvKT^mqiZ^JjXwysjH#3$qGU*++|#Yukw`C z902-@ySHLM;e0%y&tyK0oqj2Qj>Fl+q~(%^o>dC+21Pf1y= z9SBh)|AdSSszzwvjk$C@;k}$FRI3&YX1W~XYVK8jRjUo+ooRFNVsds}z|@6ejWB&H zo{iQiz*G~Az7=mMsx-NwiJzMk=)7XcHKvoRulV<0mw!j(wZ}Np{EvkTM*{&N`#)LVofk!b)(#1unSe7mChznn;^*XGaL302Sf!K%NvK1Sp(SkQr9Q5)QXLWZWWSAO z=$Q}C%616O&ya9od*vm$4d-U_o}94_2TOV^deIt8leMP35r4xTw#k2VqZrON?~xqG zd80SRHXo|9Lp+81ZSG7&FRaS8pQn)X}sTvE9 z8-2y&E;K{W@gb+OsLCsHxpuL%Q*$;yjJFmUTh_VCGv#Nao;^Fzmo4P6+GfOj1srPR zsg<`)HXo#SG|j@XaGO@mRa?jd4EM7ECE3qIQ%*s#tLnCE-zC@}S*5I^><4LN)Jzvs z7(Ovy+fmt|)3Vmq99k((g!1juobDEhgZk`E82CJ8+jRbGN@Cmc)iyuK&pOT6-u^~0 z?zVb&Q{|S|$`FExDI}z6!__sPe1qpFTF6w-Wr~OJY*`zQKHKz^TI+JLzcOfmL{)Kl zJ5Oiy@1!;)n?)1Y0(T3g27L-^-p%(?3VBboNm_z;Qv__0l2J9;Z7)Y*yw&7QoN3rq zqBZ*j|NbhQCiNUnQ@nIM@-fgMU0K1>HcT@Gms;}(PjPmb1ot;MCB9qyB&1@>L5;9_ z{`8ryhVDpDwIcp@l)FzNsW>FSt6C;QVyJ>5H~Ah!hu^|icE~1Z+HKCAyxZ-*5zAut z$@jUliq9rz#UW27(F(*uio;<$`%+wYGOD&dRM0gct-U1syj0&lJ2Uo2%Wf>5W_007 z6|b14{7?m^KqM>Vwo6K|!bYtzJoo%?99+9;POxSx?M4v74^6m#O(70!z!t{^NnSa{CzL$VB8p^=*hcrsN=Y%vG=Y`xK z;HDHPKG5@4AM9YIJ>-Y$kGX?|$WE@lrFjzy{2_S?@}s*(=Mb6lQ+hBV>zewlDzt$1 zjW@99Kp?Q{K+9Wx@c0dA3*K-1-X~Mcv{^=&HSruG_StDpNGhbh=ZF2Jbr1ciGMMs~ z5-fboEUpih8Ct1H?=VuWFkPjX({Vj%D_dwgUaZIg8`{muX_3W9@u$K6;Md_DT>en$ zz>>|KM}>lvlC_%Xrj~nX-p$Er3nje`^H}UaT1&9x!H1muqW%KVQWi7iX~L(xm}O|~ z#X+Z^p7)e&r;?wMZm3UN#ARz&eSB6w5T2aYZXTDbQsB?2PjNoZX_YZm@$&ei*e4@< zA-cu+gUfi6DlKU&8_mLNOcm>F1jm)ZN#O zzmg?7)MT_mL2tU;A-l)smN&w_S2{1pQ=5j1v$uP~ENtMAB$VcrcK=oTxtT$B+CQ@1 z&$A^a(@Ka)^h5oyrh0OJ9#gzHDSSme!!y-3XWzXi7nHjZG|r9HxX}HbNrSM@H~AmY zl;6^9=(;b^Zt+UFk(}@*N9)52iLX64_U|w5ZFDiXM=}GaBCMv6LFw6*L_c{ieT5wU zA*K3qh9dlg5ClEl8!d$LFUsxZkcrz%g_DI7%&k#4`w>l747u8#01iJHoi4xrit81G*c; zYb5(ZWKaogi(If@57k)E;!!8`@909<{p z=s$mO)#Hn^uppRy@nfi*eXNEduoB3`4OXj`wMD-$aYLg5Z3?JcABCj9(eM9qE$;{i zSr|+MQmg_su+tUt)(;V1Ix41MT9z{O4P?P%2=!FO2-SVFcG~_M0Mz^g>CJ1Y!FEQA zHyFL{&h9x}E5uL`d#9o?MvjkrU*Wk$C8c(0X?SXAh`aoJc5Sh92J=H8jlQpnncsm)Idi-{nvpE5rUGUtD3?&^ zQA!Xp6!|>dyvmL-u7;{H{HUpYJ};Lq#^Xz%+mwJ?UNka*xdxQeq!<&L7B=xyjxRPN33hW zC1xWWsfp0wh{Q7n;w8D<(WFFbCqeLtz;~2_rAf<{}UZ{%l{`lUH=;0FogcB@M+7 zsxE?(;|m`8I}S!ggq%wlmQTGYZHei386lY?Ua%`q$e#*X%Z4LVb0rqa@Ga5|!*P=i z;_$=Yl*Yv=l4-5&pnFE#buT}@iT`i@WCJ0Y!XNCv9~b{YU7-Ji;v+M`05Xnl?k4v3 zV%8RBcK-vTq@@}tp^IRI@7r`3bnl8X29gx}%jwbS!DXY2;>g5ONief0+&gNAH#dGw zIM#fVJ9RFI7cY*;F@LIzvA4+S$s%$n%+GA*z4G2|X6*_Cz$cjU5IMNZiG{YJGR?&O zk8*mxXjgsC#2+%_ctD8CpSON`LoVB3lUDzceYa^FZDs;3fpU209hdF=4Xpn8npQIO zT4$d=+uK%w3d1rD-_Gbke~nkY9ghyAuz=d7?)!HA-+za!Hf9Xf&!-R@Y$2&?k%^qR z!mPql!wm6O7u)gvs+-r|tc+fJIw*NNz312HbK3vb>^z?k=mjd*=j5*gx7%q=HYW1# zoHMT;s1EH>@Hp-R^Ky`57IFot`W=QU^7t z;cG_8#7O-tI?W}7uzG$bL)asLUI^n^6>`FE5#YIhLr~6dsRnqkSuAbXvo%X4J)3@#~v?(nVQ@fLH9eXs5+tESnmjDP!C+z7& zgB%)&-kK9JNw*s^M)Svlxj2@T5hHGyzeuRqzmV-4y+LEZM;2?M?z}vE>A&MAERIsq zm_4|9w3ud?(4qh4YOqGMZUuapqlR)_{r~Rmi6@wI2?huV6C(%+$^RN?=>LzK(t-6? zUtJZZZs|4gW{3)9u}6|7p*N8NGfhFEzyYIVKwPSfqE*wyvyV)q1W1qPNW{5$W@nxyc7dHeeo_II!6b;oV~QTROH z?>ypP*BuTjgn=%_#dr<7zqu_bNG;nr@%(;=gz%uHG^@hJC9(Y8zsRW2Mdqhmh&y(MjXqK7r9NtDPnW7M)|6ga zFXNK8OX3g#+#{MHUMZg;Rl#(b4(aUFgL~{e(mh>VjfJ;IBCt1YSNfC-(vWuEB@zg| z4$-M8c_segA*xMWN@hrW@O088avV-lcM^wJKwPS!jg%L+WS?9v^Jbr3r3dz@c)3~a z(lWLU)+;!`UutHRX!~xk)CzIwvsd=u7`M;ZfDLi!AE=bb^%#a{gi$&>6hMv->X??m zWus}kLsWWe57_RYo+$oKra~*tTXJ(r^mL;c@H@dxv$RMwBS3a0o7nZAj8U+-Qk6^n2LK4ApdP$ z+_K!7X~{uVJ6EkZZJm&!7OzA28Ljb&yCQdq;A^e z?`VDC`}TBGQeq6cLnieythuwOI3Dd$M}#X+kSHK?}`= zO2TQqq_tFkr;cKIbix;x<@&AuHc*PNE{a)$vE)0$*F5HP0dP^Jdd`wdg%`T;q-y1O~&P9JR`&o<3>izFdsLFd_A^gxhlP9 zfMw(q%D9Geb&<4jX4_!;~84j7z`uPWvp#QwOuRSact(~ zHxk^QLiml7pvftjiW`h{jTnW4!0ll^@a$m~OeJ7@l$~VSU{Lok9>fEvUa%_X3ss?0O>_?HpgyOLDgdTWC@F|kX z{Nyh7W(%uos@?Fml*tO=AWr%{xSW)`x=b&iMd|WYw~(qw^b2c{9t`LMLS`L$`S&2d z@xJhw6h~hr3m>xTUDB^X3vfH?`fJfsgIL?(bZQMHDe4BnHwj1wlTDfd-U=hOlE!G5 z=4jW<)p0de_M9z2Sq7&b+P^XF+$nT1WA(p(BnuZkP=l_vi+dR6Vj?7}Mf#uZY~_Vb^qYp}i*VUR0DkWWVx+yKgMf`lZ*iUmj5*w1;n&;o_y=bEBfxf|UCQ zN`Q7nAl||yUOy6if#xb*O8xpJUAJxpy-mRw_r)jeUc*zxyJQ?7Oim2#-XG<(_TJ*p zZadNOQiBh9!HE&9U0oLrYu24nLj^@!Qc4k<1?(H)9-lx3CR!%dYhz>CCh{ zXX~&_^v-+UiSiPhf6amWLoY*8W03WEqRCMVHFZ!2%}Ko*#@#LZB>oz0eK^63xkix7 zwDdsknE^Zh`<|&-P_gY1_>*|$eVc{W>o&2Oda2yik7p4$s(_qHr$SSolZuwgWlAGg*CouZ_Z(2OY%Jrtj<9IV?M3OuQ{iIf|~x z+OCWNe~txonygr@9v+#y2&5>OFY2d4Je)llU2N>-U1%Y2eMnxIhQRK&)ncRb` zgHl%)N*40F(cQOsjH1!_2+(IRufIn`ayt8{pN|7Lhkrvs0;~Nj#xYzsd-GWHfDt9Q zl8Vyz2bi+vw1PRM7>Qm}rKsit^9e~!XTE>x6PCX`P%9qh-2=mc`lps;{+O||%vRW` zE3_)>o@j#9uE;_8JpA88Ozy*kur+)P@8{Tf!WBvd0`Z!Xf6%X)yzb2S%KAYzn z?rQ+Pf5|}DAyI|U%KQ2!ejYIWOHAfU7xnVl>bq|aK#}@R`j^^tpV_Q%zE1JyOJ_&G ztreXsq4K=^wES>~wCSJG2qCa~N&Kvo_ixMy3{ENcGYc!%lrXfJmz`lSHrZwJl6Z_= zNUMIzH^pX5kKm`9OR}Egne*0~1*LE9@jft;w2EN+%=*AOq{7?Aw2aZAs-6c@dc$O6 zomi1GxZ^0H4Ca;nB7IApks9BRmBkfJb6#vB8+E-Z`eyEF)qU??AGEiYCp$>fwCY1s zvv&_EhvL3@okqXsS;VzuTTz?q2YJc8MBR$F-jY59>8bS-6`H%J8fgf&Q&Rt#=M(_L zAV7vpgL>ey?%X*2D14?^=Qk{@HMnovL&kHwCQ-v>A(8p8F)8y%R0?MD1 zBo;$)ZMMs$Soe+8MqZh+jAPj|t_y5veA>_UYumoK>5uaLdCKF)-GsmPJ(y(0n*P{i zys<-v#V0j(cM>ICv&TEdeBw$~Ls1r0G?i3-TnPp`B$ zRxBck=XpH(i7~L^4z1umh!eEgtRz|5MoouBMTeJa>yFHNtlZxwu9=D3uMln^sN0{J zKNjaga6V#rWdA)4t@RqaSN=$s^94t1i@Tz;o3$bJnF-4*olwZy9?s21?8%lzKwpZY zc@lKhbN1Dm&eJGYR;}1jg9BD(H1sY)*D+lGBwrBd$h{P0$Ma@6$#ws<$_8ZR>gSwY zJ*_vjPnewj++L(AbAwjtayY4c6W0(YfhR?bW5EmauaUURIxO?jIbEa=xA)5 zrlxc7qeYUm^|nc4@6e1Ao$yykN@x*-8@_p}bUmn)(DCP?ZdBqM!9$!YS;}i#&RQRw z(jW5~!{0^E-Q9$IB+~P7snMnyzdv!?;G~ZzTHH=cwC`$t5MTFWEV&ukiLw=bpbLHs z;w~&?-o?0Q9A!c%smUpNDiYcO!w?lgLYc-F*c$* zp`>mI6a?gQ6@$1t3Vr=8xxF>Le$ve~0~R{P9M>zk>p6Fii_@6eL)P^|pLMZ*cq8ZT zRs@N6m7Nr?AjnqVjL8qbh)4=&>70@lIE_JpCQ5I-HSbWKD9&qFZB*W(g|vq}7n1SG zxt2G^ExxnzcFez|*w~eP;&!werZX52sJ{5wlS^m*<=#_lSk{d<3k7imnI;A!m#?eq}DTrH*>+KD?X?&h@m?QK9Bhz5`T4>^h1F zsFSSbI3%1+i}u`K76l5-HceoXiRtAR-ifN_vGYWZS~?vVHMfMj!f;OPBfh8x`-l6FcwFKm-v^o^~0!Hfa%+63{M_!aGh zVf9RWH;A5WgE-`#Z(^zBOfj9kH|dER6c@UO>GdG-%;`0~r0&heV$3h1hAh{9t7a2f zoOe&3L|XVmfI~H4+?6SmQ5wVhtT4nIHVipER(0W4w80uT9+kOMZG^lt_1(_2AFPiN zQuHmwW)(bUb?yS85C;Al>IeN`%vR0Aa_aG~72-XK3#%&2ycqhdc^?knE}sZ$gZwb_ z4Il6a-7R#8+Q`gI+hlj&D49gZC<-h6H15E%^oHW+v%IHB#+6>sc∨fd|u2@Kuk2 zqV*-j@Nbm2ZIgh~9-xQQZ~nA86An7{JNxsTptKPoK&blwV++LWv{gP zysYMJMFRZ`3aTs5<13*|ci-%Yt>~ZzWECwI8=Grr-Jqd#TI-Gm)l6@@5S*xx&Q+Tj z*llb&#HlwTK9VwRDT{mYIKFI}Q66VYJujH3eh9cv@QN`01Tekjg~Jz{b(MG4ew0e&Vovmhf&Maas#s zJ3xw(y}%24W~f+{tQT=7TGW@*JG4>$P`iGArS?GN>xyQblbe(8C@lC3Rj9oCSs5P& zqqIg!6b1E3ET99k#0SKRa^r&x8(QN)zGL>dV543>^OM+qK2G_7Z$c^uswYEU0y3_U_0z)1gLeFJ{8IW-_RpT`x>}pLXi24&E~Q zejvG+ObS{gx7NU|e9hyS_8ngTV)?}YTf8MGr1A_; zR}3^PWz11xIFL#Jm{eO$L~z{;`mrPzkfbAAQLsTT90tG{{^^)rGUMpIm|>hi*F{h$ zA6#71A~Aa%G!LQ~5bYQJF;Lfc5>HASm_iTZ!9i!ajZh+!SRNM(JAYj45ZpT#4FIr@|7_KAVJmk8q$GUYZ@m-4kAw9e2~+llyKYuVa=-*)bRDM{Npg_oSmJ zf27?tYA>Ct!dV|{1Kayddiaajlw^n=Nma?4{awL?4(=IAho0=3cPy+o0MOat?UBd^v5Sgw0rF zeV44FKMFnZbj%rG5W!w8ZH?ukP?Eo(m$r}M!P~qPjSzRl@Chhs5D$dLX*L2g#}He2 ze1epjf!-kS;CHm1<4)#qWECRfzyjsH9D3&oep@QTzTu%rY;Oi}~a&^-be)0)hO|ebt<`Ld> zitFSNYD~Vjo$|D0#vs>|cqu-r>SG-I5hHK!HsuUr+%?IiL)fg`vB^E=kY}z;N-}fA zK-F6GYwSm*5nHAR2qMMeet7qlh#1IXA?;z61vCzv%Yv$+)Kq^vGIdtr{;As}dc^z0 zIqgKaal}w$EKNU4N!w3j{L7RFc7kwu(#8z3@8d-W3fXz?+%C?hvkjMHfIBq{ys>4b zncycCgEw!A%S4jZpfWS-XrTlIEEN5N80YqNeFcqo_9g{yE!Mwg<%~Jg)%4|4_jO77qqKcaUwRz9$#*tI zLQRXc7-a|I)|28DZU~cIpA?_0pE7$G20=VM?5fG}e6}0v!TdW(ah!f{s(xH#GL<^B z9a3x64X|6<(&!eO7iJCfnO>mh%aoW7>#>NktbW&C2x{GKREG78c%2~zM<@8@Yw-gb zn%aBe&}lS318O6+z08?!54U>t^U~Fyu>$5=D$DXv9y@9D()THXBr#x|gbKD=wM{|v zk4CSMI2grVEd=eziL2wl3ltkUf3LRDE_|mjGo^dc2p{3g64s6;^-yPyfMlTjNzsq` z1vPo&pnKHO!&sQO%*q;FN480{;XNu_=CV!cP>LC;iOZbf-E{_z^N=<5 zvl7`7=^XXc9yaneb7Hs2RW^rWTCI`z1-Q)xW6jTsEM4mYT*-D61b3fr&px!Ce{)Uo z+<*FY`g#N4g#41=B)llVj;z?Lp%0c}yj0#3B`~?Tfd{c=W0}as)l3TD%X<)_Pc6}e zwe+lJ2-=0;wFC!wY4*}x$Rg#KhNuV<3>MP}#!kr$Z`Cue;a5>#_W8gNmzmmO^Y!Kt_f(45W zg^%5AHwmPwTW_Z}_NK}50I(ZXRlcV#Tg$wF?R3}Mdw(^4_4UX0Rqxk?$2GpUCNMJia5Tz5`CL}`S22h;+etQSB_`w}A7mS)esJ@#E%hsFvt|rQXtgWd zlgu9{eida|@M=bmQ8bvA+n|05$vQT=3K3C(2u>AroHpa;zR0kz?kYQyq~0{OtA(q! z)7V8+v&3U6#A%i~kZ8r|-lxvXtIow!y?nesQqF0UZhjzQS8da@sHT3}aj6~I*z5Bx zV`P;{cZLIRQApsSN;9^LY73axDXreG?y_r1ez!26mH*_1Hl^oEe3pYKGy=|48=tK_AuzjzJ?xZ44#tqgeNr0k8aZ-uevf1sWp^mM|_k z))_U;gyQh>0`yKN`X>?*j+e|JQ6}Cc6_L%O_8{0xZjf=$ zLNJ1P?R0IJ(=SlVd{^bO-uk%d?2H`TLgJ;`;ysa{lBn#+9b7f-g*;K0>7hnD<>ox- z7n{%EU1QkB@EwaE-S#c#9{W3jw;6uQ{bc5kSa?L$TkklZqn6;VzMPB(r=`zF5UpuO zDx9KerivulEWiToRG#AIM;hg%W%3FX0zN&Fk%R})%rIq9)oar0zj%O zE+LuWs(4a7Oh*SxZaeUor}lhYDQ#tYr$Ty>ex*5HvA3z{LsA(i*T!lvnQrf^*%s?I zGm=(7lv71+Wo5OuZck6DJC>Ft0&juuk0x0BHQU=HPRDl+*aXpU8w9)B<~G(qlyWu^ zE+fiet=0@$^A>72P6gK!juHy%9kkzG=DxI7B{+A*dFT1Myg;3K-*$`@`Jh!pYd){tTw87j%=(!!MJ_F>T_*Sz}@pEOstYU*deJ)TEK}x?s9F*M@+mAhG zifyCtE7cK96Tg>nDS>y&16y}#j@Gksr=1r%oz~6Uukp;JFFwRuut3ajL!&i=cUWXX zE+UR6#B-I6bawD+IiF-D|5$EhFn5|4y$T%`L5$~0<7gd~Qo;=NQTZ$vicBgnFRq_< zP=AWmC-XRatzcQ7JeL208T90tuI#f(F0Lw&#WL4?#4TwVaYdGo2#X{=h$>4lTX3FA zh7zd>o&K&r-1wLMm6mf!XkR^=k>G>bt0y@%>uGTbc_nY`o15-5mnl5b8}O$6x6X##WlWZIiI7rMzmxLNrh)n zFzL9(Z(y|19A{VR9fSI4meOU2Q!Zh3ew;od7+eYNAcQ&Idh?H@2H_UttWX#4t-JP_ z3+l+CBV<=mF4p*k3Br35Q43o@9zG$YcrH|WLGJKD+I@58RAGMf4jdzH9jWqdV}&ri zAS|qSGybdP%fogFc3_JeC3ZEXGs@Q8v2{5$rL5<|SThx;ha|}kPXS}5P*(*d*=HA* z_s6@FjePFK;deOZkTA(5ZlNvOP`KufU-5DOobquvCF|PL)eBy;Or+N|i`ql?Y_ty) z=?hH#vxXZM(!50^3K@h&kQDsEN($yX04k1{jRB%txtN&SS+IDzm^e9ExUe{xxR}^m zxIrWb$levQKGP9W?Pg=)3InmIU$Y9uLZimB{2&iuwCRH6)Cho`bEv@<)5PE^ZzK?d zPz{T+GUj<0UM@=m99E6LSW+Y|vZ(CEMw7v@*b2?6q%T}fuU5B2keumb@nu?+^Q1$7 zsa_Ky_Dkm2c&20L8v(8le$UT8@Vd!0sky0UWyICRP$;oY39n2MZ}~#soS{sVz{YUI zAOLr;+fx(CwaGbUO-n0}jwte(EVYrhl^iWNKAI-hSb>FEl?|qX;5qMv2Ab=rOd~Lw#z~}D z^XD-q=cB?>Las6ub}i3YNg4Q!_96x;N;U#yWSwX}7gY7$T)vJpvoT~XwO1e{ad1^- zdYws8lcL5FA2w>`%~uaeIdF~P747TYB^PS8_g{v~Y)W)l4OtIeEe%5zfk)<4bgWgV zv7MO?D>$VI)2fmyHXG|rSkMV6<9m7S_8*aBhEOy16W}Im2P+huJHjIhXvWlW&XzL!O12;Bme)#{qo2`Qb9hPrST z*+%r#6QF(Xbj8m~hi$_8o|ZX6A0lSVEvLh;E^czQV$o_=c8{o$R8j-N0Wj`onsQzx zdPJ%Fh>xUxvXYksj?FhK1>ZEOR=@e=!femqh<`4o__12Efo$^j110Dk3@dNTi#x|w z{pY+$zXO)5V=KQdYpsT|AbB^o>38uSt_{`sD+H(?gP91C&-2fOP7SP!YjqBmnU7Y0 z?RKw7sgKD?S9Y+gpcW%Q59lL=Rp8eo*Q6cf-?-nw3U^;4on2VXw_TuR7e1d`3qToR z#1~Nv-^{dlLfJe)tzRprHg!IWOU`9WYEE0@7~5f0+991Xhd}AomcZK6NvqR3p{z-W zRyfR!NL%?yq_BZmW`pGu^b1(gqt2kL?B3G6I^pw)^*7~`p{cryXNq|Xuv%oa z9$?d?aG^VE-smOlwn#4?vF8%1=a+Q}+RJc2@`MZS3Q+222V8bWP@rEfM_{>Maz>hb zJ?#Zd$TnXg)Ia({!=Ob)D&jms#+f?`6qMlaamF@70vgafc3D-&e2%HyZK<2(FOnr8 z--Iug^$mA@pRsHspI{hHLhubf(*=yTP*PhM!#vjsi0#%(Bud5QoPG}4BK5*0ypeG* zT~gX*&)S;$a$F&?{OMYH!|`AW6CEl1l)je0av)j6 z1oBXsGN_GKe9%3HgyP$73(XGi+XN1O_n7u5dR{(cpeNBomSdEUZ>R~g<4TgkfM#>K zk5oBv8c(^V+QezQ$&sf(3C~g#UsW&-MD~~W(^gvxE%kIU?^sntX>6;bRnwQFKJF386 z^Vo*Hw8U|3v;~w;#gwd=QDKsG+|*YY1U*p4cJG2sru9B_9!yi{>4ER1kD6_Z%F>e* zW@^#u6OI!V?#0h*6bS>%46x?im-8L1zC1`IG+&@w>shZ_`nb0{dewxKiOmhEtn3~l z_JR-_n_Q(op7`mQ!T&WFcI#N^oYr`)e`nkn-$#qb^OSkSh z`BsWZ>Uhl)vfhU__{oU$tziTkFya%u=s6$2#qGO%54Sx&^+y*-6?lGMEWMXgB~2Ss z++VY7vtP}^yh+8lx=8406nTbpv)F;&4h0Qd2TFG%To^| ziGY|48+d7mY3GcYv&HMtbv!sqLN8Pa*QTXJRZW%aqExD*7M@(l%0~vAnD;w;b>yOT z_p2|b;ik(U^yQ_iM4ohr(R5w_!mu_#iKWtRgC`*}@50`$*rwNjFt{7xL7STPkjz$zmbUq&l0t?gSa%-KVT3GY6? zk{9Ezm^Y2xR{BH0pR6BD8~stvmcAT(Z3(`$F_aAJG*0eCAy@j@LjADIoG_0*g{T&f zDUs6-KLcmwjF6WzxoyVa&u0CMsG9Hs_dCB;d4{;&Iye`A?0cd*ISpBeNQ(t_j;8~o z%>qFa+J~Mv5Ejc0-id-aX!&?XNoR?J1h;@d0nPW46%CS=_)M&*BXQ^jT<(^$fh1>b zVG%MaPU6l4f~pmpKHo52Lig`pd+{B0aDfZ#0XFx$DYxt2Ja4aQK#xDKo1t_sL!x}X z(d0vW%C|^MG4LkhNbFcpu{j%Jw;x2c%8G$F1EG;Zqa>G^^8tEyi4n#%09s}#;slk* z5BGD)o1-OzPOwy*rpt_GBxgGrzbw8*ArM~nAigpkzCr#L_{rN_qBr07iO@*cFo3Sc zpckz0kQfYcu&F+4i&vSXbyV4>$|6l+nV-TUe)LE$a_}tR9-1KyNM;>VYNEDhiJt}O zZ8PK-_7MZ;$0brsj$Yd|<*!E4%^ERa-q0X2^P`o%6JN%=1lB->(@}B+#L0{TwOrki zrf?do#n@nA(<6`hp>s4y7gcSV>gwLt^Hww#7*H+DTJW*1CEXIss=3bbau^DJ_bGhI znjJTnH})i{*Rx3tU8QyU>=$atbXE%5j!8?qMEeNHMQ0LS%o?BmjnfUe5V?Xj&+5 zp2fY!_j;UE$*@b7wXe#?Yj!aqmTf{0nknj7+PcDKY4zaN4?%mo%nX%|Eqz>|82V4D z{2xlk<=>3zkC9HFHj0+giyQKB<#->02~NqGsN2a+J_QrN`Tcs?*LOa#Ff>fIGZ-D? zG}QIhnH)o|>a%eo|8%QsBT!}J=ww{}(<%K8DXxBaQu_&RYDW2)$LeB}bNJ5%d1TfB z3*||=3{|)42Lshgz3ur@BzaHu zITsDB)x7fbQp<$qG+i}T?K`L+t2kJEh?{V8>c(B(oTM9~=+t7w`^?&>f0V$yC_Ou5& zEqaqVpVm%FsKEWYEDCPMZIAZEZI4_-M&A^IJ9nl2+B(Ou^qF|9&SM^HZLxUbk^HUl z1%=)V*4yk|_bz>0-(K_=+#K0EeGwK-L1gr;n(jiYWgIx&Vx0+a*dDGw&qN6eBKKrL z5u9!DQdtSwep$ubg8f9J9fT9X^pC5xrnw;q>SWFTr0YUOtf0YGE8#M=##f&Svwl}t5r2~SIi8VdlCf%It|-Z| zxckB8_MXe815a15N?>x^f+<-Q<1F=1f#G1JRO-70qEOSYO`71BHjw{LN*G&m`0^xyhZu75<@m61JWeI;?*Yp>oTvkmZfRGUxMAkX#oZ@xhP+ zQJGi&Old@MX7k+VpB|ue_jM&#O!aqetUY*$b8l4J@nL(K8ssIgL-`?4Yy=MF&=-au#{RX}R~UJjZ0^u{X^tG4Sg)ln%9;F&bX_eQa8XNKZ_-@pZD4_2;QmXG;ee2+^vWfe=*GC%a0Z2SH+p5TUi-BSBmWqsa*5KB;MeDTDd2|<+SGFH z{i&7cTNnAGDPvndVrTcut5NmIDVzX|)f$-h&T4URD3~!>yL3wvbSkV{$z3Y0*b$z5 zUD)c@&G1_$UnLY6R>-Bzq7{FNOH-h~Lt19a2H3yV(7w%%=J+a;hy~=9OYKiI^s_)8t z!aL~_9jT{ihQUC3S{Ba3gSfvqV3t9?|8<9%X#V34o7vg?pRO>tb^=%*G)VOSetV&G zh!4y@ObE33Z>D}oxBrxa04f-8JQW_~0}aIB(h*FsH#{cle;T6^e>Xxnslgn>1i(Mo zs{cVj_5}e>NdEx;o4oq39)W-G&HiD8jQ+O~1vq^e6Zi**<{!W?tiOSX;G$7{@cl3` zpp4?*s-J}TzYkq|gcy)c`MY|Rh#XSI2*_oCs3hQv5o+LnNH?IM82{+qf*As02J4S9 z0@Qhbn`e!Z0slzt`~&~?^=}XcD+c&+6chO0sTYt{?EjX6fO+A+frzO8ornS68o~$u zvGDz0o4-zFhS=X$2w;gZc7U(eZPh*(C zKVD+|0Y=gP8!Q9}HTx~HX_A7g#~A_1*1y$@aS1^D`@cm5u>p#f;R|w~yQV^iv{{IW;fQu%007>rPwFv=0zdIP+nhUHr$q0Do1rdqB`MuN- z6%#x-NeqDc2zK@cf}bZv0m*(~(J2kU4d{1`z6&b2dx{Yt7z$CTz!=j6z&|2F{~Qiv zUl2g|2?7!VgQgh)V-XOM9xU<^4ZJyx3H-ym{llg+`gg}{Gm-$@gx_M?3=i->Pq|P~ zLVw@~5`TlxW~BfZ8UKrqAptYYVuG#W|9f-8<0no+2tIE=_!Hn~afTz;GRa9`uJU`&10^Boi2oR|TQ!JA}d0jDW3ih)4||owwr$(IC$^nTY}=UFwr$(k&w1DRviDm38@j8ns_LHt zOQ`{?rTGD0zG}7t1`Yyp1`Ps2mzZaaktp{A4WKu+F?4p0R?}8TRY&`ZNjEXT12+~3 zj0j{$p$~6bQmbv0>iYGA?uU)YI>IPXl$_bz=z#P!ruQdg_fwI)ZiO#&WA)nN@>k?n zB%kGT`ltX(Kn3kmI`jL*`tzml)4{d*KYnlr7=FsIy?}rpGGiXnL!#hat%W;G)s$&{ zsz99#4HQv<0YrmQ+mipe(48CPk%@_E6y-@@XB0TNc^&2cklescOq33!9gMrQQ5#vx zI=+W`ueXPO$dP;?W&b!I`{osy<~#L z(A4=+{uS0<7k$!(YC&Jz#EKlFuFFHfC@}ww-=%XT_ZDE=fu5>o=F&gb-oEc-{+CDx zSv$lyyl4XdGdr8jwIXe*J;o4y*f-p;gaMnJ@cC{wi&%7JT`XPjR#>l2I%)jM%s52u z`=R_w;mLE|=@radcQk(aPy&0r+8NaE0xk(exSC5sF?yKZ}1h)9ZZRu!xv#fgQ4E z_)#~yCN`;+Cd{Maur-nTTQ8Ytc1-W`>h#t8bfU@Z6esXY6dEV?_u9QXrF&60o<=Q? zmb8v#*HCR1=7in}C}LY$$*>9B0AEWXn|*zS*0xTv+hRrp?mXK!wf)VefZOcfg0pAM;PanH;dE9DpG$QXMLg}e4N&ZKt{h<%SSkSY`TzlIO6#YZ;rk(H;MhujYyG!8qm(zNu zeEHGmh}8cu%OCBh(`QI4&~MwPm5UnxfzIFSb!WsLg^Y+aOsVvfROlb>TqA7!Ao$+_ zX|zL@s*)Qfe+)kPee^jl<&r*r@8l^x5=s6QXBhHvthiY^pkVnOar7kN^cnW|k?G`b zx%iVzW%Ez-F>0adQ;L&Gc=6{dLje9ZJ-!4rk69_!G8BlAv^V$5>=< zSD!%gqU89Sr#DZhk$=YuKXf_w^E6p)W?s4sI)Me0SE^Qi?hCFL!^NVoAP*Pyr-p^B zJreWfY%h-jY6r4cNLmy-7WWOq=`8CL*Zv2P7!7p`KYVyqh6@S;BJ&djgynzRvKtCI zk$M>mNLJRBM-@clZJ@K!ZPrk?6+I9Z*vNN_)Sq2Qi^D-lw31Lj>7SpGTVoxUW6sig zip+ z6g-HQGVzoWXu9DR_s8CNa0ox-*4z;9>=+Ij;Qu!mM?0Qj(5eA#eB0jDL9&3`jjA|M zF+v^N+zK< z)=ar{C-`C@{-CL-0hBDHtbGPoUX@_5lxy0B65E^$1tY9tTNSAnfy<`%$lL)`8PrrExV`G%B z847+ysh#*G$nZz*M->ZLR25#&n-nfA_FL?80HGta86PhQk4_P5IIWZK9Zf`r&J`re zb>{)mP^aTGpU4?5JzmeN6Y()J{0haYyvvsi$~)Lx8;K=oG2>#YpH#)-^I*t3`xwEG zx9*86u43;-T;313>IW(91uufs-JJ}7QzZaIK^p8Q3B?lu`us7yW>bKB#Ql%HFx z&^^4=UYC**mVz%L3o2lloGlbs7ogf{d>o5jBma3O;P0fIdq}A;rErB|q4mt)5b9P` zC2_9LVt(C+lwM*V6tn5OC6KUa``Vm$9sJe_s9y&-%`Z`VV`+ zezyhQhcE1xA4S;q;5GOyoS!}`kn8cKzzU!ZAbiyMGhn?W{z}=G4}{vC4)7q*SDDvW zn#{?3iTt${`%h(3AN!^L?aLKude=VSMcYS|6;Kzo1nl<+175^G68!jCC>U?k@2lO$*yuAV%1%i zVNaE1mm$>fCMr|*yJ!wcAL;#8Q~BdV>JP0^X|^Q0q$-jw3QG}Jn6**5lCeY;@nX7? z{TLINJQfPfn3JaAm{ij_wXhm){ZJB6OJxnOX+HM$E5sy_3RkvG^b$9ZynZxETefX7 zX|mXc@z71VIb$xDZN*HYfJhd!f+pT!W2!YvijzvPbXry~n=|f-JSzwjx2da;rWE&r zb8Fta{CHy~@5@5n9&xpOdL8q!xiu@zBGSu_ma$G=VLn}^kcWF0e)YD|SgHZYZLazE zEb*OZ@t||8Xh$4ZEp=!u=sLW!+aLNiE!rVRSpE}70%jl)6&2yI>RhfJ)fTmy7sGvx zzU}FualhI1Trz@@lo>WJX(lg5v!sIJ9hlFQe&tT+ebkUO|HEW?j&HVm6NB#t(1OE6QUs@ynOE z%b^7h@dwXD#y6l}iCTH^AR)t-{is`$c`240b-ymW@tjr${_<%IVo(M3@nRO1;^Oo# z>yd_BPW?Op3vZv9T0uu{0G;gUN)XXPpQjr)GPqMc$J) zUNF^|aj^H+IZ+*S+zQPtcQ|L~(_6i%qn0VhdF2mHky-}#A>rktV=6P4j&PPJA^*rN z^^CJ7XYaWwXVjNzLVM4-lrBR?WZ^+-3G-1nv-qA##ZfC%=Fio_;flIHTG*3D zE1f`;_;)>4MX#WTGiBydts`G_%z5N2ZC5$(v}4Ss?r~Q0v|#}GE|TLm2~pkIs|#1e zRXd*IRy7PqbQG%T){-#BT$1srvwUgJG~8aizJs=43^Wwd|P$dm^Mz^*70 zd9Y-QHxX8yZKv3amK*xc{yzDAbJ{lbD-waj^Fm?F zI%YK;S=xT13Ce7xcR~f(P_itinZD2)Ls$mG777HLp+erdJ+eswmPDiT`M7sST zjcmARJq|VHL86AtS8AQ&kklAO*6eCH>CKkV7j)k%9ZBkiN}+{e zg;L76$|s^06KM&YXCzs_(^>+vlNyNhRq79E0tLg`2-N8W=d^|c!NnD+Y2-y*)k!Se zt8P+2s*09IiOcBEA3&%ojNtCthhKjFf@PZa_|9J&Ad& zfS4&34w(Ual*BnGl32VEjKr8HY-2@2>$XwsZ4ZG_m`-|7Lowb((4a9{vvh!LbETg% zPOGaHf@`j>wR%QCjrTB15|%$URs%&@Ejtx9WdI0%Rj65NRcxi{S&2pc(As6hSnCw49Js8}S(k7OI`LY}uyKm#W|12}ci2 z9O2dWc&F0oN}7UY&1>P^%+7p?lyvIri$j-r1fi$agg}sa1&8e7*WgE>RYz4~G5vnu zRt$9NlK(CnDN18+6WK8?lOR47RXROAC3VG$jAIl22*bnW%DaC=iKo?Os%lG6Y#IbB zO*Z_o_sbBZ$iR!ucAs`4`UaNWF*k)FfpCo zB?I7O+DD~VrI*|HB4VdVdET8AOVv|&+okU9L)?X>D$J;mVlA`S3#MzyCYRLxJ-snH z@dK!axlf|jPdQKl-C0MCzLMusMI+nPfy(o<`_RpgV20nWhO|e;4^8(hu%pse0D#7E zeC;uggQ3sT4}WN{V^y7UL>>WF=hmA|hS`c#b>>bWb??S?U0P*&#d&zW(A3yS+FcPT zL)U#}dM%Pw)S|GqHK<)&QB(RA!i;aFp`U=#wr;(qx-}6i&48#`?$tb~q7pcxXD3R6`V6F{XQ$H2rVi83>+L>HjHe$Dp^tY1yH8xIR#->}1H5+ooEroLPLm zS0#LTM}f3WrNCU_6{O^(AdLVGN4%V5^>*uX1N8^=847uCz=(M9Rf= zN?FOc!k;1IxvEDf_DyKc6@Ux+P=+s0 z2c>%DRastkD7!iDEMC>#;uYL4w_2ts+UBy}r+wFLGnCpR=fS9b#U%S(E^*kre)mn8 zjG1ec06=Z1n@y&RT1U8RJ~V3FXC0jkYwQ`_feQa?i6Wd%ake^zq7AoMUvM*PhN|iqvZC^ANS_ z@Yb7bXgcUA-Y+xMft17-Fb_yklP;|?%q3QHg+#&2vZ3N5&4tPJw9RLPtB%M|?#J%< zi-Z7K*VX{Sh5EA_;k8KqiSF1W%J=Ir*ouvyKVPdgA&3QTz`W~%d2J={@6eeWyc9&` zn+VOy3us6tjm0Z#8<=;qx(s^#dAlIrJcpGL1KX9<-gdWdpdP|!%!Yl@qW{WZG5f5X zm(>thnK0PDxhju1W^~1GF+uW#q2Uja&C_OXwMEDb71lO$d>^l{Qd85ddtRt4U)nxX zU8JdXEkEO(&MUh`Erqik&%I3|=khL>gx(O4@Xb(zsHrS}CCvb}fX+;&sbI43+db-d z%t(RL>i@z8e)oUDt!dfi#wT4e>@+{M-`$5~ATD=(BdcTC8M1#3 z&vS$$<`WW<9S<}9QFn}}m*0ow2xQo$?T&)HLH}C-V3gdt&TaK*BJ=$6`% z(i5wcsnr?azAuiokmZ39%j^g*)!o-dkw%YLzXU`9s!4Bb9~|C-V?ICm{c}WET|1+m zYt@CV_4?&!)pDewe5C49rKz6ksZ@y;Jy5QNi%J`(s&690ODq!gDV{4z+ef3V;VRi{ z`+JxHh-}syKd@=eQ@WlCoft*wBjXma?O8Xu5DdJLIs{ zezP)PgxD(^g}kQEbkumtpRMr~bNdhZ)HSlsD~uayy>f=mkl${%*K%K%N88z&8?H?X zEkC+;gpd(z`ljcK?uq#%rVw}gIg$UR1ulOA(XtII>+^RwJ`5pinUpkvzViKZl0NK- zt(-2?cu$Dads{QU*mxGCXzn+ef)o|b1hMriX@vyyE{no0CNLG@&dB*&yaQdHf4B5| z;y=OhR%0=-47i}(caK@vx^<1+260QxqSVl$R%FP#uNxGo9AV%cjvU+f4Io10SV9p1 za|cqF#=H5Gu^kP0=aW_(_jeA0YPhVhgq166V z9#n&Q5ZJ6?0~MDJp@o@oqezXeu}wEjgX#^>;|It>O)^o6OIo|QhOf4!?^tuee~P0S z9BL$IF1`*cOx}83=;xnli}k*sx70^?qCRS`U|#;`)o6V~27xK{rUU)Kpl&f$1D$Vu zS=6&{Q90rl+lF$YQ5g6hBAZ?I{}3}VItU2$|G>%R3MP=H0jYzgj`JN$JHZt7C(<^W zn2{P5gJ-T{oM7v{O>s%k=N-E=TDVVQ4|H$N+bo1fNn^2(^ zRvk^oU@Q_b0$#nVm3+VbXjOt@2+>)v<>7b8oZpX6PGNM+fOkKuKeRmas@$>pPj%+q?uPrG-RU+aXN%V)6!HYkHI4a}f&QFH8d2{Vd zAXx2UMc;|M(imDAl+KuFx0}Tv)r^^H1^@|Se7Wf;WB4((v$gzqvu#>@W;i;HeO@{W zq$9*BqHoU^|4#JVh(N=Yah8IMcp#nujByK4JM*T4#@Lk7yDFnPp z$jRU{OkL4f^^9i0*!-CB&3|_*eNAejj(g`sV|<}$@GR5vV7c)t{ixRsMJ&xF2LLQ= z{Q-{XgT_1J{4g3*!i7S}_ zHAhlTDfQ#J<-<^CMXfv=>|}pXHv1q=DwlB+5t$a8H*c;sa>c1~JfrKjv?5uP3uM(L zYsh99|gQGYX)V2^A8TwMgio-|W; z#4 z@$iWOi+@=rG8*NrRtBu)GQ=9m2kwu8FqW;YmItlbj}Hu=!B}u~oNz?km@;MU6Aj+MZG4a4V0{_r!#cq z=0F&?P@feBd=KVGXfEQ?gs;*Z#L=_BSJ~mh<5R%Cou0UTb+4zmnBnh@Yn8}5(?qxD z${xE<$G12~-O1CCW)RJms@zjyJIj6QKFi)}Ydidf6z9lupowG~{E_g(z_yA!nTklC(Y%Xk(CK$o|M9=P0U^eOcM9IFE(7EU?Z^?9-K} zxY=!VZjPcAgrJo$d5tG8>nc9lGZ$+Gw_%5Qjo5bK7`cIx+T}*K8g3GeK>!PW8EbW~ zk;X@?^P}vNfc@=n6{~YtWey<)!?6m_rlqt7u<<3KOpV+6YOBm?39mMRc!515)GVPrq4M}*l`(63PL#!m)B1oW$VYkk{4Vv~SL6q?82B|uC4uK#;mb<3!4u3H=w}bp zQdsK-a}L$W7rutwfY>wa$lIkOEeu8}&YNNgfT|BLsj5)50#(Y)G*Uhyv{AmpuE@7Eu8YyR<{BtKujsq4ic#(P zCS$acWT}}(ZHpam7j+(R#U<;QHtP$7F=K}vv1~JG?~=0J+BeknwvdGn7uK>8R@1=R zX+p%<|6|!eZ;9rJ>C{VdmLGL{VioGvoM3uy)owox3*hU>!q(Li$aH4 zw*pN`Q6ZY6EIA9!lCv%-K^>Spf`C9H{inJ9r?&*w zAQS(tLIGLouK=DYzTegbVB#RU#&4!)F^y;4EE z9aS2dzB5RyVN8?ZRUuN*Jq9MoJB!xd*K@5gx_9p(XqRA)!US(^j)}IQ-FnQ^laW@Q zD)(`nZBpAS&%nX!5`{vuBR&*i9;IL*F34~7usAP#|JP@Y!%m|R>9!eSsm;DfYEv z|8Qe5F(C~$n5)>dJn>P=zD^`1A5+dc-ocCBhZ+iEA_I_rZ$Xh_ydks)HYymnJH%Lm9O zsQPl^`BJ{6DZF|=;w=fh{4PuX`lXDeht|~d&M=N&K#rA%7#n}0HUDq}05fIbfiMj# z(th85Zut_t!569NRrNDth`VqwA;1~u$U(0kwl#Mr6~`|aleIG_mGuMX-|P*HU&XHb zTwg_N=Eey#ZGYm~0d~!Tqx|g5^(`bguyBL(Rk-W=q1ms0qYlIV>sR{xIa-xX=%oj~ z=(`^Cw&0PA2LksjT`mGP;MH5_ZSe^2na_U94iBV$*(bU;dX>@UUB1P^R%$XGB}*jH z{HWLwieU;p#(d)qbnS7Zp}7BC_lefKx!moK7qM2 zu$@O*KrZ-R(08p=KKgZ!+IC&$wpt{Ry4j*^f|t5H8 z&p=^?{V{bo(B_`MqaixYQRF0{{l_(L`)}f zk-hFl@T3xeEzlhGHYT_f3vYJBqOrj3PPU{-y{~Z<#2S0FEc-pcU=`(V!x=R-CgzWy z71}8&wB`94_fEqOH189?vI7NH&0L+;S5lZEVtY!XdQ4Ao{qoUVMv`MH2KHauwdYBg z{IcbmvYSsLmwseLR0T3;!Gimw4a_$0y5K#NC<4oeAiv&RQ`5Eu#TL4oS?xb~zNs~u zC1~AsKvT3(bfo6g@NAM1+&;FqRlBJOEdDe<=*V{4bX-USNuu48JgZ9xcruXZ6l zlVQ!xV~`jI|Ef0b(;vON8~vt-m#$xN?imEb{_(CzUutvWh@+xCv6C-P3z6Dqh$`1x zW8|6e@I*Q=5u}TfV#iJqXYfECa!Rq~rP?OF^*}t-*&gH284&V;ypWuR*QEKBwTko0 z+LI7}hPBWG0=$2DB8yQ{bOkPMI9VW>tAbLRX;zYIKk)d=TXCoj2jP|~8S-o)E_INc z7*|@I5Y)4vS=I^sQTU=AEHICEIVn*hZg6fj# z2*XU`z^qgKfJ>v@A`L1%+ zC5awM=Fl@q_=5$`8r*Jg{0zx-;!>@711~d#z=n?cmIcfPx!itswnWw`sVoFk(QWf% zFN;d{R%4H0v{tH!Na&`jzeiyJ$-pG8=ed84hY12z#^!H~*uVZrT}Bd7H`kgg=AqH5 zUpdpjPtEo$TG_-*@sV*_PEJWRJ_$KK5w&bGWj!+WtzY6_f|Kqu6iWs<8lj)W;p-v{ zc9_B(6662_7anD!~FRp%I0)YkEY6olZ8@Nd(^p51Y%RSY3 z`i_6R>wW_h5)pY8?`uSM-LsX2q!62GlG0Ml94Hu#H;eL#aaATdrskOv`#3YUb8^m( zicTHcKZ52_%#gIpo>1O!0h3Q2s<@G~!x^79`5J|hcX#a0B-p`*nRc1~N$)UEK%bON zY#D)0?>MhAs88?NqU;?Jq2z^y5cTdRIr()o%M$V!P;eT47zk-P&1biptPo%%Osrb#*9sA7R)j zJI4kqbbV4>DjnyU?2^o?GWGUdVQSPp0z0!Wi?!^W=B4<=ccbmfG0$jTt?9Q&36G_i z#djy|tPbd4tnKW~a#;M>s}cz|Wo7@K1A7>r%~H(6leTycx1RJ{)HaX}oCAi)^m}`5 zp4kjMqUbSgWvXavV?)2+()Q7z>h}?gUFGHA)P&)`~_A_6+FS z&fP)HwZR#;h7NhVZ0d9uM7oz~ZTM ztwq4rDeRE3zwKLufI`i~>w`umpa*MBZhx3gxq#>TV}vvHXWtKFs`)l>ed6U*X(yXz z*k$I`3Sz%3OB3B+mFxq;lU^=WA%b-R10~?g*0X6a8uJXWa8c%~m%vkh(77zbUzugN%h1Ua*28eq z)H}QW$}lR|H(T8J_$$!iBb?e3zC}N71atjI^Y=+4WZo7_NC`Szp;FqYw~ehA1uEo? zI;?ba+ChVmL-^>@L)ulOH~=Q5?#WvV^-B#>>oJXpMtk6-t&G>I|I!i6#g#5dF$CxD zgSC5EHieib61EWM8GknHTY2Aq3aLj zANvq*Lh9aggq?v$^w_QIbAvGYA&2X(WZ@;@5bf2-?xA7do=~@N3?9ECaq$_R?e=TBJz*~#)lp`+Q?w|{s zgcKRKE6zi6VCNSvdI2nGVS_*W9P)b?e#xcuSo@T33k6^47g+nz;0(b5q;`eBEbO|7 zQQ$2@4CQJek-G#+y0GIpWKAmyki#p+_x*E4!`IV?;Ie*^ynzJONVRS5B_&UyHyPSs zN4E$!ohomrL1|z^`%gKX7f_?XSQ@^hMxe)A^i`mJAw1xQ*#b~O@kzg0t8#DfMzF$J zE$TVeYam^rvuEMP`b5Yu*b~7uhEm6uAy)IbcDT)q#cCi+(Y+!^krC|?1wP8Kb;&pJ z5O{4wI+QRNo1%*j!z5Xmhy`JeBnCllV@cyxEk99?gH!|(eD!eZG8}jcOF)|@O~$X5 z$+Rig6a5+NPk<}(P#FEZ8+Y_>6rwFm%WElEF&R^E>_8Q>C)yK1XEs!w=3I-}s`Rxi zKIbCh~3-*F;hlaVR=YN1@Y2`Glnn z<9RNzU#BIk@)pV2P*u)vnA53)=J>;VsPOrkSC~qlJnDgwaUU39Ur%v54xH$@C zRFT~!b1kP#$!;N52%?K;eL&E#Xo6Cn;7IAR!k+GJWD(dZ_mI@!p@1L_|&a1gMS=8Hu?iHPp z*NU%tUu7)MWu2Kds;}k`5Ke;MW30Ee$WW(cX_JkIF3Je@Uc5V5>4cf5kKzw$?0Afw zl>G2?NKaO~^fHmed19m)$)46ItBckmopewKdO#OyILFFiR#wKcYKT%k@U1#|oTq)5 zbN`uN0;#gq|NPsQiyAe&%Xo!&58js*L1k+kvD}4bv-nQ9Q~uD-B6xkmih73`td@Ol zZ*o955@P;Eehl$AG!tYp%2`M&wMBNl*gMme_ky)ip`*~&UcASGW*jjS+>_;ib&Ulq z8o0_zuiMBzwT%_4ojJJ^n%AvQ1+Sg^*)xW+kF-uBTEUJK=#)=P0=J(^rbh>}gdzwB z!q_5B``j!-LR53antz*iGESW^Ci2_fOYl^5Q)PED_AoSYc7{eZ2TpU7D*7GeQ9Ia@ zGVWF_Lv$tXN3!=o^ize;A4KYnio1TJ7eM?4sooW6tc((CqK8hW=9jWB{lMa{zC*ox zBDE2#flb()^mpjH{mCa!#7$T=feq4Oa(Q{v6iiGhY6E*bt^SI6gQVc8b!h&gnGF2L zfKuB&`WShI#hQjx{9*vIAOz|A50E^i!}KwRo2HTLd?Eku$WcqMaoS}41WV;^pmR>? z#WWe1tSS8{|Jl)*7f+NIkY6srbHbj5)kOK1L^H~3{k=lbUYb;EH@Wl{HyEh6v;F`< zxjoCR9{ee%$9WNP-rMX@DG&+Wgg|E#Hb2NHZjj;-<=S-PPKH7QTM(iA>gp%FyIuC- z{S`O{9Pk@f_EW#8_$6*Dy-t4sY%o(%WHD0L_uSO~XrNwTzgaCah+Nagt|bfKGk1*V z49=@?6mp~G5nE4%jar`vV*vHjoCk(v{+$YyuQ+@08y>Gp@$k$GPl&#l1imdq{j}l zN${qoyT6`)+0hJ;#n=7cuv8T|ULuS>awRQ8zv{rTV_&z7H3KZ~!*xb|ir%CD3fg3r zq$hcNia8qVos}C8tJD93u)1sw9@oL-Y8rSgXWEw>6@g7)-U&BORn!AN`UwR_uUlz@ z_#;$MKslfm5oK!1VT*wW7&?r^U%7|vW}|1Q1b4r6`)4L08H@nyBnR}dUw{WYeKL6& zz_Hf+3dN33{$yut18>5v+aEwKU9@0kr1K7+IsoCW%e6ZBSU8j&oh=$;*)$bN@S*hA zkS*Qp(VSm3I)c5&V+mRr%FCD>@v|crJBVS%SfP)B(T0oXHKi&6{P^~KY><)<+?<43 z5ROvz)!2rKdt37&Y2aj9bxWCcve*u)A8>;gcZ$Dtc*up>7iQ`81=}L#xWS4A>A?2K zqv}_kVo5Yu7?fZ_2U-pNHC*doz+f{7o4H?C)J;~5&`iqb`r?0&_2rT+vlJi{viyvUGgodjkfY#4RY1kiN_Q=ELd~M@?#&4l0>OynpDE~^CuYFVg zBAJD35J)1G%j=aErK2!zxpeJ9tIPW#!gZ=$8@0_#V$dGlUbpHHdomnyp55wQkr7v^ z{nE^$OiDMy!~7hSbgUepbkwpNU1BZv)0f26uz?6~mw?O%NY8S&o*-h3J4KmyC1mRG(XTxV{7+&n6UrDQcG_T5zMI#0T=Y{O}D-qaRSm&=uiy z5*qf7!CRgLC=k|;P)qE1h7GO`AMhL1cg~FzYWF$2N<-@-y+${am~B{i*M-mcaP(9< zW0Ud|d=F@;H^oVw(ztyvFMm4aXN4r|;Yd>ihMuwn-`%nWRu4$TizZg*Un8g6_n~Im z_o=45lKZUAy!*cW@CwTOJRk?3E*jiqsVA5$4apA$EPm>Vsju)p*^QMsj2O!Vqki`D zPU+#Ss~k9b;gJm%@g}Xy?h_PrLPFeXLSaV=wEgT%nG>M~J8qESQ`hP!deMDFV+VDVg;K&o2QH78?k3rKvAt&k~1vHUvnw> zvxKS?#Q(^Z+*`og4o3az7INVeErs>PR9sLog#DSc*di>s>H;xY!hJ$NCm@fq4^=tLWea z=w~SrT1OvKKKT*+R4e2iUhE@SaGO7)!Y9OxR{jwcf>=8m_@Dr4{122-&|DZ zk7IqvJ^EZ~4~u{HEQLw)21enNExrmy0ESw1q1~Ck(^G*uD>?-)T7Vxs_B-ae00M0d-AnYQ*+Ld;AfoQUm+JgrbaO1a9WVN!t3#0i~^t zlh*~YX0S2CB&x_%%XJC3w^A(?Q=Jbq+lFAj!9raaCBZ-v_RV&iM>goTCd9uoAS6e} z(kl_wmzo!}3{Rsj3}IKcutri+UpO{nR(fk7v3{auSSGe(JIemU9!Vzk-qDMg=(xfo z0!;mBPKaZK3WX8lvaroVg(ZnV%bX*G`wXt0A{QgDpAh#slEeGOE0_|FD z|Bq*nhQe(xWtjl(A3L~)U74jIfX-y!Q{;^wjzD&!!4I7ix%vA#U#X0-AUfSN28;N2O+{&MCUKN^qsayBNY*z}-iw@fkWrDxP_3xw_K*Z1wqx~Ph6^A$?g@oXe#b&N$YS2=2 zgW|aKI7Sk3Kv6obLIGkt4|-ZQ-g3Cu6tDHUQL+(P3iR|7+H@Ysn+u|jgC^Wj!}YFy z@~x1vhIh>jvm=<<4?~*|o`5mf+QCSN`qa44>=MqI>{<@Q^+V$&!c%!9qn~}{2iUkv z6S?fCbjp8%skmti`7_;+euN}mI^*Qctn<7wBaJ5Hu%W!ZngTZTcCNAvO;Tod4F>pe zl@8e^!616gOutYY@hBS;??hTrUZI3L?IL;@^iGT1I2K=J!G^pj*Mu39s0lh;unEi& z2M2qbFY|X(Ds1m5W3SFS#H20AD#W;U{+~sNamjolVsB6nd}6fUKNt8y z_V@%J?-7+(t#eaPUD!T@zhI(mg$!>9KH)J4gFB!2KJmGQ&8bZF!6MWkIv`xYAJq59 zGmb-){Y1XOEeFtWsB-2hgZb1-AEAlcrNHtbf4E~g9AtG6(Y2$iz_72r^ zAym4ylyh6D^R;d9jd=T|tm6GGHW+yzol_zJolhluV0^_}On!F?K*Stb)8`BSzm~L+@y)N)-;l;`MMh6b+faW<%OPWRfPE+xWIWz{^ z+jkHn+Haae5o-5<7v$e|oDQ7XOyfki9L$!B83yq~dkm!v{YJ-*bVELJwAB(nX-hQ! znCjVrlbTCWmyn^KnAFjs;=f;^78;w23r$w!so+CL(wAa~Lak>Cg&f3l2tf3 z3Qnu-?irO}pU$&P!E`WXFw@+#>Dx_Z&P_m9I7d^dQjcYwm!+hHR&{{R6o0813m;s=zprEvw(zNX9?Do)k*%ez*k^Z5oI z>qXy|l%OIMpqgj)gty5@<79N)`%Ma7YS7?>2;aco3Z$lGgc#MJeAAeZpR%qq`#;`3 z_bLAP+DsILVUl@hFmFj4>%DsH7YN;~Tg3tDzI{Rk6jP#=^)C`+cb|nWr7XSU9agok zDM0PkhzrG)#jKo(PoC&M2GKf7bayjROY6?n#ye0LcAaPoT_SR%l z^XoK{pY}@p>t>R!d|R_C;7)e6UzHIS2-K`9v>b3il}J3n(F;Jwg8nRpNE_AxA#~q1-s;WIGW0@|KVv*Y8<$Wxl3^J#3P-Fo=NRz{QC_Ue zo;B1^zcuN@xwmbPn1zQ?2P}Cq7u;Na+oeU3^Y|iNY(eVtfwrm7Wo(Q5 zzXdXUsg*s9|Lk4u|4L-!|AWXpI_Q9%Qd>dhH!|uO3 zy@;YSP;qeSYRum!nvK>?F4hCa7_{J8YxQv6#5Ji>Vv@b#kBH6GCT(%=R-PCxY`#S+Fn}`+?Fhps2yLi)$sa<7ohueI?G*f7FKk zr~U}TX)~2Iz`RqLX|l<$TkA}PNbNel6e-#-r@NH($mrE1D4QuDzW<&FUd3z9@xEV& zVsCQJXkXm2JfX9?BDwA#JSEWp!zGOdl&QeGgS6y6n{DlZRo;0%7beJRje1ym_1EB6>y4^?$Fh7MX zTcV@;WR0!n87mWTpZ*+*NgKK(u^6AI2VnO5ZKIAmC`JCCF0KMBsxD~bQo<5TFU!&) zEiEnGAt*`+(hbrLE7Bo#>5>-dloX@|q?BA(8U>LQ5vBf>-|zc={=Ivjotg8_oco-+ z=RSANnHl#jd4wFpigCmD#)8GEk^`n;nLc821zYcIRd=$F2%l$PshAkVK6m|+n==u# z1o}FwE0oql!*wJ}S9(ONS0i9-`*q<12chBd77yiNpW5gBc^pniOeSigg%=M)xci5# zr5$ErLEPeZyR@m3lfz#Q+LPa%*#{>EMLiiY%f{X5Bb2g`Fd|Og=b)a@Azy^ zLWliJJ%9Of@3cWF|0mAWob*SW%;u+K9%MvhdY8v&?z`R&w3r}c<^*Gl8VyCDC)obfKdpH-Emf~6k>&s_e2-_@8 zw?A3^+1YbC+;h+sg6;QBW{t+%p-OPEW}KKa=91<1y@wCG_9a@6gQ8T)-0|C_v!%xY z8mQsnE@VD^VB(1nydUPZeV)@v(!F>`W}XIyed`jT&2@-WKn5O8zu)+R+9&(#2BFRTTIWsHuK?I1vcE1+}ZKy`$Q-R*iO!DOMth%R#JszW+om=AF{j@ z7O|<08pK)HLa4uPZ=F|+ANcgbwfM`ao~fkq^!H-S`Hk=B=-t=XVU0lOa(Q{2jffLa>!$0vxIHp9fMoHEXa!BpXvOW1|pjM?%IU8^XY^g zW|sQ}TZ9UZM_}ysDYM(P1J?FccZ9$ zY)8?c81J%4D@+t^T*^Y z1;U>UYix7jY;sta zU24u8a+I7&H9U$(K?htLK7Ju$YkT<~@hXbvOj_nrezVUiAoip(b`1X6_gH8Ho4a)} zc5*h}bkOP&x&cYnOA*yPEIO^I{$7-9Vk6+!`aC$o?}-v$OOE4i!U1bd=t1h&Ypw?_HCu*UY$ZvyInOhpweM!?3>T`2* z*bZzxGd~P{GY)2Ah@?!8A;*_h-CwG!@XY^~w8PZ#d~5}5S|H2He<66F6M$op zU2l}9Zwh8S7!z~1{v6;wmofMK``FA=jF0JQW0i-xme@iEDEGsmF=kHZbO8z089AgGb`;ThWNn!d$(Y{}14p@P#hR)MVLTVJys zDfQeV8zO{_>y@Bv;;5<1shT-1D?fST7=jLd3q>ni^4PhNA68QVytk<$$wpz(kM)z$ z+nwqfFJ01B%s;0TXRc)$G*F79sV5M0aTq@useS&KyR2wx@2kZ+J3Lx24{l4Bh{zmL zfqo?n>`Kz)YBIA6ALZ{KUmuU-K*wVKs1t1C>`WxXHW<4_$$kIRclnfTUhgrknnB!Z z$IptZoco)@)NiE4^e7FhdL_2zCB&Iz>Iy1G-qRevTK4I#@#586rgIpoA|IPC($_Ut z6;vo|8DQXnW|b7gITQpKa(ehFR3V<A+9-cG@0IL@6$_>*NeZ7f{9|2D9kdJ*9XtvC*(qQcOWQsfQ@&A>uF1 z`CisHt|QIwHe6n2zJubias4o{AWn{KE3_UFYq0n={`!sYtMW|$se*Iyo@KF?Zf)J$ zFWz0Iw4T`An^5XJQ}Tn?+*2VCDrn!2{Dt$|>7!lJs0lJ;V)m9#LG1}qJN@Q2S;0y| zxqh~LJ!~YV_iY(Xz=JCEX)f64^z=-PUW;a}Y53&N{T^k1w%;VVWBYxbdHo@Kr8zqn z!TY=?y0I)5?DMjyW8Nax{HB<9y4+e7rayCQg66&Sn@K63IpSzKQjTy(+{|i1MTv(W zqXw5Lk%NS?D7GPa*;^!CwB1__RrKHPFu@xcgXav~M3r@edv*wFLI@_+@!3U8tfTj` zRyUbktncec;69ILbpFyj-@n;qg;XAN#FXkcjB*b-&XUIS##VT*eMfgQ!Y8blPvH<_ zhnR8kDM##Y$@CJbZQue_KOB7nldx!DVEG2Rf<_h?149z14Wb21S8##z7jy{Sc_s3T zY03)bnBL~}&^JXy!Z!lC7LrV}Sg zx)lG^w7JwFFCoPxW@;Xy!6tZKh>|+p%6@t`M@k%Vak>r0aQ9)bxEXV6Gcl2*i%D54 zJd~B%;4#rEewAAQ3*|7J3v`UAC7_-Wt-^H)Su2S(I#KAym=--0=+^(j?y_LE+0-cr ztECRF4M3F@aizBEO?@()QmLMH5T05XqA3YdZiKa_FdrqE!Hy}yX@JH38Im~Pa>BGM zq-ny#Z6om>4m16y(?hMEk9Zypl8(*@H@4;*hU+)QCglx73?}F&dCn27X2Rdh>lY3O z^A-d&QHGUeFT%BI6t$CTtKv3`WS!`dirJ&}d<2st1(k+gD~V2%nsH-L98?QUjEK`= zqgV!_G^o0yyv#tA%4wL7t3_)#`OXibrQWV;LkdRYh`YbNJaM&|TFAUZQo}HZJ*tC$ z!inFg>e=>*a%Me_g~THC9p;;+lt%|P*aaLrQ`!%uyDI?yj$4AO{9JVI1hpoM76~yw zN{V$xBSYc4?=-+W6xm&o&&{$wHxDO>rg}CnDNf~p~cikVp4HO zi`|o^9Nr9cIDUpGZ=_k}tLVw?;v_xIPc$!PR|$-(e$nlIPo^oiqnQ$-z|?^fK}*Z@ zJhD~-BsA~bH+egca7NlBkP!6yo7D`;`r#0lp32|RTa??fyFL5X9_E*Wm*TEAlBrf_ z*}C73Xwda9miV|~OtQCkhrNgH5^s;b`;yi9P}GE^c$ZU7lNubR;QK0rURr0TYoE8$ z`6E)hkW~8&^h7doA^7r^;psk|lyE`lsIHQ?!>0mcX1N&dp#fGIAwNl{#P2{a|xs z`g1H1um}`(&{ZShj3XlGYAu4-F>mO!eX3)R5loqEZ-?zbs+*@5-&h%eDExACq`kRP zy0rJYtTZ2wL9cwDoTp70)p*AN)r&^$k0gq(iZtq>p1P)bSK zZb6?^?Od?gouHx6yWrI?vA!K};$^D#c7_#2=?hl+%QARp|94Uo^XW9!cBU1*8*^}1 zk58N4+$a?lpBz338#CK^2Ph(Q3V7gTRF92hE=jS~*0+~@-8his=N~U7SphqUbhd4K zFg#t+I(Oy`PWFRgIkym%56Dk$)N%_D$CNWk$0X{jIVyV!;XQ>k*~r~x#zNxHi^t?@ z(&_;m9af6#&&12#yn;*3(M>o-j1K+&5t=W~5rZ`|BC+^w2PjLl{fXE^^{r+zqN=u= zFGi%m>3;Rjn_6k_(q4oOQc;I>=idId*(X+SC&Msq(LZQ3oX(O7TdX!{n>ttRexURr zJrjP9C+DZMz`I4#(nYg$i*TE%Y+GkeN1339hfeQ>S}PUo^#$R<{xt4AQw_5Z@XDxt zQ(9KBQXyvFOkawxE;%DO2ILyEOGS1QI6$;7Vy0V!^2O#KNcaP*{Ux}lVUjN@x)!%n znmII5OvU9h8$aEa^6e$G@yh~C#U_sH<+`&-7nAniyu0imHZVx{dz;mwxJKJv@ue6@ zBW!nE-w@%w#E#5wKFZ?YDsh?;yO^DKXx+!8&T=J|?<7I!C+={gQj6(UkGqv4 ztQMj)1u`di3o*B?V3IVJj=i)3zabR19d9(ZLgxhNKAjQFF4H%$Z9P5^Z}@oc=^b|0 z`}Gt(9^}eWr5t7XMPzSZAk9T4ym#;B^}VlKTBQ|vD%Vc}rgf+HPcObYF@ivWX+Pz_~_B?k%*RRQn~Vj6Up5MSSC%1kX9?8>dq~wV|%97`ZjF) zXRF-?>b~h7C>xO|5l8j)otrS_C&xDD^M0bQ{ZioR6zVNsNwG^^F={z<7O0`PHr?Rb zN%ws&o0=yM?H>yVreB)okVoIR+%cG&O+NiyG1AM4dTiatU25aj>__A--lY0Ws0ev> z%#ad(`UjFl`R&L@^7LJT>P}#425hd-J(K4p^V=sD;RsfDNUynF&u80`k6){)-ZXUL zG-F8Mv%UdkCj1 zdE+W{IvU}vb33lkAp6~0g?bWJZhEO%P%~uScwNrXw-#KxbA!r!Tm5}&W%F3m0gIj4 zZ(ASy4dt5OOzT}ktii+j;`;ClEZs|N?kuIgrL0#ql7Wvi{54$cz7sqoHzUR~^o?Vo zY-=jDB96SD&}&zB5m-THGtMe4Q++c2R<`k#lzRw*{Y`$FBrk z>h(l1BNX={9$B7Xyj+6Mwzw8CTu`F|PjGQpchJl$v4pLjwI{sY$gCMD9A?RheR=N} zJ{9Z;tkNISVIXk)8=GZ~vFRDq4;tURaZy@sMvr`)maLojqL6}dL1}3o^9*-LG)RG* z6tkj~DN?Ti0Xm}}5j6pac3{`&0SZPq{pH_wlF#wrJ2w*k~1JyF1MKnPAEDQWvmiaZSp3GwRK1%+P=+`a}37XAyo1Nx?VMaCiF@c%Ym zFfc@~;nOv)K$4FMflVYk{MusvHDHm}UmzI(U4a0W^Dxkb-j%4yg7!*OWD6nqN2Ms3 z$mpt3YXKJ+wIu@x7dSz9CVxe&@axMS|7iUgb4wfaB8V(-3q=I#u>tO&BtVBYz_OqcF1K&_uAl|3IN-`YKUz7#)x?GW?LBvReI)odx_Qu>s;3LO^^OLUYYgyr#DY94!9hHqrod zOAw%883s}dy)yBASr~rpZSk7wX*e2m7tmgZ0Kf_iWEgj)b32;`*jeEO86;k@GOus| zp_i0bDBD#S$Rzn+apkHw$T{s_R<)Sq3MIG(136^;6_Z~5)4*l__vYAS|7|1yme#~U z4_{uf((4kSvivI&QBC*9($&-j#@8u9>qTfe6M(k|AcLE6; z`k<%X0OPpi)!=`b_`iM0_X0mAB>ptOug~%SMxrQ~vL8L;naQzn{s{Te2Q~W5+NS>x F_djzcFxCJ7 diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties index 44e7c4d1..442d9132 100644 --- a/gradle/wrapper/gradle-wrapper.properties +++ b/gradle/wrapper/gradle-wrapper.properties @@ -1,5 +1,5 @@ distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-5.2.1-bin.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-6.8.3-bin.zip zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists diff --git a/gradlew b/gradlew index af6708ff..4f906e0c 100755 --- a/gradlew +++ b/gradlew @@ -1,5 +1,21 @@ #!/usr/bin/env sh +# +# Copyright 2015 the original author or authors. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# https://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# + ############################################################################## ## ## Gradle start up script for UN*X @@ -28,7 +44,7 @@ APP_NAME="Gradle" APP_BASE_NAME=`basename "$0"` # Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. -DEFAULT_JVM_OPTS='"-Xmx64m"' +DEFAULT_JVM_OPTS='"-Xmx64m" "-Xms64m"' # Use the maximum available, or set MAX_FD != -1 to use that value. MAX_FD="maximum" @@ -66,6 +82,7 @@ esac CLASSPATH=$APP_HOME/gradle/wrapper/gradle-wrapper.jar + # Determine the Java command to use to start the JVM. if [ -n "$JAVA_HOME" ] ; then if [ -x "$JAVA_HOME/jre/sh/java" ] ; then @@ -109,10 +126,11 @@ if $darwin; then GRADLE_OPTS="$GRADLE_OPTS \"-Xdock:name=$APP_NAME\" \"-Xdock:icon=$APP_HOME/media/gradle.icns\"" fi -# For Cygwin, switch paths to Windows format before running java -if $cygwin ; then +# For Cygwin or MSYS, switch paths to Windows format before running java +if [ "$cygwin" = "true" -o "$msys" = "true" ] ; then APP_HOME=`cygpath --path --mixed "$APP_HOME"` CLASSPATH=`cygpath --path --mixed "$CLASSPATH"` + JAVACMD=`cygpath --unix "$JAVACMD"` # We build the pattern for arguments to be converted via cygpath @@ -138,19 +156,19 @@ if $cygwin ; then else eval `echo args$i`="\"$arg\"" fi - i=$((i+1)) + i=`expr $i + 1` done case $i in - (0) set -- ;; - (1) set -- "$args0" ;; - (2) set -- "$args0" "$args1" ;; - (3) set -- "$args0" "$args1" "$args2" ;; - (4) set -- "$args0" "$args1" "$args2" "$args3" ;; - (5) set -- "$args0" "$args1" "$args2" "$args3" "$args4" ;; - (6) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" ;; - (7) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" ;; - (8) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" ;; - (9) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" "$args8" ;; + 0) set -- ;; + 1) set -- "$args0" ;; + 2) set -- "$args0" "$args1" ;; + 3) set -- "$args0" "$args1" "$args2" ;; + 4) set -- "$args0" "$args1" "$args2" "$args3" ;; + 5) set -- "$args0" "$args1" "$args2" "$args3" "$args4" ;; + 6) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" ;; + 7) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" ;; + 8) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" ;; + 9) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" "$args8" ;; esac fi @@ -159,14 +177,9 @@ save () { for i do printf %s\\n "$i" | sed "s/'/'\\\\''/g;1s/^/'/;\$s/\$/' \\\\/" ; done echo " " } -APP_ARGS=$(save "$@") +APP_ARGS=`save "$@"` # Collect all arguments for the java command, following the shell quoting and substitution rules eval set -- $DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS "\"-Dorg.gradle.appname=$APP_BASE_NAME\"" -classpath "\"$CLASSPATH\"" org.gradle.wrapper.GradleWrapperMain "$APP_ARGS" -# by default we should be in the correct project dir, but when run from Finder on Mac, the cwd is wrong -if [ "$(uname)" = "Darwin" ] && [ "$HOME" = "$PWD" ]; then - cd "$(dirname "$0")" -fi - exec "$JAVACMD" "$@" diff --git a/gradlew.bat b/gradlew.bat index 6d57edc7..107acd32 100644 --- a/gradlew.bat +++ b/gradlew.bat @@ -1,3 +1,19 @@ +@rem +@rem Copyright 2015 the original author or authors. +@rem +@rem Licensed under the Apache License, Version 2.0 (the "License"); +@rem you may not use this file except in compliance with the License. +@rem You may obtain a copy of the License at +@rem +@rem https://www.apache.org/licenses/LICENSE-2.0 +@rem +@rem Unless required by applicable law or agreed to in writing, software +@rem distributed under the License is distributed on an "AS IS" BASIS, +@rem WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +@rem See the License for the specific language governing permissions and +@rem limitations under the License. +@rem + @if "%DEBUG%" == "" @echo off @rem ########################################################################## @rem @@ -13,15 +29,18 @@ if "%DIRNAME%" == "" set DIRNAME=. set APP_BASE_NAME=%~n0 set APP_HOME=%DIRNAME% +@rem Resolve any "." and ".." in APP_HOME to make it shorter. +for %%i in ("%APP_HOME%") do set APP_HOME=%%~fi + @rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. -set DEFAULT_JVM_OPTS="-Xmx64m" +set DEFAULT_JVM_OPTS="-Xmx64m" "-Xms64m" @rem Find java.exe if defined JAVA_HOME goto findJavaFromJavaHome set JAVA_EXE=java.exe %JAVA_EXE% -version >NUL 2>&1 -if "%ERRORLEVEL%" == "0" goto init +if "%ERRORLEVEL%" == "0" goto execute echo. echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. @@ -35,7 +54,7 @@ goto fail set JAVA_HOME=%JAVA_HOME:"=% set JAVA_EXE=%JAVA_HOME%/bin/java.exe -if exist "%JAVA_EXE%" goto init +if exist "%JAVA_EXE%" goto execute echo. echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME% @@ -45,28 +64,14 @@ echo location of your Java installation. goto fail -:init -@rem Get command-line arguments, handling Windows variants - -if not "%OS%" == "Windows_NT" goto win9xME_args - -:win9xME_args -@rem Slurp the command line arguments. -set CMD_LINE_ARGS= -set _SKIP=2 - -:win9xME_args_slurp -if "x%~1" == "x" goto execute - -set CMD_LINE_ARGS=%* - :execute @rem Setup the command line set CLASSPATH=%APP_HOME%\gradle\wrapper\gradle-wrapper.jar + @rem Execute Gradle -"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %CMD_LINE_ARGS% +"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %* :end @rem End local scope for the variables with windows NT shell diff --git a/src/test/java/ch/loway/oss/ari4java/generated/EventBuilderTest.java b/src/test/java/ch/loway/oss/ari4java/generated/EventBuilderTest.java index 4e3a6b1c..6d52aaab 100644 --- a/src/test/java/ch/loway/oss/ari4java/generated/EventBuilderTest.java +++ b/src/test/java/ch/loway/oss/ari4java/generated/EventBuilderTest.java @@ -7,8 +7,8 @@ import ch.loway.oss.ari4java.tools.RestException; import org.junit.Test; -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertTrue; +import static org.junit.Assert.*; +import static org.hamcrest.core.IsInstanceOf.instanceOf; /** * @author lenz @@ -68,7 +68,7 @@ public void generateStatsiStartOutOfData() throws RestException { BaseAriAction action = new BaseAriAction(); Message msg = action.deserializeEvent(jsonStasisStartEvent, Message_impl_ari_0_0_1.class); - assertTrue("Type: StasisStart", msg instanceof StasisStart); + assertThat("Type: StasisStart", msg, instanceOf(StasisStart.class)); StasisStart ss = (StasisStart) msg; From 8683b13677b34d80ae51d0fc15e01218695c01aa Mon Sep 17 00:00:00 2001 From: Graham Brown Date: Thu, 25 Mar 2021 20:05:29 +0200 Subject: [PATCH 170/220] update gradle ref --- README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 01de766c..90d6e5cf 100644 --- a/README.md +++ b/README.md @@ -21,11 +21,11 @@ across different versions. Simply add the library and an SLF4J implementation to your package config, here is an example using Gradle ``` repositories { - jcenter() + mavenCentral() } dependencies { - compile 'ch.loway.oss.ari4java:ari4java:+' + compile 'io.github.ari4java:ari4java:+' compile 'org.apache.logging.log4j:log4j-slf4j-impl:2.13.0' } ``` From 7440b2d02c755caf9f886986363fa617923cca60 Mon Sep 17 00:00:00 2001 From: Graham Brown Date: Thu, 25 Mar 2021 22:32:08 +0200 Subject: [PATCH 171/220] update badges to new groupId --- README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 90d6e5cf..36df8023 100644 --- a/README.md +++ b/README.md @@ -2,8 +2,8 @@ The Asterisk REST Interface (ARI) bindings for Java. -[![Download](https://api.bintray.com/packages/ari4java/maven/ari4java/images/download.png)](https://bintray.com/ari4java/maven/ari4java/_latestVersion) -[![javadoc](https://javadoc.io/badge2/ch.loway.oss.ari4java/ari4java/javadoc.svg)](https://javadoc.io/doc/ch.loway.oss.ari4java/ari4java) +[![Maven Central](https://maven-badges.herokuapp.com/maven-central/io.github.ari4java/ari4java/badge.svg)](https://maven-badges.herokuapp.com/maven-central/io.github.ari4java/ari4java) +[![javadoc](https://javadoc.io/badge2/io.github.ari4java/ari4java/javadoc.svg)](https://javadoc.io/doc/io.github.ari4java/ari4java) [![Build](https://github.com/ari4java/ari4java/workflows/ARI4Java%20Build/badge.svg?branch=master&event=push)](https://github.com/ari4java/ari4java/actions?query=workflow%3A%22ARI4Java+Build%22) ## Description From 731ceee22a531208580f72ece1b362a89ca17a3d Mon Sep 17 00:00:00 2001 From: Graham Brown Date: Fri, 26 Mar 2021 09:55:17 +0200 Subject: [PATCH 172/220] Add a note for existing users --- README.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/README.md b/README.md index 36df8023..c25531d1 100644 --- a/README.md +++ b/README.md @@ -6,6 +6,10 @@ The Asterisk REST Interface (ARI) bindings for Java. [![javadoc](https://javadoc.io/badge2/io.github.ari4java/ari4java/javadoc.svg)](https://javadoc.io/doc/io.github.ari4java/ari4java) [![Build](https://github.com/ari4java/ari4java/workflows/ARI4Java%20Build/badge.svg?branch=master&event=push)](https://github.com/ari4java/ari4java/actions?query=workflow%3A%22ARI4Java+Build%22) +## :star: Existing Users Please Note :bangbang: +Due to the sun setting of JCenter the jar is now publish through Sonatype to Maven Central but in the process of verifying ownership the groupId had to change. +The groupId is now `io.github.ari4java` so make sure you update your build files. + ## Description ARI is an interface available on Asterisk 11+ that lets you write applications From 454e2dc544753ca1b74aa385ff8513e4232836c5 Mon Sep 17 00:00:00 2001 From: Julian Breitung Date: Mon, 7 Jun 2021 07:54:51 +0200 Subject: [PATCH 173/220] Update dependencies Updated dependencies for com.fasterxml.jackson.core to 2.12.3; Updated dependencies for io.netty to 4.1.65.Final; Updated dependencies for org.mockito to 2.28.2; Updated dependencies for org.apache.logging.log4j to 2.14.1 --- build.gradle | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/build.gradle b/build.gradle index 3b557e4a..4bec9530 100644 --- a/build.gradle +++ b/build.gradle @@ -26,16 +26,16 @@ repositories { } dependencies { - compile 'com.fasterxml.jackson.core:jackson-core:2.10.1' - compile 'com.fasterxml.jackson.core:jackson-databind:2.10.1' - compile 'com.fasterxml.jackson.core:jackson-annotations:2.10.1' - compile 'io.netty:netty-all:4.1.44.Final' + compile 'com.fasterxml.jackson.core:jackson-core:2.12.3' + compile 'com.fasterxml.jackson.core:jackson-databind:2.12.3' + compile 'com.fasterxml.jackson.core:jackson-annotations:2.12.3' + compile 'io.netty:netty-all:4.1.65.Final' compile 'javax.xml.bind:jaxb-api:2.3.1' compile 'org.slf4j:slf4j-api:1.7.30' - testCompile 'junit:junit:4.10' + testCompile 'junit:junit:4.13.2' testImplementation 'org.mockito:mockito-core:2.28.2' - testImplementation 'org.apache.logging.log4j:log4j-slf4j-impl:2.13.0' + testImplementation 'org.apache.logging.log4j:log4j-slf4j-impl:2.14.1' } From 75cd1edf830fab5d2da0597b2426a0b70ed262b2 Mon Sep 17 00:00:00 2001 From: Julian Breitung Date: Fri, 16 Jul 2021 13:08:53 +0200 Subject: [PATCH 174/220] Update build.gradle --- build.gradle | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/build.gradle b/build.gradle index 09fd5e46..50099685 100644 --- a/build.gradle +++ b/build.gradle @@ -36,14 +36,14 @@ repositories { } dependencies { - compile 'com.fasterxml.jackson.core:jackson-core:2.12.3' - compile 'com.fasterxml.jackson.core:jackson-databind:2.12.3' - compile 'com.fasterxml.jackson.core:jackson-annotations:2.12.3' - compile 'io.netty:netty-all:4.1.65.Final' - compile 'javax.xml.bind:jaxb-api:2.3.1' - compile 'org.slf4j:slf4j-api:1.7.30' - - testCompile 'junit:junit:4.13.2' + implementation 'com.fasterxml.jackson.core:jackson-core:2.12.3' + implementation 'com.fasterxml.jackson.core:jackson-databind:2.12.3' + implementation 'com.fasterxml.jackson.core:jackson-annotations:2.12.3' + implementation 'io.netty:netty-all:4.1.65.Final' + implementation 'javax.xml.bind:jaxb-api:2.3.1' + implementation 'org.slf4j:slf4j-api:1.7.30' + + testImplementation 'junit:junit:4.13.2' testImplementation 'org.mockito:mockito-core:2.28.2' testImplementation 'org.apache.logging.log4j:log4j-slf4j-impl:2.14.1' } From 2f84bf0a0e3fcc47f9bd783fd57790e094d29eca Mon Sep 17 00:00:00 2001 From: Graham Brown Date: Sat, 14 Aug 2021 16:12:03 +0200 Subject: [PATCH 175/220] gradle updates & update APIs --- .github/workflows/ari-apis.yml | 0 .github/workflows/gradle.yml | 0 .gitignore | 0 CHANGELOG.md | 0 LICENSE | 0 README.md | 0 build.gradle | 0 codegen/build.gradle | 0 .../loway/oss/ari4java/codegen/DefMapper.java | 0 .../loway/oss/ari4java/codegen/VERSION.java | 0 .../oss/ari4java/codegen/gen/JavaGen.java | 0 .../ari4java/codegen/gen/JavaInterface.java | 0 .../oss/ari4java/codegen/gen/JavaPkgInfo.java | 0 .../oss/ari4java/codegen/models/Action.java | 0 .../oss/ari4java/codegen/models/Apis.java | 0 .../codegen/models/AriBuilderInterface.java | 0 .../codegen/models/ClassTranslator.java | 0 .../oss/ari4java/codegen/models/Model.java | 0 .../ari4java/codegen/models/ModelField.java | 0 .../ari4java/codegen/models/Operation.java | 0 .../ch/loway/oss/ari4java/codegen/run.java | 0 .../resources/codegen-data/COPYING.asterisk | 0 .../resources/codegen-data/LICENSE.asterisk | 0 .../codegen-data/ari_8_0_0/applications.json | 223 ++ .../codegen-data/ari_8_0_0/asterisk.json | 725 ++++++ .../codegen-data/ari_8_0_0/bridges.json | 774 ++++++ .../codegen-data/ari_8_0_0/channels.json | 2189 +++++++++++++++++ .../codegen-data/ari_8_0_0/deviceStates.json | 154 ++ .../codegen-data/ari_8_0_0/endpoints.json | 263 ++ .../codegen-data/ari_8_0_0/events.json | 918 +++++++ .../codegen-data/ari_8_0_0/mailboxes.json | 137 ++ .../codegen-data/ari_8_0_0/playbacks.json | 165 ++ .../codegen-data/ari_8_0_0/recordings.json | 413 ++++ .../codegen-data/ari_8_0_0/sounds.json | 99 + examples/build.gradle | 0 examples/gradle/wrapper/gradle-wrapper.jar | Bin .../gradle/wrapper/gradle-wrapper.properties | 2 +- examples/gradlew.bat | 0 examples/settings.gradle | 0 .../oss/ari4java/examples/ConnectAndDial.java | 0 .../loway/oss/ari4java/examples/Weasels.java | 0 .../main/java/helloworld/HelloAriWorld.java | 0 examples/src/main/resources/log4j2.properties | 0 gradle/wrapper/gradle-wrapper.jar | Bin gradle/wrapper/gradle-wrapper.properties | 0 gradlew.bat | 0 settings.gradle | 0 src/main/java/ch/loway/oss/ari4java/ARI.java | 0 .../oss/ari4java/ARIRuntimeException.java | 0 .../ch/loway/oss/ari4java/AriFactory.java | 0 .../ch/loway/oss/ari4java/AriSubscriber.java | 0 .../loway/oss/ari4java/tools/ARIEncoder.java | 0 .../oss/ari4java/tools/ARIException.java | 0 .../oss/ari4java/tools/AriAsyncHandler.java | 0 .../loway/oss/ari4java/tools/AriCallback.java | 0 .../ari4java/tools/AriConnectionEvent.java | 0 .../oss/ari4java/tools/AriWSCallback.java | 0 .../oss/ari4java/tools/BaseAriAction.java | 0 .../loway/oss/ari4java/tools/HttpClient.java | 0 .../loway/oss/ari4java/tools/HttpParam.java | 0 .../oss/ari4java/tools/HttpResponse.java | 0 .../ari4java/tools/HttpResponseHandler.java | 0 .../oss/ari4java/tools/MessageQueue.java | 0 .../oss/ari4java/tools/RestException.java | 0 .../ch/loway/oss/ari4java/tools/WsClient.java | 0 .../ari4java/tools/WsClientAutoReconnect.java | 0 .../oss/ari4java/tools/http/HTTPLogger.java | 0 .../ari4java/tools/http/NettyHttpClient.java | 0 .../tools/http/NettyHttpClientHandler.java | 0 .../tools/http/NettyWSClientHandler.java | 0 .../oss/ari4java/tools/tags/EventSource.java | 0 src/overview.html | 0 .../java/ch/loway/oss/ari4java/ARITest.java | 0 .../ch/loway/oss/ari4java/AriFactoryTest.java | 0 .../ch/loway/oss/ari4java/AriVersionTest.java | 0 .../ari4java/generated/ActionSoundsTest.java | 0 .../ari4java/generated/ActonBridgesTest.java | 0 .../DeserializeToListOfInterfaceTest.java | 0 .../ari4java/generated/EventBuilderTest.java | 0 .../http/NettyHttpClientHandlerTest.java | 0 .../tools/http/NettyHttpClientTest.java | 0 src/test/resources/log4j2.properties | 0 82 files changed, 6061 insertions(+), 1 deletion(-) mode change 100644 => 100755 .github/workflows/ari-apis.yml mode change 100644 => 100755 .github/workflows/gradle.yml mode change 100644 => 100755 .gitignore mode change 100644 => 100755 CHANGELOG.md mode change 100644 => 100755 LICENSE mode change 100644 => 100755 README.md mode change 100644 => 100755 build.gradle mode change 100644 => 100755 codegen/build.gradle mode change 100644 => 100755 codegen/src/main/java/ch/loway/oss/ari4java/codegen/DefMapper.java mode change 100644 => 100755 codegen/src/main/java/ch/loway/oss/ari4java/codegen/VERSION.java mode change 100644 => 100755 codegen/src/main/java/ch/loway/oss/ari4java/codegen/gen/JavaGen.java mode change 100644 => 100755 codegen/src/main/java/ch/loway/oss/ari4java/codegen/gen/JavaInterface.java mode change 100644 => 100755 codegen/src/main/java/ch/loway/oss/ari4java/codegen/gen/JavaPkgInfo.java mode change 100644 => 100755 codegen/src/main/java/ch/loway/oss/ari4java/codegen/models/Action.java mode change 100644 => 100755 codegen/src/main/java/ch/loway/oss/ari4java/codegen/models/Apis.java mode change 100644 => 100755 codegen/src/main/java/ch/loway/oss/ari4java/codegen/models/AriBuilderInterface.java mode change 100644 => 100755 codegen/src/main/java/ch/loway/oss/ari4java/codegen/models/ClassTranslator.java mode change 100644 => 100755 codegen/src/main/java/ch/loway/oss/ari4java/codegen/models/Model.java mode change 100644 => 100755 codegen/src/main/java/ch/loway/oss/ari4java/codegen/models/ModelField.java mode change 100644 => 100755 codegen/src/main/java/ch/loway/oss/ari4java/codegen/models/Operation.java mode change 100644 => 100755 codegen/src/main/java/ch/loway/oss/ari4java/codegen/run.java mode change 100644 => 100755 codegen/src/main/resources/codegen-data/COPYING.asterisk mode change 100644 => 100755 codegen/src/main/resources/codegen-data/LICENSE.asterisk create mode 100644 codegen/src/main/resources/codegen-data/ari_8_0_0/applications.json create mode 100644 codegen/src/main/resources/codegen-data/ari_8_0_0/asterisk.json create mode 100644 codegen/src/main/resources/codegen-data/ari_8_0_0/bridges.json create mode 100644 codegen/src/main/resources/codegen-data/ari_8_0_0/channels.json create mode 100644 codegen/src/main/resources/codegen-data/ari_8_0_0/deviceStates.json create mode 100644 codegen/src/main/resources/codegen-data/ari_8_0_0/endpoints.json create mode 100644 codegen/src/main/resources/codegen-data/ari_8_0_0/events.json create mode 100644 codegen/src/main/resources/codegen-data/ari_8_0_0/mailboxes.json create mode 100644 codegen/src/main/resources/codegen-data/ari_8_0_0/playbacks.json create mode 100644 codegen/src/main/resources/codegen-data/ari_8_0_0/recordings.json create mode 100644 codegen/src/main/resources/codegen-data/ari_8_0_0/sounds.json mode change 100644 => 100755 examples/build.gradle mode change 100644 => 100755 examples/gradle/wrapper/gradle-wrapper.jar mode change 100644 => 100755 examples/gradle/wrapper/gradle-wrapper.properties mode change 100644 => 100755 examples/gradlew.bat mode change 100644 => 100755 examples/settings.gradle mode change 100644 => 100755 examples/src/main/java/ch/loway/oss/ari4java/examples/ConnectAndDial.java mode change 100644 => 100755 examples/src/main/java/ch/loway/oss/ari4java/examples/Weasels.java mode change 100644 => 100755 examples/src/main/java/helloworld/HelloAriWorld.java mode change 100644 => 100755 examples/src/main/resources/log4j2.properties mode change 100644 => 100755 gradle/wrapper/gradle-wrapper.jar mode change 100644 => 100755 gradle/wrapper/gradle-wrapper.properties mode change 100644 => 100755 gradlew.bat mode change 100644 => 100755 settings.gradle mode change 100644 => 100755 src/main/java/ch/loway/oss/ari4java/ARI.java mode change 100644 => 100755 src/main/java/ch/loway/oss/ari4java/ARIRuntimeException.java mode change 100644 => 100755 src/main/java/ch/loway/oss/ari4java/AriFactory.java mode change 100644 => 100755 src/main/java/ch/loway/oss/ari4java/AriSubscriber.java mode change 100644 => 100755 src/main/java/ch/loway/oss/ari4java/tools/ARIEncoder.java mode change 100644 => 100755 src/main/java/ch/loway/oss/ari4java/tools/ARIException.java mode change 100644 => 100755 src/main/java/ch/loway/oss/ari4java/tools/AriAsyncHandler.java mode change 100644 => 100755 src/main/java/ch/loway/oss/ari4java/tools/AriCallback.java mode change 100644 => 100755 src/main/java/ch/loway/oss/ari4java/tools/AriConnectionEvent.java mode change 100644 => 100755 src/main/java/ch/loway/oss/ari4java/tools/AriWSCallback.java mode change 100644 => 100755 src/main/java/ch/loway/oss/ari4java/tools/BaseAriAction.java mode change 100644 => 100755 src/main/java/ch/loway/oss/ari4java/tools/HttpClient.java mode change 100644 => 100755 src/main/java/ch/loway/oss/ari4java/tools/HttpParam.java mode change 100644 => 100755 src/main/java/ch/loway/oss/ari4java/tools/HttpResponse.java mode change 100644 => 100755 src/main/java/ch/loway/oss/ari4java/tools/HttpResponseHandler.java mode change 100644 => 100755 src/main/java/ch/loway/oss/ari4java/tools/MessageQueue.java mode change 100644 => 100755 src/main/java/ch/loway/oss/ari4java/tools/RestException.java mode change 100644 => 100755 src/main/java/ch/loway/oss/ari4java/tools/WsClient.java mode change 100644 => 100755 src/main/java/ch/loway/oss/ari4java/tools/WsClientAutoReconnect.java mode change 100644 => 100755 src/main/java/ch/loway/oss/ari4java/tools/http/HTTPLogger.java mode change 100644 => 100755 src/main/java/ch/loway/oss/ari4java/tools/http/NettyHttpClient.java mode change 100644 => 100755 src/main/java/ch/loway/oss/ari4java/tools/http/NettyHttpClientHandler.java mode change 100644 => 100755 src/main/java/ch/loway/oss/ari4java/tools/http/NettyWSClientHandler.java mode change 100644 => 100755 src/main/java/ch/loway/oss/ari4java/tools/tags/EventSource.java mode change 100644 => 100755 src/overview.html mode change 100644 => 100755 src/test/java/ch/loway/oss/ari4java/ARITest.java mode change 100644 => 100755 src/test/java/ch/loway/oss/ari4java/AriFactoryTest.java mode change 100644 => 100755 src/test/java/ch/loway/oss/ari4java/AriVersionTest.java mode change 100644 => 100755 src/test/java/ch/loway/oss/ari4java/generated/ActionSoundsTest.java mode change 100644 => 100755 src/test/java/ch/loway/oss/ari4java/generated/ActonBridgesTest.java mode change 100644 => 100755 src/test/java/ch/loway/oss/ari4java/generated/DeserializeToListOfInterfaceTest.java mode change 100644 => 100755 src/test/java/ch/loway/oss/ari4java/generated/EventBuilderTest.java mode change 100644 => 100755 src/test/java/ch/loway/oss/ari4java/tools/http/NettyHttpClientHandlerTest.java mode change 100644 => 100755 src/test/java/ch/loway/oss/ari4java/tools/http/NettyHttpClientTest.java mode change 100644 => 100755 src/test/resources/log4j2.properties diff --git a/.github/workflows/ari-apis.yml b/.github/workflows/ari-apis.yml old mode 100644 new mode 100755 diff --git a/.github/workflows/gradle.yml b/.github/workflows/gradle.yml old mode 100644 new mode 100755 diff --git a/.gitignore b/.gitignore old mode 100644 new mode 100755 diff --git a/CHANGELOG.md b/CHANGELOG.md old mode 100644 new mode 100755 diff --git a/LICENSE b/LICENSE old mode 100644 new mode 100755 diff --git a/README.md b/README.md old mode 100644 new mode 100755 diff --git a/build.gradle b/build.gradle old mode 100644 new mode 100755 diff --git a/codegen/build.gradle b/codegen/build.gradle old mode 100644 new mode 100755 diff --git a/codegen/src/main/java/ch/loway/oss/ari4java/codegen/DefMapper.java b/codegen/src/main/java/ch/loway/oss/ari4java/codegen/DefMapper.java old mode 100644 new mode 100755 diff --git a/codegen/src/main/java/ch/loway/oss/ari4java/codegen/VERSION.java b/codegen/src/main/java/ch/loway/oss/ari4java/codegen/VERSION.java old mode 100644 new mode 100755 diff --git a/codegen/src/main/java/ch/loway/oss/ari4java/codegen/gen/JavaGen.java b/codegen/src/main/java/ch/loway/oss/ari4java/codegen/gen/JavaGen.java old mode 100644 new mode 100755 diff --git a/codegen/src/main/java/ch/loway/oss/ari4java/codegen/gen/JavaInterface.java b/codegen/src/main/java/ch/loway/oss/ari4java/codegen/gen/JavaInterface.java old mode 100644 new mode 100755 diff --git a/codegen/src/main/java/ch/loway/oss/ari4java/codegen/gen/JavaPkgInfo.java b/codegen/src/main/java/ch/loway/oss/ari4java/codegen/gen/JavaPkgInfo.java old mode 100644 new mode 100755 diff --git a/codegen/src/main/java/ch/loway/oss/ari4java/codegen/models/Action.java b/codegen/src/main/java/ch/loway/oss/ari4java/codegen/models/Action.java old mode 100644 new mode 100755 diff --git a/codegen/src/main/java/ch/loway/oss/ari4java/codegen/models/Apis.java b/codegen/src/main/java/ch/loway/oss/ari4java/codegen/models/Apis.java old mode 100644 new mode 100755 diff --git a/codegen/src/main/java/ch/loway/oss/ari4java/codegen/models/AriBuilderInterface.java b/codegen/src/main/java/ch/loway/oss/ari4java/codegen/models/AriBuilderInterface.java old mode 100644 new mode 100755 diff --git a/codegen/src/main/java/ch/loway/oss/ari4java/codegen/models/ClassTranslator.java b/codegen/src/main/java/ch/loway/oss/ari4java/codegen/models/ClassTranslator.java old mode 100644 new mode 100755 diff --git a/codegen/src/main/java/ch/loway/oss/ari4java/codegen/models/Model.java b/codegen/src/main/java/ch/loway/oss/ari4java/codegen/models/Model.java old mode 100644 new mode 100755 diff --git a/codegen/src/main/java/ch/loway/oss/ari4java/codegen/models/ModelField.java b/codegen/src/main/java/ch/loway/oss/ari4java/codegen/models/ModelField.java old mode 100644 new mode 100755 diff --git a/codegen/src/main/java/ch/loway/oss/ari4java/codegen/models/Operation.java b/codegen/src/main/java/ch/loway/oss/ari4java/codegen/models/Operation.java old mode 100644 new mode 100755 diff --git a/codegen/src/main/java/ch/loway/oss/ari4java/codegen/run.java b/codegen/src/main/java/ch/loway/oss/ari4java/codegen/run.java old mode 100644 new mode 100755 diff --git a/codegen/src/main/resources/codegen-data/COPYING.asterisk b/codegen/src/main/resources/codegen-data/COPYING.asterisk old mode 100644 new mode 100755 diff --git a/codegen/src/main/resources/codegen-data/LICENSE.asterisk b/codegen/src/main/resources/codegen-data/LICENSE.asterisk old mode 100644 new mode 100755 diff --git a/codegen/src/main/resources/codegen-data/ari_8_0_0/applications.json b/codegen/src/main/resources/codegen-data/ari_8_0_0/applications.json new file mode 100644 index 00000000..09c5cd5c --- /dev/null +++ b/codegen/src/main/resources/codegen-data/ari_8_0_0/applications.json @@ -0,0 +1,223 @@ +{ + "_copyright": "Copyright (C) 2013, Digium, Inc.", + "_author": "David M. Lee, II ", + "_svn_revision": "$Revision$", + "apiVersion": "2.0.0", + "swaggerVersion": "1.1", + "basePath": "http://localhost:8088/ari", + "resourcePath": "/api-docs/applications.{format}", + "apis": [ + { + "path": "/applications", + "description": "Stasis applications", + "operations": [ + { + "httpMethod": "GET", + "summary": "List all applications.", + "nickname": "list", + "responseClass": "List[Application]" + } + ] + }, + { + "path": "/applications/{applicationName}", + "description": "Stasis application", + "operations": [ + { + "httpMethod": "GET", + "summary": "Get details of an application.", + "nickname": "get", + "responseClass": "Application", + "parameters": [ + { + "name": "applicationName", + "description": "Application's name", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Application does not exist." + } + ] + } + ] + }, + { + "path": "/applications/{applicationName}/subscription", + "description": "Stasis application", + "operations": [ + { + "httpMethod": "POST", + "summary": "Subscribe an application to a event source.", + "notes": "Returns the state of the application after the subscriptions have changed", + "nickname": "subscribe", + "responseClass": "Application", + "parameters": [ + { + "name": "applicationName", + "description": "Application's name", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "eventSource", + "description": "URI for event source (channel:{channelId}, bridge:{bridgeId}, endpoint:{tech}[/{resource}], deviceState:{deviceName}", + "paramType": "query", + "required": true, + "allowMultiple": true, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 400, + "reason": "Missing parameter." + }, + { + "code": 404, + "reason": "Application does not exist." + }, + { + "code": 422, + "reason": "Event source does not exist." + } + ] + }, + { + "httpMethod": "DELETE", + "summary": "Unsubscribe an application from an event source.", + "notes": "Returns the state of the application after the subscriptions have changed", + "nickname": "unsubscribe", + "responseClass": "Application", + "parameters": [ + { + "name": "applicationName", + "description": "Application's name", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "eventSource", + "description": "URI for event source (channel:{channelId}, bridge:{bridgeId}, endpoint:{tech}[/{resource}], deviceState:{deviceName}", + "paramType": "query", + "required": true, + "allowMultiple": true, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 400, + "reason": "Missing parameter; event source scheme not recognized." + }, + { + "code": 404, + "reason": "Application does not exist." + }, + { + "code": 409, + "reason": "Application not subscribed to event source." + }, + { + "code": 422, + "reason": "Event source does not exist." + } + ] + } + ] + }, + { + "path": "/applications/{applicationName}/eventFilter", + "description": "Stasis application", + "operations": [ + { + "httpMethod": "PUT", + "summary": "Filter application events types.", + "notes": "Allowed and/or disallowed event type filtering can be done. The body (parameter) should specify a JSON key/value object that describes the type of event filtering needed. One, or both of the following keys can be designated:

\"allowed\" - Specifies an allowed list of event types
\"disallowed\" - Specifies a disallowed list of event types

Further, each of those key's value should be a JSON array that holds zero, or more JSON key/value objects. Each of these objects must contain the following key with an associated value:

\"type\" - The type name of the event to filter

The value must be the string name (case sensitive) of the event type that needs filtering. For example:

{ \"allowed\": [ { \"type\": \"StasisStart\" }, { \"type\": \"StasisEnd\" } ] }

As this specifies only an allowed list, then only those two event type messages are sent to the application. No other event messages are sent.

The following rules apply:

* If the body is empty, both the allowed and disallowed filters are set empty.
* If both list types are given then both are set to their respective values (note, specifying an empty array for a given type sets that type to empty).
* If only one list type is given then only that type is set. The other type is not updated.
* An empty \"allowed\" list means all events are allowed.
* An empty \"disallowed\" list means no events are disallowed.
* Disallowed events take precedence over allowed events if the event type is specified in both lists.", + "nickname": "filter", + "responseClass": "Application", + "parameters": [ + { + "name": "applicationName", + "description": "Application's name", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "filter", + "description": "Specify which event types to allow/disallow", + "paramType": "body", + "required": false, + "dataType": "object", + "allowMultiple": false + } + ], + "errorResponses": [ + { + "code": 400, + "reason": "Bad request." + }, + { + "code": 404, + "reason": "Application does not exist." + } + ] + } + ] + } + ], + "models": { + "Application": { + "id": "Application", + "description": "Details of a Stasis application", + "properties": { + "name": { + "type": "string", + "description": "Name of this application", + "required": true + }, + "channel_ids": { + "type": "List[string]", + "description": "Id's for channels subscribed to.", + "required": true + }, + "bridge_ids": { + "type": "List[string]", + "description": "Id's for bridges subscribed to.", + "required": true + }, + "endpoint_ids": { + "type": "List[string]", + "description": "{tech}/{resource} for endpoints subscribed to.", + "required": true + }, + "device_names": { + "type": "List[string]", + "description": "Names of the devices subscribed to.", + "required": true + }, + "events_allowed": { + "type": "List[object]", + "description": "Event types sent to the application.", + "required": true + }, + "events_disallowed": { + "type": "List[object]", + "description": "Event types not sent to the application.", + "required": true + } + } + } + } +} diff --git a/codegen/src/main/resources/codegen-data/ari_8_0_0/asterisk.json b/codegen/src/main/resources/codegen-data/ari_8_0_0/asterisk.json new file mode 100644 index 00000000..841e6cd8 --- /dev/null +++ b/codegen/src/main/resources/codegen-data/ari_8_0_0/asterisk.json @@ -0,0 +1,725 @@ +{ + "_copyright": "Copyright (C) 2012 - 2013, Digium, Inc.", + "_author": "David M. Lee, II ", + "_svn_revision": "$Revision$", + "apiVersion": "2.0.0", + "swaggerVersion": "1.1", + "basePath": "http://localhost:8088/ari", + "resourcePath": "/api-docs/asterisk.{format}", + "apis": [ + { + "path": "/asterisk/config/dynamic/{configClass}/{objectType}/{id}", + "description": "Asterisk dynamic configuration", + "operations": [ + { + "httpMethod": "GET", + "summary": "Retrieve a dynamic configuration object.", + "nickname": "getObject", + "responseClass": "List[ConfigTuple]", + "parameters": [ + { + "name": "configClass", + "description": "The configuration class containing dynamic configuration objects.", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "objectType", + "description": "The type of configuration object to retrieve.", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "id", + "description": "The unique identifier of the object to retrieve.", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "{configClass|objectType|id} not found" + } + ] + }, + { + "httpMethod": "PUT", + "summary": "Create or update a dynamic configuration object.", + "nickname": "updateObject", + "responseClass": "List[ConfigTuple]", + "parameters": [ + { + "name": "configClass", + "description": "The configuration class containing dynamic configuration objects.", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "objectType", + "description": "The type of configuration object to create or update.", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "id", + "description": "The unique identifier of the object to create or update.", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "fields", + "description": "The body object should have a value that is a list of ConfigTuples, which provide the fields to update. Ex. [ { \"attribute\": \"directmedia\", \"value\": \"false\" } ]", + "paramType": "body", + "required": false, + "dataType": "containers", + "allowMultiple": false + } + ], + "errorResponses": [ + { + "code": 400, + "reason": "Bad request body" + }, + { + "code": 403, + "reason": "Could not create or update object" + }, + { + "code": 404, + "reason": "{configClass|objectType} not found" + } + ] + }, + { + "httpMethod": "DELETE", + "summary": "Delete a dynamic configuration object.", + "nickname": "deleteObject", + "responseClass": "void", + "parameters": [ + { + "name": "configClass", + "description": "The configuration class containing dynamic configuration objects.", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "objectType", + "description": "The type of configuration object to delete.", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "id", + "description": "The unique identifier of the object to delete.", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 403, + "reason": "Could not delete object" + }, + { + "code": 404, + "reason": "{configClass|objectType|id} not found" + } + ] + } + ] + }, + { + "path": "/asterisk/info", + "description": "Asterisk system information (similar to core show settings)", + "operations": [ + { + "httpMethod": "GET", + "summary": "Gets Asterisk system information.", + "nickname": "getInfo", + "responseClass": "AsteriskInfo", + "parameters": [ + { + "name": "only", + "description": "Filter information returned", + "paramType": "query", + "required": false, + "allowMultiple": true, + "dataType": "string", + "allowableValues": { + "valueType": "LIST", + "values": [ + "build", + "system", + "config", + "status" + ] + } + } + ] + } + ] + }, + { + "path": "/asterisk/ping", + "description": "Asterisk ping", + "operations": [ + { + "httpMethod": "GET", + "summary": "Response pong message.", + "nickname": "ping", + "responseClass": "AsteriskPing" + } + ] + }, + { + "path": "/asterisk/modules", + "description": "Asterisk modules", + "operations": [ + { + "httpMethod": "GET", + "summary": "List Asterisk modules.", + "nickname": "listModules", + "responseClass": "List[Module]" + } + ] + }, + { + "path": "/asterisk/modules/{moduleName}", + "description": "Asterisk module", + "operations": [ + { + "httpMethod": "GET", + "summary": "Get Asterisk module information.", + "nickname": "getModule", + "responseClass": "Module", + "parameters": [ + { + "name": "moduleName", + "description": "Module's name", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Module could not be found in running modules." + }, + { + "code": 409, + "reason": "Module information could not be retrieved." + } + ] + }, + { + "httpMethod": "POST", + "summary": "Load an Asterisk module.", + "nickname": "loadModule", + "responseClass": "void", + "parameters": [ + { + "name": "moduleName", + "description": "Module's name", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 409, + "reason": "Module could not be loaded." + } + ] + }, + { + "httpMethod": "DELETE", + "summary": "Unload an Asterisk module.", + "nickname": "unloadModule", + "responseClass": "void", + "parameters": [ + { + "name": "moduleName", + "description": "Module's name", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Module not found in running modules." + }, + { + "code": 409, + "reason": "Module could not be unloaded." + } + ] + }, + { + "httpMethod": "PUT", + "summary": "Reload an Asterisk module.", + "nickname": "reloadModule", + "responseClass": "void", + "parameters": [ + { + "name": "moduleName", + "description": "Module's name", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Module not found in running modules." + }, + { + "code": 409, + "reason": "Module could not be reloaded." + } + ] + } + ] + }, + { + "path": "/asterisk/logging", + "description": "Asterisk log channels", + "operations": [ + { + "httpMethod": "GET", + "summary": "Gets Asterisk log channel information.", + "nickname": "listLogChannels", + "responseClass": "List[LogChannel]" + } + ] + }, + { + "path": "/asterisk/logging/{logChannelName}", + "description": "Asterisk log channel", + "operations": [ + { + "httpMethod": "POST", + "summary": "Adds a log channel.", + "nickname": "addLog", + "responseClass": "void", + "parameters": [ + { + "name": "logChannelName", + "description": "The log channel to add", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "configuration", + "description": "levels of the log channel", + "paramType": "query", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 400, + "reason": "Bad request body" + }, + { + "code": 409, + "reason": "Log channel could not be created." + } + ] + }, + { + "httpMethod": "DELETE", + "summary": "Deletes a log channel.", + "nickname": "deleteLog", + "responseClass": "void", + "parameters": [ + { + "name": "logChannelName", + "description": "Log channels name", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Log channel does not exist." + } + ] + } + ] + }, + { + "path": "/asterisk/logging/{logChannelName}/rotate", + "description": "Asterisk log channel", + "operations": [ + { + "httpMethod": "PUT", + "summary": "Rotates a log channel.", + "nickname": "rotateLog", + "responseClass": "void", + "parameters": [ + { + "name": "logChannelName", + "description": "Log channel's name", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Log channel does not exist." + } + ] + } + ] + }, + { + "path": "/asterisk/variable", + "description": "Global variables", + "operations": [ + { + "httpMethod": "GET", + "summary": "Get the value of a global variable.", + "nickname": "getGlobalVar", + "responseClass": "Variable", + "parameters": [ + { + "name": "variable", + "description": "The variable to get", + "paramType": "query", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 400, + "reason": "Missing variable parameter." + } + ] + }, + { + "httpMethod": "POST", + "summary": "Set the value of a global variable.", + "nickname": "setGlobalVar", + "responseClass": "void", + "parameters": [ + { + "name": "variable", + "description": "The variable to set", + "paramType": "query", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "value", + "description": "The value to set the variable to", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 400, + "reason": "Missing variable parameter." + } + ] + } + ] + } + ], + "models": { + "BuildInfo": { + "id": "BuildInfo", + "description": "Info about how Asterisk was built", + "properties": { + "os": { + "required": true, + "type": "string", + "description": "OS Asterisk was built on." + }, + "kernel": { + "required": true, + "type": "string", + "description": "Kernel version Asterisk was built on." + }, + "options": { + "required": true, + "type": "string", + "description": "Compile time options, or empty string if default." + }, + "machine": { + "required": true, + "type": "string", + "description": "Machine architecture (x86_64, i686, ppc, etc.)" + }, + "date": { + "required": true, + "type": "string", + "description": "Date and time when Asterisk was built." + }, + "user": { + "required": true, + "type": "string", + "description": "Username that build Asterisk" + } + } + }, + "SystemInfo": { + "id": "SystemInfo", + "description": "Info about Asterisk", + "properties": { + "version": { + "required": true, + "type": "string", + "description": "Asterisk version." + }, + "entity_id": { + "required": true, + "type": "string", + "description": "" + } + } + }, + "SetId": { + "id": "SetId", + "description": "Effective user/group id", + "properties": { + "user": { + "required": true, + "type": "string", + "description": "Effective user id." + }, + "group": { + "required": true, + "type": "string", + "description": "Effective group id." + } + } + }, + "ConfigInfo": { + "id": "ConfigInfo", + "description": "Info about Asterisk configuration", + "properties": { + "name": { + "required": true, + "type": "string", + "description": "Asterisk system name." + }, + "default_language": { + "required": true, + "type": "string", + "description": "Default language for media playback." + }, + "max_channels": { + "required": false, + "type": "int", + "description": "Maximum number of simultaneous channels." + }, + "max_open_files": { + "required": false, + "type": "int", + "description": "Maximum number of open file handles (files, sockets)." + }, + "max_load": { + "required": false, + "type": "double", + "description": "Maximum load avg on system." + }, + "setid": { + "required": true, + "type": "SetId", + "description": "Effective user/group id for running Asterisk." + } + } + }, + "StatusInfo": { + "id": "StatusInfo", + "description": "Info about Asterisk status", + "properties": { + "startup_time": { + "required": true, + "type": "Date", + "description": "Time when Asterisk was started." + }, + "last_reload_time": { + "required": true, + "type": "Date", + "description": "Time when Asterisk was last reloaded." + } + } + }, + "AsteriskInfo": { + "id": "AsteriskInfo", + "description": "Asterisk system information", + "properties": { + "build": { + "required": false, + "type": "BuildInfo", + "description": "Info about how Asterisk was built" + }, + "system": { + "required": false, + "type": "SystemInfo", + "description": "Info about the system running Asterisk" + }, + "config": { + "required": false, + "type": "ConfigInfo", + "description": "Info about Asterisk configuration" + }, + "status": { + "required": false, + "type": "StatusInfo", + "description": "Info about Asterisk status" + } + } + }, + "AsteriskPing": { + "id": "AsteriskPing", + "description": "Asterisk ping information", + "properties": { + "asterisk_id": { + "required": true, + "type": "string", + "description": "Asterisk id info" + }, + "ping": { + "required": true, + "type": "string", + "description": "Always string value is pong" + }, + "timestamp": { + "required": true, + "type": "string", + "description": "The timestamp string of request received time" + } + } + }, + "Module": { + "id": "Module", + "description": "Details of an Asterisk module", + "properties": { + "name": { + "type": "string", + "description": "The name of this module", + "required": true + }, + "description": { + "type": "string", + "description": "The description of this module", + "required": true + }, + "use_count": { + "type": "int", + "description": "The number of times this module is being used", + "required": true + }, + "status": { + "type": "string", + "description": "The running status of this module", + "required": true + }, + "support_level": { + "type": "string", + "description": "The support state of this module", + "required": true + } + } + }, + "LogChannel": { + "id": "LogChannel", + "description": "Details of an Asterisk log channel", + "properties": { + "channel": { + "type": "string", + "description": "The log channel path", + "required": true + }, + "type": { + "type": "string", + "description": "Types of logs for the log channel", + "required": true + }, + "status": { + "type": "string", + "description": "Whether or not a log type is enabled", + "required": true + }, + "configuration": { + "type": "string", + "description": "The various log levels", + "required": true + } + } + }, + "Variable": { + "id": "Variable", + "description": "The value of a channel variable", + "properties": { + "value": { + "required": true, + "type": "string", + "description": "The value of the variable requested" + } + } + }, + "ConfigTuple": { + "id": "ConfigTuple", + "description": "A key/value pair that makes up part of a configuration object.", + "properties": { + "attribute": { + "required": true, + "type": "string", + "description": "A configuration object attribute." + }, + "value": { + "required": true, + "type": "string", + "description": "The value for the attribute." + } + } + } + } +} diff --git a/codegen/src/main/resources/codegen-data/ari_8_0_0/bridges.json b/codegen/src/main/resources/codegen-data/ari_8_0_0/bridges.json new file mode 100644 index 00000000..bf0a0016 --- /dev/null +++ b/codegen/src/main/resources/codegen-data/ari_8_0_0/bridges.json @@ -0,0 +1,774 @@ +{ + "_copyright": "Copyright (C) 2012 - 2013, Digium, Inc.", + "_author": "David M. Lee, II ", + "_svn_revision": "$Revision$", + "apiVersion": "2.0.0", + "swaggerVersion": "1.1", + "basePath": "http://localhost:8088/ari", + "resourcePath": "/api-docs/bridges.{format}", + "requiresModules": [ + "res_stasis_recording", + "res_stasis_playback" + ], + "apis": [ + { + "path": "/bridges", + "description": "Active bridges", + "operations": [ + { + "httpMethod": "GET", + "summary": "List all active bridges in Asterisk.", + "nickname": "list", + "responseClass": "List[Bridge]" + }, + { + "httpMethod": "POST", + "summary": "Create a new bridge.", + "notes": "This bridge persists until it has been shut down, or Asterisk has been shut down.", + "nickname": "create", + "responseClass": "Bridge", + "parameters": [ + { + "name": "type", + "description": "Comma separated list of bridge type attributes (mixing, holding, dtmf_events, proxy_media, video_sfu, video_single).", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "bridgeId", + "description": "Unique ID to give to the bridge being created.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "name", + "description": "Name to give to the bridge being created.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + } + ] + } + ] + }, + { + "path": "/bridges/{bridgeId}", + "description": "Individual bridge", + "operations": [ + { + "httpMethod": "POST", + "summary": "Create a new bridge or updates an existing one.", + "notes": "This bridge persists until it has been shut down, or Asterisk has been shut down.", + "nickname": "createWithId", + "responseClass": "Bridge", + "parameters": [ + { + "name": "type", + "description": "Comma separated list of bridge type attributes (mixing, holding, dtmf_events, proxy_media, video_sfu, video_single) to set.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "bridgeId", + "description": "Unique ID to give to the bridge being created.", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "name", + "description": "Set the name of the bridge.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + } + ] + }, + { + "httpMethod": "GET", + "summary": "Get bridge details.", + "nickname": "get", + "responseClass": "Bridge", + "parameters": [ + { + "name": "bridgeId", + "description": "Bridge's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Bridge not found" + } + ] + }, + { + "httpMethod": "DELETE", + "summary": "Shut down a bridge.", + "notes": "If any channels are in this bridge, they will be removed and resume whatever they were doing beforehand.", + "nickname": "destroy", + "responseClass": "void", + "parameters": [ + { + "name": "bridgeId", + "description": "Bridge's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Bridge not found" + } + ] + } + ] + }, + { + "path": "/bridges/{bridgeId}/addChannel", + "description": "Add a channel to a bridge", + "operations": [ + { + "httpMethod": "POST", + "summary": "Add a channel to a bridge.", + "nickname": "addChannel", + "responseClass": "void", + "parameters": [ + { + "name": "bridgeId", + "description": "Bridge's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "channel", + "description": "Ids of channels to add to bridge", + "paramType": "query", + "required": true, + "allowMultiple": true, + "dataType": "string" + }, + { + "name": "role", + "description": "Channel's role in the bridge", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "absorbDTMF", + "description": "Absorb DTMF coming from this channel, preventing it to pass through to the bridge", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "boolean", + "defaultValue": false + }, + { + "name": "mute", + "description": "Mute audio from this channel, preventing it to pass through to the bridge", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "boolean", + "defaultValue": false + }, + { + "name": "inhibitConnectedLineUpdates", + "description": "Do not present the identity of the newly connected channel to other bridge members", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "boolean", + "defaultValue": false + } + ], + "errorResponses": [ + { + "code": 400, + "reason": "Channel not found" + }, + { + "code": 404, + "reason": "Bridge not found" + }, + { + "code": 409, + "reason": "Bridge not in Stasis application; Channel currently recording" + }, + { + "code": 422, + "reason": "Channel not in Stasis application" + } + ] + } + ] + }, + { + "path": "/bridges/{bridgeId}/removeChannel", + "description": "Remove a channel from a bridge", + "operations": [ + { + "httpMethod": "POST", + "summary": "Remove a channel from a bridge.", + "nickname": "removeChannel", + "responseClass": "void", + "parameters": [ + { + "name": "bridgeId", + "description": "Bridge's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "channel", + "description": "Ids of channels to remove from bridge", + "paramType": "query", + "required": true, + "allowMultiple": true, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 400, + "reason": "Channel not found" + }, + { + "code": 404, + "reason": "Bridge not found" + }, + { + "code": 409, + "reason": "Bridge not in Stasis application" + }, + { + "code": 422, + "reason": "Channel not in this bridge" + } + ] + } + ] + }, + { + "path": "/bridges/{bridgeId}/videoSource/{channelId}", + "description": "Set a channel as the video source in a multi-party bridge", + "operations": [ + { + "httpMethod": "POST", + "summary": "Set a channel as the video source in a multi-party mixing bridge. This operation has no effect on bridges with two or fewer participants.", + "nickname": "setVideoSource", + "responseClass": "void", + "parameters": [ + { + "name": "bridgeId", + "description": "Bridge's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "channelId", + "description": "Channel's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Bridge or Channel not found" + }, + { + "code": 409, + "reason": "Channel not in Stasis application" + }, + { + "code": 422, + "reason": "Channel not in this Bridge" + } + ] + } + ] + }, + { + "path": "/bridges/{bridgeId}/videoSource", + "description": "Removes any explicit video source", + "operations": [ + { + "httpMethod": "DELETE", + "summary": "Removes any explicit video source in a multi-party mixing bridge. This operation has no effect on bridges with two or fewer participants. When no explicit video source is set, talk detection will be used to determine the active video stream.", + "nickname": "clearVideoSource", + "responseClass": "void", + "parameters": [ + { + "name": "bridgeId", + "description": "Bridge's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Bridge not found" + } + ] + } + ] + }, + { + "path": "/bridges/{bridgeId}/moh", + "description": "Play music on hold to a bridge", + "operations": [ + { + "httpMethod": "POST", + "summary": "Play music on hold to a bridge or change the MOH class that is playing.", + "nickname": "startMoh", + "responseClass": "void", + "parameters": [ + { + "name": "bridgeId", + "description": "Bridge's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "mohClass", + "description": "Channel's id", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Bridge not found" + }, + { + "code": 409, + "reason": "Bridge not in Stasis application" + } + ] + }, + { + "httpMethod": "DELETE", + "summary": "Stop playing music on hold to a bridge.", + "notes": "This will only stop music on hold being played via POST bridges/{bridgeId}/moh.", + "nickname": "stopMoh", + "responseClass": "void", + "parameters": [ + { + "name": "bridgeId", + "description": "Bridge's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Bridge not found" + }, + { + "code": 409, + "reason": "Bridge not in Stasis application" + } + ] + } + ] + }, + { + "path": "/bridges/{bridgeId}/play", + "description": "Play media to the participants of a bridge", + "operations": [ + { + "httpMethod": "POST", + "summary": "Start playback of media on a bridge.", + "notes": "The media URI may be any of a number of URI's. Currently sound:, recording:, number:, digits:, characters:, and tone: URI's are supported. This operation creates a playback resource that can be used to control the playback of media (pause, rewind, fast forward, etc.)", + "nickname": "play", + "responseClass": "Playback", + "parameters": [ + { + "name": "bridgeId", + "description": "Bridge's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "media", + "description": "Media URIs to play.", + "paramType": "query", + "required": true, + "allowMultiple": true, + "dataType": "string" + }, + { + "name": "lang", + "description": "For sounds, selects language for sound.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "offsetms", + "description": "Number of milliseconds to skip before playing. Only applies to the first URI if multiple media URIs are specified.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "int", + "defaultValue": 0, + "allowableValues": { + "valueType": "RANGE", + "min": 0 + } + + }, + { + "name": "skipms", + "description": "Number of milliseconds to skip for forward/reverse operations.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "int", + "defaultValue": 3000, + "allowableValues": { + "valueType": "RANGE", + "min": 0 + } + }, + { + "name": "playbackId", + "description": "Playback Id.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Bridge not found" + }, + { + "code": 409, + "reason": "Bridge not in a Stasis application" + } + ] + } + ] + }, + { + "path": "/bridges/{bridgeId}/play/{playbackId}", + "description": "Play media to a bridge", + "operations": [ + { + "httpMethod": "POST", + "summary": "Start playback of media on a bridge.", + "notes": "The media URI may be any of a number of URI's. Currently sound:, recording:, number:, digits:, characters:, and tone: URI's are supported. This operation creates a playback resource that can be used to control the playback of media (pause, rewind, fast forward, etc.)", + "nickname": "playWithId", + "responseClass": "Playback", + "parameters": [ + { + "name": "bridgeId", + "description": "Bridge's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "playbackId", + "description": "Playback ID.", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "media", + "description": "Media URIs to play.", + "paramType": "query", + "required": true, + "allowMultiple": true, + "dataType": "string" + }, + { + "name": "lang", + "description": "For sounds, selects language for sound.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "offsetms", + "description": "Number of milliseconds to skip before playing. Only applies to the first URI if multiple media URIs are specified.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "int", + "defaultValue": 0, + "allowableValues": { + "valueType": "RANGE", + "min": 0 + } + }, + { + "name": "skipms", + "description": "Number of milliseconds to skip for forward/reverse operations.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "int", + "defaultValue": 3000, + "allowableValues": { + "valueType": "RANGE", + "min": 0 + } + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Bridge not found" + }, + { + "code": 409, + "reason": "Bridge not in a Stasis application" + } + ] + + } + ] + }, + { + "path": "/bridges/{bridgeId}/record", + "description": "Record audio on a bridge", + "operations": [ + { + "httpMethod": "POST", + "summary": "Start a recording.", + "notes": "This records the mixed audio from all channels participating in this bridge.", + "nickname": "record", + "responseClass": "LiveRecording", + "parameters": [ + { + "name": "bridgeId", + "description": "Bridge's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "name", + "description": "Recording's filename", + "paramType": "query", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "format", + "description": "Format to encode audio in", + "paramType": "query", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "maxDurationSeconds", + "description": "Maximum duration of the recording, in seconds. 0 for no limit.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "int", + "defaultValue": 0, + "allowableValues": { + "valueType": "RANGE", + "min": 0 + } + }, + { + "name": "maxSilenceSeconds", + "description": "Maximum duration of silence, in seconds. 0 for no limit.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "int", + "defaultValue": 0, + "allowableValues": { + "valueType": "RANGE", + "min": 0 + } + }, + { + "name": "ifExists", + "description": "Action to take if a recording with the same name already exists.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string", + "defaultValue": "fail", + "allowableValues": { + "valueType": "LIST", + "values": [ + "fail", + "overwrite", + "append" + ] + } + }, + { + "name": "beep", + "description": "Play beep when recording begins", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "boolean", + "defaultValue": false + }, + { + "name": "terminateOn", + "description": "DTMF input to terminate recording.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string", + "defaultValue": "none", + "allowableValues": { + "valueType": "LIST", + "values": [ + "none", + "any", + "*", + "#" + ] + } + } + ], + "errorResponses": [ + { + "code": 400, + "reason": "Invalid parameters" + }, + { + "code": 404, + "reason": "Bridge not found" + }, + { + "code": 409, + "reason": "Bridge is not in a Stasis application; A recording with the same name already exists on the system and can not be overwritten because it is in progress or ifExists=fail" + }, + { + "code": 422, + "reason": "The format specified is unknown on this system" + } + ] + } + ] + } + ], + "models": { + "Bridge": { + "id": "Bridge", + "description": "The merging of media from one or more channels.\n\nEveryone on the bridge receives the same audio.", + "properties": { + "id": { + "type": "string", + "description": "Unique identifier for this bridge", + "required": true + }, + "technology": { + "type": "string", + "description": "Name of the current bridging technology", + "required": true + }, + "bridge_type": { + "type": "string", + "description": "Type of bridge technology", + "required": true, + "allowableValues": { + "valueType": "LIST", + "values": [ + "mixing", + "holding" + ] + } + }, + "bridge_class": { + "type": "string", + "description": "Bridging class", + "required": true + }, + "creator": { + "type": "string", + "description": "Entity that created the bridge", + "required": true + }, + "name": { + "type": "string", + "description": "Name the creator gave the bridge", + "required": true + }, + "channels": { + "type": "List[string]", + "description": "Ids of channels participating in this bridge", + "required": true + }, + "video_mode": { + "type": "string", + "description": "The video mode the bridge is using. One of 'none', 'talker', 'sfu', or 'single'.", + "required": false + }, + "video_source_id": { + "type": "string", + "description": "The ID of the channel that is the source of video in this bridge, if one exists.", + "required": false + }, + "creationtime": { + "required": true, + "type": "Date", + "description": "Timestamp when bridge was created" + } + } + } + } +} diff --git a/codegen/src/main/resources/codegen-data/ari_8_0_0/channels.json b/codegen/src/main/resources/codegen-data/ari_8_0_0/channels.json new file mode 100644 index 00000000..04d15773 --- /dev/null +++ b/codegen/src/main/resources/codegen-data/ari_8_0_0/channels.json @@ -0,0 +1,2189 @@ +{ + "_copyright": "Copyright (C) 2012 - 2013, Digium, Inc.", + "_author": "David M. Lee, II ", + "_svn_revision": "$Revision$", + "apiVersion": "2.0.0", + "swaggerVersion": "1.1", + "basePath": "http://localhost:8088/ari", + "resourcePath": "/api-docs/channels.{format}", + "requiresModules": [ + "res_stasis_answer", + "res_stasis_playback", + "res_stasis_recording", + "res_stasis_snoop" + ], + "apis": [ + { + "path": "/channels", + "description": "Active channels", + "operations": [ + { + "httpMethod": "GET", + "summary": "List all active channels in Asterisk.", + "nickname": "list", + "responseClass": "List[Channel]" + }, + { + "httpMethod": "POST", + "summary": "Create a new channel (originate).", + "notes": "The new channel is created immediately and a snapshot of it returned. If a Stasis application is provided it will be automatically subscribed to the originated channel for further events and updates.", + "nickname": "originate", + "responseClass": "Channel", + "parameters": [ + { + "name": "endpoint", + "description": "Endpoint to call.", + "paramType": "query", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "extension", + "description": "The extension to dial after the endpoint answers. Mutually exclusive with 'app'.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "context", + "description": "The context to dial after the endpoint answers. If omitted, uses 'default'. Mutually exclusive with 'app'.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "priority", + "description": "The priority to dial after the endpoint answers. If omitted, uses 1. Mutually exclusive with 'app'.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "long" + }, + { + "name": "label", + "description": "The label to dial after the endpoint answers. Will supersede 'priority' if provided. Mutually exclusive with 'app'.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "app", + "description": "The application that is subscribed to the originated channel. When the channel is answered, it will be passed to this Stasis application. Mutually exclusive with 'context', 'extension', 'priority', and 'label'.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "appArgs", + "description": "The application arguments to pass to the Stasis application provided by 'app'. Mutually exclusive with 'context', 'extension', 'priority', and 'label'.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "callerId", + "description": "CallerID to use when dialing the endpoint or extension.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "timeout", + "description": "Timeout (in seconds) before giving up dialing, or -1 for no timeout.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "int", + "defaultValue": 30 + }, + { + "name": "variables", + "description": "The \"variables\" key in the body object holds variable key/value pairs to set on the channel on creation. Other keys in the body object are interpreted as query parameters. Ex. { \"endpoint\": \"SIP/Alice\", \"variables\": { \"CALLERID(name)\": \"Alice\" } }", + "paramType": "body", + "required": false, + "dataType": "containers", + "allowMultiple": false + }, + { + "name": "channelId", + "description": "The unique id to assign the channel on creation.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "otherChannelId", + "description": "The unique id to assign the second channel when using local channels.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "originator", + "description": "The unique id of the channel which is originating this one.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "formats", + "description": "The format name capability list to use if originator is not specified. Ex. \"ulaw,slin16\". Format names can be found with \"core show codecs\".", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 400, + "reason": "Invalid parameters for originating a channel." + }, + { + "code": 409, + "reason": "Channel with given unique ID already exists." + } + ] + } + ] + }, + { + "path": "/channels/create", + "description": "Create a channel and place it in a Stasis app, but do not dial the channel yet.", + "operations": [ + { + "httpMethod": "POST", + "summary": "Create channel.", + "nickname": "create", + "responseClass": "Channel", + "parameters": [ + { + "name": "endpoint", + "description": "Endpoint for channel communication", + "paramType": "query", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "app", + "description": "Stasis Application to place channel into", + "paramType": "query", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "appArgs", + "description": "The application arguments to pass to the Stasis application provided by 'app'. Mutually exclusive with 'context', 'extension', 'priority', and 'label'.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "channelId", + "description": "The unique id to assign the channel on creation.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "otherChannelId", + "description": "The unique id to assign the second channel when using local channels.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "originator", + "description": "Unique ID of the calling channel", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "formats", + "description": "The format name capability list to use if originator is not specified. Ex. \"ulaw,slin16\". Format names can be found with \"core show codecs\".", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "variables", + "description": "The \"variables\" key in the body object holds variable key/value pairs to set on the channel on creation. Other keys in the body object are interpreted as query parameters. Ex. { \"endpoint\": \"SIP/Alice\", \"variables\": { \"CALLERID(name)\": \"Alice\" } }", + "paramType": "body", + "required": false, + "dataType": "containers", + "allowMultiple": false + } + ], + "errorResponses": [ + { + "code": 409, + "reason": "Channel with given unique ID already exists." + } + ] + } + ] + }, + { + "path": "/channels/{channelId}", + "description": "Active channel", + "operations": [ + { + "httpMethod": "GET", + "summary": "Channel details.", + "nickname": "get", + "responseClass": "Channel", + "parameters": [ + { + "name": "channelId", + "description": "Channel's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Channel not found" + } + ] + }, + { + "httpMethod": "POST", + "summary": "Create a new channel (originate with id).", + "notes": "The new channel is created immediately and a snapshot of it returned. If a Stasis application is provided it will be automatically subscribed to the originated channel for further events and updates.", + "nickname": "originateWithId", + "responseClass": "Channel", + "parameters": [ + { + "name": "channelId", + "description": "The unique id to assign the channel on creation.", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "endpoint", + "description": "Endpoint to call.", + "paramType": "query", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "extension", + "description": "The extension to dial after the endpoint answers. Mutually exclusive with 'app'.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "context", + "description": "The context to dial after the endpoint answers. If omitted, uses 'default'. Mutually exclusive with 'app'.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "priority", + "description": "The priority to dial after the endpoint answers. If omitted, uses 1. Mutually exclusive with 'app'.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "long" + }, + { + "name": "label", + "description": "The label to dial after the endpoint answers. Will supersede 'priority' if provided. Mutually exclusive with 'app'.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "app", + "description": "The application that is subscribed to the originated channel. When the channel is answered, it will be passed to this Stasis application. Mutually exclusive with 'context', 'extension', 'priority', and 'label'.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "appArgs", + "description": "The application arguments to pass to the Stasis application provided by 'app'. Mutually exclusive with 'context', 'extension', 'priority', and 'label'.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "callerId", + "description": "CallerID to use when dialing the endpoint or extension.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "timeout", + "description": "Timeout (in seconds) before giving up dialing, or -1 for no timeout.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "int", + "defaultValue": 30 + }, + { + "name": "variables", + "description": "The \"variables\" key in the body object holds variable key/value pairs to set on the channel on creation. Other keys in the body object are interpreted as query parameters. Ex. { \"endpoint\": \"SIP/Alice\", \"variables\": { \"CALLERID(name)\": \"Alice\" } }", + "paramType": "body", + "required": false, + "dataType": "containers", + "allowMultiple": false + }, + { + "name": "otherChannelId", + "description": "The unique id to assign the second channel when using local channels.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "originator", + "description": "The unique id of the channel which is originating this one.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "formats", + "description": "The format name capability list to use if originator is not specified. Ex. \"ulaw,slin16\". Format names can be found with \"core show codecs\".", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 400, + "reason": "Invalid parameters for originating a channel." + }, + { + "code": 409, + "reason": "Channel with given unique ID already exists." + } + ] + + }, + { + "httpMethod": "DELETE", + "summary": "Delete (i.e. hangup) a channel.", + "nickname": "hangup", + "responseClass": "void", + "parameters": [ + { + "name": "channelId", + "description": "Channel's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "reason_code", + "description": "The reason code for hanging up the channel for detail use. Mutually exclusive with 'reason'. See detail hangup codes at here. https://wiki.asterisk.org/wiki/display/AST/Hangup+Cause+Mappings", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "reason", + "description": "Reason for hanging up the channel for simple use. Mutually exclusive with 'reason_code'.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string", + "allowableValues": { + "valueType": "LIST", + "values": [ + "normal", + "busy", + "congestion", + "no_answer", + "timeout", + "rejected", + "unallocated", + "normal_unspecified", + "number_incomplete", + "codec_mismatch", + "interworking", + "failure", + "answered_elsewhere" + ] + } + } + ], + "errorResponses": [ + { + "code": 400, + "reason": "Invalid reason for hangup provided" + }, + { + "code": 404, + "reason": "Channel not found" + } + ] + } + ] + }, + { + "path": "/channels/{channelId}/continue", + "description": "Exit application; continue execution in the dialplan", + "operations": [ + { + "httpMethod": "POST", + "summary": "Exit application; continue execution in the dialplan.", + "nickname": "continueInDialplan", + "responseClass": "void", + "parameters": [ + { + "name": "channelId", + "description": "Channel's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "context", + "description": "The context to continue to.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "extension", + "description": "The extension to continue to.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "priority", + "description": "The priority to continue to.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "int" + }, + { + "name": "label", + "description": "The label to continue to - will supersede 'priority' if both are provided.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Channel not found" + }, + { + "code": 409, + "reason": "Channel not in a Stasis application" + }, + { + "code": 412, + "reason": "Channel in invalid state" + } + ] + } + ] + }, + { + "path": "/channels/{channelId}/move", + "description": "Move the channel from one Stasis application to another.", + "operations": [ + { + "httpMethod": "POST", + "summary": "Move the channel from one Stasis application to another.", + "nickname": "move", + "responseClass": "void", + "parameters": [ + { + "name": "channelId", + "description": "Channel's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "app", + "description": "The channel will be passed to this Stasis application.", + "paramType": "query", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "appArgs", + "description": "The application arguments to pass to the Stasis application provided by 'app'.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": "404", + "reason": "Channel not found" + }, + { + "code": "409", + "reason": "Channel not in a Stasis application" + } + ] + } + ] + }, + { + "path": "/channels/{channelId}/redirect", + "description": "Inform the channel that it should redirect itself to a different location. Note that this will almost certainly cause the channel to exit the application.", + "operations": [ + { + "httpMethod": "POST", + "summary": "Redirect the channel to a different location.", + "nickname": "redirect", + "responseClass": "void", + "parameters": [ + { + "name": "channelId", + "description": "Channel's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "endpoint", + "description": "The endpoint to redirect the channel to", + "paramType": "query", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 400, + "reason": "Endpoint parameter not provided" + }, + { + "code": 404, + "reason": "Channel or endpoint not found" + }, + { + "code": 409, + "reason": "Channel not in a Stasis application" + }, + { + "code": 422, + "reason": "Endpoint is not the same type as the channel" + }, + { + "code": 412, + "reason": "Channel in invalid state" + } + ] + } + ] + }, + { + "path": "/channels/{channelId}/answer", + "description": "Answer a channel", + "operations": [ + { + "httpMethod": "POST", + "summary": "Answer a channel.", + "nickname": "answer", + "responseClass": "void", + "parameters": [ + { + "name": "channelId", + "description": "Channel's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Channel not found" + }, + { + "code": 409, + "reason": "Channel not in a Stasis application" + }, + { + "code": 412, + "reason": "Channel in invalid state" + } + ] + } + ] + }, + { + "path": "/channels/{channelId}/ring", + "description": "Send a ringing indication to a channel", + "operations": [ + { + "httpMethod": "POST", + "summary": "Indicate ringing to a channel.", + "nickname": "ring", + "responseClass": "void", + "parameters": [ + { + "name": "channelId", + "description": "Channel's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Channel not found" + }, + { + "code": 409, + "reason": "Channel not in a Stasis application" + }, + { + "code": 412, + "reason": "Channel in invalid state" + } + ] + }, + { + "httpMethod": "DELETE", + "summary": "Stop ringing indication on a channel if locally generated.", + "nickname": "ringStop", + "responseClass": "void", + "parameters": [ + { + "name": "channelId", + "description": "Channel's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Channel not found" + }, + { + "code": 409, + "reason": "Channel not in a Stasis application" + }, + { + "code": 412, + "reason": "Channel in invalid state" + } + ] + } + ] + }, + { + "path": "/channels/{channelId}/dtmf", + "description": "Send DTMF to a channel", + "operations": [ + { + "httpMethod": "POST", + "summary": "Send provided DTMF to a given channel.", + "nickname": "sendDTMF", + "responseClass": "void", + "parameters": [ + { + "name": "channelId", + "description": "Channel's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "dtmf", + "description": "DTMF To send.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "before", + "description": "Amount of time to wait before DTMF digits (specified in milliseconds) start.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "int", + "defaultValue": 0 + }, + { + "name": "between", + "description": "Amount of time in between DTMF digits (specified in milliseconds).", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "int", + "defaultValue": 100 + }, + { + "name": "duration", + "description": "Length of each DTMF digit (specified in milliseconds).", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "int", + "defaultValue": 100 + }, + { + "name": "after", + "description": "Amount of time to wait after DTMF digits (specified in milliseconds) end.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "int", + "defaultValue": 0 + } + ], + "errorResponses": [ + { + "code": 400, + "reason": "DTMF is required" + }, + { + "code": 404, + "reason": "Channel not found" + }, + { + "code": 409, + "reason": "Channel not in a Stasis application" + }, + { + "code": 412, + "reason": "Channel in invalid state" + } + ] + } + ] + }, + { + "path": "/channels/{channelId}/mute", + "description": "Mute a channel", + "operations": [ + { + "httpMethod": "POST", + "summary": "Mute a channel.", + "nickname": "mute", + "responseClass": "void", + "parameters": [ + { + "name": "channelId", + "description": "Channel's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "direction", + "description": "Direction in which to mute audio", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string", + "defaultValue": "both", + "allowableValues": { + "valueType": "LIST", + "values": [ + "both", + "in", + "out" + ] + } + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Channel not found" + }, + { + "code": 409, + "reason": "Channel not in a Stasis application" + }, + { + "code": 412, + "reason": "Channel in invalid state" + } + ] + }, + { + "httpMethod": "DELETE", + "summary": "Unmute a channel.", + "nickname": "unmute", + "responseClass": "void", + "parameters": [ + { + "name": "channelId", + "description": "Channel's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "direction", + "description": "Direction in which to unmute audio", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string", + "defaultValue": "both", + "allowableValues": { + "valueType": "LIST", + "values": [ + "both", + "in", + "out" + ] + } + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Channel not found" + }, + { + "code": 409, + "reason": "Channel not in a Stasis application" + }, + { + "code": 412, + "reason": "Channel in invalid state" + } + ] + } + ] + }, + { + "path": "/channels/{channelId}/hold", + "description": "Put a channel on hold", + "operations": [ + { + "httpMethod": "POST", + "summary": "Hold a channel.", + "nickname": "hold", + "responseClass": "void", + "parameters": [ + { + "name": "channelId", + "description": "Channel's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Channel not found" + }, + { + "code": 409, + "reason": "Channel not in a Stasis application" + }, + { + "code": 412, + "reason": "Channel in invalid state" + } + ] + }, + { + "httpMethod": "DELETE", + "summary": "Remove a channel from hold.", + "nickname": "unhold", + "responseClass": "void", + "parameters": [ + { + "name": "channelId", + "description": "Channel's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Channel not found" + }, + { + "code": 409, + "reason": "Channel not in a Stasis application" + }, + { + "code": 412, + "reason": "Channel in invalid state" + } + ] + } + ] + }, + { + "path": "/channels/{channelId}/moh", + "description": "Play music on hold to a channel", + "operations": [ + { + "httpMethod": "POST", + "summary": "Play music on hold to a channel.", + "notes": "Using media operations such as /play on a channel playing MOH in this manner will suspend MOH without resuming automatically. If continuing music on hold is desired, the stasis application must reinitiate music on hold.", + "nickname": "startMoh", + "responseClass": "void", + "parameters": [ + { + "name": "channelId", + "description": "Channel's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "mohClass", + "description": "Music on hold class to use", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Channel not found" + }, + { + "code": 409, + "reason": "Channel not in a Stasis application" + }, + { + "code": 412, + "reason": "Channel in invalid state" + } + ] + }, + { + "httpMethod": "DELETE", + "summary": "Stop playing music on hold to a channel.", + "nickname": "stopMoh", + "responseClass": "void", + "parameters": [ + { + "name": "channelId", + "description": "Channel's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Channel not found" + }, + { + "code": 409, + "reason": "Channel not in a Stasis application" + }, + { + "code": 412, + "reason": "Channel in invalid state" + } + ] + } + ] + }, + { + "path": "/channels/{channelId}/silence", + "description": "Play silence to a channel", + "operations": [ + { + "httpMethod": "POST", + "summary": "Play silence to a channel.", + "notes": "Using media operations such as /play on a channel playing silence in this manner will suspend silence without resuming automatically.", + "nickname": "startSilence", + "responseClass": "void", + "parameters": [ + { + "name": "channelId", + "description": "Channel's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Channel not found" + }, + { + "code": 409, + "reason": "Channel not in a Stasis application" + }, + { + "code": 412, + "reason": "Channel in invalid state" + } + ] + }, + { + "httpMethod": "DELETE", + "summary": "Stop playing silence to a channel.", + "nickname": "stopSilence", + "responseClass": "void", + "parameters": [ + { + "name": "channelId", + "description": "Channel's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Channel not found" + }, + { + "code": 409, + "reason": "Channel not in a Stasis application" + }, + { + "code": 412, + "reason": "Channel in invalid state" + } + ] + } + ] + }, + { + "path": "/channels/{channelId}/play", + "description": "Play media to a channel", + "operations": [ + { + "httpMethod": "POST", + "summary": "Start playback of media.", + "notes": "The media URI may be any of a number of URI's. Currently sound:, recording:, number:, digits:, characters:, and tone: URI's are supported. This operation creates a playback resource that can be used to control the playback of media (pause, rewind, fast forward, etc.)", + "nickname": "play", + "responseClass": "Playback", + "parameters": [ + { + "name": "channelId", + "description": "Channel's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "media", + "description": "Media URIs to play.", + "paramType": "query", + "required": true, + "allowMultiple": true, + "dataType": "string" + }, + { + "name": "lang", + "description": "For sounds, selects language for sound.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "offsetms", + "description": "Number of milliseconds to skip before playing. Only applies to the first URI if multiple media URIs are specified.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "int" + }, + { + "name": "skipms", + "description": "Number of milliseconds to skip for forward/reverse operations.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "int", + "defaultValue": 3000 + }, + { + "name": "playbackId", + "description": "Playback ID.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Channel not found" + }, + { + "code": 409, + "reason": "Channel not in a Stasis application" + }, + { + "code": 412, + "reason": "Channel in invalid state" + } + ] + } + ] + }, + { + "path": "/channels/{channelId}/play/{playbackId}", + "description": "Play media to a channel", + "operations": [ + { + "httpMethod": "POST", + "summary": "Start playback of media and specify the playbackId.", + "notes": "The media URI may be any of a number of URI's. Currently sound:, recording:, number:, digits:, characters:, and tone: URI's are supported. This operation creates a playback resource that can be used to control the playback of media (pause, rewind, fast forward, etc.)", + "nickname": "playWithId", + "responseClass": "Playback", + "parameters": [ + { + "name": "channelId", + "description": "Channel's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "playbackId", + "description": "Playback ID.", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "media", + "description": "Media URIs to play.", + "paramType": "query", + "required": true, + "allowMultiple": true, + "dataType": "string" + }, + { + "name": "lang", + "description": "For sounds, selects language for sound.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "offsetms", + "description": "Number of milliseconds to skip before playing. Only applies to the first URI if multiple media URIs are specified.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "int" + }, + { + "name": "skipms", + "description": "Number of milliseconds to skip for forward/reverse operations.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "int", + "defaultValue": 3000 + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Channel not found" + }, + { + "code": 409, + "reason": "Channel not in a Stasis application" + }, + { + "code": 412, + "reason": "Channel in invalid state" + } + ] + } + ] + }, + { + "path": "/channels/{channelId}/record", + "description": "Record audio from a channel", + "operations": [ + { + "httpMethod": "POST", + "summary": "Start a recording.", + "notes": "Record audio from a channel. Note that this will not capture audio sent to the channel. The bridge itself has a record feature if that's what you want.", + "nickname": "record", + "responseClass": "LiveRecording", + "parameters": [ + { + "name": "channelId", + "description": "Channel's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "name", + "description": "Recording's filename", + "paramType": "query", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "format", + "description": "Format to encode audio in", + "paramType": "query", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "maxDurationSeconds", + "description": "Maximum duration of the recording, in seconds. 0 for no limit", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "int", + "defaultValue": 0, + "allowableValues": { + "valueType": "RANGE", + "min": 0 + } + }, + { + "name": "maxSilenceSeconds", + "description": "Maximum duration of silence, in seconds. 0 for no limit", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "int", + "defaultValue": 0, + "allowableValues": { + "valueType": "RANGE", + "min": 0 + } + }, + { + "name": "ifExists", + "description": "Action to take if a recording with the same name already exists.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string", + "defaultValue": "fail", + "allowableValues": { + "valueType": "LIST", + "values": [ + "fail", + "overwrite", + "append" + ] + } + }, + { + "name": "beep", + "description": "Play beep when recording begins", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "boolean", + "defaultValue": false + }, + { + "name": "terminateOn", + "description": "DTMF input to terminate recording", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string", + "defaultValue": "none", + "allowableValues": { + "valueType": "LIST", + "values": [ + "none", + "any", + "*", + "#" + ] + } + } + ], + "errorResponses": [ + { + "code": 400, + "reason": "Invalid parameters" + }, + { + "code": 404, + "reason": "Channel not found" + }, + { + "code": 409, + "reason": "Channel is not in a Stasis application; the channel is currently bridged with other hcannels; A recording with the same name already exists on the system and can not be overwritten because it is in progress or ifExists=fail" + }, + { + "code": 422, + "reason": "The format specified is unknown on this system" + } + ] + } + ] + }, + { + "path": "/channels/{channelId}/variable", + "description": "Variables on a channel", + "operations": [ + { + "httpMethod": "GET", + "summary": "Get the value of a channel variable or function.", + "nickname": "getChannelVar", + "responseClass": "Variable", + "parameters": [ + { + "name": "channelId", + "description": "Channel's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "variable", + "description": "The channel variable or function to get", + "paramType": "query", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 400, + "reason": "Missing variable parameter." + }, + { + "code": 404, + "reason": "Channel or variable not found" + }, + { + "code": 409, + "reason": "Channel not in a Stasis application" + } + ] + }, + { + "httpMethod": "POST", + "summary": "Set the value of a channel variable or function.", + "nickname": "setChannelVar", + "responseClass": "void", + "parameters": [ + { + "name": "channelId", + "description": "Channel's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "variable", + "description": "The channel variable or function to set", + "paramType": "query", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "value", + "description": "The value to set the variable to", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 400, + "reason": "Missing variable parameter." + }, + { + "code": 404, + "reason": "Channel not found" + }, + { + "code": 409, + "reason": "Channel not in a Stasis application" + } + ] + } + ] + }, + { + "path": "/channels/{channelId}/snoop", + "description": "Snoop (spy/whisper) on a channel", + "operations": [ + { + "httpMethod": "POST", + "summary": "Start snooping.", + "notes": "Snoop (spy/whisper) on a specific channel.", + "nickname": "snoopChannel", + "responseClass": "Channel", + "parameters": [ + { + "name": "channelId", + "description": "Channel's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "spy", + "description": "Direction of audio to spy on", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string", + "defaultValue": "none", + "allowableValues": { + "valueType": "LIST", + "values": [ + "none", + "both", + "out", + "in" + ] + } + }, + { + "name": "whisper", + "description": "Direction of audio to whisper into", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string", + "defaultValue": "none", + "allowableValues": { + "valueType": "LIST", + "values": [ + "none", + "both", + "out", + "in" + ] + } + }, + { + "name": "app", + "description": "Application the snooping channel is placed into", + "paramType": "query", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "appArgs", + "description": "The application arguments to pass to the Stasis application", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "snoopId", + "description": "Unique ID to assign to snooping channel", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 400, + "reason": "Invalid parameters" + }, + { + "code": 404, + "reason": "Channel not found" + } + ] + } + ] + }, + { + "path": "/channels/{channelId}/snoop/{snoopId}", + "description": "Snoop (spy/whisper) on a channel", + "operations": [ + { + "httpMethod": "POST", + "summary": "Start snooping.", + "notes": "Snoop (spy/whisper) on a specific channel.", + "nickname": "snoopChannelWithId", + "responseClass": "Channel", + "parameters": [ + { + "name": "channelId", + "description": "Channel's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "snoopId", + "description": "Unique ID to assign to snooping channel", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "spy", + "description": "Direction of audio to spy on", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string", + "defaultValue": "none", + "allowableValues": { + "valueType": "LIST", + "values": [ + "none", + "both", + "out", + "in" + ] + } + }, + { + "name": "whisper", + "description": "Direction of audio to whisper into", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string", + "defaultValue": "none", + "allowableValues": { + "valueType": "LIST", + "values": [ + "none", + "both", + "out", + "in" + ] + } + }, + { + "name": "app", + "description": "Application the snooping channel is placed into", + "paramType": "query", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "appArgs", + "description": "The application arguments to pass to the Stasis application", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 400, + "reason": "Invalid parameters" + }, + { + "code": 404, + "reason": "Channel not found" + } + ] + } + ] + }, + { + "path": "/channels/{channelId}/dial", + "description": "Dial a channel", + "operations": [ + { + "httpMethod": "POST", + "summary": "Dial a created channel.", + "nickname": "dial", + "responseClass": "void", + "parameters": [ + { + "name": "channelId", + "description": "Channel's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "caller", + "description": "Channel ID of caller", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "timeout", + "description": "Dial timeout", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "int", + "defaultValue": 0, + "allowableValues": { + "valueType": "RANGE", + "min": 0 + } + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Channel cannot be found." + }, + { + "code": 409, + "reason": "Channel cannot be dialed." + } + ] + } + ] + }, + { + "path": "/channels/{channelId}/rtp_statistics", + "description": "Get RTP statistics information for RTP on a channel", + "operations": [ + { + "httpMethod": "GET", + "summary": "RTP stats on a channel.", + "nickname": "rtpstatistics", + "responseClass": "RTPstat", + "parameters": [ + { + "name": "channelId", + "description": "Channel's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Channel cannot be found." + } + ] + } + ] + }, + { + "path": "/channels/externalMedia", + "description": "Create a channel to an External Media source/sink.", + "operations": [ + { + "httpMethod": "POST", + "summary": "Start an External Media session.", + "notes": "Create a channel to an External Media source/sink.", + "nickname": "externalMedia", + "responseClass": "Channel", + "parameters": [ + { + "name": "channelId", + "description": "The unique id to assign the channel on creation.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "app", + "description": "Stasis Application to place channel into", + "paramType": "query", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "variables", + "description": "The \"variables\" key in the body object holds variable key/value pairs to set on the channel on creation. Other keys in the body object are interpreted as query parameters. Ex. { \"endpoint\": \"SIP/Alice\", \"variables\": { \"CALLERID(name)\": \"Alice\" } }", + "paramType": "body", + "required": false, + "dataType": "containers", + "allowMultiple": false + }, + { + "name": "external_host", + "description": "Hostname/ip:port of external host", + "paramType": "query", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "encapsulation", + "description": "Payload encapsulation protocol", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string", + "defaultValue": "rtp", + "allowableValues": { + "valueType": "LIST", + "values": [ + "rtp", + "audiosocket" + ] + } + }, + { + "name": "transport", + "description": "Transport protocol", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string", + "defaultValue": "udp", + "allowableValues": { + "valueType": "LIST", + "values": [ + "udp", + "tcp" + ] + } + }, + { + "name": "connection_type", + "description": "Connection type (client/server)", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string", + "defaultValue": "client", + "allowableValues": { + "valueType": "LIST", + "values": [ + "client" + ] + } + }, + { + "name": "format", + "description": "Format to encode audio in", + "paramType": "query", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "direction", + "description": "External media direction", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string", + "defaultValue": "both", + "allowableValues": { + "valueType": "LIST", + "values": [ + "both" + ] + } + }, + { + "name": "data", + "description": "An arbitrary data field", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 400, + "reason": "Invalid parameters" + }, + { + "code": 409, + "reason": "Channel is not in a Stasis application; Channel is already bridged" + } + ] + } + ] + } + ], + "models": { + "Dialed": { + "id": "Dialed", + "description": "Dialed channel information.", + "properties": {} + }, + "DialplanCEP": { + "id": "DialplanCEP", + "description": "Dialplan location (context/extension/priority)", + "properties": { + "context": { + "required": true, + "type": "string", + "description": "Context in the dialplan" + }, + "exten": { + "required": true, + "type": "string", + "description": "Extension in the dialplan" + }, + "priority": { + "required": true, + "type": "long", + "description": "Priority in the dialplan" + }, + "app_name": { + "required": true, + "type": "string", + "description": "Name of current dialplan application" + }, + "app_data": { + "required": true, + "type": "string", + "description": "Parameter of current dialplan application" + } + } + }, + "CallerID": { + "id": "CallerID", + "description": "Caller identification", + "properties": { + "name": { + "required": true, + "type": "string" + }, + "number": { + "required": true, + "type": "string" + } + } + }, + "RTPstat": { + "id": "RTPstat", + "description": "A statistics of a RTP.", + "properties": { + "txcount": { + "required": true, + "type": "int", + "description": "Number of packets transmitted." + }, + "rxcount": { + "required": true, + "type": "int", + "description": "Number of packets received." + }, + "txjitter": { + "required": false, + "type": "double", + "description": "Jitter on transmitted packets." + }, + "rxjitter": { + "required": false, + "type": "double", + "description": "Jitter on received packets." + }, + "remote_maxjitter": { + "required": false, + "type": "double", + "description": "Maximum jitter on remote side." + }, + "remote_minjitter": { + "required": false, + "type": "double", + "description": "Minimum jitter on remote side." + }, + "remote_normdevjitter": { + "required": false, + "type": "double", + "description": "Average jitter on remote side." + }, + "remote_stdevjitter": { + "required": false, + "type": "double", + "description": "Standard deviation jitter on remote side." + }, + "local_maxjitter": { + "required": false, + "type": "double", + "description": "Maximum jitter on local side." + }, + "local_minjitter": { + "required": false, + "type": "double", + "description": "Minimum jitter on local side." + }, + "local_normdevjitter": { + "required": false, + "type": "double", + "description": "Average jitter on local side." + }, + "local_stdevjitter": { + "required": false, + "type": "double", + "description": "Standard deviation jitter on local side." + }, + "txploss": { + "required": true, + "type": "int", + "description": "Number of transmitted packets lost." + }, + "rxploss": { + "required": true, + "type": "int", + "description": "Number of received packets lost." + }, + "remote_maxrxploss": { + "required": false, + "type": "double", + "description": "Maximum number of packets lost on remote side." + }, + "remote_minrxploss": { + "required": false, + "type": "double", + "description": "Minimum number of packets lost on remote side." + }, + "remote_normdevrxploss": { + "required": false, + "type": "double", + "description": "Average number of packets lost on remote side." + }, + "remote_stdevrxploss": { + "required": false, + "type": "double", + "description": "Standard deviation packets lost on remote side." + }, + "local_maxrxploss": { + "required": false, + "type": "double", + "description": "Maximum number of packets lost on local side." + }, + "local_minrxploss": { + "required": false, + "type": "double", + "description": "Minimum number of packets lost on local side." + }, + "local_normdevrxploss": { + "required": false, + "type": "double", + "description": "Average number of packets lost on local side." + }, + "local_stdevrxploss": { + "required": false, + "type": "double", + "description": "Standard deviation packets lost on local side." + }, + "rtt": { + "required": false, + "type": "double", + "description": "Total round trip time." + }, + "maxrtt": { + "required": false, + "type": "double", + "description": "Maximum round trip time." + }, + "minrtt": { + "required": false, + "type": "double", + "description": "Minimum round trip time." + }, + "normdevrtt": { + "required": false, + "type": "double", + "description": "Average round trip time." + }, + "stdevrtt": { + "required": false, + "type": "double", + "description": "Standard deviation round trip time." + }, + "local_ssrc": { + "required": true, + "type": "int", + "description": "Our SSRC." + }, + "remote_ssrc": { + "required": true, + "type": "int", + "description": "Their SSRC." + }, + "txoctetcount": { + "required": true, + "type": "int", + "description": "Number of octets transmitted." + }, + "rxoctetcount": { + "required": true, + "type": "int", + "description": "Number of octets received." + }, + "channel_uniqueid": { + "required": true, + "type": "string", + "description": "The Asterisk channel's unique ID that owns this instance." + } + } + }, + "Channel": { + "id": "Channel", + "description": "A specific communication connection between Asterisk and an Endpoint.", + "properties": { + "id": { + "required": true, + "type": "string", + "description": "Unique identifier of the channel.\n\nThis is the same as the Uniqueid field in AMI." + }, + "name": { + "required": true, + "type": "string", + "description": "Name of the channel (i.e. SIP/foo-0000a7e3)" + }, + "state": { + "required": true, + "type": "string", + "allowableValues": { + "valueType": "LIST", + "values": [ + "Down", + "Rsrved", + "OffHook", + "Dialing", + "Ring", + "Ringing", + "Up", + "Busy", + "Dialing Offhook", + "Pre-ring", + "Unknown" + ] + } + }, + "caller": { + "required": true, + "type": "CallerID" + }, + "connected": { + "required": true, + "type": "CallerID" + }, + "accountcode": { + "required": true, + "type": "string" + }, + "dialplan": { + "required": true, + "type": "DialplanCEP", + "description": "Current location in the dialplan" + }, + "creationtime": { + "required": true, + "type": "Date", + "description": "Timestamp when channel was created" + }, + "language": { + "required": true, + "type": "string", + "description": "The default spoken language" + }, + "channelvars": { + "required": false, + "type": "object", + "description": "Channel variables" + } + } + } + } +} diff --git a/codegen/src/main/resources/codegen-data/ari_8_0_0/deviceStates.json b/codegen/src/main/resources/codegen-data/ari_8_0_0/deviceStates.json new file mode 100644 index 00000000..bd389355 --- /dev/null +++ b/codegen/src/main/resources/codegen-data/ari_8_0_0/deviceStates.json @@ -0,0 +1,154 @@ +{ + "_copyright": "Copyright (C) 2012 - 2013, Digium, Inc.", + "_author": "Kevin Harwell ", + "_svn_revision": "$Revision$", + "apiVersion": "2.0.0", + "swaggerVersion": "1.1", + "basePath": "http://localhost:8088/ari", + "resourcePath": "/api-docs/deviceStates.{format}", + "requiresModules": [ + "res_stasis_device_state" + ], + "apis": [ + { + "path": "/deviceStates", + "description": "Device states", + "operations": [ + { + "httpMethod": "GET", + "summary": "List all ARI controlled device states.", + "nickname": "list", + "responseClass": "List[DeviceState]" + } + ] + }, + { + "path": "/deviceStates/{deviceName}", + "description": "Device state", + "operations": [ + { + "httpMethod": "GET", + "summary": "Retrieve the current state of a device.", + "nickname": "get", + "responseClass": "DeviceState", + "parameters": [ + { + "name": "deviceName", + "description": "Name of the device", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ] + }, + { + "httpMethod": "PUT", + "summary": "Change the state of a device controlled by ARI. (Note - implicitly creates the device state).", + "nickname": "update", + "responseClass": "void", + "parameters": [ + { + "name": "deviceName", + "description": "Name of the device", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "deviceState", + "description": "Device state value", + "paramType": "query", + "required": true, + "allowMultiple": false, + "dataType": "string", + "allowableValues": { + "valueType": "LIST", + "values": [ + "NOT_INUSE", + "INUSE", + "BUSY", + "INVALID", + "UNAVAILABLE", + "RINGING", + "RINGINUSE", + "ONHOLD" + ] + } + + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Device name is missing" + }, + { + "code": 409, + "reason": "Uncontrolled device specified" + } + ] + }, + { + "httpMethod": "DELETE", + "summary": "Destroy a device-state controlled by ARI.", + "nickname": "delete", + "responseClass": "void", + "parameters": [ + { + "name": "deviceName", + "description": "Name of the device", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Device name is missing" + }, + { + "code": 409, + "reason": "Uncontrolled device specified" + } + ] + } + ] + } + ], + "models": { + "DeviceState": { + "id": "DeviceState", + "description": "Represents the state of a device.", + "properties": { + "name": { + "type": "string", + "description": "Name of the device.", + "required": true + }, + "state": { + "type": "string", + "description": "Device's state", + "required": true, + "allowableValues": { + "valueType": "LIST", + "values": [ + "UNKNOWN", + "NOT_INUSE", + "INUSE", + "BUSY", + "INVALID", + "UNAVAILABLE", + "RINGING", + "RINGINUSE", + "ONHOLD" + ] + } + } + } + } + } +} diff --git a/codegen/src/main/resources/codegen-data/ari_8_0_0/endpoints.json b/codegen/src/main/resources/codegen-data/ari_8_0_0/endpoints.json new file mode 100644 index 00000000..1f77d370 --- /dev/null +++ b/codegen/src/main/resources/codegen-data/ari_8_0_0/endpoints.json @@ -0,0 +1,263 @@ +{ + "_copyright": "Copyright (C) 2012 - 2013, Digium, Inc.", + "_author": "David M. Lee, II ", + "_svn_revision": "$Revision$", + "apiVersion": "2.0.0", + "swaggerVersion": "1.1", + "basePath": "http://localhost:8088/ari", + "resourcePath": "/api-docs/endpoints.{format}", + "apis": [ + { + "path": "/endpoints", + "description": "Asterisk endpoints", + "operations": [ + { + "httpMethod": "GET", + "summary": "List all endpoints.", + "nickname": "list", + "responseClass": "List[Endpoint]" + } + ] + }, + { + "path": "/endpoints/sendMessage", + "description": "Send a message to some technology URI or endpoint.", + "operations": [ + { + "httpMethod": "PUT", + "summary": "Send a message to some technology URI or endpoint.", + "nickname": "sendMessage", + "responseClass": "void", + "parameters": [ + { + "name": "to", + "description": "The endpoint resource or technology specific URI to send the message to. Valid resources are sip, pjsip, and xmpp.", + "paramType": "query", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "from", + "description": "The endpoint resource or technology specific identity to send this message from. Valid resources are sip, pjsip, and xmpp.", + "paramType": "query", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "body", + "description": "The body of the message", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "variables", + "descriptioni": "The \"variables\" key in the body object holds technology specific key/value pairs to append to the message. These can be interpreted and used by the various resource types; for example, pjsip and sip resource types will add the key/value pairs as SIP headers,", + "paramType": "body", + "required": false, + "dataType": "containers", + "allowMultiple": false + } + ], + "errorResponses": [ + { + "code": 400, + "reason": "Invalid parameters for sending a message." + }, + { + "code": 404, + "reason": "Endpoint not found" + } + ] + } + ] + }, + { + "path": "/endpoints/{tech}", + "description": "Asterisk endpoints", + "operations": [ + { + "httpMethod": "GET", + "summary": "List available endoints for a given endpoint technology.", + "nickname": "listByTech", + "responseClass": "List[Endpoint]", + "parameters": [ + { + "name": "tech", + "description": "Technology of the endpoints (sip,iax2,...)", + "paramType": "path", + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Endpoints not found" + } + ] + } + ] + }, + { + "path": "/endpoints/{tech}/{resource}", + "description": "Single endpoint", + "operations": [ + { + "httpMethod": "GET", + "summary": "Details for an endpoint.", + "nickname": "get", + "responseClass": "Endpoint", + "parameters": [ + { + "name": "tech", + "description": "Technology of the endpoint", + "paramType": "path", + "dataType": "string" + }, + { + "name": "resource", + "description": "ID of the endpoint", + "paramType": "path", + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 400, + "reason": "Invalid parameters for sending a message." + }, + { + "code": 404, + "reason": "Endpoints not found" + } + ] + } + ] + }, + { + "path": "/endpoints/{tech}/{resource}/sendMessage", + "description": "Send a message to some endpoint in a technology.", + "operations": [ + { + "httpMethod": "PUT", + "summary": "Send a message to some endpoint in a technology.", + "nickname": "sendMessageToEndpoint", + "responseClass": "void", + "parameters": [ + { + "name": "tech", + "description": "Technology of the endpoint", + "paramType": "path", + "dataType": "string" + }, + { + "name": "resource", + "description": "ID of the endpoint", + "paramType": "path", + "dataType": "string" + }, + { + "name": "from", + "description": "The endpoint resource or technology specific identity to send this message from. Valid resources are sip, pjsip, and xmpp.", + "paramType": "query", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "body", + "description": "The body of the message", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "variables", + "descriptioni": "The \"variables\" key in the body object holds technology specific key/value pairs to append to the message. These can be interpreted and used by the various resource types; for example, pjsip and sip resource types will add the key/value pairs as SIP headers,", + "paramType": "body", + "required": false, + "dataType": "containers", + "allowMultiple": false + } + ], + "errorResponses": [ + { + "code": 400, + "reason": "Invalid parameters for sending a message." + }, + { + "code": 404, + "reason": "Endpoint not found" + } + ] + } + ] + } + ], + "models": { + "Endpoint": { + "id": "Endpoint", + "description": "An external device that may offer/accept calls to/from Asterisk.\n\nUnlike most resources, which have a single unique identifier, an endpoint is uniquely identified by the technology/resource pair.", + "properties": { + "technology": { + "type": "string", + "description": "Technology of the endpoint", + "required": true + }, + "resource": { + "type": "string", + "description": "Identifier of the endpoint, specific to the given technology.", + "required": true + }, + "state": { + "type": "string", + "description": "Endpoint's state", + "required": false, + "allowableValues": { + "valueType": "LIST", + "values": [ + "unknown", + "offline", + "online" + ] + } + }, + "channel_ids": { + "type": "List[string]", + "description": "Id's of channels associated with this endpoint", + "required": true + } + } + }, + "TextMessage": { + "id": "TextMessage", + "description": "A text message.", + "properties": { + "from": { + "type": "string", + "description": "A technology specific URI specifying the source of the message. For sip and pjsip technologies, any SIP URI can be specified. For xmpp, the URI must correspond to the client connection being used to send the message.", + "required": true + }, + "to": { + "type": "string", + "description": "A technology specific URI specifying the destination of the message. Valid technologies include sip, pjsip, and xmp. The destination of a message should be an endpoint.", + "required": true + }, + "body": { + "type": "string", + "description": "The text of the message.", + "required": true + }, + "variables": { + "type": "object", + "description": "Technology specific key/value pairs (JSON object) associated with the message.", + "required": false + } + } + } + } +} diff --git a/codegen/src/main/resources/codegen-data/ari_8_0_0/events.json b/codegen/src/main/resources/codegen-data/ari_8_0_0/events.json new file mode 100644 index 00000000..c9822f6c --- /dev/null +++ b/codegen/src/main/resources/codegen-data/ari_8_0_0/events.json @@ -0,0 +1,918 @@ +{ + "_copyright": "Copyright (C) 2012 - 2013, Digium, Inc.", + "_author": "David M. Lee, II ", + "_svn_revision": "$Revision$", + "apiVersion": "2.0.0", + "swaggerVersion": "1.2", + "basePath": "http://localhost:8088/ari", + "resourcePath": "/api-docs/events.{format}", + "requiresModules": [ + "res_http_websocket" + ], + "apis": [ + { + "path": "/events", + "description": "Events from Asterisk to applications", + "operations": [ + { + "httpMethod": "GET", + "upgrade": "websocket", + "websocketProtocol": "ari", + "summary": "WebSocket connection for events.", + "nickname": "eventWebsocket", + "responseClass": "Message", + "parameters": [ + { + "name": "app", + "description": "Applications to subscribe to.", + "paramType": "query", + "required": true, + "allowMultiple": true, + "dataType": "string" + }, + { + "name": "subscribeAll", + "description": "Subscribe to all Asterisk events. If provided, the applications listed will be subscribed to all events, effectively disabling the application specific subscriptions. Default is 'false'.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "boolean" + } + ] + } + ] + }, + { + "path": "/events/user/{eventName}", + "description": "Stasis application user events", + "operations": [ + { + "httpMethod": "POST", + "summary": "Generate a user event.", + "nickname": "userEvent", + "responseClass": "void", + "parameters": [ + { + "name": "eventName", + "description": "Event name", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "application", + "description": "The name of the application that will receive this event", + "paramType": "query", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "source", + "description": "URI for event source (channel:{channelId}, bridge:{bridgeId}, endpoint:{tech}/{resource}, deviceState:{deviceName}", + "paramType": "query", + "required": false, + "allowMultiple": true, + "dataType": "string" + }, + { + "name": "variables", + "description": "The \"variables\" key in the body object holds custom key/value pairs to add to the user event. Ex. { \"variables\": { \"key\": \"value\" } }", + "paramType": "body", + "required": false, + "allowMultiple": false, + "dataType": "containers" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Application does not exist." + }, + { + "code": 422, + "reason": "Event source not found." + }, + { + "code": 400, + "reason": "Invalid even tsource URI or userevent data." + } + ] + } + ] + } + ], + "models": { + "Message": { + "id": "Message", + "description": "Base type for errors and events", + "discriminator": "type", + "properties": { + "type": { + "type": "string", + "required": true, + "description": "Indicates the type of this message." + }, + "asterisk_id": { + "type": "string", + "required": false, + "description": "The unique ID for the Asterisk instance that raised this event." + } + }, + "subTypes": [ + "MissingParams", + "Event" + ] + }, + "MissingParams": { + "id": "MissingParams", + "description": "Error event sent when required params are missing.", + "properties": { + "params": { + "required": true, + "type": "List[string]", + "description": "A list of the missing parameters" + } + } + }, + "Event": { + "id": "Event", + "description": "Base type for asynchronous events from Asterisk.", + "properties": { + "application": { + "type": "string", + "description": "Name of the application receiving the event.", + "required": true + }, + "timestamp": { + "type": "Date", + "description": "Time at which this event was created.", + "required": true + } + }, + "subTypes": [ + "DeviceStateChanged", + "PlaybackStarted", + "PlaybackContinuing", + "PlaybackFinished", + "RecordingStarted", + "RecordingFinished", + "RecordingFailed", + "ApplicationMoveFailed", + "ApplicationReplaced", + "BridgeCreated", + "BridgeDestroyed", + "BridgeMerged", + "BridgeBlindTransfer", + "BridgeAttendedTransfer", + "BridgeVideoSourceChanged", + "ChannelCreated", + "ChannelDestroyed", + "ChannelEnteredBridge", + "ChannelLeftBridge", + "ChannelStateChange", + "ChannelDtmfReceived", + "ChannelDialplan", + "ChannelCallerId", + "ChannelUserevent", + "ChannelHangupRequest", + "ChannelVarset", + "ChannelTalkingStarted", + "ChannelTalkingFinished", + "ChannelHold", + "ChannelUnhold", + "ContactStatusChange", + "EndpointStateChange", + "Dial", + "StasisEnd", + "StasisStart", + "TextMessageReceived", + "ChannelConnectedLine", + "PeerStatusChange" + ] + }, + "ContactInfo": { + "id": "ContactInfo", + "description": "Detailed information about a contact on an endpoint.", + "properties": { + "uri": { + "type": "string", + "description": "The location of the contact.", + "required": true + }, + "contact_status": { + "type": "string", + "description": "The current status of the contact.", + "required": true, + "allowableValues": { + "valueType": "LIST", + "values": [ + "Unreachable", + "Reachable", + "Unknown", + "NonQualified", + "Removed" + ] + } + }, + "aor": { + "type": "string", + "description": "The Address of Record this contact belongs to.", + "required": true + }, + "roundtrip_usec": { + "type": "string", + "description": "Current round trip time, in microseconds, for the contact.", + "required": false + } + } + }, + "Peer": { + "id": "Peer", + "description": "Detailed information about a remote peer that communicates with Asterisk.", + "properties": { + "peer_status": { + "type": "string", + "description": "The current state of the peer. Note that the values of the status are dependent on the underlying peer technology.", + "required": true + }, + "cause": { + "type": "string", + "description": "An optional reason associated with the change in peer_status.", + "required": false + }, + "address": { + "type": "string", + "description": "The IP address of the peer.", + "required": false + }, + "port": { + "type": "string", + "description": "The port of the peer.", + "required": false + }, + "time": { + "type": "string", + "description": "The last known time the peer was contacted.", + "required": false + } + } + }, + "DeviceStateChanged": { + "id": "DeviceStateChanged", + "description": "Notification that a device state has changed.", + "properties": { + "device_state": { + "type": "DeviceState", + "description": "Device state object", + "required": true + } + } + }, + "PlaybackStarted": { + "id": "PlaybackStarted", + "description": "Event showing the start of a media playback operation.", + "properties": { + "playback": { + "type": "Playback", + "description": "Playback control object", + "required": true + } + } + }, + "PlaybackContinuing": { + "id": "PlaybackContinuing", + "description": "Event showing the continuation of a media playback operation from one media URI to the next in the list.", + "properties": { + "playback": { + "type": "Playback", + "description": "Playback control object", + "required": true + } + } + }, + "PlaybackFinished": { + "id": "PlaybackFinished", + "description": "Event showing the completion of a media playback operation.", + "properties": { + "playback": { + "type": "Playback", + "description": "Playback control object", + "required": true + } + } + }, + "RecordingStarted": { + "id": "RecordingStarted", + "description": "Event showing the start of a recording operation.", + "properties": { + "recording": { + "type": "LiveRecording", + "description": "Recording control object", + "required": true + } + } + }, + "RecordingFinished": { + "id": "RecordingFinished", + "description": "Event showing the completion of a recording operation.", + "properties": { + "recording": { + "type": "LiveRecording", + "description": "Recording control object", + "required": true + } + } + }, + "RecordingFailed": { + "id": "RecordingFailed", + "description": "Event showing failure of a recording operation.", + "properties": { + "recording": { + "type": "LiveRecording", + "description": "Recording control object", + "required": true + } + } + }, + "ApplicationMoveFailed": { + "id": "ApplicationMoveFailed", + "description": "Notification that trying to move a channel to another Stasis application failed.", + "properties": { + "channel": { + "required": true, + "type": "Channel" + }, + "destination": { + "required": true, + "type": "string" + }, + "args": { + "required": true, + "type": "List[string]", + "description": "Arguments to the application" + } + } + }, + "ApplicationReplaced": { + "id": "ApplicationReplaced", + "description": "Notification that another WebSocket has taken over for an application.\n\nAn application may only be subscribed to by a single WebSocket at a time. If multiple WebSockets attempt to subscribe to the same application, the newer WebSocket wins, and the older one receives this event.", + "properties": {} + }, + "BridgeCreated": { + "id": "BridgeCreated", + "description": "Notification that a bridge has been created.", + "properties": { + "bridge": { + "required": true, + "type": "Bridge" + } + } + }, + "BridgeDestroyed": { + "id": "BridgeDestroyed", + "description": "Notification that a bridge has been destroyed.", + "properties": { + "bridge": { + "required": true, + "type": "Bridge" + } + } + }, + "BridgeMerged": { + "id": "BridgeMerged", + "description": "Notification that one bridge has merged into another.", + "properties": { + "bridge": { + "required": true, + "type": "Bridge" + }, + "bridge_from": { + "required": true, + "type": "Bridge" + } + } + }, + "BridgeVideoSourceChanged": { + "id": "BridgeVideoSourceChanged", + "description": "Notification that the source of video in a bridge has changed.", + "properties": { + "bridge": { + "required": true, + "type": "Bridge" + }, + "old_video_source_id": { + "required": false, + "type": "string" + } + } + }, + "BridgeBlindTransfer": { + "id": "BridgeBlindTransfer", + "description": "Notification that a blind transfer has occurred.", + "properties": { + "channel": { + "description": "The channel performing the blind transfer", + "required": true, + "type": "Channel" + }, + "replace_channel": { + "description": "The channel that is replacing transferer when the transferee(s) can not be transferred directly", + "required": false, + "type": "Channel" + }, + "transferee": { + "description": "The channel that is being transferred", + "required": false, + "type": "Channel" + }, + "exten": { + "description": "The extension transferred to", + "required": true, + "type": "string" + }, + "context": { + "description": "The context transferred to", + "required": true, + "type": "string" + }, + "result": { + "description": "The result of the transfer attempt", + "required": true, + "type": "string" + }, + "is_external": { + "description": "Whether the transfer was externally initiated or not", + "required": true, + "type": "boolean" + }, + "bridge": { + "description": "The bridge being transferred", + "type": "Bridge" + } + } + }, + "BridgeAttendedTransfer": { + "id": "BridgeAttendedTransfer", + "description": "Notification that an attended transfer has occurred.", + "properties": { + "transferer_first_leg": { + "description": "First leg of the transferer", + "required": true, + "type": "Channel" + }, + "transferer_second_leg": { + "description": "Second leg of the transferer", + "required": true, + "type": "Channel" + }, + "replace_channel": { + "description": "The channel that is replacing transferer_first_leg in the swap", + "required": false, + "type": "Channel" + }, + "transferee": { + "description": "The channel that is being transferred", + "required": false, + "type": "Channel" + }, + "transfer_target": { + "description": "The channel that is being transferred to", + "required": false, + "type": "Channel" + }, + "result": { + "description": "The result of the transfer attempt", + "required": true, + "type": "string" + }, + "is_external": { + "description": "Whether the transfer was externally initiated or not", + "required": true, + "type": "boolean" + }, + "transferer_first_leg_bridge": { + "description": "Bridge the transferer first leg is in", + "type": "Bridge" + }, + "transferer_second_leg_bridge": { + "description": "Bridge the transferer second leg is in", + "type": "Bridge" + }, + "destination_type": { + "description": "How the transfer was accomplished", + "required": true, + "type": "string" + }, + "destination_bridge": { + "description": "Bridge that survived the merge result", + "type": "string" + }, + "destination_application": { + "description": "Application that has been transferred into", + "type": "string" + }, + "destination_link_first_leg": { + "description": "First leg of a link transfer result", + "type": "Channel" + }, + "destination_link_second_leg": { + "description": "Second leg of a link transfer result", + "type": "Channel" + }, + "destination_threeway_channel": { + "description": "Transferer channel that survived the threeway result", + "type": "Channel" + }, + "destination_threeway_bridge": { + "description": "Bridge that survived the threeway result", + "type": "Bridge" + } + } + }, + "ChannelCreated": { + "id": "ChannelCreated", + "description": "Notification that a channel has been created.", + "properties": { + "channel": { + "required": true, + "type": "Channel" + } + } + }, + "ChannelDestroyed": { + "id": "ChannelDestroyed", + "description": "Notification that a channel has been destroyed.", + "properties": { + "cause": { + "required": true, + "description": "Integer representation of the cause of the hangup", + "type": "int" + }, + "cause_txt": { + "required": true, + "description": "Text representation of the cause of the hangup", + "type": "string" + }, + "channel": { + "required": true, + "type": "Channel" + } + } + }, + "ChannelEnteredBridge": { + "id": "ChannelEnteredBridge", + "description": "Notification that a channel has entered a bridge.", + "properties": { + "bridge": { + "required": true, + "type": "Bridge" + }, + "channel": { + "type": "Channel" + } + } + }, + "ChannelLeftBridge": { + "id": "ChannelLeftBridge", + "description": "Notification that a channel has left a bridge.", + "properties": { + "bridge": { + "required": true, + "type": "Bridge" + }, + "channel": { + "required": true, + "type": "Channel" + } + } + }, + "ChannelStateChange": { + "id": "ChannelStateChange", + "description": "Notification of a channel's state change.", + "properties": { + "channel": { + "required": true, + "type": "Channel" + } + } + }, + "ChannelDtmfReceived": { + "id": "ChannelDtmfReceived", + "description": "DTMF received on a channel.\n\nThis event is sent when the DTMF ends. There is no notification about the start of DTMF", + "properties": { + "digit": { + "required": true, + "type": "string", + "description": "DTMF digit received (0-9, A-E, # or *)" + }, + "duration_ms": { + "required": true, + "type": "int", + "description": "Number of milliseconds DTMF was received" + }, + "channel": { + "required": true, + "type": "Channel", + "description": "The channel on which DTMF was received" + } + } + }, + "ChannelDialplan": { + "id": "ChannelDialplan", + "description": "Channel changed location in the dialplan.", + "properties": { + "channel": { + "required": true, + "type": "Channel", + "description": "The channel that changed dialplan location." + }, + "dialplan_app": { + "required": true, + "type": "string", + "description": "The application about to be executed." + }, + "dialplan_app_data": { + "required": true, + "type": "string", + "description": "The data to be passed to the application." + } + } + }, + "ChannelCallerId": { + "id": "ChannelCallerId", + "description": "Channel changed Caller ID.", + "properties": { + "caller_presentation": { + "required": true, + "type": "int", + "description": "The integer representation of the Caller Presentation value." + }, + "caller_presentation_txt": { + "required": true, + "type": "string", + "description": "The text representation of the Caller Presentation value." + }, + "channel": { + "required": true, + "type": "Channel", + "description": "The channel that changed Caller ID." + } + } + }, + "ChannelUserevent": { + "id": "ChannelUserevent", + "description": "User-generated event with additional user-defined fields in the object.", + "properties": { + "eventname": { + "required": true, + "type": "string", + "description": "The name of the user event." + }, + "channel": { + "required": false, + "type": "Channel", + "description": "A channel that is signaled with the user event." + }, + "bridge": { + "required": false, + "type": "Bridge", + "description": "A bridge that is signaled with the user event." + }, + "endpoint": { + "required": false, + "type": "Endpoint", + "description": "A endpoint that is signaled with the user event." + }, + "userevent": { + "required": true, + "type": "object", + "description": "Custom Userevent data" + } + } + }, + "ChannelHangupRequest": { + "id": "ChannelHangupRequest", + "description": "A hangup was requested on the channel.", + "properties": { + "cause": { + "type": "int", + "description": "Integer representation of the cause of the hangup." + }, + "soft": { + "type": "boolean", + "description": "Whether the hangup request was a soft hangup request." + }, + "channel": { + "required": true, + "type": "Channel", + "description": "The channel on which the hangup was requested." + } + } + }, + "ChannelVarset": { + "id": "ChannelVarset", + "description": "Channel variable changed.", + "properties": { + "variable": { + "required": true, + "type": "string", + "description": "The variable that changed." + }, + "value": { + "required": true, + "type": "string", + "description": "The new value of the variable." + }, + "channel": { + "required": false, + "type": "Channel", + "description": "The channel on which the variable was set.\n\nIf missing, the variable is a global variable." + } + } + }, + "ChannelHold": { + "id": "ChannelHold", + "description": "A channel initiated a media hold.", + "properties": { + "channel": { + "required": true, + "type": "Channel", + "description": "The channel that initiated the hold event." + }, + "musicclass": { + "required": false, + "type": "string", + "description": "The music on hold class that the initiator requested." + } + } + }, + "ChannelUnhold": { + "id": "ChannelUnhold", + "description": "A channel initiated a media unhold.", + "properties": { + "channel": { + "required": true, + "type": "Channel", + "description": "The channel that initiated the unhold event." + } + } + }, + "ChannelTalkingStarted": { + "id": "ChannelTalkingStarted", + "description": "Talking was detected on the channel.", + "properties": { + "channel": { + "required": true, + "type": "Channel", + "description": "The channel on which talking started." + } + } + }, + "ChannelTalkingFinished": { + "id": "ChannelTalkingFinished", + "description": "Talking is no longer detected on the channel.", + "properties": { + "channel": { + "required": true, + "type": "Channel", + "description": "The channel on which talking completed." + }, + "duration": { + "required": true, + "type": "int", + "description": "The length of time, in milliseconds, that talking was detected on the channel" + } + } + }, + "ContactStatusChange": { + "id": "ContactStatusChange", + "description": "The state of a contact on an endpoint has changed.", + "properties": { + "endpoint": { + "required": true, + "type": "Endpoint" + }, + "contact_info": { + "required": true, + "type": "ContactInfo" + } + } + }, + "PeerStatusChange": { + "id": "PeerStatusChange", + "description": "The state of a peer associated with an endpoint has changed.", + "properties": { + "endpoint": { + "required": true, + "type": "Endpoint" + }, + "peer": { + "required": true, + "type": "Peer" + } + } + }, + "EndpointStateChange": { + "id": "EndpointStateChange", + "description": "Endpoint state changed.", + "properties": { + "endpoint": { + "required": true, + "type": "Endpoint" + } + } + }, + "Dial": { + "id": "Dial", + "description": "Dialing state has changed.", + "properties": { + "caller": { + "required": false, + "type": "Channel", + "description": "The calling channel." + }, + "peer": { + "required": true, + "type": "Channel", + "description": "The dialed channel." + }, + "forward": { + "required": false, + "type": "string", + "description": "Forwarding target requested by the original dialed channel." + }, + "forwarded": { + "required": false, + "type": "Channel", + "description": "Channel that the caller has been forwarded to." + }, + "dialstring": { + "required": false, + "type": "string", + "description": "The dial string for calling the peer channel." + }, + "dialstatus": { + "required": true, + "type": "string", + "description": "Current status of the dialing attempt to the peer." + } + } + }, + "StasisEnd": { + "id": "StasisEnd", + "description": "Notification that a channel has left a Stasis application.", + "properties": { + "channel": { + "required": true, + "type": "Channel" + } + } + }, + "StasisStart": { + "id": "StasisStart", + "description": "Notification that a channel has entered a Stasis application.", + "properties": { + "args": { + "required": true, + "type": "List[string]", + "description": "Arguments to the application" + }, + "channel": { + "required": true, + "type": "Channel" + }, + "replace_channel": { + "required": false, + "type": "Channel" + } + } + }, + "TextMessageReceived": { + "id": "TextMessageReceived", + "description": "A text message was received from an endpoint.", + "properties": { + "message": { + "required": true, + "type": "TextMessage" + }, + "endpoint": { + "required": false, + "type": "Endpoint" + } + } + }, + "ChannelConnectedLine": { + "id": "ChannelConnectedLine", + "description": "Channel changed Connected Line.", + "properties": { + "channel": { + "required": true, + "type": "Channel", + "description": "The channel whose connected line has changed." + } + } + } + } +} diff --git a/codegen/src/main/resources/codegen-data/ari_8_0_0/mailboxes.json b/codegen/src/main/resources/codegen-data/ari_8_0_0/mailboxes.json new file mode 100644 index 00000000..8f5941b8 --- /dev/null +++ b/codegen/src/main/resources/codegen-data/ari_8_0_0/mailboxes.json @@ -0,0 +1,137 @@ +{ + "_copyright": "Copyright (C) 2013, Digium, Inc.", + "_author": "Jonathan Rose ", + "_svn_revision": "$Revision$", + "apiVersion": "2.0.0", + "swaggerVersion": "1.1", + "basePath": "http://localhost:8088/ari", + "resourcePath": "/api-docs/mailboxes.{format}", + "requiresModules": [ + "res_stasis_mailbox" + ], + "apis": [ + { + "path": "/mailboxes", + "description": "Mailboxes", + "operations": [ + { + "httpMethod": "GET", + "summary": "List all mailboxes.", + "nickname": "list", + "responseClass": "List[Mailbox]" + } + ] + }, + { + "path": "/mailboxes/{mailboxName}", + "description": "Mailbox state", + "operations": [ + { + "httpMethod": "GET", + "summary": "Retrieve the current state of a mailbox.", + "nickname": "get", + "responseClass": "Mailbox", + "parameters": [ + { + "name": "mailboxName", + "description": "Name of the mailbox", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Mailbox not found" + } + ] + }, + { + "httpMethod": "PUT", + "summary": "Change the state of a mailbox. (Note - implicitly creates the mailbox).", + "nickname": "update", + "responseClass": "void", + "parameters": [ + { + "name": "mailboxName", + "description": "Name of the mailbox", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "oldMessages", + "description": "Count of old messages in the mailbox", + "paramType": "query", + "required": true, + "allowMultiple": false, + "dataType": "int" + }, + { + "name": "newMessages", + "description": "Count of new messages in the mailbox", + "paramType": "query", + "required": true, + "allowMultiple": false, + "dataType": "int" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Mailbox not found" + } + ] + }, + { + "httpMethod": "DELETE", + "summary": "Destroy a mailbox.", + "nickname": "delete", + "responseClass": "void", + "parameters": [ + { + "name": "mailboxName", + "description": "Name of the mailbox", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Mailbox not found" + } + ] + } + ] + } + ], + "models": { + "Mailbox": { + "id": "Mailbox", + "description": "Represents the state of a mailbox.", + "properties": { + "name": { + "type": "string", + "description": "Name of the mailbox.", + "required": true + }, + "old_messages": { + "type": "int", + "description": "Count of old messages in the mailbox.", + "required": true + }, + "new_messages": { + "type": "int", + "description": "Count of new messages in the mailbox.", + "required": true + } + } + } + } +} diff --git a/codegen/src/main/resources/codegen-data/ari_8_0_0/playbacks.json b/codegen/src/main/resources/codegen-data/ari_8_0_0/playbacks.json new file mode 100644 index 00000000..793986fc --- /dev/null +++ b/codegen/src/main/resources/codegen-data/ari_8_0_0/playbacks.json @@ -0,0 +1,165 @@ +{ + "_copyright": "Copyright (C) 2012 - 2013, Digium, Inc.", + "_author": "David M. Lee, II ", + "_svn_revision": "$Revision$", + "apiVersion": "2.0.0", + "swaggerVersion": "1.1", + "basePath": "http://localhost:8088/ari", + "resourcePath": "/api-docs/playbacks.{format}", + "requiresModules": [ + "res_stasis_playback" + ], + "apis": [ + { + "path": "/playbacks/{playbackId}", + "description": "Control object for a playback operation.", + "operations": [ + { + "httpMethod": "GET", + "summary": "Get a playback's details.", + "nickname": "get", + "responseClass": "Playback", + "parameters": [ + { + "name": "playbackId", + "description": "Playback's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "The playback cannot be found" + } + ] + }, + { + "httpMethod": "DELETE", + "summary": "Stop a playback.", + "nickname": "stop", + "responseClass": "void", + "parameters": [ + { + "name": "playbackId", + "description": "Playback's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "The playback cannot be found" + } + ] + } + ] + }, + { + "path": "/playbacks/{playbackId}/control", + "description": "Control object for a playback operation.", + "operations": [ + { + "httpMethod": "POST", + "summary": "Control a playback.", + "nickname": "control", + "responseClass": "void", + "parameters": [ + { + "name": "playbackId", + "description": "Playback's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "operation", + "description": "Operation to perform on the playback.", + "paramType": "query", + "required": true, + "allowMultiple": false, + "dataType": "string", + "allowableValues": { + "valueType": "LIST", + "values": [ + "restart", + "pause", + "unpause", + "reverse", + "forward" + ] + } + } + ], + "errorResponses": [ + { + "code": 400, + "reason": "The provided operation parameter was invalid" + }, + { + "code": 404, + "reason": "The playback cannot be found" + }, + { + "code": 409, + "reason": "The operation cannot be performed in the playback's current state" + } +] + } + ] + } + ], + "models": { + "Playback": { + "id": "Playback", + "description": "Object representing the playback of media to a channel", + "properties": { + "id": { + "type": "string", + "description": "ID for this playback operation", + "required": true + }, + "media_uri": { + "type": "string", + "description": "The URI for the media currently being played back.", + "required": true + }, + "next_media_uri": { + "type": "string", + "description": "If a list of URIs is being played, the next media URI to be played back.", + "required": false + }, + "target_uri": { + "type": "string", + "description": "URI for the channel or bridge to play the media on", + "required": true + }, + "language": { + "type": "string", + "description": "For media types that support multiple languages, the language requested for playback." + }, + "state": { + "type": "string", + "description": "Current state of the playback operation.", + "required": true, + "allowableValues": { + "valueType": "LIST", + "values": [ + "queued", + "playing", + "continuing", + "done", + "failed" + ] + } + } + } + } + } +} diff --git a/codegen/src/main/resources/codegen-data/ari_8_0_0/recordings.json b/codegen/src/main/resources/codegen-data/ari_8_0_0/recordings.json new file mode 100644 index 00000000..6ffd6d8e --- /dev/null +++ b/codegen/src/main/resources/codegen-data/ari_8_0_0/recordings.json @@ -0,0 +1,413 @@ +{ + "_copyright": "Copyright (C) 2012 - 2013, Digium, Inc.", + "_author": "David M. Lee, II ", + "_svn_revision": "$Revision$", + "apiVersion": "2.0.0", + "swaggerVersion": "1.1", + "basePath": "http://localhost:8088/ari", + "resourcePath": "/api-docs/recordings.{format}", + "requiresModules": [ + "res_stasis_recording" + ], + "apis": [ + { + "path": "/recordings/stored", + "description": "Recordings", + "operations": [ + { + "httpMethod": "GET", + "summary": "List recordings that are complete.", + "nickname": "listStored", + "responseClass": "List[StoredRecording]" + } + ] + }, + { + "path": "/recordings/stored/{recordingName}", + "description": "Individual recording", + "operations": [ + { + "httpMethod": "GET", + "summary": "Get a stored recording's details.", + "nickname": "getStored", + "responseClass": "StoredRecording", + "parameters": [ + { + "name": "recordingName", + "description": "The name of the recording", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Recording not found" + } + ] + }, + { + "httpMethod": "DELETE", + "summary": "Delete a stored recording.", + "nickname": "deleteStored", + "responseClass": "void", + "parameters": [ + { + "name": "recordingName", + "description": "The name of the recording", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Recording not found" + } + ] + } + ] + }, + { + "path": "/recordings/stored/{recordingName}/file", + "description": "The actual file associated with the stored recording", + "operations": [ + { + "httpMethod": "GET", + "summary": "Get the file associated with the stored recording.", + "nickname": "getStoredFile", + "responseClass": "binary", + "parameters": [ + { + "name": "recordingName", + "description": "The name of the recording", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 403, + "reason": "The recording file could not be opened" + }, + { + "code": 404, + "reason": "Recording not found" + } + ] + } + ] + }, + { + "path": "/recordings/stored/{recordingName}/copy", + "description": "Copy an individual recording", + "operations": [ + { + "httpMethod": "POST", + "summary": "Copy a stored recording.", + "nickname": "copyStored", + "responseClass": "StoredRecording", + "parameters": [ + { + "name": "recordingName", + "description": "The name of the recording to copy", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "destinationRecordingName", + "description": "The destination name of the recording", + "paramType": "query", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Recording not found" + }, + { + "code": 409, + "reason": "A recording with the same name already exists on the system" + } + ] + } + ] + }, + { + "path": "/recordings/live/{recordingName}", + "description": "A recording that is in progress", + "operations": [ + { + "httpMethod": "GET", + "summary": "List live recordings.", + "nickname": "getLive", + "responseClass": "LiveRecording", + "parameters": [ + { + "name": "recordingName", + "description": "The name of the recording", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Recording not found" + } + ] + }, + { + "httpMethod": "DELETE", + "summary": "Stop a live recording and discard it.", + "nickname": "cancel", + "responseClass": "void", + "parameters": [ + { + "name": "recordingName", + "description": "The name of the recording", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Recording not found" + } + ] + } + ] + }, + { + "path": "/recordings/live/{recordingName}/stop", + "operations": [ + { + "httpMethod": "POST", + "summary": "Stop a live recording and store it.", + "nickname": "stop", + "responseClass": "void", + "parameters": [ + { + "name": "recordingName", + "description": "The name of the recording", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Recording not found" + } + ] + } + ] + }, + { + "path": "/recordings/live/{recordingName}/pause", + "operations": [ + { + "httpMethod": "POST", + "summary": "Pause a live recording.", + "notes": "Pausing a recording suspends silence detection, which will be restarted when the recording is unpaused. Paused time is not included in the accounting for maxDurationSeconds.", + "nickname": "pause", + "responseClass": "void", + "parameters": [ + { + "name": "recordingName", + "description": "The name of the recording", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Recording not found" + }, + { + "code": 409, + "reason": "Recording not in session" + } + ] + }, + { + "httpMethod": "DELETE", + "summary": "Unpause a live recording.", + "nickname": "unpause", + "responseClass": "void", + "parameters": [ + { + "name": "recordingName", + "description": "The name of the recording", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Recording not found" + }, + { + "code": 409, + "reason": "Recording not in session" + } + ] + } + ] + }, + { + "path": "/recordings/live/{recordingName}/mute", + "operations": [ + { + "httpMethod": "POST", + "summary": "Mute a live recording.", + "notes": "Muting a recording suspends silence detection, which will be restarted when the recording is unmuted.", + "nickname": "mute", + "responseClass": "void", + "parameters": [ + { + "name": "recordingName", + "description": "The name of the recording", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Recording not found" + }, + { + "code": 409, + "reason": "Recording not in session" + } + ] + }, + { + "httpMethod": "DELETE", + "summary": "Unmute a live recording.", + "nickname": "unmute", + "responseClass": "void", + "parameters": [ + { + "name": "recordingName", + "description": "The name of the recording", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Recording not found" + }, + { + "code": 409, + "reason": "Recording not in session" + } + ] + } + ] + } + ], + "models": { + "StoredRecording": { + "id": "StoredRecording", + "description": "A past recording that may be played back.", + "properties": { + "name": { + "required": true, + "type": "string" + }, + "format": { + "required": true, + "type": "string" + } + } + }, + "LiveRecording": { + "id": "LiveRecording", + "description": "A recording that is in progress", + "properties": { + "name": { + "required": true, + "type": "string", + "description": "Base name for the recording" + }, + "format": { + "required": true, + "type": "string", + "description": "Recording format (wav, gsm, etc.)" + }, + "target_uri": { + "required": true, + "type": "string", + "description": "URI for the channel or bridge being recorded" + }, + "state": { + "required": true, + "type": "string", + "allowableValues": { + "valueType": "LIST", + "values": [ + "queued", + "recording", + "paused", + "done", + "failed", + "canceled" + ] + } + }, + "duration": { + "required": false, + "type": "int", + "description": "Duration in seconds of the recording" + }, + "talking_duration": { + "required": false, + "type": "int", + "description": "Duration of talking, in seconds, detected in the recording. This is only available if the recording was initiated with a non-zero maxSilenceSeconds." + }, + "silence_duration": { + "required": false, + "type": "int", + "description": "Duration of silence, in seconds, detected in the recording. This is only available if the recording was initiated with a non-zero maxSilenceSeconds." + }, + "cause": { + "required": false, + "type": "string", + "description": "Cause for recording failure if failed" + } + } + } + } +} diff --git a/codegen/src/main/resources/codegen-data/ari_8_0_0/sounds.json b/codegen/src/main/resources/codegen-data/ari_8_0_0/sounds.json new file mode 100644 index 00000000..8fbe1c57 --- /dev/null +++ b/codegen/src/main/resources/codegen-data/ari_8_0_0/sounds.json @@ -0,0 +1,99 @@ +{ + "_copyright": "Copyright (C) 2012 - 2013, Digium, Inc.", + "_author": "David M. Lee, II ", + "_svn_revision": "$Revision$", + "apiVersion": "2.0.0", + "swaggerVersion": "1.1", + "basePath": "http://localhost:8088/ari", + "resourcePath": "/api-docs/sounds.{format}", + "apis": [ + { + "path": "/sounds", + "description": "Sounds", + "operations": [ + { + "httpMethod": "GET", + "summary": "List all sounds.", + "nickname": "list", + "responseClass": "List[Sound]", + "parameters": [ + { + "name": "lang", + "description": "Lookup sound for a specific language.", + "paramType": "query", + "dataType": "string", + "required": false + }, + { + "name": "format", + "description": "Lookup sound in a specific format.", + "paramType": "query", + "dataType": "string", + "required": false, + "__note": "core show translation can show translation paths between formats, along with relative costs. so this could be just installed format, or we could follow that for transcoded formats." + } + ] + } + ] + }, + { + "path": "/sounds/{soundId}", + "description": "Individual sound", + "operations": [ + { + "httpMethod": "GET", + "summary": "Get a sound's details.", + "nickname": "get", + "responseClass": "Sound", + "parameters": [ + { + "name": "soundId", + "description": "Sound's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ] + } + ] + } + ], + "models": { + "FormatLangPair": { + "id": "FormatLangPair", + "description": "Identifies the format and language of a sound file", + "properties": { + "language": { + "required": true, + "type": "string" + }, + "format": { + "required": true, + "type": "string" + } + } + }, + "Sound": { + "id": "Sound", + "description": "A media file that may be played back.", + "properties": { + "id": { + "required": true, + "description": "Sound's identifier.", + "type": "string" + }, + "text": { + "required": false, + "description": "Text description of the sound, usually the words spoken.", + "type": "string" + }, + "formats": { + "required": true, + "description": "The formats and languages in which this sound is available.", + "type": "List[FormatLangPair]" + } + } + } + } +} diff --git a/examples/build.gradle b/examples/build.gradle old mode 100644 new mode 100755 diff --git a/examples/gradle/wrapper/gradle-wrapper.jar b/examples/gradle/wrapper/gradle-wrapper.jar old mode 100644 new mode 100755 diff --git a/examples/gradle/wrapper/gradle-wrapper.properties b/examples/gradle/wrapper/gradle-wrapper.properties old mode 100644 new mode 100755 index 778e15c7..0effb0be --- a/examples/gradle/wrapper/gradle-wrapper.properties +++ b/examples/gradle/wrapper/gradle-wrapper.properties @@ -1,5 +1,5 @@ #Sun Mar 08 12:20:19 SAST 2020 -distributionUrl=https\://services.gradle.org/distributions/gradle-5.2.1-all.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-6.8.3-bin.zip distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists zipStorePath=wrapper/dists diff --git a/examples/gradlew.bat b/examples/gradlew.bat old mode 100644 new mode 100755 diff --git a/examples/settings.gradle b/examples/settings.gradle old mode 100644 new mode 100755 diff --git a/examples/src/main/java/ch/loway/oss/ari4java/examples/ConnectAndDial.java b/examples/src/main/java/ch/loway/oss/ari4java/examples/ConnectAndDial.java old mode 100644 new mode 100755 diff --git a/examples/src/main/java/ch/loway/oss/ari4java/examples/Weasels.java b/examples/src/main/java/ch/loway/oss/ari4java/examples/Weasels.java old mode 100644 new mode 100755 diff --git a/examples/src/main/java/helloworld/HelloAriWorld.java b/examples/src/main/java/helloworld/HelloAriWorld.java old mode 100644 new mode 100755 diff --git a/examples/src/main/resources/log4j2.properties b/examples/src/main/resources/log4j2.properties old mode 100644 new mode 100755 diff --git a/gradle/wrapper/gradle-wrapper.jar b/gradle/wrapper/gradle-wrapper.jar old mode 100644 new mode 100755 diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties old mode 100644 new mode 100755 diff --git a/gradlew.bat b/gradlew.bat old mode 100644 new mode 100755 diff --git a/settings.gradle b/settings.gradle old mode 100644 new mode 100755 diff --git a/src/main/java/ch/loway/oss/ari4java/ARI.java b/src/main/java/ch/loway/oss/ari4java/ARI.java old mode 100644 new mode 100755 diff --git a/src/main/java/ch/loway/oss/ari4java/ARIRuntimeException.java b/src/main/java/ch/loway/oss/ari4java/ARIRuntimeException.java old mode 100644 new mode 100755 diff --git a/src/main/java/ch/loway/oss/ari4java/AriFactory.java b/src/main/java/ch/loway/oss/ari4java/AriFactory.java old mode 100644 new mode 100755 diff --git a/src/main/java/ch/loway/oss/ari4java/AriSubscriber.java b/src/main/java/ch/loway/oss/ari4java/AriSubscriber.java old mode 100644 new mode 100755 diff --git a/src/main/java/ch/loway/oss/ari4java/tools/ARIEncoder.java b/src/main/java/ch/loway/oss/ari4java/tools/ARIEncoder.java old mode 100644 new mode 100755 diff --git a/src/main/java/ch/loway/oss/ari4java/tools/ARIException.java b/src/main/java/ch/loway/oss/ari4java/tools/ARIException.java old mode 100644 new mode 100755 diff --git a/src/main/java/ch/loway/oss/ari4java/tools/AriAsyncHandler.java b/src/main/java/ch/loway/oss/ari4java/tools/AriAsyncHandler.java old mode 100644 new mode 100755 diff --git a/src/main/java/ch/loway/oss/ari4java/tools/AriCallback.java b/src/main/java/ch/loway/oss/ari4java/tools/AriCallback.java old mode 100644 new mode 100755 diff --git a/src/main/java/ch/loway/oss/ari4java/tools/AriConnectionEvent.java b/src/main/java/ch/loway/oss/ari4java/tools/AriConnectionEvent.java old mode 100644 new mode 100755 diff --git a/src/main/java/ch/loway/oss/ari4java/tools/AriWSCallback.java b/src/main/java/ch/loway/oss/ari4java/tools/AriWSCallback.java old mode 100644 new mode 100755 diff --git a/src/main/java/ch/loway/oss/ari4java/tools/BaseAriAction.java b/src/main/java/ch/loway/oss/ari4java/tools/BaseAriAction.java old mode 100644 new mode 100755 diff --git a/src/main/java/ch/loway/oss/ari4java/tools/HttpClient.java b/src/main/java/ch/loway/oss/ari4java/tools/HttpClient.java old mode 100644 new mode 100755 diff --git a/src/main/java/ch/loway/oss/ari4java/tools/HttpParam.java b/src/main/java/ch/loway/oss/ari4java/tools/HttpParam.java old mode 100644 new mode 100755 diff --git a/src/main/java/ch/loway/oss/ari4java/tools/HttpResponse.java b/src/main/java/ch/loway/oss/ari4java/tools/HttpResponse.java old mode 100644 new mode 100755 diff --git a/src/main/java/ch/loway/oss/ari4java/tools/HttpResponseHandler.java b/src/main/java/ch/loway/oss/ari4java/tools/HttpResponseHandler.java old mode 100644 new mode 100755 diff --git a/src/main/java/ch/loway/oss/ari4java/tools/MessageQueue.java b/src/main/java/ch/loway/oss/ari4java/tools/MessageQueue.java old mode 100644 new mode 100755 diff --git a/src/main/java/ch/loway/oss/ari4java/tools/RestException.java b/src/main/java/ch/loway/oss/ari4java/tools/RestException.java old mode 100644 new mode 100755 diff --git a/src/main/java/ch/loway/oss/ari4java/tools/WsClient.java b/src/main/java/ch/loway/oss/ari4java/tools/WsClient.java old mode 100644 new mode 100755 diff --git a/src/main/java/ch/loway/oss/ari4java/tools/WsClientAutoReconnect.java b/src/main/java/ch/loway/oss/ari4java/tools/WsClientAutoReconnect.java old mode 100644 new mode 100755 diff --git a/src/main/java/ch/loway/oss/ari4java/tools/http/HTTPLogger.java b/src/main/java/ch/loway/oss/ari4java/tools/http/HTTPLogger.java old mode 100644 new mode 100755 diff --git a/src/main/java/ch/loway/oss/ari4java/tools/http/NettyHttpClient.java b/src/main/java/ch/loway/oss/ari4java/tools/http/NettyHttpClient.java old mode 100644 new mode 100755 diff --git a/src/main/java/ch/loway/oss/ari4java/tools/http/NettyHttpClientHandler.java b/src/main/java/ch/loway/oss/ari4java/tools/http/NettyHttpClientHandler.java old mode 100644 new mode 100755 diff --git a/src/main/java/ch/loway/oss/ari4java/tools/http/NettyWSClientHandler.java b/src/main/java/ch/loway/oss/ari4java/tools/http/NettyWSClientHandler.java old mode 100644 new mode 100755 diff --git a/src/main/java/ch/loway/oss/ari4java/tools/tags/EventSource.java b/src/main/java/ch/loway/oss/ari4java/tools/tags/EventSource.java old mode 100644 new mode 100755 diff --git a/src/overview.html b/src/overview.html old mode 100644 new mode 100755 diff --git a/src/test/java/ch/loway/oss/ari4java/ARITest.java b/src/test/java/ch/loway/oss/ari4java/ARITest.java old mode 100644 new mode 100755 diff --git a/src/test/java/ch/loway/oss/ari4java/AriFactoryTest.java b/src/test/java/ch/loway/oss/ari4java/AriFactoryTest.java old mode 100644 new mode 100755 diff --git a/src/test/java/ch/loway/oss/ari4java/AriVersionTest.java b/src/test/java/ch/loway/oss/ari4java/AriVersionTest.java old mode 100644 new mode 100755 diff --git a/src/test/java/ch/loway/oss/ari4java/generated/ActionSoundsTest.java b/src/test/java/ch/loway/oss/ari4java/generated/ActionSoundsTest.java old mode 100644 new mode 100755 diff --git a/src/test/java/ch/loway/oss/ari4java/generated/ActonBridgesTest.java b/src/test/java/ch/loway/oss/ari4java/generated/ActonBridgesTest.java old mode 100644 new mode 100755 diff --git a/src/test/java/ch/loway/oss/ari4java/generated/DeserializeToListOfInterfaceTest.java b/src/test/java/ch/loway/oss/ari4java/generated/DeserializeToListOfInterfaceTest.java old mode 100644 new mode 100755 diff --git a/src/test/java/ch/loway/oss/ari4java/generated/EventBuilderTest.java b/src/test/java/ch/loway/oss/ari4java/generated/EventBuilderTest.java old mode 100644 new mode 100755 diff --git a/src/test/java/ch/loway/oss/ari4java/tools/http/NettyHttpClientHandlerTest.java b/src/test/java/ch/loway/oss/ari4java/tools/http/NettyHttpClientHandlerTest.java old mode 100644 new mode 100755 diff --git a/src/test/java/ch/loway/oss/ari4java/tools/http/NettyHttpClientTest.java b/src/test/java/ch/loway/oss/ari4java/tools/http/NettyHttpClientTest.java old mode 100644 new mode 100755 diff --git a/src/test/resources/log4j2.properties b/src/test/resources/log4j2.properties old mode 100644 new mode 100755 From e6069112f7727050f5676aaee41faf1daad3e6eb Mon Sep 17 00:00:00 2001 From: Graham Brown Date: Sat, 14 Aug 2021 16:25:52 +0200 Subject: [PATCH 176/220] add 0.13.0 and change all urls to point to ari4java org --- CHANGELOG.md | 58 ++++++++++++++++++++++++++++++---------------------- 1 file changed, 33 insertions(+), 25 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index e80fd646..a29f7034 100755 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,21 +1,29 @@ # ARI4Java Changelog ## [Unreleased] -[Unreleased]: https://github.com/l3nz/ari4java/compare/v0.12.2...HEAD +[Unreleased]: https://github.com/ari4java/ari4java/compare/v0.12.2...HEAD + +## [0.13.0] +[0.13.0]: https://github.com/ari4java/ari4java/compare/v0.12.2...v0.13.0 +### Changed +- Library updates + +### Added +- `AriVersion.ARI_8_0_0` ## [0.12.2] -[0.12.2]: https://github.com/l3nz/ari4java/compare/v0.12.1...v0.12.2 +[0.12.2]: https://github.com/ari4java/ari4java/compare/v0.12.1...v0.12.2 ### Changed - groupId changed from `ch.loway.oss.ari4java` to `io.github.ari4java` ### Added ## [0.12.1] -[0.12.1]: https://github.com/l3nz/ari4java/compare/v0.12.0...v0.12.1 +[0.12.1]: https://github.com/ari4java/ari4java/compare/v0.12.0...v0.12.1 ### Added - ARI 4.1.3, 5.1.1 & 7.0.0 ## [0.12.0] -[0.12.0]: https://github.com/l3nz/ari4java/compare/v0.11.0...v0.12.0 +[0.12.0]: https://github.com/ari4java/ari4java/compare/v0.11.0...v0.12.0 ### Fixes - onFailure long after WS Connect error #156 - execute shutdown immediately #159 @@ -24,13 +32,13 @@ - WS reconnect count #158 ## [0.11.0] -[0.11.0]: https://github.com/l3nz/ari4java/compare/v.0.10.0...v0.11.0 +[0.11.0]: https://github.com/ari4java/ari4java/compare/v.0.10.0...v0.11.0 ### Added - Unit tests to increase coverage #11 - New ARI binding ## [0.10.0] -[0.10.0]: https://github.com/l3nz/ari4java/compare/v0.9.1...v.0.10.0 +[0.10.0]: https://github.com/ari4java/ari4java/compare/v0.9.1...v.0.10.0 ### Fixed - UnsupportedOperationException #15 - Javadoc warnings #149 @@ -42,14 +50,14 @@ - Script to map Asterisk versions to ARI version ## [0.9.1] - 2020-02-23 -[0.9.1]: https://github.com/l3nz/ari4java/compare/REL-0.9.0...v0.9.1 +[0.9.1]: https://github.com/ari4java/ari4java/compare/REL-0.9.0...v0.9.1 ### Added - Test connection when creating ARI #19 ### Fixed - Mistakenly removed the http aggregator ## [0.9.0] - 2020-02-20 -[0.9.0]: https://github.com/l3nz/ari4java/compare/REL-0.8.1...REL-0.9.0 +[0.9.0]: https://github.com/ari4java/ari4java/compare/REL-0.8.1...REL-0.9.0 ### Added - SLF4J Logger - Connection timeouts #85 #86 @@ -58,41 +66,41 @@ - Support SSL, 150MB limit for `ActionRecordings.getStoredFile()` ## [0.8.1] - 2020-01-25 -[0.8.1]: https://github.com/l3nz/ari4java/compare/REL-0.8.0...REL-0.8.1 +[0.8.1]: https://github.com/ari4java/ari4java/compare/REL-0.8.0...REL-0.8.1 ### Changed - Exception messages #6 ### Fixed - Java 8 Compatibility #142 ## [0.8.0] - 2019-12-23 -[0.8.0]: https://github.com/l3nz/ari4java/compare/REL-070...REL-0.8.0 +[0.8.0]: https://github.com/ari4java/ari4java/compare/REL-070...REL-0.8.0 ### :exclamation: **!! BREAKING CHANGES !!** - API Actions signatures only contain manditory params and returns a Request object which follows the builder/factory pattern ## [0.7.0] - 2019-12-22 -[0.7.0]: https://github.com/l3nz/ari4java/compare/REL-061...REL-070 +[0.7.0]: https://github.com/ari4java/ari4java/compare/REL-061...REL-070 ### Fixed - Treat `fields` as `fields` not `variables` in body parameters - fix `ActionRecordings.getStoredFile()` for `byte[]` & add `ARI.mailboxes()` ## [0.6.1] - 2019-11-07 -[0.6.1]: https://github.com/l3nz/ari4java/compare/REL-060...REL-061 +[0.6.1]: https://github.com/ari4java/ari4java/compare/REL-060...REL-061 ### Fixed - Codegen bug fixes for object ## [0.6.0] - 2019-10-15 -[0.6.0]: https://github.com/l3nz/ari4java/compare/REL-051...REL-060 +[0.6.0]: https://github.com/ari4java/ari4java/compare/REL-051...REL-060 ### Change - Project restructure - Script to include all past and present versions of ARI ## [0.5.1] - 2019-10-15 -[0.5.1]: https://github.com/l3nz/ari4java/compare/REL-050...REL-051 +[0.5.1]: https://github.com/ari4java/ari4java/compare/REL-050...REL-051 ### Fixes - Various fixes (Goodbye Naama!) ## [0.5.0] - 2019-01-07 -[0.5.0]: https://github.com/l3nz/ari4java/compare/REL-045...REL-050 +[0.5.0]: https://github.com/ari4java/ari4java/compare/REL-045...REL-050 ### Added - Support java 9 (#108) - code generation from gradle(#110) @@ -101,47 +109,47 @@ - unsubscribing from application correctly(#59) ## [0.4.5] - 2017-12-19 -[0.4.5]: https://github.com/l3nz/ari4java/compare/REL-044...REL-045 +[0.4.5]: https://github.com/ari4java/ari4java/compare/REL-044...REL-045 ### Added - ARI 3.0.0 (#78) ## [0.4.4] - 2017-02-04 -[0.4.4]: https://github.com/l3nz/ari4java/compare/REL-043...REL-044 +[0.4.4]: https://github.com/ari4java/ari4java/compare/REL-043...REL-044 ### Added - ARI 2.0.0 (#62) ### Changed - quicker deserialization (#63) ## [0.4.3] - 2016-11-30 -[0.4.3]: https://github.com/l3nz/ari4java/compare/REL-042...REL-043 +[0.4.3]: https://github.com/ari4java/ari4java/compare/REL-042...REL-043 ### Fixed - Graham's AutoReconnect patch - #60 ## [0.4.2] - 2016-10-21 -[0.4.2]: https://github.com/l3nz/ari4java/compare/REL-041...REL-042 +[0.4.2]: https://github.com/ari4java/ari4java/compare/REL-041...REL-042 ### Fixing - URL Prefix regression #57 - Findbugs string concatenation #55 ## [0.4.1] - 2016-10-17 -[0.4.1]: https://github.com/l3nz/ari4java/compare/REL-040...REL-041 +[0.4.1]: https://github.com/ari4java/ari4java/compare/REL-040...REL-041 ### Added - Graham's AutoReconnect patch #52 ## [0.4.0] - 2016-08-31 -[0.4.0]: https://github.com/l3nz/ari4java/compare/REL-034...REL-040 +[0.4.0]: https://github.com/ari4java/ari4java/compare/REL-034...REL-040 ### Added - ARI 1.10.0 (Asterisk 14) ### Fixed - some bugs ## [0.3.4] - 2016-01-30 -[0.3.4]: https://github.com/l3nz/ari4java/compare/REL-033...REL-034 +[0.3.4]: https://github.com/ari4java/ari4java/compare/REL-033...REL-034 ### Added - ARI 1.9.0 ## [0.3.3] - 2015-09-23 -[0.3.3]: https://github.com/l3nz/ari4java/compare/REL-022...REL-032 +[0.3.3]: https://github.com/ari4java/ari4java/compare/REL-022...REL-032 ### Added - 201 statuses (bug #33) @@ -158,13 +166,13 @@ - ARI 1.7.0 (bug #28) ## [0.2.2] - 2014-11-09 -[0.2.2]: https://github.com/l3nz/ari4java/compare/v011...REL-022 +[0.2.2]: https://github.com/ari4java/ari4java/compare/v011...REL-022 ### Added - ARI bindings for 1.5.0 as coming from the official Asterisk 13.0.0 release - Added a minimal application under tests/ class ch.loway.oss.ari4java.sandbox.sample to be used as a style laboratory ## [0.1.1] - 2013-12-31 -[0.1.1]: https://github.com/l3nz/ari4java/commits/v011 +[0.1.1]: https://github.com/ari4java/ari4java/commits/v011 ### Added - Netty.io based HTTP and WebSocket implementation, factory, sync and async methods - Imported the definitions for Asterisk 12.0.0 - ARI 1.0.0 From fc2e2fceb802203db85b9fc47b3d619231af76f3 Mon Sep 17 00:00:00 2001 From: Graham Brown Date: Sat, 14 Aug 2021 16:26:03 +0200 Subject: [PATCH 177/220] v0.13.0 --- build.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.gradle b/build.gradle index 50099685..c5922268 100755 --- a/build.gradle +++ b/build.gradle @@ -8,7 +8,7 @@ plugins { } group = "io.github.ari4java" -version = "0.12.2" +version = "0.13.0" def projectUrl = "http://github.com/ari4java/ari4java" def build_number = "x" From 18618ad26ed457589d8a18ac5b4c3745265a6c9b Mon Sep 17 00:00:00 2001 From: Graham Brown Date: Sun, 24 Oct 2021 15:41:26 +0200 Subject: [PATCH 178/220] #174 Checking out code based on `resources.json` history missed updates in `/api-docs` - rather checkout each tag (excluding alpha, beta & rc) --- codegen/getApis.sh | 12 +- .../codegen-data/ari_1_0_0/mailboxes.json | 134 ---------------- .../codegen-data/ari_1_10_1/events.json | 2 +- .../codegen-data/ari_1_11_2/bridges.json | 4 +- .../codegen-data/ari_1_2_0/bridges.json | 95 +++++++++++- .../codegen-data/ari_1_2_0/channels.json | 2 +- .../codegen-data/ari_1_2_0/events.json | 74 ++++++++- .../codegen-data/ari_1_5_0/applications.json | 2 +- .../codegen-data/ari_1_5_0/asterisk.json | 2 +- .../codegen-data/ari_1_5_0/bridges.json | 2 +- .../codegen-data/ari_1_5_0/channels.json | 2 +- .../codegen-data/ari_1_5_0/deviceStates.json | 2 +- .../codegen-data/ari_1_5_0/endpoints.json | 2 +- .../codegen-data/ari_1_5_0/events.json | 10 +- .../codegen-data/ari_1_5_0/mailboxes.json | 2 +- .../codegen-data/ari_1_5_0/playbacks.json | 2 +- .../codegen-data/ari_1_5_0/recordings.json | 2 +- .../codegen-data/ari_1_5_0/sounds.json | 2 +- .../codegen-data/ari_1_6_0/channels.json | 21 +++ .../codegen-data/ari_1_7_0/applications.json | 2 +- .../codegen-data/ari_1_7_0/asterisk.json | 2 +- .../codegen-data/ari_1_7_0/bridges.json | 6 +- .../codegen-data/ari_1_7_0/channels.json | 81 ++++++++-- .../codegen-data/ari_1_7_0/deviceStates.json | 2 +- .../codegen-data/ari_1_7_0/endpoints.json | 6 +- .../codegen-data/ari_1_7_0/events.json | 31 +++- .../codegen-data/ari_1_7_0/mailboxes.json | 2 +- .../codegen-data/ari_1_7_0/playbacks.json | 2 +- .../codegen-data/ari_1_7_0/recordings.json | 2 +- .../codegen-data/ari_1_7_0/sounds.json | 2 +- .../codegen-data/ari_2_0_0/channels.json | 3 +- .../codegen-data/ari_3_0_0/bridges.json | 4 +- .../codegen-data/ari_4_0_0/asterisk.json | 33 ++++ .../codegen-data/ari_4_0_0/channels.json | 8 + .../codegen-data/ari_4_0_1/events.json | 2 +- .../codegen-data/ari_4_0_2/channels.json | 125 +++++++++++++++ .../codegen-data/ari_4_1_3/bridges.json | 6 +- .../codegen-data/ari_4_1_3/playbacks.json | 3 +- .../codegen-data/ari_5_0_0/channels.json | 125 +++++++++++++++ .../codegen-data/ari_5_1_1/bridges.json | 6 +- .../codegen-data/ari_6_0_0/bridges.json | 15 +- .../codegen-data/ari_6_0_0/channels.json | 143 ++++++++++++++++++ .../codegen-data/ari_6_0_0/endpoints.json | 20 +-- .../codegen-data/ari_6_0_0/playbacks.json | 3 +- .../codegen-data/ari_7_0_0/bridges.json | 6 +- .../codegen-data/ari_7_0_0/playbacks.json | 3 +- 46 files changed, 794 insertions(+), 223 deletions(-) delete mode 100644 codegen/src/main/resources/codegen-data/ari_1_0_0/mailboxes.json diff --git a/codegen/getApis.sh b/codegen/getApis.sh index a1ff5cc9..bc8a15df 100755 --- a/codegen/getApis.sh +++ b/codegen/getApis.sh @@ -14,9 +14,19 @@ else git pull origin fi -git log --reverse --pretty=oneline --all -- rest-api/resources.json | while read log +git log --tags --no-walk --reverse --pretty='%H %D' | while read log do IFS=' ' read -r -a array <<< "$log" + # skip 0.x 1.x, 10.x and 11.x + if [ "${array[2]:0:2}" = "0." ] || [ "${array[2]:0:2}" = "1." ] || \ + [ "${array[2]:0:3}" = "10." ] || [ "${array[2]:0:3}" = "11." ] || \ + [ "${array[2]:0:12}" = "certified/1." ] || [ "${array[2]:0:13}" = "certified/11." ]; then + continue + fi + # skip any -alpha -beta & -rc + if [[ "${array[2]}" == "-alpha" ]] || [[ "${array[2]}" == "-beta" ]] || [[ "${array[2]}" == "-rc" ]]; then + continue + fi git checkout ${array[0]} --force > /dev/null VER=`cat rest-api/resources.json | jq -r '.apiVersion'` FOLDER="${VER//./_}" diff --git a/codegen/src/main/resources/codegen-data/ari_1_0_0/mailboxes.json b/codegen/src/main/resources/codegen-data/ari_1_0_0/mailboxes.json deleted file mode 100644 index 40c83b0a..00000000 --- a/codegen/src/main/resources/codegen-data/ari_1_0_0/mailboxes.json +++ /dev/null @@ -1,134 +0,0 @@ -{ - "_copyright": "Copyright (C) 2013, Digium, Inc.", - "_author": "Jonathan Rose ", - "_svn_revision": "$Revision$", - "apiVersion": "1.0.0", - "swaggerVersion": "1.1", - "basePath": "http://localhost:8088/stasis", - "resourcePath": "/api-docs/mailboxes.{format}", - "apis": [ - { - "path": "/mailboxes", - "description": "Mailboxes", - "operations": [ - { - "httpMethod": "GET", - "summary": "List all mailboxes.", - "nickname": "list", - "responseClass": "List[Mailbox]" - } - ] - }, - { - "path": "/mailboxes/{mailboxName}", - "description": "Mailbox state", - "operations": [ - { - "httpMethod": "GET", - "summary": "Retrieve the current state of a mailbox.", - "nickname": "get", - "responseClass": "Mailbox", - "parameters": [ - { - "name": "mailboxName", - "description": "Name of the mailbox", - "paramType": "path", - "required": true, - "allowMultiple": false, - "dataType": "string" - } - ], - "errorResponses": [ - { - "code": 404, - "reason": "Mailbox not found" - } - ] - }, - { - "httpMethod": "PUT", - "summary": "Change the state of a mailbox. (Note - implicitly creates the mailbox).", - "nickname": "update", - "responseClass": "void", - "parameters": [ - { - "name": "mailboxName", - "description": "Name of the mailbox", - "paramType": "path", - "required": true, - "allowMultiple": false, - "dataType": "string" - }, - { - "name": "oldMessages", - "description": "Count of old messages in the mailbox", - "paramType": "query", - "required": true, - "allowMultiple": false, - "dataType": "int" - }, - { - "name": "newMessages", - "description": "Count of new messages in the mailbox", - "paramType": "query", - "required": true, - "allowMultiple": false, - "dataType": "int" - } - ], - "errorResponses": [ - { - "code": 404, - "reason": "Mailbox not found" - } - ] - }, - { - "httpMethod": "DELETE", - "summary": "Destroy a mailbox.", - "nickname": "delete", - "responseClass": "void", - "parameters": [ - { - "name": "mailboxName", - "description": "Name of the mailbox", - "paramType": "path", - "required": true, - "allowMultiple": false, - "dataType": "string" - } - ], - "errorResponses": [ - { - "code": 404, - "reason": "Mailbox not found" - } - ] - } - ] - } - ], - "models": { - "Mailbox": { - "id": "Mailbox", - "description": "Represents the state of a mailbox.", - "properties": { - "name": { - "type": "string", - "description": "Name of the mailbox.", - "required": true - }, - "old_messages": { - "type": "int", - "description": "Count of old messages in the mailbox.", - "required": true - }, - "new_messages": { - "type": "int", - "description": "Count of new messages in the mailbox.", - "required": true - } - } - } - } -} diff --git a/codegen/src/main/resources/codegen-data/ari_1_10_1/events.json b/codegen/src/main/resources/codegen-data/ari_1_10_1/events.json index 6a4fda8f..24d55130 100644 --- a/codegen/src/main/resources/codegen-data/ari_1_10_1/events.json +++ b/codegen/src/main/resources/codegen-data/ari_1_10_1/events.json @@ -145,7 +145,7 @@ "timestamp": { "type": "Date", "description": "Time at which this event was created.", - "required": false + "required": true } }, "subTypes": [ diff --git a/codegen/src/main/resources/codegen-data/ari_1_11_2/bridges.json b/codegen/src/main/resources/codegen-data/ari_1_11_2/bridges.json index 78bd3afa..6268c49e 100644 --- a/codegen/src/main/resources/codegen-data/ari_1_11_2/bridges.json +++ b/codegen/src/main/resources/codegen-data/ari_1_11_2/bridges.json @@ -26,7 +26,7 @@ "parameters": [ { "name": "type", - "description": "Comma separated list of bridge type attributes (mixing, holding, dtmf_events, proxy_media).", + "description": "Comma separated list of bridge type attributes (mixing, holding, dtmf_events, proxy_media, video_single).", "paramType": "query", "required": false, "allowMultiple": false, @@ -65,7 +65,7 @@ "parameters": [ { "name": "type", - "description": "Comma separated list of bridge type attributes (mixing, holding, dtmf_events, proxy_media) to set.", + "description": "Comma separated list of bridge type attributes (mixing, holding, dtmf_events, proxy_media, video_single) to set.", "paramType": "query", "required": false, "allowMultiple": false, diff --git a/codegen/src/main/resources/codegen-data/ari_1_2_0/bridges.json b/codegen/src/main/resources/codegen-data/ari_1_2_0/bridges.json index 56a7a941..8368af30 100644 --- a/codegen/src/main/resources/codegen-data/ari_1_2_0/bridges.json +++ b/codegen/src/main/resources/codegen-data/ari_1_2_0/bridges.json @@ -314,7 +314,7 @@ { "httpMethod": "POST", "summary": "Start playback of media on a bridge.", - "notes": "The media URI may be any of a number of URI's. Currently sound: and recording: URI's are supported. This operation creates a playback resource that can be used to control the playback of media (pause, rewind, fast forward, etc.)", + "notes": "The media URI may be any of a number of URI's. Currently sound:, recording:, number:, digits:, characters:, and tone: URI's are supported. This operation creates a playback resource that can be used to control the playback of media (pause, rewind, fast forward, etc.)", "nickname": "play", "responseClass": "Playback", "parameters": [ @@ -368,7 +368,14 @@ "valueType": "RANGE", "min": 0 } - + }, + { + "name": "playbackId", + "description": "Playback Id.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" } ], "errorResponses": [ @@ -384,6 +391,90 @@ } ] }, + { + "path": "/bridges/{bridgeId}/play/{playbackId}", + "description": "Play media to a bridge", + "operations": [ + { + "httpMethod": "POST", + "summary": "Start playback of media on a bridge.", + "notes": "The media URI may be any of a number of URI's. Currently sound: and recording: URI's are supported. This operation creates a playback resource that can be used to control the playback of media (pause, rewind, fast forward, etc.)", + "nickname": "playWithId", + "responseClass": "Playback", + "parameters": [ + { + "name": "bridgeId", + "description": "Bridge's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "playbackId", + "description": "Playback ID.", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "media", + "description": "Media's URI to play.", + "paramType": "query", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "lang", + "description": "For sounds, selects language for sound.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "offsetms", + "description": "Number of media to skip before playing.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "int", + "defaultValue": 0, + "allowableValues": { + "valueType": "RANGE", + "min": 0 + } + }, + { + "name": "skipms", + "description": "Number of milliseconds to skip for forward/reverse operations.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "int", + "defaultValue": 3000, + "allowableValues": { + "valueType": "RANGE", + "min": 0 + } + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Bridge not found" + }, + { + "code": 409, + "reason": "Bridge not in a Stasis application" + } + ] + + } + ] + }, { "path": "/bridges/{bridgeId}/record", "description": "Record audio on a bridge", diff --git a/codegen/src/main/resources/codegen-data/ari_1_2_0/channels.json b/codegen/src/main/resources/codegen-data/ari_1_2_0/channels.json index d940f438..cc7feb6a 100644 --- a/codegen/src/main/resources/codegen-data/ari_1_2_0/channels.json +++ b/codegen/src/main/resources/codegen-data/ari_1_2_0/channels.json @@ -808,7 +808,7 @@ { "httpMethod": "POST", "summary": "Start playback of media.", - "notes": "The media URI may be any of a number of URI's. Currently sound: and recording: URI's are supported. This operation creates a playback resource that can be used to control the playback of media (pause, rewind, fast forward, etc.)", + "notes": "The media URI may be any of a number of URI's. Currently sound:, recording:, number:, digits:, characters:, and tone: URI's are supported. This operation creates a playback resource that can be used to control the playback of media (pause, rewind, fast forward, etc.)", "nickname": "play", "responseClass": "Playback", "parameters": [ diff --git a/codegen/src/main/resources/codegen-data/ari_1_2_0/events.json b/codegen/src/main/resources/codegen-data/ari_1_2_0/events.json index 20c8423b..f19b0b18 100644 --- a/codegen/src/main/resources/codegen-data/ari_1_2_0/events.json +++ b/codegen/src/main/resources/codegen-data/ari_1_2_0/events.json @@ -30,6 +30,66 @@ ] } ] + }, + { + "path": "/events/user/{eventName}", + "description": "Stasis application user events", + "operations": [ + { + "httpMethod": "POST", + "summary": "Generate a user event.", + "nickname": "userEvent", + "responseClass": "void", + "parameters": [ + { + "name": "eventName", + "description": "Event name", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "application", + "description": "The name of the application that will receive this event", + "paramType": "query", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "source", + "description": "URI for event source (channel:{channelId}, bridge:{bridgeId}, endpoint:{tech}/{resource}, deviceState:{deviceName}", + "paramType": "query", + "required": false, + "allowMultiple": true, + "dataType": "string" + }, + { + "name": "variables", + "description": "custom key/value pairs added to the user event", + "paramType": "body", + "required": false, + "allowMultiple": false, + "dataType": "containers" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Application does not exist." + }, + { + "code": 422, + "reason": "Event source not found." + }, + { + "code": 400, + "reason": "Invalid even tsource URI or userevent data." + } + ] + } + ] } ], "models": { @@ -451,9 +511,19 @@ "description": "The name of the user event." }, "channel": { - "required": true, + "required": false, "type": "Channel", - "description": "The channel that signaled the user event." + "description": "A channel that is signaled with the user event." + }, + "bridge": { + "required": false, + "type": "Bridge", + "description": "A bridge that is signaled with the user event." + }, + "endpoint": { + "required": false, + "type": "Endpoint", + "description": "A endpoint that is signaled with the user event." }, "userevent": { "required": true, diff --git a/codegen/src/main/resources/codegen-data/ari_1_5_0/applications.json b/codegen/src/main/resources/codegen-data/ari_1_5_0/applications.json index 4234282c..9ac1c238 100644 --- a/codegen/src/main/resources/codegen-data/ari_1_5_0/applications.json +++ b/codegen/src/main/resources/codegen-data/ari_1_5_0/applications.json @@ -4,7 +4,7 @@ "_svn_revision": "$Revision$", "apiVersion": "1.5.0", "swaggerVersion": "1.1", - "basePath": "http://localhost:8088/stasis", + "basePath": "http://localhost:8088/ari", "resourcePath": "/api-docs/applications.{format}", "apis": [ { diff --git a/codegen/src/main/resources/codegen-data/ari_1_5_0/asterisk.json b/codegen/src/main/resources/codegen-data/ari_1_5_0/asterisk.json index fd8f6d3d..34e3894a 100644 --- a/codegen/src/main/resources/codegen-data/ari_1_5_0/asterisk.json +++ b/codegen/src/main/resources/codegen-data/ari_1_5_0/asterisk.json @@ -4,7 +4,7 @@ "_svn_revision": "$Revision$", "apiVersion": "1.5.0", "swaggerVersion": "1.1", - "basePath": "http://localhost:8088/stasis", + "basePath": "http://localhost:8088/ari", "resourcePath": "/api-docs/asterisk.{format}", "apis": [ { diff --git a/codegen/src/main/resources/codegen-data/ari_1_5_0/bridges.json b/codegen/src/main/resources/codegen-data/ari_1_5_0/bridges.json index cadf4ae0..de720672 100644 --- a/codegen/src/main/resources/codegen-data/ari_1_5_0/bridges.json +++ b/codegen/src/main/resources/codegen-data/ari_1_5_0/bridges.json @@ -4,7 +4,7 @@ "_svn_revision": "$Revision$", "apiVersion": "1.5.0", "swaggerVersion": "1.1", - "basePath": "http://localhost:8088/stasis", + "basePath": "http://localhost:8088/ari", "resourcePath": "/api-docs/bridges.{format}", "apis": [ { diff --git a/codegen/src/main/resources/codegen-data/ari_1_5_0/channels.json b/codegen/src/main/resources/codegen-data/ari_1_5_0/channels.json index 945c333b..d88434b3 100644 --- a/codegen/src/main/resources/codegen-data/ari_1_5_0/channels.json +++ b/codegen/src/main/resources/codegen-data/ari_1_5_0/channels.json @@ -4,7 +4,7 @@ "_svn_revision": "$Revision$", "apiVersion": "1.5.0", "swaggerVersion": "1.1", - "basePath": "http://localhost:8088/stasis", + "basePath": "http://localhost:8088/ari", "resourcePath": "/api-docs/channels.{format}", "apis": [ { diff --git a/codegen/src/main/resources/codegen-data/ari_1_5_0/deviceStates.json b/codegen/src/main/resources/codegen-data/ari_1_5_0/deviceStates.json index 95decd98..c14b55de 100644 --- a/codegen/src/main/resources/codegen-data/ari_1_5_0/deviceStates.json +++ b/codegen/src/main/resources/codegen-data/ari_1_5_0/deviceStates.json @@ -4,7 +4,7 @@ "_svn_revision": "$Revision$", "apiVersion": "1.5.0", "swaggerVersion": "1.1", - "basePath": "http://localhost:8088/stasis", + "basePath": "http://localhost:8088/ari", "resourcePath": "/api-docs/deviceStates.{format}", "apis": [ { diff --git a/codegen/src/main/resources/codegen-data/ari_1_5_0/endpoints.json b/codegen/src/main/resources/codegen-data/ari_1_5_0/endpoints.json index e8434ba9..f30ce9a0 100644 --- a/codegen/src/main/resources/codegen-data/ari_1_5_0/endpoints.json +++ b/codegen/src/main/resources/codegen-data/ari_1_5_0/endpoints.json @@ -4,7 +4,7 @@ "_svn_revision": "$Revision$", "apiVersion": "1.5.0", "swaggerVersion": "1.1", - "basePath": "http://localhost:8088/stasis", + "basePath": "http://localhost:8088/ari", "resourcePath": "/api-docs/endpoints.{format}", "apis": [ { diff --git a/codegen/src/main/resources/codegen-data/ari_1_5_0/events.json b/codegen/src/main/resources/codegen-data/ari_1_5_0/events.json index 9288ac05..d75e84b9 100644 --- a/codegen/src/main/resources/codegen-data/ari_1_5_0/events.json +++ b/codegen/src/main/resources/codegen-data/ari_1_5_0/events.json @@ -4,7 +4,7 @@ "_svn_revision": "$Revision$", "apiVersion": "1.5.0", "swaggerVersion": "1.2", - "basePath": "http://localhost:8088/stasis", + "basePath": "http://localhost:8088/ari", "resourcePath": "/api-docs/events.{format}", "apis": [ { @@ -203,7 +203,6 @@ }, "RecordingStarted": { "id": "RecordingStarted", - "extends": "Event", "description": "Event showing the start of a recording operation.", "properties": { "recording": { @@ -215,7 +214,6 @@ }, "RecordingFinished": { "id": "RecordingFinished", - "extends": "Event", "description": "Event showing the completion of a recording operation.", "properties": { "recording": { @@ -227,7 +225,6 @@ }, "RecordingFailed": { "id": "RecordingFailed", - "extends": "Event", "description": "Event showing failure of a recording operation.", "properties": { "recording": { @@ -285,6 +282,11 @@ "required": true, "type": "Channel" }, + "replace_channel": { + "description": "The channel that is replacing transferer when the transferee(s) can not be transferred directly", + "required": false, + "type": "Channel" + }, "transferee": { "description": "The channel that is being transferred", "required": false, diff --git a/codegen/src/main/resources/codegen-data/ari_1_5_0/mailboxes.json b/codegen/src/main/resources/codegen-data/ari_1_5_0/mailboxes.json index 002c79bb..0deb5fb4 100644 --- a/codegen/src/main/resources/codegen-data/ari_1_5_0/mailboxes.json +++ b/codegen/src/main/resources/codegen-data/ari_1_5_0/mailboxes.json @@ -4,7 +4,7 @@ "_svn_revision": "$Revision$", "apiVersion": "1.5.0", "swaggerVersion": "1.1", - "basePath": "http://localhost:8088/stasis", + "basePath": "http://localhost:8088/ari", "resourcePath": "/api-docs/mailboxes.{format}", "apis": [ { diff --git a/codegen/src/main/resources/codegen-data/ari_1_5_0/playbacks.json b/codegen/src/main/resources/codegen-data/ari_1_5_0/playbacks.json index 79cedb7a..f892fb3d 100644 --- a/codegen/src/main/resources/codegen-data/ari_1_5_0/playbacks.json +++ b/codegen/src/main/resources/codegen-data/ari_1_5_0/playbacks.json @@ -4,7 +4,7 @@ "_svn_revision": "$Revision$", "apiVersion": "1.5.0", "swaggerVersion": "1.1", - "basePath": "http://localhost:8088/stasis", + "basePath": "http://localhost:8088/ari", "resourcePath": "/api-docs/playbacks.{format}", "apis": [ { diff --git a/codegen/src/main/resources/codegen-data/ari_1_5_0/recordings.json b/codegen/src/main/resources/codegen-data/ari_1_5_0/recordings.json index 0e077e20..89c55d59 100644 --- a/codegen/src/main/resources/codegen-data/ari_1_5_0/recordings.json +++ b/codegen/src/main/resources/codegen-data/ari_1_5_0/recordings.json @@ -4,7 +4,7 @@ "_svn_revision": "$Revision$", "apiVersion": "1.5.0", "swaggerVersion": "1.1", - "basePath": "http://localhost:8088/stasis", + "basePath": "http://localhost:8088/ari", "resourcePath": "/api-docs/recordings.{format}", "apis": [ { diff --git a/codegen/src/main/resources/codegen-data/ari_1_5_0/sounds.json b/codegen/src/main/resources/codegen-data/ari_1_5_0/sounds.json index b97f725d..dd0b7175 100644 --- a/codegen/src/main/resources/codegen-data/ari_1_5_0/sounds.json +++ b/codegen/src/main/resources/codegen-data/ari_1_5_0/sounds.json @@ -4,7 +4,7 @@ "_svn_revision": "$Revision$", "apiVersion": "1.5.0", "swaggerVersion": "1.1", - "basePath": "http://localhost:8088/stasis", + "basePath": "http://localhost:8088/ari", "resourcePath": "/api-docs/sounds.{format}", "apis": [ { diff --git a/codegen/src/main/resources/codegen-data/ari_1_6_0/channels.json b/codegen/src/main/resources/codegen-data/ari_1_6_0/channels.json index 67634740..cd309db1 100644 --- a/codegen/src/main/resources/codegen-data/ari_1_6_0/channels.json +++ b/codegen/src/main/resources/codegen-data/ari_1_6_0/channels.json @@ -112,6 +112,14 @@ "required": false, "allowMultiple": false, "dataType": "string" + }, + { + "name": "originator", + "description": "The unique id of the channel which is originating this one.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" } ], "errorResponses": [ @@ -244,6 +252,14 @@ "required": false, "allowMultiple": false, "dataType": "string" + }, + { + "name": "originator", + "description": "The unique id of the channel which is originating this one.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" } ], "errorResponses": [ @@ -1449,6 +1465,11 @@ "required": true, "type": "Date", "description": "Timestamp when channel was created" + }, + "language": { + "required": true, + "type": "string", + "description": "The default spoken language" } } } diff --git a/codegen/src/main/resources/codegen-data/ari_1_7_0/applications.json b/codegen/src/main/resources/codegen-data/ari_1_7_0/applications.json index f6fe72ac..6dcdb78b 100644 --- a/codegen/src/main/resources/codegen-data/ari_1_7_0/applications.json +++ b/codegen/src/main/resources/codegen-data/ari_1_7_0/applications.json @@ -2,7 +2,7 @@ "_copyright": "Copyright (C) 2013, Digium, Inc.", "_author": "David M. Lee, II ", "_svn_revision": "$Revision$", - "apiVersion": "1.6.0", + "apiVersion": "1.7.0", "swaggerVersion": "1.1", "basePath": "http://localhost:8088/ari", "resourcePath": "/api-docs/applications.{format}", diff --git a/codegen/src/main/resources/codegen-data/ari_1_7_0/asterisk.json b/codegen/src/main/resources/codegen-data/ari_1_7_0/asterisk.json index f13b0493..263bfd61 100644 --- a/codegen/src/main/resources/codegen-data/ari_1_7_0/asterisk.json +++ b/codegen/src/main/resources/codegen-data/ari_1_7_0/asterisk.json @@ -2,7 +2,7 @@ "_copyright": "Copyright (C) 2012 - 2013, Digium, Inc.", "_author": "David M. Lee, II ", "_svn_revision": "$Revision$", - "apiVersion": "1.6.0", + "apiVersion": "1.7.0", "swaggerVersion": "1.1", "basePath": "http://localhost:8088/ari", "resourcePath": "/api-docs/asterisk.{format}", diff --git a/codegen/src/main/resources/codegen-data/ari_1_7_0/bridges.json b/codegen/src/main/resources/codegen-data/ari_1_7_0/bridges.json index 21708c83..b608be6d 100644 --- a/codegen/src/main/resources/codegen-data/ari_1_7_0/bridges.json +++ b/codegen/src/main/resources/codegen-data/ari_1_7_0/bridges.json @@ -2,7 +2,7 @@ "_copyright": "Copyright (C) 2012 - 2013, Digium, Inc.", "_author": "David M. Lee, II ", "_svn_revision": "$Revision$", - "apiVersion": "1.6.0", + "apiVersion": "1.7.0", "swaggerVersion": "1.1", "basePath": "http://localhost:8088/ari", "resourcePath": "/api-docs/bridges.{format}", @@ -60,7 +60,7 @@ "httpMethod": "POST", "summary": "Create a new bridge or updates an existing one.", "notes": "This bridge persists until it has been shut down, or Asterisk has been shut down.", - "nickname": "create_or_update_with_id", + "nickname": "createWithId", "responseClass": "Bridge", "parameters": [ { @@ -398,7 +398,7 @@ { "httpMethod": "POST", "summary": "Start playback of media on a bridge.", - "notes": "The media URI may be any of a number of URI's. Currently sound: and recording: URI's are supported. This operation creates a playback resource that can be used to control the playback of media (pause, rewind, fast forward, etc.)", + "notes": "The media URI may be any of a number of URI's. Currently sound:, recording:, number:, digits:, characters:, and tone: URI's are supported. This operation creates a playback resource that can be used to control the playback of media (pause, rewind, fast forward, etc.)", "nickname": "playWithId", "responseClass": "Playback", "parameters": [ diff --git a/codegen/src/main/resources/codegen-data/ari_1_7_0/channels.json b/codegen/src/main/resources/codegen-data/ari_1_7_0/channels.json index 87dee7c8..bc0879b5 100644 --- a/codegen/src/main/resources/codegen-data/ari_1_7_0/channels.json +++ b/codegen/src/main/resources/codegen-data/ari_1_7_0/channels.json @@ -2,7 +2,7 @@ "_copyright": "Copyright (C) 2012 - 2013, Digium, Inc.", "_author": "David M. Lee, II ", "_svn_revision": "$Revision$", - "apiVersion": "1.6.0", + "apiVersion": "1.7.0", "swaggerVersion": "1.1", "basePath": "http://localhost:8088/ari", "resourcePath": "/api-docs/channels.{format}", @@ -34,7 +34,7 @@ }, { "name": "extension", - "description": "The extension to dial after the endpoint answers", + "description": "The extension to dial after the endpoint answers. Mutually exclusive with 'app'.", "paramType": "query", "required": false, "allowMultiple": false, @@ -42,7 +42,7 @@ }, { "name": "context", - "description": "The context to dial after the endpoint answers. If omitted, uses 'default'", + "description": "The context to dial after the endpoint answers. If omitted, uses 'default'. Mutually exclusive with 'app'.", "paramType": "query", "required": false, "allowMultiple": false, @@ -50,7 +50,7 @@ }, { "name": "priority", - "description": "The priority to dial after the endpoint answers. If omitted, uses 1", + "description": "The priority to dial after the endpoint answers. If omitted, uses 1. Mutually exclusive with 'app'.", "paramType": "query", "required": false, "allowMultiple": false, @@ -58,7 +58,7 @@ }, { "name": "label", - "description": "The label to dial after the endpoint answers. Will supersede 'priority' if provided.", + "description": "The label to dial after the endpoint answers. Will supersede 'priority' if provided. Mutually exclusive with 'app'.", "paramType": "query", "required": false, "allowMultiple": false, @@ -66,7 +66,7 @@ }, { "name": "app", - "description": "The application that is subscribed to the originated channel, and passed to the Stasis application.", + "description": "The application that is subscribed to the originated channel. When the channel is answered, it will be passed to this Stasis application. Mutually exclusive with 'context', 'extension', 'priority', and 'label'.", "paramType": "query", "required": false, "allowMultiple": false, @@ -74,7 +74,7 @@ }, { "name": "appArgs", - "description": "The application arguments to pass to the Stasis application.", + "description": "The application arguments to pass to the Stasis application provided by 'app'. Mutually exclusive with 'context', 'extension', 'priority', and 'label'.", "paramType": "query", "required": false, "allowMultiple": false, @@ -190,7 +190,7 @@ }, { "name": "extension", - "description": "The extension to dial after the endpoint answers", + "description": "The extension to dial after the endpoint answers. Mutually exclusive with 'app'.", "paramType": "query", "required": false, "allowMultiple": false, @@ -198,7 +198,7 @@ }, { "name": "context", - "description": "The context to dial after the endpoint answers. If omitted, uses 'default'", + "description": "The context to dial after the endpoint answers. If omitted, uses 'default'. Mutually exclusive with 'app'.", "paramType": "query", "required": false, "allowMultiple": false, @@ -206,7 +206,7 @@ }, { "name": "priority", - "description": "The priority to dial after the endpoint answers. If omitted, uses 1", + "description": "The priority to dial after the endpoint answers. If omitted, uses 1. Mutually exclusive with 'app'.", "paramType": "query", "required": false, "allowMultiple": false, @@ -214,7 +214,7 @@ }, { "name": "label", - "description": "The label to dial after the endpoint answers. Will supersede priority, if provided", + "description": "The label to dial after the endpoint answers. Will supersede 'priority' if provided. Mutually exclusive with 'app'.", "paramType": "query", "required": false, "allowMultiple": false, @@ -222,7 +222,7 @@ }, { "name": "app", - "description": "The application that is subscribed to the originated channel, and passed to the Stasis application.", + "description": "The application that is subscribed to the originated channel. When the channel is answered, it will be passed to this Stasis application. Mutually exclusive with 'context', 'extension', 'priority', and 'label'.", "paramType": "query", "required": false, "allowMultiple": false, @@ -230,7 +230,7 @@ }, { "name": "appArgs", - "description": "The application arguments to pass to the Stasis application.", + "description": "The application arguments to pass to the Stasis application provided by 'app'. Mutually exclusive with 'context', 'extension', 'priority', and 'label'.", "paramType": "query", "required": false, "allowMultiple": false, @@ -313,7 +313,8 @@ "values": [ "normal", "busy", - "congestion" + "congestion", + "no_answer" ] } } @@ -395,6 +396,54 @@ } ] }, + { + "path": "/channels/{channelId}/redirect", + "description": "Inform the channel that it should redirect itself to a different location. Note that this will almost certainly cause the channel to exit the application.", + "operations": [ + { + "httpMethod": "POST", + "summary": "Redirect the channel to a different location.", + "nickname": "redirect", + "responseClass": "void", + "parameters": [ + { + "name": "channelId", + "description": "Channel's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "endpoint", + "description": "The endpoint to redirect the channel to", + "paramType": "query", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 400, + "reason": "Endpoint parameter not provided" + }, + { + "code": 404, + "reason": "Channel or endpoint not found" + }, + { + "code": 409, + "reason": "Channel not in a Stasis application" + }, + { + "code": 422, + "reason": "Endpoint is not the same type as the channel" + } + ] + } + ] + }, { "path": "/channels/{channelId}/answer", "description": "Answer a channel", @@ -922,7 +971,7 @@ { "httpMethod": "POST", "summary": "Start playback of media and specify the playbackId.", - "notes": "The media URI may be any of a number of URI's. Currently sound: and recording: URI's are supported. This operation creates a playback resource that can be used to control the playback of media (pause, rewind, fast forward, etc.)", + "notes": "The media URI may be any of a number of URI's. Currently sound:, recording:, number:, digits:, characters:, and tone: URI's are supported. This operation creates a playback resource that can be used to control the playback of media (pause, rewind, fast forward, etc.)", "nickname": "playWithId", "responseClass": "Playback", "parameters": [ @@ -1150,7 +1199,7 @@ }, { "code": 404, - "reason": "Channel not found" + "reason": "Channel or variable not found" }, { "code": 409, diff --git a/codegen/src/main/resources/codegen-data/ari_1_7_0/deviceStates.json b/codegen/src/main/resources/codegen-data/ari_1_7_0/deviceStates.json index 02d5d208..e2322739 100644 --- a/codegen/src/main/resources/codegen-data/ari_1_7_0/deviceStates.json +++ b/codegen/src/main/resources/codegen-data/ari_1_7_0/deviceStates.json @@ -2,7 +2,7 @@ "_copyright": "Copyright (C) 2012 - 2013, Digium, Inc.", "_author": "Kevin Harwell ", "_svn_revision": "$Revision$", - "apiVersion": "1.6.0", + "apiVersion": "1.7.0", "swaggerVersion": "1.1", "basePath": "http://localhost:8088/ari", "resourcePath": "/api-docs/deviceStates.{format}", diff --git a/codegen/src/main/resources/codegen-data/ari_1_7_0/endpoints.json b/codegen/src/main/resources/codegen-data/ari_1_7_0/endpoints.json index e7b4ba73..4fd077c1 100644 --- a/codegen/src/main/resources/codegen-data/ari_1_7_0/endpoints.json +++ b/codegen/src/main/resources/codegen-data/ari_1_7_0/endpoints.json @@ -2,7 +2,7 @@ "_copyright": "Copyright (C) 2012 - 2013, Digium, Inc.", "_author": "David M. Lee, II ", "_svn_revision": "$Revision$", - "apiVersion": "1.6.0", + "apiVersion": "1.7.0", "swaggerVersion": "1.1", "basePath": "http://localhost:8088/ari", "resourcePath": "/api-docs/endpoints.{format}", @@ -63,6 +63,10 @@ } ], "errorResponses": [ + { + "code": 400, + "reason": "Invalid parameters for sending a message." + }, { "code": 404, "reason": "Endpoint not found" diff --git a/codegen/src/main/resources/codegen-data/ari_1_7_0/events.json b/codegen/src/main/resources/codegen-data/ari_1_7_0/events.json index 1aceb71e..392b0ac7 100644 --- a/codegen/src/main/resources/codegen-data/ari_1_7_0/events.json +++ b/codegen/src/main/resources/codegen-data/ari_1_7_0/events.json @@ -2,7 +2,7 @@ "_copyright": "Copyright (C) 2012 - 2013, Digium, Inc.", "_author": "David M. Lee, II ", "_svn_revision": "$Revision$", - "apiVersion": "1.6.0", + "apiVersion": "1.7.0", "swaggerVersion": "1.2", "basePath": "http://localhost:8088/ari", "resourcePath": "/api-docs/events.{format}", @@ -161,6 +161,8 @@ "ChannelVarset", "ChannelTalkingStarted", "ChannelTalkingFinished", + "ChannelHold", + "ChannelUnhold", "EndpointStateChange", "Dial", "StasisEnd", @@ -598,6 +600,33 @@ } } }, + "ChannelHold": { + "id": "ChannelHold", + "description": "A channel initiated a media hold.", + "properties": { + "channel": { + "required": true, + "type": "Channel", + "description": "The channel that initiated the hold event." + }, + "musicclass": { + "required": false, + "type": "string", + "description": "The music on hold class that the initiator requested." + } + } + }, + "ChannelUnhold": { + "id": "ChannelUnhold", + "description": "A channel initiated a media unhold.", + "properties": { + "channel": { + "required": true, + "type": "Channel", + "description": "The channel that initiated the unhold event." + } + } + }, "ChannelTalkingStarted": { "id": "ChannelTalkingStarted", "description": "Talking was detected on the channel.", diff --git a/codegen/src/main/resources/codegen-data/ari_1_7_0/mailboxes.json b/codegen/src/main/resources/codegen-data/ari_1_7_0/mailboxes.json index 87c6f034..324e3788 100644 --- a/codegen/src/main/resources/codegen-data/ari_1_7_0/mailboxes.json +++ b/codegen/src/main/resources/codegen-data/ari_1_7_0/mailboxes.json @@ -2,7 +2,7 @@ "_copyright": "Copyright (C) 2013, Digium, Inc.", "_author": "Jonathan Rose ", "_svn_revision": "$Revision$", - "apiVersion": "1.6.0", + "apiVersion": "1.7.0", "swaggerVersion": "1.1", "basePath": "http://localhost:8088/ari", "resourcePath": "/api-docs/mailboxes.{format}", diff --git a/codegen/src/main/resources/codegen-data/ari_1_7_0/playbacks.json b/codegen/src/main/resources/codegen-data/ari_1_7_0/playbacks.json index 65ef5245..63df3f24 100644 --- a/codegen/src/main/resources/codegen-data/ari_1_7_0/playbacks.json +++ b/codegen/src/main/resources/codegen-data/ari_1_7_0/playbacks.json @@ -2,7 +2,7 @@ "_copyright": "Copyright (C) 2012 - 2013, Digium, Inc.", "_author": "David M. Lee, II ", "_svn_revision": "$Revision$", - "apiVersion": "1.6.0", + "apiVersion": "1.7.0", "swaggerVersion": "1.1", "basePath": "http://localhost:8088/ari", "resourcePath": "/api-docs/playbacks.{format}", diff --git a/codegen/src/main/resources/codegen-data/ari_1_7_0/recordings.json b/codegen/src/main/resources/codegen-data/ari_1_7_0/recordings.json index d96184bd..51f0a21f 100644 --- a/codegen/src/main/resources/codegen-data/ari_1_7_0/recordings.json +++ b/codegen/src/main/resources/codegen-data/ari_1_7_0/recordings.json @@ -2,7 +2,7 @@ "_copyright": "Copyright (C) 2012 - 2013, Digium, Inc.", "_author": "David M. Lee, II ", "_svn_revision": "$Revision$", - "apiVersion": "1.6.0", + "apiVersion": "1.7.0", "swaggerVersion": "1.1", "basePath": "http://localhost:8088/ari", "resourcePath": "/api-docs/recordings.{format}", diff --git a/codegen/src/main/resources/codegen-data/ari_1_7_0/sounds.json b/codegen/src/main/resources/codegen-data/ari_1_7_0/sounds.json index 906eb6bf..628aa194 100644 --- a/codegen/src/main/resources/codegen-data/ari_1_7_0/sounds.json +++ b/codegen/src/main/resources/codegen-data/ari_1_7_0/sounds.json @@ -2,7 +2,7 @@ "_copyright": "Copyright (C) 2012 - 2013, Digium, Inc.", "_author": "David M. Lee, II ", "_svn_revision": "$Revision$", - "apiVersion": "1.6.0", + "apiVersion": "1.7.0", "swaggerVersion": "1.1", "basePath": "http://localhost:8088/ari", "resourcePath": "/api-docs/sounds.{format}", diff --git a/codegen/src/main/resources/codegen-data/ari_2_0_0/channels.json b/codegen/src/main/resources/codegen-data/ari_2_0_0/channels.json index 602606cf..a254d565 100644 --- a/codegen/src/main/resources/codegen-data/ari_2_0_0/channels.json +++ b/codegen/src/main/resources/codegen-data/ari_2_0_0/channels.json @@ -414,8 +414,7 @@ "normal", "busy", "congestion", - "no_answer", - "answered_elsewhere" + "no_answer" ] } } diff --git a/codegen/src/main/resources/codegen-data/ari_3_0_0/bridges.json b/codegen/src/main/resources/codegen-data/ari_3_0_0/bridges.json index 03a1e7a6..877fdf84 100644 --- a/codegen/src/main/resources/codegen-data/ari_3_0_0/bridges.json +++ b/codegen/src/main/resources/codegen-data/ari_3_0_0/bridges.json @@ -26,7 +26,7 @@ "parameters": [ { "name": "type", - "description": "Comma separated list of bridge type attributes (mixing, holding, dtmf_events, proxy_media).", + "description": "Comma separated list of bridge type attributes (mixing, holding, dtmf_events, proxy_media, video_sfu).", "paramType": "query", "required": false, "allowMultiple": false, @@ -65,7 +65,7 @@ "parameters": [ { "name": "type", - "description": "Comma separated list of bridge type attributes (mixing, holding, dtmf_events, proxy_media) to set.", + "description": "Comma separated list of bridge type attributes (mixing, holding, dtmf_events, proxy_media, video_sfu) to set.", "paramType": "query", "required": false, "allowMultiple": false, diff --git a/codegen/src/main/resources/codegen-data/ari_4_0_0/asterisk.json b/codegen/src/main/resources/codegen-data/ari_4_0_0/asterisk.json index f40bf5c6..841e6cd8 100644 --- a/codegen/src/main/resources/codegen-data/ari_4_0_0/asterisk.json +++ b/codegen/src/main/resources/codegen-data/ari_4_0_0/asterisk.json @@ -178,6 +178,18 @@ } ] }, + { + "path": "/asterisk/ping", + "description": "Asterisk ping", + "operations": [ + { + "httpMethod": "GET", + "summary": "Response pong message.", + "nickname": "ping", + "responseClass": "AsteriskPing" + } + ] + }, { "path": "/asterisk/modules", "description": "Asterisk modules", @@ -604,6 +616,27 @@ } } }, + "AsteriskPing": { + "id": "AsteriskPing", + "description": "Asterisk ping information", + "properties": { + "asterisk_id": { + "required": true, + "type": "string", + "description": "Asterisk id info" + }, + "ping": { + "required": true, + "type": "string", + "description": "Always string value is pong" + }, + "timestamp": { + "required": true, + "type": "string", + "description": "The timestamp string of request received time" + } + } + }, "Module": { "id": "Module", "description": "Details of an Asterisk module", diff --git a/codegen/src/main/resources/codegen-data/ari_4_0_0/channels.json b/codegen/src/main/resources/codegen-data/ari_4_0_0/channels.json index ec8bae23..08db2246 100644 --- a/codegen/src/main/resources/codegen-data/ari_4_0_0/channels.json +++ b/codegen/src/main/resources/codegen-data/ari_4_0_0/channels.json @@ -421,6 +421,14 @@ "busy", "congestion", "no_answer", + "timeout", + "rejected", + "unallocated", + "normal_unspecified", + "number_incomplete", + "codec_mismatch", + "interworking", + "failure", "answered_elsewhere" ] } diff --git a/codegen/src/main/resources/codegen-data/ari_4_0_1/events.json b/codegen/src/main/resources/codegen-data/ari_4_0_1/events.json index c9f4b6ae..c9822f6c 100644 --- a/codegen/src/main/resources/codegen-data/ari_4_0_1/events.json +++ b/codegen/src/main/resources/codegen-data/ari_4_0_1/events.json @@ -148,7 +148,7 @@ "timestamp": { "type": "Date", "description": "Time at which this event was created.", - "required": false + "required": true } }, "subTypes": [ diff --git a/codegen/src/main/resources/codegen-data/ari_4_0_2/channels.json b/codegen/src/main/resources/codegen-data/ari_4_0_2/channels.json index 4ea5f564..366fec8e 100644 --- a/codegen/src/main/resources/codegen-data/ari_4_0_2/channels.json +++ b/codegen/src/main/resources/codegen-data/ari_4_0_2/channels.json @@ -1748,6 +1748,131 @@ ] } ] + }, + { + "path": "/channels/externalMedia", + "description": "Create a channel to an External Media source/sink.", + "operations": [ + { + "httpMethod": "POST", + "summary": "Start an External Media session.", + "notes": "Create a channel to an External Media source/sink.", + "nickname": "externalMedia", + "responseClass": "Channel", + "parameters": [ + { + "name": "channelId", + "description": "The unique id to assign the channel on creation.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "app", + "description": "Stasis Application to place channel into", + "paramType": "query", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "variables", + "description": "The \"variables\" key in the body object holds variable key/value pairs to set on the channel on creation. Other keys in the body object are interpreted as query parameters. Ex. { \"endpoint\": \"SIP/Alice\", \"variables\": { \"CALLERID(name)\": \"Alice\" } }", + "paramType": "body", + "required": false, + "dataType": "containers", + "allowMultiple": false + }, + { + "name": "external_host", + "description": "Hostname/ip:port of external host", + "paramType": "query", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "encapsulation", + "description": "Payload encapsulation protocol", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string", + "defaultValue": "rtp", + "allowableValues": { + "valueType": "LIST", + "values": [ + "rtp" + ] + } + }, + { + "name": "transport", + "description": "Transport protocol", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string", + "defaultValue": "udp", + "allowableValues": { + "valueType": "LIST", + "values": [ + "udp" + ] + } + }, + { + "name": "connection_type", + "description": "Connection type (client/server)", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string", + "defaultValue": "client", + "allowableValues": { + "valueType": "LIST", + "values": [ + "client" + ] + } + }, + { + "name": "format", + "description": "Format to encode audio in", + "paramType": "query", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "direction", + "description": "External media direction", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string", + "defaultValue": "both", + "allowableValues": { + "valueType": "LIST", + "values": [ + "both" + ] + } + } + ], + "errorResponses": [ + { + "code": 400, + "reason": "Invalid parameters" + }, + { + "code": 409, + "reason": "Channel is not in a Stasis application; Channel is already bridged" + } + ] + } + ] } ], "models": { diff --git a/codegen/src/main/resources/codegen-data/ari_4_1_3/bridges.json b/codegen/src/main/resources/codegen-data/ari_4_1_3/bridges.json index 22743c3b..3e757e98 100644 --- a/codegen/src/main/resources/codegen-data/ari_4_1_3/bridges.json +++ b/codegen/src/main/resources/codegen-data/ari_4_1_3/bridges.json @@ -30,7 +30,7 @@ "parameters": [ { "name": "type", - "description": "Comma separated list of bridge type attributes (mixing, holding, dtmf_events, proxy_media, video_sfu).", + "description": "Comma separated list of bridge type attributes (mixing, holding, dtmf_events, proxy_media, video_sfu, video_single).", "paramType": "query", "required": false, "allowMultiple": false, @@ -69,7 +69,7 @@ "parameters": [ { "name": "type", - "description": "Comma separated list of bridge type attributes (mixing, holding, dtmf_events, proxy_media, video_sfu) to set.", + "description": "Comma separated list of bridge type attributes (mixing, holding, dtmf_events, proxy_media, video_sfu, video_single) to set.", "paramType": "query", "required": false, "allowMultiple": false, @@ -746,7 +746,7 @@ }, "video_mode": { "type": "string", - "description": "The video mode the bridge is using. One of 'none', 'talker', or 'single'.", + "description": "The video mode the bridge is using. One of 'none', 'talker', 'sfu', or 'single'.", "required": false }, "video_source_id": { diff --git a/codegen/src/main/resources/codegen-data/ari_4_1_3/playbacks.json b/codegen/src/main/resources/codegen-data/ari_4_1_3/playbacks.json index a78dcae7..793986fc 100644 --- a/codegen/src/main/resources/codegen-data/ari_4_1_3/playbacks.json +++ b/codegen/src/main/resources/codegen-data/ari_4_1_3/playbacks.json @@ -154,7 +154,8 @@ "queued", "playing", "continuing", - "done" + "done", + "failed" ] } } diff --git a/codegen/src/main/resources/codegen-data/ari_5_0_0/channels.json b/codegen/src/main/resources/codegen-data/ari_5_0_0/channels.json index 77412695..94afb277 100644 --- a/codegen/src/main/resources/codegen-data/ari_5_0_0/channels.json +++ b/codegen/src/main/resources/codegen-data/ari_5_0_0/channels.json @@ -1755,6 +1755,131 @@ ] } ] + }, + { + "path": "/channels/externalMedia", + "description": "Create a channel to an External Media source/sink.", + "operations": [ + { + "httpMethod": "POST", + "summary": "Start an External Media session.", + "notes": "Create a channel to an External Media source/sink.", + "nickname": "externalMedia", + "responseClass": "Channel", + "parameters": [ + { + "name": "channelId", + "description": "The unique id to assign the channel on creation.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "app", + "description": "Stasis Application to place channel into", + "paramType": "query", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "variables", + "description": "The \"variables\" key in the body object holds variable key/value pairs to set on the channel on creation. Other keys in the body object are interpreted as query parameters. Ex. { \"endpoint\": \"SIP/Alice\", \"variables\": { \"CALLERID(name)\": \"Alice\" } }", + "paramType": "body", + "required": false, + "dataType": "containers", + "allowMultiple": false + }, + { + "name": "external_host", + "description": "Hostname/ip:port of external host", + "paramType": "query", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "encapsulation", + "description": "Payload encapsulation protocol", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string", + "defaultValue": "rtp", + "allowableValues": { + "valueType": "LIST", + "values": [ + "rtp" + ] + } + }, + { + "name": "transport", + "description": "Transport protocol", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string", + "defaultValue": "udp", + "allowableValues": { + "valueType": "LIST", + "values": [ + "udp" + ] + } + }, + { + "name": "connection_type", + "description": "Connection type (client/server)", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string", + "defaultValue": "client", + "allowableValues": { + "valueType": "LIST", + "values": [ + "client" + ] + } + }, + { + "name": "format", + "description": "Format to encode audio in", + "paramType": "query", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "direction", + "description": "External media direction", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string", + "defaultValue": "both", + "allowableValues": { + "valueType": "LIST", + "values": [ + "both" + ] + } + } + ], + "errorResponses": [ + { + "code": 400, + "reason": "Invalid parameters" + }, + { + "code": 409, + "reason": "Channel is not in a Stasis application; Channel is already bridged" + } + ] + } + ] } ], "models": { diff --git a/codegen/src/main/resources/codegen-data/ari_5_1_1/bridges.json b/codegen/src/main/resources/codegen-data/ari_5_1_1/bridges.json index 22743c3b..3e757e98 100644 --- a/codegen/src/main/resources/codegen-data/ari_5_1_1/bridges.json +++ b/codegen/src/main/resources/codegen-data/ari_5_1_1/bridges.json @@ -30,7 +30,7 @@ "parameters": [ { "name": "type", - "description": "Comma separated list of bridge type attributes (mixing, holding, dtmf_events, proxy_media, video_sfu).", + "description": "Comma separated list of bridge type attributes (mixing, holding, dtmf_events, proxy_media, video_sfu, video_single).", "paramType": "query", "required": false, "allowMultiple": false, @@ -69,7 +69,7 @@ "parameters": [ { "name": "type", - "description": "Comma separated list of bridge type attributes (mixing, holding, dtmf_events, proxy_media, video_sfu) to set.", + "description": "Comma separated list of bridge type attributes (mixing, holding, dtmf_events, proxy_media, video_sfu, video_single) to set.", "paramType": "query", "required": false, "allowMultiple": false, @@ -746,7 +746,7 @@ }, "video_mode": { "type": "string", - "description": "The video mode the bridge is using. One of 'none', 'talker', or 'single'.", + "description": "The video mode the bridge is using. One of 'none', 'talker', 'sfu', or 'single'.", "required": false }, "video_source_id": { diff --git a/codegen/src/main/resources/codegen-data/ari_6_0_0/bridges.json b/codegen/src/main/resources/codegen-data/ari_6_0_0/bridges.json index 22743c3b..bf0a0016 100644 --- a/codegen/src/main/resources/codegen-data/ari_6_0_0/bridges.json +++ b/codegen/src/main/resources/codegen-data/ari_6_0_0/bridges.json @@ -30,7 +30,7 @@ "parameters": [ { "name": "type", - "description": "Comma separated list of bridge type attributes (mixing, holding, dtmf_events, proxy_media, video_sfu).", + "description": "Comma separated list of bridge type attributes (mixing, holding, dtmf_events, proxy_media, video_sfu, video_single).", "paramType": "query", "required": false, "allowMultiple": false, @@ -69,7 +69,7 @@ "parameters": [ { "name": "type", - "description": "Comma separated list of bridge type attributes (mixing, holding, dtmf_events, proxy_media, video_sfu) to set.", + "description": "Comma separated list of bridge type attributes (mixing, holding, dtmf_events, proxy_media, video_sfu, video_single) to set.", "paramType": "query", "required": false, "allowMultiple": false, @@ -191,6 +191,15 @@ "allowMultiple": false, "dataType": "boolean", "defaultValue": false + }, + { + "name": "inhibitConnectedLineUpdates", + "description": "Do not present the identity of the newly connected channel to other bridge members", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "boolean", + "defaultValue": false } ], "errorResponses": [ @@ -746,7 +755,7 @@ }, "video_mode": { "type": "string", - "description": "The video mode the bridge is using. One of 'none', 'talker', or 'single'.", + "description": "The video mode the bridge is using. One of 'none', 'talker', 'sfu', or 'single'.", "required": false }, "video_source_id": { diff --git a/codegen/src/main/resources/codegen-data/ari_6_0_0/channels.json b/codegen/src/main/resources/codegen-data/ari_6_0_0/channels.json index 77412695..04d15773 100644 --- a/codegen/src/main/resources/codegen-data/ari_6_0_0/channels.json +++ b/codegen/src/main/resources/codegen-data/ari_6_0_0/channels.json @@ -222,6 +222,14 @@ "required": false, "allowMultiple": false, "dataType": "string" + }, + { + "name": "variables", + "description": "The \"variables\" key in the body object holds variable key/value pairs to set on the channel on creation. Other keys in the body object are interpreted as query parameters. Ex. { \"endpoint\": \"SIP/Alice\", \"variables\": { \"CALLERID(name)\": \"Alice\" } }", + "paramType": "body", + "required": false, + "dataType": "containers", + "allowMultiple": false } ], "errorResponses": [ @@ -1755,6 +1763,141 @@ ] } ] + }, + { + "path": "/channels/externalMedia", + "description": "Create a channel to an External Media source/sink.", + "operations": [ + { + "httpMethod": "POST", + "summary": "Start an External Media session.", + "notes": "Create a channel to an External Media source/sink.", + "nickname": "externalMedia", + "responseClass": "Channel", + "parameters": [ + { + "name": "channelId", + "description": "The unique id to assign the channel on creation.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "app", + "description": "Stasis Application to place channel into", + "paramType": "query", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "variables", + "description": "The \"variables\" key in the body object holds variable key/value pairs to set on the channel on creation. Other keys in the body object are interpreted as query parameters. Ex. { \"endpoint\": \"SIP/Alice\", \"variables\": { \"CALLERID(name)\": \"Alice\" } }", + "paramType": "body", + "required": false, + "dataType": "containers", + "allowMultiple": false + }, + { + "name": "external_host", + "description": "Hostname/ip:port of external host", + "paramType": "query", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "encapsulation", + "description": "Payload encapsulation protocol", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string", + "defaultValue": "rtp", + "allowableValues": { + "valueType": "LIST", + "values": [ + "rtp", + "audiosocket" + ] + } + }, + { + "name": "transport", + "description": "Transport protocol", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string", + "defaultValue": "udp", + "allowableValues": { + "valueType": "LIST", + "values": [ + "udp", + "tcp" + ] + } + }, + { + "name": "connection_type", + "description": "Connection type (client/server)", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string", + "defaultValue": "client", + "allowableValues": { + "valueType": "LIST", + "values": [ + "client" + ] + } + }, + { + "name": "format", + "description": "Format to encode audio in", + "paramType": "query", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "direction", + "description": "External media direction", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string", + "defaultValue": "both", + "allowableValues": { + "valueType": "LIST", + "values": [ + "both" + ] + } + }, + { + "name": "data", + "description": "An arbitrary data field", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 400, + "reason": "Invalid parameters" + }, + { + "code": 409, + "reason": "Channel is not in a Stasis application; Channel is already bridged" + } + ] + } + ] } ], "models": { diff --git a/codegen/src/main/resources/codegen-data/ari_6_0_0/endpoints.json b/codegen/src/main/resources/codegen-data/ari_6_0_0/endpoints.json index 264c0eb2..1f77d370 100644 --- a/codegen/src/main/resources/codegen-data/ari_6_0_0/endpoints.json +++ b/codegen/src/main/resources/codegen-data/ari_6_0_0/endpoints.json @@ -233,22 +233,6 @@ } } }, - "TextMessageVariable": { - "id": "TextMessageVariable", - "description": "A key/value pair variable in a text message.", - "properties": { - "key": { - "type": "string", - "description": "A unique key identifying the variable.", - "required": true - }, - "value": { - "type": "string", - "description": "The value of the variable.", - "required": true - } - } - }, "TextMessage": { "id": "TextMessage", "description": "A text message.", @@ -269,8 +253,8 @@ "required": true }, "variables": { - "type": "List[TextMessageVariable]", - "description": "Technology specific key/value pairs associated with the message.", + "type": "object", + "description": "Technology specific key/value pairs (JSON object) associated with the message.", "required": false } } diff --git a/codegen/src/main/resources/codegen-data/ari_6_0_0/playbacks.json b/codegen/src/main/resources/codegen-data/ari_6_0_0/playbacks.json index a78dcae7..793986fc 100644 --- a/codegen/src/main/resources/codegen-data/ari_6_0_0/playbacks.json +++ b/codegen/src/main/resources/codegen-data/ari_6_0_0/playbacks.json @@ -154,7 +154,8 @@ "queued", "playing", "continuing", - "done" + "done", + "failed" ] } } diff --git a/codegen/src/main/resources/codegen-data/ari_7_0_0/bridges.json b/codegen/src/main/resources/codegen-data/ari_7_0_0/bridges.json index a4651379..bf0a0016 100644 --- a/codegen/src/main/resources/codegen-data/ari_7_0_0/bridges.json +++ b/codegen/src/main/resources/codegen-data/ari_7_0_0/bridges.json @@ -30,7 +30,7 @@ "parameters": [ { "name": "type", - "description": "Comma separated list of bridge type attributes (mixing, holding, dtmf_events, proxy_media, video_sfu).", + "description": "Comma separated list of bridge type attributes (mixing, holding, dtmf_events, proxy_media, video_sfu, video_single).", "paramType": "query", "required": false, "allowMultiple": false, @@ -69,7 +69,7 @@ "parameters": [ { "name": "type", - "description": "Comma separated list of bridge type attributes (mixing, holding, dtmf_events, proxy_media, video_sfu) to set.", + "description": "Comma separated list of bridge type attributes (mixing, holding, dtmf_events, proxy_media, video_sfu, video_single) to set.", "paramType": "query", "required": false, "allowMultiple": false, @@ -755,7 +755,7 @@ }, "video_mode": { "type": "string", - "description": "The video mode the bridge is using. One of 'none', 'talker', or 'single'.", + "description": "The video mode the bridge is using. One of 'none', 'talker', 'sfu', or 'single'.", "required": false }, "video_source_id": { diff --git a/codegen/src/main/resources/codegen-data/ari_7_0_0/playbacks.json b/codegen/src/main/resources/codegen-data/ari_7_0_0/playbacks.json index a78dcae7..793986fc 100644 --- a/codegen/src/main/resources/codegen-data/ari_7_0_0/playbacks.json +++ b/codegen/src/main/resources/codegen-data/ari_7_0_0/playbacks.json @@ -154,7 +154,8 @@ "queued", "playing", "continuing", - "done" + "done", + "failed" ] } } From 209cbf0479cc0a356ae0813d7c9c9eaf75a79c06 Mon Sep 17 00:00:00 2001 From: Graham Brown Date: Sun, 24 Oct 2021 15:51:04 +0200 Subject: [PATCH 179/220] prepare 0.14.0 --- CHANGELOG.md | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index a29f7034..5608ece8 100755 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,7 +1,12 @@ # ARI4Java Changelog ## [Unreleased] -[Unreleased]: https://github.com/ari4java/ari4java/compare/v0.12.2...HEAD +[Unreleased]: https://github.com/ari4java/ari4java/compare/v0.14.0...HEAD + +## [0.14.0] +[0.14.0]: https://github.com/ari4java/ari4java/compare/v0.13.0...v0.14.0 +### Fixed +- ARI API resource inconsistency due to using git history on `resource.json`, now git tags (aka released versions) are used ## [0.13.0] [0.13.0]: https://github.com/ari4java/ari4java/compare/v0.12.2...v0.13.0 From c9db6aa7fb2101a9c609d1317c48923bcaa98fb1 Mon Sep 17 00:00:00 2001 From: Graham Brown Date: Sun, 24 Oct 2021 15:59:02 +0200 Subject: [PATCH 180/220] mailbox was erroneously added before - it does not exist in 1.0.0 --- src/test/java/ch/loway/oss/ari4java/ARITest.java | 1 - 1 file changed, 1 deletion(-) diff --git a/src/test/java/ch/loway/oss/ari4java/ARITest.java b/src/test/java/ch/loway/oss/ari4java/ARITest.java index 26856780..69844278 100755 --- a/src/test/java/ch/loway/oss/ari4java/ARITest.java +++ b/src/test/java/ch/loway/oss/ari4java/ARITest.java @@ -104,7 +104,6 @@ public void testBuildAction() throws Exception { assertEquals(ActionDeviceStates_impl_ari_1_0_0.class.toString(), ari.deviceStates().getClass().toString()); assertEquals(ActionEndpoints_impl_ari_1_0_0.class.toString(), ari.endpoints().getClass().toString()); assertEquals(ActionEvents_impl_ari_1_0_0.class.toString(), ari.events().getClass().toString()); - assertEquals(ActionMailboxes_impl_ari_1_0_0.class.toString(), ari.mailboxes().getClass().toString()); assertEquals(ActionPlaybacks_impl_ari_1_0_0.class.toString(), ari.playbacks().getClass().toString()); assertEquals(ActionRecordings_impl_ari_1_0_0.class.toString(), ari.recordings().getClass().toString()); assertEquals(ActionSounds_impl_ari_1_0_0.class.toString(), ari.sounds().getClass().toString()); From 0f9a148484854857ddec4741b69ce56215bb6e37 Mon Sep 17 00:00:00 2001 From: Graham Brown Date: Sun, 24 Oct 2021 16:10:12 +0200 Subject: [PATCH 181/220] oops forgot to bump the ver num here... --- build.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.gradle b/build.gradle index c5922268..4f30e35c 100755 --- a/build.gradle +++ b/build.gradle @@ -8,7 +8,7 @@ plugins { } group = "io.github.ari4java" -version = "0.13.0" +version = "0.14.0" def projectUrl = "http://github.com/ari4java/ari4java" def build_number = "x" From 2aeade867bbf78951b194a0f064521a7cb1dc0c8 Mon Sep 17 00:00:00 2001 From: Graham Brown Date: Sun, 26 Dec 2021 13:37:33 +0200 Subject: [PATCH 182/220] update libraries and refactor tests to use JUnit 5 --- build.gradle | 20 ++-- examples/build.gradle | 4 +- src/main/java/ch/loway/oss/ari4java/ARI.java | 2 +- .../java/ch/loway/oss/ari4java/ARITest.java | 36 +++--- .../ch/loway/oss/ari4java/AriFactoryTest.java | 8 +- .../ch/loway/oss/ari4java/AriVersionTest.java | 4 +- .../ari4java/generated/ActionSoundsTest.java | 74 +++++------- .../ari4java/generated/ActonBridgesTest.java | 87 ++++---------- .../ari4java/generated/BaseActionTest.java | 43 +++++++ .../DeserializeToListOfInterfaceTest.java | 16 +-- .../ari4java/generated/EventBuilderTest.java | 108 ++++++++---------- .../http/NettyHttpClientHandlerTest.java | 4 +- .../tools/http/NettyHttpClientTest.java | 64 ++++++----- 13 files changed, 226 insertions(+), 244 deletions(-) create mode 100755 src/test/java/ch/loway/oss/ari4java/generated/BaseActionTest.java diff --git a/build.gradle b/build.gradle index 4f30e35c..d7b615bc 100755 --- a/build.gradle +++ b/build.gradle @@ -8,7 +8,7 @@ plugins { } group = "io.github.ari4java" -version = "0.14.0" +version = "0.15.0" def projectUrl = "http://github.com/ari4java/ari4java" def build_number = "x" @@ -36,16 +36,17 @@ repositories { } dependencies { - implementation 'com.fasterxml.jackson.core:jackson-core:2.12.3' - implementation 'com.fasterxml.jackson.core:jackson-databind:2.12.3' - implementation 'com.fasterxml.jackson.core:jackson-annotations:2.12.3' - implementation 'io.netty:netty-all:4.1.65.Final' + implementation 'com.fasterxml.jackson.core:jackson-core:2.13.1' + implementation 'com.fasterxml.jackson.core:jackson-databind:2.13.1' + implementation 'com.fasterxml.jackson.core:jackson-annotations:2.13.1' + implementation 'io.netty:netty-all:4.1.72.Final' implementation 'javax.xml.bind:jaxb-api:2.3.1' - implementation 'org.slf4j:slf4j-api:1.7.30' + implementation 'org.slf4j:slf4j-api:1.7.32' - testImplementation 'junit:junit:4.13.2' - testImplementation 'org.mockito:mockito-core:2.28.2' - testImplementation 'org.apache.logging.log4j:log4j-slf4j-impl:2.14.1' + testImplementation 'org.junit.jupiter:junit-jupiter-api:5.8.2' + testRuntimeOnly 'org.junit.jupiter:junit-jupiter-engine:5.8.2' + testImplementation 'org.mockito:mockito-core:4.2.0' + testImplementation 'org.apache.logging.log4j:log4j-slf4j-impl:2.17.0' } task buildProps(type: WriteProperties) { @@ -75,6 +76,7 @@ javadoc { } test { + useJUnitPlatform() jacoco { excludes = ["**/generated/**"] } diff --git a/examples/build.gradle b/examples/build.gradle index f794d2f1..bb6f0f33 100755 --- a/examples/build.gradle +++ b/examples/build.gradle @@ -3,12 +3,12 @@ plugins { } repositories { - jcenter() + mavenCentral() } dependencies { compile 'ch.loway.oss.ari4java:ari4java:+' - compile 'org.apache.logging.log4j:log4j-slf4j-impl:2.13.0' + compile 'org.apache.logging.log4j:log4j-slf4j-impl:2.17.0' } java { diff --git a/src/main/java/ch/loway/oss/ari4java/ARI.java b/src/main/java/ch/loway/oss/ari4java/ARI.java index 319b369c..02557e8b 100755 --- a/src/main/java/ch/loway/oss/ari4java/ARI.java +++ b/src/main/java/ch/loway/oss/ari4java/ARI.java @@ -281,7 +281,7 @@ public void eventsCallback(AriCallback callback, boolean subscribeAll) } EventsEventWebsocketGetRequest eventsRequest = events().eventWebsocket(appName); try { - eventsRequest.setSubscribeAll(subscribeAll); + if (subscribeAll) eventsRequest.setSubscribeAll(true); } catch (UnsupportedOperationException e) { logger.warn(e.getMessage(), e); } diff --git a/src/test/java/ch/loway/oss/ari4java/ARITest.java b/src/test/java/ch/loway/oss/ari4java/ARITest.java index 69844278..781d522d 100755 --- a/src/test/java/ch/loway/oss/ari4java/ARITest.java +++ b/src/test/java/ch/loway/oss/ari4java/ARITest.java @@ -11,13 +11,13 @@ import ch.loway.oss.ari4java.generated.models.Mailbox; import ch.loway.oss.ari4java.tools.*; import ch.loway.oss.ari4java.tools.http.NettyHttpClient; -import org.junit.AfterClass; -import org.junit.BeforeClass; -import org.junit.Test; +import org.junit.jupiter.api.AfterAll; +import org.junit.jupiter.api.BeforeAll; +import org.junit.jupiter.api.Test; import java.util.concurrent.atomic.AtomicBoolean; -import static org.junit.Assert.*; +import static org.junit.jupiter.api.Assertions.*; import static org.mockito.Mockito.*; /** @@ -27,7 +27,7 @@ public class ARITest { static NettyHttpClient client; - @BeforeClass + @BeforeAll public static void start() { client = mock(NettyHttpClient.class); AriFactory.nettyHttpClient = client; @@ -54,15 +54,15 @@ public void testImplementationFactory() throws Exception { } catch (ARIException e) { exception = e.getMessage().contains("No concrete implementation"); } - assertTrue("Expected 'No concrete implementation' exception for getModelImpl(String.class)", exception); + assertTrue(exception, "Expected 'No concrete implementation' exception for getModelImpl(String.class)"); exception = false; try { ari.getModelImpl(String.class); } catch (ARIException e) { exception = e.getMessage().contains("Invalid Class"); } - assertTrue("Expected 'Invalid Class' exception for getModelImpl(String.class)", exception); - assertNotNull("Expected Action", ari.getActionImpl(ActionEvents.class)); + assertTrue(exception, "Expected 'Invalid Class' exception for getModelImpl(String.class)"); + assertNotNull(ari.getActionImpl(ActionEvents.class), "Expected Action"); try { ari.getActionImpl(String.class); fail("Expected exception"); @@ -90,13 +90,13 @@ public void testBuildAction() throws Exception { ari.setVersion(AriVersion.ARI_1_0_0); asterisk = ari.asterisk(); assertEquals(ActionAsterisk_impl_ari_1_0_0.class.toString(), asterisk.getClass().toString()); - assertNotNull("Expecting HttpClient to be set", ((ActionAsterisk_impl_ari_1_0_0)asterisk).getHttpClient()); - assertNotNull("Expecting WsClient to be set", ((ActionAsterisk_impl_ari_1_0_0)asterisk).getWsClient()); + assertNotNull(((ActionAsterisk_impl_ari_1_0_0)asterisk).getHttpClient(), "Expecting HttpClient to be set"); + assertNotNull(((ActionAsterisk_impl_ari_1_0_0)asterisk).getWsClient(), "Expecting WsClient to be set"); asterisk = ari.getActionImpl(ActionAsterisk.class); assertEquals(ActionAsterisk_impl_ari_1_0_0.class.toString(), asterisk.getClass().toString()); - assertNotNull("Expecting HttpClient to be set", ((ActionAsterisk_impl_ari_1_0_0)asterisk).getHttpClient()); - assertNotNull("Expecting WsClient to be set", ((ActionAsterisk_impl_ari_1_0_0)asterisk).getWsClient()); + assertNotNull(((ActionAsterisk_impl_ari_1_0_0)asterisk).getHttpClient(), "Expecting HttpClient to be set"); + assertNotNull(((ActionAsterisk_impl_ari_1_0_0)asterisk).getWsClient(), "Expecting WsClient to be set"); assertEquals(ActionApplications_impl_ari_1_0_0.class.toString(), ari.applications().getClass().toString()); assertEquals(ActionBridges_impl_ari_1_0_0.class.toString(), ari.bridges().getClass().toString()); @@ -112,14 +112,14 @@ public void testBuildAction() throws Exception { @Test public void testCreateUid() { String v = ARI.getUID(); - assertTrue("UID created", v.length() > 0); - assertNotSame("new UID the same as previous", v, ARI.getUID()); + assertTrue(v.length() > 0, "UID created"); + assertNotSame(v, ARI.getUID(), "new UID the same as previous"); } @Test public void testBuildVersion() { String v = new ARI().getBuildVersion(); - assertNotNull("Build Version cannot be null", v); + assertNotNull(v, "Build Version cannot be null"); } @Test @@ -151,7 +151,7 @@ public void testCloseAction() throws Exception { ari.closeAction(new Object()); fail("Expecting exception"); } catch (ARIException e) { - assertTrue("Expecting an implementation error", e.getMessage().contains("is not an Action implementation")); + assertTrue(e.getMessage().contains("is not an Action implementation"), "Expecting an implementation error"); } AtomicBoolean disconnected = new AtomicBoolean(false); ari.closeAction(new BaseAriAction() { @@ -160,10 +160,10 @@ public synchronized void disconnectWs() throws RestException { disconnected.set(true); } }); - assertTrue("Expected disconnectWs to be called", disconnected.get()); + assertTrue(disconnected.get(), "Expected disconnectWs to be called"); } - @AfterClass + @AfterAll public static void end() { AriFactory.nettyHttpClient = null; } diff --git a/src/test/java/ch/loway/oss/ari4java/AriFactoryTest.java b/src/test/java/ch/loway/oss/ari4java/AriFactoryTest.java index 4ae246d4..37186bdd 100755 --- a/src/test/java/ch/loway/oss/ari4java/AriFactoryTest.java +++ b/src/test/java/ch/loway/oss/ari4java/AriFactoryTest.java @@ -1,10 +1,10 @@ package ch.loway.oss.ari4java; import ch.loway.oss.ari4java.tools.http.NettyHttpClient; -import org.junit.AfterClass; -import org.junit.Test; +import org.junit.jupiter.api.AfterAll; +import org.junit.jupiter.api.Test; -import static org.junit.Assert.*; +import static org.junit.jupiter.api.Assertions.*; import static org.mockito.ArgumentMatchers.eq; import static org.mockito.Mockito.*; @@ -42,7 +42,7 @@ public void testDetectAriVersion() throws Exception { assertEquals(AriVersion.ARI_0_0_1, ver); } - @AfterClass + @AfterAll public static void end() { AriFactory.nettyHttpClient = null; } diff --git a/src/test/java/ch/loway/oss/ari4java/AriVersionTest.java b/src/test/java/ch/loway/oss/ari4java/AriVersionTest.java index 13506391..45e342b4 100755 --- a/src/test/java/ch/loway/oss/ari4java/AriVersionTest.java +++ b/src/test/java/ch/loway/oss/ari4java/AriVersionTest.java @@ -1,9 +1,9 @@ package ch.loway.oss.ari4java; import ch.loway.oss.ari4java.generated.ari_0_0_1.AriBuilder_impl_ari_0_0_1; -import org.junit.Test; +import org.junit.jupiter.api.Test; -import static org.junit.Assert.*; +import static org.junit.jupiter.api.Assertions.*; public class AriVersionTest { diff --git a/src/test/java/ch/loway/oss/ari4java/generated/ActionSoundsTest.java b/src/test/java/ch/loway/oss/ari4java/generated/ActionSoundsTest.java index 3b916565..795d760a 100755 --- a/src/test/java/ch/loway/oss/ari4java/generated/ActionSoundsTest.java +++ b/src/test/java/ch/loway/oss/ari4java/generated/ActionSoundsTest.java @@ -5,67 +5,49 @@ import ch.loway.oss.ari4java.generated.models.Sound; import ch.loway.oss.ari4java.tools.AriCallback; import ch.loway.oss.ari4java.tools.RestException; -import org.junit.Test; -import static org.junit.Assert.assertEquals; +import static org.junit.jupiter.api.Assertions.assertEquals; /** * @author lenz */ -public class ActionSoundsTest { - - static final String jsonSounds = requoteString("" - + " { " - + " 'id': 'abcde', " - + " 'text': 'some text', " - + " 'formats': [ " - + " { 'language': 'en', 'format': 'wav' }, " - + " { 'language': 'es', 'format': 'wav' }, " - + " { 'language': 'es', 'format': 'gsm' } " - + " ] " - + " } "); - - /** - * Strings in a JSON object need the double quotes. - * Unfortunately using double quotes in Java is a PITA. - * So... - * - * @param s - * @return Translating 's to "s - */ - public static String requoteString(String s) { - return s.replace("'", "\""); +public class ActionSoundsTest extends BaseActionTest { + + @Override + protected String getJson() { + return requoteString("" + + "{" + + " 'id': 'abcde'," + + " 'text': 'some text'," + + " 'formats': [" + + " { 'language': 'en', 'format': 'wav' }," + + " { 'language': 'es', 'format': 'wav' }," + + " { 'language': 'es', 'format': 'gsm' }" + + " ]" + + " }"); } - private ActionSounds createWForcedResponse(String response) { - ActionSounds_impl_ari_0_0_1 a = new ActionSounds_impl_ari_0_0_1(); - a.setForcedResponse(response); - - ActionSounds aa = (ActionSounds) a; - return aa; + @Override + protected ActionSounds getInstance() { + return new ActionSounds_impl_ari_0_0_1(); } + @Override + protected void ariActionTest(ActionSounds a) throws RestException { - /** - * Tries generating a bridge. - */ - @Test - public void generateSound() throws RestException { - ActionSounds aa = createWForcedResponse(jsonSounds); - - Sound s = aa.get("abcde").execute(); + Sound s = a.get("abcde").execute(); - assertEquals("Id", "abcde", s.getId()); - assertEquals("Formats", 3, s.getFormats().size()); - assertEquals("Language of format #2", "es", s.getFormats().get(1).getLanguage()); + assertEquals("abcde", s.getId()); + assertEquals(3, s.getFormats().size()); + assertEquals("es", s.getFormats().get(1).getLanguage()); - aa.get("abcde").execute(new AriCallback() { + a.get("abcde").execute(new AriCallback() { @Override public void onSuccess(Sound result) { - assertEquals("Id", "abcde", result.getId()); - assertEquals("Formats", 3, result.getFormats().size()); - assertEquals("Language of format #2", "es", result.getFormats().get(1).getLanguage()); + assertEquals("abcde", result.getId()); + assertEquals(3, result.getFormats().size()); + assertEquals("es", result.getFormats().get(1).getLanguage()); } @Override diff --git a/src/test/java/ch/loway/oss/ari4java/generated/ActonBridgesTest.java b/src/test/java/ch/loway/oss/ari4java/generated/ActonBridgesTest.java index c71a5f6b..462d0219 100755 --- a/src/test/java/ch/loway/oss/ari4java/generated/ActonBridgesTest.java +++ b/src/test/java/ch/loway/oss/ari4java/generated/ActonBridgesTest.java @@ -3,85 +3,44 @@ import ch.loway.oss.ari4java.generated.actions.ActionBridges; import ch.loway.oss.ari4java.generated.ari_0_0_1.actions.ActionBridges_impl_ari_0_0_1; import ch.loway.oss.ari4java.generated.models.Bridge; -import ch.loway.oss.ari4java.generated.models.Playback; import ch.loway.oss.ari4java.tools.RestException; -import org.junit.Test; -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertTrue; +import static org.junit.jupiter.api.Assertions.*; /** * @author lenz */ -public class ActonBridgesTest { - - static final String jsonBridge = requoteString("" - + " { " - + " 'id': 'aaa', " - + " 'technology': 'xxx', " - + " 'bridge_type': 'mixing', " - + " 'bridge_class': 'aaa', " - + " 'channels': ['a', 'b', 'c' ] " - + " } "); - - - /** - * Strings in a JSON object need the double quotes. - * Unfortunately using double quotes in Java is a PITA. - * So... - * - * @param s - * @return Translating 's to "s - */ - public static String requoteString(String s) { - return s.replace("'", "\""); - } - - private ActionBridges createWForcedResponse(String response) { - ActionBridges_impl_ari_0_0_1 a = new ActionBridges_impl_ari_0_0_1(); - a.setForcedResponse(response); - - ActionBridges aa = (ActionBridges) a; - return aa; +public class ActonBridgesTest extends BaseActionTest { + + @Override + protected String getJson() { + return requoteString("" + + "{" + + " 'id': 'aaa'," + + " 'technology': 'xxx'," + + " 'bridge_type': 'mixing'," + + " 'bridge_class': 'aaa'," + + " 'channels': ['a', 'b', 'c' ]" + + " }"); } - - /** - * Tries generating a bridge. - */ - @Test - public void generateABridge() throws RestException { - ActionBridges aa = createWForcedResponse(jsonBridge); - - Bridge b = aa.get("abcd").execute(); - - assertEquals("Id", "aaa", b.getId()); - assertEquals("N channels", 3, b.getChannels().size()); - + @Override + protected ActionBridges getInstance() { + return new ActionBridges_impl_ari_0_0_1(); } - - /** - * In this example we force the wrong result. - * The object cannot then be deserialized and we expect an exception to be thrown. - * - * @throws RestException - */ - @Test - public void receiveWrongMessage() throws RestException { - - ActionBridges aa = createWForcedResponse(jsonBridge); + @Override + protected void ariActionTest(ActionBridges a) throws RestException { + Bridge b = a.get("abcd").execute(); + assertEquals("aaa", b.getId()); + assertEquals(3, b.getChannels().size()); boolean exceptionRaised = false; - try { - aa.play("aaa", "sss").execute(); + a.play("aaa", "sss").execute(); } catch (RestException e) { exceptionRaised = true; } - - assertTrue("Exception triggered", exceptionRaised); - + assertTrue(exceptionRaised, "Exception triggered"); } - } diff --git a/src/test/java/ch/loway/oss/ari4java/generated/BaseActionTest.java b/src/test/java/ch/loway/oss/ari4java/generated/BaseActionTest.java new file mode 100755 index 00000000..4b09f91a --- /dev/null +++ b/src/test/java/ch/loway/oss/ari4java/generated/BaseActionTest.java @@ -0,0 +1,43 @@ +package ch.loway.oss.ari4java.generated; + +import ch.loway.oss.ari4java.tools.BaseAriAction; +import ch.loway.oss.ari4java.tools.RestException; +import org.junit.jupiter.api.Test; + +import static org.junit.jupiter.api.Assertions.assertTrue; + +/** + * @author lenz + */ +public abstract class BaseActionTest { + + abstract protected String getJson(); + abstract protected T getInstance(); + abstract protected void ariActionTest(T a) throws RestException; + + /** + * Strings in a JSON object need the double quotes. + * Unfortunately using double quotes in Java is a PITA. + * So... + * + * @param s string + * @return Translating 's to "s + */ + protected static String requoteString(String s) { + return s.replace("'", "\""); + } + + protected T createWForcedResponse() { + T a = getInstance(); + assertTrue(a instanceof BaseAriAction); + ((BaseAriAction)a).setForcedResponse(getJson()); + return a; + } + + @Test + public void testAriAction() throws RestException { + T a = createWForcedResponse(); + ariActionTest(a); + } + +} diff --git a/src/test/java/ch/loway/oss/ari4java/generated/DeserializeToListOfInterfaceTest.java b/src/test/java/ch/loway/oss/ari4java/generated/DeserializeToListOfInterfaceTest.java index 20115292..3be502d4 100755 --- a/src/test/java/ch/loway/oss/ari4java/generated/DeserializeToListOfInterfaceTest.java +++ b/src/test/java/ch/loway/oss/ari4java/generated/DeserializeToListOfInterfaceTest.java @@ -3,11 +3,11 @@ import ch.loway.oss.ari4java.tools.BaseAriAction; import ch.loway.oss.ari4java.tools.RestException; import com.fasterxml.jackson.core.type.TypeReference; -import org.junit.Test; +import org.junit.jupiter.api.Test; import java.util.List; -import static org.junit.Assert.assertEquals; +import static org.junit.jupiter.api.Assertions.assertEquals; /** * Test how we can deserialize a Json blob to a List of Interface. @@ -28,9 +28,9 @@ public void testDeserializeConcrete() throws RestException { new TypeReference>() { }); - assertEquals("Size", 2, l.size()); - assertEquals("El 1 A", "x1", l.get(0).getA()); - assertEquals("El 2 B", "y2", l.get(1).getB()); + assertEquals(2, l.size()); + assertEquals("x1", l.get(0).getA()); + assertEquals("y2", l.get(1).getB()); } /** @@ -46,9 +46,9 @@ public void testDeserializeAbstract() throws RestException { } ); - assertEquals("Size", 2, l.size()); - assertEquals("El 1 A", "x1", l.get(0).getA()); - assertEquals("El 2 B", "y2", l.get(1).getB()); + assertEquals(2, l.size()); + assertEquals("x1", l.get(0).getA()); + assertEquals("y2", l.get(1).getB()); } public static final String STR_TUPLE = "[\n" + diff --git a/src/test/java/ch/loway/oss/ari4java/generated/EventBuilderTest.java b/src/test/java/ch/loway/oss/ari4java/generated/EventBuilderTest.java index 6d52aaab..f525e5b8 100755 --- a/src/test/java/ch/loway/oss/ari4java/generated/EventBuilderTest.java +++ b/src/test/java/ch/loway/oss/ari4java/generated/EventBuilderTest.java @@ -5,75 +5,65 @@ import ch.loway.oss.ari4java.generated.models.StasisStart; import ch.loway.oss.ari4java.tools.BaseAriAction; import ch.loway.oss.ari4java.tools.RestException; -import org.junit.Test; -import static org.junit.Assert.*; -import static org.hamcrest.core.IsInstanceOf.instanceOf; +import static org.junit.jupiter.api.Assertions.*; /** * @author lenz */ -public class EventBuilderTest { +public class EventBuilderTest extends BaseActionTest { - static final String jsonStasisStartEvent = requoteString("" - + " { " - + " 'application': 'hello', " - + " 'args': [ " - + " 'world' " - + " ], " - + " 'channel': { " - + " 'accountcode': '', " - + " 'caller': { " - + " 'name': 'blink', " - + " 'number': 'blink' " - + " }, " - + " 'connected': { " - + " 'name': '', " - + " 'number': '' " - + " }, " - + " 'creationtime': '2013-10-15T15:54:12.625-0500', " - + " 'dialplan': { " - + " 'context': 'default', " - + " 'exten': '7000', " - + " 'priority': 2 " - + " }, " - + " 'id': '1381870452.0', " - + " 'name': 'SIP/blink-00000000', " - + " 'state': 'Ring' " - + " }, " - + " 'timestamp': '2013-10-15T15:54:12.626-0500', " - + " 'type': 'StasisStart' " - + " } "); - - - /** - * Strings in a JSON object need the double quotes. - * Unfortunately using double quotes in Java is a PITA. - * So... - * - * @param s - * @return Translating 's to "s - */ - public static String requoteString(String s) { - return s.replace("'", "\""); + @Override + protected String getJson() { + return requoteString("" + + " {" + + " 'application': 'hello'," + + " 'args': [" + + " 'world'" + + " ]," + + " 'channel': {" + + " 'accountcode': ''," + + " 'caller': {" + + " 'name': 'blink'," + + " 'number': 'blink'" + + " }," + + " 'connected': {" + + " 'name': ''," + + " 'number': ''" + + " }," + + " 'creationtime': '2013-10-15T15:54:12.625-0500'," + + " 'dialplan': {" + + " 'context': 'default'," + + " 'exten': '7000'," + + " 'priority': 2" + + " }," + + " 'id': '1381870452.0'," + + " 'name': 'SIP/blink-00000000'," + + " 'state': 'Ring'" + + " }," + + " 'timestamp': '2013-10-15T15:54:12.626-0500'," + + " 'type': 'StasisStart'" + + " }"); } + @Override + protected Message getInstance() { + try { + return BaseAriAction.deserializeEvent(getJson(), Message_impl_ari_0_0_1.class); + } catch (RestException e) { + fail("Error deserializing event", e); + return null; + } + } - /** - * Tries creating an event out of the response. - */ - @Test - public void generateStatsiStartOutOfData() throws RestException { - - BaseAriAction action = new BaseAriAction(); - Message msg = action.deserializeEvent(jsonStasisStartEvent, Message_impl_ari_0_0_1.class); - - assertThat("Type: StasisStart", msg, instanceOf(StasisStart.class)); + protected Message createWForcedResponse() { + return getInstance(); + } + @Override + protected void ariActionTest(Message msg) throws RestException { + assertInstanceOf(StasisStart.class, msg); StasisStart ss = (StasisStart) msg; - - assertEquals("Caller ID", "blink", ss.getChannel().getCaller().getName()); - + assertEquals("blink", ss.getChannel().getCaller().getName()); } - } diff --git a/src/test/java/ch/loway/oss/ari4java/tools/http/NettyHttpClientHandlerTest.java b/src/test/java/ch/loway/oss/ari4java/tools/http/NettyHttpClientHandlerTest.java index d30a9507..563a451c 100755 --- a/src/test/java/ch/loway/oss/ari4java/tools/http/NettyHttpClientHandlerTest.java +++ b/src/test/java/ch/loway/oss/ari4java/tools/http/NettyHttpClientHandlerTest.java @@ -4,9 +4,9 @@ import io.netty.buffer.Unpooled; import io.netty.channel.embedded.EmbeddedChannel; import io.netty.handler.codec.http.*; -import org.junit.Test; +import org.junit.jupiter.api.Test; -import static org.junit.Assert.*; +import static org.junit.jupiter.api.Assertions.*; public class NettyHttpClientHandlerTest { diff --git a/src/test/java/ch/loway/oss/ari4java/tools/http/NettyHttpClientTest.java b/src/test/java/ch/loway/oss/ari4java/tools/http/NettyHttpClientTest.java index 8bce2c4b..e35fa1e5 100755 --- a/src/test/java/ch/loway/oss/ari4java/tools/http/NettyHttpClientTest.java +++ b/src/test/java/ch/loway/oss/ari4java/tools/http/NettyHttpClientTest.java @@ -11,8 +11,8 @@ import io.netty.channel.embedded.EmbeddedChannel; import io.netty.handler.codec.http.*; import io.netty.handler.codec.http.websocketx.WebSocketVersion; -import org.junit.After; -import org.junit.Test; +import org.junit.jupiter.api.AfterEach; +import org.junit.jupiter.api.Test; import java.net.URI; import java.net.URISyntaxException; @@ -22,7 +22,7 @@ import java.util.Map; import java.util.concurrent.TimeUnit; -import static org.junit.Assert.*; +import static org.junit.jupiter.api.Assertions.*; import static org.mockito.Mockito.*; public class NettyHttpClientTest { @@ -30,7 +30,7 @@ public class NettyHttpClientTest { private NettyHttpClient client; private ChannelFuture cf; - private void initTestClient() throws URISyntaxException { + private void setupTestClient(boolean init) throws URISyntaxException { client = new NettyHttpClient() { protected void initHttpBootstrap() { // for testing skip the bootstrapping @@ -40,31 +40,37 @@ protected ChannelFuture httpConnect() { return cf; } }; - client.initialize("http://localhost:8088/", "user", "p@ss"); + if (init) { + client.initialize("http://localhost:8088/", "user", "p@ss"); + } } - @After + @AfterEach public void tearDown() { if (client != null) { client.destroy(); } } - @Test(expected = URISyntaxException.class) - public void testInitializeBadURL() throws URISyntaxException { - initTestClient(); - client.initialize(":", "", ""); + @Test + public void testInitializeBadURL() { + assertThrows(URISyntaxException.class, () -> { + setupTestClient(false); + client.initialize(":", "", ""); + }); } - @Test(expected = IllegalArgumentException.class) - public void testInitializeInvalidURL() throws URISyntaxException { - initTestClient(); - client.initialize("ws://localhost:8088/", "", ""); + @Test + public void testInitializeInvalidURL() { + assertThrows(IllegalArgumentException.class, () -> { + setupTestClient(false); + client.initialize("ws://localhost:8088/", "", ""); + }); } @Test public void testBuildURL() throws Exception { - initTestClient(); + setupTestClient(true); List queryParams = new ArrayList<>(); queryParams.add(HttpParam.build("a", "b/c")); queryParams.add(HttpParam.build("d", "e")); @@ -99,7 +105,7 @@ protected void initHttpBootstrap() { }; when(bootstrap.connect(eq("localhost"), eq(8088))).thenReturn(mock(ChannelFuture.class)); ChannelFuture future = client.httpConnect(); - assertNotNull("Expected ChannelFuture", future); + assertNotNull(future, "Expected ChannelFuture"); verify(bootstrap, times(1)).connect(anyString(), anyInt()); client.destroy(); } @@ -141,7 +147,7 @@ public WsClientConnection connect(final HttpResponseHandler callback, final Stri } TestNettyHttpClient client = new TestNettyHttpClient(); WsClient.WsClientConnection connection = client.connect(mock(HttpResponseHandler.class), "/events", null); - assertNotNull("Expected WsClientConnection", connection); + assertNotNull(connection, "Expected WsClientConnection"); channel.writeInbound(req); Thread.sleep(10000); client.destroy(); @@ -161,7 +167,7 @@ private void setupSync(NettyHttpClientHandler h) { @Test public void testHttpActionSync() throws Exception { - initTestClient(); + setupTestClient(true); NettyHttpClientHandler h = new NettyHttpClientHandler(); setupSync(h); h.responseStatus = HttpResponseStatus.OK; @@ -198,15 +204,15 @@ private AsteriskPingGetRequest pingSetup(EmbeddedChannel channel) { private void pingValidate(EmbeddedChannel channel, AsteriskPing res) { String data = ((ByteBuf) channel.readOutbound()).toString(ARIEncoder.ENCODING); String expecting = "GET /ari/asterisk/ping HTTP/1.1"; - assertTrue("HTTP Request Data does not start with " + expecting, data.startsWith(expecting)); - assertTrue("Expected HTTP Auth Header", data.contains("authorization: Basic dXNlcjpwQHNz")); + assertTrue(data.startsWith(expecting), "HTTP Request Data does not start with " + expecting); + assertTrue(data.contains("authorization: Basic dXNlcjpwQHNz"), "Expected HTTP Auth Header"); assertEquals("pong", res.getPing()); assertEquals("test_asterisk", res.getAsterisk_id()); } @Test public void testHttpActionSyncPing() throws Exception { - initTestClient(); + setupTestClient(true); EmbeddedChannel channel = createTestChannel(); AsteriskPingGetRequest req = pingSetup(channel); AsteriskPing res = req.execute(); @@ -215,7 +221,7 @@ public void testHttpActionSyncPing() throws Exception { @Test public void testHttpActionAsyncPing() throws Exception { - initTestClient(); + setupTestClient(true); EmbeddedChannel channel = createTestChannel(); AsteriskPingGetRequest req = pingSetup(channel); final boolean[] callback = {false}; @@ -232,12 +238,12 @@ public void onFailure(RestException e) { } }); channel.runPendingTasks(); - assertTrue("No onSuccess Callback", callback[0]); + assertTrue(callback[0], "No onSuccess Callback"); } @Test public void testHttpActionException() throws Exception { - initTestClient(); + setupTestClient(true); EmbeddedChannel channel = createTestChannel(); ApplicationsGetRequest_impl_ari_6_0_0 req = new ApplicationsGetRequest_impl_ari_6_0_0("test"); req.setHttpClient(client); @@ -251,7 +257,7 @@ public void testHttpActionException() throws Exception { assertEquals("a test error", e.getMessage()); exception = true; } - assertTrue("Expecting an exception", exception); + assertTrue(exception, "Expecting an exception"); // when the response is not JSON and there is an error definition from the API then return API definition channel.writeInbound(new DefaultFullHttpResponse(HttpVersion.HTTP_1_1, HttpResponseStatus.NOT_FOUND, Unpooled.copiedBuffer("Not found", ARIEncoder.ENCODING))); @@ -262,12 +268,12 @@ public void testHttpActionException() throws Exception { assertEquals("Application does not exist.", e.getMessage()); exception = true; } - assertTrue("Expecting an exception", exception); + assertTrue(exception, "Expecting an exception"); } @Test public void testBodyFieldSerialisation() throws Exception { - initTestClient(); + setupTestClient(true); EmbeddedChannel channel = createTestChannel(); channel.writeInbound(new DefaultFullHttpResponse( HttpVersion.HTTP_1_1, HttpResponseStatus.OK, Unpooled.copiedBuffer("[]", ARIEncoder.ENCODING))); @@ -280,7 +286,7 @@ public void testBodyFieldSerialisation() throws Exception { @Test public void testBodyVariableSerialisation() throws Exception { - initTestClient(); + setupTestClient(true); EmbeddedChannel channel = createTestChannel(); channel.writeInbound(new DefaultFullHttpResponse( HttpVersion.HTTP_1_1, HttpResponseStatus.OK, Unpooled.copiedBuffer("{}", ARIEncoder.ENCODING))); @@ -293,7 +299,7 @@ public void testBodyVariableSerialisation() throws Exception { @Test public void testBodyObjectSerialisation() throws Exception { - initTestClient(); + setupTestClient(true); EmbeddedChannel channel = createTestChannel(); channel.writeInbound(new DefaultFullHttpResponse( HttpVersion.HTTP_1_1, HttpResponseStatus.OK, Unpooled.copiedBuffer("{}", ARIEncoder.ENCODING))); From d4dcbdd8b9ec8d1216232f41ff0dd5993ad77dcd Mon Sep 17 00:00:00 2001 From: Graham Brown Date: Sun, 26 Dec 2021 13:38:01 +0200 Subject: [PATCH 183/220] RTPStat map int to long for local_ssrc & remote_ssrc #180 --- .../loway/oss/ari4java/codegen/DefMapper.java | 11 ++++- .../ari4java/generated/ActionChannelTest.java | 40 +++++++++++++++++++ 2 files changed, 49 insertions(+), 2 deletions(-) create mode 100755 src/test/java/ch/loway/oss/ari4java/generated/ActionChannelTest.java diff --git a/codegen/src/main/java/ch/loway/oss/ari4java/codegen/DefMapper.java b/codegen/src/main/java/ch/loway/oss/ari4java/codegen/DefMapper.java index 350babf3..05db620c 100755 --- a/codegen/src/main/java/ch/loway/oss/ari4java/codegen/DefMapper.java +++ b/codegen/src/main/java/ch/loway/oss/ari4java/codegen/DefMapper.java @@ -396,8 +396,15 @@ private List loadModels(JsonNode models, File f, String apiVersion) { String field = propNames.next(); JsonNode property = properties.get(field); - String javaType = remapAbstractType(txt(property.get("type"))); - String javaConcreteType = remapConcreteType(txt(property.get("type")), apiVersion); + String type = txt(property.get("type")); + // BUG #180 RTPStat map int to long for local_ssrc & remote_ssrc + if ("channels.json".equals(currentModel.comesFromFile) && "RTPstat".equals(thisModel) && + ("local_ssrc".equals(field) || "remote_ssrc".equals(field)) && + "int".equalsIgnoreCase(type)) { + type = "long"; + } + String javaType = remapAbstractType(type); + String javaConcreteType = remapConcreteType(type, apiVersion); String comment = txt(property.get("description")); ModelField mf = new ModelField(); diff --git a/src/test/java/ch/loway/oss/ari4java/generated/ActionChannelTest.java b/src/test/java/ch/loway/oss/ari4java/generated/ActionChannelTest.java new file mode 100755 index 00000000..1748369b --- /dev/null +++ b/src/test/java/ch/loway/oss/ari4java/generated/ActionChannelTest.java @@ -0,0 +1,40 @@ +package ch.loway.oss.ari4java.generated; + +import ch.loway.oss.ari4java.generated.actions.ActionChannels; +import ch.loway.oss.ari4java.generated.ari_6_0_0.actions.ActionChannels_impl_ari_6_0_0; +import ch.loway.oss.ari4java.generated.models.RTPstat; +import ch.loway.oss.ari4java.tools.RestException; + +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.assertInstanceOf; + +/** + * @author lenz + */ +public class ActionChannelTest extends BaseActionTest { + + @Override + protected String getJson() { + return requoteString("" + + "{" + + " 'local_ssrc': 1176001751," + + " 'remote_ssrc': 3175369733" + + " }"); + } + + @Override + protected ActionChannels getInstance() { + return new ActionChannels_impl_ari_6_0_0(); + } + + @Override + protected void ariActionTest(ActionChannels a) throws RestException { + RTPstat stat = a.rtpstatistics("abcde").execute(); + // check the generator overwrote the int definition to a long as values larger than 2147483647 are set + assertInstanceOf(Long.class, stat.getLocal_ssrc()); + assertInstanceOf(Long.class, stat.getRemote_ssrc()); + assertEquals(1176001751L, stat.getLocal_ssrc()); + assertEquals(3175369733L, stat.getRemote_ssrc()); + } + +} From fb987985ba8752c2b2b22a96200aeffb6307869d Mon Sep 17 00:00:00 2001 From: Graham Brown Date: Sun, 26 Dec 2021 13:38:15 +0200 Subject: [PATCH 184/220] add cl entries --- CHANGELOG.md | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 5608ece8..4e574c96 100755 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,6 +2,12 @@ ## [Unreleased] [Unreleased]: https://github.com/ari4java/ari4java/compare/v0.14.0...HEAD +### Changed +- Library updates +- Refactoring test to use JUnit 5 + +### Fixed +- Map `local_ssrc` & `remote_ssrc` in `RTPstat` model to `Long` instead of `Integer` #180 ## [0.14.0] [0.14.0]: https://github.com/ari4java/ari4java/compare/v0.13.0...v0.14.0 From 04dda36ba74a08d13e65200d18a380fe2bc2ba0f Mon Sep 17 00:00:00 2001 From: Graham Brown Date: Sun, 26 Dec 2021 20:51:19 +0200 Subject: [PATCH 185/220] Update readme --- README.md | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/README.md b/README.md index c25531d1..fa09c355 100755 --- a/README.md +++ b/README.md @@ -6,10 +6,6 @@ The Asterisk REST Interface (ARI) bindings for Java. [![javadoc](https://javadoc.io/badge2/io.github.ari4java/ari4java/javadoc.svg)](https://javadoc.io/doc/io.github.ari4java/ari4java) [![Build](https://github.com/ari4java/ari4java/workflows/ARI4Java%20Build/badge.svg?branch=master&event=push)](https://github.com/ari4java/ari4java/actions?query=workflow%3A%22ARI4Java+Build%22) -## :star: Existing Users Please Note :bangbang: -Due to the sun setting of JCenter the jar is now publish through Sonatype to Maven Central but in the process of verifying ownership the groupId had to change. -The groupId is now `io.github.ari4java` so make sure you update your build files. - ## Description ARI is an interface available on Asterisk 11+ that lets you write applications @@ -30,10 +26,13 @@ repositories { dependencies { compile 'io.github.ari4java:ari4java:+' - compile 'org.apache.logging.log4j:log4j-slf4j-impl:2.13.0' + compile 'org.apache.logging.log4j:log4j-slf4j-impl:2.17.0' } ``` +Due to the sun setting of JCenter the jar is now publish through Sonatype to Maven Central but under a new groupId. +The groupId is now `io.github.ari4java` make sure you update your build files if you used `ch.loway.oss.ari4java`. + ## Documentation - The [CHANGELOG](https://github.com/ari4java/ari4java/blob/master/CHANGELOG.md) - The [Wiki](https://github.com/ari4java/ari4java/wiki) has some more info on how to use the project From 08645a6a4470dd05d05eb3252584441e9b4ce06b Mon Sep 17 00:00:00 2001 From: Graham Brown Date: Sun, 26 Dec 2021 21:10:26 +0200 Subject: [PATCH 186/220] 0.15.0 CHANGELOG --- CHANGELOG.md | 3 +++ 1 file changed, 3 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 4e574c96..da81b13e 100755 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,6 +2,9 @@ ## [Unreleased] [Unreleased]: https://github.com/ari4java/ari4java/compare/v0.14.0...HEAD + +## [0.15.0] +[0.15.0]: https://github.com/ari4java/ari4java/compare/v0.14.0...v0.15.0 ### Changed - Library updates - Refactoring test to use JUnit 5 From 6049781fbee7f0c4fdc5aa9f862ba709acee5a40 Mon Sep 17 00:00:00 2001 From: Graham Brown Date: Wed, 29 Dec 2021 22:40:37 +0200 Subject: [PATCH 187/220] sonarqube doesn't like multiple throws in the assertThrows area --- .../tools/http/NettyHttpClientTest.java | 18 ++++++++---------- 1 file changed, 8 insertions(+), 10 deletions(-) diff --git a/src/test/java/ch/loway/oss/ari4java/tools/http/NettyHttpClientTest.java b/src/test/java/ch/loway/oss/ari4java/tools/http/NettyHttpClientTest.java index e35fa1e5..9f589082 100755 --- a/src/test/java/ch/loway/oss/ari4java/tools/http/NettyHttpClientTest.java +++ b/src/test/java/ch/loway/oss/ari4java/tools/http/NettyHttpClientTest.java @@ -53,19 +53,17 @@ public void tearDown() { } @Test - public void testInitializeBadURL() { - assertThrows(URISyntaxException.class, () -> { - setupTestClient(false); - client.initialize(":", "", ""); - }); + public void testInitializeBadURL() throws URISyntaxException { + setupTestClient(false); + assertThrows(URISyntaxException.class, () -> + client.initialize(":", "", "")); } @Test - public void testInitializeInvalidURL() { - assertThrows(IllegalArgumentException.class, () -> { - setupTestClient(false); - client.initialize("ws://localhost:8088/", "", ""); - }); + public void testInitializeInvalidURL() throws URISyntaxException { + setupTestClient(false); + assertThrows(IllegalArgumentException.class, () -> + client.initialize("ws://localhost:8088/", "", "")); } @Test From 9e4238733765bb39b24def7e4d70a4c4593ed925 Mon Sep 17 00:00:00 2001 From: Graham Brown Date: Thu, 30 Dec 2021 10:43:51 +0200 Subject: [PATCH 188/220] update actions to use ubuntu 20.04 & added getVersions automation so the wiki is updated automatically --- .github/workflows/ari-apis.yml | 12 +++++------ .github/workflows/ari-versions.yml | 33 ++++++++++++++++++++++++++++++ .github/workflows/gradle.yml | 2 +- codegen/getVersions.sh | 22 ++++++++++++++++---- codegen/versions-template.md | 10 +++++++++ 5 files changed, 68 insertions(+), 11 deletions(-) create mode 100755 .github/workflows/ari-versions.yml create mode 100644 codegen/versions-template.md diff --git a/.github/workflows/ari-apis.yml b/.github/workflows/ari-apis.yml index ab63a309..d7244a43 100755 --- a/.github/workflows/ari-apis.yml +++ b/.github/workflows/ari-apis.yml @@ -1,4 +1,4 @@ -name: ARI4Java ARI APIs +name: ARI4Java ARI APIs PR on: schedule: @@ -7,16 +7,16 @@ on: jobs: getApis: - runs-on: ubuntu-18.04 + runs-on: ubuntu-20.04 steps: - uses: actions/checkout@v2 - - name: Grant execute permission for getApis - run: chmod +x codegen/getApis.sh - - name: Execute getApis - run: cd codegen && ./getApis.sh + run: | + cd codegen + chmod +x getApis.sh + ./getApis.sh - name: Create Pull Request id: cpr diff --git a/.github/workflows/ari-versions.yml b/.github/workflows/ari-versions.yml new file mode 100755 index 00000000..b68b61bf --- /dev/null +++ b/.github/workflows/ari-versions.yml @@ -0,0 +1,33 @@ +name: ARI4Java ARI Versions Wiki Update + +on: + schedule: + - cron: '0 10 * * SAT' + workflow_dispatch: + +jobs: + getApis: + runs-on: ubuntu-20.04 + + steps: + - name: Checkout Project + uses: actions/checkout@v2 + - name: Checkout Wiki + uses: actions/checkout@v2 + with: + repository: ${{github.repository}}.wiki + path: codegen/tmp/wiki + + - name: Execute getVersions + run: | + cd codegen + chmod +x getVersions.sh + ./getVersions.sh + + - name: Push Wiki + run: | + cd codegen/tmp/wiki + git config --local user.email "action@github.com" + git config --local user.name "GitHub Action" + git add . + git diff-index --quiet HEAD || git commit -m "Update Versions" && git push diff --git a/.github/workflows/gradle.yml b/.github/workflows/gradle.yml index 607faa4e..5bcb9318 100755 --- a/.github/workflows/gradle.yml +++ b/.github/workflows/gradle.yml @@ -12,7 +12,7 @@ on: jobs: build: - runs-on: ubuntu-18.04 + runs-on: ubuntu-20.04 steps: - uses: actions/checkout@v2 diff --git a/codegen/getVersions.sh b/codegen/getVersions.sh index 5d06d191..9308972e 100755 --- a/codegen/getVersions.sh +++ b/codegen/getVersions.sh @@ -2,10 +2,24 @@ START_DIR=`pwd` -cd tmp/asterisk +if [ ! -d "tmp/wiki" ] +then + mkdir -p ${START_DIR}/tmp/wiki +fi -echo "| Asterisk | ARI |" > ${START_DIR}/versions.md -echo "| :-- | :-- |" >> ${START_DIR}/versions.md +if [ ! -d "tmp/asterisk" ] +then + mkdir tmp + cd tmp + git clone "https://gerrit.asterisk.org/asterisk" + cd asterisk +else + cd tmp/asterisk + git checkout master --force + git pull origin +fi + +cat ${START_DIR}/versions-template.md > ${START_DIR}/tmp/wiki/Asterisk-Version-to-ARI-Version.md git show-ref --tags | while read tags do @@ -21,7 +35,7 @@ do if [ -f "rest-api/resources.json" ]; then VER=`cat rest-api/resources.json | jq -r '.apiVersion'` echo ${VER} - echo "| ${array[1]:10} | ${VER} |" >> ${START_DIR}/versions.md + echo "| ${array[1]:10} | ${VER} |" >> ${START_DIR}/tmp/wiki/Asterisk-Version-to-ARI-Version.md fi done diff --git a/codegen/versions-template.md b/codegen/versions-template.md new file mode 100644 index 00000000..bd91ab10 --- /dev/null +++ b/codegen/versions-template.md @@ -0,0 +1,10 @@ +## ARI Versions + +Within the Asterisk project ARI is versioned, these version numbers are not the same as the Asterisk version and also unrelated to ARI4Java's version. +It is important to note the version of Asterisk you are running, so you can instantiate the library using the correct version. +While using `AriVersion.IM_FEELING_LUCKY` tries to determine the correct version, it is recommended to rather specify a version for application stability. Generally it is safe to use an older version of ARI on a new Asterisk, but not the other way around. + +The table below is built up using the git tags to link the Asterisk version to the corresponding ARI version: + +| Asterisk | ARI | +| :-- | :-- | From 973aa898076a5a3914b23f93bd48dff939363049 Mon Sep 17 00:00:00 2001 From: Graham Brown Date: Thu, 30 Dec 2021 22:09:42 +0200 Subject: [PATCH 189/220] make it work with the Vagrant Asterisk and change sysouts for a logger --- .../oss/ari4java/examples/ConnectAndDial.java | 118 ++++++------------ 1 file changed, 35 insertions(+), 83 deletions(-) diff --git a/examples/src/main/java/ch/loway/oss/ari4java/examples/ConnectAndDial.java b/examples/src/main/java/ch/loway/oss/ari4java/examples/ConnectAndDial.java index 53d11a1d..552811e7 100755 --- a/examples/src/main/java/ch/loway/oss/ari4java/examples/ConnectAndDial.java +++ b/examples/src/main/java/ch/loway/oss/ari4java/examples/ConnectAndDial.java @@ -11,8 +11,8 @@ import ch.loway.oss.ari4java.tools.AriCallback; import ch.loway.oss.ari4java.tools.MessageQueue; import ch.loway.oss.ari4java.tools.RestException; - -import java.util.List; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; /** * This class opens up an ARI application that creates a bridge with MOH. @@ -23,10 +23,12 @@ */ public class ConnectAndDial { - public static final String ASTERISK_ADDRESS = "http://192.168.99.100:18088/"; + private final Logger logger = LoggerFactory.getLogger(ConnectAndDial.class); + + public static final String ASTERISK_ADDRESS = "http://192.168.56.44:8088/"; public static final String ASTERISK_USER = "ari4java"; public static final String ASTERISK_PASS = "yothere"; - public static final String APP_NAME = "myapp"; + public static final String APP_NAME = "connect-and-dail-app"; ARI ari = null; Bridge b = null; @@ -43,44 +45,35 @@ public static void main(String[] args) { * This is the app... */ public void start() { - try { - connect(); createBridge(); - processEvents(); - removeBridge(); - } catch (ARIException e) { - e.printStackTrace(); + logger.error(e.getMessage(), e); } finally { if (ari != null) { - try { - ARI.sleep(500); - ari.cleanup(); - } catch (Throwable t) { - } + ARI.sleep(500); + ari.cleanup(); } } - } public void connect() throws ARIException { - System.out.println("Connecting to: " + ASTERISK_ADDRESS + logger.info("Connecting to: " + ASTERISK_ADDRESS + " as " + ASTERISK_USER + ":" + ASTERISK_PASS); ari = ARI.build(ASTERISK_ADDRESS, APP_NAME, ASTERISK_USER, ASTERISK_PASS, AriVersion.IM_FEELING_LUCKY); - System.out.println("Connected through ARI: " + ari.getVersion()); + logger.info("Connected through ARI: " + ari.getVersion()); - // let's raise an exeption if the connection is not valid + // let's raise an exception if the connection is not valid AsteriskInfo ai = ari.asterisk().getInfo().execute(); - System.out.println("Hey! We're connected! Asterisk Version: " + ai.getSystem().getVersion()); + logger.info("Hey! We're connected! Asterisk Version: " + ai.getSystem().getVersion()); } @@ -88,22 +81,13 @@ public void createBridge() throws ARIException { // create a bridge and start playing MOH on it // UGLY: we should have a constant for the allowed bridge types - System.out.println("Creating a bridge"); - b = ari.bridges().create().setType("a4j-bridge1").setName("myBridge").execute(); - System.out.println("Bridge ID:" + b.getId() + " Name:" + b.getName() + " Tech:" + b.getTechnology() + " Creator:" + b.getCreator()); + logger.info("Creating a bridge"); + b = ari.bridges().create().setName("myBridge").execute(); + logger.info("Bridge ID:" + b.getId() + " Name:" + b.getName() + " Tech:" + b.getTechnology() + " Creator:" + b.getCreator()); // start MOH on the bridge - System.out.println("Starting MOH on bridge"); + logger.info("Starting MOH on bridge"); ari.bridges().startMoh(b.getId()).execute(); - - // check which bridges are available - System.out.println("Listing bridges"); - List bridges = ari.bridges().list().execute(); - - for (Bridge bb : bridges) { - printBridge(bb); - } - } @@ -113,80 +97,48 @@ public void createBridge() throws ARIException { * @throws ARIException */ public void processEvents() throws ARIException { - - System.out.println("Starting events... "); + logger.info("Starting events... "); MessageQueue mq = ari.getWebsocketQueue(); - long start = System.currentTimeMillis(); - - Channel chan = ari.channels().originate("Local/100@wdep").setApp(APP_NAME) - .setExtension("100").setContext("wdep").setPriority(1).setTimeout(10000).execute(); - System.out.println("Channel:" + chan.getId() + " in state " + chan.getState()); - - while ((System.currentTimeMillis() - start) < 10 * 1000L) { + Channel chan = ari.channels().originate("Local/123@from-internal").setApp(APP_NAME) + .setExtension("123").setContext("from-internal").setPriority(1).setTimeout(10000).execute(); + logger.info("Channel:" + chan.getId() + " in state " + chan.getState()); - Message m = mq.dequeueMax(100, 20); + long lastTime = System.currentTimeMillis(); + while ((System.currentTimeMillis() - lastTime) < 10 * 1000L) { + Message m = mq.dequeueMax(10, 200); if (m != null) { - - long now = System.currentTimeMillis() - start; - System.out.println(now + ": " + m); - + logger.info("Message: {}", m.getType()); + lastTime = System.currentTimeMillis(); if (m instanceof StasisStart) { StasisStart event = (StasisStart) m; - System.out.println("Channel found: " + event.getChannel().getId() + " State:" + event.getChannel().getState()); - - ari.bridges().addChannel(b.getId(), event.getChannel().getId()).execute(); + if (event.getChannel().getId().equals(chan.getId())) { + logger.info("Channel found, adding to bridge (BridgeId: {}, ChanId:{}, ChanState: {})", + b.getId(), event.getChannel().getId(), event.getChannel().getState()); + ari.bridges().addChannel(b.getId(), event.getChannel().getId()).execute(); + } } } } - - System.out.println("No more events... "); + logger.info("No more events... "); } public void removeBridge() throws ARIException { - - System.out.println(threadName() + "Removing bridge...."); - + logger.info("Removing bridge...."); ari.bridges().destroy(b.getId()).execute(new AriCallback() { @Override public void onSuccess(Void result) { // Let's do something with the returned value - System.out.println(threadName() + "Bridge destroyed "); + logger.info("Bridge destroyed"); } @Override public void onFailure(RestException e) { - System.out.println(threadName() + "Failure in removeBridge() "); - e.printStackTrace(); + logger.info("Failure in removeBridge()", e); } }); } - /** - * Dumps a bridge to string. - * Should we have a default toString that makes more sense? - * - * @param b the bridge - */ - private void printBridge(Bridge b) { - System.out.println(". BridgeID:" + b.getId() - + " Name:" + b.getName() - + " Tech:" + b.getTechnology() - + " Creator:" + b.getCreator() - + " Class: " + b.getBridge_class() - + " Type: " + b.getBridge_type() - + " Chans: " + b.getChannels().size()); - for (String s : b.getChannels()) { - System.out.println(" - ChannelID: " + s); - } - } - - /** - * @return the name of the current thread - */ - private String threadName() { - return "[Thread:" + Thread.currentThread().getName() + "] "; - } } From c7e21421fc53648feb27c08ed7d0ff98629f9b84 Mon Sep 17 00:00:00 2001 From: Graham Brown Date: Thu, 30 Dec 2021 22:13:57 +0200 Subject: [PATCH 190/220] cleanup --- .../src/main/java/ch/loway/oss/ari4java/examples/Weasels.java | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/examples/src/main/java/ch/loway/oss/ari4java/examples/Weasels.java b/examples/src/main/java/ch/loway/oss/ari4java/examples/Weasels.java index dda17e04..59de5638 100755 --- a/examples/src/main/java/ch/loway/oss/ari4java/examples/Weasels.java +++ b/examples/src/main/java/ch/loway/oss/ari4java/examples/Weasels.java @@ -8,8 +8,6 @@ import ch.loway.oss.ari4java.generated.models.PlaybackFinished; import ch.loway.oss.ari4java.generated.models.StasisStart; import ch.loway.oss.ari4java.tools.ARIException; -import ch.loway.oss.ari4java.tools.AriConnectionEvent; -import ch.loway.oss.ari4java.tools.AriWSCallback; import ch.loway.oss.ari4java.tools.RestException; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -23,7 +21,7 @@ public class Weasels { private static final String ARI_APP = "weasels-app"; private ARI ari; - private Logger logger = LoggerFactory.getLogger(Weasels.class); + private final Logger logger = LoggerFactory.getLogger(Weasels.class); public static void main(String[] args) throws Exception { if (args.length < 3) { From 8e82c393111ff0da6f7bf542b0366c73fdbcd8c0 Mon Sep 17 00:00:00 2001 From: Graham Brown Date: Thu, 30 Dec 2021 22:14:15 +0200 Subject: [PATCH 191/220] removed not sure of the value this provides --- .../oss/ari4java/examples/ConnectAndDial.java | 144 ------------------ 1 file changed, 144 deletions(-) delete mode 100755 examples/src/main/java/ch/loway/oss/ari4java/examples/ConnectAndDial.java diff --git a/examples/src/main/java/ch/loway/oss/ari4java/examples/ConnectAndDial.java b/examples/src/main/java/ch/loway/oss/ari4java/examples/ConnectAndDial.java deleted file mode 100755 index 552811e7..00000000 --- a/examples/src/main/java/ch/loway/oss/ari4java/examples/ConnectAndDial.java +++ /dev/null @@ -1,144 +0,0 @@ -package ch.loway.oss.ari4java.examples; - -import ch.loway.oss.ari4java.ARI; -import ch.loway.oss.ari4java.tools.ARIException; -import ch.loway.oss.ari4java.AriVersion; -import ch.loway.oss.ari4java.generated.models.AsteriskInfo; -import ch.loway.oss.ari4java.generated.models.Bridge; -import ch.loway.oss.ari4java.generated.models.Channel; -import ch.loway.oss.ari4java.generated.models.Message; -import ch.loway.oss.ari4java.generated.models.StasisStart; -import ch.loway.oss.ari4java.tools.AriCallback; -import ch.loway.oss.ari4java.tools.MessageQueue; -import ch.loway.oss.ari4java.tools.RestException; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - -/** - * This class opens up an ARI application that creates a bridge with MOH. - * When a call enters the application, a message is printed and the call - * is connected to the bridge. - * - * @author lenz - */ -public class ConnectAndDial { - - private final Logger logger = LoggerFactory.getLogger(ConnectAndDial.class); - - public static final String ASTERISK_ADDRESS = "http://192.168.56.44:8088/"; - public static final String ASTERISK_USER = "ari4java"; - public static final String ASTERISK_PASS = "yothere"; - public static final String APP_NAME = "connect-and-dail-app"; - - ARI ari = null; - Bridge b = null; - - /** - * @param args the command line arguments - */ - public static void main(String[] args) { - ConnectAndDial me = new ConnectAndDial(); - me.start(); - } - - /** - * This is the app... - */ - public void start() { - try { - connect(); - createBridge(); - processEvents(); - removeBridge(); - } catch (ARIException e) { - logger.error(e.getMessage(), e); - } finally { - if (ari != null) { - ARI.sleep(500); - ari.cleanup(); - } - } - } - - public void connect() throws ARIException { - - logger.info("Connecting to: " + ASTERISK_ADDRESS - + " as " + ASTERISK_USER + ":" + ASTERISK_PASS); - - ari = ARI.build(ASTERISK_ADDRESS, APP_NAME, - ASTERISK_USER, ASTERISK_PASS, - AriVersion.IM_FEELING_LUCKY); - - logger.info("Connected through ARI: " + ari.getVersion()); - - // let's raise an exception if the connection is not valid - AsteriskInfo ai = ari.asterisk().getInfo().execute(); - logger.info("Hey! We're connected! Asterisk Version: " + ai.getSystem().getVersion()); - - } - - public void createBridge() throws ARIException { - - // create a bridge and start playing MOH on it - // UGLY: we should have a constant for the allowed bridge types - logger.info("Creating a bridge"); - b = ari.bridges().create().setName("myBridge").execute(); - logger.info("Bridge ID:" + b.getId() + " Name:" + b.getName() + " Tech:" + b.getTechnology() + " Creator:" + b.getCreator()); - - // start MOH on the bridge - logger.info("Starting MOH on bridge"); - ari.bridges().startMoh(b.getId()).execute(); - } - - - /** - * The new style of event processing... - * - * @throws ARIException - */ - public void processEvents() throws ARIException { - logger.info("Starting events... "); - MessageQueue mq = ari.getWebsocketQueue(); - - Channel chan = ari.channels().originate("Local/123@from-internal").setApp(APP_NAME) - .setExtension("123").setContext("from-internal").setPriority(1).setTimeout(10000).execute(); - logger.info("Channel:" + chan.getId() + " in state " + chan.getState()); - - long lastTime = System.currentTimeMillis(); - while ((System.currentTimeMillis() - lastTime) < 10 * 1000L) { - Message m = mq.dequeueMax(10, 200); - if (m != null) { - logger.info("Message: {}", m.getType()); - lastTime = System.currentTimeMillis(); - if (m instanceof StasisStart) { - StasisStart event = (StasisStart) m; - if (event.getChannel().getId().equals(chan.getId())) { - logger.info("Channel found, adding to bridge (BridgeId: {}, ChanId:{}, ChanState: {})", - b.getId(), event.getChannel().getId(), event.getChannel().getState()); - ari.bridges().addChannel(b.getId(), event.getChannel().getId()).execute(); - } - } - } - } - logger.info("No more events... "); - } - - - public void removeBridge() throws ARIException { - logger.info("Removing bridge...."); - ari.bridges().destroy(b.getId()).execute(new AriCallback() { - - @Override - public void onSuccess(Void result) { - // Let's do something with the returned value - logger.info("Bridge destroyed"); - } - - @Override - public void onFailure(RestException e) { - logger.info("Failure in removeBridge()", e); - } - }); - } - -} From 668814e27db2fdda661428fbfbfb6f8b7491133f Mon Sep 17 00:00:00 2001 From: Graham Brown Date: Fri, 31 Dec 2021 13:49:38 +0200 Subject: [PATCH 192/220] cleanup (not that helpful of an example) --- .../main/java/helloworld/HelloAriWorld.java | 46 ------------------- 1 file changed, 46 deletions(-) delete mode 100755 examples/src/main/java/helloworld/HelloAriWorld.java diff --git a/examples/src/main/java/helloworld/HelloAriWorld.java b/examples/src/main/java/helloworld/HelloAriWorld.java deleted file mode 100755 index 7b11d304..00000000 --- a/examples/src/main/java/helloworld/HelloAriWorld.java +++ /dev/null @@ -1,46 +0,0 @@ -/* - * Hello ARI World! - */ -package helloworld; - -import ch.loway.oss.ari4java.ARI; -import ch.loway.oss.ari4java.AriFactory; -import ch.loway.oss.ari4java.AriVersion; -import ch.loway.oss.ari4java.generated.models.AsteriskInfo; -import ch.loway.oss.ari4java.generated.models.Channel; - -import java.util.List; - -/** - * This is a sample printig current system information. - * - * @author lenz - */ -public class HelloAriWorld { - - /** - * @param args the command line arguments - */ - public static void main(String[] args) { - - System.out.println("Hello ARI world!"); - - try { - - ARI ari = AriFactory.nettyHttp( - "http://10.10.5.41:8088/", - "ari4java", "yothere", - AriVersion.ARI_1_5_0); - - AsteriskInfo info = ari.asterisk().getInfo().execute(); - List channels = ari.channels().list().execute(); - - System.out.println("There are " + channels.size() + " active channels now."); - System.out.println( "System up since " + info.getStatus().getStartup_time() ); - - } catch (Throwable t) { - t.printStackTrace(); - } - } -} - From c920b4a9fa8df851824e627589ecbf0c43216469 Mon Sep 17 00:00:00 2001 From: Graham Brown Date: Sat, 1 Jan 2022 21:18:51 +0200 Subject: [PATCH 193/220] update gradle wrapper to 7.3.3 --- examples/gradle/wrapper/gradle-wrapper.jar | Bin 55190 -> 59203 bytes .../gradle/wrapper/gradle-wrapper.properties | 5 +- examples/gradlew | 53 ++-- examples/gradlew.bat | 43 +-- gradle/wrapper/gradle-wrapper.jar | Bin 59203 -> 59536 bytes gradle/wrapper/gradle-wrapper.properties | 2 +- gradlew | 257 +++++++++++------- 7 files changed, 213 insertions(+), 147 deletions(-) diff --git a/examples/gradle/wrapper/gradle-wrapper.jar b/examples/gradle/wrapper/gradle-wrapper.jar index 87b738cbd051603d91cc39de6cb000dd98fe6b02..e708b1c023ec8b20f512888fe07c5bd3ff77bb8f 100755 GIT binary patch delta 26193 zcmZ6yQ+S|Vu&o>0wrv|7+qP{xU&pp>+fK)}ZKK1EI!T}Z?6uCtKF>3+>b7Q$8a3;k z=?&n+bKs5iponRd%jI35ARxHlARx>siR4%*il7((1uK)8y@{J!oa(gW@(&EbVLvhOxk#E0z~5*_n$Tfk4BT1W zh~4H^yI$w!jrIW$@8~{|r_Pqh9?;*1{Rs-h$o?FVSot<3yKX_cH33Wqgy&Ugow#-- zd$AFKpvAm7vspRndDP5Y*{X$rg0EvCe9(Ow>lBeyGY!V@xQpXomHjCWwMA-rDRPSv zY@gq7;|J=t%N|R7799odG(V`K@OXpjH2q11r=-spt+w zmng+yzxXW&2lk&G)N z-h)16N@V9eFCNeZrbSiuE44@1#kS@h5wqX)wgpxfDiThLBx=5wyP_q&uT8OO)g!i} z`ony65!)LBh`yjIhNFW{%5vZka3CNsFd!fxA|N)P3^l}%ARrX~g&6-g&ji4>8oCzF zKSH<7MutdMx~SkLQ5g_)<~Gen%{ZC`NJdbH)-9$<(ppE)OUsf4+q=3xf!CmpZ`c>g z4Ys!B49{{P<@lMuM@Gi9cVK3-W&h8s0rx+luP@f0C2um4An0s{!;rApVwtHdlxBE$ zQ}-fiEaWDdk_Z{*`eS})9~03LOH#dsT^&c)G^Img%Th&3)4?O4Wq0Y&WfVC|VC zaAQwCL*mCoU593J>8NRWao@R|t#I*_etEAkj;Pnx3Px?Zvdq$zVwkChuPxdoUTJ_f z91pe6B-4rYiTj&D4-yF14*5BofspUDM3g|`#ZB$#P?p~-U9+h+Tp`mRxh*=&=&T*z2q>oXsGC%dWpshF`TNHT@_F>BTVa9G zFHYaGE;{c#SSHF=YdV#s&=@2HPVty?i1KRKnHMZOfiniPe%}^B8HFW z*bJMvi!j9I(^KSPI$-KTx8V>{A^SDH?XXHk2r zl3KMvKg}3t6q5GEn_a9c#&WLtG*Z+HlGMW<(x+DV$pO_9MbEmMd(|gjX$n1RcRRtv zDT~=Ns?nTUr{?a8bL%J`yhpBI_HJ=#J82CYL&{%*ODAh3aQ7C!&9@kuw2vTv^C5Jv zw{IBtth8_1lePLj%=eb2<|{r*Tr*eZc-3zAmND82-Y2(LCRJAYureb+>#gbkwS;}t z*dnlaO#wXPiqx378QPITyhU~VJF;i9bY&O>9`a<{Z=?tck-b5V=Ao(5iSinj^|JG0 z^Mei%8;vfT5yjl03`{X#`7o70WDu59Odv`qB&Kd4C_bQnCkPF-Z;JgZ^g{2~-?;k+ z9+d0E@fT(gQ5tY0OC?v8n)9lJ>xx!1rO|MACzpKq&HkF1K{ zFMRybn|7SN@1S0)$Tgnp%zhGmU0>jDj(qPx9cd6`;(p;9lq7up`hoX{FkphHyA0DN z5*0_8Cr`bKX4N+FM+NK)D;S+PQe|0pN`4GS%9VQJ!F@1AmvLj;s* z?5g2wVEo&)=YpSxQkAAjZU5QM2_ajp*;-oX5M*sllctPP$Cq)!W#4miWC{L-|8byZ z^iiy&Xyktx3$vQ_qG0ub{r0Drov-9Lg!p(omOcL5a7e1+=Q3+nuHS2}-`t&-(97AN zF!4V4J;ELv>Nxx#>p@srsIrMn3PoV;Fg0q~y9pFFHz~V?YR;q*bQp&>(1D%FPs zC*IM^c|*^YFd>8K!*CNjO?IyyVo0Oj58J=V+HZAg4EGQ_44PdzlAt7maXilOhlg5a01 zY;8K$cR z`?@05v}ykdXcpLFzwCu_^1Ix5oA^_#4P!q~iRGZaX}VfO>ocM-TIR_OVK|WIk=>*a zeNESLpfO2pCzrnXhvy4zVJJ|)bs@SBYiq&LgqV+kKtj0biu*n~3>Ls(AQ(f9*~_s) zl-KPHr3GJJdZbJ9z~4gno4QuCR6$+sXgnW-SR$UwdY>J(?y@VzOw-!z29BZMAa@*>cOMvu0j;NRm&a zA?dwChkQuKL|!${FHs;*>8zcvo{*&C&2uo)%+*>dx4mwK>fGN+2G`s+E+?FoDMB>o zeEk&R)YUb-)hB0btx0ZnL88NiU<4a4`*dXC&pJay_*!BvzV5L3egZfJ^3pQHC8zFj z6=tLQ9h+!XzlAle1MVUJR85LGy?b&&${lv)c!u?eR_HV5VGs~FMZC*XTEE>nWMNC4 zB-UE7S$o)*022^2SpSi8XR351W?e8S@6i^nRhZK21FxbQo=r|Xn3;a2gqkA9jC)ti z1U4zFR*N)5@{VZmvX8drmAd;H`V9VYPp)`CJ<24J3+oWFOOh|D+JrBTtRrT-UNiS+ z(J%rlp)E0cuK~b2h31^v%*?vFF%$`yaX*844h@8tiqzpL`V|45>?UdyCevybaaT+l zdZ{j2LANKlT=)%J%zpa;hj+KHasV#AP+j%_aV7mNFYy(I_e39m$ld%;hB{CR3NVHM zs?_7ryClg9%EdjJGu)cCVf%af}^xD1`=ey;xTSwvKswhL}f-h0rN zx$a-|8ICEr+~Tj|Q4jJ&D%Al!W{4)^8UYCecR(m4n1Xox7yTqZ!IweY}ynJI3 zMz}L%pqst|R9anw=H*@%l{5QYAlsH-?qK4IOT|U_%?X}+&3)yyoEsv22Yx~r!!S#D zFHjffGZQ^)k^dxFhZ09Hl^#$)1$%|>4LpawxEh+VJLRz_6n%#;LPdOiZ?-?QopPOR@$pf0U=M zotnQ+LX;pV(2mBcz5(Tq6mtI6^{nnb0ZCeqdc2jimiO)`7S5L5d*s~AL(wwRx^y_) zh#GRJ6CxyPN*6Zaw(!3)H6nkpJ5EKdx44c~YYcFRRlLrSK}q>QJLrKU+@6Erj&$a; zqseNY2DlS-f#nv2LUG7?M@oSa$z=|r!z!Vove26#Jt4%MY5?-5EAFbS6yguDs?gCE z(vc>HKlF#duyAd`Ef7JyP%dBGd}$B5LM>{YZJ8-rOT-4~#18)T(~5~bG7eBFL@D*sXp~E2b)#Kj-6#_;rKFTcZ5;~q>XBa%9qtn zh|*NK&npj)_X0e@`Q)Duq;*G(ix)9}{FJ(tBr%|Zl{%`3vm<3;ZTao!@JCy!w$Hd$ zeTsHc-QO?{AjJ$$xyVeeiaa(mIS{g>H~RWDd^7NrcuhG+n6;;IOM;Pnv9AXK%*F>l zh;aH=_~cR-sWJe&{k3#sLEJ9Q;xpFrzQ!1IA($)K6A(HHJ78{YNzs2fS9t(^@rq2; z%#zYDCmxz&BIxr`?~%}btlSLY*nUOqSIu}@IIZ6m+uae;rw{n@(ccR5i+I!DYr1e1 za(MOzHzGaa-+2Qi4lE{yhB?MQdUJSqM$cf$?F?6pb~QsYC}kb`SX9W4V`o%%*{zQJ z64`;gk{^o`6(Of^2y<*)?pbt(p*cCs&QLrs354H|(M+Bl84yFLM>{4$a^t<&uOd2( zDhK}WqM`tq3_L~#0nsJ_0U`b0qJjbbXWp&Th4scC_XtdYXp(dG5kaH82(=)@Kwe1p zNKUs;DyER`6;Dj1)k)SGNDhTGJscIq$m5B>ort=n@wBIQ$t`!x`S0)~<-(*&Y|AE0 z)a`OzqP|LRKT9XHDk!b@B{%*6j6c1Qx`5psOT1Mo>jGwg; zn#*@S7dQbm1brRiPk)Qw!Na~6#2i1!S>M_ZKFrd-N5lZxeU;03j1M7M?Pf4N8dDV?~ChR zl~dm^ZdlcjsW>`r+GpIb96^EutTZQ7HZJ;Ji9;!9fm+SDzseGRa8}V!>`vLfEA5< z^)ZQgMs(z0cl=&{{#-n$H4i7s&F>pR0-jaEn=80*K7h4_Idl}?F4O-j&+iq}!q|0u zW>KXn0n?zIbBoRPGAVPB&EzsF)TGUQQbxPlc&8)*U!LeW9DyE}^H`oU%IDjfiRxVP zcZm6`!=m@f-tdayub+@lecT1jHj$I7CX&YH9$FlZ&!uBZ_-j7{`7B}n<(LR^mFlUm zdPXw&F#ypd4Z0KNnbu6!n+YwuuibHJChS6JgbF%iJ2%OW%yroEX{36{1($2+bB-&K zC0J1^1xfhaH|c}lg(Z}>?KcTy2vs7B`wT%jT2_Co)Dt-(~ z$*7abZzyD0vyDjXlMsm7MuDfEld>A6c;^VEn_#?$SSettv}`*0^ICen24YL)KM7sp>Adr36Z)i zLZ)C~O4l-Gf7j-`wbz!yKgf7>5oT>A5&2stuDEVk(Mb*S$E|S5S*`6RXM&8_DcsVv zCK2jHYi|StkgaGR5AN&9NqFZaeIZ_hgv4iEeNG!)WAE2;tZty`kUh#rx0T{i<$L(pl}iOmk&Jn&`s#jtF66@s#y-I zrs`Ym7<%r)TW;h`wil?x%EZp6y^@4kv#)JSw#ajW_F1RVu}r@b$DP>2UqH&8hkfa) zgPn~tP`HoQzMD8L-$()v073u!X)Q$4`&f7(NRb`EPA>$p&-63+XPOTAUl+O`CVMBv zUrQ*z96r#y(>OjwsSPUDv!=|yZT$0zP51zJCqSw3{3pOd>*?-nTsY6nx@rVd9r#ph z^8SY>H;-e8C;6+TlQz|S9$*y4dPkmczn4KLYdPZkMB5YQKCyx1k zJU4XSsE4Vem=3%L+>&Z1KHvXd;|(^h;3Q!f2m$|_<7NAaA#5;^0T^^w!jQ4QL;le} z*zsm?=EF;Xc)4tMRH8y4kh-rGShhn)F}9Mo8($sHHs?z!aFY1UepV8{ZGt?)QusJ7 zzf~$ngGIL`3tXTAjsF%C+r97MR_g|>aA)^c*OI<*yVs|9XU79XL4qJI26Uk7Ijv3x zoINaggyd9a%t_q%0Ph8Ql54a^ty-n_TBVQcb?WVteFYzbIN`|xuv|=$?1TOt2d7n0 zl5X7BBE4qHiyuUa#im|F_P^ddNQq;Qd~V)7b~RAGgIK3?C-mhqFa+JRkpBJJtsb?Y z62_+%!ETHm0%1mb%*fmFd z-(YSD22!E5B|nk@2o@GOO91cOjR9JiitxXy-!;sEW|(do8;%0P&eP`;44pK7O*MhX zdlfBHfc!vIi~q{+{~Yhf~URiRcY@Pkc?o3SCkQQg}E+y{>J{{cN^5EY^KdbZj0eL(u#c~39>G3r3`=a|y(g9VG ze}!4C?0rHYoy*G-LX{VUGPp;XC>s6yOH$*fi2M)v$zDQ~Z-5?Et!K&4XKhzSA@f~# z2D4gmA=DNBUoxh8%ui`)gXJ{mzO;`Ka7Yro`3THr#>S{ih`Fm&Af_p<$IpA2`> zcde1;fXK1=Y%7#s1`@e0{)Ze>eOIs%ZAx25fAtKS2&3m==&$*)WJQuNTkc$bqb}pE z-|}i=Zhj)B^u#$9ue!%(%F|I3Z>Ea=V?a$?fMBd} ze1q9wcHuXQpXD!fBk-UaRsr3cun@5r2vH(J2asdupCZQXtO!W>%S8LAv!xe0kfu2n zjW5_uuq+)vtGwrR=+l{QqF2kBE78!W(J}GR<%hyOSa^#KW2A9#7?v-EpG}|G-ghyn z=?rspMd0U@OLxiB;Y?ZmX`qtu$BtOjBlV)!Sme@`-#+XmY|ZzS&1tu!IJe(QY_SR1 z0UV=l1SuTQ1Woeb)q8dM)^=&@D0MIY=odw=R}Ix1`s7uYSGi_ZR9?Ypz~{)8DQKuF z;;$|^>WXy8;kVBCj)zk}goNWAo+T`+Eu^`)Rq5;Orj}=OtP(k(_`S?Ia*=lu&i(!Y z6ky!UGfXJmharkF3Z=N zw|spi95hC)Z#|XXFr~?^gLGr^%K#mG*CRRdI!@8olzM+?;<` zmMBkcY<*15Y~<5?on)3RjW#`011xN|mi+U4bC%t&;oTcGP~j?Uw(l_ls= z>}ftPt(>WqU$ooRt&WD#h(kUpTahm$0)a5J z-Z=WZ(i=h)mcpDWFgE-@IdH`}B3S$|R`_jjI00_L3YJ|7a(6Hf0Ikg*&c>H}i8a<* z^1^4vKTOgld+Y*{4;&xunXo&fUk)n(nZ7>(A~0v{k}!HW8=|4a&j(!xARx)

$|c zhPVR@j{Nk&@@WnWOc#pdglpYbnqRa^G=aT%gEf}qea-{5y=4?s%BNYdE!7oVS$dS-jq9^$`zdUjKX!{5-+8{58s{P6Lviq5&f zzQ9h(E0*q;!DLs~tXi-I!aV7pA;bDB7h>Q7WQv&S-Bq<`n10M5tTIoGCSRX*XE}4X-yKG@ z*&4QX9KS>Qd^uW=HyX#d?b+Z|_#4p&jaPATz^QW2$6y|u52x5h~<_a*4PTBwZbROhRfpidY0V55XOH=QZt*L z?wXbvb}pSCneNmv;npvM38FTjLG&fWle~TLgc1+1AD2J@-r>rMbWHR(3+UZ0jQw8 z5ZgwgvjLFKKD^9oT<5j>3@y0WOxmAzkAX#?$$^3yw3s8prBpU|GV=W*PJEt$__E@r z`Stz2}qfA&J!S5F1Wi7fUqy*vAkIja!>mdAZeJkLWFEIi5V(C}TMXN&@V zj#{qpaJwA^>(sLa%xI%rHzgljPs6aV0K4sn;+ABIp zuQB63*`WGhyF+hsmojX3a<7Z|dh7vbcsGv!>0JUB#7*nn5*_9p6AkHI6Wmdy%>ep) z92}15`S_M@$U7q1>&W2ode_xEfne`?Ttb+ss&eG-$>$fH5bzVZdcs(H6oyFkfkhJ2 zUwY62^V&sX)S&ZfJmNGw;q5^Mk~pP+I3uP&`9a3N8m?f>3PXU5SD2nu=9@r>IfA+J zjjX@)X!vzOM-bidc2qIeh#Q>abJC@x<${icn`KprM)xE;qpkSS z|JucpB7kj2oOa8B-r7Ruh=d?*aqcTYdc@#rq>#Q8xE5LNkn$PR`-Y6+D$~(X5QkUK z3)eq)aPjpu>WI=wtB;d7loeZdCF`1Is64W#Ofa`qEBek>9wxW(>0(*7!kB?7Gwit4 z(Gg=8?0SZc;x|X>@MS+o^cebx=8&<8x2{&j1suO|vFF`5buf&7R|&Qg33jOwySf?< zazki_QODaxRqIi;T}qOw`^~gsa_&6m>$vu7N(aezO#KJ>Q~BF13Rr) z0$7K!w7&oXenjB`WX?|*Va$7e`O34 zLtF`Fb~J02*(;X*%5<(50Y(ZST0aGf0h!-(n8&AzL*F`sMjW4*!1BEp?hbH}9S$7f zO%LbIz}qGL&=^by4)9Dd=%7S6^z|#^5wHVEB6bNV8dB3(#{y+03YSOj$ z1(#|0&|-U;@#j?3YNOn0BbCI6-El=66+Lt{i8c(al1Q8EO3eS}T^m!rrCJVdp@Zzq zAiL(E_PK2Ojap$H%gcM8Dvq220xmznRkY$W41^Al2d-gwOQ{Sffi;Tw#nfQ z!8Ky6Fnp@zRJs|43%>a^AMi-vw|-SlWCSf+Wrc2Sko%DI7J60saN5_Sw>^miD=&7& zN~fxsIWvtH-=lfmgMF6IcJ9%DsG#x2`>pAVb`On1v26P|ynUXy#+;Z5sh_4inhVcjhBn8vLv@?^c7~MeNp3Oc8s!_1aYTuu4%I2R7#UhE zeC1~&Ugb+8uBy5n-UPduT4!hS-A&I-y_EFkn`P7d>6W-+E(UwpwHWW~5!9Fl%rhU8 z4rN-lV^xZE9tstUT+j$FGG_R`{nZSVEdIRh#XZ{{CF~w9=z~HC3Za?3cVIqLV7t-KNDDA(PuVk1EQP z<;!`;CMg(tjBc_oR_9o}$LsR%*(lK3;qJ$NpY> zz2Q%SK2J9HPdVIxM|@u?$Ai{=N3RQx8WS(WUmi`K5tJ9V6@4gz0rWS$C?Nt0Z0;Dp zN_9*dEh%Lz9X_yqMWoXnNtH!zgtATSXNv=2l;<=fNed&L!s?27>;+%8%xsZAJYAB> z6*7-ODl4v5g{=50{n>@`0v& zL!{*eD0MShOB38PGu}00NWP}zz23BV?b-8LU7Sutt0p2PG4|hMlDSr~Ovdo_g{v;R ziPuB~LwSn8jpVxkpS+hQSqS-OwkT{yq&tp9>Jy1O0r@%+1*(LwL13yrR6IKYRG!dJ z5t>vF=!WguGx>zusRaBza|PX_wgeTrm#&$9@d6;7K*6 z3e6;^pCyeEsw#~Bbf^@APG9i1S&_$v!%F-4drg!~g!lGP{ z?>(t@{R9);;EhaY*k_PBL`Z*fk|?BYWDC)YXsX7k=SOzbM2c@%WY{Tj&s*u?F0^dq z3*p4AojqtLL^ifH$GHBRj&%G|gRw}kkvKT^mqiZ^JjXwysjH#3$qGU*++|#Yukw`C z902-@ySHLM;e0%y&tyK0oqj2Qj>Fl+q~(%^o>dC+21Pf1y= z9SBh)|AdSSszzwvjk$C@;k}$FRI3&YX1W~XYVK8jRjUo+ooRFNVsds}z|@6ejWB&H zo{iQiz*G~Az7=mMsx-NwiJzMk=)7XcHKvoRulV<0mw!j(wZ}Np{EvkTM*{&N`#)LVofk!b)(#1unSe7mChznn;^*XGaL302Sf!K%NvK1Sp(SkQr9Q5)QXLWZWWSAO z=$Q}C%616O&ya9od*vm$4d-U_o}94_2TOV^deIt8leMP35r4xTw#k2VqZrON?~xqG zd80SRHXo|9Lp+81ZSG7&FRaS8pQn)X}sTvE9 z8-2y&E;K{W@gb+OsLCsHxpuL%Q*$;yjJFmUTh_VCGv#Nao;^Fzmo4P6+GfOj1srPR zsg<`)HXo#SG|j@XaGO@mRa?jd4EM7ECE3qIQ%*s#tLnCE-zC@}S*5I^><4LN)Jzvs z7(Ovy+fmt|)3Vmq99k((g!1juobDEhgZk`E82CJ8+jRbGN@Cmc)iyuK&pOT6-u^~0 z?zVb&Q{|S|$`FExDI}z6!__sPe1qpFTF6w-Wr~OJY*`zQKHKz^TI+JLzcOfmL{)Kl zJ5Oiy@1!;)n?)1Y0(T3g27L-^-p%(?3VBboNm_z;Qv__0l2J9;Z7)Y*yw&7QoN3rq zqBZ*j|NbhQCiNUnQ@nIM@-fgMU0K1>HcT@Gms;}(PjPmb1ot;MCB9qyB&1@>L5;9_ z{`8ryhVDpDwIcp@l)FzNsW>FSt6C;QVyJ>5H~Ah!hu^|icE~1Z+HKCAyxZ-*5zAut z$@jUliq9rz#UW27(F(*uio;<$`%+wYGOD&dRM0gct-U1syj0&lJ2Uo2%Wf>5W_007 z6|b14{7?m^KqM>Vwo6K|!bYtzJoo%?99+9;POxSx?M4v74^6m#O(70!z!t{^NnSa{CzL$VB8p^=*hcrsN=Y%vG=Y`xK z;HDHPKG5@4AM9YIJ>-Y$kGX?|$WE@lrFjzy{2_S?@}s*(=Mb6lQ+hBV>zewlDzt$1 zjW@99Kp?Q{K+9Wx@c0dA3*K-1-X~Mcv{^=&HSruG_StDpNGhbh=ZF2Jbr1ciGMMs~ z5-fboEUpih8Ct1H?=VuWFkPjX({Vj%D_dwgUaZIg8`{muX_3W9@u$K6;Md_DT>en$ zz>>|KM}>lvlC_%Xrj~nX-p$Er3nje`^H}UaT1&9x!H1muqW%KVQWi7iX~L(xm}O|~ z#X+Z^p7)e&r;?wMZm3UN#ARz&eSB6w5T2aYZXTDbQsB?2PjNoZX_YZm@$&ei*e4@< zA-cu+gUfi6DlKU&8_mLNOcm>F1jm)ZN#O zzmg?7)MT_mL2tU;A-l)smN&w_S2{1pQ=5j1v$uP~ENtMAB$VcrcK=oTxtT$B+CQ@1 z&$A^a(@Ka)^h5oyrh0OJ9#gzHDSSme!!y-3XWzXi7nHjZG|r9HxX}HbNrSM@H~AmY zl;6^9=(;b^Zt+UFk(}@*N9)52iLX64_U|w5ZFDiXM=}GaBCMv6LFw6*L_c{ieT5wU zA*K3qh9dlg5ClEl8!d$LFUsxZkcrz%g_DI7%&k#4`w>l747u8#01iJHoi4xrit81G*c; zYb5(ZWKaogi(If@57k)E;!!8`@909<{p z=s$mO)#Hn^uppRy@nfi*eXNEduoB3`4OXj`wMD-$aYLg5Z3?JcABCj9(eM9qE$;{i zSr|+MQmg_su+tUt)(;V1Ix41MT9z{O4P?P%2=!FO2-SVFcG~_M0Mz^g>CJ1Y!FEQA zHyFL{&h9x}E5uL`d#9o?MvjkrU*Wk$C8c(0X?SXAh`aoJc5Sh92J=H8jlQpnncsm)Idi-{nvpE5rUGUtD3?&^ zQA!Xp6!|>dyvmL-u7;{H{HUpYJ};Lq#^Xz%+mwJ?UNka*xdxQeq!<&L7B=xyjxRPN33hW zC1xWWsfp0wh{Q7n;w8D<(WFFbCqeLtz;~2_rAf<{}UZ{%l{`lUH=;0FogcB@M+7 zsxE?(;|m`8I}S!ggq%wlmQTGYZHei386lY?Ua%`q$e#*X%Z4LVb0rqa@Ga5|!*P=i z;_$=Yl*Yv=l4-5&pnFE#buT}@iT`i@WCJ0Y!XNCv9~b{YU7-Ji;v+M`05Xnl?k4v3 zV%8RBcK-vTq@@}tp^IRI@7r`3bnl8X29gx}%jwbS!DXY2;>g5ONief0+&gNAH#dGw zIM#fVJ9RFI7cY*;F@LIzvA4+S$s%$n%+GA*z4G2|X6*_Cz$cjU5IMNZiG{YJGR?&O zk8*mxXjgsC#2+%_ctD8CpSON`LoVB3lUDzceYa^FZDs;3fpU209hdF=4Xpn8npQIO zT4$d=+uK%w3d1rD-_Gbke~nkY9ghyAuz=d7?)!HA-+za!Hf9Xf&!-R@Y$2&?k%^qR z!mPql!wm6O7u)gvs+-r|tc+fJIw*NNz312HbK3vb>^z?k=mjd*=j5*gx7%q=HYW1# zoHMT;s1EH>@Hp-R^Ky`57IFot`W=QU^7t z;cG_8#7O-tI?W}7uzG$bL)asLUI^n^6>`FE5#YIhLr~6dsRnqkSuAbXvo%X4J)3@#~v?(nVQ@fLH9eXs5+tESnmjDP!C+z7& zgB%)&-kK9JNw*s^M)Svlxj2@T5hHGyzeuRqzmV-4y+LEZM;2?M?z}vE>A&MAERIsq zm_4|9w3ud?(4qh4YOqGMZUuapqlR)_{r~Rmi6@wI2?huV6C(%+$^RN?=>LzK(t-6? zUtJZZZs|4gW{3)9u}6|7p*N8NGfhFEzyYIVKwPSfqE*wyvyV)q1W1qPNW{5$W@nxyc7dHeeo_II!6b;oV~QTROH z?>ypP*BuTjgn=%_#dr<7zqu_bNG;nr@%(;=gz%uHG^@hJC9(Y8zsRW2Mdqhmh&y(MjXqK7r9NtDPnW7M)|6ga zFXNK8OX3g#+#{MHUMZg;Rl#(b4(aUFgL~{e(mh>VjfJ;IBCt1YSNfC-(vWuEB@zg| z4$-M8c_segA*xMWN@hrW@O088avV-lcM^wJKwPS!jg%L+WS?9v^Jbr3r3dz@c)3~a z(lWLU)+;!`UutHRX!~xk)CzIwvsd=u7`M;ZfDLi!AE=bb^%#a{gi$&>6hMv->X??m zWus}kLsWWe57_RYo+$oKra~*tTXJ(r^mL;c@H@dxv$RMwBS3a0o7nZAj8U+-Qk6^n2LK4ApdP$ z+_K!7X~{uVJ6EkZZJm&!7OzA28Ljb&yCQdq;A^e z?`VDC`}TBGQeq6cLnieythuwOI3Dd$M}#X+kSHK?}`= zO2TQqq_tFkr;cKIbix;x<@&AuHc*PNE{a)$vE)0$*F5HP0dP^Jdd`wdg%`T;q-y1O~&P9JR`&o<3>izFdsLFd_A^gxhlP9 zfMw(q%D9Geb&<4jX4_!;~84j7z`uPWvp#QwOuRSact(~ zHxk^QLiml7pvftjiW`h{jTnW4!0ll^@a$m~OeJ7@l$~VSU{Lok9>fEvUa%_X3ss?0O>_?HpgyOLDgdTWC@F|kX z{Nyh7W(%uos@?Fml*tO=AWr%{xSW)`x=b&iMd|WYw~(qw^b2c{9t`LMLS`L$`S&2d z@xJhw6h~hr3m>xTUDB^X3vfH?`fJfsgIL?(bZQMHDe4BnHwj1wlTDfd-U=hOlE!G5 z=4jW<)p0de_M9z2Sq7&b+P^XF+$nT1WA(p(BnuZkP=l_vi+dR6Vj?7}Mf#uZY~_Vb^qYp}i*VUR0DkWWVx+yKgMf`lZ*iUmj5*w1;n&;o_y=bEBfxf|UCQ zN`Q7nAl||yUOy6if#xb*O8xpJUAJxpy-mRw_r)jeUc*zxyJQ?7Oim2#-XG<(_TJ*p zZadNOQiBh9!HE&9U0oLrYu24nLj^@!Qc4k<1?(H)9-lx3CR!%dYhz>CCh{ zXX~&_^v-+UiSiPhf6amWLoY*8W03WEqRCMVHFZ!2%}Ko*#@#LZB>oz0eK^63xkix7 zwDdsknE^Zh`<|&-P_gY1_>*|$eVc{W>o&2Oda2yik7p4$s(_qHr$SSolZuwgWlAGg*CouZ_Z(2OY%Jrtj<9IV?M3OuQ{iIf|~x z+OCWNe~txonygr@9v+#y2&5>OFY2d4Je)llU2N>-U1%Y2eMnxIhQRK&)ncRb` zgHl%)N*40F(cQOsjH1!_2+(IRufIn`ayt8{pN|7Lhkrvs0;~Nj#xYzsd-GWHfDt9Q zl8Vyz2bi+vw1PRM7>Qm}rKsit^9e~!XTE>x6PCX`P%9qh-2=mc`lps;{+O||%vRW` zE3_)>o@j#9uE;_8JpA88Ozy*kur+)P@8{Tf!WBvd0`Z!Xf6%X)yzb2S%KAYzn z?rQ+Pf5|}DAyI|U%KQ2!ejYIWOHAfU7xnVl>bq|aK#}@R`j^^tpV_Q%zE1JyOJ_&G ztreXsq4K=^wES>~wCSJG2qCa~N&Kvo_ixMy3{ENcGYc!%lrXfJmz`lSHrZwJl6Z_= zNUMIzH^pX5kKm`9OR}Egne*0~1*LE9@jft;w2EN+%=*AOq{7?Aw2aZAs-6c@dc$O6 zomi1GxZ^0H4Ca;nB7IApks9BRmBkfJb6#vB8+E-Z`eyEF)qU??AGEiYCp$>fwCY1s zvv&_EhvL3@okqXsS;VzuTTz?q2YJc8MBR$F-jY59>8bS-6`H%J8fgf&Q&Rt#=M(_L zAV7vpgL>ey?%X*2D14?^=Qk{@HMnovL&kHwCQ-v>A(8p8F)8y%R0?MD1 zBo;$)ZMMs$Soe+8MqZh+jAPj|t_y5veA>_UYumoK>5uaLdCKF)-GsmPJ(y(0n*P{i zys<-v#V0j(cM>ICv&TEdeBw$~Ls1r0G?i3-TnPp`B$ zRxBck=XpH(i7~L^4z1umh!eEgtRz|5MoouBMTeJa>yFHNtlZxwu9=D3uMln^sN0{J zKNjaga6V#rWdA)4t@RqaSN=$s^94t1i@Tz;o3$bJnF-4*olwZy9?s21?8%lzKwpZY zc@lKhbN1Dm&eJGYR;}1jg9BD(H1sY)*D+lGBwrBd$h{P0$Ma@6$#ws<$_8ZR>gSwY zJ*_vjPnewj++L(AbAwjtayY4c6W0(YfhR?bW5EmauaUURIxO?jIbEa=xA)5 zrlxc7qeYUm^|nc4@6e1Ao$yykN@x*-8@_p}bUmn)(DCP?ZdBqM!9$!YS;}i#&RQRw z(jW5~!{0^E-Q9$IB+~P7snMnyzdv!?;G~ZzTHH=cwC`$t5MTFWEV&ukiLw=bpbLHs z;w~&?-o?0Q9A!c%smUpNDiYcO!w?lgLYc-F*c$* zp`>mI6a?gQ6@$1t3Vr=8xxF>Le$ve~0~R{P9M>zk>p6Fii_@6eL)P^|pLMZ*cq8ZT zRs@N6m7Nr?AjnqVjL8qbh)4=&>70@lIE_JpCQ5I-HSbWKD9&qFZB*W(g|vq}7n1SG zxt2G^ExxnzcFez|*w~eP;&!werZX52sJ{5wlS^m*<=#_lSk{d<3k7imnI;A!m#?eq}DTrH*>+KD?X?&h@m?QK9Bhz5`T4>^h1F zsFSSbI3%1+i}u`K76l5-HceoXiRtAR-ifN_vGYWZS~?vVHMfMj!f;OPBfh8x`-l6FcwFKm-v^o^~0!Hfa%+63{M_!aGh zVf9RWH;A5WgE-`#Z(^zBOfj9kH|dER6c@UO>GdG-%;`0~r0&heV$3h1hAh{9t7a2f zoOe&3L|XVmfI~H4+?6SmQ5wVhtT4nIHVipER(0W4w80uT9+kOMZG^lt_1(_2AFPiN zQuHmwW)(bUb?yS85C;Al>IeN`%vR0Aa_aG~72-XK3#%&2ycqhdc^?knE}sZ$gZwb_ z4Il6a-7R#8+Q`gI+hlj&D49gZC<-h6H15E%^oHW+v%IHB#+6>sc∨fd|u2@Kuk2 zqV*-j@Nbm2ZIgh~9-xQQZ~nA86An7{JNxsTptKPoK&blwV++LWv{gP zysYMJMFRZ`3aTs5<13*|ci-%Yt>~ZzWECwI8=Grr-Jqd#TI-Gm)l6@@5S*xx&Q+Tj z*llb&#HlwTK9VwRDT{mYIKFI}Q66VYJujH3eh9cv@QN`01Tekjg~Jz{b(MG4ew0e&Vovmhf&Maas#s zJ3xw(y}%24W~f+{tQT=7TGW@*JG4>$P`iGArS?GN>xyQblbe(8C@lC3Rj9oCSs5P& zqqIg!6b1E3ET99k#0SKRa^r&x8(QN)zGL>dV543>^OM+qK2G_7Z$c^uswYEU0y3_U_0z)1gLeFJ{8IW-_RpT`x>}pLXi24&E~Q zejvG+ObS{gx7NU|e9hyS_8ngTV)?}YTf8MGr1A_; zR}3^PWz11xIFL#Jm{eO$L~z{;`mrPzkfbAAQLsTT90tG{{^^)rGUMpIm|>hi*F{h$ zA6#71A~Aa%G!LQ~5bYQJF;Lfc5>HASm_iTZ!9i!ajZh+!SRNM(JAYj45ZpT#4FIr@|7_KAVJmk8q$GUYZ@m-4kAw9e2~+llyKYuVa=-*)bRDM{Npg_oSmJ zf27?tYA>Ct!dV|{1Kayddiaajlw^n=Nma?4{awL?4(=IAho0=3cPy+o0MOat?UBd^v5Sgw0rF zeV44FKMFnZbj%rG5W!w8ZH?ukP?Eo(m$r}M!P~qPjSzRl@Chhs5D$dLX*L2g#}He2 ze1epjf!-kS;CHm1<4)#qWECRfzyjsH9D3&oep@QTzTu%rY;Oi}~a&^-be)0)hO|ebt<`Ld> zitFSNYD~Vjo$|D0#vs>|cqu-r>SG-I5hHK!HsuUr+%?IiL)fg`vB^E=kY}z;N-}fA zK-F6GYwSm*5nHAR2qMMeet7qlh#1IXA?;z61vCzv%Yv$+)Kq^vGIdtr{;As}dc^z0 zIqgKaal}w$EKNU4N!w3j{L7RFc7kwu(#8z3@8d-W3fXz?+%C?hvkjMHfIBq{ys>4b zncycCgEw!A%S4jZpfWS-XrTlIEEN5N80YqNeFcqo_9g{yE!Mwg<%~Jg)%4|4_jO77qqKcaUwRz9$#*tI zLQRXc7-a|I)|28DZU~cIpA?_0pE7$G20=VM?5fG}e6}0v!TdW(ah!f{s(xH#GL<^B z9a3x64X|6<(&!eO7iJCfnO>mh%aoW7>#>NktbW&C2x{GKREG78c%2~zM<@8@Yw-gb zn%aBe&}lS318O6+z08?!54U>t^U~Fyu>$5=D$DXv9y@9D()THXBr#x|gbKD=wM{|v zk4CSMI2grVEd=eziL2wl3ltkUf3LRDE_|mjGo^dc2p{3g64s6;^-yPyfMlTjNzsq` z1vPo&pnKHO!&sQO%*q;FN480{;XNu_=CV!cP>LC;iOZbf-E{_z^N=<5 zvl7`7=^XXc9yaneb7Hs2RW^rWTCI`z1-Q)xW6jTsEM4mYT*-D61b3fr&px!Ce{)Uo z+<*FY`g#N4g#41=B)llVj;z?Lp%0c}yj0#3B`~?Tfd{c=W0}as)l3TD%X<)_Pc6}e zwe+lJ2-=0;wFC!wY4*}x$Rg#KhNuV<3>MP}#!kr$Z`Cue;a5>#_W8gNmzmmO^Y!Kt_f(45W zg^%5AHwmPwTW_Z}_NK}50I(ZXRlcV#Tg$wF?R3}Mdw(^4_4UX0Rqxk?$2GpUCNMJia5Tz5`CL}`S22h;+etQSB_`w}A7mS)esJ@#E%hsFvt|rQXtgWd zlgu9{eida|@M=bmQ8bvA+n|05$vQT=3K3C(2u>AroHpa;zR0kz?kYQyq~0{OtA(q! z)7V8+v&3U6#A%i~kZ8r|-lxvXtIow!y?nesQqF0UZhjzQS8da@sHT3}aj6~I*z5Bx zV`P;{cZLIRQApsSN;9^LY73axDXreG?y_r1ez!26mH*_1Hl^oEe3pYKGy=|48=tK_AuzjzJ?xZ44#tqgeNr0k8aZ-uevf1sWp^mM|_k z))_U;gyQh>0`yKN`X>?*j+e|JQ6}Cc6_L%O_8{0xZjf=$ zLNJ1P?R0IJ(=SlVd{^bO-uk%d?2H`TLgJ;`;ysa{lBn#+9b7f-g*;K0>7hnD<>ox- z7n{%EU1QkB@EwaE-S#c#9{W3jw;6uQ{bc5kSa?L$TkklZqn6;VzMPB(r=`zF5UpuO zDx9KerivulEWiToRG#AIM;hg%W%3FX0zN&Fk%R})%rIq9)oar0zj%O zE+LuWs(4a7Oh*SxZaeUor}lhYDQ#tYr$Ty>ex*5HvA3z{LsA(i*T!lvnQrf^*%s?I zGm=(7lv71+Wo5OuZck6DJC>Ft0&juuk0x0BHQU=HPRDl+*aXpU8w9)B<~G(qlyWu^ zE+fiet=0@$^A>72P6gK!juHy%9kkzG=DxI7B{+A*dFT1Myg;3K-*$`@`Jh!pYd){tTw87j%=(!!MJ_F>T_*Sz}@pEOstYU*deJ)TEK}x?s9F*M@+mAhG zifyCtE7cK96Tg>nDS>y&16y}#j@Gksr=1r%oz~6Uukp;JFFwRuut3ajL!&i=cUWXX zE+UR6#B-I6bawD+IiF-D|5$EhFn5|4y$T%`L5$~0<7gd~Qo;=NQTZ$vicBgnFRq_< zP=AWmC-XRatzcQ7JeL208T90tuI#f(F0Lw&#WL4?#4TwVaYdGo2#X{=h$>4lTX3FA zh7zd>o&K&r-1wLMm6mf!XkR^=k>G>bt0y@%>uGTbc_nY`o15-5mnl5b8}O$6x6X##WlWZIiI7rMzmxLNrh)n zFzL9(Z(y|19A{VR9fSI4meOU2Q!Zh3ew;od7+eYNAcQ&Idh?H@2H_UttWX#4t-JP_ z3+l+CBV<=mF4p*k3Br35Q43o@9zG$YcrH|WLGJKD+I@58RAGMf4jdzH9jWqdV}&ri zAS|qSGybdP%fogFc3_JeC3ZEXGs@Q8v2{5$rL5<|SThx;ha|}kPXS}5P*(*d*=HA* z_s6@FjePFK;deOZkTA(5ZlNvOP`KufU-5DOobquvCF|PL)eBy;Or+N|i`ql?Y_ty) z=?hH#vxXZM(!50^3K@h&kQDsEN($yX04k1{jRB%txtN&SS+IDzm^e9ExUe{xxR}^m zxIrWb$levQKGP9W?Pg=)3InmIU$Y9uLZimB{2&iuwCRH6)Cho`bEv@<)5PE^ZzK?d zPz{T+GUj<0UM@=m99E6LSW+Y|vZ(CEMw7v@*b2?6q%T}fuU5B2keumb@nu?+^Q1$7 zsa_Ky_Dkm2c&20L8v(8le$UT8@Vd!0sky0UWyICRP$;oY39n2MZ}~#soS{sVz{YUI zAOLr;+fx(CwaGbUO-n0}jwte(EVYrhl^iWNKAI-hSb>FEl?|qX;5qMv2Ab=rOd~Lw#z~}D z^XD-q=cB?>Las6ub}i3YNg4Q!_96x;N;U#yWSwX}7gY7$T)vJpvoT~XwO1e{ad1^- zdYws8lcL5FA2w>`%~uaeIdF~P747TYB^PS8_g{v~Y)W)l4OtIeEe%5zfk)<4bgWgV zv7MO?D>$VI)2fmyHXG|rSkMV6<9m7S_8*aBhEOy16W}Im2P+huJHjIhXvWlW&XzL!O12;Bme)#{qo2`Qb9hPrST z*+%r#6QF(Xbj8m~hi$_8o|ZX6A0lSVEvLh;E^czQV$o_=c8{o$R8j-N0Wj`onsQzx zdPJ%Fh>xUxvXYksj?FhK1>ZEOR=@e=!femqh<`4o__12Efo$^j110Dk3@dNTi#x|w z{pY+$zXO)5V=KQdYpsT|AbB^o>38uSt_{`sD+H(?gP91C&-2fOP7SP!YjqBmnU7Y0 z?RKw7sgKD?S9Y+gpcW%Q59lL=Rp8eo*Q6cf-?-nw3U^;4on2VXw_TuR7e1d`3qToR z#1~Nv-^{dlLfJe)tzRprHg!IWOU`9WYEE0@7~5f0+991Xhd}AomcZK6NvqR3p{z-W zRyfR!NL%?yq_BZmW`pGu^b1(gqt2kL?B3G6I^pw)^*7~`p{cryXNq|Xuv%oa z9$?d?aG^VE-smOlwn#4?vF8%1=a+Q}+RJc2@`MZS3Q+222V8bWP@rEfM_{>Maz>hb zJ?#Zd$TnXg)Ia({!=Ob)D&jms#+f?`6qMlaamF@70vgafc3D-&e2%HyZK<2(FOnr8 z--Iug^$mA@pRsHspI{hHLhubf(*=yTP*PhM!#vjsi0#%(Bud5QoPG}4BK5*0ypeG* zT~gX*&)S;$a$F&?{OMYH!|`AW6CEl1l)je0av)j6 z1oBXsGN_GKe9%3HgyP$73(XGi+XN1O_n7u5dR{(cpeNBomSdEUZ>R~g<4TgkfM#>K zk5oBv8c(^V+QezQ$&sf(3C~g#UsW&-MD~~W(^gvxE%kIU?^sntX>6;bRnwQFKJF386 z^Vo*Hw8U|3v;~w;#gwd=QDKsG+|*YY1U*p4cJG2sru9B_9!yi{>4ER1kD6_Z%F>e* zW@^#u6OI!V?#0h*6bS>%46x?im-8L1zC1`IG+&@w>shZ_`nb0{dewxKiOmhEtn3~l z_JR-_n_Q(op7`mQ!T&WFcI#N^oYr`)e`nkn-$#qb^OSkSh z`BsWZ>Uhl)vfhU__{oU$tziTkFya%u=s6$2#qGO%54Sx&^+y*-6?lGMEWMXgB~2Ss z++VY7vtP}^yh+8lx=8406nTbpv)F;&4h0Qd2TFG%To^| ziGY|48+d7mY3GcYv&HMtbv!sqLN8Pa*QTXJRZW%aqExD*7M@(l%0~vAnD;w;b>yOT z_p2|b;ik(U^yQ_iM4ohr(R5w_!mu_#iKWtRgC`*}@50`$*rwNjFt{7xL7STPkjz$zmbUq&l0t?gSa%-KVT3GY6? zk{9Ezm^Y2xR{BH0pR6BD8~stvmcAT(Z3(`$F_aAJG*0eCAy@j@LjADIoG_0*g{T&f zDUs6-KLcmwjF6WzxoyVa&u0CMsG9Hs_dCB;d4{;&Iye`A?0cd*ISpBeNQ(t_j;8~o z%>qFa+J~Mv5Ejc0-id-aX!&?XNoR?J1h;@d0nPW46%CS=_)M&*BXQ^jT<(^$fh1>b zVG%MaPU6l4f~pmpKHo52Lig`pd+{B0aDfZ#0XFx$DYxt2Ja4aQK#xDKo1t_sL!x}X z(d0vW%C|^MG4LkhNbFcpu{j%Jw;x2c%8G$F1EG;Zqa>G^^8tEyi4n#%09s}#;slk* z5BGD)o1-OzPOwy*rpt_GBxgGrzbw8*ArM~nAigpkzCr#L_{rN_qBr07iO@*cFo3Sc zpckz0kQfYcu&F+4i&vSXbyV4>$|6l+nV-TUe)LE$a_}tR9-1KyNM;>VYNEDhiJt}O zZ8PK-_7MZ;$0brsj$Yd|<*!E4%^ERa-q0X2^P`o%6JN%=1lB->(@}B+#L0{TwOrki zrf?do#n@nA(<6`hp>s4y7gcSV>gwLt^Hww#7*H+DTJW*1CEXIss=3bbau^DJ_bGhI znjJTnH})i{*Rx3tU8QyU>=$atbXE%5j!8?qMEeNHMQ0LS%o?BmjnfUe5V?Xj&+5 zp2fY!_j;UE$*@b7wXe#?Yj!aqmTf{0nknj7+PcDKY4zaN4?%mo%nX%|Eqz>|82V4D z{2xlk<=>3zkC9HFHj0+giyQKB<#->02~NqGsN2a+J_QrN`Tcs?*LOa#Ff>fIGZ-D? zG}QIhnH)o|>a%eo|8%QsBT!}J=ww{}(<%K8DXxBaQu_&RYDW2)$LeB}bNJ5%d1TfB z3*||=3{|)42Lshgz3ur@BzaHu zITsDB)x7fbQp<$qG+i}T?K`L+t2kJEh?{V8>c(B(oTM9~=+t7w`^?&>f0V$yC_Ou5& zEqaqVpVm%FsKEWYEDCPMZIAZEZI4_-M&A^IJ9nl2+B(Ou^qF|9&SM^HZLxUbk^HUl z1%=)V*4yk|_bz>0-(K_=+#K0EeGwK-L1gr;n(jiYWgIx&Vx0+a*dDGw&qN6eBKKrL z5u9!DQdtSwep$ubg8f9J9fT9X^pC5xrnw;q>SWFTr0YUOtf0YGE8#M=##f&Svwl}t5r2~SIi8VdlCf%It|-Z| zxckB8_MXe815a15N?>x^f+<-Q<1F=1f#G1JRO-70qEOSYO`71BHjw{LN*G&m`0^xyhZu75<@m61JWeI;?*Yp>oTvkmZfRGUxMAkX#oZ@xhP+ zQJGi&Old@MX7k+VpB|ue_jM&#O!aqetUY*$b8l4J@nL(K8ssIgL-`?4Yy=MF&=-au#{RX}R~UJjZ0^u{X^tG4Sg)ln%9;F&bX_eQa8XNKZ_-@pZD4_2;QmXG;ee2+^vWfe=*GC%a0Z2SH+p5TUi-BSBmWqsa*5KB;MeDTDd2|<+SGFH z{i&7cTNnAGDPvndVrTcut5NmIDVzX|)f$-h&T4URD3~!>yL3wvbSkV{$z3Y0*b$z5 zUD)c@&G1_$UnLY6R>-Bzq7{FNOH-h~Lt19a2H3yV(7w%%=J+a;hy~=9OYKiI^s_)8t z!aL~_9jT{ihQUC3S{Ba3gSfvqV3t9?|8<9%X#V34o7vg?pRO>tb^=%*G)VOSetV&G zh!4y@ObE33Z>D}oxBrxa04f-8JQW_~0}aIB(h*FsH#{cle;T6^e>Xxnslgn>1i(Mo zs{cVj_5}e>NdEx;o4oq39)W-G&HiD8jQ+O~1vq^e6Zi**<{!W?tiOSX;G$7{@cl3` zpp4?*s-J}TzYkq|gcy)c`MY|Rh#XSI2*_oCs3hQv5o+LnNH?IM82{+qf*As02J4S9 z0@Qhbn`e!Z0slzt`~&~?^=}XcD+c&+6chO0sTYt{?EjX6fO+A+frzO8ornS68o~$u zvGDz0o4-zFhS=X$2w;gZc7U(eZPh*(C zKVD+|0Y=gP8!Q9}HTx~HX_A7g#~A_1*1y$@aS1^D`@cm5u>p#f;R|w~yQV^iv{{IW;fQu%007>rPwFv=0zdIP+nhUHr$q0Do1rdqB`MuN- z6%#x-NeqDc2zK@cf}bZv0m*(~(J2kU4d{1`z6&b2dx{Yt7z$CTz!=j6z&|2F{~Qiv zUl2g|2?7!VgQgh)V-XOM9xU<^4ZJyx3H-ym{llg+`gg}{Gm-$@gx_M?3=i->Pq|P~ zLVw@~5`TlxW~BfZ8UKrqAptYYVuG#W|9f-8<0no+2tIE=_!Hn~afTz;GRa9`uJU`&10^Boi2oR|TQ!JA}d0jDW3ih)4||owwr$(IC$^nTY}=UFwr$(k&w1DRviDm38@j8ns_LHt zOQ`{?rTGD0zG}7t1`Yyp1`Ps2mzZaaktp{A4WKu+F?4p0R?}8TRY&`ZNjEXT12+~3 zj0j{$p$~6bQmbv0>iYGA?uU)YI>IPXl$_bz=z#P!ruQdg_fwI)ZiO#&WA)nN@>k?n zB%kGT`ltX(Kn3kmI`jL*`tzml)4{d*KYnlr7=FsIy?}rpGGiXnL!#hat%W;G)s$&{ zsz99#4HQv<0YrmQ+mipe(48CPk%@_E6y-@@XB0TNc^&2cklescOq33!9gMrQQ5#vx zI=+W`ueXPO$dP;?W&b!I`{osy<~#L z(A4=+{uS0<7k$!(YC&Jz#EKlFuFFHfC@}ww-=%XT_ZDE=fu5>o=F&gb-oEc-{+CDx zSv$lyyl4XdGdr8jwIXe*J;o4y*f-p;gaMnJ@cC{wi&%7JT`XPjR#>l2I%)jM%s52u z`=R_w;mLE|=@radcQk(aPy&0r+8NaE0xk(exSC5sF?yKZ}1h)9ZZRu!xv#fgQ4E z_)#~yCN`;+Cd{Maur-nTTQ8Ytc1-W`>h#t8bfU@Z6esXY6dEV?_u9QXrF&60o<=Q? zmb8v#*HCR1=7in}C}LY$$*>9B0AEWXn|*zS*0xTv+hRrp?mXK!wf)VefZOcfg0pAM;PanH;dE9DpG$QXMLg}e4N&ZKt{h<%SSkSY`TzlIO6#YZ;rk(H;MhujYyG!8qm(zNu zeEHGmh}8cu%OCBh(`QI4&~MwPm5UnxfzIFSb!WsLg^Y+aOsVvfROlb>TqA7!Ao$+_ zX|zL@s*)Qfe+)kPee^jl<&r*r@8l^x5=s6QXBhHvthiY^pkVnOar7kN^cnW|k?G`b zx%iVzW%Ez-F>0adQ;L&Gc=6{dLje9ZJ-!4rk69_!G8BlAv^V$5>=< zSD!%gqU89Sr#DZhk$=YuKXf_w^E6p)W?s4sI)Me0SE^Qi?hCFL!^NVoAP*Pyr-p^B zJreWfY%h-jY6r4cNLmy-7WWOq=`8CL*Zv2P7!7p`KYVyqh6@S;BJ&djgynzRvKtCI zk$M>mNLJRBM-@clZJ@K!ZPrk?6+I9Z*vNN_)Sq2Qi^D-lw31Lj>7SpGTVoxUW6sig zip+ z6g-HQGVzoWXu9DR_s8CNa0ox-*4z;9>=+Ij;Qu!mM?0Qj(5eA#eB0jDL9&3`jjA|M zF+v^N+zK< z)=ar{C-`C@{-CL-0hBDHtbGPoUX@_5lxy0B65E^$1tY9tTNSAnfy<`%$lL)`8PrrExV`G%B z847+ysh#*G$nZz*M->ZLR25#&n-nfA_FL?80HGta86PhQk4_P5IIWZK9Zf`r&J`re zb>{)mP^aTGpU4?5JzmeN6Y()J{0haYyvvsi$~)Lx8;K=oG2>#YpH#)-^I*t3`xwEG zx9*86u43;-T;313>IW(91uufs-JJ}7QzZaIK^p8Q3B?lu`us7yW>bKB#Ql%HFx z&^^4=UYC**mVz%L3o2lloGlbs7ogf{d>o5jBma3O;P0fIdq}A;rErB|q4mt)5b9P` zC2_9LVt(C+lwM*V6tn5OC6KUa``Vm$9sJe_s9y&-%`Z`VV`+ zezyhQhcE1xA4S;q;5GOyoS!}`kn8cKzzU!ZAbiyMGhn?W{z}=G4}{vC4)7q*SDDvW zn#{?3iTt${`%h(3AN!^L?aLKude=VSMcYS|6;Kzo1nl<+175^G68!jCC>U?k@2lO$*yuAV%1%i zVNaE1mm$>fCMr|*yJ!wcAL;#8Q~BdV>JP0^X|^Q0q$-jw3QG}Jn6**5lCeY;@nX7? z{TLINJQfPfn3JaAm{ij_wXhm){ZJB6OJxnOX+HM$E5sy_3RkvG^b$9ZynZxETefX7 zX|mXc@z71VIb$xDZN*HYfJhd!f+pT!W2!YvijzvPbXry~n=|f-JSzwjx2da;rWE&r zb8Fta{CHy~@5@5n9&xpOdL8q!xiu@zBGSu_ma$G=VLn}^kcWF0e)YD|SgHZYZLazE zEb*OZ@t||8Xh$4ZEp=!u=sLW!+aLNiE!rVRSpE}70%jl)6&2yI>RhfJ)fTmy7sGvx zzU}FualhI1Trz@@lo>WJX(lg5v!sIJ9hlFQe&tT+ebkUO|HEW?j&HVm6NB#t(1OE6QUs@ynOE z%b^7h@dwXD#y6l}iCTH^AR)t-{is`$c`240b-ymW@tjr${_<%IVo(M3@nRO1;^Oo# z>yd_BPW?Op3vZv9T0uu{0G;gUN)XXPpQjr)GPqMc$J) zUNF^|aj^H+IZ+*S+zQPtcQ|L~(_6i%qn0VhdF2mHky-}#A>rktV=6P4j&PPJA^*rN z^^CJ7XYaWwXVjNzLVM4-lrBR?WZ^+-3G-1nv-qA##ZfC%=Fio_;flIHTG*3D zE1f`;_;)>4MX#WTGiBydts`G_%z5N2ZC5$(v}4Ss?r~Q0v|#}GE|TLm2~pkIs|#1e zRXd*IRy7PqbQG%T){-#BT$1srvwUgJG~8aizJs=43^Wwd|P$dm^Mz^*70 zd9Y-QHxX8yZKv3amK*xc{yzDAbJ{lbD-waj^Fm?F zI%YK;S=xT13Ce7xcR~f(P_itinZD2)Ls$mG777HLp+erdJ+eswmPDiT`M7sST zjcmARJq|VHL86AtS8AQ&kklAO*6eCH>CKkV7j)k%9ZBkiN}+{e zg;L76$|s^06KM&YXCzs_(^>+vlNyNhRq79E0tLg`2-N8W=d^|c!NnD+Y2-y*)k!Se zt8P+2s*09IiOcBEA3&%ojNtCthhKjFf@PZa_|9J&Ad& zfS4&34w(Ual*BnGl32VEjKr8HY-2@2>$XwsZ4ZG_m`-|7Lowb((4a9{vvh!LbETg% zPOGaHf@`j>wR%QCjrTB15|%$URs%&@Ejtx9WdI0%Rj65NRcxi{S&2pc(As6hSnCw49Js8}S(k7OI`LY}uyKm#W|12}ci2 z9O2dWc&F0oN}7UY&1>P^%+7p?lyvIri$j-r1fi$agg}sa1&8e7*WgE>RYz4~G5vnu zRt$9NlK(CnDN18+6WK8?lOR47RXROAC3VG$jAIl22*bnW%DaC=iKo?Os%lG6Y#IbB zO*Z_o_sbBZ$iR!ucAs`4`UaNWF*k)FfpCo zB?I7O+DD~VrI*|HB4VdVdET8AOVv|&+okU9L)?X>D$J;mVlA`S3#MzyCYRLxJ-snH z@dK!axlf|jPdQKl-C0MCzLMusMI+nPfy(o<`_RpgV20nWhO|e;4^8(hu%pse0D#7E zeC;uggQ3sT4}WN{V^y7UL>>WF=hmA|hS`c#b>>bWb??S?U0P*&#d&zW(A3yS+FcPT zL)U#}dM%Pw)S|GqHK<)&QB(RA!i;aFp`U=#wr;(qx-}6i&48#`?$tb~q7pcxXD3R6`V6F{XQ$H2rVi83>+L>HjHe$Dp^tY1yH8xIR#->}1H5+ooEroLPLm zS0#LTM}f3WrNCU_6{O^(AdLVGN4%V5^>*uX1N8^=847uCz=(M9Rf= zN?FOc!k;1IxvEDf_DyKc6@Ux+P=+s0 z2c>%DRastkD7!iDEMC>#;uYL4w_2ts+UBy}r+wFLGnCpR=fS9b#U%S(E^*kre)mn8 zjG1ec06=Z1n@y&RT1U8RJ~V3FXC0jkYwQ`_feQa?i6Wd%ake^zq7AoMUvM*PhN|iqvZC^ANS_ z@Yb7bXgcUA-Y+xMft17-Fb_yklP;|?%q3QHg+#&2vZ3N5&4tPJw9RLPtB%M|?#J%< zi-Z7K*VX{Sh5EA_;k8KqiSF1W%J=Ir*ouvyKVPdgA&3QTz`W~%d2J={@6eeWyc9&` zn+VOy3us6tjm0Z#8<=;qx(s^#dAlIrJcpGL1KX9<-gdWdpdP|!%!Yl@qW{WZG5f5X zm(>thnK0PDxhju1W^~1GF+uW#q2Uja&C_OXwMEDb71lO$d>^l{Qd85ddtRt4U)nxX zU8JdXEkEO(&MUh`Erqik&%I3|=khL>gx(O4@Xb(zsHrS}CCvb}fX+;&sbI43+db-d z%t(RL>i@z8e)oUDt!dfi#wT4e>@+{M-`$5~ATD=(BdcTC8M1#3 z&vS$$<`WW<9S<}9QFn}}m*0ow2xQo$?T&)HLH}C-V3gdt&TaK*BJ=$6`% z(i5wcsnr?azAuiokmZ39%j^g*)!o-dkw%YLzXU`9s!4Bb9~|C-V?ICm{c}WET|1+m zYt@CV_4?&!)pDewe5C49rKz6ksZ@y;Jy5QNi%J`(s&690ODq!gDV{4z+ef3V;VRi{ z`+JxHh-}syKd@=eQ@WlCoft*wBjXma?O8Xu5DdJLIs{ zezP)PgxD(^g}kQEbkumtpRMr~bNdhZ)HSlsD~uayy>f=mkl${%*K%K%N88z&8?H?X zEkC+;gpd(z`ljcK?uq#%rVw}gIg$UR1ulOA(XtII>+^RwJ`5pinUpkvzViKZl0NK- zt(-2?cu$Dads{QU*mxGCXzn+ef)o|b1hMriX@vyyE{no0CNLG@&dB*&yaQdHf4B5| z;y=OhR%0=-47i}(caK@vx^<1+260QxqSVl$R%FP#uNxGo9AV%cjvU+f4Io10SV9p1 za|cqF#=H5Gu^kP0=aW_(_jeA0YPhVhgq166V z9#n&Q5ZJ6?0~MDJp@o@oqezXeu}wEjgX#^>;|It>O)^o6OIo|QhOf4!?^tuee~P0S z9BL$IF1`*cOx}83=;xnli}k*sx70^?qCRS`U|#;`)o6V~27xK{rUU)Kpl&f$1D$Vu zS=6&{Q90rl+lF$YQ5g6hBAZ?I{}3}VItU2$|G>%R3MP=H0jYzgj`JN$JHZt7C(<^W zn2{P5gJ-T{oM7v{O>s%k=N-E=TDVVQ4|H$N+bo1fNn^2(^ zRvk^oU@Q_b0$#nVm3+VbXjOt@2+>)v<>7b8oZpX6PGNM+fOkKuKeRmas@$>pPj%+q?uPrG-RU+aXN%V)6!HYkHI4a}f&QFH8d2{Vd zAXx2UMc;|M(imDAl+KuFx0}Tv)r^^H1^@|Se7Wf;WB4((v$gzqvu#>@W;i;HeO@{W zq$9*BqHoU^|4#JVh(N=Yah8IMcp#nujByK4JM*T4#@Lk7yDFnPp z$jRU{OkL4f^^9i0*!-CB&3|_*eNAejj(g`sV|<}$@GR5vV7c)t{ixRsMJ&xF2LLQ= z{Q-{XgT_1J{4g3*!i7S}_ zHAhlTDfQ#J<-<^CMXfv=>|}pXHv1q=DwlB+5t$a8H*c;sa>c1~JfrKjv?5uP3uM(L zYsh99|gQGYX)V2^A8TwMgio-|W; z#4 z@$iWOi+@=rG8*NrRtBu)GQ=9m2kwu8FqW;YmItlbj}Hu=!B}u~oNz?km@;MU6Aj+MZG4a4V0{_r!#cq z=0F&?P@feBd=KVGXfEQ?gs;*Z#L=_BSJ~mh<5R%Cou0UTb+4zmnBnh@Yn8}5(?qxD z${xE<$G12~-O1CCW)RJms@zjyJIj6QKFi)}Ydidf6z9lupowG~{E_g(z_yA!nTklC(Y%Xk(CK$o|M9=P0U^eOcM9IFE(7EU?Z^?9-K} zxY=!VZjPcAgrJo$d5tG8>nc9lGZ$+Gw_%5Qjo5bK7`cIx+T}*K8g3GeK>!PW8EbW~ zk;X@?^P}vNfc@=n6{~YtWey<)!?6m_rlqt7u<<3KOpV+6YOBm?39mMRc!515)GVPrq4M}*l`(63PL#!m)B1oW$VYkk{4Vv~SL6q?82B|uC4uK#;mb<3!4u3H=w}bp zQdsK-a}L$W7rutwfY>wa$lIkOEeu8}&YNNgfT|BLsj5)50#(Y)G*Uhyv{AmpuE@7Eu8YyR<{BtKujsq4ic#(P zCS$acWT}}(ZHpam7j+(R#U<;QHtP$7F=K}vv1~JG?~=0J+BeknwvdGn7uK>8R@1=R zX+p%<|6|!eZ;9rJ>C{VdmLGL{VioGvoM3uy)owox3*hU>!q(Li$aH4 zw*pN`Q6ZY6EIA9!lCv%-K^>Spf`C9H{inJ9r?&*w zAQS(tLIGLouK=DYzTegbVB#RU#&4!)F^y;4EE z9aS2dzB5RyVN8?ZRUuN*Jq9MoJB!xd*K@5gx_9p(XqRA)!US(^j)}IQ-FnQ^laW@Q zD)(`nZBpAS&%nX!5`{vuBR&*i9;IL*F34~7usAP#|JP@Y!%m|R>9!eSsm;DfYEv z|8Qe5F(C~$n5)>dJn>P=zD^`1A5+dc-ocCBhZ+iEA_I_rZ$Xh_ydks)HYymnJH%Lm9O zsQPl^`BJ{6DZF|=;w=fh{4PuX`lXDeht|~d&M=N&K#rA%7#n}0HUDq}05fIbfiMj# z(th85Zut_t!569NRrNDth`VqwA;1~u$U(0kwl#Mr6~`|aleIG_mGuMX-|P*HU&XHb zTwg_N=Eey#ZGYm~0d~!Tqx|g5^(`bguyBL(Rk-W=q1ms0qYlIV>sR{xIa-xX=%oj~ z=(`^Cw&0PA2LksjT`mGP;MH5_ZSe^2na_U94iBV$*(bU;dX>@UUB1P^R%$XGB}*jH z{HWLwieU;p#(d)qbnS7Zp}7BC_lefKx!moK7qM2 zu$@O*KrZ-R(08p=KKgZ!+IC&$wpt{Ry4j*^f|t5H8 z&p=^?{V{bo(B_`MqaixYQRF0{{l_(L`)}f zk-hFl@T3xeEzlhGHYT_f3vYJBqOrj3PPU{-y{~Z<#2S0FEc-pcU=`(V!x=R-CgzWy z71}8&wB`94_fEqOH189?vI7NH&0L+;S5lZEVtY!XdQ4Ao{qoUVMv`MH2KHauwdYBg z{IcbmvYSsLmwseLR0T3;!Gimw4a_$0y5K#NC<4oeAiv&RQ`5Eu#TL4oS?xb~zNs~u zC1~AsKvT3(bfo6g@NAM1+&;FqRlBJOEdDe<=*V{4bX-USNuu48JgZ9xcruXZ6l zlVQ!xV~`jI|Ef0b(;vON8~vt-m#$xN?imEb{_(CzUutvWh@+xCv6C-P3z6Dqh$`1x zW8|6e@I*Q=5u}TfV#iJqXYfECa!Rq~rP?OF^*}t-*&gH284&V;ypWuR*QEKBwTko0 z+LI7}hPBWG0=$2DB8yQ{bOkPMI9VW>tAbLRX;zYIKk)d=TXCoj2jP|~8S-o)E_INc z7*|@I5Y)4vS=I^sQTU=AEHICEIVn*hZg6fj# z2*XU`z^qgKfJ>v@A`L1%+ zC5awM=Fl@q_=5$`8r*Jg{0zx-;!>@711~d#z=n?cmIcfPx!itswnWw`sVoFk(QWf% zFN;d{R%4H0v{tH!Na&`jzeiyJ$-pG8=ed84hY12z#^!H~*uVZrT}Bd7H`kgg=AqH5 zUpdpjPtEo$TG_-*@sV*_PEJWRJ_$KK5w&bGWj!+WtzY6_f|Kqu6iWs<8lj)W;p-v{ zc9_B(6662_7anD!~FRp%I0)YkEY6olZ8@Nd(^p51Y%RSY3 z`i_6R>wW_h5)pY8?`uSM-LsX2q!62GlG0Ml94Hu#H;eL#aaATdrskOv`#3YUb8^m( zicTHcKZ52_%#gIpo>1O!0h3Q2s<@G~!x^79`5J|hcX#a0B-p`*nRc1~N$)UEK%bON zY#D)0?>MhAs88?NqU;?Jq2z^y5cTdRIr()o%M$V!P;eT47zk-P&1biptPo%%Osrb#*9sA7R)j zJI4kqbbV4>DjnyU?2^o?GWGUdVQSPp0z0!Wi?!^W=B4<=ccbmfG0$jTt?9Q&36G_i z#djy|tPbd4tnKW~a#;M>s}cz|Wo7@K1A7>r%~H(6leTycx1RJ{)HaX}oCAi)^m}`5 zp4kjMqUbSgWvXavV?)2+()Q7z>h}?gUFGHA)P&)`~_A_6+FS z&fP)HwZR#;h7NhVZ0d9uM7oz~ZTM ztwq4rDeRE3zwKLufI`i~>w`umpa*MBZhx3gxq#>TV}vvHXWtKFs`)l>ed6U*X(yXz z*k$I`3Sz%3OB3B+mFxq;lU^=WA%b-R10~?g*0X6a8uJXWa8c%~m%vkh(77zbUzugN%h1Ua*28eq z)H}QW$}lR|H(T8J_$$!iBb?e3zC}N71atjI^Y=+4WZo7_NC`Szp;FqYw~ehA1uEo? zI;?ba+ChVmL-^>@L)ulOH~=Q5?#WvV^-B#>>oJXpMtk6-t&G>I|I!i6#g#5dF$CxD zgSC5EHieib61EWM8GknHTY2Aq3aLj zANvq*Lh9aggq?v$^w_QIbAvGYA&2X(WZ@;@5bf2-?xA7do=~@N3?9ECaq$_R?e=TBJz*~#)lp`+Q?w|{s zgcKRKE6zi6VCNSvdI2nGVS_*W9P)b?e#xcuSo@T33k6^47g+nz;0(b5q;`eBEbO|7 zQQ$2@4CQJek-G#+y0GIpWKAmyki#p+_x*E4!`IV?;Ie*^ynzJONVRS5B_&UyHyPSs zN4E$!ohomrL1|z^`%gKX7f_?XSQ@^hMxe)A^i`mJAw1xQ*#b~O@kzg0t8#DfMzF$J zE$TVeYam^rvuEMP`b5Yu*b~7uhEm6uAy)IbcDT)q#cCi+(Y+!^krC|?1wP8Kb;&pJ z5O{4wI+QRNo1%*j!z5Xmhy`JeBnCllV@cyxEk99?gH!|(eD!eZG8}jcOF)|@O~$X5 z$+Rig6a5+NPk<}(P#FEZ8+Y_>6rwFm%WElEF&R^E>_8Q>C)yK1XEs!w=3I-}s`Rxi zKIbCh~3-*F;hlaVR=YN1@Y2`Glnn z<9RNzU#BIk@)pV2P*u)vnA53)=J>;VsPOrkSC~qlJnDgwaUU39Ur%v54xH$@C zRFT~!b1kP#$!;N52%?K;eL&E#Xo6Cn;7IAR!k+GJWD(dZ_mI@!p@1L_|&a1gMS=8Hu?iHPp z*NU%tUu7)MWu2Kds;}k`5Ke;MW30Ee$WW(cX_JkIF3Je@Uc5V5>4cf5kKzw$?0Afw zl>G2?NKaO~^fHmed19m)$)46ItBckmopewKdO#OyILFFiR#wKcYKT%k@U1#|oTq)5 zbN`uN0;#gq|NPsQiyAe&%Xo!&58js*L1k+kvD}4bv-nQ9Q~uD-B6xkmih73`td@Ol zZ*o955@P;Eehl$AG!tYp%2`M&wMBNl*gMme_ky)ip`*~&UcASGW*jjS+>_;ib&Ulq z8o0_zuiMBzwT%_4ojJJ^n%AvQ1+Sg^*)xW+kF-uBTEUJK=#)=P0=J(^rbh>}gdzwB z!q_5B``j!-LR53antz*iGESW^Ci2_fOYl^5Q)PED_AoSYc7{eZ2TpU7D*7GeQ9Ia@ zGVWF_Lv$tXN3!=o^ize;A4KYnio1TJ7eM?4sooW6tc((CqK8hW=9jWB{lMa{zC*ox zBDE2#flb()^mpjH{mCa!#7$T=feq4Oa(Q{v6iiGhY6E*bt^SI6gQVc8b!h&gnGF2L zfKuB&`WShI#hQjx{9*vIAOz|A50E^i!}KwRo2HTLd?Eku$WcqMaoS}41WV;^pmR>? z#WWe1tSS8{|Jl)*7f+NIkY6srbHbj5)kOK1L^H~3{k=lbUYb;EH@Wl{HyEh6v;F`< zxjoCR9{ee%$9WNP-rMX@DG&+Wgg|E#Hb2NHZjj;-<=S-PPKH7QTM(iA>gp%FyIuC- z{S`O{9Pk@f_EW#8_$6*Dy-t4sY%o(%WHD0L_uSO~XrNwTzgaCah+Nagt|bfKGk1*V z49=@?6mp~G5nE4%jar`vV*vHjoCk(v{+$YyuQ+@08y>Gp@$k$GPl&#l1imdq{j}l zN${qoyT6`)+0hJ;#n=7cuv8T|ULuS>awRQ8zv{rTV_&z7H3KZ~!*xb|ir%CD3fg3r zq$hcNia8qVos}C8tJD93u)1sw9@oL-Y8rSgXWEw>6@g7)-U&BORn!AN`UwR_uUlz@ z_#;$MKslfm5oK!1VT*wW7&?r^U%7|vW}|1Q1b4r6`)4L08H@nyBnR}dUw{WYeKL6& zz_Hf+3dN33{$yut18>5v+aEwKU9@0kr1K7+IsoCW%e6ZBSU8j&oh=$;*)$bN@S*hA zkS*Qp(VSm3I)c5&V+mRr%FCD>@v|crJBVS%SfP)B(T0oXHKi&6{P^~KY><)<+?<43 z5ROvz)!2rKdt37&Y2aj9bxWCcve*u)A8>;gcZ$Dtc*up>7iQ`81=}L#xWS4A>A?2K zqv}_kVo5Yu7?fZ_2U-pNHC*doz+f{7o4H?C)J;~5&`iqb`r?0&_2rT+vlJi{viyvUGgodjkfY#4RY1kiN_Q=ELd~M@?#&4l0>OynpDE~^CuYFVg zBAJD35J)1G%j=aErK2!zxpeJ9tIPW#!gZ=$8@0_#V$dGlUbpHHdomnyp55wQkr7v^ z{nE^$OiDMy!~7hSbgUepbkwpNU1BZv)0f26uz?6~mw?O%NY8S&o*-h3J4KmyC1mRG(XTxV{7+&n6UrDQcG_T5zMI#0T=Y{O}D-qaRSm&=uiy z5*qf7!CRgLC=k|;P)qE1h7GO`AMhL1cg~FzYWF$2N<-@-y+${am~B{i*M-mcaP(9< zW0Ud|d=F@;H^oVw(ztyvFMm4aXN4r|;Yd>ihMuwn-`%nWRu4$TizZg*Un8g6_n~Im z_o=45lKZUAy!*cW@CwTOJRk?3E*jiqsVA5$4apA$EPm>Vsju)p*^QMsj2O!Vqki`D zPU+#Ss~k9b;gJm%@g}Xy?h_PrLPFeXLSaV=wEgT%nG>M~J8qESQ`hP!deMDFV+VDVg;K&o2QH78?k3rKvAt&k~1vHUvnw> zvxKS?#Q(^Z+*`og4o3az7INVeErs>PR9sLog#DSc*di>s>H;xY!hJ$NCm@fq4^=tLWea z=w~SrT1OvKKKT*+R4e2iUhE@SaGO7)!Y9OxR{jwcf>=8m_@Dr4{122-&|DZ zk7IqvJ^EZ~4~u{HEQLw)21enNExrmy0ESw1q1~Ck(^G*uD>?-)T7Vxs_B-ae00M0d-AnYQ*+Ld;AfoQUm+JgrbaO1a9WVN!t3#0i~^t zlh*~YX0S2CB&x_%%XJC3w^A(?Q=Jbq+lFAj!9raaCBZ-v_RV&iM>goTCd9uoAS6e} z(kl_wmzo!}3{Rsj3}IKcutri+UpO{nR(fk7v3{auSSGe(JIemU9!Vzk-qDMg=(xfo z0!;mBPKaZK3WX8lvaroVg(ZnV%bX*G`wXt0A{QgDpAh#slEeGOE0_|FD z|Bq*nhQe(xWtjl(A3L~)U74jIfX-y!Q{;^wjzD&!!4I7ix%vA#U#X0-AUfSN28;N2O+{&MCUKN^qsayBNY*z}-iw@fkWrDxP_3xw_K*Z1wqx~Ph6^A$?g@oXe#b&N$YS2=2 zgW|aKI7Sk3Kv6obLIGkt4|-ZQ-g3Cu6tDHUQL+(P3iR|7+H@Ysn+u|jgC^Wj!}YFy z@~x1vhIh>jvm=<<4?~*|o`5mf+QCSN`qa44>=MqI>{<@Q^+V$&!c%!9qn~}{2iUkv z6S?fCbjp8%skmti`7_;+euN}mI^*Qctn<7wBaJ5Hu%W!ZngTZTcCNAvO;Tod4F>pe zl@8e^!616gOutYY@hBS;??hTrUZI3L?IL;@^iGT1I2K=J!G^pj*Mu39s0lh;unEi& z2M2qbFY|X(Ds1m5W3SFS#H20AD#W;U{+~sNamjolVsB6nd}6fUKNt8y z_V@%J?-7+(t#eaPUD!T@zhI(mg$!>9KH)J4gFB!2KJmGQ&8bZF!6MWkIv`xYAJq59 zGmb-){Y1XOEeFtWsB-2hgZb1-AEAlcrNHtbf4E~g9AtG6(Y2$iz_72r^ zAym4ylyh6D^R;d9jd=T|tm6GGHW+yzol_zJolhluV0^_}On!F?K*Stb)8`BSzm~L+@y)N)-;l;`MMh6b+faW<%OPWRfPE+xWIWz{^ z+jkHn+Haae5o-5<7v$e|oDQ7XOyfki9L$!B83yq~dkm!v{YJ-*bVELJwAB(nX-hQ! znCjVrlbTCWmyn^KnAFjs;=f;^78;w23r$w!so+CL(wAa~Lak>Cg&f3l2tf3 z3Qnu-?irO}pU$&P!E`WXFw@+#>Dx_Z&P_m9I7d^dQjcYwm!+hHR&{{R6o0813m;s=zprEvw(zNX9?Do)k*%ez*k^Z5oI z>qXy|l%OIMpqgj)gty5@<79N)`%Ma7YS7?>2;aco3Z$lGgc#MJeAAeZpR%qq`#;`3 z_bLAP+DsILVUl@hFmFj4>%DsH7YN;~Tg3tDzI{Rk6jP#=^)C`+cb|nWr7XSU9agok zDM0PkhzrG)#jKo(PoC&M2GKf7bayjROY6?n#ye0LcAaPoT_SR%l z^XoK{pY}@p>t>R!d|R_C;7)e6UzHIS2-K`9v>b3il}J3n(F;Jwg8nRpNE_AxA#~q1-s;WIGW0@|KVv*Y8<$Wxl3^J#3P-Fo=NRz{QC_Ue zo;B1^zcuN@xwmbPn1zQ?2P}Cq7u;Na+oeU3^Y|iNY(eVtfwrm7Wo(Q5 zzXdXUsg*s9|Lk4u|4L-!|AWXpI_Q9%Qd>dhH!|uO3 zy@;YSP;qeSYRum!nvK>?F4hCa7_{J8YxQv6#5Ji>Vv@b#kBH6GCT(%=R-PCxY`#S+Fn}`+?Fhps2yLi)$sa<7ohueI?G*f7FKk zr~U}TX)~2Iz`RqLX|l<$TkA}PNbNel6e-#-r@NH($mrE1D4QuDzW<&FUd3z9@xEV& zVsCQJXkXm2JfX9?BDwA#JSEWp!zGOdl&QeGgS6y6n{DlZRo;0%7beJRje1ym_1EB6>y4^?$Fh7MX zTcV@;WR0!n87mWTpZ*+*NgKK(u^6AI2VnO5ZKIAmC`JCCF0KMBsxD~bQo<5TFU!&) zEiEnGAt*`+(hbrLE7Bo#>5>-dloX@|q?BA(8U>LQ5vBf>-|zc={=Ivjotg8_oco-+ z=RSANnHl#jd4wFpigCmD#)8GEk^`n;nLc821zYcIRd=$F2%l$PshAkVK6m|+n==u# z1o}FwE0oql!*wJ}S9(ONS0i9-`*q<12chBd77yiNpW5gBc^pniOeSigg%=M)xci5# zr5$ErLEPeZyR@m3lfz#Q+LPa%*#{>EMLiiY%f{X5Bb2g`Fd|Og=b)a@Azy^ zLWliJJ%9Of@3cWF|0mAWob*SW%;u+K9%MvhdY8v&?z`R&w3r}c<^*Gl8VyCDC)obfKdpH-Emf~6k>&s_e2-_@8 zw?A3^+1YbC+;h+sg6;QBW{t+%p-OPEW}KKa=91<1y@wCG_9a@6gQ8T)-0|C_v!%xY z8mQsnE@VD^VB(1nydUPZeV)@v(!F>`W}XIyed`jT&2@-WKn5O8zu)+R+9&(#2BFRTTIWsHuK?I1vcE1+}ZKy`$Q-R*iO!DOMth%R#JszW+om=AF{j@ z7O|<08pK)HLa4uPZ=F|+ANcgbwfM`ao~fkq^!H-S`Hk=B=-t=XVU0lOa(Q{2jffLa>!$0vxIHp9fMoHEXa!BpXvOW1|pjM?%IU8^XY^g zW|sQ}TZ9UZM_}ysDYM(P1J?FccZ9$ zY)8?c81J%4D@+t^T*^Y z1;U>UYix7jY;sta zU24u8a+I7&H9U$(K?htLK7Ju$YkT<~@hXbvOj_nrezVUiAoip(b`1X6_gH8Ho4a)} zc5*h}bkOP&x&cYnOA*yPEIO^I{$7-9Vk6+!`aC$o?}-v$OOE4i!U1bd=t1h&Ypw?_HCu*UY$ZvyInOhpweM!?3>T`2* z*bZzxGd~P{GY)2Ah@?!8A;*_h-CwG!@XY^~w8PZ#d~5}5S|H2He<66F6M$op zU2l}9Zwh8S7!z~1{v6;wmofMK``FA=jF0JQW0i-xme@iEDEGsmF=kHZbO8z089AgGb`;ThWNn!d$(Y{}14p@P#hR)MVLTVJys zDfQeV8zO{_>y@Bv;;5<1shT-1D?fST7=jLd3q>ni^4PhNA68QVytk<$$wpz(kM)z$ z+nwqfFJ01B%s;0TXRc)$G*F79sV5M0aTq@useS&KyR2wx@2kZ+J3Lx24{l4Bh{zmL zfqo?n>`Kz)YBIA6ALZ{KUmuU-K*wVKs1t1C>`WxXHW<4_$$kIRclnfTUhgrknnB!Z z$IptZoco)@)NiE4^e7FhdL_2zCB&Iz>Iy1G-qRevTK4I#@#586rgIpoA|IPC($_Ut z6;vo|8DQXnW|b7gITQpKa(ehFR3V<A+9-cG@0IL@6$_>*NeZ7f{9|2D9kdJ*9XtvC*(qQcOWQsfQ@&A>uF1 z`CisHt|QIwHe6n2zJubias4o{AWn{KE3_UFYq0n={`!sYtMW|$se*Iyo@KF?Zf)J$ zFWz0Iw4T`An^5XJQ}Tn?+*2VCDrn!2{Dt$|>7!lJs0lJ;V)m9#LG1}qJN@Q2S;0y| zxqh~LJ!~YV_iY(Xz=JCEX)f64^z=-PUW;a}Y53&N{T^k1w%;VVWBYxbdHo@Kr8zqn z!TY=?y0I)5?DMjyW8Nax{HB<9y4+e7rayCQg66&Sn@K63IpSzKQjTy(+{|i1MTv(W zqXw5Lk%NS?D7GPa*;^!CwB1__RrKHPFu@xcgXav~M3r@edv*wFLI@_+@!3U8tfTj` zRyUbktncec;69ILbpFyj-@n;qg;XAN#FXkcjB*b-&XUIS##VT*eMfgQ!Y8blPvH<_ zhnR8kDM##Y$@CJbZQue_KOB7nldx!DVEG2Rf<_h?149z14Wb21S8##z7jy{Sc_s3T zY03)bnBL~}&^JXy!Z!lC7LrV}Sg zx)lG^w7JwFFCoPxW@;Xy!6tZKh>|+p%6@t`M@k%Vak>r0aQ9)bxEXV6Gcl2*i%D54 zJd~B%;4#rEewAAQ3*|7J3v`UAC7_-Wt-^H)Su2S(I#KAym=--0=+^(j?y_LE+0-cr ztECRF4M3F@aizBEO?@()QmLMH5T05XqA3YdZiKa_FdrqE!Hy}yX@JH38Im~Pa>BGM zq-ny#Z6om>4m16y(?hMEk9Zypl8(*@H@4;*hU+)QCglx73?}F&dCn27X2Rdh>lY3O z^A-d&QHGUeFT%BI6t$CTtKv3`WS!`dirJ&}d<2st1(k+gD~V2%nsH-L98?QUjEK`= zqgV!_G^o0yyv#tA%4wL7t3_)#`OXibrQWV;LkdRYh`YbNJaM&|TFAUZQo}HZJ*tC$ z!inFg>e=>*a%Me_g~THC9p;;+lt%|P*aaLrQ`!%uyDI?yj$4AO{9JVI1hpoM76~yw zN{V$xBSYc4?=-+W6xm&o&&{$wHxDO>rg}CnDNf~p~cikVp4HO zi`|o^9Nr9cIDUpGZ=_k}tLVw?;v_xIPc$!PR|$-(e$nlIPo^oiqnQ$-z|?^fK}*Z@ zJhD~-BsA~bH+egca7NlBkP!6yo7D`;`r#0lp32|RTa??fyFL5X9_E*Wm*TEAlBrf_ z*}C73Xwda9miV|~OtQCkhrNgH5^s;b`;yi9P}GE^c$ZU7lNubR;QK0rURr0TYoE8$ z`6E)hkW~8&^h7doA^7r^;psk|lyE`lsIHQ?!>0mcX1N&dp#fGIAwNl{#P2{a|xs z`g1H1um}`(&{ZShj3XlGYAu4-F>mO!eX3)R5loqEZ-?zbs+*@5-&h%eDExACq`kRP zy0rJYtTZ2wL9cwDoTp70)p*AN)r&^$k0gq(iZtq>p1P)bSK zZb6?^?Od?gouHx6yWrI?vA!K};$^D#c7_#2=?hl+%QARp|94Uo^XW9!cBU1*8*^}1 zk58N4+$a?lpBz338#CK^2Ph(Q3V7gTRF92hE=jS~*0+~@-8his=N~U7SphqUbhd4K zFg#t+I(Oy`PWFRgIkym%56Dk$)N%_D$CNWk$0X{jIVyV!;XQ>k*~r~x#zNxHi^t?@ z(&_;m9af6#&&12#yn;*3(M>o-j1K+&5t=W~5rZ`|BC+^w2PjLl{fXE^^{r+zqN=u= zFGi%m>3;Rjn_6k_(q4oOQc;I>=idId*(X+SC&Msq(LZQ3oX(O7TdX!{n>ttRexURr zJrjP9C+DZMz`I4#(nYg$i*TE%Y+GkeN1339hfeQ>S}PUo^#$R<{xt4AQw_5Z@XDxt zQ(9KBQXyvFOkawxE;%DO2ILyEOGS1QI6$;7Vy0V!^2O#KNcaP*{Ux}lVUjN@x)!%n znmII5OvU9h8$aEa^6e$G@yh~C#U_sH<+`&-7nAniyu0imHZVx{dz;mwxJKJv@ue6@ zBW!nE-w@%w#E#5wKFZ?YDsh?;yO^DKXx+!8&T=J|?<7I!C+={gQj6(UkGqv4 ztQMj)1u`di3o*B?V3IVJj=i)3zabR19d9(ZLgxhNKAjQFF4H%$Z9P5^Z}@oc=^b|0 z`}Gt(9^}eWr5t7XMPzSZAk9T4ym#;B^}VlKTBQ|vD%Vc}rgf+HPcObYF@ivWX+Pz_~_B?k%*RRQn~Vj6Up5MSSC%1kX9?8>dq~wV|%97`ZjF) zXRF-?>b~h7C>xO|5l8j)otrS_C&xDD^M0bQ{ZioR6zVNsNwG^^F={z<7O0`PHr?Rb zN%ws&o0=yM?H>yVreB)okVoIR+%cG&O+NiyG1AM4dTiatU25aj>__A--lY0Ws0ev> z%#ad(`UjFl`R&L@^7LJT>P}#425hd-J(K4p^V=sD;RsfDNUynF&u80`k6){)-ZXUL zG-F8Mv%UdkCj1 zdE+W{IvU}vb33lkAp6~0g?bWJZhEO%P%~uScwNrXw-#KxbA!r!Tm5}&W%F3m0gIj4 zZ(ASy4dt5OOzT}ktii+j;`;ClEZs|N?kuIgrL0#ql7Wvi{54$cz7sqoHzUR~^o?Vo zY-=jDB96SD&}&zB5m-THGtMe4Q++c2R<`k#lzRw*{Y`$FBrk z>h(l1BNX={9$B7Xyj+6Mwzw8CTu`F|PjGQpchJl$v4pLjwI{sY$gCMD9A?RheR=N} zJ{9Z;tkNISVIXk)8=GZ~vFRDq4;tURaZy@sMvr`)maLojqL6}dL1}3o^9*-LG)RG* z6tkj~DN?Ti0Xm}}5j6pac3{`&0SZPq{pH_wlF#wrJ2w*k~1JyF1MKnPAEDQWvmiaZSp3GwRK1%+P=+`a}37XAyo1Nx?VMaCiF@c%Ym zFfc@~;nOv)K$4FMflVYk{MusvHDHm}UmzI(U4a0W^Dxkb-j%4yg7!*OWD6nqN2Ms3 z$mpt3YXKJ+wIu@x7dSz9CVxe&@axMS|7iUgb4wfaB8V(-3q=I#u>tO&BtVBYz_OqcF1K&_uAl|3IN-`YKUz7#)x?GW?LBvReI)odx_Qu>s;3LO^^OLUYYgyr#DY94!9hHqrod zOAw%883s}dy)yBASr~rpZSk7wX*e2m7tmgZ0Kf_iWEgj)b32;`*jeEO86;k@GOus| zp_i0bDBD#S$Rzn+apkHw$T{s_R<)Sq3MIG(136^;6_Z~5)4*l__vYAS|7|1yme#~U z4_{uf((4kSvivI&QBC*9($&-j#@8u9>qTfe6M(k|AcLE6; z`k<%X0OPpi)!=`b_`iM0_X0mAB>ptOug~%SMxrQ~vL8L;naQzn{s{Te2Q~W5+NS>x F_djzcFxCJ7 diff --git a/examples/gradle/wrapper/gradle-wrapper.properties b/examples/gradle/wrapper/gradle-wrapper.properties index 0effb0be..2e6e5897 100755 --- a/examples/gradle/wrapper/gradle-wrapper.properties +++ b/examples/gradle/wrapper/gradle-wrapper.properties @@ -1,6 +1,5 @@ -#Sun Mar 08 12:20:19 SAST 2020 -distributionUrl=https\://services.gradle.org/distributions/gradle-6.8.3-bin.zip distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists -zipStorePath=wrapper/dists +distributionUrl=https\://services.gradle.org/distributions/gradle-7.3.3-bin.zip zipStoreBase=GRADLE_USER_HOME +zipStorePath=wrapper/dists diff --git a/examples/gradlew b/examples/gradlew index af6708ff..4f906e0c 100755 --- a/examples/gradlew +++ b/examples/gradlew @@ -1,5 +1,21 @@ #!/usr/bin/env sh +# +# Copyright 2015 the original author or authors. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# https://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# + ############################################################################## ## ## Gradle start up script for UN*X @@ -28,7 +44,7 @@ APP_NAME="Gradle" APP_BASE_NAME=`basename "$0"` # Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. -DEFAULT_JVM_OPTS='"-Xmx64m"' +DEFAULT_JVM_OPTS='"-Xmx64m" "-Xms64m"' # Use the maximum available, or set MAX_FD != -1 to use that value. MAX_FD="maximum" @@ -66,6 +82,7 @@ esac CLASSPATH=$APP_HOME/gradle/wrapper/gradle-wrapper.jar + # Determine the Java command to use to start the JVM. if [ -n "$JAVA_HOME" ] ; then if [ -x "$JAVA_HOME/jre/sh/java" ] ; then @@ -109,10 +126,11 @@ if $darwin; then GRADLE_OPTS="$GRADLE_OPTS \"-Xdock:name=$APP_NAME\" \"-Xdock:icon=$APP_HOME/media/gradle.icns\"" fi -# For Cygwin, switch paths to Windows format before running java -if $cygwin ; then +# For Cygwin or MSYS, switch paths to Windows format before running java +if [ "$cygwin" = "true" -o "$msys" = "true" ] ; then APP_HOME=`cygpath --path --mixed "$APP_HOME"` CLASSPATH=`cygpath --path --mixed "$CLASSPATH"` + JAVACMD=`cygpath --unix "$JAVACMD"` # We build the pattern for arguments to be converted via cygpath @@ -138,19 +156,19 @@ if $cygwin ; then else eval `echo args$i`="\"$arg\"" fi - i=$((i+1)) + i=`expr $i + 1` done case $i in - (0) set -- ;; - (1) set -- "$args0" ;; - (2) set -- "$args0" "$args1" ;; - (3) set -- "$args0" "$args1" "$args2" ;; - (4) set -- "$args0" "$args1" "$args2" "$args3" ;; - (5) set -- "$args0" "$args1" "$args2" "$args3" "$args4" ;; - (6) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" ;; - (7) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" ;; - (8) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" ;; - (9) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" "$args8" ;; + 0) set -- ;; + 1) set -- "$args0" ;; + 2) set -- "$args0" "$args1" ;; + 3) set -- "$args0" "$args1" "$args2" ;; + 4) set -- "$args0" "$args1" "$args2" "$args3" ;; + 5) set -- "$args0" "$args1" "$args2" "$args3" "$args4" ;; + 6) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" ;; + 7) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" ;; + 8) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" ;; + 9) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" "$args8" ;; esac fi @@ -159,14 +177,9 @@ save () { for i do printf %s\\n "$i" | sed "s/'/'\\\\''/g;1s/^/'/;\$s/\$/' \\\\/" ; done echo " " } -APP_ARGS=$(save "$@") +APP_ARGS=`save "$@"` # Collect all arguments for the java command, following the shell quoting and substitution rules eval set -- $DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS "\"-Dorg.gradle.appname=$APP_BASE_NAME\"" -classpath "\"$CLASSPATH\"" org.gradle.wrapper.GradleWrapperMain "$APP_ARGS" -# by default we should be in the correct project dir, but when run from Finder on Mac, the cwd is wrong -if [ "$(uname)" = "Darwin" ] && [ "$HOME" = "$PWD" ]; then - cd "$(dirname "$0")" -fi - exec "$JAVACMD" "$@" diff --git a/examples/gradlew.bat b/examples/gradlew.bat index 6d57edc7..107acd32 100755 --- a/examples/gradlew.bat +++ b/examples/gradlew.bat @@ -1,3 +1,19 @@ +@rem +@rem Copyright 2015 the original author or authors. +@rem +@rem Licensed under the Apache License, Version 2.0 (the "License"); +@rem you may not use this file except in compliance with the License. +@rem You may obtain a copy of the License at +@rem +@rem https://www.apache.org/licenses/LICENSE-2.0 +@rem +@rem Unless required by applicable law or agreed to in writing, software +@rem distributed under the License is distributed on an "AS IS" BASIS, +@rem WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +@rem See the License for the specific language governing permissions and +@rem limitations under the License. +@rem + @if "%DEBUG%" == "" @echo off @rem ########################################################################## @rem @@ -13,15 +29,18 @@ if "%DIRNAME%" == "" set DIRNAME=. set APP_BASE_NAME=%~n0 set APP_HOME=%DIRNAME% +@rem Resolve any "." and ".." in APP_HOME to make it shorter. +for %%i in ("%APP_HOME%") do set APP_HOME=%%~fi + @rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. -set DEFAULT_JVM_OPTS="-Xmx64m" +set DEFAULT_JVM_OPTS="-Xmx64m" "-Xms64m" @rem Find java.exe if defined JAVA_HOME goto findJavaFromJavaHome set JAVA_EXE=java.exe %JAVA_EXE% -version >NUL 2>&1 -if "%ERRORLEVEL%" == "0" goto init +if "%ERRORLEVEL%" == "0" goto execute echo. echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. @@ -35,7 +54,7 @@ goto fail set JAVA_HOME=%JAVA_HOME:"=% set JAVA_EXE=%JAVA_HOME%/bin/java.exe -if exist "%JAVA_EXE%" goto init +if exist "%JAVA_EXE%" goto execute echo. echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME% @@ -45,28 +64,14 @@ echo location of your Java installation. goto fail -:init -@rem Get command-line arguments, handling Windows variants - -if not "%OS%" == "Windows_NT" goto win9xME_args - -:win9xME_args -@rem Slurp the command line arguments. -set CMD_LINE_ARGS= -set _SKIP=2 - -:win9xME_args_slurp -if "x%~1" == "x" goto execute - -set CMD_LINE_ARGS=%* - :execute @rem Setup the command line set CLASSPATH=%APP_HOME%\gradle\wrapper\gradle-wrapper.jar + @rem Execute Gradle -"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %CMD_LINE_ARGS% +"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %* :end @rem End local scope for the variables with windows NT shell diff --git a/gradle/wrapper/gradle-wrapper.jar b/gradle/wrapper/gradle-wrapper.jar index e708b1c023ec8b20f512888fe07c5bd3ff77bb8f..7454180f2ae8848c63b8b4dea2cb829da983f2fa 100755 GIT binary patch delta 18435 zcmY&<19zBR)MXm8v2EM7ZQHi-#I|kQZfv7Tn#Q)%81v4zX3d)U4d4 zYYc!v@NU%|U;_sM`2z(4BAilWijmR>4U^KdN)D8%@2KLcqkTDW%^3U(Wg>{qkAF z&RcYr;D1I5aD(N-PnqoEeBN~JyXiT(+@b`4Pv`;KmkBXYN48@0;iXuq6!ytn`vGp$ z6X4DQHMx^WlOek^bde&~cvEO@K$oJ}i`T`N;M|lX0mhmEH zuRpo!rS~#&rg}ajBdma$$}+vEhz?JAFUW|iZEcL%amAg_pzqul-B7Itq6Y_BGmOCC zX*Bw3rFz3R)DXpCVBkI!SoOHtYstv*e-May|+?b80ZRh$MZ$FerlC`)ZKt} zTd0Arf9N2dimjs>mg5&@sfTPsRXKXI;0L~&t+GH zkB<>wxI9D+k5VHHcB7Rku{Z>i3$&hgd9Mt_hS_GaGg0#2EHzyV=j=u5xSyV~F0*qs zW{k9}lFZ?H%@4hII_!bzao!S(J^^ZZVmG_;^qXkpJb7OyR*sPL>))Jx{K4xtO2xTr@St!@CJ=y3q2wY5F`77Tqwz8!&Q{f7Dp zifvzVV1!Dj*dxG%BsQyRP6${X+Tc$+XOG zzvq5xcC#&-iXlp$)L=9t{oD~bT~v^ZxQG;FRz|HcZj|^L#_(VNG)k{=_6|6Bs-tRNCn-XuaZ^*^hpZ@qwi`m|BxcF6IWc?_bhtK_cDZRTw#*bZ2`1@1HcB`mLUmo_>@2R&nj7&CiH zF&laHkG~7#U>c}rn#H)q^|sk+lc!?6wg0xy`VPn!{4P=u@cs%-V{VisOxVqAR{XX+ zw}R;{Ux@6A_QPka=48|tph^^ZFjSHS1BV3xfrbY84^=?&gX=bmz(7C({=*oy|BEp+ zYgj;<`j)GzINJA>{HeSHC)bvp6ucoE`c+6#2KzY9)TClmtEB1^^Mk)(mXWYvup02e%Ghm9qyjz#fO3bNGBX} zFiB>dvc1+If!>I10;qZk`?6pEd*(?bI&G*3YLt;MWw&!?=Mf7%^Op?qnyXWur- zwX|S^P>jF?{m9c&mmK-epCRg#WB+-VDe!2d2~YVoi%7_q(dyC{(}zB${!ElKB2D}P z7QNFM!*O^?FrPMGZ}wQ0TrQAVqZy!weLhu_Zq&`rlD39r*9&2sJHE(JT0EY5<}~x@ z1>P0!L2IFDqAB!($H9s2fI`&J_c+5QT|b#%99HA3@zUWOuYh(~7q7!Pf_U3u!ij5R zjFzeZta^~RvAmd_TY+RU@e}wQaB_PNZI26zmtzT4iGJg9U(Wrgrl>J%Z3MKHOWV(? zj>~Ph$<~8Q_sI+)$DOP^9FE6WhO09EZJ?1W|KidtEjzBX3RCLUwmj9qH1CM=^}MaK z59kGxRRfH(n|0*lkE?`Rpn6d^u5J6wPfi0WF(rucTv(I;`aW)3;nY=J=igkjsn?ED ztH&ji>}TW8)o!Jg@9Z}=i2-;o4#xUksQHu}XT~yRny|kg-$Pqeq!^78xAz2mYP9+4 z9gwAoti2ICvUWxE&RZ~}E)#M8*zy1iwz zHqN%q;u+f6Ti|SzILm0s-)=4)>eb5o-0K zbMW8ecB4p^6OuIX@u`f{>Yn~m9PINEl#+t*jqalwxIx=TeGB9(b6jA}9VOHnE$9sC zH`;epyH!k-3kNk2XWXW!K`L_G!%xOqk0ljPCMjK&VweAxEaZ==cT#;!7)X&C|X{dY^IY(e4D#!tx^vV3NZqK~--JW~wtXJ8X19adXim?PdN(|@o(OdgH3AiHts~?#QkolO?*=U_buYC&tQ3sc(O5HGHN~=6wB@dgIAVT$ z_OJWJ^&*40Pw&%y^t8-Wn4@l9gOl`uU z{Uda_uk9!Iix?KBu9CYwW9Rs=yt_lE11A+k$+)pkY5pXpocxIEJe|pTxwFgB%Kpr&tH;PzgOQ&m|(#Otm?@H^r`v)9yiR8v&Uy>d#TNdRfyN4Jk;`g zp+jr5@L2A7TS4=G-#O<`A9o;{En5!I8lVUG?!PMsv~{E_yP%QqqTxxG%8%KxZ{uwS zOT+EA5`*moN8wwV`Z=wp<3?~f#frmID^K?t7YL`G^(X43gWbo!6(q*u%HxWh$$^2EOq`Hj zp=-fS#Av+s9r-M)wGIggQ)b<@-BR`R8l1G@2+KODmn<_$Tzb7k35?e8;!V0G>`(!~ zY~qZz!6*&|TupOcnvsQYPbcMiJ!J{RyfezB^;fceBk znpA1XS)~KcC%0^_;ihibczSxwBuy;^ksH7lwfq7*GU;TLt*WmUEVQxt{ zKSfJf;lk$0XO8~48Xn2dnh8tMC9WHu`%DZj&a`2!tNB`5%;Md zBs|#T0Ktf?vkWQ)Y+q!At1qgL`C|nbzvgc(+28Q|4N6Geq)Il%+I5c@t02{9^=QJ?=h2BTe`~BEu=_u3xX2&?^zwcQWL+)7dI>JK0g8_`W1n~ zMaEP97X>Ok#=G*nkPmY`VoP8_{~+Rp7DtdSyWxI~?TZHxJ&=6KffcO2Qx1?j7=LZA z?GQt`oD9QpXw+s7`t+eeLO$cpQpl9(6h3_l9a6OUpbwBasCeCw^UB6we!&h9Ik@1zvJ`j4i=tvG9X8o34+N|y(ay~ho$f=l z514~mP>Z>#6+UxM<6@4z*|hFJ?KnkQBs_9{H(-v!_#Vm6Z4(xV5WgWMd3mB9A(>@XE292#k(HdI7P zJkQ2)`bQXTKlr}{VrhSF5rK9TsjtGs0Rs&nUMcH@$ZX_`Hh$Uje*)(Wd&oLW($hZQ z_tPt`{O@f8hZ<}?aQc6~|9iHt>=!%We3=F9yIfiqhXqp=QUVa!@UY@IF5^dr5H8$R zIh{=%S{$BHG+>~a=vQ={!B9B=<-ID=nyjfA0V8->gN{jRL>Qc4Rc<86;~aY+R!~Vs zV7MI~gVzGIY`B*Tt@rZk#Lg}H8sL39OE31wr_Bm%mn}8n773R&N)8B;l+-eOD@N$l zh&~Wz`m1qavVdxwtZLACS(U{rAa0;}KzPq9r76xL?c{&GaG5hX_NK!?)iq`t7q*F# zFoKI{h{*8lb>&sOeHXoAiqm*vV6?C~5U%tXR8^XQ9Y|(XQvcz*>a?%HQ(Vy<2UhNf zVmGeOO#v159KV@1g`m%gJ)XGPLa`a|?9HSzSSX{j;)xg>G(Ncc7+C>AyAWYa(k}5B3mtzg4tsA=C^Wfezb1&LlyrBE1~kNfeiubLls{C)!<%#m@f}v^o+7<VZ6!FZ;JeiAG@5vw7Li{flC8q1%jD_WP2ApBI{fQ}kN zhvhmdZ0bb5(qK@VS5-)G+@GK(tuF6eJuuV5>)Odgmt?i_`tB69DWpC~e8gqh!>jr_ zL1~L0xw@CbMSTmQflpRyjif*Y*O-IVQ_OFhUw-zhPrXXW>6X}+73IoMsu2?uuK3lT>;W#38#qG5tDl66A7Y{mYh=jK8Se!+f=N7%nv zYSHr6a~Nxd`jqov9VgII{%EpC_jFCEc>>SND0;}*Ja8Kv;G)MK7?T~h((c&FEBcQq zvUU1hW2^TX(dDCeU@~a1LF-(+#lz3997A@pipD53&Dr@III2tlw>=!iGabjXzbyUJ z4Hi~M1KCT-5!NR#I%!2Q*A>mqI{dpmUa_mW)%SDs{Iw1LG}0y=wbj@0ba-`q=0!`5 zr(9q1p{#;Rv2CY!L#uTbs(UHVR5+hB@m*zEf4jNu3(Kj$WwW|v?YL*F_0x)GtQC~! zzrnZRmBmwt+i@uXnk05>uR5&1Ddsx1*WwMrIbPD3yU*2By`71pk@gt{|H0D<#B7&8 z2dVmXp*;B)SWY)U1VSNs4ds!yBAj;P=xtatUx^7_gC5tHsF#vvdV;NmKwmNa1GNWZ zi_Jn-B4GnJ%xcYWD5h$*z^haku#_Irh818x^KB)3-;ufjf)D0TE#6>|zFf@~pU;Rs zNw+}c9S+6aPzxkEA6R%s*xhJ37wmgc)-{Zd1&mD5QT}4BQvczWr-Xim>(P^)52`@R z9+Z}44203T5}`AM_G^Snp<_KKc!OrA(5h7{MT^$ZeDsSr(R@^kI?O;}QF)OU zQ9-`t^ys=6DzgLcWt0U{Q(FBs22=r zKD%fLQ^5ZF24c-Z)J{xv?x$&4VhO^mswyb4QTIofCvzq+27*WlYm;h@;Bq%i;{hZA zM97mHI6pP}XFo|^pRTuWQzQs3B-8kY@ajLV!Fb?OYAO3jFv*W-_;AXd;G!CbpZt04iW`Ie^_+cQZGY_Zd@P<*J9EdRsc>c=edf$K|;voXRJ zk*aC@@=MKwR120(%I_HX`3pJ+8GMeO>%30t?~uXT0O-Tu-S{JA;zHoSyXs?Z;fy58 zi>sFtI7hoxNAdOt#3#AWFDW)4EPr4kDYq^`s%JkuO7^efX+u#-qZ56aoRM!tC^P6O zP(cFuBnQGjhX(^LJ(^rVe4-_Vk*3PkBCj!?SsULdmVr0cGJM^=?8b0^DuOFq>0*yA zk1g|C7n%pMS0A8@Aintd$fvRbH?SNdRaFrfoAJ=NoX)G5Gr}3-$^IGF+eI&t{I-GT zp=1fj)2|*ur1Td)+s&w%p#E6tDXX3YYOC{HGHLiCvv?!%%3DO$B$>A}aC;8D0Ef#b z{7NNqC8j+%1n95zq8|hFY`afAB4E)w_&7?oqG0IPJZv)lr{MT}>9p?}Y`=n+^CZ6E zKkjIXPub5!82(B-O2xQojW^P(#Q*;ETpEr^+Wa=qDJ9_k=Wm@fZB6?b(u?LUzX(}+ zE6OyapdG$HC& z&;oa*ALoyIxVvB2cm_N&h&{3ZTuU|aBrJlGOLtZc3KDx)<{ z27@)~GtQF@%6B@w3emrGe?Cv_{iC@a#YO8~OyGRIvp@%RRKC?fclXMP*6GzBFO z5U4QK?~>AR>?KF@I;|(rx(rKxdT9-k-anYS+#S#e1SzKPslK!Z&r8iomPsWG#>`Ld zJ<#+8GFHE!^wsXt(s=CGfVz5K+FHYP5T0E*?0A-z*lNBf)${Y`>Gwc@?j5{Q|6;Bl zkHG1%r$r&O!N^><8AEL+=y(P$7E6hd=>BZ4ZZ9ukJ2*~HR4KGvUR~MUOe$d>E5UK3 z*~O2LK4AnED}4t1Fs$JgvPa*O+WeCji_cn1@Tv7XQ6l@($F1K%{E$!naeX)`bfCG> z8iD<%_M6aeD?a-(Qqu61&fzQqC(E8ksa%CulMnPvR35d{<`VsmaHyzF+B zF6a@1$CT0xGVjofcct4SyxA40uQ`b#9kI)& z?B67-12X-$v#Im4CVUGZHXvPWwuspJ610ITG*A4xMoRVXJl5xbk;OL(;}=+$9?H`b z>u2~yd~gFZ*V}-Q0K6E@p}mtsri&%Zep?ZrPJmv`Qo1>94Lo||Yl)nqwHXEbe)!g( zo`w|LU@H14VvmBjjkl~=(?b{w^G$~q_G(HL`>|aQR%}A64mv0xGHa`S8!*Wb*eB}` zZh)&rkjLK!Rqar)UH)fM<&h&@v*YyOr!Xk2OOMV%$S2mCRdJxKO1RL7xP_Assw)bb z9$sQ30bapFfYTS`i1PihJZYA#0AWNmp>x(;C!?}kZG7Aq?zp!B+gGyJ^FrXQ0E<>2 zCjqZ(wDs-$#pVYP3NGA=en<@_uz!FjFvn1&w1_Igvqs_sL>ExMbcGx4X5f%`Wrri@ z{&vDs)V!rd=pS?G(ricfwPSg(w<8P_6=Qj`qBC7_XNE}1_5>+GBjpURPmvTNE7)~r)Y>ZZecMS7Ro2` z0}nC_GYo3O7j|Wux?6-LFZs%1IV0H`f`l9or-8y0=5VGzjPqO2cd$RRHJIY06Cnh- ztg@Pn1OeY=W`1Mv3`Ti6!@QIT{qcC*&vptnX4Pt1O|dWv8u2s|(CkV`)vBjAC_U5` zCw1f&c4o;LbBSp0=*q z3Y^horBAnR)u=3t?!}e}14%K>^562K!)Vy6r~v({5{t#iRh8WIL|U9H6H97qX09xp zjb0IJ^9Lqxop<-P*VA0By@In*5dq8Pr3bTPu|ArID*4tWM7w+mjit0PgmwLV4&2PW z3MnIzbdR`3tPqtUICEuAH^MR$K_u8~-U2=N1)R=l>zhygus44>6V^6nJFbW-`^)f} zI&h$FK)Mo*x?2`0npTD~jRd}5G~-h8=wL#Y-G+a^C?d>OzsVl7BFAaM==(H zR;ARWa^C3J)`p~_&FRsxt|@e+M&!84`eq)@aO9yBj8iifJv0xVW4F&N-(#E=k`AwJ z3EFXWcpsRlB%l_0Vdu`0G(11F7( zsl~*@XP{jS@?M#ec~%Pr~h z2`M*lIQaolzWN&;hkR2*<=!ORL(>YUMxOzj(60rQfr#wTrkLO!t{h~qg% zv$R}0IqVIg1v|YRu9w7RN&Uh7z$ijV=3U_M(sa`ZF=SIg$uY|=NdC-@%HtkUSEqJv zg|c}mKTCM=Z8YmsFQu7k{VrXtL^!Cts-eb@*v0B3M#3A7JE*)MeW1cfFqz~^S6OXFOIP&iL;Vpy z4dWKsw_1Wn%Y;eW1YOfeP_r1s4*p1C(iDG_hrr~-I%kA>ErxnMWRYu{IcG{sAW;*t z9T|i4bI*g)FXPpKM@~!@a7LDVVGqF}C@mePD$ai|I>73B+9!Ks7W$pw;$W1B%-rb; zJ*-q&ljb=&41dJ^*A0)7>Wa@khGZ;q1fL(2qW=|38j43mTl_;`PEEw07VKY%71l6p z@F|jp88XEnm1p~<5c*cVXvKlj0{THF=n3sU7g>Ki&(ErR;!KSmfH=?49R5(|c_*xw z4$jhCJ1gWT6-g5EV)Ahg?Nw=}`iCyQ6@0DqUb%AZEM^C#?B-@Hmw?LhJ^^VU>&phJ zlB!n5&>I>@sndh~v$2I2Ue23F?0!0}+9H~jg7E`?CS_ERu75^jSwm%!FTAegT`6s7 z^$|%sj2?8wtPQR>@D3sA0-M-g-vL@47YCnxdvd|1mPymvk!j5W1jHnVB&F-0R5e-vs`@u8a5GKdv`LF7uCfKncI4+??Z4iG@AxuX7 z6+@nP^TZ5HX#*z(!y+-KJ3+Ku0M90BTY{SC^{ z&y2#RZPjfX_PE<<>XwGp;g4&wcXsQ0T&XTi(^f+}4qSFH1%^GYi+!rJo~t#ChTeAX zmR0w(iODzQOL+b&{1OqTh*psAb;wT*drr^LKdN?c?HJ*gJl+%kEH&48&S{s28P=%p z7*?(xFW_RYxJxxILS!kdLIJYu@p#mnQ(?moGD1)AxQd66X6b*KN?o&e`u9#N4wu8% z^Gw#G!@|>c740RXziOR=tdbkqf(v~wS_N^CS^1hN-N4{Dww1lvSWcBTX*&9}Cz|s@ z*{O@jZ4RVHq19(HC9xSBZI0M)E;daza+Q*zayrX~N5H4xJ33BD4gn5Ka^Hj{995z4 zzm#Eo?ntC$q1a?)dD$qaC_M{NW!5R!vVZ(XQqS67xR3KP?rA1^+s3M$60WRTVHeTH z6BJO$_jVx0EGPXy}XK_&x597 zt(o6ArN8vZX0?~(lFGHRtHP{gO0y^$iU6Xt2e&v&ugLxfsl;GD)nf~3R^ACqSFLQ< zV7`cXgry((wDMJB55a6D4J;13$z6pupC{-F+wpToW%k1qKjUS^$Mo zN3@}T!ZdpiV7rkNvqP3KbpEn|9aB;@V;gMS1iSb@ zwyD7!5mfj)q+4jE1dq3H`sEKgrVqk|y8{_vmn8bMOi873!rmnu5S=1=-DFx+Oj)Hi zx?~ToiJqOrvSou?RVALltvMADodC7BOg7pOyc4m&6yd(qIuV5?dYUpYzpTe!BuWKi zpTg(JHBYzO&X1e{5o|ZVU-X5e?<}mh=|eMY{ldm>V3NsOGwyxO2h)l#)rH@BI*TN; z`yW26bMSp=k6C4Ja{xB}s`dNp zE+41IwEwo>7*PA|7v-F#jLN>h#a`Er9_86!fwPl{6yWR|fh?c%qc44uP~Ocm2V*(* zICMpS*&aJjxutxKC0Tm8+FBz;3;R^=ajXQUB*nTN*Lb;mruQHUE<&=I7pZ@F-O*VMkJbI#FOrBM8`QEL5Uy=q5e2 z_BwVH%c0^uIWO0*_qD;0jlPoA@sI7BPwOr-mrp7y`|EF)j;$GYdOtEPFRAKyUuUZS z(N4)*6R*ux8s@pMdC*TP?Hx`Zh{{Ser;clg&}CXriXZCr2A!wIoh;j=_eq3_%n7V} za?{KhXg2cXPpKHc90t6=`>s@QF-DNcTJRvLTS)E2FTb+og(wTV7?$kI?QZYgVBn)& zdpJf@tZ{j>B;<MVHiPl_U&KlqBT)$ic+M0uUQWK|N1 zCMl~@o|}!!7yyT%7p#G4?T^Azxt=D(KP{tyx^lD_(q&|zNFgO%!i%7T`>mUuU^FeR zHP&uClWgXm6iXgI8*DEA!O&X#X(zdrNctF{T#pyax16EZ5Lt5Z=RtAja!x+0Z31U8 zjfaky?W)wzd+66$L>o`n;DISQNs09g{GAv%8q2k>2n8q)O^M}=5r#^WR^=se#WSCt zQ`7E1w4qdChz4r@v6hgR?nsaE7pg2B6~+i5 zcTTbBQ2ghUbC-PV(@xvIR(a>Kh?{%YAsMV#4gt1nxBF?$FZ2~nFLKMS!aK=(`WllA zHS<_7ugqKw!#0aUtQwd#A$8|kPN3Af?Tkn)dHF?_?r#X68Wj;|$aw)Wj2Dkw{6)*^ zZfy!TWwh=%g~ECDCy1s8tTgWCi}F1BvTJ9p3H6IFq&zn#3FjZoecA_L_bxGWgeQup zAAs~1IPCnI@H>g|6Lp^Bk)mjrA3_qD4(D(65}l=2RzF-8@h>|Aq!2K-qxt(Q9w7c^ z;gtx`I+=gKOl;h=#fzSgw-V*YT~2_nnSz|!9hIxFb{~dKB!{H zSi??dnmr@%(1w^Be=*Jz5bZeofEKKN&@@uHUMFr-DHS!pb1I&;x9*${bmg6=2I4Zt zHb5LSvojY7ubCNGhp)=95jQ00sMAC{IZdAFsN!lAVQDeiec^HAu=8);2AKqNTT!&E zo+FAR`!A1#T6w@0A+o%&*yzkvxsrqbrfVTG+@z8l4+mRi@j<&)U9n6L>uZoezW>qS zA4YfO;_9dQSyEYpkWnsk0IY}Nr2m(ql@KuQjLgY-@g z4=$uai6^)A5+~^TvLdvhgfd+y?@+tRE^AJabamheJFnpA#O*5_B%s=t8<;?I;qJ}j z&g-9?hbwWEez-!GIhqpB>nFvyi{>Yv>dPU=)qXnr;3v-cd`l}BV?6!v{|cHDOx@IG z;TSiQQ(8=vlH^rCEaZ@Yw}?4#a_Qvx=}BJuxACxm(E7tP4hki^jU@8A zUS|4tTLd)gr@T|F$1eQXPY%fXb7u}(>&9gsd3It^B{W#6F2_g40cgo1^)@-xO&R5X z>qKon+Nvp!4v?-rGQu#M_J2v+3e+?N-WbgPQWf`ZL{Xd9KO^s{uIHTJ6~@d=mc7i z+##ya1p+ZHELmi%3C>g5V#yZt*jMv( zc{m*Y;7v*sjVZ-3mBuaT{$g+^sbs8Rp7BU%Ypi+c%JxtC4O}|9pkF-p-}F{Z7-+45 zDaJQx&CNR)8x~0Yf&M|-1rw%KW3ScjWmKH%J1fBxUp(;F%E+w!U470e_3%+U_q7~P zJm9VSWmZ->K`NfswW(|~fGdMQ!K2z%k-XS?Bh`zrjZDyBMu74Fb4q^A=j6+Vg@{Wc zPRd5Vy*-RS4p1OE-&8f^Fo}^yDj$rb+^>``iDy%t)^pHSV=En5B5~*|32#VkH6S%9 zxgIbsG+|{-$v7mhOww#v-ejaS>u(9KV9_*X!AY#N*LXIxor9hDv%aie@+??X6@Et=xz>6ev9U>6Pn$g4^!}w2Z%Kpqpp+M%mk~?GE-jL&0xLC zy(`*|&gm#mLeoRU8IU?Ujsv=;ab*URmsCl+r?%xcS1BVF*rP}XRR%MO_C!a9J^fOe>U;Y&3aj3 zX`3?i12*^W_|D@VEYR;h&b^s#Kd;JMNbZ#*x8*ZXm(jgw3!jyeHo14Zq!@_Q`V;Dv zKik~!-&%xx`F|l^z2A92aCt4x*I|_oMH9oeqsQgQDgI0j2p!W@BOtCTK8Jp#txi}7 z9kz);EX-2~XmxF5kyAa@n_$YYP^Hd4UPQ>O0-U^-pw1*n{*kdX`Jhz6{!W=V8a$0S z9mYboj#o)!d$gs6vf8I$OVOdZu7L5%)Vo0NhN`SwrQFhP3y4iXe2uV@(G{N{yjNG( zKvcN{k@pXkxyB~9ucR(uPSZ7{~sC=lQtz&V(^A^HppuN!@B4 zS>B=kb14>M-sR>{`teApuHlca6YXs6&sRvRV;9G!XI08CHS~M$=%T~g5Xt~$exVk` zWP^*0h{W%`>K{BktGr@+?ZP}2t0&smjKEVw@3=!rSjw5$gzlx`{dEajg$A58m|Okx zG8@BTPODSk@iqLbS*6>FdVqk}KKHuAHb0UJNnPm!(XO{zg--&@#!niF4T!dGVdNif z3_&r^3+rfQuV^8}2U?bkI5Ng*;&G>(O4&M<86GNxZK{IgKNbRfpg>+32I>(h`T&uv zUN{PRP&onFj$tn1+Yh|0AF330en{b~R+#i9^QIbl9fBv>pN|k&IL2W~j7xbkPyTL^ z*TFONZUS2f33w3)fdzr?)Yg;(s|||=aWZV(nkDaACGSxNCF>XLJSZ=W@?$*` z#sUftY&KqTV+l@2AP5$P-k^N`Bme-xcWPS|5O~arUq~%(z8z87JFB|llS&h>a>Som zC34(_uDViE!H2jI3<@d+F)LYhY)hoW6)i=9u~lM*WH?hI(yA$X#ip}yYld3RAv#1+sBt<)V_9c4(SN9Fn#$}_F}A-}P>N+8io}I3mh!}> z*~*N}ZF4Zergb;`R_g49>ZtTCaEsCHiFb(V{9c@X0`YV2O^@c6~LXg2AE zhA=a~!ALnP6aO9XOC^X15(1T)3!1lNXBEVj5s*G|Wm4YBPV`EOhU&)tTI9-KoLI-U zFI@adu6{w$dvT(zu*#aW*4F=i=!7`P!?hZy(9iL;Z^De3?AW`-gYTPALhrZ*K2|3_ zfz;6xQN9?|;#_U=4t^uS2VkQ8$|?Ub5CgKOj#Ni5j|(zX>x#K(h7LgDP-QHwok~-I zOu9rn%y97qrtKdG=ep)4MKF=TY9^n6CugQ3#G2yx;{))hvlxZGE~rzZ$qEHy-8?pU#G;bwufgSN6?*BeA!7N3RZEh{xS>>-G1!C(e1^ zzd#;39~PE_wFX3Tv;zo>5cc=md{Q}(Rb?37{;YPtAUGZo7j*yHfGH|TOVR#4ACaM2 z;1R0hO(Gl}+0gm9Bo}e@lW)J2OU4nukOTVKshHy7u)tLH^9@QI-jAnDBp(|J8&{fKu=_97$v&F67Z zq+QsJ=gUx3_h_%=+q47msQ*Ub=gMzoSa@S2>`Y9Cj*@Op4plTc!jDhu51nSGI z^sfZ(4=yzlR}kP2rcHRzAY9@T7f`z>fdCU0zibx^gVg&fMkcl)-0bRyWe12bT0}<@ z^h(RgGqS|1y#M;mER;8!CVmX!j=rfNa6>#_^j{^C+SxGhbSJ_a0O|ae!ZxiQCN2qA zKs_Z#Zy|9BOw6x{0*APNm$6tYVG2F$K~JNZ!6>}gJ_NLRYhcIsxY1z~)mt#Yl0pvC zO8#Nod;iow5{B*rUn(0WnN_~~M4|guwfkT(xv;z)olmj=f=aH#Y|#f_*d1H!o( z!EXNxKxth9w1oRr0+1laQceWfgi8z`YS#uzg#s9-QlTT7y2O^^M1PZx z3YS7iegfp6Cs0-ixlG93(JW4wuE7)mfihw}G~Uue{Xb+#F!BkDWs#*cHX^%(We}3% zT%^;m&Juw{hLp^6eyM}J({luCL_$7iRFA6^8B!v|B9P{$42F>|M`4Z_yA{kK()WcM zu#xAZWG%QtiANfX?@+QQOtbU;Avr*_>Yu0C2>=u}zhH9VLp6M>fS&yp*-7}yo8ZWB z{h>ce@HgV?^HgwRThCYnHt{Py0MS=Ja{nIj5%z;0S@?nGQ`z`*EVs&WWNwbzlk`(t zxDSc)$dD+4G6N(p?K>iEKXIk>GlGKTH{08WvrehnHhh%tgpp&8db4*FLN zETA@<$V=I7S^_KxvYv$Em4S{gO>(J#(Wf;Y%(NeECoG3n+o;d~Bjme-4dldKukd`S zRVAnKxOGjWc;L#OL{*BDEA8T=zL8^`J=2N)d&E#?OMUqk&9j_`GX*A9?V-G zdA5QQ#(_Eb^+wDkDiZ6RXL`fck|rVy%)BVv;dvY#`msZ}{x5fmd! zInmWSxvRgXbJ{unxAi*7=Lt&7_e0B#8M5a=Ad0yX#0rvMacnKnXgh>4iiRq<&wit93n!&p zeq~-o37qf)L{KJo3!{l9l9AQb;&>)^-QO4RhG>j`rBlJ09~cbfNMR_~pJD1$UzcGp zOEGTzz01j$=-kLC+O$r8B|VzBotz}sj(rUGOa7PDYwX~9Tum^sW^xjjoncxSz;kqz z$Pz$Ze|sBCTjk7oM&`b5g2mFtuTx>xl{dj*U$L%y-xeQL~|i>KzdUHeep-Yd@}p&L*ig< zgg__3l9T=nbM3bw0Sq&Z2*FA)P~sx0h634BXz0AxV69cED7QGTbK3?P?MENkiy-mV zZ1xV5ry3zIpy>xmThBL0Q!g+Wz@#?6fYvzmEczs(rcujrfCN=^!iWQ6$EM zaCnRThqt~gI-&6v@KZ78unqgv9j6-%TOxpbV`tK{KaoBbhc}$h+rK)5h|bT6wY*t6st-4$e99+Egb#3ip+ERbve08G@Ref&hP)qB&?>B94?eq5i3k;dOuU#!y-@+&5>~!FZik=z4&4|YHy=~!F254 zQAOTZr26}Nc7jzgJ;V~+9ry#?7Z0o*;|Q)k+@a^87lC}}1C)S))f5tk+lMNqw>vh( z`A9E~5m#b9!ZDBltf7QIuMh+VheCoD7nCFhuzThlhA?|8NCt3w?oWW|NDin&&eDU6 zwH`aY=))lpWG?{fda=-auXYp1WIPu&3 zwK|t(Qiqvc@<;1_W#ALDJ}bR;3&v4$9rP)eAg`-~iCte`O^MY+SaP!w%~+{{1tMo` zbp?T%ENs|mHP)Lsxno=nWL&qizR+!Ib=9i%4=B@(Umf$|7!WVxkD%hfRjvxV`Co<; zG*g4QG_>;RE{3V_DOblu$GYm&!+}%>G*yO{-|V9GYG|bH2JIU2iO}ZvY>}Fl%1!OE zZFsirH^$G>BDIy`8;R?lZl|uu@qWj2T5}((RG``6*05AWsVVa2Iu>!F5U>~7_Tlv{ zt=Dpgm~0QVa5mxta+fUt)I0gToeEm9eJX{yYZ~3sLR&nCuyuFWuiDIVJ+-lwViO(E zH+@Rg$&GLueMR$*K8kOl>+aF84Hss5p+dZ8hbW$=bWNIk0paB!qEK$xIm5{*^ad&( zgtA&gb&6FwaaR2G&+L+Pp>t^LrG*-B&Hv;-s(h0QTuYWdnUObu8LRSZoAVd7SJ;%$ zh%V?58mD~3G2X<$H7I)@x?lmbeeSY7X~QiE`dfQ5&K^FB#9e!6!@d9vrSt!);@ZQZ zO#84N5yH$kjm9X4iY#f+U`FKhg=x*FiDoUeu1O5LcC2w&$~5hKB9ZnH+8BpbTGh5T zi_nfmyQY$vQh%ildbR7T;7TKPxSs#vhKR|uup`qi1PufMa(tNCjRbllakshQgn1)a8OO-j8W&aBc_#q1hKDF5-X$h`!CeT z+c#Ial~fDsGAenv7~f@!icm(~)a3OKi((=^zcOb^qH$#DVciGXslUwTd$gt{7)&#a`&Lp ze%AnL0#U?lAl8vUkv$n>bxH*`qOujO0HZkPWZnE0;}0DSEu1O!hg-d9#{&#B1Dm)L zvN%r^hdEt1vR<4zwshg*0_BNrDWjo65be1&_82SW8#iKWs7>TCjUT;-K~*NxpG2P% zovXUo@S|fMGudVSRQrP}J3-Wxq;4xIxJJC|Y#TQBr>pwfy*%=`EUNE*dr-Y?9y9xK zmh1zS@z{^|UL}v**LNYY!?1qIRPTvr!gNXzE{%=-`oKclPrfMKwn` zUwPeIvLcxkIV>(SZ-SeBo-yw~{p!<&_}eELG?wxp zee-V59%@BtB+Z&Xs=O(@P$}v_qy1m=+`!~r^aT> zY+l?+6(L-=P%m4ScfAYR8;f9dyVw)@(;v{|nO#lAPI1xDHXMYt~-BGiP&9y2OQsYdh7-Q1(vL<$u6W0nxVn-qh=nwuRk}{d!uACozccRGx6~xZQ;=#JCE?OuA@;4 zadp$sm}jfgW4?La(pb!3f0B=HUI{5A4b$2rsB|ZGb?3@CTA{|zBf07pYpQ$NM({C6Srv6%_{rVkCndT=1nS}qyEf}Wjtg$e{ng7Wgz$7itYy0sWW_$qld);iUm85GBH)fk3b=2|5mvflm?~inoVo zDH_%e;y`DzoNj|NgZ`U%a9(N*=~8!qqy0Etkxo#`r!!{|(NyT0;5= z8nVZ6AiM+SjMG8J@6c4_f-KXd_}{My?Se1GWP|@wROFpD^5_lu?I%CBzpwi(`x~xh B8dv}T delta 17845 zcmV)CK*GO}(F4QI1F(Jx4W$DjNjn4p0N4ir06~)x5+0MO2`GQvQyWzj|J`gh3(E#l zNGO!HfVMRRN~%`0q^)g%XlN*vP!O#;m*h5VyX@j-1N|HN;8S1vqEAj=eCdn`)tUB9 zXZjcT^`bL6qvL}gvXj%9vrOD+x!Gc_0{$Zg+6lTXG$bmoEBV z*%y^c-mV0~Rjzv%e6eVI)yl>h;TMG)Ft8lqpR`>&IL&`>KDi5l$AavcVh9g;CF0tY zw_S0eIzKD?Nj~e4raA8wxiiImTRzv6;b6|LFmw)!E4=CiJ4I%&axSey4zE-MIh@*! z*P;K2Mx{xVYPLeagKA}Hj=N=1VrWU`ukuBnc14iBG?B}Uj>?=2UMk4|42=()8KOnc zrJzAxxaEIfjw(CKV6F$35u=1qyf(%cY8fXaS9iS?yetY{mQ#Xyat*7sSoM9fJlZqq zyasQ3>D>6p^`ck^Y|kYYZB*G})uAbQ#7)Jeb~glGz@2rPu}zBWDzo5K$tP<|meKV% z{Swf^eq6NBioF)v&~9NLIxHMTKe6gJ@QQ^A6fA!n#u1C&n`aG7TDXKM1Jly-DwTB` z+6?=Y)}hj;C#r5>&x;MCM4U13nuXVK*}@yRY~W3X%>U>*CB2C^K6_OZsXD!nG2RSX zQg*0)$G3%Es$otA@p_1N!hIPT(iSE=8OPZG+t)oFyD~{nevj0gZen$p>U<7}uRE`t5Mk1f4M0K*5 zbn@3IG5I2mk;8K>*RZ zPV6iL006)S001s%0eYj)9hu1 z9o)iQT9(v*sAuZ|ot){RrZ0Qw4{E0A+!Yx_M~#Pj&OPUM&i$RU=Uxu}e*6Sr2ror= z&?lmvFCO$)BY+^+21E>ENWe`I0{02H<-lz&?})gIVFyMWxX0B|0b?S6?qghp3lDgz z2?0|ALJU=7s-~Lb3>9AA5`#UYCl!Xeh^i@bxs5f&SdiD!WN}CIgq&WI4VCW;M!UJL zX2};d^sVj5oVl)OrkapV-C&SrG)*x=X*ru!2s04TjZ`pY$jP)4+%)7&MlpiZ`lgoF zo_p>^4qGz^(Y*uB10dY2kcIbt=$FIdYNqk;~47wf@)6|nJp z1cocL3zDR9N2Pxkw)dpi&_rvMW&Dh0@T*_}(1JFSc0S~Ph2Sr=vy)u*=TY$i_IHSo zR+&dtWFNxHE*!miRJ%o5@~GK^G~4$LzEYR-(B-b(L*3jyTq}M3d0g6sdx!X3-m&O% zK5g`P179KHJKXpIAAX`A2MFUA;`nXx^b?mboVbQgigIHTU8FI>`q53AjWaD&aowtj z{XyIX>c)*nLO~-WZG~>I)4S1d2q@&?nwL)CVSWqWi&m1&#K1!gt`g%O4s$u^->Dwq ziKc&0O9KQ7000OG0000%03-m(e&Y`S09YWC4iYDSty&3q8^?8ij|8zxaCt!zCFq1@ z9TX4Hl68`nY>}cQNW4Ullqp$~SHO~l1!CdFLKK}ij_t^a?I?C^CvlvnZkwiVn>dl2 z2$V(JN{`5`-8ShF_ek6HNRPBlPuIPYu>TAeAV5O2)35r3*_k(Q-h1+h5pb(Zu%oJ__pBsW0n5ILw`!&QR&YV`g0Fe z(qDM!FX_7;`U3rxX#QHT{f%h;)Eursw=*#qvV)~y%^Uo^% zi-%sMe^uz;#Pe;@{JUu05zT*i=u7mU9{MkT`ft(vPdQZoK&2mg=tnf8FsaNQ+QcPg zB>vP8Rd6Z0JoH5_Q`zldg;hx4azQCq*rRZThqlqTRMzn1O3_rQTrHk8LQ<{5UYN~` zM6*~lOGHyAnx&#yCK{i@%N1Us@=6cw=UQxpSE;<(LnnES%6^q^QhBYQ-VCSmIu8wh z@_LmwcFDfAhIn>`%h7L{)iGBzu`Md4dj-m3C8mA9+BL*<>q z#$7^ttIBOE-=^|zmG`K8yUKT{yjLu2SGYsreN0*~9yhFxn4U};Nv1XXj1fH*v-g=3 z@tCPc`YdzQGLp%zXwo*o$m9j-+~nSWls#s|?PyrHO%SUGdk**X9_=|b)Y%^j_V$3S z>mL2A-V)Q}qb(uZipEFVm?}HWc+%G6_K+S+87g-&RkRQ8-{0APDil115eG|&>WQhU zufO*|e`hFks^cJJmx_qNx{ltSp3aT|XgD5-VxGGXb7gkiOG$w^qMVBDjR8%!Sbh72niHRDV* ziFy8LE+*$j?t^6aZP9qt-ow;hzkmhvy*Hn-X^6?yVMbtNbyqZQ^rXg58`gk+I%Wv} zn_)dRq+3xjc8D%}EQ%nnTF7L7m}o9&*^jf`_qvUhVKY7w9Zgxr-0YHWFRd3$l_6UX zpXt^U&TiC*qZWx#pOG6k?3Tg)pra*fw(O6_45>lUBN1U5Qmc>^DHt)5b~Ntjsw!NI z1n4{$HWFeIi)*qvgK^ui;(81VQc1(wJ8C#tjR>Dkjf{xYC^_B^#qrdCc)uZxtgua6 zk98UGQF|;;k`c+0_z)tQ&9DwLB~&12@D1!*mTz_!3Mp=cg;B7Oq4cKN>5v&dW7q@H zal=g6Ipe`siZN4NZiBrkJCU*x216gmbV(FymgHuG@%%|8sgD?gR&0*{y4n=pukZnd z4=Nl~_>jVfbIehu)pG)WvuUpLR}~OKlW|)=S738Wh^a&L+Vx~KJU25o6%G7+Cy5mB zgmYsgkBC|@K4Jm_PwPoz`_|5QSk}^p`XV`649#jr4Lh^Q>Ne~#6Cqxn$7dNMF=%Va z%z9Ef6QmfoXAlQ3)PF8#3Y% zadcE<1`fd1&Q9fMZZnyI;&L;YPuy#TQ8b>AnXr*SGY&xUb>2678A+Y z8K%HOdgq_4LRFu_M>Ou|kj4W%sPPaV)#zDzN~25klE!!PFz_>5wCxglj7WZI13U5| zEq_YLKPH;v8sEhyG`dV_jozR);a6dBvkauhC;1dk%mr+J*Z6MMH9jqxFk@)&h{mHl zrf^i_d-#mTF=6-T8Rk?(1+rPGgl$9=j%#dkf@x6>czSc`jk7$f!9SrV{do%m!t8{? z_iAi$Qe&GDR#Nz^#uJ>-_?(E$ns)(3)X3cYY)?gFvU+N>nnCoBSmwB2<4L|xH19+4 z`$u#*Gt%mRw=*&|em}h_Y`Pzno?k^8e*hEwfM`A_yz-#vJtUfkGb=s>-!6cHfR$Mz z`*A8jVcz7T{n8M>ZTb_sl{EZ9Ctau4naX7TX?&g^VLE?wZ+}m)=YW4ODRy*lV4%-0 zG1XrPs($mVVfpnqoSihnIFkLdxG9um&n-U|`47l{bnr(|8dmglO7H~yeK7-wDwZXq zaHT($Qy2=MMuj@lir(iyxI1HnMlaJwpX86je}e=2n|Esb6hB?SmtDH3 z2qH6o`33b{;M{mDa5@@~1or8+Zcio*97pi1Jkx6v5MXCaYsb~Ynq)eWpKnF{n)FXZ z?Xd;o7ESu&rtMFr5(yJ(B7V>&0gnDdL*4MZH&eO+r*t!TR98ssbMRaw`7;`SLI8mT z=)hSAt~F=mz;JbDI6g~J%w!;QI(X14AnOu;uve^4wyaP3>(?jSLp+LQ7uU(iib%IyB(d&g@+hg;78M>h7yAeq$ALRoHGkKXA+E z$Sk-hd$Fs2nL4w9p@O*Y$c;U)W#d~)&8Js;i^Dp^* z0*7*zEGj~VehF4sRqSGny*K_CxeF=T^8;^lb}HF125G{kMRV?+hYktZWfNA^Mp7y8 zK~Q?ycf%rr+wgLaHQ|_<6z^eTG7izr@99SG9Q{$PCjJabSz`6L_QJJe7{LzTc$P&pwTy<&3RRUlSHmK;?}=QAhQaDW3#VWcNAH3 zeBPRTDf3?3mfdI$&WOg(nr9Gyzg`&u^o!f2rKJ57D_>p z6|?Vg?h(@(*X=o071{g^le>*>qSbVam`o}sAK8>b|11%e&;%`~b2OP7--q%0^2YDS z`2M`{2QYr1VC)sIW9WOu8<~7Q>^$*Og{KF+kI;wFegvaIDkB%3*%PWtWKSq7l`1YcDxQQ2@nv{J!xWV?G+w6C zhUUxUYVf%(Q(40_xrZB@rbxL=Dj3RV^{*yHd>4n-TOoHVRnazDOxxkS9kiZyN}IN3 zB^5N=* zRSTO+rA<{*P8-$GZdyUNOB=MzddG$*@q>mM;pUIiQ_z)hbE#Ze-IS)9G}Rt$5PSB{ zZZ;#h9nS7Rf1ecW&n(Gpu9}{vXQZ-f`UHIvD?cTbF`YvH*{rgE(zE22pLAQfhg-`U zuh612EpByB(~{w7svCylrBk%5$LCIyuhrGi=yOfca`=8ltKxHcSNfDRt@62QH^R_0 z&eQL6rRk>Dvf6rjMQv5ZXzg}S`HqV69hJT^pPHtdhqsrPJWs|IT9>BvpQa@*(FX6v zG}TYjreQCnH(slMt5{NgUf)qsS1F&Bb(M>$X}tWI&yt2I&-rJbqveuj?5J$`Dyfa2 z)m6Mq0XH@K)Y2v8X=-_4=4niodT&Y7W?$KLQhjA<+R}WTdYjX9>kD+SRS^oOY1{A= zZTId-(@wF^UEWso($wZtrs%e7t<}YaC_;#@`r0LUzKY&|qPJz*y~RHG`E6bypP5AX zN!p0^AUu8uDR>xM-ALFzBxXM~Q3z=}fHWCIG>0&I6x2Iu7&U)49j7qeMI&?qb$=4I zdMmhAJrO%@0f%YW! z^gLByEGSk+R0v4*d4w*N$Ju6z#j%HBI}6y$2en=-@S3=6+yZX94m&1j@s- z7T6|#0$c~dYq9IkA!P)AGkp~S$zYJ1SXZ#RM0|E~Q0PSm?DsT4N3f^)b#h(u9%_V5 zX*&EIX|gD~P!vtx?ra71pl%v)F!W~X2hcE!h8cu@6uKURdmo1-7icN4)ej4H1N~-C zjXgOK+mi#aJv4;`DZ%QUbVVZclkx;9`2kgbAhL^d{@etnm+5N8pB#fyH)bxtZGCAv z(%t0kPgBS{Q2HtjrfI0B$$M0c?{r~2T=zeXo7V&&aprCzww=i*}Atu7g^(*ivauMz~kkB%Vt{Wydlz%%2c26%>0PAbZO zVHx%tK(uzDl#ZZK`cW8TD2)eD77wB@gum{B2bO_jnqGl~01EF_^jx4Uqu1yfA~*&g zXJ`-N?D-n~5_QNF_5+Un-4&l$1b zVlHFqtluoN85b^C{A==lp#hS9J(npJ#6P4aY41r) zzCmv~c77X5L}H%sj>5t&@0heUDy;S1gSOS>JtH1v-k5l}z2h~i3^4NF6&iMb;ZYVE zMw*0%-9GdbpF1?HHim|4+)Zed=Fk<2Uz~GKc^P(Ig@x0&XuX0<-K(gA*KkN&lY2Xu zG054Q8wbK~$jE32#Ba*Id2vkqmfV{U$Nx9vJ;jeI`X+j1kh7hB8$CBTe@ANmT^tI8 z%U>zrTKuECin-M|B*gy(SPd`(_xvxjUL?s137KOyH>U{z01cBcFFt=Fp%d+BK4U;9 zQG_W5i)JASNpK)Q0wQpL<+Ml#cei41kCHe&P9?>p+KJN>I~`I^vK1h`IKB7k^xi`f z$H_mtr_+@M>C5+_xt%v}{#WO{86J83;VS@Ei3JLtp<*+hsY1oGzo z0?$?OJO$79;{|@aP!fO6t9TJ!?8i&|c&UPWRMbkwT3nEeFH`Yyyh6b%Rm^nBuTt@9 z+$&-4lf!G|@LCo3<8=yN@5dYbc%uq|Hz|0tiiLQKiUoM9g14zyECKGv0}3AWv2WJ zUAXGUhvkNk`0-H%ACsRSmy4fJ@kxBD3ZKSj6g(n1KPw?g{v19phcBr3BEF>J%lL|d zud3LNuL;cR*xS+;X+N^Br+x2{&hDMhb-$6_fKU(Pt0FQUXgNrZvzsVCnsFqv?#L z4-FYsQ-?D>;LdjHu_TT1CHN~aGkmDjWJkJg4G^!+V_APd%_48tErDv6BW5;ji^UDD zRu5Sw7wwplk`w{OGEKWJM&61c-AWn!SeUP8G#+beH4_Ov*)NUV?eGw&GHNDI6G(1Y zTfCv?T*@{QyK|!Q09wbk5koPD>=@(cA<~i4pSO?f(^5sSbdhUc+K$DW#_7^d7i%At z?KBg#vm$?P4h%?T=XymU;w*AsO_tJr)`+HUll+Uk_zx6vNw>G3jT){w3ck+Z=>7f0 zZVkM*!k^Z_E@_pZK6uH#|vzoL{-j1VFlUHP&5~q?j=UvJJNQG ztQdiCF$8_EaN_Pu8+afN6n8?m5UeR_p_6Log$5V(n9^W)-_vS~Ws`RJhQNPb1$C?| zd9D_ePe*`aI9AZ~Ltbg)DZ;JUo@-tu*O7CJ=T)ZI1&tn%#cisS85EaSvpS~c#CN9B z#Bx$vw|E@gm{;cJOuDi3F1#fxWZ9+5JCqVRCz5o`EDW890NUfNCuBn)3!&vFQE{E$L`Cf7FMSSX%ppLH+Z}#=p zSow$)$z3IL7frW#M>Z4|^9T!=Z8}B0h*MrWXXiVschEA=$a|yX9T~o!=%C?T+l^Cc zJx&MB$me(a*@lLLWZ=>PhKs!}#!ICa0! zq%jNgnF$>zrBZ3z%)Y*yOqHbKzEe_P=@<5$u^!~9G2OAzi#}oP&UL9JljG!zf{JIK z++G*8j)K=$#57N)hj_gSA8golO7xZP|KM?elUq)qLS)i(?&lk{oGMJh{^*FgklBY@Xfl<_Q zXP~(}ST6V01$~VfOmD6j!Hi}lsE}GQikW1YmBH)`f_+)KI!t#~B7=V;{F*`umxy#2Wt8(EbQ~ks9wZS(KV5#5Tn3Ia90r{}fI%pfbqBAG zhZ)E7)ZzqA672%@izC5sBpo>dCcpXi$VNFztSQnmI&u`@zQ#bqFd9d&ls?RomgbSh z9a2rjfNiKl2bR!$Y1B*?3Ko@s^L5lQN|i6ZtiZL|w5oq%{Fb@@E*2%%j=bcma{K~9 z*g1%nEZ;0g;S84ZZ$+Rfurh;Nhq0;{t~(EIRt}D@(Jb7fbe+_@H=t&)I)gPCtj*xI z9S>k?WEAWBmJZ|gs}#{3*pR`-`!HJ)1Dkx8vAM6Tv1bHZhH=MLI;iC#Y!$c|$*R>h zjP{ETat(izXB{@tTOAC4nWNhh1_%7AVaf!kVI5D=Jf5I1!?}stbx_Yv23hLf$iUTb z-)WrTtd2X+;vBW_q*Z6}B!10fs=2FA=3gy*dljsE43!G*3Uw(Is>(-a*5E!T4}b-Y zfvOC)-HYjNfcpi`=kG%(X3XcP?;p&=pz+F^6LKqRom~pA}O* zitR+Np{QZ(D2~p_Jh-k|dL!LPmexLM?tEqI^qRDq9Mg z5XBftj3z}dFir4oScbB&{m5>s{v&U=&_trq#7i&yQN}Z~OIu0}G)>RU*`4<}@7bB% zKYxGx0#L#u199YKSWZwV$nZd>D>{mDTs4qDNyi$4QT6z~D_%Bgf?>3L#NTtvX;?2D zS3IT*2i$Snp4fjDzR#<)A``4|dA(}wv^=L?rB!;kiotwU_gma`w+@AUtkSyhwp{M} z!e`jbUR3AG4XvnBVcyIZht6Vi~?pCC!$XF2 z*V~)DBVm8H7$*OZQJYl3482hadhsI2NCz~_NINtpC?|KI6H3`SG@1d%PsDdw{u}hq zN;OU~F7L1jT&KAitilb&Fl3X12zfSuFm;X)xQWOHL&7d)Q5wgn{78QJ6k5J;is+XP zCPO8_rlGMJB-kuQ*_=Yo1TswG4xnZd&eTjc8=-$6J^8TAa~kEnRQ@Zp-_W&B(4r@F zA==}0vBzsF1mB~743XqBmL9=0RSkGn$cvHf*hyc{<2{@hW+jKjbC|y%CNupHY_NC% zivz^btBLP-cDyV8j>u)=loBs>HoI5ME)xg)oK-Q0wAy|8WD$fm>K{-`0|W{H00;;G z000j`0OWQ8aHA9e04^;603eeQIvtaXMG=2tcr1y8Fl-J;AS+=<0%DU8Bp3oEEDhA^ zOY)M8%o5+cF$rC?trfMcty*f)R;^v=f~}||Xe!#;T3eTDZELN&-50xk+J1heP5AQ>h5O#S_uO;O@;~REd*_G$x$hVeE#bchX)otXQy|S5(oB)2a2%Sc(iDHm z=d>V|a!BLp9^#)o7^EQ2kg=K4%nI^sK2w@-kmvB+ARXYdq?xC2age6)e4$^UaY=wn zgLD^{X0A+{ySY+&7RpldwpC6=E zSPq?y(rl8ZN%(A*sapd4PU+dIakIwT0=zxIJEUW0kZSo|(zFEWdETY*ZjIk9uNMUA ze11=mHu8lUUlgRx!hItf0dAF#HfdIB+#aOuY--#QN9Ry zbx|XkG?PrBb@l6Owl{9Oa9w{x^R}%GwcEEfY;L-6OU8|9RXvu`-ECS`jcO1x1MP{P zcr;Bw##*Dod9K@pEx9z9G~MiNi>8v1OU-}vk*HbI)@CM? zn~b=jWUF%HP=CS+VCP>GiAU_UOz$aq3%%Z2laq^Gx`WAEmuNScCN)OlW>YHGYFgV2 z42lO5ZANs5VMXLS-RZTvBJkWy*OeV#L;7HwWg51*E|RpFR=H}h(|N+79g)tIW!RBK ze08bg^hlygY$C2`%N>7bDm`UZ(5M~DTanh3d~dg+OcNdUanr8azO?})g}EfnUB;5- zE1FX=ru?X=zAk4_6@__o1fE+ml1r&u^f1Kb24Jf-)zKla%-dbd>UZ1 zrj3!RR!Jg`ZnllKJ)4Yfg)@z>(fFepeOcp=F-^VHv?3jSxfa}-NB~*qkJ5Uq(yn+( z<8)qbZh{C!xnO@-XC~XMNVnr-Z+paowv!$H7>`ypMwA(X4(knx7z{UcWWe-wXM!d? zYT}xaVy|7T@yCbNOoy)$D=E%hUNTm(lPZqL)?$v+-~^-1P8m@Jm2t^L%4#!JK#Vtg zyUjM+Y*!$);1<)0MUqL00L0*EZcsE&usAK-?|{l|-)b7|PBKl}?TM6~#j9F+eZq25_L&oSl}DOMv^-tacpDI)l*Ws3u+~jO@;t(T)P=HCEZ#s_5q=m zOsVY!QsOJn)&+Ge6Tm)Ww_Bd@0PY(78ZJ)7_eP-cnXYk`>j9q`x2?Xc6O@55wF+6R zUPdIX!2{VGA;FSivN@+;GNZ7H2(pTDnAOKqF*ARg+C54vZ@Ve`i?%nDDvQRh?m&`1 zq46gH)wV=;UrwfCT3F(m!Q5qYpa!#f6qr0wF=5b9rk%HF(ITc!*R3wIFaCcftGwPt z(kzx{$*>g5L<;u}HzS4XD%ml zmdStbJcY@pn`!fUmkzJ8N>*8Y+DOO^r}1f4ix-`?x|khoRvF%jiA)8)P{?$8j2_qN zcl3Lm9-s$xdYN9)>3j6BPFK)Jbovl|Sf_p((CHe!4hx@F)hd&&*Xb&{TBj>%pT;-n z{3+hA^QZYnjXxtF2XwxPZ`S#J8h>5qLwtwM-{5abbEnRS z`9_`Zq8FJiI#0syE_V_3M&trw$P=ezkHosV$8&I5c0(*-9KBE5DJOC-Xv zw}1bq~AD0_Xerm`%ryiG9_$S z5G|btfiAUNdV09SO2l9v+e#(H6HYOdQs=^ z@xwZQU)~;p1L*~ciC}9ao{nQ-@B>rpUzKBxv=cUusOP5Trs3QnvHxGh9e>s7AM{V1|HfYe z3QwH;nHHR49fYzuGc3W3l5xrDAI392SFXx>lWE3V9Ds9il3PyZaN5>oC3>9W-^7vC z3~KZ-@iD?tIkhg+6t{m;RGk2%>@I0&kf)o$+-^ls0(YABNbM(=l#ad@nKp_j=b~Xs ziR;xu_+)lxy6|+af!@}gO2H_x)p;nZ-tYxW5Omq=l`GzMp*GTLr>vZN1?e}^C$t*Z zvzEdIc2|HA2RFN_4#EkzMqKnbbw!?!?%B@M0^^5Z;K?x-%lg?Z>}wMV8zEqHZ$cr~Y#Wv>9+)KMUZatUqbRU8 z8t9qrek(H^C0Tuzq|cP2$WL7tzj+Dj5y^2SF1D154CnsB$xbz`$wV||n-cG%rsT$p z+3RHdadK(3-noj(2L#8c5lODg)V8pv(GEnNb@F>dEHQr>!qge@L>#qg)RAUtiOYqF ziiV_ETExwD)bQ<))?-9$)E(FiRBYyC@}issHS!j9n)~I1tarxnQ2LfjdIJ)*jp{0E z&1oTd%!Qbw$W58s!6ms>F z=p0!~_Mv~8jyaicOS*t(ntw`5uFi0Bc4*mH8kSkk$>!f0;FM zX_t14I55!ZVsg0O$D2iuEDb7(J>5|NKW^Z~kzm@dax z9(|As$U7^}LF%#`6r&UPB*6`!Rf74h~*C=ami6xUxYCwiJxdr$+`z zKSC4A%8!s%R&j*2si(OEc*fy!q)?%=TjDZJ2}O zxT6o>jlKXz_7_Y$N})}IG`*#KfMzs#R(SI#)3*ZEzCv%_tu(VTZ5J| zw2$5kK)xTa>xGFgS0?X(NecjzFVKG%VVn?neu=&eQ+DJ1APlY1E?Q1s!Kk=yf7Uho z>8mg_!U{cKqpvI3ucSkC2V`!d^XMDk;>GG~>6>&X_z75-kv0UjevS5ORHV^e8r{tr z-9z*y&0eq3k-&c_AKw~<`8dtjsP0XgFv6AnG?0eo5P14T{xW#b*Hn2gEnt5-KvN1z zy!TUSi>IRbD3u+h@;fn7fy{F&hAKx7dG4i!c?5_GnvYV|_d&F16p;)pzEjB{zL-zr z(0&AZUkQ!(A>ghC5U-)t7(EXb-3)tNgb=z`>8m8n+N?vtl-1i&*ftMbE~0zsKG^I$ zSbh+rUiucsb!Ax@yB}j>yGeiKIZk1Xj!i#K^I*LZW_bWQIA-}FmJ~^}>p=K$bX9F{}z{s^KWc~OK(zl_X57aB^J9v}yQ5h#BE$+C)WOglV)nd0WWtaF{7`_Ur`my>4*NleQG#xae4fIo(b zW(&|g*#YHZNvDtE|6}yHvu(hDekJ-t*f!2RK;FZHRMb*l@Qwkh*~CqQRNLaepXypX z1?%ATf_nHIu3z6gK<7Dmd;{`0a!|toT0ck|TL$U;7Wr-*piO@R)KrbUz8SXO0vr1K z>76arfrqImq!ny+VkH!4?x*IR$d6*;ZA}Mhro(mzUa?agrFZpHi*)P~4~4N;XoIvH z9N%4VK|j4mV2DRQUD!_-9fmfA2(YVYyL#S$B;vqu7fnTbAFMqH``wS7^B5=|1O&fL z)qq(oV6_u4x(I(**#mD}MnAy(C&B4a1n6V%$&=vrIDq^F_KhE5Uw8_@{V`_#M0vCu zaNUXB=n0HT@D+ppDXi8-vp{tj)?7+k>1j}VvEKRgQ~DWva}8*pp`W8~KRo*kJ*&X} zP!~2fxQr@dM*q0dI|)Fux=pZWBk==RI7i{^BQf`kWlD2%|@R9!JA7& zLbM$uJ12y}_62$|T|{)@OJZtzfpL^t@1nMTYHutrF#D+^?~CN~9`YQ@#&&@c_Zf)( zbC~y8!2LO8jHwQXv>G~1q?c68ipT*%dY&c{8wd_!Y#~tMJ7yk!F8| zt?m_CLVw6cU@@p(#h4cY&Qsfz2Xp3w^4Cg%m03Tmq~9n%hyoMH^KY7{(QkRyn_!YB zzZa!Tgr~5$MAG$x)Fs71#6j}Kvcv3=9VUX8CH< zbP3|fY8f#$K*<5JQ7whM(v=GN2k26Xsh)#0!HKS(koLgAp-;)8z0w&_Z=nG4v6n8u z&Tm0Fi){4_!Y5Kp?!zv$FKfUifQ{%c82uYfrvE{%ejUd72aNYmI*0z3-a-EYr+bB->oH3#t(AY3 zV{Z=(SJr;D#0(`u*dc*~9T7D8Pudw894%!>c4wU&V1m<~0InidR6fbi?yPl(z+sKa zdF*kS>_4^1UO>y4T%Ar>epSr5&vp`$KdY7B(F%P0@VyHk@1fJ=6X0=aGjD-)BrOJD zW}IU@hg~^2r>a1fQvjTtvL*mKJ7q;pfP*U2=URL`VB_Y_JojbZ+MS=vaVN0C6L_MV zG1#5=35-E`KsD%r>-Q_ndvJ2tOYcMMP9f*t0iJ`(Z`^+YP)h>@lR(@Wvrt-`0tHG+ zuP2R@@mx=T@fPoQ1s`e^1I0H*kQPBGDky@!ZQG@8jY-+2ihreG5q$6i{3vmDTg0j$ zzRb*-nKN@{_wD`V6+i*YS)?$XfrA-sW?js?SYU8#vXxxQCc|*K!EbpWfu)3~jwq6_@KC0m;3A%jH^18_a0;ksC2DEwa@2{9@{ z9@T??<4QwR69zk{UvcHHX;`ICOwrF;@U;etd@YE)4MzI1WCsadP=`%^B>xPS-{`=~ zZ+2im8meb#4p~XIL9}ZOBg7D8R=PC8V}ObDcxEEK(4yGKcyCQWUe{9jCs+@k!_y|I z%s{W(&>P4w@hjQ>PQL$zY+=&aDU6cWr#hG)BVCyfP)h>@3IG5I2mk;8K>)Ppba*!h z005B=001VF5fT=Y4_ytCUk`sv8hJckqSy&Gc2Jx^WJ$J~08N{il-M$fz_ML$)Cpil z(nOv_nlZB^c4s&&O3h=OLiCz&(|f0 zxWU_-JZy>hxP*gvR>CLnNeQ1~g;6{g#-}AbkIzWR;j=8=6!AHpKQCbjFYxf9h%bov zVi;eNa1>t-<14KERUW>^KwoF+8zNo`Y*WiQwq}3m0_2RYtL9Wmu`JaRaQMQ)`Si^6+VbM`!rH~T?DX2=(n4nT zf`G`(Rpq*pDk*v~wMYPZ@vMNZDMPnxMYmU!lA{Xfo?n=Ibb4y3eyY1@Dut4|Y^ml& zqs$r}jAo=B(Ml>ogeEjyv(E`=kBzPf2uv9TQtO$~bamD#=Tv`lNy(K|w$J2O6jS51 zzZtOCHDWz7W0=L1XDW5WR5mtLGc~W+>*vX5{e~U@rE~?7e>vKU-v8bj;F4#abtcV(3ZtwXo9ia93HiETyQXwW4a-0){;$OU*l` zW^bjkyZTJ6_DL^0}`*)#EZ|2nvKRzMLH9-~@Z6$v#t8Dm%(qpP+DgzNe6d)1q zBqhyF$jJTyYFvl_=a>#I8jhJ)d6SBNPg#xg2^kZ3NX8kQ74ah(Y5Z8mlXyzTD&}Q8 ziY(pj-N-V2f>&hZQJ`Di%wp2fN(I%F@l)3M8GcSdNy+#HuO{$I8NXubRlFkL)cY@b z#`v{}-^hRXEq*8B_cG=%PZvI$eo(|8Wc(2o8L#0_GX9L$1@yV>%7mGk)QTD1R*OvS z4OW;ym1)%k9Bfem0tOqq3yyAUWp&q|LsN!RDnxa|j;>R|Mm2rIv7=tej5GFaa+`#| z;7u9Z_^XV+vD@2hF8Xe63+Qd`oig6S9jX(*DbjzPb*K-H7c^7E-(~!R6E%TrgW;RvG;WS{Ziv*W*a*`9Bb;$Er3?MyF~5GcXv`k>U)n}lwv$Sp+H@IKA5$mKk0g*4Ln{!tfvITeY zzr%8JJ5BdcEYsR9eGzJ4B&$}4FMmbRU6{8{_w7Kl77@PNe7|Bc#c?5(C5&Z=kJ#(oM90D4`rh2S!|^L!P#e#1hkD5@~-- z`63GV0~*rOZSqw7k^#-Y$Q4z3Oa2SPRURqEahB1B^h{7~+p03SwzqL9QU#$3-X zdYtQ?-K5xDAdfomEd6(yPtZ!yY_<35bMedeq`z2JWorljz5-f9<^93HM-$#+acw%9r!JOM%O<|BR`W& zd-%j_?b^q7Kl6{q^N{cg2u;11rFB5EP+oqG9&pHD#_Mo@aNMj;LUvsl&nK(ca(hT( zzFc2oHC6WQv8g7jo+3ZSwK+9G$cvfRnql)?g=XeQ3+LTh3)79nhEle8OqS3T$qn(> z(=5Bg?EWq-ldEywgzXW965%H(9^ik*rH(8dNdkbcS9|ow&_r`X~R^R?B+(oTiMzzlx8KnHqUi z8Rh-)VAnS-CO+3}yxqm8)X+N+uzieFVm-F#syP#M1p5&$wX3MJ8 z+R@grZ*5G^Uh4I@VT=>C4RJNc^~3mx$kS1F{L?3)BzdduD2MZKdu#jNno&f2&d{?` zW(>$oktzY@GO{|Ln~Bt^A4)(%?l-&(Dm!iL#$K_xOyhwAf=K2<+Bom zw7|hl6E5}B$d%n0sfZvfQRy9Fyz2~ z83#=#LaHnf1th^k*p|ux8!!8pfHE!)x*%=_hAddl)P%4h4%&8!5-W#xqqb}c=H(i|wqcIS&oDQ{ zhI7N-$f$ra3=RjPmMh?-IEkJYQ<}R9Z!}wmp$#~Uc%u1oh#TP}wF*kJJmQX2#27kL z_dz(yKufo<=m71bZfLp^Ll#t3(IHkrgMcvx@~om%Ib(h(<$Da7urTI`x|%`wD--sN zJEEa>4DGSEG?0ulkosfj8IMNN4)B=ZtvGG{|4Fp=Xhg!wPNgYzS>{Bp%%Qa+624X@ X49Luk)baa85H9$5YCsTPT`SVRWMtMW diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties index 442d9132..2e6e5897 100755 --- a/gradle/wrapper/gradle-wrapper.properties +++ b/gradle/wrapper/gradle-wrapper.properties @@ -1,5 +1,5 @@ distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-6.8.3-bin.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-7.3.3-bin.zip zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists diff --git a/gradlew b/gradlew index 4f906e0c..1b6c7873 100755 --- a/gradlew +++ b/gradlew @@ -1,7 +1,7 @@ -#!/usr/bin/env sh +#!/bin/sh # -# Copyright 2015 the original author or authors. +# Copyright © 2015-2021 the original authors. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. @@ -17,67 +17,101 @@ # ############################################################################## -## -## Gradle start up script for UN*X -## +# +# Gradle start up script for POSIX generated by Gradle. +# +# Important for running: +# +# (1) You need a POSIX-compliant shell to run this script. If your /bin/sh is +# noncompliant, but you have some other compliant shell such as ksh or +# bash, then to run this script, type that shell name before the whole +# command line, like: +# +# ksh Gradle +# +# Busybox and similar reduced shells will NOT work, because this script +# requires all of these POSIX shell features: +# * functions; +# * expansions «$var», «${var}», «${var:-default}», «${var+SET}», +# «${var#prefix}», «${var%suffix}», and «$( cmd )»; +# * compound commands having a testable exit status, especially «case»; +# * various built-in commands including «command», «set», and «ulimit». +# +# Important for patching: +# +# (2) This script targets any POSIX shell, so it avoids extensions provided +# by Bash, Ksh, etc; in particular arrays are avoided. +# +# The "traditional" practice of packing multiple parameters into a +# space-separated string is a well documented source of bugs and security +# problems, so this is (mostly) avoided, by progressively accumulating +# options in "$@", and eventually passing that to Java. +# +# Where the inherited environment variables (DEFAULT_JVM_OPTS, JAVA_OPTS, +# and GRADLE_OPTS) rely on word-splitting, this is performed explicitly; +# see the in-line comments for details. +# +# There are tweaks for specific operating systems such as AIX, CygWin, +# Darwin, MinGW, and NonStop. +# +# (3) This script is generated from the Groovy template +# https://github.com/gradle/gradle/blob/master/subprojects/plugins/src/main/resources/org/gradle/api/internal/plugins/unixStartScript.txt +# within the Gradle project. +# +# You can find Gradle at https://github.com/gradle/gradle/. +# ############################################################################## # Attempt to set APP_HOME + # Resolve links: $0 may be a link -PRG="$0" -# Need this for relative symlinks. -while [ -h "$PRG" ] ; do - ls=`ls -ld "$PRG"` - link=`expr "$ls" : '.*-> \(.*\)$'` - if expr "$link" : '/.*' > /dev/null; then - PRG="$link" - else - PRG=`dirname "$PRG"`"/$link" - fi +app_path=$0 + +# Need this for daisy-chained symlinks. +while + APP_HOME=${app_path%"${app_path##*/}"} # leaves a trailing /; empty if no leading path + [ -h "$app_path" ] +do + ls=$( ls -ld "$app_path" ) + link=${ls#*' -> '} + case $link in #( + /*) app_path=$link ;; #( + *) app_path=$APP_HOME$link ;; + esac done -SAVED="`pwd`" -cd "`dirname \"$PRG\"`/" >/dev/null -APP_HOME="`pwd -P`" -cd "$SAVED" >/dev/null + +APP_HOME=$( cd "${APP_HOME:-./}" && pwd -P ) || exit APP_NAME="Gradle" -APP_BASE_NAME=`basename "$0"` +APP_BASE_NAME=${0##*/} # Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. DEFAULT_JVM_OPTS='"-Xmx64m" "-Xms64m"' # Use the maximum available, or set MAX_FD != -1 to use that value. -MAX_FD="maximum" +MAX_FD=maximum warn () { echo "$*" -} +} >&2 die () { echo echo "$*" echo exit 1 -} +} >&2 # OS specific support (must be 'true' or 'false'). cygwin=false msys=false darwin=false nonstop=false -case "`uname`" in - CYGWIN* ) - cygwin=true - ;; - Darwin* ) - darwin=true - ;; - MINGW* ) - msys=true - ;; - NONSTOP* ) - nonstop=true - ;; +case "$( uname )" in #( + CYGWIN* ) cygwin=true ;; #( + Darwin* ) darwin=true ;; #( + MSYS* | MINGW* ) msys=true ;; #( + NONSTOP* ) nonstop=true ;; esac CLASSPATH=$APP_HOME/gradle/wrapper/gradle-wrapper.jar @@ -87,9 +121,9 @@ CLASSPATH=$APP_HOME/gradle/wrapper/gradle-wrapper.jar if [ -n "$JAVA_HOME" ] ; then if [ -x "$JAVA_HOME/jre/sh/java" ] ; then # IBM's JDK on AIX uses strange locations for the executables - JAVACMD="$JAVA_HOME/jre/sh/java" + JAVACMD=$JAVA_HOME/jre/sh/java else - JAVACMD="$JAVA_HOME/bin/java" + JAVACMD=$JAVA_HOME/bin/java fi if [ ! -x "$JAVACMD" ] ; then die "ERROR: JAVA_HOME is set to an invalid directory: $JAVA_HOME @@ -98,7 +132,7 @@ Please set the JAVA_HOME variable in your environment to match the location of your Java installation." fi else - JAVACMD="java" + JAVACMD=java which java >/dev/null 2>&1 || die "ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. Please set the JAVA_HOME variable in your environment to match the @@ -106,80 +140,95 @@ location of your Java installation." fi # Increase the maximum file descriptors if we can. -if [ "$cygwin" = "false" -a "$darwin" = "false" -a "$nonstop" = "false" ] ; then - MAX_FD_LIMIT=`ulimit -H -n` - if [ $? -eq 0 ] ; then - if [ "$MAX_FD" = "maximum" -o "$MAX_FD" = "max" ] ; then - MAX_FD="$MAX_FD_LIMIT" - fi - ulimit -n $MAX_FD - if [ $? -ne 0 ] ; then - warn "Could not set maximum file descriptor limit: $MAX_FD" - fi - else - warn "Could not query maximum file descriptor limit: $MAX_FD_LIMIT" - fi +if ! "$cygwin" && ! "$darwin" && ! "$nonstop" ; then + case $MAX_FD in #( + max*) + MAX_FD=$( ulimit -H -n ) || + warn "Could not query maximum file descriptor limit" + esac + case $MAX_FD in #( + '' | soft) :;; #( + *) + ulimit -n "$MAX_FD" || + warn "Could not set maximum file descriptor limit to $MAX_FD" + esac fi -# For Darwin, add options to specify how the application appears in the dock -if $darwin; then - GRADLE_OPTS="$GRADLE_OPTS \"-Xdock:name=$APP_NAME\" \"-Xdock:icon=$APP_HOME/media/gradle.icns\"" -fi +# Collect all arguments for the java command, stacking in reverse order: +# * args from the command line +# * the main class name +# * -classpath +# * -D...appname settings +# * --module-path (only if needed) +# * DEFAULT_JVM_OPTS, JAVA_OPTS, and GRADLE_OPTS environment variables. # For Cygwin or MSYS, switch paths to Windows format before running java -if [ "$cygwin" = "true" -o "$msys" = "true" ] ; then - APP_HOME=`cygpath --path --mixed "$APP_HOME"` - CLASSPATH=`cygpath --path --mixed "$CLASSPATH"` - - JAVACMD=`cygpath --unix "$JAVACMD"` - - # We build the pattern for arguments to be converted via cygpath - ROOTDIRSRAW=`find -L / -maxdepth 1 -mindepth 1 -type d 2>/dev/null` - SEP="" - for dir in $ROOTDIRSRAW ; do - ROOTDIRS="$ROOTDIRS$SEP$dir" - SEP="|" - done - OURCYGPATTERN="(^($ROOTDIRS))" - # Add a user-defined pattern to the cygpath arguments - if [ "$GRADLE_CYGPATTERN" != "" ] ; then - OURCYGPATTERN="$OURCYGPATTERN|($GRADLE_CYGPATTERN)" - fi +if "$cygwin" || "$msys" ; then + APP_HOME=$( cygpath --path --mixed "$APP_HOME" ) + CLASSPATH=$( cygpath --path --mixed "$CLASSPATH" ) + + JAVACMD=$( cygpath --unix "$JAVACMD" ) + # Now convert the arguments - kludge to limit ourselves to /bin/sh - i=0 - for arg in "$@" ; do - CHECK=`echo "$arg"|egrep -c "$OURCYGPATTERN" -` - CHECK2=`echo "$arg"|egrep -c "^-"` ### Determine if an option - - if [ $CHECK -ne 0 ] && [ $CHECK2 -eq 0 ] ; then ### Added a condition - eval `echo args$i`=`cygpath --path --ignore --mixed "$arg"` - else - eval `echo args$i`="\"$arg\"" + for arg do + if + case $arg in #( + -*) false ;; # don't mess with options #( + /?*) t=${arg#/} t=/${t%%/*} # looks like a POSIX filepath + [ -e "$t" ] ;; #( + *) false ;; + esac + then + arg=$( cygpath --path --ignore --mixed "$arg" ) fi - i=`expr $i + 1` + # Roll the args list around exactly as many times as the number of + # args, so each arg winds up back in the position where it started, but + # possibly modified. + # + # NB: a `for` loop captures its iteration list before it begins, so + # changing the positional parameters here affects neither the number of + # iterations, nor the values presented in `arg`. + shift # remove old arg + set -- "$@" "$arg" # push replacement arg done - case $i in - 0) set -- ;; - 1) set -- "$args0" ;; - 2) set -- "$args0" "$args1" ;; - 3) set -- "$args0" "$args1" "$args2" ;; - 4) set -- "$args0" "$args1" "$args2" "$args3" ;; - 5) set -- "$args0" "$args1" "$args2" "$args3" "$args4" ;; - 6) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" ;; - 7) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" ;; - 8) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" ;; - 9) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" "$args8" ;; - esac fi -# Escape application args -save () { - for i do printf %s\\n "$i" | sed "s/'/'\\\\''/g;1s/^/'/;\$s/\$/' \\\\/" ; done - echo " " -} -APP_ARGS=`save "$@"` +# Collect all arguments for the java command; +# * $DEFAULT_JVM_OPTS, $JAVA_OPTS, and $GRADLE_OPTS can contain fragments of +# shell script including quotes and variable substitutions, so put them in +# double quotes to make sure that they get re-expanded; and +# * put everything else in single quotes, so that it's not re-expanded. + +set -- \ + "-Dorg.gradle.appname=$APP_BASE_NAME" \ + -classpath "$CLASSPATH" \ + org.gradle.wrapper.GradleWrapperMain \ + "$@" + +# Use "xargs" to parse quoted args. +# +# With -n1 it outputs one arg per line, with the quotes and backslashes removed. +# +# In Bash we could simply go: +# +# readarray ARGS < <( xargs -n1 <<<"$var" ) && +# set -- "${ARGS[@]}" "$@" +# +# but POSIX shell has neither arrays nor command substitution, so instead we +# post-process each arg (as a line of input to sed) to backslash-escape any +# character that might be a shell metacharacter, then use eval to reverse +# that process (while maintaining the separation between arguments), and wrap +# the whole thing up as a single "set" statement. +# +# This will of course break if any of these variables contains a newline or +# an unmatched quote. +# -# Collect all arguments for the java command, following the shell quoting and substitution rules -eval set -- $DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS "\"-Dorg.gradle.appname=$APP_BASE_NAME\"" -classpath "\"$CLASSPATH\"" org.gradle.wrapper.GradleWrapperMain "$APP_ARGS" +eval "set -- $( + printf '%s\n' "$DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS" | + xargs -n1 | + sed ' s~[^-[:alnum:]+,./:=@_]~\\&~g; ' | + tr '\n' ' ' + )" '"$@"' exec "$JAVACMD" "$@" From f833b0d3a2e7962747bba2224774fb3ae51519f0 Mon Sep 17 00:00:00 2001 From: Graham Brown Date: Sat, 1 Jan 2022 21:19:53 +0200 Subject: [PATCH 194/220] change gradle dependency example to use logback --- README.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index fa09c355..68fe6e7f 100755 --- a/README.md +++ b/README.md @@ -18,15 +18,15 @@ across different versions. ### Getting started -Simply add the library and an SLF4J implementation to your package config, here is an example using Gradle +Simply add the library and an SLF4J logger to your package config, here is an example using Gradle ``` repositories { mavenCentral() } dependencies { - compile 'io.github.ari4java:ari4java:+' - compile 'org.apache.logging.log4j:log4j-slf4j-impl:2.17.0' + implementation 'io.github.ari4java:ari4java:+' + implementation 'ch.qos.logback:logback-classic:1.2.10' } ``` From e7711952e56f696141901ba9ff0717cfacc4f70a Mon Sep 17 00:00:00 2001 From: Graham Brown Date: Sat, 1 Jan 2022 21:24:35 +0200 Subject: [PATCH 195/220] Added a Vagrant box for the Examples Added a Comprehensive example Changed from log4j to logback --- .gitignore | 3 + examples/README.md | 2 + examples/Vagrantfile | 21 + examples/build.gradle | 14 +- .../examples/comprehensive/Asterisk.java | 393 +++++++++++++++++ .../ari4java/examples/comprehensive/Boot.java | 29 ++ .../examples/comprehensive/WebServer.java | 120 +++++ examples/src/main/resources/log4j2.properties | 17 - examples/src/main/resources/logback.xml | 16 + examples/vagrant/asterisk/acl.conf | 80 ++++ examples/vagrant/asterisk/ari.conf | 9 + examples/vagrant/asterisk/asterisk.conf | 13 + examples/vagrant/asterisk/cdr.conf | 10 + examples/vagrant/asterisk/cel.conf | 116 +++++ examples/vagrant/asterisk/codecs.conf | 214 +++++++++ examples/vagrant/asterisk/extensions.conf | 38 ++ examples/vagrant/asterisk/features.conf | 122 +++++ examples/vagrant/asterisk/http.conf | 10 + examples/vagrant/asterisk/iax.conf | 6 + examples/vagrant/asterisk/logger.conf | 10 + examples/vagrant/asterisk/manager.conf | 14 + examples/vagrant/asterisk/modules.conf | 163 +++++++ examples/vagrant/asterisk/pjproject.conf | 28 ++ examples/vagrant/asterisk/pjsip.conf | 12 + examples/vagrant/asterisk/pjsip_wizard.conf | 55 +++ examples/vagrant/asterisk/udptl.conf | 26 ++ examples/vagrant/scripts/asterisk.service | 20 + examples/vagrant/scripts/provision.sh | 91 ++++ .../vagrant/static-http/ari4java-phone.html | 417 ++++++++++++++++++ .../static-http/bootstrap-nightfall.min.css | 11 + .../static-http/bootstrap.bundle.min.js | 6 + .../vagrant/static-http/bootstrap.min.css | 6 + .../vagrant/static-http/jssip-3.8.2.min.js | 9 + wiki-images/example-comp-1.png | Bin 0 -> 8256 bytes wiki-images/example-comp-2.png | Bin 0 -> 8272 bytes wiki-images/example-comp-3.png | Bin 0 -> 11182 bytes wiki-images/example-phone-1.png | Bin 0 -> 30694 bytes wiki-images/example-phone-2.png | Bin 0 -> 103224 bytes wiki-images/example-weasels.png | Bin 0 -> 10891 bytes 39 files changed, 2081 insertions(+), 20 deletions(-) create mode 100644 examples/README.md create mode 100644 examples/Vagrantfile create mode 100644 examples/src/main/java/ch/loway/oss/ari4java/examples/comprehensive/Asterisk.java create mode 100644 examples/src/main/java/ch/loway/oss/ari4java/examples/comprehensive/Boot.java create mode 100644 examples/src/main/java/ch/loway/oss/ari4java/examples/comprehensive/WebServer.java delete mode 100755 examples/src/main/resources/log4j2.properties create mode 100644 examples/src/main/resources/logback.xml create mode 100644 examples/vagrant/asterisk/acl.conf create mode 100644 examples/vagrant/asterisk/ari.conf create mode 100644 examples/vagrant/asterisk/asterisk.conf create mode 100644 examples/vagrant/asterisk/cdr.conf create mode 100644 examples/vagrant/asterisk/cel.conf create mode 100644 examples/vagrant/asterisk/codecs.conf create mode 100644 examples/vagrant/asterisk/extensions.conf create mode 100644 examples/vagrant/asterisk/features.conf create mode 100644 examples/vagrant/asterisk/http.conf create mode 100644 examples/vagrant/asterisk/iax.conf create mode 100644 examples/vagrant/asterisk/logger.conf create mode 100644 examples/vagrant/asterisk/manager.conf create mode 100644 examples/vagrant/asterisk/modules.conf create mode 100644 examples/vagrant/asterisk/pjproject.conf create mode 100644 examples/vagrant/asterisk/pjsip.conf create mode 100644 examples/vagrant/asterisk/pjsip_wizard.conf create mode 100644 examples/vagrant/asterisk/udptl.conf create mode 100644 examples/vagrant/scripts/asterisk.service create mode 100755 examples/vagrant/scripts/provision.sh create mode 100644 examples/vagrant/static-http/ari4java-phone.html create mode 100644 examples/vagrant/static-http/bootstrap-nightfall.min.css create mode 100644 examples/vagrant/static-http/bootstrap.bundle.min.js create mode 100644 examples/vagrant/static-http/bootstrap.min.css create mode 100644 examples/vagrant/static-http/jssip-3.8.2.min.js create mode 100644 wiki-images/example-comp-1.png create mode 100644 wiki-images/example-comp-2.png create mode 100644 wiki-images/example-comp-3.png create mode 100644 wiki-images/example-phone-1.png create mode 100644 wiki-images/example-phone-2.png create mode 100644 wiki-images/example-weasels.png diff --git a/.gitignore b/.gitignore index 59fbe040..38a9ec92 100755 --- a/.gitignore +++ b/.gitignore @@ -29,3 +29,6 @@ codegen/versions.md .build-local oss.yaml + +# vagrant state folder +.vagrant diff --git a/examples/README.md b/examples/README.md new file mode 100644 index 00000000..64558a7e --- /dev/null +++ b/examples/README.md @@ -0,0 +1,2 @@ +# Examples +Check out the [Wiki on GitHub](https://github.com/ari4java/ari4java/wiki/Examples) for more details. diff --git a/examples/Vagrantfile b/examples/Vagrantfile new file mode 100644 index 00000000..9fee894f --- /dev/null +++ b/examples/Vagrantfile @@ -0,0 +1,21 @@ +# -*- mode: ruby -*- +# vi: set ft=ruby : + +# use NET_BRIDGE=on to create a bridge interface with dynamic ip from your network. +# Used for testing from an external source like a cell phone with Zoiper or the like +# Note: Wifi with WPA2-Enterprise does not work, the interface doesn't get an IP +if not ENV["NET_BRIDGE"] then ENV["NET_BRIDGE"] = "off" end + +Vagrant.configure("2") do |config| + config.vm.box = "ubuntu/focal64" + config.vm.provider "virtualbox" do |v| + v.memory = 1024 + v.cpus = 2 + end + config.vm.network "private_network", ip: "192.168.56.44" + if ENV["NET_BRIDGE"] == "on" then + config.vm.network "public_network", use_dhcp_assigned_default_route: false + end + config.vm.synced_folder "./vagrant", "/vagrant" + config.vm.provision :shell, :path => "vagrant/scripts/provision.sh" +end diff --git a/examples/build.gradle b/examples/build.gradle index bb6f0f33..54003227 100755 --- a/examples/build.gradle +++ b/examples/build.gradle @@ -7,8 +7,9 @@ repositories { } dependencies { - compile 'ch.loway.oss.ari4java:ari4java:+' - compile 'org.apache.logging.log4j:log4j-slf4j-impl:2.17.0' + implementation 'ch.loway.oss.ari4java:ari4java:+' + implementation 'ch.qos.logback:logback-classic:1.2.10' + implementation 'io.netty:netty-all:4.1.72.Final' } java { @@ -17,6 +18,13 @@ java { } task runWeaselsExample(type: JavaExec) { + dependsOn build classpath = sourceSets.main.runtimeClasspath - main = 'ch.loway.oss.ari4java.examples.Weasels' + mainClass = 'ch.loway.oss.ari4java.examples.Weasels' +} + +task runComprehensiveExample(type: JavaExec) { + dependsOn build + classpath = sourceSets.main.runtimeClasspath + mainClass = 'ch.loway.oss.ari4java.examples.comprehensive.Boot' } diff --git a/examples/src/main/java/ch/loway/oss/ari4java/examples/comprehensive/Asterisk.java b/examples/src/main/java/ch/loway/oss/ari4java/examples/comprehensive/Asterisk.java new file mode 100644 index 00000000..504048a0 --- /dev/null +++ b/examples/src/main/java/ch/loway/oss/ari4java/examples/comprehensive/Asterisk.java @@ -0,0 +1,393 @@ +package ch.loway.oss.ari4java.examples.comprehensive; + +import ch.loway.oss.ari4java.ARI; +import ch.loway.oss.ari4java.AriVersion; +import ch.loway.oss.ari4java.generated.AriWSHelper; +import ch.loway.oss.ari4java.generated.models.*; +import ch.loway.oss.ari4java.tools.RestException; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +import java.util.HashMap; +import java.util.Map; +import java.util.UUID; +import java.util.concurrent.ExecutorService; +import java.util.concurrent.Executors; + +public class Asterisk { + + private static final String ARI_APP_NAME = "comprehensive-app"; + private static final Logger logger = LoggerFactory.getLogger(Asterisk.class); + private static final Map lookups = new HashMap<>(); + private static final Map states = new HashMap<>(); + private final String address; + private final String user; + private final String pass; + private final AriVersion version; + private ARI ari; + private ExecutorService threadPool; + + public Asterisk(String address, String user, String pass, AriVersion version) { + this.address = address; + this.user = user; + this.pass = pass; + this.version = version; + } + + /** + * Starts the ARI Event Websocket to Asterisk using the Handler class + * @see Asterisk.Handler + * @return true if connected successfully + */ + public boolean start() { + logger.info("Starting ARI..."); + try { + ari = ARI.build(address, ARI_APP_NAME, user, pass, version); + AsteriskInfo info = ari.asterisk().getInfo().execute(); + threadPool = Executors.newFixedThreadPool(5); + ari.events().eventWebsocket(ARI_APP_NAME).execute(new Handler()); + logger.info("Connected to Asterisk {}", info.getSystem().getVersion()); + return true; + } catch (Throwable t) { + logger.error("Error: {}", t.getMessage(), t); + } + return false; + } + + /** + * Stops the ARI Event Websocket + */ + public void stop() { + if (ari != null) ari.cleanup(); + if (threadPool != null) threadPool.shutdown(); + } + + /** + * Start a call by creating a channel to the provided from number, + * the events will then create a channel to the to number and add them to a bridge + * @param from the 1st number to call + * @param to the 2nd number to call + * @return an id used for the call state, can be used to end the call + * @throws RestException raised by ARI interactions + */ + public String startCall(String from, String to) throws RestException { + State state = new State(); + state.from = from; + state.to = to; + state.channel1 = createChannel(state.from, "Outbound: " + state.to); + synchronized (states) { + states.put(state.id, state); + } + synchronized (lookups) { + lookups.put(state.channel1, state.id); + } + return state.id; + } + + /** + * Create channel, when to is 123 then use type Local, else PJSIP + * @param to the destination + * @param from the source the destination will see in the CLI + * @return the id of the created channel + * @throws RestException raised by ARI interactions + */ + private String createChannel(String to, String from) throws RestException { + String endpoint = "PJSIP/" + to; + if ("123".equals(to)) { + // 123 is the Echo App in the dialplan, setting the type to Local executes the dialplan + endpoint = "Local/123@from-internal"; + } + // AppArgs is set to "me" so we know when the StasisStart event occurs we can ignore it as we started the process + // Context from-internal is what was setup in the vagrant box + Channel channel = ari.channels().originate(endpoint).setApp(ARI_APP_NAME).setCallerId(from).setAppArgs("me") + .setContext("from-internal").execute(); + logger.debug("Channel created to {}, Id: {}", channel.getConnected().getNumber(), channel.getId()); + return channel.getId(); + } + + /** + * End a call by hanging up channel1 from the State object, this will in turn hangup channel2 + * @param stateId the id of the State object + */ + public void endCall(String stateId) { + if (states.containsKey(stateId)) { + hangupChannel(states.get(stateId).channel1); + } + } + + /** + * Hangs up the channel if in the lookups + * @param channelId the channel id + */ + private void hangupChannel(String channelId) { + if (channelId != null) { + if (lookups.containsKey(channelId)) { + try { + ari.channels().hangup(channelId).execute(); + } catch (RestException e) { + logger.error("Error hanging up channel", e); + } + } else { + logger.warn("Channel not found in lookup {}", channelId); + } + } + } + + /** + * Creates a bridge adds its id to the State object and adds channel1 to the bridge + * @param state the state for the call + * @throws RestException raised by ARI interactions + */ + private void createBridgeAndAddChannel1(State state) throws RestException { + Bridge bridge = ari.bridges().create().execute(); + logger.debug("Bridge created id: {}", bridge.getId()); + state.bridge = bridge.getId(); + addChannelToBridge(state.bridge, state.channel1); + } + + /** + * @param bridgeId id of the bridge + * @param channelId id of the channel + * @throws RestException raised by ARI interactions + */ + private void addChannelToBridge(String bridgeId, String channelId) throws RestException { + ari.bridges().addChannel(bridgeId, channelId).execute(); + } + + /** + * @param id channel or bridge id + * @return the State object + */ + private State lookupState(String id) { + if (id != null && !id.isEmpty()) { + synchronized (lookups) { + if (lookups.containsKey(id)) { + return states.get(lookups.get(id)); + } + } + } + return null; + } + + /** + * Remove the provided id from the lookups and the State object, if all ids cleared in the State object remove from the states + * @param id the channel or bridge id + */ + private void clear(String id) { + if (id == null || id.trim().isEmpty()) { + return; + } + String stateId = null; + synchronized (lookups) { + if (lookups.containsKey(id)) { + stateId = lookups.remove(id); + } + } + if (stateId != null) { + synchronized (states) { + State state = states.get(stateId); + if (state != null) { + // state was found clear the relevant id... + if (id.equals(state.channel1)) { + state.channel1 = null; + } else if (id.equals(state.channel2)) { + state.channel2 = null; + } else if (id.equals(state.bridge)) { + state.bridge = null; + } + // all ids are cleared, remove from states... + if (state.channel1 == null && state.channel2 == null && state.bridge == null) { + states.remove(stateId); + } + } + } + } + } + + /** + * An object to contain some ids to aid with processing the events. + */ + static class State { + private final String id = UUID.randomUUID().toString(); + private String from; + private String to; + private String channel1; + private String channel2; + private String bridge; + } + + /** + * Extension of the AriWSHelper to handle the events from Asterisk. + */ + class Handler extends AriWSHelper { + + @Override + public void onSuccess(Message message) { + // execute message handling in a thead pool to offload the websocket event worker, + // so we can get the next event and avoid a potential netty worker group starvation + threadPool.execute(() -> super.onSuccess(message)); + } + + @Override + protected void onStasisStart(StasisStart message) { + // StasisStart is created by both the Stasis dialplan app and a call to the channels API in ARI, + // so we check an argument set in the create channel code and ignore + logger.debug("onStasisStart, chan id: {}, name: {}", message.getChannel().getId(), message.getChannel().getName()); + if (message.getArgs() != null && !message.getArgs().isEmpty() && "me".equals(message.getArgs().get(0))) { + logger.debug("started by me, not processing..."); + return; + } + // was not created by "me" so we assume it's from the Stasis dialplan app + // create a State object and extract the info... + State state = new State(); + state.from = message.getChannel().getCaller().getNumber(); + state.to = message.getChannel().getDialplan().getExten(); + // 902 & 903 are "virtual" dialplan extensions that should call endpoint 100 or 200 + if ("902".equals(state.to) || "903".equals(state.to)) { + state.to = "902".equals(state.to) ? "100" : "200"; + logger.debug("Call received on virtual extension changed to {}", state.to); + } + state.channel1 = message.getChannel().getId(); + synchronized (states) { + states.put(state.id, state); + } + synchronized (lookups) { + lookups.put(state.channel1, state.id); + } + // add the inbound call channel to a bridge + try { + createBridgeAndAddChannel1(state); + } catch (RestException e) { + logger.error("Error creating bridge", e); + hangupChannel(state.channel1); + return; + } + // create the 2nd channel to the desired endpoint + try { + state.channel2 = createChannel(state.to, "Inbound " + state.from); + logger.debug("channel2: {}", state.channel2); + synchronized (lookups) { + lookups.put(state.channel2, state.id); + } + } catch (RestException e) { + logger.error("Error creating channel", e); + hangupChannel(state.channel1); + } + } + + @Override + protected void onChannelStateChange(ChannelStateChange message) { + logger.debug("onChannelStateChange {} {}", message.getChannel().getId(), message.getChannel().getState()); + // find the State object for the channel + State state = lookupState(message.getChannel().getId()); + if (state != null) { + // some debug logging... + if (logger.isDebugEnabled()) { + String chan = "?"; + if (message.getChannel().getId().equals(state.channel1)) { + chan = "channel1"; + } else if (message.getChannel().getId().equals(state.channel2)) { + chan = "channel2"; + } + logger.debug("state id: {}, chan: {}", state.id, chan); + } + if ("Up".equals(message.getChannel().getState()) && message.getChannel().getId().equals(state.channel1)) { + // the channel state has changed to Up and is channel1 in the State object ... + // this occurs in the startCall flow, when the phone answers we want to create a bridge and add the channel + // then create a channel for the to number stored in the State object + logger.debug("Channel 1 answered, create bridge and add channel..."); + try { + createBridgeAndAddChannel1(state); + } catch (RestException e) { + logger.error("Error creating bridge", e); + hangupChannel(state.channel1); + return; + } + try { + state.channel2 = createChannel(state.to, state.from); + synchronized (lookups) { + lookups.put(state.channel2, state.id); + } + logger.debug("channel2: {}", state.channel2); + } catch (RestException e) { + logger.error("Error creating channel2", e); + hangupChannel(state.channel1); + } + } else if ("Ringing".equals(message.getChannel().getState()) && message.getChannel().getId().equals(state.channel2)) { + // the channel state has changed to Ringing and is channel2 in the State object ... + // execute ring on channel1 so the person knows its ringing on the other end... + logger.debug("Channel 2 is ringing, ring channel 1..."); + try { + ari.channels().ring(state.channel1).execute(); + } catch (RestException e) { + logger.error("Error ringing channel", e); + } + } else if ("Up".equals(message.getChannel().getState()) && message.getChannel().getId().equals(state.channel2)) { + // the channel state has changed to Up and is channel2 in the State object ... + // add it to the bridge now both parties are connected and can communicate + logger.debug("Channel 2 answered, add to bridge..."); + try { + addChannelToBridge(state.bridge, state.channel2); + } catch (RestException e) { + logger.error("Error adding channel to bridge", e); + hangupChannel(state.channel2); + } + } else { + logger.debug("Not handling this channel state change"); + } + } else { + logger.error("Could not find state for channel {}", message.getChannel().getId()); + } + } + + @Override + protected void onChannelLeftBridge(ChannelLeftBridge message) { + logger.debug("onChannelLeftBridge {} {}", message.getBridge().getId(), message.getChannel().getId()); + if (message.getBridge().getChannels().isEmpty()) { + // the bridge is no longer needed - it's empty, so destroy it + logger.debug("No more channels in bridge, destroying..."); + try { + ari.bridges().destroy(message.getBridge().getId()).execute(); + } catch (RestException e) { + logger.error("Error destroying bridge", e); + } + } else { + // a channel left the bridge and there's another channel - so hangup the 1st channel as it's lonely here now... + String chan = message.getBridge().getChannels().get(0); + logger.debug("Hangup the other channel {}", chan); + hangupChannel(chan); + } + } + + @Override + protected void onChannelDestroyed(ChannelDestroyed message) { + logger.debug("onChannelDestroyed {}", message.getChannel().getId()); + // ChannelDestroyed is usually when the endpoint doesn't answer + // ChannelDestroyed & StasisEnd sometimes both occur, so we need to check the State is not null + State state = lookupState(message.getChannel().getId()); + if (state != null) { + // remove the channel from the lookups and State + clear(message.getChannel().getId()); + if (message.getChannel().getId().equals(state.channel2) && state.channel1 != null) { + // this is channel2, so hangup the 1st channel as it's lonely here now... + hangupChannel(state.channel1); + } + } + } + + @Override + protected void onBridgeDestroyed(BridgeDestroyed message) { + logger.debug("onBridgeDestroyed {}", message.getBridge().getId()); + // remove the bridge from the lookups and State + clear(message.getBridge().getId()); + } + + @Override + protected void onStasisEnd(StasisEnd message) { + logger.debug("onStasisEnd {}", message.getChannel().getId()); + // remove the channel from the lookups and State + clear(message.getChannel().getId()); + } + } + +} diff --git a/examples/src/main/java/ch/loway/oss/ari4java/examples/comprehensive/Boot.java b/examples/src/main/java/ch/loway/oss/ari4java/examples/comprehensive/Boot.java new file mode 100644 index 00000000..341ded52 --- /dev/null +++ b/examples/src/main/java/ch/loway/oss/ari4java/examples/comprehensive/Boot.java @@ -0,0 +1,29 @@ +package ch.loway.oss.ari4java.examples.comprehensive; + +import ch.loway.oss.ari4java.AriVersion; + +public class Boot { + + public static void main(String[] args) throws Exception { + if (args.length < 4) { + System.err.println("** Expecting at least 4 arguments:\n port url user pass [ariversion]"); + System.exit(1); + } + int port = Integer.parseInt(args[0]); + AriVersion ver = AriVersion.IM_FEELING_LUCKY; + if (args.length == 5) { + ver = AriVersion.fromVersionString(args[4]); + } + Asterisk asterisk = new Asterisk(args[1], args[2], args[3], ver); + WebServer webserver = new WebServer(port, asterisk); + Runtime.getRuntime().addShutdownHook(new Thread(() -> { + asterisk.stop(); + webserver.stop(); + })); + if (!asterisk.start()) { + System.exit(1); + } + webserver.start(); + } + +} diff --git a/examples/src/main/java/ch/loway/oss/ari4java/examples/comprehensive/WebServer.java b/examples/src/main/java/ch/loway/oss/ari4java/examples/comprehensive/WebServer.java new file mode 100644 index 00000000..4be3365b --- /dev/null +++ b/examples/src/main/java/ch/loway/oss/ari4java/examples/comprehensive/WebServer.java @@ -0,0 +1,120 @@ +package ch.loway.oss.ari4java.examples.comprehensive; + +import ch.loway.oss.ari4java.tools.RestException; +import io.netty.bootstrap.ServerBootstrap; +import io.netty.buffer.ByteBuf; +import io.netty.buffer.Unpooled; +import io.netty.channel.*; +import io.netty.channel.nio.NioEventLoopGroup; +import io.netty.channel.socket.SocketChannel; +import io.netty.channel.socket.nio.NioServerSocketChannel; +import io.netty.handler.codec.http.*; +import io.netty.handler.logging.LogLevel; +import io.netty.handler.logging.LoggingHandler; +import io.netty.util.CharsetUtil; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +public class WebServer { + + private static final Logger logger = LoggerFactory.getLogger(WebServer.class); + private final Asterisk asterisk; + private final int port; + private EventLoopGroup parentGroup; + private EventLoopGroup workerGroup; + + public WebServer(int port, Asterisk asterisk) { + this.port = port; + this.asterisk = asterisk; + } + + public void start() { + logger.info("Starting HTTP Server on port {}", port); + parentGroup = new NioEventLoopGroup(1); + workerGroup = new NioEventLoopGroup(5); + try { + ServerBootstrap b = new ServerBootstrap(); + b.group(parentGroup, workerGroup) + .channel(NioServerSocketChannel.class) + .handler(new LoggingHandler(LogLevel.INFO)) + .childHandler(new ChannelInitializer() { + @Override + protected void initChannel(SocketChannel ch) throws Exception { + ChannelPipeline p = ch.pipeline(); + p.addLast(new HttpRequestDecoder()); + p.addLast(new HttpResponseEncoder()); + p.addLast(new ServerHandler()); + } + }); + + ChannelFuture f = b.bind(port).sync(); + f.channel().closeFuture().sync(); + } catch (Exception e) { + logger.error(e.getMessage(), e); + } finally { + stop(); + } + } + + public void stop() { + if (parentGroup != null) parentGroup.shutdownGracefully(); + if (workerGroup != null) workerGroup.shutdownGracefully(); + } + + class ServerHandler extends SimpleChannelInboundHandler { + + private String uri; + private HttpMethod method; + + @Override + public void channelReadComplete(ChannelHandlerContext ctx) { + ctx.flush(); + } + + @Override + protected void channelRead0(ChannelHandlerContext ctx, Object msg) throws Exception { + if (msg instanceof HttpRequest) { + HttpRequest request = (HttpRequest) msg; + uri = request.uri(); + method = request.method(); + logger.debug("HttpRequest method: {}, uri: {}", method, uri); + } + if (msg instanceof LastHttpContent) { + HttpResponseStatus status = HttpResponseStatus.NOT_FOUND; + ByteBuf content = Unpooled.copiedBuffer("{\"message\": \"not found\"}", CharsetUtil.UTF_8); + try { + if (HttpMethod.GET.equals(method)) { + String[] parts = uri.split("/"); + logger.debug("action = {}", parts[1]); + if ("start".equals(parts[1]) && parts.length == 4) { + String id = asterisk.startCall(parts[2], parts[3]); + status = HttpResponseStatus.OK; + content = Unpooled.copiedBuffer("{\"message\": \"success\", \"id\": \"" + id + "\"}", CharsetUtil.UTF_8); + } else if ("end".equals(parts[1]) && parts.length == 3) { + asterisk.endCall(parts[2]); + status = HttpResponseStatus.OK; + content = Unpooled.copiedBuffer("{\"message\": \"success\"}", CharsetUtil.UTF_8); + } else { + logger.debug("invalid action"); + } + } + } catch (RestException e) { + status = HttpResponseStatus.INTERNAL_SERVER_ERROR; + content = Unpooled.copiedBuffer("{\"message\": \"" + e.getMessage() + "\"}", CharsetUtil.UTF_8); + } + FullHttpResponse httpResponse = new DefaultFullHttpResponse(HttpVersion.HTTP_1_1, status, content); + httpResponse.headers().set(HttpHeaderNames.ACCESS_CONTROL_ALLOW_ORIGIN, "*"); + httpResponse.headers().set(HttpHeaderNames.CONTENT_TYPE, "application/json; charset=UTF-8"); + httpResponse.headers().setInt(HttpHeaderNames.CONTENT_LENGTH, httpResponse.content().readableBytes()); + ctx.writeAndFlush(httpResponse).addListener(ChannelFutureListener.CLOSE); + } + } + + @Override + public void exceptionCaught(ChannelHandlerContext ctx, Throwable cause) { + logger.warn("exceptionCaught", cause); + ctx.close(); + } + } + +} diff --git a/examples/src/main/resources/log4j2.properties b/examples/src/main/resources/log4j2.properties deleted file mode 100755 index 6f6701a0..00000000 --- a/examples/src/main/resources/log4j2.properties +++ /dev/null @@ -1,17 +0,0 @@ -status = error -name = PropertiesConfig -filters = threshold -filter.threshold.type = ThresholdFilter -filter.threshold.level = trace -appenders = console -appender.console.type = Console -appender.console.name = STDOUT -appender.console.layout.type = PatternLayout -appender.console.layout.pattern = %d{yyyy-MM-dd HH:mm:ss} %-5p [%.15t] %c{1.}:%L - %m%n -rootLogger.level = DEBUG -rootLogger.appenderRefs = stdout -rootLogger.appenderRef.stdout.ref = STDOUT -logger.ari4java.name = ch.loway.oss.ari4java -logger.ari4java.level = trace -logger.netty.name = io.netty -logger.netty.level = error diff --git a/examples/src/main/resources/logback.xml b/examples/src/main/resources/logback.xml new file mode 100644 index 00000000..b997c8f5 --- /dev/null +++ b/examples/src/main/resources/logback.xml @@ -0,0 +1,16 @@ + + + + + + %cyan(%d{ISO8601}) %highlight(%-5level) [%blue(%t)] %green(%c{1}): %msg%n%throwable + + + + + + + + + + \ No newline at end of file diff --git a/examples/vagrant/asterisk/acl.conf b/examples/vagrant/asterisk/acl.conf new file mode 100644 index 00000000..b052606c --- /dev/null +++ b/examples/vagrant/asterisk/acl.conf @@ -0,0 +1,80 @@ +; +; Named Access Control Lists (ACLs) +; +; A convenient way to share acl definitions +; +; This configuration file is read on startup +; +; CLI Commands +; ----------------------------------------------------------- +; acl show Show all named ACLs configured +; acl show Show contents of a particular named ACL +; reload acl Reload configuration file +; +; Any configuration that uses ACLs which has been made to be able to use named +; ACLs will specify a named ACL with the 'acl' option in its configuration in +; a similar fashion to the usual 'permit' and 'deny' options. Example: +; acl=my_named_acl +; +; Multiple named ACLs can be applied by either comma separating the arguments or +; just by adding additional ACL lines. Example: +; acl=my_named_acl +; acl=my_named_acl2 +; +; or +; +; acl=my_named_acl,my_named_acl2 +; +; ACLs specified by name are evaluated independently from the ACL specified via +; permit/deny. In order for an address to pass a given ACL, it must pass both +; the ACL specified by permit/deny for a given item as well as any named ACLs +; that were specified. +; +;[example_named_acl1] +;deny=0.0.0.0/0.0.0.0 +;permit=209.16.236.0 +;permit=209.16.236.1 +; +;[example_named_acl2] +;permit=0.0.0.0/0.0.0.0 +;deny=10.24.20.171 +;deny=10.24.20.103 +;deny=209.16.236.1 +; +; example_named_acl1 above shows an example of whitelisting. When whitelisting, the +; named ACLs should follow a deny that blocks everything (like deny=0.0.0.0/0.0.0.0) +; The following example explains how combining the ACLs works: +; +; [example_item_with_acl] +; acl=example_named_acl1 +; acl=example_named_acl2 +; +; Suppose 209.16.236.0 tries to communicate and the ACL for that example is applied to it... +; First, example_named_acl1 is evaluated. The address is allowed by that ACL. +; Next, example_named_acl2 is evaluated. The address isn't blocked by example_named_acl2 +; either, so it passes. +; +; Suppose instead 209.16.236.1 tries to communicate and the same ACL is applied. +; First, example_named_acl1 is evaluated and the address is allowed. +; However, it is blocked by example_named_acl2, so the address is blocked from the combined +; ACL. +; +; Similarly, the permits/denies in specific configurations that make up an ACL definition +; are also treated as a separate ACL for evaluation. So if we change the example above to: +; +; [example_item_with_acl] +; acl=example_named_acl1 +; acl=example_named_acl2 +; deny=209.16.236.0 +; +; Then 209.16.236.0 will be rejected by the non-named component of the combined ACL even +; though it passes the two named components. +; +; +; Named ACLs can use ipv6 addresses just like normal ACLs. +;[ipv6_example_1] +;deny = :: +;permit = ::1/128 +; +;[ipv6_example_2] +;permit = fe80::21d:bad:fad:2323 diff --git a/examples/vagrant/asterisk/ari.conf b/examples/vagrant/asterisk/ari.conf new file mode 100644 index 00000000..66c5adb2 --- /dev/null +++ b/examples/vagrant/asterisk/ari.conf @@ -0,0 +1,9 @@ +[general] +enabled = yes +pretty = no + +[ari4java] +type = user +read_only = no +password = yothere +password_format = plain diff --git a/examples/vagrant/asterisk/asterisk.conf b/examples/vagrant/asterisk/asterisk.conf new file mode 100644 index 00000000..ccefff84 --- /dev/null +++ b/examples/vagrant/asterisk/asterisk.conf @@ -0,0 +1,13 @@ +[options] +; If we want to start Asterisk with a default verbosity for the verbose +; or debug logger channel types, then we use these settings (by default +; they are disabled). +;verbose = 5 +;debug = 2 + +; User and group to run asterisk as. NOTE: This will require changes to +; directory and device permissions. +;runuser = asterisk ; The user to run as. The default is root. +;rungroup = asterisk ; The group to run as. The default is root + +;defaultlanguage = es diff --git a/examples/vagrant/asterisk/cdr.conf b/examples/vagrant/asterisk/cdr.conf new file mode 100644 index 00000000..10fb9fc6 --- /dev/null +++ b/examples/vagrant/asterisk/cdr.conf @@ -0,0 +1,10 @@ +[general] +enable=no +unanswered=no +congestion=no + +[csv] +usegmtime=yes +loguniqueid=yes +loguserfield=yes +accountlogs=no diff --git a/examples/vagrant/asterisk/cel.conf b/examples/vagrant/asterisk/cel.conf new file mode 100644 index 00000000..755fcd3e --- /dev/null +++ b/examples/vagrant/asterisk/cel.conf @@ -0,0 +1,116 @@ +; +; Asterisk Channel Event Logging (CEL) +; + +; Channel Event Logging is a mechanism to provide fine-grained event information +; that can be used to generate billing information. Such event information can +; be recorded to various backend modules. +; + +[general] + +; CEL Activation +; +; Use the 'enable' keyword to turn CEL on or off. +; +; Accepted values: yes and no +; Default value: no + +;enable=yes + +; Application Tracking +; +; Use the 'apps' keyword to specify the list of applications for which you want +; to receive CEL events. This is a comma separated list of Asterisk dialplan +; applications, such as Dial, Queue, and Park. +; +; Accepted values: A comma separated list of Asterisk dialplan applications +; Default value: none +; +; Note: You may also use 'all' which will result in CEL events being reported +; for all Asterisk applications. This may affect Asterisk's performance +; significantly. + +apps=dial,park + +; Event Tracking +; +; Use the 'events' keyword to specify the list of events which you want to be +; raised when they occur. This is a comma separated list of the values in the +; table below. +; +; Accepted values: A comma separated list of one or more of the following: +; ALL -- Generate entries on all events +; CHAN_START -- The time a channel was created +; CHAN_END -- The time a channel was terminated +; ANSWER -- The time a channel was answered (ie, phone taken off-hook) +; HANGUP -- The time at which a hangup occurred +; BRIDGE_ENTER -- The time a channel was connected into a conference room +; BRIDGE_EXIT -- The time a channel was removed from a conference room +; APP_START -- The time a tracked application was started +; APP_END -- the time a tracked application ended +; PARK_START -- The time a call was parked +; PARK_END -- Unpark event +; BLINDTRANSFER -- When a blind transfer is initiated +; ATTENDEDTRANSFER -- When an attended transfer is initiated +; PICKUP -- This channel picked up the specified channel +; FORWARD -- This channel is being forwarded somewhere else +; LINKEDID_END -- The last channel with the given linkedid is retired +; USER_DEFINED -- Triggered from the dialplan, and has a name given by the +; user +; LOCAL_OPTIMIZE -- A local channel pair is optimizing away. +; +; Default value: none +; (Track no events) + +events=APP_START,CHAN_START,CHAN_END,ANSWER,HANGUP,BRIDGE_ENTER,BRIDGE_EXIT + +; Date Format +; +; Use the 'dateformat' keyword to specify the date format used when CEL events +; are raised. +; +; Accepted values: A strftime format string (see man strftime) +; +; Example: "%F %T" +; -> This gives the date and time in the format "2009-06-23 17:02:35" +; +; If this option is not specified, the default format is "." +; since epoch. The microseconds field will always be 6 digits in length, meaning it +; may have leading zeros. +; +;dateformat = %F %T + +; +; Asterisk Manager Interface (AMI) CEL Backend +; +[manager] + +; AMI Backend Activation +; +; Use the 'enable' keyword to turn CEL logging to the Asterisk Manager Interface +; on or off. +; +; Accepted values: yes and no +; Default value: no +;enabled=yes + +; Use 'show_user_defined' to put "USER_DEFINED" in the EventName header, +; instead of (by default) just putting the user defined event name there. +; When enabled the UserDefType header is added for user defined events to +; provide the user defined event name. +; +;show_user_defined=yes + +; +; RADIUS CEL Backend +; +[radius] +; +; Log date/time in GMT +;usegmtime=yes +; +; Set this to the location of the radiusclient-ng configuration file +; The default is /etc/radiusclient-ng/radiusclient.conf +;radiuscfg => /usr/local/etc/radiusclient-ng/radiusclient.conf +; diff --git a/examples/vagrant/asterisk/codecs.conf b/examples/vagrant/asterisk/codecs.conf new file mode 100644 index 00000000..ef5a2f8c --- /dev/null +++ b/examples/vagrant/asterisk/codecs.conf @@ -0,0 +1,214 @@ +[speex] +; CBR encoding quality [0..10] +; used only when vbr = false +quality => 3 + +; codec complexity [0..10] +; tradeoff between cpu/quality +complexity => 2 + +; perceptual enhancement [true / false] +; improves clarity of decoded speech +enhancement => true + +; voice activity detection [true / false] +; reduces bitrate when no voice detected, used only for CBR +; (implicit in VBR/ABR) +vad => true + +; variable bit rate [true / false] +; uses bit rate proportionate to voice complexity +vbr => true + +; available bit rate [bps, 0 = off] +; encoding quality modulated to match this target bit rate +; not recommended with dtx or pp_vad - may cause bandwidth spikes +abr => 0 + +; VBR encoding quality [0-10] +; floating-point values allowed +vbr_quality => 4 + +; discontinuous transmission [true / false] +; stops transmitting completely when silence is detected +; pp_vad is far more effective but more CPU intensive +dtx => false + +; preprocessor configuration +; these options only affect Speex v1.1.8 or newer + +; enable preprocessor [true / false] +; allows dsp functionality below but incurs CPU overhead +preprocess => false + +; preproc voice activity detection [true / false] +; more advanced equivalent of DTX, based on voice frequencies +pp_vad => false + +; preproc automatic gain control [true / false] +pp_agc => false +pp_agc_level => 8000 + +; preproc denoiser [true / false] +pp_denoise => false + +; preproc dereverb [true / false] +pp_dereverb => false +pp_dereverb_decay => 0.4 +pp_dereverb_level => 0.3 + +; experimental bitrate changes depending on RTCP feedback [true / false] +experimental_rtcp_feedback => false + + +[plc] +; for all codecs which do not support native PLC +; this determines whether to perform generic PLC +; there is a minor performance penalty for this. +; By default plc is applied only when the 2 codecs +; in a channel are different. +genericplc => true +; Apply generic plc to channels even if the 2 codecs +; are the same. This forces transcoding via slin so +; the performance impact should be considered. +; Ignored if genericplc is not also enabled. +genericplc_on_equal_codecs => false + +; Generate custom formats for formats requiring attributes. +; After defining the custom format, the name used in defining +; the format can be used throughout Asterisk in the format 'allow' +; and 'disallow' options. +; +; Example: silk8 is a predefined custom format in this config file. +; Once this config file is loaded, silk8 can be used anywhere a +; peer's codec capabilities are defined. +; +; In sip.conf 'silk8' can be defined as a capability for a peer. +; [peer1] +; type=peer +; host=dynamic +; disallow=all +; allow=silk8 ;custom codec defined in codecs.conf +; +; LIMITATIONS +; Custom formats can only be defined at startup. Any changes to this +; file made after startup will not take into effect until after Asterisk +; is restarted. +; + +; Default Custom SILK format definitions, only one custom SILK format per +; sample rate is allowed. +[silk8] +type=silk +samprate=8000 +fec=true ; turn on or off encoding with forward error correction. + ; On recommended, off by default. +packetloss_percentage=10 ; Estimated packet loss percentage in uplink direction. This + ; affects how much redundancy is built in when using fec. + ; The higher the percentage, the larger amount of bandwidth is + ; used. Default is 0%, 10% is recommended when fec is in use. + +maxbitrate=10000 ; Use the table below to make sure a useful bitrate is choosen + ; for maxbitrate. If not set or value is not within the bounds + ; of the encoder, a default value is chosen. + ; + ; sample rate | bitrate range + ; 8khz | 5000 - 20000 bps + ; 12khz | 7000 - 25000 bps + ; 16khz | 8000 - 30000 bps + ; 24khz | 20000- 40000 bps + ; +;dtx=true ; Encode using discontinuous transmission mode or not. Turning this + ; on will save bandwidth during periods of silence at the cost of + ; increased computational complexity. Off by default. + +[silk12] +type=silk +samprate=12000 +maxbitrate=12000 +fec=true +packetloss_percentage=10; + +[silk16] +type=silk +samprate=16000 +maxbitrate=20000 +fec=true +packetloss_percentage=10; + +[silk24] +type=silk +samprate=24000 +maxbitrate=30000 +fec=true +packetloss_percentage=10; + + +; Default custom CELT codec definitions. Only one custom CELT definition is allowed +; per a sample rate. +;[celt44] +;type=celt +;samprate=44100 ; The samplerate in hz. This option is required. +;framesize=480 ; The framesize option represents the duration of each frame in samples. + ; This must be a factor of 2. This option is only advertised in an SDP + ; when it is set. Otherwise a default of framesize of 480 is assumed + ; internally + +;[celt48] +;type=celt +;samprate=48000 + +;[celt32] +;type=celt +;samprate=32000 + +;============================ OPUS Section Options ============================ +; +; NOTE: Accurate documentation corresponding to your downloaded version of +; codec_opus is available from Asterisk's CLI: +; +; *CLI> config show help codec_opus opus +; +;[opus] +;type= ; Must be of type "opus" (default: "") +;packet_loss= ; Encoder's packet loss percentage. Can be any number between 0 + ; and 100, inclusive. A higher value results in more loss + ; resistance. (default: 0) +;complexity= ; Encoder's computational complexity. Can be any number between 0 + ; and 10, inclusive. Note, 10 equals the highest complexity. + ; (default: 10) +;max_bandwidth= ; Encoder's maximum bandwidth allowed. Sets an upper bandwidth + ; bound on the encoder. Can be any of the following: narrow, + ; medium, wide, super_wide, full. (default: full) +;signal= ; Encoder's signal type. Aids in mode selection on the encoder: Can + ; be any of the following: auto, voice, music. (default: auto) +;application= ; Encoder's application type. Can be any of the following: voip, + ; audio, low_delay. (default: voip) +;max_playback_rate= ; Override the maximum playback rate in the offer's SDP. + ; Any value between 8000 and 48000 (inclusive) is valid, + ; however typically it should match one of the usual opus + ; bandwidths. (default: 48000) +;bitrate= ; Override the maximum average bitrate in the offer's SDP. Any value + ; between 500 and 512000 is valid. The following values are also + ; allowed: auto, max. (default: auto) +;cbr= ; Override the constant bit rate parameter in the offer's SDP. A value of + ; 0/false/no represents a variable bit rate whereas 1/true/yes represents + ; a constant bit rate. (default: no) +;fec= ; Override the use inband fec parameter in the offer's SDP. A value of + ; 0/false/no represents disabled whereas 1/true/yes represents enabled. + ; (default: yes) +;dtx= ; Override the use dtx parameter in the offer's SDP. A value of 0/false/no + ; represents disabled whereas 1/true/yes represents enabled. (default: no) + +;=============================== OPUS Examples ================================ +; +;[opus] +;type=opus +;max_playback_rate=8000 ; Limit the maximum playback rate on the encoder +;fec=no ; No inband fec + +;[myopus] +;type=opus +;max_bandwidth=wide ; Maximum encoded bandwidth set to wide band (0-8000 Hz +; ; audio bandwidth at 16Khz sample rate) +;cbr=yes ; Negotiate a constant bit rate diff --git a/examples/vagrant/asterisk/extensions.conf b/examples/vagrant/asterisk/extensions.conf new file mode 100644 index 00000000..955dc57e --- /dev/null +++ b/examples/vagrant/asterisk/extensions.conf @@ -0,0 +1,38 @@ +[general] +static=yes +writeprotect=yes + +[default] +; empty - we dont use the defailt context + +[from-internal] +; Extensions 100, 200 & 300 +exten => _[1-3]00,1,NoOp(Dial Extension ${EXTEN}) +same => n,Dial(PJSIP/${EXTEN},10) + +; An echo test +exten => 123,1,NoOp(Echo Test) +same => n,Progress() +same => n,Wait(3) +same => n,Answer() +same => n,Playback(echo-test) +same => n,Echo() ; Do the echo test +same => n,Playback(goodbye) +same => n,Hangup() + +; Weasels Example +exten => 901,1,NoOp(Weasels Example) +same => n,Answer() +same => n,Stasis(weasels-app) +same => n,Goto(ari-${STASISSTATUS},1) + +; Comprehensive Example +exten => _90[2-3],1,NoOp(Comprehensive Example) +same => n,Answer() +same => n,Stasis(comprehensive-app) +same => n,Goto(ari-${STASISSTATUS},1) + +; ARI Success / Failure +exten => ari-SUCCESS,1,Hangup() +exten => ari-FAILED,1,Playback(sorrydave) +exten => ari-FAILED,2,Hangup() diff --git a/examples/vagrant/asterisk/features.conf b/examples/vagrant/asterisk/features.conf new file mode 100644 index 00000000..223d6935 --- /dev/null +++ b/examples/vagrant/asterisk/features.conf @@ -0,0 +1,122 @@ +; +; Sample Call Features (transfer, monitor/mixmonitor, etc) configuration +; + +; Note: From Asterisk 12 - All parking lot configuration is now done in res_parking.conf + +[general] +;transferdigittimeout => 3 ; Number of seconds to wait between digits when transferring a call + ; (default is 3 seconds) +;xfersound = beep ; to indicate an attended transfer is complete +;xferfailsound = beeperr ; to indicate a failed transfer +;pickupexten = *8 ; Configure the pickup extension. (default is *8) +;pickupsound = beep ; to indicate a successful pickup (default: no sound) +;pickupfailsound = beeperr ; to indicate that the pickup failed (default: no sound) +;featuredigittimeout = 1000 ; Max time (ms) between digits for + ; feature activation (default is 1000 ms) +;recordingfailsound = beeperr ; indicates that a one-touch monitor or one-touch mixmonitor feature failed + ; to be applied to the call. (default: no sound) +;atxfernoanswertimeout = 15 ; Timeout for answer on attended transfer default is 15 seconds. +;atxferdropcall = no ; If someone does an attended transfer, then hangs up before the transfer + ; target answers, then by default, the system will try to call back the + ; person that did the transfer. If this is set to "yes", the ringing + ; transfer target is immediately transferred to the transferee. +;atxferloopdelay = 10 ; Number of seconds to sleep between retries (if atxferdropcall = no) +;atxfercallbackretries = 2 ; Number of times to attempt to send the call back to the transferer. + ; By default, this is 2. +;transferdialattempts = 3 ; Number of times that a transferer may attempt to dial an extension before + ; being kicked back to the original call. +;transferretrysound = "beep" ; Sound to play when a transferer fails to dial a valid extension. +;transferinvalidsound = "beeperr" ; Sound to play when a transferer fails to dial a valid extension and is out of retries. +;atxferabort = *1 ; cancel the attended transfer +;atxfercomplete = *2 ; complete the attended transfer, dropping out of the call +;atxferthreeway = *3 ; complete the attended transfer, but stay in the call. This will turn the call into a multi-party bridge +;atxferswap = *4 ; swap to the other party. Once an attended transfer has begun, this options may be used multiple times + +; Note that the DTMF features listed below only work when two channels have answered and are bridged together. +; They can not be used while the remote party is ringing or in progress. If you require this feature you can use +; chan_local in combination with Answer to accomplish it. + +[featuremap] +;blindxfer => #1 ; Blind transfer (default is #) -- Make sure to set the T and/or t option in the Dial() or Queue() app call! +;disconnect => *0 ; Disconnect (default is *) -- Make sure to set the H and/or h option in the Dial() or Queue() app call! +;automon => *1 ; One Touch Record a.k.a. Touch Monitor -- Make sure to set the W and/or w option in the Dial() or Queue() app call! +;atxfer => *2 ; Attended transfer -- Make sure to set the T and/or t option in the Dial() or Queue() app call! +;parkcall => #72 ; Park call (one step parking) -- Make sure to set the K and/or k option in the Dial() app call! +;automixmon => *3 ; One Touch Record a.k.a. Touch MixMonitor -- Make sure to set the X and/or x option in the Dial() or Queue() app call! + +[applicationmap] +; Note that the DYNAMIC_FEATURES channel variable must be set to use the features +; defined here. The value of DYNAMIC_FEATURES should be the names of the features +; to allow the channel to use separated by '#'. For example: +; +; Set(__DYNAMIC_FEATURES=myfeature1#myfeature2#myfeature3) +; +; (Note: The two leading underscores allow these feature settings to be set +; on the outbound channels, as well. Otherwise, only the original channel +; will have access to these features.) +; +; The syntax for declaring a dynamic feature is any of the following: +; +; => ,[/],[,[,MOH_Class]] +; => ,[/],[,""[,MOH_Class]] +; => ,[/],([])[,MOH_Class] + +; +; FeatureName -> This is the name of the feature used when setting the +; DYNAMIC_FEATURES variable to enable usage of this feature. +; DTMF_sequence -> This is the key sequence used to activate this feature. +; ActivateOn -> This is the channel of the call that the application will be executed +; on. Valid values are "self" and "peer". "self" means run the +; application on the same channel that activated the feature. "peer" +; means run the application on the opposite channel from the one that +; has activated the feature. +; ActivatedBy -> ActivatedBy is no longer honored. The feature is activated by which +; channel DYNAMIC_FEATURES includes the feature is on. Use predial +; to set different values of DYNAMIC_FEATURES on the channels. +; Historic values are: "caller", "callee", and "both". +; Application -> This is the application to execute. +; AppArguments -> These are the arguments to be passed into the application. If you need +; commas in your arguments, you should use either the second or third +; syntax, above. +; MOH_Class -> This is the music on hold class to play while the idle +; channel waits for the feature to complete. If left blank, +; no music will be played. +; + +; +; IMPORTANT NOTE: The applicationmap is not intended to be used for all Asterisk +; applications. When applications are used in extensions.conf, they are executed +; by the PBX core. In this case, these applications are executed outside of the +; PBX core, so it does *not* make sense to use any application which has any +; concept of dialplan flow. Examples of this would be things like Goto, +; Background, WaitExten, and many more. The exceptions to this are Gosub and +; Macro routines which must complete for the call to continue. +; +; Enabling these features means that the PBX needs to stay in the media flow and +; media will not be re-directed if DTMF is sent in the media stream. +; +; Example Usage: +; +;testfeature => #9,peer,Playback,tt-monkeys ;Allow both the caller and callee to play +; ;tt-monkeys to the opposite channel +; +; Set arbitrary channel variables, based upon CALLERID number (Note that the application +; argument contains commas) +;retrieveinfo => #8,peer,Set(ARRAY(CDR(mark),CDR(name))=${ODBC_FOO(${CALLERID(num)})}) +; +;pauseMonitor => #1,self/callee,Pausemonitor ;Allow the callee to pause monitoring +; ;on their channel +;unpauseMonitor => #3,self/callee,UnPauseMonitor ;Allow the callee to unpause monitoring +; ;on their channel + +; Dynamic Feature Groups: +; Dynamic feature groups are groupings of features defined in [applicationmap] +; that can have their own custom key mappings. To give a channel access to a dynamic +; feature group, add the group name to the value of the DYNAMIC_FEATURES variable. +; +; example: +; [myGroupName] ; defines the group named myGroupName +; testfeature => #9 ; associates testfeature with the group and the keycode '#9'. +; pauseMonitor => ; associates pauseMonitor with the group and uses the keycode specified +; ; in the [applicationmap]. diff --git a/examples/vagrant/asterisk/http.conf b/examples/vagrant/asterisk/http.conf new file mode 100644 index 00000000..87e2d8af --- /dev/null +++ b/examples/vagrant/asterisk/http.conf @@ -0,0 +1,10 @@ +[general] +enabled = yes +bindaddr = 0.0.0.0 +bindport = 8088 +enablestatic = yes +tlsenable = yes +;tlsbindaddr=0.0.0.0:8089 +tlscertfile = /etc/asterisk/keys/asterisk.crt +tlsprivatekey = /etc/asterisk/keys/asterisk.key +redirect = / /static/ari4java-phone.html diff --git a/examples/vagrant/asterisk/iax.conf b/examples/vagrant/asterisk/iax.conf new file mode 100644 index 00000000..e8209889 --- /dev/null +++ b/examples/vagrant/asterisk/iax.conf @@ -0,0 +1,6 @@ +[general] +disallow=all +allow=g729 +allow=g722 +jitterbuffer=no +autokill=yes diff --git a/examples/vagrant/asterisk/logger.conf b/examples/vagrant/asterisk/logger.conf new file mode 100644 index 00000000..b0492238 --- /dev/null +++ b/examples/vagrant/asterisk/logger.conf @@ -0,0 +1,10 @@ +[general] +dateformat = %F %T.%3q +use_callids = yes +appendhostname = no + +[logfiles] +console = verbose,notice,warning,error +full = verbose,notice,warning,error,debug +;messages = notice,warning,error +;security = security \ No newline at end of file diff --git a/examples/vagrant/asterisk/manager.conf b/examples/vagrant/asterisk/manager.conf new file mode 100644 index 00000000..39e9373d --- /dev/null +++ b/examples/vagrant/asterisk/manager.conf @@ -0,0 +1,14 @@ +[general] +enabled = yes +port = 5038 +bindaddr = 0.0.0.0 +webenabled = no + +[dialer] +secret = asterisk +deny=0.0.0.0/0.0.0.0 +permit=127.0.0.1/255.255.255.0 +;system,call,log,verbose,command,agent,user,config,dtmf,reporting,cdr,dialplan,originate +read = command,originate +write = command,originate +writetimeout = 100 diff --git a/examples/vagrant/asterisk/modules.conf b/examples/vagrant/asterisk/modules.conf new file mode 100644 index 00000000..f131e277 --- /dev/null +++ b/examples/vagrant/asterisk/modules.conf @@ -0,0 +1,163 @@ +[modules] +autoload = no + +; This is a minimal module load. We are loading only the modules required for +; the Asterisk features used in the Super Awesome Company configuration. + +; Applications + +load = app_bridgewait.so +load = app_dial.so +load = app_record.so +load = app_playback.so +load = app_playtones.so +load = app_stack.so +load = app_verbose.so +load = app_exec.so +load = app_echo.so +load = app_mp3.so + +; Bridging + +load = bridge_builtin_features.so +load = bridge_builtin_interval_features.so +load = bridge_holding.so +load = bridge_native_rtp.so +load = bridge_simple.so +load = bridge_softmix.so + +; Call Detail Records + +load = cdr_csv.so + +; Channel Drivers + +load = chan_bridge_media.so +load = chan_pjsip.so +load = chan_iax2.so + +; Codecs + +load = codec_gsm.so +load = codec_resample.so +load = codec_ulaw.so +load = codec_alaw.so +load = codec_g722.so +load = codec_g729a.so +load = codec_opus.so + +; Formats + +load = format_gsm.so +load = format_pcm.so +load = format_wav_gsm.so +load = format_wav.so +load = format_g729.so +load = res_format_attr_g729.so +load = format_ogg_opus.so +load = res_format_attr_opus.so +load = format_mp3.so + +; Functions + +load = func_callerid.so +load = func_cdr.so +load = func_pjsip_aor.so +load = func_pjsip_contact.so +load = func_pjsip_endpoint.so +load = func_sorcery.so +load = func_devstate.so +load = func_strings.so +load = func_base64.so +load = func_aes.so +load = func_md5.so +load = func_sha1.so +load = func_channel.so +load = func_timeout.so + +; Core/PBX + +load = pbx_config.so + +; Resources + +load = res_curl.so +load = res_musiconhold.so +load = res_pjproject.so +load = res_pjsip_acl.so +load = res_pjsip_authenticator_digest.so +load = res_pjsip_caller_id.so +load = res_pjsip_config_wizard.so +load = res_pjsip_dialog_info_body_generator.so +load = res_pjsip_diversion.so +load = res_pjsip_dlg_options.so +load = res_pjsip_dtmf_info.so +load = res_pjsip_empty_info.so +load = res_pjsip_endpoint_identifier_anonymous.so +load = res_pjsip_endpoint_identifier_ip.so +load = res_pjsip_endpoint_identifier_user.so +load = res_pjsip_exten_state.so +load = res_pjsip_header_funcs.so +load = res_pjsip_history.so +load = res_pjsip_logger.so +load = res_pjsip_messaging.so +load = res_pjsip_mwi_body_generator.so +load = res_pjsip_mwi.so +load = res_pjsip_nat.so +load = res_pjsip_notify.so +load = res_pjsip_one_touch_record_info.so +load = res_pjsip_outbound_authenticator_digest.so +load = res_pjsip_outbound_publish.so +load = res_pjsip_outbound_registration.so +load = res_pjsip_path.so +load = res_pjsip_pidf_body_generator.so +load = res_pjsip_pidf_digium_body_supplement.so +load = res_pjsip_pidf_eyebeam_body_supplement.so +load = res_pjsip_publish_asterisk.so +load = res_pjsip_pubsub.so +load = res_pjsip_refer.so +load = res_pjsip_registrar.so +load = res_pjsip_rfc3326.so +load = res_pjsip_sdp_rtp.so +load = res_pjsip_send_to_voicemail.so +load = res_pjsip_session.so +load = res_pjsip_sips_contact.so +load = res_pjsip.so +load = res_pjsip_t38.so +load = res_pjsip_transport_websocket.so +load = res_pjsip_xpidf_body_generator.so +load = res_hep_pjsip.so +load = res_pjsip_phoneprov_provider.so +load = res_rtp_asterisk.so +load = res_rtp_multicast.so +load = res_sorcery_astdb.so +load = res_sorcery_config.so +load = res_sorcery_memory.so +load = res_sorcery_realtime.so +load = res_timing_timerfd.so +load = res_http_media_cache.so +load = res_http_websocket.so +load = res_crypto.so +load = res_srtp.so + +; Stasis (ARI) + +load = app_stasis.so +load = res_stasis.so +load = res_stasis_answer.so +load = res_stasis_device_state.so +load = res_stasis_playback.so +load = res_stasis_recording.so +load = res_stasis_snoop.so +load = res_ari.so +load = res_ari_applications.so +load = res_ari_asterisk.so +load = res_ari_bridges.so +load = res_ari_channels.so +load = res_ari_device_states.so +load = res_ari_endpoints.so +load = res_ari_events.so +load = res_ari_model.so +load = res_ari_playbacks.so +load = res_ari_recordings.so +load = res_ari_sounds.so diff --git a/examples/vagrant/asterisk/pjproject.conf b/examples/vagrant/asterisk/pjproject.conf new file mode 100644 index 00000000..97af7345 --- /dev/null +++ b/examples/vagrant/asterisk/pjproject.conf @@ -0,0 +1,28 @@ +; Common pjproject options +; + +;========================LOG_MAPPINGS SECTION OPTIONS=============================== +;[log_mappings] +; SYNOPSIS: Provides pjproject to Asterisk log level mappings. +; NOTES: The name of this section in the pjproject.conf configuration file must +; remain log_mappings or the configuration will not be applied. +; The defaults mentioned below only apply if this file or the 'log_mappings' +; object can'tbe found. If the object is found, there are no defaults. If +; you don't specify an entry, nothing will be logged for that level. +; +;asterisk_error = ; A comma separated list of pjproject log levels to map to + ; Asterisk errors. + ; (default: "0,1") +;asterisk_warning = ; A comma separated list of pjproject log levels to map to + ; Asterisk warnings. + ; (default: "2") +;asterisk_notice = ; A comma separated list of pjproject log levels to map to + ; Asterisk notices. + ; (default: "") +;asterisk_verbose = ; A comma separated list of pjproject log levels to map to + ; Asterisk verbose. + ; (default: "") +;asterisk_debug = ; A comma separated list of pjproject log levels to map to + ; Asterisk debug + ; (default: "3,4,5") +;type= ; Must be of type log_mappings (default: "") diff --git a/examples/vagrant/asterisk/pjsip.conf b/examples/vagrant/asterisk/pjsip.conf new file mode 100644 index 00000000..9e33284f --- /dev/null +++ b/examples/vagrant/asterisk/pjsip.conf @@ -0,0 +1,12 @@ +;========== TRANSPORTS ========== + +; Our primary transport definition for UDP +[transport-udp] +type = transport +protocol = udp +bind = 0.0.0.0 + +[transport-wss] +type=transport +protocol=wss +bind=0.0.0.0 diff --git a/examples/vagrant/asterisk/pjsip_wizard.conf b/examples/vagrant/asterisk/pjsip_wizard.conf new file mode 100644 index 00000000..04726844 --- /dev/null +++ b/examples/vagrant/asterisk/pjsip_wizard.conf @@ -0,0 +1,55 @@ +; Default Template for hard phones +[phone-defaults](!) +type = wizard +transport = transport-udp +accepts_registrations = yes +sends_registrations = no +accepts_auth = yes +sends_auth = no +endpoint/allow_subscribe = yes +endpoint/allow = !all,g722,g729,alaw +endpoint/direct_media = no +endpoint/force_rport = yes +endpoint/disable_direct_media_on_nat = yes +endpoint/direct_media_method = invite +endpoint/ice_support = yes +endpoint/moh_suggest = default +endpoint/send_rpid = yes +endpoint/rewrite_contact = yes +endpoint/send_pai = yes +endpoint/allow_transfer = yes +endpoint/device_state_busy_at = 1 +aor/qualify_frequency = 30 +aor/authenticate_qualify = no +aor/max_contacts = 1 +aor/remove_existing = yes +aor/minimum_expiration = 30 +aor/support_path = yes + +; Default Template for web phones +[web-phone-defaults](!,phone-defaults) +transport = transport-wss +endpoint/allow = !all,opus,g722,alaw +endpoint/webrtc = yes +endpoint/rtp_symmetric = yes +endpoint/dtls_auto_generate_cert = yes +endpoint/device_state_busy_at = 1 + +; User Extensions using the templates definded above +[100](web-phone-defaults) +inbound_auth/username = 100 +inbound_auth/password = abc123 +endpoint/context = from-internal +endpoint/callerid = Extn 100 <100> + +[200](web-phone-defaults) +inbound_auth/username = 200 +inbound_auth/password = abc123 +endpoint/context = from-internal +endpoint/callerid = Extn 200 <200> + +[300](web-phone-defaults) +inbound_auth/username = 300 +inbound_auth/password = abc123 +endpoint/context = from-internal +endpoint/callerid = Extn 300 <300> diff --git a/examples/vagrant/asterisk/udptl.conf b/examples/vagrant/asterisk/udptl.conf new file mode 100644 index 00000000..1d635da5 --- /dev/null +++ b/examples/vagrant/asterisk/udptl.conf @@ -0,0 +1,26 @@ +; +; UDPTL Configuration (UDPTL is one of the transports for T.38) +; +[general] +; +; UDPTL start and UDPTL end configure start and end addresses +; +udptlstart=4000 +udptlend=4999 +; +; Whether to enable or disable UDP checksums on UDPTL traffic +; +;udptlchecksums=no +; +; The number of error correction entries in a UDPTL packet +; +udptlfecentries = 3 +; +; The span over which parity is calculated for FEC in a UDPTL packet +; +udptlfecspan = 3 +; +; Some VoIP providers will only accept an offer with an even-numbered +; UDPTL port. Set this option so that Asterisk will only attempt to use +; even-numbered ports when negotiating T.38. Default is no. +use_even_ports = no diff --git a/examples/vagrant/scripts/asterisk.service b/examples/vagrant/scripts/asterisk.service new file mode 100644 index 00000000..ff2546f3 --- /dev/null +++ b/examples/vagrant/scripts/asterisk.service @@ -0,0 +1,20 @@ +[Unit] +Description=Asterisk PBX And Telephony Daemon +After=network.target + +[Service] +User=asterisk +Group=asterisk +PermissionsStartOnly=true +ExecStartPre=-/bin/mkdir -p /var/run/asterisk +ExecStartPre=/bin/chown -R asterisk:asterisk /var/run/asterisk/ +Environment=HOME=/var/lib/asterisk +WorkingDirectory=/var/lib/asterisk +ExecStart=/usr/sbin/asterisk -vvvd -f -C /etc/asterisk/asterisk.conf +ExecStop=/usr/sbin/asterisk -rx 'core stop now' +ExecReload=/usr/sbin/asterisk -rx 'core reload' +PIDFile=/var/run/asterisk/asterisk.pid +Restart=always + +[Install] +WantedBy=multi-user.target diff --git a/examples/vagrant/scripts/provision.sh b/examples/vagrant/scripts/provision.sh new file mode 100755 index 00000000..de377e1c --- /dev/null +++ b/examples/vagrant/scripts/provision.sh @@ -0,0 +1,91 @@ +#!/usr/bin/env bash + +# Hostname +echo "Updating Hostname ..." +sed -i 's/^ubuntu-focal$/localpbx/g' /etc/hostname +sed -i 's/ubuntu-focal$/localpbx/g' /etc/hosts +systemctl restart systemd-logind.service +hostnamectl set-hostname localpbx + +# get the latest packages and upgrade them +echo "Updating System ..." +apt update +apt -y upgrade + +# install some pre-requisites (mostly for Asterisk) +echo "Installing pre-requisites ..." +apt -y install \ + wget \ + unzip \ + subversion \ + build-essential \ + openssl \ + pkg-config \ + libssl-dev \ + libcurl4-openssl-dev \ + libgsm1-dev \ + libnewt-dev \ + libxml2-dev \ + libsqlite3-dev \ + uuid-dev \ + libjansson-dev \ + libncurses5-dev \ + libedit-dev \ + xmlstarlet \ + libsrtp2-dev \ + zlib1g-dev \ + mpg123 \ + subversion \ + tcl \ + sox \ + lame + +# create user & folders for Asterisk +echo "Creating asterisk user and required folders ..." +adduser --system --group --no-create-home asterisk +mkdir -p /var/{lib,log,spool}/asterisk + +# goto home folder, download and build Asterisk using the version specified in AST_VER +AST_VER=18.9.0 +echo "Download, compile & setup Asterisk $AST_VER ..." +cd ~ +wget http://downloads.asterisk.org/pub/telephony/asterisk/releases/asterisk-$AST_VER.tar.gz +tar xvfz asterisk-$AST_VER.tar.gz +cd asterisk-$AST_VER/ +contrib/scripts/get_mp3_source.sh +./configure --with-pjproject-bundled --with-jansson-bundled +make menuselect.makeopts && menuselect/menuselect \ +--enable codec_opus \ +--enable codec_g729a \ +--enable EXTRA-SOUNDS-EN-G722 \ +--enable EXTRA-SOUNDS-EN-WAV \ +--enable format_mp3 \ +--disable chan_sip \ +--disable BUILD_NATIVE \ +menuselect.makeopts +make +make install +#make sure the asterisk user owns its folders +chown -R asterisk:asterisk /var/{lib,log,spool}/asterisk +# copy config & http content +cp -f /vagrant/asterisk/* /etc/asterisk/ +cp -f /vagrant/static-http/* /var/lib/asterisk/static-http/ + +# create keys for TLS +echo "Creating TLS keys ..." +mkdir -p /etc/asterisk/keys +openssl genrsa -des3 -out /etc/asterisk/keys/ca.key -passout pass:asterisk 4096 > /dev/null +openssl req -batch -new -x509 -days 3650 -subj "/O=ARI4Java/CN=ARI4Java CA" -key /etc/asterisk/keys/ca.key -passin pass:asterisk -out /etc/asterisk/keys/ca.crt > /dev/null +openssl genrsa -out /etc/asterisk/keys/asterisk.key 2048 > /dev/null +openssl req -batch -new -subj "/O=ARI4Java/CN=192.168.56.44" -key /etc/asterisk/keys/asterisk.key -out /etc/asterisk/keys/asterisk.csr > /dev/null +openssl x509 -req -days 3650 -in /etc/asterisk/keys/asterisk.csr -CA /etc/asterisk/keys/ca.crt -CAkey /etc/asterisk/keys/ca.key -passin pass:asterisk -set_serial 01 -out /etc/asterisk/keys/asterisk.crt > /dev/null +chown -R asterisk:asterisk /etc/asterisk/keys + +# add to systemd & start +echo "Setup & Start Asterisk Service" +cp /vagrant/scripts/asterisk.service /etc/systemd/system/ +systemctl daemon-reload +systemctl enable asterisk.service +systemctl start asterisk.service + +echo "Provisioning Complete!" diff --git a/examples/vagrant/static-http/ari4java-phone.html b/examples/vagrant/static-http/ari4java-phone.html new file mode 100644 index 00000000..a31910c2 --- /dev/null +++ b/examples/vagrant/static-http/ari4java-phone.html @@ -0,0 +1,417 @@ + + + + ARI4Java Phone + + + + + + + + +
+
+
+

ARI4Java Phone

+
+
+
+
+
+
+ Web Phone  +
+
+ + +
+ +
+
+ + +
+
+ +
+
+
+ +
+ + + \ No newline at end of file diff --git a/examples/vagrant/static-http/bootstrap-nightfall.min.css b/examples/vagrant/static-http/bootstrap-nightfall.min.css new file mode 100644 index 00000000..2a41c634 --- /dev/null +++ b/examples/vagrant/static-http/bootstrap-nightfall.min.css @@ -0,0 +1,11 @@ +/*! + * Bootstrap v5.1.3 (https://getbootstrap.com/) + * Copyright 2011-2021 The Bootstrap Authors + * Copyright 2011-2021 Twitter, Inc. + * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE) + * + * Bootstrap-Nightfall v1.1.3 (https://vinorodrigues.github.io/bootstrap-dark-5/) + * Copyright 2020-2021 Vino Rodrigues + * This version is an extraction with only the dark elements, or deltas, of the + * dark theme. Used as a bootstrap plugin. + */:root{color-scheme:dark}:root{--bs-blue:#375a7f;--bs-indigo:#673ab7;--bs-purple:#654ea3;--bs-pink:#e83e8c;--bs-red:#e74c3c;--bs-orange:#fd7e14;--bs-yellow:#f39c12;--bs-green:#00bc8c;--bs-teal:#45b5aa;--bs-cyan:#17a2b8;--bs-white:#fafafa;--bs-black:#111;--bs-gray:#7e7e7e;--bs-gray-dark:#121212;--bs-gray-100:#e1e1e1;--bs-gray-200:#cfcfcf;--bs-gray-300:#b1b1b1;--bs-gray-400:#9e9e9e;--bs-gray-500:#7e7e7e;--bs-gray-600:#626262;--bs-gray-700:#515151;--bs-gray-800:#3b3b3b;--bs-gray-900:#222;--bs-primary:#375a7f;--bs-secondary:#626262;--bs-success:#00bc8c;--bs-info:#17a2b8;--bs-warning:#f39c12;--bs-danger:#e74c3c;--bs-light:#9e9e9e;--bs-dark:#3b3b3b;--bs-primary-rgb:55,90,127;--bs-secondary-rgb:98,98,98;--bs-success-rgb:0,188,140;--bs-info-rgb:23,162,184;--bs-warning-rgb:243,156,18;--bs-danger-rgb:231,76,60;--bs-light-rgb:158,158,158;--bs-dark-rgb:59,59,59;--bs-white-rgb:250,250,250;--bs-black-rgb:17,17,17;--bs-body-color-rgb:225,225,225;--bs-body-bg-rgb:34,34,34;--bs-body-color:#e1e1e1;--bs-body-bg:#222;--bs-gradient:linear-gradient(180deg, rgba(17, 17, 17, 0.15), rgba(17, 17, 17, 0))}hr{color:#fafafa;background-color:currentColor;opacity:.1}mark{background-color:rgba(243,156,18,.5)}a{color:#557392}a:hover{color:#778fa8}a:not([href]):not([class]),a:not([href]):not([class]):hover{color:inherit}pre{color:#e1e1e1}pre code{color:inherit}code{color:#45b5aa}a>code{color:inherit}kbd{color:#e1e1e1;background-color:#3b3b3b}caption{color:#9e9e9e}.blockquote-footer{color:#626262}.img-thumbnail{background-color:#222;border:1px solid #515151}.figure-caption{color:#9e9e9e}.table{--bs-table-bg:transparent;--bs-table-accent-bg:transparent;--bs-table-striped-color:#e1e1e1;--bs-table-striped-bg:rgba(250, 250, 250, 0.05);--bs-table-active-color:#e1e1e1;--bs-table-active-bg:rgba(250, 250, 250, 0.1);--bs-table-hover-color:#e1e1e1;--bs-table-hover-bg:rgba(250, 250, 250, 0.075);color:#e1e1e1;border-color:#515151}.table>:not(:first-child){border-top:2px solid currentColor}.table-primary{--bs-table-bg:#1c2d40;--bs-table-striped-bg:#27384a;--bs-table-striped-color:#fff;--bs-table-active-bg:#334253;--bs-table-active-color:#fff;--bs-table-hover-bg:#2d3d4e;--bs-table-hover-color:#fff;color:#fff;border-color:#334253}.table-secondary{--bs-table-bg:#313131;--bs-table-striped-bg:#3b3b3b;--bs-table-striped-color:#fff;--bs-table-active-bg:#464646;--bs-table-active-color:#fff;--bs-table-hover-bg:#404040;--bs-table-hover-color:#fff;color:#fff;border-color:#464646}.table-success{--bs-table-bg:#005e46;--bs-table-striped-bg:#0d664f;--bs-table-striped-color:#fff;--bs-table-active-bg:#1a6e59;--bs-table-active-color:#fff;--bs-table-hover-bg:#136a54;--bs-table-hover-color:#fff;color:#fff;border-color:#1a6e59}.table-info{--bs-table-bg:#0c515c;--bs-table-striped-bg:#185a64;--bs-table-striped-color:#fff;--bs-table-active-bg:#24626c;--bs-table-active-color:#fff;--bs-table-hover-bg:#1e5e68;--bs-table-hover-color:#fff;color:#fff;border-color:#24626c}.table-warning{--bs-table-bg:#7a4e09;--bs-table-striped-bg:#815715;--bs-table-striped-color:#fff;--bs-table-active-bg:#876022;--bs-table-active-color:#fff;--bs-table-hover-bg:#845b1b;--bs-table-hover-color:#fff;color:#fff;border-color:#876022}.table-danger{--bs-table-bg:#74261e;--bs-table-striped-bg:#7b3129;--bs-table-striped-color:#fff;--bs-table-active-bg:#823c35;--bs-table-active-color:#fff;--bs-table-hover-bg:#7e362f;--bs-table-hover-color:#fff;color:#fff;border-color:#823c35}.table-light{--bs-table-bg:#9e9e9e;--bs-table-striped-bg:#969696;--bs-table-striped-color:#000;--bs-table-active-bg:#8e8e8e;--bs-table-active-color:#000;--bs-table-hover-bg:#929292;--bs-table-hover-color:#000;color:#000;border-color:#8e8e8e}.table-dark{--bs-table-bg:#3b3b3b;--bs-table-striped-bg:#454545;--bs-table-striped-color:#fff;--bs-table-active-bg:#4f4f4f;--bs-table-active-color:#fff;--bs-table-hover-bg:#4a4a4a;--bs-table-hover-color:#fff;color:#fff;border-color:#4f4f4f}.form-text{color:#9e9e9e}.form-control{color:#b1b1b1;background-color:#222;border:1px solid #515151}.form-control:focus{color:#b1b1b1;background-color:#222;border-color:#9badbf;box-shadow:0 0 0 .25rem rgba(55,90,127,.25)}.form-control::-moz-placeholder{color:#5a5a5a}.form-control:-ms-input-placeholder{color:#5a5a5a}.form-control::placeholder{color:#5a5a5a}.form-control:disabled,.form-control[readonly]{background-color:#222}.form-control::-webkit-file-upload-button{color:#b1b1b1;background-color:#3b3b3b;border-color:inherit}.form-control::file-selector-button{color:#b1b1b1;background-color:#3b3b3b;border-color:inherit}.form-control:hover:not(:disabled):not([readonly])::-webkit-file-upload-button{background-color:#383838}.form-control:hover:not(:disabled):not([readonly])::file-selector-button{background-color:#383838}.form-control::-webkit-file-upload-button{color:#b1b1b1;background-color:#3b3b3b;border-color:inherit}.form-control:hover:not(:disabled):not([readonly])::-webkit-file-upload-button{background-color:#383838}.form-control-plaintext{color:#e1e1e1;background-color:transparent;border:solid transparent}.form-select{color:#b1b1b1;background-color:#222;background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3e%3cpath fill='none' stroke='%23cfcfcf' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='M2 5l6 6 6-6'/%3e%3c/svg%3e");border:1px solid #515151}.form-select:focus{border-color:#9badbf;box-shadow:0 0 0 .25rem rgba(55,90,127,.25)}.form-select[multiple],.form-select[size]:not([size="1"]){background-image:none}.form-select:disabled{background-color:#3b3b3b}.form-select:-moz-focusring{color:transparent;text-shadow:0 0 0 #b1b1b1}.form-check-input{background-color:#222;border:1px solid rgba(255,255,255,.25)}.form-check-input:active{filter:brightness(90%)}.form-check-input:focus{border-color:#9badbf;box-shadow:0 0 0 .25rem rgba(55,90,127,.25)}.form-check-input:checked{background-color:#375a7f;border-color:#375a7f}.form-check-input:checked[type=checkbox]{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3e%3cpath fill='none' stroke='%23fafafa' stroke-linecap='round' stroke-linejoin='round' stroke-width='3' d='M6 10l3 3l6-6'/%3e%3c/svg%3e")}.form-check-input:checked[type=radio]{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3e%3ccircle r='2' fill='%23fafafa'/%3e%3c/svg%3e")}.form-check-input[type=checkbox]:indeterminate{background-color:#375a7f;border-color:#375a7f;background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3e%3cpath fill='none' stroke='%23fafafa' stroke-linecap='round' stroke-linejoin='round' stroke-width='3' d='M6 10h8'/%3e%3c/svg%3e")}.form-check-input:disabled{opacity:.5}.form-check-input:disabled~.form-check-label,.form-check-input[disabled]~.form-check-label{opacity:.5}.form-switch .form-check-input{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3e%3ccircle r='3' fill='rgba%28250, 250, 250, 0.25%29'/%3e%3c/svg%3e")}.form-switch .form-check-input:focus{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3e%3ccircle r='3' fill='%239badbf'/%3e%3c/svg%3e")}.form-switch .form-check-input:checked{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3e%3ccircle r='3' fill='%23fafafa'/%3e%3c/svg%3e")}.btn-check:disabled+.btn,.btn-check[disabled]+.btn{opacity:.65}.form-range:focus::-webkit-slider-thumb{box-shadow:0 0 0 1px #222,0 0 0 .25rem rgba(55,90,127,.25)}.form-range:focus::-moz-range-thumb{box-shadow:0 0 0 1px #222,0 0 0 .25rem rgba(55,90,127,.25)}.form-range::-webkit-slider-thumb{background-color:#375a7f;border:0}.form-range::-webkit-slider-thumb:active{background-color:#c3ced9}.form-range::-webkit-slider-runnable-track{background-color:#515151}.form-range::-moz-range-thumb{background-color:#375a7f;border:0}.form-range::-moz-range-thumb:active{background-color:#c3ced9}.form-range::-moz-range-track{background-color:#515151}.form-range:disabled{pointer-events:none}.form-range:disabled::-webkit-slider-thumb{background-color:#7e7e7e}.form-range:disabled::-moz-range-thumb{background-color:#7e7e7e}.form-floating>.form-control::-moz-placeholder{color:transparent}.form-floating>.form-control:-ms-input-placeholder{color:transparent}.form-floating>.form-control::placeholder{color:transparent}.form-floating>.form-control:not(:-moz-placeholder-shown)~label{opacity:.65}.form-floating>.form-control:not(:-ms-input-placeholder)~label{opacity:.65}.form-floating>.form-control:focus~label,.form-floating>.form-control:not(:placeholder-shown)~label,.form-floating>.form-select~label{opacity:.65}.form-floating>.form-control:-webkit-autofill~label{opacity:.65}.input-group-text{color:#b1b1b1;background-color:#3b3b3b;border:1px solid #515151}.valid-feedback{color:#00bc8c}.valid-tooltip{color:#111;background-color:rgba(0,188,140,.9)}.form-control.is-valid,.was-validated .form-control:valid{border-color:#00bc8c;background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3e%3cpath fill='%2300bc8c' d='M2.3 6.73L.6 4.53c-.4-1.04.46-1.4 1.1-.8l1.1 1.4 3.4-3.8c.6-.63 1.6-.27 1.2.7l-4 4.6c-.43.5-.8.4-1.1.1z'/%3e%3c/svg%3e")}.form-control.is-valid:focus,.was-validated .form-control:valid:focus{border-color:#00bc8c;box-shadow:0 0 0 .25rem rgba(0,188,140,.25)}.form-select.is-valid,.was-validated .form-select:valid{border-color:#00bc8c}.form-select.is-valid:not([multiple]):not([size]),.form-select.is-valid:not([multiple])[size="1"],.was-validated .form-select:valid:not([multiple]):not([size]),.was-validated .form-select:valid:not([multiple])[size="1"]{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3e%3cpath fill='none' stroke='%23cfcfcf' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='M2 5l6 6 6-6'/%3e%3c/svg%3e"),url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3e%3cpath fill='%2300bc8c' d='M2.3 6.73L.6 4.53c-.4-1.04.46-1.4 1.1-.8l1.1 1.4 3.4-3.8c.6-.63 1.6-.27 1.2.7l-4 4.6c-.43.5-.8.4-1.1.1z'/%3e%3c/svg%3e")}.form-select.is-valid[multiple],.form-select.is-valid[size]:not([size="1"]),.was-validated .form-select:valid[multiple],.was-validated .form-select:valid[size]:not([size="1"]){background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3e%3cpath fill='%2300bc8c' d='M2.3 6.73L.6 4.53c-.4-1.04.46-1.4 1.1-.8l1.1 1.4 3.4-3.8c.6-.63 1.6-.27 1.2.7l-4 4.6c-.43.5-.8.4-1.1.1z'/%3e%3c/svg%3e")}.form-select.is-valid:focus,.was-validated .form-select:valid:focus{border-color:#00bc8c;box-shadow:0 0 0 .25rem rgba(0,188,140,.25)}.form-check-input.is-valid,.was-validated .form-check-input:valid{border-color:#00bc8c}.form-check-input.is-valid:checked,.was-validated .form-check-input:valid:checked{background-color:#00bc8c}.form-check-input.is-valid:focus,.was-validated .form-check-input:valid:focus{box-shadow:0 0 0 .25rem rgba(0,188,140,.25)}.form-check-input.is-valid~.form-check-label,.was-validated .form-check-input:valid~.form-check-label{color:#00bc8c}.invalid-feedback{color:#e74c3c}.invalid-tooltip{color:#fafafa;background-color:rgba(231,76,60,.9)}.form-control.is-invalid,.was-validated .form-control:invalid{border-color:#e74c3c;background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12' width='12' height='12' fill='none' stroke='%23e74c3c'%3e%3ccircle cx='6' cy='6' r='4.5'/%3e%3cpath stroke-linejoin='round' d='M5.8 3.6h.4L6 6.5z'/%3e%3ccircle cx='6' cy='8.2' r='.6' fill='%23dc3545' stroke='none'/%3e%3c/svg%3e")}.form-control.is-invalid:focus,.was-validated .form-control:invalid:focus{border-color:#e74c3c;box-shadow:0 0 0 .25rem rgba(231,76,60,.25)}.form-select.is-invalid,.was-validated .form-select:invalid{border-color:#e74c3c}.form-select.is-invalid:not([multiple]):not([size]),.form-select.is-invalid:not([multiple])[size="1"],.was-validated .form-select:invalid:not([multiple]):not([size]),.was-validated .form-select:invalid:not([multiple])[size="1"]{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3e%3cpath fill='none' stroke='%23cfcfcf' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='M2 5l6 6 6-6'/%3e%3c/svg%3e"),url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12' width='12' height='12' fill='none' stroke='%23e74c3c'%3e%3ccircle cx='6' cy='6' r='4.5'/%3e%3cpath stroke-linejoin='round' d='M5.8 3.6h.4L6 6.5z'/%3e%3ccircle cx='6' cy='8.2' r='.6' fill='%23dc3545' stroke='none'/%3e%3c/svg%3e")}.form-select.is-invalid[multiple],.form-select.is-invalid[size]:not([size="1"]),.was-validated .form-select:invalid[multiple],.was-validated .form-select:invalid[size]:not([size="1"]){background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12' width='12' height='12' fill='none' stroke='%23e74c3c'%3e%3ccircle cx='6' cy='6' r='4.5'/%3e%3cpath stroke-linejoin='round' d='M5.8 3.6h.4L6 6.5z'/%3e%3ccircle cx='6' cy='8.2' r='.6' fill='%23dc3545' stroke='none'/%3e%3c/svg%3e")}.form-select.is-invalid:focus,.was-validated .form-select:invalid:focus{border-color:#e74c3c;box-shadow:0 0 0 .25rem rgba(231,76,60,.25)}.form-check-input.is-invalid,.was-validated .form-check-input:invalid{border-color:#e74c3c}.form-check-input.is-invalid:checked,.was-validated .form-check-input:invalid:checked{background-color:#e74c3c}.form-check-input.is-invalid:focus,.was-validated .form-check-input:invalid:focus{box-shadow:0 0 0 .25rem rgba(231,76,60,.25)}.form-check-input.is-invalid~.form-check-label,.was-validated .form-check-input:invalid~.form-check-label{color:#e74c3c}.btn{color:#e1e1e1;background-color:transparent;border:1px solid transparent}.btn:hover{color:#e1e1e1}.btn-check:focus+.btn,.btn:focus{box-shadow:0 0 0 .25rem rgba(55,90,127,.25)}.btn.disabled,.btn:disabled,fieldset:disabled .btn{opacity:.65}.btn-primary{color:#fafafa;background-color:#375a7f;border-color:#375a7f}.btn-primary:hover{color:#fafafa;background-color:#2f4d6c;border-color:#2c4866}.btn-check:focus+.btn-primary,.btn-primary:focus{color:#fafafa;background-color:#2f4d6c;border-color:#2c4866;box-shadow:0 0 0 .25rem rgba(84,114,145,.5)}.btn-check:active+.btn-primary,.btn-check:checked+.btn-primary,.btn-primary.active,.btn-primary:active,.show>.btn-primary.dropdown-toggle{color:#fafafa;background-color:#2c4866;border-color:#29445f}.btn-check:active+.btn-primary:focus,.btn-check:checked+.btn-primary:focus,.btn-primary.active:focus,.btn-primary:active:focus,.show>.btn-primary.dropdown-toggle:focus{box-shadow:0 0 0 .25rem rgba(84,114,145,.5)}.btn-primary.disabled,.btn-primary:disabled{color:#fafafa;background-color:#375a7f;border-color:#375a7f}.btn-secondary{color:#fafafa;background-color:#626262;border-color:#626262}.btn-secondary:hover{color:#fafafa;background-color:#535353;border-color:#4e4e4e}.btn-check:focus+.btn-secondary,.btn-secondary:focus{color:#fafafa;background-color:#535353;border-color:#4e4e4e;box-shadow:0 0 0 .25rem rgba(121,121,121,.5)}.btn-check:active+.btn-secondary,.btn-check:checked+.btn-secondary,.btn-secondary.active,.btn-secondary:active,.show>.btn-secondary.dropdown-toggle{color:#fafafa;background-color:#4e4e4e;border-color:#4a4a4a}.btn-check:active+.btn-secondary:focus,.btn-check:checked+.btn-secondary:focus,.btn-secondary.active:focus,.btn-secondary:active:focus,.show>.btn-secondary.dropdown-toggle:focus{box-shadow:0 0 0 .25rem rgba(121,121,121,.5)}.btn-secondary.disabled,.btn-secondary:disabled{color:#fafafa;background-color:#626262;border-color:#626262}.btn-success{color:#111;background-color:#00bc8c;border-color:#00bc8c}.btn-success:hover{color:#111;background-color:#26c69d;border-color:#1ac398}.btn-check:focus+.btn-success,.btn-success:focus{color:#111;background-color:#26c69d;border-color:#1ac398;box-shadow:0 0 0 .25rem rgba(3,162,122,.5)}.btn-check:active+.btn-success,.btn-check:checked+.btn-success,.btn-success.active,.btn-success:active,.show>.btn-success.dropdown-toggle{color:#111;background-color:#33c9a3;border-color:#1ac398}.btn-check:active+.btn-success:focus,.btn-check:checked+.btn-success:focus,.btn-success.active:focus,.btn-success:active:focus,.show>.btn-success.dropdown-toggle:focus{box-shadow:0 0 0 .25rem rgba(3,162,122,.5)}.btn-success.disabled,.btn-success:disabled{color:#111;background-color:#00bc8c;border-color:#00bc8c}.btn-info{color:#fafafa;background-color:#17a2b8;border-color:#17a2b8}.btn-info:hover{color:#fafafa;background-color:#148a9c;border-color:#128293}.btn-check:focus+.btn-info,.btn-info:focus{color:#fafafa;background-color:#148a9c;border-color:#128293;box-shadow:0 0 0 .25rem rgba(57,175,194,.5)}.btn-check:active+.btn-info,.btn-check:checked+.btn-info,.btn-info.active,.btn-info:active,.show>.btn-info.dropdown-toggle{color:#fafafa;background-color:#128293;border-color:#117a8a}.btn-check:active+.btn-info:focus,.btn-check:checked+.btn-info:focus,.btn-info.active:focus,.btn-info:active:focus,.show>.btn-info.dropdown-toggle:focus{box-shadow:0 0 0 .25rem rgba(57,175,194,.5)}.btn-info.disabled,.btn-info:disabled{color:#fafafa;background-color:#17a2b8;border-color:#17a2b8}.btn-warning{color:#111;background-color:#f39c12;border-color:#f39c12}.btn-warning:hover{color:#111;background-color:#f5ab36;border-color:#f4a62a}.btn-check:focus+.btn-warning,.btn-warning:focus{color:#111;background-color:#f5ab36;border-color:#f4a62a;box-shadow:0 0 0 .25rem rgba(209,135,18,.5)}.btn-check:active+.btn-warning,.btn-check:checked+.btn-warning,.btn-warning.active,.btn-warning:active,.show>.btn-warning.dropdown-toggle{color:#111;background-color:#f5b041;border-color:#f4a62a}.btn-check:active+.btn-warning:focus,.btn-check:checked+.btn-warning:focus,.btn-warning.active:focus,.btn-warning:active:focus,.show>.btn-warning.dropdown-toggle:focus{box-shadow:0 0 0 .25rem rgba(209,135,18,.5)}.btn-warning.disabled,.btn-warning:disabled{color:#111;background-color:#f39c12;border-color:#f39c12}.btn-danger{color:#fafafa;background-color:#e74c3c;border-color:#e74c3c}.btn-danger:hover{color:#fafafa;background-color:#c44133;border-color:#b93d30}.btn-check:focus+.btn-danger,.btn-danger:focus{color:#fafafa;background-color:#c44133;border-color:#b93d30;box-shadow:0 0 0 .25rem rgba(234,102,89,.5)}.btn-check:active+.btn-danger,.btn-check:checked+.btn-danger,.btn-danger.active,.btn-danger:active,.show>.btn-danger.dropdown-toggle{color:#fafafa;background-color:#b93d30;border-color:#ad392d}.btn-check:active+.btn-danger:focus,.btn-check:checked+.btn-danger:focus,.btn-danger.active:focus,.btn-danger:active:focus,.show>.btn-danger.dropdown-toggle:focus{box-shadow:0 0 0 .25rem rgba(234,102,89,.5)}.btn-danger.disabled,.btn-danger:disabled{color:#fafafa;background-color:#e74c3c;border-color:#e74c3c}.btn-light{color:#fafafa;background-color:#9e9e9e;border-color:#9e9e9e}.btn-light:hover{color:#fafafa;background-color:#868686;border-color:#7e7e7e}.btn-check:focus+.btn-light,.btn-light:focus{color:#fafafa;background-color:#868686;border-color:#7e7e7e;box-shadow:0 0 0 .25rem rgba(172,172,172,.5)}.btn-check:active+.btn-light,.btn-check:checked+.btn-light,.btn-light.active,.btn-light:active,.show>.btn-light.dropdown-toggle{color:#fafafa;background-color:#7e7e7e;border-color:#777}.btn-check:active+.btn-light:focus,.btn-check:checked+.btn-light:focus,.btn-light.active:focus,.btn-light:active:focus,.show>.btn-light.dropdown-toggle:focus{box-shadow:0 0 0 .25rem rgba(172,172,172,.5)}.btn-light.disabled,.btn-light:disabled{color:#fafafa;background-color:#9e9e9e;border-color:#9e9e9e}.btn-dark{color:#fafafa;background-color:#3b3b3b;border-color:#3b3b3b}.btn-dark:hover{color:#fafafa;background-color:#323232;border-color:#2f2f2f}.btn-check:focus+.btn-dark,.btn-dark:focus{color:#fafafa;background-color:#323232;border-color:#2f2f2f;box-shadow:0 0 0 .25rem rgba(88,88,88,.5)}.btn-check:active+.btn-dark,.btn-check:checked+.btn-dark,.btn-dark.active,.btn-dark:active,.show>.btn-dark.dropdown-toggle{color:#fafafa;background-color:#2f2f2f;border-color:#2c2c2c}.btn-check:active+.btn-dark:focus,.btn-check:checked+.btn-dark:focus,.btn-dark.active:focus,.btn-dark:active:focus,.show>.btn-dark.dropdown-toggle:focus{box-shadow:0 0 0 .25rem rgba(88,88,88,.5)}.btn-dark.disabled,.btn-dark:disabled{color:#fafafa;background-color:#3b3b3b;border-color:#3b3b3b}.btn-outline-primary{color:#375a7f;border-color:#375a7f}.btn-outline-primary:hover{color:#fff;background-color:#375a7f;border-color:#375a7f}.btn-check:focus+.btn-outline-primary,.btn-outline-primary:focus{box-shadow:0 0 0 .25rem rgba(55,90,127,.5)}.btn-check:active+.btn-outline-primary,.btn-check:checked+.btn-outline-primary,.btn-outline-primary.active,.btn-outline-primary.dropdown-toggle.show,.btn-outline-primary:active{color:#fff;background-color:#375a7f;border-color:#375a7f}.btn-check:active+.btn-outline-primary:focus,.btn-check:checked+.btn-outline-primary:focus,.btn-outline-primary.active:focus,.btn-outline-primary.dropdown-toggle.show:focus,.btn-outline-primary:active:focus{box-shadow:0 0 0 .25rem rgba(55,90,127,.5)}.btn-outline-primary.disabled,.btn-outline-primary:disabled{color:#375a7f;background-color:transparent}.btn-outline-secondary{color:#626262;border-color:#626262}.btn-outline-secondary:hover{color:#fff;background-color:#626262;border-color:#626262}.btn-check:focus+.btn-outline-secondary,.btn-outline-secondary:focus{box-shadow:0 0 0 .25rem rgba(98,98,98,.5)}.btn-check:active+.btn-outline-secondary,.btn-check:checked+.btn-outline-secondary,.btn-outline-secondary.active,.btn-outline-secondary.dropdown-toggle.show,.btn-outline-secondary:active{color:#fff;background-color:#626262;border-color:#626262}.btn-check:active+.btn-outline-secondary:focus,.btn-check:checked+.btn-outline-secondary:focus,.btn-outline-secondary.active:focus,.btn-outline-secondary.dropdown-toggle.show:focus,.btn-outline-secondary:active:focus{box-shadow:0 0 0 .25rem rgba(98,98,98,.5)}.btn-outline-secondary.disabled,.btn-outline-secondary:disabled{color:#626262;background-color:transparent}.btn-outline-success{color:#00bc8c;border-color:#00bc8c}.btn-outline-success:hover{color:#000;background-color:#00bc8c;border-color:#00bc8c}.btn-check:focus+.btn-outline-success,.btn-outline-success:focus{box-shadow:0 0 0 .25rem rgba(0,188,140,.5)}.btn-check:active+.btn-outline-success,.btn-check:checked+.btn-outline-success,.btn-outline-success.active,.btn-outline-success.dropdown-toggle.show,.btn-outline-success:active{color:#000;background-color:#00bc8c;border-color:#00bc8c}.btn-check:active+.btn-outline-success:focus,.btn-check:checked+.btn-outline-success:focus,.btn-outline-success.active:focus,.btn-outline-success.dropdown-toggle.show:focus,.btn-outline-success:active:focus{box-shadow:0 0 0 .25rem rgba(0,188,140,.5)}.btn-outline-success.disabled,.btn-outline-success:disabled{color:#00bc8c;background-color:transparent}.btn-outline-info{color:#17a2b8;border-color:#17a2b8}.btn-outline-info:hover{color:#000;background-color:#17a2b8;border-color:#17a2b8}.btn-check:focus+.btn-outline-info,.btn-outline-info:focus{box-shadow:0 0 0 .25rem rgba(23,162,184,.5)}.btn-check:active+.btn-outline-info,.btn-check:checked+.btn-outline-info,.btn-outline-info.active,.btn-outline-info.dropdown-toggle.show,.btn-outline-info:active{color:#000;background-color:#17a2b8;border-color:#17a2b8}.btn-check:active+.btn-outline-info:focus,.btn-check:checked+.btn-outline-info:focus,.btn-outline-info.active:focus,.btn-outline-info.dropdown-toggle.show:focus,.btn-outline-info:active:focus{box-shadow:0 0 0 .25rem rgba(23,162,184,.5)}.btn-outline-info.disabled,.btn-outline-info:disabled{color:#17a2b8;background-color:transparent}.btn-outline-warning{color:#f39c12;border-color:#f39c12}.btn-outline-warning:hover{color:#000;background-color:#f39c12;border-color:#f39c12}.btn-check:focus+.btn-outline-warning,.btn-outline-warning:focus{box-shadow:0 0 0 .25rem rgba(243,156,18,.5)}.btn-check:active+.btn-outline-warning,.btn-check:checked+.btn-outline-warning,.btn-outline-warning.active,.btn-outline-warning.dropdown-toggle.show,.btn-outline-warning:active{color:#000;background-color:#f39c12;border-color:#f39c12}.btn-check:active+.btn-outline-warning:focus,.btn-check:checked+.btn-outline-warning:focus,.btn-outline-warning.active:focus,.btn-outline-warning.dropdown-toggle.show:focus,.btn-outline-warning:active:focus{box-shadow:0 0 0 .25rem rgba(243,156,18,.5)}.btn-outline-warning.disabled,.btn-outline-warning:disabled{color:#f39c12;background-color:transparent}.btn-outline-danger{color:#e74c3c;border-color:#e74c3c}.btn-outline-danger:hover{color:#000;background-color:#e74c3c;border-color:#e74c3c}.btn-check:focus+.btn-outline-danger,.btn-outline-danger:focus{box-shadow:0 0 0 .25rem rgba(231,76,60,.5)}.btn-check:active+.btn-outline-danger,.btn-check:checked+.btn-outline-danger,.btn-outline-danger.active,.btn-outline-danger.dropdown-toggle.show,.btn-outline-danger:active{color:#000;background-color:#e74c3c;border-color:#e74c3c}.btn-check:active+.btn-outline-danger:focus,.btn-check:checked+.btn-outline-danger:focus,.btn-outline-danger.active:focus,.btn-outline-danger.dropdown-toggle.show:focus,.btn-outline-danger:active:focus{box-shadow:0 0 0 .25rem rgba(231,76,60,.5)}.btn-outline-danger.disabled,.btn-outline-danger:disabled{color:#e74c3c;background-color:transparent}.btn-outline-light{color:#9e9e9e;border-color:#9e9e9e}.btn-outline-light:hover{color:#000;background-color:#9e9e9e;border-color:#9e9e9e}.btn-check:focus+.btn-outline-light,.btn-outline-light:focus{box-shadow:0 0 0 .25rem rgba(158,158,158,.5)}.btn-check:active+.btn-outline-light,.btn-check:checked+.btn-outline-light,.btn-outline-light.active,.btn-outline-light.dropdown-toggle.show,.btn-outline-light:active{color:#000;background-color:#9e9e9e;border-color:#9e9e9e}.btn-check:active+.btn-outline-light:focus,.btn-check:checked+.btn-outline-light:focus,.btn-outline-light.active:focus,.btn-outline-light.dropdown-toggle.show:focus,.btn-outline-light:active:focus{box-shadow:0 0 0 .25rem rgba(158,158,158,.5)}.btn-outline-light.disabled,.btn-outline-light:disabled{color:#9e9e9e;background-color:transparent}.btn-outline-dark{color:#3b3b3b;border-color:#3b3b3b}.btn-outline-dark:hover{color:#fff;background-color:#3b3b3b;border-color:#3b3b3b}.btn-check:focus+.btn-outline-dark,.btn-outline-dark:focus{box-shadow:0 0 0 .25rem rgba(59,59,59,.5)}.btn-check:active+.btn-outline-dark,.btn-check:checked+.btn-outline-dark,.btn-outline-dark.active,.btn-outline-dark.dropdown-toggle.show,.btn-outline-dark:active{color:#fff;background-color:#3b3b3b;border-color:#3b3b3b}.btn-check:active+.btn-outline-dark:focus,.btn-check:checked+.btn-outline-dark:focus,.btn-outline-dark.active:focus,.btn-outline-dark.dropdown-toggle.show:focus,.btn-outline-dark:active:focus{box-shadow:0 0 0 .25rem rgba(59,59,59,.5)}.btn-outline-dark.disabled,.btn-outline-dark:disabled{color:#3b3b3b;background-color:transparent}.btn-link{color:#557392}.btn-link:hover{color:#778fa8}.btn-link.disabled,.btn-link:disabled{color:#626262}.dropdown-menu{color:#e1e1e1;background-color:#111;border:1px solid rgba(250,250,250,.15)}.dropdown-divider{border-top:1px solid rgba(250,250,250,.15)}.dropdown-item{color:#f8f9fa;background-color:transparent;border:0}.dropdown-item:focus,.dropdown-item:hover{color:#dfe0e1;background-color:#343a40}.dropdown-item.active,.dropdown-item:active{color:#fafafa;background-color:#375a7f}.dropdown-item.disabled,.dropdown-item:disabled{color:#7e7e7e;background-color:transparent}.dropdown-header{color:#9e9e9e}.dropdown-item-text{color:#f8f9fa}.dropdown-menu-dark{color:#515151;background-color:#cfcfcf;border-color:rgba(250,250,250,.15)}.dropdown-menu-dark .dropdown-item{color:#515151}.dropdown-menu-dark .dropdown-item:focus,.dropdown-menu-dark .dropdown-item:hover{color:#111;background-color:rgba(17,17,17,.15)}.dropdown-menu-dark .dropdown-item.active,.dropdown-menu-dark .dropdown-item:active{color:#fafafa;background-color:#375a7f}.dropdown-menu-dark .dropdown-item.disabled,.dropdown-menu-dark .dropdown-item:disabled{color:#7e7e7e}.dropdown-menu-dark .dropdown-divider{border-color:rgba(250,250,250,.15)}.dropdown-menu-dark .dropdown-item-text{color:#515151}.dropdown-menu-dark .dropdown-header{color:#7e7e7e}.nav-link{color:#557392}.nav-link:focus,.nav-link:hover{color:#778fa8}.nav-link.disabled{color:#9e9e9e}.nav-tabs{border-bottom:1px solid #515151}.nav-tabs .nav-link{border:1px solid transparent}.nav-tabs .nav-link:focus,.nav-tabs .nav-link:hover{border-color:#3b3b3b #3b3b3b #515151}.nav-tabs .nav-link.disabled{color:#9e9e9e;background-color:transparent;border-color:transparent}.nav-tabs .nav-item.show .nav-link,.nav-tabs .nav-link.active{color:#b1b1b1;background-color:#222;border-color:#515151 #515151 #222}.nav-pills .nav-link.active,.nav-pills .show>.nav-link{color:#fafafa;background-color:#375a7f}.navbar-toggler{background-color:transparent;border:1px solid transparent}.navbar-light .navbar-brand{color:rgba(250,250,250,.9)}.navbar-light .navbar-brand:focus,.navbar-light .navbar-brand:hover{color:rgba(250,250,250,.9)}.navbar-light .navbar-nav .nav-link{color:rgba(250,250,250,.55)}.navbar-light .navbar-nav .nav-link:focus,.navbar-light .navbar-nav .nav-link:hover{color:rgba(250,250,250,.7)}.navbar-light .navbar-nav .nav-link.disabled{color:rgba(250,250,250,.3)}.navbar-light .navbar-nav .nav-link.active,.navbar-light .navbar-nav .show>.nav-link{color:rgba(250,250,250,.9)}.navbar-light .navbar-toggler{color:rgba(250,250,250,.55);border-color:rgba(250,250,250,.1)}.navbar-light .navbar-toggler-icon{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 30 30'%3e%3cpath stroke='rgba%28250, 250, 250, 0.55%29' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e")}.navbar-light .navbar-text{color:rgba(250,250,250,.55)}.navbar-light .navbar-text a,.navbar-light .navbar-text a:focus,.navbar-light .navbar-text a:hover{color:rgba(250,250,250,.9)}.navbar-dark .navbar-brand{color:#fafafa}.navbar-dark .navbar-brand:focus,.navbar-dark .navbar-brand:hover{color:#fafafa}.navbar-dark .navbar-nav .nav-link{color:rgba(250,250,250,.55)}.navbar-dark .navbar-nav .nav-link:focus,.navbar-dark .navbar-nav .nav-link:hover{color:rgba(250,250,250,.75)}.navbar-dark .navbar-nav .nav-link.disabled{color:rgba(250,250,250,.25)}.navbar-dark .navbar-nav .nav-link.active,.navbar-dark .navbar-nav .show>.nav-link{color:#fafafa}.navbar-dark .navbar-toggler{color:rgba(250,250,250,.55);border-color:rgba(250,250,250,.1)}.navbar-dark .navbar-toggler-icon{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 30 30'%3e%3cpath stroke='rgba%28250, 250, 250, 0.55%29' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e")}.navbar-dark .navbar-text{color:rgba(250,250,250,.55)}.navbar-dark .navbar-text a,.navbar-dark .navbar-text a:focus,.navbar-dark .navbar-text a:hover{color:#fafafa}.card{background-color:#222;border:1px solid rgba(250,250,250,.125)}.card-header{background-color:rgba(250,250,250,.03);border-bottom:1px solid rgba(250,250,250,.125)}.card-footer{background-color:rgba(250,250,250,.03);border-top:1px solid rgba(250,250,250,.125)}.accordion-button{color:#e1e1e1;background-color:#222}.accordion-button:not(.collapsed){color:#879cb2;background-color:#1c2d40;box-shadow:inset 0 -1px 0 rgba(250,250,250,.125)}.accordion-button:not(.collapsed)::after{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%23879cb2'%3e%3cpath fill-rule='evenodd' d='M1.646 4.646a.5.5 0 0 1 .708 0L8 10.293l5.646-5.647a.5.5 0 0 1 .708.708l-6 6a.5.5 0 0 1-.708 0l-6-6a.5.5 0 0 1 0-.708z'/%3e%3c/svg%3e")}.accordion-button::after{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%23e1e1e1'%3e%3cpath fill-rule='evenodd' d='M1.646 4.646a.5.5 0 0 1 .708 0L8 10.293l5.646-5.647a.5.5 0 0 1 .708.708l-6 6a.5.5 0 0 1-.708 0l-6-6a.5.5 0 0 1 0-.708z'/%3e%3c/svg%3e")}.accordion-button:hover{z-index:2}.accordion-button:focus{border-color:#9badbf;box-shadow:0 0 0 .25rem rgba(55,90,127,.25)}.accordion-item{background-color:#222;border:1px solid rgba(250,250,250,.125)}.accordion-flush .accordion-collapse{border-width:0}.accordion-flush .accordion-item{border-right:0;border-left:0}.accordion-flush .accordion-item:first-child{border-top:0}.accordion-flush .accordion-item:last-child{border-bottom:0}.breadcrumb-item+.breadcrumb-item::before{color:#9e9e9e}.breadcrumb-item.active{color:#9e9e9e}.page-link{color:#557392;background-color:#3b3b3b;border:1px solid #515151}.page-link:hover{color:#778fa8;background-color:#515151;border-color:#515151}.page-link:focus{color:#778fa8;background-color:#3b3b3b;outline:0;box-shadow:0 0 0 .25rem rgba(55,90,127,.25)}.page-item.active .page-link{color:#fafafa;background-color:#375a7f;border-color:#375a7f}.page-item.disabled .page-link{color:#5a5a5a;background-color:#222;border-color:#515151}.badge{color:#fafafa}.alert-heading{color:inherit}.alert-primary{color:#738ca5;background-color:#1c2d40;border-color:#21364c}.alert-primary .alert-link{color:#5c7084}.alert-secondary{color:#919191;background-color:#313131;border-color:#3b3b3b}.alert-secondary .alert-link{color:#747474}.alert-success{color:#4dd0af;background-color:#005e46;border-color:#007154}.alert-success .alert-link{color:#3ea68c}.alert-info{color:#5dbecd;background-color:#0c515c;border-color:#0e616e}.alert-info .alert-link{color:#4a98a4}.alert-warning{color:#f7ba59;background-color:#7a4e09;border-color:#925e0b}.alert-warning .alert-link{color:#c69547}.alert-danger{color:#ee8277;background-color:#74261e;border-color:#8b2e24}.alert-danger .alert-link{color:#be685f}.alert-light{color:#bbb;background-color:#4f4f4f;border-color:#5f5f5f}.alert-light .alert-link{color:#969696}.alert-dark{color:#767676;background-color:#1e1e1e;border-color:#232323}.alert-dark .alert-link{color:#5e5e5e}.progress{background-color:#3b3b3b}.progress-bar{color:#111;background-color:#375a7f}.list-group-item-action{color:#b1b1b1}.list-group-item-action:focus,.list-group-item-action:hover{color:#b1b1b1;background-color:#2f2f2f}.list-group-item-action:active{color:#e1e1e1;background-color:#3b3b3b}.list-group-item{color:#e1e1e1;background-color:#222;border:1px solid rgba(250,250,250,.125)}.list-group-item.disabled,.list-group-item:disabled{color:#9e9e9e;background-color:#222}.list-group-item.active{color:#fafafa;background-color:#375a7f;border-color:#375a7f}.list-group-flush>.list-group-item{border-width:0 0 1px}.list-group-flush>.list-group-item:last-child{border-bottom-width:0}.list-group-item-primary{color:#738ca5;background-color:#1c2d40}.list-group-item-primary.list-group-item-action:focus,.list-group-item-primary.list-group-item-action:hover{color:#738ca5;background-color:#19293a}.list-group-item-primary.list-group-item-action.active{color:#fff;background-color:#738ca5;border-color:#738ca5}.list-group-item-secondary{color:#919191;background-color:#313131}.list-group-item-secondary.list-group-item-action:focus,.list-group-item-secondary.list-group-item-action:hover{color:#919191;background-color:#2c2c2c}.list-group-item-secondary.list-group-item-action.active{color:#fff;background-color:#919191;border-color:#919191}.list-group-item-success{color:#4dd0af;background-color:#005e46}.list-group-item-success.list-group-item-action:focus,.list-group-item-success.list-group-item-action:hover{color:#4dd0af;background-color:#00553f}.list-group-item-success.list-group-item-action.active{color:#fff;background-color:#4dd0af;border-color:#4dd0af}.list-group-item-info{color:#5dbecd;background-color:#0c515c}.list-group-item-info.list-group-item-action:focus,.list-group-item-info.list-group-item-action:hover{color:#5dbecd;background-color:#0b4953}.list-group-item-info.list-group-item-action.active{color:#fff;background-color:#5dbecd;border-color:#5dbecd}.list-group-item-warning{color:#f7ba59;background-color:#7a4e09}.list-group-item-warning.list-group-item-action:focus,.list-group-item-warning.list-group-item-action:hover{color:#f7ba59;background-color:#6e4608}.list-group-item-warning.list-group-item-action.active{color:#fff;background-color:#f7ba59;border-color:#f7ba59}.list-group-item-danger{color:#ee8277;background-color:#74261e}.list-group-item-danger.list-group-item-action:focus,.list-group-item-danger.list-group-item-action:hover{color:#ee8277;background-color:#68221b}.list-group-item-danger.list-group-item-action.active{color:#fff;background-color:#ee8277;border-color:#ee8277}.list-group-item-light{color:#bbb;background-color:#4f4f4f}.list-group-item-light.list-group-item-action:focus,.list-group-item-light.list-group-item-action:hover{color:#bbb;background-color:#474747}.list-group-item-light.list-group-item-action.active{color:#fff;background-color:#bbb;border-color:#bbb}.list-group-item-dark{color:#767676;background-color:#1e1e1e}.list-group-item-dark.list-group-item-action:focus,.list-group-item-dark.list-group-item-action:hover{color:#767676;background-color:#1b1b1b}.list-group-item-dark.list-group-item-action.active{color:#fff;background-color:#767676;border-color:#767676}.btn-close{color:#fafafa;background:transparent url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%23fafafa'%3e%3cpath d='M.293.293a1 1 0 011.414 0L8 6.586 14.293.293a1 1 0 111.414 1.414L9.414 8l6.293 6.293a1 1 0 01-1.414 1.414L8 9.414l-6.293 6.293a1 1 0 01-1.414-1.414L6.586 8 .293 1.707a1 1 0 010-1.414z'/%3e%3c/svg%3e") center/1em auto no-repeat;opacity:.5}.btn-close:hover{color:#fafafa;opacity:.75}.btn-close:focus{box-shadow:0 0 0 .25rem rgba(55,90,127,.25);opacity:1}.btn-close.disabled,.btn-close:disabled{opacity:.25}.btn-close-white{filter:invert(1) grayscale(100%) brightness(200%)}.toast{background-color:rgba(17,17,17,.85);border:1px solid rgba(250,250,250,.1);box-shadow:0 .5rem 1rem rgba(17,17,17,.15)}.toast-header{color:#9e9e9e;background-color:rgba(17,17,17,.85);border-bottom:1px solid rgba(250,250,250,.05)}.modal-content{background-color:#2f2f2f;border:1px solid rgba(250,250,250,.2)}.modal-backdrop{background-color:#111}.modal-backdrop.fade{opacity:0}.modal-backdrop.show{opacity:.85}.modal-header{border-bottom:1px solid #515151}.modal-footer{border-top:1px solid #515151}.tooltip{opacity:0}.tooltip.show{opacity:.9}.bs-tooltip-auto[data-popper-placement^=top] .tooltip-arrow::before,.bs-tooltip-top .tooltip-arrow::before{border-top-color:#fafafa}.bs-tooltip-auto[data-popper-placement^=right] .tooltip-arrow::before,.bs-tooltip-end .tooltip-arrow::before{border-right-color:#fafafa}.bs-tooltip-auto[data-popper-placement^=bottom] .tooltip-arrow::before,.bs-tooltip-bottom .tooltip-arrow::before{border-bottom-color:#fafafa}.bs-tooltip-auto[data-popper-placement^=left] .tooltip-arrow::before,.bs-tooltip-start .tooltip-arrow::before{border-left-color:#fafafa}.tooltip-inner{color:#111;background-color:#fafafa}.popover{background-color:#111;border:1px solid rgba(250,250,250,.2)}.popover .popover-arrow::after,.popover .popover-arrow::before{border-color:transparent;border-style:solid}.bs-popover-auto[data-popper-placement^=top]>.popover-arrow::before,.bs-popover-top>.popover-arrow::before{border-top-color:rgba(250,250,250,.25)}.bs-popover-auto[data-popper-placement^=top]>.popover-arrow::after,.bs-popover-top>.popover-arrow::after{border-top-color:#111}.bs-popover-auto[data-popper-placement^=right]>.popover-arrow::before,.bs-popover-end>.popover-arrow::before{border-right-color:rgba(250,250,250,.25)}.bs-popover-auto[data-popper-placement^=right]>.popover-arrow::after,.bs-popover-end>.popover-arrow::after{border-right-color:#111}.bs-popover-auto[data-popper-placement^=bottom]>.popover-arrow::before,.bs-popover-bottom>.popover-arrow::before{border-bottom-color:rgba(250,250,250,.25)}.bs-popover-auto[data-popper-placement^=bottom]>.popover-arrow::after,.bs-popover-bottom>.popover-arrow::after{border-bottom-color:#111}.bs-popover-auto[data-popper-placement^=bottom] .popover-header::before,.bs-popover-bottom .popover-header::before{border-bottom:1px solid #1f1f1f}.bs-popover-auto[data-popper-placement^=left]>.popover-arrow::before,.bs-popover-start>.popover-arrow::before{border-left-color:rgba(250,250,250,.25)}.bs-popover-auto[data-popper-placement^=left]>.popover-arrow::after,.bs-popover-start>.popover-arrow::after{border-left-color:#111}.popover-header{background-color:#1f1f1f;border-bottom:1px solid rgba(250,250,250,.2)}.popover-body{color:#e1e1e1}.carousel-control-next,.carousel-control-prev{color:#fafafa;opacity:.5}.carousel-control-next:focus,.carousel-control-next:hover,.carousel-control-prev:focus,.carousel-control-prev:hover{color:#fafafa;opacity:.9}.carousel-control-prev-icon{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%23fafafa'%3e%3cpath d='M11.354 1.646a.5.5 0 0 1 0 .708L5.707 8l5.647 5.646a.5.5 0 0 1-.708.708l-6-6a.5.5 0 0 1 0-.708l6-6a.5.5 0 0 1 .708 0z'/%3e%3c/svg%3e")}.carousel-control-next-icon{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%23fafafa'%3e%3cpath d='M4.646 1.646a.5.5 0 0 1 .708 0l6 6a.5.5 0 0 1 0 .708l-6 6a.5.5 0 0 1-.708-.708L10.293 8 4.646 2.354a.5.5 0 0 1 0-.708z'/%3e%3c/svg%3e")}.carousel-indicators [data-bs-target]{background-color:#111;opacity:.5}.carousel-indicators .active{opacity:1}.carousel-caption{color:#111}.carousel-dark .carousel-control-next-icon,.carousel-dark .carousel-control-prev-icon{filter:invert(1) grayscale(100)}.carousel-dark .carousel-indicators [data-bs-target]{background-color:#fafafa}.carousel-dark .carousel-caption{color:#fafafa}.offcanvas{background-color:#2f2f2f}.offcanvas-backdrop{background-color:#111}.offcanvas-backdrop.fade{opacity:0}.offcanvas-backdrop.show{opacity:.85}.offcanvas-start{border-right:1px solid rgba(250,250,250,.2)}.offcanvas-end{border-left:1px solid rgba(250,250,250,.2)}.offcanvas-top{border-bottom:1px solid rgba(250,250,250,.2)}.offcanvas-bottom{border-top:1px solid rgba(250,250,250,.2)}.placeholder{background-color:currentColor;opacity:.5}@-webkit-keyframes placeholder-glow{50%{opacity:.2}}@keyframes placeholder-glow{50%{opacity:.2}}.placeholder-wave{-webkit-mask-image:linear-gradient(130deg,#fafafa 55%,rgba(255,255,255,0.8) 75%,#fafafa 95%);mask-image:linear-gradient(130deg,#fafafa 55%,rgba(255,255,255,0.8) 75%,#fafafa 95%)}.link-primary{color:#375a7f}.link-primary:focus,.link-primary:hover{color:#2c4866}.link-secondary{color:#626262}.link-secondary:focus,.link-secondary:hover{color:#4e4e4e}.link-success{color:#00bc8c}.link-success:focus,.link-success:hover{color:#33c9a3}.link-info{color:#17a2b8}.link-info:focus,.link-info:hover{color:#128293}.link-warning{color:#f39c12}.link-warning:focus,.link-warning:hover{color:#f5b041}.link-danger{color:#e74c3c}.link-danger:focus,.link-danger:hover{color:#b93d30}.link-light{color:#9e9e9e}.link-light:focus,.link-light:hover{color:#7e7e7e}.link-dark{color:#3b3b3b}.link-dark:focus,.link-dark:hover{color:#2f2f2f}.vr{background-color:currentColor;opacity:.1}.shadow{box-shadow:0 .5rem 1rem rgba(17,17,17,.15)!important}.shadow-sm{box-shadow:0 .125rem .25rem rgba(17,17,17,.075)!important}.shadow-lg{box-shadow:0 1rem 3rem rgba(17,17,17,.175)!important}.border{border:1px solid #515151!important}.border-top{border-top:1px solid #515151!important}.border-end{border-right:1px solid #515151!important}.border-bottom{border-bottom:1px solid #515151!important}.border-start{border-left:1px solid #515151!important}.border-primary{border-color:#375a7f!important}.border-secondary{border-color:#626262!important}.border-success{border-color:#00bc8c!important}.border-info{border-color:#17a2b8!important}.border-warning{border-color:#f39c12!important}.border-danger{border-color:#e74c3c!important}.border-light{border-color:#9e9e9e!important}.border-dark{border-color:#3b3b3b!important}.border-white{border-color:#fafafa!important}.border-black{border-color:#111!important}.text-muted{color:#9e9e9e!important}.text-white-50{color:rgba(250,250,250,.5)!important}.text-black-50{color:rgba(17,17,17,.5)!important}.bg-black{background-color:#111!important}body::-moz-selection{color:#cfcfcf;background:rgba(23,162,184,.5)}body::selection{color:#cfcfcf;background:rgba(23,162,184,.5)} \ No newline at end of file diff --git a/examples/vagrant/static-http/bootstrap.bundle.min.js b/examples/vagrant/static-http/bootstrap.bundle.min.js new file mode 100644 index 00000000..dbfe7129 --- /dev/null +++ b/examples/vagrant/static-http/bootstrap.bundle.min.js @@ -0,0 +1,6 @@ +/*! + * Bootstrap v5.1.3 (https://getbootstrap.com/) + * Copyright 2011-2021 The Bootstrap Authors (https://github.com/twbs/bootstrap/graphs/contributors) + * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE) + */ +!function(t,e){"object"==typeof exports&&"undefined"!=typeof module?module.exports=e():"function"==typeof define&&define.amd?define(e):(t="undefined"!=typeof globalThis?globalThis:t||self).bootstrap=e()}(this,(function(){"use strict";const t="transitionend",e=t=>{let e=t.getAttribute("data-bs-target");if(!e||"#"===e){let i=t.getAttribute("href");if(!i||!i.includes("#")&&!i.startsWith("."))return null;i.includes("#")&&!i.startsWith("#")&&(i=`#${i.split("#")[1]}`),e=i&&"#"!==i?i.trim():null}return e},i=t=>{const i=e(t);return i&&document.querySelector(i)?i:null},n=t=>{const i=e(t);return i?document.querySelector(i):null},s=e=>{e.dispatchEvent(new Event(t))},o=t=>!(!t||"object"!=typeof t)&&(void 0!==t.jquery&&(t=t[0]),void 0!==t.nodeType),r=t=>o(t)?t.jquery?t[0]:t:"string"==typeof t&&t.length>0?document.querySelector(t):null,a=(t,e,i)=>{Object.keys(i).forEach((n=>{const s=i[n],r=e[n],a=r&&o(r)?"element":null==(l=r)?`${l}`:{}.toString.call(l).match(/\s([a-z]+)/i)[1].toLowerCase();var l;if(!new RegExp(s).test(a))throw new TypeError(`${t.toUpperCase()}: Option "${n}" provided type "${a}" but expected type "${s}".`)}))},l=t=>!(!o(t)||0===t.getClientRects().length)&&"visible"===getComputedStyle(t).getPropertyValue("visibility"),c=t=>!t||t.nodeType!==Node.ELEMENT_NODE||!!t.classList.contains("disabled")||(void 0!==t.disabled?t.disabled:t.hasAttribute("disabled")&&"false"!==t.getAttribute("disabled")),h=t=>{if(!document.documentElement.attachShadow)return null;if("function"==typeof t.getRootNode){const e=t.getRootNode();return e instanceof ShadowRoot?e:null}return t instanceof ShadowRoot?t:t.parentNode?h(t.parentNode):null},d=()=>{},u=t=>{t.offsetHeight},f=()=>{const{jQuery:t}=window;return t&&!document.body.hasAttribute("data-bs-no-jquery")?t:null},p=[],m=()=>"rtl"===document.documentElement.dir,g=t=>{var e;e=()=>{const e=f();if(e){const i=t.NAME,n=e.fn[i];e.fn[i]=t.jQueryInterface,e.fn[i].Constructor=t,e.fn[i].noConflict=()=>(e.fn[i]=n,t.jQueryInterface)}},"loading"===document.readyState?(p.length||document.addEventListener("DOMContentLoaded",(()=>{p.forEach((t=>t()))})),p.push(e)):e()},_=t=>{"function"==typeof t&&t()},b=(e,i,n=!0)=>{if(!n)return void _(e);const o=(t=>{if(!t)return 0;let{transitionDuration:e,transitionDelay:i}=window.getComputedStyle(t);const n=Number.parseFloat(e),s=Number.parseFloat(i);return n||s?(e=e.split(",")[0],i=i.split(",")[0],1e3*(Number.parseFloat(e)+Number.parseFloat(i))):0})(i)+5;let r=!1;const a=({target:n})=>{n===i&&(r=!0,i.removeEventListener(t,a),_(e))};i.addEventListener(t,a),setTimeout((()=>{r||s(i)}),o)},v=(t,e,i,n)=>{let s=t.indexOf(e);if(-1===s)return t[!i&&n?t.length-1:0];const o=t.length;return s+=i?1:-1,n&&(s=(s+o)%o),t[Math.max(0,Math.min(s,o-1))]},y=/[^.]*(?=\..*)\.|.*/,w=/\..*/,E=/::\d+$/,A={};let T=1;const O={mouseenter:"mouseover",mouseleave:"mouseout"},C=/^(mouseenter|mouseleave)/i,k=new Set(["click","dblclick","mouseup","mousedown","contextmenu","mousewheel","DOMMouseScroll","mouseover","mouseout","mousemove","selectstart","selectend","keydown","keypress","keyup","orientationchange","touchstart","touchmove","touchend","touchcancel","pointerdown","pointermove","pointerup","pointerleave","pointercancel","gesturestart","gesturechange","gestureend","focus","blur","change","reset","select","submit","focusin","focusout","load","unload","beforeunload","resize","move","DOMContentLoaded","readystatechange","error","abort","scroll"]);function L(t,e){return e&&`${e}::${T++}`||t.uidEvent||T++}function x(t){const e=L(t);return t.uidEvent=e,A[e]=A[e]||{},A[e]}function D(t,e,i=null){const n=Object.keys(t);for(let s=0,o=n.length;sfunction(e){if(!e.relatedTarget||e.relatedTarget!==e.delegateTarget&&!e.delegateTarget.contains(e.relatedTarget))return t.call(this,e)};n?n=t(n):i=t(i)}const[o,r,a]=S(e,i,n),l=x(t),c=l[a]||(l[a]={}),h=D(c,r,o?i:null);if(h)return void(h.oneOff=h.oneOff&&s);const d=L(r,e.replace(y,"")),u=o?function(t,e,i){return function n(s){const o=t.querySelectorAll(e);for(let{target:r}=s;r&&r!==this;r=r.parentNode)for(let a=o.length;a--;)if(o[a]===r)return s.delegateTarget=r,n.oneOff&&j.off(t,s.type,e,i),i.apply(r,[s]);return null}}(t,i,n):function(t,e){return function i(n){return n.delegateTarget=t,i.oneOff&&j.off(t,n.type,e),e.apply(t,[n])}}(t,i);u.delegationSelector=o?i:null,u.originalHandler=r,u.oneOff=s,u.uidEvent=d,c[d]=u,t.addEventListener(a,u,o)}function I(t,e,i,n,s){const o=D(e[i],n,s);o&&(t.removeEventListener(i,o,Boolean(s)),delete e[i][o.uidEvent])}function P(t){return t=t.replace(w,""),O[t]||t}const j={on(t,e,i,n){N(t,e,i,n,!1)},one(t,e,i,n){N(t,e,i,n,!0)},off(t,e,i,n){if("string"!=typeof e||!t)return;const[s,o,r]=S(e,i,n),a=r!==e,l=x(t),c=e.startsWith(".");if(void 0!==o){if(!l||!l[r])return;return void I(t,l,r,o,s?i:null)}c&&Object.keys(l).forEach((i=>{!function(t,e,i,n){const s=e[i]||{};Object.keys(s).forEach((o=>{if(o.includes(n)){const n=s[o];I(t,e,i,n.originalHandler,n.delegationSelector)}}))}(t,l,i,e.slice(1))}));const h=l[r]||{};Object.keys(h).forEach((i=>{const n=i.replace(E,"");if(!a||e.includes(n)){const e=h[i];I(t,l,r,e.originalHandler,e.delegationSelector)}}))},trigger(t,e,i){if("string"!=typeof e||!t)return null;const n=f(),s=P(e),o=e!==s,r=k.has(s);let a,l=!0,c=!0,h=!1,d=null;return o&&n&&(a=n.Event(e,i),n(t).trigger(a),l=!a.isPropagationStopped(),c=!a.isImmediatePropagationStopped(),h=a.isDefaultPrevented()),r?(d=document.createEvent("HTMLEvents"),d.initEvent(s,l,!0)):d=new CustomEvent(e,{bubbles:l,cancelable:!0}),void 0!==i&&Object.keys(i).forEach((t=>{Object.defineProperty(d,t,{get:()=>i[t]})})),h&&d.preventDefault(),c&&t.dispatchEvent(d),d.defaultPrevented&&void 0!==a&&a.preventDefault(),d}},M=new Map,H={set(t,e,i){M.has(t)||M.set(t,new Map);const n=M.get(t);n.has(e)||0===n.size?n.set(e,i):console.error(`Bootstrap doesn't allow more than one instance per element. Bound instance: ${Array.from(n.keys())[0]}.`)},get:(t,e)=>M.has(t)&&M.get(t).get(e)||null,remove(t,e){if(!M.has(t))return;const i=M.get(t);i.delete(e),0===i.size&&M.delete(t)}};class B{constructor(t){(t=r(t))&&(this._element=t,H.set(this._element,this.constructor.DATA_KEY,this))}dispose(){H.remove(this._element,this.constructor.DATA_KEY),j.off(this._element,this.constructor.EVENT_KEY),Object.getOwnPropertyNames(this).forEach((t=>{this[t]=null}))}_queueCallback(t,e,i=!0){b(t,e,i)}static getInstance(t){return H.get(r(t),this.DATA_KEY)}static getOrCreateInstance(t,e={}){return this.getInstance(t)||new this(t,"object"==typeof e?e:null)}static get VERSION(){return"5.1.3"}static get NAME(){throw new Error('You have to implement the static method "NAME", for each component!')}static get DATA_KEY(){return`bs.${this.NAME}`}static get EVENT_KEY(){return`.${this.DATA_KEY}`}}const R=(t,e="hide")=>{const i=`click.dismiss${t.EVENT_KEY}`,s=t.NAME;j.on(document,i,`[data-bs-dismiss="${s}"]`,(function(i){if(["A","AREA"].includes(this.tagName)&&i.preventDefault(),c(this))return;const o=n(this)||this.closest(`.${s}`);t.getOrCreateInstance(o)[e]()}))};class W extends B{static get NAME(){return"alert"}close(){if(j.trigger(this._element,"close.bs.alert").defaultPrevented)return;this._element.classList.remove("show");const t=this._element.classList.contains("fade");this._queueCallback((()=>this._destroyElement()),this._element,t)}_destroyElement(){this._element.remove(),j.trigger(this._element,"closed.bs.alert"),this.dispose()}static jQueryInterface(t){return this.each((function(){const e=W.getOrCreateInstance(this);if("string"==typeof t){if(void 0===e[t]||t.startsWith("_")||"constructor"===t)throw new TypeError(`No method named "${t}"`);e[t](this)}}))}}R(W,"close"),g(W);const $='[data-bs-toggle="button"]';class z extends B{static get NAME(){return"button"}toggle(){this._element.setAttribute("aria-pressed",this._element.classList.toggle("active"))}static jQueryInterface(t){return this.each((function(){const e=z.getOrCreateInstance(this);"toggle"===t&&e[t]()}))}}function q(t){return"true"===t||"false"!==t&&(t===Number(t).toString()?Number(t):""===t||"null"===t?null:t)}function F(t){return t.replace(/[A-Z]/g,(t=>`-${t.toLowerCase()}`))}j.on(document,"click.bs.button.data-api",$,(t=>{t.preventDefault();const e=t.target.closest($);z.getOrCreateInstance(e).toggle()})),g(z);const U={setDataAttribute(t,e,i){t.setAttribute(`data-bs-${F(e)}`,i)},removeDataAttribute(t,e){t.removeAttribute(`data-bs-${F(e)}`)},getDataAttributes(t){if(!t)return{};const e={};return Object.keys(t.dataset).filter((t=>t.startsWith("bs"))).forEach((i=>{let n=i.replace(/^bs/,"");n=n.charAt(0).toLowerCase()+n.slice(1,n.length),e[n]=q(t.dataset[i])})),e},getDataAttribute:(t,e)=>q(t.getAttribute(`data-bs-${F(e)}`)),offset(t){const e=t.getBoundingClientRect();return{top:e.top+window.pageYOffset,left:e.left+window.pageXOffset}},position:t=>({top:t.offsetTop,left:t.offsetLeft})},V={find:(t,e=document.documentElement)=>[].concat(...Element.prototype.querySelectorAll.call(e,t)),findOne:(t,e=document.documentElement)=>Element.prototype.querySelector.call(e,t),children:(t,e)=>[].concat(...t.children).filter((t=>t.matches(e))),parents(t,e){const i=[];let n=t.parentNode;for(;n&&n.nodeType===Node.ELEMENT_NODE&&3!==n.nodeType;)n.matches(e)&&i.push(n),n=n.parentNode;return i},prev(t,e){let i=t.previousElementSibling;for(;i;){if(i.matches(e))return[i];i=i.previousElementSibling}return[]},next(t,e){let i=t.nextElementSibling;for(;i;){if(i.matches(e))return[i];i=i.nextElementSibling}return[]},focusableChildren(t){const e=["a","button","input","textarea","select","details","[tabindex]",'[contenteditable="true"]'].map((t=>`${t}:not([tabindex^="-"])`)).join(", ");return this.find(e,t).filter((t=>!c(t)&&l(t)))}},K="carousel",X={interval:5e3,keyboard:!0,slide:!1,pause:"hover",wrap:!0,touch:!0},Y={interval:"(number|boolean)",keyboard:"boolean",slide:"(boolean|string)",pause:"(string|boolean)",wrap:"boolean",touch:"boolean"},Q="next",G="prev",Z="left",J="right",tt={ArrowLeft:J,ArrowRight:Z},et="slid.bs.carousel",it="active",nt=".active.carousel-item";class st extends B{constructor(t,e){super(t),this._items=null,this._interval=null,this._activeElement=null,this._isPaused=!1,this._isSliding=!1,this.touchTimeout=null,this.touchStartX=0,this.touchDeltaX=0,this._config=this._getConfig(e),this._indicatorsElement=V.findOne(".carousel-indicators",this._element),this._touchSupported="ontouchstart"in document.documentElement||navigator.maxTouchPoints>0,this._pointerEvent=Boolean(window.PointerEvent),this._addEventListeners()}static get Default(){return X}static get NAME(){return K}next(){this._slide(Q)}nextWhenVisible(){!document.hidden&&l(this._element)&&this.next()}prev(){this._slide(G)}pause(t){t||(this._isPaused=!0),V.findOne(".carousel-item-next, .carousel-item-prev",this._element)&&(s(this._element),this.cycle(!0)),clearInterval(this._interval),this._interval=null}cycle(t){t||(this._isPaused=!1),this._interval&&(clearInterval(this._interval),this._interval=null),this._config&&this._config.interval&&!this._isPaused&&(this._updateInterval(),this._interval=setInterval((document.visibilityState?this.nextWhenVisible:this.next).bind(this),this._config.interval))}to(t){this._activeElement=V.findOne(nt,this._element);const e=this._getItemIndex(this._activeElement);if(t>this._items.length-1||t<0)return;if(this._isSliding)return void j.one(this._element,et,(()=>this.to(t)));if(e===t)return this.pause(),void this.cycle();const i=t>e?Q:G;this._slide(i,this._items[t])}_getConfig(t){return t={...X,...U.getDataAttributes(this._element),..."object"==typeof t?t:{}},a(K,t,Y),t}_handleSwipe(){const t=Math.abs(this.touchDeltaX);if(t<=40)return;const e=t/this.touchDeltaX;this.touchDeltaX=0,e&&this._slide(e>0?J:Z)}_addEventListeners(){this._config.keyboard&&j.on(this._element,"keydown.bs.carousel",(t=>this._keydown(t))),"hover"===this._config.pause&&(j.on(this._element,"mouseenter.bs.carousel",(t=>this.pause(t))),j.on(this._element,"mouseleave.bs.carousel",(t=>this.cycle(t)))),this._config.touch&&this._touchSupported&&this._addTouchEventListeners()}_addTouchEventListeners(){const t=t=>this._pointerEvent&&("pen"===t.pointerType||"touch"===t.pointerType),e=e=>{t(e)?this.touchStartX=e.clientX:this._pointerEvent||(this.touchStartX=e.touches[0].clientX)},i=t=>{this.touchDeltaX=t.touches&&t.touches.length>1?0:t.touches[0].clientX-this.touchStartX},n=e=>{t(e)&&(this.touchDeltaX=e.clientX-this.touchStartX),this._handleSwipe(),"hover"===this._config.pause&&(this.pause(),this.touchTimeout&&clearTimeout(this.touchTimeout),this.touchTimeout=setTimeout((t=>this.cycle(t)),500+this._config.interval))};V.find(".carousel-item img",this._element).forEach((t=>{j.on(t,"dragstart.bs.carousel",(t=>t.preventDefault()))})),this._pointerEvent?(j.on(this._element,"pointerdown.bs.carousel",(t=>e(t))),j.on(this._element,"pointerup.bs.carousel",(t=>n(t))),this._element.classList.add("pointer-event")):(j.on(this._element,"touchstart.bs.carousel",(t=>e(t))),j.on(this._element,"touchmove.bs.carousel",(t=>i(t))),j.on(this._element,"touchend.bs.carousel",(t=>n(t))))}_keydown(t){if(/input|textarea/i.test(t.target.tagName))return;const e=tt[t.key];e&&(t.preventDefault(),this._slide(e))}_getItemIndex(t){return this._items=t&&t.parentNode?V.find(".carousel-item",t.parentNode):[],this._items.indexOf(t)}_getItemByOrder(t,e){const i=t===Q;return v(this._items,e,i,this._config.wrap)}_triggerSlideEvent(t,e){const i=this._getItemIndex(t),n=this._getItemIndex(V.findOne(nt,this._element));return j.trigger(this._element,"slide.bs.carousel",{relatedTarget:t,direction:e,from:n,to:i})}_setActiveIndicatorElement(t){if(this._indicatorsElement){const e=V.findOne(".active",this._indicatorsElement);e.classList.remove(it),e.removeAttribute("aria-current");const i=V.find("[data-bs-target]",this._indicatorsElement);for(let e=0;e{j.trigger(this._element,et,{relatedTarget:o,direction:d,from:s,to:r})};if(this._element.classList.contains("slide")){o.classList.add(h),u(o),n.classList.add(c),o.classList.add(c);const t=()=>{o.classList.remove(c,h),o.classList.add(it),n.classList.remove(it,h,c),this._isSliding=!1,setTimeout(f,0)};this._queueCallback(t,n,!0)}else n.classList.remove(it),o.classList.add(it),this._isSliding=!1,f();a&&this.cycle()}_directionToOrder(t){return[J,Z].includes(t)?m()?t===Z?G:Q:t===Z?Q:G:t}_orderToDirection(t){return[Q,G].includes(t)?m()?t===G?Z:J:t===G?J:Z:t}static carouselInterface(t,e){const i=st.getOrCreateInstance(t,e);let{_config:n}=i;"object"==typeof e&&(n={...n,...e});const s="string"==typeof e?e:n.slide;if("number"==typeof e)i.to(e);else if("string"==typeof s){if(void 0===i[s])throw new TypeError(`No method named "${s}"`);i[s]()}else n.interval&&n.ride&&(i.pause(),i.cycle())}static jQueryInterface(t){return this.each((function(){st.carouselInterface(this,t)}))}static dataApiClickHandler(t){const e=n(this);if(!e||!e.classList.contains("carousel"))return;const i={...U.getDataAttributes(e),...U.getDataAttributes(this)},s=this.getAttribute("data-bs-slide-to");s&&(i.interval=!1),st.carouselInterface(e,i),s&&st.getInstance(e).to(s),t.preventDefault()}}j.on(document,"click.bs.carousel.data-api","[data-bs-slide], [data-bs-slide-to]",st.dataApiClickHandler),j.on(window,"load.bs.carousel.data-api",(()=>{const t=V.find('[data-bs-ride="carousel"]');for(let e=0,i=t.length;et===this._element));null!==s&&o.length&&(this._selector=s,this._triggerArray.push(e))}this._initializeChildren(),this._config.parent||this._addAriaAndCollapsedClass(this._triggerArray,this._isShown()),this._config.toggle&&this.toggle()}static get Default(){return rt}static get NAME(){return ot}toggle(){this._isShown()?this.hide():this.show()}show(){if(this._isTransitioning||this._isShown())return;let t,e=[];if(this._config.parent){const t=V.find(ut,this._config.parent);e=V.find(".collapse.show, .collapse.collapsing",this._config.parent).filter((e=>!t.includes(e)))}const i=V.findOne(this._selector);if(e.length){const n=e.find((t=>i!==t));if(t=n?pt.getInstance(n):null,t&&t._isTransitioning)return}if(j.trigger(this._element,"show.bs.collapse").defaultPrevented)return;e.forEach((e=>{i!==e&&pt.getOrCreateInstance(e,{toggle:!1}).hide(),t||H.set(e,"bs.collapse",null)}));const n=this._getDimension();this._element.classList.remove(ct),this._element.classList.add(ht),this._element.style[n]=0,this._addAriaAndCollapsedClass(this._triggerArray,!0),this._isTransitioning=!0;const s=`scroll${n[0].toUpperCase()+n.slice(1)}`;this._queueCallback((()=>{this._isTransitioning=!1,this._element.classList.remove(ht),this._element.classList.add(ct,lt),this._element.style[n]="",j.trigger(this._element,"shown.bs.collapse")}),this._element,!0),this._element.style[n]=`${this._element[s]}px`}hide(){if(this._isTransitioning||!this._isShown())return;if(j.trigger(this._element,"hide.bs.collapse").defaultPrevented)return;const t=this._getDimension();this._element.style[t]=`${this._element.getBoundingClientRect()[t]}px`,u(this._element),this._element.classList.add(ht),this._element.classList.remove(ct,lt);const e=this._triggerArray.length;for(let t=0;t{this._isTransitioning=!1,this._element.classList.remove(ht),this._element.classList.add(ct),j.trigger(this._element,"hidden.bs.collapse")}),this._element,!0)}_isShown(t=this._element){return t.classList.contains(lt)}_getConfig(t){return(t={...rt,...U.getDataAttributes(this._element),...t}).toggle=Boolean(t.toggle),t.parent=r(t.parent),a(ot,t,at),t}_getDimension(){return this._element.classList.contains("collapse-horizontal")?"width":"height"}_initializeChildren(){if(!this._config.parent)return;const t=V.find(ut,this._config.parent);V.find(ft,this._config.parent).filter((e=>!t.includes(e))).forEach((t=>{const e=n(t);e&&this._addAriaAndCollapsedClass([t],this._isShown(e))}))}_addAriaAndCollapsedClass(t,e){t.length&&t.forEach((t=>{e?t.classList.remove(dt):t.classList.add(dt),t.setAttribute("aria-expanded",e)}))}static jQueryInterface(t){return this.each((function(){const e={};"string"==typeof t&&/show|hide/.test(t)&&(e.toggle=!1);const i=pt.getOrCreateInstance(this,e);if("string"==typeof t){if(void 0===i[t])throw new TypeError(`No method named "${t}"`);i[t]()}}))}}j.on(document,"click.bs.collapse.data-api",ft,(function(t){("A"===t.target.tagName||t.delegateTarget&&"A"===t.delegateTarget.tagName)&&t.preventDefault();const e=i(this);V.find(e).forEach((t=>{pt.getOrCreateInstance(t,{toggle:!1}).toggle()}))})),g(pt);var mt="top",gt="bottom",_t="right",bt="left",vt="auto",yt=[mt,gt,_t,bt],wt="start",Et="end",At="clippingParents",Tt="viewport",Ot="popper",Ct="reference",kt=yt.reduce((function(t,e){return t.concat([e+"-"+wt,e+"-"+Et])}),[]),Lt=[].concat(yt,[vt]).reduce((function(t,e){return t.concat([e,e+"-"+wt,e+"-"+Et])}),[]),xt="beforeRead",Dt="read",St="afterRead",Nt="beforeMain",It="main",Pt="afterMain",jt="beforeWrite",Mt="write",Ht="afterWrite",Bt=[xt,Dt,St,Nt,It,Pt,jt,Mt,Ht];function Rt(t){return t?(t.nodeName||"").toLowerCase():null}function Wt(t){if(null==t)return window;if("[object Window]"!==t.toString()){var e=t.ownerDocument;return e&&e.defaultView||window}return t}function $t(t){return t instanceof Wt(t).Element||t instanceof Element}function zt(t){return t instanceof Wt(t).HTMLElement||t instanceof HTMLElement}function qt(t){return"undefined"!=typeof ShadowRoot&&(t instanceof Wt(t).ShadowRoot||t instanceof ShadowRoot)}const Ft={name:"applyStyles",enabled:!0,phase:"write",fn:function(t){var e=t.state;Object.keys(e.elements).forEach((function(t){var i=e.styles[t]||{},n=e.attributes[t]||{},s=e.elements[t];zt(s)&&Rt(s)&&(Object.assign(s.style,i),Object.keys(n).forEach((function(t){var e=n[t];!1===e?s.removeAttribute(t):s.setAttribute(t,!0===e?"":e)})))}))},effect:function(t){var e=t.state,i={popper:{position:e.options.strategy,left:"0",top:"0",margin:"0"},arrow:{position:"absolute"},reference:{}};return Object.assign(e.elements.popper.style,i.popper),e.styles=i,e.elements.arrow&&Object.assign(e.elements.arrow.style,i.arrow),function(){Object.keys(e.elements).forEach((function(t){var n=e.elements[t],s=e.attributes[t]||{},o=Object.keys(e.styles.hasOwnProperty(t)?e.styles[t]:i[t]).reduce((function(t,e){return t[e]="",t}),{});zt(n)&&Rt(n)&&(Object.assign(n.style,o),Object.keys(s).forEach((function(t){n.removeAttribute(t)})))}))}},requires:["computeStyles"]};function Ut(t){return t.split("-")[0]}function Vt(t,e){var i=t.getBoundingClientRect();return{width:i.width/1,height:i.height/1,top:i.top/1,right:i.right/1,bottom:i.bottom/1,left:i.left/1,x:i.left/1,y:i.top/1}}function Kt(t){var e=Vt(t),i=t.offsetWidth,n=t.offsetHeight;return Math.abs(e.width-i)<=1&&(i=e.width),Math.abs(e.height-n)<=1&&(n=e.height),{x:t.offsetLeft,y:t.offsetTop,width:i,height:n}}function Xt(t,e){var i=e.getRootNode&&e.getRootNode();if(t.contains(e))return!0;if(i&&qt(i)){var n=e;do{if(n&&t.isSameNode(n))return!0;n=n.parentNode||n.host}while(n)}return!1}function Yt(t){return Wt(t).getComputedStyle(t)}function Qt(t){return["table","td","th"].indexOf(Rt(t))>=0}function Gt(t){return(($t(t)?t.ownerDocument:t.document)||window.document).documentElement}function Zt(t){return"html"===Rt(t)?t:t.assignedSlot||t.parentNode||(qt(t)?t.host:null)||Gt(t)}function Jt(t){return zt(t)&&"fixed"!==Yt(t).position?t.offsetParent:null}function te(t){for(var e=Wt(t),i=Jt(t);i&&Qt(i)&&"static"===Yt(i).position;)i=Jt(i);return i&&("html"===Rt(i)||"body"===Rt(i)&&"static"===Yt(i).position)?e:i||function(t){var e=-1!==navigator.userAgent.toLowerCase().indexOf("firefox");if(-1!==navigator.userAgent.indexOf("Trident")&&zt(t)&&"fixed"===Yt(t).position)return null;for(var i=Zt(t);zt(i)&&["html","body"].indexOf(Rt(i))<0;){var n=Yt(i);if("none"!==n.transform||"none"!==n.perspective||"paint"===n.contain||-1!==["transform","perspective"].indexOf(n.willChange)||e&&"filter"===n.willChange||e&&n.filter&&"none"!==n.filter)return i;i=i.parentNode}return null}(t)||e}function ee(t){return["top","bottom"].indexOf(t)>=0?"x":"y"}var ie=Math.max,ne=Math.min,se=Math.round;function oe(t,e,i){return ie(t,ne(e,i))}function re(t){return Object.assign({},{top:0,right:0,bottom:0,left:0},t)}function ae(t,e){return e.reduce((function(e,i){return e[i]=t,e}),{})}const le={name:"arrow",enabled:!0,phase:"main",fn:function(t){var e,i=t.state,n=t.name,s=t.options,o=i.elements.arrow,r=i.modifiersData.popperOffsets,a=Ut(i.placement),l=ee(a),c=[bt,_t].indexOf(a)>=0?"height":"width";if(o&&r){var h=function(t,e){return re("number"!=typeof(t="function"==typeof t?t(Object.assign({},e.rects,{placement:e.placement})):t)?t:ae(t,yt))}(s.padding,i),d=Kt(o),u="y"===l?mt:bt,f="y"===l?gt:_t,p=i.rects.reference[c]+i.rects.reference[l]-r[l]-i.rects.popper[c],m=r[l]-i.rects.reference[l],g=te(o),_=g?"y"===l?g.clientHeight||0:g.clientWidth||0:0,b=p/2-m/2,v=h[u],y=_-d[c]-h[f],w=_/2-d[c]/2+b,E=oe(v,w,y),A=l;i.modifiersData[n]=((e={})[A]=E,e.centerOffset=E-w,e)}},effect:function(t){var e=t.state,i=t.options.element,n=void 0===i?"[data-popper-arrow]":i;null!=n&&("string"!=typeof n||(n=e.elements.popper.querySelector(n)))&&Xt(e.elements.popper,n)&&(e.elements.arrow=n)},requires:["popperOffsets"],requiresIfExists:["preventOverflow"]};function ce(t){return t.split("-")[1]}var he={top:"auto",right:"auto",bottom:"auto",left:"auto"};function de(t){var e,i=t.popper,n=t.popperRect,s=t.placement,o=t.variation,r=t.offsets,a=t.position,l=t.gpuAcceleration,c=t.adaptive,h=t.roundOffsets,d=!0===h?function(t){var e=t.x,i=t.y,n=window.devicePixelRatio||1;return{x:se(se(e*n)/n)||0,y:se(se(i*n)/n)||0}}(r):"function"==typeof h?h(r):r,u=d.x,f=void 0===u?0:u,p=d.y,m=void 0===p?0:p,g=r.hasOwnProperty("x"),_=r.hasOwnProperty("y"),b=bt,v=mt,y=window;if(c){var w=te(i),E="clientHeight",A="clientWidth";w===Wt(i)&&"static"!==Yt(w=Gt(i)).position&&"absolute"===a&&(E="scrollHeight",A="scrollWidth"),w=w,s!==mt&&(s!==bt&&s!==_t||o!==Et)||(v=gt,m-=w[E]-n.height,m*=l?1:-1),s!==bt&&(s!==mt&&s!==gt||o!==Et)||(b=_t,f-=w[A]-n.width,f*=l?1:-1)}var T,O=Object.assign({position:a},c&&he);return l?Object.assign({},O,((T={})[v]=_?"0":"",T[b]=g?"0":"",T.transform=(y.devicePixelRatio||1)<=1?"translate("+f+"px, "+m+"px)":"translate3d("+f+"px, "+m+"px, 0)",T)):Object.assign({},O,((e={})[v]=_?m+"px":"",e[b]=g?f+"px":"",e.transform="",e))}const ue={name:"computeStyles",enabled:!0,phase:"beforeWrite",fn:function(t){var e=t.state,i=t.options,n=i.gpuAcceleration,s=void 0===n||n,o=i.adaptive,r=void 0===o||o,a=i.roundOffsets,l=void 0===a||a,c={placement:Ut(e.placement),variation:ce(e.placement),popper:e.elements.popper,popperRect:e.rects.popper,gpuAcceleration:s};null!=e.modifiersData.popperOffsets&&(e.styles.popper=Object.assign({},e.styles.popper,de(Object.assign({},c,{offsets:e.modifiersData.popperOffsets,position:e.options.strategy,adaptive:r,roundOffsets:l})))),null!=e.modifiersData.arrow&&(e.styles.arrow=Object.assign({},e.styles.arrow,de(Object.assign({},c,{offsets:e.modifiersData.arrow,position:"absolute",adaptive:!1,roundOffsets:l})))),e.attributes.popper=Object.assign({},e.attributes.popper,{"data-popper-placement":e.placement})},data:{}};var fe={passive:!0};const pe={name:"eventListeners",enabled:!0,phase:"write",fn:function(){},effect:function(t){var e=t.state,i=t.instance,n=t.options,s=n.scroll,o=void 0===s||s,r=n.resize,a=void 0===r||r,l=Wt(e.elements.popper),c=[].concat(e.scrollParents.reference,e.scrollParents.popper);return o&&c.forEach((function(t){t.addEventListener("scroll",i.update,fe)})),a&&l.addEventListener("resize",i.update,fe),function(){o&&c.forEach((function(t){t.removeEventListener("scroll",i.update,fe)})),a&&l.removeEventListener("resize",i.update,fe)}},data:{}};var me={left:"right",right:"left",bottom:"top",top:"bottom"};function ge(t){return t.replace(/left|right|bottom|top/g,(function(t){return me[t]}))}var _e={start:"end",end:"start"};function be(t){return t.replace(/start|end/g,(function(t){return _e[t]}))}function ve(t){var e=Wt(t);return{scrollLeft:e.pageXOffset,scrollTop:e.pageYOffset}}function ye(t){return Vt(Gt(t)).left+ve(t).scrollLeft}function we(t){var e=Yt(t),i=e.overflow,n=e.overflowX,s=e.overflowY;return/auto|scroll|overlay|hidden/.test(i+s+n)}function Ee(t){return["html","body","#document"].indexOf(Rt(t))>=0?t.ownerDocument.body:zt(t)&&we(t)?t:Ee(Zt(t))}function Ae(t,e){var i;void 0===e&&(e=[]);var n=Ee(t),s=n===(null==(i=t.ownerDocument)?void 0:i.body),o=Wt(n),r=s?[o].concat(o.visualViewport||[],we(n)?n:[]):n,a=e.concat(r);return s?a:a.concat(Ae(Zt(r)))}function Te(t){return Object.assign({},t,{left:t.x,top:t.y,right:t.x+t.width,bottom:t.y+t.height})}function Oe(t,e){return e===Tt?Te(function(t){var e=Wt(t),i=Gt(t),n=e.visualViewport,s=i.clientWidth,o=i.clientHeight,r=0,a=0;return n&&(s=n.width,o=n.height,/^((?!chrome|android).)*safari/i.test(navigator.userAgent)||(r=n.offsetLeft,a=n.offsetTop)),{width:s,height:o,x:r+ye(t),y:a}}(t)):zt(e)?function(t){var e=Vt(t);return e.top=e.top+t.clientTop,e.left=e.left+t.clientLeft,e.bottom=e.top+t.clientHeight,e.right=e.left+t.clientWidth,e.width=t.clientWidth,e.height=t.clientHeight,e.x=e.left,e.y=e.top,e}(e):Te(function(t){var e,i=Gt(t),n=ve(t),s=null==(e=t.ownerDocument)?void 0:e.body,o=ie(i.scrollWidth,i.clientWidth,s?s.scrollWidth:0,s?s.clientWidth:0),r=ie(i.scrollHeight,i.clientHeight,s?s.scrollHeight:0,s?s.clientHeight:0),a=-n.scrollLeft+ye(t),l=-n.scrollTop;return"rtl"===Yt(s||i).direction&&(a+=ie(i.clientWidth,s?s.clientWidth:0)-o),{width:o,height:r,x:a,y:l}}(Gt(t)))}function Ce(t){var e,i=t.reference,n=t.element,s=t.placement,o=s?Ut(s):null,r=s?ce(s):null,a=i.x+i.width/2-n.width/2,l=i.y+i.height/2-n.height/2;switch(o){case mt:e={x:a,y:i.y-n.height};break;case gt:e={x:a,y:i.y+i.height};break;case _t:e={x:i.x+i.width,y:l};break;case bt:e={x:i.x-n.width,y:l};break;default:e={x:i.x,y:i.y}}var c=o?ee(o):null;if(null!=c){var h="y"===c?"height":"width";switch(r){case wt:e[c]=e[c]-(i[h]/2-n[h]/2);break;case Et:e[c]=e[c]+(i[h]/2-n[h]/2)}}return e}function ke(t,e){void 0===e&&(e={});var i=e,n=i.placement,s=void 0===n?t.placement:n,o=i.boundary,r=void 0===o?At:o,a=i.rootBoundary,l=void 0===a?Tt:a,c=i.elementContext,h=void 0===c?Ot:c,d=i.altBoundary,u=void 0!==d&&d,f=i.padding,p=void 0===f?0:f,m=re("number"!=typeof p?p:ae(p,yt)),g=h===Ot?Ct:Ot,_=t.rects.popper,b=t.elements[u?g:h],v=function(t,e,i){var n="clippingParents"===e?function(t){var e=Ae(Zt(t)),i=["absolute","fixed"].indexOf(Yt(t).position)>=0&&zt(t)?te(t):t;return $t(i)?e.filter((function(t){return $t(t)&&Xt(t,i)&&"body"!==Rt(t)})):[]}(t):[].concat(e),s=[].concat(n,[i]),o=s[0],r=s.reduce((function(e,i){var n=Oe(t,i);return e.top=ie(n.top,e.top),e.right=ne(n.right,e.right),e.bottom=ne(n.bottom,e.bottom),e.left=ie(n.left,e.left),e}),Oe(t,o));return r.width=r.right-r.left,r.height=r.bottom-r.top,r.x=r.left,r.y=r.top,r}($t(b)?b:b.contextElement||Gt(t.elements.popper),r,l),y=Vt(t.elements.reference),w=Ce({reference:y,element:_,strategy:"absolute",placement:s}),E=Te(Object.assign({},_,w)),A=h===Ot?E:y,T={top:v.top-A.top+m.top,bottom:A.bottom-v.bottom+m.bottom,left:v.left-A.left+m.left,right:A.right-v.right+m.right},O=t.modifiersData.offset;if(h===Ot&&O){var C=O[s];Object.keys(T).forEach((function(t){var e=[_t,gt].indexOf(t)>=0?1:-1,i=[mt,gt].indexOf(t)>=0?"y":"x";T[t]+=C[i]*e}))}return T}function Le(t,e){void 0===e&&(e={});var i=e,n=i.placement,s=i.boundary,o=i.rootBoundary,r=i.padding,a=i.flipVariations,l=i.allowedAutoPlacements,c=void 0===l?Lt:l,h=ce(n),d=h?a?kt:kt.filter((function(t){return ce(t)===h})):yt,u=d.filter((function(t){return c.indexOf(t)>=0}));0===u.length&&(u=d);var f=u.reduce((function(e,i){return e[i]=ke(t,{placement:i,boundary:s,rootBoundary:o,padding:r})[Ut(i)],e}),{});return Object.keys(f).sort((function(t,e){return f[t]-f[e]}))}const xe={name:"flip",enabled:!0,phase:"main",fn:function(t){var e=t.state,i=t.options,n=t.name;if(!e.modifiersData[n]._skip){for(var s=i.mainAxis,o=void 0===s||s,r=i.altAxis,a=void 0===r||r,l=i.fallbackPlacements,c=i.padding,h=i.boundary,d=i.rootBoundary,u=i.altBoundary,f=i.flipVariations,p=void 0===f||f,m=i.allowedAutoPlacements,g=e.options.placement,_=Ut(g),b=l||(_!==g&&p?function(t){if(Ut(t)===vt)return[];var e=ge(t);return[be(t),e,be(e)]}(g):[ge(g)]),v=[g].concat(b).reduce((function(t,i){return t.concat(Ut(i)===vt?Le(e,{placement:i,boundary:h,rootBoundary:d,padding:c,flipVariations:p,allowedAutoPlacements:m}):i)}),[]),y=e.rects.reference,w=e.rects.popper,E=new Map,A=!0,T=v[0],O=0;O=0,D=x?"width":"height",S=ke(e,{placement:C,boundary:h,rootBoundary:d,altBoundary:u,padding:c}),N=x?L?_t:bt:L?gt:mt;y[D]>w[D]&&(N=ge(N));var I=ge(N),P=[];if(o&&P.push(S[k]<=0),a&&P.push(S[N]<=0,S[I]<=0),P.every((function(t){return t}))){T=C,A=!1;break}E.set(C,P)}if(A)for(var j=function(t){var e=v.find((function(e){var i=E.get(e);if(i)return i.slice(0,t).every((function(t){return t}))}));if(e)return T=e,"break"},M=p?3:1;M>0&&"break"!==j(M);M--);e.placement!==T&&(e.modifiersData[n]._skip=!0,e.placement=T,e.reset=!0)}},requiresIfExists:["offset"],data:{_skip:!1}};function De(t,e,i){return void 0===i&&(i={x:0,y:0}),{top:t.top-e.height-i.y,right:t.right-e.width+i.x,bottom:t.bottom-e.height+i.y,left:t.left-e.width-i.x}}function Se(t){return[mt,_t,gt,bt].some((function(e){return t[e]>=0}))}const Ne={name:"hide",enabled:!0,phase:"main",requiresIfExists:["preventOverflow"],fn:function(t){var e=t.state,i=t.name,n=e.rects.reference,s=e.rects.popper,o=e.modifiersData.preventOverflow,r=ke(e,{elementContext:"reference"}),a=ke(e,{altBoundary:!0}),l=De(r,n),c=De(a,s,o),h=Se(l),d=Se(c);e.modifiersData[i]={referenceClippingOffsets:l,popperEscapeOffsets:c,isReferenceHidden:h,hasPopperEscaped:d},e.attributes.popper=Object.assign({},e.attributes.popper,{"data-popper-reference-hidden":h,"data-popper-escaped":d})}},Ie={name:"offset",enabled:!0,phase:"main",requires:["popperOffsets"],fn:function(t){var e=t.state,i=t.options,n=t.name,s=i.offset,o=void 0===s?[0,0]:s,r=Lt.reduce((function(t,i){return t[i]=function(t,e,i){var n=Ut(t),s=[bt,mt].indexOf(n)>=0?-1:1,o="function"==typeof i?i(Object.assign({},e,{placement:t})):i,r=o[0],a=o[1];return r=r||0,a=(a||0)*s,[bt,_t].indexOf(n)>=0?{x:a,y:r}:{x:r,y:a}}(i,e.rects,o),t}),{}),a=r[e.placement],l=a.x,c=a.y;null!=e.modifiersData.popperOffsets&&(e.modifiersData.popperOffsets.x+=l,e.modifiersData.popperOffsets.y+=c),e.modifiersData[n]=r}},Pe={name:"popperOffsets",enabled:!0,phase:"read",fn:function(t){var e=t.state,i=t.name;e.modifiersData[i]=Ce({reference:e.rects.reference,element:e.rects.popper,strategy:"absolute",placement:e.placement})},data:{}},je={name:"preventOverflow",enabled:!0,phase:"main",fn:function(t){var e=t.state,i=t.options,n=t.name,s=i.mainAxis,o=void 0===s||s,r=i.altAxis,a=void 0!==r&&r,l=i.boundary,c=i.rootBoundary,h=i.altBoundary,d=i.padding,u=i.tether,f=void 0===u||u,p=i.tetherOffset,m=void 0===p?0:p,g=ke(e,{boundary:l,rootBoundary:c,padding:d,altBoundary:h}),_=Ut(e.placement),b=ce(e.placement),v=!b,y=ee(_),w="x"===y?"y":"x",E=e.modifiersData.popperOffsets,A=e.rects.reference,T=e.rects.popper,O="function"==typeof m?m(Object.assign({},e.rects,{placement:e.placement})):m,C={x:0,y:0};if(E){if(o||a){var k="y"===y?mt:bt,L="y"===y?gt:_t,x="y"===y?"height":"width",D=E[y],S=E[y]+g[k],N=E[y]-g[L],I=f?-T[x]/2:0,P=b===wt?A[x]:T[x],j=b===wt?-T[x]:-A[x],M=e.elements.arrow,H=f&&M?Kt(M):{width:0,height:0},B=e.modifiersData["arrow#persistent"]?e.modifiersData["arrow#persistent"].padding:{top:0,right:0,bottom:0,left:0},R=B[k],W=B[L],$=oe(0,A[x],H[x]),z=v?A[x]/2-I-$-R-O:P-$-R-O,q=v?-A[x]/2+I+$+W+O:j+$+W+O,F=e.elements.arrow&&te(e.elements.arrow),U=F?"y"===y?F.clientTop||0:F.clientLeft||0:0,V=e.modifiersData.offset?e.modifiersData.offset[e.placement][y]:0,K=E[y]+z-V-U,X=E[y]+q-V;if(o){var Y=oe(f?ne(S,K):S,D,f?ie(N,X):N);E[y]=Y,C[y]=Y-D}if(a){var Q="x"===y?mt:bt,G="x"===y?gt:_t,Z=E[w],J=Z+g[Q],tt=Z-g[G],et=oe(f?ne(J,K):J,Z,f?ie(tt,X):tt);E[w]=et,C[w]=et-Z}}e.modifiersData[n]=C}},requiresIfExists:["offset"]};function Me(t,e,i){void 0===i&&(i=!1);var n=zt(e);zt(e)&&function(t){var e=t.getBoundingClientRect();e.width,t.offsetWidth,e.height,t.offsetHeight}(e);var s,o,r=Gt(e),a=Vt(t),l={scrollLeft:0,scrollTop:0},c={x:0,y:0};return(n||!n&&!i)&&(("body"!==Rt(e)||we(r))&&(l=(s=e)!==Wt(s)&&zt(s)?{scrollLeft:(o=s).scrollLeft,scrollTop:o.scrollTop}:ve(s)),zt(e)?((c=Vt(e)).x+=e.clientLeft,c.y+=e.clientTop):r&&(c.x=ye(r))),{x:a.left+l.scrollLeft-c.x,y:a.top+l.scrollTop-c.y,width:a.width,height:a.height}}function He(t){var e=new Map,i=new Set,n=[];function s(t){i.add(t.name),[].concat(t.requires||[],t.requiresIfExists||[]).forEach((function(t){if(!i.has(t)){var n=e.get(t);n&&s(n)}})),n.push(t)}return t.forEach((function(t){e.set(t.name,t)})),t.forEach((function(t){i.has(t.name)||s(t)})),n}var Be={placement:"bottom",modifiers:[],strategy:"absolute"};function Re(){for(var t=arguments.length,e=new Array(t),i=0;ij.on(t,"mouseover",d))),this._element.focus(),this._element.setAttribute("aria-expanded",!0),this._menu.classList.add(Je),this._element.classList.add(Je),j.trigger(this._element,"shown.bs.dropdown",t)}hide(){if(c(this._element)||!this._isShown(this._menu))return;const t={relatedTarget:this._element};this._completeHide(t)}dispose(){this._popper&&this._popper.destroy(),super.dispose()}update(){this._inNavbar=this._detectNavbar(),this._popper&&this._popper.update()}_completeHide(t){j.trigger(this._element,"hide.bs.dropdown",t).defaultPrevented||("ontouchstart"in document.documentElement&&[].concat(...document.body.children).forEach((t=>j.off(t,"mouseover",d))),this._popper&&this._popper.destroy(),this._menu.classList.remove(Je),this._element.classList.remove(Je),this._element.setAttribute("aria-expanded","false"),U.removeDataAttribute(this._menu,"popper"),j.trigger(this._element,"hidden.bs.dropdown",t))}_getConfig(t){if(t={...this.constructor.Default,...U.getDataAttributes(this._element),...t},a(Ue,t,this.constructor.DefaultType),"object"==typeof t.reference&&!o(t.reference)&&"function"!=typeof t.reference.getBoundingClientRect)throw new TypeError(`${Ue.toUpperCase()}: Option "reference" provided type "object" without a required "getBoundingClientRect" method.`);return t}_createPopper(t){if(void 0===Fe)throw new TypeError("Bootstrap's dropdowns require Popper (https://popper.js.org)");let e=this._element;"parent"===this._config.reference?e=t:o(this._config.reference)?e=r(this._config.reference):"object"==typeof this._config.reference&&(e=this._config.reference);const i=this._getPopperConfig(),n=i.modifiers.find((t=>"applyStyles"===t.name&&!1===t.enabled));this._popper=qe(e,this._menu,i),n&&U.setDataAttribute(this._menu,"popper","static")}_isShown(t=this._element){return t.classList.contains(Je)}_getMenuElement(){return V.next(this._element,ei)[0]}_getPlacement(){const t=this._element.parentNode;if(t.classList.contains("dropend"))return ri;if(t.classList.contains("dropstart"))return ai;const e="end"===getComputedStyle(this._menu).getPropertyValue("--bs-position").trim();return t.classList.contains("dropup")?e?ni:ii:e?oi:si}_detectNavbar(){return null!==this._element.closest(".navbar")}_getOffset(){const{offset:t}=this._config;return"string"==typeof t?t.split(",").map((t=>Number.parseInt(t,10))):"function"==typeof t?e=>t(e,this._element):t}_getPopperConfig(){const t={placement:this._getPlacement(),modifiers:[{name:"preventOverflow",options:{boundary:this._config.boundary}},{name:"offset",options:{offset:this._getOffset()}}]};return"static"===this._config.display&&(t.modifiers=[{name:"applyStyles",enabled:!1}]),{...t,..."function"==typeof this._config.popperConfig?this._config.popperConfig(t):this._config.popperConfig}}_selectMenuItem({key:t,target:e}){const i=V.find(".dropdown-menu .dropdown-item:not(.disabled):not(:disabled)",this._menu).filter(l);i.length&&v(i,e,t===Ye,!i.includes(e)).focus()}static jQueryInterface(t){return this.each((function(){const e=hi.getOrCreateInstance(this,t);if("string"==typeof t){if(void 0===e[t])throw new TypeError(`No method named "${t}"`);e[t]()}}))}static clearMenus(t){if(t&&(2===t.button||"keyup"===t.type&&"Tab"!==t.key))return;const e=V.find(ti);for(let i=0,n=e.length;ie+t)),this._setElementAttributes(di,"paddingRight",(e=>e+t)),this._setElementAttributes(ui,"marginRight",(e=>e-t))}_disableOverFlow(){this._saveInitialAttribute(this._element,"overflow"),this._element.style.overflow="hidden"}_setElementAttributes(t,e,i){const n=this.getWidth();this._applyManipulationCallback(t,(t=>{if(t!==this._element&&window.innerWidth>t.clientWidth+n)return;this._saveInitialAttribute(t,e);const s=window.getComputedStyle(t)[e];t.style[e]=`${i(Number.parseFloat(s))}px`}))}reset(){this._resetElementAttributes(this._element,"overflow"),this._resetElementAttributes(this._element,"paddingRight"),this._resetElementAttributes(di,"paddingRight"),this._resetElementAttributes(ui,"marginRight")}_saveInitialAttribute(t,e){const i=t.style[e];i&&U.setDataAttribute(t,e,i)}_resetElementAttributes(t,e){this._applyManipulationCallback(t,(t=>{const i=U.getDataAttribute(t,e);void 0===i?t.style.removeProperty(e):(U.removeDataAttribute(t,e),t.style[e]=i)}))}_applyManipulationCallback(t,e){o(t)?e(t):V.find(t,this._element).forEach(e)}isOverflowing(){return this.getWidth()>0}}const pi={className:"modal-backdrop",isVisible:!0,isAnimated:!1,rootElement:"body",clickCallback:null},mi={className:"string",isVisible:"boolean",isAnimated:"boolean",rootElement:"(element|string)",clickCallback:"(function|null)"},gi="show",_i="mousedown.bs.backdrop";class bi{constructor(t){this._config=this._getConfig(t),this._isAppended=!1,this._element=null}show(t){this._config.isVisible?(this._append(),this._config.isAnimated&&u(this._getElement()),this._getElement().classList.add(gi),this._emulateAnimation((()=>{_(t)}))):_(t)}hide(t){this._config.isVisible?(this._getElement().classList.remove(gi),this._emulateAnimation((()=>{this.dispose(),_(t)}))):_(t)}_getElement(){if(!this._element){const t=document.createElement("div");t.className=this._config.className,this._config.isAnimated&&t.classList.add("fade"),this._element=t}return this._element}_getConfig(t){return(t={...pi,..."object"==typeof t?t:{}}).rootElement=r(t.rootElement),a("backdrop",t,mi),t}_append(){this._isAppended||(this._config.rootElement.append(this._getElement()),j.on(this._getElement(),_i,(()=>{_(this._config.clickCallback)})),this._isAppended=!0)}dispose(){this._isAppended&&(j.off(this._element,_i),this._element.remove(),this._isAppended=!1)}_emulateAnimation(t){b(t,this._getElement(),this._config.isAnimated)}}const vi={trapElement:null,autofocus:!0},yi={trapElement:"element",autofocus:"boolean"},wi=".bs.focustrap",Ei="backward";class Ai{constructor(t){this._config=this._getConfig(t),this._isActive=!1,this._lastTabNavDirection=null}activate(){const{trapElement:t,autofocus:e}=this._config;this._isActive||(e&&t.focus(),j.off(document,wi),j.on(document,"focusin.bs.focustrap",(t=>this._handleFocusin(t))),j.on(document,"keydown.tab.bs.focustrap",(t=>this._handleKeydown(t))),this._isActive=!0)}deactivate(){this._isActive&&(this._isActive=!1,j.off(document,wi))}_handleFocusin(t){const{target:e}=t,{trapElement:i}=this._config;if(e===document||e===i||i.contains(e))return;const n=V.focusableChildren(i);0===n.length?i.focus():this._lastTabNavDirection===Ei?n[n.length-1].focus():n[0].focus()}_handleKeydown(t){"Tab"===t.key&&(this._lastTabNavDirection=t.shiftKey?Ei:"forward")}_getConfig(t){return t={...vi,..."object"==typeof t?t:{}},a("focustrap",t,yi),t}}const Ti="modal",Oi="Escape",Ci={backdrop:!0,keyboard:!0,focus:!0},ki={backdrop:"(boolean|string)",keyboard:"boolean",focus:"boolean"},Li="hidden.bs.modal",xi="show.bs.modal",Di="resize.bs.modal",Si="click.dismiss.bs.modal",Ni="keydown.dismiss.bs.modal",Ii="mousedown.dismiss.bs.modal",Pi="modal-open",ji="show",Mi="modal-static";class Hi extends B{constructor(t,e){super(t),this._config=this._getConfig(e),this._dialog=V.findOne(".modal-dialog",this._element),this._backdrop=this._initializeBackDrop(),this._focustrap=this._initializeFocusTrap(),this._isShown=!1,this._ignoreBackdropClick=!1,this._isTransitioning=!1,this._scrollBar=new fi}static get Default(){return Ci}static get NAME(){return Ti}toggle(t){return this._isShown?this.hide():this.show(t)}show(t){this._isShown||this._isTransitioning||j.trigger(this._element,xi,{relatedTarget:t}).defaultPrevented||(this._isShown=!0,this._isAnimated()&&(this._isTransitioning=!0),this._scrollBar.hide(),document.body.classList.add(Pi),this._adjustDialog(),this._setEscapeEvent(),this._setResizeEvent(),j.on(this._dialog,Ii,(()=>{j.one(this._element,"mouseup.dismiss.bs.modal",(t=>{t.target===this._element&&(this._ignoreBackdropClick=!0)}))})),this._showBackdrop((()=>this._showElement(t))))}hide(){if(!this._isShown||this._isTransitioning)return;if(j.trigger(this._element,"hide.bs.modal").defaultPrevented)return;this._isShown=!1;const t=this._isAnimated();t&&(this._isTransitioning=!0),this._setEscapeEvent(),this._setResizeEvent(),this._focustrap.deactivate(),this._element.classList.remove(ji),j.off(this._element,Si),j.off(this._dialog,Ii),this._queueCallback((()=>this._hideModal()),this._element,t)}dispose(){[window,this._dialog].forEach((t=>j.off(t,".bs.modal"))),this._backdrop.dispose(),this._focustrap.deactivate(),super.dispose()}handleUpdate(){this._adjustDialog()}_initializeBackDrop(){return new bi({isVisible:Boolean(this._config.backdrop),isAnimated:this._isAnimated()})}_initializeFocusTrap(){return new Ai({trapElement:this._element})}_getConfig(t){return t={...Ci,...U.getDataAttributes(this._element),..."object"==typeof t?t:{}},a(Ti,t,ki),t}_showElement(t){const e=this._isAnimated(),i=V.findOne(".modal-body",this._dialog);this._element.parentNode&&this._element.parentNode.nodeType===Node.ELEMENT_NODE||document.body.append(this._element),this._element.style.display="block",this._element.removeAttribute("aria-hidden"),this._element.setAttribute("aria-modal",!0),this._element.setAttribute("role","dialog"),this._element.scrollTop=0,i&&(i.scrollTop=0),e&&u(this._element),this._element.classList.add(ji),this._queueCallback((()=>{this._config.focus&&this._focustrap.activate(),this._isTransitioning=!1,j.trigger(this._element,"shown.bs.modal",{relatedTarget:t})}),this._dialog,e)}_setEscapeEvent(){this._isShown?j.on(this._element,Ni,(t=>{this._config.keyboard&&t.key===Oi?(t.preventDefault(),this.hide()):this._config.keyboard||t.key!==Oi||this._triggerBackdropTransition()})):j.off(this._element,Ni)}_setResizeEvent(){this._isShown?j.on(window,Di,(()=>this._adjustDialog())):j.off(window,Di)}_hideModal(){this._element.style.display="none",this._element.setAttribute("aria-hidden",!0),this._element.removeAttribute("aria-modal"),this._element.removeAttribute("role"),this._isTransitioning=!1,this._backdrop.hide((()=>{document.body.classList.remove(Pi),this._resetAdjustments(),this._scrollBar.reset(),j.trigger(this._element,Li)}))}_showBackdrop(t){j.on(this._element,Si,(t=>{this._ignoreBackdropClick?this._ignoreBackdropClick=!1:t.target===t.currentTarget&&(!0===this._config.backdrop?this.hide():"static"===this._config.backdrop&&this._triggerBackdropTransition())})),this._backdrop.show(t)}_isAnimated(){return this._element.classList.contains("fade")}_triggerBackdropTransition(){if(j.trigger(this._element,"hidePrevented.bs.modal").defaultPrevented)return;const{classList:t,scrollHeight:e,style:i}=this._element,n=e>document.documentElement.clientHeight;!n&&"hidden"===i.overflowY||t.contains(Mi)||(n||(i.overflowY="hidden"),t.add(Mi),this._queueCallback((()=>{t.remove(Mi),n||this._queueCallback((()=>{i.overflowY=""}),this._dialog)}),this._dialog),this._element.focus())}_adjustDialog(){const t=this._element.scrollHeight>document.documentElement.clientHeight,e=this._scrollBar.getWidth(),i=e>0;(!i&&t&&!m()||i&&!t&&m())&&(this._element.style.paddingLeft=`${e}px`),(i&&!t&&!m()||!i&&t&&m())&&(this._element.style.paddingRight=`${e}px`)}_resetAdjustments(){this._element.style.paddingLeft="",this._element.style.paddingRight=""}static jQueryInterface(t,e){return this.each((function(){const i=Hi.getOrCreateInstance(this,t);if("string"==typeof t){if(void 0===i[t])throw new TypeError(`No method named "${t}"`);i[t](e)}}))}}j.on(document,"click.bs.modal.data-api",'[data-bs-toggle="modal"]',(function(t){const e=n(this);["A","AREA"].includes(this.tagName)&&t.preventDefault(),j.one(e,xi,(t=>{t.defaultPrevented||j.one(e,Li,(()=>{l(this)&&this.focus()}))}));const i=V.findOne(".modal.show");i&&Hi.getInstance(i).hide(),Hi.getOrCreateInstance(e).toggle(this)})),R(Hi),g(Hi);const Bi="offcanvas",Ri={backdrop:!0,keyboard:!0,scroll:!1},Wi={backdrop:"boolean",keyboard:"boolean",scroll:"boolean"},$i="show",zi=".offcanvas.show",qi="hidden.bs.offcanvas";class Fi extends B{constructor(t,e){super(t),this._config=this._getConfig(e),this._isShown=!1,this._backdrop=this._initializeBackDrop(),this._focustrap=this._initializeFocusTrap(),this._addEventListeners()}static get NAME(){return Bi}static get Default(){return Ri}toggle(t){return this._isShown?this.hide():this.show(t)}show(t){this._isShown||j.trigger(this._element,"show.bs.offcanvas",{relatedTarget:t}).defaultPrevented||(this._isShown=!0,this._element.style.visibility="visible",this._backdrop.show(),this._config.scroll||(new fi).hide(),this._element.removeAttribute("aria-hidden"),this._element.setAttribute("aria-modal",!0),this._element.setAttribute("role","dialog"),this._element.classList.add($i),this._queueCallback((()=>{this._config.scroll||this._focustrap.activate(),j.trigger(this._element,"shown.bs.offcanvas",{relatedTarget:t})}),this._element,!0))}hide(){this._isShown&&(j.trigger(this._element,"hide.bs.offcanvas").defaultPrevented||(this._focustrap.deactivate(),this._element.blur(),this._isShown=!1,this._element.classList.remove($i),this._backdrop.hide(),this._queueCallback((()=>{this._element.setAttribute("aria-hidden",!0),this._element.removeAttribute("aria-modal"),this._element.removeAttribute("role"),this._element.style.visibility="hidden",this._config.scroll||(new fi).reset(),j.trigger(this._element,qi)}),this._element,!0)))}dispose(){this._backdrop.dispose(),this._focustrap.deactivate(),super.dispose()}_getConfig(t){return t={...Ri,...U.getDataAttributes(this._element),..."object"==typeof t?t:{}},a(Bi,t,Wi),t}_initializeBackDrop(){return new bi({className:"offcanvas-backdrop",isVisible:this._config.backdrop,isAnimated:!0,rootElement:this._element.parentNode,clickCallback:()=>this.hide()})}_initializeFocusTrap(){return new Ai({trapElement:this._element})}_addEventListeners(){j.on(this._element,"keydown.dismiss.bs.offcanvas",(t=>{this._config.keyboard&&"Escape"===t.key&&this.hide()}))}static jQueryInterface(t){return this.each((function(){const e=Fi.getOrCreateInstance(this,t);if("string"==typeof t){if(void 0===e[t]||t.startsWith("_")||"constructor"===t)throw new TypeError(`No method named "${t}"`);e[t](this)}}))}}j.on(document,"click.bs.offcanvas.data-api",'[data-bs-toggle="offcanvas"]',(function(t){const e=n(this);if(["A","AREA"].includes(this.tagName)&&t.preventDefault(),c(this))return;j.one(e,qi,(()=>{l(this)&&this.focus()}));const i=V.findOne(zi);i&&i!==e&&Fi.getInstance(i).hide(),Fi.getOrCreateInstance(e).toggle(this)})),j.on(window,"load.bs.offcanvas.data-api",(()=>V.find(zi).forEach((t=>Fi.getOrCreateInstance(t).show())))),R(Fi),g(Fi);const Ui=new Set(["background","cite","href","itemtype","longdesc","poster","src","xlink:href"]),Vi=/^(?:(?:https?|mailto|ftp|tel|file|sms):|[^#&/:?]*(?:[#/?]|$))/i,Ki=/^data:(?:image\/(?:bmp|gif|jpeg|jpg|png|tiff|webp)|video\/(?:mpeg|mp4|ogg|webm)|audio\/(?:mp3|oga|ogg|opus));base64,[\d+/a-z]+=*$/i,Xi=(t,e)=>{const i=t.nodeName.toLowerCase();if(e.includes(i))return!Ui.has(i)||Boolean(Vi.test(t.nodeValue)||Ki.test(t.nodeValue));const n=e.filter((t=>t instanceof RegExp));for(let t=0,e=n.length;t{Xi(t,r)||i.removeAttribute(t.nodeName)}))}return n.body.innerHTML}const Qi="tooltip",Gi=new Set(["sanitize","allowList","sanitizeFn"]),Zi={animation:"boolean",template:"string",title:"(string|element|function)",trigger:"string",delay:"(number|object)",html:"boolean",selector:"(string|boolean)",placement:"(string|function)",offset:"(array|string|function)",container:"(string|element|boolean)",fallbackPlacements:"array",boundary:"(string|element)",customClass:"(string|function)",sanitize:"boolean",sanitizeFn:"(null|function)",allowList:"object",popperConfig:"(null|object|function)"},Ji={AUTO:"auto",TOP:"top",RIGHT:m()?"left":"right",BOTTOM:"bottom",LEFT:m()?"right":"left"},tn={animation:!0,template:'',trigger:"hover focus",title:"",delay:0,html:!1,selector:!1,placement:"top",offset:[0,0],container:!1,fallbackPlacements:["top","right","bottom","left"],boundary:"clippingParents",customClass:"",sanitize:!0,sanitizeFn:null,allowList:{"*":["class","dir","id","lang","role",/^aria-[\w-]*$/i],a:["target","href","title","rel"],area:[],b:[],br:[],col:[],code:[],div:[],em:[],hr:[],h1:[],h2:[],h3:[],h4:[],h5:[],h6:[],i:[],img:["src","srcset","alt","title","width","height"],li:[],ol:[],p:[],pre:[],s:[],small:[],span:[],sub:[],sup:[],strong:[],u:[],ul:[]},popperConfig:null},en={HIDE:"hide.bs.tooltip",HIDDEN:"hidden.bs.tooltip",SHOW:"show.bs.tooltip",SHOWN:"shown.bs.tooltip",INSERTED:"inserted.bs.tooltip",CLICK:"click.bs.tooltip",FOCUSIN:"focusin.bs.tooltip",FOCUSOUT:"focusout.bs.tooltip",MOUSEENTER:"mouseenter.bs.tooltip",MOUSELEAVE:"mouseleave.bs.tooltip"},nn="fade",sn="show",on="show",rn="out",an=".tooltip-inner",ln=".modal",cn="hide.bs.modal",hn="hover",dn="focus";class un extends B{constructor(t,e){if(void 0===Fe)throw new TypeError("Bootstrap's tooltips require Popper (https://popper.js.org)");super(t),this._isEnabled=!0,this._timeout=0,this._hoverState="",this._activeTrigger={},this._popper=null,this._config=this._getConfig(e),this.tip=null,this._setListeners()}static get Default(){return tn}static get NAME(){return Qi}static get Event(){return en}static get DefaultType(){return Zi}enable(){this._isEnabled=!0}disable(){this._isEnabled=!1}toggleEnabled(){this._isEnabled=!this._isEnabled}toggle(t){if(this._isEnabled)if(t){const e=this._initializeOnDelegatedTarget(t);e._activeTrigger.click=!e._activeTrigger.click,e._isWithActiveTrigger()?e._enter(null,e):e._leave(null,e)}else{if(this.getTipElement().classList.contains(sn))return void this._leave(null,this);this._enter(null,this)}}dispose(){clearTimeout(this._timeout),j.off(this._element.closest(ln),cn,this._hideModalHandler),this.tip&&this.tip.remove(),this._disposePopper(),super.dispose()}show(){if("none"===this._element.style.display)throw new Error("Please use show on visible elements");if(!this.isWithContent()||!this._isEnabled)return;const t=j.trigger(this._element,this.constructor.Event.SHOW),e=h(this._element),i=null===e?this._element.ownerDocument.documentElement.contains(this._element):e.contains(this._element);if(t.defaultPrevented||!i)return;"tooltip"===this.constructor.NAME&&this.tip&&this.getTitle()!==this.tip.querySelector(an).innerHTML&&(this._disposePopper(),this.tip.remove(),this.tip=null);const n=this.getTipElement(),s=(t=>{do{t+=Math.floor(1e6*Math.random())}while(document.getElementById(t));return t})(this.constructor.NAME);n.setAttribute("id",s),this._element.setAttribute("aria-describedby",s),this._config.animation&&n.classList.add(nn);const o="function"==typeof this._config.placement?this._config.placement.call(this,n,this._element):this._config.placement,r=this._getAttachment(o);this._addAttachmentClass(r);const{container:a}=this._config;H.set(n,this.constructor.DATA_KEY,this),this._element.ownerDocument.documentElement.contains(this.tip)||(a.append(n),j.trigger(this._element,this.constructor.Event.INSERTED)),this._popper?this._popper.update():this._popper=qe(this._element,n,this._getPopperConfig(r)),n.classList.add(sn);const l=this._resolvePossibleFunction(this._config.customClass);l&&n.classList.add(...l.split(" ")),"ontouchstart"in document.documentElement&&[].concat(...document.body.children).forEach((t=>{j.on(t,"mouseover",d)}));const c=this.tip.classList.contains(nn);this._queueCallback((()=>{const t=this._hoverState;this._hoverState=null,j.trigger(this._element,this.constructor.Event.SHOWN),t===rn&&this._leave(null,this)}),this.tip,c)}hide(){if(!this._popper)return;const t=this.getTipElement();if(j.trigger(this._element,this.constructor.Event.HIDE).defaultPrevented)return;t.classList.remove(sn),"ontouchstart"in document.documentElement&&[].concat(...document.body.children).forEach((t=>j.off(t,"mouseover",d))),this._activeTrigger.click=!1,this._activeTrigger.focus=!1,this._activeTrigger.hover=!1;const e=this.tip.classList.contains(nn);this._queueCallback((()=>{this._isWithActiveTrigger()||(this._hoverState!==on&&t.remove(),this._cleanTipClass(),this._element.removeAttribute("aria-describedby"),j.trigger(this._element,this.constructor.Event.HIDDEN),this._disposePopper())}),this.tip,e),this._hoverState=""}update(){null!==this._popper&&this._popper.update()}isWithContent(){return Boolean(this.getTitle())}getTipElement(){if(this.tip)return this.tip;const t=document.createElement("div");t.innerHTML=this._config.template;const e=t.children[0];return this.setContent(e),e.classList.remove(nn,sn),this.tip=e,this.tip}setContent(t){this._sanitizeAndSetContent(t,this.getTitle(),an)}_sanitizeAndSetContent(t,e,i){const n=V.findOne(i,t);e||!n?this.setElementContent(n,e):n.remove()}setElementContent(t,e){if(null!==t)return o(e)?(e=r(e),void(this._config.html?e.parentNode!==t&&(t.innerHTML="",t.append(e)):t.textContent=e.textContent)):void(this._config.html?(this._config.sanitize&&(e=Yi(e,this._config.allowList,this._config.sanitizeFn)),t.innerHTML=e):t.textContent=e)}getTitle(){const t=this._element.getAttribute("data-bs-original-title")||this._config.title;return this._resolvePossibleFunction(t)}updateAttachment(t){return"right"===t?"end":"left"===t?"start":t}_initializeOnDelegatedTarget(t,e){return e||this.constructor.getOrCreateInstance(t.delegateTarget,this._getDelegateConfig())}_getOffset(){const{offset:t}=this._config;return"string"==typeof t?t.split(",").map((t=>Number.parseInt(t,10))):"function"==typeof t?e=>t(e,this._element):t}_resolvePossibleFunction(t){return"function"==typeof t?t.call(this._element):t}_getPopperConfig(t){const e={placement:t,modifiers:[{name:"flip",options:{fallbackPlacements:this._config.fallbackPlacements}},{name:"offset",options:{offset:this._getOffset()}},{name:"preventOverflow",options:{boundary:this._config.boundary}},{name:"arrow",options:{element:`.${this.constructor.NAME}-arrow`}},{name:"onChange",enabled:!0,phase:"afterWrite",fn:t=>this._handlePopperPlacementChange(t)}],onFirstUpdate:t=>{t.options.placement!==t.placement&&this._handlePopperPlacementChange(t)}};return{...e,..."function"==typeof this._config.popperConfig?this._config.popperConfig(e):this._config.popperConfig}}_addAttachmentClass(t){this.getTipElement().classList.add(`${this._getBasicClassPrefix()}-${this.updateAttachment(t)}`)}_getAttachment(t){return Ji[t.toUpperCase()]}_setListeners(){this._config.trigger.split(" ").forEach((t=>{if("click"===t)j.on(this._element,this.constructor.Event.CLICK,this._config.selector,(t=>this.toggle(t)));else if("manual"!==t){const e=t===hn?this.constructor.Event.MOUSEENTER:this.constructor.Event.FOCUSIN,i=t===hn?this.constructor.Event.MOUSELEAVE:this.constructor.Event.FOCUSOUT;j.on(this._element,e,this._config.selector,(t=>this._enter(t))),j.on(this._element,i,this._config.selector,(t=>this._leave(t)))}})),this._hideModalHandler=()=>{this._element&&this.hide()},j.on(this._element.closest(ln),cn,this._hideModalHandler),this._config.selector?this._config={...this._config,trigger:"manual",selector:""}:this._fixTitle()}_fixTitle(){const t=this._element.getAttribute("title"),e=typeof this._element.getAttribute("data-bs-original-title");(t||"string"!==e)&&(this._element.setAttribute("data-bs-original-title",t||""),!t||this._element.getAttribute("aria-label")||this._element.textContent||this._element.setAttribute("aria-label",t),this._element.setAttribute("title",""))}_enter(t,e){e=this._initializeOnDelegatedTarget(t,e),t&&(e._activeTrigger["focusin"===t.type?dn:hn]=!0),e.getTipElement().classList.contains(sn)||e._hoverState===on?e._hoverState=on:(clearTimeout(e._timeout),e._hoverState=on,e._config.delay&&e._config.delay.show?e._timeout=setTimeout((()=>{e._hoverState===on&&e.show()}),e._config.delay.show):e.show())}_leave(t,e){e=this._initializeOnDelegatedTarget(t,e),t&&(e._activeTrigger["focusout"===t.type?dn:hn]=e._element.contains(t.relatedTarget)),e._isWithActiveTrigger()||(clearTimeout(e._timeout),e._hoverState=rn,e._config.delay&&e._config.delay.hide?e._timeout=setTimeout((()=>{e._hoverState===rn&&e.hide()}),e._config.delay.hide):e.hide())}_isWithActiveTrigger(){for(const t in this._activeTrigger)if(this._activeTrigger[t])return!0;return!1}_getConfig(t){const e=U.getDataAttributes(this._element);return Object.keys(e).forEach((t=>{Gi.has(t)&&delete e[t]})),(t={...this.constructor.Default,...e,..."object"==typeof t&&t?t:{}}).container=!1===t.container?document.body:r(t.container),"number"==typeof t.delay&&(t.delay={show:t.delay,hide:t.delay}),"number"==typeof t.title&&(t.title=t.title.toString()),"number"==typeof t.content&&(t.content=t.content.toString()),a(Qi,t,this.constructor.DefaultType),t.sanitize&&(t.template=Yi(t.template,t.allowList,t.sanitizeFn)),t}_getDelegateConfig(){const t={};for(const e in this._config)this.constructor.Default[e]!==this._config[e]&&(t[e]=this._config[e]);return t}_cleanTipClass(){const t=this.getTipElement(),e=new RegExp(`(^|\\s)${this._getBasicClassPrefix()}\\S+`,"g"),i=t.getAttribute("class").match(e);null!==i&&i.length>0&&i.map((t=>t.trim())).forEach((e=>t.classList.remove(e)))}_getBasicClassPrefix(){return"bs-tooltip"}_handlePopperPlacementChange(t){const{state:e}=t;e&&(this.tip=e.elements.popper,this._cleanTipClass(),this._addAttachmentClass(this._getAttachment(e.placement)))}_disposePopper(){this._popper&&(this._popper.destroy(),this._popper=null)}static jQueryInterface(t){return this.each((function(){const e=un.getOrCreateInstance(this,t);if("string"==typeof t){if(void 0===e[t])throw new TypeError(`No method named "${t}"`);e[t]()}}))}}g(un);const fn={...un.Default,placement:"right",offset:[0,8],trigger:"click",content:"",template:''},pn={...un.DefaultType,content:"(string|element|function)"},mn={HIDE:"hide.bs.popover",HIDDEN:"hidden.bs.popover",SHOW:"show.bs.popover",SHOWN:"shown.bs.popover",INSERTED:"inserted.bs.popover",CLICK:"click.bs.popover",FOCUSIN:"focusin.bs.popover",FOCUSOUT:"focusout.bs.popover",MOUSEENTER:"mouseenter.bs.popover",MOUSELEAVE:"mouseleave.bs.popover"};class gn extends un{static get Default(){return fn}static get NAME(){return"popover"}static get Event(){return mn}static get DefaultType(){return pn}isWithContent(){return this.getTitle()||this._getContent()}setContent(t){this._sanitizeAndSetContent(t,this.getTitle(),".popover-header"),this._sanitizeAndSetContent(t,this._getContent(),".popover-body")}_getContent(){return this._resolvePossibleFunction(this._config.content)}_getBasicClassPrefix(){return"bs-popover"}static jQueryInterface(t){return this.each((function(){const e=gn.getOrCreateInstance(this,t);if("string"==typeof t){if(void 0===e[t])throw new TypeError(`No method named "${t}"`);e[t]()}}))}}g(gn);const _n="scrollspy",bn={offset:10,method:"auto",target:""},vn={offset:"number",method:"string",target:"(string|element)"},yn="active",wn=".nav-link, .list-group-item, .dropdown-item",En="position";class An extends B{constructor(t,e){super(t),this._scrollElement="BODY"===this._element.tagName?window:this._element,this._config=this._getConfig(e),this._offsets=[],this._targets=[],this._activeTarget=null,this._scrollHeight=0,j.on(this._scrollElement,"scroll.bs.scrollspy",(()=>this._process())),this.refresh(),this._process()}static get Default(){return bn}static get NAME(){return _n}refresh(){const t=this._scrollElement===this._scrollElement.window?"offset":En,e="auto"===this._config.method?t:this._config.method,n=e===En?this._getScrollTop():0;this._offsets=[],this._targets=[],this._scrollHeight=this._getScrollHeight(),V.find(wn,this._config.target).map((t=>{const s=i(t),o=s?V.findOne(s):null;if(o){const t=o.getBoundingClientRect();if(t.width||t.height)return[U[e](o).top+n,s]}return null})).filter((t=>t)).sort(((t,e)=>t[0]-e[0])).forEach((t=>{this._offsets.push(t[0]),this._targets.push(t[1])}))}dispose(){j.off(this._scrollElement,".bs.scrollspy"),super.dispose()}_getConfig(t){return(t={...bn,...U.getDataAttributes(this._element),..."object"==typeof t&&t?t:{}}).target=r(t.target)||document.documentElement,a(_n,t,vn),t}_getScrollTop(){return this._scrollElement===window?this._scrollElement.pageYOffset:this._scrollElement.scrollTop}_getScrollHeight(){return this._scrollElement.scrollHeight||Math.max(document.body.scrollHeight,document.documentElement.scrollHeight)}_getOffsetHeight(){return this._scrollElement===window?window.innerHeight:this._scrollElement.getBoundingClientRect().height}_process(){const t=this._getScrollTop()+this._config.offset,e=this._getScrollHeight(),i=this._config.offset+e-this._getOffsetHeight();if(this._scrollHeight!==e&&this.refresh(),t>=i){const t=this._targets[this._targets.length-1];this._activeTarget!==t&&this._activate(t)}else{if(this._activeTarget&&t0)return this._activeTarget=null,void this._clear();for(let e=this._offsets.length;e--;)this._activeTarget!==this._targets[e]&&t>=this._offsets[e]&&(void 0===this._offsets[e+1]||t`${e}[data-bs-target="${t}"],${e}[href="${t}"]`)),i=V.findOne(e.join(","),this._config.target);i.classList.add(yn),i.classList.contains("dropdown-item")?V.findOne(".dropdown-toggle",i.closest(".dropdown")).classList.add(yn):V.parents(i,".nav, .list-group").forEach((t=>{V.prev(t,".nav-link, .list-group-item").forEach((t=>t.classList.add(yn))),V.prev(t,".nav-item").forEach((t=>{V.children(t,".nav-link").forEach((t=>t.classList.add(yn)))}))})),j.trigger(this._scrollElement,"activate.bs.scrollspy",{relatedTarget:t})}_clear(){V.find(wn,this._config.target).filter((t=>t.classList.contains(yn))).forEach((t=>t.classList.remove(yn)))}static jQueryInterface(t){return this.each((function(){const e=An.getOrCreateInstance(this,t);if("string"==typeof t){if(void 0===e[t])throw new TypeError(`No method named "${t}"`);e[t]()}}))}}j.on(window,"load.bs.scrollspy.data-api",(()=>{V.find('[data-bs-spy="scroll"]').forEach((t=>new An(t)))})),g(An);const Tn="active",On="fade",Cn="show",kn=".active",Ln=":scope > li > .active";class xn extends B{static get NAME(){return"tab"}show(){if(this._element.parentNode&&this._element.parentNode.nodeType===Node.ELEMENT_NODE&&this._element.classList.contains(Tn))return;let t;const e=n(this._element),i=this._element.closest(".nav, .list-group");if(i){const e="UL"===i.nodeName||"OL"===i.nodeName?Ln:kn;t=V.find(e,i),t=t[t.length-1]}const s=t?j.trigger(t,"hide.bs.tab",{relatedTarget:this._element}):null;if(j.trigger(this._element,"show.bs.tab",{relatedTarget:t}).defaultPrevented||null!==s&&s.defaultPrevented)return;this._activate(this._element,i);const o=()=>{j.trigger(t,"hidden.bs.tab",{relatedTarget:this._element}),j.trigger(this._element,"shown.bs.tab",{relatedTarget:t})};e?this._activate(e,e.parentNode,o):o()}_activate(t,e,i){const n=(!e||"UL"!==e.nodeName&&"OL"!==e.nodeName?V.children(e,kn):V.find(Ln,e))[0],s=i&&n&&n.classList.contains(On),o=()=>this._transitionComplete(t,n,i);n&&s?(n.classList.remove(Cn),this._queueCallback(o,t,!0)):o()}_transitionComplete(t,e,i){if(e){e.classList.remove(Tn);const t=V.findOne(":scope > .dropdown-menu .active",e.parentNode);t&&t.classList.remove(Tn),"tab"===e.getAttribute("role")&&e.setAttribute("aria-selected",!1)}t.classList.add(Tn),"tab"===t.getAttribute("role")&&t.setAttribute("aria-selected",!0),u(t),t.classList.contains(On)&&t.classList.add(Cn);let n=t.parentNode;if(n&&"LI"===n.nodeName&&(n=n.parentNode),n&&n.classList.contains("dropdown-menu")){const e=t.closest(".dropdown");e&&V.find(".dropdown-toggle",e).forEach((t=>t.classList.add(Tn))),t.setAttribute("aria-expanded",!0)}i&&i()}static jQueryInterface(t){return this.each((function(){const e=xn.getOrCreateInstance(this);if("string"==typeof t){if(void 0===e[t])throw new TypeError(`No method named "${t}"`);e[t]()}}))}}j.on(document,"click.bs.tab.data-api",'[data-bs-toggle="tab"], [data-bs-toggle="pill"], [data-bs-toggle="list"]',(function(t){["A","AREA"].includes(this.tagName)&&t.preventDefault(),c(this)||xn.getOrCreateInstance(this).show()})),g(xn);const Dn="toast",Sn="hide",Nn="show",In="showing",Pn={animation:"boolean",autohide:"boolean",delay:"number"},jn={animation:!0,autohide:!0,delay:5e3};class Mn extends B{constructor(t,e){super(t),this._config=this._getConfig(e),this._timeout=null,this._hasMouseInteraction=!1,this._hasKeyboardInteraction=!1,this._setListeners()}static get DefaultType(){return Pn}static get Default(){return jn}static get NAME(){return Dn}show(){j.trigger(this._element,"show.bs.toast").defaultPrevented||(this._clearTimeout(),this._config.animation&&this._element.classList.add("fade"),this._element.classList.remove(Sn),u(this._element),this._element.classList.add(Nn),this._element.classList.add(In),this._queueCallback((()=>{this._element.classList.remove(In),j.trigger(this._element,"shown.bs.toast"),this._maybeScheduleHide()}),this._element,this._config.animation))}hide(){this._element.classList.contains(Nn)&&(j.trigger(this._element,"hide.bs.toast").defaultPrevented||(this._element.classList.add(In),this._queueCallback((()=>{this._element.classList.add(Sn),this._element.classList.remove(In),this._element.classList.remove(Nn),j.trigger(this._element,"hidden.bs.toast")}),this._element,this._config.animation)))}dispose(){this._clearTimeout(),this._element.classList.contains(Nn)&&this._element.classList.remove(Nn),super.dispose()}_getConfig(t){return t={...jn,...U.getDataAttributes(this._element),..."object"==typeof t&&t?t:{}},a(Dn,t,this.constructor.DefaultType),t}_maybeScheduleHide(){this._config.autohide&&(this._hasMouseInteraction||this._hasKeyboardInteraction||(this._timeout=setTimeout((()=>{this.hide()}),this._config.delay)))}_onInteraction(t,e){switch(t.type){case"mouseover":case"mouseout":this._hasMouseInteraction=e;break;case"focusin":case"focusout":this._hasKeyboardInteraction=e}if(e)return void this._clearTimeout();const i=t.relatedTarget;this._element===i||this._element.contains(i)||this._maybeScheduleHide()}_setListeners(){j.on(this._element,"mouseover.bs.toast",(t=>this._onInteraction(t,!0))),j.on(this._element,"mouseout.bs.toast",(t=>this._onInteraction(t,!1))),j.on(this._element,"focusin.bs.toast",(t=>this._onInteraction(t,!0))),j.on(this._element,"focusout.bs.toast",(t=>this._onInteraction(t,!1)))}_clearTimeout(){clearTimeout(this._timeout),this._timeout=null}static jQueryInterface(t){return this.each((function(){const e=Mn.getOrCreateInstance(this,t);if("string"==typeof t){if(void 0===e[t])throw new TypeError(`No method named "${t}"`);e[t](this)}}))}}return R(Mn),g(Mn),{Alert:W,Button:z,Carousel:st,Collapse:pt,Dropdown:hi,Modal:Hi,Offcanvas:Fi,Popover:gn,ScrollSpy:An,Tab:xn,Toast:Mn,Tooltip:un}})); diff --git a/examples/vagrant/static-http/bootstrap.min.css b/examples/vagrant/static-http/bootstrap.min.css new file mode 100644 index 00000000..b4597d49 --- /dev/null +++ b/examples/vagrant/static-http/bootstrap.min.css @@ -0,0 +1,6 @@ +@charset "UTF-8";/*! + * Bootstrap v5.1.3 (https://getbootstrap.com/) + * Copyright 2011-2021 The Bootstrap Authors + * Copyright 2011-2021 Twitter, Inc. + * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE) + */:root{--bs-blue:#0d6efd;--bs-indigo:#6610f2;--bs-purple:#6f42c1;--bs-pink:#d63384;--bs-red:#dc3545;--bs-orange:#fd7e14;--bs-yellow:#ffc107;--bs-green:#198754;--bs-teal:#20c997;--bs-cyan:#0dcaf0;--bs-white:#fff;--bs-gray:#6c757d;--bs-gray-dark:#343a40;--bs-gray-100:#f8f9fa;--bs-gray-200:#e9ecef;--bs-gray-300:#dee2e6;--bs-gray-400:#ced4da;--bs-gray-500:#adb5bd;--bs-gray-600:#6c757d;--bs-gray-700:#495057;--bs-gray-800:#343a40;--bs-gray-900:#212529;--bs-primary:#0d6efd;--bs-secondary:#6c757d;--bs-success:#198754;--bs-info:#0dcaf0;--bs-warning:#ffc107;--bs-danger:#dc3545;--bs-light:#f8f9fa;--bs-dark:#212529;--bs-primary-rgb:13,110,253;--bs-secondary-rgb:108,117,125;--bs-success-rgb:25,135,84;--bs-info-rgb:13,202,240;--bs-warning-rgb:255,193,7;--bs-danger-rgb:220,53,69;--bs-light-rgb:248,249,250;--bs-dark-rgb:33,37,41;--bs-white-rgb:255,255,255;--bs-black-rgb:0,0,0;--bs-body-color-rgb:33,37,41;--bs-body-bg-rgb:255,255,255;--bs-font-sans-serif:system-ui,-apple-system,"Segoe UI",Roboto,"Helvetica Neue",Arial,"Noto Sans","Liberation Sans",sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji";--bs-font-monospace:SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace;--bs-gradient:linear-gradient(180deg, rgba(255, 255, 255, 0.15), rgba(255, 255, 255, 0));--bs-body-font-family:var(--bs-font-sans-serif);--bs-body-font-size:1rem;--bs-body-font-weight:400;--bs-body-line-height:1.5;--bs-body-color:#212529;--bs-body-bg:#fff}*,::after,::before{box-sizing:border-box}@media (prefers-reduced-motion:no-preference){:root{scroll-behavior:smooth}}body{margin:0;font-family:var(--bs-body-font-family);font-size:var(--bs-body-font-size);font-weight:var(--bs-body-font-weight);line-height:var(--bs-body-line-height);color:var(--bs-body-color);text-align:var(--bs-body-text-align);background-color:var(--bs-body-bg);-webkit-text-size-adjust:100%;-webkit-tap-highlight-color:transparent}hr{margin:1rem 0;color:inherit;background-color:currentColor;border:0;opacity:.25}hr:not([size]){height:1px}.h1,.h2,.h3,.h4,.h5,.h6,h1,h2,h3,h4,h5,h6{margin-top:0;margin-bottom:.5rem;font-weight:500;line-height:1.2}.h1,h1{font-size:calc(1.375rem + 1.5vw)}@media (min-width:1200px){.h1,h1{font-size:2.5rem}}.h2,h2{font-size:calc(1.325rem + .9vw)}@media (min-width:1200px){.h2,h2{font-size:2rem}}.h3,h3{font-size:calc(1.3rem + .6vw)}@media (min-width:1200px){.h3,h3{font-size:1.75rem}}.h4,h4{font-size:calc(1.275rem + .3vw)}@media (min-width:1200px){.h4,h4{font-size:1.5rem}}.h5,h5{font-size:1.25rem}.h6,h6{font-size:1rem}p{margin-top:0;margin-bottom:1rem}abbr[data-bs-original-title],abbr[title]{-webkit-text-decoration:underline dotted;text-decoration:underline dotted;cursor:help;-webkit-text-decoration-skip-ink:none;text-decoration-skip-ink:none}address{margin-bottom:1rem;font-style:normal;line-height:inherit}ol,ul{padding-left:2rem}dl,ol,ul{margin-top:0;margin-bottom:1rem}ol ol,ol ul,ul ol,ul ul{margin-bottom:0}dt{font-weight:700}dd{margin-bottom:.5rem;margin-left:0}blockquote{margin:0 0 1rem}b,strong{font-weight:bolder}.small,small{font-size:.875em}.mark,mark{padding:.2em;background-color:#fcf8e3}sub,sup{position:relative;font-size:.75em;line-height:0;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}a{color:#0d6efd;text-decoration:underline}a:hover{color:#0a58ca}a:not([href]):not([class]),a:not([href]):not([class]):hover{color:inherit;text-decoration:none}code,kbd,pre,samp{font-family:var(--bs-font-monospace);font-size:1em;direction:ltr;unicode-bidi:bidi-override}pre{display:block;margin-top:0;margin-bottom:1rem;overflow:auto;font-size:.875em}pre code{font-size:inherit;color:inherit;word-break:normal}code{font-size:.875em;color:#d63384;word-wrap:break-word}a>code{color:inherit}kbd{padding:.2rem .4rem;font-size:.875em;color:#fff;background-color:#212529;border-radius:.2rem}kbd kbd{padding:0;font-size:1em;font-weight:700}figure{margin:0 0 1rem}img,svg{vertical-align:middle}table{caption-side:bottom;border-collapse:collapse}caption{padding-top:.5rem;padding-bottom:.5rem;color:#6c757d;text-align:left}th{text-align:inherit;text-align:-webkit-match-parent}tbody,td,tfoot,th,thead,tr{border-color:inherit;border-style:solid;border-width:0}label{display:inline-block}button{border-radius:0}button:focus:not(:focus-visible){outline:0}button,input,optgroup,select,textarea{margin:0;font-family:inherit;font-size:inherit;line-height:inherit}button,select{text-transform:none}[role=button]{cursor:pointer}select{word-wrap:normal}select:disabled{opacity:1}[list]::-webkit-calendar-picker-indicator{display:none}[type=button],[type=reset],[type=submit],button{-webkit-appearance:button}[type=button]:not(:disabled),[type=reset]:not(:disabled),[type=submit]:not(:disabled),button:not(:disabled){cursor:pointer}::-moz-focus-inner{padding:0;border-style:none}textarea{resize:vertical}fieldset{min-width:0;padding:0;margin:0;border:0}legend{float:left;width:100%;padding:0;margin-bottom:.5rem;font-size:calc(1.275rem + .3vw);line-height:inherit}@media (min-width:1200px){legend{font-size:1.5rem}}legend+*{clear:left}::-webkit-datetime-edit-day-field,::-webkit-datetime-edit-fields-wrapper,::-webkit-datetime-edit-hour-field,::-webkit-datetime-edit-minute,::-webkit-datetime-edit-month-field,::-webkit-datetime-edit-text,::-webkit-datetime-edit-year-field{padding:0}::-webkit-inner-spin-button{height:auto}[type=search]{outline-offset:-2px;-webkit-appearance:textfield}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-color-swatch-wrapper{padding:0}::-webkit-file-upload-button{font:inherit}::file-selector-button{font:inherit}::-webkit-file-upload-button{font:inherit;-webkit-appearance:button}output{display:inline-block}iframe{border:0}summary{display:list-item;cursor:pointer}progress{vertical-align:baseline}[hidden]{display:none!important}.lead{font-size:1.25rem;font-weight:300}.display-1{font-size:calc(1.625rem + 4.5vw);font-weight:300;line-height:1.2}@media (min-width:1200px){.display-1{font-size:5rem}}.display-2{font-size:calc(1.575rem + 3.9vw);font-weight:300;line-height:1.2}@media (min-width:1200px){.display-2{font-size:4.5rem}}.display-3{font-size:calc(1.525rem + 3.3vw);font-weight:300;line-height:1.2}@media (min-width:1200px){.display-3{font-size:4rem}}.display-4{font-size:calc(1.475rem + 2.7vw);font-weight:300;line-height:1.2}@media (min-width:1200px){.display-4{font-size:3.5rem}}.display-5{font-size:calc(1.425rem + 2.1vw);font-weight:300;line-height:1.2}@media (min-width:1200px){.display-5{font-size:3rem}}.display-6{font-size:calc(1.375rem + 1.5vw);font-weight:300;line-height:1.2}@media (min-width:1200px){.display-6{font-size:2.5rem}}.list-unstyled{padding-left:0;list-style:none}.list-inline{padding-left:0;list-style:none}.list-inline-item{display:inline-block}.list-inline-item:not(:last-child){margin-right:.5rem}.initialism{font-size:.875em;text-transform:uppercase}.blockquote{margin-bottom:1rem;font-size:1.25rem}.blockquote>:last-child{margin-bottom:0}.blockquote-footer{margin-top:-1rem;margin-bottom:1rem;font-size:.875em;color:#6c757d}.blockquote-footer::before{content:"— "}.img-fluid{max-width:100%;height:auto}.img-thumbnail{padding:.25rem;background-color:#fff;border:1px solid #dee2e6;border-radius:.25rem;max-width:100%;height:auto}.figure{display:inline-block}.figure-img{margin-bottom:.5rem;line-height:1}.figure-caption{font-size:.875em;color:#6c757d}.container,.container-fluid,.container-lg,.container-md,.container-sm,.container-xl,.container-xxl{width:100%;padding-right:var(--bs-gutter-x,.75rem);padding-left:var(--bs-gutter-x,.75rem);margin-right:auto;margin-left:auto}@media (min-width:576px){.container,.container-sm{max-width:540px}}@media (min-width:768px){.container,.container-md,.container-sm{max-width:720px}}@media (min-width:992px){.container,.container-lg,.container-md,.container-sm{max-width:960px}}@media (min-width:1200px){.container,.container-lg,.container-md,.container-sm,.container-xl{max-width:1140px}}@media (min-width:1400px){.container,.container-lg,.container-md,.container-sm,.container-xl,.container-xxl{max-width:1320px}}.row{--bs-gutter-x:1.5rem;--bs-gutter-y:0;display:flex;flex-wrap:wrap;margin-top:calc(-1 * var(--bs-gutter-y));margin-right:calc(-.5 * var(--bs-gutter-x));margin-left:calc(-.5 * var(--bs-gutter-x))}.row>*{flex-shrink:0;width:100%;max-width:100%;padding-right:calc(var(--bs-gutter-x) * .5);padding-left:calc(var(--bs-gutter-x) * .5);margin-top:var(--bs-gutter-y)}.col{flex:1 0 0%}.row-cols-auto>*{flex:0 0 auto;width:auto}.row-cols-1>*{flex:0 0 auto;width:100%}.row-cols-2>*{flex:0 0 auto;width:50%}.row-cols-3>*{flex:0 0 auto;width:33.3333333333%}.row-cols-4>*{flex:0 0 auto;width:25%}.row-cols-5>*{flex:0 0 auto;width:20%}.row-cols-6>*{flex:0 0 auto;width:16.6666666667%}.col-auto{flex:0 0 auto;width:auto}.col-1{flex:0 0 auto;width:8.33333333%}.col-2{flex:0 0 auto;width:16.66666667%}.col-3{flex:0 0 auto;width:25%}.col-4{flex:0 0 auto;width:33.33333333%}.col-5{flex:0 0 auto;width:41.66666667%}.col-6{flex:0 0 auto;width:50%}.col-7{flex:0 0 auto;width:58.33333333%}.col-8{flex:0 0 auto;width:66.66666667%}.col-9{flex:0 0 auto;width:75%}.col-10{flex:0 0 auto;width:83.33333333%}.col-11{flex:0 0 auto;width:91.66666667%}.col-12{flex:0 0 auto;width:100%}.offset-1{margin-left:8.33333333%}.offset-2{margin-left:16.66666667%}.offset-3{margin-left:25%}.offset-4{margin-left:33.33333333%}.offset-5{margin-left:41.66666667%}.offset-6{margin-left:50%}.offset-7{margin-left:58.33333333%}.offset-8{margin-left:66.66666667%}.offset-9{margin-left:75%}.offset-10{margin-left:83.33333333%}.offset-11{margin-left:91.66666667%}.g-0,.gx-0{--bs-gutter-x:0}.g-0,.gy-0{--bs-gutter-y:0}.g-1,.gx-1{--bs-gutter-x:0.25rem}.g-1,.gy-1{--bs-gutter-y:0.25rem}.g-2,.gx-2{--bs-gutter-x:0.5rem}.g-2,.gy-2{--bs-gutter-y:0.5rem}.g-3,.gx-3{--bs-gutter-x:1rem}.g-3,.gy-3{--bs-gutter-y:1rem}.g-4,.gx-4{--bs-gutter-x:1.5rem}.g-4,.gy-4{--bs-gutter-y:1.5rem}.g-5,.gx-5{--bs-gutter-x:3rem}.g-5,.gy-5{--bs-gutter-y:3rem}@media (min-width:576px){.col-sm{flex:1 0 0%}.row-cols-sm-auto>*{flex:0 0 auto;width:auto}.row-cols-sm-1>*{flex:0 0 auto;width:100%}.row-cols-sm-2>*{flex:0 0 auto;width:50%}.row-cols-sm-3>*{flex:0 0 auto;width:33.3333333333%}.row-cols-sm-4>*{flex:0 0 auto;width:25%}.row-cols-sm-5>*{flex:0 0 auto;width:20%}.row-cols-sm-6>*{flex:0 0 auto;width:16.6666666667%}.col-sm-auto{flex:0 0 auto;width:auto}.col-sm-1{flex:0 0 auto;width:8.33333333%}.col-sm-2{flex:0 0 auto;width:16.66666667%}.col-sm-3{flex:0 0 auto;width:25%}.col-sm-4{flex:0 0 auto;width:33.33333333%}.col-sm-5{flex:0 0 auto;width:41.66666667%}.col-sm-6{flex:0 0 auto;width:50%}.col-sm-7{flex:0 0 auto;width:58.33333333%}.col-sm-8{flex:0 0 auto;width:66.66666667%}.col-sm-9{flex:0 0 auto;width:75%}.col-sm-10{flex:0 0 auto;width:83.33333333%}.col-sm-11{flex:0 0 auto;width:91.66666667%}.col-sm-12{flex:0 0 auto;width:100%}.offset-sm-0{margin-left:0}.offset-sm-1{margin-left:8.33333333%}.offset-sm-2{margin-left:16.66666667%}.offset-sm-3{margin-left:25%}.offset-sm-4{margin-left:33.33333333%}.offset-sm-5{margin-left:41.66666667%}.offset-sm-6{margin-left:50%}.offset-sm-7{margin-left:58.33333333%}.offset-sm-8{margin-left:66.66666667%}.offset-sm-9{margin-left:75%}.offset-sm-10{margin-left:83.33333333%}.offset-sm-11{margin-left:91.66666667%}.g-sm-0,.gx-sm-0{--bs-gutter-x:0}.g-sm-0,.gy-sm-0{--bs-gutter-y:0}.g-sm-1,.gx-sm-1{--bs-gutter-x:0.25rem}.g-sm-1,.gy-sm-1{--bs-gutter-y:0.25rem}.g-sm-2,.gx-sm-2{--bs-gutter-x:0.5rem}.g-sm-2,.gy-sm-2{--bs-gutter-y:0.5rem}.g-sm-3,.gx-sm-3{--bs-gutter-x:1rem}.g-sm-3,.gy-sm-3{--bs-gutter-y:1rem}.g-sm-4,.gx-sm-4{--bs-gutter-x:1.5rem}.g-sm-4,.gy-sm-4{--bs-gutter-y:1.5rem}.g-sm-5,.gx-sm-5{--bs-gutter-x:3rem}.g-sm-5,.gy-sm-5{--bs-gutter-y:3rem}}@media (min-width:768px){.col-md{flex:1 0 0%}.row-cols-md-auto>*{flex:0 0 auto;width:auto}.row-cols-md-1>*{flex:0 0 auto;width:100%}.row-cols-md-2>*{flex:0 0 auto;width:50%}.row-cols-md-3>*{flex:0 0 auto;width:33.3333333333%}.row-cols-md-4>*{flex:0 0 auto;width:25%}.row-cols-md-5>*{flex:0 0 auto;width:20%}.row-cols-md-6>*{flex:0 0 auto;width:16.6666666667%}.col-md-auto{flex:0 0 auto;width:auto}.col-md-1{flex:0 0 auto;width:8.33333333%}.col-md-2{flex:0 0 auto;width:16.66666667%}.col-md-3{flex:0 0 auto;width:25%}.col-md-4{flex:0 0 auto;width:33.33333333%}.col-md-5{flex:0 0 auto;width:41.66666667%}.col-md-6{flex:0 0 auto;width:50%}.col-md-7{flex:0 0 auto;width:58.33333333%}.col-md-8{flex:0 0 auto;width:66.66666667%}.col-md-9{flex:0 0 auto;width:75%}.col-md-10{flex:0 0 auto;width:83.33333333%}.col-md-11{flex:0 0 auto;width:91.66666667%}.col-md-12{flex:0 0 auto;width:100%}.offset-md-0{margin-left:0}.offset-md-1{margin-left:8.33333333%}.offset-md-2{margin-left:16.66666667%}.offset-md-3{margin-left:25%}.offset-md-4{margin-left:33.33333333%}.offset-md-5{margin-left:41.66666667%}.offset-md-6{margin-left:50%}.offset-md-7{margin-left:58.33333333%}.offset-md-8{margin-left:66.66666667%}.offset-md-9{margin-left:75%}.offset-md-10{margin-left:83.33333333%}.offset-md-11{margin-left:91.66666667%}.g-md-0,.gx-md-0{--bs-gutter-x:0}.g-md-0,.gy-md-0{--bs-gutter-y:0}.g-md-1,.gx-md-1{--bs-gutter-x:0.25rem}.g-md-1,.gy-md-1{--bs-gutter-y:0.25rem}.g-md-2,.gx-md-2{--bs-gutter-x:0.5rem}.g-md-2,.gy-md-2{--bs-gutter-y:0.5rem}.g-md-3,.gx-md-3{--bs-gutter-x:1rem}.g-md-3,.gy-md-3{--bs-gutter-y:1rem}.g-md-4,.gx-md-4{--bs-gutter-x:1.5rem}.g-md-4,.gy-md-4{--bs-gutter-y:1.5rem}.g-md-5,.gx-md-5{--bs-gutter-x:3rem}.g-md-5,.gy-md-5{--bs-gutter-y:3rem}}@media (min-width:992px){.col-lg{flex:1 0 0%}.row-cols-lg-auto>*{flex:0 0 auto;width:auto}.row-cols-lg-1>*{flex:0 0 auto;width:100%}.row-cols-lg-2>*{flex:0 0 auto;width:50%}.row-cols-lg-3>*{flex:0 0 auto;width:33.3333333333%}.row-cols-lg-4>*{flex:0 0 auto;width:25%}.row-cols-lg-5>*{flex:0 0 auto;width:20%}.row-cols-lg-6>*{flex:0 0 auto;width:16.6666666667%}.col-lg-auto{flex:0 0 auto;width:auto}.col-lg-1{flex:0 0 auto;width:8.33333333%}.col-lg-2{flex:0 0 auto;width:16.66666667%}.col-lg-3{flex:0 0 auto;width:25%}.col-lg-4{flex:0 0 auto;width:33.33333333%}.col-lg-5{flex:0 0 auto;width:41.66666667%}.col-lg-6{flex:0 0 auto;width:50%}.col-lg-7{flex:0 0 auto;width:58.33333333%}.col-lg-8{flex:0 0 auto;width:66.66666667%}.col-lg-9{flex:0 0 auto;width:75%}.col-lg-10{flex:0 0 auto;width:83.33333333%}.col-lg-11{flex:0 0 auto;width:91.66666667%}.col-lg-12{flex:0 0 auto;width:100%}.offset-lg-0{margin-left:0}.offset-lg-1{margin-left:8.33333333%}.offset-lg-2{margin-left:16.66666667%}.offset-lg-3{margin-left:25%}.offset-lg-4{margin-left:33.33333333%}.offset-lg-5{margin-left:41.66666667%}.offset-lg-6{margin-left:50%}.offset-lg-7{margin-left:58.33333333%}.offset-lg-8{margin-left:66.66666667%}.offset-lg-9{margin-left:75%}.offset-lg-10{margin-left:83.33333333%}.offset-lg-11{margin-left:91.66666667%}.g-lg-0,.gx-lg-0{--bs-gutter-x:0}.g-lg-0,.gy-lg-0{--bs-gutter-y:0}.g-lg-1,.gx-lg-1{--bs-gutter-x:0.25rem}.g-lg-1,.gy-lg-1{--bs-gutter-y:0.25rem}.g-lg-2,.gx-lg-2{--bs-gutter-x:0.5rem}.g-lg-2,.gy-lg-2{--bs-gutter-y:0.5rem}.g-lg-3,.gx-lg-3{--bs-gutter-x:1rem}.g-lg-3,.gy-lg-3{--bs-gutter-y:1rem}.g-lg-4,.gx-lg-4{--bs-gutter-x:1.5rem}.g-lg-4,.gy-lg-4{--bs-gutter-y:1.5rem}.g-lg-5,.gx-lg-5{--bs-gutter-x:3rem}.g-lg-5,.gy-lg-5{--bs-gutter-y:3rem}}@media (min-width:1200px){.col-xl{flex:1 0 0%}.row-cols-xl-auto>*{flex:0 0 auto;width:auto}.row-cols-xl-1>*{flex:0 0 auto;width:100%}.row-cols-xl-2>*{flex:0 0 auto;width:50%}.row-cols-xl-3>*{flex:0 0 auto;width:33.3333333333%}.row-cols-xl-4>*{flex:0 0 auto;width:25%}.row-cols-xl-5>*{flex:0 0 auto;width:20%}.row-cols-xl-6>*{flex:0 0 auto;width:16.6666666667%}.col-xl-auto{flex:0 0 auto;width:auto}.col-xl-1{flex:0 0 auto;width:8.33333333%}.col-xl-2{flex:0 0 auto;width:16.66666667%}.col-xl-3{flex:0 0 auto;width:25%}.col-xl-4{flex:0 0 auto;width:33.33333333%}.col-xl-5{flex:0 0 auto;width:41.66666667%}.col-xl-6{flex:0 0 auto;width:50%}.col-xl-7{flex:0 0 auto;width:58.33333333%}.col-xl-8{flex:0 0 auto;width:66.66666667%}.col-xl-9{flex:0 0 auto;width:75%}.col-xl-10{flex:0 0 auto;width:83.33333333%}.col-xl-11{flex:0 0 auto;width:91.66666667%}.col-xl-12{flex:0 0 auto;width:100%}.offset-xl-0{margin-left:0}.offset-xl-1{margin-left:8.33333333%}.offset-xl-2{margin-left:16.66666667%}.offset-xl-3{margin-left:25%}.offset-xl-4{margin-left:33.33333333%}.offset-xl-5{margin-left:41.66666667%}.offset-xl-6{margin-left:50%}.offset-xl-7{margin-left:58.33333333%}.offset-xl-8{margin-left:66.66666667%}.offset-xl-9{margin-left:75%}.offset-xl-10{margin-left:83.33333333%}.offset-xl-11{margin-left:91.66666667%}.g-xl-0,.gx-xl-0{--bs-gutter-x:0}.g-xl-0,.gy-xl-0{--bs-gutter-y:0}.g-xl-1,.gx-xl-1{--bs-gutter-x:0.25rem}.g-xl-1,.gy-xl-1{--bs-gutter-y:0.25rem}.g-xl-2,.gx-xl-2{--bs-gutter-x:0.5rem}.g-xl-2,.gy-xl-2{--bs-gutter-y:0.5rem}.g-xl-3,.gx-xl-3{--bs-gutter-x:1rem}.g-xl-3,.gy-xl-3{--bs-gutter-y:1rem}.g-xl-4,.gx-xl-4{--bs-gutter-x:1.5rem}.g-xl-4,.gy-xl-4{--bs-gutter-y:1.5rem}.g-xl-5,.gx-xl-5{--bs-gutter-x:3rem}.g-xl-5,.gy-xl-5{--bs-gutter-y:3rem}}@media (min-width:1400px){.col-xxl{flex:1 0 0%}.row-cols-xxl-auto>*{flex:0 0 auto;width:auto}.row-cols-xxl-1>*{flex:0 0 auto;width:100%}.row-cols-xxl-2>*{flex:0 0 auto;width:50%}.row-cols-xxl-3>*{flex:0 0 auto;width:33.3333333333%}.row-cols-xxl-4>*{flex:0 0 auto;width:25%}.row-cols-xxl-5>*{flex:0 0 auto;width:20%}.row-cols-xxl-6>*{flex:0 0 auto;width:16.6666666667%}.col-xxl-auto{flex:0 0 auto;width:auto}.col-xxl-1{flex:0 0 auto;width:8.33333333%}.col-xxl-2{flex:0 0 auto;width:16.66666667%}.col-xxl-3{flex:0 0 auto;width:25%}.col-xxl-4{flex:0 0 auto;width:33.33333333%}.col-xxl-5{flex:0 0 auto;width:41.66666667%}.col-xxl-6{flex:0 0 auto;width:50%}.col-xxl-7{flex:0 0 auto;width:58.33333333%}.col-xxl-8{flex:0 0 auto;width:66.66666667%}.col-xxl-9{flex:0 0 auto;width:75%}.col-xxl-10{flex:0 0 auto;width:83.33333333%}.col-xxl-11{flex:0 0 auto;width:91.66666667%}.col-xxl-12{flex:0 0 auto;width:100%}.offset-xxl-0{margin-left:0}.offset-xxl-1{margin-left:8.33333333%}.offset-xxl-2{margin-left:16.66666667%}.offset-xxl-3{margin-left:25%}.offset-xxl-4{margin-left:33.33333333%}.offset-xxl-5{margin-left:41.66666667%}.offset-xxl-6{margin-left:50%}.offset-xxl-7{margin-left:58.33333333%}.offset-xxl-8{margin-left:66.66666667%}.offset-xxl-9{margin-left:75%}.offset-xxl-10{margin-left:83.33333333%}.offset-xxl-11{margin-left:91.66666667%}.g-xxl-0,.gx-xxl-0{--bs-gutter-x:0}.g-xxl-0,.gy-xxl-0{--bs-gutter-y:0}.g-xxl-1,.gx-xxl-1{--bs-gutter-x:0.25rem}.g-xxl-1,.gy-xxl-1{--bs-gutter-y:0.25rem}.g-xxl-2,.gx-xxl-2{--bs-gutter-x:0.5rem}.g-xxl-2,.gy-xxl-2{--bs-gutter-y:0.5rem}.g-xxl-3,.gx-xxl-3{--bs-gutter-x:1rem}.g-xxl-3,.gy-xxl-3{--bs-gutter-y:1rem}.g-xxl-4,.gx-xxl-4{--bs-gutter-x:1.5rem}.g-xxl-4,.gy-xxl-4{--bs-gutter-y:1.5rem}.g-xxl-5,.gx-xxl-5{--bs-gutter-x:3rem}.g-xxl-5,.gy-xxl-5{--bs-gutter-y:3rem}}.table{--bs-table-bg:transparent;--bs-table-accent-bg:transparent;--bs-table-striped-color:#212529;--bs-table-striped-bg:rgba(0, 0, 0, 0.05);--bs-table-active-color:#212529;--bs-table-active-bg:rgba(0, 0, 0, 0.1);--bs-table-hover-color:#212529;--bs-table-hover-bg:rgba(0, 0, 0, 0.075);width:100%;margin-bottom:1rem;color:#212529;vertical-align:top;border-color:#dee2e6}.table>:not(caption)>*>*{padding:.5rem .5rem;background-color:var(--bs-table-bg);border-bottom-width:1px;box-shadow:inset 0 0 0 9999px var(--bs-table-accent-bg)}.table>tbody{vertical-align:inherit}.table>thead{vertical-align:bottom}.table>:not(:first-child){border-top:2px solid currentColor}.caption-top{caption-side:top}.table-sm>:not(caption)>*>*{padding:.25rem .25rem}.table-bordered>:not(caption)>*{border-width:1px 0}.table-bordered>:not(caption)>*>*{border-width:0 1px}.table-borderless>:not(caption)>*>*{border-bottom-width:0}.table-borderless>:not(:first-child){border-top-width:0}.table-striped>tbody>tr:nth-of-type(odd)>*{--bs-table-accent-bg:var(--bs-table-striped-bg);color:var(--bs-table-striped-color)}.table-active{--bs-table-accent-bg:var(--bs-table-active-bg);color:var(--bs-table-active-color)}.table-hover>tbody>tr:hover>*{--bs-table-accent-bg:var(--bs-table-hover-bg);color:var(--bs-table-hover-color)}.table-primary{--bs-table-bg:#cfe2ff;--bs-table-striped-bg:#c5d7f2;--bs-table-striped-color:#000;--bs-table-active-bg:#bacbe6;--bs-table-active-color:#000;--bs-table-hover-bg:#bfd1ec;--bs-table-hover-color:#000;color:#000;border-color:#bacbe6}.table-secondary{--bs-table-bg:#e2e3e5;--bs-table-striped-bg:#d7d8da;--bs-table-striped-color:#000;--bs-table-active-bg:#cbccce;--bs-table-active-color:#000;--bs-table-hover-bg:#d1d2d4;--bs-table-hover-color:#000;color:#000;border-color:#cbccce}.table-success{--bs-table-bg:#d1e7dd;--bs-table-striped-bg:#c7dbd2;--bs-table-striped-color:#000;--bs-table-active-bg:#bcd0c7;--bs-table-active-color:#000;--bs-table-hover-bg:#c1d6cc;--bs-table-hover-color:#000;color:#000;border-color:#bcd0c7}.table-info{--bs-table-bg:#cff4fc;--bs-table-striped-bg:#c5e8ef;--bs-table-striped-color:#000;--bs-table-active-bg:#badce3;--bs-table-active-color:#000;--bs-table-hover-bg:#bfe2e9;--bs-table-hover-color:#000;color:#000;border-color:#badce3}.table-warning{--bs-table-bg:#fff3cd;--bs-table-striped-bg:#f2e7c3;--bs-table-striped-color:#000;--bs-table-active-bg:#e6dbb9;--bs-table-active-color:#000;--bs-table-hover-bg:#ece1be;--bs-table-hover-color:#000;color:#000;border-color:#e6dbb9}.table-danger{--bs-table-bg:#f8d7da;--bs-table-striped-bg:#eccccf;--bs-table-striped-color:#000;--bs-table-active-bg:#dfc2c4;--bs-table-active-color:#000;--bs-table-hover-bg:#e5c7ca;--bs-table-hover-color:#000;color:#000;border-color:#dfc2c4}.table-light{--bs-table-bg:#f8f9fa;--bs-table-striped-bg:#ecedee;--bs-table-striped-color:#000;--bs-table-active-bg:#dfe0e1;--bs-table-active-color:#000;--bs-table-hover-bg:#e5e6e7;--bs-table-hover-color:#000;color:#000;border-color:#dfe0e1}.table-dark{--bs-table-bg:#212529;--bs-table-striped-bg:#2c3034;--bs-table-striped-color:#fff;--bs-table-active-bg:#373b3e;--bs-table-active-color:#fff;--bs-table-hover-bg:#323539;--bs-table-hover-color:#fff;color:#fff;border-color:#373b3e}.table-responsive{overflow-x:auto;-webkit-overflow-scrolling:touch}@media (max-width:575.98px){.table-responsive-sm{overflow-x:auto;-webkit-overflow-scrolling:touch}}@media (max-width:767.98px){.table-responsive-md{overflow-x:auto;-webkit-overflow-scrolling:touch}}@media (max-width:991.98px){.table-responsive-lg{overflow-x:auto;-webkit-overflow-scrolling:touch}}@media (max-width:1199.98px){.table-responsive-xl{overflow-x:auto;-webkit-overflow-scrolling:touch}}@media (max-width:1399.98px){.table-responsive-xxl{overflow-x:auto;-webkit-overflow-scrolling:touch}}.form-label{margin-bottom:.5rem}.col-form-label{padding-top:calc(.375rem + 1px);padding-bottom:calc(.375rem + 1px);margin-bottom:0;font-size:inherit;line-height:1.5}.col-form-label-lg{padding-top:calc(.5rem + 1px);padding-bottom:calc(.5rem + 1px);font-size:1.25rem}.col-form-label-sm{padding-top:calc(.25rem + 1px);padding-bottom:calc(.25rem + 1px);font-size:.875rem}.form-text{margin-top:.25rem;font-size:.875em;color:#6c757d}.form-control{display:block;width:100%;padding:.375rem .75rem;font-size:1rem;font-weight:400;line-height:1.5;color:#212529;background-color:#fff;background-clip:padding-box;border:1px solid #ced4da;-webkit-appearance:none;-moz-appearance:none;appearance:none;border-radius:.25rem;transition:border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media (prefers-reduced-motion:reduce){.form-control{transition:none}}.form-control[type=file]{overflow:hidden}.form-control[type=file]:not(:disabled):not([readonly]){cursor:pointer}.form-control:focus{color:#212529;background-color:#fff;border-color:#86b7fe;outline:0;box-shadow:0 0 0 .25rem rgba(13,110,253,.25)}.form-control::-webkit-date-and-time-value{height:1.5em}.form-control::-moz-placeholder{color:#6c757d;opacity:1}.form-control::placeholder{color:#6c757d;opacity:1}.form-control:disabled,.form-control[readonly]{background-color:#e9ecef;opacity:1}.form-control::-webkit-file-upload-button{padding:.375rem .75rem;margin:-.375rem -.75rem;-webkit-margin-end:.75rem;margin-inline-end:.75rem;color:#212529;background-color:#e9ecef;pointer-events:none;border-color:inherit;border-style:solid;border-width:0;border-inline-end-width:1px;border-radius:0;-webkit-transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out}.form-control::file-selector-button{padding:.375rem .75rem;margin:-.375rem -.75rem;-webkit-margin-end:.75rem;margin-inline-end:.75rem;color:#212529;background-color:#e9ecef;pointer-events:none;border-color:inherit;border-style:solid;border-width:0;border-inline-end-width:1px;border-radius:0;transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media (prefers-reduced-motion:reduce){.form-control::-webkit-file-upload-button{-webkit-transition:none;transition:none}.form-control::file-selector-button{transition:none}}.form-control:hover:not(:disabled):not([readonly])::-webkit-file-upload-button{background-color:#dde0e3}.form-control:hover:not(:disabled):not([readonly])::file-selector-button{background-color:#dde0e3}.form-control::-webkit-file-upload-button{padding:.375rem .75rem;margin:-.375rem -.75rem;-webkit-margin-end:.75rem;margin-inline-end:.75rem;color:#212529;background-color:#e9ecef;pointer-events:none;border-color:inherit;border-style:solid;border-width:0;border-inline-end-width:1px;border-radius:0;-webkit-transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media (prefers-reduced-motion:reduce){.form-control::-webkit-file-upload-button{-webkit-transition:none;transition:none}}.form-control:hover:not(:disabled):not([readonly])::-webkit-file-upload-button{background-color:#dde0e3}.form-control-plaintext{display:block;width:100%;padding:.375rem 0;margin-bottom:0;line-height:1.5;color:#212529;background-color:transparent;border:solid transparent;border-width:1px 0}.form-control-plaintext.form-control-lg,.form-control-plaintext.form-control-sm{padding-right:0;padding-left:0}.form-control-sm{min-height:calc(1.5em + .5rem + 2px);padding:.25rem .5rem;font-size:.875rem;border-radius:.2rem}.form-control-sm::-webkit-file-upload-button{padding:.25rem .5rem;margin:-.25rem -.5rem;-webkit-margin-end:.5rem;margin-inline-end:.5rem}.form-control-sm::file-selector-button{padding:.25rem .5rem;margin:-.25rem -.5rem;-webkit-margin-end:.5rem;margin-inline-end:.5rem}.form-control-sm::-webkit-file-upload-button{padding:.25rem .5rem;margin:-.25rem -.5rem;-webkit-margin-end:.5rem;margin-inline-end:.5rem}.form-control-lg{min-height:calc(1.5em + 1rem + 2px);padding:.5rem 1rem;font-size:1.25rem;border-radius:.3rem}.form-control-lg::-webkit-file-upload-button{padding:.5rem 1rem;margin:-.5rem -1rem;-webkit-margin-end:1rem;margin-inline-end:1rem}.form-control-lg::file-selector-button{padding:.5rem 1rem;margin:-.5rem -1rem;-webkit-margin-end:1rem;margin-inline-end:1rem}.form-control-lg::-webkit-file-upload-button{padding:.5rem 1rem;margin:-.5rem -1rem;-webkit-margin-end:1rem;margin-inline-end:1rem}textarea.form-control{min-height:calc(1.5em + .75rem + 2px)}textarea.form-control-sm{min-height:calc(1.5em + .5rem + 2px)}textarea.form-control-lg{min-height:calc(1.5em + 1rem + 2px)}.form-control-color{width:3rem;height:auto;padding:.375rem}.form-control-color:not(:disabled):not([readonly]){cursor:pointer}.form-control-color::-moz-color-swatch{height:1.5em;border-radius:.25rem}.form-control-color::-webkit-color-swatch{height:1.5em;border-radius:.25rem}.form-select{display:block;width:100%;padding:.375rem 2.25rem .375rem .75rem;-moz-padding-start:calc(0.75rem - 3px);font-size:1rem;font-weight:400;line-height:1.5;color:#212529;background-color:#fff;background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3e%3cpath fill='none' stroke='%23343a40' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='M2 5l6 6 6-6'/%3e%3c/svg%3e");background-repeat:no-repeat;background-position:right .75rem center;background-size:16px 12px;border:1px solid #ced4da;border-radius:.25rem;transition:border-color .15s ease-in-out,box-shadow .15s ease-in-out;-webkit-appearance:none;-moz-appearance:none;appearance:none}@media (prefers-reduced-motion:reduce){.form-select{transition:none}}.form-select:focus{border-color:#86b7fe;outline:0;box-shadow:0 0 0 .25rem rgba(13,110,253,.25)}.form-select[multiple],.form-select[size]:not([size="1"]){padding-right:.75rem;background-image:none}.form-select:disabled{background-color:#e9ecef}.form-select:-moz-focusring{color:transparent;text-shadow:0 0 0 #212529}.form-select-sm{padding-top:.25rem;padding-bottom:.25rem;padding-left:.5rem;font-size:.875rem;border-radius:.2rem}.form-select-lg{padding-top:.5rem;padding-bottom:.5rem;padding-left:1rem;font-size:1.25rem;border-radius:.3rem}.form-check{display:block;min-height:1.5rem;padding-left:1.5em;margin-bottom:.125rem}.form-check .form-check-input{float:left;margin-left:-1.5em}.form-check-input{width:1em;height:1em;margin-top:.25em;vertical-align:top;background-color:#fff;background-repeat:no-repeat;background-position:center;background-size:contain;border:1px solid rgba(0,0,0,.25);-webkit-appearance:none;-moz-appearance:none;appearance:none;-webkit-print-color-adjust:exact;color-adjust:exact}.form-check-input[type=checkbox]{border-radius:.25em}.form-check-input[type=radio]{border-radius:50%}.form-check-input:active{filter:brightness(90%)}.form-check-input:focus{border-color:#86b7fe;outline:0;box-shadow:0 0 0 .25rem rgba(13,110,253,.25)}.form-check-input:checked{background-color:#0d6efd;border-color:#0d6efd}.form-check-input:checked[type=checkbox]{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3e%3cpath fill='none' stroke='%23fff' stroke-linecap='round' stroke-linejoin='round' stroke-width='3' d='M6 10l3 3l6-6'/%3e%3c/svg%3e")}.form-check-input:checked[type=radio]{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3e%3ccircle r='2' fill='%23fff'/%3e%3c/svg%3e")}.form-check-input[type=checkbox]:indeterminate{background-color:#0d6efd;border-color:#0d6efd;background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3e%3cpath fill='none' stroke='%23fff' stroke-linecap='round' stroke-linejoin='round' stroke-width='3' d='M6 10h8'/%3e%3c/svg%3e")}.form-check-input:disabled{pointer-events:none;filter:none;opacity:.5}.form-check-input:disabled~.form-check-label,.form-check-input[disabled]~.form-check-label{opacity:.5}.form-switch{padding-left:2.5em}.form-switch .form-check-input{width:2em;margin-left:-2.5em;background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3e%3ccircle r='3' fill='rgba%280, 0, 0, 0.25%29'/%3e%3c/svg%3e");background-position:left center;border-radius:2em;transition:background-position .15s ease-in-out}@media (prefers-reduced-motion:reduce){.form-switch .form-check-input{transition:none}}.form-switch .form-check-input:focus{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3e%3ccircle r='3' fill='%2386b7fe'/%3e%3c/svg%3e")}.form-switch .form-check-input:checked{background-position:right center;background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3e%3ccircle r='3' fill='%23fff'/%3e%3c/svg%3e")}.form-check-inline{display:inline-block;margin-right:1rem}.btn-check{position:absolute;clip:rect(0,0,0,0);pointer-events:none}.btn-check:disabled+.btn,.btn-check[disabled]+.btn{pointer-events:none;filter:none;opacity:.65}.form-range{width:100%;height:1.5rem;padding:0;background-color:transparent;-webkit-appearance:none;-moz-appearance:none;appearance:none}.form-range:focus{outline:0}.form-range:focus::-webkit-slider-thumb{box-shadow:0 0 0 1px #fff,0 0 0 .25rem rgba(13,110,253,.25)}.form-range:focus::-moz-range-thumb{box-shadow:0 0 0 1px #fff,0 0 0 .25rem rgba(13,110,253,.25)}.form-range::-moz-focus-outer{border:0}.form-range::-webkit-slider-thumb{width:1rem;height:1rem;margin-top:-.25rem;background-color:#0d6efd;border:0;border-radius:1rem;-webkit-transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;-webkit-appearance:none;appearance:none}@media (prefers-reduced-motion:reduce){.form-range::-webkit-slider-thumb{-webkit-transition:none;transition:none}}.form-range::-webkit-slider-thumb:active{background-color:#b6d4fe}.form-range::-webkit-slider-runnable-track{width:100%;height:.5rem;color:transparent;cursor:pointer;background-color:#dee2e6;border-color:transparent;border-radius:1rem}.form-range::-moz-range-thumb{width:1rem;height:1rem;background-color:#0d6efd;border:0;border-radius:1rem;-moz-transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;-moz-appearance:none;appearance:none}@media (prefers-reduced-motion:reduce){.form-range::-moz-range-thumb{-moz-transition:none;transition:none}}.form-range::-moz-range-thumb:active{background-color:#b6d4fe}.form-range::-moz-range-track{width:100%;height:.5rem;color:transparent;cursor:pointer;background-color:#dee2e6;border-color:transparent;border-radius:1rem}.form-range:disabled{pointer-events:none}.form-range:disabled::-webkit-slider-thumb{background-color:#adb5bd}.form-range:disabled::-moz-range-thumb{background-color:#adb5bd}.form-floating{position:relative}.form-floating>.form-control,.form-floating>.form-select{height:calc(3.5rem + 2px);line-height:1.25}.form-floating>label{position:absolute;top:0;left:0;height:100%;padding:1rem .75rem;pointer-events:none;border:1px solid transparent;transform-origin:0 0;transition:opacity .1s ease-in-out,transform .1s ease-in-out}@media (prefers-reduced-motion:reduce){.form-floating>label{transition:none}}.form-floating>.form-control{padding:1rem .75rem}.form-floating>.form-control::-moz-placeholder{color:transparent}.form-floating>.form-control::placeholder{color:transparent}.form-floating>.form-control:not(:-moz-placeholder-shown){padding-top:1.625rem;padding-bottom:.625rem}.form-floating>.form-control:focus,.form-floating>.form-control:not(:placeholder-shown){padding-top:1.625rem;padding-bottom:.625rem}.form-floating>.form-control:-webkit-autofill{padding-top:1.625rem;padding-bottom:.625rem}.form-floating>.form-select{padding-top:1.625rem;padding-bottom:.625rem}.form-floating>.form-control:not(:-moz-placeholder-shown)~label{opacity:.65;transform:scale(.85) translateY(-.5rem) translateX(.15rem)}.form-floating>.form-control:focus~label,.form-floating>.form-control:not(:placeholder-shown)~label,.form-floating>.form-select~label{opacity:.65;transform:scale(.85) translateY(-.5rem) translateX(.15rem)}.form-floating>.form-control:-webkit-autofill~label{opacity:.65;transform:scale(.85) translateY(-.5rem) translateX(.15rem)}.input-group{position:relative;display:flex;flex-wrap:wrap;align-items:stretch;width:100%}.input-group>.form-control,.input-group>.form-select{position:relative;flex:1 1 auto;width:1%;min-width:0}.input-group>.form-control:focus,.input-group>.form-select:focus{z-index:3}.input-group .btn{position:relative;z-index:2}.input-group .btn:focus{z-index:3}.input-group-text{display:flex;align-items:center;padding:.375rem .75rem;font-size:1rem;font-weight:400;line-height:1.5;color:#212529;text-align:center;white-space:nowrap;background-color:#e9ecef;border:1px solid #ced4da;border-radius:.25rem}.input-group-lg>.btn,.input-group-lg>.form-control,.input-group-lg>.form-select,.input-group-lg>.input-group-text{padding:.5rem 1rem;font-size:1.25rem;border-radius:.3rem}.input-group-sm>.btn,.input-group-sm>.form-control,.input-group-sm>.form-select,.input-group-sm>.input-group-text{padding:.25rem .5rem;font-size:.875rem;border-radius:.2rem}.input-group-lg>.form-select,.input-group-sm>.form-select{padding-right:3rem}.input-group:not(.has-validation)>.dropdown-toggle:nth-last-child(n+3),.input-group:not(.has-validation)>:not(:last-child):not(.dropdown-toggle):not(.dropdown-menu){border-top-right-radius:0;border-bottom-right-radius:0}.input-group.has-validation>.dropdown-toggle:nth-last-child(n+4),.input-group.has-validation>:nth-last-child(n+3):not(.dropdown-toggle):not(.dropdown-menu){border-top-right-radius:0;border-bottom-right-radius:0}.input-group>:not(:first-child):not(.dropdown-menu):not(.valid-tooltip):not(.valid-feedback):not(.invalid-tooltip):not(.invalid-feedback){margin-left:-1px;border-top-left-radius:0;border-bottom-left-radius:0}.valid-feedback{display:none;width:100%;margin-top:.25rem;font-size:.875em;color:#198754}.valid-tooltip{position:absolute;top:100%;z-index:5;display:none;max-width:100%;padding:.25rem .5rem;margin-top:.1rem;font-size:.875rem;color:#fff;background-color:rgba(25,135,84,.9);border-radius:.25rem}.is-valid~.valid-feedback,.is-valid~.valid-tooltip,.was-validated :valid~.valid-feedback,.was-validated :valid~.valid-tooltip{display:block}.form-control.is-valid,.was-validated .form-control:valid{border-color:#198754;padding-right:calc(1.5em + .75rem);background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3e%3cpath fill='%23198754' d='M2.3 6.73L.6 4.53c-.4-1.04.46-1.4 1.1-.8l1.1 1.4 3.4-3.8c.6-.63 1.6-.27 1.2.7l-4 4.6c-.43.5-.8.4-1.1.1z'/%3e%3c/svg%3e");background-repeat:no-repeat;background-position:right calc(.375em + .1875rem) center;background-size:calc(.75em + .375rem) calc(.75em + .375rem)}.form-control.is-valid:focus,.was-validated .form-control:valid:focus{border-color:#198754;box-shadow:0 0 0 .25rem rgba(25,135,84,.25)}.was-validated textarea.form-control:valid,textarea.form-control.is-valid{padding-right:calc(1.5em + .75rem);background-position:top calc(.375em + .1875rem) right calc(.375em + .1875rem)}.form-select.is-valid,.was-validated .form-select:valid{border-color:#198754}.form-select.is-valid:not([multiple]):not([size]),.form-select.is-valid:not([multiple])[size="1"],.was-validated .form-select:valid:not([multiple]):not([size]),.was-validated .form-select:valid:not([multiple])[size="1"]{padding-right:4.125rem;background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3e%3cpath fill='none' stroke='%23343a40' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='M2 5l6 6 6-6'/%3e%3c/svg%3e"),url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3e%3cpath fill='%23198754' d='M2.3 6.73L.6 4.53c-.4-1.04.46-1.4 1.1-.8l1.1 1.4 3.4-3.8c.6-.63 1.6-.27 1.2.7l-4 4.6c-.43.5-.8.4-1.1.1z'/%3e%3c/svg%3e");background-position:right .75rem center,center right 2.25rem;background-size:16px 12px,calc(.75em + .375rem) calc(.75em + .375rem)}.form-select.is-valid:focus,.was-validated .form-select:valid:focus{border-color:#198754;box-shadow:0 0 0 .25rem rgba(25,135,84,.25)}.form-check-input.is-valid,.was-validated .form-check-input:valid{border-color:#198754}.form-check-input.is-valid:checked,.was-validated .form-check-input:valid:checked{background-color:#198754}.form-check-input.is-valid:focus,.was-validated .form-check-input:valid:focus{box-shadow:0 0 0 .25rem rgba(25,135,84,.25)}.form-check-input.is-valid~.form-check-label,.was-validated .form-check-input:valid~.form-check-label{color:#198754}.form-check-inline .form-check-input~.valid-feedback{margin-left:.5em}.input-group .form-control.is-valid,.input-group .form-select.is-valid,.was-validated .input-group .form-control:valid,.was-validated .input-group .form-select:valid{z-index:1}.input-group .form-control.is-valid:focus,.input-group .form-select.is-valid:focus,.was-validated .input-group .form-control:valid:focus,.was-validated .input-group .form-select:valid:focus{z-index:3}.invalid-feedback{display:none;width:100%;margin-top:.25rem;font-size:.875em;color:#dc3545}.invalid-tooltip{position:absolute;top:100%;z-index:5;display:none;max-width:100%;padding:.25rem .5rem;margin-top:.1rem;font-size:.875rem;color:#fff;background-color:rgba(220,53,69,.9);border-radius:.25rem}.is-invalid~.invalid-feedback,.is-invalid~.invalid-tooltip,.was-validated :invalid~.invalid-feedback,.was-validated :invalid~.invalid-tooltip{display:block}.form-control.is-invalid,.was-validated .form-control:invalid{border-color:#dc3545;padding-right:calc(1.5em + .75rem);background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12' width='12' height='12' fill='none' stroke='%23dc3545'%3e%3ccircle cx='6' cy='6' r='4.5'/%3e%3cpath stroke-linejoin='round' d='M5.8 3.6h.4L6 6.5z'/%3e%3ccircle cx='6' cy='8.2' r='.6' fill='%23dc3545' stroke='none'/%3e%3c/svg%3e");background-repeat:no-repeat;background-position:right calc(.375em + .1875rem) center;background-size:calc(.75em + .375rem) calc(.75em + .375rem)}.form-control.is-invalid:focus,.was-validated .form-control:invalid:focus{border-color:#dc3545;box-shadow:0 0 0 .25rem rgba(220,53,69,.25)}.was-validated textarea.form-control:invalid,textarea.form-control.is-invalid{padding-right:calc(1.5em + .75rem);background-position:top calc(.375em + .1875rem) right calc(.375em + .1875rem)}.form-select.is-invalid,.was-validated .form-select:invalid{border-color:#dc3545}.form-select.is-invalid:not([multiple]):not([size]),.form-select.is-invalid:not([multiple])[size="1"],.was-validated .form-select:invalid:not([multiple]):not([size]),.was-validated .form-select:invalid:not([multiple])[size="1"]{padding-right:4.125rem;background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3e%3cpath fill='none' stroke='%23343a40' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='M2 5l6 6 6-6'/%3e%3c/svg%3e"),url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12' width='12' height='12' fill='none' stroke='%23dc3545'%3e%3ccircle cx='6' cy='6' r='4.5'/%3e%3cpath stroke-linejoin='round' d='M5.8 3.6h.4L6 6.5z'/%3e%3ccircle cx='6' cy='8.2' r='.6' fill='%23dc3545' stroke='none'/%3e%3c/svg%3e");background-position:right .75rem center,center right 2.25rem;background-size:16px 12px,calc(.75em + .375rem) calc(.75em + .375rem)}.form-select.is-invalid:focus,.was-validated .form-select:invalid:focus{border-color:#dc3545;box-shadow:0 0 0 .25rem rgba(220,53,69,.25)}.form-check-input.is-invalid,.was-validated .form-check-input:invalid{border-color:#dc3545}.form-check-input.is-invalid:checked,.was-validated .form-check-input:invalid:checked{background-color:#dc3545}.form-check-input.is-invalid:focus,.was-validated .form-check-input:invalid:focus{box-shadow:0 0 0 .25rem rgba(220,53,69,.25)}.form-check-input.is-invalid~.form-check-label,.was-validated .form-check-input:invalid~.form-check-label{color:#dc3545}.form-check-inline .form-check-input~.invalid-feedback{margin-left:.5em}.input-group .form-control.is-invalid,.input-group .form-select.is-invalid,.was-validated .input-group .form-control:invalid,.was-validated .input-group .form-select:invalid{z-index:2}.input-group .form-control.is-invalid:focus,.input-group .form-select.is-invalid:focus,.was-validated .input-group .form-control:invalid:focus,.was-validated .input-group .form-select:invalid:focus{z-index:3}.btn{display:inline-block;font-weight:400;line-height:1.5;color:#212529;text-align:center;text-decoration:none;vertical-align:middle;cursor:pointer;-webkit-user-select:none;-moz-user-select:none;user-select:none;background-color:transparent;border:1px solid transparent;padding:.375rem .75rem;font-size:1rem;border-radius:.25rem;transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media (prefers-reduced-motion:reduce){.btn{transition:none}}.btn:hover{color:#212529}.btn-check:focus+.btn,.btn:focus{outline:0;box-shadow:0 0 0 .25rem rgba(13,110,253,.25)}.btn.disabled,.btn:disabled,fieldset:disabled .btn{pointer-events:none;opacity:.65}.btn-primary{color:#fff;background-color:#0d6efd;border-color:#0d6efd}.btn-primary:hover{color:#fff;background-color:#0b5ed7;border-color:#0a58ca}.btn-check:focus+.btn-primary,.btn-primary:focus{color:#fff;background-color:#0b5ed7;border-color:#0a58ca;box-shadow:0 0 0 .25rem rgba(49,132,253,.5)}.btn-check:active+.btn-primary,.btn-check:checked+.btn-primary,.btn-primary.active,.btn-primary:active,.show>.btn-primary.dropdown-toggle{color:#fff;background-color:#0a58ca;border-color:#0a53be}.btn-check:active+.btn-primary:focus,.btn-check:checked+.btn-primary:focus,.btn-primary.active:focus,.btn-primary:active:focus,.show>.btn-primary.dropdown-toggle:focus{box-shadow:0 0 0 .25rem rgba(49,132,253,.5)}.btn-primary.disabled,.btn-primary:disabled{color:#fff;background-color:#0d6efd;border-color:#0d6efd}.btn-secondary{color:#fff;background-color:#6c757d;border-color:#6c757d}.btn-secondary:hover{color:#fff;background-color:#5c636a;border-color:#565e64}.btn-check:focus+.btn-secondary,.btn-secondary:focus{color:#fff;background-color:#5c636a;border-color:#565e64;box-shadow:0 0 0 .25rem rgba(130,138,145,.5)}.btn-check:active+.btn-secondary,.btn-check:checked+.btn-secondary,.btn-secondary.active,.btn-secondary:active,.show>.btn-secondary.dropdown-toggle{color:#fff;background-color:#565e64;border-color:#51585e}.btn-check:active+.btn-secondary:focus,.btn-check:checked+.btn-secondary:focus,.btn-secondary.active:focus,.btn-secondary:active:focus,.show>.btn-secondary.dropdown-toggle:focus{box-shadow:0 0 0 .25rem rgba(130,138,145,.5)}.btn-secondary.disabled,.btn-secondary:disabled{color:#fff;background-color:#6c757d;border-color:#6c757d}.btn-success{color:#fff;background-color:#198754;border-color:#198754}.btn-success:hover{color:#fff;background-color:#157347;border-color:#146c43}.btn-check:focus+.btn-success,.btn-success:focus{color:#fff;background-color:#157347;border-color:#146c43;box-shadow:0 0 0 .25rem rgba(60,153,110,.5)}.btn-check:active+.btn-success,.btn-check:checked+.btn-success,.btn-success.active,.btn-success:active,.show>.btn-success.dropdown-toggle{color:#fff;background-color:#146c43;border-color:#13653f}.btn-check:active+.btn-success:focus,.btn-check:checked+.btn-success:focus,.btn-success.active:focus,.btn-success:active:focus,.show>.btn-success.dropdown-toggle:focus{box-shadow:0 0 0 .25rem rgba(60,153,110,.5)}.btn-success.disabled,.btn-success:disabled{color:#fff;background-color:#198754;border-color:#198754}.btn-info{color:#000;background-color:#0dcaf0;border-color:#0dcaf0}.btn-info:hover{color:#000;background-color:#31d2f2;border-color:#25cff2}.btn-check:focus+.btn-info,.btn-info:focus{color:#000;background-color:#31d2f2;border-color:#25cff2;box-shadow:0 0 0 .25rem rgba(11,172,204,.5)}.btn-check:active+.btn-info,.btn-check:checked+.btn-info,.btn-info.active,.btn-info:active,.show>.btn-info.dropdown-toggle{color:#000;background-color:#3dd5f3;border-color:#25cff2}.btn-check:active+.btn-info:focus,.btn-check:checked+.btn-info:focus,.btn-info.active:focus,.btn-info:active:focus,.show>.btn-info.dropdown-toggle:focus{box-shadow:0 0 0 .25rem rgba(11,172,204,.5)}.btn-info.disabled,.btn-info:disabled{color:#000;background-color:#0dcaf0;border-color:#0dcaf0}.btn-warning{color:#000;background-color:#ffc107;border-color:#ffc107}.btn-warning:hover{color:#000;background-color:#ffca2c;border-color:#ffc720}.btn-check:focus+.btn-warning,.btn-warning:focus{color:#000;background-color:#ffca2c;border-color:#ffc720;box-shadow:0 0 0 .25rem rgba(217,164,6,.5)}.btn-check:active+.btn-warning,.btn-check:checked+.btn-warning,.btn-warning.active,.btn-warning:active,.show>.btn-warning.dropdown-toggle{color:#000;background-color:#ffcd39;border-color:#ffc720}.btn-check:active+.btn-warning:focus,.btn-check:checked+.btn-warning:focus,.btn-warning.active:focus,.btn-warning:active:focus,.show>.btn-warning.dropdown-toggle:focus{box-shadow:0 0 0 .25rem rgba(217,164,6,.5)}.btn-warning.disabled,.btn-warning:disabled{color:#000;background-color:#ffc107;border-color:#ffc107}.btn-danger{color:#fff;background-color:#dc3545;border-color:#dc3545}.btn-danger:hover{color:#fff;background-color:#bb2d3b;border-color:#b02a37}.btn-check:focus+.btn-danger,.btn-danger:focus{color:#fff;background-color:#bb2d3b;border-color:#b02a37;box-shadow:0 0 0 .25rem rgba(225,83,97,.5)}.btn-check:active+.btn-danger,.btn-check:checked+.btn-danger,.btn-danger.active,.btn-danger:active,.show>.btn-danger.dropdown-toggle{color:#fff;background-color:#b02a37;border-color:#a52834}.btn-check:active+.btn-danger:focus,.btn-check:checked+.btn-danger:focus,.btn-danger.active:focus,.btn-danger:active:focus,.show>.btn-danger.dropdown-toggle:focus{box-shadow:0 0 0 .25rem rgba(225,83,97,.5)}.btn-danger.disabled,.btn-danger:disabled{color:#fff;background-color:#dc3545;border-color:#dc3545}.btn-light{color:#000;background-color:#f8f9fa;border-color:#f8f9fa}.btn-light:hover{color:#000;background-color:#f9fafb;border-color:#f9fafb}.btn-check:focus+.btn-light,.btn-light:focus{color:#000;background-color:#f9fafb;border-color:#f9fafb;box-shadow:0 0 0 .25rem rgba(211,212,213,.5)}.btn-check:active+.btn-light,.btn-check:checked+.btn-light,.btn-light.active,.btn-light:active,.show>.btn-light.dropdown-toggle{color:#000;background-color:#f9fafb;border-color:#f9fafb}.btn-check:active+.btn-light:focus,.btn-check:checked+.btn-light:focus,.btn-light.active:focus,.btn-light:active:focus,.show>.btn-light.dropdown-toggle:focus{box-shadow:0 0 0 .25rem rgba(211,212,213,.5)}.btn-light.disabled,.btn-light:disabled{color:#000;background-color:#f8f9fa;border-color:#f8f9fa}.btn-dark{color:#fff;background-color:#212529;border-color:#212529}.btn-dark:hover{color:#fff;background-color:#1c1f23;border-color:#1a1e21}.btn-check:focus+.btn-dark,.btn-dark:focus{color:#fff;background-color:#1c1f23;border-color:#1a1e21;box-shadow:0 0 0 .25rem rgba(66,70,73,.5)}.btn-check:active+.btn-dark,.btn-check:checked+.btn-dark,.btn-dark.active,.btn-dark:active,.show>.btn-dark.dropdown-toggle{color:#fff;background-color:#1a1e21;border-color:#191c1f}.btn-check:active+.btn-dark:focus,.btn-check:checked+.btn-dark:focus,.btn-dark.active:focus,.btn-dark:active:focus,.show>.btn-dark.dropdown-toggle:focus{box-shadow:0 0 0 .25rem rgba(66,70,73,.5)}.btn-dark.disabled,.btn-dark:disabled{color:#fff;background-color:#212529;border-color:#212529}.btn-outline-primary{color:#0d6efd;border-color:#0d6efd}.btn-outline-primary:hover{color:#fff;background-color:#0d6efd;border-color:#0d6efd}.btn-check:focus+.btn-outline-primary,.btn-outline-primary:focus{box-shadow:0 0 0 .25rem rgba(13,110,253,.5)}.btn-check:active+.btn-outline-primary,.btn-check:checked+.btn-outline-primary,.btn-outline-primary.active,.btn-outline-primary.dropdown-toggle.show,.btn-outline-primary:active{color:#fff;background-color:#0d6efd;border-color:#0d6efd}.btn-check:active+.btn-outline-primary:focus,.btn-check:checked+.btn-outline-primary:focus,.btn-outline-primary.active:focus,.btn-outline-primary.dropdown-toggle.show:focus,.btn-outline-primary:active:focus{box-shadow:0 0 0 .25rem rgba(13,110,253,.5)}.btn-outline-primary.disabled,.btn-outline-primary:disabled{color:#0d6efd;background-color:transparent}.btn-outline-secondary{color:#6c757d;border-color:#6c757d}.btn-outline-secondary:hover{color:#fff;background-color:#6c757d;border-color:#6c757d}.btn-check:focus+.btn-outline-secondary,.btn-outline-secondary:focus{box-shadow:0 0 0 .25rem rgba(108,117,125,.5)}.btn-check:active+.btn-outline-secondary,.btn-check:checked+.btn-outline-secondary,.btn-outline-secondary.active,.btn-outline-secondary.dropdown-toggle.show,.btn-outline-secondary:active{color:#fff;background-color:#6c757d;border-color:#6c757d}.btn-check:active+.btn-outline-secondary:focus,.btn-check:checked+.btn-outline-secondary:focus,.btn-outline-secondary.active:focus,.btn-outline-secondary.dropdown-toggle.show:focus,.btn-outline-secondary:active:focus{box-shadow:0 0 0 .25rem rgba(108,117,125,.5)}.btn-outline-secondary.disabled,.btn-outline-secondary:disabled{color:#6c757d;background-color:transparent}.btn-outline-success{color:#198754;border-color:#198754}.btn-outline-success:hover{color:#fff;background-color:#198754;border-color:#198754}.btn-check:focus+.btn-outline-success,.btn-outline-success:focus{box-shadow:0 0 0 .25rem rgba(25,135,84,.5)}.btn-check:active+.btn-outline-success,.btn-check:checked+.btn-outline-success,.btn-outline-success.active,.btn-outline-success.dropdown-toggle.show,.btn-outline-success:active{color:#fff;background-color:#198754;border-color:#198754}.btn-check:active+.btn-outline-success:focus,.btn-check:checked+.btn-outline-success:focus,.btn-outline-success.active:focus,.btn-outline-success.dropdown-toggle.show:focus,.btn-outline-success:active:focus{box-shadow:0 0 0 .25rem rgba(25,135,84,.5)}.btn-outline-success.disabled,.btn-outline-success:disabled{color:#198754;background-color:transparent}.btn-outline-info{color:#0dcaf0;border-color:#0dcaf0}.btn-outline-info:hover{color:#000;background-color:#0dcaf0;border-color:#0dcaf0}.btn-check:focus+.btn-outline-info,.btn-outline-info:focus{box-shadow:0 0 0 .25rem rgba(13,202,240,.5)}.btn-check:active+.btn-outline-info,.btn-check:checked+.btn-outline-info,.btn-outline-info.active,.btn-outline-info.dropdown-toggle.show,.btn-outline-info:active{color:#000;background-color:#0dcaf0;border-color:#0dcaf0}.btn-check:active+.btn-outline-info:focus,.btn-check:checked+.btn-outline-info:focus,.btn-outline-info.active:focus,.btn-outline-info.dropdown-toggle.show:focus,.btn-outline-info:active:focus{box-shadow:0 0 0 .25rem rgba(13,202,240,.5)}.btn-outline-info.disabled,.btn-outline-info:disabled{color:#0dcaf0;background-color:transparent}.btn-outline-warning{color:#ffc107;border-color:#ffc107}.btn-outline-warning:hover{color:#000;background-color:#ffc107;border-color:#ffc107}.btn-check:focus+.btn-outline-warning,.btn-outline-warning:focus{box-shadow:0 0 0 .25rem rgba(255,193,7,.5)}.btn-check:active+.btn-outline-warning,.btn-check:checked+.btn-outline-warning,.btn-outline-warning.active,.btn-outline-warning.dropdown-toggle.show,.btn-outline-warning:active{color:#000;background-color:#ffc107;border-color:#ffc107}.btn-check:active+.btn-outline-warning:focus,.btn-check:checked+.btn-outline-warning:focus,.btn-outline-warning.active:focus,.btn-outline-warning.dropdown-toggle.show:focus,.btn-outline-warning:active:focus{box-shadow:0 0 0 .25rem rgba(255,193,7,.5)}.btn-outline-warning.disabled,.btn-outline-warning:disabled{color:#ffc107;background-color:transparent}.btn-outline-danger{color:#dc3545;border-color:#dc3545}.btn-outline-danger:hover{color:#fff;background-color:#dc3545;border-color:#dc3545}.btn-check:focus+.btn-outline-danger,.btn-outline-danger:focus{box-shadow:0 0 0 .25rem rgba(220,53,69,.5)}.btn-check:active+.btn-outline-danger,.btn-check:checked+.btn-outline-danger,.btn-outline-danger.active,.btn-outline-danger.dropdown-toggle.show,.btn-outline-danger:active{color:#fff;background-color:#dc3545;border-color:#dc3545}.btn-check:active+.btn-outline-danger:focus,.btn-check:checked+.btn-outline-danger:focus,.btn-outline-danger.active:focus,.btn-outline-danger.dropdown-toggle.show:focus,.btn-outline-danger:active:focus{box-shadow:0 0 0 .25rem rgba(220,53,69,.5)}.btn-outline-danger.disabled,.btn-outline-danger:disabled{color:#dc3545;background-color:transparent}.btn-outline-light{color:#f8f9fa;border-color:#f8f9fa}.btn-outline-light:hover{color:#000;background-color:#f8f9fa;border-color:#f8f9fa}.btn-check:focus+.btn-outline-light,.btn-outline-light:focus{box-shadow:0 0 0 .25rem rgba(248,249,250,.5)}.btn-check:active+.btn-outline-light,.btn-check:checked+.btn-outline-light,.btn-outline-light.active,.btn-outline-light.dropdown-toggle.show,.btn-outline-light:active{color:#000;background-color:#f8f9fa;border-color:#f8f9fa}.btn-check:active+.btn-outline-light:focus,.btn-check:checked+.btn-outline-light:focus,.btn-outline-light.active:focus,.btn-outline-light.dropdown-toggle.show:focus,.btn-outline-light:active:focus{box-shadow:0 0 0 .25rem rgba(248,249,250,.5)}.btn-outline-light.disabled,.btn-outline-light:disabled{color:#f8f9fa;background-color:transparent}.btn-outline-dark{color:#212529;border-color:#212529}.btn-outline-dark:hover{color:#fff;background-color:#212529;border-color:#212529}.btn-check:focus+.btn-outline-dark,.btn-outline-dark:focus{box-shadow:0 0 0 .25rem rgba(33,37,41,.5)}.btn-check:active+.btn-outline-dark,.btn-check:checked+.btn-outline-dark,.btn-outline-dark.active,.btn-outline-dark.dropdown-toggle.show,.btn-outline-dark:active{color:#fff;background-color:#212529;border-color:#212529}.btn-check:active+.btn-outline-dark:focus,.btn-check:checked+.btn-outline-dark:focus,.btn-outline-dark.active:focus,.btn-outline-dark.dropdown-toggle.show:focus,.btn-outline-dark:active:focus{box-shadow:0 0 0 .25rem rgba(33,37,41,.5)}.btn-outline-dark.disabled,.btn-outline-dark:disabled{color:#212529;background-color:transparent}.btn-link{font-weight:400;color:#0d6efd;text-decoration:underline}.btn-link:hover{color:#0a58ca}.btn-link.disabled,.btn-link:disabled{color:#6c757d}.btn-group-lg>.btn,.btn-lg{padding:.5rem 1rem;font-size:1.25rem;border-radius:.3rem}.btn-group-sm>.btn,.btn-sm{padding:.25rem .5rem;font-size:.875rem;border-radius:.2rem}.fade{transition:opacity .15s linear}@media (prefers-reduced-motion:reduce){.fade{transition:none}}.fade:not(.show){opacity:0}.collapse:not(.show){display:none}.collapsing{height:0;overflow:hidden;transition:height .35s ease}@media (prefers-reduced-motion:reduce){.collapsing{transition:none}}.collapsing.collapse-horizontal{width:0;height:auto;transition:width .35s ease}@media (prefers-reduced-motion:reduce){.collapsing.collapse-horizontal{transition:none}}.dropdown,.dropend,.dropstart,.dropup{position:relative}.dropdown-toggle{white-space:nowrap}.dropdown-toggle::after{display:inline-block;margin-left:.255em;vertical-align:.255em;content:"";border-top:.3em solid;border-right:.3em solid transparent;border-bottom:0;border-left:.3em solid transparent}.dropdown-toggle:empty::after{margin-left:0}.dropdown-menu{position:absolute;z-index:1000;display:none;min-width:10rem;padding:.5rem 0;margin:0;font-size:1rem;color:#212529;text-align:left;list-style:none;background-color:#fff;background-clip:padding-box;border:1px solid rgba(0,0,0,.15);border-radius:.25rem}.dropdown-menu[data-bs-popper]{top:100%;left:0;margin-top:.125rem}.dropdown-menu-start{--bs-position:start}.dropdown-menu-start[data-bs-popper]{right:auto;left:0}.dropdown-menu-end{--bs-position:end}.dropdown-menu-end[data-bs-popper]{right:0;left:auto}@media (min-width:576px){.dropdown-menu-sm-start{--bs-position:start}.dropdown-menu-sm-start[data-bs-popper]{right:auto;left:0}.dropdown-menu-sm-end{--bs-position:end}.dropdown-menu-sm-end[data-bs-popper]{right:0;left:auto}}@media (min-width:768px){.dropdown-menu-md-start{--bs-position:start}.dropdown-menu-md-start[data-bs-popper]{right:auto;left:0}.dropdown-menu-md-end{--bs-position:end}.dropdown-menu-md-end[data-bs-popper]{right:0;left:auto}}@media (min-width:992px){.dropdown-menu-lg-start{--bs-position:start}.dropdown-menu-lg-start[data-bs-popper]{right:auto;left:0}.dropdown-menu-lg-end{--bs-position:end}.dropdown-menu-lg-end[data-bs-popper]{right:0;left:auto}}@media (min-width:1200px){.dropdown-menu-xl-start{--bs-position:start}.dropdown-menu-xl-start[data-bs-popper]{right:auto;left:0}.dropdown-menu-xl-end{--bs-position:end}.dropdown-menu-xl-end[data-bs-popper]{right:0;left:auto}}@media (min-width:1400px){.dropdown-menu-xxl-start{--bs-position:start}.dropdown-menu-xxl-start[data-bs-popper]{right:auto;left:0}.dropdown-menu-xxl-end{--bs-position:end}.dropdown-menu-xxl-end[data-bs-popper]{right:0;left:auto}}.dropup .dropdown-menu[data-bs-popper]{top:auto;bottom:100%;margin-top:0;margin-bottom:.125rem}.dropup .dropdown-toggle::after{display:inline-block;margin-left:.255em;vertical-align:.255em;content:"";border-top:0;border-right:.3em solid transparent;border-bottom:.3em solid;border-left:.3em solid transparent}.dropup .dropdown-toggle:empty::after{margin-left:0}.dropend .dropdown-menu[data-bs-popper]{top:0;right:auto;left:100%;margin-top:0;margin-left:.125rem}.dropend .dropdown-toggle::after{display:inline-block;margin-left:.255em;vertical-align:.255em;content:"";border-top:.3em solid transparent;border-right:0;border-bottom:.3em solid transparent;border-left:.3em solid}.dropend .dropdown-toggle:empty::after{margin-left:0}.dropend .dropdown-toggle::after{vertical-align:0}.dropstart .dropdown-menu[data-bs-popper]{top:0;right:100%;left:auto;margin-top:0;margin-right:.125rem}.dropstart .dropdown-toggle::after{display:inline-block;margin-left:.255em;vertical-align:.255em;content:""}.dropstart .dropdown-toggle::after{display:none}.dropstart .dropdown-toggle::before{display:inline-block;margin-right:.255em;vertical-align:.255em;content:"";border-top:.3em solid transparent;border-right:.3em solid;border-bottom:.3em solid transparent}.dropstart .dropdown-toggle:empty::after{margin-left:0}.dropstart .dropdown-toggle::before{vertical-align:0}.dropdown-divider{height:0;margin:.5rem 0;overflow:hidden;border-top:1px solid rgba(0,0,0,.15)}.dropdown-item{display:block;width:100%;padding:.25rem 1rem;clear:both;font-weight:400;color:#212529;text-align:inherit;text-decoration:none;white-space:nowrap;background-color:transparent;border:0}.dropdown-item:focus,.dropdown-item:hover{color:#1e2125;background-color:#e9ecef}.dropdown-item.active,.dropdown-item:active{color:#fff;text-decoration:none;background-color:#0d6efd}.dropdown-item.disabled,.dropdown-item:disabled{color:#adb5bd;pointer-events:none;background-color:transparent}.dropdown-menu.show{display:block}.dropdown-header{display:block;padding:.5rem 1rem;margin-bottom:0;font-size:.875rem;color:#6c757d;white-space:nowrap}.dropdown-item-text{display:block;padding:.25rem 1rem;color:#212529}.dropdown-menu-dark{color:#dee2e6;background-color:#343a40;border-color:rgba(0,0,0,.15)}.dropdown-menu-dark .dropdown-item{color:#dee2e6}.dropdown-menu-dark .dropdown-item:focus,.dropdown-menu-dark .dropdown-item:hover{color:#fff;background-color:rgba(255,255,255,.15)}.dropdown-menu-dark .dropdown-item.active,.dropdown-menu-dark .dropdown-item:active{color:#fff;background-color:#0d6efd}.dropdown-menu-dark .dropdown-item.disabled,.dropdown-menu-dark .dropdown-item:disabled{color:#adb5bd}.dropdown-menu-dark .dropdown-divider{border-color:rgba(0,0,0,.15)}.dropdown-menu-dark .dropdown-item-text{color:#dee2e6}.dropdown-menu-dark .dropdown-header{color:#adb5bd}.btn-group,.btn-group-vertical{position:relative;display:inline-flex;vertical-align:middle}.btn-group-vertical>.btn,.btn-group>.btn{position:relative;flex:1 1 auto}.btn-group-vertical>.btn-check:checked+.btn,.btn-group-vertical>.btn-check:focus+.btn,.btn-group-vertical>.btn.active,.btn-group-vertical>.btn:active,.btn-group-vertical>.btn:focus,.btn-group-vertical>.btn:hover,.btn-group>.btn-check:checked+.btn,.btn-group>.btn-check:focus+.btn,.btn-group>.btn.active,.btn-group>.btn:active,.btn-group>.btn:focus,.btn-group>.btn:hover{z-index:1}.btn-toolbar{display:flex;flex-wrap:wrap;justify-content:flex-start}.btn-toolbar .input-group{width:auto}.btn-group>.btn-group:not(:first-child),.btn-group>.btn:not(:first-child){margin-left:-1px}.btn-group>.btn-group:not(:last-child)>.btn,.btn-group>.btn:not(:last-child):not(.dropdown-toggle){border-top-right-radius:0;border-bottom-right-radius:0}.btn-group>.btn-group:not(:first-child)>.btn,.btn-group>.btn:nth-child(n+3),.btn-group>:not(.btn-check)+.btn{border-top-left-radius:0;border-bottom-left-radius:0}.dropdown-toggle-split{padding-right:.5625rem;padding-left:.5625rem}.dropdown-toggle-split::after,.dropend .dropdown-toggle-split::after,.dropup .dropdown-toggle-split::after{margin-left:0}.dropstart .dropdown-toggle-split::before{margin-right:0}.btn-group-sm>.btn+.dropdown-toggle-split,.btn-sm+.dropdown-toggle-split{padding-right:.375rem;padding-left:.375rem}.btn-group-lg>.btn+.dropdown-toggle-split,.btn-lg+.dropdown-toggle-split{padding-right:.75rem;padding-left:.75rem}.btn-group-vertical{flex-direction:column;align-items:flex-start;justify-content:center}.btn-group-vertical>.btn,.btn-group-vertical>.btn-group{width:100%}.btn-group-vertical>.btn-group:not(:first-child),.btn-group-vertical>.btn:not(:first-child){margin-top:-1px}.btn-group-vertical>.btn-group:not(:last-child)>.btn,.btn-group-vertical>.btn:not(:last-child):not(.dropdown-toggle){border-bottom-right-radius:0;border-bottom-left-radius:0}.btn-group-vertical>.btn-group:not(:first-child)>.btn,.btn-group-vertical>.btn~.btn{border-top-left-radius:0;border-top-right-radius:0}.nav{display:flex;flex-wrap:wrap;padding-left:0;margin-bottom:0;list-style:none}.nav-link{display:block;padding:.5rem 1rem;color:#0d6efd;text-decoration:none;transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out}@media (prefers-reduced-motion:reduce){.nav-link{transition:none}}.nav-link:focus,.nav-link:hover{color:#0a58ca}.nav-link.disabled{color:#6c757d;pointer-events:none;cursor:default}.nav-tabs{border-bottom:1px solid #dee2e6}.nav-tabs .nav-link{margin-bottom:-1px;background:0 0;border:1px solid transparent;border-top-left-radius:.25rem;border-top-right-radius:.25rem}.nav-tabs .nav-link:focus,.nav-tabs .nav-link:hover{border-color:#e9ecef #e9ecef #dee2e6;isolation:isolate}.nav-tabs .nav-link.disabled{color:#6c757d;background-color:transparent;border-color:transparent}.nav-tabs .nav-item.show .nav-link,.nav-tabs .nav-link.active{color:#495057;background-color:#fff;border-color:#dee2e6 #dee2e6 #fff}.nav-tabs .dropdown-menu{margin-top:-1px;border-top-left-radius:0;border-top-right-radius:0}.nav-pills .nav-link{background:0 0;border:0;border-radius:.25rem}.nav-pills .nav-link.active,.nav-pills .show>.nav-link{color:#fff;background-color:#0d6efd}.nav-fill .nav-item,.nav-fill>.nav-link{flex:1 1 auto;text-align:center}.nav-justified .nav-item,.nav-justified>.nav-link{flex-basis:0;flex-grow:1;text-align:center}.nav-fill .nav-item .nav-link,.nav-justified .nav-item .nav-link{width:100%}.tab-content>.tab-pane{display:none}.tab-content>.active{display:block}.navbar{position:relative;display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;padding-top:.5rem;padding-bottom:.5rem}.navbar>.container,.navbar>.container-fluid,.navbar>.container-lg,.navbar>.container-md,.navbar>.container-sm,.navbar>.container-xl,.navbar>.container-xxl{display:flex;flex-wrap:inherit;align-items:center;justify-content:space-between}.navbar-brand{padding-top:.3125rem;padding-bottom:.3125rem;margin-right:1rem;font-size:1.25rem;text-decoration:none;white-space:nowrap}.navbar-nav{display:flex;flex-direction:column;padding-left:0;margin-bottom:0;list-style:none}.navbar-nav .nav-link{padding-right:0;padding-left:0}.navbar-nav .dropdown-menu{position:static}.navbar-text{padding-top:.5rem;padding-bottom:.5rem}.navbar-collapse{flex-basis:100%;flex-grow:1;align-items:center}.navbar-toggler{padding:.25rem .75rem;font-size:1.25rem;line-height:1;background-color:transparent;border:1px solid transparent;border-radius:.25rem;transition:box-shadow .15s ease-in-out}@media (prefers-reduced-motion:reduce){.navbar-toggler{transition:none}}.navbar-toggler:hover{text-decoration:none}.navbar-toggler:focus{text-decoration:none;outline:0;box-shadow:0 0 0 .25rem}.navbar-toggler-icon{display:inline-block;width:1.5em;height:1.5em;vertical-align:middle;background-repeat:no-repeat;background-position:center;background-size:100%}.navbar-nav-scroll{max-height:var(--bs-scroll-height,75vh);overflow-y:auto}@media (min-width:576px){.navbar-expand-sm{flex-wrap:nowrap;justify-content:flex-start}.navbar-expand-sm .navbar-nav{flex-direction:row}.navbar-expand-sm .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-sm .navbar-nav .nav-link{padding-right:.5rem;padding-left:.5rem}.navbar-expand-sm .navbar-nav-scroll{overflow:visible}.navbar-expand-sm .navbar-collapse{display:flex!important;flex-basis:auto}.navbar-expand-sm .navbar-toggler{display:none}.navbar-expand-sm .offcanvas-header{display:none}.navbar-expand-sm .offcanvas{position:inherit;bottom:0;z-index:1000;flex-grow:1;visibility:visible!important;background-color:transparent;border-right:0;border-left:0;transition:none;transform:none}.navbar-expand-sm .offcanvas-bottom,.navbar-expand-sm .offcanvas-top{height:auto;border-top:0;border-bottom:0}.navbar-expand-sm .offcanvas-body{display:flex;flex-grow:0;padding:0;overflow-y:visible}}@media (min-width:768px){.navbar-expand-md{flex-wrap:nowrap;justify-content:flex-start}.navbar-expand-md .navbar-nav{flex-direction:row}.navbar-expand-md .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-md .navbar-nav .nav-link{padding-right:.5rem;padding-left:.5rem}.navbar-expand-md .navbar-nav-scroll{overflow:visible}.navbar-expand-md .navbar-collapse{display:flex!important;flex-basis:auto}.navbar-expand-md .navbar-toggler{display:none}.navbar-expand-md .offcanvas-header{display:none}.navbar-expand-md .offcanvas{position:inherit;bottom:0;z-index:1000;flex-grow:1;visibility:visible!important;background-color:transparent;border-right:0;border-left:0;transition:none;transform:none}.navbar-expand-md .offcanvas-bottom,.navbar-expand-md .offcanvas-top{height:auto;border-top:0;border-bottom:0}.navbar-expand-md .offcanvas-body{display:flex;flex-grow:0;padding:0;overflow-y:visible}}@media (min-width:992px){.navbar-expand-lg{flex-wrap:nowrap;justify-content:flex-start}.navbar-expand-lg .navbar-nav{flex-direction:row}.navbar-expand-lg .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-lg .navbar-nav .nav-link{padding-right:.5rem;padding-left:.5rem}.navbar-expand-lg .navbar-nav-scroll{overflow:visible}.navbar-expand-lg .navbar-collapse{display:flex!important;flex-basis:auto}.navbar-expand-lg .navbar-toggler{display:none}.navbar-expand-lg .offcanvas-header{display:none}.navbar-expand-lg .offcanvas{position:inherit;bottom:0;z-index:1000;flex-grow:1;visibility:visible!important;background-color:transparent;border-right:0;border-left:0;transition:none;transform:none}.navbar-expand-lg .offcanvas-bottom,.navbar-expand-lg .offcanvas-top{height:auto;border-top:0;border-bottom:0}.navbar-expand-lg .offcanvas-body{display:flex;flex-grow:0;padding:0;overflow-y:visible}}@media (min-width:1200px){.navbar-expand-xl{flex-wrap:nowrap;justify-content:flex-start}.navbar-expand-xl .navbar-nav{flex-direction:row}.navbar-expand-xl .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-xl .navbar-nav .nav-link{padding-right:.5rem;padding-left:.5rem}.navbar-expand-xl .navbar-nav-scroll{overflow:visible}.navbar-expand-xl .navbar-collapse{display:flex!important;flex-basis:auto}.navbar-expand-xl .navbar-toggler{display:none}.navbar-expand-xl .offcanvas-header{display:none}.navbar-expand-xl .offcanvas{position:inherit;bottom:0;z-index:1000;flex-grow:1;visibility:visible!important;background-color:transparent;border-right:0;border-left:0;transition:none;transform:none}.navbar-expand-xl .offcanvas-bottom,.navbar-expand-xl .offcanvas-top{height:auto;border-top:0;border-bottom:0}.navbar-expand-xl .offcanvas-body{display:flex;flex-grow:0;padding:0;overflow-y:visible}}@media (min-width:1400px){.navbar-expand-xxl{flex-wrap:nowrap;justify-content:flex-start}.navbar-expand-xxl .navbar-nav{flex-direction:row}.navbar-expand-xxl .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-xxl .navbar-nav .nav-link{padding-right:.5rem;padding-left:.5rem}.navbar-expand-xxl .navbar-nav-scroll{overflow:visible}.navbar-expand-xxl .navbar-collapse{display:flex!important;flex-basis:auto}.navbar-expand-xxl .navbar-toggler{display:none}.navbar-expand-xxl .offcanvas-header{display:none}.navbar-expand-xxl .offcanvas{position:inherit;bottom:0;z-index:1000;flex-grow:1;visibility:visible!important;background-color:transparent;border-right:0;border-left:0;transition:none;transform:none}.navbar-expand-xxl .offcanvas-bottom,.navbar-expand-xxl .offcanvas-top{height:auto;border-top:0;border-bottom:0}.navbar-expand-xxl .offcanvas-body{display:flex;flex-grow:0;padding:0;overflow-y:visible}}.navbar-expand{flex-wrap:nowrap;justify-content:flex-start}.navbar-expand .navbar-nav{flex-direction:row}.navbar-expand .navbar-nav .dropdown-menu{position:absolute}.navbar-expand .navbar-nav .nav-link{padding-right:.5rem;padding-left:.5rem}.navbar-expand .navbar-nav-scroll{overflow:visible}.navbar-expand .navbar-collapse{display:flex!important;flex-basis:auto}.navbar-expand .navbar-toggler{display:none}.navbar-expand .offcanvas-header{display:none}.navbar-expand .offcanvas{position:inherit;bottom:0;z-index:1000;flex-grow:1;visibility:visible!important;background-color:transparent;border-right:0;border-left:0;transition:none;transform:none}.navbar-expand .offcanvas-bottom,.navbar-expand .offcanvas-top{height:auto;border-top:0;border-bottom:0}.navbar-expand .offcanvas-body{display:flex;flex-grow:0;padding:0;overflow-y:visible}.navbar-light .navbar-brand{color:rgba(0,0,0,.9)}.navbar-light .navbar-brand:focus,.navbar-light .navbar-brand:hover{color:rgba(0,0,0,.9)}.navbar-light .navbar-nav .nav-link{color:rgba(0,0,0,.55)}.navbar-light .navbar-nav .nav-link:focus,.navbar-light .navbar-nav .nav-link:hover{color:rgba(0,0,0,.7)}.navbar-light .navbar-nav .nav-link.disabled{color:rgba(0,0,0,.3)}.navbar-light .navbar-nav .nav-link.active,.navbar-light .navbar-nav .show>.nav-link{color:rgba(0,0,0,.9)}.navbar-light .navbar-toggler{color:rgba(0,0,0,.55);border-color:rgba(0,0,0,.1)}.navbar-light .navbar-toggler-icon{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 30 30'%3e%3cpath stroke='rgba%280, 0, 0, 0.55%29' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e")}.navbar-light .navbar-text{color:rgba(0,0,0,.55)}.navbar-light .navbar-text a,.navbar-light .navbar-text a:focus,.navbar-light .navbar-text a:hover{color:rgba(0,0,0,.9)}.navbar-dark .navbar-brand{color:#fff}.navbar-dark .navbar-brand:focus,.navbar-dark .navbar-brand:hover{color:#fff}.navbar-dark .navbar-nav .nav-link{color:rgba(255,255,255,.55)}.navbar-dark .navbar-nav .nav-link:focus,.navbar-dark .navbar-nav .nav-link:hover{color:rgba(255,255,255,.75)}.navbar-dark .navbar-nav .nav-link.disabled{color:rgba(255,255,255,.25)}.navbar-dark .navbar-nav .nav-link.active,.navbar-dark .navbar-nav .show>.nav-link{color:#fff}.navbar-dark .navbar-toggler{color:rgba(255,255,255,.55);border-color:rgba(255,255,255,.1)}.navbar-dark .navbar-toggler-icon{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 30 30'%3e%3cpath stroke='rgba%28255, 255, 255, 0.55%29' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e")}.navbar-dark .navbar-text{color:rgba(255,255,255,.55)}.navbar-dark .navbar-text a,.navbar-dark .navbar-text a:focus,.navbar-dark .navbar-text a:hover{color:#fff}.card{position:relative;display:flex;flex-direction:column;min-width:0;word-wrap:break-word;background-color:#fff;background-clip:border-box;border:1px solid rgba(0,0,0,.125);border-radius:.25rem}.card>hr{margin-right:0;margin-left:0}.card>.list-group{border-top:inherit;border-bottom:inherit}.card>.list-group:first-child{border-top-width:0;border-top-left-radius:calc(.25rem - 1px);border-top-right-radius:calc(.25rem - 1px)}.card>.list-group:last-child{border-bottom-width:0;border-bottom-right-radius:calc(.25rem - 1px);border-bottom-left-radius:calc(.25rem - 1px)}.card>.card-header+.list-group,.card>.list-group+.card-footer{border-top:0}.card-body{flex:1 1 auto;padding:1rem 1rem}.card-title{margin-bottom:.5rem}.card-subtitle{margin-top:-.25rem;margin-bottom:0}.card-text:last-child{margin-bottom:0}.card-link+.card-link{margin-left:1rem}.card-header{padding:.5rem 1rem;margin-bottom:0;background-color:rgba(0,0,0,.03);border-bottom:1px solid rgba(0,0,0,.125)}.card-header:first-child{border-radius:calc(.25rem - 1px) calc(.25rem - 1px) 0 0}.card-footer{padding:.5rem 1rem;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.125)}.card-footer:last-child{border-radius:0 0 calc(.25rem - 1px) calc(.25rem - 1px)}.card-header-tabs{margin-right:-.5rem;margin-bottom:-.5rem;margin-left:-.5rem;border-bottom:0}.card-header-pills{margin-right:-.5rem;margin-left:-.5rem}.card-img-overlay{position:absolute;top:0;right:0;bottom:0;left:0;padding:1rem;border-radius:calc(.25rem - 1px)}.card-img,.card-img-bottom,.card-img-top{width:100%}.card-img,.card-img-top{border-top-left-radius:calc(.25rem - 1px);border-top-right-radius:calc(.25rem - 1px)}.card-img,.card-img-bottom{border-bottom-right-radius:calc(.25rem - 1px);border-bottom-left-radius:calc(.25rem - 1px)}.card-group>.card{margin-bottom:.75rem}@media (min-width:576px){.card-group{display:flex;flex-flow:row wrap}.card-group>.card{flex:1 0 0%;margin-bottom:0}.card-group>.card+.card{margin-left:0;border-left:0}.card-group>.card:not(:last-child){border-top-right-radius:0;border-bottom-right-radius:0}.card-group>.card:not(:last-child) .card-header,.card-group>.card:not(:last-child) .card-img-top{border-top-right-radius:0}.card-group>.card:not(:last-child) .card-footer,.card-group>.card:not(:last-child) .card-img-bottom{border-bottom-right-radius:0}.card-group>.card:not(:first-child){border-top-left-radius:0;border-bottom-left-radius:0}.card-group>.card:not(:first-child) .card-header,.card-group>.card:not(:first-child) .card-img-top{border-top-left-radius:0}.card-group>.card:not(:first-child) .card-footer,.card-group>.card:not(:first-child) .card-img-bottom{border-bottom-left-radius:0}}.accordion-button{position:relative;display:flex;align-items:center;width:100%;padding:1rem 1.25rem;font-size:1rem;color:#212529;text-align:left;background-color:#fff;border:0;border-radius:0;overflow-anchor:none;transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out,border-radius .15s ease}@media (prefers-reduced-motion:reduce){.accordion-button{transition:none}}.accordion-button:not(.collapsed){color:#0c63e4;background-color:#e7f1ff;box-shadow:inset 0 -1px 0 rgba(0,0,0,.125)}.accordion-button:not(.collapsed)::after{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%230c63e4'%3e%3cpath fill-rule='evenodd' d='M1.646 4.646a.5.5 0 0 1 .708 0L8 10.293l5.646-5.647a.5.5 0 0 1 .708.708l-6 6a.5.5 0 0 1-.708 0l-6-6a.5.5 0 0 1 0-.708z'/%3e%3c/svg%3e");transform:rotate(-180deg)}.accordion-button::after{flex-shrink:0;width:1.25rem;height:1.25rem;margin-left:auto;content:"";background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%23212529'%3e%3cpath fill-rule='evenodd' d='M1.646 4.646a.5.5 0 0 1 .708 0L8 10.293l5.646-5.647a.5.5 0 0 1 .708.708l-6 6a.5.5 0 0 1-.708 0l-6-6a.5.5 0 0 1 0-.708z'/%3e%3c/svg%3e");background-repeat:no-repeat;background-size:1.25rem;transition:transform .2s ease-in-out}@media (prefers-reduced-motion:reduce){.accordion-button::after{transition:none}}.accordion-button:hover{z-index:2}.accordion-button:focus{z-index:3;border-color:#86b7fe;outline:0;box-shadow:0 0 0 .25rem rgba(13,110,253,.25)}.accordion-header{margin-bottom:0}.accordion-item{background-color:#fff;border:1px solid rgba(0,0,0,.125)}.accordion-item:first-of-type{border-top-left-radius:.25rem;border-top-right-radius:.25rem}.accordion-item:first-of-type .accordion-button{border-top-left-radius:calc(.25rem - 1px);border-top-right-radius:calc(.25rem - 1px)}.accordion-item:not(:first-of-type){border-top:0}.accordion-item:last-of-type{border-bottom-right-radius:.25rem;border-bottom-left-radius:.25rem}.accordion-item:last-of-type .accordion-button.collapsed{border-bottom-right-radius:calc(.25rem - 1px);border-bottom-left-radius:calc(.25rem - 1px)}.accordion-item:last-of-type .accordion-collapse{border-bottom-right-radius:.25rem;border-bottom-left-radius:.25rem}.accordion-body{padding:1rem 1.25rem}.accordion-flush .accordion-collapse{border-width:0}.accordion-flush .accordion-item{border-right:0;border-left:0;border-radius:0}.accordion-flush .accordion-item:first-child{border-top:0}.accordion-flush .accordion-item:last-child{border-bottom:0}.accordion-flush .accordion-item .accordion-button{border-radius:0}.breadcrumb{display:flex;flex-wrap:wrap;padding:0 0;margin-bottom:1rem;list-style:none}.breadcrumb-item+.breadcrumb-item{padding-left:.5rem}.breadcrumb-item+.breadcrumb-item::before{float:left;padding-right:.5rem;color:#6c757d;content:var(--bs-breadcrumb-divider, "/")}.breadcrumb-item.active{color:#6c757d}.pagination{display:flex;padding-left:0;list-style:none}.page-link{position:relative;display:block;color:#0d6efd;text-decoration:none;background-color:#fff;border:1px solid #dee2e6;transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media (prefers-reduced-motion:reduce){.page-link{transition:none}}.page-link:hover{z-index:2;color:#0a58ca;background-color:#e9ecef;border-color:#dee2e6}.page-link:focus{z-index:3;color:#0a58ca;background-color:#e9ecef;outline:0;box-shadow:0 0 0 .25rem rgba(13,110,253,.25)}.page-item:not(:first-child) .page-link{margin-left:-1px}.page-item.active .page-link{z-index:3;color:#fff;background-color:#0d6efd;border-color:#0d6efd}.page-item.disabled .page-link{color:#6c757d;pointer-events:none;background-color:#fff;border-color:#dee2e6}.page-link{padding:.375rem .75rem}.page-item:first-child .page-link{border-top-left-radius:.25rem;border-bottom-left-radius:.25rem}.page-item:last-child .page-link{border-top-right-radius:.25rem;border-bottom-right-radius:.25rem}.pagination-lg .page-link{padding:.75rem 1.5rem;font-size:1.25rem}.pagination-lg .page-item:first-child .page-link{border-top-left-radius:.3rem;border-bottom-left-radius:.3rem}.pagination-lg .page-item:last-child .page-link{border-top-right-radius:.3rem;border-bottom-right-radius:.3rem}.pagination-sm .page-link{padding:.25rem .5rem;font-size:.875rem}.pagination-sm .page-item:first-child .page-link{border-top-left-radius:.2rem;border-bottom-left-radius:.2rem}.pagination-sm .page-item:last-child .page-link{border-top-right-radius:.2rem;border-bottom-right-radius:.2rem}.badge{display:inline-block;padding:.35em .65em;font-size:.75em;font-weight:700;line-height:1;color:#fff;text-align:center;white-space:nowrap;vertical-align:baseline;border-radius:.25rem}.badge:empty{display:none}.btn .badge{position:relative;top:-1px}.alert{position:relative;padding:1rem 1rem;margin-bottom:1rem;border:1px solid transparent;border-radius:.25rem}.alert-heading{color:inherit}.alert-link{font-weight:700}.alert-dismissible{padding-right:3rem}.alert-dismissible .btn-close{position:absolute;top:0;right:0;z-index:2;padding:1.25rem 1rem}.alert-primary{color:#084298;background-color:#cfe2ff;border-color:#b6d4fe}.alert-primary .alert-link{color:#06357a}.alert-secondary{color:#41464b;background-color:#e2e3e5;border-color:#d3d6d8}.alert-secondary .alert-link{color:#34383c}.alert-success{color:#0f5132;background-color:#d1e7dd;border-color:#badbcc}.alert-success .alert-link{color:#0c4128}.alert-info{color:#055160;background-color:#cff4fc;border-color:#b6effb}.alert-info .alert-link{color:#04414d}.alert-warning{color:#664d03;background-color:#fff3cd;border-color:#ffecb5}.alert-warning .alert-link{color:#523e02}.alert-danger{color:#842029;background-color:#f8d7da;border-color:#f5c2c7}.alert-danger .alert-link{color:#6a1a21}.alert-light{color:#636464;background-color:#fefefe;border-color:#fdfdfe}.alert-light .alert-link{color:#4f5050}.alert-dark{color:#141619;background-color:#d3d3d4;border-color:#bcbebf}.alert-dark .alert-link{color:#101214}@-webkit-keyframes progress-bar-stripes{0%{background-position-x:1rem}}@keyframes progress-bar-stripes{0%{background-position-x:1rem}}.progress{display:flex;height:1rem;overflow:hidden;font-size:.75rem;background-color:#e9ecef;border-radius:.25rem}.progress-bar{display:flex;flex-direction:column;justify-content:center;overflow:hidden;color:#fff;text-align:center;white-space:nowrap;background-color:#0d6efd;transition:width .6s ease}@media (prefers-reduced-motion:reduce){.progress-bar{transition:none}}.progress-bar-striped{background-image:linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-size:1rem 1rem}.progress-bar-animated{-webkit-animation:1s linear infinite progress-bar-stripes;animation:1s linear infinite progress-bar-stripes}@media (prefers-reduced-motion:reduce){.progress-bar-animated{-webkit-animation:none;animation:none}}.list-group{display:flex;flex-direction:column;padding-left:0;margin-bottom:0;border-radius:.25rem}.list-group-numbered{list-style-type:none;counter-reset:section}.list-group-numbered>li::before{content:counters(section, ".") ". ";counter-increment:section}.list-group-item-action{width:100%;color:#495057;text-align:inherit}.list-group-item-action:focus,.list-group-item-action:hover{z-index:1;color:#495057;text-decoration:none;background-color:#f8f9fa}.list-group-item-action:active{color:#212529;background-color:#e9ecef}.list-group-item{position:relative;display:block;padding:.5rem 1rem;color:#212529;text-decoration:none;background-color:#fff;border:1px solid rgba(0,0,0,.125)}.list-group-item:first-child{border-top-left-radius:inherit;border-top-right-radius:inherit}.list-group-item:last-child{border-bottom-right-radius:inherit;border-bottom-left-radius:inherit}.list-group-item.disabled,.list-group-item:disabled{color:#6c757d;pointer-events:none;background-color:#fff}.list-group-item.active{z-index:2;color:#fff;background-color:#0d6efd;border-color:#0d6efd}.list-group-item+.list-group-item{border-top-width:0}.list-group-item+.list-group-item.active{margin-top:-1px;border-top-width:1px}.list-group-horizontal{flex-direction:row}.list-group-horizontal>.list-group-item:first-child{border-bottom-left-radius:.25rem;border-top-right-radius:0}.list-group-horizontal>.list-group-item:last-child{border-top-right-radius:.25rem;border-bottom-left-radius:0}.list-group-horizontal>.list-group-item.active{margin-top:0}.list-group-horizontal>.list-group-item+.list-group-item{border-top-width:1px;border-left-width:0}.list-group-horizontal>.list-group-item+.list-group-item.active{margin-left:-1px;border-left-width:1px}@media (min-width:576px){.list-group-horizontal-sm{flex-direction:row}.list-group-horizontal-sm>.list-group-item:first-child{border-bottom-left-radius:.25rem;border-top-right-radius:0}.list-group-horizontal-sm>.list-group-item:last-child{border-top-right-radius:.25rem;border-bottom-left-radius:0}.list-group-horizontal-sm>.list-group-item.active{margin-top:0}.list-group-horizontal-sm>.list-group-item+.list-group-item{border-top-width:1px;border-left-width:0}.list-group-horizontal-sm>.list-group-item+.list-group-item.active{margin-left:-1px;border-left-width:1px}}@media (min-width:768px){.list-group-horizontal-md{flex-direction:row}.list-group-horizontal-md>.list-group-item:first-child{border-bottom-left-radius:.25rem;border-top-right-radius:0}.list-group-horizontal-md>.list-group-item:last-child{border-top-right-radius:.25rem;border-bottom-left-radius:0}.list-group-horizontal-md>.list-group-item.active{margin-top:0}.list-group-horizontal-md>.list-group-item+.list-group-item{border-top-width:1px;border-left-width:0}.list-group-horizontal-md>.list-group-item+.list-group-item.active{margin-left:-1px;border-left-width:1px}}@media (min-width:992px){.list-group-horizontal-lg{flex-direction:row}.list-group-horizontal-lg>.list-group-item:first-child{border-bottom-left-radius:.25rem;border-top-right-radius:0}.list-group-horizontal-lg>.list-group-item:last-child{border-top-right-radius:.25rem;border-bottom-left-radius:0}.list-group-horizontal-lg>.list-group-item.active{margin-top:0}.list-group-horizontal-lg>.list-group-item+.list-group-item{border-top-width:1px;border-left-width:0}.list-group-horizontal-lg>.list-group-item+.list-group-item.active{margin-left:-1px;border-left-width:1px}}@media (min-width:1200px){.list-group-horizontal-xl{flex-direction:row}.list-group-horizontal-xl>.list-group-item:first-child{border-bottom-left-radius:.25rem;border-top-right-radius:0}.list-group-horizontal-xl>.list-group-item:last-child{border-top-right-radius:.25rem;border-bottom-left-radius:0}.list-group-horizontal-xl>.list-group-item.active{margin-top:0}.list-group-horizontal-xl>.list-group-item+.list-group-item{border-top-width:1px;border-left-width:0}.list-group-horizontal-xl>.list-group-item+.list-group-item.active{margin-left:-1px;border-left-width:1px}}@media (min-width:1400px){.list-group-horizontal-xxl{flex-direction:row}.list-group-horizontal-xxl>.list-group-item:first-child{border-bottom-left-radius:.25rem;border-top-right-radius:0}.list-group-horizontal-xxl>.list-group-item:last-child{border-top-right-radius:.25rem;border-bottom-left-radius:0}.list-group-horizontal-xxl>.list-group-item.active{margin-top:0}.list-group-horizontal-xxl>.list-group-item+.list-group-item{border-top-width:1px;border-left-width:0}.list-group-horizontal-xxl>.list-group-item+.list-group-item.active{margin-left:-1px;border-left-width:1px}}.list-group-flush{border-radius:0}.list-group-flush>.list-group-item{border-width:0 0 1px}.list-group-flush>.list-group-item:last-child{border-bottom-width:0}.list-group-item-primary{color:#084298;background-color:#cfe2ff}.list-group-item-primary.list-group-item-action:focus,.list-group-item-primary.list-group-item-action:hover{color:#084298;background-color:#bacbe6}.list-group-item-primary.list-group-item-action.active{color:#fff;background-color:#084298;border-color:#084298}.list-group-item-secondary{color:#41464b;background-color:#e2e3e5}.list-group-item-secondary.list-group-item-action:focus,.list-group-item-secondary.list-group-item-action:hover{color:#41464b;background-color:#cbccce}.list-group-item-secondary.list-group-item-action.active{color:#fff;background-color:#41464b;border-color:#41464b}.list-group-item-success{color:#0f5132;background-color:#d1e7dd}.list-group-item-success.list-group-item-action:focus,.list-group-item-success.list-group-item-action:hover{color:#0f5132;background-color:#bcd0c7}.list-group-item-success.list-group-item-action.active{color:#fff;background-color:#0f5132;border-color:#0f5132}.list-group-item-info{color:#055160;background-color:#cff4fc}.list-group-item-info.list-group-item-action:focus,.list-group-item-info.list-group-item-action:hover{color:#055160;background-color:#badce3}.list-group-item-info.list-group-item-action.active{color:#fff;background-color:#055160;border-color:#055160}.list-group-item-warning{color:#664d03;background-color:#fff3cd}.list-group-item-warning.list-group-item-action:focus,.list-group-item-warning.list-group-item-action:hover{color:#664d03;background-color:#e6dbb9}.list-group-item-warning.list-group-item-action.active{color:#fff;background-color:#664d03;border-color:#664d03}.list-group-item-danger{color:#842029;background-color:#f8d7da}.list-group-item-danger.list-group-item-action:focus,.list-group-item-danger.list-group-item-action:hover{color:#842029;background-color:#dfc2c4}.list-group-item-danger.list-group-item-action.active{color:#fff;background-color:#842029;border-color:#842029}.list-group-item-light{color:#636464;background-color:#fefefe}.list-group-item-light.list-group-item-action:focus,.list-group-item-light.list-group-item-action:hover{color:#636464;background-color:#e5e5e5}.list-group-item-light.list-group-item-action.active{color:#fff;background-color:#636464;border-color:#636464}.list-group-item-dark{color:#141619;background-color:#d3d3d4}.list-group-item-dark.list-group-item-action:focus,.list-group-item-dark.list-group-item-action:hover{color:#141619;background-color:#bebebf}.list-group-item-dark.list-group-item-action.active{color:#fff;background-color:#141619;border-color:#141619}.btn-close{box-sizing:content-box;width:1em;height:1em;padding:.25em .25em;color:#000;background:transparent url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%23000'%3e%3cpath d='M.293.293a1 1 0 011.414 0L8 6.586 14.293.293a1 1 0 111.414 1.414L9.414 8l6.293 6.293a1 1 0 01-1.414 1.414L8 9.414l-6.293 6.293a1 1 0 01-1.414-1.414L6.586 8 .293 1.707a1 1 0 010-1.414z'/%3e%3c/svg%3e") center/1em auto no-repeat;border:0;border-radius:.25rem;opacity:.5}.btn-close:hover{color:#000;text-decoration:none;opacity:.75}.btn-close:focus{outline:0;box-shadow:0 0 0 .25rem rgba(13,110,253,.25);opacity:1}.btn-close.disabled,.btn-close:disabled{pointer-events:none;-webkit-user-select:none;-moz-user-select:none;user-select:none;opacity:.25}.btn-close-white{filter:invert(1) grayscale(100%) brightness(200%)}.toast{width:350px;max-width:100%;font-size:.875rem;pointer-events:auto;background-color:rgba(255,255,255,.85);background-clip:padding-box;border:1px solid rgba(0,0,0,.1);box-shadow:0 .5rem 1rem rgba(0,0,0,.15);border-radius:.25rem}.toast.showing{opacity:0}.toast:not(.show){display:none}.toast-container{width:-webkit-max-content;width:-moz-max-content;width:max-content;max-width:100%;pointer-events:none}.toast-container>:not(:last-child){margin-bottom:.75rem}.toast-header{display:flex;align-items:center;padding:.5rem .75rem;color:#6c757d;background-color:rgba(255,255,255,.85);background-clip:padding-box;border-bottom:1px solid rgba(0,0,0,.05);border-top-left-radius:calc(.25rem - 1px);border-top-right-radius:calc(.25rem - 1px)}.toast-header .btn-close{margin-right:-.375rem;margin-left:.75rem}.toast-body{padding:.75rem;word-wrap:break-word}.modal{position:fixed;top:0;left:0;z-index:1055;display:none;width:100%;height:100%;overflow-x:hidden;overflow-y:auto;outline:0}.modal-dialog{position:relative;width:auto;margin:.5rem;pointer-events:none}.modal.fade .modal-dialog{transition:transform .3s ease-out;transform:translate(0,-50px)}@media (prefers-reduced-motion:reduce){.modal.fade .modal-dialog{transition:none}}.modal.show .modal-dialog{transform:none}.modal.modal-static .modal-dialog{transform:scale(1.02)}.modal-dialog-scrollable{height:calc(100% - 1rem)}.modal-dialog-scrollable .modal-content{max-height:100%;overflow:hidden}.modal-dialog-scrollable .modal-body{overflow-y:auto}.modal-dialog-centered{display:flex;align-items:center;min-height:calc(100% - 1rem)}.modal-content{position:relative;display:flex;flex-direction:column;width:100%;pointer-events:auto;background-color:#fff;background-clip:padding-box;border:1px solid rgba(0,0,0,.2);border-radius:.3rem;outline:0}.modal-backdrop{position:fixed;top:0;left:0;z-index:1050;width:100vw;height:100vh;background-color:#000}.modal-backdrop.fade{opacity:0}.modal-backdrop.show{opacity:.5}.modal-header{display:flex;flex-shrink:0;align-items:center;justify-content:space-between;padding:1rem 1rem;border-bottom:1px solid #dee2e6;border-top-left-radius:calc(.3rem - 1px);border-top-right-radius:calc(.3rem - 1px)}.modal-header .btn-close{padding:.5rem .5rem;margin:-.5rem -.5rem -.5rem auto}.modal-title{margin-bottom:0;line-height:1.5}.modal-body{position:relative;flex:1 1 auto;padding:1rem}.modal-footer{display:flex;flex-wrap:wrap;flex-shrink:0;align-items:center;justify-content:flex-end;padding:.75rem;border-top:1px solid #dee2e6;border-bottom-right-radius:calc(.3rem - 1px);border-bottom-left-radius:calc(.3rem - 1px)}.modal-footer>*{margin:.25rem}@media (min-width:576px){.modal-dialog{max-width:500px;margin:1.75rem auto}.modal-dialog-scrollable{height:calc(100% - 3.5rem)}.modal-dialog-centered{min-height:calc(100% - 3.5rem)}.modal-sm{max-width:300px}}@media (min-width:992px){.modal-lg,.modal-xl{max-width:800px}}@media (min-width:1200px){.modal-xl{max-width:1140px}}.modal-fullscreen{width:100vw;max-width:none;height:100%;margin:0}.modal-fullscreen .modal-content{height:100%;border:0;border-radius:0}.modal-fullscreen .modal-header{border-radius:0}.modal-fullscreen .modal-body{overflow-y:auto}.modal-fullscreen .modal-footer{border-radius:0}@media (max-width:575.98px){.modal-fullscreen-sm-down{width:100vw;max-width:none;height:100%;margin:0}.modal-fullscreen-sm-down .modal-content{height:100%;border:0;border-radius:0}.modal-fullscreen-sm-down .modal-header{border-radius:0}.modal-fullscreen-sm-down .modal-body{overflow-y:auto}.modal-fullscreen-sm-down .modal-footer{border-radius:0}}@media (max-width:767.98px){.modal-fullscreen-md-down{width:100vw;max-width:none;height:100%;margin:0}.modal-fullscreen-md-down .modal-content{height:100%;border:0;border-radius:0}.modal-fullscreen-md-down .modal-header{border-radius:0}.modal-fullscreen-md-down .modal-body{overflow-y:auto}.modal-fullscreen-md-down .modal-footer{border-radius:0}}@media (max-width:991.98px){.modal-fullscreen-lg-down{width:100vw;max-width:none;height:100%;margin:0}.modal-fullscreen-lg-down .modal-content{height:100%;border:0;border-radius:0}.modal-fullscreen-lg-down .modal-header{border-radius:0}.modal-fullscreen-lg-down .modal-body{overflow-y:auto}.modal-fullscreen-lg-down .modal-footer{border-radius:0}}@media (max-width:1199.98px){.modal-fullscreen-xl-down{width:100vw;max-width:none;height:100%;margin:0}.modal-fullscreen-xl-down .modal-content{height:100%;border:0;border-radius:0}.modal-fullscreen-xl-down .modal-header{border-radius:0}.modal-fullscreen-xl-down .modal-body{overflow-y:auto}.modal-fullscreen-xl-down .modal-footer{border-radius:0}}@media (max-width:1399.98px){.modal-fullscreen-xxl-down{width:100vw;max-width:none;height:100%;margin:0}.modal-fullscreen-xxl-down .modal-content{height:100%;border:0;border-radius:0}.modal-fullscreen-xxl-down .modal-header{border-radius:0}.modal-fullscreen-xxl-down .modal-body{overflow-y:auto}.modal-fullscreen-xxl-down .modal-footer{border-radius:0}}.tooltip{position:absolute;z-index:1080;display:block;margin:0;font-family:var(--bs-font-sans-serif);font-style:normal;font-weight:400;line-height:1.5;text-align:left;text-align:start;text-decoration:none;text-shadow:none;text-transform:none;letter-spacing:normal;word-break:normal;word-spacing:normal;white-space:normal;line-break:auto;font-size:.875rem;word-wrap:break-word;opacity:0}.tooltip.show{opacity:.9}.tooltip .tooltip-arrow{position:absolute;display:block;width:.8rem;height:.4rem}.tooltip .tooltip-arrow::before{position:absolute;content:"";border-color:transparent;border-style:solid}.bs-tooltip-auto[data-popper-placement^=top],.bs-tooltip-top{padding:.4rem 0}.bs-tooltip-auto[data-popper-placement^=top] .tooltip-arrow,.bs-tooltip-top .tooltip-arrow{bottom:0}.bs-tooltip-auto[data-popper-placement^=top] .tooltip-arrow::before,.bs-tooltip-top .tooltip-arrow::before{top:-1px;border-width:.4rem .4rem 0;border-top-color:#000}.bs-tooltip-auto[data-popper-placement^=right],.bs-tooltip-end{padding:0 .4rem}.bs-tooltip-auto[data-popper-placement^=right] .tooltip-arrow,.bs-tooltip-end .tooltip-arrow{left:0;width:.4rem;height:.8rem}.bs-tooltip-auto[data-popper-placement^=right] .tooltip-arrow::before,.bs-tooltip-end .tooltip-arrow::before{right:-1px;border-width:.4rem .4rem .4rem 0;border-right-color:#000}.bs-tooltip-auto[data-popper-placement^=bottom],.bs-tooltip-bottom{padding:.4rem 0}.bs-tooltip-auto[data-popper-placement^=bottom] .tooltip-arrow,.bs-tooltip-bottom .tooltip-arrow{top:0}.bs-tooltip-auto[data-popper-placement^=bottom] .tooltip-arrow::before,.bs-tooltip-bottom .tooltip-arrow::before{bottom:-1px;border-width:0 .4rem .4rem;border-bottom-color:#000}.bs-tooltip-auto[data-popper-placement^=left],.bs-tooltip-start{padding:0 .4rem}.bs-tooltip-auto[data-popper-placement^=left] .tooltip-arrow,.bs-tooltip-start .tooltip-arrow{right:0;width:.4rem;height:.8rem}.bs-tooltip-auto[data-popper-placement^=left] .tooltip-arrow::before,.bs-tooltip-start .tooltip-arrow::before{left:-1px;border-width:.4rem 0 .4rem .4rem;border-left-color:#000}.tooltip-inner{max-width:200px;padding:.25rem .5rem;color:#fff;text-align:center;background-color:#000;border-radius:.25rem}.popover{position:absolute;top:0;left:0;z-index:1070;display:block;max-width:276px;font-family:var(--bs-font-sans-serif);font-style:normal;font-weight:400;line-height:1.5;text-align:left;text-align:start;text-decoration:none;text-shadow:none;text-transform:none;letter-spacing:normal;word-break:normal;word-spacing:normal;white-space:normal;line-break:auto;font-size:.875rem;word-wrap:break-word;background-color:#fff;background-clip:padding-box;border:1px solid rgba(0,0,0,.2);border-radius:.3rem}.popover .popover-arrow{position:absolute;display:block;width:1rem;height:.5rem}.popover .popover-arrow::after,.popover .popover-arrow::before{position:absolute;display:block;content:"";border-color:transparent;border-style:solid}.bs-popover-auto[data-popper-placement^=top]>.popover-arrow,.bs-popover-top>.popover-arrow{bottom:calc(-.5rem - 1px)}.bs-popover-auto[data-popper-placement^=top]>.popover-arrow::before,.bs-popover-top>.popover-arrow::before{bottom:0;border-width:.5rem .5rem 0;border-top-color:rgba(0,0,0,.25)}.bs-popover-auto[data-popper-placement^=top]>.popover-arrow::after,.bs-popover-top>.popover-arrow::after{bottom:1px;border-width:.5rem .5rem 0;border-top-color:#fff}.bs-popover-auto[data-popper-placement^=right]>.popover-arrow,.bs-popover-end>.popover-arrow{left:calc(-.5rem - 1px);width:.5rem;height:1rem}.bs-popover-auto[data-popper-placement^=right]>.popover-arrow::before,.bs-popover-end>.popover-arrow::before{left:0;border-width:.5rem .5rem .5rem 0;border-right-color:rgba(0,0,0,.25)}.bs-popover-auto[data-popper-placement^=right]>.popover-arrow::after,.bs-popover-end>.popover-arrow::after{left:1px;border-width:.5rem .5rem .5rem 0;border-right-color:#fff}.bs-popover-auto[data-popper-placement^=bottom]>.popover-arrow,.bs-popover-bottom>.popover-arrow{top:calc(-.5rem - 1px)}.bs-popover-auto[data-popper-placement^=bottom]>.popover-arrow::before,.bs-popover-bottom>.popover-arrow::before{top:0;border-width:0 .5rem .5rem .5rem;border-bottom-color:rgba(0,0,0,.25)}.bs-popover-auto[data-popper-placement^=bottom]>.popover-arrow::after,.bs-popover-bottom>.popover-arrow::after{top:1px;border-width:0 .5rem .5rem .5rem;border-bottom-color:#fff}.bs-popover-auto[data-popper-placement^=bottom] .popover-header::before,.bs-popover-bottom .popover-header::before{position:absolute;top:0;left:50%;display:block;width:1rem;margin-left:-.5rem;content:"";border-bottom:1px solid #f0f0f0}.bs-popover-auto[data-popper-placement^=left]>.popover-arrow,.bs-popover-start>.popover-arrow{right:calc(-.5rem - 1px);width:.5rem;height:1rem}.bs-popover-auto[data-popper-placement^=left]>.popover-arrow::before,.bs-popover-start>.popover-arrow::before{right:0;border-width:.5rem 0 .5rem .5rem;border-left-color:rgba(0,0,0,.25)}.bs-popover-auto[data-popper-placement^=left]>.popover-arrow::after,.bs-popover-start>.popover-arrow::after{right:1px;border-width:.5rem 0 .5rem .5rem;border-left-color:#fff}.popover-header{padding:.5rem 1rem;margin-bottom:0;font-size:1rem;background-color:#f0f0f0;border-bottom:1px solid rgba(0,0,0,.2);border-top-left-radius:calc(.3rem - 1px);border-top-right-radius:calc(.3rem - 1px)}.popover-header:empty{display:none}.popover-body{padding:1rem 1rem;color:#212529}.carousel{position:relative}.carousel.pointer-event{touch-action:pan-y}.carousel-inner{position:relative;width:100%;overflow:hidden}.carousel-inner::after{display:block;clear:both;content:""}.carousel-item{position:relative;display:none;float:left;width:100%;margin-right:-100%;-webkit-backface-visibility:hidden;backface-visibility:hidden;transition:transform .6s ease-in-out}@media (prefers-reduced-motion:reduce){.carousel-item{transition:none}}.carousel-item-next,.carousel-item-prev,.carousel-item.active{display:block}.active.carousel-item-end,.carousel-item-next:not(.carousel-item-start){transform:translateX(100%)}.active.carousel-item-start,.carousel-item-prev:not(.carousel-item-end){transform:translateX(-100%)}.carousel-fade .carousel-item{opacity:0;transition-property:opacity;transform:none}.carousel-fade .carousel-item-next.carousel-item-start,.carousel-fade .carousel-item-prev.carousel-item-end,.carousel-fade .carousel-item.active{z-index:1;opacity:1}.carousel-fade .active.carousel-item-end,.carousel-fade .active.carousel-item-start{z-index:0;opacity:0;transition:opacity 0s .6s}@media (prefers-reduced-motion:reduce){.carousel-fade .active.carousel-item-end,.carousel-fade .active.carousel-item-start{transition:none}}.carousel-control-next,.carousel-control-prev{position:absolute;top:0;bottom:0;z-index:1;display:flex;align-items:center;justify-content:center;width:15%;padding:0;color:#fff;text-align:center;background:0 0;border:0;opacity:.5;transition:opacity .15s ease}@media (prefers-reduced-motion:reduce){.carousel-control-next,.carousel-control-prev{transition:none}}.carousel-control-next:focus,.carousel-control-next:hover,.carousel-control-prev:focus,.carousel-control-prev:hover{color:#fff;text-decoration:none;outline:0;opacity:.9}.carousel-control-prev{left:0}.carousel-control-next{right:0}.carousel-control-next-icon,.carousel-control-prev-icon{display:inline-block;width:2rem;height:2rem;background-repeat:no-repeat;background-position:50%;background-size:100% 100%}.carousel-control-prev-icon{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%23fff'%3e%3cpath d='M11.354 1.646a.5.5 0 0 1 0 .708L5.707 8l5.647 5.646a.5.5 0 0 1-.708.708l-6-6a.5.5 0 0 1 0-.708l6-6a.5.5 0 0 1 .708 0z'/%3e%3c/svg%3e")}.carousel-control-next-icon{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%23fff'%3e%3cpath d='M4.646 1.646a.5.5 0 0 1 .708 0l6 6a.5.5 0 0 1 0 .708l-6 6a.5.5 0 0 1-.708-.708L10.293 8 4.646 2.354a.5.5 0 0 1 0-.708z'/%3e%3c/svg%3e")}.carousel-indicators{position:absolute;right:0;bottom:0;left:0;z-index:2;display:flex;justify-content:center;padding:0;margin-right:15%;margin-bottom:1rem;margin-left:15%;list-style:none}.carousel-indicators [data-bs-target]{box-sizing:content-box;flex:0 1 auto;width:30px;height:3px;padding:0;margin-right:3px;margin-left:3px;text-indent:-999px;cursor:pointer;background-color:#fff;background-clip:padding-box;border:0;border-top:10px solid transparent;border-bottom:10px solid transparent;opacity:.5;transition:opacity .6s ease}@media (prefers-reduced-motion:reduce){.carousel-indicators [data-bs-target]{transition:none}}.carousel-indicators .active{opacity:1}.carousel-caption{position:absolute;right:15%;bottom:1.25rem;left:15%;padding-top:1.25rem;padding-bottom:1.25rem;color:#fff;text-align:center}.carousel-dark .carousel-control-next-icon,.carousel-dark .carousel-control-prev-icon{filter:invert(1) grayscale(100)}.carousel-dark .carousel-indicators [data-bs-target]{background-color:#000}.carousel-dark .carousel-caption{color:#000}@-webkit-keyframes spinner-border{to{transform:rotate(360deg)}}@keyframes spinner-border{to{transform:rotate(360deg)}}.spinner-border{display:inline-block;width:2rem;height:2rem;vertical-align:-.125em;border:.25em solid currentColor;border-right-color:transparent;border-radius:50%;-webkit-animation:.75s linear infinite spinner-border;animation:.75s linear infinite spinner-border}.spinner-border-sm{width:1rem;height:1rem;border-width:.2em}@-webkit-keyframes spinner-grow{0%{transform:scale(0)}50%{opacity:1;transform:none}}@keyframes spinner-grow{0%{transform:scale(0)}50%{opacity:1;transform:none}}.spinner-grow{display:inline-block;width:2rem;height:2rem;vertical-align:-.125em;background-color:currentColor;border-radius:50%;opacity:0;-webkit-animation:.75s linear infinite spinner-grow;animation:.75s linear infinite spinner-grow}.spinner-grow-sm{width:1rem;height:1rem}@media (prefers-reduced-motion:reduce){.spinner-border,.spinner-grow{-webkit-animation-duration:1.5s;animation-duration:1.5s}}.offcanvas{position:fixed;bottom:0;z-index:1045;display:flex;flex-direction:column;max-width:100%;visibility:hidden;background-color:#fff;background-clip:padding-box;outline:0;transition:transform .3s ease-in-out}@media (prefers-reduced-motion:reduce){.offcanvas{transition:none}}.offcanvas-backdrop{position:fixed;top:0;left:0;z-index:1040;width:100vw;height:100vh;background-color:#000}.offcanvas-backdrop.fade{opacity:0}.offcanvas-backdrop.show{opacity:.5}.offcanvas-header{display:flex;align-items:center;justify-content:space-between;padding:1rem 1rem}.offcanvas-header .btn-close{padding:.5rem .5rem;margin-top:-.5rem;margin-right:-.5rem;margin-bottom:-.5rem}.offcanvas-title{margin-bottom:0;line-height:1.5}.offcanvas-body{flex-grow:1;padding:1rem 1rem;overflow-y:auto}.offcanvas-start{top:0;left:0;width:400px;border-right:1px solid rgba(0,0,0,.2);transform:translateX(-100%)}.offcanvas-end{top:0;right:0;width:400px;border-left:1px solid rgba(0,0,0,.2);transform:translateX(100%)}.offcanvas-top{top:0;right:0;left:0;height:30vh;max-height:100%;border-bottom:1px solid rgba(0,0,0,.2);transform:translateY(-100%)}.offcanvas-bottom{right:0;left:0;height:30vh;max-height:100%;border-top:1px solid rgba(0,0,0,.2);transform:translateY(100%)}.offcanvas.show{transform:none}.placeholder{display:inline-block;min-height:1em;vertical-align:middle;cursor:wait;background-color:currentColor;opacity:.5}.placeholder.btn::before{display:inline-block;content:""}.placeholder-xs{min-height:.6em}.placeholder-sm{min-height:.8em}.placeholder-lg{min-height:1.2em}.placeholder-glow .placeholder{-webkit-animation:placeholder-glow 2s ease-in-out infinite;animation:placeholder-glow 2s ease-in-out infinite}@-webkit-keyframes placeholder-glow{50%{opacity:.2}}@keyframes placeholder-glow{50%{opacity:.2}}.placeholder-wave{-webkit-mask-image:linear-gradient(130deg,#000 55%,rgba(0,0,0,0.8) 75%,#000 95%);mask-image:linear-gradient(130deg,#000 55%,rgba(0,0,0,0.8) 75%,#000 95%);-webkit-mask-size:200% 100%;mask-size:200% 100%;-webkit-animation:placeholder-wave 2s linear infinite;animation:placeholder-wave 2s linear infinite}@-webkit-keyframes placeholder-wave{100%{-webkit-mask-position:-200% 0%;mask-position:-200% 0%}}@keyframes placeholder-wave{100%{-webkit-mask-position:-200% 0%;mask-position:-200% 0%}}.clearfix::after{display:block;clear:both;content:""}.link-primary{color:#0d6efd}.link-primary:focus,.link-primary:hover{color:#0a58ca}.link-secondary{color:#6c757d}.link-secondary:focus,.link-secondary:hover{color:#565e64}.link-success{color:#198754}.link-success:focus,.link-success:hover{color:#146c43}.link-info{color:#0dcaf0}.link-info:focus,.link-info:hover{color:#3dd5f3}.link-warning{color:#ffc107}.link-warning:focus,.link-warning:hover{color:#ffcd39}.link-danger{color:#dc3545}.link-danger:focus,.link-danger:hover{color:#b02a37}.link-light{color:#f8f9fa}.link-light:focus,.link-light:hover{color:#f9fafb}.link-dark{color:#212529}.link-dark:focus,.link-dark:hover{color:#1a1e21}.ratio{position:relative;width:100%}.ratio::before{display:block;padding-top:var(--bs-aspect-ratio);content:""}.ratio>*{position:absolute;top:0;left:0;width:100%;height:100%}.ratio-1x1{--bs-aspect-ratio:100%}.ratio-4x3{--bs-aspect-ratio:75%}.ratio-16x9{--bs-aspect-ratio:56.25%}.ratio-21x9{--bs-aspect-ratio:42.8571428571%}.fixed-top{position:fixed;top:0;right:0;left:0;z-index:1030}.fixed-bottom{position:fixed;right:0;bottom:0;left:0;z-index:1030}.sticky-top{position:-webkit-sticky;position:sticky;top:0;z-index:1020}@media (min-width:576px){.sticky-sm-top{position:-webkit-sticky;position:sticky;top:0;z-index:1020}}@media (min-width:768px){.sticky-md-top{position:-webkit-sticky;position:sticky;top:0;z-index:1020}}@media (min-width:992px){.sticky-lg-top{position:-webkit-sticky;position:sticky;top:0;z-index:1020}}@media (min-width:1200px){.sticky-xl-top{position:-webkit-sticky;position:sticky;top:0;z-index:1020}}@media (min-width:1400px){.sticky-xxl-top{position:-webkit-sticky;position:sticky;top:0;z-index:1020}}.hstack{display:flex;flex-direction:row;align-items:center;align-self:stretch}.vstack{display:flex;flex:1 1 auto;flex-direction:column;align-self:stretch}.visually-hidden,.visually-hidden-focusable:not(:focus):not(:focus-within){position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important}.stretched-link::after{position:absolute;top:0;right:0;bottom:0;left:0;z-index:1;content:""}.text-truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.vr{display:inline-block;align-self:stretch;width:1px;min-height:1em;background-color:currentColor;opacity:.25}.align-baseline{vertical-align:baseline!important}.align-top{vertical-align:top!important}.align-middle{vertical-align:middle!important}.align-bottom{vertical-align:bottom!important}.align-text-bottom{vertical-align:text-bottom!important}.align-text-top{vertical-align:text-top!important}.float-start{float:left!important}.float-end{float:right!important}.float-none{float:none!important}.opacity-0{opacity:0!important}.opacity-25{opacity:.25!important}.opacity-50{opacity:.5!important}.opacity-75{opacity:.75!important}.opacity-100{opacity:1!important}.overflow-auto{overflow:auto!important}.overflow-hidden{overflow:hidden!important}.overflow-visible{overflow:visible!important}.overflow-scroll{overflow:scroll!important}.d-inline{display:inline!important}.d-inline-block{display:inline-block!important}.d-block{display:block!important}.d-grid{display:grid!important}.d-table{display:table!important}.d-table-row{display:table-row!important}.d-table-cell{display:table-cell!important}.d-flex{display:flex!important}.d-inline-flex{display:inline-flex!important}.d-none{display:none!important}.shadow{box-shadow:0 .5rem 1rem rgba(0,0,0,.15)!important}.shadow-sm{box-shadow:0 .125rem .25rem rgba(0,0,0,.075)!important}.shadow-lg{box-shadow:0 1rem 3rem rgba(0,0,0,.175)!important}.shadow-none{box-shadow:none!important}.position-static{position:static!important}.position-relative{position:relative!important}.position-absolute{position:absolute!important}.position-fixed{position:fixed!important}.position-sticky{position:-webkit-sticky!important;position:sticky!important}.top-0{top:0!important}.top-50{top:50%!important}.top-100{top:100%!important}.bottom-0{bottom:0!important}.bottom-50{bottom:50%!important}.bottom-100{bottom:100%!important}.start-0{left:0!important}.start-50{left:50%!important}.start-100{left:100%!important}.end-0{right:0!important}.end-50{right:50%!important}.end-100{right:100%!important}.translate-middle{transform:translate(-50%,-50%)!important}.translate-middle-x{transform:translateX(-50%)!important}.translate-middle-y{transform:translateY(-50%)!important}.border{border:1px solid #dee2e6!important}.border-0{border:0!important}.border-top{border-top:1px solid #dee2e6!important}.border-top-0{border-top:0!important}.border-end{border-right:1px solid #dee2e6!important}.border-end-0{border-right:0!important}.border-bottom{border-bottom:1px solid #dee2e6!important}.border-bottom-0{border-bottom:0!important}.border-start{border-left:1px solid #dee2e6!important}.border-start-0{border-left:0!important}.border-primary{border-color:#0d6efd!important}.border-secondary{border-color:#6c757d!important}.border-success{border-color:#198754!important}.border-info{border-color:#0dcaf0!important}.border-warning{border-color:#ffc107!important}.border-danger{border-color:#dc3545!important}.border-light{border-color:#f8f9fa!important}.border-dark{border-color:#212529!important}.border-white{border-color:#fff!important}.border-1{border-width:1px!important}.border-2{border-width:2px!important}.border-3{border-width:3px!important}.border-4{border-width:4px!important}.border-5{border-width:5px!important}.w-25{width:25%!important}.w-50{width:50%!important}.w-75{width:75%!important}.w-100{width:100%!important}.w-auto{width:auto!important}.mw-100{max-width:100%!important}.vw-100{width:100vw!important}.min-vw-100{min-width:100vw!important}.h-25{height:25%!important}.h-50{height:50%!important}.h-75{height:75%!important}.h-100{height:100%!important}.h-auto{height:auto!important}.mh-100{max-height:100%!important}.vh-100{height:100vh!important}.min-vh-100{min-height:100vh!important}.flex-fill{flex:1 1 auto!important}.flex-row{flex-direction:row!important}.flex-column{flex-direction:column!important}.flex-row-reverse{flex-direction:row-reverse!important}.flex-column-reverse{flex-direction:column-reverse!important}.flex-grow-0{flex-grow:0!important}.flex-grow-1{flex-grow:1!important}.flex-shrink-0{flex-shrink:0!important}.flex-shrink-1{flex-shrink:1!important}.flex-wrap{flex-wrap:wrap!important}.flex-nowrap{flex-wrap:nowrap!important}.flex-wrap-reverse{flex-wrap:wrap-reverse!important}.gap-0{gap:0!important}.gap-1{gap:.25rem!important}.gap-2{gap:.5rem!important}.gap-3{gap:1rem!important}.gap-4{gap:1.5rem!important}.gap-5{gap:3rem!important}.justify-content-start{justify-content:flex-start!important}.justify-content-end{justify-content:flex-end!important}.justify-content-center{justify-content:center!important}.justify-content-between{justify-content:space-between!important}.justify-content-around{justify-content:space-around!important}.justify-content-evenly{justify-content:space-evenly!important}.align-items-start{align-items:flex-start!important}.align-items-end{align-items:flex-end!important}.align-items-center{align-items:center!important}.align-items-baseline{align-items:baseline!important}.align-items-stretch{align-items:stretch!important}.align-content-start{align-content:flex-start!important}.align-content-end{align-content:flex-end!important}.align-content-center{align-content:center!important}.align-content-between{align-content:space-between!important}.align-content-around{align-content:space-around!important}.align-content-stretch{align-content:stretch!important}.align-self-auto{align-self:auto!important}.align-self-start{align-self:flex-start!important}.align-self-end{align-self:flex-end!important}.align-self-center{align-self:center!important}.align-self-baseline{align-self:baseline!important}.align-self-stretch{align-self:stretch!important}.order-first{order:-1!important}.order-0{order:0!important}.order-1{order:1!important}.order-2{order:2!important}.order-3{order:3!important}.order-4{order:4!important}.order-5{order:5!important}.order-last{order:6!important}.m-0{margin:0!important}.m-1{margin:.25rem!important}.m-2{margin:.5rem!important}.m-3{margin:1rem!important}.m-4{margin:1.5rem!important}.m-5{margin:3rem!important}.m-auto{margin:auto!important}.mx-0{margin-right:0!important;margin-left:0!important}.mx-1{margin-right:.25rem!important;margin-left:.25rem!important}.mx-2{margin-right:.5rem!important;margin-left:.5rem!important}.mx-3{margin-right:1rem!important;margin-left:1rem!important}.mx-4{margin-right:1.5rem!important;margin-left:1.5rem!important}.mx-5{margin-right:3rem!important;margin-left:3rem!important}.mx-auto{margin-right:auto!important;margin-left:auto!important}.my-0{margin-top:0!important;margin-bottom:0!important}.my-1{margin-top:.25rem!important;margin-bottom:.25rem!important}.my-2{margin-top:.5rem!important;margin-bottom:.5rem!important}.my-3{margin-top:1rem!important;margin-bottom:1rem!important}.my-4{margin-top:1.5rem!important;margin-bottom:1.5rem!important}.my-5{margin-top:3rem!important;margin-bottom:3rem!important}.my-auto{margin-top:auto!important;margin-bottom:auto!important}.mt-0{margin-top:0!important}.mt-1{margin-top:.25rem!important}.mt-2{margin-top:.5rem!important}.mt-3{margin-top:1rem!important}.mt-4{margin-top:1.5rem!important}.mt-5{margin-top:3rem!important}.mt-auto{margin-top:auto!important}.me-0{margin-right:0!important}.me-1{margin-right:.25rem!important}.me-2{margin-right:.5rem!important}.me-3{margin-right:1rem!important}.me-4{margin-right:1.5rem!important}.me-5{margin-right:3rem!important}.me-auto{margin-right:auto!important}.mb-0{margin-bottom:0!important}.mb-1{margin-bottom:.25rem!important}.mb-2{margin-bottom:.5rem!important}.mb-3{margin-bottom:1rem!important}.mb-4{margin-bottom:1.5rem!important}.mb-5{margin-bottom:3rem!important}.mb-auto{margin-bottom:auto!important}.ms-0{margin-left:0!important}.ms-1{margin-left:.25rem!important}.ms-2{margin-left:.5rem!important}.ms-3{margin-left:1rem!important}.ms-4{margin-left:1.5rem!important}.ms-5{margin-left:3rem!important}.ms-auto{margin-left:auto!important}.p-0{padding:0!important}.p-1{padding:.25rem!important}.p-2{padding:.5rem!important}.p-3{padding:1rem!important}.p-4{padding:1.5rem!important}.p-5{padding:3rem!important}.px-0{padding-right:0!important;padding-left:0!important}.px-1{padding-right:.25rem!important;padding-left:.25rem!important}.px-2{padding-right:.5rem!important;padding-left:.5rem!important}.px-3{padding-right:1rem!important;padding-left:1rem!important}.px-4{padding-right:1.5rem!important;padding-left:1.5rem!important}.px-5{padding-right:3rem!important;padding-left:3rem!important}.py-0{padding-top:0!important;padding-bottom:0!important}.py-1{padding-top:.25rem!important;padding-bottom:.25rem!important}.py-2{padding-top:.5rem!important;padding-bottom:.5rem!important}.py-3{padding-top:1rem!important;padding-bottom:1rem!important}.py-4{padding-top:1.5rem!important;padding-bottom:1.5rem!important}.py-5{padding-top:3rem!important;padding-bottom:3rem!important}.pt-0{padding-top:0!important}.pt-1{padding-top:.25rem!important}.pt-2{padding-top:.5rem!important}.pt-3{padding-top:1rem!important}.pt-4{padding-top:1.5rem!important}.pt-5{padding-top:3rem!important}.pe-0{padding-right:0!important}.pe-1{padding-right:.25rem!important}.pe-2{padding-right:.5rem!important}.pe-3{padding-right:1rem!important}.pe-4{padding-right:1.5rem!important}.pe-5{padding-right:3rem!important}.pb-0{padding-bottom:0!important}.pb-1{padding-bottom:.25rem!important}.pb-2{padding-bottom:.5rem!important}.pb-3{padding-bottom:1rem!important}.pb-4{padding-bottom:1.5rem!important}.pb-5{padding-bottom:3rem!important}.ps-0{padding-left:0!important}.ps-1{padding-left:.25rem!important}.ps-2{padding-left:.5rem!important}.ps-3{padding-left:1rem!important}.ps-4{padding-left:1.5rem!important}.ps-5{padding-left:3rem!important}.font-monospace{font-family:var(--bs-font-monospace)!important}.fs-1{font-size:calc(1.375rem + 1.5vw)!important}.fs-2{font-size:calc(1.325rem + .9vw)!important}.fs-3{font-size:calc(1.3rem + .6vw)!important}.fs-4{font-size:calc(1.275rem + .3vw)!important}.fs-5{font-size:1.25rem!important}.fs-6{font-size:1rem!important}.fst-italic{font-style:italic!important}.fst-normal{font-style:normal!important}.fw-light{font-weight:300!important}.fw-lighter{font-weight:lighter!important}.fw-normal{font-weight:400!important}.fw-bold{font-weight:700!important}.fw-bolder{font-weight:bolder!important}.lh-1{line-height:1!important}.lh-sm{line-height:1.25!important}.lh-base{line-height:1.5!important}.lh-lg{line-height:2!important}.text-start{text-align:left!important}.text-end{text-align:right!important}.text-center{text-align:center!important}.text-decoration-none{text-decoration:none!important}.text-decoration-underline{text-decoration:underline!important}.text-decoration-line-through{text-decoration:line-through!important}.text-lowercase{text-transform:lowercase!important}.text-uppercase{text-transform:uppercase!important}.text-capitalize{text-transform:capitalize!important}.text-wrap{white-space:normal!important}.text-nowrap{white-space:nowrap!important}.text-break{word-wrap:break-word!important;word-break:break-word!important}.text-primary{--bs-text-opacity:1;color:rgba(var(--bs-primary-rgb),var(--bs-text-opacity))!important}.text-secondary{--bs-text-opacity:1;color:rgba(var(--bs-secondary-rgb),var(--bs-text-opacity))!important}.text-success{--bs-text-opacity:1;color:rgba(var(--bs-success-rgb),var(--bs-text-opacity))!important}.text-info{--bs-text-opacity:1;color:rgba(var(--bs-info-rgb),var(--bs-text-opacity))!important}.text-warning{--bs-text-opacity:1;color:rgba(var(--bs-warning-rgb),var(--bs-text-opacity))!important}.text-danger{--bs-text-opacity:1;color:rgba(var(--bs-danger-rgb),var(--bs-text-opacity))!important}.text-light{--bs-text-opacity:1;color:rgba(var(--bs-light-rgb),var(--bs-text-opacity))!important}.text-dark{--bs-text-opacity:1;color:rgba(var(--bs-dark-rgb),var(--bs-text-opacity))!important}.text-black{--bs-text-opacity:1;color:rgba(var(--bs-black-rgb),var(--bs-text-opacity))!important}.text-white{--bs-text-opacity:1;color:rgba(var(--bs-white-rgb),var(--bs-text-opacity))!important}.text-body{--bs-text-opacity:1;color:rgba(var(--bs-body-color-rgb),var(--bs-text-opacity))!important}.text-muted{--bs-text-opacity:1;color:#6c757d!important}.text-black-50{--bs-text-opacity:1;color:rgba(0,0,0,.5)!important}.text-white-50{--bs-text-opacity:1;color:rgba(255,255,255,.5)!important}.text-reset{--bs-text-opacity:1;color:inherit!important}.text-opacity-25{--bs-text-opacity:0.25}.text-opacity-50{--bs-text-opacity:0.5}.text-opacity-75{--bs-text-opacity:0.75}.text-opacity-100{--bs-text-opacity:1}.bg-primary{--bs-bg-opacity:1;background-color:rgba(var(--bs-primary-rgb),var(--bs-bg-opacity))!important}.bg-secondary{--bs-bg-opacity:1;background-color:rgba(var(--bs-secondary-rgb),var(--bs-bg-opacity))!important}.bg-success{--bs-bg-opacity:1;background-color:rgba(var(--bs-success-rgb),var(--bs-bg-opacity))!important}.bg-info{--bs-bg-opacity:1;background-color:rgba(var(--bs-info-rgb),var(--bs-bg-opacity))!important}.bg-warning{--bs-bg-opacity:1;background-color:rgba(var(--bs-warning-rgb),var(--bs-bg-opacity))!important}.bg-danger{--bs-bg-opacity:1;background-color:rgba(var(--bs-danger-rgb),var(--bs-bg-opacity))!important}.bg-light{--bs-bg-opacity:1;background-color:rgba(var(--bs-light-rgb),var(--bs-bg-opacity))!important}.bg-dark{--bs-bg-opacity:1;background-color:rgba(var(--bs-dark-rgb),var(--bs-bg-opacity))!important}.bg-black{--bs-bg-opacity:1;background-color:rgba(var(--bs-black-rgb),var(--bs-bg-opacity))!important}.bg-white{--bs-bg-opacity:1;background-color:rgba(var(--bs-white-rgb),var(--bs-bg-opacity))!important}.bg-body{--bs-bg-opacity:1;background-color:rgba(var(--bs-body-bg-rgb),var(--bs-bg-opacity))!important}.bg-transparent{--bs-bg-opacity:1;background-color:transparent!important}.bg-opacity-10{--bs-bg-opacity:0.1}.bg-opacity-25{--bs-bg-opacity:0.25}.bg-opacity-50{--bs-bg-opacity:0.5}.bg-opacity-75{--bs-bg-opacity:0.75}.bg-opacity-100{--bs-bg-opacity:1}.bg-gradient{background-image:var(--bs-gradient)!important}.user-select-all{-webkit-user-select:all!important;-moz-user-select:all!important;user-select:all!important}.user-select-auto{-webkit-user-select:auto!important;-moz-user-select:auto!important;user-select:auto!important}.user-select-none{-webkit-user-select:none!important;-moz-user-select:none!important;user-select:none!important}.pe-none{pointer-events:none!important}.pe-auto{pointer-events:auto!important}.rounded{border-radius:.25rem!important}.rounded-0{border-radius:0!important}.rounded-1{border-radius:.2rem!important}.rounded-2{border-radius:.25rem!important}.rounded-3{border-radius:.3rem!important}.rounded-circle{border-radius:50%!important}.rounded-pill{border-radius:50rem!important}.rounded-top{border-top-left-radius:.25rem!important;border-top-right-radius:.25rem!important}.rounded-end{border-top-right-radius:.25rem!important;border-bottom-right-radius:.25rem!important}.rounded-bottom{border-bottom-right-radius:.25rem!important;border-bottom-left-radius:.25rem!important}.rounded-start{border-bottom-left-radius:.25rem!important;border-top-left-radius:.25rem!important}.visible{visibility:visible!important}.invisible{visibility:hidden!important}@media (min-width:576px){.float-sm-start{float:left!important}.float-sm-end{float:right!important}.float-sm-none{float:none!important}.d-sm-inline{display:inline!important}.d-sm-inline-block{display:inline-block!important}.d-sm-block{display:block!important}.d-sm-grid{display:grid!important}.d-sm-table{display:table!important}.d-sm-table-row{display:table-row!important}.d-sm-table-cell{display:table-cell!important}.d-sm-flex{display:flex!important}.d-sm-inline-flex{display:inline-flex!important}.d-sm-none{display:none!important}.flex-sm-fill{flex:1 1 auto!important}.flex-sm-row{flex-direction:row!important}.flex-sm-column{flex-direction:column!important}.flex-sm-row-reverse{flex-direction:row-reverse!important}.flex-sm-column-reverse{flex-direction:column-reverse!important}.flex-sm-grow-0{flex-grow:0!important}.flex-sm-grow-1{flex-grow:1!important}.flex-sm-shrink-0{flex-shrink:0!important}.flex-sm-shrink-1{flex-shrink:1!important}.flex-sm-wrap{flex-wrap:wrap!important}.flex-sm-nowrap{flex-wrap:nowrap!important}.flex-sm-wrap-reverse{flex-wrap:wrap-reverse!important}.gap-sm-0{gap:0!important}.gap-sm-1{gap:.25rem!important}.gap-sm-2{gap:.5rem!important}.gap-sm-3{gap:1rem!important}.gap-sm-4{gap:1.5rem!important}.gap-sm-5{gap:3rem!important}.justify-content-sm-start{justify-content:flex-start!important}.justify-content-sm-end{justify-content:flex-end!important}.justify-content-sm-center{justify-content:center!important}.justify-content-sm-between{justify-content:space-between!important}.justify-content-sm-around{justify-content:space-around!important}.justify-content-sm-evenly{justify-content:space-evenly!important}.align-items-sm-start{align-items:flex-start!important}.align-items-sm-end{align-items:flex-end!important}.align-items-sm-center{align-items:center!important}.align-items-sm-baseline{align-items:baseline!important}.align-items-sm-stretch{align-items:stretch!important}.align-content-sm-start{align-content:flex-start!important}.align-content-sm-end{align-content:flex-end!important}.align-content-sm-center{align-content:center!important}.align-content-sm-between{align-content:space-between!important}.align-content-sm-around{align-content:space-around!important}.align-content-sm-stretch{align-content:stretch!important}.align-self-sm-auto{align-self:auto!important}.align-self-sm-start{align-self:flex-start!important}.align-self-sm-end{align-self:flex-end!important}.align-self-sm-center{align-self:center!important}.align-self-sm-baseline{align-self:baseline!important}.align-self-sm-stretch{align-self:stretch!important}.order-sm-first{order:-1!important}.order-sm-0{order:0!important}.order-sm-1{order:1!important}.order-sm-2{order:2!important}.order-sm-3{order:3!important}.order-sm-4{order:4!important}.order-sm-5{order:5!important}.order-sm-last{order:6!important}.m-sm-0{margin:0!important}.m-sm-1{margin:.25rem!important}.m-sm-2{margin:.5rem!important}.m-sm-3{margin:1rem!important}.m-sm-4{margin:1.5rem!important}.m-sm-5{margin:3rem!important}.m-sm-auto{margin:auto!important}.mx-sm-0{margin-right:0!important;margin-left:0!important}.mx-sm-1{margin-right:.25rem!important;margin-left:.25rem!important}.mx-sm-2{margin-right:.5rem!important;margin-left:.5rem!important}.mx-sm-3{margin-right:1rem!important;margin-left:1rem!important}.mx-sm-4{margin-right:1.5rem!important;margin-left:1.5rem!important}.mx-sm-5{margin-right:3rem!important;margin-left:3rem!important}.mx-sm-auto{margin-right:auto!important;margin-left:auto!important}.my-sm-0{margin-top:0!important;margin-bottom:0!important}.my-sm-1{margin-top:.25rem!important;margin-bottom:.25rem!important}.my-sm-2{margin-top:.5rem!important;margin-bottom:.5rem!important}.my-sm-3{margin-top:1rem!important;margin-bottom:1rem!important}.my-sm-4{margin-top:1.5rem!important;margin-bottom:1.5rem!important}.my-sm-5{margin-top:3rem!important;margin-bottom:3rem!important}.my-sm-auto{margin-top:auto!important;margin-bottom:auto!important}.mt-sm-0{margin-top:0!important}.mt-sm-1{margin-top:.25rem!important}.mt-sm-2{margin-top:.5rem!important}.mt-sm-3{margin-top:1rem!important}.mt-sm-4{margin-top:1.5rem!important}.mt-sm-5{margin-top:3rem!important}.mt-sm-auto{margin-top:auto!important}.me-sm-0{margin-right:0!important}.me-sm-1{margin-right:.25rem!important}.me-sm-2{margin-right:.5rem!important}.me-sm-3{margin-right:1rem!important}.me-sm-4{margin-right:1.5rem!important}.me-sm-5{margin-right:3rem!important}.me-sm-auto{margin-right:auto!important}.mb-sm-0{margin-bottom:0!important}.mb-sm-1{margin-bottom:.25rem!important}.mb-sm-2{margin-bottom:.5rem!important}.mb-sm-3{margin-bottom:1rem!important}.mb-sm-4{margin-bottom:1.5rem!important}.mb-sm-5{margin-bottom:3rem!important}.mb-sm-auto{margin-bottom:auto!important}.ms-sm-0{margin-left:0!important}.ms-sm-1{margin-left:.25rem!important}.ms-sm-2{margin-left:.5rem!important}.ms-sm-3{margin-left:1rem!important}.ms-sm-4{margin-left:1.5rem!important}.ms-sm-5{margin-left:3rem!important}.ms-sm-auto{margin-left:auto!important}.p-sm-0{padding:0!important}.p-sm-1{padding:.25rem!important}.p-sm-2{padding:.5rem!important}.p-sm-3{padding:1rem!important}.p-sm-4{padding:1.5rem!important}.p-sm-5{padding:3rem!important}.px-sm-0{padding-right:0!important;padding-left:0!important}.px-sm-1{padding-right:.25rem!important;padding-left:.25rem!important}.px-sm-2{padding-right:.5rem!important;padding-left:.5rem!important}.px-sm-3{padding-right:1rem!important;padding-left:1rem!important}.px-sm-4{padding-right:1.5rem!important;padding-left:1.5rem!important}.px-sm-5{padding-right:3rem!important;padding-left:3rem!important}.py-sm-0{padding-top:0!important;padding-bottom:0!important}.py-sm-1{padding-top:.25rem!important;padding-bottom:.25rem!important}.py-sm-2{padding-top:.5rem!important;padding-bottom:.5rem!important}.py-sm-3{padding-top:1rem!important;padding-bottom:1rem!important}.py-sm-4{padding-top:1.5rem!important;padding-bottom:1.5rem!important}.py-sm-5{padding-top:3rem!important;padding-bottom:3rem!important}.pt-sm-0{padding-top:0!important}.pt-sm-1{padding-top:.25rem!important}.pt-sm-2{padding-top:.5rem!important}.pt-sm-3{padding-top:1rem!important}.pt-sm-4{padding-top:1.5rem!important}.pt-sm-5{padding-top:3rem!important}.pe-sm-0{padding-right:0!important}.pe-sm-1{padding-right:.25rem!important}.pe-sm-2{padding-right:.5rem!important}.pe-sm-3{padding-right:1rem!important}.pe-sm-4{padding-right:1.5rem!important}.pe-sm-5{padding-right:3rem!important}.pb-sm-0{padding-bottom:0!important}.pb-sm-1{padding-bottom:.25rem!important}.pb-sm-2{padding-bottom:.5rem!important}.pb-sm-3{padding-bottom:1rem!important}.pb-sm-4{padding-bottom:1.5rem!important}.pb-sm-5{padding-bottom:3rem!important}.ps-sm-0{padding-left:0!important}.ps-sm-1{padding-left:.25rem!important}.ps-sm-2{padding-left:.5rem!important}.ps-sm-3{padding-left:1rem!important}.ps-sm-4{padding-left:1.5rem!important}.ps-sm-5{padding-left:3rem!important}.text-sm-start{text-align:left!important}.text-sm-end{text-align:right!important}.text-sm-center{text-align:center!important}}@media (min-width:768px){.float-md-start{float:left!important}.float-md-end{float:right!important}.float-md-none{float:none!important}.d-md-inline{display:inline!important}.d-md-inline-block{display:inline-block!important}.d-md-block{display:block!important}.d-md-grid{display:grid!important}.d-md-table{display:table!important}.d-md-table-row{display:table-row!important}.d-md-table-cell{display:table-cell!important}.d-md-flex{display:flex!important}.d-md-inline-flex{display:inline-flex!important}.d-md-none{display:none!important}.flex-md-fill{flex:1 1 auto!important}.flex-md-row{flex-direction:row!important}.flex-md-column{flex-direction:column!important}.flex-md-row-reverse{flex-direction:row-reverse!important}.flex-md-column-reverse{flex-direction:column-reverse!important}.flex-md-grow-0{flex-grow:0!important}.flex-md-grow-1{flex-grow:1!important}.flex-md-shrink-0{flex-shrink:0!important}.flex-md-shrink-1{flex-shrink:1!important}.flex-md-wrap{flex-wrap:wrap!important}.flex-md-nowrap{flex-wrap:nowrap!important}.flex-md-wrap-reverse{flex-wrap:wrap-reverse!important}.gap-md-0{gap:0!important}.gap-md-1{gap:.25rem!important}.gap-md-2{gap:.5rem!important}.gap-md-3{gap:1rem!important}.gap-md-4{gap:1.5rem!important}.gap-md-5{gap:3rem!important}.justify-content-md-start{justify-content:flex-start!important}.justify-content-md-end{justify-content:flex-end!important}.justify-content-md-center{justify-content:center!important}.justify-content-md-between{justify-content:space-between!important}.justify-content-md-around{justify-content:space-around!important}.justify-content-md-evenly{justify-content:space-evenly!important}.align-items-md-start{align-items:flex-start!important}.align-items-md-end{align-items:flex-end!important}.align-items-md-center{align-items:center!important}.align-items-md-baseline{align-items:baseline!important}.align-items-md-stretch{align-items:stretch!important}.align-content-md-start{align-content:flex-start!important}.align-content-md-end{align-content:flex-end!important}.align-content-md-center{align-content:center!important}.align-content-md-between{align-content:space-between!important}.align-content-md-around{align-content:space-around!important}.align-content-md-stretch{align-content:stretch!important}.align-self-md-auto{align-self:auto!important}.align-self-md-start{align-self:flex-start!important}.align-self-md-end{align-self:flex-end!important}.align-self-md-center{align-self:center!important}.align-self-md-baseline{align-self:baseline!important}.align-self-md-stretch{align-self:stretch!important}.order-md-first{order:-1!important}.order-md-0{order:0!important}.order-md-1{order:1!important}.order-md-2{order:2!important}.order-md-3{order:3!important}.order-md-4{order:4!important}.order-md-5{order:5!important}.order-md-last{order:6!important}.m-md-0{margin:0!important}.m-md-1{margin:.25rem!important}.m-md-2{margin:.5rem!important}.m-md-3{margin:1rem!important}.m-md-4{margin:1.5rem!important}.m-md-5{margin:3rem!important}.m-md-auto{margin:auto!important}.mx-md-0{margin-right:0!important;margin-left:0!important}.mx-md-1{margin-right:.25rem!important;margin-left:.25rem!important}.mx-md-2{margin-right:.5rem!important;margin-left:.5rem!important}.mx-md-3{margin-right:1rem!important;margin-left:1rem!important}.mx-md-4{margin-right:1.5rem!important;margin-left:1.5rem!important}.mx-md-5{margin-right:3rem!important;margin-left:3rem!important}.mx-md-auto{margin-right:auto!important;margin-left:auto!important}.my-md-0{margin-top:0!important;margin-bottom:0!important}.my-md-1{margin-top:.25rem!important;margin-bottom:.25rem!important}.my-md-2{margin-top:.5rem!important;margin-bottom:.5rem!important}.my-md-3{margin-top:1rem!important;margin-bottom:1rem!important}.my-md-4{margin-top:1.5rem!important;margin-bottom:1.5rem!important}.my-md-5{margin-top:3rem!important;margin-bottom:3rem!important}.my-md-auto{margin-top:auto!important;margin-bottom:auto!important}.mt-md-0{margin-top:0!important}.mt-md-1{margin-top:.25rem!important}.mt-md-2{margin-top:.5rem!important}.mt-md-3{margin-top:1rem!important}.mt-md-4{margin-top:1.5rem!important}.mt-md-5{margin-top:3rem!important}.mt-md-auto{margin-top:auto!important}.me-md-0{margin-right:0!important}.me-md-1{margin-right:.25rem!important}.me-md-2{margin-right:.5rem!important}.me-md-3{margin-right:1rem!important}.me-md-4{margin-right:1.5rem!important}.me-md-5{margin-right:3rem!important}.me-md-auto{margin-right:auto!important}.mb-md-0{margin-bottom:0!important}.mb-md-1{margin-bottom:.25rem!important}.mb-md-2{margin-bottom:.5rem!important}.mb-md-3{margin-bottom:1rem!important}.mb-md-4{margin-bottom:1.5rem!important}.mb-md-5{margin-bottom:3rem!important}.mb-md-auto{margin-bottom:auto!important}.ms-md-0{margin-left:0!important}.ms-md-1{margin-left:.25rem!important}.ms-md-2{margin-left:.5rem!important}.ms-md-3{margin-left:1rem!important}.ms-md-4{margin-left:1.5rem!important}.ms-md-5{margin-left:3rem!important}.ms-md-auto{margin-left:auto!important}.p-md-0{padding:0!important}.p-md-1{padding:.25rem!important}.p-md-2{padding:.5rem!important}.p-md-3{padding:1rem!important}.p-md-4{padding:1.5rem!important}.p-md-5{padding:3rem!important}.px-md-0{padding-right:0!important;padding-left:0!important}.px-md-1{padding-right:.25rem!important;padding-left:.25rem!important}.px-md-2{padding-right:.5rem!important;padding-left:.5rem!important}.px-md-3{padding-right:1rem!important;padding-left:1rem!important}.px-md-4{padding-right:1.5rem!important;padding-left:1.5rem!important}.px-md-5{padding-right:3rem!important;padding-left:3rem!important}.py-md-0{padding-top:0!important;padding-bottom:0!important}.py-md-1{padding-top:.25rem!important;padding-bottom:.25rem!important}.py-md-2{padding-top:.5rem!important;padding-bottom:.5rem!important}.py-md-3{padding-top:1rem!important;padding-bottom:1rem!important}.py-md-4{padding-top:1.5rem!important;padding-bottom:1.5rem!important}.py-md-5{padding-top:3rem!important;padding-bottom:3rem!important}.pt-md-0{padding-top:0!important}.pt-md-1{padding-top:.25rem!important}.pt-md-2{padding-top:.5rem!important}.pt-md-3{padding-top:1rem!important}.pt-md-4{padding-top:1.5rem!important}.pt-md-5{padding-top:3rem!important}.pe-md-0{padding-right:0!important}.pe-md-1{padding-right:.25rem!important}.pe-md-2{padding-right:.5rem!important}.pe-md-3{padding-right:1rem!important}.pe-md-4{padding-right:1.5rem!important}.pe-md-5{padding-right:3rem!important}.pb-md-0{padding-bottom:0!important}.pb-md-1{padding-bottom:.25rem!important}.pb-md-2{padding-bottom:.5rem!important}.pb-md-3{padding-bottom:1rem!important}.pb-md-4{padding-bottom:1.5rem!important}.pb-md-5{padding-bottom:3rem!important}.ps-md-0{padding-left:0!important}.ps-md-1{padding-left:.25rem!important}.ps-md-2{padding-left:.5rem!important}.ps-md-3{padding-left:1rem!important}.ps-md-4{padding-left:1.5rem!important}.ps-md-5{padding-left:3rem!important}.text-md-start{text-align:left!important}.text-md-end{text-align:right!important}.text-md-center{text-align:center!important}}@media (min-width:992px){.float-lg-start{float:left!important}.float-lg-end{float:right!important}.float-lg-none{float:none!important}.d-lg-inline{display:inline!important}.d-lg-inline-block{display:inline-block!important}.d-lg-block{display:block!important}.d-lg-grid{display:grid!important}.d-lg-table{display:table!important}.d-lg-table-row{display:table-row!important}.d-lg-table-cell{display:table-cell!important}.d-lg-flex{display:flex!important}.d-lg-inline-flex{display:inline-flex!important}.d-lg-none{display:none!important}.flex-lg-fill{flex:1 1 auto!important}.flex-lg-row{flex-direction:row!important}.flex-lg-column{flex-direction:column!important}.flex-lg-row-reverse{flex-direction:row-reverse!important}.flex-lg-column-reverse{flex-direction:column-reverse!important}.flex-lg-grow-0{flex-grow:0!important}.flex-lg-grow-1{flex-grow:1!important}.flex-lg-shrink-0{flex-shrink:0!important}.flex-lg-shrink-1{flex-shrink:1!important}.flex-lg-wrap{flex-wrap:wrap!important}.flex-lg-nowrap{flex-wrap:nowrap!important}.flex-lg-wrap-reverse{flex-wrap:wrap-reverse!important}.gap-lg-0{gap:0!important}.gap-lg-1{gap:.25rem!important}.gap-lg-2{gap:.5rem!important}.gap-lg-3{gap:1rem!important}.gap-lg-4{gap:1.5rem!important}.gap-lg-5{gap:3rem!important}.justify-content-lg-start{justify-content:flex-start!important}.justify-content-lg-end{justify-content:flex-end!important}.justify-content-lg-center{justify-content:center!important}.justify-content-lg-between{justify-content:space-between!important}.justify-content-lg-around{justify-content:space-around!important}.justify-content-lg-evenly{justify-content:space-evenly!important}.align-items-lg-start{align-items:flex-start!important}.align-items-lg-end{align-items:flex-end!important}.align-items-lg-center{align-items:center!important}.align-items-lg-baseline{align-items:baseline!important}.align-items-lg-stretch{align-items:stretch!important}.align-content-lg-start{align-content:flex-start!important}.align-content-lg-end{align-content:flex-end!important}.align-content-lg-center{align-content:center!important}.align-content-lg-between{align-content:space-between!important}.align-content-lg-around{align-content:space-around!important}.align-content-lg-stretch{align-content:stretch!important}.align-self-lg-auto{align-self:auto!important}.align-self-lg-start{align-self:flex-start!important}.align-self-lg-end{align-self:flex-end!important}.align-self-lg-center{align-self:center!important}.align-self-lg-baseline{align-self:baseline!important}.align-self-lg-stretch{align-self:stretch!important}.order-lg-first{order:-1!important}.order-lg-0{order:0!important}.order-lg-1{order:1!important}.order-lg-2{order:2!important}.order-lg-3{order:3!important}.order-lg-4{order:4!important}.order-lg-5{order:5!important}.order-lg-last{order:6!important}.m-lg-0{margin:0!important}.m-lg-1{margin:.25rem!important}.m-lg-2{margin:.5rem!important}.m-lg-3{margin:1rem!important}.m-lg-4{margin:1.5rem!important}.m-lg-5{margin:3rem!important}.m-lg-auto{margin:auto!important}.mx-lg-0{margin-right:0!important;margin-left:0!important}.mx-lg-1{margin-right:.25rem!important;margin-left:.25rem!important}.mx-lg-2{margin-right:.5rem!important;margin-left:.5rem!important}.mx-lg-3{margin-right:1rem!important;margin-left:1rem!important}.mx-lg-4{margin-right:1.5rem!important;margin-left:1.5rem!important}.mx-lg-5{margin-right:3rem!important;margin-left:3rem!important}.mx-lg-auto{margin-right:auto!important;margin-left:auto!important}.my-lg-0{margin-top:0!important;margin-bottom:0!important}.my-lg-1{margin-top:.25rem!important;margin-bottom:.25rem!important}.my-lg-2{margin-top:.5rem!important;margin-bottom:.5rem!important}.my-lg-3{margin-top:1rem!important;margin-bottom:1rem!important}.my-lg-4{margin-top:1.5rem!important;margin-bottom:1.5rem!important}.my-lg-5{margin-top:3rem!important;margin-bottom:3rem!important}.my-lg-auto{margin-top:auto!important;margin-bottom:auto!important}.mt-lg-0{margin-top:0!important}.mt-lg-1{margin-top:.25rem!important}.mt-lg-2{margin-top:.5rem!important}.mt-lg-3{margin-top:1rem!important}.mt-lg-4{margin-top:1.5rem!important}.mt-lg-5{margin-top:3rem!important}.mt-lg-auto{margin-top:auto!important}.me-lg-0{margin-right:0!important}.me-lg-1{margin-right:.25rem!important}.me-lg-2{margin-right:.5rem!important}.me-lg-3{margin-right:1rem!important}.me-lg-4{margin-right:1.5rem!important}.me-lg-5{margin-right:3rem!important}.me-lg-auto{margin-right:auto!important}.mb-lg-0{margin-bottom:0!important}.mb-lg-1{margin-bottom:.25rem!important}.mb-lg-2{margin-bottom:.5rem!important}.mb-lg-3{margin-bottom:1rem!important}.mb-lg-4{margin-bottom:1.5rem!important}.mb-lg-5{margin-bottom:3rem!important}.mb-lg-auto{margin-bottom:auto!important}.ms-lg-0{margin-left:0!important}.ms-lg-1{margin-left:.25rem!important}.ms-lg-2{margin-left:.5rem!important}.ms-lg-3{margin-left:1rem!important}.ms-lg-4{margin-left:1.5rem!important}.ms-lg-5{margin-left:3rem!important}.ms-lg-auto{margin-left:auto!important}.p-lg-0{padding:0!important}.p-lg-1{padding:.25rem!important}.p-lg-2{padding:.5rem!important}.p-lg-3{padding:1rem!important}.p-lg-4{padding:1.5rem!important}.p-lg-5{padding:3rem!important}.px-lg-0{padding-right:0!important;padding-left:0!important}.px-lg-1{padding-right:.25rem!important;padding-left:.25rem!important}.px-lg-2{padding-right:.5rem!important;padding-left:.5rem!important}.px-lg-3{padding-right:1rem!important;padding-left:1rem!important}.px-lg-4{padding-right:1.5rem!important;padding-left:1.5rem!important}.px-lg-5{padding-right:3rem!important;padding-left:3rem!important}.py-lg-0{padding-top:0!important;padding-bottom:0!important}.py-lg-1{padding-top:.25rem!important;padding-bottom:.25rem!important}.py-lg-2{padding-top:.5rem!important;padding-bottom:.5rem!important}.py-lg-3{padding-top:1rem!important;padding-bottom:1rem!important}.py-lg-4{padding-top:1.5rem!important;padding-bottom:1.5rem!important}.py-lg-5{padding-top:3rem!important;padding-bottom:3rem!important}.pt-lg-0{padding-top:0!important}.pt-lg-1{padding-top:.25rem!important}.pt-lg-2{padding-top:.5rem!important}.pt-lg-3{padding-top:1rem!important}.pt-lg-4{padding-top:1.5rem!important}.pt-lg-5{padding-top:3rem!important}.pe-lg-0{padding-right:0!important}.pe-lg-1{padding-right:.25rem!important}.pe-lg-2{padding-right:.5rem!important}.pe-lg-3{padding-right:1rem!important}.pe-lg-4{padding-right:1.5rem!important}.pe-lg-5{padding-right:3rem!important}.pb-lg-0{padding-bottom:0!important}.pb-lg-1{padding-bottom:.25rem!important}.pb-lg-2{padding-bottom:.5rem!important}.pb-lg-3{padding-bottom:1rem!important}.pb-lg-4{padding-bottom:1.5rem!important}.pb-lg-5{padding-bottom:3rem!important}.ps-lg-0{padding-left:0!important}.ps-lg-1{padding-left:.25rem!important}.ps-lg-2{padding-left:.5rem!important}.ps-lg-3{padding-left:1rem!important}.ps-lg-4{padding-left:1.5rem!important}.ps-lg-5{padding-left:3rem!important}.text-lg-start{text-align:left!important}.text-lg-end{text-align:right!important}.text-lg-center{text-align:center!important}}@media (min-width:1200px){.float-xl-start{float:left!important}.float-xl-end{float:right!important}.float-xl-none{float:none!important}.d-xl-inline{display:inline!important}.d-xl-inline-block{display:inline-block!important}.d-xl-block{display:block!important}.d-xl-grid{display:grid!important}.d-xl-table{display:table!important}.d-xl-table-row{display:table-row!important}.d-xl-table-cell{display:table-cell!important}.d-xl-flex{display:flex!important}.d-xl-inline-flex{display:inline-flex!important}.d-xl-none{display:none!important}.flex-xl-fill{flex:1 1 auto!important}.flex-xl-row{flex-direction:row!important}.flex-xl-column{flex-direction:column!important}.flex-xl-row-reverse{flex-direction:row-reverse!important}.flex-xl-column-reverse{flex-direction:column-reverse!important}.flex-xl-grow-0{flex-grow:0!important}.flex-xl-grow-1{flex-grow:1!important}.flex-xl-shrink-0{flex-shrink:0!important}.flex-xl-shrink-1{flex-shrink:1!important}.flex-xl-wrap{flex-wrap:wrap!important}.flex-xl-nowrap{flex-wrap:nowrap!important}.flex-xl-wrap-reverse{flex-wrap:wrap-reverse!important}.gap-xl-0{gap:0!important}.gap-xl-1{gap:.25rem!important}.gap-xl-2{gap:.5rem!important}.gap-xl-3{gap:1rem!important}.gap-xl-4{gap:1.5rem!important}.gap-xl-5{gap:3rem!important}.justify-content-xl-start{justify-content:flex-start!important}.justify-content-xl-end{justify-content:flex-end!important}.justify-content-xl-center{justify-content:center!important}.justify-content-xl-between{justify-content:space-between!important}.justify-content-xl-around{justify-content:space-around!important}.justify-content-xl-evenly{justify-content:space-evenly!important}.align-items-xl-start{align-items:flex-start!important}.align-items-xl-end{align-items:flex-end!important}.align-items-xl-center{align-items:center!important}.align-items-xl-baseline{align-items:baseline!important}.align-items-xl-stretch{align-items:stretch!important}.align-content-xl-start{align-content:flex-start!important}.align-content-xl-end{align-content:flex-end!important}.align-content-xl-center{align-content:center!important}.align-content-xl-between{align-content:space-between!important}.align-content-xl-around{align-content:space-around!important}.align-content-xl-stretch{align-content:stretch!important}.align-self-xl-auto{align-self:auto!important}.align-self-xl-start{align-self:flex-start!important}.align-self-xl-end{align-self:flex-end!important}.align-self-xl-center{align-self:center!important}.align-self-xl-baseline{align-self:baseline!important}.align-self-xl-stretch{align-self:stretch!important}.order-xl-first{order:-1!important}.order-xl-0{order:0!important}.order-xl-1{order:1!important}.order-xl-2{order:2!important}.order-xl-3{order:3!important}.order-xl-4{order:4!important}.order-xl-5{order:5!important}.order-xl-last{order:6!important}.m-xl-0{margin:0!important}.m-xl-1{margin:.25rem!important}.m-xl-2{margin:.5rem!important}.m-xl-3{margin:1rem!important}.m-xl-4{margin:1.5rem!important}.m-xl-5{margin:3rem!important}.m-xl-auto{margin:auto!important}.mx-xl-0{margin-right:0!important;margin-left:0!important}.mx-xl-1{margin-right:.25rem!important;margin-left:.25rem!important}.mx-xl-2{margin-right:.5rem!important;margin-left:.5rem!important}.mx-xl-3{margin-right:1rem!important;margin-left:1rem!important}.mx-xl-4{margin-right:1.5rem!important;margin-left:1.5rem!important}.mx-xl-5{margin-right:3rem!important;margin-left:3rem!important}.mx-xl-auto{margin-right:auto!important;margin-left:auto!important}.my-xl-0{margin-top:0!important;margin-bottom:0!important}.my-xl-1{margin-top:.25rem!important;margin-bottom:.25rem!important}.my-xl-2{margin-top:.5rem!important;margin-bottom:.5rem!important}.my-xl-3{margin-top:1rem!important;margin-bottom:1rem!important}.my-xl-4{margin-top:1.5rem!important;margin-bottom:1.5rem!important}.my-xl-5{margin-top:3rem!important;margin-bottom:3rem!important}.my-xl-auto{margin-top:auto!important;margin-bottom:auto!important}.mt-xl-0{margin-top:0!important}.mt-xl-1{margin-top:.25rem!important}.mt-xl-2{margin-top:.5rem!important}.mt-xl-3{margin-top:1rem!important}.mt-xl-4{margin-top:1.5rem!important}.mt-xl-5{margin-top:3rem!important}.mt-xl-auto{margin-top:auto!important}.me-xl-0{margin-right:0!important}.me-xl-1{margin-right:.25rem!important}.me-xl-2{margin-right:.5rem!important}.me-xl-3{margin-right:1rem!important}.me-xl-4{margin-right:1.5rem!important}.me-xl-5{margin-right:3rem!important}.me-xl-auto{margin-right:auto!important}.mb-xl-0{margin-bottom:0!important}.mb-xl-1{margin-bottom:.25rem!important}.mb-xl-2{margin-bottom:.5rem!important}.mb-xl-3{margin-bottom:1rem!important}.mb-xl-4{margin-bottom:1.5rem!important}.mb-xl-5{margin-bottom:3rem!important}.mb-xl-auto{margin-bottom:auto!important}.ms-xl-0{margin-left:0!important}.ms-xl-1{margin-left:.25rem!important}.ms-xl-2{margin-left:.5rem!important}.ms-xl-3{margin-left:1rem!important}.ms-xl-4{margin-left:1.5rem!important}.ms-xl-5{margin-left:3rem!important}.ms-xl-auto{margin-left:auto!important}.p-xl-0{padding:0!important}.p-xl-1{padding:.25rem!important}.p-xl-2{padding:.5rem!important}.p-xl-3{padding:1rem!important}.p-xl-4{padding:1.5rem!important}.p-xl-5{padding:3rem!important}.px-xl-0{padding-right:0!important;padding-left:0!important}.px-xl-1{padding-right:.25rem!important;padding-left:.25rem!important}.px-xl-2{padding-right:.5rem!important;padding-left:.5rem!important}.px-xl-3{padding-right:1rem!important;padding-left:1rem!important}.px-xl-4{padding-right:1.5rem!important;padding-left:1.5rem!important}.px-xl-5{padding-right:3rem!important;padding-left:3rem!important}.py-xl-0{padding-top:0!important;padding-bottom:0!important}.py-xl-1{padding-top:.25rem!important;padding-bottom:.25rem!important}.py-xl-2{padding-top:.5rem!important;padding-bottom:.5rem!important}.py-xl-3{padding-top:1rem!important;padding-bottom:1rem!important}.py-xl-4{padding-top:1.5rem!important;padding-bottom:1.5rem!important}.py-xl-5{padding-top:3rem!important;padding-bottom:3rem!important}.pt-xl-0{padding-top:0!important}.pt-xl-1{padding-top:.25rem!important}.pt-xl-2{padding-top:.5rem!important}.pt-xl-3{padding-top:1rem!important}.pt-xl-4{padding-top:1.5rem!important}.pt-xl-5{padding-top:3rem!important}.pe-xl-0{padding-right:0!important}.pe-xl-1{padding-right:.25rem!important}.pe-xl-2{padding-right:.5rem!important}.pe-xl-3{padding-right:1rem!important}.pe-xl-4{padding-right:1.5rem!important}.pe-xl-5{padding-right:3rem!important}.pb-xl-0{padding-bottom:0!important}.pb-xl-1{padding-bottom:.25rem!important}.pb-xl-2{padding-bottom:.5rem!important}.pb-xl-3{padding-bottom:1rem!important}.pb-xl-4{padding-bottom:1.5rem!important}.pb-xl-5{padding-bottom:3rem!important}.ps-xl-0{padding-left:0!important}.ps-xl-1{padding-left:.25rem!important}.ps-xl-2{padding-left:.5rem!important}.ps-xl-3{padding-left:1rem!important}.ps-xl-4{padding-left:1.5rem!important}.ps-xl-5{padding-left:3rem!important}.text-xl-start{text-align:left!important}.text-xl-end{text-align:right!important}.text-xl-center{text-align:center!important}}@media (min-width:1400px){.float-xxl-start{float:left!important}.float-xxl-end{float:right!important}.float-xxl-none{float:none!important}.d-xxl-inline{display:inline!important}.d-xxl-inline-block{display:inline-block!important}.d-xxl-block{display:block!important}.d-xxl-grid{display:grid!important}.d-xxl-table{display:table!important}.d-xxl-table-row{display:table-row!important}.d-xxl-table-cell{display:table-cell!important}.d-xxl-flex{display:flex!important}.d-xxl-inline-flex{display:inline-flex!important}.d-xxl-none{display:none!important}.flex-xxl-fill{flex:1 1 auto!important}.flex-xxl-row{flex-direction:row!important}.flex-xxl-column{flex-direction:column!important}.flex-xxl-row-reverse{flex-direction:row-reverse!important}.flex-xxl-column-reverse{flex-direction:column-reverse!important}.flex-xxl-grow-0{flex-grow:0!important}.flex-xxl-grow-1{flex-grow:1!important}.flex-xxl-shrink-0{flex-shrink:0!important}.flex-xxl-shrink-1{flex-shrink:1!important}.flex-xxl-wrap{flex-wrap:wrap!important}.flex-xxl-nowrap{flex-wrap:nowrap!important}.flex-xxl-wrap-reverse{flex-wrap:wrap-reverse!important}.gap-xxl-0{gap:0!important}.gap-xxl-1{gap:.25rem!important}.gap-xxl-2{gap:.5rem!important}.gap-xxl-3{gap:1rem!important}.gap-xxl-4{gap:1.5rem!important}.gap-xxl-5{gap:3rem!important}.justify-content-xxl-start{justify-content:flex-start!important}.justify-content-xxl-end{justify-content:flex-end!important}.justify-content-xxl-center{justify-content:center!important}.justify-content-xxl-between{justify-content:space-between!important}.justify-content-xxl-around{justify-content:space-around!important}.justify-content-xxl-evenly{justify-content:space-evenly!important}.align-items-xxl-start{align-items:flex-start!important}.align-items-xxl-end{align-items:flex-end!important}.align-items-xxl-center{align-items:center!important}.align-items-xxl-baseline{align-items:baseline!important}.align-items-xxl-stretch{align-items:stretch!important}.align-content-xxl-start{align-content:flex-start!important}.align-content-xxl-end{align-content:flex-end!important}.align-content-xxl-center{align-content:center!important}.align-content-xxl-between{align-content:space-between!important}.align-content-xxl-around{align-content:space-around!important}.align-content-xxl-stretch{align-content:stretch!important}.align-self-xxl-auto{align-self:auto!important}.align-self-xxl-start{align-self:flex-start!important}.align-self-xxl-end{align-self:flex-end!important}.align-self-xxl-center{align-self:center!important}.align-self-xxl-baseline{align-self:baseline!important}.align-self-xxl-stretch{align-self:stretch!important}.order-xxl-first{order:-1!important}.order-xxl-0{order:0!important}.order-xxl-1{order:1!important}.order-xxl-2{order:2!important}.order-xxl-3{order:3!important}.order-xxl-4{order:4!important}.order-xxl-5{order:5!important}.order-xxl-last{order:6!important}.m-xxl-0{margin:0!important}.m-xxl-1{margin:.25rem!important}.m-xxl-2{margin:.5rem!important}.m-xxl-3{margin:1rem!important}.m-xxl-4{margin:1.5rem!important}.m-xxl-5{margin:3rem!important}.m-xxl-auto{margin:auto!important}.mx-xxl-0{margin-right:0!important;margin-left:0!important}.mx-xxl-1{margin-right:.25rem!important;margin-left:.25rem!important}.mx-xxl-2{margin-right:.5rem!important;margin-left:.5rem!important}.mx-xxl-3{margin-right:1rem!important;margin-left:1rem!important}.mx-xxl-4{margin-right:1.5rem!important;margin-left:1.5rem!important}.mx-xxl-5{margin-right:3rem!important;margin-left:3rem!important}.mx-xxl-auto{margin-right:auto!important;margin-left:auto!important}.my-xxl-0{margin-top:0!important;margin-bottom:0!important}.my-xxl-1{margin-top:.25rem!important;margin-bottom:.25rem!important}.my-xxl-2{margin-top:.5rem!important;margin-bottom:.5rem!important}.my-xxl-3{margin-top:1rem!important;margin-bottom:1rem!important}.my-xxl-4{margin-top:1.5rem!important;margin-bottom:1.5rem!important}.my-xxl-5{margin-top:3rem!important;margin-bottom:3rem!important}.my-xxl-auto{margin-top:auto!important;margin-bottom:auto!important}.mt-xxl-0{margin-top:0!important}.mt-xxl-1{margin-top:.25rem!important}.mt-xxl-2{margin-top:.5rem!important}.mt-xxl-3{margin-top:1rem!important}.mt-xxl-4{margin-top:1.5rem!important}.mt-xxl-5{margin-top:3rem!important}.mt-xxl-auto{margin-top:auto!important}.me-xxl-0{margin-right:0!important}.me-xxl-1{margin-right:.25rem!important}.me-xxl-2{margin-right:.5rem!important}.me-xxl-3{margin-right:1rem!important}.me-xxl-4{margin-right:1.5rem!important}.me-xxl-5{margin-right:3rem!important}.me-xxl-auto{margin-right:auto!important}.mb-xxl-0{margin-bottom:0!important}.mb-xxl-1{margin-bottom:.25rem!important}.mb-xxl-2{margin-bottom:.5rem!important}.mb-xxl-3{margin-bottom:1rem!important}.mb-xxl-4{margin-bottom:1.5rem!important}.mb-xxl-5{margin-bottom:3rem!important}.mb-xxl-auto{margin-bottom:auto!important}.ms-xxl-0{margin-left:0!important}.ms-xxl-1{margin-left:.25rem!important}.ms-xxl-2{margin-left:.5rem!important}.ms-xxl-3{margin-left:1rem!important}.ms-xxl-4{margin-left:1.5rem!important}.ms-xxl-5{margin-left:3rem!important}.ms-xxl-auto{margin-left:auto!important}.p-xxl-0{padding:0!important}.p-xxl-1{padding:.25rem!important}.p-xxl-2{padding:.5rem!important}.p-xxl-3{padding:1rem!important}.p-xxl-4{padding:1.5rem!important}.p-xxl-5{padding:3rem!important}.px-xxl-0{padding-right:0!important;padding-left:0!important}.px-xxl-1{padding-right:.25rem!important;padding-left:.25rem!important}.px-xxl-2{padding-right:.5rem!important;padding-left:.5rem!important}.px-xxl-3{padding-right:1rem!important;padding-left:1rem!important}.px-xxl-4{padding-right:1.5rem!important;padding-left:1.5rem!important}.px-xxl-5{padding-right:3rem!important;padding-left:3rem!important}.py-xxl-0{padding-top:0!important;padding-bottom:0!important}.py-xxl-1{padding-top:.25rem!important;padding-bottom:.25rem!important}.py-xxl-2{padding-top:.5rem!important;padding-bottom:.5rem!important}.py-xxl-3{padding-top:1rem!important;padding-bottom:1rem!important}.py-xxl-4{padding-top:1.5rem!important;padding-bottom:1.5rem!important}.py-xxl-5{padding-top:3rem!important;padding-bottom:3rem!important}.pt-xxl-0{padding-top:0!important}.pt-xxl-1{padding-top:.25rem!important}.pt-xxl-2{padding-top:.5rem!important}.pt-xxl-3{padding-top:1rem!important}.pt-xxl-4{padding-top:1.5rem!important}.pt-xxl-5{padding-top:3rem!important}.pe-xxl-0{padding-right:0!important}.pe-xxl-1{padding-right:.25rem!important}.pe-xxl-2{padding-right:.5rem!important}.pe-xxl-3{padding-right:1rem!important}.pe-xxl-4{padding-right:1.5rem!important}.pe-xxl-5{padding-right:3rem!important}.pb-xxl-0{padding-bottom:0!important}.pb-xxl-1{padding-bottom:.25rem!important}.pb-xxl-2{padding-bottom:.5rem!important}.pb-xxl-3{padding-bottom:1rem!important}.pb-xxl-4{padding-bottom:1.5rem!important}.pb-xxl-5{padding-bottom:3rem!important}.ps-xxl-0{padding-left:0!important}.ps-xxl-1{padding-left:.25rem!important}.ps-xxl-2{padding-left:.5rem!important}.ps-xxl-3{padding-left:1rem!important}.ps-xxl-4{padding-left:1.5rem!important}.ps-xxl-5{padding-left:3rem!important}.text-xxl-start{text-align:left!important}.text-xxl-end{text-align:right!important}.text-xxl-center{text-align:center!important}}@media (min-width:1200px){.fs-1{font-size:2.5rem!important}.fs-2{font-size:2rem!important}.fs-3{font-size:1.75rem!important}.fs-4{font-size:1.5rem!important}}@media print{.d-print-inline{display:inline!important}.d-print-inline-block{display:inline-block!important}.d-print-block{display:block!important}.d-print-grid{display:grid!important}.d-print-table{display:table!important}.d-print-table-row{display:table-row!important}.d-print-table-cell{display:table-cell!important}.d-print-flex{display:flex!important}.d-print-inline-flex{display:inline-flex!important}.d-print-none{display:none!important}} diff --git a/examples/vagrant/static-http/jssip-3.8.2.min.js b/examples/vagrant/static-http/jssip-3.8.2.min.js new file mode 100644 index 00000000..8ba04757 --- /dev/null +++ b/examples/vagrant/static-http/jssip-3.8.2.min.js @@ -0,0 +1,9 @@ +/* + * JsSIP v3.8.2 + * the Javascript SIP library + * Copyright: 2012-2021 + * Homepage: https://jssip.net + * License: MIT + */ + +!function(e){if("object"==typeof exports&&"undefined"!=typeof module)module.exports=e();else if("function"==typeof define&&define.amd)define([],e);else{("undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:this).JsSIP=e()}}(function(){return function(){return function e(t,n,r){function s(o,l){if(!n[o]){if(!t[o]){var u="function"==typeof require&&require;if(!l&&u)return u(o,!0);if(i)return i(o,!0);var a=new Error("Cannot find module '"+o+"'");throw a.code="MODULE_NOT_FOUND",a}var c=n[o]={exports:{}};t[o][0].call(c.exports,function(e){return s(t[o][1][e]||e)},c,c.exports,e,t,n,r)}return n[o].exports}for(var i="function"==typeof require&&require,o=0;o=e.length?{done:!0}:{done:!1,value:e[r++]}},e:function(e){throw e},f:i}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var o,l=!0,u=!1;return{s:function(){n=e[Symbol.iterator]()},n:function(){var e=n.next();return l=e.done,e},e:function(e){u=!0,o=e},f:function(){try{l||null==n.return||n.return()}finally{if(u)throw o}}}}function s(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n0)return t}},connection_recovery_min_interval:function(e){if(i.isDecimal(e)){var t=Number(e);if(t>0)return t}},contact_uri:function(e){if("string"==typeof e){var t=l.parse(e,"SIP_URI");if(-1!==t)return t}},display_name:function(e){return e},instance_id:function(e){return/^uuid:/i.test(e)&&(e=e.substr(5)),-1===l.parse(e,"uuid")?void 0:e},no_answer_timeout:function(e){if(i.isDecimal(e)){var t=Number(e);if(t>0)return t}},session_timers:function(e){if("boolean"==typeof e)return e},session_timers_refresh_method:function(e){if("string"==typeof e&&((e=e.toUpperCase())===o.INVITE||e===o.UPDATE))return e},session_timers_force_refresher:function(e){if("boolean"==typeof e)return e},password:function(e){return String(e)},realm:function(e){return String(e)},ha1:function(e){return String(e)},register:function(e){if("boolean"==typeof e)return e},register_expires:function(e){if(i.isDecimal(e)){var t=Number(e);if(t>0)return t}},registrar_server:function(e){/^sip:/i.test(e)||(e="".concat(o.SIP,":").concat(e));var t=u.parse(e);return t?t.user?void 0:t:void 0},use_preloaded_route:function(e){if("boolean"==typeof e)return e}}};n.load=function(e,t){for(var n in h.mandatory){if(!t.hasOwnProperty(n))throw new c.ConfigurationError(n);var r=t[n],s=h.mandatory[n](r);if(void 0===s)throw new c.ConfigurationError(n,r);e[n]=s}for(var o in h.optional)if(t.hasOwnProperty(o)){var l=t[o];if(i.isEmpty(l))continue;var u=h.optional[o](l);if(void 0===u)throw new c.ConfigurationError(o,l);e[o]=u}}},{"./Constants":2,"./Exceptions":6,"./Grammar":7,"./Socket":22,"./URI":27,"./Utils":28}],2:[function(e,t,n){"use strict";var r=e("../package.json");t.exports={USER_AGENT:"".concat(r.title," ").concat(r.version),SIP:"sip",SIPS:"sips",causes:{CONNECTION_ERROR:"Connection Error",REQUEST_TIMEOUT:"Request Timeout",SIP_FAILURE_CODE:"SIP Failure Code",INTERNAL_ERROR:"Internal Error",BUSY:"Busy",REJECTED:"Rejected",REDIRECTED:"Redirected",UNAVAILABLE:"Unavailable",NOT_FOUND:"Not Found",ADDRESS_INCOMPLETE:"Address Incomplete",INCOMPATIBLE_SDP:"Incompatible SDP",MISSING_SDP:"Missing SDP",AUTHENTICATION_ERROR:"Authentication Error",BYE:"Terminated",WEBRTC_ERROR:"WebRTC Error",CANCELED:"Canceled",NO_ANSWER:"No Answer",EXPIRES:"Expires",NO_ACK:"No ACK",DIALOG_ERROR:"Dialog Error",USER_DENIED_MEDIA_ACCESS:"User Denied Media Access",BAD_MEDIA_DESCRIPTION:"Bad Media Description",RTP_TIMEOUT:"RTP Timeout"},SIP_ERROR_CAUSES:{REDIRECTED:[300,301,302,305,380],BUSY:[486,600],REJECTED:[403,603],NOT_FOUND:[404,604],UNAVAILABLE:[480,410,408,430],ADDRESS_INCOMPLETE:[484,424],INCOMPATIBLE_SDP:[488,606],AUTHENTICATION_ERROR:[401,407]},ACK:"ACK",BYE:"BYE",CANCEL:"CANCEL",INFO:"INFO",INVITE:"INVITE",MESSAGE:"MESSAGE",NOTIFY:"NOTIFY",OPTIONS:"OPTIONS",REGISTER:"REGISTER",REFER:"REFER",UPDATE:"UPDATE",SUBSCRIBE:"SUBSCRIBE",DTMF_TRANSPORT:{INFO:"INFO",RFC2833:"RFC2833"},REASON_PHRASE:{100:"Trying",180:"Ringing",181:"Call Is Being Forwarded",182:"Queued",183:"Session Progress",199:"Early Dialog Terminated",200:"OK",202:"Accepted",204:"No Notification",300:"Multiple Choices",301:"Moved Permanently",302:"Moved Temporarily",305:"Use Proxy",380:"Alternative Service",400:"Bad Request",401:"Unauthorized",402:"Payment Required",403:"Forbidden",404:"Not Found",405:"Method Not Allowed",406:"Not Acceptable",407:"Proxy Authentication Required",408:"Request Timeout",410:"Gone",412:"Conditional Request Failed",413:"Request Entity Too Large",414:"Request-URI Too Long",415:"Unsupported Media Type",416:"Unsupported URI Scheme",417:"Unknown Resource-Priority",420:"Bad Extension",421:"Extension Required",422:"Session Interval Too Small",423:"Interval Too Brief",424:"Bad Location Information",428:"Use Identity Header",429:"Provide Referrer Identity",430:"Flow Failed",433:"Anonymity Disallowed",436:"Bad Identity-Info",437:"Unsupported Certificate",438:"Invalid Identity Header",439:"First Hop Lacks Outbound Support",440:"Max-Breadth Exceeded",469:"Bad Info Package",470:"Consent Needed",478:"Unresolvable Destination",480:"Temporarily Unavailable",481:"Call/Transaction Does Not Exist",482:"Loop Detected",483:"Too Many Hops",484:"Address Incomplete",485:"Ambiguous",486:"Busy Here",487:"Request Terminated",488:"Not Acceptable Here",489:"Bad Event",491:"Request Pending",493:"Undecipherable",494:"Security Agreement Required",500:"JsSIP Internal Error",501:"Not Implemented",502:"Bad Gateway",503:"Service Unavailable",504:"Server Time-out",505:"Version Not Supported",513:"Message Too Large",580:"Precondition Failure",600:"Busy Everywhere",603:"Decline",604:"Does Not Exist Anywhere",606:"Not Acceptable"},ALLOWED_METHODS:"INVITE,ACK,CANCEL,BYE,UPDATE,MESSAGE,OPTIONS,REFER,INFO,NOTIFY",ACCEPTED_BODY_TYPES:"application/sdp, application/dtmf-relay",MAX_FORWARDS:69,SESSION_EXPIRES:90,MIN_SESSION_EXPIRES:60,CONNECTION_RECOVERY_MAX_INTERVAL:30,CONNECTION_RECOVERY_MIN_INTERVAL:2}},{"../package.json":40}],3:[function(e,t,n){"use strict";function r(e,t){for(var n=0;n3&&void 0!==arguments[3]?arguments[3]:d.STATUS_CONFIRMED;if(function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,e),this._owner=t,this._ua=t._ua,this._uac_pending_reply=!1,this._uas_pending_reply=!1,!n.hasHeader("contact"))return{error:"unable to create a Dialog without Contact header field"};n instanceof o.IncomingResponse&&(s=n.status_code<200?d.STATUS_EARLY:d.STATUS_CONFIRMED);var i=n.parseHeader("contact");"UAS"===r?(this._id={call_id:n.call_id,local_tag:n.to_tag,remote_tag:n.from_tag,toString:function(){return this.call_id+this.local_tag+this.remote_tag}},this._state=s,this._remote_seqnum=n.cseq,this._local_uri=n.parseHeader("to").uri,this._remote_uri=n.parseHeader("from").uri,this._remote_target=i.uri,this._route_set=n.getHeaders("record-route"),this._ack_seqnum=this._remote_seqnum):"UAC"===r&&(this._id={call_id:n.call_id,local_tag:n.from_tag,remote_tag:n.to_tag,toString:function(){return this.call_id+this.local_tag+this.remote_tag}},this._state=s,this._local_seqnum=n.cseq,this._local_uri=n.parseHeader("from").uri,this._remote_uri=n.parseHeader("to").uri,this._remote_target=i.uri,this._route_set=n.getHeaders("record-route").reverse(),this._ack_seqnum=null),this._ua.newDialog(this),h.debug("new ".concat(r," dialog created with status ").concat(this._state===d.STATUS_EARLY?"EARLY":"CONFIRMED"))}return s(e,null,[{key:"C",get:function(){return d}}]),s(e,[{key:"update",value:function(e,t){this._state=d.STATUS_CONFIRMED,h.debug("dialog ".concat(this._id.toString()," changed to CONFIRMED state")),"UAC"===t&&(this._route_set=e.getHeaders("record-route").reverse())}},{key:"terminate",value:function(){h.debug("dialog ".concat(this._id.toString()," deleted")),this._ua.destroyDialog(this)}},{key:"sendRequest",value:function(e){var t=this,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=c.cloneArray(n.extraHeaders),s=c.cloneObject(n.eventHandlers),i=n.body||null,o=this._createRequest(e,r,i);return s.onAuthenticated=function(){t._local_seqnum+=1},new a(this,o,s).send(),o}},{key:"receiveRequest",value:function(e){this._checkInDialogRequest(e)&&(e.method===l.ACK&&null!==this._ack_seqnum?this._ack_seqnum=null:e.method===l.INVITE&&(this._ack_seqnum=e.cseq),this._owner.receiveRequest(e))}},{key:"_createRequest",value:function(e,t,n){t=c.cloneArray(t),this._local_seqnum||(this._local_seqnum=Math.floor(1e4*Math.random()));var r=e===l.CANCEL||e===l.ACK?this._local_seqnum:this._local_seqnum+=1;return new o.OutgoingRequest(e,this._remote_target,this._ua,{cseq:r,call_id:this._id.call_id,from_uri:this._local_uri,from_tag:this._id.local_tag,to_uri:this._remote_uri,to_tag:this._id.remote_tag,route_set:this._route_set},t,n)}},{key:"_checkInDialogRequest",value:function(e){var t=this;if(this._remote_seqnum)if(e.cseqthis._remote_seqnum&&(this._remote_seqnum=e.cseq);else this._remote_seqnum=e.cseq;if(e.method===l.INVITE||e.method===l.UPDATE&&e.body){if(!0===this._uac_pending_reply)e.reply(491);else{if(!0===this._uas_pending_reply){var n=1+(10*Math.random()|0);return e.reply(500,null,["Retry-After:".concat(n)]),!1}this._uas_pending_reply=!0;e.server_transaction.on("stateChanged",function n(){e.server_transaction.state!==u.C.STATUS_ACCEPTED&&e.server_transaction.state!==u.C.STATUS_COMPLETED&&e.server_transaction.state!==u.C.STATUS_TERMINATED||(e.server_transaction.removeListener("stateChanged",n),t._uas_pending_reply=!1)})}e.hasHeader("contact")&&e.server_transaction.on("stateChanged",function(){e.server_transaction.state===u.C.STATUS_ACCEPTED&&(t._remote_target=e.parseHeader("contact").uri)})}else e.method===l.NOTIFY&&e.hasHeader("contact")&&e.server_transaction.on("stateChanged",function(){e.server_transaction.state===u.C.STATUS_COMPLETED&&(t._remote_target=e.parseHeader("contact").uri)});return!0}},{key:"id",get:function(){return this._id}},{key:"local_seqnum",get:function(){return this._local_seqnum},set:function(e){this._local_seqnum=e}},{key:"owner",get:function(){return this._owner}},{key:"uac_pending_reply",get:function(){return this._uac_pending_reply},set:function(e){this._uac_pending_reply=e}},{key:"uas_pending_reply",get:function(){return this._uas_pending_reply}}]),e}()},{"./Constants":2,"./Dialog/RequestSender":4,"./Logger":9,"./SIPMessage":21,"./Transactions":24,"./Utils":28}],4:[function(e,t,n){"use strict";function r(e,t){for(var n=0;n=200&&e.status_code<300?this._eventHandlers.onSuccessResponse(e):e.status_code>=300&&this._eventHandlers.onErrorResponse(e):(this._request.cseq=this._dialog.local_seqnum+=1,this._reattemptTimer=setTimeout(function(){t._dialog.owner.status!==o.C.STATUS_TERMINATED&&(t._reattempt=!0,t._request_sender.send())},1e3)):e.status_code>=200&&e.status_code<300?this._eventHandlers.onSuccessResponse(e):e.status_code>=300&&this._eventHandlers.onErrorResponse(e)}},{key:"request",get:function(){return this._request}}])&&r(t.prototype,n),a&&r(t,a),e}()},{"../Constants":2,"../RTCSession":14,"../RequestSender":20,"../Transactions":24}],5:[function(e,t,n){"use strict";function r(e,t){for(var n=0;n2&&void 0!==arguments[2]?arguments[2]:null;if(this._algorithm=t.algorithm,this._realm=t.realm,this._nonce=t.nonce,this._opaque=t.opaque,this._stale=t.stale,this._algorithm){if("MD5"!==this._algorithm)return o.warn('authenticate() | challenge with Digest algorithm different than "MD5", authentication aborted'),!1}else this._algorithm="MD5";if(!this._nonce)return o.warn("authenticate() | challenge without Digest nonce, authentication aborted"),!1;if(!this._realm)return o.warn("authenticate() | challenge without Digest realm, authentication aborted"),!1;if(!this._credentials.password){if(!this._credentials.ha1)return o.warn("authenticate() | no plain SIP password nor ha1 provided, authentication aborted"),!1;if(this._credentials.realm!==this._realm)return o.warn('authenticate() | no plain SIP password, and stored `realm` does not match the given `realm`, cannot authenticate [stored:"%s", given:"%s"]',this._credentials.realm,this._realm),!1}if(t.qop)if(t.qop.indexOf("auth-int")>-1)this._qop="auth-int";else{if(!(t.qop.indexOf("auth")>-1))return o.warn('authenticate() | challenge without Digest qop different than "auth" or "auth-int", authentication aborted'),!1;this._qop="auth"}else this._qop=null;this._method=n,this._uri=r,this._cnonce=l||i.createRandomToken(12),this._nc+=1;var u,a,c=Number(this._nc).toString(16);return this._ncHex="00000000".substr(0,8-c.length)+c,4294967296===this._nc&&(this._nc=1,this._ncHex="00000001"),this._credentials.password?this._ha1=i.calculateMD5("".concat(this._credentials.username,":").concat(this._realm,":").concat(this._credentials.password)):this._ha1=this._credentials.ha1,"auth"===this._qop?(u="".concat(this._method,":").concat(this._uri),a=i.calculateMD5(u),o.debug('authenticate() | using qop=auth [a2:"%s"]',u),this._response=i.calculateMD5("".concat(this._ha1,":").concat(this._nonce,":").concat(this._ncHex,":").concat(this._cnonce,":auth:").concat(a))):"auth-int"===this._qop?(u="".concat(this._method,":").concat(this._uri,":").concat(i.calculateMD5(s||"")),a=i.calculateMD5(u),o.debug('authenticate() | using qop=auth-int [a2:"%s"]',u),this._response=i.calculateMD5("".concat(this._ha1,":").concat(this._nonce,":").concat(this._ncHex,":").concat(this._cnonce,":auth-int:").concat(a))):null===this._qop&&(u="".concat(this._method,":").concat(this._uri),a=i.calculateMD5(u),o.debug('authenticate() | using qop=null [a2:"%s"]',u),this._response=i.calculateMD5("".concat(this._ha1,":").concat(this._nonce,":").concat(a))),o.debug("authenticate() | response generated"),!0}},{key:"toString",value:function(){var e=[];if(!this._response)throw new Error("response field does not exist, cannot generate Authorization header");return e.push("algorithm=".concat(this._algorithm)),e.push('username="'.concat(this._credentials.username,'"')),e.push('realm="'.concat(this._realm,'"')),e.push('nonce="'.concat(this._nonce,'"')),e.push('uri="'.concat(this._uri,'"')),e.push('response="'.concat(this._response,'"')),this._opaque&&e.push('opaque="'.concat(this._opaque,'"')),this._qop&&(e.push("qop=".concat(this._qop)),e.push('cnonce="'.concat(this._cnonce,'"')),e.push("nc=".concat(this._ncHex))),"Digest ".concat(e.join(", "))}}])&&r(t.prototype,n),s&&r(t,s),e}()},{"./Logger":9,"./Utils":28}],6:[function(e,t,n){"use strict";function r(e){return(r="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function s(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function i(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),t&&c(e,t)}function o(e){var t=a();return function(){var n,s=h(e);if(t){var i=h(this).constructor;n=Reflect.construct(s,arguments,i)}else n=s.apply(this,arguments);return function(e,t){if(t&&("object"===r(t)||"function"==typeof t))return t;return function(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}(e)}(this,n)}}function l(e){var t="function"==typeof Map?new Map:void 0;return(l=function(e){if(null===e||(n=e,-1===Function.toString.call(n).indexOf("[native code]")))return e;var n;if("function"!=typeof e)throw new TypeError("Super expression must either be null or a function");if(void 0!==t){if(t.has(e))return t.get(e);t.set(e,r)}function r(){return u(e,arguments,h(this).constructor)}return r.prototype=Object.create(e.prototype,{constructor:{value:r,enumerable:!1,writable:!0,configurable:!0}}),c(r,e)})(e)}function u(e,t,n){return(u=a()?Reflect.construct:function(e,t,n){var r=[null];r.push.apply(r,t);var s=new(Function.bind.apply(e,r));return n&&c(s,n.prototype),s}).apply(null,arguments)}function a(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Date.prototype.toString.call(Reflect.construct(Date,[],function(){})),!0}catch(e){return!1}}function c(e,t){return(c=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}function h(e){return(h=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}var d=function(e){i(n,l(Error));var t=o(n);function n(e,r){var i;return s(this,n),(i=t.call(this)).code=1,i.name="CONFIGURATION_ERROR",i.parameter=e,i.value=r,i.message=i.value?"Invalid value ".concat(JSON.stringify(i.value),' for parameter "').concat(i.parameter,'"'):"Missing parameter: ".concat(i.parameter),i}return n}(),f=function(e){i(n,l(Error));var t=o(n);function n(e){var r;return s(this,n),(r=t.call(this)).code=2,r.name="INVALID_STATE_ERROR",r.status=e,r.message="Invalid status: ".concat(e),r}return n}(),_=function(e){i(n,l(Error));var t=o(n);function n(e){var r;return s(this,n),(r=t.call(this)).code=3,r.name="NOT_SUPPORTED_ERROR",r.message=e,r}return n}(),p=function(e){i(n,l(Error));var t=o(n);function n(e){var r;return s(this,n),(r=t.call(this)).code=4,r.name="NOT_READY_ERROR",r.message=e,r}return n}();t.exports={ConfigurationError:d,InvalidStateError:f,NotSupportedError:_,NotReadyError:p}},{}],7:[function(e,t,n){"use strict";t.exports=function(){function t(e){return'"'+e.replace(/\\/g,"\\\\").replace(/"/g,'\\"').replace(/\x08/g,"\\b").replace(/\t/g,"\\t").replace(/\n/g,"\\n").replace(/\f/g,"\\f").replace(/\r/g,"\\r").replace(/[\x00-\x07\x0B\x0E-\x1F\x80-\uFFFF]/g,escape)+'"'}var n={parse:function(n,r){var s={CRLF:c,DIGIT:h,ALPHA:d,HEXDIG:f,WSP:_,OCTET:p,DQUOTE:m,SP:v,HTAB:g,alphanum:y,reserved:T,unreserved:C,mark:b,escaped:S,LWS:E,SWS:A,HCOLON:R,TEXT_UTF8_TRIM:w,TEXT_UTF8char:I,UTF8_NONASCII:O,UTF8_CONT:k,LHEX:function(){var e;null===(e=h())&&(/^[a-f]/.test(n.charAt(i))?(e=n.charAt(i),i++):(e=null,0===o&&a("[a-f]")));return e},token:N,token_nodot:D,separators:function(){var e;40===n.charCodeAt(i)?(e="(",i++):(e=null,0===o&&a('"("'));null===e&&(41===n.charCodeAt(i)?(e=")",i++):(e=null,0===o&&a('")"')),null===e&&(60===n.charCodeAt(i)?(e="<",i++):(e=null,0===o&&a('"<"')),null===e&&(62===n.charCodeAt(i)?(e=">",i++):(e=null,0===o&&a('">"')),null===e&&(64===n.charCodeAt(i)?(e="@",i++):(e=null,0===o&&a('"@"')),null===e&&(44===n.charCodeAt(i)?(e=",",i++):(e=null,0===o&&a('","')),null===e&&(59===n.charCodeAt(i)?(e=";",i++):(e=null,0===o&&a('";"')),null===e&&(58===n.charCodeAt(i)?(e=":",i++):(e=null,0===o&&a('":"')),null===e&&(92===n.charCodeAt(i)?(e="\\",i++):(e=null,0===o&&a('"\\\\"')),null===e&&null===(e=m())&&(47===n.charCodeAt(i)?(e="/",i++):(e=null,0===o&&a('"/"')),null===e&&(91===n.charCodeAt(i)?(e="[",i++):(e=null,0===o&&a('"["')),null===e&&(93===n.charCodeAt(i)?(e="]",i++):(e=null,0===o&&a('"]"')),null===e&&(63===n.charCodeAt(i)?(e="?",i++):(e=null,0===o&&a('"?"')),null===e&&(61===n.charCodeAt(i)?(e="=",i++):(e=null,0===o&&a('"="')),null===e&&(123===n.charCodeAt(i)?(e="{",i++):(e=null,0===o&&a('"{"')),null===e&&(125===n.charCodeAt(i)?(e="}",i++):(e=null,0===o&&a('"}"')),null===e&&null===(e=v())&&(e=g()))))))))))))))));return e},word:U,STAR:x,SLASH:P,EQUAL:M,LPAREN:q,RPAREN:L,RAQUOT:H,LAQUOT:F,COMMA:j,SEMI:G,COLON:W,LDQUOT:V,RDQUOT:B,comment:function e(){var t,n,r;var s;s=i;t=q();if(null!==t){for(n=[],null===(r=K())&&null===(r=X())&&(r=e());null!==r;)n.push(r),null===(r=K())&&null===(r=X())&&(r=e());null!==n&&null!==(r=L())?t=[t,n,r]:(t=null,i=s)}else t=null,i=s;return t},ctext:K,quoted_string:z,quoted_string_clean:Y,qdtext:$,quoted_pair:X,SIP_URI_noparams:J,SIP_URI:Q,uri_scheme:Z,uri_scheme_sips:ee,uri_scheme_sip:te,userinfo:ne,user:re,user_unreserved:se,password:ie,hostport:oe,host:le,hostname:ue,domainlabel:ae,toplabel:ce,IPv6reference:he,IPv6address:de,h16:fe,ls32:_e,IPv4address:pe,dec_octet:me,port:ve,uri_parameters:ge,uri_parameter:ye,transport_param:Te,user_param:Ce,method_param:be,ttl_param:Se,maddr_param:Ee,lr_param:Ae,other_param:Re,pname:we,pvalue:Ie,paramchar:Oe,param_unreserved:ke,headers:Ne,header:De,hname:Ue,hvalue:xe,hnv_unreserved:Pe,Request_Response:function(){var e;null===(e=ht())&&(e=Me());return e},Request_Line:Me,Request_URI:qe,absoluteURI:Le,hier_part:He,net_path:Fe,abs_path:je,opaque_part:Ge,uric:We,uric_no_slash:Ve,path_segments:Be,segment:Ke,param:ze,pchar:Ye,scheme:$e,authority:Xe,srvr:Je,reg_name:Qe,query:Ze,SIP_Version:et,INVITEm:tt,ACKm:nt,OPTIONSm:rt,BYEm:st,CANCELm:it,REGISTERm:ot,SUBSCRIBEm:lt,NOTIFYm:ut,REFERm:at,Method:ct,Status_Line:ht,Status_Code:dt,extension_code:ft,Reason_Phrase:_t,Allow_Events:function(){var e,t,n,r,s,o;if(s=i,null!==(e=Lt())){for(t=[],o=i,null!==(n=j())&&null!==(r=Lt())?n=[n,r]:(n=null,i=o);null!==n;)t.push(n),o=i,null!==(n=j())&&null!==(r=Lt())?n=[n,r]:(n=null,i=o);null!==t?e=[e,t]:(e=null,i=s)}else e=null,i=s;return e},Call_ID:function(){var e,t,r,s,l,u;s=i,l=i,null!==(e=U())?(u=i,64===n.charCodeAt(i)?(t="@",i++):(t=null,0===o&&a('"@"')),null!==t&&null!==(r=U())?t=[t,r]:(t=null,i=u),null!==(t=null!==t?t:"")?e=[e,t]:(e=null,i=l)):(e=null,i=l);null!==e&&(c=s,e=void(jn=n.substring(i,c)));var c;null===e&&(i=s);return e},Contact:function(){var e,t,n,r,s,o,l;if(s=i,null===(e=x()))if(o=i,null!==(e=pt())){for(t=[],l=i,null!==(n=j())&&null!==(r=pt())?n=[n,r]:(n=null,i=l);null!==n;)t.push(n),l=i,null!==(n=j())&&null!==(r=pt())?n=[n,r]:(n=null,i=l);null!==t?e=[e,t]:(e=null,i=o)}else e=null,i=o;null!==e&&(e=function(e){var t,n;for(n=jn.multi_header.length,t=0;tl&&(l=i,u=[]),u.push(e))}function c(){var e;return"\r\n"===n.substr(i,2)?(e="\r\n",i+=2):(e=null,0===o&&a('"\\r\\n"')),e}function h(){var e;return/^[0-9]/.test(n.charAt(i))?(e=n.charAt(i),i++):(e=null,0===o&&a("[0-9]")),e}function d(){var e;return/^[a-zA-Z]/.test(n.charAt(i))?(e=n.charAt(i),i++):(e=null,0===o&&a("[a-zA-Z]")),e}function f(){var e;return/^[0-9a-fA-F]/.test(n.charAt(i))?(e=n.charAt(i),i++):(e=null,0===o&&a("[0-9a-fA-F]")),e}function _(){var e;return null===(e=v())&&(e=g()),e}function p(){var e;return/^[\0-\xFF]/.test(n.charAt(i))?(e=n.charAt(i),i++):(e=null,0===o&&a("[\\0-\\xFF]")),e}function m(){var e;return/^["]/.test(n.charAt(i))?(e=n.charAt(i),i++):(e=null,0===o&&a('["]')),e}function v(){var e;return 32===n.charCodeAt(i)?(e=" ",i++):(e=null,0===o&&a('" "')),e}function g(){var e;return 9===n.charCodeAt(i)?(e="\t",i++):(e=null,0===o&&a('"\\t"')),e}function y(){var e;return/^[a-zA-Z0-9]/.test(n.charAt(i))?(e=n.charAt(i),i++):(e=null,0===o&&a("[a-zA-Z0-9]")),e}function T(){var e;return 59===n.charCodeAt(i)?(e=";",i++):(e=null,0===o&&a('";"')),null===e&&(47===n.charCodeAt(i)?(e="/",i++):(e=null,0===o&&a('"/"')),null===e&&(63===n.charCodeAt(i)?(e="?",i++):(e=null,0===o&&a('"?"')),null===e&&(58===n.charCodeAt(i)?(e=":",i++):(e=null,0===o&&a('":"')),null===e&&(64===n.charCodeAt(i)?(e="@",i++):(e=null,0===o&&a('"@"')),null===e&&(38===n.charCodeAt(i)?(e="&",i++):(e=null,0===o&&a('"&"')),null===e&&(61===n.charCodeAt(i)?(e="=",i++):(e=null,0===o&&a('"="')),null===e&&(43===n.charCodeAt(i)?(e="+",i++):(e=null,0===o&&a('"+"')),null===e&&(36===n.charCodeAt(i)?(e="$",i++):(e=null,0===o&&a('"$"')),null===e&&(44===n.charCodeAt(i)?(e=",",i++):(e=null,0===o&&a('","'))))))))))),e}function C(){var e;return null===(e=y())&&(e=b()),e}function b(){var e;return 45===n.charCodeAt(i)?(e="-",i++):(e=null,0===o&&a('"-"')),null===e&&(95===n.charCodeAt(i)?(e="_",i++):(e=null,0===o&&a('"_"')),null===e&&(46===n.charCodeAt(i)?(e=".",i++):(e=null,0===o&&a('"."')),null===e&&(33===n.charCodeAt(i)?(e="!",i++):(e=null,0===o&&a('"!"')),null===e&&(126===n.charCodeAt(i)?(e="~",i++):(e=null,0===o&&a('"~"')),null===e&&(42===n.charCodeAt(i)?(e="*",i++):(e=null,0===o&&a('"*"')),null===e&&(39===n.charCodeAt(i)?(e="'",i++):(e=null,0===o&&a('"\'"')),null===e&&(40===n.charCodeAt(i)?(e="(",i++):(e=null,0===o&&a('"("')),null===e&&(41===n.charCodeAt(i)?(e=")",i++):(e=null,0===o&&a('")"')))))))))),e}function S(){var e,t,r,s,l;return s=i,l=i,37===n.charCodeAt(i)?(e="%",i++):(e=null,0===o&&a('"%"')),null!==e&&null!==(t=f())&&null!==(r=f())?e=[e,t,r]:(e=null,i=l),null!==e&&(e=e.join("")),null===e&&(i=s),e}function E(){var e,t,n,r,s,o;for(r=i,s=i,o=i,e=[],t=_();null!==t;)e.push(t),t=_();if(null!==e&&null!==(t=c())?e=[e,t]:(e=null,i=o),null!==(e=null!==e?e:"")){if(null!==(n=_()))for(t=[];null!==n;)t.push(n),n=_();else t=null;null!==t?e=[e,t]:(e=null,i=s)}else e=null,i=s;return null!==e&&(e=" "),null===e&&(i=r),e}function A(){var e;return e=null!==(e=E())?e:""}function R(){var e,t,r,s,l;for(s=i,l=i,e=[],null===(t=v())&&(t=g());null!==t;)e.push(t),null===(t=v())&&(t=g());return null!==e?(58===n.charCodeAt(i)?(t=":",i++):(t=null,0===o&&a('":"')),null!==t&&null!==(r=A())?e=[e,t,r]:(e=null,i=l)):(e=null,i=l),null!==e&&(e=":"),null===e&&(i=s),e}function w(){var e,t,r,s,o,l,u,a;if(o=i,l=i,null!==(t=I()))for(e=[];null!==t;)e.push(t),t=I();else e=null;if(null!==e){for(t=[],u=i,r=[],s=E();null!==s;)r.push(s),s=E();for(null!==r&&null!==(s=I())?r=[r,s]:(r=null,i=u);null!==r;){for(t.push(r),u=i,r=[],s=E();null!==s;)r.push(s),s=E();null!==r&&null!==(s=I())?r=[r,s]:(r=null,i=u)}null!==t?e=[e,t]:(e=null,i=l)}else e=null,i=l;return null!==e&&(a=o,e=n.substring(i,a)),null===e&&(i=o),e}function I(){var e;return/^[!-~]/.test(n.charAt(i))?(e=n.charAt(i),i++):(e=null,0===o&&a("[!-~]")),null===e&&(e=O()),e}function O(){var e;return/^[\x80-\uFFFF]/.test(n.charAt(i))?(e=n.charAt(i),i++):(e=null,0===o&&a("[\\x80-\\uFFFF]")),e}function k(){var e;return/^[\x80-\xBF]/.test(n.charAt(i))?(e=n.charAt(i),i++):(e=null,0===o&&a("[\\x80-\\xBF]")),e}function N(){var e,t,r,s;if(r=i,null===(t=y())&&(45===n.charCodeAt(i)?(t="-",i++):(t=null,0===o&&a('"-"')),null===t&&(46===n.charCodeAt(i)?(t=".",i++):(t=null,0===o&&a('"."')),null===t&&(33===n.charCodeAt(i)?(t="!",i++):(t=null,0===o&&a('"!"')),null===t&&(37===n.charCodeAt(i)?(t="%",i++):(t=null,0===o&&a('"%"')),null===t&&(42===n.charCodeAt(i)?(t="*",i++):(t=null,0===o&&a('"*"')),null===t&&(95===n.charCodeAt(i)?(t="_",i++):(t=null,0===o&&a('"_"')),null===t&&(43===n.charCodeAt(i)?(t="+",i++):(t=null,0===o&&a('"+"')),null===t&&(96===n.charCodeAt(i)?(t="`",i++):(t=null,0===o&&a('"`"')),null===t&&(39===n.charCodeAt(i)?(t="'",i++):(t=null,0===o&&a('"\'"')),null===t&&(126===n.charCodeAt(i)?(t="~",i++):(t=null,0===o&&a('"~"')))))))))))),null!==t)for(e=[];null!==t;)e.push(t),null===(t=y())&&(45===n.charCodeAt(i)?(t="-",i++):(t=null,0===o&&a('"-"')),null===t&&(46===n.charCodeAt(i)?(t=".",i++):(t=null,0===o&&a('"."')),null===t&&(33===n.charCodeAt(i)?(t="!",i++):(t=null,0===o&&a('"!"')),null===t&&(37===n.charCodeAt(i)?(t="%",i++):(t=null,0===o&&a('"%"')),null===t&&(42===n.charCodeAt(i)?(t="*",i++):(t=null,0===o&&a('"*"')),null===t&&(95===n.charCodeAt(i)?(t="_",i++):(t=null,0===o&&a('"_"')),null===t&&(43===n.charCodeAt(i)?(t="+",i++):(t=null,0===o&&a('"+"')),null===t&&(96===n.charCodeAt(i)?(t="`",i++):(t=null,0===o&&a('"`"')),null===t&&(39===n.charCodeAt(i)?(t="'",i++):(t=null,0===o&&a('"\'"')),null===t&&(126===n.charCodeAt(i)?(t="~",i++):(t=null,0===o&&a('"~"'))))))))))));else e=null;return null!==e&&(s=r,e=n.substring(i,s)),null===e&&(i=r),e}function D(){var e,t,r,s;if(r=i,null===(t=y())&&(45===n.charCodeAt(i)?(t="-",i++):(t=null,0===o&&a('"-"')),null===t&&(33===n.charCodeAt(i)?(t="!",i++):(t=null,0===o&&a('"!"')),null===t&&(37===n.charCodeAt(i)?(t="%",i++):(t=null,0===o&&a('"%"')),null===t&&(42===n.charCodeAt(i)?(t="*",i++):(t=null,0===o&&a('"*"')),null===t&&(95===n.charCodeAt(i)?(t="_",i++):(t=null,0===o&&a('"_"')),null===t&&(43===n.charCodeAt(i)?(t="+",i++):(t=null,0===o&&a('"+"')),null===t&&(96===n.charCodeAt(i)?(t="`",i++):(t=null,0===o&&a('"`"')),null===t&&(39===n.charCodeAt(i)?(t="'",i++):(t=null,0===o&&a('"\'"')),null===t&&(126===n.charCodeAt(i)?(t="~",i++):(t=null,0===o&&a('"~"'))))))))))),null!==t)for(e=[];null!==t;)e.push(t),null===(t=y())&&(45===n.charCodeAt(i)?(t="-",i++):(t=null,0===o&&a('"-"')),null===t&&(33===n.charCodeAt(i)?(t="!",i++):(t=null,0===o&&a('"!"')),null===t&&(37===n.charCodeAt(i)?(t="%",i++):(t=null,0===o&&a('"%"')),null===t&&(42===n.charCodeAt(i)?(t="*",i++):(t=null,0===o&&a('"*"')),null===t&&(95===n.charCodeAt(i)?(t="_",i++):(t=null,0===o&&a('"_"')),null===t&&(43===n.charCodeAt(i)?(t="+",i++):(t=null,0===o&&a('"+"')),null===t&&(96===n.charCodeAt(i)?(t="`",i++):(t=null,0===o&&a('"`"')),null===t&&(39===n.charCodeAt(i)?(t="'",i++):(t=null,0===o&&a('"\'"')),null===t&&(126===n.charCodeAt(i)?(t="~",i++):(t=null,0===o&&a('"~"')))))))))));else e=null;return null!==e&&(s=r,e=n.substring(i,s)),null===e&&(i=r),e}function U(){var e,t,r,s;if(r=i,null===(t=y())&&(45===n.charCodeAt(i)?(t="-",i++):(t=null,0===o&&a('"-"')),null===t&&(46===n.charCodeAt(i)?(t=".",i++):(t=null,0===o&&a('"."')),null===t&&(33===n.charCodeAt(i)?(t="!",i++):(t=null,0===o&&a('"!"')),null===t&&(37===n.charCodeAt(i)?(t="%",i++):(t=null,0===o&&a('"%"')),null===t&&(42===n.charCodeAt(i)?(t="*",i++):(t=null,0===o&&a('"*"')),null===t&&(95===n.charCodeAt(i)?(t="_",i++):(t=null,0===o&&a('"_"')),null===t&&(43===n.charCodeAt(i)?(t="+",i++):(t=null,0===o&&a('"+"')),null===t&&(96===n.charCodeAt(i)?(t="`",i++):(t=null,0===o&&a('"`"')),null===t&&(39===n.charCodeAt(i)?(t="'",i++):(t=null,0===o&&a('"\'"')),null===t&&(126===n.charCodeAt(i)?(t="~",i++):(t=null,0===o&&a('"~"')),null===t&&(40===n.charCodeAt(i)?(t="(",i++):(t=null,0===o&&a('"("')),null===t&&(41===n.charCodeAt(i)?(t=")",i++):(t=null,0===o&&a('")"')),null===t&&(60===n.charCodeAt(i)?(t="<",i++):(t=null,0===o&&a('"<"')),null===t&&(62===n.charCodeAt(i)?(t=">",i++):(t=null,0===o&&a('">"')),null===t&&(58===n.charCodeAt(i)?(t=":",i++):(t=null,0===o&&a('":"')),null===t&&(92===n.charCodeAt(i)?(t="\\",i++):(t=null,0===o&&a('"\\\\"')),null===t&&null===(t=m())&&(47===n.charCodeAt(i)?(t="/",i++):(t=null,0===o&&a('"/"')),null===t&&(91===n.charCodeAt(i)?(t="[",i++):(t=null,0===o&&a('"["')),null===t&&(93===n.charCodeAt(i)?(t="]",i++):(t=null,0===o&&a('"]"')),null===t&&(63===n.charCodeAt(i)?(t="?",i++):(t=null,0===o&&a('"?"')),null===t&&(123===n.charCodeAt(i)?(t="{",i++):(t=null,0===o&&a('"{"')),null===t&&(125===n.charCodeAt(i)?(t="}",i++):(t=null,0===o&&a('"}"')))))))))))))))))))))))),null!==t)for(e=[];null!==t;)e.push(t),null===(t=y())&&(45===n.charCodeAt(i)?(t="-",i++):(t=null,0===o&&a('"-"')),null===t&&(46===n.charCodeAt(i)?(t=".",i++):(t=null,0===o&&a('"."')),null===t&&(33===n.charCodeAt(i)?(t="!",i++):(t=null,0===o&&a('"!"')),null===t&&(37===n.charCodeAt(i)?(t="%",i++):(t=null,0===o&&a('"%"')),null===t&&(42===n.charCodeAt(i)?(t="*",i++):(t=null,0===o&&a('"*"')),null===t&&(95===n.charCodeAt(i)?(t="_",i++):(t=null,0===o&&a('"_"')),null===t&&(43===n.charCodeAt(i)?(t="+",i++):(t=null,0===o&&a('"+"')),null===t&&(96===n.charCodeAt(i)?(t="`",i++):(t=null,0===o&&a('"`"')),null===t&&(39===n.charCodeAt(i)?(t="'",i++):(t=null,0===o&&a('"\'"')),null===t&&(126===n.charCodeAt(i)?(t="~",i++):(t=null,0===o&&a('"~"')),null===t&&(40===n.charCodeAt(i)?(t="(",i++):(t=null,0===o&&a('"("')),null===t&&(41===n.charCodeAt(i)?(t=")",i++):(t=null,0===o&&a('")"')),null===t&&(60===n.charCodeAt(i)?(t="<",i++):(t=null,0===o&&a('"<"')),null===t&&(62===n.charCodeAt(i)?(t=">",i++):(t=null,0===o&&a('">"')),null===t&&(58===n.charCodeAt(i)?(t=":",i++):(t=null,0===o&&a('":"')),null===t&&(92===n.charCodeAt(i)?(t="\\",i++):(t=null,0===o&&a('"\\\\"')),null===t&&null===(t=m())&&(47===n.charCodeAt(i)?(t="/",i++):(t=null,0===o&&a('"/"')),null===t&&(91===n.charCodeAt(i)?(t="[",i++):(t=null,0===o&&a('"["')),null===t&&(93===n.charCodeAt(i)?(t="]",i++):(t=null,0===o&&a('"]"')),null===t&&(63===n.charCodeAt(i)?(t="?",i++):(t=null,0===o&&a('"?"')),null===t&&(123===n.charCodeAt(i)?(t="{",i++):(t=null,0===o&&a('"{"')),null===t&&(125===n.charCodeAt(i)?(t="}",i++):(t=null,0===o&&a('"}"'))))))))))))))))))))))));else e=null;return null!==e&&(s=r,e=n.substring(i,s)),null===e&&(i=r),e}function x(){var e,t,r,s,l;return s=i,l=i,null!==(e=A())?(42===n.charCodeAt(i)?(t="*",i++):(t=null,0===o&&a('"*"')),null!==t&&null!==(r=A())?e=[e,t,r]:(e=null,i=l)):(e=null,i=l),null!==e&&(e="*"),null===e&&(i=s),e}function P(){var e,t,r,s,l;return s=i,l=i,null!==(e=A())?(47===n.charCodeAt(i)?(t="/",i++):(t=null,0===o&&a('"/"')),null!==t&&null!==(r=A())?e=[e,t,r]:(e=null,i=l)):(e=null,i=l),null!==e&&(e="/"),null===e&&(i=s),e}function M(){var e,t,r,s,l;return s=i,l=i,null!==(e=A())?(61===n.charCodeAt(i)?(t="=",i++):(t=null,0===o&&a('"="')),null!==t&&null!==(r=A())?e=[e,t,r]:(e=null,i=l)):(e=null,i=l),null!==e&&(e="="),null===e&&(i=s),e}function q(){var e,t,r,s,l;return s=i,l=i,null!==(e=A())?(40===n.charCodeAt(i)?(t="(",i++):(t=null,0===o&&a('"("')),null!==t&&null!==(r=A())?e=[e,t,r]:(e=null,i=l)):(e=null,i=l),null!==e&&(e="("),null===e&&(i=s),e}function L(){var e,t,r,s,l;return s=i,l=i,null!==(e=A())?(41===n.charCodeAt(i)?(t=")",i++):(t=null,0===o&&a('")"')),null!==t&&null!==(r=A())?e=[e,t,r]:(e=null,i=l)):(e=null,i=l),null!==e&&(e=")"),null===e&&(i=s),e}function H(){var e,t,r,s;return r=i,s=i,62===n.charCodeAt(i)?(e=">",i++):(e=null,0===o&&a('">"')),null!==e&&null!==(t=A())?e=[e,t]:(e=null,i=s),null!==e&&(e=">"),null===e&&(i=r),e}function F(){var e,t,r,s;return r=i,s=i,null!==(e=A())?(60===n.charCodeAt(i)?(t="<",i++):(t=null,0===o&&a('"<"')),null!==t?e=[e,t]:(e=null,i=s)):(e=null,i=s),null!==e&&(e="<"),null===e&&(i=r),e}function j(){var e,t,r,s,l;return s=i,l=i,null!==(e=A())?(44===n.charCodeAt(i)?(t=",",i++):(t=null,0===o&&a('","')),null!==t&&null!==(r=A())?e=[e,t,r]:(e=null,i=l)):(e=null,i=l),null!==e&&(e=","),null===e&&(i=s),e}function G(){var e,t,r,s,l;return s=i,l=i,null!==(e=A())?(59===n.charCodeAt(i)?(t=";",i++):(t=null,0===o&&a('";"')),null!==t&&null!==(r=A())?e=[e,t,r]:(e=null,i=l)):(e=null,i=l),null!==e&&(e=";"),null===e&&(i=s),e}function W(){var e,t,r,s,l;return s=i,l=i,null!==(e=A())?(58===n.charCodeAt(i)?(t=":",i++):(t=null,0===o&&a('":"')),null!==t&&null!==(r=A())?e=[e,t,r]:(e=null,i=l)):(e=null,i=l),null!==e&&(e=":"),null===e&&(i=s),e}function V(){var e,t,n,r;return n=i,r=i,null!==(e=A())&&null!==(t=m())?e=[e,t]:(e=null,i=r),null!==e&&(e='"'),null===e&&(i=n),e}function B(){var e,t,n,r;return n=i,r=i,null!==(e=m())&&null!==(t=A())?e=[e,t]:(e=null,i=r),null!==e&&(e='"'),null===e&&(i=n),e}function K(){var e;return/^[!-']/.test(n.charAt(i))?(e=n.charAt(i),i++):(e=null,0===o&&a("[!-']")),null===e&&(/^[*-[]/.test(n.charAt(i))?(e=n.charAt(i),i++):(e=null,0===o&&a("[*-[]")),null===e&&(/^[\]-~]/.test(n.charAt(i))?(e=n.charAt(i),i++):(e=null,0===o&&a("[\\]-~]")),null===e&&null===(e=O())&&(e=E()))),e}function z(){var e,t,r,s,o,l,u;if(o=i,l=i,null!==(e=A()))if(null!==(t=m())){for(r=[],null===(s=$())&&(s=X());null!==s;)r.push(s),null===(s=$())&&(s=X());null!==r&&null!==(s=m())?e=[e,t,r,s]:(e=null,i=l)}else e=null,i=l;else e=null,i=l;return null!==e&&(u=o,e=n.substring(i,u)),null===e&&(i=o),e}function Y(){var e,t,r,s,o,l,u,a;if(o=i,l=i,null!==(e=A()))if(null!==(t=m())){for(r=[],null===(s=$())&&(s=X());null!==s;)r.push(s),null===(s=$())&&(s=X());null!==r&&null!==(s=m())?e=[e,t,r,s]:(e=null,i=l)}else e=null,i=l;else e=null,i=l;return null!==e&&(u=o,e=(a=n.substring(i,u).trim()).substring(1,a.length-1).replace(/\\([\x00-\x09\x0b-\x0c\x0e-\x7f])/g,"$1")),null===e&&(i=o),e}function $(){var e;return null===(e=E())&&(33===n.charCodeAt(i)?(e="!",i++):(e=null,0===o&&a('"!"')),null===e&&(/^[#-[]/.test(n.charAt(i))?(e=n.charAt(i),i++):(e=null,0===o&&a("[#-[]")),null===e&&(/^[\]-~]/.test(n.charAt(i))?(e=n.charAt(i),i++):(e=null,0===o&&a("[\\]-~]")),null===e&&(e=O())))),e}function X(){var e,t,r;return r=i,92===n.charCodeAt(i)?(e="\\",i++):(e=null,0===o&&a('"\\\\"')),null!==e?(/^[\0-\t]/.test(n.charAt(i))?(t=n.charAt(i),i++):(t=null,0===o&&a("[\\0-\\t]")),null===t&&(/^[\x0B-\f]/.test(n.charAt(i))?(t=n.charAt(i),i++):(t=null,0===o&&a("[\\x0B-\\f]")),null===t&&(/^[\x0E-]/.test(n.charAt(i))?(t=n.charAt(i),i++):(t=null,0===o&&a("[\\x0E-]")))),null!==t?e=[e,t]:(e=null,i=r)):(e=null,i=r),e}function J(){var e,t,r,s,l,u;return l=i,u=i,null!==(e=Z())?(58===n.charCodeAt(i)?(t=":",i++):(t=null,0===o&&a('":"')),null!==t&&null!==(r=null!==(r=ne())?r:"")&&null!==(s=oe())?e=[e,t,r,s]:(e=null,i=u)):(e=null,i=u),null!==e&&(e=function(e){try{jn.uri=new Hn(jn.scheme,jn.user,jn.host,jn.port),delete jn.scheme,delete jn.user,delete jn.host,delete jn.host_type,delete jn.port}catch(e){jn=-1}}()),null===e&&(i=l),e}function Q(){var e,t,s,l,u,c,h,d;return h=i,d=i,null!==(e=Z())?(58===n.charCodeAt(i)?(t=":",i++):(t=null,0===o&&a('":"')),null!==t&&null!==(s=null!==(s=ne())?s:"")&&null!==(l=oe())&&null!==(u=ge())&&null!==(c=null!==(c=Ne())?c:"")?e=[e,t,s,l,u,c]:(e=null,i=d)):(e=null,i=d),null!==e&&(e=function(e){try{jn.uri=new Hn(jn.scheme,jn.user,jn.host,jn.port,jn.uri_params,jn.uri_headers),delete jn.scheme,delete jn.user,delete jn.host,delete jn.host_type,delete jn.port,delete jn.uri_params,"SIP_URI"===r&&(jn=jn.uri)}catch(e){jn=-1}}()),null===e&&(i=h),e}function Z(){var e;return null===(e=ee())&&(e=te()),e}function ee(){var e,t,r;return t=i,"sips"===n.substr(i,4).toLowerCase()?(e=n.substr(i,4),i+=4):(e=null,0===o&&a('"sips"')),null!==e&&(r=e,e=void(jn.scheme=r.toLowerCase())),null===e&&(i=t),e}function te(){var e,t,r;return t=i,"sip"===n.substr(i,3).toLowerCase()?(e=n.substr(i,3),i+=3):(e=null,0===o&&a('"sip"')),null!==e&&(r=e,e=void(jn.scheme=r.toLowerCase())),null===e&&(i=t),e}function ne(){var e,t,r,s,l,u,c;return s=i,l=i,null!==(e=re())?(u=i,58===n.charCodeAt(i)?(t=":",i++):(t=null,0===o&&a('":"')),null!==t&&null!==(r=ie())?t=[t,r]:(t=null,i=u),null!==(t=null!==t?t:"")?(64===n.charCodeAt(i)?(r="@",i++):(r=null,0===o&&a('"@"')),null!==r?e=[e,t,r]:(e=null,i=l)):(e=null,i=l)):(e=null,i=l),null!==e&&(c=s,e=void(jn.user=decodeURIComponent(n.substring(i-1,c)))),null===e&&(i=s),e}function re(){var e,t;if(null===(t=C())&&null===(t=S())&&(t=se()),null!==t)for(e=[];null!==t;)e.push(t),null===(t=C())&&null===(t=S())&&(t=se());else e=null;return e}function se(){var e;return 38===n.charCodeAt(i)?(e="&",i++):(e=null,0===o&&a('"&"')),null===e&&(61===n.charCodeAt(i)?(e="=",i++):(e=null,0===o&&a('"="')),null===e&&(43===n.charCodeAt(i)?(e="+",i++):(e=null,0===o&&a('"+"')),null===e&&(36===n.charCodeAt(i)?(e="$",i++):(e=null,0===o&&a('"$"')),null===e&&(44===n.charCodeAt(i)?(e=",",i++):(e=null,0===o&&a('","')),null===e&&(59===n.charCodeAt(i)?(e=";",i++):(e=null,0===o&&a('";"')),null===e&&(63===n.charCodeAt(i)?(e="?",i++):(e=null,0===o&&a('"?"')),null===e&&(47===n.charCodeAt(i)?(e="/",i++):(e=null,0===o&&a('"/"'))))))))),e}function ie(){var e,t,r,s;for(r=i,e=[],null===(t=C())&&null===(t=S())&&(38===n.charCodeAt(i)?(t="&",i++):(t=null,0===o&&a('"&"')),null===t&&(61===n.charCodeAt(i)?(t="=",i++):(t=null,0===o&&a('"="')),null===t&&(43===n.charCodeAt(i)?(t="+",i++):(t=null,0===o&&a('"+"')),null===t&&(36===n.charCodeAt(i)?(t="$",i++):(t=null,0===o&&a('"$"')),null===t&&(44===n.charCodeAt(i)?(t=",",i++):(t=null,0===o&&a('","')))))));null!==t;)e.push(t),null===(t=C())&&null===(t=S())&&(38===n.charCodeAt(i)?(t="&",i++):(t=null,0===o&&a('"&"')),null===t&&(61===n.charCodeAt(i)?(t="=",i++):(t=null,0===o&&a('"="')),null===t&&(43===n.charCodeAt(i)?(t="+",i++):(t=null,0===o&&a('"+"')),null===t&&(36===n.charCodeAt(i)?(t="$",i++):(t=null,0===o&&a('"$"')),null===t&&(44===n.charCodeAt(i)?(t=",",i++):(t=null,0===o&&a('","')))))));return null!==e&&(s=r,e=void(jn.password=n.substring(i,s))),null===e&&(i=r),e}function oe(){var e,t,r,s,l;return s=i,null!==(e=le())?(l=i,58===n.charCodeAt(i)?(t=":",i++):(t=null,0===o&&a('":"')),null!==t&&null!==(r=ve())?t=[t,r]:(t=null,i=l),null!==(t=null!==t?t:"")?e=[e,t]:(e=null,i=s)):(e=null,i=s),e}function le(){var e,t,r;return t=i,null===(e=ue())&&null===(e=pe())&&(e=he()),null!==e&&(r=t,jn.host=n.substring(i,r).toLowerCase(),e=jn.host),null===e&&(i=t),e}function ue(){var e,t,r,s,l,u,c;for(s=i,l=i,e=[],u=i,null!==(t=ae())?(46===n.charCodeAt(i)?(r=".",i++):(r=null,0===o&&a('"."')),null!==r?t=[t,r]:(t=null,i=u)):(t=null,i=u);null!==t;)e.push(t),u=i,null!==(t=ae())?(46===n.charCodeAt(i)?(r=".",i++):(r=null,0===o&&a('"."')),null!==r?t=[t,r]:(t=null,i=u)):(t=null,i=u);return null!==e&&null!==(t=ce())?(46===n.charCodeAt(i)?(r=".",i++):(r=null,0===o&&a('"."')),null!==(r=null!==r?r:"")?e=[e,t,r]:(e=null,i=l)):(e=null,i=l),null!==e&&(c=s,jn.host_type="domain",e=n.substring(i,c)),null===e&&(i=s),e}function ae(){var e,t,r,s;if(s=i,null!==(e=y())){for(t=[],null===(r=y())&&(45===n.charCodeAt(i)?(r="-",i++):(r=null,0===o&&a('"-"')),null===r&&(95===n.charCodeAt(i)?(r="_",i++):(r=null,0===o&&a('"_"'))));null!==r;)t.push(r),null===(r=y())&&(45===n.charCodeAt(i)?(r="-",i++):(r=null,0===o&&a('"-"')),null===r&&(95===n.charCodeAt(i)?(r="_",i++):(r=null,0===o&&a('"_"'))));null!==t?e=[e,t]:(e=null,i=s)}else e=null,i=s;return e}function ce(){var e,t,r,s;if(s=i,null!==(e=d())){for(t=[],null===(r=y())&&(45===n.charCodeAt(i)?(r="-",i++):(r=null,0===o&&a('"-"')),null===r&&(95===n.charCodeAt(i)?(r="_",i++):(r=null,0===o&&a('"_"'))));null!==r;)t.push(r),null===(r=y())&&(45===n.charCodeAt(i)?(r="-",i++):(r=null,0===o&&a('"-"')),null===r&&(95===n.charCodeAt(i)?(r="_",i++):(r=null,0===o&&a('"_"'))));null!==t?e=[e,t]:(e=null,i=s)}else e=null,i=s;return e}function he(){var e,t,r,s,l,u;return s=i,l=i,91===n.charCodeAt(i)?(e="[",i++):(e=null,0===o&&a('"["')),null!==e&&null!==(t=de())?(93===n.charCodeAt(i)?(r="]",i++):(r=null,0===o&&a('"]"')),null!==r?e=[e,t,r]:(e=null,i=l)):(e=null,i=l),null!==e&&(u=s,jn.host_type="IPv6",e=n.substring(i,u)),null===e&&(i=s),e}function de(){var e,t,r,s,l,u,c,h,d,f,_,p,m,v,g,y,T;return v=i,g=i,null!==(e=fe())?(58===n.charCodeAt(i)?(t=":",i++):(t=null,0===o&&a('":"')),null!==t&&null!==(r=fe())?(58===n.charCodeAt(i)?(s=":",i++):(s=null,0===o&&a('":"')),null!==s&&null!==(l=fe())?(58===n.charCodeAt(i)?(u=":",i++):(u=null,0===o&&a('":"')),null!==u&&null!==(c=fe())?(58===n.charCodeAt(i)?(h=":",i++):(h=null,0===o&&a('":"')),null!==h&&null!==(d=fe())?(58===n.charCodeAt(i)?(f=":",i++):(f=null,0===o&&a('":"')),null!==f&&null!==(_=fe())?(58===n.charCodeAt(i)?(p=":",i++):(p=null,0===o&&a('":"')),null!==p&&null!==(m=_e())?e=[e,t,r,s,l,u,c,h,d,f,_,p,m]:(e=null,i=g)):(e=null,i=g)):(e=null,i=g)):(e=null,i=g)):(e=null,i=g)):(e=null,i=g)):(e=null,i=g),null===e&&(g=i,"::"===n.substr(i,2)?(e="::",i+=2):(e=null,0===o&&a('"::"')),null!==e&&null!==(t=fe())?(58===n.charCodeAt(i)?(r=":",i++):(r=null,0===o&&a('":"')),null!==r&&null!==(s=fe())?(58===n.charCodeAt(i)?(l=":",i++):(l=null,0===o&&a('":"')),null!==l&&null!==(u=fe())?(58===n.charCodeAt(i)?(c=":",i++):(c=null,0===o&&a('":"')),null!==c&&null!==(h=fe())?(58===n.charCodeAt(i)?(d=":",i++):(d=null,0===o&&a('":"')),null!==d&&null!==(f=fe())?(58===n.charCodeAt(i)?(_=":",i++):(_=null,0===o&&a('":"')),null!==_&&null!==(p=_e())?e=[e,t,r,s,l,u,c,h,d,f,_,p]:(e=null,i=g)):(e=null,i=g)):(e=null,i=g)):(e=null,i=g)):(e=null,i=g)):(e=null,i=g),null===e&&(g=i,"::"===n.substr(i,2)?(e="::",i+=2):(e=null,0===o&&a('"::"')),null!==e&&null!==(t=fe())?(58===n.charCodeAt(i)?(r=":",i++):(r=null,0===o&&a('":"')),null!==r&&null!==(s=fe())?(58===n.charCodeAt(i)?(l=":",i++):(l=null,0===o&&a('":"')),null!==l&&null!==(u=fe())?(58===n.charCodeAt(i)?(c=":",i++):(c=null,0===o&&a('":"')),null!==c&&null!==(h=fe())?(58===n.charCodeAt(i)?(d=":",i++):(d=null,0===o&&a('":"')),null!==d&&null!==(f=_e())?e=[e,t,r,s,l,u,c,h,d,f]:(e=null,i=g)):(e=null,i=g)):(e=null,i=g)):(e=null,i=g)):(e=null,i=g),null===e&&(g=i,"::"===n.substr(i,2)?(e="::",i+=2):(e=null,0===o&&a('"::"')),null!==e&&null!==(t=fe())?(58===n.charCodeAt(i)?(r=":",i++):(r=null,0===o&&a('":"')),null!==r&&null!==(s=fe())?(58===n.charCodeAt(i)?(l=":",i++):(l=null,0===o&&a('":"')),null!==l&&null!==(u=fe())?(58===n.charCodeAt(i)?(c=":",i++):(c=null,0===o&&a('":"')),null!==c&&null!==(h=_e())?e=[e,t,r,s,l,u,c,h]:(e=null,i=g)):(e=null,i=g)):(e=null,i=g)):(e=null,i=g),null===e&&(g=i,"::"===n.substr(i,2)?(e="::",i+=2):(e=null,0===o&&a('"::"')),null!==e&&null!==(t=fe())?(58===n.charCodeAt(i)?(r=":",i++):(r=null,0===o&&a('":"')),null!==r&&null!==(s=fe())?(58===n.charCodeAt(i)?(l=":",i++):(l=null,0===o&&a('":"')),null!==l&&null!==(u=_e())?e=[e,t,r,s,l,u]:(e=null,i=g)):(e=null,i=g)):(e=null,i=g),null===e&&(g=i,"::"===n.substr(i,2)?(e="::",i+=2):(e=null,0===o&&a('"::"')),null!==e&&null!==(t=fe())?(58===n.charCodeAt(i)?(r=":",i++):(r=null,0===o&&a('":"')),null!==r&&null!==(s=_e())?e=[e,t,r,s]:(e=null,i=g)):(e=null,i=g),null===e&&(g=i,"::"===n.substr(i,2)?(e="::",i+=2):(e=null,0===o&&a('"::"')),null!==e&&null!==(t=_e())?e=[e,t]:(e=null,i=g),null===e&&(g=i,"::"===n.substr(i,2)?(e="::",i+=2):(e=null,0===o&&a('"::"')),null!==e&&null!==(t=fe())?e=[e,t]:(e=null,i=g),null===e&&(g=i,null!==(e=fe())?("::"===n.substr(i,2)?(t="::",i+=2):(t=null,0===o&&a('"::"')),null!==t&&null!==(r=fe())?(58===n.charCodeAt(i)?(s=":",i++):(s=null,0===o&&a('":"')),null!==s&&null!==(l=fe())?(58===n.charCodeAt(i)?(u=":",i++):(u=null,0===o&&a('":"')),null!==u&&null!==(c=fe())?(58===n.charCodeAt(i)?(h=":",i++):(h=null,0===o&&a('":"')),null!==h&&null!==(d=fe())?(58===n.charCodeAt(i)?(f=":",i++):(f=null,0===o&&a('":"')),null!==f&&null!==(_=_e())?e=[e,t,r,s,l,u,c,h,d,f,_]:(e=null,i=g)):(e=null,i=g)):(e=null,i=g)):(e=null,i=g)):(e=null,i=g)):(e=null,i=g),null===e&&(g=i,null!==(e=fe())?(y=i,58===n.charCodeAt(i)?(t=":",i++):(t=null,0===o&&a('":"')),null!==t&&null!==(r=fe())?t=[t,r]:(t=null,i=y),null!==(t=null!==t?t:"")?("::"===n.substr(i,2)?(r="::",i+=2):(r=null,0===o&&a('"::"')),null!==r&&null!==(s=fe())?(58===n.charCodeAt(i)?(l=":",i++):(l=null,0===o&&a('":"')),null!==l&&null!==(u=fe())?(58===n.charCodeAt(i)?(c=":",i++):(c=null,0===o&&a('":"')),null!==c&&null!==(h=fe())?(58===n.charCodeAt(i)?(d=":",i++):(d=null,0===o&&a('":"')),null!==d&&null!==(f=_e())?e=[e,t,r,s,l,u,c,h,d,f]:(e=null,i=g)):(e=null,i=g)):(e=null,i=g)):(e=null,i=g)):(e=null,i=g)):(e=null,i=g),null===e&&(g=i,null!==(e=fe())?(y=i,58===n.charCodeAt(i)?(t=":",i++):(t=null,0===o&&a('":"')),null!==t&&null!==(r=fe())?t=[t,r]:(t=null,i=y),null!==(t=null!==t?t:"")?(y=i,58===n.charCodeAt(i)?(r=":",i++):(r=null,0===o&&a('":"')),null!==r&&null!==(s=fe())?r=[r,s]:(r=null,i=y),null!==(r=null!==r?r:"")?("::"===n.substr(i,2)?(s="::",i+=2):(s=null,0===o&&a('"::"')),null!==s&&null!==(l=fe())?(58===n.charCodeAt(i)?(u=":",i++):(u=null,0===o&&a('":"')),null!==u&&null!==(c=fe())?(58===n.charCodeAt(i)?(h=":",i++):(h=null,0===o&&a('":"')),null!==h&&null!==(d=_e())?e=[e,t,r,s,l,u,c,h,d]:(e=null,i=g)):(e=null,i=g)):(e=null,i=g)):(e=null,i=g)):(e=null,i=g)):(e=null,i=g),null===e&&(g=i,null!==(e=fe())?(y=i,58===n.charCodeAt(i)?(t=":",i++):(t=null,0===o&&a('":"')),null!==t&&null!==(r=fe())?t=[t,r]:(t=null,i=y),null!==(t=null!==t?t:"")?(y=i,58===n.charCodeAt(i)?(r=":",i++):(r=null,0===o&&a('":"')),null!==r&&null!==(s=fe())?r=[r,s]:(r=null,i=y),null!==(r=null!==r?r:"")?(y=i,58===n.charCodeAt(i)?(s=":",i++):(s=null,0===o&&a('":"')),null!==s&&null!==(l=fe())?s=[s,l]:(s=null,i=y),null!==(s=null!==s?s:"")?("::"===n.substr(i,2)?(l="::",i+=2):(l=null,0===o&&a('"::"')),null!==l&&null!==(u=fe())?(58===n.charCodeAt(i)?(c=":",i++):(c=null,0===o&&a('":"')),null!==c&&null!==(h=_e())?e=[e,t,r,s,l,u,c,h]:(e=null,i=g)):(e=null,i=g)):(e=null,i=g)):(e=null,i=g)):(e=null,i=g)):(e=null,i=g),null===e&&(g=i,null!==(e=fe())?(y=i,58===n.charCodeAt(i)?(t=":",i++):(t=null,0===o&&a('":"')),null!==t&&null!==(r=fe())?t=[t,r]:(t=null,i=y),null!==(t=null!==t?t:"")?(y=i,58===n.charCodeAt(i)?(r=":",i++):(r=null,0===o&&a('":"')),null!==r&&null!==(s=fe())?r=[r,s]:(r=null,i=y),null!==(r=null!==r?r:"")?(y=i,58===n.charCodeAt(i)?(s=":",i++):(s=null,0===o&&a('":"')),null!==s&&null!==(l=fe())?s=[s,l]:(s=null,i=y),null!==(s=null!==s?s:"")?(y=i,58===n.charCodeAt(i)?(l=":",i++):(l=null,0===o&&a('":"')),null!==l&&null!==(u=fe())?l=[l,u]:(l=null,i=y),null!==(l=null!==l?l:"")?("::"===n.substr(i,2)?(u="::",i+=2):(u=null,0===o&&a('"::"')),null!==u&&null!==(c=_e())?e=[e,t,r,s,l,u,c]:(e=null,i=g)):(e=null,i=g)):(e=null,i=g)):(e=null,i=g)):(e=null,i=g)):(e=null,i=g),null===e&&(g=i,null!==(e=fe())?(y=i,58===n.charCodeAt(i)?(t=":",i++):(t=null,0===o&&a('":"')),null!==t&&null!==(r=fe())?t=[t,r]:(t=null,i=y),null!==(t=null!==t?t:"")?(y=i,58===n.charCodeAt(i)?(r=":",i++):(r=null,0===o&&a('":"')),null!==r&&null!==(s=fe())?r=[r,s]:(r=null,i=y),null!==(r=null!==r?r:"")?(y=i,58===n.charCodeAt(i)?(s=":",i++):(s=null,0===o&&a('":"')),null!==s&&null!==(l=fe())?s=[s,l]:(s=null,i=y),null!==(s=null!==s?s:"")?(y=i,58===n.charCodeAt(i)?(l=":",i++):(l=null,0===o&&a('":"')),null!==l&&null!==(u=fe())?l=[l,u]:(l=null,i=y),null!==(l=null!==l?l:"")?(y=i,58===n.charCodeAt(i)?(u=":",i++):(u=null,0===o&&a('":"')),null!==u&&null!==(c=fe())?u=[u,c]:(u=null,i=y),null!==(u=null!==u?u:"")?("::"===n.substr(i,2)?(c="::",i+=2):(c=null,0===o&&a('"::"')),null!==c&&null!==(h=fe())?e=[e,t,r,s,l,u,c,h]:(e=null,i=g)):(e=null,i=g)):(e=null,i=g)):(e=null,i=g)):(e=null,i=g)):(e=null,i=g)):(e=null,i=g),null===e&&(g=i,null!==(e=fe())?(y=i,58===n.charCodeAt(i)?(t=":",i++):(t=null,0===o&&a('":"')),null!==t&&null!==(r=fe())?t=[t,r]:(t=null,i=y),null!==(t=null!==t?t:"")?(y=i,58===n.charCodeAt(i)?(r=":",i++):(r=null,0===o&&a('":"')),null!==r&&null!==(s=fe())?r=[r,s]:(r=null,i=y),null!==(r=null!==r?r:"")?(y=i,58===n.charCodeAt(i)?(s=":",i++):(s=null,0===o&&a('":"')),null!==s&&null!==(l=fe())?s=[s,l]:(s=null,i=y),null!==(s=null!==s?s:"")?(y=i,58===n.charCodeAt(i)?(l=":",i++):(l=null,0===o&&a('":"')),null!==l&&null!==(u=fe())?l=[l,u]:(l=null,i=y),null!==(l=null!==l?l:"")?(y=i,58===n.charCodeAt(i)?(u=":",i++):(u=null,0===o&&a('":"')),null!==u&&null!==(c=fe())?u=[u,c]:(u=null,i=y),null!==(u=null!==u?u:"")?(y=i,58===n.charCodeAt(i)?(c=":",i++):(c=null,0===o&&a('":"')),null!==c&&null!==(h=fe())?c=[c,h]:(c=null,i=y),null!==(c=null!==c?c:"")?("::"===n.substr(i,2)?(h="::",i+=2):(h=null,0===o&&a('"::"')),null!==h?e=[e,t,r,s,l,u,c,h]:(e=null,i=g)):(e=null,i=g)):(e=null,i=g)):(e=null,i=g)):(e=null,i=g)):(e=null,i=g)):(e=null,i=g)):(e=null,i=g))))))))))))))),null!==e&&(T=v,jn.host_type="IPv6",e=n.substring(i,T)),null===e&&(i=v),e}function fe(){var e,t,n,r,s;return s=i,null!==(e=f())&&null!==(t=null!==(t=f())?t:"")&&null!==(n=null!==(n=f())?n:"")&&null!==(r=null!==(r=f())?r:"")?e=[e,t,n,r]:(e=null,i=s),e}function _e(){var e,t,r,s;return s=i,null!==(e=fe())?(58===n.charCodeAt(i)?(t=":",i++):(t=null,0===o&&a('":"')),null!==t&&null!==(r=fe())?e=[e,t,r]:(e=null,i=s)):(e=null,i=s),null===e&&(e=pe()),e}function pe(){var e,t,r,s,l,u,c,h,d,f;return h=i,d=i,null!==(e=me())?(46===n.charCodeAt(i)?(t=".",i++):(t=null,0===o&&a('"."')),null!==t&&null!==(r=me())?(46===n.charCodeAt(i)?(s=".",i++):(s=null,0===o&&a('"."')),null!==s&&null!==(l=me())?(46===n.charCodeAt(i)?(u=".",i++):(u=null,0===o&&a('"."')),null!==u&&null!==(c=me())?e=[e,t,r,s,l,u,c]:(e=null,i=d)):(e=null,i=d)):(e=null,i=d)):(e=null,i=d),null!==e&&(f=h,jn.host_type="IPv4",e=n.substring(i,f)),null===e&&(i=h),e}function me(){var e,t,r,s;return s=i,"25"===n.substr(i,2)?(e="25",i+=2):(e=null,0===o&&a('"25"')),null!==e?(/^[0-5]/.test(n.charAt(i))?(t=n.charAt(i),i++):(t=null,0===o&&a("[0-5]")),null!==t?e=[e,t]:(e=null,i=s)):(e=null,i=s),null===e&&(s=i,50===n.charCodeAt(i)?(e="2",i++):(e=null,0===o&&a('"2"')),null!==e?(/^[0-4]/.test(n.charAt(i))?(t=n.charAt(i),i++):(t=null,0===o&&a("[0-4]")),null!==t&&null!==(r=h())?e=[e,t,r]:(e=null,i=s)):(e=null,i=s),null===e&&(s=i,49===n.charCodeAt(i)?(e="1",i++):(e=null,0===o&&a('"1"')),null!==e&&null!==(t=h())&&null!==(r=h())?e=[e,t,r]:(e=null,i=s),null===e&&(s=i,/^[1-9]/.test(n.charAt(i))?(e=n.charAt(i),i++):(e=null,0===o&&a("[1-9]")),null!==e&&null!==(t=h())?e=[e,t]:(e=null,i=s),null===e&&(e=h())))),e}function ve(){var e,t,n,r,s,o,l,u;return o=i,l=i,null!==(e=null!==(e=h())?e:"")&&null!==(t=null!==(t=h())?t:"")&&null!==(n=null!==(n=h())?n:"")&&null!==(r=null!==(r=h())?r:"")&&null!==(s=null!==(s=h())?s:"")?e=[e,t,n,r,s]:(e=null,i=l),null!==e&&(u=e,u=parseInt(u.join("")),jn.port=u,e=u),null===e&&(i=o),e}function ge(){var e,t,r,s;for(e=[],s=i,59===n.charCodeAt(i)?(t=";",i++):(t=null,0===o&&a('";"')),null!==t&&null!==(r=ye())?t=[t,r]:(t=null,i=s);null!==t;)e.push(t),s=i,59===n.charCodeAt(i)?(t=";",i++):(t=null,0===o&&a('";"')),null!==t&&null!==(r=ye())?t=[t,r]:(t=null,i=s);return e}function ye(){var e;return null===(e=Te())&&null===(e=Ce())&&null===(e=be())&&null===(e=Se())&&null===(e=Ee())&&null===(e=Ae())&&(e=Re()),e}function Te(){var e,t,r,s,l;return r=i,s=i,"transport="===n.substr(i,10).toLowerCase()?(e=n.substr(i,10),i+=10):(e=null,0===o&&a('"transport="')),null!==e?("udp"===n.substr(i,3).toLowerCase()?(t=n.substr(i,3),i+=3):(t=null,0===o&&a('"udp"')),null===t&&("tcp"===n.substr(i,3).toLowerCase()?(t=n.substr(i,3),i+=3):(t=null,0===o&&a('"tcp"')),null===t&&("sctp"===n.substr(i,4).toLowerCase()?(t=n.substr(i,4),i+=4):(t=null,0===o&&a('"sctp"')),null===t&&("tls"===n.substr(i,3).toLowerCase()?(t=n.substr(i,3),i+=3):(t=null,0===o&&a('"tls"')),null===t&&(t=N())))),null!==t?e=[e,t]:(e=null,i=s)):(e=null,i=s),null!==e&&(l=e[1],jn.uri_params||(jn.uri_params={}),e=void(jn.uri_params.transport=l.toLowerCase())),null===e&&(i=r),e}function Ce(){var e,t,r,s,l;return r=i,s=i,"user="===n.substr(i,5).toLowerCase()?(e=n.substr(i,5),i+=5):(e=null,0===o&&a('"user="')),null!==e?("phone"===n.substr(i,5).toLowerCase()?(t=n.substr(i,5),i+=5):(t=null,0===o&&a('"phone"')),null===t&&("ip"===n.substr(i,2).toLowerCase()?(t=n.substr(i,2),i+=2):(t=null,0===o&&a('"ip"')),null===t&&(t=N())),null!==t?e=[e,t]:(e=null,i=s)):(e=null,i=s),null!==e&&(l=e[1],jn.uri_params||(jn.uri_params={}),e=void(jn.uri_params.user=l.toLowerCase())),null===e&&(i=r),e}function be(){var e,t,r,s,l;return r=i,s=i,"method="===n.substr(i,7).toLowerCase()?(e=n.substr(i,7),i+=7):(e=null,0===o&&a('"method="')),null!==e&&null!==(t=ct())?e=[e,t]:(e=null,i=s),null!==e&&(l=e[1],jn.uri_params||(jn.uri_params={}),e=void(jn.uri_params.method=l)),null===e&&(i=r),e}function Se(){var e,t,r,s,l;return r=i,s=i,"ttl="===n.substr(i,4).toLowerCase()?(e=n.substr(i,4),i+=4):(e=null,0===o&&a('"ttl="')),null!==e&&null!==(t=An())?e=[e,t]:(e=null,i=s),null!==e&&(l=e[1],jn.params||(jn.params={}),e=void(jn.params.ttl=l)),null===e&&(i=r),e}function Ee(){var e,t,r,s,l;return r=i,s=i,"maddr="===n.substr(i,6).toLowerCase()?(e=n.substr(i,6),i+=6):(e=null,0===o&&a('"maddr="')),null!==e&&null!==(t=le())?e=[e,t]:(e=null,i=s),null!==e&&(l=e[1],jn.uri_params||(jn.uri_params={}),e=void(jn.uri_params.maddr=l)),null===e&&(i=r),e}function Ae(){var e,t,r,s,l,u;return s=i,l=i,"lr"===n.substr(i,2).toLowerCase()?(e=n.substr(i,2),i+=2):(e=null,0===o&&a('"lr"')),null!==e?(u=i,61===n.charCodeAt(i)?(t="=",i++):(t=null,0===o&&a('"="')),null!==t&&null!==(r=N())?t=[t,r]:(t=null,i=u),null!==(t=null!==t?t:"")?e=[e,t]:(e=null,i=l)):(e=null,i=l),null!==e&&(jn.uri_params||(jn.uri_params={}),e=void(jn.uri_params.lr=void 0)),null===e&&(i=s),e}function Re(){var e,t,r,s,l,u,c,h;return s=i,l=i,null!==(e=we())?(u=i,61===n.charCodeAt(i)?(t="=",i++):(t=null,0===o&&a('"="')),null!==t&&null!==(r=Ie())?t=[t,r]:(t=null,i=u),null!==(t=null!==t?t:"")?e=[e,t]:(e=null,i=l)):(e=null,i=l),null!==e&&(c=e[0],h=e[1],jn.uri_params||(jn.uri_params={}),h=void 0===h?void 0:h[1],e=void(jn.uri_params[c.toLowerCase()]=h)),null===e&&(i=s),e}function we(){var e,t,n;if(n=i,null!==(t=Oe()))for(e=[];null!==t;)e.push(t),t=Oe();else e=null;return null!==e&&(e=e.join("")),null===e&&(i=n),e}function Ie(){var e,t,n;if(n=i,null!==(t=Oe()))for(e=[];null!==t;)e.push(t),t=Oe();else e=null;return null!==e&&(e=e.join("")),null===e&&(i=n),e}function Oe(){var e;return null===(e=ke())&&null===(e=C())&&(e=S()),e}function ke(){var e;return 91===n.charCodeAt(i)?(e="[",i++):(e=null,0===o&&a('"["')),null===e&&(93===n.charCodeAt(i)?(e="]",i++):(e=null,0===o&&a('"]"')),null===e&&(47===n.charCodeAt(i)?(e="/",i++):(e=null,0===o&&a('"/"')),null===e&&(58===n.charCodeAt(i)?(e=":",i++):(e=null,0===o&&a('":"')),null===e&&(38===n.charCodeAt(i)?(e="&",i++):(e=null,0===o&&a('"&"')),null===e&&(43===n.charCodeAt(i)?(e="+",i++):(e=null,0===o&&a('"+"')),null===e&&(36===n.charCodeAt(i)?(e="$",i++):(e=null,0===o&&a('"$"')))))))),e}function Ne(){var e,t,r,s,l,u,c;if(u=i,63===n.charCodeAt(i)?(e="?",i++):(e=null,0===o&&a('"?"')),null!==e)if(null!==(t=De())){for(r=[],c=i,38===n.charCodeAt(i)?(s="&",i++):(s=null,0===o&&a('"&"')),null!==s&&null!==(l=De())?s=[s,l]:(s=null,i=c);null!==s;)r.push(s),c=i,38===n.charCodeAt(i)?(s="&",i++):(s=null,0===o&&a('"&"')),null!==s&&null!==(l=De())?s=[s,l]:(s=null,i=c);null!==r?e=[e,t,r]:(e=null,i=u)}else e=null,i=u;else e=null,i=u;return e}function De(){var e,t,r,s,l,u,c;return s=i,l=i,null!==(e=Ue())?(61===n.charCodeAt(i)?(t="=",i++):(t=null,0===o&&a('"="')),null!==t&&null!==(r=xe())?e=[e,t,r]:(e=null,i=l)):(e=null,i=l),null!==e&&(u=e[0],c=e[2],u=u.join("").toLowerCase(),c=c.join(""),jn.uri_headers||(jn.uri_headers={}),e=void(jn.uri_headers[u]?jn.uri_headers[u].push(c):jn.uri_headers[u]=[c])),null===e&&(i=s),e}function Ue(){var e,t;if(null===(t=Pe())&&null===(t=C())&&(t=S()),null!==t)for(e=[];null!==t;)e.push(t),null===(t=Pe())&&null===(t=C())&&(t=S());else e=null;return e}function xe(){var e,t;for(e=[],null===(t=Pe())&&null===(t=C())&&(t=S());null!==t;)e.push(t),null===(t=Pe())&&null===(t=C())&&(t=S());return e}function Pe(){var e;return 91===n.charCodeAt(i)?(e="[",i++):(e=null,0===o&&a('"["')),null===e&&(93===n.charCodeAt(i)?(e="]",i++):(e=null,0===o&&a('"]"')),null===e&&(47===n.charCodeAt(i)?(e="/",i++):(e=null,0===o&&a('"/"')),null===e&&(63===n.charCodeAt(i)?(e="?",i++):(e=null,0===o&&a('"?"')),null===e&&(58===n.charCodeAt(i)?(e=":",i++):(e=null,0===o&&a('":"')),null===e&&(43===n.charCodeAt(i)?(e="+",i++):(e=null,0===o&&a('"+"')),null===e&&(36===n.charCodeAt(i)?(e="$",i++):(e=null,0===o&&a('"$"')))))))),e}function Me(){var e,t,n,r,s,o;return o=i,null!==(e=ct())&&null!==(t=v())&&null!==(n=qe())&&null!==(r=v())&&null!==(s=et())?e=[e,t,n,r,s]:(e=null,i=o),e}function qe(){var e;return null===(e=Q())&&(e=Le()),e}function Le(){var e,t,r,s;return s=i,null!==(e=$e())?(58===n.charCodeAt(i)?(t=":",i++):(t=null,0===o&&a('":"')),null!==t?(null===(r=He())&&(r=Ge()),null!==r?e=[e,t,r]:(e=null,i=s)):(e=null,i=s)):(e=null,i=s),e}function He(){var e,t,r,s,l;return s=i,null===(e=Fe())&&(e=je()),null!==e?(l=i,63===n.charCodeAt(i)?(t="?",i++):(t=null,0===o&&a('"?"')),null!==t&&null!==(r=Ze())?t=[t,r]:(t=null,i=l),null!==(t=null!==t?t:"")?e=[e,t]:(e=null,i=s)):(e=null,i=s),e}function Fe(){var e,t,r,s;return s=i,"//"===n.substr(i,2)?(e="//",i+=2):(e=null,0===o&&a('"//"')),null!==e&&null!==(t=Xe())&&null!==(r=null!==(r=je())?r:"")?e=[e,t,r]:(e=null,i=s),e}function je(){var e,t,r;return r=i,47===n.charCodeAt(i)?(e="/",i++):(e=null,0===o&&a('"/"')),null!==e&&null!==(t=Be())?e=[e,t]:(e=null,i=r),e}function Ge(){var e,t,n,r;if(r=i,null!==(e=Ve())){for(t=[],n=We();null!==n;)t.push(n),n=We();null!==t?e=[e,t]:(e=null,i=r)}else e=null,i=r;return e}function We(){var e;return null===(e=T())&&null===(e=C())&&(e=S()),e}function Ve(){var e;return null===(e=C())&&null===(e=S())&&(59===n.charCodeAt(i)?(e=";",i++):(e=null,0===o&&a('";"')),null===e&&(63===n.charCodeAt(i)?(e="?",i++):(e=null,0===o&&a('"?"')),null===e&&(58===n.charCodeAt(i)?(e=":",i++):(e=null,0===o&&a('":"')),null===e&&(64===n.charCodeAt(i)?(e="@",i++):(e=null,0===o&&a('"@"')),null===e&&(38===n.charCodeAt(i)?(e="&",i++):(e=null,0===o&&a('"&"')),null===e&&(61===n.charCodeAt(i)?(e="=",i++):(e=null,0===o&&a('"="')),null===e&&(43===n.charCodeAt(i)?(e="+",i++):(e=null,0===o&&a('"+"')),null===e&&(36===n.charCodeAt(i)?(e="$",i++):(e=null,0===o&&a('"$"')),null===e&&(44===n.charCodeAt(i)?(e=",",i++):(e=null,0===o&&a('","'))))))))))),e}function Be(){var e,t,r,s,l,u;if(l=i,null!==(e=Ke())){for(t=[],u=i,47===n.charCodeAt(i)?(r="/",i++):(r=null,0===o&&a('"/"')),null!==r&&null!==(s=Ke())?r=[r,s]:(r=null,i=u);null!==r;)t.push(r),u=i,47===n.charCodeAt(i)?(r="/",i++):(r=null,0===o&&a('"/"')),null!==r&&null!==(s=Ke())?r=[r,s]:(r=null,i=u);null!==t?e=[e,t]:(e=null,i=l)}else e=null,i=l;return e}function Ke(){var e,t,r,s,l,u;for(l=i,e=[],t=Ye();null!==t;)e.push(t),t=Ye();if(null!==e){for(t=[],u=i,59===n.charCodeAt(i)?(r=";",i++):(r=null,0===o&&a('";"')),null!==r&&null!==(s=ze())?r=[r,s]:(r=null,i=u);null!==r;)t.push(r),u=i,59===n.charCodeAt(i)?(r=";",i++):(r=null,0===o&&a('";"')),null!==r&&null!==(s=ze())?r=[r,s]:(r=null,i=u);null!==t?e=[e,t]:(e=null,i=l)}else e=null,i=l;return e}function ze(){var e,t;for(e=[],t=Ye();null!==t;)e.push(t),t=Ye();return e}function Ye(){var e;return null===(e=C())&&null===(e=S())&&(58===n.charCodeAt(i)?(e=":",i++):(e=null,0===o&&a('":"')),null===e&&(64===n.charCodeAt(i)?(e="@",i++):(e=null,0===o&&a('"@"')),null===e&&(38===n.charCodeAt(i)?(e="&",i++):(e=null,0===o&&a('"&"')),null===e&&(61===n.charCodeAt(i)?(e="=",i++):(e=null,0===o&&a('"="')),null===e&&(43===n.charCodeAt(i)?(e="+",i++):(e=null,0===o&&a('"+"')),null===e&&(36===n.charCodeAt(i)?(e="$",i++):(e=null,0===o&&a('"$"')),null===e&&(44===n.charCodeAt(i)?(e=",",i++):(e=null,0===o&&a('","'))))))))),e}function $e(){var e,t,r,s,l,u;if(s=i,l=i,null!==(e=d())){for(t=[],null===(r=d())&&null===(r=h())&&(43===n.charCodeAt(i)?(r="+",i++):(r=null,0===o&&a('"+"')),null===r&&(45===n.charCodeAt(i)?(r="-",i++):(r=null,0===o&&a('"-"')),null===r&&(46===n.charCodeAt(i)?(r=".",i++):(r=null,0===o&&a('"."')))));null!==r;)t.push(r),null===(r=d())&&null===(r=h())&&(43===n.charCodeAt(i)?(r="+",i++):(r=null,0===o&&a('"+"')),null===r&&(45===n.charCodeAt(i)?(r="-",i++):(r=null,0===o&&a('"-"')),null===r&&(46===n.charCodeAt(i)?(r=".",i++):(r=null,0===o&&a('"."')))));null!==t?e=[e,t]:(e=null,i=l)}else e=null,i=l;return null!==e&&(u=s,e=void(jn.scheme=n.substring(i,u))),null===e&&(i=s),e}function Xe(){var e;return null===(e=Je())&&(e=Qe()),e}function Je(){var e,t,r,s;return r=i,s=i,null!==(e=ne())?(64===n.charCodeAt(i)?(t="@",i++):(t=null,0===o&&a('"@"')),null!==t?e=[e,t]:(e=null,i=s)):(e=null,i=s),null!==(e=null!==e?e:"")&&null!==(t=oe())?e=[e,t]:(e=null,i=r),e=null!==e?e:""}function Qe(){var e,t;if(null===(t=C())&&null===(t=S())&&(36===n.charCodeAt(i)?(t="$",i++):(t=null,0===o&&a('"$"')),null===t&&(44===n.charCodeAt(i)?(t=",",i++):(t=null,0===o&&a('","')),null===t&&(59===n.charCodeAt(i)?(t=";",i++):(t=null,0===o&&a('";"')),null===t&&(58===n.charCodeAt(i)?(t=":",i++):(t=null,0===o&&a('":"')),null===t&&(64===n.charCodeAt(i)?(t="@",i++):(t=null,0===o&&a('"@"')),null===t&&(38===n.charCodeAt(i)?(t="&",i++):(t=null,0===o&&a('"&"')),null===t&&(61===n.charCodeAt(i)?(t="=",i++):(t=null,0===o&&a('"="')),null===t&&(43===n.charCodeAt(i)?(t="+",i++):(t=null,0===o&&a('"+"')))))))))),null!==t)for(e=[];null!==t;)e.push(t),null===(t=C())&&null===(t=S())&&(36===n.charCodeAt(i)?(t="$",i++):(t=null,0===o&&a('"$"')),null===t&&(44===n.charCodeAt(i)?(t=",",i++):(t=null,0===o&&a('","')),null===t&&(59===n.charCodeAt(i)?(t=";",i++):(t=null,0===o&&a('";"')),null===t&&(58===n.charCodeAt(i)?(t=":",i++):(t=null,0===o&&a('":"')),null===t&&(64===n.charCodeAt(i)?(t="@",i++):(t=null,0===o&&a('"@"')),null===t&&(38===n.charCodeAt(i)?(t="&",i++):(t=null,0===o&&a('"&"')),null===t&&(61===n.charCodeAt(i)?(t="=",i++):(t=null,0===o&&a('"="')),null===t&&(43===n.charCodeAt(i)?(t="+",i++):(t=null,0===o&&a('"+"'))))))))));else e=null;return e}function Ze(){var e,t;for(e=[],t=We();null!==t;)e.push(t),t=We();return e}function et(){var e,t,r,s,l,u,c,d,f;if(c=i,d=i,"sip"===n.substr(i,3).toLowerCase()?(e=n.substr(i,3),i+=3):(e=null,0===o&&a('"SIP"')),null!==e)if(47===n.charCodeAt(i)?(t="/",i++):(t=null,0===o&&a('"/"')),null!==t){if(null!==(s=h()))for(r=[];null!==s;)r.push(s),s=h();else r=null;if(null!==r)if(46===n.charCodeAt(i)?(s=".",i++):(s=null,0===o&&a('"."')),null!==s){if(null!==(u=h()))for(l=[];null!==u;)l.push(u),u=h();else l=null;null!==l?e=[e,t,r,s,l]:(e=null,i=d)}else e=null,i=d;else e=null,i=d}else e=null,i=d;else e=null,i=d;return null!==e&&(f=c,e=void(jn.sip_version=n.substring(i,f))),null===e&&(i=c),e}function tt(){var e;return"INVITE"===n.substr(i,6)?(e="INVITE",i+=6):(e=null,0===o&&a('"INVITE"')),e}function nt(){var e;return"ACK"===n.substr(i,3)?(e="ACK",i+=3):(e=null,0===o&&a('"ACK"')),e}function rt(){var e;return"OPTIONS"===n.substr(i,7)?(e="OPTIONS",i+=7):(e=null,0===o&&a('"OPTIONS"')),e}function st(){var e;return"BYE"===n.substr(i,3)?(e="BYE",i+=3):(e=null,0===o&&a('"BYE"')),e}function it(){var e;return"CANCEL"===n.substr(i,6)?(e="CANCEL",i+=6):(e=null,0===o&&a('"CANCEL"')),e}function ot(){var e;return"REGISTER"===n.substr(i,8)?(e="REGISTER",i+=8):(e=null,0===o&&a('"REGISTER"')),e}function lt(){var e;return"SUBSCRIBE"===n.substr(i,9)?(e="SUBSCRIBE",i+=9):(e=null,0===o&&a('"SUBSCRIBE"')),e}function ut(){var e;return"NOTIFY"===n.substr(i,6)?(e="NOTIFY",i+=6):(e=null,0===o&&a('"NOTIFY"')),e}function at(){var e;return"REFER"===n.substr(i,5)?(e="REFER",i+=5):(e=null,0===o&&a('"REFER"')),e}function ct(){var e,t,r;return t=i,null===(e=tt())&&null===(e=nt())&&null===(e=rt())&&null===(e=st())&&null===(e=it())&&null===(e=ot())&&null===(e=lt())&&null===(e=ut())&&null===(e=at())&&(e=N()),null!==e&&(r=t,jn.method=n.substring(i,r),e=jn.method),null===e&&(i=t),e}function ht(){var e,t,n,r,s,o;return o=i,null!==(e=et())&&null!==(t=v())&&null!==(n=dt())&&null!==(r=v())&&null!==(s=_t())?e=[e,t,n,r,s]:(e=null,i=o),e}function dt(){var e,t,n;return t=i,null!==(e=ft())&&(n=e,e=void(jn.status_code=parseInt(n.join("")))),null===e&&(i=t),e}function ft(){var e,t,n,r;return r=i,null!==(e=h())&&null!==(t=h())&&null!==(n=h())?e=[e,t,n]:(e=null,i=r),e}function _t(){var e,t,r,s;for(r=i,e=[],null===(t=T())&&null===(t=C())&&null===(t=S())&&null===(t=O())&&null===(t=k())&&null===(t=v())&&(t=g());null!==t;)e.push(t),null===(t=T())&&null===(t=C())&&null===(t=S())&&null===(t=O())&&null===(t=k())&&null===(t=v())&&(t=g());return null!==e&&(s=r,e=void(jn.reason_phrase=n.substring(i,s))),null===e&&(i=r),e}function pt(){var e,t,n,r,s,o,l;if(s=i,o=i,null===(e=J())&&(e=mt()),null!==e){for(t=[],l=i,null!==(n=G())&&null!==(r=gt())?n=[n,r]:(n=null,i=l);null!==n;)t.push(n),l=i,null!==(n=G())&&null!==(r=gt())?n=[n,r]:(n=null,i=l);null!==t?e=[e,t]:(e=null,i=o)}else e=null,i=o;return null!==e&&(e=function(e){var t;jn.multi_header||(jn.multi_header=[]);try{t=new Fn(jn.uri,jn.display_name,jn.params),delete jn.uri,delete jn.display_name,delete jn.params}catch(e){t=null}jn.multi_header.push({possition:i,offset:e,parsed:t})}(s)),null===e&&(i=s),e}function mt(){var e,t,n,r,s;return s=i,null!==(e=null!==(e=vt())?e:"")&&null!==(t=F())&&null!==(n=Q())&&null!==(r=H())?e=[e,t,n,r]:(e=null,i=s),e}function vt(){var e,t,n,r,s,o,l,u;if(s=i,o=i,null!==(e=N())){for(t=[],l=i,null!==(n=E())&&null!==(r=N())?n=[n,r]:(n=null,i=l);null!==n;)t.push(n),l=i,null!==(n=E())&&null!==(r=N())?n=[n,r]:(n=null,i=l);null!==t?e=[e,t]:(e=null,i=o)}else e=null,i=o;return null===e&&(e=Y()),null!==e&&(u=e,e=void(jn.display_name="string"==typeof u?u:u[1].reduce(function(e,t){return e+t[0]+t[1]},u[0]))),null===e&&(i=s),e}function gt(){var e;return null===(e=yt())&&null===(e=Tt())&&(e=St()),e}function yt(){var e,t,r,s,l,u;return s=i,l=i,"q"===n.substr(i,1).toLowerCase()?(e=n.substr(i,1),i++):(e=null,0===o&&a('"q"')),null!==e&&null!==(t=M())&&null!==(r=bt())?e=[e,t,r]:(e=null,i=l),null!==e&&(u=e[2],jn.params||(jn.params={}),e=void(jn.params.q=u)),null===e&&(i=s),e}function Tt(){var e,t,r,s,l,u;return s=i,l=i,"expires"===n.substr(i,7).toLowerCase()?(e=n.substr(i,7),i+=7):(e=null,0===o&&a('"expires"')),null!==e&&null!==(t=M())&&null!==(r=Ct())?e=[e,t,r]:(e=null,i=l),null!==e&&(u=e[2],jn.params||(jn.params={}),e=void(jn.params.expires=u)),null===e&&(i=s),e}function Ct(){var e,t,n;if(n=i,null!==(t=h()))for(e=[];null!==t;)e.push(t),t=h();else e=null;return null!==e&&(e=parseInt(e.join(""))),null===e&&(i=n),e}function bt(){var e,t,r,s,l,u,c,d,f;return u=i,c=i,48===n.charCodeAt(i)?(e="0",i++):(e=null,0===o&&a('"0"')),null!==e?(d=i,46===n.charCodeAt(i)?(t=".",i++):(t=null,0===o&&a('"."')),null!==t&&null!==(r=null!==(r=h())?r:"")&&null!==(s=null!==(s=h())?s:"")&&null!==(l=null!==(l=h())?l:"")?t=[t,r,s,l]:(t=null,i=d),null!==(t=null!==t?t:"")?e=[e,t]:(e=null,i=c)):(e=null,i=c),null!==e&&(f=u,e=parseFloat(n.substring(i,f))),null===e&&(i=u),e}function St(){var e,t,n,r,s,o,l,u;return r=i,s=i,null!==(e=N())?(o=i,null!==(t=M())&&null!==(n=Et())?t=[t,n]:(t=null,i=o),null!==(t=null!==t?t:"")?e=[e,t]:(e=null,i=s)):(e=null,i=s),null!==e&&(l=e[0],u=e[1],jn.params||(jn.params={}),u=void 0===u?void 0:u[1],e=void(jn.params[l.toLowerCase()]=u)),null===e&&(i=r),e}function Et(){var e;return null===(e=N())&&null===(e=le())&&(e=z()),e}function At(){var e;return"render"===n.substr(i,6).toLowerCase()?(e=n.substr(i,6),i+=6):(e=null,0===o&&a('"render"')),null===e&&("session"===n.substr(i,7).toLowerCase()?(e=n.substr(i,7),i+=7):(e=null,0===o&&a('"session"')),null===e&&("icon"===n.substr(i,4).toLowerCase()?(e=n.substr(i,4),i+=4):(e=null,0===o&&a('"icon"')),null===e&&("alert"===n.substr(i,5).toLowerCase()?(e=n.substr(i,5),i+=5):(e=null,0===o&&a('"alert"')),null===e&&(e=N())))),e}function Rt(){var e;return null===(e=wt())&&(e=St()),e}function wt(){var e,t,r,s;return s=i,"handling"===n.substr(i,8).toLowerCase()?(e=n.substr(i,8),i+=8):(e=null,0===o&&a('"handling"')),null!==e&&null!==(t=M())?("optional"===n.substr(i,8).toLowerCase()?(r=n.substr(i,8),i+=8):(r=null,0===o&&a('"optional"')),null===r&&("required"===n.substr(i,8).toLowerCase()?(r=n.substr(i,8),i+=8):(r=null,0===o&&a('"required"')),null===r&&(r=N())),null!==r?e=[e,t,r]:(e=null,i=s)):(e=null,i=s),e}function It(){var e,t,n,r,s,o,l,u;if(l=i,null!==(e=Ot()))if(null!==(t=P()))if(null!==(n=xt())){for(r=[],u=i,null!==(s=G())&&null!==(o=Pt())?s=[s,o]:(s=null,i=u);null!==s;)r.push(s),u=i,null!==(s=G())&&null!==(o=Pt())?s=[s,o]:(s=null,i=u);null!==r?e=[e,t,n,r]:(e=null,i=l)}else e=null,i=l;else e=null,i=l;else e=null,i=l;return e}function Ot(){var e;return null===(e=kt())&&(e=Nt()),e}function kt(){var e;return"text"===n.substr(i,4).toLowerCase()?(e=n.substr(i,4),i+=4):(e=null,0===o&&a('"text"')),null===e&&("image"===n.substr(i,5).toLowerCase()?(e=n.substr(i,5),i+=5):(e=null,0===o&&a('"image"')),null===e&&("audio"===n.substr(i,5).toLowerCase()?(e=n.substr(i,5),i+=5):(e=null,0===o&&a('"audio"')),null===e&&("video"===n.substr(i,5).toLowerCase()?(e=n.substr(i,5),i+=5):(e=null,0===o&&a('"video"')),null===e&&("application"===n.substr(i,11).toLowerCase()?(e=n.substr(i,11),i+=11):(e=null,0===o&&a('"application"')),null===e&&(e=Dt()))))),e}function Nt(){var e;return"message"===n.substr(i,7).toLowerCase()?(e=n.substr(i,7),i+=7):(e=null,0===o&&a('"message"')),null===e&&("multipart"===n.substr(i,9).toLowerCase()?(e=n.substr(i,9),i+=9):(e=null,0===o&&a('"multipart"')),null===e&&(e=Dt())),e}function Dt(){var e;return null===(e=N())&&(e=Ut()),e}function Ut(){var e,t,r;return r=i,"x-"===n.substr(i,2).toLowerCase()?(e=n.substr(i,2),i+=2):(e=null,0===o&&a('"x-"')),null!==e&&null!==(t=N())?e=[e,t]:(e=null,i=r),e}function xt(){var e;return null===(e=Dt())&&(e=N()),e}function Pt(){var e,t,n,r;return r=i,null!==(e=N())&&null!==(t=M())&&null!==(n=Mt())?e=[e,t,n]:(e=null,i=r),e}function Mt(){var e;return null===(e=N())&&(e=z()),e}function qt(){var e,t,n,r;if(n=i,null!==(t=h()))for(e=[];null!==t;)e.push(t),t=h();else e=null;return null!==e&&(r=e,e=void(jn.value=parseInt(r.join("")))),null===e&&(i=n),e}function Lt(){var e,t,r,s,l,u;if(l=i,null!==(e=D())){for(t=[],u=i,46===n.charCodeAt(i)?(r=".",i++):(r=null,0===o&&a('"."')),null!==r&&null!==(s=D())?r=[r,s]:(r=null,i=u);null!==r;)t.push(r),u=i,46===n.charCodeAt(i)?(r=".",i++):(r=null,0===o&&a('"."')),null!==r&&null!==(s=D())?r=[r,s]:(r=null,i=u);null!==t?e=[e,t]:(e=null,i=l)}else e=null,i=l;return e}function Ht(){var e;return null===(e=Ft())&&(e=St()),e}function Ft(){var e,t,r,s,l,u;return s=i,l=i,"tag"===n.substr(i,3).toLowerCase()?(e=n.substr(i,3),i+=3):(e=null,0===o&&a('"tag"')),null!==e&&null!==(t=M())&&null!==(r=N())?e=[e,t,r]:(e=null,i=l),null!==e&&(u=e[2],e=void(jn.tag=u)),null===e&&(i=s),e}function jt(){var e,t,r,s,l,u,c,h;if(c=i,"digest"===n.substr(i,6).toLowerCase()?(e=n.substr(i,6),i+=6):(e=null,0===o&&a('"Digest"')),null!==e)if(null!==(t=E()))if(null!==(r=Vt())){for(s=[],h=i,null!==(l=j())&&null!==(u=Vt())?l=[l,u]:(l=null,i=h);null!==l;)s.push(l),h=i,null!==(l=j())&&null!==(u=Vt())?l=[l,u]:(l=null,i=h);null!==s?e=[e,t,r,s]:(e=null,i=c)}else e=null,i=c;else e=null,i=c;else e=null,i=c;return null===e&&(e=Gt()),e}function Gt(){var e,t,n,r,s,o,l,u;if(l=i,null!==(e=N()))if(null!==(t=E()))if(null!==(n=Wt())){for(r=[],u=i,null!==(s=j())&&null!==(o=Wt())?s=[s,o]:(s=null,i=u);null!==s;)r.push(s),u=i,null!==(s=j())&&null!==(o=Wt())?s=[s,o]:(s=null,i=u);null!==r?e=[e,t,n,r]:(e=null,i=l)}else e=null,i=l;else e=null,i=l;else e=null,i=l;return e}function Wt(){var e,t,n,r;return r=i,null!==(e=N())&&null!==(t=M())?(null===(n=N())&&(n=z()),null!==n?e=[e,t,n]:(e=null,i=r)):(e=null,i=r),e}function Vt(){var e;return null===(e=Bt())&&null===(e=zt())&&null===(e=$t())&&null===(e=Jt())&&null===(e=Qt())&&null===(e=Zt())&&null===(e=en())&&(e=Wt()),e}function Bt(){var e,t,r,s;return s=i,"realm"===n.substr(i,5).toLowerCase()?(e=n.substr(i,5),i+=5):(e=null,0===o&&a('"realm"')),null!==e&&null!==(t=M())&&null!==(r=Kt())?e=[e,t,r]:(e=null,i=s),e}function Kt(){var e,t,n;return t=i,null!==(e=Y())&&(n=e,e=void(jn.realm=n)),null===e&&(i=t),e}function zt(){var e,t,r,s,l,u,c,h,d;if(h=i,"domain"===n.substr(i,6).toLowerCase()?(e=n.substr(i,6),i+=6):(e=null,0===o&&a('"domain"')),null!==e)if(null!==(t=M()))if(null!==(r=V()))if(null!==(s=Yt())){if(l=[],d=i,null!==(c=v()))for(u=[];null!==c;)u.push(c),c=v();else u=null;for(null!==u&&null!==(c=Yt())?u=[u,c]:(u=null,i=d);null!==u;){if(l.push(u),d=i,null!==(c=v()))for(u=[];null!==c;)u.push(c),c=v();else u=null;null!==u&&null!==(c=Yt())?u=[u,c]:(u=null,i=d)}null!==l&&null!==(u=B())?e=[e,t,r,s,l,u]:(e=null,i=h)}else e=null,i=h;else e=null,i=h;else e=null,i=h;else e=null,i=h;return e}function Yt(){var e;return null===(e=Le())&&(e=je()),e}function $t(){var e,t,r,s;return s=i,"nonce"===n.substr(i,5).toLowerCase()?(e=n.substr(i,5),i+=5):(e=null,0===o&&a('"nonce"')),null!==e&&null!==(t=M())&&null!==(r=Xt())?e=[e,t,r]:(e=null,i=s),e}function Xt(){var e,t,n;return t=i,null!==(e=Y())&&(n=e,e=void(jn.nonce=n)),null===e&&(i=t),e}function Jt(){var e,t,r,s,l,u;return s=i,l=i,"opaque"===n.substr(i,6).toLowerCase()?(e=n.substr(i,6),i+=6):(e=null,0===o&&a('"opaque"')),null!==e&&null!==(t=M())&&null!==(r=Y())?e=[e,t,r]:(e=null,i=l),null!==e&&(u=e[2],e=void(jn.opaque=u)),null===e&&(i=s),e}function Qt(){var e,t,r,s,l;return s=i,"stale"===n.substr(i,5).toLowerCase()?(e=n.substr(i,5),i+=5):(e=null,0===o&&a('"stale"')),null!==e&&null!==(t=M())?(l=i,"true"===n.substr(i,4).toLowerCase()?(r=n.substr(i,4),i+=4):(r=null,0===o&&a('"true"')),null!==r&&(r=void(jn.stale=!0)),null===r&&(i=l),null===r&&(l=i,"false"===n.substr(i,5).toLowerCase()?(r=n.substr(i,5),i+=5):(r=null,0===o&&a('"false"')),null!==r&&(r=void(jn.stale=!1)),null===r&&(i=l)),null!==r?e=[e,t,r]:(e=null,i=s)):(e=null,i=s),e}function Zt(){var e,t,r,s,l,u;return s=i,l=i,"algorithm"===n.substr(i,9).toLowerCase()?(e=n.substr(i,9),i+=9):(e=null,0===o&&a('"algorithm"')),null!==e&&null!==(t=M())?("md5"===n.substr(i,3).toLowerCase()?(r=n.substr(i,3),i+=3):(r=null,0===o&&a('"MD5"')),null===r&&("md5-sess"===n.substr(i,8).toLowerCase()?(r=n.substr(i,8),i+=8):(r=null,0===o&&a('"MD5-sess"')),null===r&&(r=N())),null!==r?e=[e,t,r]:(e=null,i=l)):(e=null,i=l),null!==e&&(u=e[2],e=void(jn.algorithm=u.toUpperCase())),null===e&&(i=s),e}function en(){var e,t,r,s,l,u,c,h,d,f;if(h=i,"qop"===n.substr(i,3).toLowerCase()?(e=n.substr(i,3),i+=3):(e=null,0===o&&a('"qop"')),null!==e)if(null!==(t=M()))if(null!==(r=V())){if(d=i,null!==(s=tn())){for(l=[],f=i,44===n.charCodeAt(i)?(u=",",i++):(u=null,0===o&&a('","')),null!==u&&null!==(c=tn())?u=[u,c]:(u=null,i=f);null!==u;)l.push(u),f=i,44===n.charCodeAt(i)?(u=",",i++):(u=null,0===o&&a('","')),null!==u&&null!==(c=tn())?u=[u,c]:(u=null,i=f);null!==l?s=[s,l]:(s=null,i=d)}else s=null,i=d;null!==s&&null!==(l=B())?e=[e,t,r,s,l]:(e=null,i=h)}else e=null,i=h;else e=null,i=h;else e=null,i=h;return e}function tn(){var e,t,r;return t=i,"auth-int"===n.substr(i,8).toLowerCase()?(e=n.substr(i,8),i+=8):(e=null,0===o&&a('"auth-int"')),null===e&&("auth"===n.substr(i,4).toLowerCase()?(e=n.substr(i,4),i+=4):(e=null,0===o&&a('"auth"')),null===e&&(e=N())),null!==e&&(r=e,jn.qop||(jn.qop=[]),e=void jn.qop.push(r.toLowerCase())),null===e&&(i=t),e}function nn(){var e,t,n,r,s,o,l;if(s=i,o=i,null!==(e=mt())){for(t=[],l=i,null!==(n=G())&&null!==(r=St())?n=[n,r]:(n=null,i=l);null!==n;)t.push(n),l=i,null!==(n=G())&&null!==(r=St())?n=[n,r]:(n=null,i=l);null!==t?e=[e,t]:(e=null,i=o)}else e=null,i=o;return null!==e&&(e=function(e){var t;jn.multi_header||(jn.multi_header=[]);try{t=new Fn(jn.uri,jn.display_name,jn.params),delete jn.uri,delete jn.display_name,delete jn.params}catch(e){t=null}jn.multi_header.push({possition:i,offset:e,parsed:t})}(s)),null===e&&(i=s),e}function rn(){var e;return null===(e=sn())&&(e=St()),e}function sn(){var e,t,r,s,l,u,c;if(l=i,u=i,"cause"===n.substr(i,5).toLowerCase()?(e=n.substr(i,5),i+=5):(e=null,0===o&&a('"cause"')),null!==e)if(null!==(t=M())){if(null!==(s=h()))for(r=[];null!==s;)r.push(s),s=h();else r=null;null!==r?e=[e,t,r]:(e=null,i=u)}else e=null,i=u;else e=null,i=u;return null!==e&&(c=e[2],e=void(jn.cause=parseInt(c.join("")))),null===e&&(i=l),e}function on(){var e,t,n,r,s,o;if(s=i,null!==(e=mt())){for(t=[],o=i,null!==(n=G())&&null!==(r=St())?n=[n,r]:(n=null,i=o);null!==n;)t.push(n),o=i,null!==(n=G())&&null!==(r=St())?n=[n,r]:(n=null,i=o);null!==t?e=[e,t]:(e=null,i=s)}else e=null,i=s;return e}function ln(){var e,t,r;return t=i,"active"===n.substr(i,6).toLowerCase()?(e=n.substr(i,6),i+=6):(e=null,0===o&&a('"active"')),null===e&&("pending"===n.substr(i,7).toLowerCase()?(e=n.substr(i,7),i+=7):(e=null,0===o&&a('"pending"')),null===e&&("terminated"===n.substr(i,10).toLowerCase()?(e=n.substr(i,10),i+=10):(e=null,0===o&&a('"terminated"')),null===e&&(e=N()))),null!==e&&(r=t,e=void(jn.state=n.substring(i,r))),null===e&&(i=t),e}function un(){var e,t,r,s,l,u,c,h;return s=i,l=i,"reason"===n.substr(i,6).toLowerCase()?(e=n.substr(i,6),i+=6):(e=null,0===o&&a('"reason"')),null!==e&&null!==(t=M())&&null!==(r=an())?e=[e,t,r]:(e=null,i=l),null!==e&&(e=void(void 0!==(u=e[2])&&(jn.reason=u))),null===e&&(i=s),null===e&&(s=i,l=i,"expires"===n.substr(i,7).toLowerCase()?(e=n.substr(i,7),i+=7):(e=null,0===o&&a('"expires"')),null!==e&&null!==(t=M())&&null!==(r=Ct())?e=[e,t,r]:(e=null,i=l),null!==e&&(e=void(void 0!==(h=e[2])&&(jn.expires=h))),null===e&&(i=s),null===e&&(s=i,l=i,"retry_after"===n.substr(i,11).toLowerCase()?(e=n.substr(i,11),i+=11):(e=null,0===o&&a('"retry_after"')),null!==e&&null!==(t=M())&&null!==(r=Ct())?e=[e,t,r]:(e=null,i=l),null!==e&&(e=void(void 0!==(c=e[2])&&(jn.retry_after=c))),null===e&&(i=s),null===e&&(e=St()))),e}function an(){var e;return"deactivated"===n.substr(i,11).toLowerCase()?(e=n.substr(i,11),i+=11):(e=null,0===o&&a('"deactivated"')),null===e&&("probation"===n.substr(i,9).toLowerCase()?(e=n.substr(i,9),i+=9):(e=null,0===o&&a('"probation"')),null===e&&("rejected"===n.substr(i,8).toLowerCase()?(e=n.substr(i,8),i+=8):(e=null,0===o&&a('"rejected"')),null===e&&("timeout"===n.substr(i,7).toLowerCase()?(e=n.substr(i,7),i+=7):(e=null,0===o&&a('"timeout"')),null===e&&("giveup"===n.substr(i,6).toLowerCase()?(e=n.substr(i,6),i+=6):(e=null,0===o&&a('"giveup"')),null===e&&("noresource"===n.substr(i,10).toLowerCase()?(e=n.substr(i,10),i+=10):(e=null,0===o&&a('"noresource"')),null===e&&("invariant"===n.substr(i,9).toLowerCase()?(e=n.substr(i,9),i+=9):(e=null,0===o&&a('"invariant"')),null===e&&(e=N()))))))),e}function cn(){var e;return null===(e=Ft())&&(e=St()),e}function hn(){var e,t,n,r,s,o,l,u;if(l=i,null!==(e=yn()))if(null!==(t=E()))if(null!==(n=bn())){for(r=[],u=i,null!==(s=G())&&null!==(o=dn())?s=[s,o]:(s=null,i=u);null!==s;)r.push(s),u=i,null!==(s=G())&&null!==(o=dn())?s=[s,o]:(s=null,i=u);null!==r?e=[e,t,n,r]:(e=null,i=l)}else e=null,i=l;else e=null,i=l;else e=null,i=l;return e}function dn(){var e;return null===(e=fn())&&null===(e=_n())&&null===(e=pn())&&null===(e=mn())&&null===(e=vn())&&(e=St()),e}function fn(){var e,t,r,s,l,u;return s=i,l=i,"ttl"===n.substr(i,3).toLowerCase()?(e=n.substr(i,3),i+=3):(e=null,0===o&&a('"ttl"')),null!==e&&null!==(t=M())&&null!==(r=An())?e=[e,t,r]:(e=null,i=l),null!==e&&(u=e[2],e=void(jn.ttl=u)),null===e&&(i=s),e}function _n(){var e,t,r,s,l,u;return s=i,l=i,"maddr"===n.substr(i,5).toLowerCase()?(e=n.substr(i,5),i+=5):(e=null,0===o&&a('"maddr"')),null!==e&&null!==(t=M())&&null!==(r=le())?e=[e,t,r]:(e=null,i=l),null!==e&&(u=e[2],e=void(jn.maddr=u)),null===e&&(i=s),e}function pn(){var e,t,r,s,l,u;return s=i,l=i,"received"===n.substr(i,8).toLowerCase()?(e=n.substr(i,8),i+=8):(e=null,0===o&&a('"received"')),null!==e&&null!==(t=M())?(null===(r=pe())&&(r=de()),null!==r?e=[e,t,r]:(e=null,i=l)):(e=null,i=l),null!==e&&(u=e[2],e=void(jn.received=u)),null===e&&(i=s),e}function mn(){var e,t,r,s,l,u;return s=i,l=i,"branch"===n.substr(i,6).toLowerCase()?(e=n.substr(i,6),i+=6):(e=null,0===o&&a('"branch"')),null!==e&&null!==(t=M())&&null!==(r=N())?e=[e,t,r]:(e=null,i=l),null!==e&&(u=e[2],e=void(jn.branch=u)),null===e&&(i=s),e}function vn(){var e,t,r,s,l;return s=i,"rport"===n.substr(i,5).toLowerCase()?(e=n.substr(i,5),i+=5):(e=null,0===o&&a('"rport"')),null!==e?(l=i,null!==(t=M())&&null!==(r=gn())?t=[t,r]:(t=null,i=l),null!==(t=null!==t?t:"")?e=[e,t]:(e=null,i=s)):(e=null,i=s),e}function gn(){var e,t,n,r,s,o,l,u;return o=i,l=i,null!==(e=null!==(e=h())?e:"")&&null!==(t=null!==(t=h())?t:"")&&null!==(n=null!==(n=h())?n:"")&&null!==(r=null!==(r=h())?r:"")&&null!==(s=null!==(s=h())?s:"")?e=[e,t,n,r,s]:(e=null,i=l),null!==e&&(u=e,e=void(jn.rport=parseInt(u.join("")))),null===e&&(i=o),e}function yn(){var e,t,n,r,s,o;return o=i,null!==(e=Tn())&&null!==(t=P())&&null!==(n=N())&&null!==(r=P())&&null!==(s=Cn())?e=[e,t,n,r,s]:(e=null,i=o),e}function Tn(){var e,t,r;return t=i,"sip"===n.substr(i,3).toLowerCase()?(e=n.substr(i,3),i+=3):(e=null,0===o&&a('"SIP"')),null===e&&(e=N()),null!==e&&(r=e,e=void(jn.protocol=r)),null===e&&(i=t),e}function Cn(){var e,t,r;return t=i,"udp"===n.substr(i,3).toLowerCase()?(e=n.substr(i,3),i+=3):(e=null,0===o&&a('"UDP"')),null===e&&("tcp"===n.substr(i,3).toLowerCase()?(e=n.substr(i,3),i+=3):(e=null,0===o&&a('"TCP"')),null===e&&("tls"===n.substr(i,3).toLowerCase()?(e=n.substr(i,3),i+=3):(e=null,0===o&&a('"TLS"')),null===e&&("sctp"===n.substr(i,4).toLowerCase()?(e=n.substr(i,4),i+=4):(e=null,0===o&&a('"SCTP"')),null===e&&(e=N())))),null!==e&&(r=e,e=void(jn.transport=r)),null===e&&(i=t),e}function bn(){var e,t,n,r,s;return r=i,null!==(e=Sn())?(s=i,null!==(t=W())&&null!==(n=En())?t=[t,n]:(t=null,i=s),null!==(t=null!==t?t:"")?e=[e,t]:(e=null,i=r)):(e=null,i=r),e}function Sn(){var e,t,r;return t=i,null===(e=pe())&&null===(e=he())&&(e=ue()),null!==e&&(r=t,e=void(jn.host=n.substring(i,r))),null===e&&(i=t),e}function En(){var e,t,n,r,s,o,l,u;return o=i,l=i,null!==(e=null!==(e=h())?e:"")&&null!==(t=null!==(t=h())?t:"")&&null!==(n=null!==(n=h())?n:"")&&null!==(r=null!==(r=h())?r:"")&&null!==(s=null!==(s=h())?s:"")?e=[e,t,n,r,s]:(e=null,i=l),null!==e&&(u=e,e=void(jn.port=parseInt(u.join("")))),null===e&&(i=o),e}function An(){var e,t,n,r,s;return r=i,s=i,null!==(e=h())&&null!==(t=null!==(t=h())?t:"")&&null!==(n=null!==(n=h())?n:"")?e=[e,t,n]:(e=null,i=s),null!==e&&(e=parseInt(e.join(""))),null===e&&(i=r),e}function Rn(){var e,t,n;return t=i,null!==(e=Ct())&&(n=e,e=void(jn.expires=n)),null===e&&(i=t),e}function wn(){var e;return null===(e=In())&&(e=St()),e}function In(){var e,t,r,s,l,u;return s=i,l=i,"refresher"===n.substr(i,9).toLowerCase()?(e=n.substr(i,9),i+=9):(e=null,0===o&&a('"refresher"')),null!==e&&null!==(t=M())?("uac"===n.substr(i,3).toLowerCase()?(r=n.substr(i,3),i+=3):(r=null,0===o&&a('"uac"')),null===r&&("uas"===n.substr(i,3).toLowerCase()?(r=n.substr(i,3),i+=3):(r=null,0===o&&a('"uas"'))),null!==r?e=[e,t,r]:(e=null,i=l)):(e=null,i=l),null!==e&&(u=e[2],e=void(jn.refresher=u.toLowerCase())),null===e&&(i=s),e}function On(){var e,t;for(e=[],null===(t=I())&&null===(t=k())&&(t=E());null!==t;)e.push(t),null===(t=I())&&null===(t=k())&&(t=E());return e}function kn(){var e,t,r,s,l,u,c,h,d,f,_,p;return f=i,_=i,null!==(e=Dn())?(45===n.charCodeAt(i)?(t="-",i++):(t=null,0===o&&a('"-"')),null!==t&&null!==(r=Nn())?(45===n.charCodeAt(i)?(s="-",i++):(s=null,0===o&&a('"-"')),null!==s&&null!==(l=Nn())?(45===n.charCodeAt(i)?(u="-",i++):(u=null,0===o&&a('"-"')),null!==u&&null!==(c=Nn())?(45===n.charCodeAt(i)?(h="-",i++):(h=null,0===o&&a('"-"')),null!==h&&null!==(d=Un())?e=[e,t,r,s,l,u,c,h,d]:(e=null,i=_)):(e=null,i=_)):(e=null,i=_)):(e=null,i=_)):(e=null,i=_),null!==e&&(p=f,e[0],e=void(jn=n.substring(i+5,p))),null===e&&(i=f),e}function Nn(){var e,t,n,r,s;return s=i,null!==(e=f())&&null!==(t=f())&&null!==(n=f())&&null!==(r=f())?e=[e,t,n,r]:(e=null,i=s),e}function Dn(){var e,t,n;return n=i,null!==(e=Nn())&&null!==(t=Nn())?e=[e,t]:(e=null,i=n),e}function Un(){var e,t,n,r;return r=i,null!==(e=Nn())&&null!==(t=Nn())&&null!==(n=Nn())?e=[e,t,n]:(e=null,i=r),e}function xn(){var e,t,r,s,l,u,c;return s=i,l=i,null!==(e=U())?(u=i,64===n.charCodeAt(i)?(t="@",i++):(t=null,0===o&&a('"@"')),null!==t&&null!==(r=U())?t=[t,r]:(t=null,i=u),null!==(t=null!==t?t:"")?e=[e,t]:(e=null,i=l)):(e=null,i=l),null!==e&&(c=s,e=void(jn.call_id=n.substring(i,c))),null===e&&(i=s),e}function Pn(){var e;return null===(e=Mn())&&null===(e=qn())&&null===(e=Ln())&&(e=St()),e}function Mn(){var e,t,r,s,l,u;return s=i,l=i,"to-tag"===n.substr(i,6)?(e="to-tag",i+=6):(e=null,0===o&&a('"to-tag"')),null!==e&&null!==(t=M())&&null!==(r=N())?e=[e,t,r]:(e=null,i=l),null!==e&&(u=e[2],e=void(jn.to_tag=u)),null===e&&(i=s),e}function qn(){var e,t,r,s,l,u;return s=i,l=i,"from-tag"===n.substr(i,8)?(e="from-tag",i+=8):(e=null,0===o&&a('"from-tag"')),null!==e&&null!==(t=M())&&null!==(r=N())?e=[e,t,r]:(e=null,i=l),null!==e&&(u=e[2],e=void(jn.from_tag=u)),null===e&&(i=s),e}function Ln(){var e,t;return t=i,"early-only"===n.substr(i,10)?(e="early-only",i+=10):(e=null,0===o&&a('"early-only"')),null!==e&&(e=void(jn.early_only=!0)),null===e&&(i=t),e}var Hn=e("./URI"),Fn=e("./NameAddrHeader"),jn={};if(null===s[r]()||i!==n.length){var Gn=Math.max(i,l),Wn=Gn2&&void 0!==arguments[2]?arguments[2]:{},s=e;if(void 0===e||void 0===t)throw new TypeError("Not enough arguments");if(!(e=this._ua.normalizeTarget(e)))throw new TypeError("Invalid target: ".concat(s));var i=d.cloneArray(r.extraHeaders),o=d.cloneObject(r.eventHandlers),l=r.contentType||"text/plain";for(var u in o)Object.prototype.hasOwnProperty.call(o,u)&&this.on(u,o[u]);i.push("Content-Type: ".concat(l)),this._request=new h.OutgoingRequest(c.MESSAGE,e,this._ua,null,i),t&&(this._request.body=t);var a=new f(this._ua,this._request,{onRequestTimeout:function(){n._onRequestTimeout()},onTransportError:function(){n._onTransportError()},onReceiveResponse:function(e){n._receiveResponse(e)}});this._newMessage("local",this._request),a.send()}},{key:"init_incoming",value:function(e){this._request=e,this._newMessage("remote",e),this._is_replied||(this._is_replied=!0,e.reply(200)),this._close()}},{key:"accept",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=d.cloneArray(e.extraHeaders),n=e.body;if("incoming"!==this._direction)throw new _.NotSupportedError('"accept" not supported for outgoing Message');if(this._is_replied)throw new Error("incoming Message already replied");this._is_replied=!0,this._request.reply(200,null,t,n)}},{key:"reject",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=e.status_code||480,n=e.reason_phrase,r=d.cloneArray(e.extraHeaders),s=e.body;if("incoming"!==this._direction)throw new _.NotSupportedError('"reject" not supported for outgoing Message');if(this._is_replied)throw new Error("incoming Message already replied");if(t<300||t>=700)throw new TypeError("Invalid status_code: ".concat(t));this._is_replied=!0,this._request.reply(t,n,r,s)}},{key:"_receiveResponse",value:function(e){if(!this._closed)switch(!0){case/^1[0-9]{2}$/.test(e.status_code):break;case/^2[0-9]{2}$/.test(e.status_code):this._succeeded("remote",e);break;default:var t=d.sipErrorCause(e.status_code);this._failed("remote",e,t)}}},{key:"_onRequestTimeout",value:function(){this._closed||this._failed("system",null,c.causes.REQUEST_TIMEOUT)}},{key:"_onTransportError",value:function(){this._closed||this._failed("system",null,c.causes.CONNECTION_ERROR)}},{key:"_close",value:function(){this._closed=!0,this._ua.destroyMessage(this)}},{key:"_newMessage",value:function(e,t){"remote"===e?(this._direction="incoming",this._local_identity=t.to,this._remote_identity=t.from):"local"===e&&(this._direction="outgoing",this._local_identity=t.from,this._remote_identity=t.to),this._ua.newMessage(this,{originator:e,message:this,request:t})}},{key:"_failed",value:function(e,t,n){p.debug("MESSAGE failed"),this._close(),p.debug('emit "failed"'),this.emit("failed",{originator:e,response:t||null,cause:n})}},{key:"_succeeded",value:function(e,t){p.debug("MESSAGE succeeded"),this._close(),p.debug('emit "succeeded"'),this.emit("succeeded",{originator:e,response:t})}},{key:"direction",get:function(){return this._direction}},{key:"local_identity",get:function(){return this._local_identity}},{key:"remote_identity",get:function(){return this._remote_identity}}])&&s(t.prototype,n),r&&s(t,r),a}()},{"./Constants":2,"./Exceptions":6,"./Logger":9,"./RequestSender":20,"./SIPMessage":21,"./Utils":28,events:31}],11:[function(e,t,n){"use strict";function r(e,t){for(var n=0;n"),this._parameters)Object.prototype.hasOwnProperty.call(this._parameters,t)&&(e+=";".concat(t),null!==this._parameters[t]&&(e+="=".concat(this._parameters[t])));return e}},{key:"uri",get:function(){return this._uri}},{key:"display_name",get:function(){return this._display_name},set:function(e){this._display_name=0===e?"0":e}}]),e}()},{"./Grammar":7,"./URI":27}],12:[function(e,t,n){"use strict";function r(e){return(r="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function s(e,t){for(var n=0;n2&&void 0!==arguments[2]?arguments[2]:{},s=e;if(void 0===e)throw new TypeError("A target is required for OPTIONS");if(!(e=this._ua.normalizeTarget(e)))throw new TypeError("Invalid target: ".concat(s));var i=d.cloneArray(r.extraHeaders),o=d.cloneObject(r.eventHandlers),l=r.contentType||"application/sdp";for(var u in o)Object.prototype.hasOwnProperty.call(o,u)&&this.on(u,o[u]);i.push("Content-Type: ".concat(l)),this._request=new h.OutgoingRequest(c.OPTIONS,e,this._ua,null,i),t&&(this._request.body=t);var a=new f(this._ua,this._request,{onRequestTimeout:function(){n._onRequestTimeout()},onTransportError:function(){n._onTransportError()},onReceiveResponse:function(e){n._receiveResponse(e)}});this._newOptions("local",this._request),a.send()}},{key:"init_incoming",value:function(e){this._request=e,this._newOptions("remote",e),this._is_replied||(this._is_replied=!0,e.reply(200)),this._close()}},{key:"accept",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=d.cloneArray(e.extraHeaders),n=e.body;if("incoming"!==this._direction)throw new _.NotSupportedError('"accept" not supported for outgoing Options');if(this._is_replied)throw new Error("incoming Options already replied");this._is_replied=!0,this._request.reply(200,null,t,n)}},{key:"reject",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=e.status_code||480,n=e.reason_phrase,r=d.cloneArray(e.extraHeaders),s=e.body;if("incoming"!==this._direction)throw new _.NotSupportedError('"reject" not supported for outgoing Options');if(this._is_replied)throw new Error("incoming Options already replied");if(t<300||t>=700)throw new TypeError("Invalid status_code: ".concat(t));this._is_replied=!0,this._request.reply(t,n,r,s)}},{key:"_receiveResponse",value:function(e){if(!this._closed)switch(!0){case/^1[0-9]{2}$/.test(e.status_code):break;case/^2[0-9]{2}$/.test(e.status_code):this._succeeded("remote",e);break;default:var t=d.sipErrorCause(e.status_code);this._failed("remote",e,t)}}},{key:"_onRequestTimeout",value:function(){this._closed||this._failed("system",null,c.causes.REQUEST_TIMEOUT)}},{key:"_onTransportError",value:function(){this._closed||this._failed("system",null,c.causes.CONNECTION_ERROR)}},{key:"_close",value:function(){this._closed=!0,this._ua.destroyMessage(this)}},{key:"_newOptions",value:function(e,t){"remote"===e?(this._direction="incoming",this._local_identity=t.to,this._remote_identity=t.from):"local"===e&&(this._direction="outgoing",this._local_identity=t.from,this._remote_identity=t.to),this._ua.newOptions(this,{originator:e,message:this,request:t})}},{key:"_failed",value:function(e,t,n){p.debug("OPTIONS failed"),this._close(),p.debug('emit "failed"'),this.emit("failed",{originator:e,response:t||null,cause:n})}},{key:"_succeeded",value:function(e,t){p.debug("OPTIONS succeeded"),this._close(),p.debug('emit "succeeded"'),this.emit("succeeded",{originator:e,response:t})}},{key:"direction",get:function(){return this._direction}},{key:"local_identity",get:function(){return this._local_identity}},{key:"remote_identity",get:function(){return this._remote_identity}}])&&s(t.prototype,n),r&&s(t,r),a}()},{"./Constants":2,"./Exceptions":6,"./Logger":9,"./RequestSender":20,"./SIPMessage":21,"./Utils":28,events:31}],13:[function(e,t,n){"use strict";function r(e,t){var n;if("undefined"==typeof Symbol||null==e[Symbol.iterator]){if(Array.isArray(e)||(n=function(e,t){if(!e)return;if("string"==typeof e)return s(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);"Object"===n&&e.constructor&&(n=e.constructor.name);if("Map"===n||"Set"===n)return Array.from(e);if("Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return s(e,t)}(e))||t&&e&&"number"==typeof e.length){n&&(e=n);var r=0,i=function(){};return{s:i,n:function(){return r>=e.length?{done:!0}:{done:!1,value:e[r++]}},e:function(e){throw e},f:i}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var o,l=!0,u=!1;return{s:function(){n=e[Symbol.iterator]()},n:function(){var e=n.next();return l=e.done,e},e:function(e){u=!0,o=e},f:function(){try{l||null==n.return||n.return()}finally{if(u)throw o}}}}function s(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n=e.length?{done:!0}:{done:!1,value:e[r++]}},e:function(e){throw e},f:s}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var o,l=!0,u=!1;return{s:function(){n=e[Symbol.iterator]()},n:function(){var e=n.next();return l=e.done,e},e:function(e){u=!0,o=e},f:function(){try{l||null==n.return||n.return()}finally{if(u)throw o}}}}function i(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n1&&void 0!==arguments[1]?arguments[1]:{},n=arguments.length>2?arguments[2]:void 0;w.debug("connect()");var r=e,s=v.cloneObject(t.eventHandlers),i=v.cloneArray(t.extraHeaders),o=v.cloneObject(t.mediaConstraints,{audio:!0,video:!0}),l=t.mediaStream||null,u=v.cloneObject(t.pcConfig,{iceServers:[]}),a=t.rtcConstraints||null,c=t.rtcOfferConstraints||null;if(this._rtcOfferConstraints=c,this._rtcAnswerConstraints=t.rtcAnswerConstraints||null,this._data=t.data||this._data,void 0===e)throw new TypeError("Not enough arguments");if(this._status!==I.STATUS_NULL)throw new p.InvalidStateError(this._status);if(!window.RTCPeerConnection)throw new p.NotSupportedError("WebRTC not supported");if(!(e=this._ua.normalizeTarget(e)))throw new TypeError("Invalid target: ".concat(r));for(var h in this._sessionTimers.enabled&&v.isDecimal(t.sessionTimersExpires)&&(t.sessionTimersExpires>=_.MIN_SESSION_EXPIRES?this._sessionTimers.defaultExpires=t.sessionTimersExpires:this._sessionTimers.defaultExpires=_.SESSION_EXPIRES),s)Object.prototype.hasOwnProperty.call(s,h)&&this.on(h,s[h]);this._from_tag=v.newTag();var d=t.anonymous||!1,f={from_tag:this._from_tag};this._contact=this._ua.contact.toString({anonymous:d,outbound:!0}),d?(f.from_display_name="Anonymous",f.from_uri=new R("sip","anonymous","anonymous.invalid"),i.push("P-Preferred-Identity: ".concat(this._ua.configuration.uri.toString())),i.push("Privacy: id")):t.fromUserName&&(f.from_uri=new R("sip",t.fromUserName,this._ua.configuration.uri.host),i.push("P-Preferred-Identity: ".concat(this._ua.configuration.uri.toString()))),t.fromDisplayName&&(f.from_display_name=t.fromDisplayName),i.push("Contact: ".concat(this._contact)),i.push("Content-Type: application/sdp"),this._sessionTimers.enabled&&i.push("Session-Expires: ".concat(this._sessionTimers.defaultExpires).concat(this._ua.configuration.session_timers_force_refresher?";refresher=uac":"")),this._request=new y.InitialOutgoingInviteRequest(e,this._ua,f,i),this._id=this._request.call_id+this._from_tag,this._createRTCConnection(u,a),this._direction="outgoing",this._local_identity=this._request.from,this._remote_identity=this._request.to,n&&n(this),this._newRTCSession("local",this._request),this._sendInitialRequest(o,c,l)}},{key:"init_incoming",value:function(e,t){var n,r=this;w.debug("init_incoming()");var s=e.hasHeader("Content-Type")?e.getHeader("Content-Type").toLowerCase():void 0;e.body&&"application/sdp"!==s?e.reply(415):(this._status=I.STATUS_INVITE_RECEIVED,this._from_tag=e.from_tag,this._id=e.call_id+this._from_tag,this._request=e,this._contact=this._ua.contact.toString(),e.hasHeader("expires")&&(n=1e3*e.getHeader("expires")),e.to_tag=v.newTag(),this._createDialog(e,"UAS",!0)?(e.body?this._late_sdp=!1:this._late_sdp=!0,this._status=I.STATUS_WAITING_FOR_ANSWER,this._timers.userNoAnswerTimer=setTimeout(function(){e.reply(408),r._failed("local",null,_.causes.NO_ANSWER)},this._ua.configuration.no_answer_timeout),n&&(this._timers.expiresTimer=setTimeout(function(){r._status===I.STATUS_WAITING_FOR_ANSWER&&(e.reply(487),r._failed("system",null,_.causes.EXPIRES))},n)),this._direction="incoming",this._local_identity=e.to,this._remote_identity=e.from,t&&t(this),this._newRTCSession("remote",e),this._status!==I.STATUS_TERMINATED&&(e.reply(180,null,["Contact: ".concat(this._contact)]),this._progress("local",null))):e.reply(500,"Missing Contact header field"))}},{key:"answer",value:function(){var e=this,t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};w.debug("answer()");var n=this._request,r=v.cloneArray(t.extraHeaders),i=v.cloneObject(t.mediaConstraints),o=t.mediaStream||null,l=v.cloneObject(t.pcConfig,{iceServers:[]}),u=t.rtcConstraints||null,a=t.rtcAnswerConstraints||null,c=v.cloneObject(t.rtcOfferConstraints),h=!1,d=!1,f=!1,m=!1;if(this._rtcAnswerConstraints=a,this._rtcOfferConstraints=t.rtcOfferConstraints||null,this._data=t.data||this._data,"incoming"!==this._direction)throw new p.NotSupportedError('"answer" not supported for outgoing RTCSession');if(this._status!==I.STATUS_WAITING_FOR_ANSWER)throw new p.InvalidStateError(this._status);if(this._sessionTimers.enabled&&v.isDecimal(t.sessionTimersExpires)&&(t.sessionTimersExpires>=_.MIN_SESSION_EXPIRES?this._sessionTimers.defaultExpires=t.sessionTimersExpires:this._sessionTimers.defaultExpires=_.SESSION_EXPIRES),this._status=I.STATUS_ANSWERED,this._createDialog(n,"UAS")){clearTimeout(this._timers.userNoAnswerTimer),r.unshift("Contact: ".concat(this._contact));var g=n.parseSDP();Array.isArray(g.media)||(g.media=[g.media]);var y,T=s(g.media);try{for(T.s();!(y=T.n()).done;){var C=y.value;"audio"===C.type&&(h=!0,C.direction&&"sendrecv"!==C.direction||(f=!0)),"video"===C.type&&(d=!0,C.direction&&"sendrecv"!==C.direction||(m=!0))}}catch(e){T.e(e)}finally{T.f()}if(o&&!1===i.audio){var b,S=s(o.getAudioTracks());try{for(S.s();!(b=S.n()).done;){var E=b.value;o.removeTrack(E)}}catch(e){S.e(e)}finally{S.f()}}if(o&&!1===i.video){var A,R=s(o.getVideoTracks());try{for(R.s();!(A=R.n()).done;){var O=A.value;o.removeTrack(O)}}catch(e){R.e(e)}finally{R.f()}}o||void 0!==i.audio||(i.audio=f),o||void 0!==i.video||(i.video=m),o||h||c.offerToReceiveAudio||(i.audio=!1),o||d||c.offerToReceiveVideo||(i.video=!1),this._createRTCConnection(l,u),Promise.resolve().then(function(){return o||(i.audio||i.video?(e._localMediaStreamLocallyGenerated=!0,navigator.mediaDevices.getUserMedia(i).catch(function(t){if(e._status===I.STATUS_TERMINATED)throw new Error("terminated");throw n.reply(480),e._failed("local",null,_.causes.USER_DENIED_MEDIA_ACCESS),w.warn('emit "getusermediafailed" [error:%o]',t),e.emit("getusermediafailed",t),new Error("getUserMedia() failed")})):void 0)}).then(function(t){if(e._status===I.STATUS_TERMINATED)throw new Error("terminated");e._localMediaStream=t,t&&t.getTracks().forEach(function(n){e._connection.addTrack(n,t)})}).then(function(){if(!e._late_sdp){var t={originator:"remote",type:"offer",sdp:n.body};w.debug('emit "sdp"'),e.emit("sdp",t);var r=new RTCSessionDescription({type:"offer",sdp:t.sdp});return e._connectionPromiseQueue=e._connectionPromiseQueue.then(function(){return e._connection.setRemoteDescription(r)}).catch(function(t){throw n.reply(488),e._failed("system",null,_.causes.WEBRTC_ERROR),w.warn('emit "peerconnection:setremotedescriptionfailed" [error:%o]',t),e.emit("peerconnection:setremotedescriptionfailed",t),new Error("peerconnection.setRemoteDescription() failed")}),e._connectionPromiseQueue}}).then(function(){if(e._status===I.STATUS_TERMINATED)throw new Error("terminated");return e._connecting(n),e._late_sdp?e._createLocalDescription("offer",e._rtcOfferConstraints).catch(function(){throw n.reply(500),new Error("_createLocalDescription() failed")}):e._createLocalDescription("answer",a).catch(function(){throw n.reply(500),new Error("_createLocalDescription() failed")})}).then(function(t){if(e._status===I.STATUS_TERMINATED)throw new Error("terminated");e._handleSessionTimersInIncomingRequest(n,r),n.reply(200,null,r,t,function(){e._status=I.STATUS_WAITING_FOR_ACK,e._setInvite2xxTimer(n,t),e._setACKTimer(),e._accepted("local")},function(){e._failed("system",null,_.causes.CONNECTION_ERROR)})}).catch(function(t){e._status!==I.STATUS_TERMINATED&&w.warn(t)})}else n.reply(500,"Error creating dialog")}},{key:"terminate",value:function(){var e=this,t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};w.debug("terminate()");var n,r=t.cause||_.causes.BYE,s=v.cloneArray(t.extraHeaders),i=t.body,o=t.status_code,l=t.reason_phrase;if(this._status===I.STATUS_TERMINATED)throw new p.InvalidStateError(this._status);switch(this._status){case I.STATUS_NULL:case I.STATUS_INVITE_SENT:case I.STATUS_1XX_RECEIVED:if(w.debug("canceling session"),o&&(o<200||o>=700))throw new TypeError("Invalid status_code: ".concat(o));o&&(l=l||_.REASON_PHRASE[o]||"",n="SIP ;cause=".concat(o,' ;text="').concat(l,'"')),this._status===I.STATUS_NULL||this._status===I.STATUS_INVITE_SENT?(this._is_canceled=!0,this._cancel_reason=n):this._status===I.STATUS_1XX_RECEIVED&&this._request.cancel(n),this._status=I.STATUS_CANCELED,this._failed("local",null,_.causes.CANCELED);break;case I.STATUS_WAITING_FOR_ANSWER:case I.STATUS_ANSWERED:if(w.debug("rejecting session"),(o=o||480)<300||o>=700)throw new TypeError("Invalid status_code: ".concat(o));this._request.reply(o,l,s,i),this._failed("local",null,_.causes.REJECTED);break;case I.STATUS_WAITING_FOR_ACK:case I.STATUS_CONFIRMED:if(w.debug("terminating session"),l=t.reason_phrase||_.REASON_PHRASE[o]||"",o&&(o<200||o>=700))throw new TypeError("Invalid status_code: ".concat(o));if(o&&s.push("Reason: SIP ;cause=".concat(o,'; text="').concat(l,'"')),this._status===I.STATUS_WAITING_FOR_ACK&&"incoming"===this._direction&&this._request.server_transaction.state!==m.C.STATUS_TERMINATED){var u=this._dialog;this.receiveRequest=function(t){t.method===_.ACK&&(e.sendRequest(_.BYE,{extraHeaders:s,body:i}),u.terminate())},this._request.server_transaction.on("stateChanged",function(){e._request.server_transaction.state===m.C.STATUS_TERMINATED&&(e.sendRequest(_.BYE,{extraHeaders:s,body:i}),u.terminate())}),this._ended("local",null,r),this._dialog=u,this._ua.newDialog(u)}else this.sendRequest(_.BYE,{extraHeaders:s,body:i}),this._ended("local",null,r)}}},{key:"sendDTMF",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};w.debug("sendDTMF() | tones: %s",e);var n=0,r=t.duration||null,s=t.interToneGap||null,i=t.transportType||_.DTMF_TRANSPORT.INFO;if(void 0===e)throw new TypeError("Not enough arguments");if(this._status!==I.STATUS_CONFIRMED&&this._status!==I.STATUS_WAITING_FOR_ACK&&this._status!==I.STATUS_1XX_RECEIVED)throw new p.InvalidStateError(this._status);if(i!==_.DTMF_TRANSPORT.INFO&&i!==_.DTMF_TRANSPORT.RFC2833)throw new TypeError("invalid transportType: ".concat(i));if("number"==typeof e&&(e=e.toString()),!e||"string"!=typeof e||!e.match(/^[0-9A-DR#*,]+$/i))throw new TypeError("Invalid tones: ".concat(e));if(r&&!v.isDecimal(r))throw new TypeError("Invalid tone duration: ".concat(r));if(r?rb.C.MAX_DURATION?(w.debug('"duration" value is greater than the maximum allowed, setting it to '.concat(b.C.MAX_DURATION," milliseconds")),r=b.C.MAX_DURATION):r=Math.abs(r):r=b.C.DEFAULT_DURATION,t.duration=r,s&&!v.isDecimal(s))throw new TypeError("Invalid interToneGap: ".concat(s));if(s?s=this._tones.length)return void(this._tones=null);var l=this._tones[n];n+=1;if(","===l)o=2e3;else{var u=new b(this);t.eventHandlers={onFailed:function(){i._tones=null}},u.send(l,t),o=r+s}setTimeout(e.bind(this),o)}.call(this));else{var o=this._getDTMFRTPSender();o&&(e=o.toneBuffer+e,o.insertDTMF(e,r,s))}}},{key:"sendInfo",value:function(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};if(w.debug("sendInfo()"),this._status!==I.STATUS_CONFIRMED&&this._status!==I.STATUS_WAITING_FOR_ACK&&this._status!==I.STATUS_1XX_RECEIVED)throw new p.InvalidStateError(this._status);new S(this).send(e,t,n)}},{key:"mute",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{audio:!0,video:!1};w.debug("mute()");var t=!1,n=!1;!1===this._audioMuted&&e.audio&&(t=!0,this._audioMuted=!0,this._toggleMuteAudio(!0)),!1===this._videoMuted&&e.video&&(n=!0,this._videoMuted=!0,this._toggleMuteVideo(!0)),!0!==t&&!0!==n||this._onmute({audio:t,video:n})}},{key:"unmute",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{audio:!0,video:!0};w.debug("unmute()");var t=!1,n=!1;!0===this._audioMuted&&e.audio&&(t=!0,this._audioMuted=!1,!1===this._localHold&&this._toggleMuteAudio(!1)),!0===this._videoMuted&&e.video&&(n=!0,this._videoMuted=!1,!1===this._localHold&&this._toggleMuteVideo(!1)),!0!==t&&!0!==n||this._onunmute({audio:t,video:n})}},{key:"hold",value:function(){var e=this,t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=arguments.length>1?arguments[1]:void 0;if(w.debug("hold()"),this._status!==I.STATUS_WAITING_FOR_ACK&&this._status!==I.STATUS_CONFIRMED)return!1;if(!0===this._localHold)return!1;if(!this._isReadyToReOffer())return!1;this._localHold=!0,this._onhold("local");var r={succeeded:function(){n&&n()},failed:function(){e.terminate({cause:_.causes.WEBRTC_ERROR,status_code:500,reason_phrase:"Hold Failed"})}};return t.useUpdate?this._sendUpdate({sdpOffer:!0,eventHandlers:r,extraHeaders:t.extraHeaders}):this._sendReinvite({eventHandlers:r,extraHeaders:t.extraHeaders}),!0}},{key:"unhold",value:function(){var e=this,t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=arguments.length>1?arguments[1]:void 0;if(w.debug("unhold()"),this._status!==I.STATUS_WAITING_FOR_ACK&&this._status!==I.STATUS_CONFIRMED)return!1;if(!1===this._localHold)return!1;if(!this._isReadyToReOffer())return!1;this._localHold=!1,this._onunhold("local");var r={succeeded:function(){n&&n()},failed:function(){e.terminate({cause:_.causes.WEBRTC_ERROR,status_code:500,reason_phrase:"Unhold Failed"})}};return t.useUpdate?this._sendUpdate({sdpOffer:!0,eventHandlers:r,extraHeaders:t.extraHeaders}):this._sendReinvite({eventHandlers:r,extraHeaders:t.extraHeaders}),!0}},{key:"renegotiate",value:function(){var e=this,t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=arguments.length>1?arguments[1]:void 0;w.debug("renegotiate()");var r=t.rtcOfferConstraints||null;if(this._status!==I.STATUS_WAITING_FOR_ACK&&this._status!==I.STATUS_CONFIRMED)return!1;if(!this._isReadyToReOffer())return!1;var s={succeeded:function(){n&&n()},failed:function(){e.terminate({cause:_.causes.WEBRTC_ERROR,status_code:500,reason_phrase:"Media Renegotiation Failed"})}};return this._setLocalMediaStatus(),t.useUpdate?this._sendUpdate({sdpOffer:!0,eventHandlers:s,rtcOfferConstraints:r,extraHeaders:t.extraHeaders}):this._sendReinvite({eventHandlers:s,rtcOfferConstraints:r,extraHeaders:t.extraHeaders}),!0}},{key:"refer",value:function(e,t){var n=this;w.debug("refer()");var r=e;if(this._status!==I.STATUS_WAITING_FOR_ACK&&this._status!==I.STATUS_CONFIRMED)return!1;if(!(e=this._ua.normalizeTarget(e)))throw new TypeError("Invalid target: ".concat(r));var s=new A(this);s.sendRefer(e,t);var i=s.id;return this._referSubscribers[i]=s,s.on("requestFailed",function(){delete n._referSubscribers[i]}),s.on("accepted",function(){delete n._referSubscribers[i]}),s.on("failed",function(){delete n._referSubscribers[i]}),s}},{key:"sendRequest",value:function(e,t){return w.debug("sendRequest()"),this._dialog.sendRequest(e,t)}},{key:"receiveRequest",value:function(e){var t=this;if(w.debug("receiveRequest()"),e.method===_.CANCEL)this._status!==I.STATUS_WAITING_FOR_ANSWER&&this._status!==I.STATUS_ANSWERED||(this._status=I.STATUS_CANCELED,this._request.reply(487),this._failed("remote",e,_.causes.CANCELED));else switch(e.method){case _.ACK:if(this._status!==I.STATUS_WAITING_FOR_ACK)return;if(this._status=I.STATUS_CONFIRMED,clearTimeout(this._timers.ackTimer),clearTimeout(this._timers.invite2xxTimer),this._late_sdp){if(!e.body){this.terminate({cause:_.causes.MISSING_SDP,status_code:400});break}var n={originator:"remote",type:"answer",sdp:e.body};w.debug('emit "sdp"'),this.emit("sdp",n);var r=new RTCSessionDescription({type:"answer",sdp:n.sdp});this._connectionPromiseQueue=this._connectionPromiseQueue.then(function(){return t._connection.setRemoteDescription(r)}).then(function(){t._is_confirmed||t._confirmed("remote",e)}).catch(function(e){t.terminate({cause:_.causes.BAD_MEDIA_DESCRIPTION,status_code:488}),w.warn('emit "peerconnection:setremotedescriptionfailed" [error:%o]',e),t.emit("peerconnection:setremotedescriptionfailed",e)})}else this._is_confirmed||this._confirmed("remote",e);break;case _.BYE:this._status===I.STATUS_CONFIRMED||this._status===I.STATUS_WAITING_FOR_ACK?(e.reply(200),this._ended("remote",e,_.causes.BYE)):this._status===I.STATUS_INVITE_RECEIVED||this._status===I.STATUS_WAITING_FOR_ANSWER?(e.reply(200),this._request.reply(487,"BYE Received"),this._ended("remote",e,_.causes.BYE)):e.reply(403,"Wrong Status");break;case _.INVITE:this._status===I.STATUS_CONFIRMED?e.hasHeader("replaces")?this._receiveReplaces(e):this._receiveReinvite(e):e.reply(403,"Wrong Status");break;case _.INFO:if(this._status===I.STATUS_1XX_RECEIVED||this._status===I.STATUS_WAITING_FOR_ANSWER||this._status===I.STATUS_ANSWERED||this._status===I.STATUS_WAITING_FOR_ACK||this._status===I.STATUS_CONFIRMED){var s=e.hasHeader("Content-Type")?e.getHeader("Content-Type").toLowerCase():void 0;s&&s.match(/^application\/dtmf-relay/i)?new b(this).init_incoming(e):void 0!==s?new S(this).init_incoming(e):e.reply(415)}else e.reply(403,"Wrong Status");break;case _.UPDATE:this._status===I.STATUS_CONFIRMED?this._receiveUpdate(e):e.reply(403,"Wrong Status");break;case _.REFER:this._status===I.STATUS_CONFIRMED?this._receiveRefer(e):e.reply(403,"Wrong Status");break;case _.NOTIFY:this._status===I.STATUS_CONFIRMED?this._receiveNotify(e):e.reply(403,"Wrong Status");break;default:e.reply(501)}}},{key:"onTransportError",value:function(){w.warn("onTransportError()"),this._status!==I.STATUS_TERMINATED&&this.terminate({status_code:500,reason_phrase:_.causes.CONNECTION_ERROR,cause:_.causes.CONNECTION_ERROR})}},{key:"onRequestTimeout",value:function(){w.warn("onRequestTimeout()"),this._status!==I.STATUS_TERMINATED&&this.terminate({status_code:408,reason_phrase:_.causes.REQUEST_TIMEOUT,cause:_.causes.REQUEST_TIMEOUT})}},{key:"onDialogError",value:function(){w.warn("onDialogError()"),this._status!==I.STATUS_TERMINATED&&this.terminate({status_code:500,reason_phrase:_.causes.DIALOG_ERROR,cause:_.causes.DIALOG_ERROR})}},{key:"newDTMF",value:function(e){w.debug("newDTMF()"),this.emit("newDTMF",e)}},{key:"newInfo",value:function(e){w.debug("newInfo()"),this.emit("newInfo",e)}},{key:"_isReadyToReOffer",value:function(){return this._rtcReady?this._dialog?!0!==this._dialog.uac_pending_reply&&!0!==this._dialog.uas_pending_reply||(w.debug("_isReadyToReOffer() | there is another INVITE/UPDATE transaction in progress"),!1):(w.debug("_isReadyToReOffer() | session not established yet"),!1):(w.debug("_isReadyToReOffer() | internal WebRTC status not ready"),!1)}},{key:"_close",value:function(){if(w.debug("close()"),this._localMediaStream&&this._localMediaStreamLocallyGenerated&&(w.debug("close() | closing local MediaStream"),v.closeMediaStream(this._localMediaStream)),this._status!==I.STATUS_TERMINATED){if(this._status=I.STATUS_TERMINATED,this._connection)try{this._connection.close()}catch(e){w.warn("close() | error closing the RTCPeerConnection: %o",e)}for(var e in this._timers)Object.prototype.hasOwnProperty.call(this._timers,e)&&clearTimeout(this._timers[e]);for(var t in clearTimeout(this._sessionTimers.timer),this._dialog&&(this._dialog.terminate(),delete this._dialog),this._earlyDialogs)Object.prototype.hasOwnProperty.call(this._earlyDialogs,t)&&(this._earlyDialogs[t].terminate(),delete this._earlyDialogs[t]);for(var n in this._referSubscribers)Object.prototype.hasOwnProperty.call(this._referSubscribers,n)&&delete this._referSubscribers[n];this._ua.destroyRTCSession(this)}}},{key:"_setInvite2xxTimer",value:function(e,t){var n=g.T1;this._timers.invite2xxTimer=setTimeout(function r(){this._status===I.STATUS_WAITING_FOR_ACK&&(e.reply(200,null,["Contact: ".concat(this._contact)],t),ng.T2&&(n=g.T2),this._timers.invite2xxTimer=setTimeout(r.bind(this),n))}.bind(this),n)}},{key:"_setACKTimer",value:function(){var e=this;this._timers.ackTimer=setTimeout(function(){e._status===I.STATUS_WAITING_FOR_ACK&&(w.debug("no ACK received, terminating the session"),clearTimeout(e._timers.invite2xxTimer),e.sendRequest(_.BYE),e._ended("remote",null,_.causes.NO_ACK))},g.TIMER_H)}},{key:"_createRTCConnection",value:function(e,t){var n=this;this._connection=new RTCPeerConnection(e,t),this._connection.addEventListener("iceconnectionstatechange",function(){"failed"===n._connection.iceConnectionState&&n.terminate({cause:_.causes.RTP_TIMEOUT,status_code:408,reason_phrase:_.causes.RTP_TIMEOUT})}),w.debug('emit "peerconnection"'),this.emit("peerconnection",{peerconnection:this._connection})}},{key:"_createLocalDescription",value:function(e,t){var n=this;if(w.debug("createLocalDescription()"),"offer"!==e&&"answer"!==e)throw new Error('createLocalDescription() | invalid type "'.concat(e,'"'));var r=this._connection;return this._rtcReady=!1,Promise.resolve().then(function(){return"offer"===e?r.createOffer(t).catch(function(e){return w.warn('emit "peerconnection:createofferfailed" [error:%o]',e),n.emit("peerconnection:createofferfailed",e),Promise.reject(e)}):r.createAnswer(t).catch(function(e){return w.warn('emit "peerconnection:createanswerfailed" [error:%o]',e),n.emit("peerconnection:createanswerfailed",e),Promise.reject(e)})}).then(function(e){return r.setLocalDescription(e).catch(function(e){return n._rtcReady=!0,w.warn('emit "peerconnection:setlocaldescriptionfailed" [error:%o]',e),n.emit("peerconnection:setlocaldescriptionfailed",e),Promise.reject(e)})}).then(function(){var s=t&&t.iceRestart;if("complete"===r.iceGatheringState&&!s||"gathering"===r.iceGatheringState&&n._iceReady){n._rtcReady=!0;var i={originator:"local",type:e,sdp:r.localDescription.sdp};return w.debug('emit "sdp"'),n.emit("sdp",i),Promise.resolve(i.sdp)}return new Promise(function(t){var s,i,o=!1;n._iceReady=!1;var l=function(){r.removeEventListener("icecandidate",s),r.removeEventListener("icegatheringstatechange",i),o=!0,n._rtcReady=!0,n._iceReady=!0;var l={originator:"local",type:e,sdp:r.localDescription.sdp};w.debug('emit "sdp"'),n.emit("sdp",l),t(l.sdp)};r.addEventListener("icecandidate",s=function(e){var t=e.candidate;t?n.emit("icecandidate",{candidate:t,ready:l}):o||l()}),r.addEventListener("icegatheringstatechange",i=function(){"complete"!==r.iceGatheringState||o||l()})})})}},{key:"_createDialog",value:function(e,t,n){var r="UAS"===t?e.to_tag:e.from_tag,s="UAS"===t?e.from_tag:e.to_tag,i=e.call_id+r+s,o=this._earlyDialogs[i];if(n)return!!o||((o=new T(this,e,t,T.C.STATUS_EARLY)).error?(w.debug(o.error),this._failed("remote",e,_.causes.INTERNAL_ERROR),!1):(this._earlyDialogs[i]=o,!0));if(this._from_tag=e.from_tag,this._to_tag=e.to_tag,o)return o.update(e,t),this._dialog=o,delete this._earlyDialogs[i],!0;var l=new T(this,e,t);return l.error?(w.debug(l.error),this._failed("remote",e,_.causes.INTERNAL_ERROR),!1):(this._dialog=l,!0)}},{key:"_receiveReinvite",value:function(e){var t=this;w.debug("receiveReinvite()");var n=e.hasHeader("Content-Type")?e.getHeader("Content-Type").toLowerCase():void 0,r={request:e,callback:void 0,reject:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};s=!0;var n=t.status_code||403,r=t.reason_phrase||"",i=v.cloneArray(t.extraHeaders);if(this._status!==I.STATUS_CONFIRMED)return!1;if(n<300||n>=700)throw new TypeError("Invalid status_code: ".concat(n));e.reply(n,r,i)}.bind(this)},s=!1;if(this.emit("reinvite",r),!s){if(this._late_sdp=!1,!e.body)return this._late_sdp=!0,this._remoteHold&&(this._remoteHold=!1,this._onunhold("remote")),void(this._connectionPromiseQueue=this._connectionPromiseQueue.then(function(){return t._createLocalDescription("offer",t._rtcOfferConstraints)}).then(function(e){i.call(t,e)}).catch(function(){e.reply(500)}));if("application/sdp"!==n)return w.debug("invalid Content-Type"),void e.reply(415);this._processInDialogSdpOffer(e).then(function(e){t._status!==I.STATUS_TERMINATED&&i.call(t,e)}).catch(function(e){w.warn(e)})}function i(t){var n=this,s=["Contact: ".concat(this._contact)];this._handleSessionTimersInIncomingRequest(e,s),this._late_sdp&&(t=this._mangleOffer(t)),e.reply(200,null,s,t,function(){n._status=I.STATUS_WAITING_FOR_ACK,n._setInvite2xxTimer(e,t),n._setACKTimer()}),"function"==typeof r.callback&&r.callback()}}},{key:"_receiveUpdate",value:function(e){var t=this;w.debug("receiveUpdate()");var n=e.hasHeader("Content-Type")?e.getHeader("Content-Type").toLowerCase():void 0,r={request:e,callback:void 0,reject:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};s=!0;var n=t.status_code||403,r=t.reason_phrase||"",i=v.cloneArray(t.extraHeaders);if(this._status!==I.STATUS_CONFIRMED)return!1;if(n<300||n>=700)throw new TypeError("Invalid status_code: ".concat(n));e.reply(n,r,i)}.bind(this)},s=!1;if(this.emit("update",r),!s)if(e.body){if("application/sdp"!==n)return w.debug("invalid Content-Type"),void e.reply(415);this._processInDialogSdpOffer(e).then(function(e){t._status!==I.STATUS_TERMINATED&&i.call(t,e)}).catch(function(e){w.warn(e)})}else i.call(this,null);function i(t){var n=["Contact: ".concat(this._contact)];this._handleSessionTimersInIncomingRequest(e,n),e.reply(200,null,n,t),"function"==typeof r.callback&&r.callback()}}},{key:"_processInDialogSdpOffer",value:function(e){var t=this;w.debug("_processInDialogSdpOffer()");var n,r=e.parseSDP(),i=!1,o=s(r.media);try{for(o.s();!(n=o.n()).done;){var l=n.value;if(-1!==O.indexOf(l.type)){var u=l.direction||r.direction||"sendrecv";if("sendonly"!==u&&"inactive"!==u){i=!1;break}i=!0}}}catch(e){o.e(e)}finally{o.f()}var a={originator:"remote",type:"offer",sdp:e.body};w.debug('emit "sdp"'),this.emit("sdp",a);var c=new RTCSessionDescription({type:"offer",sdp:a.sdp});return this._connectionPromiseQueue=this._connectionPromiseQueue.then(function(){if(t._status===I.STATUS_TERMINATED)throw new Error("terminated");return t._connection.setRemoteDescription(c).catch(function(n){throw e.reply(488),w.warn('emit "peerconnection:setremotedescriptionfailed" [error:%o]',n),t.emit("peerconnection:setremotedescriptionfailed",n),n})}).then(function(){if(t._status===I.STATUS_TERMINATED)throw new Error("terminated");!0===t._remoteHold&&!1===i?(t._remoteHold=!1,t._onunhold("remote")):!1===t._remoteHold&&!0===i&&(t._remoteHold=!0,t._onhold("remote"))}).then(function(){if(t._status===I.STATUS_TERMINATED)throw new Error("terminated");return t._createLocalDescription("answer",t._rtcAnswerConstraints).catch(function(t){throw e.reply(500),w.warn('emit "peerconnection:createtelocaldescriptionfailed" [error:%o]',t),t})}).catch(function(e){w.warn("_processInDialogSdpOffer() failed [error: %o]",e)}),this._connectionPromiseQueue}},{key:"_receiveRefer",value:function(e){var t=this;if(w.debug("receiveRefer()"),!e.refer_to)return w.debug("no Refer-To header field present in REFER"),void e.reply(400);if(e.refer_to.uri.scheme!==_.SIP)return w.debug("Refer-To header field points to a non-SIP URI scheme"),void e.reply(416);e.reply(202);var r=new E(this,e.cseq);w.debug('emit "refer"'),this.emit("refer",{request:e,accept:function(s,i){(function(t){var s=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};if(t="function"==typeof t?t:null,this._status!==I.STATUS_WAITING_FOR_ACK&&this._status!==I.STATUS_CONFIRMED)return!1;var i=new n(this._ua);if(i.on("progress",function(e){var t=e.response;r.notify(t.status_code,t.reason_phrase)}),i.on("accepted",function(e){var t=e.response;r.notify(t.status_code,t.reason_phrase)}),i.on("_failed",function(e){var t=e.message,n=e.cause;t?r.notify(t.status_code,t.reason_phrase):r.notify(487,n)}),e.refer_to.uri.hasHeader("replaces")){var o=decodeURIComponent(e.refer_to.uri.getHeader("replaces"));s.extraHeaders=v.cloneArray(s.extraHeaders),s.extraHeaders.push("Replaces: ".concat(o))}i.connect(e.refer_to.uri.toAor(),s,t)}).call(t,s,i)},reject:function(){(function(){r.notify(603)}).call(t)}})}},{key:"_receiveNotify",value:function(e){switch(w.debug("receiveNotify()"),e.event||e.reply(400),e.event.event){case"refer":var t,n;if(e.event.params&&e.event.params.id)t=e.event.params.id,n=this._referSubscribers[t];else{if(1!==Object.keys(this._referSubscribers).length)return void e.reply(400,"Missing event id parameter");n=this._referSubscribers[Object.keys(this._referSubscribers)[0]]}if(!n)return void e.reply(481,"Subscription does not exist");n.receiveNotify(e),e.reply(200);break;default:e.reply(489)}}},{key:"_receiveReplaces",value:function(e){var t=this;w.debug("receiveReplaces()"),this.emit("replaces",{request:e,accept:function(r){(function(t){var r=this;if(this._status!==I.STATUS_WAITING_FOR_ACK&&this._status!==I.STATUS_CONFIRMED)return!1;var s=new n(this._ua);s.on("confirmed",function(){r.terminate()}),s.init_incoming(e,t)}).call(t,r)},reject:function(){(function(){w.debug("Replaced INVITE rejected by the user"),e.reply(486)}).call(t)}})}},{key:"_sendInitialRequest",value:function(e,t,n){var r=this,s=new C(this._ua,this._request,{onRequestTimeout:function(){r.onRequestTimeout()},onTransportError:function(){r.onTransportError()},onAuthenticated:function(e){r._request=e},onReceiveResponse:function(e){r._receiveInviteResponse(e)}});Promise.resolve().then(function(){return n||(e.audio||e.video?(r._localMediaStreamLocallyGenerated=!0,navigator.mediaDevices.getUserMedia(e).catch(function(e){if(r._status===I.STATUS_TERMINATED)throw new Error("terminated");throw r._failed("local",null,_.causes.USER_DENIED_MEDIA_ACCESS),w.warn('emit "getusermediafailed" [error:%o]',e),r.emit("getusermediafailed",e),e})):void 0)}).then(function(e){if(r._status===I.STATUS_TERMINATED)throw new Error("terminated");return r._localMediaStream=e,e&&e.getTracks().forEach(function(t){r._connection.addTrack(t,e)}),r._connecting(r._request),r._createLocalDescription("offer",t).catch(function(e){throw r._failed("local",null,_.causes.WEBRTC_ERROR),e})}).then(function(e){if(r._is_canceled||r._status===I.STATUS_TERMINATED)throw new Error("terminated");r._request.body=e,r._status=I.STATUS_INVITE_SENT,w.debug('emit "sending" [request:%o]',r._request),r.emit("sending",{request:r._request}),s.send()}).catch(function(e){r._status!==I.STATUS_TERMINATED&&w.warn(e)})}},{key:"_getDTMFRTPSender",value:function(){var e=this._connection.getSenders().find(function(e){return e.track&&"audio"===e.track.kind});if(e&&e.dtmf)return e.dtmf;w.warn("sendDTMF() | no local audio track to send DTMF with")}},{key:"_receiveInviteResponse",value:function(e){var t=this;if(w.debug("receiveInviteResponse()"),this._dialog&&e.status_code>=200&&e.status_code<=299){if(this._dialog.id.call_id===e.call_id&&this._dialog.id.local_tag===e.from_tag&&this._dialog.id.remote_tag===e.to_tag)return void this.sendRequest(_.ACK);var n=new T(this,e,"UAC");return void 0!==n.error?void w.debug(n.error):(this.sendRequest(_.ACK),void this.sendRequest(_.BYE))}if(this._is_canceled)e.status_code>=100&&e.status_code<200?this._request.cancel(this._cancel_reason):e.status_code>=200&&e.status_code<299&&this._acceptAndTerminate(e);else if(this._status===I.STATUS_INVITE_SENT||this._status===I.STATUS_1XX_RECEIVED)switch(!0){case/^100$/.test(e.status_code):this._status=I.STATUS_1XX_RECEIVED;break;case/^1[0-9]{2}$/.test(e.status_code):if(!e.to_tag){w.debug("1xx response received without to tag");break}if(e.hasHeader("contact")&&!this._createDialog(e,"UAC",!0))break;if(this._status=I.STATUS_1XX_RECEIVED,!e.body){this._progress("remote",e);break}var r={originator:"remote",type:"answer",sdp:e.body};w.debug('emit "sdp"'),this.emit("sdp",r);var s=new RTCSessionDescription({type:"answer",sdp:r.sdp});this._connectionPromiseQueue=this._connectionPromiseQueue.then(function(){return t._connection.setRemoteDescription(s)}).then(function(){return t._progress("remote",e)}).catch(function(e){w.warn('emit "peerconnection:setremotedescriptionfailed" [error:%o]',e),t.emit("peerconnection:setremotedescriptionfailed",e)});break;case/^2[0-9]{2}$/.test(e.status_code):if(this._status=I.STATUS_CONFIRMED,!e.body){this._acceptAndTerminate(e,400,_.causes.MISSING_SDP),this._failed("remote",e,_.causes.BAD_MEDIA_DESCRIPTION);break}if(!this._createDialog(e,"UAC"))break;var i={originator:"remote",type:"answer",sdp:e.body};w.debug('emit "sdp"'),this.emit("sdp",i);var o=new RTCSessionDescription({type:"answer",sdp:i.sdp});this._connectionPromiseQueue=this._connectionPromiseQueue.then(function(){if("stable"===t._connection.signalingState)return t._connection.createOffer(t._rtcOfferConstraints).then(function(e){return t._connection.setLocalDescription(e)}).catch(function(n){t._acceptAndTerminate(e,500,n.toString()),t._failed("local",e,_.causes.WEBRTC_ERROR)})}).then(function(){t._connection.setRemoteDescription(o).then(function(){t._handleSessionTimersInIncomingResponse(e),t._accepted("remote",e),t.sendRequest(_.ACK),t._confirmed("local",null)}).catch(function(n){t._acceptAndTerminate(e,488,"Not Acceptable Here"),t._failed("remote",e,_.causes.BAD_MEDIA_DESCRIPTION),w.warn('emit "peerconnection:setremotedescriptionfailed" [error:%o]',n),t.emit("peerconnection:setremotedescriptionfailed",n)})});break;default:var l=v.sipErrorCause(e.status_code);this._failed("remote",e,l)}}},{key:"_sendReinvite",value:function(){var e=this,t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};w.debug("sendReinvite()");var n=v.cloneArray(t.extraHeaders),r=v.cloneObject(t.eventHandlers),s=t.rtcOfferConstraints||this._rtcOfferConstraints||null,i=!1;function o(e){r.failed&&r.failed(e)}n.push("Contact: ".concat(this._contact)),n.push("Content-Type: application/sdp"),this._sessionTimers.running&&n.push("Session-Expires: ".concat(this._sessionTimers.currentExpires,";refresher=").concat(this._sessionTimers.refresher?"uac":"uas")),this._connectionPromiseQueue=this._connectionPromiseQueue.then(function(){return e._createLocalDescription("offer",s)}).then(function(t){var s={originator:"local",type:"offer",sdp:t=e._mangleOffer(t)};w.debug('emit "sdp"'),e.emit("sdp",s),e.sendRequest(_.INVITE,{extraHeaders:n,body:t,eventHandlers:{onSuccessResponse:function(t){(function(e){var t=this;if(this._status===I.STATUS_TERMINATED)return;if(this.sendRequest(_.ACK),i)return;if(this._handleSessionTimersInIncomingResponse(e),!e.body)return void o.call(this);if(!e.hasHeader("Content-Type")||"application/sdp"!==e.getHeader("Content-Type").toLowerCase())return void o.call(this);var n={originator:"remote",type:"answer",sdp:e.body};w.debug('emit "sdp"'),this.emit("sdp",n);var s=new RTCSessionDescription({type:"answer",sdp:n.sdp});this._connectionPromiseQueue=this._connectionPromiseQueue.then(function(){return t._connection.setRemoteDescription(s)}).then(function(){r.succeeded&&r.succeeded(e)}).catch(function(e){o.call(t),w.warn('emit "peerconnection:setremotedescriptionfailed" [error:%o]',e),t.emit("peerconnection:setremotedescriptionfailed",e)})}).call(e,t),i=!0},onErrorResponse:function(t){o.call(e,t)},onTransportError:function(){e.onTransportError()},onRequestTimeout:function(){e.onRequestTimeout()},onDialogError:function(){e.onDialogError()}}})}).catch(function(){o()})}},{key:"_sendUpdate",value:function(){var e=this,t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};w.debug("sendUpdate()");var n=v.cloneArray(t.extraHeaders),r=v.cloneObject(t.eventHandlers),s=t.rtcOfferConstraints||this._rtcOfferConstraints||null,i=t.sdpOffer||!1,o=!1;function l(e){var t=this;if(this._status!==I.STATUS_TERMINATED&&!o)if(this._handleSessionTimersInIncomingResponse(e),i){if(!e.body)return void u.call(this);if(!e.hasHeader("Content-Type")||"application/sdp"!==e.getHeader("Content-Type").toLowerCase())return void u.call(this);var n={originator:"remote",type:"answer",sdp:e.body};w.debug('emit "sdp"'),this.emit("sdp",n);var s=new RTCSessionDescription({type:"answer",sdp:n.sdp});this._connectionPromiseQueue=this._connectionPromiseQueue.then(function(){return t._connection.setRemoteDescription(s)}).then(function(){r.succeeded&&r.succeeded(e)}).catch(function(e){u.call(t),w.warn('emit "peerconnection:setremotedescriptionfailed" [error:%o]',e),t.emit("peerconnection:setremotedescriptionfailed",e)})}else r.succeeded&&r.succeeded(e)}function u(e){r.failed&&r.failed(e)}n.push("Contact: ".concat(this._contact)),this._sessionTimers.running&&n.push("Session-Expires: ".concat(this._sessionTimers.currentExpires,";refresher=").concat(this._sessionTimers.refresher?"uac":"uas")),i?(n.push("Content-Type: application/sdp"),this._connectionPromiseQueue=this._connectionPromiseQueue.then(function(){return e._createLocalDescription("offer",s)}).then(function(t){var r={originator:"local",type:"offer",sdp:t=e._mangleOffer(t)};w.debug('emit "sdp"'),e.emit("sdp",r),e.sendRequest(_.UPDATE,{extraHeaders:n,body:t,eventHandlers:{onSuccessResponse:function(t){l.call(e,t),o=!0},onErrorResponse:function(t){u.call(e,t)},onTransportError:function(){e.onTransportError()},onRequestTimeout:function(){e.onRequestTimeout()},onDialogError:function(){e.onDialogError()}}})}).catch(function(){u.call(e)})):this.sendRequest(_.UPDATE,{extraHeaders:n,eventHandlers:{onSuccessResponse:function(t){l.call(e,t)},onErrorResponse:function(t){u.call(e,t)},onTransportError:function(){e.onTransportError()},onRequestTimeout:function(){e.onRequestTimeout()},onDialogError:function(){e.onDialogError()}}})}},{key:"_acceptAndTerminate",value:function(e,t,n){w.debug("acceptAndTerminate()");var r=[];t&&(n=n||_.REASON_PHRASE[t]||"",r.push("Reason: SIP ;cause=".concat(t,'; text="').concat(n,'"'))),(this._dialog||this._createDialog(e,"UAC"))&&(this.sendRequest(_.ACK),this.sendRequest(_.BYE,{extraHeaders:r})),this._status=I.STATUS_TERMINATED}},{key:"_mangleOffer",value:function(e){if(!this._localHold&&!this._remoteHold)return e;if(e=d.parse(e),this._localHold&&!this._remoteHold){w.debug("mangleOffer() | me on hold, mangling offer");var t,n=s(e.media);try{for(n.s();!(t=n.n()).done;){var r=t.value;-1!==O.indexOf(r.type)&&(r.direction?"sendrecv"===r.direction?r.direction="sendonly":"recvonly"===r.direction&&(r.direction="inactive"):r.direction="sendonly")}}catch(e){n.e(e)}finally{n.f()}}else if(this._localHold&&this._remoteHold){w.debug("mangleOffer() | both on hold, mangling offer");var i,o=s(e.media);try{for(o.s();!(i=o.n()).done;){var l=i.value;-1!==O.indexOf(l.type)&&(l.direction="inactive")}}catch(e){o.e(e)}finally{o.f()}}else if(this._remoteHold){w.debug("mangleOffer() | remote on hold, mangling offer");var u,a=s(e.media);try{for(a.s();!(u=a.n()).done;){var c=u.value;-1!==O.indexOf(c.type)&&(c.direction?"sendrecv"===c.direction?c.direction="recvonly":"recvonly"===c.direction&&(c.direction="inactive"):c.direction="recvonly")}}catch(e){a.e(e)}finally{a.f()}}return d.write(e)}},{key:"_setLocalMediaStatus",value:function(){var e=!0,t=!0;(this._localHold||this._remoteHold)&&(e=!1,t=!1),this._audioMuted&&(e=!1),this._videoMuted&&(t=!1),this._toggleMuteAudio(!e),this._toggleMuteVideo(!t)}},{key:"_handleSessionTimersInIncomingRequest",value:function(e,t){var n;this._sessionTimers.enabled&&(e.session_expires&&e.session_expires>=_.MIN_SESSION_EXPIRES?(this._sessionTimers.currentExpires=e.session_expires,n=e.session_expires_refresher||"uas"):(this._sessionTimers.currentExpires=this._sessionTimers.defaultExpires,n="uas"),t.push("Session-Expires: ".concat(this._sessionTimers.currentExpires,";refresher=").concat(n)),this._sessionTimers.refresher="uas"===n,this._runSessionTimer())}},{key:"_handleSessionTimersInIncomingResponse",value:function(e){var t;this._sessionTimers.enabled&&(e.session_expires&&e.session_expires>=_.MIN_SESSION_EXPIRES?(this._sessionTimers.currentExpires=e.session_expires,t=e.session_expires_refresher||"uac"):(this._sessionTimers.currentExpires=this._sessionTimers.defaultExpires,t="uac"),this._sessionTimers.refresher="uac"===t,this._runSessionTimer())}},{key:"_runSessionTimer",value:function(){var e=this,t=this._sessionTimers.currentExpires;this._sessionTimers.running=!0,clearTimeout(this._sessionTimers.timer),this._sessionTimers.refresher?this._sessionTimers.timer=setTimeout(function(){e._status!==I.STATUS_TERMINATED&&e._isReadyToReOffer()&&(w.debug("runSessionTimer() | sending session refresh request"),e._sessionTimers.refreshMethod===_.UPDATE?e._sendUpdate():e._sendReinvite())},500*t):this._sessionTimers.timer=setTimeout(function(){e._status!==I.STATUS_TERMINATED&&(w.warn("runSessionTimer() | timer expired, terminating the session"),e.terminate({cause:_.causes.REQUEST_TIMEOUT,status_code:408,reason_phrase:"Session Timer Expired"}))},1100*t)}},{key:"_toggleMuteAudio",value:function(e){var t,n=s(this._connection.getSenders().filter(function(e){return e.track&&"audio"===e.track.kind}));try{for(n.s();!(t=n.n()).done;){t.value.track.enabled=!e}}catch(e){n.e(e)}finally{n.f()}}},{key:"_toggleMuteVideo",value:function(e){var t,n=s(this._connection.getSenders().filter(function(e){return e.track&&"video"===e.track.kind}));try{for(n.s();!(t=n.n()).done;){t.value.track.enabled=!e}}catch(e){n.e(e)}finally{n.f()}}},{key:"_newRTCSession",value:function(e,t){w.debug("newRTCSession()"),this._ua.newRTCSession(this,{originator:e,session:this,request:t})}},{key:"_connecting",value:function(e){w.debug("session connecting"),w.debug('emit "connecting"'),this.emit("connecting",{request:e})}},{key:"_progress",value:function(e,t){w.debug("session progress"),w.debug('emit "progress"'),this.emit("progress",{originator:e,response:t||null})}},{key:"_accepted",value:function(e,t){w.debug("session accepted"),this._start_time=new Date,w.debug('emit "accepted"'),this.emit("accepted",{originator:e,response:t||null})}},{key:"_confirmed",value:function(e,t){w.debug("session confirmed"),this._is_confirmed=!0,w.debug('emit "confirmed"'),this.emit("confirmed",{originator:e,ack:t||null})}},{key:"_ended",value:function(e,t,n){w.debug("session ended"),this._end_time=new Date,this._close(),w.debug('emit "ended"'),this.emit("ended",{originator:e,message:t||null,cause:n})}},{key:"_failed",value:function(e,t,n){w.debug("session failed"),w.debug('emit "_failed"'),this.emit("_failed",{originator:e,message:t||null,cause:n}),this._close(),w.debug('emit "failed"'),this.emit("failed",{originator:e,message:t||null,cause:n})}},{key:"_onhold",value:function(e){w.debug("session onhold"),this._setLocalMediaStatus(),w.debug('emit "hold"'),this.emit("hold",{originator:e})}},{key:"_onunhold",value:function(e){w.debug("session onunhold"),this._setLocalMediaStatus(),w.debug('emit "unhold"'),this.emit("unhold",{originator:e})}},{key:"_onmute",value:function(e){var t=e.audio,n=e.video;w.debug("session onmute"),this._setLocalMediaStatus(),w.debug('emit "muted"'),this.emit("muted",{audio:t,video:n})}},{key:"_onunmute",value:function(e){var t=e.audio,n=e.video;w.debug("session onunmute"),this._setLocalMediaStatus(),w.debug('emit "unmuted"'),this.emit("unmuted",{audio:t,video:n})}},{key:"C",get:function(){return I}},{key:"causes",get:function(){return _.causes}},{key:"id",get:function(){return this._id}},{key:"connection",get:function(){return this._connection}},{key:"contact",get:function(){return this._contact}},{key:"direction",get:function(){return this._direction}},{key:"local_identity",get:function(){return this._local_identity}},{key:"remote_identity",get:function(){return this._remote_identity}},{key:"start_time",get:function(){return this._start_time}},{key:"end_time",get:function(){return this._end_time}},{key:"data",get:function(){return this._data},set:function(e){this._data=e}},{key:"status",get:function(){return this._status}}]),n}()},{"./Constants":2,"./Dialog":3,"./Exceptions":6,"./Logger":9,"./RTCSession/DTMF":15,"./RTCSession/Info":16,"./RTCSession/ReferNotifier":17,"./RTCSession/ReferSubscriber":18,"./RequestSender":20,"./SIPMessage":21,"./Timers":23,"./Transactions":24,"./URI":27,"./Utils":28,events:31,"sdp-transform":37}],15:[function(e,t,n){"use strict";function r(e){return(r="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function s(e,t){for(var n=0;n1&&void 0!==arguments[1]?arguments[1]:{};if(void 0===e)throw new TypeError("Not enough arguments");if(this._direction="outgoing",this._session.status!==this._session.C.STATUS_CONFIRMED&&this._session.status!==this._session.C.STATUS_WAITING_FOR_ACK)throw new h.InvalidStateError(this._session.status);var r=d.cloneArray(n.extraHeaders);if(this.eventHandlers=d.cloneObject(n.eventHandlers),"string"==typeof e)e=e.toUpperCase();else{if("number"!=typeof e)throw new TypeError("Invalid tone: ".concat(e));e=e.toString()}if(!e.match(/^[0-9A-DR#*]$/))throw new TypeError("Invalid tone: ".concat(e));this._tone=e,this._duration=n.duration,r.push("Content-Type: application/dtmf-relay");var s="Signal=".concat(this._tone,"\r\n");s+="Duration=".concat(this._duration),this._session.newDTMF({originator:"local",dtmf:this,request:this._request}),this._session.sendRequest(c.INFO,{extraHeaders:r,eventHandlers:{onSuccessResponse:function(e){t.emit("succeeded",{originator:"remote",response:e})},onErrorResponse:function(e){t.eventHandlers.onFailed&&t.eventHandlers.onFailed(),t.emit("failed",{originator:"remote",response:e})},onRequestTimeout:function(){t._session.onRequestTimeout()},onTransportError:function(){t._session.onTransportError()},onDialogError:function(){t._session.onDialogError()}},body:s})}},{key:"init_incoming",value:function(e){var t=/^(Signal\s*?=\s*?)([0-9A-D#*]{1})(\s)?.*/,n=/^(Duration\s?=\s?)([0-9]{1,4})(\s)?.*/;if(this._direction="incoming",this._request=e,e.reply(200),e.body){var r=e.body.split("\n");r.length>=1&&t.test(r[0])&&(this._tone=r[0].replace(t,"$2")),r.length>=2&&n.test(r[1])&&(this._duration=parseInt(r[1].replace(n,"$2"),10))}this._duration||(this._duration=_.DEFAULT_DURATION),this._tone?this._session.newDTMF({originator:"remote",dtmf:this,request:e}):f.debug("invalid INFO DTMF received, discarded")}},{key:"tone",get:function(){return this._tone}},{key:"duration",get:function(){return this._duration}}])&&s(t.prototype,n),r&&s(t,r),a}(),t.exports.C=_},{"../Constants":2,"../Exceptions":6,"../Logger":9,"../Utils":28,events:31}],16:[function(e,t,n){"use strict";function r(e){return(r="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function s(e,t){for(var n=0;n2&&void 0!==arguments[2]?arguments[2]:{};if(this._direction="outgoing",void 0===e)throw new TypeError("Not enough arguments");if(this._session.status!==this._session.C.STATUS_CONFIRMED&&this._session.status!==this._session.C.STATUS_WAITING_FOR_ACK)throw new c.InvalidStateError(this._session.status);this._contentType=e,this._body=t;var s=h.cloneArray(r.extraHeaders);s.push("Content-Type: ".concat(e)),this._session.newInfo({originator:"local",info:this,request:this.request}),this._session.sendRequest(a.INFO,{extraHeaders:s,eventHandlers:{onSuccessResponse:function(e){n.emit("succeeded",{originator:"remote",response:e})},onErrorResponse:function(e){n.emit("failed",{originator:"remote",response:e})},onTransportError:function(){n._session.onTransportError()},onRequestTimeout:function(){n._session.onRequestTimeout()},onDialogError:function(){n._session.onDialogError()}},body:t})}},{key:"init_incoming",value:function(e){this._direction="incoming",this.request=e,e.reply(200),this._contentType=e.hasHeader("Content-Type")?e.getHeader("Content-Type").toLowerCase():void 0,this._body=e.body,this._session.newInfo({originator:"remote",info:this,request:e})}},{key:"contentType",get:function(){return this._contentType}},{key:"body",get:function(){return this._body}}])&&s(t.prototype,n),r&&s(t,r),d}()},{"../Constants":2,"../Exceptions":6,"../Utils":28,events:31}],17:[function(e,t,n){"use strict";function r(e,t){for(var n=0;n=200?"terminated;reason=noresource":"active;expires=".concat(this._expires),this._session.sendRequest(i.NOTIFY,{extraHeaders:["Event: ".concat(l.event_type,";id=").concat(this._id),"Subscription-State: ".concat(n),"Content-Type: ".concat(l.body_type)],body:"SIP/2.0 ".concat(e," ").concat(t),eventHandlers:{onErrorResponse:function(){this._active=!1}}}))}}])&&r(t.prototype,n),s&&r(t,s),e}()},{"../Constants":2,"../Logger":9}],18:[function(e,t,n){"use strict";function r(e){return(r="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function s(e,t){for(var n=0;n1&&void 0!==arguments[1]?arguments[1]:{};f.debug("sendRefer()");var r=d.cloneArray(n.extraHeaders),s=d.cloneObject(n.eventHandlers);for(var i in s)Object.prototype.hasOwnProperty.call(s,i)&&this.on(i,s[i]);var o=null;n.replaces&&(o=n.replaces._request.call_id,o+=";to-tag=".concat(n.replaces._to_tag),o+=";from-tag=".concat(n.replaces._from_tag),o=encodeURIComponent(o));var l="Refer-To: <".concat(e).concat(o?"?Replaces=".concat(o):"",">");if(r.push(l),!r.some(function(e){return e.toLowerCase().startsWith("referred-by:")})){var u="Referred-By: <".concat(this._session._ua._configuration.uri._scheme,":").concat(this._session._ua._configuration.uri._user,"@").concat(this._session._ua._configuration.uri._host,">");r.push(u)}r.push("Contact: ".concat(this._session.contact));var a=this._session.sendRequest(c.REFER,{extraHeaders:r,eventHandlers:{onSuccessResponse:function(e){t._requestSucceeded(e)},onErrorResponse:function(e){t._requestFailed(e,c.causes.REJECTED)},onTransportError:function(){t._requestFailed(null,c.causes.CONNECTION_ERROR)},onRequestTimeout:function(){t._requestFailed(null,c.causes.REQUEST_TIMEOUT)},onDialogError:function(){t._requestFailed(null,c.causes.DIALOG_ERROR)}}});this._id=a.cseq}},{key:"receiveNotify",value:function(e){if(f.debug("receiveNotify()"),e.body){var t=h.parse(e.body.trim(),"Status_Line");if(-1!==t)switch(!0){case/^100$/.test(t.status_code):this.emit("trying",{request:e,status_line:t});break;case/^1[0-9]{2}$/.test(t.status_code):this.emit("progress",{request:e,status_line:t});break;case/^2[0-9]{2}$/.test(t.status_code):this.emit("accepted",{request:e,status_line:t});break;default:this.emit("failed",{request:e,status_line:t})}else f.debug('receiveNotify() | error parsing NOTIFY body: "'.concat(e.body,'"'))}}},{key:"_requestSucceeded",value:function(e){f.debug("REFER succeeded"),f.debug('emit "requestSucceeded"'),this.emit("requestSucceeded",{response:e})}},{key:"_requestFailed",value:function(e,t){f.debug("REFER failed"),f.debug('emit "requestFailed"'),this.emit("requestFailed",{response:e||null,cause:t})}},{key:"id",get:function(){return this._id}}])&&s(t.prototype,n),r&&s(t,r),a}()},{"../Constants":2,"../Grammar":7,"../Logger":9,"../Utils":28,events:31}],19:[function(e,t,n){"use strict";function r(e,t){for(var n=0;n"'),this._contact+=";reg-id=".concat(this._reg_id),this._contact+=";+sip.instance=".concat(this._sipInstance)}var t,n,s;return t=e,(n=[{key:"setExtraHeaders",value:function(e){Array.isArray(e)||(e=[]),this._extraHeaders=e.slice()}},{key:"setExtraContactParams",value:function(e){for(var t in e instanceof Object||(e={}),this._extraContactParams="",e)if(Object.prototype.hasOwnProperty.call(e,t)){var n=e[t];this._extraContactParams+=";".concat(t),n&&(this._extraContactParams+="=".concat(n))}}},{key:"register",value:function(){var e=this;if(this._registering)a.debug("Register request in progress...");else{var t=this._extraHeaders.slice();t.push("Contact: ".concat(this._contact,";expires=").concat(this._expires).concat(this._extraContactParams)),t.push("Expires: ".concat(this._expires));var n=new l.OutgoingRequest(o.REGISTER,this._registrar,this._ua,{to_uri:this._to_uri,call_id:this._call_id,cseq:this._cseq+=1},t),r=new u(this._ua,n,{onRequestTimeout:function(){e._registrationFailure(null,o.causes.REQUEST_TIMEOUT)},onTransportError:function(){e._registrationFailure(null,o.causes.CONNECTION_ERROR)},onAuthenticated:function(){e._cseq+=1},onReceiveResponse:function(t){if(t.cseq===e._cseq)switch(null!==e._registrationTimer&&(clearTimeout(e._registrationTimer),e._registrationTimer=null),!0){case/^1[0-9]{2}$/.test(t.status_code):break;case/^2[0-9]{2}$/.test(t.status_code):if(e._registering=!1,!t.hasHeader("Contact")){a.debug("no Contact header in response to REGISTER, response ignored");break}var n=t.headers.Contact.reduce(function(e,t){return e.concat(t.parsed)},[]),r=n.find(function(t){return e._sipInstance===t.getParam("+sip.instance")&&e._reg_id===parseInt(t.getParam("reg-id"))});if(r||(r=n.find(function(t){return t.uri.user===e._ua.contact.uri.user})),!r){a.debug("no Contact header pointing to us, response ignored");break}var s=r.getParam("expires");!s&&t.hasHeader("expires")&&(s=t.getHeader("expires")),s||(s=e._expires),(s=Number(s))<10&&(s=10);var l=s>64?1e3*s/2+Math.floor(1e3*(s/2-32)*Math.random()):1e3*s-5e3;e._registrationTimer=setTimeout(function(){e._registrationTimer=null,0===e._ua.listeners("registrationExpiring").length?e.register():e._ua.emit("registrationExpiring")},l),r.hasParam("temp-gruu")&&(e._ua.contact.temp_gruu=r.getParam("temp-gruu").replace(/"/g,"")),r.hasParam("pub-gruu")&&(e._ua.contact.pub_gruu=r.getParam("pub-gruu").replace(/"/g,"")),e._registered||(e._registered=!0,e._ua.registered({response:t}));break;case/^423$/.test(t.status_code):t.hasHeader("min-expires")?(e._expires=Number(t.getHeader("min-expires")),e._expires<10&&(e._expires=10),e.register()):(a.debug("423 response received for REGISTER without Min-Expires"),e._registrationFailure(t,o.causes.SIP_FAILURE_CODE));break;default:var u=i.sipErrorCause(t.status_code);e._registrationFailure(t,u)}}});this._registering=!0,r.send()}}},{key:"unregister",value:function(){var e=this,t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};if(this._registered){this._registered=!1,null!==this._registrationTimer&&(clearTimeout(this._registrationTimer),this._registrationTimer=null);var n=this._extraHeaders.slice();t.all?n.push("Contact: *".concat(this._extraContactParams)):n.push("Contact: ".concat(this._contact,";expires=0").concat(this._extraContactParams)),n.push("Expires: 0");var r=new l.OutgoingRequest(o.REGISTER,this._registrar,this._ua,{to_uri:this._to_uri,call_id:this._call_id,cseq:this._cseq+=1},n);new u(this._ua,r,{onRequestTimeout:function(){e._unregistered(null,o.causes.REQUEST_TIMEOUT)},onTransportError:function(){e._unregistered(null,o.causes.CONNECTION_ERROR)},onAuthenticated:function(){e._cseq+=1},onReceiveResponse:function(t){switch(!0){case/^1[0-9]{2}$/.test(t.status_code):break;case/^2[0-9]{2}$/.test(t.status_code):e._unregistered(t);break;default:var n=i.sipErrorCause(t.status_code);e._unregistered(t,n)}}}).send()}else a.debug("already unregistered")}},{key:"close",value:function(){this._registered&&this.unregister()}},{key:"onTransportClosed",value:function(){this._registering=!1,null!==this._registrationTimer&&(clearTimeout(this._registrationTimer),this._registrationTimer=null),this._registered&&(this._registered=!1,this._ua.unregistered({}))}},{key:"_registrationFailure",value:function(e,t){this._registering=!1,this._ua.registrationFailed({response:e||null,cause:t}),this._registered&&(this._registered=!1,this._ua.unregistered({response:e||null,cause:t}))}},{key:"_unregistered",value:function(e,t){this._registering=!1,this._registered=!1,this._ua.unregistered({response:e||null,cause:t||null})}},{key:"registered",get:function(){return this._registered}}])&&r(t.prototype,n),s&&r(t,s),e}()},{"./Constants":2,"./Logger":9,"./RequestSender":20,"./SIPMessage":21,"./Utils":28}],20:[function(e,t,n){"use strict";function r(e,t){for(var n=0;n=e.length?{done:!0}:{done:!1,value:e[r++]}},e:function(e){throw e},f:s}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var i,o=!0,l=!1;return{s:function(){n=e[Symbol.iterator]()},n:function(){var e=n.next();return o=e.done,e},e:function(e){l=!0,i=e},f:function(){try{o||null==n.return||n.return()}finally{if(l)throw i}}}}function a(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n")),this.setHeader("via",""),this.setHeader("max-forwards",p.MAX_FORWARDS);var l=s.to_uri||n,u=s.to_tag?{tag:s.to_tag}:null,a=void 0!==s.to_display_name?s.to_display_name:null;this.to=new v(l,a,u),this.setHeader("to",this.to.toString());var h,d=s.from_uri||r.configuration.uri,f={tag:s.from_tag||m.newTag()};h=void 0!==s.from_display_name?s.from_display_name:r.configuration.display_name?r.configuration.display_name:null,this.from=new v(d,h,f),this.setHeader("from",this.from.toString());var _=s.call_id||r.configuration.jssip_id+m.createRandomToken(15);this.call_id=_,this.setHeader("call-id",_);var g=s.cseq||Math.floor(1e4*Math.random());this.cseq=g,this.setHeader("cseq","".concat(g," ").concat(t))}return d(e,[{key:"setHeader",value:function(e,t){for(var n=new RegExp("^\\s*".concat(e,"\\s*:"),"i"),r=0;r1&&void 0!==arguments[1]?arguments[1]:0;if(e=m.headerize(e),this.headers[e]){if(!(t>=this.headers[e].length)){var n=this.headers[e][t],r=n.raw;if(n.parsed)return n.parsed;var s=g.parse(r,e.replace(/-/g,"_"));return-1===s?(this.headers[e].splice(t,1),void y.debug('error parsing "'.concat(e,'" header field with value "').concat(r,'"'))):(n.parsed=s,s)}y.debug('not so many "'.concat(e,'" headers present'))}else y.debug('header "'.concat(e,'" not present'))}},{key:"s",value:function(e,t){return this.parseHeader(e,t)}},{key:"setHeader",value:function(e,t){var n={raw:t};this.headers[m.headerize(e)]=[n]}},{key:"parseSDP",value:function(e){return!e&&this.sdp?this.sdp:(this.sdp=f.parse(this.body||""),this.sdp)}},{key:"toString",value:function(){return this.data}}]),e}(),S=function(e){s(n,b);var t=o(n);function n(e){var r;return c(this,n),(r=t.call(this)).ua=e,r.headers={},r.ruri=null,r.transport=null,r.server_transaction=null,r}return d(n,[{key:"reply",value:function(e,t,n,r,s,i){var o=[],l=this.getHeader("To");if(t=t||null,!(e=e||null)||e<100||e>699)throw new TypeError("Invalid status_code: ".concat(e));if(t&&"string"!=typeof t&&!(t instanceof String))throw new TypeError("Invalid reason_phrase: ".concat(t));t=t||p.REASON_PHRASE[e]||"",n=m.cloneArray(n);var a="SIP/2.0 ".concat(e," ").concat(t,"\r\n");if(this.method===p.INVITE&&e>100&&e<=200){var c,h=u(this.getHeaders("record-route"));try{for(h.s();!(c=h.n()).done;){var d=c.value;a+="Record-Route: ".concat(d,"\r\n")}}catch(e){h.e(e)}finally{h.f()}}var f,_=u(this.getHeaders("via"));try{for(_.s();!(f=_.n()).done;){var v=f.value;a+="Via: ".concat(v,"\r\n")}}catch(e){_.e(e)}finally{_.f()}!this.to_tag&&e>100?l+=";tag=".concat(m.newTag()):this.to_tag&&!this.s("to").hasParam("tag")&&(l+=";tag=".concat(this.to_tag)),a+="To: ".concat(l,"\r\n"),a+="From: ".concat(this.getHeader("From"),"\r\n"),a+="Call-ID: ".concat(this.call_id,"\r\n"),a+="CSeq: ".concat(this.cseq," ").concat(this.method,"\r\n");var g,y=u(n);try{for(y.s();!(g=y.n()).done;){var T=g.value;a+="".concat(T.trim(),"\r\n")}}catch(e){y.e(e)}finally{y.f()}switch(this.method){case p.INVITE:this.ua.configuration.session_timers&&o.push("timer"),(this.ua.contact.pub_gruu||this.ua.contact.temp_gruu)&&o.push("gruu"),o.push("ice","replaces");break;case p.UPDATE:this.ua.configuration.session_timers&&o.push("timer"),r&&o.push("ice"),o.push("replaces")}if(o.push("outbound"),this.method===p.OPTIONS?(a+="Allow: ".concat(p.ALLOWED_METHODS,"\r\n"),a+="Accept: ".concat(p.ACCEPTED_BODY_TYPES,"\r\n")):405===e?a+="Allow: ".concat(p.ALLOWED_METHODS,"\r\n"):415===e&&(a+="Accept: ".concat(p.ACCEPTED_BODY_TYPES,"\r\n")),a+="Supported: ".concat(o,"\r\n"),r){var C=m.str_utf8_length(r);a+="Content-Type: application/sdp\r\n",a+="Content-Length: ".concat(C,"\r\n\r\n"),a+=r}else a+="Content-Length: ".concat(0,"\r\n\r\n");this.server_transaction.receiveResponse(e,a,s,i)}},{key:"reply_sl",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:null,t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null,n=this.getHeaders("via");if(!e||e<100||e>699)throw new TypeError("Invalid status_code: ".concat(e));if(t&&"string"!=typeof t&&!(t instanceof String))throw new TypeError("Invalid reason_phrase: ".concat(t));t=t||p.REASON_PHRASE[e]||"";var r,s="SIP/2.0 ".concat(e," ").concat(t,"\r\n"),i=u(n);try{for(i.s();!(r=i.n()).done;){var o=r.value;s+="Via: ".concat(o,"\r\n")}}catch(e){i.e(e)}finally{i.f()}var l=this.getHeader("To");!this.to_tag&&e>100?l+=";tag=".concat(m.newTag()):this.to_tag&&!this.s("to").hasParam("tag")&&(l+=";tag=".concat(this.to_tag)),s+="To: ".concat(l,"\r\n"),s+="From: ".concat(this.getHeader("From"),"\r\n"),s+="Call-ID: ".concat(this.call_id,"\r\n"),s+="CSeq: ".concat(this.cseq," ").concat(this.method,"\r\n"),s+="Content-Length: ".concat(0,"\r\n\r\n"),this.transport.send(s)}}]),n}(),E=function(e){s(n,b);var t=o(n);function n(){var e;return c(this,n),(e=t.call(this)).headers={},e.status_code=null,e.reason_phrase=null,e}return n}();t.exports={OutgoingRequest:T,InitialOutgoingInviteRequest:C,IncomingRequest:S,IncomingResponse:E}},{"./Constants":2,"./Grammar":7,"./Logger":9,"./NameAddrHeader":11,"./Utils":28,"sdp-transform":37}],22:[function(e,t,n){"use strict";var r=e("./Logger"),s=e("./Utils"),i=e("./Grammar"),o=new r("Socket");n.isSocket=function(e){if(Array.isArray(e))return!1;if(void 0===e)return o.warn("undefined JsSIP.Socket instance"),!1;try{if(!s.isString(e.url))throw o.warn("missing or invalid JsSIP.Socket url property"),new Error("Missing or invalid JsSIP.Socket url property");if(!s.isString(e.via_transport))throw o.warn("missing or invalid JsSIP.Socket via_transport property"),new Error("Missing or invalid JsSIP.Socket via_transport property");if(-1===i.parse(e.sip_uri,"SIP_URI"))throw o.warn("missing or invalid JsSIP.Socket sip_uri property"),new Error("missing or invalid JsSIP.Socket sip_uri property")}catch(e){return!1}try{["connect","disconnect","send"].forEach(function(t){if(!s.isFunction(e[t]))throw o.warn("missing or invalid JsSIP.Socket method: ".concat(t)),new Error("Missing or invalid JsSIP.Socket method: ".concat(t))})}catch(e){return!1}return!0}},{"./Grammar":7,"./Logger":9,"./Utils":28}],23:[function(e,t,n){"use strict";var r=500;t.exports={T1:r,T2:4e3,T4:5e3,TIMER_B:32e3,TIMER_D:0,TIMER_F:32e3,TIMER_H:32e3,TIMER_I:0,TIMER_J:0,TIMER_K:0,TIMER_L:32e3,TIMER_M:32e3,PROVISIONAL_RESPONSE_INTERVAL:6e4}},{}],24:[function(e,t,n){"use strict";function r(e){return(r="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function s(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function i(e,t){for(var n=0;n=100&&n<=199)switch(this.state){case b.STATUS_CALLING:this.stateChanged(b.STATUS_PROCEEDING),this.eventHandlers.onReceiveResponse(e);break;case b.STATUS_PROCEEDING:this.eventHandlers.onReceiveResponse(e)}else if(n>=200&&n<=299)switch(this.state){case b.STATUS_CALLING:case b.STATUS_PROCEEDING:this.stateChanged(b.STATUS_ACCEPTED),this.M=setTimeout(function(){t.timer_M()},m.TIMER_M),this.eventHandlers.onReceiveResponse(e);break;case b.STATUS_ACCEPTED:this.eventHandlers.onReceiveResponse(e)}else if(n>=300&&n<=699)switch(this.state){case b.STATUS_CALLING:case b.STATUS_PROCEEDING:this.stateChanged(b.STATUS_COMPLETED),this.sendACK(e),this.eventHandlers.onReceiveResponse(e);break;case b.STATUS_COMPLETED:this.sendACK(e)}}},{key:"C",get:function(){return b}}]),n}(),A=function(e){l(n,d);var t=a(n);function n(e,r,i,o){var l;s(this,n),(l=t.call(this)).id="z9hG4bK".concat(Math.floor(1e7*Math.random())),l.transport=r,l.request=i,l.eventHandlers=o;var u="SIP/2.0/".concat(r.via_transport);return u+=" ".concat(e.configuration.via_host,";branch=").concat(l.id),l.request.setHeader("via",u),l}return o(n,[{key:"send",value:function(){this.transport.send(this.request)||this.onTransportError()}},{key:"onTransportError",value:function(){y.debug("transport error occurred for transaction ".concat(this.id)),this.eventHandlers.onTransportError()}},{key:"C",get:function(){return b}}]),n}(),R=function(e){l(n,d);var t=a(n);function n(e,r,i){var o;return s(this,n),(o=t.call(this)).type=b.NON_INVITE_SERVER,o.id=i.via_branch,o.ua=e,o.transport=r,o.request=i,o.last_response="",i.server_transaction=c(o),o.state=b.STATUS_TRYING,e.newTransaction(c(o)),o}return o(n,[{key:"stateChanged",value:function(e){this.state=e,this.emit("stateChanged")}},{key:"timer_J",value:function(){T.debug("Timer J expired for transaction ".concat(this.id)),this.stateChanged(b.STATUS_TERMINATED),this.ua.destroyTransaction(this)}},{key:"onTransportError",value:function(){this.transportError||(this.transportError=!0,T.debug("transport error occurred, deleting transaction ".concat(this.id)),clearTimeout(this.J),this.stateChanged(b.STATUS_TERMINATED),this.ua.destroyTransaction(this))}},{key:"receiveResponse",value:function(e,t,n,r){var s=this;if(100===e)switch(this.state){case b.STATUS_TRYING:this.stateChanged(b.STATUS_PROCEEDING),this.transport.send(t)||this.onTransportError();break;case b.STATUS_PROCEEDING:this.last_response=t,this.transport.send(t)?n&&n():(this.onTransportError(),r&&r())}else if(e>=200&&e<=699)switch(this.state){case b.STATUS_TRYING:case b.STATUS_PROCEEDING:this.stateChanged(b.STATUS_COMPLETED),this.last_response=t,this.J=setTimeout(function(){s.timer_J()},m.TIMER_J),this.transport.send(t)?n&&n():(this.onTransportError(),r&&r());break;case b.STATUS_COMPLETED:}}},{key:"C",get:function(){return b}}]),n}(),w=function(e){l(n,d);var t=a(n);function n(e,r,i){var o;return s(this,n),(o=t.call(this)).type=b.INVITE_SERVER,o.id=i.via_branch,o.ua=e,o.transport=r,o.request=i,o.last_response="",i.server_transaction=c(o),o.state=b.STATUS_PROCEEDING,e.newTransaction(c(o)),o.resendProvisionalTimer=null,i.reply(100),o}return o(n,[{key:"stateChanged",value:function(e){this.state=e,this.emit("stateChanged")}},{key:"timer_H",value:function(){C.debug("Timer H expired for transaction ".concat(this.id)),this.state===b.STATUS_COMPLETED&&C.debug("ACK not received, dialog will be terminated"),this.stateChanged(b.STATUS_TERMINATED),this.ua.destroyTransaction(this)}},{key:"timer_I",value:function(){this.stateChanged(b.STATUS_TERMINATED),this.ua.destroyTransaction(this)}},{key:"timer_L",value:function(){C.debug("Timer L expired for transaction ".concat(this.id)),this.state===b.STATUS_ACCEPTED&&(this.stateChanged(b.STATUS_TERMINATED),this.ua.destroyTransaction(this))}},{key:"onTransportError",value:function(){this.transportError||(this.transportError=!0,C.debug("transport error occurred, deleting transaction ".concat(this.id)),null!==this.resendProvisionalTimer&&(clearInterval(this.resendProvisionalTimer),this.resendProvisionalTimer=null),clearTimeout(this.L),clearTimeout(this.H),clearTimeout(this.I),this.stateChanged(b.STATUS_TERMINATED),this.ua.destroyTransaction(this))}},{key:"resend_provisional",value:function(){this.transport.send(this.last_response)||this.onTransportError()}},{key:"receiveResponse",value:function(e,t,n,r){var s=this;if(e>=100&&e<=199)switch(this.state){case b.STATUS_PROCEEDING:this.transport.send(t)||this.onTransportError(),this.last_response=t}if(e>100&&e<=199&&this.state===b.STATUS_PROCEEDING)null===this.resendProvisionalTimer&&(this.resendProvisionalTimer=setInterval(function(){s.resend_provisional()},m.PROVISIONAL_RESPONSE_INTERVAL));else if(e>=200&&e<=299)switch(this.state){case b.STATUS_PROCEEDING:this.stateChanged(b.STATUS_ACCEPTED),this.last_response=t,this.L=setTimeout(function(){s.timer_L()},m.TIMER_L),null!==this.resendProvisionalTimer&&(clearInterval(this.resendProvisionalTimer),this.resendProvisionalTimer=null);case b.STATUS_ACCEPTED:this.transport.send(t)?n&&n():(this.onTransportError(),r&&r())}else if(e>=300&&e<=699)switch(this.state){case b.STATUS_PROCEEDING:null!==this.resendProvisionalTimer&&(clearInterval(this.resendProvisionalTimer),this.resendProvisionalTimer=null),this.transport.send(t)?(this.stateChanged(b.STATUS_COMPLETED),this.H=setTimeout(function(){s.timer_H()},m.TIMER_H),n&&n()):(this.onTransportError(),r&&r())}}},{key:"C",get:function(){return b}}]),n}();t.exports={C:b,NonInviteClientTransaction:S,InviteClientTransaction:E,AckClientTransaction:A,NonInviteServerTransaction:R,InviteServerTransaction:w,checkTransaction:function(e,t){var n,r=e._transactions;switch(t.method){case _.INVITE:if(n=r.ist[t.via_branch]){switch(n.state){case b.STATUS_PROCEEDING:n.transport.send(n.last_response);break;case b.STATUS_ACCEPTED:}return!0}break;case _.ACK:if(!(n=r.ist[t.via_branch]))return!1;if(n.state===b.STATUS_ACCEPTED)return!1;if(n.state===b.STATUS_COMPLETED)return n.state=b.STATUS_CONFIRMED,n.I=setTimeout(function(){n.timer_I()},m.TIMER_I),!0;break;case _.CANCEL:return(n=r.ist[t.via_branch])?(t.reply_sl(200),n.state!==b.STATUS_PROCEEDING):(t.reply_sl(481),!0);default:if(n=r.nist[t.via_branch]){switch(n.state){case b.STATUS_TRYING:break;case b.STATUS_PROCEEDING:case b.STATUS_COMPLETED:n.transport.send(n.last_response)}return!0}}}}},{"./Constants":2,"./Logger":9,"./SIPMessage":21,"./Timers":23,events:31}],25:[function(e,t,n){"use strict";function r(e,t){for(var n=0;n1&&void 0!==arguments[1]?arguments[1]:u.recovery_options;!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,e),l.debug("new()"),this.status=u.STATUS_DISCONNECTED,this.socket=null,this.sockets=[],this.recovery_options=n,this.recover_attempts=0,this.recovery_timer=null,this.close_requested=!1;try{this.textDecoder=new TextDecoder("utf8")}catch(e){l.warn("cannot use TextDecoder: ".concat(e))}if(void 0===t)throw new TypeError("Invalid argument. undefined 'sockets' argument");t instanceof Array||(t=[t]),t.forEach(function(e){if(!i.isSocket(e.socket))throw new TypeError("Invalid argument. invalid 'JsSIP.Socket' instance");if(e.weight&&!Number(e.weight))throw new TypeError("Invalid argument. 'weight' attribute is not a number");this.sockets.push({socket:e.socket,weight:e.weight||0,status:u.SOCKET_STATUS_READY})},this),this._getSocket()}var t,n,s;return t=e,(n=[{key:"connect",value:function(){l.debug("connect()"),this.isConnected()?l.debug("Transport is already connected"):this.isConnecting()?l.debug("Transport is connecting"):(this.close_requested=!1,this.status=u.STATUS_CONNECTING,this.onconnecting({socket:this.socket,attempts:this.recover_attempts}),this.close_requested||(this.socket.onconnect=this._onConnect.bind(this),this.socket.ondisconnect=this._onDisconnect.bind(this),this.socket.ondata=this._onData.bind(this),this.socket.connect()))}},{key:"disconnect",value:function(){l.debug("close()"),this.close_requested=!0,this.recover_attempts=0,this.status=u.STATUS_DISCONNECTED,null!==this.recovery_timer&&(clearTimeout(this.recovery_timer),this.recovery_timer=null),this.socket.onconnect=function(){},this.socket.ondisconnect=function(){},this.socket.ondata=function(){},this.socket.disconnect(),this.ondisconnect({socket:this.socket,error:!1})}},{key:"send",value:function(e){if(l.debug("send()"),!this.isConnected())return l.warn("unable to send message, transport is not connected"),!1;var t=e.toString();return l.debug("sending message:\n\n".concat(t,"\n")),this.socket.send(t)}},{key:"isConnected",value:function(){return this.status===u.STATUS_CONNECTED}},{key:"isConnecting",value:function(){return this.status===u.STATUS_CONNECTING}},{key:"_reconnect",value:function(){var e=this;this.recover_attempts+=1;var t=Math.floor(Math.random()*Math.pow(2,this.recover_attempts)+1);tthis.recovery_options.max_interval&&(t=this.recovery_options.max_interval),l.debug("reconnection attempt: ".concat(this.recover_attempts,". next connection attempt in ").concat(t," seconds")),this.recovery_timer=setTimeout(function(){e.close_requested||e.isConnected()||e.isConnecting()||(e._getSocket(),e.connect())},1e3*t)}},{key:"_getSocket",value:function(){var e=[];if(this.sockets.forEach(function(t){t.status!==u.SOCKET_STATUS_ERROR&&(0===e.length?e.push(t):t.weight>e[0].weight?e=[t]:t.weight===e[0].weight&&e.push(t))}),0===e.length)return this.sockets.forEach(function(e){e.status=u.SOCKET_STATUS_READY}),void this._getSocket();var t=Math.floor(Math.random()*e.length);this.socket=e[t].socket}},{key:"_onConnect",value:function(){this.recover_attempts=0,this.status=u.STATUS_CONNECTED,null!==this.recovery_timer&&(clearTimeout(this.recovery_timer),this.recovery_timer=null),this.onconnect({socket:this})}},{key:"_onDisconnect",value:function(e,t,n){this.status=u.STATUS_DISCONNECTED,this.ondisconnect({socket:this.socket,error:e,code:t,reason:n}),this.close_requested||(this.sockets.forEach(function(e){this.socket===e.socket&&(e.status=u.SOCKET_STATUS_ERROR)},this),this._reconnect(e))}},{key:"_onData",value:function(e){if("\r\n"!==e){if("string"!=typeof e){try{e=this.textDecoder?this.textDecoder.decode(e):String.fromCharCode.apply(null,new Uint8Array(e))}catch(e){return void l.debug("received binary message failed to be converted into string, message discarded")}l.debug("received binary message:\n\n".concat(e,"\n"))}else l.debug("received text message:\n\n".concat(e,"\n"));this.ondata({transport:this,message:e})}else l.debug("received message with CRLF Keep Alive response")}},{key:"via_transport",get:function(){return this.socket.via_transport}},{key:"url",get:function(){return this.socket.url}},{key:"sip_uri",get:function(){return this.socket.sip_uri}}])&&r(t.prototype,n),s&&r(t,s),e}()},{"./Constants":2,"./Logger":9,"./Socket":22}],26:[function(e,t,n){"use strict";function r(e){return(r="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function s(e,t){for(var n=0;n0&&void 0!==arguments[0]?arguments[0]:{},t=e.anonymous||null,n=e.outbound||null,r="<";return r+=t?this.temp_gruu||"sip:anonymous@anonymous.invalid;transport=ws":this.pub_gruu||this.uri.toString(),!n||(t?this.temp_gruu:this.pub_gruu)||(r+=";ob"),r+=">"}};var r=["authorization_user","password","realm","ha1","authorization_jwt","display_name","register"];for(var s in this._configuration)Object.prototype.hasOwnProperty.call(this._configuration,s)&&(-1!==r.indexOf(s)?Object.defineProperty(this._configuration,s,{writable:!0,configurable:!1}):Object.defineProperty(this._configuration,s,{writable:!1,configurable:!1}));for(var i in R.debug("configuration parameters after validation:"),this._configuration)if(Object.prototype.hasOwnProperty.call(A.settings,i))switch(i){case"uri":case"registrar_server":R.debug("- ".concat(i,": ").concat(this._configuration[i]));break;case"password":case"ha1":case"authorization_jwt":R.debug("- ".concat(i,": NOT SHOWN"));break;default:R.debug("- ".concat(i,": ").concat(JSON.stringify(this._configuration[i])))}}},{key:"C",get:function(){return w}},{key:"status",get:function(){return this._status}},{key:"contact",get:function(){return this._contact}},{key:"configuration",get:function(){return this._configuration}},{key:"transport",get:function(){return this._transport}}]),n}()},{"./Config":1,"./Constants":2,"./Exceptions":6,"./Logger":9,"./Message":10,"./Options":12,"./Parser":13,"./RTCSession":14,"./Registrator":19,"./SIPMessage":21,"./Transactions":24,"./Transport":25,"./URI":27,"./Utils":28,"./sanityCheck":30,events:31}],27:[function(e,t,n){"use strict";function r(e,t){var n;if("undefined"==typeof Symbol||null==e[Symbol.iterator]){if(Array.isArray(e)||(n=function(e,t){if(!e)return;if("string"==typeof e)return s(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);"Object"===n&&e.constructor&&(n=e.constructor.name);if("Map"===n||"Set"===n)return Array.from(e);if("Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return s(e,t)}(e))||t&&e&&"number"==typeof e.length){n&&(e=n);var r=0,i=function(){};return{s:i,n:function(){return r>=e.length?{done:!0}:{done:!1,value:e[r++]}},e:function(e){throw e},f:i}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var o,l=!0,u=!1;return{s:function(){n=e[Symbol.iterator]()},n:function(){var e=n.next();return l=e.done,e},e:function(e){u=!0,o=e},f:function(){try{l||null==n.return||n.return()}finally{if(u)throw o}}}}function s(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n4&&void 0!==arguments[4]?arguments[4]:{},o=arguments.length>5&&void 0!==arguments[5]?arguments[5]:{};if(function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,e),!r)throw new TypeError('missing or invalid "host" parameter');for(var u in this._parameters={},this._headers={},this._scheme=t||l.SIP,this._user=n,this._host=r,this._port=s,i)Object.prototype.hasOwnProperty.call(i,u)&&this.setParam(u,i[u]);for(var a in o)Object.prototype.hasOwnProperty.call(o,a)&&this.setHeader(a,o[a])}return o(e,null,[{key:"parse",value:function(e){return-1!==(e=a.parse(e,"SIP_URI"))?e:void 0}}]),o(e,[{key:"setParam",value:function(e,t){e&&(this._parameters[e.toLowerCase()]=null==t?null:t.toString())}},{key:"getParam",value:function(e){if(e)return this._parameters[e.toLowerCase()]}},{key:"hasParam",value:function(e){if(e)return!!this._parameters.hasOwnProperty(e.toLowerCase())}},{key:"deleteParam",value:function(e){if(e=e.toLowerCase(),this._parameters.hasOwnProperty(e)){var t=this._parameters[e];return delete this._parameters[e],t}}},{key:"clearParams",value:function(){this._parameters={}}},{key:"setHeader",value:function(e,t){this._headers[u.headerize(e)]=Array.isArray(t)?t:[t]}},{key:"getHeader",value:function(e){if(e)return this._headers[u.headerize(e)]}},{key:"hasHeader",value:function(e){if(e)return!!this._headers.hasOwnProperty(u.headerize(e))}},{key:"deleteHeader",value:function(e){if(e=u.headerize(e),this._headers.hasOwnProperty(e)){var t=this._headers[e];return delete this._headers[e],t}}},{key:"clearHeaders",value:function(){this._headers={}}},{key:"clone",value:function(){return new e(this._scheme,this._user,this._host,this._port,JSON.parse(JSON.stringify(this._parameters)),JSON.parse(JSON.stringify(this._headers)))}},{key:"toString",value:function(){var e=[],t="".concat(this._scheme,":");for(var n in this._user&&(t+="".concat(u.escapeUser(this._user),"@")),t+=this._host,(this._port||0===this._port)&&(t+=":".concat(this._port)),this._parameters)Object.prototype.hasOwnProperty.call(this._parameters,n)&&(t+=";".concat(n),null!==this._parameters[n]&&(t+="=".concat(this._parameters[n])));for(var s in this._headers)if(Object.prototype.hasOwnProperty.call(this._headers,s)){var i,o=r(this._headers[s]);try{for(o.s();!(i=o.n()).done;){var l=i.value;e.push("".concat(s,"=").concat(l))}}catch(e){o.e(e)}finally{o.f()}}return e.length>0&&(t+="?".concat(e.join("&"))),t}},{key:"toAor",value:function(e){var t="".concat(this._scheme,":");return this._user&&(t+="".concat(u.escapeUser(this._user),"@")),t+=this._host,e&&(this._port||0===this._port)&&(t+=":".concat(this._port)),t}},{key:"scheme",get:function(){return this._scheme},set:function(e){this._scheme=e.toLowerCase()}},{key:"user",get:function(){return this._user},set:function(e){this._user=e}},{key:"host",get:function(){return this._host},set:function(e){this._host=e.toLowerCase()}},{key:"port",get:function(){return this._port},set:function(e){this._port=0===e?e:parseInt(e,10)||null}}]),e}()},{"./Constants":2,"./Grammar":7,"./Utils":28}],28:[function(e,t,n){"use strict";function r(e){return(r="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function s(e,t){var n;if("undefined"==typeof Symbol||null==e[Symbol.iterator]){if(Array.isArray(e)||(n=function(e,t){if(!e)return;if("string"==typeof e)return i(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);"Object"===n&&e.constructor&&(n=e.constructor.name);if("Map"===n||"Set"===n)return Array.from(e);if("Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return i(e,t)}(e))||t&&e&&"number"==typeof e.length){n&&(e=n);var r=0,s=function(){};return{s:s,n:function(){return r>=e.length?{done:!0}:{done:!1,value:e[r++]}},e:function(e){throw e},f:s}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var o,l=!0,u=!1;return{s:function(){n=e[Symbol.iterator]()},n:function(){var e=n.next();return l=e.done,e},e:function(e){u=!0,o=e},f:function(){try{l||null==n.return||n.return()}finally{if(u)throw o}}}}function i(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n1?t-1:0),r=1;r1&&void 0!==arguments[1]?arguments[1]:32,r="";for(t=0;t>>32-t}function n(e,t){var n=2147483648&e,r=2147483648&t,s=1073741824&e,i=1073741824&t,o=(1073741823&e)+(1073741823&t);return s&i?2147483648^o^n^r:s|i?1073741824&o?3221225472^o^n^r:1073741824^o^n^r:o^n^r}function r(e,r,s,i,o,l,u){return e=n(e,n(n(function(e,t,n){return e&t|~e&n}(r,s,i),o),u)),n(t(e,l),r)}function s(e,r,s,i,o,l,u){return e=n(e,n(n(function(e,t,n){return e&n|t&~n}(r,s,i),o),u)),n(t(e,l),r)}function i(e,r,s,i,o,l,u){return e=n(e,n(n(function(e,t,n){return e^t^n}(r,s,i),o),u)),n(t(e,l),r)}function o(e,r,s,i,o,l,u){return e=n(e,n(n(function(e,t,n){return t^(e|~n)}(r,s,i),o),u)),n(t(e,l),r)}function l(e){var t,n="",r="";for(t=0;t<=3;t++)n+=(r="0".concat((e>>>8*t&255).toString(16))).substr(r.length-2,2);return n}var u,a,c,h,d,f,_,p,m,v;for(u=function(e){for(var t,n=e.length,r=n+8,s=16*((r-r%64)/64+1),i=new Array(s-1),o=0,l=0;l>>29,i}(e=function(e){e=e.replace(/\r\n/g,"\n");for(var t="",n=0;n127&&r<2048?(t+=String.fromCharCode(r>>6|192),t+=String.fromCharCode(63&r|128)):(t+=String.fromCharCode(r>>12|224),t+=String.fromCharCode(r>>6&63|128),t+=String.fromCharCode(63&r|128))}return t}(e)),_=1732584193,p=4023233417,m=2562383102,v=271733878,a=0;a1&&void 0!==arguments[1]?arguments[1]:{};return e&&Object.assign({},e)||t}},{"./Constants":2,"./Grammar":7,"./URI":27}],29:[function(e,t,n){"use strict";function r(e,t){for(var n=0;n=e.length?{done:!0}:{done:!1,value:e[r++]}},e:function(e){throw e},f:i}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var o,l=!0,u=!1;return{s:function(){n=e[Symbol.iterator]()},n:function(){var e=n.next();return l=e.done,e},e:function(e){u=!0,o=e},f:function(){try{l||null==n.return||n.return()}finally{if(u)throw o}}}}function s(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n1)return d.debug("more than one Via header field present in the response, dropping the response"),!1},function(){var e=h.str_utf8_length(i.body),t=i.getHeader("content-length");if(e0&&l.length>i){l.warned=!0;var u=new Error("Possible EventEmitter memory leak detected. "+l.length+' "'+String(t)+'" listeners added. Use emitter.setMaxListeners() to increase limit.');u.name="MaxListenersExceededWarning",u.emitter=e,u.type=t,u.count=l.length,"object"==typeof console&&console.warn&&console.warn("%s: %s",u.name,u.message)}}else l=o[t]=n,++e._eventsCount;return e}function d(){if(!this.fired)switch(this.target.removeListener(this.type,this.wrapFn),this.fired=!0,arguments.length){case 0:return this.listener.call(this.target);case 1:return this.listener.call(this.target,arguments[0]);case 2:return this.listener.call(this.target,arguments[0],arguments[1]);case 3:return this.listener.call(this.target,arguments[0],arguments[1],arguments[2]);default:for(var e=new Array(arguments.length),t=0;t1&&(t=arguments[1]),t instanceof Error)throw t;var u=new Error('Unhandled "error" event. ('+t+")");throw u.context=t,u}if(!(n=o[e]))return!1;var a="function"==typeof n;switch(r=arguments.length){case 1:!function(e,t,n){if(t)e.call(n);else for(var r=e.length,s=m(e,r),i=0;i=0;o--)if(n[o]===t||n[o].listener===t){l=n[o].listener,i=o;break}if(i<0)return this;0===i?n.shift():function(e,t){for(var n=t,r=n+1,s=e.length;r=0;i--)this.removeListener(e,t[i]);return this},o.prototype.listeners=function(e){return _(this,e,!0)},o.prototype.rawListeners=function(e){return _(this,e,!1)},o.listenerCount=function(e,t){return"function"==typeof e.listenerCount?e.listenerCount(t):p.call(e,t)},o.prototype.listenerCount=p,o.prototype.eventNames=function(){return this._eventsCount>0?Reflect.ownKeys(this._events):[]}},{}],32:[function(e,t,n){(function(r){n.log=function(...e){return"object"==typeof console&&console.log&&console.log(...e)},n.formatArgs=function(e){if(e[0]=(this.useColors?"%c":"")+this.namespace+(this.useColors?" %c":" ")+e[0]+(this.useColors?"%c ":" ")+"+"+t.exports.humanize(this.diff),!this.useColors)return;const n="color: "+this.color;e.splice(1,0,n,"color: inherit");let r=0,s=0;e[0].replace(/%[a-zA-Z%]/g,e=>{"%%"!==e&&(r++,"%c"===e&&(s=r))}),e.splice(s,0,n)},n.save=function(e){try{e?n.storage.setItem("debug",e):n.storage.removeItem("debug")}catch(e){}},n.load=function(){let e;try{e=n.storage.getItem("debug")}catch(e){}!e&&void 0!==r&&"env"in r&&(e=r.env.DEBUG);return e},n.useColors=function(){if("undefined"!=typeof window&&window.process&&("renderer"===window.process.type||window.process.__nwjs))return!0;if("undefined"!=typeof navigator&&navigator.userAgent&&navigator.userAgent.toLowerCase().match(/(edge|trident)\/(\d+)/))return!1;return"undefined"!=typeof document&&document.documentElement&&document.documentElement.style&&document.documentElement.style.WebkitAppearance||"undefined"!=typeof window&&window.console&&(window.console.firebug||window.console.exception&&window.console.table)||"undefined"!=typeof navigator&&navigator.userAgent&&navigator.userAgent.toLowerCase().match(/firefox\/(\d+)/)&&parseInt(RegExp.$1,10)>=31||"undefined"!=typeof navigator&&navigator.userAgent&&navigator.userAgent.toLowerCase().match(/applewebkit\/(\d+)/)},n.storage=function(){try{return localStorage}catch(e){}}(),n.colors=["#0000CC","#0000FF","#0033CC","#0033FF","#0066CC","#0066FF","#0099CC","#0099FF","#00CC00","#00CC33","#00CC66","#00CC99","#00CCCC","#00CCFF","#3300CC","#3300FF","#3333CC","#3333FF","#3366CC","#3366FF","#3399CC","#3399FF","#33CC00","#33CC33","#33CC66","#33CC99","#33CCCC","#33CCFF","#6600CC","#6600FF","#6633CC","#6633FF","#66CC00","#66CC33","#9900CC","#9900FF","#9933CC","#9933FF","#99CC00","#99CC33","#CC0000","#CC0033","#CC0066","#CC0099","#CC00CC","#CC00FF","#CC3300","#CC3333","#CC3366","#CC3399","#CC33CC","#CC33FF","#CC6600","#CC6633","#CC9900","#CC9933","#CCCC00","#CCCC33","#FF0000","#FF0033","#FF0066","#FF0099","#FF00CC","#FF00FF","#FF3300","#FF3333","#FF3366","#FF3399","#FF33CC","#FF33FF","#FF6600","#FF6633","#FF9900","#FF9933","#FFCC00","#FFCC33"],t.exports=e("./common")(n);const{formatters:s}=t.exports;s.j=function(e){try{return JSON.stringify(e)}catch(e){return"[UnexpectedJSONParseError]: "+e.message}}}).call(this,e("_process"))},{"./common":33,_process:35}],33:[function(e,t,n){t.exports=function(t){function n(e){let t=0;for(let n=0;n{if("%%"===t)return t;l++;const i=r.formatters[s];if("function"==typeof i){const r=e[l];t=i.call(n,r),e.splice(l,1),l--}return t}),r.formatArgs.call(n,e),(n.log||r.log).apply(n,e)}return o.namespace=e,o.enabled=r.enabled(e),o.useColors=r.useColors(),o.color=n(e),o.destroy=s,o.extend=i,"function"==typeof r.init&&r.init(o),r.instances.push(o),o}function s(){const e=r.instances.indexOf(this);return-1!==e&&(r.instances.splice(e,1),!0)}function i(e,t){const n=r(this.namespace+(void 0===t?":":t)+e);return n.log=this.log,n}function o(e){return e.toString().substring(2,e.toString().length-2).replace(/\.\*\?$/,"*")}return r.debug=r,r.default=r,r.coerce=function(e){return e instanceof Error?e.stack||e.message:e},r.disable=function(){const e=[...r.names.map(o),...r.skips.map(o).map(e=>"-"+e)].join(",");return r.enable(""),e},r.enable=function(e){let t;r.save(e),r.names=[],r.skips=[];const n=("string"==typeof e?e:"").split(/[\s,]+/),s=n.length;for(t=0;t{r[e]=t[e]}),r.instances=[],r.names=[],r.skips=[],r.formatters={},r.selectColor=n,r.enable(r.load()),r}},{ms:34}],34:[function(e,t,n){var r=1e3,s=60*r,i=60*s,o=24*i,l=7*o,u=365.25*o;function a(e,t,n,r){var s=t>=1.5*n;return Math.round(e/n)+" "+r+(s?"s":"")}t.exports=function(e,t){t=t||{};var n=typeof e;if("string"===n&&e.length>0)return function(e){if((e=String(e)).length>100)return;var t=/^(-?(?:\d+)?\.?\d+) *(milliseconds?|msecs?|ms|seconds?|secs?|s|minutes?|mins?|m|hours?|hrs?|h|days?|d|weeks?|w|years?|yrs?|y)?$/i.exec(e);if(!t)return;var n=parseFloat(t[1]);switch((t[2]||"ms").toLowerCase()){case"years":case"year":case"yrs":case"yr":case"y":return n*u;case"weeks":case"week":case"w":return n*l;case"days":case"day":case"d":return n*o;case"hours":case"hour":case"hrs":case"hr":case"h":return n*i;case"minutes":case"minute":case"mins":case"min":case"m":return n*s;case"seconds":case"second":case"secs":case"sec":case"s":return n*r;case"milliseconds":case"millisecond":case"msecs":case"msec":case"ms":return n;default:return}}(e);if("number"===n&&isFinite(e))return t.long?function(e){var t=Math.abs(e);if(t>=o)return a(e,t,o,"day");if(t>=i)return a(e,t,i,"hour");if(t>=s)return a(e,t,s,"minute");if(t>=r)return a(e,t,r,"second");return e+" ms"}(e):function(e){var t=Math.abs(e);if(t>=o)return Math.round(e/o)+"d";if(t>=i)return Math.round(e/i)+"h";if(t>=s)return Math.round(e/s)+"m";if(t>=r)return Math.round(e/r)+"s";return e+"ms"}(e);throw new Error("val is not a non-empty string or a valid number. val="+JSON.stringify(e))}},{}],35:[function(e,t,n){var r,s,i=t.exports={};function o(){throw new Error("setTimeout has not been defined")}function l(){throw new Error("clearTimeout has not been defined")}function u(e){if(r===setTimeout)return setTimeout(e,0);if((r===o||!r)&&setTimeout)return r=setTimeout,setTimeout(e,0);try{return r(e,0)}catch(t){try{return r.call(null,e,0)}catch(t){return r.call(this,e,0)}}}!function(){try{r="function"==typeof setTimeout?setTimeout:o}catch(e){r=o}try{s="function"==typeof clearTimeout?clearTimeout:l}catch(e){s=l}}();var a,c=[],h=!1,d=-1;function f(){h&&a&&(h=!1,a.length?c=a.concat(c):d=-1,c.length&&_())}function _(){if(!h){var e=u(f);h=!0;for(var t=c.length;t;){for(a=c,c=[];++d1)for(var n=1;n1&&(e[n[0]]=void 0),e};n.parseParams=function(e){return e.split(/;\s?/).reduce(l,{})},n.parseFmtpConfig=n.parseParams,n.parsePayloads=function(e){return e.toString().split(" ").map(Number)},n.parseRemoteCandidates=function(e){for(var t=[],n=e.split(" ").map(r),s=0;s=r)return e;var s=n[t];switch(t+=1,e){case"%%":return"%";case"%s":return String(s);case"%d":return Number(s);case"%v":return""}})}.apply(null,r)},o=["v","o","s","i","u","e","p","c","b","t","r","z","a"],l=["i","c","b","a"];t.exports=function(e,t){t=t||{},null==e.version&&(e.version=0),null==e.name&&(e.name=" "),e.media.forEach(function(e){null==e.payloads&&(e.payloads="")});var n=t.outerOrder||o,s=t.innerOrder||l,u=[];return n.forEach(function(t){r[t].forEach(function(n){n.name in e&&null!=e[n.name]?u.push(i(t,n,e)):n.push in e&&null!=e[n.push]&&e[n.push].forEach(function(e){u.push(i(t,n,e))})})}),e.media.forEach(function(e){u.push(i("m",r.m[0],e)),s.forEach(function(t){r[t].forEach(function(n){n.name in e&&null!=e[n.name]?u.push(i(t,n,e)):n.push in e&&null!=e[n.push]&&e[n.push].forEach(function(e){u.push(i(t,n,e))})})})}),u.join("\r\n")+"\r\n"}},{"./grammar":36}],40:[function(e,t,n){t.exports={name:"jssip",title:"JsSIP",description:"the Javascript SIP library",version:"3.8.2",homepage:"https://jssip.net",contributors:["José Luis Millán (https://github.com/jmillan)","Iñaki Baz Castillo (https://inakibaz.me)"],types:"lib/JsSIP.d.ts",main:"lib-es5/JsSIP.js",keywords:["sip","websocket","webrtc","node","browser","library"],license:"MIT",repository:{type:"git",url:"https://github.com/versatica/JsSIP.git"},bugs:{url:"https://github.com/versatica/JsSIP/issues"},dependencies:{"@types/debug":"^4.1.5","@types/node":"^14.14.34",debug:"^4.3.1",events:"^3.3.0","sdp-transform":"^2.14.1"},devDependencies:{"@babel/core":"^7.13.10","@babel/preset-env":"^7.13.10","ansi-colors":"^3.2.4",browserify:"^16.5.1",eslint:"^5.16.0","fancy-log":"^1.3.3",gulp:"^4.0.2","gulp-babel":"^8.0.0","gulp-eslint":"^5.0.0","gulp-expect-file":"^1.0.2","gulp-header":"^2.0.9","gulp-nodeunit-runner":"^0.2.2","gulp-plumber":"^1.2.1","gulp-rename":"^1.4.0","gulp-uglify-es":"^1.0.4",pegjs:"^0.7.0","vinyl-buffer":"^1.0.1","vinyl-source-stream":"^2.0.0"},scripts:{lint:"gulp lint",test:"gulp test",prepublishOnly:"gulp babel"}}},{}]},{},[8])(8)}); \ No newline at end of file diff --git a/wiki-images/example-comp-1.png b/wiki-images/example-comp-1.png new file mode 100644 index 0000000000000000000000000000000000000000..fdf37a7fe109a888003e4286280d6cbf84c63e49 GIT binary patch literal 8256 zcmcI}byS;M({G@`i?z5VNR2i~i+hj)#jUuzTY%tNpv7CDc+uje6p9otloWS&C%6Td z8_qfRoU`8h-haNez9(yE&olG;&7PS(PqMP}R#{P+5T6Dg000om%1ElB=PUHk$Hhj! zJ3KMEhn|3zPz5LeP#!~YX^e%w2b;>MDgXdp4*`IH5CGsDtqNEN0NgkLfDI!6Kp+VK zpma+6p(2DfWSeWrS|}(0SkW>r01M+D;0{{CK)(POG=N)gXbJENgZ6J(731+=7)$^l z%o+gv3!{UcZ?9PNxaIsg1K)=NaL{+RamHq1{Np_n^Ka%==AFM~eKZaLRg;jFMbB!c zF6QPAu2zmPWn2m!Qwt7c~c{{ey73NvXbD1#*&UChBeY#eMH zOd|MTFj&aN%tAm_^5tK2^qnx16%6Jiz|QXB;lbwdg3ZyzlAV*EpP!xMIs5bH5Htef z>gfP8hC>`&ng4Y1fBi_ByPCRKJHf0S9l*DKjZGZgV8TpHw+sD!{TZh@-1?uD99;iO z3!NbQt%aSFjf4Ha(O}jV{~y||)gJ7xgw}0abHXM?1IMl503v!$i=D{WtZ0vb6u9iEwgp{YCn>_CFa~ z|CRA??SC?qT&&TBFuo1#ws?Pp^>5u@cp>)NR{2-!{Mna(Xwi)+f-l7Wcaw|YlP~^2 zKaaF1SxKlm9AjG_&xd?uM0Dbgwv6~aaZJ1rde#W0$wgH?xl)L|b1N&D)ek@0St5%( zk9ChRQCK*$c6iay z-JR~e+kLrqy~}?x?fOWhqoZSlg$WlIvj-bv&f+llATuZcoJm45C?`PzOrgdUKessk zx#En4!ProV0nJQi1m`+hu>*S0p2$k!!pTL_J~h1fqk$ zz*W~s%R5-KW9<=dpSq%o`awz~qjuZ|XI@Rzn z6-h}31>d|>#Kly&kHP3W2=C z8~ArN?&$sr21>pF@uO=;mx>=?g^c>%Wf+<_9%{`Xoj4J&{-&VEfm2B z3F;U_NGA{y;MpkCXRvZvj4QwpWnZkEP|Odz^BSb1d24)JpRRKc)?to@(VD>|siaN_ zatx2Q#o4>HWex477mAX`dj0thRcwZSB>b4ojAK`mGS5Sl5z40o^Htw$oE$~HRWq%O zIL}%X`Zy*_9M$MB?BRHF_&?ecP^1bDBbM?o>3?tv64}! zxQ|bAB<1h3o6E0bD>+-^-oxe@pJR=es(goec(O-xPS4H<`?N8{Sf3WJPi@bou_$?xx!gh={Xr#trt0zP@6 zuCNmwynZ!KImhl*;0s)#2p$zJzsNHWN+!?5W6Y1=zshwI99ACxG^UDHrirkaP@}a^Uwox_ciAL zMjS4|%IHKY#iyc{vumrLY`Ab(N^%U+?-eMhKRtK8Q8{-uJolU<5SZL#+m)rBI6K;o z!PyYD!(jCGuvSW+sx}@%ghiW~4e>PkS!>sZ77kR&?sMW(*4I^b(@plCXf#JJp34A4 z#{x3w3r*{^Mlu3yH8eCzvngHc3fw9ZLn7WC)l_$<`LMFGWxY0rkS|=E$bVL-+xjl% zBhR9sQ2RmPkxOvJZ`mEbYawqe`>9k5epA5^9N*qH(&0kik`1lyWU=$NWf0ySPemdDS;loCG!g_Vx>9Zbv&R6yH ze4}_gdA#8_V|95|t*S0*RciYaD&){0%$?52A+c z(JV-*7qe8tn+L`Tu@q1)*Gpm84al!hF)Og{o?+x}!{d)I2c@AJXYnB|tiBLzQIA1i zpsL`947&xP-XRZ*pUmu?cbf8s7_xA8VDueReKFaAAKgo(;LE?ZnpZ?OWp)+)`c+h7 zKDXGU9<-$s;l&VmY>p=;)*q1Yd*wGZHHt#u`+i{|(i85^Dn|>E&UWPP%~`Di!+1j= z$7+J1JpCO5SPDaKw3Wut)Q&*Bu@I1EB>N)+la(#5yewZJkHd_T?~ezA-#?yY?kT6X z+AqlEAU#Yi$CI~W=G2DzjTO4JDs__mH1!6P{dm`(Zwx#!81dfS{qosEM5iniKS?S; z=%U#%!IbnuZM8J}8-D7;3-=2Q7Eh^rCd^1je+FZcFQ@WP?8kq^@NDx*YN9q@T_rm; zV=pUE@7tc+bTM=~XO=?&zoUJnt*=h%60qyezd68$n&s5BVSemF&*Qn5yxsdy2Q^cL zmTSNS>|&#n7WtLPSV_nkgkp(wIkGt zxAokD{5h6~vJ*D;=|v%t{p{h%z?EG`lKEX-AsxIe!S_=Bx<5jnE3FPiX{K2+lP>`x=QmTgP9YFXHKEhXg@d(Q3f%u9rNwQ8c<=RMT1uYnD?%Dnm&<(V}8 zg2Mmhr}~WS@R-mGy89zrTw5b~pIeBid53U)&dg>ge(qjbn-)ljSK5Hbj(4G(jW_JR zjSJFl4P>K{R0#3cj+gsE-I`qB*q;fPZaat&>=N_ikcEv|r%1(3UQ+|^9aB^-V|&qr zlCpem4?dOaTGY{H8u^c!nd9KT8>NN3`%Tl85$@$mz;vu!Ig=8Rys9z1Nqth?M~c1| zYUgHG#OJZIH(R*2=Cb8_|phvPgCUb8cM~Y@GNaM>`egCASLZuWZN_&TUg9Xquo!^Dq+7QU#||I zqQ|2P{E8VXTIJSLL&;tlp3YZrCj>F>*O5W&CP~-a`Gqhw26s8UF8p{5pVM4>|Rhrl3GX~@V&Y>$X(cOecsVjO?6f(_;k#H zMEMg)Y%;EZL5JPFDS&xWL z{0}=VQ)OzRFl@nNdbL$Lc|9cpx`eU2pSBL3ufC*2yr9q_vJ`k&FS2Xny|<2+uiYE( zRMOOw`L!a{Xx8S;xR10!*EYgh4H8HPTd|g%N9sVFYDPxbV2$wOD65vq&@$fLEZcJr zP1%AwfyRBJmpJCK4(I#e9>X&YNU`e2ndmn<)5h>CS_P^J}MQ(qlghDGG? zZHyPtltx9SjJuQb^R35|*v9((`Z%YC$8JLHI!4&ZpHm@m(aIcU$k?|gBIL;kHT6>M z4*AmO#xxEse6S>BLJFfkq}ZMJ`E@gG@&u;k2Eh!H(lAgd^dUz1O0RjduU^J2@N6pO zkF2FY1CM*IlassFWsfJOUAFVuBe9>UhUm`;tgE7?J|*VS1z6G=v#N@w)>R!V?S9eO zEWjc4G`#tWU_*Ea67^4>^%aE%?OzQsJ7#@cEBn^NpT%xl3-|v+egm1|SI>4SKJ*2xrY+5~5>dREg8MwYa@3QXw#!cyhSDn~n zR92bTR>j@>D18+P3BTvmJGtIRzv7ia1Y_~#7gvqotz2}DW*Js(rf+^zMIiLij|UhS zRkvpGBUBI*m&^aTM@>c*Ch8Dwvng=irlwgnOt6O6en^sJ^#L*d*$>9Um8rI6Hn@g! zyj`R;GP(E*9FC>NtwRzX%j^!{dwE6!m0 z1yRWgjaNzjta78he8^BHQyKzBKZ(V(QCYc|ML!Ab)Ct3O!WVsEN^MM|9I*p9D)*eC z+WzTtb-rWBl^b^KCyX*|_cc8ydRU{~I9WNxm-gNzY{M-o#8ogD?kDUv*~+#1Mup39 z@bS{oHm^Yo=hf2iE~rAyh7?52tN?`y9)G4aFIO`#s3_Ut9Xt9ixE6J%?U_}XV0&tr z^D?;GuEI#?!0~=qG4(rTk&k}$pUYDYxy|P6cnn7??#x_m27WJsnx!81%r9Tuz#MGG zSf`tTZNrvkQyKSP>ukh_(Kk-v5#P-^W1lXY{6$8@JbKWiG@Uou)~OvcVB0ra{9(Ha zqC2^|A6GN*ZLq9->dj2l=wY+L%1A|Q{x?Rk)$6P#E^&F%b>r*sws@>hs-irQ1>;}i z&I3<#G}Nh>4)%U>-n^UD>k?Jya^d90aTGpiajp&$4Dh!fhbFm3M-b(Ux{Pl;(4X4O zu59Dd4{y6)EA=vbZKj$?J%xfmPh`2)o*ryQ=3XA`4R>9Xp{xzB+Lq0!1&yAvF?d=t zW;vViVRo6L(jM_E3AD6M=X*1mevkwU0$;am$~7rp?3@Oph(Z3f$)OzOj4^lX0{y&a z^6IA(nD0#}xk`QNjVCi)lEtaoe07{3gCYSa~e5yX~R>$Vig9WWmeW9ThUO4){^(qlGav_0(~`ML3s z*jI*%p}u-Uv|jJThTP?C!S_1 zSneC&llJrh@u+vVX)ZS8s?@ew*VPN2_0(LnjqQ4 zbxX~iBVqDmJ$_9VNm-jO5id*^Y)sFU^1WSb8>ICJ@$DE6` zwciDpTr-u-^A0@%CdeV=LRS_EhcPi&Nk~dW&{p4mXhaF1I7#lPrJ#va`opMg7&bi zb)Q)F@m8)CKd9W@G*^e)QKok&A)OrOXqD)N}x4%2(*ZH_xJyE1Q!4Y|oi zswpO!xF2lKBl#`WWTPEO%|9&WjA)(Bm!Au!b0iY25%ZhSbPWViNRJ&z((L5mTnK*^ zvliu*hvClNvl=F)}DY zz391iaMrK(HCXc-%oQzrl+Yd2EEOQ8q46MroKo3SmekzNur(s*Co&z&@i0us2U#AU zAMgM88S?o<|HoKiQu{RcwEHu%=MfI_{-pJkwOG(*SKP0R>OE~?RnqaM5%b_zGBRL) z|7R}vD^`f-2ZcqMMfgN)hp{6pxhK<`2`N|@g24EgPQ8JH9fo`(SAvn|)?Y`wc-^J=CmD=Y6#Av%?r6qldES-ZLl>bLHmVUtzxlVrA^ zXf=fQVg&t`BQXSR_KJxH6%&ccl*PR-1cE=fsAh1B=d*1AJ@cT+(M zGLA1LjwAH0mFQrzF)A1>Bp@9gTzQOSAvnauJ+*vAjr8Ut z%R$9s_syskUE(ykHkVEBPj*g4?m8|e%e-cJX zl^`SFwY<3an8E#)HTMHNiDE?BH^2^c?%VOlp`!>+zwxluuty*Y3@+i$OoocjyrPM* zvyq`&1egwz0Owhjn(7)9`3Vzt_ zQ5>+`e`JA?6=#^=IxXFBZrN))>+vI_v3|VbQvlCg2s(5HLX1>v`wIpr+{`w^H71je z!IF}UOu5=&X1%EROLoTx!(6=k8EPOC$g|)1)6;r+g-{F4Afa`kewDWN_M%>(S(qm= z0aO=Hr!IBVwFoI!L9D7A;@fA!_V@yQvOSNFk*dAjrQ#O;sjq`y7Amw$^xouIbh)4a zjvZ9X$`v9b>ehKY;Sss*99ipw+wBocKLjI@M`hJ((2+8D+N=p_etX8A{>qg|#Yz6# zcQ$?s^vSRnIKZ6y6n!43%(AjinZDYcuC#A&Vzn4znSj>^`kIxS%i^`$aH4LXF5srx z%Wq{%;`i$vIjiq_f7ZJrxsPlbh}KX-H66e9Na_vvV6H6LebWm{ldphy)7bRj^~cH| zHPYTQP)86sD4)GKeLcRcMN)u+DKz_fu71gBYQx3A$n|+l(}Hwo_t-2vvK5s?XPuJU zzszyMIF1w8gBU$LcZl8HnyAB?an%Gk>=~ zYyb(iO5{xK^X|VY*lUBb3aUsFP(rdoPWfmAS4qiz?zqxt!0qR~RZO1W7 zN1A>&JqzX(p$p=;;8cq77E6DDjbrH@eA#QQ9>{GOVvUHlkIELiaVaLhT$aE|7-ahhW(<;td%mnG$U7*veJDH?!_^V7zj z;E?{C$F6~Sk>hN=HvhiY$xdnZW(jvPcM~cNMMdhpIaZdRBOSvU1`?oof$UkP9Mm27 zUQ04-_%a_}k^BUJg>2mN|@d5R(8Ck=2LHlO6J0JC$x+ae-Etkfj(5`hu; z#Q${9SYx*{;VEA6j?tn-8mXa7*?gR6P=E(Xza;RiT#o{QL?U0t5{f%y4H%OfkrGO# zo@q&!#l(e@!}IFlI15$lKxIQ?Bn48g6H(lXlzD_!LKZdMTa6ZCiBz}`aZ2!$IM z<}r{hRkTF)+zi*;%&cHf&&p%_JI)#XTPrW=0+|%>JR^{c6sjlu8b<}{2OJS=m9X6; zHUooXh}A?O5QR9}YV4;N^ccXy!{5PRkfsj9nbgo7EK+E57p_%Q41`O>kLr`DkO+Lw z2!%n&cO>S(w_!wRH`k~iM@tX<9o5VbFC7MGd9P>X31j-<>U^Y?{nuWGk#c;vM`L&+ z=F(klipM5HtlIjNSb=Dumw$Q4^ZC?K)2j$DIUT++Se*+%ilGGuQ8&Nd}3Z*UfNnyLV4$iUlw OzGbBpCBKLp1^pj-**4$+ literal 0 HcmV?d00001 diff --git a/wiki-images/example-comp-2.png b/wiki-images/example-comp-2.png new file mode 100644 index 0000000000000000000000000000000000000000..e86a6ba8bb899c00f091630f5ec1c47c38298e4f GIT binary patch literal 8272 zcmZ{J1yoz<6YmYd-Aj?8rAQ$-#e)^M;O@mexKk(;FGUK)-3zopaS8NPjbTvcZ32O@tpHt}ZDjhmh*#u9lXLZq`n4wl~%C z2nB|-tgagXkUsvsKyomKLjVAy*=Xp%b(9nZ&7BxdiLwK;cc{{>Qz1SSx=>H7z zf8$75x|zG$IKyq69BF>XH8pc`hl|kB{XXdL>(4wby=?wD$>QB) zMT6VC`2Wy;TmGc|QP-cx3I7fzsA}V7X|E$?Yn0FH83ynkXj^&tIf}YyZp8`Jaq`YyZnoakW7- z!t{4)znk|*TL0GlRD4=rLaMKOgTe-F7RCdq0e;`>O6A}1xT;RV_= zMDx;=CKcTdK9y%em5pbKK*B_VC6jjdE@a3(J}HGw@@ED~^@aBGLf%UnL} zO?>N@=&HU}wjQw1M|6l!Hkaf_Z&qpnG^!5-m%RoHF!yY&jtnFPC|H)ZlIJH4x-G0| zeg~oRm=xCZGOLC)mOZwyJTW-;OmYKEP&`=PrX!Kq!IXX{P4WY3Y2L%EYWi$6Um#mR z)dg3B&m$d4Q{R*IF6i`O8hH6nJ8wTP8V{PmOGF)&N0g^bJZR~zQ1Aq^FT7wg$PQ7< z1aIccM`4>m>WBgbE#oT3DV=c;u(8{1IB%HJxetV+QS@^pDGglt1p%kLaD9l=z{&#I z!8?f}jWD-%-e(9%J|rF|;nvQK#-o~1BcpAL`xzAh4c7#=)U0uzZ3Ll~s{h)O9{^1) zBcPoynh53qsECs3yk{W&7i_R^87dae7WGs*G4stv)tzkx`eB)5y?bk{S!IdL8GQ&7 zw@?b<+p(?p18u|Aq3bM7dkt~X+3!C%Fkm8F&6>GpNIqaN1(PaX`_zzN(I_ z9P>7OdCSJf{IWhV!DqzgI?dqW7s$|ejF%;nyNv6bn=jm0^H4qV#y?@F9p9J<`dpPO z-ENSYgg8SQD&y)?G(Fw@TBI}Trw)8YobRqx;)=R)I?DGeR8n@oy2pOaDsbUm%4xnq zD%&khJzNITxc#5inmCt?*Xs+V@vQRc-JS8JosZm)v%KfoKj?k!IY#Z&Flb9DB3PSy zbbgwfbxxHhV`Q`mr{v4fQvX7t?!WNumnF{<_lxD{YB}Tec0yMcgA9?C)Q*lY2k+>; zYrL#%YElvLtX8g#n(mPr8}Jo;pLl1wuw(+uVxNa+I*YW0Blya_Y0+S##@kvctL4hm zc9dg&rG+=D^2sbR+IX!mHE=aLL*xKuq42HJpmgbBJB@Sk?4xVynR-N_RPXMv>rBaC z8+q5F<6E@la&#NeV>}aJVi}W;0T+pohJ^aePl#DU!4$X5Jij0VhXzvnH{qyqHpG0+JAIpB*E%N$ zX+95gDY1G`POBKJzQ4=b=i})p=|)=VZbKor{mF6u`5B|fjZeCf{!I*L1cf)wkBCF) zEML>B{mV6_(;oqbTZMep8gJY+@rQ0yS;Nov6su!)W?HcG$@5K+hc*+0=NF>-KhLKI zE7qm-Q0VdHY%1kiBxict)so1@U@8OgU}~QU9WhfXA@2(ZTcWa0LU9-#K?Ju=un(~n z=sRmkh5ABuJnWYXLufehP*LT&M_g}dvqmdbXc^|~T4c6H z8u~F_u?>IzB4UkQCeJcau_l?-COW~i!)2EI#v_?*vhAZ9Rp6$u|LvL)y%WT=TE}`u zTi*s-L0$D)OX;iH?HC7_RB^n{+_U*@^G6OgVueR?^bh^+95S|x-=F%2y?Jz0~lhw3_(0^0J0C%9JiQ}RI5 zn*CrB3WdjwEl?|Z^6ht)K5lcPc!57Qb>AQQR;f6yR*8`b#|WiLy|1IrEl)RCacXL{ z{KP?c+S-7l&`Iob@G<7O{>7L^e89;Xk{o#Ct*wo;T##&XAgEnhj&~gmzKx1;A&c8#b?k1nkh8qh zi_4TxP-5o!HY7`*b9|}YC1yVn!EKXLgWkWBY08p%#5?GGeoZVBXn$fVUhKM9tB1r_{qu+ zb%jq9Hd`$?k>tiz7DSU7BM(ra!vyxs3iT}CK35Gl7?KG?(LEY2bm1k{Sy~|>mz6a! zBo`_UpO^^o;)^n6U5+X5mYqT&yA4753bKcx>4;*K#S(xG#sk;d|mi z`HVd%@_2Bsk~gR^X^J&M9wd%}Yqov6-xqV*?{t(~E`Lv~X>-7rAz4bCO!ie(w`ee_ z9;xi5Ub~vjs7$P!Z3j2j#7+X7`E9<&r?GD~1R66imbupK=V7{8`m<52`K2humJ84F zH_Sg&W-lpcR@-8#H|GoaF35s?7HK|e$(+&FI|Rh2ou4HeTT`mw69~J72pT@15AbqP zeqxw??=aJ|bCQhNl}nzH@+Lw>(CJfHYMF>BJ7no0*7BacAlh zNVdz0t^D@@FS1&jNm&CbqCHJZ$297hQI}wIrcFN&6|3e zoG%5hP|1Stc=mW>X{p5dKiS%+;|%9*r@S?_LoU^ z3NsupJym39TkoIkd6)@=jd$oBN=ZZtOH-OErJo*zN#x>~vO0NsxU{Dq486j|Zx_q% z!I9t^@cB4C&A{>>}FNIf*XA_)kaUhc)$&~rj8{jTHf7BaCuEv#=UNwa60s$1GJ@;iHm$bzR;4hIuJc!SlpX=z5bUlc6PE?)93 z=}%}gfNM|IoB{~N(!+ZO!zS3rFHF51F5bT9Wyhh3-_Z1z zYCao_q`ncUD}`Lzx-~$qcM_bU>!u9nA^;!mmb)RfSN^oy25BTJBOU{VhR=mLlc68) zJn9>;Rvsm4Ss(tYAlY@8{R|84FK$g>R&l}a&_1Ciz(cD3JofyoD1|hDxzv=$DlHHLiBD7ui+)+;{7#@`Zdz%c9lyo0PuyQ3xE;zM063 zbuhCgmO1>!+rQX(lwVR7$H|5`1b2o z+4>A(3~-B`Ejo8tVrX7o!Lw1C@zkG}(lj#K+EfwvBP(!D+U=y_D56$93J7?eRJMVW zEW04Y^WaWB2pQTlr0Cq;k1t;9*r|f%?J%QEY)bg0bH7VR&6uaQrG;l7&(~heB)dQ2 z9qOAe9kccyM4lEzi7nX^l{H1sS6&_I;K!nY$&BnTUHb#Z9~dQTZnz-+n?;+DcvGFc zvuF^0#c}cd<~^4$XT|2g51qSZ0i4YRj*C>A?G$~=O0ks61-groz3$Z?zK9#nSJkk+ zAK!XEdVsCQ`6}btCs@n8cuWv7RW9_%FO^W;J_gHqrd+Rnt;WjOK9u^q z{9sx!+doN%K;jBrBO+7I?Q@Xq3^@VToQVHf#*bGaJlD^H|jC zs&_x~Tch#J;z+gX_Lv%lTf^mSarh?B&k_FV(!h>+gY~1In-F8;%_5yDxn=In;8d|K z$yC7;pzBa@0*;l|c?y()~EA2E;XZ0uQ}KW%&$ zJ9|}PemTPvO7+sxW-Y2cLdpF~zQSzAveQviotkQ$*d=c9chfp@+@@{oA?%C$SewOj zeAO}N)ul4ZPny0y;G~TCn7eU7i6jufa(e8Y%jDT0|;mmb_?`u7ItpsSz%# z5orxEse-GDld+MQTXA7{QPRn$xi05)@74!l;|VF! zDEp6cV|8j8Q|#NyODS5-w3bR6K?@%?p_(r39hs5y-+B5P;F+Td%JCocMcH(lBS;~7 zvf__)6TSIjYeolQ%FkJH95fS>i#2-<7d!_xfosV~vLI62^e>yIf~}(CRi=`QRV%$Y zC3lp!i3*O%NHxTV+9U-kWs&t4JCHnc`HDf?Ajk`zR($kR?Hl{edMp{8uZeE%zIVg-J@pqq+L}!qqygx z;U6LO@w+;!r0ePg3JY}SNGz*oEXvMS!y(AaNt}K7ngzuMaya9z)pGo$8I;QhoYfSC z@sI7~VVK^HB#}dNUf$knV}(k+b3G|H)64G-6D4Q1t!6aWlpYz0c1*ADJz#*^qOx3E z__mh@>j^DE{iilog7Ax53{TPd z(0D>VnK5?pg2clO;{jfgxXx0khS9KIR>80Au{3b)J8&0ZR*!WpEAmwIC+it4R)hL# zDz^mPtFW-6`?!IE6S#akB^Tp?mK)wN>58XU^l=I!okJe zbk@H6VO)5imxQ8&Gp={TwWII(J=n~gkRtIbd6G0ML^vvPo{5|OEf*ITIy4Oaboq=q zHwo#&*T@K49>V_7dG1p=Hc0Uk7(Ivm!6B)Tti>r#Rj$E)Js)^Vm|Y0 z;=%OtHy04gjcN^x-Tl_vYhA%Y7##j7J{bjD*w|w(nu*>Hd&X+J4?Ay@LkZKfYG$;t5U@j9yFM@^zep~qH(}q@tt5w8{ zR+<0?tO*o)a&sm6`UltP=ebFZ!d=rL#$-+0V-TbKb|4TW%*^cX@6XJ{6d@rgxt(TL zX}au6$&m#Do=Zz(EV0f?ASqyw4{Dj`=McX9TFc4FkyDYHj>IcQpXwJ9)z)Jxs`i5y zt&$HH8o8Oz$RR6Gcs^|e8lF$5tX9T}h$!@PqK*`Djjs7v6N-uDUMKgKF)=ljxjn3w ziNVstqmGt}R*8UNWo?aq+%SlQCPT!x4%kl@aNC-1aFfXBzT6snB!FV8e5{6};cGBv zsr>{^CwIfrIJaY7v18FhAs7!FQBh}4SyPqBW`cDfom~9j@*W+e0Z>8Tb+w1>U@CA- zW&-+o&tpOpL*deo#PVrPO>thWhe>q_Y{?`Q|9ZCz7h_RIkKU7SCE)xuIANIv*2Y1@ zFMB^k6SH&_hTa^wJ21tZjw9~k;*$98oh+pFCQ`>2_2OEM=cRqu6KeI_tD6Cn-MThZ?RVVfoiSG{U*E*2#K?i-eu3GVYG)z zX<{r(`|9FqlHK-Y%}yFMDrT=T1o57CFdxT6KZe}PI+)b-$Qf#x3#gWRkOoS!a4p8wi?Vo{e%U-yYW6gKQD@p$M1x$M}Pok053Ay z;-;z(D`*v6?r8z%tU#_Sh~&wS!tSW7yjXa{CRAx7$bfnky^8oSkYDbFb|l`lH0UWn zYNs~7h8{0&D=%?bpwM;C2e#8(U$H|0eUEQ-?hRU={Brq%tE_R;XO8yEJ*$(0VFsID$ItO-Vk5zrVmxE3%`3&M+mof^x2 zsep^a6^XRL3?c1xtAR9W0s;cM7&&pWqG@QDT^>XxKX@mCyRmuF1%TlM1tTjeE0e;A z5>)kEsw)%i6fs~N7<)OG{XAEyC!0Pa@%PzO9oR=;fw!gP#UavHDh``LnE1sF@$jn6 z4za7d>jNz9zV+U>(onF5Zam8^KB?FGHv% zQ0e{Fc!_$)mIZ35NV{!zT0`+kZ8Dez3J3$*rNyusBnxY_UKR{*4EubSOg+fl3c6gB zC_a9$D6OFjZor@{c;cZa+^}LT2pL;LEeJh3#MI_!wTliw`f`pQYTd!vN|^qP4o`v{ z8WyIrS%61kyMMISBi&Y}RYCW&F!&0K1*;sI1Hs*R3la9p~qzV*~^VI6rnjBGE+;K)+ zD9dX28GS(fE1Do&&ep@I4o$FJJ7{lNzv~iswCb0$+0obp--gl3dG60M16Zuw zSBW6v*r3wKET2o|+}d%`0P-7vK~@vcdQKx=lZ$H-)<{7{#^eJ$`~B1Wd4u$sUkJ*N z&NfU@P43bP*y?1YJSAMHVsTD3{d2=pf4ktSbinU z&zmQX^#EAL4UiAP@iemLK@X7cnP+L7bDKwrf7ranWVarrbnXB#>$-$mbm8qPl|!!2 zcAxOYbQU8+J9LmsnmiATK(ayPK~h!7gJ==r5!A1EP!2ajmo3oqAD43PZwU^75aY@q zt91$HSiw_LP#~H#1_&k%WEJCi@N+UwQ%g5;)dcQusGF1%uz0=OT7N$Ymy=eOs+2GZ F`9DAp@l*f+ literal 0 HcmV?d00001 diff --git a/wiki-images/example-comp-3.png b/wiki-images/example-comp-3.png new file mode 100644 index 0000000000000000000000000000000000000000..2272b615dff080362f4aa86c032068615a038a49 GIT binary patch literal 11182 zcmbt)byytB67S;fmY|D-;O_2(U_pZfcee!=*I>cjT>>Gv1SdeyV2ex8;4B^p{+66` z?>*mr_x<%|zuB&-u3vRkO-=XgR!6>3k;g(OMF#)?SPHLX)BylEMHu}S6&dy&Gi@~t zYY?p@l_ddy+Bl3m6C~I*(Cn4EG63LB4*&#)0suEKR^ToG;LZU6>>C3BLg@eiiF04=A&Pnf@2#KbTF3hWC1iIWfaAMN?@|3bnk<|F)z2E2vI0VFk~6%=5thMB8{ zg`=Cb6Nuy;+&PSa=KM<64FDj1@pQr|sMDPQ00<~HnmQmIWhEgqCkHkYb0<>^Hn4;9 zlOBKwSO`WsSb$7`UenPEHTB=H zzIo%VR*V)w0}nw=pn-pV%v*r?3P}C_u|4U#<8kt2n3q%A-z(U{nJIQ z=!J|32g97e!%-`;OC&M{2R@1E4s$;V2M3bCXm7YgO+1)RN#KM&YA{A>X?zWOGOg;f zYZPQJpY&;hKVAB`ucEtDT-4SH3H;+t*~v#vcz=5lB%$e<{=5B&E9^M>bxECWF^qK4H%E7;zp-<>b=Sq7jcITa|rqpo_$?cp7Lh3m_%oRXO<+lJMP7Ckj|g4zjvL}Qx{#gxcA4$B5dCiiSB)IPWE zK2&U#n@_@nE|)D9YmXW3`+gU{eND(Hfz|Ta*UJ@he0O)W91xA~wEW76oAQ9)uZ9%M z>l97vVLRQ)2HGU*cz}$I_@;x@v%(Gy9liM1(j_GGvk&AK+Yf`zVxdmcJ&veOQbix^ zoWd6e4?jWCOKzUB{(nW#cWMs?Lbxd~(pY#--&| zbBeGL#IJPN+c4_hv!MI}N9&2cOS;R@RI<6PzMVN*I8Xa{Rl^7pqJgk&%Kq2 z#Q5A#5!lrw{(_$V=CJj{Nr=#wxlPSauXPWEz9)G)YUHuW$f1vJglGYAr)g!$2XCXLsM2FE&p0Vi8R! ze#Uout?WL0?7_MkrBH*P8#?|~%=H4jW%*p5vR%H>cWqvGUkr?I5clB|ZGq3bDg+As@iNk>?VNDy?t%Ir zh69H$$ac5JM$6v~(M-3hDeKi)`czyxy~oVM?v)O9n}}ZTD0knytxOxHK$XRK4_S`8 zRo`6HS|*xm^UE!EpITL;x@d2Xs$4pYb7us9@l#0lOktKh@4ql}D9;}0wKaI-S_r&a zn-V{iW!-<75Z!U7y&SGLim9kJ*1~josuYfSdr%jQma5}}c z7R}-rfz9Ua@vLrn)3vVf!$Uyzo1A^3cMPFLWPh)KV$X28d=7Nn;2GQe<7MUEf2E{C_y6Q+0zu9CvT_k#My>1tMJ1bR6o zY4Fje!h~k7Umq2Zj>{VA=(FtqzFtz{Pw& z)GFgE>T}|5ZzmK!jUFl;ih;#KKg?%$O@bRbP2^P@}tuKBDWv|>^tt++l4^Vc-^`LKQKv^xI09r&=gC(APiB2(V z!=&rh_7wDzC`d9+ZnM8Wxmm0IXx_!pMc(e*Xn+R5&ci~N_N!AcpMH_+bG-&zyNd0C zYhU5k>KPTKLwC~C8GKSs8&2qAK(_6wM(#vLQBJ@6C&*piCb(Rv~s)?MXDDiLxg}7GB-!Le=8clsMny7`5zM5+*i7(c21 zcpIzzm~bWmuWxJ+ZFHs}-O46_Fy0ZCF<;Ge9q0 zgCBCn;&^KsYErV)k4nTEygK$%OJnTze)ofgTrPu|`aO1nHXG6$ViA1kY(k0Vv2D_X z6-kPih+gY0Ajpr`=KhGlNSitFTh=#7(M3ry+=GauM8fC18Iad_Fun9S`Y184x03f; zv|#h-%APxACRDg^^6tne>UEFdT-MbHmF-~MB}X#V!;Gl`XvE%+53|}$by!^1FtT%7 zDw&=X>@qNJXkyW5onH7OtgZuH)F8qHCj<+_>$ku{ukpF}{wmI!EV(N@d!D_7L=&Xx z+RvoZZ+2XSw2d$t2wy6wW~o5Ck>8fvbAB4GVJB|EEz#;mGhPZ)kXovqSh|8vOjm9s zh7s#^sN3w%*X5FCN=ctKrn8^xo9(pXmUI%wPdCUOT(B*TQ8q(_CaY{5a*9vg{A(lB zt@`V?MI)BxAcLcC+Vz*hTGRa>9Lg}%_Jc7hk$NVJN{E)$9OX!7E6geQ99)K-rZTXO zRiAHEn<^_4l&}qWtnYsYv2M2x2RjhuL@@d-P?lR9tje<#PJ7LF3fa=Xprc#(ak?Vm z#=oUNxwU6S5i66#;NBr9?pRD90Ren8c5q&?zKtDq>_N|zf;?)Y zIzZ9`>>Tw5keV32a{X@*dl0o@bj z=R(-p$_!l|c1{YUaKFSMD`&P#i6`|;)6zf3kP*9#Q4tYgwzmAl6IPu!rc-6ur};i3 z8%|kel^+vt&f!XgNB@g0hPwp{1|pxdh|}VS4=Ti@w1`)ZY)ga7XbqDiYIDg}WSOl7 z()S-|$wA?qE-SX4${*XACu_Ac=$V;&KOhd4>8#UX5l4L!j3unaP-0sYX*BIs@u_VL z2veqZ&X%a*<#nv5&0I6N2y?ruy~Ul`qUI`oAw12YJ_(6X#?tdQ9dCJ=(E$o6*_ySy zEfLmjvxu8H6`yIq_T#WgXtP~N-Qli#_l>fD1^QUx&tNF^Y{`>KWc@VUu7`*D3nWK3 zF`JJmpXAO_$%vQSRYPN;D)aPBskx4%caXI2cV`@t${OW8>a=_C1?1#prd&J78!OA6 z=(aZJ^#}i_45!(T^HAc-dCh@fo9MlO1=RQQ4tdr&7llQc1U& zl5=sJIL>Cu>*@?ZG*L$nrqO@^%Let&0YxBT2PA%*hfl$;rw%wP__FA%kr+zCoI zMpfc(!vXt~G#`rCCs-)!@8~T&o3WqoG~&;*ZOhEbTcmrl{H5AbHodxGok3m+*Z?9U1 z*JDzQ1pBF9OFcoaUHijo%1D7TyCzcPJ39g8pwAJDtn$9*i}M2iGb0=wnMmrvx$}UM zJpLm(%&qm)DU;{ma^v4CZoiYoJ`Xr(H$*1cI59$2gzWMSyuJ5OYCdCMp}1y1Uw7Hx zWre4pFsL5kdbfHReA+p_&=G~-gI}t|ce9QZkc;LKk$omX#)lM3%}Ru+@74EyS}(II z92!}_!&(OM$Fpvo(Wf?EdM? zNCb1r*s;jJ{lwFcxIlsDMdMR(Z^{PtKV6cFJ2zwKHhF&u8y=YRAs}Wdl({kgEz3(7 zy#f5er)reC7Cp5<0>S`^%<|fZNtFctd_r>e&%@8rP2lG^W ze4tW8Nxxy`H7%Yt$2UhO&!#V$KXXKp(WDkQWj!k=RHibY1)`xXMyo~lB0$X}JtQlT zuKnTUL1MZK&$GIEvlAR`hwo=eusMw6yacD)Ej4!BM4bdI#1; zuMfCL-ThW;hwU%*Z0jm}=;1V^lA!v7ZgU5*+3m?E3UTJLS*6N&O?}Z~I_WOw6ZOYJ z50zU7o=kNzCCH6TR*bqEmt!j@?;?Y2C+RftdA(14nHl+Hf(gV zK!lS)W{i58N7)Lr1O}F?J-MHuL6*-CXF|mDtQM3;xtt(+WHLX@hGOxYVyE2mgT~1x zM@V(4FLs$@xj0LlAADzz1hKtb@o}FGazu9DeXgLdN>@%vl`)KL8pP+Wxg^s$Fe@rF zBh)qRqLZH>7bPnAQ0JF*HsS|j1bz=wGB+!G9Q3H4zI=9}sl}99tahJQ5Tul?`vNVJ zd_INcs~|i`-C@+mo7T`r59ue(Aw6v(k%RiM>fm6BmmkZKaxmxNSO#(i_(zSjtialu z#rrjj`-nV@K1J-^8wRZPh1VE@675&qaUWfwjo-#*(h2oh3_+}=2D&>LO8|OOC!|YN z0rXSO@t_5L3;~^X)!P7{rDVm9cKfpl)8=pczGcup>Tz9c8c=>mn6kTuC=$VEiq`U< z>07q9%C&PoLa*$8FnEgcZK1}Oq^e^RV1g)&9Q`VE_oM4|G2)~!vu*Nf*I*VMV(`cXRoGt?kz13jF9P^Y($d-7t;INE*F z!5Ewd{=R6xfw|6XX?X~(?&NkYH)9UgVSNU#eNe}7xh0OXuYn-bJ763-A#!9oj*qv$ zkK8^DVVU2fi&8v0<1I@S+@-BU{j7r-V&L_}VlKHC{g`Lyr=lMCh=T_{RC(lbp*PzcLg_n2WiPf_3Y~G9%+3w>A_5y0e`&Q`{jerB zz%zX?z6wU3Y@cJ;zkT505^Z1=Xgan08B{@pS|Ep-AW2SxIhlC}vBl{PIXYHSC%7GL z1=5K`NE`Vk&Z_w7kDBq0UQf2qiO*M#|Tzag< zOTF8`%;ha98RzCNGuYpps`uM$kyjWnf-n2JxjjXXgH5kthNaxgr=MZ9W<9z7+S|x3 z0xZ^GrkJ+S+)5zvkb#kQ_^tWQfAL39TtH810JcV2bEl?TuM2{N>u$n@J%$q-%4J2Z zlbGGFurFU9PwbH^ZCxMKdB_Tjrag34Jt(sfS{kW1R0KtYYCNLKb+%p;)s~J(DpE|> z$B+iMxN)@D2{14A;S$y704ESf1%y23){^HEg-dhgx;e55b$F5CzL5}Fs*#^*C6+bK zfNbd%hfiF^`N4%z_1`X9Hps(&^Q*Fp61hwYWIP&n;-uEps1KpVp)DDZ1qds=kX%x3&w2JfTQN&{d zz58T5y8&(#;Uv2S>oGGyeW-4)aL^hYb*5T5fk~yJ@}=m4E_%*i+wo3L*4O7W*z)e) zI_!TtEzHapYO2_oC39*rQMIzn3OKQ4(~*IPRQmJYxUMkW?x{n~7+Y|R?5fW=Kke*2 z#AnWus)JMYJi><+Vg6;M| zJA-%{rBoHfP;9l4Gpsh)?1T3)FG&G&e5Zz;q$PR56E`}SR@dy)pd}Uq+zNWCe2DzB z;O@JIR|wowH5&=UzY#iBbLR`r5B1}T=aStMAKbq-f}IhsqN z?MDFOp}_8SE6>hy_y=3dzE+xwz9gWG^2m_B{S0RwR`2mA_0;{-#T3AWU~Ccy|AH-( zLG3tj5@RurdDn8^)K4rt^&4|@Db4F-(Xrwkh5UjwGsBQ7;eahFp1_?6TSl$#yq&5$ zOU_v#7brBDbwdi(lKw7QLoV?uIPA(cZ<{^%jYScy;ri?}hi|WUa9TBZ(4*)0gxd#I6MlmQ=EyNPO zKn(2J$YRiJ@N&k3$Wuly(*?8cWl-s7q=Q-S#P*ip&xIP;#kN{!COuZ>g16yVv*X^W zX}%RB^+wBRmPEb}9&bOPsu11cE;rcBe)1~Qdiye#3?n9$C3jKo{q-1Be|l!dplNq# z$M3A}=I&xkf-4-@YKle+xS?aO$V!DRpf}k%9ABsF43B3aMXW^gnUYgA{4uxNRzC<0 zj0xToyLGmV^^&`|%`oKTr7VrwyCHm)BqRT}$PrfN;nnWKN)kTKz;9wupL%CWG23BK zr0I4y$z~eZXuL()R=M1;G<*X#Mq#F(8UBg*oqKb2-`2v!+$_NVvlLF``QbFgwX3!? zcx+04erwdO|7T=Izfb9b*J5l=%Q92XPfXlu12Lca`Yl{hH#W$YuJn)NIs5wUyxz{3 z8i_WL-O}LM*k;DaI`$tho#8NI`p`8 zN_dEgIqW@~>-8;g{N61*8V2pBW<0j(o>QEcU(#SDK2R z_lnsHvV-|+vDXpqPJiNsJ79i_GOM87S0Z1`(RTepK%Dm8cqW;62xH7NK!LQEVtOcw zZ?Y=&p~$M9`@r3Twl^NVX}anzkj?BnPOWw_dVQ|LK;jm1Y&kkS$CVkLtn7uSw~W!Z`5<5d7}aZ48`TbGt>I;-xd+M% zTYo(_53||3+f$tTq?KxnfO2XI9Y<@=?{^Xr-lOzb>=^zqzQ4c#R*+ZKFU4tWN)o($ zt11^*=5cCOJt<^ZYrV6w3Cd`E%hDR1kR(WR?K_5k0CpnKpKl1>Ay&^h&JzCmy_VC7 z?(=ZNCsrC~1>F5c8}{phEdnVl3_r?$6@q!+u4<(yxG zfHo}nm|qDuYT&PTM~=0pe*FgT_az}UWT0+|-?jeO%83dC< z%f?jc_)=AtKgFn225;8B^%VD;`*vho|JrDlfG4lAK|7xor(t4=h)77k33{n$umI4g zW2qOtfa7472R>X9h>HkqI^@8FgBtToG1eu-IO6FaA&pu;8-F;Py|$vnu`rpL3rW_6!|>tpF)7xqg!JCt z54;am*K$sRLwT8g)#hWro0uk*XX0>8`;9{UkdbUpWDDxY_*>FULVR{!zVx z2eScR&e7IO!SDRAKN76;^o>98lGfH#cu{P-bfZ&9A77Qirr~L6rMcNu~)B>1+d+U@~F;u z9}OaXPMu@fmF^@K!5PSC@WFi8FO9&50xd5(me-qV^v189og8?i~)yU#%B+|MU+K4=}9e zgg{4oylTj2Y}n*c)w~x6u8rL)hXb|=hv+&(j8ZQsow~LwZ8h>x7Nz_=w7X@31iSG> zak%MoFLZCN%9HaGBhsSJJLKG|l$K}b=`pdBg0AH9C0 zXCV1LZ0tDF;tWkOJInR7CnU}3+~=eOHi*ovG_5vEbMH?u4KbdvKI(VRKj-J?>|Hu9 zFtjoJMjqg;T`FVpo>d#ES1;p82uT&%gE$%bwyO2RD#;+VhvWS)EiMcFAsyHT*9SknI%ZL0)P8C~#(=>gcWT%K`b zqbrCwfaaLW;wOaJMd4I;M=uFv#+6_>>iOAa5EO#t65m`8QkpF^34XRkZO_^k&=qgt zu?i>H1zdv*;=C)f7gE9wF!X2}o*LcPdBosNoeSc)2i)-Y9zCb>iPwX^o3G7LB3g|FW0?cXD*|`3Ca)J>vL@Neqi|VDx#Sx@x`ra{datw5;a&YaF7KN zU$6%##+NxpH7|q4`F2p8E$R*dp0P&aIXdQ$qF2-pg@>T8**oO>W!3WbsibHN=>dPcU;t+*3o=`KPpE zr&PY{$KTx{R3d3{-L}4G;U-hFQH51Uxp3fOxh*bfAGY^K@5XC}Jca-(#EkFK5w;1w zMDwbGzvKnVcnj}|#8y~wc1<5K*>s4M#x4z&y(jzkmoEac>4I+C#o2-xuLM`P*e;o_ zch*v(;9VJROT?FW?ge8u1*8|aH#2zde|HrhW|lVhF`Dl!>9bos)vMX@UeRzqgnaEL zCyall7W|b_{0%!c^_BcWge;aE>=#VJ42IT276Iz;rVB?l_r0IHGE2`woCD8>O}Q z0+j#}4H7y(q+vm76l;#=*)Gmq8}X-%-zfu-$w=>RlH0;l)tf)w|0UBpXn35{<}vy0 z1Ib6w9)z&(=d7@H_2~ zL2UJB&1^=ccx~Qh9!+X^{zw5S8A)R_S`mr*ng6_JfdC(0s-U1iv&LAmbu(6YTI`@; zLbjZN;Dsr-8cF8ISvrh*eu}*hBuTUUT06*s^G$rlS=aq-d1EwG*wGb+1Cer;rXF6FZOQeg8g2Jp1i=&L7>(5uRxkd7ErEWW8xfH2`pypLJEDS-<`;a$6 zX2B^#1ijYaL6Z-N>nTiHuWj-sglgk(Am5^hG*&>?`4cQIn2Vgeik{-bF4S0l5}oM3 zLOFP!)je%&V37p4wQZ&|#5w3n$^I4(>U{S2oX9fn>f!!&Z@OHAXMa;QnU%{acUdzt z@~Ew4RsD41TZ%SnVTc@BA>wt=E7kfra(Gu6f04%^()OLU`E9gv?a!H{!B+=!aVpsY z1!D=_K~SJ3W-nCQMSfJhanL9Y$1#8Y!vG^)CH$j{Z@PdV562%%zDonPrRFggEF%H= zrXs$`lR<0w*F>!EUZu#M#*<~zMPP-7nKT(l#7?j%!vz&~jt$h1L-*r!=L{B^>-vJ8 zC2rFG*-0T`Nt++u4Q$8`xYs8iFot5(WpLsPG^`@Qie=t^w&+1lE4X&)LSRt zMu6h{M23Vq;1@@+Mqn=%5&tx5ag~Mkctra3nMz4~oRGp}LzEoEi*5ekH}Al%>KED( zc8Kw`OJt1}QNoq;@LtSq8#9KCUj>hrM**|3z#x@TBdk<4ud1q43W*P+ZVGvkI>Png z?wYB~pv@zS#cDkF^QACoH@{(+)2#pFeSvhidIF8CCTVdcx!fU7Ps?QLOT4;^(CD8} zqm1JPdZ0jp=}|}V7ioE)KA6Ge6DSVSx(j&s?Q9r4MO0UcOY#t%M)Fy@Y-W9^t z;@KI!us5nP=}|-E>ThwzvYu)uKF6h2B*0RDnIX|claGc$0te|uk#?PbCTZ{7XB<_O zGtm$hu^AsGVRk_WG;2WN>KDxS+91F57~Oo&qRd0b`o{=B1iDOFqcCPYwa?X&mh?WW zeiH+k<*)sjl+6MEg3?kO_WEP9u<=Y@yWQWXo5OhKFBLtD8O?3v)h=OMZGcO-917?^ zQO>4&Ek2tB@4mqyEhRp*bCo3>$k=M7Y?=_5L=K*vq;F6n4~a`c)fFnBwRpNWZiqZK zCOVij2(@1qxXt=8iHc*9xN$2DQ+Gn`g8PVXaf>BWPqGjED9j?Muhx6Rwc0Reb)N+=%Li^O0_yZw#9PH%Mj^GZf(aaK_;m`WbOpwqk3Wt55r>Z$)=8HE( zu>DFw`uK3TBw|2r>olOUs0Iot{jfy(Gw+>|G}U`#T)IKLUlKLm*G+fV=btw50wPUB z_a!a_r(=85tW&YqUM0ZhdvkVpy|zBBz-5V4pg3yST6(L1=g~XabZ>Opuz4NXkBVt* zwjcO7WL*~LHh7; zN#FBL_HhRBP7@On5{8+vxkA&(GHDTIP$fkvG$Q?S;u@N1%=cK;)t{!}IwCmbbl_|2 zP;W-Q%HmiqUzqE1tb@`9KX-;x6fJ0R9MVZ&3@04ZJ)#hF3~fqvIKwv60ssoKDl%14 H#=-vwINx{9 literal 0 HcmV?d00001 diff --git a/wiki-images/example-phone-1.png b/wiki-images/example-phone-1.png new file mode 100644 index 0000000000000000000000000000000000000000..ff3f389c7ee5c1a836fd95ee8aa2ca99c35ae9ff GIT binary patch literal 30694 zcmeFZWmp``6F!Ot4esvl5ZobQA$ZUr3GOag+}$051PBQP4H9&5cL?qf+}-UCM}Ftz z-2eS}zuf00v(FAa)7>>a)zwvRy}e<|iZaiUiIAb7pq|Tuq*bAyV1W;`7~(UaM1Jg~ z5cq;KlTeU=f+~+exif$V{-!VjsVYE0xzj;G`36Ek-2g?tTToCg98gd@@1dXsQ=y>n z?KA3Cgnx zva-PU8zV;(6I&;9J7*?+yBeSX$sVNb1OyAa0NYsGIthYBsQ$P^5IBD-W~ZX~;}&Nt5h^VOWeO=f zM-vKOHV!rpDp6z#3JPIIV^cv@=~sVM2mTVFGIw^i7i4Gu@Zkg72W~byM>BR#0RaJa z4lZ^sE>_?URwp-GX9F;+trPX1jr`q?w270EqlLY*g`F+MQ@aL+b}r5$R8&tL{qNtO za+-iG{^`lq>95BE9+3U%3Ogqo2mAl2nzM!J|3kH>D}Pq|eC|&s+u_2S-U(9xw@@|vncRj|EJ>r z*3$l`nkXj^&tH}PUHab|TK~ry|1SM+4JAhlU?2>hM0*;%Kg9ZX* zz5JsTP)t!|VfOzixhOL3uX*jx=jS$-1`VKNl8J5q269crUJ^gu|IdAP$d8A<-+qnx5j*9P~nmTWCy=d#rMf z`_y}w+qtl`^yZvn&d%qZR}%NlStTz@6dcI+_oL;bxZ>erBV%5%LpcRfEYxpD=o%Kx zZv{`+#XaE|@_wy${-hCy`TdB&X@>p11cnBK9ojwb7j4(ce=cY%`ARbFHp9UErxDOcJ+V`ayNrx5ff z{QjiIB0#srkH{Fm7srZ2o*wr9gW^+&6~JZrJh*L7mwz@p)hN?vZ4W`eWZ9JQ6FR7s za-FrH7b`5(l(DfXQPa?nv#|J9tW%>nS*%Sh_IOtbx%w4R;krNTzMe2+FcxFdpWGXY zNgZD&uey0qv*hh~e?HZ%*G(NGOr<1t?>xWx^jQ^S$fv>kNl3LN2>S;bBJ> zahPK)@aZ7m7wt;Z|B*+w>FO8Cu#*i6iQ8J7 z<8dc`1Kztj$1fy4cgLkB;Ml+P`Hl_)L^)CCWX6mMPhc}!6}Q;v(LZ13bZ`2mtZ8E~ zeQIuVDtdlimywN4<5RWGT%jcb8VLh^rgOYIzuV=)hxIQh`l^!5Ggh-_ur?Mf%nS^% z%w-U+oc;1p$uT09g>u4+A;-Q zusG5<4E%Myuh(HllX{p|>qs8ca%wmM~4fR5yIydb9Fc>I< z%EiJ=J9n3wo7XlGxIVm+YsNF`io^_T|I*;HKdT=6oH+Sl;r*?wFPt#qUj1%q)JM$m z&u+rbuc?6O0!jbP~Tmj`67~eYV=VtTJoc zu%BnQ)bz7RlYM)!vElrhA(Yc_O5da8Zr{!)Vi%H)Bf1iZou^Y{n>E-=%T|QpoEtw zpU}{u?SzGa%OVU-b1nzoP;bgR?{A{@gTR#itm`!R;%BLzP-DMSSS)A&H$c{Ftk=HT zI^Oi|YBfexU7hy56gBXEKZ(1z{J0U@P(N)8LV+hAu*rYUF8KgFQ-Q$!nP?fUYM#+f zcnFz$PZ2}RUq(`#0tt?;%B~|6vnkLu)AOX)4~|snbJOF4hrq+t>iVL`VbbjE+oCs^ zv*13)e66JCsyXSl^}XB~*y!L?v4~f|Dj*Mop<$Ng_VpyP-O1WYhRiL`MkN^#=MM#L z!9`o)mLHCZ`>PCTLC^cOcV2I;_x660F>)7 zuBfzLj!rRy0kCGJ^hSLV!Jx#kY8#y-R9M-l*i=M=AZE?dM7Pt8Z%b2kPMdFO=j`|8 z;}PPVzbSnZEzG>~nQQX$z@0=L7M=~;3VdNTN#m9@o*CT}57^)$>uAC2F<`RdY~nI& z^o)OdLwwFhY7{nFT2iz4mbONc2i5zs1;5$vN+`nh=aYNVk}Uoi<=fMOan#*Dh%tHD z{CKZ~dwnryrw;y<&Ij9lF>Qo?{VRffzEGjas9KU~E63|f%C-GDAGjjK*Zpi%Mx?)7 zoFDpV;lq;Gdco)Dcv9Et*0Ei)tmg(VO!{ze

YkI}RES*^V;YXYMbT*c0fLE|^Tc z?v@@OYRnke$zscDeE=wsW+d2IlAMqslEWLKPIbPQCt>3Y25b8 zyWu2hwc8_-foa?RVg)-sR2ro{GKG_CVkkr4%>m?8G3lOjrrINOsqCGYz~kMidY^at zA=FiJQc~~jVKY0r*xmQycg>5tSi*`hG_jpA|?!6noT0D#X_ZQ)Z2o^#2N)s@u#e(!c5yLK4|nwj9k3`WS%X zgeU3y>kIbRQPB9A?)&46nByLB9CQv=%t|NY!;&blZul#EL9_xw=Iw|DoeSPiL*3xT z__5E1rl|BV30O_CB%LA6I9og|su;4_D&3%!9QadmH|;g@%FRzci@P}I7f9!3;R>Hb z7YdmXHIWJ_)jD6HHeGL|SG;fa&vvD@-#Tak^cVP?2n@5M`1Vz2o+O>?NKLzD0ukESz?YcFeaU+gU0HyhKVZVK@&Ms9u}iP zL=PjWiu?{$ySRYraNSMf6sZ$eC1`r8flnH4hL#fi%pR~p4Z+dbB8Z>GLy-ofTY%-Z zfGcn1`H!XGkk9}$K@i{=lr8#tOgzq*eR9K9Sv7e$3K0V*S2Dimo`A+mmQUqqt*obT zIJ34U!fl!JBz}G2r}++c%zPdY*>WIhF=YU2X#%j~9Vs`<5?&|0^d^Ao)62uSQAa=? zftueNo}P+-bq}Tg{tnQE;~=C$X@-XYbkVKXM0b9$2*_|IO!^Fl1Tb*!Ox{+Fsi*uv zRAG}Ce6ru~rOe&aq zu60`M;mRnxKHPx?(dxKjx2$=Q8?L`7+FBs`h?d>JvZ4hA;qKkde$CRjE+g2eWYc|n zso6(YUk7sSwVtFou+u)t84R_Z(THlm-)r1jkp`aKy`=6TX}tQ=U9Og zoz#&dQx2t6IYnDFHRV~IM1DJh%IHH%JmFMw;5Y89%jgHEgp<4|!k1 zsUxvz-cGq?5=(*5+{~LCUY=Q`S*F1_umoO>Do_x=wceoQR*K&Ah;S(3&3dCJ=G_p- zh^_tFh;T>R(sd3IK2KY0x42TRv3y6~R7{$@3w6cLq1eIpXpJ(dwj{f)pY(43dm6=E z)tF)>kw=6m)gE|nx*Us@aj42-Y#fCOvBD@uM8m|o>N?7ASqkJH`*1+#B<98j=*b-% z5p5N^lMt9tvN1Muc<|^I5;nGb+Tb~4$GmtI)Z|;^&U*p)5_33K-?@&sC?op^kGd~+ zippG>+l-$1!J_fE?D)YY?6z^A0ShRRnasORDGaR2<-x`%32NSFEuSu9_7VrVgAtgyRNly&|w=!GupvJtL+xxOy-m;~@^HfstJ7 zvZf=OI)Cqu;#syJjnii+DiL^2m5^OR2_a=iyW^#C^xJAdiO`}#o(k05^G9L(exnn0 zay2wDe(HZ_>d#hLUnCpDVUYOA#b zGfKlPj?W@fFH7-9?+1L+Wbz)cFgbm1jSWMvKRG)fatV0bFNI!Iv6J!#6Qu_;=Vv&E z=WD8dube~9}l`Q$?R{L^izn`sP;AWP0NoPRBSSSn8r+xWHSa+89jm5476@@$p z-Hg)h-RbZ;@cDqNym3xZPXT2E&%EJ$%7rMM9xED%VN`LlvtwDtB-M@2`j&=13!FP) zw>2bmNFo@+4A`w1ne5geoDIY8$KRJ(bD|97gHtG<&2F^z7G(wVqw%JKj?&Ds%F&j@ z8;+INaY3GWMp0NAeh_p!!Jw~A~Y=Smi}E6ee_VU(Ei5rpXYPJ zEZY_CVSZazk9#Jz244Jpr2OvZoCV#S&yaF*tMOt!bQURs4YAWg(6Hs^=yoKw(o$yV z1pGBw$VScd@%@j1Wsc)Rr*2J}6YEAVCISY$e^~wMi?j1FC9xlZgQlo?gRfuR;dN5S z4|cUu2T4=vKVzru(inYuc?seHF>!6_a_nOPHjRBN{9U33ETL2Fqz~T}G6g5T_T}|a zc;E!amQbEOM@(%_cKVf$;=s?4S6)$_J)0;2T9?Ru)RVn2ou1YXa17Crv@ zb4v5>qs*)RcMnuDBo2W|`B3}aU_lzcqyE?nAr+~~5#WuqojOM@9dpfC zLLJ3B#rkEgPBS!kp-IXV$b?^zmR9KKdrYjve^AKVQFbaGTtQg|6AtIo61QKGv5+ zK1Ho-T;MCSIQ12@TZAMcD^!Zu?s_{qH$;ExKJww4QRbezpm;-07kNIm=)PN$R}?`T zO~w4m{ZY%rW@AXwoLf4bJou2PE0}VAa1hc~vM@B!eTSinF`}Pk!mgsFs+yaQ<8%## z``yBL!_aqwl88(lmFbjsF_L{z7%_3;rda0Rjj=(w%eZE!9bsLB-5;mAAU0r>;MhEQ z4u}hSd}y1FWm(nqa&(AQ*)emPz0c1QbnskwNP?)>&DEqc4R&h;CSN-&ws0qJFyD^; z1+c2Pu1g7 znujp)P6Z&!P5$yyA#xK5jB!U|^(2o^I}$qi$a{%G=0pT6au=B995FbC9~-^ze8omn z-2!3B0Bp4M1IAQ$yXen_uSEv&vNXv@a){o-Hkx9p1qpf1Z&cmT=@jmilLx&wQ#-rB~c8$By_Ot{PY0jR1{77_6 z4e7VGQs)0?BX{XytR`=op-}a3yAB;#8-PGX*t)_StWtBIZr3zg)Wj0!FlK5^4KX43 zoLE5XRN7=((fblYciZK1?N2z2J!CL2gk7Fzyf)=~R8HU~B1~ zhai^sw!tCQ&N!-w3oTj8T-h;+&voE zqs=>7XbmXRiAPPB1)B||uDlIVc=YcZ{kku~9$?RF+$BYY)yx{_{8&EgTW_tpCnH3@ zWR(8s;q9?*lVDB3L`}%KmhwKTYsmFeRBS~_|FEOJ!M?YCgbUz)!i9(jATs7%R$s@p zil00Jz7*2fF;RAScpMk5k31HxH4-0NFZPnp8%H zskRI@39s4~SZaNk+QyR3_DujP)_puAcOH?*dXIH(`uSJ3)7hS93kpT+Q@F+exMy;* zua9%-5H~JF_~sDEyg!zt#=n)qWG}Y8-ro=xDH?0H{3%}8A zA4~0_NfYIJ@wqU-x6_kNKcG5b#KPE=7{IZt-YowJKgWV^M$*@AiiNb8W`K;Te})+u z&y5)nU&5~>e^_wQ6y)LC=ACUCInn{O&LMDau>QC-F-`sEKUGu1AY96j! z25jQj&8J!-sA*dKLf}`OF}R{0jZ92TM#IhSMCXoWKvAr01{uRIr>b%7Q4?k z#3(Yxk|DtU!)bi$ZA$26ZqDqXOC|ytm|`0r`v^@^?Ns!1y|ks9lsVEoloJ35HFb(1Xqk{TT}-1V@X_nYgA`^foVoO0jM;4P%rwJrCD$l&Y3e_nXOgYPV_w+BXz`_7j!TeN8J z6pl~Oe%LK7PIY-GbQQ4&H**83pf3g?5CqVhvBsi56oLo?kW27vL`sC*pC|&8%$D52<9a?loYCuzyM!SK z(Ad_V4hg|x8wT+j_z##H%6@o8rU?E7L^3l2Q32)r$6A6;k@=rk=J?^Pf978vE-g)U z&A7*nvFh0HfOsXtR||6ERz-oiqV^;Zk*H^_db&$!oVr1TB!Qg)H+s)^gLW9|yjW)# z*s7WZSDj(9Hm4s;-nYHoOF_;_-n>&MxxLYJ2=^DC^8&f?{pBMj%eXZ zd%uJ1p#OBZ)1V6c$-IWoZgS)SdP+w4sbL){o+d0$$V3vXq*V~8D}Cf)Y-O(fWcr4^ ztDj<9S{aoRr8+B6qvS2pMshB#B9tuNk<3j01%S+#QI&SvK!o+}!sDVw`j?~JAFekW z!|TX^m$R=IL+>%dOv>9dbpww`7C4W3?*(KA7Q)Ack{L;MT_S~Gq*^xY(1~`ZP^9Ih zR%n^*MFJ;H!zr`!JrH`RR|cr-l#j%gjWHRT?%1ahkyZ5)#>9O8>~ z(hQT=ytka+s#3P`;Zk#329G#!4|Oi&SGKx>x`|R+0C?2&oY)(1PH(wb;c~I9_nzV^ z#$-GbeV==mVOOfiDLSH-N~-)8x6Mp?LBe)TP`$_)2plzj;Nju*0c)PQIxlX}vP1xsc|nW<`LaRy z1X<|U_5PF)^#BeM;&yPo^j;rxS(PAbg`NieOPsb#O2PpA8Pn2I<5ItJQ^X`^Zu#Y? z5G?lN@Wh>O-<_9J!@VmNeGpq3tP|Xc*;`}z83+S3`{~XFAcsp{mwH?&$m4ZAFqYT~ z_PZrDbPKkqDo|#3bah^ku35ST42>sb83e;fNNtj?@|1vi&4@GZv-2(AUEgTDK*j%9 zR)X{HiaIS&Vb1kZ^pniz&S86|GJlu$*xn}n9s`&19HN=Y5OO`T z2zb`Dbfdyo%K;Poh#7|_`ZLrvT0_A<(1(GHw~C>oLSI;eyA`T)%4+HzpG3CMnJm=3rMsAJOv z$aK15>4dT>=B8aORNkZcb5~r>1P154_$(8HXAD=xIdHi~iwvM2W^dFbWjT+&AAfqh z>vlRIE_$YgBMFX7aSM881PK`=-tO5o#_H~AauDK&Tjp$iv?6ZU_-M5TV1hM_L`-81 zAMD%!l`0YGIab8Ps8{yYv~If{@w~$WGAr8-mvA{lS96vLtS=I}K6O41r;im+#y-*m zQ8qe^eN_-CXVb3eaB@^0mJ>#Pf1;w>-5=X%v)tmR-$`_K1%ytl>gwtmQyn@A&4#Td zY^f4Ku`jSz5_u;fZca~`mo)%$h!LoUmPA?gJ;EEeQdRU)2%HCp`2&5+;(yRNNL~k>S2w^GP18)fQmQwHW&V)(WbZAw%nqqaE->){k$7p#p(>aE*Lx5<4kNvH^ z^@B0yft9u8tu&DHQLv8Z2J7*ecT;NENae1q0RG}5>y?h35y9LI5EJxKhL9M((QOQ^ zVCs*K=GN>DPnNCpmpDJ_vD7ncrX1Y>rBq!jr!hXi7l*W2&*<9Q&!M9 z7cFNMd3My_Rg?N`<%ASB%3#QZrpUai1F~xcoZibZ@=l0FmAFcDtD9LKL-UdKXi9xu zQN-|uL;bNOmSv3>s!QbKq>Mk`*4UOv>Z1#8Q4BkP^rz&`t^$#;6DbtdJOf85lH941 zEl98pTAYZ2p(NvueK1cSW(cszDM<(nz~r7sejhdMM{{5L%O@im5c8PFk~nl=Iy9cO zJSNFUYxzRKo0W|S9U+Lxr}*M)BAy4}Bl(yaTrIrnQkA!kOeqxFuS%G;J4Fv3I) zzY8Hcl=8v)@tA`@P<{%iK+qtFjL^$46 zy-~J1@|S{6o_F5?Ysh;rknF8nle5!8vypnTl9!-ZQBUJtbNt~1Kom9CDf5o_#75z` zK`f37E>qfi=|Ofjd@dayI4O<{k(A8_3d_4v_|j<7Tqqa z#N;GhM(0^ras%L#7pvmYzxAm)J*uAOb>ST9)=`^tz~4BJ4MVs4vBG(J^O$Dclj){c z;}Y6H?sGR<0va&tMJ18>0@w*U8ZtyU=s>h3AXO9f6OZP5s-TPIXWa%$_VDte9;l4a zl}ip4%%ELLX69gwrwm3#if@_Z&a_d?52_hu1Fw3{>ZwYb=F%F1tngVkX=J(^uA&s|mhBmuL31vD00790S>&TXoW1fcXJ>1Ji`W zh#KGNiJ~9;z3F(h+XMIXoWInJyO(v=j(d7)s!Lmq7YG?5RCU553AwxKSx|zpfkc4l zH(pQt!{*0_z%~xfjbUbWcdC7vP!!31YwQdf$EY4B(VMN$wPhjY)ZSWj4rc)fyC7C* z8ua>yn_cV^hVD78z(DFe4v@jl@df4L$cV@@%d z9vaJ>;7LehtP`S;KsL&+gbA>`c`NR`l&{UjZZLV;Ve=I(B&vudN9gKajoc6P9g;-A`% zVmN*%FOOIwaaBN$&G##63*bR95tt5S5xi+oS?(krnyO;UL)HICEY4Ge{X z{B1n6qk+lZh;&7lH(O<~DhtEr5P5BZ+U{c0b~}G#a2mp{o}<#!Wp*0^-3uQ(E13Mk zRLt;4uW9ojn5sEG72qFzyTkMlGaDi)I#jF@%@(n1zOU|M3bH2_YbHP1AaNSt^cP6N zn8k_#vc7u3=;WncL1~oY)%)!MLFB=K*u=cn-wTl$$KDvEwTwnYD8$DHN8=n>R*Kr5 z`plLcQkPns`m|gK72UpPI~H;Ue1blM5K_9wo2lmFTwv`y7u07GKIx(MPw_dDo*DX< zH_Vs98#%aybUF{7vMDt=^>S%odrJX7K+t(_^mYng~?LCY$#Lc zb%X2vxUl=xJ+P32e0yM5l|-+l?=_yCulxI`X<-9iT?N30jHm561u%yvC;#uGBHGt3 z$4gr#niR-ZKaqO=K6>85;HYYQ?9Mp+Q}%SxPZ~)XL@O7)`IOxI*I~^1M8s@7-ve^O z|0<3Z&jmWhqU}EYUzdNLR3t+MsZB1ryZ+%J|8tQ-1?V>{e%0+M&H1lG`-v}VWhWv8 zP$&LXOcToh^ef$aEc_oai)qCvlYZ1>kpgr7e-8zmfD(azbJxIR{}FQ%;FtEz>I_H! zhhR!02lT7rC>-<8m^}$gVFe6>$$p7h_kRWy>#1J`fh-`^_nVkMo_MVnla;H#6^p}! z0sYD)k_`XFsrp;k|9|-Z)T00QhrdVZOuFV283pBw#n@L>0AIVlW~>XGTXzEz8-LG| zKTqPRl=bvjadB}gEXL@*6&Dw4rW`Wm=jBO%d|{<=C^;|j`zsfR*_MPtqx8(Sk$e5x zWPkRDfx@La=!eamMtDTT1bp^l_I&mlkW+4B>wEs2iUL}S$m9os2-D_bScEVLg);8x z{IFCn=mi!qa4tozrInQl5DfyNZ!3;#tkXm0~|C##|<%>(UTa{T~ ziZQmbrC^2~Kr6*j**>efhVS<)eu)^sd_n@K z&%ZYp+Y8J;uImGUm-~A!jFiB9#VRgN{Eu)6PxJd^!DQ(_G_2&12Ckk5ojg)ofEk!ew{40$H zgWhlU!&gAp-DJpv`S5z0;vYfGbzyK+dQac+?RTy*_s$YI(v-=D;Z*Ihywr2G zhr6E)mmcZB=?2Uke&WB(sNW47#*mDXnit#rSS%dx>nQ9=%_i&Q#D_b-dX5gYChB5; zV;oh9dSYvof28B#f{qN!jT2W!R7)vM4DaMtcS4>$LzSyk69U9?5t=6WO{{AL9X?xF zunSfwMRtP1nt-g*|FKQKc`DOQt2LdLei@7cMxCOIHFy>$njp1~s9$vd^!;Q>#A6Yy z(Nv8jZE|9fbC&-#Y=4@WY0T`{iq#I)|0o9y29-D^u4F6jKf?XFmVBocr!?sf`|=;< z08vO&h*fnZy`umAgze#K>gLRrJFLDE0La8djSAJzL7UZc7jf&qRTIbV;io*`NVk)- zJ;0NhyE=YImfAYFe=?13!I^gLi6&4m2n4AwGVbg*1^|NL>ZU9^& zAD#AxHQ<;P>?;7A`$D$#gijs^0u~GPY~*4$TYx>V8ZhSJ{zAYN5VAbM*P0d2}qNr21FEp%V zIsmFAn6KF9z*tnB09o{2fIvz<`O9?hBNCXz>uj{5o6I9H`YD8{00>_aTQop~`!D-n z5hvc|mM03ZIyoGiTA&d+AZ51)4R(!21iNE7QX%fQ=h1*4wyS=9vs)&$n^vp(_HE$} zc>l*#A3#q1uwL@>KF}=ucN;e&N3klbim0FiY?s*j-lX?o;l)Pd{!FFWxDmkPE)c$6 zOE`~i75bbYzq~AT2zgT$xyT7VdO!0-UVoFX2qSSaXV=^tLhjA*I+OLjrk6q0oGN?9xb(2-q;y!v&7@4G8^WV`?SPVkTO-Kl=F zPhNCOo~H__3{FDi-La@}UWWj)aeREd=T~RMI>0wcC~LauJ0D+gol`iLq(t27>yuOW z?k4?!Gfy7qN)`5u9{@{hN?pKjgZ={bt4Iv6Rd{&# z4yjabFhFMRePX)y0x0ATY0SJ|2fEM0>8JJO0CWvmih)%?sElIWI#pZ9@vCcqz&R+z zsPl>6!4L#mp#t3RD8{^z3xGDI>3+V0JDEit%`bV}HC+MF-Wm6_*18z;GpGPW-cv0Z z^gPDeKSu1K76L?@aruQ$xVvb_{zt1)6@&0vG4u55#*5k4C2a4SbQel!S&oVMzM^h#>vzE+%P>^4<2aL4vvz@js3FqrI zxHUX>ZlrwC|A?>w1r$+J=%^b$L-o&%z{nfW10 z*LB9kU2}j|*qvG?IV&nN{ai$tpm)R?WrLFV+fHJHe<1R0~{8HUIA|TCtRH zTtBJd;{rHJ+u9^u(wAk!&p6U3eGqRy3c3^`6H9H839Eyg$OsR_}5v{c8o?&Wf)c%At(=+MMf4w@?8e7J9uH8ZBfxT;?p zEikm7=y0gyqQW@!cqO7@7p<@+L^t?@BNq?%w?$G%9|r;6wVTz5Yv7he00{09lnf}c zYr$bX3q+)r{Cy3uvnLRVZ2ld1-O%l;G6KY%16=O?aBa4(&~YD#uUgsB*nHB*ybcfx zG)>OMKw6Ff^p66UT@5hq3zbEWWZu1&lN+Z@B;+=YM1FUM>@n`*Ap4hFF(aLw_wtRy zLxJG1-j9l$s)5Sgx$^@iAA;JFv;9#CIX?BC7$^Mxz?giY-Sw=^9T?Ktszj+vG725L z3GI_p$MyW{*X#G}rhR3vHFl`BE1jp;aeu_$nU;`7*QqvIM2#nwxJVZ73?mQ~y%BJO zkDsb4d7~7;dYNk&FmC&n_Q!-yutbL-yLIzev}b;_Zhmyeo#eL?7MIy_Ma#_kicT(7 z(8|VOrjTZkqk-2*wuFHsGWzP#hIxBl{dag2JP@#Ta6*vmM1e9W#Nxgs3g+t+iash> zsmg$47#?4j;&gL(s$m>!k(!mm9_?qS7=XhVm{9RiNGpn*kGuP$U_ZASCJgLfdbr^8 z!>3OQE;sr*n8w{bUtIH0i|u*|fVCm}A@&kInY@ucTtRAc)ix#onsD=d=kg`Ko*H{3 z*5z3+u`Oa!z?I}y&YW={LBI2mz-C~1hgXZph{e%hab&$CqWT-@1z>$MAd^oFh@Et@ z&S8;6qHOxdA=N>wGM|(_Xtb<4+n-U{_l=#stg1Kj2Py8$z3rK9j!Cp3IX0Rd@j~bc zq9>;sZoU_*yRCct7_w8cDd>|>CSsRL0=Yyp@aexKugc7Dx`XCAzpZoZwHcN(QFm!{ z3aF;;##HFk`w-_}Ekb&)_K4Z!cum5nBmCS*LpNQ2yfg;KWr5L>6gR>QbbUfDyvty| zC=p(N$mG^}PVH8xF_?1Fxg?ld-1dVs&7Ol=>ek*!6fo%{_oK4VXJ`ZPU&tdl{mL## zQk^6%>|#Z`NyvWyu0qm-4*BgW`6GdxBs4lU8HD;JP9N1NXbREPR z$R{@OO^4Yx^u$W;b*EP2zw^W_>Z5Svd|*m$#fCS)?!~$X1IV;wertOmhKLO!ip^3} z<6cI z={kc>23R*IuvO}HvsTpwuX`HTPq<@#HsrD$LL3uGDu$yChVe{W7e4Ho^pb}9EW z&psc2VQAa2e|2M?#ZoIwndVoWF63{(hLD5j@WRT7Wn*8thYjWiJTE78?6#?xa(vM` z+ZDNSFmf!vrct5fqM~1qqEfo2mdO&6P5+>mKIBfpKrWA06(2}j3GeLe)L1PYxM`eR z*_Kp|e%fsVK=Sw()Nm`yrblR6$%F0U- zSP`8I(NLB%^GMLn#glHb_v6H$dPa?GQ@BgLL8kW=49>Hh2xy4`u1lg-Hl-OatiPk~ zEiqT^j@fx9C$Kka20yNgolGWL9a=z5KF@F37o3OT%S#x^G zjc^ZKlB=yKQO>j5;IoARQ6e^NWZi8hW&h&zmEXXNc%mFaSCS`-{y_q-kS0oVuX)sB zQWi{fG};SGk#*MIe4TvjSO~!Lh9>$MS<}vK)$+a&XFV4}MlGDj&xDsJ;7p|6fPx|fp z*K^+l7rLX*J9!Y^UP)`$lpnyC2x9p9oP4ZyfQVi;T`5LGUpq*~|RgvBvf zEvlT<%kD7E`cc1Zy;E-o4zB}$XiTHdJXni%^+I zT?sIcK?`!i#$(EZo?tN#U@B+h8$+F_c&^yd#X8{N_lOv%$k49f`xrm1nxmp$(dx;N+G*r1@e zW1fBspq`S@BqHNj3$wbeP?w2BNi!j#pAP>BO zKqPQ&w5Knx)X%dkQf_DT)8`Tlsb7O4>xNxPvG-navvcMSb0#pGAEt}q9b&OiiD5_+ zyn`$M&`X;Frt1#9{1~^ckj$HapKekm!&ot7T)ohdrrFq=v8&Gazb&Bk7+TxlIK|p4 zHrib4S!?&t2Ob8h<8KNx)-c`;We^LxUU>@zO_oPc(7Hsh*8+_q*3GXmr1~> zv6PBBRrW%m&-VwlA>i`mdfVU;&i$mP&4Rgjo#%1IE%FSQ+89$ESL`;xhK0!@2X;=^ zT_CuLxfO0!;?SmAxB;B{O?RaID9Id<->!S^y2Ly^tMX_ykd11{vRKps^Zl{s3;=&( zOW-t0XDG@9$O^y^VMGM$$vhBcd;db36JA%x<;3Nw@i4U4#IauWF0O`cy1tI&%Jv&T^%99$!=*(GjxnAZCMBjcI zr4k0GOj!c@ug6oSE!4P^Cl_-+5N0n9?m5XkIkKh{soy3=QICgaCS=V!T1JTp%6ddH z${HwFbiaGE<|VBmAQHXvy&WxqOvF7f9CCj#m*dh1Qx-ck66_!XQaA{q#Qjj*fm^VY zk$^OJl>DV3jfHx%Bz%(ZbkW>_s6;pSmgAjTzM_tIWZZIlnMb<0$Nxa@JQTkqE4~ie z+>x@Tg*AX;e;oL93c;Qhu z(ogyaki0)nSeVwfJJbXsj}D>#66OBlZajO_bJ1pHW@>asgn;YTG{{SLI5C;~G9q?U z<#6@yH5Jq%_T+LSs&6D+t;k4GyflRiWbkh-`r+Dms(fgO8~lEEyjsz|HUq0b3PY$< zx_pUYFr|rN zM#PAyjje&E>5lVhh8E#5okC&6(o276Cr5oRkw)pCCId7LJ%}-y(n`GKonqMKfi&g>5edY3)V^a+NKP0B3B?6xzv`| zSB^@E5Erk%^p2Z`XHwvwa7q%BK6l^&t;vCA)zn(eO)-B$zKiCz%7@-wRzLzF6M>`fi$jDrb<9lro_)=`cK4 zgsmhH99wvP0#cvge6f2}?^;h|0Rxd6`h)Ui|)7`P| zV<@}mVZT^GfTt`qbLL$4v{SLPZi7gIj^Fd>(~_`K%Ghh++9l^Pg{R1`@ii;v5U=ar zG{+%`Nm_dPC9%0tTOg7Fz>#hRw&HRYm-Xy@SajR$RTSFCvBYgVFkJYgoCBw^Ovx>x zhj;m(!yS+=oRMrbxv{xx`y71Yn#m=uUq}XEg6$zK`ILRM}Ur5FBI(bj#mi zadj2f>ymfI^)6+@oHxNX8!Bj<)Cta}$Sa!%$&i&yfOJ=ETn6Oh4L0u&j#1|Dt5q~* zrVmi(dbT)KZ}cVPw>g!j5staM-1kt~7y`;=f!LT|L&|hW0C#q~SR8y0yt=pu_9p(S zTP2^HgpaF8`cxz#`F$Cm5aAC2zJl_#IWxvv5S;@M(IRaK`q#E+sK?DLb6idU`%6em z!mH*&)`*U7o+9&{>L)%8m;0HyHt=g1So!bYKWybJive5xmED>(OPg*ilTP&Lab^IX zz&enG*K~@unf@+;agx7DHZ~PZUsY9gU=z7GO#3(LB5n=CoB@YBJ6l~!obdTFt)I8# zV@MW4VdmM+>;R|Y%b>-WdRo?xJ8w*`cj|XTT%S3ADY&0howm@K5DeV4`FQFuKECB1 ziH-bmHN()QpQWyeCAX`bj;#c?8QReFViO5Hd_(oy&uES8Z<2W{c=m6J(lXK8 z`udj%IiHiEBPMGF?>WX9K0{wjokJqa17W%VFhsrSrPNRON>M~6V~j`~70`DM(}7g2 zLAm~Wg3lMgCbp3I^DVeQY%R&yk5tHpP5`oa0zh{8#brlwdM*>{=a3K#rP`V}D&!@; z`F8-h{!d^K_?4UF|Es;XjEkyk!@dq#bJL zR7yexq*PLdP^1JzkQNl4HTQL2mvh~p-%s!JeBrm*GqZE;wa#^(|Kr$_<)ckaPVBAMXtx<_6p5Zq;VW~I(h?Pm;lxcd&I3rq|&XnnU?hWG;qk(#Q*Hw`!5DbLIf<(v#Shx?KDUa^`-n-pDM zwd$EC5op)B=SMu;df%zXenqq<(z~H@`mzPN_4gM!Uio`zR@8+71&t;;Lao+rlS7*Y4=+_KDT7_%L33 zdfyl2^hC&5EM0YlUsVKEs`C1-*6aH-RUqHj+w4%r!1Uss^x^I0&>jZmT*-$<6!ZP3 zQR81-55QYO;1CUv{m66aMi;%#b>%XL*v9fc)Tb4;<&Bashyo~ z7V|1!(p*UX-G`l_GySDw8}-}SX=HO1{N+l*0QMGh(RmlYzZmf?ETDRF*&v}pM==Cmjh*gu_xbdIiQ*~g)1Xw*aAzrp4b-nUx5bx+oz{w?D} za>8RgG8rxGp_*u*G;ib+_b2y1n$iVwbOU?LwEZJ9`v#0JPJ0&WD;iGMPwuGC7!BJD zy;UfFct~D25+CGz&tdMi-%=XIa!(3{Zd=rM5jlxQS8j^-8>T$D{mJ@?v&!TjpM{hi znKNspjMleSdKF$cZxSlzIPdnrBsu0+i3_8ABS#>=8P$E!s_I+$25*wDB!7AsV#q*s zv_efSnO9CQBKG4dxAVmCC8f3qG}>gZs-g2V^KgJhR^2K(7|ln(F;~21G;-TQJs3GW zVVk_#SW2}1TRKZ|0{v4+0itkOZI_0){6=S}v&`Sk9@J{DhCX)nQ?qPa6c{bBQIFfT zjwYoHWZlfVCHq+XbS*13pIfMTt9qtv%*P#meyj6fub;Y=MYrm?`X`fmC=q7&HECg&$zKl9 z#pqV0?*XSl*nFOnboE0^j~UOMb(DZ&slwDr9in&s?VX|Iv6|rbvy5H)$9b@KN=iRC z7joj3W!0yD3FOpi?svGUJhMEVxxxLgSEj|ZDP^{3uk^4O^TS_J0{t=Eyslu+kk zTS@S^f1~~!(~B9OdY3J}ca@%(`BNx5Pj!vxc8ywc^ZV<($1F9L8ZU}-aoy71$xan> z9C%u>0c)_-{Ao7rJVI~#fzmKqB$#9&ut_UQ#!%VNNw0rn%huZSO-@Oz;$vDOg%jSF z?7VQCO80v)d_gc~kiKIt(%-M_ao|MXEOH`d)1uChk@glM`GSg1fdei=^({4D$ zztA##=z+1mX*DJP_@pzD?w|m#&r0(^T2A|~_v|lqwO2+ev1Rg`&$Agh{w7pFA#|Iy zKye&HFoyCN^Ea*gdikw4e5%z|Qib?wb83l8fSOitsPRpyJOV8G@|m;YF>ZC$2VZn* zQmsnFs0T4o?(FGn59n*l@K^1Ks;<>f*E?3FC+OO!xHzF5^giAB;I)H+ieo%wB-X_6OF`_)y|h*Pg1+6+@H z2BhvL)uxGawRM!wSwCZ-DUL9Zmw)Npu<0{etYGelX)Hf}!r+(8Yt}xLmEnYT#?-1h znK!z#{@Tg(Eh4v?tkPAno#V5Q{!>`x2S z?3pSU+@*{r3`cU*Z`O-HHxrdyEPep5W<%dqLtYtV7*`!s0WicBKl5pB+9XV8eHH2R%SaC?^@Pjiw4SQs_sY;{wb*h_ z&1{tv&V+t68i|h6Og69m;BHP+_Cv2_gbsb%o^e%Na{P!phwwbXrHcY-wEF&8$0OUs z<(!~(IrUWL|LJyBShn$-Aq-qqEh5SWmM%#m#s*2_YSp}!^@!L4U<0S7s2Evkc3i=0 z(P)z0bbCEwcUj^kSD(iYs?3n9Dc9V*8h&O}X;OGRTcSyyR*AO|`r_h%dMZTBsa9^pxQfjY+$czS}|ADmwk&?E^oE z%WeExn#jZf%H~PH1j7>R`DdRSlwcsaSbplU|7Nt%nvm<{P8F|tvj%_XFOMc?VE3n@ zQtq|R!9lG*c_^DXFGl474?weSDB?>zT9)1K&P=d*907XcbfTeM?AQEc=W?1 z-OK=DTUci8Yj2FW=~*pSPV~meg1%>1=v(OViQfYsn$@ z*C*5gRh4!m|B*>b6G-p|X7J_5>#UVIP@qtp+DCMcm~|Z>6-GVlKy#RqcHLO5#gown zA0eJC85(9}VGx>K&&N96;q{8K80jQ7*-nXbJb7{x>vxK4y%W2hk7ZnxU@9D_C)3l{ zS~5;4Gskw%KnIOYMpElRiLT;)@{_x=X*0KEU(SAJ)eE>Y9F{s;k5vDi_IM7Cf2iZSu-p{^&J7tMz1_V9@!0qZUqAh zhy`F8k}bK29?11tBhXunfTAmDp%h95)eC*O~UfmlI-I0icrR&AzsAzy8LAKcdxvD)qM#YJXUtsF(=UNt8awq|^rXN4iwsSq&&k6sadG&}bWA zwq|0u0aXDtY6_Q%w3rYO@u*%GjHZ@>+CeUlyTo1_8NR^+_Hgl5tS0V&wVi(sL5fcq z0ewx4KRQ~hK9R{8!-NtO@aol6jAPt1g+Hz(_uLgObRCb54Rj~-tz<#5ZWz-1$Zy03 zKcdg$$o>`lJO*1sK-=L^eW+wDR)!S076dd%PDA4WH^PSnC)xRzu_h|IW&r!QRBrtx zfX3+GBc6J*--H|;?B9LC=nO{f?w7L8jDPwbq+A@tK`4>~pXN2SlsZ%fBNFM&5N)qU z-@Kq3wk9#O*vgRJ`jSIEy-dQLEGL|TuLEF;#fQJGH*kZAWR?Pj6J!wsE8)UJ6|o=V z`r740{s18@P6w_=#Iam4*PLI~l2cF#|5|gAj;8K80@|?Bb?m|0PS@M2p%$`_bTqha z98V}B4KVW(qPU25mjE6{J%S_R1L!7FKmG&>C~z5v1R`HkZ%fJJ19C#k;_5~%7@(t? z>uP|cO3%`=dOfrjE=+=wiC*)p)e<5gUUL-JO8CXcwv_B3%gGZCyFm1B)@n5V+-oYC ziHQj{G5KF#1>3c9C5Toc;XGcxMbL{5T3wG{-gD*7p|FaOfL@KUU&Q(+`W2OE=U4aq z$`*A&N2KPVGT=NNFS*U+1k4&$z9y;F1oTZNrExU`1(A_5KS9@V*FykRe)*i%eiJSco}^`;u1E@4qqp6?f; zv`sfKTw{$LyG^b~5EKR9CSf-72QaDH)=A$aE{uMJ=%T&_l>#$=-;&RUVO&l>cb3&y z7Q_%#2-=<_T3(X^e5#S|;F#-lD~a$c+e*-xxN5Pxa0}U%Z z%ZP6rHmzJkFp1{Si*w(>=%X%>r>5mL%A&EMxDMA+|(T+90h*cJFDgs zfqT6K@XR#i<+_nlcs&l^XIq@;`(UU>6Zl7_f%Ttd$R~JxL%$^&DOT5x4Q+pM@nN-Q ztzK)%>Clf3f5sfpcf_!t>kikE4g^%SLivZfPd6a!xswcdM0mt&A9TsT5Hk;5CrB!e zyb_tJDi}1GbQ|%s2Cim2@K0*&Kg|Lqc|L{_!VKZ?MX@|-BpjgDzZMNNnPOqvVOIHm zv%D$a1M53}gPGGQ+1)eTXHANz>**3Filtd2DPl*E54AVC3+F|Of+^4FicwwRpO8xq zk4#gJgoQ6zLpybvHt6Nt`n3kL1sU3>wT~ka? zl&XHWDBJ;Qyg$W1e)mqKL7CCthP{8aYPpM-VvHeg%w@uLY&DHN8cIsPUBl^C{_~|H z#3T3s7qT)6=O$oBssIq2+P>?s)5bk7&|m@q{JKn~Vx)jG<-yj^q_Ok4Rm+A_+>-;# zG6168A!4uiFBkInRH2^<^mEgmHPib4x@|1y^TB?9;wMkwBAsB_h5{%$zO_t!`ya&m zkv7!U&AI+(qG@b7_8rHc#fS0>cv=Kmb#v;vsQ1$@65@IQ$7XR7nW z-1&0#SO0yOq2I8*zw}|YG;Z$?+TC{SxyV#)7E`i+UuU@kK%fug1q|omb~xa?{(pP< z<$@2qZb}AV00Zm@h#^1^DAih;nep78s!qeQW{Qf6K5(m=Mb`I)3WVaoA#_6gXk-?U zUGBN>dj8xTWGp_Q)_~=!)o5o(h<7J26kh_4!l{6GsyM;2eEs0}hSOMHRe?g<#@q5e zF<90H0!~>+0GJJx@BtPRYlaI@oEXz6LY0ErS{)D1=VCRFUm(uBsf|%g|m>b z6U+ZbOaKXOrK=bd^}d3&yL;V)cq}aj(9FfaC3k%f=us8H;F9NHSh)NCU@=kF5=_o6 zVJ_b%$cq97!rVf@H@DK{&5O?S5V=YQ?{VG2>kB7lrlwagE4ZAwTrI=~g^WYAZ#K^i z00B6Q=gLs5)Ogv9xm!om-nVJ}CYXSLfFmp|KVJX{x6?sL9=%U8{{n0s((bvfBY)dz z@a@|qEV0_^v&pm7ahNwhY?Sa9; z3lFJ&IlTv$l!3Dd=uVaZ3!Vxf?6+X_SI7vRasoyAB9UMivkJ@*^)18>WxzPctp`D!Ff}>J)4d0%G@{q(&A_}! z0Xrz)YQYV~u-&#i%Y7-mud+Q;pZ$JV^CquM0~738U((qErez>>k(VJei6iB94&uzKH#t2ArkalW(E3yiVT3a(1|)=ESO zc7o}QEWtM_N$`u@P9ii$WzZRK?Eu0wf&a1LEcI;1@-+OuvkD|vc zXCV-BX(swJz_Qg2<^$a1>o3qTl|3UWN1Rmfc%O;`xnr71k7#x5%Xm5=Rxb++a&^>4 ztR1dloR6pM@pIl|uS z27@Ase#3bH8cCagW_94SSjV(T7J7GL$j(Q)dz&GYMK4n(pajHBkDdyFp-=J@sS+jK)(DGBR2iUO#!pwu_EZxpb5f;RUQI<`|6 zy3J)@vyNj?a-$P>(*0?zOcJ-a0~J^f)H1@sDiVEO_f-DmQbLS2s+52FbbV0%$=dc! zUkFU6YXQt2Qh-$2GO`-h{voHdEMu`F{BYn#=em6EHfaxVSa`k)z;%PgeyB$&0qx`u z>AoN#vV{lR?CU4-*8K@Fq)FQ{3ona0k9|wEa>v)cKIbR-4oDi>Akvf0-v{Pdx7_lM zWq$3AXqZp!YJhBV|bhMM~*`Lup)S0bdm&o~JElgxJ zDb7a$C=4olCe6S+gPhIUV(EfY<1XtVBd~a}Y6InbMh^VFkwlqemDo^FxxU4oj0|QB zy9-Rson{BQ@&k+F6dKnImV7fOPrNOf)jca|m}ZkSdIUiIpbm3B=?IumRQ!-_CGBBJ zf+F5k5iAh6hq~+6@qX|Zyr_DI(7VQ>%?RtICg`*MD<|k+x-g&-5Hl6E%AVg$Z8AAu z+9!S40_Ecj;PNA|7xWP*LzV!Wp>L5b?pb06N6E80g&!qSH;JtnwSNl_y%`vCue$Tg;vGfm5u$#fnw!x%lYQi;0O(Im{@8shwW^25wWO z*bdan`8}{GypryG56}V=rQF)q;LQ;Z^p<6S=ndb7-x~rw?i}(i+oj!SbKAn}&$%5g zNIjq#YO#k}AIW6i zQ_Ywf{JFb2h*c|r0(Q;u>w%uq!9KI&53V+L<550rb*j9t2Jvi6QMlb-1XYZTzf8M^ zl8Y4sWv`C+_gT|@k_9uYvGT`P9+l*;6rPb$ocKb#MIv@!l@w8RI&@r%-U;SGbqU?i ziiR1iQHLC@8ipa=Z-$|s=stZ|JAXQdS)%v>kvALlD8qG{4gZfdePmX1)PAC{G?m!= zCqE}#pG=S1jk&f{3!b3gE#stU>a*k~iMVH-ZGOC>FLo-&cdcV5t)mtfBvj54660a2v7&qjwJy6s z?^iim_bTS>O!76`gi2G_-l#SH#?=lB$I2N+9<0$vyCdwxsM?v5RB60SJstf6obfMF z(q*oc_6u#?jHG7z?j0r8puxH!zv;#rB=k=8K*r&Gbw=6D%E{ekSQ6;Sszekq&5}C- zIVv-L0 zm309bD>@?ugJGC@miVTP)G1_fQ`yGPlaw|AreIkK@|5Hy&>5Ahp@MRoLa)RnNKjY! zqdoPkf}16?w%mD+dnNu%8Cd2ZHdV-;_%LI%{ky!vmd8=#j65KAvK{iql1OOrXB{5; zY|qIb!)xCV|JGSk5{#0sbIPWqN~VN*SHC_>oP6pe9(26-zWLK{GDC((G$^*IsFuRU zQe7;jKDC_KBvvU8N?S%@hvo|#!Hof6 z7`K|p^BPsPnpx>RPsjirC~)|WE6%c!46VGZcZ3(X-AyR8dQ-TQWt#^G$pjlo=5xS1 zf%M|@i8j5Ap!^Oa+63Lyd^YcgB%+}e2x+z#qL@gbJDATf@x>=1aOCj# zLJDo4%LPwXABOBVh1dQ9vJi#gM~ACRDcT9yUjhIIk}3;?g-*QGuj8`}@EliHM{?=W zggxFMy4*+TO;uZ@T~@pNI?yiZ3L{(JyG_tx7b5k8n9{)j1q)l5)lu-oa}sZ3FMm@`t$(=gSXkt2Q1tVPC;hte(LSqrmIgLt+@iAQU4I zGKCXh#luM36MekRas~v26BU?ur;`=!mmacEQ!;VnPSVe}0QHu-p9qSho z!{10V6$-kt*{OyRiR)f2zomQkKQk(P^7e%_Upn|#VY-a1tMu6?)6eIHg{7*=_2;fK zC1By({Vt2=#`vDU5CIOSz{$wKNUWjKQaOfZU4)F{d;dAYI;tA^e(7J^udL=Tj)(e% ze-2#-@9$AdxEptYLHXkXAnghwXqz>68#?VeN(3~sYCa9bntkpc@_q=BZU=GT?%jlx_ZBNqQ5WJSOG_2V191WbY3@}bZ; z!?T^`!DXN{On0E@Yh{u$SzKVSZe$755b4v-I_a4F(RBuHXFrHyQ#0OHNma*2F9GfB zH339reem9t&6USlFJGEY-tKevl+5zqYkL3C#x0^Y#tupeN;PQ#-&>UZ7@wt?HaVqH z7SZX`R%w=9V3LPa_y16}3lh8NZXHbME`@p6o#?}+zo4%zZMfy%stGZV=n@6-&?K!z z9*%6ipA%0U#H;f;&e1{_@tZxC2W%?T+ID}eFwI|MB#zt`moiZ%W_y|drh6KZItx}( zqx!aO2O%t z(5E2-4T6pz0p4o+Nue~9|A-$!<Ozc=fzhTR{bBFmI z|7`2%%;&p}qSdt+Jclkn_}LjV!L2x|(RMkxY)hK8$oa({AAP@h{f-uPl}G2!;}M)! zL_e~N0897~D2v>qbD_@X6?p>AMyas>{IymGs)HhSQ2Oih|E%h#)j`!C3P}I+tN+_J z6sr4p+(!8AWNIGHm8+pXn)6oT)_b?w(03g4qlTI~4(C&`(83MUIr~&r@3uMr{$-CV zggk;c*YA@+ty$GEQsMAQv5EzM#%a;+&-SOocAsjl!EnAMgtsMa|5fH0b@|Ef`P_G_ zOdii?xb=n3^uj3rxnD=Fp+3(X+U5>m=Bti#r5z=|PatlkW99eXku~?79GnDAx%xFJ zFeNG<`gbUab#vg{SC;KFys9aU(y{8fSTkPQ-=R|*P4{!{edCQ#7=pw;>xW_tt;2R> z%wh}@3@ZXS$AvGWSuhvtFQB`5l4u6LJ9B=srF-9hE~9*Msr_F&P{rGv`iar^shS~8 z-0cWC3vm?REa)T;ko{=?cN4^JHxS)*O;+?r`9hEz?rH;k>hiekD>$o)2&l`y?vrT$ z-B{%w$tlVuq04})(LbwL%;b{dEIYUV+r+Wk|9>0$|LPijCcIiY@`L+Gum}5oT2)0Y KL^b?w*#7~_O@4I% literal 0 HcmV?d00001 diff --git a/wiki-images/example-phone-2.png b/wiki-images/example-phone-2.png new file mode 100644 index 0000000000000000000000000000000000000000..ceea8d0835cc9bf8c1484a87dbd360f0442b6ec7 GIT binary patch literal 103224 zcmeFZWmr^O{{{>Qf}<$P00M#>5gA%q8k7*EX6Tk?XcnmcK{CgF5uz0 z+{DAf-p9iej>f~Ia*VHri-Ipw&9&t%l$7vT!DkXYBK%8ur@$wC@D~rC1`l^N@Ci== zpZ2fM2z=Oo&LP0Vdxpd#{LeYM;3w`+82E>4^T$uZS5NVX!EcvvN0RY>Ts@iK&z7f~ zl285l`IJ034^K+%jy&#znyHhyxjo9t!Fh?HO9dP_<9JsGg@;GUg!_jtkGTE~j0G`L zUE5h(Nm1C;!H(0|%)!K*^P!z1?mBp)4~4-;J9B4ahKF{x_9)?pV%L5@Ll}I<9p<{m z@cSvwHe%Pbl~ft-I5?Rz2youyym?I=!oa{F>SSgijF6W7Pjm2_*flF>XGdW!E;lzf zPB&go2PaD|ZXqEduA4kuJUkrW3=WjLy|eK{4to^i9~b%aI@0DSQzxXOGt$AH0e4+v z69*S(v1`|GH~Q<(AN@3ci2QLUd(?j(3p^kf?i(&{&YN7nYUYfz_?Kq5Z~kcZ`*Zzq zJ5k)lgjJCb&26=%k#=CHLD$52Zwm5={(hf-eD$NJe>A=0VC&$d=4fncF3$a*CO;ke z@3S>f=1zAU?7)4T#eYogf7<>0<$pK)y@xtKddMxrbMxmO{`A#PO>vJbj4($z*t+0` zT*DseEDj#*SBL+*mClc5;@o_E|7rB|(f@9t{mT|VAN}tZDo#i+5XQK!;Rf&bZvA}h zKj({b;g-rzOXrVu`TJ3@FvTIFTz@TcaR|k9HQ0}mc=FOx>JRakCy1k=O`}i0Tw^|S z%^w20mYQnPnHt^n7-I3^`Ni#rd+>IAA&VwQ(ST@f%f=voYKl`g$SzWxdL`v_yla=A z;_8}Fb7MvMA+|a)X0c$kpx)CpCbn=X*V=BZ!T<>)VerKx`1k*y#gg0C#08Z}@d?Q! z@&5HcKS|%@%MOJ9`^M9TonY=(m5Hp1P%F@vwR1sZ&jO8EF2s|ZLOZK;`wu`-0^ye%?*ulVRR zDPn@XfL3vmN7AsE#0N-u5J)W8~8dSM9}*_rA8+q1moDcS~icB#EaCWU3_D zhuoTe-YuN>ZyP6-Fy}g~VrSIGljuYLUWQU!Y=zxe>$45%-EZjDI$Y(7&{IF zaw#u;3#Q>$u&L3v?=LdGQ#dhy&FYKGeO8J($(7M^lv4=5b^px+&(y0&6O*>39qp5z zYjlLIvLRQHs|_dKX}%gan&#cAaiev`-|k;_te<4ELN9Zo$}S%yqJS0n(q1K zgFHOc!p>QXLxo9jy!_}u0uv4Da5f9QPEx;CvMjB_#Km6BJ+hXoq7RFZz3KAiS0YXS z&7M)8QJ3G6$=*b;h%6V~VI4SIVP9@N(C&S>VwvcfnFUtvLD|kAQ^)#)S37Kh;h|r62ZAQ(fj?EFP;?a_=LP=Bqwl zx|Ug0l?vHb{lmr0^fu?gL!=6=OxAh6w#c_CxWVi%DT9wuuic-EV=K6S=GUEM2qPwl zpn>-3>(H=7Dlc}YJj&K7wGfV@+!C0NM}@#!8*g)Q=vDANyXyTgCF%5v9G)MEUw-A} z=oR!<&&6`>;D7NH>h+SC(@lIvn$>RKj_Gy`ug6FJ<+oXie0(b&<$P6sP>d+ z^w>Juj--s2hH*JE>X6~`*@F@8pXri2{)xm`-yfiIklZd@HE*B)8-IEm+Z&?@}M)i$q0Xw*w;5$HIfnY$Qkwi zsC=bZKJKObO2YyJR=X1wvF-5v_2#Q}A(`rr#Zf5t753(caO}GOSTD1`F-aysle9T>KZO-GY(C5H=~_`trC1wFhR}Ul- zQ2LdDA|=6z{#^Qqe~C8y^w0LUZ{wGp0COrsFUy#rzV!xJre}jw51Q%j3{j0LV9tO4 z^6YB+jX2v&BU`sGGi5p>YnDsy%~XjVETmar`?FteXNBn}yKl}}Ot=j3+vJx=0^j(g z$A*Z}vMbRpLovqWhDxF>a6=b1H@hTggTJL*r+mv@d~dk-9%t2u+KpDW4B22B;{ksm zB7P_5Pp_C#ws{PyKGN7ksZ0;Bp z@%?m#lMI_xC42( zY%nATxY`?cQ!Wd%-d%DXHYVN#>*3i-Me^YO>81@abZUM0@>GLQdY!-V?v#%YaNFTj zVQU37tJdem_wJXDSj5SMd_+}hhAk(!O`hr1$T(>Fwln77z?aIMGmhS!z(wTnf!d)d z$M>W!7ZDW8Zx&JmYj?8)G-jg_jGMJ3{`$NY?IZ-na3zgoESU4qoX8CiBBZj&3SVCp z%2F*?Grwhp;=1=j%CmN`L+Nz{X(_hEMW&xKD(gf) z`iGzW7#5)AO8p*09mF7}$`^-&9IfkIJUu!kMDOmC8BLQNf0z9lhSK<~B`F zY3;2#g_qdVF1`?7!{6uBf74yNJ*a2#?Q`Q?VZ(8&rrPj@U)VfJe3BVanCtk1W*HtB z*&HQiwwLO}cy`z{lp`m3Sjz})eqLxMtVr$r;9^^c7w3GUr~S>_jCsKah+fP3;v#hT zs4%+98yLp8_ZK8YFT20)+_$+t0&Fz(ci1h*MNAY8QMgw?L5!@L48@9so>Va~*wHH$ zW1QHqMym0b5y#o810nS*?BN~|kG)#15;|yKRuLE|@yjj|0THt2!TRcocbjyVa$Nqz zoTO-uTC1*h{}RO8Nn$^lrNdi(VnOl7dblV>Xu0S;&Xdp(lDnL0%uMpeqQCD22s<1d zXCnA~GW~lY!We`zd62imRri^TY0fRx^0yhaN)5mmN~HC-3s>)X(;oXqKmG-8q}}YHfk*$gV{b9y`)Z@5w&v z8}0cWI2|IX+}widR)hG6c?Gs?-!MeW!FT&7bn5u=!Ge>wNR-9)K0kVyR`7l&qP4n1 zaB6(vWLD893Fj3z_r8V_vrwrCd23GqKSguY$@V73T9VznVPnAZOt5v$Y@}WQmRII` z)dtNk%;skYzj)b*ohhG_7A~R)|9gz@$5Z?7DL6ni`9hV33Jl)oK>LN0dMJf|!@Ox7 zaso!`Nya>)CL%`xSqt+fsPo(vICc6QiEPN8-4~;KMkH(HLxyuz^NE|ICm?XST!lI^ zT&)I&0LN6w8AA|}vd~!Mh z0h77F=NM`3WWEf(Ao0Cu1US~xo-)W`x7VvK(M`pVemM}45WVF4TXvNbkrd=Bx{D#i zq%>xHLuMJ~ads8lkn?lXb7U9~%_5DotzRbAO>AL($=blHU7Hm@TrPd=;x%`6lTQBC zH$3->?%lKRC64zPyL6A;P~n}u^MMY*sj3W*E^&0{YH@wt6oJ-dexo_Kq>ZAI>1a;l z`i>6hvTDpavU;qvG?<^36H{#39BbYd`DCz7u(|sq<#21(ZjcyV2Wor=3c&FUC$=B zLnlE44thnY+=9jg)aTL=X8X`7p=7U}h|NETfyC)6CsXu+%_==Fi=H1r-EO zE-nd}v#Q>m^t^K+Gd!x)q63nj7NJlVi5vkLR~;fo<|v^>u36D;1L-+slV8=$!!cy& zX*c+Yze4HYFc)sM2o3&xFm-Yq1%JyN@s-uiF-aWl#Dh2hp1L!pST+cGvKam~RAMq7 z)hQ%o6E}9FTn!b3ROW~L%J!|FnPG>yZuQ8?dHZ360zL*&zgE>i4M<}k{S(U()VJ;q zce8W!TM;Gkcz=JGWF4U^ha~5}#E=K0%jm^Jq!K|@#XW6jA*^dgquCh`-D*08{kV2qXcttnbb+pl~C`ya?v%DC8O;fxv%Z@xTL z5TYcO`bDgkrSBJ8B^=*nu)B_W(NrnJ0tL}o*Iv`Cp^fy5UU>?q5&N2z_UfgAB^L+? zQ8#n6bRziHUL&5#MBq|io(_Y4aRu`_#0ME7YJ;;xq1!cEzzWh3UFCZvEj1`$HyVAO zPB@(}7Qx7qh~Ck0+nr6c=}ce@xs^IzBFz(F;0MEuMQsD1hU(Vcng(m2CnLbYq$X3GvPJsqF9D02C;RR z6GwYPDb|e7Upb9$yC$dqNj72Cmf-ZDo&*0uLWhe^y;s#f2x?A!B|1wPT|TJGc9%cv zEh;CQlD{Fz+bd8uYSAIqp{F*2Q8wr%`3=RJU_+YT%#1mvx33tnu!u5neW6Hh6Po5* zILCnow_dqM|Eqj9K$3x3ihE*YWpmb09a{>rH&Gr~Mn9V7OKQLU6K!X?g9t6d#R2Dz zHeSolD}~h&@N5vy&7B;tom{(sasLX!D+&;Ye&n+sA6~9MTs4FqZ0v$4ga>$L4=Xf= zOms2*b#48*!F3TAtQknR>mDD*i+Q?|c?HsxmjZWrV|>!`ONhwo0!24T+*kG~I`ox| zI_1r|j^N|tgK+)!C$~^@iksbcF2qC`daxLi_lpPb^qgF%XNuU(pYz+I?y(BZZKCvSlsDm7@3Oc`f4~JRO?4 zOtcohBbanNmG9`p{wu`puKe4Roh7KN=esk^(u119bq)TSA62 z$~jr@n4^!L+T^;~U25RLbKCUU+1+${&JNXrgWAmW?rX>|r ztxiM?Ub1IclvY9FRN|ov@q!IlmiR`W7jVJ$Gpr;|p0H^ZYzf!P2C~4G)DCvn*3>w% zHfN)ZPB%O<#^=`fj?FFf@6QI_CTX`m;~{5>zJLO7%2yh)cm1OjqD_y`^?KTr%YC*w#57IYGX`;6uRke0IW(}JgV1&(k0#vUIGwb+k`ZT* zO^8%Kd4}ZEU^NHunZ@U~euioM5ezFSnU-xutikIN_2i|&j{GG$kv*^D(`QN#D-)0?bHjX_s@?h zF_*qM(`LRjsT_9-tbu(&1=IKIn?Zjy5YuEW2k|B}Qe+xi=Hb0``_K-GjH=hE^;ttv z;YnT_FSU$&fW$Lyn>9k7}_gsLJT6P-qUf?wQ!FoN(34iJQ&yo~lO&_kMj6 z0m6=$K+bAd9%Shf2>>Rz8hbSYx0t?x>8Z1p3g`+iDKn^XP0?Gtcb`c7Jz^4>n8H@@ z=9;sFQk($kTzs#-M7<2ldTKzu*N}=f3$(ci)l%u=q4Isn=!A!u{$cVE34Qqqz$p1a z0@OB|4H8S{6*TGPn+(y9*sY0U*I0A*I>j=er7_{STp;?ZO2cbone5a22M;%9J{b?x z4jOpx&!#jS8jJK?v4=dB3;t%^oh&tM->z$uZ@#t5m^1FR*+D(Qp1M^^!(DNFu=I>x z!6(Y=ly{1V3CPd?v9BZ}&Zg6+oI#e&;kf4Ye|Tnl##5r+ zI6KOH8Sf{-z1qpBaWI9w!#qbyIIIx|C~vuiHE~d=t_%5KJmPsRl_^8@X=)JIiXyIA z{@d*A+7y^{byF~C!8w$Kj_(VmT3#}CG*KDZrq<^TMSTLMIYcxu|MTmeZy@?D9e6EH z8DQE=-cm{d_Mih9Ss+BVzvp~M5M?~@*@xuR6(#|L!! zwGSV>vxXcSRsrKBM<&i3c%WXYU79{!-9!VUvjH7h!+$Ey5BS=$OyRQJw7V z{d8$(_ic=Zx@sP9c5`8O&U44EWkt8XdGNIzq}DNlna(TaLo{gQ6-~bCwGqoC(%g5| z*9i_%wIr%or_j3wgRc4E&Ty7XB2gVN^R&>uyHQyeQ)u`>9H}Ckc;`1E*+j)iR#@^1 z?^N1cxY`6rZM({>dajX#$r4GB^TU0J4bj^J(z(65JFRSm>E#JEJpiDhq=u@Y6Ff_L z+5z(D<`%P6)f;b-W~H7nw-j(tQv;APi!0F0nD@Nc_+t=|wIplzA0okK2ow&Y7V~g6 zqf3Ike|F&l;^xy}do@q~p)b+gre3b{bidkyqLeMxs_o3%F{{^;ZapwjxL*CVa74w%o)UyY({y-?#cygh*+sSI&4QDm521!2y?qGVrMVMYgQovrsuCX{VtG879%1SK+&fx%f zn?rgL*F1QbNZvx5L-6M<7MjIN8i_u~`&q0)21#d|;|1P8Tnl=<6!NLJC+}jAqnUG& z?PXRo`6_1)eLgVn@fp7(OnU!tXdmRRj7!#K&cjxjEp*`;s*-Gdudqs7>&Q3(V z*spa04ALA(L3sf(U~kC333f~1_jekNMZlIZ6pk9?1?!jw^S6UDXbDsK3GSxBX!)$} zL*oadT5;ctJ;orYaXPmj|2f<@6RWVW$L(logD4f%@Op& z1UeQY>_3_5dA0*^Z6p&ZW*u&*-ZNEtkx^D!qYdkUxrF(L$pd2nt(P41H-V$PUnsa8 zuu+%@n*-}=0f0LT5N%zU&^LNZWumIMSj^`ZUH`qkvbWr3s0Hp@jY=weQB~sv@nHE@ z3jm1AL{8A<)@P}BchyxDkq}~ zY9S}H!MJL(Pp|S;)D98dw-Qo!i@VkgE9Baaj}O-jI|i&46$$i4AmSeU0`g2r$=a`! zP}R3sT^yA!bawtKJ}mxmfx`-&SIK_oQM8>G%Ib39{BVR}1o_r~{yB_U{0+>~-*HNmr(J@;xtw6wS zzsF!{i)^|16xQto)RruU@C<}(PH=C`Y}UTRaeN-Tt9BOc(Jx;|vMwZEU|L46R;bXA zu-B&*0+u48S1?I=x(mFehzEJ486XP+@+f(?S`dM)jMu%gy2GCg$^ za7#nib>c=$Fpi%4vr%&1RAACc7}r8D1s4Vb3mScv^2!*p`ou#y~fUd zDK7{_=uQI2`APS9(AWZPe5b3bV%j(86~%89}J+d9(pH>p{zwlS1n zE@|TwvgxXI-)sj&6SnRIhhl)>@@7dr!inW5*|bo1|%bLtSG?Hs=kO^`POe+XAhMGMy?~5!Z-M^ZN~sNzP`BgNfR1tTC&+v zISc6wq802sN6quWYwydm{lVJ!3TEtSe9v#T8J=Z_TW120$8T?QiK8kg4upEWe`U6F z$Xjl~GLm0(-OXwhmFb|uWm~a5X>wX~#^m%%z!&po#ybUQdB}HAxq$edc1m66%!TNt zC*r8bXaIX!On-PG%jm?zA#QZ5(q^dh`dJTa=u{RwjmJ(l!oG0-9fXD9MjkFXP4YhY zRAx6OkeyJl0x|&0E$v}9kmF%K7C#?`P_p;>M& zsCmuPZ;nJ^tqK&ArpLsS&>9+aQ~j^AkCmPaU!54{_BsBZK2U$OGnT%j?e{Ayev5#b zsL6TWqdA0bbHjFkvz+T{?*WoC-N@%?V6R;+&9%~DYBK1mggBSMW*r=k+;i$Vw#Bgb z-IWS<+~9zCEe4KW_1-w3*u9fX>EKaauw_d}ErLZiSq^+Mx&yncM2Yr2x3L-vnF@!$ zvRgTl4Eut^^uZ$_h+=H$-WgU>&Vi{uz+uq1Jf8Vb#U&HqU->vruU4SXsyI>1(_;XG z7&w~;cAH^vcUFFp6Ig}M@f+1>TU6BO_ zHKUpGSNYvESTSLAYCZk!+JHE|GmH%%+7DS(_hV;&P=KYHMkoOyz`j0BKO^ zL_xj~fS7@olvdzeKA%-L!zO^q9}k|<8vz(l(Lk|_v5_{gvZEiFXGdEj*n;Ogz-sC; zIaHdJuaGNx)9k%m+BV+9@Pt7BxpNq3N6s(!>?h;wIP@5`-?XZOkqSnGi;FFp`g325w@7tL04Apj6lkRmGQ#4UWI+s!*K zt91QL?Xx5Fi%}o({GllYOm>h$ZVq0}F+Jj!l;d5QWDnMeiE5yFDO-}y=0AKf(nDotY`v>??>Sg!_=%T4F29!6vLE9(2tvk6ZDfQdCv;fYJrwDy+| z+F^nO;wQUV#Us_!X29r#oFiL&s9>baZVqhe%ghqMG06_5{F(m zY=%QarDb82loS7aGcfzL2sM_^J%I6RsnFDXLd|Ot4al$N zB}Wi?2>_yGCnqjYfo3G*zOwnzUi>434UvD~nc+ zzWLk6Erk;|5C+K(p3P0}vB0JDxtH?#vW5%m4_HeKQ`8@VRIb(@?+suOc*U78evzfe zH=Z0xcPPa?xHF9Z&luZR5<`;CpQ+uIC{{##z(V$tM^{Y0Ms`KhYRr^mP01{TH3tAdR|#b$C7p?cKgx4t;H!Gp~HqO5SZ%jN@47RkL+O+*WOY`iWXc zu-@N(ZULySzE3|clnbVbaCA@M?C-enwK-G}XYLkQV9zlpQ&)lO>-I2aLdGv%UZ1663@YXjLK&qFil$R}uf*j0nY!!r1hTE*UuVjURrEFhvgv1*-_s9UL zggX4~t{7}y>d|THq%BY3R`g(Pii8J3n*1@!}sj?i?lusND$qOnzK4I6}fujCts#Ai3!xCB8!;;S;Coq!|$ z0TwppX*M7B+Z~fJ$~JO9_y}tqafkz?8X<0XB-VeD59yVQFo`YX!0P`>tpcr)Y@K@L zP(GlU;eB-Ql9T4aCO~{-2HVp8ch-1IG7alI0HRXyX+~9NY6oD7d_XO;Jz6MBYi6?w zEj&dD$1L_`(qi(qSOCBm>ke|Jb{)%v2xm?Pq7FWXNLl8+(=p+L?5uA$0ljj_*JJfz z$UMqmPD3k#?-jx*+9q7boB|^Ngf>RJ!tpBiIePE|K5_T#7qd$cZXGVuKJSHH4`x*( zs{^C?k~x_#^LG`CWa{modP!r=gd(0ZgL|Hc+z)^8p(OlDefwg8%Da=B)$UVPwD z9Hf>Naps?qmL$U(5kfgBiw`Bvl+bS}ei&Ss#?|SydP!pS&DVAuCeh#?QK#wg2H0P| zH*I1$7Y`5`X{5?PRhX5Nr^4X4R=4XBibW*f+iY`Qo1DPWB+=w5#~pEk7Z6kjr{9fR zhyp3cYTIK#@F6E_-DUl%vT!yt76$@9Jh7Tu$FCgFG7=+s3U;aC%S~4qI<|>z90u+m zxM*9bZk{F=s%)vIW*dV1tq6`GflcIkQ|VROuej8L(4h-9n}eXkMOqf)ZywA6(S%?y zt>F1yLVEy<%)LEzL6OBbe=5R+UOw-BYJ6HREta5V4FKWi=QP!XWrA0GPfA%2YH;L0 zEJx)y&l@R=K#mHM$iwex$!P`T{{kZ+AOVYkm=HQZ6z${uzJvAqmIN8~?kj2vNziRf z%<4I^}EF4lA{V&&-FuSa`+vYbhfC0PutN7P21R5=acf)twRzXn>37g` zZRx)&B*13a9(^)LhYNY@u-4KavNIEDzFU1rK{#QL@@M&NGPZ2MbE~rl#?ADC^ADDdVMiWK2CoJn}waB}3Z3D~!X9T&1cF1a}apLO25W8GoVC zh89UGERyqc1$0rZ0$E2~jD(LjrfA`ou%SAfU?|FkrfEhmz+Kw6P^x+x zP!SH$y!`f5_!acQ*1CAQtl(a!+RSPh;B^|UUOy$Jl|A;hh#l+}vmZtgVfilINVxV) zQGr{?V)|`G6_u*T;K}iBLzRT8KV#4ppp9M&}wmOinaZ*~O_ z0w6D}sRE)=)XtNVUU$~L@J<+ur!3@EJwQx%fC4(!K{0L6Ys!@RYWIlWnwPcf>)-A? z9nPedpnPrm@$xdmJOPd>Wlr)ci2+QUatP*a1!7?mT(?fV=A&^&YwS&$Z(#d5n7sfFse2cwp#yujpvN zo%Mk~G@k#m$z)N`+Z9aB`*F|vlUA-KM=8kHn9K`WH}8(ZLMg;I9gx>G1p?}8S9{W) z_2}~h4*HwN+I8WA(MjTT?j70j+W=TgZw6__ZbEOV*Y!5`FfT2>G=ga zVjT{*m>vlH4y6MDU7ahx^MY!jN46&G>EN_NpSv$kq;thQx9unAS@rG0N zYdW6iSJRF|CLVqb&H$cuZq%l5o2F^m-XV!i(hDH&)DtZ!7fnFuSe}dU-r{yWQBL>5 zvpkh#x?gLQV4(RhXKGPRS%`^5(pnkb!5FRFBWez$?vOcb-m(yLAChbASBRn+r)oYZ zLt*2cBK4F^E+VoX%tHzTN?RC2Py*wQ@9(cxjh5RGGj41>sYN)jl70dCIgs;V!&%gV z{BKQpZ7N|B9s*kX5rYm;&b7zd6d+^ykS6^Cu%L%Do zW92rM04TQ`1OgMBl(!F{HlH2RgD9YyZjZ>N(=reL zO+)?1@TfWyOfHfKuC@#P_6zjshbi@YbrICk@I=Lu|4MB37lW>#1&UG@4Lv)r{Al{m zPcUjw-@=5-7J~n;dnP-BqML}-^7-~(K@)%Gj{n!OA8^|Ljo4ock?jB0*q=KDpYZ=L zyV5!Xg~b68IMFvq)wx0ZTps9rzD?k7=223U5P)44lw5|k0BgAq>LOl6py!s97aC@l zB2o-~KKCu=IpT4*8?(B$9j{&QFG z2rd<&>Be?h%qTq1@5Dp)^{qty79Wvu-9HqrSR-!`UoO{D%>#I6qc|9G`Uh%b60#NYkgOihU-H;UF#rXyJGTlqG+|e=UkkbPyc*QXs$2fhV|oU0+UUj%f^%{ zv?`K$zMK{QQPmdJuGLSgBdat1q04e&0ka)dy-fR;>0w|dh`pmI!}uYRE1Ft#KIt8K zcX=Pbdht-%w@!b`|H1^I0eDiyx2q6kju9MXmT>B zv!>{uO)dWK_4{|zut-7%y(brJ_s{+C^YtJKAYzp=;H3GLto+Az3kv~H>)bzl`scR) zxH9OPHKn=@lKrp8`g4L9!u;L>=!o3j00>$ix9Nb2%>VRWRTOMt)^%N1fGz6-7`5@@ zJSemY5#4A}5cRNl#yV4B={l!T;{qtF4nVD&;8GS`!7#3nHl8mF2r6(WCHKl$r68^> z7AGRcNv>i<-JNus$4mk_6rY`^Q^aK}Ac<)QDt1d;_Eu^;Qj&fs0wj#>XPD#3@_fDq z3%0-YJN23sLk!;P@yELW2F;27>?Lj_(rfXdo2toqrFoJN^PykE~_$$ zodC%^mF|?AIdB-Jc7>qMcFh7gb@j~UKiH7c|H^6tqT&^Gg35Zel)7IC%p ziumkeUMXhGsNk3~*#JEM`OfbEQ#?zd%76`EE4Yc%wqQHrh57(>#poOdd}<7i=_h&4 zlyeIx=1~BE^dN2q6_{M8oe@jgI-}{fS4{WX0ixWlrXohs!1@p;gC}0e2L(J{CWBGX3Pw*`e#p|zKQ_E#gXUUqC5VBslau%cwH*>WFHX>l(la_?=N z81pXt27uc6^z5rJRRAb4WpsgT#|LIlfSHe31cE?E1t1tE^^g42xdznq`~b&BlLeIw z3BvEUP8gB8zH9<`I|dL4H_kmro+8>+7T-5Rf&7zs+)#>_ z$U>ukAE(hEA2j{#uN5F^d?pW+nin5O9OYp*FK@e76hW=*>d!2QfqK@nrGvUQMCi*z zkTd?XV;ZSqf9_3CS_9i%CYmsF0o_s zn_4VlOc-mztw{}4Et$1O0OOV4zEkbIXaY1oboaKiA=tA0@rf)ULV!tJ8q1s`TLQ(P zI0U#z@laJ&8TBbU3$=$URKDAFnceXi?yHpc!4~cbU_P2nP{KJX(|EWH*o5a8e|0jY z#fz4J9nLjPf`wH8`2I9km(YAXLy^VM`cJlNm;fj71Y@RaoJ5$<1;H0VC>~9NJt%UE z8564IBa5#icuNz?+%EsaHUldmh)^_&uJOwe+ZkqD#EiQP8L;K4LCyyk$ZIY?GtNH& ztokbrwt(5q`K}9{@J-dDsgon4stZRn+_Kri_(Zj~`#^`)RySX+pH>0}x7G>hrL4Vx z30t<1zdEqrH||jZ11GdUwUE+i&P6i7;on;_?I2wUV4sQlRKxKAqhA{+OnSccaq__|8$X+*dC)q*pO z0Lz@vL;A*EwcUQ+{c_F^A3swp*%%D%d)6ay^1W}k{{;|sxgaLN?&bPY4HzMbyFyeA zh_sCHPtS}zSIYNTi-*8V00cmZxqO(9ej^5_48dXE06rDcY~Fp*+l!PA*~zTw4|iP! z6+{By`|>qTo`TG>aDa$D5AN;}HEqr3Tq;U+Z-aWNznuZK8xa5B6dLAT8QxV4RU5dD zFx}b(nNRF&TT~pVGkNa?_PYfzjVW=UXUm5br&{RQhD*w%k<4b5`PQ4` z-cK-Ei9T5v#T8P1RGL_f?w5q1m09(F|Hp*ZI z#mHD$#(Gdt302o%SOPe)z{%m%$#OF_{B5BQ;jWwN1^hRdEoCy@wP1NkO)5l8>F9lAB=9$tE&O|GKCT zq&&1+?&#g$a_QX0x$oY~I{pa2ZQ3%mqdG5EYz-(y=UWKGp4P34%!V+2+*nlT0Y&Y9 zMC1%2I8WJ!WRvUxUQ03=II1&D{XMG9vNBh#%Yz97S+UyJ4_-~sxnx{u0-XOH)u|&n zDg5Bn-s`pNGHy}XUw@YY0{Z8L8&H2|d!pzQ2g`Bwm0cCL1y>afe_Sk2zxdmyNuhz501*HUJ2<+1G? zn5wc@L^=ia2iWK_z@X7PTezV61@xBV)d46=S`a9*@oBI)6w(WOlB}d>6}1FsVT!=6 zff|d}eUjVd@9W)MmW$k1phbN!2~5ovhX7M5mMv@#R7NpPs2c)Z{n?F`+*kE{j)DF* zt9Lo;p1o@Ybr3YP+!?5GtF&Mfqw8c_N~==5>qkx-p!YdkO_>{4 z$DfdnKmkH(taxbW#Q`#wv2~I#BaZ}&dLwgm8v`lSt1PIwMWT&d)g!uH&~SY4IO#oj z1Aw;a{HDg$J1ievUdM<;l@mx|mlkB3fmo6FP)%YHXqrRI?-6U(0h&kX&2Nfn;m)Sf zdeFQYP+sjXgY9FDdpzf(Y1C5}qegKaOwfJLa*@|T%n&mJmjR7NJ|cU)Eq(MiQ1~Tr z_tC0_+w;Oq*IceFb`JaEBRd1~eP*mf%{FRZKk)z_BZRW(*6JsXrP6nlDzXIyDUHq$ zh+|HdnOgst-SSd0&&dzd2@QXnvmk}fKStMxshPh-^l@jxZEBc$v9ku$?=~4$S`V=9 zjH9Q$zg+dvO2V=XyG*}ezHx4P_$UuN_naRw{qu*y8N-X7f&L#R4MX)VGjvMaSW1j}MvP^W(r~(YwN@{v2 zWGm}YY&&8;^`f%t7W{h%AB}uk>LsENwgyB#>dmhHD;u^FIqz-TfYQ)o^ClTP9ID)J^+7p86RD>gG?`7o(n4wQY^ljbvVYY#(;B zp0n_$c{lnDEyT<<=CGB#wQK z49R53l6|@;$GA~e06_l6(1Y}9d%{N6rB=r)f9?HU0wN&$f7_bTN)AuGaAdD5gBet# zIXAJ7NmcHo)U&-P>UQ#=;hR?V*-9(tXc4&>ahMHs09a+}^n<=$$I&KS3(2kln z9l%R}&I!OdH-XM~#40?v_h|7>6$jSJ0PJ~r5!DJq0eU-Kk(xplwT$7+S^5E2&!`O9 z(mL?^23eNlaOL+Lki8~irLuahLc?NIY(63gZJUL&(gWqqO!@Y17-bWC@`C4G7Tcw%cIk$hs)YYlShPC(0I!F+LIN{SJcYfPPLzNbBoL() zF7u!*Tubd?Ov#>`>Edy$yzf9&4*k~E@OKlWky%rz{eGVU>`nTEQKO+ebhSWmBNZU& zcD2>JyT)zpJ{2}JN38X6O8@lgya`%%ZKTw)6H<%yB-(yGYr2%%;jvm@5U~0AC*k$t8K~KTbV5$O zSEW%)ZrYa&tv+IR7gbwazVvMilu~d55{opE?f%ygS@?bFtIl>0jRwl*{rb<7qI3ld=1le?;8PYq`-WQYiUPKz51k9nIhGMHx12l5xL zM-z*@)f@^hGJEdY!?7NE{TJXlwR`T5BAy!QaNC|FgRE%|__m5Tjfee~nnZQuij1*I z!%Eu)=ta?RqW5)+N}Db$Om!>IMypy`uYAx+?&`(HeehY;{QSw@!Qu4Qr#HrK`NtWa zn{oE6E@B!gsOZI80wT{k<^1GmuV8@+wOwhud~)R;ETa10i$L0Q*#s7*^d0zsj34(% zj!*g$#y44(-146a@aSefRsiMor=h^}+alDI@#`I{Z>>N)YXR>&iYeA}9*SN0 zu<$59f$AQLcO*HQ4r5-4l8a+8Pl$W93W`dD(L#k6-a=B}TwPreca}@^M+q=w_S`d; z;zlQHHnaCUvz~~^P=2IzCe>@RioFE)E+5lp-B$T#j7{qDk?Z)}99r}8jeH{5JoMp? z?iIGyd56MaN>+@q7cP($dErukbqChJ1>;{P5EZTuN0B+R|YGe>=Q=At0XzPz)z)z3JTH8c|75sdo*%C!!y_`MC#9qrj`=Pk*E)(f{P}akzxhWA|33} zTk???-mWUhNTQj7KdiG<%Xii_Dv!a2)4lykKUA=`X z7}-qb@A*axbSohtjw9Y_b7|+#1}y52`$q3@gV!|idVk;3_R(nLYwaL?j*JlxWXpZA zV)`cLUYU5kRd|HI){6rM;VIn9E$%91t?*eZCmnu0lv_V6E1bxKS!;o@+J>fsQZpbl zZ?wQx!tCmKo@KpR(Ml4AC+VbZ^fTLRc8&ML1x-$i6r}qsKj$WT3svn`%4z4;l;6AZ z7siw&?T3wcn3qS71#ifBzM^8ZH74?=tUDod0ob>Y0h9=DtVpYCx_YBh2mDUIlKVkVhu5coIB`*SQ$GS_0S0ITmmu2d~#U-X~ewYViX_S};571<7BM#Q5!{v7IqO06&X%D$ zgyD7Cs&uK$HvjFrjjR-Qrl-tlxXl7L5^H2wPHf?yrCA8jfwIL-#3RcU)gs(^R&~9n zNBz ztRRZvbTBn&Y=br`p<&X%D>+K)E$*tnRJyP|>R{`9kmw$;&Cs4#`Le@rfO;unIp;kbC^`C)Hhojp9Y0Cv^6Cc+wX&RXZdzRYDXO?E*X0x|qt28LIc|@DUJ>MYi93b@P$<{cOg-Bex% z+jU?#LRrPOE6+p zXZMlGE?uK;*TIx$orqN(?KWP;C*0oY$c~yX!w@l!p%9Z)U{&eCBRYWR+W!ay#*uv))x3-svNDc zPBGzelB1td=Gbc??$u3`Z2za>KZ` z9*Q*kU$cp9@5XPxn~Xx@wCxKsJML~TPdHSwXux&&LbEz&?Yq|_o*v23hPM@gL)GiQ z_ckNZ#c}W{cLh|Qr$t(TUtz0Bul1&myuHAE_R}b005{D2s<+{jFbwaZ>%69Ws3;;+ z9=ApI^*yw0t7$p76IKQLJZ(w_OcI*ot1SKGe+8!?&3`zKoe9BvrwSQC61y@Po z^O8}22>5~;#W^Bcs-2h0LwW23%59hz@+gcomE!4#*lq18Muwg1c^mDrY*wJ2bk(Ni zxm$WL@$NK6qy+E7v4X8pzL+R9X@n4e=Qpdoks%?D00bn0rsM$vJsrNq)n`v_#>15&n0qmbOKGK=Z4;!%&I;Osnsd zARM@Y%9*m#WiZqh!LpJOOw#|X5>$=Ljx&r9m4*UFPnMP?5(SgRC;eX66kb8+DkKoi zwn+UaQAY-A*`49WRLaX^T~>MrH#N&EdWo54%A&fARv+w-a%Wslfl8aV5Rc*VGQo2Y zz*{rRRD9mImN8;+RrK8gYUk*r>dTmdpLsYD%(Rk@S$;mc?sqt3nS~t?y~LVD3XJ>x z>c+CN`YTtx*spD?X7ej&OwNd6=aiuLLO*0MY1m3O-@@(}E210PrW1-^N8T(u08l+z zJ3ePq?n$=`VgwJtjNE)o;ag!FX+Y8zF)l4K zDeCVjlNBp2h$=K!Gy2n*|Y*3+P?4d+#Fj4xQHn7VT{o_coKVaEG9i~EuJ~*5hF#QZ>~+$ zjAFd7^#?WUp}UhF*J#>QQ?%X^VG^+!$=%Zyc5eBW5Jj=ULAu{UI z?W3Dxh_8oY?adGme$y(sI9mBBuveHSDN&yRT=3?bt7FAqV$;5irS$qdN?{+ za9#eoLEC^3pDA7+^b7&P+T_v2w43WQG;<3+z<;k-fsZ>ZHN;XnBuE5CP4Fz{e0;M1 zT7~_@Pz?bv>d*>DCU`<%TxmLz6_Z&+HCdiOBKhYDecPB@Y)ugugo|5%8ekKX7Hw+5 zu08a^wTE3i;@_U1#KA+C9tO3Sq>7k2h)i5{Hko_)qa27-6p3w-oq0+et9kY zrK=Mza&fSRdG~Z~JNQN80D_)KTA|QoC@t63dv+oN0lB!}Lw7I}q{TYa^Pnb5ZzDBI zK(?A?!{zx%79DyDIc)^|_K=HnXf7R572K&#tT1c2DHOLA|6*&A)9(BFxDu%Pt?M6O zy3J+{Tlb3VR48!rM9DvLehosF4Db#fi@CC%xh~q=O6G-!&0jevhn?lNK40a^+EWco zqetT`Yv3ppaN@NBl~Fc!K_PSHUnLK}fD+wzYH*w}DwRvXHL6 z7>aLK?)K zuDSteKf4yl=}xHRX4492H60en_gRhoJ9+j^Of(m3UyOnKhtUR+R8?&{+&(B#@I@C? z+vQi86m<*c&kZ>wbSrO*URc=xxeE-A_V#>_g#*oAvt_1j&k*=$MEsN(Q{wE+vxKwyC4OG&Gizz{l$e9fIvMO zWN!D$B%&Cbg4{L_YvP>%spvOR?)O}r<*OAGUV#PSeumAu2Ovip`8H@%FUH*PGL^P< zmk0A3S3C|*k~(R1AYgKH3A?OG&OxMI_7E6j;kq2H>5`vP-q;Dj%b+bybGG&2DNm(% z7eLO86|l64-Q$SN@nwED?_})XTVwGBK@!sKZmMz0>yVb1bQ+U}3o zcF4ZjnL;Q!qonQtPUL&b6@L(HwBC23T)@RTDMaEjwleCxSOz}^5pnEk6*~mA-XtJL zl{4*=VL*Dc%0#=g3kp$N)fs*JP7>!WF`1Tqv?T{8Av@zx86t`bo_rC*hut69?2sdS zj23gGxg5GyW%yeFkiRLdFnuZ0{v+Vl;;P`x^k4m$sfOIJxj)rW7_U`;6!3Lz?xemW z6e36Y4HU-^*d@hr8zx6vPt1v=8uSJYa}q*R`lz>W?2UDijW&ybjJ~#w{2VCvkx&Sk z`60X0a`6ry*mU+a+3hTs?GJ*IJ2>s42)7jc<<;3srbfAJlLfV@*>n=7RvBa1$%ZLg zF{$Lv`yv&>aGZ1c=ag{UF_uwPB_7NKPred#j0MS~a%Vza{O)%9?ZR~Rd?2OafRd-N zx~)~HSk(|`ETMB46!gC-GZ+K;x6cY*POEzc)r{>zE92G~#A(-(qAszCbZ*<@N)-yg zgo*`*C_s)JdmSl{3;lRMg_5#sj5H zex&*pNH#52YkmRUf+80l=za`98^ND)Z}7ptNK9>q4D6>EU5STZpRj*HsQPbpx`^YNO-LsR4t?K zD|j;F3&7}X_LllH@s~C1>Wy&1d)_WOr#I)Z#YNEX#fY$bOK1w7@Zs{);PfNHa2A7? zI^>e^y4POKVii_rBuY3WoQoPrAAHccskSc}JOHXgf9|SEykNF`+?oPiY}lqbZD^K= zt5TJ%hf)>cmZI}3rRp!agX>QuLp!4&M(i2iTwPP3Pp#=fZ%fG|m7njb;-}3bUL*me z%`6JZjytP@iM1wWAo}Z39q#PhfU6h|O3P53FDLgao?GdYmBdh3DoovjZg1q8cF30V zqv&ng%UZo|n7E<86UFGi7oD?F4zLm)Q9Z%p{B`NyT+#%c(~l!Xx~UjZvWj?donI-= zVmm%gAMKO0;_aoql>XoqR9es%Beel1?A2Bgx7X%tXkPrj`D@M>i~}NEKE$1kf+ieUyn|EcqPIxhVEBdAM-@>5gLIZ!rl2uKn3vf{oQpk9=9Z-ZX7M|HP1z>qm$gY z<=lefRbUk%OT-zX{GJ}owsEH&SGO0#44iJOGPm$ydr)v2+B*Dc zH8UeF(=~?#B)IS#Bn?eX#wycxlH7y$q~oLo%PAst#9DtVCf%i$!r^DKi=|=OPx9_M zct%*P>my0?5G9|Xd_Exwh>CRg{Eg(rr`9`(Bj;t~`4f##D#lm|sjCeRLAirF*IgS= zUCss!&ax&6ea+QvBUL4f3-qQ$qfl%7XMhYW2=!iZj60=B#r27y;(d#q?B;?G-l_<0 zut&4;y*9mMz0DnxcG^aA$~m$b^M0ZzhR_G|@gB>)AB7ONhwKMq4gh_^EC>p*0Nhj_ zhyrBL1EpFG>XXc9vV1h-qxaBk%MlaViEwI+v~7HO*5h#cuQe044}PLlfC{iX;f~_HN9_j9<#5;wXfN`Hll=eR0Z6O`;HzBaBsJ;)ZkGp2=DG8!s8v zoP_!5Z3%7a zc<4Bcr^}|2iq8QeFkhEG$udBS>cLYbBTiG5gyaKw)H}xxDL5tME?iPy&bpgAM&{E}8v zik2O}X<#hB+(Q<@FR-SEa>?2K+1HisX!Dp>!D#B_bWYF6yW(s5D4Ao7R8u8| zx&3}8JfhFjJ3fO#c^T#!^Z~c;Xl|GRtWlMiKrV8lLAE=D+lY10z)ZH#MK;lGKyxCi zg{mulY&8Y)0k7`XtgrJ2I!#utPvaQ~LjywFd8{l|cGp)Cyhm%-``8xQm@=W2W_eBv z%bM-(aajI*=|fuLz43>)@|`<(rxpt4TwTRFi!l0)`q+IrZxJp#HfIS#K6NH)H(A8> zsT;GLxT19lD7zf9!FbsL=!YCNnW=54 zgu97HVMuIV?hjoYTg0=0MKwC#$b#$4u-Y@TR>S0wEo~j?p?oL@Pk~Lli9|C3Ps7{92Az@(_RPF)nhi zHLC46``E*Do_B(t3u?g)Pwv)PW5c%Jk-j6^?6cIn)9vf#Py|yOVK?Q;!}^7cjzCWu zam|d_eJ5&lZSP*L8$Tz%#}jRlv3ZvF^xg26)nde#ee-%Hd2npJgD+Im%;onSXs}bI zbVRPQ%9&Fu3h?vB6(#aCDc)0D5ZnrqSO9qy6Bb`>+K@@}_>cfaq}EvpUz7$T zHbcYE_PQL2gpqMt(DzPw7n{<&TRVV7WCe$#wcDbX@{XKq%w;-f9AC!z7}|C-{-H zP+tdS%GGJmzC+|w(Ssl2`VdbEz?PMk7PG1h>G<$em9~>0%EKSZ=}X?w_q@(iqK@)3 zsjI)H!?*+=?&;HXrIgk8g$wdCLlIhuRqk%`Su&$RZ$_lxH8XmN2su_u@w-z~qS=k~ z;@SO?O^g~_<;%x=}TB*llc=xNXwBiLlP89%E!FxnA`EzUu;*eE>K zmVVu8ubYbL&>%P#0Z-mLDEu1-om-k>#rJm z$TkE(-+chQt!`)W)ImZu7EQfr7rK&2hWRlYvF*b zGBJxG(nBrr!wKB57oZQdZZV;>uy#i68LU2Kipdl79Ez*F7!Nz!dauj(WU}fR?x(8W zM*`KtOpH~VGF@8jRs*@3HSZ0b25xPk(JJ^hS}x7or$Ch++GHuSyE^2l#ylPy7zu8F2A?}Fv`gi;RG+D9iW_%K(GO!C z7OKz_UH4-`EgZfP6o$hn^@3hFSw@*A9fw3Vy`{;iBTP;jmnH<`5^@@T+g0{P_C~GB zX06shlNF!hH>~?T`;~JKSmrubVpk&;l=p3qCFL{MEJ4lgfvG>;4ol~Qz~LPYM$*s~ zUU`?1z(ciT)$wXbG`Zb4efIvXO~3pTawTMGzGF>Mmikdb1gCQa>U-R_^ZQ*EJfL)=`X+c!8;CwEqcpg5g@m5s@CAznQ zIyxjOt`?zoo-~u{Hdf;kn>b8%nsD`lo(2%l!HRLikB=)6aK=&4X{`m>T0Ohwc)x~` zYdE~(q{EWT*zTmyBl>nc~u2vUjyvZ^m6sFjNR1 zK=3Kmp?(lyv@&)!3}`_Q4pGS8$t}Ca0u{q8fY5xLTZ!EkW@${Z#D)wvE?Z+1t}5A1 zj*6|Inaxg+N9Lz6Rt+3HD_2gFdi(eiX&x3*IeWk6VZUbf6WJmrf43vvFo=uct8moD zK6RfQ>J)*(TGn$Zb&SWu+A5j|BA+LB#&NzN*U%BToDrs!k}5Qlv&mh`$^_K}HZyaxrwZU45(d2%GbXd5hI{nnYqA z>JDOs^>EWMBM-fDc=#ag2j%|UC;U@Za=4Cx^3dy5-bgHBNGg>}rwd!5M5bhm%oBwDaZrX(1| zzc$GL8J4bHmopPWQc0CRej&lwbBL`Bf|_dl8n@{pnbqM79P#ZN-)TCuwoq6nSqd945B z+G(=mJTf64DTkBtW-|Fr@o-*knKoZzkw+Ka_}xC)v@OO-B#p@Hv)6RXKCh0&^xC!G z*ax%}jDXPbt?M^WSIn44(y1CZNl3y@@Y|>Ztj`61aVlMU1@>C&A*F-YX_S$)iw~*6 zsqu}V=J%Q$*cPVw`FnP2BKr<)dclU=?UrsJ*U|dmh83h9#zI>_BSOTc~iuOfdXWAGKm^c{!40P&&p0Yv3wLv{a?ZHA!5{UpC$qTjuI+^OYdT1@@pZumU3y+y z%b`z41TPCs!H7j!Y$}yLdgt6uk);T{Js>6-oBx}(15;T7`p3liuyzY%-<_VfVck2vT(y$QL$f2~{X9h8n(?uw6*a=%pQi5$C= z=K=f{xlQ>0?W-?&qbwM9EB-OHvorkjT)@aLW8$b{5#j%;aQL_PM-~S4bOEt=&VPx} z+3EVRXG($KEd5{J`u{IeBUKUAFM*CIh}tavDWtILA0dUX1zO_27Bo%WO)P)7y%g#6 zod31LKYk?DLSobNj^TD>*ZPoH@u%!eA;SSct<<~kue#SuNkD{QPA1m>)=cS_Sj6K2 zrBG}jjsM>h2mqG@((d3q>#6qnp#y%2_V-VG^kA4#cLKwIk0J$>ASmnk-G=`ysw%*^ z=}!<)|L;+JXh5@0>m>I6u`GX0>>N@ts3Xl3@G1ZAQ7{}*D!h+Pf~mhuieK94*C(SB z8WkTroBtk#bW)ld;O{H(>+<=xv(|S9*iU%$e+kUr^F)>bCz6zeDCReH`)e1^KBWnO zVe~5h+Dz=1XaU*a&*$S|=lp-6mGJ??REpC6yQmiPDUhK53EJs__@AKtIwzR_XF=mD z3T@evD=93Lb#QPX3lR|}!%9!h>Bj$g_6@XQkKU1f{`?uZY@{DPe88Z7JHHU5yT;>H zyd`p<(Ci~qPG7wDZq{^Tj_BT=Ve=I=rF4kl#ee9uP*P0LenC?+&f3n7@mZQhbzioWAv4yVqmLtEz^#<3JOZ_f)Jq2Z|RXA zM-^F=)SRCQACnf(#}be+6A%&xsxjcx**Kh@9t>JcpN6E&Oi{SW(9|K8WFm5-8lOo< zc-U8TA#!eW4ez1mSI(idOnK&&0)gBWWc_v}_+n)D;8+Dkf0I%3tsucvWW`d&`mQix zypG|t5!u_{zx=xYsIBbuB2kd$b5#~P_Dwie=yolfuTkHexW~_E+wvsncFOtucRK#9 z_5Ik$^>|;U*bLGXj8beP^-@Fs!7hNQk_*xStgz%u z$TU>&;PaOM^j!Yb+Q<#xuKf9%zjZZhCD5C%T(E zj@ULRVfndmKBl;k(LozwO+9ijWMe3!lY zlnX#F8bmGJP-A`*=8~MlPp1)#E+=q*N3KP%X#cg&cPEjwWg9BrXx^t;fNjXMNoWJd zF_R3_ujFZgepu4p>b83~a-+iKD9Fz%F+Sm(vA4YLC(=JH0lvHFgVfmKAP7|d%8#1? zTTv1d(|Gz~$Kc{4K97#Q!W3Ssy~0%G$i2d+XTJ9U;C2{P5w;@vb55}G>s@U1MFy{w zOb;Mqn?8P|U00CySW8l3ol5B*@V!)z_4%&-zWCtA98e-17%*N-`!0W4 zD=4F#vHQwu`?t(bd4UX0s6*Pn^%1cA@fKavNS_Qw(ehp?1-WA0I4Zwf8ppj;SZYfA zsqv>Ibjh8p>ScEL6p~@{;BWPG4yg{f^muRP zo-m%y8TRV>eA&{m2-&!b&BK>!D&7&&%~v(vZnm??JoQ(|CW5XNpJ&R(EE(YrB&ty^ zKGK#Hd-({OG|!o21Oy#ScSUpFJX?id;vnZ1e zwRaZTUJWxC5hQqcR4O*ZJZ>>Y70EZ)9##YGFbf==XT!cv8yv0w&kG0B97sYm@|oLz z4#}8C>Z8QR`Vbx5wFj0I6xmT%pN_0LuIw5ZhgmN>hh2$tf=D>WnC9PmZqZ?J^><15 zxdbk-JXgV_`eTl{`tXJD9)8VP!D3$WqlXu*xuja(I+%=h3)dj=B2U(9VrHMoon#a$mXmRjf zy4i0mAbs@36LF&S>I!Hc-FR7lQI#S^Zj813Z(*OGvI1@^Fz53mG>?DHS)7!EXC8xE zm$?#8Rt*!{k|oLRv~Eb?x^L6$s}^!F{W`|o;*0OlR?C#SDqb&{4S0VT8}4f|8Dj@t z(=%`>h)O4-2T%{pONM_vbICDCrC5j5b6)6Vn_7+Asnd#S_KPra-5%;*!ZKS6dEPW& z)PMgZut6t6isKjV@UF$Cz5Hcymimn!XEuQ#cW&Qr@(p*)OB8{DpY!y_=%V za!j-h%SqEsdjbe=wd|hqt=B~+747W2--fTPaF114M~(v#r-lgXec6gD|G-uw>7Ol> z0C8$?611eKC=0liogQOgT+;k%HQ2mT+`G(zI$RUE*>@r<-PfFqA|Eb}#cpiz>e21y zD4uC?%_7M&bAogpoC5bFnIVSiu_VNXrdy83iiyH z0h39#W>J*IT!w2cU~@~B*~p!^+*I41`Wv$&D^+0JO`2SpoqfVSV(b$;H(qk;>N@R)elN|}K@qA%HiHCabuQ_J3RT(MoQV?Y>b={S}kU@CPWMap3 zezP6I;%y^+uVIwR>^xT&>p}_rVEhQ;CK$ zTh4NfGqIl?)Oc|5pbujw)|_5XeAsC9GGpUu_*~qf5Zt0Qdp;~8J9|XIiT=-eSv$C^ zC}N83MNSrM5H$U2sK!6AYJVlz(W8kZEM0A($XWpVQpN6iN&7C)s8tXo{g;8;?s?c~ zLgYq`S>(EnHGK)LVRj@;=Sej2#;5y(0?X_*(1t9m9_pnMiJ5X6tfj)5R!4Y^5P^Md z`3?-94Ajc6@-CtjGIMk^PZtLTvJt3vKdB&d+)J`)BDTGh9%C2bHV`03C_7ho?K#xo zo;fG2$w%b8;pFT!Q!hJcNrYxh2{+vZp&C^t%&2=d2j`g%ujrdb!+TvQ%J-9?J6tA2 zdu9C#Hz;%Ixj!m*cD|_oc|iF-1B1f&K)>zM+3m)MK98U26K&%~1CoufR^>{D6?Fhj+Sn1TyWgPgWX6j)v3b@Df|mPrlM&T1-rZ zgZSS0SB@+8?M{n>`wZB%_TV-+L~(l*bJ1qj+5z`!(Q0Y$zN5-917oKxjc#LGxiNxl z%vEIgO)~mJ+hte(QKuQM?X^Am`2la%h|$ssbVzb;TNU-2!*>E%g!4k;P?*~Rz|*1wVHlp(8>+*(JC zCa5H9a2goNg+IGs$O7(rtBrX(-Q@#O$X-qf8H+hT^IgSdvvPc^p#I3o`#@FXts_yS zu~=+jV3$50HC8P&59BT+&|Q6T#GRrnv!@~R=(eL;XT(jqH94{&Ll$>dt~710@V4v$ zQ(>$m9I^{<&7Gf ztcyghF~q|dcW-KO{VX`$S6I7TBePT%wh7X>KhIx0H3}B7s%VOph^C{l^wn;-uLgGv zBvXd8J!gewgFId_;$+RWFpycl+;jOP-^~_TMCQ07>@exn9OJmUSK1!Xv+xB~bKlFZ z0}{DXHL-e)ct1TtJ6}-+PQ1?SN0AeKuLk)`f}&>Xyy!})s0#e%reB$FQG~ns!F$?- zA%%XCqT~;o8>ZcpF*ODQ3IoU@K-dgkww2mtK#@>LEgZ}p_8U&tG$My_WYb#fs zG4_#PZ0a+y3@2k>PQS5ii7-5uyb-$N2*b7;ty+@v=!Ro3Zw~vnGhPeMF;1~z4a(T) z5~_5Is*sp~QYZkG9X0v!i&yG0&MSw}3EnYH2`{t31@%}0rO`dDNayi+O3{r!Ai`qZeee{TcRKA=17Y`0Ab}EgbYF`?32~Zopeh zi8*308&9N<*{+U!kaRxG&tom@(`Q}|0?}TArw+V_GcR&Rc$QHDSkbAiK1WZtamq^v z=|zop>5mLdDj_}zO*i@+8xPbl_dbp^JZGauXwtiH+E-OqNa#e%CUEQ-OX4jn=>kE3LYmi?j`(iK)Sk6$SZ z$;LgD2|o!%WqGuc2jSZXnF`87x6h^ECgO3h#hqR8|{2~py z*~(eF@Y(oVb_-I}Dl&I->N2;v*EUU=j<(mTpktQ=^jXH&hlZ%>L}}WWah&HK>n$~x zwLOTzvg(M`)$_$=Nz~9{x+(nhof7wJ1zYN~8V?1wSq;U?{=`Z~ zSf!^E)P5zbPwT`9Q>x};;vkZ`)TCl;YTlD|EJsb6ftuAh@!QYm+ zP!mmjC2*vI3~2Z9h0#+`O}pC=QW4lMDFfXODiOP_YC^UR+On*03zVymtXjvmFPbi^ zXjj*Sh4sLXN|GjY3)>YfAyq6)06k$5v;dFg&tDL$@~m3*i*dB?aJ^RSM|%_>#x?8O zxzAjCfY|l$-?a|0X?McFr4$!b8KH0_!(r2;o^hfaItxf4k%FwjxochwX9*-W!88t&DnA$I6vA&5tsR#={l5 z;GS(oKAEy9g*^(XD=pc0hp-a!EX!oJ`x(dWJ;jrEnr$6R+9pvVN^L9O#~cb)H_X!X zU3qz6bBKG;G-vifqxdz=(ZJA|C$=aK)J+xl^}Sz6gS;suP5}iMOY?@2&Wrg?E={M0K82MXNvb%5W zRHIgmk(^EU1lQ`Z*sUuG@4c}xdHXb@SAsuHgHumi9fzf(!}(fA4vM}@na*_f9F5-? zN!FW48_qe^Y~Y3snj7I_?qV4-npDUF{cP9a@N?>5%QrtVcb))}-`-d$qU>>pCUaICWba@wg}JhpX5+!8Ty6Kh?9Q zx7@R~Y;jEDWfT1<-)8BV;h4*yEv1>e`eU;LF}z3_7Jc_uIfHDUW+Swj2lAWcL!vFd zhK+tZTAnm0YejDLfzc2vRhCAjh<}(o_+OXF?Oc z)keWUvN62C+Dpnv+{VGoEFwGtKn4oEv zCP0&g4pSXXhGix$<(Dn+WUox3*m>KX+UcZHNMdm}(wYSHPrbpPJHM#R$6`Bd+XjI} znESrazFepwAB91>yPpGl-Mzv1?OOKWw(hZ^SFu^>NggY5D+M&#kt^Wn@PbH2+#0en zE$699m!O_!)WO#XHBc?Vc+?<6l(hemp@;2^W&fNNERH_7NX`3!lF!) zhDha#l4Uusx$qT0IO{8wXSTvSX_2@0tdVF4~C&`Ir|?IDYWbanP*)h<@H#` zRLa{`)b_;%)lv~H(+!I4k%|Ilnk-Q#zPpR(oGxE#hH-3wN$oCj$j2-}?{tv_&? z1p=k8Vqgz?mZ}V7A+^f*kO&*!We&x7WV^c638G34U6c^VZ7&?BUU3{>kdG_8 z=l;8A2`~s>0_J}YTLW?AGe=gj8_n0!r_8w-W`V&F9{<58M7l6m;eNNahXvt1FH_z- z*_OH;E3A$N>y0Lm2!$@O+;>5eLt5cg3aMnvQCtEE5DedFr{O-v;3CyFeJCb-!xA(HZGLrQy*xzm)MqVC!%cAM?`CSASUlrbFzm1(VCzG}*0 zK=cH2K7!y$rQuCkE@0a@bsXN5RC{on(EL{)WPX5i!|S6Is`*REknT#|Ban&Y4k0c# zD#+-dD}@B()3Gdh?23LYSsU3@{0cAjeaqoWojv0Bv^CU&y|;zSke$`oWWC2YFuj1M zPmba42eXH!sZL_1vFef{BVAfb<7%m};76wKC$dVo9kxpXiAVybLsd=Sk#-4<7%NS{ zQ!Y_9E%pB1k5!M0)J8G+Qfn_T*_ zvJRyOa?M8|QZB>V$y~fdY?U%1H<6Dnq_@5oMUKcjGboTxOpLDB8;55e%@387#s!PY zJ*dH5>8Q9r8@$tgfBBkt|}1kcmJ) zaZWQh@3P=Rq`ZCMYzS%w9*qFDZV#VNwKX>z6H~l4Q%RQ|Zl`hMAP7=18>Vo-fm;ic zy=8_{B!_oC9T&q@Vgl&oK-BEUjv8G}Te{i3M>*DXh`3{;A^F~l#nfDplklnnXXRx6 zi3NJs$2E8ZuE;7Yd^PSUQE`*RZu*>e z#ATg_qo$v{3vT+%jM^3F_D@b~BfZ$zdK_1rv#-!PY_?I{^x#y%#m6GQ-|8dSJIj@yJ^1u4 z_@0=kH39~`Du(>G>Bd$F_Qh9<-J(krJPU-hX~?d>slBE)Ee1Nr``AW@cs`3HpbhsUVmj=8r7$ z<@In&9RzeIh`Yl5;TxM3#{zx-s+vMIM2ET6>Fb?BXCkFYrTFt8uB^(jyfvU*u3A#Nq z{6h}0E>Xy&d(wXAQ>vRGIUoF=E`_Q#h+n+1nV$_g?oYF6y{)r-T?aq^m67n7<9Ygc zSTX+VoJ0CByC!t}l$s~=tE-`ab8rZ;t}<??E;K1n_A(bhV}U~Q|#08(Q&yD`;>8C&PLBTMijf67}q*J`l>45KtfbZN1wC&5g?!V>(o4Jg$ zp*+HOf4rdbRVhH^g_2FWY>#$M1rmO`b2|0-lXNqiyYyKA>&Glfzaf?7FWF)?$Ew$n zT)E2!Cfpp$4M(i%Gr2vEZ~ggvOg`|(=ba3!|H9a6*&{71r9v%UrFr7rEZKJvoi5amZG^GmbTQ7bc;J%{ zRY+<>tFZhU5nonE(O|P!RI`OYgiiN08=_FZ=*Ktpoxs@~?6Ee_K-E7MSW6vwv(>&j zUK8KJ^sH1J%sdh;FJ&;&(u(EJ=l&&40Qe6e=(iR}e|6CKH!;%^2a=IZ&B1Y&u0B1Z ze|(?PHL#6K?>e~u*5$uREcp5Xkg@*X)XvuVf2;O~i2i>hYp(|^d$}FA`($GNMA`Cb zAr}mpXzhsz{Uy{!_#mrp%aZe_Z2x^OE`{@nM`(k#54N?hgzWzK3RuHs6VO1|0yn*w z3I=+oFlO8e`TfsHpCg4aYF^by758uczk!7Nf~gfmKl}}!HPC>?AI%zU@GuFUh`)KgVrv8 zsEt2=B-8|>KJ)4b{&$T-6;OvM$Cu9i>rM9kIs^Z(R)bNEu8nX06U%1c0MwTF@%3~6 zH7!g7CoszQ_zl6Yb|j~d`E6~wHi5p6Ji2@CU;gjcRJ*=`QG~|?ERX&W{lA_czigFgEgLv`k#P-6*O>w8T6w6Evj98NM5l#!rQAs04e$+@oNfP>kBAx=LLm%3c&Cu zcRnoAMP=xdY?}XBXMG+IxJr|rLWn=q2r$PeyYkn#14oPO?0wDIfW?!ChD4YoX}yw{ zYkf>W@ZfNiX7nY+k3TYCfW1QVCdazGu(A?zQnIY57^cfiKmbhp)-cAAomq#XH@4|W zng>((_f+so-jtnBO*fDEwcCa+7S5wQemJkr>h>HaQV@%hNh!Cn-PL7C~}rdwg7-`X1qNfY_c!D`VB0$ipRFE{&ci-Po; zi54Bp^S9|Z7mjraz6*D)0~#`5;{v2!9|2oJY5X%))hMTB9g-l>>7)g4bX99P(`3a0 zRO!)|YsXy`b=O?JTxfROJ&8sp&)vn*Z%1&IiU%Y3pn+HDXJq|FTJ#}ylU?ba3NKqv(6Tz6DTRXteN z=cU!$ZBabvA3QUhe=M{C7R;R0RH%heTYSBifCA|}zPYPnSxp5J&&~25y|-)2FSn&g zWvk*F)mX3+hVXv#;H4`2BE-A*_TXTSHx3)KSH!GpE7WPXRWr1^TY4?BJ&L0h^s}gP zKEvhwn?3;$K1I@i2<@FwEC2a&xtx=>PwRkbt#r(L4WQ=NSIk^hj}AJIN4Z=92CGk|^vhdIO4aeTg`hZSTCz>qXt( z+Va|-TkOxYT<9SePVL=x+9jdwm$0uOlcMf^V zomYn09=IM=Ub%8bt`Y)Th6IWvFLNK__C4N@*VER1l%rX*%DV#1m8&T+n_%FwUC!(5 z=k^42$HEL@8>p8&G}g`B?=($ zGUZs!6MN}bN6QL(47-clK%E^e@4=^Qw2&0Tu2s-WBM)K3x9oZ}=Q=HUyeSFAOsV8o zzaYMU4Ej}t#s!8LHL=}9dpQmIDutf#i0Q_#*&QX49Ht$B%Hc4|*yrzwGrr}V&+~U) z)+sPX&_d`{N`L^74uORCV#+=0{eI89 zf4}2+{t-$pa+ZDWbM3v>njB)H4+8^K|ECQ*;5=e!i|}eKT*Anb_SK8SWuxX;fOq`v z@Z#V7W&in<-=B>qD1+(3+H6JoBCZ-~W!~Xs>os=iQ%t1uaa1g71l-`-;8OX!g@)qy z5xxY=eS9<7c^`OZCq#P@mOiv~<0fR|Ceuk<|Hzu{V1~f=cG_}){Sh{`LaAiFDra{8 z0}D#W)+k796>s4?as8Nn9o(p9^2q6EzXyW4rdOsb%l1sK(;e7vv1q%_;#>X@;8XPA z#~y55_{#sUgc|gZI3r-CHa2+c&65D1CH4Q zFNi^ZfhcN-^?8N0@*Ba2d3VLFbGL!Iz-uUJ#eUxEXxl1J_qis1YinyUO|A?>=@gPe zz3xMp6i7wRbu{fxIwRV~#b2z|1z5SsrtU8=+;Do22gv?D<}x>q>IU`zTbvl~qrLXE zogIsI60!#jzjir)wIEtcp+HZAOZw^E*e|)IWvhpM+@zSmRc9;20ic>!LVwO_dI>P8 z+8QNK5Q6Msngb^RCN*;DK%yMIONsvew@?N13*Yi<$bGcV9iS)Vba@eYV(lGZYkMvu zPqGOgEJ!swz7$>?E`yMq*)R1^$1&4?KDHan4$g4`6|OFN#nelt^0Pf7?m~`y`y9_% z^eIkTk>{;OC7QQ}0dx6yZ}DBI%jMoxJke%~I9NLl2M@VOp|5#TC}d>o z!uUB@Sz{ixM~%qT6Bxqejt)0>0v{;b+2;{SG0}m!kL&MSsIE0kk>I|v5<}0ScH|h| zg^Ke3?gjt*5KvS;^ZQFlwj+NXwrd+SK8do4fR`55`L~z1r;fbm}=D&PAs zj`Xs{QPYGMzNuI8cAtO%(KR>3*8|-#B%oW|v?H1lk+D%Rt|zzA1V!C;$G( ze#+pEU!K1o{GO`K)YSBj1LQ=zY~4qC3;Qn3@B+=lMOB3&w#$7d`TMRuKF-No#h*;z=PvV zA2D{4Ez~c1ysSundUd!Wr*S{*fP7+Z0iCA493S00mpk&X`PJFZvULIwn>&ZHFx4{) z{A{^_IN2#_E2i%6bD5up5P-ob0S`$|&h6yZnR1J8b=X65w{`8#WV9WQ{_#>1p!>0l zt$ts%S5`}7N4~_(y-VmG87x7x#pl&vuvmlsMlDd?@X}e5lIqdkfPDo?5a~xR3ryq@ zn^(9WoQ?|Zbcxd7e;SggKZXQCFX%lE_&$eu+=zQn#)S6| z3=oL9|IA{?9`8qE^z4xYu_+l>KI`Y?>AF%^6)b+K8jyZ>i*kU7o1GC*nY;{jZEJssNDAe`sr4O&@t`AKB zHjLK~=4ENlal8%X^8bw5S(`8ms((CH+PR=mr%OV4EyXsQm=p-nWe7P&{Mh1<_2$%X z3rB^m>xnnmM3n!j|2T*TzXydaoqPsto;kqyjiq)H3&&fz9y9SzozQr#J{ zHxG6RwZ2V&uK66`!kM(;$YYT-unn9IRSl*%AaowNHZZ_<{>}C4qoY@22DMT;K-Z*1cwT+65$k-gbi{xiUGv9A*LdCE zjZt{3bL|FWl4TrF?SeZQ{dQ$jwvi|baw^J#=r=*B@ptW(nKdm;TqXjslI;6;f%-yb zgMv+H@~VPB4vVG9!OT4k?yb#>nx8+u$`Kv0^1H_lu36tfUr?)haGN9Mw@-&(2_K(> z%knTbo5)CjcjHkx5o8pj9jz9$5^`}9Yk#_EAn5Z}OQ7&-VWI63PIZiMdygW(ZE<*3 z_kIs4vo&*$;jeqSu~D!hpxXU8TknR`v|6|w8+cg{8ViiER?xxN)M$12VG$=M=f;vY zWHjyR!=Cx4(td#1D+%jTz6vG;K;`l&Y5~39&5cO+z?{daiuBWqPtY=+^Fz(#>ami} z-KoO`DN7xVQq;FsLc@+%C9LO!2>wG2YA?VrZRifP1|K7L_^ov(IcjSE?74IP+u{dn zV$l5vmh)+%N3+>IAFU4c*p}CK8*y?^0nI&Wi~(G~Ihsq(>1Bbx5Eu?U7{|>)j&>og zZ?&Tx|G1HC#6i<1XS9Dn9jxC_3Z(5kaGsLOR;p0D?m62C)W#0iR5Z`{3snHk$V+J@2ENeHX zX|7Kq(Sw|O6AafBq<2~5iYE({v@}u(RO2|km%8|eqcvPH4(hOrPaRV@ZW~q5eVHWn zqwt)QxNa+6S$~Ur+6wlR+H_@v$H(810sB9(2$?^_Fv%1K!^ z>%Ok5^t}#)v7O|nEA@%PzNpQNSVyYubZU1u0NU%*5EdYkYas`iR2?E_|gqO08C;Wuy8fCVIh% zCqVcA@&ma7d>EhM)A#h&_b3KHEMtnmp(YM4WbX$1JdN0xpP2!^;*AH~0I%nLzAwB8vl zSsougcTcL2vy~*!*Z3Ir%#lx3P}`;M`^AH+JK7MU-nuqRAtzR`7f3QdorwaTl(s-V ze}+H#)5TQ#v_FAcWW#;dVnO1F)^W|&PZr2EoG z?Ws4~!yvVfWmA{ecf?NKD3|JqkFZpcG&Ik09r7wyKN*)oOHsPLOvk^m4a2rE$g`|v7d6($wRLOply#~Y%F{nG{ zE~Ql6(CAz#CG=VU_T2WA?8BNEiB*Sk!;@nbQKdD_AcNt*vXfx%i>Cv1G**GlV{cVI znPm57N&mS_HI%N`Axjy5t7g%gZJ;kntEGTdBb8o4TG|ouS)51G>d8>IQF}(f{(KV9 zdDNj+J?nk|*omD7I|{33h@0`neHmV2@D2C3u`?36NtfM$|@9A|Z zTk_Edpl`Z;yU79dnY($f$cr;*fJy2l2Wmq9R|KWvq znHWVKfS9Ajavi2roO1S3zzih>aL^d-cZCbww|P3eRk0y--$@KEq}TSM$*4Nt*%4vN z?te#iuZBKssfM~;^u{G!%dc{>9SkXo9~U~5M8xQG_*pm8`Is_nMbaIlC?X9RFZ14? zJf#&T#tIlW_DJVrq*Lu}xWX)~)P}lDT}-0PuEoUOAAih}+M^>cE8jF|kkHdUILa9RP2ly?4>LsOeHAGebEb8wbbJtimfQ-GiwqS5Yf?QlQfM%TR5qqpCren+kKost!!)0OL zY26*)ugc9SAeW2ZW*!|ySLTpJy;figiSJ^&U~5;ot63kCQC^e8EAB?HARyRvjY;(} zJaCn}RXP^^+Ad>X{fZo4oI5wdN_MJ;?r$xCuLscwwG*SDRPE>`jD)A5yy!QkDl{gp-ijJPCAF=((9X~JY{=P6NqO7jq7w$PprW8E5x zz9!o^vGOf&%0we2Yw5cC_%gvNNBd+BJh#kH>i%vs=%uZx(NI1=L*~3@mNAU3+9Vd< zLN&Raf;WB679Wn6d5p6(o~Hd|ZBtuS)k)X7umheYiJ(6`bn^xoo4iV&{2^vT?^ zgSEyGC*OYd#3@&13yt$7KnrE;azlWYqQ+S7dyTP4-v?ve4LI?_6dlfk$w%E&?l52e zvMi-aLBIpWw% z;AwUijt!{-2A03trTzx~B#_3C2u<~cAi=3+Pw2TC-se)Yb;7g;oLlWQ<%~AsuDT&M z8iW`H2T_H&T8*B7NHadrfFHT8M9?n@XgDUo=yL?Fs^%%cu1gdV0C7!)2IAo(RP{=c zRSWCi2|IsqNXJDpe(|;c^x^%L6g_9;SrA(Y-?R~>8;_#ktwyH8^ZeHdS8+K^-It9v%xZoIVlzZ`&GlP<9P<9 zh+Y2a0qbPDXh&ufyXi(b96U1ZZ0cNolaCSN%{_FLhabYn==PwKD99hZ<*_^FSt{#R zYjV$1tjJs)K`8FauYqHf?5Ks371f~V`o64Kh`*{u96F)#jJTbxz%fUhD-7=yj_QIJ z2xTQyusW=%#Uw@ssI(WWAOic1v{OsUoiB*$seeLm`2vGG>}he#9Bn=dPD%CHF>#Q5 z3z0(}tGLM8QOYCF$O`093rgH)C5$@}Yih5(bd`1kx}BFASFel-ksbk5pbC6$3NN>W zdJzckx+B($!e#iZmTcUTC48uioZl)eDU@z_h!{-c7j&50nF#2Unt0q5@o*@i*zkh@ z!USY9bur&mVWq+7ik@EzbtxdKxg=Jr_crx}ArD6d#%@{K!q=tnI)N@;Ra4OrBL8!+Z(IgI5&TcD53)%>?fl8pEJvP}CQn+wVV9v5 zSD-SKS&1*)e_<`c`1=M;+gFr^7`oq6<)k6N^O^Ml?d|ob=g(kpu;3Oz=Arb#*qZNW zfc(-(6g({jdI7x(%S7~yWenIC^#sn!K`TS67|0Tpi7R%WCZBvexh5&JIk%5^Uv%ot;Yi#%y=-w1S^U|2&-<{u z_F`RIJ4CSp6=*m$YJtD4tH4O%FK&~hl`PqF{|usLO5;qLwZI?ZrT|{FtO}IkNq6Y{ ze?r91>rl|&p>JBRJ7bvaxYae_4Zl|Jo0`;I%`Ut?bJMOlt4ti60WZ`?!TSSu`#pi>-C%DwS6^q)V{3OSC8feKB+*P=K-TMv zp^+8(R{yk#`4EFAKGX3;>7(M(M?+L%!3svPa&~A~N_NZjqk8?dy}kJZyI0o5qQe zQ}@15BlUsq!Q7hcRD*)Ye9!4kt2jyg@5sZlx)d&5SU!h~X!?u1Rmr zq4VK9i^#&)+%tF6dLo)6olrMAN6;YB!!B+Ap@WyflS+RVysRfq8SA-BEFwjIxOY8Q zyn4pLdS!usDn^NsL){80yPaxR=I}Nf*R2pg*Ch@q79$sq*j>$Qrb}Z-&Sc>4Y?Wuo z2y?s%Xiu!HU~{bxa=5Gt^BcIZUCKDmAPfpEt6z@g6xK6zvOshje$+VQSc}&87j%df zNwFtiz^7XzbwQOD%5uh1S79npo7?j2##J=9edVD=+E=h<|0iG%EHF&YPzxb`DSxzt z6mCLc+q&dK{Uc97VVcBIn3`(>H{HHyem?EU1_pC*1JMb61Jl#<;UvG#t(g!6>e#Xp z1zOrg_)q)ccE6*Ur*Kxx6^2v47IoD$)s^zb`7MQYntJ|6$@D#uHlB=s20r*O@iS<6 zy6%0vMYP&bE}Qg0qlFRQWKGLsw$&=U9)3<}6yWK-hR?@L4GEIgLg; zyl>I)tLtU?#u|5Ku+py?UD;PJ<89r5^mIE6nG1oVOO$*N`KXe6Y2aeUaHFPkE7@Ys+koRI|nSaHOqR+jx{;^fhy?)a2>T9F$mI zT9A>&Rlc;0b10|TKtvbis}A5KZnbk0kfVYx zC5#Bv_-~*>uxWvX9QTgqlLCylA%A_;_~*3dsu63`cDs=jjfM?Tr~G0Uti)J^YD)StbSV`InC=KL|hdcj;?`BB?ttr)h583~z z&;0Qf&|#Fk-MYbea!29`Nr3%z|K*UNFJ;#qE3FeRT*P>n%ee19M~9f2tJ*m`o^S+! zt^WGibBr9a(;2VxBuAGhB;o`Vq+JFJiIEv$y~V;kpPZ_enk{_h!hj67q98@4+*%{! z9d*~C3S!%fO@;pS(pJE7aSNY7s%E^{5K(=2z_X3}?$dU@rh}KdHjJ-brZ%5nlkC=N zHC{?pYfoHej!LxK5y+p4`RH=FRM%>}B5&u5MYAr!k@0<+3^})IrEVf%5WZTH!uE9K zurpT5IT*P;?Ukwqc><+K%dpRk+1J_API6I=%a{y$lId@mr{cPYz%qMN{M|-n9eJ!U z{fl_*Pp!ocZo$9#>)+Fo7hqo_|DMsUeNt9%)3HLdK2tY3MZR0J4MtJ2f~M0Irl3Tl zc$cfZ7Q(?9ws6zF_w5B=Y%$g4;vTspnr9HyNz`Licglf#~_+T@Zqktuu8ioK9OKGNMCj7uVSn8 z(7jjjnHi<5m6&guBb#LJ_ECmAi<E#u6BKQ7}JpPJtMe2;3T+???TrUMHlVZ z&-7HXHSaa}L1VP0Zc7-%Z)C+ZGt7^vFX{QQC+viyT;Ln;E%S)=LFp(j{~nJ!piePU zP)`JTs7ov&&%d#gcJ}3DjoZZ=)YolAd8_ZDtM|WLX|N!Nk`Iy4>lyhND9F&VHW5sp zSg+gF4HsI7TK~I;41W{owk53~f0UPcu6XkFBGKBWA;{q24S41^R8^U{IQ`i<%`DzQ zk*351t}=311ZMJO0?d4hl^cdk{YSTViuNqN^9E3PEst>!i?hnLW=&rIHFPUhTw z5$tEte9QHPVE8RIo%J$TZ$PQR#k%rv!`7|RNv8{2+J@$S%$s`o;b4TXgqi@@w2K6b zc**~cZLk8P=>FvCnpgN6H^!}W-jSFQ@A)kqfLNVjsb4Gc%us+QUoW~ow)oq=2hIu1 zuwS_^?i~5|>9~DWxM|dxv=y599m4hp)^?sJIQh(t>ec%8#z~tO*Dxjzu+&+>7g^3@ zWXLB}_a(?egA>wHu32lavUG7sBK60ux@PdiE(?9~lDb%Thq}*JeMGV&qs1F<7q7HU zRN1|>d8w{*8Z=d2E&!Wnbt&S@+k>N(37T{c5UG6~CzzD^mhw#S+w&KSe!tNantf48 zNztF?m-D%2c$#=A`S@OB>njxv^uAJP+Py%@`}VEQh5q~QNk>7@J@(9uw285%u_jk2 zZd=C32e1px^y^u9nleSoY_AOYK(w(l85)qN5LIBl-AAMnL(%7ZncF$q#b6n%6816h zM@C1p%gcv1=;s|kYf0SKsXvNW*#w|*2|A|BHNxH*C0?JOHe<0vs^CFzlDeZK^r@q4 z`fev>+B!*mV7_u{qVvd${p}s2)SZWhkCFy@!wfH8KBs=^8oufS+f07dydc;peA3zY z({BmH5ckk|^WStzbV{oJOyU)lPCY#+Ew~(-{mYL@BE_j9ZR^Roio$)Q;qJ{r?`dB> z6J9YrR#mao^nw=`Cv?Y3c@7?o+_rhR6URh#dO`c3Ym#ULqBiM!`*c0~z2>tBj|NKF zPS>h3tGtzjC4&51C_%lLv8$rm!ERIeCUXwDT%o2>SfVW16Hlytm~S3(mKVe=`oGeWHkggo1eMljb+Y0_= zRI54Aox(0P&?UaTJU`Nh?B}-a`iZbGd4`VUTl$WR{bEjP%3gn~8)gLpu{5ElI_p1X zF@Kd!nRv2738`c1o==wSN46o03qkU~ZtIYp6=-5#TwT>=_`;NR8WFM(xZ@UwpbsVB zD?gaZ=Q!K&r8&-|7X~G(fMf+S_B)YoFC{fVU0$25I0;EXA5PsA^$gtug@T(5jj)A7|g2?d3w z8r|wjHWT*#%~pj<$Ue%i&zrmQ)zsu8^s3%H=w8-n>_B;By<5gX8DmN}Cf(*J?W)?Q znSdHe+-qe4_ZT0OD(gaye-d>1QwY3??Az3gzCkD3%U3&)ZYp+<48=FCF$BhS=(tQ( zN2eX3afLS2_QVxokSgz`+-&(zFN=eeR}@N@^-4-}Yl#uYj*FS;a<#c45~r4a_ch-& zNTgqPS*p#`s}p#pO$Bceim75HY4Kw}{DFpLbV2pEHjquKfFK@d>+rd<1VVGRs>K zG3|pY;h36dW$bUW$bE*2ESnr2>}s_icyqatD!Dju5>I58qa!OwQju{``X#&AQlvH zU7ZbVt=e*yi9Ttlu3+hoUd_}C)}_r*bk7CFG+Dn0y}^tHJw0YqToCW(fOaF#fy)A{ zEUz?^w1n4c5oX#(6LChlX;i4yJ`4nrt)cLkyJ(E;y1?Z!n?0p=?Gxm*3ZVv*Lis?mejJCM-9VKu*H-H)?;f)dtt9VjQRm-^ zBK3va!zg7Ro=MWZpp{-C}^ch>qupmghGeIq-e!6OYqu>15@W%NWItT@h)mF~dtLcnhH~ty^(FqZ`9k zu5nUH!kRV}<2;M#;8u5du%q&A2fsj?FDJCv=e-NyHq!_&_%tX5ZCtU73c50DZ*9qU z)qV7U0XB|cST9uEkjjB-pH2VbuyC`i-elHFTQ+D=D%e6zy28ogAnM`0#TWVt|GCv$ zQhEchx)!aC=A-@`bLb;>YH1{gU@Uot@N4e#3}Ra1q*Ntb#Nf5dAKW zAqjxvud;^!zLko!K3F+)KqpL2ua(_L8ze5EL0@)TfGIsWLBxr+V#K5M!A=k=H|CzS467s5s^h4x$f$;_V$76- z!`op)Gj4!9&= zaRDv}{;B!CfQN#rBG9M5D{s@gx?r=gB>q!dO6Y0*G#Rbg>_mp1{4B-UbVq?@%lwS6 zKD+!!OplsG*V2PFZmH{T*7NR-^!Kw#P27z1L`?AuEExeG#p@2bJ%2@pUTmbWhp%vk z-pX0>S-}Zolv4R#g}1BtE;K02LMFFcU4=D-O+N1LtZ4rF`)_aNz2*KdrW%(4Z+jrb z%=Bn()_R-!%ooY@ga|g7hpu%Vc&3sb@J%PN(Z>GsJ^;s{5l++eQ!;3%O9Ai4#BgqpHW2M zXw=Vp|5e3pS(ZT`Tj+?YLS|~d%V4A)4SEl5d0%g2@tiS**u8LYp6;yQ0bt4G-gXhLQnQ}Q0VLOL7?Duc- zTv6pT&!xc}RR$v?Bis=>2XdhEQ}a@hUe=W%OsYJ%9%H5BbXtX!^RP8+kvoEpMbHcI z-9bt!%Y8qNidngoL|;v1<(K&0cQ5fkhZv!=(Qh-Ij8^_>0ToyVr@yrQHCYrCrk8IF z3@%B5YnA&gwzD;)8vOMqquyp>5G*bgeB@EU~a{MEu_w%nDBRg5AfRCZ} zy!*-zJNYN{hvL+zA%NeG`Fo20&(FL7aNqeUWI}&BKYpZTop&$;Kqgl_y6>lb`O`}^ zKmn@c)FQ`!>-2vAi&?G!X{owYO7(vxl=1`vE9rj+?XQvh-$DCfFZ@5RG`7(lkDoVG z7V{~<=Glr4_C@-;aH11O3A9v}eBQjFSMsaSzuA?1Rt4;D0{_cl!#}U z@AqB7eG1VwzKzO%GmbgFXV2&Sn{iCoaiES#`Zs%)xnor-?timq(LZ)n32Xc}x1Gz} zKm^$TH@BUvUxBS{FbDcKPn&%p>U669o2LyEU_15CjSTPDAee=`F5 zzaJ7mw~4C&-aW;iJO9mYX9KX?NsRtCyB$7VAXKYZ{+p@I+h|~>{(H&&l(Xr?0LR1s zF17z;`2V}qzE2JQf4bC=XSNpmTIo4u#A`eLu?s6Q&UzQt6RG!e9+9O&N&9OFqFcu8 z+jI*Yazu99Ss7Ua=nTGPO*^UVQf}tqqmN-`&dtW>BzVKBZ@ zN@zYJuK^5BA8&7OH^5ih4ImztzRkp-pEB~`dWQ4U+?EH8AJGq$St<172Y}~3$E?jK zSqVzr`%@`W#})`Q*HI@pxV|5FAa4sib@4Pn#hV>Zb%v)@=uHJ~Mm8+vr;W?)j>lD; zV;{B5Qcn_uqk@*6-!{#^#WW1G{0Ay(5Qsag_?lr`x?Oi_3gyIK6a?BSEJ+?o9(0_P%VtRit(RZT#H6 zSOX&i4DS;`ztidd%Y|AgFAejxp=-@a3j1@6X7g4+i>tSSOEyT&XL;aDhWDV!+OY?; zsobBC#6TioeOK+>ByIM6_5g^jD`o+Fwzb?iE!x4`N9Cl$%^vp)=k@YJxr2r|1HZLs zZHAdFO*J=<`Qb8F1^)DCRJl0pkQ13bxNXrmWEp^brl`RrPu_b3rMLq)d>4?Z*H zApX2!rcpi)!!CH^N`AUh=u!d?sB;D+ogS|P=DISVcaQn40@q*3lD04tQ{G_D z4aQwyv)m)h(t(LvPmZ~!+-t?Ygvm90S@TY7;IRShn--}ts{>&B4m4w*s77%tB{99$ z8ywA2dU^PA3ZP1KM{>#z`fQfTl-aa~?30qr+@xU7desu(7CjfqcxL-Tbjs3{2H(xG@U+`bq*wk$Q|3`5(drORZ!ugOkv>O41iM!HE(sMo_w(T!Kt`(;Zrm>L4I%g zq~F%lYl{AG=m zV;-&aBvR4Ye%~qZkX4V%u9Jhw11LUsv!})lSXS%1MG^X5&3IJIL-la-+bf6NLF9cL zA}CQ}r8ER7w~+kk@QQcjTv^X=`Tem0w=ojf-A`Jwt8)s@#3Yzln5yb90M_$SyXV;5age+H1 za<0obnFVvpUDD)Btnhj!SfKM7&bXshMF z@6ejPWXcynI1UooP2Jkck1ah~sMhVWcWD(fd?)?nbqeO6^|kuQWf`)s?=R@@CYrgu zd0~5OZXN)zR}XdEW=?{g^)|tzHQ(kiffl}L% zw88m1g$_}lj(4_vU1pWsm<&~*7ia0B>>)s5sjhufR=-2rTeygT^70I&2HXzP+|Gb2 zq@QkniR((4B?B@54S?&m*fI?DNHv;^vng8W*bRP-rFl=K$~2{e*m{be_S2HQnK#zJ z)nK$3WwvGE1+a$mONY`DgS4d_Ums(Oif>Mt5(%04&Dey+Q@8(urhxDNb!55n_U5T4 z@m$WIMXi5gm!|osf3$+=@qrLA&_nIL6Bc9o@qM0~XsMgjpu|BBI2_(xT0LmG2H2zb z?CD^Z`C4ZPkfQ)wMGbGssX$NP^){A+=feOGA$>=9aJ1JMphg8Y*ZUH<;BJ*AlILzu zKmYhVxjIKNs**32KNTv#bv~SsGu{7Cl`}!)a~6?SaCycp|MH{Zd@gzWqMN={$?@w+ z`d;ol4Uf}YYo0uy5LwOH9);6%cUXQgjJL_p($!VeIN&X}rKo!*o67J2{1Ad*0wE^6 zhb$i6(66Z<&A*(-wC&s}P+J9zHXh#KRz*%QvV40i<=@M~? ztjWh>;q?%hTq^KjYxcoCr3?)U5o|&sys+{px(5V zR?A1>%lR();G@U1uN_qQq-ue$tNR5hOISfry)Gxl7oWoyS54tS5z? z%!8TeU%_Y^op6%@gl**+-p!T{Apc@R$K7$nEYuheo-p1T)ifrWEoxIF zUTQC^3*ZIK14)5f+M!&wqMe}1uFh?#%mq+~zL(W23OUXxwRdG1)n*Y!R45?pIl8CG z@4&{;#o;^t#BmovX$FA#(K~(Bz2HYG(Do;@pY~_OnZ^yjT|d+~&bPEiG*i^_g5Yu8 zsx2vu+IRYB4qO}7dhDU#L3@Lc-69l=mh^mlRlwMe%2mBwWzrPWzJW3#R*^a`|=+#(5WQr8A`0$%e9;Kqc zF^5pcHFh9JvnuT>jnk6(Leu_rd!>oeLV>iTjagv89O`zMR$PwZa^v&JTRDNAd8D#Q zbhxcV=QeB(s*zhVFkz)l{9TCxtH=ENYMBO0Mj4lfJ-$2oR8Z>B8SmGah=QjE0I z{fcibwUU-V_<5M6ez16$$}Xv?Z2l>f9#ihSQJL)`gch??Q4&Q%?LebdjzP&y!j}p( zMA7t*TaB05N-93FncxcgTi2D(NndjnylNo^sxmpDz5ATfVMcjVSXo`^0hMbBPkFxN z8tTA}TNvwaAv9rxyoi>n0#Y1ek&j&5&KSUF%E4}wJL`2hvv3OACz(Q zz9(m9T*zFN=b%58>sN?y*341V?XRbs)0X-8wW0HYVW{>G3cvPp1NDP#Y!F$A9#?cZ zol<9=P@4Pb;wG0NG`@*dNNU0>u9>FVa_S0gU>olD0ZGuCk=^<=2~dP-pKv8{mX4pO ze3BIWoAFjt_CfDxZxbAOp6N4MUlgnj^eX!wL(&(hmia3%TR$l{o(LYK{k?U6Dfm$` z2{T$FHR_O4a0cC!z-yg*>w;WeZMI)yC6iolw89;%^1-- zsPG9UJAG#SXj?Qlq%4SUx_`V!V#u6v3Y*4X4qA|LXBQMXE7+4REhchOr*-O!i9$1Z zyDaV0N3Zw0QxJt!&w8w(nZ%N6UAC^m(2Vq1j@!N4t7B58c^ZR2s?ILq0+UZOym;Qp zZSP^Rb6LkHJwwo)x}24g;|%$7Q)N;7mtsPsOG-&weW=8MD{!pfvLXy7tPFRiAP}HT zPamqKf7uk0Ypv1}$WL^OrukT<*?uPUG`0z~S~E84rfG=)YfBY&(H>9Vi(}O8TU!qP zpL6z)uLM|5bH|6YL?+hOd1<53x$jC#9M;k`R`FMGz=>sVKzeJ|v8cx9|GLcPM4Vc( zNv?lK{Cz(EMaMiOO`rdsJF8MnbQ9nG+$+?jJRWhpS=loFikXEgb+b`@H|QU*Ld!ZN zmnrH(IIFU4FqP==o#~ehrq~;0Z1;N9E^!!G3#CIOqyuCC=-=fDUaDLj;Q`YsokQUa#3e*f<0dcwf>D<6vVA@{nN*3 zW05r*3(U6$zCy^1FS62TR^^C+RrK-wDw(t8OAR-=?hcM8ri4*0&3r@HWC@_OYY0ov zEGGXrKW}|obze#dWZwFzhAh*grf4TVX!J}TO#vR(XuUOspw^Wt+?D%HZW0!f-bXw~Qe^<_4YJ#Uw zITN?>xX>BB{I25+H56=KZXH}yUB{Dlk2RQY-EXJL4GP}r3m1Y05gkoWlwBI?j!IZH z2>u}aHo4GEH!%lmaQ@+lq@-0^$n7f8z`bu(&tauKTSX@Vpz`2!%4)U_ZH1AAFxs)g zxgPIlTsFc+_|1KevdRuV8$D?u{?BD+HCLP4xdLuec_frF2ZfZ10FFY)d1eKD=j11* z5dp?S;%Dv5xIY+y97h`?A1L#z)#KrPeg&l-@)g3KfKyn*O(TMEn$SvgBCz(`@f*hg zO~GRTtw{*nUi_Oj{8y%_7*2&EE*Cpk$=$_j=UeOQi-f)s-n>r{?!vHuO{cs;`*qm- z&dyu;pn^eag|Dj;yYgIHVM9hc!NkX`bSYdl%j2S;jzZ1O-});Go=LCrE)5B~C}1iVaQz&fr2=f! z`YGNv=RqCuye7D9#3Qbty_p~$nF)lAHMRyvG%bYU_x5?uJE&yt2SzdJxM)7Shd-7U zDtH3~C3H`Fo(+F%R#J$O{-D&0TfHq zY}Ja1gQ2sH#fk%ku6JqKeU`U?g3WIG9V>_FSDt9SX}E#S`OZo7&)~xRnxUZ@NaAbj zN=?l)_+B$cBQTeDt=9P));u+w|ItoXH)asADqmdc8c2O~ z5bXc)7uCJ};8;p9?LCKKWvbfP1tzDpWT(vu->JwV$EfT4L=EF!#o$lEW-8ttOQR;x zO+SP3rvO~%*zo)2TAu6P6gyZx;fdGhE1`R5QG=&G#*PZ@)Z2pL0uE!bXNhNaG*~>w7Ob#jqp57;3_AlW!Ebc$aG9Lo9DO)8LmXj&rMNh3D`9f)f0P zI_PMbFzzSs*S9?107Va2>5w^p$^t^Ic(^Og<6MzBrAkLpxeLEUMyE2~u3qOYn$4{Q zX>;^p6Z6(afS0zzI6q4CW-9v!bs)`TN$Us~LJh|%+l||A%zbej17_BSgItSzqE51=8d+$-&&F2@331iU$LSw%{&;(5(F z7Vet)PI%{lTi-EG1s$y381bF=TFutNRb<_|O>e};3|brqzRij&A_8x=1YBd04lGnv z5|HE&v4eV;)@nAoKV@au{!$(%}EraHR zPBlKm$Fk1)$12E9$k=q6pU?$MO8?=46Y+A>hK3O@#Qg84s_z4WB`ddz@0o~qa6CN2 zEwfyj{ASRr)rd~mbH{^Bjujfns_lcqPW1#IATL|IQorz}11E1N%f_dtL{Bvm z&ziqq4sP5Z+y<(ixAR^9TBX==mfHL3tC>RD<{yo>gnvHdv-rK z?0#z_P2Co@jU4n%rzaKdPljzv4>tN1m!ayL#R1$8E#sSIp+HYlG@S>Mb0RDA=QW0I zAJLPZgivLB_wYVrIX6<2W!d=qQFLDoyIWlg1Bkt>J>VEY41P=zqOIX$^M^L!UpHuA z^8vC+zbohQ3U7v69sUYK47OsA70Sq0%DGPQD?XmD9h5WI?xkZYT|vAGxbLMC|0_0K%qag>F;|q8&j?8HtTAuF zBNMBA4gzo)i!9nc1@Lgzl>OLn9X zab-X}Q3o?P^JwwcOVSR)>z9ja_*N0F{Ii>KZU6>X^Tz0p@!&WWwh1ZVIH$pM{PKH% zUQNIQ2)i&Ur7adBaAQzLOvnJjVHmDTKE{?Xu5+QDuAD#~3D<_o*GR7#FetQMS>7u5 z0RpU}x7zkSr5GTq5?ucVKG@lA4H~%zGP_2l=@L*g1T6Afqb0Y}ThGbf^5?edZIs=e z3@AH79;`KBM6qAJ&4}cjX!$T7?7kVZYL%$*ZJ(13&w0o%hjRaf)cNC6c z<54*lu9+nm^xV|FmdvUIbmN(m&K>9J2%WhuOcF+JL+}*62uXM3e4<;pK+Wq({OA%# z>+>xD=)&X9hV$hyKh0>>f@XNQwUkHd3bEilInN~(*r)*Hv7!iA5pYX*3)wL-G_-(U z=Wu!m`TXrz8*jv7c8Zr9a`>c5yO3Z*`sG!KuYRAL=Uj~HJqi^NJfwBq6s7>6o>K0U zcLMO;cQ(69cE_y98%du{TP6PR*E0o#U=8uUCvbnNNdCPB2g;v^=nQZu8Ey$1jc^0i z2V2_{w$tx}*We9nY5`gBTa5Iz%!z=g5|4jz^Wo9h6q%V`z>ZzKwg*byf-O=M3{C;C zZ4L64CFtGE;D_w4+f)u8-Z6?%X?`Gy3gBDn&X#icFTM*h?s%5}W}&lwF*`iaFq5lD z$fWX`K$hb{?anrk9E7L#lD+}sJ6Q^#1AQ_A1@0aC52x>g`?N(~q@+I5oFtk!msTH= zVh3Xe*wKzYlYY3o(jcI`fSJT?+%vJa0&gdj6_un4tFHmbv6f5rINZYa<|F=jZ$RQl z)mh^1;P}6{8 zff+v$ek@kATFStjKs>+!m~k{Q$GRlpfY3a}oYv@sQs$=}TxPg)TpR&P5TN4ex!!lm zIRsv+0iNS%P)a90AoKGKUDg?+OwDlw@VO{TZvRX0vz(wvULKME!`@rRMY(nD1Szdzo8 z_{;!v&wcN`_TFn<*R|Gi*)c%WIav#MM&MN&>5)EP2S`CMvVVG*)+BQlWBp;)fpS|2 z^EU!s*@akGhT-Xw_YUB<^sU8_`Kb~2&$QpP67rj5>9+0N;z_2@2*emNHIob0b!05wbA z9-Q|QpoAF$C5;loglG}Lch_|ku#lMdem5aB(H z2EwDV8bswes9~E7ryJVu5C1eRl;pcu_%cHdMP6g0rW3(_a)e$o^lQj^0AA za*yxAy)<{zEuP_Vusd(fPzm>=*fkV!L_)!QAF|hHYKO?ZgPo6emoc@&*N#ttAxF1p zZ-)2YO&PRQ;J0#MNtlkjz81u>9u+%Nzt&9@a7oercqB@7PI`Q+YH( ziq6peMOJvUT(Po20U>qx>X`ta>z)h;WE21&iGF^S=?{E-sCE0eG4KIsS^PNz*uuNR zx|38l1>rQcQc3SQ8k+fcb*osY4 zS80!Kne7ihc_NGv6ZtTE##pXzo0XyuK!RZ-i(A}pA>wAVYu5F}e$NM)v|Q$+Ds`!f z$oI9;xG;z#Es3WE+$jz^4)C=Jf8Z`E$e&w`K80GF0~9i1y{e|sc#NYG@2Vd&isHTP zG*J59QJdOs@oey(kCOfL>TZ4-RZ+0zKmnA(dB&TcrE|Fb^!@=&BkZ8hycqGUFlI2P z6!sia++ufQ+;c97TTEpXb zo+QC?o$sEjL0xtn_pO^X1>DsWw&L0OeXfQ!W>Rbr3L~&6&{qJpS#;qU#y_pwvDk=p zsQ(jzwD+zZ)Fw8(p#Rhl4@LeyO>B=-E$&A#4y5@>HRng)K zVI+$BW#(Ul4Wnr$JQVgjO555K^Z@b$$#RAAb?r6F&eWQnPTF%_`$p3EF0sRnNyx!F zW+=gpdtA1e6zSbi;uFQuo1OK28fq&6!5kiEN6#s!77tiKse%k;yfO~GukXL===R`2 z)6@M##&vx05{o->Wiuv5%JkLy)MlONtId^DbLuaomA zj1YjM1mfWVUVVPME zJLDDh7T_x>vJK-F^aV9hc+YJV#d06Sy*3WZkN#=G4?;5p#V_8(>hCHP=y_Y7-%q}M23i~xWozk?s=K1 z0r``pwujUu!NhOw*{xhWZ@)24$)5kzmX>2l#IvGGMfNDiu^3B1^DTt0cw_%DW2gC$ z_@mWNtwCj+;N(oRZ%pNAALp @tAz7DJ7D)?SuJWbPkp8Jvn}7^p$=lct*yNu{~$ zE&l$TJ19Y3GUA=qKQ-gO?F~Os1p*oHplD2{*#Go9f4dUu52?HWjf+}zNK^jpe*WWf z|BGDv_p!Z2E$!{Mvqsc#Nz^TvYI)6dZ)w)`aAUpJaeW1d8xZW*=TYv!uP@5HMg*8x zBY5(9wp7xJQFpAjXc)LNLXy~pOOxKItOH!PV&xL8`EemvRH*i^tH=zYpJWsoMys}6 zNF=bsf+z$U^WoK?7o1Gtpt9H8@9XkLc%wZAqxu)m66IMJs^*Ke&Oj+HNThE`tIv}B``GRuDO7kNsl}TDR-EL{t@5X3_v@Z!aRTYw$2qZre~bd^Net;yxxOkyK4f>=m|)(Z z(fnI)l#79OE|otmskr7eq{g`k<$nca()2ysmnK#0Suap6Okc-~d;O36gVcN1)|})| zHLLEOC|E*(1z9Rb?*8NNDEl{261)>%!04}1p`h^h%$htxJDnW#P`1oy86MQV@o{Ky ze!<|}=1Ky{tjcAQ3uF@f{`r5t zP0a>c*8jV)p9A#&$%v(53Xw}JESO4w7S^<~9qtx!oP-?J)jlasc`aTXb^n+x8Ry1dD(R_u$F>@o&S$eg@d+nM~H-Qwbl)h@-n6 z75Se&1p!!5mV8K$LlE2W7ADwrKA>H}pzk(0JKFYW0`j&~2kfUx;(awEE^Y7vAj|86 z9;}ZmchOWY@hYhr5;_6Q@KZ9M8~dmyh}BW@KSvN1YDZXZ6Ovh0hM{Oa$ODjDDpW>h zUEc?sZMH_5^>Y;33mv!O0clP#P%UdCSo}N^fN^zLcc@rLiHdt01y1@xCfLU-x6D=0Nk{dZ&!a#}wNCI@ z{Aq$k`G;}Oi}MKfV~0*bl2#g^kdse9tHfN=T_Lev_Um+4Lru-Rh~P(QYMdW5Lm^o(ZG#7ofdum_m1O*nWKX2aA%I0{ryAT& z)2?#>B?~^Q&5R)6%iC)NklP`Wp9ypT;fGy01xPEDD$NmC*#4;g3Geb0&+OYf?w`4) zUh_UU*lwq&131eNN{ogQjaUI0hCQIH)2A(g;LHwa29o7H=S23uc#VLk`i`n#U2QY_ zJcSF2l11rM_ZWxp9oPVP$GRTtC#3_95kWF+I`Zi>Jp6BI|J)pZx;Ck<*I50-qwx8U zJ`-gqW85u#i~+MC10@JccYAnVJ;|$qvR0#JX0hV>w96v-ArP*NpU+WTykDUX&2(A( zZV2Mmk4iKT4*Uhqnyb@}m$ls1*_?njfya{X6FSq)fjI@#b!OKzL9y7mTtxO!Fd!Y&_c?b(w-PdVC(?LuVSLZ_P>^+auJj1-KwRb@dA+ zAu>FST>b@l0*$`X$ONm}Jb`LLC6$LMlMtJiiWFyq3byR(FS1CESyK$qAe#zpr8X7L3EjJ&YvDa@4{GhZt>&}^&$WEQ=&?iDH;vmI;Y;bW)AjWmf z6sQt6P{97Qwkiv0=X$R&zQg(HVaV8^kDn7tTs8q@SP{^vDeAjbfCD>0K3%2Equw%J z%&X}oc>SIj=dl5HeCz7C8^$fxuSq`6+gFmyy&_dnTCCdE0OIjyl3Hw)lK_cZAsE39 zI5-B<&k3+}7D4G-VylnQVC>CvbayRO#K%+h&ENB3=o^gmr?2K&P?D(0j$>n^gn1vL z^K)jh7fQ=r#w@fOo_b|iWaT8gKGjHq777My(8ubNIY0doUSkpA$N67NtYhPHb%|ME#8keUpm26$&{2bR%b#W$ zej?opKNwy2OauxuRxF^SMplElva${k{zB?;I(b>IjnbBzy9q-VuP7j_@`}U%b~**a zFtB%xbwxHF!!Eg@4`i^=JN1A@Mm}9ocElK?j`dY|dGbfqNE#y%v`7@TDTxk5EINS; zoO01}_0%^UfOh$4rVE2uV}_25PK%*?q%Too`!*&l@?5_;+PNX~@D;g3B;4mC(5fk~ zvI-2Lnq*WKXyz!vO$ zJT1Y?6T4xp838~A*mVNShK8rUT_0iOMw{!3i?@vYQDGDNF@ljgd&VF;T_*>l`vQosjO|!Gd4{HfSf8J#i2B zcegP$9)p!2xszDieO3#yuP9&TuXM+T*#eOlxv$5n593$Kq*aVqe-`_tv z<2F27o$J+tqU@{J%DYbDPuHtcPJs@3@-5b# zbUuWJ9jx*pMHE|BV4O47RRW;l_i(R(la@yvcR$J2iH3<}ul>1RfTR^n)4j#EmO@8( zuU|vD^Da&Rl$NaXV|g^#Pv`{@5zJYG&|-fdVeIdTK*OmtWR2r1)d`iC(O((NlM)I` zavbZ}90!@oO=l?=XHUjB5E%PHivSKNIWkZ8iYyQ9mOqy#PpTkHDnTzM>g|KfV^&lRBRzoBbwtsU7Pdu=`1b(9O37s5S=w9*LO||m&5gUO=L9$wLl?{HLl>rvOHDA9;5Byq8>O_PUuL#r`5t}^c1^y`JRK;iR=vA&#=1^AB7&G z<}LMqiGJ9grmjU56xTi_MM||$KK+y?80$lU&Art8>3%qEghWL@77ie{%PPNyhl0wG%`7XjI`X>F)}J8DF-xkh_1;_+NiuXZ};IH z9V@Lp$oGo$fz9a?4Ms3}DXwJwCjvI;Tx5$)lOr$pq~3&gY27S_JjwvqDw$$wE(P3D?b2 z7@Gc^6&SO!yPnVBsChfT{1;O2k-Bv6VoHSfisXOnR^sUK=1-AcnsGF{0jnHG7@vR7KlVUg=bqx`yj7>)`*!XizH zhN}!=`i3Iy((${Zaq6=gCbRs&((Gijd+Dnu^k5<-*as6}Wcc-8BdEG@QBYvw!W(%d zrMtH(lA`{|JXicuNI9O|Rp6s3DwM%kVFt7%rjnMQX8royU|d9)UoCunoTJM!y|R7O zm0b5%3jJ$BQzf zT;4StUsF6xk75)wUUmLe$Qt^GiAh3>4Z-F3HD6n&Cy|SUMR4!Rw9kvqBUvMsMzRszOv`;pIM*Cd8f24P#yDf_K=5N}vaZ^*05?4|HEsw`yGTGS zh9Iz_mNdD)JpIdq3_q#L9Uvbw;N1XTeHeRv>iWP$LHRqnB_d4G_;H4b`#nsA#rRh> zJE<%G6vtVi{%oT92FmBI_}OwX$?2eg6?YC5c*U??n3DM98#jwA zQdKGi+z&;a<;XmVe)q+EiY{O^mRVnH^wVDuDWEiw$BcQo;ld#{_^YylmQ~}24Z?ila%Urjo_?9 zfq=2%Hh*EYL#wkQrZV(4W-Gys8@_s@2LsSFVgHwk;R^gDjli^bih8Afrwz41#N#cw8$qR zeohK9c#5J6`8kQE+B@|sucR%UmKQc;HtsJEJW(Sr$&nD|+64S)WAK=Qk!GxB4jype zW5)r>51H(xx`$+}zevB@M)c*>cA-12tf>Ak^SP~a^c5PuzQ~J7r9`^Rhnm6 zjI1JTe9D=wyL*%C$1RGx@{GbH!m~_YPUuy84*9YC$8r2;#kn1wC0nj!@G>-=*$POj z##TMCHe6hbP<(1U={6Tl5=!(qU8>e9Z49|aDEMNL%4As3y z{xhW(NS_NbQIzYY8@sD6^PmufWBe?ynsc2We914s&(FDiU!eQO3P@)fuyH;nfITs4 z;eYC!MaMBp{W=}Wwm0?1t9yNq6KGTPf2e~>cmwxTM#Y>Z>1Pb~qn7OlBsq?+q%h9{ zNhmpo^OlY=i6Qf(u0J^{_&GCpN2eRA(4uD4nICx!8m_If?qzg>oV9`4G~L(NaqrF` z*oX-#cI6E5uE#47!~!!5F_S(_*&wOQ`Ett1?;q!*9*stInCbG}UIODQow?k)QEg7d zN&8>JQ3w<&UtIf1e~*g*g7`?syFh|m%`_`2T{7|H+-zSMJ7f<%{Vyk^HxwE zr?2kzWaKh|5%Oy_@d?CPN_SYL|BZbQaMj|A1`3!Hr+_@`BID2&gu$L`4SOCSGlIcc zhOQn_ju((ON82LX%rvQQJA7`Ss!HL$CB*tQ&F`#RA+pABR2}<;A@;{nB(@Eup^atL zkdjjC@`!Fzu<$ZOV-I)9?r_DXD7rm&aupv=xG50Z;AZx2+OioqCR%K zI%5&l*GfOLxrk#M07um=)4Q4;@XQv3Si1>dEV4n`z++Hs@QIQ-kPkCqI9QCl!1zda zYmSHf?A17{bZpetn2E}3LpIgaZ!1fRLis3XrZZShhB+^JWx;kj4@hUc`CvoQMTIpB z@v^;&i&h|SLtmKIO!d$@yPM0fUX=v2D5XD9CeZ}+HF7aGBUo&ls8Kdrjnipr+`5U} z%5k=V2ov7_G;7L4ikWtnt<0hR-#Lzg<5-~gE{}Qe+h4%*FQ++O@TgbYyO2?xX5t~j zb(S9`c0cd6ndLT|O0@Zc)yJz!iZ1J2R%!v{D;t3R*?V z^-Xu!?tY5LcNgl=&D8$F!BWUlB~^YEKt&+;q2NIIimctcWi344dL>yRe{#pzhW*_I znpGw`0JUiS$aJ#=+wl#KQ$q}EWffhFCc1V|k1|`7T*)29eeA z2`U_s*Aeo@-B%O}6l%WZjm`Xa)G&V+s62*}?E6Lex6-b3qjJ=yAcvX)9I*!o87HDE z@w_hO;CxFIh(>3Omlrd_UP%NIAClXoVQds6ZzlRsWKn~7D>tH`JZ8`dgN{u(!JREL zz1WnqeHayy!&^^I`o$SUNW`)8O_zk?p8AS67ov`V&Yq9gne7@j32<2`8jwIu1a09l zR9y!tjj|NLTXw1j!0yqhoa#sJ>oDu=HU3Hcr`#JLYnQM}7YEgfwF!Ss>ujjRV}6z9 zQ^D%bR5&wzKrTx9u?_MSz=r@xIhQba?+vQus~Z4o8~mAjfBfO`64lt2$9-%SEj*kOB^aPnf1?cHGj2vx=DP8Y*~QhSAaq>H|Y5DAW&$@^yKKK6o= z)Hojq2%EhIuVbVQPJsw*&GY*@b*>#C*jtr(Fovx@&0^;0_7Kw8344@5$?q$#NbGc7 zP`+4cKzV2$^ZFMHo&p{qyL~aRu)%||@i`e36dYG=e!P&S7;Mf7CpV z0(d>_`ffM#z@o%%$a3s2AC|i4bASC&|ABYLe?$mn=(D}H@fXzcSk>>klrDg?XpfCa zBNI{dLrvP!hc3SghJ7keZ!@&LtXW(z(zd`T;;+kWb=c<$lmQAnS!(p|liU2^v%Q zEVKIo0&K)IVW_yg5V%qi0Q|0mqf*mHo>=0Sn4i^uIh-v&zzMLdK-eUVAv9FDId*ZX zX?1eU^RFn?cPDVbQ%aau!zCP&v{8BQ0C3@~y2AjQbXqCF)6Z)}bwJyust>V1?He(y z204zQb<9K0>bJgtZ}RVF*i4-$c!4~J=x@6? zV>`WFG3j8=1}d?na^AFJ&AOB0V1nFl(WX%f(k*AI!-0Oj@;0JbX=%+gI$0L?4gF}S z`!r-vvE|;P#mY-@wN__9*esHK=ygZI+MYaYJmhOy0dm{z7JR?)T}>sWi1GwFH_7uJ z0+|j_ce7dkAbzah_>p|-kJInL2gJIO}a$!3BL=f_|Qzty7>0@Yh zE}CG6(|ouoD$kTdJ^sB}|8@Fp37{D|&&$~sdKAzo&DI+5EjdBCq^t?^oeB?;Qf*yzkUM+xrz;|H9?H z%kRhtcKf~TCZLlW4iU>vRUJ(tApe^;&m{r0C!1X!m+WQdM(xS1o+s=;*g+KpvXXSq z71ZM24Q9&zI;T*NF7p5gap`V7hFu;GnVabGU3q0?eNL2!nhM+X>IKbmXoTNO4S;uN ztm8h6DR{d7>kdItFR@fqO1k*iiq5_3m%z49=iTm<_@!Pk8obzj~wsz@6|NXx( za6loSnSfV_|3;sqU9-Id3i%}5srtu#pq79BYn|=ytw@WpYHMu~tXIG)z>)gt$ zsX%F`CenNw>tobvRGRj0H+ThIV;RleSX&VkOcCK zAq1jMQCSo8)Ea0XwPC{$xQq919~Nc6p+bU9zAH|BC`Ht?D;)hEQ3f?;_GEWck-_3OF$~9O?%~O&LnNF3~#^KZ|Ht4HyaqLVv9F1;{Ns0jPu*Xy=4pZ1x|iVbUE1^ig_r(iyVRk; zfk7AQ2lWE~`sjbY5$U%=`PwS*;FVzNOAJzCdK(;LN!wkj zpf|fY!3-bJQx3yR?Rv3qQTxM;ihp=6NZwyyb&+JkHF?_vJF zho=TzTSGezZxgXPII5ng&zsYj^Qp14x4-EtxQ;dGw6w;(uQlpG{z-@+(5m3`-IT+z zx@pe2vuk3<$K544gDAb9+LOYa_A%>L;;#d^~CD22L(c@3Mp{2(z$zpE-VN7KE>hv^y*7z9mcKR zdwNehZ>e*-iJ_@wf`ZxK6a`bbAO{L-6|t+0^m)eZGrLo_`3~~fyrD?<;dq9{fGg-( zs63$)b3yz|CNrjz3aM^Hz9(f41I55C8FW(kPU(m$t~=uL7%_#2jNef3^@1p^RmkHl ze&s?PW>kVQ-H(4UJ->!Bm&6+s^+jsL2^ShY<9ecIgnlqu0oP-yGj1={C)!o13=(9! zF=E`x&og8rm3S2#v6{=?1|Lz_P zp(;v_iFbXtY^Z-7H$RW+*ejsN^31;~!2fSImTHE|=U>m7|9WXKFTIuUN{toW`X%bQ zG>!j$3#znVYt29Cx7GWf|NiUl{>NdzG-A1Gs72#u%Ek1%AzpqC;P4vV{so}^zNP;9 zI-r^X%O$^|GV$(z9ab;k|FB?b{dea+UkSt=Lt1K5|K0uhe2vt?`#&whBu-EhQa2dv zK;op;|A~4IYBt)NC={`)(Z3X(>47cFZLdA$pba6L9xMcH9*zh2XOD0A`|D$MKWp7zSZ_8?Pt^8YgQq-yc7-sm zRYLZ$h@2|a&?!`&r_$KSsh($ix9iN|ysLYFho#QksViE)dcDlRQ1)?DtSFQ6i?mSl z>BH2XRx}$~3U4Kr z&<0~y{pV(!dLdimjO00 zBv9R>HNI#v_+pNxZe7OSjc?_(q8S+Nswc#>F*l2Zt@GjF=)8KXiO+CieN9)TCDx$x*Yq z8T)-u($jIt-gT2Eg6qWAM1aW3!-QzVquf^D`C+F7SPMFg7*NE8{Jn1T&#IRqp*0&c zh)QB2r=E74Fgz|!yoq`KUHkY#;VWtPuCHweqeuzJ(Z!aH!?*^?`s+p9udofOLy_36 z6~v?H?)Z_ZLMFEq_72Ds*xLNGRf@&^4#u(lFBeA9tOKvno$Qn^lt)Az*`zB{+TiZ+ zul;kh#VLuL7JBeaCc6}*l*i%yqE8!+s=1?H`r(lHy8 z%;D7d$@UTXw9{UJ%)31MwQ(0a(ni~TL%k06Mhi2$RCY)2db&dDP15t$+Rnp-+8>pn zf{GCmu&X$>IsBlzv?W2ky^P+@TY2;j-hq4~jj~nFn`~dxJ~sEV_+HagJzw7`r)I%Z zY4TKmPYC(4Y9i=Rc~ViaGX(EBErUdYO~}ItzLRju-oUWdx)eWKIz_Rx-DDpYozp=wI?qvEhV zwun*Bm*wp}qn0lXv<TLuzRoH#^zk#ZM?YcTJbTul=ZKQD;P#Czw0~61pVMGIjeuqiSaR#5@YQ`UT2wN(D+jUdjtwcDEVN5GS^qO{NUOg=`rXvKHpw zc^wZn*N9vtvGGg%jEY?93{ZJOcb&Z#^y;p{(f;EQNqCfsR&h-0$$oN0Ro$JpK2yoY zzT@@#tS1t3<%D|=i;Pl1WwJ_D+cmGrcA3l;feT7~Ar}7V`ZDLe3b%dR`XDW3xH4QF zE>PP>$IcgWwB*q-5w>G>`|V0?M{T@h#`p?tJZS`s=dNSJK#=Mi>SxbJCx=Bg@nJ94 zYCBv;>8NTLRrmn_^ z8Ep>Dm+g-QQ=XciYpotm!B*$_`{f|ZSK*lcu{C?E*f+WY=^BB1}=OL48%L0 z8TTEpvSrWLJt1ngM%+1?YJKT=eUfIPVdBPn47;FfXZJBZ2UAs{&rW-a!o&OHis>g# za{stx$1)F@Ex-v^jH$L`T`kymlG?m}jyIT%)>e8uptZ(L2%2s*mqisavVV+^I(Y?+ zz3(Gab)y_jI-fiY~kcncwB zTvnV%g?J+ARBk^ABgX8$L=WyD`uy{Em8YWThAN_2mnu((F1oZ^r8YhGDSTW8QtBV# zdsI8(KEN9@2(BkE7_8|rVJv%$?`4OW4%^kXsSuvt*R@?3p>4ius3}^_(Bn=?*^Q*b zUs?6;I0*9pp?jg)vBgPC*dr$yP<5s%)Y-D^YmuipTxmheZ=%ESNdLNN4RjcKG-Mc2 zcdpxx`v+cVaN?1ls2Ehvd|=13hHMivj%R$o(PZ68!2Q|${cDqJ1lOwPw}a~^*q_DF z=eeBvbO5b_*}7aW7e^qTo4SPZi)!8{b5ZdEQ*$ zb6%zJU5=s(p9}gdKHD6l8F&Y3Kx75EdryFATS46~3AteyQg3#q6Ta#jEDW_d*Ccyy zyUV@{F`=dsDm>ZDL|QqTMNL#*%RL-vjVD>Sh;DDkzn0+8eJj#DqlxCkEr*_|R=OOE ztZDtt@tWGK*5YaE)>go0$*UQ<%`DXvQ$O9Kz=zarnt%CM|Hhg=6JgWQ5BX$N85x_f z_mAWuEZbg{hI6D*e$yM(G+Ox5RB6cY;&#hU?=g=h{@=~a zIK^XdyQq9fjo94p+sG&d6eH8#lfC5y`g1IoC7#peO^byWBX7Phi$-uGgP^IYRwW)` zFFL!mkd`J_Xxxq{BluM)7IPe?NgofCLH^v~_dI7P3gFnUz^tl#p=O@iLvDYRXAF~J zwq&t=jQ!nc+zHP;FzMJT!Czg}_twc3&xL-5`81C??|Sw7$i}Ke5od}Monm6%px2*k zt4xV9wGv9R^&Jc;Lu($BXz5a_R-LW9pIFodJ;CT$I-&Mn0il?s+>$}IP*1`Tpf)hlKy6=s!!US-c~*U_Mnkr#)+vY*T$ zM+9^BL+XV)wX0&oq4FY2CdY5HJ_#LN5#lYa~!u9j1-i6xv-zz9e@p?@6Fh%2dV_c_S-NGHTb-V$Hu*0bF6 zzBsC(h<&wrhUg7sa7uRRD5rr>aww8qrGDuBwYyK*LgzJwQqG}(I{av-N0en(Lr{Xk zfI-aYrOQS!tnx#Eo9(9PX|EQdAc|-ldgxe{7NIs}b=H08<0bUwB%6l6(e$cHd=_*4 zMI?-K&`Vp=N3BMElY?AO` zF!zOwuQ!@-$MK)0s)iIR8cc9D4P6zQ#xYv1qUkzRvNEfIAI9m@NarFfe;gs!H{Vix z8+QAG|9-x>(Ga`K+bV(2@kqo?ddd2O5fM?g)wc%s5+o#MI`zZuepzW{=Ij}v^7k^X zSWk{KshWZ7KSGI#6Fg!1u0>k@(UU?2SkK?VfAe_Lg#|?XlsR-0eLv z(HW5h%nT!j^QS7sl(;w{#iNC{@d8bCo>VQyW#fi_O`da9$6GRCkL`LrP-eYnXb{MZ z=VQ|G67oPhOeX?!s*+xj6yLr|A&$1ji1^@$0%p^}yFZbyPCs#>&`(Qhi2EuSGI=1$ zF_=2lozsMMlD1gVoVabQ#esztYzk~eX=;`qK_`1^Lrv*_Oh{O_k&Xx z=Pyg!ngeU`wo={E3Blv?k)OYOwG$|_s|-v#=u@kSVqfNS+Z%eIlPA<)Q}FD)t_1~- zJi@YRPxlk%{$9PN(g&m1nkz5goJ7+{EY+%pKlq4=*A72Vx+d=wuqvx>Rj&`@m}|6Y zCy#W3q3>T+&dM7Pl8;#{ku8Z#!^}Rzeb_Kv*`04BZAu1Nu#Wc;`mp_yJv90bOyKCx z5s-`qzZUndqr+83!qeRB1ajE+bYQcgZn*iTQk)6QO0y_(`DtB5H%wQZT?R4mImyWP z7>!)HQL&wI;DN40W5EVe%W^uQY9cx>ijE&aRNQgcW*%mufA$Jbp=9ukuH2;l4~YRw zjZ_)W0k*9wxdOsP-~IigA+<*%P*7F@g)d;rdZms$&~oUxRAo^|{u--qi>FS}^}e-I z6WbR)H|0*?U8O4Zl=|{6lI>`AmIoEn7-&o!(!LsY+Gh!YR}b(Vl{ARy@+8VeF8SxO|+C9}o2G-ADMo{Q;t_GXOK@%Qk= z_Dr#)5gJ?LkYOj7lk0zLi-*ljvoap`eX6SvWmnWZbVG}Y-%a;JqF1olWz5kvU=O404!_NTaRCG=uj zmRvY4)KnpEWS-WypxnDCSKOQE0X2JXOiIKho^#|i8l-gD=ML?9`Zs|pL|SwcTjV=t5S=;wKUr%$bYde^DHmA_V{ zb@gEcIO9GG0v48RsSAF&q=rS7pr}~7DN&@+;Sv3cp|**PIfC}0LwkaCUChihTl8^! zXkdA`X0g6W&F6TdOv-2$e^wQx_&j6jq=viP zEFmIBOf1qs&^0^`L2F6I%)~J2!Wu-V?@`Td&B&8 z4l@nuH3zoO`d?`|QY1`GI%yh@>EuLi4Q31Vh6mCvihWp#)i~*YAgSup8Q+jO7jf)u zTsMn(X54|lAv!9l9^8koR6yfV#BfX8wd1?SY{V zkNQzw_AmAxr#Aa7OM8q~O6r}_MDVG3E?N4j%(rIGpXh$0tw*mkm|% zypoSry(~Qy>JNp-{rH-ua|hB}$gu7k{3t69FaAwcQoI{=AtaxWczCEPYq&N{a}9(W>9?y^tkv6e5zNKygKH)U8~FGRvTF+<$t^$=ufZE zMmA^eE=rnREbF-8MYd;JWCWAvPH&&V@H1KU`OHhJ@XgN)n@N>7;0Kz)qcjy&mL@?`m%$2Qay|D5q@4u z7*pv>2??>(<(8pgrnhPr<(>-z(~fKJgJl=cIXo7^tz>%mn7Qw(K4!8Ak9T-TqW=af zw8nqqWXt7jBIL320Yms~DWn|htno$Nw~tHjE7~yP)BcF^@8QOb44#`eHf3G!4>n}i zGd8_qS&`tWy`*A_qpi8({Mt$T?Y?Ha%78K*pKiN+fcSFzkFQ}m+NLBWG^Envsq@o5 zE)s>$N)?_~LZe%1zj9{N24|Tr{VHeE!uj&ZdyfuPyos2_ z`|)Np#(PM_l}IGjQVnljwxy5D!VmBvc0~UME>64 za+mR}WBjm;xDWK3N{XF5c>(N@E1My$^GL!WR1P6&i-z#^sT}5; zieEAvQ*g_*S?g$AA62cF-n!zBNdUEJEcHR!ZU(j)~deYdn zDekh-2%-N5_nT^8zPf1fKr4jfY>=y>PpHf%(#l?_Z19I{0@Gqo(SVzU^I#zVZmp(9 zoTte`af4xwW{2{5Xw!LFWP(Lc{lKv(EZp_Eq;JqhwR#;RWLZ)^8d);P%2*_1!Pc*% z$eJ~3U(+k8cbmYz=<)bb5#8Jks%T$5?na%QR28~$>bU%QmVb>WEzS!it!}yh0Pa;v zyn?qg=JBdbF<+eso_o8LYM<)VAq5p;%nw9zvb!=m0u6k#d=*)@vV?A`M@yE+on@0y zVvqz-d#<+VKxs3GySJz+zs@ODiy_NkH~QwNULKC_;;i~6pB`0Av)nPh=rO==xC`x! zUs!H2MzDH~f3?QiY-T zZqTN>dwud~_Bg}T1)V*|n+{jVZON;$bBi9g?ztZ9lvr*t#g=_}@#e&;)ZQ7+(p)K! z)-HKkc~Z(HzZ*YxM2K?Cj9Y+)~`;HA;NnIOeqZO~;0vl=ze+ha zuL*?-Nw2qTCFj64Vm!?@1G>|QeXIy>LtF2oOTF_C3XfX$ zT{PrvI`Fc4slnP?QgpNwA1Hv}P1fT&lo9(rT+#nMZn6#EgX;=jK9v(iHAT_--a*F| zN5~IU&eVt%deX&Lle+y#zo5w8c63Ub8pX)#(HpZi2QxTASWJBM^bWabd4p3q zl5}xw`iq_xVj;!jg&!Zfq!xGeUx#C$tC@9IeV@=g4b{B*L@n6j?8kI`Ydazkv+2)p zuFTP=%fj%QAxYf>DaN8Z2hDr7LtoZDSjQfni}DyrsUECee;LodvL$pHx{uC6u2gZ# zAT^Cmv}o06tT&2vYNN?AO4W1Gz)RiuY;o(`3(C3|?fY*i$L$jzl0P!fh=&y)??^X) z5+aQp&>y!oy8YsP$a;*N@BVeTYd65Md7@P&a`|h{O_pIJ->f?B->X2#QVhmqTaCZT zO?S0?67o%WTi?o|18HV3PS@${=rqYTk~8|!RkDlOF>Fe|MLH==r|V%|QMB7`*U55s zP(6ds&70p|Xo)Fguc=tlV7*@pKV6Ka`LPj7Q8TK*gXi>UHwjc=y=jHa)*W8 zTwEYTOi=u42^*F@VFNB>wN;K2Ih?L$^*ucz*L&^5u0Xl>dAd6Tn>fs<@}_j`U}MC= zl*6fNWS}CRPhEDLWM0FQ^;hfS+sMUiRyS#%qc>PDHgP&-YWJ(ZYgX9oyDhXW_v^2W z7@w>RcGk2@dayG-ZR%SV-q)$zuttuJw;5%9RCc`}VX41RD6PX_cu(3L`QZ!}(mgV| zIj%Z-r$p3ITWuqQ)=@+BT$6$exv%4J-hwmDuJZY(Zy^`~SWv2){FiO3)CC=fL*Ryw zULFJ6YrK+1RzX4& zLj8wMu+1w{E(&hy4OhNCoNp8C_aA*0%6#6zAYsWRpJwW-$p7hjGi{NQ^OoU&uLta7 z{PCI-`&}crCc19fqjk#LY-D;H71LcU(<@?in=WyrOD#6^yV>|H`zK2URrA)`p-l1o z)=3SfDdt1rabe|_ci`t=F-ckVi{xv#@hTN?DulG{)qHa{Tt`y#iB%kEhs8GJ5)Ld_ZXZ3Bn#69qUHBs>FnW&64SIj8muYfuXl%~|v0sUs zZ_Z7nYm1Ooca_~##LIujMn4Yxm;tB=2G)qF7r;W+zPGRH%b_6H@!@q=VYoGl3DRg2 zvq!5POuq9{TUYYxsNHSn17EjVEg|$bG+^@_QQe$^meDb*Dl)su zNDT%qM0t_Xs!8^%4M%+oXtd(+S>LAeh?H5l3ya-0u_Pt?`93R|$x6mW^?F);aYO{& zpAFDr+=Qm2b2#AY%P!UXy z7~8>bio7yJk;L?iv-14|%%nRWC1EqA}GKUt6kT)dhHZ#`K$} zWfuwU6U6~X@odVw8`}8RV;jcDyJpi27qR=xQ6=W5C(JqfBemh(38&xjjb@b|6(FXS zHiJOCg>^1@fase3f9-u|RFhd3E}+67APP!vBTb}tkS;bl1B!GILJz%n11cZVdlgU& zi1ZSW5{d$m-g^m3m(U@UK)5d|Gs4_&e%|%nwT2(8wD--)KKtym_p_h958Sfwac+dv zvvKy#A*_j$=vd$=Ryy%}hb_zBh+m00nvm3Oh0*i<*>mj2GA;5we~CfTQo?y&)!DOV zx$o0*PYk^9ka8@_P=L9-W?sPUA&WGaF>C1kBM#eyB@T(3H_ghg2giaF?7fF;dMkf%%aspP*F+UC>@$9yqI_qq3w*@{qI zLCZ?#kvpkbS=GLNpx-(>>s3{o;%EdO*m1}WC%-qjT=PKa_Z{!%OHzYNhgm~x$#hZj z1E4&q!&jD|xO^|4J-@p%wcYJ)u4YE9(q%50lSWsl>(p0ONZwofds(3+c!BOndPlET zq3Q5~Tr=>r0NdNNbo@mjCarjIL$|SR(5ofaa40(zWHwmv2j^Uq$NTJ6#~_2C&Xu55 z6-z`CaO(Lv=AuFW9d&6(W4kM=S5HHk8HMMCZm{BV`{qL*wb2kS`Hs2D&>1ON$d~u{ zEd)--*F;7Ni(15Yv|6_4kEAkhmk+sCewKQ~y+!fX0Y1jF^L(jG)q6-F3D$(pE3oU- zEL6$f@Xod4O}Z!btozog>IyeWz@m+mtyG=olK6_beXiU`lLz;Vc@YCkdDQ7obkgCd zpyM(Jh#X~x&({njZmP`L$l}*nnhyuaZ{ts0cYgWntA9(bWE{gDTM|z<&)`L;c{BJx zFgc8)4^lm8ZuK4VJ^PQ!1;_&j`Vlx_|M4qvfRlG=pN6z^ob@PA4K5Jq(FE>Z#pz@` zJq@P`!BjZFSDtf-68~HI@2`V1?gm0Jl70I6y))E?)0@^g;QS~s4v#?gnU-Cr#`PO< z6|mvS)twXb|63&Ti_na50B#yd{oT2%|3v%&<`RJG7XH?onm9u?U!%l=UV)f&YQ(wq zH%U+2oe5`TQwJ(a;)TSVIYWpqa}oLZarY))cejt?j+X#|KLt2Tb1WWb=8=jD;PBV6W6Y$Ku$ONBxc?u5Az}Xl_Z1TpVnLB?Z0ZH^Xw^@s}0GuElrzUq4GfvWqvLX zyk0bb?2>bwmAoQri~;6+OnN9F?X<*y14qd^e#_#Jtg(J^onO#zg@6ry6zVwpru-cd z9XV`d8l6N{Rf7=fAy=mC@^I1cC33qeayb!%6W-ST-@{fN=$=B6VS6f zz~8{3_2Y3eBlJ*oD&L5yQE6e=h@iI|4rBmW%FDHZx%t&s+9ry3Ywe%0VTKp+^bQZl z7t>OKqXWUbfL@I)d3B$Z2>zT}2=~=)g4w1;JvP{m6?xZ+aFn(QQAFqK%T!ztT`0)K zhnL&p!!>G?{3;)$-re0$S@|gie;Hb-Ce!}`EYQ37(DKTs(y9Jrqze_| zL=*DH_b;ybBBK)GVt()`GHh_0uP!COy!KCu1c=}ffcMlHitmU0>E55#+aHqeh5_1J zkfZ&N3t2Y92v{)NOL3XVe_F{ncm{y=_;+Y0cHnpmAkg~KB;;md%2r?|A$t}8UYqzDWvTV`x&(s(XGGG z7;k+IKv>UdCRRPMhBk#s6Jw6kPa+SQqNzl3S~A(3XP`{))QrLM!6Vein_&GV3S;GB zdLKuiQ}AEw3U~x@z||A@L!eQJNyK?wC8lnN1Gm`W=G^tC^&;fmQ*f;LqJ0APg;jYj zHtRhEW_~WzZjxWvN5oHH>%>RAK5@!J; zYp7XC75;}0G4ZJ%dk){6oJ;=uodA&=18ia1_NC6VbivaW{@;Q9DeC`65|bh%zI&Z5 znrg+0R_l8p@MG&TmLO~_*R)t5`g1%#HAO;>iAF6++pG6ZpQ(9{zR>JJSq@KUG8C$7 zlx7HEyUM9Y-hx-dQVy1h*xWIn*qs>UquvEuxFtOhFulGWs`EZhIUk@yRt9D1@_=>I zdkH#IzGSDtFzK~x&fd!IMF7gpUyQQTF3Rcgd`(eT9Urm0_UP=bqlcVF~ZQ zAc&J_qr7F(CQPsAToGjPeLw6gDF9RC2QBaC9Ww-adf-`GyIDzfSU1GB_R0RK#||v6 zr9AO7T^{N$QBqBAmMJiLj##R5L}(U z-O&=PwXBK9Q7PMD|40U7J^=uI2~_6V+bTM6k%bTpxmdodTu^0+de5t8TCcep7Zu}g zMrNu8ON%~~^k3#R2k;#Mcu58RK*{|&^Jwy*QM6{Vzp>NMWR!95!?BV%YI(NJe$SY3 z_uj_nk*vE)10@^)?+oMV-6X5tcaL7?vtu~idSa{U`Gv-Qac`6j8w}&IAZ+xLI9!xB zb$zGfm^J(~3;D{L!`^8K$={Tdf<<*NZcS>kId9E&`*DpQbaRa#vXn6r?Z^m{SBHOw zd$(Q%GOuQYlf6If?o`V~p(B|}_A$!v@H4hZ*689e!7f=OmFK>m+!_n&PIPrd^7_2r zbsZ4-laMfJpLCx^nb8FEUT}g|avh_~-9W0`3zh+KqQG&&V4^;eh?^oJ_OJyS3xYw-F8kZdozdjP)vv^YmDU{Iyu-`X2Aow zcuPJiks4rDD9?QkIS$43@sx86?sqh99@#Y=E>z{h`d3WL)v63vn!RmvZH$^#{l|z` zB?i`$NmpfTn^oaze+wG?)9fGo6eU(Vwc-p4l?Ax6%1bg4BF6O=bFR zwsvhA_OW+7SJFDj`aDOb3$3#cnv{PAANAyynKV&^8O{&R>{YK=BLOTC6qtHR^``$$ z2}g&YnbOc*6J15e@wcq+GD*J*pR@QnPTG;VgH=$R7EZ9IeaRm9^cg;Wxe_NpdD3J& zRBolnQt?Dj#=9yBHUdcMa8+fX^$Yd&b&{Nb3Z_j#HnxUO{gA#vmC^#XG)!^QA!;X! zp~hLyw$6QdDe-*cn>K2lM;r(Mv2KWM)J52bL@-3=)y&&QJ_}b8-;_BJiBYQ|K*1Fg(q zG*;H4QstEctT15nS9Y0@Zq#c^d4rN5BVzRH`Izeca)9dKt|+ZFTGcl6a6i&wDp~H5rfeTh*{lmUGFY-@LJttb&{C zGARM)TlHzIUcNcWWc((NQ=TetL=qiMq5%J(W3d;63 zvA;j$9Qs;)sk&uKibjnhtjgt3fuB07ZT-N(g9)4d-IDn&=MP(g>F=m zhg(EP0HNDx(;b$0?MXNHLorV9^nUNHEUhIrII7fD@2E69Do%P0%x5##TgaMXacdW) z_HKEc(m!%m(5)PwK1P7z(Yy!?wJvoGorJLxZh@QXtDRCb>#fdMo8*x>Ja)UZS{qqw z)d2nivrBa|Y=Q1bOV#FwdhZ_vn7Q3<9`D^NfRd)U$23%%>sJEIU1)c0qIJ_%Mv(yR zo__B#=3lGIxB6~L~sem3w>?>Z>KMYJ&I=MEP)>#wPmHkE3kif@aQMDbo&vJRHzE?yAj{$oBl z-nNe`E~91mPSUygP<$~VoEgy$3f+TmZ(5YH)UvZo6QFPD((tbyXhm^B$Aw!OtqHX( zajbw!7Fh1ws*j0Nh4h+eX&-#0)Rur-5Fiud$OB|zxp<8>>q!JFtxLZ~z$h8H+6b5v z^JGtkrl^gaw# zomvoT7aBbap#`5I6UCA;W;4Dx1_1avakmL-3>s(r6gI+a9NW+$2QUCOn zi+TX(SwuJX@JtOIajdN87e|L$M-DT}DE@@9J9^m^G%it0kB3wOILIyP>=8FEjx~of zyM7g>KH?mssOimU{2XkL58cqM7-AavaDIBDf;Vw|nN*K5$Zs;#_Zx)FP^ac=e}1=V zMQ1<%`z+p?ClfdJi-pYek+o%10YnTYW~*|1nXEYsTON9 zja+fjdh@t+8&MdlY4?tYLVroZm&8QLaTmH1(l-!s*#KCXZJ6NwGkJ&M*Lb>Oc@f&D5NLBbaUF=BOTJkKs zLP`TKy7MT?nzmYAz9C&T1cElEnMYVrB$*#B2n-3)Hiyweq0@7$67QnDEw4vgWsZf@ z9lbCR_FWKf5yJR1O--7wXzt`gXoqe-M{l^>>1<*&5L2piYaw#7c|w@DW6bT0=r-XC0AYZ z1cr2#E>!K&BUvpaoOaDJ&G2E1yZXrngEk=+Y=J5_Cw-~gQBJpaGIi`nwj z3t}OUk>yuv!ad|f3@E7WKz3RoVcRZA$TEE>gHau3zc(YbZN_=YDsntOM!OT`+;##6 zLh=DaTMnC~J24SIeKli(i|zh<_XYjX1R_*W(qO zqLeqK@dFP?h_#;tx zWv4G1V|=9B+Jk=?H2w~?UO2Y-pk-K%hDtA=Rpd#!pMs*4A8c5B%mRj8bRvnhlvPiO zU+x3*$vFJc36xy8`0$Y2Xnw&C@+rB;*JJk~>L|)M2cK2A9*R)OfDSCuZn-{(bMfpYFa9?58O4?{#>BSJ0Az`Ou)voF)cy&kRkxTiN6V4n8qRbyHn zf=E!BEg1y$X=DGB}v#ltjESZT4%N4~nkt{U!TPp7FkfyfDwu2(7 zDF(f}YWZS}d4-6=!O=j=Yb}i-FLSxw-zUAM_amb5HaqF%BO(t#<>v27)XsPg5VG$2 zzILc+$HL<3uxyaT-b~|@mI86GjP>Q*-Km!xlF`J_COg6O@idxMz)#3q{~e@QnxS86 zwz1+rC#|T^)EsyO)#XlHWpj~yTf`qVzEQN(F`UgfC(zT3 z{=Ti}c=jE)p*j4fnRm}I>9ie&eIjmi-sbx;Mr9L}x3K;H0Tt|Vli5nPu9tp3z=^1< zO)2mgQN_C1RUV~L$ymPFN#C#-v7%Sw;hi4X!)+>$(@MOeb4h6NrczwfwLw&w<>yev zJvDAu;Cx{-3JW{Yd{p|Fb;CmvH>+-?bC3Lx2N~cd&W>Rhrd4^{KT6hEaPn<$uni%g z8=gyC3Pq!^-wDAyaUmv@ zM7|`?M0aGJohj)PO;|}RCWare1(jnSDr1>10C*+QG1~$!?ffcMqwX-5=DX&V*`Z%U zTAe7#J{rH2#KV!iec# z&p!GNqo9m&sr#$}B36ficU%0IzP!xFnJ1Yeq6J}!_3~}m*BFf4OTD~+j$!ng96YSJ zrX~J*`zm;x1v7ftudcC@gFTQ6sx&zC3%T zc2-*5_;D$k>CZq$O=kMpmgdSOULd*~gzCf5Zk(@X%(-Hw1_2(u;Iu`p4MMF?`Yl?@ z)Cl{f>{%AR&V+}(pTk{5sWUell#2EVrD(-Eg9<2+6e}H&G}-v^712GTg1e2D+IX%> z%-ieVjzg%xI+l+V1){7 z**1P``drZG>W}TP9v~&dwKim{XvAOWbp1-sIRs9$2eFYkEMfrY5ZWH&<$}mQ+OrQXD>AD$(W*p z#Y!JCxxHcDmaly^C4P)+91aFt;gQ*uL?y#+1Zn-9MoXwjtTI7}ja2+f-&Ehn$LXKp z{FI@OMV(Mf<}i)42HYX>*VJJnriH`s1>e_D#a#MUnte#gX9x2pW*ep+n04hJlj`$1 zb@+cQ3r9VLwmamO!x0*$4K*-O{RLV<$j^{F{DIP&Np-<(z&viShzs zZ33VgBEj5e@x#4|^4Aagm8ExLn2IuS^LnRKvUF1u@{*#9bp$rn{B92}_6z+-m{$i3 z@D_P2RF>l$yDp7nys{&wWhjLnWbqz^fFfNJgv+Thd7q1gGjk`i*Ih3(eI1z)VQyPd z#%e~de`<9mRe{CE6z407;84beW<+JzEozOFxRbmAic-7UkzPj4FhwOMHjW`di^A-s zJ3@WGJ&lL2FStkzX|=t4>6v6Q@O88#_GO<_VT*4bM2Dmm?R7L5e@;!LyWb3*KAD33 zU=0*~-CJqna38f@U7@O~C)I-G-w;eLnP-`rudwzTy~9eYsmB#%MZ4OOpNr3vm}ACs z$R$`2UW+k(HE=U5PspD>>n9v-ya{ALY-{=N|4jUxK;6R)c(P`~8y5D4B_gEkN{)_%K_IgGcA0v%~)x)Vqu6(V_na%85< zaj~dWyFil_G1|(mfb$rAbuMAghx?vw^jXt?@+l1gK4sZ6s0eq`f-V+~0Khlq9exir zYmx34aI}s#C--myl0E1OdL6i3~OQ@~risaT%ghEk2EE+srv4Qf{d-HI!&_uVkAGXo{_}De(xG`v& zWjNNEc%p+g6#vQdR1!IpMFiwYo?xtjUTE9!8eoAte)?!Bl-qd0%cYWW%F@99M!e;# zYq5s?7oJzAxA>==Gr5IC*7>1Rq!Wh{@MU%Ntgw)zn3CXvru($G=R|o?zJll+1V_jC zrArCp&NYkUffu;RZ_UM-^DQa`z9?uyEKytRd#=}3!74sbirE-dtves1Iw-HbBfgku zajNy!T^Iw0^9SkhgicN0tp?}C`~6K)YnhH=Vkgw}i1=2d>TeE{Pi zn8{vS`SpW~7jhS&y@(}Q3Nk8pydgqYuE?kMgKg=P20yTo&@$pPeIEREYr=SOE$v=X zw{ey-G09ypp{8h|&`!O|sJqOA_*)KDR!K*{bDQQ@Y9-s!4FQ!^@?<#f9gI8e9n&ZM z&dcus4#l9D^GTb{p9%?~zp3uwAuLwf9+ki<2<5L;2g+|>T)z?%H(L-#$pDK}?O%`9 z4~bZDj%o1j;7p*5inhz=PHq>X|728>zSAN^`7gx(-raRl$1mXu|eCKbKCxkaa z3k`U&1f{zJtezRz&*n3hPk+Ceq?7|!Yx}f!F9&vzA2Fsn#Jd?Uy_VOpaI>yYoXYcVrSgciPptc&IHg?Q5C==dl=y!I@~If&a*=@T(cU-^(6EabXQBFHnXSjojt@@<9<{H8b|wor|TBx#)qehVcczVM=>iK_VVXMX~t9ccP#|`hTLrzfwP)> zQLv({Bvt3=%Gn4DigLqYNfIU-8KJ3JpoX9@w}GuAV^ePlwvn*7_4SZ9Il$zW8vIQX zA#F|XbXe<-U|z>d12ac9a1=-91Pm#~9r2#qdDjzTZ6NNyqglFJBsIJ+7y@OVcpF<^ zL$Ca&KcdGgyVsa6I{%+DDMbloV<6=uNOnUzl9-jm+SNL_SjhEDy8JnlsxW+rIS-s8 z$vnY!jR`CR6y2tHQe$#;Eo0C3Z-a}ze$!)P_q8mW6R;iln3sfIun-}-k(aJZriQR< zorw4KV4aMwvGT8#TA|q)S(t9s97F@aA7+u4-d4Chq}r|AtmSy+0X=y(_@;eHH!MEE3awt4FLc!1{(w)h^zdUc`jKGjT*0BZ zm}>U6IS;n?Dx)Eh9{AinP0GngZ*vis%FceLIG|0ylTx~Yw=k=C9RLM0*Ihxv&NsUF zTR%*#GIO^@u!X!h%y-+A8XJx1?wZ^tjBl%{z>RsF8_P;=ri(`=F0Ms-bUuMU z^}5ErF5(t#p$v)+hG9iz*^Ka*~sLkL) zaK^Gw3xIX#D|8ufx|hr--3-PUMjK#MH9d$ez7c zk6zTseL?VPeBUco_b$UqVe#U*!{qaZA|nyTKQ;X+6 zcpPoICN!b!3B4k|$0haXD*$U_*_nIcCyU|Naq(To(^Xwt_dY7i>~cky`cL%CBU*ld zs@)NIpqJazk21S{z2GEU``2qyKoCa4ta=?#MmNU_2&K{Z9__zYcAQ?A;?pH_QVQ4+G2-Q(ys1 zDO~){H9@mrJ{JEFifvx6X*t*Z}W2!DAHqC%>=?-P86;1-~CfvoDe zv7zC=XR(sET&B&l=^FV?jLkCw{QiBCk>gf?zv!YYBhiAq83WhO`h~Ykzr5qZQJ-jH zaJ%?qH~96Mzfb_#BY?HDgtWQe_0Nl<3OKBJko9WrnJmVcn{FL9?Zv{~w&+f5<(X*t z$I}cYKqUVT?PM1ImD*`7`B&F|T~`0D(9^c$U*mCNH@<7hzsBQ#)p$U{@p>%FrUfW| zUClr>#m%BL|0Q749m-X$JGJRTE<+TdCiBhH>ygm*(|NCbz4}8v#Nk+WLh0`}216*8 zPM6Az=>w(lqYPPni?)-RRY9i}geS5Egu1tal!l`q8QQ$Md8aACU}uPrw7s{Oq$D`H zWkzI`d*XEG;3~=oP>p*=qvLhHRmf4Q028=nG0!O%q^RS9A`}3iwTs}XiHS^n!O`Hd18YJ`Dz(X3DP0m2W0rewH{eiMRha zwqO#AUg3bB{&`xI-NeN({6?2m(93+gcA8&2C?EOKkDuN)JwO-r`SwK_>sf-6PDCdTyElb zvLM;6l)hhRxo6^srXxXcVK_%Pa3ud8E5p(My#^it2!Q~A zf3MMkU7sG&u-6mjuPZPn7=R3;o;`6g;r=5%6aHUFI7lYKzs3L?*gAliiUb%8yQ&!4 z8yj0YnAtdv3_zq{3{+bgO$Pvg;N{Z`4y;Ub1OOl)LsT^!H5BCe4Q;HL4UB9)8Z*0E z**?hu2)gpahE~Ro1|U}}OKS&yS0SoDEBImKCpHTe=+6>I3n3~Eg|{FH8+&6AH!~|U zE0r)B2m}(eH!|T@mX!J%4x@yq%p4tU`B_+8TwIu4IGAnhO7H0b!@(B;44)(}Tw*v9@h_J5-^{{s_dpsWkmcV=E{ul1 z-T?bN(u#s5#Z+D44s?(`@w+dCY2d^|Mg@Sc#^0&NF>nKMaa4i0o=3Gp$FJZSxR2&C zbl!?F`essr{1M}HpMPPH`Law&nH3ZrNOL#B(`Wh9`a+kP$E8z2aQkwhv5}*S!=ZKQ z{^wv4M-^iBw{Ig~K7l|eDDeKGGE_JOG0+%URCs@17>gbln6o8@0|df}fdX-HVzAay zsMYYENKqNBbl5u%4p96B9OW)f3!gIA9})&2`u_|-wHTaftBM&`@-_sGpj^}dH)xSr z@r3Yc8*MDWaTS#vOL2^s-M=z7ubRDe9N3=W+n%0kzTB_Q>pdAG-0%S>{c*-sgsAc_ zMgDrj`juS=jx39xSd=@9O%cjpVUF4a!qLaBmb`tgE~AyiD;a>*eaqzZ45onv#kZhc zCyTZ$n$vQW>W`dFE};0AMr}$6#_X@{^M1k-zo@1LqM`tkCJ zPZSCky!d!~`#XEwKl{apMO4R6jUE4q0`a1tfRT}<``*Cf2!vC|!HIE3eBY<~ME$=i zWb3Ja{#rS4Z>l79!;=O9W=XFeO5Fpc7SC!}nU>#tb%AumzFL0WM!wlrhQLlO=EAF2 z*Ciy~_37JF3M^SXA(y%Eh-jn1t(Rk7--PX;gH&IF3T(6di#`WVfa8+C{)7s0k|Uy< z2-4Ew4Zn4FZ}5RAy;Q!bchH^qIrC}!W!N}21(u4B&A@N~=TUu>!+p6_JcA;~idS3* zbq8cP=KO5Mj)QF9*JI(Ep~E!w*b{dvkJ-&3k^EoxnJP5KWEgs#f=NZ(=BYJnFA~O%9`}nn$bAmbwJHrlq&>Zb z`&4LzK8}`7=1QQW8M1Ta-a0W&?S84lJ6rV;`6f}>Gqe*e@_PXqL1m^|jmjfvU|=BJ z$C~f6^Ud_}&AGXn@|=7!^t14ld-@Dx>sCUuWF-}Y_sM1J_zsKDMY8h`fybG^kGIy(#WMIgL5mP(bv~bFDVfTDYK(EL?IN~Ik-_)Zgj=-#W7gRFSpvWQ#1#HiXW2mRUYih}Cr)-4^%&6(>r*f55?p zspA%shg_6<3x1f&dVcvHY025D=4NxoS5R!6B8pTpVY0+*DWJ7pfa_u(@oW`6V+@_b zTTX;oR~iB#TCz1`XSv^Y7N6;3HkQTT_^nYlFN;4iigf^C{&79y;FF*An3DaVQr@%T z(2Q0^P+HSppaxBKvJ|O{Z%l+`mG<;L`plTw3+(RnBZxTLY23yt73L z<$XA@T8p_hhUbUljd7J1O?3Ec<78mk;$o4;)gbFwDKXedR{S+4ksU+p=x zGU;-KJb60ivK!KEfx0DOe#F5M#-&GBe;@oBviBkCEgyHn74@n5LvFQa&cRAEX1n&O zQgk%kt~vg zYx(Vm`+N@Yt1|Ul(LuKHt>+&-II4;0c5SzE$=i39b(c!Yq!WeNCdxLC;l3= z((R_-6c5`RQeUq?@SY#z){Ok^cR5o8b&j%kX+_h!C2uTB4Nn1&rE0PKleG>Od+i%2 z5qqi}-$pzzPUZ5a6$)MQiwhN@CBe5%g!cZTb_kSQ^*Id5JzCC2W*sv%XO<-%x;}`z+s`rE zi!+Q8DILjYeXb{Lsvm8e(BOly7stjv=Mf}KR}XJ9-^N;dT`BO#7aD2eVj<(TelQ8r zb#XG>=M|xFHOd&#ur#1C`}S!H{)h_r_2mgLhEqF;8NdgYOhE;G~by&P#!jJI1}Y+-)$ zK;lIJ>vDianU~gJ5dyoKncobZd_a(>a}}jZO_!{U9`9(T!z-looB3vbsvT z;kh2QVT{*VOHt2n1iv=RVzVB9=r3W*;FFti8wk$xY)uWu-YZ%!*T1dS89wn{pE&e( z5JMOoonGq>lFD|5p6t2xAL>d{mV;UJ1>(M%$7c^0d-)aQk34p6{O}m}A0C<|LCs_u zArnZ|;%cNJ5!*n+nNcViYFD(TBNgPGSn*cH%*zxoAq+H_Bw5DKdyXCwj_x zYRjK~x`6b07Hs&tUzbzMdz}zBnUJQ)h%KsJGSG>YlPNk+N7&N@0Bvsa=5C5+{%%Wo zqtu#Gz;Vf)x*4uck?k?JAboVqjXO@0InXqm>+jhjXvgD7{GP(jcq; z#W;0s$`s$Bo#OsxvG2I2o})x)@QC$Z8}#L8yF|=iCfjoI>I3dv9D;t1H#bS?V!V1S z&M8>KH9Vos_HIhC^CJV?Zxei4caPIe2HND>vcC1GVf^;#DJFIU$NTt8=*BMl(4>#9 zcc>HcAQEq%)xU(EV;MLtgy~S;QuSukkZPGc*!kLAl&jbXLtEIv zhiBe}K9bvVgeoef43h2X>J)q=d!1J66|%AOU24qnRzaQNgt>3?bapAttjj~iX`FN^ z{33xT6WK%0bPH-VVxV=`Lm(?Jo99d#avNd_xb)GF(zw}Nc=KLM57~N2E)G@Cg9-T~ zyNrCs{ypl2PLEe$wb7l)snX~H~kyU-AGE5 ziHwxXp0!oR>o^sVTkoQ@xz}xv+$&-sn{LANn_yy;)}t|bcR%UU^AMzA!a5O86WhlqP;RGT$9TEL#GpUVCD1L;y%@bKN<~f;+*S?=& zo_gKpmOnjIxAvhZdlckfO*xt=w!`tWv_^(_(u!*}VUCGp`u(H2v~Z`+ z2mOMr&cai(vk8Q_ImFA0t)AbRWhFY0-HBW%e_(!FV3Hi(+MF-c}$(81f>b=eEB*kx!05p=>Dj|hL=p>8HSJ8bV{NEdy%Jq!O zOXi<>5)&*J9D3Oes?Fa^H_IvJ!6&|ut28NlnL4DFw@Mbc+A>R*mbh!1I@pg%+b_yc z8D2sQ!N*x0F}L1nthUK2WB!mQ>07^!SlTH-aYc3~;cNU#CE#exRG(Y$cNeKmxIuc1)XJ66i+n zl+u-(2{AB|;aSM_PG%zS`(L6brtTW zO5)1Kw_t(IuZ827F5Q|qp)}8I>3F7r&IPlXIu1s>_yMd)B+tt`cOhM+N-zh6fK7yGZc(v%rB$sk*@ zC_@>E&W(-jEluvD&$FNP%r@2JSI-*e+O0(;rwJ8WS#Q&co^tW8W&JH`xfH9BD#@I zAtUnHO*=whhjZ2v@GN5rC7zLdcjb*6uUh(O4p+;I z!L}}JOHf!1)1J!0*YiUBg#VCP$72i5BZKgT?0KEqb7L0;JN^hg<_URHw< zWWZ)PmDB4l3bIG8evXYbK^-%sb(MIPzkgEQH!7_Jq#ih6^|xQbw=6b9d$km9Or)Do9Y=7;fzZdpRbAaGAm14|w-zMVOM|3m z{>9PuB(o7H3HQ=T<)KRvAwiL-@k>6lDM2ISg&~EJ42g3rNB+QL7q^AVsDPgkPC&WZ zY%bd4n+0*UHZwg1mUtoUvqy3ft1mNL;LJI@e61wiK`s$tpIz_b{Rk=jg>>rbaH|dJ zsF$N`y0KJ|wWh9Fpfmea8l1&v&#Fvz?gV5!&J%cCUj0qJSX9vf!4op>R7&rSVRrMRELr_)Wq)(g;@{6*>X@vy5&q?V2L6GN%7S>7In&}GDSiabj zo=n=^t1Eh?;%ViY$!oAyez&}irE~p8UU3P?L5vw_z1F9oA&3h9=)wqDrQspsfL~jC z&RF;&o@>~Fo${5&T(G6^FoO(=+U56PXaQF_SwzU1-mmRna{6-9zzD~MOS0o+!G41< z9!@Y5><96%)aa-EcB6d-)*-?aP2@BJJj>wb<6Plf^Z0&^o))ad-U;1hlZ!CFOt?^! zQVRRkUbY^j;{`;Y0@pjo)(882*P2dM+onOShDxuQl(r>o4$>(`>FHrg)@Cz5p_Sd2 zJ(IQ=1z&`dGdrS>`KbCUuu>jdlrk<=>uBVTn+3J^? z2}1_n#kF7lkajI=^9j|`nXHj>-FsWbKeB0HT445nf`ElvY3dN!Vo`=13Jj5oSFl ziN~pKYV-Lf#)vs;e4IzOshzm zBc5I-EgyFI)2Biqk2{5&rY|?i$ysN}@mSp=PQFWFnoI~UUP`H9Xmh_l!Wge?nuN%j zGn{YWpOhJk*fWXPvb;{L*^t{;9n&l}?c?vuM~0m|W+Q>T$uTOg=;qrsz~xjj2 zGM#t~K7ZHckAzT_eKttXL3Wa8eMOOCcVWnLQk?)-ic-aM&Ys|!Rk4}F)86$wHiz(( z)5hjxyoaNZok#m<*!OFslX&VhnxC`xO7AiGTxM2K0w&ODfVJExNrUylw-Qb0ld*0p z-r_2kD#RXQ@t#tc)^Dz8R=&OJdiJ$mffx_R;)0#x-X@b0S)}f_mJl=1)rSJ8P8yO& ziH3R<^6lB+!fWCgT1)444^I0*46e{V@{rR$!NOv`a-)zwqi6z8ACYyJN#+H&ikZ|( zNEG%asR=d8QBTRl9W$lP?>0h`>=P29YeJ}b$}Xxw z9v5LvJD1jGe$s6_DjYZdzM~_29y+c(Wo)brgo(R@NF7so#;5YHUTeQFHyNKobZy4|b zDw+0XHqSMO$K7??hrn`YPF{+(6V~QCe(hvd}6Jh0A`&V5fYjrN$ls0GV2^`M3eWYgl z_6W^_$9uPp3}tSIvo`*vNB6f@OE;|{#NcgIhY%#C3s_-fl>`pMU0nZ>!gB_*1#i1j z!;?}9+gvfReh}Xu>y1ocj>K`9Od8M+fa{y^3@MLt=?c&IA|4T8keh~?q}?J?qJsIt zRYcHSJbPTMATZhyM>LKR==WB9wa=xcCeP(DWkzHK8$QFD@!Z$1X7F4D!H+@=4)_!l8I83hhs+#sMhq%`P|mn7#Q_FncrtuI|Qsjp-t1*^Nv8 zT9o;T{&`DjP&MzDvD8e|&{2EBk4is3LtpbhBb7QZj6Oe2{l*<&WB~1pMd&6{cw}u_cReN zBlmgg;u3I~<=%u7sC~!~b{X>vkaqPeh>z=yH5`|dtem12q(R0F%0ckP*c5-NQ9*#N z=7Lqs$1FZOppNeX8!5?K1MwT(4dc9#TnCd?j*-v<2ZKV#$b$)x>-{nMn~NVAlWS7Z z`ysHhS_8HL?lAiI#)qgJ08ADR@HsppN|`gHV3dwk=gCbpJZ>4L1^FZ z5}mx!j;(!QsTZ3qi*{5V#G-_F5gN0=qEsI#isbg)g6vi_B%jbk&rJ6+pkrq>OF|Zp z`9lrkOFBB0#kFR~t2Qx)_a_xpMzDWq2FQDfK4ggpJ%>;TILm)=+8xiGb9`2|F7MAB z6>x8=L%9npUdBCdjHMcoMs940$@o*y-F_pQ^orHBz;e7omQX*2Ni-i%QAJ!F-Y+K$ zKmWTBaTSi-bEc9(5F)iKeJLL;t<)FxaX()JDnBA%GVck}J8Du%toCK5Z0Deyce}9y z>@ClkBr!Q9pTb>>0|*r-G2vDtN!@>@GQRu5!_IQH?n@+Dcs?1KaCe=QrMDW}0FnoMA3O@V5bk}v%u!xAZ>=(o>a z%GOCumVM#0M)|~lJuCco;T9AST7MoV%je%Ff&+*1lW#g~Bu(yH97nzzHer)vjlgLG z*=J;7KDYHvFoP!5#sHU=MC9ksIm)@R?^IQvtCj1ffd$5?R%PQEUagqt1pO@K+P42i z=5LrN1}d`TL}P59F3@=iQGJnzZTVNBwk{OVk`jt(f||(5I-3v^lP!bSm7?3kYqiuA z`V3F;RTZNA3#j>2_C&r?F=rhC@ktVgDP!piEl%3D=gis~NxY(ypq&|A4}~umBsNWA z(oy7UTWju{M3#1GIRQEbeM(QM1xE+WZ1>Nk9QDmw^7j=>2ZO<3)k@!KBQOm>+Bmi! zKW4M5w{0NQnBZ8!bWNUvTv81?*-j9zB{qU-BP^n$3c&(XOmqfij5isvXnj!Fu?a%a zriTZCqqjrx=;AQl7VGR}HumKd`LOjEQT z4xrFqyV6f1Yq!G^?kR0JQ1B&-I)@%3_p`t$@at0UWLT%jCsQd&+_OEfLbR0X39Ns> zPy0<9Cs*45{JujQ0)m#+{muC+e*R=#&*L}qRi@ZNmx~Vli@1b@(%o}XI(hO$7ObNm za$z=l$ONJN0<@c8MRQz?wm}IZ9j!k_SCbUTrau|8k7CAw(EH4Lc+^>}2xKvvF7|Ua zKtGGgLhPzgC4cgj4EgqG9VN)#YzgFrqJ3%Gtm6+^uGmg%=JY`0`_m2p!Uh5Cy8&x! zogt93ow2a!EWXYhII9Mep=3_Gb;)z3y-9;weR7OIZVdl)VWAE5&1Uy=Wf~#l{^#*! zN*Thk;okeDwUgJqU#JT`uTS<~MEH?^lAP-uz{HJlMo{ZhfkoV&49=_yBxlw#nv=yO zfiS&HJX!)((8S|p2t8x<*)iNSNMG1c6Mqonue&k`sLNGA2fudRl7=Bq7~pC7I;!C? z30nqiTW`-Ml;U}MR@(!njPMg#KzY;Qh06=IHtK8c^OwJu8cQ9V^l$wlh!LXAfNu%* zdj1RAu<}cm6tcUjjMbWh;U{Sh9Mx1!IVJ11JdOzvC57f3hQsq|_34Pgg_1 z3Ezty0qFP5i(vnCJcz87>p=ERROokrCb4wFGpNf>f0a+g9jLCkxcfvBgZ z4IUt;oqq}2OVVwR%in6;MpsIPXuO;zW=k5JsM$m08q!)B)EKWf+nceAm;I{0P~>Iq zbME>2I8tYg1XLzK1^oT8Hz{GqIb{%_+Q9O~WG52S3;2%iWU?cVU;%PYv%0;cSoLVE zmWev@oNy-r{dr%)p3T14cqCZXn7^4mq7_SbxBpB+!<5YV`_oek&ZYoRG;vlmdo)jM z+TDbb)4a>Cz+k z6RuR@8$3uYx}=7(bJFkCvP!<9nj|I(H!u&Q#C)dJ#|J7+o+vA9&;fjNw$$j7kARF- zu)98*4pm3)ooB*Tm}fG2`P6<=SAb%+4jdCt3HH^1nL?YbyMeGKgB%kKK?rB_`%F37 zA-0HfB~6V<+r1e~5W)T?776X?(2Tah9VO`qW@!=FEL1t!c?qFrldPKWf(Q%Lw6N-dZ zpkahLN=I}^p%^v!nssP&^@m>B7MPVd_9(vcT-W~5(1hUTZ1*3OV7DL`|Z;2k7tQn76C+pO3+5@DbnEa=J zqXL`0l-3@FALmn5cV2YUYxh5Y>dX Date: Sat, 18 Jun 2022 10:16:51 +0000 Subject: [PATCH 196/220] ARI API Updates --- .../codegen-data/ari_4_1_4/applications.json | 223 ++ .../codegen-data/ari_4_1_4/asterisk.json | 725 ++++++ .../codegen-data/ari_4_1_4/bridges.json | 765 ++++++ .../codegen-data/ari_4_1_4/channels.json | 2177 ++++++++++++++++ .../codegen-data/ari_4_1_4/deviceStates.json | 154 ++ .../codegen-data/ari_4_1_4/endpoints.json | 263 ++ .../codegen-data/ari_4_1_4/events.json | 918 +++++++ .../codegen-data/ari_4_1_4/mailboxes.json | 137 + .../codegen-data/ari_4_1_4/playbacks.json | 165 ++ .../codegen-data/ari_4_1_4/recordings.json | 413 ++++ .../codegen-data/ari_4_1_4/sounds.json | 99 + .../codegen-data/ari_6_0_1/applications.json | 223 ++ .../codegen-data/ari_6_0_1/asterisk.json | 725 ++++++ .../codegen-data/ari_6_0_1/bridges.json | 774 ++++++ .../codegen-data/ari_6_0_1/channels.json | 2194 +++++++++++++++++ .../codegen-data/ari_6_0_1/deviceStates.json | 154 ++ .../codegen-data/ari_6_0_1/endpoints.json | 263 ++ .../codegen-data/ari_6_0_1/events.json | 918 +++++++ .../codegen-data/ari_6_0_1/mailboxes.json | 137 + .../codegen-data/ari_6_0_1/playbacks.json | 165 ++ .../codegen-data/ari_6_0_1/recordings.json | 413 ++++ .../codegen-data/ari_6_0_1/sounds.json | 99 + .../codegen-data/ari_7_0_1/applications.json | 223 ++ .../codegen-data/ari_7_0_1/asterisk.json | 725 ++++++ .../codegen-data/ari_7_0_1/bridges.json | 774 ++++++ .../codegen-data/ari_7_0_1/channels.json | 2194 +++++++++++++++++ .../codegen-data/ari_7_0_1/deviceStates.json | 154 ++ .../codegen-data/ari_7_0_1/endpoints.json | 263 ++ .../codegen-data/ari_7_0_1/events.json | 918 +++++++ .../codegen-data/ari_7_0_1/mailboxes.json | 137 + .../codegen-data/ari_7_0_1/playbacks.json | 165 ++ .../codegen-data/ari_7_0_1/recordings.json | 413 ++++ .../codegen-data/ari_7_0_1/sounds.json | 99 + 33 files changed, 18169 insertions(+) create mode 100644 codegen/src/main/resources/codegen-data/ari_4_1_4/applications.json create mode 100644 codegen/src/main/resources/codegen-data/ari_4_1_4/asterisk.json create mode 100644 codegen/src/main/resources/codegen-data/ari_4_1_4/bridges.json create mode 100644 codegen/src/main/resources/codegen-data/ari_4_1_4/channels.json create mode 100644 codegen/src/main/resources/codegen-data/ari_4_1_4/deviceStates.json create mode 100644 codegen/src/main/resources/codegen-data/ari_4_1_4/endpoints.json create mode 100644 codegen/src/main/resources/codegen-data/ari_4_1_4/events.json create mode 100644 codegen/src/main/resources/codegen-data/ari_4_1_4/mailboxes.json create mode 100644 codegen/src/main/resources/codegen-data/ari_4_1_4/playbacks.json create mode 100644 codegen/src/main/resources/codegen-data/ari_4_1_4/recordings.json create mode 100644 codegen/src/main/resources/codegen-data/ari_4_1_4/sounds.json create mode 100644 codegen/src/main/resources/codegen-data/ari_6_0_1/applications.json create mode 100644 codegen/src/main/resources/codegen-data/ari_6_0_1/asterisk.json create mode 100644 codegen/src/main/resources/codegen-data/ari_6_0_1/bridges.json create mode 100644 codegen/src/main/resources/codegen-data/ari_6_0_1/channels.json create mode 100644 codegen/src/main/resources/codegen-data/ari_6_0_1/deviceStates.json create mode 100644 codegen/src/main/resources/codegen-data/ari_6_0_1/endpoints.json create mode 100644 codegen/src/main/resources/codegen-data/ari_6_0_1/events.json create mode 100644 codegen/src/main/resources/codegen-data/ari_6_0_1/mailboxes.json create mode 100644 codegen/src/main/resources/codegen-data/ari_6_0_1/playbacks.json create mode 100644 codegen/src/main/resources/codegen-data/ari_6_0_1/recordings.json create mode 100644 codegen/src/main/resources/codegen-data/ari_6_0_1/sounds.json create mode 100644 codegen/src/main/resources/codegen-data/ari_7_0_1/applications.json create mode 100644 codegen/src/main/resources/codegen-data/ari_7_0_1/asterisk.json create mode 100644 codegen/src/main/resources/codegen-data/ari_7_0_1/bridges.json create mode 100644 codegen/src/main/resources/codegen-data/ari_7_0_1/channels.json create mode 100644 codegen/src/main/resources/codegen-data/ari_7_0_1/deviceStates.json create mode 100644 codegen/src/main/resources/codegen-data/ari_7_0_1/endpoints.json create mode 100644 codegen/src/main/resources/codegen-data/ari_7_0_1/events.json create mode 100644 codegen/src/main/resources/codegen-data/ari_7_0_1/mailboxes.json create mode 100644 codegen/src/main/resources/codegen-data/ari_7_0_1/playbacks.json create mode 100644 codegen/src/main/resources/codegen-data/ari_7_0_1/recordings.json create mode 100644 codegen/src/main/resources/codegen-data/ari_7_0_1/sounds.json diff --git a/codegen/src/main/resources/codegen-data/ari_4_1_4/applications.json b/codegen/src/main/resources/codegen-data/ari_4_1_4/applications.json new file mode 100644 index 00000000..09c5cd5c --- /dev/null +++ b/codegen/src/main/resources/codegen-data/ari_4_1_4/applications.json @@ -0,0 +1,223 @@ +{ + "_copyright": "Copyright (C) 2013, Digium, Inc.", + "_author": "David M. Lee, II ", + "_svn_revision": "$Revision$", + "apiVersion": "2.0.0", + "swaggerVersion": "1.1", + "basePath": "http://localhost:8088/ari", + "resourcePath": "/api-docs/applications.{format}", + "apis": [ + { + "path": "/applications", + "description": "Stasis applications", + "operations": [ + { + "httpMethod": "GET", + "summary": "List all applications.", + "nickname": "list", + "responseClass": "List[Application]" + } + ] + }, + { + "path": "/applications/{applicationName}", + "description": "Stasis application", + "operations": [ + { + "httpMethod": "GET", + "summary": "Get details of an application.", + "nickname": "get", + "responseClass": "Application", + "parameters": [ + { + "name": "applicationName", + "description": "Application's name", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Application does not exist." + } + ] + } + ] + }, + { + "path": "/applications/{applicationName}/subscription", + "description": "Stasis application", + "operations": [ + { + "httpMethod": "POST", + "summary": "Subscribe an application to a event source.", + "notes": "Returns the state of the application after the subscriptions have changed", + "nickname": "subscribe", + "responseClass": "Application", + "parameters": [ + { + "name": "applicationName", + "description": "Application's name", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "eventSource", + "description": "URI for event source (channel:{channelId}, bridge:{bridgeId}, endpoint:{tech}[/{resource}], deviceState:{deviceName}", + "paramType": "query", + "required": true, + "allowMultiple": true, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 400, + "reason": "Missing parameter." + }, + { + "code": 404, + "reason": "Application does not exist." + }, + { + "code": 422, + "reason": "Event source does not exist." + } + ] + }, + { + "httpMethod": "DELETE", + "summary": "Unsubscribe an application from an event source.", + "notes": "Returns the state of the application after the subscriptions have changed", + "nickname": "unsubscribe", + "responseClass": "Application", + "parameters": [ + { + "name": "applicationName", + "description": "Application's name", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "eventSource", + "description": "URI for event source (channel:{channelId}, bridge:{bridgeId}, endpoint:{tech}[/{resource}], deviceState:{deviceName}", + "paramType": "query", + "required": true, + "allowMultiple": true, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 400, + "reason": "Missing parameter; event source scheme not recognized." + }, + { + "code": 404, + "reason": "Application does not exist." + }, + { + "code": 409, + "reason": "Application not subscribed to event source." + }, + { + "code": 422, + "reason": "Event source does not exist." + } + ] + } + ] + }, + { + "path": "/applications/{applicationName}/eventFilter", + "description": "Stasis application", + "operations": [ + { + "httpMethod": "PUT", + "summary": "Filter application events types.", + "notes": "Allowed and/or disallowed event type filtering can be done. The body (parameter) should specify a JSON key/value object that describes the type of event filtering needed. One, or both of the following keys can be designated:

\"allowed\" - Specifies an allowed list of event types
\"disallowed\" - Specifies a disallowed list of event types

Further, each of those key's value should be a JSON array that holds zero, or more JSON key/value objects. Each of these objects must contain the following key with an associated value:

\"type\" - The type name of the event to filter

The value must be the string name (case sensitive) of the event type that needs filtering. For example:

{ \"allowed\": [ { \"type\": \"StasisStart\" }, { \"type\": \"StasisEnd\" } ] }

As this specifies only an allowed list, then only those two event type messages are sent to the application. No other event messages are sent.

The following rules apply:

* If the body is empty, both the allowed and disallowed filters are set empty.
* If both list types are given then both are set to their respective values (note, specifying an empty array for a given type sets that type to empty).
* If only one list type is given then only that type is set. The other type is not updated.
* An empty \"allowed\" list means all events are allowed.
* An empty \"disallowed\" list means no events are disallowed.
* Disallowed events take precedence over allowed events if the event type is specified in both lists.", + "nickname": "filter", + "responseClass": "Application", + "parameters": [ + { + "name": "applicationName", + "description": "Application's name", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "filter", + "description": "Specify which event types to allow/disallow", + "paramType": "body", + "required": false, + "dataType": "object", + "allowMultiple": false + } + ], + "errorResponses": [ + { + "code": 400, + "reason": "Bad request." + }, + { + "code": 404, + "reason": "Application does not exist." + } + ] + } + ] + } + ], + "models": { + "Application": { + "id": "Application", + "description": "Details of a Stasis application", + "properties": { + "name": { + "type": "string", + "description": "Name of this application", + "required": true + }, + "channel_ids": { + "type": "List[string]", + "description": "Id's for channels subscribed to.", + "required": true + }, + "bridge_ids": { + "type": "List[string]", + "description": "Id's for bridges subscribed to.", + "required": true + }, + "endpoint_ids": { + "type": "List[string]", + "description": "{tech}/{resource} for endpoints subscribed to.", + "required": true + }, + "device_names": { + "type": "List[string]", + "description": "Names of the devices subscribed to.", + "required": true + }, + "events_allowed": { + "type": "List[object]", + "description": "Event types sent to the application.", + "required": true + }, + "events_disallowed": { + "type": "List[object]", + "description": "Event types not sent to the application.", + "required": true + } + } + } + } +} diff --git a/codegen/src/main/resources/codegen-data/ari_4_1_4/asterisk.json b/codegen/src/main/resources/codegen-data/ari_4_1_4/asterisk.json new file mode 100644 index 00000000..841e6cd8 --- /dev/null +++ b/codegen/src/main/resources/codegen-data/ari_4_1_4/asterisk.json @@ -0,0 +1,725 @@ +{ + "_copyright": "Copyright (C) 2012 - 2013, Digium, Inc.", + "_author": "David M. Lee, II ", + "_svn_revision": "$Revision$", + "apiVersion": "2.0.0", + "swaggerVersion": "1.1", + "basePath": "http://localhost:8088/ari", + "resourcePath": "/api-docs/asterisk.{format}", + "apis": [ + { + "path": "/asterisk/config/dynamic/{configClass}/{objectType}/{id}", + "description": "Asterisk dynamic configuration", + "operations": [ + { + "httpMethod": "GET", + "summary": "Retrieve a dynamic configuration object.", + "nickname": "getObject", + "responseClass": "List[ConfigTuple]", + "parameters": [ + { + "name": "configClass", + "description": "The configuration class containing dynamic configuration objects.", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "objectType", + "description": "The type of configuration object to retrieve.", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "id", + "description": "The unique identifier of the object to retrieve.", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "{configClass|objectType|id} not found" + } + ] + }, + { + "httpMethod": "PUT", + "summary": "Create or update a dynamic configuration object.", + "nickname": "updateObject", + "responseClass": "List[ConfigTuple]", + "parameters": [ + { + "name": "configClass", + "description": "The configuration class containing dynamic configuration objects.", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "objectType", + "description": "The type of configuration object to create or update.", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "id", + "description": "The unique identifier of the object to create or update.", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "fields", + "description": "The body object should have a value that is a list of ConfigTuples, which provide the fields to update. Ex. [ { \"attribute\": \"directmedia\", \"value\": \"false\" } ]", + "paramType": "body", + "required": false, + "dataType": "containers", + "allowMultiple": false + } + ], + "errorResponses": [ + { + "code": 400, + "reason": "Bad request body" + }, + { + "code": 403, + "reason": "Could not create or update object" + }, + { + "code": 404, + "reason": "{configClass|objectType} not found" + } + ] + }, + { + "httpMethod": "DELETE", + "summary": "Delete a dynamic configuration object.", + "nickname": "deleteObject", + "responseClass": "void", + "parameters": [ + { + "name": "configClass", + "description": "The configuration class containing dynamic configuration objects.", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "objectType", + "description": "The type of configuration object to delete.", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "id", + "description": "The unique identifier of the object to delete.", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 403, + "reason": "Could not delete object" + }, + { + "code": 404, + "reason": "{configClass|objectType|id} not found" + } + ] + } + ] + }, + { + "path": "/asterisk/info", + "description": "Asterisk system information (similar to core show settings)", + "operations": [ + { + "httpMethod": "GET", + "summary": "Gets Asterisk system information.", + "nickname": "getInfo", + "responseClass": "AsteriskInfo", + "parameters": [ + { + "name": "only", + "description": "Filter information returned", + "paramType": "query", + "required": false, + "allowMultiple": true, + "dataType": "string", + "allowableValues": { + "valueType": "LIST", + "values": [ + "build", + "system", + "config", + "status" + ] + } + } + ] + } + ] + }, + { + "path": "/asterisk/ping", + "description": "Asterisk ping", + "operations": [ + { + "httpMethod": "GET", + "summary": "Response pong message.", + "nickname": "ping", + "responseClass": "AsteriskPing" + } + ] + }, + { + "path": "/asterisk/modules", + "description": "Asterisk modules", + "operations": [ + { + "httpMethod": "GET", + "summary": "List Asterisk modules.", + "nickname": "listModules", + "responseClass": "List[Module]" + } + ] + }, + { + "path": "/asterisk/modules/{moduleName}", + "description": "Asterisk module", + "operations": [ + { + "httpMethod": "GET", + "summary": "Get Asterisk module information.", + "nickname": "getModule", + "responseClass": "Module", + "parameters": [ + { + "name": "moduleName", + "description": "Module's name", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Module could not be found in running modules." + }, + { + "code": 409, + "reason": "Module information could not be retrieved." + } + ] + }, + { + "httpMethod": "POST", + "summary": "Load an Asterisk module.", + "nickname": "loadModule", + "responseClass": "void", + "parameters": [ + { + "name": "moduleName", + "description": "Module's name", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 409, + "reason": "Module could not be loaded." + } + ] + }, + { + "httpMethod": "DELETE", + "summary": "Unload an Asterisk module.", + "nickname": "unloadModule", + "responseClass": "void", + "parameters": [ + { + "name": "moduleName", + "description": "Module's name", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Module not found in running modules." + }, + { + "code": 409, + "reason": "Module could not be unloaded." + } + ] + }, + { + "httpMethod": "PUT", + "summary": "Reload an Asterisk module.", + "nickname": "reloadModule", + "responseClass": "void", + "parameters": [ + { + "name": "moduleName", + "description": "Module's name", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Module not found in running modules." + }, + { + "code": 409, + "reason": "Module could not be reloaded." + } + ] + } + ] + }, + { + "path": "/asterisk/logging", + "description": "Asterisk log channels", + "operations": [ + { + "httpMethod": "GET", + "summary": "Gets Asterisk log channel information.", + "nickname": "listLogChannels", + "responseClass": "List[LogChannel]" + } + ] + }, + { + "path": "/asterisk/logging/{logChannelName}", + "description": "Asterisk log channel", + "operations": [ + { + "httpMethod": "POST", + "summary": "Adds a log channel.", + "nickname": "addLog", + "responseClass": "void", + "parameters": [ + { + "name": "logChannelName", + "description": "The log channel to add", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "configuration", + "description": "levels of the log channel", + "paramType": "query", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 400, + "reason": "Bad request body" + }, + { + "code": 409, + "reason": "Log channel could not be created." + } + ] + }, + { + "httpMethod": "DELETE", + "summary": "Deletes a log channel.", + "nickname": "deleteLog", + "responseClass": "void", + "parameters": [ + { + "name": "logChannelName", + "description": "Log channels name", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Log channel does not exist." + } + ] + } + ] + }, + { + "path": "/asterisk/logging/{logChannelName}/rotate", + "description": "Asterisk log channel", + "operations": [ + { + "httpMethod": "PUT", + "summary": "Rotates a log channel.", + "nickname": "rotateLog", + "responseClass": "void", + "parameters": [ + { + "name": "logChannelName", + "description": "Log channel's name", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Log channel does not exist." + } + ] + } + ] + }, + { + "path": "/asterisk/variable", + "description": "Global variables", + "operations": [ + { + "httpMethod": "GET", + "summary": "Get the value of a global variable.", + "nickname": "getGlobalVar", + "responseClass": "Variable", + "parameters": [ + { + "name": "variable", + "description": "The variable to get", + "paramType": "query", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 400, + "reason": "Missing variable parameter." + } + ] + }, + { + "httpMethod": "POST", + "summary": "Set the value of a global variable.", + "nickname": "setGlobalVar", + "responseClass": "void", + "parameters": [ + { + "name": "variable", + "description": "The variable to set", + "paramType": "query", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "value", + "description": "The value to set the variable to", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 400, + "reason": "Missing variable parameter." + } + ] + } + ] + } + ], + "models": { + "BuildInfo": { + "id": "BuildInfo", + "description": "Info about how Asterisk was built", + "properties": { + "os": { + "required": true, + "type": "string", + "description": "OS Asterisk was built on." + }, + "kernel": { + "required": true, + "type": "string", + "description": "Kernel version Asterisk was built on." + }, + "options": { + "required": true, + "type": "string", + "description": "Compile time options, or empty string if default." + }, + "machine": { + "required": true, + "type": "string", + "description": "Machine architecture (x86_64, i686, ppc, etc.)" + }, + "date": { + "required": true, + "type": "string", + "description": "Date and time when Asterisk was built." + }, + "user": { + "required": true, + "type": "string", + "description": "Username that build Asterisk" + } + } + }, + "SystemInfo": { + "id": "SystemInfo", + "description": "Info about Asterisk", + "properties": { + "version": { + "required": true, + "type": "string", + "description": "Asterisk version." + }, + "entity_id": { + "required": true, + "type": "string", + "description": "" + } + } + }, + "SetId": { + "id": "SetId", + "description": "Effective user/group id", + "properties": { + "user": { + "required": true, + "type": "string", + "description": "Effective user id." + }, + "group": { + "required": true, + "type": "string", + "description": "Effective group id." + } + } + }, + "ConfigInfo": { + "id": "ConfigInfo", + "description": "Info about Asterisk configuration", + "properties": { + "name": { + "required": true, + "type": "string", + "description": "Asterisk system name." + }, + "default_language": { + "required": true, + "type": "string", + "description": "Default language for media playback." + }, + "max_channels": { + "required": false, + "type": "int", + "description": "Maximum number of simultaneous channels." + }, + "max_open_files": { + "required": false, + "type": "int", + "description": "Maximum number of open file handles (files, sockets)." + }, + "max_load": { + "required": false, + "type": "double", + "description": "Maximum load avg on system." + }, + "setid": { + "required": true, + "type": "SetId", + "description": "Effective user/group id for running Asterisk." + } + } + }, + "StatusInfo": { + "id": "StatusInfo", + "description": "Info about Asterisk status", + "properties": { + "startup_time": { + "required": true, + "type": "Date", + "description": "Time when Asterisk was started." + }, + "last_reload_time": { + "required": true, + "type": "Date", + "description": "Time when Asterisk was last reloaded." + } + } + }, + "AsteriskInfo": { + "id": "AsteriskInfo", + "description": "Asterisk system information", + "properties": { + "build": { + "required": false, + "type": "BuildInfo", + "description": "Info about how Asterisk was built" + }, + "system": { + "required": false, + "type": "SystemInfo", + "description": "Info about the system running Asterisk" + }, + "config": { + "required": false, + "type": "ConfigInfo", + "description": "Info about Asterisk configuration" + }, + "status": { + "required": false, + "type": "StatusInfo", + "description": "Info about Asterisk status" + } + } + }, + "AsteriskPing": { + "id": "AsteriskPing", + "description": "Asterisk ping information", + "properties": { + "asterisk_id": { + "required": true, + "type": "string", + "description": "Asterisk id info" + }, + "ping": { + "required": true, + "type": "string", + "description": "Always string value is pong" + }, + "timestamp": { + "required": true, + "type": "string", + "description": "The timestamp string of request received time" + } + } + }, + "Module": { + "id": "Module", + "description": "Details of an Asterisk module", + "properties": { + "name": { + "type": "string", + "description": "The name of this module", + "required": true + }, + "description": { + "type": "string", + "description": "The description of this module", + "required": true + }, + "use_count": { + "type": "int", + "description": "The number of times this module is being used", + "required": true + }, + "status": { + "type": "string", + "description": "The running status of this module", + "required": true + }, + "support_level": { + "type": "string", + "description": "The support state of this module", + "required": true + } + } + }, + "LogChannel": { + "id": "LogChannel", + "description": "Details of an Asterisk log channel", + "properties": { + "channel": { + "type": "string", + "description": "The log channel path", + "required": true + }, + "type": { + "type": "string", + "description": "Types of logs for the log channel", + "required": true + }, + "status": { + "type": "string", + "description": "Whether or not a log type is enabled", + "required": true + }, + "configuration": { + "type": "string", + "description": "The various log levels", + "required": true + } + } + }, + "Variable": { + "id": "Variable", + "description": "The value of a channel variable", + "properties": { + "value": { + "required": true, + "type": "string", + "description": "The value of the variable requested" + } + } + }, + "ConfigTuple": { + "id": "ConfigTuple", + "description": "A key/value pair that makes up part of a configuration object.", + "properties": { + "attribute": { + "required": true, + "type": "string", + "description": "A configuration object attribute." + }, + "value": { + "required": true, + "type": "string", + "description": "The value for the attribute." + } + } + } + } +} diff --git a/codegen/src/main/resources/codegen-data/ari_4_1_4/bridges.json b/codegen/src/main/resources/codegen-data/ari_4_1_4/bridges.json new file mode 100644 index 00000000..3e757e98 --- /dev/null +++ b/codegen/src/main/resources/codegen-data/ari_4_1_4/bridges.json @@ -0,0 +1,765 @@ +{ + "_copyright": "Copyright (C) 2012 - 2013, Digium, Inc.", + "_author": "David M. Lee, II ", + "_svn_revision": "$Revision$", + "apiVersion": "2.0.0", + "swaggerVersion": "1.1", + "basePath": "http://localhost:8088/ari", + "resourcePath": "/api-docs/bridges.{format}", + "requiresModules": [ + "res_stasis_recording", + "res_stasis_playback" + ], + "apis": [ + { + "path": "/bridges", + "description": "Active bridges", + "operations": [ + { + "httpMethod": "GET", + "summary": "List all active bridges in Asterisk.", + "nickname": "list", + "responseClass": "List[Bridge]" + }, + { + "httpMethod": "POST", + "summary": "Create a new bridge.", + "notes": "This bridge persists until it has been shut down, or Asterisk has been shut down.", + "nickname": "create", + "responseClass": "Bridge", + "parameters": [ + { + "name": "type", + "description": "Comma separated list of bridge type attributes (mixing, holding, dtmf_events, proxy_media, video_sfu, video_single).", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "bridgeId", + "description": "Unique ID to give to the bridge being created.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "name", + "description": "Name to give to the bridge being created.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + } + ] + } + ] + }, + { + "path": "/bridges/{bridgeId}", + "description": "Individual bridge", + "operations": [ + { + "httpMethod": "POST", + "summary": "Create a new bridge or updates an existing one.", + "notes": "This bridge persists until it has been shut down, or Asterisk has been shut down.", + "nickname": "createWithId", + "responseClass": "Bridge", + "parameters": [ + { + "name": "type", + "description": "Comma separated list of bridge type attributes (mixing, holding, dtmf_events, proxy_media, video_sfu, video_single) to set.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "bridgeId", + "description": "Unique ID to give to the bridge being created.", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "name", + "description": "Set the name of the bridge.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + } + ] + }, + { + "httpMethod": "GET", + "summary": "Get bridge details.", + "nickname": "get", + "responseClass": "Bridge", + "parameters": [ + { + "name": "bridgeId", + "description": "Bridge's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Bridge not found" + } + ] + }, + { + "httpMethod": "DELETE", + "summary": "Shut down a bridge.", + "notes": "If any channels are in this bridge, they will be removed and resume whatever they were doing beforehand.", + "nickname": "destroy", + "responseClass": "void", + "parameters": [ + { + "name": "bridgeId", + "description": "Bridge's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Bridge not found" + } + ] + } + ] + }, + { + "path": "/bridges/{bridgeId}/addChannel", + "description": "Add a channel to a bridge", + "operations": [ + { + "httpMethod": "POST", + "summary": "Add a channel to a bridge.", + "nickname": "addChannel", + "responseClass": "void", + "parameters": [ + { + "name": "bridgeId", + "description": "Bridge's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "channel", + "description": "Ids of channels to add to bridge", + "paramType": "query", + "required": true, + "allowMultiple": true, + "dataType": "string" + }, + { + "name": "role", + "description": "Channel's role in the bridge", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "absorbDTMF", + "description": "Absorb DTMF coming from this channel, preventing it to pass through to the bridge", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "boolean", + "defaultValue": false + }, + { + "name": "mute", + "description": "Mute audio from this channel, preventing it to pass through to the bridge", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "boolean", + "defaultValue": false + } + ], + "errorResponses": [ + { + "code": 400, + "reason": "Channel not found" + }, + { + "code": 404, + "reason": "Bridge not found" + }, + { + "code": 409, + "reason": "Bridge not in Stasis application; Channel currently recording" + }, + { + "code": 422, + "reason": "Channel not in Stasis application" + } + ] + } + ] + }, + { + "path": "/bridges/{bridgeId}/removeChannel", + "description": "Remove a channel from a bridge", + "operations": [ + { + "httpMethod": "POST", + "summary": "Remove a channel from a bridge.", + "nickname": "removeChannel", + "responseClass": "void", + "parameters": [ + { + "name": "bridgeId", + "description": "Bridge's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "channel", + "description": "Ids of channels to remove from bridge", + "paramType": "query", + "required": true, + "allowMultiple": true, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 400, + "reason": "Channel not found" + }, + { + "code": 404, + "reason": "Bridge not found" + }, + { + "code": 409, + "reason": "Bridge not in Stasis application" + }, + { + "code": 422, + "reason": "Channel not in this bridge" + } + ] + } + ] + }, + { + "path": "/bridges/{bridgeId}/videoSource/{channelId}", + "description": "Set a channel as the video source in a multi-party bridge", + "operations": [ + { + "httpMethod": "POST", + "summary": "Set a channel as the video source in a multi-party mixing bridge. This operation has no effect on bridges with two or fewer participants.", + "nickname": "setVideoSource", + "responseClass": "void", + "parameters": [ + { + "name": "bridgeId", + "description": "Bridge's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "channelId", + "description": "Channel's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Bridge or Channel not found" + }, + { + "code": 409, + "reason": "Channel not in Stasis application" + }, + { + "code": 422, + "reason": "Channel not in this Bridge" + } + ] + } + ] + }, + { + "path": "/bridges/{bridgeId}/videoSource", + "description": "Removes any explicit video source", + "operations": [ + { + "httpMethod": "DELETE", + "summary": "Removes any explicit video source in a multi-party mixing bridge. This operation has no effect on bridges with two or fewer participants. When no explicit video source is set, talk detection will be used to determine the active video stream.", + "nickname": "clearVideoSource", + "responseClass": "void", + "parameters": [ + { + "name": "bridgeId", + "description": "Bridge's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Bridge not found" + } + ] + } + ] + }, + { + "path": "/bridges/{bridgeId}/moh", + "description": "Play music on hold to a bridge", + "operations": [ + { + "httpMethod": "POST", + "summary": "Play music on hold to a bridge or change the MOH class that is playing.", + "nickname": "startMoh", + "responseClass": "void", + "parameters": [ + { + "name": "bridgeId", + "description": "Bridge's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "mohClass", + "description": "Channel's id", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Bridge not found" + }, + { + "code": 409, + "reason": "Bridge not in Stasis application" + } + ] + }, + { + "httpMethod": "DELETE", + "summary": "Stop playing music on hold to a bridge.", + "notes": "This will only stop music on hold being played via POST bridges/{bridgeId}/moh.", + "nickname": "stopMoh", + "responseClass": "void", + "parameters": [ + { + "name": "bridgeId", + "description": "Bridge's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Bridge not found" + }, + { + "code": 409, + "reason": "Bridge not in Stasis application" + } + ] + } + ] + }, + { + "path": "/bridges/{bridgeId}/play", + "description": "Play media to the participants of a bridge", + "operations": [ + { + "httpMethod": "POST", + "summary": "Start playback of media on a bridge.", + "notes": "The media URI may be any of a number of URI's. Currently sound:, recording:, number:, digits:, characters:, and tone: URI's are supported. This operation creates a playback resource that can be used to control the playback of media (pause, rewind, fast forward, etc.)", + "nickname": "play", + "responseClass": "Playback", + "parameters": [ + { + "name": "bridgeId", + "description": "Bridge's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "media", + "description": "Media URIs to play.", + "paramType": "query", + "required": true, + "allowMultiple": true, + "dataType": "string" + }, + { + "name": "lang", + "description": "For sounds, selects language for sound.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "offsetms", + "description": "Number of milliseconds to skip before playing. Only applies to the first URI if multiple media URIs are specified.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "int", + "defaultValue": 0, + "allowableValues": { + "valueType": "RANGE", + "min": 0 + } + + }, + { + "name": "skipms", + "description": "Number of milliseconds to skip for forward/reverse operations.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "int", + "defaultValue": 3000, + "allowableValues": { + "valueType": "RANGE", + "min": 0 + } + }, + { + "name": "playbackId", + "description": "Playback Id.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Bridge not found" + }, + { + "code": 409, + "reason": "Bridge not in a Stasis application" + } + ] + } + ] + }, + { + "path": "/bridges/{bridgeId}/play/{playbackId}", + "description": "Play media to a bridge", + "operations": [ + { + "httpMethod": "POST", + "summary": "Start playback of media on a bridge.", + "notes": "The media URI may be any of a number of URI's. Currently sound:, recording:, number:, digits:, characters:, and tone: URI's are supported. This operation creates a playback resource that can be used to control the playback of media (pause, rewind, fast forward, etc.)", + "nickname": "playWithId", + "responseClass": "Playback", + "parameters": [ + { + "name": "bridgeId", + "description": "Bridge's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "playbackId", + "description": "Playback ID.", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "media", + "description": "Media URIs to play.", + "paramType": "query", + "required": true, + "allowMultiple": true, + "dataType": "string" + }, + { + "name": "lang", + "description": "For sounds, selects language for sound.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "offsetms", + "description": "Number of milliseconds to skip before playing. Only applies to the first URI if multiple media URIs are specified.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "int", + "defaultValue": 0, + "allowableValues": { + "valueType": "RANGE", + "min": 0 + } + }, + { + "name": "skipms", + "description": "Number of milliseconds to skip for forward/reverse operations.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "int", + "defaultValue": 3000, + "allowableValues": { + "valueType": "RANGE", + "min": 0 + } + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Bridge not found" + }, + { + "code": 409, + "reason": "Bridge not in a Stasis application" + } + ] + + } + ] + }, + { + "path": "/bridges/{bridgeId}/record", + "description": "Record audio on a bridge", + "operations": [ + { + "httpMethod": "POST", + "summary": "Start a recording.", + "notes": "This records the mixed audio from all channels participating in this bridge.", + "nickname": "record", + "responseClass": "LiveRecording", + "parameters": [ + { + "name": "bridgeId", + "description": "Bridge's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "name", + "description": "Recording's filename", + "paramType": "query", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "format", + "description": "Format to encode audio in", + "paramType": "query", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "maxDurationSeconds", + "description": "Maximum duration of the recording, in seconds. 0 for no limit.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "int", + "defaultValue": 0, + "allowableValues": { + "valueType": "RANGE", + "min": 0 + } + }, + { + "name": "maxSilenceSeconds", + "description": "Maximum duration of silence, in seconds. 0 for no limit.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "int", + "defaultValue": 0, + "allowableValues": { + "valueType": "RANGE", + "min": 0 + } + }, + { + "name": "ifExists", + "description": "Action to take if a recording with the same name already exists.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string", + "defaultValue": "fail", + "allowableValues": { + "valueType": "LIST", + "values": [ + "fail", + "overwrite", + "append" + ] + } + }, + { + "name": "beep", + "description": "Play beep when recording begins", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "boolean", + "defaultValue": false + }, + { + "name": "terminateOn", + "description": "DTMF input to terminate recording.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string", + "defaultValue": "none", + "allowableValues": { + "valueType": "LIST", + "values": [ + "none", + "any", + "*", + "#" + ] + } + } + ], + "errorResponses": [ + { + "code": 400, + "reason": "Invalid parameters" + }, + { + "code": 404, + "reason": "Bridge not found" + }, + { + "code": 409, + "reason": "Bridge is not in a Stasis application; A recording with the same name already exists on the system and can not be overwritten because it is in progress or ifExists=fail" + }, + { + "code": 422, + "reason": "The format specified is unknown on this system" + } + ] + } + ] + } + ], + "models": { + "Bridge": { + "id": "Bridge", + "description": "The merging of media from one or more channels.\n\nEveryone on the bridge receives the same audio.", + "properties": { + "id": { + "type": "string", + "description": "Unique identifier for this bridge", + "required": true + }, + "technology": { + "type": "string", + "description": "Name of the current bridging technology", + "required": true + }, + "bridge_type": { + "type": "string", + "description": "Type of bridge technology", + "required": true, + "allowableValues": { + "valueType": "LIST", + "values": [ + "mixing", + "holding" + ] + } + }, + "bridge_class": { + "type": "string", + "description": "Bridging class", + "required": true + }, + "creator": { + "type": "string", + "description": "Entity that created the bridge", + "required": true + }, + "name": { + "type": "string", + "description": "Name the creator gave the bridge", + "required": true + }, + "channels": { + "type": "List[string]", + "description": "Ids of channels participating in this bridge", + "required": true + }, + "video_mode": { + "type": "string", + "description": "The video mode the bridge is using. One of 'none', 'talker', 'sfu', or 'single'.", + "required": false + }, + "video_source_id": { + "type": "string", + "description": "The ID of the channel that is the source of video in this bridge, if one exists.", + "required": false + }, + "creationtime": { + "required": true, + "type": "Date", + "description": "Timestamp when bridge was created" + } + } + } + } +} diff --git a/codegen/src/main/resources/codegen-data/ari_4_1_4/channels.json b/codegen/src/main/resources/codegen-data/ari_4_1_4/channels.json new file mode 100644 index 00000000..fc8ba761 --- /dev/null +++ b/codegen/src/main/resources/codegen-data/ari_4_1_4/channels.json @@ -0,0 +1,2177 @@ +{ + "_copyright": "Copyright (C) 2012 - 2013, Digium, Inc.", + "_author": "David M. Lee, II ", + "_svn_revision": "$Revision$", + "apiVersion": "2.0.0", + "swaggerVersion": "1.1", + "basePath": "http://localhost:8088/ari", + "resourcePath": "/api-docs/channels.{format}", + "requiresModules": [ + "res_stasis_answer", + "res_stasis_playback", + "res_stasis_recording", + "res_stasis_snoop" + ], + "apis": [ + { + "path": "/channels", + "description": "Active channels", + "operations": [ + { + "httpMethod": "GET", + "summary": "List all active channels in Asterisk.", + "nickname": "list", + "responseClass": "List[Channel]" + }, + { + "httpMethod": "POST", + "summary": "Create a new channel (originate).", + "notes": "The new channel is created immediately and a snapshot of it returned. If a Stasis application is provided it will be automatically subscribed to the originated channel for further events and updates.", + "nickname": "originate", + "responseClass": "Channel", + "parameters": [ + { + "name": "endpoint", + "description": "Endpoint to call.", + "paramType": "query", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "extension", + "description": "The extension to dial after the endpoint answers. Mutually exclusive with 'app'.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "context", + "description": "The context to dial after the endpoint answers. If omitted, uses 'default'. Mutually exclusive with 'app'.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "priority", + "description": "The priority to dial after the endpoint answers. If omitted, uses 1. Mutually exclusive with 'app'.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "long" + }, + { + "name": "label", + "description": "The label to dial after the endpoint answers. Will supersede 'priority' if provided. Mutually exclusive with 'app'.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "app", + "description": "The application that is subscribed to the originated channel. When the channel is answered, it will be passed to this Stasis application. Mutually exclusive with 'context', 'extension', 'priority', and 'label'.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "appArgs", + "description": "The application arguments to pass to the Stasis application provided by 'app'. Mutually exclusive with 'context', 'extension', 'priority', and 'label'.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "callerId", + "description": "CallerID to use when dialing the endpoint or extension.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "timeout", + "description": "Timeout (in seconds) before giving up dialing, or -1 for no timeout.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "int", + "defaultValue": 30 + }, + { + "name": "variables", + "description": "The \"variables\" key in the body object holds variable key/value pairs to set on the channel on creation. Other keys in the body object are interpreted as query parameters. Ex. { \"endpoint\": \"SIP/Alice\", \"variables\": { \"CALLERID(name)\": \"Alice\" } }", + "paramType": "body", + "required": false, + "dataType": "containers", + "allowMultiple": false + }, + { + "name": "channelId", + "description": "The unique id to assign the channel on creation.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "otherChannelId", + "description": "The unique id to assign the second channel when using local channels.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "originator", + "description": "The unique id of the channel which is originating this one.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "formats", + "description": "The format name capability list to use if originator is not specified. Ex. \"ulaw,slin16\". Format names can be found with \"core show codecs\".", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 400, + "reason": "Invalid parameters for originating a channel." + }, + { + "code": 409, + "reason": "Channel with given unique ID already exists." + } + ] + } + ] + }, + { + "path": "/channels/create", + "description": "Create a channel and place it in a Stasis app, but do not dial the channel yet.", + "operations": [ + { + "httpMethod": "POST", + "summary": "Create channel.", + "nickname": "create", + "responseClass": "Channel", + "parameters": [ + { + "name": "endpoint", + "description": "Endpoint for channel communication", + "paramType": "query", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "app", + "description": "Stasis Application to place channel into", + "paramType": "query", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "appArgs", + "description": "The application arguments to pass to the Stasis application provided by 'app'. Mutually exclusive with 'context', 'extension', 'priority', and 'label'.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "channelId", + "description": "The unique id to assign the channel on creation.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "otherChannelId", + "description": "The unique id to assign the second channel when using local channels.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "originator", + "description": "Unique ID of the calling channel", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "formats", + "description": "The format name capability list to use if originator is not specified. Ex. \"ulaw,slin16\". Format names can be found with \"core show codecs\".", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "variables", + "description": "The \"variables\" key in the body object holds variable key/value pairs to set on the channel on creation. Other keys in the body object are interpreted as query parameters. Ex. { \"endpoint\": \"SIP/Alice\", \"variables\": { \"CALLERID(name)\": \"Alice\" } }", + "paramType": "body", + "required": false, + "dataType": "containers", + "allowMultiple": false + } + ], + "errorResponses": [ + { + "code": 409, + "reason": "Channel with given unique ID already exists." + } + ] + } + ] + }, + { + "path": "/channels/{channelId}", + "description": "Active channel", + "operations": [ + { + "httpMethod": "GET", + "summary": "Channel details.", + "nickname": "get", + "responseClass": "Channel", + "parameters": [ + { + "name": "channelId", + "description": "Channel's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Channel not found" + } + ] + }, + { + "httpMethod": "POST", + "summary": "Create a new channel (originate with id).", + "notes": "The new channel is created immediately and a snapshot of it returned. If a Stasis application is provided it will be automatically subscribed to the originated channel for further events and updates.", + "nickname": "originateWithId", + "responseClass": "Channel", + "parameters": [ + { + "name": "channelId", + "description": "The unique id to assign the channel on creation.", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "endpoint", + "description": "Endpoint to call.", + "paramType": "query", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "extension", + "description": "The extension to dial after the endpoint answers. Mutually exclusive with 'app'.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "context", + "description": "The context to dial after the endpoint answers. If omitted, uses 'default'. Mutually exclusive with 'app'.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "priority", + "description": "The priority to dial after the endpoint answers. If omitted, uses 1. Mutually exclusive with 'app'.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "long" + }, + { + "name": "label", + "description": "The label to dial after the endpoint answers. Will supersede 'priority' if provided. Mutually exclusive with 'app'.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "app", + "description": "The application that is subscribed to the originated channel. When the channel is answered, it will be passed to this Stasis application. Mutually exclusive with 'context', 'extension', 'priority', and 'label'.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "appArgs", + "description": "The application arguments to pass to the Stasis application provided by 'app'. Mutually exclusive with 'context', 'extension', 'priority', and 'label'.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "callerId", + "description": "CallerID to use when dialing the endpoint or extension.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "timeout", + "description": "Timeout (in seconds) before giving up dialing, or -1 for no timeout.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "int", + "defaultValue": 30 + }, + { + "name": "variables", + "description": "The \"variables\" key in the body object holds variable key/value pairs to set on the channel on creation. Other keys in the body object are interpreted as query parameters. Ex. { \"endpoint\": \"SIP/Alice\", \"variables\": { \"CALLERID(name)\": \"Alice\" } }", + "paramType": "body", + "required": false, + "dataType": "containers", + "allowMultiple": false + }, + { + "name": "otherChannelId", + "description": "The unique id to assign the second channel when using local channels.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "originator", + "description": "The unique id of the channel which is originating this one.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "formats", + "description": "The format name capability list to use if originator is not specified. Ex. \"ulaw,slin16\". Format names can be found with \"core show codecs\".", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 400, + "reason": "Invalid parameters for originating a channel." + }, + { + "code": 409, + "reason": "Channel with given unique ID already exists." + } + ] + + }, + { + "httpMethod": "DELETE", + "summary": "Delete (i.e. hangup) a channel.", + "nickname": "hangup", + "responseClass": "void", + "parameters": [ + { + "name": "channelId", + "description": "Channel's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "reason", + "description": "Reason for hanging up the channel", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string", + "defalutValue": "normal", + "allowableValues": { + "valueType": "LIST", + "values": [ + "normal", + "busy", + "congestion", + "no_answer", + "timeout", + "rejected", + "unallocated", + "normal_unspecified", + "number_incomplete", + "codec_mismatch", + "interworking", + "failure", + "answered_elsewhere" + ] + } + } + ], + "errorResponses": [ + { + "code": 400, + "reason": "Invalid reason for hangup provided" + }, + { + "code": 404, + "reason": "Channel not found" + } + ] + } + ] + }, + { + "path": "/channels/{channelId}/continue", + "description": "Exit application; continue execution in the dialplan", + "operations": [ + { + "httpMethod": "POST", + "summary": "Exit application; continue execution in the dialplan.", + "nickname": "continueInDialplan", + "responseClass": "void", + "parameters": [ + { + "name": "channelId", + "description": "Channel's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "context", + "description": "The context to continue to.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "extension", + "description": "The extension to continue to.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "priority", + "description": "The priority to continue to.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "int" + }, + { + "name": "label", + "description": "The label to continue to - will supersede 'priority' if both are provided.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Channel not found" + }, + { + "code": 409, + "reason": "Channel not in a Stasis application" + }, + { + "code": 412, + "reason": "Channel in invalid state" + } + ] + } + ] + }, + { + "path": "/channels/{channelId}/move", + "description": "Move the channel from one Stasis application to another.", + "operations": [ + { + "httpMethod": "POST", + "summary": "Move the channel from one Stasis application to another.", + "nickname": "move", + "responseClass": "void", + "parameters": [ + { + "name": "channelId", + "description": "Channel's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "app", + "description": "The channel will be passed to this Stasis application.", + "paramType": "query", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "appArgs", + "description": "The application arguments to pass to the Stasis application provided by 'app'.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": "404", + "reason": "Channel not found" + }, + { + "code": "409", + "reason": "Channel not in a Stasis application" + } + ] + } + ] + }, + { + "path": "/channels/{channelId}/redirect", + "description": "Inform the channel that it should redirect itself to a different location. Note that this will almost certainly cause the channel to exit the application.", + "operations": [ + { + "httpMethod": "POST", + "summary": "Redirect the channel to a different location.", + "nickname": "redirect", + "responseClass": "void", + "parameters": [ + { + "name": "channelId", + "description": "Channel's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "endpoint", + "description": "The endpoint to redirect the channel to", + "paramType": "query", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 400, + "reason": "Endpoint parameter not provided" + }, + { + "code": 404, + "reason": "Channel or endpoint not found" + }, + { + "code": 409, + "reason": "Channel not in a Stasis application" + }, + { + "code": 422, + "reason": "Endpoint is not the same type as the channel" + }, + { + "code": 412, + "reason": "Channel in invalid state" + } + ] + } + ] + }, + { + "path": "/channels/{channelId}/answer", + "description": "Answer a channel", + "operations": [ + { + "httpMethod": "POST", + "summary": "Answer a channel.", + "nickname": "answer", + "responseClass": "void", + "parameters": [ + { + "name": "channelId", + "description": "Channel's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Channel not found" + }, + { + "code": 409, + "reason": "Channel not in a Stasis application" + }, + { + "code": 412, + "reason": "Channel in invalid state" + } + ] + } + ] + }, + { + "path": "/channels/{channelId}/ring", + "description": "Send a ringing indication to a channel", + "operations": [ + { + "httpMethod": "POST", + "summary": "Indicate ringing to a channel.", + "nickname": "ring", + "responseClass": "void", + "parameters": [ + { + "name": "channelId", + "description": "Channel's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Channel not found" + }, + { + "code": 409, + "reason": "Channel not in a Stasis application" + }, + { + "code": 412, + "reason": "Channel in invalid state" + } + ] + }, + { + "httpMethod": "DELETE", + "summary": "Stop ringing indication on a channel if locally generated.", + "nickname": "ringStop", + "responseClass": "void", + "parameters": [ + { + "name": "channelId", + "description": "Channel's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Channel not found" + }, + { + "code": 409, + "reason": "Channel not in a Stasis application" + }, + { + "code": 412, + "reason": "Channel in invalid state" + } + ] + } + ] + }, + { + "path": "/channels/{channelId}/dtmf", + "description": "Send DTMF to a channel", + "operations": [ + { + "httpMethod": "POST", + "summary": "Send provided DTMF to a given channel.", + "nickname": "sendDTMF", + "responseClass": "void", + "parameters": [ + { + "name": "channelId", + "description": "Channel's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "dtmf", + "description": "DTMF To send.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "before", + "description": "Amount of time to wait before DTMF digits (specified in milliseconds) start.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "int", + "defaultValue": 0 + }, + { + "name": "between", + "description": "Amount of time in between DTMF digits (specified in milliseconds).", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "int", + "defaultValue": 100 + }, + { + "name": "duration", + "description": "Length of each DTMF digit (specified in milliseconds).", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "int", + "defaultValue": 100 + }, + { + "name": "after", + "description": "Amount of time to wait after DTMF digits (specified in milliseconds) end.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "int", + "defaultValue": 0 + } + ], + "errorResponses": [ + { + "code": 400, + "reason": "DTMF is required" + }, + { + "code": 404, + "reason": "Channel not found" + }, + { + "code": 409, + "reason": "Channel not in a Stasis application" + }, + { + "code": 412, + "reason": "Channel in invalid state" + } + ] + } + ] + }, + { + "path": "/channels/{channelId}/mute", + "description": "Mute a channel", + "operations": [ + { + "httpMethod": "POST", + "summary": "Mute a channel.", + "nickname": "mute", + "responseClass": "void", + "parameters": [ + { + "name": "channelId", + "description": "Channel's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "direction", + "description": "Direction in which to mute audio", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string", + "defaultValue": "both", + "allowableValues": { + "valueType": "LIST", + "values": [ + "both", + "in", + "out" + ] + } + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Channel not found" + }, + { + "code": 409, + "reason": "Channel not in a Stasis application" + }, + { + "code": 412, + "reason": "Channel in invalid state" + } + ] + }, + { + "httpMethod": "DELETE", + "summary": "Unmute a channel.", + "nickname": "unmute", + "responseClass": "void", + "parameters": [ + { + "name": "channelId", + "description": "Channel's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "direction", + "description": "Direction in which to unmute audio", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string", + "defaultValue": "both", + "allowableValues": { + "valueType": "LIST", + "values": [ + "both", + "in", + "out" + ] + } + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Channel not found" + }, + { + "code": 409, + "reason": "Channel not in a Stasis application" + }, + { + "code": 412, + "reason": "Channel in invalid state" + } + ] + } + ] + }, + { + "path": "/channels/{channelId}/hold", + "description": "Put a channel on hold", + "operations": [ + { + "httpMethod": "POST", + "summary": "Hold a channel.", + "nickname": "hold", + "responseClass": "void", + "parameters": [ + { + "name": "channelId", + "description": "Channel's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Channel not found" + }, + { + "code": 409, + "reason": "Channel not in a Stasis application" + }, + { + "code": 412, + "reason": "Channel in invalid state" + } + ] + }, + { + "httpMethod": "DELETE", + "summary": "Remove a channel from hold.", + "nickname": "unhold", + "responseClass": "void", + "parameters": [ + { + "name": "channelId", + "description": "Channel's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Channel not found" + }, + { + "code": 409, + "reason": "Channel not in a Stasis application" + }, + { + "code": 412, + "reason": "Channel in invalid state" + } + ] + } + ] + }, + { + "path": "/channels/{channelId}/moh", + "description": "Play music on hold to a channel", + "operations": [ + { + "httpMethod": "POST", + "summary": "Play music on hold to a channel.", + "notes": "Using media operations such as /play on a channel playing MOH in this manner will suspend MOH without resuming automatically. If continuing music on hold is desired, the stasis application must reinitiate music on hold.", + "nickname": "startMoh", + "responseClass": "void", + "parameters": [ + { + "name": "channelId", + "description": "Channel's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "mohClass", + "description": "Music on hold class to use", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Channel not found" + }, + { + "code": 409, + "reason": "Channel not in a Stasis application" + }, + { + "code": 412, + "reason": "Channel in invalid state" + } + ] + }, + { + "httpMethod": "DELETE", + "summary": "Stop playing music on hold to a channel.", + "nickname": "stopMoh", + "responseClass": "void", + "parameters": [ + { + "name": "channelId", + "description": "Channel's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Channel not found" + }, + { + "code": 409, + "reason": "Channel not in a Stasis application" + }, + { + "code": 412, + "reason": "Channel in invalid state" + } + ] + } + ] + }, + { + "path": "/channels/{channelId}/silence", + "description": "Play silence to a channel", + "operations": [ + { + "httpMethod": "POST", + "summary": "Play silence to a channel.", + "notes": "Using media operations such as /play on a channel playing silence in this manner will suspend silence without resuming automatically.", + "nickname": "startSilence", + "responseClass": "void", + "parameters": [ + { + "name": "channelId", + "description": "Channel's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Channel not found" + }, + { + "code": 409, + "reason": "Channel not in a Stasis application" + }, + { + "code": 412, + "reason": "Channel in invalid state" + } + ] + }, + { + "httpMethod": "DELETE", + "summary": "Stop playing silence to a channel.", + "nickname": "stopSilence", + "responseClass": "void", + "parameters": [ + { + "name": "channelId", + "description": "Channel's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Channel not found" + }, + { + "code": 409, + "reason": "Channel not in a Stasis application" + }, + { + "code": 412, + "reason": "Channel in invalid state" + } + ] + } + ] + }, + { + "path": "/channels/{channelId}/play", + "description": "Play media to a channel", + "operations": [ + { + "httpMethod": "POST", + "summary": "Start playback of media.", + "notes": "The media URI may be any of a number of URI's. Currently sound:, recording:, number:, digits:, characters:, and tone: URI's are supported. This operation creates a playback resource that can be used to control the playback of media (pause, rewind, fast forward, etc.)", + "nickname": "play", + "responseClass": "Playback", + "parameters": [ + { + "name": "channelId", + "description": "Channel's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "media", + "description": "Media URIs to play.", + "paramType": "query", + "required": true, + "allowMultiple": true, + "dataType": "string" + }, + { + "name": "lang", + "description": "For sounds, selects language for sound.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "offsetms", + "description": "Number of milliseconds to skip before playing. Only applies to the first URI if multiple media URIs are specified.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "int" + }, + { + "name": "skipms", + "description": "Number of milliseconds to skip for forward/reverse operations.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "int", + "defaultValue": 3000 + }, + { + "name": "playbackId", + "description": "Playback ID.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Channel not found" + }, + { + "code": 409, + "reason": "Channel not in a Stasis application" + }, + { + "code": 412, + "reason": "Channel in invalid state" + } + ] + } + ] + }, + { + "path": "/channels/{channelId}/play/{playbackId}", + "description": "Play media to a channel", + "operations": [ + { + "httpMethod": "POST", + "summary": "Start playback of media and specify the playbackId.", + "notes": "The media URI may be any of a number of URI's. Currently sound:, recording:, number:, digits:, characters:, and tone: URI's are supported. This operation creates a playback resource that can be used to control the playback of media (pause, rewind, fast forward, etc.)", + "nickname": "playWithId", + "responseClass": "Playback", + "parameters": [ + { + "name": "channelId", + "description": "Channel's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "playbackId", + "description": "Playback ID.", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "media", + "description": "Media URIs to play.", + "paramType": "query", + "required": true, + "allowMultiple": true, + "dataType": "string" + }, + { + "name": "lang", + "description": "For sounds, selects language for sound.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "offsetms", + "description": "Number of milliseconds to skip before playing. Only applies to the first URI if multiple media URIs are specified.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "int" + }, + { + "name": "skipms", + "description": "Number of milliseconds to skip for forward/reverse operations.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "int", + "defaultValue": 3000 + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Channel not found" + }, + { + "code": 409, + "reason": "Channel not in a Stasis application" + }, + { + "code": 412, + "reason": "Channel in invalid state" + } + ] + } + ] + }, + { + "path": "/channels/{channelId}/record", + "description": "Record audio from a channel", + "operations": [ + { + "httpMethod": "POST", + "summary": "Start a recording.", + "notes": "Record audio from a channel. Note that this will not capture audio sent to the channel. The bridge itself has a record feature if that's what you want.", + "nickname": "record", + "responseClass": "LiveRecording", + "parameters": [ + { + "name": "channelId", + "description": "Channel's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "name", + "description": "Recording's filename", + "paramType": "query", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "format", + "description": "Format to encode audio in", + "paramType": "query", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "maxDurationSeconds", + "description": "Maximum duration of the recording, in seconds. 0 for no limit", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "int", + "defaultValue": 0, + "allowableValues": { + "valueType": "RANGE", + "min": 0 + } + }, + { + "name": "maxSilenceSeconds", + "description": "Maximum duration of silence, in seconds. 0 for no limit", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "int", + "defaultValue": 0, + "allowableValues": { + "valueType": "RANGE", + "min": 0 + } + }, + { + "name": "ifExists", + "description": "Action to take if a recording with the same name already exists.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string", + "defaultValue": "fail", + "allowableValues": { + "valueType": "LIST", + "values": [ + "fail", + "overwrite", + "append" + ] + } + }, + { + "name": "beep", + "description": "Play beep when recording begins", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "boolean", + "defaultValue": false + }, + { + "name": "terminateOn", + "description": "DTMF input to terminate recording", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string", + "defaultValue": "none", + "allowableValues": { + "valueType": "LIST", + "values": [ + "none", + "any", + "*", + "#" + ] + } + } + ], + "errorResponses": [ + { + "code": 400, + "reason": "Invalid parameters" + }, + { + "code": 404, + "reason": "Channel not found" + }, + { + "code": 409, + "reason": "Channel is not in a Stasis application; the channel is currently bridged with other hcannels; A recording with the same name already exists on the system and can not be overwritten because it is in progress or ifExists=fail" + }, + { + "code": 422, + "reason": "The format specified is unknown on this system" + } + ] + } + ] + }, + { + "path": "/channels/{channelId}/variable", + "description": "Variables on a channel", + "operations": [ + { + "httpMethod": "GET", + "summary": "Get the value of a channel variable or function.", + "nickname": "getChannelVar", + "responseClass": "Variable", + "parameters": [ + { + "name": "channelId", + "description": "Channel's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "variable", + "description": "The channel variable or function to get", + "paramType": "query", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 400, + "reason": "Missing variable parameter." + }, + { + "code": 404, + "reason": "Channel or variable not found" + }, + { + "code": 409, + "reason": "Channel not in a Stasis application" + } + ] + }, + { + "httpMethod": "POST", + "summary": "Set the value of a channel variable or function.", + "nickname": "setChannelVar", + "responseClass": "void", + "parameters": [ + { + "name": "channelId", + "description": "Channel's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "variable", + "description": "The channel variable or function to set", + "paramType": "query", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "value", + "description": "The value to set the variable to", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 400, + "reason": "Missing variable parameter." + }, + { + "code": 404, + "reason": "Channel not found" + }, + { + "code": 409, + "reason": "Channel not in a Stasis application" + } + ] + } + ] + }, + { + "path": "/channels/{channelId}/snoop", + "description": "Snoop (spy/whisper) on a channel", + "operations": [ + { + "httpMethod": "POST", + "summary": "Start snooping.", + "notes": "Snoop (spy/whisper) on a specific channel.", + "nickname": "snoopChannel", + "responseClass": "Channel", + "parameters": [ + { + "name": "channelId", + "description": "Channel's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "spy", + "description": "Direction of audio to spy on", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string", + "defaultValue": "none", + "allowableValues": { + "valueType": "LIST", + "values": [ + "none", + "both", + "out", + "in" + ] + } + }, + { + "name": "whisper", + "description": "Direction of audio to whisper into", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string", + "defaultValue": "none", + "allowableValues": { + "valueType": "LIST", + "values": [ + "none", + "both", + "out", + "in" + ] + } + }, + { + "name": "app", + "description": "Application the snooping channel is placed into", + "paramType": "query", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "appArgs", + "description": "The application arguments to pass to the Stasis application", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "snoopId", + "description": "Unique ID to assign to snooping channel", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 400, + "reason": "Invalid parameters" + }, + { + "code": 404, + "reason": "Channel not found" + } + ] + } + ] + }, + { + "path": "/channels/{channelId}/snoop/{snoopId}", + "description": "Snoop (spy/whisper) on a channel", + "operations": [ + { + "httpMethod": "POST", + "summary": "Start snooping.", + "notes": "Snoop (spy/whisper) on a specific channel.", + "nickname": "snoopChannelWithId", + "responseClass": "Channel", + "parameters": [ + { + "name": "channelId", + "description": "Channel's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "snoopId", + "description": "Unique ID to assign to snooping channel", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "spy", + "description": "Direction of audio to spy on", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string", + "defaultValue": "none", + "allowableValues": { + "valueType": "LIST", + "values": [ + "none", + "both", + "out", + "in" + ] + } + }, + { + "name": "whisper", + "description": "Direction of audio to whisper into", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string", + "defaultValue": "none", + "allowableValues": { + "valueType": "LIST", + "values": [ + "none", + "both", + "out", + "in" + ] + } + }, + { + "name": "app", + "description": "Application the snooping channel is placed into", + "paramType": "query", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "appArgs", + "description": "The application arguments to pass to the Stasis application", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 400, + "reason": "Invalid parameters" + }, + { + "code": 404, + "reason": "Channel not found" + } + ] + } + ] + }, + { + "path": "/channels/{channelId}/dial", + "description": "Dial a channel", + "operations": [ + { + "httpMethod": "POST", + "summary": "Dial a created channel.", + "nickname": "dial", + "responseClass": "void", + "parameters": [ + { + "name": "channelId", + "description": "Channel's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "caller", + "description": "Channel ID of caller", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "timeout", + "description": "Dial timeout", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "int", + "defaultValue": 0, + "allowableValues": { + "valueType": "RANGE", + "min": 0 + } + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Channel cannot be found." + }, + { + "code": 409, + "reason": "Channel cannot be dialed." + } + ] + } + ] + }, + { + "path": "/channels/{channelId}/rtp_statistics", + "description": "Get RTP statistics information for RTP on a channel", + "operations": [ + { + "httpMethod": "GET", + "summary": "RTP stats on a channel.", + "nickname": "rtpstatistics", + "responseClass": "RTPstat", + "parameters": [ + { + "name": "channelId", + "description": "Channel's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Channel cannot be found." + } + ] + } + ] + }, + { + "path": "/channels/externalMedia", + "description": "Create a channel to an External Media source/sink.", + "operations": [ + { + "httpMethod": "POST", + "summary": "Start an External Media session.", + "notes": "Create a channel to an External Media source/sink.", + "nickname": "externalMedia", + "responseClass": "Channel", + "parameters": [ + { + "name": "channelId", + "description": "The unique id to assign the channel on creation.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "app", + "description": "Stasis Application to place channel into", + "paramType": "query", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "variables", + "description": "The \"variables\" key in the body object holds variable key/value pairs to set on the channel on creation. Other keys in the body object are interpreted as query parameters. Ex. { \"endpoint\": \"SIP/Alice\", \"variables\": { \"CALLERID(name)\": \"Alice\" } }", + "paramType": "body", + "required": false, + "dataType": "containers", + "allowMultiple": false + }, + { + "name": "external_host", + "description": "Hostname/ip:port of external host", + "paramType": "query", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "encapsulation", + "description": "Payload encapsulation protocol", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string", + "defaultValue": "rtp", + "allowableValues": { + "valueType": "LIST", + "values": [ + "rtp" + ] + } + }, + { + "name": "transport", + "description": "Transport protocol", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string", + "defaultValue": "udp", + "allowableValues": { + "valueType": "LIST", + "values": [ + "udp" + ] + } + }, + { + "name": "connection_type", + "description": "Connection type (client/server)", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string", + "defaultValue": "client", + "allowableValues": { + "valueType": "LIST", + "values": [ + "client" + ] + } + }, + { + "name": "format", + "description": "Format to encode audio in", + "paramType": "query", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "direction", + "description": "External media direction", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string", + "defaultValue": "both", + "allowableValues": { + "valueType": "LIST", + "values": [ + "both" + ] + } + } + ], + "errorResponses": [ + { + "code": 400, + "reason": "Invalid parameters" + }, + { + "code": 409, + "reason": "Channel is not in a Stasis application; Channel is already bridged" + } + ] + } + ] + } + ], + "models": { + "Dialed": { + "id": "Dialed", + "description": "Dialed channel information.", + "properties": {} + }, + "DialplanCEP": { + "id": "DialplanCEP", + "description": "Dialplan location (context/extension/priority)", + "properties": { + "context": { + "required": true, + "type": "string", + "description": "Context in the dialplan" + }, + "exten": { + "required": true, + "type": "string", + "description": "Extension in the dialplan" + }, + "priority": { + "required": true, + "type": "long", + "description": "Priority in the dialplan" + }, + "app_name": { + "required": true, + "type": "string", + "description": "Name of current dialplan application" + }, + "app_data": { + "required": true, + "type": "string", + "description": "Parameter of current dialplan application" + } + } + }, + "CallerID": { + "id": "CallerID", + "description": "Caller identification", + "properties": { + "name": { + "required": true, + "type": "string" + }, + "number": { + "required": true, + "type": "string" + } + } + }, + "RTPstat": { + "id": "RTPstat", + "description": "A statistics of a RTP.", + "properties": { + "txcount": { + "required": true, + "type": "int", + "description": "Number of packets transmitted." + }, + "rxcount": { + "required": true, + "type": "int", + "description": "Number of packets received." + }, + "txjitter": { + "required": false, + "type": "double", + "description": "Jitter on transmitted packets." + }, + "rxjitter": { + "required": false, + "type": "double", + "description": "Jitter on received packets." + }, + "remote_maxjitter": { + "required": false, + "type": "double", + "description": "Maximum jitter on remote side." + }, + "remote_minjitter": { + "required": false, + "type": "double", + "description": "Minimum jitter on remote side." + }, + "remote_normdevjitter": { + "required": false, + "type": "double", + "description": "Average jitter on remote side." + }, + "remote_stdevjitter": { + "required": false, + "type": "double", + "description": "Standard deviation jitter on remote side." + }, + "local_maxjitter": { + "required": false, + "type": "double", + "description": "Maximum jitter on local side." + }, + "local_minjitter": { + "required": false, + "type": "double", + "description": "Minimum jitter on local side." + }, + "local_normdevjitter": { + "required": false, + "type": "double", + "description": "Average jitter on local side." + }, + "local_stdevjitter": { + "required": false, + "type": "double", + "description": "Standard deviation jitter on local side." + }, + "txploss": { + "required": true, + "type": "int", + "description": "Number of transmitted packets lost." + }, + "rxploss": { + "required": true, + "type": "int", + "description": "Number of received packets lost." + }, + "remote_maxrxploss": { + "required": false, + "type": "double", + "description": "Maximum number of packets lost on remote side." + }, + "remote_minrxploss": { + "required": false, + "type": "double", + "description": "Minimum number of packets lost on remote side." + }, + "remote_normdevrxploss": { + "required": false, + "type": "double", + "description": "Average number of packets lost on remote side." + }, + "remote_stdevrxploss": { + "required": false, + "type": "double", + "description": "Standard deviation packets lost on remote side." + }, + "local_maxrxploss": { + "required": false, + "type": "double", + "description": "Maximum number of packets lost on local side." + }, + "local_minrxploss": { + "required": false, + "type": "double", + "description": "Minimum number of packets lost on local side." + }, + "local_normdevrxploss": { + "required": false, + "type": "double", + "description": "Average number of packets lost on local side." + }, + "local_stdevrxploss": { + "required": false, + "type": "double", + "description": "Standard deviation packets lost on local side." + }, + "rtt": { + "required": false, + "type": "double", + "description": "Total round trip time." + }, + "maxrtt": { + "required": false, + "type": "double", + "description": "Maximum round trip time." + }, + "minrtt": { + "required": false, + "type": "double", + "description": "Minimum round trip time." + }, + "normdevrtt": { + "required": false, + "type": "double", + "description": "Average round trip time." + }, + "stdevrtt": { + "required": false, + "type": "double", + "description": "Standard deviation round trip time." + }, + "local_ssrc": { + "required": true, + "type": "int", + "description": "Our SSRC." + }, + "remote_ssrc": { + "required": true, + "type": "int", + "description": "Their SSRC." + }, + "txoctetcount": { + "required": true, + "type": "int", + "description": "Number of octets transmitted." + }, + "rxoctetcount": { + "required": true, + "type": "int", + "description": "Number of octets received." + }, + "channel_uniqueid": { + "required": true, + "type": "string", + "description": "The Asterisk channel's unique ID that owns this instance." + } + } + }, + "Channel": { + "id": "Channel", + "description": "A specific communication connection between Asterisk and an Endpoint.", + "properties": { + "id": { + "required": true, + "type": "string", + "description": "Unique identifier of the channel.\n\nThis is the same as the Uniqueid field in AMI." + }, + "protocol_id": { + "required": true, + "type": "string", + "description": "Protocol id from underlying channel driver (i.e. Call-ID for chan_sip/chan_pjsip; will be empty if not applicable or not implemented by driver)." + }, + "name": { + "required": true, + "type": "string", + "description": "Name of the channel (i.e. SIP/foo-0000a7e3)" + }, + "state": { + "required": true, + "type": "string", + "allowableValues": { + "valueType": "LIST", + "values": [ + "Down", + "Rsrved", + "OffHook", + "Dialing", + "Ring", + "Ringing", + "Up", + "Busy", + "Dialing Offhook", + "Pre-ring", + "Unknown" + ] + } + }, + "caller": { + "required": true, + "type": "CallerID" + }, + "connected": { + "required": true, + "type": "CallerID" + }, + "accountcode": { + "required": true, + "type": "string" + }, + "dialplan": { + "required": true, + "type": "DialplanCEP", + "description": "Current location in the dialplan" + }, + "creationtime": { + "required": true, + "type": "Date", + "description": "Timestamp when channel was created" + }, + "language": { + "required": true, + "type": "string", + "description": "The default spoken language" + }, + "channelvars": { + "required": false, + "type": "object", + "description": "Channel variables" + } + } + } + } +} diff --git a/codegen/src/main/resources/codegen-data/ari_4_1_4/deviceStates.json b/codegen/src/main/resources/codegen-data/ari_4_1_4/deviceStates.json new file mode 100644 index 00000000..bd389355 --- /dev/null +++ b/codegen/src/main/resources/codegen-data/ari_4_1_4/deviceStates.json @@ -0,0 +1,154 @@ +{ + "_copyright": "Copyright (C) 2012 - 2013, Digium, Inc.", + "_author": "Kevin Harwell ", + "_svn_revision": "$Revision$", + "apiVersion": "2.0.0", + "swaggerVersion": "1.1", + "basePath": "http://localhost:8088/ari", + "resourcePath": "/api-docs/deviceStates.{format}", + "requiresModules": [ + "res_stasis_device_state" + ], + "apis": [ + { + "path": "/deviceStates", + "description": "Device states", + "operations": [ + { + "httpMethod": "GET", + "summary": "List all ARI controlled device states.", + "nickname": "list", + "responseClass": "List[DeviceState]" + } + ] + }, + { + "path": "/deviceStates/{deviceName}", + "description": "Device state", + "operations": [ + { + "httpMethod": "GET", + "summary": "Retrieve the current state of a device.", + "nickname": "get", + "responseClass": "DeviceState", + "parameters": [ + { + "name": "deviceName", + "description": "Name of the device", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ] + }, + { + "httpMethod": "PUT", + "summary": "Change the state of a device controlled by ARI. (Note - implicitly creates the device state).", + "nickname": "update", + "responseClass": "void", + "parameters": [ + { + "name": "deviceName", + "description": "Name of the device", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "deviceState", + "description": "Device state value", + "paramType": "query", + "required": true, + "allowMultiple": false, + "dataType": "string", + "allowableValues": { + "valueType": "LIST", + "values": [ + "NOT_INUSE", + "INUSE", + "BUSY", + "INVALID", + "UNAVAILABLE", + "RINGING", + "RINGINUSE", + "ONHOLD" + ] + } + + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Device name is missing" + }, + { + "code": 409, + "reason": "Uncontrolled device specified" + } + ] + }, + { + "httpMethod": "DELETE", + "summary": "Destroy a device-state controlled by ARI.", + "nickname": "delete", + "responseClass": "void", + "parameters": [ + { + "name": "deviceName", + "description": "Name of the device", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Device name is missing" + }, + { + "code": 409, + "reason": "Uncontrolled device specified" + } + ] + } + ] + } + ], + "models": { + "DeviceState": { + "id": "DeviceState", + "description": "Represents the state of a device.", + "properties": { + "name": { + "type": "string", + "description": "Name of the device.", + "required": true + }, + "state": { + "type": "string", + "description": "Device's state", + "required": true, + "allowableValues": { + "valueType": "LIST", + "values": [ + "UNKNOWN", + "NOT_INUSE", + "INUSE", + "BUSY", + "INVALID", + "UNAVAILABLE", + "RINGING", + "RINGINUSE", + "ONHOLD" + ] + } + } + } + } + } +} diff --git a/codegen/src/main/resources/codegen-data/ari_4_1_4/endpoints.json b/codegen/src/main/resources/codegen-data/ari_4_1_4/endpoints.json new file mode 100644 index 00000000..1f77d370 --- /dev/null +++ b/codegen/src/main/resources/codegen-data/ari_4_1_4/endpoints.json @@ -0,0 +1,263 @@ +{ + "_copyright": "Copyright (C) 2012 - 2013, Digium, Inc.", + "_author": "David M. Lee, II ", + "_svn_revision": "$Revision$", + "apiVersion": "2.0.0", + "swaggerVersion": "1.1", + "basePath": "http://localhost:8088/ari", + "resourcePath": "/api-docs/endpoints.{format}", + "apis": [ + { + "path": "/endpoints", + "description": "Asterisk endpoints", + "operations": [ + { + "httpMethod": "GET", + "summary": "List all endpoints.", + "nickname": "list", + "responseClass": "List[Endpoint]" + } + ] + }, + { + "path": "/endpoints/sendMessage", + "description": "Send a message to some technology URI or endpoint.", + "operations": [ + { + "httpMethod": "PUT", + "summary": "Send a message to some technology URI or endpoint.", + "nickname": "sendMessage", + "responseClass": "void", + "parameters": [ + { + "name": "to", + "description": "The endpoint resource or technology specific URI to send the message to. Valid resources are sip, pjsip, and xmpp.", + "paramType": "query", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "from", + "description": "The endpoint resource or technology specific identity to send this message from. Valid resources are sip, pjsip, and xmpp.", + "paramType": "query", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "body", + "description": "The body of the message", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "variables", + "descriptioni": "The \"variables\" key in the body object holds technology specific key/value pairs to append to the message. These can be interpreted and used by the various resource types; for example, pjsip and sip resource types will add the key/value pairs as SIP headers,", + "paramType": "body", + "required": false, + "dataType": "containers", + "allowMultiple": false + } + ], + "errorResponses": [ + { + "code": 400, + "reason": "Invalid parameters for sending a message." + }, + { + "code": 404, + "reason": "Endpoint not found" + } + ] + } + ] + }, + { + "path": "/endpoints/{tech}", + "description": "Asterisk endpoints", + "operations": [ + { + "httpMethod": "GET", + "summary": "List available endoints for a given endpoint technology.", + "nickname": "listByTech", + "responseClass": "List[Endpoint]", + "parameters": [ + { + "name": "tech", + "description": "Technology of the endpoints (sip,iax2,...)", + "paramType": "path", + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Endpoints not found" + } + ] + } + ] + }, + { + "path": "/endpoints/{tech}/{resource}", + "description": "Single endpoint", + "operations": [ + { + "httpMethod": "GET", + "summary": "Details for an endpoint.", + "nickname": "get", + "responseClass": "Endpoint", + "parameters": [ + { + "name": "tech", + "description": "Technology of the endpoint", + "paramType": "path", + "dataType": "string" + }, + { + "name": "resource", + "description": "ID of the endpoint", + "paramType": "path", + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 400, + "reason": "Invalid parameters for sending a message." + }, + { + "code": 404, + "reason": "Endpoints not found" + } + ] + } + ] + }, + { + "path": "/endpoints/{tech}/{resource}/sendMessage", + "description": "Send a message to some endpoint in a technology.", + "operations": [ + { + "httpMethod": "PUT", + "summary": "Send a message to some endpoint in a technology.", + "nickname": "sendMessageToEndpoint", + "responseClass": "void", + "parameters": [ + { + "name": "tech", + "description": "Technology of the endpoint", + "paramType": "path", + "dataType": "string" + }, + { + "name": "resource", + "description": "ID of the endpoint", + "paramType": "path", + "dataType": "string" + }, + { + "name": "from", + "description": "The endpoint resource or technology specific identity to send this message from. Valid resources are sip, pjsip, and xmpp.", + "paramType": "query", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "body", + "description": "The body of the message", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "variables", + "descriptioni": "The \"variables\" key in the body object holds technology specific key/value pairs to append to the message. These can be interpreted and used by the various resource types; for example, pjsip and sip resource types will add the key/value pairs as SIP headers,", + "paramType": "body", + "required": false, + "dataType": "containers", + "allowMultiple": false + } + ], + "errorResponses": [ + { + "code": 400, + "reason": "Invalid parameters for sending a message." + }, + { + "code": 404, + "reason": "Endpoint not found" + } + ] + } + ] + } + ], + "models": { + "Endpoint": { + "id": "Endpoint", + "description": "An external device that may offer/accept calls to/from Asterisk.\n\nUnlike most resources, which have a single unique identifier, an endpoint is uniquely identified by the technology/resource pair.", + "properties": { + "technology": { + "type": "string", + "description": "Technology of the endpoint", + "required": true + }, + "resource": { + "type": "string", + "description": "Identifier of the endpoint, specific to the given technology.", + "required": true + }, + "state": { + "type": "string", + "description": "Endpoint's state", + "required": false, + "allowableValues": { + "valueType": "LIST", + "values": [ + "unknown", + "offline", + "online" + ] + } + }, + "channel_ids": { + "type": "List[string]", + "description": "Id's of channels associated with this endpoint", + "required": true + } + } + }, + "TextMessage": { + "id": "TextMessage", + "description": "A text message.", + "properties": { + "from": { + "type": "string", + "description": "A technology specific URI specifying the source of the message. For sip and pjsip technologies, any SIP URI can be specified. For xmpp, the URI must correspond to the client connection being used to send the message.", + "required": true + }, + "to": { + "type": "string", + "description": "A technology specific URI specifying the destination of the message. Valid technologies include sip, pjsip, and xmp. The destination of a message should be an endpoint.", + "required": true + }, + "body": { + "type": "string", + "description": "The text of the message.", + "required": true + }, + "variables": { + "type": "object", + "description": "Technology specific key/value pairs (JSON object) associated with the message.", + "required": false + } + } + } + } +} diff --git a/codegen/src/main/resources/codegen-data/ari_4_1_4/events.json b/codegen/src/main/resources/codegen-data/ari_4_1_4/events.json new file mode 100644 index 00000000..c9822f6c --- /dev/null +++ b/codegen/src/main/resources/codegen-data/ari_4_1_4/events.json @@ -0,0 +1,918 @@ +{ + "_copyright": "Copyright (C) 2012 - 2013, Digium, Inc.", + "_author": "David M. Lee, II ", + "_svn_revision": "$Revision$", + "apiVersion": "2.0.0", + "swaggerVersion": "1.2", + "basePath": "http://localhost:8088/ari", + "resourcePath": "/api-docs/events.{format}", + "requiresModules": [ + "res_http_websocket" + ], + "apis": [ + { + "path": "/events", + "description": "Events from Asterisk to applications", + "operations": [ + { + "httpMethod": "GET", + "upgrade": "websocket", + "websocketProtocol": "ari", + "summary": "WebSocket connection for events.", + "nickname": "eventWebsocket", + "responseClass": "Message", + "parameters": [ + { + "name": "app", + "description": "Applications to subscribe to.", + "paramType": "query", + "required": true, + "allowMultiple": true, + "dataType": "string" + }, + { + "name": "subscribeAll", + "description": "Subscribe to all Asterisk events. If provided, the applications listed will be subscribed to all events, effectively disabling the application specific subscriptions. Default is 'false'.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "boolean" + } + ] + } + ] + }, + { + "path": "/events/user/{eventName}", + "description": "Stasis application user events", + "operations": [ + { + "httpMethod": "POST", + "summary": "Generate a user event.", + "nickname": "userEvent", + "responseClass": "void", + "parameters": [ + { + "name": "eventName", + "description": "Event name", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "application", + "description": "The name of the application that will receive this event", + "paramType": "query", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "source", + "description": "URI for event source (channel:{channelId}, bridge:{bridgeId}, endpoint:{tech}/{resource}, deviceState:{deviceName}", + "paramType": "query", + "required": false, + "allowMultiple": true, + "dataType": "string" + }, + { + "name": "variables", + "description": "The \"variables\" key in the body object holds custom key/value pairs to add to the user event. Ex. { \"variables\": { \"key\": \"value\" } }", + "paramType": "body", + "required": false, + "allowMultiple": false, + "dataType": "containers" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Application does not exist." + }, + { + "code": 422, + "reason": "Event source not found." + }, + { + "code": 400, + "reason": "Invalid even tsource URI or userevent data." + } + ] + } + ] + } + ], + "models": { + "Message": { + "id": "Message", + "description": "Base type for errors and events", + "discriminator": "type", + "properties": { + "type": { + "type": "string", + "required": true, + "description": "Indicates the type of this message." + }, + "asterisk_id": { + "type": "string", + "required": false, + "description": "The unique ID for the Asterisk instance that raised this event." + } + }, + "subTypes": [ + "MissingParams", + "Event" + ] + }, + "MissingParams": { + "id": "MissingParams", + "description": "Error event sent when required params are missing.", + "properties": { + "params": { + "required": true, + "type": "List[string]", + "description": "A list of the missing parameters" + } + } + }, + "Event": { + "id": "Event", + "description": "Base type for asynchronous events from Asterisk.", + "properties": { + "application": { + "type": "string", + "description": "Name of the application receiving the event.", + "required": true + }, + "timestamp": { + "type": "Date", + "description": "Time at which this event was created.", + "required": true + } + }, + "subTypes": [ + "DeviceStateChanged", + "PlaybackStarted", + "PlaybackContinuing", + "PlaybackFinished", + "RecordingStarted", + "RecordingFinished", + "RecordingFailed", + "ApplicationMoveFailed", + "ApplicationReplaced", + "BridgeCreated", + "BridgeDestroyed", + "BridgeMerged", + "BridgeBlindTransfer", + "BridgeAttendedTransfer", + "BridgeVideoSourceChanged", + "ChannelCreated", + "ChannelDestroyed", + "ChannelEnteredBridge", + "ChannelLeftBridge", + "ChannelStateChange", + "ChannelDtmfReceived", + "ChannelDialplan", + "ChannelCallerId", + "ChannelUserevent", + "ChannelHangupRequest", + "ChannelVarset", + "ChannelTalkingStarted", + "ChannelTalkingFinished", + "ChannelHold", + "ChannelUnhold", + "ContactStatusChange", + "EndpointStateChange", + "Dial", + "StasisEnd", + "StasisStart", + "TextMessageReceived", + "ChannelConnectedLine", + "PeerStatusChange" + ] + }, + "ContactInfo": { + "id": "ContactInfo", + "description": "Detailed information about a contact on an endpoint.", + "properties": { + "uri": { + "type": "string", + "description": "The location of the contact.", + "required": true + }, + "contact_status": { + "type": "string", + "description": "The current status of the contact.", + "required": true, + "allowableValues": { + "valueType": "LIST", + "values": [ + "Unreachable", + "Reachable", + "Unknown", + "NonQualified", + "Removed" + ] + } + }, + "aor": { + "type": "string", + "description": "The Address of Record this contact belongs to.", + "required": true + }, + "roundtrip_usec": { + "type": "string", + "description": "Current round trip time, in microseconds, for the contact.", + "required": false + } + } + }, + "Peer": { + "id": "Peer", + "description": "Detailed information about a remote peer that communicates with Asterisk.", + "properties": { + "peer_status": { + "type": "string", + "description": "The current state of the peer. Note that the values of the status are dependent on the underlying peer technology.", + "required": true + }, + "cause": { + "type": "string", + "description": "An optional reason associated with the change in peer_status.", + "required": false + }, + "address": { + "type": "string", + "description": "The IP address of the peer.", + "required": false + }, + "port": { + "type": "string", + "description": "The port of the peer.", + "required": false + }, + "time": { + "type": "string", + "description": "The last known time the peer was contacted.", + "required": false + } + } + }, + "DeviceStateChanged": { + "id": "DeviceStateChanged", + "description": "Notification that a device state has changed.", + "properties": { + "device_state": { + "type": "DeviceState", + "description": "Device state object", + "required": true + } + } + }, + "PlaybackStarted": { + "id": "PlaybackStarted", + "description": "Event showing the start of a media playback operation.", + "properties": { + "playback": { + "type": "Playback", + "description": "Playback control object", + "required": true + } + } + }, + "PlaybackContinuing": { + "id": "PlaybackContinuing", + "description": "Event showing the continuation of a media playback operation from one media URI to the next in the list.", + "properties": { + "playback": { + "type": "Playback", + "description": "Playback control object", + "required": true + } + } + }, + "PlaybackFinished": { + "id": "PlaybackFinished", + "description": "Event showing the completion of a media playback operation.", + "properties": { + "playback": { + "type": "Playback", + "description": "Playback control object", + "required": true + } + } + }, + "RecordingStarted": { + "id": "RecordingStarted", + "description": "Event showing the start of a recording operation.", + "properties": { + "recording": { + "type": "LiveRecording", + "description": "Recording control object", + "required": true + } + } + }, + "RecordingFinished": { + "id": "RecordingFinished", + "description": "Event showing the completion of a recording operation.", + "properties": { + "recording": { + "type": "LiveRecording", + "description": "Recording control object", + "required": true + } + } + }, + "RecordingFailed": { + "id": "RecordingFailed", + "description": "Event showing failure of a recording operation.", + "properties": { + "recording": { + "type": "LiveRecording", + "description": "Recording control object", + "required": true + } + } + }, + "ApplicationMoveFailed": { + "id": "ApplicationMoveFailed", + "description": "Notification that trying to move a channel to another Stasis application failed.", + "properties": { + "channel": { + "required": true, + "type": "Channel" + }, + "destination": { + "required": true, + "type": "string" + }, + "args": { + "required": true, + "type": "List[string]", + "description": "Arguments to the application" + } + } + }, + "ApplicationReplaced": { + "id": "ApplicationReplaced", + "description": "Notification that another WebSocket has taken over for an application.\n\nAn application may only be subscribed to by a single WebSocket at a time. If multiple WebSockets attempt to subscribe to the same application, the newer WebSocket wins, and the older one receives this event.", + "properties": {} + }, + "BridgeCreated": { + "id": "BridgeCreated", + "description": "Notification that a bridge has been created.", + "properties": { + "bridge": { + "required": true, + "type": "Bridge" + } + } + }, + "BridgeDestroyed": { + "id": "BridgeDestroyed", + "description": "Notification that a bridge has been destroyed.", + "properties": { + "bridge": { + "required": true, + "type": "Bridge" + } + } + }, + "BridgeMerged": { + "id": "BridgeMerged", + "description": "Notification that one bridge has merged into another.", + "properties": { + "bridge": { + "required": true, + "type": "Bridge" + }, + "bridge_from": { + "required": true, + "type": "Bridge" + } + } + }, + "BridgeVideoSourceChanged": { + "id": "BridgeVideoSourceChanged", + "description": "Notification that the source of video in a bridge has changed.", + "properties": { + "bridge": { + "required": true, + "type": "Bridge" + }, + "old_video_source_id": { + "required": false, + "type": "string" + } + } + }, + "BridgeBlindTransfer": { + "id": "BridgeBlindTransfer", + "description": "Notification that a blind transfer has occurred.", + "properties": { + "channel": { + "description": "The channel performing the blind transfer", + "required": true, + "type": "Channel" + }, + "replace_channel": { + "description": "The channel that is replacing transferer when the transferee(s) can not be transferred directly", + "required": false, + "type": "Channel" + }, + "transferee": { + "description": "The channel that is being transferred", + "required": false, + "type": "Channel" + }, + "exten": { + "description": "The extension transferred to", + "required": true, + "type": "string" + }, + "context": { + "description": "The context transferred to", + "required": true, + "type": "string" + }, + "result": { + "description": "The result of the transfer attempt", + "required": true, + "type": "string" + }, + "is_external": { + "description": "Whether the transfer was externally initiated or not", + "required": true, + "type": "boolean" + }, + "bridge": { + "description": "The bridge being transferred", + "type": "Bridge" + } + } + }, + "BridgeAttendedTransfer": { + "id": "BridgeAttendedTransfer", + "description": "Notification that an attended transfer has occurred.", + "properties": { + "transferer_first_leg": { + "description": "First leg of the transferer", + "required": true, + "type": "Channel" + }, + "transferer_second_leg": { + "description": "Second leg of the transferer", + "required": true, + "type": "Channel" + }, + "replace_channel": { + "description": "The channel that is replacing transferer_first_leg in the swap", + "required": false, + "type": "Channel" + }, + "transferee": { + "description": "The channel that is being transferred", + "required": false, + "type": "Channel" + }, + "transfer_target": { + "description": "The channel that is being transferred to", + "required": false, + "type": "Channel" + }, + "result": { + "description": "The result of the transfer attempt", + "required": true, + "type": "string" + }, + "is_external": { + "description": "Whether the transfer was externally initiated or not", + "required": true, + "type": "boolean" + }, + "transferer_first_leg_bridge": { + "description": "Bridge the transferer first leg is in", + "type": "Bridge" + }, + "transferer_second_leg_bridge": { + "description": "Bridge the transferer second leg is in", + "type": "Bridge" + }, + "destination_type": { + "description": "How the transfer was accomplished", + "required": true, + "type": "string" + }, + "destination_bridge": { + "description": "Bridge that survived the merge result", + "type": "string" + }, + "destination_application": { + "description": "Application that has been transferred into", + "type": "string" + }, + "destination_link_first_leg": { + "description": "First leg of a link transfer result", + "type": "Channel" + }, + "destination_link_second_leg": { + "description": "Second leg of a link transfer result", + "type": "Channel" + }, + "destination_threeway_channel": { + "description": "Transferer channel that survived the threeway result", + "type": "Channel" + }, + "destination_threeway_bridge": { + "description": "Bridge that survived the threeway result", + "type": "Bridge" + } + } + }, + "ChannelCreated": { + "id": "ChannelCreated", + "description": "Notification that a channel has been created.", + "properties": { + "channel": { + "required": true, + "type": "Channel" + } + } + }, + "ChannelDestroyed": { + "id": "ChannelDestroyed", + "description": "Notification that a channel has been destroyed.", + "properties": { + "cause": { + "required": true, + "description": "Integer representation of the cause of the hangup", + "type": "int" + }, + "cause_txt": { + "required": true, + "description": "Text representation of the cause of the hangup", + "type": "string" + }, + "channel": { + "required": true, + "type": "Channel" + } + } + }, + "ChannelEnteredBridge": { + "id": "ChannelEnteredBridge", + "description": "Notification that a channel has entered a bridge.", + "properties": { + "bridge": { + "required": true, + "type": "Bridge" + }, + "channel": { + "type": "Channel" + } + } + }, + "ChannelLeftBridge": { + "id": "ChannelLeftBridge", + "description": "Notification that a channel has left a bridge.", + "properties": { + "bridge": { + "required": true, + "type": "Bridge" + }, + "channel": { + "required": true, + "type": "Channel" + } + } + }, + "ChannelStateChange": { + "id": "ChannelStateChange", + "description": "Notification of a channel's state change.", + "properties": { + "channel": { + "required": true, + "type": "Channel" + } + } + }, + "ChannelDtmfReceived": { + "id": "ChannelDtmfReceived", + "description": "DTMF received on a channel.\n\nThis event is sent when the DTMF ends. There is no notification about the start of DTMF", + "properties": { + "digit": { + "required": true, + "type": "string", + "description": "DTMF digit received (0-9, A-E, # or *)" + }, + "duration_ms": { + "required": true, + "type": "int", + "description": "Number of milliseconds DTMF was received" + }, + "channel": { + "required": true, + "type": "Channel", + "description": "The channel on which DTMF was received" + } + } + }, + "ChannelDialplan": { + "id": "ChannelDialplan", + "description": "Channel changed location in the dialplan.", + "properties": { + "channel": { + "required": true, + "type": "Channel", + "description": "The channel that changed dialplan location." + }, + "dialplan_app": { + "required": true, + "type": "string", + "description": "The application about to be executed." + }, + "dialplan_app_data": { + "required": true, + "type": "string", + "description": "The data to be passed to the application." + } + } + }, + "ChannelCallerId": { + "id": "ChannelCallerId", + "description": "Channel changed Caller ID.", + "properties": { + "caller_presentation": { + "required": true, + "type": "int", + "description": "The integer representation of the Caller Presentation value." + }, + "caller_presentation_txt": { + "required": true, + "type": "string", + "description": "The text representation of the Caller Presentation value." + }, + "channel": { + "required": true, + "type": "Channel", + "description": "The channel that changed Caller ID." + } + } + }, + "ChannelUserevent": { + "id": "ChannelUserevent", + "description": "User-generated event with additional user-defined fields in the object.", + "properties": { + "eventname": { + "required": true, + "type": "string", + "description": "The name of the user event." + }, + "channel": { + "required": false, + "type": "Channel", + "description": "A channel that is signaled with the user event." + }, + "bridge": { + "required": false, + "type": "Bridge", + "description": "A bridge that is signaled with the user event." + }, + "endpoint": { + "required": false, + "type": "Endpoint", + "description": "A endpoint that is signaled with the user event." + }, + "userevent": { + "required": true, + "type": "object", + "description": "Custom Userevent data" + } + } + }, + "ChannelHangupRequest": { + "id": "ChannelHangupRequest", + "description": "A hangup was requested on the channel.", + "properties": { + "cause": { + "type": "int", + "description": "Integer representation of the cause of the hangup." + }, + "soft": { + "type": "boolean", + "description": "Whether the hangup request was a soft hangup request." + }, + "channel": { + "required": true, + "type": "Channel", + "description": "The channel on which the hangup was requested." + } + } + }, + "ChannelVarset": { + "id": "ChannelVarset", + "description": "Channel variable changed.", + "properties": { + "variable": { + "required": true, + "type": "string", + "description": "The variable that changed." + }, + "value": { + "required": true, + "type": "string", + "description": "The new value of the variable." + }, + "channel": { + "required": false, + "type": "Channel", + "description": "The channel on which the variable was set.\n\nIf missing, the variable is a global variable." + } + } + }, + "ChannelHold": { + "id": "ChannelHold", + "description": "A channel initiated a media hold.", + "properties": { + "channel": { + "required": true, + "type": "Channel", + "description": "The channel that initiated the hold event." + }, + "musicclass": { + "required": false, + "type": "string", + "description": "The music on hold class that the initiator requested." + } + } + }, + "ChannelUnhold": { + "id": "ChannelUnhold", + "description": "A channel initiated a media unhold.", + "properties": { + "channel": { + "required": true, + "type": "Channel", + "description": "The channel that initiated the unhold event." + } + } + }, + "ChannelTalkingStarted": { + "id": "ChannelTalkingStarted", + "description": "Talking was detected on the channel.", + "properties": { + "channel": { + "required": true, + "type": "Channel", + "description": "The channel on which talking started." + } + } + }, + "ChannelTalkingFinished": { + "id": "ChannelTalkingFinished", + "description": "Talking is no longer detected on the channel.", + "properties": { + "channel": { + "required": true, + "type": "Channel", + "description": "The channel on which talking completed." + }, + "duration": { + "required": true, + "type": "int", + "description": "The length of time, in milliseconds, that talking was detected on the channel" + } + } + }, + "ContactStatusChange": { + "id": "ContactStatusChange", + "description": "The state of a contact on an endpoint has changed.", + "properties": { + "endpoint": { + "required": true, + "type": "Endpoint" + }, + "contact_info": { + "required": true, + "type": "ContactInfo" + } + } + }, + "PeerStatusChange": { + "id": "PeerStatusChange", + "description": "The state of a peer associated with an endpoint has changed.", + "properties": { + "endpoint": { + "required": true, + "type": "Endpoint" + }, + "peer": { + "required": true, + "type": "Peer" + } + } + }, + "EndpointStateChange": { + "id": "EndpointStateChange", + "description": "Endpoint state changed.", + "properties": { + "endpoint": { + "required": true, + "type": "Endpoint" + } + } + }, + "Dial": { + "id": "Dial", + "description": "Dialing state has changed.", + "properties": { + "caller": { + "required": false, + "type": "Channel", + "description": "The calling channel." + }, + "peer": { + "required": true, + "type": "Channel", + "description": "The dialed channel." + }, + "forward": { + "required": false, + "type": "string", + "description": "Forwarding target requested by the original dialed channel." + }, + "forwarded": { + "required": false, + "type": "Channel", + "description": "Channel that the caller has been forwarded to." + }, + "dialstring": { + "required": false, + "type": "string", + "description": "The dial string for calling the peer channel." + }, + "dialstatus": { + "required": true, + "type": "string", + "description": "Current status of the dialing attempt to the peer." + } + } + }, + "StasisEnd": { + "id": "StasisEnd", + "description": "Notification that a channel has left a Stasis application.", + "properties": { + "channel": { + "required": true, + "type": "Channel" + } + } + }, + "StasisStart": { + "id": "StasisStart", + "description": "Notification that a channel has entered a Stasis application.", + "properties": { + "args": { + "required": true, + "type": "List[string]", + "description": "Arguments to the application" + }, + "channel": { + "required": true, + "type": "Channel" + }, + "replace_channel": { + "required": false, + "type": "Channel" + } + } + }, + "TextMessageReceived": { + "id": "TextMessageReceived", + "description": "A text message was received from an endpoint.", + "properties": { + "message": { + "required": true, + "type": "TextMessage" + }, + "endpoint": { + "required": false, + "type": "Endpoint" + } + } + }, + "ChannelConnectedLine": { + "id": "ChannelConnectedLine", + "description": "Channel changed Connected Line.", + "properties": { + "channel": { + "required": true, + "type": "Channel", + "description": "The channel whose connected line has changed." + } + } + } + } +} diff --git a/codegen/src/main/resources/codegen-data/ari_4_1_4/mailboxes.json b/codegen/src/main/resources/codegen-data/ari_4_1_4/mailboxes.json new file mode 100644 index 00000000..8f5941b8 --- /dev/null +++ b/codegen/src/main/resources/codegen-data/ari_4_1_4/mailboxes.json @@ -0,0 +1,137 @@ +{ + "_copyright": "Copyright (C) 2013, Digium, Inc.", + "_author": "Jonathan Rose ", + "_svn_revision": "$Revision$", + "apiVersion": "2.0.0", + "swaggerVersion": "1.1", + "basePath": "http://localhost:8088/ari", + "resourcePath": "/api-docs/mailboxes.{format}", + "requiresModules": [ + "res_stasis_mailbox" + ], + "apis": [ + { + "path": "/mailboxes", + "description": "Mailboxes", + "operations": [ + { + "httpMethod": "GET", + "summary": "List all mailboxes.", + "nickname": "list", + "responseClass": "List[Mailbox]" + } + ] + }, + { + "path": "/mailboxes/{mailboxName}", + "description": "Mailbox state", + "operations": [ + { + "httpMethod": "GET", + "summary": "Retrieve the current state of a mailbox.", + "nickname": "get", + "responseClass": "Mailbox", + "parameters": [ + { + "name": "mailboxName", + "description": "Name of the mailbox", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Mailbox not found" + } + ] + }, + { + "httpMethod": "PUT", + "summary": "Change the state of a mailbox. (Note - implicitly creates the mailbox).", + "nickname": "update", + "responseClass": "void", + "parameters": [ + { + "name": "mailboxName", + "description": "Name of the mailbox", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "oldMessages", + "description": "Count of old messages in the mailbox", + "paramType": "query", + "required": true, + "allowMultiple": false, + "dataType": "int" + }, + { + "name": "newMessages", + "description": "Count of new messages in the mailbox", + "paramType": "query", + "required": true, + "allowMultiple": false, + "dataType": "int" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Mailbox not found" + } + ] + }, + { + "httpMethod": "DELETE", + "summary": "Destroy a mailbox.", + "nickname": "delete", + "responseClass": "void", + "parameters": [ + { + "name": "mailboxName", + "description": "Name of the mailbox", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Mailbox not found" + } + ] + } + ] + } + ], + "models": { + "Mailbox": { + "id": "Mailbox", + "description": "Represents the state of a mailbox.", + "properties": { + "name": { + "type": "string", + "description": "Name of the mailbox.", + "required": true + }, + "old_messages": { + "type": "int", + "description": "Count of old messages in the mailbox.", + "required": true + }, + "new_messages": { + "type": "int", + "description": "Count of new messages in the mailbox.", + "required": true + } + } + } + } +} diff --git a/codegen/src/main/resources/codegen-data/ari_4_1_4/playbacks.json b/codegen/src/main/resources/codegen-data/ari_4_1_4/playbacks.json new file mode 100644 index 00000000..793986fc --- /dev/null +++ b/codegen/src/main/resources/codegen-data/ari_4_1_4/playbacks.json @@ -0,0 +1,165 @@ +{ + "_copyright": "Copyright (C) 2012 - 2013, Digium, Inc.", + "_author": "David M. Lee, II ", + "_svn_revision": "$Revision$", + "apiVersion": "2.0.0", + "swaggerVersion": "1.1", + "basePath": "http://localhost:8088/ari", + "resourcePath": "/api-docs/playbacks.{format}", + "requiresModules": [ + "res_stasis_playback" + ], + "apis": [ + { + "path": "/playbacks/{playbackId}", + "description": "Control object for a playback operation.", + "operations": [ + { + "httpMethod": "GET", + "summary": "Get a playback's details.", + "nickname": "get", + "responseClass": "Playback", + "parameters": [ + { + "name": "playbackId", + "description": "Playback's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "The playback cannot be found" + } + ] + }, + { + "httpMethod": "DELETE", + "summary": "Stop a playback.", + "nickname": "stop", + "responseClass": "void", + "parameters": [ + { + "name": "playbackId", + "description": "Playback's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "The playback cannot be found" + } + ] + } + ] + }, + { + "path": "/playbacks/{playbackId}/control", + "description": "Control object for a playback operation.", + "operations": [ + { + "httpMethod": "POST", + "summary": "Control a playback.", + "nickname": "control", + "responseClass": "void", + "parameters": [ + { + "name": "playbackId", + "description": "Playback's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "operation", + "description": "Operation to perform on the playback.", + "paramType": "query", + "required": true, + "allowMultiple": false, + "dataType": "string", + "allowableValues": { + "valueType": "LIST", + "values": [ + "restart", + "pause", + "unpause", + "reverse", + "forward" + ] + } + } + ], + "errorResponses": [ + { + "code": 400, + "reason": "The provided operation parameter was invalid" + }, + { + "code": 404, + "reason": "The playback cannot be found" + }, + { + "code": 409, + "reason": "The operation cannot be performed in the playback's current state" + } +] + } + ] + } + ], + "models": { + "Playback": { + "id": "Playback", + "description": "Object representing the playback of media to a channel", + "properties": { + "id": { + "type": "string", + "description": "ID for this playback operation", + "required": true + }, + "media_uri": { + "type": "string", + "description": "The URI for the media currently being played back.", + "required": true + }, + "next_media_uri": { + "type": "string", + "description": "If a list of URIs is being played, the next media URI to be played back.", + "required": false + }, + "target_uri": { + "type": "string", + "description": "URI for the channel or bridge to play the media on", + "required": true + }, + "language": { + "type": "string", + "description": "For media types that support multiple languages, the language requested for playback." + }, + "state": { + "type": "string", + "description": "Current state of the playback operation.", + "required": true, + "allowableValues": { + "valueType": "LIST", + "values": [ + "queued", + "playing", + "continuing", + "done", + "failed" + ] + } + } + } + } + } +} diff --git a/codegen/src/main/resources/codegen-data/ari_4_1_4/recordings.json b/codegen/src/main/resources/codegen-data/ari_4_1_4/recordings.json new file mode 100644 index 00000000..6ffd6d8e --- /dev/null +++ b/codegen/src/main/resources/codegen-data/ari_4_1_4/recordings.json @@ -0,0 +1,413 @@ +{ + "_copyright": "Copyright (C) 2012 - 2013, Digium, Inc.", + "_author": "David M. Lee, II ", + "_svn_revision": "$Revision$", + "apiVersion": "2.0.0", + "swaggerVersion": "1.1", + "basePath": "http://localhost:8088/ari", + "resourcePath": "/api-docs/recordings.{format}", + "requiresModules": [ + "res_stasis_recording" + ], + "apis": [ + { + "path": "/recordings/stored", + "description": "Recordings", + "operations": [ + { + "httpMethod": "GET", + "summary": "List recordings that are complete.", + "nickname": "listStored", + "responseClass": "List[StoredRecording]" + } + ] + }, + { + "path": "/recordings/stored/{recordingName}", + "description": "Individual recording", + "operations": [ + { + "httpMethod": "GET", + "summary": "Get a stored recording's details.", + "nickname": "getStored", + "responseClass": "StoredRecording", + "parameters": [ + { + "name": "recordingName", + "description": "The name of the recording", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Recording not found" + } + ] + }, + { + "httpMethod": "DELETE", + "summary": "Delete a stored recording.", + "nickname": "deleteStored", + "responseClass": "void", + "parameters": [ + { + "name": "recordingName", + "description": "The name of the recording", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Recording not found" + } + ] + } + ] + }, + { + "path": "/recordings/stored/{recordingName}/file", + "description": "The actual file associated with the stored recording", + "operations": [ + { + "httpMethod": "GET", + "summary": "Get the file associated with the stored recording.", + "nickname": "getStoredFile", + "responseClass": "binary", + "parameters": [ + { + "name": "recordingName", + "description": "The name of the recording", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 403, + "reason": "The recording file could not be opened" + }, + { + "code": 404, + "reason": "Recording not found" + } + ] + } + ] + }, + { + "path": "/recordings/stored/{recordingName}/copy", + "description": "Copy an individual recording", + "operations": [ + { + "httpMethod": "POST", + "summary": "Copy a stored recording.", + "nickname": "copyStored", + "responseClass": "StoredRecording", + "parameters": [ + { + "name": "recordingName", + "description": "The name of the recording to copy", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "destinationRecordingName", + "description": "The destination name of the recording", + "paramType": "query", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Recording not found" + }, + { + "code": 409, + "reason": "A recording with the same name already exists on the system" + } + ] + } + ] + }, + { + "path": "/recordings/live/{recordingName}", + "description": "A recording that is in progress", + "operations": [ + { + "httpMethod": "GET", + "summary": "List live recordings.", + "nickname": "getLive", + "responseClass": "LiveRecording", + "parameters": [ + { + "name": "recordingName", + "description": "The name of the recording", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Recording not found" + } + ] + }, + { + "httpMethod": "DELETE", + "summary": "Stop a live recording and discard it.", + "nickname": "cancel", + "responseClass": "void", + "parameters": [ + { + "name": "recordingName", + "description": "The name of the recording", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Recording not found" + } + ] + } + ] + }, + { + "path": "/recordings/live/{recordingName}/stop", + "operations": [ + { + "httpMethod": "POST", + "summary": "Stop a live recording and store it.", + "nickname": "stop", + "responseClass": "void", + "parameters": [ + { + "name": "recordingName", + "description": "The name of the recording", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Recording not found" + } + ] + } + ] + }, + { + "path": "/recordings/live/{recordingName}/pause", + "operations": [ + { + "httpMethod": "POST", + "summary": "Pause a live recording.", + "notes": "Pausing a recording suspends silence detection, which will be restarted when the recording is unpaused. Paused time is not included in the accounting for maxDurationSeconds.", + "nickname": "pause", + "responseClass": "void", + "parameters": [ + { + "name": "recordingName", + "description": "The name of the recording", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Recording not found" + }, + { + "code": 409, + "reason": "Recording not in session" + } + ] + }, + { + "httpMethod": "DELETE", + "summary": "Unpause a live recording.", + "nickname": "unpause", + "responseClass": "void", + "parameters": [ + { + "name": "recordingName", + "description": "The name of the recording", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Recording not found" + }, + { + "code": 409, + "reason": "Recording not in session" + } + ] + } + ] + }, + { + "path": "/recordings/live/{recordingName}/mute", + "operations": [ + { + "httpMethod": "POST", + "summary": "Mute a live recording.", + "notes": "Muting a recording suspends silence detection, which will be restarted when the recording is unmuted.", + "nickname": "mute", + "responseClass": "void", + "parameters": [ + { + "name": "recordingName", + "description": "The name of the recording", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Recording not found" + }, + { + "code": 409, + "reason": "Recording not in session" + } + ] + }, + { + "httpMethod": "DELETE", + "summary": "Unmute a live recording.", + "nickname": "unmute", + "responseClass": "void", + "parameters": [ + { + "name": "recordingName", + "description": "The name of the recording", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Recording not found" + }, + { + "code": 409, + "reason": "Recording not in session" + } + ] + } + ] + } + ], + "models": { + "StoredRecording": { + "id": "StoredRecording", + "description": "A past recording that may be played back.", + "properties": { + "name": { + "required": true, + "type": "string" + }, + "format": { + "required": true, + "type": "string" + } + } + }, + "LiveRecording": { + "id": "LiveRecording", + "description": "A recording that is in progress", + "properties": { + "name": { + "required": true, + "type": "string", + "description": "Base name for the recording" + }, + "format": { + "required": true, + "type": "string", + "description": "Recording format (wav, gsm, etc.)" + }, + "target_uri": { + "required": true, + "type": "string", + "description": "URI for the channel or bridge being recorded" + }, + "state": { + "required": true, + "type": "string", + "allowableValues": { + "valueType": "LIST", + "values": [ + "queued", + "recording", + "paused", + "done", + "failed", + "canceled" + ] + } + }, + "duration": { + "required": false, + "type": "int", + "description": "Duration in seconds of the recording" + }, + "talking_duration": { + "required": false, + "type": "int", + "description": "Duration of talking, in seconds, detected in the recording. This is only available if the recording was initiated with a non-zero maxSilenceSeconds." + }, + "silence_duration": { + "required": false, + "type": "int", + "description": "Duration of silence, in seconds, detected in the recording. This is only available if the recording was initiated with a non-zero maxSilenceSeconds." + }, + "cause": { + "required": false, + "type": "string", + "description": "Cause for recording failure if failed" + } + } + } + } +} diff --git a/codegen/src/main/resources/codegen-data/ari_4_1_4/sounds.json b/codegen/src/main/resources/codegen-data/ari_4_1_4/sounds.json new file mode 100644 index 00000000..8fbe1c57 --- /dev/null +++ b/codegen/src/main/resources/codegen-data/ari_4_1_4/sounds.json @@ -0,0 +1,99 @@ +{ + "_copyright": "Copyright (C) 2012 - 2013, Digium, Inc.", + "_author": "David M. Lee, II ", + "_svn_revision": "$Revision$", + "apiVersion": "2.0.0", + "swaggerVersion": "1.1", + "basePath": "http://localhost:8088/ari", + "resourcePath": "/api-docs/sounds.{format}", + "apis": [ + { + "path": "/sounds", + "description": "Sounds", + "operations": [ + { + "httpMethod": "GET", + "summary": "List all sounds.", + "nickname": "list", + "responseClass": "List[Sound]", + "parameters": [ + { + "name": "lang", + "description": "Lookup sound for a specific language.", + "paramType": "query", + "dataType": "string", + "required": false + }, + { + "name": "format", + "description": "Lookup sound in a specific format.", + "paramType": "query", + "dataType": "string", + "required": false, + "__note": "core show translation can show translation paths between formats, along with relative costs. so this could be just installed format, or we could follow that for transcoded formats." + } + ] + } + ] + }, + { + "path": "/sounds/{soundId}", + "description": "Individual sound", + "operations": [ + { + "httpMethod": "GET", + "summary": "Get a sound's details.", + "nickname": "get", + "responseClass": "Sound", + "parameters": [ + { + "name": "soundId", + "description": "Sound's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ] + } + ] + } + ], + "models": { + "FormatLangPair": { + "id": "FormatLangPair", + "description": "Identifies the format and language of a sound file", + "properties": { + "language": { + "required": true, + "type": "string" + }, + "format": { + "required": true, + "type": "string" + } + } + }, + "Sound": { + "id": "Sound", + "description": "A media file that may be played back.", + "properties": { + "id": { + "required": true, + "description": "Sound's identifier.", + "type": "string" + }, + "text": { + "required": false, + "description": "Text description of the sound, usually the words spoken.", + "type": "string" + }, + "formats": { + "required": true, + "description": "The formats and languages in which this sound is available.", + "type": "List[FormatLangPair]" + } + } + } + } +} diff --git a/codegen/src/main/resources/codegen-data/ari_6_0_1/applications.json b/codegen/src/main/resources/codegen-data/ari_6_0_1/applications.json new file mode 100644 index 00000000..09c5cd5c --- /dev/null +++ b/codegen/src/main/resources/codegen-data/ari_6_0_1/applications.json @@ -0,0 +1,223 @@ +{ + "_copyright": "Copyright (C) 2013, Digium, Inc.", + "_author": "David M. Lee, II ", + "_svn_revision": "$Revision$", + "apiVersion": "2.0.0", + "swaggerVersion": "1.1", + "basePath": "http://localhost:8088/ari", + "resourcePath": "/api-docs/applications.{format}", + "apis": [ + { + "path": "/applications", + "description": "Stasis applications", + "operations": [ + { + "httpMethod": "GET", + "summary": "List all applications.", + "nickname": "list", + "responseClass": "List[Application]" + } + ] + }, + { + "path": "/applications/{applicationName}", + "description": "Stasis application", + "operations": [ + { + "httpMethod": "GET", + "summary": "Get details of an application.", + "nickname": "get", + "responseClass": "Application", + "parameters": [ + { + "name": "applicationName", + "description": "Application's name", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Application does not exist." + } + ] + } + ] + }, + { + "path": "/applications/{applicationName}/subscription", + "description": "Stasis application", + "operations": [ + { + "httpMethod": "POST", + "summary": "Subscribe an application to a event source.", + "notes": "Returns the state of the application after the subscriptions have changed", + "nickname": "subscribe", + "responseClass": "Application", + "parameters": [ + { + "name": "applicationName", + "description": "Application's name", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "eventSource", + "description": "URI for event source (channel:{channelId}, bridge:{bridgeId}, endpoint:{tech}[/{resource}], deviceState:{deviceName}", + "paramType": "query", + "required": true, + "allowMultiple": true, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 400, + "reason": "Missing parameter." + }, + { + "code": 404, + "reason": "Application does not exist." + }, + { + "code": 422, + "reason": "Event source does not exist." + } + ] + }, + { + "httpMethod": "DELETE", + "summary": "Unsubscribe an application from an event source.", + "notes": "Returns the state of the application after the subscriptions have changed", + "nickname": "unsubscribe", + "responseClass": "Application", + "parameters": [ + { + "name": "applicationName", + "description": "Application's name", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "eventSource", + "description": "URI for event source (channel:{channelId}, bridge:{bridgeId}, endpoint:{tech}[/{resource}], deviceState:{deviceName}", + "paramType": "query", + "required": true, + "allowMultiple": true, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 400, + "reason": "Missing parameter; event source scheme not recognized." + }, + { + "code": 404, + "reason": "Application does not exist." + }, + { + "code": 409, + "reason": "Application not subscribed to event source." + }, + { + "code": 422, + "reason": "Event source does not exist." + } + ] + } + ] + }, + { + "path": "/applications/{applicationName}/eventFilter", + "description": "Stasis application", + "operations": [ + { + "httpMethod": "PUT", + "summary": "Filter application events types.", + "notes": "Allowed and/or disallowed event type filtering can be done. The body (parameter) should specify a JSON key/value object that describes the type of event filtering needed. One, or both of the following keys can be designated:

\"allowed\" - Specifies an allowed list of event types
\"disallowed\" - Specifies a disallowed list of event types

Further, each of those key's value should be a JSON array that holds zero, or more JSON key/value objects. Each of these objects must contain the following key with an associated value:

\"type\" - The type name of the event to filter

The value must be the string name (case sensitive) of the event type that needs filtering. For example:

{ \"allowed\": [ { \"type\": \"StasisStart\" }, { \"type\": \"StasisEnd\" } ] }

As this specifies only an allowed list, then only those two event type messages are sent to the application. No other event messages are sent.

The following rules apply:

* If the body is empty, both the allowed and disallowed filters are set empty.
* If both list types are given then both are set to their respective values (note, specifying an empty array for a given type sets that type to empty).
* If only one list type is given then only that type is set. The other type is not updated.
* An empty \"allowed\" list means all events are allowed.
* An empty \"disallowed\" list means no events are disallowed.
* Disallowed events take precedence over allowed events if the event type is specified in both lists.", + "nickname": "filter", + "responseClass": "Application", + "parameters": [ + { + "name": "applicationName", + "description": "Application's name", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "filter", + "description": "Specify which event types to allow/disallow", + "paramType": "body", + "required": false, + "dataType": "object", + "allowMultiple": false + } + ], + "errorResponses": [ + { + "code": 400, + "reason": "Bad request." + }, + { + "code": 404, + "reason": "Application does not exist." + } + ] + } + ] + } + ], + "models": { + "Application": { + "id": "Application", + "description": "Details of a Stasis application", + "properties": { + "name": { + "type": "string", + "description": "Name of this application", + "required": true + }, + "channel_ids": { + "type": "List[string]", + "description": "Id's for channels subscribed to.", + "required": true + }, + "bridge_ids": { + "type": "List[string]", + "description": "Id's for bridges subscribed to.", + "required": true + }, + "endpoint_ids": { + "type": "List[string]", + "description": "{tech}/{resource} for endpoints subscribed to.", + "required": true + }, + "device_names": { + "type": "List[string]", + "description": "Names of the devices subscribed to.", + "required": true + }, + "events_allowed": { + "type": "List[object]", + "description": "Event types sent to the application.", + "required": true + }, + "events_disallowed": { + "type": "List[object]", + "description": "Event types not sent to the application.", + "required": true + } + } + } + } +} diff --git a/codegen/src/main/resources/codegen-data/ari_6_0_1/asterisk.json b/codegen/src/main/resources/codegen-data/ari_6_0_1/asterisk.json new file mode 100644 index 00000000..841e6cd8 --- /dev/null +++ b/codegen/src/main/resources/codegen-data/ari_6_0_1/asterisk.json @@ -0,0 +1,725 @@ +{ + "_copyright": "Copyright (C) 2012 - 2013, Digium, Inc.", + "_author": "David M. Lee, II ", + "_svn_revision": "$Revision$", + "apiVersion": "2.0.0", + "swaggerVersion": "1.1", + "basePath": "http://localhost:8088/ari", + "resourcePath": "/api-docs/asterisk.{format}", + "apis": [ + { + "path": "/asterisk/config/dynamic/{configClass}/{objectType}/{id}", + "description": "Asterisk dynamic configuration", + "operations": [ + { + "httpMethod": "GET", + "summary": "Retrieve a dynamic configuration object.", + "nickname": "getObject", + "responseClass": "List[ConfigTuple]", + "parameters": [ + { + "name": "configClass", + "description": "The configuration class containing dynamic configuration objects.", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "objectType", + "description": "The type of configuration object to retrieve.", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "id", + "description": "The unique identifier of the object to retrieve.", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "{configClass|objectType|id} not found" + } + ] + }, + { + "httpMethod": "PUT", + "summary": "Create or update a dynamic configuration object.", + "nickname": "updateObject", + "responseClass": "List[ConfigTuple]", + "parameters": [ + { + "name": "configClass", + "description": "The configuration class containing dynamic configuration objects.", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "objectType", + "description": "The type of configuration object to create or update.", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "id", + "description": "The unique identifier of the object to create or update.", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "fields", + "description": "The body object should have a value that is a list of ConfigTuples, which provide the fields to update. Ex. [ { \"attribute\": \"directmedia\", \"value\": \"false\" } ]", + "paramType": "body", + "required": false, + "dataType": "containers", + "allowMultiple": false + } + ], + "errorResponses": [ + { + "code": 400, + "reason": "Bad request body" + }, + { + "code": 403, + "reason": "Could not create or update object" + }, + { + "code": 404, + "reason": "{configClass|objectType} not found" + } + ] + }, + { + "httpMethod": "DELETE", + "summary": "Delete a dynamic configuration object.", + "nickname": "deleteObject", + "responseClass": "void", + "parameters": [ + { + "name": "configClass", + "description": "The configuration class containing dynamic configuration objects.", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "objectType", + "description": "The type of configuration object to delete.", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "id", + "description": "The unique identifier of the object to delete.", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 403, + "reason": "Could not delete object" + }, + { + "code": 404, + "reason": "{configClass|objectType|id} not found" + } + ] + } + ] + }, + { + "path": "/asterisk/info", + "description": "Asterisk system information (similar to core show settings)", + "operations": [ + { + "httpMethod": "GET", + "summary": "Gets Asterisk system information.", + "nickname": "getInfo", + "responseClass": "AsteriskInfo", + "parameters": [ + { + "name": "only", + "description": "Filter information returned", + "paramType": "query", + "required": false, + "allowMultiple": true, + "dataType": "string", + "allowableValues": { + "valueType": "LIST", + "values": [ + "build", + "system", + "config", + "status" + ] + } + } + ] + } + ] + }, + { + "path": "/asterisk/ping", + "description": "Asterisk ping", + "operations": [ + { + "httpMethod": "GET", + "summary": "Response pong message.", + "nickname": "ping", + "responseClass": "AsteriskPing" + } + ] + }, + { + "path": "/asterisk/modules", + "description": "Asterisk modules", + "operations": [ + { + "httpMethod": "GET", + "summary": "List Asterisk modules.", + "nickname": "listModules", + "responseClass": "List[Module]" + } + ] + }, + { + "path": "/asterisk/modules/{moduleName}", + "description": "Asterisk module", + "operations": [ + { + "httpMethod": "GET", + "summary": "Get Asterisk module information.", + "nickname": "getModule", + "responseClass": "Module", + "parameters": [ + { + "name": "moduleName", + "description": "Module's name", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Module could not be found in running modules." + }, + { + "code": 409, + "reason": "Module information could not be retrieved." + } + ] + }, + { + "httpMethod": "POST", + "summary": "Load an Asterisk module.", + "nickname": "loadModule", + "responseClass": "void", + "parameters": [ + { + "name": "moduleName", + "description": "Module's name", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 409, + "reason": "Module could not be loaded." + } + ] + }, + { + "httpMethod": "DELETE", + "summary": "Unload an Asterisk module.", + "nickname": "unloadModule", + "responseClass": "void", + "parameters": [ + { + "name": "moduleName", + "description": "Module's name", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Module not found in running modules." + }, + { + "code": 409, + "reason": "Module could not be unloaded." + } + ] + }, + { + "httpMethod": "PUT", + "summary": "Reload an Asterisk module.", + "nickname": "reloadModule", + "responseClass": "void", + "parameters": [ + { + "name": "moduleName", + "description": "Module's name", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Module not found in running modules." + }, + { + "code": 409, + "reason": "Module could not be reloaded." + } + ] + } + ] + }, + { + "path": "/asterisk/logging", + "description": "Asterisk log channels", + "operations": [ + { + "httpMethod": "GET", + "summary": "Gets Asterisk log channel information.", + "nickname": "listLogChannels", + "responseClass": "List[LogChannel]" + } + ] + }, + { + "path": "/asterisk/logging/{logChannelName}", + "description": "Asterisk log channel", + "operations": [ + { + "httpMethod": "POST", + "summary": "Adds a log channel.", + "nickname": "addLog", + "responseClass": "void", + "parameters": [ + { + "name": "logChannelName", + "description": "The log channel to add", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "configuration", + "description": "levels of the log channel", + "paramType": "query", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 400, + "reason": "Bad request body" + }, + { + "code": 409, + "reason": "Log channel could not be created." + } + ] + }, + { + "httpMethod": "DELETE", + "summary": "Deletes a log channel.", + "nickname": "deleteLog", + "responseClass": "void", + "parameters": [ + { + "name": "logChannelName", + "description": "Log channels name", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Log channel does not exist." + } + ] + } + ] + }, + { + "path": "/asterisk/logging/{logChannelName}/rotate", + "description": "Asterisk log channel", + "operations": [ + { + "httpMethod": "PUT", + "summary": "Rotates a log channel.", + "nickname": "rotateLog", + "responseClass": "void", + "parameters": [ + { + "name": "logChannelName", + "description": "Log channel's name", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Log channel does not exist." + } + ] + } + ] + }, + { + "path": "/asterisk/variable", + "description": "Global variables", + "operations": [ + { + "httpMethod": "GET", + "summary": "Get the value of a global variable.", + "nickname": "getGlobalVar", + "responseClass": "Variable", + "parameters": [ + { + "name": "variable", + "description": "The variable to get", + "paramType": "query", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 400, + "reason": "Missing variable parameter." + } + ] + }, + { + "httpMethod": "POST", + "summary": "Set the value of a global variable.", + "nickname": "setGlobalVar", + "responseClass": "void", + "parameters": [ + { + "name": "variable", + "description": "The variable to set", + "paramType": "query", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "value", + "description": "The value to set the variable to", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 400, + "reason": "Missing variable parameter." + } + ] + } + ] + } + ], + "models": { + "BuildInfo": { + "id": "BuildInfo", + "description": "Info about how Asterisk was built", + "properties": { + "os": { + "required": true, + "type": "string", + "description": "OS Asterisk was built on." + }, + "kernel": { + "required": true, + "type": "string", + "description": "Kernel version Asterisk was built on." + }, + "options": { + "required": true, + "type": "string", + "description": "Compile time options, or empty string if default." + }, + "machine": { + "required": true, + "type": "string", + "description": "Machine architecture (x86_64, i686, ppc, etc.)" + }, + "date": { + "required": true, + "type": "string", + "description": "Date and time when Asterisk was built." + }, + "user": { + "required": true, + "type": "string", + "description": "Username that build Asterisk" + } + } + }, + "SystemInfo": { + "id": "SystemInfo", + "description": "Info about Asterisk", + "properties": { + "version": { + "required": true, + "type": "string", + "description": "Asterisk version." + }, + "entity_id": { + "required": true, + "type": "string", + "description": "" + } + } + }, + "SetId": { + "id": "SetId", + "description": "Effective user/group id", + "properties": { + "user": { + "required": true, + "type": "string", + "description": "Effective user id." + }, + "group": { + "required": true, + "type": "string", + "description": "Effective group id." + } + } + }, + "ConfigInfo": { + "id": "ConfigInfo", + "description": "Info about Asterisk configuration", + "properties": { + "name": { + "required": true, + "type": "string", + "description": "Asterisk system name." + }, + "default_language": { + "required": true, + "type": "string", + "description": "Default language for media playback." + }, + "max_channels": { + "required": false, + "type": "int", + "description": "Maximum number of simultaneous channels." + }, + "max_open_files": { + "required": false, + "type": "int", + "description": "Maximum number of open file handles (files, sockets)." + }, + "max_load": { + "required": false, + "type": "double", + "description": "Maximum load avg on system." + }, + "setid": { + "required": true, + "type": "SetId", + "description": "Effective user/group id for running Asterisk." + } + } + }, + "StatusInfo": { + "id": "StatusInfo", + "description": "Info about Asterisk status", + "properties": { + "startup_time": { + "required": true, + "type": "Date", + "description": "Time when Asterisk was started." + }, + "last_reload_time": { + "required": true, + "type": "Date", + "description": "Time when Asterisk was last reloaded." + } + } + }, + "AsteriskInfo": { + "id": "AsteriskInfo", + "description": "Asterisk system information", + "properties": { + "build": { + "required": false, + "type": "BuildInfo", + "description": "Info about how Asterisk was built" + }, + "system": { + "required": false, + "type": "SystemInfo", + "description": "Info about the system running Asterisk" + }, + "config": { + "required": false, + "type": "ConfigInfo", + "description": "Info about Asterisk configuration" + }, + "status": { + "required": false, + "type": "StatusInfo", + "description": "Info about Asterisk status" + } + } + }, + "AsteriskPing": { + "id": "AsteriskPing", + "description": "Asterisk ping information", + "properties": { + "asterisk_id": { + "required": true, + "type": "string", + "description": "Asterisk id info" + }, + "ping": { + "required": true, + "type": "string", + "description": "Always string value is pong" + }, + "timestamp": { + "required": true, + "type": "string", + "description": "The timestamp string of request received time" + } + } + }, + "Module": { + "id": "Module", + "description": "Details of an Asterisk module", + "properties": { + "name": { + "type": "string", + "description": "The name of this module", + "required": true + }, + "description": { + "type": "string", + "description": "The description of this module", + "required": true + }, + "use_count": { + "type": "int", + "description": "The number of times this module is being used", + "required": true + }, + "status": { + "type": "string", + "description": "The running status of this module", + "required": true + }, + "support_level": { + "type": "string", + "description": "The support state of this module", + "required": true + } + } + }, + "LogChannel": { + "id": "LogChannel", + "description": "Details of an Asterisk log channel", + "properties": { + "channel": { + "type": "string", + "description": "The log channel path", + "required": true + }, + "type": { + "type": "string", + "description": "Types of logs for the log channel", + "required": true + }, + "status": { + "type": "string", + "description": "Whether or not a log type is enabled", + "required": true + }, + "configuration": { + "type": "string", + "description": "The various log levels", + "required": true + } + } + }, + "Variable": { + "id": "Variable", + "description": "The value of a channel variable", + "properties": { + "value": { + "required": true, + "type": "string", + "description": "The value of the variable requested" + } + } + }, + "ConfigTuple": { + "id": "ConfigTuple", + "description": "A key/value pair that makes up part of a configuration object.", + "properties": { + "attribute": { + "required": true, + "type": "string", + "description": "A configuration object attribute." + }, + "value": { + "required": true, + "type": "string", + "description": "The value for the attribute." + } + } + } + } +} diff --git a/codegen/src/main/resources/codegen-data/ari_6_0_1/bridges.json b/codegen/src/main/resources/codegen-data/ari_6_0_1/bridges.json new file mode 100644 index 00000000..bf0a0016 --- /dev/null +++ b/codegen/src/main/resources/codegen-data/ari_6_0_1/bridges.json @@ -0,0 +1,774 @@ +{ + "_copyright": "Copyright (C) 2012 - 2013, Digium, Inc.", + "_author": "David M. Lee, II ", + "_svn_revision": "$Revision$", + "apiVersion": "2.0.0", + "swaggerVersion": "1.1", + "basePath": "http://localhost:8088/ari", + "resourcePath": "/api-docs/bridges.{format}", + "requiresModules": [ + "res_stasis_recording", + "res_stasis_playback" + ], + "apis": [ + { + "path": "/bridges", + "description": "Active bridges", + "operations": [ + { + "httpMethod": "GET", + "summary": "List all active bridges in Asterisk.", + "nickname": "list", + "responseClass": "List[Bridge]" + }, + { + "httpMethod": "POST", + "summary": "Create a new bridge.", + "notes": "This bridge persists until it has been shut down, or Asterisk has been shut down.", + "nickname": "create", + "responseClass": "Bridge", + "parameters": [ + { + "name": "type", + "description": "Comma separated list of bridge type attributes (mixing, holding, dtmf_events, proxy_media, video_sfu, video_single).", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "bridgeId", + "description": "Unique ID to give to the bridge being created.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "name", + "description": "Name to give to the bridge being created.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + } + ] + } + ] + }, + { + "path": "/bridges/{bridgeId}", + "description": "Individual bridge", + "operations": [ + { + "httpMethod": "POST", + "summary": "Create a new bridge or updates an existing one.", + "notes": "This bridge persists until it has been shut down, or Asterisk has been shut down.", + "nickname": "createWithId", + "responseClass": "Bridge", + "parameters": [ + { + "name": "type", + "description": "Comma separated list of bridge type attributes (mixing, holding, dtmf_events, proxy_media, video_sfu, video_single) to set.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "bridgeId", + "description": "Unique ID to give to the bridge being created.", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "name", + "description": "Set the name of the bridge.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + } + ] + }, + { + "httpMethod": "GET", + "summary": "Get bridge details.", + "nickname": "get", + "responseClass": "Bridge", + "parameters": [ + { + "name": "bridgeId", + "description": "Bridge's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Bridge not found" + } + ] + }, + { + "httpMethod": "DELETE", + "summary": "Shut down a bridge.", + "notes": "If any channels are in this bridge, they will be removed and resume whatever they were doing beforehand.", + "nickname": "destroy", + "responseClass": "void", + "parameters": [ + { + "name": "bridgeId", + "description": "Bridge's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Bridge not found" + } + ] + } + ] + }, + { + "path": "/bridges/{bridgeId}/addChannel", + "description": "Add a channel to a bridge", + "operations": [ + { + "httpMethod": "POST", + "summary": "Add a channel to a bridge.", + "nickname": "addChannel", + "responseClass": "void", + "parameters": [ + { + "name": "bridgeId", + "description": "Bridge's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "channel", + "description": "Ids of channels to add to bridge", + "paramType": "query", + "required": true, + "allowMultiple": true, + "dataType": "string" + }, + { + "name": "role", + "description": "Channel's role in the bridge", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "absorbDTMF", + "description": "Absorb DTMF coming from this channel, preventing it to pass through to the bridge", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "boolean", + "defaultValue": false + }, + { + "name": "mute", + "description": "Mute audio from this channel, preventing it to pass through to the bridge", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "boolean", + "defaultValue": false + }, + { + "name": "inhibitConnectedLineUpdates", + "description": "Do not present the identity of the newly connected channel to other bridge members", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "boolean", + "defaultValue": false + } + ], + "errorResponses": [ + { + "code": 400, + "reason": "Channel not found" + }, + { + "code": 404, + "reason": "Bridge not found" + }, + { + "code": 409, + "reason": "Bridge not in Stasis application; Channel currently recording" + }, + { + "code": 422, + "reason": "Channel not in Stasis application" + } + ] + } + ] + }, + { + "path": "/bridges/{bridgeId}/removeChannel", + "description": "Remove a channel from a bridge", + "operations": [ + { + "httpMethod": "POST", + "summary": "Remove a channel from a bridge.", + "nickname": "removeChannel", + "responseClass": "void", + "parameters": [ + { + "name": "bridgeId", + "description": "Bridge's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "channel", + "description": "Ids of channels to remove from bridge", + "paramType": "query", + "required": true, + "allowMultiple": true, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 400, + "reason": "Channel not found" + }, + { + "code": 404, + "reason": "Bridge not found" + }, + { + "code": 409, + "reason": "Bridge not in Stasis application" + }, + { + "code": 422, + "reason": "Channel not in this bridge" + } + ] + } + ] + }, + { + "path": "/bridges/{bridgeId}/videoSource/{channelId}", + "description": "Set a channel as the video source in a multi-party bridge", + "operations": [ + { + "httpMethod": "POST", + "summary": "Set a channel as the video source in a multi-party mixing bridge. This operation has no effect on bridges with two or fewer participants.", + "nickname": "setVideoSource", + "responseClass": "void", + "parameters": [ + { + "name": "bridgeId", + "description": "Bridge's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "channelId", + "description": "Channel's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Bridge or Channel not found" + }, + { + "code": 409, + "reason": "Channel not in Stasis application" + }, + { + "code": 422, + "reason": "Channel not in this Bridge" + } + ] + } + ] + }, + { + "path": "/bridges/{bridgeId}/videoSource", + "description": "Removes any explicit video source", + "operations": [ + { + "httpMethod": "DELETE", + "summary": "Removes any explicit video source in a multi-party mixing bridge. This operation has no effect on bridges with two or fewer participants. When no explicit video source is set, talk detection will be used to determine the active video stream.", + "nickname": "clearVideoSource", + "responseClass": "void", + "parameters": [ + { + "name": "bridgeId", + "description": "Bridge's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Bridge not found" + } + ] + } + ] + }, + { + "path": "/bridges/{bridgeId}/moh", + "description": "Play music on hold to a bridge", + "operations": [ + { + "httpMethod": "POST", + "summary": "Play music on hold to a bridge or change the MOH class that is playing.", + "nickname": "startMoh", + "responseClass": "void", + "parameters": [ + { + "name": "bridgeId", + "description": "Bridge's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "mohClass", + "description": "Channel's id", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Bridge not found" + }, + { + "code": 409, + "reason": "Bridge not in Stasis application" + } + ] + }, + { + "httpMethod": "DELETE", + "summary": "Stop playing music on hold to a bridge.", + "notes": "This will only stop music on hold being played via POST bridges/{bridgeId}/moh.", + "nickname": "stopMoh", + "responseClass": "void", + "parameters": [ + { + "name": "bridgeId", + "description": "Bridge's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Bridge not found" + }, + { + "code": 409, + "reason": "Bridge not in Stasis application" + } + ] + } + ] + }, + { + "path": "/bridges/{bridgeId}/play", + "description": "Play media to the participants of a bridge", + "operations": [ + { + "httpMethod": "POST", + "summary": "Start playback of media on a bridge.", + "notes": "The media URI may be any of a number of URI's. Currently sound:, recording:, number:, digits:, characters:, and tone: URI's are supported. This operation creates a playback resource that can be used to control the playback of media (pause, rewind, fast forward, etc.)", + "nickname": "play", + "responseClass": "Playback", + "parameters": [ + { + "name": "bridgeId", + "description": "Bridge's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "media", + "description": "Media URIs to play.", + "paramType": "query", + "required": true, + "allowMultiple": true, + "dataType": "string" + }, + { + "name": "lang", + "description": "For sounds, selects language for sound.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "offsetms", + "description": "Number of milliseconds to skip before playing. Only applies to the first URI if multiple media URIs are specified.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "int", + "defaultValue": 0, + "allowableValues": { + "valueType": "RANGE", + "min": 0 + } + + }, + { + "name": "skipms", + "description": "Number of milliseconds to skip for forward/reverse operations.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "int", + "defaultValue": 3000, + "allowableValues": { + "valueType": "RANGE", + "min": 0 + } + }, + { + "name": "playbackId", + "description": "Playback Id.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Bridge not found" + }, + { + "code": 409, + "reason": "Bridge not in a Stasis application" + } + ] + } + ] + }, + { + "path": "/bridges/{bridgeId}/play/{playbackId}", + "description": "Play media to a bridge", + "operations": [ + { + "httpMethod": "POST", + "summary": "Start playback of media on a bridge.", + "notes": "The media URI may be any of a number of URI's. Currently sound:, recording:, number:, digits:, characters:, and tone: URI's are supported. This operation creates a playback resource that can be used to control the playback of media (pause, rewind, fast forward, etc.)", + "nickname": "playWithId", + "responseClass": "Playback", + "parameters": [ + { + "name": "bridgeId", + "description": "Bridge's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "playbackId", + "description": "Playback ID.", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "media", + "description": "Media URIs to play.", + "paramType": "query", + "required": true, + "allowMultiple": true, + "dataType": "string" + }, + { + "name": "lang", + "description": "For sounds, selects language for sound.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "offsetms", + "description": "Number of milliseconds to skip before playing. Only applies to the first URI if multiple media URIs are specified.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "int", + "defaultValue": 0, + "allowableValues": { + "valueType": "RANGE", + "min": 0 + } + }, + { + "name": "skipms", + "description": "Number of milliseconds to skip for forward/reverse operations.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "int", + "defaultValue": 3000, + "allowableValues": { + "valueType": "RANGE", + "min": 0 + } + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Bridge not found" + }, + { + "code": 409, + "reason": "Bridge not in a Stasis application" + } + ] + + } + ] + }, + { + "path": "/bridges/{bridgeId}/record", + "description": "Record audio on a bridge", + "operations": [ + { + "httpMethod": "POST", + "summary": "Start a recording.", + "notes": "This records the mixed audio from all channels participating in this bridge.", + "nickname": "record", + "responseClass": "LiveRecording", + "parameters": [ + { + "name": "bridgeId", + "description": "Bridge's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "name", + "description": "Recording's filename", + "paramType": "query", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "format", + "description": "Format to encode audio in", + "paramType": "query", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "maxDurationSeconds", + "description": "Maximum duration of the recording, in seconds. 0 for no limit.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "int", + "defaultValue": 0, + "allowableValues": { + "valueType": "RANGE", + "min": 0 + } + }, + { + "name": "maxSilenceSeconds", + "description": "Maximum duration of silence, in seconds. 0 for no limit.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "int", + "defaultValue": 0, + "allowableValues": { + "valueType": "RANGE", + "min": 0 + } + }, + { + "name": "ifExists", + "description": "Action to take if a recording with the same name already exists.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string", + "defaultValue": "fail", + "allowableValues": { + "valueType": "LIST", + "values": [ + "fail", + "overwrite", + "append" + ] + } + }, + { + "name": "beep", + "description": "Play beep when recording begins", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "boolean", + "defaultValue": false + }, + { + "name": "terminateOn", + "description": "DTMF input to terminate recording.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string", + "defaultValue": "none", + "allowableValues": { + "valueType": "LIST", + "values": [ + "none", + "any", + "*", + "#" + ] + } + } + ], + "errorResponses": [ + { + "code": 400, + "reason": "Invalid parameters" + }, + { + "code": 404, + "reason": "Bridge not found" + }, + { + "code": 409, + "reason": "Bridge is not in a Stasis application; A recording with the same name already exists on the system and can not be overwritten because it is in progress or ifExists=fail" + }, + { + "code": 422, + "reason": "The format specified is unknown on this system" + } + ] + } + ] + } + ], + "models": { + "Bridge": { + "id": "Bridge", + "description": "The merging of media from one or more channels.\n\nEveryone on the bridge receives the same audio.", + "properties": { + "id": { + "type": "string", + "description": "Unique identifier for this bridge", + "required": true + }, + "technology": { + "type": "string", + "description": "Name of the current bridging technology", + "required": true + }, + "bridge_type": { + "type": "string", + "description": "Type of bridge technology", + "required": true, + "allowableValues": { + "valueType": "LIST", + "values": [ + "mixing", + "holding" + ] + } + }, + "bridge_class": { + "type": "string", + "description": "Bridging class", + "required": true + }, + "creator": { + "type": "string", + "description": "Entity that created the bridge", + "required": true + }, + "name": { + "type": "string", + "description": "Name the creator gave the bridge", + "required": true + }, + "channels": { + "type": "List[string]", + "description": "Ids of channels participating in this bridge", + "required": true + }, + "video_mode": { + "type": "string", + "description": "The video mode the bridge is using. One of 'none', 'talker', 'sfu', or 'single'.", + "required": false + }, + "video_source_id": { + "type": "string", + "description": "The ID of the channel that is the source of video in this bridge, if one exists.", + "required": false + }, + "creationtime": { + "required": true, + "type": "Date", + "description": "Timestamp when bridge was created" + } + } + } + } +} diff --git a/codegen/src/main/resources/codegen-data/ari_6_0_1/channels.json b/codegen/src/main/resources/codegen-data/ari_6_0_1/channels.json new file mode 100644 index 00000000..269976df --- /dev/null +++ b/codegen/src/main/resources/codegen-data/ari_6_0_1/channels.json @@ -0,0 +1,2194 @@ +{ + "_copyright": "Copyright (C) 2012 - 2013, Digium, Inc.", + "_author": "David M. Lee, II ", + "_svn_revision": "$Revision$", + "apiVersion": "2.0.0", + "swaggerVersion": "1.1", + "basePath": "http://localhost:8088/ari", + "resourcePath": "/api-docs/channels.{format}", + "requiresModules": [ + "res_stasis_answer", + "res_stasis_playback", + "res_stasis_recording", + "res_stasis_snoop" + ], + "apis": [ + { + "path": "/channels", + "description": "Active channels", + "operations": [ + { + "httpMethod": "GET", + "summary": "List all active channels in Asterisk.", + "nickname": "list", + "responseClass": "List[Channel]" + }, + { + "httpMethod": "POST", + "summary": "Create a new channel (originate).", + "notes": "The new channel is created immediately and a snapshot of it returned. If a Stasis application is provided it will be automatically subscribed to the originated channel for further events and updates.", + "nickname": "originate", + "responseClass": "Channel", + "parameters": [ + { + "name": "endpoint", + "description": "Endpoint to call.", + "paramType": "query", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "extension", + "description": "The extension to dial after the endpoint answers. Mutually exclusive with 'app'.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "context", + "description": "The context to dial after the endpoint answers. If omitted, uses 'default'. Mutually exclusive with 'app'.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "priority", + "description": "The priority to dial after the endpoint answers. If omitted, uses 1. Mutually exclusive with 'app'.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "long" + }, + { + "name": "label", + "description": "The label to dial after the endpoint answers. Will supersede 'priority' if provided. Mutually exclusive with 'app'.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "app", + "description": "The application that is subscribed to the originated channel. When the channel is answered, it will be passed to this Stasis application. Mutually exclusive with 'context', 'extension', 'priority', and 'label'.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "appArgs", + "description": "The application arguments to pass to the Stasis application provided by 'app'. Mutually exclusive with 'context', 'extension', 'priority', and 'label'.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "callerId", + "description": "CallerID to use when dialing the endpoint or extension.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "timeout", + "description": "Timeout (in seconds) before giving up dialing, or -1 for no timeout.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "int", + "defaultValue": 30 + }, + { + "name": "variables", + "description": "The \"variables\" key in the body object holds variable key/value pairs to set on the channel on creation. Other keys in the body object are interpreted as query parameters. Ex. { \"endpoint\": \"SIP/Alice\", \"variables\": { \"CALLERID(name)\": \"Alice\" } }", + "paramType": "body", + "required": false, + "dataType": "containers", + "allowMultiple": false + }, + { + "name": "channelId", + "description": "The unique id to assign the channel on creation.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "otherChannelId", + "description": "The unique id to assign the second channel when using local channels.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "originator", + "description": "The unique id of the channel which is originating this one.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "formats", + "description": "The format name capability list to use if originator is not specified. Ex. \"ulaw,slin16\". Format names can be found with \"core show codecs\".", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 400, + "reason": "Invalid parameters for originating a channel." + }, + { + "code": 409, + "reason": "Channel with given unique ID already exists." + } + ] + } + ] + }, + { + "path": "/channels/create", + "description": "Create a channel and place it in a Stasis app, but do not dial the channel yet.", + "operations": [ + { + "httpMethod": "POST", + "summary": "Create channel.", + "nickname": "create", + "responseClass": "Channel", + "parameters": [ + { + "name": "endpoint", + "description": "Endpoint for channel communication", + "paramType": "query", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "app", + "description": "Stasis Application to place channel into", + "paramType": "query", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "appArgs", + "description": "The application arguments to pass to the Stasis application provided by 'app'. Mutually exclusive with 'context', 'extension', 'priority', and 'label'.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "channelId", + "description": "The unique id to assign the channel on creation.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "otherChannelId", + "description": "The unique id to assign the second channel when using local channels.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "originator", + "description": "Unique ID of the calling channel", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "formats", + "description": "The format name capability list to use if originator is not specified. Ex. \"ulaw,slin16\". Format names can be found with \"core show codecs\".", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "variables", + "description": "The \"variables\" key in the body object holds variable key/value pairs to set on the channel on creation. Other keys in the body object are interpreted as query parameters. Ex. { \"endpoint\": \"SIP/Alice\", \"variables\": { \"CALLERID(name)\": \"Alice\" } }", + "paramType": "body", + "required": false, + "dataType": "containers", + "allowMultiple": false + } + ], + "errorResponses": [ + { + "code": 409, + "reason": "Channel with given unique ID already exists." + } + ] + } + ] + }, + { + "path": "/channels/{channelId}", + "description": "Active channel", + "operations": [ + { + "httpMethod": "GET", + "summary": "Channel details.", + "nickname": "get", + "responseClass": "Channel", + "parameters": [ + { + "name": "channelId", + "description": "Channel's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Channel not found" + } + ] + }, + { + "httpMethod": "POST", + "summary": "Create a new channel (originate with id).", + "notes": "The new channel is created immediately and a snapshot of it returned. If a Stasis application is provided it will be automatically subscribed to the originated channel for further events and updates.", + "nickname": "originateWithId", + "responseClass": "Channel", + "parameters": [ + { + "name": "channelId", + "description": "The unique id to assign the channel on creation.", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "endpoint", + "description": "Endpoint to call.", + "paramType": "query", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "extension", + "description": "The extension to dial after the endpoint answers. Mutually exclusive with 'app'.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "context", + "description": "The context to dial after the endpoint answers. If omitted, uses 'default'. Mutually exclusive with 'app'.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "priority", + "description": "The priority to dial after the endpoint answers. If omitted, uses 1. Mutually exclusive with 'app'.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "long" + }, + { + "name": "label", + "description": "The label to dial after the endpoint answers. Will supersede 'priority' if provided. Mutually exclusive with 'app'.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "app", + "description": "The application that is subscribed to the originated channel. When the channel is answered, it will be passed to this Stasis application. Mutually exclusive with 'context', 'extension', 'priority', and 'label'.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "appArgs", + "description": "The application arguments to pass to the Stasis application provided by 'app'. Mutually exclusive with 'context', 'extension', 'priority', and 'label'.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "callerId", + "description": "CallerID to use when dialing the endpoint or extension.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "timeout", + "description": "Timeout (in seconds) before giving up dialing, or -1 for no timeout.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "int", + "defaultValue": 30 + }, + { + "name": "variables", + "description": "The \"variables\" key in the body object holds variable key/value pairs to set on the channel on creation. Other keys in the body object are interpreted as query parameters. Ex. { \"endpoint\": \"SIP/Alice\", \"variables\": { \"CALLERID(name)\": \"Alice\" } }", + "paramType": "body", + "required": false, + "dataType": "containers", + "allowMultiple": false + }, + { + "name": "otherChannelId", + "description": "The unique id to assign the second channel when using local channels.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "originator", + "description": "The unique id of the channel which is originating this one.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "formats", + "description": "The format name capability list to use if originator is not specified. Ex. \"ulaw,slin16\". Format names can be found with \"core show codecs\".", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 400, + "reason": "Invalid parameters for originating a channel." + }, + { + "code": 409, + "reason": "Channel with given unique ID already exists." + } + ] + + }, + { + "httpMethod": "DELETE", + "summary": "Delete (i.e. hangup) a channel.", + "nickname": "hangup", + "responseClass": "void", + "parameters": [ + { + "name": "channelId", + "description": "Channel's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "reason_code", + "description": "The reason code for hanging up the channel for detail use. Mutually exclusive with 'reason'. See detail hangup codes at here. https://wiki.asterisk.org/wiki/display/AST/Hangup+Cause+Mappings", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "reason", + "description": "Reason for hanging up the channel for simple use. Mutually exclusive with 'reason_code'.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string", + "allowableValues": { + "valueType": "LIST", + "values": [ + "normal", + "busy", + "congestion", + "no_answer", + "timeout", + "rejected", + "unallocated", + "normal_unspecified", + "number_incomplete", + "codec_mismatch", + "interworking", + "failure", + "answered_elsewhere" + ] + } + } + ], + "errorResponses": [ + { + "code": 400, + "reason": "Invalid reason for hangup provided" + }, + { + "code": 404, + "reason": "Channel not found" + } + ] + } + ] + }, + { + "path": "/channels/{channelId}/continue", + "description": "Exit application; continue execution in the dialplan", + "operations": [ + { + "httpMethod": "POST", + "summary": "Exit application; continue execution in the dialplan.", + "nickname": "continueInDialplan", + "responseClass": "void", + "parameters": [ + { + "name": "channelId", + "description": "Channel's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "context", + "description": "The context to continue to.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "extension", + "description": "The extension to continue to.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "priority", + "description": "The priority to continue to.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "int" + }, + { + "name": "label", + "description": "The label to continue to - will supersede 'priority' if both are provided.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Channel not found" + }, + { + "code": 409, + "reason": "Channel not in a Stasis application" + }, + { + "code": 412, + "reason": "Channel in invalid state" + } + ] + } + ] + }, + { + "path": "/channels/{channelId}/move", + "description": "Move the channel from one Stasis application to another.", + "operations": [ + { + "httpMethod": "POST", + "summary": "Move the channel from one Stasis application to another.", + "nickname": "move", + "responseClass": "void", + "parameters": [ + { + "name": "channelId", + "description": "Channel's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "app", + "description": "The channel will be passed to this Stasis application.", + "paramType": "query", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "appArgs", + "description": "The application arguments to pass to the Stasis application provided by 'app'.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": "404", + "reason": "Channel not found" + }, + { + "code": "409", + "reason": "Channel not in a Stasis application" + } + ] + } + ] + }, + { + "path": "/channels/{channelId}/redirect", + "description": "Inform the channel that it should redirect itself to a different location. Note that this will almost certainly cause the channel to exit the application.", + "operations": [ + { + "httpMethod": "POST", + "summary": "Redirect the channel to a different location.", + "nickname": "redirect", + "responseClass": "void", + "parameters": [ + { + "name": "channelId", + "description": "Channel's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "endpoint", + "description": "The endpoint to redirect the channel to", + "paramType": "query", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 400, + "reason": "Endpoint parameter not provided" + }, + { + "code": 404, + "reason": "Channel or endpoint not found" + }, + { + "code": 409, + "reason": "Channel not in a Stasis application" + }, + { + "code": 422, + "reason": "Endpoint is not the same type as the channel" + }, + { + "code": 412, + "reason": "Channel in invalid state" + } + ] + } + ] + }, + { + "path": "/channels/{channelId}/answer", + "description": "Answer a channel", + "operations": [ + { + "httpMethod": "POST", + "summary": "Answer a channel.", + "nickname": "answer", + "responseClass": "void", + "parameters": [ + { + "name": "channelId", + "description": "Channel's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Channel not found" + }, + { + "code": 409, + "reason": "Channel not in a Stasis application" + }, + { + "code": 412, + "reason": "Channel in invalid state" + } + ] + } + ] + }, + { + "path": "/channels/{channelId}/ring", + "description": "Send a ringing indication to a channel", + "operations": [ + { + "httpMethod": "POST", + "summary": "Indicate ringing to a channel.", + "nickname": "ring", + "responseClass": "void", + "parameters": [ + { + "name": "channelId", + "description": "Channel's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Channel not found" + }, + { + "code": 409, + "reason": "Channel not in a Stasis application" + }, + { + "code": 412, + "reason": "Channel in invalid state" + } + ] + }, + { + "httpMethod": "DELETE", + "summary": "Stop ringing indication on a channel if locally generated.", + "nickname": "ringStop", + "responseClass": "void", + "parameters": [ + { + "name": "channelId", + "description": "Channel's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Channel not found" + }, + { + "code": 409, + "reason": "Channel not in a Stasis application" + }, + { + "code": 412, + "reason": "Channel in invalid state" + } + ] + } + ] + }, + { + "path": "/channels/{channelId}/dtmf", + "description": "Send DTMF to a channel", + "operations": [ + { + "httpMethod": "POST", + "summary": "Send provided DTMF to a given channel.", + "nickname": "sendDTMF", + "responseClass": "void", + "parameters": [ + { + "name": "channelId", + "description": "Channel's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "dtmf", + "description": "DTMF To send.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "before", + "description": "Amount of time to wait before DTMF digits (specified in milliseconds) start.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "int", + "defaultValue": 0 + }, + { + "name": "between", + "description": "Amount of time in between DTMF digits (specified in milliseconds).", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "int", + "defaultValue": 100 + }, + { + "name": "duration", + "description": "Length of each DTMF digit (specified in milliseconds).", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "int", + "defaultValue": 100 + }, + { + "name": "after", + "description": "Amount of time to wait after DTMF digits (specified in milliseconds) end.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "int", + "defaultValue": 0 + } + ], + "errorResponses": [ + { + "code": 400, + "reason": "DTMF is required" + }, + { + "code": 404, + "reason": "Channel not found" + }, + { + "code": 409, + "reason": "Channel not in a Stasis application" + }, + { + "code": 412, + "reason": "Channel in invalid state" + } + ] + } + ] + }, + { + "path": "/channels/{channelId}/mute", + "description": "Mute a channel", + "operations": [ + { + "httpMethod": "POST", + "summary": "Mute a channel.", + "nickname": "mute", + "responseClass": "void", + "parameters": [ + { + "name": "channelId", + "description": "Channel's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "direction", + "description": "Direction in which to mute audio", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string", + "defaultValue": "both", + "allowableValues": { + "valueType": "LIST", + "values": [ + "both", + "in", + "out" + ] + } + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Channel not found" + }, + { + "code": 409, + "reason": "Channel not in a Stasis application" + }, + { + "code": 412, + "reason": "Channel in invalid state" + } + ] + }, + { + "httpMethod": "DELETE", + "summary": "Unmute a channel.", + "nickname": "unmute", + "responseClass": "void", + "parameters": [ + { + "name": "channelId", + "description": "Channel's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "direction", + "description": "Direction in which to unmute audio", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string", + "defaultValue": "both", + "allowableValues": { + "valueType": "LIST", + "values": [ + "both", + "in", + "out" + ] + } + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Channel not found" + }, + { + "code": 409, + "reason": "Channel not in a Stasis application" + }, + { + "code": 412, + "reason": "Channel in invalid state" + } + ] + } + ] + }, + { + "path": "/channels/{channelId}/hold", + "description": "Put a channel on hold", + "operations": [ + { + "httpMethod": "POST", + "summary": "Hold a channel.", + "nickname": "hold", + "responseClass": "void", + "parameters": [ + { + "name": "channelId", + "description": "Channel's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Channel not found" + }, + { + "code": 409, + "reason": "Channel not in a Stasis application" + }, + { + "code": 412, + "reason": "Channel in invalid state" + } + ] + }, + { + "httpMethod": "DELETE", + "summary": "Remove a channel from hold.", + "nickname": "unhold", + "responseClass": "void", + "parameters": [ + { + "name": "channelId", + "description": "Channel's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Channel not found" + }, + { + "code": 409, + "reason": "Channel not in a Stasis application" + }, + { + "code": 412, + "reason": "Channel in invalid state" + } + ] + } + ] + }, + { + "path": "/channels/{channelId}/moh", + "description": "Play music on hold to a channel", + "operations": [ + { + "httpMethod": "POST", + "summary": "Play music on hold to a channel.", + "notes": "Using media operations such as /play on a channel playing MOH in this manner will suspend MOH without resuming automatically. If continuing music on hold is desired, the stasis application must reinitiate music on hold.", + "nickname": "startMoh", + "responseClass": "void", + "parameters": [ + { + "name": "channelId", + "description": "Channel's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "mohClass", + "description": "Music on hold class to use", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Channel not found" + }, + { + "code": 409, + "reason": "Channel not in a Stasis application" + }, + { + "code": 412, + "reason": "Channel in invalid state" + } + ] + }, + { + "httpMethod": "DELETE", + "summary": "Stop playing music on hold to a channel.", + "nickname": "stopMoh", + "responseClass": "void", + "parameters": [ + { + "name": "channelId", + "description": "Channel's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Channel not found" + }, + { + "code": 409, + "reason": "Channel not in a Stasis application" + }, + { + "code": 412, + "reason": "Channel in invalid state" + } + ] + } + ] + }, + { + "path": "/channels/{channelId}/silence", + "description": "Play silence to a channel", + "operations": [ + { + "httpMethod": "POST", + "summary": "Play silence to a channel.", + "notes": "Using media operations such as /play on a channel playing silence in this manner will suspend silence without resuming automatically.", + "nickname": "startSilence", + "responseClass": "void", + "parameters": [ + { + "name": "channelId", + "description": "Channel's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Channel not found" + }, + { + "code": 409, + "reason": "Channel not in a Stasis application" + }, + { + "code": 412, + "reason": "Channel in invalid state" + } + ] + }, + { + "httpMethod": "DELETE", + "summary": "Stop playing silence to a channel.", + "nickname": "stopSilence", + "responseClass": "void", + "parameters": [ + { + "name": "channelId", + "description": "Channel's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Channel not found" + }, + { + "code": 409, + "reason": "Channel not in a Stasis application" + }, + { + "code": 412, + "reason": "Channel in invalid state" + } + ] + } + ] + }, + { + "path": "/channels/{channelId}/play", + "description": "Play media to a channel", + "operations": [ + { + "httpMethod": "POST", + "summary": "Start playback of media.", + "notes": "The media URI may be any of a number of URI's. Currently sound:, recording:, number:, digits:, characters:, and tone: URI's are supported. This operation creates a playback resource that can be used to control the playback of media (pause, rewind, fast forward, etc.)", + "nickname": "play", + "responseClass": "Playback", + "parameters": [ + { + "name": "channelId", + "description": "Channel's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "media", + "description": "Media URIs to play.", + "paramType": "query", + "required": true, + "allowMultiple": true, + "dataType": "string" + }, + { + "name": "lang", + "description": "For sounds, selects language for sound.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "offsetms", + "description": "Number of milliseconds to skip before playing. Only applies to the first URI if multiple media URIs are specified.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "int" + }, + { + "name": "skipms", + "description": "Number of milliseconds to skip for forward/reverse operations.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "int", + "defaultValue": 3000 + }, + { + "name": "playbackId", + "description": "Playback ID.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Channel not found" + }, + { + "code": 409, + "reason": "Channel not in a Stasis application" + }, + { + "code": 412, + "reason": "Channel in invalid state" + } + ] + } + ] + }, + { + "path": "/channels/{channelId}/play/{playbackId}", + "description": "Play media to a channel", + "operations": [ + { + "httpMethod": "POST", + "summary": "Start playback of media and specify the playbackId.", + "notes": "The media URI may be any of a number of URI's. Currently sound:, recording:, number:, digits:, characters:, and tone: URI's are supported. This operation creates a playback resource that can be used to control the playback of media (pause, rewind, fast forward, etc.)", + "nickname": "playWithId", + "responseClass": "Playback", + "parameters": [ + { + "name": "channelId", + "description": "Channel's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "playbackId", + "description": "Playback ID.", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "media", + "description": "Media URIs to play.", + "paramType": "query", + "required": true, + "allowMultiple": true, + "dataType": "string" + }, + { + "name": "lang", + "description": "For sounds, selects language for sound.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "offsetms", + "description": "Number of milliseconds to skip before playing. Only applies to the first URI if multiple media URIs are specified.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "int" + }, + { + "name": "skipms", + "description": "Number of milliseconds to skip for forward/reverse operations.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "int", + "defaultValue": 3000 + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Channel not found" + }, + { + "code": 409, + "reason": "Channel not in a Stasis application" + }, + { + "code": 412, + "reason": "Channel in invalid state" + } + ] + } + ] + }, + { + "path": "/channels/{channelId}/record", + "description": "Record audio from a channel", + "operations": [ + { + "httpMethod": "POST", + "summary": "Start a recording.", + "notes": "Record audio from a channel. Note that this will not capture audio sent to the channel. The bridge itself has a record feature if that's what you want.", + "nickname": "record", + "responseClass": "LiveRecording", + "parameters": [ + { + "name": "channelId", + "description": "Channel's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "name", + "description": "Recording's filename", + "paramType": "query", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "format", + "description": "Format to encode audio in", + "paramType": "query", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "maxDurationSeconds", + "description": "Maximum duration of the recording, in seconds. 0 for no limit", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "int", + "defaultValue": 0, + "allowableValues": { + "valueType": "RANGE", + "min": 0 + } + }, + { + "name": "maxSilenceSeconds", + "description": "Maximum duration of silence, in seconds. 0 for no limit", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "int", + "defaultValue": 0, + "allowableValues": { + "valueType": "RANGE", + "min": 0 + } + }, + { + "name": "ifExists", + "description": "Action to take if a recording with the same name already exists.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string", + "defaultValue": "fail", + "allowableValues": { + "valueType": "LIST", + "values": [ + "fail", + "overwrite", + "append" + ] + } + }, + { + "name": "beep", + "description": "Play beep when recording begins", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "boolean", + "defaultValue": false + }, + { + "name": "terminateOn", + "description": "DTMF input to terminate recording", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string", + "defaultValue": "none", + "allowableValues": { + "valueType": "LIST", + "values": [ + "none", + "any", + "*", + "#" + ] + } + } + ], + "errorResponses": [ + { + "code": 400, + "reason": "Invalid parameters" + }, + { + "code": 404, + "reason": "Channel not found" + }, + { + "code": 409, + "reason": "Channel is not in a Stasis application; the channel is currently bridged with other hcannels; A recording with the same name already exists on the system and can not be overwritten because it is in progress or ifExists=fail" + }, + { + "code": 422, + "reason": "The format specified is unknown on this system" + } + ] + } + ] + }, + { + "path": "/channels/{channelId}/variable", + "description": "Variables on a channel", + "operations": [ + { + "httpMethod": "GET", + "summary": "Get the value of a channel variable or function.", + "nickname": "getChannelVar", + "responseClass": "Variable", + "parameters": [ + { + "name": "channelId", + "description": "Channel's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "variable", + "description": "The channel variable or function to get", + "paramType": "query", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 400, + "reason": "Missing variable parameter." + }, + { + "code": 404, + "reason": "Channel or variable not found" + }, + { + "code": 409, + "reason": "Channel not in a Stasis application" + } + ] + }, + { + "httpMethod": "POST", + "summary": "Set the value of a channel variable or function.", + "nickname": "setChannelVar", + "responseClass": "void", + "parameters": [ + { + "name": "channelId", + "description": "Channel's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "variable", + "description": "The channel variable or function to set", + "paramType": "query", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "value", + "description": "The value to set the variable to", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 400, + "reason": "Missing variable parameter." + }, + { + "code": 404, + "reason": "Channel not found" + }, + { + "code": 409, + "reason": "Channel not in a Stasis application" + } + ] + } + ] + }, + { + "path": "/channels/{channelId}/snoop", + "description": "Snoop (spy/whisper) on a channel", + "operations": [ + { + "httpMethod": "POST", + "summary": "Start snooping.", + "notes": "Snoop (spy/whisper) on a specific channel.", + "nickname": "snoopChannel", + "responseClass": "Channel", + "parameters": [ + { + "name": "channelId", + "description": "Channel's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "spy", + "description": "Direction of audio to spy on", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string", + "defaultValue": "none", + "allowableValues": { + "valueType": "LIST", + "values": [ + "none", + "both", + "out", + "in" + ] + } + }, + { + "name": "whisper", + "description": "Direction of audio to whisper into", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string", + "defaultValue": "none", + "allowableValues": { + "valueType": "LIST", + "values": [ + "none", + "both", + "out", + "in" + ] + } + }, + { + "name": "app", + "description": "Application the snooping channel is placed into", + "paramType": "query", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "appArgs", + "description": "The application arguments to pass to the Stasis application", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "snoopId", + "description": "Unique ID to assign to snooping channel", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 400, + "reason": "Invalid parameters" + }, + { + "code": 404, + "reason": "Channel not found" + } + ] + } + ] + }, + { + "path": "/channels/{channelId}/snoop/{snoopId}", + "description": "Snoop (spy/whisper) on a channel", + "operations": [ + { + "httpMethod": "POST", + "summary": "Start snooping.", + "notes": "Snoop (spy/whisper) on a specific channel.", + "nickname": "snoopChannelWithId", + "responseClass": "Channel", + "parameters": [ + { + "name": "channelId", + "description": "Channel's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "snoopId", + "description": "Unique ID to assign to snooping channel", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "spy", + "description": "Direction of audio to spy on", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string", + "defaultValue": "none", + "allowableValues": { + "valueType": "LIST", + "values": [ + "none", + "both", + "out", + "in" + ] + } + }, + { + "name": "whisper", + "description": "Direction of audio to whisper into", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string", + "defaultValue": "none", + "allowableValues": { + "valueType": "LIST", + "values": [ + "none", + "both", + "out", + "in" + ] + } + }, + { + "name": "app", + "description": "Application the snooping channel is placed into", + "paramType": "query", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "appArgs", + "description": "The application arguments to pass to the Stasis application", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 400, + "reason": "Invalid parameters" + }, + { + "code": 404, + "reason": "Channel not found" + } + ] + } + ] + }, + { + "path": "/channels/{channelId}/dial", + "description": "Dial a channel", + "operations": [ + { + "httpMethod": "POST", + "summary": "Dial a created channel.", + "nickname": "dial", + "responseClass": "void", + "parameters": [ + { + "name": "channelId", + "description": "Channel's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "caller", + "description": "Channel ID of caller", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "timeout", + "description": "Dial timeout", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "int", + "defaultValue": 0, + "allowableValues": { + "valueType": "RANGE", + "min": 0 + } + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Channel cannot be found." + }, + { + "code": 409, + "reason": "Channel cannot be dialed." + } + ] + } + ] + }, + { + "path": "/channels/{channelId}/rtp_statistics", + "description": "Get RTP statistics information for RTP on a channel", + "operations": [ + { + "httpMethod": "GET", + "summary": "RTP stats on a channel.", + "nickname": "rtpstatistics", + "responseClass": "RTPstat", + "parameters": [ + { + "name": "channelId", + "description": "Channel's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Channel cannot be found." + } + ] + } + ] + }, + { + "path": "/channels/externalMedia", + "description": "Create a channel to an External Media source/sink.", + "operations": [ + { + "httpMethod": "POST", + "summary": "Start an External Media session.", + "notes": "Create a channel to an External Media source/sink.", + "nickname": "externalMedia", + "responseClass": "Channel", + "parameters": [ + { + "name": "channelId", + "description": "The unique id to assign the channel on creation.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "app", + "description": "Stasis Application to place channel into", + "paramType": "query", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "variables", + "description": "The \"variables\" key in the body object holds variable key/value pairs to set on the channel on creation. Other keys in the body object are interpreted as query parameters. Ex. { \"endpoint\": \"SIP/Alice\", \"variables\": { \"CALLERID(name)\": \"Alice\" } }", + "paramType": "body", + "required": false, + "dataType": "containers", + "allowMultiple": false + }, + { + "name": "external_host", + "description": "Hostname/ip:port of external host", + "paramType": "query", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "encapsulation", + "description": "Payload encapsulation protocol", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string", + "defaultValue": "rtp", + "allowableValues": { + "valueType": "LIST", + "values": [ + "rtp", + "audiosocket" + ] + } + }, + { + "name": "transport", + "description": "Transport protocol", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string", + "defaultValue": "udp", + "allowableValues": { + "valueType": "LIST", + "values": [ + "udp", + "tcp" + ] + } + }, + { + "name": "connection_type", + "description": "Connection type (client/server)", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string", + "defaultValue": "client", + "allowableValues": { + "valueType": "LIST", + "values": [ + "client" + ] + } + }, + { + "name": "format", + "description": "Format to encode audio in", + "paramType": "query", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "direction", + "description": "External media direction", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string", + "defaultValue": "both", + "allowableValues": { + "valueType": "LIST", + "values": [ + "both" + ] + } + }, + { + "name": "data", + "description": "An arbitrary data field", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 400, + "reason": "Invalid parameters" + }, + { + "code": 409, + "reason": "Channel is not in a Stasis application; Channel is already bridged" + } + ] + } + ] + } + ], + "models": { + "Dialed": { + "id": "Dialed", + "description": "Dialed channel information.", + "properties": {} + }, + "DialplanCEP": { + "id": "DialplanCEP", + "description": "Dialplan location (context/extension/priority)", + "properties": { + "context": { + "required": true, + "type": "string", + "description": "Context in the dialplan" + }, + "exten": { + "required": true, + "type": "string", + "description": "Extension in the dialplan" + }, + "priority": { + "required": true, + "type": "long", + "description": "Priority in the dialplan" + }, + "app_name": { + "required": true, + "type": "string", + "description": "Name of current dialplan application" + }, + "app_data": { + "required": true, + "type": "string", + "description": "Parameter of current dialplan application" + } + } + }, + "CallerID": { + "id": "CallerID", + "description": "Caller identification", + "properties": { + "name": { + "required": true, + "type": "string" + }, + "number": { + "required": true, + "type": "string" + } + } + }, + "RTPstat": { + "id": "RTPstat", + "description": "A statistics of a RTP.", + "properties": { + "txcount": { + "required": true, + "type": "int", + "description": "Number of packets transmitted." + }, + "rxcount": { + "required": true, + "type": "int", + "description": "Number of packets received." + }, + "txjitter": { + "required": false, + "type": "double", + "description": "Jitter on transmitted packets." + }, + "rxjitter": { + "required": false, + "type": "double", + "description": "Jitter on received packets." + }, + "remote_maxjitter": { + "required": false, + "type": "double", + "description": "Maximum jitter on remote side." + }, + "remote_minjitter": { + "required": false, + "type": "double", + "description": "Minimum jitter on remote side." + }, + "remote_normdevjitter": { + "required": false, + "type": "double", + "description": "Average jitter on remote side." + }, + "remote_stdevjitter": { + "required": false, + "type": "double", + "description": "Standard deviation jitter on remote side." + }, + "local_maxjitter": { + "required": false, + "type": "double", + "description": "Maximum jitter on local side." + }, + "local_minjitter": { + "required": false, + "type": "double", + "description": "Minimum jitter on local side." + }, + "local_normdevjitter": { + "required": false, + "type": "double", + "description": "Average jitter on local side." + }, + "local_stdevjitter": { + "required": false, + "type": "double", + "description": "Standard deviation jitter on local side." + }, + "txploss": { + "required": true, + "type": "int", + "description": "Number of transmitted packets lost." + }, + "rxploss": { + "required": true, + "type": "int", + "description": "Number of received packets lost." + }, + "remote_maxrxploss": { + "required": false, + "type": "double", + "description": "Maximum number of packets lost on remote side." + }, + "remote_minrxploss": { + "required": false, + "type": "double", + "description": "Minimum number of packets lost on remote side." + }, + "remote_normdevrxploss": { + "required": false, + "type": "double", + "description": "Average number of packets lost on remote side." + }, + "remote_stdevrxploss": { + "required": false, + "type": "double", + "description": "Standard deviation packets lost on remote side." + }, + "local_maxrxploss": { + "required": false, + "type": "double", + "description": "Maximum number of packets lost on local side." + }, + "local_minrxploss": { + "required": false, + "type": "double", + "description": "Minimum number of packets lost on local side." + }, + "local_normdevrxploss": { + "required": false, + "type": "double", + "description": "Average number of packets lost on local side." + }, + "local_stdevrxploss": { + "required": false, + "type": "double", + "description": "Standard deviation packets lost on local side." + }, + "rtt": { + "required": false, + "type": "double", + "description": "Total round trip time." + }, + "maxrtt": { + "required": false, + "type": "double", + "description": "Maximum round trip time." + }, + "minrtt": { + "required": false, + "type": "double", + "description": "Minimum round trip time." + }, + "normdevrtt": { + "required": false, + "type": "double", + "description": "Average round trip time." + }, + "stdevrtt": { + "required": false, + "type": "double", + "description": "Standard deviation round trip time." + }, + "local_ssrc": { + "required": true, + "type": "int", + "description": "Our SSRC." + }, + "remote_ssrc": { + "required": true, + "type": "int", + "description": "Their SSRC." + }, + "txoctetcount": { + "required": true, + "type": "int", + "description": "Number of octets transmitted." + }, + "rxoctetcount": { + "required": true, + "type": "int", + "description": "Number of octets received." + }, + "channel_uniqueid": { + "required": true, + "type": "string", + "description": "The Asterisk channel's unique ID that owns this instance." + } + } + }, + "Channel": { + "id": "Channel", + "description": "A specific communication connection between Asterisk and an Endpoint.", + "properties": { + "id": { + "required": true, + "type": "string", + "description": "Unique identifier of the channel.\n\nThis is the same as the Uniqueid field in AMI." + }, + "protocol_id": { + "required": true, + "type": "string", + "description": "Protocol id from underlying channel driver (i.e. Call-ID for chan_sip/chan_pjsip; will be empty if not applicable or not implemented by driver)." + }, + "name": { + "required": true, + "type": "string", + "description": "Name of the channel (i.e. SIP/foo-0000a7e3)" + }, + "state": { + "required": true, + "type": "string", + "allowableValues": { + "valueType": "LIST", + "values": [ + "Down", + "Rsrved", + "OffHook", + "Dialing", + "Ring", + "Ringing", + "Up", + "Busy", + "Dialing Offhook", + "Pre-ring", + "Unknown" + ] + } + }, + "caller": { + "required": true, + "type": "CallerID" + }, + "connected": { + "required": true, + "type": "CallerID" + }, + "accountcode": { + "required": true, + "type": "string" + }, + "dialplan": { + "required": true, + "type": "DialplanCEP", + "description": "Current location in the dialplan" + }, + "creationtime": { + "required": true, + "type": "Date", + "description": "Timestamp when channel was created" + }, + "language": { + "required": true, + "type": "string", + "description": "The default spoken language" + }, + "channelvars": { + "required": false, + "type": "object", + "description": "Channel variables" + } + } + } + } +} diff --git a/codegen/src/main/resources/codegen-data/ari_6_0_1/deviceStates.json b/codegen/src/main/resources/codegen-data/ari_6_0_1/deviceStates.json new file mode 100644 index 00000000..bd389355 --- /dev/null +++ b/codegen/src/main/resources/codegen-data/ari_6_0_1/deviceStates.json @@ -0,0 +1,154 @@ +{ + "_copyright": "Copyright (C) 2012 - 2013, Digium, Inc.", + "_author": "Kevin Harwell ", + "_svn_revision": "$Revision$", + "apiVersion": "2.0.0", + "swaggerVersion": "1.1", + "basePath": "http://localhost:8088/ari", + "resourcePath": "/api-docs/deviceStates.{format}", + "requiresModules": [ + "res_stasis_device_state" + ], + "apis": [ + { + "path": "/deviceStates", + "description": "Device states", + "operations": [ + { + "httpMethod": "GET", + "summary": "List all ARI controlled device states.", + "nickname": "list", + "responseClass": "List[DeviceState]" + } + ] + }, + { + "path": "/deviceStates/{deviceName}", + "description": "Device state", + "operations": [ + { + "httpMethod": "GET", + "summary": "Retrieve the current state of a device.", + "nickname": "get", + "responseClass": "DeviceState", + "parameters": [ + { + "name": "deviceName", + "description": "Name of the device", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ] + }, + { + "httpMethod": "PUT", + "summary": "Change the state of a device controlled by ARI. (Note - implicitly creates the device state).", + "nickname": "update", + "responseClass": "void", + "parameters": [ + { + "name": "deviceName", + "description": "Name of the device", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "deviceState", + "description": "Device state value", + "paramType": "query", + "required": true, + "allowMultiple": false, + "dataType": "string", + "allowableValues": { + "valueType": "LIST", + "values": [ + "NOT_INUSE", + "INUSE", + "BUSY", + "INVALID", + "UNAVAILABLE", + "RINGING", + "RINGINUSE", + "ONHOLD" + ] + } + + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Device name is missing" + }, + { + "code": 409, + "reason": "Uncontrolled device specified" + } + ] + }, + { + "httpMethod": "DELETE", + "summary": "Destroy a device-state controlled by ARI.", + "nickname": "delete", + "responseClass": "void", + "parameters": [ + { + "name": "deviceName", + "description": "Name of the device", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Device name is missing" + }, + { + "code": 409, + "reason": "Uncontrolled device specified" + } + ] + } + ] + } + ], + "models": { + "DeviceState": { + "id": "DeviceState", + "description": "Represents the state of a device.", + "properties": { + "name": { + "type": "string", + "description": "Name of the device.", + "required": true + }, + "state": { + "type": "string", + "description": "Device's state", + "required": true, + "allowableValues": { + "valueType": "LIST", + "values": [ + "UNKNOWN", + "NOT_INUSE", + "INUSE", + "BUSY", + "INVALID", + "UNAVAILABLE", + "RINGING", + "RINGINUSE", + "ONHOLD" + ] + } + } + } + } + } +} diff --git a/codegen/src/main/resources/codegen-data/ari_6_0_1/endpoints.json b/codegen/src/main/resources/codegen-data/ari_6_0_1/endpoints.json new file mode 100644 index 00000000..1f77d370 --- /dev/null +++ b/codegen/src/main/resources/codegen-data/ari_6_0_1/endpoints.json @@ -0,0 +1,263 @@ +{ + "_copyright": "Copyright (C) 2012 - 2013, Digium, Inc.", + "_author": "David M. Lee, II ", + "_svn_revision": "$Revision$", + "apiVersion": "2.0.0", + "swaggerVersion": "1.1", + "basePath": "http://localhost:8088/ari", + "resourcePath": "/api-docs/endpoints.{format}", + "apis": [ + { + "path": "/endpoints", + "description": "Asterisk endpoints", + "operations": [ + { + "httpMethod": "GET", + "summary": "List all endpoints.", + "nickname": "list", + "responseClass": "List[Endpoint]" + } + ] + }, + { + "path": "/endpoints/sendMessage", + "description": "Send a message to some technology URI or endpoint.", + "operations": [ + { + "httpMethod": "PUT", + "summary": "Send a message to some technology URI or endpoint.", + "nickname": "sendMessage", + "responseClass": "void", + "parameters": [ + { + "name": "to", + "description": "The endpoint resource or technology specific URI to send the message to. Valid resources are sip, pjsip, and xmpp.", + "paramType": "query", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "from", + "description": "The endpoint resource or technology specific identity to send this message from. Valid resources are sip, pjsip, and xmpp.", + "paramType": "query", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "body", + "description": "The body of the message", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "variables", + "descriptioni": "The \"variables\" key in the body object holds technology specific key/value pairs to append to the message. These can be interpreted and used by the various resource types; for example, pjsip and sip resource types will add the key/value pairs as SIP headers,", + "paramType": "body", + "required": false, + "dataType": "containers", + "allowMultiple": false + } + ], + "errorResponses": [ + { + "code": 400, + "reason": "Invalid parameters for sending a message." + }, + { + "code": 404, + "reason": "Endpoint not found" + } + ] + } + ] + }, + { + "path": "/endpoints/{tech}", + "description": "Asterisk endpoints", + "operations": [ + { + "httpMethod": "GET", + "summary": "List available endoints for a given endpoint technology.", + "nickname": "listByTech", + "responseClass": "List[Endpoint]", + "parameters": [ + { + "name": "tech", + "description": "Technology of the endpoints (sip,iax2,...)", + "paramType": "path", + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Endpoints not found" + } + ] + } + ] + }, + { + "path": "/endpoints/{tech}/{resource}", + "description": "Single endpoint", + "operations": [ + { + "httpMethod": "GET", + "summary": "Details for an endpoint.", + "nickname": "get", + "responseClass": "Endpoint", + "parameters": [ + { + "name": "tech", + "description": "Technology of the endpoint", + "paramType": "path", + "dataType": "string" + }, + { + "name": "resource", + "description": "ID of the endpoint", + "paramType": "path", + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 400, + "reason": "Invalid parameters for sending a message." + }, + { + "code": 404, + "reason": "Endpoints not found" + } + ] + } + ] + }, + { + "path": "/endpoints/{tech}/{resource}/sendMessage", + "description": "Send a message to some endpoint in a technology.", + "operations": [ + { + "httpMethod": "PUT", + "summary": "Send a message to some endpoint in a technology.", + "nickname": "sendMessageToEndpoint", + "responseClass": "void", + "parameters": [ + { + "name": "tech", + "description": "Technology of the endpoint", + "paramType": "path", + "dataType": "string" + }, + { + "name": "resource", + "description": "ID of the endpoint", + "paramType": "path", + "dataType": "string" + }, + { + "name": "from", + "description": "The endpoint resource or technology specific identity to send this message from. Valid resources are sip, pjsip, and xmpp.", + "paramType": "query", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "body", + "description": "The body of the message", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "variables", + "descriptioni": "The \"variables\" key in the body object holds technology specific key/value pairs to append to the message. These can be interpreted and used by the various resource types; for example, pjsip and sip resource types will add the key/value pairs as SIP headers,", + "paramType": "body", + "required": false, + "dataType": "containers", + "allowMultiple": false + } + ], + "errorResponses": [ + { + "code": 400, + "reason": "Invalid parameters for sending a message." + }, + { + "code": 404, + "reason": "Endpoint not found" + } + ] + } + ] + } + ], + "models": { + "Endpoint": { + "id": "Endpoint", + "description": "An external device that may offer/accept calls to/from Asterisk.\n\nUnlike most resources, which have a single unique identifier, an endpoint is uniquely identified by the technology/resource pair.", + "properties": { + "technology": { + "type": "string", + "description": "Technology of the endpoint", + "required": true + }, + "resource": { + "type": "string", + "description": "Identifier of the endpoint, specific to the given technology.", + "required": true + }, + "state": { + "type": "string", + "description": "Endpoint's state", + "required": false, + "allowableValues": { + "valueType": "LIST", + "values": [ + "unknown", + "offline", + "online" + ] + } + }, + "channel_ids": { + "type": "List[string]", + "description": "Id's of channels associated with this endpoint", + "required": true + } + } + }, + "TextMessage": { + "id": "TextMessage", + "description": "A text message.", + "properties": { + "from": { + "type": "string", + "description": "A technology specific URI specifying the source of the message. For sip and pjsip technologies, any SIP URI can be specified. For xmpp, the URI must correspond to the client connection being used to send the message.", + "required": true + }, + "to": { + "type": "string", + "description": "A technology specific URI specifying the destination of the message. Valid technologies include sip, pjsip, and xmp. The destination of a message should be an endpoint.", + "required": true + }, + "body": { + "type": "string", + "description": "The text of the message.", + "required": true + }, + "variables": { + "type": "object", + "description": "Technology specific key/value pairs (JSON object) associated with the message.", + "required": false + } + } + } + } +} diff --git a/codegen/src/main/resources/codegen-data/ari_6_0_1/events.json b/codegen/src/main/resources/codegen-data/ari_6_0_1/events.json new file mode 100644 index 00000000..c9822f6c --- /dev/null +++ b/codegen/src/main/resources/codegen-data/ari_6_0_1/events.json @@ -0,0 +1,918 @@ +{ + "_copyright": "Copyright (C) 2012 - 2013, Digium, Inc.", + "_author": "David M. Lee, II ", + "_svn_revision": "$Revision$", + "apiVersion": "2.0.0", + "swaggerVersion": "1.2", + "basePath": "http://localhost:8088/ari", + "resourcePath": "/api-docs/events.{format}", + "requiresModules": [ + "res_http_websocket" + ], + "apis": [ + { + "path": "/events", + "description": "Events from Asterisk to applications", + "operations": [ + { + "httpMethod": "GET", + "upgrade": "websocket", + "websocketProtocol": "ari", + "summary": "WebSocket connection for events.", + "nickname": "eventWebsocket", + "responseClass": "Message", + "parameters": [ + { + "name": "app", + "description": "Applications to subscribe to.", + "paramType": "query", + "required": true, + "allowMultiple": true, + "dataType": "string" + }, + { + "name": "subscribeAll", + "description": "Subscribe to all Asterisk events. If provided, the applications listed will be subscribed to all events, effectively disabling the application specific subscriptions. Default is 'false'.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "boolean" + } + ] + } + ] + }, + { + "path": "/events/user/{eventName}", + "description": "Stasis application user events", + "operations": [ + { + "httpMethod": "POST", + "summary": "Generate a user event.", + "nickname": "userEvent", + "responseClass": "void", + "parameters": [ + { + "name": "eventName", + "description": "Event name", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "application", + "description": "The name of the application that will receive this event", + "paramType": "query", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "source", + "description": "URI for event source (channel:{channelId}, bridge:{bridgeId}, endpoint:{tech}/{resource}, deviceState:{deviceName}", + "paramType": "query", + "required": false, + "allowMultiple": true, + "dataType": "string" + }, + { + "name": "variables", + "description": "The \"variables\" key in the body object holds custom key/value pairs to add to the user event. Ex. { \"variables\": { \"key\": \"value\" } }", + "paramType": "body", + "required": false, + "allowMultiple": false, + "dataType": "containers" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Application does not exist." + }, + { + "code": 422, + "reason": "Event source not found." + }, + { + "code": 400, + "reason": "Invalid even tsource URI or userevent data." + } + ] + } + ] + } + ], + "models": { + "Message": { + "id": "Message", + "description": "Base type for errors and events", + "discriminator": "type", + "properties": { + "type": { + "type": "string", + "required": true, + "description": "Indicates the type of this message." + }, + "asterisk_id": { + "type": "string", + "required": false, + "description": "The unique ID for the Asterisk instance that raised this event." + } + }, + "subTypes": [ + "MissingParams", + "Event" + ] + }, + "MissingParams": { + "id": "MissingParams", + "description": "Error event sent when required params are missing.", + "properties": { + "params": { + "required": true, + "type": "List[string]", + "description": "A list of the missing parameters" + } + } + }, + "Event": { + "id": "Event", + "description": "Base type for asynchronous events from Asterisk.", + "properties": { + "application": { + "type": "string", + "description": "Name of the application receiving the event.", + "required": true + }, + "timestamp": { + "type": "Date", + "description": "Time at which this event was created.", + "required": true + } + }, + "subTypes": [ + "DeviceStateChanged", + "PlaybackStarted", + "PlaybackContinuing", + "PlaybackFinished", + "RecordingStarted", + "RecordingFinished", + "RecordingFailed", + "ApplicationMoveFailed", + "ApplicationReplaced", + "BridgeCreated", + "BridgeDestroyed", + "BridgeMerged", + "BridgeBlindTransfer", + "BridgeAttendedTransfer", + "BridgeVideoSourceChanged", + "ChannelCreated", + "ChannelDestroyed", + "ChannelEnteredBridge", + "ChannelLeftBridge", + "ChannelStateChange", + "ChannelDtmfReceived", + "ChannelDialplan", + "ChannelCallerId", + "ChannelUserevent", + "ChannelHangupRequest", + "ChannelVarset", + "ChannelTalkingStarted", + "ChannelTalkingFinished", + "ChannelHold", + "ChannelUnhold", + "ContactStatusChange", + "EndpointStateChange", + "Dial", + "StasisEnd", + "StasisStart", + "TextMessageReceived", + "ChannelConnectedLine", + "PeerStatusChange" + ] + }, + "ContactInfo": { + "id": "ContactInfo", + "description": "Detailed information about a contact on an endpoint.", + "properties": { + "uri": { + "type": "string", + "description": "The location of the contact.", + "required": true + }, + "contact_status": { + "type": "string", + "description": "The current status of the contact.", + "required": true, + "allowableValues": { + "valueType": "LIST", + "values": [ + "Unreachable", + "Reachable", + "Unknown", + "NonQualified", + "Removed" + ] + } + }, + "aor": { + "type": "string", + "description": "The Address of Record this contact belongs to.", + "required": true + }, + "roundtrip_usec": { + "type": "string", + "description": "Current round trip time, in microseconds, for the contact.", + "required": false + } + } + }, + "Peer": { + "id": "Peer", + "description": "Detailed information about a remote peer that communicates with Asterisk.", + "properties": { + "peer_status": { + "type": "string", + "description": "The current state of the peer. Note that the values of the status are dependent on the underlying peer technology.", + "required": true + }, + "cause": { + "type": "string", + "description": "An optional reason associated with the change in peer_status.", + "required": false + }, + "address": { + "type": "string", + "description": "The IP address of the peer.", + "required": false + }, + "port": { + "type": "string", + "description": "The port of the peer.", + "required": false + }, + "time": { + "type": "string", + "description": "The last known time the peer was contacted.", + "required": false + } + } + }, + "DeviceStateChanged": { + "id": "DeviceStateChanged", + "description": "Notification that a device state has changed.", + "properties": { + "device_state": { + "type": "DeviceState", + "description": "Device state object", + "required": true + } + } + }, + "PlaybackStarted": { + "id": "PlaybackStarted", + "description": "Event showing the start of a media playback operation.", + "properties": { + "playback": { + "type": "Playback", + "description": "Playback control object", + "required": true + } + } + }, + "PlaybackContinuing": { + "id": "PlaybackContinuing", + "description": "Event showing the continuation of a media playback operation from one media URI to the next in the list.", + "properties": { + "playback": { + "type": "Playback", + "description": "Playback control object", + "required": true + } + } + }, + "PlaybackFinished": { + "id": "PlaybackFinished", + "description": "Event showing the completion of a media playback operation.", + "properties": { + "playback": { + "type": "Playback", + "description": "Playback control object", + "required": true + } + } + }, + "RecordingStarted": { + "id": "RecordingStarted", + "description": "Event showing the start of a recording operation.", + "properties": { + "recording": { + "type": "LiveRecording", + "description": "Recording control object", + "required": true + } + } + }, + "RecordingFinished": { + "id": "RecordingFinished", + "description": "Event showing the completion of a recording operation.", + "properties": { + "recording": { + "type": "LiveRecording", + "description": "Recording control object", + "required": true + } + } + }, + "RecordingFailed": { + "id": "RecordingFailed", + "description": "Event showing failure of a recording operation.", + "properties": { + "recording": { + "type": "LiveRecording", + "description": "Recording control object", + "required": true + } + } + }, + "ApplicationMoveFailed": { + "id": "ApplicationMoveFailed", + "description": "Notification that trying to move a channel to another Stasis application failed.", + "properties": { + "channel": { + "required": true, + "type": "Channel" + }, + "destination": { + "required": true, + "type": "string" + }, + "args": { + "required": true, + "type": "List[string]", + "description": "Arguments to the application" + } + } + }, + "ApplicationReplaced": { + "id": "ApplicationReplaced", + "description": "Notification that another WebSocket has taken over for an application.\n\nAn application may only be subscribed to by a single WebSocket at a time. If multiple WebSockets attempt to subscribe to the same application, the newer WebSocket wins, and the older one receives this event.", + "properties": {} + }, + "BridgeCreated": { + "id": "BridgeCreated", + "description": "Notification that a bridge has been created.", + "properties": { + "bridge": { + "required": true, + "type": "Bridge" + } + } + }, + "BridgeDestroyed": { + "id": "BridgeDestroyed", + "description": "Notification that a bridge has been destroyed.", + "properties": { + "bridge": { + "required": true, + "type": "Bridge" + } + } + }, + "BridgeMerged": { + "id": "BridgeMerged", + "description": "Notification that one bridge has merged into another.", + "properties": { + "bridge": { + "required": true, + "type": "Bridge" + }, + "bridge_from": { + "required": true, + "type": "Bridge" + } + } + }, + "BridgeVideoSourceChanged": { + "id": "BridgeVideoSourceChanged", + "description": "Notification that the source of video in a bridge has changed.", + "properties": { + "bridge": { + "required": true, + "type": "Bridge" + }, + "old_video_source_id": { + "required": false, + "type": "string" + } + } + }, + "BridgeBlindTransfer": { + "id": "BridgeBlindTransfer", + "description": "Notification that a blind transfer has occurred.", + "properties": { + "channel": { + "description": "The channel performing the blind transfer", + "required": true, + "type": "Channel" + }, + "replace_channel": { + "description": "The channel that is replacing transferer when the transferee(s) can not be transferred directly", + "required": false, + "type": "Channel" + }, + "transferee": { + "description": "The channel that is being transferred", + "required": false, + "type": "Channel" + }, + "exten": { + "description": "The extension transferred to", + "required": true, + "type": "string" + }, + "context": { + "description": "The context transferred to", + "required": true, + "type": "string" + }, + "result": { + "description": "The result of the transfer attempt", + "required": true, + "type": "string" + }, + "is_external": { + "description": "Whether the transfer was externally initiated or not", + "required": true, + "type": "boolean" + }, + "bridge": { + "description": "The bridge being transferred", + "type": "Bridge" + } + } + }, + "BridgeAttendedTransfer": { + "id": "BridgeAttendedTransfer", + "description": "Notification that an attended transfer has occurred.", + "properties": { + "transferer_first_leg": { + "description": "First leg of the transferer", + "required": true, + "type": "Channel" + }, + "transferer_second_leg": { + "description": "Second leg of the transferer", + "required": true, + "type": "Channel" + }, + "replace_channel": { + "description": "The channel that is replacing transferer_first_leg in the swap", + "required": false, + "type": "Channel" + }, + "transferee": { + "description": "The channel that is being transferred", + "required": false, + "type": "Channel" + }, + "transfer_target": { + "description": "The channel that is being transferred to", + "required": false, + "type": "Channel" + }, + "result": { + "description": "The result of the transfer attempt", + "required": true, + "type": "string" + }, + "is_external": { + "description": "Whether the transfer was externally initiated or not", + "required": true, + "type": "boolean" + }, + "transferer_first_leg_bridge": { + "description": "Bridge the transferer first leg is in", + "type": "Bridge" + }, + "transferer_second_leg_bridge": { + "description": "Bridge the transferer second leg is in", + "type": "Bridge" + }, + "destination_type": { + "description": "How the transfer was accomplished", + "required": true, + "type": "string" + }, + "destination_bridge": { + "description": "Bridge that survived the merge result", + "type": "string" + }, + "destination_application": { + "description": "Application that has been transferred into", + "type": "string" + }, + "destination_link_first_leg": { + "description": "First leg of a link transfer result", + "type": "Channel" + }, + "destination_link_second_leg": { + "description": "Second leg of a link transfer result", + "type": "Channel" + }, + "destination_threeway_channel": { + "description": "Transferer channel that survived the threeway result", + "type": "Channel" + }, + "destination_threeway_bridge": { + "description": "Bridge that survived the threeway result", + "type": "Bridge" + } + } + }, + "ChannelCreated": { + "id": "ChannelCreated", + "description": "Notification that a channel has been created.", + "properties": { + "channel": { + "required": true, + "type": "Channel" + } + } + }, + "ChannelDestroyed": { + "id": "ChannelDestroyed", + "description": "Notification that a channel has been destroyed.", + "properties": { + "cause": { + "required": true, + "description": "Integer representation of the cause of the hangup", + "type": "int" + }, + "cause_txt": { + "required": true, + "description": "Text representation of the cause of the hangup", + "type": "string" + }, + "channel": { + "required": true, + "type": "Channel" + } + } + }, + "ChannelEnteredBridge": { + "id": "ChannelEnteredBridge", + "description": "Notification that a channel has entered a bridge.", + "properties": { + "bridge": { + "required": true, + "type": "Bridge" + }, + "channel": { + "type": "Channel" + } + } + }, + "ChannelLeftBridge": { + "id": "ChannelLeftBridge", + "description": "Notification that a channel has left a bridge.", + "properties": { + "bridge": { + "required": true, + "type": "Bridge" + }, + "channel": { + "required": true, + "type": "Channel" + } + } + }, + "ChannelStateChange": { + "id": "ChannelStateChange", + "description": "Notification of a channel's state change.", + "properties": { + "channel": { + "required": true, + "type": "Channel" + } + } + }, + "ChannelDtmfReceived": { + "id": "ChannelDtmfReceived", + "description": "DTMF received on a channel.\n\nThis event is sent when the DTMF ends. There is no notification about the start of DTMF", + "properties": { + "digit": { + "required": true, + "type": "string", + "description": "DTMF digit received (0-9, A-E, # or *)" + }, + "duration_ms": { + "required": true, + "type": "int", + "description": "Number of milliseconds DTMF was received" + }, + "channel": { + "required": true, + "type": "Channel", + "description": "The channel on which DTMF was received" + } + } + }, + "ChannelDialplan": { + "id": "ChannelDialplan", + "description": "Channel changed location in the dialplan.", + "properties": { + "channel": { + "required": true, + "type": "Channel", + "description": "The channel that changed dialplan location." + }, + "dialplan_app": { + "required": true, + "type": "string", + "description": "The application about to be executed." + }, + "dialplan_app_data": { + "required": true, + "type": "string", + "description": "The data to be passed to the application." + } + } + }, + "ChannelCallerId": { + "id": "ChannelCallerId", + "description": "Channel changed Caller ID.", + "properties": { + "caller_presentation": { + "required": true, + "type": "int", + "description": "The integer representation of the Caller Presentation value." + }, + "caller_presentation_txt": { + "required": true, + "type": "string", + "description": "The text representation of the Caller Presentation value." + }, + "channel": { + "required": true, + "type": "Channel", + "description": "The channel that changed Caller ID." + } + } + }, + "ChannelUserevent": { + "id": "ChannelUserevent", + "description": "User-generated event with additional user-defined fields in the object.", + "properties": { + "eventname": { + "required": true, + "type": "string", + "description": "The name of the user event." + }, + "channel": { + "required": false, + "type": "Channel", + "description": "A channel that is signaled with the user event." + }, + "bridge": { + "required": false, + "type": "Bridge", + "description": "A bridge that is signaled with the user event." + }, + "endpoint": { + "required": false, + "type": "Endpoint", + "description": "A endpoint that is signaled with the user event." + }, + "userevent": { + "required": true, + "type": "object", + "description": "Custom Userevent data" + } + } + }, + "ChannelHangupRequest": { + "id": "ChannelHangupRequest", + "description": "A hangup was requested on the channel.", + "properties": { + "cause": { + "type": "int", + "description": "Integer representation of the cause of the hangup." + }, + "soft": { + "type": "boolean", + "description": "Whether the hangup request was a soft hangup request." + }, + "channel": { + "required": true, + "type": "Channel", + "description": "The channel on which the hangup was requested." + } + } + }, + "ChannelVarset": { + "id": "ChannelVarset", + "description": "Channel variable changed.", + "properties": { + "variable": { + "required": true, + "type": "string", + "description": "The variable that changed." + }, + "value": { + "required": true, + "type": "string", + "description": "The new value of the variable." + }, + "channel": { + "required": false, + "type": "Channel", + "description": "The channel on which the variable was set.\n\nIf missing, the variable is a global variable." + } + } + }, + "ChannelHold": { + "id": "ChannelHold", + "description": "A channel initiated a media hold.", + "properties": { + "channel": { + "required": true, + "type": "Channel", + "description": "The channel that initiated the hold event." + }, + "musicclass": { + "required": false, + "type": "string", + "description": "The music on hold class that the initiator requested." + } + } + }, + "ChannelUnhold": { + "id": "ChannelUnhold", + "description": "A channel initiated a media unhold.", + "properties": { + "channel": { + "required": true, + "type": "Channel", + "description": "The channel that initiated the unhold event." + } + } + }, + "ChannelTalkingStarted": { + "id": "ChannelTalkingStarted", + "description": "Talking was detected on the channel.", + "properties": { + "channel": { + "required": true, + "type": "Channel", + "description": "The channel on which talking started." + } + } + }, + "ChannelTalkingFinished": { + "id": "ChannelTalkingFinished", + "description": "Talking is no longer detected on the channel.", + "properties": { + "channel": { + "required": true, + "type": "Channel", + "description": "The channel on which talking completed." + }, + "duration": { + "required": true, + "type": "int", + "description": "The length of time, in milliseconds, that talking was detected on the channel" + } + } + }, + "ContactStatusChange": { + "id": "ContactStatusChange", + "description": "The state of a contact on an endpoint has changed.", + "properties": { + "endpoint": { + "required": true, + "type": "Endpoint" + }, + "contact_info": { + "required": true, + "type": "ContactInfo" + } + } + }, + "PeerStatusChange": { + "id": "PeerStatusChange", + "description": "The state of a peer associated with an endpoint has changed.", + "properties": { + "endpoint": { + "required": true, + "type": "Endpoint" + }, + "peer": { + "required": true, + "type": "Peer" + } + } + }, + "EndpointStateChange": { + "id": "EndpointStateChange", + "description": "Endpoint state changed.", + "properties": { + "endpoint": { + "required": true, + "type": "Endpoint" + } + } + }, + "Dial": { + "id": "Dial", + "description": "Dialing state has changed.", + "properties": { + "caller": { + "required": false, + "type": "Channel", + "description": "The calling channel." + }, + "peer": { + "required": true, + "type": "Channel", + "description": "The dialed channel." + }, + "forward": { + "required": false, + "type": "string", + "description": "Forwarding target requested by the original dialed channel." + }, + "forwarded": { + "required": false, + "type": "Channel", + "description": "Channel that the caller has been forwarded to." + }, + "dialstring": { + "required": false, + "type": "string", + "description": "The dial string for calling the peer channel." + }, + "dialstatus": { + "required": true, + "type": "string", + "description": "Current status of the dialing attempt to the peer." + } + } + }, + "StasisEnd": { + "id": "StasisEnd", + "description": "Notification that a channel has left a Stasis application.", + "properties": { + "channel": { + "required": true, + "type": "Channel" + } + } + }, + "StasisStart": { + "id": "StasisStart", + "description": "Notification that a channel has entered a Stasis application.", + "properties": { + "args": { + "required": true, + "type": "List[string]", + "description": "Arguments to the application" + }, + "channel": { + "required": true, + "type": "Channel" + }, + "replace_channel": { + "required": false, + "type": "Channel" + } + } + }, + "TextMessageReceived": { + "id": "TextMessageReceived", + "description": "A text message was received from an endpoint.", + "properties": { + "message": { + "required": true, + "type": "TextMessage" + }, + "endpoint": { + "required": false, + "type": "Endpoint" + } + } + }, + "ChannelConnectedLine": { + "id": "ChannelConnectedLine", + "description": "Channel changed Connected Line.", + "properties": { + "channel": { + "required": true, + "type": "Channel", + "description": "The channel whose connected line has changed." + } + } + } + } +} diff --git a/codegen/src/main/resources/codegen-data/ari_6_0_1/mailboxes.json b/codegen/src/main/resources/codegen-data/ari_6_0_1/mailboxes.json new file mode 100644 index 00000000..8f5941b8 --- /dev/null +++ b/codegen/src/main/resources/codegen-data/ari_6_0_1/mailboxes.json @@ -0,0 +1,137 @@ +{ + "_copyright": "Copyright (C) 2013, Digium, Inc.", + "_author": "Jonathan Rose ", + "_svn_revision": "$Revision$", + "apiVersion": "2.0.0", + "swaggerVersion": "1.1", + "basePath": "http://localhost:8088/ari", + "resourcePath": "/api-docs/mailboxes.{format}", + "requiresModules": [ + "res_stasis_mailbox" + ], + "apis": [ + { + "path": "/mailboxes", + "description": "Mailboxes", + "operations": [ + { + "httpMethod": "GET", + "summary": "List all mailboxes.", + "nickname": "list", + "responseClass": "List[Mailbox]" + } + ] + }, + { + "path": "/mailboxes/{mailboxName}", + "description": "Mailbox state", + "operations": [ + { + "httpMethod": "GET", + "summary": "Retrieve the current state of a mailbox.", + "nickname": "get", + "responseClass": "Mailbox", + "parameters": [ + { + "name": "mailboxName", + "description": "Name of the mailbox", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Mailbox not found" + } + ] + }, + { + "httpMethod": "PUT", + "summary": "Change the state of a mailbox. (Note - implicitly creates the mailbox).", + "nickname": "update", + "responseClass": "void", + "parameters": [ + { + "name": "mailboxName", + "description": "Name of the mailbox", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "oldMessages", + "description": "Count of old messages in the mailbox", + "paramType": "query", + "required": true, + "allowMultiple": false, + "dataType": "int" + }, + { + "name": "newMessages", + "description": "Count of new messages in the mailbox", + "paramType": "query", + "required": true, + "allowMultiple": false, + "dataType": "int" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Mailbox not found" + } + ] + }, + { + "httpMethod": "DELETE", + "summary": "Destroy a mailbox.", + "nickname": "delete", + "responseClass": "void", + "parameters": [ + { + "name": "mailboxName", + "description": "Name of the mailbox", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Mailbox not found" + } + ] + } + ] + } + ], + "models": { + "Mailbox": { + "id": "Mailbox", + "description": "Represents the state of a mailbox.", + "properties": { + "name": { + "type": "string", + "description": "Name of the mailbox.", + "required": true + }, + "old_messages": { + "type": "int", + "description": "Count of old messages in the mailbox.", + "required": true + }, + "new_messages": { + "type": "int", + "description": "Count of new messages in the mailbox.", + "required": true + } + } + } + } +} diff --git a/codegen/src/main/resources/codegen-data/ari_6_0_1/playbacks.json b/codegen/src/main/resources/codegen-data/ari_6_0_1/playbacks.json new file mode 100644 index 00000000..793986fc --- /dev/null +++ b/codegen/src/main/resources/codegen-data/ari_6_0_1/playbacks.json @@ -0,0 +1,165 @@ +{ + "_copyright": "Copyright (C) 2012 - 2013, Digium, Inc.", + "_author": "David M. Lee, II ", + "_svn_revision": "$Revision$", + "apiVersion": "2.0.0", + "swaggerVersion": "1.1", + "basePath": "http://localhost:8088/ari", + "resourcePath": "/api-docs/playbacks.{format}", + "requiresModules": [ + "res_stasis_playback" + ], + "apis": [ + { + "path": "/playbacks/{playbackId}", + "description": "Control object for a playback operation.", + "operations": [ + { + "httpMethod": "GET", + "summary": "Get a playback's details.", + "nickname": "get", + "responseClass": "Playback", + "parameters": [ + { + "name": "playbackId", + "description": "Playback's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "The playback cannot be found" + } + ] + }, + { + "httpMethod": "DELETE", + "summary": "Stop a playback.", + "nickname": "stop", + "responseClass": "void", + "parameters": [ + { + "name": "playbackId", + "description": "Playback's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "The playback cannot be found" + } + ] + } + ] + }, + { + "path": "/playbacks/{playbackId}/control", + "description": "Control object for a playback operation.", + "operations": [ + { + "httpMethod": "POST", + "summary": "Control a playback.", + "nickname": "control", + "responseClass": "void", + "parameters": [ + { + "name": "playbackId", + "description": "Playback's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "operation", + "description": "Operation to perform on the playback.", + "paramType": "query", + "required": true, + "allowMultiple": false, + "dataType": "string", + "allowableValues": { + "valueType": "LIST", + "values": [ + "restart", + "pause", + "unpause", + "reverse", + "forward" + ] + } + } + ], + "errorResponses": [ + { + "code": 400, + "reason": "The provided operation parameter was invalid" + }, + { + "code": 404, + "reason": "The playback cannot be found" + }, + { + "code": 409, + "reason": "The operation cannot be performed in the playback's current state" + } +] + } + ] + } + ], + "models": { + "Playback": { + "id": "Playback", + "description": "Object representing the playback of media to a channel", + "properties": { + "id": { + "type": "string", + "description": "ID for this playback operation", + "required": true + }, + "media_uri": { + "type": "string", + "description": "The URI for the media currently being played back.", + "required": true + }, + "next_media_uri": { + "type": "string", + "description": "If a list of URIs is being played, the next media URI to be played back.", + "required": false + }, + "target_uri": { + "type": "string", + "description": "URI for the channel or bridge to play the media on", + "required": true + }, + "language": { + "type": "string", + "description": "For media types that support multiple languages, the language requested for playback." + }, + "state": { + "type": "string", + "description": "Current state of the playback operation.", + "required": true, + "allowableValues": { + "valueType": "LIST", + "values": [ + "queued", + "playing", + "continuing", + "done", + "failed" + ] + } + } + } + } + } +} diff --git a/codegen/src/main/resources/codegen-data/ari_6_0_1/recordings.json b/codegen/src/main/resources/codegen-data/ari_6_0_1/recordings.json new file mode 100644 index 00000000..6ffd6d8e --- /dev/null +++ b/codegen/src/main/resources/codegen-data/ari_6_0_1/recordings.json @@ -0,0 +1,413 @@ +{ + "_copyright": "Copyright (C) 2012 - 2013, Digium, Inc.", + "_author": "David M. Lee, II ", + "_svn_revision": "$Revision$", + "apiVersion": "2.0.0", + "swaggerVersion": "1.1", + "basePath": "http://localhost:8088/ari", + "resourcePath": "/api-docs/recordings.{format}", + "requiresModules": [ + "res_stasis_recording" + ], + "apis": [ + { + "path": "/recordings/stored", + "description": "Recordings", + "operations": [ + { + "httpMethod": "GET", + "summary": "List recordings that are complete.", + "nickname": "listStored", + "responseClass": "List[StoredRecording]" + } + ] + }, + { + "path": "/recordings/stored/{recordingName}", + "description": "Individual recording", + "operations": [ + { + "httpMethod": "GET", + "summary": "Get a stored recording's details.", + "nickname": "getStored", + "responseClass": "StoredRecording", + "parameters": [ + { + "name": "recordingName", + "description": "The name of the recording", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Recording not found" + } + ] + }, + { + "httpMethod": "DELETE", + "summary": "Delete a stored recording.", + "nickname": "deleteStored", + "responseClass": "void", + "parameters": [ + { + "name": "recordingName", + "description": "The name of the recording", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Recording not found" + } + ] + } + ] + }, + { + "path": "/recordings/stored/{recordingName}/file", + "description": "The actual file associated with the stored recording", + "operations": [ + { + "httpMethod": "GET", + "summary": "Get the file associated with the stored recording.", + "nickname": "getStoredFile", + "responseClass": "binary", + "parameters": [ + { + "name": "recordingName", + "description": "The name of the recording", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 403, + "reason": "The recording file could not be opened" + }, + { + "code": 404, + "reason": "Recording not found" + } + ] + } + ] + }, + { + "path": "/recordings/stored/{recordingName}/copy", + "description": "Copy an individual recording", + "operations": [ + { + "httpMethod": "POST", + "summary": "Copy a stored recording.", + "nickname": "copyStored", + "responseClass": "StoredRecording", + "parameters": [ + { + "name": "recordingName", + "description": "The name of the recording to copy", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "destinationRecordingName", + "description": "The destination name of the recording", + "paramType": "query", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Recording not found" + }, + { + "code": 409, + "reason": "A recording with the same name already exists on the system" + } + ] + } + ] + }, + { + "path": "/recordings/live/{recordingName}", + "description": "A recording that is in progress", + "operations": [ + { + "httpMethod": "GET", + "summary": "List live recordings.", + "nickname": "getLive", + "responseClass": "LiveRecording", + "parameters": [ + { + "name": "recordingName", + "description": "The name of the recording", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Recording not found" + } + ] + }, + { + "httpMethod": "DELETE", + "summary": "Stop a live recording and discard it.", + "nickname": "cancel", + "responseClass": "void", + "parameters": [ + { + "name": "recordingName", + "description": "The name of the recording", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Recording not found" + } + ] + } + ] + }, + { + "path": "/recordings/live/{recordingName}/stop", + "operations": [ + { + "httpMethod": "POST", + "summary": "Stop a live recording and store it.", + "nickname": "stop", + "responseClass": "void", + "parameters": [ + { + "name": "recordingName", + "description": "The name of the recording", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Recording not found" + } + ] + } + ] + }, + { + "path": "/recordings/live/{recordingName}/pause", + "operations": [ + { + "httpMethod": "POST", + "summary": "Pause a live recording.", + "notes": "Pausing a recording suspends silence detection, which will be restarted when the recording is unpaused. Paused time is not included in the accounting for maxDurationSeconds.", + "nickname": "pause", + "responseClass": "void", + "parameters": [ + { + "name": "recordingName", + "description": "The name of the recording", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Recording not found" + }, + { + "code": 409, + "reason": "Recording not in session" + } + ] + }, + { + "httpMethod": "DELETE", + "summary": "Unpause a live recording.", + "nickname": "unpause", + "responseClass": "void", + "parameters": [ + { + "name": "recordingName", + "description": "The name of the recording", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Recording not found" + }, + { + "code": 409, + "reason": "Recording not in session" + } + ] + } + ] + }, + { + "path": "/recordings/live/{recordingName}/mute", + "operations": [ + { + "httpMethod": "POST", + "summary": "Mute a live recording.", + "notes": "Muting a recording suspends silence detection, which will be restarted when the recording is unmuted.", + "nickname": "mute", + "responseClass": "void", + "parameters": [ + { + "name": "recordingName", + "description": "The name of the recording", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Recording not found" + }, + { + "code": 409, + "reason": "Recording not in session" + } + ] + }, + { + "httpMethod": "DELETE", + "summary": "Unmute a live recording.", + "nickname": "unmute", + "responseClass": "void", + "parameters": [ + { + "name": "recordingName", + "description": "The name of the recording", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Recording not found" + }, + { + "code": 409, + "reason": "Recording not in session" + } + ] + } + ] + } + ], + "models": { + "StoredRecording": { + "id": "StoredRecording", + "description": "A past recording that may be played back.", + "properties": { + "name": { + "required": true, + "type": "string" + }, + "format": { + "required": true, + "type": "string" + } + } + }, + "LiveRecording": { + "id": "LiveRecording", + "description": "A recording that is in progress", + "properties": { + "name": { + "required": true, + "type": "string", + "description": "Base name for the recording" + }, + "format": { + "required": true, + "type": "string", + "description": "Recording format (wav, gsm, etc.)" + }, + "target_uri": { + "required": true, + "type": "string", + "description": "URI for the channel or bridge being recorded" + }, + "state": { + "required": true, + "type": "string", + "allowableValues": { + "valueType": "LIST", + "values": [ + "queued", + "recording", + "paused", + "done", + "failed", + "canceled" + ] + } + }, + "duration": { + "required": false, + "type": "int", + "description": "Duration in seconds of the recording" + }, + "talking_duration": { + "required": false, + "type": "int", + "description": "Duration of talking, in seconds, detected in the recording. This is only available if the recording was initiated with a non-zero maxSilenceSeconds." + }, + "silence_duration": { + "required": false, + "type": "int", + "description": "Duration of silence, in seconds, detected in the recording. This is only available if the recording was initiated with a non-zero maxSilenceSeconds." + }, + "cause": { + "required": false, + "type": "string", + "description": "Cause for recording failure if failed" + } + } + } + } +} diff --git a/codegen/src/main/resources/codegen-data/ari_6_0_1/sounds.json b/codegen/src/main/resources/codegen-data/ari_6_0_1/sounds.json new file mode 100644 index 00000000..8fbe1c57 --- /dev/null +++ b/codegen/src/main/resources/codegen-data/ari_6_0_1/sounds.json @@ -0,0 +1,99 @@ +{ + "_copyright": "Copyright (C) 2012 - 2013, Digium, Inc.", + "_author": "David M. Lee, II ", + "_svn_revision": "$Revision$", + "apiVersion": "2.0.0", + "swaggerVersion": "1.1", + "basePath": "http://localhost:8088/ari", + "resourcePath": "/api-docs/sounds.{format}", + "apis": [ + { + "path": "/sounds", + "description": "Sounds", + "operations": [ + { + "httpMethod": "GET", + "summary": "List all sounds.", + "nickname": "list", + "responseClass": "List[Sound]", + "parameters": [ + { + "name": "lang", + "description": "Lookup sound for a specific language.", + "paramType": "query", + "dataType": "string", + "required": false + }, + { + "name": "format", + "description": "Lookup sound in a specific format.", + "paramType": "query", + "dataType": "string", + "required": false, + "__note": "core show translation can show translation paths between formats, along with relative costs. so this could be just installed format, or we could follow that for transcoded formats." + } + ] + } + ] + }, + { + "path": "/sounds/{soundId}", + "description": "Individual sound", + "operations": [ + { + "httpMethod": "GET", + "summary": "Get a sound's details.", + "nickname": "get", + "responseClass": "Sound", + "parameters": [ + { + "name": "soundId", + "description": "Sound's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ] + } + ] + } + ], + "models": { + "FormatLangPair": { + "id": "FormatLangPair", + "description": "Identifies the format and language of a sound file", + "properties": { + "language": { + "required": true, + "type": "string" + }, + "format": { + "required": true, + "type": "string" + } + } + }, + "Sound": { + "id": "Sound", + "description": "A media file that may be played back.", + "properties": { + "id": { + "required": true, + "description": "Sound's identifier.", + "type": "string" + }, + "text": { + "required": false, + "description": "Text description of the sound, usually the words spoken.", + "type": "string" + }, + "formats": { + "required": true, + "description": "The formats and languages in which this sound is available.", + "type": "List[FormatLangPair]" + } + } + } + } +} diff --git a/codegen/src/main/resources/codegen-data/ari_7_0_1/applications.json b/codegen/src/main/resources/codegen-data/ari_7_0_1/applications.json new file mode 100644 index 00000000..09c5cd5c --- /dev/null +++ b/codegen/src/main/resources/codegen-data/ari_7_0_1/applications.json @@ -0,0 +1,223 @@ +{ + "_copyright": "Copyright (C) 2013, Digium, Inc.", + "_author": "David M. Lee, II ", + "_svn_revision": "$Revision$", + "apiVersion": "2.0.0", + "swaggerVersion": "1.1", + "basePath": "http://localhost:8088/ari", + "resourcePath": "/api-docs/applications.{format}", + "apis": [ + { + "path": "/applications", + "description": "Stasis applications", + "operations": [ + { + "httpMethod": "GET", + "summary": "List all applications.", + "nickname": "list", + "responseClass": "List[Application]" + } + ] + }, + { + "path": "/applications/{applicationName}", + "description": "Stasis application", + "operations": [ + { + "httpMethod": "GET", + "summary": "Get details of an application.", + "nickname": "get", + "responseClass": "Application", + "parameters": [ + { + "name": "applicationName", + "description": "Application's name", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Application does not exist." + } + ] + } + ] + }, + { + "path": "/applications/{applicationName}/subscription", + "description": "Stasis application", + "operations": [ + { + "httpMethod": "POST", + "summary": "Subscribe an application to a event source.", + "notes": "Returns the state of the application after the subscriptions have changed", + "nickname": "subscribe", + "responseClass": "Application", + "parameters": [ + { + "name": "applicationName", + "description": "Application's name", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "eventSource", + "description": "URI for event source (channel:{channelId}, bridge:{bridgeId}, endpoint:{tech}[/{resource}], deviceState:{deviceName}", + "paramType": "query", + "required": true, + "allowMultiple": true, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 400, + "reason": "Missing parameter." + }, + { + "code": 404, + "reason": "Application does not exist." + }, + { + "code": 422, + "reason": "Event source does not exist." + } + ] + }, + { + "httpMethod": "DELETE", + "summary": "Unsubscribe an application from an event source.", + "notes": "Returns the state of the application after the subscriptions have changed", + "nickname": "unsubscribe", + "responseClass": "Application", + "parameters": [ + { + "name": "applicationName", + "description": "Application's name", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "eventSource", + "description": "URI for event source (channel:{channelId}, bridge:{bridgeId}, endpoint:{tech}[/{resource}], deviceState:{deviceName}", + "paramType": "query", + "required": true, + "allowMultiple": true, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 400, + "reason": "Missing parameter; event source scheme not recognized." + }, + { + "code": 404, + "reason": "Application does not exist." + }, + { + "code": 409, + "reason": "Application not subscribed to event source." + }, + { + "code": 422, + "reason": "Event source does not exist." + } + ] + } + ] + }, + { + "path": "/applications/{applicationName}/eventFilter", + "description": "Stasis application", + "operations": [ + { + "httpMethod": "PUT", + "summary": "Filter application events types.", + "notes": "Allowed and/or disallowed event type filtering can be done. The body (parameter) should specify a JSON key/value object that describes the type of event filtering needed. One, or both of the following keys can be designated:

\"allowed\" - Specifies an allowed list of event types
\"disallowed\" - Specifies a disallowed list of event types

Further, each of those key's value should be a JSON array that holds zero, or more JSON key/value objects. Each of these objects must contain the following key with an associated value:

\"type\" - The type name of the event to filter

The value must be the string name (case sensitive) of the event type that needs filtering. For example:

{ \"allowed\": [ { \"type\": \"StasisStart\" }, { \"type\": \"StasisEnd\" } ] }

As this specifies only an allowed list, then only those two event type messages are sent to the application. No other event messages are sent.

The following rules apply:

* If the body is empty, both the allowed and disallowed filters are set empty.
* If both list types are given then both are set to their respective values (note, specifying an empty array for a given type sets that type to empty).
* If only one list type is given then only that type is set. The other type is not updated.
* An empty \"allowed\" list means all events are allowed.
* An empty \"disallowed\" list means no events are disallowed.
* Disallowed events take precedence over allowed events if the event type is specified in both lists.", + "nickname": "filter", + "responseClass": "Application", + "parameters": [ + { + "name": "applicationName", + "description": "Application's name", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "filter", + "description": "Specify which event types to allow/disallow", + "paramType": "body", + "required": false, + "dataType": "object", + "allowMultiple": false + } + ], + "errorResponses": [ + { + "code": 400, + "reason": "Bad request." + }, + { + "code": 404, + "reason": "Application does not exist." + } + ] + } + ] + } + ], + "models": { + "Application": { + "id": "Application", + "description": "Details of a Stasis application", + "properties": { + "name": { + "type": "string", + "description": "Name of this application", + "required": true + }, + "channel_ids": { + "type": "List[string]", + "description": "Id's for channels subscribed to.", + "required": true + }, + "bridge_ids": { + "type": "List[string]", + "description": "Id's for bridges subscribed to.", + "required": true + }, + "endpoint_ids": { + "type": "List[string]", + "description": "{tech}/{resource} for endpoints subscribed to.", + "required": true + }, + "device_names": { + "type": "List[string]", + "description": "Names of the devices subscribed to.", + "required": true + }, + "events_allowed": { + "type": "List[object]", + "description": "Event types sent to the application.", + "required": true + }, + "events_disallowed": { + "type": "List[object]", + "description": "Event types not sent to the application.", + "required": true + } + } + } + } +} diff --git a/codegen/src/main/resources/codegen-data/ari_7_0_1/asterisk.json b/codegen/src/main/resources/codegen-data/ari_7_0_1/asterisk.json new file mode 100644 index 00000000..841e6cd8 --- /dev/null +++ b/codegen/src/main/resources/codegen-data/ari_7_0_1/asterisk.json @@ -0,0 +1,725 @@ +{ + "_copyright": "Copyright (C) 2012 - 2013, Digium, Inc.", + "_author": "David M. Lee, II ", + "_svn_revision": "$Revision$", + "apiVersion": "2.0.0", + "swaggerVersion": "1.1", + "basePath": "http://localhost:8088/ari", + "resourcePath": "/api-docs/asterisk.{format}", + "apis": [ + { + "path": "/asterisk/config/dynamic/{configClass}/{objectType}/{id}", + "description": "Asterisk dynamic configuration", + "operations": [ + { + "httpMethod": "GET", + "summary": "Retrieve a dynamic configuration object.", + "nickname": "getObject", + "responseClass": "List[ConfigTuple]", + "parameters": [ + { + "name": "configClass", + "description": "The configuration class containing dynamic configuration objects.", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "objectType", + "description": "The type of configuration object to retrieve.", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "id", + "description": "The unique identifier of the object to retrieve.", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "{configClass|objectType|id} not found" + } + ] + }, + { + "httpMethod": "PUT", + "summary": "Create or update a dynamic configuration object.", + "nickname": "updateObject", + "responseClass": "List[ConfigTuple]", + "parameters": [ + { + "name": "configClass", + "description": "The configuration class containing dynamic configuration objects.", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "objectType", + "description": "The type of configuration object to create or update.", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "id", + "description": "The unique identifier of the object to create or update.", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "fields", + "description": "The body object should have a value that is a list of ConfigTuples, which provide the fields to update. Ex. [ { \"attribute\": \"directmedia\", \"value\": \"false\" } ]", + "paramType": "body", + "required": false, + "dataType": "containers", + "allowMultiple": false + } + ], + "errorResponses": [ + { + "code": 400, + "reason": "Bad request body" + }, + { + "code": 403, + "reason": "Could not create or update object" + }, + { + "code": 404, + "reason": "{configClass|objectType} not found" + } + ] + }, + { + "httpMethod": "DELETE", + "summary": "Delete a dynamic configuration object.", + "nickname": "deleteObject", + "responseClass": "void", + "parameters": [ + { + "name": "configClass", + "description": "The configuration class containing dynamic configuration objects.", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "objectType", + "description": "The type of configuration object to delete.", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "id", + "description": "The unique identifier of the object to delete.", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 403, + "reason": "Could not delete object" + }, + { + "code": 404, + "reason": "{configClass|objectType|id} not found" + } + ] + } + ] + }, + { + "path": "/asterisk/info", + "description": "Asterisk system information (similar to core show settings)", + "operations": [ + { + "httpMethod": "GET", + "summary": "Gets Asterisk system information.", + "nickname": "getInfo", + "responseClass": "AsteriskInfo", + "parameters": [ + { + "name": "only", + "description": "Filter information returned", + "paramType": "query", + "required": false, + "allowMultiple": true, + "dataType": "string", + "allowableValues": { + "valueType": "LIST", + "values": [ + "build", + "system", + "config", + "status" + ] + } + } + ] + } + ] + }, + { + "path": "/asterisk/ping", + "description": "Asterisk ping", + "operations": [ + { + "httpMethod": "GET", + "summary": "Response pong message.", + "nickname": "ping", + "responseClass": "AsteriskPing" + } + ] + }, + { + "path": "/asterisk/modules", + "description": "Asterisk modules", + "operations": [ + { + "httpMethod": "GET", + "summary": "List Asterisk modules.", + "nickname": "listModules", + "responseClass": "List[Module]" + } + ] + }, + { + "path": "/asterisk/modules/{moduleName}", + "description": "Asterisk module", + "operations": [ + { + "httpMethod": "GET", + "summary": "Get Asterisk module information.", + "nickname": "getModule", + "responseClass": "Module", + "parameters": [ + { + "name": "moduleName", + "description": "Module's name", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Module could not be found in running modules." + }, + { + "code": 409, + "reason": "Module information could not be retrieved." + } + ] + }, + { + "httpMethod": "POST", + "summary": "Load an Asterisk module.", + "nickname": "loadModule", + "responseClass": "void", + "parameters": [ + { + "name": "moduleName", + "description": "Module's name", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 409, + "reason": "Module could not be loaded." + } + ] + }, + { + "httpMethod": "DELETE", + "summary": "Unload an Asterisk module.", + "nickname": "unloadModule", + "responseClass": "void", + "parameters": [ + { + "name": "moduleName", + "description": "Module's name", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Module not found in running modules." + }, + { + "code": 409, + "reason": "Module could not be unloaded." + } + ] + }, + { + "httpMethod": "PUT", + "summary": "Reload an Asterisk module.", + "nickname": "reloadModule", + "responseClass": "void", + "parameters": [ + { + "name": "moduleName", + "description": "Module's name", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Module not found in running modules." + }, + { + "code": 409, + "reason": "Module could not be reloaded." + } + ] + } + ] + }, + { + "path": "/asterisk/logging", + "description": "Asterisk log channels", + "operations": [ + { + "httpMethod": "GET", + "summary": "Gets Asterisk log channel information.", + "nickname": "listLogChannels", + "responseClass": "List[LogChannel]" + } + ] + }, + { + "path": "/asterisk/logging/{logChannelName}", + "description": "Asterisk log channel", + "operations": [ + { + "httpMethod": "POST", + "summary": "Adds a log channel.", + "nickname": "addLog", + "responseClass": "void", + "parameters": [ + { + "name": "logChannelName", + "description": "The log channel to add", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "configuration", + "description": "levels of the log channel", + "paramType": "query", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 400, + "reason": "Bad request body" + }, + { + "code": 409, + "reason": "Log channel could not be created." + } + ] + }, + { + "httpMethod": "DELETE", + "summary": "Deletes a log channel.", + "nickname": "deleteLog", + "responseClass": "void", + "parameters": [ + { + "name": "logChannelName", + "description": "Log channels name", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Log channel does not exist." + } + ] + } + ] + }, + { + "path": "/asterisk/logging/{logChannelName}/rotate", + "description": "Asterisk log channel", + "operations": [ + { + "httpMethod": "PUT", + "summary": "Rotates a log channel.", + "nickname": "rotateLog", + "responseClass": "void", + "parameters": [ + { + "name": "logChannelName", + "description": "Log channel's name", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Log channel does not exist." + } + ] + } + ] + }, + { + "path": "/asterisk/variable", + "description": "Global variables", + "operations": [ + { + "httpMethod": "GET", + "summary": "Get the value of a global variable.", + "nickname": "getGlobalVar", + "responseClass": "Variable", + "parameters": [ + { + "name": "variable", + "description": "The variable to get", + "paramType": "query", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 400, + "reason": "Missing variable parameter." + } + ] + }, + { + "httpMethod": "POST", + "summary": "Set the value of a global variable.", + "nickname": "setGlobalVar", + "responseClass": "void", + "parameters": [ + { + "name": "variable", + "description": "The variable to set", + "paramType": "query", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "value", + "description": "The value to set the variable to", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 400, + "reason": "Missing variable parameter." + } + ] + } + ] + } + ], + "models": { + "BuildInfo": { + "id": "BuildInfo", + "description": "Info about how Asterisk was built", + "properties": { + "os": { + "required": true, + "type": "string", + "description": "OS Asterisk was built on." + }, + "kernel": { + "required": true, + "type": "string", + "description": "Kernel version Asterisk was built on." + }, + "options": { + "required": true, + "type": "string", + "description": "Compile time options, or empty string if default." + }, + "machine": { + "required": true, + "type": "string", + "description": "Machine architecture (x86_64, i686, ppc, etc.)" + }, + "date": { + "required": true, + "type": "string", + "description": "Date and time when Asterisk was built." + }, + "user": { + "required": true, + "type": "string", + "description": "Username that build Asterisk" + } + } + }, + "SystemInfo": { + "id": "SystemInfo", + "description": "Info about Asterisk", + "properties": { + "version": { + "required": true, + "type": "string", + "description": "Asterisk version." + }, + "entity_id": { + "required": true, + "type": "string", + "description": "" + } + } + }, + "SetId": { + "id": "SetId", + "description": "Effective user/group id", + "properties": { + "user": { + "required": true, + "type": "string", + "description": "Effective user id." + }, + "group": { + "required": true, + "type": "string", + "description": "Effective group id." + } + } + }, + "ConfigInfo": { + "id": "ConfigInfo", + "description": "Info about Asterisk configuration", + "properties": { + "name": { + "required": true, + "type": "string", + "description": "Asterisk system name." + }, + "default_language": { + "required": true, + "type": "string", + "description": "Default language for media playback." + }, + "max_channels": { + "required": false, + "type": "int", + "description": "Maximum number of simultaneous channels." + }, + "max_open_files": { + "required": false, + "type": "int", + "description": "Maximum number of open file handles (files, sockets)." + }, + "max_load": { + "required": false, + "type": "double", + "description": "Maximum load avg on system." + }, + "setid": { + "required": true, + "type": "SetId", + "description": "Effective user/group id for running Asterisk." + } + } + }, + "StatusInfo": { + "id": "StatusInfo", + "description": "Info about Asterisk status", + "properties": { + "startup_time": { + "required": true, + "type": "Date", + "description": "Time when Asterisk was started." + }, + "last_reload_time": { + "required": true, + "type": "Date", + "description": "Time when Asterisk was last reloaded." + } + } + }, + "AsteriskInfo": { + "id": "AsteriskInfo", + "description": "Asterisk system information", + "properties": { + "build": { + "required": false, + "type": "BuildInfo", + "description": "Info about how Asterisk was built" + }, + "system": { + "required": false, + "type": "SystemInfo", + "description": "Info about the system running Asterisk" + }, + "config": { + "required": false, + "type": "ConfigInfo", + "description": "Info about Asterisk configuration" + }, + "status": { + "required": false, + "type": "StatusInfo", + "description": "Info about Asterisk status" + } + } + }, + "AsteriskPing": { + "id": "AsteriskPing", + "description": "Asterisk ping information", + "properties": { + "asterisk_id": { + "required": true, + "type": "string", + "description": "Asterisk id info" + }, + "ping": { + "required": true, + "type": "string", + "description": "Always string value is pong" + }, + "timestamp": { + "required": true, + "type": "string", + "description": "The timestamp string of request received time" + } + } + }, + "Module": { + "id": "Module", + "description": "Details of an Asterisk module", + "properties": { + "name": { + "type": "string", + "description": "The name of this module", + "required": true + }, + "description": { + "type": "string", + "description": "The description of this module", + "required": true + }, + "use_count": { + "type": "int", + "description": "The number of times this module is being used", + "required": true + }, + "status": { + "type": "string", + "description": "The running status of this module", + "required": true + }, + "support_level": { + "type": "string", + "description": "The support state of this module", + "required": true + } + } + }, + "LogChannel": { + "id": "LogChannel", + "description": "Details of an Asterisk log channel", + "properties": { + "channel": { + "type": "string", + "description": "The log channel path", + "required": true + }, + "type": { + "type": "string", + "description": "Types of logs for the log channel", + "required": true + }, + "status": { + "type": "string", + "description": "Whether or not a log type is enabled", + "required": true + }, + "configuration": { + "type": "string", + "description": "The various log levels", + "required": true + } + } + }, + "Variable": { + "id": "Variable", + "description": "The value of a channel variable", + "properties": { + "value": { + "required": true, + "type": "string", + "description": "The value of the variable requested" + } + } + }, + "ConfigTuple": { + "id": "ConfigTuple", + "description": "A key/value pair that makes up part of a configuration object.", + "properties": { + "attribute": { + "required": true, + "type": "string", + "description": "A configuration object attribute." + }, + "value": { + "required": true, + "type": "string", + "description": "The value for the attribute." + } + } + } + } +} diff --git a/codegen/src/main/resources/codegen-data/ari_7_0_1/bridges.json b/codegen/src/main/resources/codegen-data/ari_7_0_1/bridges.json new file mode 100644 index 00000000..bf0a0016 --- /dev/null +++ b/codegen/src/main/resources/codegen-data/ari_7_0_1/bridges.json @@ -0,0 +1,774 @@ +{ + "_copyright": "Copyright (C) 2012 - 2013, Digium, Inc.", + "_author": "David M. Lee, II ", + "_svn_revision": "$Revision$", + "apiVersion": "2.0.0", + "swaggerVersion": "1.1", + "basePath": "http://localhost:8088/ari", + "resourcePath": "/api-docs/bridges.{format}", + "requiresModules": [ + "res_stasis_recording", + "res_stasis_playback" + ], + "apis": [ + { + "path": "/bridges", + "description": "Active bridges", + "operations": [ + { + "httpMethod": "GET", + "summary": "List all active bridges in Asterisk.", + "nickname": "list", + "responseClass": "List[Bridge]" + }, + { + "httpMethod": "POST", + "summary": "Create a new bridge.", + "notes": "This bridge persists until it has been shut down, or Asterisk has been shut down.", + "nickname": "create", + "responseClass": "Bridge", + "parameters": [ + { + "name": "type", + "description": "Comma separated list of bridge type attributes (mixing, holding, dtmf_events, proxy_media, video_sfu, video_single).", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "bridgeId", + "description": "Unique ID to give to the bridge being created.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "name", + "description": "Name to give to the bridge being created.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + } + ] + } + ] + }, + { + "path": "/bridges/{bridgeId}", + "description": "Individual bridge", + "operations": [ + { + "httpMethod": "POST", + "summary": "Create a new bridge or updates an existing one.", + "notes": "This bridge persists until it has been shut down, or Asterisk has been shut down.", + "nickname": "createWithId", + "responseClass": "Bridge", + "parameters": [ + { + "name": "type", + "description": "Comma separated list of bridge type attributes (mixing, holding, dtmf_events, proxy_media, video_sfu, video_single) to set.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "bridgeId", + "description": "Unique ID to give to the bridge being created.", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "name", + "description": "Set the name of the bridge.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + } + ] + }, + { + "httpMethod": "GET", + "summary": "Get bridge details.", + "nickname": "get", + "responseClass": "Bridge", + "parameters": [ + { + "name": "bridgeId", + "description": "Bridge's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Bridge not found" + } + ] + }, + { + "httpMethod": "DELETE", + "summary": "Shut down a bridge.", + "notes": "If any channels are in this bridge, they will be removed and resume whatever they were doing beforehand.", + "nickname": "destroy", + "responseClass": "void", + "parameters": [ + { + "name": "bridgeId", + "description": "Bridge's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Bridge not found" + } + ] + } + ] + }, + { + "path": "/bridges/{bridgeId}/addChannel", + "description": "Add a channel to a bridge", + "operations": [ + { + "httpMethod": "POST", + "summary": "Add a channel to a bridge.", + "nickname": "addChannel", + "responseClass": "void", + "parameters": [ + { + "name": "bridgeId", + "description": "Bridge's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "channel", + "description": "Ids of channels to add to bridge", + "paramType": "query", + "required": true, + "allowMultiple": true, + "dataType": "string" + }, + { + "name": "role", + "description": "Channel's role in the bridge", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "absorbDTMF", + "description": "Absorb DTMF coming from this channel, preventing it to pass through to the bridge", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "boolean", + "defaultValue": false + }, + { + "name": "mute", + "description": "Mute audio from this channel, preventing it to pass through to the bridge", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "boolean", + "defaultValue": false + }, + { + "name": "inhibitConnectedLineUpdates", + "description": "Do not present the identity of the newly connected channel to other bridge members", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "boolean", + "defaultValue": false + } + ], + "errorResponses": [ + { + "code": 400, + "reason": "Channel not found" + }, + { + "code": 404, + "reason": "Bridge not found" + }, + { + "code": 409, + "reason": "Bridge not in Stasis application; Channel currently recording" + }, + { + "code": 422, + "reason": "Channel not in Stasis application" + } + ] + } + ] + }, + { + "path": "/bridges/{bridgeId}/removeChannel", + "description": "Remove a channel from a bridge", + "operations": [ + { + "httpMethod": "POST", + "summary": "Remove a channel from a bridge.", + "nickname": "removeChannel", + "responseClass": "void", + "parameters": [ + { + "name": "bridgeId", + "description": "Bridge's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "channel", + "description": "Ids of channels to remove from bridge", + "paramType": "query", + "required": true, + "allowMultiple": true, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 400, + "reason": "Channel not found" + }, + { + "code": 404, + "reason": "Bridge not found" + }, + { + "code": 409, + "reason": "Bridge not in Stasis application" + }, + { + "code": 422, + "reason": "Channel not in this bridge" + } + ] + } + ] + }, + { + "path": "/bridges/{bridgeId}/videoSource/{channelId}", + "description": "Set a channel as the video source in a multi-party bridge", + "operations": [ + { + "httpMethod": "POST", + "summary": "Set a channel as the video source in a multi-party mixing bridge. This operation has no effect on bridges with two or fewer participants.", + "nickname": "setVideoSource", + "responseClass": "void", + "parameters": [ + { + "name": "bridgeId", + "description": "Bridge's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "channelId", + "description": "Channel's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Bridge or Channel not found" + }, + { + "code": 409, + "reason": "Channel not in Stasis application" + }, + { + "code": 422, + "reason": "Channel not in this Bridge" + } + ] + } + ] + }, + { + "path": "/bridges/{bridgeId}/videoSource", + "description": "Removes any explicit video source", + "operations": [ + { + "httpMethod": "DELETE", + "summary": "Removes any explicit video source in a multi-party mixing bridge. This operation has no effect on bridges with two or fewer participants. When no explicit video source is set, talk detection will be used to determine the active video stream.", + "nickname": "clearVideoSource", + "responseClass": "void", + "parameters": [ + { + "name": "bridgeId", + "description": "Bridge's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Bridge not found" + } + ] + } + ] + }, + { + "path": "/bridges/{bridgeId}/moh", + "description": "Play music on hold to a bridge", + "operations": [ + { + "httpMethod": "POST", + "summary": "Play music on hold to a bridge or change the MOH class that is playing.", + "nickname": "startMoh", + "responseClass": "void", + "parameters": [ + { + "name": "bridgeId", + "description": "Bridge's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "mohClass", + "description": "Channel's id", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Bridge not found" + }, + { + "code": 409, + "reason": "Bridge not in Stasis application" + } + ] + }, + { + "httpMethod": "DELETE", + "summary": "Stop playing music on hold to a bridge.", + "notes": "This will only stop music on hold being played via POST bridges/{bridgeId}/moh.", + "nickname": "stopMoh", + "responseClass": "void", + "parameters": [ + { + "name": "bridgeId", + "description": "Bridge's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Bridge not found" + }, + { + "code": 409, + "reason": "Bridge not in Stasis application" + } + ] + } + ] + }, + { + "path": "/bridges/{bridgeId}/play", + "description": "Play media to the participants of a bridge", + "operations": [ + { + "httpMethod": "POST", + "summary": "Start playback of media on a bridge.", + "notes": "The media URI may be any of a number of URI's. Currently sound:, recording:, number:, digits:, characters:, and tone: URI's are supported. This operation creates a playback resource that can be used to control the playback of media (pause, rewind, fast forward, etc.)", + "nickname": "play", + "responseClass": "Playback", + "parameters": [ + { + "name": "bridgeId", + "description": "Bridge's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "media", + "description": "Media URIs to play.", + "paramType": "query", + "required": true, + "allowMultiple": true, + "dataType": "string" + }, + { + "name": "lang", + "description": "For sounds, selects language for sound.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "offsetms", + "description": "Number of milliseconds to skip before playing. Only applies to the first URI if multiple media URIs are specified.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "int", + "defaultValue": 0, + "allowableValues": { + "valueType": "RANGE", + "min": 0 + } + + }, + { + "name": "skipms", + "description": "Number of milliseconds to skip for forward/reverse operations.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "int", + "defaultValue": 3000, + "allowableValues": { + "valueType": "RANGE", + "min": 0 + } + }, + { + "name": "playbackId", + "description": "Playback Id.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Bridge not found" + }, + { + "code": 409, + "reason": "Bridge not in a Stasis application" + } + ] + } + ] + }, + { + "path": "/bridges/{bridgeId}/play/{playbackId}", + "description": "Play media to a bridge", + "operations": [ + { + "httpMethod": "POST", + "summary": "Start playback of media on a bridge.", + "notes": "The media URI may be any of a number of URI's. Currently sound:, recording:, number:, digits:, characters:, and tone: URI's are supported. This operation creates a playback resource that can be used to control the playback of media (pause, rewind, fast forward, etc.)", + "nickname": "playWithId", + "responseClass": "Playback", + "parameters": [ + { + "name": "bridgeId", + "description": "Bridge's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "playbackId", + "description": "Playback ID.", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "media", + "description": "Media URIs to play.", + "paramType": "query", + "required": true, + "allowMultiple": true, + "dataType": "string" + }, + { + "name": "lang", + "description": "For sounds, selects language for sound.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "offsetms", + "description": "Number of milliseconds to skip before playing. Only applies to the first URI if multiple media URIs are specified.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "int", + "defaultValue": 0, + "allowableValues": { + "valueType": "RANGE", + "min": 0 + } + }, + { + "name": "skipms", + "description": "Number of milliseconds to skip for forward/reverse operations.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "int", + "defaultValue": 3000, + "allowableValues": { + "valueType": "RANGE", + "min": 0 + } + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Bridge not found" + }, + { + "code": 409, + "reason": "Bridge not in a Stasis application" + } + ] + + } + ] + }, + { + "path": "/bridges/{bridgeId}/record", + "description": "Record audio on a bridge", + "operations": [ + { + "httpMethod": "POST", + "summary": "Start a recording.", + "notes": "This records the mixed audio from all channels participating in this bridge.", + "nickname": "record", + "responseClass": "LiveRecording", + "parameters": [ + { + "name": "bridgeId", + "description": "Bridge's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "name", + "description": "Recording's filename", + "paramType": "query", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "format", + "description": "Format to encode audio in", + "paramType": "query", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "maxDurationSeconds", + "description": "Maximum duration of the recording, in seconds. 0 for no limit.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "int", + "defaultValue": 0, + "allowableValues": { + "valueType": "RANGE", + "min": 0 + } + }, + { + "name": "maxSilenceSeconds", + "description": "Maximum duration of silence, in seconds. 0 for no limit.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "int", + "defaultValue": 0, + "allowableValues": { + "valueType": "RANGE", + "min": 0 + } + }, + { + "name": "ifExists", + "description": "Action to take if a recording with the same name already exists.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string", + "defaultValue": "fail", + "allowableValues": { + "valueType": "LIST", + "values": [ + "fail", + "overwrite", + "append" + ] + } + }, + { + "name": "beep", + "description": "Play beep when recording begins", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "boolean", + "defaultValue": false + }, + { + "name": "terminateOn", + "description": "DTMF input to terminate recording.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string", + "defaultValue": "none", + "allowableValues": { + "valueType": "LIST", + "values": [ + "none", + "any", + "*", + "#" + ] + } + } + ], + "errorResponses": [ + { + "code": 400, + "reason": "Invalid parameters" + }, + { + "code": 404, + "reason": "Bridge not found" + }, + { + "code": 409, + "reason": "Bridge is not in a Stasis application; A recording with the same name already exists on the system and can not be overwritten because it is in progress or ifExists=fail" + }, + { + "code": 422, + "reason": "The format specified is unknown on this system" + } + ] + } + ] + } + ], + "models": { + "Bridge": { + "id": "Bridge", + "description": "The merging of media from one or more channels.\n\nEveryone on the bridge receives the same audio.", + "properties": { + "id": { + "type": "string", + "description": "Unique identifier for this bridge", + "required": true + }, + "technology": { + "type": "string", + "description": "Name of the current bridging technology", + "required": true + }, + "bridge_type": { + "type": "string", + "description": "Type of bridge technology", + "required": true, + "allowableValues": { + "valueType": "LIST", + "values": [ + "mixing", + "holding" + ] + } + }, + "bridge_class": { + "type": "string", + "description": "Bridging class", + "required": true + }, + "creator": { + "type": "string", + "description": "Entity that created the bridge", + "required": true + }, + "name": { + "type": "string", + "description": "Name the creator gave the bridge", + "required": true + }, + "channels": { + "type": "List[string]", + "description": "Ids of channels participating in this bridge", + "required": true + }, + "video_mode": { + "type": "string", + "description": "The video mode the bridge is using. One of 'none', 'talker', 'sfu', or 'single'.", + "required": false + }, + "video_source_id": { + "type": "string", + "description": "The ID of the channel that is the source of video in this bridge, if one exists.", + "required": false + }, + "creationtime": { + "required": true, + "type": "Date", + "description": "Timestamp when bridge was created" + } + } + } + } +} diff --git a/codegen/src/main/resources/codegen-data/ari_7_0_1/channels.json b/codegen/src/main/resources/codegen-data/ari_7_0_1/channels.json new file mode 100644 index 00000000..269976df --- /dev/null +++ b/codegen/src/main/resources/codegen-data/ari_7_0_1/channels.json @@ -0,0 +1,2194 @@ +{ + "_copyright": "Copyright (C) 2012 - 2013, Digium, Inc.", + "_author": "David M. Lee, II ", + "_svn_revision": "$Revision$", + "apiVersion": "2.0.0", + "swaggerVersion": "1.1", + "basePath": "http://localhost:8088/ari", + "resourcePath": "/api-docs/channels.{format}", + "requiresModules": [ + "res_stasis_answer", + "res_stasis_playback", + "res_stasis_recording", + "res_stasis_snoop" + ], + "apis": [ + { + "path": "/channels", + "description": "Active channels", + "operations": [ + { + "httpMethod": "GET", + "summary": "List all active channels in Asterisk.", + "nickname": "list", + "responseClass": "List[Channel]" + }, + { + "httpMethod": "POST", + "summary": "Create a new channel (originate).", + "notes": "The new channel is created immediately and a snapshot of it returned. If a Stasis application is provided it will be automatically subscribed to the originated channel for further events and updates.", + "nickname": "originate", + "responseClass": "Channel", + "parameters": [ + { + "name": "endpoint", + "description": "Endpoint to call.", + "paramType": "query", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "extension", + "description": "The extension to dial after the endpoint answers. Mutually exclusive with 'app'.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "context", + "description": "The context to dial after the endpoint answers. If omitted, uses 'default'. Mutually exclusive with 'app'.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "priority", + "description": "The priority to dial after the endpoint answers. If omitted, uses 1. Mutually exclusive with 'app'.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "long" + }, + { + "name": "label", + "description": "The label to dial after the endpoint answers. Will supersede 'priority' if provided. Mutually exclusive with 'app'.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "app", + "description": "The application that is subscribed to the originated channel. When the channel is answered, it will be passed to this Stasis application. Mutually exclusive with 'context', 'extension', 'priority', and 'label'.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "appArgs", + "description": "The application arguments to pass to the Stasis application provided by 'app'. Mutually exclusive with 'context', 'extension', 'priority', and 'label'.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "callerId", + "description": "CallerID to use when dialing the endpoint or extension.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "timeout", + "description": "Timeout (in seconds) before giving up dialing, or -1 for no timeout.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "int", + "defaultValue": 30 + }, + { + "name": "variables", + "description": "The \"variables\" key in the body object holds variable key/value pairs to set on the channel on creation. Other keys in the body object are interpreted as query parameters. Ex. { \"endpoint\": \"SIP/Alice\", \"variables\": { \"CALLERID(name)\": \"Alice\" } }", + "paramType": "body", + "required": false, + "dataType": "containers", + "allowMultiple": false + }, + { + "name": "channelId", + "description": "The unique id to assign the channel on creation.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "otherChannelId", + "description": "The unique id to assign the second channel when using local channels.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "originator", + "description": "The unique id of the channel which is originating this one.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "formats", + "description": "The format name capability list to use if originator is not specified. Ex. \"ulaw,slin16\". Format names can be found with \"core show codecs\".", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 400, + "reason": "Invalid parameters for originating a channel." + }, + { + "code": 409, + "reason": "Channel with given unique ID already exists." + } + ] + } + ] + }, + { + "path": "/channels/create", + "description": "Create a channel and place it in a Stasis app, but do not dial the channel yet.", + "operations": [ + { + "httpMethod": "POST", + "summary": "Create channel.", + "nickname": "create", + "responseClass": "Channel", + "parameters": [ + { + "name": "endpoint", + "description": "Endpoint for channel communication", + "paramType": "query", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "app", + "description": "Stasis Application to place channel into", + "paramType": "query", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "appArgs", + "description": "The application arguments to pass to the Stasis application provided by 'app'. Mutually exclusive with 'context', 'extension', 'priority', and 'label'.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "channelId", + "description": "The unique id to assign the channel on creation.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "otherChannelId", + "description": "The unique id to assign the second channel when using local channels.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "originator", + "description": "Unique ID of the calling channel", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "formats", + "description": "The format name capability list to use if originator is not specified. Ex. \"ulaw,slin16\". Format names can be found with \"core show codecs\".", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "variables", + "description": "The \"variables\" key in the body object holds variable key/value pairs to set on the channel on creation. Other keys in the body object are interpreted as query parameters. Ex. { \"endpoint\": \"SIP/Alice\", \"variables\": { \"CALLERID(name)\": \"Alice\" } }", + "paramType": "body", + "required": false, + "dataType": "containers", + "allowMultiple": false + } + ], + "errorResponses": [ + { + "code": 409, + "reason": "Channel with given unique ID already exists." + } + ] + } + ] + }, + { + "path": "/channels/{channelId}", + "description": "Active channel", + "operations": [ + { + "httpMethod": "GET", + "summary": "Channel details.", + "nickname": "get", + "responseClass": "Channel", + "parameters": [ + { + "name": "channelId", + "description": "Channel's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Channel not found" + } + ] + }, + { + "httpMethod": "POST", + "summary": "Create a new channel (originate with id).", + "notes": "The new channel is created immediately and a snapshot of it returned. If a Stasis application is provided it will be automatically subscribed to the originated channel for further events and updates.", + "nickname": "originateWithId", + "responseClass": "Channel", + "parameters": [ + { + "name": "channelId", + "description": "The unique id to assign the channel on creation.", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "endpoint", + "description": "Endpoint to call.", + "paramType": "query", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "extension", + "description": "The extension to dial after the endpoint answers. Mutually exclusive with 'app'.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "context", + "description": "The context to dial after the endpoint answers. If omitted, uses 'default'. Mutually exclusive with 'app'.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "priority", + "description": "The priority to dial after the endpoint answers. If omitted, uses 1. Mutually exclusive with 'app'.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "long" + }, + { + "name": "label", + "description": "The label to dial after the endpoint answers. Will supersede 'priority' if provided. Mutually exclusive with 'app'.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "app", + "description": "The application that is subscribed to the originated channel. When the channel is answered, it will be passed to this Stasis application. Mutually exclusive with 'context', 'extension', 'priority', and 'label'.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "appArgs", + "description": "The application arguments to pass to the Stasis application provided by 'app'. Mutually exclusive with 'context', 'extension', 'priority', and 'label'.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "callerId", + "description": "CallerID to use when dialing the endpoint or extension.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "timeout", + "description": "Timeout (in seconds) before giving up dialing, or -1 for no timeout.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "int", + "defaultValue": 30 + }, + { + "name": "variables", + "description": "The \"variables\" key in the body object holds variable key/value pairs to set on the channel on creation. Other keys in the body object are interpreted as query parameters. Ex. { \"endpoint\": \"SIP/Alice\", \"variables\": { \"CALLERID(name)\": \"Alice\" } }", + "paramType": "body", + "required": false, + "dataType": "containers", + "allowMultiple": false + }, + { + "name": "otherChannelId", + "description": "The unique id to assign the second channel when using local channels.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "originator", + "description": "The unique id of the channel which is originating this one.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "formats", + "description": "The format name capability list to use if originator is not specified. Ex. \"ulaw,slin16\". Format names can be found with \"core show codecs\".", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 400, + "reason": "Invalid parameters for originating a channel." + }, + { + "code": 409, + "reason": "Channel with given unique ID already exists." + } + ] + + }, + { + "httpMethod": "DELETE", + "summary": "Delete (i.e. hangup) a channel.", + "nickname": "hangup", + "responseClass": "void", + "parameters": [ + { + "name": "channelId", + "description": "Channel's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "reason_code", + "description": "The reason code for hanging up the channel for detail use. Mutually exclusive with 'reason'. See detail hangup codes at here. https://wiki.asterisk.org/wiki/display/AST/Hangup+Cause+Mappings", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "reason", + "description": "Reason for hanging up the channel for simple use. Mutually exclusive with 'reason_code'.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string", + "allowableValues": { + "valueType": "LIST", + "values": [ + "normal", + "busy", + "congestion", + "no_answer", + "timeout", + "rejected", + "unallocated", + "normal_unspecified", + "number_incomplete", + "codec_mismatch", + "interworking", + "failure", + "answered_elsewhere" + ] + } + } + ], + "errorResponses": [ + { + "code": 400, + "reason": "Invalid reason for hangup provided" + }, + { + "code": 404, + "reason": "Channel not found" + } + ] + } + ] + }, + { + "path": "/channels/{channelId}/continue", + "description": "Exit application; continue execution in the dialplan", + "operations": [ + { + "httpMethod": "POST", + "summary": "Exit application; continue execution in the dialplan.", + "nickname": "continueInDialplan", + "responseClass": "void", + "parameters": [ + { + "name": "channelId", + "description": "Channel's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "context", + "description": "The context to continue to.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "extension", + "description": "The extension to continue to.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "priority", + "description": "The priority to continue to.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "int" + }, + { + "name": "label", + "description": "The label to continue to - will supersede 'priority' if both are provided.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Channel not found" + }, + { + "code": 409, + "reason": "Channel not in a Stasis application" + }, + { + "code": 412, + "reason": "Channel in invalid state" + } + ] + } + ] + }, + { + "path": "/channels/{channelId}/move", + "description": "Move the channel from one Stasis application to another.", + "operations": [ + { + "httpMethod": "POST", + "summary": "Move the channel from one Stasis application to another.", + "nickname": "move", + "responseClass": "void", + "parameters": [ + { + "name": "channelId", + "description": "Channel's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "app", + "description": "The channel will be passed to this Stasis application.", + "paramType": "query", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "appArgs", + "description": "The application arguments to pass to the Stasis application provided by 'app'.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": "404", + "reason": "Channel not found" + }, + { + "code": "409", + "reason": "Channel not in a Stasis application" + } + ] + } + ] + }, + { + "path": "/channels/{channelId}/redirect", + "description": "Inform the channel that it should redirect itself to a different location. Note that this will almost certainly cause the channel to exit the application.", + "operations": [ + { + "httpMethod": "POST", + "summary": "Redirect the channel to a different location.", + "nickname": "redirect", + "responseClass": "void", + "parameters": [ + { + "name": "channelId", + "description": "Channel's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "endpoint", + "description": "The endpoint to redirect the channel to", + "paramType": "query", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 400, + "reason": "Endpoint parameter not provided" + }, + { + "code": 404, + "reason": "Channel or endpoint not found" + }, + { + "code": 409, + "reason": "Channel not in a Stasis application" + }, + { + "code": 422, + "reason": "Endpoint is not the same type as the channel" + }, + { + "code": 412, + "reason": "Channel in invalid state" + } + ] + } + ] + }, + { + "path": "/channels/{channelId}/answer", + "description": "Answer a channel", + "operations": [ + { + "httpMethod": "POST", + "summary": "Answer a channel.", + "nickname": "answer", + "responseClass": "void", + "parameters": [ + { + "name": "channelId", + "description": "Channel's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Channel not found" + }, + { + "code": 409, + "reason": "Channel not in a Stasis application" + }, + { + "code": 412, + "reason": "Channel in invalid state" + } + ] + } + ] + }, + { + "path": "/channels/{channelId}/ring", + "description": "Send a ringing indication to a channel", + "operations": [ + { + "httpMethod": "POST", + "summary": "Indicate ringing to a channel.", + "nickname": "ring", + "responseClass": "void", + "parameters": [ + { + "name": "channelId", + "description": "Channel's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Channel not found" + }, + { + "code": 409, + "reason": "Channel not in a Stasis application" + }, + { + "code": 412, + "reason": "Channel in invalid state" + } + ] + }, + { + "httpMethod": "DELETE", + "summary": "Stop ringing indication on a channel if locally generated.", + "nickname": "ringStop", + "responseClass": "void", + "parameters": [ + { + "name": "channelId", + "description": "Channel's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Channel not found" + }, + { + "code": 409, + "reason": "Channel not in a Stasis application" + }, + { + "code": 412, + "reason": "Channel in invalid state" + } + ] + } + ] + }, + { + "path": "/channels/{channelId}/dtmf", + "description": "Send DTMF to a channel", + "operations": [ + { + "httpMethod": "POST", + "summary": "Send provided DTMF to a given channel.", + "nickname": "sendDTMF", + "responseClass": "void", + "parameters": [ + { + "name": "channelId", + "description": "Channel's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "dtmf", + "description": "DTMF To send.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "before", + "description": "Amount of time to wait before DTMF digits (specified in milliseconds) start.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "int", + "defaultValue": 0 + }, + { + "name": "between", + "description": "Amount of time in between DTMF digits (specified in milliseconds).", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "int", + "defaultValue": 100 + }, + { + "name": "duration", + "description": "Length of each DTMF digit (specified in milliseconds).", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "int", + "defaultValue": 100 + }, + { + "name": "after", + "description": "Amount of time to wait after DTMF digits (specified in milliseconds) end.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "int", + "defaultValue": 0 + } + ], + "errorResponses": [ + { + "code": 400, + "reason": "DTMF is required" + }, + { + "code": 404, + "reason": "Channel not found" + }, + { + "code": 409, + "reason": "Channel not in a Stasis application" + }, + { + "code": 412, + "reason": "Channel in invalid state" + } + ] + } + ] + }, + { + "path": "/channels/{channelId}/mute", + "description": "Mute a channel", + "operations": [ + { + "httpMethod": "POST", + "summary": "Mute a channel.", + "nickname": "mute", + "responseClass": "void", + "parameters": [ + { + "name": "channelId", + "description": "Channel's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "direction", + "description": "Direction in which to mute audio", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string", + "defaultValue": "both", + "allowableValues": { + "valueType": "LIST", + "values": [ + "both", + "in", + "out" + ] + } + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Channel not found" + }, + { + "code": 409, + "reason": "Channel not in a Stasis application" + }, + { + "code": 412, + "reason": "Channel in invalid state" + } + ] + }, + { + "httpMethod": "DELETE", + "summary": "Unmute a channel.", + "nickname": "unmute", + "responseClass": "void", + "parameters": [ + { + "name": "channelId", + "description": "Channel's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "direction", + "description": "Direction in which to unmute audio", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string", + "defaultValue": "both", + "allowableValues": { + "valueType": "LIST", + "values": [ + "both", + "in", + "out" + ] + } + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Channel not found" + }, + { + "code": 409, + "reason": "Channel not in a Stasis application" + }, + { + "code": 412, + "reason": "Channel in invalid state" + } + ] + } + ] + }, + { + "path": "/channels/{channelId}/hold", + "description": "Put a channel on hold", + "operations": [ + { + "httpMethod": "POST", + "summary": "Hold a channel.", + "nickname": "hold", + "responseClass": "void", + "parameters": [ + { + "name": "channelId", + "description": "Channel's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Channel not found" + }, + { + "code": 409, + "reason": "Channel not in a Stasis application" + }, + { + "code": 412, + "reason": "Channel in invalid state" + } + ] + }, + { + "httpMethod": "DELETE", + "summary": "Remove a channel from hold.", + "nickname": "unhold", + "responseClass": "void", + "parameters": [ + { + "name": "channelId", + "description": "Channel's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Channel not found" + }, + { + "code": 409, + "reason": "Channel not in a Stasis application" + }, + { + "code": 412, + "reason": "Channel in invalid state" + } + ] + } + ] + }, + { + "path": "/channels/{channelId}/moh", + "description": "Play music on hold to a channel", + "operations": [ + { + "httpMethod": "POST", + "summary": "Play music on hold to a channel.", + "notes": "Using media operations such as /play on a channel playing MOH in this manner will suspend MOH without resuming automatically. If continuing music on hold is desired, the stasis application must reinitiate music on hold.", + "nickname": "startMoh", + "responseClass": "void", + "parameters": [ + { + "name": "channelId", + "description": "Channel's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "mohClass", + "description": "Music on hold class to use", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Channel not found" + }, + { + "code": 409, + "reason": "Channel not in a Stasis application" + }, + { + "code": 412, + "reason": "Channel in invalid state" + } + ] + }, + { + "httpMethod": "DELETE", + "summary": "Stop playing music on hold to a channel.", + "nickname": "stopMoh", + "responseClass": "void", + "parameters": [ + { + "name": "channelId", + "description": "Channel's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Channel not found" + }, + { + "code": 409, + "reason": "Channel not in a Stasis application" + }, + { + "code": 412, + "reason": "Channel in invalid state" + } + ] + } + ] + }, + { + "path": "/channels/{channelId}/silence", + "description": "Play silence to a channel", + "operations": [ + { + "httpMethod": "POST", + "summary": "Play silence to a channel.", + "notes": "Using media operations such as /play on a channel playing silence in this manner will suspend silence without resuming automatically.", + "nickname": "startSilence", + "responseClass": "void", + "parameters": [ + { + "name": "channelId", + "description": "Channel's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Channel not found" + }, + { + "code": 409, + "reason": "Channel not in a Stasis application" + }, + { + "code": 412, + "reason": "Channel in invalid state" + } + ] + }, + { + "httpMethod": "DELETE", + "summary": "Stop playing silence to a channel.", + "nickname": "stopSilence", + "responseClass": "void", + "parameters": [ + { + "name": "channelId", + "description": "Channel's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Channel not found" + }, + { + "code": 409, + "reason": "Channel not in a Stasis application" + }, + { + "code": 412, + "reason": "Channel in invalid state" + } + ] + } + ] + }, + { + "path": "/channels/{channelId}/play", + "description": "Play media to a channel", + "operations": [ + { + "httpMethod": "POST", + "summary": "Start playback of media.", + "notes": "The media URI may be any of a number of URI's. Currently sound:, recording:, number:, digits:, characters:, and tone: URI's are supported. This operation creates a playback resource that can be used to control the playback of media (pause, rewind, fast forward, etc.)", + "nickname": "play", + "responseClass": "Playback", + "parameters": [ + { + "name": "channelId", + "description": "Channel's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "media", + "description": "Media URIs to play.", + "paramType": "query", + "required": true, + "allowMultiple": true, + "dataType": "string" + }, + { + "name": "lang", + "description": "For sounds, selects language for sound.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "offsetms", + "description": "Number of milliseconds to skip before playing. Only applies to the first URI if multiple media URIs are specified.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "int" + }, + { + "name": "skipms", + "description": "Number of milliseconds to skip for forward/reverse operations.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "int", + "defaultValue": 3000 + }, + { + "name": "playbackId", + "description": "Playback ID.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Channel not found" + }, + { + "code": 409, + "reason": "Channel not in a Stasis application" + }, + { + "code": 412, + "reason": "Channel in invalid state" + } + ] + } + ] + }, + { + "path": "/channels/{channelId}/play/{playbackId}", + "description": "Play media to a channel", + "operations": [ + { + "httpMethod": "POST", + "summary": "Start playback of media and specify the playbackId.", + "notes": "The media URI may be any of a number of URI's. Currently sound:, recording:, number:, digits:, characters:, and tone: URI's are supported. This operation creates a playback resource that can be used to control the playback of media (pause, rewind, fast forward, etc.)", + "nickname": "playWithId", + "responseClass": "Playback", + "parameters": [ + { + "name": "channelId", + "description": "Channel's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "playbackId", + "description": "Playback ID.", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "media", + "description": "Media URIs to play.", + "paramType": "query", + "required": true, + "allowMultiple": true, + "dataType": "string" + }, + { + "name": "lang", + "description": "For sounds, selects language for sound.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "offsetms", + "description": "Number of milliseconds to skip before playing. Only applies to the first URI if multiple media URIs are specified.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "int" + }, + { + "name": "skipms", + "description": "Number of milliseconds to skip for forward/reverse operations.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "int", + "defaultValue": 3000 + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Channel not found" + }, + { + "code": 409, + "reason": "Channel not in a Stasis application" + }, + { + "code": 412, + "reason": "Channel in invalid state" + } + ] + } + ] + }, + { + "path": "/channels/{channelId}/record", + "description": "Record audio from a channel", + "operations": [ + { + "httpMethod": "POST", + "summary": "Start a recording.", + "notes": "Record audio from a channel. Note that this will not capture audio sent to the channel. The bridge itself has a record feature if that's what you want.", + "nickname": "record", + "responseClass": "LiveRecording", + "parameters": [ + { + "name": "channelId", + "description": "Channel's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "name", + "description": "Recording's filename", + "paramType": "query", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "format", + "description": "Format to encode audio in", + "paramType": "query", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "maxDurationSeconds", + "description": "Maximum duration of the recording, in seconds. 0 for no limit", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "int", + "defaultValue": 0, + "allowableValues": { + "valueType": "RANGE", + "min": 0 + } + }, + { + "name": "maxSilenceSeconds", + "description": "Maximum duration of silence, in seconds. 0 for no limit", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "int", + "defaultValue": 0, + "allowableValues": { + "valueType": "RANGE", + "min": 0 + } + }, + { + "name": "ifExists", + "description": "Action to take if a recording with the same name already exists.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string", + "defaultValue": "fail", + "allowableValues": { + "valueType": "LIST", + "values": [ + "fail", + "overwrite", + "append" + ] + } + }, + { + "name": "beep", + "description": "Play beep when recording begins", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "boolean", + "defaultValue": false + }, + { + "name": "terminateOn", + "description": "DTMF input to terminate recording", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string", + "defaultValue": "none", + "allowableValues": { + "valueType": "LIST", + "values": [ + "none", + "any", + "*", + "#" + ] + } + } + ], + "errorResponses": [ + { + "code": 400, + "reason": "Invalid parameters" + }, + { + "code": 404, + "reason": "Channel not found" + }, + { + "code": 409, + "reason": "Channel is not in a Stasis application; the channel is currently bridged with other hcannels; A recording with the same name already exists on the system and can not be overwritten because it is in progress or ifExists=fail" + }, + { + "code": 422, + "reason": "The format specified is unknown on this system" + } + ] + } + ] + }, + { + "path": "/channels/{channelId}/variable", + "description": "Variables on a channel", + "operations": [ + { + "httpMethod": "GET", + "summary": "Get the value of a channel variable or function.", + "nickname": "getChannelVar", + "responseClass": "Variable", + "parameters": [ + { + "name": "channelId", + "description": "Channel's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "variable", + "description": "The channel variable or function to get", + "paramType": "query", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 400, + "reason": "Missing variable parameter." + }, + { + "code": 404, + "reason": "Channel or variable not found" + }, + { + "code": 409, + "reason": "Channel not in a Stasis application" + } + ] + }, + { + "httpMethod": "POST", + "summary": "Set the value of a channel variable or function.", + "nickname": "setChannelVar", + "responseClass": "void", + "parameters": [ + { + "name": "channelId", + "description": "Channel's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "variable", + "description": "The channel variable or function to set", + "paramType": "query", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "value", + "description": "The value to set the variable to", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 400, + "reason": "Missing variable parameter." + }, + { + "code": 404, + "reason": "Channel not found" + }, + { + "code": 409, + "reason": "Channel not in a Stasis application" + } + ] + } + ] + }, + { + "path": "/channels/{channelId}/snoop", + "description": "Snoop (spy/whisper) on a channel", + "operations": [ + { + "httpMethod": "POST", + "summary": "Start snooping.", + "notes": "Snoop (spy/whisper) on a specific channel.", + "nickname": "snoopChannel", + "responseClass": "Channel", + "parameters": [ + { + "name": "channelId", + "description": "Channel's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "spy", + "description": "Direction of audio to spy on", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string", + "defaultValue": "none", + "allowableValues": { + "valueType": "LIST", + "values": [ + "none", + "both", + "out", + "in" + ] + } + }, + { + "name": "whisper", + "description": "Direction of audio to whisper into", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string", + "defaultValue": "none", + "allowableValues": { + "valueType": "LIST", + "values": [ + "none", + "both", + "out", + "in" + ] + } + }, + { + "name": "app", + "description": "Application the snooping channel is placed into", + "paramType": "query", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "appArgs", + "description": "The application arguments to pass to the Stasis application", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "snoopId", + "description": "Unique ID to assign to snooping channel", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 400, + "reason": "Invalid parameters" + }, + { + "code": 404, + "reason": "Channel not found" + } + ] + } + ] + }, + { + "path": "/channels/{channelId}/snoop/{snoopId}", + "description": "Snoop (spy/whisper) on a channel", + "operations": [ + { + "httpMethod": "POST", + "summary": "Start snooping.", + "notes": "Snoop (spy/whisper) on a specific channel.", + "nickname": "snoopChannelWithId", + "responseClass": "Channel", + "parameters": [ + { + "name": "channelId", + "description": "Channel's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "snoopId", + "description": "Unique ID to assign to snooping channel", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "spy", + "description": "Direction of audio to spy on", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string", + "defaultValue": "none", + "allowableValues": { + "valueType": "LIST", + "values": [ + "none", + "both", + "out", + "in" + ] + } + }, + { + "name": "whisper", + "description": "Direction of audio to whisper into", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string", + "defaultValue": "none", + "allowableValues": { + "valueType": "LIST", + "values": [ + "none", + "both", + "out", + "in" + ] + } + }, + { + "name": "app", + "description": "Application the snooping channel is placed into", + "paramType": "query", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "appArgs", + "description": "The application arguments to pass to the Stasis application", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 400, + "reason": "Invalid parameters" + }, + { + "code": 404, + "reason": "Channel not found" + } + ] + } + ] + }, + { + "path": "/channels/{channelId}/dial", + "description": "Dial a channel", + "operations": [ + { + "httpMethod": "POST", + "summary": "Dial a created channel.", + "nickname": "dial", + "responseClass": "void", + "parameters": [ + { + "name": "channelId", + "description": "Channel's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "caller", + "description": "Channel ID of caller", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "timeout", + "description": "Dial timeout", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "int", + "defaultValue": 0, + "allowableValues": { + "valueType": "RANGE", + "min": 0 + } + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Channel cannot be found." + }, + { + "code": 409, + "reason": "Channel cannot be dialed." + } + ] + } + ] + }, + { + "path": "/channels/{channelId}/rtp_statistics", + "description": "Get RTP statistics information for RTP on a channel", + "operations": [ + { + "httpMethod": "GET", + "summary": "RTP stats on a channel.", + "nickname": "rtpstatistics", + "responseClass": "RTPstat", + "parameters": [ + { + "name": "channelId", + "description": "Channel's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Channel cannot be found." + } + ] + } + ] + }, + { + "path": "/channels/externalMedia", + "description": "Create a channel to an External Media source/sink.", + "operations": [ + { + "httpMethod": "POST", + "summary": "Start an External Media session.", + "notes": "Create a channel to an External Media source/sink.", + "nickname": "externalMedia", + "responseClass": "Channel", + "parameters": [ + { + "name": "channelId", + "description": "The unique id to assign the channel on creation.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "app", + "description": "Stasis Application to place channel into", + "paramType": "query", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "variables", + "description": "The \"variables\" key in the body object holds variable key/value pairs to set on the channel on creation. Other keys in the body object are interpreted as query parameters. Ex. { \"endpoint\": \"SIP/Alice\", \"variables\": { \"CALLERID(name)\": \"Alice\" } }", + "paramType": "body", + "required": false, + "dataType": "containers", + "allowMultiple": false + }, + { + "name": "external_host", + "description": "Hostname/ip:port of external host", + "paramType": "query", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "encapsulation", + "description": "Payload encapsulation protocol", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string", + "defaultValue": "rtp", + "allowableValues": { + "valueType": "LIST", + "values": [ + "rtp", + "audiosocket" + ] + } + }, + { + "name": "transport", + "description": "Transport protocol", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string", + "defaultValue": "udp", + "allowableValues": { + "valueType": "LIST", + "values": [ + "udp", + "tcp" + ] + } + }, + { + "name": "connection_type", + "description": "Connection type (client/server)", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string", + "defaultValue": "client", + "allowableValues": { + "valueType": "LIST", + "values": [ + "client" + ] + } + }, + { + "name": "format", + "description": "Format to encode audio in", + "paramType": "query", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "direction", + "description": "External media direction", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string", + "defaultValue": "both", + "allowableValues": { + "valueType": "LIST", + "values": [ + "both" + ] + } + }, + { + "name": "data", + "description": "An arbitrary data field", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 400, + "reason": "Invalid parameters" + }, + { + "code": 409, + "reason": "Channel is not in a Stasis application; Channel is already bridged" + } + ] + } + ] + } + ], + "models": { + "Dialed": { + "id": "Dialed", + "description": "Dialed channel information.", + "properties": {} + }, + "DialplanCEP": { + "id": "DialplanCEP", + "description": "Dialplan location (context/extension/priority)", + "properties": { + "context": { + "required": true, + "type": "string", + "description": "Context in the dialplan" + }, + "exten": { + "required": true, + "type": "string", + "description": "Extension in the dialplan" + }, + "priority": { + "required": true, + "type": "long", + "description": "Priority in the dialplan" + }, + "app_name": { + "required": true, + "type": "string", + "description": "Name of current dialplan application" + }, + "app_data": { + "required": true, + "type": "string", + "description": "Parameter of current dialplan application" + } + } + }, + "CallerID": { + "id": "CallerID", + "description": "Caller identification", + "properties": { + "name": { + "required": true, + "type": "string" + }, + "number": { + "required": true, + "type": "string" + } + } + }, + "RTPstat": { + "id": "RTPstat", + "description": "A statistics of a RTP.", + "properties": { + "txcount": { + "required": true, + "type": "int", + "description": "Number of packets transmitted." + }, + "rxcount": { + "required": true, + "type": "int", + "description": "Number of packets received." + }, + "txjitter": { + "required": false, + "type": "double", + "description": "Jitter on transmitted packets." + }, + "rxjitter": { + "required": false, + "type": "double", + "description": "Jitter on received packets." + }, + "remote_maxjitter": { + "required": false, + "type": "double", + "description": "Maximum jitter on remote side." + }, + "remote_minjitter": { + "required": false, + "type": "double", + "description": "Minimum jitter on remote side." + }, + "remote_normdevjitter": { + "required": false, + "type": "double", + "description": "Average jitter on remote side." + }, + "remote_stdevjitter": { + "required": false, + "type": "double", + "description": "Standard deviation jitter on remote side." + }, + "local_maxjitter": { + "required": false, + "type": "double", + "description": "Maximum jitter on local side." + }, + "local_minjitter": { + "required": false, + "type": "double", + "description": "Minimum jitter on local side." + }, + "local_normdevjitter": { + "required": false, + "type": "double", + "description": "Average jitter on local side." + }, + "local_stdevjitter": { + "required": false, + "type": "double", + "description": "Standard deviation jitter on local side." + }, + "txploss": { + "required": true, + "type": "int", + "description": "Number of transmitted packets lost." + }, + "rxploss": { + "required": true, + "type": "int", + "description": "Number of received packets lost." + }, + "remote_maxrxploss": { + "required": false, + "type": "double", + "description": "Maximum number of packets lost on remote side." + }, + "remote_minrxploss": { + "required": false, + "type": "double", + "description": "Minimum number of packets lost on remote side." + }, + "remote_normdevrxploss": { + "required": false, + "type": "double", + "description": "Average number of packets lost on remote side." + }, + "remote_stdevrxploss": { + "required": false, + "type": "double", + "description": "Standard deviation packets lost on remote side." + }, + "local_maxrxploss": { + "required": false, + "type": "double", + "description": "Maximum number of packets lost on local side." + }, + "local_minrxploss": { + "required": false, + "type": "double", + "description": "Minimum number of packets lost on local side." + }, + "local_normdevrxploss": { + "required": false, + "type": "double", + "description": "Average number of packets lost on local side." + }, + "local_stdevrxploss": { + "required": false, + "type": "double", + "description": "Standard deviation packets lost on local side." + }, + "rtt": { + "required": false, + "type": "double", + "description": "Total round trip time." + }, + "maxrtt": { + "required": false, + "type": "double", + "description": "Maximum round trip time." + }, + "minrtt": { + "required": false, + "type": "double", + "description": "Minimum round trip time." + }, + "normdevrtt": { + "required": false, + "type": "double", + "description": "Average round trip time." + }, + "stdevrtt": { + "required": false, + "type": "double", + "description": "Standard deviation round trip time." + }, + "local_ssrc": { + "required": true, + "type": "int", + "description": "Our SSRC." + }, + "remote_ssrc": { + "required": true, + "type": "int", + "description": "Their SSRC." + }, + "txoctetcount": { + "required": true, + "type": "int", + "description": "Number of octets transmitted." + }, + "rxoctetcount": { + "required": true, + "type": "int", + "description": "Number of octets received." + }, + "channel_uniqueid": { + "required": true, + "type": "string", + "description": "The Asterisk channel's unique ID that owns this instance." + } + } + }, + "Channel": { + "id": "Channel", + "description": "A specific communication connection between Asterisk and an Endpoint.", + "properties": { + "id": { + "required": true, + "type": "string", + "description": "Unique identifier of the channel.\n\nThis is the same as the Uniqueid field in AMI." + }, + "protocol_id": { + "required": true, + "type": "string", + "description": "Protocol id from underlying channel driver (i.e. Call-ID for chan_sip/chan_pjsip; will be empty if not applicable or not implemented by driver)." + }, + "name": { + "required": true, + "type": "string", + "description": "Name of the channel (i.e. SIP/foo-0000a7e3)" + }, + "state": { + "required": true, + "type": "string", + "allowableValues": { + "valueType": "LIST", + "values": [ + "Down", + "Rsrved", + "OffHook", + "Dialing", + "Ring", + "Ringing", + "Up", + "Busy", + "Dialing Offhook", + "Pre-ring", + "Unknown" + ] + } + }, + "caller": { + "required": true, + "type": "CallerID" + }, + "connected": { + "required": true, + "type": "CallerID" + }, + "accountcode": { + "required": true, + "type": "string" + }, + "dialplan": { + "required": true, + "type": "DialplanCEP", + "description": "Current location in the dialplan" + }, + "creationtime": { + "required": true, + "type": "Date", + "description": "Timestamp when channel was created" + }, + "language": { + "required": true, + "type": "string", + "description": "The default spoken language" + }, + "channelvars": { + "required": false, + "type": "object", + "description": "Channel variables" + } + } + } + } +} diff --git a/codegen/src/main/resources/codegen-data/ari_7_0_1/deviceStates.json b/codegen/src/main/resources/codegen-data/ari_7_0_1/deviceStates.json new file mode 100644 index 00000000..bd389355 --- /dev/null +++ b/codegen/src/main/resources/codegen-data/ari_7_0_1/deviceStates.json @@ -0,0 +1,154 @@ +{ + "_copyright": "Copyright (C) 2012 - 2013, Digium, Inc.", + "_author": "Kevin Harwell ", + "_svn_revision": "$Revision$", + "apiVersion": "2.0.0", + "swaggerVersion": "1.1", + "basePath": "http://localhost:8088/ari", + "resourcePath": "/api-docs/deviceStates.{format}", + "requiresModules": [ + "res_stasis_device_state" + ], + "apis": [ + { + "path": "/deviceStates", + "description": "Device states", + "operations": [ + { + "httpMethod": "GET", + "summary": "List all ARI controlled device states.", + "nickname": "list", + "responseClass": "List[DeviceState]" + } + ] + }, + { + "path": "/deviceStates/{deviceName}", + "description": "Device state", + "operations": [ + { + "httpMethod": "GET", + "summary": "Retrieve the current state of a device.", + "nickname": "get", + "responseClass": "DeviceState", + "parameters": [ + { + "name": "deviceName", + "description": "Name of the device", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ] + }, + { + "httpMethod": "PUT", + "summary": "Change the state of a device controlled by ARI. (Note - implicitly creates the device state).", + "nickname": "update", + "responseClass": "void", + "parameters": [ + { + "name": "deviceName", + "description": "Name of the device", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "deviceState", + "description": "Device state value", + "paramType": "query", + "required": true, + "allowMultiple": false, + "dataType": "string", + "allowableValues": { + "valueType": "LIST", + "values": [ + "NOT_INUSE", + "INUSE", + "BUSY", + "INVALID", + "UNAVAILABLE", + "RINGING", + "RINGINUSE", + "ONHOLD" + ] + } + + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Device name is missing" + }, + { + "code": 409, + "reason": "Uncontrolled device specified" + } + ] + }, + { + "httpMethod": "DELETE", + "summary": "Destroy a device-state controlled by ARI.", + "nickname": "delete", + "responseClass": "void", + "parameters": [ + { + "name": "deviceName", + "description": "Name of the device", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Device name is missing" + }, + { + "code": 409, + "reason": "Uncontrolled device specified" + } + ] + } + ] + } + ], + "models": { + "DeviceState": { + "id": "DeviceState", + "description": "Represents the state of a device.", + "properties": { + "name": { + "type": "string", + "description": "Name of the device.", + "required": true + }, + "state": { + "type": "string", + "description": "Device's state", + "required": true, + "allowableValues": { + "valueType": "LIST", + "values": [ + "UNKNOWN", + "NOT_INUSE", + "INUSE", + "BUSY", + "INVALID", + "UNAVAILABLE", + "RINGING", + "RINGINUSE", + "ONHOLD" + ] + } + } + } + } + } +} diff --git a/codegen/src/main/resources/codegen-data/ari_7_0_1/endpoints.json b/codegen/src/main/resources/codegen-data/ari_7_0_1/endpoints.json new file mode 100644 index 00000000..1f77d370 --- /dev/null +++ b/codegen/src/main/resources/codegen-data/ari_7_0_1/endpoints.json @@ -0,0 +1,263 @@ +{ + "_copyright": "Copyright (C) 2012 - 2013, Digium, Inc.", + "_author": "David M. Lee, II ", + "_svn_revision": "$Revision$", + "apiVersion": "2.0.0", + "swaggerVersion": "1.1", + "basePath": "http://localhost:8088/ari", + "resourcePath": "/api-docs/endpoints.{format}", + "apis": [ + { + "path": "/endpoints", + "description": "Asterisk endpoints", + "operations": [ + { + "httpMethod": "GET", + "summary": "List all endpoints.", + "nickname": "list", + "responseClass": "List[Endpoint]" + } + ] + }, + { + "path": "/endpoints/sendMessage", + "description": "Send a message to some technology URI or endpoint.", + "operations": [ + { + "httpMethod": "PUT", + "summary": "Send a message to some technology URI or endpoint.", + "nickname": "sendMessage", + "responseClass": "void", + "parameters": [ + { + "name": "to", + "description": "The endpoint resource or technology specific URI to send the message to. Valid resources are sip, pjsip, and xmpp.", + "paramType": "query", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "from", + "description": "The endpoint resource or technology specific identity to send this message from. Valid resources are sip, pjsip, and xmpp.", + "paramType": "query", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "body", + "description": "The body of the message", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "variables", + "descriptioni": "The \"variables\" key in the body object holds technology specific key/value pairs to append to the message. These can be interpreted and used by the various resource types; for example, pjsip and sip resource types will add the key/value pairs as SIP headers,", + "paramType": "body", + "required": false, + "dataType": "containers", + "allowMultiple": false + } + ], + "errorResponses": [ + { + "code": 400, + "reason": "Invalid parameters for sending a message." + }, + { + "code": 404, + "reason": "Endpoint not found" + } + ] + } + ] + }, + { + "path": "/endpoints/{tech}", + "description": "Asterisk endpoints", + "operations": [ + { + "httpMethod": "GET", + "summary": "List available endoints for a given endpoint technology.", + "nickname": "listByTech", + "responseClass": "List[Endpoint]", + "parameters": [ + { + "name": "tech", + "description": "Technology of the endpoints (sip,iax2,...)", + "paramType": "path", + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Endpoints not found" + } + ] + } + ] + }, + { + "path": "/endpoints/{tech}/{resource}", + "description": "Single endpoint", + "operations": [ + { + "httpMethod": "GET", + "summary": "Details for an endpoint.", + "nickname": "get", + "responseClass": "Endpoint", + "parameters": [ + { + "name": "tech", + "description": "Technology of the endpoint", + "paramType": "path", + "dataType": "string" + }, + { + "name": "resource", + "description": "ID of the endpoint", + "paramType": "path", + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 400, + "reason": "Invalid parameters for sending a message." + }, + { + "code": 404, + "reason": "Endpoints not found" + } + ] + } + ] + }, + { + "path": "/endpoints/{tech}/{resource}/sendMessage", + "description": "Send a message to some endpoint in a technology.", + "operations": [ + { + "httpMethod": "PUT", + "summary": "Send a message to some endpoint in a technology.", + "nickname": "sendMessageToEndpoint", + "responseClass": "void", + "parameters": [ + { + "name": "tech", + "description": "Technology of the endpoint", + "paramType": "path", + "dataType": "string" + }, + { + "name": "resource", + "description": "ID of the endpoint", + "paramType": "path", + "dataType": "string" + }, + { + "name": "from", + "description": "The endpoint resource or technology specific identity to send this message from. Valid resources are sip, pjsip, and xmpp.", + "paramType": "query", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "body", + "description": "The body of the message", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "variables", + "descriptioni": "The \"variables\" key in the body object holds technology specific key/value pairs to append to the message. These can be interpreted and used by the various resource types; for example, pjsip and sip resource types will add the key/value pairs as SIP headers,", + "paramType": "body", + "required": false, + "dataType": "containers", + "allowMultiple": false + } + ], + "errorResponses": [ + { + "code": 400, + "reason": "Invalid parameters for sending a message." + }, + { + "code": 404, + "reason": "Endpoint not found" + } + ] + } + ] + } + ], + "models": { + "Endpoint": { + "id": "Endpoint", + "description": "An external device that may offer/accept calls to/from Asterisk.\n\nUnlike most resources, which have a single unique identifier, an endpoint is uniquely identified by the technology/resource pair.", + "properties": { + "technology": { + "type": "string", + "description": "Technology of the endpoint", + "required": true + }, + "resource": { + "type": "string", + "description": "Identifier of the endpoint, specific to the given technology.", + "required": true + }, + "state": { + "type": "string", + "description": "Endpoint's state", + "required": false, + "allowableValues": { + "valueType": "LIST", + "values": [ + "unknown", + "offline", + "online" + ] + } + }, + "channel_ids": { + "type": "List[string]", + "description": "Id's of channels associated with this endpoint", + "required": true + } + } + }, + "TextMessage": { + "id": "TextMessage", + "description": "A text message.", + "properties": { + "from": { + "type": "string", + "description": "A technology specific URI specifying the source of the message. For sip and pjsip technologies, any SIP URI can be specified. For xmpp, the URI must correspond to the client connection being used to send the message.", + "required": true + }, + "to": { + "type": "string", + "description": "A technology specific URI specifying the destination of the message. Valid technologies include sip, pjsip, and xmp. The destination of a message should be an endpoint.", + "required": true + }, + "body": { + "type": "string", + "description": "The text of the message.", + "required": true + }, + "variables": { + "type": "object", + "description": "Technology specific key/value pairs (JSON object) associated with the message.", + "required": false + } + } + } + } +} diff --git a/codegen/src/main/resources/codegen-data/ari_7_0_1/events.json b/codegen/src/main/resources/codegen-data/ari_7_0_1/events.json new file mode 100644 index 00000000..c9822f6c --- /dev/null +++ b/codegen/src/main/resources/codegen-data/ari_7_0_1/events.json @@ -0,0 +1,918 @@ +{ + "_copyright": "Copyright (C) 2012 - 2013, Digium, Inc.", + "_author": "David M. Lee, II ", + "_svn_revision": "$Revision$", + "apiVersion": "2.0.0", + "swaggerVersion": "1.2", + "basePath": "http://localhost:8088/ari", + "resourcePath": "/api-docs/events.{format}", + "requiresModules": [ + "res_http_websocket" + ], + "apis": [ + { + "path": "/events", + "description": "Events from Asterisk to applications", + "operations": [ + { + "httpMethod": "GET", + "upgrade": "websocket", + "websocketProtocol": "ari", + "summary": "WebSocket connection for events.", + "nickname": "eventWebsocket", + "responseClass": "Message", + "parameters": [ + { + "name": "app", + "description": "Applications to subscribe to.", + "paramType": "query", + "required": true, + "allowMultiple": true, + "dataType": "string" + }, + { + "name": "subscribeAll", + "description": "Subscribe to all Asterisk events. If provided, the applications listed will be subscribed to all events, effectively disabling the application specific subscriptions. Default is 'false'.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "boolean" + } + ] + } + ] + }, + { + "path": "/events/user/{eventName}", + "description": "Stasis application user events", + "operations": [ + { + "httpMethod": "POST", + "summary": "Generate a user event.", + "nickname": "userEvent", + "responseClass": "void", + "parameters": [ + { + "name": "eventName", + "description": "Event name", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "application", + "description": "The name of the application that will receive this event", + "paramType": "query", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "source", + "description": "URI for event source (channel:{channelId}, bridge:{bridgeId}, endpoint:{tech}/{resource}, deviceState:{deviceName}", + "paramType": "query", + "required": false, + "allowMultiple": true, + "dataType": "string" + }, + { + "name": "variables", + "description": "The \"variables\" key in the body object holds custom key/value pairs to add to the user event. Ex. { \"variables\": { \"key\": \"value\" } }", + "paramType": "body", + "required": false, + "allowMultiple": false, + "dataType": "containers" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Application does not exist." + }, + { + "code": 422, + "reason": "Event source not found." + }, + { + "code": 400, + "reason": "Invalid even tsource URI or userevent data." + } + ] + } + ] + } + ], + "models": { + "Message": { + "id": "Message", + "description": "Base type for errors and events", + "discriminator": "type", + "properties": { + "type": { + "type": "string", + "required": true, + "description": "Indicates the type of this message." + }, + "asterisk_id": { + "type": "string", + "required": false, + "description": "The unique ID for the Asterisk instance that raised this event." + } + }, + "subTypes": [ + "MissingParams", + "Event" + ] + }, + "MissingParams": { + "id": "MissingParams", + "description": "Error event sent when required params are missing.", + "properties": { + "params": { + "required": true, + "type": "List[string]", + "description": "A list of the missing parameters" + } + } + }, + "Event": { + "id": "Event", + "description": "Base type for asynchronous events from Asterisk.", + "properties": { + "application": { + "type": "string", + "description": "Name of the application receiving the event.", + "required": true + }, + "timestamp": { + "type": "Date", + "description": "Time at which this event was created.", + "required": true + } + }, + "subTypes": [ + "DeviceStateChanged", + "PlaybackStarted", + "PlaybackContinuing", + "PlaybackFinished", + "RecordingStarted", + "RecordingFinished", + "RecordingFailed", + "ApplicationMoveFailed", + "ApplicationReplaced", + "BridgeCreated", + "BridgeDestroyed", + "BridgeMerged", + "BridgeBlindTransfer", + "BridgeAttendedTransfer", + "BridgeVideoSourceChanged", + "ChannelCreated", + "ChannelDestroyed", + "ChannelEnteredBridge", + "ChannelLeftBridge", + "ChannelStateChange", + "ChannelDtmfReceived", + "ChannelDialplan", + "ChannelCallerId", + "ChannelUserevent", + "ChannelHangupRequest", + "ChannelVarset", + "ChannelTalkingStarted", + "ChannelTalkingFinished", + "ChannelHold", + "ChannelUnhold", + "ContactStatusChange", + "EndpointStateChange", + "Dial", + "StasisEnd", + "StasisStart", + "TextMessageReceived", + "ChannelConnectedLine", + "PeerStatusChange" + ] + }, + "ContactInfo": { + "id": "ContactInfo", + "description": "Detailed information about a contact on an endpoint.", + "properties": { + "uri": { + "type": "string", + "description": "The location of the contact.", + "required": true + }, + "contact_status": { + "type": "string", + "description": "The current status of the contact.", + "required": true, + "allowableValues": { + "valueType": "LIST", + "values": [ + "Unreachable", + "Reachable", + "Unknown", + "NonQualified", + "Removed" + ] + } + }, + "aor": { + "type": "string", + "description": "The Address of Record this contact belongs to.", + "required": true + }, + "roundtrip_usec": { + "type": "string", + "description": "Current round trip time, in microseconds, for the contact.", + "required": false + } + } + }, + "Peer": { + "id": "Peer", + "description": "Detailed information about a remote peer that communicates with Asterisk.", + "properties": { + "peer_status": { + "type": "string", + "description": "The current state of the peer. Note that the values of the status are dependent on the underlying peer technology.", + "required": true + }, + "cause": { + "type": "string", + "description": "An optional reason associated with the change in peer_status.", + "required": false + }, + "address": { + "type": "string", + "description": "The IP address of the peer.", + "required": false + }, + "port": { + "type": "string", + "description": "The port of the peer.", + "required": false + }, + "time": { + "type": "string", + "description": "The last known time the peer was contacted.", + "required": false + } + } + }, + "DeviceStateChanged": { + "id": "DeviceStateChanged", + "description": "Notification that a device state has changed.", + "properties": { + "device_state": { + "type": "DeviceState", + "description": "Device state object", + "required": true + } + } + }, + "PlaybackStarted": { + "id": "PlaybackStarted", + "description": "Event showing the start of a media playback operation.", + "properties": { + "playback": { + "type": "Playback", + "description": "Playback control object", + "required": true + } + } + }, + "PlaybackContinuing": { + "id": "PlaybackContinuing", + "description": "Event showing the continuation of a media playback operation from one media URI to the next in the list.", + "properties": { + "playback": { + "type": "Playback", + "description": "Playback control object", + "required": true + } + } + }, + "PlaybackFinished": { + "id": "PlaybackFinished", + "description": "Event showing the completion of a media playback operation.", + "properties": { + "playback": { + "type": "Playback", + "description": "Playback control object", + "required": true + } + } + }, + "RecordingStarted": { + "id": "RecordingStarted", + "description": "Event showing the start of a recording operation.", + "properties": { + "recording": { + "type": "LiveRecording", + "description": "Recording control object", + "required": true + } + } + }, + "RecordingFinished": { + "id": "RecordingFinished", + "description": "Event showing the completion of a recording operation.", + "properties": { + "recording": { + "type": "LiveRecording", + "description": "Recording control object", + "required": true + } + } + }, + "RecordingFailed": { + "id": "RecordingFailed", + "description": "Event showing failure of a recording operation.", + "properties": { + "recording": { + "type": "LiveRecording", + "description": "Recording control object", + "required": true + } + } + }, + "ApplicationMoveFailed": { + "id": "ApplicationMoveFailed", + "description": "Notification that trying to move a channel to another Stasis application failed.", + "properties": { + "channel": { + "required": true, + "type": "Channel" + }, + "destination": { + "required": true, + "type": "string" + }, + "args": { + "required": true, + "type": "List[string]", + "description": "Arguments to the application" + } + } + }, + "ApplicationReplaced": { + "id": "ApplicationReplaced", + "description": "Notification that another WebSocket has taken over for an application.\n\nAn application may only be subscribed to by a single WebSocket at a time. If multiple WebSockets attempt to subscribe to the same application, the newer WebSocket wins, and the older one receives this event.", + "properties": {} + }, + "BridgeCreated": { + "id": "BridgeCreated", + "description": "Notification that a bridge has been created.", + "properties": { + "bridge": { + "required": true, + "type": "Bridge" + } + } + }, + "BridgeDestroyed": { + "id": "BridgeDestroyed", + "description": "Notification that a bridge has been destroyed.", + "properties": { + "bridge": { + "required": true, + "type": "Bridge" + } + } + }, + "BridgeMerged": { + "id": "BridgeMerged", + "description": "Notification that one bridge has merged into another.", + "properties": { + "bridge": { + "required": true, + "type": "Bridge" + }, + "bridge_from": { + "required": true, + "type": "Bridge" + } + } + }, + "BridgeVideoSourceChanged": { + "id": "BridgeVideoSourceChanged", + "description": "Notification that the source of video in a bridge has changed.", + "properties": { + "bridge": { + "required": true, + "type": "Bridge" + }, + "old_video_source_id": { + "required": false, + "type": "string" + } + } + }, + "BridgeBlindTransfer": { + "id": "BridgeBlindTransfer", + "description": "Notification that a blind transfer has occurred.", + "properties": { + "channel": { + "description": "The channel performing the blind transfer", + "required": true, + "type": "Channel" + }, + "replace_channel": { + "description": "The channel that is replacing transferer when the transferee(s) can not be transferred directly", + "required": false, + "type": "Channel" + }, + "transferee": { + "description": "The channel that is being transferred", + "required": false, + "type": "Channel" + }, + "exten": { + "description": "The extension transferred to", + "required": true, + "type": "string" + }, + "context": { + "description": "The context transferred to", + "required": true, + "type": "string" + }, + "result": { + "description": "The result of the transfer attempt", + "required": true, + "type": "string" + }, + "is_external": { + "description": "Whether the transfer was externally initiated or not", + "required": true, + "type": "boolean" + }, + "bridge": { + "description": "The bridge being transferred", + "type": "Bridge" + } + } + }, + "BridgeAttendedTransfer": { + "id": "BridgeAttendedTransfer", + "description": "Notification that an attended transfer has occurred.", + "properties": { + "transferer_first_leg": { + "description": "First leg of the transferer", + "required": true, + "type": "Channel" + }, + "transferer_second_leg": { + "description": "Second leg of the transferer", + "required": true, + "type": "Channel" + }, + "replace_channel": { + "description": "The channel that is replacing transferer_first_leg in the swap", + "required": false, + "type": "Channel" + }, + "transferee": { + "description": "The channel that is being transferred", + "required": false, + "type": "Channel" + }, + "transfer_target": { + "description": "The channel that is being transferred to", + "required": false, + "type": "Channel" + }, + "result": { + "description": "The result of the transfer attempt", + "required": true, + "type": "string" + }, + "is_external": { + "description": "Whether the transfer was externally initiated or not", + "required": true, + "type": "boolean" + }, + "transferer_first_leg_bridge": { + "description": "Bridge the transferer first leg is in", + "type": "Bridge" + }, + "transferer_second_leg_bridge": { + "description": "Bridge the transferer second leg is in", + "type": "Bridge" + }, + "destination_type": { + "description": "How the transfer was accomplished", + "required": true, + "type": "string" + }, + "destination_bridge": { + "description": "Bridge that survived the merge result", + "type": "string" + }, + "destination_application": { + "description": "Application that has been transferred into", + "type": "string" + }, + "destination_link_first_leg": { + "description": "First leg of a link transfer result", + "type": "Channel" + }, + "destination_link_second_leg": { + "description": "Second leg of a link transfer result", + "type": "Channel" + }, + "destination_threeway_channel": { + "description": "Transferer channel that survived the threeway result", + "type": "Channel" + }, + "destination_threeway_bridge": { + "description": "Bridge that survived the threeway result", + "type": "Bridge" + } + } + }, + "ChannelCreated": { + "id": "ChannelCreated", + "description": "Notification that a channel has been created.", + "properties": { + "channel": { + "required": true, + "type": "Channel" + } + } + }, + "ChannelDestroyed": { + "id": "ChannelDestroyed", + "description": "Notification that a channel has been destroyed.", + "properties": { + "cause": { + "required": true, + "description": "Integer representation of the cause of the hangup", + "type": "int" + }, + "cause_txt": { + "required": true, + "description": "Text representation of the cause of the hangup", + "type": "string" + }, + "channel": { + "required": true, + "type": "Channel" + } + } + }, + "ChannelEnteredBridge": { + "id": "ChannelEnteredBridge", + "description": "Notification that a channel has entered a bridge.", + "properties": { + "bridge": { + "required": true, + "type": "Bridge" + }, + "channel": { + "type": "Channel" + } + } + }, + "ChannelLeftBridge": { + "id": "ChannelLeftBridge", + "description": "Notification that a channel has left a bridge.", + "properties": { + "bridge": { + "required": true, + "type": "Bridge" + }, + "channel": { + "required": true, + "type": "Channel" + } + } + }, + "ChannelStateChange": { + "id": "ChannelStateChange", + "description": "Notification of a channel's state change.", + "properties": { + "channel": { + "required": true, + "type": "Channel" + } + } + }, + "ChannelDtmfReceived": { + "id": "ChannelDtmfReceived", + "description": "DTMF received on a channel.\n\nThis event is sent when the DTMF ends. There is no notification about the start of DTMF", + "properties": { + "digit": { + "required": true, + "type": "string", + "description": "DTMF digit received (0-9, A-E, # or *)" + }, + "duration_ms": { + "required": true, + "type": "int", + "description": "Number of milliseconds DTMF was received" + }, + "channel": { + "required": true, + "type": "Channel", + "description": "The channel on which DTMF was received" + } + } + }, + "ChannelDialplan": { + "id": "ChannelDialplan", + "description": "Channel changed location in the dialplan.", + "properties": { + "channel": { + "required": true, + "type": "Channel", + "description": "The channel that changed dialplan location." + }, + "dialplan_app": { + "required": true, + "type": "string", + "description": "The application about to be executed." + }, + "dialplan_app_data": { + "required": true, + "type": "string", + "description": "The data to be passed to the application." + } + } + }, + "ChannelCallerId": { + "id": "ChannelCallerId", + "description": "Channel changed Caller ID.", + "properties": { + "caller_presentation": { + "required": true, + "type": "int", + "description": "The integer representation of the Caller Presentation value." + }, + "caller_presentation_txt": { + "required": true, + "type": "string", + "description": "The text representation of the Caller Presentation value." + }, + "channel": { + "required": true, + "type": "Channel", + "description": "The channel that changed Caller ID." + } + } + }, + "ChannelUserevent": { + "id": "ChannelUserevent", + "description": "User-generated event with additional user-defined fields in the object.", + "properties": { + "eventname": { + "required": true, + "type": "string", + "description": "The name of the user event." + }, + "channel": { + "required": false, + "type": "Channel", + "description": "A channel that is signaled with the user event." + }, + "bridge": { + "required": false, + "type": "Bridge", + "description": "A bridge that is signaled with the user event." + }, + "endpoint": { + "required": false, + "type": "Endpoint", + "description": "A endpoint that is signaled with the user event." + }, + "userevent": { + "required": true, + "type": "object", + "description": "Custom Userevent data" + } + } + }, + "ChannelHangupRequest": { + "id": "ChannelHangupRequest", + "description": "A hangup was requested on the channel.", + "properties": { + "cause": { + "type": "int", + "description": "Integer representation of the cause of the hangup." + }, + "soft": { + "type": "boolean", + "description": "Whether the hangup request was a soft hangup request." + }, + "channel": { + "required": true, + "type": "Channel", + "description": "The channel on which the hangup was requested." + } + } + }, + "ChannelVarset": { + "id": "ChannelVarset", + "description": "Channel variable changed.", + "properties": { + "variable": { + "required": true, + "type": "string", + "description": "The variable that changed." + }, + "value": { + "required": true, + "type": "string", + "description": "The new value of the variable." + }, + "channel": { + "required": false, + "type": "Channel", + "description": "The channel on which the variable was set.\n\nIf missing, the variable is a global variable." + } + } + }, + "ChannelHold": { + "id": "ChannelHold", + "description": "A channel initiated a media hold.", + "properties": { + "channel": { + "required": true, + "type": "Channel", + "description": "The channel that initiated the hold event." + }, + "musicclass": { + "required": false, + "type": "string", + "description": "The music on hold class that the initiator requested." + } + } + }, + "ChannelUnhold": { + "id": "ChannelUnhold", + "description": "A channel initiated a media unhold.", + "properties": { + "channel": { + "required": true, + "type": "Channel", + "description": "The channel that initiated the unhold event." + } + } + }, + "ChannelTalkingStarted": { + "id": "ChannelTalkingStarted", + "description": "Talking was detected on the channel.", + "properties": { + "channel": { + "required": true, + "type": "Channel", + "description": "The channel on which talking started." + } + } + }, + "ChannelTalkingFinished": { + "id": "ChannelTalkingFinished", + "description": "Talking is no longer detected on the channel.", + "properties": { + "channel": { + "required": true, + "type": "Channel", + "description": "The channel on which talking completed." + }, + "duration": { + "required": true, + "type": "int", + "description": "The length of time, in milliseconds, that talking was detected on the channel" + } + } + }, + "ContactStatusChange": { + "id": "ContactStatusChange", + "description": "The state of a contact on an endpoint has changed.", + "properties": { + "endpoint": { + "required": true, + "type": "Endpoint" + }, + "contact_info": { + "required": true, + "type": "ContactInfo" + } + } + }, + "PeerStatusChange": { + "id": "PeerStatusChange", + "description": "The state of a peer associated with an endpoint has changed.", + "properties": { + "endpoint": { + "required": true, + "type": "Endpoint" + }, + "peer": { + "required": true, + "type": "Peer" + } + } + }, + "EndpointStateChange": { + "id": "EndpointStateChange", + "description": "Endpoint state changed.", + "properties": { + "endpoint": { + "required": true, + "type": "Endpoint" + } + } + }, + "Dial": { + "id": "Dial", + "description": "Dialing state has changed.", + "properties": { + "caller": { + "required": false, + "type": "Channel", + "description": "The calling channel." + }, + "peer": { + "required": true, + "type": "Channel", + "description": "The dialed channel." + }, + "forward": { + "required": false, + "type": "string", + "description": "Forwarding target requested by the original dialed channel." + }, + "forwarded": { + "required": false, + "type": "Channel", + "description": "Channel that the caller has been forwarded to." + }, + "dialstring": { + "required": false, + "type": "string", + "description": "The dial string for calling the peer channel." + }, + "dialstatus": { + "required": true, + "type": "string", + "description": "Current status of the dialing attempt to the peer." + } + } + }, + "StasisEnd": { + "id": "StasisEnd", + "description": "Notification that a channel has left a Stasis application.", + "properties": { + "channel": { + "required": true, + "type": "Channel" + } + } + }, + "StasisStart": { + "id": "StasisStart", + "description": "Notification that a channel has entered a Stasis application.", + "properties": { + "args": { + "required": true, + "type": "List[string]", + "description": "Arguments to the application" + }, + "channel": { + "required": true, + "type": "Channel" + }, + "replace_channel": { + "required": false, + "type": "Channel" + } + } + }, + "TextMessageReceived": { + "id": "TextMessageReceived", + "description": "A text message was received from an endpoint.", + "properties": { + "message": { + "required": true, + "type": "TextMessage" + }, + "endpoint": { + "required": false, + "type": "Endpoint" + } + } + }, + "ChannelConnectedLine": { + "id": "ChannelConnectedLine", + "description": "Channel changed Connected Line.", + "properties": { + "channel": { + "required": true, + "type": "Channel", + "description": "The channel whose connected line has changed." + } + } + } + } +} diff --git a/codegen/src/main/resources/codegen-data/ari_7_0_1/mailboxes.json b/codegen/src/main/resources/codegen-data/ari_7_0_1/mailboxes.json new file mode 100644 index 00000000..8f5941b8 --- /dev/null +++ b/codegen/src/main/resources/codegen-data/ari_7_0_1/mailboxes.json @@ -0,0 +1,137 @@ +{ + "_copyright": "Copyright (C) 2013, Digium, Inc.", + "_author": "Jonathan Rose ", + "_svn_revision": "$Revision$", + "apiVersion": "2.0.0", + "swaggerVersion": "1.1", + "basePath": "http://localhost:8088/ari", + "resourcePath": "/api-docs/mailboxes.{format}", + "requiresModules": [ + "res_stasis_mailbox" + ], + "apis": [ + { + "path": "/mailboxes", + "description": "Mailboxes", + "operations": [ + { + "httpMethod": "GET", + "summary": "List all mailboxes.", + "nickname": "list", + "responseClass": "List[Mailbox]" + } + ] + }, + { + "path": "/mailboxes/{mailboxName}", + "description": "Mailbox state", + "operations": [ + { + "httpMethod": "GET", + "summary": "Retrieve the current state of a mailbox.", + "nickname": "get", + "responseClass": "Mailbox", + "parameters": [ + { + "name": "mailboxName", + "description": "Name of the mailbox", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Mailbox not found" + } + ] + }, + { + "httpMethod": "PUT", + "summary": "Change the state of a mailbox. (Note - implicitly creates the mailbox).", + "nickname": "update", + "responseClass": "void", + "parameters": [ + { + "name": "mailboxName", + "description": "Name of the mailbox", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "oldMessages", + "description": "Count of old messages in the mailbox", + "paramType": "query", + "required": true, + "allowMultiple": false, + "dataType": "int" + }, + { + "name": "newMessages", + "description": "Count of new messages in the mailbox", + "paramType": "query", + "required": true, + "allowMultiple": false, + "dataType": "int" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Mailbox not found" + } + ] + }, + { + "httpMethod": "DELETE", + "summary": "Destroy a mailbox.", + "nickname": "delete", + "responseClass": "void", + "parameters": [ + { + "name": "mailboxName", + "description": "Name of the mailbox", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Mailbox not found" + } + ] + } + ] + } + ], + "models": { + "Mailbox": { + "id": "Mailbox", + "description": "Represents the state of a mailbox.", + "properties": { + "name": { + "type": "string", + "description": "Name of the mailbox.", + "required": true + }, + "old_messages": { + "type": "int", + "description": "Count of old messages in the mailbox.", + "required": true + }, + "new_messages": { + "type": "int", + "description": "Count of new messages in the mailbox.", + "required": true + } + } + } + } +} diff --git a/codegen/src/main/resources/codegen-data/ari_7_0_1/playbacks.json b/codegen/src/main/resources/codegen-data/ari_7_0_1/playbacks.json new file mode 100644 index 00000000..793986fc --- /dev/null +++ b/codegen/src/main/resources/codegen-data/ari_7_0_1/playbacks.json @@ -0,0 +1,165 @@ +{ + "_copyright": "Copyright (C) 2012 - 2013, Digium, Inc.", + "_author": "David M. Lee, II ", + "_svn_revision": "$Revision$", + "apiVersion": "2.0.0", + "swaggerVersion": "1.1", + "basePath": "http://localhost:8088/ari", + "resourcePath": "/api-docs/playbacks.{format}", + "requiresModules": [ + "res_stasis_playback" + ], + "apis": [ + { + "path": "/playbacks/{playbackId}", + "description": "Control object for a playback operation.", + "operations": [ + { + "httpMethod": "GET", + "summary": "Get a playback's details.", + "nickname": "get", + "responseClass": "Playback", + "parameters": [ + { + "name": "playbackId", + "description": "Playback's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "The playback cannot be found" + } + ] + }, + { + "httpMethod": "DELETE", + "summary": "Stop a playback.", + "nickname": "stop", + "responseClass": "void", + "parameters": [ + { + "name": "playbackId", + "description": "Playback's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "The playback cannot be found" + } + ] + } + ] + }, + { + "path": "/playbacks/{playbackId}/control", + "description": "Control object for a playback operation.", + "operations": [ + { + "httpMethod": "POST", + "summary": "Control a playback.", + "nickname": "control", + "responseClass": "void", + "parameters": [ + { + "name": "playbackId", + "description": "Playback's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "operation", + "description": "Operation to perform on the playback.", + "paramType": "query", + "required": true, + "allowMultiple": false, + "dataType": "string", + "allowableValues": { + "valueType": "LIST", + "values": [ + "restart", + "pause", + "unpause", + "reverse", + "forward" + ] + } + } + ], + "errorResponses": [ + { + "code": 400, + "reason": "The provided operation parameter was invalid" + }, + { + "code": 404, + "reason": "The playback cannot be found" + }, + { + "code": 409, + "reason": "The operation cannot be performed in the playback's current state" + } +] + } + ] + } + ], + "models": { + "Playback": { + "id": "Playback", + "description": "Object representing the playback of media to a channel", + "properties": { + "id": { + "type": "string", + "description": "ID for this playback operation", + "required": true + }, + "media_uri": { + "type": "string", + "description": "The URI for the media currently being played back.", + "required": true + }, + "next_media_uri": { + "type": "string", + "description": "If a list of URIs is being played, the next media URI to be played back.", + "required": false + }, + "target_uri": { + "type": "string", + "description": "URI for the channel or bridge to play the media on", + "required": true + }, + "language": { + "type": "string", + "description": "For media types that support multiple languages, the language requested for playback." + }, + "state": { + "type": "string", + "description": "Current state of the playback operation.", + "required": true, + "allowableValues": { + "valueType": "LIST", + "values": [ + "queued", + "playing", + "continuing", + "done", + "failed" + ] + } + } + } + } + } +} diff --git a/codegen/src/main/resources/codegen-data/ari_7_0_1/recordings.json b/codegen/src/main/resources/codegen-data/ari_7_0_1/recordings.json new file mode 100644 index 00000000..6ffd6d8e --- /dev/null +++ b/codegen/src/main/resources/codegen-data/ari_7_0_1/recordings.json @@ -0,0 +1,413 @@ +{ + "_copyright": "Copyright (C) 2012 - 2013, Digium, Inc.", + "_author": "David M. Lee, II ", + "_svn_revision": "$Revision$", + "apiVersion": "2.0.0", + "swaggerVersion": "1.1", + "basePath": "http://localhost:8088/ari", + "resourcePath": "/api-docs/recordings.{format}", + "requiresModules": [ + "res_stasis_recording" + ], + "apis": [ + { + "path": "/recordings/stored", + "description": "Recordings", + "operations": [ + { + "httpMethod": "GET", + "summary": "List recordings that are complete.", + "nickname": "listStored", + "responseClass": "List[StoredRecording]" + } + ] + }, + { + "path": "/recordings/stored/{recordingName}", + "description": "Individual recording", + "operations": [ + { + "httpMethod": "GET", + "summary": "Get a stored recording's details.", + "nickname": "getStored", + "responseClass": "StoredRecording", + "parameters": [ + { + "name": "recordingName", + "description": "The name of the recording", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Recording not found" + } + ] + }, + { + "httpMethod": "DELETE", + "summary": "Delete a stored recording.", + "nickname": "deleteStored", + "responseClass": "void", + "parameters": [ + { + "name": "recordingName", + "description": "The name of the recording", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Recording not found" + } + ] + } + ] + }, + { + "path": "/recordings/stored/{recordingName}/file", + "description": "The actual file associated with the stored recording", + "operations": [ + { + "httpMethod": "GET", + "summary": "Get the file associated with the stored recording.", + "nickname": "getStoredFile", + "responseClass": "binary", + "parameters": [ + { + "name": "recordingName", + "description": "The name of the recording", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 403, + "reason": "The recording file could not be opened" + }, + { + "code": 404, + "reason": "Recording not found" + } + ] + } + ] + }, + { + "path": "/recordings/stored/{recordingName}/copy", + "description": "Copy an individual recording", + "operations": [ + { + "httpMethod": "POST", + "summary": "Copy a stored recording.", + "nickname": "copyStored", + "responseClass": "StoredRecording", + "parameters": [ + { + "name": "recordingName", + "description": "The name of the recording to copy", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "destinationRecordingName", + "description": "The destination name of the recording", + "paramType": "query", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Recording not found" + }, + { + "code": 409, + "reason": "A recording with the same name already exists on the system" + } + ] + } + ] + }, + { + "path": "/recordings/live/{recordingName}", + "description": "A recording that is in progress", + "operations": [ + { + "httpMethod": "GET", + "summary": "List live recordings.", + "nickname": "getLive", + "responseClass": "LiveRecording", + "parameters": [ + { + "name": "recordingName", + "description": "The name of the recording", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Recording not found" + } + ] + }, + { + "httpMethod": "DELETE", + "summary": "Stop a live recording and discard it.", + "nickname": "cancel", + "responseClass": "void", + "parameters": [ + { + "name": "recordingName", + "description": "The name of the recording", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Recording not found" + } + ] + } + ] + }, + { + "path": "/recordings/live/{recordingName}/stop", + "operations": [ + { + "httpMethod": "POST", + "summary": "Stop a live recording and store it.", + "nickname": "stop", + "responseClass": "void", + "parameters": [ + { + "name": "recordingName", + "description": "The name of the recording", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Recording not found" + } + ] + } + ] + }, + { + "path": "/recordings/live/{recordingName}/pause", + "operations": [ + { + "httpMethod": "POST", + "summary": "Pause a live recording.", + "notes": "Pausing a recording suspends silence detection, which will be restarted when the recording is unpaused. Paused time is not included in the accounting for maxDurationSeconds.", + "nickname": "pause", + "responseClass": "void", + "parameters": [ + { + "name": "recordingName", + "description": "The name of the recording", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Recording not found" + }, + { + "code": 409, + "reason": "Recording not in session" + } + ] + }, + { + "httpMethod": "DELETE", + "summary": "Unpause a live recording.", + "nickname": "unpause", + "responseClass": "void", + "parameters": [ + { + "name": "recordingName", + "description": "The name of the recording", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Recording not found" + }, + { + "code": 409, + "reason": "Recording not in session" + } + ] + } + ] + }, + { + "path": "/recordings/live/{recordingName}/mute", + "operations": [ + { + "httpMethod": "POST", + "summary": "Mute a live recording.", + "notes": "Muting a recording suspends silence detection, which will be restarted when the recording is unmuted.", + "nickname": "mute", + "responseClass": "void", + "parameters": [ + { + "name": "recordingName", + "description": "The name of the recording", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Recording not found" + }, + { + "code": 409, + "reason": "Recording not in session" + } + ] + }, + { + "httpMethod": "DELETE", + "summary": "Unmute a live recording.", + "nickname": "unmute", + "responseClass": "void", + "parameters": [ + { + "name": "recordingName", + "description": "The name of the recording", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Recording not found" + }, + { + "code": 409, + "reason": "Recording not in session" + } + ] + } + ] + } + ], + "models": { + "StoredRecording": { + "id": "StoredRecording", + "description": "A past recording that may be played back.", + "properties": { + "name": { + "required": true, + "type": "string" + }, + "format": { + "required": true, + "type": "string" + } + } + }, + "LiveRecording": { + "id": "LiveRecording", + "description": "A recording that is in progress", + "properties": { + "name": { + "required": true, + "type": "string", + "description": "Base name for the recording" + }, + "format": { + "required": true, + "type": "string", + "description": "Recording format (wav, gsm, etc.)" + }, + "target_uri": { + "required": true, + "type": "string", + "description": "URI for the channel or bridge being recorded" + }, + "state": { + "required": true, + "type": "string", + "allowableValues": { + "valueType": "LIST", + "values": [ + "queued", + "recording", + "paused", + "done", + "failed", + "canceled" + ] + } + }, + "duration": { + "required": false, + "type": "int", + "description": "Duration in seconds of the recording" + }, + "talking_duration": { + "required": false, + "type": "int", + "description": "Duration of talking, in seconds, detected in the recording. This is only available if the recording was initiated with a non-zero maxSilenceSeconds." + }, + "silence_duration": { + "required": false, + "type": "int", + "description": "Duration of silence, in seconds, detected in the recording. This is only available if the recording was initiated with a non-zero maxSilenceSeconds." + }, + "cause": { + "required": false, + "type": "string", + "description": "Cause for recording failure if failed" + } + } + } + } +} diff --git a/codegen/src/main/resources/codegen-data/ari_7_0_1/sounds.json b/codegen/src/main/resources/codegen-data/ari_7_0_1/sounds.json new file mode 100644 index 00000000..8fbe1c57 --- /dev/null +++ b/codegen/src/main/resources/codegen-data/ari_7_0_1/sounds.json @@ -0,0 +1,99 @@ +{ + "_copyright": "Copyright (C) 2012 - 2013, Digium, Inc.", + "_author": "David M. Lee, II ", + "_svn_revision": "$Revision$", + "apiVersion": "2.0.0", + "swaggerVersion": "1.1", + "basePath": "http://localhost:8088/ari", + "resourcePath": "/api-docs/sounds.{format}", + "apis": [ + { + "path": "/sounds", + "description": "Sounds", + "operations": [ + { + "httpMethod": "GET", + "summary": "List all sounds.", + "nickname": "list", + "responseClass": "List[Sound]", + "parameters": [ + { + "name": "lang", + "description": "Lookup sound for a specific language.", + "paramType": "query", + "dataType": "string", + "required": false + }, + { + "name": "format", + "description": "Lookup sound in a specific format.", + "paramType": "query", + "dataType": "string", + "required": false, + "__note": "core show translation can show translation paths between formats, along with relative costs. so this could be just installed format, or we could follow that for transcoded formats." + } + ] + } + ] + }, + { + "path": "/sounds/{soundId}", + "description": "Individual sound", + "operations": [ + { + "httpMethod": "GET", + "summary": "Get a sound's details.", + "nickname": "get", + "responseClass": "Sound", + "parameters": [ + { + "name": "soundId", + "description": "Sound's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ] + } + ] + } + ], + "models": { + "FormatLangPair": { + "id": "FormatLangPair", + "description": "Identifies the format and language of a sound file", + "properties": { + "language": { + "required": true, + "type": "string" + }, + "format": { + "required": true, + "type": "string" + } + } + }, + "Sound": { + "id": "Sound", + "description": "A media file that may be played back.", + "properties": { + "id": { + "required": true, + "description": "Sound's identifier.", + "type": "string" + }, + "text": { + "required": false, + "description": "Text description of the sound, usually the words spoken.", + "type": "string" + }, + "formats": { + "required": true, + "description": "The formats and languages in which this sound is available.", + "type": "List[FormatLangPair]" + } + } + } + } +} From 2217a967a373367d7a770b6779de231e5280819c Mon Sep 17 00:00:00 2001 From: Graham Brown Date: Mon, 11 Jul 2022 10:37:51 +0200 Subject: [PATCH 197/220] prepare 0.16.0 changelog --- CHANGELOG.md | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index da81b13e..ab791295 100755 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,7 +1,14 @@ # ARI4Java Changelog ## [Unreleased] -[Unreleased]: https://github.com/ari4java/ari4java/compare/v0.14.0...HEAD +[Unreleased]: https://github.com/ari4java/ari4java/compare/v0.16.0...HEAD + +## [0.16.0] +[0.16.0]: https://github.com/ari4java/ari4java/compare/v0.15.0...v0.16.0 +### Added +- `AriVersion.ARI_4_1_4` +- `AriVersion.ARI_6_0_1` +- `AriVersion.ARI_7_0_1` ## [0.15.0] [0.15.0]: https://github.com/ari4java/ari4java/compare/v0.14.0...v0.15.0 From fa9c6239e85988a2b4c3392812f5dbe85f76ee07 Mon Sep 17 00:00:00 2001 From: Graham Brown Date: Mon, 11 Jul 2022 10:37:51 +0200 Subject: [PATCH 198/220] prepare 0.16.0 changelog --- CHANGELOG.md | 9 ++++++++- build.gradle | 2 +- 2 files changed, 9 insertions(+), 2 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index da81b13e..ab791295 100755 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,7 +1,14 @@ # ARI4Java Changelog ## [Unreleased] -[Unreleased]: https://github.com/ari4java/ari4java/compare/v0.14.0...HEAD +[Unreleased]: https://github.com/ari4java/ari4java/compare/v0.16.0...HEAD + +## [0.16.0] +[0.16.0]: https://github.com/ari4java/ari4java/compare/v0.15.0...v0.16.0 +### Added +- `AriVersion.ARI_4_1_4` +- `AriVersion.ARI_6_0_1` +- `AriVersion.ARI_7_0_1` ## [0.15.0] [0.15.0]: https://github.com/ari4java/ari4java/compare/v0.14.0...v0.15.0 diff --git a/build.gradle b/build.gradle index d7b615bc..2aa79d06 100755 --- a/build.gradle +++ b/build.gradle @@ -8,7 +8,7 @@ plugins { } group = "io.github.ari4java" -version = "0.15.0" +version = "0.16.0" def projectUrl = "http://github.com/ari4java/ari4java" def build_number = "x" From 40de287e490be94fe483732e2a9468418fe58619 Mon Sep 17 00:00:00 2001 From: Graham Brown Date: Sun, 7 Aug 2022 12:26:22 +0200 Subject: [PATCH 199/220] #188 Tweaks to Vagrant to use Docker provider for M1 Mac --- examples/Dockerfile | 32 ++++ examples/Vagrantfile | 25 ++- examples/vagrant/asterisk/extensions.conf | 2 +- examples/vagrant/asterisk/modules.conf | 3 - examples/vagrant/asterisk/pjsip_wizard.conf | 2 +- examples/vagrant/asterisk/rtp.conf | 162 ++++++++++++++++++ examples/vagrant/scripts/provision.sh | 109 +++++++----- .../vagrant/static-http/ari4java-phone.html | 2 +- 8 files changed, 284 insertions(+), 53 deletions(-) create mode 100644 examples/Dockerfile create mode 100644 examples/vagrant/asterisk/rtp.conf diff --git a/examples/Dockerfile b/examples/Dockerfile new file mode 100644 index 00000000..c06c503c --- /dev/null +++ b/examples/Dockerfile @@ -0,0 +1,32 @@ +# Docker image to use with Vagrant +# Aims to be as similar to normal Vagrant usage as possible +# Adds Puppet, SSH daemon, Systemd +# Adapted from https://github.com/BashtonLtd/docker-vagrant-images/blob/master/ubuntu1404/Dockerfile + +FROM ubuntu:focal +ENV container docker +RUN apt update && apt -y upgrade + +# Install system dependencies, you may not need all of these +RUN apt install -y --no-install-recommends ssh sudo libffi-dev systemd openssh-client nano + +# Add vagrant user and key for SSH +RUN useradd --create-home -s /bin/bash vagrant +RUN echo -n 'vagrant:vagrant' | chpasswd +RUN echo 'vagrant ALL = NOPASSWD: ALL' > /etc/sudoers.d/vagrant +RUN chmod 440 /etc/sudoers.d/vagrant +RUN mkdir -p /home/vagrant/.ssh +RUN chmod 700 /home/vagrant/.ssh +RUN echo "ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEA6NF8iallvQVp22WDkTkyrtvp9eWW6A8YVr+kz4TjGYe7gHzIw+niNltGEFHzD8+v1I2YJ6oXevct1YeS0o9HZyN1Q9qgCgzUFtdOKLv6IedplqoPkcmF0aYet2PkEDo3MlTBckFXPITAMzF8dJSIFo9D8HfdOV0IAdx4O7PtixWKn5y2hMNG0zQPyUecp4pzC6kivAIhyfHilFR61RGL+GPXQ2MWZWFYbAGjyiYJnAmCP3NOTd0jMZEnDkbUvxhMmBYSdETk1rRgm+R4LOzFUGaHqHDLKLX+FIPKcF96hrucXzcWyLbIbEgE98OHlnVYCzRdK8jlqm8tehUc9c9WhQ==" > /home/vagrant/.ssh/authorized_keys +RUN chmod 600 /home/vagrant/.ssh/authorized_keys +RUN chown -R vagrant:vagrant /home/vagrant/.ssh +RUN sed -i -e 's/Defaults.*requiretty/#&/' /etc/sudoers +RUN sed -i -e 's/\(UsePAM \)yes/\1 no/' /etc/ssh/sshd_config + +# Start SSH +RUN mkdir /var/run/sshd +EXPOSE 22 +RUN /usr/sbin/sshd + +# Start Systemd (systemctl) +CMD ["/lib/systemd/systemd"] diff --git a/examples/Vagrantfile b/examples/Vagrantfile index 9fee894f..90b410aa 100644 --- a/examples/Vagrantfile +++ b/examples/Vagrantfile @@ -4,18 +4,31 @@ # use NET_BRIDGE=on to create a bridge interface with dynamic ip from your network. # Used for testing from an external source like a cell phone with Zoiper or the like # Note: Wifi with WPA2-Enterprise does not work, the interface doesn't get an IP +# Note: for M1 Mac use the --provider docker flag, the NET_BRIDGE is not compatible with docker if not ENV["NET_BRIDGE"] then ENV["NET_BRIDGE"] = "off" end Vagrant.configure("2") do |config| config.vm.box = "ubuntu/focal64" - config.vm.provider "virtualbox" do |v| + config.vm.synced_folder "./vagrant", "/vagrant" + config.vm.provider "virtualbox" do |v, override| v.memory = 1024 v.cpus = 2 + override.vm.network "private_network", ip: "192.168.56.44" + if ENV["NET_BRIDGE"] == "on" then + override.vm.network "public_network", use_dhcp_assigned_default_route: false + end + override.vm.provision :shell, :path => "vagrant/scripts/provision.sh" end - config.vm.network "private_network", ip: "192.168.56.44" - if ENV["NET_BRIDGE"] == "on" then - config.vm.network "public_network", use_dhcp_assigned_default_route: false + config.vm.provider "docker" do |d, override| + override.vm.box = nil + d.build_dir = "." + override.ssh.insert_key = true + d.has_ssh = true + d.privileged = true + override.vm.network :forwarded_port, guest: 8089, host: 8089 + for i in 20000..20010 + override.vm.network :forwarded_port, guest: i, host: i, protocol: "udp" + end + override.vm.provision :shell, :path => "vagrant/scripts/provision.sh", :args => ["docker"] end - config.vm.synced_folder "./vagrant", "/vagrant" - config.vm.provision :shell, :path => "vagrant/scripts/provision.sh" end diff --git a/examples/vagrant/asterisk/extensions.conf b/examples/vagrant/asterisk/extensions.conf index 955dc57e..68d94d8c 100644 --- a/examples/vagrant/asterisk/extensions.conf +++ b/examples/vagrant/asterisk/extensions.conf @@ -3,7 +3,7 @@ static=yes writeprotect=yes [default] -; empty - we dont use the defailt context +; empty - we dont use the default context [from-internal] ; Extensions 100, 200 & 300 diff --git a/examples/vagrant/asterisk/modules.conf b/examples/vagrant/asterisk/modules.conf index f131e277..b2db62b1 100644 --- a/examples/vagrant/asterisk/modules.conf +++ b/examples/vagrant/asterisk/modules.conf @@ -43,7 +43,6 @@ load = codec_resample.so load = codec_ulaw.so load = codec_alaw.so load = codec_g722.so -load = codec_g729a.so load = codec_opus.so ; Formats @@ -52,8 +51,6 @@ load = format_gsm.so load = format_pcm.so load = format_wav_gsm.so load = format_wav.so -load = format_g729.so -load = res_format_attr_g729.so load = format_ogg_opus.so load = res_format_attr_opus.so load = format_mp3.so diff --git a/examples/vagrant/asterisk/pjsip_wizard.conf b/examples/vagrant/asterisk/pjsip_wizard.conf index 04726844..90ff45ae 100644 --- a/examples/vagrant/asterisk/pjsip_wizard.conf +++ b/examples/vagrant/asterisk/pjsip_wizard.conf @@ -35,7 +35,7 @@ endpoint/rtp_symmetric = yes endpoint/dtls_auto_generate_cert = yes endpoint/device_state_busy_at = 1 -; User Extensions using the templates definded above +; User Extensions using the templates defined above [100](web-phone-defaults) inbound_auth/username = 100 inbound_auth/password = abc123 diff --git a/examples/vagrant/asterisk/rtp.conf b/examples/vagrant/asterisk/rtp.conf new file mode 100644 index 00000000..c136ff36 --- /dev/null +++ b/examples/vagrant/asterisk/rtp.conf @@ -0,0 +1,162 @@ +; +; RTP Configuration +; +[general] +; +; RTP start and RTP end configure start and end addresses +; +; Defaults are rtpstart=5000 and rtpend=31000 +; +rtpstart=10000 +rtpend=10010 +; +; Whether to enable or disable UDP checksums on RTP traffic +; +;rtpchecksums=no +; +; The amount of time a DTMF digit with no 'end' marker should be +; allowed to continue (in 'samples', 1/8000 of a second) +; +;dtmftimeout=3000 +; rtcpinterval = 5000 ; Milliseconds between rtcp reports + ;(min 500, max 60000, default 5000) +; +; Enable strict RTP protection. This will drop RTP packets that do not come +; from the recognized source of the RTP stream. Strict RTP qualifies RTP +; packet stream sources before accepting them upon initial connection and +; when the connection is renegotiated (e.g., transfers and direct media). +; Initial connection and renegotiation starts a learning mode to qualify +; stream source addresses. Once Asterisk has recognized a stream it will +; allow other streams to qualify and replace the current stream for 5 +; seconds after starting learning mode. Once learning mode completes the +; current stream is locked in and cannot change until the next +; renegotiation. +; Valid options are "no" to disable strictrtp, "yes" to enable strictrtp, +; and "seqno", which does the same thing as strictrtp=yes, but only checks +; to make sure the sequence number is correct rather than checking the time +; interval as well. +; This option is enabled by default. +; strictrtp=yes +; +; Number of packets containing consecutive sequence values needed +; to change the RTP source socket address. This option only comes +; into play while using strictrtp=yes. Consider changing this value +; if rtp packets are dropped from one or both ends after a call is +; connected. This option is set to 4 by default. +; probation=8 +; +; Enable sRTP replay protection. Buggy SIP user agents (UAs) reset the +; sequence number (RTP-SEQ) on a re-INVITE, for example, with Session Timers +; or on Call Hold/Resume, but keep the synchronization source (RTP-SSRC). If +; the new RTP-SEQ is higher than the previous one, the call continues if the +; roll-over counter (sRTP-ROC) is zero (the call lasted less than 22 minutes). +; In all other cases, the call faces one-way audio or even no audio at all. +; "replay check failed (index too old)" gets printed continuously. This is a +; software bug. You have to report this to the creator of that UA. Until it is +; fixed, you could disable sRTP replay protection (see RFC 3711 section 3.3.2). +; This option is enabled by default. +; srtpreplayprotection=yes +; +; Whether to enable or disable ICE support. This option is enabled by default. +; icesupport=false +; +; Hostname or address for the STUN server used when determining the external +; IP address and port an RTP session can be reached at. The port number is +; optional. If omitted the default value of 3478 will be used. This option is +; disabled by default. Name resolution will occur at load time, and if DNS is +; used, name resolution will occur repeatedly after the TTL expires. +; +; e.g. stundaddr=mystun.server.com:3478 +; +; stunaddr= +; +; Some multihomed servers have IP interfaces that cannot reach the STUN +; server specified by stunaddr. Blacklist those interface subnets from +; trying to send a STUN packet to find the external IP address. +; Attempting to send the STUN packet needlessly delays processing incoming +; and outgoing SIP INVITEs because we will wait for a response that can +; never come until we give up on the response. +; * Multiple subnets may be listed. +; * Blacklisting applies to IPv4 only. STUN isn't needed for IPv6. +; * Blacklisting applies when binding RTP to specific IP addresses and not +; the wildcard 0.0.0.0 address. e.g., A PJSIP endpoint binding RTP to a +; specific address using the bind_rtp_to_media_address and media_address +; options. Or the PJSIP endpoint specifies an explicit transport that binds +; to a specific IP address. Blacklisting is done via ACL infrastructure +; so it's possible to whitelist as well. +; +; stun_acl = named_acl +; stun_deny = 0.0.0.0/0 +; stun_permit = 1.2.3.4/32 +; +; For historic reasons stun_blacklist is an alias for stun_deny. +; +; Whether to report the PJSIP version in a SOFTWARE attribute for all +; outgoing STUN packets. This option is enabled by default. +; +; stun_software_attribute=yes +; +; Hostname or address for the TURN server to be used as a relay. The port +; number is optional. If omitted the default value of 3478 will be used. +; This option is disabled by default. +; +; e.g. turnaddr=myturn.server.com:34780 +; +; turnaddr= +; +; Username used to authenticate with TURN relay server. +; turnusername= +; +; Password used to authenticate with TURN relay server. +; turnpassword= +; +; An ACL can be used to determine which discovered addresses to include for +; ICE, srflx and relay discovery. This is useful to optimize the ICE process +; where a system has multiple host address ranges and/or physical interfaces +; and certain of them are not expected to be used for RTP. For example, VPNs +; and local interconnections may not be suitable or necessary for ICE. Multiple +; subnets may be listed. If left unconfigured, all discovered host addresses +; are used. +; +; ice_acl = named_acl +; ice_deny = 0.0.0.0/0 +; ice_permit = 1.2.3.4/32 +; +; For historic reasons ice_blacklist is an alias for ice_deny. +; +; The MTU to use for DTLS packet fragmentation. This option is set to 1200 +; by default. The minimum MTU is 256. +; dtls_mtu = 1200 +; +[ice_host_candidates] +; +; When Asterisk is behind a static one-to-one NAT and ICE is in use, ICE will +; expose the server's internal IP address as one of the host candidates. +; Although using STUN (see the 'stunaddr' configuration option) will provide a +; publicly accessible IP, the internal IP will still be sent to the remote +; peer. To help hide the topology of your internal network, you can override +; the host candidates that Asterisk will send to the remote peer. +; +; IMPORTANT: Only use this functionality when your Asterisk server is behind a +; one-to-one NAT and you know what you're doing. If you do define anything +; here, you almost certainly will NOT want to specify 'stunaddr' or 'turnaddr' +; above. +; +; The format for these overrides is: +; +; => ,[include_local_address] +; +; The following will replace 192.168.1.10 with 1.2.3.4 during ICE +; negotiation: +; +;192.168.1.10 => 1.2.3.4 +; +; The following will include BOTH 192.168.1.10 and 1.2.3.4 during ICE +; negotiation instead of replacing 192.168.1.10. This can make it easier +; to serve both local and remote clients. +; +;192.168.1.10 => 1.2.3.4,include_local_address +; +; You can define an override for more than 1 interface if you have a multihomed +; server. Any local interface that is not matched will be passed through +; unaltered. Both IPv4 and IPv6 addresses are supported. diff --git a/examples/vagrant/scripts/provision.sh b/examples/vagrant/scripts/provision.sh index de377e1c..2d9901c2 100755 --- a/examples/vagrant/scripts/provision.sh +++ b/examples/vagrant/scripts/provision.sh @@ -1,44 +1,38 @@ #!/usr/bin/env bash -# Hostname -echo "Updating Hostname ..." -sed -i 's/^ubuntu-focal$/localpbx/g' /etc/hostname -sed -i 's/ubuntu-focal$/localpbx/g' /etc/hosts -systemctl restart systemd-logind.service -hostnamectl set-hostname localpbx +DOCKER=false +if [ "$1" == "docker" ]; then + DOCKER=true +fi + +if [ "$DOCKER" == "false" ]; then + # Hostname + echo "Updating Hostname ..." + sed -i 's/^ubuntu-focal$/localpbx/g' /etc/hostname + sed -i 's/ubuntu-focal$/localpbx/g' /etc/hosts + systemctl restart systemd-logind.service + hostnamectl set-hostname localpbx +fi # get the latest packages and upgrade them echo "Updating System ..." +export DEBIAN_FRONTEND=noninteractive apt update apt -y upgrade -# install some pre-requisites (mostly for Asterisk) -echo "Installing pre-requisites ..." +# install some pre-requisites +echo "Installing some pre-requisites ..." apt -y install \ + curl \ wget \ - unzip \ - subversion \ - build-essential \ - openssl \ - pkg-config \ - libssl-dev \ - libcurl4-openssl-dev \ - libgsm1-dev \ - libnewt-dev \ - libxml2-dev \ - libsqlite3-dev \ - uuid-dev \ - libjansson-dev \ - libncurses5-dev \ - libedit-dev \ - xmlstarlet \ - libsrtp2-dev \ - zlib1g-dev \ - mpg123 \ - subversion \ - tcl \ sox \ - lame + lame \ + mpg123 \ + libopusfile-dev \ + autoconf + +# set the timezone +ln -snf /usr/share/zoneinfo/$(curl https://ipapi.co/timezone) /etc/localtime # create user & folders for Asterisk echo "Creating asterisk user and required folders ..." @@ -46,23 +40,53 @@ adduser --system --group --no-create-home asterisk mkdir -p /var/{lib,log,spool}/asterisk # goto home folder, download and build Asterisk using the version specified in AST_VER -AST_VER=18.9.0 +AST_VER=18.13.0 echo "Download, compile & setup Asterisk $AST_VER ..." cd ~ wget http://downloads.asterisk.org/pub/telephony/asterisk/releases/asterisk-$AST_VER.tar.gz tar xvfz asterisk-$AST_VER.tar.gz +rm asterisk-$AST_VER.tar.gz cd asterisk-$AST_VER/ +echo "Installing Asterisk pre-requisites ..." +contrib/scripts/install_prereq install contrib/scripts/get_mp3_source.sh +if [ "$DOCKER" == "true" ]; then + echo "Getting Open Source OPUS Codec" + # although we're using a later Asterisk this is the latest opus but seems to work (from my limited testing) + wget github.com/traud/asterisk-opus/archive/asterisk-13.7.tar.gz + tar zvxf asterisk-13.7.tar.gz + rm asterisk-13.7.tar.gz + cp --verbose ./asterisk-opus*/include/asterisk/* ./include/asterisk + cp --verbose ./asterisk-opus*/codecs/* ./codecs + cp --verbose ./asterisk-opus*/res/* ./res + cp --verbose ./asterisk-opus*/formats/* ./formats + patch -p1 <./asterisk-opus*/asterisk.patch + ./bootstrap.sh +fi ./configure --with-pjproject-bundled --with-jansson-bundled -make menuselect.makeopts && menuselect/menuselect \ ---enable codec_opus \ ---enable codec_g729a \ ---enable EXTRA-SOUNDS-EN-G722 \ ---enable EXTRA-SOUNDS-EN-WAV \ ---enable format_mp3 \ ---disable chan_sip \ ---disable BUILD_NATIVE \ -menuselect.makeopts +make menuselect.makeopts +if [ "$DOCKER" == "true" ]; then + menuselect/menuselect \ + --enable CORE-SOUNDS-EN-SLN16 \ + --enable EXTRA-SOUNDS-EN-G722 \ + --enable EXTRA-SOUNDS-EN-WAV \ + --enable EXTRA-SOUNDS-EN-SLN16 \ + --enable format_mp3 \ + --disable chan_sip \ + --disable BUILD_NATIVE \ + menuselect.makeopts +else + menuselect/menuselect \ + --enable CORE-SOUNDS-EN-SLN16 \ + --enable EXTRA-SOUNDS-EN-G722 \ + --enable EXTRA-SOUNDS-EN-WAV \ + --enable EXTRA-SOUNDS-EN-SLN16 \ + --enable codec_opus \ + --enable format_mp3 \ + --disable chan_sip \ + --disable BUILD_NATIVE \ + menuselect.makeopts +fi make make install #make sure the asterisk user owns its folders @@ -70,7 +94,10 @@ chown -R asterisk:asterisk /var/{lib,log,spool}/asterisk # copy config & http content cp -f /vagrant/asterisk/* /etc/asterisk/ cp -f /vagrant/static-http/* /var/lib/asterisk/static-http/ - +if [ "$DOCKER" == "true" ]; then + sed -i 's/codec_opus/codec_opus_open_source/g' /etc/asterisk/modules.conf + sed -i 's/format_ogg_opus/format_ogg_opus_open_source/g' /etc/asterisk/modules.conf +fi # create keys for TLS echo "Creating TLS keys ..." mkdir -p /etc/asterisk/keys diff --git a/examples/vagrant/static-http/ari4java-phone.html b/examples/vagrant/static-http/ari4java-phone.html index a31910c2..ef5097d0 100644 --- a/examples/vagrant/static-http/ari4java-phone.html +++ b/examples/vagrant/static-http/ari4java-phone.html @@ -108,7 +108,7 @@

ARI4Java Phone

let audioOutput = new Audio(); audioOutput.setSinkId('default'); audioOutput.load(); - let server = '192.168.56.44'; + let server = window.location.hostname; let phone = undefined; let session = undefined; function login(exten) { From 30f6a46a71082735a6effa3d7ecd4a9d2e257cd9 Mon Sep 17 00:00:00 2001 From: Graham Brown Date: Mon, 8 Aug 2022 12:16:07 +0200 Subject: [PATCH 200/220] #188 Getting Vagrant Docker provider working --- examples/vagrant/asterisk/modules.conf | 10 ++++++++-- examples/vagrant/asterisk/pjsip.conf | 11 +++++++++++ examples/vagrant/asterisk/pjsip_wizard.conf | 13 ++++++++----- examples/vagrant/scripts/provision.sh | 8 ++++++-- 4 files changed, 33 insertions(+), 9 deletions(-) diff --git a/examples/vagrant/asterisk/modules.conf b/examples/vagrant/asterisk/modules.conf index b2db62b1..be4c2cc2 100644 --- a/examples/vagrant/asterisk/modules.conf +++ b/examples/vagrant/asterisk/modules.conf @@ -53,7 +53,10 @@ load = format_wav_gsm.so load = format_wav.so load = format_ogg_opus.so load = res_format_attr_opus.so +load = format_ogg_vorbis.so load = format_mp3.so +load = format_vp8.so +load = format_h264.so ; Functions @@ -71,10 +74,12 @@ load = func_md5.so load = func_sha1.so load = func_channel.so load = func_timeout.so +load = func_hangupcause.so ; Core/PBX load = pbx_config.so +load = pbx_spool.so ; Resources @@ -90,9 +95,9 @@ load = res_pjsip_diversion.so load = res_pjsip_dlg_options.so load = res_pjsip_dtmf_info.so load = res_pjsip_empty_info.so -load = res_pjsip_endpoint_identifier_anonymous.so -load = res_pjsip_endpoint_identifier_ip.so load = res_pjsip_endpoint_identifier_user.so +load = res_pjsip_endpoint_identifier_ip.so +load = res_pjsip_endpoint_identifier_anonymous.so load = res_pjsip_exten_state.so load = res_pjsip_header_funcs.so load = res_pjsip_history.so @@ -132,6 +137,7 @@ load = res_sorcery_config.so load = res_sorcery_memory.so load = res_sorcery_realtime.so load = res_timing_timerfd.so +load = res_timing_pthread.so load = res_http_media_cache.so load = res_http_websocket.so load = res_crypto.so diff --git a/examples/vagrant/asterisk/pjsip.conf b/examples/vagrant/asterisk/pjsip.conf index 9e33284f..6ffee21f 100644 --- a/examples/vagrant/asterisk/pjsip.conf +++ b/examples/vagrant/asterisk/pjsip.conf @@ -5,8 +5,19 @@ type = transport protocol = udp bind = 0.0.0.0 +domain = ari4java.local [transport-wss] type=transport protocol=wss bind=0.0.0.0 +domain = ari4java.local +websocket_write_timeout = 5000 + +[192.168.44.56] +type = domain-alias +domain = ari4java.local + +[localhost] +type = domain-alias +domain = ari4java.local diff --git a/examples/vagrant/asterisk/pjsip_wizard.conf b/examples/vagrant/asterisk/pjsip_wizard.conf index 90ff45ae..fcdc248c 100644 --- a/examples/vagrant/asterisk/pjsip_wizard.conf +++ b/examples/vagrant/asterisk/pjsip_wizard.conf @@ -7,12 +7,12 @@ sends_registrations = no accepts_auth = yes sends_auth = no endpoint/allow_subscribe = yes -endpoint/allow = !all,g722,g729,alaw +endpoint/disallow = all +endpoint/allow = g722,ulaw endpoint/direct_media = no endpoint/force_rport = yes endpoint/disable_direct_media_on_nat = yes endpoint/direct_media_method = invite -endpoint/ice_support = yes endpoint/moh_suggest = default endpoint/send_rpid = yes endpoint/rewrite_contact = yes @@ -29,11 +29,14 @@ aor/support_path = yes ; Default Template for web phones [web-phone-defaults](!,phone-defaults) transport = transport-wss -endpoint/allow = !all,opus,g722,alaw +endpoint/disallow=all +endpoint/allow = opus,ulaw endpoint/webrtc = yes endpoint/rtp_symmetric = yes -endpoint/dtls_auto_generate_cert = yes -endpoint/device_state_busy_at = 1 +;endpoint/dtls_auto_generate_cert = yes +endpoint/dtls_ca_file = /etc/asterisk/keys/ca.crt +endpoint/dtls_cert_file = /etc/asterisk/keys/asterisk.crt +endpoint/dtls_private_key = /etc/asterisk/keys/asterisk.key ; User Extensions using the templates defined above [100](web-phone-defaults) diff --git a/examples/vagrant/scripts/provision.sh b/examples/vagrant/scripts/provision.sh index 2d9901c2..f04741cd 100755 --- a/examples/vagrant/scripts/provision.sh +++ b/examples/vagrant/scripts/provision.sh @@ -40,7 +40,7 @@ adduser --system --group --no-create-home asterisk mkdir -p /var/{lib,log,spool}/asterisk # goto home folder, download and build Asterisk using the version specified in AST_VER -AST_VER=18.13.0 +AST_VER=16.27.0 echo "Download, compile & setup Asterisk $AST_VER ..." cd ~ wget http://downloads.asterisk.org/pub/telephony/asterisk/releases/asterisk-$AST_VER.tar.gz @@ -104,7 +104,11 @@ mkdir -p /etc/asterisk/keys openssl genrsa -des3 -out /etc/asterisk/keys/ca.key -passout pass:asterisk 4096 > /dev/null openssl req -batch -new -x509 -days 3650 -subj "/O=ARI4Java/CN=ARI4Java CA" -key /etc/asterisk/keys/ca.key -passin pass:asterisk -out /etc/asterisk/keys/ca.crt > /dev/null openssl genrsa -out /etc/asterisk/keys/asterisk.key 2048 > /dev/null -openssl req -batch -new -subj "/O=ARI4Java/CN=192.168.56.44" -key /etc/asterisk/keys/asterisk.key -out /etc/asterisk/keys/asterisk.csr > /dev/null +SUBJECT="/O=ARI4Java/CN=192.168.56.44" +if [ "$DOCKER" == "true" ]; then + SUBJECT="/O=ARI4Java/CN=localhost" +fi +openssl req -batch -new -subj "$SUBJECT" -key /etc/asterisk/keys/asterisk.key -out /etc/asterisk/keys/asterisk.csr > /dev/null openssl x509 -req -days 3650 -in /etc/asterisk/keys/asterisk.csr -CA /etc/asterisk/keys/ca.crt -CAkey /etc/asterisk/keys/ca.key -passin pass:asterisk -set_serial 01 -out /etc/asterisk/keys/asterisk.crt > /dev/null chown -R asterisk:asterisk /etc/asterisk/keys From c5db8bbbce14aa499a08ae24f878032bf0669881 Mon Sep 17 00:00:00 2001 From: Graham Brown Date: Sat, 13 Aug 2022 13:40:25 +0200 Subject: [PATCH 201/220] Implement connection pooling and change examples to use some async executions --- .../loway/oss/ari4java/examples/Weasels.java | 45 +++- .../examples/comprehensive/Asterisk.java | 102 +++++--- .../ari4java/tools/WsClientAutoReconnect.java | 12 - .../oss/ari4java/tools/http/HTTPLogger.java | 2 +- .../ari4java/tools/http/NettyHttpClient.java | 227 ++++++++++++------ .../tools/http/NettyHttpClientHandler.java | 18 +- .../tools/http/NettyWSClientHandler.java | 41 ++-- .../tools/http/NettyHttpClientTest.java | 166 +++++++------ 8 files changed, 382 insertions(+), 231 deletions(-) delete mode 100755 src/main/java/ch/loway/oss/ari4java/tools/WsClientAutoReconnect.java diff --git a/examples/src/main/java/ch/loway/oss/ari4java/examples/Weasels.java b/examples/src/main/java/ch/loway/oss/ari4java/examples/Weasels.java index 59de5638..8a19e75f 100755 --- a/examples/src/main/java/ch/loway/oss/ari4java/examples/Weasels.java +++ b/examples/src/main/java/ch/loway/oss/ari4java/examples/Weasels.java @@ -3,11 +3,9 @@ import ch.loway.oss.ari4java.ARI; import ch.loway.oss.ari4java.AriVersion; import ch.loway.oss.ari4java.generated.AriWSHelper; -import ch.loway.oss.ari4java.generated.models.AsteriskInfo; -import ch.loway.oss.ari4java.generated.models.Message; -import ch.loway.oss.ari4java.generated.models.PlaybackFinished; -import ch.loway.oss.ari4java.generated.models.StasisStart; +import ch.loway.oss.ari4java.generated.models.*; import ch.loway.oss.ari4java.tools.ARIException; +import ch.loway.oss.ari4java.tools.AriCallback; import ch.loway.oss.ari4java.tools.RestException; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -80,12 +78,12 @@ public void onFailure(RestException e) { @Override protected void onStasisStart(StasisStart message) { - handleStart(message); + handleStart(message, threadPool); } @Override protected void onPlaybackFinished(PlaybackFinished message) { - handlePlaybackFinished(message); + handlePlaybackFinished(message, threadPool); } }); @@ -96,24 +94,49 @@ protected void onPlaybackFinished(PlaybackFinished message) { System.exit(0); } - private void handleStart(StasisStart start) { + private void handleStart(StasisStart start, final ExecutorService threadPool) { logger.info("Stasis Start Channel: {}", start.getChannel().getId()); ARI.sleep(300); // a slight pause before we start the playback ... try { - ari.channels().play(start.getChannel().getId(), "sound:weasels-eaten-phonesys").execute(); + ari.channels().play(start.getChannel().getId(), "sound:weasels-eaten-phonesys") + .execute(new AriCallback() { + @Override + public void onSuccess(Playback playback) { + logger.debug("Playback success: {}", playback.getId()); + } + + @Override + public void onFailure(RestException e) { + logger.error("Playback Error: {}", e.getMessage(), e); + threadPool.shutdown(); + } + }); } catch (Throwable e) { logger.error("Error: {}", e.getMessage(), e); + threadPool.shutdown(); } } - private void handlePlaybackFinished(PlaybackFinished playback) { - logger.info("PlaybackFinished - {}", playback.getPlayback().getTarget_uri()); + private void handlePlaybackFinished(PlaybackFinished playback, final ExecutorService threadPool) { + logger.info("PlaybackFinished - {} {}", playback.getPlayback().getId(), playback.getPlayback().getTarget_uri()); if (playback.getPlayback().getTarget_uri().indexOf("channel:") == 0) { try { String chanId = playback.getPlayback().getTarget_uri().split(":")[1]; logger.info("Hangup Channel: {}", chanId); ARI.sleep(300); // a slight pause before we hangup ... - ari.channels().hangup(chanId).execute(); + ari.channels().hangup(chanId).execute(new AriCallback() { + @Override + public void onSuccess(Void a) { + logger.debug("Hangup success"); + threadPool.shutdown(); + } + + @Override + public void onFailure(RestException e) { + logger.error("Hangup Error: {}", e.getMessage(), e); + threadPool.shutdown(); + } + }); } catch (Throwable e) { logger.error("Error: {}", e.getMessage(), e); } diff --git a/examples/src/main/java/ch/loway/oss/ari4java/examples/comprehensive/Asterisk.java b/examples/src/main/java/ch/loway/oss/ari4java/examples/comprehensive/Asterisk.java index 504048a0..0d671698 100644 --- a/examples/src/main/java/ch/loway/oss/ari4java/examples/comprehensive/Asterisk.java +++ b/examples/src/main/java/ch/loway/oss/ari4java/examples/comprehensive/Asterisk.java @@ -4,6 +4,7 @@ import ch.loway.oss.ari4java.AriVersion; import ch.loway.oss.ari4java.generated.AriWSHelper; import ch.loway.oss.ari4java.generated.models.*; +import ch.loway.oss.ari4java.tools.AriCallback; import ch.loway.oss.ari4java.tools.RestException; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -43,10 +44,19 @@ public boolean start() { logger.info("Starting ARI..."); try { ari = ARI.build(address, ARI_APP_NAME, user, pass, version); - AsteriskInfo info = ari.asterisk().getInfo().execute(); + ari.asterisk().getInfo().execute(new AriCallback() { + @Override + public void onSuccess(AsteriskInfo info) { + logger.info("Asterisk {}", info.getSystem().getVersion()); + } + + @Override + public void onFailure(RestException e) { + logger.error("Error getting Asterisk version: {}", e.getMessage(), e); + } + }); threadPool = Executors.newFixedThreadPool(5); ari.events().eventWebsocket(ARI_APP_NAME).execute(new Handler()); - logger.info("Connected to Asterisk {}", info.getSystem().getVersion()); return true; } catch (Throwable t) { logger.error("Error: {}", t.getMessage(), t); @@ -123,7 +133,17 @@ private void hangupChannel(String channelId) { if (channelId != null) { if (lookups.containsKey(channelId)) { try { - ari.channels().hangup(channelId).execute(); + ari.channels().hangup(channelId).execute(new AriCallback() { + @Override + public void onSuccess(Void result) { + logger.debug("hanging up channel"); + } + + @Override + public void onFailure(RestException e) { + logger.error("Error hanging up channel", e); + } + }); } catch (RestException e) { logger.error("Error hanging up channel", e); } @@ -139,10 +159,23 @@ private void hangupChannel(String channelId) { * @throws RestException raised by ARI interactions */ private void createBridgeAndAddChannel1(State state) throws RestException { - Bridge bridge = ari.bridges().create().execute(); - logger.debug("Bridge created id: {}", bridge.getId()); - state.bridge = bridge.getId(); - addChannelToBridge(state.bridge, state.channel1); + ari.bridges().create().execute(new AriCallback() { + @Override + public void onSuccess(Bridge bridge) { + logger.debug("Bridge created id: {}", bridge.getId()); + state.bridge = bridge.getId(); + try { + addChannelToBridge(state.bridge, state.channel1); + } catch (RestException e) { + logger.error("Error adding channel to bridge: {}", e.getMessage(), e); + } + } + + @Override + public void onFailure(RestException e) { + logger.error("Error creating bridge: {}", e.getMessage(), e); + } + }); } /** @@ -151,7 +184,17 @@ private void createBridgeAndAddChannel1(State state) throws RestException { * @throws RestException raised by ARI interactions */ private void addChannelToBridge(String bridgeId, String channelId) throws RestException { - ari.bridges().addChannel(bridgeId, channelId).execute(); + ari.bridges().addChannel(bridgeId, channelId).execute(new AriCallback() { + @Override + public void onSuccess(Void result) { + logger.debug("Channel {}, added to Bridge {}", channelId, bridgeId); + } + + @Override + public void onFailure(RestException e) { + logger.debug("Error adding Channel {} to Bridge {}: {}", channelId, bridgeId, e.getMessage(), e); + } + }); } /** @@ -231,7 +274,7 @@ public void onSuccess(Message message) { @Override protected void onStasisStart(StasisStart message) { // StasisStart is created by both the Stasis dialplan app and a call to the channels API in ARI, - // so we check an argument set in the create channel code and ignore + // so we check an argument set in the createChannel code and ignore logger.debug("onStasisStart, chan id: {}, name: {}", message.getChannel().getId(), message.getChannel().getName()); if (message.getArgs() != null && !message.getArgs().isEmpty() && "me".equals(message.getArgs().get(0))) { logger.debug("started by me, not processing..."); @@ -260,18 +303,6 @@ protected void onStasisStart(StasisStart message) { } catch (RestException e) { logger.error("Error creating bridge", e); hangupChannel(state.channel1); - return; - } - // create the 2nd channel to the desired endpoint - try { - state.channel2 = createChannel(state.to, "Inbound " + state.from); - logger.debug("channel2: {}", state.channel2); - synchronized (lookups) { - lookups.put(state.channel2, state.id); - } - } catch (RestException e) { - logger.error("Error creating channel", e); - hangupChannel(state.channel1); } } @@ -301,17 +332,6 @@ protected void onChannelStateChange(ChannelStateChange message) { } catch (RestException e) { logger.error("Error creating bridge", e); hangupChannel(state.channel1); - return; - } - try { - state.channel2 = createChannel(state.to, state.from); - synchronized (lookups) { - lookups.put(state.channel2, state.id); - } - logger.debug("channel2: {}", state.channel2); - } catch (RestException e) { - logger.error("Error creating channel2", e); - hangupChannel(state.channel1); } } else if ("Ringing".equals(message.getChannel().getState()) && message.getChannel().getId().equals(state.channel2)) { // the channel state has changed to Ringing and is channel2 in the State object ... @@ -340,6 +360,24 @@ protected void onChannelStateChange(ChannelStateChange message) { } } + @Override + protected void onChannelEnteredBridge(ChannelEnteredBridge message) { + logger.debug("onChannelEnteredBridge {} {}", message.getBridge().getId(), message.getChannel().getId()); + State state = lookupState(message.getChannel().getId()); + if (message.getChannel().getId().equals(state.channel1)) { + try { + state.channel2 = createChannel(state.to, state.from); + synchronized (lookups) { + lookups.put(state.channel2, state.id); + } + logger.debug("channel2: {}", state.channel2); + } catch (RestException e) { + logger.error("Error creating channel2", e); + hangupChannel(state.channel1); + } + } + } + @Override protected void onChannelLeftBridge(ChannelLeftBridge message) { logger.debug("onChannelLeftBridge {} {}", message.getBridge().getId(), message.getChannel().getId()); diff --git a/src/main/java/ch/loway/oss/ari4java/tools/WsClientAutoReconnect.java b/src/main/java/ch/loway/oss/ari4java/tools/WsClientAutoReconnect.java deleted file mode 100755 index 1489bad7..00000000 --- a/src/main/java/ch/loway/oss/ari4java/tools/WsClientAutoReconnect.java +++ /dev/null @@ -1,12 +0,0 @@ -package ch.loway.oss.ari4java.tools; - -/** - * Interface to pluggable WebSocket reconnect implementation - * - * @author grahambrown11 - * - */ -public interface WsClientAutoReconnect { - void reconnectWs(Throwable cause); - void pong(); -} diff --git a/src/main/java/ch/loway/oss/ari4java/tools/http/HTTPLogger.java b/src/main/java/ch/loway/oss/ari4java/tools/http/HTTPLogger.java index 2210ad31..f17ee670 100755 --- a/src/main/java/ch/loway/oss/ari4java/tools/http/HTTPLogger.java +++ b/src/main/java/ch/loway/oss/ari4java/tools/http/HTTPLogger.java @@ -15,7 +15,7 @@ private HTTPLogger() { throw new IllegalStateException("Utility class"); } - private static Logger logger = LoggerFactory.getLogger(HTTPLogger.class); + private static final Logger logger = LoggerFactory.getLogger(HTTPLogger.class); private static final int MAX_LEN = 1000; diff --git a/src/main/java/ch/loway/oss/ari4java/tools/http/NettyHttpClient.java b/src/main/java/ch/loway/oss/ari4java/tools/http/NettyHttpClient.java index 55048fa1..81a2273d 100755 --- a/src/main/java/ch/loway/oss/ari4java/tools/http/NettyHttpClient.java +++ b/src/main/java/ch/loway/oss/ari4java/tools/http/NettyHttpClient.java @@ -8,16 +8,26 @@ import io.netty.buffer.Unpooled; import io.netty.channel.*; import io.netty.channel.nio.NioEventLoopGroup; +import io.netty.channel.pool.ChannelPool; +import io.netty.channel.pool.ChannelPoolHandler; +import io.netty.channel.pool.FixedChannelPool; import io.netty.channel.socket.SocketChannel; import io.netty.channel.socket.nio.NioSocketChannel; import io.netty.handler.codec.base64.Base64; import io.netty.handler.codec.http.*; import io.netty.handler.codec.http.websocketx.*; +import io.netty.handler.logging.ByteBufFormat; +import io.netty.handler.logging.LogLevel; +import io.netty.handler.logging.LoggingHandler; import io.netty.handler.ssl.SslContext; import io.netty.handler.ssl.SslContextBuilder; import io.netty.handler.ssl.util.InsecureTrustManagerFactory; import io.netty.handler.timeout.ReadTimeoutHandler; +import io.netty.util.NettyRuntime; +import io.netty.util.concurrent.Future; +import io.netty.util.concurrent.FutureListener; import io.netty.util.concurrent.ScheduledFuture; +import io.netty.util.internal.SystemPropertyUtil; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -37,7 +47,7 @@ * * @author mwalton */ -public class NettyHttpClient implements HttpClient, WsClient, WsClientAutoReconnect { +public class NettyHttpClient implements HttpClient, WsClient { public static final int CONNECTION_TIMEOUT_SEC = 10; public static final int READ_TIMEOUT_SEC = 30; @@ -50,7 +60,7 @@ public class NettyHttpClient implements HttpClient, WsClient, WsClientAutoReconn private static final String HTTP_AGGREGATOR = "http-aggregator"; private static final String HTTP_HANDLER = "http-handler"; - private Logger logger = LoggerFactory.getLogger(NettyHttpClient.class); + private final Logger logger = LoggerFactory.getLogger(NettyHttpClient.class); protected Bootstrap httpBootstrap; protected URI baseUri; @@ -58,7 +68,7 @@ public class NettyHttpClient implements HttpClient, WsClient, WsClientAutoReconn private EventLoopGroup shutDownGroup; protected String auth; - private HttpResponseHandler wsCallback; + protected HttpResponseHandler wsCallback; private String wsEventsUrl; private List wsEventsParamQuery; private WsClientConnection wsClientConnection; @@ -76,10 +86,16 @@ public class NettyHttpClient implements HttpClient, WsClient, WsClientAutoReconn private static boolean autoReconnect = true; protected int pingPeriod = 5; protected TimeUnit pingTimeUnit = TimeUnit.MINUTES; + protected ChannelPool pool; + private int threadCount; public NettyHttpClient() { - group = new NioEventLoopGroup(); - shutDownGroup = new NioEventLoopGroup(); + // use at least 3 threads + threadCount = Math.max(3, SystemPropertyUtil.getInt( + "io.netty.eventLoopThreads", NettyRuntime.availableProcessors() * 2)); + logger.debug("Starting NioEventLoopGroup with {} threads", threadCount); + group = new NioEventLoopGroup(threadCount); + shutDownGroup = new NioEventLoopGroup(1); } public void initialize(String baseUrl, String username, String password) throws URISyntaxException { @@ -108,23 +124,38 @@ protected void initHttpBootstrap() { READ_TIMEOUT_SEC, MAX_HTTP_REQUEST); httpBootstrap = new Bootstrap(); + httpBootstrap.remoteAddress(baseUri.getHost(), getPort()); + httpBootstrap.group(group); bootstrapOptions(httpBootstrap); - httpBootstrap.handler(new ChannelInitializer() { + pool = new FixedChannelPool(httpBootstrap, new ChannelPoolHandler() { @Override - public void initChannel(SocketChannel ch) throws Exception { + public void channelCreated(Channel ch) throws Exception { + logger.trace("Channel Pool connection created: {}", ch); ChannelPipeline pipeline = ch.pipeline(); + pipeline.addFirst("logger", new LoggingHandler(HTTPLogger.class, LogLevel.TRACE, ByteBufFormat.SIMPLE)); addSSLIfRequired(pipeline, baseUri); pipeline.addLast("read-timeout", new ReadTimeoutHandler(READ_TIMEOUT_SEC)); pipeline.addLast(HTTP_CODEC, new HttpClientCodec()); pipeline.addLast(HTTP_AGGREGATOR, new HttpObjectAggregator(MAX_HTTP_REQUEST)); pipeline.addLast(HTTP_HANDLER, new NettyHttpClientHandler()); + logger.debug("pipeline names: {}", pipeline.names()); + ch.closeFuture().addListener(future -> logger.debug("Channel closed, {}", ch)); } - }); + + @Override + public void channelAcquired(Channel ch) { + logger.trace("Channel Pool connection acquired: {}", ch); + } + + @Override + public void channelReleased(Channel ch) { + logger.trace("Channel Pool connection released: {}", ch); + } + }, threadCount); } } private void bootstrapOptions(Bootstrap bootStrap) { - bootStrap.group(group); bootStrap.channel(NioSocketChannel.class); bootStrap.option(ChannelOption.TCP_NODELAY, true); bootStrap.option(ChannelOption.ALLOCATOR, PooledByteBufAllocator.DEFAULT); @@ -153,9 +184,12 @@ private int getPort() { return port; } - protected ChannelFuture httpConnect() { - logger.debug("HTTP Connect uri: {}", baseUri); - return httpBootstrap.connect(baseUri.getHost(), getPort()); + protected Future poolAcquire() { + return pool.acquire(); + } + + protected void poolRelease(Channel ch) { + pool.release(ch); } @Override @@ -184,10 +218,16 @@ public void destroy() { } } if (group != null && !group.isShuttingDown()) { - logger.debug("group shutdownGracefully"); + logger.debug("wsGroup shutdownGracefully"); + group.shutdownGracefully(0, 1, TimeUnit.SECONDS).syncUninterruptibly(); + group = null; + logger.debug("wsGroup shutdown complete"); + } + if (group != null && !group.isShuttingDown()) { + logger.debug("httpGroup shutdownGracefully"); group.shutdownGracefully(0, 1, TimeUnit.SECONDS).syncUninterruptibly(); group = null; - logger.debug("group shutdown complete"); + logger.debug("httpGroup shutdown complete"); } }); shutDownGroup.shutdownGracefully(0, 5, TimeUnit.SECONDS).syncUninterruptibly(); @@ -248,7 +288,7 @@ private HttpRequest buildRequest(String path, String method, List par request.content().clear().writeBytes(bbuf); } request.headers().set(HttpHeaderNames.HOST, baseUri.getHost()); - request.headers().set(HttpHeaderNames.CONNECTION, HttpHeaderValues.CLOSE); + request.headers().set(HttpHeaderNames.CONNECTION, HttpHeaderValues.KEEP_ALIVE); request.headers().set(HttpHeaderNames.AUTHORIZATION, this.auth); HTTPLogger.traceRequest(request, body); return request; @@ -257,9 +297,9 @@ private HttpRequest buildRequest(String path, String method, List par private RestException makeException(HttpResponseStatus status, String response, List errors) { if (status == null && response == null) { - return new RestException("Client Shutdown"); + return new RestException("No HTTP Status and Response, timeout or client shutdown"); } else if (status == null) { - return new RestException("Client Shutdown: " + response); + return new RestException("Error: " + response); } if (errors != null) { @@ -278,7 +318,7 @@ private RestException makeException(HttpResponseStatus status, String response, public String httpActionSync(String uri, String method, List parametersQuery, String body, List errors) throws RestException { NettyHttpClientHandler handler = httpActionSyncHandler(uri, method, parametersQuery, body, errors); - return handler.getResponseText(); + return handler != null ? handler.getResponseText() : null; } // Synchronous HTTP action @@ -286,7 +326,7 @@ public String httpActionSync(String uri, String method, List paramete public byte[] httpActionSyncAsBytes(String uri, String method, List parametersQuery, String body, List errors) throws RestException { NettyHttpClientHandler handler = httpActionSyncHandler(uri, method, parametersQuery, body, errors, true); - return handler.getResponseBytes(); + return handler != null ? handler.getResponseBytes() : null; } private NettyHttpClientHandler httpActionSyncHandler(String uri, String method, List parametersQuery, @@ -298,33 +338,42 @@ private NettyHttpClientHandler httpActionSyncHandler(String uri, String method, String body, List errors, boolean binary) throws RestException { HttpRequest request = buildRequest(uri, method, parametersQuery, body); logger.debug("Sync Action - {} to {}", request.method(), request.uri()); - Channel ch = httpConnect().addListener((ChannelFutureListener) future -> { - if (future.isSuccess()) { - logger.debug("HTTP connected"); - replaceAggregator(binary, future.channel()); - } else if (future.cause() != null) { - logger.error("HTTP Connection Error - {}", future.cause().getMessage(), future.cause()); + Channel ch = poolAcquire().syncUninterruptibly().getNow(); + try { + replaceAggregator(binary, ch); + NettyHttpClientHandler handler = (NettyHttpClientHandler) ch.pipeline().get(HTTP_HANDLER); + if (handler == null) return null; + handler.reset(); + ch.writeAndFlush(request); + logger.debug("Wait for response..."); + handler.waitForResponse(READ_TIMEOUT_SEC); + if (handler.getException() != null) { + logger.debug("got an error: {}", handler.getException().toString()); + throw new RestException(handler.getException()); + } else if (httpResponseOkay(handler.getResponseStatus())) { + logger.debug("got OK response"); + return handler; } else { - logger.error("HTTP Connection Error - Unknown"); + logger.debug("...done waiting"); + throw makeException(handler.getResponseStatus(), handler.getResponseText(), errors); } - }).syncUninterruptibly().channel(); - NettyHttpClientHandler handler = (NettyHttpClientHandler) ch.pipeline().get(HTTP_HANDLER); - ch.writeAndFlush(request); - ch.closeFuture().syncUninterruptibly(); - if (handler.getException() != null) { - throw new RestException(handler.getException()); - } else if (httpResponseOkay(handler.getResponseStatus())) { - return handler; - } else { - throw makeException(handler.getResponseStatus(), handler.getResponseText(), errors); + } finally { + poolRelease(ch); } } private void replaceAggregator(boolean binary, Channel ch) { - if (binary) { - logger.debug("Is Binary, replace http-aggregator ..."); - ch.pipeline().replace( - HTTP_AGGREGATOR, HTTP_AGGREGATOR, new HttpObjectAggregator(MAX_HTTP_BIN_REQUEST)); + HttpObjectAggregator aggregator = (HttpObjectAggregator) ch.pipeline().get(HTTP_AGGREGATOR); + if (aggregator != null) { + if (binary && aggregator.maxContentLength() != MAX_HTTP_BIN_REQUEST) { + logger.debug("Replace http-aggregator with larger content length..."); + ch.pipeline().replace( + HTTP_AGGREGATOR, HTTP_AGGREGATOR, new HttpObjectAggregator(MAX_HTTP_BIN_REQUEST)); + } else if (!binary && aggregator.maxContentLength() != MAX_HTTP_REQUEST) { + logger.debug("Replace http-aggregator with smaller content length..."); + ch.pipeline().replace( + HTTP_AGGREGATOR, HTTP_AGGREGATOR, new HttpObjectAggregator(MAX_HTTP_REQUEST)); + } } } @@ -337,40 +386,52 @@ public void httpActionAsync(String uri, String method, List parameter final HttpRequest request = buildRequest(uri, method, parametersQuery, body); logger.debug("Async Action - {} to {}", request.method(), request.uri()); // Get future channel - ChannelFuture cf = httpConnect(); - cf.addListener((ChannelFutureListener) future1 -> { + Future cf = poolAcquire(); + cf.addListener((FutureListener) future1 -> { if (future1.isSuccess()) { - logger.debug("HTTP connected"); - Channel ch = future1.channel(); + Channel ch = future1.getNow(); + logger.debug("Channel, {}", ch); + group.execute(responseHandler::onChReadyToWrite); replaceAggregator(binary, ch); - responseHandler.onChReadyToWrite(); - ch.writeAndFlush(request); - ch.closeFuture().addListener((ChannelFutureListener) future2 -> { - responseHandler.onResponseReceived(); - if (future2.isSuccess()) { - NettyHttpClientHandler handler = (NettyHttpClientHandler) future2.channel().pipeline().get(HTTP_HANDLER); - if (handler.getException() != null) { - responseHandler.onFailure(new RestException(handler.getException())); - } else if (httpResponseOkay(handler.getResponseStatus())) { - if (binary) { - responseHandler.onSuccess(handler.getResponseBytes()); + final NettyHttpClientHandler handler = (NettyHttpClientHandler) ch.pipeline().get(HTTP_HANDLER); + handler.reset(); + ch.writeAndFlush(request).addListener(future2 -> + group.execute(() -> { + try { + logger.debug("Wait for response..."); + handler.waitForResponse(READ_TIMEOUT_SEC); + if (handler.getException() != null) { + logger.debug("got an error: {}", handler.getException().toString()); + onFailure(responseHandler, new RestException(handler.getException())); + } else if (httpResponseOkay(handler.getResponseStatus())) { + logger.debug("got OK response"); + if (binary) { + responseHandler.onSuccess(handler.getResponseBytes()); + } else { + responseHandler.onSuccess(handler.getResponseText()); + } } else { - responseHandler.onSuccess(handler.getResponseText()); + logger.debug("...done waiting"); + onFailure(responseHandler, makeException(handler.getResponseStatus(), handler.getResponseText(), errors)); } - } else { - responseHandler.onFailure(makeException(handler.getResponseStatus(), handler.getResponseText(), errors)); + } finally { + poolRelease(ch); } - } else { - responseHandler.onFailure(future2.cause()); - } - }); + }) + ); } else { - responseHandler.onFailure(future1.cause()); + onFailure(responseHandler, future1.cause()); } }); } // WsClient implementation - connect to WebSocket server + private void onFailure(HttpResponseHandler responseHandler, Throwable cause) { + if (!group.isShuttingDown()) { + group.execute(() -> responseHandler.onFailure(cause)); + } + } + @Override public WsClientConnection connect(final HttpResponseHandler callback, final String url, final List lParamQuery) throws RestException { if (isWsConnected()) { @@ -381,7 +442,7 @@ public WsClientConnection connect(final HttpResponseHandler callback, final Stri logger.debug("WS Connect uri: {}", handshake.uri()); this.wsEventsUrl = url; this.wsEventsParamQuery = lParamQuery; - this.wsHandler = new NettyWSClientHandler(handshake, callback, this); + this.wsHandler = new NettyWSClientHandler(handshake, this); this.wsCallback = callback; return connect(new Bootstrap(), callback); } catch (Exception e) { @@ -390,12 +451,14 @@ public WsClientConnection connect(final HttpResponseHandler callback, final Stri } protected WsClientConnection connect(Bootstrap wsBootStrap, final HttpResponseHandler callback) { + wsBootStrap.group(group); bootstrapOptions(wsBootStrap); wsBootStrap.handler(new ChannelInitializer() { @Override public void initChannel(SocketChannel ch) throws Exception { ChannelPipeline pipeline = ch.pipeline(); addSSLIfRequired(pipeline, baseUri); + pipeline.addFirst("logger", new LoggingHandler(HTTPLogger.class, LogLevel.TRACE, ByteBufFormat.SIMPLE)); pipeline.addLast(HTTP_CODEC, new HttpClientCodec()); pipeline.addLast(HTTP_AGGREGATOR, new HttpObjectAggregator(MAX_HTTP_REQUEST)); pipeline.addLast("ws-handler", wsHandler); @@ -419,7 +482,9 @@ public void operationComplete(ChannelFuture future) throws Exception { // start a ping and reset reconnect counter startPing(); reconnectCount = 0; - callback.onChReadyToWrite(); + if (!group.isShuttingDown()) { + group.execute(callback::onChReadyToWrite); + } } else { if (future.cause() != null) { logger.error("WS Upgrade Error - {}", future.cause().getMessage(), future.cause()); @@ -537,8 +602,11 @@ private boolean httpResponseOkay(HttpResponseStatus status) { || HttpResponseStatus.CREATED.equals(status); } - @Override public void reconnectWs(Throwable cause) { + // send the disconnect callback + if (!group.isShuttingDown()) { + group.execute(() -> wsCallback.onDisconnect()); + } // cancel the ping timer if (wsPingTimer != null) { wsPingTimer.cancel(true); @@ -547,7 +615,9 @@ public void reconnectWs(Throwable cause) { if (!autoReconnect || (maxReconnectCount > -1 && reconnectCount >= maxReconnectCount)) { logger.warn("Cannot connect: {} - executing failure callback", cause.getMessage()); - wsCallback.onFailure(cause); + if (!group.isShuttingDown()) { + group.execute(() -> wsCallback.onFailure(cause)); + } return; } @@ -565,14 +635,31 @@ public void reconnectWs(Throwable cause) { // then connect again connect(wsCallback, wsEventsUrl, wsEventsParamQuery); } catch (RestException e) { - wsCallback.onFailure(e); + group.execute(() -> wsCallback.onFailure(e)); } }, timeout, TimeUnit.SECONDS); } } - @Override - public void pong() { + public void onWSResponseReceived() { + if (!group.isShuttingDown()) { + group.execute(() -> wsCallback.onResponseReceived()); + } + } + + public void onWSSuccess(String text) { + if (!group.isShuttingDown()) { + group.execute(() -> wsCallback.onSuccess(text)); + } + } + + public void onWSFailure(Throwable cause) { + if (!group.isShuttingDown()) { + group.execute(() -> wsCallback.onFailure(cause)); + } + } + + public void onWSPong() { lastPong = System.currentTimeMillis(); } diff --git a/src/main/java/ch/loway/oss/ari4java/tools/http/NettyHttpClientHandler.java b/src/main/java/ch/loway/oss/ari4java/tools/http/NettyHttpClientHandler.java index b6a6b866..474e7b6a 100755 --- a/src/main/java/ch/loway/oss/ari4java/tools/http/NettyHttpClientHandler.java +++ b/src/main/java/ch/loway/oss/ari4java/tools/http/NettyHttpClientHandler.java @@ -13,6 +13,8 @@ import org.slf4j.LoggerFactory; import java.util.Arrays; +import java.util.concurrent.CountDownLatch; +import java.util.concurrent.TimeUnit; /** * HttpClientHandler handles the asynchronous response from the remote @@ -26,10 +28,12 @@ public class NettyHttpClientHandler extends SimpleChannelInboundHandler protected byte[] responseBytes; protected HttpResponseStatus responseStatus; private Throwable exception; + private CountDownLatch latch = new CountDownLatch(1); - private Logger logger = LoggerFactory.getLogger(NettyHttpClientHandler.class); + private final Logger logger = LoggerFactory.getLogger(NettyHttpClientHandler.class); public void reset() { + latch = new CountDownLatch(1); responseBytes = null; responseStatus = null; } @@ -48,9 +52,11 @@ protected void channelRead0(ChannelHandlerContext ctx, Object msg) throws Except response.headers().getInt(HttpHeaderNames.CONTENT_LENGTH), responseBytes.length); } } else if (msg != null) { + latch.countDown(); logger.warn("Unexpected: {}", msg); throw new RestException("Unknown object: " + msg.getClass().getSimpleName() + ", expecting FullHttpResponse"); } + latch.countDown(); } public String getResponseText() { @@ -76,7 +82,7 @@ public Throwable getException() { } @Override - public void exceptionCaught(ChannelHandlerContext ctx, Throwable cause) throws Exception { + public void exceptionCaught(ChannelHandlerContext ctx, Throwable cause) { this.exception = cause; if (!(cause instanceof ReadTimeoutException)) { logger.error("Not a read timeout", cause); @@ -85,5 +91,13 @@ public void exceptionCaught(ChannelHandlerContext ctx, Throwable cause) throws E ctx.close(); } + public void waitForResponse(int timeout) { + try { + latch.await(timeout, TimeUnit.SECONDS); + } catch (InterruptedException e) { + Thread.currentThread().interrupt(); + } + } + } diff --git a/src/main/java/ch/loway/oss/ari4java/tools/http/NettyWSClientHandler.java b/src/main/java/ch/loway/oss/ari4java/tools/http/NettyWSClientHandler.java index 608a9a94..ec0d18fb 100755 --- a/src/main/java/ch/loway/oss/ari4java/tools/http/NettyWSClientHandler.java +++ b/src/main/java/ch/loway/oss/ari4java/tools/http/NettyWSClientHandler.java @@ -24,19 +24,13 @@ public class NettyWSClientHandler extends NettyHttpClientHandler { final WebSocketClientHandshaker handshaker; private ChannelPromise handshakeFuture; - final HttpResponseHandler wsCallback; - private WsClientAutoReconnect wsClient = null; + private NettyHttpClient client = null; private boolean shuttingDown = false; - private Logger logger = LoggerFactory.getLogger(NettyWSClientHandler.class); + private final Logger logger = LoggerFactory.getLogger(NettyWSClientHandler.class); - public NettyWSClientHandler(WebSocketClientHandshaker handshaker, HttpResponseHandler wsCallback, WsClientAutoReconnect wsClient) { - this(handshaker, wsCallback); - this.wsClient = wsClient; - } - - public NettyWSClientHandler(WebSocketClientHandshaker handshaker, HttpResponseHandler wsCallback) { + public NettyWSClientHandler(WebSocketClientHandshaker handshaker, NettyHttpClient client) { this.handshaker = handshaker; - this.wsCallback = wsCallback; + this.client = client; } public ChannelFuture handshakeFuture() { @@ -44,21 +38,20 @@ public ChannelFuture handshakeFuture() { } @Override - public void handlerAdded(ChannelHandlerContext ctx) throws Exception { + public void handlerAdded(ChannelHandlerContext ctx) { handshakeFuture = ctx.newPromise(); } @Override - public void channelActive(ChannelHandlerContext ctx) throws Exception { + public void channelActive(ChannelHandlerContext ctx) { handshaker.handshake(ctx.channel()); } @Override - public void channelInactive(ChannelHandlerContext ctx) throws Exception { - if (!shuttingDown && this.wsClient != null) { + public void channelInactive(ChannelHandlerContext ctx) { + if (!shuttingDown) { logger.debug("WS channel inactive - {}", ctx); - wsCallback.onDisconnect(); - wsClient.reconnectWs(new RestException("WS channel inactive")); + client.reconnectWs(new RestException("WS channel inactive")); } } @@ -84,25 +77,21 @@ protected void channelRead0(ChannelHandlerContext ctx, Object msg) throws Except } // call this so we can set the last received time - wsCallback.onResponseReceived(); + client.onWSResponseReceived(); if (msg instanceof TextWebSocketFrame) { TextWebSocketFrame textFrame = (TextWebSocketFrame) msg; String text = textFrame.content().toString(ARIEncoder.ENCODING); HTTPLogger.traceWebSocketFrame(text); responseBytes = text.getBytes(ARIEncoder.ENCODING); - wsCallback.onSuccess(text); + client.onWSSuccess(text); } else if (msg instanceof CloseWebSocketFrame) { ch.close(); if (!shuttingDown) { - if (this.wsClient != null) { - wsClient.reconnectWs(new RestException("CloseWebSocketFrame received")); - } else { - wsCallback.onDisconnect(); - } + client.reconnectWs(new RestException("CloseWebSocketFrame received")); } } else if (msg instanceof PongWebSocketFrame) { - wsClient.pong(); + client.onWSPong(); } else { HTTPLogger.traceWebSocketFrame(msg.toString()); String error = "Not expecting: " + msg.getClass().getSimpleName(); @@ -112,7 +101,7 @@ protected void channelRead0(ChannelHandlerContext ctx, Object msg) throws Except } @Override - public void exceptionCaught(ChannelHandlerContext ctx, Throwable cause) throws Exception { + public void exceptionCaught(ChannelHandlerContext ctx, Throwable cause) { if (!shuttingDown) return; logger.error("exceptionCaught: {}", cause.getMessage(), cause); @@ -121,7 +110,7 @@ public void exceptionCaught(ChannelHandlerContext ctx, Throwable cause) throws E } ctx.fireExceptionCaught(cause); ctx.close(); - wsCallback.onFailure(cause); + client.onWSFailure(cause); } public boolean isShuttingDown() { diff --git a/src/test/java/ch/loway/oss/ari4java/tools/http/NettyHttpClientTest.java b/src/test/java/ch/loway/oss/ari4java/tools/http/NettyHttpClientTest.java index 9f589082..312d8fb7 100755 --- a/src/test/java/ch/loway/oss/ari4java/tools/http/NettyHttpClientTest.java +++ b/src/test/java/ch/loway/oss/ari4java/tools/http/NettyHttpClientTest.java @@ -11,8 +11,10 @@ import io.netty.channel.embedded.EmbeddedChannel; import io.netty.handler.codec.http.*; import io.netty.handler.codec.http.websocketx.WebSocketVersion; +import io.netty.util.concurrent.Future; import org.junit.jupiter.api.AfterEach; import org.junit.jupiter.api.Test; +import org.mockito.ArgumentCaptor; import java.net.URI; import java.net.URISyntaxException; @@ -20,7 +22,10 @@ import java.util.HashMap; import java.util.List; import java.util.Map; +import java.util.concurrent.ExecutorService; +import java.util.concurrent.Executors; import java.util.concurrent.TimeUnit; +import java.util.concurrent.atomic.AtomicBoolean; import static org.junit.jupiter.api.Assertions.*; import static org.mockito.Mockito.*; @@ -29,20 +34,36 @@ public class NettyHttpClientTest { private NettyHttpClient client; private ChannelFuture cf; + private Future fc; + private final ExecutorService executor = Executors.newSingleThreadExecutor(); - private void setupTestClient(boolean init) throws URISyntaxException { + private void setupTestClient(boolean init, Channel ch) throws URISyntaxException { client = new NettyHttpClient() { protected void initHttpBootstrap() { // for testing skip the bootstrapping } - protected ChannelFuture httpConnect() { - return cf; + @Override + protected Future poolAcquire() { + return fc; + } + + @Override + protected void poolRelease(Channel ch) { + // for testing skip } }; if (init) { client.initialize("http://localhost:8088/", "user", "p@ss"); } + if (ch instanceof EmbeddedChannel) { + fc = ch.eventLoop().newSucceededFuture(ch); + } else { + //noinspection unchecked + fc = (Future) mock(Future.class); + when(fc.syncUninterruptibly()).thenReturn(fc); + when(fc.getNow()).thenReturn(ch); + } } @AfterEach @@ -54,21 +75,21 @@ public void tearDown() { @Test public void testInitializeBadURL() throws URISyntaxException { - setupTestClient(false); + setupTestClient(false, null); assertThrows(URISyntaxException.class, () -> client.initialize(":", "", "")); } @Test public void testInitializeInvalidURL() throws URISyntaxException { - setupTestClient(false); + setupTestClient(false, null); assertThrows(IllegalArgumentException.class, () -> client.initialize("ws://localhost:8088/", "", "")); } @Test public void testBuildURL() throws Exception { - setupTestClient(true); + setupTestClient(true, null); List queryParams = new ArrayList<>(); queryParams.add(HttpParam.build("a", "b/c")); queryParams.add(HttpParam.build("d", "e")); @@ -84,36 +105,13 @@ public void testInitialize() throws Exception { assertNotNull(client.baseUri); } - @Test - public void testHttpConnect() { - Bootstrap bootstrap = mock(Bootstrap.class); - NettyHttpClient client = new NettyHttpClient() { - { - initHttpBootstrap(); - } - @Override - protected void initHttpBootstrap() { - httpBootstrap = bootstrap; - try { - baseUri = new URI("http://localhost:8088/"); - } catch (URISyntaxException e) { - // oh well - } - } - }; - when(bootstrap.connect(eq("localhost"), eq(8088))).thenReturn(mock(ChannelFuture.class)); - ChannelFuture future = client.httpConnect(); - assertNotNull(future, "Expected ChannelFuture"); - verify(bootstrap, times(1)).connect(anyString(), anyInt()); - client.destroy(); - } - @Test public void testWsConnect() throws Exception { Bootstrap bootstrap = mock(Bootstrap.class); NettyWSClientHandler testHandler = mock(NettyWSClientHandler.class); + ChannelFuture handshakeFuture = mock(ChannelFuture.class); + when(testHandler.handshakeFuture()).thenReturn(handshakeFuture); EmbeddedChannel channel = createTestChannel("ws-handler", testHandler); - FullHttpRequest req = new DefaultFullHttpRequest(HttpVersion.HTTP_1_1, HttpMethod.GET, "/events"); HttpHeaders headers = req.headers(); headers.set(HttpHeaderNames.UPGRADE, HttpHeaderValues.WEBSOCKET); @@ -122,11 +120,12 @@ public void testWsConnect() throws Exception { cf = channel.closeFuture(); when(bootstrap.connect(eq("localhost"), eq(443))).thenReturn(cf); ((DefaultChannelPromise) cf).setSuccess(null); - + HttpResponseHandler testWsCallback = mock(HttpResponseHandler.class); + when(testWsCallback.getLastResponseTime()).thenReturn(0L); class TestNettyHttpClient extends NettyHttpClient { @Override public WsClientConnection connect(final HttpResponseHandler callback, final String url, - final List lParamQuery) throws RestException { + final List lParamQuery) { try { baseUri = new URI("https://localhost/"); this.auth = "123"; @@ -136,38 +135,43 @@ public WsClientConnection connect(final HttpResponseHandler callback, final Stri } pingPeriod = 1; pingTimeUnit = TimeUnit.SECONDS; + wsHandler = testHandler; + wsCallback = testWsCallback; return connect(bootstrap, callback); } -// public void testWsFutureOperationComplete(ChannelFuture future) throws Exception { -// this.wsHandler = testHandler; -// wsFuture.operationComplete(future); -// } } TestNettyHttpClient client = new TestNettyHttpClient(); WsClient.WsClientConnection connection = client.connect(mock(HttpResponseHandler.class), "/events", null); assertNotNull(connection, "Expected WsClientConnection"); channel.writeInbound(req); - Thread.sleep(10000); + ArgumentCaptor captor = ArgumentCaptor.forClass(ChannelFutureListener.class); + verify(handshakeFuture).addListener(captor.capture()); + captor.getValue().operationComplete(channel.newSucceededFuture()); + client.onWSPong(); + Thread.sleep(2500); + System.out.println(channel.inboundMessages().toString()); + channel.readOutbound(); client.destroy(); } - private void setupSync(NettyHttpClientHandler h) { - cf = mock(ChannelFuture.class); - when(cf.addListener(any())).thenReturn(cf); - when(cf.syncUninterruptibly()).thenReturn(cf); + @Test + public void testHttpActionSync() throws Exception { Channel ch = mock(Channel.class); - when(ch.closeFuture()).thenReturn(cf); - when(cf.channel()).thenReturn(ch); ChannelPipeline p = mock(ChannelPipeline.class); - when(p.get("http-handler")).thenReturn(h); when(ch.pipeline()).thenReturn(p); - } + setupTestClient(true, ch); + NettyHttpClientHandler h = new NettyHttpClientHandler() { + @Override + public void reset() { + // dont reset for this test + } - @Test - public void testHttpActionSync() throws Exception { - setupTestClient(true); - NettyHttpClientHandler h = new NettyHttpClientHandler(); - setupSync(h); + @Override + public void waitForResponse(int timeout) { + // dont wait for test + } + }; + when(p.get("http-handler")).thenReturn(h); h.responseStatus = HttpResponseStatus.OK; h.responseBytes = "testing".getBytes(ARIEncoder.ENCODING); String res = client.httpActionSync("", "GET", null, null, null); @@ -189,11 +193,25 @@ private EmbeddedChannel createTestChannel(String name, ChannelHandler handler) { return channel; } + private void delayedWriteInbound(EmbeddedChannel channel, HttpResponseStatus status, String data) { + delayedWriteInbound(channel, status, data, 200); + } + + private void delayedWriteInbound(EmbeddedChannel channel, HttpResponseStatus status, String data, long sleep) { + executor.submit(() -> { + try { + Thread.sleep(sleep); + } catch (InterruptedException e) { + Thread.currentThread().interrupt(); + } + channel.writeInbound(new DefaultFullHttpResponse( + HttpVersion.HTTP_1_1, status, Unpooled.copiedBuffer(data, ARIEncoder.ENCODING))); + }); + } + private AsteriskPingGetRequest pingSetup(EmbeddedChannel channel) { - channel.writeInbound(new DefaultFullHttpResponse(HttpVersion.HTTP_1_1, HttpResponseStatus.OK, - Unpooled.copiedBuffer( - "{\"ping\":\"pong\",\"timestamp\":\"2020-01-01T00:00:00.000+0000\",\"asterisk_id\":\"test_asterisk\"}", - ARIEncoder.ENCODING))); + delayedWriteInbound(channel, HttpResponseStatus.OK, + "{\"ping\":\"pong\",\"timestamp\":\"2020-01-01T00:00:00.000+0000\",\"asterisk_id\":\"test_asterisk\"}", 500); AsteriskPingGetRequest_impl_ari_6_0_0 req = new AsteriskPingGetRequest_impl_ari_6_0_0(); req.setHttpClient(client); return req; @@ -210,8 +228,8 @@ private void pingValidate(EmbeddedChannel channel, AsteriskPing res) { @Test public void testHttpActionSyncPing() throws Exception { - setupTestClient(true); EmbeddedChannel channel = createTestChannel(); + setupTestClient(true, channel); AsteriskPingGetRequest req = pingSetup(channel); AsteriskPing res = req.execute(); pingValidate(channel, res); @@ -219,15 +237,15 @@ public void testHttpActionSyncPing() throws Exception { @Test public void testHttpActionAsyncPing() throws Exception { - setupTestClient(true); EmbeddedChannel channel = createTestChannel(); + setupTestClient(true, channel); AsteriskPingGetRequest req = pingSetup(channel); - final boolean[] callback = {false}; + final AtomicBoolean callback = new AtomicBoolean(false); req.execute(new AriCallback() { @Override public void onSuccess(AsteriskPing res) { pingValidate(channel, res); - callback[0] = true; + callback.set(true); } @Override @@ -235,19 +253,19 @@ public void onFailure(RestException e) { fail(e.toString()); } }); + Thread.sleep(550); channel.runPendingTasks(); - assertTrue(callback[0], "No onSuccess Callback"); + assertTrue(callback.get(), "No onSuccess Callback"); } @Test public void testHttpActionException() throws Exception { - setupTestClient(true); EmbeddedChannel channel = createTestChannel(); + setupTestClient(true, channel); ApplicationsGetRequest_impl_ari_6_0_0 req = new ApplicationsGetRequest_impl_ari_6_0_0("test"); req.setHttpClient(client); // when the response is JSON error then return the error from the server - channel.writeInbound(new DefaultFullHttpResponse(HttpVersion.HTTP_1_1, HttpResponseStatus.NOT_FOUND, - Unpooled.copiedBuffer("{\"message\":\"a test error\"}", ARIEncoder.ENCODING))); + delayedWriteInbound(channel, HttpResponseStatus.NOT_FOUND, "{\"message\":\"a test error\"}"); boolean exception = false; try { req.execute(); @@ -257,8 +275,7 @@ public void testHttpActionException() throws Exception { } assertTrue(exception, "Expecting an exception"); // when the response is not JSON and there is an error definition from the API then return API definition - channel.writeInbound(new DefaultFullHttpResponse(HttpVersion.HTTP_1_1, HttpResponseStatus.NOT_FOUND, - Unpooled.copiedBuffer("Not found", ARIEncoder.ENCODING))); + delayedWriteInbound(channel, HttpResponseStatus.NOT_FOUND, "Not found"); exception = false; try { req.execute(); @@ -271,10 +288,9 @@ public void testHttpActionException() throws Exception { @Test public void testBodyFieldSerialisation() throws Exception { - setupTestClient(true); EmbeddedChannel channel = createTestChannel(); - channel.writeInbound(new DefaultFullHttpResponse( - HttpVersion.HTTP_1_1, HttpResponseStatus.OK, Unpooled.copiedBuffer("[]", ARIEncoder.ENCODING))); + setupTestClient(true, channel); + delayedWriteInbound(channel, HttpResponseStatus.OK, "[]"); AsteriskUpdateObjectPutRequest_impl_ari_6_0_0 req = new AsteriskUpdateObjectPutRequest_impl_ari_6_0_0( "cc", "ot", "id"); req.setHttpClient(client); @@ -284,11 +300,9 @@ public void testBodyFieldSerialisation() throws Exception { @Test public void testBodyVariableSerialisation() throws Exception { - setupTestClient(true); EmbeddedChannel channel = createTestChannel(); - channel.writeInbound(new DefaultFullHttpResponse( - HttpVersion.HTTP_1_1, HttpResponseStatus.OK, Unpooled.copiedBuffer("{}", ARIEncoder.ENCODING))); - + setupTestClient(true, channel); + delayedWriteInbound(channel, HttpResponseStatus.OK, "{}"); EndpointsSendMessagePutRequest_impl_ari_6_0_0 req = new EndpointsSendMessagePutRequest_impl_ari_6_0_0("to", "from"); req.setHttpClient(client); req.addVariables("key1", "val1").addVariables("key2", "val2").execute(); @@ -297,11 +311,9 @@ public void testBodyVariableSerialisation() throws Exception { @Test public void testBodyObjectSerialisation() throws Exception { - setupTestClient(true); - EmbeddedChannel channel = createTestChannel(); - channel.writeInbound(new DefaultFullHttpResponse( - HttpVersion.HTTP_1_1, HttpResponseStatus.OK, Unpooled.copiedBuffer("{}", ARIEncoder.ENCODING))); - + final EmbeddedChannel channel = createTestChannel(); + setupTestClient(true, channel); + delayedWriteInbound(channel, HttpResponseStatus.OK, "{}"); Map map = new HashMap<>(); map.put("key1", "val1"); map.put("key2", "val2"); From cb7f02bc82282c24819bfe3291f43a70cbde20d6 Mon Sep 17 00:00:00 2001 From: Graham Brown Date: Sat, 13 Aug 2022 22:43:16 +0200 Subject: [PATCH 202/220] add entries to CL --- CHANGELOG.md | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index ab791295..9b2faee6 100755 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,6 +2,13 @@ ## [Unreleased] [Unreleased]: https://github.com/ari4java/ari4java/compare/v0.16.0...HEAD +### Added +- Connection Pooling using Netty's FixedChannelPool +- Examples have a Docker provider for Vagrant (in order to work around VirtualBox compatibility on Apple Silicon) + +### Changed +- Cannot wait for connection close due to using connection keep-alive (aka pooling) +- Some methods in the Examples use the async approach ## [0.16.0] [0.16.0]: https://github.com/ari4java/ari4java/compare/v0.15.0...v0.16.0 From 7d4b57ce0993a6f319f52181e8feb7954c0564f5 Mon Sep 17 00:00:00 2001 From: grahambrown11 Date: Sat, 17 Sep 2022 10:15:30 +0000 Subject: [PATCH 203/220] ARI API Updates --- .../src/main/resources/codegen-data/ari_8_0_0/channels.json | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/codegen/src/main/resources/codegen-data/ari_8_0_0/channels.json b/codegen/src/main/resources/codegen-data/ari_8_0_0/channels.json index 04d15773..269976df 100644 --- a/codegen/src/main/resources/codegen-data/ari_8_0_0/channels.json +++ b/codegen/src/main/resources/codegen-data/ari_8_0_0/channels.json @@ -2126,6 +2126,11 @@ "type": "string", "description": "Unique identifier of the channel.\n\nThis is the same as the Uniqueid field in AMI." }, + "protocol_id": { + "required": true, + "type": "string", + "description": "Protocol id from underlying channel driver (i.e. Call-ID for chan_sip/chan_pjsip; will be empty if not applicable or not implemented by driver)." + }, "name": { "required": true, "type": "string", From 7df86e5d6497e815a353c2b850b468b3afba8ea1 Mon Sep 17 00:00:00 2001 From: Graham Brown Date: Wed, 17 May 2023 21:56:31 +0200 Subject: [PATCH 204/220] update action versions --- .github/workflows/ari-apis.yml | 6 +++--- .github/workflows/ari-versions.yml | 6 +++--- .github/workflows/gradle.yml | 9 +++++---- 3 files changed, 11 insertions(+), 10 deletions(-) diff --git a/.github/workflows/ari-apis.yml b/.github/workflows/ari-apis.yml index d7244a43..4bf86abc 100755 --- a/.github/workflows/ari-apis.yml +++ b/.github/workflows/ari-apis.yml @@ -7,10 +7,10 @@ on: jobs: getApis: - runs-on: ubuntu-20.04 + runs-on: ubuntu-22.04 steps: - - uses: actions/checkout@v2 + - uses: actions/checkout@v3 - name: Execute getApis run: | @@ -20,7 +20,7 @@ jobs: - name: Create Pull Request id: cpr - uses: peter-evans/create-pull-request@v3 + uses: peter-evans/create-pull-request@v5 with: commit-message: ARI API Updates branch: apis diff --git a/.github/workflows/ari-versions.yml b/.github/workflows/ari-versions.yml index b68b61bf..7a487ab4 100755 --- a/.github/workflows/ari-versions.yml +++ b/.github/workflows/ari-versions.yml @@ -7,13 +7,13 @@ on: jobs: getApis: - runs-on: ubuntu-20.04 + runs-on: ubuntu-22.04 steps: - name: Checkout Project - uses: actions/checkout@v2 + uses: actions/checkout@v3 - name: Checkout Wiki - uses: actions/checkout@v2 + uses: actions/checkout@v3 with: repository: ${{github.repository}}.wiki path: codegen/tmp/wiki diff --git a/.github/workflows/gradle.yml b/.github/workflows/gradle.yml index 5bcb9318..f9cb19ed 100755 --- a/.github/workflows/gradle.yml +++ b/.github/workflows/gradle.yml @@ -12,11 +12,11 @@ on: jobs: build: - runs-on: ubuntu-20.04 + runs-on: ubuntu-22.04 steps: - - uses: actions/checkout@v2 - - uses: actions/cache@v1 + - uses: actions/checkout@v3 + - uses: actions/cache@v3 with: path: ~/.gradle/caches key: ${{ runner.os }}-gradle-${{ hashFiles('**/*.gradle') }} @@ -25,7 +25,8 @@ jobs: - name: Set up JDK 1.8 uses: actions/setup-java@v1 with: - java-version: 1.8 + distribution: 'zulu' + java-version: '8' - name: Grant execute permission for gradlew run: chmod +x gradlew - name: Build with Gradle From 7cbbc75b87089cef93fac2ad621c88956e901ce1 Mon Sep 17 00:00:00 2001 From: Graham Brown Date: Wed, 17 May 2023 22:06:13 +0200 Subject: [PATCH 205/220] add 5060 udp forward for SIP --- examples/Vagrantfile | 1 + 1 file changed, 1 insertion(+) diff --git a/examples/Vagrantfile b/examples/Vagrantfile index 90b410aa..498c70ed 100644 --- a/examples/Vagrantfile +++ b/examples/Vagrantfile @@ -26,6 +26,7 @@ Vagrant.configure("2") do |config| d.has_ssh = true d.privileged = true override.vm.network :forwarded_port, guest: 8089, host: 8089 + override.vm.network :forwarded_port, guest: 5060, host: 5060, protocol: "udp" for i in 20000..20010 override.vm.network :forwarded_port, guest: i, host: i, protocol: "udp" end From 01cddc3f72198c9316ccbd3361cfb45da98c7df6 Mon Sep 17 00:00:00 2001 From: Graham Brown Date: Sat, 24 Feb 2024 08:56:12 +0200 Subject: [PATCH 206/220] updating action versions --- .github/workflows/ari-apis.yml | 6 +++--- .github/workflows/ari-versions.yml | 6 +++--- .github/workflows/gradle.yml | 13 +++++++------ 3 files changed, 13 insertions(+), 12 deletions(-) diff --git a/.github/workflows/ari-apis.yml b/.github/workflows/ari-apis.yml index d7244a43..c43932ab 100755 --- a/.github/workflows/ari-apis.yml +++ b/.github/workflows/ari-apis.yml @@ -7,10 +7,10 @@ on: jobs: getApis: - runs-on: ubuntu-20.04 + runs-on: ubuntu-22.04 steps: - - uses: actions/checkout@v2 + - uses: actions/checkout@v4 - name: Execute getApis run: | @@ -20,7 +20,7 @@ jobs: - name: Create Pull Request id: cpr - uses: peter-evans/create-pull-request@v3 + uses: peter-evans/create-pull-request@v6 with: commit-message: ARI API Updates branch: apis diff --git a/.github/workflows/ari-versions.yml b/.github/workflows/ari-versions.yml index b68b61bf..cc5df914 100755 --- a/.github/workflows/ari-versions.yml +++ b/.github/workflows/ari-versions.yml @@ -7,13 +7,13 @@ on: jobs: getApis: - runs-on: ubuntu-20.04 + runs-on: ubuntu-22.04 steps: - name: Checkout Project - uses: actions/checkout@v2 + uses: actions/checkout@v4 - name: Checkout Wiki - uses: actions/checkout@v2 + uses: actions/checkout@v4 with: repository: ${{github.repository}}.wiki path: codegen/tmp/wiki diff --git a/.github/workflows/gradle.yml b/.github/workflows/gradle.yml index 5bcb9318..7cc999c9 100755 --- a/.github/workflows/gradle.yml +++ b/.github/workflows/gradle.yml @@ -12,20 +12,21 @@ on: jobs: build: - runs-on: ubuntu-20.04 + runs-on: ubuntu-22.04 steps: - - uses: actions/checkout@v2 - - uses: actions/cache@v1 + - uses: actions/checkout@v4 + - uses: actions/cache@v4 with: path: ~/.gradle/caches key: ${{ runner.os }}-gradle-${{ hashFiles('**/*.gradle') }} restore-keys: | ${{ runner.os }}-gradle- - name: Set up JDK 1.8 - uses: actions/setup-java@v1 + uses: actions/setup-java@v4 with: - java-version: 1.8 + distribution: 'zulu' + java-version: '8' - name: Grant execute permission for gradlew run: chmod +x gradlew - name: Build with Gradle @@ -39,7 +40,7 @@ jobs: run: ./gradlew clean :codegen:runCodegen buildProps build bintrayUpload if: github.event_name == 'release' - name: Archive Reports - uses: actions/upload-artifact@v1 + uses: actions/upload-artifact@v4 with: name: report-folder path: build/reports From c9ad8f91d40131f312f88271ca6b9043dc159f58 Mon Sep 17 00:00:00 2001 From: Graham Brown Date: Sat, 24 Feb 2024 09:05:47 +0200 Subject: [PATCH 207/220] update repo as asterisk is now on GitHub --- codegen/getApis.sh | 2 +- codegen/getVersions.sh | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/codegen/getApis.sh b/codegen/getApis.sh index bc8a15df..10413e09 100755 --- a/codegen/getApis.sh +++ b/codegen/getApis.sh @@ -6,7 +6,7 @@ if [ ! -d "tmp/asterisk" ] then mkdir tmp cd tmp - git clone "https://gerrit.asterisk.org/asterisk" + git clone "https://github.com/asterisk/asterisk" cd asterisk else cd tmp/asterisk diff --git a/codegen/getVersions.sh b/codegen/getVersions.sh index 9308972e..6755e779 100755 --- a/codegen/getVersions.sh +++ b/codegen/getVersions.sh @@ -11,7 +11,7 @@ if [ ! -d "tmp/asterisk" ] then mkdir tmp cd tmp - git clone "https://gerrit.asterisk.org/asterisk" + git clone "https://github.com/asterisk/asterisk" cd asterisk else cd tmp/asterisk From d04cd5f8aefec658f5a5e677716227857b6005d3 Mon Sep 17 00:00:00 2001 From: grahambrown11 <771817+grahambrown11@users.noreply.github.com> Date: Sat, 24 Feb 2024 07:23:40 +0000 Subject: [PATCH 208/220] ARI API Updates --- .../codegen-data/ari_6_0_1/bridges.json | 4 +- .../codegen-data/ari_6_0_1/channels.json | 6 +- .../codegen-data/ari_6_0_1/endpoints.json | 134 + .../codegen-data/ari_8_0_0/bridges.json | 4 +- .../codegen-data/ari_8_0_0/channels.json | 6 +- .../codegen-data/ari_8_0_0/endpoints.json | 134 + .../codegen-data/ari_9_0_0/applications.json | 223 ++ .../codegen-data/ari_9_0_0/asterisk.json | 725 ++++++ .../codegen-data/ari_9_0_0/bridges.json | 774 ++++++ .../codegen-data/ari_9_0_0/channels.json | 2198 +++++++++++++++++ .../codegen-data/ari_9_0_0/deviceStates.json | 154 ++ .../codegen-data/ari_9_0_0/endpoints.json | 397 +++ .../codegen-data/ari_9_0_0/events.json | 918 +++++++ .../codegen-data/ari_9_0_0/mailboxes.json | 137 + .../codegen-data/ari_9_0_0/playbacks.json | 165 ++ .../codegen-data/ari_9_0_0/recordings.json | 413 ++++ .../codegen-data/ari_9_0_0/sounds.json | 99 + 17 files changed, 6485 insertions(+), 6 deletions(-) create mode 100644 codegen/src/main/resources/codegen-data/ari_9_0_0/applications.json create mode 100644 codegen/src/main/resources/codegen-data/ari_9_0_0/asterisk.json create mode 100644 codegen/src/main/resources/codegen-data/ari_9_0_0/bridges.json create mode 100644 codegen/src/main/resources/codegen-data/ari_9_0_0/channels.json create mode 100644 codegen/src/main/resources/codegen-data/ari_9_0_0/deviceStates.json create mode 100644 codegen/src/main/resources/codegen-data/ari_9_0_0/endpoints.json create mode 100644 codegen/src/main/resources/codegen-data/ari_9_0_0/events.json create mode 100644 codegen/src/main/resources/codegen-data/ari_9_0_0/mailboxes.json create mode 100644 codegen/src/main/resources/codegen-data/ari_9_0_0/playbacks.json create mode 100644 codegen/src/main/resources/codegen-data/ari_9_0_0/recordings.json create mode 100644 codegen/src/main/resources/codegen-data/ari_9_0_0/sounds.json diff --git a/codegen/src/main/resources/codegen-data/ari_6_0_1/bridges.json b/codegen/src/main/resources/codegen-data/ari_6_0_1/bridges.json index bf0a0016..636d2540 100644 --- a/codegen/src/main/resources/codegen-data/ari_6_0_1/bridges.json +++ b/codegen/src/main/resources/codegen-data/ari_6_0_1/bridges.json @@ -30,7 +30,7 @@ "parameters": [ { "name": "type", - "description": "Comma separated list of bridge type attributes (mixing, holding, dtmf_events, proxy_media, video_sfu, video_single).", + "description": "Comma separated list of bridge type attributes (mixing, holding, dtmf_events, proxy_media, video_sfu, video_single, sdp_label).", "paramType": "query", "required": false, "allowMultiple": false, @@ -69,7 +69,7 @@ "parameters": [ { "name": "type", - "description": "Comma separated list of bridge type attributes (mixing, holding, dtmf_events, proxy_media, video_sfu, video_single) to set.", + "description": "Comma separated list of bridge type attributes (mixing, holding, dtmf_events, proxy_media, video_sfu, video_single, sdp_label) to set.", "paramType": "query", "required": false, "allowMultiple": false, diff --git a/codegen/src/main/resources/codegen-data/ari_6_0_1/channels.json b/codegen/src/main/resources/codegen-data/ari_6_0_1/channels.json index 269976df..1b49329f 100644 --- a/codegen/src/main/resources/codegen-data/ari_6_0_1/channels.json +++ b/codegen/src/main/resources/codegen-data/ari_6_0_1/channels.json @@ -416,7 +416,7 @@ }, { "name": "reason_code", - "description": "The reason code for hanging up the channel for detail use. Mutually exclusive with 'reason'. See detail hangup codes at here. https://wiki.asterisk.org/wiki/display/AST/Hangup+Cause+Mappings", + "description": "The reason code for hanging up the channel for detail use. Mutually exclusive with 'reason'. See detail hangup codes at here. https://docs.asterisk.org/Configuration/Miscellaneous/Hangup-Cause-Mappings/", "paramType": "query", "required": false, "allowMultiple": false, @@ -2187,6 +2187,10 @@ "required": false, "type": "object", "description": "Channel variables" + }, + "caller_rdnis": { + "type": "string", + "description": "The Caller ID RDNIS" } } } diff --git a/codegen/src/main/resources/codegen-data/ari_6_0_1/endpoints.json b/codegen/src/main/resources/codegen-data/ari_6_0_1/endpoints.json index 1f77d370..7560b9cb 100644 --- a/codegen/src/main/resources/codegen-data/ari_6_0_1/endpoints.json +++ b/codegen/src/main/resources/codegen-data/ari_6_0_1/endpoints.json @@ -75,6 +75,71 @@ } ] }, + { + "path": "/endpoints/refer", + "description": "Refer an endpoint or technology URI to some technology URI or endpoint.", + "operations": [ + { + "httpMethod": "POST", + "summary": "Refer an endpoint or technology URI to some technology URI or endpoint.", + "nickname": "refer", + "responseClass": "void", + "parameters": [ + { + "name": "to", + "description": "The endpoint resource or technology specific URI that should be referred to somewhere. Valid resource is pjsip.", + "paramType": "query", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "from", + "description": "The endpoint resource or technology specific identity to refer from.", + "paramType": "query", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "refer_to", + "description": "The endpoint resource or technology specific URI to refer to.", + "paramType": "query", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "to_self", + "description": "If true and \"refer_to\" refers to an Asterisk endpoint, the \"refer_to\" value is set to point to this Asterisk endpoint - so the referee is referred to Asterisk. Otherwise, use the contact URI associated with the endpoint.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "boolean", + "defaultValue": false + }, + { + "name": "variables", + "description": "The \"variables\" key in the body object holds technology specific key/value pairs to append to the message. These can be interpreted and used by the various resource types; for example, the pjsip resource type will add the key/value pairs as SIP headers. The \"display_name\" key is used by the PJSIP technology. Its value will be prepended as a display name to the Refer-To URI.", + "paramType": "body", + "required": false, + "dataType": "containers", + "allowMultiple": false + } + ], + "errorResponses": [ + { + "code": 400, + "reason": "Invalid parameters for referring." + }, + { + "code": 404, + "reason": "Endpoint not found" + } + ] + } + ] + }, { "path": "/endpoints/{tech}", "description": "Asterisk endpoints", @@ -196,6 +261,75 @@ ] } ] + }, + { + "path": "/endpoints/{tech}/{resource}/refer", + "description": "Refer an endpoint in a technology to some technology URI or endpoint..", + "operations": [ + { + "httpMethod": "POST", + "summary": "Refer an endpoint or technology URI to some technology URI or endpoint.", + "nickname": "referToEndpoint", + "responseClass": "void", + "parameters": [ + { + "name": "tech", + "description": "Technology of the endpoint", + "paramType": "path", + "dataType": "string" + }, + { + "name": "resource", + "description": "ID of the endpoint", + "paramType": "path", + "dataType": "string" + }, + { + "name": "from", + "description": "The endpoint resource or technology specific identity to refer from.", + "paramType": "query", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "refer_to", + "description": "The endpoint resource or technology specific URI to refer to.", + "paramType": "query", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "to_self", + "description": "If true and \"refer_to\" refers to an Asterisk endpoint, the \"refer_to\" value is set to point to this Asterisk endpoint - so the referee is referred to Asterisk. Otherwise, use the contact URI associated with the endpoint.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "boolean", + "defaultValue": false + }, + { + "name": "variables", + "description": "The \"variables\" key in the body object holds technology specific key/value pairs to append to the message. These can be interpreted and used by the various resource types; for example, the pjsip resource type will add the key/value pairs as SIP headers,", + "paramType": "body", + "required": false, + "dataType": "containers", + "allowMultiple": false + } + ], + "errorResponses": [ + { + "code": 400, + "reason": "Invalid parameters for referring." + }, + { + "code": 404, + "reason": "Endpoint not found" + } + ] + } + ] } ], "models": { diff --git a/codegen/src/main/resources/codegen-data/ari_8_0_0/bridges.json b/codegen/src/main/resources/codegen-data/ari_8_0_0/bridges.json index bf0a0016..636d2540 100644 --- a/codegen/src/main/resources/codegen-data/ari_8_0_0/bridges.json +++ b/codegen/src/main/resources/codegen-data/ari_8_0_0/bridges.json @@ -30,7 +30,7 @@ "parameters": [ { "name": "type", - "description": "Comma separated list of bridge type attributes (mixing, holding, dtmf_events, proxy_media, video_sfu, video_single).", + "description": "Comma separated list of bridge type attributes (mixing, holding, dtmf_events, proxy_media, video_sfu, video_single, sdp_label).", "paramType": "query", "required": false, "allowMultiple": false, @@ -69,7 +69,7 @@ "parameters": [ { "name": "type", - "description": "Comma separated list of bridge type attributes (mixing, holding, dtmf_events, proxy_media, video_sfu, video_single) to set.", + "description": "Comma separated list of bridge type attributes (mixing, holding, dtmf_events, proxy_media, video_sfu, video_single, sdp_label) to set.", "paramType": "query", "required": false, "allowMultiple": false, diff --git a/codegen/src/main/resources/codegen-data/ari_8_0_0/channels.json b/codegen/src/main/resources/codegen-data/ari_8_0_0/channels.json index 269976df..1b49329f 100644 --- a/codegen/src/main/resources/codegen-data/ari_8_0_0/channels.json +++ b/codegen/src/main/resources/codegen-data/ari_8_0_0/channels.json @@ -416,7 +416,7 @@ }, { "name": "reason_code", - "description": "The reason code for hanging up the channel for detail use. Mutually exclusive with 'reason'. See detail hangup codes at here. https://wiki.asterisk.org/wiki/display/AST/Hangup+Cause+Mappings", + "description": "The reason code for hanging up the channel for detail use. Mutually exclusive with 'reason'. See detail hangup codes at here. https://docs.asterisk.org/Configuration/Miscellaneous/Hangup-Cause-Mappings/", "paramType": "query", "required": false, "allowMultiple": false, @@ -2187,6 +2187,10 @@ "required": false, "type": "object", "description": "Channel variables" + }, + "caller_rdnis": { + "type": "string", + "description": "The Caller ID RDNIS" } } } diff --git a/codegen/src/main/resources/codegen-data/ari_8_0_0/endpoints.json b/codegen/src/main/resources/codegen-data/ari_8_0_0/endpoints.json index 1f77d370..7560b9cb 100644 --- a/codegen/src/main/resources/codegen-data/ari_8_0_0/endpoints.json +++ b/codegen/src/main/resources/codegen-data/ari_8_0_0/endpoints.json @@ -75,6 +75,71 @@ } ] }, + { + "path": "/endpoints/refer", + "description": "Refer an endpoint or technology URI to some technology URI or endpoint.", + "operations": [ + { + "httpMethod": "POST", + "summary": "Refer an endpoint or technology URI to some technology URI or endpoint.", + "nickname": "refer", + "responseClass": "void", + "parameters": [ + { + "name": "to", + "description": "The endpoint resource or technology specific URI that should be referred to somewhere. Valid resource is pjsip.", + "paramType": "query", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "from", + "description": "The endpoint resource or technology specific identity to refer from.", + "paramType": "query", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "refer_to", + "description": "The endpoint resource or technology specific URI to refer to.", + "paramType": "query", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "to_self", + "description": "If true and \"refer_to\" refers to an Asterisk endpoint, the \"refer_to\" value is set to point to this Asterisk endpoint - so the referee is referred to Asterisk. Otherwise, use the contact URI associated with the endpoint.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "boolean", + "defaultValue": false + }, + { + "name": "variables", + "description": "The \"variables\" key in the body object holds technology specific key/value pairs to append to the message. These can be interpreted and used by the various resource types; for example, the pjsip resource type will add the key/value pairs as SIP headers. The \"display_name\" key is used by the PJSIP technology. Its value will be prepended as a display name to the Refer-To URI.", + "paramType": "body", + "required": false, + "dataType": "containers", + "allowMultiple": false + } + ], + "errorResponses": [ + { + "code": 400, + "reason": "Invalid parameters for referring." + }, + { + "code": 404, + "reason": "Endpoint not found" + } + ] + } + ] + }, { "path": "/endpoints/{tech}", "description": "Asterisk endpoints", @@ -196,6 +261,75 @@ ] } ] + }, + { + "path": "/endpoints/{tech}/{resource}/refer", + "description": "Refer an endpoint in a technology to some technology URI or endpoint..", + "operations": [ + { + "httpMethod": "POST", + "summary": "Refer an endpoint or technology URI to some technology URI or endpoint.", + "nickname": "referToEndpoint", + "responseClass": "void", + "parameters": [ + { + "name": "tech", + "description": "Technology of the endpoint", + "paramType": "path", + "dataType": "string" + }, + { + "name": "resource", + "description": "ID of the endpoint", + "paramType": "path", + "dataType": "string" + }, + { + "name": "from", + "description": "The endpoint resource or technology specific identity to refer from.", + "paramType": "query", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "refer_to", + "description": "The endpoint resource or technology specific URI to refer to.", + "paramType": "query", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "to_self", + "description": "If true and \"refer_to\" refers to an Asterisk endpoint, the \"refer_to\" value is set to point to this Asterisk endpoint - so the referee is referred to Asterisk. Otherwise, use the contact URI associated with the endpoint.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "boolean", + "defaultValue": false + }, + { + "name": "variables", + "description": "The \"variables\" key in the body object holds technology specific key/value pairs to append to the message. These can be interpreted and used by the various resource types; for example, the pjsip resource type will add the key/value pairs as SIP headers,", + "paramType": "body", + "required": false, + "dataType": "containers", + "allowMultiple": false + } + ], + "errorResponses": [ + { + "code": 400, + "reason": "Invalid parameters for referring." + }, + { + "code": 404, + "reason": "Endpoint not found" + } + ] + } + ] } ], "models": { diff --git a/codegen/src/main/resources/codegen-data/ari_9_0_0/applications.json b/codegen/src/main/resources/codegen-data/ari_9_0_0/applications.json new file mode 100644 index 00000000..09c5cd5c --- /dev/null +++ b/codegen/src/main/resources/codegen-data/ari_9_0_0/applications.json @@ -0,0 +1,223 @@ +{ + "_copyright": "Copyright (C) 2013, Digium, Inc.", + "_author": "David M. Lee, II ", + "_svn_revision": "$Revision$", + "apiVersion": "2.0.0", + "swaggerVersion": "1.1", + "basePath": "http://localhost:8088/ari", + "resourcePath": "/api-docs/applications.{format}", + "apis": [ + { + "path": "/applications", + "description": "Stasis applications", + "operations": [ + { + "httpMethod": "GET", + "summary": "List all applications.", + "nickname": "list", + "responseClass": "List[Application]" + } + ] + }, + { + "path": "/applications/{applicationName}", + "description": "Stasis application", + "operations": [ + { + "httpMethod": "GET", + "summary": "Get details of an application.", + "nickname": "get", + "responseClass": "Application", + "parameters": [ + { + "name": "applicationName", + "description": "Application's name", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Application does not exist." + } + ] + } + ] + }, + { + "path": "/applications/{applicationName}/subscription", + "description": "Stasis application", + "operations": [ + { + "httpMethod": "POST", + "summary": "Subscribe an application to a event source.", + "notes": "Returns the state of the application after the subscriptions have changed", + "nickname": "subscribe", + "responseClass": "Application", + "parameters": [ + { + "name": "applicationName", + "description": "Application's name", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "eventSource", + "description": "URI for event source (channel:{channelId}, bridge:{bridgeId}, endpoint:{tech}[/{resource}], deviceState:{deviceName}", + "paramType": "query", + "required": true, + "allowMultiple": true, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 400, + "reason": "Missing parameter." + }, + { + "code": 404, + "reason": "Application does not exist." + }, + { + "code": 422, + "reason": "Event source does not exist." + } + ] + }, + { + "httpMethod": "DELETE", + "summary": "Unsubscribe an application from an event source.", + "notes": "Returns the state of the application after the subscriptions have changed", + "nickname": "unsubscribe", + "responseClass": "Application", + "parameters": [ + { + "name": "applicationName", + "description": "Application's name", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "eventSource", + "description": "URI for event source (channel:{channelId}, bridge:{bridgeId}, endpoint:{tech}[/{resource}], deviceState:{deviceName}", + "paramType": "query", + "required": true, + "allowMultiple": true, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 400, + "reason": "Missing parameter; event source scheme not recognized." + }, + { + "code": 404, + "reason": "Application does not exist." + }, + { + "code": 409, + "reason": "Application not subscribed to event source." + }, + { + "code": 422, + "reason": "Event source does not exist." + } + ] + } + ] + }, + { + "path": "/applications/{applicationName}/eventFilter", + "description": "Stasis application", + "operations": [ + { + "httpMethod": "PUT", + "summary": "Filter application events types.", + "notes": "Allowed and/or disallowed event type filtering can be done. The body (parameter) should specify a JSON key/value object that describes the type of event filtering needed. One, or both of the following keys can be designated:

\"allowed\" - Specifies an allowed list of event types
\"disallowed\" - Specifies a disallowed list of event types

Further, each of those key's value should be a JSON array that holds zero, or more JSON key/value objects. Each of these objects must contain the following key with an associated value:

\"type\" - The type name of the event to filter

The value must be the string name (case sensitive) of the event type that needs filtering. For example:

{ \"allowed\": [ { \"type\": \"StasisStart\" }, { \"type\": \"StasisEnd\" } ] }

As this specifies only an allowed list, then only those two event type messages are sent to the application. No other event messages are sent.

The following rules apply:

* If the body is empty, both the allowed and disallowed filters are set empty.
* If both list types are given then both are set to their respective values (note, specifying an empty array for a given type sets that type to empty).
* If only one list type is given then only that type is set. The other type is not updated.
* An empty \"allowed\" list means all events are allowed.
* An empty \"disallowed\" list means no events are disallowed.
* Disallowed events take precedence over allowed events if the event type is specified in both lists.", + "nickname": "filter", + "responseClass": "Application", + "parameters": [ + { + "name": "applicationName", + "description": "Application's name", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "filter", + "description": "Specify which event types to allow/disallow", + "paramType": "body", + "required": false, + "dataType": "object", + "allowMultiple": false + } + ], + "errorResponses": [ + { + "code": 400, + "reason": "Bad request." + }, + { + "code": 404, + "reason": "Application does not exist." + } + ] + } + ] + } + ], + "models": { + "Application": { + "id": "Application", + "description": "Details of a Stasis application", + "properties": { + "name": { + "type": "string", + "description": "Name of this application", + "required": true + }, + "channel_ids": { + "type": "List[string]", + "description": "Id's for channels subscribed to.", + "required": true + }, + "bridge_ids": { + "type": "List[string]", + "description": "Id's for bridges subscribed to.", + "required": true + }, + "endpoint_ids": { + "type": "List[string]", + "description": "{tech}/{resource} for endpoints subscribed to.", + "required": true + }, + "device_names": { + "type": "List[string]", + "description": "Names of the devices subscribed to.", + "required": true + }, + "events_allowed": { + "type": "List[object]", + "description": "Event types sent to the application.", + "required": true + }, + "events_disallowed": { + "type": "List[object]", + "description": "Event types not sent to the application.", + "required": true + } + } + } + } +} diff --git a/codegen/src/main/resources/codegen-data/ari_9_0_0/asterisk.json b/codegen/src/main/resources/codegen-data/ari_9_0_0/asterisk.json new file mode 100644 index 00000000..841e6cd8 --- /dev/null +++ b/codegen/src/main/resources/codegen-data/ari_9_0_0/asterisk.json @@ -0,0 +1,725 @@ +{ + "_copyright": "Copyright (C) 2012 - 2013, Digium, Inc.", + "_author": "David M. Lee, II ", + "_svn_revision": "$Revision$", + "apiVersion": "2.0.0", + "swaggerVersion": "1.1", + "basePath": "http://localhost:8088/ari", + "resourcePath": "/api-docs/asterisk.{format}", + "apis": [ + { + "path": "/asterisk/config/dynamic/{configClass}/{objectType}/{id}", + "description": "Asterisk dynamic configuration", + "operations": [ + { + "httpMethod": "GET", + "summary": "Retrieve a dynamic configuration object.", + "nickname": "getObject", + "responseClass": "List[ConfigTuple]", + "parameters": [ + { + "name": "configClass", + "description": "The configuration class containing dynamic configuration objects.", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "objectType", + "description": "The type of configuration object to retrieve.", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "id", + "description": "The unique identifier of the object to retrieve.", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "{configClass|objectType|id} not found" + } + ] + }, + { + "httpMethod": "PUT", + "summary": "Create or update a dynamic configuration object.", + "nickname": "updateObject", + "responseClass": "List[ConfigTuple]", + "parameters": [ + { + "name": "configClass", + "description": "The configuration class containing dynamic configuration objects.", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "objectType", + "description": "The type of configuration object to create or update.", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "id", + "description": "The unique identifier of the object to create or update.", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "fields", + "description": "The body object should have a value that is a list of ConfigTuples, which provide the fields to update. Ex. [ { \"attribute\": \"directmedia\", \"value\": \"false\" } ]", + "paramType": "body", + "required": false, + "dataType": "containers", + "allowMultiple": false + } + ], + "errorResponses": [ + { + "code": 400, + "reason": "Bad request body" + }, + { + "code": 403, + "reason": "Could not create or update object" + }, + { + "code": 404, + "reason": "{configClass|objectType} not found" + } + ] + }, + { + "httpMethod": "DELETE", + "summary": "Delete a dynamic configuration object.", + "nickname": "deleteObject", + "responseClass": "void", + "parameters": [ + { + "name": "configClass", + "description": "The configuration class containing dynamic configuration objects.", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "objectType", + "description": "The type of configuration object to delete.", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "id", + "description": "The unique identifier of the object to delete.", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 403, + "reason": "Could not delete object" + }, + { + "code": 404, + "reason": "{configClass|objectType|id} not found" + } + ] + } + ] + }, + { + "path": "/asterisk/info", + "description": "Asterisk system information (similar to core show settings)", + "operations": [ + { + "httpMethod": "GET", + "summary": "Gets Asterisk system information.", + "nickname": "getInfo", + "responseClass": "AsteriskInfo", + "parameters": [ + { + "name": "only", + "description": "Filter information returned", + "paramType": "query", + "required": false, + "allowMultiple": true, + "dataType": "string", + "allowableValues": { + "valueType": "LIST", + "values": [ + "build", + "system", + "config", + "status" + ] + } + } + ] + } + ] + }, + { + "path": "/asterisk/ping", + "description": "Asterisk ping", + "operations": [ + { + "httpMethod": "GET", + "summary": "Response pong message.", + "nickname": "ping", + "responseClass": "AsteriskPing" + } + ] + }, + { + "path": "/asterisk/modules", + "description": "Asterisk modules", + "operations": [ + { + "httpMethod": "GET", + "summary": "List Asterisk modules.", + "nickname": "listModules", + "responseClass": "List[Module]" + } + ] + }, + { + "path": "/asterisk/modules/{moduleName}", + "description": "Asterisk module", + "operations": [ + { + "httpMethod": "GET", + "summary": "Get Asterisk module information.", + "nickname": "getModule", + "responseClass": "Module", + "parameters": [ + { + "name": "moduleName", + "description": "Module's name", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Module could not be found in running modules." + }, + { + "code": 409, + "reason": "Module information could not be retrieved." + } + ] + }, + { + "httpMethod": "POST", + "summary": "Load an Asterisk module.", + "nickname": "loadModule", + "responseClass": "void", + "parameters": [ + { + "name": "moduleName", + "description": "Module's name", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 409, + "reason": "Module could not be loaded." + } + ] + }, + { + "httpMethod": "DELETE", + "summary": "Unload an Asterisk module.", + "nickname": "unloadModule", + "responseClass": "void", + "parameters": [ + { + "name": "moduleName", + "description": "Module's name", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Module not found in running modules." + }, + { + "code": 409, + "reason": "Module could not be unloaded." + } + ] + }, + { + "httpMethod": "PUT", + "summary": "Reload an Asterisk module.", + "nickname": "reloadModule", + "responseClass": "void", + "parameters": [ + { + "name": "moduleName", + "description": "Module's name", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Module not found in running modules." + }, + { + "code": 409, + "reason": "Module could not be reloaded." + } + ] + } + ] + }, + { + "path": "/asterisk/logging", + "description": "Asterisk log channels", + "operations": [ + { + "httpMethod": "GET", + "summary": "Gets Asterisk log channel information.", + "nickname": "listLogChannels", + "responseClass": "List[LogChannel]" + } + ] + }, + { + "path": "/asterisk/logging/{logChannelName}", + "description": "Asterisk log channel", + "operations": [ + { + "httpMethod": "POST", + "summary": "Adds a log channel.", + "nickname": "addLog", + "responseClass": "void", + "parameters": [ + { + "name": "logChannelName", + "description": "The log channel to add", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "configuration", + "description": "levels of the log channel", + "paramType": "query", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 400, + "reason": "Bad request body" + }, + { + "code": 409, + "reason": "Log channel could not be created." + } + ] + }, + { + "httpMethod": "DELETE", + "summary": "Deletes a log channel.", + "nickname": "deleteLog", + "responseClass": "void", + "parameters": [ + { + "name": "logChannelName", + "description": "Log channels name", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Log channel does not exist." + } + ] + } + ] + }, + { + "path": "/asterisk/logging/{logChannelName}/rotate", + "description": "Asterisk log channel", + "operations": [ + { + "httpMethod": "PUT", + "summary": "Rotates a log channel.", + "nickname": "rotateLog", + "responseClass": "void", + "parameters": [ + { + "name": "logChannelName", + "description": "Log channel's name", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Log channel does not exist." + } + ] + } + ] + }, + { + "path": "/asterisk/variable", + "description": "Global variables", + "operations": [ + { + "httpMethod": "GET", + "summary": "Get the value of a global variable.", + "nickname": "getGlobalVar", + "responseClass": "Variable", + "parameters": [ + { + "name": "variable", + "description": "The variable to get", + "paramType": "query", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 400, + "reason": "Missing variable parameter." + } + ] + }, + { + "httpMethod": "POST", + "summary": "Set the value of a global variable.", + "nickname": "setGlobalVar", + "responseClass": "void", + "parameters": [ + { + "name": "variable", + "description": "The variable to set", + "paramType": "query", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "value", + "description": "The value to set the variable to", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 400, + "reason": "Missing variable parameter." + } + ] + } + ] + } + ], + "models": { + "BuildInfo": { + "id": "BuildInfo", + "description": "Info about how Asterisk was built", + "properties": { + "os": { + "required": true, + "type": "string", + "description": "OS Asterisk was built on." + }, + "kernel": { + "required": true, + "type": "string", + "description": "Kernel version Asterisk was built on." + }, + "options": { + "required": true, + "type": "string", + "description": "Compile time options, or empty string if default." + }, + "machine": { + "required": true, + "type": "string", + "description": "Machine architecture (x86_64, i686, ppc, etc.)" + }, + "date": { + "required": true, + "type": "string", + "description": "Date and time when Asterisk was built." + }, + "user": { + "required": true, + "type": "string", + "description": "Username that build Asterisk" + } + } + }, + "SystemInfo": { + "id": "SystemInfo", + "description": "Info about Asterisk", + "properties": { + "version": { + "required": true, + "type": "string", + "description": "Asterisk version." + }, + "entity_id": { + "required": true, + "type": "string", + "description": "" + } + } + }, + "SetId": { + "id": "SetId", + "description": "Effective user/group id", + "properties": { + "user": { + "required": true, + "type": "string", + "description": "Effective user id." + }, + "group": { + "required": true, + "type": "string", + "description": "Effective group id." + } + } + }, + "ConfigInfo": { + "id": "ConfigInfo", + "description": "Info about Asterisk configuration", + "properties": { + "name": { + "required": true, + "type": "string", + "description": "Asterisk system name." + }, + "default_language": { + "required": true, + "type": "string", + "description": "Default language for media playback." + }, + "max_channels": { + "required": false, + "type": "int", + "description": "Maximum number of simultaneous channels." + }, + "max_open_files": { + "required": false, + "type": "int", + "description": "Maximum number of open file handles (files, sockets)." + }, + "max_load": { + "required": false, + "type": "double", + "description": "Maximum load avg on system." + }, + "setid": { + "required": true, + "type": "SetId", + "description": "Effective user/group id for running Asterisk." + } + } + }, + "StatusInfo": { + "id": "StatusInfo", + "description": "Info about Asterisk status", + "properties": { + "startup_time": { + "required": true, + "type": "Date", + "description": "Time when Asterisk was started." + }, + "last_reload_time": { + "required": true, + "type": "Date", + "description": "Time when Asterisk was last reloaded." + } + } + }, + "AsteriskInfo": { + "id": "AsteriskInfo", + "description": "Asterisk system information", + "properties": { + "build": { + "required": false, + "type": "BuildInfo", + "description": "Info about how Asterisk was built" + }, + "system": { + "required": false, + "type": "SystemInfo", + "description": "Info about the system running Asterisk" + }, + "config": { + "required": false, + "type": "ConfigInfo", + "description": "Info about Asterisk configuration" + }, + "status": { + "required": false, + "type": "StatusInfo", + "description": "Info about Asterisk status" + } + } + }, + "AsteriskPing": { + "id": "AsteriskPing", + "description": "Asterisk ping information", + "properties": { + "asterisk_id": { + "required": true, + "type": "string", + "description": "Asterisk id info" + }, + "ping": { + "required": true, + "type": "string", + "description": "Always string value is pong" + }, + "timestamp": { + "required": true, + "type": "string", + "description": "The timestamp string of request received time" + } + } + }, + "Module": { + "id": "Module", + "description": "Details of an Asterisk module", + "properties": { + "name": { + "type": "string", + "description": "The name of this module", + "required": true + }, + "description": { + "type": "string", + "description": "The description of this module", + "required": true + }, + "use_count": { + "type": "int", + "description": "The number of times this module is being used", + "required": true + }, + "status": { + "type": "string", + "description": "The running status of this module", + "required": true + }, + "support_level": { + "type": "string", + "description": "The support state of this module", + "required": true + } + } + }, + "LogChannel": { + "id": "LogChannel", + "description": "Details of an Asterisk log channel", + "properties": { + "channel": { + "type": "string", + "description": "The log channel path", + "required": true + }, + "type": { + "type": "string", + "description": "Types of logs for the log channel", + "required": true + }, + "status": { + "type": "string", + "description": "Whether or not a log type is enabled", + "required": true + }, + "configuration": { + "type": "string", + "description": "The various log levels", + "required": true + } + } + }, + "Variable": { + "id": "Variable", + "description": "The value of a channel variable", + "properties": { + "value": { + "required": true, + "type": "string", + "description": "The value of the variable requested" + } + } + }, + "ConfigTuple": { + "id": "ConfigTuple", + "description": "A key/value pair that makes up part of a configuration object.", + "properties": { + "attribute": { + "required": true, + "type": "string", + "description": "A configuration object attribute." + }, + "value": { + "required": true, + "type": "string", + "description": "The value for the attribute." + } + } + } + } +} diff --git a/codegen/src/main/resources/codegen-data/ari_9_0_0/bridges.json b/codegen/src/main/resources/codegen-data/ari_9_0_0/bridges.json new file mode 100644 index 00000000..636d2540 --- /dev/null +++ b/codegen/src/main/resources/codegen-data/ari_9_0_0/bridges.json @@ -0,0 +1,774 @@ +{ + "_copyright": "Copyright (C) 2012 - 2013, Digium, Inc.", + "_author": "David M. Lee, II ", + "_svn_revision": "$Revision$", + "apiVersion": "2.0.0", + "swaggerVersion": "1.1", + "basePath": "http://localhost:8088/ari", + "resourcePath": "/api-docs/bridges.{format}", + "requiresModules": [ + "res_stasis_recording", + "res_stasis_playback" + ], + "apis": [ + { + "path": "/bridges", + "description": "Active bridges", + "operations": [ + { + "httpMethod": "GET", + "summary": "List all active bridges in Asterisk.", + "nickname": "list", + "responseClass": "List[Bridge]" + }, + { + "httpMethod": "POST", + "summary": "Create a new bridge.", + "notes": "This bridge persists until it has been shut down, or Asterisk has been shut down.", + "nickname": "create", + "responseClass": "Bridge", + "parameters": [ + { + "name": "type", + "description": "Comma separated list of bridge type attributes (mixing, holding, dtmf_events, proxy_media, video_sfu, video_single, sdp_label).", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "bridgeId", + "description": "Unique ID to give to the bridge being created.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "name", + "description": "Name to give to the bridge being created.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + } + ] + } + ] + }, + { + "path": "/bridges/{bridgeId}", + "description": "Individual bridge", + "operations": [ + { + "httpMethod": "POST", + "summary": "Create a new bridge or updates an existing one.", + "notes": "This bridge persists until it has been shut down, or Asterisk has been shut down.", + "nickname": "createWithId", + "responseClass": "Bridge", + "parameters": [ + { + "name": "type", + "description": "Comma separated list of bridge type attributes (mixing, holding, dtmf_events, proxy_media, video_sfu, video_single, sdp_label) to set.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "bridgeId", + "description": "Unique ID to give to the bridge being created.", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "name", + "description": "Set the name of the bridge.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + } + ] + }, + { + "httpMethod": "GET", + "summary": "Get bridge details.", + "nickname": "get", + "responseClass": "Bridge", + "parameters": [ + { + "name": "bridgeId", + "description": "Bridge's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Bridge not found" + } + ] + }, + { + "httpMethod": "DELETE", + "summary": "Shut down a bridge.", + "notes": "If any channels are in this bridge, they will be removed and resume whatever they were doing beforehand.", + "nickname": "destroy", + "responseClass": "void", + "parameters": [ + { + "name": "bridgeId", + "description": "Bridge's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Bridge not found" + } + ] + } + ] + }, + { + "path": "/bridges/{bridgeId}/addChannel", + "description": "Add a channel to a bridge", + "operations": [ + { + "httpMethod": "POST", + "summary": "Add a channel to a bridge.", + "nickname": "addChannel", + "responseClass": "void", + "parameters": [ + { + "name": "bridgeId", + "description": "Bridge's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "channel", + "description": "Ids of channels to add to bridge", + "paramType": "query", + "required": true, + "allowMultiple": true, + "dataType": "string" + }, + { + "name": "role", + "description": "Channel's role in the bridge", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "absorbDTMF", + "description": "Absorb DTMF coming from this channel, preventing it to pass through to the bridge", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "boolean", + "defaultValue": false + }, + { + "name": "mute", + "description": "Mute audio from this channel, preventing it to pass through to the bridge", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "boolean", + "defaultValue": false + }, + { + "name": "inhibitConnectedLineUpdates", + "description": "Do not present the identity of the newly connected channel to other bridge members", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "boolean", + "defaultValue": false + } + ], + "errorResponses": [ + { + "code": 400, + "reason": "Channel not found" + }, + { + "code": 404, + "reason": "Bridge not found" + }, + { + "code": 409, + "reason": "Bridge not in Stasis application; Channel currently recording" + }, + { + "code": 422, + "reason": "Channel not in Stasis application" + } + ] + } + ] + }, + { + "path": "/bridges/{bridgeId}/removeChannel", + "description": "Remove a channel from a bridge", + "operations": [ + { + "httpMethod": "POST", + "summary": "Remove a channel from a bridge.", + "nickname": "removeChannel", + "responseClass": "void", + "parameters": [ + { + "name": "bridgeId", + "description": "Bridge's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "channel", + "description": "Ids of channels to remove from bridge", + "paramType": "query", + "required": true, + "allowMultiple": true, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 400, + "reason": "Channel not found" + }, + { + "code": 404, + "reason": "Bridge not found" + }, + { + "code": 409, + "reason": "Bridge not in Stasis application" + }, + { + "code": 422, + "reason": "Channel not in this bridge" + } + ] + } + ] + }, + { + "path": "/bridges/{bridgeId}/videoSource/{channelId}", + "description": "Set a channel as the video source in a multi-party bridge", + "operations": [ + { + "httpMethod": "POST", + "summary": "Set a channel as the video source in a multi-party mixing bridge. This operation has no effect on bridges with two or fewer participants.", + "nickname": "setVideoSource", + "responseClass": "void", + "parameters": [ + { + "name": "bridgeId", + "description": "Bridge's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "channelId", + "description": "Channel's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Bridge or Channel not found" + }, + { + "code": 409, + "reason": "Channel not in Stasis application" + }, + { + "code": 422, + "reason": "Channel not in this Bridge" + } + ] + } + ] + }, + { + "path": "/bridges/{bridgeId}/videoSource", + "description": "Removes any explicit video source", + "operations": [ + { + "httpMethod": "DELETE", + "summary": "Removes any explicit video source in a multi-party mixing bridge. This operation has no effect on bridges with two or fewer participants. When no explicit video source is set, talk detection will be used to determine the active video stream.", + "nickname": "clearVideoSource", + "responseClass": "void", + "parameters": [ + { + "name": "bridgeId", + "description": "Bridge's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Bridge not found" + } + ] + } + ] + }, + { + "path": "/bridges/{bridgeId}/moh", + "description": "Play music on hold to a bridge", + "operations": [ + { + "httpMethod": "POST", + "summary": "Play music on hold to a bridge or change the MOH class that is playing.", + "nickname": "startMoh", + "responseClass": "void", + "parameters": [ + { + "name": "bridgeId", + "description": "Bridge's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "mohClass", + "description": "Channel's id", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Bridge not found" + }, + { + "code": 409, + "reason": "Bridge not in Stasis application" + } + ] + }, + { + "httpMethod": "DELETE", + "summary": "Stop playing music on hold to a bridge.", + "notes": "This will only stop music on hold being played via POST bridges/{bridgeId}/moh.", + "nickname": "stopMoh", + "responseClass": "void", + "parameters": [ + { + "name": "bridgeId", + "description": "Bridge's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Bridge not found" + }, + { + "code": 409, + "reason": "Bridge not in Stasis application" + } + ] + } + ] + }, + { + "path": "/bridges/{bridgeId}/play", + "description": "Play media to the participants of a bridge", + "operations": [ + { + "httpMethod": "POST", + "summary": "Start playback of media on a bridge.", + "notes": "The media URI may be any of a number of URI's. Currently sound:, recording:, number:, digits:, characters:, and tone: URI's are supported. This operation creates a playback resource that can be used to control the playback of media (pause, rewind, fast forward, etc.)", + "nickname": "play", + "responseClass": "Playback", + "parameters": [ + { + "name": "bridgeId", + "description": "Bridge's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "media", + "description": "Media URIs to play.", + "paramType": "query", + "required": true, + "allowMultiple": true, + "dataType": "string" + }, + { + "name": "lang", + "description": "For sounds, selects language for sound.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "offsetms", + "description": "Number of milliseconds to skip before playing. Only applies to the first URI if multiple media URIs are specified.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "int", + "defaultValue": 0, + "allowableValues": { + "valueType": "RANGE", + "min": 0 + } + + }, + { + "name": "skipms", + "description": "Number of milliseconds to skip for forward/reverse operations.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "int", + "defaultValue": 3000, + "allowableValues": { + "valueType": "RANGE", + "min": 0 + } + }, + { + "name": "playbackId", + "description": "Playback Id.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Bridge not found" + }, + { + "code": 409, + "reason": "Bridge not in a Stasis application" + } + ] + } + ] + }, + { + "path": "/bridges/{bridgeId}/play/{playbackId}", + "description": "Play media to a bridge", + "operations": [ + { + "httpMethod": "POST", + "summary": "Start playback of media on a bridge.", + "notes": "The media URI may be any of a number of URI's. Currently sound:, recording:, number:, digits:, characters:, and tone: URI's are supported. This operation creates a playback resource that can be used to control the playback of media (pause, rewind, fast forward, etc.)", + "nickname": "playWithId", + "responseClass": "Playback", + "parameters": [ + { + "name": "bridgeId", + "description": "Bridge's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "playbackId", + "description": "Playback ID.", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "media", + "description": "Media URIs to play.", + "paramType": "query", + "required": true, + "allowMultiple": true, + "dataType": "string" + }, + { + "name": "lang", + "description": "For sounds, selects language for sound.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "offsetms", + "description": "Number of milliseconds to skip before playing. Only applies to the first URI if multiple media URIs are specified.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "int", + "defaultValue": 0, + "allowableValues": { + "valueType": "RANGE", + "min": 0 + } + }, + { + "name": "skipms", + "description": "Number of milliseconds to skip for forward/reverse operations.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "int", + "defaultValue": 3000, + "allowableValues": { + "valueType": "RANGE", + "min": 0 + } + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Bridge not found" + }, + { + "code": 409, + "reason": "Bridge not in a Stasis application" + } + ] + + } + ] + }, + { + "path": "/bridges/{bridgeId}/record", + "description": "Record audio on a bridge", + "operations": [ + { + "httpMethod": "POST", + "summary": "Start a recording.", + "notes": "This records the mixed audio from all channels participating in this bridge.", + "nickname": "record", + "responseClass": "LiveRecording", + "parameters": [ + { + "name": "bridgeId", + "description": "Bridge's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "name", + "description": "Recording's filename", + "paramType": "query", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "format", + "description": "Format to encode audio in", + "paramType": "query", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "maxDurationSeconds", + "description": "Maximum duration of the recording, in seconds. 0 for no limit.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "int", + "defaultValue": 0, + "allowableValues": { + "valueType": "RANGE", + "min": 0 + } + }, + { + "name": "maxSilenceSeconds", + "description": "Maximum duration of silence, in seconds. 0 for no limit.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "int", + "defaultValue": 0, + "allowableValues": { + "valueType": "RANGE", + "min": 0 + } + }, + { + "name": "ifExists", + "description": "Action to take if a recording with the same name already exists.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string", + "defaultValue": "fail", + "allowableValues": { + "valueType": "LIST", + "values": [ + "fail", + "overwrite", + "append" + ] + } + }, + { + "name": "beep", + "description": "Play beep when recording begins", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "boolean", + "defaultValue": false + }, + { + "name": "terminateOn", + "description": "DTMF input to terminate recording.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string", + "defaultValue": "none", + "allowableValues": { + "valueType": "LIST", + "values": [ + "none", + "any", + "*", + "#" + ] + } + } + ], + "errorResponses": [ + { + "code": 400, + "reason": "Invalid parameters" + }, + { + "code": 404, + "reason": "Bridge not found" + }, + { + "code": 409, + "reason": "Bridge is not in a Stasis application; A recording with the same name already exists on the system and can not be overwritten because it is in progress or ifExists=fail" + }, + { + "code": 422, + "reason": "The format specified is unknown on this system" + } + ] + } + ] + } + ], + "models": { + "Bridge": { + "id": "Bridge", + "description": "The merging of media from one or more channels.\n\nEveryone on the bridge receives the same audio.", + "properties": { + "id": { + "type": "string", + "description": "Unique identifier for this bridge", + "required": true + }, + "technology": { + "type": "string", + "description": "Name of the current bridging technology", + "required": true + }, + "bridge_type": { + "type": "string", + "description": "Type of bridge technology", + "required": true, + "allowableValues": { + "valueType": "LIST", + "values": [ + "mixing", + "holding" + ] + } + }, + "bridge_class": { + "type": "string", + "description": "Bridging class", + "required": true + }, + "creator": { + "type": "string", + "description": "Entity that created the bridge", + "required": true + }, + "name": { + "type": "string", + "description": "Name the creator gave the bridge", + "required": true + }, + "channels": { + "type": "List[string]", + "description": "Ids of channels participating in this bridge", + "required": true + }, + "video_mode": { + "type": "string", + "description": "The video mode the bridge is using. One of 'none', 'talker', 'sfu', or 'single'.", + "required": false + }, + "video_source_id": { + "type": "string", + "description": "The ID of the channel that is the source of video in this bridge, if one exists.", + "required": false + }, + "creationtime": { + "required": true, + "type": "Date", + "description": "Timestamp when bridge was created" + } + } + } + } +} diff --git a/codegen/src/main/resources/codegen-data/ari_9_0_0/channels.json b/codegen/src/main/resources/codegen-data/ari_9_0_0/channels.json new file mode 100644 index 00000000..3f8e173a --- /dev/null +++ b/codegen/src/main/resources/codegen-data/ari_9_0_0/channels.json @@ -0,0 +1,2198 @@ +{ + "_copyright": "Copyright (C) 2012 - 2013, Digium, Inc.", + "_author": "David M. Lee, II ", + "_svn_revision": "$Revision$", + "apiVersion": "2.0.0", + "swaggerVersion": "1.1", + "basePath": "http://localhost:8088/ari", + "resourcePath": "/api-docs/channels.{format}", + "requiresModules": [ + "res_stasis_answer", + "res_stasis_playback", + "res_stasis_recording", + "res_stasis_snoop" + ], + "apis": [ + { + "path": "/channels", + "description": "Active channels", + "operations": [ + { + "httpMethod": "GET", + "summary": "List all active channels in Asterisk.", + "nickname": "list", + "responseClass": "List[Channel]" + }, + { + "httpMethod": "POST", + "summary": "Create a new channel (originate).", + "notes": "The new channel is created immediately and a snapshot of it returned. If a Stasis application is provided it will be automatically subscribed to the originated channel for further events and updates.", + "nickname": "originate", + "responseClass": "Channel", + "parameters": [ + { + "name": "endpoint", + "description": "Endpoint to call.", + "paramType": "query", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "extension", + "description": "The extension to dial after the endpoint answers. Mutually exclusive with 'app'.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "context", + "description": "The context to dial after the endpoint answers. If omitted, uses 'default'. Mutually exclusive with 'app'.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "priority", + "description": "The priority to dial after the endpoint answers. If omitted, uses 1. Mutually exclusive with 'app'.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "long" + }, + { + "name": "label", + "description": "The label to dial after the endpoint answers. Will supersede 'priority' if provided. Mutually exclusive with 'app'.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "app", + "description": "The application that is subscribed to the originated channel. When the channel is answered, it will be passed to this Stasis application. Mutually exclusive with 'context', 'extension', 'priority', and 'label'.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "appArgs", + "description": "The application arguments to pass to the Stasis application provided by 'app'. Mutually exclusive with 'context', 'extension', 'priority', and 'label'.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "callerId", + "description": "CallerID to use when dialing the endpoint or extension.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "timeout", + "description": "Timeout (in seconds) before giving up dialing, or -1 for no timeout.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "int", + "defaultValue": 30 + }, + { + "name": "variables", + "description": "The \"variables\" key in the body object holds variable key/value pairs to set on the channel on creation. Other keys in the body object are interpreted as query parameters. Ex. { \"endpoint\": \"SIP/Alice\", \"variables\": { \"CALLERID(name)\": \"Alice\" } }", + "paramType": "body", + "required": false, + "dataType": "containers", + "allowMultiple": false + }, + { + "name": "channelId", + "description": "The unique id to assign the channel on creation.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "otherChannelId", + "description": "The unique id to assign the second channel when using local channels.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "originator", + "description": "The unique id of the channel which is originating this one.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "formats", + "description": "The format name capability list to use if originator is not specified. Ex. \"ulaw,slin16\". Format names can be found with \"core show codecs\".", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 400, + "reason": "Invalid parameters for originating a channel." + }, + { + "code": 409, + "reason": "Channel with given unique ID already exists." + } + ] + } + ] + }, + { + "path": "/channels/create", + "description": "Create a channel and place it in a Stasis app, but do not dial the channel yet.", + "operations": [ + { + "httpMethod": "POST", + "summary": "Create channel.", + "nickname": "create", + "responseClass": "Channel", + "parameters": [ + { + "name": "endpoint", + "description": "Endpoint for channel communication", + "paramType": "query", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "app", + "description": "Stasis Application to place channel into", + "paramType": "query", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "appArgs", + "description": "The application arguments to pass to the Stasis application provided by 'app'. Mutually exclusive with 'context', 'extension', 'priority', and 'label'.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "channelId", + "description": "The unique id to assign the channel on creation.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "otherChannelId", + "description": "The unique id to assign the second channel when using local channels.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "originator", + "description": "Unique ID of the calling channel", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "formats", + "description": "The format name capability list to use if originator is not specified. Ex. \"ulaw,slin16\". Format names can be found with \"core show codecs\".", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "variables", + "description": "The \"variables\" key in the body object holds variable key/value pairs to set on the channel on creation. Other keys in the body object are interpreted as query parameters. Ex. { \"endpoint\": \"SIP/Alice\", \"variables\": { \"CALLERID(name)\": \"Alice\" } }", + "paramType": "body", + "required": false, + "dataType": "containers", + "allowMultiple": false + } + ], + "errorResponses": [ + { + "code": 409, + "reason": "Channel with given unique ID already exists." + } + ] + } + ] + }, + { + "path": "/channels/{channelId}", + "description": "Active channel", + "operations": [ + { + "httpMethod": "GET", + "summary": "Channel details.", + "nickname": "get", + "responseClass": "Channel", + "parameters": [ + { + "name": "channelId", + "description": "Channel's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Channel not found" + } + ] + }, + { + "httpMethod": "POST", + "summary": "Create a new channel (originate with id).", + "notes": "The new channel is created immediately and a snapshot of it returned. If a Stasis application is provided it will be automatically subscribed to the originated channel for further events and updates.", + "nickname": "originateWithId", + "responseClass": "Channel", + "parameters": [ + { + "name": "channelId", + "description": "The unique id to assign the channel on creation.", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "endpoint", + "description": "Endpoint to call.", + "paramType": "query", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "extension", + "description": "The extension to dial after the endpoint answers. Mutually exclusive with 'app'.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "context", + "description": "The context to dial after the endpoint answers. If omitted, uses 'default'. Mutually exclusive with 'app'.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "priority", + "description": "The priority to dial after the endpoint answers. If omitted, uses 1. Mutually exclusive with 'app'.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "long" + }, + { + "name": "label", + "description": "The label to dial after the endpoint answers. Will supersede 'priority' if provided. Mutually exclusive with 'app'.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "app", + "description": "The application that is subscribed to the originated channel. When the channel is answered, it will be passed to this Stasis application. Mutually exclusive with 'context', 'extension', 'priority', and 'label'.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "appArgs", + "description": "The application arguments to pass to the Stasis application provided by 'app'. Mutually exclusive with 'context', 'extension', 'priority', and 'label'.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "callerId", + "description": "CallerID to use when dialing the endpoint or extension.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "timeout", + "description": "Timeout (in seconds) before giving up dialing, or -1 for no timeout.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "int", + "defaultValue": 30 + }, + { + "name": "variables", + "description": "The \"variables\" key in the body object holds variable key/value pairs to set on the channel on creation. Other keys in the body object are interpreted as query parameters. Ex. { \"endpoint\": \"SIP/Alice\", \"variables\": { \"CALLERID(name)\": \"Alice\" } }", + "paramType": "body", + "required": false, + "dataType": "containers", + "allowMultiple": false + }, + { + "name": "otherChannelId", + "description": "The unique id to assign the second channel when using local channels.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "originator", + "description": "The unique id of the channel which is originating this one.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "formats", + "description": "The format name capability list to use if originator is not specified. Ex. \"ulaw,slin16\". Format names can be found with \"core show codecs\".", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 400, + "reason": "Invalid parameters for originating a channel." + }, + { + "code": 409, + "reason": "Channel with given unique ID already exists." + } + ] + + }, + { + "httpMethod": "DELETE", + "summary": "Delete (i.e. hangup) a channel.", + "nickname": "hangup", + "responseClass": "void", + "parameters": [ + { + "name": "channelId", + "description": "Channel's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "reason_code", + "description": "The reason code for hanging up the channel for detail use. Mutually exclusive with 'reason'. See detail hangup codes at here. https://docs.asterisk.org/Configuration/Miscellaneous/Hangup-Cause-Mappings/", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "reason", + "description": "Reason for hanging up the channel for simple use. Mutually exclusive with 'reason_code'.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string", + "allowableValues": { + "valueType": "LIST", + "values": [ + "normal", + "busy", + "congestion", + "no_answer", + "timeout", + "rejected", + "unallocated", + "normal_unspecified", + "number_incomplete", + "codec_mismatch", + "interworking", + "failure", + "answered_elsewhere" + ] + } + } + ], + "errorResponses": [ + { + "code": 400, + "reason": "Invalid reason for hangup provided" + }, + { + "code": 404, + "reason": "Channel not found" + } + ] + } + ] + }, + { + "path": "/channels/{channelId}/continue", + "description": "Exit application; continue execution in the dialplan", + "operations": [ + { + "httpMethod": "POST", + "summary": "Exit application; continue execution in the dialplan.", + "nickname": "continueInDialplan", + "responseClass": "void", + "parameters": [ + { + "name": "channelId", + "description": "Channel's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "context", + "description": "The context to continue to.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "extension", + "description": "The extension to continue to.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "priority", + "description": "The priority to continue to.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "int" + }, + { + "name": "label", + "description": "The label to continue to - will supersede 'priority' if both are provided.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Channel not found" + }, + { + "code": 409, + "reason": "Channel not in a Stasis application" + }, + { + "code": 412, + "reason": "Channel in invalid state" + } + ] + } + ] + }, + { + "path": "/channels/{channelId}/move", + "description": "Move the channel from one Stasis application to another.", + "operations": [ + { + "httpMethod": "POST", + "summary": "Move the channel from one Stasis application to another.", + "nickname": "move", + "responseClass": "void", + "parameters": [ + { + "name": "channelId", + "description": "Channel's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "app", + "description": "The channel will be passed to this Stasis application.", + "paramType": "query", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "appArgs", + "description": "The application arguments to pass to the Stasis application provided by 'app'.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": "404", + "reason": "Channel not found" + }, + { + "code": "409", + "reason": "Channel not in a Stasis application" + } + ] + } + ] + }, + { + "path": "/channels/{channelId}/redirect", + "description": "Inform the channel that it should redirect itself to a different location. Note that this will almost certainly cause the channel to exit the application.", + "operations": [ + { + "httpMethod": "POST", + "summary": "Redirect the channel to a different location.", + "nickname": "redirect", + "responseClass": "void", + "parameters": [ + { + "name": "channelId", + "description": "Channel's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "endpoint", + "description": "The endpoint to redirect the channel to", + "paramType": "query", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 400, + "reason": "Endpoint parameter not provided" + }, + { + "code": 404, + "reason": "Channel or endpoint not found" + }, + { + "code": 409, + "reason": "Channel not in a Stasis application" + }, + { + "code": 422, + "reason": "Endpoint is not the same type as the channel" + }, + { + "code": 412, + "reason": "Channel in invalid state" + } + ] + } + ] + }, + { + "path": "/channels/{channelId}/answer", + "description": "Answer a channel", + "operations": [ + { + "httpMethod": "POST", + "summary": "Answer a channel.", + "nickname": "answer", + "responseClass": "void", + "parameters": [ + { + "name": "channelId", + "description": "Channel's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Channel not found" + }, + { + "code": 409, + "reason": "Channel not in a Stasis application" + }, + { + "code": 412, + "reason": "Channel in invalid state" + } + ] + } + ] + }, + { + "path": "/channels/{channelId}/ring", + "description": "Send a ringing indication to a channel", + "operations": [ + { + "httpMethod": "POST", + "summary": "Indicate ringing to a channel.", + "nickname": "ring", + "responseClass": "void", + "parameters": [ + { + "name": "channelId", + "description": "Channel's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Channel not found" + }, + { + "code": 409, + "reason": "Channel not in a Stasis application" + }, + { + "code": 412, + "reason": "Channel in invalid state" + } + ] + }, + { + "httpMethod": "DELETE", + "summary": "Stop ringing indication on a channel if locally generated.", + "nickname": "ringStop", + "responseClass": "void", + "parameters": [ + { + "name": "channelId", + "description": "Channel's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Channel not found" + }, + { + "code": 409, + "reason": "Channel not in a Stasis application" + }, + { + "code": 412, + "reason": "Channel in invalid state" + } + ] + } + ] + }, + { + "path": "/channels/{channelId}/dtmf", + "description": "Send DTMF to a channel", + "operations": [ + { + "httpMethod": "POST", + "summary": "Send provided DTMF to a given channel.", + "nickname": "sendDTMF", + "responseClass": "void", + "parameters": [ + { + "name": "channelId", + "description": "Channel's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "dtmf", + "description": "DTMF To send.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "before", + "description": "Amount of time to wait before DTMF digits (specified in milliseconds) start.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "int", + "defaultValue": 0 + }, + { + "name": "between", + "description": "Amount of time in between DTMF digits (specified in milliseconds).", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "int", + "defaultValue": 100 + }, + { + "name": "duration", + "description": "Length of each DTMF digit (specified in milliseconds).", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "int", + "defaultValue": 100 + }, + { + "name": "after", + "description": "Amount of time to wait after DTMF digits (specified in milliseconds) end.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "int", + "defaultValue": 0 + } + ], + "errorResponses": [ + { + "code": 400, + "reason": "DTMF is required" + }, + { + "code": 404, + "reason": "Channel not found" + }, + { + "code": 409, + "reason": "Channel not in a Stasis application" + }, + { + "code": 412, + "reason": "Channel in invalid state" + } + ] + } + ] + }, + { + "path": "/channels/{channelId}/mute", + "description": "Mute a channel", + "operations": [ + { + "httpMethod": "POST", + "summary": "Mute a channel.", + "nickname": "mute", + "responseClass": "void", + "parameters": [ + { + "name": "channelId", + "description": "Channel's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "direction", + "description": "Direction in which to mute audio", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string", + "defaultValue": "both", + "allowableValues": { + "valueType": "LIST", + "values": [ + "both", + "in", + "out" + ] + } + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Channel not found" + }, + { + "code": 409, + "reason": "Channel not in a Stasis application" + }, + { + "code": 412, + "reason": "Channel in invalid state" + } + ] + }, + { + "httpMethod": "DELETE", + "summary": "Unmute a channel.", + "nickname": "unmute", + "responseClass": "void", + "parameters": [ + { + "name": "channelId", + "description": "Channel's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "direction", + "description": "Direction in which to unmute audio", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string", + "defaultValue": "both", + "allowableValues": { + "valueType": "LIST", + "values": [ + "both", + "in", + "out" + ] + } + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Channel not found" + }, + { + "code": 409, + "reason": "Channel not in a Stasis application" + }, + { + "code": 412, + "reason": "Channel in invalid state" + } + ] + } + ] + }, + { + "path": "/channels/{channelId}/hold", + "description": "Put a channel on hold", + "operations": [ + { + "httpMethod": "POST", + "summary": "Hold a channel.", + "nickname": "hold", + "responseClass": "void", + "parameters": [ + { + "name": "channelId", + "description": "Channel's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Channel not found" + }, + { + "code": 409, + "reason": "Channel not in a Stasis application" + }, + { + "code": 412, + "reason": "Channel in invalid state" + } + ] + }, + { + "httpMethod": "DELETE", + "summary": "Remove a channel from hold.", + "nickname": "unhold", + "responseClass": "void", + "parameters": [ + { + "name": "channelId", + "description": "Channel's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Channel not found" + }, + { + "code": 409, + "reason": "Channel not in a Stasis application" + }, + { + "code": 412, + "reason": "Channel in invalid state" + } + ] + } + ] + }, + { + "path": "/channels/{channelId}/moh", + "description": "Play music on hold to a channel", + "operations": [ + { + "httpMethod": "POST", + "summary": "Play music on hold to a channel.", + "notes": "Using media operations such as /play on a channel playing MOH in this manner will suspend MOH without resuming automatically. If continuing music on hold is desired, the stasis application must reinitiate music on hold.", + "nickname": "startMoh", + "responseClass": "void", + "parameters": [ + { + "name": "channelId", + "description": "Channel's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "mohClass", + "description": "Music on hold class to use", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Channel not found" + }, + { + "code": 409, + "reason": "Channel not in a Stasis application" + }, + { + "code": 412, + "reason": "Channel in invalid state" + } + ] + }, + { + "httpMethod": "DELETE", + "summary": "Stop playing music on hold to a channel.", + "nickname": "stopMoh", + "responseClass": "void", + "parameters": [ + { + "name": "channelId", + "description": "Channel's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Channel not found" + }, + { + "code": 409, + "reason": "Channel not in a Stasis application" + }, + { + "code": 412, + "reason": "Channel in invalid state" + } + ] + } + ] + }, + { + "path": "/channels/{channelId}/silence", + "description": "Play silence to a channel", + "operations": [ + { + "httpMethod": "POST", + "summary": "Play silence to a channel.", + "notes": "Using media operations such as /play on a channel playing silence in this manner will suspend silence without resuming automatically.", + "nickname": "startSilence", + "responseClass": "void", + "parameters": [ + { + "name": "channelId", + "description": "Channel's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Channel not found" + }, + { + "code": 409, + "reason": "Channel not in a Stasis application" + }, + { + "code": 412, + "reason": "Channel in invalid state" + } + ] + }, + { + "httpMethod": "DELETE", + "summary": "Stop playing silence to a channel.", + "nickname": "stopSilence", + "responseClass": "void", + "parameters": [ + { + "name": "channelId", + "description": "Channel's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Channel not found" + }, + { + "code": 409, + "reason": "Channel not in a Stasis application" + }, + { + "code": 412, + "reason": "Channel in invalid state" + } + ] + } + ] + }, + { + "path": "/channels/{channelId}/play", + "description": "Play media to a channel", + "operations": [ + { + "httpMethod": "POST", + "summary": "Start playback of media.", + "notes": "The media URI may be any of a number of URI's. Currently sound:, recording:, number:, digits:, characters:, and tone: URI's are supported. This operation creates a playback resource that can be used to control the playback of media (pause, rewind, fast forward, etc.)", + "nickname": "play", + "responseClass": "Playback", + "parameters": [ + { + "name": "channelId", + "description": "Channel's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "media", + "description": "Media URIs to play.", + "paramType": "query", + "required": true, + "allowMultiple": true, + "dataType": "string" + }, + { + "name": "lang", + "description": "For sounds, selects language for sound.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "offsetms", + "description": "Number of milliseconds to skip before playing. Only applies to the first URI if multiple media URIs are specified.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "int" + }, + { + "name": "skipms", + "description": "Number of milliseconds to skip for forward/reverse operations.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "int", + "defaultValue": 3000 + }, + { + "name": "playbackId", + "description": "Playback ID.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Channel not found" + }, + { + "code": 409, + "reason": "Channel not in a Stasis application" + }, + { + "code": 412, + "reason": "Channel in invalid state" + } + ] + } + ] + }, + { + "path": "/channels/{channelId}/play/{playbackId}", + "description": "Play media to a channel", + "operations": [ + { + "httpMethod": "POST", + "summary": "Start playback of media and specify the playbackId.", + "notes": "The media URI may be any of a number of URI's. Currently sound:, recording:, number:, digits:, characters:, and tone: URI's are supported. This operation creates a playback resource that can be used to control the playback of media (pause, rewind, fast forward, etc.)", + "nickname": "playWithId", + "responseClass": "Playback", + "parameters": [ + { + "name": "channelId", + "description": "Channel's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "playbackId", + "description": "Playback ID.", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "media", + "description": "Media URIs to play.", + "paramType": "query", + "required": true, + "allowMultiple": true, + "dataType": "string" + }, + { + "name": "lang", + "description": "For sounds, selects language for sound.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "offsetms", + "description": "Number of milliseconds to skip before playing. Only applies to the first URI if multiple media URIs are specified.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "int" + }, + { + "name": "skipms", + "description": "Number of milliseconds to skip for forward/reverse operations.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "int", + "defaultValue": 3000 + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Channel not found" + }, + { + "code": 409, + "reason": "Channel not in a Stasis application" + }, + { + "code": 412, + "reason": "Channel in invalid state" + } + ] + } + ] + }, + { + "path": "/channels/{channelId}/record", + "description": "Record audio from a channel", + "operations": [ + { + "httpMethod": "POST", + "summary": "Start a recording.", + "notes": "Record audio from a channel. Note that this will not capture audio sent to the channel. The bridge itself has a record feature if that's what you want.", + "nickname": "record", + "responseClass": "LiveRecording", + "parameters": [ + { + "name": "channelId", + "description": "Channel's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "name", + "description": "Recording's filename", + "paramType": "query", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "format", + "description": "Format to encode audio in", + "paramType": "query", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "maxDurationSeconds", + "description": "Maximum duration of the recording, in seconds. 0 for no limit", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "int", + "defaultValue": 0, + "allowableValues": { + "valueType": "RANGE", + "min": 0 + } + }, + { + "name": "maxSilenceSeconds", + "description": "Maximum duration of silence, in seconds. 0 for no limit", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "int", + "defaultValue": 0, + "allowableValues": { + "valueType": "RANGE", + "min": 0 + } + }, + { + "name": "ifExists", + "description": "Action to take if a recording with the same name already exists.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string", + "defaultValue": "fail", + "allowableValues": { + "valueType": "LIST", + "values": [ + "fail", + "overwrite", + "append" + ] + } + }, + { + "name": "beep", + "description": "Play beep when recording begins", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "boolean", + "defaultValue": false + }, + { + "name": "terminateOn", + "description": "DTMF input to terminate recording", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string", + "defaultValue": "none", + "allowableValues": { + "valueType": "LIST", + "values": [ + "none", + "any", + "*", + "#" + ] + } + } + ], + "errorResponses": [ + { + "code": 400, + "reason": "Invalid parameters" + }, + { + "code": 404, + "reason": "Channel not found" + }, + { + "code": 409, + "reason": "Channel is not in a Stasis application; the channel is currently bridged with other hcannels; A recording with the same name already exists on the system and can not be overwritten because it is in progress or ifExists=fail" + }, + { + "code": 422, + "reason": "The format specified is unknown on this system" + } + ] + } + ] + }, + { + "path": "/channels/{channelId}/variable", + "description": "Variables on a channel", + "operations": [ + { + "httpMethod": "GET", + "summary": "Get the value of a channel variable or function.", + "nickname": "getChannelVar", + "responseClass": "Variable", + "parameters": [ + { + "name": "channelId", + "description": "Channel's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "variable", + "description": "The channel variable or function to get", + "paramType": "query", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 400, + "reason": "Missing variable parameter." + }, + { + "code": 404, + "reason": "Channel or variable not found" + }, + { + "code": 409, + "reason": "Channel not in a Stasis application" + } + ] + }, + { + "httpMethod": "POST", + "summary": "Set the value of a channel variable or function.", + "nickname": "setChannelVar", + "responseClass": "void", + "parameters": [ + { + "name": "channelId", + "description": "Channel's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "variable", + "description": "The channel variable or function to set", + "paramType": "query", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "value", + "description": "The value to set the variable to", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 400, + "reason": "Missing variable parameter." + }, + { + "code": 404, + "reason": "Channel not found" + }, + { + "code": 409, + "reason": "Channel not in a Stasis application" + } + ] + } + ] + }, + { + "path": "/channels/{channelId}/snoop", + "description": "Snoop (spy/whisper) on a channel", + "operations": [ + { + "httpMethod": "POST", + "summary": "Start snooping.", + "notes": "Snoop (spy/whisper) on a specific channel.", + "nickname": "snoopChannel", + "responseClass": "Channel", + "parameters": [ + { + "name": "channelId", + "description": "Channel's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "spy", + "description": "Direction of audio to spy on", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string", + "defaultValue": "none", + "allowableValues": { + "valueType": "LIST", + "values": [ + "none", + "both", + "out", + "in" + ] + } + }, + { + "name": "whisper", + "description": "Direction of audio to whisper into", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string", + "defaultValue": "none", + "allowableValues": { + "valueType": "LIST", + "values": [ + "none", + "both", + "out", + "in" + ] + } + }, + { + "name": "app", + "description": "Application the snooping channel is placed into", + "paramType": "query", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "appArgs", + "description": "The application arguments to pass to the Stasis application", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "snoopId", + "description": "Unique ID to assign to snooping channel", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 400, + "reason": "Invalid parameters" + }, + { + "code": 404, + "reason": "Channel not found" + } + ] + } + ] + }, + { + "path": "/channels/{channelId}/snoop/{snoopId}", + "description": "Snoop (spy/whisper) on a channel", + "operations": [ + { + "httpMethod": "POST", + "summary": "Start snooping.", + "notes": "Snoop (spy/whisper) on a specific channel.", + "nickname": "snoopChannelWithId", + "responseClass": "Channel", + "parameters": [ + { + "name": "channelId", + "description": "Channel's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "snoopId", + "description": "Unique ID to assign to snooping channel", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "spy", + "description": "Direction of audio to spy on", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string", + "defaultValue": "none", + "allowableValues": { + "valueType": "LIST", + "values": [ + "none", + "both", + "out", + "in" + ] + } + }, + { + "name": "whisper", + "description": "Direction of audio to whisper into", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string", + "defaultValue": "none", + "allowableValues": { + "valueType": "LIST", + "values": [ + "none", + "both", + "out", + "in" + ] + } + }, + { + "name": "app", + "description": "Application the snooping channel is placed into", + "paramType": "query", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "appArgs", + "description": "The application arguments to pass to the Stasis application", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 400, + "reason": "Invalid parameters" + }, + { + "code": 404, + "reason": "Channel not found" + } + ] + } + ] + }, + { + "path": "/channels/{channelId}/dial", + "description": "Dial a channel", + "operations": [ + { + "httpMethod": "POST", + "summary": "Dial a created channel.", + "nickname": "dial", + "responseClass": "void", + "parameters": [ + { + "name": "channelId", + "description": "Channel's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "caller", + "description": "Channel ID of caller", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "timeout", + "description": "Dial timeout", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "int", + "defaultValue": 0, + "allowableValues": { + "valueType": "RANGE", + "min": 0 + } + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Channel cannot be found." + }, + { + "code": 409, + "reason": "Channel cannot be dialed." + } + ] + } + ] + }, + { + "path": "/channels/{channelId}/rtp_statistics", + "description": "Get RTP statistics information for RTP on a channel", + "operations": [ + { + "httpMethod": "GET", + "summary": "RTP stats on a channel.", + "nickname": "rtpstatistics", + "responseClass": "RTPstat", + "parameters": [ + { + "name": "channelId", + "description": "Channel's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Channel cannot be found." + } + ] + } + ] + }, + { + "path": "/channels/externalMedia", + "description": "Create a channel to an External Media source/sink.", + "operations": [ + { + "httpMethod": "POST", + "summary": "Start an External Media session.", + "notes": "Create a channel to an External Media source/sink.", + "nickname": "externalMedia", + "responseClass": "Channel", + "parameters": [ + { + "name": "channelId", + "description": "The unique id to assign the channel on creation.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "app", + "description": "Stasis Application to place channel into", + "paramType": "query", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "variables", + "description": "The \"variables\" key in the body object holds variable key/value pairs to set on the channel on creation. Other keys in the body object are interpreted as query parameters. Ex. { \"endpoint\": \"SIP/Alice\", \"variables\": { \"CALLERID(name)\": \"Alice\" } }", + "paramType": "body", + "required": false, + "dataType": "containers", + "allowMultiple": false + }, + { + "name": "external_host", + "description": "Hostname/ip:port of external host", + "paramType": "query", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "encapsulation", + "description": "Payload encapsulation protocol", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string", + "defaultValue": "rtp", + "allowableValues": { + "valueType": "LIST", + "values": [ + "rtp", + "audiosocket" + ] + } + }, + { + "name": "transport", + "description": "Transport protocol", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string", + "defaultValue": "udp", + "allowableValues": { + "valueType": "LIST", + "values": [ + "udp", + "tcp" + ] + } + }, + { + "name": "connection_type", + "description": "Connection type (client/server)", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string", + "defaultValue": "client", + "allowableValues": { + "valueType": "LIST", + "values": [ + "client" + ] + } + }, + { + "name": "format", + "description": "Format to encode audio in", + "paramType": "query", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "direction", + "description": "External media direction", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string", + "defaultValue": "both", + "allowableValues": { + "valueType": "LIST", + "values": [ + "both" + ] + } + }, + { + "name": "data", + "description": "An arbitrary data field", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 400, + "reason": "Invalid parameters" + }, + { + "code": 409, + "reason": "Channel is not in a Stasis application; Channel is already bridged" + } + ] + } + ] + } + ], + "models": { + "Dialed": { + "id": "Dialed", + "description": "Dialed channel information.", + "properties": {} + }, + "DialplanCEP": { + "id": "DialplanCEP", + "description": "Dialplan location (context/extension/priority)", + "properties": { + "context": { + "required": true, + "type": "string", + "description": "Context in the dialplan" + }, + "exten": { + "required": true, + "type": "string", + "description": "Extension in the dialplan" + }, + "priority": { + "required": true, + "type": "long", + "description": "Priority in the dialplan" + }, + "app_name": { + "required": true, + "type": "string", + "description": "Name of current dialplan application" + }, + "app_data": { + "required": true, + "type": "string", + "description": "Parameter of current dialplan application" + } + } + }, + "CallerID": { + "id": "CallerID", + "description": "Caller identification", + "properties": { + "name": { + "required": true, + "type": "string" + }, + "number": { + "required": true, + "type": "string" + } + } + }, + "RTPstat": { + "id": "RTPstat", + "description": "A statistics of a RTP.", + "properties": { + "txcount": { + "required": true, + "type": "int", + "description": "Number of packets transmitted." + }, + "rxcount": { + "required": true, + "type": "int", + "description": "Number of packets received." + }, + "txjitter": { + "required": false, + "type": "double", + "description": "Jitter on transmitted packets." + }, + "rxjitter": { + "required": false, + "type": "double", + "description": "Jitter on received packets." + }, + "remote_maxjitter": { + "required": false, + "type": "double", + "description": "Maximum jitter on remote side." + }, + "remote_minjitter": { + "required": false, + "type": "double", + "description": "Minimum jitter on remote side." + }, + "remote_normdevjitter": { + "required": false, + "type": "double", + "description": "Average jitter on remote side." + }, + "remote_stdevjitter": { + "required": false, + "type": "double", + "description": "Standard deviation jitter on remote side." + }, + "local_maxjitter": { + "required": false, + "type": "double", + "description": "Maximum jitter on local side." + }, + "local_minjitter": { + "required": false, + "type": "double", + "description": "Minimum jitter on local side." + }, + "local_normdevjitter": { + "required": false, + "type": "double", + "description": "Average jitter on local side." + }, + "local_stdevjitter": { + "required": false, + "type": "double", + "description": "Standard deviation jitter on local side." + }, + "txploss": { + "required": true, + "type": "int", + "description": "Number of transmitted packets lost." + }, + "rxploss": { + "required": true, + "type": "int", + "description": "Number of received packets lost." + }, + "remote_maxrxploss": { + "required": false, + "type": "double", + "description": "Maximum number of packets lost on remote side." + }, + "remote_minrxploss": { + "required": false, + "type": "double", + "description": "Minimum number of packets lost on remote side." + }, + "remote_normdevrxploss": { + "required": false, + "type": "double", + "description": "Average number of packets lost on remote side." + }, + "remote_stdevrxploss": { + "required": false, + "type": "double", + "description": "Standard deviation packets lost on remote side." + }, + "local_maxrxploss": { + "required": false, + "type": "double", + "description": "Maximum number of packets lost on local side." + }, + "local_minrxploss": { + "required": false, + "type": "double", + "description": "Minimum number of packets lost on local side." + }, + "local_normdevrxploss": { + "required": false, + "type": "double", + "description": "Average number of packets lost on local side." + }, + "local_stdevrxploss": { + "required": false, + "type": "double", + "description": "Standard deviation packets lost on local side." + }, + "rtt": { + "required": false, + "type": "double", + "description": "Total round trip time." + }, + "maxrtt": { + "required": false, + "type": "double", + "description": "Maximum round trip time." + }, + "minrtt": { + "required": false, + "type": "double", + "description": "Minimum round trip time." + }, + "normdevrtt": { + "required": false, + "type": "double", + "description": "Average round trip time." + }, + "stdevrtt": { + "required": false, + "type": "double", + "description": "Standard deviation round trip time." + }, + "local_ssrc": { + "required": true, + "type": "int", + "description": "Our SSRC." + }, + "remote_ssrc": { + "required": true, + "type": "int", + "description": "Their SSRC." + }, + "txoctetcount": { + "required": true, + "type": "int", + "description": "Number of octets transmitted." + }, + "rxoctetcount": { + "required": true, + "type": "int", + "description": "Number of octets received." + }, + "channel_uniqueid": { + "required": true, + "type": "string", + "description": "The Asterisk channel's unique ID that owns this instance." + } + } + }, + "Channel": { + "id": "Channel", + "description": "A specific communication connection between Asterisk and an Endpoint.", + "properties": { + "id": { + "required": true, + "type": "string", + "description": "Unique identifier of the channel.\n\nThis is the same as the Uniqueid field in AMI." + }, + "protocol_id": { + "required": true, + "type": "string", + "description": "Protocol id from underlying channel driver (i.e. Call-ID for chan_pjsip; will be empty if not applicable or not implemented by driver)." + }, + "name": { + "required": true, + "type": "string", + "description": "Name of the channel (i.e. SIP/foo-0000a7e3)" + }, + "state": { + "required": true, + "type": "string", + "allowableValues": { + "valueType": "LIST", + "values": [ + "Down", + "Rsrved", + "OffHook", + "Dialing", + "Ring", + "Ringing", + "Up", + "Busy", + "Dialing Offhook", + "Pre-ring", + "Unknown" + ] + } + }, + "caller": { + "required": true, + "type": "CallerID" + }, + "connected": { + "required": true, + "type": "CallerID" + }, + "accountcode": { + "required": true, + "type": "string" + }, + "dialplan": { + "required": true, + "type": "DialplanCEP", + "description": "Current location in the dialplan" + }, + "creationtime": { + "required": true, + "type": "Date", + "description": "Timestamp when channel was created" + }, + "language": { + "required": true, + "type": "string", + "description": "The default spoken language" + }, + "channelvars": { + "required": false, + "type": "object", + "description": "Channel variables" + }, + "caller_rdnis": { + "type": "string", + "description": "The Caller ID RDNIS" + } + } + } + } +} diff --git a/codegen/src/main/resources/codegen-data/ari_9_0_0/deviceStates.json b/codegen/src/main/resources/codegen-data/ari_9_0_0/deviceStates.json new file mode 100644 index 00000000..bd389355 --- /dev/null +++ b/codegen/src/main/resources/codegen-data/ari_9_0_0/deviceStates.json @@ -0,0 +1,154 @@ +{ + "_copyright": "Copyright (C) 2012 - 2013, Digium, Inc.", + "_author": "Kevin Harwell ", + "_svn_revision": "$Revision$", + "apiVersion": "2.0.0", + "swaggerVersion": "1.1", + "basePath": "http://localhost:8088/ari", + "resourcePath": "/api-docs/deviceStates.{format}", + "requiresModules": [ + "res_stasis_device_state" + ], + "apis": [ + { + "path": "/deviceStates", + "description": "Device states", + "operations": [ + { + "httpMethod": "GET", + "summary": "List all ARI controlled device states.", + "nickname": "list", + "responseClass": "List[DeviceState]" + } + ] + }, + { + "path": "/deviceStates/{deviceName}", + "description": "Device state", + "operations": [ + { + "httpMethod": "GET", + "summary": "Retrieve the current state of a device.", + "nickname": "get", + "responseClass": "DeviceState", + "parameters": [ + { + "name": "deviceName", + "description": "Name of the device", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ] + }, + { + "httpMethod": "PUT", + "summary": "Change the state of a device controlled by ARI. (Note - implicitly creates the device state).", + "nickname": "update", + "responseClass": "void", + "parameters": [ + { + "name": "deviceName", + "description": "Name of the device", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "deviceState", + "description": "Device state value", + "paramType": "query", + "required": true, + "allowMultiple": false, + "dataType": "string", + "allowableValues": { + "valueType": "LIST", + "values": [ + "NOT_INUSE", + "INUSE", + "BUSY", + "INVALID", + "UNAVAILABLE", + "RINGING", + "RINGINUSE", + "ONHOLD" + ] + } + + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Device name is missing" + }, + { + "code": 409, + "reason": "Uncontrolled device specified" + } + ] + }, + { + "httpMethod": "DELETE", + "summary": "Destroy a device-state controlled by ARI.", + "nickname": "delete", + "responseClass": "void", + "parameters": [ + { + "name": "deviceName", + "description": "Name of the device", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Device name is missing" + }, + { + "code": 409, + "reason": "Uncontrolled device specified" + } + ] + } + ] + } + ], + "models": { + "DeviceState": { + "id": "DeviceState", + "description": "Represents the state of a device.", + "properties": { + "name": { + "type": "string", + "description": "Name of the device.", + "required": true + }, + "state": { + "type": "string", + "description": "Device's state", + "required": true, + "allowableValues": { + "valueType": "LIST", + "values": [ + "UNKNOWN", + "NOT_INUSE", + "INUSE", + "BUSY", + "INVALID", + "UNAVAILABLE", + "RINGING", + "RINGINUSE", + "ONHOLD" + ] + } + } + } + } + } +} diff --git a/codegen/src/main/resources/codegen-data/ari_9_0_0/endpoints.json b/codegen/src/main/resources/codegen-data/ari_9_0_0/endpoints.json new file mode 100644 index 00000000..3f3f98ce --- /dev/null +++ b/codegen/src/main/resources/codegen-data/ari_9_0_0/endpoints.json @@ -0,0 +1,397 @@ +{ + "_copyright": "Copyright (C) 2012 - 2013, Digium, Inc.", + "_author": "David M. Lee, II ", + "_svn_revision": "$Revision$", + "apiVersion": "2.0.0", + "swaggerVersion": "1.1", + "basePath": "http://localhost:8088/ari", + "resourcePath": "/api-docs/endpoints.{format}", + "apis": [ + { + "path": "/endpoints", + "description": "Asterisk endpoints", + "operations": [ + { + "httpMethod": "GET", + "summary": "List all endpoints.", + "nickname": "list", + "responseClass": "List[Endpoint]" + } + ] + }, + { + "path": "/endpoints/sendMessage", + "description": "Send a message to some technology URI or endpoint.", + "operations": [ + { + "httpMethod": "PUT", + "summary": "Send a message to some technology URI or endpoint.", + "nickname": "sendMessage", + "responseClass": "void", + "parameters": [ + { + "name": "to", + "description": "The endpoint resource or technology specific URI to send the message to. Valid resources are pjsip, and xmpp.", + "paramType": "query", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "from", + "description": "The endpoint resource or technology specific identity to send this message from. Valid resources are pjsip, and xmpp.", + "paramType": "query", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "body", + "description": "The body of the message", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "variables", + "descriptioni": "The \"variables\" key in the body object holds technology specific key/value pairs to append to the message. These can be interpreted and used by the various resource types; for example, pjsip and sip resource types will add the key/value pairs as SIP headers,", + "paramType": "body", + "required": false, + "dataType": "containers", + "allowMultiple": false + } + ], + "errorResponses": [ + { + "code": 400, + "reason": "Invalid parameters for sending a message." + }, + { + "code": 404, + "reason": "Endpoint not found" + } + ] + } + ] + }, + { + "path": "/endpoints/refer", + "description": "Refer an endpoint or technology URI to some technology URI or endpoint.", + "operations": [ + { + "httpMethod": "POST", + "summary": "Refer an endpoint or technology URI to some technology URI or endpoint.", + "nickname": "refer", + "responseClass": "void", + "parameters": [ + { + "name": "to", + "description": "The endpoint resource or technology specific URI that should be referred to somewhere. Valid resource is pjsip.", + "paramType": "query", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "from", + "description": "The endpoint resource or technology specific identity to refer from.", + "paramType": "query", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "refer_to", + "description": "The endpoint resource or technology specific URI to refer to.", + "paramType": "query", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "to_self", + "description": "If true and \"refer_to\" refers to an Asterisk endpoint, the \"refer_to\" value is set to point to this Asterisk endpoint - so the referee is referred to Asterisk. Otherwise, use the contact URI associated with the endpoint.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "boolean", + "defaultValue": false + }, + { + "name": "variables", + "description": "The \"variables\" key in the body object holds technology specific key/value pairs to append to the message. These can be interpreted and used by the various resource types; for example, the pjsip resource type will add the key/value pairs as SIP headers. The \"display_name\" key is used by the PJSIP technology. Its value will be prepended as a display name to the Refer-To URI.", + "paramType": "body", + "required": false, + "dataType": "containers", + "allowMultiple": false + } + ], + "errorResponses": [ + { + "code": 400, + "reason": "Invalid parameters for referring." + }, + { + "code": 404, + "reason": "Endpoint not found" + } + ] + } + ] + }, + { + "path": "/endpoints/{tech}", + "description": "Asterisk endpoints", + "operations": [ + { + "httpMethod": "GET", + "summary": "List available endoints for a given endpoint technology.", + "nickname": "listByTech", + "responseClass": "List[Endpoint]", + "parameters": [ + { + "name": "tech", + "description": "Technology of the endpoints (pjsip,iax2,...)", + "paramType": "path", + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Endpoints not found" + } + ] + } + ] + }, + { + "path": "/endpoints/{tech}/{resource}", + "description": "Single endpoint", + "operations": [ + { + "httpMethod": "GET", + "summary": "Details for an endpoint.", + "nickname": "get", + "responseClass": "Endpoint", + "parameters": [ + { + "name": "tech", + "description": "Technology of the endpoint", + "paramType": "path", + "dataType": "string" + }, + { + "name": "resource", + "description": "ID of the endpoint", + "paramType": "path", + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 400, + "reason": "Invalid parameters for sending a message." + }, + { + "code": 404, + "reason": "Endpoints not found" + } + ] + } + ] + }, + { + "path": "/endpoints/{tech}/{resource}/sendMessage", + "description": "Send a message to some endpoint in a technology.", + "operations": [ + { + "httpMethod": "PUT", + "summary": "Send a message to some endpoint in a technology.", + "nickname": "sendMessageToEndpoint", + "responseClass": "void", + "parameters": [ + { + "name": "tech", + "description": "Technology of the endpoint", + "paramType": "path", + "dataType": "string" + }, + { + "name": "resource", + "description": "ID of the endpoint", + "paramType": "path", + "dataType": "string" + }, + { + "name": "from", + "description": "The endpoint resource or technology specific identity to send this message from. Valid resources are pjsip and xmpp.", + "paramType": "query", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "body", + "description": "The body of the message", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "variables", + "descriptioni": "The \"variables\" key in the body object holds technology specific key/value pairs to append to the message. These can be interpreted and used by the various resource types; for example, pjsip and sip resource types will add the key/value pairs as SIP headers,", + "paramType": "body", + "required": false, + "dataType": "containers", + "allowMultiple": false + } + ], + "errorResponses": [ + { + "code": 400, + "reason": "Invalid parameters for sending a message." + }, + { + "code": 404, + "reason": "Endpoint not found" + } + ] + } + ] + }, + { + "path": "/endpoints/{tech}/{resource}/refer", + "description": "Refer an endpoint in a technology to some technology URI or endpoint..", + "operations": [ + { + "httpMethod": "POST", + "summary": "Refer an endpoint or technology URI to some technology URI or endpoint.", + "nickname": "referToEndpoint", + "responseClass": "void", + "parameters": [ + { + "name": "tech", + "description": "Technology of the endpoint", + "paramType": "path", + "dataType": "string" + }, + { + "name": "resource", + "description": "ID of the endpoint", + "paramType": "path", + "dataType": "string" + }, + { + "name": "from", + "description": "The endpoint resource or technology specific identity to refer from.", + "paramType": "query", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "refer_to", + "description": "The endpoint resource or technology specific URI to refer to.", + "paramType": "query", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "to_self", + "description": "If true and \"refer_to\" refers to an Asterisk endpoint, the \"refer_to\" value is set to point to this Asterisk endpoint - so the referee is referred to Asterisk. Otherwise, use the contact URI associated with the endpoint.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "boolean", + "defaultValue": false + }, + { + "name": "variables", + "description": "The \"variables\" key in the body object holds technology specific key/value pairs to append to the message. These can be interpreted and used by the various resource types; for example, the pjsip resource type will add the key/value pairs as SIP headers,", + "paramType": "body", + "required": false, + "dataType": "containers", + "allowMultiple": false + } + ], + "errorResponses": [ + { + "code": 400, + "reason": "Invalid parameters for referring." + }, + { + "code": 404, + "reason": "Endpoint not found" + } + ] + } + ] + } + ], + "models": { + "Endpoint": { + "id": "Endpoint", + "description": "An external device that may offer/accept calls to/from Asterisk.\n\nUnlike most resources, which have a single unique identifier, an endpoint is uniquely identified by the technology/resource pair.", + "properties": { + "technology": { + "type": "string", + "description": "Technology of the endpoint", + "required": true + }, + "resource": { + "type": "string", + "description": "Identifier of the endpoint, specific to the given technology.", + "required": true + }, + "state": { + "type": "string", + "description": "Endpoint's state", + "required": false, + "allowableValues": { + "valueType": "LIST", + "values": [ + "unknown", + "offline", + "online" + ] + } + }, + "channel_ids": { + "type": "List[string]", + "description": "Id's of channels associated with this endpoint", + "required": true + } + } + }, + "TextMessage": { + "id": "TextMessage", + "description": "A text message.", + "properties": { + "from": { + "type": "string", + "description": "A technology specific URI specifying the source of the message. For pjsip technology, any SIP URI can be specified. For xmpp, the URI must correspond to the client connection being used to send the message.", + "required": true + }, + "to": { + "type": "string", + "description": "A technology specific URI specifying the destination of the message. Valid technologies include pjsip, and xmp. The destination of a message should be an endpoint.", + "required": true + }, + "body": { + "type": "string", + "description": "The text of the message.", + "required": true + }, + "variables": { + "type": "object", + "description": "Technology specific key/value pairs (JSON object) associated with the message.", + "required": false + } + } + } + } +} diff --git a/codegen/src/main/resources/codegen-data/ari_9_0_0/events.json b/codegen/src/main/resources/codegen-data/ari_9_0_0/events.json new file mode 100644 index 00000000..c9822f6c --- /dev/null +++ b/codegen/src/main/resources/codegen-data/ari_9_0_0/events.json @@ -0,0 +1,918 @@ +{ + "_copyright": "Copyright (C) 2012 - 2013, Digium, Inc.", + "_author": "David M. Lee, II ", + "_svn_revision": "$Revision$", + "apiVersion": "2.0.0", + "swaggerVersion": "1.2", + "basePath": "http://localhost:8088/ari", + "resourcePath": "/api-docs/events.{format}", + "requiresModules": [ + "res_http_websocket" + ], + "apis": [ + { + "path": "/events", + "description": "Events from Asterisk to applications", + "operations": [ + { + "httpMethod": "GET", + "upgrade": "websocket", + "websocketProtocol": "ari", + "summary": "WebSocket connection for events.", + "nickname": "eventWebsocket", + "responseClass": "Message", + "parameters": [ + { + "name": "app", + "description": "Applications to subscribe to.", + "paramType": "query", + "required": true, + "allowMultiple": true, + "dataType": "string" + }, + { + "name": "subscribeAll", + "description": "Subscribe to all Asterisk events. If provided, the applications listed will be subscribed to all events, effectively disabling the application specific subscriptions. Default is 'false'.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "boolean" + } + ] + } + ] + }, + { + "path": "/events/user/{eventName}", + "description": "Stasis application user events", + "operations": [ + { + "httpMethod": "POST", + "summary": "Generate a user event.", + "nickname": "userEvent", + "responseClass": "void", + "parameters": [ + { + "name": "eventName", + "description": "Event name", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "application", + "description": "The name of the application that will receive this event", + "paramType": "query", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "source", + "description": "URI for event source (channel:{channelId}, bridge:{bridgeId}, endpoint:{tech}/{resource}, deviceState:{deviceName}", + "paramType": "query", + "required": false, + "allowMultiple": true, + "dataType": "string" + }, + { + "name": "variables", + "description": "The \"variables\" key in the body object holds custom key/value pairs to add to the user event. Ex. { \"variables\": { \"key\": \"value\" } }", + "paramType": "body", + "required": false, + "allowMultiple": false, + "dataType": "containers" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Application does not exist." + }, + { + "code": 422, + "reason": "Event source not found." + }, + { + "code": 400, + "reason": "Invalid even tsource URI or userevent data." + } + ] + } + ] + } + ], + "models": { + "Message": { + "id": "Message", + "description": "Base type for errors and events", + "discriminator": "type", + "properties": { + "type": { + "type": "string", + "required": true, + "description": "Indicates the type of this message." + }, + "asterisk_id": { + "type": "string", + "required": false, + "description": "The unique ID for the Asterisk instance that raised this event." + } + }, + "subTypes": [ + "MissingParams", + "Event" + ] + }, + "MissingParams": { + "id": "MissingParams", + "description": "Error event sent when required params are missing.", + "properties": { + "params": { + "required": true, + "type": "List[string]", + "description": "A list of the missing parameters" + } + } + }, + "Event": { + "id": "Event", + "description": "Base type for asynchronous events from Asterisk.", + "properties": { + "application": { + "type": "string", + "description": "Name of the application receiving the event.", + "required": true + }, + "timestamp": { + "type": "Date", + "description": "Time at which this event was created.", + "required": true + } + }, + "subTypes": [ + "DeviceStateChanged", + "PlaybackStarted", + "PlaybackContinuing", + "PlaybackFinished", + "RecordingStarted", + "RecordingFinished", + "RecordingFailed", + "ApplicationMoveFailed", + "ApplicationReplaced", + "BridgeCreated", + "BridgeDestroyed", + "BridgeMerged", + "BridgeBlindTransfer", + "BridgeAttendedTransfer", + "BridgeVideoSourceChanged", + "ChannelCreated", + "ChannelDestroyed", + "ChannelEnteredBridge", + "ChannelLeftBridge", + "ChannelStateChange", + "ChannelDtmfReceived", + "ChannelDialplan", + "ChannelCallerId", + "ChannelUserevent", + "ChannelHangupRequest", + "ChannelVarset", + "ChannelTalkingStarted", + "ChannelTalkingFinished", + "ChannelHold", + "ChannelUnhold", + "ContactStatusChange", + "EndpointStateChange", + "Dial", + "StasisEnd", + "StasisStart", + "TextMessageReceived", + "ChannelConnectedLine", + "PeerStatusChange" + ] + }, + "ContactInfo": { + "id": "ContactInfo", + "description": "Detailed information about a contact on an endpoint.", + "properties": { + "uri": { + "type": "string", + "description": "The location of the contact.", + "required": true + }, + "contact_status": { + "type": "string", + "description": "The current status of the contact.", + "required": true, + "allowableValues": { + "valueType": "LIST", + "values": [ + "Unreachable", + "Reachable", + "Unknown", + "NonQualified", + "Removed" + ] + } + }, + "aor": { + "type": "string", + "description": "The Address of Record this contact belongs to.", + "required": true + }, + "roundtrip_usec": { + "type": "string", + "description": "Current round trip time, in microseconds, for the contact.", + "required": false + } + } + }, + "Peer": { + "id": "Peer", + "description": "Detailed information about a remote peer that communicates with Asterisk.", + "properties": { + "peer_status": { + "type": "string", + "description": "The current state of the peer. Note that the values of the status are dependent on the underlying peer technology.", + "required": true + }, + "cause": { + "type": "string", + "description": "An optional reason associated with the change in peer_status.", + "required": false + }, + "address": { + "type": "string", + "description": "The IP address of the peer.", + "required": false + }, + "port": { + "type": "string", + "description": "The port of the peer.", + "required": false + }, + "time": { + "type": "string", + "description": "The last known time the peer was contacted.", + "required": false + } + } + }, + "DeviceStateChanged": { + "id": "DeviceStateChanged", + "description": "Notification that a device state has changed.", + "properties": { + "device_state": { + "type": "DeviceState", + "description": "Device state object", + "required": true + } + } + }, + "PlaybackStarted": { + "id": "PlaybackStarted", + "description": "Event showing the start of a media playback operation.", + "properties": { + "playback": { + "type": "Playback", + "description": "Playback control object", + "required": true + } + } + }, + "PlaybackContinuing": { + "id": "PlaybackContinuing", + "description": "Event showing the continuation of a media playback operation from one media URI to the next in the list.", + "properties": { + "playback": { + "type": "Playback", + "description": "Playback control object", + "required": true + } + } + }, + "PlaybackFinished": { + "id": "PlaybackFinished", + "description": "Event showing the completion of a media playback operation.", + "properties": { + "playback": { + "type": "Playback", + "description": "Playback control object", + "required": true + } + } + }, + "RecordingStarted": { + "id": "RecordingStarted", + "description": "Event showing the start of a recording operation.", + "properties": { + "recording": { + "type": "LiveRecording", + "description": "Recording control object", + "required": true + } + } + }, + "RecordingFinished": { + "id": "RecordingFinished", + "description": "Event showing the completion of a recording operation.", + "properties": { + "recording": { + "type": "LiveRecording", + "description": "Recording control object", + "required": true + } + } + }, + "RecordingFailed": { + "id": "RecordingFailed", + "description": "Event showing failure of a recording operation.", + "properties": { + "recording": { + "type": "LiveRecording", + "description": "Recording control object", + "required": true + } + } + }, + "ApplicationMoveFailed": { + "id": "ApplicationMoveFailed", + "description": "Notification that trying to move a channel to another Stasis application failed.", + "properties": { + "channel": { + "required": true, + "type": "Channel" + }, + "destination": { + "required": true, + "type": "string" + }, + "args": { + "required": true, + "type": "List[string]", + "description": "Arguments to the application" + } + } + }, + "ApplicationReplaced": { + "id": "ApplicationReplaced", + "description": "Notification that another WebSocket has taken over for an application.\n\nAn application may only be subscribed to by a single WebSocket at a time. If multiple WebSockets attempt to subscribe to the same application, the newer WebSocket wins, and the older one receives this event.", + "properties": {} + }, + "BridgeCreated": { + "id": "BridgeCreated", + "description": "Notification that a bridge has been created.", + "properties": { + "bridge": { + "required": true, + "type": "Bridge" + } + } + }, + "BridgeDestroyed": { + "id": "BridgeDestroyed", + "description": "Notification that a bridge has been destroyed.", + "properties": { + "bridge": { + "required": true, + "type": "Bridge" + } + } + }, + "BridgeMerged": { + "id": "BridgeMerged", + "description": "Notification that one bridge has merged into another.", + "properties": { + "bridge": { + "required": true, + "type": "Bridge" + }, + "bridge_from": { + "required": true, + "type": "Bridge" + } + } + }, + "BridgeVideoSourceChanged": { + "id": "BridgeVideoSourceChanged", + "description": "Notification that the source of video in a bridge has changed.", + "properties": { + "bridge": { + "required": true, + "type": "Bridge" + }, + "old_video_source_id": { + "required": false, + "type": "string" + } + } + }, + "BridgeBlindTransfer": { + "id": "BridgeBlindTransfer", + "description": "Notification that a blind transfer has occurred.", + "properties": { + "channel": { + "description": "The channel performing the blind transfer", + "required": true, + "type": "Channel" + }, + "replace_channel": { + "description": "The channel that is replacing transferer when the transferee(s) can not be transferred directly", + "required": false, + "type": "Channel" + }, + "transferee": { + "description": "The channel that is being transferred", + "required": false, + "type": "Channel" + }, + "exten": { + "description": "The extension transferred to", + "required": true, + "type": "string" + }, + "context": { + "description": "The context transferred to", + "required": true, + "type": "string" + }, + "result": { + "description": "The result of the transfer attempt", + "required": true, + "type": "string" + }, + "is_external": { + "description": "Whether the transfer was externally initiated or not", + "required": true, + "type": "boolean" + }, + "bridge": { + "description": "The bridge being transferred", + "type": "Bridge" + } + } + }, + "BridgeAttendedTransfer": { + "id": "BridgeAttendedTransfer", + "description": "Notification that an attended transfer has occurred.", + "properties": { + "transferer_first_leg": { + "description": "First leg of the transferer", + "required": true, + "type": "Channel" + }, + "transferer_second_leg": { + "description": "Second leg of the transferer", + "required": true, + "type": "Channel" + }, + "replace_channel": { + "description": "The channel that is replacing transferer_first_leg in the swap", + "required": false, + "type": "Channel" + }, + "transferee": { + "description": "The channel that is being transferred", + "required": false, + "type": "Channel" + }, + "transfer_target": { + "description": "The channel that is being transferred to", + "required": false, + "type": "Channel" + }, + "result": { + "description": "The result of the transfer attempt", + "required": true, + "type": "string" + }, + "is_external": { + "description": "Whether the transfer was externally initiated or not", + "required": true, + "type": "boolean" + }, + "transferer_first_leg_bridge": { + "description": "Bridge the transferer first leg is in", + "type": "Bridge" + }, + "transferer_second_leg_bridge": { + "description": "Bridge the transferer second leg is in", + "type": "Bridge" + }, + "destination_type": { + "description": "How the transfer was accomplished", + "required": true, + "type": "string" + }, + "destination_bridge": { + "description": "Bridge that survived the merge result", + "type": "string" + }, + "destination_application": { + "description": "Application that has been transferred into", + "type": "string" + }, + "destination_link_first_leg": { + "description": "First leg of a link transfer result", + "type": "Channel" + }, + "destination_link_second_leg": { + "description": "Second leg of a link transfer result", + "type": "Channel" + }, + "destination_threeway_channel": { + "description": "Transferer channel that survived the threeway result", + "type": "Channel" + }, + "destination_threeway_bridge": { + "description": "Bridge that survived the threeway result", + "type": "Bridge" + } + } + }, + "ChannelCreated": { + "id": "ChannelCreated", + "description": "Notification that a channel has been created.", + "properties": { + "channel": { + "required": true, + "type": "Channel" + } + } + }, + "ChannelDestroyed": { + "id": "ChannelDestroyed", + "description": "Notification that a channel has been destroyed.", + "properties": { + "cause": { + "required": true, + "description": "Integer representation of the cause of the hangup", + "type": "int" + }, + "cause_txt": { + "required": true, + "description": "Text representation of the cause of the hangup", + "type": "string" + }, + "channel": { + "required": true, + "type": "Channel" + } + } + }, + "ChannelEnteredBridge": { + "id": "ChannelEnteredBridge", + "description": "Notification that a channel has entered a bridge.", + "properties": { + "bridge": { + "required": true, + "type": "Bridge" + }, + "channel": { + "type": "Channel" + } + } + }, + "ChannelLeftBridge": { + "id": "ChannelLeftBridge", + "description": "Notification that a channel has left a bridge.", + "properties": { + "bridge": { + "required": true, + "type": "Bridge" + }, + "channel": { + "required": true, + "type": "Channel" + } + } + }, + "ChannelStateChange": { + "id": "ChannelStateChange", + "description": "Notification of a channel's state change.", + "properties": { + "channel": { + "required": true, + "type": "Channel" + } + } + }, + "ChannelDtmfReceived": { + "id": "ChannelDtmfReceived", + "description": "DTMF received on a channel.\n\nThis event is sent when the DTMF ends. There is no notification about the start of DTMF", + "properties": { + "digit": { + "required": true, + "type": "string", + "description": "DTMF digit received (0-9, A-E, # or *)" + }, + "duration_ms": { + "required": true, + "type": "int", + "description": "Number of milliseconds DTMF was received" + }, + "channel": { + "required": true, + "type": "Channel", + "description": "The channel on which DTMF was received" + } + } + }, + "ChannelDialplan": { + "id": "ChannelDialplan", + "description": "Channel changed location in the dialplan.", + "properties": { + "channel": { + "required": true, + "type": "Channel", + "description": "The channel that changed dialplan location." + }, + "dialplan_app": { + "required": true, + "type": "string", + "description": "The application about to be executed." + }, + "dialplan_app_data": { + "required": true, + "type": "string", + "description": "The data to be passed to the application." + } + } + }, + "ChannelCallerId": { + "id": "ChannelCallerId", + "description": "Channel changed Caller ID.", + "properties": { + "caller_presentation": { + "required": true, + "type": "int", + "description": "The integer representation of the Caller Presentation value." + }, + "caller_presentation_txt": { + "required": true, + "type": "string", + "description": "The text representation of the Caller Presentation value." + }, + "channel": { + "required": true, + "type": "Channel", + "description": "The channel that changed Caller ID." + } + } + }, + "ChannelUserevent": { + "id": "ChannelUserevent", + "description": "User-generated event with additional user-defined fields in the object.", + "properties": { + "eventname": { + "required": true, + "type": "string", + "description": "The name of the user event." + }, + "channel": { + "required": false, + "type": "Channel", + "description": "A channel that is signaled with the user event." + }, + "bridge": { + "required": false, + "type": "Bridge", + "description": "A bridge that is signaled with the user event." + }, + "endpoint": { + "required": false, + "type": "Endpoint", + "description": "A endpoint that is signaled with the user event." + }, + "userevent": { + "required": true, + "type": "object", + "description": "Custom Userevent data" + } + } + }, + "ChannelHangupRequest": { + "id": "ChannelHangupRequest", + "description": "A hangup was requested on the channel.", + "properties": { + "cause": { + "type": "int", + "description": "Integer representation of the cause of the hangup." + }, + "soft": { + "type": "boolean", + "description": "Whether the hangup request was a soft hangup request." + }, + "channel": { + "required": true, + "type": "Channel", + "description": "The channel on which the hangup was requested." + } + } + }, + "ChannelVarset": { + "id": "ChannelVarset", + "description": "Channel variable changed.", + "properties": { + "variable": { + "required": true, + "type": "string", + "description": "The variable that changed." + }, + "value": { + "required": true, + "type": "string", + "description": "The new value of the variable." + }, + "channel": { + "required": false, + "type": "Channel", + "description": "The channel on which the variable was set.\n\nIf missing, the variable is a global variable." + } + } + }, + "ChannelHold": { + "id": "ChannelHold", + "description": "A channel initiated a media hold.", + "properties": { + "channel": { + "required": true, + "type": "Channel", + "description": "The channel that initiated the hold event." + }, + "musicclass": { + "required": false, + "type": "string", + "description": "The music on hold class that the initiator requested." + } + } + }, + "ChannelUnhold": { + "id": "ChannelUnhold", + "description": "A channel initiated a media unhold.", + "properties": { + "channel": { + "required": true, + "type": "Channel", + "description": "The channel that initiated the unhold event." + } + } + }, + "ChannelTalkingStarted": { + "id": "ChannelTalkingStarted", + "description": "Talking was detected on the channel.", + "properties": { + "channel": { + "required": true, + "type": "Channel", + "description": "The channel on which talking started." + } + } + }, + "ChannelTalkingFinished": { + "id": "ChannelTalkingFinished", + "description": "Talking is no longer detected on the channel.", + "properties": { + "channel": { + "required": true, + "type": "Channel", + "description": "The channel on which talking completed." + }, + "duration": { + "required": true, + "type": "int", + "description": "The length of time, in milliseconds, that talking was detected on the channel" + } + } + }, + "ContactStatusChange": { + "id": "ContactStatusChange", + "description": "The state of a contact on an endpoint has changed.", + "properties": { + "endpoint": { + "required": true, + "type": "Endpoint" + }, + "contact_info": { + "required": true, + "type": "ContactInfo" + } + } + }, + "PeerStatusChange": { + "id": "PeerStatusChange", + "description": "The state of a peer associated with an endpoint has changed.", + "properties": { + "endpoint": { + "required": true, + "type": "Endpoint" + }, + "peer": { + "required": true, + "type": "Peer" + } + } + }, + "EndpointStateChange": { + "id": "EndpointStateChange", + "description": "Endpoint state changed.", + "properties": { + "endpoint": { + "required": true, + "type": "Endpoint" + } + } + }, + "Dial": { + "id": "Dial", + "description": "Dialing state has changed.", + "properties": { + "caller": { + "required": false, + "type": "Channel", + "description": "The calling channel." + }, + "peer": { + "required": true, + "type": "Channel", + "description": "The dialed channel." + }, + "forward": { + "required": false, + "type": "string", + "description": "Forwarding target requested by the original dialed channel." + }, + "forwarded": { + "required": false, + "type": "Channel", + "description": "Channel that the caller has been forwarded to." + }, + "dialstring": { + "required": false, + "type": "string", + "description": "The dial string for calling the peer channel." + }, + "dialstatus": { + "required": true, + "type": "string", + "description": "Current status of the dialing attempt to the peer." + } + } + }, + "StasisEnd": { + "id": "StasisEnd", + "description": "Notification that a channel has left a Stasis application.", + "properties": { + "channel": { + "required": true, + "type": "Channel" + } + } + }, + "StasisStart": { + "id": "StasisStart", + "description": "Notification that a channel has entered a Stasis application.", + "properties": { + "args": { + "required": true, + "type": "List[string]", + "description": "Arguments to the application" + }, + "channel": { + "required": true, + "type": "Channel" + }, + "replace_channel": { + "required": false, + "type": "Channel" + } + } + }, + "TextMessageReceived": { + "id": "TextMessageReceived", + "description": "A text message was received from an endpoint.", + "properties": { + "message": { + "required": true, + "type": "TextMessage" + }, + "endpoint": { + "required": false, + "type": "Endpoint" + } + } + }, + "ChannelConnectedLine": { + "id": "ChannelConnectedLine", + "description": "Channel changed Connected Line.", + "properties": { + "channel": { + "required": true, + "type": "Channel", + "description": "The channel whose connected line has changed." + } + } + } + } +} diff --git a/codegen/src/main/resources/codegen-data/ari_9_0_0/mailboxes.json b/codegen/src/main/resources/codegen-data/ari_9_0_0/mailboxes.json new file mode 100644 index 00000000..8f5941b8 --- /dev/null +++ b/codegen/src/main/resources/codegen-data/ari_9_0_0/mailboxes.json @@ -0,0 +1,137 @@ +{ + "_copyright": "Copyright (C) 2013, Digium, Inc.", + "_author": "Jonathan Rose ", + "_svn_revision": "$Revision$", + "apiVersion": "2.0.0", + "swaggerVersion": "1.1", + "basePath": "http://localhost:8088/ari", + "resourcePath": "/api-docs/mailboxes.{format}", + "requiresModules": [ + "res_stasis_mailbox" + ], + "apis": [ + { + "path": "/mailboxes", + "description": "Mailboxes", + "operations": [ + { + "httpMethod": "GET", + "summary": "List all mailboxes.", + "nickname": "list", + "responseClass": "List[Mailbox]" + } + ] + }, + { + "path": "/mailboxes/{mailboxName}", + "description": "Mailbox state", + "operations": [ + { + "httpMethod": "GET", + "summary": "Retrieve the current state of a mailbox.", + "nickname": "get", + "responseClass": "Mailbox", + "parameters": [ + { + "name": "mailboxName", + "description": "Name of the mailbox", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Mailbox not found" + } + ] + }, + { + "httpMethod": "PUT", + "summary": "Change the state of a mailbox. (Note - implicitly creates the mailbox).", + "nickname": "update", + "responseClass": "void", + "parameters": [ + { + "name": "mailboxName", + "description": "Name of the mailbox", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "oldMessages", + "description": "Count of old messages in the mailbox", + "paramType": "query", + "required": true, + "allowMultiple": false, + "dataType": "int" + }, + { + "name": "newMessages", + "description": "Count of new messages in the mailbox", + "paramType": "query", + "required": true, + "allowMultiple": false, + "dataType": "int" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Mailbox not found" + } + ] + }, + { + "httpMethod": "DELETE", + "summary": "Destroy a mailbox.", + "nickname": "delete", + "responseClass": "void", + "parameters": [ + { + "name": "mailboxName", + "description": "Name of the mailbox", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Mailbox not found" + } + ] + } + ] + } + ], + "models": { + "Mailbox": { + "id": "Mailbox", + "description": "Represents the state of a mailbox.", + "properties": { + "name": { + "type": "string", + "description": "Name of the mailbox.", + "required": true + }, + "old_messages": { + "type": "int", + "description": "Count of old messages in the mailbox.", + "required": true + }, + "new_messages": { + "type": "int", + "description": "Count of new messages in the mailbox.", + "required": true + } + } + } + } +} diff --git a/codegen/src/main/resources/codegen-data/ari_9_0_0/playbacks.json b/codegen/src/main/resources/codegen-data/ari_9_0_0/playbacks.json new file mode 100644 index 00000000..793986fc --- /dev/null +++ b/codegen/src/main/resources/codegen-data/ari_9_0_0/playbacks.json @@ -0,0 +1,165 @@ +{ + "_copyright": "Copyright (C) 2012 - 2013, Digium, Inc.", + "_author": "David M. Lee, II ", + "_svn_revision": "$Revision$", + "apiVersion": "2.0.0", + "swaggerVersion": "1.1", + "basePath": "http://localhost:8088/ari", + "resourcePath": "/api-docs/playbacks.{format}", + "requiresModules": [ + "res_stasis_playback" + ], + "apis": [ + { + "path": "/playbacks/{playbackId}", + "description": "Control object for a playback operation.", + "operations": [ + { + "httpMethod": "GET", + "summary": "Get a playback's details.", + "nickname": "get", + "responseClass": "Playback", + "parameters": [ + { + "name": "playbackId", + "description": "Playback's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "The playback cannot be found" + } + ] + }, + { + "httpMethod": "DELETE", + "summary": "Stop a playback.", + "nickname": "stop", + "responseClass": "void", + "parameters": [ + { + "name": "playbackId", + "description": "Playback's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "The playback cannot be found" + } + ] + } + ] + }, + { + "path": "/playbacks/{playbackId}/control", + "description": "Control object for a playback operation.", + "operations": [ + { + "httpMethod": "POST", + "summary": "Control a playback.", + "nickname": "control", + "responseClass": "void", + "parameters": [ + { + "name": "playbackId", + "description": "Playback's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "operation", + "description": "Operation to perform on the playback.", + "paramType": "query", + "required": true, + "allowMultiple": false, + "dataType": "string", + "allowableValues": { + "valueType": "LIST", + "values": [ + "restart", + "pause", + "unpause", + "reverse", + "forward" + ] + } + } + ], + "errorResponses": [ + { + "code": 400, + "reason": "The provided operation parameter was invalid" + }, + { + "code": 404, + "reason": "The playback cannot be found" + }, + { + "code": 409, + "reason": "The operation cannot be performed in the playback's current state" + } +] + } + ] + } + ], + "models": { + "Playback": { + "id": "Playback", + "description": "Object representing the playback of media to a channel", + "properties": { + "id": { + "type": "string", + "description": "ID for this playback operation", + "required": true + }, + "media_uri": { + "type": "string", + "description": "The URI for the media currently being played back.", + "required": true + }, + "next_media_uri": { + "type": "string", + "description": "If a list of URIs is being played, the next media URI to be played back.", + "required": false + }, + "target_uri": { + "type": "string", + "description": "URI for the channel or bridge to play the media on", + "required": true + }, + "language": { + "type": "string", + "description": "For media types that support multiple languages, the language requested for playback." + }, + "state": { + "type": "string", + "description": "Current state of the playback operation.", + "required": true, + "allowableValues": { + "valueType": "LIST", + "values": [ + "queued", + "playing", + "continuing", + "done", + "failed" + ] + } + } + } + } + } +} diff --git a/codegen/src/main/resources/codegen-data/ari_9_0_0/recordings.json b/codegen/src/main/resources/codegen-data/ari_9_0_0/recordings.json new file mode 100644 index 00000000..6ffd6d8e --- /dev/null +++ b/codegen/src/main/resources/codegen-data/ari_9_0_0/recordings.json @@ -0,0 +1,413 @@ +{ + "_copyright": "Copyright (C) 2012 - 2013, Digium, Inc.", + "_author": "David M. Lee, II ", + "_svn_revision": "$Revision$", + "apiVersion": "2.0.0", + "swaggerVersion": "1.1", + "basePath": "http://localhost:8088/ari", + "resourcePath": "/api-docs/recordings.{format}", + "requiresModules": [ + "res_stasis_recording" + ], + "apis": [ + { + "path": "/recordings/stored", + "description": "Recordings", + "operations": [ + { + "httpMethod": "GET", + "summary": "List recordings that are complete.", + "nickname": "listStored", + "responseClass": "List[StoredRecording]" + } + ] + }, + { + "path": "/recordings/stored/{recordingName}", + "description": "Individual recording", + "operations": [ + { + "httpMethod": "GET", + "summary": "Get a stored recording's details.", + "nickname": "getStored", + "responseClass": "StoredRecording", + "parameters": [ + { + "name": "recordingName", + "description": "The name of the recording", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Recording not found" + } + ] + }, + { + "httpMethod": "DELETE", + "summary": "Delete a stored recording.", + "nickname": "deleteStored", + "responseClass": "void", + "parameters": [ + { + "name": "recordingName", + "description": "The name of the recording", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Recording not found" + } + ] + } + ] + }, + { + "path": "/recordings/stored/{recordingName}/file", + "description": "The actual file associated with the stored recording", + "operations": [ + { + "httpMethod": "GET", + "summary": "Get the file associated with the stored recording.", + "nickname": "getStoredFile", + "responseClass": "binary", + "parameters": [ + { + "name": "recordingName", + "description": "The name of the recording", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 403, + "reason": "The recording file could not be opened" + }, + { + "code": 404, + "reason": "Recording not found" + } + ] + } + ] + }, + { + "path": "/recordings/stored/{recordingName}/copy", + "description": "Copy an individual recording", + "operations": [ + { + "httpMethod": "POST", + "summary": "Copy a stored recording.", + "nickname": "copyStored", + "responseClass": "StoredRecording", + "parameters": [ + { + "name": "recordingName", + "description": "The name of the recording to copy", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "destinationRecordingName", + "description": "The destination name of the recording", + "paramType": "query", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Recording not found" + }, + { + "code": 409, + "reason": "A recording with the same name already exists on the system" + } + ] + } + ] + }, + { + "path": "/recordings/live/{recordingName}", + "description": "A recording that is in progress", + "operations": [ + { + "httpMethod": "GET", + "summary": "List live recordings.", + "nickname": "getLive", + "responseClass": "LiveRecording", + "parameters": [ + { + "name": "recordingName", + "description": "The name of the recording", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Recording not found" + } + ] + }, + { + "httpMethod": "DELETE", + "summary": "Stop a live recording and discard it.", + "nickname": "cancel", + "responseClass": "void", + "parameters": [ + { + "name": "recordingName", + "description": "The name of the recording", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Recording not found" + } + ] + } + ] + }, + { + "path": "/recordings/live/{recordingName}/stop", + "operations": [ + { + "httpMethod": "POST", + "summary": "Stop a live recording and store it.", + "nickname": "stop", + "responseClass": "void", + "parameters": [ + { + "name": "recordingName", + "description": "The name of the recording", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Recording not found" + } + ] + } + ] + }, + { + "path": "/recordings/live/{recordingName}/pause", + "operations": [ + { + "httpMethod": "POST", + "summary": "Pause a live recording.", + "notes": "Pausing a recording suspends silence detection, which will be restarted when the recording is unpaused. Paused time is not included in the accounting for maxDurationSeconds.", + "nickname": "pause", + "responseClass": "void", + "parameters": [ + { + "name": "recordingName", + "description": "The name of the recording", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Recording not found" + }, + { + "code": 409, + "reason": "Recording not in session" + } + ] + }, + { + "httpMethod": "DELETE", + "summary": "Unpause a live recording.", + "nickname": "unpause", + "responseClass": "void", + "parameters": [ + { + "name": "recordingName", + "description": "The name of the recording", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Recording not found" + }, + { + "code": 409, + "reason": "Recording not in session" + } + ] + } + ] + }, + { + "path": "/recordings/live/{recordingName}/mute", + "operations": [ + { + "httpMethod": "POST", + "summary": "Mute a live recording.", + "notes": "Muting a recording suspends silence detection, which will be restarted when the recording is unmuted.", + "nickname": "mute", + "responseClass": "void", + "parameters": [ + { + "name": "recordingName", + "description": "The name of the recording", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Recording not found" + }, + { + "code": 409, + "reason": "Recording not in session" + } + ] + }, + { + "httpMethod": "DELETE", + "summary": "Unmute a live recording.", + "nickname": "unmute", + "responseClass": "void", + "parameters": [ + { + "name": "recordingName", + "description": "The name of the recording", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Recording not found" + }, + { + "code": 409, + "reason": "Recording not in session" + } + ] + } + ] + } + ], + "models": { + "StoredRecording": { + "id": "StoredRecording", + "description": "A past recording that may be played back.", + "properties": { + "name": { + "required": true, + "type": "string" + }, + "format": { + "required": true, + "type": "string" + } + } + }, + "LiveRecording": { + "id": "LiveRecording", + "description": "A recording that is in progress", + "properties": { + "name": { + "required": true, + "type": "string", + "description": "Base name for the recording" + }, + "format": { + "required": true, + "type": "string", + "description": "Recording format (wav, gsm, etc.)" + }, + "target_uri": { + "required": true, + "type": "string", + "description": "URI for the channel or bridge being recorded" + }, + "state": { + "required": true, + "type": "string", + "allowableValues": { + "valueType": "LIST", + "values": [ + "queued", + "recording", + "paused", + "done", + "failed", + "canceled" + ] + } + }, + "duration": { + "required": false, + "type": "int", + "description": "Duration in seconds of the recording" + }, + "talking_duration": { + "required": false, + "type": "int", + "description": "Duration of talking, in seconds, detected in the recording. This is only available if the recording was initiated with a non-zero maxSilenceSeconds." + }, + "silence_duration": { + "required": false, + "type": "int", + "description": "Duration of silence, in seconds, detected in the recording. This is only available if the recording was initiated with a non-zero maxSilenceSeconds." + }, + "cause": { + "required": false, + "type": "string", + "description": "Cause for recording failure if failed" + } + } + } + } +} diff --git a/codegen/src/main/resources/codegen-data/ari_9_0_0/sounds.json b/codegen/src/main/resources/codegen-data/ari_9_0_0/sounds.json new file mode 100644 index 00000000..8fbe1c57 --- /dev/null +++ b/codegen/src/main/resources/codegen-data/ari_9_0_0/sounds.json @@ -0,0 +1,99 @@ +{ + "_copyright": "Copyright (C) 2012 - 2013, Digium, Inc.", + "_author": "David M. Lee, II ", + "_svn_revision": "$Revision$", + "apiVersion": "2.0.0", + "swaggerVersion": "1.1", + "basePath": "http://localhost:8088/ari", + "resourcePath": "/api-docs/sounds.{format}", + "apis": [ + { + "path": "/sounds", + "description": "Sounds", + "operations": [ + { + "httpMethod": "GET", + "summary": "List all sounds.", + "nickname": "list", + "responseClass": "List[Sound]", + "parameters": [ + { + "name": "lang", + "description": "Lookup sound for a specific language.", + "paramType": "query", + "dataType": "string", + "required": false + }, + { + "name": "format", + "description": "Lookup sound in a specific format.", + "paramType": "query", + "dataType": "string", + "required": false, + "__note": "core show translation can show translation paths between formats, along with relative costs. so this could be just installed format, or we could follow that for transcoded formats." + } + ] + } + ] + }, + { + "path": "/sounds/{soundId}", + "description": "Individual sound", + "operations": [ + { + "httpMethod": "GET", + "summary": "Get a sound's details.", + "nickname": "get", + "responseClass": "Sound", + "parameters": [ + { + "name": "soundId", + "description": "Sound's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ] + } + ] + } + ], + "models": { + "FormatLangPair": { + "id": "FormatLangPair", + "description": "Identifies the format and language of a sound file", + "properties": { + "language": { + "required": true, + "type": "string" + }, + "format": { + "required": true, + "type": "string" + } + } + }, + "Sound": { + "id": "Sound", + "description": "A media file that may be played back.", + "properties": { + "id": { + "required": true, + "description": "Sound's identifier.", + "type": "string" + }, + "text": { + "required": false, + "description": "Text description of the sound, usually the words spoken.", + "type": "string" + }, + "formats": { + "required": true, + "description": "The formats and languages in which this sound is available.", + "type": "List[FormatLangPair]" + } + } + } + } +} From f14cb91903a54cbef48dea23e6137183b0365ff0 Mon Sep 17 00:00:00 2001 From: Graham Brown Date: Sat, 24 Feb 2024 09:57:19 +0200 Subject: [PATCH 209/220] prepare 0.17.0 --- CHANGELOG.md | 8 +++++++- build.gradle | 2 +- 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index ab791295..da740ee4 100755 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,7 +1,13 @@ # ARI4Java Changelog ## [Unreleased] -[Unreleased]: https://github.com/ari4java/ari4java/compare/v0.16.0...HEAD +[Unreleased]: https://github.com/ari4java/ari4java/compare/v0.17.0...HEAD + +## [0.17.0] +[0.17.0]: https://github.com/ari4java/ari4java/compare/v0.16.0...v0.17.0 +### Added +- `AriVersion.ARI_8_0_0` +- `AriVersion.ARI_9_0_0` ## [0.16.0] [0.16.0]: https://github.com/ari4java/ari4java/compare/v0.15.0...v0.16.0 diff --git a/build.gradle b/build.gradle index 2aa79d06..f51a70f2 100755 --- a/build.gradle +++ b/build.gradle @@ -8,7 +8,7 @@ plugins { } group = "io.github.ari4java" -version = "0.16.0" +version = "0.17.0" def projectUrl = "http://github.com/ari4java/ari4java" def build_number = "x" From 633a932ba521c61d22b5df1827267a6cc0ae975b Mon Sep 17 00:00:00 2001 From: Graham Brown Date: Sat, 24 Feb 2024 10:13:37 +0200 Subject: [PATCH 210/220] fix build badge --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 68fe6e7f..b152f6a7 100755 --- a/README.md +++ b/README.md @@ -4,7 +4,7 @@ The Asterisk REST Interface (ARI) bindings for Java. [![Maven Central](https://maven-badges.herokuapp.com/maven-central/io.github.ari4java/ari4java/badge.svg)](https://maven-badges.herokuapp.com/maven-central/io.github.ari4java/ari4java) [![javadoc](https://javadoc.io/badge2/io.github.ari4java/ari4java/javadoc.svg)](https://javadoc.io/doc/io.github.ari4java/ari4java) -[![Build](https://github.com/ari4java/ari4java/workflows/ARI4Java%20Build/badge.svg?branch=master&event=push)](https://github.com/ari4java/ari4java/actions?query=workflow%3A%22ARI4Java+Build%22) +[![Build](https://github.com/ari4java/ari4java/actions/workflows/gradle.yml/badge.svg?branch=master)](https://github.com/ari4java/ari4java/actions?query=workflow%3A%22ARI4Java+Build%22) ## Description From a6ce0361c7ec8cc83055d7bed2bbffb802fd2714 Mon Sep 17 00:00:00 2001 From: "stijn.vandenbussche" Date: Tue, 7 May 2024 17:06:46 +0200 Subject: [PATCH 211/220] reconnectCount should only be -1 when a shutdown is triggered. Otherwise, in some seldom situations, an array index out of bounds exception can be thrown when trying to reconnect upon first connection (can happen when both java-app and asterisk is booting at same time) --- .../java/ch/loway/oss/ari4java/tools/http/NettyHttpClient.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/java/ch/loway/oss/ari4java/tools/http/NettyHttpClient.java b/src/main/java/ch/loway/oss/ari4java/tools/http/NettyHttpClient.java index 55048fa1..9072e253 100755 --- a/src/main/java/ch/loway/oss/ari4java/tools/http/NettyHttpClient.java +++ b/src/main/java/ch/loway/oss/ari4java/tools/http/NettyHttpClient.java @@ -62,7 +62,7 @@ public class NettyHttpClient implements HttpClient, WsClient, WsClientAutoReconn private String wsEventsUrl; private List wsEventsParamQuery; private WsClientConnection wsClientConnection; - private int reconnectCount = -1; + private int reconnectCount = 0; private int maxReconnectCount = 10; // -1 = infinite reconnect attempts private ChannelFuture wsChannelFuture; private ScheduledFuture wsPingTimer = null; From 7b12ad3e07f560db843334b126926b3d4b918273 Mon Sep 17 00:00:00 2001 From: "stijn.vandenbussche" Date: Wed, 15 May 2024 15:20:54 +0200 Subject: [PATCH 212/220] reconnectCount should never be -1 to prevent indexOutofboundExceptions --- .../ch/loway/oss/ari4java/tools/http/NettyHttpClient.java | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/src/main/java/ch/loway/oss/ari4java/tools/http/NettyHttpClient.java b/src/main/java/ch/loway/oss/ari4java/tools/http/NettyHttpClient.java index 9072e253..4a3deeb5 100755 --- a/src/main/java/ch/loway/oss/ari4java/tools/http/NettyHttpClient.java +++ b/src/main/java/ch/loway/oss/ari4java/tools/http/NettyHttpClient.java @@ -502,16 +502,15 @@ private WsClientConnection createWsClientConnection() { @Override public void disconnect() throws RestException { - wsHandler.setShuttingDown(true); Channel ch = wsChannelFuture.channel(); if (ch != null) { // if connected send CloseWebSocketFrame as NettyWSClientHandler will close the connection when the server responds to it - if (reconnectCount == 0) { + // only when not shutdown yet, so we don't try to send another close frame + if (!wsHandler.isShuttingDown()) { logger.debug("Send CloseWebSocketFrame ..."); - // set to -1 so we don't try send another close frame - reconnectCount = -1; ch.writeAndFlush(new CloseWebSocketFrame()); } + wsHandler.setShuttingDown(true); // if the server is no longer there then close any way ch.close(); } From 3ffe6b89b06c843d73b152c3ab38afbc2d0da2c5 Mon Sep 17 00:00:00 2001 From: grahambrown11 <771817+grahambrown11@users.noreply.github.com> Date: Sat, 14 Sep 2024 10:10:01 +0000 Subject: [PATCH 213/220] ARI API Updates --- .../codegen-data/ari_10_0_0/applications.json | 223 ++ .../codegen-data/ari_10_0_0/asterisk.json | 725 ++++++ .../codegen-data/ari_10_0_0/bridges.json | 774 ++++++ .../codegen-data/ari_10_0_0/channels.json | 2203 +++++++++++++++++ .../codegen-data/ari_10_0_0/deviceStates.json | 154 ++ .../codegen-data/ari_10_0_0/endpoints.json | 397 +++ .../codegen-data/ari_10_0_0/events.json | 930 +++++++ .../codegen-data/ari_10_0_0/mailboxes.json | 137 + .../codegen-data/ari_10_0_0/playbacks.json | 165 ++ .../codegen-data/ari_10_0_0/recordings.json | 413 +++ .../codegen-data/ari_10_0_0/sounds.json | 99 + .../codegen-data/ari_6_0_0/channels.json | 5 + .../codegen-data/ari_6_0_1/channels.json | 5 + .../codegen-data/ari_8_0_0/channels.json | 5 + .../codegen-data/ari_9_0_0/channels.json | 5 + 15 files changed, 6240 insertions(+) create mode 100644 codegen/src/main/resources/codegen-data/ari_10_0_0/applications.json create mode 100644 codegen/src/main/resources/codegen-data/ari_10_0_0/asterisk.json create mode 100644 codegen/src/main/resources/codegen-data/ari_10_0_0/bridges.json create mode 100644 codegen/src/main/resources/codegen-data/ari_10_0_0/channels.json create mode 100644 codegen/src/main/resources/codegen-data/ari_10_0_0/deviceStates.json create mode 100644 codegen/src/main/resources/codegen-data/ari_10_0_0/endpoints.json create mode 100644 codegen/src/main/resources/codegen-data/ari_10_0_0/events.json create mode 100644 codegen/src/main/resources/codegen-data/ari_10_0_0/mailboxes.json create mode 100644 codegen/src/main/resources/codegen-data/ari_10_0_0/playbacks.json create mode 100644 codegen/src/main/resources/codegen-data/ari_10_0_0/recordings.json create mode 100644 codegen/src/main/resources/codegen-data/ari_10_0_0/sounds.json diff --git a/codegen/src/main/resources/codegen-data/ari_10_0_0/applications.json b/codegen/src/main/resources/codegen-data/ari_10_0_0/applications.json new file mode 100644 index 00000000..09c5cd5c --- /dev/null +++ b/codegen/src/main/resources/codegen-data/ari_10_0_0/applications.json @@ -0,0 +1,223 @@ +{ + "_copyright": "Copyright (C) 2013, Digium, Inc.", + "_author": "David M. Lee, II ", + "_svn_revision": "$Revision$", + "apiVersion": "2.0.0", + "swaggerVersion": "1.1", + "basePath": "http://localhost:8088/ari", + "resourcePath": "/api-docs/applications.{format}", + "apis": [ + { + "path": "/applications", + "description": "Stasis applications", + "operations": [ + { + "httpMethod": "GET", + "summary": "List all applications.", + "nickname": "list", + "responseClass": "List[Application]" + } + ] + }, + { + "path": "/applications/{applicationName}", + "description": "Stasis application", + "operations": [ + { + "httpMethod": "GET", + "summary": "Get details of an application.", + "nickname": "get", + "responseClass": "Application", + "parameters": [ + { + "name": "applicationName", + "description": "Application's name", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Application does not exist." + } + ] + } + ] + }, + { + "path": "/applications/{applicationName}/subscription", + "description": "Stasis application", + "operations": [ + { + "httpMethod": "POST", + "summary": "Subscribe an application to a event source.", + "notes": "Returns the state of the application after the subscriptions have changed", + "nickname": "subscribe", + "responseClass": "Application", + "parameters": [ + { + "name": "applicationName", + "description": "Application's name", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "eventSource", + "description": "URI for event source (channel:{channelId}, bridge:{bridgeId}, endpoint:{tech}[/{resource}], deviceState:{deviceName}", + "paramType": "query", + "required": true, + "allowMultiple": true, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 400, + "reason": "Missing parameter." + }, + { + "code": 404, + "reason": "Application does not exist." + }, + { + "code": 422, + "reason": "Event source does not exist." + } + ] + }, + { + "httpMethod": "DELETE", + "summary": "Unsubscribe an application from an event source.", + "notes": "Returns the state of the application after the subscriptions have changed", + "nickname": "unsubscribe", + "responseClass": "Application", + "parameters": [ + { + "name": "applicationName", + "description": "Application's name", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "eventSource", + "description": "URI for event source (channel:{channelId}, bridge:{bridgeId}, endpoint:{tech}[/{resource}], deviceState:{deviceName}", + "paramType": "query", + "required": true, + "allowMultiple": true, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 400, + "reason": "Missing parameter; event source scheme not recognized." + }, + { + "code": 404, + "reason": "Application does not exist." + }, + { + "code": 409, + "reason": "Application not subscribed to event source." + }, + { + "code": 422, + "reason": "Event source does not exist." + } + ] + } + ] + }, + { + "path": "/applications/{applicationName}/eventFilter", + "description": "Stasis application", + "operations": [ + { + "httpMethod": "PUT", + "summary": "Filter application events types.", + "notes": "Allowed and/or disallowed event type filtering can be done. The body (parameter) should specify a JSON key/value object that describes the type of event filtering needed. One, or both of the following keys can be designated:

\"allowed\" - Specifies an allowed list of event types
\"disallowed\" - Specifies a disallowed list of event types

Further, each of those key's value should be a JSON array that holds zero, or more JSON key/value objects. Each of these objects must contain the following key with an associated value:

\"type\" - The type name of the event to filter

The value must be the string name (case sensitive) of the event type that needs filtering. For example:

{ \"allowed\": [ { \"type\": \"StasisStart\" }, { \"type\": \"StasisEnd\" } ] }

As this specifies only an allowed list, then only those two event type messages are sent to the application. No other event messages are sent.

The following rules apply:

* If the body is empty, both the allowed and disallowed filters are set empty.
* If both list types are given then both are set to their respective values (note, specifying an empty array for a given type sets that type to empty).
* If only one list type is given then only that type is set. The other type is not updated.
* An empty \"allowed\" list means all events are allowed.
* An empty \"disallowed\" list means no events are disallowed.
* Disallowed events take precedence over allowed events if the event type is specified in both lists.", + "nickname": "filter", + "responseClass": "Application", + "parameters": [ + { + "name": "applicationName", + "description": "Application's name", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "filter", + "description": "Specify which event types to allow/disallow", + "paramType": "body", + "required": false, + "dataType": "object", + "allowMultiple": false + } + ], + "errorResponses": [ + { + "code": 400, + "reason": "Bad request." + }, + { + "code": 404, + "reason": "Application does not exist." + } + ] + } + ] + } + ], + "models": { + "Application": { + "id": "Application", + "description": "Details of a Stasis application", + "properties": { + "name": { + "type": "string", + "description": "Name of this application", + "required": true + }, + "channel_ids": { + "type": "List[string]", + "description": "Id's for channels subscribed to.", + "required": true + }, + "bridge_ids": { + "type": "List[string]", + "description": "Id's for bridges subscribed to.", + "required": true + }, + "endpoint_ids": { + "type": "List[string]", + "description": "{tech}/{resource} for endpoints subscribed to.", + "required": true + }, + "device_names": { + "type": "List[string]", + "description": "Names of the devices subscribed to.", + "required": true + }, + "events_allowed": { + "type": "List[object]", + "description": "Event types sent to the application.", + "required": true + }, + "events_disallowed": { + "type": "List[object]", + "description": "Event types not sent to the application.", + "required": true + } + } + } + } +} diff --git a/codegen/src/main/resources/codegen-data/ari_10_0_0/asterisk.json b/codegen/src/main/resources/codegen-data/ari_10_0_0/asterisk.json new file mode 100644 index 00000000..841e6cd8 --- /dev/null +++ b/codegen/src/main/resources/codegen-data/ari_10_0_0/asterisk.json @@ -0,0 +1,725 @@ +{ + "_copyright": "Copyright (C) 2012 - 2013, Digium, Inc.", + "_author": "David M. Lee, II ", + "_svn_revision": "$Revision$", + "apiVersion": "2.0.0", + "swaggerVersion": "1.1", + "basePath": "http://localhost:8088/ari", + "resourcePath": "/api-docs/asterisk.{format}", + "apis": [ + { + "path": "/asterisk/config/dynamic/{configClass}/{objectType}/{id}", + "description": "Asterisk dynamic configuration", + "operations": [ + { + "httpMethod": "GET", + "summary": "Retrieve a dynamic configuration object.", + "nickname": "getObject", + "responseClass": "List[ConfigTuple]", + "parameters": [ + { + "name": "configClass", + "description": "The configuration class containing dynamic configuration objects.", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "objectType", + "description": "The type of configuration object to retrieve.", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "id", + "description": "The unique identifier of the object to retrieve.", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "{configClass|objectType|id} not found" + } + ] + }, + { + "httpMethod": "PUT", + "summary": "Create or update a dynamic configuration object.", + "nickname": "updateObject", + "responseClass": "List[ConfigTuple]", + "parameters": [ + { + "name": "configClass", + "description": "The configuration class containing dynamic configuration objects.", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "objectType", + "description": "The type of configuration object to create or update.", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "id", + "description": "The unique identifier of the object to create or update.", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "fields", + "description": "The body object should have a value that is a list of ConfigTuples, which provide the fields to update. Ex. [ { \"attribute\": \"directmedia\", \"value\": \"false\" } ]", + "paramType": "body", + "required": false, + "dataType": "containers", + "allowMultiple": false + } + ], + "errorResponses": [ + { + "code": 400, + "reason": "Bad request body" + }, + { + "code": 403, + "reason": "Could not create or update object" + }, + { + "code": 404, + "reason": "{configClass|objectType} not found" + } + ] + }, + { + "httpMethod": "DELETE", + "summary": "Delete a dynamic configuration object.", + "nickname": "deleteObject", + "responseClass": "void", + "parameters": [ + { + "name": "configClass", + "description": "The configuration class containing dynamic configuration objects.", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "objectType", + "description": "The type of configuration object to delete.", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "id", + "description": "The unique identifier of the object to delete.", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 403, + "reason": "Could not delete object" + }, + { + "code": 404, + "reason": "{configClass|objectType|id} not found" + } + ] + } + ] + }, + { + "path": "/asterisk/info", + "description": "Asterisk system information (similar to core show settings)", + "operations": [ + { + "httpMethod": "GET", + "summary": "Gets Asterisk system information.", + "nickname": "getInfo", + "responseClass": "AsteriskInfo", + "parameters": [ + { + "name": "only", + "description": "Filter information returned", + "paramType": "query", + "required": false, + "allowMultiple": true, + "dataType": "string", + "allowableValues": { + "valueType": "LIST", + "values": [ + "build", + "system", + "config", + "status" + ] + } + } + ] + } + ] + }, + { + "path": "/asterisk/ping", + "description": "Asterisk ping", + "operations": [ + { + "httpMethod": "GET", + "summary": "Response pong message.", + "nickname": "ping", + "responseClass": "AsteriskPing" + } + ] + }, + { + "path": "/asterisk/modules", + "description": "Asterisk modules", + "operations": [ + { + "httpMethod": "GET", + "summary": "List Asterisk modules.", + "nickname": "listModules", + "responseClass": "List[Module]" + } + ] + }, + { + "path": "/asterisk/modules/{moduleName}", + "description": "Asterisk module", + "operations": [ + { + "httpMethod": "GET", + "summary": "Get Asterisk module information.", + "nickname": "getModule", + "responseClass": "Module", + "parameters": [ + { + "name": "moduleName", + "description": "Module's name", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Module could not be found in running modules." + }, + { + "code": 409, + "reason": "Module information could not be retrieved." + } + ] + }, + { + "httpMethod": "POST", + "summary": "Load an Asterisk module.", + "nickname": "loadModule", + "responseClass": "void", + "parameters": [ + { + "name": "moduleName", + "description": "Module's name", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 409, + "reason": "Module could not be loaded." + } + ] + }, + { + "httpMethod": "DELETE", + "summary": "Unload an Asterisk module.", + "nickname": "unloadModule", + "responseClass": "void", + "parameters": [ + { + "name": "moduleName", + "description": "Module's name", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Module not found in running modules." + }, + { + "code": 409, + "reason": "Module could not be unloaded." + } + ] + }, + { + "httpMethod": "PUT", + "summary": "Reload an Asterisk module.", + "nickname": "reloadModule", + "responseClass": "void", + "parameters": [ + { + "name": "moduleName", + "description": "Module's name", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Module not found in running modules." + }, + { + "code": 409, + "reason": "Module could not be reloaded." + } + ] + } + ] + }, + { + "path": "/asterisk/logging", + "description": "Asterisk log channels", + "operations": [ + { + "httpMethod": "GET", + "summary": "Gets Asterisk log channel information.", + "nickname": "listLogChannels", + "responseClass": "List[LogChannel]" + } + ] + }, + { + "path": "/asterisk/logging/{logChannelName}", + "description": "Asterisk log channel", + "operations": [ + { + "httpMethod": "POST", + "summary": "Adds a log channel.", + "nickname": "addLog", + "responseClass": "void", + "parameters": [ + { + "name": "logChannelName", + "description": "The log channel to add", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "configuration", + "description": "levels of the log channel", + "paramType": "query", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 400, + "reason": "Bad request body" + }, + { + "code": 409, + "reason": "Log channel could not be created." + } + ] + }, + { + "httpMethod": "DELETE", + "summary": "Deletes a log channel.", + "nickname": "deleteLog", + "responseClass": "void", + "parameters": [ + { + "name": "logChannelName", + "description": "Log channels name", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Log channel does not exist." + } + ] + } + ] + }, + { + "path": "/asterisk/logging/{logChannelName}/rotate", + "description": "Asterisk log channel", + "operations": [ + { + "httpMethod": "PUT", + "summary": "Rotates a log channel.", + "nickname": "rotateLog", + "responseClass": "void", + "parameters": [ + { + "name": "logChannelName", + "description": "Log channel's name", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Log channel does not exist." + } + ] + } + ] + }, + { + "path": "/asterisk/variable", + "description": "Global variables", + "operations": [ + { + "httpMethod": "GET", + "summary": "Get the value of a global variable.", + "nickname": "getGlobalVar", + "responseClass": "Variable", + "parameters": [ + { + "name": "variable", + "description": "The variable to get", + "paramType": "query", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 400, + "reason": "Missing variable parameter." + } + ] + }, + { + "httpMethod": "POST", + "summary": "Set the value of a global variable.", + "nickname": "setGlobalVar", + "responseClass": "void", + "parameters": [ + { + "name": "variable", + "description": "The variable to set", + "paramType": "query", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "value", + "description": "The value to set the variable to", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 400, + "reason": "Missing variable parameter." + } + ] + } + ] + } + ], + "models": { + "BuildInfo": { + "id": "BuildInfo", + "description": "Info about how Asterisk was built", + "properties": { + "os": { + "required": true, + "type": "string", + "description": "OS Asterisk was built on." + }, + "kernel": { + "required": true, + "type": "string", + "description": "Kernel version Asterisk was built on." + }, + "options": { + "required": true, + "type": "string", + "description": "Compile time options, or empty string if default." + }, + "machine": { + "required": true, + "type": "string", + "description": "Machine architecture (x86_64, i686, ppc, etc.)" + }, + "date": { + "required": true, + "type": "string", + "description": "Date and time when Asterisk was built." + }, + "user": { + "required": true, + "type": "string", + "description": "Username that build Asterisk" + } + } + }, + "SystemInfo": { + "id": "SystemInfo", + "description": "Info about Asterisk", + "properties": { + "version": { + "required": true, + "type": "string", + "description": "Asterisk version." + }, + "entity_id": { + "required": true, + "type": "string", + "description": "" + } + } + }, + "SetId": { + "id": "SetId", + "description": "Effective user/group id", + "properties": { + "user": { + "required": true, + "type": "string", + "description": "Effective user id." + }, + "group": { + "required": true, + "type": "string", + "description": "Effective group id." + } + } + }, + "ConfigInfo": { + "id": "ConfigInfo", + "description": "Info about Asterisk configuration", + "properties": { + "name": { + "required": true, + "type": "string", + "description": "Asterisk system name." + }, + "default_language": { + "required": true, + "type": "string", + "description": "Default language for media playback." + }, + "max_channels": { + "required": false, + "type": "int", + "description": "Maximum number of simultaneous channels." + }, + "max_open_files": { + "required": false, + "type": "int", + "description": "Maximum number of open file handles (files, sockets)." + }, + "max_load": { + "required": false, + "type": "double", + "description": "Maximum load avg on system." + }, + "setid": { + "required": true, + "type": "SetId", + "description": "Effective user/group id for running Asterisk." + } + } + }, + "StatusInfo": { + "id": "StatusInfo", + "description": "Info about Asterisk status", + "properties": { + "startup_time": { + "required": true, + "type": "Date", + "description": "Time when Asterisk was started." + }, + "last_reload_time": { + "required": true, + "type": "Date", + "description": "Time when Asterisk was last reloaded." + } + } + }, + "AsteriskInfo": { + "id": "AsteriskInfo", + "description": "Asterisk system information", + "properties": { + "build": { + "required": false, + "type": "BuildInfo", + "description": "Info about how Asterisk was built" + }, + "system": { + "required": false, + "type": "SystemInfo", + "description": "Info about the system running Asterisk" + }, + "config": { + "required": false, + "type": "ConfigInfo", + "description": "Info about Asterisk configuration" + }, + "status": { + "required": false, + "type": "StatusInfo", + "description": "Info about Asterisk status" + } + } + }, + "AsteriskPing": { + "id": "AsteriskPing", + "description": "Asterisk ping information", + "properties": { + "asterisk_id": { + "required": true, + "type": "string", + "description": "Asterisk id info" + }, + "ping": { + "required": true, + "type": "string", + "description": "Always string value is pong" + }, + "timestamp": { + "required": true, + "type": "string", + "description": "The timestamp string of request received time" + } + } + }, + "Module": { + "id": "Module", + "description": "Details of an Asterisk module", + "properties": { + "name": { + "type": "string", + "description": "The name of this module", + "required": true + }, + "description": { + "type": "string", + "description": "The description of this module", + "required": true + }, + "use_count": { + "type": "int", + "description": "The number of times this module is being used", + "required": true + }, + "status": { + "type": "string", + "description": "The running status of this module", + "required": true + }, + "support_level": { + "type": "string", + "description": "The support state of this module", + "required": true + } + } + }, + "LogChannel": { + "id": "LogChannel", + "description": "Details of an Asterisk log channel", + "properties": { + "channel": { + "type": "string", + "description": "The log channel path", + "required": true + }, + "type": { + "type": "string", + "description": "Types of logs for the log channel", + "required": true + }, + "status": { + "type": "string", + "description": "Whether or not a log type is enabled", + "required": true + }, + "configuration": { + "type": "string", + "description": "The various log levels", + "required": true + } + } + }, + "Variable": { + "id": "Variable", + "description": "The value of a channel variable", + "properties": { + "value": { + "required": true, + "type": "string", + "description": "The value of the variable requested" + } + } + }, + "ConfigTuple": { + "id": "ConfigTuple", + "description": "A key/value pair that makes up part of a configuration object.", + "properties": { + "attribute": { + "required": true, + "type": "string", + "description": "A configuration object attribute." + }, + "value": { + "required": true, + "type": "string", + "description": "The value for the attribute." + } + } + } + } +} diff --git a/codegen/src/main/resources/codegen-data/ari_10_0_0/bridges.json b/codegen/src/main/resources/codegen-data/ari_10_0_0/bridges.json new file mode 100644 index 00000000..636d2540 --- /dev/null +++ b/codegen/src/main/resources/codegen-data/ari_10_0_0/bridges.json @@ -0,0 +1,774 @@ +{ + "_copyright": "Copyright (C) 2012 - 2013, Digium, Inc.", + "_author": "David M. Lee, II ", + "_svn_revision": "$Revision$", + "apiVersion": "2.0.0", + "swaggerVersion": "1.1", + "basePath": "http://localhost:8088/ari", + "resourcePath": "/api-docs/bridges.{format}", + "requiresModules": [ + "res_stasis_recording", + "res_stasis_playback" + ], + "apis": [ + { + "path": "/bridges", + "description": "Active bridges", + "operations": [ + { + "httpMethod": "GET", + "summary": "List all active bridges in Asterisk.", + "nickname": "list", + "responseClass": "List[Bridge]" + }, + { + "httpMethod": "POST", + "summary": "Create a new bridge.", + "notes": "This bridge persists until it has been shut down, or Asterisk has been shut down.", + "nickname": "create", + "responseClass": "Bridge", + "parameters": [ + { + "name": "type", + "description": "Comma separated list of bridge type attributes (mixing, holding, dtmf_events, proxy_media, video_sfu, video_single, sdp_label).", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "bridgeId", + "description": "Unique ID to give to the bridge being created.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "name", + "description": "Name to give to the bridge being created.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + } + ] + } + ] + }, + { + "path": "/bridges/{bridgeId}", + "description": "Individual bridge", + "operations": [ + { + "httpMethod": "POST", + "summary": "Create a new bridge or updates an existing one.", + "notes": "This bridge persists until it has been shut down, or Asterisk has been shut down.", + "nickname": "createWithId", + "responseClass": "Bridge", + "parameters": [ + { + "name": "type", + "description": "Comma separated list of bridge type attributes (mixing, holding, dtmf_events, proxy_media, video_sfu, video_single, sdp_label) to set.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "bridgeId", + "description": "Unique ID to give to the bridge being created.", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "name", + "description": "Set the name of the bridge.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + } + ] + }, + { + "httpMethod": "GET", + "summary": "Get bridge details.", + "nickname": "get", + "responseClass": "Bridge", + "parameters": [ + { + "name": "bridgeId", + "description": "Bridge's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Bridge not found" + } + ] + }, + { + "httpMethod": "DELETE", + "summary": "Shut down a bridge.", + "notes": "If any channels are in this bridge, they will be removed and resume whatever they were doing beforehand.", + "nickname": "destroy", + "responseClass": "void", + "parameters": [ + { + "name": "bridgeId", + "description": "Bridge's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Bridge not found" + } + ] + } + ] + }, + { + "path": "/bridges/{bridgeId}/addChannel", + "description": "Add a channel to a bridge", + "operations": [ + { + "httpMethod": "POST", + "summary": "Add a channel to a bridge.", + "nickname": "addChannel", + "responseClass": "void", + "parameters": [ + { + "name": "bridgeId", + "description": "Bridge's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "channel", + "description": "Ids of channels to add to bridge", + "paramType": "query", + "required": true, + "allowMultiple": true, + "dataType": "string" + }, + { + "name": "role", + "description": "Channel's role in the bridge", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "absorbDTMF", + "description": "Absorb DTMF coming from this channel, preventing it to pass through to the bridge", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "boolean", + "defaultValue": false + }, + { + "name": "mute", + "description": "Mute audio from this channel, preventing it to pass through to the bridge", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "boolean", + "defaultValue": false + }, + { + "name": "inhibitConnectedLineUpdates", + "description": "Do not present the identity of the newly connected channel to other bridge members", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "boolean", + "defaultValue": false + } + ], + "errorResponses": [ + { + "code": 400, + "reason": "Channel not found" + }, + { + "code": 404, + "reason": "Bridge not found" + }, + { + "code": 409, + "reason": "Bridge not in Stasis application; Channel currently recording" + }, + { + "code": 422, + "reason": "Channel not in Stasis application" + } + ] + } + ] + }, + { + "path": "/bridges/{bridgeId}/removeChannel", + "description": "Remove a channel from a bridge", + "operations": [ + { + "httpMethod": "POST", + "summary": "Remove a channel from a bridge.", + "nickname": "removeChannel", + "responseClass": "void", + "parameters": [ + { + "name": "bridgeId", + "description": "Bridge's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "channel", + "description": "Ids of channels to remove from bridge", + "paramType": "query", + "required": true, + "allowMultiple": true, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 400, + "reason": "Channel not found" + }, + { + "code": 404, + "reason": "Bridge not found" + }, + { + "code": 409, + "reason": "Bridge not in Stasis application" + }, + { + "code": 422, + "reason": "Channel not in this bridge" + } + ] + } + ] + }, + { + "path": "/bridges/{bridgeId}/videoSource/{channelId}", + "description": "Set a channel as the video source in a multi-party bridge", + "operations": [ + { + "httpMethod": "POST", + "summary": "Set a channel as the video source in a multi-party mixing bridge. This operation has no effect on bridges with two or fewer participants.", + "nickname": "setVideoSource", + "responseClass": "void", + "parameters": [ + { + "name": "bridgeId", + "description": "Bridge's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "channelId", + "description": "Channel's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Bridge or Channel not found" + }, + { + "code": 409, + "reason": "Channel not in Stasis application" + }, + { + "code": 422, + "reason": "Channel not in this Bridge" + } + ] + } + ] + }, + { + "path": "/bridges/{bridgeId}/videoSource", + "description": "Removes any explicit video source", + "operations": [ + { + "httpMethod": "DELETE", + "summary": "Removes any explicit video source in a multi-party mixing bridge. This operation has no effect on bridges with two or fewer participants. When no explicit video source is set, talk detection will be used to determine the active video stream.", + "nickname": "clearVideoSource", + "responseClass": "void", + "parameters": [ + { + "name": "bridgeId", + "description": "Bridge's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Bridge not found" + } + ] + } + ] + }, + { + "path": "/bridges/{bridgeId}/moh", + "description": "Play music on hold to a bridge", + "operations": [ + { + "httpMethod": "POST", + "summary": "Play music on hold to a bridge or change the MOH class that is playing.", + "nickname": "startMoh", + "responseClass": "void", + "parameters": [ + { + "name": "bridgeId", + "description": "Bridge's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "mohClass", + "description": "Channel's id", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Bridge not found" + }, + { + "code": 409, + "reason": "Bridge not in Stasis application" + } + ] + }, + { + "httpMethod": "DELETE", + "summary": "Stop playing music on hold to a bridge.", + "notes": "This will only stop music on hold being played via POST bridges/{bridgeId}/moh.", + "nickname": "stopMoh", + "responseClass": "void", + "parameters": [ + { + "name": "bridgeId", + "description": "Bridge's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Bridge not found" + }, + { + "code": 409, + "reason": "Bridge not in Stasis application" + } + ] + } + ] + }, + { + "path": "/bridges/{bridgeId}/play", + "description": "Play media to the participants of a bridge", + "operations": [ + { + "httpMethod": "POST", + "summary": "Start playback of media on a bridge.", + "notes": "The media URI may be any of a number of URI's. Currently sound:, recording:, number:, digits:, characters:, and tone: URI's are supported. This operation creates a playback resource that can be used to control the playback of media (pause, rewind, fast forward, etc.)", + "nickname": "play", + "responseClass": "Playback", + "parameters": [ + { + "name": "bridgeId", + "description": "Bridge's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "media", + "description": "Media URIs to play.", + "paramType": "query", + "required": true, + "allowMultiple": true, + "dataType": "string" + }, + { + "name": "lang", + "description": "For sounds, selects language for sound.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "offsetms", + "description": "Number of milliseconds to skip before playing. Only applies to the first URI if multiple media URIs are specified.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "int", + "defaultValue": 0, + "allowableValues": { + "valueType": "RANGE", + "min": 0 + } + + }, + { + "name": "skipms", + "description": "Number of milliseconds to skip for forward/reverse operations.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "int", + "defaultValue": 3000, + "allowableValues": { + "valueType": "RANGE", + "min": 0 + } + }, + { + "name": "playbackId", + "description": "Playback Id.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Bridge not found" + }, + { + "code": 409, + "reason": "Bridge not in a Stasis application" + } + ] + } + ] + }, + { + "path": "/bridges/{bridgeId}/play/{playbackId}", + "description": "Play media to a bridge", + "operations": [ + { + "httpMethod": "POST", + "summary": "Start playback of media on a bridge.", + "notes": "The media URI may be any of a number of URI's. Currently sound:, recording:, number:, digits:, characters:, and tone: URI's are supported. This operation creates a playback resource that can be used to control the playback of media (pause, rewind, fast forward, etc.)", + "nickname": "playWithId", + "responseClass": "Playback", + "parameters": [ + { + "name": "bridgeId", + "description": "Bridge's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "playbackId", + "description": "Playback ID.", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "media", + "description": "Media URIs to play.", + "paramType": "query", + "required": true, + "allowMultiple": true, + "dataType": "string" + }, + { + "name": "lang", + "description": "For sounds, selects language for sound.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "offsetms", + "description": "Number of milliseconds to skip before playing. Only applies to the first URI if multiple media URIs are specified.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "int", + "defaultValue": 0, + "allowableValues": { + "valueType": "RANGE", + "min": 0 + } + }, + { + "name": "skipms", + "description": "Number of milliseconds to skip for forward/reverse operations.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "int", + "defaultValue": 3000, + "allowableValues": { + "valueType": "RANGE", + "min": 0 + } + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Bridge not found" + }, + { + "code": 409, + "reason": "Bridge not in a Stasis application" + } + ] + + } + ] + }, + { + "path": "/bridges/{bridgeId}/record", + "description": "Record audio on a bridge", + "operations": [ + { + "httpMethod": "POST", + "summary": "Start a recording.", + "notes": "This records the mixed audio from all channels participating in this bridge.", + "nickname": "record", + "responseClass": "LiveRecording", + "parameters": [ + { + "name": "bridgeId", + "description": "Bridge's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "name", + "description": "Recording's filename", + "paramType": "query", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "format", + "description": "Format to encode audio in", + "paramType": "query", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "maxDurationSeconds", + "description": "Maximum duration of the recording, in seconds. 0 for no limit.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "int", + "defaultValue": 0, + "allowableValues": { + "valueType": "RANGE", + "min": 0 + } + }, + { + "name": "maxSilenceSeconds", + "description": "Maximum duration of silence, in seconds. 0 for no limit.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "int", + "defaultValue": 0, + "allowableValues": { + "valueType": "RANGE", + "min": 0 + } + }, + { + "name": "ifExists", + "description": "Action to take if a recording with the same name already exists.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string", + "defaultValue": "fail", + "allowableValues": { + "valueType": "LIST", + "values": [ + "fail", + "overwrite", + "append" + ] + } + }, + { + "name": "beep", + "description": "Play beep when recording begins", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "boolean", + "defaultValue": false + }, + { + "name": "terminateOn", + "description": "DTMF input to terminate recording.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string", + "defaultValue": "none", + "allowableValues": { + "valueType": "LIST", + "values": [ + "none", + "any", + "*", + "#" + ] + } + } + ], + "errorResponses": [ + { + "code": 400, + "reason": "Invalid parameters" + }, + { + "code": 404, + "reason": "Bridge not found" + }, + { + "code": 409, + "reason": "Bridge is not in a Stasis application; A recording with the same name already exists on the system and can not be overwritten because it is in progress or ifExists=fail" + }, + { + "code": 422, + "reason": "The format specified is unknown on this system" + } + ] + } + ] + } + ], + "models": { + "Bridge": { + "id": "Bridge", + "description": "The merging of media from one or more channels.\n\nEveryone on the bridge receives the same audio.", + "properties": { + "id": { + "type": "string", + "description": "Unique identifier for this bridge", + "required": true + }, + "technology": { + "type": "string", + "description": "Name of the current bridging technology", + "required": true + }, + "bridge_type": { + "type": "string", + "description": "Type of bridge technology", + "required": true, + "allowableValues": { + "valueType": "LIST", + "values": [ + "mixing", + "holding" + ] + } + }, + "bridge_class": { + "type": "string", + "description": "Bridging class", + "required": true + }, + "creator": { + "type": "string", + "description": "Entity that created the bridge", + "required": true + }, + "name": { + "type": "string", + "description": "Name the creator gave the bridge", + "required": true + }, + "channels": { + "type": "List[string]", + "description": "Ids of channels participating in this bridge", + "required": true + }, + "video_mode": { + "type": "string", + "description": "The video mode the bridge is using. One of 'none', 'talker', 'sfu', or 'single'.", + "required": false + }, + "video_source_id": { + "type": "string", + "description": "The ID of the channel that is the source of video in this bridge, if one exists.", + "required": false + }, + "creationtime": { + "required": true, + "type": "Date", + "description": "Timestamp when bridge was created" + } + } + } + } +} diff --git a/codegen/src/main/resources/codegen-data/ari_10_0_0/channels.json b/codegen/src/main/resources/codegen-data/ari_10_0_0/channels.json new file mode 100644 index 00000000..ab4a0421 --- /dev/null +++ b/codegen/src/main/resources/codegen-data/ari_10_0_0/channels.json @@ -0,0 +1,2203 @@ +{ + "_copyright": "Copyright (C) 2012 - 2013, Digium, Inc.", + "_author": "David M. Lee, II ", + "_svn_revision": "$Revision$", + "apiVersion": "2.0.0", + "swaggerVersion": "1.1", + "basePath": "http://localhost:8088/ari", + "resourcePath": "/api-docs/channels.{format}", + "requiresModules": [ + "res_stasis_answer", + "res_stasis_playback", + "res_stasis_recording", + "res_stasis_snoop" + ], + "apis": [ + { + "path": "/channels", + "description": "Active channels", + "operations": [ + { + "httpMethod": "GET", + "summary": "List all active channels in Asterisk.", + "nickname": "list", + "responseClass": "List[Channel]" + }, + { + "httpMethod": "POST", + "summary": "Create a new channel (originate).", + "notes": "The new channel is created immediately and a snapshot of it returned. If a Stasis application is provided it will be automatically subscribed to the originated channel for further events and updates.", + "nickname": "originate", + "responseClass": "Channel", + "parameters": [ + { + "name": "endpoint", + "description": "Endpoint to call.", + "paramType": "query", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "extension", + "description": "The extension to dial after the endpoint answers. Mutually exclusive with 'app'.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "context", + "description": "The context to dial after the endpoint answers. If omitted, uses 'default'. Mutually exclusive with 'app'.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "priority", + "description": "The priority to dial after the endpoint answers. If omitted, uses 1. Mutually exclusive with 'app'.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "long" + }, + { + "name": "label", + "description": "The label to dial after the endpoint answers. Will supersede 'priority' if provided. Mutually exclusive with 'app'.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "app", + "description": "The application that is subscribed to the originated channel. When the channel is answered, it will be passed to this Stasis application. Mutually exclusive with 'context', 'extension', 'priority', and 'label'.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "appArgs", + "description": "The application arguments to pass to the Stasis application provided by 'app'. Mutually exclusive with 'context', 'extension', 'priority', and 'label'.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "callerId", + "description": "CallerID to use when dialing the endpoint or extension.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "timeout", + "description": "Timeout (in seconds) before giving up dialing, or -1 for no timeout.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "int", + "defaultValue": 30 + }, + { + "name": "variables", + "description": "The \"variables\" key in the body object holds variable key/value pairs to set on the channel on creation. Other keys in the body object are interpreted as query parameters. Ex. { \"endpoint\": \"SIP/Alice\", \"variables\": { \"CALLERID(name)\": \"Alice\" } }", + "paramType": "body", + "required": false, + "dataType": "containers", + "allowMultiple": false + }, + { + "name": "channelId", + "description": "The unique id to assign the channel on creation.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "otherChannelId", + "description": "The unique id to assign the second channel when using local channels.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "originator", + "description": "The unique id of the channel which is originating this one.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "formats", + "description": "The format name capability list to use if originator is not specified. Ex. \"ulaw,slin16\". Format names can be found with \"core show codecs\".", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 400, + "reason": "Invalid parameters for originating a channel." + }, + { + "code": 409, + "reason": "Channel with given unique ID already exists." + } + ] + } + ] + }, + { + "path": "/channels/create", + "description": "Create a channel and place it in a Stasis app, but do not dial the channel yet.", + "operations": [ + { + "httpMethod": "POST", + "summary": "Create channel.", + "nickname": "create", + "responseClass": "Channel", + "parameters": [ + { + "name": "endpoint", + "description": "Endpoint for channel communication", + "paramType": "query", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "app", + "description": "Stasis Application to place channel into", + "paramType": "query", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "appArgs", + "description": "The application arguments to pass to the Stasis application provided by 'app'. Mutually exclusive with 'context', 'extension', 'priority', and 'label'.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "channelId", + "description": "The unique id to assign the channel on creation.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "otherChannelId", + "description": "The unique id to assign the second channel when using local channels.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "originator", + "description": "Unique ID of the calling channel", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "formats", + "description": "The format name capability list to use if originator is not specified. Ex. \"ulaw,slin16\". Format names can be found with \"core show codecs\".", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "variables", + "description": "The \"variables\" key in the body object holds variable key/value pairs to set on the channel on creation. Other keys in the body object are interpreted as query parameters. Ex. { \"endpoint\": \"SIP/Alice\", \"variables\": { \"CALLERID(name)\": \"Alice\" } }", + "paramType": "body", + "required": false, + "dataType": "containers", + "allowMultiple": false + } + ], + "errorResponses": [ + { + "code": 409, + "reason": "Channel with given unique ID already exists." + } + ] + } + ] + }, + { + "path": "/channels/{channelId}", + "description": "Active channel", + "operations": [ + { + "httpMethod": "GET", + "summary": "Channel details.", + "nickname": "get", + "responseClass": "Channel", + "parameters": [ + { + "name": "channelId", + "description": "Channel's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Channel not found" + } + ] + }, + { + "httpMethod": "POST", + "summary": "Create a new channel (originate with id).", + "notes": "The new channel is created immediately and a snapshot of it returned. If a Stasis application is provided it will be automatically subscribed to the originated channel for further events and updates.", + "nickname": "originateWithId", + "responseClass": "Channel", + "parameters": [ + { + "name": "channelId", + "description": "The unique id to assign the channel on creation.", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "endpoint", + "description": "Endpoint to call.", + "paramType": "query", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "extension", + "description": "The extension to dial after the endpoint answers. Mutually exclusive with 'app'.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "context", + "description": "The context to dial after the endpoint answers. If omitted, uses 'default'. Mutually exclusive with 'app'.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "priority", + "description": "The priority to dial after the endpoint answers. If omitted, uses 1. Mutually exclusive with 'app'.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "long" + }, + { + "name": "label", + "description": "The label to dial after the endpoint answers. Will supersede 'priority' if provided. Mutually exclusive with 'app'.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "app", + "description": "The application that is subscribed to the originated channel. When the channel is answered, it will be passed to this Stasis application. Mutually exclusive with 'context', 'extension', 'priority', and 'label'.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "appArgs", + "description": "The application arguments to pass to the Stasis application provided by 'app'. Mutually exclusive with 'context', 'extension', 'priority', and 'label'.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "callerId", + "description": "CallerID to use when dialing the endpoint or extension.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "timeout", + "description": "Timeout (in seconds) before giving up dialing, or -1 for no timeout.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "int", + "defaultValue": 30 + }, + { + "name": "variables", + "description": "The \"variables\" key in the body object holds variable key/value pairs to set on the channel on creation. Other keys in the body object are interpreted as query parameters. Ex. { \"endpoint\": \"SIP/Alice\", \"variables\": { \"CALLERID(name)\": \"Alice\" } }", + "paramType": "body", + "required": false, + "dataType": "containers", + "allowMultiple": false + }, + { + "name": "otherChannelId", + "description": "The unique id to assign the second channel when using local channels.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "originator", + "description": "The unique id of the channel which is originating this one.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "formats", + "description": "The format name capability list to use if originator is not specified. Ex. \"ulaw,slin16\". Format names can be found with \"core show codecs\".", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 400, + "reason": "Invalid parameters for originating a channel." + }, + { + "code": 409, + "reason": "Channel with given unique ID already exists." + } + ] + + }, + { + "httpMethod": "DELETE", + "summary": "Delete (i.e. hangup) a channel.", + "nickname": "hangup", + "responseClass": "void", + "parameters": [ + { + "name": "channelId", + "description": "Channel's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "reason_code", + "description": "The reason code for hanging up the channel for detail use. Mutually exclusive with 'reason'. See detail hangup codes at here. https://docs.asterisk.org/Configuration/Miscellaneous/Hangup-Cause-Mappings/", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "reason", + "description": "Reason for hanging up the channel for simple use. Mutually exclusive with 'reason_code'.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string", + "allowableValues": { + "valueType": "LIST", + "values": [ + "normal", + "busy", + "congestion", + "no_answer", + "timeout", + "rejected", + "unallocated", + "normal_unspecified", + "number_incomplete", + "codec_mismatch", + "interworking", + "failure", + "answered_elsewhere" + ] + } + } + ], + "errorResponses": [ + { + "code": 400, + "reason": "Invalid reason for hangup provided" + }, + { + "code": 404, + "reason": "Channel not found" + } + ] + } + ] + }, + { + "path": "/channels/{channelId}/continue", + "description": "Exit application; continue execution in the dialplan", + "operations": [ + { + "httpMethod": "POST", + "summary": "Exit application; continue execution in the dialplan.", + "nickname": "continueInDialplan", + "responseClass": "void", + "parameters": [ + { + "name": "channelId", + "description": "Channel's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "context", + "description": "The context to continue to.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "extension", + "description": "The extension to continue to.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "priority", + "description": "The priority to continue to.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "int" + }, + { + "name": "label", + "description": "The label to continue to - will supersede 'priority' if both are provided.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Channel not found" + }, + { + "code": 409, + "reason": "Channel not in a Stasis application" + }, + { + "code": 412, + "reason": "Channel in invalid state" + } + ] + } + ] + }, + { + "path": "/channels/{channelId}/move", + "description": "Move the channel from one Stasis application to another.", + "operations": [ + { + "httpMethod": "POST", + "summary": "Move the channel from one Stasis application to another.", + "nickname": "move", + "responseClass": "void", + "parameters": [ + { + "name": "channelId", + "description": "Channel's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "app", + "description": "The channel will be passed to this Stasis application.", + "paramType": "query", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "appArgs", + "description": "The application arguments to pass to the Stasis application provided by 'app'.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": "404", + "reason": "Channel not found" + }, + { + "code": "409", + "reason": "Channel not in a Stasis application" + } + ] + } + ] + }, + { + "path": "/channels/{channelId}/redirect", + "description": "Inform the channel that it should redirect itself to a different location. Note that this will almost certainly cause the channel to exit the application.", + "operations": [ + { + "httpMethod": "POST", + "summary": "Redirect the channel to a different location.", + "nickname": "redirect", + "responseClass": "void", + "parameters": [ + { + "name": "channelId", + "description": "Channel's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "endpoint", + "description": "The endpoint to redirect the channel to", + "paramType": "query", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 400, + "reason": "Endpoint parameter not provided" + }, + { + "code": 404, + "reason": "Channel or endpoint not found" + }, + { + "code": 409, + "reason": "Channel not in a Stasis application" + }, + { + "code": 422, + "reason": "Endpoint is not the same type as the channel" + }, + { + "code": 412, + "reason": "Channel in invalid state" + } + ] + } + ] + }, + { + "path": "/channels/{channelId}/answer", + "description": "Answer a channel", + "operations": [ + { + "httpMethod": "POST", + "summary": "Answer a channel.", + "nickname": "answer", + "responseClass": "void", + "parameters": [ + { + "name": "channelId", + "description": "Channel's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Channel not found" + }, + { + "code": 409, + "reason": "Channel not in a Stasis application" + }, + { + "code": 412, + "reason": "Channel in invalid state" + } + ] + } + ] + }, + { + "path": "/channels/{channelId}/ring", + "description": "Send a ringing indication to a channel", + "operations": [ + { + "httpMethod": "POST", + "summary": "Indicate ringing to a channel.", + "nickname": "ring", + "responseClass": "void", + "parameters": [ + { + "name": "channelId", + "description": "Channel's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Channel not found" + }, + { + "code": 409, + "reason": "Channel not in a Stasis application" + }, + { + "code": 412, + "reason": "Channel in invalid state" + } + ] + }, + { + "httpMethod": "DELETE", + "summary": "Stop ringing indication on a channel if locally generated.", + "nickname": "ringStop", + "responseClass": "void", + "parameters": [ + { + "name": "channelId", + "description": "Channel's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Channel not found" + }, + { + "code": 409, + "reason": "Channel not in a Stasis application" + }, + { + "code": 412, + "reason": "Channel in invalid state" + } + ] + } + ] + }, + { + "path": "/channels/{channelId}/dtmf", + "description": "Send DTMF to a channel", + "operations": [ + { + "httpMethod": "POST", + "summary": "Send provided DTMF to a given channel.", + "nickname": "sendDTMF", + "responseClass": "void", + "parameters": [ + { + "name": "channelId", + "description": "Channel's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "dtmf", + "description": "DTMF To send.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "before", + "description": "Amount of time to wait before DTMF digits (specified in milliseconds) start.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "int", + "defaultValue": 0 + }, + { + "name": "between", + "description": "Amount of time in between DTMF digits (specified in milliseconds).", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "int", + "defaultValue": 100 + }, + { + "name": "duration", + "description": "Length of each DTMF digit (specified in milliseconds).", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "int", + "defaultValue": 100 + }, + { + "name": "after", + "description": "Amount of time to wait after DTMF digits (specified in milliseconds) end.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "int", + "defaultValue": 0 + } + ], + "errorResponses": [ + { + "code": 400, + "reason": "DTMF is required" + }, + { + "code": 404, + "reason": "Channel not found" + }, + { + "code": 409, + "reason": "Channel not in a Stasis application" + }, + { + "code": 412, + "reason": "Channel in invalid state" + } + ] + } + ] + }, + { + "path": "/channels/{channelId}/mute", + "description": "Mute a channel", + "operations": [ + { + "httpMethod": "POST", + "summary": "Mute a channel.", + "nickname": "mute", + "responseClass": "void", + "parameters": [ + { + "name": "channelId", + "description": "Channel's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "direction", + "description": "Direction in which to mute audio", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string", + "defaultValue": "both", + "allowableValues": { + "valueType": "LIST", + "values": [ + "both", + "in", + "out" + ] + } + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Channel not found" + }, + { + "code": 409, + "reason": "Channel not in a Stasis application" + }, + { + "code": 412, + "reason": "Channel in invalid state" + } + ] + }, + { + "httpMethod": "DELETE", + "summary": "Unmute a channel.", + "nickname": "unmute", + "responseClass": "void", + "parameters": [ + { + "name": "channelId", + "description": "Channel's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "direction", + "description": "Direction in which to unmute audio", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string", + "defaultValue": "both", + "allowableValues": { + "valueType": "LIST", + "values": [ + "both", + "in", + "out" + ] + } + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Channel not found" + }, + { + "code": 409, + "reason": "Channel not in a Stasis application" + }, + { + "code": 412, + "reason": "Channel in invalid state" + } + ] + } + ] + }, + { + "path": "/channels/{channelId}/hold", + "description": "Put a channel on hold", + "operations": [ + { + "httpMethod": "POST", + "summary": "Hold a channel.", + "nickname": "hold", + "responseClass": "void", + "parameters": [ + { + "name": "channelId", + "description": "Channel's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Channel not found" + }, + { + "code": 409, + "reason": "Channel not in a Stasis application" + }, + { + "code": 412, + "reason": "Channel in invalid state" + } + ] + }, + { + "httpMethod": "DELETE", + "summary": "Remove a channel from hold.", + "nickname": "unhold", + "responseClass": "void", + "parameters": [ + { + "name": "channelId", + "description": "Channel's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Channel not found" + }, + { + "code": 409, + "reason": "Channel not in a Stasis application" + }, + { + "code": 412, + "reason": "Channel in invalid state" + } + ] + } + ] + }, + { + "path": "/channels/{channelId}/moh", + "description": "Play music on hold to a channel", + "operations": [ + { + "httpMethod": "POST", + "summary": "Play music on hold to a channel.", + "notes": "Using media operations such as /play on a channel playing MOH in this manner will suspend MOH without resuming automatically. If continuing music on hold is desired, the stasis application must reinitiate music on hold.", + "nickname": "startMoh", + "responseClass": "void", + "parameters": [ + { + "name": "channelId", + "description": "Channel's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "mohClass", + "description": "Music on hold class to use", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Channel not found" + }, + { + "code": 409, + "reason": "Channel not in a Stasis application" + }, + { + "code": 412, + "reason": "Channel in invalid state" + } + ] + }, + { + "httpMethod": "DELETE", + "summary": "Stop playing music on hold to a channel.", + "nickname": "stopMoh", + "responseClass": "void", + "parameters": [ + { + "name": "channelId", + "description": "Channel's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Channel not found" + }, + { + "code": 409, + "reason": "Channel not in a Stasis application" + }, + { + "code": 412, + "reason": "Channel in invalid state" + } + ] + } + ] + }, + { + "path": "/channels/{channelId}/silence", + "description": "Play silence to a channel", + "operations": [ + { + "httpMethod": "POST", + "summary": "Play silence to a channel.", + "notes": "Using media operations such as /play on a channel playing silence in this manner will suspend silence without resuming automatically.", + "nickname": "startSilence", + "responseClass": "void", + "parameters": [ + { + "name": "channelId", + "description": "Channel's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Channel not found" + }, + { + "code": 409, + "reason": "Channel not in a Stasis application" + }, + { + "code": 412, + "reason": "Channel in invalid state" + } + ] + }, + { + "httpMethod": "DELETE", + "summary": "Stop playing silence to a channel.", + "nickname": "stopSilence", + "responseClass": "void", + "parameters": [ + { + "name": "channelId", + "description": "Channel's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Channel not found" + }, + { + "code": 409, + "reason": "Channel not in a Stasis application" + }, + { + "code": 412, + "reason": "Channel in invalid state" + } + ] + } + ] + }, + { + "path": "/channels/{channelId}/play", + "description": "Play media to a channel", + "operations": [ + { + "httpMethod": "POST", + "summary": "Start playback of media.", + "notes": "The media URI may be any of a number of URI's. Currently sound:, recording:, number:, digits:, characters:, and tone: URI's are supported. This operation creates a playback resource that can be used to control the playback of media (pause, rewind, fast forward, etc.)", + "nickname": "play", + "responseClass": "Playback", + "parameters": [ + { + "name": "channelId", + "description": "Channel's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "media", + "description": "Media URIs to play.", + "paramType": "query", + "required": true, + "allowMultiple": true, + "dataType": "string" + }, + { + "name": "lang", + "description": "For sounds, selects language for sound.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "offsetms", + "description": "Number of milliseconds to skip before playing. Only applies to the first URI if multiple media URIs are specified.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "int" + }, + { + "name": "skipms", + "description": "Number of milliseconds to skip for forward/reverse operations.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "int", + "defaultValue": 3000 + }, + { + "name": "playbackId", + "description": "Playback ID.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Channel not found" + }, + { + "code": 409, + "reason": "Channel not in a Stasis application" + }, + { + "code": 412, + "reason": "Channel in invalid state" + } + ] + } + ] + }, + { + "path": "/channels/{channelId}/play/{playbackId}", + "description": "Play media to a channel", + "operations": [ + { + "httpMethod": "POST", + "summary": "Start playback of media and specify the playbackId.", + "notes": "The media URI may be any of a number of URI's. Currently sound:, recording:, number:, digits:, characters:, and tone: URI's are supported. This operation creates a playback resource that can be used to control the playback of media (pause, rewind, fast forward, etc.)", + "nickname": "playWithId", + "responseClass": "Playback", + "parameters": [ + { + "name": "channelId", + "description": "Channel's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "playbackId", + "description": "Playback ID.", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "media", + "description": "Media URIs to play.", + "paramType": "query", + "required": true, + "allowMultiple": true, + "dataType": "string" + }, + { + "name": "lang", + "description": "For sounds, selects language for sound.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "offsetms", + "description": "Number of milliseconds to skip before playing. Only applies to the first URI if multiple media URIs are specified.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "int" + }, + { + "name": "skipms", + "description": "Number of milliseconds to skip for forward/reverse operations.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "int", + "defaultValue": 3000 + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Channel not found" + }, + { + "code": 409, + "reason": "Channel not in a Stasis application" + }, + { + "code": 412, + "reason": "Channel in invalid state" + } + ] + } + ] + }, + { + "path": "/channels/{channelId}/record", + "description": "Record audio from a channel", + "operations": [ + { + "httpMethod": "POST", + "summary": "Start a recording.", + "notes": "Record audio from a channel. Note that this will not capture audio sent to the channel. The bridge itself has a record feature if that's what you want.", + "nickname": "record", + "responseClass": "LiveRecording", + "parameters": [ + { + "name": "channelId", + "description": "Channel's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "name", + "description": "Recording's filename", + "paramType": "query", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "format", + "description": "Format to encode audio in", + "paramType": "query", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "maxDurationSeconds", + "description": "Maximum duration of the recording, in seconds. 0 for no limit", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "int", + "defaultValue": 0, + "allowableValues": { + "valueType": "RANGE", + "min": 0 + } + }, + { + "name": "maxSilenceSeconds", + "description": "Maximum duration of silence, in seconds. 0 for no limit", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "int", + "defaultValue": 0, + "allowableValues": { + "valueType": "RANGE", + "min": 0 + } + }, + { + "name": "ifExists", + "description": "Action to take if a recording with the same name already exists.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string", + "defaultValue": "fail", + "allowableValues": { + "valueType": "LIST", + "values": [ + "fail", + "overwrite", + "append" + ] + } + }, + { + "name": "beep", + "description": "Play beep when recording begins", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "boolean", + "defaultValue": false + }, + { + "name": "terminateOn", + "description": "DTMF input to terminate recording", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string", + "defaultValue": "none", + "allowableValues": { + "valueType": "LIST", + "values": [ + "none", + "any", + "*", + "#" + ] + } + } + ], + "errorResponses": [ + { + "code": 400, + "reason": "Invalid parameters" + }, + { + "code": 404, + "reason": "Channel not found" + }, + { + "code": 409, + "reason": "Channel is not in a Stasis application; the channel is currently bridged with other hcannels; A recording with the same name already exists on the system and can not be overwritten because it is in progress or ifExists=fail" + }, + { + "code": 422, + "reason": "The format specified is unknown on this system" + } + ] + } + ] + }, + { + "path": "/channels/{channelId}/variable", + "description": "Variables on a channel", + "operations": [ + { + "httpMethod": "GET", + "summary": "Get the value of a channel variable or function.", + "nickname": "getChannelVar", + "responseClass": "Variable", + "parameters": [ + { + "name": "channelId", + "description": "Channel's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "variable", + "description": "The channel variable or function to get", + "paramType": "query", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 400, + "reason": "Missing variable parameter." + }, + { + "code": 404, + "reason": "Channel or variable not found" + }, + { + "code": 409, + "reason": "Channel not in a Stasis application" + } + ] + }, + { + "httpMethod": "POST", + "summary": "Set the value of a channel variable or function.", + "nickname": "setChannelVar", + "responseClass": "void", + "parameters": [ + { + "name": "channelId", + "description": "Channel's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "variable", + "description": "The channel variable or function to set", + "paramType": "query", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "value", + "description": "The value to set the variable to", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 400, + "reason": "Missing variable parameter." + }, + { + "code": 404, + "reason": "Channel not found" + }, + { + "code": 409, + "reason": "Channel not in a Stasis application" + } + ] + } + ] + }, + { + "path": "/channels/{channelId}/snoop", + "description": "Snoop (spy/whisper) on a channel", + "operations": [ + { + "httpMethod": "POST", + "summary": "Start snooping.", + "notes": "Snoop (spy/whisper) on a specific channel.", + "nickname": "snoopChannel", + "responseClass": "Channel", + "parameters": [ + { + "name": "channelId", + "description": "Channel's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "spy", + "description": "Direction of audio to spy on", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string", + "defaultValue": "none", + "allowableValues": { + "valueType": "LIST", + "values": [ + "none", + "both", + "out", + "in" + ] + } + }, + { + "name": "whisper", + "description": "Direction of audio to whisper into", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string", + "defaultValue": "none", + "allowableValues": { + "valueType": "LIST", + "values": [ + "none", + "both", + "out", + "in" + ] + } + }, + { + "name": "app", + "description": "Application the snooping channel is placed into", + "paramType": "query", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "appArgs", + "description": "The application arguments to pass to the Stasis application", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "snoopId", + "description": "Unique ID to assign to snooping channel", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 400, + "reason": "Invalid parameters" + }, + { + "code": 404, + "reason": "Channel not found" + } + ] + } + ] + }, + { + "path": "/channels/{channelId}/snoop/{snoopId}", + "description": "Snoop (spy/whisper) on a channel", + "operations": [ + { + "httpMethod": "POST", + "summary": "Start snooping.", + "notes": "Snoop (spy/whisper) on a specific channel.", + "nickname": "snoopChannelWithId", + "responseClass": "Channel", + "parameters": [ + { + "name": "channelId", + "description": "Channel's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "snoopId", + "description": "Unique ID to assign to snooping channel", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "spy", + "description": "Direction of audio to spy on", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string", + "defaultValue": "none", + "allowableValues": { + "valueType": "LIST", + "values": [ + "none", + "both", + "out", + "in" + ] + } + }, + { + "name": "whisper", + "description": "Direction of audio to whisper into", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string", + "defaultValue": "none", + "allowableValues": { + "valueType": "LIST", + "values": [ + "none", + "both", + "out", + "in" + ] + } + }, + { + "name": "app", + "description": "Application the snooping channel is placed into", + "paramType": "query", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "appArgs", + "description": "The application arguments to pass to the Stasis application", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 400, + "reason": "Invalid parameters" + }, + { + "code": 404, + "reason": "Channel not found" + } + ] + } + ] + }, + { + "path": "/channels/{channelId}/dial", + "description": "Dial a channel", + "operations": [ + { + "httpMethod": "POST", + "summary": "Dial a created channel.", + "nickname": "dial", + "responseClass": "void", + "parameters": [ + { + "name": "channelId", + "description": "Channel's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "caller", + "description": "Channel ID of caller", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "timeout", + "description": "Dial timeout", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "int", + "defaultValue": 0, + "allowableValues": { + "valueType": "RANGE", + "min": 0 + } + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Channel cannot be found." + }, + { + "code": 409, + "reason": "Channel cannot be dialed." + } + ] + } + ] + }, + { + "path": "/channels/{channelId}/rtp_statistics", + "description": "Get RTP statistics information for RTP on a channel", + "operations": [ + { + "httpMethod": "GET", + "summary": "RTP stats on a channel.", + "nickname": "rtpstatistics", + "responseClass": "RTPstat", + "parameters": [ + { + "name": "channelId", + "description": "Channel's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Channel cannot be found." + } + ] + } + ] + }, + { + "path": "/channels/externalMedia", + "description": "Create a channel to an External Media source/sink.", + "operations": [ + { + "httpMethod": "POST", + "summary": "Start an External Media session.", + "notes": "Create a channel to an External Media source/sink.", + "nickname": "externalMedia", + "responseClass": "Channel", + "parameters": [ + { + "name": "channelId", + "description": "The unique id to assign the channel on creation.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "app", + "description": "Stasis Application to place channel into", + "paramType": "query", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "variables", + "description": "The \"variables\" key in the body object holds variable key/value pairs to set on the channel on creation. Other keys in the body object are interpreted as query parameters. Ex. { \"endpoint\": \"SIP/Alice\", \"variables\": { \"CALLERID(name)\": \"Alice\" } }", + "paramType": "body", + "required": false, + "dataType": "containers", + "allowMultiple": false + }, + { + "name": "external_host", + "description": "Hostname/ip:port of external host", + "paramType": "query", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "encapsulation", + "description": "Payload encapsulation protocol", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string", + "defaultValue": "rtp", + "allowableValues": { + "valueType": "LIST", + "values": [ + "rtp", + "audiosocket" + ] + } + }, + { + "name": "transport", + "description": "Transport protocol", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string", + "defaultValue": "udp", + "allowableValues": { + "valueType": "LIST", + "values": [ + "udp", + "tcp" + ] + } + }, + { + "name": "connection_type", + "description": "Connection type (client/server)", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string", + "defaultValue": "client", + "allowableValues": { + "valueType": "LIST", + "values": [ + "client" + ] + } + }, + { + "name": "format", + "description": "Format to encode audio in", + "paramType": "query", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "direction", + "description": "External media direction", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string", + "defaultValue": "both", + "allowableValues": { + "valueType": "LIST", + "values": [ + "both" + ] + } + }, + { + "name": "data", + "description": "An arbitrary data field", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 400, + "reason": "Invalid parameters" + }, + { + "code": 409, + "reason": "Channel is not in a Stasis application; Channel is already bridged" + } + ] + } + ] + } + ], + "models": { + "Dialed": { + "id": "Dialed", + "description": "Dialed channel information.", + "properties": {} + }, + "DialplanCEP": { + "id": "DialplanCEP", + "description": "Dialplan location (context/extension/priority)", + "properties": { + "context": { + "required": true, + "type": "string", + "description": "Context in the dialplan" + }, + "exten": { + "required": true, + "type": "string", + "description": "Extension in the dialplan" + }, + "priority": { + "required": true, + "type": "long", + "description": "Priority in the dialplan" + }, + "app_name": { + "required": true, + "type": "string", + "description": "Name of current dialplan application" + }, + "app_data": { + "required": true, + "type": "string", + "description": "Parameter of current dialplan application" + } + } + }, + "CallerID": { + "id": "CallerID", + "description": "Caller identification", + "properties": { + "name": { + "required": true, + "type": "string" + }, + "number": { + "required": true, + "type": "string" + } + } + }, + "RTPstat": { + "id": "RTPstat", + "description": "A statistics of a RTP.", + "properties": { + "txcount": { + "required": true, + "type": "int", + "description": "Number of packets transmitted." + }, + "rxcount": { + "required": true, + "type": "int", + "description": "Number of packets received." + }, + "txjitter": { + "required": false, + "type": "double", + "description": "Jitter on transmitted packets." + }, + "rxjitter": { + "required": false, + "type": "double", + "description": "Jitter on received packets." + }, + "remote_maxjitter": { + "required": false, + "type": "double", + "description": "Maximum jitter on remote side." + }, + "remote_minjitter": { + "required": false, + "type": "double", + "description": "Minimum jitter on remote side." + }, + "remote_normdevjitter": { + "required": false, + "type": "double", + "description": "Average jitter on remote side." + }, + "remote_stdevjitter": { + "required": false, + "type": "double", + "description": "Standard deviation jitter on remote side." + }, + "local_maxjitter": { + "required": false, + "type": "double", + "description": "Maximum jitter on local side." + }, + "local_minjitter": { + "required": false, + "type": "double", + "description": "Minimum jitter on local side." + }, + "local_normdevjitter": { + "required": false, + "type": "double", + "description": "Average jitter on local side." + }, + "local_stdevjitter": { + "required": false, + "type": "double", + "description": "Standard deviation jitter on local side." + }, + "txploss": { + "required": true, + "type": "int", + "description": "Number of transmitted packets lost." + }, + "rxploss": { + "required": true, + "type": "int", + "description": "Number of received packets lost." + }, + "remote_maxrxploss": { + "required": false, + "type": "double", + "description": "Maximum number of packets lost on remote side." + }, + "remote_minrxploss": { + "required": false, + "type": "double", + "description": "Minimum number of packets lost on remote side." + }, + "remote_normdevrxploss": { + "required": false, + "type": "double", + "description": "Average number of packets lost on remote side." + }, + "remote_stdevrxploss": { + "required": false, + "type": "double", + "description": "Standard deviation packets lost on remote side." + }, + "local_maxrxploss": { + "required": false, + "type": "double", + "description": "Maximum number of packets lost on local side." + }, + "local_minrxploss": { + "required": false, + "type": "double", + "description": "Minimum number of packets lost on local side." + }, + "local_normdevrxploss": { + "required": false, + "type": "double", + "description": "Average number of packets lost on local side." + }, + "local_stdevrxploss": { + "required": false, + "type": "double", + "description": "Standard deviation packets lost on local side." + }, + "rtt": { + "required": false, + "type": "double", + "description": "Total round trip time." + }, + "maxrtt": { + "required": false, + "type": "double", + "description": "Maximum round trip time." + }, + "minrtt": { + "required": false, + "type": "double", + "description": "Minimum round trip time." + }, + "normdevrtt": { + "required": false, + "type": "double", + "description": "Average round trip time." + }, + "stdevrtt": { + "required": false, + "type": "double", + "description": "Standard deviation round trip time." + }, + "local_ssrc": { + "required": true, + "type": "int", + "description": "Our SSRC." + }, + "remote_ssrc": { + "required": true, + "type": "int", + "description": "Their SSRC." + }, + "txoctetcount": { + "required": true, + "type": "int", + "description": "Number of octets transmitted." + }, + "rxoctetcount": { + "required": true, + "type": "int", + "description": "Number of octets received." + }, + "channel_uniqueid": { + "required": true, + "type": "string", + "description": "The Asterisk channel's unique ID that owns this instance." + } + } + }, + "Channel": { + "id": "Channel", + "description": "A specific communication connection between Asterisk and an Endpoint.", + "properties": { + "id": { + "required": true, + "type": "string", + "description": "Unique identifier of the channel.\n\nThis is the same as the Uniqueid field in AMI." + }, + "protocol_id": { + "required": true, + "type": "string", + "description": "Protocol id from underlying channel driver (i.e. Call-ID for chan_pjsip; will be empty if not applicable or not implemented by driver)." + }, + "name": { + "required": true, + "type": "string", + "description": "Name of the channel (i.e. SIP/foo-0000a7e3)" + }, + "state": { + "required": true, + "type": "string", + "allowableValues": { + "valueType": "LIST", + "values": [ + "Down", + "Rsrved", + "OffHook", + "Dialing", + "Ring", + "Ringing", + "Up", + "Busy", + "Dialing Offhook", + "Pre-ring", + "Unknown" + ] + } + }, + "caller": { + "required": true, + "type": "CallerID" + }, + "connected": { + "required": true, + "type": "CallerID" + }, + "accountcode": { + "required": true, + "type": "string" + }, + "dialplan": { + "required": true, + "type": "DialplanCEP", + "description": "Current location in the dialplan" + }, + "creationtime": { + "required": true, + "type": "Date", + "description": "Timestamp when channel was created" + }, + "language": { + "required": true, + "type": "string", + "description": "The default spoken language" + }, + "channelvars": { + "required": false, + "type": "object", + "description": "Channel variables" + }, + "caller_rdnis": { + "type": "string", + "description": "The Caller ID RDNIS" + }, + "tenantid": { + "required": false, + "type": "string", + "description": "The Tenant ID for the channel" + } + } + } + } +} diff --git a/codegen/src/main/resources/codegen-data/ari_10_0_0/deviceStates.json b/codegen/src/main/resources/codegen-data/ari_10_0_0/deviceStates.json new file mode 100644 index 00000000..bd389355 --- /dev/null +++ b/codegen/src/main/resources/codegen-data/ari_10_0_0/deviceStates.json @@ -0,0 +1,154 @@ +{ + "_copyright": "Copyright (C) 2012 - 2013, Digium, Inc.", + "_author": "Kevin Harwell ", + "_svn_revision": "$Revision$", + "apiVersion": "2.0.0", + "swaggerVersion": "1.1", + "basePath": "http://localhost:8088/ari", + "resourcePath": "/api-docs/deviceStates.{format}", + "requiresModules": [ + "res_stasis_device_state" + ], + "apis": [ + { + "path": "/deviceStates", + "description": "Device states", + "operations": [ + { + "httpMethod": "GET", + "summary": "List all ARI controlled device states.", + "nickname": "list", + "responseClass": "List[DeviceState]" + } + ] + }, + { + "path": "/deviceStates/{deviceName}", + "description": "Device state", + "operations": [ + { + "httpMethod": "GET", + "summary": "Retrieve the current state of a device.", + "nickname": "get", + "responseClass": "DeviceState", + "parameters": [ + { + "name": "deviceName", + "description": "Name of the device", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ] + }, + { + "httpMethod": "PUT", + "summary": "Change the state of a device controlled by ARI. (Note - implicitly creates the device state).", + "nickname": "update", + "responseClass": "void", + "parameters": [ + { + "name": "deviceName", + "description": "Name of the device", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "deviceState", + "description": "Device state value", + "paramType": "query", + "required": true, + "allowMultiple": false, + "dataType": "string", + "allowableValues": { + "valueType": "LIST", + "values": [ + "NOT_INUSE", + "INUSE", + "BUSY", + "INVALID", + "UNAVAILABLE", + "RINGING", + "RINGINUSE", + "ONHOLD" + ] + } + + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Device name is missing" + }, + { + "code": 409, + "reason": "Uncontrolled device specified" + } + ] + }, + { + "httpMethod": "DELETE", + "summary": "Destroy a device-state controlled by ARI.", + "nickname": "delete", + "responseClass": "void", + "parameters": [ + { + "name": "deviceName", + "description": "Name of the device", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Device name is missing" + }, + { + "code": 409, + "reason": "Uncontrolled device specified" + } + ] + } + ] + } + ], + "models": { + "DeviceState": { + "id": "DeviceState", + "description": "Represents the state of a device.", + "properties": { + "name": { + "type": "string", + "description": "Name of the device.", + "required": true + }, + "state": { + "type": "string", + "description": "Device's state", + "required": true, + "allowableValues": { + "valueType": "LIST", + "values": [ + "UNKNOWN", + "NOT_INUSE", + "INUSE", + "BUSY", + "INVALID", + "UNAVAILABLE", + "RINGING", + "RINGINUSE", + "ONHOLD" + ] + } + } + } + } + } +} diff --git a/codegen/src/main/resources/codegen-data/ari_10_0_0/endpoints.json b/codegen/src/main/resources/codegen-data/ari_10_0_0/endpoints.json new file mode 100644 index 00000000..3f3f98ce --- /dev/null +++ b/codegen/src/main/resources/codegen-data/ari_10_0_0/endpoints.json @@ -0,0 +1,397 @@ +{ + "_copyright": "Copyright (C) 2012 - 2013, Digium, Inc.", + "_author": "David M. Lee, II ", + "_svn_revision": "$Revision$", + "apiVersion": "2.0.0", + "swaggerVersion": "1.1", + "basePath": "http://localhost:8088/ari", + "resourcePath": "/api-docs/endpoints.{format}", + "apis": [ + { + "path": "/endpoints", + "description": "Asterisk endpoints", + "operations": [ + { + "httpMethod": "GET", + "summary": "List all endpoints.", + "nickname": "list", + "responseClass": "List[Endpoint]" + } + ] + }, + { + "path": "/endpoints/sendMessage", + "description": "Send a message to some technology URI or endpoint.", + "operations": [ + { + "httpMethod": "PUT", + "summary": "Send a message to some technology URI or endpoint.", + "nickname": "sendMessage", + "responseClass": "void", + "parameters": [ + { + "name": "to", + "description": "The endpoint resource or technology specific URI to send the message to. Valid resources are pjsip, and xmpp.", + "paramType": "query", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "from", + "description": "The endpoint resource or technology specific identity to send this message from. Valid resources are pjsip, and xmpp.", + "paramType": "query", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "body", + "description": "The body of the message", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "variables", + "descriptioni": "The \"variables\" key in the body object holds technology specific key/value pairs to append to the message. These can be interpreted and used by the various resource types; for example, pjsip and sip resource types will add the key/value pairs as SIP headers,", + "paramType": "body", + "required": false, + "dataType": "containers", + "allowMultiple": false + } + ], + "errorResponses": [ + { + "code": 400, + "reason": "Invalid parameters for sending a message." + }, + { + "code": 404, + "reason": "Endpoint not found" + } + ] + } + ] + }, + { + "path": "/endpoints/refer", + "description": "Refer an endpoint or technology URI to some technology URI or endpoint.", + "operations": [ + { + "httpMethod": "POST", + "summary": "Refer an endpoint or technology URI to some technology URI or endpoint.", + "nickname": "refer", + "responseClass": "void", + "parameters": [ + { + "name": "to", + "description": "The endpoint resource or technology specific URI that should be referred to somewhere. Valid resource is pjsip.", + "paramType": "query", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "from", + "description": "The endpoint resource or technology specific identity to refer from.", + "paramType": "query", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "refer_to", + "description": "The endpoint resource or technology specific URI to refer to.", + "paramType": "query", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "to_self", + "description": "If true and \"refer_to\" refers to an Asterisk endpoint, the \"refer_to\" value is set to point to this Asterisk endpoint - so the referee is referred to Asterisk. Otherwise, use the contact URI associated with the endpoint.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "boolean", + "defaultValue": false + }, + { + "name": "variables", + "description": "The \"variables\" key in the body object holds technology specific key/value pairs to append to the message. These can be interpreted and used by the various resource types; for example, the pjsip resource type will add the key/value pairs as SIP headers. The \"display_name\" key is used by the PJSIP technology. Its value will be prepended as a display name to the Refer-To URI.", + "paramType": "body", + "required": false, + "dataType": "containers", + "allowMultiple": false + } + ], + "errorResponses": [ + { + "code": 400, + "reason": "Invalid parameters for referring." + }, + { + "code": 404, + "reason": "Endpoint not found" + } + ] + } + ] + }, + { + "path": "/endpoints/{tech}", + "description": "Asterisk endpoints", + "operations": [ + { + "httpMethod": "GET", + "summary": "List available endoints for a given endpoint technology.", + "nickname": "listByTech", + "responseClass": "List[Endpoint]", + "parameters": [ + { + "name": "tech", + "description": "Technology of the endpoints (pjsip,iax2,...)", + "paramType": "path", + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Endpoints not found" + } + ] + } + ] + }, + { + "path": "/endpoints/{tech}/{resource}", + "description": "Single endpoint", + "operations": [ + { + "httpMethod": "GET", + "summary": "Details for an endpoint.", + "nickname": "get", + "responseClass": "Endpoint", + "parameters": [ + { + "name": "tech", + "description": "Technology of the endpoint", + "paramType": "path", + "dataType": "string" + }, + { + "name": "resource", + "description": "ID of the endpoint", + "paramType": "path", + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 400, + "reason": "Invalid parameters for sending a message." + }, + { + "code": 404, + "reason": "Endpoints not found" + } + ] + } + ] + }, + { + "path": "/endpoints/{tech}/{resource}/sendMessage", + "description": "Send a message to some endpoint in a technology.", + "operations": [ + { + "httpMethod": "PUT", + "summary": "Send a message to some endpoint in a technology.", + "nickname": "sendMessageToEndpoint", + "responseClass": "void", + "parameters": [ + { + "name": "tech", + "description": "Technology of the endpoint", + "paramType": "path", + "dataType": "string" + }, + { + "name": "resource", + "description": "ID of the endpoint", + "paramType": "path", + "dataType": "string" + }, + { + "name": "from", + "description": "The endpoint resource or technology specific identity to send this message from. Valid resources are pjsip and xmpp.", + "paramType": "query", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "body", + "description": "The body of the message", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "variables", + "descriptioni": "The \"variables\" key in the body object holds technology specific key/value pairs to append to the message. These can be interpreted and used by the various resource types; for example, pjsip and sip resource types will add the key/value pairs as SIP headers,", + "paramType": "body", + "required": false, + "dataType": "containers", + "allowMultiple": false + } + ], + "errorResponses": [ + { + "code": 400, + "reason": "Invalid parameters for sending a message." + }, + { + "code": 404, + "reason": "Endpoint not found" + } + ] + } + ] + }, + { + "path": "/endpoints/{tech}/{resource}/refer", + "description": "Refer an endpoint in a technology to some technology URI or endpoint..", + "operations": [ + { + "httpMethod": "POST", + "summary": "Refer an endpoint or technology URI to some technology URI or endpoint.", + "nickname": "referToEndpoint", + "responseClass": "void", + "parameters": [ + { + "name": "tech", + "description": "Technology of the endpoint", + "paramType": "path", + "dataType": "string" + }, + { + "name": "resource", + "description": "ID of the endpoint", + "paramType": "path", + "dataType": "string" + }, + { + "name": "from", + "description": "The endpoint resource or technology specific identity to refer from.", + "paramType": "query", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "refer_to", + "description": "The endpoint resource or technology specific URI to refer to.", + "paramType": "query", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "to_self", + "description": "If true and \"refer_to\" refers to an Asterisk endpoint, the \"refer_to\" value is set to point to this Asterisk endpoint - so the referee is referred to Asterisk. Otherwise, use the contact URI associated with the endpoint.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "boolean", + "defaultValue": false + }, + { + "name": "variables", + "description": "The \"variables\" key in the body object holds technology specific key/value pairs to append to the message. These can be interpreted and used by the various resource types; for example, the pjsip resource type will add the key/value pairs as SIP headers,", + "paramType": "body", + "required": false, + "dataType": "containers", + "allowMultiple": false + } + ], + "errorResponses": [ + { + "code": 400, + "reason": "Invalid parameters for referring." + }, + { + "code": 404, + "reason": "Endpoint not found" + } + ] + } + ] + } + ], + "models": { + "Endpoint": { + "id": "Endpoint", + "description": "An external device that may offer/accept calls to/from Asterisk.\n\nUnlike most resources, which have a single unique identifier, an endpoint is uniquely identified by the technology/resource pair.", + "properties": { + "technology": { + "type": "string", + "description": "Technology of the endpoint", + "required": true + }, + "resource": { + "type": "string", + "description": "Identifier of the endpoint, specific to the given technology.", + "required": true + }, + "state": { + "type": "string", + "description": "Endpoint's state", + "required": false, + "allowableValues": { + "valueType": "LIST", + "values": [ + "unknown", + "offline", + "online" + ] + } + }, + "channel_ids": { + "type": "List[string]", + "description": "Id's of channels associated with this endpoint", + "required": true + } + } + }, + "TextMessage": { + "id": "TextMessage", + "description": "A text message.", + "properties": { + "from": { + "type": "string", + "description": "A technology specific URI specifying the source of the message. For pjsip technology, any SIP URI can be specified. For xmpp, the URI must correspond to the client connection being used to send the message.", + "required": true + }, + "to": { + "type": "string", + "description": "A technology specific URI specifying the destination of the message. Valid technologies include pjsip, and xmp. The destination of a message should be an endpoint.", + "required": true + }, + "body": { + "type": "string", + "description": "The text of the message.", + "required": true + }, + "variables": { + "type": "object", + "description": "Technology specific key/value pairs (JSON object) associated with the message.", + "required": false + } + } + } + } +} diff --git a/codegen/src/main/resources/codegen-data/ari_10_0_0/events.json b/codegen/src/main/resources/codegen-data/ari_10_0_0/events.json new file mode 100644 index 00000000..2bd1eeab --- /dev/null +++ b/codegen/src/main/resources/codegen-data/ari_10_0_0/events.json @@ -0,0 +1,930 @@ +{ + "_copyright": "Copyright (C) 2012 - 2013, Digium, Inc.", + "_author": "David M. Lee, II ", + "_svn_revision": "$Revision$", + "apiVersion": "2.0.0", + "swaggerVersion": "1.2", + "basePath": "http://localhost:8088/ari", + "resourcePath": "/api-docs/events.{format}", + "requiresModules": [ + "res_http_websocket" + ], + "apis": [ + { + "path": "/events", + "description": "Events from Asterisk to applications", + "operations": [ + { + "httpMethod": "GET", + "upgrade": "websocket", + "websocketProtocol": "ari", + "summary": "WebSocket connection for events.", + "nickname": "eventWebsocket", + "responseClass": "Message", + "parameters": [ + { + "name": "app", + "description": "Applications to subscribe to.", + "paramType": "query", + "required": true, + "allowMultiple": true, + "dataType": "string" + }, + { + "name": "subscribeAll", + "description": "Subscribe to all Asterisk events. If provided, the applications listed will be subscribed to all events, effectively disabling the application specific subscriptions. Default is 'false'.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "boolean" + } + ] + } + ] + }, + { + "path": "/events/user/{eventName}", + "description": "Stasis application user events", + "operations": [ + { + "httpMethod": "POST", + "summary": "Generate a user event.", + "nickname": "userEvent", + "responseClass": "void", + "parameters": [ + { + "name": "eventName", + "description": "Event name", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "application", + "description": "The name of the application that will receive this event", + "paramType": "query", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "source", + "description": "URI for event source (channel:{channelId}, bridge:{bridgeId}, endpoint:{tech}/{resource}, deviceState:{deviceName}", + "paramType": "query", + "required": false, + "allowMultiple": true, + "dataType": "string" + }, + { + "name": "variables", + "description": "The \"variables\" key in the body object holds custom key/value pairs to add to the user event. Ex. { \"variables\": { \"key\": \"value\" } }", + "paramType": "body", + "required": false, + "allowMultiple": false, + "dataType": "containers" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Application does not exist." + }, + { + "code": 422, + "reason": "Event source not found." + }, + { + "code": 400, + "reason": "Invalid even tsource URI or userevent data." + } + ] + } + ] + } + ], + "models": { + "Message": { + "id": "Message", + "description": "Base type for errors and events", + "discriminator": "type", + "properties": { + "type": { + "type": "string", + "required": true, + "description": "Indicates the type of this message." + }, + "asterisk_id": { + "type": "string", + "required": false, + "description": "The unique ID for the Asterisk instance that raised this event." + } + }, + "subTypes": [ + "MissingParams", + "Event" + ] + }, + "MissingParams": { + "id": "MissingParams", + "description": "Error event sent when required params are missing.", + "properties": { + "params": { + "required": true, + "type": "List[string]", + "description": "A list of the missing parameters" + } + } + }, + "Event": { + "id": "Event", + "description": "Base type for asynchronous events from Asterisk.", + "properties": { + "application": { + "type": "string", + "description": "Name of the application receiving the event.", + "required": true + }, + "timestamp": { + "type": "Date", + "description": "Time at which this event was created.", + "required": true + } + }, + "subTypes": [ + "DeviceStateChanged", + "PlaybackStarted", + "PlaybackContinuing", + "PlaybackFinished", + "RecordingStarted", + "RecordingFinished", + "RecordingFailed", + "ApplicationMoveFailed", + "ApplicationReplaced", + "BridgeCreated", + "BridgeDestroyed", + "BridgeMerged", + "BridgeBlindTransfer", + "BridgeAttendedTransfer", + "BridgeVideoSourceChanged", + "ChannelCreated", + "ChannelDestroyed", + "ChannelEnteredBridge", + "ChannelLeftBridge", + "ChannelStateChange", + "ChannelDtmfReceived", + "ChannelDialplan", + "ChannelCallerId", + "ChannelUserevent", + "ChannelHangupRequest", + "ChannelVarset", + "ChannelToneDetected", + "ChannelTalkingStarted", + "ChannelTalkingFinished", + "ChannelHold", + "ChannelUnhold", + "ContactStatusChange", + "EndpointStateChange", + "Dial", + "StasisEnd", + "StasisStart", + "TextMessageReceived", + "ChannelConnectedLine", + "PeerStatusChange" + ] + }, + "ContactInfo": { + "id": "ContactInfo", + "description": "Detailed information about a contact on an endpoint.", + "properties": { + "uri": { + "type": "string", + "description": "The location of the contact.", + "required": true + }, + "contact_status": { + "type": "string", + "description": "The current status of the contact.", + "required": true, + "allowableValues": { + "valueType": "LIST", + "values": [ + "Unreachable", + "Reachable", + "Unknown", + "NonQualified", + "Removed" + ] + } + }, + "aor": { + "type": "string", + "description": "The Address of Record this contact belongs to.", + "required": true + }, + "roundtrip_usec": { + "type": "string", + "description": "Current round trip time, in microseconds, for the contact.", + "required": false + } + } + }, + "Peer": { + "id": "Peer", + "description": "Detailed information about a remote peer that communicates with Asterisk.", + "properties": { + "peer_status": { + "type": "string", + "description": "The current state of the peer. Note that the values of the status are dependent on the underlying peer technology.", + "required": true + }, + "cause": { + "type": "string", + "description": "An optional reason associated with the change in peer_status.", + "required": false + }, + "address": { + "type": "string", + "description": "The IP address of the peer.", + "required": false + }, + "port": { + "type": "string", + "description": "The port of the peer.", + "required": false + }, + "time": { + "type": "string", + "description": "The last known time the peer was contacted.", + "required": false + } + } + }, + "DeviceStateChanged": { + "id": "DeviceStateChanged", + "description": "Notification that a device state has changed.", + "properties": { + "device_state": { + "type": "DeviceState", + "description": "Device state object", + "required": true + } + } + }, + "PlaybackStarted": { + "id": "PlaybackStarted", + "description": "Event showing the start of a media playback operation.", + "properties": { + "playback": { + "type": "Playback", + "description": "Playback control object", + "required": true + } + } + }, + "PlaybackContinuing": { + "id": "PlaybackContinuing", + "description": "Event showing the continuation of a media playback operation from one media URI to the next in the list.", + "properties": { + "playback": { + "type": "Playback", + "description": "Playback control object", + "required": true + } + } + }, + "PlaybackFinished": { + "id": "PlaybackFinished", + "description": "Event showing the completion of a media playback operation.", + "properties": { + "playback": { + "type": "Playback", + "description": "Playback control object", + "required": true + } + } + }, + "RecordingStarted": { + "id": "RecordingStarted", + "description": "Event showing the start of a recording operation.", + "properties": { + "recording": { + "type": "LiveRecording", + "description": "Recording control object", + "required": true + } + } + }, + "RecordingFinished": { + "id": "RecordingFinished", + "description": "Event showing the completion of a recording operation.", + "properties": { + "recording": { + "type": "LiveRecording", + "description": "Recording control object", + "required": true + } + } + }, + "RecordingFailed": { + "id": "RecordingFailed", + "description": "Event showing failure of a recording operation.", + "properties": { + "recording": { + "type": "LiveRecording", + "description": "Recording control object", + "required": true + } + } + }, + "ApplicationMoveFailed": { + "id": "ApplicationMoveFailed", + "description": "Notification that trying to move a channel to another Stasis application failed.", + "properties": { + "channel": { + "required": true, + "type": "Channel" + }, + "destination": { + "required": true, + "type": "string" + }, + "args": { + "required": true, + "type": "List[string]", + "description": "Arguments to the application" + } + } + }, + "ApplicationReplaced": { + "id": "ApplicationReplaced", + "description": "Notification that another WebSocket has taken over for an application.\n\nAn application may only be subscribed to by a single WebSocket at a time. If multiple WebSockets attempt to subscribe to the same application, the newer WebSocket wins, and the older one receives this event.", + "properties": {} + }, + "BridgeCreated": { + "id": "BridgeCreated", + "description": "Notification that a bridge has been created.", + "properties": { + "bridge": { + "required": true, + "type": "Bridge" + } + } + }, + "BridgeDestroyed": { + "id": "BridgeDestroyed", + "description": "Notification that a bridge has been destroyed.", + "properties": { + "bridge": { + "required": true, + "type": "Bridge" + } + } + }, + "BridgeMerged": { + "id": "BridgeMerged", + "description": "Notification that one bridge has merged into another.", + "properties": { + "bridge": { + "required": true, + "type": "Bridge" + }, + "bridge_from": { + "required": true, + "type": "Bridge" + } + } + }, + "BridgeVideoSourceChanged": { + "id": "BridgeVideoSourceChanged", + "description": "Notification that the source of video in a bridge has changed.", + "properties": { + "bridge": { + "required": true, + "type": "Bridge" + }, + "old_video_source_id": { + "required": false, + "type": "string" + } + } + }, + "BridgeBlindTransfer": { + "id": "BridgeBlindTransfer", + "description": "Notification that a blind transfer has occurred.", + "properties": { + "channel": { + "description": "The channel performing the blind transfer", + "required": true, + "type": "Channel" + }, + "replace_channel": { + "description": "The channel that is replacing transferer when the transferee(s) can not be transferred directly", + "required": false, + "type": "Channel" + }, + "transferee": { + "description": "The channel that is being transferred", + "required": false, + "type": "Channel" + }, + "exten": { + "description": "The extension transferred to", + "required": true, + "type": "string" + }, + "context": { + "description": "The context transferred to", + "required": true, + "type": "string" + }, + "result": { + "description": "The result of the transfer attempt", + "required": true, + "type": "string" + }, + "is_external": { + "description": "Whether the transfer was externally initiated or not", + "required": true, + "type": "boolean" + }, + "bridge": { + "description": "The bridge being transferred", + "type": "Bridge" + } + } + }, + "BridgeAttendedTransfer": { + "id": "BridgeAttendedTransfer", + "description": "Notification that an attended transfer has occurred.", + "properties": { + "transferer_first_leg": { + "description": "First leg of the transferer", + "required": true, + "type": "Channel" + }, + "transferer_second_leg": { + "description": "Second leg of the transferer", + "required": true, + "type": "Channel" + }, + "replace_channel": { + "description": "The channel that is replacing transferer_first_leg in the swap", + "required": false, + "type": "Channel" + }, + "transferee": { + "description": "The channel that is being transferred", + "required": false, + "type": "Channel" + }, + "transfer_target": { + "description": "The channel that is being transferred to", + "required": false, + "type": "Channel" + }, + "result": { + "description": "The result of the transfer attempt", + "required": true, + "type": "string" + }, + "is_external": { + "description": "Whether the transfer was externally initiated or not", + "required": true, + "type": "boolean" + }, + "transferer_first_leg_bridge": { + "description": "Bridge the transferer first leg is in", + "type": "Bridge" + }, + "transferer_second_leg_bridge": { + "description": "Bridge the transferer second leg is in", + "type": "Bridge" + }, + "destination_type": { + "description": "How the transfer was accomplished", + "required": true, + "type": "string" + }, + "destination_bridge": { + "description": "Bridge that survived the merge result", + "type": "string" + }, + "destination_application": { + "description": "Application that has been transferred into", + "type": "string" + }, + "destination_link_first_leg": { + "description": "First leg of a link transfer result", + "type": "Channel" + }, + "destination_link_second_leg": { + "description": "Second leg of a link transfer result", + "type": "Channel" + }, + "destination_threeway_channel": { + "description": "Transferer channel that survived the threeway result", + "type": "Channel" + }, + "destination_threeway_bridge": { + "description": "Bridge that survived the threeway result", + "type": "Bridge" + } + } + }, + "ChannelCreated": { + "id": "ChannelCreated", + "description": "Notification that a channel has been created.", + "properties": { + "channel": { + "required": true, + "type": "Channel" + } + } + }, + "ChannelDestroyed": { + "id": "ChannelDestroyed", + "description": "Notification that a channel has been destroyed.", + "properties": { + "cause": { + "required": true, + "description": "Integer representation of the cause of the hangup", + "type": "int" + }, + "cause_txt": { + "required": true, + "description": "Text representation of the cause of the hangup", + "type": "string" + }, + "channel": { + "required": true, + "type": "Channel" + } + } + }, + "ChannelEnteredBridge": { + "id": "ChannelEnteredBridge", + "description": "Notification that a channel has entered a bridge.", + "properties": { + "bridge": { + "required": true, + "type": "Bridge" + }, + "channel": { + "type": "Channel" + } + } + }, + "ChannelLeftBridge": { + "id": "ChannelLeftBridge", + "description": "Notification that a channel has left a bridge.", + "properties": { + "bridge": { + "required": true, + "type": "Bridge" + }, + "channel": { + "required": true, + "type": "Channel" + } + } + }, + "ChannelStateChange": { + "id": "ChannelStateChange", + "description": "Notification of a channel's state change.", + "properties": { + "channel": { + "required": true, + "type": "Channel" + } + } + }, + "ChannelDtmfReceived": { + "id": "ChannelDtmfReceived", + "description": "DTMF received on a channel.\n\nThis event is sent when the DTMF ends. There is no notification about the start of DTMF", + "properties": { + "digit": { + "required": true, + "type": "string", + "description": "DTMF digit received (0-9, A-E, # or *)" + }, + "duration_ms": { + "required": true, + "type": "int", + "description": "Number of milliseconds DTMF was received" + }, + "channel": { + "required": true, + "type": "Channel", + "description": "The channel on which DTMF was received" + } + } + }, + "ChannelDialplan": { + "id": "ChannelDialplan", + "description": "Channel changed location in the dialplan.", + "properties": { + "channel": { + "required": true, + "type": "Channel", + "description": "The channel that changed dialplan location." + }, + "dialplan_app": { + "required": true, + "type": "string", + "description": "The application about to be executed." + }, + "dialplan_app_data": { + "required": true, + "type": "string", + "description": "The data to be passed to the application." + } + } + }, + "ChannelCallerId": { + "id": "ChannelCallerId", + "description": "Channel changed Caller ID.", + "properties": { + "caller_presentation": { + "required": true, + "type": "int", + "description": "The integer representation of the Caller Presentation value." + }, + "caller_presentation_txt": { + "required": true, + "type": "string", + "description": "The text representation of the Caller Presentation value." + }, + "channel": { + "required": true, + "type": "Channel", + "description": "The channel that changed Caller ID." + } + } + }, + "ChannelUserevent": { + "id": "ChannelUserevent", + "description": "User-generated event with additional user-defined fields in the object.", + "properties": { + "eventname": { + "required": true, + "type": "string", + "description": "The name of the user event." + }, + "channel": { + "required": false, + "type": "Channel", + "description": "A channel that is signaled with the user event." + }, + "bridge": { + "required": false, + "type": "Bridge", + "description": "A bridge that is signaled with the user event." + }, + "endpoint": { + "required": false, + "type": "Endpoint", + "description": "A endpoint that is signaled with the user event." + }, + "userevent": { + "required": true, + "type": "object", + "description": "Custom Userevent data" + } + } + }, + "ChannelHangupRequest": { + "id": "ChannelHangupRequest", + "description": "A hangup was requested on the channel.", + "properties": { + "cause": { + "type": "int", + "description": "Integer representation of the cause of the hangup." + }, + "soft": { + "type": "boolean", + "description": "Whether the hangup request was a soft hangup request." + }, + "channel": { + "required": true, + "type": "Channel", + "description": "The channel on which the hangup was requested." + } + } + }, + "ChannelVarset": { + "id": "ChannelVarset", + "description": "Channel variable changed.", + "properties": { + "variable": { + "required": true, + "type": "string", + "description": "The variable that changed." + }, + "value": { + "required": true, + "type": "string", + "description": "The new value of the variable." + }, + "channel": { + "required": false, + "type": "Channel", + "description": "The channel on which the variable was set.\n\nIf missing, the variable is a global variable." + } + } + }, + "ChannelHold": { + "id": "ChannelHold", + "description": "A channel initiated a media hold.", + "properties": { + "channel": { + "required": true, + "type": "Channel", + "description": "The channel that initiated the hold event." + }, + "musicclass": { + "required": false, + "type": "string", + "description": "The music on hold class that the initiator requested." + } + } + }, + "ChannelUnhold": { + "id": "ChannelUnhold", + "description": "A channel initiated a media unhold.", + "properties": { + "channel": { + "required": true, + "type": "Channel", + "description": "The channel that initiated the unhold event." + } + } + }, + "ChannelToneDetected": { + "id": "ChannelToneDetected", + "description": "Tone was detected on the channel.", + "properties": { + "channel": { + "required": true, + "type": "Channel", + "description": "The channel the tone was detected on." + } + } + }, + "ChannelTalkingStarted": { + "id": "ChannelTalkingStarted", + "description": "Talking was detected on the channel.", + "properties": { + "channel": { + "required": true, + "type": "Channel", + "description": "The channel on which talking started." + } + } + }, + "ChannelTalkingFinished": { + "id": "ChannelTalkingFinished", + "description": "Talking is no longer detected on the channel.", + "properties": { + "channel": { + "required": true, + "type": "Channel", + "description": "The channel on which talking completed." + }, + "duration": { + "required": true, + "type": "int", + "description": "The length of time, in milliseconds, that talking was detected on the channel" + } + } + }, + "ContactStatusChange": { + "id": "ContactStatusChange", + "description": "The state of a contact on an endpoint has changed.", + "properties": { + "endpoint": { + "required": true, + "type": "Endpoint" + }, + "contact_info": { + "required": true, + "type": "ContactInfo" + } + } + }, + "PeerStatusChange": { + "id": "PeerStatusChange", + "description": "The state of a peer associated with an endpoint has changed.", + "properties": { + "endpoint": { + "required": true, + "type": "Endpoint" + }, + "peer": { + "required": true, + "type": "Peer" + } + } + }, + "EndpointStateChange": { + "id": "EndpointStateChange", + "description": "Endpoint state changed.", + "properties": { + "endpoint": { + "required": true, + "type": "Endpoint" + } + } + }, + "Dial": { + "id": "Dial", + "description": "Dialing state has changed.", + "properties": { + "caller": { + "required": false, + "type": "Channel", + "description": "The calling channel." + }, + "peer": { + "required": true, + "type": "Channel", + "description": "The dialed channel." + }, + "forward": { + "required": false, + "type": "string", + "description": "Forwarding target requested by the original dialed channel." + }, + "forwarded": { + "required": false, + "type": "Channel", + "description": "Channel that the caller has been forwarded to." + }, + "dialstring": { + "required": false, + "type": "string", + "description": "The dial string for calling the peer channel." + }, + "dialstatus": { + "required": true, + "type": "string", + "description": "Current status of the dialing attempt to the peer." + } + } + }, + "StasisEnd": { + "id": "StasisEnd", + "description": "Notification that a channel has left a Stasis application.", + "properties": { + "channel": { + "required": true, + "type": "Channel" + } + } + }, + "StasisStart": { + "id": "StasisStart", + "description": "Notification that a channel has entered a Stasis application.", + "properties": { + "args": { + "required": true, + "type": "List[string]", + "description": "Arguments to the application" + }, + "channel": { + "required": true, + "type": "Channel" + }, + "replace_channel": { + "required": false, + "type": "Channel" + } + } + }, + "TextMessageReceived": { + "id": "TextMessageReceived", + "description": "A text message was received from an endpoint.", + "properties": { + "message": { + "required": true, + "type": "TextMessage" + }, + "endpoint": { + "required": false, + "type": "Endpoint" + } + } + }, + "ChannelConnectedLine": { + "id": "ChannelConnectedLine", + "description": "Channel changed Connected Line.", + "properties": { + "channel": { + "required": true, + "type": "Channel", + "description": "The channel whose connected line has changed." + } + } + } + } +} diff --git a/codegen/src/main/resources/codegen-data/ari_10_0_0/mailboxes.json b/codegen/src/main/resources/codegen-data/ari_10_0_0/mailboxes.json new file mode 100644 index 00000000..8f5941b8 --- /dev/null +++ b/codegen/src/main/resources/codegen-data/ari_10_0_0/mailboxes.json @@ -0,0 +1,137 @@ +{ + "_copyright": "Copyright (C) 2013, Digium, Inc.", + "_author": "Jonathan Rose ", + "_svn_revision": "$Revision$", + "apiVersion": "2.0.0", + "swaggerVersion": "1.1", + "basePath": "http://localhost:8088/ari", + "resourcePath": "/api-docs/mailboxes.{format}", + "requiresModules": [ + "res_stasis_mailbox" + ], + "apis": [ + { + "path": "/mailboxes", + "description": "Mailboxes", + "operations": [ + { + "httpMethod": "GET", + "summary": "List all mailboxes.", + "nickname": "list", + "responseClass": "List[Mailbox]" + } + ] + }, + { + "path": "/mailboxes/{mailboxName}", + "description": "Mailbox state", + "operations": [ + { + "httpMethod": "GET", + "summary": "Retrieve the current state of a mailbox.", + "nickname": "get", + "responseClass": "Mailbox", + "parameters": [ + { + "name": "mailboxName", + "description": "Name of the mailbox", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Mailbox not found" + } + ] + }, + { + "httpMethod": "PUT", + "summary": "Change the state of a mailbox. (Note - implicitly creates the mailbox).", + "nickname": "update", + "responseClass": "void", + "parameters": [ + { + "name": "mailboxName", + "description": "Name of the mailbox", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "oldMessages", + "description": "Count of old messages in the mailbox", + "paramType": "query", + "required": true, + "allowMultiple": false, + "dataType": "int" + }, + { + "name": "newMessages", + "description": "Count of new messages in the mailbox", + "paramType": "query", + "required": true, + "allowMultiple": false, + "dataType": "int" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Mailbox not found" + } + ] + }, + { + "httpMethod": "DELETE", + "summary": "Destroy a mailbox.", + "nickname": "delete", + "responseClass": "void", + "parameters": [ + { + "name": "mailboxName", + "description": "Name of the mailbox", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Mailbox not found" + } + ] + } + ] + } + ], + "models": { + "Mailbox": { + "id": "Mailbox", + "description": "Represents the state of a mailbox.", + "properties": { + "name": { + "type": "string", + "description": "Name of the mailbox.", + "required": true + }, + "old_messages": { + "type": "int", + "description": "Count of old messages in the mailbox.", + "required": true + }, + "new_messages": { + "type": "int", + "description": "Count of new messages in the mailbox.", + "required": true + } + } + } + } +} diff --git a/codegen/src/main/resources/codegen-data/ari_10_0_0/playbacks.json b/codegen/src/main/resources/codegen-data/ari_10_0_0/playbacks.json new file mode 100644 index 00000000..793986fc --- /dev/null +++ b/codegen/src/main/resources/codegen-data/ari_10_0_0/playbacks.json @@ -0,0 +1,165 @@ +{ + "_copyright": "Copyright (C) 2012 - 2013, Digium, Inc.", + "_author": "David M. Lee, II ", + "_svn_revision": "$Revision$", + "apiVersion": "2.0.0", + "swaggerVersion": "1.1", + "basePath": "http://localhost:8088/ari", + "resourcePath": "/api-docs/playbacks.{format}", + "requiresModules": [ + "res_stasis_playback" + ], + "apis": [ + { + "path": "/playbacks/{playbackId}", + "description": "Control object for a playback operation.", + "operations": [ + { + "httpMethod": "GET", + "summary": "Get a playback's details.", + "nickname": "get", + "responseClass": "Playback", + "parameters": [ + { + "name": "playbackId", + "description": "Playback's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "The playback cannot be found" + } + ] + }, + { + "httpMethod": "DELETE", + "summary": "Stop a playback.", + "nickname": "stop", + "responseClass": "void", + "parameters": [ + { + "name": "playbackId", + "description": "Playback's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "The playback cannot be found" + } + ] + } + ] + }, + { + "path": "/playbacks/{playbackId}/control", + "description": "Control object for a playback operation.", + "operations": [ + { + "httpMethod": "POST", + "summary": "Control a playback.", + "nickname": "control", + "responseClass": "void", + "parameters": [ + { + "name": "playbackId", + "description": "Playback's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "operation", + "description": "Operation to perform on the playback.", + "paramType": "query", + "required": true, + "allowMultiple": false, + "dataType": "string", + "allowableValues": { + "valueType": "LIST", + "values": [ + "restart", + "pause", + "unpause", + "reverse", + "forward" + ] + } + } + ], + "errorResponses": [ + { + "code": 400, + "reason": "The provided operation parameter was invalid" + }, + { + "code": 404, + "reason": "The playback cannot be found" + }, + { + "code": 409, + "reason": "The operation cannot be performed in the playback's current state" + } +] + } + ] + } + ], + "models": { + "Playback": { + "id": "Playback", + "description": "Object representing the playback of media to a channel", + "properties": { + "id": { + "type": "string", + "description": "ID for this playback operation", + "required": true + }, + "media_uri": { + "type": "string", + "description": "The URI for the media currently being played back.", + "required": true + }, + "next_media_uri": { + "type": "string", + "description": "If a list of URIs is being played, the next media URI to be played back.", + "required": false + }, + "target_uri": { + "type": "string", + "description": "URI for the channel or bridge to play the media on", + "required": true + }, + "language": { + "type": "string", + "description": "For media types that support multiple languages, the language requested for playback." + }, + "state": { + "type": "string", + "description": "Current state of the playback operation.", + "required": true, + "allowableValues": { + "valueType": "LIST", + "values": [ + "queued", + "playing", + "continuing", + "done", + "failed" + ] + } + } + } + } + } +} diff --git a/codegen/src/main/resources/codegen-data/ari_10_0_0/recordings.json b/codegen/src/main/resources/codegen-data/ari_10_0_0/recordings.json new file mode 100644 index 00000000..6ffd6d8e --- /dev/null +++ b/codegen/src/main/resources/codegen-data/ari_10_0_0/recordings.json @@ -0,0 +1,413 @@ +{ + "_copyright": "Copyright (C) 2012 - 2013, Digium, Inc.", + "_author": "David M. Lee, II ", + "_svn_revision": "$Revision$", + "apiVersion": "2.0.0", + "swaggerVersion": "1.1", + "basePath": "http://localhost:8088/ari", + "resourcePath": "/api-docs/recordings.{format}", + "requiresModules": [ + "res_stasis_recording" + ], + "apis": [ + { + "path": "/recordings/stored", + "description": "Recordings", + "operations": [ + { + "httpMethod": "GET", + "summary": "List recordings that are complete.", + "nickname": "listStored", + "responseClass": "List[StoredRecording]" + } + ] + }, + { + "path": "/recordings/stored/{recordingName}", + "description": "Individual recording", + "operations": [ + { + "httpMethod": "GET", + "summary": "Get a stored recording's details.", + "nickname": "getStored", + "responseClass": "StoredRecording", + "parameters": [ + { + "name": "recordingName", + "description": "The name of the recording", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Recording not found" + } + ] + }, + { + "httpMethod": "DELETE", + "summary": "Delete a stored recording.", + "nickname": "deleteStored", + "responseClass": "void", + "parameters": [ + { + "name": "recordingName", + "description": "The name of the recording", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Recording not found" + } + ] + } + ] + }, + { + "path": "/recordings/stored/{recordingName}/file", + "description": "The actual file associated with the stored recording", + "operations": [ + { + "httpMethod": "GET", + "summary": "Get the file associated with the stored recording.", + "nickname": "getStoredFile", + "responseClass": "binary", + "parameters": [ + { + "name": "recordingName", + "description": "The name of the recording", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 403, + "reason": "The recording file could not be opened" + }, + { + "code": 404, + "reason": "Recording not found" + } + ] + } + ] + }, + { + "path": "/recordings/stored/{recordingName}/copy", + "description": "Copy an individual recording", + "operations": [ + { + "httpMethod": "POST", + "summary": "Copy a stored recording.", + "nickname": "copyStored", + "responseClass": "StoredRecording", + "parameters": [ + { + "name": "recordingName", + "description": "The name of the recording to copy", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "destinationRecordingName", + "description": "The destination name of the recording", + "paramType": "query", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Recording not found" + }, + { + "code": 409, + "reason": "A recording with the same name already exists on the system" + } + ] + } + ] + }, + { + "path": "/recordings/live/{recordingName}", + "description": "A recording that is in progress", + "operations": [ + { + "httpMethod": "GET", + "summary": "List live recordings.", + "nickname": "getLive", + "responseClass": "LiveRecording", + "parameters": [ + { + "name": "recordingName", + "description": "The name of the recording", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Recording not found" + } + ] + }, + { + "httpMethod": "DELETE", + "summary": "Stop a live recording and discard it.", + "nickname": "cancel", + "responseClass": "void", + "parameters": [ + { + "name": "recordingName", + "description": "The name of the recording", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Recording not found" + } + ] + } + ] + }, + { + "path": "/recordings/live/{recordingName}/stop", + "operations": [ + { + "httpMethod": "POST", + "summary": "Stop a live recording and store it.", + "nickname": "stop", + "responseClass": "void", + "parameters": [ + { + "name": "recordingName", + "description": "The name of the recording", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Recording not found" + } + ] + } + ] + }, + { + "path": "/recordings/live/{recordingName}/pause", + "operations": [ + { + "httpMethod": "POST", + "summary": "Pause a live recording.", + "notes": "Pausing a recording suspends silence detection, which will be restarted when the recording is unpaused. Paused time is not included in the accounting for maxDurationSeconds.", + "nickname": "pause", + "responseClass": "void", + "parameters": [ + { + "name": "recordingName", + "description": "The name of the recording", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Recording not found" + }, + { + "code": 409, + "reason": "Recording not in session" + } + ] + }, + { + "httpMethod": "DELETE", + "summary": "Unpause a live recording.", + "nickname": "unpause", + "responseClass": "void", + "parameters": [ + { + "name": "recordingName", + "description": "The name of the recording", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Recording not found" + }, + { + "code": 409, + "reason": "Recording not in session" + } + ] + } + ] + }, + { + "path": "/recordings/live/{recordingName}/mute", + "operations": [ + { + "httpMethod": "POST", + "summary": "Mute a live recording.", + "notes": "Muting a recording suspends silence detection, which will be restarted when the recording is unmuted.", + "nickname": "mute", + "responseClass": "void", + "parameters": [ + { + "name": "recordingName", + "description": "The name of the recording", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Recording not found" + }, + { + "code": 409, + "reason": "Recording not in session" + } + ] + }, + { + "httpMethod": "DELETE", + "summary": "Unmute a live recording.", + "nickname": "unmute", + "responseClass": "void", + "parameters": [ + { + "name": "recordingName", + "description": "The name of the recording", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Recording not found" + }, + { + "code": 409, + "reason": "Recording not in session" + } + ] + } + ] + } + ], + "models": { + "StoredRecording": { + "id": "StoredRecording", + "description": "A past recording that may be played back.", + "properties": { + "name": { + "required": true, + "type": "string" + }, + "format": { + "required": true, + "type": "string" + } + } + }, + "LiveRecording": { + "id": "LiveRecording", + "description": "A recording that is in progress", + "properties": { + "name": { + "required": true, + "type": "string", + "description": "Base name for the recording" + }, + "format": { + "required": true, + "type": "string", + "description": "Recording format (wav, gsm, etc.)" + }, + "target_uri": { + "required": true, + "type": "string", + "description": "URI for the channel or bridge being recorded" + }, + "state": { + "required": true, + "type": "string", + "allowableValues": { + "valueType": "LIST", + "values": [ + "queued", + "recording", + "paused", + "done", + "failed", + "canceled" + ] + } + }, + "duration": { + "required": false, + "type": "int", + "description": "Duration in seconds of the recording" + }, + "talking_duration": { + "required": false, + "type": "int", + "description": "Duration of talking, in seconds, detected in the recording. This is only available if the recording was initiated with a non-zero maxSilenceSeconds." + }, + "silence_duration": { + "required": false, + "type": "int", + "description": "Duration of silence, in seconds, detected in the recording. This is only available if the recording was initiated with a non-zero maxSilenceSeconds." + }, + "cause": { + "required": false, + "type": "string", + "description": "Cause for recording failure if failed" + } + } + } + } +} diff --git a/codegen/src/main/resources/codegen-data/ari_10_0_0/sounds.json b/codegen/src/main/resources/codegen-data/ari_10_0_0/sounds.json new file mode 100644 index 00000000..8fbe1c57 --- /dev/null +++ b/codegen/src/main/resources/codegen-data/ari_10_0_0/sounds.json @@ -0,0 +1,99 @@ +{ + "_copyright": "Copyright (C) 2012 - 2013, Digium, Inc.", + "_author": "David M. Lee, II ", + "_svn_revision": "$Revision$", + "apiVersion": "2.0.0", + "swaggerVersion": "1.1", + "basePath": "http://localhost:8088/ari", + "resourcePath": "/api-docs/sounds.{format}", + "apis": [ + { + "path": "/sounds", + "description": "Sounds", + "operations": [ + { + "httpMethod": "GET", + "summary": "List all sounds.", + "nickname": "list", + "responseClass": "List[Sound]", + "parameters": [ + { + "name": "lang", + "description": "Lookup sound for a specific language.", + "paramType": "query", + "dataType": "string", + "required": false + }, + { + "name": "format", + "description": "Lookup sound in a specific format.", + "paramType": "query", + "dataType": "string", + "required": false, + "__note": "core show translation can show translation paths between formats, along with relative costs. so this could be just installed format, or we could follow that for transcoded formats." + } + ] + } + ] + }, + { + "path": "/sounds/{soundId}", + "description": "Individual sound", + "operations": [ + { + "httpMethod": "GET", + "summary": "Get a sound's details.", + "nickname": "get", + "responseClass": "Sound", + "parameters": [ + { + "name": "soundId", + "description": "Sound's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ] + } + ] + } + ], + "models": { + "FormatLangPair": { + "id": "FormatLangPair", + "description": "Identifies the format and language of a sound file", + "properties": { + "language": { + "required": true, + "type": "string" + }, + "format": { + "required": true, + "type": "string" + } + } + }, + "Sound": { + "id": "Sound", + "description": "A media file that may be played back.", + "properties": { + "id": { + "required": true, + "description": "Sound's identifier.", + "type": "string" + }, + "text": { + "required": false, + "description": "Text description of the sound, usually the words spoken.", + "type": "string" + }, + "formats": { + "required": true, + "description": "The formats and languages in which this sound is available.", + "type": "List[FormatLangPair]" + } + } + } + } +} diff --git a/codegen/src/main/resources/codegen-data/ari_6_0_0/channels.json b/codegen/src/main/resources/codegen-data/ari_6_0_0/channels.json index 04d15773..8d878a13 100644 --- a/codegen/src/main/resources/codegen-data/ari_6_0_0/channels.json +++ b/codegen/src/main/resources/codegen-data/ari_6_0_0/channels.json @@ -2182,6 +2182,11 @@ "required": false, "type": "object", "description": "Channel variables" + }, + "tenantid": { + "required": false, + "type": "string", + "description": "The Tenant ID for the channel" } } } diff --git a/codegen/src/main/resources/codegen-data/ari_6_0_1/channels.json b/codegen/src/main/resources/codegen-data/ari_6_0_1/channels.json index 1b49329f..2a1d0a0c 100644 --- a/codegen/src/main/resources/codegen-data/ari_6_0_1/channels.json +++ b/codegen/src/main/resources/codegen-data/ari_6_0_1/channels.json @@ -2191,6 +2191,11 @@ "caller_rdnis": { "type": "string", "description": "The Caller ID RDNIS" + }, + "tenantid": { + "required": false, + "type": "string", + "description": "The Tenant ID for the channel" } } } diff --git a/codegen/src/main/resources/codegen-data/ari_8_0_0/channels.json b/codegen/src/main/resources/codegen-data/ari_8_0_0/channels.json index 1b49329f..2a1d0a0c 100644 --- a/codegen/src/main/resources/codegen-data/ari_8_0_0/channels.json +++ b/codegen/src/main/resources/codegen-data/ari_8_0_0/channels.json @@ -2191,6 +2191,11 @@ "caller_rdnis": { "type": "string", "description": "The Caller ID RDNIS" + }, + "tenantid": { + "required": false, + "type": "string", + "description": "The Tenant ID for the channel" } } } diff --git a/codegen/src/main/resources/codegen-data/ari_9_0_0/channels.json b/codegen/src/main/resources/codegen-data/ari_9_0_0/channels.json index 3f8e173a..ab4a0421 100644 --- a/codegen/src/main/resources/codegen-data/ari_9_0_0/channels.json +++ b/codegen/src/main/resources/codegen-data/ari_9_0_0/channels.json @@ -2191,6 +2191,11 @@ "caller_rdnis": { "type": "string", "description": "The Caller ID RDNIS" + }, + "tenantid": { + "required": false, + "type": "string", + "description": "The Tenant ID for the channel" } } } From 551a31538aa3281b66ec5f9dee2e21a734dcd475 Mon Sep 17 00:00:00 2001 From: grahambrown11 <771817+grahambrown11@users.noreply.github.com> Date: Mon, 10 Nov 2025 14:05:23 +0000 Subject: [PATCH 214/220] ARI API Updates --- .../codegen-data/ari_10_0_0/applications.json | 19 + .../codegen-data/ari_10_0_0/asterisk.json | 52 + .../codegen-data/ari_10_0_0/bridges.json | 94 +- .../codegen-data/ari_10_0_0/channels.json | 214 +- .../codegen-data/ari_10_0_0/deviceStates.json | 15 + .../codegen-data/ari_10_0_0/endpoints.json | 26 + .../codegen-data/ari_10_0_0/events.json | 256 +- .../codegen-data/ari_10_0_0/mailboxes.json | 15 + .../codegen-data/ari_10_0_0/playbacks.json | 12 + .../codegen-data/ari_10_0_0/recordings.json | 39 + .../codegen-data/ari_10_0_0/sounds.json | 9 + .../codegen-data/ari_11_0_0/applications.json | 242 ++ .../codegen-data/ari_11_0_0/asterisk.json | 777 ++++++ .../codegen-data/ari_11_0_0/bridges.json | 864 ++++++ .../codegen-data/ari_11_0_0/channels.json | 2399 +++++++++++++++++ .../codegen-data/ari_11_0_0/deviceStates.json | 169 ++ .../codegen-data/ari_11_0_0/endpoints.json | 423 +++ .../codegen-data/ari_11_0_0/events.json | 1184 ++++++++ .../codegen-data/ari_11_0_0/mailboxes.json | 152 ++ .../codegen-data/ari_11_0_0/playbacks.json | 177 ++ .../codegen-data/ari_11_0_0/recordings.json | 452 ++++ .../codegen-data/ari_11_0_0/sounds.json | 108 + .../codegen-data/ari_6_0_0/channels.json | 2 +- .../codegen-data/ari_8_0_0/applications.json | 19 + .../codegen-data/ari_8_0_0/asterisk.json | 52 + .../codegen-data/ari_8_0_0/bridges.json | 94 +- .../codegen-data/ari_8_0_0/channels.json | 214 +- .../codegen-data/ari_8_0_0/deviceStates.json | 15 + .../codegen-data/ari_8_0_0/endpoints.json | 26 + .../codegen-data/ari_8_0_0/events.json | 256 +- .../codegen-data/ari_8_0_0/mailboxes.json | 15 + .../codegen-data/ari_8_0_0/playbacks.json | 12 + .../codegen-data/ari_8_0_0/recordings.json | 39 + .../codegen-data/ari_8_0_0/sounds.json | 9 + .../codegen-data/ari_9_0_0/applications.json | 19 + .../codegen-data/ari_9_0_0/asterisk.json | 52 + .../codegen-data/ari_9_0_0/bridges.json | 61 +- .../codegen-data/ari_9_0_0/channels.json | 214 +- .../codegen-data/ari_9_0_0/deviceStates.json | 15 + .../codegen-data/ari_9_0_0/endpoints.json | 26 + .../codegen-data/ari_9_0_0/events.json | 248 +- .../codegen-data/ari_9_0_0/mailboxes.json | 15 + .../codegen-data/ari_9_0_0/playbacks.json | 12 + .../codegen-data/ari_9_0_0/recordings.json | 39 + .../codegen-data/ari_9_0_0/sounds.json | 9 + 45 files changed, 9125 insertions(+), 36 deletions(-) create mode 100644 codegen/src/main/resources/codegen-data/ari_11_0_0/applications.json create mode 100644 codegen/src/main/resources/codegen-data/ari_11_0_0/asterisk.json create mode 100644 codegen/src/main/resources/codegen-data/ari_11_0_0/bridges.json create mode 100644 codegen/src/main/resources/codegen-data/ari_11_0_0/channels.json create mode 100644 codegen/src/main/resources/codegen-data/ari_11_0_0/deviceStates.json create mode 100644 codegen/src/main/resources/codegen-data/ari_11_0_0/endpoints.json create mode 100644 codegen/src/main/resources/codegen-data/ari_11_0_0/events.json create mode 100644 codegen/src/main/resources/codegen-data/ari_11_0_0/mailboxes.json create mode 100644 codegen/src/main/resources/codegen-data/ari_11_0_0/playbacks.json create mode 100644 codegen/src/main/resources/codegen-data/ari_11_0_0/recordings.json create mode 100644 codegen/src/main/resources/codegen-data/ari_11_0_0/sounds.json diff --git a/codegen/src/main/resources/codegen-data/ari_10_0_0/applications.json b/codegen/src/main/resources/codegen-data/ari_10_0_0/applications.json index 09c5cd5c..8ad9f36d 100644 --- a/codegen/src/main/resources/codegen-data/ari_10_0_0/applications.json +++ b/codegen/src/main/resources/codegen-data/ari_10_0_0/applications.json @@ -6,6 +6,9 @@ "swaggerVersion": "1.1", "basePath": "http://localhost:8088/ari", "resourcePath": "/api-docs/applications.{format}", + "since": [ + "13.0.0" + ], "apis": [ { "path": "/applications", @@ -13,6 +16,9 @@ "operations": [ { "httpMethod": "GET", + "since": [ + "13.0.0" + ], "summary": "List all applications.", "nickname": "list", "responseClass": "List[Application]" @@ -25,6 +31,9 @@ "operations": [ { "httpMethod": "GET", + "since": [ + "13.0.0" + ], "summary": "Get details of an application.", "nickname": "get", "responseClass": "Application", @@ -53,6 +62,9 @@ "operations": [ { "httpMethod": "POST", + "since": [ + "13.0.0" + ], "summary": "Subscribe an application to a event source.", "notes": "Returns the state of the application after the subscriptions have changed", "nickname": "subscribe", @@ -92,6 +104,9 @@ }, { "httpMethod": "DELETE", + "since": [ + "13.0.0" + ], "summary": "Unsubscribe an application from an event source.", "notes": "Returns the state of the application after the subscriptions have changed", "nickname": "unsubscribe", @@ -141,6 +156,10 @@ "operations": [ { "httpMethod": "PUT", + "since": [ + "13.26.0", + "16.3.0" + ], "summary": "Filter application events types.", "notes": "Allowed and/or disallowed event type filtering can be done. The body (parameter) should specify a JSON key/value object that describes the type of event filtering needed. One, or both of the following keys can be designated:

\"allowed\" - Specifies an allowed list of event types
\"disallowed\" - Specifies a disallowed list of event types

Further, each of those key's value should be a JSON array that holds zero, or more JSON key/value objects. Each of these objects must contain the following key with an associated value:

\"type\" - The type name of the event to filter

The value must be the string name (case sensitive) of the event type that needs filtering. For example:

{ \"allowed\": [ { \"type\": \"StasisStart\" }, { \"type\": \"StasisEnd\" } ] }

As this specifies only an allowed list, then only those two event type messages are sent to the application. No other event messages are sent.

The following rules apply:

* If the body is empty, both the allowed and disallowed filters are set empty.
* If both list types are given then both are set to their respective values (note, specifying an empty array for a given type sets that type to empty).
* If only one list type is given then only that type is set. The other type is not updated.
* An empty \"allowed\" list means all events are allowed.
* An empty \"disallowed\" list means no events are disallowed.
* Disallowed events take precedence over allowed events if the event type is specified in both lists.", "nickname": "filter", diff --git a/codegen/src/main/resources/codegen-data/ari_10_0_0/asterisk.json b/codegen/src/main/resources/codegen-data/ari_10_0_0/asterisk.json index 841e6cd8..83fef8b7 100644 --- a/codegen/src/main/resources/codegen-data/ari_10_0_0/asterisk.json +++ b/codegen/src/main/resources/codegen-data/ari_10_0_0/asterisk.json @@ -6,6 +6,9 @@ "swaggerVersion": "1.1", "basePath": "http://localhost:8088/ari", "resourcePath": "/api-docs/asterisk.{format}", + "since": [ + "12.0.0" + ], "apis": [ { "path": "/asterisk/config/dynamic/{configClass}/{objectType}/{id}", @@ -13,6 +16,9 @@ "operations": [ { "httpMethod": "GET", + "since": [ + "13.5.0" + ], "summary": "Retrieve a dynamic configuration object.", "nickname": "getObject", "responseClass": "List[ConfigTuple]", @@ -51,6 +57,9 @@ }, { "httpMethod": "PUT", + "since": [ + "13.5.0" + ], "summary": "Create or update a dynamic configuration object.", "nickname": "updateObject", "responseClass": "List[ConfigTuple]", @@ -105,6 +114,9 @@ }, { "httpMethod": "DELETE", + "since": [ + "13.5.0" + ], "summary": "Delete a dynamic configuration object.", "nickname": "deleteObject", "responseClass": "void", @@ -153,6 +165,9 @@ "operations": [ { "httpMethod": "GET", + "since": [ + "12.0.0" + ], "summary": "Gets Asterisk system information.", "nickname": "getInfo", "responseClass": "AsteriskInfo", @@ -184,6 +199,10 @@ "operations": [ { "httpMethod": "GET", + "since": [ + "13.25.0", + "16.2.0" + ], "summary": "Response pong message.", "nickname": "ping", "responseClass": "AsteriskPing" @@ -196,6 +215,9 @@ "operations": [ { "httpMethod": "GET", + "since": [ + "13.5.0" + ], "summary": "List Asterisk modules.", "nickname": "listModules", "responseClass": "List[Module]" @@ -208,6 +230,9 @@ "operations": [ { "httpMethod": "GET", + "since": [ + "13.5.0" + ], "summary": "Get Asterisk module information.", "nickname": "getModule", "responseClass": "Module", @@ -234,6 +259,9 @@ }, { "httpMethod": "POST", + "since": [ + "13.5.0" + ], "summary": "Load an Asterisk module.", "nickname": "loadModule", "responseClass": "void", @@ -256,6 +284,9 @@ }, { "httpMethod": "DELETE", + "since": [ + "13.5.0" + ], "summary": "Unload an Asterisk module.", "nickname": "unloadModule", "responseClass": "void", @@ -282,6 +313,9 @@ }, { "httpMethod": "PUT", + "since": [ + "13.5.0" + ], "summary": "Reload an Asterisk module.", "nickname": "reloadModule", "responseClass": "void", @@ -314,6 +348,9 @@ "operations": [ { "httpMethod": "GET", + "since": [ + "13.6.0" + ], "summary": "Gets Asterisk log channel information.", "nickname": "listLogChannels", "responseClass": "List[LogChannel]" @@ -326,6 +363,9 @@ "operations": [ { "httpMethod": "POST", + "since": [ + "13.6.0" + ], "summary": "Adds a log channel.", "nickname": "addLog", "responseClass": "void", @@ -360,6 +400,9 @@ }, { "httpMethod": "DELETE", + "since": [ + "13.6.0" + ], "summary": "Deletes a log channel.", "nickname": "deleteLog", "responseClass": "void", @@ -388,6 +431,9 @@ "operations": [ { "httpMethod": "PUT", + "since": [ + "13.6.0" + ], "summary": "Rotates a log channel.", "nickname": "rotateLog", "responseClass": "void", @@ -416,6 +462,9 @@ "operations": [ { "httpMethod": "GET", + "since": [ + "12.0.0" + ], "summary": "Get the value of a global variable.", "nickname": "getGlobalVar", "responseClass": "Variable", @@ -438,6 +487,9 @@ }, { "httpMethod": "POST", + "since": [ + "12.0.0" + ], "summary": "Set the value of a global variable.", "nickname": "setGlobalVar", "responseClass": "void", diff --git a/codegen/src/main/resources/codegen-data/ari_10_0_0/bridges.json b/codegen/src/main/resources/codegen-data/ari_10_0_0/bridges.json index 636d2540..ae5ee56f 100644 --- a/codegen/src/main/resources/codegen-data/ari_10_0_0/bridges.json +++ b/codegen/src/main/resources/codegen-data/ari_10_0_0/bridges.json @@ -6,6 +6,9 @@ "swaggerVersion": "1.1", "basePath": "http://localhost:8088/ari", "resourcePath": "/api-docs/bridges.{format}", + "since": [ + "12.0.0" + ], "requiresModules": [ "res_stasis_recording", "res_stasis_playback" @@ -17,12 +20,18 @@ "operations": [ { "httpMethod": "GET", + "since": [ + "12.0.0" + ], "summary": "List all active bridges in Asterisk.", "nickname": "list", "responseClass": "List[Bridge]" }, { "httpMethod": "POST", + "since": [ + "12.0.0" + ], "summary": "Create a new bridge.", "notes": "This bridge persists until it has been shut down, or Asterisk has been shut down.", "nickname": "create", @@ -52,6 +61,12 @@ "allowMultiple": false, "dataType": "string" } + ], + "errorResponses": [ + { + "code": 409, + "reason": "Bridge with the same bridgeId already exists" + } ] } ] @@ -62,7 +77,10 @@ "operations": [ { "httpMethod": "POST", - "summary": "Create a new bridge or updates an existing one.", + "since": [ + "12.2.0" + ], + "summary": "Create a new bridge.", "notes": "This bridge persists until it has been shut down, or Asterisk has been shut down.", "nickname": "createWithId", "responseClass": "Bridge", @@ -91,10 +109,19 @@ "allowMultiple": false, "dataType": "string" } + ], + "errorResponses": [ + { + "code": 409, + "reason": "Bridge with the same bridgeId already exists" + } ] }, { "httpMethod": "GET", + "since": [ + "12.0.0" + ], "summary": "Get bridge details.", "nickname": "get", "responseClass": "Bridge", @@ -117,6 +144,9 @@ }, { "httpMethod": "DELETE", + "since": [ + "12.0.0" + ], "summary": "Shut down a bridge.", "notes": "If any channels are in this bridge, they will be removed and resume whatever they were doing beforehand.", "nickname": "destroy", @@ -146,6 +176,9 @@ "operations": [ { "httpMethod": "POST", + "since": [ + "12.0.0" + ], "summary": "Add a channel to a bridge.", "nickname": "addChannel", "responseClass": "void", @@ -229,6 +262,9 @@ "operations": [ { "httpMethod": "POST", + "since": [ + "12.0.0" + ], "summary": "Remove a channel from a bridge.", "nickname": "removeChannel", "responseClass": "void", @@ -277,6 +313,10 @@ "operations": [ { "httpMethod": "POST", + "since": [ + "13.13.0", + "14.2.0" + ], "summary": "Set a channel as the video source in a multi-party mixing bridge. This operation has no effect on bridges with two or fewer participants.", "nickname": "setVideoSource", "responseClass": "void", @@ -321,6 +361,10 @@ "operations": [ { "httpMethod": "DELETE", + "since": [ + "13.13.0", + "14.2.0" + ], "summary": "Removes any explicit video source in a multi-party mixing bridge. This operation has no effect on bridges with two or fewer participants. When no explicit video source is set, talk detection will be used to determine the active video stream.", "nickname": "clearVideoSource", "responseClass": "void", @@ -349,6 +393,9 @@ "operations": [ { "httpMethod": "POST", + "since": [ + "12.0.0" + ], "summary": "Play music on hold to a bridge or change the MOH class that is playing.", "nickname": "startMoh", "responseClass": "void", @@ -383,6 +430,9 @@ }, { "httpMethod": "DELETE", + "since": [ + "12.0.0" + ], "summary": "Stop playing music on hold to a bridge.", "notes": "This will only stop music on hold being played via POST bridges/{bridgeId}/moh.", "nickname": "stopMoh", @@ -416,6 +466,9 @@ "operations": [ { "httpMethod": "POST", + "since": [ + "12.0.0" + ], "summary": "Start playback of media on a bridge.", "notes": "The media URI may be any of a number of URI's. Currently sound:, recording:, number:, digits:, characters:, and tone: URI's are supported. This operation creates a playback resource that can be used to control the playback of media (pause, rewind, fast forward, etc.)", "nickname": "play", @@ -437,6 +490,14 @@ "allowMultiple": true, "dataType": "string" }, + { + "name": "announcer_format", + "description": "Format of the 'Anouncer' channel attached to the bridge. Defaults to the format of the channel in the bridge with the highest sampe rate.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, { "name": "lang", "description": "For sounds, selects language for sound.", @@ -457,7 +518,6 @@ "valueType": "RANGE", "min": 0 } - }, { "name": "skipms", @@ -489,6 +549,10 @@ { "code": 409, "reason": "Bridge not in a Stasis application" + }, + { + "code": 422, + "reason": "The format specified is unknown on this system" } ] } @@ -500,6 +564,9 @@ "operations": [ { "httpMethod": "POST", + "since": [ + "12.3.0" + ], "summary": "Start playback of media on a bridge.", "notes": "The media URI may be any of a number of URI's. Currently sound:, recording:, number:, digits:, characters:, and tone: URI's are supported. This operation creates a playback resource that can be used to control the playback of media (pause, rewind, fast forward, etc.)", "nickname": "playWithId", @@ -529,6 +596,14 @@ "allowMultiple": true, "dataType": "string" }, + { + "name": "announcer_format", + "description": "Format of the 'Anouncer' channel attached to the bridge. Defaults to the format of the channel in the bridge with the highest sampe rate.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, { "name": "lang", "description": "For sounds, selects language for sound.", @@ -572,6 +647,10 @@ { "code": 409, "reason": "Bridge not in a Stasis application" + }, + { + "code": 422, + "reason": "The format specified is unknown on this system" } ] @@ -584,6 +663,9 @@ "operations": [ { "httpMethod": "POST", + "since": [ + "12.0.0" + ], "summary": "Start a recording.", "notes": "This records the mixed audio from all channels participating in this bridge.", "nickname": "record", @@ -613,6 +695,14 @@ "allowMultiple": false, "dataType": "string" }, + { + "name": "recorder_format", + "description": "Format of the 'Recorder' channel attached to the bridge. Defaults to the same format as the 'format' parameter.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, { "name": "maxDurationSeconds", "description": "Maximum duration of the recording, in seconds. 0 for no limit.", diff --git a/codegen/src/main/resources/codegen-data/ari_10_0_0/channels.json b/codegen/src/main/resources/codegen-data/ari_10_0_0/channels.json index ab4a0421..a50b8720 100644 --- a/codegen/src/main/resources/codegen-data/ari_10_0_0/channels.json +++ b/codegen/src/main/resources/codegen-data/ari_10_0_0/channels.json @@ -6,6 +6,9 @@ "swaggerVersion": "1.1", "basePath": "http://localhost:8088/ari", "resourcePath": "/api-docs/channels.{format}", + "since": [ + "12.0.0" + ], "requiresModules": [ "res_stasis_answer", "res_stasis_playback", @@ -19,12 +22,18 @@ "operations": [ { "httpMethod": "GET", + "since": [ + "12.0.0" + ], "summary": "List all active channels in Asterisk.", "nickname": "list", "responseClass": "List[Channel]" }, { "httpMethod": "POST", + "since": [ + "12.0.0" + ], "summary": "Create a new channel (originate).", "notes": "The new channel is created immediately and a snapshot of it returned. If a Stasis application is provided it will be automatically subscribed to the originated channel for further events and updates.", "nickname": "originate", @@ -163,6 +172,9 @@ "operations": [ { "httpMethod": "POST", + "since": [ + "14.0.0" + ], "summary": "Create channel.", "nickname": "create", "responseClass": "Channel", @@ -247,6 +259,9 @@ "operations": [ { "httpMethod": "GET", + "since": [ + "12.0.0" + ], "summary": "Channel details.", "nickname": "get", "responseClass": "Channel", @@ -269,6 +284,9 @@ }, { "httpMethod": "POST", + "since": [ + "12.2.0" + ], "summary": "Create a new channel (originate with id).", "notes": "The new channel is created immediately and a snapshot of it returned. If a Stasis application is provided it will be automatically subscribed to the originated channel for further events and updates.", "nickname": "originateWithId", @@ -402,6 +420,9 @@ }, { "httpMethod": "DELETE", + "since": [ + "12.0.0" + ], "summary": "Delete (i.e. hangup) a channel.", "nickname": "hangup", "responseClass": "void", @@ -468,6 +489,9 @@ "operations": [ { "httpMethod": "POST", + "since": [ + "12.0.0" + ], "summary": "Exit application; continue execution in the dialplan.", "nickname": "continueInDialplan", "responseClass": "void", @@ -536,6 +560,10 @@ "operations": [ { "httpMethod": "POST", + "since": [ + "13.26.0", + "16.3.0" + ], "summary": "Move the channel from one Stasis application to another.", "nickname": "move", "responseClass": "void", @@ -584,6 +612,9 @@ "operations": [ { "httpMethod": "POST", + "since": [ + "13.3.0" + ], "summary": "Redirect the channel to a different location.", "nickname": "redirect", "responseClass": "void", @@ -636,6 +667,9 @@ "operations": [ { "httpMethod": "POST", + "since": [ + "12.0.0" + ], "summary": "Answer a channel.", "nickname": "answer", "responseClass": "void", @@ -672,6 +706,9 @@ "operations": [ { "httpMethod": "POST", + "since": [ + "12.0.0" + ], "summary": "Indicate ringing to a channel.", "nickname": "ring", "responseClass": "void", @@ -702,6 +739,9 @@ }, { "httpMethod": "DELETE", + "since": [ + "12.0.0" + ], "summary": "Stop ringing indication on a channel if locally generated.", "nickname": "ringStop", "responseClass": "void", @@ -732,12 +772,56 @@ } ] }, + { + "path": "/channels/{channelId}/progress", + "description": "Indicate progress on a channel", + "operations": [ + { + "httpMethod": "POST", + "since": [ + "22.6.0", + "21.11.0", + "20.16.0" + ], + "summary": "Indicate progress on a channel.", + "nickname": "progress", + "responseClass": "void", + "parameters": [ + { + "name": "channelId", + "description": "Channel's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Channel not found" + }, + { + "code": 409, + "reason": "Channel not in a Stasis application" + }, + { + "code": 412, + "reason": "Channel in invalid state" + } + ] + } + ] + }, { "path": "/channels/{channelId}/dtmf", "description": "Send DTMF to a channel", "operations": [ { "httpMethod": "POST", + "since": [ + "12.0.0" + ], "summary": "Send provided DTMF to a given channel.", "nickname": "sendDTMF", "responseClass": "void", @@ -822,6 +906,9 @@ "operations": [ { "httpMethod": "POST", + "since": [ + "12.0.0" + ], "summary": "Mute a channel.", "nickname": "mute", "responseClass": "void", @@ -869,6 +956,9 @@ }, { "httpMethod": "DELETE", + "since": [ + "12.0.0" + ], "summary": "Unmute a channel.", "nickname": "unmute", "responseClass": "void", @@ -922,6 +1012,9 @@ "operations": [ { "httpMethod": "POST", + "since": [ + "12.0.0" + ], "summary": "Hold a channel.", "nickname": "hold", "responseClass": "void", @@ -952,6 +1045,9 @@ }, { "httpMethod": "DELETE", + "since": [ + "12.0.0" + ], "summary": "Remove a channel from hold.", "nickname": "unhold", "responseClass": "void", @@ -988,6 +1084,9 @@ "operations": [ { "httpMethod": "POST", + "since": [ + "12.0.0" + ], "summary": "Play music on hold to a channel.", "notes": "Using media operations such as /play on a channel playing MOH in this manner will suspend MOH without resuming automatically. If continuing music on hold is desired, the stasis application must reinitiate music on hold.", "nickname": "startMoh", @@ -1027,6 +1126,9 @@ }, { "httpMethod": "DELETE", + "since": [ + "12.0.0" + ], "summary": "Stop playing music on hold to a channel.", "nickname": "stopMoh", "responseClass": "void", @@ -1063,6 +1165,9 @@ "operations": [ { "httpMethod": "POST", + "since": [ + "12.0.0" + ], "summary": "Play silence to a channel.", "notes": "Using media operations such as /play on a channel playing silence in this manner will suspend silence without resuming automatically.", "nickname": "startSilence", @@ -1094,6 +1199,9 @@ }, { "httpMethod": "DELETE", + "since": [ + "12.0.0" + ], "summary": "Stop playing silence to a channel.", "nickname": "stopSilence", "responseClass": "void", @@ -1130,6 +1238,9 @@ "operations": [ { "httpMethod": "POST", + "since": [ + "12.0.0" + ], "summary": "Start playback of media.", "notes": "The media URI may be any of a number of URI's. Currently sound:, recording:, number:, digits:, characters:, and tone: URI's are supported. This operation creates a playback resource that can be used to control the playback of media (pause, rewind, fast forward, etc.)", "nickname": "play", @@ -1208,6 +1319,9 @@ "operations": [ { "httpMethod": "POST", + "since": [ + "12.2.0" + ], "summary": "Start playback of media and specify the playbackId.", "notes": "The media URI may be any of a number of URI's. Currently sound:, recording:, number:, digits:, characters:, and tone: URI's are supported. This operation creates a playback resource that can be used to control the playback of media (pause, rewind, fast forward, etc.)", "nickname": "playWithId", @@ -1286,6 +1400,9 @@ "operations": [ { "httpMethod": "POST", + "since": [ + "12.0.0" + ], "summary": "Start a recording.", "notes": "Record audio from a channel. Note that this will not capture audio sent to the channel. The bridge itself has a record feature if that's what you want.", "nickname": "record", @@ -1397,7 +1514,7 @@ }, { "code": 409, - "reason": "Channel is not in a Stasis application; the channel is currently bridged with other hcannels; A recording with the same name already exists on the system and can not be overwritten because it is in progress or ifExists=fail" + "reason": "Channel is not in a Stasis application; the channel is currently bridged with other channels; A recording with the same name already exists on the system and can not be overwritten because it is in progress or ifExists=fail" }, { "code": 422, @@ -1413,6 +1530,9 @@ "operations": [ { "httpMethod": "GET", + "since": [ + "12.0.0" + ], "summary": "Get the value of a channel variable or function.", "nickname": "getChannelVar", "responseClass": "Variable", @@ -1451,6 +1571,9 @@ }, { "httpMethod": "POST", + "since": [ + "12.0.0" + ], "summary": "Set the value of a channel variable or function.", "nickname": "setChannelVar", "responseClass": "void", @@ -1503,6 +1626,9 @@ "operations": [ { "httpMethod": "POST", + "since": [ + "12.0.0" + ], "summary": "Start snooping.", "notes": "Snoop (spy/whisper) on a specific channel.", "nickname": "snoopChannel", @@ -1596,6 +1722,9 @@ "operations": [ { "httpMethod": "POST", + "since": [ + "12.2.0" + ], "summary": "Start snooping.", "notes": "Snoop (spy/whisper) on a specific channel.", "nickname": "snoopChannelWithId", @@ -1689,6 +1818,9 @@ "operations": [ { "httpMethod": "POST", + "since": [ + "14.0.0" + ], "summary": "Dial a created channel.", "nickname": "dial", "responseClass": "void", @@ -1742,6 +1874,10 @@ "operations": [ { "httpMethod": "GET", + "since": [ + "13.27.0", + "16.4.0" + ], "summary": "RTP stats on a channel.", "nickname": "rtpstatistics", "responseClass": "RTPstat", @@ -1770,8 +1906,12 @@ "operations": [ { "httpMethod": "POST", + "since": [ + "16.6.0", + "17.1.0" + ], "summary": "Start an External Media session.", - "notes": "Create a channel to an External Media source/sink.", + "notes": "Create a channel to an External Media source/sink. The combination of transport and encapsulation will select one of chan_rtp(udp/rtp), chan_audiosocket(tcp/audiosocket) or chan_websocket(websocket/none) channel drivers.", "nickname": "externalMedia", "responseClass": "Channel", "parameters": [ @@ -1801,15 +1941,15 @@ }, { "name": "external_host", - "description": "Hostname/ip:port of external host", + "description": "Hostname/ip:port or websocket_client connection ID of external host. May be empty for a websocket server connection.", "paramType": "query", - "required": true, + "required": false, "allowMultiple": false, "dataType": "string" }, { "name": "encapsulation", - "description": "Payload encapsulation protocol", + "description": "Payload encapsulation protocol. Must be 'none' for the websocket transport.", "paramType": "query", "required": false, "allowMultiple": false, @@ -1819,7 +1959,8 @@ "valueType": "LIST", "values": [ "rtp", - "audiosocket" + "audiosocket", + "none" ] } }, @@ -1835,13 +1976,14 @@ "valueType": "LIST", "values": [ "udp", - "tcp" + "tcp", + "websocket" ] } }, { "name": "connection_type", - "description": "Connection type (client/server)", + "description": "Connection type (client/server). 'server' is only valid for the websocket transport.", "paramType": "query", "required": false, "allowMultiple": false, @@ -1850,7 +1992,8 @@ "allowableValues": { "valueType": "LIST", "values": [ - "client" + "client", + "server" ] } }, @@ -1898,6 +2041,59 @@ ] } ] + }, + { + "path": "/channels/{channelId}/transfer_progress", + "description": "Inform the channel that the transfer is in progress.", + "operations": [ + { + "httpMethod": "POST", + "since": [ + "22.3.0", + "21.8.0", + "20.13.0" + ], + "summary": "Inform the channel about the progress of the attended/blind transfer.", + "nickname": "transfer_progress", + "responseClass": "void", + "parameters": [ + { + "name": "channelId", + "description": "Channel's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "states", + "description": "The state of the progress", + "paramType": "query", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 400, + "reason": "Endpoint parameter not provided" + }, + { + "code": 404, + "reason": "Channel or endpoint not found" + }, + { + "code": 409, + "reason": "Channel not in a Stasis application" + }, + { + "code": 412, + "reason": "Channel in invalid state" + } + ] + } + ] } ], "models": { diff --git a/codegen/src/main/resources/codegen-data/ari_10_0_0/deviceStates.json b/codegen/src/main/resources/codegen-data/ari_10_0_0/deviceStates.json index bd389355..f0a889bc 100644 --- a/codegen/src/main/resources/codegen-data/ari_10_0_0/deviceStates.json +++ b/codegen/src/main/resources/codegen-data/ari_10_0_0/deviceStates.json @@ -6,6 +6,9 @@ "swaggerVersion": "1.1", "basePath": "http://localhost:8088/ari", "resourcePath": "/api-docs/deviceStates.{format}", + "since": [ + "12.0.0" + ], "requiresModules": [ "res_stasis_device_state" ], @@ -16,6 +19,9 @@ "operations": [ { "httpMethod": "GET", + "since": [ + "12.0.0" + ], "summary": "List all ARI controlled device states.", "nickname": "list", "responseClass": "List[DeviceState]" @@ -28,6 +34,9 @@ "operations": [ { "httpMethod": "GET", + "since": [ + "12.0.0" + ], "summary": "Retrieve the current state of a device.", "nickname": "get", "responseClass": "DeviceState", @@ -44,6 +53,9 @@ }, { "httpMethod": "PUT", + "since": [ + "12.0.0" + ], "summary": "Change the state of a device controlled by ARI. (Note - implicitly creates the device state).", "nickname": "update", "responseClass": "void", @@ -92,6 +104,9 @@ }, { "httpMethod": "DELETE", + "since": [ + "12.0.0" + ], "summary": "Destroy a device-state controlled by ARI.", "nickname": "delete", "responseClass": "void", diff --git a/codegen/src/main/resources/codegen-data/ari_10_0_0/endpoints.json b/codegen/src/main/resources/codegen-data/ari_10_0_0/endpoints.json index 3f3f98ce..233f2c84 100644 --- a/codegen/src/main/resources/codegen-data/ari_10_0_0/endpoints.json +++ b/codegen/src/main/resources/codegen-data/ari_10_0_0/endpoints.json @@ -6,6 +6,9 @@ "swaggerVersion": "1.1", "basePath": "http://localhost:8088/ari", "resourcePath": "/api-docs/endpoints.{format}", + "since": [ + "12.0.0" + ], "apis": [ { "path": "/endpoints", @@ -13,6 +16,9 @@ "operations": [ { "httpMethod": "GET", + "since": [ + "12.0.0" + ], "summary": "List all endpoints.", "nickname": "list", "responseClass": "List[Endpoint]" @@ -25,6 +31,9 @@ "operations": [ { "httpMethod": "PUT", + "since": [ + "13.0.0" + ], "summary": "Send a message to some technology URI or endpoint.", "nickname": "sendMessage", "responseClass": "void", @@ -81,6 +90,10 @@ "operations": [ { "httpMethod": "POST", + "since": [ + "18.20.0", + "20.5.0" + ], "summary": "Refer an endpoint or technology URI to some technology URI or endpoint.", "nickname": "refer", "responseClass": "void", @@ -146,6 +159,9 @@ "operations": [ { "httpMethod": "GET", + "since": [ + "12.0.0" + ], "summary": "List available endoints for a given endpoint technology.", "nickname": "listByTech", "responseClass": "List[Endpoint]", @@ -172,6 +188,9 @@ "operations": [ { "httpMethod": "GET", + "since": [ + "12.0.0" + ], "summary": "Details for an endpoint.", "nickname": "get", "responseClass": "Endpoint", @@ -208,6 +227,9 @@ "operations": [ { "httpMethod": "PUT", + "since": [ + "13.0.0" + ], "summary": "Send a message to some endpoint in a technology.", "nickname": "sendMessageToEndpoint", "responseClass": "void", @@ -268,6 +290,10 @@ "operations": [ { "httpMethod": "POST", + "since": [ + "18.20.0", + "20.5.0" + ], "summary": "Refer an endpoint or technology URI to some technology URI or endpoint.", "nickname": "referToEndpoint", "responseClass": "void", diff --git a/codegen/src/main/resources/codegen-data/ari_10_0_0/events.json b/codegen/src/main/resources/codegen-data/ari_10_0_0/events.json index 2bd1eeab..f08a665e 100644 --- a/codegen/src/main/resources/codegen-data/ari_10_0_0/events.json +++ b/codegen/src/main/resources/codegen-data/ari_10_0_0/events.json @@ -6,6 +6,9 @@ "swaggerVersion": "1.2", "basePath": "http://localhost:8088/ari", "resourcePath": "/api-docs/events.{format}", + "since": [ + "12.0.0" + ], "requiresModules": [ "res_http_websocket" ], @@ -16,6 +19,9 @@ "operations": [ { "httpMethod": "GET", + "since": [ + "12.0.0" + ], "upgrade": "websocket", "websocketProtocol": "ari", "summary": "WebSocket connection for events.", @@ -48,6 +54,9 @@ "operations": [ { "httpMethod": "POST", + "since": [ + "12.3.0" + ], "summary": "Generate a user event.", "nickname": "userEvent", "responseClass": "void", @@ -160,6 +169,8 @@ "RecordingFinished", "RecordingFailed", "ApplicationMoveFailed", + "ApplicationRegistered", + "ApplicationUnregistered", "ApplicationReplaced", "BridgeCreated", "BridgeDestroyed", @@ -190,7 +201,9 @@ "StasisStart", "TextMessageReceived", "ChannelConnectedLine", - "PeerStatusChange" + "PeerStatusChange", + "ChannelTransfer", + "RESTResponse" ] }, "ContactInfo": { @@ -356,6 +369,16 @@ } } }, + "ApplicationRegistered": { + "id": "ApplicationRegistered", + "description": "Notification that a Stasis app has been registered.", + "properties": {} + }, + "ApplicationUnregistered": { + "id": "ApplicationUnregistered", + "description": "Notification that a Stasis app has been unregistered.", + "properties": {} + }, "ApplicationReplaced": { "id": "ApplicationReplaced", "description": "Notification that another WebSocket has taken over for an application.\n\nAn application may only be subscribed to by a single WebSocket at a time. If multiple WebSockets attempt to subscribe to the same application, the newer WebSocket wins, and the older one receives this event.", @@ -556,6 +579,10 @@ "description": "Text representation of the cause of the hangup", "type": "string" }, + "tech_cause": { + "type": "int", + "description": "Integer representation of the technology-specific off-nominal cause of the hangup." + }, "channel": { "required": true, "type": "Channel" @@ -701,6 +728,10 @@ "type": "int", "description": "Integer representation of the cause of the hangup." }, + "tech_cause": { + "type": "int", + "description": "Integer representation of the technology-specific off-nominal cause of the hangup." + }, "soft": { "type": "boolean", "description": "Whether the hangup request was a soft hangup request." @@ -925,6 +956,229 @@ "description": "The channel whose connected line has changed." } } + }, + "ChannelTransfer": { + "id": "ChannelTransfer", + "description": "transfer on a channel.", + "properties": { + "state": { + "required": false, + "type": "string", + "description": "Transfer State" + }, + "refer_to": { + "required": true, + "type": "ReferTo", + "description": "Refer-To information with optionally both affected channels" + }, + "referred_by": { + "required": true, + "type": "ReferredBy", + "description": "Referred-By SIP Header according rfc3892" + } + } + }, + "ReferTo": { + "id": "ReferTo", + "description": "transfer destination requested by transferee", + "properties": { + "requested_destination": { + "required": true, + "type": "RequiredDestination" + }, + "destination_channel": { + "required": false, + "type": "Channel", + "description": "The Channel Object, that is to be replaced" + }, + "connected_channel": { + "required": false, + "type": "Channel", + "description": "Channel, connected to the to be replaced channel" + }, + "bridge": { + "required": false, + "type": "Bridge", + "description": "Bridge connecting both destination channels" + } + } + }, + "ReferredBy": { + "id": "ReferredBy", + "description": "transfer destination requested by transferee", + "properties": { + "source_channel": { + "required": true, + "type": "Channel", + "description": "The channel on which the refer was received" + }, + "connected_channel": { + "required": false, + "type": "Channel", + "description": "Channel, Connected to the channel, receiving the transfer request on." + }, + "bridge": { + "required": false, + "type": "Bridge", + "description": "Bridge connecting both Channels" + } + } + }, + "RequiredDestination": { + "id": "RequiredDestination", + "description": "Information about the requested destination", + "properties": { + "protocol_id": { + "required": false, + "type": "string", + "description": "the requested protocol-id by the referee in case of SIP channel, this is a SIP Call ID, Mutually exclusive to destination" + }, + "destination": { + "required": false, + "type": "string", + "description": "Destination User Part. Only for Blind transfer. Mutually exclusive to protocol_id" + }, + "additional_protocol_params": { + "required": false, + "type": "List[AdditionalParam]", + "description": "List of additional protocol specific information" + } + } + }, + "AdditionalParam": { + "id": "AdditionalParam", + "description": "Protocol specific additional parameter", + "properties": { + "parameter_name": { + "required": true, + "type": "string", + "description": "Name of the parameter" + }, + "parameter_value": { + "required": true, + "type": "string", + "description": "Value of the parameter" + } + } + }, + "RESTHeader": { + "id": "RESTHeader", + "description": "REST over Websocket header", + "properties": { + "name": { + "type": "string", + "description": "Header name", + "required": true + }, + "value": { + "required": true, + "type": "string", + "description": "Header value" + } + } + }, + "RESTQueryStringParameter": { + "id": "RESTQueryStringParameter", + "description": "REST over Websocket Query String Parameter", + "properties": { + "name": { + "type": "string", + "description": "Parameter name", + "required": true + }, + "value": { + "required": true, + "type": "string", + "description": "Parameter value" + } + } + }, + "RESTRequest": { + "id": "RESTRequest", + "description": "REST over Websocket Request.", + "properties": { + "type": { + "type": "string", + "description": "Message type. Must be 'RESTRequest'", + "required": true + }, + "transaction_id": { + "type": "string", + "description": "Opaque transaction id. Can be any valid string. Will be returned in any response to this request.", + "required": true + }, + "request_id": { + "type": "string", + "description": "Opaque request id. Can be any valid string. Will be returned in any response to this request.", + "required": true + }, + "method": { + "required": true, + "type": "string", + "description": "HTTP method (GET, PUT, POST, DELETE, etc.)" + }, + "uri": { + "required": true, + "type": "string", + "description": "Resource URI with optional query string parameters." + }, + "content_type": { + "required": false, + "type": "string", + "description": "The Content-Type of the message body." + }, + "query_strings": { + "required": false, + "type": "List[RESTQueryStringParameter]", + "description": "Request query string parameters." + }, + "message_body": { + "required": false, + "type": "string", + "description": "Request message body. Only content types application/json and application/x-www-form-urlencoded are supported." + } + } + }, + "RESTResponse": { + "id": "RESTResponse", + "description": "REST over Websocket Response.", + "properties": { + "transaction_id": { + "type": "string", + "description": "Opaque transaction id. Will be whatever was specified on the original request.", + "required": true + }, + "request_id": { + "type": "string", + "description": "Opaque request id. Will be whatever was specified on the original request.", + "required": true + }, + "status_code": { + "required": true, + "type": "int", + "description": "HTTP status code" + }, + "reason_phrase": { + "required": true, + "type": "string", + "description": "HTTP reason phrase" + }, + "uri": { + "required": true, + "type": "string", + "description": "Original request resource URI" + }, + "content_type": { + "required": false, + "type": "string", + "description": "The Content-Type of the message body." + }, + "message_body": { + "required": false, + "type": "string", + "description": "Response message body" + } + } } } } diff --git a/codegen/src/main/resources/codegen-data/ari_10_0_0/mailboxes.json b/codegen/src/main/resources/codegen-data/ari_10_0_0/mailboxes.json index 8f5941b8..d99e1eac 100644 --- a/codegen/src/main/resources/codegen-data/ari_10_0_0/mailboxes.json +++ b/codegen/src/main/resources/codegen-data/ari_10_0_0/mailboxes.json @@ -6,6 +6,9 @@ "swaggerVersion": "1.1", "basePath": "http://localhost:8088/ari", "resourcePath": "/api-docs/mailboxes.{format}", + "since": [ + "12.1.0" + ], "requiresModules": [ "res_stasis_mailbox" ], @@ -16,6 +19,9 @@ "operations": [ { "httpMethod": "GET", + "since": [ + "12.1.0" + ], "summary": "List all mailboxes.", "nickname": "list", "responseClass": "List[Mailbox]" @@ -28,6 +34,9 @@ "operations": [ { "httpMethod": "GET", + "since": [ + "12.1.0" + ], "summary": "Retrieve the current state of a mailbox.", "nickname": "get", "responseClass": "Mailbox", @@ -50,6 +59,9 @@ }, { "httpMethod": "PUT", + "since": [ + "12.1.0" + ], "summary": "Change the state of a mailbox. (Note - implicitly creates the mailbox).", "nickname": "update", "responseClass": "void", @@ -88,6 +100,9 @@ }, { "httpMethod": "DELETE", + "since": [ + "12.1.0" + ], "summary": "Destroy a mailbox.", "nickname": "delete", "responseClass": "void", diff --git a/codegen/src/main/resources/codegen-data/ari_10_0_0/playbacks.json b/codegen/src/main/resources/codegen-data/ari_10_0_0/playbacks.json index 793986fc..a7892f18 100644 --- a/codegen/src/main/resources/codegen-data/ari_10_0_0/playbacks.json +++ b/codegen/src/main/resources/codegen-data/ari_10_0_0/playbacks.json @@ -6,6 +6,9 @@ "swaggerVersion": "1.1", "basePath": "http://localhost:8088/ari", "resourcePath": "/api-docs/playbacks.{format}", + "since": [ + "12.0.0" + ], "requiresModules": [ "res_stasis_playback" ], @@ -16,6 +19,9 @@ "operations": [ { "httpMethod": "GET", + "since": [ + "12.0.0" + ], "summary": "Get a playback's details.", "nickname": "get", "responseClass": "Playback", @@ -38,6 +44,9 @@ }, { "httpMethod": "DELETE", + "since": [ + "12.0.0" + ], "summary": "Stop a playback.", "nickname": "stop", "responseClass": "void", @@ -66,6 +75,9 @@ "operations": [ { "httpMethod": "POST", + "since": [ + "12.0.0" + ], "summary": "Control a playback.", "nickname": "control", "responseClass": "void", diff --git a/codegen/src/main/resources/codegen-data/ari_10_0_0/recordings.json b/codegen/src/main/resources/codegen-data/ari_10_0_0/recordings.json index 6ffd6d8e..1496db8a 100644 --- a/codegen/src/main/resources/codegen-data/ari_10_0_0/recordings.json +++ b/codegen/src/main/resources/codegen-data/ari_10_0_0/recordings.json @@ -6,6 +6,9 @@ "swaggerVersion": "1.1", "basePath": "http://localhost:8088/ari", "resourcePath": "/api-docs/recordings.{format}", + "since": [ + "12.0.0" + ], "requiresModules": [ "res_stasis_recording" ], @@ -16,6 +19,9 @@ "operations": [ { "httpMethod": "GET", + "since": [ + "12.0.0" + ], "summary": "List recordings that are complete.", "nickname": "listStored", "responseClass": "List[StoredRecording]" @@ -28,6 +34,9 @@ "operations": [ { "httpMethod": "GET", + "since": [ + "12.0.0" + ], "summary": "Get a stored recording's details.", "nickname": "getStored", "responseClass": "StoredRecording", @@ -50,6 +59,9 @@ }, { "httpMethod": "DELETE", + "since": [ + "12.0.0" + ], "summary": "Delete a stored recording.", "nickname": "deleteStored", "responseClass": "void", @@ -78,6 +90,9 @@ "operations": [ { "httpMethod": "GET", + "since": [ + "14.0.0" + ], "summary": "Get the file associated with the stored recording.", "nickname": "getStoredFile", "responseClass": "binary", @@ -110,6 +125,9 @@ "operations": [ { "httpMethod": "POST", + "since": [ + "12.5.0" + ], "summary": "Copy a stored recording.", "nickname": "copyStored", "responseClass": "StoredRecording", @@ -150,6 +168,9 @@ "operations": [ { "httpMethod": "GET", + "since": [ + "12.0.0" + ], "summary": "List live recordings.", "nickname": "getLive", "responseClass": "LiveRecording", @@ -172,6 +193,9 @@ }, { "httpMethod": "DELETE", + "since": [ + "12.0.0" + ], "summary": "Stop a live recording and discard it.", "nickname": "cancel", "responseClass": "void", @@ -199,6 +223,9 @@ "operations": [ { "httpMethod": "POST", + "since": [ + "12.0.0" + ], "summary": "Stop a live recording and store it.", "nickname": "stop", "responseClass": "void", @@ -226,6 +253,9 @@ "operations": [ { "httpMethod": "POST", + "since": [ + "12.0.0" + ], "summary": "Pause a live recording.", "notes": "Pausing a recording suspends silence detection, which will be restarted when the recording is unpaused. Paused time is not included in the accounting for maxDurationSeconds.", "nickname": "pause", @@ -253,6 +283,9 @@ }, { "httpMethod": "DELETE", + "since": [ + "12.0.0" + ], "summary": "Unpause a live recording.", "nickname": "unpause", "responseClass": "void", @@ -284,6 +317,9 @@ "operations": [ { "httpMethod": "POST", + "since": [ + "12.0.0" + ], "summary": "Mute a live recording.", "notes": "Muting a recording suspends silence detection, which will be restarted when the recording is unmuted.", "nickname": "mute", @@ -311,6 +347,9 @@ }, { "httpMethod": "DELETE", + "since": [ + "12.0.0" + ], "summary": "Unmute a live recording.", "nickname": "unmute", "responseClass": "void", diff --git a/codegen/src/main/resources/codegen-data/ari_10_0_0/sounds.json b/codegen/src/main/resources/codegen-data/ari_10_0_0/sounds.json index 8fbe1c57..aee4d369 100644 --- a/codegen/src/main/resources/codegen-data/ari_10_0_0/sounds.json +++ b/codegen/src/main/resources/codegen-data/ari_10_0_0/sounds.json @@ -6,6 +6,9 @@ "swaggerVersion": "1.1", "basePath": "http://localhost:8088/ari", "resourcePath": "/api-docs/sounds.{format}", + "since": [ + "12.0.0" + ], "apis": [ { "path": "/sounds", @@ -13,6 +16,9 @@ "operations": [ { "httpMethod": "GET", + "since": [ + "12.0.0" + ], "summary": "List all sounds.", "nickname": "list", "responseClass": "List[Sound]", @@ -42,6 +48,9 @@ "operations": [ { "httpMethod": "GET", + "since": [ + "12.0.0" + ], "summary": "Get a sound's details.", "nickname": "get", "responseClass": "Sound", diff --git a/codegen/src/main/resources/codegen-data/ari_11_0_0/applications.json b/codegen/src/main/resources/codegen-data/ari_11_0_0/applications.json new file mode 100644 index 00000000..8ad9f36d --- /dev/null +++ b/codegen/src/main/resources/codegen-data/ari_11_0_0/applications.json @@ -0,0 +1,242 @@ +{ + "_copyright": "Copyright (C) 2013, Digium, Inc.", + "_author": "David M. Lee, II ", + "_svn_revision": "$Revision$", + "apiVersion": "2.0.0", + "swaggerVersion": "1.1", + "basePath": "http://localhost:8088/ari", + "resourcePath": "/api-docs/applications.{format}", + "since": [ + "13.0.0" + ], + "apis": [ + { + "path": "/applications", + "description": "Stasis applications", + "operations": [ + { + "httpMethod": "GET", + "since": [ + "13.0.0" + ], + "summary": "List all applications.", + "nickname": "list", + "responseClass": "List[Application]" + } + ] + }, + { + "path": "/applications/{applicationName}", + "description": "Stasis application", + "operations": [ + { + "httpMethod": "GET", + "since": [ + "13.0.0" + ], + "summary": "Get details of an application.", + "nickname": "get", + "responseClass": "Application", + "parameters": [ + { + "name": "applicationName", + "description": "Application's name", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Application does not exist." + } + ] + } + ] + }, + { + "path": "/applications/{applicationName}/subscription", + "description": "Stasis application", + "operations": [ + { + "httpMethod": "POST", + "since": [ + "13.0.0" + ], + "summary": "Subscribe an application to a event source.", + "notes": "Returns the state of the application after the subscriptions have changed", + "nickname": "subscribe", + "responseClass": "Application", + "parameters": [ + { + "name": "applicationName", + "description": "Application's name", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "eventSource", + "description": "URI for event source (channel:{channelId}, bridge:{bridgeId}, endpoint:{tech}[/{resource}], deviceState:{deviceName}", + "paramType": "query", + "required": true, + "allowMultiple": true, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 400, + "reason": "Missing parameter." + }, + { + "code": 404, + "reason": "Application does not exist." + }, + { + "code": 422, + "reason": "Event source does not exist." + } + ] + }, + { + "httpMethod": "DELETE", + "since": [ + "13.0.0" + ], + "summary": "Unsubscribe an application from an event source.", + "notes": "Returns the state of the application after the subscriptions have changed", + "nickname": "unsubscribe", + "responseClass": "Application", + "parameters": [ + { + "name": "applicationName", + "description": "Application's name", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "eventSource", + "description": "URI for event source (channel:{channelId}, bridge:{bridgeId}, endpoint:{tech}[/{resource}], deviceState:{deviceName}", + "paramType": "query", + "required": true, + "allowMultiple": true, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 400, + "reason": "Missing parameter; event source scheme not recognized." + }, + { + "code": 404, + "reason": "Application does not exist." + }, + { + "code": 409, + "reason": "Application not subscribed to event source." + }, + { + "code": 422, + "reason": "Event source does not exist." + } + ] + } + ] + }, + { + "path": "/applications/{applicationName}/eventFilter", + "description": "Stasis application", + "operations": [ + { + "httpMethod": "PUT", + "since": [ + "13.26.0", + "16.3.0" + ], + "summary": "Filter application events types.", + "notes": "Allowed and/or disallowed event type filtering can be done. The body (parameter) should specify a JSON key/value object that describes the type of event filtering needed. One, or both of the following keys can be designated:

\"allowed\" - Specifies an allowed list of event types
\"disallowed\" - Specifies a disallowed list of event types

Further, each of those key's value should be a JSON array that holds zero, or more JSON key/value objects. Each of these objects must contain the following key with an associated value:

\"type\" - The type name of the event to filter

The value must be the string name (case sensitive) of the event type that needs filtering. For example:

{ \"allowed\": [ { \"type\": \"StasisStart\" }, { \"type\": \"StasisEnd\" } ] }

As this specifies only an allowed list, then only those two event type messages are sent to the application. No other event messages are sent.

The following rules apply:

* If the body is empty, both the allowed and disallowed filters are set empty.
* If both list types are given then both are set to their respective values (note, specifying an empty array for a given type sets that type to empty).
* If only one list type is given then only that type is set. The other type is not updated.
* An empty \"allowed\" list means all events are allowed.
* An empty \"disallowed\" list means no events are disallowed.
* Disallowed events take precedence over allowed events if the event type is specified in both lists.", + "nickname": "filter", + "responseClass": "Application", + "parameters": [ + { + "name": "applicationName", + "description": "Application's name", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "filter", + "description": "Specify which event types to allow/disallow", + "paramType": "body", + "required": false, + "dataType": "object", + "allowMultiple": false + } + ], + "errorResponses": [ + { + "code": 400, + "reason": "Bad request." + }, + { + "code": 404, + "reason": "Application does not exist." + } + ] + } + ] + } + ], + "models": { + "Application": { + "id": "Application", + "description": "Details of a Stasis application", + "properties": { + "name": { + "type": "string", + "description": "Name of this application", + "required": true + }, + "channel_ids": { + "type": "List[string]", + "description": "Id's for channels subscribed to.", + "required": true + }, + "bridge_ids": { + "type": "List[string]", + "description": "Id's for bridges subscribed to.", + "required": true + }, + "endpoint_ids": { + "type": "List[string]", + "description": "{tech}/{resource} for endpoints subscribed to.", + "required": true + }, + "device_names": { + "type": "List[string]", + "description": "Names of the devices subscribed to.", + "required": true + }, + "events_allowed": { + "type": "List[object]", + "description": "Event types sent to the application.", + "required": true + }, + "events_disallowed": { + "type": "List[object]", + "description": "Event types not sent to the application.", + "required": true + } + } + } + } +} diff --git a/codegen/src/main/resources/codegen-data/ari_11_0_0/asterisk.json b/codegen/src/main/resources/codegen-data/ari_11_0_0/asterisk.json new file mode 100644 index 00000000..83fef8b7 --- /dev/null +++ b/codegen/src/main/resources/codegen-data/ari_11_0_0/asterisk.json @@ -0,0 +1,777 @@ +{ + "_copyright": "Copyright (C) 2012 - 2013, Digium, Inc.", + "_author": "David M. Lee, II ", + "_svn_revision": "$Revision$", + "apiVersion": "2.0.0", + "swaggerVersion": "1.1", + "basePath": "http://localhost:8088/ari", + "resourcePath": "/api-docs/asterisk.{format}", + "since": [ + "12.0.0" + ], + "apis": [ + { + "path": "/asterisk/config/dynamic/{configClass}/{objectType}/{id}", + "description": "Asterisk dynamic configuration", + "operations": [ + { + "httpMethod": "GET", + "since": [ + "13.5.0" + ], + "summary": "Retrieve a dynamic configuration object.", + "nickname": "getObject", + "responseClass": "List[ConfigTuple]", + "parameters": [ + { + "name": "configClass", + "description": "The configuration class containing dynamic configuration objects.", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "objectType", + "description": "The type of configuration object to retrieve.", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "id", + "description": "The unique identifier of the object to retrieve.", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "{configClass|objectType|id} not found" + } + ] + }, + { + "httpMethod": "PUT", + "since": [ + "13.5.0" + ], + "summary": "Create or update a dynamic configuration object.", + "nickname": "updateObject", + "responseClass": "List[ConfigTuple]", + "parameters": [ + { + "name": "configClass", + "description": "The configuration class containing dynamic configuration objects.", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "objectType", + "description": "The type of configuration object to create or update.", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "id", + "description": "The unique identifier of the object to create or update.", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "fields", + "description": "The body object should have a value that is a list of ConfigTuples, which provide the fields to update. Ex. [ { \"attribute\": \"directmedia\", \"value\": \"false\" } ]", + "paramType": "body", + "required": false, + "dataType": "containers", + "allowMultiple": false + } + ], + "errorResponses": [ + { + "code": 400, + "reason": "Bad request body" + }, + { + "code": 403, + "reason": "Could not create or update object" + }, + { + "code": 404, + "reason": "{configClass|objectType} not found" + } + ] + }, + { + "httpMethod": "DELETE", + "since": [ + "13.5.0" + ], + "summary": "Delete a dynamic configuration object.", + "nickname": "deleteObject", + "responseClass": "void", + "parameters": [ + { + "name": "configClass", + "description": "The configuration class containing dynamic configuration objects.", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "objectType", + "description": "The type of configuration object to delete.", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "id", + "description": "The unique identifier of the object to delete.", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 403, + "reason": "Could not delete object" + }, + { + "code": 404, + "reason": "{configClass|objectType|id} not found" + } + ] + } + ] + }, + { + "path": "/asterisk/info", + "description": "Asterisk system information (similar to core show settings)", + "operations": [ + { + "httpMethod": "GET", + "since": [ + "12.0.0" + ], + "summary": "Gets Asterisk system information.", + "nickname": "getInfo", + "responseClass": "AsteriskInfo", + "parameters": [ + { + "name": "only", + "description": "Filter information returned", + "paramType": "query", + "required": false, + "allowMultiple": true, + "dataType": "string", + "allowableValues": { + "valueType": "LIST", + "values": [ + "build", + "system", + "config", + "status" + ] + } + } + ] + } + ] + }, + { + "path": "/asterisk/ping", + "description": "Asterisk ping", + "operations": [ + { + "httpMethod": "GET", + "since": [ + "13.25.0", + "16.2.0" + ], + "summary": "Response pong message.", + "nickname": "ping", + "responseClass": "AsteriskPing" + } + ] + }, + { + "path": "/asterisk/modules", + "description": "Asterisk modules", + "operations": [ + { + "httpMethod": "GET", + "since": [ + "13.5.0" + ], + "summary": "List Asterisk modules.", + "nickname": "listModules", + "responseClass": "List[Module]" + } + ] + }, + { + "path": "/asterisk/modules/{moduleName}", + "description": "Asterisk module", + "operations": [ + { + "httpMethod": "GET", + "since": [ + "13.5.0" + ], + "summary": "Get Asterisk module information.", + "nickname": "getModule", + "responseClass": "Module", + "parameters": [ + { + "name": "moduleName", + "description": "Module's name", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Module could not be found in running modules." + }, + { + "code": 409, + "reason": "Module information could not be retrieved." + } + ] + }, + { + "httpMethod": "POST", + "since": [ + "13.5.0" + ], + "summary": "Load an Asterisk module.", + "nickname": "loadModule", + "responseClass": "void", + "parameters": [ + { + "name": "moduleName", + "description": "Module's name", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 409, + "reason": "Module could not be loaded." + } + ] + }, + { + "httpMethod": "DELETE", + "since": [ + "13.5.0" + ], + "summary": "Unload an Asterisk module.", + "nickname": "unloadModule", + "responseClass": "void", + "parameters": [ + { + "name": "moduleName", + "description": "Module's name", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Module not found in running modules." + }, + { + "code": 409, + "reason": "Module could not be unloaded." + } + ] + }, + { + "httpMethod": "PUT", + "since": [ + "13.5.0" + ], + "summary": "Reload an Asterisk module.", + "nickname": "reloadModule", + "responseClass": "void", + "parameters": [ + { + "name": "moduleName", + "description": "Module's name", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Module not found in running modules." + }, + { + "code": 409, + "reason": "Module could not be reloaded." + } + ] + } + ] + }, + { + "path": "/asterisk/logging", + "description": "Asterisk log channels", + "operations": [ + { + "httpMethod": "GET", + "since": [ + "13.6.0" + ], + "summary": "Gets Asterisk log channel information.", + "nickname": "listLogChannels", + "responseClass": "List[LogChannel]" + } + ] + }, + { + "path": "/asterisk/logging/{logChannelName}", + "description": "Asterisk log channel", + "operations": [ + { + "httpMethod": "POST", + "since": [ + "13.6.0" + ], + "summary": "Adds a log channel.", + "nickname": "addLog", + "responseClass": "void", + "parameters": [ + { + "name": "logChannelName", + "description": "The log channel to add", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "configuration", + "description": "levels of the log channel", + "paramType": "query", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 400, + "reason": "Bad request body" + }, + { + "code": 409, + "reason": "Log channel could not be created." + } + ] + }, + { + "httpMethod": "DELETE", + "since": [ + "13.6.0" + ], + "summary": "Deletes a log channel.", + "nickname": "deleteLog", + "responseClass": "void", + "parameters": [ + { + "name": "logChannelName", + "description": "Log channels name", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Log channel does not exist." + } + ] + } + ] + }, + { + "path": "/asterisk/logging/{logChannelName}/rotate", + "description": "Asterisk log channel", + "operations": [ + { + "httpMethod": "PUT", + "since": [ + "13.6.0" + ], + "summary": "Rotates a log channel.", + "nickname": "rotateLog", + "responseClass": "void", + "parameters": [ + { + "name": "logChannelName", + "description": "Log channel's name", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Log channel does not exist." + } + ] + } + ] + }, + { + "path": "/asterisk/variable", + "description": "Global variables", + "operations": [ + { + "httpMethod": "GET", + "since": [ + "12.0.0" + ], + "summary": "Get the value of a global variable.", + "nickname": "getGlobalVar", + "responseClass": "Variable", + "parameters": [ + { + "name": "variable", + "description": "The variable to get", + "paramType": "query", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 400, + "reason": "Missing variable parameter." + } + ] + }, + { + "httpMethod": "POST", + "since": [ + "12.0.0" + ], + "summary": "Set the value of a global variable.", + "nickname": "setGlobalVar", + "responseClass": "void", + "parameters": [ + { + "name": "variable", + "description": "The variable to set", + "paramType": "query", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "value", + "description": "The value to set the variable to", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 400, + "reason": "Missing variable parameter." + } + ] + } + ] + } + ], + "models": { + "BuildInfo": { + "id": "BuildInfo", + "description": "Info about how Asterisk was built", + "properties": { + "os": { + "required": true, + "type": "string", + "description": "OS Asterisk was built on." + }, + "kernel": { + "required": true, + "type": "string", + "description": "Kernel version Asterisk was built on." + }, + "options": { + "required": true, + "type": "string", + "description": "Compile time options, or empty string if default." + }, + "machine": { + "required": true, + "type": "string", + "description": "Machine architecture (x86_64, i686, ppc, etc.)" + }, + "date": { + "required": true, + "type": "string", + "description": "Date and time when Asterisk was built." + }, + "user": { + "required": true, + "type": "string", + "description": "Username that build Asterisk" + } + } + }, + "SystemInfo": { + "id": "SystemInfo", + "description": "Info about Asterisk", + "properties": { + "version": { + "required": true, + "type": "string", + "description": "Asterisk version." + }, + "entity_id": { + "required": true, + "type": "string", + "description": "" + } + } + }, + "SetId": { + "id": "SetId", + "description": "Effective user/group id", + "properties": { + "user": { + "required": true, + "type": "string", + "description": "Effective user id." + }, + "group": { + "required": true, + "type": "string", + "description": "Effective group id." + } + } + }, + "ConfigInfo": { + "id": "ConfigInfo", + "description": "Info about Asterisk configuration", + "properties": { + "name": { + "required": true, + "type": "string", + "description": "Asterisk system name." + }, + "default_language": { + "required": true, + "type": "string", + "description": "Default language for media playback." + }, + "max_channels": { + "required": false, + "type": "int", + "description": "Maximum number of simultaneous channels." + }, + "max_open_files": { + "required": false, + "type": "int", + "description": "Maximum number of open file handles (files, sockets)." + }, + "max_load": { + "required": false, + "type": "double", + "description": "Maximum load avg on system." + }, + "setid": { + "required": true, + "type": "SetId", + "description": "Effective user/group id for running Asterisk." + } + } + }, + "StatusInfo": { + "id": "StatusInfo", + "description": "Info about Asterisk status", + "properties": { + "startup_time": { + "required": true, + "type": "Date", + "description": "Time when Asterisk was started." + }, + "last_reload_time": { + "required": true, + "type": "Date", + "description": "Time when Asterisk was last reloaded." + } + } + }, + "AsteriskInfo": { + "id": "AsteriskInfo", + "description": "Asterisk system information", + "properties": { + "build": { + "required": false, + "type": "BuildInfo", + "description": "Info about how Asterisk was built" + }, + "system": { + "required": false, + "type": "SystemInfo", + "description": "Info about the system running Asterisk" + }, + "config": { + "required": false, + "type": "ConfigInfo", + "description": "Info about Asterisk configuration" + }, + "status": { + "required": false, + "type": "StatusInfo", + "description": "Info about Asterisk status" + } + } + }, + "AsteriskPing": { + "id": "AsteriskPing", + "description": "Asterisk ping information", + "properties": { + "asterisk_id": { + "required": true, + "type": "string", + "description": "Asterisk id info" + }, + "ping": { + "required": true, + "type": "string", + "description": "Always string value is pong" + }, + "timestamp": { + "required": true, + "type": "string", + "description": "The timestamp string of request received time" + } + } + }, + "Module": { + "id": "Module", + "description": "Details of an Asterisk module", + "properties": { + "name": { + "type": "string", + "description": "The name of this module", + "required": true + }, + "description": { + "type": "string", + "description": "The description of this module", + "required": true + }, + "use_count": { + "type": "int", + "description": "The number of times this module is being used", + "required": true + }, + "status": { + "type": "string", + "description": "The running status of this module", + "required": true + }, + "support_level": { + "type": "string", + "description": "The support state of this module", + "required": true + } + } + }, + "LogChannel": { + "id": "LogChannel", + "description": "Details of an Asterisk log channel", + "properties": { + "channel": { + "type": "string", + "description": "The log channel path", + "required": true + }, + "type": { + "type": "string", + "description": "Types of logs for the log channel", + "required": true + }, + "status": { + "type": "string", + "description": "Whether or not a log type is enabled", + "required": true + }, + "configuration": { + "type": "string", + "description": "The various log levels", + "required": true + } + } + }, + "Variable": { + "id": "Variable", + "description": "The value of a channel variable", + "properties": { + "value": { + "required": true, + "type": "string", + "description": "The value of the variable requested" + } + } + }, + "ConfigTuple": { + "id": "ConfigTuple", + "description": "A key/value pair that makes up part of a configuration object.", + "properties": { + "attribute": { + "required": true, + "type": "string", + "description": "A configuration object attribute." + }, + "value": { + "required": true, + "type": "string", + "description": "The value for the attribute." + } + } + } + } +} diff --git a/codegen/src/main/resources/codegen-data/ari_11_0_0/bridges.json b/codegen/src/main/resources/codegen-data/ari_11_0_0/bridges.json new file mode 100644 index 00000000..ae5ee56f --- /dev/null +++ b/codegen/src/main/resources/codegen-data/ari_11_0_0/bridges.json @@ -0,0 +1,864 @@ +{ + "_copyright": "Copyright (C) 2012 - 2013, Digium, Inc.", + "_author": "David M. Lee, II ", + "_svn_revision": "$Revision$", + "apiVersion": "2.0.0", + "swaggerVersion": "1.1", + "basePath": "http://localhost:8088/ari", + "resourcePath": "/api-docs/bridges.{format}", + "since": [ + "12.0.0" + ], + "requiresModules": [ + "res_stasis_recording", + "res_stasis_playback" + ], + "apis": [ + { + "path": "/bridges", + "description": "Active bridges", + "operations": [ + { + "httpMethod": "GET", + "since": [ + "12.0.0" + ], + "summary": "List all active bridges in Asterisk.", + "nickname": "list", + "responseClass": "List[Bridge]" + }, + { + "httpMethod": "POST", + "since": [ + "12.0.0" + ], + "summary": "Create a new bridge.", + "notes": "This bridge persists until it has been shut down, or Asterisk has been shut down.", + "nickname": "create", + "responseClass": "Bridge", + "parameters": [ + { + "name": "type", + "description": "Comma separated list of bridge type attributes (mixing, holding, dtmf_events, proxy_media, video_sfu, video_single, sdp_label).", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "bridgeId", + "description": "Unique ID to give to the bridge being created.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "name", + "description": "Name to give to the bridge being created.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 409, + "reason": "Bridge with the same bridgeId already exists" + } + ] + } + ] + }, + { + "path": "/bridges/{bridgeId}", + "description": "Individual bridge", + "operations": [ + { + "httpMethod": "POST", + "since": [ + "12.2.0" + ], + "summary": "Create a new bridge.", + "notes": "This bridge persists until it has been shut down, or Asterisk has been shut down.", + "nickname": "createWithId", + "responseClass": "Bridge", + "parameters": [ + { + "name": "type", + "description": "Comma separated list of bridge type attributes (mixing, holding, dtmf_events, proxy_media, video_sfu, video_single, sdp_label) to set.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "bridgeId", + "description": "Unique ID to give to the bridge being created.", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "name", + "description": "Set the name of the bridge.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 409, + "reason": "Bridge with the same bridgeId already exists" + } + ] + }, + { + "httpMethod": "GET", + "since": [ + "12.0.0" + ], + "summary": "Get bridge details.", + "nickname": "get", + "responseClass": "Bridge", + "parameters": [ + { + "name": "bridgeId", + "description": "Bridge's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Bridge not found" + } + ] + }, + { + "httpMethod": "DELETE", + "since": [ + "12.0.0" + ], + "summary": "Shut down a bridge.", + "notes": "If any channels are in this bridge, they will be removed and resume whatever they were doing beforehand.", + "nickname": "destroy", + "responseClass": "void", + "parameters": [ + { + "name": "bridgeId", + "description": "Bridge's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Bridge not found" + } + ] + } + ] + }, + { + "path": "/bridges/{bridgeId}/addChannel", + "description": "Add a channel to a bridge", + "operations": [ + { + "httpMethod": "POST", + "since": [ + "12.0.0" + ], + "summary": "Add a channel to a bridge.", + "nickname": "addChannel", + "responseClass": "void", + "parameters": [ + { + "name": "bridgeId", + "description": "Bridge's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "channel", + "description": "Ids of channels to add to bridge", + "paramType": "query", + "required": true, + "allowMultiple": true, + "dataType": "string" + }, + { + "name": "role", + "description": "Channel's role in the bridge", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "absorbDTMF", + "description": "Absorb DTMF coming from this channel, preventing it to pass through to the bridge", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "boolean", + "defaultValue": false + }, + { + "name": "mute", + "description": "Mute audio from this channel, preventing it to pass through to the bridge", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "boolean", + "defaultValue": false + }, + { + "name": "inhibitConnectedLineUpdates", + "description": "Do not present the identity of the newly connected channel to other bridge members", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "boolean", + "defaultValue": false + } + ], + "errorResponses": [ + { + "code": 400, + "reason": "Channel not found" + }, + { + "code": 404, + "reason": "Bridge not found" + }, + { + "code": 409, + "reason": "Bridge not in Stasis application; Channel currently recording" + }, + { + "code": 422, + "reason": "Channel not in Stasis application" + } + ] + } + ] + }, + { + "path": "/bridges/{bridgeId}/removeChannel", + "description": "Remove a channel from a bridge", + "operations": [ + { + "httpMethod": "POST", + "since": [ + "12.0.0" + ], + "summary": "Remove a channel from a bridge.", + "nickname": "removeChannel", + "responseClass": "void", + "parameters": [ + { + "name": "bridgeId", + "description": "Bridge's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "channel", + "description": "Ids of channels to remove from bridge", + "paramType": "query", + "required": true, + "allowMultiple": true, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 400, + "reason": "Channel not found" + }, + { + "code": 404, + "reason": "Bridge not found" + }, + { + "code": 409, + "reason": "Bridge not in Stasis application" + }, + { + "code": 422, + "reason": "Channel not in this bridge" + } + ] + } + ] + }, + { + "path": "/bridges/{bridgeId}/videoSource/{channelId}", + "description": "Set a channel as the video source in a multi-party bridge", + "operations": [ + { + "httpMethod": "POST", + "since": [ + "13.13.0", + "14.2.0" + ], + "summary": "Set a channel as the video source in a multi-party mixing bridge. This operation has no effect on bridges with two or fewer participants.", + "nickname": "setVideoSource", + "responseClass": "void", + "parameters": [ + { + "name": "bridgeId", + "description": "Bridge's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "channelId", + "description": "Channel's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Bridge or Channel not found" + }, + { + "code": 409, + "reason": "Channel not in Stasis application" + }, + { + "code": 422, + "reason": "Channel not in this Bridge" + } + ] + } + ] + }, + { + "path": "/bridges/{bridgeId}/videoSource", + "description": "Removes any explicit video source", + "operations": [ + { + "httpMethod": "DELETE", + "since": [ + "13.13.0", + "14.2.0" + ], + "summary": "Removes any explicit video source in a multi-party mixing bridge. This operation has no effect on bridges with two or fewer participants. When no explicit video source is set, talk detection will be used to determine the active video stream.", + "nickname": "clearVideoSource", + "responseClass": "void", + "parameters": [ + { + "name": "bridgeId", + "description": "Bridge's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Bridge not found" + } + ] + } + ] + }, + { + "path": "/bridges/{bridgeId}/moh", + "description": "Play music on hold to a bridge", + "operations": [ + { + "httpMethod": "POST", + "since": [ + "12.0.0" + ], + "summary": "Play music on hold to a bridge or change the MOH class that is playing.", + "nickname": "startMoh", + "responseClass": "void", + "parameters": [ + { + "name": "bridgeId", + "description": "Bridge's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "mohClass", + "description": "Channel's id", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Bridge not found" + }, + { + "code": 409, + "reason": "Bridge not in Stasis application" + } + ] + }, + { + "httpMethod": "DELETE", + "since": [ + "12.0.0" + ], + "summary": "Stop playing music on hold to a bridge.", + "notes": "This will only stop music on hold being played via POST bridges/{bridgeId}/moh.", + "nickname": "stopMoh", + "responseClass": "void", + "parameters": [ + { + "name": "bridgeId", + "description": "Bridge's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Bridge not found" + }, + { + "code": 409, + "reason": "Bridge not in Stasis application" + } + ] + } + ] + }, + { + "path": "/bridges/{bridgeId}/play", + "description": "Play media to the participants of a bridge", + "operations": [ + { + "httpMethod": "POST", + "since": [ + "12.0.0" + ], + "summary": "Start playback of media on a bridge.", + "notes": "The media URI may be any of a number of URI's. Currently sound:, recording:, number:, digits:, characters:, and tone: URI's are supported. This operation creates a playback resource that can be used to control the playback of media (pause, rewind, fast forward, etc.)", + "nickname": "play", + "responseClass": "Playback", + "parameters": [ + { + "name": "bridgeId", + "description": "Bridge's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "media", + "description": "Media URIs to play.", + "paramType": "query", + "required": true, + "allowMultiple": true, + "dataType": "string" + }, + { + "name": "announcer_format", + "description": "Format of the 'Anouncer' channel attached to the bridge. Defaults to the format of the channel in the bridge with the highest sampe rate.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "lang", + "description": "For sounds, selects language for sound.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "offsetms", + "description": "Number of milliseconds to skip before playing. Only applies to the first URI if multiple media URIs are specified.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "int", + "defaultValue": 0, + "allowableValues": { + "valueType": "RANGE", + "min": 0 + } + }, + { + "name": "skipms", + "description": "Number of milliseconds to skip for forward/reverse operations.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "int", + "defaultValue": 3000, + "allowableValues": { + "valueType": "RANGE", + "min": 0 + } + }, + { + "name": "playbackId", + "description": "Playback Id.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Bridge not found" + }, + { + "code": 409, + "reason": "Bridge not in a Stasis application" + }, + { + "code": 422, + "reason": "The format specified is unknown on this system" + } + ] + } + ] + }, + { + "path": "/bridges/{bridgeId}/play/{playbackId}", + "description": "Play media to a bridge", + "operations": [ + { + "httpMethod": "POST", + "since": [ + "12.3.0" + ], + "summary": "Start playback of media on a bridge.", + "notes": "The media URI may be any of a number of URI's. Currently sound:, recording:, number:, digits:, characters:, and tone: URI's are supported. This operation creates a playback resource that can be used to control the playback of media (pause, rewind, fast forward, etc.)", + "nickname": "playWithId", + "responseClass": "Playback", + "parameters": [ + { + "name": "bridgeId", + "description": "Bridge's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "playbackId", + "description": "Playback ID.", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "media", + "description": "Media URIs to play.", + "paramType": "query", + "required": true, + "allowMultiple": true, + "dataType": "string" + }, + { + "name": "announcer_format", + "description": "Format of the 'Anouncer' channel attached to the bridge. Defaults to the format of the channel in the bridge with the highest sampe rate.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "lang", + "description": "For sounds, selects language for sound.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "offsetms", + "description": "Number of milliseconds to skip before playing. Only applies to the first URI if multiple media URIs are specified.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "int", + "defaultValue": 0, + "allowableValues": { + "valueType": "RANGE", + "min": 0 + } + }, + { + "name": "skipms", + "description": "Number of milliseconds to skip for forward/reverse operations.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "int", + "defaultValue": 3000, + "allowableValues": { + "valueType": "RANGE", + "min": 0 + } + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Bridge not found" + }, + { + "code": 409, + "reason": "Bridge not in a Stasis application" + }, + { + "code": 422, + "reason": "The format specified is unknown on this system" + } + ] + + } + ] + }, + { + "path": "/bridges/{bridgeId}/record", + "description": "Record audio on a bridge", + "operations": [ + { + "httpMethod": "POST", + "since": [ + "12.0.0" + ], + "summary": "Start a recording.", + "notes": "This records the mixed audio from all channels participating in this bridge.", + "nickname": "record", + "responseClass": "LiveRecording", + "parameters": [ + { + "name": "bridgeId", + "description": "Bridge's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "name", + "description": "Recording's filename", + "paramType": "query", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "format", + "description": "Format to encode audio in", + "paramType": "query", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "recorder_format", + "description": "Format of the 'Recorder' channel attached to the bridge. Defaults to the same format as the 'format' parameter.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "maxDurationSeconds", + "description": "Maximum duration of the recording, in seconds. 0 for no limit.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "int", + "defaultValue": 0, + "allowableValues": { + "valueType": "RANGE", + "min": 0 + } + }, + { + "name": "maxSilenceSeconds", + "description": "Maximum duration of silence, in seconds. 0 for no limit.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "int", + "defaultValue": 0, + "allowableValues": { + "valueType": "RANGE", + "min": 0 + } + }, + { + "name": "ifExists", + "description": "Action to take if a recording with the same name already exists.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string", + "defaultValue": "fail", + "allowableValues": { + "valueType": "LIST", + "values": [ + "fail", + "overwrite", + "append" + ] + } + }, + { + "name": "beep", + "description": "Play beep when recording begins", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "boolean", + "defaultValue": false + }, + { + "name": "terminateOn", + "description": "DTMF input to terminate recording.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string", + "defaultValue": "none", + "allowableValues": { + "valueType": "LIST", + "values": [ + "none", + "any", + "*", + "#" + ] + } + } + ], + "errorResponses": [ + { + "code": 400, + "reason": "Invalid parameters" + }, + { + "code": 404, + "reason": "Bridge not found" + }, + { + "code": 409, + "reason": "Bridge is not in a Stasis application; A recording with the same name already exists on the system and can not be overwritten because it is in progress or ifExists=fail" + }, + { + "code": 422, + "reason": "The format specified is unknown on this system" + } + ] + } + ] + } + ], + "models": { + "Bridge": { + "id": "Bridge", + "description": "The merging of media from one or more channels.\n\nEveryone on the bridge receives the same audio.", + "properties": { + "id": { + "type": "string", + "description": "Unique identifier for this bridge", + "required": true + }, + "technology": { + "type": "string", + "description": "Name of the current bridging technology", + "required": true + }, + "bridge_type": { + "type": "string", + "description": "Type of bridge technology", + "required": true, + "allowableValues": { + "valueType": "LIST", + "values": [ + "mixing", + "holding" + ] + } + }, + "bridge_class": { + "type": "string", + "description": "Bridging class", + "required": true + }, + "creator": { + "type": "string", + "description": "Entity that created the bridge", + "required": true + }, + "name": { + "type": "string", + "description": "Name the creator gave the bridge", + "required": true + }, + "channels": { + "type": "List[string]", + "description": "Ids of channels participating in this bridge", + "required": true + }, + "video_mode": { + "type": "string", + "description": "The video mode the bridge is using. One of 'none', 'talker', 'sfu', or 'single'.", + "required": false + }, + "video_source_id": { + "type": "string", + "description": "The ID of the channel that is the source of video in this bridge, if one exists.", + "required": false + }, + "creationtime": { + "required": true, + "type": "Date", + "description": "Timestamp when bridge was created" + } + } + } + } +} diff --git a/codegen/src/main/resources/codegen-data/ari_11_0_0/channels.json b/codegen/src/main/resources/codegen-data/ari_11_0_0/channels.json new file mode 100644 index 00000000..a50b8720 --- /dev/null +++ b/codegen/src/main/resources/codegen-data/ari_11_0_0/channels.json @@ -0,0 +1,2399 @@ +{ + "_copyright": "Copyright (C) 2012 - 2013, Digium, Inc.", + "_author": "David M. Lee, II ", + "_svn_revision": "$Revision$", + "apiVersion": "2.0.0", + "swaggerVersion": "1.1", + "basePath": "http://localhost:8088/ari", + "resourcePath": "/api-docs/channels.{format}", + "since": [ + "12.0.0" + ], + "requiresModules": [ + "res_stasis_answer", + "res_stasis_playback", + "res_stasis_recording", + "res_stasis_snoop" + ], + "apis": [ + { + "path": "/channels", + "description": "Active channels", + "operations": [ + { + "httpMethod": "GET", + "since": [ + "12.0.0" + ], + "summary": "List all active channels in Asterisk.", + "nickname": "list", + "responseClass": "List[Channel]" + }, + { + "httpMethod": "POST", + "since": [ + "12.0.0" + ], + "summary": "Create a new channel (originate).", + "notes": "The new channel is created immediately and a snapshot of it returned. If a Stasis application is provided it will be automatically subscribed to the originated channel for further events and updates.", + "nickname": "originate", + "responseClass": "Channel", + "parameters": [ + { + "name": "endpoint", + "description": "Endpoint to call.", + "paramType": "query", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "extension", + "description": "The extension to dial after the endpoint answers. Mutually exclusive with 'app'.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "context", + "description": "The context to dial after the endpoint answers. If omitted, uses 'default'. Mutually exclusive with 'app'.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "priority", + "description": "The priority to dial after the endpoint answers. If omitted, uses 1. Mutually exclusive with 'app'.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "long" + }, + { + "name": "label", + "description": "The label to dial after the endpoint answers. Will supersede 'priority' if provided. Mutually exclusive with 'app'.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "app", + "description": "The application that is subscribed to the originated channel. When the channel is answered, it will be passed to this Stasis application. Mutually exclusive with 'context', 'extension', 'priority', and 'label'.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "appArgs", + "description": "The application arguments to pass to the Stasis application provided by 'app'. Mutually exclusive with 'context', 'extension', 'priority', and 'label'.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "callerId", + "description": "CallerID to use when dialing the endpoint or extension.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "timeout", + "description": "Timeout (in seconds) before giving up dialing, or -1 for no timeout.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "int", + "defaultValue": 30 + }, + { + "name": "variables", + "description": "The \"variables\" key in the body object holds variable key/value pairs to set on the channel on creation. Other keys in the body object are interpreted as query parameters. Ex. { \"endpoint\": \"SIP/Alice\", \"variables\": { \"CALLERID(name)\": \"Alice\" } }", + "paramType": "body", + "required": false, + "dataType": "containers", + "allowMultiple": false + }, + { + "name": "channelId", + "description": "The unique id to assign the channel on creation.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "otherChannelId", + "description": "The unique id to assign the second channel when using local channels.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "originator", + "description": "The unique id of the channel which is originating this one.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "formats", + "description": "The format name capability list to use if originator is not specified. Ex. \"ulaw,slin16\". Format names can be found with \"core show codecs\".", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 400, + "reason": "Invalid parameters for originating a channel." + }, + { + "code": 409, + "reason": "Channel with given unique ID already exists." + } + ] + } + ] + }, + { + "path": "/channels/create", + "description": "Create a channel and place it in a Stasis app, but do not dial the channel yet.", + "operations": [ + { + "httpMethod": "POST", + "since": [ + "14.0.0" + ], + "summary": "Create channel.", + "nickname": "create", + "responseClass": "Channel", + "parameters": [ + { + "name": "endpoint", + "description": "Endpoint for channel communication", + "paramType": "query", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "app", + "description": "Stasis Application to place channel into", + "paramType": "query", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "appArgs", + "description": "The application arguments to pass to the Stasis application provided by 'app'. Mutually exclusive with 'context', 'extension', 'priority', and 'label'.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "channelId", + "description": "The unique id to assign the channel on creation.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "otherChannelId", + "description": "The unique id to assign the second channel when using local channels.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "originator", + "description": "Unique ID of the calling channel", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "formats", + "description": "The format name capability list to use if originator is not specified. Ex. \"ulaw,slin16\". Format names can be found with \"core show codecs\".", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "variables", + "description": "The \"variables\" key in the body object holds variable key/value pairs to set on the channel on creation. Other keys in the body object are interpreted as query parameters. Ex. { \"endpoint\": \"SIP/Alice\", \"variables\": { \"CALLERID(name)\": \"Alice\" } }", + "paramType": "body", + "required": false, + "dataType": "containers", + "allowMultiple": false + } + ], + "errorResponses": [ + { + "code": 409, + "reason": "Channel with given unique ID already exists." + } + ] + } + ] + }, + { + "path": "/channels/{channelId}", + "description": "Active channel", + "operations": [ + { + "httpMethod": "GET", + "since": [ + "12.0.0" + ], + "summary": "Channel details.", + "nickname": "get", + "responseClass": "Channel", + "parameters": [ + { + "name": "channelId", + "description": "Channel's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Channel not found" + } + ] + }, + { + "httpMethod": "POST", + "since": [ + "12.2.0" + ], + "summary": "Create a new channel (originate with id).", + "notes": "The new channel is created immediately and a snapshot of it returned. If a Stasis application is provided it will be automatically subscribed to the originated channel for further events and updates.", + "nickname": "originateWithId", + "responseClass": "Channel", + "parameters": [ + { + "name": "channelId", + "description": "The unique id to assign the channel on creation.", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "endpoint", + "description": "Endpoint to call.", + "paramType": "query", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "extension", + "description": "The extension to dial after the endpoint answers. Mutually exclusive with 'app'.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "context", + "description": "The context to dial after the endpoint answers. If omitted, uses 'default'. Mutually exclusive with 'app'.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "priority", + "description": "The priority to dial after the endpoint answers. If omitted, uses 1. Mutually exclusive with 'app'.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "long" + }, + { + "name": "label", + "description": "The label to dial after the endpoint answers. Will supersede 'priority' if provided. Mutually exclusive with 'app'.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "app", + "description": "The application that is subscribed to the originated channel. When the channel is answered, it will be passed to this Stasis application. Mutually exclusive with 'context', 'extension', 'priority', and 'label'.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "appArgs", + "description": "The application arguments to pass to the Stasis application provided by 'app'. Mutually exclusive with 'context', 'extension', 'priority', and 'label'.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "callerId", + "description": "CallerID to use when dialing the endpoint or extension.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "timeout", + "description": "Timeout (in seconds) before giving up dialing, or -1 for no timeout.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "int", + "defaultValue": 30 + }, + { + "name": "variables", + "description": "The \"variables\" key in the body object holds variable key/value pairs to set on the channel on creation. Other keys in the body object are interpreted as query parameters. Ex. { \"endpoint\": \"SIP/Alice\", \"variables\": { \"CALLERID(name)\": \"Alice\" } }", + "paramType": "body", + "required": false, + "dataType": "containers", + "allowMultiple": false + }, + { + "name": "otherChannelId", + "description": "The unique id to assign the second channel when using local channels.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "originator", + "description": "The unique id of the channel which is originating this one.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "formats", + "description": "The format name capability list to use if originator is not specified. Ex. \"ulaw,slin16\". Format names can be found with \"core show codecs\".", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 400, + "reason": "Invalid parameters for originating a channel." + }, + { + "code": 409, + "reason": "Channel with given unique ID already exists." + } + ] + + }, + { + "httpMethod": "DELETE", + "since": [ + "12.0.0" + ], + "summary": "Delete (i.e. hangup) a channel.", + "nickname": "hangup", + "responseClass": "void", + "parameters": [ + { + "name": "channelId", + "description": "Channel's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "reason_code", + "description": "The reason code for hanging up the channel for detail use. Mutually exclusive with 'reason'. See detail hangup codes at here. https://docs.asterisk.org/Configuration/Miscellaneous/Hangup-Cause-Mappings/", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "reason", + "description": "Reason for hanging up the channel for simple use. Mutually exclusive with 'reason_code'.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string", + "allowableValues": { + "valueType": "LIST", + "values": [ + "normal", + "busy", + "congestion", + "no_answer", + "timeout", + "rejected", + "unallocated", + "normal_unspecified", + "number_incomplete", + "codec_mismatch", + "interworking", + "failure", + "answered_elsewhere" + ] + } + } + ], + "errorResponses": [ + { + "code": 400, + "reason": "Invalid reason for hangup provided" + }, + { + "code": 404, + "reason": "Channel not found" + } + ] + } + ] + }, + { + "path": "/channels/{channelId}/continue", + "description": "Exit application; continue execution in the dialplan", + "operations": [ + { + "httpMethod": "POST", + "since": [ + "12.0.0" + ], + "summary": "Exit application; continue execution in the dialplan.", + "nickname": "continueInDialplan", + "responseClass": "void", + "parameters": [ + { + "name": "channelId", + "description": "Channel's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "context", + "description": "The context to continue to.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "extension", + "description": "The extension to continue to.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "priority", + "description": "The priority to continue to.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "int" + }, + { + "name": "label", + "description": "The label to continue to - will supersede 'priority' if both are provided.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Channel not found" + }, + { + "code": 409, + "reason": "Channel not in a Stasis application" + }, + { + "code": 412, + "reason": "Channel in invalid state" + } + ] + } + ] + }, + { + "path": "/channels/{channelId}/move", + "description": "Move the channel from one Stasis application to another.", + "operations": [ + { + "httpMethod": "POST", + "since": [ + "13.26.0", + "16.3.0" + ], + "summary": "Move the channel from one Stasis application to another.", + "nickname": "move", + "responseClass": "void", + "parameters": [ + { + "name": "channelId", + "description": "Channel's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "app", + "description": "The channel will be passed to this Stasis application.", + "paramType": "query", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "appArgs", + "description": "The application arguments to pass to the Stasis application provided by 'app'.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": "404", + "reason": "Channel not found" + }, + { + "code": "409", + "reason": "Channel not in a Stasis application" + } + ] + } + ] + }, + { + "path": "/channels/{channelId}/redirect", + "description": "Inform the channel that it should redirect itself to a different location. Note that this will almost certainly cause the channel to exit the application.", + "operations": [ + { + "httpMethod": "POST", + "since": [ + "13.3.0" + ], + "summary": "Redirect the channel to a different location.", + "nickname": "redirect", + "responseClass": "void", + "parameters": [ + { + "name": "channelId", + "description": "Channel's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "endpoint", + "description": "The endpoint to redirect the channel to", + "paramType": "query", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 400, + "reason": "Endpoint parameter not provided" + }, + { + "code": 404, + "reason": "Channel or endpoint not found" + }, + { + "code": 409, + "reason": "Channel not in a Stasis application" + }, + { + "code": 422, + "reason": "Endpoint is not the same type as the channel" + }, + { + "code": 412, + "reason": "Channel in invalid state" + } + ] + } + ] + }, + { + "path": "/channels/{channelId}/answer", + "description": "Answer a channel", + "operations": [ + { + "httpMethod": "POST", + "since": [ + "12.0.0" + ], + "summary": "Answer a channel.", + "nickname": "answer", + "responseClass": "void", + "parameters": [ + { + "name": "channelId", + "description": "Channel's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Channel not found" + }, + { + "code": 409, + "reason": "Channel not in a Stasis application" + }, + { + "code": 412, + "reason": "Channel in invalid state" + } + ] + } + ] + }, + { + "path": "/channels/{channelId}/ring", + "description": "Send a ringing indication to a channel", + "operations": [ + { + "httpMethod": "POST", + "since": [ + "12.0.0" + ], + "summary": "Indicate ringing to a channel.", + "nickname": "ring", + "responseClass": "void", + "parameters": [ + { + "name": "channelId", + "description": "Channel's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Channel not found" + }, + { + "code": 409, + "reason": "Channel not in a Stasis application" + }, + { + "code": 412, + "reason": "Channel in invalid state" + } + ] + }, + { + "httpMethod": "DELETE", + "since": [ + "12.0.0" + ], + "summary": "Stop ringing indication on a channel if locally generated.", + "nickname": "ringStop", + "responseClass": "void", + "parameters": [ + { + "name": "channelId", + "description": "Channel's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Channel not found" + }, + { + "code": 409, + "reason": "Channel not in a Stasis application" + }, + { + "code": 412, + "reason": "Channel in invalid state" + } + ] + } + ] + }, + { + "path": "/channels/{channelId}/progress", + "description": "Indicate progress on a channel", + "operations": [ + { + "httpMethod": "POST", + "since": [ + "22.6.0", + "21.11.0", + "20.16.0" + ], + "summary": "Indicate progress on a channel.", + "nickname": "progress", + "responseClass": "void", + "parameters": [ + { + "name": "channelId", + "description": "Channel's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Channel not found" + }, + { + "code": 409, + "reason": "Channel not in a Stasis application" + }, + { + "code": 412, + "reason": "Channel in invalid state" + } + ] + } + ] + }, + { + "path": "/channels/{channelId}/dtmf", + "description": "Send DTMF to a channel", + "operations": [ + { + "httpMethod": "POST", + "since": [ + "12.0.0" + ], + "summary": "Send provided DTMF to a given channel.", + "nickname": "sendDTMF", + "responseClass": "void", + "parameters": [ + { + "name": "channelId", + "description": "Channel's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "dtmf", + "description": "DTMF To send.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "before", + "description": "Amount of time to wait before DTMF digits (specified in milliseconds) start.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "int", + "defaultValue": 0 + }, + { + "name": "between", + "description": "Amount of time in between DTMF digits (specified in milliseconds).", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "int", + "defaultValue": 100 + }, + { + "name": "duration", + "description": "Length of each DTMF digit (specified in milliseconds).", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "int", + "defaultValue": 100 + }, + { + "name": "after", + "description": "Amount of time to wait after DTMF digits (specified in milliseconds) end.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "int", + "defaultValue": 0 + } + ], + "errorResponses": [ + { + "code": 400, + "reason": "DTMF is required" + }, + { + "code": 404, + "reason": "Channel not found" + }, + { + "code": 409, + "reason": "Channel not in a Stasis application" + }, + { + "code": 412, + "reason": "Channel in invalid state" + } + ] + } + ] + }, + { + "path": "/channels/{channelId}/mute", + "description": "Mute a channel", + "operations": [ + { + "httpMethod": "POST", + "since": [ + "12.0.0" + ], + "summary": "Mute a channel.", + "nickname": "mute", + "responseClass": "void", + "parameters": [ + { + "name": "channelId", + "description": "Channel's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "direction", + "description": "Direction in which to mute audio", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string", + "defaultValue": "both", + "allowableValues": { + "valueType": "LIST", + "values": [ + "both", + "in", + "out" + ] + } + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Channel not found" + }, + { + "code": 409, + "reason": "Channel not in a Stasis application" + }, + { + "code": 412, + "reason": "Channel in invalid state" + } + ] + }, + { + "httpMethod": "DELETE", + "since": [ + "12.0.0" + ], + "summary": "Unmute a channel.", + "nickname": "unmute", + "responseClass": "void", + "parameters": [ + { + "name": "channelId", + "description": "Channel's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "direction", + "description": "Direction in which to unmute audio", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string", + "defaultValue": "both", + "allowableValues": { + "valueType": "LIST", + "values": [ + "both", + "in", + "out" + ] + } + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Channel not found" + }, + { + "code": 409, + "reason": "Channel not in a Stasis application" + }, + { + "code": 412, + "reason": "Channel in invalid state" + } + ] + } + ] + }, + { + "path": "/channels/{channelId}/hold", + "description": "Put a channel on hold", + "operations": [ + { + "httpMethod": "POST", + "since": [ + "12.0.0" + ], + "summary": "Hold a channel.", + "nickname": "hold", + "responseClass": "void", + "parameters": [ + { + "name": "channelId", + "description": "Channel's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Channel not found" + }, + { + "code": 409, + "reason": "Channel not in a Stasis application" + }, + { + "code": 412, + "reason": "Channel in invalid state" + } + ] + }, + { + "httpMethod": "DELETE", + "since": [ + "12.0.0" + ], + "summary": "Remove a channel from hold.", + "nickname": "unhold", + "responseClass": "void", + "parameters": [ + { + "name": "channelId", + "description": "Channel's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Channel not found" + }, + { + "code": 409, + "reason": "Channel not in a Stasis application" + }, + { + "code": 412, + "reason": "Channel in invalid state" + } + ] + } + ] + }, + { + "path": "/channels/{channelId}/moh", + "description": "Play music on hold to a channel", + "operations": [ + { + "httpMethod": "POST", + "since": [ + "12.0.0" + ], + "summary": "Play music on hold to a channel.", + "notes": "Using media operations such as /play on a channel playing MOH in this manner will suspend MOH without resuming automatically. If continuing music on hold is desired, the stasis application must reinitiate music on hold.", + "nickname": "startMoh", + "responseClass": "void", + "parameters": [ + { + "name": "channelId", + "description": "Channel's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "mohClass", + "description": "Music on hold class to use", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Channel not found" + }, + { + "code": 409, + "reason": "Channel not in a Stasis application" + }, + { + "code": 412, + "reason": "Channel in invalid state" + } + ] + }, + { + "httpMethod": "DELETE", + "since": [ + "12.0.0" + ], + "summary": "Stop playing music on hold to a channel.", + "nickname": "stopMoh", + "responseClass": "void", + "parameters": [ + { + "name": "channelId", + "description": "Channel's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Channel not found" + }, + { + "code": 409, + "reason": "Channel not in a Stasis application" + }, + { + "code": 412, + "reason": "Channel in invalid state" + } + ] + } + ] + }, + { + "path": "/channels/{channelId}/silence", + "description": "Play silence to a channel", + "operations": [ + { + "httpMethod": "POST", + "since": [ + "12.0.0" + ], + "summary": "Play silence to a channel.", + "notes": "Using media operations such as /play on a channel playing silence in this manner will suspend silence without resuming automatically.", + "nickname": "startSilence", + "responseClass": "void", + "parameters": [ + { + "name": "channelId", + "description": "Channel's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Channel not found" + }, + { + "code": 409, + "reason": "Channel not in a Stasis application" + }, + { + "code": 412, + "reason": "Channel in invalid state" + } + ] + }, + { + "httpMethod": "DELETE", + "since": [ + "12.0.0" + ], + "summary": "Stop playing silence to a channel.", + "nickname": "stopSilence", + "responseClass": "void", + "parameters": [ + { + "name": "channelId", + "description": "Channel's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Channel not found" + }, + { + "code": 409, + "reason": "Channel not in a Stasis application" + }, + { + "code": 412, + "reason": "Channel in invalid state" + } + ] + } + ] + }, + { + "path": "/channels/{channelId}/play", + "description": "Play media to a channel", + "operations": [ + { + "httpMethod": "POST", + "since": [ + "12.0.0" + ], + "summary": "Start playback of media.", + "notes": "The media URI may be any of a number of URI's. Currently sound:, recording:, number:, digits:, characters:, and tone: URI's are supported. This operation creates a playback resource that can be used to control the playback of media (pause, rewind, fast forward, etc.)", + "nickname": "play", + "responseClass": "Playback", + "parameters": [ + { + "name": "channelId", + "description": "Channel's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "media", + "description": "Media URIs to play.", + "paramType": "query", + "required": true, + "allowMultiple": true, + "dataType": "string" + }, + { + "name": "lang", + "description": "For sounds, selects language for sound.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "offsetms", + "description": "Number of milliseconds to skip before playing. Only applies to the first URI if multiple media URIs are specified.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "int" + }, + { + "name": "skipms", + "description": "Number of milliseconds to skip for forward/reverse operations.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "int", + "defaultValue": 3000 + }, + { + "name": "playbackId", + "description": "Playback ID.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Channel not found" + }, + { + "code": 409, + "reason": "Channel not in a Stasis application" + }, + { + "code": 412, + "reason": "Channel in invalid state" + } + ] + } + ] + }, + { + "path": "/channels/{channelId}/play/{playbackId}", + "description": "Play media to a channel", + "operations": [ + { + "httpMethod": "POST", + "since": [ + "12.2.0" + ], + "summary": "Start playback of media and specify the playbackId.", + "notes": "The media URI may be any of a number of URI's. Currently sound:, recording:, number:, digits:, characters:, and tone: URI's are supported. This operation creates a playback resource that can be used to control the playback of media (pause, rewind, fast forward, etc.)", + "nickname": "playWithId", + "responseClass": "Playback", + "parameters": [ + { + "name": "channelId", + "description": "Channel's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "playbackId", + "description": "Playback ID.", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "media", + "description": "Media URIs to play.", + "paramType": "query", + "required": true, + "allowMultiple": true, + "dataType": "string" + }, + { + "name": "lang", + "description": "For sounds, selects language for sound.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "offsetms", + "description": "Number of milliseconds to skip before playing. Only applies to the first URI if multiple media URIs are specified.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "int" + }, + { + "name": "skipms", + "description": "Number of milliseconds to skip for forward/reverse operations.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "int", + "defaultValue": 3000 + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Channel not found" + }, + { + "code": 409, + "reason": "Channel not in a Stasis application" + }, + { + "code": 412, + "reason": "Channel in invalid state" + } + ] + } + ] + }, + { + "path": "/channels/{channelId}/record", + "description": "Record audio from a channel", + "operations": [ + { + "httpMethod": "POST", + "since": [ + "12.0.0" + ], + "summary": "Start a recording.", + "notes": "Record audio from a channel. Note that this will not capture audio sent to the channel. The bridge itself has a record feature if that's what you want.", + "nickname": "record", + "responseClass": "LiveRecording", + "parameters": [ + { + "name": "channelId", + "description": "Channel's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "name", + "description": "Recording's filename", + "paramType": "query", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "format", + "description": "Format to encode audio in", + "paramType": "query", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "maxDurationSeconds", + "description": "Maximum duration of the recording, in seconds. 0 for no limit", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "int", + "defaultValue": 0, + "allowableValues": { + "valueType": "RANGE", + "min": 0 + } + }, + { + "name": "maxSilenceSeconds", + "description": "Maximum duration of silence, in seconds. 0 for no limit", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "int", + "defaultValue": 0, + "allowableValues": { + "valueType": "RANGE", + "min": 0 + } + }, + { + "name": "ifExists", + "description": "Action to take if a recording with the same name already exists.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string", + "defaultValue": "fail", + "allowableValues": { + "valueType": "LIST", + "values": [ + "fail", + "overwrite", + "append" + ] + } + }, + { + "name": "beep", + "description": "Play beep when recording begins", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "boolean", + "defaultValue": false + }, + { + "name": "terminateOn", + "description": "DTMF input to terminate recording", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string", + "defaultValue": "none", + "allowableValues": { + "valueType": "LIST", + "values": [ + "none", + "any", + "*", + "#" + ] + } + } + ], + "errorResponses": [ + { + "code": 400, + "reason": "Invalid parameters" + }, + { + "code": 404, + "reason": "Channel not found" + }, + { + "code": 409, + "reason": "Channel is not in a Stasis application; the channel is currently bridged with other channels; A recording with the same name already exists on the system and can not be overwritten because it is in progress or ifExists=fail" + }, + { + "code": 422, + "reason": "The format specified is unknown on this system" + } + ] + } + ] + }, + { + "path": "/channels/{channelId}/variable", + "description": "Variables on a channel", + "operations": [ + { + "httpMethod": "GET", + "since": [ + "12.0.0" + ], + "summary": "Get the value of a channel variable or function.", + "nickname": "getChannelVar", + "responseClass": "Variable", + "parameters": [ + { + "name": "channelId", + "description": "Channel's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "variable", + "description": "The channel variable or function to get", + "paramType": "query", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 400, + "reason": "Missing variable parameter." + }, + { + "code": 404, + "reason": "Channel or variable not found" + }, + { + "code": 409, + "reason": "Channel not in a Stasis application" + } + ] + }, + { + "httpMethod": "POST", + "since": [ + "12.0.0" + ], + "summary": "Set the value of a channel variable or function.", + "nickname": "setChannelVar", + "responseClass": "void", + "parameters": [ + { + "name": "channelId", + "description": "Channel's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "variable", + "description": "The channel variable or function to set", + "paramType": "query", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "value", + "description": "The value to set the variable to", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 400, + "reason": "Missing variable parameter." + }, + { + "code": 404, + "reason": "Channel not found" + }, + { + "code": 409, + "reason": "Channel not in a Stasis application" + } + ] + } + ] + }, + { + "path": "/channels/{channelId}/snoop", + "description": "Snoop (spy/whisper) on a channel", + "operations": [ + { + "httpMethod": "POST", + "since": [ + "12.0.0" + ], + "summary": "Start snooping.", + "notes": "Snoop (spy/whisper) on a specific channel.", + "nickname": "snoopChannel", + "responseClass": "Channel", + "parameters": [ + { + "name": "channelId", + "description": "Channel's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "spy", + "description": "Direction of audio to spy on", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string", + "defaultValue": "none", + "allowableValues": { + "valueType": "LIST", + "values": [ + "none", + "both", + "out", + "in" + ] + } + }, + { + "name": "whisper", + "description": "Direction of audio to whisper into", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string", + "defaultValue": "none", + "allowableValues": { + "valueType": "LIST", + "values": [ + "none", + "both", + "out", + "in" + ] + } + }, + { + "name": "app", + "description": "Application the snooping channel is placed into", + "paramType": "query", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "appArgs", + "description": "The application arguments to pass to the Stasis application", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "snoopId", + "description": "Unique ID to assign to snooping channel", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 400, + "reason": "Invalid parameters" + }, + { + "code": 404, + "reason": "Channel not found" + } + ] + } + ] + }, + { + "path": "/channels/{channelId}/snoop/{snoopId}", + "description": "Snoop (spy/whisper) on a channel", + "operations": [ + { + "httpMethod": "POST", + "since": [ + "12.2.0" + ], + "summary": "Start snooping.", + "notes": "Snoop (spy/whisper) on a specific channel.", + "nickname": "snoopChannelWithId", + "responseClass": "Channel", + "parameters": [ + { + "name": "channelId", + "description": "Channel's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "snoopId", + "description": "Unique ID to assign to snooping channel", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "spy", + "description": "Direction of audio to spy on", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string", + "defaultValue": "none", + "allowableValues": { + "valueType": "LIST", + "values": [ + "none", + "both", + "out", + "in" + ] + } + }, + { + "name": "whisper", + "description": "Direction of audio to whisper into", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string", + "defaultValue": "none", + "allowableValues": { + "valueType": "LIST", + "values": [ + "none", + "both", + "out", + "in" + ] + } + }, + { + "name": "app", + "description": "Application the snooping channel is placed into", + "paramType": "query", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "appArgs", + "description": "The application arguments to pass to the Stasis application", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 400, + "reason": "Invalid parameters" + }, + { + "code": 404, + "reason": "Channel not found" + } + ] + } + ] + }, + { + "path": "/channels/{channelId}/dial", + "description": "Dial a channel", + "operations": [ + { + "httpMethod": "POST", + "since": [ + "14.0.0" + ], + "summary": "Dial a created channel.", + "nickname": "dial", + "responseClass": "void", + "parameters": [ + { + "name": "channelId", + "description": "Channel's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "caller", + "description": "Channel ID of caller", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "timeout", + "description": "Dial timeout", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "int", + "defaultValue": 0, + "allowableValues": { + "valueType": "RANGE", + "min": 0 + } + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Channel cannot be found." + }, + { + "code": 409, + "reason": "Channel cannot be dialed." + } + ] + } + ] + }, + { + "path": "/channels/{channelId}/rtp_statistics", + "description": "Get RTP statistics information for RTP on a channel", + "operations": [ + { + "httpMethod": "GET", + "since": [ + "13.27.0", + "16.4.0" + ], + "summary": "RTP stats on a channel.", + "nickname": "rtpstatistics", + "responseClass": "RTPstat", + "parameters": [ + { + "name": "channelId", + "description": "Channel's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Channel cannot be found." + } + ] + } + ] + }, + { + "path": "/channels/externalMedia", + "description": "Create a channel to an External Media source/sink.", + "operations": [ + { + "httpMethod": "POST", + "since": [ + "16.6.0", + "17.1.0" + ], + "summary": "Start an External Media session.", + "notes": "Create a channel to an External Media source/sink. The combination of transport and encapsulation will select one of chan_rtp(udp/rtp), chan_audiosocket(tcp/audiosocket) or chan_websocket(websocket/none) channel drivers.", + "nickname": "externalMedia", + "responseClass": "Channel", + "parameters": [ + { + "name": "channelId", + "description": "The unique id to assign the channel on creation.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "app", + "description": "Stasis Application to place channel into", + "paramType": "query", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "variables", + "description": "The \"variables\" key in the body object holds variable key/value pairs to set on the channel on creation. Other keys in the body object are interpreted as query parameters. Ex. { \"endpoint\": \"SIP/Alice\", \"variables\": { \"CALLERID(name)\": \"Alice\" } }", + "paramType": "body", + "required": false, + "dataType": "containers", + "allowMultiple": false + }, + { + "name": "external_host", + "description": "Hostname/ip:port or websocket_client connection ID of external host. May be empty for a websocket server connection.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "encapsulation", + "description": "Payload encapsulation protocol. Must be 'none' for the websocket transport.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string", + "defaultValue": "rtp", + "allowableValues": { + "valueType": "LIST", + "values": [ + "rtp", + "audiosocket", + "none" + ] + } + }, + { + "name": "transport", + "description": "Transport protocol", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string", + "defaultValue": "udp", + "allowableValues": { + "valueType": "LIST", + "values": [ + "udp", + "tcp", + "websocket" + ] + } + }, + { + "name": "connection_type", + "description": "Connection type (client/server). 'server' is only valid for the websocket transport.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string", + "defaultValue": "client", + "allowableValues": { + "valueType": "LIST", + "values": [ + "client", + "server" + ] + } + }, + { + "name": "format", + "description": "Format to encode audio in", + "paramType": "query", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "direction", + "description": "External media direction", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string", + "defaultValue": "both", + "allowableValues": { + "valueType": "LIST", + "values": [ + "both" + ] + } + }, + { + "name": "data", + "description": "An arbitrary data field", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 400, + "reason": "Invalid parameters" + }, + { + "code": 409, + "reason": "Channel is not in a Stasis application; Channel is already bridged" + } + ] + } + ] + }, + { + "path": "/channels/{channelId}/transfer_progress", + "description": "Inform the channel that the transfer is in progress.", + "operations": [ + { + "httpMethod": "POST", + "since": [ + "22.3.0", + "21.8.0", + "20.13.0" + ], + "summary": "Inform the channel about the progress of the attended/blind transfer.", + "nickname": "transfer_progress", + "responseClass": "void", + "parameters": [ + { + "name": "channelId", + "description": "Channel's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "states", + "description": "The state of the progress", + "paramType": "query", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 400, + "reason": "Endpoint parameter not provided" + }, + { + "code": 404, + "reason": "Channel or endpoint not found" + }, + { + "code": 409, + "reason": "Channel not in a Stasis application" + }, + { + "code": 412, + "reason": "Channel in invalid state" + } + ] + } + ] + } + ], + "models": { + "Dialed": { + "id": "Dialed", + "description": "Dialed channel information.", + "properties": {} + }, + "DialplanCEP": { + "id": "DialplanCEP", + "description": "Dialplan location (context/extension/priority)", + "properties": { + "context": { + "required": true, + "type": "string", + "description": "Context in the dialplan" + }, + "exten": { + "required": true, + "type": "string", + "description": "Extension in the dialplan" + }, + "priority": { + "required": true, + "type": "long", + "description": "Priority in the dialplan" + }, + "app_name": { + "required": true, + "type": "string", + "description": "Name of current dialplan application" + }, + "app_data": { + "required": true, + "type": "string", + "description": "Parameter of current dialplan application" + } + } + }, + "CallerID": { + "id": "CallerID", + "description": "Caller identification", + "properties": { + "name": { + "required": true, + "type": "string" + }, + "number": { + "required": true, + "type": "string" + } + } + }, + "RTPstat": { + "id": "RTPstat", + "description": "A statistics of a RTP.", + "properties": { + "txcount": { + "required": true, + "type": "int", + "description": "Number of packets transmitted." + }, + "rxcount": { + "required": true, + "type": "int", + "description": "Number of packets received." + }, + "txjitter": { + "required": false, + "type": "double", + "description": "Jitter on transmitted packets." + }, + "rxjitter": { + "required": false, + "type": "double", + "description": "Jitter on received packets." + }, + "remote_maxjitter": { + "required": false, + "type": "double", + "description": "Maximum jitter on remote side." + }, + "remote_minjitter": { + "required": false, + "type": "double", + "description": "Minimum jitter on remote side." + }, + "remote_normdevjitter": { + "required": false, + "type": "double", + "description": "Average jitter on remote side." + }, + "remote_stdevjitter": { + "required": false, + "type": "double", + "description": "Standard deviation jitter on remote side." + }, + "local_maxjitter": { + "required": false, + "type": "double", + "description": "Maximum jitter on local side." + }, + "local_minjitter": { + "required": false, + "type": "double", + "description": "Minimum jitter on local side." + }, + "local_normdevjitter": { + "required": false, + "type": "double", + "description": "Average jitter on local side." + }, + "local_stdevjitter": { + "required": false, + "type": "double", + "description": "Standard deviation jitter on local side." + }, + "txploss": { + "required": true, + "type": "int", + "description": "Number of transmitted packets lost." + }, + "rxploss": { + "required": true, + "type": "int", + "description": "Number of received packets lost." + }, + "remote_maxrxploss": { + "required": false, + "type": "double", + "description": "Maximum number of packets lost on remote side." + }, + "remote_minrxploss": { + "required": false, + "type": "double", + "description": "Minimum number of packets lost on remote side." + }, + "remote_normdevrxploss": { + "required": false, + "type": "double", + "description": "Average number of packets lost on remote side." + }, + "remote_stdevrxploss": { + "required": false, + "type": "double", + "description": "Standard deviation packets lost on remote side." + }, + "local_maxrxploss": { + "required": false, + "type": "double", + "description": "Maximum number of packets lost on local side." + }, + "local_minrxploss": { + "required": false, + "type": "double", + "description": "Minimum number of packets lost on local side." + }, + "local_normdevrxploss": { + "required": false, + "type": "double", + "description": "Average number of packets lost on local side." + }, + "local_stdevrxploss": { + "required": false, + "type": "double", + "description": "Standard deviation packets lost on local side." + }, + "rtt": { + "required": false, + "type": "double", + "description": "Total round trip time." + }, + "maxrtt": { + "required": false, + "type": "double", + "description": "Maximum round trip time." + }, + "minrtt": { + "required": false, + "type": "double", + "description": "Minimum round trip time." + }, + "normdevrtt": { + "required": false, + "type": "double", + "description": "Average round trip time." + }, + "stdevrtt": { + "required": false, + "type": "double", + "description": "Standard deviation round trip time." + }, + "local_ssrc": { + "required": true, + "type": "int", + "description": "Our SSRC." + }, + "remote_ssrc": { + "required": true, + "type": "int", + "description": "Their SSRC." + }, + "txoctetcount": { + "required": true, + "type": "int", + "description": "Number of octets transmitted." + }, + "rxoctetcount": { + "required": true, + "type": "int", + "description": "Number of octets received." + }, + "channel_uniqueid": { + "required": true, + "type": "string", + "description": "The Asterisk channel's unique ID that owns this instance." + } + } + }, + "Channel": { + "id": "Channel", + "description": "A specific communication connection between Asterisk and an Endpoint.", + "properties": { + "id": { + "required": true, + "type": "string", + "description": "Unique identifier of the channel.\n\nThis is the same as the Uniqueid field in AMI." + }, + "protocol_id": { + "required": true, + "type": "string", + "description": "Protocol id from underlying channel driver (i.e. Call-ID for chan_pjsip; will be empty if not applicable or not implemented by driver)." + }, + "name": { + "required": true, + "type": "string", + "description": "Name of the channel (i.e. SIP/foo-0000a7e3)" + }, + "state": { + "required": true, + "type": "string", + "allowableValues": { + "valueType": "LIST", + "values": [ + "Down", + "Rsrved", + "OffHook", + "Dialing", + "Ring", + "Ringing", + "Up", + "Busy", + "Dialing Offhook", + "Pre-ring", + "Unknown" + ] + } + }, + "caller": { + "required": true, + "type": "CallerID" + }, + "connected": { + "required": true, + "type": "CallerID" + }, + "accountcode": { + "required": true, + "type": "string" + }, + "dialplan": { + "required": true, + "type": "DialplanCEP", + "description": "Current location in the dialplan" + }, + "creationtime": { + "required": true, + "type": "Date", + "description": "Timestamp when channel was created" + }, + "language": { + "required": true, + "type": "string", + "description": "The default spoken language" + }, + "channelvars": { + "required": false, + "type": "object", + "description": "Channel variables" + }, + "caller_rdnis": { + "type": "string", + "description": "The Caller ID RDNIS" + }, + "tenantid": { + "required": false, + "type": "string", + "description": "The Tenant ID for the channel" + } + } + } + } +} diff --git a/codegen/src/main/resources/codegen-data/ari_11_0_0/deviceStates.json b/codegen/src/main/resources/codegen-data/ari_11_0_0/deviceStates.json new file mode 100644 index 00000000..f0a889bc --- /dev/null +++ b/codegen/src/main/resources/codegen-data/ari_11_0_0/deviceStates.json @@ -0,0 +1,169 @@ +{ + "_copyright": "Copyright (C) 2012 - 2013, Digium, Inc.", + "_author": "Kevin Harwell ", + "_svn_revision": "$Revision$", + "apiVersion": "2.0.0", + "swaggerVersion": "1.1", + "basePath": "http://localhost:8088/ari", + "resourcePath": "/api-docs/deviceStates.{format}", + "since": [ + "12.0.0" + ], + "requiresModules": [ + "res_stasis_device_state" + ], + "apis": [ + { + "path": "/deviceStates", + "description": "Device states", + "operations": [ + { + "httpMethod": "GET", + "since": [ + "12.0.0" + ], + "summary": "List all ARI controlled device states.", + "nickname": "list", + "responseClass": "List[DeviceState]" + } + ] + }, + { + "path": "/deviceStates/{deviceName}", + "description": "Device state", + "operations": [ + { + "httpMethod": "GET", + "since": [ + "12.0.0" + ], + "summary": "Retrieve the current state of a device.", + "nickname": "get", + "responseClass": "DeviceState", + "parameters": [ + { + "name": "deviceName", + "description": "Name of the device", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ] + }, + { + "httpMethod": "PUT", + "since": [ + "12.0.0" + ], + "summary": "Change the state of a device controlled by ARI. (Note - implicitly creates the device state).", + "nickname": "update", + "responseClass": "void", + "parameters": [ + { + "name": "deviceName", + "description": "Name of the device", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "deviceState", + "description": "Device state value", + "paramType": "query", + "required": true, + "allowMultiple": false, + "dataType": "string", + "allowableValues": { + "valueType": "LIST", + "values": [ + "NOT_INUSE", + "INUSE", + "BUSY", + "INVALID", + "UNAVAILABLE", + "RINGING", + "RINGINUSE", + "ONHOLD" + ] + } + + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Device name is missing" + }, + { + "code": 409, + "reason": "Uncontrolled device specified" + } + ] + }, + { + "httpMethod": "DELETE", + "since": [ + "12.0.0" + ], + "summary": "Destroy a device-state controlled by ARI.", + "nickname": "delete", + "responseClass": "void", + "parameters": [ + { + "name": "deviceName", + "description": "Name of the device", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Device name is missing" + }, + { + "code": 409, + "reason": "Uncontrolled device specified" + } + ] + } + ] + } + ], + "models": { + "DeviceState": { + "id": "DeviceState", + "description": "Represents the state of a device.", + "properties": { + "name": { + "type": "string", + "description": "Name of the device.", + "required": true + }, + "state": { + "type": "string", + "description": "Device's state", + "required": true, + "allowableValues": { + "valueType": "LIST", + "values": [ + "UNKNOWN", + "NOT_INUSE", + "INUSE", + "BUSY", + "INVALID", + "UNAVAILABLE", + "RINGING", + "RINGINUSE", + "ONHOLD" + ] + } + } + } + } + } +} diff --git a/codegen/src/main/resources/codegen-data/ari_11_0_0/endpoints.json b/codegen/src/main/resources/codegen-data/ari_11_0_0/endpoints.json new file mode 100644 index 00000000..233f2c84 --- /dev/null +++ b/codegen/src/main/resources/codegen-data/ari_11_0_0/endpoints.json @@ -0,0 +1,423 @@ +{ + "_copyright": "Copyright (C) 2012 - 2013, Digium, Inc.", + "_author": "David M. Lee, II ", + "_svn_revision": "$Revision$", + "apiVersion": "2.0.0", + "swaggerVersion": "1.1", + "basePath": "http://localhost:8088/ari", + "resourcePath": "/api-docs/endpoints.{format}", + "since": [ + "12.0.0" + ], + "apis": [ + { + "path": "/endpoints", + "description": "Asterisk endpoints", + "operations": [ + { + "httpMethod": "GET", + "since": [ + "12.0.0" + ], + "summary": "List all endpoints.", + "nickname": "list", + "responseClass": "List[Endpoint]" + } + ] + }, + { + "path": "/endpoints/sendMessage", + "description": "Send a message to some technology URI or endpoint.", + "operations": [ + { + "httpMethod": "PUT", + "since": [ + "13.0.0" + ], + "summary": "Send a message to some technology URI or endpoint.", + "nickname": "sendMessage", + "responseClass": "void", + "parameters": [ + { + "name": "to", + "description": "The endpoint resource or technology specific URI to send the message to. Valid resources are pjsip, and xmpp.", + "paramType": "query", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "from", + "description": "The endpoint resource or technology specific identity to send this message from. Valid resources are pjsip, and xmpp.", + "paramType": "query", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "body", + "description": "The body of the message", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "variables", + "descriptioni": "The \"variables\" key in the body object holds technology specific key/value pairs to append to the message. These can be interpreted and used by the various resource types; for example, pjsip and sip resource types will add the key/value pairs as SIP headers,", + "paramType": "body", + "required": false, + "dataType": "containers", + "allowMultiple": false + } + ], + "errorResponses": [ + { + "code": 400, + "reason": "Invalid parameters for sending a message." + }, + { + "code": 404, + "reason": "Endpoint not found" + } + ] + } + ] + }, + { + "path": "/endpoints/refer", + "description": "Refer an endpoint or technology URI to some technology URI or endpoint.", + "operations": [ + { + "httpMethod": "POST", + "since": [ + "18.20.0", + "20.5.0" + ], + "summary": "Refer an endpoint or technology URI to some technology URI or endpoint.", + "nickname": "refer", + "responseClass": "void", + "parameters": [ + { + "name": "to", + "description": "The endpoint resource or technology specific URI that should be referred to somewhere. Valid resource is pjsip.", + "paramType": "query", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "from", + "description": "The endpoint resource or technology specific identity to refer from.", + "paramType": "query", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "refer_to", + "description": "The endpoint resource or technology specific URI to refer to.", + "paramType": "query", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "to_self", + "description": "If true and \"refer_to\" refers to an Asterisk endpoint, the \"refer_to\" value is set to point to this Asterisk endpoint - so the referee is referred to Asterisk. Otherwise, use the contact URI associated with the endpoint.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "boolean", + "defaultValue": false + }, + { + "name": "variables", + "description": "The \"variables\" key in the body object holds technology specific key/value pairs to append to the message. These can be interpreted and used by the various resource types; for example, the pjsip resource type will add the key/value pairs as SIP headers. The \"display_name\" key is used by the PJSIP technology. Its value will be prepended as a display name to the Refer-To URI.", + "paramType": "body", + "required": false, + "dataType": "containers", + "allowMultiple": false + } + ], + "errorResponses": [ + { + "code": 400, + "reason": "Invalid parameters for referring." + }, + { + "code": 404, + "reason": "Endpoint not found" + } + ] + } + ] + }, + { + "path": "/endpoints/{tech}", + "description": "Asterisk endpoints", + "operations": [ + { + "httpMethod": "GET", + "since": [ + "12.0.0" + ], + "summary": "List available endoints for a given endpoint technology.", + "nickname": "listByTech", + "responseClass": "List[Endpoint]", + "parameters": [ + { + "name": "tech", + "description": "Technology of the endpoints (pjsip,iax2,...)", + "paramType": "path", + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Endpoints not found" + } + ] + } + ] + }, + { + "path": "/endpoints/{tech}/{resource}", + "description": "Single endpoint", + "operations": [ + { + "httpMethod": "GET", + "since": [ + "12.0.0" + ], + "summary": "Details for an endpoint.", + "nickname": "get", + "responseClass": "Endpoint", + "parameters": [ + { + "name": "tech", + "description": "Technology of the endpoint", + "paramType": "path", + "dataType": "string" + }, + { + "name": "resource", + "description": "ID of the endpoint", + "paramType": "path", + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 400, + "reason": "Invalid parameters for sending a message." + }, + { + "code": 404, + "reason": "Endpoints not found" + } + ] + } + ] + }, + { + "path": "/endpoints/{tech}/{resource}/sendMessage", + "description": "Send a message to some endpoint in a technology.", + "operations": [ + { + "httpMethod": "PUT", + "since": [ + "13.0.0" + ], + "summary": "Send a message to some endpoint in a technology.", + "nickname": "sendMessageToEndpoint", + "responseClass": "void", + "parameters": [ + { + "name": "tech", + "description": "Technology of the endpoint", + "paramType": "path", + "dataType": "string" + }, + { + "name": "resource", + "description": "ID of the endpoint", + "paramType": "path", + "dataType": "string" + }, + { + "name": "from", + "description": "The endpoint resource or technology specific identity to send this message from. Valid resources are pjsip and xmpp.", + "paramType": "query", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "body", + "description": "The body of the message", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "variables", + "descriptioni": "The \"variables\" key in the body object holds technology specific key/value pairs to append to the message. These can be interpreted and used by the various resource types; for example, pjsip and sip resource types will add the key/value pairs as SIP headers,", + "paramType": "body", + "required": false, + "dataType": "containers", + "allowMultiple": false + } + ], + "errorResponses": [ + { + "code": 400, + "reason": "Invalid parameters for sending a message." + }, + { + "code": 404, + "reason": "Endpoint not found" + } + ] + } + ] + }, + { + "path": "/endpoints/{tech}/{resource}/refer", + "description": "Refer an endpoint in a technology to some technology URI or endpoint..", + "operations": [ + { + "httpMethod": "POST", + "since": [ + "18.20.0", + "20.5.0" + ], + "summary": "Refer an endpoint or technology URI to some technology URI or endpoint.", + "nickname": "referToEndpoint", + "responseClass": "void", + "parameters": [ + { + "name": "tech", + "description": "Technology of the endpoint", + "paramType": "path", + "dataType": "string" + }, + { + "name": "resource", + "description": "ID of the endpoint", + "paramType": "path", + "dataType": "string" + }, + { + "name": "from", + "description": "The endpoint resource or technology specific identity to refer from.", + "paramType": "query", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "refer_to", + "description": "The endpoint resource or technology specific URI to refer to.", + "paramType": "query", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "to_self", + "description": "If true and \"refer_to\" refers to an Asterisk endpoint, the \"refer_to\" value is set to point to this Asterisk endpoint - so the referee is referred to Asterisk. Otherwise, use the contact URI associated with the endpoint.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "boolean", + "defaultValue": false + }, + { + "name": "variables", + "description": "The \"variables\" key in the body object holds technology specific key/value pairs to append to the message. These can be interpreted and used by the various resource types; for example, the pjsip resource type will add the key/value pairs as SIP headers,", + "paramType": "body", + "required": false, + "dataType": "containers", + "allowMultiple": false + } + ], + "errorResponses": [ + { + "code": 400, + "reason": "Invalid parameters for referring." + }, + { + "code": 404, + "reason": "Endpoint not found" + } + ] + } + ] + } + ], + "models": { + "Endpoint": { + "id": "Endpoint", + "description": "An external device that may offer/accept calls to/from Asterisk.\n\nUnlike most resources, which have a single unique identifier, an endpoint is uniquely identified by the technology/resource pair.", + "properties": { + "technology": { + "type": "string", + "description": "Technology of the endpoint", + "required": true + }, + "resource": { + "type": "string", + "description": "Identifier of the endpoint, specific to the given technology.", + "required": true + }, + "state": { + "type": "string", + "description": "Endpoint's state", + "required": false, + "allowableValues": { + "valueType": "LIST", + "values": [ + "unknown", + "offline", + "online" + ] + } + }, + "channel_ids": { + "type": "List[string]", + "description": "Id's of channels associated with this endpoint", + "required": true + } + } + }, + "TextMessage": { + "id": "TextMessage", + "description": "A text message.", + "properties": { + "from": { + "type": "string", + "description": "A technology specific URI specifying the source of the message. For pjsip technology, any SIP URI can be specified. For xmpp, the URI must correspond to the client connection being used to send the message.", + "required": true + }, + "to": { + "type": "string", + "description": "A technology specific URI specifying the destination of the message. Valid technologies include pjsip, and xmp. The destination of a message should be an endpoint.", + "required": true + }, + "body": { + "type": "string", + "description": "The text of the message.", + "required": true + }, + "variables": { + "type": "object", + "description": "Technology specific key/value pairs (JSON object) associated with the message.", + "required": false + } + } + } + } +} diff --git a/codegen/src/main/resources/codegen-data/ari_11_0_0/events.json b/codegen/src/main/resources/codegen-data/ari_11_0_0/events.json new file mode 100644 index 00000000..f08a665e --- /dev/null +++ b/codegen/src/main/resources/codegen-data/ari_11_0_0/events.json @@ -0,0 +1,1184 @@ +{ + "_copyright": "Copyright (C) 2012 - 2013, Digium, Inc.", + "_author": "David M. Lee, II ", + "_svn_revision": "$Revision$", + "apiVersion": "2.0.0", + "swaggerVersion": "1.2", + "basePath": "http://localhost:8088/ari", + "resourcePath": "/api-docs/events.{format}", + "since": [ + "12.0.0" + ], + "requiresModules": [ + "res_http_websocket" + ], + "apis": [ + { + "path": "/events", + "description": "Events from Asterisk to applications", + "operations": [ + { + "httpMethod": "GET", + "since": [ + "12.0.0" + ], + "upgrade": "websocket", + "websocketProtocol": "ari", + "summary": "WebSocket connection for events.", + "nickname": "eventWebsocket", + "responseClass": "Message", + "parameters": [ + { + "name": "app", + "description": "Applications to subscribe to.", + "paramType": "query", + "required": true, + "allowMultiple": true, + "dataType": "string" + }, + { + "name": "subscribeAll", + "description": "Subscribe to all Asterisk events. If provided, the applications listed will be subscribed to all events, effectively disabling the application specific subscriptions. Default is 'false'.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "boolean" + } + ] + } + ] + }, + { + "path": "/events/user/{eventName}", + "description": "Stasis application user events", + "operations": [ + { + "httpMethod": "POST", + "since": [ + "12.3.0" + ], + "summary": "Generate a user event.", + "nickname": "userEvent", + "responseClass": "void", + "parameters": [ + { + "name": "eventName", + "description": "Event name", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "application", + "description": "The name of the application that will receive this event", + "paramType": "query", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "source", + "description": "URI for event source (channel:{channelId}, bridge:{bridgeId}, endpoint:{tech}/{resource}, deviceState:{deviceName}", + "paramType": "query", + "required": false, + "allowMultiple": true, + "dataType": "string" + }, + { + "name": "variables", + "description": "The \"variables\" key in the body object holds custom key/value pairs to add to the user event. Ex. { \"variables\": { \"key\": \"value\" } }", + "paramType": "body", + "required": false, + "allowMultiple": false, + "dataType": "containers" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Application does not exist." + }, + { + "code": 422, + "reason": "Event source not found." + }, + { + "code": 400, + "reason": "Invalid even tsource URI or userevent data." + } + ] + } + ] + } + ], + "models": { + "Message": { + "id": "Message", + "description": "Base type for errors and events", + "discriminator": "type", + "properties": { + "type": { + "type": "string", + "required": true, + "description": "Indicates the type of this message." + }, + "asterisk_id": { + "type": "string", + "required": false, + "description": "The unique ID for the Asterisk instance that raised this event." + } + }, + "subTypes": [ + "MissingParams", + "Event" + ] + }, + "MissingParams": { + "id": "MissingParams", + "description": "Error event sent when required params are missing.", + "properties": { + "params": { + "required": true, + "type": "List[string]", + "description": "A list of the missing parameters" + } + } + }, + "Event": { + "id": "Event", + "description": "Base type for asynchronous events from Asterisk.", + "properties": { + "application": { + "type": "string", + "description": "Name of the application receiving the event.", + "required": true + }, + "timestamp": { + "type": "Date", + "description": "Time at which this event was created.", + "required": true + } + }, + "subTypes": [ + "DeviceStateChanged", + "PlaybackStarted", + "PlaybackContinuing", + "PlaybackFinished", + "RecordingStarted", + "RecordingFinished", + "RecordingFailed", + "ApplicationMoveFailed", + "ApplicationRegistered", + "ApplicationUnregistered", + "ApplicationReplaced", + "BridgeCreated", + "BridgeDestroyed", + "BridgeMerged", + "BridgeBlindTransfer", + "BridgeAttendedTransfer", + "BridgeVideoSourceChanged", + "ChannelCreated", + "ChannelDestroyed", + "ChannelEnteredBridge", + "ChannelLeftBridge", + "ChannelStateChange", + "ChannelDtmfReceived", + "ChannelDialplan", + "ChannelCallerId", + "ChannelUserevent", + "ChannelHangupRequest", + "ChannelVarset", + "ChannelToneDetected", + "ChannelTalkingStarted", + "ChannelTalkingFinished", + "ChannelHold", + "ChannelUnhold", + "ContactStatusChange", + "EndpointStateChange", + "Dial", + "StasisEnd", + "StasisStart", + "TextMessageReceived", + "ChannelConnectedLine", + "PeerStatusChange", + "ChannelTransfer", + "RESTResponse" + ] + }, + "ContactInfo": { + "id": "ContactInfo", + "description": "Detailed information about a contact on an endpoint.", + "properties": { + "uri": { + "type": "string", + "description": "The location of the contact.", + "required": true + }, + "contact_status": { + "type": "string", + "description": "The current status of the contact.", + "required": true, + "allowableValues": { + "valueType": "LIST", + "values": [ + "Unreachable", + "Reachable", + "Unknown", + "NonQualified", + "Removed" + ] + } + }, + "aor": { + "type": "string", + "description": "The Address of Record this contact belongs to.", + "required": true + }, + "roundtrip_usec": { + "type": "string", + "description": "Current round trip time, in microseconds, for the contact.", + "required": false + } + } + }, + "Peer": { + "id": "Peer", + "description": "Detailed information about a remote peer that communicates with Asterisk.", + "properties": { + "peer_status": { + "type": "string", + "description": "The current state of the peer. Note that the values of the status are dependent on the underlying peer technology.", + "required": true + }, + "cause": { + "type": "string", + "description": "An optional reason associated with the change in peer_status.", + "required": false + }, + "address": { + "type": "string", + "description": "The IP address of the peer.", + "required": false + }, + "port": { + "type": "string", + "description": "The port of the peer.", + "required": false + }, + "time": { + "type": "string", + "description": "The last known time the peer was contacted.", + "required": false + } + } + }, + "DeviceStateChanged": { + "id": "DeviceStateChanged", + "description": "Notification that a device state has changed.", + "properties": { + "device_state": { + "type": "DeviceState", + "description": "Device state object", + "required": true + } + } + }, + "PlaybackStarted": { + "id": "PlaybackStarted", + "description": "Event showing the start of a media playback operation.", + "properties": { + "playback": { + "type": "Playback", + "description": "Playback control object", + "required": true + } + } + }, + "PlaybackContinuing": { + "id": "PlaybackContinuing", + "description": "Event showing the continuation of a media playback operation from one media URI to the next in the list.", + "properties": { + "playback": { + "type": "Playback", + "description": "Playback control object", + "required": true + } + } + }, + "PlaybackFinished": { + "id": "PlaybackFinished", + "description": "Event showing the completion of a media playback operation.", + "properties": { + "playback": { + "type": "Playback", + "description": "Playback control object", + "required": true + } + } + }, + "RecordingStarted": { + "id": "RecordingStarted", + "description": "Event showing the start of a recording operation.", + "properties": { + "recording": { + "type": "LiveRecording", + "description": "Recording control object", + "required": true + } + } + }, + "RecordingFinished": { + "id": "RecordingFinished", + "description": "Event showing the completion of a recording operation.", + "properties": { + "recording": { + "type": "LiveRecording", + "description": "Recording control object", + "required": true + } + } + }, + "RecordingFailed": { + "id": "RecordingFailed", + "description": "Event showing failure of a recording operation.", + "properties": { + "recording": { + "type": "LiveRecording", + "description": "Recording control object", + "required": true + } + } + }, + "ApplicationMoveFailed": { + "id": "ApplicationMoveFailed", + "description": "Notification that trying to move a channel to another Stasis application failed.", + "properties": { + "channel": { + "required": true, + "type": "Channel" + }, + "destination": { + "required": true, + "type": "string" + }, + "args": { + "required": true, + "type": "List[string]", + "description": "Arguments to the application" + } + } + }, + "ApplicationRegistered": { + "id": "ApplicationRegistered", + "description": "Notification that a Stasis app has been registered.", + "properties": {} + }, + "ApplicationUnregistered": { + "id": "ApplicationUnregistered", + "description": "Notification that a Stasis app has been unregistered.", + "properties": {} + }, + "ApplicationReplaced": { + "id": "ApplicationReplaced", + "description": "Notification that another WebSocket has taken over for an application.\n\nAn application may only be subscribed to by a single WebSocket at a time. If multiple WebSockets attempt to subscribe to the same application, the newer WebSocket wins, and the older one receives this event.", + "properties": {} + }, + "BridgeCreated": { + "id": "BridgeCreated", + "description": "Notification that a bridge has been created.", + "properties": { + "bridge": { + "required": true, + "type": "Bridge" + } + } + }, + "BridgeDestroyed": { + "id": "BridgeDestroyed", + "description": "Notification that a bridge has been destroyed.", + "properties": { + "bridge": { + "required": true, + "type": "Bridge" + } + } + }, + "BridgeMerged": { + "id": "BridgeMerged", + "description": "Notification that one bridge has merged into another.", + "properties": { + "bridge": { + "required": true, + "type": "Bridge" + }, + "bridge_from": { + "required": true, + "type": "Bridge" + } + } + }, + "BridgeVideoSourceChanged": { + "id": "BridgeVideoSourceChanged", + "description": "Notification that the source of video in a bridge has changed.", + "properties": { + "bridge": { + "required": true, + "type": "Bridge" + }, + "old_video_source_id": { + "required": false, + "type": "string" + } + } + }, + "BridgeBlindTransfer": { + "id": "BridgeBlindTransfer", + "description": "Notification that a blind transfer has occurred.", + "properties": { + "channel": { + "description": "The channel performing the blind transfer", + "required": true, + "type": "Channel" + }, + "replace_channel": { + "description": "The channel that is replacing transferer when the transferee(s) can not be transferred directly", + "required": false, + "type": "Channel" + }, + "transferee": { + "description": "The channel that is being transferred", + "required": false, + "type": "Channel" + }, + "exten": { + "description": "The extension transferred to", + "required": true, + "type": "string" + }, + "context": { + "description": "The context transferred to", + "required": true, + "type": "string" + }, + "result": { + "description": "The result of the transfer attempt", + "required": true, + "type": "string" + }, + "is_external": { + "description": "Whether the transfer was externally initiated or not", + "required": true, + "type": "boolean" + }, + "bridge": { + "description": "The bridge being transferred", + "type": "Bridge" + } + } + }, + "BridgeAttendedTransfer": { + "id": "BridgeAttendedTransfer", + "description": "Notification that an attended transfer has occurred.", + "properties": { + "transferer_first_leg": { + "description": "First leg of the transferer", + "required": true, + "type": "Channel" + }, + "transferer_second_leg": { + "description": "Second leg of the transferer", + "required": true, + "type": "Channel" + }, + "replace_channel": { + "description": "The channel that is replacing transferer_first_leg in the swap", + "required": false, + "type": "Channel" + }, + "transferee": { + "description": "The channel that is being transferred", + "required": false, + "type": "Channel" + }, + "transfer_target": { + "description": "The channel that is being transferred to", + "required": false, + "type": "Channel" + }, + "result": { + "description": "The result of the transfer attempt", + "required": true, + "type": "string" + }, + "is_external": { + "description": "Whether the transfer was externally initiated or not", + "required": true, + "type": "boolean" + }, + "transferer_first_leg_bridge": { + "description": "Bridge the transferer first leg is in", + "type": "Bridge" + }, + "transferer_second_leg_bridge": { + "description": "Bridge the transferer second leg is in", + "type": "Bridge" + }, + "destination_type": { + "description": "How the transfer was accomplished", + "required": true, + "type": "string" + }, + "destination_bridge": { + "description": "Bridge that survived the merge result", + "type": "string" + }, + "destination_application": { + "description": "Application that has been transferred into", + "type": "string" + }, + "destination_link_first_leg": { + "description": "First leg of a link transfer result", + "type": "Channel" + }, + "destination_link_second_leg": { + "description": "Second leg of a link transfer result", + "type": "Channel" + }, + "destination_threeway_channel": { + "description": "Transferer channel that survived the threeway result", + "type": "Channel" + }, + "destination_threeway_bridge": { + "description": "Bridge that survived the threeway result", + "type": "Bridge" + } + } + }, + "ChannelCreated": { + "id": "ChannelCreated", + "description": "Notification that a channel has been created.", + "properties": { + "channel": { + "required": true, + "type": "Channel" + } + } + }, + "ChannelDestroyed": { + "id": "ChannelDestroyed", + "description": "Notification that a channel has been destroyed.", + "properties": { + "cause": { + "required": true, + "description": "Integer representation of the cause of the hangup", + "type": "int" + }, + "cause_txt": { + "required": true, + "description": "Text representation of the cause of the hangup", + "type": "string" + }, + "tech_cause": { + "type": "int", + "description": "Integer representation of the technology-specific off-nominal cause of the hangup." + }, + "channel": { + "required": true, + "type": "Channel" + } + } + }, + "ChannelEnteredBridge": { + "id": "ChannelEnteredBridge", + "description": "Notification that a channel has entered a bridge.", + "properties": { + "bridge": { + "required": true, + "type": "Bridge" + }, + "channel": { + "type": "Channel" + } + } + }, + "ChannelLeftBridge": { + "id": "ChannelLeftBridge", + "description": "Notification that a channel has left a bridge.", + "properties": { + "bridge": { + "required": true, + "type": "Bridge" + }, + "channel": { + "required": true, + "type": "Channel" + } + } + }, + "ChannelStateChange": { + "id": "ChannelStateChange", + "description": "Notification of a channel's state change.", + "properties": { + "channel": { + "required": true, + "type": "Channel" + } + } + }, + "ChannelDtmfReceived": { + "id": "ChannelDtmfReceived", + "description": "DTMF received on a channel.\n\nThis event is sent when the DTMF ends. There is no notification about the start of DTMF", + "properties": { + "digit": { + "required": true, + "type": "string", + "description": "DTMF digit received (0-9, A-E, # or *)" + }, + "duration_ms": { + "required": true, + "type": "int", + "description": "Number of milliseconds DTMF was received" + }, + "channel": { + "required": true, + "type": "Channel", + "description": "The channel on which DTMF was received" + } + } + }, + "ChannelDialplan": { + "id": "ChannelDialplan", + "description": "Channel changed location in the dialplan.", + "properties": { + "channel": { + "required": true, + "type": "Channel", + "description": "The channel that changed dialplan location." + }, + "dialplan_app": { + "required": true, + "type": "string", + "description": "The application about to be executed." + }, + "dialplan_app_data": { + "required": true, + "type": "string", + "description": "The data to be passed to the application." + } + } + }, + "ChannelCallerId": { + "id": "ChannelCallerId", + "description": "Channel changed Caller ID.", + "properties": { + "caller_presentation": { + "required": true, + "type": "int", + "description": "The integer representation of the Caller Presentation value." + }, + "caller_presentation_txt": { + "required": true, + "type": "string", + "description": "The text representation of the Caller Presentation value." + }, + "channel": { + "required": true, + "type": "Channel", + "description": "The channel that changed Caller ID." + } + } + }, + "ChannelUserevent": { + "id": "ChannelUserevent", + "description": "User-generated event with additional user-defined fields in the object.", + "properties": { + "eventname": { + "required": true, + "type": "string", + "description": "The name of the user event." + }, + "channel": { + "required": false, + "type": "Channel", + "description": "A channel that is signaled with the user event." + }, + "bridge": { + "required": false, + "type": "Bridge", + "description": "A bridge that is signaled with the user event." + }, + "endpoint": { + "required": false, + "type": "Endpoint", + "description": "A endpoint that is signaled with the user event." + }, + "userevent": { + "required": true, + "type": "object", + "description": "Custom Userevent data" + } + } + }, + "ChannelHangupRequest": { + "id": "ChannelHangupRequest", + "description": "A hangup was requested on the channel.", + "properties": { + "cause": { + "type": "int", + "description": "Integer representation of the cause of the hangup." + }, + "tech_cause": { + "type": "int", + "description": "Integer representation of the technology-specific off-nominal cause of the hangup." + }, + "soft": { + "type": "boolean", + "description": "Whether the hangup request was a soft hangup request." + }, + "channel": { + "required": true, + "type": "Channel", + "description": "The channel on which the hangup was requested." + } + } + }, + "ChannelVarset": { + "id": "ChannelVarset", + "description": "Channel variable changed.", + "properties": { + "variable": { + "required": true, + "type": "string", + "description": "The variable that changed." + }, + "value": { + "required": true, + "type": "string", + "description": "The new value of the variable." + }, + "channel": { + "required": false, + "type": "Channel", + "description": "The channel on which the variable was set.\n\nIf missing, the variable is a global variable." + } + } + }, + "ChannelHold": { + "id": "ChannelHold", + "description": "A channel initiated a media hold.", + "properties": { + "channel": { + "required": true, + "type": "Channel", + "description": "The channel that initiated the hold event." + }, + "musicclass": { + "required": false, + "type": "string", + "description": "The music on hold class that the initiator requested." + } + } + }, + "ChannelUnhold": { + "id": "ChannelUnhold", + "description": "A channel initiated a media unhold.", + "properties": { + "channel": { + "required": true, + "type": "Channel", + "description": "The channel that initiated the unhold event." + } + } + }, + "ChannelToneDetected": { + "id": "ChannelToneDetected", + "description": "Tone was detected on the channel.", + "properties": { + "channel": { + "required": true, + "type": "Channel", + "description": "The channel the tone was detected on." + } + } + }, + "ChannelTalkingStarted": { + "id": "ChannelTalkingStarted", + "description": "Talking was detected on the channel.", + "properties": { + "channel": { + "required": true, + "type": "Channel", + "description": "The channel on which talking started." + } + } + }, + "ChannelTalkingFinished": { + "id": "ChannelTalkingFinished", + "description": "Talking is no longer detected on the channel.", + "properties": { + "channel": { + "required": true, + "type": "Channel", + "description": "The channel on which talking completed." + }, + "duration": { + "required": true, + "type": "int", + "description": "The length of time, in milliseconds, that talking was detected on the channel" + } + } + }, + "ContactStatusChange": { + "id": "ContactStatusChange", + "description": "The state of a contact on an endpoint has changed.", + "properties": { + "endpoint": { + "required": true, + "type": "Endpoint" + }, + "contact_info": { + "required": true, + "type": "ContactInfo" + } + } + }, + "PeerStatusChange": { + "id": "PeerStatusChange", + "description": "The state of a peer associated with an endpoint has changed.", + "properties": { + "endpoint": { + "required": true, + "type": "Endpoint" + }, + "peer": { + "required": true, + "type": "Peer" + } + } + }, + "EndpointStateChange": { + "id": "EndpointStateChange", + "description": "Endpoint state changed.", + "properties": { + "endpoint": { + "required": true, + "type": "Endpoint" + } + } + }, + "Dial": { + "id": "Dial", + "description": "Dialing state has changed.", + "properties": { + "caller": { + "required": false, + "type": "Channel", + "description": "The calling channel." + }, + "peer": { + "required": true, + "type": "Channel", + "description": "The dialed channel." + }, + "forward": { + "required": false, + "type": "string", + "description": "Forwarding target requested by the original dialed channel." + }, + "forwarded": { + "required": false, + "type": "Channel", + "description": "Channel that the caller has been forwarded to." + }, + "dialstring": { + "required": false, + "type": "string", + "description": "The dial string for calling the peer channel." + }, + "dialstatus": { + "required": true, + "type": "string", + "description": "Current status of the dialing attempt to the peer." + } + } + }, + "StasisEnd": { + "id": "StasisEnd", + "description": "Notification that a channel has left a Stasis application.", + "properties": { + "channel": { + "required": true, + "type": "Channel" + } + } + }, + "StasisStart": { + "id": "StasisStart", + "description": "Notification that a channel has entered a Stasis application.", + "properties": { + "args": { + "required": true, + "type": "List[string]", + "description": "Arguments to the application" + }, + "channel": { + "required": true, + "type": "Channel" + }, + "replace_channel": { + "required": false, + "type": "Channel" + } + } + }, + "TextMessageReceived": { + "id": "TextMessageReceived", + "description": "A text message was received from an endpoint.", + "properties": { + "message": { + "required": true, + "type": "TextMessage" + }, + "endpoint": { + "required": false, + "type": "Endpoint" + } + } + }, + "ChannelConnectedLine": { + "id": "ChannelConnectedLine", + "description": "Channel changed Connected Line.", + "properties": { + "channel": { + "required": true, + "type": "Channel", + "description": "The channel whose connected line has changed." + } + } + }, + "ChannelTransfer": { + "id": "ChannelTransfer", + "description": "transfer on a channel.", + "properties": { + "state": { + "required": false, + "type": "string", + "description": "Transfer State" + }, + "refer_to": { + "required": true, + "type": "ReferTo", + "description": "Refer-To information with optionally both affected channels" + }, + "referred_by": { + "required": true, + "type": "ReferredBy", + "description": "Referred-By SIP Header according rfc3892" + } + } + }, + "ReferTo": { + "id": "ReferTo", + "description": "transfer destination requested by transferee", + "properties": { + "requested_destination": { + "required": true, + "type": "RequiredDestination" + }, + "destination_channel": { + "required": false, + "type": "Channel", + "description": "The Channel Object, that is to be replaced" + }, + "connected_channel": { + "required": false, + "type": "Channel", + "description": "Channel, connected to the to be replaced channel" + }, + "bridge": { + "required": false, + "type": "Bridge", + "description": "Bridge connecting both destination channels" + } + } + }, + "ReferredBy": { + "id": "ReferredBy", + "description": "transfer destination requested by transferee", + "properties": { + "source_channel": { + "required": true, + "type": "Channel", + "description": "The channel on which the refer was received" + }, + "connected_channel": { + "required": false, + "type": "Channel", + "description": "Channel, Connected to the channel, receiving the transfer request on." + }, + "bridge": { + "required": false, + "type": "Bridge", + "description": "Bridge connecting both Channels" + } + } + }, + "RequiredDestination": { + "id": "RequiredDestination", + "description": "Information about the requested destination", + "properties": { + "protocol_id": { + "required": false, + "type": "string", + "description": "the requested protocol-id by the referee in case of SIP channel, this is a SIP Call ID, Mutually exclusive to destination" + }, + "destination": { + "required": false, + "type": "string", + "description": "Destination User Part. Only for Blind transfer. Mutually exclusive to protocol_id" + }, + "additional_protocol_params": { + "required": false, + "type": "List[AdditionalParam]", + "description": "List of additional protocol specific information" + } + } + }, + "AdditionalParam": { + "id": "AdditionalParam", + "description": "Protocol specific additional parameter", + "properties": { + "parameter_name": { + "required": true, + "type": "string", + "description": "Name of the parameter" + }, + "parameter_value": { + "required": true, + "type": "string", + "description": "Value of the parameter" + } + } + }, + "RESTHeader": { + "id": "RESTHeader", + "description": "REST over Websocket header", + "properties": { + "name": { + "type": "string", + "description": "Header name", + "required": true + }, + "value": { + "required": true, + "type": "string", + "description": "Header value" + } + } + }, + "RESTQueryStringParameter": { + "id": "RESTQueryStringParameter", + "description": "REST over Websocket Query String Parameter", + "properties": { + "name": { + "type": "string", + "description": "Parameter name", + "required": true + }, + "value": { + "required": true, + "type": "string", + "description": "Parameter value" + } + } + }, + "RESTRequest": { + "id": "RESTRequest", + "description": "REST over Websocket Request.", + "properties": { + "type": { + "type": "string", + "description": "Message type. Must be 'RESTRequest'", + "required": true + }, + "transaction_id": { + "type": "string", + "description": "Opaque transaction id. Can be any valid string. Will be returned in any response to this request.", + "required": true + }, + "request_id": { + "type": "string", + "description": "Opaque request id. Can be any valid string. Will be returned in any response to this request.", + "required": true + }, + "method": { + "required": true, + "type": "string", + "description": "HTTP method (GET, PUT, POST, DELETE, etc.)" + }, + "uri": { + "required": true, + "type": "string", + "description": "Resource URI with optional query string parameters." + }, + "content_type": { + "required": false, + "type": "string", + "description": "The Content-Type of the message body." + }, + "query_strings": { + "required": false, + "type": "List[RESTQueryStringParameter]", + "description": "Request query string parameters." + }, + "message_body": { + "required": false, + "type": "string", + "description": "Request message body. Only content types application/json and application/x-www-form-urlencoded are supported." + } + } + }, + "RESTResponse": { + "id": "RESTResponse", + "description": "REST over Websocket Response.", + "properties": { + "transaction_id": { + "type": "string", + "description": "Opaque transaction id. Will be whatever was specified on the original request.", + "required": true + }, + "request_id": { + "type": "string", + "description": "Opaque request id. Will be whatever was specified on the original request.", + "required": true + }, + "status_code": { + "required": true, + "type": "int", + "description": "HTTP status code" + }, + "reason_phrase": { + "required": true, + "type": "string", + "description": "HTTP reason phrase" + }, + "uri": { + "required": true, + "type": "string", + "description": "Original request resource URI" + }, + "content_type": { + "required": false, + "type": "string", + "description": "The Content-Type of the message body." + }, + "message_body": { + "required": false, + "type": "string", + "description": "Response message body" + } + } + } + } +} diff --git a/codegen/src/main/resources/codegen-data/ari_11_0_0/mailboxes.json b/codegen/src/main/resources/codegen-data/ari_11_0_0/mailboxes.json new file mode 100644 index 00000000..d99e1eac --- /dev/null +++ b/codegen/src/main/resources/codegen-data/ari_11_0_0/mailboxes.json @@ -0,0 +1,152 @@ +{ + "_copyright": "Copyright (C) 2013, Digium, Inc.", + "_author": "Jonathan Rose ", + "_svn_revision": "$Revision$", + "apiVersion": "2.0.0", + "swaggerVersion": "1.1", + "basePath": "http://localhost:8088/ari", + "resourcePath": "/api-docs/mailboxes.{format}", + "since": [ + "12.1.0" + ], + "requiresModules": [ + "res_stasis_mailbox" + ], + "apis": [ + { + "path": "/mailboxes", + "description": "Mailboxes", + "operations": [ + { + "httpMethod": "GET", + "since": [ + "12.1.0" + ], + "summary": "List all mailboxes.", + "nickname": "list", + "responseClass": "List[Mailbox]" + } + ] + }, + { + "path": "/mailboxes/{mailboxName}", + "description": "Mailbox state", + "operations": [ + { + "httpMethod": "GET", + "since": [ + "12.1.0" + ], + "summary": "Retrieve the current state of a mailbox.", + "nickname": "get", + "responseClass": "Mailbox", + "parameters": [ + { + "name": "mailboxName", + "description": "Name of the mailbox", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Mailbox not found" + } + ] + }, + { + "httpMethod": "PUT", + "since": [ + "12.1.0" + ], + "summary": "Change the state of a mailbox. (Note - implicitly creates the mailbox).", + "nickname": "update", + "responseClass": "void", + "parameters": [ + { + "name": "mailboxName", + "description": "Name of the mailbox", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "oldMessages", + "description": "Count of old messages in the mailbox", + "paramType": "query", + "required": true, + "allowMultiple": false, + "dataType": "int" + }, + { + "name": "newMessages", + "description": "Count of new messages in the mailbox", + "paramType": "query", + "required": true, + "allowMultiple": false, + "dataType": "int" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Mailbox not found" + } + ] + }, + { + "httpMethod": "DELETE", + "since": [ + "12.1.0" + ], + "summary": "Destroy a mailbox.", + "nickname": "delete", + "responseClass": "void", + "parameters": [ + { + "name": "mailboxName", + "description": "Name of the mailbox", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Mailbox not found" + } + ] + } + ] + } + ], + "models": { + "Mailbox": { + "id": "Mailbox", + "description": "Represents the state of a mailbox.", + "properties": { + "name": { + "type": "string", + "description": "Name of the mailbox.", + "required": true + }, + "old_messages": { + "type": "int", + "description": "Count of old messages in the mailbox.", + "required": true + }, + "new_messages": { + "type": "int", + "description": "Count of new messages in the mailbox.", + "required": true + } + } + } + } +} diff --git a/codegen/src/main/resources/codegen-data/ari_11_0_0/playbacks.json b/codegen/src/main/resources/codegen-data/ari_11_0_0/playbacks.json new file mode 100644 index 00000000..a7892f18 --- /dev/null +++ b/codegen/src/main/resources/codegen-data/ari_11_0_0/playbacks.json @@ -0,0 +1,177 @@ +{ + "_copyright": "Copyright (C) 2012 - 2013, Digium, Inc.", + "_author": "David M. Lee, II ", + "_svn_revision": "$Revision$", + "apiVersion": "2.0.0", + "swaggerVersion": "1.1", + "basePath": "http://localhost:8088/ari", + "resourcePath": "/api-docs/playbacks.{format}", + "since": [ + "12.0.0" + ], + "requiresModules": [ + "res_stasis_playback" + ], + "apis": [ + { + "path": "/playbacks/{playbackId}", + "description": "Control object for a playback operation.", + "operations": [ + { + "httpMethod": "GET", + "since": [ + "12.0.0" + ], + "summary": "Get a playback's details.", + "nickname": "get", + "responseClass": "Playback", + "parameters": [ + { + "name": "playbackId", + "description": "Playback's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "The playback cannot be found" + } + ] + }, + { + "httpMethod": "DELETE", + "since": [ + "12.0.0" + ], + "summary": "Stop a playback.", + "nickname": "stop", + "responseClass": "void", + "parameters": [ + { + "name": "playbackId", + "description": "Playback's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "The playback cannot be found" + } + ] + } + ] + }, + { + "path": "/playbacks/{playbackId}/control", + "description": "Control object for a playback operation.", + "operations": [ + { + "httpMethod": "POST", + "since": [ + "12.0.0" + ], + "summary": "Control a playback.", + "nickname": "control", + "responseClass": "void", + "parameters": [ + { + "name": "playbackId", + "description": "Playback's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "operation", + "description": "Operation to perform on the playback.", + "paramType": "query", + "required": true, + "allowMultiple": false, + "dataType": "string", + "allowableValues": { + "valueType": "LIST", + "values": [ + "restart", + "pause", + "unpause", + "reverse", + "forward" + ] + } + } + ], + "errorResponses": [ + { + "code": 400, + "reason": "The provided operation parameter was invalid" + }, + { + "code": 404, + "reason": "The playback cannot be found" + }, + { + "code": 409, + "reason": "The operation cannot be performed in the playback's current state" + } +] + } + ] + } + ], + "models": { + "Playback": { + "id": "Playback", + "description": "Object representing the playback of media to a channel", + "properties": { + "id": { + "type": "string", + "description": "ID for this playback operation", + "required": true + }, + "media_uri": { + "type": "string", + "description": "The URI for the media currently being played back.", + "required": true + }, + "next_media_uri": { + "type": "string", + "description": "If a list of URIs is being played, the next media URI to be played back.", + "required": false + }, + "target_uri": { + "type": "string", + "description": "URI for the channel or bridge to play the media on", + "required": true + }, + "language": { + "type": "string", + "description": "For media types that support multiple languages, the language requested for playback." + }, + "state": { + "type": "string", + "description": "Current state of the playback operation.", + "required": true, + "allowableValues": { + "valueType": "LIST", + "values": [ + "queued", + "playing", + "continuing", + "done", + "failed" + ] + } + } + } + } + } +} diff --git a/codegen/src/main/resources/codegen-data/ari_11_0_0/recordings.json b/codegen/src/main/resources/codegen-data/ari_11_0_0/recordings.json new file mode 100644 index 00000000..1496db8a --- /dev/null +++ b/codegen/src/main/resources/codegen-data/ari_11_0_0/recordings.json @@ -0,0 +1,452 @@ +{ + "_copyright": "Copyright (C) 2012 - 2013, Digium, Inc.", + "_author": "David M. Lee, II ", + "_svn_revision": "$Revision$", + "apiVersion": "2.0.0", + "swaggerVersion": "1.1", + "basePath": "http://localhost:8088/ari", + "resourcePath": "/api-docs/recordings.{format}", + "since": [ + "12.0.0" + ], + "requiresModules": [ + "res_stasis_recording" + ], + "apis": [ + { + "path": "/recordings/stored", + "description": "Recordings", + "operations": [ + { + "httpMethod": "GET", + "since": [ + "12.0.0" + ], + "summary": "List recordings that are complete.", + "nickname": "listStored", + "responseClass": "List[StoredRecording]" + } + ] + }, + { + "path": "/recordings/stored/{recordingName}", + "description": "Individual recording", + "operations": [ + { + "httpMethod": "GET", + "since": [ + "12.0.0" + ], + "summary": "Get a stored recording's details.", + "nickname": "getStored", + "responseClass": "StoredRecording", + "parameters": [ + { + "name": "recordingName", + "description": "The name of the recording", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Recording not found" + } + ] + }, + { + "httpMethod": "DELETE", + "since": [ + "12.0.0" + ], + "summary": "Delete a stored recording.", + "nickname": "deleteStored", + "responseClass": "void", + "parameters": [ + { + "name": "recordingName", + "description": "The name of the recording", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Recording not found" + } + ] + } + ] + }, + { + "path": "/recordings/stored/{recordingName}/file", + "description": "The actual file associated with the stored recording", + "operations": [ + { + "httpMethod": "GET", + "since": [ + "14.0.0" + ], + "summary": "Get the file associated with the stored recording.", + "nickname": "getStoredFile", + "responseClass": "binary", + "parameters": [ + { + "name": "recordingName", + "description": "The name of the recording", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 403, + "reason": "The recording file could not be opened" + }, + { + "code": 404, + "reason": "Recording not found" + } + ] + } + ] + }, + { + "path": "/recordings/stored/{recordingName}/copy", + "description": "Copy an individual recording", + "operations": [ + { + "httpMethod": "POST", + "since": [ + "12.5.0" + ], + "summary": "Copy a stored recording.", + "nickname": "copyStored", + "responseClass": "StoredRecording", + "parameters": [ + { + "name": "recordingName", + "description": "The name of the recording to copy", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "destinationRecordingName", + "description": "The destination name of the recording", + "paramType": "query", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Recording not found" + }, + { + "code": 409, + "reason": "A recording with the same name already exists on the system" + } + ] + } + ] + }, + { + "path": "/recordings/live/{recordingName}", + "description": "A recording that is in progress", + "operations": [ + { + "httpMethod": "GET", + "since": [ + "12.0.0" + ], + "summary": "List live recordings.", + "nickname": "getLive", + "responseClass": "LiveRecording", + "parameters": [ + { + "name": "recordingName", + "description": "The name of the recording", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Recording not found" + } + ] + }, + { + "httpMethod": "DELETE", + "since": [ + "12.0.0" + ], + "summary": "Stop a live recording and discard it.", + "nickname": "cancel", + "responseClass": "void", + "parameters": [ + { + "name": "recordingName", + "description": "The name of the recording", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Recording not found" + } + ] + } + ] + }, + { + "path": "/recordings/live/{recordingName}/stop", + "operations": [ + { + "httpMethod": "POST", + "since": [ + "12.0.0" + ], + "summary": "Stop a live recording and store it.", + "nickname": "stop", + "responseClass": "void", + "parameters": [ + { + "name": "recordingName", + "description": "The name of the recording", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Recording not found" + } + ] + } + ] + }, + { + "path": "/recordings/live/{recordingName}/pause", + "operations": [ + { + "httpMethod": "POST", + "since": [ + "12.0.0" + ], + "summary": "Pause a live recording.", + "notes": "Pausing a recording suspends silence detection, which will be restarted when the recording is unpaused. Paused time is not included in the accounting for maxDurationSeconds.", + "nickname": "pause", + "responseClass": "void", + "parameters": [ + { + "name": "recordingName", + "description": "The name of the recording", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Recording not found" + }, + { + "code": 409, + "reason": "Recording not in session" + } + ] + }, + { + "httpMethod": "DELETE", + "since": [ + "12.0.0" + ], + "summary": "Unpause a live recording.", + "nickname": "unpause", + "responseClass": "void", + "parameters": [ + { + "name": "recordingName", + "description": "The name of the recording", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Recording not found" + }, + { + "code": 409, + "reason": "Recording not in session" + } + ] + } + ] + }, + { + "path": "/recordings/live/{recordingName}/mute", + "operations": [ + { + "httpMethod": "POST", + "since": [ + "12.0.0" + ], + "summary": "Mute a live recording.", + "notes": "Muting a recording suspends silence detection, which will be restarted when the recording is unmuted.", + "nickname": "mute", + "responseClass": "void", + "parameters": [ + { + "name": "recordingName", + "description": "The name of the recording", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Recording not found" + }, + { + "code": 409, + "reason": "Recording not in session" + } + ] + }, + { + "httpMethod": "DELETE", + "since": [ + "12.0.0" + ], + "summary": "Unmute a live recording.", + "nickname": "unmute", + "responseClass": "void", + "parameters": [ + { + "name": "recordingName", + "description": "The name of the recording", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Recording not found" + }, + { + "code": 409, + "reason": "Recording not in session" + } + ] + } + ] + } + ], + "models": { + "StoredRecording": { + "id": "StoredRecording", + "description": "A past recording that may be played back.", + "properties": { + "name": { + "required": true, + "type": "string" + }, + "format": { + "required": true, + "type": "string" + } + } + }, + "LiveRecording": { + "id": "LiveRecording", + "description": "A recording that is in progress", + "properties": { + "name": { + "required": true, + "type": "string", + "description": "Base name for the recording" + }, + "format": { + "required": true, + "type": "string", + "description": "Recording format (wav, gsm, etc.)" + }, + "target_uri": { + "required": true, + "type": "string", + "description": "URI for the channel or bridge being recorded" + }, + "state": { + "required": true, + "type": "string", + "allowableValues": { + "valueType": "LIST", + "values": [ + "queued", + "recording", + "paused", + "done", + "failed", + "canceled" + ] + } + }, + "duration": { + "required": false, + "type": "int", + "description": "Duration in seconds of the recording" + }, + "talking_duration": { + "required": false, + "type": "int", + "description": "Duration of talking, in seconds, detected in the recording. This is only available if the recording was initiated with a non-zero maxSilenceSeconds." + }, + "silence_duration": { + "required": false, + "type": "int", + "description": "Duration of silence, in seconds, detected in the recording. This is only available if the recording was initiated with a non-zero maxSilenceSeconds." + }, + "cause": { + "required": false, + "type": "string", + "description": "Cause for recording failure if failed" + } + } + } + } +} diff --git a/codegen/src/main/resources/codegen-data/ari_11_0_0/sounds.json b/codegen/src/main/resources/codegen-data/ari_11_0_0/sounds.json new file mode 100644 index 00000000..aee4d369 --- /dev/null +++ b/codegen/src/main/resources/codegen-data/ari_11_0_0/sounds.json @@ -0,0 +1,108 @@ +{ + "_copyright": "Copyright (C) 2012 - 2013, Digium, Inc.", + "_author": "David M. Lee, II ", + "_svn_revision": "$Revision$", + "apiVersion": "2.0.0", + "swaggerVersion": "1.1", + "basePath": "http://localhost:8088/ari", + "resourcePath": "/api-docs/sounds.{format}", + "since": [ + "12.0.0" + ], + "apis": [ + { + "path": "/sounds", + "description": "Sounds", + "operations": [ + { + "httpMethod": "GET", + "since": [ + "12.0.0" + ], + "summary": "List all sounds.", + "nickname": "list", + "responseClass": "List[Sound]", + "parameters": [ + { + "name": "lang", + "description": "Lookup sound for a specific language.", + "paramType": "query", + "dataType": "string", + "required": false + }, + { + "name": "format", + "description": "Lookup sound in a specific format.", + "paramType": "query", + "dataType": "string", + "required": false, + "__note": "core show translation can show translation paths between formats, along with relative costs. so this could be just installed format, or we could follow that for transcoded formats." + } + ] + } + ] + }, + { + "path": "/sounds/{soundId}", + "description": "Individual sound", + "operations": [ + { + "httpMethod": "GET", + "since": [ + "12.0.0" + ], + "summary": "Get a sound's details.", + "nickname": "get", + "responseClass": "Sound", + "parameters": [ + { + "name": "soundId", + "description": "Sound's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ] + } + ] + } + ], + "models": { + "FormatLangPair": { + "id": "FormatLangPair", + "description": "Identifies the format and language of a sound file", + "properties": { + "language": { + "required": true, + "type": "string" + }, + "format": { + "required": true, + "type": "string" + } + } + }, + "Sound": { + "id": "Sound", + "description": "A media file that may be played back.", + "properties": { + "id": { + "required": true, + "description": "Sound's identifier.", + "type": "string" + }, + "text": { + "required": false, + "description": "Text description of the sound, usually the words spoken.", + "type": "string" + }, + "formats": { + "required": true, + "description": "The formats and languages in which this sound is available.", + "type": "List[FormatLangPair]" + } + } + } + } +} diff --git a/codegen/src/main/resources/codegen-data/ari_6_0_0/channels.json b/codegen/src/main/resources/codegen-data/ari_6_0_0/channels.json index 8d878a13..db4b3a8a 100644 --- a/codegen/src/main/resources/codegen-data/ari_6_0_0/channels.json +++ b/codegen/src/main/resources/codegen-data/ari_6_0_0/channels.json @@ -416,7 +416,7 @@ }, { "name": "reason_code", - "description": "The reason code for hanging up the channel for detail use. Mutually exclusive with 'reason'. See detail hangup codes at here. https://wiki.asterisk.org/wiki/display/AST/Hangup+Cause+Mappings", + "description": "The reason code for hanging up the channel for detail use. Mutually exclusive with 'reason'. See detail hangup codes at here. https://docs.asterisk.org/Configuration/Miscellaneous/Hangup-Cause-Mappings/", "paramType": "query", "required": false, "allowMultiple": false, diff --git a/codegen/src/main/resources/codegen-data/ari_8_0_0/applications.json b/codegen/src/main/resources/codegen-data/ari_8_0_0/applications.json index 09c5cd5c..8ad9f36d 100644 --- a/codegen/src/main/resources/codegen-data/ari_8_0_0/applications.json +++ b/codegen/src/main/resources/codegen-data/ari_8_0_0/applications.json @@ -6,6 +6,9 @@ "swaggerVersion": "1.1", "basePath": "http://localhost:8088/ari", "resourcePath": "/api-docs/applications.{format}", + "since": [ + "13.0.0" + ], "apis": [ { "path": "/applications", @@ -13,6 +16,9 @@ "operations": [ { "httpMethod": "GET", + "since": [ + "13.0.0" + ], "summary": "List all applications.", "nickname": "list", "responseClass": "List[Application]" @@ -25,6 +31,9 @@ "operations": [ { "httpMethod": "GET", + "since": [ + "13.0.0" + ], "summary": "Get details of an application.", "nickname": "get", "responseClass": "Application", @@ -53,6 +62,9 @@ "operations": [ { "httpMethod": "POST", + "since": [ + "13.0.0" + ], "summary": "Subscribe an application to a event source.", "notes": "Returns the state of the application after the subscriptions have changed", "nickname": "subscribe", @@ -92,6 +104,9 @@ }, { "httpMethod": "DELETE", + "since": [ + "13.0.0" + ], "summary": "Unsubscribe an application from an event source.", "notes": "Returns the state of the application after the subscriptions have changed", "nickname": "unsubscribe", @@ -141,6 +156,10 @@ "operations": [ { "httpMethod": "PUT", + "since": [ + "13.26.0", + "16.3.0" + ], "summary": "Filter application events types.", "notes": "Allowed and/or disallowed event type filtering can be done. The body (parameter) should specify a JSON key/value object that describes the type of event filtering needed. One, or both of the following keys can be designated:

\"allowed\" - Specifies an allowed list of event types
\"disallowed\" - Specifies a disallowed list of event types

Further, each of those key's value should be a JSON array that holds zero, or more JSON key/value objects. Each of these objects must contain the following key with an associated value:

\"type\" - The type name of the event to filter

The value must be the string name (case sensitive) of the event type that needs filtering. For example:

{ \"allowed\": [ { \"type\": \"StasisStart\" }, { \"type\": \"StasisEnd\" } ] }

As this specifies only an allowed list, then only those two event type messages are sent to the application. No other event messages are sent.

The following rules apply:

* If the body is empty, both the allowed and disallowed filters are set empty.
* If both list types are given then both are set to their respective values (note, specifying an empty array for a given type sets that type to empty).
* If only one list type is given then only that type is set. The other type is not updated.
* An empty \"allowed\" list means all events are allowed.
* An empty \"disallowed\" list means no events are disallowed.
* Disallowed events take precedence over allowed events if the event type is specified in both lists.", "nickname": "filter", diff --git a/codegen/src/main/resources/codegen-data/ari_8_0_0/asterisk.json b/codegen/src/main/resources/codegen-data/ari_8_0_0/asterisk.json index 841e6cd8..83fef8b7 100644 --- a/codegen/src/main/resources/codegen-data/ari_8_0_0/asterisk.json +++ b/codegen/src/main/resources/codegen-data/ari_8_0_0/asterisk.json @@ -6,6 +6,9 @@ "swaggerVersion": "1.1", "basePath": "http://localhost:8088/ari", "resourcePath": "/api-docs/asterisk.{format}", + "since": [ + "12.0.0" + ], "apis": [ { "path": "/asterisk/config/dynamic/{configClass}/{objectType}/{id}", @@ -13,6 +16,9 @@ "operations": [ { "httpMethod": "GET", + "since": [ + "13.5.0" + ], "summary": "Retrieve a dynamic configuration object.", "nickname": "getObject", "responseClass": "List[ConfigTuple]", @@ -51,6 +57,9 @@ }, { "httpMethod": "PUT", + "since": [ + "13.5.0" + ], "summary": "Create or update a dynamic configuration object.", "nickname": "updateObject", "responseClass": "List[ConfigTuple]", @@ -105,6 +114,9 @@ }, { "httpMethod": "DELETE", + "since": [ + "13.5.0" + ], "summary": "Delete a dynamic configuration object.", "nickname": "deleteObject", "responseClass": "void", @@ -153,6 +165,9 @@ "operations": [ { "httpMethod": "GET", + "since": [ + "12.0.0" + ], "summary": "Gets Asterisk system information.", "nickname": "getInfo", "responseClass": "AsteriskInfo", @@ -184,6 +199,10 @@ "operations": [ { "httpMethod": "GET", + "since": [ + "13.25.0", + "16.2.0" + ], "summary": "Response pong message.", "nickname": "ping", "responseClass": "AsteriskPing" @@ -196,6 +215,9 @@ "operations": [ { "httpMethod": "GET", + "since": [ + "13.5.0" + ], "summary": "List Asterisk modules.", "nickname": "listModules", "responseClass": "List[Module]" @@ -208,6 +230,9 @@ "operations": [ { "httpMethod": "GET", + "since": [ + "13.5.0" + ], "summary": "Get Asterisk module information.", "nickname": "getModule", "responseClass": "Module", @@ -234,6 +259,9 @@ }, { "httpMethod": "POST", + "since": [ + "13.5.0" + ], "summary": "Load an Asterisk module.", "nickname": "loadModule", "responseClass": "void", @@ -256,6 +284,9 @@ }, { "httpMethod": "DELETE", + "since": [ + "13.5.0" + ], "summary": "Unload an Asterisk module.", "nickname": "unloadModule", "responseClass": "void", @@ -282,6 +313,9 @@ }, { "httpMethod": "PUT", + "since": [ + "13.5.0" + ], "summary": "Reload an Asterisk module.", "nickname": "reloadModule", "responseClass": "void", @@ -314,6 +348,9 @@ "operations": [ { "httpMethod": "GET", + "since": [ + "13.6.0" + ], "summary": "Gets Asterisk log channel information.", "nickname": "listLogChannels", "responseClass": "List[LogChannel]" @@ -326,6 +363,9 @@ "operations": [ { "httpMethod": "POST", + "since": [ + "13.6.0" + ], "summary": "Adds a log channel.", "nickname": "addLog", "responseClass": "void", @@ -360,6 +400,9 @@ }, { "httpMethod": "DELETE", + "since": [ + "13.6.0" + ], "summary": "Deletes a log channel.", "nickname": "deleteLog", "responseClass": "void", @@ -388,6 +431,9 @@ "operations": [ { "httpMethod": "PUT", + "since": [ + "13.6.0" + ], "summary": "Rotates a log channel.", "nickname": "rotateLog", "responseClass": "void", @@ -416,6 +462,9 @@ "operations": [ { "httpMethod": "GET", + "since": [ + "12.0.0" + ], "summary": "Get the value of a global variable.", "nickname": "getGlobalVar", "responseClass": "Variable", @@ -438,6 +487,9 @@ }, { "httpMethod": "POST", + "since": [ + "12.0.0" + ], "summary": "Set the value of a global variable.", "nickname": "setGlobalVar", "responseClass": "void", diff --git a/codegen/src/main/resources/codegen-data/ari_8_0_0/bridges.json b/codegen/src/main/resources/codegen-data/ari_8_0_0/bridges.json index 636d2540..ae5ee56f 100644 --- a/codegen/src/main/resources/codegen-data/ari_8_0_0/bridges.json +++ b/codegen/src/main/resources/codegen-data/ari_8_0_0/bridges.json @@ -6,6 +6,9 @@ "swaggerVersion": "1.1", "basePath": "http://localhost:8088/ari", "resourcePath": "/api-docs/bridges.{format}", + "since": [ + "12.0.0" + ], "requiresModules": [ "res_stasis_recording", "res_stasis_playback" @@ -17,12 +20,18 @@ "operations": [ { "httpMethod": "GET", + "since": [ + "12.0.0" + ], "summary": "List all active bridges in Asterisk.", "nickname": "list", "responseClass": "List[Bridge]" }, { "httpMethod": "POST", + "since": [ + "12.0.0" + ], "summary": "Create a new bridge.", "notes": "This bridge persists until it has been shut down, or Asterisk has been shut down.", "nickname": "create", @@ -52,6 +61,12 @@ "allowMultiple": false, "dataType": "string" } + ], + "errorResponses": [ + { + "code": 409, + "reason": "Bridge with the same bridgeId already exists" + } ] } ] @@ -62,7 +77,10 @@ "operations": [ { "httpMethod": "POST", - "summary": "Create a new bridge or updates an existing one.", + "since": [ + "12.2.0" + ], + "summary": "Create a new bridge.", "notes": "This bridge persists until it has been shut down, or Asterisk has been shut down.", "nickname": "createWithId", "responseClass": "Bridge", @@ -91,10 +109,19 @@ "allowMultiple": false, "dataType": "string" } + ], + "errorResponses": [ + { + "code": 409, + "reason": "Bridge with the same bridgeId already exists" + } ] }, { "httpMethod": "GET", + "since": [ + "12.0.0" + ], "summary": "Get bridge details.", "nickname": "get", "responseClass": "Bridge", @@ -117,6 +144,9 @@ }, { "httpMethod": "DELETE", + "since": [ + "12.0.0" + ], "summary": "Shut down a bridge.", "notes": "If any channels are in this bridge, they will be removed and resume whatever they were doing beforehand.", "nickname": "destroy", @@ -146,6 +176,9 @@ "operations": [ { "httpMethod": "POST", + "since": [ + "12.0.0" + ], "summary": "Add a channel to a bridge.", "nickname": "addChannel", "responseClass": "void", @@ -229,6 +262,9 @@ "operations": [ { "httpMethod": "POST", + "since": [ + "12.0.0" + ], "summary": "Remove a channel from a bridge.", "nickname": "removeChannel", "responseClass": "void", @@ -277,6 +313,10 @@ "operations": [ { "httpMethod": "POST", + "since": [ + "13.13.0", + "14.2.0" + ], "summary": "Set a channel as the video source in a multi-party mixing bridge. This operation has no effect on bridges with two or fewer participants.", "nickname": "setVideoSource", "responseClass": "void", @@ -321,6 +361,10 @@ "operations": [ { "httpMethod": "DELETE", + "since": [ + "13.13.0", + "14.2.0" + ], "summary": "Removes any explicit video source in a multi-party mixing bridge. This operation has no effect on bridges with two or fewer participants. When no explicit video source is set, talk detection will be used to determine the active video stream.", "nickname": "clearVideoSource", "responseClass": "void", @@ -349,6 +393,9 @@ "operations": [ { "httpMethod": "POST", + "since": [ + "12.0.0" + ], "summary": "Play music on hold to a bridge or change the MOH class that is playing.", "nickname": "startMoh", "responseClass": "void", @@ -383,6 +430,9 @@ }, { "httpMethod": "DELETE", + "since": [ + "12.0.0" + ], "summary": "Stop playing music on hold to a bridge.", "notes": "This will only stop music on hold being played via POST bridges/{bridgeId}/moh.", "nickname": "stopMoh", @@ -416,6 +466,9 @@ "operations": [ { "httpMethod": "POST", + "since": [ + "12.0.0" + ], "summary": "Start playback of media on a bridge.", "notes": "The media URI may be any of a number of URI's. Currently sound:, recording:, number:, digits:, characters:, and tone: URI's are supported. This operation creates a playback resource that can be used to control the playback of media (pause, rewind, fast forward, etc.)", "nickname": "play", @@ -437,6 +490,14 @@ "allowMultiple": true, "dataType": "string" }, + { + "name": "announcer_format", + "description": "Format of the 'Anouncer' channel attached to the bridge. Defaults to the format of the channel in the bridge with the highest sampe rate.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, { "name": "lang", "description": "For sounds, selects language for sound.", @@ -457,7 +518,6 @@ "valueType": "RANGE", "min": 0 } - }, { "name": "skipms", @@ -489,6 +549,10 @@ { "code": 409, "reason": "Bridge not in a Stasis application" + }, + { + "code": 422, + "reason": "The format specified is unknown on this system" } ] } @@ -500,6 +564,9 @@ "operations": [ { "httpMethod": "POST", + "since": [ + "12.3.0" + ], "summary": "Start playback of media on a bridge.", "notes": "The media URI may be any of a number of URI's. Currently sound:, recording:, number:, digits:, characters:, and tone: URI's are supported. This operation creates a playback resource that can be used to control the playback of media (pause, rewind, fast forward, etc.)", "nickname": "playWithId", @@ -529,6 +596,14 @@ "allowMultiple": true, "dataType": "string" }, + { + "name": "announcer_format", + "description": "Format of the 'Anouncer' channel attached to the bridge. Defaults to the format of the channel in the bridge with the highest sampe rate.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, { "name": "lang", "description": "For sounds, selects language for sound.", @@ -572,6 +647,10 @@ { "code": 409, "reason": "Bridge not in a Stasis application" + }, + { + "code": 422, + "reason": "The format specified is unknown on this system" } ] @@ -584,6 +663,9 @@ "operations": [ { "httpMethod": "POST", + "since": [ + "12.0.0" + ], "summary": "Start a recording.", "notes": "This records the mixed audio from all channels participating in this bridge.", "nickname": "record", @@ -613,6 +695,14 @@ "allowMultiple": false, "dataType": "string" }, + { + "name": "recorder_format", + "description": "Format of the 'Recorder' channel attached to the bridge. Defaults to the same format as the 'format' parameter.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" + }, { "name": "maxDurationSeconds", "description": "Maximum duration of the recording, in seconds. 0 for no limit.", diff --git a/codegen/src/main/resources/codegen-data/ari_8_0_0/channels.json b/codegen/src/main/resources/codegen-data/ari_8_0_0/channels.json index 2a1d0a0c..0a08a4a9 100644 --- a/codegen/src/main/resources/codegen-data/ari_8_0_0/channels.json +++ b/codegen/src/main/resources/codegen-data/ari_8_0_0/channels.json @@ -6,6 +6,9 @@ "swaggerVersion": "1.1", "basePath": "http://localhost:8088/ari", "resourcePath": "/api-docs/channels.{format}", + "since": [ + "12.0.0" + ], "requiresModules": [ "res_stasis_answer", "res_stasis_playback", @@ -19,12 +22,18 @@ "operations": [ { "httpMethod": "GET", + "since": [ + "12.0.0" + ], "summary": "List all active channels in Asterisk.", "nickname": "list", "responseClass": "List[Channel]" }, { "httpMethod": "POST", + "since": [ + "12.0.0" + ], "summary": "Create a new channel (originate).", "notes": "The new channel is created immediately and a snapshot of it returned. If a Stasis application is provided it will be automatically subscribed to the originated channel for further events and updates.", "nickname": "originate", @@ -163,6 +172,9 @@ "operations": [ { "httpMethod": "POST", + "since": [ + "14.0.0" + ], "summary": "Create channel.", "nickname": "create", "responseClass": "Channel", @@ -247,6 +259,9 @@ "operations": [ { "httpMethod": "GET", + "since": [ + "12.0.0" + ], "summary": "Channel details.", "nickname": "get", "responseClass": "Channel", @@ -269,6 +284,9 @@ }, { "httpMethod": "POST", + "since": [ + "12.2.0" + ], "summary": "Create a new channel (originate with id).", "notes": "The new channel is created immediately and a snapshot of it returned. If a Stasis application is provided it will be automatically subscribed to the originated channel for further events and updates.", "nickname": "originateWithId", @@ -402,6 +420,9 @@ }, { "httpMethod": "DELETE", + "since": [ + "12.0.0" + ], "summary": "Delete (i.e. hangup) a channel.", "nickname": "hangup", "responseClass": "void", @@ -468,6 +489,9 @@ "operations": [ { "httpMethod": "POST", + "since": [ + "12.0.0" + ], "summary": "Exit application; continue execution in the dialplan.", "nickname": "continueInDialplan", "responseClass": "void", @@ -536,6 +560,10 @@ "operations": [ { "httpMethod": "POST", + "since": [ + "13.26.0", + "16.3.0" + ], "summary": "Move the channel from one Stasis application to another.", "nickname": "move", "responseClass": "void", @@ -584,6 +612,9 @@ "operations": [ { "httpMethod": "POST", + "since": [ + "13.3.0" + ], "summary": "Redirect the channel to a different location.", "nickname": "redirect", "responseClass": "void", @@ -636,6 +667,9 @@ "operations": [ { "httpMethod": "POST", + "since": [ + "12.0.0" + ], "summary": "Answer a channel.", "nickname": "answer", "responseClass": "void", @@ -672,6 +706,9 @@ "operations": [ { "httpMethod": "POST", + "since": [ + "12.0.0" + ], "summary": "Indicate ringing to a channel.", "nickname": "ring", "responseClass": "void", @@ -702,6 +739,9 @@ }, { "httpMethod": "DELETE", + "since": [ + "12.0.0" + ], "summary": "Stop ringing indication on a channel if locally generated.", "nickname": "ringStop", "responseClass": "void", @@ -732,12 +772,56 @@ } ] }, + { + "path": "/channels/{channelId}/progress", + "description": "Indicate progress on a channel", + "operations": [ + { + "httpMethod": "POST", + "since": [ + "22.6.0", + "21.11.0", + "20.16.0" + ], + "summary": "Indicate progress on a channel.", + "nickname": "progress", + "responseClass": "void", + "parameters": [ + { + "name": "channelId", + "description": "Channel's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Channel not found" + }, + { + "code": 409, + "reason": "Channel not in a Stasis application" + }, + { + "code": 412, + "reason": "Channel in invalid state" + } + ] + } + ] + }, { "path": "/channels/{channelId}/dtmf", "description": "Send DTMF to a channel", "operations": [ { "httpMethod": "POST", + "since": [ + "12.0.0" + ], "summary": "Send provided DTMF to a given channel.", "nickname": "sendDTMF", "responseClass": "void", @@ -822,6 +906,9 @@ "operations": [ { "httpMethod": "POST", + "since": [ + "12.0.0" + ], "summary": "Mute a channel.", "nickname": "mute", "responseClass": "void", @@ -869,6 +956,9 @@ }, { "httpMethod": "DELETE", + "since": [ + "12.0.0" + ], "summary": "Unmute a channel.", "nickname": "unmute", "responseClass": "void", @@ -922,6 +1012,9 @@ "operations": [ { "httpMethod": "POST", + "since": [ + "12.0.0" + ], "summary": "Hold a channel.", "nickname": "hold", "responseClass": "void", @@ -952,6 +1045,9 @@ }, { "httpMethod": "DELETE", + "since": [ + "12.0.0" + ], "summary": "Remove a channel from hold.", "nickname": "unhold", "responseClass": "void", @@ -988,6 +1084,9 @@ "operations": [ { "httpMethod": "POST", + "since": [ + "12.0.0" + ], "summary": "Play music on hold to a channel.", "notes": "Using media operations such as /play on a channel playing MOH in this manner will suspend MOH without resuming automatically. If continuing music on hold is desired, the stasis application must reinitiate music on hold.", "nickname": "startMoh", @@ -1027,6 +1126,9 @@ }, { "httpMethod": "DELETE", + "since": [ + "12.0.0" + ], "summary": "Stop playing music on hold to a channel.", "nickname": "stopMoh", "responseClass": "void", @@ -1063,6 +1165,9 @@ "operations": [ { "httpMethod": "POST", + "since": [ + "12.0.0" + ], "summary": "Play silence to a channel.", "notes": "Using media operations such as /play on a channel playing silence in this manner will suspend silence without resuming automatically.", "nickname": "startSilence", @@ -1094,6 +1199,9 @@ }, { "httpMethod": "DELETE", + "since": [ + "12.0.0" + ], "summary": "Stop playing silence to a channel.", "nickname": "stopSilence", "responseClass": "void", @@ -1130,6 +1238,9 @@ "operations": [ { "httpMethod": "POST", + "since": [ + "12.0.0" + ], "summary": "Start playback of media.", "notes": "The media URI may be any of a number of URI's. Currently sound:, recording:, number:, digits:, characters:, and tone: URI's are supported. This operation creates a playback resource that can be used to control the playback of media (pause, rewind, fast forward, etc.)", "nickname": "play", @@ -1208,6 +1319,9 @@ "operations": [ { "httpMethod": "POST", + "since": [ + "12.2.0" + ], "summary": "Start playback of media and specify the playbackId.", "notes": "The media URI may be any of a number of URI's. Currently sound:, recording:, number:, digits:, characters:, and tone: URI's are supported. This operation creates a playback resource that can be used to control the playback of media (pause, rewind, fast forward, etc.)", "nickname": "playWithId", @@ -1286,6 +1400,9 @@ "operations": [ { "httpMethod": "POST", + "since": [ + "12.0.0" + ], "summary": "Start a recording.", "notes": "Record audio from a channel. Note that this will not capture audio sent to the channel. The bridge itself has a record feature if that's what you want.", "nickname": "record", @@ -1397,7 +1514,7 @@ }, { "code": 409, - "reason": "Channel is not in a Stasis application; the channel is currently bridged with other hcannels; A recording with the same name already exists on the system and can not be overwritten because it is in progress or ifExists=fail" + "reason": "Channel is not in a Stasis application; the channel is currently bridged with other channels; A recording with the same name already exists on the system and can not be overwritten because it is in progress or ifExists=fail" }, { "code": 422, @@ -1413,6 +1530,9 @@ "operations": [ { "httpMethod": "GET", + "since": [ + "12.0.0" + ], "summary": "Get the value of a channel variable or function.", "nickname": "getChannelVar", "responseClass": "Variable", @@ -1451,6 +1571,9 @@ }, { "httpMethod": "POST", + "since": [ + "12.0.0" + ], "summary": "Set the value of a channel variable or function.", "nickname": "setChannelVar", "responseClass": "void", @@ -1503,6 +1626,9 @@ "operations": [ { "httpMethod": "POST", + "since": [ + "12.0.0" + ], "summary": "Start snooping.", "notes": "Snoop (spy/whisper) on a specific channel.", "nickname": "snoopChannel", @@ -1596,6 +1722,9 @@ "operations": [ { "httpMethod": "POST", + "since": [ + "12.2.0" + ], "summary": "Start snooping.", "notes": "Snoop (spy/whisper) on a specific channel.", "nickname": "snoopChannelWithId", @@ -1689,6 +1818,9 @@ "operations": [ { "httpMethod": "POST", + "since": [ + "14.0.0" + ], "summary": "Dial a created channel.", "nickname": "dial", "responseClass": "void", @@ -1742,6 +1874,10 @@ "operations": [ { "httpMethod": "GET", + "since": [ + "13.27.0", + "16.4.0" + ], "summary": "RTP stats on a channel.", "nickname": "rtpstatistics", "responseClass": "RTPstat", @@ -1770,8 +1906,12 @@ "operations": [ { "httpMethod": "POST", + "since": [ + "16.6.0", + "17.1.0" + ], "summary": "Start an External Media session.", - "notes": "Create a channel to an External Media source/sink.", + "notes": "Create a channel to an External Media source/sink. The combination of transport and encapsulation will select one of chan_rtp(udp/rtp), chan_audiosocket(tcp/audiosocket) or chan_websocket(websocket/none) channel drivers.", "nickname": "externalMedia", "responseClass": "Channel", "parameters": [ @@ -1801,15 +1941,15 @@ }, { "name": "external_host", - "description": "Hostname/ip:port of external host", + "description": "Hostname/ip:port or websocket_client connection ID of external host. May be empty for a websocket server connection.", "paramType": "query", - "required": true, + "required": false, "allowMultiple": false, "dataType": "string" }, { "name": "encapsulation", - "description": "Payload encapsulation protocol", + "description": "Payload encapsulation protocol. Must be 'none' for the websocket transport.", "paramType": "query", "required": false, "allowMultiple": false, @@ -1819,7 +1959,8 @@ "valueType": "LIST", "values": [ "rtp", - "audiosocket" + "audiosocket", + "none" ] } }, @@ -1835,13 +1976,14 @@ "valueType": "LIST", "values": [ "udp", - "tcp" + "tcp", + "websocket" ] } }, { "name": "connection_type", - "description": "Connection type (client/server)", + "description": "Connection type (client/server). 'server' is only valid for the websocket transport.", "paramType": "query", "required": false, "allowMultiple": false, @@ -1850,7 +1992,8 @@ "allowableValues": { "valueType": "LIST", "values": [ - "client" + "client", + "server" ] } }, @@ -1898,6 +2041,59 @@ ] } ] + }, + { + "path": "/channels/{channelId}/transfer_progress", + "description": "Inform the channel that the transfer is in progress.", + "operations": [ + { + "httpMethod": "POST", + "since": [ + "22.3.0", + "21.8.0", + "20.13.0" + ], + "summary": "Inform the channel about the progress of the attended/blind transfer.", + "nickname": "transfer_progress", + "responseClass": "void", + "parameters": [ + { + "name": "channelId", + "description": "Channel's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "states", + "description": "The state of the progress", + "paramType": "query", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 400, + "reason": "Endpoint parameter not provided" + }, + { + "code": 404, + "reason": "Channel or endpoint not found" + }, + { + "code": 409, + "reason": "Channel not in a Stasis application" + }, + { + "code": 412, + "reason": "Channel in invalid state" + } + ] + } + ] } ], "models": { diff --git a/codegen/src/main/resources/codegen-data/ari_8_0_0/deviceStates.json b/codegen/src/main/resources/codegen-data/ari_8_0_0/deviceStates.json index bd389355..f0a889bc 100644 --- a/codegen/src/main/resources/codegen-data/ari_8_0_0/deviceStates.json +++ b/codegen/src/main/resources/codegen-data/ari_8_0_0/deviceStates.json @@ -6,6 +6,9 @@ "swaggerVersion": "1.1", "basePath": "http://localhost:8088/ari", "resourcePath": "/api-docs/deviceStates.{format}", + "since": [ + "12.0.0" + ], "requiresModules": [ "res_stasis_device_state" ], @@ -16,6 +19,9 @@ "operations": [ { "httpMethod": "GET", + "since": [ + "12.0.0" + ], "summary": "List all ARI controlled device states.", "nickname": "list", "responseClass": "List[DeviceState]" @@ -28,6 +34,9 @@ "operations": [ { "httpMethod": "GET", + "since": [ + "12.0.0" + ], "summary": "Retrieve the current state of a device.", "nickname": "get", "responseClass": "DeviceState", @@ -44,6 +53,9 @@ }, { "httpMethod": "PUT", + "since": [ + "12.0.0" + ], "summary": "Change the state of a device controlled by ARI. (Note - implicitly creates the device state).", "nickname": "update", "responseClass": "void", @@ -92,6 +104,9 @@ }, { "httpMethod": "DELETE", + "since": [ + "12.0.0" + ], "summary": "Destroy a device-state controlled by ARI.", "nickname": "delete", "responseClass": "void", diff --git a/codegen/src/main/resources/codegen-data/ari_8_0_0/endpoints.json b/codegen/src/main/resources/codegen-data/ari_8_0_0/endpoints.json index 7560b9cb..93c406f7 100644 --- a/codegen/src/main/resources/codegen-data/ari_8_0_0/endpoints.json +++ b/codegen/src/main/resources/codegen-data/ari_8_0_0/endpoints.json @@ -6,6 +6,9 @@ "swaggerVersion": "1.1", "basePath": "http://localhost:8088/ari", "resourcePath": "/api-docs/endpoints.{format}", + "since": [ + "12.0.0" + ], "apis": [ { "path": "/endpoints", @@ -13,6 +16,9 @@ "operations": [ { "httpMethod": "GET", + "since": [ + "12.0.0" + ], "summary": "List all endpoints.", "nickname": "list", "responseClass": "List[Endpoint]" @@ -25,6 +31,9 @@ "operations": [ { "httpMethod": "PUT", + "since": [ + "13.0.0" + ], "summary": "Send a message to some technology URI or endpoint.", "nickname": "sendMessage", "responseClass": "void", @@ -81,6 +90,10 @@ "operations": [ { "httpMethod": "POST", + "since": [ + "18.20.0", + "20.5.0" + ], "summary": "Refer an endpoint or technology URI to some technology URI or endpoint.", "nickname": "refer", "responseClass": "void", @@ -146,6 +159,9 @@ "operations": [ { "httpMethod": "GET", + "since": [ + "12.0.0" + ], "summary": "List available endoints for a given endpoint technology.", "nickname": "listByTech", "responseClass": "List[Endpoint]", @@ -172,6 +188,9 @@ "operations": [ { "httpMethod": "GET", + "since": [ + "12.0.0" + ], "summary": "Details for an endpoint.", "nickname": "get", "responseClass": "Endpoint", @@ -208,6 +227,9 @@ "operations": [ { "httpMethod": "PUT", + "since": [ + "13.0.0" + ], "summary": "Send a message to some endpoint in a technology.", "nickname": "sendMessageToEndpoint", "responseClass": "void", @@ -268,6 +290,10 @@ "operations": [ { "httpMethod": "POST", + "since": [ + "18.20.0", + "20.5.0" + ], "summary": "Refer an endpoint or technology URI to some technology URI or endpoint.", "nickname": "referToEndpoint", "responseClass": "void", diff --git a/codegen/src/main/resources/codegen-data/ari_8_0_0/events.json b/codegen/src/main/resources/codegen-data/ari_8_0_0/events.json index c9822f6c..b7d14ef1 100644 --- a/codegen/src/main/resources/codegen-data/ari_8_0_0/events.json +++ b/codegen/src/main/resources/codegen-data/ari_8_0_0/events.json @@ -6,6 +6,9 @@ "swaggerVersion": "1.2", "basePath": "http://localhost:8088/ari", "resourcePath": "/api-docs/events.{format}", + "since": [ + "12.0.0" + ], "requiresModules": [ "res_http_websocket" ], @@ -16,6 +19,9 @@ "operations": [ { "httpMethod": "GET", + "since": [ + "12.0.0" + ], "upgrade": "websocket", "websocketProtocol": "ari", "summary": "WebSocket connection for events.", @@ -48,6 +54,9 @@ "operations": [ { "httpMethod": "POST", + "since": [ + "12.3.0" + ], "summary": "Generate a user event.", "nickname": "userEvent", "responseClass": "void", @@ -160,6 +169,8 @@ "RecordingFinished", "RecordingFailed", "ApplicationMoveFailed", + "ApplicationRegistered", + "ApplicationUnregistered", "ApplicationReplaced", "BridgeCreated", "BridgeDestroyed", @@ -189,7 +200,9 @@ "StasisStart", "TextMessageReceived", "ChannelConnectedLine", - "PeerStatusChange" + "PeerStatusChange", + "ChannelTransfer", + "RESTResponse" ] }, "ContactInfo": { @@ -355,6 +368,16 @@ } } }, + "ApplicationRegistered": { + "id": "ApplicationRegistered", + "description": "Notification that a Stasis app has been registered.", + "properties": {} + }, + "ApplicationUnregistered": { + "id": "ApplicationUnregistered", + "description": "Notification that a Stasis app has been unregistered.", + "properties": {} + }, "ApplicationReplaced": { "id": "ApplicationReplaced", "description": "Notification that another WebSocket has taken over for an application.\n\nAn application may only be subscribed to by a single WebSocket at a time. If multiple WebSockets attempt to subscribe to the same application, the newer WebSocket wins, and the older one receives this event.", @@ -555,6 +578,10 @@ "description": "Text representation of the cause of the hangup", "type": "string" }, + "tech_cause": { + "type": "int", + "description": "Integer representation of the technology-specific off-nominal cause of the hangup." + }, "channel": { "required": true, "type": "Channel" @@ -700,6 +727,10 @@ "type": "int", "description": "Integer representation of the cause of the hangup." }, + "tech_cause": { + "type": "int", + "description": "Integer representation of the technology-specific off-nominal cause of the hangup." + }, "soft": { "type": "boolean", "description": "Whether the hangup request was a soft hangup request." @@ -913,6 +944,229 @@ "description": "The channel whose connected line has changed." } } + }, + "ChannelTransfer": { + "id": "ChannelTransfer", + "description": "transfer on a channel.", + "properties": { + "state": { + "required": false, + "type": "string", + "description": "Transfer State" + }, + "refer_to": { + "required": true, + "type": "ReferTo", + "description": "Refer-To information with optionally both affected channels" + }, + "referred_by": { + "required": true, + "type": "ReferredBy", + "description": "Referred-By SIP Header according rfc3892" + } + } + }, + "ReferTo": { + "id": "ReferTo", + "description": "transfer destination requested by transferee", + "properties": { + "requested_destination": { + "required": true, + "type": "RequiredDestination" + }, + "destination_channel": { + "required": false, + "type": "Channel", + "description": "The Channel Object, that is to be replaced" + }, + "connected_channel": { + "required": false, + "type": "Channel", + "description": "Channel, connected to the to be replaced channel" + }, + "bridge": { + "required": false, + "type": "Bridge", + "description": "Bridge connecting both destination channels" + } + } + }, + "ReferredBy": { + "id": "ReferredBy", + "description": "transfer destination requested by transferee", + "properties": { + "source_channel": { + "required": true, + "type": "Channel", + "description": "The channel on which the refer was received" + }, + "connected_channel": { + "required": false, + "type": "Channel", + "description": "Channel, Connected to the channel, receiving the transfer request on." + }, + "bridge": { + "required": false, + "type": "Bridge", + "description": "Bridge connecting both Channels" + } + } + }, + "RequiredDestination": { + "id": "RequiredDestination", + "description": "Information about the requested destination", + "properties": { + "protocol_id": { + "required": false, + "type": "string", + "description": "the requested protocol-id by the referee in case of SIP channel, this is a SIP Call ID, Mutually exclusive to destination" + }, + "destination": { + "required": false, + "type": "string", + "description": "Destination User Part. Only for Blind transfer. Mutually exclusive to protocol_id" + }, + "additional_protocol_params": { + "required": false, + "type": "List[AdditionalParam]", + "description": "List of additional protocol specific information" + } + } + }, + "AdditionalParam": { + "id": "AdditionalParam", + "description": "Protocol specific additional parameter", + "properties": { + "parameter_name": { + "required": true, + "type": "string", + "description": "Name of the parameter" + }, + "parameter_value": { + "required": true, + "type": "string", + "description": "Value of the parameter" + } + } + }, + "RESTHeader": { + "id": "RESTHeader", + "description": "REST over Websocket header", + "properties": { + "name": { + "type": "string", + "description": "Header name", + "required": true + }, + "value": { + "required": true, + "type": "string", + "description": "Header value" + } + } + }, + "RESTQueryStringParameter": { + "id": "RESTQueryStringParameter", + "description": "REST over Websocket Query String Parameter", + "properties": { + "name": { + "type": "string", + "description": "Parameter name", + "required": true + }, + "value": { + "required": true, + "type": "string", + "description": "Parameter value" + } + } + }, + "RESTRequest": { + "id": "RESTRequest", + "description": "REST over Websocket Request.", + "properties": { + "type": { + "type": "string", + "description": "Message type. Must be 'RESTRequest'", + "required": true + }, + "transaction_id": { + "type": "string", + "description": "Opaque transaction id. Can be any valid string. Will be returned in any response to this request.", + "required": true + }, + "request_id": { + "type": "string", + "description": "Opaque request id. Can be any valid string. Will be returned in any response to this request.", + "required": true + }, + "method": { + "required": true, + "type": "string", + "description": "HTTP method (GET, PUT, POST, DELETE, etc.)" + }, + "uri": { + "required": true, + "type": "string", + "description": "Resource URI with optional query string parameters." + }, + "content_type": { + "required": false, + "type": "string", + "description": "The Content-Type of the message body." + }, + "query_strings": { + "required": false, + "type": "List[RESTQueryStringParameter]", + "description": "Request query string parameters." + }, + "message_body": { + "required": false, + "type": "string", + "description": "Request message body. Only content types application/json and application/x-www-form-urlencoded are supported." + } + } + }, + "RESTResponse": { + "id": "RESTResponse", + "description": "REST over Websocket Response.", + "properties": { + "transaction_id": { + "type": "string", + "description": "Opaque transaction id. Will be whatever was specified on the original request.", + "required": true + }, + "request_id": { + "type": "string", + "description": "Opaque request id. Will be whatever was specified on the original request.", + "required": true + }, + "status_code": { + "required": true, + "type": "int", + "description": "HTTP status code" + }, + "reason_phrase": { + "required": true, + "type": "string", + "description": "HTTP reason phrase" + }, + "uri": { + "required": true, + "type": "string", + "description": "Original request resource URI" + }, + "content_type": { + "required": false, + "type": "string", + "description": "The Content-Type of the message body." + }, + "message_body": { + "required": false, + "type": "string", + "description": "Response message body" + } + } } } } diff --git a/codegen/src/main/resources/codegen-data/ari_8_0_0/mailboxes.json b/codegen/src/main/resources/codegen-data/ari_8_0_0/mailboxes.json index 8f5941b8..d99e1eac 100644 --- a/codegen/src/main/resources/codegen-data/ari_8_0_0/mailboxes.json +++ b/codegen/src/main/resources/codegen-data/ari_8_0_0/mailboxes.json @@ -6,6 +6,9 @@ "swaggerVersion": "1.1", "basePath": "http://localhost:8088/ari", "resourcePath": "/api-docs/mailboxes.{format}", + "since": [ + "12.1.0" + ], "requiresModules": [ "res_stasis_mailbox" ], @@ -16,6 +19,9 @@ "operations": [ { "httpMethod": "GET", + "since": [ + "12.1.0" + ], "summary": "List all mailboxes.", "nickname": "list", "responseClass": "List[Mailbox]" @@ -28,6 +34,9 @@ "operations": [ { "httpMethod": "GET", + "since": [ + "12.1.0" + ], "summary": "Retrieve the current state of a mailbox.", "nickname": "get", "responseClass": "Mailbox", @@ -50,6 +59,9 @@ }, { "httpMethod": "PUT", + "since": [ + "12.1.0" + ], "summary": "Change the state of a mailbox. (Note - implicitly creates the mailbox).", "nickname": "update", "responseClass": "void", @@ -88,6 +100,9 @@ }, { "httpMethod": "DELETE", + "since": [ + "12.1.0" + ], "summary": "Destroy a mailbox.", "nickname": "delete", "responseClass": "void", diff --git a/codegen/src/main/resources/codegen-data/ari_8_0_0/playbacks.json b/codegen/src/main/resources/codegen-data/ari_8_0_0/playbacks.json index 793986fc..a7892f18 100644 --- a/codegen/src/main/resources/codegen-data/ari_8_0_0/playbacks.json +++ b/codegen/src/main/resources/codegen-data/ari_8_0_0/playbacks.json @@ -6,6 +6,9 @@ "swaggerVersion": "1.1", "basePath": "http://localhost:8088/ari", "resourcePath": "/api-docs/playbacks.{format}", + "since": [ + "12.0.0" + ], "requiresModules": [ "res_stasis_playback" ], @@ -16,6 +19,9 @@ "operations": [ { "httpMethod": "GET", + "since": [ + "12.0.0" + ], "summary": "Get a playback's details.", "nickname": "get", "responseClass": "Playback", @@ -38,6 +44,9 @@ }, { "httpMethod": "DELETE", + "since": [ + "12.0.0" + ], "summary": "Stop a playback.", "nickname": "stop", "responseClass": "void", @@ -66,6 +75,9 @@ "operations": [ { "httpMethod": "POST", + "since": [ + "12.0.0" + ], "summary": "Control a playback.", "nickname": "control", "responseClass": "void", diff --git a/codegen/src/main/resources/codegen-data/ari_8_0_0/recordings.json b/codegen/src/main/resources/codegen-data/ari_8_0_0/recordings.json index 6ffd6d8e..1496db8a 100644 --- a/codegen/src/main/resources/codegen-data/ari_8_0_0/recordings.json +++ b/codegen/src/main/resources/codegen-data/ari_8_0_0/recordings.json @@ -6,6 +6,9 @@ "swaggerVersion": "1.1", "basePath": "http://localhost:8088/ari", "resourcePath": "/api-docs/recordings.{format}", + "since": [ + "12.0.0" + ], "requiresModules": [ "res_stasis_recording" ], @@ -16,6 +19,9 @@ "operations": [ { "httpMethod": "GET", + "since": [ + "12.0.0" + ], "summary": "List recordings that are complete.", "nickname": "listStored", "responseClass": "List[StoredRecording]" @@ -28,6 +34,9 @@ "operations": [ { "httpMethod": "GET", + "since": [ + "12.0.0" + ], "summary": "Get a stored recording's details.", "nickname": "getStored", "responseClass": "StoredRecording", @@ -50,6 +59,9 @@ }, { "httpMethod": "DELETE", + "since": [ + "12.0.0" + ], "summary": "Delete a stored recording.", "nickname": "deleteStored", "responseClass": "void", @@ -78,6 +90,9 @@ "operations": [ { "httpMethod": "GET", + "since": [ + "14.0.0" + ], "summary": "Get the file associated with the stored recording.", "nickname": "getStoredFile", "responseClass": "binary", @@ -110,6 +125,9 @@ "operations": [ { "httpMethod": "POST", + "since": [ + "12.5.0" + ], "summary": "Copy a stored recording.", "nickname": "copyStored", "responseClass": "StoredRecording", @@ -150,6 +168,9 @@ "operations": [ { "httpMethod": "GET", + "since": [ + "12.0.0" + ], "summary": "List live recordings.", "nickname": "getLive", "responseClass": "LiveRecording", @@ -172,6 +193,9 @@ }, { "httpMethod": "DELETE", + "since": [ + "12.0.0" + ], "summary": "Stop a live recording and discard it.", "nickname": "cancel", "responseClass": "void", @@ -199,6 +223,9 @@ "operations": [ { "httpMethod": "POST", + "since": [ + "12.0.0" + ], "summary": "Stop a live recording and store it.", "nickname": "stop", "responseClass": "void", @@ -226,6 +253,9 @@ "operations": [ { "httpMethod": "POST", + "since": [ + "12.0.0" + ], "summary": "Pause a live recording.", "notes": "Pausing a recording suspends silence detection, which will be restarted when the recording is unpaused. Paused time is not included in the accounting for maxDurationSeconds.", "nickname": "pause", @@ -253,6 +283,9 @@ }, { "httpMethod": "DELETE", + "since": [ + "12.0.0" + ], "summary": "Unpause a live recording.", "nickname": "unpause", "responseClass": "void", @@ -284,6 +317,9 @@ "operations": [ { "httpMethod": "POST", + "since": [ + "12.0.0" + ], "summary": "Mute a live recording.", "notes": "Muting a recording suspends silence detection, which will be restarted when the recording is unmuted.", "nickname": "mute", @@ -311,6 +347,9 @@ }, { "httpMethod": "DELETE", + "since": [ + "12.0.0" + ], "summary": "Unmute a live recording.", "nickname": "unmute", "responseClass": "void", diff --git a/codegen/src/main/resources/codegen-data/ari_8_0_0/sounds.json b/codegen/src/main/resources/codegen-data/ari_8_0_0/sounds.json index 8fbe1c57..aee4d369 100644 --- a/codegen/src/main/resources/codegen-data/ari_8_0_0/sounds.json +++ b/codegen/src/main/resources/codegen-data/ari_8_0_0/sounds.json @@ -6,6 +6,9 @@ "swaggerVersion": "1.1", "basePath": "http://localhost:8088/ari", "resourcePath": "/api-docs/sounds.{format}", + "since": [ + "12.0.0" + ], "apis": [ { "path": "/sounds", @@ -13,6 +16,9 @@ "operations": [ { "httpMethod": "GET", + "since": [ + "12.0.0" + ], "summary": "List all sounds.", "nickname": "list", "responseClass": "List[Sound]", @@ -42,6 +48,9 @@ "operations": [ { "httpMethod": "GET", + "since": [ + "12.0.0" + ], "summary": "Get a sound's details.", "nickname": "get", "responseClass": "Sound", diff --git a/codegen/src/main/resources/codegen-data/ari_9_0_0/applications.json b/codegen/src/main/resources/codegen-data/ari_9_0_0/applications.json index 09c5cd5c..8ad9f36d 100644 --- a/codegen/src/main/resources/codegen-data/ari_9_0_0/applications.json +++ b/codegen/src/main/resources/codegen-data/ari_9_0_0/applications.json @@ -6,6 +6,9 @@ "swaggerVersion": "1.1", "basePath": "http://localhost:8088/ari", "resourcePath": "/api-docs/applications.{format}", + "since": [ + "13.0.0" + ], "apis": [ { "path": "/applications", @@ -13,6 +16,9 @@ "operations": [ { "httpMethod": "GET", + "since": [ + "13.0.0" + ], "summary": "List all applications.", "nickname": "list", "responseClass": "List[Application]" @@ -25,6 +31,9 @@ "operations": [ { "httpMethod": "GET", + "since": [ + "13.0.0" + ], "summary": "Get details of an application.", "nickname": "get", "responseClass": "Application", @@ -53,6 +62,9 @@ "operations": [ { "httpMethod": "POST", + "since": [ + "13.0.0" + ], "summary": "Subscribe an application to a event source.", "notes": "Returns the state of the application after the subscriptions have changed", "nickname": "subscribe", @@ -92,6 +104,9 @@ }, { "httpMethod": "DELETE", + "since": [ + "13.0.0" + ], "summary": "Unsubscribe an application from an event source.", "notes": "Returns the state of the application after the subscriptions have changed", "nickname": "unsubscribe", @@ -141,6 +156,10 @@ "operations": [ { "httpMethod": "PUT", + "since": [ + "13.26.0", + "16.3.0" + ], "summary": "Filter application events types.", "notes": "Allowed and/or disallowed event type filtering can be done. The body (parameter) should specify a JSON key/value object that describes the type of event filtering needed. One, or both of the following keys can be designated:

\"allowed\" - Specifies an allowed list of event types
\"disallowed\" - Specifies a disallowed list of event types

Further, each of those key's value should be a JSON array that holds zero, or more JSON key/value objects. Each of these objects must contain the following key with an associated value:

\"type\" - The type name of the event to filter

The value must be the string name (case sensitive) of the event type that needs filtering. For example:

{ \"allowed\": [ { \"type\": \"StasisStart\" }, { \"type\": \"StasisEnd\" } ] }

As this specifies only an allowed list, then only those two event type messages are sent to the application. No other event messages are sent.

The following rules apply:

* If the body is empty, both the allowed and disallowed filters are set empty.
* If both list types are given then both are set to their respective values (note, specifying an empty array for a given type sets that type to empty).
* If only one list type is given then only that type is set. The other type is not updated.
* An empty \"allowed\" list means all events are allowed.
* An empty \"disallowed\" list means no events are disallowed.
* Disallowed events take precedence over allowed events if the event type is specified in both lists.", "nickname": "filter", diff --git a/codegen/src/main/resources/codegen-data/ari_9_0_0/asterisk.json b/codegen/src/main/resources/codegen-data/ari_9_0_0/asterisk.json index 841e6cd8..83fef8b7 100644 --- a/codegen/src/main/resources/codegen-data/ari_9_0_0/asterisk.json +++ b/codegen/src/main/resources/codegen-data/ari_9_0_0/asterisk.json @@ -6,6 +6,9 @@ "swaggerVersion": "1.1", "basePath": "http://localhost:8088/ari", "resourcePath": "/api-docs/asterisk.{format}", + "since": [ + "12.0.0" + ], "apis": [ { "path": "/asterisk/config/dynamic/{configClass}/{objectType}/{id}", @@ -13,6 +16,9 @@ "operations": [ { "httpMethod": "GET", + "since": [ + "13.5.0" + ], "summary": "Retrieve a dynamic configuration object.", "nickname": "getObject", "responseClass": "List[ConfigTuple]", @@ -51,6 +57,9 @@ }, { "httpMethod": "PUT", + "since": [ + "13.5.0" + ], "summary": "Create or update a dynamic configuration object.", "nickname": "updateObject", "responseClass": "List[ConfigTuple]", @@ -105,6 +114,9 @@ }, { "httpMethod": "DELETE", + "since": [ + "13.5.0" + ], "summary": "Delete a dynamic configuration object.", "nickname": "deleteObject", "responseClass": "void", @@ -153,6 +165,9 @@ "operations": [ { "httpMethod": "GET", + "since": [ + "12.0.0" + ], "summary": "Gets Asterisk system information.", "nickname": "getInfo", "responseClass": "AsteriskInfo", @@ -184,6 +199,10 @@ "operations": [ { "httpMethod": "GET", + "since": [ + "13.25.0", + "16.2.0" + ], "summary": "Response pong message.", "nickname": "ping", "responseClass": "AsteriskPing" @@ -196,6 +215,9 @@ "operations": [ { "httpMethod": "GET", + "since": [ + "13.5.0" + ], "summary": "List Asterisk modules.", "nickname": "listModules", "responseClass": "List[Module]" @@ -208,6 +230,9 @@ "operations": [ { "httpMethod": "GET", + "since": [ + "13.5.0" + ], "summary": "Get Asterisk module information.", "nickname": "getModule", "responseClass": "Module", @@ -234,6 +259,9 @@ }, { "httpMethod": "POST", + "since": [ + "13.5.0" + ], "summary": "Load an Asterisk module.", "nickname": "loadModule", "responseClass": "void", @@ -256,6 +284,9 @@ }, { "httpMethod": "DELETE", + "since": [ + "13.5.0" + ], "summary": "Unload an Asterisk module.", "nickname": "unloadModule", "responseClass": "void", @@ -282,6 +313,9 @@ }, { "httpMethod": "PUT", + "since": [ + "13.5.0" + ], "summary": "Reload an Asterisk module.", "nickname": "reloadModule", "responseClass": "void", @@ -314,6 +348,9 @@ "operations": [ { "httpMethod": "GET", + "since": [ + "13.6.0" + ], "summary": "Gets Asterisk log channel information.", "nickname": "listLogChannels", "responseClass": "List[LogChannel]" @@ -326,6 +363,9 @@ "operations": [ { "httpMethod": "POST", + "since": [ + "13.6.0" + ], "summary": "Adds a log channel.", "nickname": "addLog", "responseClass": "void", @@ -360,6 +400,9 @@ }, { "httpMethod": "DELETE", + "since": [ + "13.6.0" + ], "summary": "Deletes a log channel.", "nickname": "deleteLog", "responseClass": "void", @@ -388,6 +431,9 @@ "operations": [ { "httpMethod": "PUT", + "since": [ + "13.6.0" + ], "summary": "Rotates a log channel.", "nickname": "rotateLog", "responseClass": "void", @@ -416,6 +462,9 @@ "operations": [ { "httpMethod": "GET", + "since": [ + "12.0.0" + ], "summary": "Get the value of a global variable.", "nickname": "getGlobalVar", "responseClass": "Variable", @@ -438,6 +487,9 @@ }, { "httpMethod": "POST", + "since": [ + "12.0.0" + ], "summary": "Set the value of a global variable.", "nickname": "setGlobalVar", "responseClass": "void", diff --git a/codegen/src/main/resources/codegen-data/ari_9_0_0/bridges.json b/codegen/src/main/resources/codegen-data/ari_9_0_0/bridges.json index 636d2540..4cd15b97 100644 --- a/codegen/src/main/resources/codegen-data/ari_9_0_0/bridges.json +++ b/codegen/src/main/resources/codegen-data/ari_9_0_0/bridges.json @@ -6,6 +6,9 @@ "swaggerVersion": "1.1", "basePath": "http://localhost:8088/ari", "resourcePath": "/api-docs/bridges.{format}", + "since": [ + "12.0.0" + ], "requiresModules": [ "res_stasis_recording", "res_stasis_playback" @@ -17,12 +20,18 @@ "operations": [ { "httpMethod": "GET", + "since": [ + "12.0.0" + ], "summary": "List all active bridges in Asterisk.", "nickname": "list", "responseClass": "List[Bridge]" }, { "httpMethod": "POST", + "since": [ + "12.0.0" + ], "summary": "Create a new bridge.", "notes": "This bridge persists until it has been shut down, or Asterisk has been shut down.", "nickname": "create", @@ -52,6 +61,12 @@ "allowMultiple": false, "dataType": "string" } + ], + "errorResponses": [ + { + "code": 409, + "reason": "Bridge with the same bridgeId already exists" + } ] } ] @@ -62,7 +77,10 @@ "operations": [ { "httpMethod": "POST", - "summary": "Create a new bridge or updates an existing one.", + "since": [ + "12.2.0" + ], + "summary": "Create a new bridge.", "notes": "This bridge persists until it has been shut down, or Asterisk has been shut down.", "nickname": "createWithId", "responseClass": "Bridge", @@ -91,10 +109,19 @@ "allowMultiple": false, "dataType": "string" } + ], + "errorResponses": [ + { + "code": 409, + "reason": "Bridge with the same bridgeId already exists" + } ] }, { "httpMethod": "GET", + "since": [ + "12.0.0" + ], "summary": "Get bridge details.", "nickname": "get", "responseClass": "Bridge", @@ -117,6 +144,9 @@ }, { "httpMethod": "DELETE", + "since": [ + "12.0.0" + ], "summary": "Shut down a bridge.", "notes": "If any channels are in this bridge, they will be removed and resume whatever they were doing beforehand.", "nickname": "destroy", @@ -146,6 +176,9 @@ "operations": [ { "httpMethod": "POST", + "since": [ + "12.0.0" + ], "summary": "Add a channel to a bridge.", "nickname": "addChannel", "responseClass": "void", @@ -229,6 +262,9 @@ "operations": [ { "httpMethod": "POST", + "since": [ + "12.0.0" + ], "summary": "Remove a channel from a bridge.", "nickname": "removeChannel", "responseClass": "void", @@ -277,6 +313,10 @@ "operations": [ { "httpMethod": "POST", + "since": [ + "13.13.0", + "14.2.0" + ], "summary": "Set a channel as the video source in a multi-party mixing bridge. This operation has no effect on bridges with two or fewer participants.", "nickname": "setVideoSource", "responseClass": "void", @@ -321,6 +361,10 @@ "operations": [ { "httpMethod": "DELETE", + "since": [ + "13.13.0", + "14.2.0" + ], "summary": "Removes any explicit video source in a multi-party mixing bridge. This operation has no effect on bridges with two or fewer participants. When no explicit video source is set, talk detection will be used to determine the active video stream.", "nickname": "clearVideoSource", "responseClass": "void", @@ -349,6 +393,9 @@ "operations": [ { "httpMethod": "POST", + "since": [ + "12.0.0" + ], "summary": "Play music on hold to a bridge or change the MOH class that is playing.", "nickname": "startMoh", "responseClass": "void", @@ -383,6 +430,9 @@ }, { "httpMethod": "DELETE", + "since": [ + "12.0.0" + ], "summary": "Stop playing music on hold to a bridge.", "notes": "This will only stop music on hold being played via POST bridges/{bridgeId}/moh.", "nickname": "stopMoh", @@ -416,6 +466,9 @@ "operations": [ { "httpMethod": "POST", + "since": [ + "12.0.0" + ], "summary": "Start playback of media on a bridge.", "notes": "The media URI may be any of a number of URI's. Currently sound:, recording:, number:, digits:, characters:, and tone: URI's are supported. This operation creates a playback resource that can be used to control the playback of media (pause, rewind, fast forward, etc.)", "nickname": "play", @@ -500,6 +553,9 @@ "operations": [ { "httpMethod": "POST", + "since": [ + "12.3.0" + ], "summary": "Start playback of media on a bridge.", "notes": "The media URI may be any of a number of URI's. Currently sound:, recording:, number:, digits:, characters:, and tone: URI's are supported. This operation creates a playback resource that can be used to control the playback of media (pause, rewind, fast forward, etc.)", "nickname": "playWithId", @@ -584,6 +640,9 @@ "operations": [ { "httpMethod": "POST", + "since": [ + "12.0.0" + ], "summary": "Start a recording.", "notes": "This records the mixed audio from all channels participating in this bridge.", "nickname": "record", diff --git a/codegen/src/main/resources/codegen-data/ari_9_0_0/channels.json b/codegen/src/main/resources/codegen-data/ari_9_0_0/channels.json index ab4a0421..a50b8720 100644 --- a/codegen/src/main/resources/codegen-data/ari_9_0_0/channels.json +++ b/codegen/src/main/resources/codegen-data/ari_9_0_0/channels.json @@ -6,6 +6,9 @@ "swaggerVersion": "1.1", "basePath": "http://localhost:8088/ari", "resourcePath": "/api-docs/channels.{format}", + "since": [ + "12.0.0" + ], "requiresModules": [ "res_stasis_answer", "res_stasis_playback", @@ -19,12 +22,18 @@ "operations": [ { "httpMethod": "GET", + "since": [ + "12.0.0" + ], "summary": "List all active channels in Asterisk.", "nickname": "list", "responseClass": "List[Channel]" }, { "httpMethod": "POST", + "since": [ + "12.0.0" + ], "summary": "Create a new channel (originate).", "notes": "The new channel is created immediately and a snapshot of it returned. If a Stasis application is provided it will be automatically subscribed to the originated channel for further events and updates.", "nickname": "originate", @@ -163,6 +172,9 @@ "operations": [ { "httpMethod": "POST", + "since": [ + "14.0.0" + ], "summary": "Create channel.", "nickname": "create", "responseClass": "Channel", @@ -247,6 +259,9 @@ "operations": [ { "httpMethod": "GET", + "since": [ + "12.0.0" + ], "summary": "Channel details.", "nickname": "get", "responseClass": "Channel", @@ -269,6 +284,9 @@ }, { "httpMethod": "POST", + "since": [ + "12.2.0" + ], "summary": "Create a new channel (originate with id).", "notes": "The new channel is created immediately and a snapshot of it returned. If a Stasis application is provided it will be automatically subscribed to the originated channel for further events and updates.", "nickname": "originateWithId", @@ -402,6 +420,9 @@ }, { "httpMethod": "DELETE", + "since": [ + "12.0.0" + ], "summary": "Delete (i.e. hangup) a channel.", "nickname": "hangup", "responseClass": "void", @@ -468,6 +489,9 @@ "operations": [ { "httpMethod": "POST", + "since": [ + "12.0.0" + ], "summary": "Exit application; continue execution in the dialplan.", "nickname": "continueInDialplan", "responseClass": "void", @@ -536,6 +560,10 @@ "operations": [ { "httpMethod": "POST", + "since": [ + "13.26.0", + "16.3.0" + ], "summary": "Move the channel from one Stasis application to another.", "nickname": "move", "responseClass": "void", @@ -584,6 +612,9 @@ "operations": [ { "httpMethod": "POST", + "since": [ + "13.3.0" + ], "summary": "Redirect the channel to a different location.", "nickname": "redirect", "responseClass": "void", @@ -636,6 +667,9 @@ "operations": [ { "httpMethod": "POST", + "since": [ + "12.0.0" + ], "summary": "Answer a channel.", "nickname": "answer", "responseClass": "void", @@ -672,6 +706,9 @@ "operations": [ { "httpMethod": "POST", + "since": [ + "12.0.0" + ], "summary": "Indicate ringing to a channel.", "nickname": "ring", "responseClass": "void", @@ -702,6 +739,9 @@ }, { "httpMethod": "DELETE", + "since": [ + "12.0.0" + ], "summary": "Stop ringing indication on a channel if locally generated.", "nickname": "ringStop", "responseClass": "void", @@ -732,12 +772,56 @@ } ] }, + { + "path": "/channels/{channelId}/progress", + "description": "Indicate progress on a channel", + "operations": [ + { + "httpMethod": "POST", + "since": [ + "22.6.0", + "21.11.0", + "20.16.0" + ], + "summary": "Indicate progress on a channel.", + "nickname": "progress", + "responseClass": "void", + "parameters": [ + { + "name": "channelId", + "description": "Channel's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 404, + "reason": "Channel not found" + }, + { + "code": 409, + "reason": "Channel not in a Stasis application" + }, + { + "code": 412, + "reason": "Channel in invalid state" + } + ] + } + ] + }, { "path": "/channels/{channelId}/dtmf", "description": "Send DTMF to a channel", "operations": [ { "httpMethod": "POST", + "since": [ + "12.0.0" + ], "summary": "Send provided DTMF to a given channel.", "nickname": "sendDTMF", "responseClass": "void", @@ -822,6 +906,9 @@ "operations": [ { "httpMethod": "POST", + "since": [ + "12.0.0" + ], "summary": "Mute a channel.", "nickname": "mute", "responseClass": "void", @@ -869,6 +956,9 @@ }, { "httpMethod": "DELETE", + "since": [ + "12.0.0" + ], "summary": "Unmute a channel.", "nickname": "unmute", "responseClass": "void", @@ -922,6 +1012,9 @@ "operations": [ { "httpMethod": "POST", + "since": [ + "12.0.0" + ], "summary": "Hold a channel.", "nickname": "hold", "responseClass": "void", @@ -952,6 +1045,9 @@ }, { "httpMethod": "DELETE", + "since": [ + "12.0.0" + ], "summary": "Remove a channel from hold.", "nickname": "unhold", "responseClass": "void", @@ -988,6 +1084,9 @@ "operations": [ { "httpMethod": "POST", + "since": [ + "12.0.0" + ], "summary": "Play music on hold to a channel.", "notes": "Using media operations such as /play on a channel playing MOH in this manner will suspend MOH without resuming automatically. If continuing music on hold is desired, the stasis application must reinitiate music on hold.", "nickname": "startMoh", @@ -1027,6 +1126,9 @@ }, { "httpMethod": "DELETE", + "since": [ + "12.0.0" + ], "summary": "Stop playing music on hold to a channel.", "nickname": "stopMoh", "responseClass": "void", @@ -1063,6 +1165,9 @@ "operations": [ { "httpMethod": "POST", + "since": [ + "12.0.0" + ], "summary": "Play silence to a channel.", "notes": "Using media operations such as /play on a channel playing silence in this manner will suspend silence without resuming automatically.", "nickname": "startSilence", @@ -1094,6 +1199,9 @@ }, { "httpMethod": "DELETE", + "since": [ + "12.0.0" + ], "summary": "Stop playing silence to a channel.", "nickname": "stopSilence", "responseClass": "void", @@ -1130,6 +1238,9 @@ "operations": [ { "httpMethod": "POST", + "since": [ + "12.0.0" + ], "summary": "Start playback of media.", "notes": "The media URI may be any of a number of URI's. Currently sound:, recording:, number:, digits:, characters:, and tone: URI's are supported. This operation creates a playback resource that can be used to control the playback of media (pause, rewind, fast forward, etc.)", "nickname": "play", @@ -1208,6 +1319,9 @@ "operations": [ { "httpMethod": "POST", + "since": [ + "12.2.0" + ], "summary": "Start playback of media and specify the playbackId.", "notes": "The media URI may be any of a number of URI's. Currently sound:, recording:, number:, digits:, characters:, and tone: URI's are supported. This operation creates a playback resource that can be used to control the playback of media (pause, rewind, fast forward, etc.)", "nickname": "playWithId", @@ -1286,6 +1400,9 @@ "operations": [ { "httpMethod": "POST", + "since": [ + "12.0.0" + ], "summary": "Start a recording.", "notes": "Record audio from a channel. Note that this will not capture audio sent to the channel. The bridge itself has a record feature if that's what you want.", "nickname": "record", @@ -1397,7 +1514,7 @@ }, { "code": 409, - "reason": "Channel is not in a Stasis application; the channel is currently bridged with other hcannels; A recording with the same name already exists on the system and can not be overwritten because it is in progress or ifExists=fail" + "reason": "Channel is not in a Stasis application; the channel is currently bridged with other channels; A recording with the same name already exists on the system and can not be overwritten because it is in progress or ifExists=fail" }, { "code": 422, @@ -1413,6 +1530,9 @@ "operations": [ { "httpMethod": "GET", + "since": [ + "12.0.0" + ], "summary": "Get the value of a channel variable or function.", "nickname": "getChannelVar", "responseClass": "Variable", @@ -1451,6 +1571,9 @@ }, { "httpMethod": "POST", + "since": [ + "12.0.0" + ], "summary": "Set the value of a channel variable or function.", "nickname": "setChannelVar", "responseClass": "void", @@ -1503,6 +1626,9 @@ "operations": [ { "httpMethod": "POST", + "since": [ + "12.0.0" + ], "summary": "Start snooping.", "notes": "Snoop (spy/whisper) on a specific channel.", "nickname": "snoopChannel", @@ -1596,6 +1722,9 @@ "operations": [ { "httpMethod": "POST", + "since": [ + "12.2.0" + ], "summary": "Start snooping.", "notes": "Snoop (spy/whisper) on a specific channel.", "nickname": "snoopChannelWithId", @@ -1689,6 +1818,9 @@ "operations": [ { "httpMethod": "POST", + "since": [ + "14.0.0" + ], "summary": "Dial a created channel.", "nickname": "dial", "responseClass": "void", @@ -1742,6 +1874,10 @@ "operations": [ { "httpMethod": "GET", + "since": [ + "13.27.0", + "16.4.0" + ], "summary": "RTP stats on a channel.", "nickname": "rtpstatistics", "responseClass": "RTPstat", @@ -1770,8 +1906,12 @@ "operations": [ { "httpMethod": "POST", + "since": [ + "16.6.0", + "17.1.0" + ], "summary": "Start an External Media session.", - "notes": "Create a channel to an External Media source/sink.", + "notes": "Create a channel to an External Media source/sink. The combination of transport and encapsulation will select one of chan_rtp(udp/rtp), chan_audiosocket(tcp/audiosocket) or chan_websocket(websocket/none) channel drivers.", "nickname": "externalMedia", "responseClass": "Channel", "parameters": [ @@ -1801,15 +1941,15 @@ }, { "name": "external_host", - "description": "Hostname/ip:port of external host", + "description": "Hostname/ip:port or websocket_client connection ID of external host. May be empty for a websocket server connection.", "paramType": "query", - "required": true, + "required": false, "allowMultiple": false, "dataType": "string" }, { "name": "encapsulation", - "description": "Payload encapsulation protocol", + "description": "Payload encapsulation protocol. Must be 'none' for the websocket transport.", "paramType": "query", "required": false, "allowMultiple": false, @@ -1819,7 +1959,8 @@ "valueType": "LIST", "values": [ "rtp", - "audiosocket" + "audiosocket", + "none" ] } }, @@ -1835,13 +1976,14 @@ "valueType": "LIST", "values": [ "udp", - "tcp" + "tcp", + "websocket" ] } }, { "name": "connection_type", - "description": "Connection type (client/server)", + "description": "Connection type (client/server). 'server' is only valid for the websocket transport.", "paramType": "query", "required": false, "allowMultiple": false, @@ -1850,7 +1992,8 @@ "allowableValues": { "valueType": "LIST", "values": [ - "client" + "client", + "server" ] } }, @@ -1898,6 +2041,59 @@ ] } ] + }, + { + "path": "/channels/{channelId}/transfer_progress", + "description": "Inform the channel that the transfer is in progress.", + "operations": [ + { + "httpMethod": "POST", + "since": [ + "22.3.0", + "21.8.0", + "20.13.0" + ], + "summary": "Inform the channel about the progress of the attended/blind transfer.", + "nickname": "transfer_progress", + "responseClass": "void", + "parameters": [ + { + "name": "channelId", + "description": "Channel's id", + "paramType": "path", + "required": true, + "allowMultiple": false, + "dataType": "string" + }, + { + "name": "states", + "description": "The state of the progress", + "paramType": "query", + "required": true, + "allowMultiple": false, + "dataType": "string" + } + ], + "errorResponses": [ + { + "code": 400, + "reason": "Endpoint parameter not provided" + }, + { + "code": 404, + "reason": "Channel or endpoint not found" + }, + { + "code": 409, + "reason": "Channel not in a Stasis application" + }, + { + "code": 412, + "reason": "Channel in invalid state" + } + ] + } + ] } ], "models": { diff --git a/codegen/src/main/resources/codegen-data/ari_9_0_0/deviceStates.json b/codegen/src/main/resources/codegen-data/ari_9_0_0/deviceStates.json index bd389355..f0a889bc 100644 --- a/codegen/src/main/resources/codegen-data/ari_9_0_0/deviceStates.json +++ b/codegen/src/main/resources/codegen-data/ari_9_0_0/deviceStates.json @@ -6,6 +6,9 @@ "swaggerVersion": "1.1", "basePath": "http://localhost:8088/ari", "resourcePath": "/api-docs/deviceStates.{format}", + "since": [ + "12.0.0" + ], "requiresModules": [ "res_stasis_device_state" ], @@ -16,6 +19,9 @@ "operations": [ { "httpMethod": "GET", + "since": [ + "12.0.0" + ], "summary": "List all ARI controlled device states.", "nickname": "list", "responseClass": "List[DeviceState]" @@ -28,6 +34,9 @@ "operations": [ { "httpMethod": "GET", + "since": [ + "12.0.0" + ], "summary": "Retrieve the current state of a device.", "nickname": "get", "responseClass": "DeviceState", @@ -44,6 +53,9 @@ }, { "httpMethod": "PUT", + "since": [ + "12.0.0" + ], "summary": "Change the state of a device controlled by ARI. (Note - implicitly creates the device state).", "nickname": "update", "responseClass": "void", @@ -92,6 +104,9 @@ }, { "httpMethod": "DELETE", + "since": [ + "12.0.0" + ], "summary": "Destroy a device-state controlled by ARI.", "nickname": "delete", "responseClass": "void", diff --git a/codegen/src/main/resources/codegen-data/ari_9_0_0/endpoints.json b/codegen/src/main/resources/codegen-data/ari_9_0_0/endpoints.json index 3f3f98ce..233f2c84 100644 --- a/codegen/src/main/resources/codegen-data/ari_9_0_0/endpoints.json +++ b/codegen/src/main/resources/codegen-data/ari_9_0_0/endpoints.json @@ -6,6 +6,9 @@ "swaggerVersion": "1.1", "basePath": "http://localhost:8088/ari", "resourcePath": "/api-docs/endpoints.{format}", + "since": [ + "12.0.0" + ], "apis": [ { "path": "/endpoints", @@ -13,6 +16,9 @@ "operations": [ { "httpMethod": "GET", + "since": [ + "12.0.0" + ], "summary": "List all endpoints.", "nickname": "list", "responseClass": "List[Endpoint]" @@ -25,6 +31,9 @@ "operations": [ { "httpMethod": "PUT", + "since": [ + "13.0.0" + ], "summary": "Send a message to some technology URI or endpoint.", "nickname": "sendMessage", "responseClass": "void", @@ -81,6 +90,10 @@ "operations": [ { "httpMethod": "POST", + "since": [ + "18.20.0", + "20.5.0" + ], "summary": "Refer an endpoint or technology URI to some technology URI or endpoint.", "nickname": "refer", "responseClass": "void", @@ -146,6 +159,9 @@ "operations": [ { "httpMethod": "GET", + "since": [ + "12.0.0" + ], "summary": "List available endoints for a given endpoint technology.", "nickname": "listByTech", "responseClass": "List[Endpoint]", @@ -172,6 +188,9 @@ "operations": [ { "httpMethod": "GET", + "since": [ + "12.0.0" + ], "summary": "Details for an endpoint.", "nickname": "get", "responseClass": "Endpoint", @@ -208,6 +227,9 @@ "operations": [ { "httpMethod": "PUT", + "since": [ + "13.0.0" + ], "summary": "Send a message to some endpoint in a technology.", "nickname": "sendMessageToEndpoint", "responseClass": "void", @@ -268,6 +290,10 @@ "operations": [ { "httpMethod": "POST", + "since": [ + "18.20.0", + "20.5.0" + ], "summary": "Refer an endpoint or technology URI to some technology URI or endpoint.", "nickname": "referToEndpoint", "responseClass": "void", diff --git a/codegen/src/main/resources/codegen-data/ari_9_0_0/events.json b/codegen/src/main/resources/codegen-data/ari_9_0_0/events.json index c9822f6c..e6fec303 100644 --- a/codegen/src/main/resources/codegen-data/ari_9_0_0/events.json +++ b/codegen/src/main/resources/codegen-data/ari_9_0_0/events.json @@ -6,6 +6,9 @@ "swaggerVersion": "1.2", "basePath": "http://localhost:8088/ari", "resourcePath": "/api-docs/events.{format}", + "since": [ + "12.0.0" + ], "requiresModules": [ "res_http_websocket" ], @@ -16,6 +19,9 @@ "operations": [ { "httpMethod": "GET", + "since": [ + "12.0.0" + ], "upgrade": "websocket", "websocketProtocol": "ari", "summary": "WebSocket connection for events.", @@ -48,6 +54,9 @@ "operations": [ { "httpMethod": "POST", + "since": [ + "12.3.0" + ], "summary": "Generate a user event.", "nickname": "userEvent", "responseClass": "void", @@ -160,6 +169,8 @@ "RecordingFinished", "RecordingFailed", "ApplicationMoveFailed", + "ApplicationRegistered", + "ApplicationUnregistered", "ApplicationReplaced", "BridgeCreated", "BridgeDestroyed", @@ -189,7 +200,9 @@ "StasisStart", "TextMessageReceived", "ChannelConnectedLine", - "PeerStatusChange" + "PeerStatusChange", + "ChannelTransfer", + "RESTResponse" ] }, "ContactInfo": { @@ -355,6 +368,16 @@ } } }, + "ApplicationRegistered": { + "id": "ApplicationRegistered", + "description": "Notification that a Stasis app has been registered.", + "properties": {} + }, + "ApplicationUnregistered": { + "id": "ApplicationUnregistered", + "description": "Notification that a Stasis app has been unregistered.", + "properties": {} + }, "ApplicationReplaced": { "id": "ApplicationReplaced", "description": "Notification that another WebSocket has taken over for an application.\n\nAn application may only be subscribed to by a single WebSocket at a time. If multiple WebSockets attempt to subscribe to the same application, the newer WebSocket wins, and the older one receives this event.", @@ -913,6 +936,229 @@ "description": "The channel whose connected line has changed." } } + }, + "ChannelTransfer": { + "id": "ChannelTransfer", + "description": "transfer on a channel.", + "properties": { + "state": { + "required": false, + "type": "string", + "description": "Transfer State" + }, + "refer_to": { + "required": true, + "type": "ReferTo", + "description": "Refer-To information with optionally both affected channels" + }, + "referred_by": { + "required": true, + "type": "ReferredBy", + "description": "Referred-By SIP Header according rfc3892" + } + } + }, + "ReferTo": { + "id": "ReferTo", + "description": "transfer destination requested by transferee", + "properties": { + "requested_destination": { + "required": true, + "type": "RequiredDestination" + }, + "destination_channel": { + "required": false, + "type": "Channel", + "description": "The Channel Object, that is to be replaced" + }, + "connected_channel": { + "required": false, + "type": "Channel", + "description": "Channel, connected to the to be replaced channel" + }, + "bridge": { + "required": false, + "type": "Bridge", + "description": "Bridge connecting both destination channels" + } + } + }, + "ReferredBy": { + "id": "ReferredBy", + "description": "transfer destination requested by transferee", + "properties": { + "source_channel": { + "required": true, + "type": "Channel", + "description": "The channel on which the refer was received" + }, + "connected_channel": { + "required": false, + "type": "Channel", + "description": "Channel, Connected to the channel, receiving the transfer request on." + }, + "bridge": { + "required": false, + "type": "Bridge", + "description": "Bridge connecting both Channels" + } + } + }, + "RequiredDestination": { + "id": "RequiredDestination", + "description": "Information about the requested destination", + "properties": { + "protocol_id": { + "required": false, + "type": "string", + "description": "the requested protocol-id by the referee in case of SIP channel, this is a SIP Call ID, Mutually exclusive to destination" + }, + "destination": { + "required": false, + "type": "string", + "description": "Destination User Part. Only for Blind transfer. Mutually exclusive to protocol_id" + }, + "additional_protocol_params": { + "required": false, + "type": "List[AdditionalParam]", + "description": "List of additional protocol specific information" + } + } + }, + "AdditionalParam": { + "id": "AdditionalParam", + "description": "Protocol specific additional parameter", + "properties": { + "parameter_name": { + "required": true, + "type": "string", + "description": "Name of the parameter" + }, + "parameter_value": { + "required": true, + "type": "string", + "description": "Value of the parameter" + } + } + }, + "RESTHeader": { + "id": "RESTHeader", + "description": "REST over Websocket header", + "properties": { + "name": { + "type": "string", + "description": "Header name", + "required": true + }, + "value": { + "required": true, + "type": "string", + "description": "Header value" + } + } + }, + "RESTQueryStringParameter": { + "id": "RESTQueryStringParameter", + "description": "REST over Websocket Query String Parameter", + "properties": { + "name": { + "type": "string", + "description": "Parameter name", + "required": true + }, + "value": { + "required": true, + "type": "string", + "description": "Parameter value" + } + } + }, + "RESTRequest": { + "id": "RESTRequest", + "description": "REST over Websocket Request.", + "properties": { + "type": { + "type": "string", + "description": "Message type. Must be 'RESTRequest'", + "required": true + }, + "transaction_id": { + "type": "string", + "description": "Opaque transaction id. Can be any valid string. Will be returned in any response to this request.", + "required": true + }, + "request_id": { + "type": "string", + "description": "Opaque request id. Can be any valid string. Will be returned in any response to this request.", + "required": true + }, + "method": { + "required": true, + "type": "string", + "description": "HTTP method (GET, PUT, POST, DELETE, etc.)" + }, + "uri": { + "required": true, + "type": "string", + "description": "Resource URI with optional query string parameters." + }, + "content_type": { + "required": false, + "type": "string", + "description": "The Content-Type of the message body." + }, + "query_strings": { + "required": false, + "type": "List[RESTQueryStringParameter]", + "description": "Request query string parameters." + }, + "message_body": { + "required": false, + "type": "string", + "description": "Request message body. Only content types application/json and application/x-www-form-urlencoded are supported." + } + } + }, + "RESTResponse": { + "id": "RESTResponse", + "description": "REST over Websocket Response.", + "properties": { + "transaction_id": { + "type": "string", + "description": "Opaque transaction id. Will be whatever was specified on the original request.", + "required": true + }, + "request_id": { + "type": "string", + "description": "Opaque request id. Will be whatever was specified on the original request.", + "required": true + }, + "status_code": { + "required": true, + "type": "int", + "description": "HTTP status code" + }, + "reason_phrase": { + "required": true, + "type": "string", + "description": "HTTP reason phrase" + }, + "uri": { + "required": true, + "type": "string", + "description": "Original request resource URI" + }, + "content_type": { + "required": false, + "type": "string", + "description": "The Content-Type of the message body." + }, + "message_body": { + "required": false, + "type": "string", + "description": "Response message body" + } + } } } } diff --git a/codegen/src/main/resources/codegen-data/ari_9_0_0/mailboxes.json b/codegen/src/main/resources/codegen-data/ari_9_0_0/mailboxes.json index 8f5941b8..d99e1eac 100644 --- a/codegen/src/main/resources/codegen-data/ari_9_0_0/mailboxes.json +++ b/codegen/src/main/resources/codegen-data/ari_9_0_0/mailboxes.json @@ -6,6 +6,9 @@ "swaggerVersion": "1.1", "basePath": "http://localhost:8088/ari", "resourcePath": "/api-docs/mailboxes.{format}", + "since": [ + "12.1.0" + ], "requiresModules": [ "res_stasis_mailbox" ], @@ -16,6 +19,9 @@ "operations": [ { "httpMethod": "GET", + "since": [ + "12.1.0" + ], "summary": "List all mailboxes.", "nickname": "list", "responseClass": "List[Mailbox]" @@ -28,6 +34,9 @@ "operations": [ { "httpMethod": "GET", + "since": [ + "12.1.0" + ], "summary": "Retrieve the current state of a mailbox.", "nickname": "get", "responseClass": "Mailbox", @@ -50,6 +59,9 @@ }, { "httpMethod": "PUT", + "since": [ + "12.1.0" + ], "summary": "Change the state of a mailbox. (Note - implicitly creates the mailbox).", "nickname": "update", "responseClass": "void", @@ -88,6 +100,9 @@ }, { "httpMethod": "DELETE", + "since": [ + "12.1.0" + ], "summary": "Destroy a mailbox.", "nickname": "delete", "responseClass": "void", diff --git a/codegen/src/main/resources/codegen-data/ari_9_0_0/playbacks.json b/codegen/src/main/resources/codegen-data/ari_9_0_0/playbacks.json index 793986fc..a7892f18 100644 --- a/codegen/src/main/resources/codegen-data/ari_9_0_0/playbacks.json +++ b/codegen/src/main/resources/codegen-data/ari_9_0_0/playbacks.json @@ -6,6 +6,9 @@ "swaggerVersion": "1.1", "basePath": "http://localhost:8088/ari", "resourcePath": "/api-docs/playbacks.{format}", + "since": [ + "12.0.0" + ], "requiresModules": [ "res_stasis_playback" ], @@ -16,6 +19,9 @@ "operations": [ { "httpMethod": "GET", + "since": [ + "12.0.0" + ], "summary": "Get a playback's details.", "nickname": "get", "responseClass": "Playback", @@ -38,6 +44,9 @@ }, { "httpMethod": "DELETE", + "since": [ + "12.0.0" + ], "summary": "Stop a playback.", "nickname": "stop", "responseClass": "void", @@ -66,6 +75,9 @@ "operations": [ { "httpMethod": "POST", + "since": [ + "12.0.0" + ], "summary": "Control a playback.", "nickname": "control", "responseClass": "void", diff --git a/codegen/src/main/resources/codegen-data/ari_9_0_0/recordings.json b/codegen/src/main/resources/codegen-data/ari_9_0_0/recordings.json index 6ffd6d8e..1496db8a 100644 --- a/codegen/src/main/resources/codegen-data/ari_9_0_0/recordings.json +++ b/codegen/src/main/resources/codegen-data/ari_9_0_0/recordings.json @@ -6,6 +6,9 @@ "swaggerVersion": "1.1", "basePath": "http://localhost:8088/ari", "resourcePath": "/api-docs/recordings.{format}", + "since": [ + "12.0.0" + ], "requiresModules": [ "res_stasis_recording" ], @@ -16,6 +19,9 @@ "operations": [ { "httpMethod": "GET", + "since": [ + "12.0.0" + ], "summary": "List recordings that are complete.", "nickname": "listStored", "responseClass": "List[StoredRecording]" @@ -28,6 +34,9 @@ "operations": [ { "httpMethod": "GET", + "since": [ + "12.0.0" + ], "summary": "Get a stored recording's details.", "nickname": "getStored", "responseClass": "StoredRecording", @@ -50,6 +59,9 @@ }, { "httpMethod": "DELETE", + "since": [ + "12.0.0" + ], "summary": "Delete a stored recording.", "nickname": "deleteStored", "responseClass": "void", @@ -78,6 +90,9 @@ "operations": [ { "httpMethod": "GET", + "since": [ + "14.0.0" + ], "summary": "Get the file associated with the stored recording.", "nickname": "getStoredFile", "responseClass": "binary", @@ -110,6 +125,9 @@ "operations": [ { "httpMethod": "POST", + "since": [ + "12.5.0" + ], "summary": "Copy a stored recording.", "nickname": "copyStored", "responseClass": "StoredRecording", @@ -150,6 +168,9 @@ "operations": [ { "httpMethod": "GET", + "since": [ + "12.0.0" + ], "summary": "List live recordings.", "nickname": "getLive", "responseClass": "LiveRecording", @@ -172,6 +193,9 @@ }, { "httpMethod": "DELETE", + "since": [ + "12.0.0" + ], "summary": "Stop a live recording and discard it.", "nickname": "cancel", "responseClass": "void", @@ -199,6 +223,9 @@ "operations": [ { "httpMethod": "POST", + "since": [ + "12.0.0" + ], "summary": "Stop a live recording and store it.", "nickname": "stop", "responseClass": "void", @@ -226,6 +253,9 @@ "operations": [ { "httpMethod": "POST", + "since": [ + "12.0.0" + ], "summary": "Pause a live recording.", "notes": "Pausing a recording suspends silence detection, which will be restarted when the recording is unpaused. Paused time is not included in the accounting for maxDurationSeconds.", "nickname": "pause", @@ -253,6 +283,9 @@ }, { "httpMethod": "DELETE", + "since": [ + "12.0.0" + ], "summary": "Unpause a live recording.", "nickname": "unpause", "responseClass": "void", @@ -284,6 +317,9 @@ "operations": [ { "httpMethod": "POST", + "since": [ + "12.0.0" + ], "summary": "Mute a live recording.", "notes": "Muting a recording suspends silence detection, which will be restarted when the recording is unmuted.", "nickname": "mute", @@ -311,6 +347,9 @@ }, { "httpMethod": "DELETE", + "since": [ + "12.0.0" + ], "summary": "Unmute a live recording.", "nickname": "unmute", "responseClass": "void", diff --git a/codegen/src/main/resources/codegen-data/ari_9_0_0/sounds.json b/codegen/src/main/resources/codegen-data/ari_9_0_0/sounds.json index 8fbe1c57..aee4d369 100644 --- a/codegen/src/main/resources/codegen-data/ari_9_0_0/sounds.json +++ b/codegen/src/main/resources/codegen-data/ari_9_0_0/sounds.json @@ -6,6 +6,9 @@ "swaggerVersion": "1.1", "basePath": "http://localhost:8088/ari", "resourcePath": "/api-docs/sounds.{format}", + "since": [ + "12.0.0" + ], "apis": [ { "path": "/sounds", @@ -13,6 +16,9 @@ "operations": [ { "httpMethod": "GET", + "since": [ + "12.0.0" + ], "summary": "List all sounds.", "nickname": "list", "responseClass": "List[Sound]", @@ -42,6 +48,9 @@ "operations": [ { "httpMethod": "GET", + "since": [ + "12.0.0" + ], "summary": "Get a sound's details.", "nickname": "get", "responseClass": "Sound", From c4545f11e3b5d11b28c9d5ef323c906cb77a22eb Mon Sep 17 00:00:00 2001 From: grahambrown11 <771817+grahambrown11@users.noreply.github.com> Date: Sat, 17 Jan 2026 10:21:56 +0000 Subject: [PATCH 215/220] ARI API Updates --- .../main/resources/codegen-data/ari_10_0_0/channels.json | 8 ++++++++ .../main/resources/codegen-data/ari_11_0_0/channels.json | 8 ++++++++ .../main/resources/codegen-data/ari_8_0_0/channels.json | 8 ++++++++ 3 files changed, 24 insertions(+) diff --git a/codegen/src/main/resources/codegen-data/ari_10_0_0/channels.json b/codegen/src/main/resources/codegen-data/ari_10_0_0/channels.json index a50b8720..f7ea634d 100644 --- a/codegen/src/main/resources/codegen-data/ari_10_0_0/channels.json +++ b/codegen/src/main/resources/codegen-data/ari_10_0_0/channels.json @@ -2027,6 +2027,14 @@ "required": false, "allowMultiple": false, "dataType": "string" + }, + { + "name": "transport_data", + "description": "Transport-specific data. For websocket this is appended to the dialstring.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" } ], "errorResponses": [ diff --git a/codegen/src/main/resources/codegen-data/ari_11_0_0/channels.json b/codegen/src/main/resources/codegen-data/ari_11_0_0/channels.json index a50b8720..f7ea634d 100644 --- a/codegen/src/main/resources/codegen-data/ari_11_0_0/channels.json +++ b/codegen/src/main/resources/codegen-data/ari_11_0_0/channels.json @@ -2027,6 +2027,14 @@ "required": false, "allowMultiple": false, "dataType": "string" + }, + { + "name": "transport_data", + "description": "Transport-specific data. For websocket this is appended to the dialstring.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" } ], "errorResponses": [ diff --git a/codegen/src/main/resources/codegen-data/ari_8_0_0/channels.json b/codegen/src/main/resources/codegen-data/ari_8_0_0/channels.json index 0a08a4a9..e5ec6a4b 100644 --- a/codegen/src/main/resources/codegen-data/ari_8_0_0/channels.json +++ b/codegen/src/main/resources/codegen-data/ari_8_0_0/channels.json @@ -2027,6 +2027,14 @@ "required": false, "allowMultiple": false, "dataType": "string" + }, + { + "name": "transport_data", + "description": "Transport-specific data. For websocket this is appended to the dialstring.", + "paramType": "query", + "required": false, + "allowMultiple": false, + "dataType": "string" } ], "errorResponses": [ From 28d6d81e3d34349b3d2423691f89e9cf22904908 Mon Sep 17 00:00:00 2001 From: Graham Brown Date: Mon, 26 Jan 2026 15:55:12 +0200 Subject: [PATCH 216/220] Library updates --- .github/workflows/gradle.yml | 4 +- CHANGELOG.md | 3 + README.md | 3 + build.gradle | 48 ++--- codegen/build.gradle | 10 +- gradle/wrapper/gradle-wrapper.jar | Bin 59536 -> 61608 bytes gradle/wrapper/gradle-wrapper.properties | 3 +- gradlew | 18 +- gradlew.bat | 181 +++++++++--------- .../loway/oss/ari4java/tools/ARIEncoder.java | 22 ++- .../ari4java/tools/http/NettyHttpClient.java | 66 +++---- src/test/resources/log4j2.properties | 17 -- src/test/resources/logback.xml | 16 ++ 13 files changed, 208 insertions(+), 183 deletions(-) delete mode 100755 src/test/resources/log4j2.properties create mode 100644 src/test/resources/logback.xml diff --git a/.github/workflows/gradle.yml b/.github/workflows/gradle.yml index 7cc999c9..d2f00c59 100755 --- a/.github/workflows/gradle.yml +++ b/.github/workflows/gradle.yml @@ -22,11 +22,11 @@ jobs: key: ${{ runner.os }}-gradle-${{ hashFiles('**/*.gradle') }} restore-keys: | ${{ runner.os }}-gradle- - - name: Set up JDK 1.8 + - name: Set up JDK 17 uses: actions/setup-java@v4 with: distribution: 'zulu' - java-version: '8' + java-version: '17' - name: Grant execute permission for gradlew run: chmod +x gradlew - name: Build with Gradle diff --git a/CHANGELOG.md b/CHANGELOG.md index 4066cf05..50b679d7 100755 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -6,8 +6,11 @@ ### Added - Connection Pooling using Netty's FixedChannelPool - Examples have a Docker provider for Vagrant (in order to work around VirtualBox compatibility on Apple Silicon) +- `AriVersion.ARI_10_0_0` ### Changed +- :exclamation: Changed java compatibility to Java 17 in preparation for Jackson 3 which will be in the next release +- Library updates - Cannot wait for connection close due to using connection keep-alive (aka pooling) - Some methods in the Examples use the async approach diff --git a/README.md b/README.md index b152f6a7..41308438 100755 --- a/README.md +++ b/README.md @@ -39,6 +39,9 @@ The groupId is now `io.github.ari4java` make sure you update your build files if - [Getting Started](https://github.com/ari4java/ari4java/wiki/Getting-Started) - [Examples](https://github.com/ari4java/ari4java/wiki/Examples) +## Development +Please find the [Development Wiki](https://github.com/ari4java/ari4java/wiki/Development) + ## Licensing The library is released under the GNU LGPL (see [LICENSE](https://github.com/ari4java/ari4java/blob/master/LICENSE) file). Files under codegen-data come from the Asterisk project and are licensed under the GPLv2 (see LICENSE.asterisk file therein). diff --git a/build.gradle b/build.gradle index f51a70f2..41566a8a 100755 --- a/build.gradle +++ b/build.gradle @@ -3,12 +3,12 @@ plugins { id "jacoco" id "maven-publish" id "signing" - id "com.github.spotbugs" version "4.7.0" + id "com.github.spotbugs" version "5.0.0" id "org.sonarqube" version "2.7.1" } group = "io.github.ari4java" -version = "0.17.0" +version = "0.18.0" def projectUrl = "http://github.com/ari4java/ari4java" def build_number = "x" @@ -17,8 +17,8 @@ if (System.getenv("BUILD_NUMBER") != null) { } java { - sourceCompatibility = JavaVersion.VERSION_1_8 - targetCompatibility = JavaVersion.VERSION_1_8 + sourceCompatibility = JavaVersion.VERSION_17 + targetCompatibility = JavaVersion.VERSION_17 withJavadocJar() withSourcesJar() } @@ -36,20 +36,20 @@ repositories { } dependencies { - implementation 'com.fasterxml.jackson.core:jackson-core:2.13.1' - implementation 'com.fasterxml.jackson.core:jackson-databind:2.13.1' - implementation 'com.fasterxml.jackson.core:jackson-annotations:2.13.1' - implementation 'io.netty:netty-all:4.1.72.Final' + implementation 'com.fasterxml.jackson.core:jackson-core:2.21.0' + implementation 'com.fasterxml.jackson.core:jackson-databind:2.21.0' + implementation 'com.fasterxml.jackson.core:jackson-annotations:2.21' + implementation 'io.netty:netty-all:4.2.9.Final' implementation 'javax.xml.bind:jaxb-api:2.3.1' - implementation 'org.slf4j:slf4j-api:1.7.32' + implementation 'org.slf4j:slf4j-api:2.0.17' testImplementation 'org.junit.jupiter:junit-jupiter-api:5.8.2' testRuntimeOnly 'org.junit.jupiter:junit-jupiter-engine:5.8.2' testImplementation 'org.mockito:mockito-core:4.2.0' - testImplementation 'org.apache.logging.log4j:log4j-slf4j-impl:2.17.0' + testImplementation 'ch.qos.logback:logback-classic:1.5.25' } -task buildProps(type: WriteProperties) { +tasks.register('buildProps', WriteProperties) { outputFile file("src/main/resources/build.properties") property "BUILD_NUMBER", build_number } @@ -84,11 +84,11 @@ test { jacocoTestReport { reports { - xml.enabled true - csv.enabled false - html.enabled true - xml.destination = file("${buildDir}/reports/jacocoTestReport.xml") - html.destination = file("${buildDir}/reports/jacocoTestReport/html") + xml.required.set(true) + csv.required.set(false) + html.required.set(true) + xml.outputLocation.set(file("${buildDir}/reports/jacocoTestReport.xml")) + html.outputLocation.set(file("${buildDir}/reports/jacocoTestReport/html")) } afterEvaluate { classDirectories.setFrom(files(classDirectories.files.collect { @@ -178,23 +178,15 @@ signing { spotbugsMain { reports { - html { - enabled = true - } - xml { - enabled = false - } + xml.required.set(true) + html.required.set(true) } } spotbugsTest { ignoreFailures = true reports { - html { - enabled = true - } - xml { - enabled = false - } + xml.required.set(false) + html.required.set(true) } } diff --git a/codegen/build.gradle b/codegen/build.gradle index fcddd813..eafcdd58 100755 --- a/codegen/build.gradle +++ b/codegen/build.gradle @@ -7,15 +7,15 @@ repositories { } dependencies { - implementation 'com.fasterxml.jackson.core:jackson-core:2.9.6' - implementation 'com.fasterxml.jackson.core:jackson-databind:2.9.6' - implementation 'com.fasterxml.jackson.core:jackson-annotations:2.9.6' + implementation 'com.fasterxml.jackson.core:jackson-core:2.20.0' + implementation 'com.fasterxml.jackson.core:jackson-databind:2.20.0' + implementation 'com.fasterxml.jackson.core:jackson-annotations:2.20' implementation 'com.google.googlejavaformat:google-java-format:1.7' } java { - sourceCompatibility = JavaVersion.VERSION_1_8 - targetCompatibility = JavaVersion.VERSION_1_8 + sourceCompatibility = JavaVersion.VERSION_17 + targetCompatibility = JavaVersion.VERSION_17 } task runCodegen(type: JavaExec) { diff --git a/gradle/wrapper/gradle-wrapper.jar b/gradle/wrapper/gradle-wrapper.jar index 7454180f2ae8848c63b8b4dea2cb829da983f2fa..ccebba7710deaf9f98673a68957ea02138b60d0a 100755 GIT binary patch delta 39624 zcmaI7V|1obvn?9iwrv|7+qP{xZ=8;8+twS~cG6Kt9oy*S_TJ~7ea<(=9rw?wAFI~$ zYgW~KYE~sKf>-W?Ln_OGLtrEoVkY6CgJL8xx%@i{$^YxXOxnc!Z=1rh4v_)_ii?2( z0s;dA0s%FGV%$6qD=7T7(@>XohBO3}|2~Fu zd_Kes>`?_XEIU~Bjw9}Pz0-wkP*b5sy}0%Dd42CUvwfb)1|u4J1Yn+%5qWqrFW1Esajt?}`3!?vIAPb-^qcpvDxa{H;c(duM~m zeZU^*uZbpbG(HR`L@g}LjND&%fa>1_XEam-N0gFjl+FPA1=mNH(NOiu*H?6q^O_#w zRP*yUKUhrn`!7DSJSk*J{*QRim+K3GUw(!C6<+;6NL=#*b)BLvCil|;l@6oH!~76` zI&vmc>!`29d<7g}!el4-`98LM$?^z!g`RX$YmlDZpHB*>;R`9nG5O6VGkfI<8MfV} z2i6^tRCE<6(m9?h(8m#LjD(4}OOyW;5($^;v3Aab1w2bLP&P7|>JBpwrwd_l>y9x5 zxUV$ocI94~cy%ZxP}-ydm@q*k1>+%C7*6Qj)8 zSS?AP6yvunr4awoB)@$96Sc!sy+ajBSo7q97bl^uH76=8pCEaR$k}O~v#D zN!k?`dTR@rBNDQlMTUb77;n6u;NI>aypX&nss(? ztsrq)>ldjT11|RyX>gjMxgg=D8}9BLduYT37v!D=+Nqe>=(VNz&~7}feB@BxOl{ge znYPQ%C(SB)d{s@6wk%qbDCFjaT zFzuX0@se|SvPf~-m5`|IX)xvEQKe!6!(YkR&HI^yPQ~LT_ow9)E~jmIoyc%qg#;yJ zuMC{|u1{lTbWKDc!HP4+x*bmpJ6`-DLLQ4AuI;N(;E!)?fEOs$l|CP$n8=DQwu4zV z0(X3)CdVg=u<9)^g7}bngqKn|kdBbuKA7=aD$nkfHn4pEKtlGb6O#1vr!e zWfZQmE|BZA>DrWS|5o`)6P8&K#U`oyD&9#&C(fI*%qfp%7xzO$C`vi3z`a-%wVJ9r zto-L&b|n^Pbmgje9t=&fAv*ksDAhW`v3Q3(wX_i*z-Amx@>==cs5EL+6@Cwvt|5w& zjHa>1K#59$pTm4%0^$%CFI9p^77(tOsY!E@f>I%W8fHNy8cOhU{3#XHRzJsfTRkzg zcf5fe%0YnvbGj6G9Iagxm39Co5ysI3x88C!qkomH%{Ya*SQy1=%DAjnt0rDTHH5Z7 zkrK`T2vO20Qnh5qKW>c`Shs$QPubxh;vPq$Qliqy>Q!5|Q2^R7kv9#^u=TFEInNIi zbFaTx4x2>Bo>p<$@#L{2KigLyziKKfP*a`!N{-O7jm?ETo(nLpU-L$~6kw}RYqUeg z_x!rlX5-|Sl>#RBn!sFUiN(wv4tX}0R9Q0v8VBTJd!9~ zwHW4`St5p*6Kn1kJ|^axr&z_atNM+KvdQbzEXO7ZppSOeRtrkGZ2j#{;e`0Yv4&1d z>>`kfnL{)Bb!*5Cww-!@tTSneo^x5b;=8+i**d2rH0qa0ms9bo+EfLOD!pZa1MS!* zE2m;U+OS80|6nIJx6qd?P_ZC+FS!E1XU0ucA$?t+(+%4VPT5@IJRrWI?y!u@A(44+ z*h8_W^OroGmx{SP-pl;8IFvl%A(2(F?1_i4m4$dOuZcgqo(gPBMbzqdyPx;>Pv|(U zBP`zqS%q!dZ1X>p(;;g1>SgvD&Xy`gGHO_V$WuHDF=Wde*guFo*fc_-txRM9^A$!s z@D+cGE5_W%6`5aaA1Jta*Jlw^l!)l^|B{DkyG1_or!0+)`#YugeZYTWToN#A^pd*hnZd-p{|*B;ou1S zHu{{{py0sl{xqHtyPp!KcOYqiY^4n|befpjf*>d2jQhVSl{h$&OXu+KY`4Tn?^E+7 zu7wQBn1r{Gt=3Qv?3MXY>(b735XAZ7gtXvw$Ahjidc=>MR*i*ireN@TX@#QJqZC-E z7A{b7Y%owh&8@5R=-*?o3@Ka3b!qrijl~*>)ws3xb=hG!Fq%+IFkvA84cuD1@pDba zN-m}1;NOK@QJmluMB~3)YIDTNeInVdv!BI@v78-B4~JWOVOO;iMmK^mH-5%6!R`PP zL4iN>e}$NBz=3D{MrhyPv>sL1h{|b#?=a?ew0gZBA`*!1jn^u;@kLS^Z&TDJ-e11P z5j2R3EPSvdq7ps3!f?)SjfJavaNabO=Wp@-$vw31@4`}#dJAQ3!^YmYlVI(k{`bBT4baTk|o@xqhG zm(c$glxlemfobyh5<9_e4{cNztgGV45>{0&$23{jt|e>YKpG|+#BIN0dF3?M`T>YpFdK5okH&qbvF z!)s4pZTeGsqm%)9JdKRX)g-&9^rFnEAu!s?pvSs2Fv-9B%M30=Hz~Iy{2>d5v?X2u(d156Hp2Sa zDDARJt7&7JleA(XbP_7FZH3G;&t18`w}#NHqA$^QY7p{a1xr{sUqnokq3|E z35-g>?0bMT4xYQiW-20kn?rTi80+AIeS?EmDF^I@gqEvVAmg}eb9x+OPDHf@`f;+O z)gOzEkwHd$9Tyi1@5f{J>3nI-@N~Kf#gFIqIGDtqQtp#uhYK}l0h0}Z3mXT6aiG4c z#;T(xpLyEp@nvn~(=Y<8nDM3pP8j$&VeQGM*m?6b@85naGh5gIFvAxeGS1?w{+Oz3 z6b}JpA=Kw|M$Jzdu5qfK5Gfsq@)@yQ7*zM@V6U!ZdjAkiH384m^?KYio_cK;19|qG zWWMsD^sSx0FHFg-L?rnCF65l9&wmCk)>|J($hk8wC?$C=w|XsK!iNhFVZup0?*}UR zVe4AkWAJgs;Bi4S%N3`Y*Oij{=?`HJ=&AtrNO6Zf?k!9DO0dHs|12&*1BC|B-(vBw z`-(hC-wA`kZ`)XG&PDBspZuT`*N}c2z)M+Q#1PTpJu@_iNd5?FlHh2eY;ClHX~v9^ zo$z!Ox4`IF5WyHZ=c?1kaE1`sCe2k$UJL#!npm>N%+d{Ku2zc4vmKpJC}l)nxFN5b zL?3t*U6M19)dr_?7o(B69rY2Xiz5h>f8gnKD7DhWmvLP1UnbwL54v4njN*YJ-PLlT zAR*FoDP}UXbcyxT&n)3ROZxg>k@`Oo4)icCNHK|10JK+<2x&nC(>n)6lZ}brl2TwQ zEJ&&tFw@$*fQdm#LSie z#~e7#9qR#lLjH&R`O4?XDDC?0J|!k8wpVckQMeSOk;Nah7yfzuMlD+YOn=Lhikw;> zv-^+JrzK`}@5;z+AIxeHV43XbI@={8h?K-p0DP7>zB#V!bd2xn!?w__k=l0>txcoXYEngy!&}O$QEB(E;-+ z0gHQo*sJJf$UdhAs#l|%vI7?qaHJ?@&whOxMRp} zfM*2uNGHU1|3jrTlhP~6m+l79T;kzK#kenGJgQ%j-`S3O`tSZeZN6U989g&Q3VsFH zg|T3Q88*IRXQ;}85~|o7t5)V`q*p>Vc(b@ES3lTej1o7fG=@>}5=cb&3rb>og9Z)B zq}spA`R{q4Ad-jJ-v2=hCa+A#$0jNPz^EB*Z!9phpobFM<24~Qs+2WK*mxy~D->s*Y3rhjgAlJEgUyOz&Ovb5BhC$(>8`}b5!ZX< zk^DzZ=IO@jfM6C9a-!l4d0~VncJDtc5;T23#b0m`5D$0|5P_7!DvA`(1AM@!=7s8( zCdyYlBTqa7+94F$uO+?}h+9Z-nSqTk2$)U`=n4-}yQLfk46VU*_U7#)%y*c88256* zWVYTo%4tsTJWM(IgdzZ(qBYN(YNgzSX%*v*0CJyW!lBv}zdkE=(@e}^0qVT=6j0z>nZYxlz-ve#}TikWMD8{Oa^wq|?gK z&Xj&nU-R8FU;6`~ECRluMyVljTCHuiVT05%`y-I)={CPY-w1K5va}NC=gaO|*N99lnP~4aN}E0d2HI$jX5gzhBlPfAYqx@* z@T@Gu7rB3vw<+@1jm^z4KSw^6l|4~_J*Y_fST_ZJIXhr!oMtnkrC3*%EdtrO$>xdK z`EjxKT8wTC-5xn0r-}HtU+~w6oHKEt7zuftbidgeX2Cnse!#>ik3%Tyl2-nWSs{)P zw6M}Jq41(v8bGCXOBdgt}rl1!aLy4e127cEg+ZH}LM5J_yeiH*;goScI8YU}c&douAKuLxoF)RmDP@yOchZ zN~~C$&s@5_C)il~Tw1G#sNgY-@3$ZzlI<;i{bY_*OSRz8oXwj$AR-RyMPlnI{9^h? zezap@DZjlBHF>@FZ(69Dt1i(tg6oeEI74><&eq6iWCD{HLL2nwux{|3Cq}J4GG1ZRWn+#qj>dHs!5*`MeV>(IpCyvr)o464PcA6| zPZgN>7smxN)Y;^jp8ys8=)sI(eWK;{aIon`scHYvud-8QUl1qh7MupSif)Qeq^`qw z26KD_$BNiTpf;zMOl4}^XsW>QAG@S@Ld_cQV>zPF>vAmeGNk({{=G3A`CG7H5MtV{ z{}!R17HB1{^hHL7-!>ggpq(I-ugYNxy|IdfK{nvNhH-5YdX2t;aQD)LIR*_xopVau zp*(Mn=*G*}dxibaIwVj5F9!z=0^*%woFNUs(7^icEnQx%!axZzr-)UiBQ0u4YNVMm zj|HV%fVIsv7RQagCZj!7AFV!z$Q>OF7{gu1g-{ola2`ZmfdH4<&s7=M5e&Q&z9smE zLYC_3sP>h^zNUm#Kw#Ky za5A*4w;`qwe88)4ohYBSOmld2vsVFl_M;QDHEe6)mWO^y{Idu8zib!YWM-bHd z#aak=43p^rEk8CoNSt>p!~<{->VH~AL5d5YM-hmi(Yoo+u2KppEcLlfs`*b%Z7?~A+sSlFHd9*iFkPj+;DML_DYsYcF<*Mt{pPRA0%siT+|mK;=nivi zdj^+0v5VL7sE!6_ZSH40!G`hGLF73iwLF$ac%DA*{EDYgsW#QrmwUEpAKU|FJwn2R z(0HO+#^VfVxL+_*+YTNo4$HOAB7FW~E6r^Xtani{)NNm06laYaprN)3J3}`1dhO`I z!?R-_A8y$#_)e6ekE(4bY?cFPfp+%_{bR1As@s2Qc;igLo4bNr#>RY1u%oz->%O6^vIV&_~3>+MO0DEX&-7(qvWys{R>nk!Cr(IGA$_NKYFVQHP284&C z0YwI>Mj-H*t`zxT*KVRNMAWq)wiIN3Y5mnxt*h}kUkNMYueRx|uDM#%m{nh%+>+N) zCeL4c)gfN|wG>_U_A>0d++tu^==;{N=m5v-ly0U2Li62V_d z=fKpPHisq|Qc? zJL1Qo{FH(5*`p(CS5XV(#_@UkA6>3q$msR1A3Ge5g5Rn|-I-%7qrTE5H9iW#R4trb zookgh7^j2}@SHT7`75)aUJEU&5?3VOi$Ba6lQJptxWpWaqr0S}*lgk~@nAgkCY{&Z zY>c?-KHcE#^E}}Jz+}Cw?yWBSzp(lmMksl3j6~~%Rx%e;$L?`nbFGY+E4**FYHU%v zb`Xwy1?`wH%6FdJWqU@|7fX5*tVHHH5Hd!$VYRX)NgqFJCr3B}V2?+*OwC<;`ILAJ zz)OGNtq=qzC(116+>0PDMT#gu1g?7d;Af`D6Mxnr>yT$f z*Y@gfEO|ePlo>IpysM~3&|N3DRv$>7&92b*X8kJTR-+FeP-tZuoP}AICd{O{68A|D z6i-|1;hse2h*?*rHymdiX<1s2MREt*jTXe*jSgVE)4X)3>M#X}we}-jfZxO?V*WXg ziWd_K3%62PG%5=d8m#?VI+cQX35?yWU_H?v=Am2Oa;tD$?y5Bb)1cfCjsBBI5m&ZL zYYT(;(=2hs<^I!w0rRHNAooXx_dLHyo0Fhh2+?)~U~94iu@$Mv{Ekf5%f#&WmFK)) zVfv-aA@H08tMM2X3>upCf}#2Y_qZT$#>_gi+=%ZB&9g+{RzBEYQ z#OD25zdx4 zHQspgA$I@6>WZRrY_q>s#oM{>2B~SCaNwPuZo1XJ133c8oJl@Ug2n;y28mE8snEF4 zoszF@Kos{#zq9-&w9(J+gYN^ttFHesDK@1$07(t%MR`Q-4$=ge<(kg^lq0X5KSl^- zpNI^HY3K@4K)db=a)s^PEBOP4;pCz~S$PzQ3E@ahThvWT6U5X&g?HUXrjA;$e{_;!14Xitex37lW{6V4XI8L|$Gq55Sc@ocxAh<51M<=gl$MP##=oub zch)d*>3%lIi*Ld=2gAVF7Qdn$ilZY?c|Q$g>nsaWI#?Zz;X6Hcdy__q9)uGQAX^A1 z>HP_!47HH)np<`YJZZZs=4BiO<)UZ6|H#mS58s?ip9P2dusvgwkw@u1(kUO*_hk zdx+`-J<|4)a>4?ohyRQ>l7-Yx_S{s=v>bMK2t;|*s5o=XR$^$Q9G0>#S7%2+AgN*MKs@EKFh(MW z`qO0mn~Vt;2nb!Iz=Cz_WkfZ(r}#@bliL#<)^vSEB2Qq(V^X4)-qHWVm*t9aOWlO- z4c#e*sI_>LrA%qU!%Z@N&(J2Y;Vz}Ld@wm8GaIDe`x;0X}=@I>oP}9sF zi7TO{B2wtSNDbZU)t-lATqhkx8cyz$KQalX3rD2Q6kvlL<;0jj_9C+7Ku|Zj=uCtS zhU6qO;xl*03;u`=AnA+gTRLKDy@_-#0MlpUu-|_t&rNnuH)SyTM`QZ1DKj;V=U9Dk z-a8q`-Qlwxk28l?VK|9TQKQ}bANm8jTq~HR7uP|o!XikS;PZ#tVD5i19-0h4|KN{I z-n6Z06zMfN6gf12eigETb4I_-5>Q1OEbD$B904@{3Mon4rK279h*?Tsg!fRX4ZG5B~8!EsKU96h2+ z%&C^k!<(zoSoT;SCk$I+0|h zqATUIVBi&lvgDH1NdIK1lOgYhw`^>H!By*q0o>1r%&F#D6gII^Z16-(WEA7%6+HSi%Y~_V$%>Ky^&!+PkY{qBl(a4f68H40b@}Mte^uN)CXTnwZiR?xTsykcfyy1{pbeev8Xkl-2i$nuHBo3zJ}AFLuFZuw6RWot;i>JrJ}=;$l=G(F zL^~t_&}(Fde;*^bDG3pgag&qwy4G%g?mu3MDzX&QiWlD|RN@gUj{}xYOe9xUzMh^1$F+^ow|0doca<#knJa z6XsdO8dlDj#S&UdIhifLTK(zR5rm}GZH0H{%}j<f4(hksJsot&nP>iXM&u zShB&tVk>G5mUw_(vHt{#a>Dt5bT~wjF?miZSabpT%P*P0^sZ!ZsTwHnDhtCMyOhmz47^O;l2sDxtIxjd;TI1lBhkE zHj#{E!bXHdY~fR%nLI9v@aa@oTWKsT`X^&_81Qc!E5nTvLbaV==^zYyY_;XLBLln` zzdJWPXxLR>vWGTN`xp-$RS{pVf=IgqFn;B4!31nMX!H(~@5d}W;KpWO=mxH$iWs9h z)?L3bwj9R@jMxV)|P%ixfrFow3r2s!R-N`X#wUkCwyne~Wb$B7yT5A87J02Ff^Pb5x zCM_?ZcOdZ_n?tPHq(dLIy$tCBV7iRtF#buq>w9yFuP*E4?a*%{*nVuineX{}!)Qu7gxzs&pDwF|u}LQN74tKgWz%dCHrr7)1^WC}t9q>#q{CFQIm z8S@ElQ;>R-RECs$cVs|>sE=`tJCsBKxIzHD#%AURr>=?{^}_gy8ihBt7u^mz#mXFX zCG!R^8l@;Tzq)u7-d-7C9_ke&!W)ja-Ygrrcwm|4ft2A+Ufi13@fRgUFFp`AX?uwA zo+n9fh{sWFmf#*JmM=?m>b|sLZe-Hvy~?h~F}HKgQxm2&QEnwyP&m7Ig8-h_Z=D=Z zYi=&E$=EEJ?geR~1)m)Uiv5WWjHLag>Yy{DzaU=`gB3$uc<&L)$^ z`9}Iryw)O&5kUUKD-Z$%gzdjoj)n$wfPvGJF-D*wEe5=sKTzRh9K|KHNo6N*(3)&< zB+OoprF&xso}*UI$8OhC@;ill*ZLq_c!1bKz-gKapF%q2+5eGu-e=BdYY!0k1?C)- z9>-D5#a3x~HzJ9s#CWM)iO$9>cqY*RQ{{UYX6zYKB&U7lyCm3y^J4HM@)$4&NbMT@ z@k%Y~!caMID68e+j~c<$Z|?!l=_)CU5U`H>n!gM?W=0y> zC8nyCL+6AJXLeV1<62r=l8}TgJ*3;~$0P(hj_rE%NOnA_((NKU;k!>sLAfGblRJp2 z3C25WStLS3^~JeU;g&sP)9sxLz;#?pgg-JNVIJ+v;+|jfgFC`Fsw2?dpuAkceh_fF zDB%(kCSUo2R%rAa495fB2n3v8uxF;{Qz66aglGT=xt{eD;AaJ%m0KH?HuNmHh_3cL z;7VVJu zkZVh!^mUd?Q$B~jy=jo_IXD8l836j9P}xfR4&M0(6}x}UNa6p6O3WXk6w+p1*gAY8 zcy7n-Q|uPA<^r()YgD-Sz32v?KQ1TGC60}kBhyPC9+6L zGMrpDPmQ;E4dS1+R)BNIH~?>mHK8|KHOtlAS4&XC0EDVx?%kcUicH$n)Eu=AERy$v#3F>QwGx z+o;x=0T_LzO$n@&(ih-mTiVzZQ_2i=%GLR$#w}dy&;L2&Srk5abpA-cP^I@U)DbZ` zMboL84tGt`I$u4aQ((fv;oNV;H9&(KF}0Luv6PS!z=2&KFBx>cNS^o;|APZ1L7Y>E zF|(Bdh23t5m7M^7EHoqMZxn>j^ZBEP9mF9M0I4IATyOaKXzB-trR2q7FtBQpa{DeM zWrh<*k`JK)6JrI+jMdR$UQ9szzgN5iR~ z&dWa^hzL1UhshP%IZeK}7QJR&$ZM|25gvjGyORz*T+Vp84SB@Nh5{$iz6RBiH4Ezo zn`$AYbBOzOFjHAY$5*_zwPeh&fWu}35TEZc=D{%{nP6ftbqA)4XDd(&dsSa-Z(B=h z(Ta+E-Ak*HwDO@KR=*4sM2DK%MKY6oj_b^2Q0GE=@Tw6ik=qo-r$a#kj*L67iude1nso8`mGiS>KsN5{;e#I>Z@ zXmS~@Q4Z*WB9nB~_|*nQaxD5w?Ba-5YD(}O(qR!&nh)ItZP@R-Q^mL?50~Ns@<}*dmkpxg~Caf`{) zH0E47puaJekw}iI&gq>h$Ty$oH=^Ube&T`ZBjNtv1$Q-nOasAbawWPw*7f6E<40B9JEw08PTH7mgQqz zZk=X6Z)zI&R5V2lZ*;g9QO0IPry=oKELRhk>Q4bnkP6q)@qxMxi{Dh+_P?jAUo^HQ z!_K!3dVbW#ZCRV*Es@nhU5^ETeH%CO2SG27C33;KLT{E5U4={mL=y1F&lT&CY??O{ z8^saM5*Z`JB}iofC%9-Cig;cBMq;KdY6|Ta2$$iN+E81J=;`&m&OQ+-Biv;wNVO)? zBJ?S>@Ll8VsogP{VlgRc{$ya|-$Qn4q8eCDAZ^NcxBgje%^uZijM0!ct+f~PVLcQ= z1SYR;Hd}L`aUS^sC?7Y1ZBP+7YhqE)pCmd56Y-C!#2hsvUX$&)kFegFNxRJ}NdN6@ zi1m>faUOAvR`>5gjWm;XOcOHH5*VwFj=A9m8enoNylXg*p-dO|U4*e+<(<1^kQ$|Q zr^r$@vTr+bQG+Gu@QVNW%gh>anJ$Q1tu9p(%oIL@5T)7=2sS!!5W7ywfnYhhaBV1D ztzHmg1@z25KET{b>3+twdiF5jJX0&~xqf%1vjo<-N57fn#j(1{Q6tlHqHWkOX|e)H z{v?En8GLz@tj#&DoR@0jxE5S49tDCoOoB)FmlPCMnGGiP(lr_^n=TLG-Z_}nk?y5t zlI|r#S1ob?=y8Zld&WKk+XfOH(`L+aRWwqZ=-(rC{7NzP#Anxj{2aACv7}3-E7cL- zlzdhyz{oc-fUIqH=v)^9gKPIp$F4l%SZy-jTGs95RHP-X%q zqxYU;pRFx`68F&ob?ESQX0betxE+Mg>9dkJe&m-85U59UiZR|n;r$ii6diU5>dT07 zZVew+rO2^yaI5Q7G#)I1~II5r zN&puFNW^~?z(AB0oRD#(no&MHh)zzP5vnrxBjeOgCmz3;;9}BFJ64=?ht7a4?`Kik zqN%7dz*NR+3g7*o> z^V;@|VAt^(tlC%zS8gvvCDvQYyfRwLh*HB2=oqbIrm4NuH@UEIH%U_S$?f1>SgpL? zUi7|y*HS)J_O913LTY!v=Q)>3e1w3tg~B;C(lR>a-CHUD%q*E}6|cp@SmVK(9#-e6 zsA^mj2?rd9T)skDc$>0Ym|w_E#gcAsd<4`kgzQ_o<#cs*SE|OjTE(^4c0meh;=y47 z_&fhRT<7KR#F=7O!q-z9ThO=+C%wo_2{zx2kyqJy7L}Y1>&^1eR|wsCbf3dz!Bq&5 zvTx%#wG5>~O~i#=knNX(KQK&{;!UUeZ`Q%-Dtbi=Rt(JjnVk7;6DP^XzXq`?^meAx z&?i&LlOyDGY)zpgXg4=JTP;=unE!!Q9;pba>h+$4du9h9Re9F69m_5rJhEy> zdSW$c51kU@2&ve)Y)0|%-ZOXjfjeAx5NG+KyT{3Z$J}A$0Jyqsw3CYb+gp4SoqxSA z0>b+@XUw}|}FCbz*BhQ z^)WxBuF@mm+N?FK%&=D@gF6eCt2tx+SIi$i=X!;E{G>63zjdM$)?8+Tm7BR;6;%*7 zM`3Ftr>#uC3X+zQ00h4|T1$w6@GB~-GkO_3@FRcAX?|mUd9!xBcT{sZ<#vhP2jJLv z>zzD!_A&n8^2=os0?~3|-bRG}4e)`}`KV3vx~*z~v>XiI1f~cMmya8~;%(XaH0>$C zjoJz6N#v;MyQ1hK_aszgde=%!GeDWy7ej!rZiV{se0w|_*xwxAIBrV~PH=o!sk3I- z>-SFBoQCfze^N9fk!m@EjDaH5T#epF9H{aJp?Xk8CXVBWO`q_EC57zV1ESB5;q!+p z>AbS$cS0Atk5vlz`wOAXJjold&G1*2Ts(GMnIi)Pc`UdUNz3LH4%GZu`lb#a9*x0Z z>&XViV+yxV=5qEzWzvXpnu9O`C2HO{i1+j}bnKK4i`_b{o7+w~V%Clo6O-%auVfY# zekIWQDgQXHD%}m;Hk2=+2Pl3EWh7Qkm8?AbAes1LT?tCw-BWnBmJZ{??rLO9R8i72 zFkVQI;$j|SzZ8n2W;_2st57d6Ms)C{)X-IJe+2HMnX0!8oEx(YPG7w;km! z%jlP#H?N}BKBrAT_TYCb{TNB;YD#RD?gB==Im+Y9Gf9-{G3BVN0|NXdb&%(10=A=3 zFqJ-3rcT0fB4b#>qm<(`c!;qdI`KejOo4IsV2tWQ?}MdA<3YZ=PRqyI{=B)j@J3lsf*P?R6y zZp`R~W*x#?rpYpySH;RvJakOCQ}BoH8fi>y^-B_~!mHC^ewmedjJ`!9BFmG+y=*hI zeJ1VV{Ug#Q5a-l#qPdwmBlP_I+r)C4=MB6s^oEVQV#0~$1W+>5Kc0N%s1lGMcpU6A z!5@!?$cyJ`z2Sw?!V!C4z!`9g73TSg3dJ1%YpuDp%gOu zHYK*}sUOp|%&17*%HbSguF7eTn6*@C+GC}}K^BEYQ_4`uO`7A9inMedy}F|5Yt|To zZFz(X0Wj;KSvF5Rz$(OeB4@f-tDL%we?LY=`tN?aAs+}_i=x_MY+)zb-R*)ie)}T< z{dtA{qA*QpKC=7Qe};S>Khu|p<#Dyi0w}AbBqAu!#8>5{t1*F?6B-2K24y)-#p$&; zz*6!y^Rng%QhjU24hY^hj&HK{mP)4yP4pTFz>^>_b841W;k-TD788Yc{m96a{&bGS z$(fSp7rfH;P^SGxM)bJdPg%Gs*Poz5V@jy(0ICv8%4by87xEeZohkS37+g1Dw?8Z; zw}fMB4Y&q3hdQ50{a-T!dPX;)OUvg2a;)2)jEP(^oYrvbUSJJ={>p)_)I{_;<;2uPe@nT&m z#!l+kZ~y{4E9bQH+5hS2oZq=3nd#b;Pi9(lt)=4YzTe#*%$`*l)W)>52S)H;*w zC&QgL^TTzM_}6A~Pk!>z$q0{Mq>=Ls;Ln|W^f-QNnB7t+UD~Oo~0h_3)M2h z$ce=Qw4!xo>${VVxD;zarY}SVnn;34Pk2K~v(kd}b)X#RTuj=)%#jI}klWQ1d1l#y zmKJdX`tdI*dqMm8n^E0}*)HAnkYw!rNnwD`9cisnLkSC`ij+nt^`(d+t(fgFAY0Xg z%c$CS6TVBSXB6kxMx@O#90N@pwv)?z2kj|;SdP)dN?^w8Gtu1@w|3Z`DQlqA-*5VG zr?Oh4y+J@Fd-Ta$0}xE}#^7DmWW%)nuaaDX#8D&t-`M6;z_g|eD^k4~PL)X=LAWJu zuw>15nCnKx+|AFIo$d9p50Zci0D}v#wEgimXIZ=s!91pQK}WqGvau-s6ctMdE}gljcj zmnAbWRh~f(G-^6|S|fX;_@(xoW~(`nGRFV65>A}(gZmpi{0p*8XMZyl;2mH0)=Pi1 z^Wqlv$}7z0i+1sZrsP?B3ch5~GLOx14yol{I*%<gtjH7PyH=jK&|!gRu_6w zMV;jbHQ``t!oE-h7=1Qwvf6#mt5bP>fT~ubM!Xu;Twv**fr;iX+^ezg%Dm23z#RZ7 zrsds;BNzL-|8R~iEDzTQ(63~Wg{8wD#N6KtO-h7N?+9!z7)bq`g+>hoV+6lZ^l_g& z#Oh`+OLD$N#+oEv9DIgb3q&1FB-3nh-5H`cNOg$4(r3zr*D zvu`-~&~Ddi>5aJZbS0X5hPQ99@XMoz=ij)d`1@qvZ%ulf<2{)I{h;*UovjvwaRiuu z8$q`7b}IvS9Xbx3Omi|DO#c0Pg?CwT+{@g{z~< z|M>mSm}pNorgh-Id2*b8A{o{H-$Pv+XEl2pXC^ay6F0YTbvdtPNsKS5X7W)@Zy42~ zk}5nR8H_|-l5h$D2c)RAje>V(7*%OZ6g!WY#bnx8=~;QsSJW%A`*5+liR&-5uA7AO zGr~;>>=}`mtj>haJul)Cz}MeH%AkkW`XGT2u=qoC^a5QTrvp(?Y*vk+;Q7b1ePnMo7N_^xI424UGO~#Ul#<2}#vi zR-8lhX@t%SvCs*=F9OKjE)2Sbu9X0(AAHb?uHJWpy8K#wspbGF5nCP4Qkr zfA>pwzCTkdai+(vT5g_zWDhOtwR*+Piss&UcdNeuSXK^~tueA|YhX9m^*#eQy#4k% z(0(=|gV54G^=@FSwEg7`V^aGe0AKEx?dum_ok;of-=M+&hpTg7t^{hcb;q`C+eyc^ zZJ*fY>Dabyo1Ko+vDHz>_K9_SX6n||d{w(@|ASTUuJ!Eaja4_M$ku7U{r3~u-_9JW zhMPFZV7g9Q(|Kq0>`T=VC%gQ@C3mUQEc0qUT)K?M?LrVrP+x|_Zo<7tOM7D}SL0Sf zb#jS11o%+hvUG5jbDtwX7ej(iUL9!<$%y9Qe&w#dqm)+3hFK%FrMTBE!zs2wCNJQJ z$_W`DfB19$f*p0YI9mQTUFOK=57*_Ekl@|$7%1|7&X`zX7PF3m5~`J>?!oAXV1+n| zP;r~EI`UB2vLnArr0O3SXY`8i8QLa*b~GoP03bi^C&p-W%H&7bd-QIa*Zddw(ayHh zfvJV+(>!vw!ycz9?s>G3ST;v%f@R+YcUQIw4z?Jqvtd-x%7%jux3AQtKgmb(_fh*j}FRt|wi|QCzVZ|1g zG$6G|0x)8V#m^!a0&+!S+xv(QM&CJG1LjzzoZv2ZC~NdFwpz%`UyTb@-C*Co;iYhbNdQIkCrU!w=O`2P8j;LIH7OGjVhWj2bD{(l%Uwt3y}^Y? z!jWVcpT7ygyIe?si{ThfZI0!-d0hRxzh8YK`Ic`c+|TY>oGg+muJ zdbfnPW60XtGP~*|B`qbYc|JzKE6m)PvF()KCa>8~*%y;EMM5#R-;qHmg~YP-{-kV1 z!wK7R0kNd7K4>M#j$~4?!XdX-^a@i24o~caLzcdyI=W1E$~UhoKRpF z6>)Fs9%UrKV4cCgL)xb?3wE7Gzdm5Oy^AQ)BPBmwIXf;bu_`y=nm{0Ltoqg~a;*hA zLS(PV*yiG__99tzDWPvNV&iF)J>R8ncMdZWN!50_A^5+Q#)KpH(X*t4vH)zc$<2?Ddd?_|Nfy zFOg*m3kIEglj5+pS_7UFIBHnYuO*Y?s(S-X?FOB^fV47u*2 zTFq^w0w+?e0ei{i_jEW3wuf|sNz|i=%{Z@>$1TKSZ(Ozq9c>Nb$7L~GW z<5O5KE?GNMI-63fRipkjL6_0E$g9IZPf7CDITlx|ttmFp60VNF;;}Bx?&JSf|_L{dYh)2;CI9_Q;PpPw}jvJHgG zDcU<_(m5Acbwtin1oHQoJoq&Z!!K2@uG89#>TitdgFX5RLTuUon}D=F|d++N9w(CW${ zyxl+Uz6}cHMSvylEG_c3v&QdFxoW`QS-4#_smYbY-#(qxftqb^Zj-0 z(rP>oS8@Nqv|bKGPQ)JIkyTBa)53e>mi{HScn@GTwu3v*-K?dv`)mu(Ry0=7MRNqd zoYHWI=9Cx*D8$P4YE4w!04azk2tl!7@@qjJ!Kl1#87rJkp=J+{G#XbBPl{Det2OIE zyck%Bxg$E6*7R%sCxS8c!P8fe$S98Tb)g5rLO~BKKxQfZHZBcFmNBmcUltqhK$r=- z{%f*kJX+K!?A{qWXF*B``|k_POe~8#r{QSR_=+>by+Hhe*XnfR7mqs!Y-1qK1+0Z$ z0>&_gwK&U%*~u6txs2KjU9W^N3$(R0@*vq9c@ZCqI~Cb2_E=_)1>F9y41y2+9+vNY zQh}_(+$^cEPxLO3(}-%z!F?Ceh$7jjVQ&9)n{-Pz8FJuLvOof)*o}+l0~eiBKKL?A zc|U(Y#XOjmq%zALUm-Qgdy5(ZIthr}o;L(pw$B?&S+ITLeBVp>_$3nkrX*;Vu!$bs z>IeIcHp&y8m>NCY;5P=dOcEgUBHZ~Khj)xxv9qHq=^Gkxt{cJ^ zNb17n?n21d|MbBr$*_Ak{|jr8PGY99|APnC{h?Ju!BQ91n2d-xe zn_8%axv_+IQ$35{qlkKUA+* zTWQ(n8$L}fYhGE#EM%F(YIjc8l+WVL5VyK47<$>S)*3u*R*#)O6l*?pQHUor`1((~ z5L@8DcI^EUVDRPE5mMO>GdqpzOz!jzmOrAg$^6F_9TVMOw)yJh*xpeA`#^Q#~z z(@9|p6Oa8_a>k&A5xv*2SHR+S5#CNoXG>|uCiKVw(*S#Sij~ec{F6}+h)Z6_LWn$Q zrNYU6T||r;QzR0+O!09M;Tc@eW^bM8c0UrMwGJjQKjBmdrEuC=tp1NXXuT_ZU!TE$ zl@2w7)8Fi``X=WMo}=w^F4>cCwNmlZ4Isnmo;`2oFGDL&NHR9onE=S9D8ja<8?3G{fR@%rg?%qG zpBEEYVJ_VEl6_n+ACZW?;Wm|7OqYsvUw=|0CJIVyHd9^ij_2h7EjVOC-i8H-p5S(W zq8Hm(BS!WWvB`Wo=2H4ae=;q0iD*&lRnExJtR6r$USODe;_eE z6S2LE$^g-cPiXe%BNp$v73B=5t-$$2+|Gd0)Y~1f^EkNI4qabd@s@oNcL*Q_CqHKl z`t>&y)Upu~au7tT(~;;r#D!ere`RgUD3pd?6=5!~4F*i}?$ z9bC4RV8?RvP)XJaJy|hKKI|dP7^{VmvZ30Na6hNND)9L06Ms-OJW8-QiG^F z2=L9yG-@@XGD{tj$@}KWRn$~i1Dc#v^nxy@m3(h~oqD^PKqxPGM2e~aLg7A&qa8p`BFze z-Sj03vEGo);NuQ;0^{AFi{Vj6q|tJ<@53AohC}1!(J;v~mt59GQ0j4I{+b_NVi0M2 z7?_{jt=8GH&$6nx|8%Xth)QO1Bgn7RD9y-m=ONs{DsutPZy}r%o@LEEi&S7?3q^30 zWd~t0Nh_`P8Ki6n>$KQVsk$qgvcS!%`I@uUiWUCUo&DLt2UNXZE!)>GzcEY*GWH-m z#j;nelN&tXC(7GA|FL()A`eWT;xTAgYPIS@9vau^_SW`ia*YSMy@mW1uPuJRvag{8 zC(!3T-0Z#9Rmu`U1AnPM{ew9F?Uzm(CeVHx=Lko=82zAnUp*Wl@8vvm*IJ~(lcgbC zH5>z`5HHrJ19+5m7hRSae`#;22~F6r%R9yfVyODf7KTUELRerLZ%&Nx9h)!R*>DUg z-g498#BTOoZMs>0VP9u}o+y1wF>l|^(mQ6K`-*jV0|^h=YQr1q&`pGk7ji|Tm3mB; z60iBIfdn`HDu1q>Z7xYRTt!Zmq{1;f#dz5wEf$-b0T{i+Ex5d?!4yHMpQw?0F!>i3 zd3t7gQwPBN&>WakOj(U{9NoG^h*gIg&2x^pbyj@A?Q)IW*EXHtWfFD9qM)u-Gd?fC zW&QZW%WNZHy5oXy3*}*uHdNeEO3g1}n?SMTVQK4rE3Z7djkl~?RZYU6WhkqyX91*7 z$ekVu0o-A#MQ|FtAEp*mr~=6aWd{~GYr&sVAujN5N;`4Ij4d;f(?Kd4(w`ly%JPe6 zOSL57y@Kfh5Q>~+7gyqT8{YB^QS*%9b%Ueu9tZykmprc0Uvo0D zVSz;sV(Jw~r^shX7vEse|4*>f? zmx7E=1Dw`_^ZzgOt8dEHiJFHDkCZi%m0tc4mfQqf6&)ScVn6{LTBDbeXT0BndS=tq zr4GSSvu1gvu6}u8rOetATxx{5xUFt)K~ewhv2XQJcjxof$l+D^czZpWZQ<$lt?hlP z>)8L8|9B%K<@wKbfnQQ&`rYhZRcPRGQNqa+ka%j8jWsF=Yvw*NhltoWIuGi?%nM9# zJQ`Oc>>feJJRu_3fE1tyCO8lVj{_G8;dRH!h8a^NVcHNO=hLk-g*v1lTBvcTySHSY z763ncJ0~DCKIHadfkJfbW0uJ>_in~JBJSW{Jy=24+bU?3<(fbc1e0AI^bkRDPF5tT!`hNco9{fpr6KbXvso!kBh0 zU@%)VT(k_{thWmtHv6bT!LK1C?Y|mXq=s^5RRnTw; z1#e6%vZ2{0V`*5Ffw{fAD|Ds3j_QR-D^PipI3b$mRoyFpm^d*MJl0r9tm-3i7^4|q zO{l)E!B>Ch=;E9(=!dmER@xRmB-Kh+I%XynYxAjRE|L&2)s`fx(Y z=Ddk_V}4a59eRA0@7iW<#9sJB1}l@!#%6PQMV+6YwA)kqOnux&kN!puzh8GpM@M^G z8+3Ngza|_yvvXOrwKKD-u&JU9Sk`6dSLk8KA!0eK(OOmGW~l8(+W6B(@Yxxbful=2 zX+U(~M%E$e#N^UM;~E98&9C_NcO+V!LrRW`>_E3T2{$TIrUQ3zlL_UNh5)+g&25R{b3`_RuJb z0AK4CVx;IcB=>A_Q5oMmjS28s#V_L-Jt(`DSMuF06-Sfga-0lHT8^Kp#zN!Z%$+Wn zL4R%A`#4(Iuw__p1Ss%Uff+}AMAZ=(r2ddn>8_7)lvo-C=bsAtURP^2psa@!vcZ)w zF!k$=Ft~Z=?oKQ}FNDb6N};+h5a!a!Hr-za85I4eK69fCDlP@~jpzTMWLy zU#Q>cSP8H!i+3Wk1{wprR3CLA-R`%A%q8sioL!Ouc59r)rh=gmx0z^$9M)@T@Gd_o zgjh+dMYh|eP?5(XdJqRJg7DZLRC3UWIV0E|*`#!WsT(SkJQW zDB=xAJ2rtQWRJ{G25uuuyn5o5=k2ObLClhI1lq{;&vf#k^A!1rlZ<*AvF6IztT`ZA zInuKQ^q)k9Q=c@{8SOG)_NnbE)A^?jYBTsN!t?#+bP6_|prQXdU=%SiUR!zs+!Erf zrVjeX`7*BY%wtTr;RiM+haz~ts@d@-H0s%TlLof~B8WNCfh=~&Pvd)Sm5kC3lgmYz zDEQ?bw0|5k#nCdom7tB5aAAY=>e^uZrxSn68jR>kwY-t=1I4GoJpop&x(VUI;C29L zt@3cny=X*<4iLQpz%n<{P(Nq$$9TOZz3BL9OoaR5iLA}u(&owpw!SSh;|8e*WJYn` z56Qp;56-|Pl$9sH^FY;JTkTpLQe+0tW%lEmCV#x_Z>x(!ryG`okZ)A*H=_# zg!J6N@9K&(@9Ae$)Y_olpS*`~5_|JP;=}ya0Q4TIzqal)0ZO|c_{L+ab|6;4;(0-L z6~x)KO}*8+Rdex9HG9H^XXrlF-5kzO&Yjv@CjXjIV8QN2X8AGgG5*d>ht0e0tI9tA z@P*PRA^tqw@Z5>kYphhqd>j6j607A0=5GX{B3YQBcb_;Rc`s{so~^?97I#=7E{kjm zE(-D|csE;roSnE$%EBg2+}Hf*yMrTR)E?|OS#P~trake1w*Q8OD z+aZ}R;5gwDEl1USK~_~FJO_vSQF^B_Zsf1Z+miQ8sp|zl{Eu*<&^V}}{$e+lC{7@1eeg@EL+l`Ill0$b1Y6M(DN85RxNd)6q`Nj%}QzBO(}~f@+HE_ zezE#2DMTNhfg1J+M)du(;XY?2?~}dh9_e6ySEuXmWzKK$EVlaFj?m)(eMA-nEJBPH z?cp1G=-g-IUYBUXxY7(jI|3I%CwI z$Yj_3U5|g|#m`Kv`C)4-=be53twp_0IGB37A)*MBIUfN%P%v{AEYn>5>hk-Sl5hDh zl0IUjt4M@g{IBxFAb*zlkzkc7;e2x3O3`No*Cgv3^q&4sCTdRKg24LQr{_2PUo%dm zF9=0;611zF6L&?oE`b<<>CEu3nQ$-K!2OPAhYcXdEVE1=ZF97k*D!mJB25b??R)&F z@Lv)!px_qMG6UBq+7~YZi;uf+yzjsP&fHHfzX)+I{@~ru?6&Tz9B)@n-C2rLbBfOX zRvkMDbISbhI2Nyl$UjHl{eq9?Fg+1Q-*+QV6Go(^$VnHkVeCon>VZQ?o+n#&K+7b2 z{urIpGERcd@p|sTGGOs-4|%=iOXa!)4#u?6x};fl8=;bTs!Z)@wIT6TbALA@4GmN5 zGIQ+9B=+dpA@C4SJ#J^efSmtO#<$K+{pZQJ`r$Cu$%={#d<#5Ssd9t9Dfl@K6^EQ-lHpf5nldeSxTs>s?R;ejwOt0nLEqu@(-_z&0+g>tJ5 z%a!d~t44Z~WiW^jFRuA+ z4$L~_aOHwFgDiIfY(uR*2*Zj}=b2$N*NIn!(qOH*?YuToAdX4F-Wp-tu$s=PNYDVL z(p?$ZyZPPFOh&lnPpe@gv`xm`(|0%O&8&ymJF$G`{XJfzkoJ%(`7hU#6yTF)@cv^! z)lNO%F6zrHlcp# z)wi3htuN_lP7&{1**w5)^cDLqdX@gj=+-1{XXBD(JNGUIh{Js&%yN4@h(D_`74xkp z;%da3L~G->qLP1wriQELgXsjnLcFT05EDuOSP6`AF^97~-d2KcSeO#ZT*zI6&mtuO zqg8N{03SvzFJ)1Ly;w+T;`5uaEOb%UjH;_5Wm|BxO&Mj|)b~Vk&E)?+W+~_#WCa)< z0tyKxC_stzAfkb*ayHke_~ZqxB+>`iLyk6WBC>?PPJGl*3M@%0s=5K8@LA{@q2rw8 z+BbayBH3-DrqvWHjwqRU0SEW!mZQ5-kjXZj>aH-);-JEXDq@Ooe^OEf0x>X@EKC;aMp? z1qThq%T`EkbhWyU%Cb_u>||RTx#}{ys`TEapFk`DxqFlpVJ594i(P|kc`*7C;_*Jo#!bMN z%W0~Q8-k4Yd1c)Kv8xVsmE0U1+;NPIY71VCCD*g3M7lwxFF|f80 zLjd{>O3+nQ> z4W2nM%rAH%HFVBQr#hMPt8|V{fAZCiU6?2-gW|Yr#T)DvGk5bdg zmaiE=pyIO7G8>1mXbp1gPDI`5_A;F9O;>!}6rhZkVdch&4}^JJpD)-Q!@(6B#l~8O-iIkBn&nb^TB zpBB_1!YM&yroS_Kxs%xu5KOq|M88nyTYdP6VhJ#^oGUA9>-5d+2CNVoHAm-};FS>>cGvphI z3Tv$R?}U;hw1n#CfQCFL=7@Yr}&(XP{0;PBR!P&0oQ~a|2fp)gD(+9_T z!ZIdl%fh$$T6e3%{GM-JIZ9zUn@$;Z>SPZ!AoD0=ByB!3D>9y_FXeIq+<)_&C$TTO z6lzsV5jf|}d1bf{F#qvUE4TvE;b#UX9_j`vs^<26N|Jj}WWkwg_gpj)WrVv>E{*yV zMBxMJ(iSJdyJW81FD+aH-%h5i3Hp_ekP@XrdtuhX7sp>*_g4wHj;EAd z!DJ9f=wow%CgP&m2VtpQP!y+4+vfrD^5&7xsPGdKk4SSH2-ZaGZnkxPgADbp)=i7! zF$C_9?lF2BcFus2beWfSu$ai&3px_X@OUIIUvj|0@qxjbhmuWwjO1tN&pQ*4VkMI4 znV6jqRbP5MeIcIMi>fLLfI@avP;^6L=#r2sNudSXubcL;ni+a zMZ98u$K(hSXu*x%zcUalKGy`*1HXKHeM-W5E>`>k1sIfels$dLuF?kW%8-A_d_fY2 zg)`7O5grgN#G#4&!em1wj(Fl#C;di=DIF;Jt6lH~t~Qh{$D%HFLJv-{b<&ct>!R|z z)P0h)aTS3_4PvnZhLP!wj@={AIpq&d4IBdIzbI8b0DDi@F@fiC-|q%N0FeY%6V zX$hKbe#woXd=Q=RQt=QjhORjuJaS6xU@V|(^2_F@tm#RqZ680(w-^mr2-!Z=!dymQ1_MJ5lWlypr&J zve09aLGkSlK1ayQ-$Hl7GYg~a)C3g`*b#fc9{>Li&7AW3A8Mvf1r77>(qkO@FLN~- z-zmob_G(PfwMK^j7Oo_xAbqC?YWw(OY7>3+U9e4BfZNa(5m*z@wab(0iglqQBfyPV z!*YU&6-rX~3;~kYvphW0MFcC`ZS|eb(^lRF>FGxR7}4C@FnZ?!F)JmuKhH@X)kj|6 zrZ1>_a;T_|?#KP^x8JsYU0*+K=f7Qxqd@3{0cS)J7>U&cdNW~iA~;ci@v&MKl!QrW zgN>mj>=qW@F0sEHk#?yBex-UDjSfxv@Xic5uqS(m#X9yTM{FGbMedFMWyG}4)tMrD zmF&V}L@;=s33?#w4YK^HI+}9>*!Gd9x*E{Wx^d|B_oFiNmZsYCra_?~+nn5Z8u!N8 zW-2MDli3p#=+z#46Y~ZFVM$PWH^#FNu91}N-|#Rb!HqGi@h#}dc089)#}IR_dxOwlI& z^*I$k*VdV(AJn^pR&KFSgE~)Jy+X5bi&xD@ZbY_{(xlPyicj7Ks3ikjF2W|+TU@b% zOV5ZaghoDR+(sBETg<2_ot{RmJuleY4#vbyxtmgdQI!`%$;8r=m>N2+#Lg8(VVt{5 zequLJx)7hY5kK0h!93=w))v9JLD9g@#gy;Z5w19-wm;li(3q};Vs}}lqfW@MTtzgG zI7q=~d?{PuM)60sm9n#)*L_Uwyua`q9*bd>UXM6qRC5v-6_&a6&plHE!_g@l4u@fc=rugg+ujSK#LHnB$Wq=Uy_ z?jt&JTpl$J%egU?X<7y+$IofiA1(jf8Vti$Z9?Fv(TJ9VX@9iq^G_{@ZLc{O?g_P# zM5P;6jTs9x&FCLgi*%emkuqq(irtS5j&M%D`(uGb_l(%kvEKquJQ^B2dwb)v{RZAw z`B(nAIk@3(4SHYs-*euIzXZ?aq0*TC2nqDh+|-o*(gR+%f>BWqD>m%K)P$tDc^~z4cvmJ>xj4^R3Q@uiS33Mppzc za#U2*2QbKf5b(cyy^9Z|WTIB)L>qaHx`Rr&=~B%lnJ*4VS@NrNWc}y>koCD}oZzd5 zW>H7LlzcnGrS_P~pzN6?sfZHQ{pJh*RD&4!Vht~svd}-7bye~DJ>X21{0{5He09Pv z6QA3DGpV9>2T%D;J) z<&md?Jkey9tRN3yW|0m^d?2m2gl1)XbjNE zG-MKO$`5@T#Tk~ey4Ygwmn}Jlg90D7s0%a%#tx-70z0TtQur#1hJRGg90C{f?x1VU zA@Hrt`#XsG>*+bn1LT{VLGCNe1f4S?4K9cDePAilBIGXOtB9^#Pa3c3Aw@Tt)?1>7b zcs&8~=PPd#f!av060Q5%OknNSfNjWV8yll z2-b+`!ZM2pHnnAf$v>3b!LD%ZieaFH;Z9;f&*7*hf>>NuXlHibs93sFdkd&u()D^-qQz#r7!Q=%!7u|s~XSn~l`G0x@u?{Q(A#z~Ty zC+EI`MO;r}cLhIoI-*uST^P@RdIG^kc#1j#Hexlx7qe05`ga+MHrhqO> zx1>Svc1?RUy57KKQo`RGyCvR?6`_r8j&kXpD+^wiyjto)D+hO~tLKjS-(%VW-aSTe zR}@7eL&)jWKqcGPX6KHKMJ@>Bp*z@OPBgn65v*+qDjUkya&t4Ro_~3F&ppM~WH&<> zPew~59&kMuF*t@YG z1dt5{qC{_55TmS2G$2j7o`n#zIGM?rdf=vM;2!)c7v3p>e2)v-iKRrOd2g`$p*IFZ z62llLCF((@E+otAV0(hhR|C@;c|rnIXU+)7$*K1`mvYE|C5Ov^s6V|tBa4d`lsFC$ z)@aBmi{5Oe>bgY@eo#7WqYtkSpN%?#D;r5I$zq%RcdHT6($r?$vF4M)sdG-Ecz#%(bTM*Xxn-)^~%qa%Z(1W;oz7Hey5Pz=_w2SpY0*a5JQFWC*1B2= z2-xsL)+DS5-hKAicHXaiv%;7CF{axAz5UOGKox6=2m6dbBhTBeeX=O za5yLYs`j+4e-+sk6iOzXin;gOS@zq}L;myJASNBSrRVnxR^#8)CgMAVw?O3L zUdbazk(eCCW=`~F1?N4iIVPz>8SG09Ucoa^JtJC`5Mf?Y}(#H zAbBeX22 zyO)w>{5PY^5fbIXpXimJZFOx-D_iaEO?8!&Ce_w$o%(iOb!&Qd`sXW}4w`*mT}}XY zSz_={A(^XyYi6sD0=L;7pZ5^IYno!d_xb|QI~^PNGCZ1TZyV}^5;z$SRU?|0s!$p` zfe}gIdkoC`!EqJ4S2CxlaKTiCj9Ya8|lnIOP`wBB1aN+Yj+pw*fI@fWY zm-4Bf)MnJh32l>75O8gm-U3K~n`4UXjU&pFJ~f;LH;V}V>7!P5{_z6&=M@}lH;cB8 zE1e_Cc44o!jt@r8}H)0jO=s zrPyt#v%nc_wY8jTcbsRUyGN1E&(ncUn<^dcySX0A1X^rZO9fW;JoFS&wLhEZJ_QY5K4(#M~i(}dxJ`}f)o*V<5RYLjJ4fe{ob!aWF(t{@#oET{jw&?r;b+<%K zGMoPx`m@$XM@e6!PIr7QX)cLaZt2iFIwgXY!}@{pD1f#+Wg4Ork9If(zyl~BlciA4 zW)_}Yw-67obmcpv||}9{Fs{GwLJjo^n(d*v2hA(w{)a+O*LfN6D6WOY(pJx2!705 zld64j=vJ;Ns;jrFA&^;Gv_I*;Cpyl*s`U zHK(88{7zoo@H=bi*$uazL|}^ZI#Vm3+X9EzZqP@PHwmlS*vgP?2mLD5YYm;3jo(sV zZGU!%Dbrq7(qx-3NSTgUrfitb7kAHo%L2I;cWZ{_qTP;hP&6+xqbZu(Dla*C2dtaaq$EVCgz=QA^c1jAho0SsWJP>o*#*yUWVOC zArn}*xE?E!Z$9M_)meIYSmiui9*U7RifBm6arDDkCnxStb?w)3d^fHRwOSsl?^W_H zccSgyd?lLr`zcTdQ@ON6Y2VIt!P(V~H{2YtyE|IGU8K&tc>wkAVMjKa`hvsYfRIil zmHL@?P^$NRo4ZI}D4a>c`dKQC!H*uPhW?SNH7HYS|77#rL*IV$(OL~+R#HT3QbdTPx}G;8)zF=raK?`~63p+T0B61RT^|P62pQEFQeuw0$nq)Kg6E;jBaXn5 z?_>*2*+x9->8Bt}!Ma7`Q_Vc$LKu%%h<{FfGGB>`*@d$2h6))cOY(0X-O<0mM`<)3 zCdwPm+@TDs7A@VoMvWJJc#IqFS6`sxoKpWGeSN?zr}-DHJ}9n}h{Aw&)E>p-jTZtH zGHr3ns8P*jEZSW6Pii1S7P%KUO{6GT_Z{(P`^?Vn_1U}NXY`EM%~Mii?j&v;u<#z` zMJey;&hY!r^pi}B@-cCr=&_M+(&^@6TJON78U=3&Eg!`iK2OSk&L({EUR$g)qxEoi z6C*HapO2Z(8PLcbpaoOs-H1dZI(ISHM0|=oGgE(_A4Okg+}SpLY^rno;V*LR*QI<+ za%-qyMWh+Yc}=M^95SCk9W?WF`+-lg^a2)`X!Fp-g}sUgN0z-Tc+!ZF3YPgiNgYFCFtq$8)Le%igj2!M39U75P(oI z$&yV9Vn}ix^y-h!D;Z3u-#JQq!Py6FH5rk!=3dbHz#deE`&KHeH# zlAC7AQO!GmbfnsE9)U{fiXS)RD*MMCpG3b3?@h<^_9KomTjAvF_NruRq6t&SBL@`n z2rn*JQbQbWC1`11jwR!O4fiC&Y-WA?U@9^-=_^i3-e>W_=J&E|X7`tB^p%Q3SPF1PuG{bkB@EUuaHrZ@s znGGT%S?KZ}XJT-pbvTh3_5!XIBvC+XaaBG<43B?{IMnD+Fwc`yd!Qma^m8%H11Ukf zbsLJ(Z93{fw2^2Uus{1+4i-xC;b5D`5H-*Sk2Uiz^3k~Ffs(EO@X%3peKpNz55`N+ zP0W6ZZsXF-YtVX^ooR0Mls~0jU&3D9;EoHxlGSJtRqz3mDnA(Zd#3SxLWU8 zIJ7Pft~PWi<{_RT*aBgj>cp8YXan0l3z*v8Y~sy`zP$4J@%p~4cnqY7Gp0YZsIRdk zj4_4&nD2sy(k-#1WW4Q{p?f=v(?A>%HERn>s+#HG|4>a{wo-cCaGkr`UmdZ_Pw19# zHE0T9Iusl3gK26}_i$q;menmEek)|^x;67$#}hVY{-yOtTMt+QHb7<@n!>=&#e8AY z3a(l~{Pu~)C?%SSPl26KBo()|5X<1%>8(1Sh$$b_*%g2G%W}aJ*A(Fa1{ne?hcCVzD7&i}f$*VQtlnhr62fl6QDa$^|GrKh=T2cUA;wZOJUKvY za)8_`nt-4MI5m+~skUA#)CXa+mH3{qo76L!6v1+zM2*K}C8`*aWGxYzDYHV4zlo+v zi3u1GNK`81UA2K=S(fs|9p}0Y)g@pnxk1)Jipet6dIfqk<}~|Age+eWjBmOb%xfdZ z;-S$Y5m2~V^3dC~W@U-ZZy&}vwmAKP_-G__4bjT7s|3UGkRJMF1v5jPqEw!zAtpf# zKUZ^?L*=AK?I7{2^ohu=-bUy@W8dT|;rrd?2z@0T>j|t4-O@RO3I= zpXI@(C8xl7qlKsWn}z0p(zNtz3MZQpA^aw7muG=LQ3sOz1pEv(jMG7gZZ`DOCF(Xp zh9Upf=THX(^~sdxOHgYmlWXStqIVhKexMu1pd|r>Uu4C9wbn*R)r)de7lDZJgCge1 zy!yAqp~w>4&BcsjQBb_!tnJlp`U!4QGc-YJrYOKTzaOJJd@?hVb1rPO+M+8|oKZ?8 z>egAwZfVm@499A(?1nH=79ZLtHHCW-TE-!125b6qJ*Uvt+;G0zGCZcsbevg^qbV7V z1CBhN|Mn?7mv=nu_OKldO?g0JJgS>0k|^5KpO?uZ)k9s)mz+rVC05Mkd2uM#!+QH# z-+=?Yir&g8oYG(f>cwdJEN7E47<{eIh!@0-d|;>sz&yo$W8!ro3(6S3!fPc)vGI2r%qan(eWJ0N>oR9fFt8Ev~A*qHKsD8cff zkLp5$WvI5D8BW;eRH9ybR<=Pfbc5v~{M`fQxuXXp1Li6!bD4+x3|Wsx*4koh=Np2} z3I6_>cDCan+<@!!fN;hEv(+}az<(&HM51OYJOv@WQpaL^n|7Kf&TPh*-3c$^`U8#{ z0MoM9ecoK(72k&-PEjjz=;t1h{Gs+L^zn_IXYLdvuHq8%rq-SE7`$z`#*xrUL3$2c zwyu!c=jzrk@zW^@2z9EjV&FQv4G<~0tyfLlDLKVo?v)>c>1@VHY=t<4wf2?xRP&x& zRB`zMV7*~&FI)>CN#pFAAb3(g4W#eE;5huP&0}6|c9VMkZF-7AL}RYEfSzQaST_WF zeE5Pt4RJ5#G&SK-@8rYM+MfstY*Gy<(j47~T<28S_G7Q>+b)-!F_q~GzyZFzHXpga z-KWr%c}qT^as9OMJ%RPS{EfANVRB;gBNJmIj&juxbLr&o@RK!utu*;l$SH3CVeGIV z7gj`NcWZCPQRpTXdZt@L#d`lq?=;jsSDBWsc?tmp0)CDFR-9sgbtT>%Xnqh_{-YuT zn`kpfGOzCRGVvsb6R{E(ApxGce5k-}o~5|QhVOw^F(decob+^zJ_xBK41}6bdAelL z)=(6oX_iU@w;=EU!oZsHs#+TVf*3IHA}N+$z$X@EN$TlNz@}IcOOCDfTts)5$1i-? zgm>BfK)66<1Z_&u$UjdviC+U-w@Nc$S|M6F6D|_@4TRRpU_`!*GV$mT<1@eUOoiX# zEQ8FvPyn3 zbVxLgcnoDoLLF+m{sIzPxG4D~CqlWYDz9o~P^SasC-t-W;6pp!R_8 zcv5nxxcydHKCamaZp2a9Cuy1f)iv?BoFuG~VFLWeIg6YNYJolfHD!|PB5J%f za$@+s(79J@2HL>lzqQ1`@A@W@^$|0tMQ%@GIbx-?lQt!14U%V#rk!DcYkV7{}2n^jI ziiCuebcb{~3=%#G!HaaKG*Z$6A|NV=NOvP4@T67vulPiGZ>|5V1$XA0{e7p;S~K&V zy>HN8E5+V0g@Ct}#UI?qJfhRw`{>fzM%W;po~~_%WRF0F>+t7bDINKnpqfbvx4jK2 zhM)9#UkV6>($5zt(>yLwOL$`60aT;IQk6NF~5GmDuk ziv%fE-9OZnb4V+&l;vsnxDBNl6}jq3SrG*dt2>K{ma{!xi&i&!SWW#rV2buZWlyo$ zj%bB{lv4j1POYdWq8XR1NwI3HC1|P_>kjVi<5-h0UwqB%Zn1^-7OiJnkI0%i9scG# zsuHYE^uAUQIVdorkA7<0R5HGBiTG{H;7 z(PJZPmNCN*?||rw*x$OY>+yn2rgV@)l?LaTrYQ3mE-a*iTE=6H`_xCq&pvrsxexj+ zz_L&7?gcJzrsk_qDW)ppk1D<$(WqI^(p}HtSuYS7%IbH0lyx&}bB?qcQ0_1A721$P ziX9c#$t3wnx|%3Nx%N0z^vT81mluoM$eqEs}B<#@wztv*&nu3@D1gh;T>^b@C=^otHMI#X-#(xBWA19ep< z^E~?eZ$3&3+`PrOk1yGyOyBD6a;rVXk@d&LawHXkk=FJL z*U@=)u+uk=q_GVJI(plj=Q=+m$l- z+F=a|5kCwn!JyrzWmB=aJmU;ErzPNZ-EFHofVpjW=2{|Qhm~;wnU=#GQu@PX+5tH9 zs*_N*DLg5-k7aV74BL`e)uAgJUJ5K^i@hWNfxt-8-mOSk--pg6%K`^7B)N@SZ58D7 z1oxjRE==zt2n)=Q|A`^^hgb$snINmuG<@Fzmx=Pv&;nv>V$5@w zb*WJa22|k9I!!RJ;1}P)%p?smD$ZDYK!zf$PtImmZ>1|iT zR;Wv2Tql_$IjgEw=k!8o?}%F`J~BwUXWNl1bJE$SNzA5dxoJ~sbYQ1%+Vmy58RniG zNf;XhLD*Ww5ZNAvmV!Q#{dQT%(r$!m2J^jy(E7(1at1ybRFM7v_xLAd5zn2g9*~?o z_r)rvwIUw+rx7Wan9_EQUu)rZOr(cp4=>^k?TC->-+11K!z}TF)263q%r9?{nIWK` z*NCm*p1<;Thx)7U9?yhzbF9c26d}hv8pG?{s5XzK#2`MKPns0Gb`1^F_P2GvY8HyX z80K~CU|ji18O<6Qf%yiPkb*3)O5S>E7Ygefe$?UR)zQAcxs;lP{ItrWofULIG}~am z+*k&G(py1IRy&e!+t3(Z*$L&^4T(0rsYVn9|QF~@y{Z8BSW)2b~Wk$m)$pnQ1 z@GF|dUsd%xh_))!NUi_ttDnKtn*=;I<)?Co3xjRr!8igB$rBe;A{wl?qOef0#k5EM zH3}*+Mj;f07CI8I`nx^jzP3M?|bcURrv~#O^79{j#e0!Tshvnkd&@lhFJ^Ok4sFivBqZr^J5X5Uh$cd z2U;EiAH!xhqu=sG0yABSX!Pl%awj`*2eHCZ@Fjy7N#1UGDU}#Z->78KK$%WN zjPkWslbG3Zf^JbMYD-GG{h;fffgQXmP~oRi3_HXR=$e*nhc0e4S+p1WslMa5XlNyr zXlU%Gd?7QF*noyJ2}o&9u}FEMQJFGI0GNp|li)O%$60wZKDtFhvWR0PtXG9AWR`M6 z1hBNMs_N~%XIuLEwgd5JRi3@t(oa-(92v9n)rcRJHgA4w+5DDYvl)1Gz1JB_{bb}Y zdcS45ae99PIPu+aL*v?Zf%3&}e16<6E zRyKJbExET#miC#_^=_^VqvKZ*Bh#Sz%Jlf~s5Cz_IDf^Uypg8Tb*D)rf79PZ#o^iyCdrmIRrUxA zu>8JBaFI&Jsnwqt;#!pd-dV?JIaxqp0L-!Qtj#>Kl+Be=lKuJ*3=XU+LU zyV%r}-RfrKXvKc_1%8+{*He@eEHrho(nmh&kt!;oiuqw77^$G_+vOCjCrH-ND9cj$q#$MYoGd8me zRfz|O4$C7g9R|L6ZOiODhaAX9Shb)BgN1!gV0twU)S$=BIE8ymR*9{uK6t~i{OPtG zG$VG~;ND4{v;QD`(zbwmi)^m{giYPj*eB@vD0EV+@yqv^Cr05(k$g@$c4N62@oPgP zyzeW)UqL!JG7aV}opK%%XtldCuvAN>$>4rf3fStqMb%QI83d~>U1Ar$ax0msF)uI*QFv&#h{A1QLo26s9AraPHb6Pc(I&np{nOFfW*2OgQ+-=vr@YgwW61R^UroOmKGCTY05!d9XPVdRk)D?~m$ahSA4NymyrM18)?k16 z*0wM*AT1=)Z`CI!epojEV_L_J%UN%mCtjzszhIP{v*kT(`mQ;UkeK{o1xuZhRX1R` zZKQn8|6Tr+{el(+=49+vVE%DtiU<8dk5Dh1ldAg=~b{Hk!9wof!p|0-_^gXy)O6NyAr9HaD`{B z6-tFndDQ4OK5BVyoM*CUYT|Dp4XW)slrLXx>V8LEWr-k#B6YUez8iF!>U^g}YHx#K zNuAQV-|=mj9ajY4*_=%N1pZ8w>eI`)%2EXdQ3CSxQI`!&8+%#Fta_Qsy$S;j?u@Uw zA+>UDdh@xjw1!xHadU1bb1BE34esfQcl~Qq!(hn!*|*!uhj-wD2)_7Fm+V)}(?2<$ zbk1!I+@L%Vtzdnbu3EXY#8qAtW_xJ-#wd!Cnx=r`X}~8v9gC^Q^<=^1ej?>njhVqO z^sg!OWB|Dz3Tc&kNedR5@x$kW8Yyi0W#W+Om1<-r1#wQ@efgKNRri$EKVJzDkPKO~ zSC!+G%=(I{(=~iq(zvpAz#@V#{v&y1VR!mHGI0%T6^{=hiY&r9E%=AMONOk&3W3us z??|uPT=(i|cb^_xNEF&0pEG8;w-G?kR^_<0)_ng3;`7rNp`K1HF3ARAJ=t6SUDwh8 zWJ~?9=9s#*Q($Un$VyFOL77EH4&IZx#ACYmS<+#6h857X>M^-uPLB^q(DdB^LzmqW z>VEOh2Bs=&R}gC~)h+#1EpbD}>7EpKTYPQlmfk8ydeHXk-$ZU|U1sQ&HFT0Ad><4K zRgu5?jOI~jaRF(ftg9`J@IcICygH{HPvqqUbBRFRWs-E3Oa}p-OR#Wm+rLIAA;1fZkKFztJPVrlQd~@5qj)P$mPLk zaX$1GjtH&d`tYKgy21#bcesUEY|q<90wUpCW(YUPSM#oif>HS#LJ@X8QpDQ&{K%+y z4sMS5;-dR=Nq`vHep%H2CS$daPf}g)1ZTvLaczvD6b1%Dhs?sjTW-k1B zg>s#B{e1GZM(abN+o=H|j*n&-VT=H6fuk%&U^xT+_zLl^+Phaz7mkSL8j|N)@DeP9 z7l(u?B83w>4A;BFVI4IgZjxCgU9XUJ(Z>&5D0(AFdtTXgR&B#(SG6y9x}ytNV5^&V zCTX)6O-2?K;N&I;bLOb!zuXgIwN0QG+*ypd6JnrfaYd}AIRX)QNS=B#PQB~HwNNfw z8w2}U zAFe(7B9-f_6jLQjgiVF@LqtWbM0#So_>r;yWi{f*ZxuBiRBvnF`VtyfnQ6ciTAFSd z!jYC@Youbqg{q<>%^Eis{p#C^Lf*~w<#(+TRnUMjML&)-hGk#ZxHYMI)IZ-<+V@nb z(vy*mc35v{|6vyf<1hx<^@WMA8($6?GRhH-K1A3N;VxMOZUIjj9|Xg`g}{F_2%{Fa zsd^&U=sB3g(36?#-C7akjyi-1Q)nI#0Y){a~_ff|5pqN zpi{(VQUd!!@Lw~+o>sJ-cQ$&#O_`v(AUv;w+pCL)mHe?kE&I$8b@mV<9fwU{9 z9RW0apkU#zl#B8p0PaqUft^U1hC@z>z&B7}bea>)xHJQYRFDH%g)pEANsay6oE`-Q z0%q_aN|dKX4lAUXzx*PD&-=}%IxYS-Lk7AcnuSBwVPFOvIC+Ro@$VsBIk0;PxXn^Q zhG|bRC9@3YhNI5YEF&9KB4PyzVtx+E@05%3XFP>RN0D*=+a)&FOXeToXJ1czP#5;M z1^CQGIWwOcdCf7Nt7FS)i%cD?V-w`IQn~nL9tBXDaQaXlRlb;2vCnz`Wu) z&ld!0FF;2HPd&e!XFR8r_)`KD_%aU;g)msk0qTFk&N=(H^x|)Sxu}V2fZKxfIY+0G zi!BROkadYuM<)yCm)NQ3BG}(rkPh+Un0}T7;llqJ&p%3c|L*a;3~0ayyj!F?C+c`A zGzM%hQbGpg!D2X2UQPlpaAVM9t6_}K=m;J>dOS+s?%SFL&z+_4BoTF8~qUqyajP0Ho)+*9EhP= zfkW`@0O=LUU#l40#T-9*fPbZ*J89DX!cID61^%a65PZrC{0B_v@L%v5NASPb=)XCF zf7hCeQu=>xE-(iFXQIydO2Nhd^AP!+a#1)g0BTtD+!$Zr!~Bf{pSdVvHxSD4uQ8?= zfkQ03!1Ia{a2>?~ZjTV1^L2q3?t(8R?=zD^T-N`z_X7RX1;b(gGeZOs6yO`hI#=Hx zsu?si#tUX|k^h)cfYTc~3WqE|IrCGGOLevs7Qmum;Is(I!T?B(VS#wXF*sx@8O-E6 z!;y-eKi0C-PAw$Gh=KbT8gzDp2jstDy3nA=^iz{&IUImb9Q!{5a2j$8Zbc}_6b*(t zo~2wAN5MaaH2*QW5FB}C@^k7o3r~%BCdk3=$WFi^nBdV0PMQD2&x1G`%y`~*nn7&L za@NNkF#GANf3gXmm|~rk5L=(`{bbK6M#7pF$e27o9T&c8ywIMFK0v@31}slP&&}S2 hZ&ohAZw!ENPAW}xOmH}U>dT6v!O6irHTm=1{{Sjmu=fA} delta 37640 zcmY(pV{oQl@UEMQIdLYoZQHhO+nPMFZN0H=PmGB*$wZUnjWaPO#`&H7-?h&^-+I;R zs`a5)RbSorT?K|pUW9^CRe*v?z)jk`3-v@h+Kh<+Z{*45LEsZ32p!?75|!v%;9<=FBo{3 zRXe7ZM! z98qkC_kq3Jr|u(PUJ~iwCsJ*p-a(%Pqgj9Xc7Lc+p}K;6c)u(#FRF9=)wo4iY?p4? z60^8uurIVZQIm2}Ce`pi{UcuL|JWR#Q8Q{kW;nuMAGNtQh~oc6&3J6c<$o3S|5VZL z3u7$_36WS~;2Z71buHB@aK)V3L^u?)d zgL#sy&e{9ax^%(*s{V)IV@T%*!UNSBd;4;hcLk8Pe=pE0CuiO_IJ4fm^Y77!=TrFo zoh`WZNlqF9lihd(2H~4Tb~-DS1^(64wO9r#g_*WAa+amxcmVrRGJrkN7mtQxX*i_i z)<+_)tlALaYBUUoq0Ua;MP@iVh_L|~D(37j(?wz? zH)m`19Dj#1&V*2`b2-ZiEQ!yJt#^vxxg*64X#g`#J%-t-v$plgb=PvP(#c)s>9y7b zia~oDB#rs6W!COA<7^EAUGZ+oDkF@MMA#i>xh|YHyh}y{7$8zNEO<5xxxiDLg$P4b-Y1$G*5>uV zUS3pq1J;l+0lZpsti6iEQIx5uk^MRLBoj{ttVWACl|oS5nKj68VY0Gc7aeC$BJ8jj zOJY7VO(CumzCL^t5jhn@iNu|q84KnD=<_A zdu!zT6mz@J)LDflk;4=e9Y)D6N1$>&y?&_rrn(jkV6v+KV*+;gTjsyS5vg@l(vR3b zWJ+XMkIxyWiTvfj0A>dq5_)wLTyc&a<+vLiN^(sxvcN#kdN14v*xh#Mq8y&vfu!{* z6*7&MY+F>Q3qUL5H~;=>yDT2XY_CY`)P)3FFwH2X>`1n_*;bC{o$+g>X%?nvM%-jh z{Su%6)DM)s>(8&%@BC#c4QMzLh#-smk-I+w3c6 zvKP8e?Wjtrs`6uFL54F}HGH*3xYgPqw0cYfyc3EwSa=vazJ~dV>jie^&gSULF$&&* z9()2Rpu znE8a?Ed8MOFZsAmq#w2ju_f(GE2H2u@zv>w{bMm?o9u@pbMk$DrRtOAzCj}K1&~M= z3x4P=(l{yeU=jNh_4U5EFo-vvA`w}tQT>g_4UH=Hhxpp zUz@=oXPTamj%0)trn)RGmcHmFJ|vYE1EQUS0VzJdJQbE??HpA%$|iGf*ShFur0~

hZ6yjbL-Opwj#IyQ(UF?vIf z4d(E~5gbUZe(F1qo~fD7%8DqYqqWH_E@mWD1BaOMw*MYyb6N2cH17W!fNi2#3)71a zuLDF78$XQ2UaZt?285enI1diqh6AhK7rTNZhrhl+7a+B`WReN~&4_XE81f#=*jNg^ zws{JbU|@o290loJZr%dl*$5dov?4Fr+`@k6n-0t%Yj2mk{Q|Gl6a{<0-SB^qte@DX z9`-ciUKeQ-867xFrQ_*qMC1iV*chT)HULV;t(chVX+zUiIl*KPZFyw+w}$fgSm6c; zIH#60xHI(!>=x;0@}1Pr?nZ9v?p~epLkuM+hr9^CH1c$v%5$&Mj@NT1ca?lMrw=N} zU9v{qO#_&lZ7b85RtW#5+6-$N)B9-b!fdUV;O!K5wOiu+z#ltsoMi9Guu+B7KLLid zkeqlOi;0ME5{s6H>5wsM#h|Wqv!xe@5%Swky8TuL<0Blhxman0u9liF#qz+>`d%j| z9LrohOTJ&u*WXz~sIKog!8U27VXN@gab6r~{E*yXsj<$F%FA)T;FJw< z6A_8C&gS{v{69Ob`-;HrcCUp%H57f&%!wuolTpkJq0SEYWEpRkM1U%wMIPoQEw zp`o|^Wj7XuS_jZ5WWJRiS&<<(!$<1j>Qz|eg~YQAhNP(f*9o|X`lG&tmHPM%2i)&1K(?cb+b2s}$eA>0t1{ ztMZr4Ut5H}iiPOz*gztd8XguSVcKNzJCpxEjunK~Zx%yAKm@@-KydzV7PoOXvvf@R z2w(#KcxXsreO@S?C^_?Rj>=c-R%5WqZBk0T6-gD96`8)64HUIOZsvjR_x^4BdRUx_ z9B}aGmdx-9pCY5q@CNe>Kj}Q}VvekDwxyMUumnyo`FaOD9`bkidLI|>3WH!>@u{F> z*zn82Z6U&awZAyj`l22)?n6RQ-Bt&2$Gw1j4m7P`TH)B;zFZd1eR66~!`LFUp|Zqj zSbx_sQAiR7m%@{-ntgnUtN~}OG{4A@lCumCE0uJ|oXu;=a`GQrWxe3F2HFJ7>-|WmY@=zMy%q-b&gsd4F&vf;p!d>h*$?(FuMnE{!d0$V8tdJ2Nbx8u z+$51CHpf2nu`!@RUt1fdJ3jh8?>+?`i}uq;>9=(>?9*6H*^|XxKkGm?Mh2-4Q6anG z$&ASavJ8}edw?HTJbOMb#H{H|FBdSMuERLy>1e}H%f9Q2GQpQvY$7L>NH=qmefWgz zL3pRT(EPJG{EXk(m2sb1!X)4*%RbX6m3RVC`?TrY`7dE1!-xT4r&|=+w)0O{-pz3a z+Cr$BA+n~55-vVv^2y|P;C;~5^D(?5AtX_eJzPEZh1Y92|E-3)*0QZhPYo#RIITXa zu;-&(4=vlHG=ZIPwe@yB8fPD=&ic2BMWyzGSEsD}sLD1%wNKCHMEjdnXH0<4b-hzi zAC!V7V3ymWuatOHE!GOxhq-y_&~J5o5>)j~nvBq$BXuL-e%ltmzVfo*>XK8dZj4SV zA(ebDmuRl;Pe#SgUQ@Fq;S=C&X5@=mK*N1%CSR_D`0M^Pyj5M6#VmOnEbL#aC)nVO zE=OkjS6z)}KzRdii8D80W&w49-2nc(LT=<2{9bq{!Epl4TTyOTNS8%IZP1_VYZg1R zT!$R~;T`Y-Pm}E58VMHb{-_6tl&ENCmm%DmQh_16DvAe+uMSTzLK?uxfVm@yZXY(c z&@Dj^hD-$sd9$FP`UHc)$q$vGet!{JS(t#>e%iq+tUb(^V8L>i1&;hN65X-FuCM{q zJr~Vum1M<8NMk9MZR%RIVizz`D(-qbg;Xke*{Up;(x*(3P*ioP&FdqHFX1RyH7rDq z9iFbAUBbZh^^T`2!B&h{Yl&4W3}y+wMGV_L#ERHO+z(alaQvrosp}~Vaq;yF>-Xl* z|Cz1-&w!QWsxm`|0Rd4(4FN%xX68c-Fk3j9d3cQJA@~}sWC%~_Z@1nPZp!aT%E3dn z@EXg(BdnQ56Tvaur0RNyVv74V7dTP1P?l9Prc?-pXQymSc_GNS^l~d4I5k|qHx^HqrMAnN;KXOF3w;(YL(<1 z7k@2iY%&4E5bF;k33+~Dxm_>-0u!^18FM|fzWSb^2&;ha#vUOT8PR9e7a8vs^7^($ zR{F#_xe$NX7#%dP(1!8Uj3?v8N|k8-(sX{VXWGRzcKWUOXw`Y(Kn7| zv7pbE)APhMO32!4Kd~2|9+udl&tjK!t8<=7F4O07NBm~kYPf|(bpl%h#jjfQKEAZW zVi`O&eR7A&Viy?J7Y_?wTcx+wsPE~WRa>>LvdJ%+mpXp6;xyRXN8nmN(ZdVz@vjk$ zYQB|Iziavw4$m}KwYHf&39)*kw74~i)%|o2(K9IMuhje+b#b+PHNm)PIPqigmIj(C zAr4x6n*N;fb8Fq~zY3(OktzDpwS;c3vs9v&FHw?Raom zTiEVpz}niL8x@07<6@iL*xK~aatWYqtF4D>AsV(=XsEC3?fp>?pbDJ-Me=Tcynnp- zi|FkQD{+ynM>4#3h^_ds{or*L$IjYadIL6dON;>B9Jubgs-wyzjK9kXrLd+ZfZQ>1 z>2ZC|N@3IBe$-2|W5W5?J%RIyMWkIcYLVpoTqB$>m;TT9~p*lN+*h?gYjy@$@0 zmq-C;J6EKs?(Pi(>(dnk-u&e->|0q<=IE^v)$RU~r3DFX*akWIPB%?tnhB%vm-i>m z6zi2&iTJ~dH)29PS}M|`Yt;O+Dezyt=M+0aV((!0o4+@S+vdt;>Kudo-Anw&I5oN< zMh?URH|wvq#1pAfk%d*rRRXo#PFeB$V4jc?LoJ9DEt6IOL&cze4S(+|HrUytQ!H?L zOL8^pfcaMJ>bTwOBuB(r1LjOx*!`Z$Jp@m5-&bSn!Q4%nH0pHdKQTy06^CFE=x#|BV?T0j*U0p+cuJ= z-{-n%BzfaEn|V;Gq@vHI`cjDVkF~Ej$-D=k#F&Pmw+?H5lcOp}#e1JT!Fu&7 z*{#6h##UzNQvtstlKftY{SX}>l^+%w3!S`z^Su;k~fk~T(ArfU-KmDA2CWY6qk2HzJ z4p|ClHYnwS3z|)y(K8;yr$(x60cDt4i}iNVtT)h2ml~8Hg8cj# z4vb1Pln1ST{>+dq3p=fH#((Ei$T!(Ch?vOCjGLsdqbBtP1Y?$;5Jx9nO>;GjG(%+; zI`EsDy2^a(LyV>vXe!+~eFUwr-_#vEZH*MoQ zH?xR4B{yXKTKh?NPWV75D#t9ddLicrCCTcO#(lwfAbH^&JRHnu{rc#zbNs%^X-;Tb(EUt zFA#T%Z$N=r<0iYkT>Wq|mB>WPCsFr_X2EDb>WKkggfX}A_BZDTKOnI$^OT1u zQgfpgq_{uv+)>vliE%y|f$!X;#}@MLPmhLv%9o>@E!`z{@(@0(V*kbzB)?zzys7A$ zOSJri7bL!a1;1JNijIJP!_TFyznoGPe=v1EM+zI6db1cjzH?|JRhUx9Ig|uRp@X;y1=bt3R9rII*D zBPy;^5g)vk79=e)L8ZEb8DYZ>fx=HDCkM+fFbV~>^S`}aI3_I5Z#j{wp{0b9|e zp*cDWG@g(_%NLwH%V`^kI7mQ8&IfLI@H=~p0Fy61WL_yOMz3yW>|kt&r}Ky^)SjW^ zHx+5;CWe?zb@5W4(+T{6Q5J_cp%3ABhOd7}Av=q;RuK|_!A1z*v~?16PO3%wz})$@ z;5n0C%1-mljQ7{Q%*u=Jw+_L>jrMQ&17BbNJvvnlNbd7I%|iB{FRcSoh)^1$s;HcV zxCz|niKD|PXI>gSZWhk1&W{+{2=J^-EBbCw7(D+#&#DaOzco#PQNo-dmlRD>93H4@ zPjd7LZZL!`T#6|aL8tf7r7#00!TCblt&$d*TdR>abpOuMlN0($i!$eVYi*=;(z(5= zGl~oioxI?RDK;IdKMY`Lw3-m1ppl@U5%RaZ+WHxgGS=BAxfPJrkz$u~{eHRRH>W7) zPSs#V%VY&(M^afx2nU8d0|{5I5l|5Hd-Kn@D|L4ad5*aVKJzhVP81Yk@*@>3^Q6XK zbsB4U#BCEGHq($q@sbXcnw&nbJWF-#VpmS_nEf0aD{2WwDg%xnHROo7QaMz$z67kg z?rHOvRQ4o5RRm%iN81di@cG({dE5pq8cM4$a`3K7VyDwj+lR9*H z5eYDiIjgbI)iu*Y_lk868k^B6%%RSzOD9k!x0||35u_VwbHR_!>k}~lQkYH#E}{`@ z6E#TrH+m2-B?R>F5XwQ)GjlMrW$#Z4(?JVY4D7z8wS`8-W#_?UkKGOpn8wb8KBl4` zpK>**?62EE-R~Y;aSOj>F=yyHPq#Yo2I~-|`^!%H^U4&$1YnKs^a+Mx^*4=rK$?Gn z;CLm4t_n*ArO(Ug{7ckktD}Y2-@E`nI=I5(~h`m4&8d;e`7&XMI&xdleAH zR&UAR4Sz{hZch-+O%@KAvM}G5CfjTmiRqF)*y9wlx?MqM4jeWqetBLs%Ujnggv;xCAQdC$rcuo`pU~j!ffa9ZdpR-hAxPEzYy? z1iGOakyrf}(g%JrdW+vo7fG!+ae$SJ%x}3aiGf%e8844mZKT z2bBgVXfK@@Y6#!+aTc8JW44}H#|vi&0K|Qj;{=hg8ylo?;Tuh<9U9}>+koEpu`rFG z8*kXpKdGO@OA7;8{m~B!MdzeEd^b#u)rUPVn40dPgcb*Z((F4?t6?mQQk-$x%kL*E zy1@B8gb?kgz9w_0%{nGx`p*K@p^$dp>afs+wUB1rZohm(D2s#3y2)hsRLzQpo;1xV zw0>A3)MbT(i-vj;IsARFe&ifu1&8lA5!Ebyuz%_lQQO7IXwHU3@@aamcFNQ1ioW_O zhQ55(619DavwfyMT+^$%zO+ekV+kD73E*(=6{z*M$VK)}ken)g&2R@gi^~V~hwmqk)- zDK*s^^iED)!`d%ur>Ch>#;OBKz=Y%7zch&k#>VM|J!DXCy)-U8D}t$lE9!Y0-a8W? zFIMOi-b*6N-qlj8uAiavcpKciqBq9`v98)%vlF(DM_TOzG$^b1E^lk!b7+v432$&* zVZv6ga|cxXU#G~`AMl8;0XJbQ#qJ&r`E9oxP%(HtIa*Z z_$sIRE~gvp1JjMxwughcOQ}(I#|Ziv#c`LFEpGZkyS={gtNAszb4)^YjsLVWCSCNj z)(Q0m^!?{0%FL!bo(kY>L(1?Rrgy_@^cQOSXin969(0I26gYl)dhUrSYQ5xgc;@VQ z)igGXdKD?l)={XS5w2!jVu;z zk45AkGNW+ZcEw|eMqoF_!}mg)=|-4fI5gj35LFw>Ne{l^rXAabr06B&QA4R#8AY}a z)bB9(3)X*-PEefjIq0h7oX{pYZCTDGv@OQM#Vf> z{u;%dmXL^;0_cmF5TA;MjNQytxxu&cYQpL12>H#XspoXsC$UZ9E-Iu5T38lMpCK@_ z&|ja;0uH2#=!1OhY_juAZBlCgPE=b!P*MK0<=(Tw43bnj1%_1~asLsX5mqum^>1&m zA%aqiiA3?X4U?Um;SRr+EeMo{Nj->=R0ib)Q9hrYKJKD1Ty@2G!PF{@UI|{z++pRD zs#_|cJe-_0h=jGAo;5}&<88b^*s+s#kdgik)UheGfnd|n5Ru-jUlZfco(YbFAyviQ zqMai?-;L0|10a$hM1A=Fo>=~KnxtyTG~BZ<7J(L(Z+gLap~xAJ*k)aA{E0L_H@WV? zmAzd~V(@T4%Z;4@hM(!6kofJn^6YJWqQApDf#hivd4I{j?^OOjWI2I|g2A6D`SnS%y?c={3L7dXjm4!+ zu1pzstusTw0a1WHc<5FIHPHf34B@UEw7oZs{y%Z(+fuD2t*TBv`T2o zux)1%^d9&E&gTzARjO2~tY9P*_>cACFM~{+yAQqMP_a8i_^J*PP}rCJobumKpos)C z8D6zHe}pcBq(710ZsopjW&cr~sOYHlrJ(W&KLzBDPYyIIqn2OMnc5tc8Ke zhaEN0Xu_Nv3Fb%00$)`i&zD=In;&?D#{BZAy$S%*|ClvM&hgS<(pLX-YXqI+wf;-H zfc-Dr`7eCSt%3aZ|2a2Q-FtFs5g;I#a3CP)|657nq@m`)rfqJc10Y>EU#to24>(X; zKD&;-T%2erCqRMYHZiveH zX-$x$%0B*AE2lrw_IRId9zAZuF#3Kac?9(-4oz!m%8k?ai8J@B zkJY*w57lbTxJ@>y-RSoz$Nn(*`uG$4kN$Fu0IP2?iRbyo8XM9@?OGe#%Qr7pzt3n$ zK$9^8@^VZ7d+T_jS2O(D8T)GJ{r2pKyKf=k_SFR3TUSvD7J&Nm8BQw@9<}C)Rh?d% ztzwUySe>*dcY2oL)HZ_>`48=)9&h2nm6VdSM{J`!94q z*lH%C@OzyY01Og)oa}Y`am)_l&d0OGGBPyAwe8jIAjcDSAI5s1F*9(`87{kN{u=rX&W~z^hA{u zwyO;w51C~~9k+;M@C}(rniZKh&?(61AY-j^y$!|eSfA9goNNHjr8WC;bN@h5 z{@w|2anVu`M^J3&K_tpELC-w3BSi;IDZPT|*(mpv>I}NT@RMJa=RLCJ1x0`rxe6nh z`@6yhkYc+}Y4mbB^|!p4$T~hKQ*ySL%YVLv!@k#EET|u3Si6*I#ZZfk-Sk|lsA6YH&9xW# zXRWs}%^{SQX^PCdFk$m0C*I-!!P;uexs|I1puun&-}UCeBeCsdgp1Dk)3FVhX9@37 z4um!$)uAX6Z9{5wDmyIyGq3i}ldIivy$e(x5;I`JW+xGpY|E+KSJNO_XhQviUjS(! z0ht+DYAOv~$xn>mAL4@X`L;Z1nX3$AO8Zm)w548NeYeK!s43C~youOf3hsR(_ESa# zunHBWkqu1$e7b#b29k&@TuZ#k4kdBDK_{`rQKz*^s33Dh;|IkS(mi!Yn(Subll$gI zqUZl|B~;P5W7Tzi*)2b@F_2@;l;`Gmq1P@mB^tSAL z1tfdJVvd%#ZvypxJ=?wyb9GM2Zl=Y=?C0m+Y%V26Sl${`f6ie#luGGs`JyA8y8@=oUa~!S8I(=sbY3P)ee2j6JL&P z&zd=0-jvs*r><5$^fCe}m$~D(Yi06Ig^~YK$E&cGX^#qTX3sARs{L%71P@abvRyL8 zuoOX7r`4wOTzG--#W^ja z82SB2#F4ktZ{Jcq38QFz{mt3Op+Q6z7AG`&Zt%}u$Ol=HkZ}r-chRh)zxU9{%c0U? zcigm?UP3l<3fax9J!0R5D45w%zXy|c zcj@I)mK}vGFANh zF~1~EBX~ylua*)ruzq7`hOccRu3Ze_g1)CVZ%(`dp|HAg%$Z_dN@89PTjyJ3&si`K zOV@^NN5=tZU%}oqfmzSS{ECtaZs;;kTw(acWo09@B?Yg=`?%c?dz3G1qQ8>dolTR` z*}6R7M^vk7GkhjTkPrDbJPB!NF9e<9$j75ciG(1j2cB`|;P}P$q~44aHO0R(K>aJV z#T`KmJwem9M5i92_31bl#s1SEQMs?WfW4m$dCUOp@lp;X@_((qCCk?CB?FmQAs@&; z?nLx4BH38!<%E5uB~L+LOg+kDxG2lkdNUxhMXr+rSE$v^e(R)B*xHKc6;@x~Bc=%E zc-q8N)zHlve!=1{bG>tVG_&?4%zM#}-^*msT*R_fHoFtbrilqL_@32N-dI%}fNUUh zQ^o*<*Bp{}AQ-||&e{`5y~4=2!)Vx2IFEUg|CVnnbDG8_UuZ!jE`&%@=fbolLsgHC zabs}W8nQegbzXXajcg2kP30Za9osX^9*(V0tRTE~by8Bt z4*jW4?NEZJ-daOn>6zDC-5*9PVXx!uM6z`>qjC&Ea0J|Q2mB8OR)S9dFV^F8#M;yT z&#)W$p9D$%zgUm71`eQP`yUY!r0W-m<%9kC(K5l9_GL*`{F`l_zM}^Vm_B?&T%64b zgOn^Bx(sywHIJ;7!bQi> zS9HyE)mCs9(s)iIshf)SoBSmcPPD_131Fsjs4FV-x&Pqkrsu7{m~JdGwf^R=$X1+< zx%ckGT((lgX`hks7j&vsq*2{8TfdRr(zb}i!D|LqEY({nz8ml4s>r{A&AEgm{?@dg z`7a@a$gAWO=ibPoqG!9A!}Ck{+mFeI9G17W<%$2v} z{9zAdrq$V2NW98nNL80qbnte?UZ%8vwOcepDD<>aX*8s?py6q%ul_B&=auo zmmjtZnf93Tr0DUuZo;wpbLW5GRn2dg_sa<+muv%JCBx~onR_a!KN(Zk5H94Nl+jU| zdt7Gdn429h+WIFRUpuzwS2dr6w&HLlwqP_H%%)pfsM1=UDH6~8NCIMqd0wb?8{HZZ zf;>5;Q*KJw3!RB2;c1}HW1d@Y3TcBS7~YEYo7zEl$i}xHs!;2il^Q!RF>n5E9b@+eW#urq)D+mNt@9Ov}4(&g+hwe0e?2s#G+btu{nt2bC_-(Z$ zr4-Rz3m^>WT*JMo4W&J$g^KL6NE$+BhgWGcIE~gQO;;=Db)HSy%NN;Clqho|g!gc9 zS>-TM{%Z`}9ROb;77UjSF4v)EP&JPY-sTk~7#^VPwT7gjM-4_ML zMZ<;G^0+B)Gk(>@9AjG_PI|*k&|Rv7T0vH(u_0YCx4lEn{!znVWNJo-WkSAMVIY?w zwqEUsmoyY^&=Fx9K`{M#^|DhLz8_I?mB3t~;ZP-0nuMy465eP}W&> z2jPODN3}D|zjT{p@fMFWQ(%gHDX~MrEAl6sJ!eh%Nr}Fkj#l8Djw+b#NHwR`K2OhS z#L*s!@0pWtTWiLEKeOB~&LSu3yugA^rnGjea^3p_ra4aeXyKWYE5+uY{c4}zTrLt> zb5;0ParIOiSg@ZPU72cd7#lM!){GU^FO?k~j2*2X9m<_@5; z*GKoJ3uzV7)rKW|eUPZXiZwReY^+krV7kI7x7Y51FUqk`7L@0$OUupG*YndNVh~Ik zPWwo=^Qe2@!YDr-7~K%y-5Qr|BTOv*q6x08ncSJjmMlq${H2-Yoo=7E@kB7SRv?RN#|%Dqv|g{I`FH)g#qfYSNPeogW_zf$q@w=PTYtYzdTCDkGON zg0`?x+0kFAeu_SZN(BNimF9AmGSW|BXa@QxI%w4as?FuFpBJY}2M_m*?g9Qhi##Ps zK?2u-d(M@M5L2XTfRWKVuB6cj?$lrWiQQVH*NNRmB)D<3DgX&?0K;NZ6KriC zHi}v|%JfTn5noOet_Q+rH1|YoNCk3(La5&W-BifxRxkYJj95|+_HIu6l0>GPM}s}v zq&qkl87FbMH%t3Fo*{Sazkhg|i6uEW&@BE0an!DUHY3nDN#v47E7i-o;_uja;W0sW zg*0uq!m=Nj*T5_H@|H-5mC>{en_w-%bfu#0P1L)dnmMG7wH!kudFVKD19b^<&5v0J z-M}>fcK(L!{ISevGpp4Xl0kp#&oN>f^l%7Am$E5Vo}cHBqGPKnD&4ZO$n@|qPsRD% zx)N7c$oB6v9|AcUgg=Xz!~9oeL^d3MI;Z>D6R7NVWCEfoC-5=%jF#XGh9A`|0#3}T z*%KYHOym)@mGHwM`9#9EGD0xnsK=3()ecMvwbV_Kd(9p5pnU!~uXn*7b3z_P@#rve zvebLFD<3v5o(8wiD7CPa@GGwH%J!3D)YtEv1eARf2s;$vxBKB&0tkO-5OyjN{v=`a zlTgeE$pKYC_!s5~&NydoachxZn~99}NWJ5rA5trv%}Qmql7#jM{l_TQXy!^y1Vg^u zU_HbEd%<1721be`p^7hAW;_pQp(^Ui|5Ck0CL1P<@nPhag6>nCzDRrFymIZi-7hx` zMt5boJBZv6e|y}8&^sSlF2P_K6iam{Mrk;Jumhm5N**7aDO9T3mXMzzALQWWPJ&>O zj&@|d`NW5JVHh*fGSC8G>!YYR-;v-x65!RuD7Zxs_%)j|mY6TgiO8MtL*049{#D9b zH}0WZs<2W;ZjfaePndO*M1n7=OiR+FGuk@7Y@6`ZKZt&i{QoVEVK%mq8G&hnl~RBs z(kdzzR;(r+%=&FHf?9masIB@vSpz)k@MaylDv{ z$5kJr_$V+?{^Jks+G8`~-A&xQ9|an&zZ;ihpPEKYJ7_sHg8AC%>z78fkdJC}cXk_k zJ!sD@GFHPo_uY5C36FSRmiSleKGtZP4!`W)ENg)E$f!1zO8GaGe~3#_$0{rJITxfy zJZ5GY9o9H|bdCzi9D$|Y%dGSt^E#9eMzk9`N7QO23VFFIZ_>?*QQ3>CF@PK=LViuR zbi~O0tngz(-jZRoS*9NrvX@+4-}|OjMkbh;8**6%I8Frx0ZwXK8lNIe`E_c} z+%Nx4%8z;<1o!juUK!?w+h!VF(jFYT5ofVxKdIr+Zyh1bDx%Q3Vt&F(3=3PS;nP&T z=>|O$>IWSXF0wc&=E?`pid%TdHX*A!8k2E^ATMWs`K36VlRIfmaSxQzkYxHPm-c1N z01*!aJr4-__wmeY*?OiCW2VI=- z0{4IaMN}~eV-VwhF%|@b1QP@V>Ho%K0)U(hIgbM4r~F!$XtNwV266~SCanHHDnB`C z>$_Qkv;`>x?5vK})umV?$NG$p66_3UC8_!q{mxZq@0E@3%g!d>4D??_9%mJ)CnW}V zCRny!w|^WL1Y~~lJ@yHxygv?ENVa8v;+Op}q@2}TQcS7P&8?2Gl`qSoZY(CvxC1;B zY+IZ;ZdV~r_&7&-RDPT~l9={9aj5tR6o-=;IoUp-#D023e7#KllSm`<>JK5n?^TEQm|e z{kj$uvUw4&($1)^QGK5Bt?CvWvYXus`{ELlWXKpEFX&!LsS1XKN!xuCf#}$8VVuYa-?Au|ET>7aSfXce`^M1O)mc?}xrlb2@q$QCe}-yRVp5E{_x&rChdIt))l?dUfyL z%a%wxk~f_EEVQ8)anfD@sxUVVQXbm+Tslh>F$o{smK)al+Yu@d$;Xkv#GfFAz8_67u$w{}OOK6NT zU|mm19PaajoTnq0EZ<`CPezE&3$B0g)X5rbG4&BjtDHC=@rCXOF4PHdM$sr+31R74 zDV(IvKXR2sX^Og;mz*jbuWvmOkYhc1xyRD%2n2GZ6-(-WkZkifhE=1T6Cq?*B&5_B z%aJEKw!F5Q|c0$^AI(?R|{5&E& zV&SQQtaTh3MB0?V>C@UKUUSg}Wt7NKDc3BzRb-(hRLbwc*A&2^T zdo5SLneMFO6MeJ#-j1-3x>UbG|A5ig1|EB|>Lx|S-PBGr<1R5he|{(2UtfMcu1 zEOg0N>SFsfB9-TwS7;_uP*(tDwX}+P+N!M2R?{*Lw}~%+XlzmUrKn7?w;6S$@^=g{nnT1l=mGw!=+Rr%6i-;i`) zB+q+MqG{-+`HhQA8o}UR>4EUL<(nVqwt*cE`G*06HsemUBFE5Hri}GsI1cG}at_y` z%rde~mN|}d1X(k*b>yLSse;xCH=Z*y<=#mc)0=j{)N{$jY{gV+bFYp2UvnRA2YMCi z#?gZWd;tFGQkL@dZi!$y)Xd|cQphKQFmQO4I6_oK^PHG7UF3+_uq(NG^IzZ$am8mL zUPF;fF=t$vo*?6xddl#7`kXwtN1>r>id~=jKWU$@^lgt}+Tpp{55z8IFGs%(BzT=o##Nd+5ePcqle<03q>@iLFtFAj5Pf2$3v|Euc?NoUZ(g2oOi zD7Nu>L3!7%j5B~PpSC46 zEIv{2UmYj?ePip_+lRV!kDDVoRylc-`+x=z=YNa6lAAryfm{w%Bq9P)QYiI#erc8J zFFkVv60l2sI2xmcL3tj|-(K(oiB}8Hq=4@6{N1Q2nc}#JCWv`b;@uvdUQm(kHivZ?jZbN5C#B` z&wL^3zyvdweKxH}wF+*K7^jz>nFKFc>UPauWSQz7zdlFLK?zpfsrBcbUeI8ZxB4I& zP!2cqP>0N+UWehMp1xTHMceIHbK(5P%VeEBCHB^XnVWbr0|`rXp1#40)ZFQqs$Z^? zwX2s&SlzgmOgq_iO$U1j%+n=gjRTty&N{i-izJt9%p4;Z6?mwd(u{N&5?wszkBqbl zwJL}VI2{4V1POQrS1&`XBKd6?y0(u|#WDluhoWu#P>V1*ez=^BRvNsip&OaHsLWUC zRAwWgwmE|Ep4AuZ(<4UOYEiN(%rF{}Dp#I^7<%?Ms=@#BdnYb>der;Xgi&6MmM24l*T{#bQ$-q%&V%taPD-Q$T< zDNx~VjR$-lnDZezk@v}g#<9*73{F(i>`U&}a{+)PC zX>AVL^NG<3c$q^$t6foJOJ42YI%&JVo<`ce^Z&!uIRPGHaA!`S(k0>Uyc+s#1p)&Vln4@`6{?zt_-eVYSOQHs^{m~Y!RA1t2 zb(QO`TjF3uA1f;IPNPdla26knY$flKvxmvh&5E+Kb~0_)$II{Y z)?a9?=86ruzJha9wpg-xUG|kc9Ucycz`Tj6qS3`TrqZ~1onH*@B;|}{%+nt6E%j9| z9a(;f%NLF=0Q7$keb?O;;|5x5po(z~TC;Nw#)f%P>rlX?9nhg#RrXq~UPgr}zh)$O z;tKo!SQ(kMzN^nVr5rwJ=e(BUiTl5GzRbuf$4kZ0x;B(-`E#WcD0o!bDv}pkZ>D$= zwvY)LObbvRU{1=f`J8;&un=)c#7f!dx3-4z$0`t=1GZERIZUFZkxB<5DEG_di{jW+ zr}P}O)!2%M7fBp?i^A$snhi)zimv*N^G#S8lhY5$%M&&0mbMrv&H9?c%2+f_S#T1{ z?KPeaZD*k-OdS@;#2qFLxQ|!txK`9mu=1qEHl7p5f>=9s7&;q6lis5EYlLQY=0X*G zG<$i)d~zV+pT0pk-L5XF;{wGKR)swDlwC{~b31qg6NAIk zM&{bW*918d{ISaw{$~UK?2MNcmbNKFpUs^+0N;7cg9Yl{$GJPh4dJrHh2%~-Vn;q5 zbqU>zHvd^Eaf|zJhZF;mT3>vv@@I=1{#%pKFa93H%lBIka4xTfxf-nE!6;&wR`l3x zIYopd|Bz8lH3H(A!gHus+RFI(kRh9J#QaE7CF^Zy>X^=3svgh#|!Wo6;57@ z0LU{5l1DO@1|O6PnC0a0qk+@#(;+Nm>o}DJwg+2UNUMDcwqzZet1@V>484Ew-jLg9gm>!d8i*>lK=OVeGFRB-mfUXDKqoZgI`XVmz+{Hyhg*Ly z(vn^2x5Wqp#RPQ3-_MHvq7;`rFt4u#16t7CSpD#_W&(caKlBfLUb9lJO- zJgZWEsiEI_M-?1a2UGeh^9wa0CK>!o4^Q~ss|4ohTIChnYZc}xTRqXfVtfkk28=lr zg(jbgjq6?*-dz>3m1)3QgSyo|FR?KkW;Z(p9ACk`nw7hqsQU|e?Q?H9?C>MGkkl04 z6aDp8EAxqG*+ig`*aUCs6h;PiV+f3Xp5H(#c|{8*KG3pUz>zUd6^}jTRLasRPxnwE zY*7^?2cGx$fdqPG=&wbj=oQKA2EbC#gUAWUwheI+-+bV01FKTp`XYs`T4B-`&6#TG zwF#bNeLjF=;TVS|GA`!IJo&jrTm?lHgFryUz-J^Yj%|r_xT2&eFt&@# zkPN4bM4B~4ul?pe2)HB@^4a0}7xiFb)=d|#Xp z0CBVL4clW@ctH*@aQKC~Xf|p2hS1Z?proAT36BT-Qt={!gyov^0L>e+vod1Ka0nl{ z5-IN_Cwe7CLv>?6Epp{APOM|w7cTxpSKq*>y;#v^7-dabYwJf~onQxf*k%J2`dPl# zE$C5`U3<4UuzeFss9m>!hsuN}pc;B2$`^xboXaiVfo~)@e@wKV>{8(VXrMiHq#A-b zT%f^fSIh-7bO;Fg^sWcVPgiDmeG#6h$>i%(1j%#jWI1>qsX3_~*Qbrnlj46&E zJ^&7N1|$EM3+m)Zl0x3-x8;Qfc@PLpHwzPMG1ztAFEvt zIL8CxyzUwaDcV2h!!lI!JVG_RiG(A=n>q-Ka^aT*GLHE99N6pR1TY8H z^I=w;T)j1?m!NJ1{YcwD`fNg&gkc;bQ1!OfUFVJ>D9%Rh(WQlcNUH=vp9F&w-f(E~ zKtb^;^hO$p0If@~7zPN9r+(b@rL~5y?7t6eAP?9thuMFh=mI|QW@8=y>Uk0Le`09( zOM0_Gw_gogKj0mcy~qfE^LhL$(9Z9~`^8XD^I)&^t6>-XLH~`w*OlMOF#p=rPLS^% z<$Bhn?px%T5nizbTTJ(r<=Z&C$Bn;IHwpcPmGNXL^i9+|SYWKln^3U>S zWG>MH5Lk3&t|QksC2mAr?jOd@2$oY7M~%2T4SK|w3PS7RuO-~4;*SJAntUS2CR}8A zU%l2}EacBPnF1Bw&>^-ME4oZNB3ukE`AH6P0)VuN&tXFLj$(1bbPb~L50DY-qVbj% z>I0S`!T3#BD2ptmu^G`JECZhu>mr?sb(R1~U`Wn5=a)LjJw1oFMkM5OM)kN%mLVlV zEC6b3NM{)Ca1`cR11|5DrO45SOmw2GD_zod^!ZbVY8gtqDj;XeBD?Wlx#Jw^uE6>e1b@Q6K2HV5cl3-kU=qIK{1JcYN9^ArKEQnN zBMaZtd@38Cj^FvurhbQ~?kB7ie}+?#EVI3BI_nfG zUx3Mo&?8>51RKN4G+90C*`|O^X2Yf~+SYcqJfXixXTbp!BKr2h*)b zJMl{)l{V^gkA!@;Faeyn8)cp^)vDw)9yhKD6!%X5d)Yo#1GiN$ce~uVR zY^g8aqIi~aaV9~f(&qcr_1(3s^_}!=^4{ZBnGs?6seueXC`sK&H71Y?)z$Vd00?lJ zv;Hk3aO5KE#DSZ5$ZTA5%xx45!%PWnmj+h8-sG+B*3=zKZL*`oM`?FckK(o zo)Lj3ON=!Olq5rR+pDVFkb^nvBhO|K!dOrT-|q0)1Vv)K^9*m;YSIMw{^=KmTRe}W zLtl1qmmHA4hbi>HrE(i6Kw@Oc!Y8_VC%3g%bWXd+kK3;ke4Ze*e85_6%n)7o0+Gz+ zKvod^ilb`*Mmxcb!95QO%l4|{ubu%X`Hi$6{|~k|!Sq#u{Fp!Iudtiu1}1@le_SR* zl8`@-{YgY{wEu4ft>mvjtOo%C5`_G(_$R;;WHR*)Dj+u5UJ+FoY0R?V;m?7LY#x{| z2)Z@mUNH;|3AB{D9J(kt%5DOE&XH6{Qdbp)KaD&YMehyhOF;~)Cv1v&b_NA&6YG86 z=jGMo+^%6Ca6ZTs&reJ8uQAARl97;juq3pX+#X*hIE&&qA9+*xKoZ0p78Yb2p_f7t zDwlow06^(70&tvW3%UBV3bD$%{m6c`3D>Bs7~Lgb702F2{oHdhKpZUMS?NDcdk_0K z%M5y1<%%L-NOc~|$XknA&2-9`>WMXM(2Q9ByOz85v(|O1z6Y^;0p{7^`hFGR8BZtL zjE>9A7ve}~(^f}5p0L^OU-X!wg5BJo*pKMecff?T2cH66M7G19fwz)mOBwUm3u{9M z90vU>;?*2B8Xlc5yR9SJ$=Awbku#e*8#g!2yBI27l1C5ymx$e_;-d3|4cAluXOc>> zA#riK^UJt4$3C~yD@k=sKG`zne5f_77+QkR#ZX2$CQe3>Ab#8S8kMbxU_uj)i&Bcyg5aTlLJ z6gPEAgWsBXZ&oA{ejyld)i>OG_k)-sc_0!elDt7x`qQiroHKd-({|s~!_#&jXw6It zAh^gK0{FG+e3hk0St3L z(Dl|H3v(a+;;P8O^$qO-7L9*eA^%u`s{qSA5*lrxXMPlQ-5H&XB3O<__-c?JT}lpu zx@hzQSOifNSCK}T4cklt+QksQaDvFSyy5|90w#f)d^{hHr4Ed`LKwn4L429+Q3+@Q zI-wDTj5wH2GbqC*Aq1{5DyxNn$QziY226UANS%BflwC>%Vnb*qn}7%$m<83w;v4vX zqJ3c?$&YeG^dFNm-VfcU`Y*B%Si%H615i(}zkk!e9v*11K-j?{j|L>z!GS^17O!XQ zuZp(VMG)6;%UZq*tx}hv{zc1LSad60(W4Yilc zvQzRGZl@+6Ly;;Y+?8dg$cT7$1?A+Iw-+Je^+`10-#zJ4f2I(`+Yhun-waK~@Ef?f z6K^k$kocPqWePxyCL!V;Djy&zTruHsC!K!Yh*8(j0|5y>EBzP^u_n`?fX znQeW0my?BUo;3;URM8C{4nY>`8E;L&<`SEpcjtFAJt=Rm?%;<4Yj#^pwV%`!nj3Vi zIS~GPl0HF*i;2nZUtvUNZ)|37r`_>1`%TFt(H@jE{4<3ZGRSwxP8wtYe+mp2xn(Bz zb|XALqj5!%&j1I@W#m40MPL4~d;fUC7c8E_klhKt^K$X@MFum2v1q(?Y+Jmp4o^{A zUSl)fwyogBbZ$_Yk#(!F#hJ=>hIL}jfzRZQqZV7%YD!4Wg3HY&u}AKzDtM=aQJ?~= zd=~u$bEA);v5Q(8M2j+Dm3_;!w0W9%hQ;fepmDoa?~eLx4}^jSE;p~aWjWG-{$!_W z!_*A^S6#>>y3Sjd!w@kvihk8InfTgS%5PVGqIINs zIPI_y@dfy}fNF;}M0ht>p*xEKnN$(=LMn0aJC@^dG1;|6kVQN|Ba0icsm)mkCB2A5 z8jAKBMYKo4!uE#VfJdC?)Js@Qx>>i}72%qFolh}tZVI@82;bYcS!6XVV#1H}LDG?d zL9p0?p;c})ebqRN2>hWGfokcLJ zjV}_?DHW7eP{m0>{Wg=r)}*eZYLK70V!!h?q2H(?6UX3fX)i7$;b??{p84+b7>99e zkcrT^;oao$>}puPQiI#iCi_#@nfXLd5T@pfyIU}--{=jc{NxgzVUsv@4Y@nPtCXFs=CT)%fJ@Z@Xmh||A8TDV!@L`AqqjDot z#Xcp%s5Lr3(46Cum^8hZ>NGASkNNS$91QXWQ|^Tv_1w3U+`E2>&TMf|cB_!2%oool zGkLH8cSE&L#W}|QlO6OMqEG#n*Wi;tvO>9JD$6Pioq{kg)Q?nqD^9wujMJ0PFJAmZ zc!cnl5*=_Xhc%{*4N$(-{E#2rRsR6}PN}b(i-`b;#pkeGM2E5VEX#SW8s5AX)>6~1Mp=F7bu`}&^09DF z8N*3z_HHQYtSvZkQ)&AA724Lt6M4DoasJ7JKcSOR=WB!^Ic3OoTv_E6#&usFRn%K} ze&-LEPDRQo;=Jc6o1*oKZV@W}pqGZ(<}o?MbC%iZa;8FPmv!c7*lgQ1DGtT7fu_jJ zntuh)n7fAZ<2AD{1H}-;mf3ZB6n`pC&Zh1ZGKTw8S{^)-N@($6GyF?$rGVNhBBX1FYSTo z6WJ8+ky~DXKFXelj=WANcjTjrj!uK2NM~G2h!u%6hAV6SIC14XD-o?* z1y%mRh)1O4{Y)f4q13cVOQ;_f+H1j_F0REuf(xTBrjyIsl|XS+x6VlV0!7(ESunW7 z1lwSA2`+7}&=?|ib_3?5S~{o3ZB_%oZRwd9PQt2niO0bkZVP4_?b^D^txGw(YA9ry z=QIQ{2Jh@4x=ClE$(Zzo%ol2jcdD9+|UV!Jy3Ju;&u@|}r$if9hDNmaTT>4G@o z2YEH7AZLO}FyheJmyY!Gm+xu>7VSI4$vEIi))^{1RJQDFl!-{=LQ1-tOSBRYBAZ@# zE(oR~Kai|UzSO6YRpd5V#~1rk5HVF*IS`+W{2DK+S>tx3vScW5fUtLKOmwk?xLmqb zks2al$qi{I{D5ANyF-l=8+Cbv*=OJj;7l^8mWNubvPzq{;#^=5DkB~Ct1h1a-G?Iq z+q)^nw(CV8$Jk+urVl@Hdaeg(IpmJCPEMbbqrWLh!lba+wp0aWYr7LYo*6- zP#pvbOu$1uyH`7icb}6}2fwEV_Kyy@_TFejA;7txYT_QYyFl!3Atqz^F{7mvgcK6u zS+(RkrXzH7bw~8zQSDWvph;m>&E&AS`J_D2RW?b&!J`l&P;v!&^+2E6H*lgxN`TPq zO5nK_F~XuyM5!VeCZzzB`o*9jYL`SUZ^RqFiFRU!t5lmSQ8LQ(r%$Xf(OSf?v`;Mw5=&sJ@rS{3T};{Rynp!n#}kUO&)2Qs0_DSLWF_&SHtaYY|_Wh9*;7YZKV zn#wAtrxh~L*D`cxk$^p!lJ3Y^0wk#=#Oay0G% zt$oF|8tkQy@e?@EoG%`plkCw4eeZpP{AVGxY#t3u_!C8jpIijXk9I~AR7mpo&#M`_ z#Qzl}RT$#`cRuYF?;PR(>k%?^i(koS_(}k3{(5>PC8X;J^aA>3aOC;`k<@537-8v~ z-B$g7A{*qJ;=bT{gPQ$f!7?TvWw)6z&a)1ICc3RyDBn3#(>ad4+`O#6{J*~L(EEur z$k<31r9{<4U`bF+upUgHp1H!fuV81&!QzhjuYu|X!o6Fzz?YOYDft!o<}jKD->ZTVA9&OdnzSge)GOq!mH;!+U1-KEqL zB#f9aFxs(PE^umt1zbIurc*GQsssRN(d62itVZL~R(bU`E)=+$r#~LzGRgG@4-}k- zYc6DrwjJY@*5x`31`KDe76xJRc;{xMlnk|S@x3_?8>kgY^D5#S*1J2c$iPYI)5nF~ z_I@yNV{q9gN#L^$qt$ZGJ&{qw6k)<)Li8tC#p-@z<5aAbQh9MK*}%@40?mNEAVmLW z7rt9#h$cK&f$0Nk(e$MirWkG%?^=7Cw^|KiLY}G$-}Wfmpmh@R#-iX*nj8ETv`==5 zj9ei#of2JPTWL7zusuL!gN{ifzry8YmSS#{TX3hjvsE84p zj5d#&sPV&wd8cXRE0lU_c|8CXgytm2gykW{BSy_fbRr|%QdS&qYPn4zXtLrGKB5W^-k*tQ+IJVxos@ zb6wE}CY)agEf&mm(G~xtzExR+_USs^`37FM9RWVsKO+2%1C&~z)hNIl!UR@rGAHgM zeh<+WnrbGaN2QF`-Y-${rQhNj z^H!)vcE~k$(3fOG8_qIoFz2$E1ZtXf zF*`l`Wntmz@P5D6MhIl#ycrOu3~C+Yp3GKTWJMGy4XRr2CigGHcwDX9CpX$=0-0k- zX(E}uio$!Pr6%g1mSTt9`bvo(AP+oj8DEm?OFt~J!Rz^!Mbu@Y3Wcu>j&}1=URU5C zn?YM4r5na`O7CaDHC7rhWzA%E-Sc4odKi1{B~mdZvhFf*6dNXA>CWUrW|0tr7k5=w zeeeF|zhv;(@sKSM_SLXR`<154fXQyVk{(x1ALGbG)?Qt4_y+^qhYwj8aGGI$YCAbo z-h8SGkBdK!Z!&_pFsgBK9r|j?*RUTcxMKD-Y1E)i zBBamhn?esaTG>WV`y?v)I3koimr}_T4cBPX{#%?A4*!Qyo1WS3x7_SRB4~1YttUk> zmmOGOv@y*wc~?W2WpK>`Hdv<#`q)qJV+Ga27Fu!nFM45|{ox3C*xvwF8CHZ}ww?CQ zXZJ@d=fU`fcPyT5m!bv%EHDpxrDyOZl0uJY()#m1k;Nt9&635|Y?gAZkTZ1t!Y1iz z@I7o#B*MITMbR}wM!4gN_W5UVdi1iR2v3P(uXo=LyLX#mo`@`fX6`T5%S+7A|Ty@UhZjS}X(> z9B2=Nl57yUPRd-mQGq)i(ff_!w`W%8#N!~4!=(pED-)2>|CLT26D^PWksL@S18~_? zL;8xVIc#rSiq#zEa*$5=Xbx3liV2oAP6b zVwwL6-oy7o!+Mf(Fj-SLWXj!}>$uoxdcQ2=ull^tGxP^#3J+&dFuetXmt_g7A5Tms zHrAHFNFQnss=_0Tnt>UsRO+G-1&q4K;Sz5hwv!)l2qZBFxW{$JP;qd<;CW)d6uW_hsC4Q1GAp6S#S96X?uiIz54sb79r{c6{ zp=y&?ZCk6f>8VZrQ^+{(r74PLt;MT!DWYIW2M3y_?WVR#&F29(b@&ouJg@t!_jI0E zS2y`p^1RKav@$DIZlM9bDd}H|+^gtyy*yS>r9Seq`+AY1WyhOXQriuJm9EvMg^zo; zqgQ=srO48l^2XsA)F4z#E5KFK@4{a%j$~*ScY^jC$zpp8mM<51s2b}SYrkj9G$C4J zXqC!ROa#I6R1WqEJ!d2$$T(-OeJnu$qip}q4?O!N<$x8O+>Uwp<3;TTD36uy)u+?( zDq|J3N!H>w|Ao{5cMPDUo1woE&Rt&o<89<-BCnG(eA@cTZ zm`(JMNE`M@vh&!}aTo*E%RR_?Y&7ZX}`Vd|Fe(rrdu ztR_nmBu`Q|EE)slX^#Woiioxva=X@(ih_=H4XB3Z1dI{EmN?ehMuycPA+Rs;Ac0GyjFbq(GP?jnO0zJt zYpVhD>Mhim)kGw*yl#jEa7$;%!o1miQ|bUlt1p$LZ@mANs@Y6ar6d2tt*?I;R!Afp zqvIzVNkAt19*_e{RP}$*H5$L?dxKJ&%2aq1NrbwUFoqX%X-K)eT-I`YamaH4{`p^z z^l67kz{q!hG-Jk#k?#{B_U*y!6-2PO?Y`*A>=yU))-MH1LBRJ7az6zJY`rqI(KH?R z7W))Gt}I25U6F<9$S4hQUx_ceJu1u8ioQrIvKzT^VF|$Z)pve3*+=riJBPY0DDK81 zRO2{@qG^E^9pxC8Bt>2@#lM`yooq8v!@mys0WlOqIUibK>AA$giv*4wlg}Ew^W>@d z)MxS1Ytr1#@I`;=v1GnrITbm@J!m^pk#BU-<)089^ct%FoP5ILo?OcW`+#vV2w>sA+#Wr0LJ_j$CwTL0I+l%_d2@M^qlQYstUrp+P>56x*}07nnWmI>)z%uN6yWxC;YJzLyX3F->~2sxWOqz@08jV6CIgbopH7SkwQjI*OEdL0 ze+0|C>}VUG!O!-4%4o{WsIWtNK=^o88C8(;IR> z&a{@N;5ph~G`#|lUVaB$v*1Oyq$-Zr++Bmc9`r>}QC!LxK_06lh2zyM19z?mW`a3! z*dqMg%+J_#!!Mg!F$eg1ktc2IS2UiPBl4h(v7cc7sfK(nRA%QPfPg5Fldst+lWz|2 z05e)=o~Y_*-#r{N#Y@1li8SKQVy8)NfkC_)w&K;z;x!nw3~&<(2*s@K7K=f+S6vZN zQp!%E&X{~E)qj1q5WmAtUO2tD&U;vsi|s+IUk}rtceXsAAISk9_m6ErI=7)QK3n8P zz@D=0k`mM$DX3xx=A?|y1}NR9F`d#P0G1$N=&%^^b-E%D-ItUoqk0euItiR4<>+6p zOKE>6%SWBSNLftQX-sji4zl0Pw_+f%ZU>+UOvayJwt~XFy~PHLd_S=a1q}iz>-7hd z<=#?4%EBi@r)~!XG(UgmZ)JRX{P;@--6^f$k=(l+FK#`Or%z+6~lX#l0?$C3n zEp;M{pkP_i|9F7&)bUqUtXmr!ZJRi%TZ;8bR~F5=7`9WNaimpUmpGUW_>O!^zH=9+ z&18){ahr6lGr~40obvs{3}~+^0Q+&7nYZwMAO#4t!mGI>RQzWHv7LTZt<2&Hl?=4C zC2wq-f3JbCTp;0G)E{w{aG3pSD7?S#_F>Q{$mb@~HXJCIf;-P(^mOyCcfvBmI10^Q z)sLD`GsGiq>9_wV8ExCeg<5p+ziFhaA#3Rfnr1d7cm4`KKBS|racm!A1;kN>tML4) zn3m<9)SJSezibh%pb|CUV$JhDOUAq;q9yAlG7b;H1owacKGAc&FgGwrv(ulPVlmM1 z)}Eb$sU5O*A_{-jvF5EcbaXPRx_8Rr#z)hOOzplv%gC;}^4MH$b&kAWk%eIxF^4I% z(wGk_fk`V+A8^qt{3}t742a0p$(2K?{)4j?T+V=4o2}wj_olB>qr1Oc0WIsPw&bF& zxmj41Rbi3TmZ_u4;JxOsRXrx%lzt0S)h0VowN78(xUKd$K_L*{eD7M++QgEBH zwaRk%lgjF)75kYMI{?nh2&_)N15VA%HQut5HN0vyB>Q<^I%WphzphdYH28E7P!ofK zpRSi`XQmq@pLXu@J!KypR5dw@YB{Tk6^7bEgq31Rb>c-zej*L_EKTk1QfaDVS^t~$ z^DC=$54sLtE${5UIc=H>;#J0(9QEl$g~X9L6o2cubtYd&7a-sudaknD*sn5C8WDS} zJ>Fb}>MiKmP~A`T3$~sDw@S`66R9a8ac1vadN^~70%9@X_~uuTSk{h*ho7jwPW=*U zV9uAtgLNXt?l21uwo}fmn z3#h?`QPPA$c}b+mSxTc<<9JEj8dzdr6UND50=1|$X2tG6oCZY9h)*q&o#B;`roodK zTPOOzxmv1wxms%|*Ta9(d?;5r#h&ro8RoC(lLoc;7XZxTzZ(8x(Y#fq%yVX}7~*`Q z?CsPsy;IG;F>r)UPCw>+*z%;0j4G=Kxer@i5$|iAYb%TH1bAU4aS3Jh#p^gD+3$MR{EW3!}`?2tR*{Co#Ba0fWw~og7Sdcb9(&&m6iI<7S<%moJSs??8+3SJ*Koh zXCQDgZw4T@XnNguRf`r?8o~T+G-8PcWpKF%lN#{g23_2;I4hMX^oMd|Jp@}J$R&mZ zm~;RUJkP-Da1&`jq25tanNwJOH}M3+jVu}#aHK7vV%zE42>$RJXUKcUSoBnA6#T?8 zsIlHjX>{V>sRJHmm-Gc6j~>+xKgQ#5)~M6M008iPw?RixmNU7Rn>|oZ)H{u8znJ%X|QlpLFkzf zgHrwcvJ*)$2X8$5H$U-8bKc)M;=9smUSYRqx|c;n`icnti*tCOiTG9UKW{&>;oicM zpR()W=LY2a@AU-9?<_n3d&MOsw6Skb-0f9#Y?_F8Ik64UM)*YHa_HG`EXph+rU6aN z)#lEhI6)Ty=B`pCeXeK(ggA-mo=0$&%A=9OUMLW(+Krko+H*` zI8B`yc-7v0T#nqFTJG#EgM&pCA1|!?9i5b`an~t#`UR+jsYYatmU-Uj+TUt2ofCo% z8O73!?UKrkEuOxBY)pFwoDp@!q)iovT;fS{(Id}8ilKZ`1ftb0qE4arfBuumv~lZ* zsXR=(klQZT_{T;8&7?eX1d%)|zh`Pjn8$8P>mr|@sNZ#wUzJqSS%was^{^h)%g8xr z#?t;IEs%1sR$@bhC1|8?Lb&CyFvT;2qSIluN61248S%vd#KT^{(jtuC$Ue<8_`N}~ zDSX<3jnA=$pmB2Rw?4raKdl`%N?}wde|zb=^`Y04QuBq$FI12BK&Oc**Xzhw+9yf;K83b51h=Wh2&VG<+1b|eL)s>VNuCli@f_oJx`38 zgA8#vFbz{nQ&NlEna70x{bd{^4PJ_O5MGeS>mt`$FyRr0tp~4+ZiuLya`5l_aw(Pf zJqYam{2->EslP;6wH-r*AjzD~YMo$xw!kb4AKin4$8OQFJE`^{%y1#)I*7q$+{f$fZ-l4l<|srCK}H*HJ_M@aZ|m}IB4)>8ZAHH^zH*4C#q}w+(2LW!p2AECk;vl6e)VDMJB>;%U6jQ(JZ3n)qpM6Q$YLF5k;l5N zomp3u6Gx_mEoCgt1L9S2989zZy2Es}lID*ZEz>(g~B zw=FVw2u}Qa$^&)EsJX44juqEc!zKU~H9=i)rUS0Ov+d`cr(F;`bD(j2&vEKj2)b{< z>TV>aKBmmnJ1aVuEB3aSS+0`fdOOZ^M@H6- z`HIU2{Cl+AFt*8_I~e4D^hXXYL^G1Vc-=r@{P3FG`MiMt$I_|7(P#0hB}^sMjw%=Fdg+x;hH05{*6xS(9_aC016ln8wZQ_%qq9efiH8(Jt8EOYvx{T^@K zUTxSfIB0@Ztj4L$57IWitF`JD0GHe69}rQ+`H1cQvYEnvUAHJhYQ5Wa+bUX?O0>c& z##mY&ewOBCy=NhgFQq3Da)C2F?gX78j@T<+Q?Xbv>Y4S>qUW%?o`X?iMdJmkw%ky* z8uW+ia}9QLEi}SCv!9hxw^`wdsK*MUs=#MisDiFVVPk@IH#|oj8H{c;fMx*w@l&{F zH}RQO`&>d)@Nq*JBpl|W{zch^FL zlOO#$wEam3Z5Y#57!#=ooSx9A5Js>F9~)Bu95Z7o9Gy|3@gZQVjJH9pC;Xp>%7+i_#t;P5UV90QL%j4oD1$8};XDUIB8m;;1~xt9e4oj~Y5w){0K*6+Ss6j#2;0Pv)qbm&UP&K>`CW|! zAqB;icyxexm6Kc+B$G#cl`RQ2WkQmCaZLG#1g%%BYFgg!#DfRvd^duRoRh1!{eq?gC%W&B zbyq4@y?dO&4fJ061FniNNRR%64Q>Scxtj3aOAgwdg@zmP(^oi&6?gi+{RpCZs5XuJ zkJ62YkzUhG_%ROXUu0W;8yA^3pi^`Dh85HK?1d3ovxm0f`(hb!PT3Za+E=q^m2RWa zm8oR!4E;w>B#}sXUj9;CPj`|4p$#>Dv{+5WVQ0R})KT7F;ToiLo|Z7`@X^TaC-o(b zDLH)xM&qBbSp|I#ochSE#R&fZCQC5(V;|HzKF=4pYBF`d==+TAH(i?LG`qaL#{&XW z0?FxYy{79ol1;_IG*;m0IO|2DsUf#OA^r{+QLVYUO*D1sew#RKPHVmRKc_B-4>*XY>F8BoW4tYNRs{ zVHOW@@qrwSLgVeK#Y56~7U9>tCy(Z9mNG_mf-b4T3}#2oF!p9hGl1O}Un&1|B+;m-6b2FQv|p zXt@5*BWon@uMYNeWZQorB+Gw6$o^w2K&tAlBX4|WU% zioD#oMbO634#Rvs!_n%Nhr~Cfq3^;lT8(Br*~5xj7p}K)x+bSxdqqU+eR$N zF2%fL?vHBT;YwK%jG*bH==gpy-9jjre%cGigCO%s3JSCj6~Q4qdG@$ zarG$UXxX6@1vxL8Zh6zzEM=Gb0B4JKZBgQc@W5`Qcb^?T*=yTz7|#(LRxYr13a z)dfj=Uw@hMZ^SI4=U`WMw_TsNWljqwdwzLjj61NZTN=BoHeC!I@rwdG`17!2MTh&nAtg$TU}~vQKr3hw3{;2MInvF)Ypozc}?u4rZZ^iDn59BRm*fb`Q_dip4 zk&5^sF@93o?5Ka};(sG;h~#`}D1fz*-bmt?OjahR&re{`MkBwG-5%(_H0IX&BUJ$) zY*~)9hD5|^EuSO_g1LxH_Cb{KE0pz_M&pfO z{s4GlJD{;K|IeN5h3Ql5$PXn?MNf5ib@!FE6~#LIUr$H@+IMOMJhu%tUjR+^zO@F7 zJgb*r1V({{Tk5ZJ*Ed%9@3K9`*B5w!wSog!eD4>PA!B^f+Y?{Bfd$`-G3FJ#wGcGT z=ofOyF|3J|;Ud#+ug`teKK7Ltbn)MD`i1Z0hBH`|*aa36Z{}$3i6DJ3tHnxVZoY%L z<}nne?kRs!`_LNFohz~HxBwL86!~B|#fQJEvm#{_qpwqZ`52Se|CUoEyDv*MP?Vi# z(5kX!R!*?t-2S*{&(0T%jhXle%eXIBq~cI773+<;kl)y69;U_!m(%7Oyu}hr{VPFR7~ix=ajWpKTi3UJcIPnsr6x6Hv+UIS;41J@Q$R; zy}%}`EwJk*RQl*tJ?PgO)HTW%wEekty-)D;&&^91P9|yk*pyIzhqIkG>a4yT@wK#T zBvS+`6Gmn=DMqi!6j0Qzo$tAl7O-uzjHwmC{lHMwj zxJ72llTp=oEWOTR$^p0p8~IVTu^TYgz)YQ4S5u%UUJxF;}fsR~c@%w=~omkF2u0|68rm+5}KRRiDEdpj2Negbc1Q zH*IgJ_fTZyYb3q~DJ$!4l<-Sq7cG|K2I&`1*uu0(21Q;*57qH2&z&{dgqeV~hO&5{9JEwA^OW@GD?L4k)>719sfycy9I z`|~FM7L$xfD)SBPY;CHjZj+4#vrMzYv2(O;1&gj>mq#E!Y=iqK=4LR7kf!x$$(Wem zAj!~8l2D(!SBXM&%MLS8^XCHM=z-rr!Psuh zqSb4$cPQ1{tX~ZA3{QYki$pkqP#IuiOJ!J-2ZMEl);U1y%zW75I>2>BVs9tqP8jA2 zD72Op1_59&5m1olz;Y;9g~M1`EHU69RoE^T%&MZ`bW*qk3G7b1Ar=*jYpbGx?J1G> z1|uwlPS&leS7OLrM}MnNx{pkA{DVqj1-G88ff-5d?bw_lC>$mqaN^{A%t{oK`!q0q z7SBxJp2^bCTeu2|64!*!bm}JZ(BjIa-mgAnvj#|5P{|*48^4A4UB&%n7+AIw?3B1` zrVCaO;@F*m#vo}~aA)W=sz9G?l6%&T#1S_)$MjstEWD$)H+*SZC{8qKZ?!cv3c_95P^eAt8ECqd7 zbCmVpU+s!Yd}tR4NdwKy#qxhTg5Ao)+VlW332U*o?q%(~>>CbJS{_&^iRHxlF3iZ} z?>BIf&_hgRjf)8(Zm=}rTg*K-YPk9$>owI|ZhM3DM`0H!?ZjQhV+pcHETRnQv{3lu z(FY|6BZHMJqP@hLG=+{hE~$F*Ud^j3jXERt?V;*1tePDql`+nF5PB2mcH(pxvDg5Y zSQVd-zs*pgy6U4)mz^55tcSWTJ;a<;l3P@oST4!Fn+e%RHlhv#mtk8pZP<7C_)0ia8Q{Tlr+CI zxZIP5eTbEaTs9h!p~#~_>gq-pS$7NHNhGn-bI9`{$B;*PhN0k(u+mtnVZUJ1t{s+z z@zKOv-?645C=Zkx%h1J14DyfAFG!JKMJX-R#u~ z_OcjV4y_$Ji$2kcQ>57$_`U*;Yp2c!Q+|z- zFo&x$9BHsP6zTcw*=n@92FQhj3{kw1$YbTB!+$U%bP%u<+yX~8Jn?41tDp0INYBgI zA%BE{3>fe!)H)F$DN-wf=&s=U4t4>k`cFX!OG}pPWZ*Dj>`*)9pe>SPe2)pgOvD#y%#W6X8$i z3A&YV)f{}Q9q^e#ZSaqwr*@~+f%O3U)moA6M3?CMf6BV@cqq3w&d9A~%Qg)zF?N$B z`=0uVi%6D;>_U>YY%wTX_WN40jg)IEJIR*aShHri_GRocQ%FL;cczlL=AW7Od!Fxk zo^#H7-uZmq=RD67#~A-M?lH>;pM%+t=F%vY82Qt5gEX$aX7}Ht0o z9`@nI-`>M?51&vhiqlJ0J;Nr-8{e*Th;WzG)q3;Jsf)E$PIi?(5d2e1t{!~+?-gL> zgUe8LN|y1o)jt{Lxnq5gCTc&Yjq&*vct6|?Gzg}XGOWs9(6^wsNQa{o+NYk;~AsgdL*A`0%zG2Zsk@72t{ zRR?_aUU3a2bjZY;X0BX`~orcuk&m<_WR6?>?mr%;XQ{&CN@E$+~qlc$&vy&+!0P zc`wpQ-?!n!R>|DP*~}T1*QW-&Uj=a(qGA5NWbCQ-KxAk zW8h|7wu!<1`GtOggBuSShgXs~AE;)c=!`yiI-=I(4rUb*Swepo6qLTB83^guIJ-O) z+kJ1`Gg_Y!%Y*w8;z z<9*Q|Bvc83c3ul@H*Ln~9QgeqhmqNA>wK#>*(^1G#e^SOFYyUh04U9Q%LKEyxjst} z*k*6BTfsEZI4g}+i@?C6o~#NHIzy>fyD5F*t47?JJyHTs;*hlNVOFAk|BI5pTi$(Z z%WX>DR`2Oe{$&o=M@!gU`_b%?P8s%tei~IlJh$wUy$+^m*t0Me<++*)CvLwI|)u;>EpW$7&Hk;dR zZPxTwI(o4tVDVk7ZPsSmwQk;wUYYLCJHr~3n|unohE=eW7Z6)w^t)KZ1uayD!axt~ zL9p(O%=_z`_Dh4<)ZoQYiU}Nf)}K11-)O8jlc;CN$G9tdoaGve_VU=>QaWkO*<30T zJmu?>u$9v!NG3^xEdNTH@TG7+MAk;aptryUk3qUU)(~)CMX5e|^Gufe4u6Xwt$L1O z0z*maWdm9|abtDU^F6U8rje}oh8cJDeAw#a{HLf=cb%Dn)|=)7FfST9(O>@93$kTz zmKhHc7!)iPhEM%nd-B$dx|S!zi?o(zaX|nqj&bTi6Y}*9Nx}6;0?deYp4`}%X$JH9 z^#;DQR1&7GA(r;6UH$QvM)@_pAreg0;X%V}_vvlPJ+b7HA z0L)d&Z64{@I>FI8>I5_U95&~j0_XRUS?BI>L92%L_gp;baicnY4jM5@BSIzYDiQ6I z7MO^rlE@tGWW~C$H(geXtTqWv411hRF=TD(jNH_yX}$g)fa0V)(~M|ivT=f+7A+IT z!=(&my>f7$JprS|@{+5Vl>GKW-Q>LsqTQ1-8`8F&OWN%_KHj=E!&K+ISj)8@*8XEr z5N}>*aVx;H2C_R%P9-t4;~2hliiz$D&73vof{tbx)?M?Xi)?#J3k9o9w-q-+%;QNA z8aaR4_naHUzbh;BCAuiz)=9LVjZ!k~A`6Rrc!ya)p))40MDd<_VT#B^Zpz)->@{Um z@+SMw!4wamPC75gRlY^lHSJV7lQiWqNcZ|FP0pg6bo)F`3D;pR>}xlddW6~5HPKDJ z(ZC6pecxw5=@&8YsrGxtn`ZhBUoMW1c!dl>blp;a_XQ!B5c4@9+rUD!BSt#&N&2hh zmnK%@v;+L^ISSRZ{iWbEpnQVHoF)7sx$uSdt)aCoUJC)I@~s!X(N_jyues%ic(g+{MWy|e54;xSoK*<2$&W`6@5~h5D2+Z(ZR83P#JHV z`{{yLh#h*mLMRHJbH`sxF(TKj-iJZO04XlUmCdw++t{I5yi;(ekXox!`b*#IiiXrO zxzWyhi|?%uwD%IvxM^)SHKu*7yX}!+vDVf0Eq##QKCB#afTLy(4}>$`;2RK%I)w`v-X3OwZc#H*fKd6s^vl(EDGJ@9-H2I$$+0++05ORty=;FADAt>I)~=#ADAtW?jo3LlI^W8X_kP6}Zl`w__# zKEXjs5i0}(S||8GL40t}iAh%Q7ssUZ&ugbi!6Rh`;<*R1DoII5U}PjD!a(sP7a+32 z$@4p|$DS1Nik+N)3>yFz`W zC$BQ&dU5cD>&QtG66M2wNJugRoKGK8kRCjUpS>LxVn+q$k7a=7`GG`nA|e^}A+czc z{fI82+U-P??Xy2A)Q48HufZXvT!%fK2bd0<{J%n{n2(uC zRG^DUFHHC+316=Z3ic$s4u??65J2~J#v`^96@DPY!I1P_K!XX!LfiTA*)C)qBCO~l$C$Q0Q z4iMhJhlELPz#)yMAjo$p_Y{OE?htyU?)>xEg#Auq@n6fC9SEc!i7k#=PLv;j$a2Q} zKPimI^c=>*fdn`a$=L%qHzi2e8!+JZ6a}Q$1F)YGB>?!yIBE#Y6R4lUFWJZx9HQn4 z#88R>BGdTsN=?Hd1KuD210GBZfWUJQc!C6G_*j7@dg$RKd@hf&#E8)-5L0xI}LDW)Pd;|UF139#CcmEq zn;>M<145j@b?e{vyVepM64np6EnNm_H1;r{XNdxGdk`2~QeYqlmjVCG7bj5%{VO6v H_^bZ|3zHqB diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties index 2e6e5897..aa02b02f 100755 --- a/gradle/wrapper/gradle-wrapper.properties +++ b/gradle/wrapper/gradle-wrapper.properties @@ -1,5 +1,6 @@ distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-7.3.3-bin.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-8.14.3-bin.zip +networkTimeout=10000 zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists diff --git a/gradlew b/gradlew index 1b6c7873..79a61d42 100755 --- a/gradlew +++ b/gradlew @@ -55,7 +55,7 @@ # Darwin, MinGW, and NonStop. # # (3) This script is generated from the Groovy template -# https://github.com/gradle/gradle/blob/master/subprojects/plugins/src/main/resources/org/gradle/api/internal/plugins/unixStartScript.txt +# https://github.com/gradle/gradle/blob/HEAD/subprojects/plugins/src/main/resources/org/gradle/api/internal/plugins/unixStartScript.txt # within the Gradle project. # # You can find Gradle at https://github.com/gradle/gradle/. @@ -80,10 +80,10 @@ do esac done -APP_HOME=$( cd "${APP_HOME:-./}" && pwd -P ) || exit - -APP_NAME="Gradle" +# This is normally unused +# shellcheck disable=SC2034 APP_BASE_NAME=${0##*/} +APP_HOME=$( cd "${APP_HOME:-./}" && pwd -P ) || exit # Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. DEFAULT_JVM_OPTS='"-Xmx64m" "-Xms64m"' @@ -143,12 +143,16 @@ fi if ! "$cygwin" && ! "$darwin" && ! "$nonstop" ; then case $MAX_FD in #( max*) + # In POSIX sh, ulimit -H is undefined. That's why the result is checked to see if it worked. + # shellcheck disable=SC3045 MAX_FD=$( ulimit -H -n ) || warn "Could not query maximum file descriptor limit" esac case $MAX_FD in #( '' | soft) :;; #( *) + # In POSIX sh, ulimit -n is undefined. That's why the result is checked to see if it worked. + # shellcheck disable=SC3045 ulimit -n "$MAX_FD" || warn "Could not set maximum file descriptor limit to $MAX_FD" esac @@ -205,6 +209,12 @@ set -- \ org.gradle.wrapper.GradleWrapperMain \ "$@" +# Stop when "xargs" is not available. +if ! command -v xargs >/dev/null 2>&1 +then + die "xargs is not available" +fi + # Use "xargs" to parse quoted args. # # With -n1 it outputs one arg per line, with the quotes and backslashes removed. diff --git a/gradlew.bat b/gradlew.bat index 107acd32..6689b85b 100755 --- a/gradlew.bat +++ b/gradlew.bat @@ -1,89 +1,92 @@ -@rem -@rem Copyright 2015 the original author or authors. -@rem -@rem Licensed under the Apache License, Version 2.0 (the "License"); -@rem you may not use this file except in compliance with the License. -@rem You may obtain a copy of the License at -@rem -@rem https://www.apache.org/licenses/LICENSE-2.0 -@rem -@rem Unless required by applicable law or agreed to in writing, software -@rem distributed under the License is distributed on an "AS IS" BASIS, -@rem WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -@rem See the License for the specific language governing permissions and -@rem limitations under the License. -@rem - -@if "%DEBUG%" == "" @echo off -@rem ########################################################################## -@rem -@rem Gradle startup script for Windows -@rem -@rem ########################################################################## - -@rem Set local scope for the variables with windows NT shell -if "%OS%"=="Windows_NT" setlocal - -set DIRNAME=%~dp0 -if "%DIRNAME%" == "" set DIRNAME=. -set APP_BASE_NAME=%~n0 -set APP_HOME=%DIRNAME% - -@rem Resolve any "." and ".." in APP_HOME to make it shorter. -for %%i in ("%APP_HOME%") do set APP_HOME=%%~fi - -@rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. -set DEFAULT_JVM_OPTS="-Xmx64m" "-Xms64m" - -@rem Find java.exe -if defined JAVA_HOME goto findJavaFromJavaHome - -set JAVA_EXE=java.exe -%JAVA_EXE% -version >NUL 2>&1 -if "%ERRORLEVEL%" == "0" goto execute - -echo. -echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. -echo. -echo Please set the JAVA_HOME variable in your environment to match the -echo location of your Java installation. - -goto fail - -:findJavaFromJavaHome -set JAVA_HOME=%JAVA_HOME:"=% -set JAVA_EXE=%JAVA_HOME%/bin/java.exe - -if exist "%JAVA_EXE%" goto execute - -echo. -echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME% -echo. -echo Please set the JAVA_HOME variable in your environment to match the -echo location of your Java installation. - -goto fail - -:execute -@rem Setup the command line - -set CLASSPATH=%APP_HOME%\gradle\wrapper\gradle-wrapper.jar - - -@rem Execute Gradle -"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %* - -:end -@rem End local scope for the variables with windows NT shell -if "%ERRORLEVEL%"=="0" goto mainEnd - -:fail -rem Set variable GRADLE_EXIT_CONSOLE if you need the _script_ return code instead of -rem the _cmd.exe /c_ return code! -if not "" == "%GRADLE_EXIT_CONSOLE%" exit 1 -exit /b 1 - -:mainEnd -if "%OS%"=="Windows_NT" endlocal - -:omega +@rem +@rem Copyright 2015 the original author or authors. +@rem +@rem Licensed under the Apache License, Version 2.0 (the "License"); +@rem you may not use this file except in compliance with the License. +@rem You may obtain a copy of the License at +@rem +@rem https://www.apache.org/licenses/LICENSE-2.0 +@rem +@rem Unless required by applicable law or agreed to in writing, software +@rem distributed under the License is distributed on an "AS IS" BASIS, +@rem WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +@rem See the License for the specific language governing permissions and +@rem limitations under the License. +@rem + +@if "%DEBUG%"=="" @echo off +@rem ########################################################################## +@rem +@rem Gradle startup script for Windows +@rem +@rem ########################################################################## + +@rem Set local scope for the variables with windows NT shell +if "%OS%"=="Windows_NT" setlocal + +set DIRNAME=%~dp0 +if "%DIRNAME%"=="" set DIRNAME=. +@rem This is normally unused +set APP_BASE_NAME=%~n0 +set APP_HOME=%DIRNAME% + +@rem Resolve any "." and ".." in APP_HOME to make it shorter. +for %%i in ("%APP_HOME%") do set APP_HOME=%%~fi + +@rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. +set DEFAULT_JVM_OPTS="-Xmx64m" "-Xms64m" + +@rem Find java.exe +if defined JAVA_HOME goto findJavaFromJavaHome + +set JAVA_EXE=java.exe +%JAVA_EXE% -version >NUL 2>&1 +if %ERRORLEVEL% equ 0 goto execute + +echo. +echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. +echo. +echo Please set the JAVA_HOME variable in your environment to match the +echo location of your Java installation. + +goto fail + +:findJavaFromJavaHome +set JAVA_HOME=%JAVA_HOME:"=% +set JAVA_EXE=%JAVA_HOME%/bin/java.exe + +if exist "%JAVA_EXE%" goto execute + +echo. +echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME% +echo. +echo Please set the JAVA_HOME variable in your environment to match the +echo location of your Java installation. + +goto fail + +:execute +@rem Setup the command line + +set CLASSPATH=%APP_HOME%\gradle\wrapper\gradle-wrapper.jar + + +@rem Execute Gradle +"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %* + +:end +@rem End local scope for the variables with windows NT shell +if %ERRORLEVEL% equ 0 goto mainEnd + +:fail +rem Set variable GRADLE_EXIT_CONSOLE if you need the _script_ return code instead of +rem the _cmd.exe /c_ return code! +set EXIT_CODE=%ERRORLEVEL% +if %EXIT_CODE% equ 0 set EXIT_CODE=1 +if not ""=="%GRADLE_EXIT_CONSOLE%" exit %EXIT_CODE% +exit /b %EXIT_CODE% + +:mainEnd +if "%OS%"=="Windows_NT" endlocal + +:omega diff --git a/src/main/java/ch/loway/oss/ari4java/tools/ARIEncoder.java b/src/main/java/ch/loway/oss/ari4java/tools/ARIEncoder.java index 4af771ec..435441b3 100755 --- a/src/main/java/ch/loway/oss/ari4java/tools/ARIEncoder.java +++ b/src/main/java/ch/loway/oss/ari4java/tools/ARIEncoder.java @@ -1,8 +1,9 @@ package ch.loway.oss.ari4java.tools; -import ch.loway.oss.ari4java.ARI; +import io.netty.buffer.ByteBuf; +import io.netty.buffer.Unpooled; +import io.netty.handler.codec.base64.Base64; -import java.io.UnsupportedEncodingException; import java.net.URLEncoder; import java.nio.charset.Charset; import java.nio.charset.StandardCharsets; @@ -18,12 +19,25 @@ public class ARIEncoder { */ public static String encodeUrl(String url) { try { - return URLEncoder.encode(url, ARIEncoder.ENCODING.name()); - } catch (UnsupportedEncodingException e) { + return URLEncoder.encode(url, ARIEncoder.ENCODING); + } catch (Exception e) { // this should happen, but if so return the input return url; } } + public static String encodeCreds(String username, String password) { + ByteBuf buf1 = Unpooled.copiedBuffer(username + ":" + password, ARIEncoder.ENCODING); + try { + ByteBuf buf2 = Base64.encode(buf1, false); + try { + return "Basic " + buf2.toString(ARIEncoder.ENCODING); + } finally { + buf2.release(); + } + } finally { + buf1.release(); + } + } } diff --git a/src/main/java/ch/loway/oss/ari4java/tools/http/NettyHttpClient.java b/src/main/java/ch/loway/oss/ari4java/tools/http/NettyHttpClient.java index 3d430e6d..65246b6e 100755 --- a/src/main/java/ch/loway/oss/ari4java/tools/http/NettyHttpClient.java +++ b/src/main/java/ch/loway/oss/ari4java/tools/http/NettyHttpClient.java @@ -7,13 +7,12 @@ import io.netty.buffer.PooledByteBufAllocator; import io.netty.buffer.Unpooled; import io.netty.channel.*; -import io.netty.channel.nio.NioEventLoopGroup; +import io.netty.channel.nio.NioIoHandler; import io.netty.channel.pool.ChannelPool; import io.netty.channel.pool.ChannelPoolHandler; import io.netty.channel.pool.FixedChannelPool; import io.netty.channel.socket.SocketChannel; import io.netty.channel.socket.nio.NioSocketChannel; -import io.netty.handler.codec.base64.Base64; import io.netty.handler.codec.http.*; import io.netty.handler.codec.http.websocketx.*; import io.netty.handler.logging.ByteBufFormat; @@ -40,10 +39,10 @@ /** * HTTP and WebSocket client implementation based on netty.io. *

- * Threading is handled by NioEventLoopGroup, which selects on multiple + * Threading is handled by MultiThreadIoEventLoopGroup, which selects on multiple * sockets and provides threads to handle the events on the sockets. *

- * Requires netty-all-4.0.12.Final.jar + * Requires netty * * @author mwalton */ @@ -87,15 +86,15 @@ public class NettyHttpClient implements HttpClient, WsClient { protected int pingPeriod = 5; protected TimeUnit pingTimeUnit = TimeUnit.MINUTES; protected ChannelPool pool; - private int threadCount; + private final int threadCount; public NettyHttpClient() { // use at least 3 threads - threadCount = Math.max(3, SystemPropertyUtil.getInt( + threadCount = Math.min(3, SystemPropertyUtil.getInt( "io.netty.eventLoopThreads", NettyRuntime.availableProcessors() * 2)); logger.debug("Starting NioEventLoopGroup with {} threads", threadCount); - group = new NioEventLoopGroup(threadCount); - shutDownGroup = new NioEventLoopGroup(1); + group = new MultiThreadIoEventLoopGroup(threadCount, NioIoHandler.newFactory()); + shutDownGroup = new MultiThreadIoEventLoopGroup(1, NioIoHandler.newFactory()); } public void initialize(String baseUrl, String username, String password) throws URISyntaxException { @@ -109,17 +108,18 @@ public void initialize(String baseUrl, String username, String password) throws logger.warn("Not http(s), protocol: {}", protocol); throw new IllegalArgumentException("Unsupported protocol: " + protocol); } - this.auth = "Basic " + Base64.encode(Unpooled.copiedBuffer((username + ":" + password), ARIEncoder.ENCODING)).toString(ARIEncoder.ENCODING); + this.auth = ARIEncoder.encodeCreds(username, password); initHttpBootstrap(); } protected void initHttpBootstrap() { if (httpBootstrap == null) { // Bootstrap is the factory for HTTP connections - logger.debug("Bootstrap with\n" + - " connection timeout: {},\n" + - " read timeout: {},\n" + - " aggregator max-length: {}", + logger.debug(""" + Bootstrap with + connection timeout: {}, + read timeout: {}, + aggregator max-length: {}""", CONNECTION_TIMEOUT_SEC, READ_TIMEOUT_SEC, MAX_HTTP_REQUEST); @@ -396,28 +396,28 @@ public void httpActionAsync(String uri, String method, List parameter final NettyHttpClientHandler handler = (NettyHttpClientHandler) ch.pipeline().get(HTTP_HANDLER); handler.reset(); ch.writeAndFlush(request).addListener(future2 -> - group.execute(() -> { - try { - logger.debug("Wait for response..."); - handler.waitForResponse(READ_TIMEOUT_SEC); - if (handler.getException() != null) { - logger.debug("got an error: {}", handler.getException().toString()); - onFailure(responseHandler, new RestException(handler.getException())); - } else if (httpResponseOkay(handler.getResponseStatus())) { - logger.debug("got OK response"); - if (binary) { - responseHandler.onSuccess(handler.getResponseBytes()); + group.execute(() -> { + try { + logger.debug("Wait for response..."); + handler.waitForResponse(READ_TIMEOUT_SEC); + if (handler.getException() != null) { + logger.debug("got an error: {}", handler.getException().toString()); + onFailure(responseHandler, new RestException(handler.getException())); + } else if (httpResponseOkay(handler.getResponseStatus())) { + logger.debug("got OK response"); + if (binary) { + responseHandler.onSuccess(handler.getResponseBytes()); + } else { + responseHandler.onSuccess(handler.getResponseText()); + } } else { - responseHandler.onSuccess(handler.getResponseText()); + logger.debug("...done waiting"); + onFailure(responseHandler, makeException(handler.getResponseStatus(), handler.getResponseText(), errors)); } - } else { - logger.debug("...done waiting"); - onFailure(responseHandler, makeException(handler.getResponseStatus(), handler.getResponseText(), errors)); + } finally { + poolRelease(ch); } - } finally { - poolRelease(ch); - } - }) + }) ); } else { onFailure(responseHandler, future1.cause()); @@ -591,7 +591,7 @@ public void disconnect() throws RestException { * Checks if a response is okay. * All 2XX responses are supposed to be okay. * - * @param status + * @param status http status * @return whether it is a 2XX code or not (error!) */ private boolean httpResponseOkay(HttpResponseStatus status) { diff --git a/src/test/resources/log4j2.properties b/src/test/resources/log4j2.properties deleted file mode 100755 index 6f6701a0..00000000 --- a/src/test/resources/log4j2.properties +++ /dev/null @@ -1,17 +0,0 @@ -status = error -name = PropertiesConfig -filters = threshold -filter.threshold.type = ThresholdFilter -filter.threshold.level = trace -appenders = console -appender.console.type = Console -appender.console.name = STDOUT -appender.console.layout.type = PatternLayout -appender.console.layout.pattern = %d{yyyy-MM-dd HH:mm:ss} %-5p [%.15t] %c{1.}:%L - %m%n -rootLogger.level = DEBUG -rootLogger.appenderRefs = stdout -rootLogger.appenderRef.stdout.ref = STDOUT -logger.ari4java.name = ch.loway.oss.ari4java -logger.ari4java.level = trace -logger.netty.name = io.netty -logger.netty.level = error diff --git a/src/test/resources/logback.xml b/src/test/resources/logback.xml new file mode 100644 index 00000000..b997c8f5 --- /dev/null +++ b/src/test/resources/logback.xml @@ -0,0 +1,16 @@ + + + + + + %cyan(%d{ISO8601}) %highlight(%-5level) [%blue(%t)] %green(%c{1}): %msg%n%throwable + + + + + + + + + + \ No newline at end of file From 9b965e29c3a45c133e7fe6b43c71270dd0575211 Mon Sep 17 00:00:00 2001 From: Graham Brown Date: Mon, 26 Jan 2026 15:55:58 +0200 Subject: [PATCH 217/220] change example inclusion and other example updates --- .gitignore | 7 + examples/Dockerfile | 6 +- examples/Vagrantfile | 2 +- examples/build.gradle | 20 +- examples/gradle/wrapper/gradle-wrapper.jar | Bin 59203 -> 59536 bytes .../gradle/wrapper/gradle-wrapper.properties | 2 +- examples/gradlew | 257 +++++++++++------- examples/gradlew.bat | 178 ++++++------ examples/settings.gradle | 4 +- .../examples/comprehensive/Asterisk.java | 18 +- .../examples/comprehensive/WebServer.java | 9 +- examples/vagrant/asterisk/keys/ca-req.cnf | 10 + examples/vagrant/asterisk/keys/cert-req.cnf | 17 ++ examples/vagrant/asterisk/modules.conf | 17 +- examples/vagrant/asterisk/musiconhold.conf | 5 + examples/vagrant/asterisk/pjsip.conf | 8 +- examples/vagrant/asterisk/pjsip_notify.conf | 57 ++++ examples/vagrant/asterisk/pjsip_wizard.conf | 13 +- .../vagrant/asterisk/websocket_client.conf | 2 + examples/vagrant/scripts/provision.sh | 46 ++-- .../vagrant/static-http/ari4java-phone.html | 39 ++- .../vagrant/static-http/jssip-3.10.1.min.js | 9 + .../vagrant/static-http/jssip-3.8.2.min.js | 9 - settings.gradle | 3 + 24 files changed, 465 insertions(+), 273 deletions(-) create mode 100644 examples/vagrant/asterisk/keys/ca-req.cnf create mode 100644 examples/vagrant/asterisk/keys/cert-req.cnf create mode 100644 examples/vagrant/asterisk/musiconhold.conf create mode 100644 examples/vagrant/asterisk/pjsip_notify.conf create mode 100644 examples/vagrant/asterisk/websocket_client.conf create mode 100644 examples/vagrant/static-http/jssip-3.10.1.min.js delete mode 100644 examples/vagrant/static-http/jssip-3.8.2.min.js diff --git a/.gitignore b/.gitignore index 38a9ec92..8d4b371e 100755 --- a/.gitignore +++ b/.gitignore @@ -32,3 +32,10 @@ oss.yaml # vagrant state folder .vagrant + +# local build examples +.inc-examples +# exclude keys +examples/vagrant/asterisk/keys/*.key +examples/vagrant/asterisk/keys/*.crt +examples/vagrant/asterisk/keys/*.csr diff --git a/examples/Dockerfile b/examples/Dockerfile index c06c503c..8ddd4afc 100644 --- a/examples/Dockerfile +++ b/examples/Dockerfile @@ -1,14 +1,14 @@ # Docker image to use with Vagrant # Aims to be as similar to normal Vagrant usage as possible -# Adds Puppet, SSH daemon, Systemd +# Adds SSH daemon, Systemd # Adapted from https://github.com/BashtonLtd/docker-vagrant-images/blob/master/ubuntu1404/Dockerfile -FROM ubuntu:focal +FROM ubuntu:noble ENV container docker RUN apt update && apt -y upgrade # Install system dependencies, you may not need all of these -RUN apt install -y --no-install-recommends ssh sudo libffi-dev systemd openssh-client nano +RUN apt install -y --no-install-recommends ssh sudo libffi-dev systemd openssh-client nano wget curl less # Add vagrant user and key for SSH RUN useradd --create-home -s /bin/bash vagrant diff --git a/examples/Vagrantfile b/examples/Vagrantfile index 498c70ed..9636f439 100644 --- a/examples/Vagrantfile +++ b/examples/Vagrantfile @@ -8,7 +8,7 @@ if not ENV["NET_BRIDGE"] then ENV["NET_BRIDGE"] = "off" end Vagrant.configure("2") do |config| - config.vm.box = "ubuntu/focal64" + config.vm.box = "cloud-image/ubuntu-24.04" config.vm.synced_folder "./vagrant", "/vagrant" config.vm.provider "virtualbox" do |v, override| v.memory = 1024 diff --git a/examples/build.gradle b/examples/build.gradle index 54003227..750df1e7 100755 --- a/examples/build.gradle +++ b/examples/build.gradle @@ -1,5 +1,5 @@ plugins { - id 'java' + id "java" } repositories { @@ -7,24 +7,28 @@ repositories { } dependencies { - implementation 'ch.loway.oss.ari4java:ari4java:+' - implementation 'ch.qos.logback:logback-classic:1.2.10' - implementation 'io.netty:netty-all:4.1.72.Final' + if (file("../.inc-examples").exists()) { + implementation project(":") + } else { + implementation "ch.loway.oss.ari4java:ari4java:+" + } + implementation "ch.qos.logback:logback-classic:1.5.25" + implementation "io.netty:netty-all:4.2.9.Final" } java { - sourceCompatibility = JavaVersion.VERSION_1_8 - targetCompatibility = JavaVersion.VERSION_1_8 + sourceCompatibility = JavaVersion.VERSION_17 + targetCompatibility = JavaVersion.VERSION_17 } task runWeaselsExample(type: JavaExec) { dependsOn build classpath = sourceSets.main.runtimeClasspath - mainClass = 'ch.loway.oss.ari4java.examples.Weasels' + mainClass = "ch.loway.oss.ari4java.examples.Weasels" } task runComprehensiveExample(type: JavaExec) { dependsOn build classpath = sourceSets.main.runtimeClasspath - mainClass = 'ch.loway.oss.ari4java.examples.comprehensive.Boot' + mainClass = "ch.loway.oss.ari4java.examples.comprehensive.Boot" } diff --git a/examples/gradle/wrapper/gradle-wrapper.jar b/examples/gradle/wrapper/gradle-wrapper.jar index e708b1c023ec8b20f512888fe07c5bd3ff77bb8f..7454180f2ae8848c63b8b4dea2cb829da983f2fa 100755 GIT binary patch delta 18435 zcmY&<19zBR)MXm8v2EM7ZQHi-#I|kQZfv7Tn#Q)%81v4zX3d)U4d4 zYYc!v@NU%|U;_sM`2z(4BAilWijmR>4U^KdN)D8%@2KLcqkTDW%^3U(Wg>{qkAF z&RcYr;D1I5aD(N-PnqoEeBN~JyXiT(+@b`4Pv`;KmkBXYN48@0;iXuq6!ytn`vGp$ z6X4DQHMx^WlOek^bde&~cvEO@K$oJ}i`T`N;M|lX0mhmEH zuRpo!rS~#&rg}ajBdma$$}+vEhz?JAFUW|iZEcL%amAg_pzqul-B7Itq6Y_BGmOCC zX*Bw3rFz3R)DXpCVBkI!SoOHtYstv*e-May|+?b80ZRh$MZ$FerlC`)ZKt} zTd0Arf9N2dimjs>mg5&@sfTPsRXKXI;0L~&t+GH zkB<>wxI9D+k5VHHcB7Rku{Z>i3$&hgd9Mt_hS_GaGg0#2EHzyV=j=u5xSyV~F0*qs zW{k9}lFZ?H%@4hII_!bzao!S(J^^ZZVmG_;^qXkpJb7OyR*sPL>))Jx{K4xtO2xTr@St!@CJ=y3q2wY5F`77Tqwz8!&Q{f7Dp zifvzVV1!Dj*dxG%BsQyRP6${X+Tc$+XOG zzvq5xcC#&-iXlp$)L=9t{oD~bT~v^ZxQG;FRz|HcZj|^L#_(VNG)k{=_6|6Bs-tRNCn-XuaZ^*^hpZ@qwi`m|BxcF6IWc?_bhtK_cDZRTw#*bZ2`1@1HcB`mLUmo_>@2R&nj7&CiH zF&laHkG~7#U>c}rn#H)q^|sk+lc!?6wg0xy`VPn!{4P=u@cs%-V{VisOxVqAR{XX+ zw}R;{Ux@6A_QPka=48|tph^^ZFjSHS1BV3xfrbY84^=?&gX=bmz(7C({=*oy|BEp+ zYgj;<`j)GzINJA>{HeSHC)bvp6ucoE`c+6#2KzY9)TClmtEB1^^Mk)(mXWYvup02e%Ghm9qyjz#fO3bNGBX} zFiB>dvc1+If!>I10;qZk`?6pEd*(?bI&G*3YLt;MWw&!?=Mf7%^Op?qnyXWur- zwX|S^P>jF?{m9c&mmK-epCRg#WB+-VDe!2d2~YVoi%7_q(dyC{(}zB${!ElKB2D}P z7QNFM!*O^?FrPMGZ}wQ0TrQAVqZy!weLhu_Zq&`rlD39r*9&2sJHE(JT0EY5<}~x@ z1>P0!L2IFDqAB!($H9s2fI`&J_c+5QT|b#%99HA3@zUWOuYh(~7q7!Pf_U3u!ij5R zjFzeZta^~RvAmd_TY+RU@e}wQaB_PNZI26zmtzT4iGJg9U(Wrgrl>J%Z3MKHOWV(? zj>~Ph$<~8Q_sI+)$DOP^9FE6WhO09EZJ?1W|KidtEjzBX3RCLUwmj9qH1CM=^}MaK z59kGxRRfH(n|0*lkE?`Rpn6d^u5J6wPfi0WF(rucTv(I;`aW)3;nY=J=igkjsn?ED ztH&ji>}TW8)o!Jg@9Z}=i2-;o4#xUksQHu}XT~yRny|kg-$Pqeq!^78xAz2mYP9+4 z9gwAoti2ICvUWxE&RZ~}E)#M8*zy1iwz zHqN%q;u+f6Ti|SzILm0s-)=4)>eb5o-0K zbMW8ecB4p^6OuIX@u`f{>Yn~m9PINEl#+t*jqalwxIx=TeGB9(b6jA}9VOHnE$9sC zH`;epyH!k-3kNk2XWXW!K`L_G!%xOqk0ljPCMjK&VweAxEaZ==cT#;!7)X&C|X{dY^IY(e4D#!tx^vV3NZqK~--JW~wtXJ8X19adXim?PdN(|@o(OdgH3AiHts~?#QkolO?*=U_buYC&tQ3sc(O5HGHN~=6wB@dgIAVT$ z_OJWJ^&*40Pw&%y^t8-Wn4@l9gOl`uU z{Uda_uk9!Iix?KBu9CYwW9Rs=yt_lE11A+k$+)pkY5pXpocxIEJe|pTxwFgB%Kpr&tH;PzgOQ&m|(#Otm?@H^r`v)9yiR8v&Uy>d#TNdRfyN4Jk;`g zp+jr5@L2A7TS4=G-#O<`A9o;{En5!I8lVUG?!PMsv~{E_yP%QqqTxxG%8%KxZ{uwS zOT+EA5`*moN8wwV`Z=wp<3?~f#frmID^K?t7YL`G^(X43gWbo!6(q*u%HxWh$$^2EOq`Hj zp=-fS#Av+s9r-M)wGIggQ)b<@-BR`R8l1G@2+KODmn<_$Tzb7k35?e8;!V0G>`(!~ zY~qZz!6*&|TupOcnvsQYPbcMiJ!J{RyfezB^;fceBk znpA1XS)~KcC%0^_;ihibczSxwBuy;^ksH7lwfq7*GU;TLt*WmUEVQxt{ zKSfJf;lk$0XO8~48Xn2dnh8tMC9WHu`%DZj&a`2!tNB`5%;Md zBs|#T0Ktf?vkWQ)Y+q!At1qgL`C|nbzvgc(+28Q|4N6Geq)Il%+I5c@t02{9^=QJ?=h2BTe`~BEu=_u3xX2&?^zwcQWL+)7dI>JK0g8_`W1n~ zMaEP97X>Ok#=G*nkPmY`VoP8_{~+Rp7DtdSyWxI~?TZHxJ&=6KffcO2Qx1?j7=LZA z?GQt`oD9QpXw+s7`t+eeLO$cpQpl9(6h3_l9a6OUpbwBasCeCw^UB6we!&h9Ik@1zvJ`j4i=tvG9X8o34+N|y(ay~ho$f=l z514~mP>Z>#6+UxM<6@4z*|hFJ?KnkQBs_9{H(-v!_#Vm6Z4(xV5WgWMd3mB9A(>@XE292#k(HdI7P zJkQ2)`bQXTKlr}{VrhSF5rK9TsjtGs0Rs&nUMcH@$ZX_`Hh$Uje*)(Wd&oLW($hZQ z_tPt`{O@f8hZ<}?aQc6~|9iHt>=!%We3=F9yIfiqhXqp=QUVa!@UY@IF5^dr5H8$R zIh{=%S{$BHG+>~a=vQ={!B9B=<-ID=nyjfA0V8->gN{jRL>Qc4Rc<86;~aY+R!~Vs zV7MI~gVzGIY`B*Tt@rZk#Lg}H8sL39OE31wr_Bm%mn}8n773R&N)8B;l+-eOD@N$l zh&~Wz`m1qavVdxwtZLACS(U{rAa0;}KzPq9r76xL?c{&GaG5hX_NK!?)iq`t7q*F# zFoKI{h{*8lb>&sOeHXoAiqm*vV6?C~5U%tXR8^XQ9Y|(XQvcz*>a?%HQ(Vy<2UhNf zVmGeOO#v159KV@1g`m%gJ)XGPLa`a|?9HSzSSX{j;)xg>G(Ncc7+C>AyAWYa(k}5B3mtzg4tsA=C^Wfezb1&LlyrBE1~kNfeiubLls{C)!<%#m@f}v^o+7<VZ6!FZ;JeiAG@5vw7Li{flC8q1%jD_WP2ApBI{fQ}kN zhvhmdZ0bb5(qK@VS5-)G+@GK(tuF6eJuuV5>)Odgmt?i_`tB69DWpC~e8gqh!>jr_ zL1~L0xw@CbMSTmQflpRyjif*Y*O-IVQ_OFhUw-zhPrXXW>6X}+73IoMsu2?uuK3lT>;W#38#qG5tDl66A7Y{mYh=jK8Se!+f=N7%nv zYSHr6a~Nxd`jqov9VgII{%EpC_jFCEc>>SND0;}*Ja8Kv;G)MK7?T~h((c&FEBcQq zvUU1hW2^TX(dDCeU@~a1LF-(+#lz3997A@pipD53&Dr@III2tlw>=!iGabjXzbyUJ z4Hi~M1KCT-5!NR#I%!2Q*A>mqI{dpmUa_mW)%SDs{Iw1LG}0y=wbj@0ba-`q=0!`5 zr(9q1p{#;Rv2CY!L#uTbs(UHVR5+hB@m*zEf4jNu3(Kj$WwW|v?YL*F_0x)GtQC~! zzrnZRmBmwt+i@uXnk05>uR5&1Ddsx1*WwMrIbPD3yU*2By`71pk@gt{|H0D<#B7&8 z2dVmXp*;B)SWY)U1VSNs4ds!yBAj;P=xtatUx^7_gC5tHsF#vvdV;NmKwmNa1GNWZ zi_Jn-B4GnJ%xcYWD5h$*z^haku#_Irh818x^KB)3-;ufjf)D0TE#6>|zFf@~pU;Rs zNw+}c9S+6aPzxkEA6R%s*xhJ37wmgc)-{Zd1&mD5QT}4BQvczWr-Xim>(P^)52`@R z9+Z}44203T5}`AM_G^Snp<_KKc!OrA(5h7{MT^$ZeDsSr(R@^kI?O;}QF)OU zQ9-`t^ys=6DzgLcWt0U{Q(FBs22=r zKD%fLQ^5ZF24c-Z)J{xv?x$&4VhO^mswyb4QTIofCvzq+27*WlYm;h@;Bq%i;{hZA zM97mHI6pP}XFo|^pRTuWQzQs3B-8kY@ajLV!Fb?OYAO3jFv*W-_;AXd;G!CbpZt04iW`Ie^_+cQZGY_Zd@P<*J9EdRsc>c=edf$K|;voXRJ zk*aC@@=MKwR120(%I_HX`3pJ+8GMeO>%30t?~uXT0O-Tu-S{JA;zHoSyXs?Z;fy58 zi>sFtI7hoxNAdOt#3#AWFDW)4EPr4kDYq^`s%JkuO7^efX+u#-qZ56aoRM!tC^P6O zP(cFuBnQGjhX(^LJ(^rVe4-_Vk*3PkBCj!?SsULdmVr0cGJM^=?8b0^DuOFq>0*yA zk1g|C7n%pMS0A8@Aintd$fvRbH?SNdRaFrfoAJ=NoX)G5Gr}3-$^IGF+eI&t{I-GT zp=1fj)2|*ur1Td)+s&w%p#E6tDXX3YYOC{HGHLiCvv?!%%3DO$B$>A}aC;8D0Ef#b z{7NNqC8j+%1n95zq8|hFY`afAB4E)w_&7?oqG0IPJZv)lr{MT}>9p?}Y`=n+^CZ6E zKkjIXPub5!82(B-O2xQojW^P(#Q*;ETpEr^+Wa=qDJ9_k=Wm@fZB6?b(u?LUzX(}+ zE6OyapdG$HC& z&;oa*ALoyIxVvB2cm_N&h&{3ZTuU|aBrJlGOLtZc3KDx)<{ z27@)~GtQF@%6B@w3emrGe?Cv_{iC@a#YO8~OyGRIvp@%RRKC?fclXMP*6GzBFO z5U4QK?~>AR>?KF@I;|(rx(rKxdT9-k-anYS+#S#e1SzKPslK!Z&r8iomPsWG#>`Ld zJ<#+8GFHE!^wsXt(s=CGfVz5K+FHYP5T0E*?0A-z*lNBf)${Y`>Gwc@?j5{Q|6;Bl zkHG1%r$r&O!N^><8AEL+=y(P$7E6hd=>BZ4ZZ9ukJ2*~HR4KGvUR~MUOe$d>E5UK3 z*~O2LK4AnED}4t1Fs$JgvPa*O+WeCji_cn1@Tv7XQ6l@($F1K%{E$!naeX)`bfCG> z8iD<%_M6aeD?a-(Qqu61&fzQqC(E8ksa%CulMnPvR35d{<`VsmaHyzF+B zF6a@1$CT0xGVjofcct4SyxA40uQ`b#9kI)& z?B67-12X-$v#Im4CVUGZHXvPWwuspJ610ITG*A4xMoRVXJl5xbk;OL(;}=+$9?H`b z>u2~yd~gFZ*V}-Q0K6E@p}mtsri&%Zep?ZrPJmv`Qo1>94Lo||Yl)nqwHXEbe)!g( zo`w|LU@H14VvmBjjkl~=(?b{w^G$~q_G(HL`>|aQR%}A64mv0xGHa`S8!*Wb*eB}` zZh)&rkjLK!Rqar)UH)fM<&h&@v*YyOr!Xk2OOMV%$S2mCRdJxKO1RL7xP_Assw)bb z9$sQ30bapFfYTS`i1PihJZYA#0AWNmp>x(;C!?}kZG7Aq?zp!B+gGyJ^FrXQ0E<>2 zCjqZ(wDs-$#pVYP3NGA=en<@_uz!FjFvn1&w1_Igvqs_sL>ExMbcGx4X5f%`Wrri@ z{&vDs)V!rd=pS?G(ricfwPSg(w<8P_6=Qj`qBC7_XNE}1_5>+GBjpURPmvTNE7)~r)Y>ZZecMS7Ro2` z0}nC_GYo3O7j|Wux?6-LFZs%1IV0H`f`l9or-8y0=5VGzjPqO2cd$RRHJIY06Cnh- ztg@Pn1OeY=W`1Mv3`Ti6!@QIT{qcC*&vptnX4Pt1O|dWv8u2s|(CkV`)vBjAC_U5` zCw1f&c4o;LbBSp0=*q z3Y^horBAnR)u=3t?!}e}14%K>^562K!)Vy6r~v({5{t#iRh8WIL|U9H6H97qX09xp zjb0IJ^9Lqxop<-P*VA0By@In*5dq8Pr3bTPu|ArID*4tWM7w+mjit0PgmwLV4&2PW z3MnIzbdR`3tPqtUICEuAH^MR$K_u8~-U2=N1)R=l>zhygus44>6V^6nJFbW-`^)f} zI&h$FK)Mo*x?2`0npTD~jRd}5G~-h8=wL#Y-G+a^C?d>OzsVl7BFAaM==(H zR;ARWa^C3J)`p~_&FRsxt|@e+M&!84`eq)@aO9yBj8iifJv0xVW4F&N-(#E=k`AwJ z3EFXWcpsRlB%l_0Vdu`0G(11F7( zsl~*@XP{jS@?M#ec~%Pr~h z2`M*lIQaolzWN&;hkR2*<=!ORL(>YUMxOzj(60rQfr#wTrkLO!t{h~qg% zv$R}0IqVIg1v|YRu9w7RN&Uh7z$ijV=3U_M(sa`ZF=SIg$uY|=NdC-@%HtkUSEqJv zg|c}mKTCM=Z8YmsFQu7k{VrXtL^!Cts-eb@*v0B3M#3A7JE*)MeW1cfFqz~^S6OXFOIP&iL;Vpy z4dWKsw_1Wn%Y;eW1YOfeP_r1s4*p1C(iDG_hrr~-I%kA>ErxnMWRYu{IcG{sAW;*t z9T|i4bI*g)FXPpKM@~!@a7LDVVGqF}C@mePD$ai|I>73B+9!Ks7W$pw;$W1B%-rb; zJ*-q&ljb=&41dJ^*A0)7>Wa@khGZ;q1fL(2qW=|38j43mTl_;`PEEw07VKY%71l6p z@F|jp88XEnm1p~<5c*cVXvKlj0{THF=n3sU7g>Ki&(ErR;!KSmfH=?49R5(|c_*xw z4$jhCJ1gWT6-g5EV)Ahg?Nw=}`iCyQ6@0DqUb%AZEM^C#?B-@Hmw?LhJ^^VU>&phJ zlB!n5&>I>@sndh~v$2I2Ue23F?0!0}+9H~jg7E`?CS_ERu75^jSwm%!FTAegT`6s7 z^$|%sj2?8wtPQR>@D3sA0-M-g-vL@47YCnxdvd|1mPymvk!j5W1jHnVB&F-0R5e-vs`@u8a5GKdv`LF7uCfKncI4+??Z4iG@AxuX7 z6+@nP^TZ5HX#*z(!y+-KJ3+Ku0M90BTY{SC^{ z&y2#RZPjfX_PE<<>XwGp;g4&wcXsQ0T&XTi(^f+}4qSFH1%^GYi+!rJo~t#ChTeAX zmR0w(iODzQOL+b&{1OqTh*psAb;wT*drr^LKdN?c?HJ*gJl+%kEH&48&S{s28P=%p z7*?(xFW_RYxJxxILS!kdLIJYu@p#mnQ(?moGD1)AxQd66X6b*KN?o&e`u9#N4wu8% z^Gw#G!@|>c740RXziOR=tdbkqf(v~wS_N^CS^1hN-N4{Dww1lvSWcBTX*&9}Cz|s@ z*{O@jZ4RVHq19(HC9xSBZI0M)E;daza+Q*zayrX~N5H4xJ33BD4gn5Ka^Hj{995z4 zzm#Eo?ntC$q1a?)dD$qaC_M{NW!5R!vVZ(XQqS67xR3KP?rA1^+s3M$60WRTVHeTH z6BJO$_jVx0EGPXy}XK_&x597 zt(o6ArN8vZX0?~(lFGHRtHP{gO0y^$iU6Xt2e&v&ugLxfsl;GD)nf~3R^ACqSFLQ< zV7`cXgry((wDMJB55a6D4J;13$z6pupC{-F+wpToW%k1qKjUS^$Mo zN3@}T!ZdpiV7rkNvqP3KbpEn|9aB;@V;gMS1iSb@ zwyD7!5mfj)q+4jE1dq3H`sEKgrVqk|y8{_vmn8bMOi873!rmnu5S=1=-DFx+Oj)Hi zx?~ToiJqOrvSou?RVALltvMADodC7BOg7pOyc4m&6yd(qIuV5?dYUpYzpTe!BuWKi zpTg(JHBYzO&X1e{5o|ZVU-X5e?<}mh=|eMY{ldm>V3NsOGwyxO2h)l#)rH@BI*TN; z`yW26bMSp=k6C4Ja{xB}s`dNp zE+41IwEwo>7*PA|7v-F#jLN>h#a`Er9_86!fwPl{6yWR|fh?c%qc44uP~Ocm2V*(* zICMpS*&aJjxutxKC0Tm8+FBz;3;R^=ajXQUB*nTN*Lb;mruQHUE<&=I7pZ@F-O*VMkJbI#FOrBM8`QEL5Uy=q5e2 z_BwVH%c0^uIWO0*_qD;0jlPoA@sI7BPwOr-mrp7y`|EF)j;$GYdOtEPFRAKyUuUZS z(N4)*6R*ux8s@pMdC*TP?Hx`Zh{{Ser;clg&}CXriXZCr2A!wIoh;j=_eq3_%n7V} za?{KhXg2cXPpKHc90t6=`>s@QF-DNcTJRvLTS)E2FTb+og(wTV7?$kI?QZYgVBn)& zdpJf@tZ{j>B;<MVHiPl_U&KlqBT)$ic+M0uUQWK|N1 zCMl~@o|}!!7yyT%7p#G4?T^Azxt=D(KP{tyx^lD_(q&|zNFgO%!i%7T`>mUuU^FeR zHP&uClWgXm6iXgI8*DEA!O&X#X(zdrNctF{T#pyax16EZ5Lt5Z=RtAja!x+0Z31U8 zjfaky?W)wzd+66$L>o`n;DISQNs09g{GAv%8q2k>2n8q)O^M}=5r#^WR^=se#WSCt zQ`7E1w4qdChz4r@v6hgR?nsaE7pg2B6~+i5 zcTTbBQ2ghUbC-PV(@xvIR(a>Kh?{%YAsMV#4gt1nxBF?$FZ2~nFLKMS!aK=(`WllA zHS<_7ugqKw!#0aUtQwd#A$8|kPN3Af?Tkn)dHF?_?r#X68Wj;|$aw)Wj2Dkw{6)*^ zZfy!TWwh=%g~ECDCy1s8tTgWCi}F1BvTJ9p3H6IFq&zn#3FjZoecA_L_bxGWgeQup zAAs~1IPCnI@H>g|6Lp^Bk)mjrA3_qD4(D(65}l=2RzF-8@h>|Aq!2K-qxt(Q9w7c^ z;gtx`I+=gKOl;h=#fzSgw-V*YT~2_nnSz|!9hIxFb{~dKB!{H zSi??dnmr@%(1w^Be=*Jz5bZeofEKKN&@@uHUMFr-DHS!pb1I&;x9*${bmg6=2I4Zt zHb5LSvojY7ubCNGhp)=95jQ00sMAC{IZdAFsN!lAVQDeiec^HAu=8);2AKqNTT!&E zo+FAR`!A1#T6w@0A+o%&*yzkvxsrqbrfVTG+@z8l4+mRi@j<&)U9n6L>uZoezW>qS zA4YfO;_9dQSyEYpkWnsk0IY}Nr2m(ql@KuQjLgY-@g z4=$uai6^)A5+~^TvLdvhgfd+y?@+tRE^AJabamheJFnpA#O*5_B%s=t8<;?I;qJ}j z&g-9?hbwWEez-!GIhqpB>nFvyi{>Yv>dPU=)qXnr;3v-cd`l}BV?6!v{|cHDOx@IG z;TSiQQ(8=vlH^rCEaZ@Yw}?4#a_Qvx=}BJuxACxm(E7tP4hki^jU@8A zUS|4tTLd)gr@T|F$1eQXPY%fXb7u}(>&9gsd3It^B{W#6F2_g40cgo1^)@-xO&R5X z>qKon+Nvp!4v?-rGQu#M_J2v+3e+?N-WbgPQWf`ZL{Xd9KO^s{uIHTJ6~@d=mc7i z+##ya1p+ZHELmi%3C>g5V#yZt*jMv( zc{m*Y;7v*sjVZ-3mBuaT{$g+^sbs8Rp7BU%Ypi+c%JxtC4O}|9pkF-p-}F{Z7-+45 zDaJQx&CNR)8x~0Yf&M|-1rw%KW3ScjWmKH%J1fBxUp(;F%E+w!U470e_3%+U_q7~P zJm9VSWmZ->K`NfswW(|~fGdMQ!K2z%k-XS?Bh`zrjZDyBMu74Fb4q^A=j6+Vg@{Wc zPRd5Vy*-RS4p1OE-&8f^Fo}^yDj$rb+^>``iDy%t)^pHSV=En5B5~*|32#VkH6S%9 zxgIbsG+|{-$v7mhOww#v-ejaS>u(9KV9_*X!AY#N*LXIxor9hDv%aie@+??X6@Et=xz>6ev9U>6Pn$g4^!}w2Z%Kpqpp+M%mk~?GE-jL&0xLC zy(`*|&gm#mLeoRU8IU?Ujsv=;ab*URmsCl+r?%xcS1BVF*rP}XRR%MO_C!a9J^fOe>U;Y&3aj3 zX`3?i12*^W_|D@VEYR;h&b^s#Kd;JMNbZ#*x8*ZXm(jgw3!jyeHo14Zq!@_Q`V;Dv zKik~!-&%xx`F|l^z2A92aCt4x*I|_oMH9oeqsQgQDgI0j2p!W@BOtCTK8Jp#txi}7 z9kz);EX-2~XmxF5kyAa@n_$YYP^Hd4UPQ>O0-U^-pw1*n{*kdX`Jhz6{!W=V8a$0S z9mYboj#o)!d$gs6vf8I$OVOdZu7L5%)Vo0NhN`SwrQFhP3y4iXe2uV@(G{N{yjNG( zKvcN{k@pXkxyB~9ucR(uPSZ7{~sC=lQtz&V(^A^HppuN!@B4 zS>B=kb14>M-sR>{`teApuHlca6YXs6&sRvRV;9G!XI08CHS~M$=%T~g5Xt~$exVk` zWP^*0h{W%`>K{BktGr@+?ZP}2t0&smjKEVw@3=!rSjw5$gzlx`{dEajg$A58m|Okx zG8@BTPODSk@iqLbS*6>FdVqk}KKHuAHb0UJNnPm!(XO{zg--&@#!niF4T!dGVdNif z3_&r^3+rfQuV^8}2U?bkI5Ng*;&G>(O4&M<86GNxZK{IgKNbRfpg>+32I>(h`T&uv zUN{PRP&onFj$tn1+Yh|0AF330en{b~R+#i9^QIbl9fBv>pN|k&IL2W~j7xbkPyTL^ z*TFONZUS2f33w3)fdzr?)Yg;(s|||=aWZV(nkDaACGSxNCF>XLJSZ=W@?$*` z#sUftY&KqTV+l@2AP5$P-k^N`Bme-xcWPS|5O~arUq~%(z8z87JFB|llS&h>a>Som zC34(_uDViE!H2jI3<@d+F)LYhY)hoW6)i=9u~lM*WH?hI(yA$X#ip}yYld3RAv#1+sBt<)V_9c4(SN9Fn#$}_F}A-}P>N+8io}I3mh!}> z*~*N}ZF4Zergb;`R_g49>ZtTCaEsCHiFb(V{9c@X0`YV2O^@c6~LXg2AE zhA=a~!ALnP6aO9XOC^X15(1T)3!1lNXBEVj5s*G|Wm4YBPV`EOhU&)tTI9-KoLI-U zFI@adu6{w$dvT(zu*#aW*4F=i=!7`P!?hZy(9iL;Z^De3?AW`-gYTPALhrZ*K2|3_ zfz;6xQN9?|;#_U=4t^uS2VkQ8$|?Ub5CgKOj#Ni5j|(zX>x#K(h7LgDP-QHwok~-I zOu9rn%y97qrtKdG=ep)4MKF=TY9^n6CugQ3#G2yx;{))hvlxZGE~rzZ$qEHy-8?pU#G;bwufgSN6?*BeA!7N3RZEh{xS>>-G1!C(e1^ zzd#;39~PE_wFX3Tv;zo>5cc=md{Q}(Rb?37{;YPtAUGZo7j*yHfGH|TOVR#4ACaM2 z;1R0hO(Gl}+0gm9Bo}e@lW)J2OU4nukOTVKshHy7u)tLH^9@QI-jAnDBp(|J8&{fKu=_97$v&F67Z zq+QsJ=gUx3_h_%=+q47msQ*Ub=gMzoSa@S2>`Y9Cj*@Op4plTc!jDhu51nSGI z^sfZ(4=yzlR}kP2rcHRzAY9@T7f`z>fdCU0zibx^gVg&fMkcl)-0bRyWe12bT0}<@ z^h(RgGqS|1y#M;mER;8!CVmX!j=rfNa6>#_^j{^C+SxGhbSJ_a0O|ae!ZxiQCN2qA zKs_Z#Zy|9BOw6x{0*APNm$6tYVG2F$K~JNZ!6>}gJ_NLRYhcIsxY1z~)mt#Yl0pvC zO8#Nod;iow5{B*rUn(0WnN_~~M4|guwfkT(xv;z)olmj=f=aH#Y|#f_*d1H!o( z!EXNxKxth9w1oRr0+1laQceWfgi8z`YS#uzg#s9-QlTT7y2O^^M1PZx z3YS7iegfp6Cs0-ixlG93(JW4wuE7)mfihw}G~Uue{Xb+#F!BkDWs#*cHX^%(We}3% zT%^;m&Juw{hLp^6eyM}J({luCL_$7iRFA6^8B!v|B9P{$42F>|M`4Z_yA{kK()WcM zu#xAZWG%QtiANfX?@+QQOtbU;Avr*_>Yu0C2>=u}zhH9VLp6M>fS&yp*-7}yo8ZWB z{h>ce@HgV?^HgwRThCYnHt{Py0MS=Ja{nIj5%z;0S@?nGQ`z`*EVs&WWNwbzlk`(t zxDSc)$dD+4G6N(p?K>iEKXIk>GlGKTH{08WvrehnHhh%tgpp&8db4*FLN zETA@<$V=I7S^_KxvYv$Em4S{gO>(J#(Wf;Y%(NeECoG3n+o;d~Bjme-4dldKukd`S zRVAnKxOGjWc;L#OL{*BDEA8T=zL8^`J=2N)d&E#?OMUqk&9j_`GX*A9?V-G zdA5QQ#(_Eb^+wDkDiZ6RXL`fck|rVy%)BVv;dvY#`msZ}{x5fmd! zInmWSxvRgXbJ{unxAi*7=Lt&7_e0B#8M5a=Ad0yX#0rvMacnKnXgh>4iiRq<&wit93n!&p zeq~-o37qf)L{KJo3!{l9l9AQb;&>)^-QO4RhG>j`rBlJ09~cbfNMR_~pJD1$UzcGp zOEGTzz01j$=-kLC+O$r8B|VzBotz}sj(rUGOa7PDYwX~9Tum^sW^xjjoncxSz;kqz z$Pz$Ze|sBCTjk7oM&`b5g2mFtuTx>xl{dj*U$L%y-xeQL~|i>KzdUHeep-Yd@}p&L*ig< zgg__3l9T=nbM3bw0Sq&Z2*FA)P~sx0h634BXz0AxV69cED7QGTbK3?P?MENkiy-mV zZ1xV5ry3zIpy>xmThBL0Q!g+Wz@#?6fYvzmEczs(rcujrfCN=^!iWQ6$EM zaCnRThqt~gI-&6v@KZ78unqgv9j6-%TOxpbV`tK{KaoBbhc}$h+rK)5h|bT6wY*t6st-4$e99+Egb#3ip+ERbve08G@Ref&hP)qB&?>B94?eq5i3k;dOuU#!y-@+&5>~!FZik=z4&4|YHy=~!F254 zQAOTZr26}Nc7jzgJ;V~+9ry#?7Z0o*;|Q)k+@a^87lC}}1C)S))f5tk+lMNqw>vh( z`A9E~5m#b9!ZDBltf7QIuMh+VheCoD7nCFhuzThlhA?|8NCt3w?oWW|NDin&&eDU6 zwH`aY=))lpWG?{fda=-auXYp1WIPu&3 zwK|t(Qiqvc@<;1_W#ALDJ}bR;3&v4$9rP)eAg`-~iCte`O^MY+SaP!w%~+{{1tMo` zbp?T%ENs|mHP)Lsxno=nWL&qizR+!Ib=9i%4=B@(Umf$|7!WVxkD%hfRjvxV`Co<; zG*g4QG_>;RE{3V_DOblu$GYm&!+}%>G*yO{-|V9GYG|bH2JIU2iO}ZvY>}Fl%1!OE zZFsirH^$G>BDIy`8;R?lZl|uu@qWj2T5}((RG``6*05AWsVVa2Iu>!F5U>~7_Tlv{ zt=Dpgm~0QVa5mxta+fUt)I0gToeEm9eJX{yYZ~3sLR&nCuyuFWuiDIVJ+-lwViO(E zH+@Rg$&GLueMR$*K8kOl>+aF84Hss5p+dZ8hbW$=bWNIk0paB!qEK$xIm5{*^ad&( zgtA&gb&6FwaaR2G&+L+Pp>t^LrG*-B&Hv;-s(h0QTuYWdnUObu8LRSZoAVd7SJ;%$ zh%V?58mD~3G2X<$H7I)@x?lmbeeSY7X~QiE`dfQ5&K^FB#9e!6!@d9vrSt!);@ZQZ zO#84N5yH$kjm9X4iY#f+U`FKhg=x*FiDoUeu1O5LcC2w&$~5hKB9ZnH+8BpbTGh5T zi_nfmyQY$vQh%ildbR7T;7TKPxSs#vhKR|uup`qi1PufMa(tNCjRbllakshQgn1)a8OO-j8W&aBc_#q1hKDF5-X$h`!CeT z+c#Ial~fDsGAenv7~f@!icm(~)a3OKi((=^zcOb^qH$#DVciGXslUwTd$gt{7)&#a`&Lp ze%AnL0#U?lAl8vUkv$n>bxH*`qOujO0HZkPWZnE0;}0DSEu1O!hg-d9#{&#B1Dm)L zvN%r^hdEt1vR<4zwshg*0_BNrDWjo65be1&_82SW8#iKWs7>TCjUT;-K~*NxpG2P% zovXUo@S|fMGudVSRQrP}J3-Wxq;4xIxJJC|Y#TQBr>pwfy*%=`EUNE*dr-Y?9y9xK zmh1zS@z{^|UL}v**LNYY!?1qIRPTvr!gNXzE{%=-`oKclPrfMKwn` zUwPeIvLcxkIV>(SZ-SeBo-yw~{p!<&_}eELG?wxp zee-V59%@BtB+Z&Xs=O(@P$}v_qy1m=+`!~r^aT> zY+l?+6(L-=P%m4ScfAYR8;f9dyVw)@(;v{|nO#lAPI1xDHXMYt~-BGiP&9y2OQsYdh7-Q1(vL<$u6W0nxVn-qh=nwuRk}{d!uACozccRGx6~xZQ;=#JCE?OuA@;4 zadp$sm}jfgW4?La(pb!3f0B=HUI{5A4b$2rsB|ZGb?3@CTA{|zBf07pYpQ$NM({C6Srv6%_{rVkCndT=1nS}qyEf}Wjtg$e{ng7Wgz$7itYy0sWW_$qld);iUm85GBH)fk3b=2|5mvflm?~inoVo zDH_%e;y`DzoNj|NgZ`U%a9(N*=~8!qqy0Etkxo#`r!!{|(NyT0;5= z8nVZ6AiM+SjMG8J@6c4_f-KXd_}{My?Se1GWP|@wROFpD^5_lu?I%CBzpwi(`x~xh B8dv}T delta 17845 zcmV)CK*GO}(F4QI1F(Jx4W$DjNjn4p0N4ir06~)x5+0MO2`GQvQyWzj|J`gh3(E#l zNGO!HfVMRRN~%`0q^)g%XlN*vP!O#;m*h5VyX@j-1N|HN;8S1vqEAj=eCdn`)tUB9 zXZjcT^`bL6qvL}gvXj%9vrOD+x!Gc_0{$Zg+6lTXG$bmoEBV z*%y^c-mV0~Rjzv%e6eVI)yl>h;TMG)Ft8lqpR`>&IL&`>KDi5l$AavcVh9g;CF0tY zw_S0eIzKD?Nj~e4raA8wxiiImTRzv6;b6|LFmw)!E4=CiJ4I%&axSey4zE-MIh@*! z*P;K2Mx{xVYPLeagKA}Hj=N=1VrWU`ukuBnc14iBG?B}Uj>?=2UMk4|42=()8KOnc zrJzAxxaEIfjw(CKV6F$35u=1qyf(%cY8fXaS9iS?yetY{mQ#Xyat*7sSoM9fJlZqq zyasQ3>D>6p^`ck^Y|kYYZB*G})uAbQ#7)Jeb~glGz@2rPu}zBWDzo5K$tP<|meKV% z{Swf^eq6NBioF)v&~9NLIxHMTKe6gJ@QQ^A6fA!n#u1C&n`aG7TDXKM1Jly-DwTB` z+6?=Y)}hj;C#r5>&x;MCM4U13nuXVK*}@yRY~W3X%>U>*CB2C^K6_OZsXD!nG2RSX zQg*0)$G3%Es$otA@p_1N!hIPT(iSE=8OPZG+t)oFyD~{nevj0gZen$p>U<7}uRE`t5Mk1f4M0K*5 zbn@3IG5I2mk;8K>*RZ zPV6iL006)S001s%0eYj)9hu1 z9o)iQT9(v*sAuZ|ot){RrZ0Qw4{E0A+!Yx_M~#Pj&OPUM&i$RU=Uxu}e*6Sr2ror= z&?lmvFCO$)BY+^+21E>ENWe`I0{02H<-lz&?})gIVFyMWxX0B|0b?S6?qghp3lDgz z2?0|ALJU=7s-~Lb3>9AA5`#UYCl!Xeh^i@bxs5f&SdiD!WN}CIgq&WI4VCW;M!UJL zX2};d^sVj5oVl)OrkapV-C&SrG)*x=X*ru!2s04TjZ`pY$jP)4+%)7&MlpiZ`lgoF zo_p>^4qGz^(Y*uB10dY2kcIbt=$FIdYNqk;~47wf@)6|nJp z1cocL3zDR9N2Pxkw)dpi&_rvMW&Dh0@T*_}(1JFSc0S~Ph2Sr=vy)u*=TY$i_IHSo zR+&dtWFNxHE*!miRJ%o5@~GK^G~4$LzEYR-(B-b(L*3jyTq}M3d0g6sdx!X3-m&O% zK5g`P179KHJKXpIAAX`A2MFUA;`nXx^b?mboVbQgigIHTU8FI>`q53AjWaD&aowtj z{XyIX>c)*nLO~-WZG~>I)4S1d2q@&?nwL)CVSWqWi&m1&#K1!gt`g%O4s$u^->Dwq ziKc&0O9KQ7000OG0000%03-m(e&Y`S09YWC4iYDSty&3q8^?8ij|8zxaCt!zCFq1@ z9TX4Hl68`nY>}cQNW4Ullqp$~SHO~l1!CdFLKK}ij_t^a?I?C^CvlvnZkwiVn>dl2 z2$V(JN{`5`-8ShF_ek6HNRPBlPuIPYu>TAeAV5O2)35r3*_k(Q-h1+h5pb(Zu%oJ__pBsW0n5ILw`!&QR&YV`g0Fe z(qDM!FX_7;`U3rxX#QHT{f%h;)Eursw=*#qvV)~y%^Uo^% zi-%sMe^uz;#Pe;@{JUu05zT*i=u7mU9{MkT`ft(vPdQZoK&2mg=tnf8FsaNQ+QcPg zB>vP8Rd6Z0JoH5_Q`zldg;hx4azQCq*rRZThqlqTRMzn1O3_rQTrHk8LQ<{5UYN~` zM6*~lOGHyAnx&#yCK{i@%N1Us@=6cw=UQxpSE;<(LnnES%6^q^QhBYQ-VCSmIu8wh z@_LmwcFDfAhIn>`%h7L{)iGBzu`Md4dj-m3C8mA9+BL*<>q z#$7^ttIBOE-=^|zmG`K8yUKT{yjLu2SGYsreN0*~9yhFxn4U};Nv1XXj1fH*v-g=3 z@tCPc`YdzQGLp%zXwo*o$m9j-+~nSWls#s|?PyrHO%SUGdk**X9_=|b)Y%^j_V$3S z>mL2A-V)Q}qb(uZipEFVm?}HWc+%G6_K+S+87g-&RkRQ8-{0APDil115eG|&>WQhU zufO*|e`hFks^cJJmx_qNx{ltSp3aT|XgD5-VxGGXb7gkiOG$w^qMVBDjR8%!Sbh72niHRDV* ziFy8LE+*$j?t^6aZP9qt-ow;hzkmhvy*Hn-X^6?yVMbtNbyqZQ^rXg58`gk+I%Wv} zn_)dRq+3xjc8D%}EQ%nnTF7L7m}o9&*^jf`_qvUhVKY7w9Zgxr-0YHWFRd3$l_6UX zpXt^U&TiC*qZWx#pOG6k?3Tg)pra*fw(O6_45>lUBN1U5Qmc>^DHt)5b~Ntjsw!NI z1n4{$HWFeIi)*qvgK^ui;(81VQc1(wJ8C#tjR>Dkjf{xYC^_B^#qrdCc)uZxtgua6 zk98UGQF|;;k`c+0_z)tQ&9DwLB~&12@D1!*mTz_!3Mp=cg;B7Oq4cKN>5v&dW7q@H zal=g6Ipe`siZN4NZiBrkJCU*x216gmbV(FymgHuG@%%|8sgD?gR&0*{y4n=pukZnd z4=Nl~_>jVfbIehu)pG)WvuUpLR}~OKlW|)=S738Wh^a&L+Vx~KJU25o6%G7+Cy5mB zgmYsgkBC|@K4Jm_PwPoz`_|5QSk}^p`XV`649#jr4Lh^Q>Ne~#6Cqxn$7dNMF=%Va z%z9Ef6QmfoXAlQ3)PF8#3Y% zadcE<1`fd1&Q9fMZZnyI;&L;YPuy#TQ8b>AnXr*SGY&xUb>2678A+Y z8K%HOdgq_4LRFu_M>Ou|kj4W%sPPaV)#zDzN~25klE!!PFz_>5wCxglj7WZI13U5| zEq_YLKPH;v8sEhyG`dV_jozR);a6dBvkauhC;1dk%mr+J*Z6MMH9jqxFk@)&h{mHl zrf^i_d-#mTF=6-T8Rk?(1+rPGgl$9=j%#dkf@x6>czSc`jk7$f!9SrV{do%m!t8{? z_iAi$Qe&GDR#Nz^#uJ>-_?(E$ns)(3)X3cYY)?gFvU+N>nnCoBSmwB2<4L|xH19+4 z`$u#*Gt%mRw=*&|em}h_Y`Pzno?k^8e*hEwfM`A_yz-#vJtUfkGb=s>-!6cHfR$Mz z`*A8jVcz7T{n8M>ZTb_sl{EZ9Ctau4naX7TX?&g^VLE?wZ+}m)=YW4ODRy*lV4%-0 zG1XrPs($mVVfpnqoSihnIFkLdxG9um&n-U|`47l{bnr(|8dmglO7H~yeK7-wDwZXq zaHT($Qy2=MMuj@lir(iyxI1HnMlaJwpX86je}e=2n|Esb6hB?SmtDH3 z2qH6o`33b{;M{mDa5@@~1or8+Zcio*97pi1Jkx6v5MXCaYsb~Ynq)eWpKnF{n)FXZ z?Xd;o7ESu&rtMFr5(yJ(B7V>&0gnDdL*4MZH&eO+r*t!TR98ssbMRaw`7;`SLI8mT z=)hSAt~F=mz;JbDI6g~J%w!;QI(X14AnOu;uve^4wyaP3>(?jSLp+LQ7uU(iib%IyB(d&g@+hg;78M>h7yAeq$ALRoHGkKXA+E z$Sk-hd$Fs2nL4w9p@O*Y$c;U)W#d~)&8Js;i^Dp^* z0*7*zEGj~VehF4sRqSGny*K_CxeF=T^8;^lb}HF125G{kMRV?+hYktZWfNA^Mp7y8 zK~Q?ycf%rr+wgLaHQ|_<6z^eTG7izr@99SG9Q{$PCjJabSz`6L_QJJe7{LzTc$P&pwTy<&3RRUlSHmK;?}=QAhQaDW3#VWcNAH3 zeBPRTDf3?3mfdI$&WOg(nr9Gyzg`&u^o!f2rKJ57D_>p z6|?Vg?h(@(*X=o071{g^le>*>qSbVam`o}sAK8>b|11%e&;%`~b2OP7--q%0^2YDS z`2M`{2QYr1VC)sIW9WOu8<~7Q>^$*Og{KF+kI;wFegvaIDkB%3*%PWtWKSq7l`1YcDxQQ2@nv{J!xWV?G+w6C zhUUxUYVf%(Q(40_xrZB@rbxL=Dj3RV^{*yHd>4n-TOoHVRnazDOxxkS9kiZyN}IN3 zB^5N=* zRSTO+rA<{*P8-$GZdyUNOB=MzddG$*@q>mM;pUIiQ_z)hbE#Ze-IS)9G}Rt$5PSB{ zZZ;#h9nS7Rf1ecW&n(Gpu9}{vXQZ-f`UHIvD?cTbF`YvH*{rgE(zE22pLAQfhg-`U zuh612EpByB(~{w7svCylrBk%5$LCIyuhrGi=yOfca`=8ltKxHcSNfDRt@62QH^R_0 z&eQL6rRk>Dvf6rjMQv5ZXzg}S`HqV69hJT^pPHtdhqsrPJWs|IT9>BvpQa@*(FX6v zG}TYjreQCnH(slMt5{NgUf)qsS1F&Bb(M>$X}tWI&yt2I&-rJbqveuj?5J$`Dyfa2 z)m6Mq0XH@K)Y2v8X=-_4=4niodT&Y7W?$KLQhjA<+R}WTdYjX9>kD+SRS^oOY1{A= zZTId-(@wF^UEWso($wZtrs%e7t<}YaC_;#@`r0LUzKY&|qPJz*y~RHG`E6bypP5AX zN!p0^AUu8uDR>xM-ALFzBxXM~Q3z=}fHWCIG>0&I6x2Iu7&U)49j7qeMI&?qb$=4I zdMmhAJrO%@0f%YW! z^gLByEGSk+R0v4*d4w*N$Ju6z#j%HBI}6y$2en=-@S3=6+yZX94m&1j@s- z7T6|#0$c~dYq9IkA!P)AGkp~S$zYJ1SXZ#RM0|E~Q0PSm?DsT4N3f^)b#h(u9%_V5 zX*&EIX|gD~P!vtx?ra71pl%v)F!W~X2hcE!h8cu@6uKURdmo1-7icN4)ej4H1N~-C zjXgOK+mi#aJv4;`DZ%QUbVVZclkx;9`2kgbAhL^d{@etnm+5N8pB#fyH)bxtZGCAv z(%t0kPgBS{Q2HtjrfI0B$$M0c?{r~2T=zeXo7V&&aprCzww=i*}Atu7g^(*ivauMz~kkB%Vt{Wydlz%%2c26%>0PAbZO zVHx%tK(uzDl#ZZK`cW8TD2)eD77wB@gum{B2bO_jnqGl~01EF_^jx4Uqu1yfA~*&g zXJ`-N?D-n~5_QNF_5+Un-4&l$1b zVlHFqtluoN85b^C{A==lp#hS9J(npJ#6P4aY41r) zzCmv~c77X5L}H%sj>5t&@0heUDy;S1gSOS>JtH1v-k5l}z2h~i3^4NF6&iMb;ZYVE zMw*0%-9GdbpF1?HHim|4+)Zed=Fk<2Uz~GKc^P(Ig@x0&XuX0<-K(gA*KkN&lY2Xu zG054Q8wbK~$jE32#Ba*Id2vkqmfV{U$Nx9vJ;jeI`X+j1kh7hB8$CBTe@ANmT^tI8 z%U>zrTKuECin-M|B*gy(SPd`(_xvxjUL?s137KOyH>U{z01cBcFFt=Fp%d+BK4U;9 zQG_W5i)JASNpK)Q0wQpL<+Ml#cei41kCHe&P9?>p+KJN>I~`I^vK1h`IKB7k^xi`f z$H_mtr_+@M>C5+_xt%v}{#WO{86J83;VS@Ei3JLtp<*+hsY1oGzo z0?$?OJO$79;{|@aP!fO6t9TJ!?8i&|c&UPWRMbkwT3nEeFH`Yyyh6b%Rm^nBuTt@9 z+$&-4lf!G|@LCo3<8=yN@5dYbc%uq|Hz|0tiiLQKiUoM9g14zyECKGv0}3AWv2WJ zUAXGUhvkNk`0-H%ACsRSmy4fJ@kxBD3ZKSj6g(n1KPw?g{v19phcBr3BEF>J%lL|d zud3LNuL;cR*xS+;X+N^Br+x2{&hDMhb-$6_fKU(Pt0FQUXgNrZvzsVCnsFqv?#L z4-FYsQ-?D>;LdjHu_TT1CHN~aGkmDjWJkJg4G^!+V_APd%_48tErDv6BW5;ji^UDD zRu5Sw7wwplk`w{OGEKWJM&61c-AWn!SeUP8G#+beH4_Ov*)NUV?eGw&GHNDI6G(1Y zTfCv?T*@{QyK|!Q09wbk5koPD>=@(cA<~i4pSO?f(^5sSbdhUc+K$DW#_7^d7i%At z?KBg#vm$?P4h%?T=XymU;w*AsO_tJr)`+HUll+Uk_zx6vNw>G3jT){w3ck+Z=>7f0 zZVkM*!k^Z_E@_pZK6uH#|vzoL{-j1VFlUHP&5~q?j=UvJJNQG ztQdiCF$8_EaN_Pu8+afN6n8?m5UeR_p_6Log$5V(n9^W)-_vS~Ws`RJhQNPb1$C?| zd9D_ePe*`aI9AZ~Ltbg)DZ;JUo@-tu*O7CJ=T)ZI1&tn%#cisS85EaSvpS~c#CN9B z#Bx$vw|E@gm{;cJOuDi3F1#fxWZ9+5JCqVRCz5o`EDW890NUfNCuBn)3!&vFQE{E$L`Cf7FMSSX%ppLH+Z}#=p zSow$)$z3IL7frW#M>Z4|^9T!=Z8}B0h*MrWXXiVschEA=$a|yX9T~o!=%C?T+l^Cc zJx&MB$me(a*@lLLWZ=>PhKs!}#!ICa0! zq%jNgnF$>zrBZ3z%)Y*yOqHbKzEe_P=@<5$u^!~9G2OAzi#}oP&UL9JljG!zf{JIK z++G*8j)K=$#57N)hj_gSA8golO7xZP|KM?elUq)qLS)i(?&lk{oGMJh{^*FgklBY@Xfl<_Q zXP~(}ST6V01$~VfOmD6j!Hi}lsE}GQikW1YmBH)`f_+)KI!t#~B7=V;{F*`umxy#2Wt8(EbQ~ks9wZS(KV5#5Tn3Ia90r{}fI%pfbqBAG zhZ)E7)ZzqA672%@izC5sBpo>dCcpXi$VNFztSQnmI&u`@zQ#bqFd9d&ls?RomgbSh z9a2rjfNiKl2bR!$Y1B*?3Ko@s^L5lQN|i6ZtiZL|w5oq%{Fb@@E*2%%j=bcma{K~9 z*g1%nEZ;0g;S84ZZ$+Rfurh;Nhq0;{t~(EIRt}D@(Jb7fbe+_@H=t&)I)gPCtj*xI z9S>k?WEAWBmJZ|gs}#{3*pR`-`!HJ)1Dkx8vAM6Tv1bHZhH=MLI;iC#Y!$c|$*R>h zjP{ETat(izXB{@tTOAC4nWNhh1_%7AVaf!kVI5D=Jf5I1!?}stbx_Yv23hLf$iUTb z-)WrTtd2X+;vBW_q*Z6}B!10fs=2FA=3gy*dljsE43!G*3Uw(Is>(-a*5E!T4}b-Y zfvOC)-HYjNfcpi`=kG%(X3XcP?;p&=pz+F^6LKqRom~pA}O* zitR+Np{QZ(D2~p_Jh-k|dL!LPmexLM?tEqI^qRDq9Mg z5XBftj3z}dFir4oScbB&{m5>s{v&U=&_trq#7i&yQN}Z~OIu0}G)>RU*`4<}@7bB% zKYxGx0#L#u199YKSWZwV$nZd>D>{mDTs4qDNyi$4QT6z~D_%Bgf?>3L#NTtvX;?2D zS3IT*2i$Snp4fjDzR#<)A``4|dA(}wv^=L?rB!;kiotwU_gma`w+@AUtkSyhwp{M} z!e`jbUR3AG4XvnBVcyIZht6Vi~?pCC!$XF2 z*V~)DBVm8H7$*OZQJYl3482hadhsI2NCz~_NINtpC?|KI6H3`SG@1d%PsDdw{u}hq zN;OU~F7L1jT&KAitilb&Fl3X12zfSuFm;X)xQWOHL&7d)Q5wgn{78QJ6k5J;is+XP zCPO8_rlGMJB-kuQ*_=Yo1TswG4xnZd&eTjc8=-$6J^8TAa~kEnRQ@Zp-_W&B(4r@F zA==}0vBzsF1mB~743XqBmL9=0RSkGn$cvHf*hyc{<2{@hW+jKjbC|y%CNupHY_NC% zivz^btBLP-cDyV8j>u)=loBs>HoI5ME)xg)oK-Q0wAy|8WD$fm>K{-`0|W{H00;;G z000j`0OWQ8aHA9e04^;603eeQIvtaXMG=2tcr1y8Fl-J;AS+=<0%DU8Bp3oEEDhA^ zOY)M8%o5+cF$rC?trfMcty*f)R;^v=f~}||Xe!#;T3eTDZELN&-50xk+J1heP5AQ>h5O#S_uO;O@;~REd*_G$x$hVeE#bchX)otXQy|S5(oB)2a2%Sc(iDHm z=d>V|a!BLp9^#)o7^EQ2kg=K4%nI^sK2w@-kmvB+ARXYdq?xC2age6)e4$^UaY=wn zgLD^{X0A+{ySY+&7RpldwpC6=E zSPq?y(rl8ZN%(A*sapd4PU+dIakIwT0=zxIJEUW0kZSo|(zFEWdETY*ZjIk9uNMUA ze11=mHu8lUUlgRx!hItf0dAF#HfdIB+#aOuY--#QN9Ry zbx|XkG?PrBb@l6Owl{9Oa9w{x^R}%GwcEEfY;L-6OU8|9RXvu`-ECS`jcO1x1MP{P zcr;Bw##*Dod9K@pEx9z9G~MiNi>8v1OU-}vk*HbI)@CM? zn~b=jWUF%HP=CS+VCP>GiAU_UOz$aq3%%Z2laq^Gx`WAEmuNScCN)OlW>YHGYFgV2 z42lO5ZANs5VMXLS-RZTvBJkWy*OeV#L;7HwWg51*E|RpFR=H}h(|N+79g)tIW!RBK ze08bg^hlygY$C2`%N>7bDm`UZ(5M~DTanh3d~dg+OcNdUanr8azO?})g}EfnUB;5- zE1FX=ru?X=zAk4_6@__o1fE+ml1r&u^f1Kb24Jf-)zKla%-dbd>UZ1 zrj3!RR!Jg`ZnllKJ)4Yfg)@z>(fFepeOcp=F-^VHv?3jSxfa}-NB~*qkJ5Uq(yn+( z<8)qbZh{C!xnO@-XC~XMNVnr-Z+paowv!$H7>`ypMwA(X4(knx7z{UcWWe-wXM!d? zYT}xaVy|7T@yCbNOoy)$D=E%hUNTm(lPZqL)?$v+-~^-1P8m@Jm2t^L%4#!JK#Vtg zyUjM+Y*!$);1<)0MUqL00L0*EZcsE&usAK-?|{l|-)b7|PBKl}?TM6~#j9F+eZq25_L&oSl}DOMv^-tacpDI)l*Ws3u+~jO@;t(T)P=HCEZ#s_5q=m zOsVY!QsOJn)&+Ge6Tm)Ww_Bd@0PY(78ZJ)7_eP-cnXYk`>j9q`x2?Xc6O@55wF+6R zUPdIX!2{VGA;FSivN@+;GNZ7H2(pTDnAOKqF*ARg+C54vZ@Ve`i?%nDDvQRh?m&`1 zq46gH)wV=;UrwfCT3F(m!Q5qYpa!#f6qr0wF=5b9rk%HF(ITc!*R3wIFaCcftGwPt z(kzx{$*>g5L<;u}HzS4XD%ml zmdStbJcY@pn`!fUmkzJ8N>*8Y+DOO^r}1f4ix-`?x|khoRvF%jiA)8)P{?$8j2_qN zcl3Lm9-s$xdYN9)>3j6BPFK)Jbovl|Sf_p((CHe!4hx@F)hd&&*Xb&{TBj>%pT;-n z{3+hA^QZYnjXxtF2XwxPZ`S#J8h>5qLwtwM-{5abbEnRS z`9_`Zq8FJiI#0syE_V_3M&trw$P=ezkHosV$8&I5c0(*-9KBE5DJOC-Xv zw}1bq~AD0_Xerm`%ryiG9_$S z5G|btfiAUNdV09SO2l9v+e#(H6HYOdQs=^ z@xwZQU)~;p1L*~ciC}9ao{nQ-@B>rpUzKBxv=cUusOP5Trs3QnvHxGh9e>s7AM{V1|HfYe z3QwH;nHHR49fYzuGc3W3l5xrDAI392SFXx>lWE3V9Ds9il3PyZaN5>oC3>9W-^7vC z3~KZ-@iD?tIkhg+6t{m;RGk2%>@I0&kf)o$+-^ls0(YABNbM(=l#ad@nKp_j=b~Xs ziR;xu_+)lxy6|+af!@}gO2H_x)p;nZ-tYxW5Omq=l`GzMp*GTLr>vZN1?e}^C$t*Z zvzEdIc2|HA2RFN_4#EkzMqKnbbw!?!?%B@M0^^5Z;K?x-%lg?Z>}wMV8zEqHZ$cr~Y#Wv>9+)KMUZatUqbRU8 z8t9qrek(H^C0Tuzq|cP2$WL7tzj+Dj5y^2SF1D154CnsB$xbz`$wV||n-cG%rsT$p z+3RHdadK(3-noj(2L#8c5lODg)V8pv(GEnNb@F>dEHQr>!qge@L>#qg)RAUtiOYqF ziiV_ETExwD)bQ<))?-9$)E(FiRBYyC@}issHS!j9n)~I1tarxnQ2LfjdIJ)*jp{0E z&1oTd%!Qbw$W58s!6ms>F z=p0!~_Mv~8jyaicOS*t(ntw`5uFi0Bc4*mH8kSkk$>!f0;FM zX_t14I55!ZVsg0O$D2iuEDb7(J>5|NKW^Z~kzm@dax z9(|As$U7^}LF%#`6r&UPB*6`!Rf74h~*C=ami6xUxYCwiJxdr$+`z zKSC4A%8!s%R&j*2si(OEc*fy!q)?%=TjDZJ2}O zxT6o>jlKXz_7_Y$N})}IG`*#KfMzs#R(SI#)3*ZEzCv%_tu(VTZ5J| zw2$5kK)xTa>xGFgS0?X(NecjzFVKG%VVn?neu=&eQ+DJ1APlY1E?Q1s!Kk=yf7Uho z>8mg_!U{cKqpvI3ucSkC2V`!d^XMDk;>GG~>6>&X_z75-kv0UjevS5ORHV^e8r{tr z-9z*y&0eq3k-&c_AKw~<`8dtjsP0XgFv6AnG?0eo5P14T{xW#b*Hn2gEnt5-KvN1z zy!TUSi>IRbD3u+h@;fn7fy{F&hAKx7dG4i!c?5_GnvYV|_d&F16p;)pzEjB{zL-zr z(0&AZUkQ!(A>ghC5U-)t7(EXb-3)tNgb=z`>8m8n+N?vtl-1i&*ftMbE~0zsKG^I$ zSbh+rUiucsb!Ax@yB}j>yGeiKIZk1Xj!i#K^I*LZW_bWQIA-}FmJ~^}>p=K$bX9F{}z{s^KWc~OK(zl_X57aB^J9v}yQ5h#BE$+C)WOglV)nd0WWtaF{7`_Ur`my>4*NleQG#xae4fIo(b zW(&|g*#YHZNvDtE|6}yHvu(hDekJ-t*f!2RK;FZHRMb*l@Qwkh*~CqQRNLaepXypX z1?%ATf_nHIu3z6gK<7Dmd;{`0a!|toT0ck|TL$U;7Wr-*piO@R)KrbUz8SXO0vr1K z>76arfrqImq!ny+VkH!4?x*IR$d6*;ZA}Mhro(mzUa?agrFZpHi*)P~4~4N;XoIvH z9N%4VK|j4mV2DRQUD!_-9fmfA2(YVYyL#S$B;vqu7fnTbAFMqH``wS7^B5=|1O&fL z)qq(oV6_u4x(I(**#mD}MnAy(C&B4a1n6V%$&=vrIDq^F_KhE5Uw8_@{V`_#M0vCu zaNUXB=n0HT@D+ppDXi8-vp{tj)?7+k>1j}VvEKRgQ~DWva}8*pp`W8~KRo*kJ*&X} zP!~2fxQr@dM*q0dI|)Fux=pZWBk==RI7i{^BQf`kWlD2%|@R9!JA7& zLbM$uJ12y}_62$|T|{)@OJZtzfpL^t@1nMTYHutrF#D+^?~CN~9`YQ@#&&@c_Zf)( zbC~y8!2LO8jHwQXv>G~1q?c68ipT*%dY&c{8wd_!Y#~tMJ7yk!F8| zt?m_CLVw6cU@@p(#h4cY&Qsfz2Xp3w^4Cg%m03Tmq~9n%hyoMH^KY7{(QkRyn_!YB zzZa!Tgr~5$MAG$x)Fs71#6j}Kvcv3=9VUX8CH< zbP3|fY8f#$K*<5JQ7whM(v=GN2k26Xsh)#0!HKS(koLgAp-;)8z0w&_Z=nG4v6n8u z&Tm0Fi){4_!Y5Kp?!zv$FKfUifQ{%c82uYfrvE{%ejUd72aNYmI*0z3-a-EYr+bB->oH3#t(AY3 zV{Z=(SJr;D#0(`u*dc*~9T7D8Pudw894%!>c4wU&V1m<~0InidR6fbi?yPl(z+sKa zdF*kS>_4^1UO>y4T%Ar>epSr5&vp`$KdY7B(F%P0@VyHk@1fJ=6X0=aGjD-)BrOJD zW}IU@hg~^2r>a1fQvjTtvL*mKJ7q;pfP*U2=URL`VB_Y_JojbZ+MS=vaVN0C6L_MV zG1#5=35-E`KsD%r>-Q_ndvJ2tOYcMMP9f*t0iJ`(Z`^+YP)h>@lR(@Wvrt-`0tHG+ zuP2R@@mx=T@fPoQ1s`e^1I0H*kQPBGDky@!ZQG@8jY-+2ihreG5q$6i{3vmDTg0j$ zzRb*-nKN@{_wD`V6+i*YS)?$XfrA-sW?js?SYU8#vXxxQCc|*K!EbpWfu)3~jwq6_@KC0m;3A%jH^18_a0;ksC2DEwa@2{9@{ z9@T??<4QwR69zk{UvcHHX;`ICOwrF;@U;etd@YE)4MzI1WCsadP=`%^B>xPS-{`=~ zZ+2im8meb#4p~XIL9}ZOBg7D8R=PC8V}ObDcxEEK(4yGKcyCQWUe{9jCs+@k!_y|I z%s{W(&>P4w@hjQ>PQL$zY+=&aDU6cWr#hG)BVCyfP)h>@3IG5I2mk;8K>)Ppba*!h z005B=001VF5fT=Y4_ytCUk`sv8hJckqSy&Gc2Jx^WJ$J~08N{il-M$fz_ML$)Cpil z(nOv_nlZB^c4s&&O3h=OLiCz&(|f0 zxWU_-JZy>hxP*gvR>CLnNeQ1~g;6{g#-}AbkIzWR;j=8=6!AHpKQCbjFYxf9h%bov zVi;eNa1>t-<14KERUW>^KwoF+8zNo`Y*WiQwq}3m0_2RYtL9Wmu`JaRaQMQ)`Si^6+VbM`!rH~T?DX2=(n4nT zf`G`(Rpq*pDk*v~wMYPZ@vMNZDMPnxMYmU!lA{Xfo?n=Ibb4y3eyY1@Dut4|Y^ml& zqs$r}jAo=B(Ml>ogeEjyv(E`=kBzPf2uv9TQtO$~bamD#=Tv`lNy(K|w$J2O6jS51 zzZtOCHDWz7W0=L1XDW5WR5mtLGc~W+>*vX5{e~U@rE~?7e>vKU-v8bj;F4#abtcV(3ZtwXo9ia93HiETyQXwW4a-0){;$OU*l` zW^bjkyZTJ6_DL^0}`*)#EZ|2nvKRzMLH9-~@Z6$v#t8Dm%(qpP+DgzNe6d)1q zBqhyF$jJTyYFvl_=a>#I8jhJ)d6SBNPg#xg2^kZ3NX8kQ74ah(Y5Z8mlXyzTD&}Q8 ziY(pj-N-V2f>&hZQJ`Di%wp2fN(I%F@l)3M8GcSdNy+#HuO{$I8NXubRlFkL)cY@b z#`v{}-^hRXEq*8B_cG=%PZvI$eo(|8Wc(2o8L#0_GX9L$1@yV>%7mGk)QTD1R*OvS z4OW;ym1)%k9Bfem0tOqq3yyAUWp&q|LsN!RDnxa|j;>R|Mm2rIv7=tej5GFaa+`#| z;7u9Z_^XV+vD@2hF8Xe63+Qd`oig6S9jX(*DbjzPb*K-H7c^7E-(~!R6E%TrgW;RvG;WS{Ziv*W*a*`9Bb;$Er3?MyF~5GcXv`k>U)n}lwv$Sp+H@IKA5$mKk0g*4Ln{!tfvITeY zzr%8JJ5BdcEYsR9eGzJ4B&$}4FMmbRU6{8{_w7Kl77@PNe7|Bc#c?5(C5&Z=kJ#(oM90D4`rh2S!|^L!P#e#1hkD5@~-- z`63GV0~*rOZSqw7k^#-Y$Q4z3Oa2SPRURqEahB1B^h{7~+p03SwzqL9QU#$3-X zdYtQ?-K5xDAdfomEd6(yPtZ!yY_<35bMedeq`z2JWorljz5-f9<^93HM-$#+acw%9r!JOM%O<|BR`W& zd-%j_?b^q7Kl6{q^N{cg2u;11rFB5EP+oqG9&pHD#_Mo@aNMj;LUvsl&nK(ca(hT( zzFc2oHC6WQv8g7jo+3ZSwK+9G$cvfRnql)?g=XeQ3+LTh3)79nhEle8OqS3T$qn(> z(=5Bg?EWq-ldEywgzXW965%H(9^ik*rH(8dNdkbcS9|ow&_r`X~R^R?B+(oTiMzzlx8KnHqUi z8Rh-)VAnS-CO+3}yxqm8)X+N+uzieFVm-F#syP#M1p5&$wX3MJ8 z+R@grZ*5G^Uh4I@VT=>C4RJNc^~3mx$kS1F{L?3)BzdduD2MZKdu#jNno&f2&d{?` zW(>$oktzY@GO{|Ln~Bt^A4)(%?l-&(Dm!iL#$K_xOyhwAf=K2<+Bom zw7|hl6E5}B$d%n0sfZvfQRy9Fyz2~ z83#=#LaHnf1th^k*p|ux8!!8pfHE!)x*%=_hAddl)P%4h4%&8!5-W#xqqb}c=H(i|wqcIS&oDQ{ zhI7N-$f$ra3=RjPmMh?-IEkJYQ<}R9Z!}wmp$#~Uc%u1oh#TP}wF*kJJmQX2#27kL z_dz(yKufo<=m71bZfLp^Ll#t3(IHkrgMcvx@~om%Ib(h(<$Da7urTI`x|%`wD--sN zJEEa>4DGSEG?0ulkosfj8IMNN4)B=ZtvGG{|4Fp=Xhg!wPNgYzS>{Bp%%Qa+624X@ X49Luk)baa85H9$5YCsTPT`SVRWMtMW diff --git a/examples/gradle/wrapper/gradle-wrapper.properties b/examples/gradle/wrapper/gradle-wrapper.properties index 2e6e5897..3ae1e2f1 100755 --- a/examples/gradle/wrapper/gradle-wrapper.properties +++ b/examples/gradle/wrapper/gradle-wrapper.properties @@ -1,5 +1,5 @@ distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-7.3.3-bin.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-8.14.3-bin.zip zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists diff --git a/examples/gradlew b/examples/gradlew index 4f906e0c..1b6c7873 100755 --- a/examples/gradlew +++ b/examples/gradlew @@ -1,7 +1,7 @@ -#!/usr/bin/env sh +#!/bin/sh # -# Copyright 2015 the original author or authors. +# Copyright © 2015-2021 the original authors. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. @@ -17,67 +17,101 @@ # ############################################################################## -## -## Gradle start up script for UN*X -## +# +# Gradle start up script for POSIX generated by Gradle. +# +# Important for running: +# +# (1) You need a POSIX-compliant shell to run this script. If your /bin/sh is +# noncompliant, but you have some other compliant shell such as ksh or +# bash, then to run this script, type that shell name before the whole +# command line, like: +# +# ksh Gradle +# +# Busybox and similar reduced shells will NOT work, because this script +# requires all of these POSIX shell features: +# * functions; +# * expansions «$var», «${var}», «${var:-default}», «${var+SET}», +# «${var#prefix}», «${var%suffix}», and «$( cmd )»; +# * compound commands having a testable exit status, especially «case»; +# * various built-in commands including «command», «set», and «ulimit». +# +# Important for patching: +# +# (2) This script targets any POSIX shell, so it avoids extensions provided +# by Bash, Ksh, etc; in particular arrays are avoided. +# +# The "traditional" practice of packing multiple parameters into a +# space-separated string is a well documented source of bugs and security +# problems, so this is (mostly) avoided, by progressively accumulating +# options in "$@", and eventually passing that to Java. +# +# Where the inherited environment variables (DEFAULT_JVM_OPTS, JAVA_OPTS, +# and GRADLE_OPTS) rely on word-splitting, this is performed explicitly; +# see the in-line comments for details. +# +# There are tweaks for specific operating systems such as AIX, CygWin, +# Darwin, MinGW, and NonStop. +# +# (3) This script is generated from the Groovy template +# https://github.com/gradle/gradle/blob/master/subprojects/plugins/src/main/resources/org/gradle/api/internal/plugins/unixStartScript.txt +# within the Gradle project. +# +# You can find Gradle at https://github.com/gradle/gradle/. +# ############################################################################## # Attempt to set APP_HOME + # Resolve links: $0 may be a link -PRG="$0" -# Need this for relative symlinks. -while [ -h "$PRG" ] ; do - ls=`ls -ld "$PRG"` - link=`expr "$ls" : '.*-> \(.*\)$'` - if expr "$link" : '/.*' > /dev/null; then - PRG="$link" - else - PRG=`dirname "$PRG"`"/$link" - fi +app_path=$0 + +# Need this for daisy-chained symlinks. +while + APP_HOME=${app_path%"${app_path##*/}"} # leaves a trailing /; empty if no leading path + [ -h "$app_path" ] +do + ls=$( ls -ld "$app_path" ) + link=${ls#*' -> '} + case $link in #( + /*) app_path=$link ;; #( + *) app_path=$APP_HOME$link ;; + esac done -SAVED="`pwd`" -cd "`dirname \"$PRG\"`/" >/dev/null -APP_HOME="`pwd -P`" -cd "$SAVED" >/dev/null + +APP_HOME=$( cd "${APP_HOME:-./}" && pwd -P ) || exit APP_NAME="Gradle" -APP_BASE_NAME=`basename "$0"` +APP_BASE_NAME=${0##*/} # Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. DEFAULT_JVM_OPTS='"-Xmx64m" "-Xms64m"' # Use the maximum available, or set MAX_FD != -1 to use that value. -MAX_FD="maximum" +MAX_FD=maximum warn () { echo "$*" -} +} >&2 die () { echo echo "$*" echo exit 1 -} +} >&2 # OS specific support (must be 'true' or 'false'). cygwin=false msys=false darwin=false nonstop=false -case "`uname`" in - CYGWIN* ) - cygwin=true - ;; - Darwin* ) - darwin=true - ;; - MINGW* ) - msys=true - ;; - NONSTOP* ) - nonstop=true - ;; +case "$( uname )" in #( + CYGWIN* ) cygwin=true ;; #( + Darwin* ) darwin=true ;; #( + MSYS* | MINGW* ) msys=true ;; #( + NONSTOP* ) nonstop=true ;; esac CLASSPATH=$APP_HOME/gradle/wrapper/gradle-wrapper.jar @@ -87,9 +121,9 @@ CLASSPATH=$APP_HOME/gradle/wrapper/gradle-wrapper.jar if [ -n "$JAVA_HOME" ] ; then if [ -x "$JAVA_HOME/jre/sh/java" ] ; then # IBM's JDK on AIX uses strange locations for the executables - JAVACMD="$JAVA_HOME/jre/sh/java" + JAVACMD=$JAVA_HOME/jre/sh/java else - JAVACMD="$JAVA_HOME/bin/java" + JAVACMD=$JAVA_HOME/bin/java fi if [ ! -x "$JAVACMD" ] ; then die "ERROR: JAVA_HOME is set to an invalid directory: $JAVA_HOME @@ -98,7 +132,7 @@ Please set the JAVA_HOME variable in your environment to match the location of your Java installation." fi else - JAVACMD="java" + JAVACMD=java which java >/dev/null 2>&1 || die "ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. Please set the JAVA_HOME variable in your environment to match the @@ -106,80 +140,95 @@ location of your Java installation." fi # Increase the maximum file descriptors if we can. -if [ "$cygwin" = "false" -a "$darwin" = "false" -a "$nonstop" = "false" ] ; then - MAX_FD_LIMIT=`ulimit -H -n` - if [ $? -eq 0 ] ; then - if [ "$MAX_FD" = "maximum" -o "$MAX_FD" = "max" ] ; then - MAX_FD="$MAX_FD_LIMIT" - fi - ulimit -n $MAX_FD - if [ $? -ne 0 ] ; then - warn "Could not set maximum file descriptor limit: $MAX_FD" - fi - else - warn "Could not query maximum file descriptor limit: $MAX_FD_LIMIT" - fi +if ! "$cygwin" && ! "$darwin" && ! "$nonstop" ; then + case $MAX_FD in #( + max*) + MAX_FD=$( ulimit -H -n ) || + warn "Could not query maximum file descriptor limit" + esac + case $MAX_FD in #( + '' | soft) :;; #( + *) + ulimit -n "$MAX_FD" || + warn "Could not set maximum file descriptor limit to $MAX_FD" + esac fi -# For Darwin, add options to specify how the application appears in the dock -if $darwin; then - GRADLE_OPTS="$GRADLE_OPTS \"-Xdock:name=$APP_NAME\" \"-Xdock:icon=$APP_HOME/media/gradle.icns\"" -fi +# Collect all arguments for the java command, stacking in reverse order: +# * args from the command line +# * the main class name +# * -classpath +# * -D...appname settings +# * --module-path (only if needed) +# * DEFAULT_JVM_OPTS, JAVA_OPTS, and GRADLE_OPTS environment variables. # For Cygwin or MSYS, switch paths to Windows format before running java -if [ "$cygwin" = "true" -o "$msys" = "true" ] ; then - APP_HOME=`cygpath --path --mixed "$APP_HOME"` - CLASSPATH=`cygpath --path --mixed "$CLASSPATH"` - - JAVACMD=`cygpath --unix "$JAVACMD"` - - # We build the pattern for arguments to be converted via cygpath - ROOTDIRSRAW=`find -L / -maxdepth 1 -mindepth 1 -type d 2>/dev/null` - SEP="" - for dir in $ROOTDIRSRAW ; do - ROOTDIRS="$ROOTDIRS$SEP$dir" - SEP="|" - done - OURCYGPATTERN="(^($ROOTDIRS))" - # Add a user-defined pattern to the cygpath arguments - if [ "$GRADLE_CYGPATTERN" != "" ] ; then - OURCYGPATTERN="$OURCYGPATTERN|($GRADLE_CYGPATTERN)" - fi +if "$cygwin" || "$msys" ; then + APP_HOME=$( cygpath --path --mixed "$APP_HOME" ) + CLASSPATH=$( cygpath --path --mixed "$CLASSPATH" ) + + JAVACMD=$( cygpath --unix "$JAVACMD" ) + # Now convert the arguments - kludge to limit ourselves to /bin/sh - i=0 - for arg in "$@" ; do - CHECK=`echo "$arg"|egrep -c "$OURCYGPATTERN" -` - CHECK2=`echo "$arg"|egrep -c "^-"` ### Determine if an option - - if [ $CHECK -ne 0 ] && [ $CHECK2 -eq 0 ] ; then ### Added a condition - eval `echo args$i`=`cygpath --path --ignore --mixed "$arg"` - else - eval `echo args$i`="\"$arg\"" + for arg do + if + case $arg in #( + -*) false ;; # don't mess with options #( + /?*) t=${arg#/} t=/${t%%/*} # looks like a POSIX filepath + [ -e "$t" ] ;; #( + *) false ;; + esac + then + arg=$( cygpath --path --ignore --mixed "$arg" ) fi - i=`expr $i + 1` + # Roll the args list around exactly as many times as the number of + # args, so each arg winds up back in the position where it started, but + # possibly modified. + # + # NB: a `for` loop captures its iteration list before it begins, so + # changing the positional parameters here affects neither the number of + # iterations, nor the values presented in `arg`. + shift # remove old arg + set -- "$@" "$arg" # push replacement arg done - case $i in - 0) set -- ;; - 1) set -- "$args0" ;; - 2) set -- "$args0" "$args1" ;; - 3) set -- "$args0" "$args1" "$args2" ;; - 4) set -- "$args0" "$args1" "$args2" "$args3" ;; - 5) set -- "$args0" "$args1" "$args2" "$args3" "$args4" ;; - 6) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" ;; - 7) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" ;; - 8) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" ;; - 9) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" "$args8" ;; - esac fi -# Escape application args -save () { - for i do printf %s\\n "$i" | sed "s/'/'\\\\''/g;1s/^/'/;\$s/\$/' \\\\/" ; done - echo " " -} -APP_ARGS=`save "$@"` +# Collect all arguments for the java command; +# * $DEFAULT_JVM_OPTS, $JAVA_OPTS, and $GRADLE_OPTS can contain fragments of +# shell script including quotes and variable substitutions, so put them in +# double quotes to make sure that they get re-expanded; and +# * put everything else in single quotes, so that it's not re-expanded. + +set -- \ + "-Dorg.gradle.appname=$APP_BASE_NAME" \ + -classpath "$CLASSPATH" \ + org.gradle.wrapper.GradleWrapperMain \ + "$@" + +# Use "xargs" to parse quoted args. +# +# With -n1 it outputs one arg per line, with the quotes and backslashes removed. +# +# In Bash we could simply go: +# +# readarray ARGS < <( xargs -n1 <<<"$var" ) && +# set -- "${ARGS[@]}" "$@" +# +# but POSIX shell has neither arrays nor command substitution, so instead we +# post-process each arg (as a line of input to sed) to backslash-escape any +# character that might be a shell metacharacter, then use eval to reverse +# that process (while maintaining the separation between arguments), and wrap +# the whole thing up as a single "set" statement. +# +# This will of course break if any of these variables contains a newline or +# an unmatched quote. +# -# Collect all arguments for the java command, following the shell quoting and substitution rules -eval set -- $DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS "\"-Dorg.gradle.appname=$APP_BASE_NAME\"" -classpath "\"$CLASSPATH\"" org.gradle.wrapper.GradleWrapperMain "$APP_ARGS" +eval "set -- $( + printf '%s\n' "$DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS" | + xargs -n1 | + sed ' s~[^-[:alnum:]+,./:=@_]~\\&~g; ' | + tr '\n' ' ' + )" '"$@"' exec "$JAVACMD" "$@" diff --git a/examples/gradlew.bat b/examples/gradlew.bat index 107acd32..ac1b06f9 100755 --- a/examples/gradlew.bat +++ b/examples/gradlew.bat @@ -1,89 +1,89 @@ -@rem -@rem Copyright 2015 the original author or authors. -@rem -@rem Licensed under the Apache License, Version 2.0 (the "License"); -@rem you may not use this file except in compliance with the License. -@rem You may obtain a copy of the License at -@rem -@rem https://www.apache.org/licenses/LICENSE-2.0 -@rem -@rem Unless required by applicable law or agreed to in writing, software -@rem distributed under the License is distributed on an "AS IS" BASIS, -@rem WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -@rem See the License for the specific language governing permissions and -@rem limitations under the License. -@rem - -@if "%DEBUG%" == "" @echo off -@rem ########################################################################## -@rem -@rem Gradle startup script for Windows -@rem -@rem ########################################################################## - -@rem Set local scope for the variables with windows NT shell -if "%OS%"=="Windows_NT" setlocal - -set DIRNAME=%~dp0 -if "%DIRNAME%" == "" set DIRNAME=. -set APP_BASE_NAME=%~n0 -set APP_HOME=%DIRNAME% - -@rem Resolve any "." and ".." in APP_HOME to make it shorter. -for %%i in ("%APP_HOME%") do set APP_HOME=%%~fi - -@rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. -set DEFAULT_JVM_OPTS="-Xmx64m" "-Xms64m" - -@rem Find java.exe -if defined JAVA_HOME goto findJavaFromJavaHome - -set JAVA_EXE=java.exe -%JAVA_EXE% -version >NUL 2>&1 -if "%ERRORLEVEL%" == "0" goto execute - -echo. -echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. -echo. -echo Please set the JAVA_HOME variable in your environment to match the -echo location of your Java installation. - -goto fail - -:findJavaFromJavaHome -set JAVA_HOME=%JAVA_HOME:"=% -set JAVA_EXE=%JAVA_HOME%/bin/java.exe - -if exist "%JAVA_EXE%" goto execute - -echo. -echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME% -echo. -echo Please set the JAVA_HOME variable in your environment to match the -echo location of your Java installation. - -goto fail - -:execute -@rem Setup the command line - -set CLASSPATH=%APP_HOME%\gradle\wrapper\gradle-wrapper.jar - - -@rem Execute Gradle -"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %* - -:end -@rem End local scope for the variables with windows NT shell -if "%ERRORLEVEL%"=="0" goto mainEnd - -:fail -rem Set variable GRADLE_EXIT_CONSOLE if you need the _script_ return code instead of -rem the _cmd.exe /c_ return code! -if not "" == "%GRADLE_EXIT_CONSOLE%" exit 1 -exit /b 1 - -:mainEnd -if "%OS%"=="Windows_NT" endlocal - -:omega +@rem +@rem Copyright 2015 the original author or authors. +@rem +@rem Licensed under the Apache License, Version 2.0 (the "License"); +@rem you may not use this file except in compliance with the License. +@rem You may obtain a copy of the License at +@rem +@rem https://www.apache.org/licenses/LICENSE-2.0 +@rem +@rem Unless required by applicable law or agreed to in writing, software +@rem distributed under the License is distributed on an "AS IS" BASIS, +@rem WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +@rem See the License for the specific language governing permissions and +@rem limitations under the License. +@rem + +@if "%DEBUG%" == "" @echo off +@rem ########################################################################## +@rem +@rem Gradle startup script for Windows +@rem +@rem ########################################################################## + +@rem Set local scope for the variables with windows NT shell +if "%OS%"=="Windows_NT" setlocal + +set DIRNAME=%~dp0 +if "%DIRNAME%" == "" set DIRNAME=. +set APP_BASE_NAME=%~n0 +set APP_HOME=%DIRNAME% + +@rem Resolve any "." and ".." in APP_HOME to make it shorter. +for %%i in ("%APP_HOME%") do set APP_HOME=%%~fi + +@rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. +set DEFAULT_JVM_OPTS="-Xmx64m" "-Xms64m" + +@rem Find java.exe +if defined JAVA_HOME goto findJavaFromJavaHome + +set JAVA_EXE=java.exe +%JAVA_EXE% -version >NUL 2>&1 +if "%ERRORLEVEL%" == "0" goto execute + +echo. +echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. +echo. +echo Please set the JAVA_HOME variable in your environment to match the +echo location of your Java installation. + +goto fail + +:findJavaFromJavaHome +set JAVA_HOME=%JAVA_HOME:"=% +set JAVA_EXE=%JAVA_HOME%/bin/java.exe + +if exist "%JAVA_EXE%" goto execute + +echo. +echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME% +echo. +echo Please set the JAVA_HOME variable in your environment to match the +echo location of your Java installation. + +goto fail + +:execute +@rem Setup the command line + +set CLASSPATH=%APP_HOME%\gradle\wrapper\gradle-wrapper.jar + + +@rem Execute Gradle +"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %* + +:end +@rem End local scope for the variables with windows NT shell +if "%ERRORLEVEL%"=="0" goto mainEnd + +:fail +rem Set variable GRADLE_EXIT_CONSOLE if you need the _script_ return code instead of +rem the _cmd.exe /c_ return code! +if not "" == "%GRADLE_EXIT_CONSOLE%" exit 1 +exit /b 1 + +:mainEnd +if "%OS%"=="Windows_NT" endlocal + +:omega diff --git a/examples/settings.gradle b/examples/settings.gradle index 26f065f1..0f6b5991 100755 --- a/examples/settings.gradle +++ b/examples/settings.gradle @@ -1,7 +1,7 @@ -if (file(".build-local").exists()) { +if (file("../.build-examples").exists()) { includeBuild("../") { dependencySubstitution { - substitute(module("ch.loway.oss.ari4java:ari4java")).with(project(":")) + substitute(module("ch.loway.oss.ari4java:ari4java")).using(project(":")) } } } diff --git a/examples/src/main/java/ch/loway/oss/ari4java/examples/comprehensive/Asterisk.java b/examples/src/main/java/ch/loway/oss/ari4java/examples/comprehensive/Asterisk.java index 0d671698..c33e6c1d 100644 --- a/examples/src/main/java/ch/loway/oss/ari4java/examples/comprehensive/Asterisk.java +++ b/examples/src/main/java/ch/loway/oss/ari4java/examples/comprehensive/Asterisk.java @@ -44,6 +44,20 @@ public boolean start() { logger.info("Starting ARI..."); try { ari = ARI.build(address, ARI_APP_NAME, user, pass, version); + // execute syncronously to validate ARI before starting the event websocket + AsteriskInfo info = ari.asterisk().getInfo().execute(); + logger.info("Asterisk {}", info.getSystem().getVersion()); + threadPool = Executors.newFixedThreadPool(5); + ari.events().eventWebsocket(ARI_APP_NAME).execute(new Handler()); + return true; + } catch (Throwable t) { + logger.error("Error: {}", t.getMessage(), t); + } + return false; + } + + private void getAsteriskInfo() { + try { ari.asterisk().getInfo().execute(new AriCallback() { @Override public void onSuccess(AsteriskInfo info) { @@ -55,13 +69,9 @@ public void onFailure(RestException e) { logger.error("Error getting Asterisk version: {}", e.getMessage(), e); } }); - threadPool = Executors.newFixedThreadPool(5); - ari.events().eventWebsocket(ARI_APP_NAME).execute(new Handler()); - return true; } catch (Throwable t) { logger.error("Error: {}", t.getMessage(), t); } - return false; } /** diff --git a/examples/src/main/java/ch/loway/oss/ari4java/examples/comprehensive/WebServer.java b/examples/src/main/java/ch/loway/oss/ari4java/examples/comprehensive/WebServer.java index 4be3365b..21c77b4f 100644 --- a/examples/src/main/java/ch/loway/oss/ari4java/examples/comprehensive/WebServer.java +++ b/examples/src/main/java/ch/loway/oss/ari4java/examples/comprehensive/WebServer.java @@ -5,7 +5,7 @@ import io.netty.buffer.ByteBuf; import io.netty.buffer.Unpooled; import io.netty.channel.*; -import io.netty.channel.nio.NioEventLoopGroup; +import io.netty.channel.nio.NioIoHandler; import io.netty.channel.socket.SocketChannel; import io.netty.channel.socket.nio.NioServerSocketChannel; import io.netty.handler.codec.http.*; @@ -30,8 +30,8 @@ public WebServer(int port, Asterisk asterisk) { public void start() { logger.info("Starting HTTP Server on port {}", port); - parentGroup = new NioEventLoopGroup(1); - workerGroup = new NioEventLoopGroup(5); + parentGroup = new MultiThreadIoEventLoopGroup(1, NioIoHandler.newFactory()); + workerGroup = new MultiThreadIoEventLoopGroup(5, NioIoHandler.newFactory()); try { ServerBootstrap b = new ServerBootstrap(); b.group(parentGroup, workerGroup) @@ -73,8 +73,7 @@ public void channelReadComplete(ChannelHandlerContext ctx) { @Override protected void channelRead0(ChannelHandlerContext ctx, Object msg) throws Exception { - if (msg instanceof HttpRequest) { - HttpRequest request = (HttpRequest) msg; + if (msg instanceof HttpRequest request) { uri = request.uri(); method = request.method(); logger.debug("HttpRequest method: {}, uri: {}", method, uri); diff --git a/examples/vagrant/asterisk/keys/ca-req.cnf b/examples/vagrant/asterisk/keys/ca-req.cnf new file mode 100644 index 00000000..b23f7977 --- /dev/null +++ b/examples/vagrant/asterisk/keys/ca-req.cnf @@ -0,0 +1,10 @@ +[req] +distinguished_name = req_distinguished_name +prompt = no + +[req_distinguished_name] +O = ARI4JavaCA +CN = ari4java.localhost + +[ext] +basicConstraints=CA:TRUE diff --git a/examples/vagrant/asterisk/keys/cert-req.cnf b/examples/vagrant/asterisk/keys/cert-req.cnf new file mode 100644 index 00000000..c54ada2e --- /dev/null +++ b/examples/vagrant/asterisk/keys/cert-req.cnf @@ -0,0 +1,17 @@ +[req] +default_bits = 2048 +distinguished_name = req_distinguished_name +req_extensions = v3_req +prompt = no + +[req_distinguished_name] +O = ARI4Java +CN = ari4java.localhost + +[v3_req] +subjectAltName = @alt_names + +[alt_names] +DNS.1 = localhost +IP.1 = 127.0.0.1 +IP.2 = 192.168.56.44 diff --git a/examples/vagrant/asterisk/modules.conf b/examples/vagrant/asterisk/modules.conf index be4c2cc2..da3c74e5 100644 --- a/examples/vagrant/asterisk/modules.conf +++ b/examples/vagrant/asterisk/modules.conf @@ -35,6 +35,7 @@ load = cdr_csv.so load = chan_bridge_media.so load = chan_pjsip.so load = chan_iax2.so +load = chan_rtp.so ; Codecs @@ -80,12 +81,14 @@ load = func_hangupcause.so load = pbx_config.so load = pbx_spool.so +load = pbx_loopback.so ; Resources load = res_curl.so load = res_musiconhold.so load = res_pjproject.so +load = res_pjsip.so load = res_pjsip_acl.so load = res_pjsip_authenticator_digest.so load = res_pjsip_caller_id.so @@ -95,16 +98,16 @@ load = res_pjsip_diversion.so load = res_pjsip_dlg_options.so load = res_pjsip_dtmf_info.so load = res_pjsip_empty_info.so -load = res_pjsip_endpoint_identifier_user.so -load = res_pjsip_endpoint_identifier_ip.so load = res_pjsip_endpoint_identifier_anonymous.so +load = res_pjsip_endpoint_identifier_ip.so +load = res_pjsip_endpoint_identifier_user.so load = res_pjsip_exten_state.so load = res_pjsip_header_funcs.so load = res_pjsip_history.so load = res_pjsip_logger.so load = res_pjsip_messaging.so -load = res_pjsip_mwi_body_generator.so load = res_pjsip_mwi.so +load = res_pjsip_mwi_body_generator.so load = res_pjsip_nat.so load = res_pjsip_notify.so load = res_pjsip_one_touch_record_info.so @@ -120,16 +123,14 @@ load = res_pjsip_pubsub.so load = res_pjsip_refer.so load = res_pjsip_registrar.so load = res_pjsip_rfc3326.so +;load = res_pjsip_rfc3329.so load = res_pjsip_sdp_rtp.so load = res_pjsip_send_to_voicemail.so load = res_pjsip_session.so load = res_pjsip_sips_contact.so -load = res_pjsip.so load = res_pjsip_t38.so load = res_pjsip_transport_websocket.so load = res_pjsip_xpidf_body_generator.so -load = res_hep_pjsip.so -load = res_pjsip_phoneprov_provider.so load = res_rtp_asterisk.so load = res_rtp_multicast.so load = res_sorcery_astdb.so @@ -139,9 +140,13 @@ load = res_sorcery_realtime.so load = res_timing_timerfd.so load = res_timing_pthread.so load = res_http_media_cache.so +load = res_http_post.so load = res_http_websocket.so load = res_crypto.so load = res_srtp.so +load = res_timing_pthread.so +load = res_timing_timerfd.so +load = res_websocket_client.so ; Stasis (ARI) diff --git a/examples/vagrant/asterisk/musiconhold.conf b/examples/vagrant/asterisk/musiconhold.conf new file mode 100644 index 00000000..bc3ba212 --- /dev/null +++ b/examples/vagrant/asterisk/musiconhold.conf @@ -0,0 +1,5 @@ +[general] + +[default] +mode = files +directory = moh diff --git a/examples/vagrant/asterisk/pjsip.conf b/examples/vagrant/asterisk/pjsip.conf index 6ffee21f..e610ad06 100644 --- a/examples/vagrant/asterisk/pjsip.conf +++ b/examples/vagrant/asterisk/pjsip.conf @@ -5,19 +5,19 @@ type = transport protocol = udp bind = 0.0.0.0 -domain = ari4java.local +domain = ari4java.localhost [transport-wss] type=transport protocol=wss bind=0.0.0.0 -domain = ari4java.local +domain = ari4java.localhost websocket_write_timeout = 5000 [192.168.44.56] type = domain-alias -domain = ari4java.local +domain = ari4java.localhost [localhost] type = domain-alias -domain = ari4java.local +domain = ari4java.localhost diff --git a/examples/vagrant/asterisk/pjsip_notify.conf b/examples/vagrant/asterisk/pjsip_notify.conf new file mode 100644 index 00000000..8224ee1f --- /dev/null +++ b/examples/vagrant/asterisk/pjsip_notify.conf @@ -0,0 +1,57 @@ +; rfc3842 +; put empty "Content=>" at the end to have CRLF after last body line + +[clear-mwi] +Event=>message-summary +Content-type=>application/simple-message-summary +Content=>Messages-Waiting: no +Content=>Message-Account: sip:asterisk@127.0.0.1 +Content=>Voice-Message: 0/0 (0/0) +Content=> + +; Aastra + +[aastra-check-cfg] +Event=>check-sync + +[aastra-xml] +Event=>aastra-xml + +; Digium + +[digium-check-cfg] +Event=>check-sync + +; Linksys + +[linksys-cold-restart] +Event=>reboot_now + +[linksys-warm-restart] +Event=>restart_now + +; Polycom + +[polycom-check-cfg] +Event=>check-sync + +; Sipura + +[sipura-check-cfg] +Event=>resync + +[sipura-get-report] +Event=>report + +; snom + +[snom-check-cfg] +Event=>check-sync\;reboot=false + +[snom-reboot] +Event=>check-sync\;reboot=true + +; Cisco + +[cisco-check-cfg] +Event=>check-sync diff --git a/examples/vagrant/asterisk/pjsip_wizard.conf b/examples/vagrant/asterisk/pjsip_wizard.conf index fcdc248c..7cbbb7ac 100644 --- a/examples/vagrant/asterisk/pjsip_wizard.conf +++ b/examples/vagrant/asterisk/pjsip_wizard.conf @@ -13,12 +13,14 @@ endpoint/direct_media = no endpoint/force_rport = yes endpoint/disable_direct_media_on_nat = yes endpoint/direct_media_method = invite +endpoint/rtp_symmetric = yes endpoint/moh_suggest = default endpoint/send_rpid = yes endpoint/rewrite_contact = yes endpoint/send_pai = yes endpoint/allow_transfer = yes endpoint/device_state_busy_at = 1 +endpoint/from_domain = ari4java.localhost aor/qualify_frequency = 30 aor/authenticate_qualify = no aor/max_contacts = 1 @@ -32,11 +34,16 @@ transport = transport-wss endpoint/disallow=all endpoint/allow = opus,ulaw endpoint/webrtc = yes -endpoint/rtp_symmetric = yes -;endpoint/dtls_auto_generate_cert = yes +endpoint/media_encryption = dtls +endpoint/use_avpf = yes +endpoint/force_avp = yes endpoint/dtls_ca_file = /etc/asterisk/keys/ca.crt endpoint/dtls_cert_file = /etc/asterisk/keys/asterisk.crt endpoint/dtls_private_key = /etc/asterisk/keys/asterisk.key +endpoint/dtls_verify = fingerprint +endpoint/dtls_setup = actpass +endpoint/media_use_received_transport = yes +endpoint/rtcp_mux = yes ; User Extensions using the templates defined above [100](web-phone-defaults) @@ -51,7 +58,7 @@ inbound_auth/password = abc123 endpoint/context = from-internal endpoint/callerid = Extn 200 <200> -[300](web-phone-defaults) +[300](phone-defaults) inbound_auth/username = 300 inbound_auth/password = abc123 endpoint/context = from-internal diff --git a/examples/vagrant/asterisk/websocket_client.conf b/examples/vagrant/asterisk/websocket_client.conf new file mode 100644 index 00000000..ccc8a102 --- /dev/null +++ b/examples/vagrant/asterisk/websocket_client.conf @@ -0,0 +1,2 @@ +; Empty WebSocket Client Configuration +[general] diff --git a/examples/vagrant/scripts/provision.sh b/examples/vagrant/scripts/provision.sh index f04741cd..7f59296f 100755 --- a/examples/vagrant/scripts/provision.sh +++ b/examples/vagrant/scripts/provision.sh @@ -12,6 +12,8 @@ if [ "$DOCKER" == "false" ]; then sed -i 's/ubuntu-focal$/localpbx/g' /etc/hosts systemctl restart systemd-logind.service hostnamectl set-hostname localpbx +else + sed -i 's/localhost$/localhost ari4java.localhost/g' /etc/hosts fi # get the latest packages and upgrade them @@ -23,13 +25,15 @@ apt -y upgrade # install some pre-requisites echo "Installing some pre-requisites ..." apt -y install \ - curl \ - wget \ sox \ lame \ mpg123 \ libopusfile-dev \ - autoconf + autoconf \ + ca-certificates + +# update CAs +update-ca-certificates # set the timezone ln -snf /usr/share/zoneinfo/$(curl https://ipapi.co/timezone) /etc/localtime @@ -40,7 +44,11 @@ adduser --system --group --no-create-home asterisk mkdir -p /var/{lib,log,spool}/asterisk # goto home folder, download and build Asterisk using the version specified in AST_VER -AST_VER=16.27.0 +AST_VER=16.27.0 # works but old Jun-2022 +#AST_VER=18.26.4 # Aug-2025 +#AST_VER=20.0.3 # what different use... May-2023 +AST_VER=20.18.0 # LTS Jan-2026 +#AST_VER=22.8.0 # latest LTS Jan-2026, but JsSIP doesn't work on this version echo "Download, compile & setup Asterisk $AST_VER ..." cd ~ wget http://downloads.asterisk.org/pub/telephony/asterisk/releases/asterisk-$AST_VER.tar.gz @@ -67,20 +75,16 @@ fi make menuselect.makeopts if [ "$DOCKER" == "true" ]; then menuselect/menuselect \ - --enable CORE-SOUNDS-EN-SLN16 \ - --enable EXTRA-SOUNDS-EN-G722 \ + --enable CORE-SOUNDS-EN-WAV \ --enable EXTRA-SOUNDS-EN-WAV \ - --enable EXTRA-SOUNDS-EN-SLN16 \ --enable format_mp3 \ --disable chan_sip \ --disable BUILD_NATIVE \ menuselect.makeopts else menuselect/menuselect \ - --enable CORE-SOUNDS-EN-SLN16 \ - --enable EXTRA-SOUNDS-EN-G722 \ + --enable CORE-SOUNDS-EN-WAV \ --enable EXTRA-SOUNDS-EN-WAV \ - --enable EXTRA-SOUNDS-EN-SLN16 \ --enable codec_opus \ --enable format_mp3 \ --disable chan_sip \ @@ -99,18 +103,20 @@ if [ "$DOCKER" == "true" ]; then sed -i 's/format_ogg_opus/format_ogg_opus_open_source/g' /etc/asterisk/modules.conf fi # create keys for TLS -echo "Creating TLS keys ..." -mkdir -p /etc/asterisk/keys -openssl genrsa -des3 -out /etc/asterisk/keys/ca.key -passout pass:asterisk 4096 > /dev/null -openssl req -batch -new -x509 -days 3650 -subj "/O=ARI4Java/CN=ARI4Java CA" -key /etc/asterisk/keys/ca.key -passin pass:asterisk -out /etc/asterisk/keys/ca.crt > /dev/null -openssl genrsa -out /etc/asterisk/keys/asterisk.key 2048 > /dev/null -SUBJECT="/O=ARI4Java/CN=192.168.56.44" -if [ "$DOCKER" == "true" ]; then - SUBJECT="/O=ARI4Java/CN=localhost" +echo "TLS keys ..." +if [ ! -f /vagrant/asterisk/keys/asterisk.crt ]; then + openssl genrsa -des3 -out /vagrant/asterisk/keys/ca.key -passout pass:asterisk 4096 > /dev/null + openssl req -batch -new -x509 -days 3650 -config /vagrant/scripts/ca-req.cnf extensions v3_ca -key /vagrant/asterisk/keys/ca.key -passin pass:asterisk -out /vagrant/asterisk/keys/ca.crt > /dev/null + openssl genrsa -noenc -out /vagrant/asterisk/keys/asterisk.key 2048 > /dev/null + openssl req -batch -new -config /vagrant/scripts/cert-req.cnf -key /vagrant/asterisk/keys/asterisk.key -out /vagrant/asterisk/keys/asterisk.csr > /dev/null + openssl x509 -req -days 3650 -in /vagrant/asterisk/keys/asterisk.csr -CA /vagrant/asterisk/keys/ca.crt -CAkey /vagrant/asterisk/keys/ca.key -passin pass:asterisk -set_serial 01 -out /vagrant/asterisk/keys/asterisk.crt -extensions v3_req -extfile /vagrant/scripts/cert-req.cnf > /dev/null fi -openssl req -batch -new -subj "$SUBJECT" -key /etc/asterisk/keys/asterisk.key -out /etc/asterisk/keys/asterisk.csr > /dev/null -openssl x509 -req -days 3650 -in /etc/asterisk/keys/asterisk.csr -CA /etc/asterisk/keys/ca.crt -CAkey /etc/asterisk/keys/ca.key -passin pass:asterisk -set_serial 01 -out /etc/asterisk/keys/asterisk.crt > /dev/null +mkdir -p /etc/asterisk/keys +cp /vagrant/asterisk/keys/ca.crt /etc/asterisk/keys/ +cp /vagrant/asterisk/keys/asterisk.{key,crt} /etc/asterisk/keys/ chown -R asterisk:asterisk /etc/asterisk/keys +chmod 400 /etc/asterisk/keys/*.key +chmod 444 /etc/asterisk/keys/*.crt # add to systemd & start echo "Setup & Start Asterisk Service" diff --git a/examples/vagrant/static-http/ari4java-phone.html b/examples/vagrant/static-http/ari4java-phone.html index ef5097d0..c5e0ed72 100644 --- a/examples/vagrant/static-http/ari4java-phone.html +++ b/examples/vagrant/static-http/ari4java-phone.html @@ -7,7 +7,7 @@ - +

+ - \ No newline at end of file diff --git a/examples/vagrant/static-http/jssip-3.10.1.min.js b/examples/vagrant/static-http/jssip-3.10.1.min.js new file mode 100644 index 00000000..9ccbe302 --- /dev/null +++ b/examples/vagrant/static-http/jssip-3.10.1.min.js @@ -0,0 +1,9 @@ +/* + * JsSIP v3.10.1 + * the Javascript SIP library + * Copyright: 2012-2023 + * Homepage: https://jssip.net + * License: MIT + */ + +!function(e){if("object"==typeof exports&&"undefined"!=typeof module)module.exports=e();else if("function"==typeof define&&define.amd)define([],e);else{("undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:this).JsSIP=e()}}(function(){return function(){return function e(t,n,r){function s(o,l){if(!n[o]){if(!t[o]){var u="function"==typeof require&&require;if(!l&&u)return u(o,!0);if(i)return i(o,!0);var a=new Error("Cannot find module '"+o+"'");throw a.code="MODULE_NOT_FOUND",a}var c=n[o]={exports:{}};t[o][0].call(c.exports,function(e){return s(t[o][1][e]||e)},c,c.exports,e,t,n,r)}return n[o].exports}for(var i="function"==typeof require&&require,o=0;o=e.length?{done:!0}:{done:!1,value:e[r++]}},e:function(e){throw e},f:i}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var o,l=!0,u=!1;return{s:function(){n=e[Symbol.iterator]()},n:function(){var e=n.next();return l=e.done,e},e:function(e){u=!0,o=e},f:function(){try{l||null==n.return||n.return()}finally{if(u)throw o}}}}function s(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n0)return t}},connection_recovery_min_interval:function(e){if(i.isDecimal(e)){var t=Number(e);if(t>0)return t}},contact_uri:function(e){if("string"==typeof e){var t=l.parse(e,"SIP_URI");if(-1!==t)return t}},display_name:function(e){return e},instance_id:function(e){return/^uuid:/i.test(e)&&(e=e.substr(5)),-1===l.parse(e,"uuid")?void 0:e},no_answer_timeout:function(e){if(i.isDecimal(e)){var t=Number(e);if(t>0)return t}},session_timers:function(e){if("boolean"==typeof e)return e},session_timers_refresh_method:function(e){if("string"==typeof e&&((e=e.toUpperCase())===o.INVITE||e===o.UPDATE))return e},session_timers_force_refresher:function(e){if("boolean"==typeof e)return e},password:function(e){return String(e)},realm:function(e){return String(e)},ha1:function(e){return String(e)},register:function(e){if("boolean"==typeof e)return e},register_expires:function(e){if(i.isDecimal(e)){var t=Number(e);if(t>0)return t}},registrar_server:function(e){/^sip:/i.test(e)||(e="".concat(o.SIP,":").concat(e));var t=u.parse(e);return t?t.user?void 0:t:void 0},use_preloaded_route:function(e){if("boolean"==typeof e)return e},extra_headers:function(e){var t=[];if(Array.isArray(e)&&e.length){var n,s=r(e);try{for(s.s();!(n=s.n()).done;){var i=n.value;"string"==typeof i&&t.push(i)}}catch(e){s.e(e)}finally{s.f()}return t}}}};n.load=function(e,t){for(var n in h.mandatory){if(!t.hasOwnProperty(n))throw new c.ConfigurationError(n);var r=t[n],s=h.mandatory[n](r);if(void 0===s)throw new c.ConfigurationError(n,r);e[n]=s}for(var o in h.optional)if(t.hasOwnProperty(o)){var l=t[o];if(i.isEmpty(l))continue;var u=h.optional[o](l);if(void 0===u)throw new c.ConfigurationError(o,l);e[o]=u}}},{"./Constants":2,"./Exceptions":6,"./Grammar":7,"./Socket":22,"./URI":27,"./Utils":28}],2:[function(e,t,n){"use strict";var r=e("../package.json");t.exports={USER_AGENT:"".concat(r.title," ").concat(r.version),SIP:"sip",SIPS:"sips",causes:{CONNECTION_ERROR:"Connection Error",REQUEST_TIMEOUT:"Request Timeout",SIP_FAILURE_CODE:"SIP Failure Code",INTERNAL_ERROR:"Internal Error",BUSY:"Busy",REJECTED:"Rejected",REDIRECTED:"Redirected",UNAVAILABLE:"Unavailable",NOT_FOUND:"Not Found",ADDRESS_INCOMPLETE:"Address Incomplete",INCOMPATIBLE_SDP:"Incompatible SDP",MISSING_SDP:"Missing SDP",AUTHENTICATION_ERROR:"Authentication Error",BYE:"Terminated",WEBRTC_ERROR:"WebRTC Error",CANCELED:"Canceled",NO_ANSWER:"No Answer",EXPIRES:"Expires",NO_ACK:"No ACK",DIALOG_ERROR:"Dialog Error",USER_DENIED_MEDIA_ACCESS:"User Denied Media Access",BAD_MEDIA_DESCRIPTION:"Bad Media Description",RTP_TIMEOUT:"RTP Timeout"},SIP_ERROR_CAUSES:{REDIRECTED:[300,301,302,305,380],BUSY:[486,600],REJECTED:[403,603],NOT_FOUND:[404,604],UNAVAILABLE:[480,410,408,430],ADDRESS_INCOMPLETE:[484,424],INCOMPATIBLE_SDP:[488,606],AUTHENTICATION_ERROR:[401,407]},ACK:"ACK",BYE:"BYE",CANCEL:"CANCEL",INFO:"INFO",INVITE:"INVITE",MESSAGE:"MESSAGE",NOTIFY:"NOTIFY",OPTIONS:"OPTIONS",REGISTER:"REGISTER",REFER:"REFER",UPDATE:"UPDATE",SUBSCRIBE:"SUBSCRIBE",DTMF_TRANSPORT:{INFO:"INFO",RFC2833:"RFC2833"},REASON_PHRASE:{100:"Trying",180:"Ringing",181:"Call Is Being Forwarded",182:"Queued",183:"Session Progress",199:"Early Dialog Terminated",200:"OK",202:"Accepted",204:"No Notification",300:"Multiple Choices",301:"Moved Permanently",302:"Moved Temporarily",305:"Use Proxy",380:"Alternative Service",400:"Bad Request",401:"Unauthorized",402:"Payment Required",403:"Forbidden",404:"Not Found",405:"Method Not Allowed",406:"Not Acceptable",407:"Proxy Authentication Required",408:"Request Timeout",410:"Gone",412:"Conditional Request Failed",413:"Request Entity Too Large",414:"Request-URI Too Long",415:"Unsupported Media Type",416:"Unsupported URI Scheme",417:"Unknown Resource-Priority",420:"Bad Extension",421:"Extension Required",422:"Session Interval Too Small",423:"Interval Too Brief",424:"Bad Location Information",428:"Use Identity Header",429:"Provide Referrer Identity",430:"Flow Failed",433:"Anonymity Disallowed",436:"Bad Identity-Info",437:"Unsupported Certificate",438:"Invalid Identity Header",439:"First Hop Lacks Outbound Support",440:"Max-Breadth Exceeded",469:"Bad Info Package",470:"Consent Needed",478:"Unresolvable Destination",480:"Temporarily Unavailable",481:"Call/Transaction Does Not Exist",482:"Loop Detected",483:"Too Many Hops",484:"Address Incomplete",485:"Ambiguous",486:"Busy Here",487:"Request Terminated",488:"Not Acceptable Here",489:"Bad Event",491:"Request Pending",493:"Undecipherable",494:"Security Agreement Required",500:"JsSIP Internal Error",501:"Not Implemented",502:"Bad Gateway",503:"Service Unavailable",504:"Server Time-out",505:"Version Not Supported",513:"Message Too Large",580:"Precondition Failure",600:"Busy Everywhere",603:"Decline",604:"Does Not Exist Anywhere",606:"Not Acceptable"},ALLOWED_METHODS:"INVITE,ACK,CANCEL,BYE,UPDATE,MESSAGE,OPTIONS,REFER,INFO,NOTIFY",ACCEPTED_BODY_TYPES:"application/sdp, application/dtmf-relay",MAX_FORWARDS:69,SESSION_EXPIRES:90,MIN_SESSION_EXPIRES:60,CONNECTION_RECOVERY_MAX_INTERVAL:30,CONNECTION_RECOVERY_MIN_INTERVAL:2}},{"../package.json":40}],3:[function(e,t,n){"use strict";function r(e,t){for(var n=0;n3&&void 0!==arguments[3]?arguments[3]:d.STATUS_CONFIRMED;if(function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,e),this._owner=t,this._ua=t._ua,this._uac_pending_reply=!1,this._uas_pending_reply=!1,!n.hasHeader("contact"))return{error:"unable to create a Dialog without Contact header field"};n instanceof o.IncomingResponse&&(s=n.status_code<200?d.STATUS_EARLY:d.STATUS_CONFIRMED);var i=n.parseHeader("contact");"UAS"===r?(this._id={call_id:n.call_id,local_tag:n.to_tag,remote_tag:n.from_tag,toString:function(){return this.call_id+this.local_tag+this.remote_tag}},this._state=s,this._remote_seqnum=n.cseq,this._local_uri=n.parseHeader("to").uri,this._remote_uri=n.parseHeader("from").uri,this._remote_target=i.uri,this._route_set=n.getHeaders("record-route"),this._ack_seqnum=this._remote_seqnum):"UAC"===r&&(this._id={call_id:n.call_id,local_tag:n.from_tag,remote_tag:n.to_tag,toString:function(){return this.call_id+this.local_tag+this.remote_tag}},this._state=s,this._local_seqnum=n.cseq,this._local_uri=n.parseHeader("from").uri,this._remote_uri=n.parseHeader("to").uri,this._remote_target=i.uri,this._route_set=n.getHeaders("record-route").reverse(),this._ack_seqnum=null),this._ua.newDialog(this),h.debug("new ".concat(r," dialog created with status ").concat(this._state===d.STATUS_EARLY?"EARLY":"CONFIRMED"))}return s(e,null,[{key:"C",get:function(){return d}}]),s(e,[{key:"isTerminated",value:function(){return this._status===d.STATUS_TERMINATED}},{key:"update",value:function(e,t){this._state=d.STATUS_CONFIRMED,h.debug("dialog ".concat(this._id.toString()," changed to CONFIRMED state")),"UAC"===t&&(this._route_set=e.getHeaders("record-route").reverse())}},{key:"terminate",value:function(){h.debug("dialog ".concat(this._id.toString()," deleted")),this._ua.destroyDialog(this),this._state=d.STATUS_TERMINATED}},{key:"sendRequest",value:function(e){var t=this,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=c.cloneArray(n.extraHeaders),s=c.cloneObject(n.eventHandlers),i=n.body||null,o=this._createRequest(e,r,i);return s.onAuthenticated=function(){t._local_seqnum+=1},new a(this,o,s).send(),o}},{key:"receiveRequest",value:function(e){this._checkInDialogRequest(e)&&(e.method===l.ACK&&null!==this._ack_seqnum?this._ack_seqnum=null:e.method===l.INVITE&&(this._ack_seqnum=e.cseq),this._owner.receiveRequest(e))}},{key:"_createRequest",value:function(e,t,n){t=c.cloneArray(t),this._local_seqnum||(this._local_seqnum=Math.floor(1e4*Math.random()));var r=e===l.CANCEL||e===l.ACK?this._local_seqnum:this._local_seqnum+=1;return new o.OutgoingRequest(e,this._remote_target,this._ua,{cseq:r,call_id:this._id.call_id,from_uri:this._local_uri,from_tag:this._id.local_tag,to_uri:this._remote_uri,to_tag:this._id.remote_tag,route_set:this._route_set},t,n)}},{key:"_checkInDialogRequest",value:function(e){var t=this;if(this._remote_seqnum)if(e.cseqthis._remote_seqnum&&(this._remote_seqnum=e.cseq);else this._remote_seqnum=e.cseq;if(e.method===l.INVITE||e.method===l.UPDATE&&e.body){if(!0===this._uac_pending_reply)e.reply(491);else{if(!0===this._uas_pending_reply){var n=1+(10*Math.random()|0);return e.reply(500,null,["Retry-After:".concat(n)]),!1}this._uas_pending_reply=!0;e.server_transaction.on("stateChanged",function n(){e.server_transaction.state!==u.C.STATUS_ACCEPTED&&e.server_transaction.state!==u.C.STATUS_COMPLETED&&e.server_transaction.state!==u.C.STATUS_TERMINATED||(e.server_transaction.removeListener("stateChanged",n),t._uas_pending_reply=!1)})}e.hasHeader("contact")&&e.server_transaction.on("stateChanged",function(){e.server_transaction.state===u.C.STATUS_ACCEPTED&&(t._remote_target=e.parseHeader("contact").uri)})}else e.method===l.NOTIFY&&e.hasHeader("contact")&&e.server_transaction.on("stateChanged",function(){e.server_transaction.state===u.C.STATUS_COMPLETED&&(t._remote_target=e.parseHeader("contact").uri)});return!0}},{key:"id",get:function(){return this._id}},{key:"local_seqnum",get:function(){return this._local_seqnum},set:function(e){this._local_seqnum=e}},{key:"owner",get:function(){return this._owner}},{key:"uac_pending_reply",get:function(){return this._uac_pending_reply},set:function(e){this._uac_pending_reply=e}},{key:"uas_pending_reply",get:function(){return this._uas_pending_reply}}]),e}()},{"./Constants":2,"./Dialog/RequestSender":4,"./Logger":9,"./SIPMessage":21,"./Transactions":24,"./Utils":28}],4:[function(e,t,n){"use strict";function r(e,t){for(var n=0;n=200&&e.status_code<300?this._eventHandlers.onSuccessResponse(e):e.status_code>=300&&this._eventHandlers.onErrorResponse(e):(this._request.cseq=this._dialog.local_seqnum+=1,this._reattemptTimer=setTimeout(function(){t._dialog.isTerminated()||(t._reattempt=!0,t.send())},1e3)):e.status_code>=200&&e.status_code<300?this._eventHandlers.onSuccessResponse(e):e.status_code>=300&&this._eventHandlers.onErrorResponse(e)}},{key:"request",get:function(){return this._request}}])&&r(t.prototype,n),u&&r(t,u),e}()},{"../Constants":2,"../RequestSender":20,"../Transactions":24}],5:[function(e,t,n){"use strict";function r(e,t){for(var n=0;n2&&void 0!==arguments[2]?arguments[2]:null;if(this._algorithm=t.algorithm,this._realm=t.realm,this._nonce=t.nonce,this._opaque=t.opaque,this._stale=t.stale,this._algorithm){if("MD5"!==this._algorithm)return o.warn('authenticate() | challenge with Digest algorithm different than "MD5", authentication aborted'),!1}else this._algorithm="MD5";if(!this._nonce)return o.warn("authenticate() | challenge without Digest nonce, authentication aborted"),!1;if(!this._realm)return o.warn("authenticate() | challenge without Digest realm, authentication aborted"),!1;if(!this._credentials.password){if(!this._credentials.ha1)return o.warn("authenticate() | no plain SIP password nor ha1 provided, authentication aborted"),!1;if(this._credentials.realm!==this._realm)return o.warn('authenticate() | no plain SIP password, and stored `realm` does not match the given `realm`, cannot authenticate [stored:"%s", given:"%s"]',this._credentials.realm,this._realm),!1}if(t.qop)if(t.qop.indexOf("auth-int")>-1)this._qop="auth-int";else{if(!(t.qop.indexOf("auth")>-1))return o.warn('authenticate() | challenge without Digest qop different than "auth" or "auth-int", authentication aborted'),!1;this._qop="auth"}else this._qop=null;this._method=n,this._uri=r,this._cnonce=l||i.createRandomToken(12),this._nc+=1;var u,a,c=Number(this._nc).toString(16);return this._ncHex="00000000".substr(0,8-c.length)+c,4294967296===this._nc&&(this._nc=1,this._ncHex="00000001"),this._credentials.password?this._ha1=i.calculateMD5("".concat(this._credentials.username,":").concat(this._realm,":").concat(this._credentials.password)):this._ha1=this._credentials.ha1,"auth"===this._qop?(u="".concat(this._method,":").concat(this._uri),a=i.calculateMD5(u),o.debug('authenticate() | using qop=auth [a2:"%s"]',u),this._response=i.calculateMD5("".concat(this._ha1,":").concat(this._nonce,":").concat(this._ncHex,":").concat(this._cnonce,":auth:").concat(a))):"auth-int"===this._qop?(u="".concat(this._method,":").concat(this._uri,":").concat(i.calculateMD5(s||"")),a=i.calculateMD5(u),o.debug('authenticate() | using qop=auth-int [a2:"%s"]',u),this._response=i.calculateMD5("".concat(this._ha1,":").concat(this._nonce,":").concat(this._ncHex,":").concat(this._cnonce,":auth-int:").concat(a))):null===this._qop&&(u="".concat(this._method,":").concat(this._uri),a=i.calculateMD5(u),o.debug('authenticate() | using qop=null [a2:"%s"]',u),this._response=i.calculateMD5("".concat(this._ha1,":").concat(this._nonce,":").concat(a))),o.debug("authenticate() | response generated"),!0}},{key:"toString",value:function(){var e=[];if(!this._response)throw new Error("response field does not exist, cannot generate Authorization header");return e.push("algorithm=".concat(this._algorithm)),e.push('username="'.concat(this._credentials.username,'"')),e.push('realm="'.concat(this._realm,'"')),e.push('nonce="'.concat(this._nonce,'"')),e.push('uri="'.concat(this._uri,'"')),e.push('response="'.concat(this._response,'"')),this._opaque&&e.push('opaque="'.concat(this._opaque,'"')),this._qop&&(e.push("qop=".concat(this._qop)),e.push('cnonce="'.concat(this._cnonce,'"')),e.push("nc=".concat(this._ncHex))),"Digest ".concat(e.join(", "))}}])&&r(t.prototype,n),s&&r(t,s),e}()},{"./Logger":9,"./Utils":28}],6:[function(e,t,n){"use strict";function r(e){return(r="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function s(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function i(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),t&&c(e,t)}function o(e){var t=a();return function(){var n,s=h(e);if(t){var i=h(this).constructor;n=Reflect.construct(s,arguments,i)}else n=s.apply(this,arguments);return function(e,t){if(t&&("object"===r(t)||"function"==typeof t))return t;return function(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}(e)}(this,n)}}function l(e){var t="function"==typeof Map?new Map:void 0;return(l=function(e){if(null===e||(n=e,-1===Function.toString.call(n).indexOf("[native code]")))return e;var n;if("function"!=typeof e)throw new TypeError("Super expression must either be null or a function");if(void 0!==t){if(t.has(e))return t.get(e);t.set(e,r)}function r(){return u(e,arguments,h(this).constructor)}return r.prototype=Object.create(e.prototype,{constructor:{value:r,enumerable:!1,writable:!0,configurable:!0}}),c(r,e)})(e)}function u(e,t,n){return(u=a()?Reflect.construct:function(e,t,n){var r=[null];r.push.apply(r,t);var s=new(Function.bind.apply(e,r));return n&&c(s,n.prototype),s}).apply(null,arguments)}function a(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Date.prototype.toString.call(Reflect.construct(Date,[],function(){})),!0}catch(e){return!1}}function c(e,t){return(c=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}function h(e){return(h=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}var d=function(e){i(n,l(Error));var t=o(n);function n(e,r){var i;return s(this,n),(i=t.call(this)).code=1,i.name="CONFIGURATION_ERROR",i.parameter=e,i.value=r,i.message=i.value?"Invalid value ".concat(JSON.stringify(i.value),' for parameter "').concat(i.parameter,'"'):"Missing parameter: ".concat(i.parameter),i}return n}(),f=function(e){i(n,l(Error));var t=o(n);function n(e){var r;return s(this,n),(r=t.call(this)).code=2,r.name="INVALID_STATE_ERROR",r.status=e,r.message="Invalid status: ".concat(e),r}return n}(),_=function(e){i(n,l(Error));var t=o(n);function n(e){var r;return s(this,n),(r=t.call(this)).code=3,r.name="NOT_SUPPORTED_ERROR",r.message=e,r}return n}(),p=function(e){i(n,l(Error));var t=o(n);function n(e){var r;return s(this,n),(r=t.call(this)).code=4,r.name="NOT_READY_ERROR",r.message=e,r}return n}();t.exports={ConfigurationError:d,InvalidStateError:f,NotSupportedError:_,NotReadyError:p}},{}],7:[function(e,t,n){"use strict";t.exports=function(){function t(e){return'"'+e.replace(/\\/g,"\\\\").replace(/"/g,'\\"').replace(/\x08/g,"\\b").replace(/\t/g,"\\t").replace(/\n/g,"\\n").replace(/\f/g,"\\f").replace(/\r/g,"\\r").replace(/[\x00-\x07\x0B\x0E-\x1F\x80-\uFFFF]/g,escape)+'"'}var n={parse:function(n,r){var s={CRLF:c,DIGIT:h,ALPHA:d,HEXDIG:f,WSP:_,OCTET:p,DQUOTE:m,SP:v,HTAB:g,alphanum:y,reserved:T,unreserved:C,mark:b,escaped:S,LWS:E,SWS:A,HCOLON:R,TEXT_UTF8_TRIM:w,TEXT_UTF8char:I,UTF8_NONASCII:O,UTF8_CONT:k,LHEX:function(){var e;null===(e=h())&&(/^[a-f]/.test(n.charAt(i))?(e=n.charAt(i),i++):(e=null,0===o&&a("[a-f]")));return e},token:N,token_nodot:U,separators:function(){var e;40===n.charCodeAt(i)?(e="(",i++):(e=null,0===o&&a('"("'));null===e&&(41===n.charCodeAt(i)?(e=")",i++):(e=null,0===o&&a('")"')),null===e&&(60===n.charCodeAt(i)?(e="<",i++):(e=null,0===o&&a('"<"')),null===e&&(62===n.charCodeAt(i)?(e=">",i++):(e=null,0===o&&a('">"')),null===e&&(64===n.charCodeAt(i)?(e="@",i++):(e=null,0===o&&a('"@"')),null===e&&(44===n.charCodeAt(i)?(e=",",i++):(e=null,0===o&&a('","')),null===e&&(59===n.charCodeAt(i)?(e=";",i++):(e=null,0===o&&a('";"')),null===e&&(58===n.charCodeAt(i)?(e=":",i++):(e=null,0===o&&a('":"')),null===e&&(92===n.charCodeAt(i)?(e="\\",i++):(e=null,0===o&&a('"\\\\"')),null===e&&null===(e=m())&&(47===n.charCodeAt(i)?(e="/",i++):(e=null,0===o&&a('"/"')),null===e&&(91===n.charCodeAt(i)?(e="[",i++):(e=null,0===o&&a('"["')),null===e&&(93===n.charCodeAt(i)?(e="]",i++):(e=null,0===o&&a('"]"')),null===e&&(63===n.charCodeAt(i)?(e="?",i++):(e=null,0===o&&a('"?"')),null===e&&(61===n.charCodeAt(i)?(e="=",i++):(e=null,0===o&&a('"="')),null===e&&(123===n.charCodeAt(i)?(e="{",i++):(e=null,0===o&&a('"{"')),null===e&&(125===n.charCodeAt(i)?(e="}",i++):(e=null,0===o&&a('"}"')),null===e&&null===(e=v())&&(e=g()))))))))))))))));return e},word:x,STAR:D,SLASH:P,EQUAL:M,LPAREN:q,RPAREN:L,RAQUOT:H,LAQUOT:F,COMMA:j,SEMI:G,COLON:W,LDQUOT:V,RDQUOT:B,comment:function e(){var t,n,r;var s;s=i;t=q();if(null!==t){for(n=[],null===(r=K())&&null===(r=X())&&(r=e());null!==r;)n.push(r),null===(r=K())&&null===(r=X())&&(r=e());null!==n&&null!==(r=L())?t=[t,n,r]:(t=null,i=s)}else t=null,i=s;return t},ctext:K,quoted_string:z,quoted_string_clean:Y,qdtext:$,quoted_pair:X,SIP_URI_noparams:J,SIP_URI:Q,uri_scheme:Z,uri_scheme_sips:ee,uri_scheme_sip:te,userinfo:ne,user:re,user_unreserved:se,password:ie,hostport:oe,host:le,hostname:ue,domainlabel:ae,toplabel:ce,IPv6reference:he,IPv6address:de,h16:fe,ls32:_e,IPv4address:pe,dec_octet:me,port:ve,uri_parameters:ge,uri_parameter:ye,transport_param:Te,user_param:Ce,method_param:be,ttl_param:Se,maddr_param:Ee,lr_param:Ae,other_param:Re,pname:we,pvalue:Ie,paramchar:Oe,param_unreserved:ke,headers:Ne,header:Ue,hname:xe,hvalue:De,hnv_unreserved:Pe,Request_Response:function(){var e;null===(e=ht())&&(e=Me());return e},Request_Line:Me,Request_URI:qe,absoluteURI:Le,hier_part:He,net_path:Fe,abs_path:je,opaque_part:Ge,uric:We,uric_no_slash:Ve,path_segments:Be,segment:Ke,param:ze,pchar:Ye,scheme:$e,authority:Xe,srvr:Je,reg_name:Qe,query:Ze,SIP_Version:et,INVITEm:tt,ACKm:nt,OPTIONSm:rt,BYEm:st,CANCELm:it,REGISTERm:ot,SUBSCRIBEm:lt,NOTIFYm:ut,REFERm:at,Method:ct,Status_Line:ht,Status_Code:dt,extension_code:ft,Reason_Phrase:_t,Allow_Events:function(){var e,t,n,r,s,o;if(s=i,null!==(e=Lt())){for(t=[],o=i,null!==(n=j())&&null!==(r=Lt())?n=[n,r]:(n=null,i=o);null!==n;)t.push(n),o=i,null!==(n=j())&&null!==(r=Lt())?n=[n,r]:(n=null,i=o);null!==t?e=[e,t]:(e=null,i=s)}else e=null,i=s;return e},Call_ID:function(){var e,t,r,s,l,u;s=i,l=i,null!==(e=x())?(u=i,64===n.charCodeAt(i)?(t="@",i++):(t=null,0===o&&a('"@"')),null!==t&&null!==(r=x())?t=[t,r]:(t=null,i=u),null!==(t=null!==t?t:"")?e=[e,t]:(e=null,i=l)):(e=null,i=l);null!==e&&(c=s,e=void(jn=n.substring(i,c)));var c;null===e&&(i=s);return e},Contact:function(){var e,t,n,r,s,o,l;if(s=i,null===(e=D()))if(o=i,null!==(e=pt())){for(t=[],l=i,null!==(n=j())&&null!==(r=pt())?n=[n,r]:(n=null,i=l);null!==n;)t.push(n),l=i,null!==(n=j())&&null!==(r=pt())?n=[n,r]:(n=null,i=l);null!==t?e=[e,t]:(e=null,i=o)}else e=null,i=o;null!==e&&(e=function(e){var t,n;for(n=jn.multi_header.length,t=0;tl&&(l=i,u=[]),u.push(e))}function c(){var e;return"\r\n"===n.substr(i,2)?(e="\r\n",i+=2):(e=null,0===o&&a('"\\r\\n"')),e}function h(){var e;return/^[0-9]/.test(n.charAt(i))?(e=n.charAt(i),i++):(e=null,0===o&&a("[0-9]")),e}function d(){var e;return/^[a-zA-Z]/.test(n.charAt(i))?(e=n.charAt(i),i++):(e=null,0===o&&a("[a-zA-Z]")),e}function f(){var e;return/^[0-9a-fA-F]/.test(n.charAt(i))?(e=n.charAt(i),i++):(e=null,0===o&&a("[0-9a-fA-F]")),e}function _(){var e;return null===(e=v())&&(e=g()),e}function p(){var e;return/^[\0-\xFF]/.test(n.charAt(i))?(e=n.charAt(i),i++):(e=null,0===o&&a("[\\0-\\xFF]")),e}function m(){var e;return/^["]/.test(n.charAt(i))?(e=n.charAt(i),i++):(e=null,0===o&&a('["]')),e}function v(){var e;return 32===n.charCodeAt(i)?(e=" ",i++):(e=null,0===o&&a('" "')),e}function g(){var e;return 9===n.charCodeAt(i)?(e="\t",i++):(e=null,0===o&&a('"\\t"')),e}function y(){var e;return/^[a-zA-Z0-9]/.test(n.charAt(i))?(e=n.charAt(i),i++):(e=null,0===o&&a("[a-zA-Z0-9]")),e}function T(){var e;return 59===n.charCodeAt(i)?(e=";",i++):(e=null,0===o&&a('";"')),null===e&&(47===n.charCodeAt(i)?(e="/",i++):(e=null,0===o&&a('"/"')),null===e&&(63===n.charCodeAt(i)?(e="?",i++):(e=null,0===o&&a('"?"')),null===e&&(58===n.charCodeAt(i)?(e=":",i++):(e=null,0===o&&a('":"')),null===e&&(64===n.charCodeAt(i)?(e="@",i++):(e=null,0===o&&a('"@"')),null===e&&(38===n.charCodeAt(i)?(e="&",i++):(e=null,0===o&&a('"&"')),null===e&&(61===n.charCodeAt(i)?(e="=",i++):(e=null,0===o&&a('"="')),null===e&&(43===n.charCodeAt(i)?(e="+",i++):(e=null,0===o&&a('"+"')),null===e&&(36===n.charCodeAt(i)?(e="$",i++):(e=null,0===o&&a('"$"')),null===e&&(44===n.charCodeAt(i)?(e=",",i++):(e=null,0===o&&a('","'))))))))))),e}function C(){var e;return null===(e=y())&&(e=b()),e}function b(){var e;return 45===n.charCodeAt(i)?(e="-",i++):(e=null,0===o&&a('"-"')),null===e&&(95===n.charCodeAt(i)?(e="_",i++):(e=null,0===o&&a('"_"')),null===e&&(46===n.charCodeAt(i)?(e=".",i++):(e=null,0===o&&a('"."')),null===e&&(33===n.charCodeAt(i)?(e="!",i++):(e=null,0===o&&a('"!"')),null===e&&(126===n.charCodeAt(i)?(e="~",i++):(e=null,0===o&&a('"~"')),null===e&&(42===n.charCodeAt(i)?(e="*",i++):(e=null,0===o&&a('"*"')),null===e&&(39===n.charCodeAt(i)?(e="'",i++):(e=null,0===o&&a('"\'"')),null===e&&(40===n.charCodeAt(i)?(e="(",i++):(e=null,0===o&&a('"("')),null===e&&(41===n.charCodeAt(i)?(e=")",i++):(e=null,0===o&&a('")"')))))))))),e}function S(){var e,t,r,s,l;return s=i,l=i,37===n.charCodeAt(i)?(e="%",i++):(e=null,0===o&&a('"%"')),null!==e&&null!==(t=f())&&null!==(r=f())?e=[e,t,r]:(e=null,i=l),null!==e&&(e=e.join("")),null===e&&(i=s),e}function E(){var e,t,n,r,s,o;for(r=i,s=i,o=i,e=[],t=_();null!==t;)e.push(t),t=_();if(null!==e&&null!==(t=c())?e=[e,t]:(e=null,i=o),null!==(e=null!==e?e:"")){if(null!==(n=_()))for(t=[];null!==n;)t.push(n),n=_();else t=null;null!==t?e=[e,t]:(e=null,i=s)}else e=null,i=s;return null!==e&&(e=" "),null===e&&(i=r),e}function A(){var e;return e=null!==(e=E())?e:""}function R(){var e,t,r,s,l;for(s=i,l=i,e=[],null===(t=v())&&(t=g());null!==t;)e.push(t),null===(t=v())&&(t=g());return null!==e?(58===n.charCodeAt(i)?(t=":",i++):(t=null,0===o&&a('":"')),null!==t&&null!==(r=A())?e=[e,t,r]:(e=null,i=l)):(e=null,i=l),null!==e&&(e=":"),null===e&&(i=s),e}function w(){var e,t,r,s,o,l,u,a;if(o=i,l=i,null!==(t=I()))for(e=[];null!==t;)e.push(t),t=I();else e=null;if(null!==e){for(t=[],u=i,r=[],s=E();null!==s;)r.push(s),s=E();for(null!==r&&null!==(s=I())?r=[r,s]:(r=null,i=u);null!==r;){for(t.push(r),u=i,r=[],s=E();null!==s;)r.push(s),s=E();null!==r&&null!==(s=I())?r=[r,s]:(r=null,i=u)}null!==t?e=[e,t]:(e=null,i=l)}else e=null,i=l;return null!==e&&(a=o,e=n.substring(i,a)),null===e&&(i=o),e}function I(){var e;return/^[!-~]/.test(n.charAt(i))?(e=n.charAt(i),i++):(e=null,0===o&&a("[!-~]")),null===e&&(e=O()),e}function O(){var e;return/^[\x80-\uFFFF]/.test(n.charAt(i))?(e=n.charAt(i),i++):(e=null,0===o&&a("[\\x80-\\uFFFF]")),e}function k(){var e;return/^[\x80-\xBF]/.test(n.charAt(i))?(e=n.charAt(i),i++):(e=null,0===o&&a("[\\x80-\\xBF]")),e}function N(){var e,t,r,s;if(r=i,null===(t=y())&&(45===n.charCodeAt(i)?(t="-",i++):(t=null,0===o&&a('"-"')),null===t&&(46===n.charCodeAt(i)?(t=".",i++):(t=null,0===o&&a('"."')),null===t&&(33===n.charCodeAt(i)?(t="!",i++):(t=null,0===o&&a('"!"')),null===t&&(37===n.charCodeAt(i)?(t="%",i++):(t=null,0===o&&a('"%"')),null===t&&(42===n.charCodeAt(i)?(t="*",i++):(t=null,0===o&&a('"*"')),null===t&&(95===n.charCodeAt(i)?(t="_",i++):(t=null,0===o&&a('"_"')),null===t&&(43===n.charCodeAt(i)?(t="+",i++):(t=null,0===o&&a('"+"')),null===t&&(96===n.charCodeAt(i)?(t="`",i++):(t=null,0===o&&a('"`"')),null===t&&(39===n.charCodeAt(i)?(t="'",i++):(t=null,0===o&&a('"\'"')),null===t&&(126===n.charCodeAt(i)?(t="~",i++):(t=null,0===o&&a('"~"')))))))))))),null!==t)for(e=[];null!==t;)e.push(t),null===(t=y())&&(45===n.charCodeAt(i)?(t="-",i++):(t=null,0===o&&a('"-"')),null===t&&(46===n.charCodeAt(i)?(t=".",i++):(t=null,0===o&&a('"."')),null===t&&(33===n.charCodeAt(i)?(t="!",i++):(t=null,0===o&&a('"!"')),null===t&&(37===n.charCodeAt(i)?(t="%",i++):(t=null,0===o&&a('"%"')),null===t&&(42===n.charCodeAt(i)?(t="*",i++):(t=null,0===o&&a('"*"')),null===t&&(95===n.charCodeAt(i)?(t="_",i++):(t=null,0===o&&a('"_"')),null===t&&(43===n.charCodeAt(i)?(t="+",i++):(t=null,0===o&&a('"+"')),null===t&&(96===n.charCodeAt(i)?(t="`",i++):(t=null,0===o&&a('"`"')),null===t&&(39===n.charCodeAt(i)?(t="'",i++):(t=null,0===o&&a('"\'"')),null===t&&(126===n.charCodeAt(i)?(t="~",i++):(t=null,0===o&&a('"~"'))))))))))));else e=null;return null!==e&&(s=r,e=n.substring(i,s)),null===e&&(i=r),e}function U(){var e,t,r,s;if(r=i,null===(t=y())&&(45===n.charCodeAt(i)?(t="-",i++):(t=null,0===o&&a('"-"')),null===t&&(33===n.charCodeAt(i)?(t="!",i++):(t=null,0===o&&a('"!"')),null===t&&(37===n.charCodeAt(i)?(t="%",i++):(t=null,0===o&&a('"%"')),null===t&&(42===n.charCodeAt(i)?(t="*",i++):(t=null,0===o&&a('"*"')),null===t&&(95===n.charCodeAt(i)?(t="_",i++):(t=null,0===o&&a('"_"')),null===t&&(43===n.charCodeAt(i)?(t="+",i++):(t=null,0===o&&a('"+"')),null===t&&(96===n.charCodeAt(i)?(t="`",i++):(t=null,0===o&&a('"`"')),null===t&&(39===n.charCodeAt(i)?(t="'",i++):(t=null,0===o&&a('"\'"')),null===t&&(126===n.charCodeAt(i)?(t="~",i++):(t=null,0===o&&a('"~"'))))))))))),null!==t)for(e=[];null!==t;)e.push(t),null===(t=y())&&(45===n.charCodeAt(i)?(t="-",i++):(t=null,0===o&&a('"-"')),null===t&&(33===n.charCodeAt(i)?(t="!",i++):(t=null,0===o&&a('"!"')),null===t&&(37===n.charCodeAt(i)?(t="%",i++):(t=null,0===o&&a('"%"')),null===t&&(42===n.charCodeAt(i)?(t="*",i++):(t=null,0===o&&a('"*"')),null===t&&(95===n.charCodeAt(i)?(t="_",i++):(t=null,0===o&&a('"_"')),null===t&&(43===n.charCodeAt(i)?(t="+",i++):(t=null,0===o&&a('"+"')),null===t&&(96===n.charCodeAt(i)?(t="`",i++):(t=null,0===o&&a('"`"')),null===t&&(39===n.charCodeAt(i)?(t="'",i++):(t=null,0===o&&a('"\'"')),null===t&&(126===n.charCodeAt(i)?(t="~",i++):(t=null,0===o&&a('"~"')))))))))));else e=null;return null!==e&&(s=r,e=n.substring(i,s)),null===e&&(i=r),e}function x(){var e,t,r,s;if(r=i,null===(t=y())&&(45===n.charCodeAt(i)?(t="-",i++):(t=null,0===o&&a('"-"')),null===t&&(46===n.charCodeAt(i)?(t=".",i++):(t=null,0===o&&a('"."')),null===t&&(33===n.charCodeAt(i)?(t="!",i++):(t=null,0===o&&a('"!"')),null===t&&(37===n.charCodeAt(i)?(t="%",i++):(t=null,0===o&&a('"%"')),null===t&&(42===n.charCodeAt(i)?(t="*",i++):(t=null,0===o&&a('"*"')),null===t&&(95===n.charCodeAt(i)?(t="_",i++):(t=null,0===o&&a('"_"')),null===t&&(43===n.charCodeAt(i)?(t="+",i++):(t=null,0===o&&a('"+"')),null===t&&(96===n.charCodeAt(i)?(t="`",i++):(t=null,0===o&&a('"`"')),null===t&&(39===n.charCodeAt(i)?(t="'",i++):(t=null,0===o&&a('"\'"')),null===t&&(126===n.charCodeAt(i)?(t="~",i++):(t=null,0===o&&a('"~"')),null===t&&(40===n.charCodeAt(i)?(t="(",i++):(t=null,0===o&&a('"("')),null===t&&(41===n.charCodeAt(i)?(t=")",i++):(t=null,0===o&&a('")"')),null===t&&(60===n.charCodeAt(i)?(t="<",i++):(t=null,0===o&&a('"<"')),null===t&&(62===n.charCodeAt(i)?(t=">",i++):(t=null,0===o&&a('">"')),null===t&&(58===n.charCodeAt(i)?(t=":",i++):(t=null,0===o&&a('":"')),null===t&&(92===n.charCodeAt(i)?(t="\\",i++):(t=null,0===o&&a('"\\\\"')),null===t&&null===(t=m())&&(47===n.charCodeAt(i)?(t="/",i++):(t=null,0===o&&a('"/"')),null===t&&(91===n.charCodeAt(i)?(t="[",i++):(t=null,0===o&&a('"["')),null===t&&(93===n.charCodeAt(i)?(t="]",i++):(t=null,0===o&&a('"]"')),null===t&&(63===n.charCodeAt(i)?(t="?",i++):(t=null,0===o&&a('"?"')),null===t&&(123===n.charCodeAt(i)?(t="{",i++):(t=null,0===o&&a('"{"')),null===t&&(125===n.charCodeAt(i)?(t="}",i++):(t=null,0===o&&a('"}"')))))))))))))))))))))))),null!==t)for(e=[];null!==t;)e.push(t),null===(t=y())&&(45===n.charCodeAt(i)?(t="-",i++):(t=null,0===o&&a('"-"')),null===t&&(46===n.charCodeAt(i)?(t=".",i++):(t=null,0===o&&a('"."')),null===t&&(33===n.charCodeAt(i)?(t="!",i++):(t=null,0===o&&a('"!"')),null===t&&(37===n.charCodeAt(i)?(t="%",i++):(t=null,0===o&&a('"%"')),null===t&&(42===n.charCodeAt(i)?(t="*",i++):(t=null,0===o&&a('"*"')),null===t&&(95===n.charCodeAt(i)?(t="_",i++):(t=null,0===o&&a('"_"')),null===t&&(43===n.charCodeAt(i)?(t="+",i++):(t=null,0===o&&a('"+"')),null===t&&(96===n.charCodeAt(i)?(t="`",i++):(t=null,0===o&&a('"`"')),null===t&&(39===n.charCodeAt(i)?(t="'",i++):(t=null,0===o&&a('"\'"')),null===t&&(126===n.charCodeAt(i)?(t="~",i++):(t=null,0===o&&a('"~"')),null===t&&(40===n.charCodeAt(i)?(t="(",i++):(t=null,0===o&&a('"("')),null===t&&(41===n.charCodeAt(i)?(t=")",i++):(t=null,0===o&&a('")"')),null===t&&(60===n.charCodeAt(i)?(t="<",i++):(t=null,0===o&&a('"<"')),null===t&&(62===n.charCodeAt(i)?(t=">",i++):(t=null,0===o&&a('">"')),null===t&&(58===n.charCodeAt(i)?(t=":",i++):(t=null,0===o&&a('":"')),null===t&&(92===n.charCodeAt(i)?(t="\\",i++):(t=null,0===o&&a('"\\\\"')),null===t&&null===(t=m())&&(47===n.charCodeAt(i)?(t="/",i++):(t=null,0===o&&a('"/"')),null===t&&(91===n.charCodeAt(i)?(t="[",i++):(t=null,0===o&&a('"["')),null===t&&(93===n.charCodeAt(i)?(t="]",i++):(t=null,0===o&&a('"]"')),null===t&&(63===n.charCodeAt(i)?(t="?",i++):(t=null,0===o&&a('"?"')),null===t&&(123===n.charCodeAt(i)?(t="{",i++):(t=null,0===o&&a('"{"')),null===t&&(125===n.charCodeAt(i)?(t="}",i++):(t=null,0===o&&a('"}"'))))))))))))))))))))))));else e=null;return null!==e&&(s=r,e=n.substring(i,s)),null===e&&(i=r),e}function D(){var e,t,r,s,l;return s=i,l=i,null!==(e=A())?(42===n.charCodeAt(i)?(t="*",i++):(t=null,0===o&&a('"*"')),null!==t&&null!==(r=A())?e=[e,t,r]:(e=null,i=l)):(e=null,i=l),null!==e&&(e="*"),null===e&&(i=s),e}function P(){var e,t,r,s,l;return s=i,l=i,null!==(e=A())?(47===n.charCodeAt(i)?(t="/",i++):(t=null,0===o&&a('"/"')),null!==t&&null!==(r=A())?e=[e,t,r]:(e=null,i=l)):(e=null,i=l),null!==e&&(e="/"),null===e&&(i=s),e}function M(){var e,t,r,s,l;return s=i,l=i,null!==(e=A())?(61===n.charCodeAt(i)?(t="=",i++):(t=null,0===o&&a('"="')),null!==t&&null!==(r=A())?e=[e,t,r]:(e=null,i=l)):(e=null,i=l),null!==e&&(e="="),null===e&&(i=s),e}function q(){var e,t,r,s,l;return s=i,l=i,null!==(e=A())?(40===n.charCodeAt(i)?(t="(",i++):(t=null,0===o&&a('"("')),null!==t&&null!==(r=A())?e=[e,t,r]:(e=null,i=l)):(e=null,i=l),null!==e&&(e="("),null===e&&(i=s),e}function L(){var e,t,r,s,l;return s=i,l=i,null!==(e=A())?(41===n.charCodeAt(i)?(t=")",i++):(t=null,0===o&&a('")"')),null!==t&&null!==(r=A())?e=[e,t,r]:(e=null,i=l)):(e=null,i=l),null!==e&&(e=")"),null===e&&(i=s),e}function H(){var e,t,r,s;return r=i,s=i,62===n.charCodeAt(i)?(e=">",i++):(e=null,0===o&&a('">"')),null!==e&&null!==(t=A())?e=[e,t]:(e=null,i=s),null!==e&&(e=">"),null===e&&(i=r),e}function F(){var e,t,r,s;return r=i,s=i,null!==(e=A())?(60===n.charCodeAt(i)?(t="<",i++):(t=null,0===o&&a('"<"')),null!==t?e=[e,t]:(e=null,i=s)):(e=null,i=s),null!==e&&(e="<"),null===e&&(i=r),e}function j(){var e,t,r,s,l;return s=i,l=i,null!==(e=A())?(44===n.charCodeAt(i)?(t=",",i++):(t=null,0===o&&a('","')),null!==t&&null!==(r=A())?e=[e,t,r]:(e=null,i=l)):(e=null,i=l),null!==e&&(e=","),null===e&&(i=s),e}function G(){var e,t,r,s,l;return s=i,l=i,null!==(e=A())?(59===n.charCodeAt(i)?(t=";",i++):(t=null,0===o&&a('";"')),null!==t&&null!==(r=A())?e=[e,t,r]:(e=null,i=l)):(e=null,i=l),null!==e&&(e=";"),null===e&&(i=s),e}function W(){var e,t,r,s,l;return s=i,l=i,null!==(e=A())?(58===n.charCodeAt(i)?(t=":",i++):(t=null,0===o&&a('":"')),null!==t&&null!==(r=A())?e=[e,t,r]:(e=null,i=l)):(e=null,i=l),null!==e&&(e=":"),null===e&&(i=s),e}function V(){var e,t,n,r;return n=i,r=i,null!==(e=A())&&null!==(t=m())?e=[e,t]:(e=null,i=r),null!==e&&(e='"'),null===e&&(i=n),e}function B(){var e,t,n,r;return n=i,r=i,null!==(e=m())&&null!==(t=A())?e=[e,t]:(e=null,i=r),null!==e&&(e='"'),null===e&&(i=n),e}function K(){var e;return/^[!-']/.test(n.charAt(i))?(e=n.charAt(i),i++):(e=null,0===o&&a("[!-']")),null===e&&(/^[*-[]/.test(n.charAt(i))?(e=n.charAt(i),i++):(e=null,0===o&&a("[*-[]")),null===e&&(/^[\]-~]/.test(n.charAt(i))?(e=n.charAt(i),i++):(e=null,0===o&&a("[\\]-~]")),null===e&&null===(e=O())&&(e=E()))),e}function z(){var e,t,r,s,o,l,u;if(o=i,l=i,null!==(e=A()))if(null!==(t=m())){for(r=[],null===(s=$())&&(s=X());null!==s;)r.push(s),null===(s=$())&&(s=X());null!==r&&null!==(s=m())?e=[e,t,r,s]:(e=null,i=l)}else e=null,i=l;else e=null,i=l;return null!==e&&(u=o,e=n.substring(i,u)),null===e&&(i=o),e}function Y(){var e,t,r,s,o,l,u,a;if(o=i,l=i,null!==(e=A()))if(null!==(t=m())){for(r=[],null===(s=$())&&(s=X());null!==s;)r.push(s),null===(s=$())&&(s=X());null!==r&&null!==(s=m())?e=[e,t,r,s]:(e=null,i=l)}else e=null,i=l;else e=null,i=l;return null!==e&&(u=o,e=(a=n.substring(i,u).trim()).substring(1,a.length-1).replace(/\\([\x00-\x09\x0b-\x0c\x0e-\x7f])/g,"$1")),null===e&&(i=o),e}function $(){var e;return null===(e=E())&&(33===n.charCodeAt(i)?(e="!",i++):(e=null,0===o&&a('"!"')),null===e&&(/^[#-[]/.test(n.charAt(i))?(e=n.charAt(i),i++):(e=null,0===o&&a("[#-[]")),null===e&&(/^[\]-~]/.test(n.charAt(i))?(e=n.charAt(i),i++):(e=null,0===o&&a("[\\]-~]")),null===e&&(e=O())))),e}function X(){var e,t,r;return r=i,92===n.charCodeAt(i)?(e="\\",i++):(e=null,0===o&&a('"\\\\"')),null!==e?(/^[\0-\t]/.test(n.charAt(i))?(t=n.charAt(i),i++):(t=null,0===o&&a("[\\0-\\t]")),null===t&&(/^[\x0B-\f]/.test(n.charAt(i))?(t=n.charAt(i),i++):(t=null,0===o&&a("[\\x0B-\\f]")),null===t&&(/^[\x0E-]/.test(n.charAt(i))?(t=n.charAt(i),i++):(t=null,0===o&&a("[\\x0E-]")))),null!==t?e=[e,t]:(e=null,i=r)):(e=null,i=r),e}function J(){var e,t,r,s,l,u;return l=i,u=i,null!==(e=Z())?(58===n.charCodeAt(i)?(t=":",i++):(t=null,0===o&&a('":"')),null!==t&&null!==(r=null!==(r=ne())?r:"")&&null!==(s=oe())?e=[e,t,r,s]:(e=null,i=u)):(e=null,i=u),null!==e&&(e=function(e){try{jn.uri=new Hn(jn.scheme,jn.user,jn.host,jn.port),delete jn.scheme,delete jn.user,delete jn.host,delete jn.host_type,delete jn.port}catch(e){jn=-1}}()),null===e&&(i=l),e}function Q(){var e,t,s,l,u,c,h,d;return h=i,d=i,null!==(e=Z())?(58===n.charCodeAt(i)?(t=":",i++):(t=null,0===o&&a('":"')),null!==t&&null!==(s=null!==(s=ne())?s:"")&&null!==(l=oe())&&null!==(u=ge())&&null!==(c=null!==(c=Ne())?c:"")?e=[e,t,s,l,u,c]:(e=null,i=d)):(e=null,i=d),null!==e&&(e=function(e){try{jn.uri=new Hn(jn.scheme,jn.user,jn.host,jn.port,jn.uri_params,jn.uri_headers),delete jn.scheme,delete jn.user,delete jn.host,delete jn.host_type,delete jn.port,delete jn.uri_params,"SIP_URI"===r&&(jn=jn.uri)}catch(e){jn=-1}}()),null===e&&(i=h),e}function Z(){var e;return null===(e=ee())&&(e=te()),e}function ee(){var e,t,r;return t=i,"sips"===n.substr(i,4).toLowerCase()?(e=n.substr(i,4),i+=4):(e=null,0===o&&a('"sips"')),null!==e&&(r=e,e=void(jn.scheme=r.toLowerCase())),null===e&&(i=t),e}function te(){var e,t,r;return t=i,"sip"===n.substr(i,3).toLowerCase()?(e=n.substr(i,3),i+=3):(e=null,0===o&&a('"sip"')),null!==e&&(r=e,e=void(jn.scheme=r.toLowerCase())),null===e&&(i=t),e}function ne(){var e,t,r,s,l,u,c;return s=i,l=i,null!==(e=re())?(u=i,58===n.charCodeAt(i)?(t=":",i++):(t=null,0===o&&a('":"')),null!==t&&null!==(r=ie())?t=[t,r]:(t=null,i=u),null!==(t=null!==t?t:"")?(64===n.charCodeAt(i)?(r="@",i++):(r=null,0===o&&a('"@"')),null!==r?e=[e,t,r]:(e=null,i=l)):(e=null,i=l)):(e=null,i=l),null!==e&&(c=s,e=void(jn.user=decodeURIComponent(n.substring(i-1,c)))),null===e&&(i=s),e}function re(){var e,t;if(null===(t=C())&&null===(t=S())&&(t=se()),null!==t)for(e=[];null!==t;)e.push(t),null===(t=C())&&null===(t=S())&&(t=se());else e=null;return e}function se(){var e;return 38===n.charCodeAt(i)?(e="&",i++):(e=null,0===o&&a('"&"')),null===e&&(61===n.charCodeAt(i)?(e="=",i++):(e=null,0===o&&a('"="')),null===e&&(43===n.charCodeAt(i)?(e="+",i++):(e=null,0===o&&a('"+"')),null===e&&(36===n.charCodeAt(i)?(e="$",i++):(e=null,0===o&&a('"$"')),null===e&&(44===n.charCodeAt(i)?(e=",",i++):(e=null,0===o&&a('","')),null===e&&(59===n.charCodeAt(i)?(e=";",i++):(e=null,0===o&&a('";"')),null===e&&(63===n.charCodeAt(i)?(e="?",i++):(e=null,0===o&&a('"?"')),null===e&&(47===n.charCodeAt(i)?(e="/",i++):(e=null,0===o&&a('"/"'))))))))),e}function ie(){var e,t,r,s;for(r=i,e=[],null===(t=C())&&null===(t=S())&&(38===n.charCodeAt(i)?(t="&",i++):(t=null,0===o&&a('"&"')),null===t&&(61===n.charCodeAt(i)?(t="=",i++):(t=null,0===o&&a('"="')),null===t&&(43===n.charCodeAt(i)?(t="+",i++):(t=null,0===o&&a('"+"')),null===t&&(36===n.charCodeAt(i)?(t="$",i++):(t=null,0===o&&a('"$"')),null===t&&(44===n.charCodeAt(i)?(t=",",i++):(t=null,0===o&&a('","')))))));null!==t;)e.push(t),null===(t=C())&&null===(t=S())&&(38===n.charCodeAt(i)?(t="&",i++):(t=null,0===o&&a('"&"')),null===t&&(61===n.charCodeAt(i)?(t="=",i++):(t=null,0===o&&a('"="')),null===t&&(43===n.charCodeAt(i)?(t="+",i++):(t=null,0===o&&a('"+"')),null===t&&(36===n.charCodeAt(i)?(t="$",i++):(t=null,0===o&&a('"$"')),null===t&&(44===n.charCodeAt(i)?(t=",",i++):(t=null,0===o&&a('","')))))));return null!==e&&(s=r,e=void(jn.password=n.substring(i,s))),null===e&&(i=r),e}function oe(){var e,t,r,s,l;return s=i,null!==(e=le())?(l=i,58===n.charCodeAt(i)?(t=":",i++):(t=null,0===o&&a('":"')),null!==t&&null!==(r=ve())?t=[t,r]:(t=null,i=l),null!==(t=null!==t?t:"")?e=[e,t]:(e=null,i=s)):(e=null,i=s),e}function le(){var e,t,r;return t=i,null===(e=ue())&&null===(e=pe())&&(e=he()),null!==e&&(r=t,jn.host=n.substring(i,r).toLowerCase(),e=jn.host),null===e&&(i=t),e}function ue(){var e,t,r,s,l,u,c;for(s=i,l=i,e=[],u=i,null!==(t=ae())?(46===n.charCodeAt(i)?(r=".",i++):(r=null,0===o&&a('"."')),null!==r?t=[t,r]:(t=null,i=u)):(t=null,i=u);null!==t;)e.push(t),u=i,null!==(t=ae())?(46===n.charCodeAt(i)?(r=".",i++):(r=null,0===o&&a('"."')),null!==r?t=[t,r]:(t=null,i=u)):(t=null,i=u);return null!==e&&null!==(t=ce())?(46===n.charCodeAt(i)?(r=".",i++):(r=null,0===o&&a('"."')),null!==(r=null!==r?r:"")?e=[e,t,r]:(e=null,i=l)):(e=null,i=l),null!==e&&(c=s,jn.host_type="domain",e=n.substring(i,c)),null===e&&(i=s),e}function ae(){var e,t,r,s;if(s=i,null!==(e=y())){for(t=[],null===(r=y())&&(45===n.charCodeAt(i)?(r="-",i++):(r=null,0===o&&a('"-"')),null===r&&(95===n.charCodeAt(i)?(r="_",i++):(r=null,0===o&&a('"_"'))));null!==r;)t.push(r),null===(r=y())&&(45===n.charCodeAt(i)?(r="-",i++):(r=null,0===o&&a('"-"')),null===r&&(95===n.charCodeAt(i)?(r="_",i++):(r=null,0===o&&a('"_"'))));null!==t?e=[e,t]:(e=null,i=s)}else e=null,i=s;return e}function ce(){var e,t,r,s;if(s=i,null!==(e=d())){for(t=[],null===(r=y())&&(45===n.charCodeAt(i)?(r="-",i++):(r=null,0===o&&a('"-"')),null===r&&(95===n.charCodeAt(i)?(r="_",i++):(r=null,0===o&&a('"_"'))));null!==r;)t.push(r),null===(r=y())&&(45===n.charCodeAt(i)?(r="-",i++):(r=null,0===o&&a('"-"')),null===r&&(95===n.charCodeAt(i)?(r="_",i++):(r=null,0===o&&a('"_"'))));null!==t?e=[e,t]:(e=null,i=s)}else e=null,i=s;return e}function he(){var e,t,r,s,l,u;return s=i,l=i,91===n.charCodeAt(i)?(e="[",i++):(e=null,0===o&&a('"["')),null!==e&&null!==(t=de())?(93===n.charCodeAt(i)?(r="]",i++):(r=null,0===o&&a('"]"')),null!==r?e=[e,t,r]:(e=null,i=l)):(e=null,i=l),null!==e&&(u=s,jn.host_type="IPv6",e=n.substring(i,u)),null===e&&(i=s),e}function de(){var e,t,r,s,l,u,c,h,d,f,_,p,m,v,g,y,T;return v=i,g=i,null!==(e=fe())?(58===n.charCodeAt(i)?(t=":",i++):(t=null,0===o&&a('":"')),null!==t&&null!==(r=fe())?(58===n.charCodeAt(i)?(s=":",i++):(s=null,0===o&&a('":"')),null!==s&&null!==(l=fe())?(58===n.charCodeAt(i)?(u=":",i++):(u=null,0===o&&a('":"')),null!==u&&null!==(c=fe())?(58===n.charCodeAt(i)?(h=":",i++):(h=null,0===o&&a('":"')),null!==h&&null!==(d=fe())?(58===n.charCodeAt(i)?(f=":",i++):(f=null,0===o&&a('":"')),null!==f&&null!==(_=fe())?(58===n.charCodeAt(i)?(p=":",i++):(p=null,0===o&&a('":"')),null!==p&&null!==(m=_e())?e=[e,t,r,s,l,u,c,h,d,f,_,p,m]:(e=null,i=g)):(e=null,i=g)):(e=null,i=g)):(e=null,i=g)):(e=null,i=g)):(e=null,i=g)):(e=null,i=g),null===e&&(g=i,"::"===n.substr(i,2)?(e="::",i+=2):(e=null,0===o&&a('"::"')),null!==e&&null!==(t=fe())?(58===n.charCodeAt(i)?(r=":",i++):(r=null,0===o&&a('":"')),null!==r&&null!==(s=fe())?(58===n.charCodeAt(i)?(l=":",i++):(l=null,0===o&&a('":"')),null!==l&&null!==(u=fe())?(58===n.charCodeAt(i)?(c=":",i++):(c=null,0===o&&a('":"')),null!==c&&null!==(h=fe())?(58===n.charCodeAt(i)?(d=":",i++):(d=null,0===o&&a('":"')),null!==d&&null!==(f=fe())?(58===n.charCodeAt(i)?(_=":",i++):(_=null,0===o&&a('":"')),null!==_&&null!==(p=_e())?e=[e,t,r,s,l,u,c,h,d,f,_,p]:(e=null,i=g)):(e=null,i=g)):(e=null,i=g)):(e=null,i=g)):(e=null,i=g)):(e=null,i=g),null===e&&(g=i,"::"===n.substr(i,2)?(e="::",i+=2):(e=null,0===o&&a('"::"')),null!==e&&null!==(t=fe())?(58===n.charCodeAt(i)?(r=":",i++):(r=null,0===o&&a('":"')),null!==r&&null!==(s=fe())?(58===n.charCodeAt(i)?(l=":",i++):(l=null,0===o&&a('":"')),null!==l&&null!==(u=fe())?(58===n.charCodeAt(i)?(c=":",i++):(c=null,0===o&&a('":"')),null!==c&&null!==(h=fe())?(58===n.charCodeAt(i)?(d=":",i++):(d=null,0===o&&a('":"')),null!==d&&null!==(f=_e())?e=[e,t,r,s,l,u,c,h,d,f]:(e=null,i=g)):(e=null,i=g)):(e=null,i=g)):(e=null,i=g)):(e=null,i=g),null===e&&(g=i,"::"===n.substr(i,2)?(e="::",i+=2):(e=null,0===o&&a('"::"')),null!==e&&null!==(t=fe())?(58===n.charCodeAt(i)?(r=":",i++):(r=null,0===o&&a('":"')),null!==r&&null!==(s=fe())?(58===n.charCodeAt(i)?(l=":",i++):(l=null,0===o&&a('":"')),null!==l&&null!==(u=fe())?(58===n.charCodeAt(i)?(c=":",i++):(c=null,0===o&&a('":"')),null!==c&&null!==(h=_e())?e=[e,t,r,s,l,u,c,h]:(e=null,i=g)):(e=null,i=g)):(e=null,i=g)):(e=null,i=g),null===e&&(g=i,"::"===n.substr(i,2)?(e="::",i+=2):(e=null,0===o&&a('"::"')),null!==e&&null!==(t=fe())?(58===n.charCodeAt(i)?(r=":",i++):(r=null,0===o&&a('":"')),null!==r&&null!==(s=fe())?(58===n.charCodeAt(i)?(l=":",i++):(l=null,0===o&&a('":"')),null!==l&&null!==(u=_e())?e=[e,t,r,s,l,u]:(e=null,i=g)):(e=null,i=g)):(e=null,i=g),null===e&&(g=i,"::"===n.substr(i,2)?(e="::",i+=2):(e=null,0===o&&a('"::"')),null!==e&&null!==(t=fe())?(58===n.charCodeAt(i)?(r=":",i++):(r=null,0===o&&a('":"')),null!==r&&null!==(s=_e())?e=[e,t,r,s]:(e=null,i=g)):(e=null,i=g),null===e&&(g=i,"::"===n.substr(i,2)?(e="::",i+=2):(e=null,0===o&&a('"::"')),null!==e&&null!==(t=_e())?e=[e,t]:(e=null,i=g),null===e&&(g=i,"::"===n.substr(i,2)?(e="::",i+=2):(e=null,0===o&&a('"::"')),null!==e&&null!==(t=fe())?e=[e,t]:(e=null,i=g),null===e&&(g=i,null!==(e=fe())?("::"===n.substr(i,2)?(t="::",i+=2):(t=null,0===o&&a('"::"')),null!==t&&null!==(r=fe())?(58===n.charCodeAt(i)?(s=":",i++):(s=null,0===o&&a('":"')),null!==s&&null!==(l=fe())?(58===n.charCodeAt(i)?(u=":",i++):(u=null,0===o&&a('":"')),null!==u&&null!==(c=fe())?(58===n.charCodeAt(i)?(h=":",i++):(h=null,0===o&&a('":"')),null!==h&&null!==(d=fe())?(58===n.charCodeAt(i)?(f=":",i++):(f=null,0===o&&a('":"')),null!==f&&null!==(_=_e())?e=[e,t,r,s,l,u,c,h,d,f,_]:(e=null,i=g)):(e=null,i=g)):(e=null,i=g)):(e=null,i=g)):(e=null,i=g)):(e=null,i=g),null===e&&(g=i,null!==(e=fe())?(y=i,58===n.charCodeAt(i)?(t=":",i++):(t=null,0===o&&a('":"')),null!==t&&null!==(r=fe())?t=[t,r]:(t=null,i=y),null!==(t=null!==t?t:"")?("::"===n.substr(i,2)?(r="::",i+=2):(r=null,0===o&&a('"::"')),null!==r&&null!==(s=fe())?(58===n.charCodeAt(i)?(l=":",i++):(l=null,0===o&&a('":"')),null!==l&&null!==(u=fe())?(58===n.charCodeAt(i)?(c=":",i++):(c=null,0===o&&a('":"')),null!==c&&null!==(h=fe())?(58===n.charCodeAt(i)?(d=":",i++):(d=null,0===o&&a('":"')),null!==d&&null!==(f=_e())?e=[e,t,r,s,l,u,c,h,d,f]:(e=null,i=g)):(e=null,i=g)):(e=null,i=g)):(e=null,i=g)):(e=null,i=g)):(e=null,i=g),null===e&&(g=i,null!==(e=fe())?(y=i,58===n.charCodeAt(i)?(t=":",i++):(t=null,0===o&&a('":"')),null!==t&&null!==(r=fe())?t=[t,r]:(t=null,i=y),null!==(t=null!==t?t:"")?(y=i,58===n.charCodeAt(i)?(r=":",i++):(r=null,0===o&&a('":"')),null!==r&&null!==(s=fe())?r=[r,s]:(r=null,i=y),null!==(r=null!==r?r:"")?("::"===n.substr(i,2)?(s="::",i+=2):(s=null,0===o&&a('"::"')),null!==s&&null!==(l=fe())?(58===n.charCodeAt(i)?(u=":",i++):(u=null,0===o&&a('":"')),null!==u&&null!==(c=fe())?(58===n.charCodeAt(i)?(h=":",i++):(h=null,0===o&&a('":"')),null!==h&&null!==(d=_e())?e=[e,t,r,s,l,u,c,h,d]:(e=null,i=g)):(e=null,i=g)):(e=null,i=g)):(e=null,i=g)):(e=null,i=g)):(e=null,i=g),null===e&&(g=i,null!==(e=fe())?(y=i,58===n.charCodeAt(i)?(t=":",i++):(t=null,0===o&&a('":"')),null!==t&&null!==(r=fe())?t=[t,r]:(t=null,i=y),null!==(t=null!==t?t:"")?(y=i,58===n.charCodeAt(i)?(r=":",i++):(r=null,0===o&&a('":"')),null!==r&&null!==(s=fe())?r=[r,s]:(r=null,i=y),null!==(r=null!==r?r:"")?(y=i,58===n.charCodeAt(i)?(s=":",i++):(s=null,0===o&&a('":"')),null!==s&&null!==(l=fe())?s=[s,l]:(s=null,i=y),null!==(s=null!==s?s:"")?("::"===n.substr(i,2)?(l="::",i+=2):(l=null,0===o&&a('"::"')),null!==l&&null!==(u=fe())?(58===n.charCodeAt(i)?(c=":",i++):(c=null,0===o&&a('":"')),null!==c&&null!==(h=_e())?e=[e,t,r,s,l,u,c,h]:(e=null,i=g)):(e=null,i=g)):(e=null,i=g)):(e=null,i=g)):(e=null,i=g)):(e=null,i=g),null===e&&(g=i,null!==(e=fe())?(y=i,58===n.charCodeAt(i)?(t=":",i++):(t=null,0===o&&a('":"')),null!==t&&null!==(r=fe())?t=[t,r]:(t=null,i=y),null!==(t=null!==t?t:"")?(y=i,58===n.charCodeAt(i)?(r=":",i++):(r=null,0===o&&a('":"')),null!==r&&null!==(s=fe())?r=[r,s]:(r=null,i=y),null!==(r=null!==r?r:"")?(y=i,58===n.charCodeAt(i)?(s=":",i++):(s=null,0===o&&a('":"')),null!==s&&null!==(l=fe())?s=[s,l]:(s=null,i=y),null!==(s=null!==s?s:"")?(y=i,58===n.charCodeAt(i)?(l=":",i++):(l=null,0===o&&a('":"')),null!==l&&null!==(u=fe())?l=[l,u]:(l=null,i=y),null!==(l=null!==l?l:"")?("::"===n.substr(i,2)?(u="::",i+=2):(u=null,0===o&&a('"::"')),null!==u&&null!==(c=_e())?e=[e,t,r,s,l,u,c]:(e=null,i=g)):(e=null,i=g)):(e=null,i=g)):(e=null,i=g)):(e=null,i=g)):(e=null,i=g),null===e&&(g=i,null!==(e=fe())?(y=i,58===n.charCodeAt(i)?(t=":",i++):(t=null,0===o&&a('":"')),null!==t&&null!==(r=fe())?t=[t,r]:(t=null,i=y),null!==(t=null!==t?t:"")?(y=i,58===n.charCodeAt(i)?(r=":",i++):(r=null,0===o&&a('":"')),null!==r&&null!==(s=fe())?r=[r,s]:(r=null,i=y),null!==(r=null!==r?r:"")?(y=i,58===n.charCodeAt(i)?(s=":",i++):(s=null,0===o&&a('":"')),null!==s&&null!==(l=fe())?s=[s,l]:(s=null,i=y),null!==(s=null!==s?s:"")?(y=i,58===n.charCodeAt(i)?(l=":",i++):(l=null,0===o&&a('":"')),null!==l&&null!==(u=fe())?l=[l,u]:(l=null,i=y),null!==(l=null!==l?l:"")?(y=i,58===n.charCodeAt(i)?(u=":",i++):(u=null,0===o&&a('":"')),null!==u&&null!==(c=fe())?u=[u,c]:(u=null,i=y),null!==(u=null!==u?u:"")?("::"===n.substr(i,2)?(c="::",i+=2):(c=null,0===o&&a('"::"')),null!==c&&null!==(h=fe())?e=[e,t,r,s,l,u,c,h]:(e=null,i=g)):(e=null,i=g)):(e=null,i=g)):(e=null,i=g)):(e=null,i=g)):(e=null,i=g)):(e=null,i=g),null===e&&(g=i,null!==(e=fe())?(y=i,58===n.charCodeAt(i)?(t=":",i++):(t=null,0===o&&a('":"')),null!==t&&null!==(r=fe())?t=[t,r]:(t=null,i=y),null!==(t=null!==t?t:"")?(y=i,58===n.charCodeAt(i)?(r=":",i++):(r=null,0===o&&a('":"')),null!==r&&null!==(s=fe())?r=[r,s]:(r=null,i=y),null!==(r=null!==r?r:"")?(y=i,58===n.charCodeAt(i)?(s=":",i++):(s=null,0===o&&a('":"')),null!==s&&null!==(l=fe())?s=[s,l]:(s=null,i=y),null!==(s=null!==s?s:"")?(y=i,58===n.charCodeAt(i)?(l=":",i++):(l=null,0===o&&a('":"')),null!==l&&null!==(u=fe())?l=[l,u]:(l=null,i=y),null!==(l=null!==l?l:"")?(y=i,58===n.charCodeAt(i)?(u=":",i++):(u=null,0===o&&a('":"')),null!==u&&null!==(c=fe())?u=[u,c]:(u=null,i=y),null!==(u=null!==u?u:"")?(y=i,58===n.charCodeAt(i)?(c=":",i++):(c=null,0===o&&a('":"')),null!==c&&null!==(h=fe())?c=[c,h]:(c=null,i=y),null!==(c=null!==c?c:"")?("::"===n.substr(i,2)?(h="::",i+=2):(h=null,0===o&&a('"::"')),null!==h?e=[e,t,r,s,l,u,c,h]:(e=null,i=g)):(e=null,i=g)):(e=null,i=g)):(e=null,i=g)):(e=null,i=g)):(e=null,i=g)):(e=null,i=g)):(e=null,i=g))))))))))))))),null!==e&&(T=v,jn.host_type="IPv6",e=n.substring(i,T)),null===e&&(i=v),e}function fe(){var e,t,n,r,s;return s=i,null!==(e=f())&&null!==(t=null!==(t=f())?t:"")&&null!==(n=null!==(n=f())?n:"")&&null!==(r=null!==(r=f())?r:"")?e=[e,t,n,r]:(e=null,i=s),e}function _e(){var e,t,r,s;return s=i,null!==(e=fe())?(58===n.charCodeAt(i)?(t=":",i++):(t=null,0===o&&a('":"')),null!==t&&null!==(r=fe())?e=[e,t,r]:(e=null,i=s)):(e=null,i=s),null===e&&(e=pe()),e}function pe(){var e,t,r,s,l,u,c,h,d,f;return h=i,d=i,null!==(e=me())?(46===n.charCodeAt(i)?(t=".",i++):(t=null,0===o&&a('"."')),null!==t&&null!==(r=me())?(46===n.charCodeAt(i)?(s=".",i++):(s=null,0===o&&a('"."')),null!==s&&null!==(l=me())?(46===n.charCodeAt(i)?(u=".",i++):(u=null,0===o&&a('"."')),null!==u&&null!==(c=me())?e=[e,t,r,s,l,u,c]:(e=null,i=d)):(e=null,i=d)):(e=null,i=d)):(e=null,i=d),null!==e&&(f=h,jn.host_type="IPv4",e=n.substring(i,f)),null===e&&(i=h),e}function me(){var e,t,r,s;return s=i,"25"===n.substr(i,2)?(e="25",i+=2):(e=null,0===o&&a('"25"')),null!==e?(/^[0-5]/.test(n.charAt(i))?(t=n.charAt(i),i++):(t=null,0===o&&a("[0-5]")),null!==t?e=[e,t]:(e=null,i=s)):(e=null,i=s),null===e&&(s=i,50===n.charCodeAt(i)?(e="2",i++):(e=null,0===o&&a('"2"')),null!==e?(/^[0-4]/.test(n.charAt(i))?(t=n.charAt(i),i++):(t=null,0===o&&a("[0-4]")),null!==t&&null!==(r=h())?e=[e,t,r]:(e=null,i=s)):(e=null,i=s),null===e&&(s=i,49===n.charCodeAt(i)?(e="1",i++):(e=null,0===o&&a('"1"')),null!==e&&null!==(t=h())&&null!==(r=h())?e=[e,t,r]:(e=null,i=s),null===e&&(s=i,/^[1-9]/.test(n.charAt(i))?(e=n.charAt(i),i++):(e=null,0===o&&a("[1-9]")),null!==e&&null!==(t=h())?e=[e,t]:(e=null,i=s),null===e&&(e=h())))),e}function ve(){var e,t,n,r,s,o,l,u;return o=i,l=i,null!==(e=null!==(e=h())?e:"")&&null!==(t=null!==(t=h())?t:"")&&null!==(n=null!==(n=h())?n:"")&&null!==(r=null!==(r=h())?r:"")&&null!==(s=null!==(s=h())?s:"")?e=[e,t,n,r,s]:(e=null,i=l),null!==e&&(u=e,u=parseInt(u.join("")),jn.port=u,e=u),null===e&&(i=o),e}function ge(){var e,t,r,s;for(e=[],s=i,59===n.charCodeAt(i)?(t=";",i++):(t=null,0===o&&a('";"')),null!==t&&null!==(r=ye())?t=[t,r]:(t=null,i=s);null!==t;)e.push(t),s=i,59===n.charCodeAt(i)?(t=";",i++):(t=null,0===o&&a('";"')),null!==t&&null!==(r=ye())?t=[t,r]:(t=null,i=s);return e}function ye(){var e;return null===(e=Te())&&null===(e=Ce())&&null===(e=be())&&null===(e=Se())&&null===(e=Ee())&&null===(e=Ae())&&(e=Re()),e}function Te(){var e,t,r,s,l;return r=i,s=i,"transport="===n.substr(i,10).toLowerCase()?(e=n.substr(i,10),i+=10):(e=null,0===o&&a('"transport="')),null!==e?("udp"===n.substr(i,3).toLowerCase()?(t=n.substr(i,3),i+=3):(t=null,0===o&&a('"udp"')),null===t&&("tcp"===n.substr(i,3).toLowerCase()?(t=n.substr(i,3),i+=3):(t=null,0===o&&a('"tcp"')),null===t&&("sctp"===n.substr(i,4).toLowerCase()?(t=n.substr(i,4),i+=4):(t=null,0===o&&a('"sctp"')),null===t&&("tls"===n.substr(i,3).toLowerCase()?(t=n.substr(i,3),i+=3):(t=null,0===o&&a('"tls"')),null===t&&(t=N())))),null!==t?e=[e,t]:(e=null,i=s)):(e=null,i=s),null!==e&&(l=e[1],jn.uri_params||(jn.uri_params={}),e=void(jn.uri_params.transport=l.toLowerCase())),null===e&&(i=r),e}function Ce(){var e,t,r,s,l;return r=i,s=i,"user="===n.substr(i,5).toLowerCase()?(e=n.substr(i,5),i+=5):(e=null,0===o&&a('"user="')),null!==e?("phone"===n.substr(i,5).toLowerCase()?(t=n.substr(i,5),i+=5):(t=null,0===o&&a('"phone"')),null===t&&("ip"===n.substr(i,2).toLowerCase()?(t=n.substr(i,2),i+=2):(t=null,0===o&&a('"ip"')),null===t&&(t=N())),null!==t?e=[e,t]:(e=null,i=s)):(e=null,i=s),null!==e&&(l=e[1],jn.uri_params||(jn.uri_params={}),e=void(jn.uri_params.user=l.toLowerCase())),null===e&&(i=r),e}function be(){var e,t,r,s,l;return r=i,s=i,"method="===n.substr(i,7).toLowerCase()?(e=n.substr(i,7),i+=7):(e=null,0===o&&a('"method="')),null!==e&&null!==(t=ct())?e=[e,t]:(e=null,i=s),null!==e&&(l=e[1],jn.uri_params||(jn.uri_params={}),e=void(jn.uri_params.method=l)),null===e&&(i=r),e}function Se(){var e,t,r,s,l;return r=i,s=i,"ttl="===n.substr(i,4).toLowerCase()?(e=n.substr(i,4),i+=4):(e=null,0===o&&a('"ttl="')),null!==e&&null!==(t=An())?e=[e,t]:(e=null,i=s),null!==e&&(l=e[1],jn.params||(jn.params={}),e=void(jn.params.ttl=l)),null===e&&(i=r),e}function Ee(){var e,t,r,s,l;return r=i,s=i,"maddr="===n.substr(i,6).toLowerCase()?(e=n.substr(i,6),i+=6):(e=null,0===o&&a('"maddr="')),null!==e&&null!==(t=le())?e=[e,t]:(e=null,i=s),null!==e&&(l=e[1],jn.uri_params||(jn.uri_params={}),e=void(jn.uri_params.maddr=l)),null===e&&(i=r),e}function Ae(){var e,t,r,s,l,u;return s=i,l=i,"lr"===n.substr(i,2).toLowerCase()?(e=n.substr(i,2),i+=2):(e=null,0===o&&a('"lr"')),null!==e?(u=i,61===n.charCodeAt(i)?(t="=",i++):(t=null,0===o&&a('"="')),null!==t&&null!==(r=N())?t=[t,r]:(t=null,i=u),null!==(t=null!==t?t:"")?e=[e,t]:(e=null,i=l)):(e=null,i=l),null!==e&&(jn.uri_params||(jn.uri_params={}),e=void(jn.uri_params.lr=void 0)),null===e&&(i=s),e}function Re(){var e,t,r,s,l,u,c,h;return s=i,l=i,null!==(e=we())?(u=i,61===n.charCodeAt(i)?(t="=",i++):(t=null,0===o&&a('"="')),null!==t&&null!==(r=Ie())?t=[t,r]:(t=null,i=u),null!==(t=null!==t?t:"")?e=[e,t]:(e=null,i=l)):(e=null,i=l),null!==e&&(c=e[0],h=e[1],jn.uri_params||(jn.uri_params={}),h=void 0===h?void 0:h[1],e=void(jn.uri_params[c.toLowerCase()]=h)),null===e&&(i=s),e}function we(){var e,t,n;if(n=i,null!==(t=Oe()))for(e=[];null!==t;)e.push(t),t=Oe();else e=null;return null!==e&&(e=e.join("")),null===e&&(i=n),e}function Ie(){var e,t,n;if(n=i,null!==(t=Oe()))for(e=[];null!==t;)e.push(t),t=Oe();else e=null;return null!==e&&(e=e.join("")),null===e&&(i=n),e}function Oe(){var e;return null===(e=ke())&&null===(e=C())&&(e=S()),e}function ke(){var e;return 91===n.charCodeAt(i)?(e="[",i++):(e=null,0===o&&a('"["')),null===e&&(93===n.charCodeAt(i)?(e="]",i++):(e=null,0===o&&a('"]"')),null===e&&(47===n.charCodeAt(i)?(e="/",i++):(e=null,0===o&&a('"/"')),null===e&&(58===n.charCodeAt(i)?(e=":",i++):(e=null,0===o&&a('":"')),null===e&&(38===n.charCodeAt(i)?(e="&",i++):(e=null,0===o&&a('"&"')),null===e&&(43===n.charCodeAt(i)?(e="+",i++):(e=null,0===o&&a('"+"')),null===e&&(36===n.charCodeAt(i)?(e="$",i++):(e=null,0===o&&a('"$"')))))))),e}function Ne(){var e,t,r,s,l,u,c;if(u=i,63===n.charCodeAt(i)?(e="?",i++):(e=null,0===o&&a('"?"')),null!==e)if(null!==(t=Ue())){for(r=[],c=i,38===n.charCodeAt(i)?(s="&",i++):(s=null,0===o&&a('"&"')),null!==s&&null!==(l=Ue())?s=[s,l]:(s=null,i=c);null!==s;)r.push(s),c=i,38===n.charCodeAt(i)?(s="&",i++):(s=null,0===o&&a('"&"')),null!==s&&null!==(l=Ue())?s=[s,l]:(s=null,i=c);null!==r?e=[e,t,r]:(e=null,i=u)}else e=null,i=u;else e=null,i=u;return e}function Ue(){var e,t,r,s,l,u,c;return s=i,l=i,null!==(e=xe())?(61===n.charCodeAt(i)?(t="=",i++):(t=null,0===o&&a('"="')),null!==t&&null!==(r=De())?e=[e,t,r]:(e=null,i=l)):(e=null,i=l),null!==e&&(u=e[0],c=e[2],u=u.join("").toLowerCase(),c=c.join(""),jn.uri_headers||(jn.uri_headers={}),e=void(jn.uri_headers[u]?jn.uri_headers[u].push(c):jn.uri_headers[u]=[c])),null===e&&(i=s),e}function xe(){var e,t;if(null===(t=Pe())&&null===(t=C())&&(t=S()),null!==t)for(e=[];null!==t;)e.push(t),null===(t=Pe())&&null===(t=C())&&(t=S());else e=null;return e}function De(){var e,t;for(e=[],null===(t=Pe())&&null===(t=C())&&(t=S());null!==t;)e.push(t),null===(t=Pe())&&null===(t=C())&&(t=S());return e}function Pe(){var e;return 91===n.charCodeAt(i)?(e="[",i++):(e=null,0===o&&a('"["')),null===e&&(93===n.charCodeAt(i)?(e="]",i++):(e=null,0===o&&a('"]"')),null===e&&(47===n.charCodeAt(i)?(e="/",i++):(e=null,0===o&&a('"/"')),null===e&&(63===n.charCodeAt(i)?(e="?",i++):(e=null,0===o&&a('"?"')),null===e&&(58===n.charCodeAt(i)?(e=":",i++):(e=null,0===o&&a('":"')),null===e&&(43===n.charCodeAt(i)?(e="+",i++):(e=null,0===o&&a('"+"')),null===e&&(36===n.charCodeAt(i)?(e="$",i++):(e=null,0===o&&a('"$"')))))))),e}function Me(){var e,t,n,r,s,o;return o=i,null!==(e=ct())&&null!==(t=v())&&null!==(n=qe())&&null!==(r=v())&&null!==(s=et())?e=[e,t,n,r,s]:(e=null,i=o),e}function qe(){var e;return null===(e=Q())&&(e=Le()),e}function Le(){var e,t,r,s;return s=i,null!==(e=$e())?(58===n.charCodeAt(i)?(t=":",i++):(t=null,0===o&&a('":"')),null!==t?(null===(r=He())&&(r=Ge()),null!==r?e=[e,t,r]:(e=null,i=s)):(e=null,i=s)):(e=null,i=s),e}function He(){var e,t,r,s,l;return s=i,null===(e=Fe())&&(e=je()),null!==e?(l=i,63===n.charCodeAt(i)?(t="?",i++):(t=null,0===o&&a('"?"')),null!==t&&null!==(r=Ze())?t=[t,r]:(t=null,i=l),null!==(t=null!==t?t:"")?e=[e,t]:(e=null,i=s)):(e=null,i=s),e}function Fe(){var e,t,r,s;return s=i,"//"===n.substr(i,2)?(e="//",i+=2):(e=null,0===o&&a('"//"')),null!==e&&null!==(t=Xe())&&null!==(r=null!==(r=je())?r:"")?e=[e,t,r]:(e=null,i=s),e}function je(){var e,t,r;return r=i,47===n.charCodeAt(i)?(e="/",i++):(e=null,0===o&&a('"/"')),null!==e&&null!==(t=Be())?e=[e,t]:(e=null,i=r),e}function Ge(){var e,t,n,r;if(r=i,null!==(e=Ve())){for(t=[],n=We();null!==n;)t.push(n),n=We();null!==t?e=[e,t]:(e=null,i=r)}else e=null,i=r;return e}function We(){var e;return null===(e=T())&&null===(e=C())&&(e=S()),e}function Ve(){var e;return null===(e=C())&&null===(e=S())&&(59===n.charCodeAt(i)?(e=";",i++):(e=null,0===o&&a('";"')),null===e&&(63===n.charCodeAt(i)?(e="?",i++):(e=null,0===o&&a('"?"')),null===e&&(58===n.charCodeAt(i)?(e=":",i++):(e=null,0===o&&a('":"')),null===e&&(64===n.charCodeAt(i)?(e="@",i++):(e=null,0===o&&a('"@"')),null===e&&(38===n.charCodeAt(i)?(e="&",i++):(e=null,0===o&&a('"&"')),null===e&&(61===n.charCodeAt(i)?(e="=",i++):(e=null,0===o&&a('"="')),null===e&&(43===n.charCodeAt(i)?(e="+",i++):(e=null,0===o&&a('"+"')),null===e&&(36===n.charCodeAt(i)?(e="$",i++):(e=null,0===o&&a('"$"')),null===e&&(44===n.charCodeAt(i)?(e=",",i++):(e=null,0===o&&a('","'))))))))))),e}function Be(){var e,t,r,s,l,u;if(l=i,null!==(e=Ke())){for(t=[],u=i,47===n.charCodeAt(i)?(r="/",i++):(r=null,0===o&&a('"/"')),null!==r&&null!==(s=Ke())?r=[r,s]:(r=null,i=u);null!==r;)t.push(r),u=i,47===n.charCodeAt(i)?(r="/",i++):(r=null,0===o&&a('"/"')),null!==r&&null!==(s=Ke())?r=[r,s]:(r=null,i=u);null!==t?e=[e,t]:(e=null,i=l)}else e=null,i=l;return e}function Ke(){var e,t,r,s,l,u;for(l=i,e=[],t=Ye();null!==t;)e.push(t),t=Ye();if(null!==e){for(t=[],u=i,59===n.charCodeAt(i)?(r=";",i++):(r=null,0===o&&a('";"')),null!==r&&null!==(s=ze())?r=[r,s]:(r=null,i=u);null!==r;)t.push(r),u=i,59===n.charCodeAt(i)?(r=";",i++):(r=null,0===o&&a('";"')),null!==r&&null!==(s=ze())?r=[r,s]:(r=null,i=u);null!==t?e=[e,t]:(e=null,i=l)}else e=null,i=l;return e}function ze(){var e,t;for(e=[],t=Ye();null!==t;)e.push(t),t=Ye();return e}function Ye(){var e;return null===(e=C())&&null===(e=S())&&(58===n.charCodeAt(i)?(e=":",i++):(e=null,0===o&&a('":"')),null===e&&(64===n.charCodeAt(i)?(e="@",i++):(e=null,0===o&&a('"@"')),null===e&&(38===n.charCodeAt(i)?(e="&",i++):(e=null,0===o&&a('"&"')),null===e&&(61===n.charCodeAt(i)?(e="=",i++):(e=null,0===o&&a('"="')),null===e&&(43===n.charCodeAt(i)?(e="+",i++):(e=null,0===o&&a('"+"')),null===e&&(36===n.charCodeAt(i)?(e="$",i++):(e=null,0===o&&a('"$"')),null===e&&(44===n.charCodeAt(i)?(e=",",i++):(e=null,0===o&&a('","'))))))))),e}function $e(){var e,t,r,s,l,u;if(s=i,l=i,null!==(e=d())){for(t=[],null===(r=d())&&null===(r=h())&&(43===n.charCodeAt(i)?(r="+",i++):(r=null,0===o&&a('"+"')),null===r&&(45===n.charCodeAt(i)?(r="-",i++):(r=null,0===o&&a('"-"')),null===r&&(46===n.charCodeAt(i)?(r=".",i++):(r=null,0===o&&a('"."')))));null!==r;)t.push(r),null===(r=d())&&null===(r=h())&&(43===n.charCodeAt(i)?(r="+",i++):(r=null,0===o&&a('"+"')),null===r&&(45===n.charCodeAt(i)?(r="-",i++):(r=null,0===o&&a('"-"')),null===r&&(46===n.charCodeAt(i)?(r=".",i++):(r=null,0===o&&a('"."')))));null!==t?e=[e,t]:(e=null,i=l)}else e=null,i=l;return null!==e&&(u=s,e=void(jn.scheme=n.substring(i,u))),null===e&&(i=s),e}function Xe(){var e;return null===(e=Je())&&(e=Qe()),e}function Je(){var e,t,r,s;return r=i,s=i,null!==(e=ne())?(64===n.charCodeAt(i)?(t="@",i++):(t=null,0===o&&a('"@"')),null!==t?e=[e,t]:(e=null,i=s)):(e=null,i=s),null!==(e=null!==e?e:"")&&null!==(t=oe())?e=[e,t]:(e=null,i=r),e=null!==e?e:""}function Qe(){var e,t;if(null===(t=C())&&null===(t=S())&&(36===n.charCodeAt(i)?(t="$",i++):(t=null,0===o&&a('"$"')),null===t&&(44===n.charCodeAt(i)?(t=",",i++):(t=null,0===o&&a('","')),null===t&&(59===n.charCodeAt(i)?(t=";",i++):(t=null,0===o&&a('";"')),null===t&&(58===n.charCodeAt(i)?(t=":",i++):(t=null,0===o&&a('":"')),null===t&&(64===n.charCodeAt(i)?(t="@",i++):(t=null,0===o&&a('"@"')),null===t&&(38===n.charCodeAt(i)?(t="&",i++):(t=null,0===o&&a('"&"')),null===t&&(61===n.charCodeAt(i)?(t="=",i++):(t=null,0===o&&a('"="')),null===t&&(43===n.charCodeAt(i)?(t="+",i++):(t=null,0===o&&a('"+"')))))))))),null!==t)for(e=[];null!==t;)e.push(t),null===(t=C())&&null===(t=S())&&(36===n.charCodeAt(i)?(t="$",i++):(t=null,0===o&&a('"$"')),null===t&&(44===n.charCodeAt(i)?(t=",",i++):(t=null,0===o&&a('","')),null===t&&(59===n.charCodeAt(i)?(t=";",i++):(t=null,0===o&&a('";"')),null===t&&(58===n.charCodeAt(i)?(t=":",i++):(t=null,0===o&&a('":"')),null===t&&(64===n.charCodeAt(i)?(t="@",i++):(t=null,0===o&&a('"@"')),null===t&&(38===n.charCodeAt(i)?(t="&",i++):(t=null,0===o&&a('"&"')),null===t&&(61===n.charCodeAt(i)?(t="=",i++):(t=null,0===o&&a('"="')),null===t&&(43===n.charCodeAt(i)?(t="+",i++):(t=null,0===o&&a('"+"'))))))))));else e=null;return e}function Ze(){var e,t;for(e=[],t=We();null!==t;)e.push(t),t=We();return e}function et(){var e,t,r,s,l,u,c,d,f;if(c=i,d=i,"sip"===n.substr(i,3).toLowerCase()?(e=n.substr(i,3),i+=3):(e=null,0===o&&a('"SIP"')),null!==e)if(47===n.charCodeAt(i)?(t="/",i++):(t=null,0===o&&a('"/"')),null!==t){if(null!==(s=h()))for(r=[];null!==s;)r.push(s),s=h();else r=null;if(null!==r)if(46===n.charCodeAt(i)?(s=".",i++):(s=null,0===o&&a('"."')),null!==s){if(null!==(u=h()))for(l=[];null!==u;)l.push(u),u=h();else l=null;null!==l?e=[e,t,r,s,l]:(e=null,i=d)}else e=null,i=d;else e=null,i=d}else e=null,i=d;else e=null,i=d;return null!==e&&(f=c,e=void(jn.sip_version=n.substring(i,f))),null===e&&(i=c),e}function tt(){var e;return"INVITE"===n.substr(i,6)?(e="INVITE",i+=6):(e=null,0===o&&a('"INVITE"')),e}function nt(){var e;return"ACK"===n.substr(i,3)?(e="ACK",i+=3):(e=null,0===o&&a('"ACK"')),e}function rt(){var e;return"OPTIONS"===n.substr(i,7)?(e="OPTIONS",i+=7):(e=null,0===o&&a('"OPTIONS"')),e}function st(){var e;return"BYE"===n.substr(i,3)?(e="BYE",i+=3):(e=null,0===o&&a('"BYE"')),e}function it(){var e;return"CANCEL"===n.substr(i,6)?(e="CANCEL",i+=6):(e=null,0===o&&a('"CANCEL"')),e}function ot(){var e;return"REGISTER"===n.substr(i,8)?(e="REGISTER",i+=8):(e=null,0===o&&a('"REGISTER"')),e}function lt(){var e;return"SUBSCRIBE"===n.substr(i,9)?(e="SUBSCRIBE",i+=9):(e=null,0===o&&a('"SUBSCRIBE"')),e}function ut(){var e;return"NOTIFY"===n.substr(i,6)?(e="NOTIFY",i+=6):(e=null,0===o&&a('"NOTIFY"')),e}function at(){var e;return"REFER"===n.substr(i,5)?(e="REFER",i+=5):(e=null,0===o&&a('"REFER"')),e}function ct(){var e,t,r;return t=i,null===(e=tt())&&null===(e=nt())&&null===(e=rt())&&null===(e=st())&&null===(e=it())&&null===(e=ot())&&null===(e=lt())&&null===(e=ut())&&null===(e=at())&&(e=N()),null!==e&&(r=t,jn.method=n.substring(i,r),e=jn.method),null===e&&(i=t),e}function ht(){var e,t,n,r,s,o;return o=i,null!==(e=et())&&null!==(t=v())&&null!==(n=dt())&&null!==(r=v())&&null!==(s=_t())?e=[e,t,n,r,s]:(e=null,i=o),e}function dt(){var e,t,n;return t=i,null!==(e=ft())&&(n=e,e=void(jn.status_code=parseInt(n.join("")))),null===e&&(i=t),e}function ft(){var e,t,n,r;return r=i,null!==(e=h())&&null!==(t=h())&&null!==(n=h())?e=[e,t,n]:(e=null,i=r),e}function _t(){var e,t,r,s;for(r=i,e=[],null===(t=T())&&null===(t=C())&&null===(t=S())&&null===(t=O())&&null===(t=k())&&null===(t=v())&&(t=g());null!==t;)e.push(t),null===(t=T())&&null===(t=C())&&null===(t=S())&&null===(t=O())&&null===(t=k())&&null===(t=v())&&(t=g());return null!==e&&(s=r,e=void(jn.reason_phrase=n.substring(i,s))),null===e&&(i=r),e}function pt(){var e,t,n,r,s,o,l;if(s=i,o=i,null===(e=J())&&(e=mt()),null!==e){for(t=[],l=i,null!==(n=G())&&null!==(r=gt())?n=[n,r]:(n=null,i=l);null!==n;)t.push(n),l=i,null!==(n=G())&&null!==(r=gt())?n=[n,r]:(n=null,i=l);null!==t?e=[e,t]:(e=null,i=o)}else e=null,i=o;return null!==e&&(e=function(e){var t;jn.multi_header||(jn.multi_header=[]);try{t=new Fn(jn.uri,jn.display_name,jn.params),delete jn.uri,delete jn.display_name,delete jn.params}catch(e){t=null}jn.multi_header.push({possition:i,offset:e,parsed:t})}(s)),null===e&&(i=s),e}function mt(){var e,t,n,r,s;return s=i,null!==(e=null!==(e=vt())?e:"")&&null!==(t=F())&&null!==(n=Q())&&null!==(r=H())?e=[e,t,n,r]:(e=null,i=s),e}function vt(){var e,t,n,r,s,o,l,u;if(s=i,o=i,null!==(e=N())){for(t=[],l=i,null!==(n=E())&&null!==(r=N())?n=[n,r]:(n=null,i=l);null!==n;)t.push(n),l=i,null!==(n=E())&&null!==(r=N())?n=[n,r]:(n=null,i=l);null!==t?e=[e,t]:(e=null,i=o)}else e=null,i=o;return null===e&&(e=Y()),null!==e&&(u=e,e=void(jn.display_name="string"==typeof u?u:u[1].reduce(function(e,t){return e+t[0]+t[1]},u[0]))),null===e&&(i=s),e}function gt(){var e;return null===(e=yt())&&null===(e=Tt())&&(e=St()),e}function yt(){var e,t,r,s,l,u;return s=i,l=i,"q"===n.substr(i,1).toLowerCase()?(e=n.substr(i,1),i++):(e=null,0===o&&a('"q"')),null!==e&&null!==(t=M())&&null!==(r=bt())?e=[e,t,r]:(e=null,i=l),null!==e&&(u=e[2],jn.params||(jn.params={}),e=void(jn.params.q=u)),null===e&&(i=s),e}function Tt(){var e,t,r,s,l,u;return s=i,l=i,"expires"===n.substr(i,7).toLowerCase()?(e=n.substr(i,7),i+=7):(e=null,0===o&&a('"expires"')),null!==e&&null!==(t=M())&&null!==(r=Ct())?e=[e,t,r]:(e=null,i=l),null!==e&&(u=e[2],jn.params||(jn.params={}),e=void(jn.params.expires=u)),null===e&&(i=s),e}function Ct(){var e,t,n;if(n=i,null!==(t=h()))for(e=[];null!==t;)e.push(t),t=h();else e=null;return null!==e&&(e=parseInt(e.join(""))),null===e&&(i=n),e}function bt(){var e,t,r,s,l,u,c,d,f;return u=i,c=i,48===n.charCodeAt(i)?(e="0",i++):(e=null,0===o&&a('"0"')),null!==e?(d=i,46===n.charCodeAt(i)?(t=".",i++):(t=null,0===o&&a('"."')),null!==t&&null!==(r=null!==(r=h())?r:"")&&null!==(s=null!==(s=h())?s:"")&&null!==(l=null!==(l=h())?l:"")?t=[t,r,s,l]:(t=null,i=d),null!==(t=null!==t?t:"")?e=[e,t]:(e=null,i=c)):(e=null,i=c),null!==e&&(f=u,e=parseFloat(n.substring(i,f))),null===e&&(i=u),e}function St(){var e,t,n,r,s,o,l,u;return r=i,s=i,null!==(e=N())?(o=i,null!==(t=M())&&null!==(n=Et())?t=[t,n]:(t=null,i=o),null!==(t=null!==t?t:"")?e=[e,t]:(e=null,i=s)):(e=null,i=s),null!==e&&(l=e[0],u=e[1],jn.params||(jn.params={}),u=void 0===u?void 0:u[1],e=void(jn.params[l.toLowerCase()]=u)),null===e&&(i=r),e}function Et(){var e;return null===(e=N())&&null===(e=le())&&(e=z()),e}function At(){var e;return"render"===n.substr(i,6).toLowerCase()?(e=n.substr(i,6),i+=6):(e=null,0===o&&a('"render"')),null===e&&("session"===n.substr(i,7).toLowerCase()?(e=n.substr(i,7),i+=7):(e=null,0===o&&a('"session"')),null===e&&("icon"===n.substr(i,4).toLowerCase()?(e=n.substr(i,4),i+=4):(e=null,0===o&&a('"icon"')),null===e&&("alert"===n.substr(i,5).toLowerCase()?(e=n.substr(i,5),i+=5):(e=null,0===o&&a('"alert"')),null===e&&(e=N())))),e}function Rt(){var e;return null===(e=wt())&&(e=St()),e}function wt(){var e,t,r,s;return s=i,"handling"===n.substr(i,8).toLowerCase()?(e=n.substr(i,8),i+=8):(e=null,0===o&&a('"handling"')),null!==e&&null!==(t=M())?("optional"===n.substr(i,8).toLowerCase()?(r=n.substr(i,8),i+=8):(r=null,0===o&&a('"optional"')),null===r&&("required"===n.substr(i,8).toLowerCase()?(r=n.substr(i,8),i+=8):(r=null,0===o&&a('"required"')),null===r&&(r=N())),null!==r?e=[e,t,r]:(e=null,i=s)):(e=null,i=s),e}function It(){var e,t,n,r,s,o,l,u;if(l=i,null!==(e=Ot()))if(null!==(t=P()))if(null!==(n=Dt())){for(r=[],u=i,null!==(s=G())&&null!==(o=Pt())?s=[s,o]:(s=null,i=u);null!==s;)r.push(s),u=i,null!==(s=G())&&null!==(o=Pt())?s=[s,o]:(s=null,i=u);null!==r?e=[e,t,n,r]:(e=null,i=l)}else e=null,i=l;else e=null,i=l;else e=null,i=l;return e}function Ot(){var e;return null===(e=kt())&&(e=Nt()),e}function kt(){var e;return"text"===n.substr(i,4).toLowerCase()?(e=n.substr(i,4),i+=4):(e=null,0===o&&a('"text"')),null===e&&("image"===n.substr(i,5).toLowerCase()?(e=n.substr(i,5),i+=5):(e=null,0===o&&a('"image"')),null===e&&("audio"===n.substr(i,5).toLowerCase()?(e=n.substr(i,5),i+=5):(e=null,0===o&&a('"audio"')),null===e&&("video"===n.substr(i,5).toLowerCase()?(e=n.substr(i,5),i+=5):(e=null,0===o&&a('"video"')),null===e&&("application"===n.substr(i,11).toLowerCase()?(e=n.substr(i,11),i+=11):(e=null,0===o&&a('"application"')),null===e&&(e=Ut()))))),e}function Nt(){var e;return"message"===n.substr(i,7).toLowerCase()?(e=n.substr(i,7),i+=7):(e=null,0===o&&a('"message"')),null===e&&("multipart"===n.substr(i,9).toLowerCase()?(e=n.substr(i,9),i+=9):(e=null,0===o&&a('"multipart"')),null===e&&(e=Ut())),e}function Ut(){var e;return null===(e=N())&&(e=xt()),e}function xt(){var e,t,r;return r=i,"x-"===n.substr(i,2).toLowerCase()?(e=n.substr(i,2),i+=2):(e=null,0===o&&a('"x-"')),null!==e&&null!==(t=N())?e=[e,t]:(e=null,i=r),e}function Dt(){var e;return null===(e=Ut())&&(e=N()),e}function Pt(){var e,t,n,r;return r=i,null!==(e=N())&&null!==(t=M())&&null!==(n=Mt())?e=[e,t,n]:(e=null,i=r),e}function Mt(){var e;return null===(e=N())&&(e=z()),e}function qt(){var e,t,n,r;if(n=i,null!==(t=h()))for(e=[];null!==t;)e.push(t),t=h();else e=null;return null!==e&&(r=e,e=void(jn.value=parseInt(r.join("")))),null===e&&(i=n),e}function Lt(){var e,t,r,s,l,u;if(l=i,null!==(e=U())){for(t=[],u=i,46===n.charCodeAt(i)?(r=".",i++):(r=null,0===o&&a('"."')),null!==r&&null!==(s=U())?r=[r,s]:(r=null,i=u);null!==r;)t.push(r),u=i,46===n.charCodeAt(i)?(r=".",i++):(r=null,0===o&&a('"."')),null!==r&&null!==(s=U())?r=[r,s]:(r=null,i=u);null!==t?e=[e,t]:(e=null,i=l)}else e=null,i=l;return e}function Ht(){var e;return null===(e=Ft())&&(e=St()),e}function Ft(){var e,t,r,s,l,u;return s=i,l=i,"tag"===n.substr(i,3).toLowerCase()?(e=n.substr(i,3),i+=3):(e=null,0===o&&a('"tag"')),null!==e&&null!==(t=M())&&null!==(r=N())?e=[e,t,r]:(e=null,i=l),null!==e&&(u=e[2],e=void(jn.tag=u)),null===e&&(i=s),e}function jt(){var e,t,r,s,l,u,c,h;if(c=i,"digest"===n.substr(i,6).toLowerCase()?(e=n.substr(i,6),i+=6):(e=null,0===o&&a('"Digest"')),null!==e)if(null!==(t=E()))if(null!==(r=Vt())){for(s=[],h=i,null!==(l=j())&&null!==(u=Vt())?l=[l,u]:(l=null,i=h);null!==l;)s.push(l),h=i,null!==(l=j())&&null!==(u=Vt())?l=[l,u]:(l=null,i=h);null!==s?e=[e,t,r,s]:(e=null,i=c)}else e=null,i=c;else e=null,i=c;else e=null,i=c;return null===e&&(e=Gt()),e}function Gt(){var e,t,n,r,s,o,l,u;if(l=i,null!==(e=N()))if(null!==(t=E()))if(null!==(n=Wt())){for(r=[],u=i,null!==(s=j())&&null!==(o=Wt())?s=[s,o]:(s=null,i=u);null!==s;)r.push(s),u=i,null!==(s=j())&&null!==(o=Wt())?s=[s,o]:(s=null,i=u);null!==r?e=[e,t,n,r]:(e=null,i=l)}else e=null,i=l;else e=null,i=l;else e=null,i=l;return e}function Wt(){var e,t,n,r;return r=i,null!==(e=N())&&null!==(t=M())?(null===(n=N())&&(n=z()),null!==n?e=[e,t,n]:(e=null,i=r)):(e=null,i=r),e}function Vt(){var e;return null===(e=Bt())&&null===(e=zt())&&null===(e=$t())&&null===(e=Jt())&&null===(e=Qt())&&null===(e=Zt())&&null===(e=en())&&(e=Wt()),e}function Bt(){var e,t,r,s;return s=i,"realm"===n.substr(i,5).toLowerCase()?(e=n.substr(i,5),i+=5):(e=null,0===o&&a('"realm"')),null!==e&&null!==(t=M())&&null!==(r=Kt())?e=[e,t,r]:(e=null,i=s),e}function Kt(){var e,t,n;return t=i,null!==(e=Y())&&(n=e,e=void(jn.realm=n)),null===e&&(i=t),e}function zt(){var e,t,r,s,l,u,c,h,d;if(h=i,"domain"===n.substr(i,6).toLowerCase()?(e=n.substr(i,6),i+=6):(e=null,0===o&&a('"domain"')),null!==e)if(null!==(t=M()))if(null!==(r=V()))if(null!==(s=Yt())){if(l=[],d=i,null!==(c=v()))for(u=[];null!==c;)u.push(c),c=v();else u=null;for(null!==u&&null!==(c=Yt())?u=[u,c]:(u=null,i=d);null!==u;){if(l.push(u),d=i,null!==(c=v()))for(u=[];null!==c;)u.push(c),c=v();else u=null;null!==u&&null!==(c=Yt())?u=[u,c]:(u=null,i=d)}null!==l&&null!==(u=B())?e=[e,t,r,s,l,u]:(e=null,i=h)}else e=null,i=h;else e=null,i=h;else e=null,i=h;else e=null,i=h;return e}function Yt(){var e;return null===(e=Le())&&(e=je()),e}function $t(){var e,t,r,s;return s=i,"nonce"===n.substr(i,5).toLowerCase()?(e=n.substr(i,5),i+=5):(e=null,0===o&&a('"nonce"')),null!==e&&null!==(t=M())&&null!==(r=Xt())?e=[e,t,r]:(e=null,i=s),e}function Xt(){var e,t,n;return t=i,null!==(e=Y())&&(n=e,e=void(jn.nonce=n)),null===e&&(i=t),e}function Jt(){var e,t,r,s,l,u;return s=i,l=i,"opaque"===n.substr(i,6).toLowerCase()?(e=n.substr(i,6),i+=6):(e=null,0===o&&a('"opaque"')),null!==e&&null!==(t=M())&&null!==(r=Y())?e=[e,t,r]:(e=null,i=l),null!==e&&(u=e[2],e=void(jn.opaque=u)),null===e&&(i=s),e}function Qt(){var e,t,r,s,l;return s=i,"stale"===n.substr(i,5).toLowerCase()?(e=n.substr(i,5),i+=5):(e=null,0===o&&a('"stale"')),null!==e&&null!==(t=M())?(l=i,"true"===n.substr(i,4).toLowerCase()?(r=n.substr(i,4),i+=4):(r=null,0===o&&a('"true"')),null!==r&&(r=void(jn.stale=!0)),null===r&&(i=l),null===r&&(l=i,"false"===n.substr(i,5).toLowerCase()?(r=n.substr(i,5),i+=5):(r=null,0===o&&a('"false"')),null!==r&&(r=void(jn.stale=!1)),null===r&&(i=l)),null!==r?e=[e,t,r]:(e=null,i=s)):(e=null,i=s),e}function Zt(){var e,t,r,s,l,u;return s=i,l=i,"algorithm"===n.substr(i,9).toLowerCase()?(e=n.substr(i,9),i+=9):(e=null,0===o&&a('"algorithm"')),null!==e&&null!==(t=M())?("md5"===n.substr(i,3).toLowerCase()?(r=n.substr(i,3),i+=3):(r=null,0===o&&a('"MD5"')),null===r&&("md5-sess"===n.substr(i,8).toLowerCase()?(r=n.substr(i,8),i+=8):(r=null,0===o&&a('"MD5-sess"')),null===r&&(r=N())),null!==r?e=[e,t,r]:(e=null,i=l)):(e=null,i=l),null!==e&&(u=e[2],e=void(jn.algorithm=u.toUpperCase())),null===e&&(i=s),e}function en(){var e,t,r,s,l,u,c,h,d,f;if(h=i,"qop"===n.substr(i,3).toLowerCase()?(e=n.substr(i,3),i+=3):(e=null,0===o&&a('"qop"')),null!==e)if(null!==(t=M()))if(null!==(r=V())){if(d=i,null!==(s=tn())){for(l=[],f=i,44===n.charCodeAt(i)?(u=",",i++):(u=null,0===o&&a('","')),null!==u&&null!==(c=tn())?u=[u,c]:(u=null,i=f);null!==u;)l.push(u),f=i,44===n.charCodeAt(i)?(u=",",i++):(u=null,0===o&&a('","')),null!==u&&null!==(c=tn())?u=[u,c]:(u=null,i=f);null!==l?s=[s,l]:(s=null,i=d)}else s=null,i=d;null!==s&&null!==(l=B())?e=[e,t,r,s,l]:(e=null,i=h)}else e=null,i=h;else e=null,i=h;else e=null,i=h;return e}function tn(){var e,t,r;return t=i,"auth-int"===n.substr(i,8).toLowerCase()?(e=n.substr(i,8),i+=8):(e=null,0===o&&a('"auth-int"')),null===e&&("auth"===n.substr(i,4).toLowerCase()?(e=n.substr(i,4),i+=4):(e=null,0===o&&a('"auth"')),null===e&&(e=N())),null!==e&&(r=e,jn.qop||(jn.qop=[]),e=void jn.qop.push(r.toLowerCase())),null===e&&(i=t),e}function nn(){var e,t,n,r,s,o,l;if(s=i,o=i,null!==(e=mt())){for(t=[],l=i,null!==(n=G())&&null!==(r=St())?n=[n,r]:(n=null,i=l);null!==n;)t.push(n),l=i,null!==(n=G())&&null!==(r=St())?n=[n,r]:(n=null,i=l);null!==t?e=[e,t]:(e=null,i=o)}else e=null,i=o;return null!==e&&(e=function(e){var t;jn.multi_header||(jn.multi_header=[]);try{t=new Fn(jn.uri,jn.display_name,jn.params),delete jn.uri,delete jn.display_name,delete jn.params}catch(e){t=null}jn.multi_header.push({possition:i,offset:e,parsed:t})}(s)),null===e&&(i=s),e}function rn(){var e;return null===(e=sn())&&(e=St()),e}function sn(){var e,t,r,s,l,u,c;if(l=i,u=i,"cause"===n.substr(i,5).toLowerCase()?(e=n.substr(i,5),i+=5):(e=null,0===o&&a('"cause"')),null!==e)if(null!==(t=M())){if(null!==(s=h()))for(r=[];null!==s;)r.push(s),s=h();else r=null;null!==r?e=[e,t,r]:(e=null,i=u)}else e=null,i=u;else e=null,i=u;return null!==e&&(c=e[2],e=void(jn.cause=parseInt(c.join("")))),null===e&&(i=l),e}function on(){var e,t,n,r,s,o;if(s=i,null!==(e=mt())){for(t=[],o=i,null!==(n=G())&&null!==(r=St())?n=[n,r]:(n=null,i=o);null!==n;)t.push(n),o=i,null!==(n=G())&&null!==(r=St())?n=[n,r]:(n=null,i=o);null!==t?e=[e,t]:(e=null,i=s)}else e=null,i=s;return e}function ln(){var e,t,r;return t=i,"active"===n.substr(i,6).toLowerCase()?(e=n.substr(i,6),i+=6):(e=null,0===o&&a('"active"')),null===e&&("pending"===n.substr(i,7).toLowerCase()?(e=n.substr(i,7),i+=7):(e=null,0===o&&a('"pending"')),null===e&&("terminated"===n.substr(i,10).toLowerCase()?(e=n.substr(i,10),i+=10):(e=null,0===o&&a('"terminated"')),null===e&&(e=N()))),null!==e&&(r=t,e=void(jn.state=n.substring(i,r))),null===e&&(i=t),e}function un(){var e,t,r,s,l,u,c,h;return s=i,l=i,"reason"===n.substr(i,6).toLowerCase()?(e=n.substr(i,6),i+=6):(e=null,0===o&&a('"reason"')),null!==e&&null!==(t=M())&&null!==(r=an())?e=[e,t,r]:(e=null,i=l),null!==e&&(e=void(void 0!==(u=e[2])&&(jn.reason=u))),null===e&&(i=s),null===e&&(s=i,l=i,"expires"===n.substr(i,7).toLowerCase()?(e=n.substr(i,7),i+=7):(e=null,0===o&&a('"expires"')),null!==e&&null!==(t=M())&&null!==(r=Ct())?e=[e,t,r]:(e=null,i=l),null!==e&&(e=void(void 0!==(h=e[2])&&(jn.expires=h))),null===e&&(i=s),null===e&&(s=i,l=i,"retry_after"===n.substr(i,11).toLowerCase()?(e=n.substr(i,11),i+=11):(e=null,0===o&&a('"retry_after"')),null!==e&&null!==(t=M())&&null!==(r=Ct())?e=[e,t,r]:(e=null,i=l),null!==e&&(e=void(void 0!==(c=e[2])&&(jn.retry_after=c))),null===e&&(i=s),null===e&&(e=St()))),e}function an(){var e;return"deactivated"===n.substr(i,11).toLowerCase()?(e=n.substr(i,11),i+=11):(e=null,0===o&&a('"deactivated"')),null===e&&("probation"===n.substr(i,9).toLowerCase()?(e=n.substr(i,9),i+=9):(e=null,0===o&&a('"probation"')),null===e&&("rejected"===n.substr(i,8).toLowerCase()?(e=n.substr(i,8),i+=8):(e=null,0===o&&a('"rejected"')),null===e&&("timeout"===n.substr(i,7).toLowerCase()?(e=n.substr(i,7),i+=7):(e=null,0===o&&a('"timeout"')),null===e&&("giveup"===n.substr(i,6).toLowerCase()?(e=n.substr(i,6),i+=6):(e=null,0===o&&a('"giveup"')),null===e&&("noresource"===n.substr(i,10).toLowerCase()?(e=n.substr(i,10),i+=10):(e=null,0===o&&a('"noresource"')),null===e&&("invariant"===n.substr(i,9).toLowerCase()?(e=n.substr(i,9),i+=9):(e=null,0===o&&a('"invariant"')),null===e&&(e=N()))))))),e}function cn(){var e;return null===(e=Ft())&&(e=St()),e}function hn(){var e,t,n,r,s,o,l,u;if(l=i,null!==(e=yn()))if(null!==(t=E()))if(null!==(n=bn())){for(r=[],u=i,null!==(s=G())&&null!==(o=dn())?s=[s,o]:(s=null,i=u);null!==s;)r.push(s),u=i,null!==(s=G())&&null!==(o=dn())?s=[s,o]:(s=null,i=u);null!==r?e=[e,t,n,r]:(e=null,i=l)}else e=null,i=l;else e=null,i=l;else e=null,i=l;return e}function dn(){var e;return null===(e=fn())&&null===(e=_n())&&null===(e=pn())&&null===(e=mn())&&null===(e=vn())&&(e=St()),e}function fn(){var e,t,r,s,l,u;return s=i,l=i,"ttl"===n.substr(i,3).toLowerCase()?(e=n.substr(i,3),i+=3):(e=null,0===o&&a('"ttl"')),null!==e&&null!==(t=M())&&null!==(r=An())?e=[e,t,r]:(e=null,i=l),null!==e&&(u=e[2],e=void(jn.ttl=u)),null===e&&(i=s),e}function _n(){var e,t,r,s,l,u;return s=i,l=i,"maddr"===n.substr(i,5).toLowerCase()?(e=n.substr(i,5),i+=5):(e=null,0===o&&a('"maddr"')),null!==e&&null!==(t=M())&&null!==(r=le())?e=[e,t,r]:(e=null,i=l),null!==e&&(u=e[2],e=void(jn.maddr=u)),null===e&&(i=s),e}function pn(){var e,t,r,s,l,u;return s=i,l=i,"received"===n.substr(i,8).toLowerCase()?(e=n.substr(i,8),i+=8):(e=null,0===o&&a('"received"')),null!==e&&null!==(t=M())?(null===(r=pe())&&(r=de()),null!==r?e=[e,t,r]:(e=null,i=l)):(e=null,i=l),null!==e&&(u=e[2],e=void(jn.received=u)),null===e&&(i=s),e}function mn(){var e,t,r,s,l,u;return s=i,l=i,"branch"===n.substr(i,6).toLowerCase()?(e=n.substr(i,6),i+=6):(e=null,0===o&&a('"branch"')),null!==e&&null!==(t=M())&&null!==(r=N())?e=[e,t,r]:(e=null,i=l),null!==e&&(u=e[2],e=void(jn.branch=u)),null===e&&(i=s),e}function vn(){var e,t,r,s,l;return s=i,"rport"===n.substr(i,5).toLowerCase()?(e=n.substr(i,5),i+=5):(e=null,0===o&&a('"rport"')),null!==e?(l=i,null!==(t=M())&&null!==(r=gn())?t=[t,r]:(t=null,i=l),null!==(t=null!==t?t:"")?e=[e,t]:(e=null,i=s)):(e=null,i=s),e}function gn(){var e,t,n,r,s,o,l,u;return o=i,l=i,null!==(e=null!==(e=h())?e:"")&&null!==(t=null!==(t=h())?t:"")&&null!==(n=null!==(n=h())?n:"")&&null!==(r=null!==(r=h())?r:"")&&null!==(s=null!==(s=h())?s:"")?e=[e,t,n,r,s]:(e=null,i=l),null!==e&&(u=e,e=void(jn.rport=parseInt(u.join("")))),null===e&&(i=o),e}function yn(){var e,t,n,r,s,o;return o=i,null!==(e=Tn())&&null!==(t=P())&&null!==(n=N())&&null!==(r=P())&&null!==(s=Cn())?e=[e,t,n,r,s]:(e=null,i=o),e}function Tn(){var e,t,r;return t=i,"sip"===n.substr(i,3).toLowerCase()?(e=n.substr(i,3),i+=3):(e=null,0===o&&a('"SIP"')),null===e&&(e=N()),null!==e&&(r=e,e=void(jn.protocol=r)),null===e&&(i=t),e}function Cn(){var e,t,r;return t=i,"udp"===n.substr(i,3).toLowerCase()?(e=n.substr(i,3),i+=3):(e=null,0===o&&a('"UDP"')),null===e&&("tcp"===n.substr(i,3).toLowerCase()?(e=n.substr(i,3),i+=3):(e=null,0===o&&a('"TCP"')),null===e&&("tls"===n.substr(i,3).toLowerCase()?(e=n.substr(i,3),i+=3):(e=null,0===o&&a('"TLS"')),null===e&&("sctp"===n.substr(i,4).toLowerCase()?(e=n.substr(i,4),i+=4):(e=null,0===o&&a('"SCTP"')),null===e&&(e=N())))),null!==e&&(r=e,e=void(jn.transport=r)),null===e&&(i=t),e}function bn(){var e,t,n,r,s;return r=i,null!==(e=Sn())?(s=i,null!==(t=W())&&null!==(n=En())?t=[t,n]:(t=null,i=s),null!==(t=null!==t?t:"")?e=[e,t]:(e=null,i=r)):(e=null,i=r),e}function Sn(){var e,t,r;return t=i,null===(e=pe())&&null===(e=he())&&(e=ue()),null!==e&&(r=t,e=void(jn.host=n.substring(i,r))),null===e&&(i=t),e}function En(){var e,t,n,r,s,o,l,u;return o=i,l=i,null!==(e=null!==(e=h())?e:"")&&null!==(t=null!==(t=h())?t:"")&&null!==(n=null!==(n=h())?n:"")&&null!==(r=null!==(r=h())?r:"")&&null!==(s=null!==(s=h())?s:"")?e=[e,t,n,r,s]:(e=null,i=l),null!==e&&(u=e,e=void(jn.port=parseInt(u.join("")))),null===e&&(i=o),e}function An(){var e,t,n,r,s;return r=i,s=i,null!==(e=h())&&null!==(t=null!==(t=h())?t:"")&&null!==(n=null!==(n=h())?n:"")?e=[e,t,n]:(e=null,i=s),null!==e&&(e=parseInt(e.join(""))),null===e&&(i=r),e}function Rn(){var e,t,n;return t=i,null!==(e=Ct())&&(n=e,e=void(jn.expires=n)),null===e&&(i=t),e}function wn(){var e;return null===(e=In())&&(e=St()),e}function In(){var e,t,r,s,l,u;return s=i,l=i,"refresher"===n.substr(i,9).toLowerCase()?(e=n.substr(i,9),i+=9):(e=null,0===o&&a('"refresher"')),null!==e&&null!==(t=M())?("uac"===n.substr(i,3).toLowerCase()?(r=n.substr(i,3),i+=3):(r=null,0===o&&a('"uac"')),null===r&&("uas"===n.substr(i,3).toLowerCase()?(r=n.substr(i,3),i+=3):(r=null,0===o&&a('"uas"'))),null!==r?e=[e,t,r]:(e=null,i=l)):(e=null,i=l),null!==e&&(u=e[2],e=void(jn.refresher=u.toLowerCase())),null===e&&(i=s),e}function On(){var e,t;for(e=[],null===(t=I())&&null===(t=k())&&(t=E());null!==t;)e.push(t),null===(t=I())&&null===(t=k())&&(t=E());return e}function kn(){var e,t,r,s,l,u,c,h,d,f,_,p;return f=i,_=i,null!==(e=Un())?(45===n.charCodeAt(i)?(t="-",i++):(t=null,0===o&&a('"-"')),null!==t&&null!==(r=Nn())?(45===n.charCodeAt(i)?(s="-",i++):(s=null,0===o&&a('"-"')),null!==s&&null!==(l=Nn())?(45===n.charCodeAt(i)?(u="-",i++):(u=null,0===o&&a('"-"')),null!==u&&null!==(c=Nn())?(45===n.charCodeAt(i)?(h="-",i++):(h=null,0===o&&a('"-"')),null!==h&&null!==(d=xn())?e=[e,t,r,s,l,u,c,h,d]:(e=null,i=_)):(e=null,i=_)):(e=null,i=_)):(e=null,i=_)):(e=null,i=_),null!==e&&(p=f,e[0],e=void(jn=n.substring(i+5,p))),null===e&&(i=f),e}function Nn(){var e,t,n,r,s;return s=i,null!==(e=f())&&null!==(t=f())&&null!==(n=f())&&null!==(r=f())?e=[e,t,n,r]:(e=null,i=s),e}function Un(){var e,t,n;return n=i,null!==(e=Nn())&&null!==(t=Nn())?e=[e,t]:(e=null,i=n),e}function xn(){var e,t,n,r;return r=i,null!==(e=Nn())&&null!==(t=Nn())&&null!==(n=Nn())?e=[e,t,n]:(e=null,i=r),e}function Dn(){var e,t,r,s,l,u,c;return s=i,l=i,null!==(e=x())?(u=i,64===n.charCodeAt(i)?(t="@",i++):(t=null,0===o&&a('"@"')),null!==t&&null!==(r=x())?t=[t,r]:(t=null,i=u),null!==(t=null!==t?t:"")?e=[e,t]:(e=null,i=l)):(e=null,i=l),null!==e&&(c=s,e=void(jn.call_id=n.substring(i,c))),null===e&&(i=s),e}function Pn(){var e;return null===(e=Mn())&&null===(e=qn())&&null===(e=Ln())&&(e=St()),e}function Mn(){var e,t,r,s,l,u;return s=i,l=i,"to-tag"===n.substr(i,6)?(e="to-tag",i+=6):(e=null,0===o&&a('"to-tag"')),null!==e&&null!==(t=M())&&null!==(r=N())?e=[e,t,r]:(e=null,i=l),null!==e&&(u=e[2],e=void(jn.to_tag=u)),null===e&&(i=s),e}function qn(){var e,t,r,s,l,u;return s=i,l=i,"from-tag"===n.substr(i,8)?(e="from-tag",i+=8):(e=null,0===o&&a('"from-tag"')),null!==e&&null!==(t=M())&&null!==(r=N())?e=[e,t,r]:(e=null,i=l),null!==e&&(u=e[2],e=void(jn.from_tag=u)),null===e&&(i=s),e}function Ln(){var e,t;return t=i,"early-only"===n.substr(i,10)?(e="early-only",i+=10):(e=null,0===o&&a('"early-only"')),null!==e&&(e=void(jn.early_only=!0)),null===e&&(i=t),e}var Hn=e("./URI"),Fn=e("./NameAddrHeader"),jn={};if(null===s[r]()||i!==n.length){var Gn=Math.max(i,l),Wn=Gn2&&void 0!==arguments[2]?arguments[2]:{},s=e;if(void 0===e||void 0===t)throw new TypeError("Not enough arguments");if(!(e=this._ua.normalizeTarget(e)))throw new TypeError("Invalid target: ".concat(s));var i=d.cloneArray(r.extraHeaders),o=d.cloneObject(r.eventHandlers),l=r.contentType||"text/plain",u={};for(var a in r.fromUserName&&(u.from_uri=new p("sip",r.fromUserName,this._ua.configuration.uri.host),i.push("P-Preferred-Identity: ".concat(this._ua.configuration.uri.toString()))),r.fromDisplayName&&(u.from_display_name=r.fromDisplayName),o)Object.prototype.hasOwnProperty.call(o,a)&&this.on(a,o[a]);i.push("Content-Type: ".concat(l)),this._request=new h.OutgoingRequest(c.MESSAGE,e,this._ua,u,i),t&&(this._request.body=t);var _=new f(this._ua,this._request,{onRequestTimeout:function(){n._onRequestTimeout()},onTransportError:function(){n._onTransportError()},onReceiveResponse:function(e){n._receiveResponse(e)}});this._newMessage("local",this._request),_.send()}},{key:"init_incoming",value:function(e){this._request=e,this._newMessage("remote",e),this._is_replied||(this._is_replied=!0,e.reply(200)),this._close()}},{key:"accept",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=d.cloneArray(e.extraHeaders),n=e.body;if("incoming"!==this._direction)throw new _.NotSupportedError('"accept" not supported for outgoing Message');if(this._is_replied)throw new Error("incoming Message already replied");this._is_replied=!0,this._request.reply(200,null,t,n)}},{key:"reject",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=e.status_code||480,n=e.reason_phrase,r=d.cloneArray(e.extraHeaders),s=e.body;if("incoming"!==this._direction)throw new _.NotSupportedError('"reject" not supported for outgoing Message');if(this._is_replied)throw new Error("incoming Message already replied");if(t<300||t>=700)throw new TypeError("Invalid status_code: ".concat(t));this._is_replied=!0,this._request.reply(t,n,r,s)}},{key:"_receiveResponse",value:function(e){if(!this._closed)switch(!0){case/^1[0-9]{2}$/.test(e.status_code):break;case/^2[0-9]{2}$/.test(e.status_code):this._succeeded("remote",e);break;default:var t=d.sipErrorCause(e.status_code);this._failed("remote",e,t)}}},{key:"_onRequestTimeout",value:function(){this._closed||this._failed("system",null,c.causes.REQUEST_TIMEOUT)}},{key:"_onTransportError",value:function(){this._closed||this._failed("system",null,c.causes.CONNECTION_ERROR)}},{key:"_close",value:function(){this._closed=!0,this._ua.destroyMessage(this)}},{key:"_newMessage",value:function(e,t){"remote"===e?(this._direction="incoming",this._local_identity=t.to,this._remote_identity=t.from):"local"===e&&(this._direction="outgoing",this._local_identity=t.from,this._remote_identity=t.to),this._ua.newMessage(this,{originator:e,message:this,request:t})}},{key:"_failed",value:function(e,t,n){m.debug("MESSAGE failed"),this._close(),m.debug('emit "failed"'),this.emit("failed",{originator:e,response:t||null,cause:n})}},{key:"_succeeded",value:function(e,t){m.debug("MESSAGE succeeded"),this._close(),m.debug('emit "succeeded"'),this.emit("succeeded",{originator:e,response:t})}},{key:"direction",get:function(){return this._direction}},{key:"local_identity",get:function(){return this._local_identity}},{key:"remote_identity",get:function(){return this._remote_identity}}])&&s(t.prototype,n),r&&s(t,r),a}()},{"./Constants":2,"./Exceptions":6,"./Logger":9,"./RequestSender":20,"./SIPMessage":21,"./URI":27,"./Utils":28,events:31}],11:[function(e,t,n){"use strict";function r(e,t){for(var n=0;n"),this._parameters)Object.prototype.hasOwnProperty.call(this._parameters,t)&&(e+=";".concat(t),null!==this._parameters[t]&&(e+="=".concat(this._parameters[t])));return e}},{key:"uri",get:function(){return this._uri}},{key:"display_name",get:function(){return this._display_name},set:function(e){this._display_name=0===e?"0":e}}]),e}()},{"./Grammar":7,"./URI":27}],12:[function(e,t,n){"use strict";function r(e){return(r="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function s(e,t){for(var n=0;n2&&void 0!==arguments[2]?arguments[2]:{},s=e;if(void 0===e)throw new TypeError("A target is required for OPTIONS");if(!(e=this._ua.normalizeTarget(e)))throw new TypeError("Invalid target: ".concat(s));var i=d.cloneArray(r.extraHeaders),o=d.cloneObject(r.eventHandlers),l=r.contentType||"application/sdp";for(var u in o)Object.prototype.hasOwnProperty.call(o,u)&&this.on(u,o[u]);i.push("Content-Type: ".concat(l)),this._request=new h.OutgoingRequest(c.OPTIONS,e,this._ua,null,i),t&&(this._request.body=t);var a=new f(this._ua,this._request,{onRequestTimeout:function(){n._onRequestTimeout()},onTransportError:function(){n._onTransportError()},onReceiveResponse:function(e){n._receiveResponse(e)}});this._newOptions("local",this._request),a.send()}},{key:"init_incoming",value:function(e){this._request=e,this._newOptions("remote",e),this._is_replied||(this._is_replied=!0,e.reply(200)),this._close()}},{key:"accept",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=d.cloneArray(e.extraHeaders),n=e.body;if("incoming"!==this._direction)throw new _.NotSupportedError('"accept" not supported for outgoing Options');if(this._is_replied)throw new Error("incoming Options already replied");this._is_replied=!0,this._request.reply(200,null,t,n)}},{key:"reject",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=e.status_code||480,n=e.reason_phrase,r=d.cloneArray(e.extraHeaders),s=e.body;if("incoming"!==this._direction)throw new _.NotSupportedError('"reject" not supported for outgoing Options');if(this._is_replied)throw new Error("incoming Options already replied");if(t<300||t>=700)throw new TypeError("Invalid status_code: ".concat(t));this._is_replied=!0,this._request.reply(t,n,r,s)}},{key:"_receiveResponse",value:function(e){if(!this._closed)switch(!0){case/^1[0-9]{2}$/.test(e.status_code):break;case/^2[0-9]{2}$/.test(e.status_code):this._succeeded("remote",e);break;default:var t=d.sipErrorCause(e.status_code);this._failed("remote",e,t)}}},{key:"_onRequestTimeout",value:function(){this._closed||this._failed("system",null,c.causes.REQUEST_TIMEOUT)}},{key:"_onTransportError",value:function(){this._closed||this._failed("system",null,c.causes.CONNECTION_ERROR)}},{key:"_close",value:function(){this._closed=!0,this._ua.destroyMessage(this)}},{key:"_newOptions",value:function(e,t){"remote"===e?(this._direction="incoming",this._local_identity=t.to,this._remote_identity=t.from):"local"===e&&(this._direction="outgoing",this._local_identity=t.from,this._remote_identity=t.to),this._ua.newOptions(this,{originator:e,message:this,request:t})}},{key:"_failed",value:function(e,t,n){p.debug("OPTIONS failed"),this._close(),p.debug('emit "failed"'),this.emit("failed",{originator:e,response:t||null,cause:n})}},{key:"_succeeded",value:function(e,t){p.debug("OPTIONS succeeded"),this._close(),p.debug('emit "succeeded"'),this.emit("succeeded",{originator:e,response:t})}},{key:"direction",get:function(){return this._direction}},{key:"local_identity",get:function(){return this._local_identity}},{key:"remote_identity",get:function(){return this._remote_identity}}])&&s(t.prototype,n),r&&s(t,r),a}()},{"./Constants":2,"./Exceptions":6,"./Logger":9,"./RequestSender":20,"./SIPMessage":21,"./Utils":28,events:31}],13:[function(e,t,n){"use strict";function r(e,t){var n;if("undefined"==typeof Symbol||null==e[Symbol.iterator]){if(Array.isArray(e)||(n=function(e,t){if(!e)return;if("string"==typeof e)return s(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);"Object"===n&&e.constructor&&(n=e.constructor.name);if("Map"===n||"Set"===n)return Array.from(e);if("Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return s(e,t)}(e))||t&&e&&"number"==typeof e.length){n&&(e=n);var r=0,i=function(){};return{s:i,n:function(){return r>=e.length?{done:!0}:{done:!1,value:e[r++]}},e:function(e){throw e},f:i}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var o,l=!0,u=!1;return{s:function(){n=e[Symbol.iterator]()},n:function(){var e=n.next();return l=e.done,e},e:function(e){u=!0,o=e},f:function(){try{l||null==n.return||n.return()}finally{if(u)throw o}}}}function s(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n=e.length?{done:!0}:{done:!1,value:e[r++]}},e:function(e){throw e},f:s}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var o,l=!0,u=!1;return{s:function(){n=e[Symbol.iterator]()},n:function(){var e=n.next();return l=e.done,e},e:function(e){u=!0,o=e},f:function(){try{l||null==n.return||n.return()}finally{if(u)throw o}}}}function i(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n1&&void 0!==arguments[1]?arguments[1]:{},n=arguments.length>2?arguments[2]:void 0;w.debug("connect()");var r=e,s=v.cloneObject(t.eventHandlers),i=v.cloneArray(t.extraHeaders),o=v.cloneObject(t.mediaConstraints,{audio:!0,video:!0}),l=t.mediaStream||null,u=v.cloneObject(t.pcConfig,{iceServers:[]}),a=t.rtcConstraints||null,c=t.rtcOfferConstraints||null;if(this._rtcOfferConstraints=c,this._rtcAnswerConstraints=t.rtcAnswerConstraints||null,this._data=t.data||this._data,void 0===e)throw new TypeError("Not enough arguments");if(this._status!==I.STATUS_NULL)throw new p.InvalidStateError(this._status);if(!window.RTCPeerConnection)throw new p.NotSupportedError("WebRTC not supported");if(!(e=this._ua.normalizeTarget(e)))throw new TypeError("Invalid target: ".concat(r));for(var h in this._sessionTimers.enabled&&v.isDecimal(t.sessionTimersExpires)&&(t.sessionTimersExpires>=_.MIN_SESSION_EXPIRES?this._sessionTimers.defaultExpires=t.sessionTimersExpires:this._sessionTimers.defaultExpires=_.SESSION_EXPIRES),s)Object.prototype.hasOwnProperty.call(s,h)&&this.on(h,s[h]);this._from_tag=v.newTag();var d=t.anonymous||!1,f={from_tag:this._from_tag};this._contact=this._ua.contact.toString({anonymous:d,outbound:!0}),d?(f.from_display_name="Anonymous",f.from_uri=new R("sip","anonymous","anonymous.invalid"),i.push("P-Preferred-Identity: ".concat(this._ua.configuration.uri.toString())),i.push("Privacy: id")):t.fromUserName&&(f.from_uri=new R("sip",t.fromUserName,this._ua.configuration.uri.host),i.push("P-Preferred-Identity: ".concat(this._ua.configuration.uri.toString()))),t.fromDisplayName&&(f.from_display_name=t.fromDisplayName),i.push("Contact: ".concat(this._contact)),i.push("Content-Type: application/sdp"),this._sessionTimers.enabled&&i.push("Session-Expires: ".concat(this._sessionTimers.defaultExpires).concat(this._ua.configuration.session_timers_force_refresher?";refresher=uac":"")),this._request=new y.InitialOutgoingInviteRequest(e,this._ua,f,i),this._id=this._request.call_id+this._from_tag,this._createRTCConnection(u,a),this._direction="outgoing",this._local_identity=this._request.from,this._remote_identity=this._request.to,n&&n(this),this._newRTCSession("local",this._request),this._sendInitialRequest(o,c,l)}},{key:"init_incoming",value:function(e,t){var n,r=this;w.debug("init_incoming()");var s=e.hasHeader("Content-Type")?e.getHeader("Content-Type").toLowerCase():void 0;e.body&&"application/sdp"!==s?e.reply(415):(this._status=I.STATUS_INVITE_RECEIVED,this._from_tag=e.from_tag,this._id=e.call_id+this._from_tag,this._request=e,this._contact=this._ua.contact.toString(),e.hasHeader("expires")&&(n=1e3*e.getHeader("expires")),e.to_tag=v.newTag(),this._createDialog(e,"UAS",!0)?(e.body?this._late_sdp=!1:this._late_sdp=!0,this._status=I.STATUS_WAITING_FOR_ANSWER,this._timers.userNoAnswerTimer=setTimeout(function(){e.reply(408),r._failed("local",null,_.causes.NO_ANSWER)},this._ua.configuration.no_answer_timeout),n&&(this._timers.expiresTimer=setTimeout(function(){r._status===I.STATUS_WAITING_FOR_ANSWER&&(e.reply(487),r._failed("system",null,_.causes.EXPIRES))},n)),this._direction="incoming",this._local_identity=e.to,this._remote_identity=e.from,t&&t(this),this._newRTCSession("remote",e),this._status!==I.STATUS_TERMINATED&&(e.reply(180,null,["Contact: ".concat(this._contact)]),this._progress("local",null))):e.reply(500,"Missing Contact header field"))}},{key:"answer",value:function(){var e=this,t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};w.debug("answer()");var n=this._request,r=v.cloneArray(t.extraHeaders),i=v.cloneObject(t.mediaConstraints),o=t.mediaStream||null,l=v.cloneObject(t.pcConfig,{iceServers:[]}),u=t.rtcConstraints||null,a=t.rtcAnswerConstraints||null,c=v.cloneObject(t.rtcOfferConstraints),h=!1,d=!1,f=!1,m=!1;if(this._rtcAnswerConstraints=a,this._rtcOfferConstraints=t.rtcOfferConstraints||null,this._data=t.data||this._data,"incoming"!==this._direction)throw new p.NotSupportedError('"answer" not supported for outgoing RTCSession');if(this._status!==I.STATUS_WAITING_FOR_ANSWER)throw new p.InvalidStateError(this._status);if(this._sessionTimers.enabled&&v.isDecimal(t.sessionTimersExpires)&&(t.sessionTimersExpires>=_.MIN_SESSION_EXPIRES?this._sessionTimers.defaultExpires=t.sessionTimersExpires:this._sessionTimers.defaultExpires=_.SESSION_EXPIRES),this._status=I.STATUS_ANSWERED,this._createDialog(n,"UAS")){clearTimeout(this._timers.userNoAnswerTimer),r.unshift("Contact: ".concat(this._contact));var g=n.parseSDP();Array.isArray(g.media)||(g.media=[g.media]);var y,T=s(g.media);try{for(T.s();!(y=T.n()).done;){var C=y.value;"audio"===C.type&&(h=!0,C.direction&&"sendrecv"!==C.direction||(f=!0)),"video"===C.type&&(d=!0,C.direction&&"sendrecv"!==C.direction||(m=!0))}}catch(e){T.e(e)}finally{T.f()}if(o&&!1===i.audio){var b,S=s(o.getAudioTracks());try{for(S.s();!(b=S.n()).done;){var E=b.value;o.removeTrack(E)}}catch(e){S.e(e)}finally{S.f()}}if(o&&!1===i.video){var A,R=s(o.getVideoTracks());try{for(R.s();!(A=R.n()).done;){var O=A.value;o.removeTrack(O)}}catch(e){R.e(e)}finally{R.f()}}o||void 0!==i.audio||(i.audio=f),o||void 0!==i.video||(i.video=m),o||h||c.offerToReceiveAudio||(i.audio=!1),o||d||c.offerToReceiveVideo||(i.video=!1),this._createRTCConnection(l,u),Promise.resolve().then(function(){return o||(i.audio||i.video?(e._localMediaStreamLocallyGenerated=!0,navigator.mediaDevices.getUserMedia(i).catch(function(t){if(e._status===I.STATUS_TERMINATED)throw new Error("terminated");throw n.reply(480),e._failed("local",null,_.causes.USER_DENIED_MEDIA_ACCESS),w.warn('emit "getusermediafailed" [error:%o]',t),e.emit("getusermediafailed",t),new Error("getUserMedia() failed")})):void 0)}).then(function(t){if(e._status===I.STATUS_TERMINATED)throw new Error("terminated");e._localMediaStream=t,t&&t.getTracks().forEach(function(n){e._connection.addTrack(n,t)})}).then(function(){if(!e._late_sdp){var t={originator:"remote",type:"offer",sdp:n.body};w.debug('emit "sdp"'),e.emit("sdp",t);var r=new RTCSessionDescription({type:"offer",sdp:t.sdp});return e._connectionPromiseQueue=e._connectionPromiseQueue.then(function(){return e._connection.setRemoteDescription(r)}).catch(function(t){throw n.reply(488),e._failed("system",null,_.causes.WEBRTC_ERROR),w.warn('emit "peerconnection:setremotedescriptionfailed" [error:%o]',t),e.emit("peerconnection:setremotedescriptionfailed",t),new Error("peerconnection.setRemoteDescription() failed")}),e._connectionPromiseQueue}}).then(function(){if(e._status===I.STATUS_TERMINATED)throw new Error("terminated");return e._connecting(n),e._late_sdp?e._createLocalDescription("offer",e._rtcOfferConstraints).catch(function(){throw n.reply(500),new Error("_createLocalDescription() failed")}):e._createLocalDescription("answer",a).catch(function(){throw n.reply(500),new Error("_createLocalDescription() failed")})}).then(function(t){if(e._status===I.STATUS_TERMINATED)throw new Error("terminated");e._handleSessionTimersInIncomingRequest(n,r),n.reply(200,null,r,t,function(){e._status=I.STATUS_WAITING_FOR_ACK,e._setInvite2xxTimer(n,t),e._setACKTimer(),e._accepted("local")},function(){e._failed("system",null,_.causes.CONNECTION_ERROR)})}).catch(function(t){e._status!==I.STATUS_TERMINATED&&w.warn(t)})}else n.reply(500,"Error creating dialog")}},{key:"terminate",value:function(){var e=this,t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};w.debug("terminate()");var n,r=t.cause||_.causes.BYE,s=v.cloneArray(t.extraHeaders),i=t.body,o=t.status_code,l=t.reason_phrase;if(this._status===I.STATUS_TERMINATED)throw new p.InvalidStateError(this._status);switch(this._status){case I.STATUS_NULL:case I.STATUS_INVITE_SENT:case I.STATUS_1XX_RECEIVED:if(w.debug("canceling session"),o&&(o<200||o>=700))throw new TypeError("Invalid status_code: ".concat(o));o&&(l=l||_.REASON_PHRASE[o]||"",n="SIP ;cause=".concat(o,' ;text="').concat(l,'"')),this._status===I.STATUS_NULL||this._status===I.STATUS_INVITE_SENT?(this._is_canceled=!0,this._cancel_reason=n):this._status===I.STATUS_1XX_RECEIVED&&this._request.cancel(n),this._status=I.STATUS_CANCELED,this._failed("local",null,_.causes.CANCELED);break;case I.STATUS_WAITING_FOR_ANSWER:case I.STATUS_ANSWERED:if(w.debug("rejecting session"),(o=o||480)<300||o>=700)throw new TypeError("Invalid status_code: ".concat(o));this._request.reply(o,l,s,i),this._failed("local",null,_.causes.REJECTED);break;case I.STATUS_WAITING_FOR_ACK:case I.STATUS_CONFIRMED:if(w.debug("terminating session"),l=t.reason_phrase||_.REASON_PHRASE[o]||"",o&&(o<200||o>=700))throw new TypeError("Invalid status_code: ".concat(o));if(o&&s.push("Reason: SIP ;cause=".concat(o,'; text="').concat(l,'"')),this._status===I.STATUS_WAITING_FOR_ACK&&"incoming"===this._direction&&this._request.server_transaction.state!==m.C.STATUS_TERMINATED){var u=this._dialog;this.receiveRequest=function(t){t.method===_.ACK&&(e.sendRequest(_.BYE,{extraHeaders:s,body:i}),u.terminate())},this._request.server_transaction.on("stateChanged",function(){e._request.server_transaction.state===m.C.STATUS_TERMINATED&&(e.sendRequest(_.BYE,{extraHeaders:s,body:i}),u.terminate())}),this._ended("local",null,r),this._dialog=u,this._ua.newDialog(u)}else this.sendRequest(_.BYE,{extraHeaders:s,body:i}),this._ended("local",null,r)}}},{key:"sendDTMF",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};w.debug("sendDTMF() | tones: %s",e);var n=0,r=t.duration||null,s=t.interToneGap||null,i=t.transportType||_.DTMF_TRANSPORT.INFO;if(void 0===e)throw new TypeError("Not enough arguments");if(this._status!==I.STATUS_CONFIRMED&&this._status!==I.STATUS_WAITING_FOR_ACK&&this._status!==I.STATUS_1XX_RECEIVED)throw new p.InvalidStateError(this._status);if(i!==_.DTMF_TRANSPORT.INFO&&i!==_.DTMF_TRANSPORT.RFC2833)throw new TypeError("invalid transportType: ".concat(i));if("number"==typeof e&&(e=e.toString()),!e||"string"!=typeof e||!e.match(/^[0-9A-DR#*,]+$/i))throw new TypeError("Invalid tones: ".concat(e));if(r&&!v.isDecimal(r))throw new TypeError("Invalid tone duration: ".concat(r));if(r?rb.C.MAX_DURATION?(w.debug('"duration" value is greater than the maximum allowed, setting it to '.concat(b.C.MAX_DURATION," milliseconds")),r=b.C.MAX_DURATION):r=Math.abs(r):r=b.C.DEFAULT_DURATION,t.duration=r,s&&!v.isDecimal(s))throw new TypeError("Invalid interToneGap: ".concat(s));if(s?s=this._tones.length)return void(this._tones=null);var l=this._tones[n];n+=1;if(","===l)o=2e3;else{var u=new b(this);t.eventHandlers={onFailed:function(){i._tones=null}},u.send(l,t),o=r+s}setTimeout(e.bind(this),o)}.call(this));else{var o=this._getDTMFRTPSender();o&&(e=o.toneBuffer+e,o.insertDTMF(e,r,s))}}},{key:"sendInfo",value:function(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};if(w.debug("sendInfo()"),this._status!==I.STATUS_CONFIRMED&&this._status!==I.STATUS_WAITING_FOR_ACK&&this._status!==I.STATUS_1XX_RECEIVED)throw new p.InvalidStateError(this._status);new S(this).send(e,t,n)}},{key:"mute",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{audio:!0,video:!1};w.debug("mute()");var t=!1,n=!1;!1===this._audioMuted&&e.audio&&(t=!0,this._audioMuted=!0,this._toggleMuteAudio(!0)),!1===this._videoMuted&&e.video&&(n=!0,this._videoMuted=!0,this._toggleMuteVideo(!0)),!0!==t&&!0!==n||this._onmute({audio:t,video:n})}},{key:"unmute",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{audio:!0,video:!0};w.debug("unmute()");var t=!1,n=!1;!0===this._audioMuted&&e.audio&&(t=!0,this._audioMuted=!1,!1===this._localHold&&this._toggleMuteAudio(!1)),!0===this._videoMuted&&e.video&&(n=!0,this._videoMuted=!1,!1===this._localHold&&this._toggleMuteVideo(!1)),!0!==t&&!0!==n||this._onunmute({audio:t,video:n})}},{key:"hold",value:function(){var e=this,t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=arguments.length>1?arguments[1]:void 0;if(w.debug("hold()"),this._status!==I.STATUS_WAITING_FOR_ACK&&this._status!==I.STATUS_CONFIRMED)return!1;if(!0===this._localHold)return!1;if(!this._isReadyToReOffer())return!1;this._localHold=!0,this._onhold("local");var r={succeeded:function(){n&&n()},failed:function(){e.terminate({cause:_.causes.WEBRTC_ERROR,status_code:500,reason_phrase:"Hold Failed"})}};return t.useUpdate?this._sendUpdate({sdpOffer:!0,eventHandlers:r,extraHeaders:t.extraHeaders}):this._sendReinvite({eventHandlers:r,extraHeaders:t.extraHeaders}),!0}},{key:"unhold",value:function(){var e=this,t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=arguments.length>1?arguments[1]:void 0;if(w.debug("unhold()"),this._status!==I.STATUS_WAITING_FOR_ACK&&this._status!==I.STATUS_CONFIRMED)return!1;if(!1===this._localHold)return!1;if(!this._isReadyToReOffer())return!1;this._localHold=!1,this._onunhold("local");var r={succeeded:function(){n&&n()},failed:function(){e.terminate({cause:_.causes.WEBRTC_ERROR,status_code:500,reason_phrase:"Unhold Failed"})}};return t.useUpdate?this._sendUpdate({sdpOffer:!0,eventHandlers:r,extraHeaders:t.extraHeaders}):this._sendReinvite({eventHandlers:r,extraHeaders:t.extraHeaders}),!0}},{key:"renegotiate",value:function(){var e=this,t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=arguments.length>1?arguments[1]:void 0;w.debug("renegotiate()");var r=t.rtcOfferConstraints||null;if(this._status!==I.STATUS_WAITING_FOR_ACK&&this._status!==I.STATUS_CONFIRMED)return!1;if(!this._isReadyToReOffer())return!1;var s={succeeded:function(){n&&n()},failed:function(){e.terminate({cause:_.causes.WEBRTC_ERROR,status_code:500,reason_phrase:"Media Renegotiation Failed"})}};return this._setLocalMediaStatus(),t.useUpdate?this._sendUpdate({sdpOffer:!0,eventHandlers:s,rtcOfferConstraints:r,extraHeaders:t.extraHeaders}):this._sendReinvite({eventHandlers:s,rtcOfferConstraints:r,extraHeaders:t.extraHeaders}),!0}},{key:"refer",value:function(e,t){var n=this;w.debug("refer()");var r=e;if(this._status!==I.STATUS_WAITING_FOR_ACK&&this._status!==I.STATUS_CONFIRMED)return!1;if(!(e=this._ua.normalizeTarget(e)))throw new TypeError("Invalid target: ".concat(r));var s=new A(this);s.sendRefer(e,t);var i=s.id;return this._referSubscribers[i]=s,s.on("requestFailed",function(){delete n._referSubscribers[i]}),s.on("accepted",function(){delete n._referSubscribers[i]}),s.on("failed",function(){delete n._referSubscribers[i]}),s}},{key:"sendRequest",value:function(e,t){return w.debug("sendRequest()"),this._dialog.sendRequest(e,t)}},{key:"receiveRequest",value:function(e){var t=this;if(w.debug("receiveRequest()"),e.method===_.CANCEL)this._status!==I.STATUS_WAITING_FOR_ANSWER&&this._status!==I.STATUS_ANSWERED||(this._status=I.STATUS_CANCELED,this._request.reply(487),this._failed("remote",e,_.causes.CANCELED));else switch(e.method){case _.ACK:if(this._status!==I.STATUS_WAITING_FOR_ACK)return;if(this._status=I.STATUS_CONFIRMED,clearTimeout(this._timers.ackTimer),clearTimeout(this._timers.invite2xxTimer),this._late_sdp){if(!e.body){this.terminate({cause:_.causes.MISSING_SDP,status_code:400});break}var n={originator:"remote",type:"answer",sdp:e.body};w.debug('emit "sdp"'),this.emit("sdp",n);var r=new RTCSessionDescription({type:"answer",sdp:n.sdp});this._connectionPromiseQueue=this._connectionPromiseQueue.then(function(){return t._connection.setRemoteDescription(r)}).then(function(){t._is_confirmed||t._confirmed("remote",e)}).catch(function(e){t.terminate({cause:_.causes.BAD_MEDIA_DESCRIPTION,status_code:488}),w.warn('emit "peerconnection:setremotedescriptionfailed" [error:%o]',e),t.emit("peerconnection:setremotedescriptionfailed",e)})}else this._is_confirmed||this._confirmed("remote",e);break;case _.BYE:this._status===I.STATUS_CONFIRMED||this._status===I.STATUS_WAITING_FOR_ACK?(e.reply(200),this._ended("remote",e,_.causes.BYE)):this._status===I.STATUS_INVITE_RECEIVED||this._status===I.STATUS_WAITING_FOR_ANSWER?(e.reply(200),this._request.reply(487,"BYE Received"),this._ended("remote",e,_.causes.BYE)):e.reply(403,"Wrong Status");break;case _.INVITE:this._status===I.STATUS_CONFIRMED?e.hasHeader("replaces")?this._receiveReplaces(e):this._receiveReinvite(e):e.reply(403,"Wrong Status");break;case _.INFO:if(this._status===I.STATUS_1XX_RECEIVED||this._status===I.STATUS_WAITING_FOR_ANSWER||this._status===I.STATUS_ANSWERED||this._status===I.STATUS_WAITING_FOR_ACK||this._status===I.STATUS_CONFIRMED){var s=e.hasHeader("Content-Type")?e.getHeader("Content-Type").toLowerCase():void 0;s&&s.match(/^application\/dtmf-relay/i)?new b(this).init_incoming(e):void 0!==s?new S(this).init_incoming(e):e.reply(415)}else e.reply(403,"Wrong Status");break;case _.UPDATE:this._status===I.STATUS_CONFIRMED?this._receiveUpdate(e):e.reply(403,"Wrong Status");break;case _.REFER:this._status===I.STATUS_CONFIRMED?this._receiveRefer(e):e.reply(403,"Wrong Status");break;case _.NOTIFY:this._status===I.STATUS_CONFIRMED?this._receiveNotify(e):e.reply(403,"Wrong Status");break;default:e.reply(501)}}},{key:"onTransportError",value:function(){w.warn("onTransportError()"),this._status!==I.STATUS_TERMINATED&&this.terminate({status_code:500,reason_phrase:_.causes.CONNECTION_ERROR,cause:_.causes.CONNECTION_ERROR})}},{key:"onRequestTimeout",value:function(){w.warn("onRequestTimeout()"),this._status!==I.STATUS_TERMINATED&&this.terminate({status_code:408,reason_phrase:_.causes.REQUEST_TIMEOUT,cause:_.causes.REQUEST_TIMEOUT})}},{key:"onDialogError",value:function(){w.warn("onDialogError()"),this._status!==I.STATUS_TERMINATED&&this.terminate({status_code:500,reason_phrase:_.causes.DIALOG_ERROR,cause:_.causes.DIALOG_ERROR})}},{key:"newDTMF",value:function(e){w.debug("newDTMF()"),this.emit("newDTMF",e)}},{key:"newInfo",value:function(e){w.debug("newInfo()"),this.emit("newInfo",e)}},{key:"_isReadyToReOffer",value:function(){return this._rtcReady?this._dialog?!0!==this._dialog.uac_pending_reply&&!0!==this._dialog.uas_pending_reply||(w.debug("_isReadyToReOffer() | there is another INVITE/UPDATE transaction in progress"),!1):(w.debug("_isReadyToReOffer() | session not established yet"),!1):(w.debug("_isReadyToReOffer() | internal WebRTC status not ready"),!1)}},{key:"_close",value:function(){if(w.debug("close()"),this._localMediaStream&&this._localMediaStreamLocallyGenerated&&(w.debug("close() | closing local MediaStream"),v.closeMediaStream(this._localMediaStream)),this._status!==I.STATUS_TERMINATED){if(this._status=I.STATUS_TERMINATED,this._connection)try{this._connection.close()}catch(e){w.warn("close() | error closing the RTCPeerConnection: %o",e)}for(var e in this._timers)Object.prototype.hasOwnProperty.call(this._timers,e)&&clearTimeout(this._timers[e]);for(var t in clearTimeout(this._sessionTimers.timer),this._dialog&&(this._dialog.terminate(),delete this._dialog),this._earlyDialogs)Object.prototype.hasOwnProperty.call(this._earlyDialogs,t)&&(this._earlyDialogs[t].terminate(),delete this._earlyDialogs[t]);for(var n in this._referSubscribers)Object.prototype.hasOwnProperty.call(this._referSubscribers,n)&&delete this._referSubscribers[n];this._ua.destroyRTCSession(this)}}},{key:"_setInvite2xxTimer",value:function(e,t){var n=g.T1;this._timers.invite2xxTimer=setTimeout(function r(){this._status===I.STATUS_WAITING_FOR_ACK&&(e.reply(200,null,["Contact: ".concat(this._contact)],t),ng.T2&&(n=g.T2),this._timers.invite2xxTimer=setTimeout(r.bind(this),n))}.bind(this),n)}},{key:"_setACKTimer",value:function(){var e=this;this._timers.ackTimer=setTimeout(function(){e._status===I.STATUS_WAITING_FOR_ACK&&(w.debug("no ACK received, terminating the session"),clearTimeout(e._timers.invite2xxTimer),e.sendRequest(_.BYE),e._ended("remote",null,_.causes.NO_ACK))},g.TIMER_H)}},{key:"_createRTCConnection",value:function(e,t){var n=this;this._connection=new RTCPeerConnection(e,t),this._connection.addEventListener("iceconnectionstatechange",function(){"failed"===n._connection.iceConnectionState&&n.terminate({cause:_.causes.RTP_TIMEOUT,status_code:408,reason_phrase:_.causes.RTP_TIMEOUT})}),w.debug('emit "peerconnection"'),this.emit("peerconnection",{peerconnection:this._connection})}},{key:"_createLocalDescription",value:function(e,t){var n=this;if(w.debug("createLocalDescription()"),"offer"!==e&&"answer"!==e)throw new Error('createLocalDescription() | invalid type "'.concat(e,'"'));var r=this._connection;return this._rtcReady=!1,Promise.resolve().then(function(){return"offer"===e?r.createOffer(t).catch(function(e){return w.warn('emit "peerconnection:createofferfailed" [error:%o]',e),n.emit("peerconnection:createofferfailed",e),Promise.reject(e)}):r.createAnswer(t).catch(function(e){return w.warn('emit "peerconnection:createanswerfailed" [error:%o]',e),n.emit("peerconnection:createanswerfailed",e),Promise.reject(e)})}).then(function(e){return r.setLocalDescription(e).catch(function(e){return n._rtcReady=!0,w.warn('emit "peerconnection:setlocaldescriptionfailed" [error:%o]',e),n.emit("peerconnection:setlocaldescriptionfailed",e),Promise.reject(e)})}).then(function(){var s=t&&t.iceRestart;if("complete"===r.iceGatheringState&&!s||"gathering"===r.iceGatheringState&&n._iceReady){n._rtcReady=!0;var i={originator:"local",type:e,sdp:r.localDescription.sdp};return w.debug('emit "sdp"'),n.emit("sdp",i),Promise.resolve(i.sdp)}return new Promise(function(t){var s,i,o=!1;n._iceReady=!1;var l=function(){if(!o){r.removeEventListener("icecandidate",s),r.removeEventListener("icegatheringstatechange",i),o=!0,n._rtcReady=!0,n._iceReady=!0;var l={originator:"local",type:e,sdp:r.localDescription.sdp};w.debug('emit "sdp"'),n.emit("sdp",l),t(l.sdp)}};r.addEventListener("icecandidate",s=function(e){var t=e.candidate;t?n.emit("icecandidate",{candidate:t,ready:l}):l()}),r.addEventListener("icegatheringstatechange",i=function(){"complete"===r.iceGatheringState&&l()})})})}},{key:"_createDialog",value:function(e,t,n){var r="UAS"===t?e.to_tag:e.from_tag,s="UAS"===t?e.from_tag:e.to_tag,i=e.call_id+r+s,o=this._earlyDialogs[i];if(n)return!!o||((o=new T(this,e,t,T.C.STATUS_EARLY)).error?(w.debug(o.error),this._failed("remote",e,_.causes.INTERNAL_ERROR),!1):(this._earlyDialogs[i]=o,!0));if(this._from_tag=e.from_tag,this._to_tag=e.to_tag,o)return o.update(e,t),this._dialog=o,delete this._earlyDialogs[i],!0;var l=new T(this,e,t);return l.error?(w.debug(l.error),this._failed("remote",e,_.causes.INTERNAL_ERROR),!1):(this._dialog=l,!0)}},{key:"_receiveReinvite",value:function(e){var t=this;w.debug("receiveReinvite()");var n=e.hasHeader("Content-Type")?e.getHeader("Content-Type").toLowerCase():void 0,r={request:e,callback:void 0,reject:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};s=!0;var n=t.status_code||403,r=t.reason_phrase||"",i=v.cloneArray(t.extraHeaders);if(this._status!==I.STATUS_CONFIRMED)return!1;if(n<300||n>=700)throw new TypeError("Invalid status_code: ".concat(n));e.reply(n,r,i)}.bind(this)},s=!1;if(this.emit("reinvite",r),!s){if(this._late_sdp=!1,!e.body)return this._late_sdp=!0,this._remoteHold&&(this._remoteHold=!1,this._onunhold("remote")),void(this._connectionPromiseQueue=this._connectionPromiseQueue.then(function(){return t._createLocalDescription("offer",t._rtcOfferConstraints)}).then(function(e){i.call(t,e)}).catch(function(){e.reply(500)}));if("application/sdp"!==n)return w.debug("invalid Content-Type"),void e.reply(415);this._processInDialogSdpOffer(e).then(function(e){t._status!==I.STATUS_TERMINATED&&i.call(t,e)}).catch(function(e){w.warn(e)})}function i(t){var n=this,s=["Contact: ".concat(this._contact)];this._handleSessionTimersInIncomingRequest(e,s),this._late_sdp&&(t=this._mangleOffer(t)),e.reply(200,null,s,t,function(){n._status=I.STATUS_WAITING_FOR_ACK,n._setInvite2xxTimer(e,t),n._setACKTimer()}),"function"==typeof r.callback&&r.callback()}}},{key:"_receiveUpdate",value:function(e){var t=this;w.debug("receiveUpdate()");var n=e.hasHeader("Content-Type")?e.getHeader("Content-Type").toLowerCase():void 0,r={request:e,callback:void 0,reject:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};s=!0;var n=t.status_code||403,r=t.reason_phrase||"",i=v.cloneArray(t.extraHeaders);if(this._status!==I.STATUS_CONFIRMED)return!1;if(n<300||n>=700)throw new TypeError("Invalid status_code: ".concat(n));e.reply(n,r,i)}.bind(this)},s=!1;if(this.emit("update",r),!s)if(e.body){if("application/sdp"!==n)return w.debug("invalid Content-Type"),void e.reply(415);this._processInDialogSdpOffer(e).then(function(e){t._status!==I.STATUS_TERMINATED&&i.call(t,e)}).catch(function(e){w.warn(e)})}else i.call(this,null);function i(t){var n=["Contact: ".concat(this._contact)];this._handleSessionTimersInIncomingRequest(e,n),e.reply(200,null,n,t),"function"==typeof r.callback&&r.callback()}}},{key:"_processInDialogSdpOffer",value:function(e){var t=this;w.debug("_processInDialogSdpOffer()");var n,r=e.parseSDP(),i=!1,o=s(r.media);try{for(o.s();!(n=o.n()).done;){var l=n.value;if(-1!==O.indexOf(l.type)){var u=l.direction||r.direction||"sendrecv";if("sendonly"!==u&&"inactive"!==u){i=!1;break}i=!0}}}catch(e){o.e(e)}finally{o.f()}var a={originator:"remote",type:"offer",sdp:e.body};w.debug('emit "sdp"'),this.emit("sdp",a);var c=new RTCSessionDescription({type:"offer",sdp:a.sdp});return this._connectionPromiseQueue=this._connectionPromiseQueue.then(function(){if(t._status===I.STATUS_TERMINATED)throw new Error("terminated");return t._connection.setRemoteDescription(c).catch(function(n){throw e.reply(488),w.warn('emit "peerconnection:setremotedescriptionfailed" [error:%o]',n),t.emit("peerconnection:setremotedescriptionfailed",n),n})}).then(function(){if(t._status===I.STATUS_TERMINATED)throw new Error("terminated");!0===t._remoteHold&&!1===i?(t._remoteHold=!1,t._onunhold("remote")):!1===t._remoteHold&&!0===i&&(t._remoteHold=!0,t._onhold("remote"))}).then(function(){if(t._status===I.STATUS_TERMINATED)throw new Error("terminated");return t._createLocalDescription("answer",t._rtcAnswerConstraints).catch(function(t){throw e.reply(500),w.warn('emit "peerconnection:createtelocaldescriptionfailed" [error:%o]',t),t})}).catch(function(e){w.warn("_processInDialogSdpOffer() failed [error: %o]",e)}),this._connectionPromiseQueue}},{key:"_receiveRefer",value:function(e){var t=this;if(w.debug("receiveRefer()"),!e.refer_to)return w.debug("no Refer-To header field present in REFER"),void e.reply(400);if(e.refer_to.uri.scheme!==_.SIP)return w.debug("Refer-To header field points to a non-SIP URI scheme"),void e.reply(416);e.reply(202);var r=new E(this,e.cseq);w.debug('emit "refer"'),this.emit("refer",{request:e,accept:function(s,i){(function(t){var s=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};if(t="function"==typeof t?t:null,this._status!==I.STATUS_WAITING_FOR_ACK&&this._status!==I.STATUS_CONFIRMED)return!1;var i=new n(this._ua);if(i.on("progress",function(e){var t=e.response;r.notify(t.status_code,t.reason_phrase)}),i.on("accepted",function(e){var t=e.response;r.notify(t.status_code,t.reason_phrase)}),i.on("_failed",function(e){var t=e.message,n=e.cause;t?r.notify(t.status_code,t.reason_phrase):r.notify(487,n)}),e.refer_to.uri.hasHeader("replaces")){var o=decodeURIComponent(e.refer_to.uri.getHeader("replaces"));s.extraHeaders=v.cloneArray(s.extraHeaders),s.extraHeaders.push("Replaces: ".concat(o))}i.connect(e.refer_to.uri.toAor(),s,t)}).call(t,s,i)},reject:function(){(function(){r.notify(603)}).call(t)}})}},{key:"_receiveNotify",value:function(e){switch(w.debug("receiveNotify()"),e.event||e.reply(400),e.event.event){case"refer":var t,n;if(e.event.params&&e.event.params.id)t=e.event.params.id,n=this._referSubscribers[t];else{if(1!==Object.keys(this._referSubscribers).length)return void e.reply(400,"Missing event id parameter");n=this._referSubscribers[Object.keys(this._referSubscribers)[0]]}if(!n)return void e.reply(481,"Subscription does not exist");n.receiveNotify(e),e.reply(200);break;default:e.reply(489)}}},{key:"_receiveReplaces",value:function(e){var t=this;w.debug("receiveReplaces()"),this.emit("replaces",{request:e,accept:function(r){(function(t){var r=this;if(this._status!==I.STATUS_WAITING_FOR_ACK&&this._status!==I.STATUS_CONFIRMED)return!1;var s=new n(this._ua);s.on("confirmed",function(){r.terminate()}),s.init_incoming(e,t)}).call(t,r)},reject:function(){(function(){w.debug("Replaced INVITE rejected by the user"),e.reply(486)}).call(t)}})}},{key:"_sendInitialRequest",value:function(e,t,n){var r=this,s=new C(this._ua,this._request,{onRequestTimeout:function(){r.onRequestTimeout()},onTransportError:function(){r.onTransportError()},onAuthenticated:function(e){r._request=e},onReceiveResponse:function(e){r._receiveInviteResponse(e)}});Promise.resolve().then(function(){return n||(e.audio||e.video?(r._localMediaStreamLocallyGenerated=!0,navigator.mediaDevices.getUserMedia(e).catch(function(e){if(r._status===I.STATUS_TERMINATED)throw new Error("terminated");throw r._failed("local",null,_.causes.USER_DENIED_MEDIA_ACCESS),w.warn('emit "getusermediafailed" [error:%o]',e),r.emit("getusermediafailed",e),e})):void 0)}).then(function(e){if(r._status===I.STATUS_TERMINATED)throw new Error("terminated");return r._localMediaStream=e,e&&e.getTracks().forEach(function(t){r._connection.addTrack(t,e)}),r._connecting(r._request),r._createLocalDescription("offer",t).catch(function(e){throw r._failed("local",null,_.causes.WEBRTC_ERROR),e})}).then(function(e){if(r._is_canceled||r._status===I.STATUS_TERMINATED)throw new Error("terminated");r._request.body=e,r._status=I.STATUS_INVITE_SENT,w.debug('emit "sending" [request:%o]',r._request),r.emit("sending",{request:r._request}),s.send()}).catch(function(e){r._status!==I.STATUS_TERMINATED&&w.warn(e)})}},{key:"_getDTMFRTPSender",value:function(){var e=this._connection.getSenders().find(function(e){return e.track&&"audio"===e.track.kind});if(e&&e.dtmf)return e.dtmf;w.warn("sendDTMF() | no local audio track to send DTMF with")}},{key:"_receiveInviteResponse",value:function(e){var t=this;if(w.debug("receiveInviteResponse()"),this._dialog&&e.status_code>=200&&e.status_code<=299){if(this._dialog.id.call_id===e.call_id&&this._dialog.id.local_tag===e.from_tag&&this._dialog.id.remote_tag===e.to_tag)return void this.sendRequest(_.ACK);var n=new T(this,e,"UAC");return void 0!==n.error?void w.debug(n.error):(this.sendRequest(_.ACK),void this.sendRequest(_.BYE))}if(this._is_canceled)e.status_code>=100&&e.status_code<200?this._request.cancel(this._cancel_reason):e.status_code>=200&&e.status_code<299&&this._acceptAndTerminate(e);else if(this._status===I.STATUS_INVITE_SENT||this._status===I.STATUS_1XX_RECEIVED)switch(!0){case/^100$/.test(e.status_code):this._status=I.STATUS_1XX_RECEIVED;break;case/^1[0-9]{2}$/.test(e.status_code):if(!e.to_tag){w.debug("1xx response received without to tag");break}if(e.hasHeader("contact")&&!this._createDialog(e,"UAC",!0))break;if(this._status=I.STATUS_1XX_RECEIVED,!e.body){this._progress("remote",e);break}var r={originator:"remote",type:"answer",sdp:e.body};w.debug('emit "sdp"'),this.emit("sdp",r);var s=new RTCSessionDescription({type:"answer",sdp:r.sdp});this._connectionPromiseQueue=this._connectionPromiseQueue.then(function(){return t._connection.setRemoteDescription(s)}).then(function(){return t._progress("remote",e)}).catch(function(e){w.warn('emit "peerconnection:setremotedescriptionfailed" [error:%o]',e),t.emit("peerconnection:setremotedescriptionfailed",e)});break;case/^2[0-9]{2}$/.test(e.status_code):if(this._status=I.STATUS_CONFIRMED,!e.body){this._acceptAndTerminate(e,400,_.causes.MISSING_SDP),this._failed("remote",e,_.causes.BAD_MEDIA_DESCRIPTION);break}if(!this._createDialog(e,"UAC"))break;var i={originator:"remote",type:"answer",sdp:e.body};w.debug('emit "sdp"'),this.emit("sdp",i);var o=new RTCSessionDescription({type:"answer",sdp:i.sdp});this._connectionPromiseQueue=this._connectionPromiseQueue.then(function(){if("stable"===t._connection.signalingState)return t._connection.createOffer(t._rtcOfferConstraints).then(function(e){return t._connection.setLocalDescription(e)}).catch(function(n){t._acceptAndTerminate(e,500,n.toString()),t._failed("local",e,_.causes.WEBRTC_ERROR)})}).then(function(){t._connection.setRemoteDescription(o).then(function(){t._handleSessionTimersInIncomingResponse(e),t._accepted("remote",e),t.sendRequest(_.ACK),t._confirmed("local",null)}).catch(function(n){t._acceptAndTerminate(e,488,"Not Acceptable Here"),t._failed("remote",e,_.causes.BAD_MEDIA_DESCRIPTION),w.warn('emit "peerconnection:setremotedescriptionfailed" [error:%o]',n),t.emit("peerconnection:setremotedescriptionfailed",n)})});break;default:var l=v.sipErrorCause(e.status_code);this._failed("remote",e,l)}}},{key:"_sendReinvite",value:function(){var e=this,t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};w.debug("sendReinvite()");var n=v.cloneArray(t.extraHeaders),r=v.cloneObject(t.eventHandlers),s=t.rtcOfferConstraints||this._rtcOfferConstraints||null,i=!1;function o(e){r.failed&&r.failed(e)}n.push("Contact: ".concat(this._contact)),n.push("Content-Type: application/sdp"),this._sessionTimers.running&&n.push("Session-Expires: ".concat(this._sessionTimers.currentExpires,";refresher=").concat(this._sessionTimers.refresher?"uac":"uas")),this._connectionPromiseQueue=this._connectionPromiseQueue.then(function(){return e._createLocalDescription("offer",s)}).then(function(t){var s={originator:"local",type:"offer",sdp:t=e._mangleOffer(t)};w.debug('emit "sdp"'),e.emit("sdp",s),e.sendRequest(_.INVITE,{extraHeaders:n,body:t,eventHandlers:{onSuccessResponse:function(t){(function(e){var t=this;if(this._status===I.STATUS_TERMINATED)return;if(this.sendRequest(_.ACK),i)return;if(this._handleSessionTimersInIncomingResponse(e),!e.body)return void o.call(this);if(!e.hasHeader("Content-Type")||"application/sdp"!==e.getHeader("Content-Type").toLowerCase())return void o.call(this);var n={originator:"remote",type:"answer",sdp:e.body};w.debug('emit "sdp"'),this.emit("sdp",n);var s=new RTCSessionDescription({type:"answer",sdp:n.sdp});this._connectionPromiseQueue=this._connectionPromiseQueue.then(function(){return t._connection.setRemoteDescription(s)}).then(function(){r.succeeded&&r.succeeded(e)}).catch(function(e){o.call(t),w.warn('emit "peerconnection:setremotedescriptionfailed" [error:%o]',e),t.emit("peerconnection:setremotedescriptionfailed",e)})}).call(e,t),i=!0},onErrorResponse:function(t){o.call(e,t)},onTransportError:function(){e.onTransportError()},onRequestTimeout:function(){e.onRequestTimeout()},onDialogError:function(){e.onDialogError()}}})}).catch(function(){o()})}},{key:"_sendUpdate",value:function(){var e=this,t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};w.debug("sendUpdate()");var n=v.cloneArray(t.extraHeaders),r=v.cloneObject(t.eventHandlers),s=t.rtcOfferConstraints||this._rtcOfferConstraints||null,i=t.sdpOffer||!1,o=!1;function l(e){var t=this;if(this._status!==I.STATUS_TERMINATED&&!o)if(this._handleSessionTimersInIncomingResponse(e),i){if(!e.body)return void u.call(this);if(!e.hasHeader("Content-Type")||"application/sdp"!==e.getHeader("Content-Type").toLowerCase())return void u.call(this);var n={originator:"remote",type:"answer",sdp:e.body};w.debug('emit "sdp"'),this.emit("sdp",n);var s=new RTCSessionDescription({type:"answer",sdp:n.sdp});this._connectionPromiseQueue=this._connectionPromiseQueue.then(function(){return t._connection.setRemoteDescription(s)}).then(function(){r.succeeded&&r.succeeded(e)}).catch(function(e){u.call(t),w.warn('emit "peerconnection:setremotedescriptionfailed" [error:%o]',e),t.emit("peerconnection:setremotedescriptionfailed",e)})}else r.succeeded&&r.succeeded(e)}function u(e){r.failed&&r.failed(e)}n.push("Contact: ".concat(this._contact)),this._sessionTimers.running&&n.push("Session-Expires: ".concat(this._sessionTimers.currentExpires,";refresher=").concat(this._sessionTimers.refresher?"uac":"uas")),i?(n.push("Content-Type: application/sdp"),this._connectionPromiseQueue=this._connectionPromiseQueue.then(function(){return e._createLocalDescription("offer",s)}).then(function(t){var r={originator:"local",type:"offer",sdp:t=e._mangleOffer(t)};w.debug('emit "sdp"'),e.emit("sdp",r),e.sendRequest(_.UPDATE,{extraHeaders:n,body:t,eventHandlers:{onSuccessResponse:function(t){l.call(e,t),o=!0},onErrorResponse:function(t){u.call(e,t)},onTransportError:function(){e.onTransportError()},onRequestTimeout:function(){e.onRequestTimeout()},onDialogError:function(){e.onDialogError()}}})}).catch(function(){u.call(e)})):this.sendRequest(_.UPDATE,{extraHeaders:n,eventHandlers:{onSuccessResponse:function(t){l.call(e,t)},onErrorResponse:function(t){u.call(e,t)},onTransportError:function(){e.onTransportError()},onRequestTimeout:function(){e.onRequestTimeout()},onDialogError:function(){e.onDialogError()}}})}},{key:"_acceptAndTerminate",value:function(e,t,n){w.debug("acceptAndTerminate()");var r=[];t&&(n=n||_.REASON_PHRASE[t]||"",r.push("Reason: SIP ;cause=".concat(t,'; text="').concat(n,'"'))),(this._dialog||this._createDialog(e,"UAC"))&&(this.sendRequest(_.ACK),this.sendRequest(_.BYE,{extraHeaders:r})),this._status=I.STATUS_TERMINATED}},{key:"_mangleOffer",value:function(e){if(!this._localHold&&!this._remoteHold)return e;if(e=d.parse(e),this._localHold&&!this._remoteHold){w.debug("mangleOffer() | me on hold, mangling offer");var t,n=s(e.media);try{for(n.s();!(t=n.n()).done;){var r=t.value;-1!==O.indexOf(r.type)&&(r.direction?"sendrecv"===r.direction?r.direction="sendonly":"recvonly"===r.direction&&(r.direction="inactive"):r.direction="sendonly")}}catch(e){n.e(e)}finally{n.f()}}else if(this._localHold&&this._remoteHold){w.debug("mangleOffer() | both on hold, mangling offer");var i,o=s(e.media);try{for(o.s();!(i=o.n()).done;){var l=i.value;-1!==O.indexOf(l.type)&&(l.direction="inactive")}}catch(e){o.e(e)}finally{o.f()}}else if(this._remoteHold){w.debug("mangleOffer() | remote on hold, mangling offer");var u,a=s(e.media);try{for(a.s();!(u=a.n()).done;){var c=u.value;-1!==O.indexOf(c.type)&&(c.direction?"sendrecv"===c.direction?c.direction="recvonly":"recvonly"===c.direction&&(c.direction="inactive"):c.direction="recvonly")}}catch(e){a.e(e)}finally{a.f()}}return d.write(e)}},{key:"_setLocalMediaStatus",value:function(){var e=!0,t=!0;(this._localHold||this._remoteHold)&&(e=!1,t=!1),this._audioMuted&&(e=!1),this._videoMuted&&(t=!1),this._toggleMuteAudio(!e),this._toggleMuteVideo(!t)}},{key:"_handleSessionTimersInIncomingRequest",value:function(e,t){var n;this._sessionTimers.enabled&&(e.session_expires&&e.session_expires>=_.MIN_SESSION_EXPIRES?(this._sessionTimers.currentExpires=e.session_expires,n=e.session_expires_refresher||"uas"):(this._sessionTimers.currentExpires=this._sessionTimers.defaultExpires,n="uas"),t.push("Session-Expires: ".concat(this._sessionTimers.currentExpires,";refresher=").concat(n)),this._sessionTimers.refresher="uas"===n,this._runSessionTimer())}},{key:"_handleSessionTimersInIncomingResponse",value:function(e){var t;this._sessionTimers.enabled&&(e.session_expires&&e.session_expires>=_.MIN_SESSION_EXPIRES?(this._sessionTimers.currentExpires=e.session_expires,t=e.session_expires_refresher||"uac"):(this._sessionTimers.currentExpires=this._sessionTimers.defaultExpires,t="uac"),this._sessionTimers.refresher="uac"===t,this._runSessionTimer())}},{key:"_runSessionTimer",value:function(){var e=this,t=this._sessionTimers.currentExpires;this._sessionTimers.running=!0,clearTimeout(this._sessionTimers.timer),this._sessionTimers.refresher?this._sessionTimers.timer=setTimeout(function(){e._status!==I.STATUS_TERMINATED&&e._isReadyToReOffer()&&(w.debug("runSessionTimer() | sending session refresh request"),e._sessionTimers.refreshMethod===_.UPDATE?e._sendUpdate():e._sendReinvite())},500*t):this._sessionTimers.timer=setTimeout(function(){e._status!==I.STATUS_TERMINATED&&(w.warn("runSessionTimer() | timer expired, terminating the session"),e.terminate({cause:_.causes.REQUEST_TIMEOUT,status_code:408,reason_phrase:"Session Timer Expired"}))},1100*t)}},{key:"_toggleMuteAudio",value:function(e){var t,n=s(this._connection.getSenders().filter(function(e){return e.track&&"audio"===e.track.kind}));try{for(n.s();!(t=n.n()).done;){t.value.track.enabled=!e}}catch(e){n.e(e)}finally{n.f()}}},{key:"_toggleMuteVideo",value:function(e){var t,n=s(this._connection.getSenders().filter(function(e){return e.track&&"video"===e.track.kind}));try{for(n.s();!(t=n.n()).done;){t.value.track.enabled=!e}}catch(e){n.e(e)}finally{n.f()}}},{key:"_newRTCSession",value:function(e,t){w.debug("newRTCSession()"),this._ua.newRTCSession(this,{originator:e,session:this,request:t})}},{key:"_connecting",value:function(e){w.debug("session connecting"),w.debug('emit "connecting"'),this.emit("connecting",{request:e})}},{key:"_progress",value:function(e,t){w.debug("session progress"),w.debug('emit "progress"'),this.emit("progress",{originator:e,response:t||null})}},{key:"_accepted",value:function(e,t){w.debug("session accepted"),this._start_time=new Date,w.debug('emit "accepted"'),this.emit("accepted",{originator:e,response:t||null})}},{key:"_confirmed",value:function(e,t){w.debug("session confirmed"),this._is_confirmed=!0,w.debug('emit "confirmed"'),this.emit("confirmed",{originator:e,ack:t||null})}},{key:"_ended",value:function(e,t,n){w.debug("session ended"),this._end_time=new Date,this._close(),w.debug('emit "ended"'),this.emit("ended",{originator:e,message:t||null,cause:n})}},{key:"_failed",value:function(e,t,n){w.debug("session failed"),w.debug('emit "_failed"'),this.emit("_failed",{originator:e,message:t||null,cause:n}),this._close(),w.debug('emit "failed"'),this.emit("failed",{originator:e,message:t||null,cause:n})}},{key:"_onhold",value:function(e){w.debug("session onhold"),this._setLocalMediaStatus(),w.debug('emit "hold"'),this.emit("hold",{originator:e})}},{key:"_onunhold",value:function(e){w.debug("session onunhold"),this._setLocalMediaStatus(),w.debug('emit "unhold"'),this.emit("unhold",{originator:e})}},{key:"_onmute",value:function(e){var t=e.audio,n=e.video;w.debug("session onmute"),this._setLocalMediaStatus(),w.debug('emit "muted"'),this.emit("muted",{audio:t,video:n})}},{key:"_onunmute",value:function(e){var t=e.audio,n=e.video;w.debug("session onunmute"),this._setLocalMediaStatus(),w.debug('emit "unmuted"'),this.emit("unmuted",{audio:t,video:n})}},{key:"C",get:function(){return I}},{key:"causes",get:function(){return _.causes}},{key:"id",get:function(){return this._id}},{key:"connection",get:function(){return this._connection}},{key:"contact",get:function(){return this._contact}},{key:"direction",get:function(){return this._direction}},{key:"local_identity",get:function(){return this._local_identity}},{key:"remote_identity",get:function(){return this._remote_identity}},{key:"start_time",get:function(){return this._start_time}},{key:"end_time",get:function(){return this._end_time}},{key:"data",get:function(){return this._data},set:function(e){this._data=e}},{key:"status",get:function(){return this._status}}]),n}()},{"./Constants":2,"./Dialog":3,"./Exceptions":6,"./Logger":9,"./RTCSession/DTMF":15,"./RTCSession/Info":16,"./RTCSession/ReferNotifier":17,"./RTCSession/ReferSubscriber":18,"./RequestSender":20,"./SIPMessage":21,"./Timers":23,"./Transactions":24,"./URI":27,"./Utils":28,events:31,"sdp-transform":37}],15:[function(e,t,n){"use strict";function r(e){return(r="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function s(e,t){for(var n=0;n1&&void 0!==arguments[1]?arguments[1]:{};if(void 0===e)throw new TypeError("Not enough arguments");if(this._direction="outgoing",this._session.status!==this._session.C.STATUS_CONFIRMED&&this._session.status!==this._session.C.STATUS_WAITING_FOR_ACK)throw new h.InvalidStateError(this._session.status);var r=d.cloneArray(n.extraHeaders);if(this.eventHandlers=d.cloneObject(n.eventHandlers),"string"==typeof e)e=e.toUpperCase();else{if("number"!=typeof e)throw new TypeError("Invalid tone: ".concat(e));e=e.toString()}if(!e.match(/^[0-9A-DR#*]$/))throw new TypeError("Invalid tone: ".concat(e));this._tone=e,this._duration=n.duration,r.push("Content-Type: application/dtmf-relay");var s="Signal=".concat(this._tone,"\r\n");s+="Duration=".concat(this._duration),this._session.newDTMF({originator:"local",dtmf:this,request:this._request}),this._session.sendRequest(c.INFO,{extraHeaders:r,eventHandlers:{onSuccessResponse:function(e){t.emit("succeeded",{originator:"remote",response:e})},onErrorResponse:function(e){t.eventHandlers.onFailed&&t.eventHandlers.onFailed(),t.emit("failed",{originator:"remote",response:e})},onRequestTimeout:function(){t._session.onRequestTimeout()},onTransportError:function(){t._session.onTransportError()},onDialogError:function(){t._session.onDialogError()}},body:s})}},{key:"init_incoming",value:function(e){var t=/^(Signal\s*?=\s*?)([0-9A-D#*]{1})(\s)?.*/,n=/^(Duration\s?=\s?)([0-9]{1,4})(\s)?.*/;if(this._direction="incoming",this._request=e,e.reply(200),e.body){var r=e.body.split("\n");r.length>=1&&t.test(r[0])&&(this._tone=r[0].replace(t,"$2")),r.length>=2&&n.test(r[1])&&(this._duration=parseInt(r[1].replace(n,"$2"),10))}this._duration||(this._duration=_.DEFAULT_DURATION),this._tone?this._session.newDTMF({originator:"remote",dtmf:this,request:e}):f.debug("invalid INFO DTMF received, discarded")}},{key:"tone",get:function(){return this._tone}},{key:"duration",get:function(){return this._duration}}])&&s(t.prototype,n),r&&s(t,r),a}(),t.exports.C=_},{"../Constants":2,"../Exceptions":6,"../Logger":9,"../Utils":28,events:31}],16:[function(e,t,n){"use strict";function r(e){return(r="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function s(e,t){for(var n=0;n2&&void 0!==arguments[2]?arguments[2]:{};if(this._direction="outgoing",void 0===e)throw new TypeError("Not enough arguments");if(this._session.status!==this._session.C.STATUS_CONFIRMED&&this._session.status!==this._session.C.STATUS_WAITING_FOR_ACK)throw new c.InvalidStateError(this._session.status);this._contentType=e,this._body=t;var s=h.cloneArray(r.extraHeaders);s.push("Content-Type: ".concat(e)),this._session.newInfo({originator:"local",info:this,request:this.request}),this._session.sendRequest(a.INFO,{extraHeaders:s,eventHandlers:{onSuccessResponse:function(e){n.emit("succeeded",{originator:"remote",response:e})},onErrorResponse:function(e){n.emit("failed",{originator:"remote",response:e})},onTransportError:function(){n._session.onTransportError()},onRequestTimeout:function(){n._session.onRequestTimeout()},onDialogError:function(){n._session.onDialogError()}},body:t})}},{key:"init_incoming",value:function(e){this._direction="incoming",this.request=e,e.reply(200),this._contentType=e.hasHeader("Content-Type")?e.getHeader("Content-Type").toLowerCase():void 0,this._body=e.body,this._session.newInfo({originator:"remote",info:this,request:e})}},{key:"contentType",get:function(){return this._contentType}},{key:"body",get:function(){return this._body}}])&&s(t.prototype,n),r&&s(t,r),d}()},{"../Constants":2,"../Exceptions":6,"../Utils":28,events:31}],17:[function(e,t,n){"use strict";function r(e,t){for(var n=0;n=200?"terminated;reason=noresource":"active;expires=".concat(this._expires),this._session.sendRequest(i.NOTIFY,{extraHeaders:["Event: ".concat(l.event_type,";id=").concat(this._id),"Subscription-State: ".concat(n),"Content-Type: ".concat(l.body_type)],body:"SIP/2.0 ".concat(e," ").concat(t),eventHandlers:{onErrorResponse:function(){this._active=!1}}}))}}])&&r(t.prototype,n),s&&r(t,s),e}()},{"../Constants":2,"../Logger":9}],18:[function(e,t,n){"use strict";function r(e){return(r="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function s(e,t){for(var n=0;n1&&void 0!==arguments[1]?arguments[1]:{};f.debug("sendRefer()");var r=d.cloneArray(n.extraHeaders),s=d.cloneObject(n.eventHandlers);for(var i in s)Object.prototype.hasOwnProperty.call(s,i)&&this.on(i,s[i]);var o=null;n.replaces&&(o=n.replaces._request.call_id,o+=";to-tag=".concat(n.replaces._to_tag),o+=";from-tag=".concat(n.replaces._from_tag),o=encodeURIComponent(o));var l="Refer-To: <".concat(e).concat(o?"?Replaces=".concat(o):"",">");if(r.push(l),!r.some(function(e){return e.toLowerCase().startsWith("referred-by:")})){var u="Referred-By: <".concat(this._session._ua._configuration.uri._scheme,":").concat(this._session._ua._configuration.uri._user,"@").concat(this._session._ua._configuration.uri._host,">");r.push(u)}r.push("Contact: ".concat(this._session.contact));var a=this._session.sendRequest(c.REFER,{extraHeaders:r,eventHandlers:{onSuccessResponse:function(e){t._requestSucceeded(e)},onErrorResponse:function(e){t._requestFailed(e,c.causes.REJECTED)},onTransportError:function(){t._requestFailed(null,c.causes.CONNECTION_ERROR)},onRequestTimeout:function(){t._requestFailed(null,c.causes.REQUEST_TIMEOUT)},onDialogError:function(){t._requestFailed(null,c.causes.DIALOG_ERROR)}}});this._id=a.cseq}},{key:"receiveNotify",value:function(e){if(f.debug("receiveNotify()"),e.body){var t=h.parse(e.body.trim().split("\r\n",1)[0],"Status_Line");if(-1!==t)switch(!0){case/^100$/.test(t.status_code):this.emit("trying",{request:e,status_line:t});break;case/^1[0-9]{2}$/.test(t.status_code):this.emit("progress",{request:e,status_line:t});break;case/^2[0-9]{2}$/.test(t.status_code):this.emit("accepted",{request:e,status_line:t});break;default:this.emit("failed",{request:e,status_line:t})}else f.debug('receiveNotify() | error parsing NOTIFY body: "'.concat(e.body,'"'))}}},{key:"_requestSucceeded",value:function(e){f.debug("REFER succeeded"),f.debug('emit "requestSucceeded"'),this.emit("requestSucceeded",{response:e})}},{key:"_requestFailed",value:function(e,t){f.debug("REFER failed"),f.debug('emit "requestFailed"'),this.emit("requestFailed",{response:e||null,cause:t})}},{key:"id",get:function(){return this._id}}])&&s(t.prototype,n),r&&s(t,r),a}()},{"../Constants":2,"../Grammar":7,"../Logger":9,"../Utils":28,events:31}],19:[function(e,t,n){"use strict";function r(e,t){for(var n=0;n"'),this._contact+=";reg-id=".concat(this._reg_id),this._contact+=";+sip.instance=".concat(this._sipInstance)}var t,n,s;return t=e,(n=[{key:"setExtraHeaders",value:function(e){Array.isArray(e)||(e=[]),this._extraHeaders=e.slice()}},{key:"setExtraContactParams",value:function(e){for(var t in e instanceof Object||(e={}),this._extraContactParams="",e)if(Object.prototype.hasOwnProperty.call(e,t)){var n=e[t];this._extraContactParams+=";".concat(t),n&&(this._extraContactParams+="=".concat(n))}}},{key:"register",value:function(){var e=this;if(this._registering)a.debug("Register request in progress...");else{var t=this._extraHeaders.slice();t.push("Contact: ".concat(this._contact,";expires=").concat(this._expires).concat(this._extraContactParams)),t.push("Expires: ".concat(this._expires));var n=new l.OutgoingRequest(o.REGISTER,this._registrar,this._ua,{to_uri:this._to_uri,call_id:this._call_id,cseq:this._cseq+=1},t),r=new u(this._ua,n,{onRequestTimeout:function(){e._registrationFailure(null,o.causes.REQUEST_TIMEOUT)},onTransportError:function(){e._registrationFailure(null,o.causes.CONNECTION_ERROR)},onAuthenticated:function(){e._cseq+=1},onReceiveResponse:function(t){if(t.cseq===e._cseq)switch(null!==e._registrationTimer&&(clearTimeout(e._registrationTimer),e._registrationTimer=null),!0){case/^1[0-9]{2}$/.test(t.status_code):break;case/^2[0-9]{2}$/.test(t.status_code):if(e._registering=!1,!t.hasHeader("Contact")){a.debug("no Contact header in response to REGISTER, response ignored");break}var n=t.headers.Contact.reduce(function(e,t){return e.concat(t.parsed)},[]),r=n.find(function(t){return e._sipInstance===t.getParam("+sip.instance")&&e._reg_id===parseInt(t.getParam("reg-id"))});if(r||(r=n.find(function(t){return t.uri.user===e._ua.contact.uri.user})),!r){a.debug("no Contact header pointing to us, response ignored");break}var s=r.getParam("expires");!s&&t.hasHeader("expires")&&(s=t.getHeader("expires")),s||(s=e._expires),(s=Number(s))<10&&(s=10);var l=s>64?1e3*s/2+Math.floor(1e3*(s/2-32)*Math.random()):1e3*s-5e3;e._registrationTimer=setTimeout(function(){e._registrationTimer=null,0===e._ua.listeners("registrationExpiring").length?e.register():e._ua.emit("registrationExpiring")},l),r.hasParam("temp-gruu")&&(e._ua.contact.temp_gruu=r.getParam("temp-gruu").replace(/"/g,"")),r.hasParam("pub-gruu")&&(e._ua.contact.pub_gruu=r.getParam("pub-gruu").replace(/"/g,"")),e._registered||(e._registered=!0,e._ua.registered({response:t}));break;case/^423$/.test(t.status_code):t.hasHeader("min-expires")?(e._expires=Number(t.getHeader("min-expires")),e._expires<10&&(e._expires=10),e.register()):(a.debug("423 response received for REGISTER without Min-Expires"),e._registrationFailure(t,o.causes.SIP_FAILURE_CODE));break;default:var u=i.sipErrorCause(t.status_code);e._registrationFailure(t,u)}}});this._registering=!0,r.send()}}},{key:"unregister",value:function(){var e=this,t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};if(this._registered){this._registered=!1,null!==this._registrationTimer&&(clearTimeout(this._registrationTimer),this._registrationTimer=null);var n=this._extraHeaders.slice();t.all?n.push("Contact: *".concat(this._extraContactParams)):n.push("Contact: ".concat(this._contact,";expires=0").concat(this._extraContactParams)),n.push("Expires: 0");var r=new l.OutgoingRequest(o.REGISTER,this._registrar,this._ua,{to_uri:this._to_uri,call_id:this._call_id,cseq:this._cseq+=1},n);new u(this._ua,r,{onRequestTimeout:function(){e._unregistered(null,o.causes.REQUEST_TIMEOUT)},onTransportError:function(){e._unregistered(null,o.causes.CONNECTION_ERROR)},onAuthenticated:function(){e._cseq+=1},onReceiveResponse:function(t){switch(!0){case/^1[0-9]{2}$/.test(t.status_code):break;case/^2[0-9]{2}$/.test(t.status_code):e._unregistered(t);break;default:var n=i.sipErrorCause(t.status_code);e._unregistered(t,n)}}}).send()}else a.debug("already unregistered")}},{key:"close",value:function(){this._registered&&this.unregister()}},{key:"onTransportClosed",value:function(){this._registering=!1,null!==this._registrationTimer&&(clearTimeout(this._registrationTimer),this._registrationTimer=null),this._registered&&(this._registered=!1,this._ua.unregistered({}))}},{key:"_registrationFailure",value:function(e,t){this._registering=!1,this._ua.registrationFailed({response:e||null,cause:t}),this._registered&&(this._registered=!1,this._ua.unregistered({response:e||null,cause:t}))}},{key:"_unregistered",value:function(e,t){this._registering=!1,this._registered=!1,this._ua.unregistered({response:e||null,cause:t||null})}},{key:"registered",get:function(){return this._registered}}])&&r(t.prototype,n),s&&r(t,s),e}()},{"./Constants":2,"./Logger":9,"./RequestSender":20,"./SIPMessage":21,"./Utils":28}],20:[function(e,t,n){"use strict";function r(e,t){for(var n=0;n=e.length?{done:!0}:{done:!1,value:e[r++]}},e:function(e){throw e},f:s}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var i,o=!0,l=!1;return{s:function(){n=e[Symbol.iterator]()},n:function(){var e=n.next();return o=e.done,e},e:function(e){l=!0,i=e},f:function(){try{o||null==n.return||n.return()}finally{if(l)throw i}}}}function a(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n")),this.setHeader("via",""),this.setHeader("max-forwards",p.MAX_FORWARDS);var l=s.to_uri||n,u=s.to_tag?{tag:s.to_tag}:null,a=void 0!==s.to_display_name?s.to_display_name:null;this.to=new v(l,a,u),this.setHeader("to",this.to.toString());var h,d=s.from_uri||r.configuration.uri,f={tag:s.from_tag||m.newTag()};h=void 0!==s.from_display_name?s.from_display_name:r.configuration.display_name?r.configuration.display_name:null,this.from=new v(d,h,f),this.setHeader("from",this.from.toString());var _=s.call_id||r.configuration.jssip_id+m.createRandomToken(15);this.call_id=_,this.setHeader("call-id",_);var g=s.cseq||Math.floor(1e4*Math.random());this.cseq=g,this.setHeader("cseq","".concat(g," ").concat(t))}return d(e,[{key:"setHeader",value:function(e,t){for(var n=new RegExp("^\\s*".concat(e,"\\s*:"),"i"),r=0;r1&&void 0!==arguments[1]?arguments[1]:0;if(e=m.headerize(e),this.headers[e]){if(!(t>=this.headers[e].length)){var n=this.headers[e][t],r=n.raw;if(n.parsed)return n.parsed;var s=g.parse(r,e.replace(/-/g,"_"));return-1===s?(this.headers[e].splice(t,1),void y.debug('error parsing "'.concat(e,'" header field with value "').concat(r,'"'))):(n.parsed=s,s)}y.debug('not so many "'.concat(e,'" headers present'))}else y.debug('header "'.concat(e,'" not present'))}},{key:"s",value:function(e,t){return this.parseHeader(e,t)}},{key:"setHeader",value:function(e,t){var n={raw:t};this.headers[m.headerize(e)]=[n]}},{key:"parseSDP",value:function(e){return!e&&this.sdp?this.sdp:(this.sdp=f.parse(this.body||""),this.sdp)}},{key:"toString",value:function(){return this.data}}]),e}(),S=function(e){s(n,b);var t=o(n);function n(e){var r;return c(this,n),(r=t.call(this)).ua=e,r.headers={},r.ruri=null,r.transport=null,r.server_transaction=null,r}return d(n,[{key:"reply",value:function(e,t,n,r,s,i){var o=[],l=this.getHeader("To");if(t=t||null,!(e=e||null)||e<100||e>699)throw new TypeError("Invalid status_code: ".concat(e));if(t&&"string"!=typeof t&&!(t instanceof String))throw new TypeError("Invalid reason_phrase: ".concat(t));t=t||p.REASON_PHRASE[e]||"",n=m.cloneArray(n),this.ua.configuration.extra_headers&&(n=n.concat(this.ua.configuration.extra_headers));var a="SIP/2.0 ".concat(e," ").concat(t,"\r\n");if(this.method===p.INVITE&&e>100&&e<=200){var c,h=u(this.getHeaders("record-route"));try{for(h.s();!(c=h.n()).done;){var d=c.value;a+="Record-Route: ".concat(d,"\r\n")}}catch(e){h.e(e)}finally{h.f()}}var f,_=u(this.getHeaders("via"));try{for(_.s();!(f=_.n()).done;){var v=f.value;a+="Via: ".concat(v,"\r\n")}}catch(e){_.e(e)}finally{_.f()}!this.to_tag&&e>100?l+=";tag=".concat(m.newTag()):this.to_tag&&!this.s("to").hasParam("tag")&&(l+=";tag=".concat(this.to_tag)),a+="To: ".concat(l,"\r\n"),a+="From: ".concat(this.getHeader("From"),"\r\n"),a+="Call-ID: ".concat(this.call_id,"\r\n"),a+="CSeq: ".concat(this.cseq," ").concat(this.method,"\r\n");var g,y=u(n);try{for(y.s();!(g=y.n()).done;){var T=g.value;a+="".concat(T.trim(),"\r\n")}}catch(e){y.e(e)}finally{y.f()}switch(this.method){case p.INVITE:this.ua.configuration.session_timers&&o.push("timer"),(this.ua.contact.pub_gruu||this.ua.contact.temp_gruu)&&o.push("gruu"),o.push("ice","replaces");break;case p.UPDATE:this.ua.configuration.session_timers&&o.push("timer"),r&&o.push("ice"),o.push("replaces")}if(o.push("outbound"),this.method===p.OPTIONS?(a+="Allow: ".concat(p.ALLOWED_METHODS,"\r\n"),a+="Accept: ".concat(p.ACCEPTED_BODY_TYPES,"\r\n")):405===e?a+="Allow: ".concat(p.ALLOWED_METHODS,"\r\n"):415===e&&(a+="Accept: ".concat(p.ACCEPTED_BODY_TYPES,"\r\n")),a+="Supported: ".concat(o,"\r\n"),r){var C=m.str_utf8_length(r);a+="Content-Type: application/sdp\r\n",a+="Content-Length: ".concat(C,"\r\n\r\n"),a+=r}else a+="Content-Length: ".concat(0,"\r\n\r\n");this.server_transaction.receiveResponse(e,a,s,i)}},{key:"reply_sl",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:null,t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null,n=this.getHeaders("via");if(!e||e<100||e>699)throw new TypeError("Invalid status_code: ".concat(e));if(t&&"string"!=typeof t&&!(t instanceof String))throw new TypeError("Invalid reason_phrase: ".concat(t));t=t||p.REASON_PHRASE[e]||"";var r,s="SIP/2.0 ".concat(e," ").concat(t,"\r\n"),i=u(n);try{for(i.s();!(r=i.n()).done;){var o=r.value;s+="Via: ".concat(o,"\r\n")}}catch(e){i.e(e)}finally{i.f()}var l=this.getHeader("To");if(!this.to_tag&&e>100?l+=";tag=".concat(m.newTag()):this.to_tag&&!this.s("to").hasParam("tag")&&(l+=";tag=".concat(this.to_tag)),s+="To: ".concat(l,"\r\n"),s+="From: ".concat(this.getHeader("From"),"\r\n"),s+="Call-ID: ".concat(this.call_id,"\r\n"),s+="CSeq: ".concat(this.cseq," ").concat(this.method,"\r\n"),this.ua.configuration.extra_headers){var a,c=u(this.ua.configuration.extra_headers);try{for(c.s();!(a=c.n()).done;){var h=a.value;s+="".concat(h.trim(),"\r\n")}}catch(e){c.e(e)}finally{c.f()}}s+="Content-Length: ".concat(0,"\r\n\r\n"),this.transport.send(s)}}]),n}(),E=function(e){s(n,b);var t=o(n);function n(){var e;return c(this,n),(e=t.call(this)).headers={},e.status_code=null,e.reason_phrase=null,e}return n}();t.exports={OutgoingRequest:T,InitialOutgoingInviteRequest:C,IncomingRequest:S,IncomingResponse:E}},{"./Constants":2,"./Grammar":7,"./Logger":9,"./NameAddrHeader":11,"./Utils":28,"sdp-transform":37}],22:[function(e,t,n){"use strict";var r=e("./Logger"),s=e("./Utils"),i=e("./Grammar"),o=new r("Socket");n.isSocket=function(e){if(Array.isArray(e))return!1;if(void 0===e)return o.warn("undefined JsSIP.Socket instance"),!1;try{if(!s.isString(e.url))throw o.warn("missing or invalid JsSIP.Socket url property"),new Error("Missing or invalid JsSIP.Socket url property");if(!s.isString(e.via_transport))throw o.warn("missing or invalid JsSIP.Socket via_transport property"),new Error("Missing or invalid JsSIP.Socket via_transport property");if(-1===i.parse(e.sip_uri,"SIP_URI"))throw o.warn("missing or invalid JsSIP.Socket sip_uri property"),new Error("missing or invalid JsSIP.Socket sip_uri property")}catch(e){return!1}try{["connect","disconnect","send"].forEach(function(t){if(!s.isFunction(e[t]))throw o.warn("missing or invalid JsSIP.Socket method: ".concat(t)),new Error("Missing or invalid JsSIP.Socket method: ".concat(t))})}catch(e){return!1}return!0}},{"./Grammar":7,"./Logger":9,"./Utils":28}],23:[function(e,t,n){"use strict";var r=500;t.exports={T1:r,T2:4e3,T4:5e3,TIMER_B:32e3,TIMER_D:0,TIMER_F:32e3,TIMER_H:32e3,TIMER_I:0,TIMER_J:0,TIMER_K:0,TIMER_L:32e3,TIMER_M:32e3,PROVISIONAL_RESPONSE_INTERVAL:6e4}},{}],24:[function(e,t,n){"use strict";function r(e){return(r="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function s(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function i(e,t){for(var n=0;n=100&&n<=199)switch(this.state){case b.STATUS_CALLING:this.stateChanged(b.STATUS_PROCEEDING),this.eventHandlers.onReceiveResponse(e);break;case b.STATUS_PROCEEDING:this.eventHandlers.onReceiveResponse(e)}else if(n>=200&&n<=299)switch(this.state){case b.STATUS_CALLING:case b.STATUS_PROCEEDING:this.stateChanged(b.STATUS_ACCEPTED),this.M=setTimeout(function(){t.timer_M()},m.TIMER_M),this.eventHandlers.onReceiveResponse(e);break;case b.STATUS_ACCEPTED:this.eventHandlers.onReceiveResponse(e)}else if(n>=300&&n<=699)switch(this.state){case b.STATUS_CALLING:case b.STATUS_PROCEEDING:this.stateChanged(b.STATUS_COMPLETED),this.sendACK(e),this.eventHandlers.onReceiveResponse(e);break;case b.STATUS_COMPLETED:this.sendACK(e)}}},{key:"C",get:function(){return b}}]),n}(),A=function(e){l(n,d);var t=a(n);function n(e,r,i,o){var l;s(this,n),(l=t.call(this)).id="z9hG4bK".concat(Math.floor(1e7*Math.random())),l.transport=r,l.request=i,l.eventHandlers=o;var u="SIP/2.0/".concat(r.via_transport);return u+=" ".concat(e.configuration.via_host,";branch=").concat(l.id),l.request.setHeader("via",u),l}return o(n,[{key:"send",value:function(){this.transport.send(this.request)||this.onTransportError()}},{key:"onTransportError",value:function(){y.debug("transport error occurred for transaction ".concat(this.id)),this.eventHandlers.onTransportError()}},{key:"C",get:function(){return b}}]),n}(),R=function(e){l(n,d);var t=a(n);function n(e,r,i){var o;return s(this,n),(o=t.call(this)).type=b.NON_INVITE_SERVER,o.id=i.via_branch,o.ua=e,o.transport=r,o.request=i,o.last_response="",i.server_transaction=c(o),o.state=b.STATUS_TRYING,e.newTransaction(c(o)),o}return o(n,[{key:"stateChanged",value:function(e){this.state=e,this.emit("stateChanged")}},{key:"timer_J",value:function(){T.debug("Timer J expired for transaction ".concat(this.id)),this.stateChanged(b.STATUS_TERMINATED),this.ua.destroyTransaction(this)}},{key:"onTransportError",value:function(){this.transportError||(this.transportError=!0,T.debug("transport error occurred, deleting transaction ".concat(this.id)),clearTimeout(this.J),this.stateChanged(b.STATUS_TERMINATED),this.ua.destroyTransaction(this))}},{key:"receiveResponse",value:function(e,t,n,r){var s=this;if(100===e)switch(this.state){case b.STATUS_TRYING:this.stateChanged(b.STATUS_PROCEEDING),this.transport.send(t)||this.onTransportError();break;case b.STATUS_PROCEEDING:this.last_response=t,this.transport.send(t)?n&&n():(this.onTransportError(),r&&r())}else if(e>=200&&e<=699)switch(this.state){case b.STATUS_TRYING:case b.STATUS_PROCEEDING:this.stateChanged(b.STATUS_COMPLETED),this.last_response=t,this.J=setTimeout(function(){s.timer_J()},m.TIMER_J),this.transport.send(t)?n&&n():(this.onTransportError(),r&&r());break;case b.STATUS_COMPLETED:}}},{key:"C",get:function(){return b}}]),n}(),w=function(e){l(n,d);var t=a(n);function n(e,r,i){var o;return s(this,n),(o=t.call(this)).type=b.INVITE_SERVER,o.id=i.via_branch,o.ua=e,o.transport=r,o.request=i,o.last_response="",i.server_transaction=c(o),o.state=b.STATUS_PROCEEDING,e.newTransaction(c(o)),o.resendProvisionalTimer=null,i.reply(100),o}return o(n,[{key:"stateChanged",value:function(e){this.state=e,this.emit("stateChanged")}},{key:"timer_H",value:function(){C.debug("Timer H expired for transaction ".concat(this.id)),this.state===b.STATUS_COMPLETED&&C.debug("ACK not received, dialog will be terminated"),this.stateChanged(b.STATUS_TERMINATED),this.ua.destroyTransaction(this)}},{key:"timer_I",value:function(){this.stateChanged(b.STATUS_TERMINATED),this.ua.destroyTransaction(this)}},{key:"timer_L",value:function(){C.debug("Timer L expired for transaction ".concat(this.id)),this.state===b.STATUS_ACCEPTED&&(this.stateChanged(b.STATUS_TERMINATED),this.ua.destroyTransaction(this))}},{key:"onTransportError",value:function(){this.transportError||(this.transportError=!0,C.debug("transport error occurred, deleting transaction ".concat(this.id)),null!==this.resendProvisionalTimer&&(clearInterval(this.resendProvisionalTimer),this.resendProvisionalTimer=null),clearTimeout(this.L),clearTimeout(this.H),clearTimeout(this.I),this.stateChanged(b.STATUS_TERMINATED),this.ua.destroyTransaction(this))}},{key:"resend_provisional",value:function(){this.transport.send(this.last_response)||this.onTransportError()}},{key:"receiveResponse",value:function(e,t,n,r){var s=this;if(e>=100&&e<=199)switch(this.state){case b.STATUS_PROCEEDING:this.transport.send(t)||this.onTransportError(),this.last_response=t}if(e>100&&e<=199&&this.state===b.STATUS_PROCEEDING)null===this.resendProvisionalTimer&&(this.resendProvisionalTimer=setInterval(function(){s.resend_provisional()},m.PROVISIONAL_RESPONSE_INTERVAL));else if(e>=200&&e<=299)switch(this.state){case b.STATUS_PROCEEDING:this.stateChanged(b.STATUS_ACCEPTED),this.last_response=t,this.L=setTimeout(function(){s.timer_L()},m.TIMER_L),null!==this.resendProvisionalTimer&&(clearInterval(this.resendProvisionalTimer),this.resendProvisionalTimer=null);case b.STATUS_ACCEPTED:this.transport.send(t)?n&&n():(this.onTransportError(),r&&r())}else if(e>=300&&e<=699)switch(this.state){case b.STATUS_PROCEEDING:null!==this.resendProvisionalTimer&&(clearInterval(this.resendProvisionalTimer),this.resendProvisionalTimer=null),this.transport.send(t)?(this.stateChanged(b.STATUS_COMPLETED),this.H=setTimeout(function(){s.timer_H()},m.TIMER_H),n&&n()):(this.onTransportError(),r&&r())}}},{key:"C",get:function(){return b}}]),n}();t.exports={C:b,NonInviteClientTransaction:S,InviteClientTransaction:E,AckClientTransaction:A,NonInviteServerTransaction:R,InviteServerTransaction:w,checkTransaction:function(e,t){var n,r=e._transactions;switch(t.method){case _.INVITE:if(n=r.ist[t.via_branch]){switch(n.state){case b.STATUS_PROCEEDING:n.transport.send(n.last_response);break;case b.STATUS_ACCEPTED:}return!0}break;case _.ACK:if(!(n=r.ist[t.via_branch]))return!1;if(n.state===b.STATUS_ACCEPTED)return!1;if(n.state===b.STATUS_COMPLETED)return n.state=b.STATUS_CONFIRMED,n.I=setTimeout(function(){n.timer_I()},m.TIMER_I),!0;break;case _.CANCEL:return(n=r.ist[t.via_branch])?(t.reply_sl(200),n.state!==b.STATUS_PROCEEDING):(t.reply_sl(481),!0);default:if(n=r.nist[t.via_branch]){switch(n.state){case b.STATUS_TRYING:break;case b.STATUS_PROCEEDING:case b.STATUS_COMPLETED:n.transport.send(n.last_response)}return!0}}}}},{"./Constants":2,"./Logger":9,"./SIPMessage":21,"./Timers":23,events:31}],25:[function(e,t,n){"use strict";function r(e,t){for(var n=0;n1&&void 0!==arguments[1]?arguments[1]:u.recovery_options;!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,e),l.debug("new()"),this.status=u.STATUS_DISCONNECTED,this.socket=null,this.sockets=[],this.recovery_options=n,this.recover_attempts=0,this.recovery_timer=null,this.close_requested=!1;try{this.textDecoder=new TextDecoder("utf8")}catch(e){l.warn("cannot use TextDecoder: ".concat(e))}if(void 0===t)throw new TypeError("Invalid argument. undefined 'sockets' argument");t instanceof Array||(t=[t]),t.forEach(function(e){if(!i.isSocket(e.socket))throw new TypeError("Invalid argument. invalid 'JsSIP.Socket' instance");if(e.weight&&!Number(e.weight))throw new TypeError("Invalid argument. 'weight' attribute is not a number");this.sockets.push({socket:e.socket,weight:e.weight||0,status:u.SOCKET_STATUS_READY})},this),this._getSocket()}var t,n,s;return t=e,(n=[{key:"connect",value:function(){l.debug("connect()"),this.isConnected()?l.debug("Transport is already connected"):this.isConnecting()?l.debug("Transport is connecting"):(this.close_requested=!1,this.status=u.STATUS_CONNECTING,this.onconnecting({socket:this.socket,attempts:this.recover_attempts}),this.close_requested||(this.socket.onconnect=this._onConnect.bind(this),this.socket.ondisconnect=this._onDisconnect.bind(this),this.socket.ondata=this._onData.bind(this),this.socket.connect()))}},{key:"disconnect",value:function(){l.debug("close()"),this.close_requested=!0,this.recover_attempts=0,this.status=u.STATUS_DISCONNECTED,null!==this.recovery_timer&&(clearTimeout(this.recovery_timer),this.recovery_timer=null),this.socket.onconnect=function(){},this.socket.ondisconnect=function(){},this.socket.ondata=function(){},this.socket.disconnect(),this.ondisconnect({socket:this.socket,error:!1})}},{key:"send",value:function(e){if(l.debug("send()"),!this.isConnected())return l.warn("unable to send message, transport is not connected"),!1;var t=e.toString();return l.debug("sending message:\n\n".concat(t,"\n")),this.socket.send(t)}},{key:"isConnected",value:function(){return this.status===u.STATUS_CONNECTED}},{key:"isConnecting",value:function(){return this.status===u.STATUS_CONNECTING}},{key:"_reconnect",value:function(){var e=this;this.recover_attempts+=1;var t=Math.floor(Math.random()*Math.pow(2,this.recover_attempts)+1);tthis.recovery_options.max_interval&&(t=this.recovery_options.max_interval),l.debug("reconnection attempt: ".concat(this.recover_attempts,". next connection attempt in ").concat(t," seconds")),this.recovery_timer=setTimeout(function(){e.close_requested||e.isConnected()||e.isConnecting()||(e._getSocket(),e.connect())},1e3*t)}},{key:"_getSocket",value:function(){var e=[];if(this.sockets.forEach(function(t){t.status!==u.SOCKET_STATUS_ERROR&&(0===e.length?e.push(t):t.weight>e[0].weight?e=[t]:t.weight===e[0].weight&&e.push(t))}),0===e.length)return this.sockets.forEach(function(e){e.status=u.SOCKET_STATUS_READY}),void this._getSocket();var t=Math.floor(Math.random()*e.length);this.socket=e[t].socket}},{key:"_onConnect",value:function(){this.recover_attempts=0,this.status=u.STATUS_CONNECTED,null!==this.recovery_timer&&(clearTimeout(this.recovery_timer),this.recovery_timer=null),this.onconnect({socket:this})}},{key:"_onDisconnect",value:function(e,t,n){this.status=u.STATUS_DISCONNECTED,this.ondisconnect({socket:this.socket,error:e,code:t,reason:n}),this.close_requested||(this.sockets.forEach(function(e){this.socket===e.socket&&(e.status=u.SOCKET_STATUS_ERROR)},this),this._reconnect(e))}},{key:"_onData",value:function(e){if("\r\n\r\n"!==e)if("\r\n"!==e){if("string"!=typeof e){try{e=this.textDecoder?this.textDecoder.decode(e):String.fromCharCode.apply(null,new Uint8Array(e))}catch(e){return void l.debug("received binary message failed to be converted into string, message discarded")}l.debug("received binary message:\n\n".concat(e,"\n"))}else l.debug("received text message:\n\n".concat(e,"\n"));this.ondata({transport:this,message:e})}else l.debug("received message with CRLF Keep Alive response");else{l.debug("received message with double-CRLF Keep Alive request");try{this.socket.send("\r\n")}catch(e){l.warn("error sending Keep Alive response: ".concat(e))}}}},{key:"via_transport",get:function(){return this.socket.via_transport}},{key:"url",get:function(){return this.socket.url}},{key:"sip_uri",get:function(){return this.socket.sip_uri}}])&&r(t.prototype,n),s&&r(t,s),e}()},{"./Constants":2,"./Logger":9,"./Socket":22}],26:[function(e,t,n){"use strict";function r(e){return(r="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function s(e,t){for(var n=0;n0&&void 0!==arguments[0]?arguments[0]:{},t=e.anonymous||null,n=e.outbound||null,r="<";return r+=t?this.temp_gruu||"sip:anonymous@anonymous.invalid;transport=ws":this.pub_gruu||this.uri.toString(),!n||(t?this.temp_gruu:this.pub_gruu)||(r+=";ob"),r+=">"}};var r=["authorization_user","password","realm","ha1","authorization_jwt","display_name","register","extra_headers"];for(var s in this._configuration)Object.prototype.hasOwnProperty.call(this._configuration,s)&&(-1!==r.indexOf(s)?Object.defineProperty(this._configuration,s,{writable:!0,configurable:!1}):Object.defineProperty(this._configuration,s,{writable:!1,configurable:!1}));for(var i in R.debug("configuration parameters after validation:"),this._configuration)if(Object.prototype.hasOwnProperty.call(A.settings,i))switch(i){case"uri":case"registrar_server":R.debug("- ".concat(i,": ").concat(this._configuration[i]));break;case"password":case"ha1":case"authorization_jwt":R.debug("- ".concat(i,": NOT SHOWN"));break;default:R.debug("- ".concat(i,": ").concat(JSON.stringify(this._configuration[i])))}}},{key:"C",get:function(){return w}},{key:"status",get:function(){return this._status}},{key:"contact",get:function(){return this._contact}},{key:"configuration",get:function(){return this._configuration}},{key:"transport",get:function(){return this._transport}}]),n}()},{"./Config":1,"./Constants":2,"./Exceptions":6,"./Logger":9,"./Message":10,"./Options":12,"./Parser":13,"./RTCSession":14,"./Registrator":19,"./SIPMessage":21,"./Transactions":24,"./Transport":25,"./URI":27,"./Utils":28,"./sanityCheck":30,events:31}],27:[function(e,t,n){"use strict";function r(e,t){var n;if("undefined"==typeof Symbol||null==e[Symbol.iterator]){if(Array.isArray(e)||(n=function(e,t){if(!e)return;if("string"==typeof e)return s(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);"Object"===n&&e.constructor&&(n=e.constructor.name);if("Map"===n||"Set"===n)return Array.from(e);if("Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return s(e,t)}(e))||t&&e&&"number"==typeof e.length){n&&(e=n);var r=0,i=function(){};return{s:i,n:function(){return r>=e.length?{done:!0}:{done:!1,value:e[r++]}},e:function(e){throw e},f:i}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var o,l=!0,u=!1;return{s:function(){n=e[Symbol.iterator]()},n:function(){var e=n.next();return l=e.done,e},e:function(e){u=!0,o=e},f:function(){try{l||null==n.return||n.return()}finally{if(u)throw o}}}}function s(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n4&&void 0!==arguments[4]?arguments[4]:{},o=arguments.length>5&&void 0!==arguments[5]?arguments[5]:{};if(function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,e),!r)throw new TypeError('missing or invalid "host" parameter');for(var u in this._parameters={},this._headers={},this._scheme=t||l.SIP,this._user=n,this._host=r,this._port=s,i)Object.prototype.hasOwnProperty.call(i,u)&&this.setParam(u,i[u]);for(var a in o)Object.prototype.hasOwnProperty.call(o,a)&&this.setHeader(a,o[a])}return o(e,null,[{key:"parse",value:function(e){return-1!==(e=a.parse(e,"SIP_URI"))?e:void 0}}]),o(e,[{key:"setParam",value:function(e,t){e&&(this._parameters[e.toLowerCase()]=null==t?null:t.toString())}},{key:"getParam",value:function(e){if(e)return this._parameters[e.toLowerCase()]}},{key:"hasParam",value:function(e){if(e)return!!this._parameters.hasOwnProperty(e.toLowerCase())}},{key:"deleteParam",value:function(e){if(e=e.toLowerCase(),this._parameters.hasOwnProperty(e)){var t=this._parameters[e];return delete this._parameters[e],t}}},{key:"clearParams",value:function(){this._parameters={}}},{key:"setHeader",value:function(e,t){this._headers[u.headerize(e)]=Array.isArray(t)?t:[t]}},{key:"getHeader",value:function(e){if(e)return this._headers[u.headerize(e)]}},{key:"hasHeader",value:function(e){if(e)return!!this._headers.hasOwnProperty(u.headerize(e))}},{key:"deleteHeader",value:function(e){if(e=u.headerize(e),this._headers.hasOwnProperty(e)){var t=this._headers[e];return delete this._headers[e],t}}},{key:"clearHeaders",value:function(){this._headers={}}},{key:"clone",value:function(){return new e(this._scheme,this._user,this._host,this._port,JSON.parse(JSON.stringify(this._parameters)),JSON.parse(JSON.stringify(this._headers)))}},{key:"toString",value:function(){var e=[],t="".concat(this._scheme,":");for(var n in this._user&&(t+="".concat(u.escapeUser(this._user),"@")),t+=this._host,(this._port||0===this._port)&&(t+=":".concat(this._port)),this._parameters)Object.prototype.hasOwnProperty.call(this._parameters,n)&&(t+=";".concat(n),null!==this._parameters[n]&&(t+="=".concat(this._parameters[n])));for(var s in this._headers)if(Object.prototype.hasOwnProperty.call(this._headers,s)){var i,o=r(this._headers[s]);try{for(o.s();!(i=o.n()).done;){var l=i.value;e.push("".concat(s,"=").concat(l))}}catch(e){o.e(e)}finally{o.f()}}return e.length>0&&(t+="?".concat(e.join("&"))),t}},{key:"toAor",value:function(e){var t="".concat(this._scheme,":");return this._user&&(t+="".concat(u.escapeUser(this._user),"@")),t+=this._host,e&&(this._port||0===this._port)&&(t+=":".concat(this._port)),t}},{key:"scheme",get:function(){return this._scheme},set:function(e){this._scheme=e.toLowerCase()}},{key:"user",get:function(){return this._user},set:function(e){this._user=e}},{key:"host",get:function(){return this._host},set:function(e){this._host=e.toLowerCase()}},{key:"port",get:function(){return this._port},set:function(e){this._port=0===e?e:parseInt(e,10)||null}}]),e}()},{"./Constants":2,"./Grammar":7,"./Utils":28}],28:[function(e,t,n){"use strict";function r(e){return(r="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function s(e,t){var n;if("undefined"==typeof Symbol||null==e[Symbol.iterator]){if(Array.isArray(e)||(n=function(e,t){if(!e)return;if("string"==typeof e)return i(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);"Object"===n&&e.constructor&&(n=e.constructor.name);if("Map"===n||"Set"===n)return Array.from(e);if("Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return i(e,t)}(e))||t&&e&&"number"==typeof e.length){n&&(e=n);var r=0,s=function(){};return{s:s,n:function(){return r>=e.length?{done:!0}:{done:!1,value:e[r++]}},e:function(e){throw e},f:s}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var o,l=!0,u=!1;return{s:function(){n=e[Symbol.iterator]()},n:function(){var e=n.next();return l=e.done,e},e:function(e){u=!0,o=e},f:function(){try{l||null==n.return||n.return()}finally{if(u)throw o}}}}function i(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n1?t-1:0),r=1;r1&&void 0!==arguments[1]?arguments[1]:32,r="";for(t=0;t>>32-t}function n(e,t){var n=2147483648&e,r=2147483648&t,s=1073741824&e,i=1073741824&t,o=(1073741823&e)+(1073741823&t);return s&i?2147483648^o^n^r:s|i?1073741824&o?3221225472^o^n^r:1073741824^o^n^r:o^n^r}function r(e,r,s,i,o,l,u){return e=n(e,n(n(function(e,t,n){return e&t|~e&n}(r,s,i),o),u)),n(t(e,l),r)}function s(e,r,s,i,o,l,u){return e=n(e,n(n(function(e,t,n){return e&n|t&~n}(r,s,i),o),u)),n(t(e,l),r)}function i(e,r,s,i,o,l,u){return e=n(e,n(n(function(e,t,n){return e^t^n}(r,s,i),o),u)),n(t(e,l),r)}function o(e,r,s,i,o,l,u){return e=n(e,n(n(function(e,t,n){return t^(e|~n)}(r,s,i),o),u)),n(t(e,l),r)}function l(e){var t,n="",r="";for(t=0;t<=3;t++)n+=(r="0".concat((e>>>8*t&255).toString(16))).substr(r.length-2,2);return n}var u,a,c,h,d,f,_,p,m,v;for(u=function(e){for(var t,n=e.length,r=n+8,s=16*((r-r%64)/64+1),i=new Array(s-1),o=0,l=0;l>>29,i}(e=function(e){for(var t="",n=0;n127&&r<2048?(t+=String.fromCharCode(r>>6|192),t+=String.fromCharCode(63&r|128)):(t+=String.fromCharCode(r>>12|224),t+=String.fromCharCode(r>>6&63|128),t+=String.fromCharCode(63&r|128))}return t}(e)),_=1732584193,p=4023233417,m=2562383102,v=271733878,a=0;a1&&void 0!==arguments[1]?arguments[1]:{};return e&&Object.assign({},e)||t}},{"./Constants":2,"./Grammar":7,"./URI":27}],29:[function(e,t,n){"use strict";function r(e,t){for(var n=0;n=e.length?{done:!0}:{done:!1,value:e[r++]}},e:function(e){throw e},f:i}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var o,l=!0,u=!1;return{s:function(){n=e[Symbol.iterator]()},n:function(){var e=n.next();return l=e.done,e},e:function(e){u=!0,o=e},f:function(){try{l||null==n.return||n.return()}finally{if(u)throw o}}}}function s(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n1)return d.debug("more than one Via header field present in the response, dropping the response"),!1},function(){var e=h.str_utf8_length(i.body),t=i.getHeader("content-length");if(e0&&l.length>i){l.warned=!0;var u=new Error("Possible EventEmitter memory leak detected. "+l.length+' "'+String(t)+'" listeners added. Use emitter.setMaxListeners() to increase limit.');u.name="MaxListenersExceededWarning",u.emitter=e,u.type=t,u.count=l.length,"object"==typeof console&&console.warn&&console.warn("%s: %s",u.name,u.message)}}else l=o[t]=n,++e._eventsCount;return e}function d(){if(!this.fired)switch(this.target.removeListener(this.type,this.wrapFn),this.fired=!0,arguments.length){case 0:return this.listener.call(this.target);case 1:return this.listener.call(this.target,arguments[0]);case 2:return this.listener.call(this.target,arguments[0],arguments[1]);case 3:return this.listener.call(this.target,arguments[0],arguments[1],arguments[2]);default:for(var e=new Array(arguments.length),t=0;t1&&(t=arguments[1]),t instanceof Error)throw t;var u=new Error('Unhandled "error" event. ('+t+")");throw u.context=t,u}if(!(n=o[e]))return!1;var a="function"==typeof n;switch(r=arguments.length){case 1:!function(e,t,n){if(t)e.call(n);else for(var r=e.length,s=m(e,r),i=0;i=0;o--)if(n[o]===t||n[o].listener===t){l=n[o].listener,i=o;break}if(i<0)return this;0===i?n.shift():function(e,t){for(var n=t,r=n+1,s=e.length;r=0;i--)this.removeListener(e,t[i]);return this},o.prototype.listeners=function(e){return _(this,e,!0)},o.prototype.rawListeners=function(e){return _(this,e,!1)},o.listenerCount=function(e,t){return"function"==typeof e.listenerCount?e.listenerCount(t):p.call(e,t)},o.prototype.listenerCount=p,o.prototype.eventNames=function(){return this._eventsCount>0?Reflect.ownKeys(this._events):[]}},{}],32:[function(e,t,n){(function(r){n.log=function(...e){return"object"==typeof console&&console.log&&console.log(...e)},n.formatArgs=function(e){if(e[0]=(this.useColors?"%c":"")+this.namespace+(this.useColors?" %c":" ")+e[0]+(this.useColors?"%c ":" ")+"+"+t.exports.humanize(this.diff),!this.useColors)return;const n="color: "+this.color;e.splice(1,0,n,"color: inherit");let r=0,s=0;e[0].replace(/%[a-zA-Z%]/g,e=>{"%%"!==e&&(r++,"%c"===e&&(s=r))}),e.splice(s,0,n)},n.save=function(e){try{e?n.storage.setItem("debug",e):n.storage.removeItem("debug")}catch(e){}},n.load=function(){let e;try{e=n.storage.getItem("debug")}catch(e){}!e&&void 0!==r&&"env"in r&&(e=r.env.DEBUG);return e},n.useColors=function(){if("undefined"!=typeof window&&window.process&&("renderer"===window.process.type||window.process.__nwjs))return!0;if("undefined"!=typeof navigator&&navigator.userAgent&&navigator.userAgent.toLowerCase().match(/(edge|trident)\/(\d+)/))return!1;return"undefined"!=typeof document&&document.documentElement&&document.documentElement.style&&document.documentElement.style.WebkitAppearance||"undefined"!=typeof window&&window.console&&(window.console.firebug||window.console.exception&&window.console.table)||"undefined"!=typeof navigator&&navigator.userAgent&&navigator.userAgent.toLowerCase().match(/firefox\/(\d+)/)&&parseInt(RegExp.$1,10)>=31||"undefined"!=typeof navigator&&navigator.userAgent&&navigator.userAgent.toLowerCase().match(/applewebkit\/(\d+)/)},n.storage=function(){try{return localStorage}catch(e){}}(),n.colors=["#0000CC","#0000FF","#0033CC","#0033FF","#0066CC","#0066FF","#0099CC","#0099FF","#00CC00","#00CC33","#00CC66","#00CC99","#00CCCC","#00CCFF","#3300CC","#3300FF","#3333CC","#3333FF","#3366CC","#3366FF","#3399CC","#3399FF","#33CC00","#33CC33","#33CC66","#33CC99","#33CCCC","#33CCFF","#6600CC","#6600FF","#6633CC","#6633FF","#66CC00","#66CC33","#9900CC","#9900FF","#9933CC","#9933FF","#99CC00","#99CC33","#CC0000","#CC0033","#CC0066","#CC0099","#CC00CC","#CC00FF","#CC3300","#CC3333","#CC3366","#CC3399","#CC33CC","#CC33FF","#CC6600","#CC6633","#CC9900","#CC9933","#CCCC00","#CCCC33","#FF0000","#FF0033","#FF0066","#FF0099","#FF00CC","#FF00FF","#FF3300","#FF3333","#FF3366","#FF3399","#FF33CC","#FF33FF","#FF6600","#FF6633","#FF9900","#FF9933","#FFCC00","#FFCC33"],t.exports=e("./common")(n);const{formatters:s}=t.exports;s.j=function(e){try{return JSON.stringify(e)}catch(e){return"[UnexpectedJSONParseError]: "+e.message}}}).call(this,e("_process"))},{"./common":33,_process:35}],33:[function(e,t,n){t.exports=function(t){function n(e){let t=0;for(let n=0;n{if("%%"===t)return t;l++;const i=r.formatters[s];if("function"==typeof i){const r=e[l];t=i.call(n,r),e.splice(l,1),l--}return t}),r.formatArgs.call(n,e),(n.log||r.log).apply(n,e)}return o.namespace=e,o.enabled=r.enabled(e),o.useColors=r.useColors(),o.color=n(e),o.destroy=s,o.extend=i,"function"==typeof r.init&&r.init(o),r.instances.push(o),o}function s(){const e=r.instances.indexOf(this);return-1!==e&&(r.instances.splice(e,1),!0)}function i(e,t){const n=r(this.namespace+(void 0===t?":":t)+e);return n.log=this.log,n}function o(e){return e.toString().substring(2,e.toString().length-2).replace(/\.\*\?$/,"*")}return r.debug=r,r.default=r,r.coerce=function(e){return e instanceof Error?e.stack||e.message:e},r.disable=function(){const e=[...r.names.map(o),...r.skips.map(o).map(e=>"-"+e)].join(",");return r.enable(""),e},r.enable=function(e){let t;r.save(e),r.names=[],r.skips=[];const n=("string"==typeof e?e:"").split(/[\s,]+/),s=n.length;for(t=0;t{r[e]=t[e]}),r.instances=[],r.names=[],r.skips=[],r.formatters={},r.selectColor=n,r.enable(r.load()),r}},{ms:34}],34:[function(e,t,n){var r=1e3,s=60*r,i=60*s,o=24*i,l=7*o,u=365.25*o;function a(e,t,n,r){var s=t>=1.5*n;return Math.round(e/n)+" "+r+(s?"s":"")}t.exports=function(e,t){t=t||{};var n=typeof e;if("string"===n&&e.length>0)return function(e){if((e=String(e)).length>100)return;var t=/^(-?(?:\d+)?\.?\d+) *(milliseconds?|msecs?|ms|seconds?|secs?|s|minutes?|mins?|m|hours?|hrs?|h|days?|d|weeks?|w|years?|yrs?|y)?$/i.exec(e);if(!t)return;var n=parseFloat(t[1]);switch((t[2]||"ms").toLowerCase()){case"years":case"year":case"yrs":case"yr":case"y":return n*u;case"weeks":case"week":case"w":return n*l;case"days":case"day":case"d":return n*o;case"hours":case"hour":case"hrs":case"hr":case"h":return n*i;case"minutes":case"minute":case"mins":case"min":case"m":return n*s;case"seconds":case"second":case"secs":case"sec":case"s":return n*r;case"milliseconds":case"millisecond":case"msecs":case"msec":case"ms":return n;default:return}}(e);if("number"===n&&isFinite(e))return t.long?function(e){var t=Math.abs(e);if(t>=o)return a(e,t,o,"day");if(t>=i)return a(e,t,i,"hour");if(t>=s)return a(e,t,s,"minute");if(t>=r)return a(e,t,r,"second");return e+" ms"}(e):function(e){var t=Math.abs(e);if(t>=o)return Math.round(e/o)+"d";if(t>=i)return Math.round(e/i)+"h";if(t>=s)return Math.round(e/s)+"m";if(t>=r)return Math.round(e/r)+"s";return e+"ms"}(e);throw new Error("val is not a non-empty string or a valid number. val="+JSON.stringify(e))}},{}],35:[function(e,t,n){var r,s,i=t.exports={};function o(){throw new Error("setTimeout has not been defined")}function l(){throw new Error("clearTimeout has not been defined")}function u(e){if(r===setTimeout)return setTimeout(e,0);if((r===o||!r)&&setTimeout)return r=setTimeout,setTimeout(e,0);try{return r(e,0)}catch(t){try{return r.call(null,e,0)}catch(t){return r.call(this,e,0)}}}!function(){try{r="function"==typeof setTimeout?setTimeout:o}catch(e){r=o}try{s="function"==typeof clearTimeout?clearTimeout:l}catch(e){s=l}}();var a,c=[],h=!1,d=-1;function f(){h&&a&&(h=!1,a.length?c=a.concat(c):d=-1,c.length&&_())}function _(){if(!h){var e=u(f);h=!0;for(var t=c.length;t;){for(a=c,c=[];++d1)for(var n=1;n1&&(e[n[0]]=void 0),e};n.parseParams=function(e){return e.split(/;\s?/).reduce(l,{})},n.parseFmtpConfig=n.parseParams,n.parsePayloads=function(e){return e.toString().split(" ").map(Number)},n.parseRemoteCandidates=function(e){for(var t=[],n=e.split(" ").map(r),s=0;s=r)return e;var s=n[t];switch(t+=1,e){case"%%":return"%";case"%s":return String(s);case"%d":return Number(s);case"%v":return""}})}.apply(null,r)},o=["v","o","s","i","u","e","p","c","b","t","r","z","a"],l=["i","c","b","a"];t.exports=function(e,t){t=t||{},null==e.version&&(e.version=0),null==e.name&&(e.name=" "),e.media.forEach(function(e){null==e.payloads&&(e.payloads="")});var n=t.outerOrder||o,s=t.innerOrder||l,u=[];return n.forEach(function(t){r[t].forEach(function(n){n.name in e&&null!=e[n.name]?u.push(i(t,n,e)):n.push in e&&null!=e[n.push]&&e[n.push].forEach(function(e){u.push(i(t,n,e))})})}),e.media.forEach(function(e){u.push(i("m",r.m[0],e)),s.forEach(function(t){r[t].forEach(function(n){n.name in e&&null!=e[n.name]?u.push(i(t,n,e)):n.push in e&&null!=e[n.push]&&e[n.push].forEach(function(e){u.push(i(t,n,e))})})})}),u.join("\r\n")+"\r\n"}},{"./grammar":36}],40:[function(e,t,n){t.exports={name:"jssip",title:"JsSIP",description:"the Javascript SIP library",version:"3.10.1",homepage:"https://jssip.net",contributors:["José Luis Millán (https://github.com/jmillan)","Iñaki Baz Castillo (https://inakibaz.me)"],types:"lib/JsSIP.d.ts",main:"lib-es5/JsSIP.js",keywords:["sip","websocket","webrtc","node","browser","library"],license:"MIT",repository:{type:"git",url:"https://github.com/versatica/JsSIP.git"},bugs:{url:"https://github.com/versatica/JsSIP/issues"},dependencies:{"@types/events":"^3.0.0","@types/debug":"^4.1.7",debug:"^4.3.1",events:"^3.3.0","sdp-transform":"^2.14.1"},devDependencies:{"@babel/core":"^7.19.6","@babel/preset-env":"^7.19.4","ansi-colors":"^3.2.4",browserify:"^16.5.1",eslint:"^5.16.0","fancy-log":"^1.3.3",gulp:"^4.0.2","gulp-babel":"^8.0.0","gulp-eslint":"^5.0.0","gulp-expect-file":"^1.0.2","gulp-header":"^2.0.9","gulp-nodeunit-runner":"^0.2.2","gulp-plumber":"^1.2.1","gulp-rename":"^1.4.0","gulp-uglify-es":"^1.0.4",pegjs:"^0.7.0","vinyl-buffer":"^1.0.1","vinyl-source-stream":"^2.0.0"},scripts:{lint:"node npm-scripts.js lint",test:"node npm-scripts.js test",prepublish:"node npm-scripts.js prepublish",release:"node npm-scripts.js release"}}},{}]},{},[8])(8)}); \ No newline at end of file diff --git a/examples/vagrant/static-http/jssip-3.8.2.min.js b/examples/vagrant/static-http/jssip-3.8.2.min.js deleted file mode 100644 index 8ba04757..00000000 --- a/examples/vagrant/static-http/jssip-3.8.2.min.js +++ /dev/null @@ -1,9 +0,0 @@ -/* - * JsSIP v3.8.2 - * the Javascript SIP library - * Copyright: 2012-2021 - * Homepage: https://jssip.net - * License: MIT - */ - -!function(e){if("object"==typeof exports&&"undefined"!=typeof module)module.exports=e();else if("function"==typeof define&&define.amd)define([],e);else{("undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:this).JsSIP=e()}}(function(){return function(){return function e(t,n,r){function s(o,l){if(!n[o]){if(!t[o]){var u="function"==typeof require&&require;if(!l&&u)return u(o,!0);if(i)return i(o,!0);var a=new Error("Cannot find module '"+o+"'");throw a.code="MODULE_NOT_FOUND",a}var c=n[o]={exports:{}};t[o][0].call(c.exports,function(e){return s(t[o][1][e]||e)},c,c.exports,e,t,n,r)}return n[o].exports}for(var i="function"==typeof require&&require,o=0;o=e.length?{done:!0}:{done:!1,value:e[r++]}},e:function(e){throw e},f:i}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var o,l=!0,u=!1;return{s:function(){n=e[Symbol.iterator]()},n:function(){var e=n.next();return l=e.done,e},e:function(e){u=!0,o=e},f:function(){try{l||null==n.return||n.return()}finally{if(u)throw o}}}}function s(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n0)return t}},connection_recovery_min_interval:function(e){if(i.isDecimal(e)){var t=Number(e);if(t>0)return t}},contact_uri:function(e){if("string"==typeof e){var t=l.parse(e,"SIP_URI");if(-1!==t)return t}},display_name:function(e){return e},instance_id:function(e){return/^uuid:/i.test(e)&&(e=e.substr(5)),-1===l.parse(e,"uuid")?void 0:e},no_answer_timeout:function(e){if(i.isDecimal(e)){var t=Number(e);if(t>0)return t}},session_timers:function(e){if("boolean"==typeof e)return e},session_timers_refresh_method:function(e){if("string"==typeof e&&((e=e.toUpperCase())===o.INVITE||e===o.UPDATE))return e},session_timers_force_refresher:function(e){if("boolean"==typeof e)return e},password:function(e){return String(e)},realm:function(e){return String(e)},ha1:function(e){return String(e)},register:function(e){if("boolean"==typeof e)return e},register_expires:function(e){if(i.isDecimal(e)){var t=Number(e);if(t>0)return t}},registrar_server:function(e){/^sip:/i.test(e)||(e="".concat(o.SIP,":").concat(e));var t=u.parse(e);return t?t.user?void 0:t:void 0},use_preloaded_route:function(e){if("boolean"==typeof e)return e}}};n.load=function(e,t){for(var n in h.mandatory){if(!t.hasOwnProperty(n))throw new c.ConfigurationError(n);var r=t[n],s=h.mandatory[n](r);if(void 0===s)throw new c.ConfigurationError(n,r);e[n]=s}for(var o in h.optional)if(t.hasOwnProperty(o)){var l=t[o];if(i.isEmpty(l))continue;var u=h.optional[o](l);if(void 0===u)throw new c.ConfigurationError(o,l);e[o]=u}}},{"./Constants":2,"./Exceptions":6,"./Grammar":7,"./Socket":22,"./URI":27,"./Utils":28}],2:[function(e,t,n){"use strict";var r=e("../package.json");t.exports={USER_AGENT:"".concat(r.title," ").concat(r.version),SIP:"sip",SIPS:"sips",causes:{CONNECTION_ERROR:"Connection Error",REQUEST_TIMEOUT:"Request Timeout",SIP_FAILURE_CODE:"SIP Failure Code",INTERNAL_ERROR:"Internal Error",BUSY:"Busy",REJECTED:"Rejected",REDIRECTED:"Redirected",UNAVAILABLE:"Unavailable",NOT_FOUND:"Not Found",ADDRESS_INCOMPLETE:"Address Incomplete",INCOMPATIBLE_SDP:"Incompatible SDP",MISSING_SDP:"Missing SDP",AUTHENTICATION_ERROR:"Authentication Error",BYE:"Terminated",WEBRTC_ERROR:"WebRTC Error",CANCELED:"Canceled",NO_ANSWER:"No Answer",EXPIRES:"Expires",NO_ACK:"No ACK",DIALOG_ERROR:"Dialog Error",USER_DENIED_MEDIA_ACCESS:"User Denied Media Access",BAD_MEDIA_DESCRIPTION:"Bad Media Description",RTP_TIMEOUT:"RTP Timeout"},SIP_ERROR_CAUSES:{REDIRECTED:[300,301,302,305,380],BUSY:[486,600],REJECTED:[403,603],NOT_FOUND:[404,604],UNAVAILABLE:[480,410,408,430],ADDRESS_INCOMPLETE:[484,424],INCOMPATIBLE_SDP:[488,606],AUTHENTICATION_ERROR:[401,407]},ACK:"ACK",BYE:"BYE",CANCEL:"CANCEL",INFO:"INFO",INVITE:"INVITE",MESSAGE:"MESSAGE",NOTIFY:"NOTIFY",OPTIONS:"OPTIONS",REGISTER:"REGISTER",REFER:"REFER",UPDATE:"UPDATE",SUBSCRIBE:"SUBSCRIBE",DTMF_TRANSPORT:{INFO:"INFO",RFC2833:"RFC2833"},REASON_PHRASE:{100:"Trying",180:"Ringing",181:"Call Is Being Forwarded",182:"Queued",183:"Session Progress",199:"Early Dialog Terminated",200:"OK",202:"Accepted",204:"No Notification",300:"Multiple Choices",301:"Moved Permanently",302:"Moved Temporarily",305:"Use Proxy",380:"Alternative Service",400:"Bad Request",401:"Unauthorized",402:"Payment Required",403:"Forbidden",404:"Not Found",405:"Method Not Allowed",406:"Not Acceptable",407:"Proxy Authentication Required",408:"Request Timeout",410:"Gone",412:"Conditional Request Failed",413:"Request Entity Too Large",414:"Request-URI Too Long",415:"Unsupported Media Type",416:"Unsupported URI Scheme",417:"Unknown Resource-Priority",420:"Bad Extension",421:"Extension Required",422:"Session Interval Too Small",423:"Interval Too Brief",424:"Bad Location Information",428:"Use Identity Header",429:"Provide Referrer Identity",430:"Flow Failed",433:"Anonymity Disallowed",436:"Bad Identity-Info",437:"Unsupported Certificate",438:"Invalid Identity Header",439:"First Hop Lacks Outbound Support",440:"Max-Breadth Exceeded",469:"Bad Info Package",470:"Consent Needed",478:"Unresolvable Destination",480:"Temporarily Unavailable",481:"Call/Transaction Does Not Exist",482:"Loop Detected",483:"Too Many Hops",484:"Address Incomplete",485:"Ambiguous",486:"Busy Here",487:"Request Terminated",488:"Not Acceptable Here",489:"Bad Event",491:"Request Pending",493:"Undecipherable",494:"Security Agreement Required",500:"JsSIP Internal Error",501:"Not Implemented",502:"Bad Gateway",503:"Service Unavailable",504:"Server Time-out",505:"Version Not Supported",513:"Message Too Large",580:"Precondition Failure",600:"Busy Everywhere",603:"Decline",604:"Does Not Exist Anywhere",606:"Not Acceptable"},ALLOWED_METHODS:"INVITE,ACK,CANCEL,BYE,UPDATE,MESSAGE,OPTIONS,REFER,INFO,NOTIFY",ACCEPTED_BODY_TYPES:"application/sdp, application/dtmf-relay",MAX_FORWARDS:69,SESSION_EXPIRES:90,MIN_SESSION_EXPIRES:60,CONNECTION_RECOVERY_MAX_INTERVAL:30,CONNECTION_RECOVERY_MIN_INTERVAL:2}},{"../package.json":40}],3:[function(e,t,n){"use strict";function r(e,t){for(var n=0;n3&&void 0!==arguments[3]?arguments[3]:d.STATUS_CONFIRMED;if(function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,e),this._owner=t,this._ua=t._ua,this._uac_pending_reply=!1,this._uas_pending_reply=!1,!n.hasHeader("contact"))return{error:"unable to create a Dialog without Contact header field"};n instanceof o.IncomingResponse&&(s=n.status_code<200?d.STATUS_EARLY:d.STATUS_CONFIRMED);var i=n.parseHeader("contact");"UAS"===r?(this._id={call_id:n.call_id,local_tag:n.to_tag,remote_tag:n.from_tag,toString:function(){return this.call_id+this.local_tag+this.remote_tag}},this._state=s,this._remote_seqnum=n.cseq,this._local_uri=n.parseHeader("to").uri,this._remote_uri=n.parseHeader("from").uri,this._remote_target=i.uri,this._route_set=n.getHeaders("record-route"),this._ack_seqnum=this._remote_seqnum):"UAC"===r&&(this._id={call_id:n.call_id,local_tag:n.from_tag,remote_tag:n.to_tag,toString:function(){return this.call_id+this.local_tag+this.remote_tag}},this._state=s,this._local_seqnum=n.cseq,this._local_uri=n.parseHeader("from").uri,this._remote_uri=n.parseHeader("to").uri,this._remote_target=i.uri,this._route_set=n.getHeaders("record-route").reverse(),this._ack_seqnum=null),this._ua.newDialog(this),h.debug("new ".concat(r," dialog created with status ").concat(this._state===d.STATUS_EARLY?"EARLY":"CONFIRMED"))}return s(e,null,[{key:"C",get:function(){return d}}]),s(e,[{key:"update",value:function(e,t){this._state=d.STATUS_CONFIRMED,h.debug("dialog ".concat(this._id.toString()," changed to CONFIRMED state")),"UAC"===t&&(this._route_set=e.getHeaders("record-route").reverse())}},{key:"terminate",value:function(){h.debug("dialog ".concat(this._id.toString()," deleted")),this._ua.destroyDialog(this)}},{key:"sendRequest",value:function(e){var t=this,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=c.cloneArray(n.extraHeaders),s=c.cloneObject(n.eventHandlers),i=n.body||null,o=this._createRequest(e,r,i);return s.onAuthenticated=function(){t._local_seqnum+=1},new a(this,o,s).send(),o}},{key:"receiveRequest",value:function(e){this._checkInDialogRequest(e)&&(e.method===l.ACK&&null!==this._ack_seqnum?this._ack_seqnum=null:e.method===l.INVITE&&(this._ack_seqnum=e.cseq),this._owner.receiveRequest(e))}},{key:"_createRequest",value:function(e,t,n){t=c.cloneArray(t),this._local_seqnum||(this._local_seqnum=Math.floor(1e4*Math.random()));var r=e===l.CANCEL||e===l.ACK?this._local_seqnum:this._local_seqnum+=1;return new o.OutgoingRequest(e,this._remote_target,this._ua,{cseq:r,call_id:this._id.call_id,from_uri:this._local_uri,from_tag:this._id.local_tag,to_uri:this._remote_uri,to_tag:this._id.remote_tag,route_set:this._route_set},t,n)}},{key:"_checkInDialogRequest",value:function(e){var t=this;if(this._remote_seqnum)if(e.cseqthis._remote_seqnum&&(this._remote_seqnum=e.cseq);else this._remote_seqnum=e.cseq;if(e.method===l.INVITE||e.method===l.UPDATE&&e.body){if(!0===this._uac_pending_reply)e.reply(491);else{if(!0===this._uas_pending_reply){var n=1+(10*Math.random()|0);return e.reply(500,null,["Retry-After:".concat(n)]),!1}this._uas_pending_reply=!0;e.server_transaction.on("stateChanged",function n(){e.server_transaction.state!==u.C.STATUS_ACCEPTED&&e.server_transaction.state!==u.C.STATUS_COMPLETED&&e.server_transaction.state!==u.C.STATUS_TERMINATED||(e.server_transaction.removeListener("stateChanged",n),t._uas_pending_reply=!1)})}e.hasHeader("contact")&&e.server_transaction.on("stateChanged",function(){e.server_transaction.state===u.C.STATUS_ACCEPTED&&(t._remote_target=e.parseHeader("contact").uri)})}else e.method===l.NOTIFY&&e.hasHeader("contact")&&e.server_transaction.on("stateChanged",function(){e.server_transaction.state===u.C.STATUS_COMPLETED&&(t._remote_target=e.parseHeader("contact").uri)});return!0}},{key:"id",get:function(){return this._id}},{key:"local_seqnum",get:function(){return this._local_seqnum},set:function(e){this._local_seqnum=e}},{key:"owner",get:function(){return this._owner}},{key:"uac_pending_reply",get:function(){return this._uac_pending_reply},set:function(e){this._uac_pending_reply=e}},{key:"uas_pending_reply",get:function(){return this._uas_pending_reply}}]),e}()},{"./Constants":2,"./Dialog/RequestSender":4,"./Logger":9,"./SIPMessage":21,"./Transactions":24,"./Utils":28}],4:[function(e,t,n){"use strict";function r(e,t){for(var n=0;n=200&&e.status_code<300?this._eventHandlers.onSuccessResponse(e):e.status_code>=300&&this._eventHandlers.onErrorResponse(e):(this._request.cseq=this._dialog.local_seqnum+=1,this._reattemptTimer=setTimeout(function(){t._dialog.owner.status!==o.C.STATUS_TERMINATED&&(t._reattempt=!0,t._request_sender.send())},1e3)):e.status_code>=200&&e.status_code<300?this._eventHandlers.onSuccessResponse(e):e.status_code>=300&&this._eventHandlers.onErrorResponse(e)}},{key:"request",get:function(){return this._request}}])&&r(t.prototype,n),a&&r(t,a),e}()},{"../Constants":2,"../RTCSession":14,"../RequestSender":20,"../Transactions":24}],5:[function(e,t,n){"use strict";function r(e,t){for(var n=0;n2&&void 0!==arguments[2]?arguments[2]:null;if(this._algorithm=t.algorithm,this._realm=t.realm,this._nonce=t.nonce,this._opaque=t.opaque,this._stale=t.stale,this._algorithm){if("MD5"!==this._algorithm)return o.warn('authenticate() | challenge with Digest algorithm different than "MD5", authentication aborted'),!1}else this._algorithm="MD5";if(!this._nonce)return o.warn("authenticate() | challenge without Digest nonce, authentication aborted"),!1;if(!this._realm)return o.warn("authenticate() | challenge without Digest realm, authentication aborted"),!1;if(!this._credentials.password){if(!this._credentials.ha1)return o.warn("authenticate() | no plain SIP password nor ha1 provided, authentication aborted"),!1;if(this._credentials.realm!==this._realm)return o.warn('authenticate() | no plain SIP password, and stored `realm` does not match the given `realm`, cannot authenticate [stored:"%s", given:"%s"]',this._credentials.realm,this._realm),!1}if(t.qop)if(t.qop.indexOf("auth-int")>-1)this._qop="auth-int";else{if(!(t.qop.indexOf("auth")>-1))return o.warn('authenticate() | challenge without Digest qop different than "auth" or "auth-int", authentication aborted'),!1;this._qop="auth"}else this._qop=null;this._method=n,this._uri=r,this._cnonce=l||i.createRandomToken(12),this._nc+=1;var u,a,c=Number(this._nc).toString(16);return this._ncHex="00000000".substr(0,8-c.length)+c,4294967296===this._nc&&(this._nc=1,this._ncHex="00000001"),this._credentials.password?this._ha1=i.calculateMD5("".concat(this._credentials.username,":").concat(this._realm,":").concat(this._credentials.password)):this._ha1=this._credentials.ha1,"auth"===this._qop?(u="".concat(this._method,":").concat(this._uri),a=i.calculateMD5(u),o.debug('authenticate() | using qop=auth [a2:"%s"]',u),this._response=i.calculateMD5("".concat(this._ha1,":").concat(this._nonce,":").concat(this._ncHex,":").concat(this._cnonce,":auth:").concat(a))):"auth-int"===this._qop?(u="".concat(this._method,":").concat(this._uri,":").concat(i.calculateMD5(s||"")),a=i.calculateMD5(u),o.debug('authenticate() | using qop=auth-int [a2:"%s"]',u),this._response=i.calculateMD5("".concat(this._ha1,":").concat(this._nonce,":").concat(this._ncHex,":").concat(this._cnonce,":auth-int:").concat(a))):null===this._qop&&(u="".concat(this._method,":").concat(this._uri),a=i.calculateMD5(u),o.debug('authenticate() | using qop=null [a2:"%s"]',u),this._response=i.calculateMD5("".concat(this._ha1,":").concat(this._nonce,":").concat(a))),o.debug("authenticate() | response generated"),!0}},{key:"toString",value:function(){var e=[];if(!this._response)throw new Error("response field does not exist, cannot generate Authorization header");return e.push("algorithm=".concat(this._algorithm)),e.push('username="'.concat(this._credentials.username,'"')),e.push('realm="'.concat(this._realm,'"')),e.push('nonce="'.concat(this._nonce,'"')),e.push('uri="'.concat(this._uri,'"')),e.push('response="'.concat(this._response,'"')),this._opaque&&e.push('opaque="'.concat(this._opaque,'"')),this._qop&&(e.push("qop=".concat(this._qop)),e.push('cnonce="'.concat(this._cnonce,'"')),e.push("nc=".concat(this._ncHex))),"Digest ".concat(e.join(", "))}}])&&r(t.prototype,n),s&&r(t,s),e}()},{"./Logger":9,"./Utils":28}],6:[function(e,t,n){"use strict";function r(e){return(r="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function s(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function i(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),t&&c(e,t)}function o(e){var t=a();return function(){var n,s=h(e);if(t){var i=h(this).constructor;n=Reflect.construct(s,arguments,i)}else n=s.apply(this,arguments);return function(e,t){if(t&&("object"===r(t)||"function"==typeof t))return t;return function(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}(e)}(this,n)}}function l(e){var t="function"==typeof Map?new Map:void 0;return(l=function(e){if(null===e||(n=e,-1===Function.toString.call(n).indexOf("[native code]")))return e;var n;if("function"!=typeof e)throw new TypeError("Super expression must either be null or a function");if(void 0!==t){if(t.has(e))return t.get(e);t.set(e,r)}function r(){return u(e,arguments,h(this).constructor)}return r.prototype=Object.create(e.prototype,{constructor:{value:r,enumerable:!1,writable:!0,configurable:!0}}),c(r,e)})(e)}function u(e,t,n){return(u=a()?Reflect.construct:function(e,t,n){var r=[null];r.push.apply(r,t);var s=new(Function.bind.apply(e,r));return n&&c(s,n.prototype),s}).apply(null,arguments)}function a(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Date.prototype.toString.call(Reflect.construct(Date,[],function(){})),!0}catch(e){return!1}}function c(e,t){return(c=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}function h(e){return(h=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}var d=function(e){i(n,l(Error));var t=o(n);function n(e,r){var i;return s(this,n),(i=t.call(this)).code=1,i.name="CONFIGURATION_ERROR",i.parameter=e,i.value=r,i.message=i.value?"Invalid value ".concat(JSON.stringify(i.value),' for parameter "').concat(i.parameter,'"'):"Missing parameter: ".concat(i.parameter),i}return n}(),f=function(e){i(n,l(Error));var t=o(n);function n(e){var r;return s(this,n),(r=t.call(this)).code=2,r.name="INVALID_STATE_ERROR",r.status=e,r.message="Invalid status: ".concat(e),r}return n}(),_=function(e){i(n,l(Error));var t=o(n);function n(e){var r;return s(this,n),(r=t.call(this)).code=3,r.name="NOT_SUPPORTED_ERROR",r.message=e,r}return n}(),p=function(e){i(n,l(Error));var t=o(n);function n(e){var r;return s(this,n),(r=t.call(this)).code=4,r.name="NOT_READY_ERROR",r.message=e,r}return n}();t.exports={ConfigurationError:d,InvalidStateError:f,NotSupportedError:_,NotReadyError:p}},{}],7:[function(e,t,n){"use strict";t.exports=function(){function t(e){return'"'+e.replace(/\\/g,"\\\\").replace(/"/g,'\\"').replace(/\x08/g,"\\b").replace(/\t/g,"\\t").replace(/\n/g,"\\n").replace(/\f/g,"\\f").replace(/\r/g,"\\r").replace(/[\x00-\x07\x0B\x0E-\x1F\x80-\uFFFF]/g,escape)+'"'}var n={parse:function(n,r){var s={CRLF:c,DIGIT:h,ALPHA:d,HEXDIG:f,WSP:_,OCTET:p,DQUOTE:m,SP:v,HTAB:g,alphanum:y,reserved:T,unreserved:C,mark:b,escaped:S,LWS:E,SWS:A,HCOLON:R,TEXT_UTF8_TRIM:w,TEXT_UTF8char:I,UTF8_NONASCII:O,UTF8_CONT:k,LHEX:function(){var e;null===(e=h())&&(/^[a-f]/.test(n.charAt(i))?(e=n.charAt(i),i++):(e=null,0===o&&a("[a-f]")));return e},token:N,token_nodot:D,separators:function(){var e;40===n.charCodeAt(i)?(e="(",i++):(e=null,0===o&&a('"("'));null===e&&(41===n.charCodeAt(i)?(e=")",i++):(e=null,0===o&&a('")"')),null===e&&(60===n.charCodeAt(i)?(e="<",i++):(e=null,0===o&&a('"<"')),null===e&&(62===n.charCodeAt(i)?(e=">",i++):(e=null,0===o&&a('">"')),null===e&&(64===n.charCodeAt(i)?(e="@",i++):(e=null,0===o&&a('"@"')),null===e&&(44===n.charCodeAt(i)?(e=",",i++):(e=null,0===o&&a('","')),null===e&&(59===n.charCodeAt(i)?(e=";",i++):(e=null,0===o&&a('";"')),null===e&&(58===n.charCodeAt(i)?(e=":",i++):(e=null,0===o&&a('":"')),null===e&&(92===n.charCodeAt(i)?(e="\\",i++):(e=null,0===o&&a('"\\\\"')),null===e&&null===(e=m())&&(47===n.charCodeAt(i)?(e="/",i++):(e=null,0===o&&a('"/"')),null===e&&(91===n.charCodeAt(i)?(e="[",i++):(e=null,0===o&&a('"["')),null===e&&(93===n.charCodeAt(i)?(e="]",i++):(e=null,0===o&&a('"]"')),null===e&&(63===n.charCodeAt(i)?(e="?",i++):(e=null,0===o&&a('"?"')),null===e&&(61===n.charCodeAt(i)?(e="=",i++):(e=null,0===o&&a('"="')),null===e&&(123===n.charCodeAt(i)?(e="{",i++):(e=null,0===o&&a('"{"')),null===e&&(125===n.charCodeAt(i)?(e="}",i++):(e=null,0===o&&a('"}"')),null===e&&null===(e=v())&&(e=g()))))))))))))))));return e},word:U,STAR:x,SLASH:P,EQUAL:M,LPAREN:q,RPAREN:L,RAQUOT:H,LAQUOT:F,COMMA:j,SEMI:G,COLON:W,LDQUOT:V,RDQUOT:B,comment:function e(){var t,n,r;var s;s=i;t=q();if(null!==t){for(n=[],null===(r=K())&&null===(r=X())&&(r=e());null!==r;)n.push(r),null===(r=K())&&null===(r=X())&&(r=e());null!==n&&null!==(r=L())?t=[t,n,r]:(t=null,i=s)}else t=null,i=s;return t},ctext:K,quoted_string:z,quoted_string_clean:Y,qdtext:$,quoted_pair:X,SIP_URI_noparams:J,SIP_URI:Q,uri_scheme:Z,uri_scheme_sips:ee,uri_scheme_sip:te,userinfo:ne,user:re,user_unreserved:se,password:ie,hostport:oe,host:le,hostname:ue,domainlabel:ae,toplabel:ce,IPv6reference:he,IPv6address:de,h16:fe,ls32:_e,IPv4address:pe,dec_octet:me,port:ve,uri_parameters:ge,uri_parameter:ye,transport_param:Te,user_param:Ce,method_param:be,ttl_param:Se,maddr_param:Ee,lr_param:Ae,other_param:Re,pname:we,pvalue:Ie,paramchar:Oe,param_unreserved:ke,headers:Ne,header:De,hname:Ue,hvalue:xe,hnv_unreserved:Pe,Request_Response:function(){var e;null===(e=ht())&&(e=Me());return e},Request_Line:Me,Request_URI:qe,absoluteURI:Le,hier_part:He,net_path:Fe,abs_path:je,opaque_part:Ge,uric:We,uric_no_slash:Ve,path_segments:Be,segment:Ke,param:ze,pchar:Ye,scheme:$e,authority:Xe,srvr:Je,reg_name:Qe,query:Ze,SIP_Version:et,INVITEm:tt,ACKm:nt,OPTIONSm:rt,BYEm:st,CANCELm:it,REGISTERm:ot,SUBSCRIBEm:lt,NOTIFYm:ut,REFERm:at,Method:ct,Status_Line:ht,Status_Code:dt,extension_code:ft,Reason_Phrase:_t,Allow_Events:function(){var e,t,n,r,s,o;if(s=i,null!==(e=Lt())){for(t=[],o=i,null!==(n=j())&&null!==(r=Lt())?n=[n,r]:(n=null,i=o);null!==n;)t.push(n),o=i,null!==(n=j())&&null!==(r=Lt())?n=[n,r]:(n=null,i=o);null!==t?e=[e,t]:(e=null,i=s)}else e=null,i=s;return e},Call_ID:function(){var e,t,r,s,l,u;s=i,l=i,null!==(e=U())?(u=i,64===n.charCodeAt(i)?(t="@",i++):(t=null,0===o&&a('"@"')),null!==t&&null!==(r=U())?t=[t,r]:(t=null,i=u),null!==(t=null!==t?t:"")?e=[e,t]:(e=null,i=l)):(e=null,i=l);null!==e&&(c=s,e=void(jn=n.substring(i,c)));var c;null===e&&(i=s);return e},Contact:function(){var e,t,n,r,s,o,l;if(s=i,null===(e=x()))if(o=i,null!==(e=pt())){for(t=[],l=i,null!==(n=j())&&null!==(r=pt())?n=[n,r]:(n=null,i=l);null!==n;)t.push(n),l=i,null!==(n=j())&&null!==(r=pt())?n=[n,r]:(n=null,i=l);null!==t?e=[e,t]:(e=null,i=o)}else e=null,i=o;null!==e&&(e=function(e){var t,n;for(n=jn.multi_header.length,t=0;tl&&(l=i,u=[]),u.push(e))}function c(){var e;return"\r\n"===n.substr(i,2)?(e="\r\n",i+=2):(e=null,0===o&&a('"\\r\\n"')),e}function h(){var e;return/^[0-9]/.test(n.charAt(i))?(e=n.charAt(i),i++):(e=null,0===o&&a("[0-9]")),e}function d(){var e;return/^[a-zA-Z]/.test(n.charAt(i))?(e=n.charAt(i),i++):(e=null,0===o&&a("[a-zA-Z]")),e}function f(){var e;return/^[0-9a-fA-F]/.test(n.charAt(i))?(e=n.charAt(i),i++):(e=null,0===o&&a("[0-9a-fA-F]")),e}function _(){var e;return null===(e=v())&&(e=g()),e}function p(){var e;return/^[\0-\xFF]/.test(n.charAt(i))?(e=n.charAt(i),i++):(e=null,0===o&&a("[\\0-\\xFF]")),e}function m(){var e;return/^["]/.test(n.charAt(i))?(e=n.charAt(i),i++):(e=null,0===o&&a('["]')),e}function v(){var e;return 32===n.charCodeAt(i)?(e=" ",i++):(e=null,0===o&&a('" "')),e}function g(){var e;return 9===n.charCodeAt(i)?(e="\t",i++):(e=null,0===o&&a('"\\t"')),e}function y(){var e;return/^[a-zA-Z0-9]/.test(n.charAt(i))?(e=n.charAt(i),i++):(e=null,0===o&&a("[a-zA-Z0-9]")),e}function T(){var e;return 59===n.charCodeAt(i)?(e=";",i++):(e=null,0===o&&a('";"')),null===e&&(47===n.charCodeAt(i)?(e="/",i++):(e=null,0===o&&a('"/"')),null===e&&(63===n.charCodeAt(i)?(e="?",i++):(e=null,0===o&&a('"?"')),null===e&&(58===n.charCodeAt(i)?(e=":",i++):(e=null,0===o&&a('":"')),null===e&&(64===n.charCodeAt(i)?(e="@",i++):(e=null,0===o&&a('"@"')),null===e&&(38===n.charCodeAt(i)?(e="&",i++):(e=null,0===o&&a('"&"')),null===e&&(61===n.charCodeAt(i)?(e="=",i++):(e=null,0===o&&a('"="')),null===e&&(43===n.charCodeAt(i)?(e="+",i++):(e=null,0===o&&a('"+"')),null===e&&(36===n.charCodeAt(i)?(e="$",i++):(e=null,0===o&&a('"$"')),null===e&&(44===n.charCodeAt(i)?(e=",",i++):(e=null,0===o&&a('","'))))))))))),e}function C(){var e;return null===(e=y())&&(e=b()),e}function b(){var e;return 45===n.charCodeAt(i)?(e="-",i++):(e=null,0===o&&a('"-"')),null===e&&(95===n.charCodeAt(i)?(e="_",i++):(e=null,0===o&&a('"_"')),null===e&&(46===n.charCodeAt(i)?(e=".",i++):(e=null,0===o&&a('"."')),null===e&&(33===n.charCodeAt(i)?(e="!",i++):(e=null,0===o&&a('"!"')),null===e&&(126===n.charCodeAt(i)?(e="~",i++):(e=null,0===o&&a('"~"')),null===e&&(42===n.charCodeAt(i)?(e="*",i++):(e=null,0===o&&a('"*"')),null===e&&(39===n.charCodeAt(i)?(e="'",i++):(e=null,0===o&&a('"\'"')),null===e&&(40===n.charCodeAt(i)?(e="(",i++):(e=null,0===o&&a('"("')),null===e&&(41===n.charCodeAt(i)?(e=")",i++):(e=null,0===o&&a('")"')))))))))),e}function S(){var e,t,r,s,l;return s=i,l=i,37===n.charCodeAt(i)?(e="%",i++):(e=null,0===o&&a('"%"')),null!==e&&null!==(t=f())&&null!==(r=f())?e=[e,t,r]:(e=null,i=l),null!==e&&(e=e.join("")),null===e&&(i=s),e}function E(){var e,t,n,r,s,o;for(r=i,s=i,o=i,e=[],t=_();null!==t;)e.push(t),t=_();if(null!==e&&null!==(t=c())?e=[e,t]:(e=null,i=o),null!==(e=null!==e?e:"")){if(null!==(n=_()))for(t=[];null!==n;)t.push(n),n=_();else t=null;null!==t?e=[e,t]:(e=null,i=s)}else e=null,i=s;return null!==e&&(e=" "),null===e&&(i=r),e}function A(){var e;return e=null!==(e=E())?e:""}function R(){var e,t,r,s,l;for(s=i,l=i,e=[],null===(t=v())&&(t=g());null!==t;)e.push(t),null===(t=v())&&(t=g());return null!==e?(58===n.charCodeAt(i)?(t=":",i++):(t=null,0===o&&a('":"')),null!==t&&null!==(r=A())?e=[e,t,r]:(e=null,i=l)):(e=null,i=l),null!==e&&(e=":"),null===e&&(i=s),e}function w(){var e,t,r,s,o,l,u,a;if(o=i,l=i,null!==(t=I()))for(e=[];null!==t;)e.push(t),t=I();else e=null;if(null!==e){for(t=[],u=i,r=[],s=E();null!==s;)r.push(s),s=E();for(null!==r&&null!==(s=I())?r=[r,s]:(r=null,i=u);null!==r;){for(t.push(r),u=i,r=[],s=E();null!==s;)r.push(s),s=E();null!==r&&null!==(s=I())?r=[r,s]:(r=null,i=u)}null!==t?e=[e,t]:(e=null,i=l)}else e=null,i=l;return null!==e&&(a=o,e=n.substring(i,a)),null===e&&(i=o),e}function I(){var e;return/^[!-~]/.test(n.charAt(i))?(e=n.charAt(i),i++):(e=null,0===o&&a("[!-~]")),null===e&&(e=O()),e}function O(){var e;return/^[\x80-\uFFFF]/.test(n.charAt(i))?(e=n.charAt(i),i++):(e=null,0===o&&a("[\\x80-\\uFFFF]")),e}function k(){var e;return/^[\x80-\xBF]/.test(n.charAt(i))?(e=n.charAt(i),i++):(e=null,0===o&&a("[\\x80-\\xBF]")),e}function N(){var e,t,r,s;if(r=i,null===(t=y())&&(45===n.charCodeAt(i)?(t="-",i++):(t=null,0===o&&a('"-"')),null===t&&(46===n.charCodeAt(i)?(t=".",i++):(t=null,0===o&&a('"."')),null===t&&(33===n.charCodeAt(i)?(t="!",i++):(t=null,0===o&&a('"!"')),null===t&&(37===n.charCodeAt(i)?(t="%",i++):(t=null,0===o&&a('"%"')),null===t&&(42===n.charCodeAt(i)?(t="*",i++):(t=null,0===o&&a('"*"')),null===t&&(95===n.charCodeAt(i)?(t="_",i++):(t=null,0===o&&a('"_"')),null===t&&(43===n.charCodeAt(i)?(t="+",i++):(t=null,0===o&&a('"+"')),null===t&&(96===n.charCodeAt(i)?(t="`",i++):(t=null,0===o&&a('"`"')),null===t&&(39===n.charCodeAt(i)?(t="'",i++):(t=null,0===o&&a('"\'"')),null===t&&(126===n.charCodeAt(i)?(t="~",i++):(t=null,0===o&&a('"~"')))))))))))),null!==t)for(e=[];null!==t;)e.push(t),null===(t=y())&&(45===n.charCodeAt(i)?(t="-",i++):(t=null,0===o&&a('"-"')),null===t&&(46===n.charCodeAt(i)?(t=".",i++):(t=null,0===o&&a('"."')),null===t&&(33===n.charCodeAt(i)?(t="!",i++):(t=null,0===o&&a('"!"')),null===t&&(37===n.charCodeAt(i)?(t="%",i++):(t=null,0===o&&a('"%"')),null===t&&(42===n.charCodeAt(i)?(t="*",i++):(t=null,0===o&&a('"*"')),null===t&&(95===n.charCodeAt(i)?(t="_",i++):(t=null,0===o&&a('"_"')),null===t&&(43===n.charCodeAt(i)?(t="+",i++):(t=null,0===o&&a('"+"')),null===t&&(96===n.charCodeAt(i)?(t="`",i++):(t=null,0===o&&a('"`"')),null===t&&(39===n.charCodeAt(i)?(t="'",i++):(t=null,0===o&&a('"\'"')),null===t&&(126===n.charCodeAt(i)?(t="~",i++):(t=null,0===o&&a('"~"'))))))))))));else e=null;return null!==e&&(s=r,e=n.substring(i,s)),null===e&&(i=r),e}function D(){var e,t,r,s;if(r=i,null===(t=y())&&(45===n.charCodeAt(i)?(t="-",i++):(t=null,0===o&&a('"-"')),null===t&&(33===n.charCodeAt(i)?(t="!",i++):(t=null,0===o&&a('"!"')),null===t&&(37===n.charCodeAt(i)?(t="%",i++):(t=null,0===o&&a('"%"')),null===t&&(42===n.charCodeAt(i)?(t="*",i++):(t=null,0===o&&a('"*"')),null===t&&(95===n.charCodeAt(i)?(t="_",i++):(t=null,0===o&&a('"_"')),null===t&&(43===n.charCodeAt(i)?(t="+",i++):(t=null,0===o&&a('"+"')),null===t&&(96===n.charCodeAt(i)?(t="`",i++):(t=null,0===o&&a('"`"')),null===t&&(39===n.charCodeAt(i)?(t="'",i++):(t=null,0===o&&a('"\'"')),null===t&&(126===n.charCodeAt(i)?(t="~",i++):(t=null,0===o&&a('"~"'))))))))))),null!==t)for(e=[];null!==t;)e.push(t),null===(t=y())&&(45===n.charCodeAt(i)?(t="-",i++):(t=null,0===o&&a('"-"')),null===t&&(33===n.charCodeAt(i)?(t="!",i++):(t=null,0===o&&a('"!"')),null===t&&(37===n.charCodeAt(i)?(t="%",i++):(t=null,0===o&&a('"%"')),null===t&&(42===n.charCodeAt(i)?(t="*",i++):(t=null,0===o&&a('"*"')),null===t&&(95===n.charCodeAt(i)?(t="_",i++):(t=null,0===o&&a('"_"')),null===t&&(43===n.charCodeAt(i)?(t="+",i++):(t=null,0===o&&a('"+"')),null===t&&(96===n.charCodeAt(i)?(t="`",i++):(t=null,0===o&&a('"`"')),null===t&&(39===n.charCodeAt(i)?(t="'",i++):(t=null,0===o&&a('"\'"')),null===t&&(126===n.charCodeAt(i)?(t="~",i++):(t=null,0===o&&a('"~"')))))))))));else e=null;return null!==e&&(s=r,e=n.substring(i,s)),null===e&&(i=r),e}function U(){var e,t,r,s;if(r=i,null===(t=y())&&(45===n.charCodeAt(i)?(t="-",i++):(t=null,0===o&&a('"-"')),null===t&&(46===n.charCodeAt(i)?(t=".",i++):(t=null,0===o&&a('"."')),null===t&&(33===n.charCodeAt(i)?(t="!",i++):(t=null,0===o&&a('"!"')),null===t&&(37===n.charCodeAt(i)?(t="%",i++):(t=null,0===o&&a('"%"')),null===t&&(42===n.charCodeAt(i)?(t="*",i++):(t=null,0===o&&a('"*"')),null===t&&(95===n.charCodeAt(i)?(t="_",i++):(t=null,0===o&&a('"_"')),null===t&&(43===n.charCodeAt(i)?(t="+",i++):(t=null,0===o&&a('"+"')),null===t&&(96===n.charCodeAt(i)?(t="`",i++):(t=null,0===o&&a('"`"')),null===t&&(39===n.charCodeAt(i)?(t="'",i++):(t=null,0===o&&a('"\'"')),null===t&&(126===n.charCodeAt(i)?(t="~",i++):(t=null,0===o&&a('"~"')),null===t&&(40===n.charCodeAt(i)?(t="(",i++):(t=null,0===o&&a('"("')),null===t&&(41===n.charCodeAt(i)?(t=")",i++):(t=null,0===o&&a('")"')),null===t&&(60===n.charCodeAt(i)?(t="<",i++):(t=null,0===o&&a('"<"')),null===t&&(62===n.charCodeAt(i)?(t=">",i++):(t=null,0===o&&a('">"')),null===t&&(58===n.charCodeAt(i)?(t=":",i++):(t=null,0===o&&a('":"')),null===t&&(92===n.charCodeAt(i)?(t="\\",i++):(t=null,0===o&&a('"\\\\"')),null===t&&null===(t=m())&&(47===n.charCodeAt(i)?(t="/",i++):(t=null,0===o&&a('"/"')),null===t&&(91===n.charCodeAt(i)?(t="[",i++):(t=null,0===o&&a('"["')),null===t&&(93===n.charCodeAt(i)?(t="]",i++):(t=null,0===o&&a('"]"')),null===t&&(63===n.charCodeAt(i)?(t="?",i++):(t=null,0===o&&a('"?"')),null===t&&(123===n.charCodeAt(i)?(t="{",i++):(t=null,0===o&&a('"{"')),null===t&&(125===n.charCodeAt(i)?(t="}",i++):(t=null,0===o&&a('"}"')))))))))))))))))))))))),null!==t)for(e=[];null!==t;)e.push(t),null===(t=y())&&(45===n.charCodeAt(i)?(t="-",i++):(t=null,0===o&&a('"-"')),null===t&&(46===n.charCodeAt(i)?(t=".",i++):(t=null,0===o&&a('"."')),null===t&&(33===n.charCodeAt(i)?(t="!",i++):(t=null,0===o&&a('"!"')),null===t&&(37===n.charCodeAt(i)?(t="%",i++):(t=null,0===o&&a('"%"')),null===t&&(42===n.charCodeAt(i)?(t="*",i++):(t=null,0===o&&a('"*"')),null===t&&(95===n.charCodeAt(i)?(t="_",i++):(t=null,0===o&&a('"_"')),null===t&&(43===n.charCodeAt(i)?(t="+",i++):(t=null,0===o&&a('"+"')),null===t&&(96===n.charCodeAt(i)?(t="`",i++):(t=null,0===o&&a('"`"')),null===t&&(39===n.charCodeAt(i)?(t="'",i++):(t=null,0===o&&a('"\'"')),null===t&&(126===n.charCodeAt(i)?(t="~",i++):(t=null,0===o&&a('"~"')),null===t&&(40===n.charCodeAt(i)?(t="(",i++):(t=null,0===o&&a('"("')),null===t&&(41===n.charCodeAt(i)?(t=")",i++):(t=null,0===o&&a('")"')),null===t&&(60===n.charCodeAt(i)?(t="<",i++):(t=null,0===o&&a('"<"')),null===t&&(62===n.charCodeAt(i)?(t=">",i++):(t=null,0===o&&a('">"')),null===t&&(58===n.charCodeAt(i)?(t=":",i++):(t=null,0===o&&a('":"')),null===t&&(92===n.charCodeAt(i)?(t="\\",i++):(t=null,0===o&&a('"\\\\"')),null===t&&null===(t=m())&&(47===n.charCodeAt(i)?(t="/",i++):(t=null,0===o&&a('"/"')),null===t&&(91===n.charCodeAt(i)?(t="[",i++):(t=null,0===o&&a('"["')),null===t&&(93===n.charCodeAt(i)?(t="]",i++):(t=null,0===o&&a('"]"')),null===t&&(63===n.charCodeAt(i)?(t="?",i++):(t=null,0===o&&a('"?"')),null===t&&(123===n.charCodeAt(i)?(t="{",i++):(t=null,0===o&&a('"{"')),null===t&&(125===n.charCodeAt(i)?(t="}",i++):(t=null,0===o&&a('"}"'))))))))))))))))))))))));else e=null;return null!==e&&(s=r,e=n.substring(i,s)),null===e&&(i=r),e}function x(){var e,t,r,s,l;return s=i,l=i,null!==(e=A())?(42===n.charCodeAt(i)?(t="*",i++):(t=null,0===o&&a('"*"')),null!==t&&null!==(r=A())?e=[e,t,r]:(e=null,i=l)):(e=null,i=l),null!==e&&(e="*"),null===e&&(i=s),e}function P(){var e,t,r,s,l;return s=i,l=i,null!==(e=A())?(47===n.charCodeAt(i)?(t="/",i++):(t=null,0===o&&a('"/"')),null!==t&&null!==(r=A())?e=[e,t,r]:(e=null,i=l)):(e=null,i=l),null!==e&&(e="/"),null===e&&(i=s),e}function M(){var e,t,r,s,l;return s=i,l=i,null!==(e=A())?(61===n.charCodeAt(i)?(t="=",i++):(t=null,0===o&&a('"="')),null!==t&&null!==(r=A())?e=[e,t,r]:(e=null,i=l)):(e=null,i=l),null!==e&&(e="="),null===e&&(i=s),e}function q(){var e,t,r,s,l;return s=i,l=i,null!==(e=A())?(40===n.charCodeAt(i)?(t="(",i++):(t=null,0===o&&a('"("')),null!==t&&null!==(r=A())?e=[e,t,r]:(e=null,i=l)):(e=null,i=l),null!==e&&(e="("),null===e&&(i=s),e}function L(){var e,t,r,s,l;return s=i,l=i,null!==(e=A())?(41===n.charCodeAt(i)?(t=")",i++):(t=null,0===o&&a('")"')),null!==t&&null!==(r=A())?e=[e,t,r]:(e=null,i=l)):(e=null,i=l),null!==e&&(e=")"),null===e&&(i=s),e}function H(){var e,t,r,s;return r=i,s=i,62===n.charCodeAt(i)?(e=">",i++):(e=null,0===o&&a('">"')),null!==e&&null!==(t=A())?e=[e,t]:(e=null,i=s),null!==e&&(e=">"),null===e&&(i=r),e}function F(){var e,t,r,s;return r=i,s=i,null!==(e=A())?(60===n.charCodeAt(i)?(t="<",i++):(t=null,0===o&&a('"<"')),null!==t?e=[e,t]:(e=null,i=s)):(e=null,i=s),null!==e&&(e="<"),null===e&&(i=r),e}function j(){var e,t,r,s,l;return s=i,l=i,null!==(e=A())?(44===n.charCodeAt(i)?(t=",",i++):(t=null,0===o&&a('","')),null!==t&&null!==(r=A())?e=[e,t,r]:(e=null,i=l)):(e=null,i=l),null!==e&&(e=","),null===e&&(i=s),e}function G(){var e,t,r,s,l;return s=i,l=i,null!==(e=A())?(59===n.charCodeAt(i)?(t=";",i++):(t=null,0===o&&a('";"')),null!==t&&null!==(r=A())?e=[e,t,r]:(e=null,i=l)):(e=null,i=l),null!==e&&(e=";"),null===e&&(i=s),e}function W(){var e,t,r,s,l;return s=i,l=i,null!==(e=A())?(58===n.charCodeAt(i)?(t=":",i++):(t=null,0===o&&a('":"')),null!==t&&null!==(r=A())?e=[e,t,r]:(e=null,i=l)):(e=null,i=l),null!==e&&(e=":"),null===e&&(i=s),e}function V(){var e,t,n,r;return n=i,r=i,null!==(e=A())&&null!==(t=m())?e=[e,t]:(e=null,i=r),null!==e&&(e='"'),null===e&&(i=n),e}function B(){var e,t,n,r;return n=i,r=i,null!==(e=m())&&null!==(t=A())?e=[e,t]:(e=null,i=r),null!==e&&(e='"'),null===e&&(i=n),e}function K(){var e;return/^[!-']/.test(n.charAt(i))?(e=n.charAt(i),i++):(e=null,0===o&&a("[!-']")),null===e&&(/^[*-[]/.test(n.charAt(i))?(e=n.charAt(i),i++):(e=null,0===o&&a("[*-[]")),null===e&&(/^[\]-~]/.test(n.charAt(i))?(e=n.charAt(i),i++):(e=null,0===o&&a("[\\]-~]")),null===e&&null===(e=O())&&(e=E()))),e}function z(){var e,t,r,s,o,l,u;if(o=i,l=i,null!==(e=A()))if(null!==(t=m())){for(r=[],null===(s=$())&&(s=X());null!==s;)r.push(s),null===(s=$())&&(s=X());null!==r&&null!==(s=m())?e=[e,t,r,s]:(e=null,i=l)}else e=null,i=l;else e=null,i=l;return null!==e&&(u=o,e=n.substring(i,u)),null===e&&(i=o),e}function Y(){var e,t,r,s,o,l,u,a;if(o=i,l=i,null!==(e=A()))if(null!==(t=m())){for(r=[],null===(s=$())&&(s=X());null!==s;)r.push(s),null===(s=$())&&(s=X());null!==r&&null!==(s=m())?e=[e,t,r,s]:(e=null,i=l)}else e=null,i=l;else e=null,i=l;return null!==e&&(u=o,e=(a=n.substring(i,u).trim()).substring(1,a.length-1).replace(/\\([\x00-\x09\x0b-\x0c\x0e-\x7f])/g,"$1")),null===e&&(i=o),e}function $(){var e;return null===(e=E())&&(33===n.charCodeAt(i)?(e="!",i++):(e=null,0===o&&a('"!"')),null===e&&(/^[#-[]/.test(n.charAt(i))?(e=n.charAt(i),i++):(e=null,0===o&&a("[#-[]")),null===e&&(/^[\]-~]/.test(n.charAt(i))?(e=n.charAt(i),i++):(e=null,0===o&&a("[\\]-~]")),null===e&&(e=O())))),e}function X(){var e,t,r;return r=i,92===n.charCodeAt(i)?(e="\\",i++):(e=null,0===o&&a('"\\\\"')),null!==e?(/^[\0-\t]/.test(n.charAt(i))?(t=n.charAt(i),i++):(t=null,0===o&&a("[\\0-\\t]")),null===t&&(/^[\x0B-\f]/.test(n.charAt(i))?(t=n.charAt(i),i++):(t=null,0===o&&a("[\\x0B-\\f]")),null===t&&(/^[\x0E-]/.test(n.charAt(i))?(t=n.charAt(i),i++):(t=null,0===o&&a("[\\x0E-]")))),null!==t?e=[e,t]:(e=null,i=r)):(e=null,i=r),e}function J(){var e,t,r,s,l,u;return l=i,u=i,null!==(e=Z())?(58===n.charCodeAt(i)?(t=":",i++):(t=null,0===o&&a('":"')),null!==t&&null!==(r=null!==(r=ne())?r:"")&&null!==(s=oe())?e=[e,t,r,s]:(e=null,i=u)):(e=null,i=u),null!==e&&(e=function(e){try{jn.uri=new Hn(jn.scheme,jn.user,jn.host,jn.port),delete jn.scheme,delete jn.user,delete jn.host,delete jn.host_type,delete jn.port}catch(e){jn=-1}}()),null===e&&(i=l),e}function Q(){var e,t,s,l,u,c,h,d;return h=i,d=i,null!==(e=Z())?(58===n.charCodeAt(i)?(t=":",i++):(t=null,0===o&&a('":"')),null!==t&&null!==(s=null!==(s=ne())?s:"")&&null!==(l=oe())&&null!==(u=ge())&&null!==(c=null!==(c=Ne())?c:"")?e=[e,t,s,l,u,c]:(e=null,i=d)):(e=null,i=d),null!==e&&(e=function(e){try{jn.uri=new Hn(jn.scheme,jn.user,jn.host,jn.port,jn.uri_params,jn.uri_headers),delete jn.scheme,delete jn.user,delete jn.host,delete jn.host_type,delete jn.port,delete jn.uri_params,"SIP_URI"===r&&(jn=jn.uri)}catch(e){jn=-1}}()),null===e&&(i=h),e}function Z(){var e;return null===(e=ee())&&(e=te()),e}function ee(){var e,t,r;return t=i,"sips"===n.substr(i,4).toLowerCase()?(e=n.substr(i,4),i+=4):(e=null,0===o&&a('"sips"')),null!==e&&(r=e,e=void(jn.scheme=r.toLowerCase())),null===e&&(i=t),e}function te(){var e,t,r;return t=i,"sip"===n.substr(i,3).toLowerCase()?(e=n.substr(i,3),i+=3):(e=null,0===o&&a('"sip"')),null!==e&&(r=e,e=void(jn.scheme=r.toLowerCase())),null===e&&(i=t),e}function ne(){var e,t,r,s,l,u,c;return s=i,l=i,null!==(e=re())?(u=i,58===n.charCodeAt(i)?(t=":",i++):(t=null,0===o&&a('":"')),null!==t&&null!==(r=ie())?t=[t,r]:(t=null,i=u),null!==(t=null!==t?t:"")?(64===n.charCodeAt(i)?(r="@",i++):(r=null,0===o&&a('"@"')),null!==r?e=[e,t,r]:(e=null,i=l)):(e=null,i=l)):(e=null,i=l),null!==e&&(c=s,e=void(jn.user=decodeURIComponent(n.substring(i-1,c)))),null===e&&(i=s),e}function re(){var e,t;if(null===(t=C())&&null===(t=S())&&(t=se()),null!==t)for(e=[];null!==t;)e.push(t),null===(t=C())&&null===(t=S())&&(t=se());else e=null;return e}function se(){var e;return 38===n.charCodeAt(i)?(e="&",i++):(e=null,0===o&&a('"&"')),null===e&&(61===n.charCodeAt(i)?(e="=",i++):(e=null,0===o&&a('"="')),null===e&&(43===n.charCodeAt(i)?(e="+",i++):(e=null,0===o&&a('"+"')),null===e&&(36===n.charCodeAt(i)?(e="$",i++):(e=null,0===o&&a('"$"')),null===e&&(44===n.charCodeAt(i)?(e=",",i++):(e=null,0===o&&a('","')),null===e&&(59===n.charCodeAt(i)?(e=";",i++):(e=null,0===o&&a('";"')),null===e&&(63===n.charCodeAt(i)?(e="?",i++):(e=null,0===o&&a('"?"')),null===e&&(47===n.charCodeAt(i)?(e="/",i++):(e=null,0===o&&a('"/"'))))))))),e}function ie(){var e,t,r,s;for(r=i,e=[],null===(t=C())&&null===(t=S())&&(38===n.charCodeAt(i)?(t="&",i++):(t=null,0===o&&a('"&"')),null===t&&(61===n.charCodeAt(i)?(t="=",i++):(t=null,0===o&&a('"="')),null===t&&(43===n.charCodeAt(i)?(t="+",i++):(t=null,0===o&&a('"+"')),null===t&&(36===n.charCodeAt(i)?(t="$",i++):(t=null,0===o&&a('"$"')),null===t&&(44===n.charCodeAt(i)?(t=",",i++):(t=null,0===o&&a('","')))))));null!==t;)e.push(t),null===(t=C())&&null===(t=S())&&(38===n.charCodeAt(i)?(t="&",i++):(t=null,0===o&&a('"&"')),null===t&&(61===n.charCodeAt(i)?(t="=",i++):(t=null,0===o&&a('"="')),null===t&&(43===n.charCodeAt(i)?(t="+",i++):(t=null,0===o&&a('"+"')),null===t&&(36===n.charCodeAt(i)?(t="$",i++):(t=null,0===o&&a('"$"')),null===t&&(44===n.charCodeAt(i)?(t=",",i++):(t=null,0===o&&a('","')))))));return null!==e&&(s=r,e=void(jn.password=n.substring(i,s))),null===e&&(i=r),e}function oe(){var e,t,r,s,l;return s=i,null!==(e=le())?(l=i,58===n.charCodeAt(i)?(t=":",i++):(t=null,0===o&&a('":"')),null!==t&&null!==(r=ve())?t=[t,r]:(t=null,i=l),null!==(t=null!==t?t:"")?e=[e,t]:(e=null,i=s)):(e=null,i=s),e}function le(){var e,t,r;return t=i,null===(e=ue())&&null===(e=pe())&&(e=he()),null!==e&&(r=t,jn.host=n.substring(i,r).toLowerCase(),e=jn.host),null===e&&(i=t),e}function ue(){var e,t,r,s,l,u,c;for(s=i,l=i,e=[],u=i,null!==(t=ae())?(46===n.charCodeAt(i)?(r=".",i++):(r=null,0===o&&a('"."')),null!==r?t=[t,r]:(t=null,i=u)):(t=null,i=u);null!==t;)e.push(t),u=i,null!==(t=ae())?(46===n.charCodeAt(i)?(r=".",i++):(r=null,0===o&&a('"."')),null!==r?t=[t,r]:(t=null,i=u)):(t=null,i=u);return null!==e&&null!==(t=ce())?(46===n.charCodeAt(i)?(r=".",i++):(r=null,0===o&&a('"."')),null!==(r=null!==r?r:"")?e=[e,t,r]:(e=null,i=l)):(e=null,i=l),null!==e&&(c=s,jn.host_type="domain",e=n.substring(i,c)),null===e&&(i=s),e}function ae(){var e,t,r,s;if(s=i,null!==(e=y())){for(t=[],null===(r=y())&&(45===n.charCodeAt(i)?(r="-",i++):(r=null,0===o&&a('"-"')),null===r&&(95===n.charCodeAt(i)?(r="_",i++):(r=null,0===o&&a('"_"'))));null!==r;)t.push(r),null===(r=y())&&(45===n.charCodeAt(i)?(r="-",i++):(r=null,0===o&&a('"-"')),null===r&&(95===n.charCodeAt(i)?(r="_",i++):(r=null,0===o&&a('"_"'))));null!==t?e=[e,t]:(e=null,i=s)}else e=null,i=s;return e}function ce(){var e,t,r,s;if(s=i,null!==(e=d())){for(t=[],null===(r=y())&&(45===n.charCodeAt(i)?(r="-",i++):(r=null,0===o&&a('"-"')),null===r&&(95===n.charCodeAt(i)?(r="_",i++):(r=null,0===o&&a('"_"'))));null!==r;)t.push(r),null===(r=y())&&(45===n.charCodeAt(i)?(r="-",i++):(r=null,0===o&&a('"-"')),null===r&&(95===n.charCodeAt(i)?(r="_",i++):(r=null,0===o&&a('"_"'))));null!==t?e=[e,t]:(e=null,i=s)}else e=null,i=s;return e}function he(){var e,t,r,s,l,u;return s=i,l=i,91===n.charCodeAt(i)?(e="[",i++):(e=null,0===o&&a('"["')),null!==e&&null!==(t=de())?(93===n.charCodeAt(i)?(r="]",i++):(r=null,0===o&&a('"]"')),null!==r?e=[e,t,r]:(e=null,i=l)):(e=null,i=l),null!==e&&(u=s,jn.host_type="IPv6",e=n.substring(i,u)),null===e&&(i=s),e}function de(){var e,t,r,s,l,u,c,h,d,f,_,p,m,v,g,y,T;return v=i,g=i,null!==(e=fe())?(58===n.charCodeAt(i)?(t=":",i++):(t=null,0===o&&a('":"')),null!==t&&null!==(r=fe())?(58===n.charCodeAt(i)?(s=":",i++):(s=null,0===o&&a('":"')),null!==s&&null!==(l=fe())?(58===n.charCodeAt(i)?(u=":",i++):(u=null,0===o&&a('":"')),null!==u&&null!==(c=fe())?(58===n.charCodeAt(i)?(h=":",i++):(h=null,0===o&&a('":"')),null!==h&&null!==(d=fe())?(58===n.charCodeAt(i)?(f=":",i++):(f=null,0===o&&a('":"')),null!==f&&null!==(_=fe())?(58===n.charCodeAt(i)?(p=":",i++):(p=null,0===o&&a('":"')),null!==p&&null!==(m=_e())?e=[e,t,r,s,l,u,c,h,d,f,_,p,m]:(e=null,i=g)):(e=null,i=g)):(e=null,i=g)):(e=null,i=g)):(e=null,i=g)):(e=null,i=g)):(e=null,i=g),null===e&&(g=i,"::"===n.substr(i,2)?(e="::",i+=2):(e=null,0===o&&a('"::"')),null!==e&&null!==(t=fe())?(58===n.charCodeAt(i)?(r=":",i++):(r=null,0===o&&a('":"')),null!==r&&null!==(s=fe())?(58===n.charCodeAt(i)?(l=":",i++):(l=null,0===o&&a('":"')),null!==l&&null!==(u=fe())?(58===n.charCodeAt(i)?(c=":",i++):(c=null,0===o&&a('":"')),null!==c&&null!==(h=fe())?(58===n.charCodeAt(i)?(d=":",i++):(d=null,0===o&&a('":"')),null!==d&&null!==(f=fe())?(58===n.charCodeAt(i)?(_=":",i++):(_=null,0===o&&a('":"')),null!==_&&null!==(p=_e())?e=[e,t,r,s,l,u,c,h,d,f,_,p]:(e=null,i=g)):(e=null,i=g)):(e=null,i=g)):(e=null,i=g)):(e=null,i=g)):(e=null,i=g),null===e&&(g=i,"::"===n.substr(i,2)?(e="::",i+=2):(e=null,0===o&&a('"::"')),null!==e&&null!==(t=fe())?(58===n.charCodeAt(i)?(r=":",i++):(r=null,0===o&&a('":"')),null!==r&&null!==(s=fe())?(58===n.charCodeAt(i)?(l=":",i++):(l=null,0===o&&a('":"')),null!==l&&null!==(u=fe())?(58===n.charCodeAt(i)?(c=":",i++):(c=null,0===o&&a('":"')),null!==c&&null!==(h=fe())?(58===n.charCodeAt(i)?(d=":",i++):(d=null,0===o&&a('":"')),null!==d&&null!==(f=_e())?e=[e,t,r,s,l,u,c,h,d,f]:(e=null,i=g)):(e=null,i=g)):(e=null,i=g)):(e=null,i=g)):(e=null,i=g),null===e&&(g=i,"::"===n.substr(i,2)?(e="::",i+=2):(e=null,0===o&&a('"::"')),null!==e&&null!==(t=fe())?(58===n.charCodeAt(i)?(r=":",i++):(r=null,0===o&&a('":"')),null!==r&&null!==(s=fe())?(58===n.charCodeAt(i)?(l=":",i++):(l=null,0===o&&a('":"')),null!==l&&null!==(u=fe())?(58===n.charCodeAt(i)?(c=":",i++):(c=null,0===o&&a('":"')),null!==c&&null!==(h=_e())?e=[e,t,r,s,l,u,c,h]:(e=null,i=g)):(e=null,i=g)):(e=null,i=g)):(e=null,i=g),null===e&&(g=i,"::"===n.substr(i,2)?(e="::",i+=2):(e=null,0===o&&a('"::"')),null!==e&&null!==(t=fe())?(58===n.charCodeAt(i)?(r=":",i++):(r=null,0===o&&a('":"')),null!==r&&null!==(s=fe())?(58===n.charCodeAt(i)?(l=":",i++):(l=null,0===o&&a('":"')),null!==l&&null!==(u=_e())?e=[e,t,r,s,l,u]:(e=null,i=g)):(e=null,i=g)):(e=null,i=g),null===e&&(g=i,"::"===n.substr(i,2)?(e="::",i+=2):(e=null,0===o&&a('"::"')),null!==e&&null!==(t=fe())?(58===n.charCodeAt(i)?(r=":",i++):(r=null,0===o&&a('":"')),null!==r&&null!==(s=_e())?e=[e,t,r,s]:(e=null,i=g)):(e=null,i=g),null===e&&(g=i,"::"===n.substr(i,2)?(e="::",i+=2):(e=null,0===o&&a('"::"')),null!==e&&null!==(t=_e())?e=[e,t]:(e=null,i=g),null===e&&(g=i,"::"===n.substr(i,2)?(e="::",i+=2):(e=null,0===o&&a('"::"')),null!==e&&null!==(t=fe())?e=[e,t]:(e=null,i=g),null===e&&(g=i,null!==(e=fe())?("::"===n.substr(i,2)?(t="::",i+=2):(t=null,0===o&&a('"::"')),null!==t&&null!==(r=fe())?(58===n.charCodeAt(i)?(s=":",i++):(s=null,0===o&&a('":"')),null!==s&&null!==(l=fe())?(58===n.charCodeAt(i)?(u=":",i++):(u=null,0===o&&a('":"')),null!==u&&null!==(c=fe())?(58===n.charCodeAt(i)?(h=":",i++):(h=null,0===o&&a('":"')),null!==h&&null!==(d=fe())?(58===n.charCodeAt(i)?(f=":",i++):(f=null,0===o&&a('":"')),null!==f&&null!==(_=_e())?e=[e,t,r,s,l,u,c,h,d,f,_]:(e=null,i=g)):(e=null,i=g)):(e=null,i=g)):(e=null,i=g)):(e=null,i=g)):(e=null,i=g),null===e&&(g=i,null!==(e=fe())?(y=i,58===n.charCodeAt(i)?(t=":",i++):(t=null,0===o&&a('":"')),null!==t&&null!==(r=fe())?t=[t,r]:(t=null,i=y),null!==(t=null!==t?t:"")?("::"===n.substr(i,2)?(r="::",i+=2):(r=null,0===o&&a('"::"')),null!==r&&null!==(s=fe())?(58===n.charCodeAt(i)?(l=":",i++):(l=null,0===o&&a('":"')),null!==l&&null!==(u=fe())?(58===n.charCodeAt(i)?(c=":",i++):(c=null,0===o&&a('":"')),null!==c&&null!==(h=fe())?(58===n.charCodeAt(i)?(d=":",i++):(d=null,0===o&&a('":"')),null!==d&&null!==(f=_e())?e=[e,t,r,s,l,u,c,h,d,f]:(e=null,i=g)):(e=null,i=g)):(e=null,i=g)):(e=null,i=g)):(e=null,i=g)):(e=null,i=g),null===e&&(g=i,null!==(e=fe())?(y=i,58===n.charCodeAt(i)?(t=":",i++):(t=null,0===o&&a('":"')),null!==t&&null!==(r=fe())?t=[t,r]:(t=null,i=y),null!==(t=null!==t?t:"")?(y=i,58===n.charCodeAt(i)?(r=":",i++):(r=null,0===o&&a('":"')),null!==r&&null!==(s=fe())?r=[r,s]:(r=null,i=y),null!==(r=null!==r?r:"")?("::"===n.substr(i,2)?(s="::",i+=2):(s=null,0===o&&a('"::"')),null!==s&&null!==(l=fe())?(58===n.charCodeAt(i)?(u=":",i++):(u=null,0===o&&a('":"')),null!==u&&null!==(c=fe())?(58===n.charCodeAt(i)?(h=":",i++):(h=null,0===o&&a('":"')),null!==h&&null!==(d=_e())?e=[e,t,r,s,l,u,c,h,d]:(e=null,i=g)):(e=null,i=g)):(e=null,i=g)):(e=null,i=g)):(e=null,i=g)):(e=null,i=g),null===e&&(g=i,null!==(e=fe())?(y=i,58===n.charCodeAt(i)?(t=":",i++):(t=null,0===o&&a('":"')),null!==t&&null!==(r=fe())?t=[t,r]:(t=null,i=y),null!==(t=null!==t?t:"")?(y=i,58===n.charCodeAt(i)?(r=":",i++):(r=null,0===o&&a('":"')),null!==r&&null!==(s=fe())?r=[r,s]:(r=null,i=y),null!==(r=null!==r?r:"")?(y=i,58===n.charCodeAt(i)?(s=":",i++):(s=null,0===o&&a('":"')),null!==s&&null!==(l=fe())?s=[s,l]:(s=null,i=y),null!==(s=null!==s?s:"")?("::"===n.substr(i,2)?(l="::",i+=2):(l=null,0===o&&a('"::"')),null!==l&&null!==(u=fe())?(58===n.charCodeAt(i)?(c=":",i++):(c=null,0===o&&a('":"')),null!==c&&null!==(h=_e())?e=[e,t,r,s,l,u,c,h]:(e=null,i=g)):(e=null,i=g)):(e=null,i=g)):(e=null,i=g)):(e=null,i=g)):(e=null,i=g),null===e&&(g=i,null!==(e=fe())?(y=i,58===n.charCodeAt(i)?(t=":",i++):(t=null,0===o&&a('":"')),null!==t&&null!==(r=fe())?t=[t,r]:(t=null,i=y),null!==(t=null!==t?t:"")?(y=i,58===n.charCodeAt(i)?(r=":",i++):(r=null,0===o&&a('":"')),null!==r&&null!==(s=fe())?r=[r,s]:(r=null,i=y),null!==(r=null!==r?r:"")?(y=i,58===n.charCodeAt(i)?(s=":",i++):(s=null,0===o&&a('":"')),null!==s&&null!==(l=fe())?s=[s,l]:(s=null,i=y),null!==(s=null!==s?s:"")?(y=i,58===n.charCodeAt(i)?(l=":",i++):(l=null,0===o&&a('":"')),null!==l&&null!==(u=fe())?l=[l,u]:(l=null,i=y),null!==(l=null!==l?l:"")?("::"===n.substr(i,2)?(u="::",i+=2):(u=null,0===o&&a('"::"')),null!==u&&null!==(c=_e())?e=[e,t,r,s,l,u,c]:(e=null,i=g)):(e=null,i=g)):(e=null,i=g)):(e=null,i=g)):(e=null,i=g)):(e=null,i=g),null===e&&(g=i,null!==(e=fe())?(y=i,58===n.charCodeAt(i)?(t=":",i++):(t=null,0===o&&a('":"')),null!==t&&null!==(r=fe())?t=[t,r]:(t=null,i=y),null!==(t=null!==t?t:"")?(y=i,58===n.charCodeAt(i)?(r=":",i++):(r=null,0===o&&a('":"')),null!==r&&null!==(s=fe())?r=[r,s]:(r=null,i=y),null!==(r=null!==r?r:"")?(y=i,58===n.charCodeAt(i)?(s=":",i++):(s=null,0===o&&a('":"')),null!==s&&null!==(l=fe())?s=[s,l]:(s=null,i=y),null!==(s=null!==s?s:"")?(y=i,58===n.charCodeAt(i)?(l=":",i++):(l=null,0===o&&a('":"')),null!==l&&null!==(u=fe())?l=[l,u]:(l=null,i=y),null!==(l=null!==l?l:"")?(y=i,58===n.charCodeAt(i)?(u=":",i++):(u=null,0===o&&a('":"')),null!==u&&null!==(c=fe())?u=[u,c]:(u=null,i=y),null!==(u=null!==u?u:"")?("::"===n.substr(i,2)?(c="::",i+=2):(c=null,0===o&&a('"::"')),null!==c&&null!==(h=fe())?e=[e,t,r,s,l,u,c,h]:(e=null,i=g)):(e=null,i=g)):(e=null,i=g)):(e=null,i=g)):(e=null,i=g)):(e=null,i=g)):(e=null,i=g),null===e&&(g=i,null!==(e=fe())?(y=i,58===n.charCodeAt(i)?(t=":",i++):(t=null,0===o&&a('":"')),null!==t&&null!==(r=fe())?t=[t,r]:(t=null,i=y),null!==(t=null!==t?t:"")?(y=i,58===n.charCodeAt(i)?(r=":",i++):(r=null,0===o&&a('":"')),null!==r&&null!==(s=fe())?r=[r,s]:(r=null,i=y),null!==(r=null!==r?r:"")?(y=i,58===n.charCodeAt(i)?(s=":",i++):(s=null,0===o&&a('":"')),null!==s&&null!==(l=fe())?s=[s,l]:(s=null,i=y),null!==(s=null!==s?s:"")?(y=i,58===n.charCodeAt(i)?(l=":",i++):(l=null,0===o&&a('":"')),null!==l&&null!==(u=fe())?l=[l,u]:(l=null,i=y),null!==(l=null!==l?l:"")?(y=i,58===n.charCodeAt(i)?(u=":",i++):(u=null,0===o&&a('":"')),null!==u&&null!==(c=fe())?u=[u,c]:(u=null,i=y),null!==(u=null!==u?u:"")?(y=i,58===n.charCodeAt(i)?(c=":",i++):(c=null,0===o&&a('":"')),null!==c&&null!==(h=fe())?c=[c,h]:(c=null,i=y),null!==(c=null!==c?c:"")?("::"===n.substr(i,2)?(h="::",i+=2):(h=null,0===o&&a('"::"')),null!==h?e=[e,t,r,s,l,u,c,h]:(e=null,i=g)):(e=null,i=g)):(e=null,i=g)):(e=null,i=g)):(e=null,i=g)):(e=null,i=g)):(e=null,i=g)):(e=null,i=g))))))))))))))),null!==e&&(T=v,jn.host_type="IPv6",e=n.substring(i,T)),null===e&&(i=v),e}function fe(){var e,t,n,r,s;return s=i,null!==(e=f())&&null!==(t=null!==(t=f())?t:"")&&null!==(n=null!==(n=f())?n:"")&&null!==(r=null!==(r=f())?r:"")?e=[e,t,n,r]:(e=null,i=s),e}function _e(){var e,t,r,s;return s=i,null!==(e=fe())?(58===n.charCodeAt(i)?(t=":",i++):(t=null,0===o&&a('":"')),null!==t&&null!==(r=fe())?e=[e,t,r]:(e=null,i=s)):(e=null,i=s),null===e&&(e=pe()),e}function pe(){var e,t,r,s,l,u,c,h,d,f;return h=i,d=i,null!==(e=me())?(46===n.charCodeAt(i)?(t=".",i++):(t=null,0===o&&a('"."')),null!==t&&null!==(r=me())?(46===n.charCodeAt(i)?(s=".",i++):(s=null,0===o&&a('"."')),null!==s&&null!==(l=me())?(46===n.charCodeAt(i)?(u=".",i++):(u=null,0===o&&a('"."')),null!==u&&null!==(c=me())?e=[e,t,r,s,l,u,c]:(e=null,i=d)):(e=null,i=d)):(e=null,i=d)):(e=null,i=d),null!==e&&(f=h,jn.host_type="IPv4",e=n.substring(i,f)),null===e&&(i=h),e}function me(){var e,t,r,s;return s=i,"25"===n.substr(i,2)?(e="25",i+=2):(e=null,0===o&&a('"25"')),null!==e?(/^[0-5]/.test(n.charAt(i))?(t=n.charAt(i),i++):(t=null,0===o&&a("[0-5]")),null!==t?e=[e,t]:(e=null,i=s)):(e=null,i=s),null===e&&(s=i,50===n.charCodeAt(i)?(e="2",i++):(e=null,0===o&&a('"2"')),null!==e?(/^[0-4]/.test(n.charAt(i))?(t=n.charAt(i),i++):(t=null,0===o&&a("[0-4]")),null!==t&&null!==(r=h())?e=[e,t,r]:(e=null,i=s)):(e=null,i=s),null===e&&(s=i,49===n.charCodeAt(i)?(e="1",i++):(e=null,0===o&&a('"1"')),null!==e&&null!==(t=h())&&null!==(r=h())?e=[e,t,r]:(e=null,i=s),null===e&&(s=i,/^[1-9]/.test(n.charAt(i))?(e=n.charAt(i),i++):(e=null,0===o&&a("[1-9]")),null!==e&&null!==(t=h())?e=[e,t]:(e=null,i=s),null===e&&(e=h())))),e}function ve(){var e,t,n,r,s,o,l,u;return o=i,l=i,null!==(e=null!==(e=h())?e:"")&&null!==(t=null!==(t=h())?t:"")&&null!==(n=null!==(n=h())?n:"")&&null!==(r=null!==(r=h())?r:"")&&null!==(s=null!==(s=h())?s:"")?e=[e,t,n,r,s]:(e=null,i=l),null!==e&&(u=e,u=parseInt(u.join("")),jn.port=u,e=u),null===e&&(i=o),e}function ge(){var e,t,r,s;for(e=[],s=i,59===n.charCodeAt(i)?(t=";",i++):(t=null,0===o&&a('";"')),null!==t&&null!==(r=ye())?t=[t,r]:(t=null,i=s);null!==t;)e.push(t),s=i,59===n.charCodeAt(i)?(t=";",i++):(t=null,0===o&&a('";"')),null!==t&&null!==(r=ye())?t=[t,r]:(t=null,i=s);return e}function ye(){var e;return null===(e=Te())&&null===(e=Ce())&&null===(e=be())&&null===(e=Se())&&null===(e=Ee())&&null===(e=Ae())&&(e=Re()),e}function Te(){var e,t,r,s,l;return r=i,s=i,"transport="===n.substr(i,10).toLowerCase()?(e=n.substr(i,10),i+=10):(e=null,0===o&&a('"transport="')),null!==e?("udp"===n.substr(i,3).toLowerCase()?(t=n.substr(i,3),i+=3):(t=null,0===o&&a('"udp"')),null===t&&("tcp"===n.substr(i,3).toLowerCase()?(t=n.substr(i,3),i+=3):(t=null,0===o&&a('"tcp"')),null===t&&("sctp"===n.substr(i,4).toLowerCase()?(t=n.substr(i,4),i+=4):(t=null,0===o&&a('"sctp"')),null===t&&("tls"===n.substr(i,3).toLowerCase()?(t=n.substr(i,3),i+=3):(t=null,0===o&&a('"tls"')),null===t&&(t=N())))),null!==t?e=[e,t]:(e=null,i=s)):(e=null,i=s),null!==e&&(l=e[1],jn.uri_params||(jn.uri_params={}),e=void(jn.uri_params.transport=l.toLowerCase())),null===e&&(i=r),e}function Ce(){var e,t,r,s,l;return r=i,s=i,"user="===n.substr(i,5).toLowerCase()?(e=n.substr(i,5),i+=5):(e=null,0===o&&a('"user="')),null!==e?("phone"===n.substr(i,5).toLowerCase()?(t=n.substr(i,5),i+=5):(t=null,0===o&&a('"phone"')),null===t&&("ip"===n.substr(i,2).toLowerCase()?(t=n.substr(i,2),i+=2):(t=null,0===o&&a('"ip"')),null===t&&(t=N())),null!==t?e=[e,t]:(e=null,i=s)):(e=null,i=s),null!==e&&(l=e[1],jn.uri_params||(jn.uri_params={}),e=void(jn.uri_params.user=l.toLowerCase())),null===e&&(i=r),e}function be(){var e,t,r,s,l;return r=i,s=i,"method="===n.substr(i,7).toLowerCase()?(e=n.substr(i,7),i+=7):(e=null,0===o&&a('"method="')),null!==e&&null!==(t=ct())?e=[e,t]:(e=null,i=s),null!==e&&(l=e[1],jn.uri_params||(jn.uri_params={}),e=void(jn.uri_params.method=l)),null===e&&(i=r),e}function Se(){var e,t,r,s,l;return r=i,s=i,"ttl="===n.substr(i,4).toLowerCase()?(e=n.substr(i,4),i+=4):(e=null,0===o&&a('"ttl="')),null!==e&&null!==(t=An())?e=[e,t]:(e=null,i=s),null!==e&&(l=e[1],jn.params||(jn.params={}),e=void(jn.params.ttl=l)),null===e&&(i=r),e}function Ee(){var e,t,r,s,l;return r=i,s=i,"maddr="===n.substr(i,6).toLowerCase()?(e=n.substr(i,6),i+=6):(e=null,0===o&&a('"maddr="')),null!==e&&null!==(t=le())?e=[e,t]:(e=null,i=s),null!==e&&(l=e[1],jn.uri_params||(jn.uri_params={}),e=void(jn.uri_params.maddr=l)),null===e&&(i=r),e}function Ae(){var e,t,r,s,l,u;return s=i,l=i,"lr"===n.substr(i,2).toLowerCase()?(e=n.substr(i,2),i+=2):(e=null,0===o&&a('"lr"')),null!==e?(u=i,61===n.charCodeAt(i)?(t="=",i++):(t=null,0===o&&a('"="')),null!==t&&null!==(r=N())?t=[t,r]:(t=null,i=u),null!==(t=null!==t?t:"")?e=[e,t]:(e=null,i=l)):(e=null,i=l),null!==e&&(jn.uri_params||(jn.uri_params={}),e=void(jn.uri_params.lr=void 0)),null===e&&(i=s),e}function Re(){var e,t,r,s,l,u,c,h;return s=i,l=i,null!==(e=we())?(u=i,61===n.charCodeAt(i)?(t="=",i++):(t=null,0===o&&a('"="')),null!==t&&null!==(r=Ie())?t=[t,r]:(t=null,i=u),null!==(t=null!==t?t:"")?e=[e,t]:(e=null,i=l)):(e=null,i=l),null!==e&&(c=e[0],h=e[1],jn.uri_params||(jn.uri_params={}),h=void 0===h?void 0:h[1],e=void(jn.uri_params[c.toLowerCase()]=h)),null===e&&(i=s),e}function we(){var e,t,n;if(n=i,null!==(t=Oe()))for(e=[];null!==t;)e.push(t),t=Oe();else e=null;return null!==e&&(e=e.join("")),null===e&&(i=n),e}function Ie(){var e,t,n;if(n=i,null!==(t=Oe()))for(e=[];null!==t;)e.push(t),t=Oe();else e=null;return null!==e&&(e=e.join("")),null===e&&(i=n),e}function Oe(){var e;return null===(e=ke())&&null===(e=C())&&(e=S()),e}function ke(){var e;return 91===n.charCodeAt(i)?(e="[",i++):(e=null,0===o&&a('"["')),null===e&&(93===n.charCodeAt(i)?(e="]",i++):(e=null,0===o&&a('"]"')),null===e&&(47===n.charCodeAt(i)?(e="/",i++):(e=null,0===o&&a('"/"')),null===e&&(58===n.charCodeAt(i)?(e=":",i++):(e=null,0===o&&a('":"')),null===e&&(38===n.charCodeAt(i)?(e="&",i++):(e=null,0===o&&a('"&"')),null===e&&(43===n.charCodeAt(i)?(e="+",i++):(e=null,0===o&&a('"+"')),null===e&&(36===n.charCodeAt(i)?(e="$",i++):(e=null,0===o&&a('"$"')))))))),e}function Ne(){var e,t,r,s,l,u,c;if(u=i,63===n.charCodeAt(i)?(e="?",i++):(e=null,0===o&&a('"?"')),null!==e)if(null!==(t=De())){for(r=[],c=i,38===n.charCodeAt(i)?(s="&",i++):(s=null,0===o&&a('"&"')),null!==s&&null!==(l=De())?s=[s,l]:(s=null,i=c);null!==s;)r.push(s),c=i,38===n.charCodeAt(i)?(s="&",i++):(s=null,0===o&&a('"&"')),null!==s&&null!==(l=De())?s=[s,l]:(s=null,i=c);null!==r?e=[e,t,r]:(e=null,i=u)}else e=null,i=u;else e=null,i=u;return e}function De(){var e,t,r,s,l,u,c;return s=i,l=i,null!==(e=Ue())?(61===n.charCodeAt(i)?(t="=",i++):(t=null,0===o&&a('"="')),null!==t&&null!==(r=xe())?e=[e,t,r]:(e=null,i=l)):(e=null,i=l),null!==e&&(u=e[0],c=e[2],u=u.join("").toLowerCase(),c=c.join(""),jn.uri_headers||(jn.uri_headers={}),e=void(jn.uri_headers[u]?jn.uri_headers[u].push(c):jn.uri_headers[u]=[c])),null===e&&(i=s),e}function Ue(){var e,t;if(null===(t=Pe())&&null===(t=C())&&(t=S()),null!==t)for(e=[];null!==t;)e.push(t),null===(t=Pe())&&null===(t=C())&&(t=S());else e=null;return e}function xe(){var e,t;for(e=[],null===(t=Pe())&&null===(t=C())&&(t=S());null!==t;)e.push(t),null===(t=Pe())&&null===(t=C())&&(t=S());return e}function Pe(){var e;return 91===n.charCodeAt(i)?(e="[",i++):(e=null,0===o&&a('"["')),null===e&&(93===n.charCodeAt(i)?(e="]",i++):(e=null,0===o&&a('"]"')),null===e&&(47===n.charCodeAt(i)?(e="/",i++):(e=null,0===o&&a('"/"')),null===e&&(63===n.charCodeAt(i)?(e="?",i++):(e=null,0===o&&a('"?"')),null===e&&(58===n.charCodeAt(i)?(e=":",i++):(e=null,0===o&&a('":"')),null===e&&(43===n.charCodeAt(i)?(e="+",i++):(e=null,0===o&&a('"+"')),null===e&&(36===n.charCodeAt(i)?(e="$",i++):(e=null,0===o&&a('"$"')))))))),e}function Me(){var e,t,n,r,s,o;return o=i,null!==(e=ct())&&null!==(t=v())&&null!==(n=qe())&&null!==(r=v())&&null!==(s=et())?e=[e,t,n,r,s]:(e=null,i=o),e}function qe(){var e;return null===(e=Q())&&(e=Le()),e}function Le(){var e,t,r,s;return s=i,null!==(e=$e())?(58===n.charCodeAt(i)?(t=":",i++):(t=null,0===o&&a('":"')),null!==t?(null===(r=He())&&(r=Ge()),null!==r?e=[e,t,r]:(e=null,i=s)):(e=null,i=s)):(e=null,i=s),e}function He(){var e,t,r,s,l;return s=i,null===(e=Fe())&&(e=je()),null!==e?(l=i,63===n.charCodeAt(i)?(t="?",i++):(t=null,0===o&&a('"?"')),null!==t&&null!==(r=Ze())?t=[t,r]:(t=null,i=l),null!==(t=null!==t?t:"")?e=[e,t]:(e=null,i=s)):(e=null,i=s),e}function Fe(){var e,t,r,s;return s=i,"//"===n.substr(i,2)?(e="//",i+=2):(e=null,0===o&&a('"//"')),null!==e&&null!==(t=Xe())&&null!==(r=null!==(r=je())?r:"")?e=[e,t,r]:(e=null,i=s),e}function je(){var e,t,r;return r=i,47===n.charCodeAt(i)?(e="/",i++):(e=null,0===o&&a('"/"')),null!==e&&null!==(t=Be())?e=[e,t]:(e=null,i=r),e}function Ge(){var e,t,n,r;if(r=i,null!==(e=Ve())){for(t=[],n=We();null!==n;)t.push(n),n=We();null!==t?e=[e,t]:(e=null,i=r)}else e=null,i=r;return e}function We(){var e;return null===(e=T())&&null===(e=C())&&(e=S()),e}function Ve(){var e;return null===(e=C())&&null===(e=S())&&(59===n.charCodeAt(i)?(e=";",i++):(e=null,0===o&&a('";"')),null===e&&(63===n.charCodeAt(i)?(e="?",i++):(e=null,0===o&&a('"?"')),null===e&&(58===n.charCodeAt(i)?(e=":",i++):(e=null,0===o&&a('":"')),null===e&&(64===n.charCodeAt(i)?(e="@",i++):(e=null,0===o&&a('"@"')),null===e&&(38===n.charCodeAt(i)?(e="&",i++):(e=null,0===o&&a('"&"')),null===e&&(61===n.charCodeAt(i)?(e="=",i++):(e=null,0===o&&a('"="')),null===e&&(43===n.charCodeAt(i)?(e="+",i++):(e=null,0===o&&a('"+"')),null===e&&(36===n.charCodeAt(i)?(e="$",i++):(e=null,0===o&&a('"$"')),null===e&&(44===n.charCodeAt(i)?(e=",",i++):(e=null,0===o&&a('","'))))))))))),e}function Be(){var e,t,r,s,l,u;if(l=i,null!==(e=Ke())){for(t=[],u=i,47===n.charCodeAt(i)?(r="/",i++):(r=null,0===o&&a('"/"')),null!==r&&null!==(s=Ke())?r=[r,s]:(r=null,i=u);null!==r;)t.push(r),u=i,47===n.charCodeAt(i)?(r="/",i++):(r=null,0===o&&a('"/"')),null!==r&&null!==(s=Ke())?r=[r,s]:(r=null,i=u);null!==t?e=[e,t]:(e=null,i=l)}else e=null,i=l;return e}function Ke(){var e,t,r,s,l,u;for(l=i,e=[],t=Ye();null!==t;)e.push(t),t=Ye();if(null!==e){for(t=[],u=i,59===n.charCodeAt(i)?(r=";",i++):(r=null,0===o&&a('";"')),null!==r&&null!==(s=ze())?r=[r,s]:(r=null,i=u);null!==r;)t.push(r),u=i,59===n.charCodeAt(i)?(r=";",i++):(r=null,0===o&&a('";"')),null!==r&&null!==(s=ze())?r=[r,s]:(r=null,i=u);null!==t?e=[e,t]:(e=null,i=l)}else e=null,i=l;return e}function ze(){var e,t;for(e=[],t=Ye();null!==t;)e.push(t),t=Ye();return e}function Ye(){var e;return null===(e=C())&&null===(e=S())&&(58===n.charCodeAt(i)?(e=":",i++):(e=null,0===o&&a('":"')),null===e&&(64===n.charCodeAt(i)?(e="@",i++):(e=null,0===o&&a('"@"')),null===e&&(38===n.charCodeAt(i)?(e="&",i++):(e=null,0===o&&a('"&"')),null===e&&(61===n.charCodeAt(i)?(e="=",i++):(e=null,0===o&&a('"="')),null===e&&(43===n.charCodeAt(i)?(e="+",i++):(e=null,0===o&&a('"+"')),null===e&&(36===n.charCodeAt(i)?(e="$",i++):(e=null,0===o&&a('"$"')),null===e&&(44===n.charCodeAt(i)?(e=",",i++):(e=null,0===o&&a('","'))))))))),e}function $e(){var e,t,r,s,l,u;if(s=i,l=i,null!==(e=d())){for(t=[],null===(r=d())&&null===(r=h())&&(43===n.charCodeAt(i)?(r="+",i++):(r=null,0===o&&a('"+"')),null===r&&(45===n.charCodeAt(i)?(r="-",i++):(r=null,0===o&&a('"-"')),null===r&&(46===n.charCodeAt(i)?(r=".",i++):(r=null,0===o&&a('"."')))));null!==r;)t.push(r),null===(r=d())&&null===(r=h())&&(43===n.charCodeAt(i)?(r="+",i++):(r=null,0===o&&a('"+"')),null===r&&(45===n.charCodeAt(i)?(r="-",i++):(r=null,0===o&&a('"-"')),null===r&&(46===n.charCodeAt(i)?(r=".",i++):(r=null,0===o&&a('"."')))));null!==t?e=[e,t]:(e=null,i=l)}else e=null,i=l;return null!==e&&(u=s,e=void(jn.scheme=n.substring(i,u))),null===e&&(i=s),e}function Xe(){var e;return null===(e=Je())&&(e=Qe()),e}function Je(){var e,t,r,s;return r=i,s=i,null!==(e=ne())?(64===n.charCodeAt(i)?(t="@",i++):(t=null,0===o&&a('"@"')),null!==t?e=[e,t]:(e=null,i=s)):(e=null,i=s),null!==(e=null!==e?e:"")&&null!==(t=oe())?e=[e,t]:(e=null,i=r),e=null!==e?e:""}function Qe(){var e,t;if(null===(t=C())&&null===(t=S())&&(36===n.charCodeAt(i)?(t="$",i++):(t=null,0===o&&a('"$"')),null===t&&(44===n.charCodeAt(i)?(t=",",i++):(t=null,0===o&&a('","')),null===t&&(59===n.charCodeAt(i)?(t=";",i++):(t=null,0===o&&a('";"')),null===t&&(58===n.charCodeAt(i)?(t=":",i++):(t=null,0===o&&a('":"')),null===t&&(64===n.charCodeAt(i)?(t="@",i++):(t=null,0===o&&a('"@"')),null===t&&(38===n.charCodeAt(i)?(t="&",i++):(t=null,0===o&&a('"&"')),null===t&&(61===n.charCodeAt(i)?(t="=",i++):(t=null,0===o&&a('"="')),null===t&&(43===n.charCodeAt(i)?(t="+",i++):(t=null,0===o&&a('"+"')))))))))),null!==t)for(e=[];null!==t;)e.push(t),null===(t=C())&&null===(t=S())&&(36===n.charCodeAt(i)?(t="$",i++):(t=null,0===o&&a('"$"')),null===t&&(44===n.charCodeAt(i)?(t=",",i++):(t=null,0===o&&a('","')),null===t&&(59===n.charCodeAt(i)?(t=";",i++):(t=null,0===o&&a('";"')),null===t&&(58===n.charCodeAt(i)?(t=":",i++):(t=null,0===o&&a('":"')),null===t&&(64===n.charCodeAt(i)?(t="@",i++):(t=null,0===o&&a('"@"')),null===t&&(38===n.charCodeAt(i)?(t="&",i++):(t=null,0===o&&a('"&"')),null===t&&(61===n.charCodeAt(i)?(t="=",i++):(t=null,0===o&&a('"="')),null===t&&(43===n.charCodeAt(i)?(t="+",i++):(t=null,0===o&&a('"+"'))))))))));else e=null;return e}function Ze(){var e,t;for(e=[],t=We();null!==t;)e.push(t),t=We();return e}function et(){var e,t,r,s,l,u,c,d,f;if(c=i,d=i,"sip"===n.substr(i,3).toLowerCase()?(e=n.substr(i,3),i+=3):(e=null,0===o&&a('"SIP"')),null!==e)if(47===n.charCodeAt(i)?(t="/",i++):(t=null,0===o&&a('"/"')),null!==t){if(null!==(s=h()))for(r=[];null!==s;)r.push(s),s=h();else r=null;if(null!==r)if(46===n.charCodeAt(i)?(s=".",i++):(s=null,0===o&&a('"."')),null!==s){if(null!==(u=h()))for(l=[];null!==u;)l.push(u),u=h();else l=null;null!==l?e=[e,t,r,s,l]:(e=null,i=d)}else e=null,i=d;else e=null,i=d}else e=null,i=d;else e=null,i=d;return null!==e&&(f=c,e=void(jn.sip_version=n.substring(i,f))),null===e&&(i=c),e}function tt(){var e;return"INVITE"===n.substr(i,6)?(e="INVITE",i+=6):(e=null,0===o&&a('"INVITE"')),e}function nt(){var e;return"ACK"===n.substr(i,3)?(e="ACK",i+=3):(e=null,0===o&&a('"ACK"')),e}function rt(){var e;return"OPTIONS"===n.substr(i,7)?(e="OPTIONS",i+=7):(e=null,0===o&&a('"OPTIONS"')),e}function st(){var e;return"BYE"===n.substr(i,3)?(e="BYE",i+=3):(e=null,0===o&&a('"BYE"')),e}function it(){var e;return"CANCEL"===n.substr(i,6)?(e="CANCEL",i+=6):(e=null,0===o&&a('"CANCEL"')),e}function ot(){var e;return"REGISTER"===n.substr(i,8)?(e="REGISTER",i+=8):(e=null,0===o&&a('"REGISTER"')),e}function lt(){var e;return"SUBSCRIBE"===n.substr(i,9)?(e="SUBSCRIBE",i+=9):(e=null,0===o&&a('"SUBSCRIBE"')),e}function ut(){var e;return"NOTIFY"===n.substr(i,6)?(e="NOTIFY",i+=6):(e=null,0===o&&a('"NOTIFY"')),e}function at(){var e;return"REFER"===n.substr(i,5)?(e="REFER",i+=5):(e=null,0===o&&a('"REFER"')),e}function ct(){var e,t,r;return t=i,null===(e=tt())&&null===(e=nt())&&null===(e=rt())&&null===(e=st())&&null===(e=it())&&null===(e=ot())&&null===(e=lt())&&null===(e=ut())&&null===(e=at())&&(e=N()),null!==e&&(r=t,jn.method=n.substring(i,r),e=jn.method),null===e&&(i=t),e}function ht(){var e,t,n,r,s,o;return o=i,null!==(e=et())&&null!==(t=v())&&null!==(n=dt())&&null!==(r=v())&&null!==(s=_t())?e=[e,t,n,r,s]:(e=null,i=o),e}function dt(){var e,t,n;return t=i,null!==(e=ft())&&(n=e,e=void(jn.status_code=parseInt(n.join("")))),null===e&&(i=t),e}function ft(){var e,t,n,r;return r=i,null!==(e=h())&&null!==(t=h())&&null!==(n=h())?e=[e,t,n]:(e=null,i=r),e}function _t(){var e,t,r,s;for(r=i,e=[],null===(t=T())&&null===(t=C())&&null===(t=S())&&null===(t=O())&&null===(t=k())&&null===(t=v())&&(t=g());null!==t;)e.push(t),null===(t=T())&&null===(t=C())&&null===(t=S())&&null===(t=O())&&null===(t=k())&&null===(t=v())&&(t=g());return null!==e&&(s=r,e=void(jn.reason_phrase=n.substring(i,s))),null===e&&(i=r),e}function pt(){var e,t,n,r,s,o,l;if(s=i,o=i,null===(e=J())&&(e=mt()),null!==e){for(t=[],l=i,null!==(n=G())&&null!==(r=gt())?n=[n,r]:(n=null,i=l);null!==n;)t.push(n),l=i,null!==(n=G())&&null!==(r=gt())?n=[n,r]:(n=null,i=l);null!==t?e=[e,t]:(e=null,i=o)}else e=null,i=o;return null!==e&&(e=function(e){var t;jn.multi_header||(jn.multi_header=[]);try{t=new Fn(jn.uri,jn.display_name,jn.params),delete jn.uri,delete jn.display_name,delete jn.params}catch(e){t=null}jn.multi_header.push({possition:i,offset:e,parsed:t})}(s)),null===e&&(i=s),e}function mt(){var e,t,n,r,s;return s=i,null!==(e=null!==(e=vt())?e:"")&&null!==(t=F())&&null!==(n=Q())&&null!==(r=H())?e=[e,t,n,r]:(e=null,i=s),e}function vt(){var e,t,n,r,s,o,l,u;if(s=i,o=i,null!==(e=N())){for(t=[],l=i,null!==(n=E())&&null!==(r=N())?n=[n,r]:(n=null,i=l);null!==n;)t.push(n),l=i,null!==(n=E())&&null!==(r=N())?n=[n,r]:(n=null,i=l);null!==t?e=[e,t]:(e=null,i=o)}else e=null,i=o;return null===e&&(e=Y()),null!==e&&(u=e,e=void(jn.display_name="string"==typeof u?u:u[1].reduce(function(e,t){return e+t[0]+t[1]},u[0]))),null===e&&(i=s),e}function gt(){var e;return null===(e=yt())&&null===(e=Tt())&&(e=St()),e}function yt(){var e,t,r,s,l,u;return s=i,l=i,"q"===n.substr(i,1).toLowerCase()?(e=n.substr(i,1),i++):(e=null,0===o&&a('"q"')),null!==e&&null!==(t=M())&&null!==(r=bt())?e=[e,t,r]:(e=null,i=l),null!==e&&(u=e[2],jn.params||(jn.params={}),e=void(jn.params.q=u)),null===e&&(i=s),e}function Tt(){var e,t,r,s,l,u;return s=i,l=i,"expires"===n.substr(i,7).toLowerCase()?(e=n.substr(i,7),i+=7):(e=null,0===o&&a('"expires"')),null!==e&&null!==(t=M())&&null!==(r=Ct())?e=[e,t,r]:(e=null,i=l),null!==e&&(u=e[2],jn.params||(jn.params={}),e=void(jn.params.expires=u)),null===e&&(i=s),e}function Ct(){var e,t,n;if(n=i,null!==(t=h()))for(e=[];null!==t;)e.push(t),t=h();else e=null;return null!==e&&(e=parseInt(e.join(""))),null===e&&(i=n),e}function bt(){var e,t,r,s,l,u,c,d,f;return u=i,c=i,48===n.charCodeAt(i)?(e="0",i++):(e=null,0===o&&a('"0"')),null!==e?(d=i,46===n.charCodeAt(i)?(t=".",i++):(t=null,0===o&&a('"."')),null!==t&&null!==(r=null!==(r=h())?r:"")&&null!==(s=null!==(s=h())?s:"")&&null!==(l=null!==(l=h())?l:"")?t=[t,r,s,l]:(t=null,i=d),null!==(t=null!==t?t:"")?e=[e,t]:(e=null,i=c)):(e=null,i=c),null!==e&&(f=u,e=parseFloat(n.substring(i,f))),null===e&&(i=u),e}function St(){var e,t,n,r,s,o,l,u;return r=i,s=i,null!==(e=N())?(o=i,null!==(t=M())&&null!==(n=Et())?t=[t,n]:(t=null,i=o),null!==(t=null!==t?t:"")?e=[e,t]:(e=null,i=s)):(e=null,i=s),null!==e&&(l=e[0],u=e[1],jn.params||(jn.params={}),u=void 0===u?void 0:u[1],e=void(jn.params[l.toLowerCase()]=u)),null===e&&(i=r),e}function Et(){var e;return null===(e=N())&&null===(e=le())&&(e=z()),e}function At(){var e;return"render"===n.substr(i,6).toLowerCase()?(e=n.substr(i,6),i+=6):(e=null,0===o&&a('"render"')),null===e&&("session"===n.substr(i,7).toLowerCase()?(e=n.substr(i,7),i+=7):(e=null,0===o&&a('"session"')),null===e&&("icon"===n.substr(i,4).toLowerCase()?(e=n.substr(i,4),i+=4):(e=null,0===o&&a('"icon"')),null===e&&("alert"===n.substr(i,5).toLowerCase()?(e=n.substr(i,5),i+=5):(e=null,0===o&&a('"alert"')),null===e&&(e=N())))),e}function Rt(){var e;return null===(e=wt())&&(e=St()),e}function wt(){var e,t,r,s;return s=i,"handling"===n.substr(i,8).toLowerCase()?(e=n.substr(i,8),i+=8):(e=null,0===o&&a('"handling"')),null!==e&&null!==(t=M())?("optional"===n.substr(i,8).toLowerCase()?(r=n.substr(i,8),i+=8):(r=null,0===o&&a('"optional"')),null===r&&("required"===n.substr(i,8).toLowerCase()?(r=n.substr(i,8),i+=8):(r=null,0===o&&a('"required"')),null===r&&(r=N())),null!==r?e=[e,t,r]:(e=null,i=s)):(e=null,i=s),e}function It(){var e,t,n,r,s,o,l,u;if(l=i,null!==(e=Ot()))if(null!==(t=P()))if(null!==(n=xt())){for(r=[],u=i,null!==(s=G())&&null!==(o=Pt())?s=[s,o]:(s=null,i=u);null!==s;)r.push(s),u=i,null!==(s=G())&&null!==(o=Pt())?s=[s,o]:(s=null,i=u);null!==r?e=[e,t,n,r]:(e=null,i=l)}else e=null,i=l;else e=null,i=l;else e=null,i=l;return e}function Ot(){var e;return null===(e=kt())&&(e=Nt()),e}function kt(){var e;return"text"===n.substr(i,4).toLowerCase()?(e=n.substr(i,4),i+=4):(e=null,0===o&&a('"text"')),null===e&&("image"===n.substr(i,5).toLowerCase()?(e=n.substr(i,5),i+=5):(e=null,0===o&&a('"image"')),null===e&&("audio"===n.substr(i,5).toLowerCase()?(e=n.substr(i,5),i+=5):(e=null,0===o&&a('"audio"')),null===e&&("video"===n.substr(i,5).toLowerCase()?(e=n.substr(i,5),i+=5):(e=null,0===o&&a('"video"')),null===e&&("application"===n.substr(i,11).toLowerCase()?(e=n.substr(i,11),i+=11):(e=null,0===o&&a('"application"')),null===e&&(e=Dt()))))),e}function Nt(){var e;return"message"===n.substr(i,7).toLowerCase()?(e=n.substr(i,7),i+=7):(e=null,0===o&&a('"message"')),null===e&&("multipart"===n.substr(i,9).toLowerCase()?(e=n.substr(i,9),i+=9):(e=null,0===o&&a('"multipart"')),null===e&&(e=Dt())),e}function Dt(){var e;return null===(e=N())&&(e=Ut()),e}function Ut(){var e,t,r;return r=i,"x-"===n.substr(i,2).toLowerCase()?(e=n.substr(i,2),i+=2):(e=null,0===o&&a('"x-"')),null!==e&&null!==(t=N())?e=[e,t]:(e=null,i=r),e}function xt(){var e;return null===(e=Dt())&&(e=N()),e}function Pt(){var e,t,n,r;return r=i,null!==(e=N())&&null!==(t=M())&&null!==(n=Mt())?e=[e,t,n]:(e=null,i=r),e}function Mt(){var e;return null===(e=N())&&(e=z()),e}function qt(){var e,t,n,r;if(n=i,null!==(t=h()))for(e=[];null!==t;)e.push(t),t=h();else e=null;return null!==e&&(r=e,e=void(jn.value=parseInt(r.join("")))),null===e&&(i=n),e}function Lt(){var e,t,r,s,l,u;if(l=i,null!==(e=D())){for(t=[],u=i,46===n.charCodeAt(i)?(r=".",i++):(r=null,0===o&&a('"."')),null!==r&&null!==(s=D())?r=[r,s]:(r=null,i=u);null!==r;)t.push(r),u=i,46===n.charCodeAt(i)?(r=".",i++):(r=null,0===o&&a('"."')),null!==r&&null!==(s=D())?r=[r,s]:(r=null,i=u);null!==t?e=[e,t]:(e=null,i=l)}else e=null,i=l;return e}function Ht(){var e;return null===(e=Ft())&&(e=St()),e}function Ft(){var e,t,r,s,l,u;return s=i,l=i,"tag"===n.substr(i,3).toLowerCase()?(e=n.substr(i,3),i+=3):(e=null,0===o&&a('"tag"')),null!==e&&null!==(t=M())&&null!==(r=N())?e=[e,t,r]:(e=null,i=l),null!==e&&(u=e[2],e=void(jn.tag=u)),null===e&&(i=s),e}function jt(){var e,t,r,s,l,u,c,h;if(c=i,"digest"===n.substr(i,6).toLowerCase()?(e=n.substr(i,6),i+=6):(e=null,0===o&&a('"Digest"')),null!==e)if(null!==(t=E()))if(null!==(r=Vt())){for(s=[],h=i,null!==(l=j())&&null!==(u=Vt())?l=[l,u]:(l=null,i=h);null!==l;)s.push(l),h=i,null!==(l=j())&&null!==(u=Vt())?l=[l,u]:(l=null,i=h);null!==s?e=[e,t,r,s]:(e=null,i=c)}else e=null,i=c;else e=null,i=c;else e=null,i=c;return null===e&&(e=Gt()),e}function Gt(){var e,t,n,r,s,o,l,u;if(l=i,null!==(e=N()))if(null!==(t=E()))if(null!==(n=Wt())){for(r=[],u=i,null!==(s=j())&&null!==(o=Wt())?s=[s,o]:(s=null,i=u);null!==s;)r.push(s),u=i,null!==(s=j())&&null!==(o=Wt())?s=[s,o]:(s=null,i=u);null!==r?e=[e,t,n,r]:(e=null,i=l)}else e=null,i=l;else e=null,i=l;else e=null,i=l;return e}function Wt(){var e,t,n,r;return r=i,null!==(e=N())&&null!==(t=M())?(null===(n=N())&&(n=z()),null!==n?e=[e,t,n]:(e=null,i=r)):(e=null,i=r),e}function Vt(){var e;return null===(e=Bt())&&null===(e=zt())&&null===(e=$t())&&null===(e=Jt())&&null===(e=Qt())&&null===(e=Zt())&&null===(e=en())&&(e=Wt()),e}function Bt(){var e,t,r,s;return s=i,"realm"===n.substr(i,5).toLowerCase()?(e=n.substr(i,5),i+=5):(e=null,0===o&&a('"realm"')),null!==e&&null!==(t=M())&&null!==(r=Kt())?e=[e,t,r]:(e=null,i=s),e}function Kt(){var e,t,n;return t=i,null!==(e=Y())&&(n=e,e=void(jn.realm=n)),null===e&&(i=t),e}function zt(){var e,t,r,s,l,u,c,h,d;if(h=i,"domain"===n.substr(i,6).toLowerCase()?(e=n.substr(i,6),i+=6):(e=null,0===o&&a('"domain"')),null!==e)if(null!==(t=M()))if(null!==(r=V()))if(null!==(s=Yt())){if(l=[],d=i,null!==(c=v()))for(u=[];null!==c;)u.push(c),c=v();else u=null;for(null!==u&&null!==(c=Yt())?u=[u,c]:(u=null,i=d);null!==u;){if(l.push(u),d=i,null!==(c=v()))for(u=[];null!==c;)u.push(c),c=v();else u=null;null!==u&&null!==(c=Yt())?u=[u,c]:(u=null,i=d)}null!==l&&null!==(u=B())?e=[e,t,r,s,l,u]:(e=null,i=h)}else e=null,i=h;else e=null,i=h;else e=null,i=h;else e=null,i=h;return e}function Yt(){var e;return null===(e=Le())&&(e=je()),e}function $t(){var e,t,r,s;return s=i,"nonce"===n.substr(i,5).toLowerCase()?(e=n.substr(i,5),i+=5):(e=null,0===o&&a('"nonce"')),null!==e&&null!==(t=M())&&null!==(r=Xt())?e=[e,t,r]:(e=null,i=s),e}function Xt(){var e,t,n;return t=i,null!==(e=Y())&&(n=e,e=void(jn.nonce=n)),null===e&&(i=t),e}function Jt(){var e,t,r,s,l,u;return s=i,l=i,"opaque"===n.substr(i,6).toLowerCase()?(e=n.substr(i,6),i+=6):(e=null,0===o&&a('"opaque"')),null!==e&&null!==(t=M())&&null!==(r=Y())?e=[e,t,r]:(e=null,i=l),null!==e&&(u=e[2],e=void(jn.opaque=u)),null===e&&(i=s),e}function Qt(){var e,t,r,s,l;return s=i,"stale"===n.substr(i,5).toLowerCase()?(e=n.substr(i,5),i+=5):(e=null,0===o&&a('"stale"')),null!==e&&null!==(t=M())?(l=i,"true"===n.substr(i,4).toLowerCase()?(r=n.substr(i,4),i+=4):(r=null,0===o&&a('"true"')),null!==r&&(r=void(jn.stale=!0)),null===r&&(i=l),null===r&&(l=i,"false"===n.substr(i,5).toLowerCase()?(r=n.substr(i,5),i+=5):(r=null,0===o&&a('"false"')),null!==r&&(r=void(jn.stale=!1)),null===r&&(i=l)),null!==r?e=[e,t,r]:(e=null,i=s)):(e=null,i=s),e}function Zt(){var e,t,r,s,l,u;return s=i,l=i,"algorithm"===n.substr(i,9).toLowerCase()?(e=n.substr(i,9),i+=9):(e=null,0===o&&a('"algorithm"')),null!==e&&null!==(t=M())?("md5"===n.substr(i,3).toLowerCase()?(r=n.substr(i,3),i+=3):(r=null,0===o&&a('"MD5"')),null===r&&("md5-sess"===n.substr(i,8).toLowerCase()?(r=n.substr(i,8),i+=8):(r=null,0===o&&a('"MD5-sess"')),null===r&&(r=N())),null!==r?e=[e,t,r]:(e=null,i=l)):(e=null,i=l),null!==e&&(u=e[2],e=void(jn.algorithm=u.toUpperCase())),null===e&&(i=s),e}function en(){var e,t,r,s,l,u,c,h,d,f;if(h=i,"qop"===n.substr(i,3).toLowerCase()?(e=n.substr(i,3),i+=3):(e=null,0===o&&a('"qop"')),null!==e)if(null!==(t=M()))if(null!==(r=V())){if(d=i,null!==(s=tn())){for(l=[],f=i,44===n.charCodeAt(i)?(u=",",i++):(u=null,0===o&&a('","')),null!==u&&null!==(c=tn())?u=[u,c]:(u=null,i=f);null!==u;)l.push(u),f=i,44===n.charCodeAt(i)?(u=",",i++):(u=null,0===o&&a('","')),null!==u&&null!==(c=tn())?u=[u,c]:(u=null,i=f);null!==l?s=[s,l]:(s=null,i=d)}else s=null,i=d;null!==s&&null!==(l=B())?e=[e,t,r,s,l]:(e=null,i=h)}else e=null,i=h;else e=null,i=h;else e=null,i=h;return e}function tn(){var e,t,r;return t=i,"auth-int"===n.substr(i,8).toLowerCase()?(e=n.substr(i,8),i+=8):(e=null,0===o&&a('"auth-int"')),null===e&&("auth"===n.substr(i,4).toLowerCase()?(e=n.substr(i,4),i+=4):(e=null,0===o&&a('"auth"')),null===e&&(e=N())),null!==e&&(r=e,jn.qop||(jn.qop=[]),e=void jn.qop.push(r.toLowerCase())),null===e&&(i=t),e}function nn(){var e,t,n,r,s,o,l;if(s=i,o=i,null!==(e=mt())){for(t=[],l=i,null!==(n=G())&&null!==(r=St())?n=[n,r]:(n=null,i=l);null!==n;)t.push(n),l=i,null!==(n=G())&&null!==(r=St())?n=[n,r]:(n=null,i=l);null!==t?e=[e,t]:(e=null,i=o)}else e=null,i=o;return null!==e&&(e=function(e){var t;jn.multi_header||(jn.multi_header=[]);try{t=new Fn(jn.uri,jn.display_name,jn.params),delete jn.uri,delete jn.display_name,delete jn.params}catch(e){t=null}jn.multi_header.push({possition:i,offset:e,parsed:t})}(s)),null===e&&(i=s),e}function rn(){var e;return null===(e=sn())&&(e=St()),e}function sn(){var e,t,r,s,l,u,c;if(l=i,u=i,"cause"===n.substr(i,5).toLowerCase()?(e=n.substr(i,5),i+=5):(e=null,0===o&&a('"cause"')),null!==e)if(null!==(t=M())){if(null!==(s=h()))for(r=[];null!==s;)r.push(s),s=h();else r=null;null!==r?e=[e,t,r]:(e=null,i=u)}else e=null,i=u;else e=null,i=u;return null!==e&&(c=e[2],e=void(jn.cause=parseInt(c.join("")))),null===e&&(i=l),e}function on(){var e,t,n,r,s,o;if(s=i,null!==(e=mt())){for(t=[],o=i,null!==(n=G())&&null!==(r=St())?n=[n,r]:(n=null,i=o);null!==n;)t.push(n),o=i,null!==(n=G())&&null!==(r=St())?n=[n,r]:(n=null,i=o);null!==t?e=[e,t]:(e=null,i=s)}else e=null,i=s;return e}function ln(){var e,t,r;return t=i,"active"===n.substr(i,6).toLowerCase()?(e=n.substr(i,6),i+=6):(e=null,0===o&&a('"active"')),null===e&&("pending"===n.substr(i,7).toLowerCase()?(e=n.substr(i,7),i+=7):(e=null,0===o&&a('"pending"')),null===e&&("terminated"===n.substr(i,10).toLowerCase()?(e=n.substr(i,10),i+=10):(e=null,0===o&&a('"terminated"')),null===e&&(e=N()))),null!==e&&(r=t,e=void(jn.state=n.substring(i,r))),null===e&&(i=t),e}function un(){var e,t,r,s,l,u,c,h;return s=i,l=i,"reason"===n.substr(i,6).toLowerCase()?(e=n.substr(i,6),i+=6):(e=null,0===o&&a('"reason"')),null!==e&&null!==(t=M())&&null!==(r=an())?e=[e,t,r]:(e=null,i=l),null!==e&&(e=void(void 0!==(u=e[2])&&(jn.reason=u))),null===e&&(i=s),null===e&&(s=i,l=i,"expires"===n.substr(i,7).toLowerCase()?(e=n.substr(i,7),i+=7):(e=null,0===o&&a('"expires"')),null!==e&&null!==(t=M())&&null!==(r=Ct())?e=[e,t,r]:(e=null,i=l),null!==e&&(e=void(void 0!==(h=e[2])&&(jn.expires=h))),null===e&&(i=s),null===e&&(s=i,l=i,"retry_after"===n.substr(i,11).toLowerCase()?(e=n.substr(i,11),i+=11):(e=null,0===o&&a('"retry_after"')),null!==e&&null!==(t=M())&&null!==(r=Ct())?e=[e,t,r]:(e=null,i=l),null!==e&&(e=void(void 0!==(c=e[2])&&(jn.retry_after=c))),null===e&&(i=s),null===e&&(e=St()))),e}function an(){var e;return"deactivated"===n.substr(i,11).toLowerCase()?(e=n.substr(i,11),i+=11):(e=null,0===o&&a('"deactivated"')),null===e&&("probation"===n.substr(i,9).toLowerCase()?(e=n.substr(i,9),i+=9):(e=null,0===o&&a('"probation"')),null===e&&("rejected"===n.substr(i,8).toLowerCase()?(e=n.substr(i,8),i+=8):(e=null,0===o&&a('"rejected"')),null===e&&("timeout"===n.substr(i,7).toLowerCase()?(e=n.substr(i,7),i+=7):(e=null,0===o&&a('"timeout"')),null===e&&("giveup"===n.substr(i,6).toLowerCase()?(e=n.substr(i,6),i+=6):(e=null,0===o&&a('"giveup"')),null===e&&("noresource"===n.substr(i,10).toLowerCase()?(e=n.substr(i,10),i+=10):(e=null,0===o&&a('"noresource"')),null===e&&("invariant"===n.substr(i,9).toLowerCase()?(e=n.substr(i,9),i+=9):(e=null,0===o&&a('"invariant"')),null===e&&(e=N()))))))),e}function cn(){var e;return null===(e=Ft())&&(e=St()),e}function hn(){var e,t,n,r,s,o,l,u;if(l=i,null!==(e=yn()))if(null!==(t=E()))if(null!==(n=bn())){for(r=[],u=i,null!==(s=G())&&null!==(o=dn())?s=[s,o]:(s=null,i=u);null!==s;)r.push(s),u=i,null!==(s=G())&&null!==(o=dn())?s=[s,o]:(s=null,i=u);null!==r?e=[e,t,n,r]:(e=null,i=l)}else e=null,i=l;else e=null,i=l;else e=null,i=l;return e}function dn(){var e;return null===(e=fn())&&null===(e=_n())&&null===(e=pn())&&null===(e=mn())&&null===(e=vn())&&(e=St()),e}function fn(){var e,t,r,s,l,u;return s=i,l=i,"ttl"===n.substr(i,3).toLowerCase()?(e=n.substr(i,3),i+=3):(e=null,0===o&&a('"ttl"')),null!==e&&null!==(t=M())&&null!==(r=An())?e=[e,t,r]:(e=null,i=l),null!==e&&(u=e[2],e=void(jn.ttl=u)),null===e&&(i=s),e}function _n(){var e,t,r,s,l,u;return s=i,l=i,"maddr"===n.substr(i,5).toLowerCase()?(e=n.substr(i,5),i+=5):(e=null,0===o&&a('"maddr"')),null!==e&&null!==(t=M())&&null!==(r=le())?e=[e,t,r]:(e=null,i=l),null!==e&&(u=e[2],e=void(jn.maddr=u)),null===e&&(i=s),e}function pn(){var e,t,r,s,l,u;return s=i,l=i,"received"===n.substr(i,8).toLowerCase()?(e=n.substr(i,8),i+=8):(e=null,0===o&&a('"received"')),null!==e&&null!==(t=M())?(null===(r=pe())&&(r=de()),null!==r?e=[e,t,r]:(e=null,i=l)):(e=null,i=l),null!==e&&(u=e[2],e=void(jn.received=u)),null===e&&(i=s),e}function mn(){var e,t,r,s,l,u;return s=i,l=i,"branch"===n.substr(i,6).toLowerCase()?(e=n.substr(i,6),i+=6):(e=null,0===o&&a('"branch"')),null!==e&&null!==(t=M())&&null!==(r=N())?e=[e,t,r]:(e=null,i=l),null!==e&&(u=e[2],e=void(jn.branch=u)),null===e&&(i=s),e}function vn(){var e,t,r,s,l;return s=i,"rport"===n.substr(i,5).toLowerCase()?(e=n.substr(i,5),i+=5):(e=null,0===o&&a('"rport"')),null!==e?(l=i,null!==(t=M())&&null!==(r=gn())?t=[t,r]:(t=null,i=l),null!==(t=null!==t?t:"")?e=[e,t]:(e=null,i=s)):(e=null,i=s),e}function gn(){var e,t,n,r,s,o,l,u;return o=i,l=i,null!==(e=null!==(e=h())?e:"")&&null!==(t=null!==(t=h())?t:"")&&null!==(n=null!==(n=h())?n:"")&&null!==(r=null!==(r=h())?r:"")&&null!==(s=null!==(s=h())?s:"")?e=[e,t,n,r,s]:(e=null,i=l),null!==e&&(u=e,e=void(jn.rport=parseInt(u.join("")))),null===e&&(i=o),e}function yn(){var e,t,n,r,s,o;return o=i,null!==(e=Tn())&&null!==(t=P())&&null!==(n=N())&&null!==(r=P())&&null!==(s=Cn())?e=[e,t,n,r,s]:(e=null,i=o),e}function Tn(){var e,t,r;return t=i,"sip"===n.substr(i,3).toLowerCase()?(e=n.substr(i,3),i+=3):(e=null,0===o&&a('"SIP"')),null===e&&(e=N()),null!==e&&(r=e,e=void(jn.protocol=r)),null===e&&(i=t),e}function Cn(){var e,t,r;return t=i,"udp"===n.substr(i,3).toLowerCase()?(e=n.substr(i,3),i+=3):(e=null,0===o&&a('"UDP"')),null===e&&("tcp"===n.substr(i,3).toLowerCase()?(e=n.substr(i,3),i+=3):(e=null,0===o&&a('"TCP"')),null===e&&("tls"===n.substr(i,3).toLowerCase()?(e=n.substr(i,3),i+=3):(e=null,0===o&&a('"TLS"')),null===e&&("sctp"===n.substr(i,4).toLowerCase()?(e=n.substr(i,4),i+=4):(e=null,0===o&&a('"SCTP"')),null===e&&(e=N())))),null!==e&&(r=e,e=void(jn.transport=r)),null===e&&(i=t),e}function bn(){var e,t,n,r,s;return r=i,null!==(e=Sn())?(s=i,null!==(t=W())&&null!==(n=En())?t=[t,n]:(t=null,i=s),null!==(t=null!==t?t:"")?e=[e,t]:(e=null,i=r)):(e=null,i=r),e}function Sn(){var e,t,r;return t=i,null===(e=pe())&&null===(e=he())&&(e=ue()),null!==e&&(r=t,e=void(jn.host=n.substring(i,r))),null===e&&(i=t),e}function En(){var e,t,n,r,s,o,l,u;return o=i,l=i,null!==(e=null!==(e=h())?e:"")&&null!==(t=null!==(t=h())?t:"")&&null!==(n=null!==(n=h())?n:"")&&null!==(r=null!==(r=h())?r:"")&&null!==(s=null!==(s=h())?s:"")?e=[e,t,n,r,s]:(e=null,i=l),null!==e&&(u=e,e=void(jn.port=parseInt(u.join("")))),null===e&&(i=o),e}function An(){var e,t,n,r,s;return r=i,s=i,null!==(e=h())&&null!==(t=null!==(t=h())?t:"")&&null!==(n=null!==(n=h())?n:"")?e=[e,t,n]:(e=null,i=s),null!==e&&(e=parseInt(e.join(""))),null===e&&(i=r),e}function Rn(){var e,t,n;return t=i,null!==(e=Ct())&&(n=e,e=void(jn.expires=n)),null===e&&(i=t),e}function wn(){var e;return null===(e=In())&&(e=St()),e}function In(){var e,t,r,s,l,u;return s=i,l=i,"refresher"===n.substr(i,9).toLowerCase()?(e=n.substr(i,9),i+=9):(e=null,0===o&&a('"refresher"')),null!==e&&null!==(t=M())?("uac"===n.substr(i,3).toLowerCase()?(r=n.substr(i,3),i+=3):(r=null,0===o&&a('"uac"')),null===r&&("uas"===n.substr(i,3).toLowerCase()?(r=n.substr(i,3),i+=3):(r=null,0===o&&a('"uas"'))),null!==r?e=[e,t,r]:(e=null,i=l)):(e=null,i=l),null!==e&&(u=e[2],e=void(jn.refresher=u.toLowerCase())),null===e&&(i=s),e}function On(){var e,t;for(e=[],null===(t=I())&&null===(t=k())&&(t=E());null!==t;)e.push(t),null===(t=I())&&null===(t=k())&&(t=E());return e}function kn(){var e,t,r,s,l,u,c,h,d,f,_,p;return f=i,_=i,null!==(e=Dn())?(45===n.charCodeAt(i)?(t="-",i++):(t=null,0===o&&a('"-"')),null!==t&&null!==(r=Nn())?(45===n.charCodeAt(i)?(s="-",i++):(s=null,0===o&&a('"-"')),null!==s&&null!==(l=Nn())?(45===n.charCodeAt(i)?(u="-",i++):(u=null,0===o&&a('"-"')),null!==u&&null!==(c=Nn())?(45===n.charCodeAt(i)?(h="-",i++):(h=null,0===o&&a('"-"')),null!==h&&null!==(d=Un())?e=[e,t,r,s,l,u,c,h,d]:(e=null,i=_)):(e=null,i=_)):(e=null,i=_)):(e=null,i=_)):(e=null,i=_),null!==e&&(p=f,e[0],e=void(jn=n.substring(i+5,p))),null===e&&(i=f),e}function Nn(){var e,t,n,r,s;return s=i,null!==(e=f())&&null!==(t=f())&&null!==(n=f())&&null!==(r=f())?e=[e,t,n,r]:(e=null,i=s),e}function Dn(){var e,t,n;return n=i,null!==(e=Nn())&&null!==(t=Nn())?e=[e,t]:(e=null,i=n),e}function Un(){var e,t,n,r;return r=i,null!==(e=Nn())&&null!==(t=Nn())&&null!==(n=Nn())?e=[e,t,n]:(e=null,i=r),e}function xn(){var e,t,r,s,l,u,c;return s=i,l=i,null!==(e=U())?(u=i,64===n.charCodeAt(i)?(t="@",i++):(t=null,0===o&&a('"@"')),null!==t&&null!==(r=U())?t=[t,r]:(t=null,i=u),null!==(t=null!==t?t:"")?e=[e,t]:(e=null,i=l)):(e=null,i=l),null!==e&&(c=s,e=void(jn.call_id=n.substring(i,c))),null===e&&(i=s),e}function Pn(){var e;return null===(e=Mn())&&null===(e=qn())&&null===(e=Ln())&&(e=St()),e}function Mn(){var e,t,r,s,l,u;return s=i,l=i,"to-tag"===n.substr(i,6)?(e="to-tag",i+=6):(e=null,0===o&&a('"to-tag"')),null!==e&&null!==(t=M())&&null!==(r=N())?e=[e,t,r]:(e=null,i=l),null!==e&&(u=e[2],e=void(jn.to_tag=u)),null===e&&(i=s),e}function qn(){var e,t,r,s,l,u;return s=i,l=i,"from-tag"===n.substr(i,8)?(e="from-tag",i+=8):(e=null,0===o&&a('"from-tag"')),null!==e&&null!==(t=M())&&null!==(r=N())?e=[e,t,r]:(e=null,i=l),null!==e&&(u=e[2],e=void(jn.from_tag=u)),null===e&&(i=s),e}function Ln(){var e,t;return t=i,"early-only"===n.substr(i,10)?(e="early-only",i+=10):(e=null,0===o&&a('"early-only"')),null!==e&&(e=void(jn.early_only=!0)),null===e&&(i=t),e}var Hn=e("./URI"),Fn=e("./NameAddrHeader"),jn={};if(null===s[r]()||i!==n.length){var Gn=Math.max(i,l),Wn=Gn2&&void 0!==arguments[2]?arguments[2]:{},s=e;if(void 0===e||void 0===t)throw new TypeError("Not enough arguments");if(!(e=this._ua.normalizeTarget(e)))throw new TypeError("Invalid target: ".concat(s));var i=d.cloneArray(r.extraHeaders),o=d.cloneObject(r.eventHandlers),l=r.contentType||"text/plain";for(var u in o)Object.prototype.hasOwnProperty.call(o,u)&&this.on(u,o[u]);i.push("Content-Type: ".concat(l)),this._request=new h.OutgoingRequest(c.MESSAGE,e,this._ua,null,i),t&&(this._request.body=t);var a=new f(this._ua,this._request,{onRequestTimeout:function(){n._onRequestTimeout()},onTransportError:function(){n._onTransportError()},onReceiveResponse:function(e){n._receiveResponse(e)}});this._newMessage("local",this._request),a.send()}},{key:"init_incoming",value:function(e){this._request=e,this._newMessage("remote",e),this._is_replied||(this._is_replied=!0,e.reply(200)),this._close()}},{key:"accept",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=d.cloneArray(e.extraHeaders),n=e.body;if("incoming"!==this._direction)throw new _.NotSupportedError('"accept" not supported for outgoing Message');if(this._is_replied)throw new Error("incoming Message already replied");this._is_replied=!0,this._request.reply(200,null,t,n)}},{key:"reject",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=e.status_code||480,n=e.reason_phrase,r=d.cloneArray(e.extraHeaders),s=e.body;if("incoming"!==this._direction)throw new _.NotSupportedError('"reject" not supported for outgoing Message');if(this._is_replied)throw new Error("incoming Message already replied");if(t<300||t>=700)throw new TypeError("Invalid status_code: ".concat(t));this._is_replied=!0,this._request.reply(t,n,r,s)}},{key:"_receiveResponse",value:function(e){if(!this._closed)switch(!0){case/^1[0-9]{2}$/.test(e.status_code):break;case/^2[0-9]{2}$/.test(e.status_code):this._succeeded("remote",e);break;default:var t=d.sipErrorCause(e.status_code);this._failed("remote",e,t)}}},{key:"_onRequestTimeout",value:function(){this._closed||this._failed("system",null,c.causes.REQUEST_TIMEOUT)}},{key:"_onTransportError",value:function(){this._closed||this._failed("system",null,c.causes.CONNECTION_ERROR)}},{key:"_close",value:function(){this._closed=!0,this._ua.destroyMessage(this)}},{key:"_newMessage",value:function(e,t){"remote"===e?(this._direction="incoming",this._local_identity=t.to,this._remote_identity=t.from):"local"===e&&(this._direction="outgoing",this._local_identity=t.from,this._remote_identity=t.to),this._ua.newMessage(this,{originator:e,message:this,request:t})}},{key:"_failed",value:function(e,t,n){p.debug("MESSAGE failed"),this._close(),p.debug('emit "failed"'),this.emit("failed",{originator:e,response:t||null,cause:n})}},{key:"_succeeded",value:function(e,t){p.debug("MESSAGE succeeded"),this._close(),p.debug('emit "succeeded"'),this.emit("succeeded",{originator:e,response:t})}},{key:"direction",get:function(){return this._direction}},{key:"local_identity",get:function(){return this._local_identity}},{key:"remote_identity",get:function(){return this._remote_identity}}])&&s(t.prototype,n),r&&s(t,r),a}()},{"./Constants":2,"./Exceptions":6,"./Logger":9,"./RequestSender":20,"./SIPMessage":21,"./Utils":28,events:31}],11:[function(e,t,n){"use strict";function r(e,t){for(var n=0;n"),this._parameters)Object.prototype.hasOwnProperty.call(this._parameters,t)&&(e+=";".concat(t),null!==this._parameters[t]&&(e+="=".concat(this._parameters[t])));return e}},{key:"uri",get:function(){return this._uri}},{key:"display_name",get:function(){return this._display_name},set:function(e){this._display_name=0===e?"0":e}}]),e}()},{"./Grammar":7,"./URI":27}],12:[function(e,t,n){"use strict";function r(e){return(r="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function s(e,t){for(var n=0;n2&&void 0!==arguments[2]?arguments[2]:{},s=e;if(void 0===e)throw new TypeError("A target is required for OPTIONS");if(!(e=this._ua.normalizeTarget(e)))throw new TypeError("Invalid target: ".concat(s));var i=d.cloneArray(r.extraHeaders),o=d.cloneObject(r.eventHandlers),l=r.contentType||"application/sdp";for(var u in o)Object.prototype.hasOwnProperty.call(o,u)&&this.on(u,o[u]);i.push("Content-Type: ".concat(l)),this._request=new h.OutgoingRequest(c.OPTIONS,e,this._ua,null,i),t&&(this._request.body=t);var a=new f(this._ua,this._request,{onRequestTimeout:function(){n._onRequestTimeout()},onTransportError:function(){n._onTransportError()},onReceiveResponse:function(e){n._receiveResponse(e)}});this._newOptions("local",this._request),a.send()}},{key:"init_incoming",value:function(e){this._request=e,this._newOptions("remote",e),this._is_replied||(this._is_replied=!0,e.reply(200)),this._close()}},{key:"accept",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=d.cloneArray(e.extraHeaders),n=e.body;if("incoming"!==this._direction)throw new _.NotSupportedError('"accept" not supported for outgoing Options');if(this._is_replied)throw new Error("incoming Options already replied");this._is_replied=!0,this._request.reply(200,null,t,n)}},{key:"reject",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=e.status_code||480,n=e.reason_phrase,r=d.cloneArray(e.extraHeaders),s=e.body;if("incoming"!==this._direction)throw new _.NotSupportedError('"reject" not supported for outgoing Options');if(this._is_replied)throw new Error("incoming Options already replied");if(t<300||t>=700)throw new TypeError("Invalid status_code: ".concat(t));this._is_replied=!0,this._request.reply(t,n,r,s)}},{key:"_receiveResponse",value:function(e){if(!this._closed)switch(!0){case/^1[0-9]{2}$/.test(e.status_code):break;case/^2[0-9]{2}$/.test(e.status_code):this._succeeded("remote",e);break;default:var t=d.sipErrorCause(e.status_code);this._failed("remote",e,t)}}},{key:"_onRequestTimeout",value:function(){this._closed||this._failed("system",null,c.causes.REQUEST_TIMEOUT)}},{key:"_onTransportError",value:function(){this._closed||this._failed("system",null,c.causes.CONNECTION_ERROR)}},{key:"_close",value:function(){this._closed=!0,this._ua.destroyMessage(this)}},{key:"_newOptions",value:function(e,t){"remote"===e?(this._direction="incoming",this._local_identity=t.to,this._remote_identity=t.from):"local"===e&&(this._direction="outgoing",this._local_identity=t.from,this._remote_identity=t.to),this._ua.newOptions(this,{originator:e,message:this,request:t})}},{key:"_failed",value:function(e,t,n){p.debug("OPTIONS failed"),this._close(),p.debug('emit "failed"'),this.emit("failed",{originator:e,response:t||null,cause:n})}},{key:"_succeeded",value:function(e,t){p.debug("OPTIONS succeeded"),this._close(),p.debug('emit "succeeded"'),this.emit("succeeded",{originator:e,response:t})}},{key:"direction",get:function(){return this._direction}},{key:"local_identity",get:function(){return this._local_identity}},{key:"remote_identity",get:function(){return this._remote_identity}}])&&s(t.prototype,n),r&&s(t,r),a}()},{"./Constants":2,"./Exceptions":6,"./Logger":9,"./RequestSender":20,"./SIPMessage":21,"./Utils":28,events:31}],13:[function(e,t,n){"use strict";function r(e,t){var n;if("undefined"==typeof Symbol||null==e[Symbol.iterator]){if(Array.isArray(e)||(n=function(e,t){if(!e)return;if("string"==typeof e)return s(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);"Object"===n&&e.constructor&&(n=e.constructor.name);if("Map"===n||"Set"===n)return Array.from(e);if("Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return s(e,t)}(e))||t&&e&&"number"==typeof e.length){n&&(e=n);var r=0,i=function(){};return{s:i,n:function(){return r>=e.length?{done:!0}:{done:!1,value:e[r++]}},e:function(e){throw e},f:i}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var o,l=!0,u=!1;return{s:function(){n=e[Symbol.iterator]()},n:function(){var e=n.next();return l=e.done,e},e:function(e){u=!0,o=e},f:function(){try{l||null==n.return||n.return()}finally{if(u)throw o}}}}function s(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n=e.length?{done:!0}:{done:!1,value:e[r++]}},e:function(e){throw e},f:s}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var o,l=!0,u=!1;return{s:function(){n=e[Symbol.iterator]()},n:function(){var e=n.next();return l=e.done,e},e:function(e){u=!0,o=e},f:function(){try{l||null==n.return||n.return()}finally{if(u)throw o}}}}function i(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n1&&void 0!==arguments[1]?arguments[1]:{},n=arguments.length>2?arguments[2]:void 0;w.debug("connect()");var r=e,s=v.cloneObject(t.eventHandlers),i=v.cloneArray(t.extraHeaders),o=v.cloneObject(t.mediaConstraints,{audio:!0,video:!0}),l=t.mediaStream||null,u=v.cloneObject(t.pcConfig,{iceServers:[]}),a=t.rtcConstraints||null,c=t.rtcOfferConstraints||null;if(this._rtcOfferConstraints=c,this._rtcAnswerConstraints=t.rtcAnswerConstraints||null,this._data=t.data||this._data,void 0===e)throw new TypeError("Not enough arguments");if(this._status!==I.STATUS_NULL)throw new p.InvalidStateError(this._status);if(!window.RTCPeerConnection)throw new p.NotSupportedError("WebRTC not supported");if(!(e=this._ua.normalizeTarget(e)))throw new TypeError("Invalid target: ".concat(r));for(var h in this._sessionTimers.enabled&&v.isDecimal(t.sessionTimersExpires)&&(t.sessionTimersExpires>=_.MIN_SESSION_EXPIRES?this._sessionTimers.defaultExpires=t.sessionTimersExpires:this._sessionTimers.defaultExpires=_.SESSION_EXPIRES),s)Object.prototype.hasOwnProperty.call(s,h)&&this.on(h,s[h]);this._from_tag=v.newTag();var d=t.anonymous||!1,f={from_tag:this._from_tag};this._contact=this._ua.contact.toString({anonymous:d,outbound:!0}),d?(f.from_display_name="Anonymous",f.from_uri=new R("sip","anonymous","anonymous.invalid"),i.push("P-Preferred-Identity: ".concat(this._ua.configuration.uri.toString())),i.push("Privacy: id")):t.fromUserName&&(f.from_uri=new R("sip",t.fromUserName,this._ua.configuration.uri.host),i.push("P-Preferred-Identity: ".concat(this._ua.configuration.uri.toString()))),t.fromDisplayName&&(f.from_display_name=t.fromDisplayName),i.push("Contact: ".concat(this._contact)),i.push("Content-Type: application/sdp"),this._sessionTimers.enabled&&i.push("Session-Expires: ".concat(this._sessionTimers.defaultExpires).concat(this._ua.configuration.session_timers_force_refresher?";refresher=uac":"")),this._request=new y.InitialOutgoingInviteRequest(e,this._ua,f,i),this._id=this._request.call_id+this._from_tag,this._createRTCConnection(u,a),this._direction="outgoing",this._local_identity=this._request.from,this._remote_identity=this._request.to,n&&n(this),this._newRTCSession("local",this._request),this._sendInitialRequest(o,c,l)}},{key:"init_incoming",value:function(e,t){var n,r=this;w.debug("init_incoming()");var s=e.hasHeader("Content-Type")?e.getHeader("Content-Type").toLowerCase():void 0;e.body&&"application/sdp"!==s?e.reply(415):(this._status=I.STATUS_INVITE_RECEIVED,this._from_tag=e.from_tag,this._id=e.call_id+this._from_tag,this._request=e,this._contact=this._ua.contact.toString(),e.hasHeader("expires")&&(n=1e3*e.getHeader("expires")),e.to_tag=v.newTag(),this._createDialog(e,"UAS",!0)?(e.body?this._late_sdp=!1:this._late_sdp=!0,this._status=I.STATUS_WAITING_FOR_ANSWER,this._timers.userNoAnswerTimer=setTimeout(function(){e.reply(408),r._failed("local",null,_.causes.NO_ANSWER)},this._ua.configuration.no_answer_timeout),n&&(this._timers.expiresTimer=setTimeout(function(){r._status===I.STATUS_WAITING_FOR_ANSWER&&(e.reply(487),r._failed("system",null,_.causes.EXPIRES))},n)),this._direction="incoming",this._local_identity=e.to,this._remote_identity=e.from,t&&t(this),this._newRTCSession("remote",e),this._status!==I.STATUS_TERMINATED&&(e.reply(180,null,["Contact: ".concat(this._contact)]),this._progress("local",null))):e.reply(500,"Missing Contact header field"))}},{key:"answer",value:function(){var e=this,t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};w.debug("answer()");var n=this._request,r=v.cloneArray(t.extraHeaders),i=v.cloneObject(t.mediaConstraints),o=t.mediaStream||null,l=v.cloneObject(t.pcConfig,{iceServers:[]}),u=t.rtcConstraints||null,a=t.rtcAnswerConstraints||null,c=v.cloneObject(t.rtcOfferConstraints),h=!1,d=!1,f=!1,m=!1;if(this._rtcAnswerConstraints=a,this._rtcOfferConstraints=t.rtcOfferConstraints||null,this._data=t.data||this._data,"incoming"!==this._direction)throw new p.NotSupportedError('"answer" not supported for outgoing RTCSession');if(this._status!==I.STATUS_WAITING_FOR_ANSWER)throw new p.InvalidStateError(this._status);if(this._sessionTimers.enabled&&v.isDecimal(t.sessionTimersExpires)&&(t.sessionTimersExpires>=_.MIN_SESSION_EXPIRES?this._sessionTimers.defaultExpires=t.sessionTimersExpires:this._sessionTimers.defaultExpires=_.SESSION_EXPIRES),this._status=I.STATUS_ANSWERED,this._createDialog(n,"UAS")){clearTimeout(this._timers.userNoAnswerTimer),r.unshift("Contact: ".concat(this._contact));var g=n.parseSDP();Array.isArray(g.media)||(g.media=[g.media]);var y,T=s(g.media);try{for(T.s();!(y=T.n()).done;){var C=y.value;"audio"===C.type&&(h=!0,C.direction&&"sendrecv"!==C.direction||(f=!0)),"video"===C.type&&(d=!0,C.direction&&"sendrecv"!==C.direction||(m=!0))}}catch(e){T.e(e)}finally{T.f()}if(o&&!1===i.audio){var b,S=s(o.getAudioTracks());try{for(S.s();!(b=S.n()).done;){var E=b.value;o.removeTrack(E)}}catch(e){S.e(e)}finally{S.f()}}if(o&&!1===i.video){var A,R=s(o.getVideoTracks());try{for(R.s();!(A=R.n()).done;){var O=A.value;o.removeTrack(O)}}catch(e){R.e(e)}finally{R.f()}}o||void 0!==i.audio||(i.audio=f),o||void 0!==i.video||(i.video=m),o||h||c.offerToReceiveAudio||(i.audio=!1),o||d||c.offerToReceiveVideo||(i.video=!1),this._createRTCConnection(l,u),Promise.resolve().then(function(){return o||(i.audio||i.video?(e._localMediaStreamLocallyGenerated=!0,navigator.mediaDevices.getUserMedia(i).catch(function(t){if(e._status===I.STATUS_TERMINATED)throw new Error("terminated");throw n.reply(480),e._failed("local",null,_.causes.USER_DENIED_MEDIA_ACCESS),w.warn('emit "getusermediafailed" [error:%o]',t),e.emit("getusermediafailed",t),new Error("getUserMedia() failed")})):void 0)}).then(function(t){if(e._status===I.STATUS_TERMINATED)throw new Error("terminated");e._localMediaStream=t,t&&t.getTracks().forEach(function(n){e._connection.addTrack(n,t)})}).then(function(){if(!e._late_sdp){var t={originator:"remote",type:"offer",sdp:n.body};w.debug('emit "sdp"'),e.emit("sdp",t);var r=new RTCSessionDescription({type:"offer",sdp:t.sdp});return e._connectionPromiseQueue=e._connectionPromiseQueue.then(function(){return e._connection.setRemoteDescription(r)}).catch(function(t){throw n.reply(488),e._failed("system",null,_.causes.WEBRTC_ERROR),w.warn('emit "peerconnection:setremotedescriptionfailed" [error:%o]',t),e.emit("peerconnection:setremotedescriptionfailed",t),new Error("peerconnection.setRemoteDescription() failed")}),e._connectionPromiseQueue}}).then(function(){if(e._status===I.STATUS_TERMINATED)throw new Error("terminated");return e._connecting(n),e._late_sdp?e._createLocalDescription("offer",e._rtcOfferConstraints).catch(function(){throw n.reply(500),new Error("_createLocalDescription() failed")}):e._createLocalDescription("answer",a).catch(function(){throw n.reply(500),new Error("_createLocalDescription() failed")})}).then(function(t){if(e._status===I.STATUS_TERMINATED)throw new Error("terminated");e._handleSessionTimersInIncomingRequest(n,r),n.reply(200,null,r,t,function(){e._status=I.STATUS_WAITING_FOR_ACK,e._setInvite2xxTimer(n,t),e._setACKTimer(),e._accepted("local")},function(){e._failed("system",null,_.causes.CONNECTION_ERROR)})}).catch(function(t){e._status!==I.STATUS_TERMINATED&&w.warn(t)})}else n.reply(500,"Error creating dialog")}},{key:"terminate",value:function(){var e=this,t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};w.debug("terminate()");var n,r=t.cause||_.causes.BYE,s=v.cloneArray(t.extraHeaders),i=t.body,o=t.status_code,l=t.reason_phrase;if(this._status===I.STATUS_TERMINATED)throw new p.InvalidStateError(this._status);switch(this._status){case I.STATUS_NULL:case I.STATUS_INVITE_SENT:case I.STATUS_1XX_RECEIVED:if(w.debug("canceling session"),o&&(o<200||o>=700))throw new TypeError("Invalid status_code: ".concat(o));o&&(l=l||_.REASON_PHRASE[o]||"",n="SIP ;cause=".concat(o,' ;text="').concat(l,'"')),this._status===I.STATUS_NULL||this._status===I.STATUS_INVITE_SENT?(this._is_canceled=!0,this._cancel_reason=n):this._status===I.STATUS_1XX_RECEIVED&&this._request.cancel(n),this._status=I.STATUS_CANCELED,this._failed("local",null,_.causes.CANCELED);break;case I.STATUS_WAITING_FOR_ANSWER:case I.STATUS_ANSWERED:if(w.debug("rejecting session"),(o=o||480)<300||o>=700)throw new TypeError("Invalid status_code: ".concat(o));this._request.reply(o,l,s,i),this._failed("local",null,_.causes.REJECTED);break;case I.STATUS_WAITING_FOR_ACK:case I.STATUS_CONFIRMED:if(w.debug("terminating session"),l=t.reason_phrase||_.REASON_PHRASE[o]||"",o&&(o<200||o>=700))throw new TypeError("Invalid status_code: ".concat(o));if(o&&s.push("Reason: SIP ;cause=".concat(o,'; text="').concat(l,'"')),this._status===I.STATUS_WAITING_FOR_ACK&&"incoming"===this._direction&&this._request.server_transaction.state!==m.C.STATUS_TERMINATED){var u=this._dialog;this.receiveRequest=function(t){t.method===_.ACK&&(e.sendRequest(_.BYE,{extraHeaders:s,body:i}),u.terminate())},this._request.server_transaction.on("stateChanged",function(){e._request.server_transaction.state===m.C.STATUS_TERMINATED&&(e.sendRequest(_.BYE,{extraHeaders:s,body:i}),u.terminate())}),this._ended("local",null,r),this._dialog=u,this._ua.newDialog(u)}else this.sendRequest(_.BYE,{extraHeaders:s,body:i}),this._ended("local",null,r)}}},{key:"sendDTMF",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};w.debug("sendDTMF() | tones: %s",e);var n=0,r=t.duration||null,s=t.interToneGap||null,i=t.transportType||_.DTMF_TRANSPORT.INFO;if(void 0===e)throw new TypeError("Not enough arguments");if(this._status!==I.STATUS_CONFIRMED&&this._status!==I.STATUS_WAITING_FOR_ACK&&this._status!==I.STATUS_1XX_RECEIVED)throw new p.InvalidStateError(this._status);if(i!==_.DTMF_TRANSPORT.INFO&&i!==_.DTMF_TRANSPORT.RFC2833)throw new TypeError("invalid transportType: ".concat(i));if("number"==typeof e&&(e=e.toString()),!e||"string"!=typeof e||!e.match(/^[0-9A-DR#*,]+$/i))throw new TypeError("Invalid tones: ".concat(e));if(r&&!v.isDecimal(r))throw new TypeError("Invalid tone duration: ".concat(r));if(r?rb.C.MAX_DURATION?(w.debug('"duration" value is greater than the maximum allowed, setting it to '.concat(b.C.MAX_DURATION," milliseconds")),r=b.C.MAX_DURATION):r=Math.abs(r):r=b.C.DEFAULT_DURATION,t.duration=r,s&&!v.isDecimal(s))throw new TypeError("Invalid interToneGap: ".concat(s));if(s?s=this._tones.length)return void(this._tones=null);var l=this._tones[n];n+=1;if(","===l)o=2e3;else{var u=new b(this);t.eventHandlers={onFailed:function(){i._tones=null}},u.send(l,t),o=r+s}setTimeout(e.bind(this),o)}.call(this));else{var o=this._getDTMFRTPSender();o&&(e=o.toneBuffer+e,o.insertDTMF(e,r,s))}}},{key:"sendInfo",value:function(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};if(w.debug("sendInfo()"),this._status!==I.STATUS_CONFIRMED&&this._status!==I.STATUS_WAITING_FOR_ACK&&this._status!==I.STATUS_1XX_RECEIVED)throw new p.InvalidStateError(this._status);new S(this).send(e,t,n)}},{key:"mute",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{audio:!0,video:!1};w.debug("mute()");var t=!1,n=!1;!1===this._audioMuted&&e.audio&&(t=!0,this._audioMuted=!0,this._toggleMuteAudio(!0)),!1===this._videoMuted&&e.video&&(n=!0,this._videoMuted=!0,this._toggleMuteVideo(!0)),!0!==t&&!0!==n||this._onmute({audio:t,video:n})}},{key:"unmute",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{audio:!0,video:!0};w.debug("unmute()");var t=!1,n=!1;!0===this._audioMuted&&e.audio&&(t=!0,this._audioMuted=!1,!1===this._localHold&&this._toggleMuteAudio(!1)),!0===this._videoMuted&&e.video&&(n=!0,this._videoMuted=!1,!1===this._localHold&&this._toggleMuteVideo(!1)),!0!==t&&!0!==n||this._onunmute({audio:t,video:n})}},{key:"hold",value:function(){var e=this,t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=arguments.length>1?arguments[1]:void 0;if(w.debug("hold()"),this._status!==I.STATUS_WAITING_FOR_ACK&&this._status!==I.STATUS_CONFIRMED)return!1;if(!0===this._localHold)return!1;if(!this._isReadyToReOffer())return!1;this._localHold=!0,this._onhold("local");var r={succeeded:function(){n&&n()},failed:function(){e.terminate({cause:_.causes.WEBRTC_ERROR,status_code:500,reason_phrase:"Hold Failed"})}};return t.useUpdate?this._sendUpdate({sdpOffer:!0,eventHandlers:r,extraHeaders:t.extraHeaders}):this._sendReinvite({eventHandlers:r,extraHeaders:t.extraHeaders}),!0}},{key:"unhold",value:function(){var e=this,t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=arguments.length>1?arguments[1]:void 0;if(w.debug("unhold()"),this._status!==I.STATUS_WAITING_FOR_ACK&&this._status!==I.STATUS_CONFIRMED)return!1;if(!1===this._localHold)return!1;if(!this._isReadyToReOffer())return!1;this._localHold=!1,this._onunhold("local");var r={succeeded:function(){n&&n()},failed:function(){e.terminate({cause:_.causes.WEBRTC_ERROR,status_code:500,reason_phrase:"Unhold Failed"})}};return t.useUpdate?this._sendUpdate({sdpOffer:!0,eventHandlers:r,extraHeaders:t.extraHeaders}):this._sendReinvite({eventHandlers:r,extraHeaders:t.extraHeaders}),!0}},{key:"renegotiate",value:function(){var e=this,t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=arguments.length>1?arguments[1]:void 0;w.debug("renegotiate()");var r=t.rtcOfferConstraints||null;if(this._status!==I.STATUS_WAITING_FOR_ACK&&this._status!==I.STATUS_CONFIRMED)return!1;if(!this._isReadyToReOffer())return!1;var s={succeeded:function(){n&&n()},failed:function(){e.terminate({cause:_.causes.WEBRTC_ERROR,status_code:500,reason_phrase:"Media Renegotiation Failed"})}};return this._setLocalMediaStatus(),t.useUpdate?this._sendUpdate({sdpOffer:!0,eventHandlers:s,rtcOfferConstraints:r,extraHeaders:t.extraHeaders}):this._sendReinvite({eventHandlers:s,rtcOfferConstraints:r,extraHeaders:t.extraHeaders}),!0}},{key:"refer",value:function(e,t){var n=this;w.debug("refer()");var r=e;if(this._status!==I.STATUS_WAITING_FOR_ACK&&this._status!==I.STATUS_CONFIRMED)return!1;if(!(e=this._ua.normalizeTarget(e)))throw new TypeError("Invalid target: ".concat(r));var s=new A(this);s.sendRefer(e,t);var i=s.id;return this._referSubscribers[i]=s,s.on("requestFailed",function(){delete n._referSubscribers[i]}),s.on("accepted",function(){delete n._referSubscribers[i]}),s.on("failed",function(){delete n._referSubscribers[i]}),s}},{key:"sendRequest",value:function(e,t){return w.debug("sendRequest()"),this._dialog.sendRequest(e,t)}},{key:"receiveRequest",value:function(e){var t=this;if(w.debug("receiveRequest()"),e.method===_.CANCEL)this._status!==I.STATUS_WAITING_FOR_ANSWER&&this._status!==I.STATUS_ANSWERED||(this._status=I.STATUS_CANCELED,this._request.reply(487),this._failed("remote",e,_.causes.CANCELED));else switch(e.method){case _.ACK:if(this._status!==I.STATUS_WAITING_FOR_ACK)return;if(this._status=I.STATUS_CONFIRMED,clearTimeout(this._timers.ackTimer),clearTimeout(this._timers.invite2xxTimer),this._late_sdp){if(!e.body){this.terminate({cause:_.causes.MISSING_SDP,status_code:400});break}var n={originator:"remote",type:"answer",sdp:e.body};w.debug('emit "sdp"'),this.emit("sdp",n);var r=new RTCSessionDescription({type:"answer",sdp:n.sdp});this._connectionPromiseQueue=this._connectionPromiseQueue.then(function(){return t._connection.setRemoteDescription(r)}).then(function(){t._is_confirmed||t._confirmed("remote",e)}).catch(function(e){t.terminate({cause:_.causes.BAD_MEDIA_DESCRIPTION,status_code:488}),w.warn('emit "peerconnection:setremotedescriptionfailed" [error:%o]',e),t.emit("peerconnection:setremotedescriptionfailed",e)})}else this._is_confirmed||this._confirmed("remote",e);break;case _.BYE:this._status===I.STATUS_CONFIRMED||this._status===I.STATUS_WAITING_FOR_ACK?(e.reply(200),this._ended("remote",e,_.causes.BYE)):this._status===I.STATUS_INVITE_RECEIVED||this._status===I.STATUS_WAITING_FOR_ANSWER?(e.reply(200),this._request.reply(487,"BYE Received"),this._ended("remote",e,_.causes.BYE)):e.reply(403,"Wrong Status");break;case _.INVITE:this._status===I.STATUS_CONFIRMED?e.hasHeader("replaces")?this._receiveReplaces(e):this._receiveReinvite(e):e.reply(403,"Wrong Status");break;case _.INFO:if(this._status===I.STATUS_1XX_RECEIVED||this._status===I.STATUS_WAITING_FOR_ANSWER||this._status===I.STATUS_ANSWERED||this._status===I.STATUS_WAITING_FOR_ACK||this._status===I.STATUS_CONFIRMED){var s=e.hasHeader("Content-Type")?e.getHeader("Content-Type").toLowerCase():void 0;s&&s.match(/^application\/dtmf-relay/i)?new b(this).init_incoming(e):void 0!==s?new S(this).init_incoming(e):e.reply(415)}else e.reply(403,"Wrong Status");break;case _.UPDATE:this._status===I.STATUS_CONFIRMED?this._receiveUpdate(e):e.reply(403,"Wrong Status");break;case _.REFER:this._status===I.STATUS_CONFIRMED?this._receiveRefer(e):e.reply(403,"Wrong Status");break;case _.NOTIFY:this._status===I.STATUS_CONFIRMED?this._receiveNotify(e):e.reply(403,"Wrong Status");break;default:e.reply(501)}}},{key:"onTransportError",value:function(){w.warn("onTransportError()"),this._status!==I.STATUS_TERMINATED&&this.terminate({status_code:500,reason_phrase:_.causes.CONNECTION_ERROR,cause:_.causes.CONNECTION_ERROR})}},{key:"onRequestTimeout",value:function(){w.warn("onRequestTimeout()"),this._status!==I.STATUS_TERMINATED&&this.terminate({status_code:408,reason_phrase:_.causes.REQUEST_TIMEOUT,cause:_.causes.REQUEST_TIMEOUT})}},{key:"onDialogError",value:function(){w.warn("onDialogError()"),this._status!==I.STATUS_TERMINATED&&this.terminate({status_code:500,reason_phrase:_.causes.DIALOG_ERROR,cause:_.causes.DIALOG_ERROR})}},{key:"newDTMF",value:function(e){w.debug("newDTMF()"),this.emit("newDTMF",e)}},{key:"newInfo",value:function(e){w.debug("newInfo()"),this.emit("newInfo",e)}},{key:"_isReadyToReOffer",value:function(){return this._rtcReady?this._dialog?!0!==this._dialog.uac_pending_reply&&!0!==this._dialog.uas_pending_reply||(w.debug("_isReadyToReOffer() | there is another INVITE/UPDATE transaction in progress"),!1):(w.debug("_isReadyToReOffer() | session not established yet"),!1):(w.debug("_isReadyToReOffer() | internal WebRTC status not ready"),!1)}},{key:"_close",value:function(){if(w.debug("close()"),this._localMediaStream&&this._localMediaStreamLocallyGenerated&&(w.debug("close() | closing local MediaStream"),v.closeMediaStream(this._localMediaStream)),this._status!==I.STATUS_TERMINATED){if(this._status=I.STATUS_TERMINATED,this._connection)try{this._connection.close()}catch(e){w.warn("close() | error closing the RTCPeerConnection: %o",e)}for(var e in this._timers)Object.prototype.hasOwnProperty.call(this._timers,e)&&clearTimeout(this._timers[e]);for(var t in clearTimeout(this._sessionTimers.timer),this._dialog&&(this._dialog.terminate(),delete this._dialog),this._earlyDialogs)Object.prototype.hasOwnProperty.call(this._earlyDialogs,t)&&(this._earlyDialogs[t].terminate(),delete this._earlyDialogs[t]);for(var n in this._referSubscribers)Object.prototype.hasOwnProperty.call(this._referSubscribers,n)&&delete this._referSubscribers[n];this._ua.destroyRTCSession(this)}}},{key:"_setInvite2xxTimer",value:function(e,t){var n=g.T1;this._timers.invite2xxTimer=setTimeout(function r(){this._status===I.STATUS_WAITING_FOR_ACK&&(e.reply(200,null,["Contact: ".concat(this._contact)],t),ng.T2&&(n=g.T2),this._timers.invite2xxTimer=setTimeout(r.bind(this),n))}.bind(this),n)}},{key:"_setACKTimer",value:function(){var e=this;this._timers.ackTimer=setTimeout(function(){e._status===I.STATUS_WAITING_FOR_ACK&&(w.debug("no ACK received, terminating the session"),clearTimeout(e._timers.invite2xxTimer),e.sendRequest(_.BYE),e._ended("remote",null,_.causes.NO_ACK))},g.TIMER_H)}},{key:"_createRTCConnection",value:function(e,t){var n=this;this._connection=new RTCPeerConnection(e,t),this._connection.addEventListener("iceconnectionstatechange",function(){"failed"===n._connection.iceConnectionState&&n.terminate({cause:_.causes.RTP_TIMEOUT,status_code:408,reason_phrase:_.causes.RTP_TIMEOUT})}),w.debug('emit "peerconnection"'),this.emit("peerconnection",{peerconnection:this._connection})}},{key:"_createLocalDescription",value:function(e,t){var n=this;if(w.debug("createLocalDescription()"),"offer"!==e&&"answer"!==e)throw new Error('createLocalDescription() | invalid type "'.concat(e,'"'));var r=this._connection;return this._rtcReady=!1,Promise.resolve().then(function(){return"offer"===e?r.createOffer(t).catch(function(e){return w.warn('emit "peerconnection:createofferfailed" [error:%o]',e),n.emit("peerconnection:createofferfailed",e),Promise.reject(e)}):r.createAnswer(t).catch(function(e){return w.warn('emit "peerconnection:createanswerfailed" [error:%o]',e),n.emit("peerconnection:createanswerfailed",e),Promise.reject(e)})}).then(function(e){return r.setLocalDescription(e).catch(function(e){return n._rtcReady=!0,w.warn('emit "peerconnection:setlocaldescriptionfailed" [error:%o]',e),n.emit("peerconnection:setlocaldescriptionfailed",e),Promise.reject(e)})}).then(function(){var s=t&&t.iceRestart;if("complete"===r.iceGatheringState&&!s||"gathering"===r.iceGatheringState&&n._iceReady){n._rtcReady=!0;var i={originator:"local",type:e,sdp:r.localDescription.sdp};return w.debug('emit "sdp"'),n.emit("sdp",i),Promise.resolve(i.sdp)}return new Promise(function(t){var s,i,o=!1;n._iceReady=!1;var l=function(){r.removeEventListener("icecandidate",s),r.removeEventListener("icegatheringstatechange",i),o=!0,n._rtcReady=!0,n._iceReady=!0;var l={originator:"local",type:e,sdp:r.localDescription.sdp};w.debug('emit "sdp"'),n.emit("sdp",l),t(l.sdp)};r.addEventListener("icecandidate",s=function(e){var t=e.candidate;t?n.emit("icecandidate",{candidate:t,ready:l}):o||l()}),r.addEventListener("icegatheringstatechange",i=function(){"complete"!==r.iceGatheringState||o||l()})})})}},{key:"_createDialog",value:function(e,t,n){var r="UAS"===t?e.to_tag:e.from_tag,s="UAS"===t?e.from_tag:e.to_tag,i=e.call_id+r+s,o=this._earlyDialogs[i];if(n)return!!o||((o=new T(this,e,t,T.C.STATUS_EARLY)).error?(w.debug(o.error),this._failed("remote",e,_.causes.INTERNAL_ERROR),!1):(this._earlyDialogs[i]=o,!0));if(this._from_tag=e.from_tag,this._to_tag=e.to_tag,o)return o.update(e,t),this._dialog=o,delete this._earlyDialogs[i],!0;var l=new T(this,e,t);return l.error?(w.debug(l.error),this._failed("remote",e,_.causes.INTERNAL_ERROR),!1):(this._dialog=l,!0)}},{key:"_receiveReinvite",value:function(e){var t=this;w.debug("receiveReinvite()");var n=e.hasHeader("Content-Type")?e.getHeader("Content-Type").toLowerCase():void 0,r={request:e,callback:void 0,reject:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};s=!0;var n=t.status_code||403,r=t.reason_phrase||"",i=v.cloneArray(t.extraHeaders);if(this._status!==I.STATUS_CONFIRMED)return!1;if(n<300||n>=700)throw new TypeError("Invalid status_code: ".concat(n));e.reply(n,r,i)}.bind(this)},s=!1;if(this.emit("reinvite",r),!s){if(this._late_sdp=!1,!e.body)return this._late_sdp=!0,this._remoteHold&&(this._remoteHold=!1,this._onunhold("remote")),void(this._connectionPromiseQueue=this._connectionPromiseQueue.then(function(){return t._createLocalDescription("offer",t._rtcOfferConstraints)}).then(function(e){i.call(t,e)}).catch(function(){e.reply(500)}));if("application/sdp"!==n)return w.debug("invalid Content-Type"),void e.reply(415);this._processInDialogSdpOffer(e).then(function(e){t._status!==I.STATUS_TERMINATED&&i.call(t,e)}).catch(function(e){w.warn(e)})}function i(t){var n=this,s=["Contact: ".concat(this._contact)];this._handleSessionTimersInIncomingRequest(e,s),this._late_sdp&&(t=this._mangleOffer(t)),e.reply(200,null,s,t,function(){n._status=I.STATUS_WAITING_FOR_ACK,n._setInvite2xxTimer(e,t),n._setACKTimer()}),"function"==typeof r.callback&&r.callback()}}},{key:"_receiveUpdate",value:function(e){var t=this;w.debug("receiveUpdate()");var n=e.hasHeader("Content-Type")?e.getHeader("Content-Type").toLowerCase():void 0,r={request:e,callback:void 0,reject:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};s=!0;var n=t.status_code||403,r=t.reason_phrase||"",i=v.cloneArray(t.extraHeaders);if(this._status!==I.STATUS_CONFIRMED)return!1;if(n<300||n>=700)throw new TypeError("Invalid status_code: ".concat(n));e.reply(n,r,i)}.bind(this)},s=!1;if(this.emit("update",r),!s)if(e.body){if("application/sdp"!==n)return w.debug("invalid Content-Type"),void e.reply(415);this._processInDialogSdpOffer(e).then(function(e){t._status!==I.STATUS_TERMINATED&&i.call(t,e)}).catch(function(e){w.warn(e)})}else i.call(this,null);function i(t){var n=["Contact: ".concat(this._contact)];this._handleSessionTimersInIncomingRequest(e,n),e.reply(200,null,n,t),"function"==typeof r.callback&&r.callback()}}},{key:"_processInDialogSdpOffer",value:function(e){var t=this;w.debug("_processInDialogSdpOffer()");var n,r=e.parseSDP(),i=!1,o=s(r.media);try{for(o.s();!(n=o.n()).done;){var l=n.value;if(-1!==O.indexOf(l.type)){var u=l.direction||r.direction||"sendrecv";if("sendonly"!==u&&"inactive"!==u){i=!1;break}i=!0}}}catch(e){o.e(e)}finally{o.f()}var a={originator:"remote",type:"offer",sdp:e.body};w.debug('emit "sdp"'),this.emit("sdp",a);var c=new RTCSessionDescription({type:"offer",sdp:a.sdp});return this._connectionPromiseQueue=this._connectionPromiseQueue.then(function(){if(t._status===I.STATUS_TERMINATED)throw new Error("terminated");return t._connection.setRemoteDescription(c).catch(function(n){throw e.reply(488),w.warn('emit "peerconnection:setremotedescriptionfailed" [error:%o]',n),t.emit("peerconnection:setremotedescriptionfailed",n),n})}).then(function(){if(t._status===I.STATUS_TERMINATED)throw new Error("terminated");!0===t._remoteHold&&!1===i?(t._remoteHold=!1,t._onunhold("remote")):!1===t._remoteHold&&!0===i&&(t._remoteHold=!0,t._onhold("remote"))}).then(function(){if(t._status===I.STATUS_TERMINATED)throw new Error("terminated");return t._createLocalDescription("answer",t._rtcAnswerConstraints).catch(function(t){throw e.reply(500),w.warn('emit "peerconnection:createtelocaldescriptionfailed" [error:%o]',t),t})}).catch(function(e){w.warn("_processInDialogSdpOffer() failed [error: %o]",e)}),this._connectionPromiseQueue}},{key:"_receiveRefer",value:function(e){var t=this;if(w.debug("receiveRefer()"),!e.refer_to)return w.debug("no Refer-To header field present in REFER"),void e.reply(400);if(e.refer_to.uri.scheme!==_.SIP)return w.debug("Refer-To header field points to a non-SIP URI scheme"),void e.reply(416);e.reply(202);var r=new E(this,e.cseq);w.debug('emit "refer"'),this.emit("refer",{request:e,accept:function(s,i){(function(t){var s=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};if(t="function"==typeof t?t:null,this._status!==I.STATUS_WAITING_FOR_ACK&&this._status!==I.STATUS_CONFIRMED)return!1;var i=new n(this._ua);if(i.on("progress",function(e){var t=e.response;r.notify(t.status_code,t.reason_phrase)}),i.on("accepted",function(e){var t=e.response;r.notify(t.status_code,t.reason_phrase)}),i.on("_failed",function(e){var t=e.message,n=e.cause;t?r.notify(t.status_code,t.reason_phrase):r.notify(487,n)}),e.refer_to.uri.hasHeader("replaces")){var o=decodeURIComponent(e.refer_to.uri.getHeader("replaces"));s.extraHeaders=v.cloneArray(s.extraHeaders),s.extraHeaders.push("Replaces: ".concat(o))}i.connect(e.refer_to.uri.toAor(),s,t)}).call(t,s,i)},reject:function(){(function(){r.notify(603)}).call(t)}})}},{key:"_receiveNotify",value:function(e){switch(w.debug("receiveNotify()"),e.event||e.reply(400),e.event.event){case"refer":var t,n;if(e.event.params&&e.event.params.id)t=e.event.params.id,n=this._referSubscribers[t];else{if(1!==Object.keys(this._referSubscribers).length)return void e.reply(400,"Missing event id parameter");n=this._referSubscribers[Object.keys(this._referSubscribers)[0]]}if(!n)return void e.reply(481,"Subscription does not exist");n.receiveNotify(e),e.reply(200);break;default:e.reply(489)}}},{key:"_receiveReplaces",value:function(e){var t=this;w.debug("receiveReplaces()"),this.emit("replaces",{request:e,accept:function(r){(function(t){var r=this;if(this._status!==I.STATUS_WAITING_FOR_ACK&&this._status!==I.STATUS_CONFIRMED)return!1;var s=new n(this._ua);s.on("confirmed",function(){r.terminate()}),s.init_incoming(e,t)}).call(t,r)},reject:function(){(function(){w.debug("Replaced INVITE rejected by the user"),e.reply(486)}).call(t)}})}},{key:"_sendInitialRequest",value:function(e,t,n){var r=this,s=new C(this._ua,this._request,{onRequestTimeout:function(){r.onRequestTimeout()},onTransportError:function(){r.onTransportError()},onAuthenticated:function(e){r._request=e},onReceiveResponse:function(e){r._receiveInviteResponse(e)}});Promise.resolve().then(function(){return n||(e.audio||e.video?(r._localMediaStreamLocallyGenerated=!0,navigator.mediaDevices.getUserMedia(e).catch(function(e){if(r._status===I.STATUS_TERMINATED)throw new Error("terminated");throw r._failed("local",null,_.causes.USER_DENIED_MEDIA_ACCESS),w.warn('emit "getusermediafailed" [error:%o]',e),r.emit("getusermediafailed",e),e})):void 0)}).then(function(e){if(r._status===I.STATUS_TERMINATED)throw new Error("terminated");return r._localMediaStream=e,e&&e.getTracks().forEach(function(t){r._connection.addTrack(t,e)}),r._connecting(r._request),r._createLocalDescription("offer",t).catch(function(e){throw r._failed("local",null,_.causes.WEBRTC_ERROR),e})}).then(function(e){if(r._is_canceled||r._status===I.STATUS_TERMINATED)throw new Error("terminated");r._request.body=e,r._status=I.STATUS_INVITE_SENT,w.debug('emit "sending" [request:%o]',r._request),r.emit("sending",{request:r._request}),s.send()}).catch(function(e){r._status!==I.STATUS_TERMINATED&&w.warn(e)})}},{key:"_getDTMFRTPSender",value:function(){var e=this._connection.getSenders().find(function(e){return e.track&&"audio"===e.track.kind});if(e&&e.dtmf)return e.dtmf;w.warn("sendDTMF() | no local audio track to send DTMF with")}},{key:"_receiveInviteResponse",value:function(e){var t=this;if(w.debug("receiveInviteResponse()"),this._dialog&&e.status_code>=200&&e.status_code<=299){if(this._dialog.id.call_id===e.call_id&&this._dialog.id.local_tag===e.from_tag&&this._dialog.id.remote_tag===e.to_tag)return void this.sendRequest(_.ACK);var n=new T(this,e,"UAC");return void 0!==n.error?void w.debug(n.error):(this.sendRequest(_.ACK),void this.sendRequest(_.BYE))}if(this._is_canceled)e.status_code>=100&&e.status_code<200?this._request.cancel(this._cancel_reason):e.status_code>=200&&e.status_code<299&&this._acceptAndTerminate(e);else if(this._status===I.STATUS_INVITE_SENT||this._status===I.STATUS_1XX_RECEIVED)switch(!0){case/^100$/.test(e.status_code):this._status=I.STATUS_1XX_RECEIVED;break;case/^1[0-9]{2}$/.test(e.status_code):if(!e.to_tag){w.debug("1xx response received without to tag");break}if(e.hasHeader("contact")&&!this._createDialog(e,"UAC",!0))break;if(this._status=I.STATUS_1XX_RECEIVED,!e.body){this._progress("remote",e);break}var r={originator:"remote",type:"answer",sdp:e.body};w.debug('emit "sdp"'),this.emit("sdp",r);var s=new RTCSessionDescription({type:"answer",sdp:r.sdp});this._connectionPromiseQueue=this._connectionPromiseQueue.then(function(){return t._connection.setRemoteDescription(s)}).then(function(){return t._progress("remote",e)}).catch(function(e){w.warn('emit "peerconnection:setremotedescriptionfailed" [error:%o]',e),t.emit("peerconnection:setremotedescriptionfailed",e)});break;case/^2[0-9]{2}$/.test(e.status_code):if(this._status=I.STATUS_CONFIRMED,!e.body){this._acceptAndTerminate(e,400,_.causes.MISSING_SDP),this._failed("remote",e,_.causes.BAD_MEDIA_DESCRIPTION);break}if(!this._createDialog(e,"UAC"))break;var i={originator:"remote",type:"answer",sdp:e.body};w.debug('emit "sdp"'),this.emit("sdp",i);var o=new RTCSessionDescription({type:"answer",sdp:i.sdp});this._connectionPromiseQueue=this._connectionPromiseQueue.then(function(){if("stable"===t._connection.signalingState)return t._connection.createOffer(t._rtcOfferConstraints).then(function(e){return t._connection.setLocalDescription(e)}).catch(function(n){t._acceptAndTerminate(e,500,n.toString()),t._failed("local",e,_.causes.WEBRTC_ERROR)})}).then(function(){t._connection.setRemoteDescription(o).then(function(){t._handleSessionTimersInIncomingResponse(e),t._accepted("remote",e),t.sendRequest(_.ACK),t._confirmed("local",null)}).catch(function(n){t._acceptAndTerminate(e,488,"Not Acceptable Here"),t._failed("remote",e,_.causes.BAD_MEDIA_DESCRIPTION),w.warn('emit "peerconnection:setremotedescriptionfailed" [error:%o]',n),t.emit("peerconnection:setremotedescriptionfailed",n)})});break;default:var l=v.sipErrorCause(e.status_code);this._failed("remote",e,l)}}},{key:"_sendReinvite",value:function(){var e=this,t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};w.debug("sendReinvite()");var n=v.cloneArray(t.extraHeaders),r=v.cloneObject(t.eventHandlers),s=t.rtcOfferConstraints||this._rtcOfferConstraints||null,i=!1;function o(e){r.failed&&r.failed(e)}n.push("Contact: ".concat(this._contact)),n.push("Content-Type: application/sdp"),this._sessionTimers.running&&n.push("Session-Expires: ".concat(this._sessionTimers.currentExpires,";refresher=").concat(this._sessionTimers.refresher?"uac":"uas")),this._connectionPromiseQueue=this._connectionPromiseQueue.then(function(){return e._createLocalDescription("offer",s)}).then(function(t){var s={originator:"local",type:"offer",sdp:t=e._mangleOffer(t)};w.debug('emit "sdp"'),e.emit("sdp",s),e.sendRequest(_.INVITE,{extraHeaders:n,body:t,eventHandlers:{onSuccessResponse:function(t){(function(e){var t=this;if(this._status===I.STATUS_TERMINATED)return;if(this.sendRequest(_.ACK),i)return;if(this._handleSessionTimersInIncomingResponse(e),!e.body)return void o.call(this);if(!e.hasHeader("Content-Type")||"application/sdp"!==e.getHeader("Content-Type").toLowerCase())return void o.call(this);var n={originator:"remote",type:"answer",sdp:e.body};w.debug('emit "sdp"'),this.emit("sdp",n);var s=new RTCSessionDescription({type:"answer",sdp:n.sdp});this._connectionPromiseQueue=this._connectionPromiseQueue.then(function(){return t._connection.setRemoteDescription(s)}).then(function(){r.succeeded&&r.succeeded(e)}).catch(function(e){o.call(t),w.warn('emit "peerconnection:setremotedescriptionfailed" [error:%o]',e),t.emit("peerconnection:setremotedescriptionfailed",e)})}).call(e,t),i=!0},onErrorResponse:function(t){o.call(e,t)},onTransportError:function(){e.onTransportError()},onRequestTimeout:function(){e.onRequestTimeout()},onDialogError:function(){e.onDialogError()}}})}).catch(function(){o()})}},{key:"_sendUpdate",value:function(){var e=this,t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};w.debug("sendUpdate()");var n=v.cloneArray(t.extraHeaders),r=v.cloneObject(t.eventHandlers),s=t.rtcOfferConstraints||this._rtcOfferConstraints||null,i=t.sdpOffer||!1,o=!1;function l(e){var t=this;if(this._status!==I.STATUS_TERMINATED&&!o)if(this._handleSessionTimersInIncomingResponse(e),i){if(!e.body)return void u.call(this);if(!e.hasHeader("Content-Type")||"application/sdp"!==e.getHeader("Content-Type").toLowerCase())return void u.call(this);var n={originator:"remote",type:"answer",sdp:e.body};w.debug('emit "sdp"'),this.emit("sdp",n);var s=new RTCSessionDescription({type:"answer",sdp:n.sdp});this._connectionPromiseQueue=this._connectionPromiseQueue.then(function(){return t._connection.setRemoteDescription(s)}).then(function(){r.succeeded&&r.succeeded(e)}).catch(function(e){u.call(t),w.warn('emit "peerconnection:setremotedescriptionfailed" [error:%o]',e),t.emit("peerconnection:setremotedescriptionfailed",e)})}else r.succeeded&&r.succeeded(e)}function u(e){r.failed&&r.failed(e)}n.push("Contact: ".concat(this._contact)),this._sessionTimers.running&&n.push("Session-Expires: ".concat(this._sessionTimers.currentExpires,";refresher=").concat(this._sessionTimers.refresher?"uac":"uas")),i?(n.push("Content-Type: application/sdp"),this._connectionPromiseQueue=this._connectionPromiseQueue.then(function(){return e._createLocalDescription("offer",s)}).then(function(t){var r={originator:"local",type:"offer",sdp:t=e._mangleOffer(t)};w.debug('emit "sdp"'),e.emit("sdp",r),e.sendRequest(_.UPDATE,{extraHeaders:n,body:t,eventHandlers:{onSuccessResponse:function(t){l.call(e,t),o=!0},onErrorResponse:function(t){u.call(e,t)},onTransportError:function(){e.onTransportError()},onRequestTimeout:function(){e.onRequestTimeout()},onDialogError:function(){e.onDialogError()}}})}).catch(function(){u.call(e)})):this.sendRequest(_.UPDATE,{extraHeaders:n,eventHandlers:{onSuccessResponse:function(t){l.call(e,t)},onErrorResponse:function(t){u.call(e,t)},onTransportError:function(){e.onTransportError()},onRequestTimeout:function(){e.onRequestTimeout()},onDialogError:function(){e.onDialogError()}}})}},{key:"_acceptAndTerminate",value:function(e,t,n){w.debug("acceptAndTerminate()");var r=[];t&&(n=n||_.REASON_PHRASE[t]||"",r.push("Reason: SIP ;cause=".concat(t,'; text="').concat(n,'"'))),(this._dialog||this._createDialog(e,"UAC"))&&(this.sendRequest(_.ACK),this.sendRequest(_.BYE,{extraHeaders:r})),this._status=I.STATUS_TERMINATED}},{key:"_mangleOffer",value:function(e){if(!this._localHold&&!this._remoteHold)return e;if(e=d.parse(e),this._localHold&&!this._remoteHold){w.debug("mangleOffer() | me on hold, mangling offer");var t,n=s(e.media);try{for(n.s();!(t=n.n()).done;){var r=t.value;-1!==O.indexOf(r.type)&&(r.direction?"sendrecv"===r.direction?r.direction="sendonly":"recvonly"===r.direction&&(r.direction="inactive"):r.direction="sendonly")}}catch(e){n.e(e)}finally{n.f()}}else if(this._localHold&&this._remoteHold){w.debug("mangleOffer() | both on hold, mangling offer");var i,o=s(e.media);try{for(o.s();!(i=o.n()).done;){var l=i.value;-1!==O.indexOf(l.type)&&(l.direction="inactive")}}catch(e){o.e(e)}finally{o.f()}}else if(this._remoteHold){w.debug("mangleOffer() | remote on hold, mangling offer");var u,a=s(e.media);try{for(a.s();!(u=a.n()).done;){var c=u.value;-1!==O.indexOf(c.type)&&(c.direction?"sendrecv"===c.direction?c.direction="recvonly":"recvonly"===c.direction&&(c.direction="inactive"):c.direction="recvonly")}}catch(e){a.e(e)}finally{a.f()}}return d.write(e)}},{key:"_setLocalMediaStatus",value:function(){var e=!0,t=!0;(this._localHold||this._remoteHold)&&(e=!1,t=!1),this._audioMuted&&(e=!1),this._videoMuted&&(t=!1),this._toggleMuteAudio(!e),this._toggleMuteVideo(!t)}},{key:"_handleSessionTimersInIncomingRequest",value:function(e,t){var n;this._sessionTimers.enabled&&(e.session_expires&&e.session_expires>=_.MIN_SESSION_EXPIRES?(this._sessionTimers.currentExpires=e.session_expires,n=e.session_expires_refresher||"uas"):(this._sessionTimers.currentExpires=this._sessionTimers.defaultExpires,n="uas"),t.push("Session-Expires: ".concat(this._sessionTimers.currentExpires,";refresher=").concat(n)),this._sessionTimers.refresher="uas"===n,this._runSessionTimer())}},{key:"_handleSessionTimersInIncomingResponse",value:function(e){var t;this._sessionTimers.enabled&&(e.session_expires&&e.session_expires>=_.MIN_SESSION_EXPIRES?(this._sessionTimers.currentExpires=e.session_expires,t=e.session_expires_refresher||"uac"):(this._sessionTimers.currentExpires=this._sessionTimers.defaultExpires,t="uac"),this._sessionTimers.refresher="uac"===t,this._runSessionTimer())}},{key:"_runSessionTimer",value:function(){var e=this,t=this._sessionTimers.currentExpires;this._sessionTimers.running=!0,clearTimeout(this._sessionTimers.timer),this._sessionTimers.refresher?this._sessionTimers.timer=setTimeout(function(){e._status!==I.STATUS_TERMINATED&&e._isReadyToReOffer()&&(w.debug("runSessionTimer() | sending session refresh request"),e._sessionTimers.refreshMethod===_.UPDATE?e._sendUpdate():e._sendReinvite())},500*t):this._sessionTimers.timer=setTimeout(function(){e._status!==I.STATUS_TERMINATED&&(w.warn("runSessionTimer() | timer expired, terminating the session"),e.terminate({cause:_.causes.REQUEST_TIMEOUT,status_code:408,reason_phrase:"Session Timer Expired"}))},1100*t)}},{key:"_toggleMuteAudio",value:function(e){var t,n=s(this._connection.getSenders().filter(function(e){return e.track&&"audio"===e.track.kind}));try{for(n.s();!(t=n.n()).done;){t.value.track.enabled=!e}}catch(e){n.e(e)}finally{n.f()}}},{key:"_toggleMuteVideo",value:function(e){var t,n=s(this._connection.getSenders().filter(function(e){return e.track&&"video"===e.track.kind}));try{for(n.s();!(t=n.n()).done;){t.value.track.enabled=!e}}catch(e){n.e(e)}finally{n.f()}}},{key:"_newRTCSession",value:function(e,t){w.debug("newRTCSession()"),this._ua.newRTCSession(this,{originator:e,session:this,request:t})}},{key:"_connecting",value:function(e){w.debug("session connecting"),w.debug('emit "connecting"'),this.emit("connecting",{request:e})}},{key:"_progress",value:function(e,t){w.debug("session progress"),w.debug('emit "progress"'),this.emit("progress",{originator:e,response:t||null})}},{key:"_accepted",value:function(e,t){w.debug("session accepted"),this._start_time=new Date,w.debug('emit "accepted"'),this.emit("accepted",{originator:e,response:t||null})}},{key:"_confirmed",value:function(e,t){w.debug("session confirmed"),this._is_confirmed=!0,w.debug('emit "confirmed"'),this.emit("confirmed",{originator:e,ack:t||null})}},{key:"_ended",value:function(e,t,n){w.debug("session ended"),this._end_time=new Date,this._close(),w.debug('emit "ended"'),this.emit("ended",{originator:e,message:t||null,cause:n})}},{key:"_failed",value:function(e,t,n){w.debug("session failed"),w.debug('emit "_failed"'),this.emit("_failed",{originator:e,message:t||null,cause:n}),this._close(),w.debug('emit "failed"'),this.emit("failed",{originator:e,message:t||null,cause:n})}},{key:"_onhold",value:function(e){w.debug("session onhold"),this._setLocalMediaStatus(),w.debug('emit "hold"'),this.emit("hold",{originator:e})}},{key:"_onunhold",value:function(e){w.debug("session onunhold"),this._setLocalMediaStatus(),w.debug('emit "unhold"'),this.emit("unhold",{originator:e})}},{key:"_onmute",value:function(e){var t=e.audio,n=e.video;w.debug("session onmute"),this._setLocalMediaStatus(),w.debug('emit "muted"'),this.emit("muted",{audio:t,video:n})}},{key:"_onunmute",value:function(e){var t=e.audio,n=e.video;w.debug("session onunmute"),this._setLocalMediaStatus(),w.debug('emit "unmuted"'),this.emit("unmuted",{audio:t,video:n})}},{key:"C",get:function(){return I}},{key:"causes",get:function(){return _.causes}},{key:"id",get:function(){return this._id}},{key:"connection",get:function(){return this._connection}},{key:"contact",get:function(){return this._contact}},{key:"direction",get:function(){return this._direction}},{key:"local_identity",get:function(){return this._local_identity}},{key:"remote_identity",get:function(){return this._remote_identity}},{key:"start_time",get:function(){return this._start_time}},{key:"end_time",get:function(){return this._end_time}},{key:"data",get:function(){return this._data},set:function(e){this._data=e}},{key:"status",get:function(){return this._status}}]),n}()},{"./Constants":2,"./Dialog":3,"./Exceptions":6,"./Logger":9,"./RTCSession/DTMF":15,"./RTCSession/Info":16,"./RTCSession/ReferNotifier":17,"./RTCSession/ReferSubscriber":18,"./RequestSender":20,"./SIPMessage":21,"./Timers":23,"./Transactions":24,"./URI":27,"./Utils":28,events:31,"sdp-transform":37}],15:[function(e,t,n){"use strict";function r(e){return(r="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function s(e,t){for(var n=0;n1&&void 0!==arguments[1]?arguments[1]:{};if(void 0===e)throw new TypeError("Not enough arguments");if(this._direction="outgoing",this._session.status!==this._session.C.STATUS_CONFIRMED&&this._session.status!==this._session.C.STATUS_WAITING_FOR_ACK)throw new h.InvalidStateError(this._session.status);var r=d.cloneArray(n.extraHeaders);if(this.eventHandlers=d.cloneObject(n.eventHandlers),"string"==typeof e)e=e.toUpperCase();else{if("number"!=typeof e)throw new TypeError("Invalid tone: ".concat(e));e=e.toString()}if(!e.match(/^[0-9A-DR#*]$/))throw new TypeError("Invalid tone: ".concat(e));this._tone=e,this._duration=n.duration,r.push("Content-Type: application/dtmf-relay");var s="Signal=".concat(this._tone,"\r\n");s+="Duration=".concat(this._duration),this._session.newDTMF({originator:"local",dtmf:this,request:this._request}),this._session.sendRequest(c.INFO,{extraHeaders:r,eventHandlers:{onSuccessResponse:function(e){t.emit("succeeded",{originator:"remote",response:e})},onErrorResponse:function(e){t.eventHandlers.onFailed&&t.eventHandlers.onFailed(),t.emit("failed",{originator:"remote",response:e})},onRequestTimeout:function(){t._session.onRequestTimeout()},onTransportError:function(){t._session.onTransportError()},onDialogError:function(){t._session.onDialogError()}},body:s})}},{key:"init_incoming",value:function(e){var t=/^(Signal\s*?=\s*?)([0-9A-D#*]{1})(\s)?.*/,n=/^(Duration\s?=\s?)([0-9]{1,4})(\s)?.*/;if(this._direction="incoming",this._request=e,e.reply(200),e.body){var r=e.body.split("\n");r.length>=1&&t.test(r[0])&&(this._tone=r[0].replace(t,"$2")),r.length>=2&&n.test(r[1])&&(this._duration=parseInt(r[1].replace(n,"$2"),10))}this._duration||(this._duration=_.DEFAULT_DURATION),this._tone?this._session.newDTMF({originator:"remote",dtmf:this,request:e}):f.debug("invalid INFO DTMF received, discarded")}},{key:"tone",get:function(){return this._tone}},{key:"duration",get:function(){return this._duration}}])&&s(t.prototype,n),r&&s(t,r),a}(),t.exports.C=_},{"../Constants":2,"../Exceptions":6,"../Logger":9,"../Utils":28,events:31}],16:[function(e,t,n){"use strict";function r(e){return(r="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function s(e,t){for(var n=0;n2&&void 0!==arguments[2]?arguments[2]:{};if(this._direction="outgoing",void 0===e)throw new TypeError("Not enough arguments");if(this._session.status!==this._session.C.STATUS_CONFIRMED&&this._session.status!==this._session.C.STATUS_WAITING_FOR_ACK)throw new c.InvalidStateError(this._session.status);this._contentType=e,this._body=t;var s=h.cloneArray(r.extraHeaders);s.push("Content-Type: ".concat(e)),this._session.newInfo({originator:"local",info:this,request:this.request}),this._session.sendRequest(a.INFO,{extraHeaders:s,eventHandlers:{onSuccessResponse:function(e){n.emit("succeeded",{originator:"remote",response:e})},onErrorResponse:function(e){n.emit("failed",{originator:"remote",response:e})},onTransportError:function(){n._session.onTransportError()},onRequestTimeout:function(){n._session.onRequestTimeout()},onDialogError:function(){n._session.onDialogError()}},body:t})}},{key:"init_incoming",value:function(e){this._direction="incoming",this.request=e,e.reply(200),this._contentType=e.hasHeader("Content-Type")?e.getHeader("Content-Type").toLowerCase():void 0,this._body=e.body,this._session.newInfo({originator:"remote",info:this,request:e})}},{key:"contentType",get:function(){return this._contentType}},{key:"body",get:function(){return this._body}}])&&s(t.prototype,n),r&&s(t,r),d}()},{"../Constants":2,"../Exceptions":6,"../Utils":28,events:31}],17:[function(e,t,n){"use strict";function r(e,t){for(var n=0;n=200?"terminated;reason=noresource":"active;expires=".concat(this._expires),this._session.sendRequest(i.NOTIFY,{extraHeaders:["Event: ".concat(l.event_type,";id=").concat(this._id),"Subscription-State: ".concat(n),"Content-Type: ".concat(l.body_type)],body:"SIP/2.0 ".concat(e," ").concat(t),eventHandlers:{onErrorResponse:function(){this._active=!1}}}))}}])&&r(t.prototype,n),s&&r(t,s),e}()},{"../Constants":2,"../Logger":9}],18:[function(e,t,n){"use strict";function r(e){return(r="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function s(e,t){for(var n=0;n1&&void 0!==arguments[1]?arguments[1]:{};f.debug("sendRefer()");var r=d.cloneArray(n.extraHeaders),s=d.cloneObject(n.eventHandlers);for(var i in s)Object.prototype.hasOwnProperty.call(s,i)&&this.on(i,s[i]);var o=null;n.replaces&&(o=n.replaces._request.call_id,o+=";to-tag=".concat(n.replaces._to_tag),o+=";from-tag=".concat(n.replaces._from_tag),o=encodeURIComponent(o));var l="Refer-To: <".concat(e).concat(o?"?Replaces=".concat(o):"",">");if(r.push(l),!r.some(function(e){return e.toLowerCase().startsWith("referred-by:")})){var u="Referred-By: <".concat(this._session._ua._configuration.uri._scheme,":").concat(this._session._ua._configuration.uri._user,"@").concat(this._session._ua._configuration.uri._host,">");r.push(u)}r.push("Contact: ".concat(this._session.contact));var a=this._session.sendRequest(c.REFER,{extraHeaders:r,eventHandlers:{onSuccessResponse:function(e){t._requestSucceeded(e)},onErrorResponse:function(e){t._requestFailed(e,c.causes.REJECTED)},onTransportError:function(){t._requestFailed(null,c.causes.CONNECTION_ERROR)},onRequestTimeout:function(){t._requestFailed(null,c.causes.REQUEST_TIMEOUT)},onDialogError:function(){t._requestFailed(null,c.causes.DIALOG_ERROR)}}});this._id=a.cseq}},{key:"receiveNotify",value:function(e){if(f.debug("receiveNotify()"),e.body){var t=h.parse(e.body.trim(),"Status_Line");if(-1!==t)switch(!0){case/^100$/.test(t.status_code):this.emit("trying",{request:e,status_line:t});break;case/^1[0-9]{2}$/.test(t.status_code):this.emit("progress",{request:e,status_line:t});break;case/^2[0-9]{2}$/.test(t.status_code):this.emit("accepted",{request:e,status_line:t});break;default:this.emit("failed",{request:e,status_line:t})}else f.debug('receiveNotify() | error parsing NOTIFY body: "'.concat(e.body,'"'))}}},{key:"_requestSucceeded",value:function(e){f.debug("REFER succeeded"),f.debug('emit "requestSucceeded"'),this.emit("requestSucceeded",{response:e})}},{key:"_requestFailed",value:function(e,t){f.debug("REFER failed"),f.debug('emit "requestFailed"'),this.emit("requestFailed",{response:e||null,cause:t})}},{key:"id",get:function(){return this._id}}])&&s(t.prototype,n),r&&s(t,r),a}()},{"../Constants":2,"../Grammar":7,"../Logger":9,"../Utils":28,events:31}],19:[function(e,t,n){"use strict";function r(e,t){for(var n=0;n"'),this._contact+=";reg-id=".concat(this._reg_id),this._contact+=";+sip.instance=".concat(this._sipInstance)}var t,n,s;return t=e,(n=[{key:"setExtraHeaders",value:function(e){Array.isArray(e)||(e=[]),this._extraHeaders=e.slice()}},{key:"setExtraContactParams",value:function(e){for(var t in e instanceof Object||(e={}),this._extraContactParams="",e)if(Object.prototype.hasOwnProperty.call(e,t)){var n=e[t];this._extraContactParams+=";".concat(t),n&&(this._extraContactParams+="=".concat(n))}}},{key:"register",value:function(){var e=this;if(this._registering)a.debug("Register request in progress...");else{var t=this._extraHeaders.slice();t.push("Contact: ".concat(this._contact,";expires=").concat(this._expires).concat(this._extraContactParams)),t.push("Expires: ".concat(this._expires));var n=new l.OutgoingRequest(o.REGISTER,this._registrar,this._ua,{to_uri:this._to_uri,call_id:this._call_id,cseq:this._cseq+=1},t),r=new u(this._ua,n,{onRequestTimeout:function(){e._registrationFailure(null,o.causes.REQUEST_TIMEOUT)},onTransportError:function(){e._registrationFailure(null,o.causes.CONNECTION_ERROR)},onAuthenticated:function(){e._cseq+=1},onReceiveResponse:function(t){if(t.cseq===e._cseq)switch(null!==e._registrationTimer&&(clearTimeout(e._registrationTimer),e._registrationTimer=null),!0){case/^1[0-9]{2}$/.test(t.status_code):break;case/^2[0-9]{2}$/.test(t.status_code):if(e._registering=!1,!t.hasHeader("Contact")){a.debug("no Contact header in response to REGISTER, response ignored");break}var n=t.headers.Contact.reduce(function(e,t){return e.concat(t.parsed)},[]),r=n.find(function(t){return e._sipInstance===t.getParam("+sip.instance")&&e._reg_id===parseInt(t.getParam("reg-id"))});if(r||(r=n.find(function(t){return t.uri.user===e._ua.contact.uri.user})),!r){a.debug("no Contact header pointing to us, response ignored");break}var s=r.getParam("expires");!s&&t.hasHeader("expires")&&(s=t.getHeader("expires")),s||(s=e._expires),(s=Number(s))<10&&(s=10);var l=s>64?1e3*s/2+Math.floor(1e3*(s/2-32)*Math.random()):1e3*s-5e3;e._registrationTimer=setTimeout(function(){e._registrationTimer=null,0===e._ua.listeners("registrationExpiring").length?e.register():e._ua.emit("registrationExpiring")},l),r.hasParam("temp-gruu")&&(e._ua.contact.temp_gruu=r.getParam("temp-gruu").replace(/"/g,"")),r.hasParam("pub-gruu")&&(e._ua.contact.pub_gruu=r.getParam("pub-gruu").replace(/"/g,"")),e._registered||(e._registered=!0,e._ua.registered({response:t}));break;case/^423$/.test(t.status_code):t.hasHeader("min-expires")?(e._expires=Number(t.getHeader("min-expires")),e._expires<10&&(e._expires=10),e.register()):(a.debug("423 response received for REGISTER without Min-Expires"),e._registrationFailure(t,o.causes.SIP_FAILURE_CODE));break;default:var u=i.sipErrorCause(t.status_code);e._registrationFailure(t,u)}}});this._registering=!0,r.send()}}},{key:"unregister",value:function(){var e=this,t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};if(this._registered){this._registered=!1,null!==this._registrationTimer&&(clearTimeout(this._registrationTimer),this._registrationTimer=null);var n=this._extraHeaders.slice();t.all?n.push("Contact: *".concat(this._extraContactParams)):n.push("Contact: ".concat(this._contact,";expires=0").concat(this._extraContactParams)),n.push("Expires: 0");var r=new l.OutgoingRequest(o.REGISTER,this._registrar,this._ua,{to_uri:this._to_uri,call_id:this._call_id,cseq:this._cseq+=1},n);new u(this._ua,r,{onRequestTimeout:function(){e._unregistered(null,o.causes.REQUEST_TIMEOUT)},onTransportError:function(){e._unregistered(null,o.causes.CONNECTION_ERROR)},onAuthenticated:function(){e._cseq+=1},onReceiveResponse:function(t){switch(!0){case/^1[0-9]{2}$/.test(t.status_code):break;case/^2[0-9]{2}$/.test(t.status_code):e._unregistered(t);break;default:var n=i.sipErrorCause(t.status_code);e._unregistered(t,n)}}}).send()}else a.debug("already unregistered")}},{key:"close",value:function(){this._registered&&this.unregister()}},{key:"onTransportClosed",value:function(){this._registering=!1,null!==this._registrationTimer&&(clearTimeout(this._registrationTimer),this._registrationTimer=null),this._registered&&(this._registered=!1,this._ua.unregistered({}))}},{key:"_registrationFailure",value:function(e,t){this._registering=!1,this._ua.registrationFailed({response:e||null,cause:t}),this._registered&&(this._registered=!1,this._ua.unregistered({response:e||null,cause:t}))}},{key:"_unregistered",value:function(e,t){this._registering=!1,this._registered=!1,this._ua.unregistered({response:e||null,cause:t||null})}},{key:"registered",get:function(){return this._registered}}])&&r(t.prototype,n),s&&r(t,s),e}()},{"./Constants":2,"./Logger":9,"./RequestSender":20,"./SIPMessage":21,"./Utils":28}],20:[function(e,t,n){"use strict";function r(e,t){for(var n=0;n=e.length?{done:!0}:{done:!1,value:e[r++]}},e:function(e){throw e},f:s}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var i,o=!0,l=!1;return{s:function(){n=e[Symbol.iterator]()},n:function(){var e=n.next();return o=e.done,e},e:function(e){l=!0,i=e},f:function(){try{o||null==n.return||n.return()}finally{if(l)throw i}}}}function a(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n")),this.setHeader("via",""),this.setHeader("max-forwards",p.MAX_FORWARDS);var l=s.to_uri||n,u=s.to_tag?{tag:s.to_tag}:null,a=void 0!==s.to_display_name?s.to_display_name:null;this.to=new v(l,a,u),this.setHeader("to",this.to.toString());var h,d=s.from_uri||r.configuration.uri,f={tag:s.from_tag||m.newTag()};h=void 0!==s.from_display_name?s.from_display_name:r.configuration.display_name?r.configuration.display_name:null,this.from=new v(d,h,f),this.setHeader("from",this.from.toString());var _=s.call_id||r.configuration.jssip_id+m.createRandomToken(15);this.call_id=_,this.setHeader("call-id",_);var g=s.cseq||Math.floor(1e4*Math.random());this.cseq=g,this.setHeader("cseq","".concat(g," ").concat(t))}return d(e,[{key:"setHeader",value:function(e,t){for(var n=new RegExp("^\\s*".concat(e,"\\s*:"),"i"),r=0;r1&&void 0!==arguments[1]?arguments[1]:0;if(e=m.headerize(e),this.headers[e]){if(!(t>=this.headers[e].length)){var n=this.headers[e][t],r=n.raw;if(n.parsed)return n.parsed;var s=g.parse(r,e.replace(/-/g,"_"));return-1===s?(this.headers[e].splice(t,1),void y.debug('error parsing "'.concat(e,'" header field with value "').concat(r,'"'))):(n.parsed=s,s)}y.debug('not so many "'.concat(e,'" headers present'))}else y.debug('header "'.concat(e,'" not present'))}},{key:"s",value:function(e,t){return this.parseHeader(e,t)}},{key:"setHeader",value:function(e,t){var n={raw:t};this.headers[m.headerize(e)]=[n]}},{key:"parseSDP",value:function(e){return!e&&this.sdp?this.sdp:(this.sdp=f.parse(this.body||""),this.sdp)}},{key:"toString",value:function(){return this.data}}]),e}(),S=function(e){s(n,b);var t=o(n);function n(e){var r;return c(this,n),(r=t.call(this)).ua=e,r.headers={},r.ruri=null,r.transport=null,r.server_transaction=null,r}return d(n,[{key:"reply",value:function(e,t,n,r,s,i){var o=[],l=this.getHeader("To");if(t=t||null,!(e=e||null)||e<100||e>699)throw new TypeError("Invalid status_code: ".concat(e));if(t&&"string"!=typeof t&&!(t instanceof String))throw new TypeError("Invalid reason_phrase: ".concat(t));t=t||p.REASON_PHRASE[e]||"",n=m.cloneArray(n);var a="SIP/2.0 ".concat(e," ").concat(t,"\r\n");if(this.method===p.INVITE&&e>100&&e<=200){var c,h=u(this.getHeaders("record-route"));try{for(h.s();!(c=h.n()).done;){var d=c.value;a+="Record-Route: ".concat(d,"\r\n")}}catch(e){h.e(e)}finally{h.f()}}var f,_=u(this.getHeaders("via"));try{for(_.s();!(f=_.n()).done;){var v=f.value;a+="Via: ".concat(v,"\r\n")}}catch(e){_.e(e)}finally{_.f()}!this.to_tag&&e>100?l+=";tag=".concat(m.newTag()):this.to_tag&&!this.s("to").hasParam("tag")&&(l+=";tag=".concat(this.to_tag)),a+="To: ".concat(l,"\r\n"),a+="From: ".concat(this.getHeader("From"),"\r\n"),a+="Call-ID: ".concat(this.call_id,"\r\n"),a+="CSeq: ".concat(this.cseq," ").concat(this.method,"\r\n");var g,y=u(n);try{for(y.s();!(g=y.n()).done;){var T=g.value;a+="".concat(T.trim(),"\r\n")}}catch(e){y.e(e)}finally{y.f()}switch(this.method){case p.INVITE:this.ua.configuration.session_timers&&o.push("timer"),(this.ua.contact.pub_gruu||this.ua.contact.temp_gruu)&&o.push("gruu"),o.push("ice","replaces");break;case p.UPDATE:this.ua.configuration.session_timers&&o.push("timer"),r&&o.push("ice"),o.push("replaces")}if(o.push("outbound"),this.method===p.OPTIONS?(a+="Allow: ".concat(p.ALLOWED_METHODS,"\r\n"),a+="Accept: ".concat(p.ACCEPTED_BODY_TYPES,"\r\n")):405===e?a+="Allow: ".concat(p.ALLOWED_METHODS,"\r\n"):415===e&&(a+="Accept: ".concat(p.ACCEPTED_BODY_TYPES,"\r\n")),a+="Supported: ".concat(o,"\r\n"),r){var C=m.str_utf8_length(r);a+="Content-Type: application/sdp\r\n",a+="Content-Length: ".concat(C,"\r\n\r\n"),a+=r}else a+="Content-Length: ".concat(0,"\r\n\r\n");this.server_transaction.receiveResponse(e,a,s,i)}},{key:"reply_sl",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:null,t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null,n=this.getHeaders("via");if(!e||e<100||e>699)throw new TypeError("Invalid status_code: ".concat(e));if(t&&"string"!=typeof t&&!(t instanceof String))throw new TypeError("Invalid reason_phrase: ".concat(t));t=t||p.REASON_PHRASE[e]||"";var r,s="SIP/2.0 ".concat(e," ").concat(t,"\r\n"),i=u(n);try{for(i.s();!(r=i.n()).done;){var o=r.value;s+="Via: ".concat(o,"\r\n")}}catch(e){i.e(e)}finally{i.f()}var l=this.getHeader("To");!this.to_tag&&e>100?l+=";tag=".concat(m.newTag()):this.to_tag&&!this.s("to").hasParam("tag")&&(l+=";tag=".concat(this.to_tag)),s+="To: ".concat(l,"\r\n"),s+="From: ".concat(this.getHeader("From"),"\r\n"),s+="Call-ID: ".concat(this.call_id,"\r\n"),s+="CSeq: ".concat(this.cseq," ").concat(this.method,"\r\n"),s+="Content-Length: ".concat(0,"\r\n\r\n"),this.transport.send(s)}}]),n}(),E=function(e){s(n,b);var t=o(n);function n(){var e;return c(this,n),(e=t.call(this)).headers={},e.status_code=null,e.reason_phrase=null,e}return n}();t.exports={OutgoingRequest:T,InitialOutgoingInviteRequest:C,IncomingRequest:S,IncomingResponse:E}},{"./Constants":2,"./Grammar":7,"./Logger":9,"./NameAddrHeader":11,"./Utils":28,"sdp-transform":37}],22:[function(e,t,n){"use strict";var r=e("./Logger"),s=e("./Utils"),i=e("./Grammar"),o=new r("Socket");n.isSocket=function(e){if(Array.isArray(e))return!1;if(void 0===e)return o.warn("undefined JsSIP.Socket instance"),!1;try{if(!s.isString(e.url))throw o.warn("missing or invalid JsSIP.Socket url property"),new Error("Missing or invalid JsSIP.Socket url property");if(!s.isString(e.via_transport))throw o.warn("missing or invalid JsSIP.Socket via_transport property"),new Error("Missing or invalid JsSIP.Socket via_transport property");if(-1===i.parse(e.sip_uri,"SIP_URI"))throw o.warn("missing or invalid JsSIP.Socket sip_uri property"),new Error("missing or invalid JsSIP.Socket sip_uri property")}catch(e){return!1}try{["connect","disconnect","send"].forEach(function(t){if(!s.isFunction(e[t]))throw o.warn("missing or invalid JsSIP.Socket method: ".concat(t)),new Error("Missing or invalid JsSIP.Socket method: ".concat(t))})}catch(e){return!1}return!0}},{"./Grammar":7,"./Logger":9,"./Utils":28}],23:[function(e,t,n){"use strict";var r=500;t.exports={T1:r,T2:4e3,T4:5e3,TIMER_B:32e3,TIMER_D:0,TIMER_F:32e3,TIMER_H:32e3,TIMER_I:0,TIMER_J:0,TIMER_K:0,TIMER_L:32e3,TIMER_M:32e3,PROVISIONAL_RESPONSE_INTERVAL:6e4}},{}],24:[function(e,t,n){"use strict";function r(e){return(r="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function s(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function i(e,t){for(var n=0;n=100&&n<=199)switch(this.state){case b.STATUS_CALLING:this.stateChanged(b.STATUS_PROCEEDING),this.eventHandlers.onReceiveResponse(e);break;case b.STATUS_PROCEEDING:this.eventHandlers.onReceiveResponse(e)}else if(n>=200&&n<=299)switch(this.state){case b.STATUS_CALLING:case b.STATUS_PROCEEDING:this.stateChanged(b.STATUS_ACCEPTED),this.M=setTimeout(function(){t.timer_M()},m.TIMER_M),this.eventHandlers.onReceiveResponse(e);break;case b.STATUS_ACCEPTED:this.eventHandlers.onReceiveResponse(e)}else if(n>=300&&n<=699)switch(this.state){case b.STATUS_CALLING:case b.STATUS_PROCEEDING:this.stateChanged(b.STATUS_COMPLETED),this.sendACK(e),this.eventHandlers.onReceiveResponse(e);break;case b.STATUS_COMPLETED:this.sendACK(e)}}},{key:"C",get:function(){return b}}]),n}(),A=function(e){l(n,d);var t=a(n);function n(e,r,i,o){var l;s(this,n),(l=t.call(this)).id="z9hG4bK".concat(Math.floor(1e7*Math.random())),l.transport=r,l.request=i,l.eventHandlers=o;var u="SIP/2.0/".concat(r.via_transport);return u+=" ".concat(e.configuration.via_host,";branch=").concat(l.id),l.request.setHeader("via",u),l}return o(n,[{key:"send",value:function(){this.transport.send(this.request)||this.onTransportError()}},{key:"onTransportError",value:function(){y.debug("transport error occurred for transaction ".concat(this.id)),this.eventHandlers.onTransportError()}},{key:"C",get:function(){return b}}]),n}(),R=function(e){l(n,d);var t=a(n);function n(e,r,i){var o;return s(this,n),(o=t.call(this)).type=b.NON_INVITE_SERVER,o.id=i.via_branch,o.ua=e,o.transport=r,o.request=i,o.last_response="",i.server_transaction=c(o),o.state=b.STATUS_TRYING,e.newTransaction(c(o)),o}return o(n,[{key:"stateChanged",value:function(e){this.state=e,this.emit("stateChanged")}},{key:"timer_J",value:function(){T.debug("Timer J expired for transaction ".concat(this.id)),this.stateChanged(b.STATUS_TERMINATED),this.ua.destroyTransaction(this)}},{key:"onTransportError",value:function(){this.transportError||(this.transportError=!0,T.debug("transport error occurred, deleting transaction ".concat(this.id)),clearTimeout(this.J),this.stateChanged(b.STATUS_TERMINATED),this.ua.destroyTransaction(this))}},{key:"receiveResponse",value:function(e,t,n,r){var s=this;if(100===e)switch(this.state){case b.STATUS_TRYING:this.stateChanged(b.STATUS_PROCEEDING),this.transport.send(t)||this.onTransportError();break;case b.STATUS_PROCEEDING:this.last_response=t,this.transport.send(t)?n&&n():(this.onTransportError(),r&&r())}else if(e>=200&&e<=699)switch(this.state){case b.STATUS_TRYING:case b.STATUS_PROCEEDING:this.stateChanged(b.STATUS_COMPLETED),this.last_response=t,this.J=setTimeout(function(){s.timer_J()},m.TIMER_J),this.transport.send(t)?n&&n():(this.onTransportError(),r&&r());break;case b.STATUS_COMPLETED:}}},{key:"C",get:function(){return b}}]),n}(),w=function(e){l(n,d);var t=a(n);function n(e,r,i){var o;return s(this,n),(o=t.call(this)).type=b.INVITE_SERVER,o.id=i.via_branch,o.ua=e,o.transport=r,o.request=i,o.last_response="",i.server_transaction=c(o),o.state=b.STATUS_PROCEEDING,e.newTransaction(c(o)),o.resendProvisionalTimer=null,i.reply(100),o}return o(n,[{key:"stateChanged",value:function(e){this.state=e,this.emit("stateChanged")}},{key:"timer_H",value:function(){C.debug("Timer H expired for transaction ".concat(this.id)),this.state===b.STATUS_COMPLETED&&C.debug("ACK not received, dialog will be terminated"),this.stateChanged(b.STATUS_TERMINATED),this.ua.destroyTransaction(this)}},{key:"timer_I",value:function(){this.stateChanged(b.STATUS_TERMINATED),this.ua.destroyTransaction(this)}},{key:"timer_L",value:function(){C.debug("Timer L expired for transaction ".concat(this.id)),this.state===b.STATUS_ACCEPTED&&(this.stateChanged(b.STATUS_TERMINATED),this.ua.destroyTransaction(this))}},{key:"onTransportError",value:function(){this.transportError||(this.transportError=!0,C.debug("transport error occurred, deleting transaction ".concat(this.id)),null!==this.resendProvisionalTimer&&(clearInterval(this.resendProvisionalTimer),this.resendProvisionalTimer=null),clearTimeout(this.L),clearTimeout(this.H),clearTimeout(this.I),this.stateChanged(b.STATUS_TERMINATED),this.ua.destroyTransaction(this))}},{key:"resend_provisional",value:function(){this.transport.send(this.last_response)||this.onTransportError()}},{key:"receiveResponse",value:function(e,t,n,r){var s=this;if(e>=100&&e<=199)switch(this.state){case b.STATUS_PROCEEDING:this.transport.send(t)||this.onTransportError(),this.last_response=t}if(e>100&&e<=199&&this.state===b.STATUS_PROCEEDING)null===this.resendProvisionalTimer&&(this.resendProvisionalTimer=setInterval(function(){s.resend_provisional()},m.PROVISIONAL_RESPONSE_INTERVAL));else if(e>=200&&e<=299)switch(this.state){case b.STATUS_PROCEEDING:this.stateChanged(b.STATUS_ACCEPTED),this.last_response=t,this.L=setTimeout(function(){s.timer_L()},m.TIMER_L),null!==this.resendProvisionalTimer&&(clearInterval(this.resendProvisionalTimer),this.resendProvisionalTimer=null);case b.STATUS_ACCEPTED:this.transport.send(t)?n&&n():(this.onTransportError(),r&&r())}else if(e>=300&&e<=699)switch(this.state){case b.STATUS_PROCEEDING:null!==this.resendProvisionalTimer&&(clearInterval(this.resendProvisionalTimer),this.resendProvisionalTimer=null),this.transport.send(t)?(this.stateChanged(b.STATUS_COMPLETED),this.H=setTimeout(function(){s.timer_H()},m.TIMER_H),n&&n()):(this.onTransportError(),r&&r())}}},{key:"C",get:function(){return b}}]),n}();t.exports={C:b,NonInviteClientTransaction:S,InviteClientTransaction:E,AckClientTransaction:A,NonInviteServerTransaction:R,InviteServerTransaction:w,checkTransaction:function(e,t){var n,r=e._transactions;switch(t.method){case _.INVITE:if(n=r.ist[t.via_branch]){switch(n.state){case b.STATUS_PROCEEDING:n.transport.send(n.last_response);break;case b.STATUS_ACCEPTED:}return!0}break;case _.ACK:if(!(n=r.ist[t.via_branch]))return!1;if(n.state===b.STATUS_ACCEPTED)return!1;if(n.state===b.STATUS_COMPLETED)return n.state=b.STATUS_CONFIRMED,n.I=setTimeout(function(){n.timer_I()},m.TIMER_I),!0;break;case _.CANCEL:return(n=r.ist[t.via_branch])?(t.reply_sl(200),n.state!==b.STATUS_PROCEEDING):(t.reply_sl(481),!0);default:if(n=r.nist[t.via_branch]){switch(n.state){case b.STATUS_TRYING:break;case b.STATUS_PROCEEDING:case b.STATUS_COMPLETED:n.transport.send(n.last_response)}return!0}}}}},{"./Constants":2,"./Logger":9,"./SIPMessage":21,"./Timers":23,events:31}],25:[function(e,t,n){"use strict";function r(e,t){for(var n=0;n1&&void 0!==arguments[1]?arguments[1]:u.recovery_options;!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,e),l.debug("new()"),this.status=u.STATUS_DISCONNECTED,this.socket=null,this.sockets=[],this.recovery_options=n,this.recover_attempts=0,this.recovery_timer=null,this.close_requested=!1;try{this.textDecoder=new TextDecoder("utf8")}catch(e){l.warn("cannot use TextDecoder: ".concat(e))}if(void 0===t)throw new TypeError("Invalid argument. undefined 'sockets' argument");t instanceof Array||(t=[t]),t.forEach(function(e){if(!i.isSocket(e.socket))throw new TypeError("Invalid argument. invalid 'JsSIP.Socket' instance");if(e.weight&&!Number(e.weight))throw new TypeError("Invalid argument. 'weight' attribute is not a number");this.sockets.push({socket:e.socket,weight:e.weight||0,status:u.SOCKET_STATUS_READY})},this),this._getSocket()}var t,n,s;return t=e,(n=[{key:"connect",value:function(){l.debug("connect()"),this.isConnected()?l.debug("Transport is already connected"):this.isConnecting()?l.debug("Transport is connecting"):(this.close_requested=!1,this.status=u.STATUS_CONNECTING,this.onconnecting({socket:this.socket,attempts:this.recover_attempts}),this.close_requested||(this.socket.onconnect=this._onConnect.bind(this),this.socket.ondisconnect=this._onDisconnect.bind(this),this.socket.ondata=this._onData.bind(this),this.socket.connect()))}},{key:"disconnect",value:function(){l.debug("close()"),this.close_requested=!0,this.recover_attempts=0,this.status=u.STATUS_DISCONNECTED,null!==this.recovery_timer&&(clearTimeout(this.recovery_timer),this.recovery_timer=null),this.socket.onconnect=function(){},this.socket.ondisconnect=function(){},this.socket.ondata=function(){},this.socket.disconnect(),this.ondisconnect({socket:this.socket,error:!1})}},{key:"send",value:function(e){if(l.debug("send()"),!this.isConnected())return l.warn("unable to send message, transport is not connected"),!1;var t=e.toString();return l.debug("sending message:\n\n".concat(t,"\n")),this.socket.send(t)}},{key:"isConnected",value:function(){return this.status===u.STATUS_CONNECTED}},{key:"isConnecting",value:function(){return this.status===u.STATUS_CONNECTING}},{key:"_reconnect",value:function(){var e=this;this.recover_attempts+=1;var t=Math.floor(Math.random()*Math.pow(2,this.recover_attempts)+1);tthis.recovery_options.max_interval&&(t=this.recovery_options.max_interval),l.debug("reconnection attempt: ".concat(this.recover_attempts,". next connection attempt in ").concat(t," seconds")),this.recovery_timer=setTimeout(function(){e.close_requested||e.isConnected()||e.isConnecting()||(e._getSocket(),e.connect())},1e3*t)}},{key:"_getSocket",value:function(){var e=[];if(this.sockets.forEach(function(t){t.status!==u.SOCKET_STATUS_ERROR&&(0===e.length?e.push(t):t.weight>e[0].weight?e=[t]:t.weight===e[0].weight&&e.push(t))}),0===e.length)return this.sockets.forEach(function(e){e.status=u.SOCKET_STATUS_READY}),void this._getSocket();var t=Math.floor(Math.random()*e.length);this.socket=e[t].socket}},{key:"_onConnect",value:function(){this.recover_attempts=0,this.status=u.STATUS_CONNECTED,null!==this.recovery_timer&&(clearTimeout(this.recovery_timer),this.recovery_timer=null),this.onconnect({socket:this})}},{key:"_onDisconnect",value:function(e,t,n){this.status=u.STATUS_DISCONNECTED,this.ondisconnect({socket:this.socket,error:e,code:t,reason:n}),this.close_requested||(this.sockets.forEach(function(e){this.socket===e.socket&&(e.status=u.SOCKET_STATUS_ERROR)},this),this._reconnect(e))}},{key:"_onData",value:function(e){if("\r\n"!==e){if("string"!=typeof e){try{e=this.textDecoder?this.textDecoder.decode(e):String.fromCharCode.apply(null,new Uint8Array(e))}catch(e){return void l.debug("received binary message failed to be converted into string, message discarded")}l.debug("received binary message:\n\n".concat(e,"\n"))}else l.debug("received text message:\n\n".concat(e,"\n"));this.ondata({transport:this,message:e})}else l.debug("received message with CRLF Keep Alive response")}},{key:"via_transport",get:function(){return this.socket.via_transport}},{key:"url",get:function(){return this.socket.url}},{key:"sip_uri",get:function(){return this.socket.sip_uri}}])&&r(t.prototype,n),s&&r(t,s),e}()},{"./Constants":2,"./Logger":9,"./Socket":22}],26:[function(e,t,n){"use strict";function r(e){return(r="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function s(e,t){for(var n=0;n0&&void 0!==arguments[0]?arguments[0]:{},t=e.anonymous||null,n=e.outbound||null,r="<";return r+=t?this.temp_gruu||"sip:anonymous@anonymous.invalid;transport=ws":this.pub_gruu||this.uri.toString(),!n||(t?this.temp_gruu:this.pub_gruu)||(r+=";ob"),r+=">"}};var r=["authorization_user","password","realm","ha1","authorization_jwt","display_name","register"];for(var s in this._configuration)Object.prototype.hasOwnProperty.call(this._configuration,s)&&(-1!==r.indexOf(s)?Object.defineProperty(this._configuration,s,{writable:!0,configurable:!1}):Object.defineProperty(this._configuration,s,{writable:!1,configurable:!1}));for(var i in R.debug("configuration parameters after validation:"),this._configuration)if(Object.prototype.hasOwnProperty.call(A.settings,i))switch(i){case"uri":case"registrar_server":R.debug("- ".concat(i,": ").concat(this._configuration[i]));break;case"password":case"ha1":case"authorization_jwt":R.debug("- ".concat(i,": NOT SHOWN"));break;default:R.debug("- ".concat(i,": ").concat(JSON.stringify(this._configuration[i])))}}},{key:"C",get:function(){return w}},{key:"status",get:function(){return this._status}},{key:"contact",get:function(){return this._contact}},{key:"configuration",get:function(){return this._configuration}},{key:"transport",get:function(){return this._transport}}]),n}()},{"./Config":1,"./Constants":2,"./Exceptions":6,"./Logger":9,"./Message":10,"./Options":12,"./Parser":13,"./RTCSession":14,"./Registrator":19,"./SIPMessage":21,"./Transactions":24,"./Transport":25,"./URI":27,"./Utils":28,"./sanityCheck":30,events:31}],27:[function(e,t,n){"use strict";function r(e,t){var n;if("undefined"==typeof Symbol||null==e[Symbol.iterator]){if(Array.isArray(e)||(n=function(e,t){if(!e)return;if("string"==typeof e)return s(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);"Object"===n&&e.constructor&&(n=e.constructor.name);if("Map"===n||"Set"===n)return Array.from(e);if("Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return s(e,t)}(e))||t&&e&&"number"==typeof e.length){n&&(e=n);var r=0,i=function(){};return{s:i,n:function(){return r>=e.length?{done:!0}:{done:!1,value:e[r++]}},e:function(e){throw e},f:i}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var o,l=!0,u=!1;return{s:function(){n=e[Symbol.iterator]()},n:function(){var e=n.next();return l=e.done,e},e:function(e){u=!0,o=e},f:function(){try{l||null==n.return||n.return()}finally{if(u)throw o}}}}function s(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n4&&void 0!==arguments[4]?arguments[4]:{},o=arguments.length>5&&void 0!==arguments[5]?arguments[5]:{};if(function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,e),!r)throw new TypeError('missing or invalid "host" parameter');for(var u in this._parameters={},this._headers={},this._scheme=t||l.SIP,this._user=n,this._host=r,this._port=s,i)Object.prototype.hasOwnProperty.call(i,u)&&this.setParam(u,i[u]);for(var a in o)Object.prototype.hasOwnProperty.call(o,a)&&this.setHeader(a,o[a])}return o(e,null,[{key:"parse",value:function(e){return-1!==(e=a.parse(e,"SIP_URI"))?e:void 0}}]),o(e,[{key:"setParam",value:function(e,t){e&&(this._parameters[e.toLowerCase()]=null==t?null:t.toString())}},{key:"getParam",value:function(e){if(e)return this._parameters[e.toLowerCase()]}},{key:"hasParam",value:function(e){if(e)return!!this._parameters.hasOwnProperty(e.toLowerCase())}},{key:"deleteParam",value:function(e){if(e=e.toLowerCase(),this._parameters.hasOwnProperty(e)){var t=this._parameters[e];return delete this._parameters[e],t}}},{key:"clearParams",value:function(){this._parameters={}}},{key:"setHeader",value:function(e,t){this._headers[u.headerize(e)]=Array.isArray(t)?t:[t]}},{key:"getHeader",value:function(e){if(e)return this._headers[u.headerize(e)]}},{key:"hasHeader",value:function(e){if(e)return!!this._headers.hasOwnProperty(u.headerize(e))}},{key:"deleteHeader",value:function(e){if(e=u.headerize(e),this._headers.hasOwnProperty(e)){var t=this._headers[e];return delete this._headers[e],t}}},{key:"clearHeaders",value:function(){this._headers={}}},{key:"clone",value:function(){return new e(this._scheme,this._user,this._host,this._port,JSON.parse(JSON.stringify(this._parameters)),JSON.parse(JSON.stringify(this._headers)))}},{key:"toString",value:function(){var e=[],t="".concat(this._scheme,":");for(var n in this._user&&(t+="".concat(u.escapeUser(this._user),"@")),t+=this._host,(this._port||0===this._port)&&(t+=":".concat(this._port)),this._parameters)Object.prototype.hasOwnProperty.call(this._parameters,n)&&(t+=";".concat(n),null!==this._parameters[n]&&(t+="=".concat(this._parameters[n])));for(var s in this._headers)if(Object.prototype.hasOwnProperty.call(this._headers,s)){var i,o=r(this._headers[s]);try{for(o.s();!(i=o.n()).done;){var l=i.value;e.push("".concat(s,"=").concat(l))}}catch(e){o.e(e)}finally{o.f()}}return e.length>0&&(t+="?".concat(e.join("&"))),t}},{key:"toAor",value:function(e){var t="".concat(this._scheme,":");return this._user&&(t+="".concat(u.escapeUser(this._user),"@")),t+=this._host,e&&(this._port||0===this._port)&&(t+=":".concat(this._port)),t}},{key:"scheme",get:function(){return this._scheme},set:function(e){this._scheme=e.toLowerCase()}},{key:"user",get:function(){return this._user},set:function(e){this._user=e}},{key:"host",get:function(){return this._host},set:function(e){this._host=e.toLowerCase()}},{key:"port",get:function(){return this._port},set:function(e){this._port=0===e?e:parseInt(e,10)||null}}]),e}()},{"./Constants":2,"./Grammar":7,"./Utils":28}],28:[function(e,t,n){"use strict";function r(e){return(r="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function s(e,t){var n;if("undefined"==typeof Symbol||null==e[Symbol.iterator]){if(Array.isArray(e)||(n=function(e,t){if(!e)return;if("string"==typeof e)return i(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);"Object"===n&&e.constructor&&(n=e.constructor.name);if("Map"===n||"Set"===n)return Array.from(e);if("Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return i(e,t)}(e))||t&&e&&"number"==typeof e.length){n&&(e=n);var r=0,s=function(){};return{s:s,n:function(){return r>=e.length?{done:!0}:{done:!1,value:e[r++]}},e:function(e){throw e},f:s}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var o,l=!0,u=!1;return{s:function(){n=e[Symbol.iterator]()},n:function(){var e=n.next();return l=e.done,e},e:function(e){u=!0,o=e},f:function(){try{l||null==n.return||n.return()}finally{if(u)throw o}}}}function i(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n1?t-1:0),r=1;r1&&void 0!==arguments[1]?arguments[1]:32,r="";for(t=0;t>>32-t}function n(e,t){var n=2147483648&e,r=2147483648&t,s=1073741824&e,i=1073741824&t,o=(1073741823&e)+(1073741823&t);return s&i?2147483648^o^n^r:s|i?1073741824&o?3221225472^o^n^r:1073741824^o^n^r:o^n^r}function r(e,r,s,i,o,l,u){return e=n(e,n(n(function(e,t,n){return e&t|~e&n}(r,s,i),o),u)),n(t(e,l),r)}function s(e,r,s,i,o,l,u){return e=n(e,n(n(function(e,t,n){return e&n|t&~n}(r,s,i),o),u)),n(t(e,l),r)}function i(e,r,s,i,o,l,u){return e=n(e,n(n(function(e,t,n){return e^t^n}(r,s,i),o),u)),n(t(e,l),r)}function o(e,r,s,i,o,l,u){return e=n(e,n(n(function(e,t,n){return t^(e|~n)}(r,s,i),o),u)),n(t(e,l),r)}function l(e){var t,n="",r="";for(t=0;t<=3;t++)n+=(r="0".concat((e>>>8*t&255).toString(16))).substr(r.length-2,2);return n}var u,a,c,h,d,f,_,p,m,v;for(u=function(e){for(var t,n=e.length,r=n+8,s=16*((r-r%64)/64+1),i=new Array(s-1),o=0,l=0;l>>29,i}(e=function(e){e=e.replace(/\r\n/g,"\n");for(var t="",n=0;n127&&r<2048?(t+=String.fromCharCode(r>>6|192),t+=String.fromCharCode(63&r|128)):(t+=String.fromCharCode(r>>12|224),t+=String.fromCharCode(r>>6&63|128),t+=String.fromCharCode(63&r|128))}return t}(e)),_=1732584193,p=4023233417,m=2562383102,v=271733878,a=0;a1&&void 0!==arguments[1]?arguments[1]:{};return e&&Object.assign({},e)||t}},{"./Constants":2,"./Grammar":7,"./URI":27}],29:[function(e,t,n){"use strict";function r(e,t){for(var n=0;n=e.length?{done:!0}:{done:!1,value:e[r++]}},e:function(e){throw e},f:i}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var o,l=!0,u=!1;return{s:function(){n=e[Symbol.iterator]()},n:function(){var e=n.next();return l=e.done,e},e:function(e){u=!0,o=e},f:function(){try{l||null==n.return||n.return()}finally{if(u)throw o}}}}function s(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n1)return d.debug("more than one Via header field present in the response, dropping the response"),!1},function(){var e=h.str_utf8_length(i.body),t=i.getHeader("content-length");if(e0&&l.length>i){l.warned=!0;var u=new Error("Possible EventEmitter memory leak detected. "+l.length+' "'+String(t)+'" listeners added. Use emitter.setMaxListeners() to increase limit.');u.name="MaxListenersExceededWarning",u.emitter=e,u.type=t,u.count=l.length,"object"==typeof console&&console.warn&&console.warn("%s: %s",u.name,u.message)}}else l=o[t]=n,++e._eventsCount;return e}function d(){if(!this.fired)switch(this.target.removeListener(this.type,this.wrapFn),this.fired=!0,arguments.length){case 0:return this.listener.call(this.target);case 1:return this.listener.call(this.target,arguments[0]);case 2:return this.listener.call(this.target,arguments[0],arguments[1]);case 3:return this.listener.call(this.target,arguments[0],arguments[1],arguments[2]);default:for(var e=new Array(arguments.length),t=0;t1&&(t=arguments[1]),t instanceof Error)throw t;var u=new Error('Unhandled "error" event. ('+t+")");throw u.context=t,u}if(!(n=o[e]))return!1;var a="function"==typeof n;switch(r=arguments.length){case 1:!function(e,t,n){if(t)e.call(n);else for(var r=e.length,s=m(e,r),i=0;i=0;o--)if(n[o]===t||n[o].listener===t){l=n[o].listener,i=o;break}if(i<0)return this;0===i?n.shift():function(e,t){for(var n=t,r=n+1,s=e.length;r=0;i--)this.removeListener(e,t[i]);return this},o.prototype.listeners=function(e){return _(this,e,!0)},o.prototype.rawListeners=function(e){return _(this,e,!1)},o.listenerCount=function(e,t){return"function"==typeof e.listenerCount?e.listenerCount(t):p.call(e,t)},o.prototype.listenerCount=p,o.prototype.eventNames=function(){return this._eventsCount>0?Reflect.ownKeys(this._events):[]}},{}],32:[function(e,t,n){(function(r){n.log=function(...e){return"object"==typeof console&&console.log&&console.log(...e)},n.formatArgs=function(e){if(e[0]=(this.useColors?"%c":"")+this.namespace+(this.useColors?" %c":" ")+e[0]+(this.useColors?"%c ":" ")+"+"+t.exports.humanize(this.diff),!this.useColors)return;const n="color: "+this.color;e.splice(1,0,n,"color: inherit");let r=0,s=0;e[0].replace(/%[a-zA-Z%]/g,e=>{"%%"!==e&&(r++,"%c"===e&&(s=r))}),e.splice(s,0,n)},n.save=function(e){try{e?n.storage.setItem("debug",e):n.storage.removeItem("debug")}catch(e){}},n.load=function(){let e;try{e=n.storage.getItem("debug")}catch(e){}!e&&void 0!==r&&"env"in r&&(e=r.env.DEBUG);return e},n.useColors=function(){if("undefined"!=typeof window&&window.process&&("renderer"===window.process.type||window.process.__nwjs))return!0;if("undefined"!=typeof navigator&&navigator.userAgent&&navigator.userAgent.toLowerCase().match(/(edge|trident)\/(\d+)/))return!1;return"undefined"!=typeof document&&document.documentElement&&document.documentElement.style&&document.documentElement.style.WebkitAppearance||"undefined"!=typeof window&&window.console&&(window.console.firebug||window.console.exception&&window.console.table)||"undefined"!=typeof navigator&&navigator.userAgent&&navigator.userAgent.toLowerCase().match(/firefox\/(\d+)/)&&parseInt(RegExp.$1,10)>=31||"undefined"!=typeof navigator&&navigator.userAgent&&navigator.userAgent.toLowerCase().match(/applewebkit\/(\d+)/)},n.storage=function(){try{return localStorage}catch(e){}}(),n.colors=["#0000CC","#0000FF","#0033CC","#0033FF","#0066CC","#0066FF","#0099CC","#0099FF","#00CC00","#00CC33","#00CC66","#00CC99","#00CCCC","#00CCFF","#3300CC","#3300FF","#3333CC","#3333FF","#3366CC","#3366FF","#3399CC","#3399FF","#33CC00","#33CC33","#33CC66","#33CC99","#33CCCC","#33CCFF","#6600CC","#6600FF","#6633CC","#6633FF","#66CC00","#66CC33","#9900CC","#9900FF","#9933CC","#9933FF","#99CC00","#99CC33","#CC0000","#CC0033","#CC0066","#CC0099","#CC00CC","#CC00FF","#CC3300","#CC3333","#CC3366","#CC3399","#CC33CC","#CC33FF","#CC6600","#CC6633","#CC9900","#CC9933","#CCCC00","#CCCC33","#FF0000","#FF0033","#FF0066","#FF0099","#FF00CC","#FF00FF","#FF3300","#FF3333","#FF3366","#FF3399","#FF33CC","#FF33FF","#FF6600","#FF6633","#FF9900","#FF9933","#FFCC00","#FFCC33"],t.exports=e("./common")(n);const{formatters:s}=t.exports;s.j=function(e){try{return JSON.stringify(e)}catch(e){return"[UnexpectedJSONParseError]: "+e.message}}}).call(this,e("_process"))},{"./common":33,_process:35}],33:[function(e,t,n){t.exports=function(t){function n(e){let t=0;for(let n=0;n{if("%%"===t)return t;l++;const i=r.formatters[s];if("function"==typeof i){const r=e[l];t=i.call(n,r),e.splice(l,1),l--}return t}),r.formatArgs.call(n,e),(n.log||r.log).apply(n,e)}return o.namespace=e,o.enabled=r.enabled(e),o.useColors=r.useColors(),o.color=n(e),o.destroy=s,o.extend=i,"function"==typeof r.init&&r.init(o),r.instances.push(o),o}function s(){const e=r.instances.indexOf(this);return-1!==e&&(r.instances.splice(e,1),!0)}function i(e,t){const n=r(this.namespace+(void 0===t?":":t)+e);return n.log=this.log,n}function o(e){return e.toString().substring(2,e.toString().length-2).replace(/\.\*\?$/,"*")}return r.debug=r,r.default=r,r.coerce=function(e){return e instanceof Error?e.stack||e.message:e},r.disable=function(){const e=[...r.names.map(o),...r.skips.map(o).map(e=>"-"+e)].join(",");return r.enable(""),e},r.enable=function(e){let t;r.save(e),r.names=[],r.skips=[];const n=("string"==typeof e?e:"").split(/[\s,]+/),s=n.length;for(t=0;t{r[e]=t[e]}),r.instances=[],r.names=[],r.skips=[],r.formatters={},r.selectColor=n,r.enable(r.load()),r}},{ms:34}],34:[function(e,t,n){var r=1e3,s=60*r,i=60*s,o=24*i,l=7*o,u=365.25*o;function a(e,t,n,r){var s=t>=1.5*n;return Math.round(e/n)+" "+r+(s?"s":"")}t.exports=function(e,t){t=t||{};var n=typeof e;if("string"===n&&e.length>0)return function(e){if((e=String(e)).length>100)return;var t=/^(-?(?:\d+)?\.?\d+) *(milliseconds?|msecs?|ms|seconds?|secs?|s|minutes?|mins?|m|hours?|hrs?|h|days?|d|weeks?|w|years?|yrs?|y)?$/i.exec(e);if(!t)return;var n=parseFloat(t[1]);switch((t[2]||"ms").toLowerCase()){case"years":case"year":case"yrs":case"yr":case"y":return n*u;case"weeks":case"week":case"w":return n*l;case"days":case"day":case"d":return n*o;case"hours":case"hour":case"hrs":case"hr":case"h":return n*i;case"minutes":case"minute":case"mins":case"min":case"m":return n*s;case"seconds":case"second":case"secs":case"sec":case"s":return n*r;case"milliseconds":case"millisecond":case"msecs":case"msec":case"ms":return n;default:return}}(e);if("number"===n&&isFinite(e))return t.long?function(e){var t=Math.abs(e);if(t>=o)return a(e,t,o,"day");if(t>=i)return a(e,t,i,"hour");if(t>=s)return a(e,t,s,"minute");if(t>=r)return a(e,t,r,"second");return e+" ms"}(e):function(e){var t=Math.abs(e);if(t>=o)return Math.round(e/o)+"d";if(t>=i)return Math.round(e/i)+"h";if(t>=s)return Math.round(e/s)+"m";if(t>=r)return Math.round(e/r)+"s";return e+"ms"}(e);throw new Error("val is not a non-empty string or a valid number. val="+JSON.stringify(e))}},{}],35:[function(e,t,n){var r,s,i=t.exports={};function o(){throw new Error("setTimeout has not been defined")}function l(){throw new Error("clearTimeout has not been defined")}function u(e){if(r===setTimeout)return setTimeout(e,0);if((r===o||!r)&&setTimeout)return r=setTimeout,setTimeout(e,0);try{return r(e,0)}catch(t){try{return r.call(null,e,0)}catch(t){return r.call(this,e,0)}}}!function(){try{r="function"==typeof setTimeout?setTimeout:o}catch(e){r=o}try{s="function"==typeof clearTimeout?clearTimeout:l}catch(e){s=l}}();var a,c=[],h=!1,d=-1;function f(){h&&a&&(h=!1,a.length?c=a.concat(c):d=-1,c.length&&_())}function _(){if(!h){var e=u(f);h=!0;for(var t=c.length;t;){for(a=c,c=[];++d1)for(var n=1;n1&&(e[n[0]]=void 0),e};n.parseParams=function(e){return e.split(/;\s?/).reduce(l,{})},n.parseFmtpConfig=n.parseParams,n.parsePayloads=function(e){return e.toString().split(" ").map(Number)},n.parseRemoteCandidates=function(e){for(var t=[],n=e.split(" ").map(r),s=0;s=r)return e;var s=n[t];switch(t+=1,e){case"%%":return"%";case"%s":return String(s);case"%d":return Number(s);case"%v":return""}})}.apply(null,r)},o=["v","o","s","i","u","e","p","c","b","t","r","z","a"],l=["i","c","b","a"];t.exports=function(e,t){t=t||{},null==e.version&&(e.version=0),null==e.name&&(e.name=" "),e.media.forEach(function(e){null==e.payloads&&(e.payloads="")});var n=t.outerOrder||o,s=t.innerOrder||l,u=[];return n.forEach(function(t){r[t].forEach(function(n){n.name in e&&null!=e[n.name]?u.push(i(t,n,e)):n.push in e&&null!=e[n.push]&&e[n.push].forEach(function(e){u.push(i(t,n,e))})})}),e.media.forEach(function(e){u.push(i("m",r.m[0],e)),s.forEach(function(t){r[t].forEach(function(n){n.name in e&&null!=e[n.name]?u.push(i(t,n,e)):n.push in e&&null!=e[n.push]&&e[n.push].forEach(function(e){u.push(i(t,n,e))})})})}),u.join("\r\n")+"\r\n"}},{"./grammar":36}],40:[function(e,t,n){t.exports={name:"jssip",title:"JsSIP",description:"the Javascript SIP library",version:"3.8.2",homepage:"https://jssip.net",contributors:["José Luis Millán (https://github.com/jmillan)","Iñaki Baz Castillo (https://inakibaz.me)"],types:"lib/JsSIP.d.ts",main:"lib-es5/JsSIP.js",keywords:["sip","websocket","webrtc","node","browser","library"],license:"MIT",repository:{type:"git",url:"https://github.com/versatica/JsSIP.git"},bugs:{url:"https://github.com/versatica/JsSIP/issues"},dependencies:{"@types/debug":"^4.1.5","@types/node":"^14.14.34",debug:"^4.3.1",events:"^3.3.0","sdp-transform":"^2.14.1"},devDependencies:{"@babel/core":"^7.13.10","@babel/preset-env":"^7.13.10","ansi-colors":"^3.2.4",browserify:"^16.5.1",eslint:"^5.16.0","fancy-log":"^1.3.3",gulp:"^4.0.2","gulp-babel":"^8.0.0","gulp-eslint":"^5.0.0","gulp-expect-file":"^1.0.2","gulp-header":"^2.0.9","gulp-nodeunit-runner":"^0.2.2","gulp-plumber":"^1.2.1","gulp-rename":"^1.4.0","gulp-uglify-es":"^1.0.4",pegjs:"^0.7.0","vinyl-buffer":"^1.0.1","vinyl-source-stream":"^2.0.0"},scripts:{lint:"gulp lint",test:"gulp test",prepublishOnly:"gulp babel"}}},{}]},{},[8])(8)}); \ No newline at end of file diff --git a/settings.gradle b/settings.gradle index 8fe455cd..8b013503 100755 --- a/settings.gradle +++ b/settings.gradle @@ -1,2 +1,5 @@ rootProject.name = "ari4java" include "codegen" +if (file(".inc-examples").exists()) { + include "examples" +} From 136b3edb1624502eb9322d96f099ddcc1ad3bd6b Mon Sep 17 00:00:00 2001 From: Graham Brown Date: Mon, 26 Jan 2026 17:03:50 +0200 Subject: [PATCH 218/220] spotbug corrections --- build.gradle | 3 ++- spotbugs-exclude.xml | 14 ++++++++++++++ src/main/java/ch/loway/oss/ari4java/ARI.java | 6 +++--- .../loway/oss/ari4java/tools/http/HTTPLogger.java | 2 +- .../oss/ari4java/tools/http/NettyHttpClient.java | 13 +++++++------ 5 files changed, 27 insertions(+), 11 deletions(-) create mode 100644 spotbugs-exclude.xml diff --git a/build.gradle b/build.gradle index 41566a8a..937934e3 100755 --- a/build.gradle +++ b/build.gradle @@ -3,7 +3,7 @@ plugins { id "jacoco" id "maven-publish" id "signing" - id "com.github.spotbugs" version "5.0.0" + id "com.github.spotbugs" version "6.4.8" id "org.sonarqube" version "2.7.1" } @@ -177,6 +177,7 @@ signing { } spotbugsMain { + excludeFilter = file("spotbugs-exclude.xml") reports { xml.required.set(true) html.required.set(true) diff --git a/spotbugs-exclude.xml b/spotbugs-exclude.xml new file mode 100644 index 00000000..621edacb --- /dev/null +++ b/spotbugs-exclude.xml @@ -0,0 +1,14 @@ + + + + + + + + + + + + + + diff --git a/src/main/java/ch/loway/oss/ari4java/ARI.java b/src/main/java/ch/loway/oss/ari4java/ARI.java index 02557e8b..8ccec0a0 100755 --- a/src/main/java/ch/loway/oss/ari4java/ARI.java +++ b/src/main/java/ch/loway/oss/ari4java/ARI.java @@ -30,9 +30,10 @@ public class ARI { private HttpClient httpClient; private WsClient wsClient; private ActionEvents liveActionEvent = null; - private AriSubscriber subscriptions = new AriSubscriber(); + private final AriSubscriber subscriptions = new AriSubscriber(); private final CopyOnWriteArrayList liveActionList = new CopyOnWriteArrayList<>(); - private static Logger logger = LoggerFactory.getLogger(ARI.class); + private static final Logger logger = LoggerFactory.getLogger(ARI.class); + private static final SecureRandom random = new SecureRandom(); /** * Sets the client @@ -469,7 +470,6 @@ public static void sleep(long ms) { public static String getUID() { StringBuilder sb = new StringBuilder(20); sb.append("a4j"); - SecureRandom random = new SecureRandom(); for (int n = 0; n < 15; n++) { if ((n % 5) == 0) { sb.append("."); diff --git a/src/main/java/ch/loway/oss/ari4java/tools/http/HTTPLogger.java b/src/main/java/ch/loway/oss/ari4java/tools/http/HTTPLogger.java index f17ee670..483db4cc 100755 --- a/src/main/java/ch/loway/oss/ari4java/tools/http/HTTPLogger.java +++ b/src/main/java/ch/loway/oss/ari4java/tools/http/HTTPLogger.java @@ -9,7 +9,7 @@ import java.util.Arrays; import java.util.Map; -public class HTTPLogger { +public final class HTTPLogger { private HTTPLogger() { throw new IllegalStateException("Utility class"); diff --git a/src/main/java/ch/loway/oss/ari4java/tools/http/NettyHttpClient.java b/src/main/java/ch/loway/oss/ari4java/tools/http/NettyHttpClient.java index 65246b6e..7626383a 100755 --- a/src/main/java/ch/loway/oss/ari4java/tools/http/NettyHttpClient.java +++ b/src/main/java/ch/loway/oss/ari4java/tools/http/NettyHttpClient.java @@ -35,6 +35,7 @@ import java.net.URISyntaxException; import java.util.List; import java.util.concurrent.TimeUnit; +import java.util.concurrent.atomic.AtomicInteger; /** * HTTP and WebSocket client implementation based on netty.io. @@ -71,7 +72,7 @@ public class NettyHttpClient implements HttpClient, WsClient { private String wsEventsUrl; private List wsEventsParamQuery; private WsClientConnection wsClientConnection; - private int reconnectCount = 0; + private final AtomicInteger reconnectCount = new AtomicInteger(0); private int maxReconnectCount = 10; // -1 = infinite reconnect attempts private ChannelFuture wsChannelFuture; private ScheduledFuture wsPingTimer = null; @@ -481,7 +482,7 @@ public void operationComplete(ChannelFuture future) throws Exception { logger.debug("WS connected..."); // start a ping and reset reconnect counter startPing(); - reconnectCount = 0; + reconnectCount.set(0); if (!group.isShuttingDown()) { group.execute(callback::onChReadyToWrite); } @@ -612,7 +613,7 @@ public void reconnectWs(Throwable cause) { wsPingTimer = null; } - if (!autoReconnect || (maxReconnectCount > -1 && reconnectCount >= maxReconnectCount)) { + if (!autoReconnect || (maxReconnectCount > -1 && reconnectCount.get() >= maxReconnectCount)) { logger.warn("Cannot connect: {} - executing failure callback", cause.getMessage()); if (!group.isShuttingDown()) { group.execute(() -> wsCallback.onFailure(cause)); @@ -624,9 +625,9 @@ public void reconnectWs(Throwable cause) { if (!group.isShuttingDown()) { // schedule reconnect after a 2,5,10 seconds long[] timeouts = {2L, 5L, 10L}; - long timeout = reconnectCount >= timeouts.length ? timeouts[timeouts.length - 1] : timeouts[reconnectCount]; - reconnectCount++; - logger.error("WS Connect Error: {}, reconnecting in {} seconds... try: {}", cause.getMessage(), timeout, reconnectCount); + long timeout = reconnectCount.get() >= timeouts.length ? timeouts[timeouts.length - 1] : timeouts[reconnectCount.get()]; + reconnectCount.incrementAndGet(); + logger.error("WS Connect Error: {}, reconnecting in {} seconds... try: {}", cause.getMessage(), timeout, reconnectCount.get()); shutDownGroup.schedule(() -> { try { // 1st close up From 7a86af102a864e6d451e768445ece444e3821769 Mon Sep 17 00:00:00 2001 From: Graham Brown Date: Mon, 26 Jan 2026 17:16:26 +0200 Subject: [PATCH 219/220] prepare 0.18.0 --- CHANGELOG.md | 3 +++ 1 file changed, 3 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 50b679d7..a84c1136 100755 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -3,6 +3,9 @@ ## [Unreleased] [Unreleased]: https://github.com/ari4java/ari4java/compare/v0.17.0...HEAD +## [0.18.0] +[0.18.0]: https://github.com/ari4java/ari4java/compare/v0.17.0...v0.18.0 + ### Added - Connection Pooling using Netty's FixedChannelPool - Examples have a Docker provider for Vagrant (in order to work around VirtualBox compatibility on Apple Silicon) From 0f100f4c3ef324da64444c5be4de5602c03d4ce7 Mon Sep 17 00:00:00 2001 From: Graham Brown Date: Tue, 27 Jan 2026 14:01:24 +0200 Subject: [PATCH 220/220] add dates to CL, fix badge on README and note groupId change from which version and correct examples groupId, add JReleaser gradle plugin and use it for GH Action publish automation --- .github/workflows/gradle.yml | 6 ++-- .gitignore | 6 ++-- CHANGELOG.md | 22 ++++++------ README.md | 6 ++-- build.gradle | 67 +++++++++++++++++++++--------------- examples/build.gradle | 4 +-- examples/settings.gradle | 2 +- 7 files changed, 62 insertions(+), 51 deletions(-) diff --git a/.github/workflows/gradle.yml b/.github/workflows/gradle.yml index d2f00c59..7ec339f5 100755 --- a/.github/workflows/gradle.yml +++ b/.github/workflows/gradle.yml @@ -7,8 +7,8 @@ on: pull_request: branches: - master -# release: -# types: [published] + release: + types: [published] jobs: build: @@ -37,7 +37,7 @@ jobs: BUILD_NUMBER: ${{ env.GITHUB_RUN_NUMBER }} BINTRAY_USER: ${{ secrets.BINTRAY_USER }} BINTRAY_KEY: ${{ secrets.BINTRAY_KEY }} - run: ./gradlew clean :codegen:runCodegen buildProps build bintrayUpload + run: ./gradlew clean :codegen:runCodegen buildProps build publish jreleaserDeploy if: github.event_name == 'release' - name: Archive Reports uses: actions/upload-artifact@v4 diff --git a/.gitignore b/.gitignore index 8d4b371e..c635799c 100755 --- a/.gitignore +++ b/.gitignore @@ -27,14 +27,12 @@ src/main/resources/build.properties codegen/tmp/ codegen/versions.md -.build-local -oss.yaml - # vagrant state folder .vagrant -# local build examples +# local build .inc-examples +oss.yaml # exclude keys examples/vagrant/asterisk/keys/*.key examples/vagrant/asterisk/keys/*.crt diff --git a/CHANGELOG.md b/CHANGELOG.md index a84c1136..12b82415 100755 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -3,7 +3,7 @@ ## [Unreleased] [Unreleased]: https://github.com/ari4java/ari4java/compare/v0.17.0...HEAD -## [0.18.0] +## [0.18.0] - 2026-01-26 [0.18.0]: https://github.com/ari4java/ari4java/compare/v0.17.0...v0.18.0 ### Added @@ -17,20 +17,20 @@ - Cannot wait for connection close due to using connection keep-alive (aka pooling) - Some methods in the Examples use the async approach -## [0.17.0] +## [0.17.0] - 2024-02-24 [0.17.0]: https://github.com/ari4java/ari4java/compare/v0.16.0...v0.17.0 ### Added - `AriVersion.ARI_8_0_0` - `AriVersion.ARI_9_0_0` -## [0.16.0] +## [0.16.0] - 2022-06-11 [0.16.0]: https://github.com/ari4java/ari4java/compare/v0.15.0...v0.16.0 ### Added - `AriVersion.ARI_4_1_4` - `AriVersion.ARI_6_0_1` - `AriVersion.ARI_7_0_1` -## [0.15.0] +## [0.15.0] - 2021-12-26 [0.15.0]: https://github.com/ari4java/ari4java/compare/v0.14.0...v0.15.0 ### Changed - Library updates @@ -39,12 +39,12 @@ ### Fixed - Map `local_ssrc` & `remote_ssrc` in `RTPstat` model to `Long` instead of `Integer` #180 -## [0.14.0] +## [0.14.0] - 2021-10-24 [0.14.0]: https://github.com/ari4java/ari4java/compare/v0.13.0...v0.14.0 ### Fixed - ARI API resource inconsistency due to using git history on `resource.json`, now git tags (aka released versions) are used -## [0.13.0] +## [0.13.0] - 2021-08-14 [0.13.0]: https://github.com/ari4java/ari4java/compare/v0.12.2...v0.13.0 ### Changed - Library updates @@ -52,18 +52,18 @@ ### Added - `AriVersion.ARI_8_0_0` -## [0.12.2] +## [0.12.2] - 2021-03-25 [0.12.2]: https://github.com/ari4java/ari4java/compare/v0.12.1...v0.12.2 ### Changed - groupId changed from `ch.loway.oss.ari4java` to `io.github.ari4java` ### Added -## [0.12.1] +## [0.12.1] - 2020-09-23 [0.12.1]: https://github.com/ari4java/ari4java/compare/v0.12.0...v0.12.1 ### Added - ARI 4.1.3, 5.1.1 & 7.0.0 -## [0.12.0] +## [0.12.0] - 2020-06-24 [0.12.0]: https://github.com/ari4java/ari4java/compare/v0.11.0...v0.12.0 ### Fixes - onFailure long after WS Connect error #156 @@ -72,13 +72,13 @@ ### Added - WS reconnect count #158 -## [0.11.0] +## [0.11.0] - 2020-03-21 [0.11.0]: https://github.com/ari4java/ari4java/compare/v.0.10.0...v0.11.0 ### Added - Unit tests to increase coverage #11 - New ARI binding -## [0.10.0] +## [0.10.0] - 2020-02-23 [0.10.0]: https://github.com/ari4java/ari4java/compare/v0.9.1...v.0.10.0 ### Fixed - UnsupportedOperationException #15 diff --git a/README.md b/README.md index 41308438..441d6228 100755 --- a/README.md +++ b/README.md @@ -2,7 +2,7 @@ The Asterisk REST Interface (ARI) bindings for Java. -[![Maven Central](https://maven-badges.herokuapp.com/maven-central/io.github.ari4java/ari4java/badge.svg)](https://maven-badges.herokuapp.com/maven-central/io.github.ari4java/ari4java) +![Maven Central](https://img.shields.io/maven-central/v/io.github.ari4java/ari4java) [![javadoc](https://javadoc.io/badge2/io.github.ari4java/ari4java/javadoc.svg)](https://javadoc.io/doc/io.github.ari4java/ari4java) [![Build](https://github.com/ari4java/ari4java/actions/workflows/gradle.yml/badge.svg?branch=master)](https://github.com/ari4java/ari4java/actions?query=workflow%3A%22ARI4Java+Build%22) @@ -26,12 +26,12 @@ repositories { dependencies { implementation 'io.github.ari4java:ari4java:+' - implementation 'ch.qos.logback:logback-classic:1.2.10' + implementation 'ch.qos.logback:logback-classic:1.5.26' } ``` Due to the sun setting of JCenter the jar is now publish through Sonatype to Maven Central but under a new groupId. -The groupId is now `io.github.ari4java` make sure you update your build files if you used `ch.loway.oss.ari4java`. +Since 0.12.2 the groupId is now `io.github.ari4java` make sure you update your build files if you used `ch.loway.oss.ari4java`. ## Documentation - The [CHANGELOG](https://github.com/ari4java/ari4java/blob/master/CHANGELOG.md) diff --git a/build.gradle b/build.gradle index 937934e3..2d69a810 100755 --- a/build.gradle +++ b/build.gradle @@ -5,6 +5,7 @@ plugins { id "signing" id "com.github.spotbugs" version "6.4.8" id "org.sonarqube" version "2.7.1" + id "org.jreleaser" version "1.22.0" } group = "io.github.ari4java" @@ -46,7 +47,7 @@ dependencies { testImplementation 'org.junit.jupiter:junit-jupiter-api:5.8.2' testRuntimeOnly 'org.junit.jupiter:junit-jupiter-engine:5.8.2' testImplementation 'org.mockito:mockito-core:4.2.0' - testImplementation 'ch.qos.logback:logback-classic:1.5.25' + testImplementation 'ch.qos.logback:logback-classic:1.5.26' } tasks.register('buildProps', WriteProperties) { @@ -112,6 +113,22 @@ jacocoTestCoverageVerification { } } +spotbugsMain { + excludeFilter = file("spotbugs-exclude.xml") + reports { + xml.required.set(true) + html.required.set(true) + } +} + +spotbugsTest { + ignoreFailures = true + reports { + xml.required.set(false) + html.required.set(true) + } +} + sonarqube { properties { property "sonar.projectKey", "ari4java" @@ -157,37 +174,33 @@ publishing { } repositories { maven { - name = "sonatype" - url = "https://s01.oss.sonatype.org/service/local/staging/deploy/maven2/" - credentials { - username = System.getenv("SONATYPE_USER") - password = System.getenv("SONATYPE_PASS") - } + name = "staging-deploy" + url = layout.buildDirectory.dir("staging-deploy") } } } -signing { - def signingKeyId = System.getenv("PGP_ID") - def signingKey = System.getenv("PGP_KEY") - def signingPassword = System.getenv("PGP_PASS") - useInMemoryPgpKeys(signingKeyId, signingKey, signingPassword) - sign publishing.publications -} - -spotbugsMain { - excludeFilter = file("spotbugs-exclude.xml") - reports { - xml.required.set(true) - html.required.set(true) +jreleaser { + signing { + active = "ALWAYS" + armored = true + // Keys via Environment Variables: + // JRELEASER_GPG_SECRET_KEY JRELEASER_GPG_PASSPHRASE JRELEASER_GPG_PUBLIC_KEY } -} - -spotbugsTest { - ignoreFailures = true - reports { - xml.required.set(false) - html.required.set(true) + deploy { + maven { + mavenCentral { + sonatype { + active = "ALWAYS" + url = "https://central.sonatype.com/api/v1/publisher" + authorization = "BASIC" + // user & pass via Environment Variables: + // JRELEASER_MAVENCENTRAL_SONATYPE_USERNAME JRELEASER_MAVENCENTRAL_SONATYPE_PASSWORD + applyMavenCentralRules = true + stagingRepository("build/staging-deploy") + } + } + } } } diff --git a/examples/build.gradle b/examples/build.gradle index 750df1e7..73ea9eec 100755 --- a/examples/build.gradle +++ b/examples/build.gradle @@ -10,9 +10,9 @@ dependencies { if (file("../.inc-examples").exists()) { implementation project(":") } else { - implementation "ch.loway.oss.ari4java:ari4java:+" + implementation "io.github.ari4java:ari4java:+" } - implementation "ch.qos.logback:logback-classic:1.5.25" + implementation "ch.qos.logback:logback-classic:1.5.26" implementation "io.netty:netty-all:4.2.9.Final" } diff --git a/examples/settings.gradle b/examples/settings.gradle index 0f6b5991..19692206 100755 --- a/examples/settings.gradle +++ b/examples/settings.gradle @@ -1,7 +1,7 @@ if (file("../.build-examples").exists()) { includeBuild("../") { dependencySubstitution { - substitute(module("ch.loway.oss.ari4java:ari4java")).using(project(":")) + substitute(module("io.github.ari4java:ari4java")).using(project(":")) } } }